initial commit CoMReL
diff --git a/org.eclipse.emf.refactor.comrel.diagram/.classpath b/org.eclipse.emf.refactor.comrel.diagram/.classpath
new file mode 100644
index 0000000..ed2bc12
--- /dev/null
+++ b/org.eclipse.emf.refactor.comrel.diagram/.classpath
@@ -0,0 +1,7 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<classpath>
+ <classpathentry kind="src" path="src"/>
+ <classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER/org.eclipse.jdt.internal.debug.ui.launcher.StandardVMType/JavaSE-1.6"/>
+ <classpathentry kind="con" path="org.eclipse.pde.core.requiredPlugins"/>
+ <classpathentry kind="output" path="bin"/>
+</classpath>
diff --git a/org.eclipse.emf.refactor.comrel.diagram/.options b/org.eclipse.emf.refactor.comrel.diagram/.options
new file mode 100644
index 0000000..1876dbf
--- /dev/null
+++ b/org.eclipse.emf.refactor.comrel.diagram/.options
@@ -0,0 +1,7 @@
+# Tracing options for the comrel.diagram plug-in
+
+# Common issues
+comrel.diagram/debug=false
+
+# Visual IDs
+comrel.diagram/debug/visualID=false
diff --git a/org.eclipse.emf.refactor.comrel.diagram/.project b/org.eclipse.emf.refactor.comrel.diagram/.project
new file mode 100644
index 0000000..8d53851
--- /dev/null
+++ b/org.eclipse.emf.refactor.comrel.diagram/.project
@@ -0,0 +1,28 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<projectDescription>
+ <name>org.eclipse.emf.refactor.comrel.diagram</name>
+ <comment></comment>
+ <projects>
+ </projects>
+ <buildSpec>
+ <buildCommand>
+ <name>org.eclipse.jdt.core.javabuilder</name>
+ <arguments>
+ </arguments>
+ </buildCommand>
+ <buildCommand>
+ <name>org.eclipse.pde.ManifestBuilder</name>
+ <arguments>
+ </arguments>
+ </buildCommand>
+ <buildCommand>
+ <name>org.eclipse.pde.SchemaBuilder</name>
+ <arguments>
+ </arguments>
+ </buildCommand>
+ </buildSpec>
+ <natures>
+ <nature>org.eclipse.jdt.core.javanature</nature>
+ <nature>org.eclipse.pde.PluginNature</nature>
+ </natures>
+</projectDescription>
diff --git a/org.eclipse.emf.refactor.comrel.diagram/META-INF/MANIFEST.MF b/org.eclipse.emf.refactor.comrel.diagram/META-INF/MANIFEST.MF
new file mode 100644
index 0000000..738d725
--- /dev/null
+++ b/org.eclipse.emf.refactor.comrel.diagram/META-INF/MANIFEST.MF
@@ -0,0 +1,44 @@
+Manifest-Version: 1.0
+Bundle-ManifestVersion: 2
+Bundle-Name: CoMReL Diagram
+Bundle-SymbolicName: org.eclipse.emf.refactor.comrel.diagram;singleton:=true
+Bundle-Version: 0.9.0
+Bundle-ClassPath: .
+Bundle-Activator: comrel.diagram.part.ComrelDiagramEditorPlugin
+Bundle-Localization: plugin
+Export-Package: comrel.diagram.edit.parts,
+ comrel.diagram.part,
+ comrel.diagram.providers
+Require-Bundle: org.eclipse.core.runtime,
+ org.eclipse.core.resources,
+ org.eclipse.core.expressions,
+ org.eclipse.jface,
+ org.eclipse.ui.ide,
+ org.eclipse.ui.views,
+ org.eclipse.ui.navigator,
+ org.eclipse.ui.navigator.resources,
+ org.eclipse.emf.ecore,
+ org.eclipse.emf.ecore.xmi,
+ org.eclipse.emf.edit.ui,
+ org.eclipse.gmf.runtime.emf.core,
+ org.eclipse.gmf.runtime.emf.commands.core,
+ org.eclipse.gmf.runtime.emf.ui.properties,
+ org.eclipse.gmf.runtime.diagram.ui,
+ org.eclipse.gmf.runtime.diagram.ui.printing,
+ org.eclipse.gmf.runtime.diagram.ui.printing.render,
+ org.eclipse.gmf.runtime.diagram.ui.properties,
+ org.eclipse.gmf.runtime.diagram.ui.providers,
+ org.eclipse.gmf.runtime.diagram.ui.providers.ide,
+ org.eclipse.gmf.runtime.diagram.ui.render,
+ org.eclipse.gmf.runtime.diagram.ui.resources.editor,
+ org.eclipse.gmf.runtime.diagram.ui.resources.editor.ide,
+ org.eclipse.draw2d;visibility:=reexport,
+ org.eclipse.gmf.runtime.draw2d.ui;visibility:=reexport,
+ org.eclipse.emf.refactor.comrel;visibility:=reexport,
+ org.eclipse.emf.refactor.comrel.edit;visibility:=reexport,
+ org.eclipse.emf.validation;visibility:=reexport,
+ org.eclipse.gef;visibility:=reexport,
+ org.eclipse.emf.validation.ocl;bundle-version="1.4.0",
+ org.eclipse.ocl.ecore;bundle-version="3.0.2"
+Bundle-ActivationPolicy: lazy
+Bundle-RequiredExecutionEnvironment: JavaSE-1.6
diff --git a/org.eclipse.emf.refactor.comrel.diagram/bin/.gitignore b/org.eclipse.emf.refactor.comrel.diagram/bin/.gitignore
new file mode 100644
index 0000000..508dbce
--- /dev/null
+++ b/org.eclipse.emf.refactor.comrel.diagram/bin/.gitignore
@@ -0,0 +1 @@
+/comrel
diff --git a/org.eclipse.emf.refactor.comrel.diagram/build.properties b/org.eclipse.emf.refactor.comrel.diagram/build.properties
new file mode 100644
index 0000000..311ca94
--- /dev/null
+++ b/org.eclipse.emf.refactor.comrel.diagram/build.properties
@@ -0,0 +1,12 @@
+bin.includes = .,\
+ icons/,\
+ META-INF/,\
+ plugin.xml,\
+ plugin.properties,\
+ messages.properties,\
+ .options,\
+ src/,\
+ bin/
+jars.compile.order = .
+source.. = src/
+output.. = bin/
diff --git a/org.eclipse.emf.refactor.comrel.diagram/icons/incomingLinksNavigatorGroup.gif b/org.eclipse.emf.refactor.comrel.diagram/icons/incomingLinksNavigatorGroup.gif
new file mode 100644
index 0000000..fca9c53
--- /dev/null
+++ b/org.eclipse.emf.refactor.comrel.diagram/icons/incomingLinksNavigatorGroup.gif
Binary files differ
diff --git a/org.eclipse.emf.refactor.comrel.diagram/icons/linkSourceNavigatorGroup.gif b/org.eclipse.emf.refactor.comrel.diagram/icons/linkSourceNavigatorGroup.gif
new file mode 100644
index 0000000..fca9c53
--- /dev/null
+++ b/org.eclipse.emf.refactor.comrel.diagram/icons/linkSourceNavigatorGroup.gif
Binary files differ
diff --git a/org.eclipse.emf.refactor.comrel.diagram/icons/linkTargetNavigatorGroup.gif b/org.eclipse.emf.refactor.comrel.diagram/icons/linkTargetNavigatorGroup.gif
new file mode 100644
index 0000000..fca9c53
--- /dev/null
+++ b/org.eclipse.emf.refactor.comrel.diagram/icons/linkTargetNavigatorGroup.gif
Binary files differ
diff --git a/org.eclipse.emf.refactor.comrel.diagram/icons/linksNavigatorGroup.gif b/org.eclipse.emf.refactor.comrel.diagram/icons/linksNavigatorGroup.gif
new file mode 100644
index 0000000..fca9c53
--- /dev/null
+++ b/org.eclipse.emf.refactor.comrel.diagram/icons/linksNavigatorGroup.gif
Binary files differ
diff --git a/org.eclipse.emf.refactor.comrel.diagram/icons/obj16/ComrelDiagramFile.gif b/org.eclipse.emf.refactor.comrel.diagram/icons/obj16/ComrelDiagramFile.gif
new file mode 100644
index 0000000..a79ad18
--- /dev/null
+++ b/org.eclipse.emf.refactor.comrel.diagram/icons/obj16/ComrelDiagramFile.gif
Binary files differ
diff --git a/org.eclipse.emf.refactor.comrel.diagram/icons/outgoingLinksNavigatorGroup.gif b/org.eclipse.emf.refactor.comrel.diagram/icons/outgoingLinksNavigatorGroup.gif
new file mode 100644
index 0000000..fca9c53
--- /dev/null
+++ b/org.eclipse.emf.refactor.comrel.diagram/icons/outgoingLinksNavigatorGroup.gif
Binary files differ
diff --git a/org.eclipse.emf.refactor.comrel.diagram/icons/shortcut.gif b/org.eclipse.emf.refactor.comrel.diagram/icons/shortcut.gif
new file mode 100644
index 0000000..c8ebb31
--- /dev/null
+++ b/org.eclipse.emf.refactor.comrel.diagram/icons/shortcut.gif
Binary files differ
diff --git a/org.eclipse.emf.refactor.comrel.diagram/icons/wizban/NewComrelWizard.gif b/org.eclipse.emf.refactor.comrel.diagram/icons/wizban/NewComrelWizard.gif
new file mode 100644
index 0000000..cbb22aa
--- /dev/null
+++ b/org.eclipse.emf.refactor.comrel.diagram/icons/wizban/NewComrelWizard.gif
Binary files differ
diff --git a/org.eclipse.emf.refactor.comrel.diagram/messages.properties b/org.eclipse.emf.refactor.comrel.diagram/messages.properties
new file mode 100644
index 0000000..c727f50
--- /dev/null
+++ b/org.eclipse.emf.refactor.comrel.diagram/messages.properties
@@ -0,0 +1,259 @@
+
+# TODO: manually put keys and values
+ComrelCreationWizardTitle=New Comrel Diagram
+ComrelCreationWizard_DiagramModelFilePageTitle=Create Comrel Diagram
+ComrelCreationWizard_DiagramModelFilePageDescription=Select file that will contain diagram model.
+ComrelCreationWizard_DomainModelFilePageTitle=Create Comrel Domain Model
+ComrelCreationWizard_DomainModelFilePageDescription=Select file that will contain domain model.
+ComrelCreationWizardOpenEditorError=Error opening diagram editor
+ComrelCreationWizardCreationError=Creation Problems
+ComrelCreationWizardPageExtensionError=File name should have {0} extension.
+ComrelDiagramEditorUtil_OpenModelResourceErrorDialogTitle=Error
+ComrelDiagramEditorUtil_OpenModelResourceErrorDialogMessage=Failed to load model file {0}
+ComrelDiagramEditorUtil_CreateDiagramProgressTask=Creating diagram and model files
+ComrelDiagramEditorUtil_CreateDiagramCommandLabel=Creating diagram and model
+ComrelDocumentProvider_isModifiable=Updating cache failed
+ComrelDocumentProvider_handleElementContentChanged=Failed to refresh hierarchy for changed resource
+ComrelDocumentProvider_IncorrectInputError={1}
+ComrelDocumentProvider_NoDiagramInResourceError=Diagram is not present in resource
+ComrelDocumentProvider_DiagramLoadingError=Error loading diagram
+ComrelDocumentProvider_UnsynchronizedFileSaveError=The file has been changed on the file system
+ComrelDocumentProvider_SaveDiagramTask=Saving diagram
+ComrelDocumentProvider_SaveNextResourceTask=Saving {0}
+ComrelDocumentProvider_SaveAsOperation=Saving {0} diagram as
+InitDiagramFile_ResourceErrorDialogTitle=Error
+InitDiagramFile_ResourceErrorDialogMessage=Model file loading failed
+InitDiagramFile_WizardTitle=Initialize new {0} diagram file
+InitDiagramFile_OpenModelFileDialogTitle=Select domain model
+ComrelNewDiagramFileWizard_CreationPageName=Initialize new diagram file
+ComrelNewDiagramFileWizard_CreationPageTitle=Diagram file
+ComrelNewDiagramFileWizard_CreationPageDescription=Create new diagram based on {0} model content
+ComrelNewDiagramFileWizard_RootSelectionPageName=Select diagram root element
+ComrelNewDiagramFileWizard_RootSelectionPageTitle=Diagram root element
+ComrelNewDiagramFileWizard_RootSelectionPageDescription=Select semantic model element to be depicted on diagram
+ComrelNewDiagramFileWizard_RootSelectionPageSelectionTitle=Select diagram root element:
+ComrelNewDiagramFileWizard_RootSelectionPageNoSelectionMessage=Diagram root element is not selected
+ComrelNewDiagramFileWizard_RootSelectionPageInvalidSelectionMessage=Invalid diagram root element is selected
+ComrelNewDiagramFileWizard_InitDiagramCommand=Initializing diagram contents
+ComrelNewDiagramFileWizard_IncorrectRootError=Incorrect model object stored as a root resource object
+ComrelDiagramEditor_SavingDeletedFile=The original file "{0}" has been deleted.
+ComrelDiagramEditor_SaveAsErrorTitle=Problem During Save As...
+ComrelDiagramEditor_SaveAsErrorMessage=Save could not be completed. Target file is already open in another editor.
+ComrelDiagramEditor_SaveErrorTitle=Save Problems
+ComrelDiagramEditor_SaveErrorMessage=Could not save file.
+ComrelElementChooserDialog_SelectModelElementTitle=Select model element
+ModelElementSelectionPageMessage=Select model element:
+ValidateActionMessage=Validate
+Objects1Group_title=Objects
+Connections2Group_title=Connections
+AtomicUnit1CreationTool_title=AtomicUnit
+AtomicUnit1CreationTool_desc=Create new AtomicUnit
+CartesianQueuedUnit2CreationTool_title=CartesianQueuedUnit
+CartesianQueuedUnit2CreationTool_desc=Create new CartesianQueuedUnit
+ConditionCheck3CreationTool_title=ConditionCheck
+ConditionCheck3CreationTool_desc=Create new ConditionCheck
+ConditionalUnit4CreationTool_title=ConditionalUnit
+ConditionalUnit4CreationTool_desc=Create new ConditionalUnit
+MultiFeatureUnit5CreationTool_title=MultiFeatureUnit
+MultiFeatureUnit5CreationTool_desc=Create new MultiFeatureUnit
+MultiFilterUnit6CreationTool_title=MultiFilterUnit
+MultiFilterUnit6CreationTool_desc=Create new MultiFilterUnit
+MultiInputPort7CreationTool_title=MultiInputPort
+MultiInputPort7CreationTool_desc=Create new MultiInputPort
+MultiOutputPort8CreationTool_title=MultiOutputPort
+MultiOutputPort8CreationTool_desc=Create new MultiOutputPort
+ParallelQueuedUnit9CreationTool_title=ParallelQueuedUnit
+ParallelQueuedUnit9CreationTool_desc=Create new ParallelQueuedUnit
+SequentialUnit10CreationTool_title=SequentialUnit
+SequentialUnit10CreationTool_desc=Create new SequentialUnit
+SingleFeatureUnit11CreationTool_title=SingleFeatureUnit
+SingleFeatureUnit11CreationTool_desc=Create new SingleFeatureUnit
+SingleFilterUnit12CreationTool_title=SingleFilterUnit
+SingleFilterUnit12CreationTool_desc=Create new SingleFilterUnit
+SingleInputPort13CreationTool_title=SingleInputPort
+SingleInputPort13CreationTool_desc=Create new SingleInputPort
+SingleOutputPort14CreationTool_title=SingleOutputPort
+SingleOutputPort14CreationTool_desc=Create new SingleOutputPort
+SingleQueuedUnit15CreationTool_title=SingleQueuedUnit
+SingleQueuedUnit15CreationTool_desc=Create new SingleQueuedUnit
+MultiPortMapping1CreationTool_title=MultiPortMapping
+MultiPortMapping1CreationTool_desc=Create new MultiPortMapping
+MultiSinglePortMapping2CreationTool_title=MultiSinglePortMapping
+MultiSinglePortMapping2CreationTool_desc=Create new MultiSinglePortMapping
+SinglePortMapping3CreationTool_title=SinglePortMapping
+SinglePortMapping3CreationTool_desc=Create new SinglePortMapping
+CartesianQueuedUnitCartesianQueuedUnitHelperUnitsCompartmentEditPart_title=CartesianQueuedUnitHelperUnitsCompartment
+CartesianQueuedUnitCartesianQueuedUnitRefactoringUnitCompartmentEditPart_title=CartesianQueuedUnitRefactoringUnitCompartment
+CartesianQueuedUnitCartesianQueuedUnitHelperUnitsCompartment2EditPart_title=CartesianQueuedUnitHelperUnitsCompartment
+CartesianQueuedUnitCartesianQueuedUnitRefactoringUnitCompartment2EditPart_title=CartesianQueuedUnitRefactoringUnitCompartment
+ParallelQueuedUnitParallelQueuedUnitHelperUnitsCompartmentEditPart_title=ParallelQueuedUnitHelperUnitsCompartment
+ParallelQueuedUnitParallelQueuedUnitRefactoringUnitsCompartmentEditPart_title=ParallelQueuedUnitRefactoringUnitsCompartment
+CartesianQueuedUnitCartesianQueuedUnitHelperUnitsCompartment3EditPart_title=CartesianQueuedUnitHelperUnitsCompartment
+CartesianQueuedUnitCartesianQueuedUnitRefactoringUnitCompartment3EditPart_title=CartesianQueuedUnitRefactoringUnitCompartment
+SingleQueuedUnitSingleQueuedUnitHelperUnitsCompartmentEditPart_title=SingleQueuedUnitHelperUnitsCompartment
+SingleQueuedUnitSingleQueuedUnitRefactoringUnitCompartmentEditPart_title=SingleQueuedUnitRefactoringUnitCompartment
+CartesianQueuedUnitCartesianQueuedUnitHelperUnitsCompartment4EditPart_title=CartesianQueuedUnitHelperUnitsCompartment
+CartesianQueuedUnitCartesianQueuedUnitRefactoringUnitCompartment4EditPart_title=CartesianQueuedUnitRefactoringUnitCompartment
+SequentialUnitSequentialUnitHelperUnitsCompartmentEditPart_title=SequentialUnitHelperUnitsCompartment
+SequentialUnitSequentialUnitRefactoringUnitsCompartmentEditPart_title=SequentialUnitRefactoringUnitsCompartment
+CartesianQueuedUnitCartesianQueuedUnitHelperUnitsCompartment5EditPart_title=CartesianQueuedUnitHelperUnitsCompartment
+CartesianQueuedUnitCartesianQueuedUnitRefactoringUnitCompartment5EditPart_title=CartesianQueuedUnitRefactoringUnitCompartment
+ConditionalUnitConditionalUnitIfCompartmentEditPart_title=ConditionalUnitIfCompartment
+ConditionalUnitConditionalUnitHelperUnitsCompartmentEditPart_title=ConditionalUnitHelperUnitsCompartment
+ConditionalUnitConditionalUnitThenCompartmentEditPart_title=ConditionalUnitThenCompartment
+ConditionalUnitConditionalUnitElseCompartmentEditPart_title=ConditionalUnitElseCompartment
+CartesianQueuedUnitCartesianQueuedUnitHelperUnitsCompartment6EditPart_title=CartesianQueuedUnitHelperUnitsCompartment
+CartesianQueuedUnitCartesianQueuedUnitRefactoringUnitCompartment6EditPart_title=CartesianQueuedUnitRefactoringUnitCompartment
+ParallelQueuedUnitParallelQueuedUnitHelperUnitsCompartment2EditPart_title=ParallelQueuedUnitHelperUnitsCompartment
+ParallelQueuedUnitParallelQueuedUnitRefactoringUnitsCompartment2EditPart_title=ParallelQueuedUnitRefactoringUnitsCompartment
+ParallelQueuedUnitParallelQueuedUnitHelperUnitsCompartment3EditPart_title=ParallelQueuedUnitHelperUnitsCompartment
+ParallelQueuedUnitParallelQueuedUnitRefactoringUnitsCompartment3EditPart_title=ParallelQueuedUnitRefactoringUnitsCompartment
+SingleQueuedUnitSingleQueuedUnitHelperUnitsCompartment2EditPart_title=SingleQueuedUnitHelperUnitsCompartment
+SingleQueuedUnitSingleQueuedUnitRefactoringUnitCompartment2EditPart_title=SingleQueuedUnitRefactoringUnitCompartment
+ParallelQueuedUnitParallelQueuedUnitHelperUnitsCompartment4EditPart_title=ParallelQueuedUnitHelperUnitsCompartment
+ParallelQueuedUnitParallelQueuedUnitRefactoringUnitsCompartment4EditPart_title=ParallelQueuedUnitRefactoringUnitsCompartment
+SequentialUnitSequentialUnitHelperUnitsCompartment2EditPart_title=SequentialUnitHelperUnitsCompartment
+SequentialUnitSequentialUnitRefactoringUnitsCompartment2EditPart_title=SequentialUnitRefactoringUnitsCompartment
+ParallelQueuedUnitParallelQueuedUnitHelperUnitsCompartment5EditPart_title=ParallelQueuedUnitHelperUnitsCompartment
+ParallelQueuedUnitParallelQueuedUnitRefactoringUnitsCompartment5EditPart_title=ParallelQueuedUnitRefactoringUnitsCompartment
+ConditionalUnitConditionalUnitIfCompartment2EditPart_title=ConditionalUnitIfCompartment
+ConditionalUnitConditionalUnitHelperUnitsCompartment2EditPart_title=ConditionalUnitHelperUnitsCompartment
+ConditionalUnitConditionalUnitThenCompartment2EditPart_title=ConditionalUnitThenCompartment
+ConditionalUnitConditionalUnitElseCompartment2EditPart_title=ConditionalUnitElseCompartment
+CartesianQueuedUnitCartesianQueuedUnitHelperUnitsCompartment7EditPart_title=CartesianQueuedUnitHelperUnitsCompartment
+CartesianQueuedUnitCartesianQueuedUnitRefactoringUnitCompartment7EditPart_title=CartesianQueuedUnitRefactoringUnitCompartment
+ParallelQueuedUnitParallelQueuedUnitHelperUnitsCompartment6EditPart_title=ParallelQueuedUnitHelperUnitsCompartment
+ParallelQueuedUnitParallelQueuedUnitRefactoringUnitsCompartment6EditPart_title=ParallelQueuedUnitRefactoringUnitsCompartment
+SingleQueuedUnitSingleQueuedUnitHelperUnitsCompartment3EditPart_title=SingleQueuedUnitHelperUnitsCompartment
+SingleQueuedUnitSingleQueuedUnitRefactoringUnitCompartment3EditPart_title=SingleQueuedUnitRefactoringUnitCompartment
+SingleQueuedUnitSingleQueuedUnitHelperUnitsCompartment4EditPart_title=SingleQueuedUnitHelperUnitsCompartment
+SingleQueuedUnitSingleQueuedUnitRefactoringUnitCompartment4EditPart_title=SingleQueuedUnitRefactoringUnitCompartment
+SequentialUnitSequentialUnitHelperUnitsCompartment3EditPart_title=SequentialUnitHelperUnitsCompartment
+SequentialUnitSequentialUnitRefactoringUnitsCompartment3EditPart_title=SequentialUnitRefactoringUnitsCompartment
+SingleQueuedUnitSingleQueuedUnitHelperUnitsCompartment5EditPart_title=SingleQueuedUnitHelperUnitsCompartment
+SingleQueuedUnitSingleQueuedUnitRefactoringUnitCompartment5EditPart_title=SingleQueuedUnitRefactoringUnitCompartment
+ConditionalUnitConditionalUnitIfCompartment3EditPart_title=ConditionalUnitIfCompartment
+ConditionalUnitConditionalUnitHelperUnitsCompartment3EditPart_title=ConditionalUnitHelperUnitsCompartment
+ConditionalUnitConditionalUnitThenCompartment3EditPart_title=ConditionalUnitThenCompartment
+ConditionalUnitConditionalUnitElseCompartment3EditPart_title=ConditionalUnitElseCompartment
+SingleQueuedUnitSingleQueuedUnitHelperUnitsCompartment6EditPart_title=SingleQueuedUnitHelperUnitsCompartment
+SingleQueuedUnitSingleQueuedUnitRefactoringUnitCompartment6EditPart_title=SingleQueuedUnitRefactoringUnitCompartment
+SequentialUnitSequentialUnitHelperUnitsCompartment4EditPart_title=SequentialUnitHelperUnitsCompartment
+SequentialUnitSequentialUnitRefactoringUnitsCompartment4EditPart_title=SequentialUnitRefactoringUnitsCompartment
+SequentialUnitSequentialUnitHelperUnitsCompartment5EditPart_title=SequentialUnitHelperUnitsCompartment
+SequentialUnitSequentialUnitRefactoringUnitsCompartment5EditPart_title=SequentialUnitRefactoringUnitsCompartment
+ConditionalUnitConditionalUnitIfCompartment4EditPart_title=ConditionalUnitIfCompartment
+ConditionalUnitConditionalUnitHelperUnitsCompartment4EditPart_title=ConditionalUnitHelperUnitsCompartment
+ConditionalUnitConditionalUnitThenCompartment4EditPart_title=ConditionalUnitThenCompartment
+ConditionalUnitConditionalUnitElseCompartment4EditPart_title=ConditionalUnitElseCompartment
+ConditionalUnitConditionalUnitIfCompartment5EditPart_title=ConditionalUnitIfCompartment
+ConditionalUnitConditionalUnitHelperUnitsCompartment5EditPart_title=ConditionalUnitHelperUnitsCompartment
+ConditionalUnitConditionalUnitThenCompartment5EditPart_title=ConditionalUnitThenCompartment
+ConditionalUnitConditionalUnitElseCompartment5EditPart_title=ConditionalUnitElseCompartment
+SequentialUnitSequentialUnitHelperUnitsCompartment6EditPart_title=SequentialUnitHelperUnitsCompartment
+SequentialUnitSequentialUnitRefactoringUnitsCompartment6EditPart_title=SequentialUnitRefactoringUnitsCompartment
+ConditionalUnitConditionalUnitIfCompartment6EditPart_title=ConditionalUnitIfCompartment
+ConditionalUnitConditionalUnitHelperUnitsCompartment6EditPart_title=ConditionalUnitHelperUnitsCompartment
+ConditionalUnitConditionalUnitThenCompartment6EditPart_title=ConditionalUnitThenCompartment
+ConditionalUnitConditionalUnitElseCompartment6EditPart_title=ConditionalUnitElseCompartment
+ParallelQueuedUnitParallelQueuedUnitHelperUnitsCompartment7EditPart_title=ParallelQueuedUnitHelperUnitsCompartment
+ParallelQueuedUnitParallelQueuedUnitRefactoringUnitsCompartment7EditPart_title=ParallelQueuedUnitRefactoringUnitsCompartment
+SingleQueuedUnitSingleQueuedUnitHelperUnitsCompartment7EditPart_title=SingleQueuedUnitHelperUnitsCompartment
+SingleQueuedUnitSingleQueuedUnitRefactoringUnitCompartment7EditPart_title=SingleQueuedUnitRefactoringUnitCompartment
+SequentialUnitSequentialUnitHelperUnitsCompartment7EditPart_title=SequentialUnitHelperUnitsCompartment
+SequentialUnitSequentialUnitRefactoringUnitsCompartment7EditPart_title=SequentialUnitRefactoringUnitsCompartment
+ConditionalUnitConditionalUnitIfCompartment7EditPart_title=ConditionalUnitIfCompartment
+ConditionalUnitConditionalUnitHelperUnitsCompartment7EditPart_title=ConditionalUnitHelperUnitsCompartment
+ConditionalUnitConditionalUnitThenCompartment7EditPart_title=ConditionalUnitThenCompartment
+ConditionalUnitConditionalUnitElseCompartment7EditPart_title=ConditionalUnitElseCompartment
+
+CommandName_OpenDiagram=Open Diagram
+NavigatorGroupName_MultiInputPort_3017_incominglinks=incoming links
+NavigatorGroupName_MultiInputPort_3017_outgoinglinks=outgoing links
+NavigatorGroupName_SingleInputPort_3035_incominglinks=incoming links
+NavigatorGroupName_SingleInputPort_3035_outgoinglinks=outgoing links
+NavigatorGroupName_MultiInputPort_3032_incominglinks=incoming links
+NavigatorGroupName_MultiInputPort_3032_outgoinglinks=outgoing links
+NavigatorGroupName_SingleInputPort_3013_incominglinks=incoming links
+NavigatorGroupName_SingleInputPort_3013_outgoinglinks=outgoing links
+NavigatorGroupName_MultiInputPort_3024_incominglinks=incoming links
+NavigatorGroupName_MultiInputPort_3024_outgoinglinks=outgoing links
+NavigatorGroupName_MultiPortMapping_4002_target=target
+NavigatorGroupName_MultiPortMapping_4002_source=source
+NavigatorGroupName_MultiInputPort_3020_incominglinks=incoming links
+NavigatorGroupName_MultiInputPort_3020_outgoinglinks=outgoing links
+NavigatorGroupName_SingleOutputPort_3018_outgoinglinks=outgoing links
+NavigatorGroupName_SinglePortMapping_4001_target=target
+NavigatorGroupName_SinglePortMapping_4001_source=source
+NavigatorGroupName_MultiInputPort_3010_incominglinks=incoming links
+NavigatorGroupName_MultiInputPort_3010_outgoinglinks=outgoing links
+NavigatorGroupName_SingleInputPort_3023_incominglinks=incoming links
+NavigatorGroupName_SingleInputPort_3023_outgoinglinks=outgoing links
+NavigatorGroupName_MultiOutputPort_3015_outgoinglinks=outgoing links
+NavigatorGroupName_SingleOutputPort_3011_outgoinglinks=outgoing links
+NavigatorGroupName_SingleInputPort_3005_incominglinks=incoming links
+NavigatorGroupName_SingleInputPort_3005_outgoinglinks=outgoing links
+NavigatorGroupName_MultiInputPort_3002_incominglinks=incoming links
+NavigatorGroupName_MultiInputPort_3002_outgoinglinks=outgoing links
+NavigatorGroupName_MultiInputPort_3006_incominglinks=incoming links
+NavigatorGroupName_MultiInputPort_3006_outgoinglinks=outgoing links
+NavigatorGroupName_SingleInputPort_3031_incominglinks=incoming links
+NavigatorGroupName_SingleInputPort_3031_outgoinglinks=outgoing links
+NavigatorGroupName_MultiOutputPort_3021_outgoinglinks=outgoing links
+NavigatorGroupName_SingleInputPort_2001_incominglinks=incoming links
+NavigatorGroupName_SingleInputPort_2001_outgoinglinks=outgoing links
+NavigatorGroupName_SingleInputPort_3009_incominglinks=incoming links
+NavigatorGroupName_SingleInputPort_3009_outgoinglinks=outgoing links
+NavigatorGroupName_CompositeRefactoring_1000_links=links
+NavigatorGroupName_SingleInputPort_3027_incominglinks=incoming links
+NavigatorGroupName_SingleInputPort_3027_outgoinglinks=outgoing links
+NavigatorGroupName_SingleInputPort_3001_incominglinks=incoming links
+NavigatorGroupName_SingleInputPort_3001_outgoinglinks=outgoing links
+NavigatorGroupName_MultiInputPort_3028_incominglinks=incoming links
+NavigatorGroupName_MultiInputPort_3028_outgoinglinks=outgoing links
+NavigatorGroupName_MultiSinglePortMapping_4003_target=target
+NavigatorGroupName_MultiSinglePortMapping_4003_source=source
+NavigatorGroupName_MultiInputPort_3014_incominglinks=incoming links
+NavigatorGroupName_MultiInputPort_3014_outgoinglinks=outgoing links
+NavigatorActionProvider_OpenDiagramActionName=Open Diagram
+AbstractParser_UnexpectedValueType=Value of type {0} is expected
+AbstractParser_WrongStringConversion=String value does not convert to {0} value
+AbstractParser_UnknownLiteral=Unknown literal: {0}
+
+MessageFormatParser_InvalidInputError=Invalid input at {0}
+ComrelModelingAssistantProviderTitle=Select domain model element
+ComrelModelingAssistantProviderMessage=Available domain model elements:
+CompositeUnits1Group_title=Composite Units
+AtomicUnits2Group_title=Atomic Units
+FilterUnits3Group_title=Filter Units
+FeatureUnits4Group_title=Feature Units
+Ports5Group_title=Ports
+Mappings6Group_title=Mappings
+CartesianQueuedUnit1CreationTool_title=CartesianQueuedUnit
+CartesianQueuedUnit1CreationTool_desc=Create new CartesianQueuedUnit
+ConditionCheck2CreationTool_title=ConditionCheck
+ConditionCheck2CreationTool_desc=Create new ConditionCheck
+ConditionalUnit3CreationTool_title=ConditionalUnit
+ConditionalUnit3CreationTool_desc=Create new ConditionalUnit
+ParallelQueuedUnit4CreationTool_title=ParallelQueuedUnit
+ParallelQueuedUnit4CreationTool_desc=Create new ParallelQueuedUnit
+SequentialUnit5CreationTool_title=SequentialUnit
+SequentialUnit5CreationTool_desc=Create new SequentialUnit
+SingleQueuedUnit6CreationTool_title=SingleQueuedUnit
+SingleQueuedUnit6CreationTool_desc=Create new SingleQueuedUnit
+MultiFilterUnit1CreationTool_title=MultiFilterUnit
+MultiFilterUnit1CreationTool_desc=Create new MultiFilterUnit
+SingleFilterUnit2CreationTool_title=SingleFilterUnit
+SingleFilterUnit2CreationTool_desc=Create new SingleFilterUnit
+MultiFeatureUnit1CreationTool_title=MultiFeatureUnit
+MultiFeatureUnit1CreationTool_desc=Create new MultiFeatureUnit
+SingleFeatureUnit2CreationTool_title=SingleFeatureUnit
+SingleFeatureUnit2CreationTool_desc=Create new SingleFeatureUnit
+MultiInputPort1CreationTool_title=MultiInputPort
+MultiInputPort1CreationTool_desc=Create new MultiInputPort
+MultiOutputPort2CreationTool_title=MultiOutputPort
+MultiOutputPort2CreationTool_desc=Create new MultiOutputPort
+SingleInputPort3CreationTool_title=SingleInputPort
+SingleInputPort3CreationTool_desc=Create new SingleInputPort
+SingleOutputPort4CreationTool_title=SingleOutputPort
+SingleOutputPort4CreationTool_desc=Create new SingleOutputPort
diff --git a/org.eclipse.emf.refactor.comrel.diagram/plugin.properties b/org.eclipse.emf.refactor.comrel.diagram/plugin.properties
new file mode 100644
index 0000000..79c5985
--- /dev/null
+++ b/org.eclipse.emf.refactor.comrel.diagram/plugin.properties
@@ -0,0 +1,126 @@
+pluginName=Comrel Plugin
+providerName=Sample Plugin Provider, Inc
+
+editorName=Comrel Diagram Editing
+context.description=Comrel Diagram Editing
+context.name=In Comrel Diagram Editor
+newWizardName=Comrel Diagram
+newWizardDesc=Creates Comrel diagram.
+
+initDiagramActionLabel=Initialize comrel_diagram diagram file
+
+
+navigatorContentName=*.comrel_diagram diagram contents
+domainNavigatorContentName=*.comrel model contents
+update.diagram.name=Update Comrel diagram
+update.diagram.description=Perform Comrel diagram update
+
+
+# Property Sheet
+tab.appearance=Appearance
+tab.diagram=Rulers & Grid
+tab.domain=Core
+
+# Preferences
+prefpage.comrel.diagram.general=Comrel Diagram
+prefpage.comrel.diagram.appearance=Appearance
+prefpage.comrel.diagram.connections=Connections
+prefpage.comrel.diagram.printing=Printing
+prefpage.comrel.diagram.rulersAndGrid=Rulers And Grid
+
+
+# Providers
+metatype.name.CompositeRefactoring_1000=Undefined
+metatype.name.SingleInputPort_2001=SingleInputPort
+metatype.name.CartesianQueuedUnit_2002=CartesianQueuedUnit
+metatype.name.ParallelQueuedUnit_2003=ParallelQueuedUnit
+metatype.name.SingleQueuedUnit_2004=SingleQueuedUnit
+metatype.name.SequentialUnit_2005=SequentialUnit
+metatype.name.ConditionalUnit_2006=ConditionalUnit
+metatype.name.AtomicUnit_2007=AtomicUnit
+metatype.name.SingleInputPort_3001=SingleInputPort
+metatype.name.MultiInputPort_3002=MultiInputPort
+metatype.name.CartesianQueuedUnit_3003=CartesianQueuedUnit
+metatype.name.ParallelQueuedUnit_3004=ParallelQueuedUnit
+metatype.name.SingleInputPort_3005=SingleInputPort
+metatype.name.MultiInputPort_3006=MultiInputPort
+metatype.name.CartesianQueuedUnit_3007=CartesianQueuedUnit
+metatype.name.SingleFeatureUnit_3008=SingleFeatureUnit
+metatype.name.SingleInputPort_3009=SingleInputPort
+metatype.name.MultiInputPort_3010=MultiInputPort
+metatype.name.SingleOutputPort_3011=SingleOutputPort
+metatype.name.MultiFeatureUnit_3012=MultiFeatureUnit
+metatype.name.SingleInputPort_3013=SingleInputPort
+metatype.name.MultiInputPort_3014=MultiInputPort
+metatype.name.MultiOutputPort_3015=MultiOutputPort
+metatype.name.SingleFilterUnit_3016=SingleFilterUnit
+metatype.name.MultiInputPort_3017=MultiInputPort
+metatype.name.SingleOutputPort_3018=SingleOutputPort
+metatype.name.MultiFilterUnit_3019=MultiFilterUnit
+metatype.name.MultiInputPort_3020=MultiInputPort
+metatype.name.MultiOutputPort_3021=MultiOutputPort
+metatype.name.SingleQueuedUnit_3022=SingleQueuedUnit
+metatype.name.SingleInputPort_3023=SingleInputPort
+metatype.name.MultiInputPort_3024=MultiInputPort
+metatype.name.CartesianQueuedUnit_3025=CartesianQueuedUnit
+metatype.name.SequentialUnit_3026=SequentialUnit
+metatype.name.SingleInputPort_3027=SingleInputPort
+metatype.name.MultiInputPort_3028=MultiInputPort
+metatype.name.CartesianQueuedUnit_3029=CartesianQueuedUnit
+metatype.name.ConditionalUnit_3030=ConditionalUnit
+metatype.name.SingleInputPort_3031=SingleInputPort
+metatype.name.MultiInputPort_3032=MultiInputPort
+metatype.name.CartesianQueuedUnit_3033=CartesianQueuedUnit
+metatype.name.AtomicUnit_3034=AtomicUnit
+metatype.name.SingleInputPort_3035=SingleInputPort
+metatype.name.ParallelQueuedUnit_3036=ParallelQueuedUnit
+metatype.name.ParallelQueuedUnit_3037=ParallelQueuedUnit
+metatype.name.SingleFeatureUnit_3038=SingleFeatureUnit
+metatype.name.MultiFeatureUnit_3039=MultiFeatureUnit
+metatype.name.SingleFilterUnit_3040=SingleFilterUnit
+metatype.name.MultiFilterUnit_3041=MultiFilterUnit
+metatype.name.SingleQueuedUnit_3042=SingleQueuedUnit
+metatype.name.ParallelQueuedUnit_3043=ParallelQueuedUnit
+metatype.name.SequentialUnit_3044=SequentialUnit
+metatype.name.ParallelQueuedUnit_3045=ParallelQueuedUnit
+metatype.name.ConditionalUnit_3046=ConditionalUnit
+metatype.name.CartesianQueuedUnit_3047=CartesianQueuedUnit
+metatype.name.ParallelQueuedUnit_3048=ParallelQueuedUnit
+metatype.name.AtomicUnit_3049=AtomicUnit
+metatype.name.SingleFeatureUnit_3050=SingleFeatureUnit
+metatype.name.MultiFeatureUnit_3051=MultiFeatureUnit
+metatype.name.SingleFilterUnit_3052=SingleFilterUnit
+metatype.name.MultiFilterUnit_3053=MultiFilterUnit
+metatype.name.SingleQueuedUnit_3054=SingleQueuedUnit
+metatype.name.SingleFeatureUnit_3055=SingleFeatureUnit
+metatype.name.MultiFeatureUnit_3056=MultiFeatureUnit
+metatype.name.SingleFilterUnit_3057=SingleFilterUnit
+metatype.name.MultiFilterUnit_3058=MultiFilterUnit
+metatype.name.SingleQueuedUnit_3059=SingleQueuedUnit
+metatype.name.SequentialUnit_3060=SequentialUnit
+metatype.name.SingleFeatureUnit_3061=SingleFeatureUnit
+metatype.name.MultiFeatureUnit_3062=MultiFeatureUnit
+metatype.name.SingleFilterUnit_3063=SingleFilterUnit
+metatype.name.MultiFilterUnit_3064=MultiFilterUnit
+metatype.name.SingleQueuedUnit_3065=SingleQueuedUnit
+metatype.name.ConditionalUnit_3066=ConditionalUnit
+metatype.name.SingleQueuedUnit_3067=SingleQueuedUnit
+metatype.name.AtomicUnit_3068=AtomicUnit
+metatype.name.SequentialUnit_3069=SequentialUnit
+metatype.name.SequentialUnit_3070=SequentialUnit
+metatype.name.ConditionalUnit_3071=ConditionalUnit
+metatype.name.ConditionalUnit_3072=ConditionalUnit
+metatype.name.SequentialUnit_3073=SequentialUnit
+metatype.name.AtomicUnit_3074=AtomicUnit
+metatype.name.ConditionalUnit_3075=ConditionalUnit
+metatype.name.ConditionCheck_3076=ConditionCheck
+metatype.name.AtomicUnit_3077=AtomicUnit
+metatype.name.AtomicUnit_3078=AtomicUnit
+metatype.name.SinglePortMapping_4001=SinglePortMapping
+metatype.name.MultiPortMapping_4002=MultiPortMapping
+metatype.name.MultiSinglePortMapping_4003=MultiSinglePortMapping
+
+# Commands and menu actions
+cmdcategory.name=Comrel Editor Commands
+cmdcategory.desc=Comrel Editor Commands
+
diff --git a/org.eclipse.emf.refactor.comrel.diagram/plugin.xml b/org.eclipse.emf.refactor.comrel.diagram/plugin.xml
new file mode 100644
index 0000000..147f9ca
--- /dev/null
+++ b/org.eclipse.emf.refactor.comrel.diagram/plugin.xml
@@ -0,0 +1,1438 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<?eclipse version="3.0"?>
+<!--
+
+-->
+<plugin>
+
+ <extension point="org.eclipse.team.core.fileTypes" id="repo-ftype">
+ <?gmfgen generated="true"?>
+ <fileTypes type="text" extension="comrel_diagram"/>
+ </extension>
+
+ <extension point="org.eclipse.emf.ecore.extension_parser" id="resource-factory">
+ <?gmfgen generated="true"?>
+ <parser
+ type="comrel_diagram"
+ class="org.eclipse.gmf.runtime.emf.core.resources.GMFResourceFactory">
+ </parser>
+ </extension>
+
+ <extension point="org.eclipse.ui.editors" id="gmf-editor">
+ <?gmfgen generated="true"?>
+ <editor
+ id="comrel.diagram.part.ComrelDiagramEditorID"
+ name="%editorName"
+ icon="icons/obj16/ComrelDiagramFile.gif"
+ extensions="comrel_diagram"
+ default="true"
+ class="comrel.diagram.part.ComrelDiagramEditor"
+ matchingStrategy="comrel.diagram.part.ComrelMatchingStrategy"
+ contributorClass="comrel.diagram.part.ComrelDiagramActionBarContributor">
+ </editor>
+ </extension>
+
+ <extension point="org.eclipse.ui.contexts" id="ui-context">
+ <?gmfgen generated="true"?>
+ <context
+ description="%context.description"
+ id="comrel.diagram.ui.diagramContext"
+ name="%context.name"
+ parentId="org.eclipse.gmf.runtime.diagram.ui.diagramContext">
+ </context>
+ </extension>
+
+ <extension point="org.eclipse.ui.newWizards" id="creation-wizard">
+ <?gmfgen generated="true"?>
+ <wizard
+ name="CoMReL diagram"
+ icon="icons/obj16/ComrelDiagramFile.gif"
+ category="comrel.generator.category"
+ class="comrel.diagram.part.ComrelCreationWizard"
+ id="comrel.diagram.part.ComrelCreationWizardID">
+ <description>%newWizardDesc</description>
+ </wizard>
+ </extension>
+
+ <extension point="org.eclipse.ui.popupMenus" id="init-diagram-action">
+ <?gmfgen generated="true"?>
+ <objectContribution
+ id="comrel.diagram.InitDiagram"
+ nameFilter="*.comrel"
+ objectClass="org.eclipse.core.resources.IFile">
+ <action
+ label="%initDiagramActionLabel"
+ class="comrel.diagram.part.ComrelInitDiagramFileAction"
+ menubarPath="additions"
+ enablesFor="1"
+ id="comrel.diagram.InitDiagramAction">
+ </action>
+ </objectContribution>
+ </extension>
+
+ <extension point="org.eclipse.gmf.runtime.common.ui.services.action.globalActionHandlerProviders" id="global-actions">
+ <?gmfgen generated="true"?>
+ <GlobalActionHandlerProvider
+ class="org.eclipse.gmf.runtime.diagram.ui.providers.DiagramGlobalActionHandlerProvider"
+ id="ComrelPresentation">
+ <Priority name="Lowest"/>
+ <ViewId id="comrel.diagram.part.ComrelDiagramEditorID">
+ <ElementType class="org.eclipse.gmf.runtime.diagram.ui.editparts.IGraphicalEditPart">
+ <GlobalActionId actionId="delete"/>
+ </ElementType>
+ <ElementType class="org.eclipse.gmf.runtime.diagram.ui.editparts.DiagramEditPart">
+ <GlobalActionId actionId="save"/>
+ </ElementType>
+ </ViewId>
+ </GlobalActionHandlerProvider>
+ <GlobalActionHandlerProvider
+ class="org.eclipse.gmf.runtime.diagram.ui.printing.render.providers.DiagramWithPrintGlobalActionHandlerProvider"
+ id="ComrelPresentationPrint">
+ <Priority name="Lowest"/>
+ <ViewId id="comrel.diagram.part.ComrelDiagramEditorID">
+ <ElementType class="org.eclipse.gmf.runtime.diagram.ui.editparts.IGraphicalEditPart">
+ <GlobalActionId actionId="print"/>
+ </ElementType>
+ </ViewId>
+ </GlobalActionHandlerProvider>
+ <GlobalActionHandlerProvider
+ class="org.eclipse.gmf.runtime.diagram.ui.providers.ide.providers.DiagramIDEGlobalActionHandlerProvider"
+ id="ComrelPresentationIDE">
+ <Priority name="Lowest"/>
+ <ViewId id="comrel.diagram.part.ComrelDiagramEditorID">
+ <ElementType class="org.eclipse.gmf.runtime.diagram.ui.editparts.IGraphicalEditPart">
+ <GlobalActionId actionId="bookmark"/>
+ </ElementType>
+ </ViewId>
+ </GlobalActionHandlerProvider>
+ <GlobalActionHandlerProvider
+ class="org.eclipse.gmf.runtime.diagram.ui.render.providers.DiagramUIRenderGlobalActionHandlerProvider"
+ id="ComrelRender">
+ <Priority name="Lowest"/>
+ <ViewId id="comrel.diagram.part.ComrelDiagramEditorID">
+ <ElementType class="org.eclipse.gmf.runtime.diagram.ui.editparts.IGraphicalEditPart">
+ <GlobalActionId actionId="cut"/>
+ <GlobalActionId actionId="copy"/>
+ <GlobalActionId actionId="paste"/>
+ </ElementType>
+ </ViewId>
+ </GlobalActionHandlerProvider>
+ </extension>
+
+
+ <extension point="org.eclipse.gmf.runtime.common.ui.services.markerNavigationProviders" id="markers-navigation">
+ <?gmfgen generated="true"?>
+ <MarkerNavigationProvider class="comrel.diagram.providers.ComrelMarkerNavigationProvider">
+ <MarkerType name="comrel.diagram.diagnostic"/>
+ <Priority name="Lowest"/>
+ </MarkerNavigationProvider>
+ </extension>
+
+ <extension id="diagnostic" name="Comrel Plugin problems" point="org.eclipse.core.resources.markers">
+ <?gmfgen generated="true"?>
+ <super type="org.eclipse.core.resources.problemmarker"/>
+ <super type="org.eclipse.gmf.runtime.common.ui.services.marker"/>
+ <persistent value="true"/>
+ </extension>
+
+ <extension id="validationDecoratorProvider" name="ValidationDecorations" point="org.eclipse.gmf.runtime.diagram.ui.decoratorProviders">
+ <?gmfgen generated="true"?>
+ <decoratorProvider class="comrel.diagram.providers.ComrelValidationDecoratorProvider">
+ <Priority name="Lowest"/>
+ <object class="org.eclipse.gmf.runtime.diagram.ui.editparts.IPrimaryEditPart(org.eclipse.gmf.runtime.diagram.ui)" id="PRIMARY_VIEW"/>
+ <context decoratorTargets="PRIMARY_VIEW"/>
+ </decoratorProvider>
+ </extension>
+
+ <extension point="org.eclipse.core.runtime.preferences" id="prefs">
+ <?gmfgen generated="true"?>
+ <initializer class="comrel.diagram.preferences.DiagramPreferenceInitializer"/>
+ </extension>
+
+ <extension point="org.eclipse.ui.preferencePages" id="prefpages">
+ <?gmfgen generated="true"?>
+ <page
+ id="comrel.diagram.general"
+ name="%prefpage.comrel.diagram.general"
+ class="comrel.diagram.preferences.DiagramGeneralPreferencePage">
+ </page>
+ <page
+ id="comrel.diagram.appearance"
+ name="%prefpage.comrel.diagram.appearance"
+ category="comrel.diagram.general"
+ class="comrel.diagram.preferences.DiagramAppearancePreferencePage">
+ </page>
+ <page
+ id="comrel.diagram.connections"
+ name="%prefpage.comrel.diagram.connections"
+ category="comrel.diagram.general"
+ class="comrel.diagram.preferences.DiagramConnectionsPreferencePage">
+ </page>
+ <page
+ id="comrel.diagram.printing"
+ name="%prefpage.comrel.diagram.printing"
+ category="comrel.diagram.general"
+ class="comrel.diagram.preferences.DiagramPrintingPreferencePage">
+ </page>
+ <page
+ id="comrel.diagram.rulersAndGrid"
+ name="%prefpage.comrel.diagram.rulersAndGrid"
+ category="comrel.diagram.general"
+ class="comrel.diagram.preferences.DiagramRulersAndGridPreferencePage">
+ </page>
+ </extension>
+
+ <extension point="org.eclipse.ui.views.properties.tabbed.propertyContributor" id="prop-contrib">
+ <?gmfgen generated="true"?>
+ <propertyContributor
+ contributorId="comrel.diagram"
+ labelProvider="comrel.diagram.sheet.ComrelSheetLabelProvider">
+ <propertyCategory category="domain"/>
+ <propertyCategory category="visual"/>
+ <propertyCategory category="extra"/>
+ </propertyContributor>
+ </extension>
+
+ <extension point="org.eclipse.ui.views.properties.tabbed.propertyTabs" id="proptabs">
+ <?gmfgen generated="true"?>
+ <propertyTabs contributorId="comrel.diagram">
+ <propertyTab
+ category="visual"
+ id="property.tab.AppearancePropertySection"
+ label="%tab.appearance"/>
+ <propertyTab
+ category="visual"
+ id="property.tab.DiagramPropertySection"
+ label="%tab.diagram"/>
+ <propertyTab
+ category="domain"
+ id="property.tab.domain"
+ label="%tab.domain"/>
+ </propertyTabs>
+ </extension>
+
+ <extension point="org.eclipse.ui.views.properties.tabbed.propertySections" id="propsections">
+ <?gmfgen generated="true"?>
+ <propertySections contributorId="comrel.diagram">
+ <propertySection id="property.section.ConnectorAppearancePropertySection"
+ filter="org.eclipse.gmf.runtime.diagram.ui.properties.filters.ConnectionEditPartPropertySectionFilter"
+ class="org.eclipse.gmf.runtime.diagram.ui.properties.sections.appearance.ConnectionAppearancePropertySection"
+ tab="property.tab.AppearancePropertySection">
+ </propertySection>
+ <propertySection id="property.section.ShapeColorAndFontPropertySection"
+ filter="org.eclipse.gmf.runtime.diagram.ui.properties.filters.ShapeEditPartPropertySectionFilter"
+ class="org.eclipse.gmf.runtime.diagram.ui.properties.sections.appearance.ShapeColorsAndFontsPropertySection"
+ tab="property.tab.AppearancePropertySection">
+ </propertySection>
+ <propertySection id="property.section.DiagramColorsAndFontsPropertySection"
+ filter="org.eclipse.gmf.runtime.diagram.ui.properties.filters.DiagramEditPartPropertySectionFilter"
+ class="org.eclipse.gmf.runtime.diagram.ui.properties.sections.appearance.DiagramColorsAndFontsPropertySection"
+ tab="property.tab.AppearancePropertySection">
+ </propertySection>
+ <propertySection id="property.section.RulerGridPropertySection"
+ filter="org.eclipse.gmf.runtime.diagram.ui.properties.filters.DiagramEditPartPropertySectionFilter"
+ class="org.eclipse.gmf.runtime.diagram.ui.properties.sections.grid.RulerGridPropertySection"
+ tab="property.tab.DiagramPropertySection">
+ </propertySection>
+ <propertySection
+ id="property.section.domain"
+ tab="property.tab.domain"
+ class="comrel.diagram.sheet.ComrelPropertySection">
+ <input type="org.eclipse.gmf.runtime.notation.View"/>
+ <input type="org.eclipse.gef.EditPart"/>
+ <input type="comrel.diagram.navigator.ComrelAbstractNavigatorItem"/>
+ </propertySection>
+ </propertySections>
+ </extension>
+
+ <extension point="org.eclipse.gmf.runtime.diagram.core.viewProviders" id="view-provider">
+ <?gmfgen generated="true"?>
+ <viewProvider class="comrel.diagram.providers.ComrelViewProvider">
+ <Priority name="Lowest"/>
+ <object id="referencing-diagrams" class="org.eclipse.gmf.runtime.notation.Diagram">
+ <method name="getType()" value="comrel"/>
+ </object>
+ <context viewClass="org.eclipse.gmf.runtime.notation.Node" containerViews="referencing-diagrams"/>
+ <context viewClass="org.eclipse.gmf.runtime.notation.Diagram" semanticHints="Comrel"/>
+ <context viewClass="org.eclipse.gmf.runtime.notation.Node" semanticHints="2001,2002,2003,2004,2005,2006,2007,3001,3002,3003,3004,3005,3006,3007,3008,3009,3010,3011,3012,3013,3014,3015,3016,3017,3018,3019,3020,3021,3022,3023,3024,3025,3026,3027,3028,3029,3030,3031,3032,3033,3034,3035,3036,3037,3038,3039,3040,3041,3042,3043,3044,3045,3046,3047,3048,3049,3050,3051,3052,3053,3054,3055,3056,3057,3058,3059,3060,3061,3062,3063,3064,3065,3066,3067,3068,3069,3070,3071,3072,3073,3074,3075,3076,3077,3078"/>
+ <context viewClass="org.eclipse.gmf.runtime.notation.Edge" semanticHints="4001,4002,4003"/>
+ </viewProvider>
+ </extension>
+
+ <extension point="org.eclipse.gmf.runtime.diagram.ui.editpartProviders" id="ep-provider">
+ <?gmfgen generated="true"?>
+ <editpartProvider class="comrel.diagram.providers.ComrelEditPartProvider">
+ <Priority name="Lowest"/>
+ <object class="org.eclipse.gmf.runtime.notation.Diagram" id="generated-diagram">
+ <method name="getType()" value="Comrel"/>
+ </object>
+ <object class="org.eclipse.gmf.runtime.notation.Node" id="generated-nodes">
+ <method name="getType()" value="2001,2002,2003,2004,2005,2006,2007,3001,3002,3003,3004,3005,3006,3007,3008,3009,3010,3011,3012,3013,3014,3015,3016,3017,3018,3019,3020,3021,3022,3023,3024,3025,3026,3027,3028,3029,3030,3031,3032,3033,3034,3035,3036,3037,3038,3039,3040,3041,3042,3043,3044,3045,3046,3047,3048,3049,3050,3051,3052,3053,3054,3055,3056,3057,3058,3059,3060,3061,3062,3063,3064,3065,3066,3067,3068,3069,3070,3071,3072,3073,3074,3075,3076,3077,3078"/>
+ </object>
+ <object class="org.eclipse.gmf.runtime.notation.Edge" id="generated-links">
+ <method name="getType()" value="4001,4002,4003"/>
+ </object>
+ <object class="org.eclipse.gmf.runtime.notation.Node" id="generated-labels">
+ <method name="getType()" value="5001,5080,5081,5082,5083,5084,5085,5002,5003,5079,5078,5004,5005,5077,5009,5006,5007,5008,5013,5010,5011,5012,5016,5014,5015,5019,5017,5018,5076,5020,5021,5075,5074,5022,5023,5073,5072,5024,5025,5028,5027,5026,5071,5070,5029,5030,5031,5032,5069,5068,5067,5066,5065,5033,5035,5034,5036,5037,5038,5039,5064,5040,5041,5042,5043,5063,5062,5044,5045,5046,5047,5061,5060,5049,5048,5059,5058,5057,5056,5051,5050,5055,5052,5053,5054"/>
+ </object>
+ <object class="org.eclipse.gmf.runtime.notation.Node" id="generated-compartments">
+ <method name="getType()" value="7001,7002,7003,7004,7005,7006,7007,7008,7009,7010,7011,7012,7013,7014,7015,7016,7017,7018,7019,7020,7021,7022,7023,7024,7025,7026,7027,7028,7029,7030,7031,7032,7033,7034,7035,7036,7037,7038,7039,7040,7041,7042,7043,7044,7045,7046,7047,7048,7049,7050,7051,7052,7053,7054,7055,7056,7057,7058,7059,7060,7061,7062,7063,7064,7065,7066,7067,7068,7069,7070,7071,7072,7073,7074,7075,7076,7077,7078,7079,7080,7081,7082,7083,7084"/>
+ </object>
+ <context views="generated-diagram,generated-nodes,generated-links,generated-labels,generated-compartments"/>
+ </editpartProvider>
+ </extension>
+
+ <extension point="org.eclipse.gmf.runtime.emf.ui.modelingAssistantProviders" id="modelassist-provider">
+ <?gmfgen generated="true"?>
+ <modelingAssistantProvider class="comrel.diagram.providers.ComrelModelingAssistantProvider">
+ <Priority name="Lowest"/>
+ <object class="comrel.diagram.edit.parts.CompositeRefactoringEditPart" id="CompositeRefactoring_1000"/>
+ <object class="comrel.diagram.edit.parts.SingleInputPortEditPart" id="SingleInputPort_2001"/>
+ <object class="comrel.diagram.edit.parts.CartesianQueuedUnitEditPart" id="CartesianQueuedUnit_2002"/>
+ <object class="comrel.diagram.edit.parts.ParallelQueuedUnitEditPart" id="ParallelQueuedUnit_2003"/>
+ <object class="comrel.diagram.edit.parts.SingleQueuedUnitEditPart" id="SingleQueuedUnit_2004"/>
+ <object class="comrel.diagram.edit.parts.SequentialUnitEditPart" id="SequentialUnit_2005"/>
+ <object class="comrel.diagram.edit.parts.ConditionalUnitEditPart" id="ConditionalUnit_2006"/>
+ <object class="comrel.diagram.edit.parts.AtomicUnitEditPart" id="AtomicUnit_2007"/>
+ <context elements="CompositeRefactoring_1000,SingleInputPort_2001,CartesianQueuedUnit_2002,ParallelQueuedUnit_2003,SingleQueuedUnit_2004,SequentialUnit_2005,ConditionalUnit_2006,AtomicUnit_2007"/>
+ </modelingAssistantProvider>
+ </extension>
+
+ <extension point="org.eclipse.gmf.runtime.common.ui.services.iconProviders" id="icon-provider">
+ <?gmfgen generated="true"?>
+ <IconProvider class="comrel.diagram.providers.ComrelIconProvider">
+ <Priority name="Low"/>
+ </IconProvider>
+ </extension>
+
+ <extension point="org.eclipse.gmf.runtime.common.ui.services.parserProviders" id="parser-provider">
+ <?gmfgen generated="true"?>
+ <ParserProvider class="comrel.diagram.providers.ComrelParserProvider">
+ <Priority name="Lowest"/>
+ </ParserProvider>
+ </extension>
+
+ <extension point="org.eclipse.gmf.runtime.diagram.ui.decoratorProviders" id="decorator-provider">
+ <?gmfgen generated="true"?>
+ <decoratorProvider class="comrel.diagram.providers.ComrelShortcutsDecoratorProvider">
+ <Priority name="Lowest"/>
+ <object class="org.eclipse.gmf.runtime.notation.Node(org.eclipse.gmf.runtime.notation)" id="generated-top-nodes">
+ <method name="getType()" value="2001,2002,2003,2004,2005,2006,2007"/>
+ </object>
+ <context decoratorTargets="generated-top-nodes"/>
+ </decoratorProvider>
+ </extension>
+
+ <extension point="org.eclipse.gmf.runtime.emf.type.core.elementTypes" id="element-types">
+ <?gmfgen generated="true"?>
+ <metamodel nsURI="http://comrel/0.1">
+ <metamodelType
+ id="comrel.diagram.CompositeRefactoring_1000"
+ name="%metatype.name.CompositeRefactoring_1000"
+ kind="org.eclipse.gmf.runtime.emf.type.core.IHintedType"
+ eclass="CompositeRefactoring"
+ edithelper="comrel.diagram.edit.helpers.CompositeRefactoringEditHelper">
+ <param name="semanticHint" value="1000"/>
+ </metamodelType>
+ </metamodel>
+ <metamodel nsURI="http://comrel/0.1">
+ <metamodelType
+ id="comrel.diagram.SingleInputPort_2001"
+ name="%metatype.name.SingleInputPort_2001"
+ kind="org.eclipse.gmf.runtime.emf.type.core.IHintedType"
+ eclass="SingleInputPort"
+ edithelper="comrel.diagram.edit.helpers.SingleInputPortEditHelper">
+ <param name="semanticHint" value="2001"/>
+ </metamodelType>
+ </metamodel>
+ <metamodel nsURI="http://comrel/0.1">
+ <metamodelType
+ id="comrel.diagram.CartesianQueuedUnit_2002"
+ name="%metatype.name.CartesianQueuedUnit_2002"
+ kind="org.eclipse.gmf.runtime.emf.type.core.IHintedType"
+ eclass="CartesianQueuedUnit"
+ edithelper="comrel.diagram.edit.helpers.CartesianQueuedUnitEditHelper">
+ <param name="semanticHint" value="2002"/>
+ </metamodelType>
+ </metamodel>
+ <metamodel nsURI="http://comrel/0.1">
+ <specializationType
+ id="comrel.diagram.ParallelQueuedUnit_2003"
+ name="%metatype.name.ParallelQueuedUnit_2003"
+ kind="org.eclipse.gmf.runtime.emf.type.core.IHintedType">
+ <specializes id="comrel.diagram.ParallelQueuedUnit_3004"/>
+ <param name="semanticHint" value="2003"/>
+ </specializationType>
+ </metamodel>
+ <metamodel nsURI="http://comrel/0.1">
+ <specializationType
+ id="comrel.diagram.SingleQueuedUnit_2004"
+ name="%metatype.name.SingleQueuedUnit_2004"
+ kind="org.eclipse.gmf.runtime.emf.type.core.IHintedType">
+ <specializes id="comrel.diagram.SingleQueuedUnit_3022"/>
+ <param name="semanticHint" value="2004"/>
+ </specializationType>
+ </metamodel>
+ <metamodel nsURI="http://comrel/0.1">
+ <specializationType
+ id="comrel.diagram.SequentialUnit_2005"
+ name="%metatype.name.SequentialUnit_2005"
+ kind="org.eclipse.gmf.runtime.emf.type.core.IHintedType">
+ <specializes id="comrel.diagram.SequentialUnit_3026"/>
+ <param name="semanticHint" value="2005"/>
+ </specializationType>
+ </metamodel>
+ <metamodel nsURI="http://comrel/0.1">
+ <specializationType
+ id="comrel.diagram.ConditionalUnit_2006"
+ name="%metatype.name.ConditionalUnit_2006"
+ kind="org.eclipse.gmf.runtime.emf.type.core.IHintedType">
+ <specializes id="comrel.diagram.ConditionalUnit_3030"/>
+ <param name="semanticHint" value="2006"/>
+ </specializationType>
+ </metamodel>
+ <metamodel nsURI="http://comrel/0.1">
+ <specializationType
+ id="comrel.diagram.AtomicUnit_2007"
+ name="%metatype.name.AtomicUnit_2007"
+ kind="org.eclipse.gmf.runtime.emf.type.core.IHintedType">
+ <specializes id="comrel.diagram.AtomicUnit_3034"/>
+ <param name="semanticHint" value="2007"/>
+ </specializationType>
+ </metamodel>
+ <metamodel nsURI="http://comrel/0.1">
+ <specializationType
+ id="comrel.diagram.SingleInputPort_3001"
+ name="%metatype.name.SingleInputPort_3001"
+ kind="org.eclipse.gmf.runtime.emf.type.core.IHintedType">
+ <specializes id="comrel.diagram.SingleInputPort_2001"/>
+ <param name="semanticHint" value="3001"/>
+ </specializationType>
+ </metamodel>
+ <metamodel nsURI="http://comrel/0.1">
+ <metamodelType
+ id="comrel.diagram.MultiInputPort_3002"
+ name="%metatype.name.MultiInputPort_3002"
+ kind="org.eclipse.gmf.runtime.emf.type.core.IHintedType"
+ eclass="MultiInputPort"
+ edithelper="comrel.diagram.edit.helpers.MultiInputPortEditHelper">
+ <param name="semanticHint" value="3002"/>
+ </metamodelType>
+ </metamodel>
+ <metamodel nsURI="http://comrel/0.1">
+ <specializationType
+ id="comrel.diagram.CartesianQueuedUnit_3003"
+ name="%metatype.name.CartesianQueuedUnit_3003"
+ kind="org.eclipse.gmf.runtime.emf.type.core.IHintedType">
+ <specializes id="comrel.diagram.CartesianQueuedUnit_2002"/>
+ <param name="semanticHint" value="3003"/>
+ </specializationType>
+ </metamodel>
+ <metamodel nsURI="http://comrel/0.1">
+ <metamodelType
+ id="comrel.diagram.ParallelQueuedUnit_3004"
+ name="%metatype.name.ParallelQueuedUnit_3004"
+ kind="org.eclipse.gmf.runtime.emf.type.core.IHintedType"
+ eclass="ParallelQueuedUnit"
+ edithelper="comrel.diagram.edit.helpers.ParallelQueuedUnitEditHelper">
+ <param name="semanticHint" value="3004"/>
+ </metamodelType>
+ </metamodel>
+ <metamodel nsURI="http://comrel/0.1">
+ <specializationType
+ id="comrel.diagram.SingleInputPort_3005"
+ name="%metatype.name.SingleInputPort_3005"
+ kind="org.eclipse.gmf.runtime.emf.type.core.IHintedType">
+ <specializes id="comrel.diagram.SingleInputPort_2001"/>
+ <param name="semanticHint" value="3005"/>
+ </specializationType>
+ </metamodel>
+ <metamodel nsURI="http://comrel/0.1">
+ <specializationType
+ id="comrel.diagram.MultiInputPort_3006"
+ name="%metatype.name.MultiInputPort_3006"
+ kind="org.eclipse.gmf.runtime.emf.type.core.IHintedType">
+ <specializes id="comrel.diagram.MultiInputPort_3002"/>
+ <param name="semanticHint" value="3006"/>
+ </specializationType>
+ </metamodel>
+ <metamodel nsURI="http://comrel/0.1">
+ <specializationType
+ id="comrel.diagram.CartesianQueuedUnit_3007"
+ name="%metatype.name.CartesianQueuedUnit_3007"
+ kind="org.eclipse.gmf.runtime.emf.type.core.IHintedType">
+ <specializes id="comrel.diagram.CartesianQueuedUnit_2002"/>
+ <param name="semanticHint" value="3007"/>
+ </specializationType>
+ </metamodel>
+ <metamodel nsURI="http://comrel/0.1">
+ <metamodelType
+ id="comrel.diagram.SingleFeatureUnit_3008"
+ name="%metatype.name.SingleFeatureUnit_3008"
+ kind="org.eclipse.gmf.runtime.emf.type.core.IHintedType"
+ eclass="SingleFeatureUnit"
+ edithelper="comrel.diagram.edit.helpers.SingleFeatureUnitEditHelper">
+ <param name="semanticHint" value="3008"/>
+ </metamodelType>
+ </metamodel>
+ <metamodel nsURI="http://comrel/0.1">
+ <specializationType
+ id="comrel.diagram.SingleInputPort_3009"
+ name="%metatype.name.SingleInputPort_3009"
+ kind="org.eclipse.gmf.runtime.emf.type.core.IHintedType">
+ <specializes id="comrel.diagram.SingleInputPort_2001"/>
+ <param name="semanticHint" value="3009"/>
+ </specializationType>
+ </metamodel>
+ <metamodel nsURI="http://comrel/0.1">
+ <specializationType
+ id="comrel.diagram.MultiInputPort_3010"
+ name="%metatype.name.MultiInputPort_3010"
+ kind="org.eclipse.gmf.runtime.emf.type.core.IHintedType">
+ <specializes id="comrel.diagram.MultiInputPort_3002"/>
+ <param name="semanticHint" value="3010"/>
+ </specializationType>
+ </metamodel>
+ <metamodel nsURI="http://comrel/0.1">
+ <metamodelType
+ id="comrel.diagram.SingleOutputPort_3011"
+ name="%metatype.name.SingleOutputPort_3011"
+ kind="org.eclipse.gmf.runtime.emf.type.core.IHintedType"
+ eclass="SingleOutputPort"
+ edithelper="comrel.diagram.edit.helpers.SingleOutputPortEditHelper">
+ <param name="semanticHint" value="3011"/>
+ </metamodelType>
+ </metamodel>
+ <metamodel nsURI="http://comrel/0.1">
+ <metamodelType
+ id="comrel.diagram.MultiFeatureUnit_3012"
+ name="%metatype.name.MultiFeatureUnit_3012"
+ kind="org.eclipse.gmf.runtime.emf.type.core.IHintedType"
+ eclass="MultiFeatureUnit"
+ edithelper="comrel.diagram.edit.helpers.MultiFeatureUnitEditHelper">
+ <param name="semanticHint" value="3012"/>
+ </metamodelType>
+ </metamodel>
+ <metamodel nsURI="http://comrel/0.1">
+ <specializationType
+ id="comrel.diagram.SingleInputPort_3013"
+ name="%metatype.name.SingleInputPort_3013"
+ kind="org.eclipse.gmf.runtime.emf.type.core.IHintedType">
+ <specializes id="comrel.diagram.SingleInputPort_2001"/>
+ <param name="semanticHint" value="3013"/>
+ </specializationType>
+ </metamodel>
+ <metamodel nsURI="http://comrel/0.1">
+ <specializationType
+ id="comrel.diagram.MultiInputPort_3014"
+ name="%metatype.name.MultiInputPort_3014"
+ kind="org.eclipse.gmf.runtime.emf.type.core.IHintedType">
+ <specializes id="comrel.diagram.MultiInputPort_3002"/>
+ <param name="semanticHint" value="3014"/>
+ </specializationType>
+ </metamodel>
+ <metamodel nsURI="http://comrel/0.1">
+ <metamodelType
+ id="comrel.diagram.MultiOutputPort_3015"
+ name="%metatype.name.MultiOutputPort_3015"
+ kind="org.eclipse.gmf.runtime.emf.type.core.IHintedType"
+ eclass="MultiOutputPort"
+ edithelper="comrel.diagram.edit.helpers.MultiOutputPortEditHelper">
+ <param name="semanticHint" value="3015"/>
+ </metamodelType>
+ </metamodel>
+ <metamodel nsURI="http://comrel/0.1">
+ <metamodelType
+ id="comrel.diagram.SingleFilterUnit_3016"
+ name="%metatype.name.SingleFilterUnit_3016"
+ kind="org.eclipse.gmf.runtime.emf.type.core.IHintedType"
+ eclass="SingleFilterUnit"
+ edithelper="comrel.diagram.edit.helpers.SingleFilterUnitEditHelper">
+ <param name="semanticHint" value="3016"/>
+ </metamodelType>
+ </metamodel>
+ <metamodel nsURI="http://comrel/0.1">
+ <specializationType
+ id="comrel.diagram.MultiInputPort_3017"
+ name="%metatype.name.MultiInputPort_3017"
+ kind="org.eclipse.gmf.runtime.emf.type.core.IHintedType">
+ <specializes id="comrel.diagram.MultiInputPort_3002"/>
+ <param name="semanticHint" value="3017"/>
+ </specializationType>
+ </metamodel>
+ <metamodel nsURI="http://comrel/0.1">
+ <specializationType
+ id="comrel.diagram.SingleOutputPort_3018"
+ name="%metatype.name.SingleOutputPort_3018"
+ kind="org.eclipse.gmf.runtime.emf.type.core.IHintedType">
+ <specializes id="comrel.diagram.SingleOutputPort_3011"/>
+ <param name="semanticHint" value="3018"/>
+ </specializationType>
+ </metamodel>
+ <metamodel nsURI="http://comrel/0.1">
+ <metamodelType
+ id="comrel.diagram.MultiFilterUnit_3019"
+ name="%metatype.name.MultiFilterUnit_3019"
+ kind="org.eclipse.gmf.runtime.emf.type.core.IHintedType"
+ eclass="MultiFilterUnit"
+ edithelper="comrel.diagram.edit.helpers.MultiFilterUnitEditHelper">
+ <param name="semanticHint" value="3019"/>
+ </metamodelType>
+ </metamodel>
+ <metamodel nsURI="http://comrel/0.1">
+ <specializationType
+ id="comrel.diagram.MultiInputPort_3020"
+ name="%metatype.name.MultiInputPort_3020"
+ kind="org.eclipse.gmf.runtime.emf.type.core.IHintedType">
+ <specializes id="comrel.diagram.MultiInputPort_3002"/>
+ <param name="semanticHint" value="3020"/>
+ </specializationType>
+ </metamodel>
+ <metamodel nsURI="http://comrel/0.1">
+ <specializationType
+ id="comrel.diagram.MultiOutputPort_3021"
+ name="%metatype.name.MultiOutputPort_3021"
+ kind="org.eclipse.gmf.runtime.emf.type.core.IHintedType">
+ <specializes id="comrel.diagram.MultiOutputPort_3015"/>
+ <param name="semanticHint" value="3021"/>
+ </specializationType>
+ </metamodel>
+ <metamodel nsURI="http://comrel/0.1">
+ <metamodelType
+ id="comrel.diagram.SingleQueuedUnit_3022"
+ name="%metatype.name.SingleQueuedUnit_3022"
+ kind="org.eclipse.gmf.runtime.emf.type.core.IHintedType"
+ eclass="SingleQueuedUnit"
+ edithelper="comrel.diagram.edit.helpers.SingleQueuedUnitEditHelper">
+ <param name="semanticHint" value="3022"/>
+ </metamodelType>
+ </metamodel>
+ <metamodel nsURI="http://comrel/0.1">
+ <specializationType
+ id="comrel.diagram.SingleInputPort_3023"
+ name="%metatype.name.SingleInputPort_3023"
+ kind="org.eclipse.gmf.runtime.emf.type.core.IHintedType">
+ <specializes id="comrel.diagram.SingleInputPort_2001"/>
+ <param name="semanticHint" value="3023"/>
+ </specializationType>
+ </metamodel>
+ <metamodel nsURI="http://comrel/0.1">
+ <specializationType
+ id="comrel.diagram.MultiInputPort_3024"
+ name="%metatype.name.MultiInputPort_3024"
+ kind="org.eclipse.gmf.runtime.emf.type.core.IHintedType">
+ <specializes id="comrel.diagram.MultiInputPort_3002"/>
+ <param name="semanticHint" value="3024"/>
+ </specializationType>
+ </metamodel>
+ <metamodel nsURI="http://comrel/0.1">
+ <specializationType
+ id="comrel.diagram.CartesianQueuedUnit_3025"
+ name="%metatype.name.CartesianQueuedUnit_3025"
+ kind="org.eclipse.gmf.runtime.emf.type.core.IHintedType">
+ <specializes id="comrel.diagram.CartesianQueuedUnit_2002"/>
+ <param name="semanticHint" value="3025"/>
+ </specializationType>
+ </metamodel>
+ <metamodel nsURI="http://comrel/0.1">
+ <metamodelType
+ id="comrel.diagram.SequentialUnit_3026"
+ name="%metatype.name.SequentialUnit_3026"
+ kind="org.eclipse.gmf.runtime.emf.type.core.IHintedType"
+ eclass="SequentialUnit"
+ edithelper="comrel.diagram.edit.helpers.SequentialUnitEditHelper">
+ <param name="semanticHint" value="3026"/>
+ </metamodelType>
+ </metamodel>
+ <metamodel nsURI="http://comrel/0.1">
+ <specializationType
+ id="comrel.diagram.SingleInputPort_3027"
+ name="%metatype.name.SingleInputPort_3027"
+ kind="org.eclipse.gmf.runtime.emf.type.core.IHintedType">
+ <specializes id="comrel.diagram.SingleInputPort_2001"/>
+ <param name="semanticHint" value="3027"/>
+ </specializationType>
+ </metamodel>
+ <metamodel nsURI="http://comrel/0.1">
+ <specializationType
+ id="comrel.diagram.MultiInputPort_3028"
+ name="%metatype.name.MultiInputPort_3028"
+ kind="org.eclipse.gmf.runtime.emf.type.core.IHintedType">
+ <specializes id="comrel.diagram.MultiInputPort_3002"/>
+ <param name="semanticHint" value="3028"/>
+ </specializationType>
+ </metamodel>
+ <metamodel nsURI="http://comrel/0.1">
+ <specializationType
+ id="comrel.diagram.CartesianQueuedUnit_3029"
+ name="%metatype.name.CartesianQueuedUnit_3029"
+ kind="org.eclipse.gmf.runtime.emf.type.core.IHintedType">
+ <specializes id="comrel.diagram.CartesianQueuedUnit_2002"/>
+ <param name="semanticHint" value="3029"/>
+ </specializationType>
+ </metamodel>
+ <metamodel nsURI="http://comrel/0.1">
+ <metamodelType
+ id="comrel.diagram.ConditionalUnit_3030"
+ name="%metatype.name.ConditionalUnit_3030"
+ kind="org.eclipse.gmf.runtime.emf.type.core.IHintedType"
+ eclass="ConditionalUnit"
+ edithelper="comrel.diagram.edit.helpers.ConditionalUnitEditHelper">
+ <param name="semanticHint" value="3030"/>
+ </metamodelType>
+ </metamodel>
+ <metamodel nsURI="http://comrel/0.1">
+ <specializationType
+ id="comrel.diagram.SingleInputPort_3031"
+ name="%metatype.name.SingleInputPort_3031"
+ kind="org.eclipse.gmf.runtime.emf.type.core.IHintedType">
+ <specializes id="comrel.diagram.SingleInputPort_2001"/>
+ <param name="semanticHint" value="3031"/>
+ </specializationType>
+ </metamodel>
+ <metamodel nsURI="http://comrel/0.1">
+ <specializationType
+ id="comrel.diagram.MultiInputPort_3032"
+ name="%metatype.name.MultiInputPort_3032"
+ kind="org.eclipse.gmf.runtime.emf.type.core.IHintedType">
+ <specializes id="comrel.diagram.MultiInputPort_3002"/>
+ <param name="semanticHint" value="3032"/>
+ </specializationType>
+ </metamodel>
+ <metamodel nsURI="http://comrel/0.1">
+ <specializationType
+ id="comrel.diagram.CartesianQueuedUnit_3033"
+ name="%metatype.name.CartesianQueuedUnit_3033"
+ kind="org.eclipse.gmf.runtime.emf.type.core.IHintedType">
+ <specializes id="comrel.diagram.CartesianQueuedUnit_2002"/>
+ <param name="semanticHint" value="3033"/>
+ </specializationType>
+ </metamodel>
+ <metamodel nsURI="http://comrel/0.1">
+ <metamodelType
+ id="comrel.diagram.AtomicUnit_3034"
+ name="%metatype.name.AtomicUnit_3034"
+ kind="org.eclipse.gmf.runtime.emf.type.core.IHintedType"
+ eclass="AtomicUnit"
+ edithelper="comrel.diagram.edit.helpers.AtomicUnitEditHelper">
+ <param name="semanticHint" value="3034"/>
+ </metamodelType>
+ </metamodel>
+ <metamodel nsURI="http://comrel/0.1">
+ <specializationType
+ id="comrel.diagram.SingleInputPort_3035"
+ name="%metatype.name.SingleInputPort_3035"
+ kind="org.eclipse.gmf.runtime.emf.type.core.IHintedType">
+ <specializes id="comrel.diagram.SingleInputPort_2001"/>
+ <param name="semanticHint" value="3035"/>
+ </specializationType>
+ </metamodel>
+ <metamodel nsURI="http://comrel/0.1">
+ <specializationType
+ id="comrel.diagram.ParallelQueuedUnit_3036"
+ name="%metatype.name.ParallelQueuedUnit_3036"
+ kind="org.eclipse.gmf.runtime.emf.type.core.IHintedType">
+ <specializes id="comrel.diagram.ParallelQueuedUnit_3004"/>
+ <param name="semanticHint" value="3036"/>
+ </specializationType>
+ </metamodel>
+ <metamodel nsURI="http://comrel/0.1">
+ <specializationType
+ id="comrel.diagram.ParallelQueuedUnit_3037"
+ name="%metatype.name.ParallelQueuedUnit_3037"
+ kind="org.eclipse.gmf.runtime.emf.type.core.IHintedType">
+ <specializes id="comrel.diagram.ParallelQueuedUnit_3004"/>
+ <param name="semanticHint" value="3037"/>
+ </specializationType>
+ </metamodel>
+ <metamodel nsURI="http://comrel/0.1">
+ <specializationType
+ id="comrel.diagram.SingleFeatureUnit_3038"
+ name="%metatype.name.SingleFeatureUnit_3038"
+ kind="org.eclipse.gmf.runtime.emf.type.core.IHintedType">
+ <specializes id="comrel.diagram.SingleFeatureUnit_3008"/>
+ <param name="semanticHint" value="3038"/>
+ </specializationType>
+ </metamodel>
+ <metamodel nsURI="http://comrel/0.1">
+ <specializationType
+ id="comrel.diagram.MultiFeatureUnit_3039"
+ name="%metatype.name.MultiFeatureUnit_3039"
+ kind="org.eclipse.gmf.runtime.emf.type.core.IHintedType">
+ <specializes id="comrel.diagram.MultiFeatureUnit_3012"/>
+ <param name="semanticHint" value="3039"/>
+ </specializationType>
+ </metamodel>
+ <metamodel nsURI="http://comrel/0.1">
+ <specializationType
+ id="comrel.diagram.SingleFilterUnit_3040"
+ name="%metatype.name.SingleFilterUnit_3040"
+ kind="org.eclipse.gmf.runtime.emf.type.core.IHintedType">
+ <specializes id="comrel.diagram.SingleFilterUnit_3016"/>
+ <param name="semanticHint" value="3040"/>
+ </specializationType>
+ </metamodel>
+ <metamodel nsURI="http://comrel/0.1">
+ <specializationType
+ id="comrel.diagram.MultiFilterUnit_3041"
+ name="%metatype.name.MultiFilterUnit_3041"
+ kind="org.eclipse.gmf.runtime.emf.type.core.IHintedType">
+ <specializes id="comrel.diagram.MultiFilterUnit_3019"/>
+ <param name="semanticHint" value="3041"/>
+ </specializationType>
+ </metamodel>
+ <metamodel nsURI="http://comrel/0.1">
+ <specializationType
+ id="comrel.diagram.SingleQueuedUnit_3042"
+ name="%metatype.name.SingleQueuedUnit_3042"
+ kind="org.eclipse.gmf.runtime.emf.type.core.IHintedType">
+ <specializes id="comrel.diagram.SingleQueuedUnit_3022"/>
+ <param name="semanticHint" value="3042"/>
+ </specializationType>
+ </metamodel>
+ <metamodel nsURI="http://comrel/0.1">
+ <specializationType
+ id="comrel.diagram.ParallelQueuedUnit_3043"
+ name="%metatype.name.ParallelQueuedUnit_3043"
+ kind="org.eclipse.gmf.runtime.emf.type.core.IHintedType">
+ <specializes id="comrel.diagram.ParallelQueuedUnit_3004"/>
+ <param name="semanticHint" value="3043"/>
+ </specializationType>
+ </metamodel>
+ <metamodel nsURI="http://comrel/0.1">
+ <specializationType
+ id="comrel.diagram.SequentialUnit_3044"
+ name="%metatype.name.SequentialUnit_3044"
+ kind="org.eclipse.gmf.runtime.emf.type.core.IHintedType">
+ <specializes id="comrel.diagram.SequentialUnit_3026"/>
+ <param name="semanticHint" value="3044"/>
+ </specializationType>
+ </metamodel>
+ <metamodel nsURI="http://comrel/0.1">
+ <specializationType
+ id="comrel.diagram.ParallelQueuedUnit_3045"
+ name="%metatype.name.ParallelQueuedUnit_3045"
+ kind="org.eclipse.gmf.runtime.emf.type.core.IHintedType">
+ <specializes id="comrel.diagram.ParallelQueuedUnit_3004"/>
+ <param name="semanticHint" value="3045"/>
+ </specializationType>
+ </metamodel>
+ <metamodel nsURI="http://comrel/0.1">
+ <specializationType
+ id="comrel.diagram.ConditionalUnit_3046"
+ name="%metatype.name.ConditionalUnit_3046"
+ kind="org.eclipse.gmf.runtime.emf.type.core.IHintedType">
+ <specializes id="comrel.diagram.ConditionalUnit_3030"/>
+ <param name="semanticHint" value="3046"/>
+ </specializationType>
+ </metamodel>
+ <metamodel nsURI="http://comrel/0.1">
+ <specializationType
+ id="comrel.diagram.CartesianQueuedUnit_3047"
+ name="%metatype.name.CartesianQueuedUnit_3047"
+ kind="org.eclipse.gmf.runtime.emf.type.core.IHintedType">
+ <specializes id="comrel.diagram.CartesianQueuedUnit_2002"/>
+ <param name="semanticHint" value="3047"/>
+ </specializationType>
+ </metamodel>
+ <metamodel nsURI="http://comrel/0.1">
+ <specializationType
+ id="comrel.diagram.ParallelQueuedUnit_3048"
+ name="%metatype.name.ParallelQueuedUnit_3048"
+ kind="org.eclipse.gmf.runtime.emf.type.core.IHintedType">
+ <specializes id="comrel.diagram.ParallelQueuedUnit_3004"/>
+ <param name="semanticHint" value="3048"/>
+ </specializationType>
+ </metamodel>
+ <metamodel nsURI="http://comrel/0.1">
+ <specializationType
+ id="comrel.diagram.AtomicUnit_3049"
+ name="%metatype.name.AtomicUnit_3049"
+ kind="org.eclipse.gmf.runtime.emf.type.core.IHintedType">
+ <specializes id="comrel.diagram.AtomicUnit_3034"/>
+ <param name="semanticHint" value="3049"/>
+ </specializationType>
+ </metamodel>
+ <metamodel nsURI="http://comrel/0.1">
+ <specializationType
+ id="comrel.diagram.SingleFeatureUnit_3050"
+ name="%metatype.name.SingleFeatureUnit_3050"
+ kind="org.eclipse.gmf.runtime.emf.type.core.IHintedType">
+ <specializes id="comrel.diagram.SingleFeatureUnit_3008"/>
+ <param name="semanticHint" value="3050"/>
+ </specializationType>
+ </metamodel>
+ <metamodel nsURI="http://comrel/0.1">
+ <specializationType
+ id="comrel.diagram.MultiFeatureUnit_3051"
+ name="%metatype.name.MultiFeatureUnit_3051"
+ kind="org.eclipse.gmf.runtime.emf.type.core.IHintedType">
+ <specializes id="comrel.diagram.MultiFeatureUnit_3012"/>
+ <param name="semanticHint" value="3051"/>
+ </specializationType>
+ </metamodel>
+ <metamodel nsURI="http://comrel/0.1">
+ <specializationType
+ id="comrel.diagram.SingleFilterUnit_3052"
+ name="%metatype.name.SingleFilterUnit_3052"
+ kind="org.eclipse.gmf.runtime.emf.type.core.IHintedType">
+ <specializes id="comrel.diagram.SingleFilterUnit_3016"/>
+ <param name="semanticHint" value="3052"/>
+ </specializationType>
+ </metamodel>
+ <metamodel nsURI="http://comrel/0.1">
+ <specializationType
+ id="comrel.diagram.MultiFilterUnit_3053"
+ name="%metatype.name.MultiFilterUnit_3053"
+ kind="org.eclipse.gmf.runtime.emf.type.core.IHintedType">
+ <specializes id="comrel.diagram.MultiFilterUnit_3019"/>
+ <param name="semanticHint" value="3053"/>
+ </specializationType>
+ </metamodel>
+ <metamodel nsURI="http://comrel/0.1">
+ <specializationType
+ id="comrel.diagram.SingleQueuedUnit_3054"
+ name="%metatype.name.SingleQueuedUnit_3054"
+ kind="org.eclipse.gmf.runtime.emf.type.core.IHintedType">
+ <specializes id="comrel.diagram.SingleQueuedUnit_3022"/>
+ <param name="semanticHint" value="3054"/>
+ </specializationType>
+ </metamodel>
+ <metamodel nsURI="http://comrel/0.1">
+ <specializationType
+ id="comrel.diagram.SingleFeatureUnit_3055"
+ name="%metatype.name.SingleFeatureUnit_3055"
+ kind="org.eclipse.gmf.runtime.emf.type.core.IHintedType">
+ <specializes id="comrel.diagram.SingleFeatureUnit_3008"/>
+ <param name="semanticHint" value="3055"/>
+ </specializationType>
+ </metamodel>
+ <metamodel nsURI="http://comrel/0.1">
+ <specializationType
+ id="comrel.diagram.MultiFeatureUnit_3056"
+ name="%metatype.name.MultiFeatureUnit_3056"
+ kind="org.eclipse.gmf.runtime.emf.type.core.IHintedType">
+ <specializes id="comrel.diagram.MultiFeatureUnit_3012"/>
+ <param name="semanticHint" value="3056"/>
+ </specializationType>
+ </metamodel>
+ <metamodel nsURI="http://comrel/0.1">
+ <specializationType
+ id="comrel.diagram.SingleFilterUnit_3057"
+ name="%metatype.name.SingleFilterUnit_3057"
+ kind="org.eclipse.gmf.runtime.emf.type.core.IHintedType">
+ <specializes id="comrel.diagram.SingleFilterUnit_3016"/>
+ <param name="semanticHint" value="3057"/>
+ </specializationType>
+ </metamodel>
+ <metamodel nsURI="http://comrel/0.1">
+ <specializationType
+ id="comrel.diagram.MultiFilterUnit_3058"
+ name="%metatype.name.MultiFilterUnit_3058"
+ kind="org.eclipse.gmf.runtime.emf.type.core.IHintedType">
+ <specializes id="comrel.diagram.MultiFilterUnit_3019"/>
+ <param name="semanticHint" value="3058"/>
+ </specializationType>
+ </metamodel>
+ <metamodel nsURI="http://comrel/0.1">
+ <specializationType
+ id="comrel.diagram.SingleQueuedUnit_3059"
+ name="%metatype.name.SingleQueuedUnit_3059"
+ kind="org.eclipse.gmf.runtime.emf.type.core.IHintedType">
+ <specializes id="comrel.diagram.SingleQueuedUnit_3022"/>
+ <param name="semanticHint" value="3059"/>
+ </specializationType>
+ </metamodel>
+ <metamodel nsURI="http://comrel/0.1">
+ <specializationType
+ id="comrel.diagram.SequentialUnit_3060"
+ name="%metatype.name.SequentialUnit_3060"
+ kind="org.eclipse.gmf.runtime.emf.type.core.IHintedType">
+ <specializes id="comrel.diagram.SequentialUnit_3026"/>
+ <param name="semanticHint" value="3060"/>
+ </specializationType>
+ </metamodel>
+ <metamodel nsURI="http://comrel/0.1">
+ <specializationType
+ id="comrel.diagram.SingleFeatureUnit_3061"
+ name="%metatype.name.SingleFeatureUnit_3061"
+ kind="org.eclipse.gmf.runtime.emf.type.core.IHintedType">
+ <specializes id="comrel.diagram.SingleFeatureUnit_3008"/>
+ <param name="semanticHint" value="3061"/>
+ </specializationType>
+ </metamodel>
+ <metamodel nsURI="http://comrel/0.1">
+ <specializationType
+ id="comrel.diagram.MultiFeatureUnit_3062"
+ name="%metatype.name.MultiFeatureUnit_3062"
+ kind="org.eclipse.gmf.runtime.emf.type.core.IHintedType">
+ <specializes id="comrel.diagram.MultiFeatureUnit_3012"/>
+ <param name="semanticHint" value="3062"/>
+ </specializationType>
+ </metamodel>
+ <metamodel nsURI="http://comrel/0.1">
+ <specializationType
+ id="comrel.diagram.SingleFilterUnit_3063"
+ name="%metatype.name.SingleFilterUnit_3063"
+ kind="org.eclipse.gmf.runtime.emf.type.core.IHintedType">
+ <specializes id="comrel.diagram.SingleFilterUnit_3016"/>
+ <param name="semanticHint" value="3063"/>
+ </specializationType>
+ </metamodel>
+ <metamodel nsURI="http://comrel/0.1">
+ <specializationType
+ id="comrel.diagram.MultiFilterUnit_3064"
+ name="%metatype.name.MultiFilterUnit_3064"
+ kind="org.eclipse.gmf.runtime.emf.type.core.IHintedType">
+ <specializes id="comrel.diagram.MultiFilterUnit_3019"/>
+ <param name="semanticHint" value="3064"/>
+ </specializationType>
+ </metamodel>
+ <metamodel nsURI="http://comrel/0.1">
+ <specializationType
+ id="comrel.diagram.SingleQueuedUnit_3065"
+ name="%metatype.name.SingleQueuedUnit_3065"
+ kind="org.eclipse.gmf.runtime.emf.type.core.IHintedType">
+ <specializes id="comrel.diagram.SingleQueuedUnit_3022"/>
+ <param name="semanticHint" value="3065"/>
+ </specializationType>
+ </metamodel>
+ <metamodel nsURI="http://comrel/0.1">
+ <specializationType
+ id="comrel.diagram.ConditionalUnit_3066"
+ name="%metatype.name.ConditionalUnit_3066"
+ kind="org.eclipse.gmf.runtime.emf.type.core.IHintedType">
+ <specializes id="comrel.diagram.ConditionalUnit_3030"/>
+ <param name="semanticHint" value="3066"/>
+ </specializationType>
+ </metamodel>
+ <metamodel nsURI="http://comrel/0.1">
+ <specializationType
+ id="comrel.diagram.SingleQueuedUnit_3067"
+ name="%metatype.name.SingleQueuedUnit_3067"
+ kind="org.eclipse.gmf.runtime.emf.type.core.IHintedType">
+ <specializes id="comrel.diagram.SingleQueuedUnit_3022"/>
+ <param name="semanticHint" value="3067"/>
+ </specializationType>
+ </metamodel>
+ <metamodel nsURI="http://comrel/0.1">
+ <specializationType
+ id="comrel.diagram.AtomicUnit_3068"
+ name="%metatype.name.AtomicUnit_3068"
+ kind="org.eclipse.gmf.runtime.emf.type.core.IHintedType">
+ <specializes id="comrel.diagram.AtomicUnit_3034"/>
+ <param name="semanticHint" value="3068"/>
+ </specializationType>
+ </metamodel>
+ <metamodel nsURI="http://comrel/0.1">
+ <specializationType
+ id="comrel.diagram.SequentialUnit_3069"
+ name="%metatype.name.SequentialUnit_3069"
+ kind="org.eclipse.gmf.runtime.emf.type.core.IHintedType">
+ <specializes id="comrel.diagram.SequentialUnit_3026"/>
+ <param name="semanticHint" value="3069"/>
+ </specializationType>
+ </metamodel>
+ <metamodel nsURI="http://comrel/0.1">
+ <specializationType
+ id="comrel.diagram.SequentialUnit_3070"
+ name="%metatype.name.SequentialUnit_3070"
+ kind="org.eclipse.gmf.runtime.emf.type.core.IHintedType">
+ <specializes id="comrel.diagram.SequentialUnit_3026"/>
+ <param name="semanticHint" value="3070"/>
+ </specializationType>
+ </metamodel>
+ <metamodel nsURI="http://comrel/0.1">
+ <specializationType
+ id="comrel.diagram.ConditionalUnit_3071"
+ name="%metatype.name.ConditionalUnit_3071"
+ kind="org.eclipse.gmf.runtime.emf.type.core.IHintedType">
+ <specializes id="comrel.diagram.ConditionalUnit_3030"/>
+ <param name="semanticHint" value="3071"/>
+ </specializationType>
+ </metamodel>
+ <metamodel nsURI="http://comrel/0.1">
+ <specializationType
+ id="comrel.diagram.ConditionalUnit_3072"
+ name="%metatype.name.ConditionalUnit_3072"
+ kind="org.eclipse.gmf.runtime.emf.type.core.IHintedType">
+ <specializes id="comrel.diagram.ConditionalUnit_3030"/>
+ <param name="semanticHint" value="3072"/>
+ </specializationType>
+ </metamodel>
+ <metamodel nsURI="http://comrel/0.1">
+ <specializationType
+ id="comrel.diagram.SequentialUnit_3073"
+ name="%metatype.name.SequentialUnit_3073"
+ kind="org.eclipse.gmf.runtime.emf.type.core.IHintedType">
+ <specializes id="comrel.diagram.SequentialUnit_3026"/>
+ <param name="semanticHint" value="3073"/>
+ </specializationType>
+ </metamodel>
+ <metamodel nsURI="http://comrel/0.1">
+ <specializationType
+ id="comrel.diagram.AtomicUnit_3074"
+ name="%metatype.name.AtomicUnit_3074"
+ kind="org.eclipse.gmf.runtime.emf.type.core.IHintedType">
+ <specializes id="comrel.diagram.AtomicUnit_3034"/>
+ <param name="semanticHint" value="3074"/>
+ </specializationType>
+ </metamodel>
+ <metamodel nsURI="http://comrel/0.1">
+ <specializationType
+ id="comrel.diagram.ConditionalUnit_3075"
+ name="%metatype.name.ConditionalUnit_3075"
+ kind="org.eclipse.gmf.runtime.emf.type.core.IHintedType">
+ <specializes id="comrel.diagram.ConditionalUnit_3030"/>
+ <param name="semanticHint" value="3075"/>
+ </specializationType>
+ </metamodel>
+ <metamodel nsURI="http://comrel/0.1">
+ <metamodelType
+ id="comrel.diagram.ConditionCheck_3076"
+ name="%metatype.name.ConditionCheck_3076"
+ kind="org.eclipse.gmf.runtime.emf.type.core.IHintedType"
+ eclass="ConditionCheck"
+ edithelper="comrel.diagram.edit.helpers.ConditionCheckEditHelper">
+ <param name="semanticHint" value="3076"/>
+ </metamodelType>
+ </metamodel>
+ <metamodel nsURI="http://comrel/0.1">
+ <specializationType
+ id="comrel.diagram.AtomicUnit_3077"
+ name="%metatype.name.AtomicUnit_3077"
+ kind="org.eclipse.gmf.runtime.emf.type.core.IHintedType">
+ <specializes id="comrel.diagram.AtomicUnit_3034"/>
+ <param name="semanticHint" value="3077"/>
+ </specializationType>
+ </metamodel>
+ <metamodel nsURI="http://comrel/0.1">
+ <specializationType
+ id="comrel.diagram.AtomicUnit_3078"
+ name="%metatype.name.AtomicUnit_3078"
+ kind="org.eclipse.gmf.runtime.emf.type.core.IHintedType">
+ <specializes id="comrel.diagram.AtomicUnit_3034"/>
+ <param name="semanticHint" value="3078"/>
+ </specializationType>
+ </metamodel>
+ <metamodel nsURI="http://comrel/0.1">
+ <metamodelType
+ id="comrel.diagram.SinglePortMapping_4001"
+ name="%metatype.name.SinglePortMapping_4001"
+ kind="org.eclipse.gmf.runtime.emf.type.core.IHintedType"
+ eclass="SinglePortMapping"
+ edithelper="comrel.diagram.edit.helpers.SinglePortMappingEditHelper">
+ <param name="semanticHint" value="4001"/>
+ </metamodelType>
+ </metamodel>
+ <metamodel nsURI="http://comrel/0.1">
+ <metamodelType
+ id="comrel.diagram.MultiPortMapping_4002"
+ name="%metatype.name.MultiPortMapping_4002"
+ kind="org.eclipse.gmf.runtime.emf.type.core.IHintedType"
+ eclass="MultiPortMapping"
+ edithelper="comrel.diagram.edit.helpers.MultiPortMappingEditHelper">
+ <param name="semanticHint" value="4002"/>
+ </metamodelType>
+ </metamodel>
+ <metamodel nsURI="http://comrel/0.1">
+ <metamodelType
+ id="comrel.diagram.MultiSinglePortMapping_4003"
+ name="%metatype.name.MultiSinglePortMapping_4003"
+ kind="org.eclipse.gmf.runtime.emf.type.core.IHintedType"
+ eclass="MultiSinglePortMapping"
+ edithelper="comrel.diagram.edit.helpers.MultiSinglePortMappingEditHelper">
+ <param name="semanticHint" value="4003"/>
+ </metamodelType>
+ </metamodel>
+ </extension>
+
+ <extension point="org.eclipse.gmf.runtime.emf.type.core.elementTypeBindings" id="element-types-bindings">
+ <?gmfgen generated="true"?>
+ <clientContext id="comrel.diagram.TypeContext">
+ <enablement>
+ <test
+ property="org.eclipse.gmf.runtime.emf.core.editingDomain"
+ value="comrel.diagram.EditingDomain"/>
+ </enablement>
+ </clientContext>
+ <binding context="comrel.diagram.TypeContext">
+ <elementType ref="comrel.diagram.CompositeRefactoring_1000"/>
+ <elementType ref="comrel.diagram.SingleInputPort_2001"/>
+ <elementType ref="comrel.diagram.CartesianQueuedUnit_2002"/>
+ <elementType ref="comrel.diagram.ParallelQueuedUnit_2003"/>
+ <elementType ref="comrel.diagram.SingleQueuedUnit_2004"/>
+ <elementType ref="comrel.diagram.SequentialUnit_2005"/>
+ <elementType ref="comrel.diagram.ConditionalUnit_2006"/>
+ <elementType ref="comrel.diagram.AtomicUnit_2007"/>
+ <elementType ref="comrel.diagram.SingleInputPort_3001"/>
+ <elementType ref="comrel.diagram.MultiInputPort_3002"/>
+ <elementType ref="comrel.diagram.CartesianQueuedUnit_3003"/>
+ <elementType ref="comrel.diagram.ParallelQueuedUnit_3004"/>
+ <elementType ref="comrel.diagram.SingleInputPort_3005"/>
+ <elementType ref="comrel.diagram.MultiInputPort_3006"/>
+ <elementType ref="comrel.diagram.CartesianQueuedUnit_3007"/>
+ <elementType ref="comrel.diagram.SingleFeatureUnit_3008"/>
+ <elementType ref="comrel.diagram.SingleInputPort_3009"/>
+ <elementType ref="comrel.diagram.MultiInputPort_3010"/>
+ <elementType ref="comrel.diagram.SingleOutputPort_3011"/>
+ <elementType ref="comrel.diagram.MultiFeatureUnit_3012"/>
+ <elementType ref="comrel.diagram.SingleInputPort_3013"/>
+ <elementType ref="comrel.diagram.MultiInputPort_3014"/>
+ <elementType ref="comrel.diagram.MultiOutputPort_3015"/>
+ <elementType ref="comrel.diagram.SingleFilterUnit_3016"/>
+ <elementType ref="comrel.diagram.MultiInputPort_3017"/>
+ <elementType ref="comrel.diagram.SingleOutputPort_3018"/>
+ <elementType ref="comrel.diagram.MultiFilterUnit_3019"/>
+ <elementType ref="comrel.diagram.MultiInputPort_3020"/>
+ <elementType ref="comrel.diagram.MultiOutputPort_3021"/>
+ <elementType ref="comrel.diagram.SingleQueuedUnit_3022"/>
+ <elementType ref="comrel.diagram.SingleInputPort_3023"/>
+ <elementType ref="comrel.diagram.MultiInputPort_3024"/>
+ <elementType ref="comrel.diagram.CartesianQueuedUnit_3025"/>
+ <elementType ref="comrel.diagram.SequentialUnit_3026"/>
+ <elementType ref="comrel.diagram.SingleInputPort_3027"/>
+ <elementType ref="comrel.diagram.MultiInputPort_3028"/>
+ <elementType ref="comrel.diagram.CartesianQueuedUnit_3029"/>
+ <elementType ref="comrel.diagram.ConditionalUnit_3030"/>
+ <elementType ref="comrel.diagram.SingleInputPort_3031"/>
+ <elementType ref="comrel.diagram.MultiInputPort_3032"/>
+ <elementType ref="comrel.diagram.CartesianQueuedUnit_3033"/>
+ <elementType ref="comrel.diagram.AtomicUnit_3034"/>
+ <elementType ref="comrel.diagram.SingleInputPort_3035"/>
+ <elementType ref="comrel.diagram.ParallelQueuedUnit_3036"/>
+ <elementType ref="comrel.diagram.ParallelQueuedUnit_3037"/>
+ <elementType ref="comrel.diagram.SingleFeatureUnit_3038"/>
+ <elementType ref="comrel.diagram.MultiFeatureUnit_3039"/>
+ <elementType ref="comrel.diagram.SingleFilterUnit_3040"/>
+ <elementType ref="comrel.diagram.MultiFilterUnit_3041"/>
+ <elementType ref="comrel.diagram.SingleQueuedUnit_3042"/>
+ <elementType ref="comrel.diagram.ParallelQueuedUnit_3043"/>
+ <elementType ref="comrel.diagram.SequentialUnit_3044"/>
+ <elementType ref="comrel.diagram.ParallelQueuedUnit_3045"/>
+ <elementType ref="comrel.diagram.ConditionalUnit_3046"/>
+ <elementType ref="comrel.diagram.CartesianQueuedUnit_3047"/>
+ <elementType ref="comrel.diagram.ParallelQueuedUnit_3048"/>
+ <elementType ref="comrel.diagram.AtomicUnit_3049"/>
+ <elementType ref="comrel.diagram.SingleFeatureUnit_3050"/>
+ <elementType ref="comrel.diagram.MultiFeatureUnit_3051"/>
+ <elementType ref="comrel.diagram.SingleFilterUnit_3052"/>
+ <elementType ref="comrel.diagram.MultiFilterUnit_3053"/>
+ <elementType ref="comrel.diagram.SingleQueuedUnit_3054"/>
+ <elementType ref="comrel.diagram.SingleFeatureUnit_3055"/>
+ <elementType ref="comrel.diagram.MultiFeatureUnit_3056"/>
+ <elementType ref="comrel.diagram.SingleFilterUnit_3057"/>
+ <elementType ref="comrel.diagram.MultiFilterUnit_3058"/>
+ <elementType ref="comrel.diagram.SingleQueuedUnit_3059"/>
+ <elementType ref="comrel.diagram.SequentialUnit_3060"/>
+ <elementType ref="comrel.diagram.SingleFeatureUnit_3061"/>
+ <elementType ref="comrel.diagram.MultiFeatureUnit_3062"/>
+ <elementType ref="comrel.diagram.SingleFilterUnit_3063"/>
+ <elementType ref="comrel.diagram.MultiFilterUnit_3064"/>
+ <elementType ref="comrel.diagram.SingleQueuedUnit_3065"/>
+ <elementType ref="comrel.diagram.ConditionalUnit_3066"/>
+ <elementType ref="comrel.diagram.SingleQueuedUnit_3067"/>
+ <elementType ref="comrel.diagram.AtomicUnit_3068"/>
+ <elementType ref="comrel.diagram.SequentialUnit_3069"/>
+ <elementType ref="comrel.diagram.SequentialUnit_3070"/>
+ <elementType ref="comrel.diagram.ConditionalUnit_3071"/>
+ <elementType ref="comrel.diagram.ConditionalUnit_3072"/>
+ <elementType ref="comrel.diagram.SequentialUnit_3073"/>
+ <elementType ref="comrel.diagram.AtomicUnit_3074"/>
+ <elementType ref="comrel.diagram.ConditionalUnit_3075"/>
+ <elementType ref="comrel.diagram.ConditionCheck_3076"/>
+ <elementType ref="comrel.diagram.AtomicUnit_3077"/>
+ <elementType ref="comrel.diagram.AtomicUnit_3078"/>
+ <elementType ref="comrel.diagram.SinglePortMapping_4001"/>
+ <elementType ref="comrel.diagram.MultiPortMapping_4002"/>
+ <elementType ref="comrel.diagram.MultiSinglePortMapping_4003"/>
+ <advice ref="org.eclipse.gmf.runtime.diagram.core.advice.notationDepdendents"/>
+ </binding>
+ </extension>
+ <extension point="org.eclipse.core.expressions.propertyTesters" id="navigator-proptest.isURIEditorInput">
+ <?gmfgen generated="true"?>
+ <propertyTester
+ id="comrel.diagram.URIEditorInputPropertyTester"
+ type="org.eclipse.emf.common.ui.URIEditorInput"
+ namespace="comrel.diagram"
+ properties="isURIEditorInput"
+ class="comrel.diagram.part.ComrelUriEditorInputTester">
+ </propertyTester>
+ </extension>
+
+ <extension point="org.eclipse.core.expressions.propertyTesters" id="navigator-proptest.isShortcut">
+ <?gmfgen generated="true"?>
+ <propertyTester
+ id="comrel.diagram.ShortcutPropertyTester"
+ type="org.eclipse.gmf.runtime.notation.View"
+ namespace="comrel.diagram"
+ properties="isShortcut"
+ class="comrel.diagram.part.ComrelShortcutPropertyTester">
+ </propertyTester>
+ </extension>
+
+ <extension point="org.eclipse.ui.navigator.viewer" id="navigator-viewbinding">
+ <?gmfgen generated="true"?>
+ <viewerContentBinding viewerId="org.eclipse.ui.navigator.ProjectExplorer">
+ <includes>
+ <contentExtension pattern="comrel.diagram.resourceContent"/>
+ <contentExtension pattern="comrel.diagram.domainResourceContent"/>
+ <contentExtension pattern="comrel.diagram.navigatorLinkHelper"/>
+ </includes>
+ </viewerContentBinding>
+ <viewerActionBinding viewerId="org.eclipse.ui.navigator.ProjectExplorer">
+ <includes>
+ <actionExtension pattern="comrel.diagram.navigatorActionProvider"/>
+ </includes>
+ </viewerActionBinding>
+ </extension>
+
+ <extension point="org.eclipse.ui.navigator.navigatorContent" id="navigator-content">
+ <?gmfgen generated="true"?>
+ <navigatorContent
+ id="comrel.diagram.resourceContent"
+ name="%navigatorContentName"
+ priority="normal"
+ contentProvider="comrel.diagram.navigator.ComrelNavigatorContentProvider"
+ labelProvider="comrel.diagram.navigator.ComrelNavigatorLabelProvider"
+ icon="icons/obj16/ComrelDiagramFile.gif"
+ activeByDefault="true">
+ <triggerPoints>
+ <or>
+ <and>
+ <instanceof value="org.eclipse.core.resources.IFile"/>
+ <test property="org.eclipse.core.resources.extension" value="comrel_diagram"/>
+ </and>
+ <instanceof value="comrel.diagram.navigator.ComrelAbstractNavigatorItem"/>
+ <adapt type="org.eclipse.gmf.runtime.notation.View">
+ <test property="comrel.diagram.isShortcut"/>
+ </adapt>
+ </or>
+ </triggerPoints>
+ <possibleChildren>
+ <or>
+ <instanceof value="comrel.diagram.navigator.ComrelAbstractNavigatorItem"/>
+ <adapt type="org.eclipse.gmf.runtime.notation.View">
+ <test property="comrel.diagram.isShortcut"/>
+ </adapt>
+ </or>
+ </possibleChildren>
+ <commonSorter
+ id="comrel.diagram.navigatorSorter"
+ class="comrel.diagram.navigator.ComrelNavigatorSorter">
+ <parentExpression>
+ <or>
+ <and>
+ <instanceof value="org.eclipse.core.resources.IFile"/>
+ <test property="org.eclipse.core.resources.extension" value="comrel_diagram"/>
+ </and>
+ <instanceof value="comrel.diagram.navigator.ComrelAbstractNavigatorItem"/>
+ </or>
+ </parentExpression>
+ </commonSorter>
+ </navigatorContent>
+ <navigatorContent
+ id="comrel.diagram.domainResourceContent"
+ name="%domainNavigatorContentName"
+ priority="normal"
+ contentProvider="comrel.diagram.navigator.ComrelDomainNavigatorContentProvider"
+ labelProvider="comrel.diagram.navigator.ComrelDomainNavigatorLabelProvider"
+ icon="icons/obj16/ComrelDiagramFile.gif"
+ activeByDefault="true">
+ <triggerPoints>
+ <or>
+ <and>
+ <instanceof value="org.eclipse.core.resources.IFile"/>
+ <test property="org.eclipse.core.resources.extension" value="comrel"/>
+ </and>
+ <instanceof value="comrel.diagram.navigator.ComrelDomainNavigatorItem"/>
+ </or>
+ </triggerPoints>
+ <possibleChildren>
+ <instanceof value="comrel.diagram.navigator.ComrelDomainNavigatorItem"/>
+ </possibleChildren>
+ </navigatorContent>
+ <actionProvider
+ id="comrel.diagram.navigatorActionProvider"
+ class="comrel.diagram.navigator.ComrelNavigatorActionProvider">
+ <enablement>
+ <or>
+ <instanceof value="comrel.diagram.navigator.ComrelAbstractNavigatorItem"/>
+ <adapt type="org.eclipse.gmf.runtime.notation.View">
+ <test property="comrel.diagram.isShortcut"/>
+ </adapt>
+ </or>
+ </enablement>
+ </actionProvider>
+ </extension>
+
+ <extension point="org.eclipse.ui.navigator.linkHelper" id="navigator-linkhelper">
+ <?gmfgen generated="true"?>
+ <linkHelper
+ id="comrel.diagram.navigatorLinkHelper"
+ class="comrel.diagram.navigator.ComrelNavigatorLinkHelper">
+ <editorInputEnablement>
+ <and>
+ <instanceof value="org.eclipse.emf.common.ui.URIEditorInput"/>
+ <test property="comrel.diagram.isURIEditorInput"/>
+ </and>
+ </editorInputEnablement>
+ <selectionEnablement>
+ <instanceof value="comrel.diagram.navigator.ComrelAbstractNavigatorItem"/>
+ </selectionEnablement>
+ </linkHelper>
+ </extension>
+ <extension point="org.eclipse.ui.commands" id="update-cmd">
+ <?gmfgen generated="true"?>
+ <command
+ categoryId="org.eclipse.ui.category.edit"
+ defaultHandler="comrel.diagram.part.ComrelDiagramUpdateCommand"
+ description="%update.diagram.description"
+ id="comrel.diagram.updateDiagram"
+ name="%update.diagram.name"/>
+ </extension>
+
+ <extension point="org.eclipse.ui.bindings" id="update-cmd-binding">
+ <?gmfgen generated="true"?>
+ <key
+ commandId="comrel.diagram.updateDiagram"
+ contextId="comrel.diagram.ui.diagramContext"
+ schemeId="org.eclipse.ui.defaultAcceleratorConfiguration"
+ sequence="F5"/>
+ </extension>
+
+ <extension point="org.eclipse.ui.menus" id="context-menus">
+ <?gmfgen generated="true"?>
+ <!-- menuContribution locationURI="menu:org.eclipse.ui.main.menu?after=">
+ </menuContribution>
+ <menuContribution locationURI="toolbar:org.eclipse.ui.main.toolbar?after=">
+ </menuContribution -->
+ <menuContribution locationURI="popup:org.eclipse.gmf.runtime.diagram.ui.DiagramEditorContextMenu">
+ <command commandId="comrel.diagram.LoadResourceAction">
+ <visibleWhen>
+ <and>
+ <with variable="activePartId"><equals value="comrel.diagram.part.ComrelDiagramEditorID"/></with>
+ <with variable="selection"><iterate ifEmpty="false">
+ <instanceof value="comrel.diagram.edit.parts.CompositeRefactoringEditPart"/>
+ </iterate></with>
+ </and>
+ </visibleWhen>
+ </command>
+ </menuContribution>
+ </extension>
+
+ <extension point="org.eclipse.ui.commands" id="menu-commands">
+ <?gmfgen generated="true"?>
+ <category id="comrel.diagram.part.ComrelDiagramEditorID" name="%cmdcategory.name" description="%cmdcategory.desc"/>
+ <command id="comrel.diagram.LoadResourceAction"
+ name="Load Resource"
+ categoryId="comrel.diagram.part.ComrelDiagramEditorID"
+ defaultHandler="comrel.diagram.part.LoadResourceAction"/>
+ </extension>
+
+ <extension point="org.eclipse.ui.handlers" id="menu-handlers">
+ <?gmfgen generated="true"?>
+ </extension>
+
+ <!-- optionally, specify keybindings -->
+</plugin>
diff --git a/org.eclipse.emf.refactor.comrel.diagram/src/comrel/diagram/edit/commands/AtomicUnit2CreateCommand.java b/org.eclipse.emf.refactor.comrel.diagram/src/comrel/diagram/edit/commands/AtomicUnit2CreateCommand.java
new file mode 100644
index 0000000..1c11554
--- /dev/null
+++ b/org.eclipse.emf.refactor.comrel.diagram/src/comrel/diagram/edit/commands/AtomicUnit2CreateCommand.java
@@ -0,0 +1,116 @@
+/*
+ *
+ */
+package comrel.diagram.edit.commands;
+
+import org.eclipse.core.commands.ExecutionException;
+import org.eclipse.core.runtime.IAdaptable;
+import org.eclipse.core.runtime.IProgressMonitor;
+import org.eclipse.emf.ecore.EObject;
+import org.eclipse.gmf.runtime.common.core.command.CommandResult;
+import org.eclipse.gmf.runtime.common.core.command.ICommand;
+import org.eclipse.gmf.runtime.emf.type.core.IElementType;
+import org.eclipse.gmf.runtime.emf.type.core.commands.EditElementCommand;
+import org.eclipse.gmf.runtime.emf.type.core.requests.ConfigureRequest;
+import org.eclipse.gmf.runtime.emf.type.core.requests.CreateElementRequest;
+import org.eclipse.gmf.runtime.notation.View;
+
+import comrel.AtomicUnit;
+import comrel.CartesianQueuedUnit;
+import comrel.CompositeRefactoring;
+import comrel.ComrelFactory;
+
+/**
+ * @generated
+ */
+public class AtomicUnit2CreateCommand extends EditElementCommand {
+
+ /**
+ * @generated
+ */
+ public AtomicUnit2CreateCommand(CreateElementRequest req) {
+ super(req.getLabel(), null, req);
+ }
+
+ /**
+ * FIXME: replace with setElementToEdit()
+ * @generated
+ */
+ protected EObject getElementToEdit() {
+ EObject container = ((CreateElementRequest) getRequest())
+ .getContainer();
+ if (container instanceof View) {
+ container = ((View) container).getElement();
+ }
+ return container;
+ }
+
+ /**
+ * @generated
+ */
+ public boolean canExecute() {
+ CartesianQueuedUnit container = (CartesianQueuedUnit) getElementToEdit();
+ if (container.getRefactoringUnit() != null) {
+ return false;
+ }
+ return true;
+
+ }
+
+ /**
+ * @generated NOT
+ */
+ protected CommandResult doExecuteWithResult(IProgressMonitor monitor,
+ IAdaptable info) throws ExecutionException {
+ /*
+ * changes: Liest aus einem Request die ID des ModelRefactorings und
+ * erstellt anhand dessen die AtomicUnit
+ */
+ CreateElementRequest request = ((CreateElementRequest) getRequest());
+ String refId = (String) request.getParameters().get(
+ comrel.diagram.part.ComrelPaletteFactory.UNIT_ID);
+ comrel.ComrelFactory factory = ComrelFactory.eINSTANCE;
+ EObject container = ((CreateElementRequest) getRequest())
+ .getContainer();
+ while (container.eContainer() != null) {
+ container = container.eContainer();
+ }
+ CompositeRefactoring cr = (CompositeRefactoring) container;
+ comrel.ModelRefactoring refactoring = cr
+ .getEmfRefactoringAsModelRefactoring(refId);
+ if (refactoring != null
+ && !cr.getModelRefactorings().contains(refactoring)) {
+ cr.getModelRefactorings().add(refactoring);
+ }
+ comrel.AtomicUnit newElement = factory.createAtomicUnit(refactoring);
+ /* end of change */
+
+ CartesianQueuedUnit owner = (CartesianQueuedUnit) getElementToEdit();
+ owner.setRefactoringUnit(newElement);
+
+ doConfigure(newElement, monitor, info);
+
+ ((CreateElementRequest) getRequest()).setNewElement(newElement);
+ return CommandResult.newOKCommandResult(newElement);
+ }
+
+ /**
+ * @generated
+ */
+ protected void doConfigure(AtomicUnit newElement, IProgressMonitor monitor,
+ IAdaptable info) throws ExecutionException {
+ IElementType elementType = ((CreateElementRequest) getRequest())
+ .getElementType();
+ ConfigureRequest configureRequest = new ConfigureRequest(
+ getEditingDomain(), newElement, elementType);
+ configureRequest.setClientContext(((CreateElementRequest) getRequest())
+ .getClientContext());
+ configureRequest.addParameters(getRequest().getParameters());
+ ICommand configureCommand = elementType
+ .getEditCommand(configureRequest);
+ if (configureCommand != null && configureCommand.canExecute()) {
+ configureCommand.execute(monitor, info);
+ }
+ }
+
+}
diff --git a/org.eclipse.emf.refactor.comrel.diagram/src/comrel/diagram/edit/commands/AtomicUnit3CreateCommand.java b/org.eclipse.emf.refactor.comrel.diagram/src/comrel/diagram/edit/commands/AtomicUnit3CreateCommand.java
new file mode 100644
index 0000000..8c3acc2
--- /dev/null
+++ b/org.eclipse.emf.refactor.comrel.diagram/src/comrel/diagram/edit/commands/AtomicUnit3CreateCommand.java
@@ -0,0 +1,116 @@
+/*
+ *
+ */
+package comrel.diagram.edit.commands;
+
+import org.eclipse.core.commands.ExecutionException;
+import org.eclipse.core.runtime.IAdaptable;
+import org.eclipse.core.runtime.IProgressMonitor;
+import org.eclipse.emf.ecore.EObject;
+import org.eclipse.gmf.runtime.common.core.command.CommandResult;
+import org.eclipse.gmf.runtime.common.core.command.ICommand;
+import org.eclipse.gmf.runtime.emf.type.core.IElementType;
+import org.eclipse.gmf.runtime.emf.type.core.commands.EditElementCommand;
+import org.eclipse.gmf.runtime.emf.type.core.requests.ConfigureRequest;
+import org.eclipse.gmf.runtime.emf.type.core.requests.CreateElementRequest;
+import org.eclipse.gmf.runtime.notation.View;
+
+import comrel.AtomicUnit;
+import comrel.CompositeRefactoring;
+import comrel.ComrelFactory;
+import comrel.ParallelQueuedUnit;
+
+/**
+ * @generated
+ */
+public class AtomicUnit3CreateCommand extends EditElementCommand {
+
+ /**
+ * @generated
+ */
+ public AtomicUnit3CreateCommand(CreateElementRequest req) {
+ super(req.getLabel(), null, req);
+ }
+
+ /**
+ * FIXME: replace with setElementToEdit()
+ * @generated
+ */
+ protected EObject getElementToEdit() {
+ EObject container = ((CreateElementRequest) getRequest())
+ .getContainer();
+ if (container instanceof View) {
+ container = ((View) container).getElement();
+ }
+ return container;
+ }
+
+ /**
+ * @generated
+ */
+ public boolean canExecute() {
+ ParallelQueuedUnit container = (ParallelQueuedUnit) getElementToEdit();
+ if (container.getRefactoringUnits() != null) {
+ return false;
+ }
+ return true;
+
+ }
+
+ /**
+ * @generated NOT
+ */
+ protected CommandResult doExecuteWithResult(IProgressMonitor monitor,
+ IAdaptable info) throws ExecutionException {
+ /*
+ * changes: Liest aus einem Request die ID des ModelRefactorings und
+ * erstellt anhand dessen die AtomicUnit
+ */
+ CreateElementRequest request = ((CreateElementRequest) getRequest());
+ String refId = (String) request.getParameters().get(
+ comrel.diagram.part.ComrelPaletteFactory.UNIT_ID);
+ comrel.ComrelFactory factory = ComrelFactory.eINSTANCE;
+ EObject container = ((CreateElementRequest) getRequest())
+ .getContainer();
+ while (container.eContainer() != null) {
+ container = container.eContainer();
+ }
+ CompositeRefactoring cr = (CompositeRefactoring) container;
+ comrel.ModelRefactoring refactoring = cr
+ .getEmfRefactoringAsModelRefactoring(refId);
+ if (refactoring != null
+ && !cr.getModelRefactorings().contains(refactoring)) {
+ cr.getModelRefactorings().add(refactoring);
+ }
+ comrel.AtomicUnit newElement = factory.createAtomicUnit(refactoring);
+ /* end of change */
+
+ ParallelQueuedUnit owner = (ParallelQueuedUnit) getElementToEdit();
+ owner.setRefactoringUnits(newElement);
+
+ doConfigure(newElement, monitor, info);
+
+ ((CreateElementRequest) getRequest()).setNewElement(newElement);
+ return CommandResult.newOKCommandResult(newElement);
+ }
+
+ /**
+ * @generated
+ */
+ protected void doConfigure(AtomicUnit newElement, IProgressMonitor monitor,
+ IAdaptable info) throws ExecutionException {
+ IElementType elementType = ((CreateElementRequest) getRequest())
+ .getElementType();
+ ConfigureRequest configureRequest = new ConfigureRequest(
+ getEditingDomain(), newElement, elementType);
+ configureRequest.setClientContext(((CreateElementRequest) getRequest())
+ .getClientContext());
+ configureRequest.addParameters(getRequest().getParameters());
+ ICommand configureCommand = elementType
+ .getEditCommand(configureRequest);
+ if (configureCommand != null && configureCommand.canExecute()) {
+ configureCommand.execute(monitor, info);
+ }
+ }
+
+}
diff --git a/org.eclipse.emf.refactor.comrel.diagram/src/comrel/diagram/edit/commands/AtomicUnit4CreateCommand.java b/org.eclipse.emf.refactor.comrel.diagram/src/comrel/diagram/edit/commands/AtomicUnit4CreateCommand.java
new file mode 100644
index 0000000..a79f5d1
--- /dev/null
+++ b/org.eclipse.emf.refactor.comrel.diagram/src/comrel/diagram/edit/commands/AtomicUnit4CreateCommand.java
@@ -0,0 +1,116 @@
+/*
+ *
+ */
+package comrel.diagram.edit.commands;
+
+import org.eclipse.core.commands.ExecutionException;
+import org.eclipse.core.runtime.IAdaptable;
+import org.eclipse.core.runtime.IProgressMonitor;
+import org.eclipse.emf.ecore.EObject;
+import org.eclipse.gmf.runtime.common.core.command.CommandResult;
+import org.eclipse.gmf.runtime.common.core.command.ICommand;
+import org.eclipse.gmf.runtime.emf.type.core.IElementType;
+import org.eclipse.gmf.runtime.emf.type.core.commands.EditElementCommand;
+import org.eclipse.gmf.runtime.emf.type.core.requests.ConfigureRequest;
+import org.eclipse.gmf.runtime.emf.type.core.requests.CreateElementRequest;
+import org.eclipse.gmf.runtime.notation.View;
+
+import comrel.AtomicUnit;
+import comrel.CompositeRefactoring;
+import comrel.ComrelFactory;
+import comrel.SingleQueuedUnit;
+
+/**
+ * @generated
+ */
+public class AtomicUnit4CreateCommand extends EditElementCommand {
+
+ /**
+ * @generated
+ */
+ public AtomicUnit4CreateCommand(CreateElementRequest req) {
+ super(req.getLabel(), null, req);
+ }
+
+ /**
+ * FIXME: replace with setElementToEdit()
+ * @generated
+ */
+ protected EObject getElementToEdit() {
+ EObject container = ((CreateElementRequest) getRequest())
+ .getContainer();
+ if (container instanceof View) {
+ container = ((View) container).getElement();
+ }
+ return container;
+ }
+
+ /**
+ * @generated
+ */
+ public boolean canExecute() {
+ SingleQueuedUnit container = (SingleQueuedUnit) getElementToEdit();
+ if (container.getRefactoringUnit() != null) {
+ return false;
+ }
+ return true;
+
+ }
+
+ /**
+ * @generated NOT
+ */
+ protected CommandResult doExecuteWithResult(IProgressMonitor monitor,
+ IAdaptable info) throws ExecutionException {
+ /*
+ * changes: Liest aus einem Request die ID des ModelRefactorings und
+ * erstellt anhand dessen die AtomicUnit
+ */
+ CreateElementRequest request = ((CreateElementRequest) getRequest());
+ String refId = (String) request.getParameters().get(
+ comrel.diagram.part.ComrelPaletteFactory.UNIT_ID);
+ comrel.ComrelFactory factory = ComrelFactory.eINSTANCE;
+ EObject container = ((CreateElementRequest) getRequest())
+ .getContainer();
+ while (container.eContainer() != null) {
+ container = container.eContainer();
+ }
+ CompositeRefactoring cr = (CompositeRefactoring) container;
+ comrel.ModelRefactoring refactoring = cr
+ .getEmfRefactoringAsModelRefactoring(refId);
+ if (refactoring != null
+ && !cr.getModelRefactorings().contains(refactoring)) {
+ cr.getModelRefactorings().add(refactoring);
+ }
+ comrel.AtomicUnit newElement = factory.createAtomicUnit(refactoring);
+ /* end of change */
+
+ SingleQueuedUnit owner = (SingleQueuedUnit) getElementToEdit();
+ owner.setRefactoringUnit(newElement);
+
+ doConfigure(newElement, monitor, info);
+
+ ((CreateElementRequest) getRequest()).setNewElement(newElement);
+ return CommandResult.newOKCommandResult(newElement);
+ }
+
+ /**
+ * @generated
+ */
+ protected void doConfigure(AtomicUnit newElement, IProgressMonitor monitor,
+ IAdaptable info) throws ExecutionException {
+ IElementType elementType = ((CreateElementRequest) getRequest())
+ .getElementType();
+ ConfigureRequest configureRequest = new ConfigureRequest(
+ getEditingDomain(), newElement, elementType);
+ configureRequest.setClientContext(((CreateElementRequest) getRequest())
+ .getClientContext());
+ configureRequest.addParameters(getRequest().getParameters());
+ ICommand configureCommand = elementType
+ .getEditCommand(configureRequest);
+ if (configureCommand != null && configureCommand.canExecute()) {
+ configureCommand.execute(monitor, info);
+ }
+ }
+
+}
diff --git a/org.eclipse.emf.refactor.comrel.diagram/src/comrel/diagram/edit/commands/AtomicUnit5CreateCommand.java b/org.eclipse.emf.refactor.comrel.diagram/src/comrel/diagram/edit/commands/AtomicUnit5CreateCommand.java
new file mode 100644
index 0000000..e187479
--- /dev/null
+++ b/org.eclipse.emf.refactor.comrel.diagram/src/comrel/diagram/edit/commands/AtomicUnit5CreateCommand.java
@@ -0,0 +1,112 @@
+/*
+ *
+ */
+package comrel.diagram.edit.commands;
+
+import org.eclipse.core.commands.ExecutionException;
+import org.eclipse.core.runtime.IAdaptable;
+import org.eclipse.core.runtime.IProgressMonitor;
+import org.eclipse.emf.ecore.EObject;
+import org.eclipse.gmf.runtime.common.core.command.CommandResult;
+import org.eclipse.gmf.runtime.common.core.command.ICommand;
+import org.eclipse.gmf.runtime.emf.type.core.IElementType;
+import org.eclipse.gmf.runtime.emf.type.core.commands.EditElementCommand;
+import org.eclipse.gmf.runtime.emf.type.core.requests.ConfigureRequest;
+import org.eclipse.gmf.runtime.emf.type.core.requests.CreateElementRequest;
+import org.eclipse.gmf.runtime.notation.View;
+
+import comrel.AtomicUnit;
+import comrel.CompositeRefactoring;
+import comrel.ComrelFactory;
+import comrel.SequentialUnit;
+
+/**
+ * @generated
+ */
+public class AtomicUnit5CreateCommand extends EditElementCommand {
+
+ /**
+ * @generated
+ */
+ public AtomicUnit5CreateCommand(CreateElementRequest req) {
+ super(req.getLabel(), null, req);
+ }
+
+ /**
+ * FIXME: replace with setElementToEdit()
+ * @generated
+ */
+ protected EObject getElementToEdit() {
+ EObject container = ((CreateElementRequest) getRequest())
+ .getContainer();
+ if (container instanceof View) {
+ container = ((View) container).getElement();
+ }
+ return container;
+ }
+
+ /**
+ * @generated
+ */
+ public boolean canExecute() {
+ return true;
+
+ }
+
+ /**
+ * @generated NOT
+ */
+ protected CommandResult doExecuteWithResult(IProgressMonitor monitor,
+ IAdaptable info) throws ExecutionException {
+ /*
+ * changes: Liest aus einem Request die ID des ModelRefactorings und
+ * erstellt anhand dessen die AtomicUnit
+ */
+ CreateElementRequest request = ((CreateElementRequest) getRequest());
+ String refId = (String) request.getParameters().get(
+ comrel.diagram.part.ComrelPaletteFactory.UNIT_ID);
+ comrel.ComrelFactory factory = ComrelFactory.eINSTANCE;
+ EObject container = ((CreateElementRequest) getRequest())
+ .getContainer();
+ while (container.eContainer() != null) {
+ container = container.eContainer();
+ }
+ CompositeRefactoring cr = (CompositeRefactoring) container;
+ comrel.ModelRefactoring refactoring = cr
+ .getEmfRefactoringAsModelRefactoring(refId);
+ if (refactoring != null
+ && !cr.getModelRefactorings().contains(refactoring)) {
+ cr.getModelRefactorings().add(refactoring);
+ }
+ comrel.AtomicUnit newElement = factory.createAtomicUnit(refactoring);
+ /* end of change */
+
+ SequentialUnit owner = (SequentialUnit) getElementToEdit();
+ owner.getRefactoringUnits().add(newElement);
+ owner.updateSeqExecutionOrder();
+ doConfigure(newElement, monitor, info);
+
+ ((CreateElementRequest) getRequest()).setNewElement(newElement);
+ return CommandResult.newOKCommandResult(newElement);
+ }
+
+ /**
+ * @generated
+ */
+ protected void doConfigure(AtomicUnit newElement, IProgressMonitor monitor,
+ IAdaptable info) throws ExecutionException {
+ IElementType elementType = ((CreateElementRequest) getRequest())
+ .getElementType();
+ ConfigureRequest configureRequest = new ConfigureRequest(
+ getEditingDomain(), newElement, elementType);
+ configureRequest.setClientContext(((CreateElementRequest) getRequest())
+ .getClientContext());
+ configureRequest.addParameters(getRequest().getParameters());
+ ICommand configureCommand = elementType
+ .getEditCommand(configureRequest);
+ if (configureCommand != null && configureCommand.canExecute()) {
+ configureCommand.execute(monitor, info);
+ }
+ }
+
+}
diff --git a/org.eclipse.emf.refactor.comrel.diagram/src/comrel/diagram/edit/commands/AtomicUnit6CreateCommand.java b/org.eclipse.emf.refactor.comrel.diagram/src/comrel/diagram/edit/commands/AtomicUnit6CreateCommand.java
new file mode 100644
index 0000000..b245bda
--- /dev/null
+++ b/org.eclipse.emf.refactor.comrel.diagram/src/comrel/diagram/edit/commands/AtomicUnit6CreateCommand.java
@@ -0,0 +1,116 @@
+/*
+ *
+ */
+package comrel.diagram.edit.commands;
+
+import org.eclipse.core.commands.ExecutionException;
+import org.eclipse.core.runtime.IAdaptable;
+import org.eclipse.core.runtime.IProgressMonitor;
+import org.eclipse.emf.ecore.EObject;
+import org.eclipse.gmf.runtime.common.core.command.CommandResult;
+import org.eclipse.gmf.runtime.common.core.command.ICommand;
+import org.eclipse.gmf.runtime.emf.type.core.IElementType;
+import org.eclipse.gmf.runtime.emf.type.core.commands.EditElementCommand;
+import org.eclipse.gmf.runtime.emf.type.core.requests.ConfigureRequest;
+import org.eclipse.gmf.runtime.emf.type.core.requests.CreateElementRequest;
+import org.eclipse.gmf.runtime.notation.View;
+
+import comrel.AtomicUnit;
+import comrel.CompositeRefactoring;
+import comrel.ComrelFactory;
+import comrel.ConditionalUnit;
+
+/**
+ * @generated
+ */
+public class AtomicUnit6CreateCommand extends EditElementCommand {
+
+ /**
+ * @generated
+ */
+ public AtomicUnit6CreateCommand(CreateElementRequest req) {
+ super(req.getLabel(), null, req);
+ }
+
+ /**
+ * FIXME: replace with setElementToEdit()
+ * @generated
+ */
+ protected EObject getElementToEdit() {
+ EObject container = ((CreateElementRequest) getRequest())
+ .getContainer();
+ if (container instanceof View) {
+ container = ((View) container).getElement();
+ }
+ return container;
+ }
+
+ /**
+ * @generated
+ */
+ public boolean canExecute() {
+ ConditionalUnit container = (ConditionalUnit) getElementToEdit();
+ if (container.getThen() != null) {
+ return false;
+ }
+ return true;
+
+ }
+
+ /**
+ * @generated NOT
+ */
+ protected CommandResult doExecuteWithResult(IProgressMonitor monitor,
+ IAdaptable info) throws ExecutionException {
+ /*
+ * changes: Liest aus einem Request die ID des ModelRefactorings und
+ * erstellt anhand dessen die AtomicUnit
+ */
+ CreateElementRequest request = ((CreateElementRequest) getRequest());
+ String refId = (String) request.getParameters().get(
+ comrel.diagram.part.ComrelPaletteFactory.UNIT_ID);
+ comrel.ComrelFactory factory = ComrelFactory.eINSTANCE;
+ EObject container = ((CreateElementRequest) getRequest())
+ .getContainer();
+ while (container.eContainer() != null) {
+ container = container.eContainer();
+ }
+ CompositeRefactoring cr = (CompositeRefactoring) container;
+ comrel.ModelRefactoring refactoring = cr
+ .getEmfRefactoringAsModelRefactoring(refId);
+ if (refactoring != null
+ && !cr.getModelRefactorings().contains(refactoring)) {
+ cr.getModelRefactorings().add(refactoring);
+ }
+ comrel.AtomicUnit newElement = factory.createAtomicUnit(refactoring);
+ /* end of change */
+
+ ConditionalUnit owner = (ConditionalUnit) getElementToEdit();
+ owner.setThen(newElement);
+
+ doConfigure(newElement, monitor, info);
+
+ ((CreateElementRequest) getRequest()).setNewElement(newElement);
+ return CommandResult.newOKCommandResult(newElement);
+ }
+
+ /**
+ * @generated
+ */
+ protected void doConfigure(AtomicUnit newElement, IProgressMonitor monitor,
+ IAdaptable info) throws ExecutionException {
+ IElementType elementType = ((CreateElementRequest) getRequest())
+ .getElementType();
+ ConfigureRequest configureRequest = new ConfigureRequest(
+ getEditingDomain(), newElement, elementType);
+ configureRequest.setClientContext(((CreateElementRequest) getRequest())
+ .getClientContext());
+ configureRequest.addParameters(getRequest().getParameters());
+ ICommand configureCommand = elementType
+ .getEditCommand(configureRequest);
+ if (configureCommand != null && configureCommand.canExecute()) {
+ configureCommand.execute(monitor, info);
+ }
+ }
+
+}
diff --git a/org.eclipse.emf.refactor.comrel.diagram/src/comrel/diagram/edit/commands/AtomicUnit7CreateCommand.java b/org.eclipse.emf.refactor.comrel.diagram/src/comrel/diagram/edit/commands/AtomicUnit7CreateCommand.java
new file mode 100644
index 0000000..032c194
--- /dev/null
+++ b/org.eclipse.emf.refactor.comrel.diagram/src/comrel/diagram/edit/commands/AtomicUnit7CreateCommand.java
@@ -0,0 +1,116 @@
+/*
+ *
+ */
+package comrel.diagram.edit.commands;
+
+import org.eclipse.core.commands.ExecutionException;
+import org.eclipse.core.runtime.IAdaptable;
+import org.eclipse.core.runtime.IProgressMonitor;
+import org.eclipse.emf.ecore.EObject;
+import org.eclipse.gmf.runtime.common.core.command.CommandResult;
+import org.eclipse.gmf.runtime.common.core.command.ICommand;
+import org.eclipse.gmf.runtime.emf.type.core.IElementType;
+import org.eclipse.gmf.runtime.emf.type.core.commands.EditElementCommand;
+import org.eclipse.gmf.runtime.emf.type.core.requests.ConfigureRequest;
+import org.eclipse.gmf.runtime.emf.type.core.requests.CreateElementRequest;
+import org.eclipse.gmf.runtime.notation.View;
+
+import comrel.AtomicUnit;
+import comrel.CompositeRefactoring;
+import comrel.ComrelFactory;
+import comrel.ConditionalUnit;
+
+/**
+ * @generated
+ */
+public class AtomicUnit7CreateCommand extends EditElementCommand {
+
+ /**
+ * @generated
+ */
+ public AtomicUnit7CreateCommand(CreateElementRequest req) {
+ super(req.getLabel(), null, req);
+ }
+
+ /**
+ * FIXME: replace with setElementToEdit()
+ * @generated
+ */
+ protected EObject getElementToEdit() {
+ EObject container = ((CreateElementRequest) getRequest())
+ .getContainer();
+ if (container instanceof View) {
+ container = ((View) container).getElement();
+ }
+ return container;
+ }
+
+ /**
+ * @generated
+ */
+ public boolean canExecute() {
+ ConditionalUnit container = (ConditionalUnit) getElementToEdit();
+ if (container.getElse() != null) {
+ return false;
+ }
+ return true;
+
+ }
+
+ /**
+ * @generated NOT
+ */
+ protected CommandResult doExecuteWithResult(IProgressMonitor monitor,
+ IAdaptable info) throws ExecutionException {
+ /*
+ * changes: Liest aus einem Request die ID des ModelRefactorings und
+ * erstellt anhand dessen die AtomicUnit
+ */
+ CreateElementRequest request = ((CreateElementRequest) getRequest());
+ String refId = (String) request.getParameters().get(
+ comrel.diagram.part.ComrelPaletteFactory.UNIT_ID);
+ comrel.ComrelFactory factory = ComrelFactory.eINSTANCE;
+ EObject container = ((CreateElementRequest) getRequest())
+ .getContainer();
+ while (container.eContainer() != null) {
+ container = container.eContainer();
+ }
+ CompositeRefactoring cr = (CompositeRefactoring) container;
+ comrel.ModelRefactoring refactoring = cr
+ .getEmfRefactoringAsModelRefactoring(refId);
+ if (refactoring != null
+ && !cr.getModelRefactorings().contains(refactoring)) {
+ cr.getModelRefactorings().add(refactoring);
+ }
+ comrel.AtomicUnit newElement = factory.createAtomicUnit(refactoring);
+ /* end of change */
+
+ ConditionalUnit owner = (ConditionalUnit) getElementToEdit();
+ owner.setElse(newElement);
+
+ doConfigure(newElement, monitor, info);
+
+ ((CreateElementRequest) getRequest()).setNewElement(newElement);
+ return CommandResult.newOKCommandResult(newElement);
+ }
+
+ /**
+ * @generated
+ */
+ protected void doConfigure(AtomicUnit newElement, IProgressMonitor monitor,
+ IAdaptable info) throws ExecutionException {
+ IElementType elementType = ((CreateElementRequest) getRequest())
+ .getElementType();
+ ConfigureRequest configureRequest = new ConfigureRequest(
+ getEditingDomain(), newElement, elementType);
+ configureRequest.setClientContext(((CreateElementRequest) getRequest())
+ .getClientContext());
+ configureRequest.addParameters(getRequest().getParameters());
+ ICommand configureCommand = elementType
+ .getEditCommand(configureRequest);
+ if (configureCommand != null && configureCommand.canExecute()) {
+ configureCommand.execute(monitor, info);
+ }
+ }
+
+}
diff --git a/org.eclipse.emf.refactor.comrel.diagram/src/comrel/diagram/edit/commands/AtomicUnitCreateCommand.java b/org.eclipse.emf.refactor.comrel.diagram/src/comrel/diagram/edit/commands/AtomicUnitCreateCommand.java
new file mode 100644
index 0000000..18e2b16
--- /dev/null
+++ b/org.eclipse.emf.refactor.comrel.diagram/src/comrel/diagram/edit/commands/AtomicUnitCreateCommand.java
@@ -0,0 +1,115 @@
+/*
+ *
+ */
+package comrel.diagram.edit.commands;
+
+import org.eclipse.core.commands.ExecutionException;
+import org.eclipse.core.runtime.IAdaptable;
+import org.eclipse.core.runtime.IProgressMonitor;
+import org.eclipse.emf.ecore.EObject;
+import org.eclipse.gmf.runtime.common.core.command.CommandResult;
+import org.eclipse.gmf.runtime.common.core.command.ICommand;
+import org.eclipse.gmf.runtime.emf.type.core.IElementType;
+import org.eclipse.gmf.runtime.emf.type.core.commands.EditElementCommand;
+import org.eclipse.gmf.runtime.emf.type.core.requests.ConfigureRequest;
+import org.eclipse.gmf.runtime.emf.type.core.requests.CreateElementRequest;
+import org.eclipse.gmf.runtime.notation.View;
+
+import comrel.AtomicUnit;
+import comrel.CompositeRefactoring;
+import comrel.ComrelFactory;
+
+/**
+ * @generated
+ */
+public class AtomicUnitCreateCommand extends EditElementCommand {
+
+ /**
+ * @generated
+ */
+ public AtomicUnitCreateCommand(CreateElementRequest req) {
+ super(req.getLabel(), null, req);
+ }
+
+ /**
+ * FIXME: replace with setElementToEdit()
+ * @generated
+ */
+ protected EObject getElementToEdit() {
+ EObject container = ((CreateElementRequest) getRequest())
+ .getContainer();
+ if (container instanceof View) {
+ container = ((View) container).getElement();
+ }
+ return container;
+ }
+
+ /**
+ * @generated
+ */
+ public boolean canExecute() {
+ CompositeRefactoring container = (CompositeRefactoring) getElementToEdit();
+ if (container.getMainRefactoringUnit() != null) {
+ return false;
+ }
+ return true;
+
+ }
+
+ /**
+ * @generated NOT
+ */
+ protected CommandResult doExecuteWithResult(IProgressMonitor monitor,
+ IAdaptable info) throws ExecutionException {
+ /*
+ * changes: Liest aus einem Request die ID des ModelRefactorings und
+ * erstellt anhand dessen die AtomicUnit
+ */
+ CreateElementRequest request = ((CreateElementRequest) getRequest());
+ String refId = (String) request.getParameters().get(
+ comrel.diagram.part.ComrelPaletteFactory.UNIT_ID);
+ comrel.ComrelFactory factory = ComrelFactory.eINSTANCE;
+ EObject container = ((CreateElementRequest) getRequest())
+ .getContainer();
+ while (container.eContainer() != null) {
+ container = container.eContainer();
+ }
+ CompositeRefactoring cr = (CompositeRefactoring) container;
+ comrel.ModelRefactoring refactoring = cr
+ .getEmfRefactoringAsModelRefactoring(refId);
+ if (refactoring != null
+ && !cr.getModelRefactorings().contains(refactoring)) {
+ cr.getModelRefactorings().add(refactoring);
+ }
+ comrel.AtomicUnit newElement = factory.createAtomicUnit(refactoring);
+ /* end of change */
+
+ CompositeRefactoring owner = (CompositeRefactoring) getElementToEdit();
+ owner.setMainRefactoringUnit(newElement);
+
+ doConfigure(newElement, monitor, info);
+
+ ((CreateElementRequest) getRequest()).setNewElement(newElement);
+ return CommandResult.newOKCommandResult(newElement);
+ }
+
+ /**
+ * @generated
+ */
+ protected void doConfigure(AtomicUnit newElement, IProgressMonitor monitor,
+ IAdaptable info) throws ExecutionException {
+ IElementType elementType = ((CreateElementRequest) getRequest())
+ .getElementType();
+ ConfigureRequest configureRequest = new ConfigureRequest(
+ getEditingDomain(), newElement, elementType);
+ configureRequest.setClientContext(((CreateElementRequest) getRequest())
+ .getClientContext());
+ configureRequest.addParameters(getRequest().getParameters());
+ ICommand configureCommand = elementType
+ .getEditCommand(configureRequest);
+ if (configureCommand != null && configureCommand.canExecute()) {
+ configureCommand.execute(monitor, info);
+ }
+ }
+
+}
diff --git a/org.eclipse.emf.refactor.comrel.diagram/src/comrel/diagram/edit/commands/CartesianQueuedUnit2CreateCommand.java b/org.eclipse.emf.refactor.comrel.diagram/src/comrel/diagram/edit/commands/CartesianQueuedUnit2CreateCommand.java
new file mode 100644
index 0000000..defd644
--- /dev/null
+++ b/org.eclipse.emf.refactor.comrel.diagram/src/comrel/diagram/edit/commands/CartesianQueuedUnit2CreateCommand.java
@@ -0,0 +1,95 @@
+/*
+ *
+ */
+package comrel.diagram.edit.commands;
+
+import org.eclipse.core.commands.ExecutionException;
+import org.eclipse.core.runtime.IAdaptable;
+import org.eclipse.core.runtime.IProgressMonitor;
+import org.eclipse.emf.ecore.EObject;
+import org.eclipse.gmf.runtime.common.core.command.CommandResult;
+import org.eclipse.gmf.runtime.common.core.command.ICommand;
+import org.eclipse.gmf.runtime.emf.type.core.IElementType;
+import org.eclipse.gmf.runtime.emf.type.core.commands.EditElementCommand;
+import org.eclipse.gmf.runtime.emf.type.core.requests.ConfigureRequest;
+import org.eclipse.gmf.runtime.emf.type.core.requests.CreateElementRequest;
+import org.eclipse.gmf.runtime.notation.View;
+
+import comrel.CartesianQueuedUnit;
+import comrel.ComrelFactory;
+
+/**
+ * @generated
+ */
+public class CartesianQueuedUnit2CreateCommand extends EditElementCommand {
+
+ /**
+ * @generated
+ */
+ public CartesianQueuedUnit2CreateCommand(CreateElementRequest req) {
+ super(req.getLabel(), null, req);
+ }
+
+ /**
+ * FIXME: replace with setElementToEdit()
+ * @generated
+ */
+ protected EObject getElementToEdit() {
+ EObject container = ((CreateElementRequest) getRequest())
+ .getContainer();
+ if (container instanceof View) {
+ container = ((View) container).getElement();
+ }
+ return container;
+ }
+
+ /**
+ * @generated
+ */
+ public boolean canExecute() {
+ CartesianQueuedUnit container = (CartesianQueuedUnit) getElementToEdit();
+ if (container.getRefactoringUnit() != null) {
+ return false;
+ }
+ return true;
+
+ }
+
+ /**
+ * @generated NOT
+ */
+ protected CommandResult doExecuteWithResult(IProgressMonitor monitor,
+ IAdaptable info) throws ExecutionException {
+ CartesianQueuedUnit newElement = ComrelFactory.eINSTANCE
+ .createCartesianQueuedUnit();
+ newElement.init();
+ CartesianQueuedUnit owner = (CartesianQueuedUnit) getElementToEdit();
+ owner.setRefactoringUnit(newElement);
+
+ doConfigure(newElement, monitor, info);
+
+ ((CreateElementRequest) getRequest()).setNewElement(newElement);
+ return CommandResult.newOKCommandResult(newElement);
+ }
+
+ /**
+ * @generated
+ */
+ protected void doConfigure(CartesianQueuedUnit newElement,
+ IProgressMonitor monitor, IAdaptable info)
+ throws ExecutionException {
+ IElementType elementType = ((CreateElementRequest) getRequest())
+ .getElementType();
+ ConfigureRequest configureRequest = new ConfigureRequest(
+ getEditingDomain(), newElement, elementType);
+ configureRequest.setClientContext(((CreateElementRequest) getRequest())
+ .getClientContext());
+ configureRequest.addParameters(getRequest().getParameters());
+ ICommand configureCommand = elementType
+ .getEditCommand(configureRequest);
+ if (configureCommand != null && configureCommand.canExecute()) {
+ configureCommand.execute(monitor, info);
+ }
+ }
+
+}
diff --git a/org.eclipse.emf.refactor.comrel.diagram/src/comrel/diagram/edit/commands/CartesianQueuedUnit3CreateCommand.java b/org.eclipse.emf.refactor.comrel.diagram/src/comrel/diagram/edit/commands/CartesianQueuedUnit3CreateCommand.java
new file mode 100644
index 0000000..3035806
--- /dev/null
+++ b/org.eclipse.emf.refactor.comrel.diagram/src/comrel/diagram/edit/commands/CartesianQueuedUnit3CreateCommand.java
@@ -0,0 +1,96 @@
+/*
+ *
+ */
+package comrel.diagram.edit.commands;
+
+import org.eclipse.core.commands.ExecutionException;
+import org.eclipse.core.runtime.IAdaptable;
+import org.eclipse.core.runtime.IProgressMonitor;
+import org.eclipse.emf.ecore.EObject;
+import org.eclipse.gmf.runtime.common.core.command.CommandResult;
+import org.eclipse.gmf.runtime.common.core.command.ICommand;
+import org.eclipse.gmf.runtime.emf.type.core.IElementType;
+import org.eclipse.gmf.runtime.emf.type.core.commands.EditElementCommand;
+import org.eclipse.gmf.runtime.emf.type.core.requests.ConfigureRequest;
+import org.eclipse.gmf.runtime.emf.type.core.requests.CreateElementRequest;
+import org.eclipse.gmf.runtime.notation.View;
+
+import comrel.CartesianQueuedUnit;
+import comrel.ComrelFactory;
+import comrel.ParallelQueuedUnit;
+
+/**
+ * @generated
+ */
+public class CartesianQueuedUnit3CreateCommand extends EditElementCommand {
+
+ /**
+ * @generated
+ */
+ public CartesianQueuedUnit3CreateCommand(CreateElementRequest req) {
+ super(req.getLabel(), null, req);
+ }
+
+ /**
+ * FIXME: replace with setElementToEdit()
+ * @generated
+ */
+ protected EObject getElementToEdit() {
+ EObject container = ((CreateElementRequest) getRequest())
+ .getContainer();
+ if (container instanceof View) {
+ container = ((View) container).getElement();
+ }
+ return container;
+ }
+
+ /**
+ * @generated
+ */
+ public boolean canExecute() {
+ ParallelQueuedUnit container = (ParallelQueuedUnit) getElementToEdit();
+ if (container.getRefactoringUnits() != null) {
+ return false;
+ }
+ return true;
+
+ }
+
+ /**
+ * @generated NOT
+ */
+ protected CommandResult doExecuteWithResult(IProgressMonitor monitor,
+ IAdaptable info) throws ExecutionException {
+ CartesianQueuedUnit newElement = ComrelFactory.eINSTANCE
+ .createCartesianQueuedUnit();
+ newElement.init();
+ ParallelQueuedUnit owner = (ParallelQueuedUnit) getElementToEdit();
+ owner.setRefactoringUnits(newElement);
+
+ doConfigure(newElement, monitor, info);
+
+ ((CreateElementRequest) getRequest()).setNewElement(newElement);
+ return CommandResult.newOKCommandResult(newElement);
+ }
+
+ /**
+ * @generated
+ */
+ protected void doConfigure(CartesianQueuedUnit newElement,
+ IProgressMonitor monitor, IAdaptable info)
+ throws ExecutionException {
+ IElementType elementType = ((CreateElementRequest) getRequest())
+ .getElementType();
+ ConfigureRequest configureRequest = new ConfigureRequest(
+ getEditingDomain(), newElement, elementType);
+ configureRequest.setClientContext(((CreateElementRequest) getRequest())
+ .getClientContext());
+ configureRequest.addParameters(getRequest().getParameters());
+ ICommand configureCommand = elementType
+ .getEditCommand(configureRequest);
+ if (configureCommand != null && configureCommand.canExecute()) {
+ configureCommand.execute(monitor, info);
+ }
+ }
+
+}
diff --git a/org.eclipse.emf.refactor.comrel.diagram/src/comrel/diagram/edit/commands/CartesianQueuedUnit4CreateCommand.java b/org.eclipse.emf.refactor.comrel.diagram/src/comrel/diagram/edit/commands/CartesianQueuedUnit4CreateCommand.java
new file mode 100644
index 0000000..8c997d5
--- /dev/null
+++ b/org.eclipse.emf.refactor.comrel.diagram/src/comrel/diagram/edit/commands/CartesianQueuedUnit4CreateCommand.java
@@ -0,0 +1,96 @@
+/*
+ *
+ */
+package comrel.diagram.edit.commands;
+
+import org.eclipse.core.commands.ExecutionException;
+import org.eclipse.core.runtime.IAdaptable;
+import org.eclipse.core.runtime.IProgressMonitor;
+import org.eclipse.emf.ecore.EObject;
+import org.eclipse.gmf.runtime.common.core.command.CommandResult;
+import org.eclipse.gmf.runtime.common.core.command.ICommand;
+import org.eclipse.gmf.runtime.emf.type.core.IElementType;
+import org.eclipse.gmf.runtime.emf.type.core.commands.EditElementCommand;
+import org.eclipse.gmf.runtime.emf.type.core.requests.ConfigureRequest;
+import org.eclipse.gmf.runtime.emf.type.core.requests.CreateElementRequest;
+import org.eclipse.gmf.runtime.notation.View;
+
+import comrel.CartesianQueuedUnit;
+import comrel.ComrelFactory;
+import comrel.SingleQueuedUnit;
+
+/**
+ * @generated
+ */
+public class CartesianQueuedUnit4CreateCommand extends EditElementCommand {
+
+ /**
+ * @generated
+ */
+ public CartesianQueuedUnit4CreateCommand(CreateElementRequest req) {
+ super(req.getLabel(), null, req);
+ }
+
+ /**
+ * FIXME: replace with setElementToEdit()
+ * @generated
+ */
+ protected EObject getElementToEdit() {
+ EObject container = ((CreateElementRequest) getRequest())
+ .getContainer();
+ if (container instanceof View) {
+ container = ((View) container).getElement();
+ }
+ return container;
+ }
+
+ /**
+ * @generated
+ */
+ public boolean canExecute() {
+ SingleQueuedUnit container = (SingleQueuedUnit) getElementToEdit();
+ if (container.getRefactoringUnit() != null) {
+ return false;
+ }
+ return true;
+
+ }
+
+ /**
+ * @generated NOT
+ */
+ protected CommandResult doExecuteWithResult(IProgressMonitor monitor,
+ IAdaptable info) throws ExecutionException {
+ CartesianQueuedUnit newElement = ComrelFactory.eINSTANCE
+ .createCartesianQueuedUnit();
+ newElement.init();
+ SingleQueuedUnit owner = (SingleQueuedUnit) getElementToEdit();
+ owner.setRefactoringUnit(newElement);
+
+ doConfigure(newElement, monitor, info);
+
+ ((CreateElementRequest) getRequest()).setNewElement(newElement);
+ return CommandResult.newOKCommandResult(newElement);
+ }
+
+ /**
+ * @generated
+ */
+ protected void doConfigure(CartesianQueuedUnit newElement,
+ IProgressMonitor monitor, IAdaptable info)
+ throws ExecutionException {
+ IElementType elementType = ((CreateElementRequest) getRequest())
+ .getElementType();
+ ConfigureRequest configureRequest = new ConfigureRequest(
+ getEditingDomain(), newElement, elementType);
+ configureRequest.setClientContext(((CreateElementRequest) getRequest())
+ .getClientContext());
+ configureRequest.addParameters(getRequest().getParameters());
+ ICommand configureCommand = elementType
+ .getEditCommand(configureRequest);
+ if (configureCommand != null && configureCommand.canExecute()) {
+ configureCommand.execute(monitor, info);
+ }
+ }
+
+}
diff --git a/org.eclipse.emf.refactor.comrel.diagram/src/comrel/diagram/edit/commands/CartesianQueuedUnit5CreateCommand.java b/org.eclipse.emf.refactor.comrel.diagram/src/comrel/diagram/edit/commands/CartesianQueuedUnit5CreateCommand.java
new file mode 100644
index 0000000..a64f6af
--- /dev/null
+++ b/org.eclipse.emf.refactor.comrel.diagram/src/comrel/diagram/edit/commands/CartesianQueuedUnit5CreateCommand.java
@@ -0,0 +1,92 @@
+/*
+ *
+ */
+package comrel.diagram.edit.commands;
+
+import org.eclipse.core.commands.ExecutionException;
+import org.eclipse.core.runtime.IAdaptable;
+import org.eclipse.core.runtime.IProgressMonitor;
+import org.eclipse.emf.ecore.EObject;
+import org.eclipse.gmf.runtime.common.core.command.CommandResult;
+import org.eclipse.gmf.runtime.common.core.command.ICommand;
+import org.eclipse.gmf.runtime.emf.type.core.IElementType;
+import org.eclipse.gmf.runtime.emf.type.core.commands.EditElementCommand;
+import org.eclipse.gmf.runtime.emf.type.core.requests.ConfigureRequest;
+import org.eclipse.gmf.runtime.emf.type.core.requests.CreateElementRequest;
+import org.eclipse.gmf.runtime.notation.View;
+
+import comrel.CartesianQueuedUnit;
+import comrel.ComrelFactory;
+import comrel.SequentialUnit;
+
+/**
+ * @generated
+ */
+public class CartesianQueuedUnit5CreateCommand extends EditElementCommand {
+
+ /**
+ * @generated
+ */
+ public CartesianQueuedUnit5CreateCommand(CreateElementRequest req) {
+ super(req.getLabel(), null, req);
+ }
+
+ /**
+ * FIXME: replace with setElementToEdit()
+ * @generated
+ */
+ protected EObject getElementToEdit() {
+ EObject container = ((CreateElementRequest) getRequest())
+ .getContainer();
+ if (container instanceof View) {
+ container = ((View) container).getElement();
+ }
+ return container;
+ }
+
+ /**
+ * @generated
+ */
+ public boolean canExecute() {
+ return true;
+
+ }
+
+ /**
+ * @generated NOT
+ */
+ protected CommandResult doExecuteWithResult(IProgressMonitor monitor,
+ IAdaptable info) throws ExecutionException {
+ CartesianQueuedUnit newElement = ComrelFactory.eINSTANCE
+ .createCartesianQueuedUnit();
+ newElement.init();
+ SequentialUnit owner = (SequentialUnit) getElementToEdit();
+ owner.getRefactoringUnits().add(newElement);
+ owner.updateSeqExecutionOrder();
+ doConfigure(newElement, monitor, info);
+
+ ((CreateElementRequest) getRequest()).setNewElement(newElement);
+ return CommandResult.newOKCommandResult(newElement);
+ }
+
+ /**
+ * @generated
+ */
+ protected void doConfigure(CartesianQueuedUnit newElement,
+ IProgressMonitor monitor, IAdaptable info)
+ throws ExecutionException {
+ IElementType elementType = ((CreateElementRequest) getRequest())
+ .getElementType();
+ ConfigureRequest configureRequest = new ConfigureRequest(
+ getEditingDomain(), newElement, elementType);
+ configureRequest.setClientContext(((CreateElementRequest) getRequest())
+ .getClientContext());
+ configureRequest.addParameters(getRequest().getParameters());
+ ICommand configureCommand = elementType
+ .getEditCommand(configureRequest);
+ if (configureCommand != null && configureCommand.canExecute()) {
+ configureCommand.execute(monitor, info);
+ }
+ }
+
+}
diff --git a/org.eclipse.emf.refactor.comrel.diagram/src/comrel/diagram/edit/commands/CartesianQueuedUnit6CreateCommand.java b/org.eclipse.emf.refactor.comrel.diagram/src/comrel/diagram/edit/commands/CartesianQueuedUnit6CreateCommand.java
new file mode 100644
index 0000000..46c3ea8
--- /dev/null
+++ b/org.eclipse.emf.refactor.comrel.diagram/src/comrel/diagram/edit/commands/CartesianQueuedUnit6CreateCommand.java
@@ -0,0 +1,96 @@
+/*
+ *
+ */
+package comrel.diagram.edit.commands;
+
+import org.eclipse.core.commands.ExecutionException;
+import org.eclipse.core.runtime.IAdaptable;
+import org.eclipse.core.runtime.IProgressMonitor;
+import org.eclipse.emf.ecore.EObject;
+import org.eclipse.gmf.runtime.common.core.command.CommandResult;
+import org.eclipse.gmf.runtime.common.core.command.ICommand;
+import org.eclipse.gmf.runtime.emf.type.core.IElementType;
+import org.eclipse.gmf.runtime.emf.type.core.commands.EditElementCommand;
+import org.eclipse.gmf.runtime.emf.type.core.requests.ConfigureRequest;
+import org.eclipse.gmf.runtime.emf.type.core.requests.CreateElementRequest;
+import org.eclipse.gmf.runtime.notation.View;
+
+import comrel.CartesianQueuedUnit;
+import comrel.ComrelFactory;
+import comrel.ConditionalUnit;
+
+/**
+ * @generated
+ */
+public class CartesianQueuedUnit6CreateCommand extends EditElementCommand {
+
+ /**
+ * @generated
+ */
+ public CartesianQueuedUnit6CreateCommand(CreateElementRequest req) {
+ super(req.getLabel(), null, req);
+ }
+
+ /**
+ * FIXME: replace with setElementToEdit()
+ * @generated
+ */
+ protected EObject getElementToEdit() {
+ EObject container = ((CreateElementRequest) getRequest())
+ .getContainer();
+ if (container instanceof View) {
+ container = ((View) container).getElement();
+ }
+ return container;
+ }
+
+ /**
+ * @generated
+ */
+ public boolean canExecute() {
+ ConditionalUnit container = (ConditionalUnit) getElementToEdit();
+ if (container.getThen() != null) {
+ return false;
+ }
+ return true;
+
+ }
+
+ /**
+ * @generated NOT
+ */
+ protected CommandResult doExecuteWithResult(IProgressMonitor monitor,
+ IAdaptable info) throws ExecutionException {
+ CartesianQueuedUnit newElement = ComrelFactory.eINSTANCE
+ .createCartesianQueuedUnit();
+ newElement.init();
+ ConditionalUnit owner = (ConditionalUnit) getElementToEdit();
+ owner.setThen(newElement);
+
+ doConfigure(newElement, monitor, info);
+
+ ((CreateElementRequest) getRequest()).setNewElement(newElement);
+ return CommandResult.newOKCommandResult(newElement);
+ }
+
+ /**
+ * @generated
+ */
+ protected void doConfigure(CartesianQueuedUnit newElement,
+ IProgressMonitor monitor, IAdaptable info)
+ throws ExecutionException {
+ IElementType elementType = ((CreateElementRequest) getRequest())
+ .getElementType();
+ ConfigureRequest configureRequest = new ConfigureRequest(
+ getEditingDomain(), newElement, elementType);
+ configureRequest.setClientContext(((CreateElementRequest) getRequest())
+ .getClientContext());
+ configureRequest.addParameters(getRequest().getParameters());
+ ICommand configureCommand = elementType
+ .getEditCommand(configureRequest);
+ if (configureCommand != null && configureCommand.canExecute()) {
+ configureCommand.execute(monitor, info);
+ }
+ }
+
+}
diff --git a/org.eclipse.emf.refactor.comrel.diagram/src/comrel/diagram/edit/commands/CartesianQueuedUnit7CreateCommand.java b/org.eclipse.emf.refactor.comrel.diagram/src/comrel/diagram/edit/commands/CartesianQueuedUnit7CreateCommand.java
new file mode 100644
index 0000000..cc3e22f
--- /dev/null
+++ b/org.eclipse.emf.refactor.comrel.diagram/src/comrel/diagram/edit/commands/CartesianQueuedUnit7CreateCommand.java
@@ -0,0 +1,96 @@
+/*
+ *
+ */
+package comrel.diagram.edit.commands;
+
+import org.eclipse.core.commands.ExecutionException;
+import org.eclipse.core.runtime.IAdaptable;
+import org.eclipse.core.runtime.IProgressMonitor;
+import org.eclipse.emf.ecore.EObject;
+import org.eclipse.gmf.runtime.common.core.command.CommandResult;
+import org.eclipse.gmf.runtime.common.core.command.ICommand;
+import org.eclipse.gmf.runtime.emf.type.core.IElementType;
+import org.eclipse.gmf.runtime.emf.type.core.commands.EditElementCommand;
+import org.eclipse.gmf.runtime.emf.type.core.requests.ConfigureRequest;
+import org.eclipse.gmf.runtime.emf.type.core.requests.CreateElementRequest;
+import org.eclipse.gmf.runtime.notation.View;
+
+import comrel.CartesianQueuedUnit;
+import comrel.ComrelFactory;
+import comrel.ConditionalUnit;
+
+/**
+ * @generated
+ */
+public class CartesianQueuedUnit7CreateCommand extends EditElementCommand {
+
+ /**
+ * @generated
+ */
+ public CartesianQueuedUnit7CreateCommand(CreateElementRequest req) {
+ super(req.getLabel(), null, req);
+ }
+
+ /**
+ * FIXME: replace with setElementToEdit()
+ * @generated
+ */
+ protected EObject getElementToEdit() {
+ EObject container = ((CreateElementRequest) getRequest())
+ .getContainer();
+ if (container instanceof View) {
+ container = ((View) container).getElement();
+ }
+ return container;
+ }
+
+ /**
+ * @generated
+ */
+ public boolean canExecute() {
+ ConditionalUnit container = (ConditionalUnit) getElementToEdit();
+ if (container.getElse() != null) {
+ return false;
+ }
+ return true;
+
+ }
+
+ /**
+ * @generated
+ */
+ protected CommandResult doExecuteWithResult(IProgressMonitor monitor,
+ IAdaptable info) throws ExecutionException {
+ CartesianQueuedUnit newElement = ComrelFactory.eINSTANCE
+ .createCartesianQueuedUnit();
+
+ ConditionalUnit owner = (ConditionalUnit) getElementToEdit();
+ owner.setElse(newElement);
+
+ doConfigure(newElement, monitor, info);
+
+ ((CreateElementRequest) getRequest()).setNewElement(newElement);
+ return CommandResult.newOKCommandResult(newElement);
+ }
+
+ /**
+ * @generated
+ */
+ protected void doConfigure(CartesianQueuedUnit newElement,
+ IProgressMonitor monitor, IAdaptable info)
+ throws ExecutionException {
+ IElementType elementType = ((CreateElementRequest) getRequest())
+ .getElementType();
+ ConfigureRequest configureRequest = new ConfigureRequest(
+ getEditingDomain(), newElement, elementType);
+ configureRequest.setClientContext(((CreateElementRequest) getRequest())
+ .getClientContext());
+ configureRequest.addParameters(getRequest().getParameters());
+ ICommand configureCommand = elementType
+ .getEditCommand(configureRequest);
+ if (configureCommand != null && configureCommand.canExecute()) {
+ configureCommand.execute(monitor, info);
+ }
+ }
+
+}
diff --git a/org.eclipse.emf.refactor.comrel.diagram/src/comrel/diagram/edit/commands/CartesianQueuedUnitCreateCommand.java b/org.eclipse.emf.refactor.comrel.diagram/src/comrel/diagram/edit/commands/CartesianQueuedUnitCreateCommand.java
new file mode 100644
index 0000000..b80bf51
--- /dev/null
+++ b/org.eclipse.emf.refactor.comrel.diagram/src/comrel/diagram/edit/commands/CartesianQueuedUnitCreateCommand.java
@@ -0,0 +1,97 @@
+/*
+ *
+ */
+package comrel.diagram.edit.commands;
+
+import org.eclipse.core.commands.ExecutionException;
+import org.eclipse.core.runtime.IAdaptable;
+import org.eclipse.core.runtime.IProgressMonitor;
+import org.eclipse.emf.ecore.EObject;
+import org.eclipse.gmf.runtime.common.core.command.CommandResult;
+import org.eclipse.gmf.runtime.common.core.command.ICommand;
+import org.eclipse.gmf.runtime.emf.type.core.IElementType;
+import org.eclipse.gmf.runtime.emf.type.core.commands.EditElementCommand;
+import org.eclipse.gmf.runtime.emf.type.core.requests.ConfigureRequest;
+import org.eclipse.gmf.runtime.emf.type.core.requests.CreateElementRequest;
+import org.eclipse.gmf.runtime.notation.View;
+
+import comrel.CartesianQueuedUnit;
+import comrel.CompositeRefactoring;
+import comrel.ComrelFactory;
+
+/**
+ * @generated
+ */
+public class CartesianQueuedUnitCreateCommand extends EditElementCommand {
+
+ /**
+ * @generated
+ */
+ public CartesianQueuedUnitCreateCommand(CreateElementRequest req) {
+ super(req.getLabel(), null, req);
+ }
+
+ /**
+ * FIXME: replace with setElementToEdit()
+ * @generated
+ */
+ protected EObject getElementToEdit() {
+ EObject container = ((CreateElementRequest) getRequest())
+ .getContainer();
+ if (container instanceof View) {
+ container = ((View) container).getElement();
+ }
+ return container;
+ }
+
+ /**
+ * @generated
+ */
+ public boolean canExecute() {
+ CompositeRefactoring container = (CompositeRefactoring) getElementToEdit();
+ if (container.getMainRefactoringUnit() != null) {
+ return false;
+ }
+ return true;
+
+ }
+
+ /**
+ * @generated NOT
+ */
+ protected CommandResult doExecuteWithResult(IProgressMonitor monitor,
+ IAdaptable info) throws ExecutionException {
+ CartesianQueuedUnit newElement = ComrelFactory.eINSTANCE
+ .createCartesianQueuedUnit();
+ newElement.init();
+
+ CompositeRefactoring owner = (CompositeRefactoring) getElementToEdit();
+ owner.setMainRefactoringUnit(newElement);
+
+ doConfigure(newElement, monitor, info);
+
+ ((CreateElementRequest) getRequest()).setNewElement(newElement);
+ return CommandResult.newOKCommandResult(newElement);
+ }
+
+ /**
+ * @generated
+ */
+ protected void doConfigure(CartesianQueuedUnit newElement,
+ IProgressMonitor monitor, IAdaptable info)
+ throws ExecutionException {
+ IElementType elementType = ((CreateElementRequest) getRequest())
+ .getElementType();
+ ConfigureRequest configureRequest = new ConfigureRequest(
+ getEditingDomain(), newElement, elementType);
+ configureRequest.setClientContext(((CreateElementRequest) getRequest())
+ .getClientContext());
+ configureRequest.addParameters(getRequest().getParameters());
+ ICommand configureCommand = elementType
+ .getEditCommand(configureRequest);
+ if (configureCommand != null && configureCommand.canExecute()) {
+ configureCommand.execute(monitor, info);
+ }
+ }
+
+}
diff --git a/org.eclipse.emf.refactor.comrel.diagram/src/comrel/diagram/edit/commands/ComrelCreateShortcutDecorationsCommand.java b/org.eclipse.emf.refactor.comrel.diagram/src/comrel/diagram/edit/commands/ComrelCreateShortcutDecorationsCommand.java
new file mode 100644
index 0000000..15a6161
--- /dev/null
+++ b/org.eclipse.emf.refactor.comrel.diagram/src/comrel/diagram/edit/commands/ComrelCreateShortcutDecorationsCommand.java
@@ -0,0 +1,74 @@
+/*
+ *
+ */
+package comrel.diagram.edit.commands;
+
+import java.util.Collections;
+import java.util.Iterator;
+import java.util.List;
+
+import org.eclipse.core.commands.ExecutionException;
+import org.eclipse.core.runtime.IAdaptable;
+import org.eclipse.core.runtime.IProgressMonitor;
+import org.eclipse.emf.ecore.EAnnotation;
+import org.eclipse.emf.ecore.EcoreFactory;
+import org.eclipse.emf.transaction.TransactionalEditingDomain;
+import org.eclipse.gmf.runtime.common.core.command.CommandResult;
+import org.eclipse.gmf.runtime.diagram.ui.requests.CreateViewRequest;
+import org.eclipse.gmf.runtime.emf.commands.core.command.AbstractTransactionalCommand;
+import org.eclipse.gmf.runtime.notation.View;
+
+import comrel.diagram.edit.parts.CompositeRefactoringEditPart;
+
+/**
+ * @generated
+ */
+public class ComrelCreateShortcutDecorationsCommand extends
+ AbstractTransactionalCommand {
+
+ /**
+ * @generated
+ */
+ private List myDescriptors;
+
+ /**
+ * @generated
+ */
+ public ComrelCreateShortcutDecorationsCommand(
+ TransactionalEditingDomain editingDomain, View parentView,
+ List viewDescriptors) {
+ super(editingDomain, "Create Shortcuts", getWorkspaceFiles(parentView)); //$NON-NLS-1$
+ myDescriptors = viewDescriptors;
+ }
+
+ /**
+ * @generated
+ */
+ public ComrelCreateShortcutDecorationsCommand(
+ TransactionalEditingDomain editingDomain, View parentView,
+ CreateViewRequest.ViewDescriptor viewDescriptor) {
+ this(editingDomain, parentView, Collections
+ .singletonList(viewDescriptor));
+ }
+
+ /**
+ * @generated
+ */
+ protected CommandResult doExecuteWithResult(IProgressMonitor monitor,
+ IAdaptable info) throws ExecutionException {
+ for (Iterator it = myDescriptors.iterator(); it.hasNext();) {
+ CreateViewRequest.ViewDescriptor nextDescriptor = (CreateViewRequest.ViewDescriptor) it
+ .next();
+ View view = (View) nextDescriptor.getAdapter(View.class);
+ if (view != null && view.getEAnnotation("Shortcut") == null) { //$NON-NLS-1$
+ EAnnotation shortcutAnnotation = EcoreFactory.eINSTANCE
+ .createEAnnotation();
+ shortcutAnnotation.setSource("Shortcut"); //$NON-NLS-1$
+ shortcutAnnotation.getDetails().put(
+ "modelID", CompositeRefactoringEditPart.MODEL_ID); //$NON-NLS-1$
+ view.getEAnnotations().add(shortcutAnnotation);
+ }
+ }
+ return CommandResult.newOKCommandResult();
+ }
+}
diff --git a/org.eclipse.emf.refactor.comrel.diagram/src/comrel/diagram/edit/commands/ConditionCheckCreateCommand.java b/org.eclipse.emf.refactor.comrel.diagram/src/comrel/diagram/edit/commands/ConditionCheckCreateCommand.java
new file mode 100644
index 0000000..c8506be
--- /dev/null
+++ b/org.eclipse.emf.refactor.comrel.diagram/src/comrel/diagram/edit/commands/ConditionCheckCreateCommand.java
@@ -0,0 +1,96 @@
+/*
+ *
+ */
+package comrel.diagram.edit.commands;
+
+import org.eclipse.core.commands.ExecutionException;
+import org.eclipse.core.runtime.IAdaptable;
+import org.eclipse.core.runtime.IProgressMonitor;
+import org.eclipse.emf.ecore.EObject;
+import org.eclipse.gmf.runtime.common.core.command.CommandResult;
+import org.eclipse.gmf.runtime.common.core.command.ICommand;
+import org.eclipse.gmf.runtime.emf.type.core.IElementType;
+import org.eclipse.gmf.runtime.emf.type.core.commands.EditElementCommand;
+import org.eclipse.gmf.runtime.emf.type.core.requests.ConfigureRequest;
+import org.eclipse.gmf.runtime.emf.type.core.requests.CreateElementRequest;
+import org.eclipse.gmf.runtime.notation.View;
+
+import comrel.ComrelFactory;
+import comrel.ConditionCheck;
+import comrel.ConditionalUnit;
+
+/**
+ * @generated
+ */
+public class ConditionCheckCreateCommand extends EditElementCommand {
+
+ /**
+ * @generated
+ */
+ public ConditionCheckCreateCommand(CreateElementRequest req) {
+ super(req.getLabel(), null, req);
+ }
+
+ /**
+ * FIXME: replace with setElementToEdit()
+ * @generated
+ */
+ protected EObject getElementToEdit() {
+ EObject container = ((CreateElementRequest) getRequest())
+ .getContainer();
+ if (container instanceof View) {
+ container = ((View) container).getElement();
+ }
+ return container;
+ }
+
+ /**
+ * @generated
+ */
+ public boolean canExecute() {
+ ConditionalUnit container = (ConditionalUnit) getElementToEdit();
+ if (container.getIf() != null) {
+ return false;
+ }
+ return true;
+
+ }
+
+ /**
+ * @generated
+ */
+ protected CommandResult doExecuteWithResult(IProgressMonitor monitor,
+ IAdaptable info) throws ExecutionException {
+ ConditionCheck newElement = ComrelFactory.eINSTANCE
+ .createConditionCheck();
+
+ ConditionalUnit owner = (ConditionalUnit) getElementToEdit();
+ owner.setIf(newElement);
+
+ doConfigure(newElement, monitor, info);
+
+ ((CreateElementRequest) getRequest()).setNewElement(newElement);
+ return CommandResult.newOKCommandResult(newElement);
+ }
+
+ /**
+ * @generated
+ */
+ protected void doConfigure(ConditionCheck newElement,
+ IProgressMonitor monitor, IAdaptable info)
+ throws ExecutionException {
+ IElementType elementType = ((CreateElementRequest) getRequest())
+ .getElementType();
+ ConfigureRequest configureRequest = new ConfigureRequest(
+ getEditingDomain(), newElement, elementType);
+ configureRequest.setClientContext(((CreateElementRequest) getRequest())
+ .getClientContext());
+ configureRequest.addParameters(getRequest().getParameters());
+ ICommand configureCommand = elementType
+ .getEditCommand(configureRequest);
+ if (configureCommand != null && configureCommand.canExecute()) {
+ configureCommand.execute(monitor, info);
+ }
+ }
+
+}
diff --git a/org.eclipse.emf.refactor.comrel.diagram/src/comrel/diagram/edit/commands/ConditionalUnit2CreateCommand.java b/org.eclipse.emf.refactor.comrel.diagram/src/comrel/diagram/edit/commands/ConditionalUnit2CreateCommand.java
new file mode 100644
index 0000000..8a9934c
--- /dev/null
+++ b/org.eclipse.emf.refactor.comrel.diagram/src/comrel/diagram/edit/commands/ConditionalUnit2CreateCommand.java
@@ -0,0 +1,96 @@
+/*
+ *
+ */
+package comrel.diagram.edit.commands;
+
+import org.eclipse.core.commands.ExecutionException;
+import org.eclipse.core.runtime.IAdaptable;
+import org.eclipse.core.runtime.IProgressMonitor;
+import org.eclipse.emf.ecore.EObject;
+import org.eclipse.gmf.runtime.common.core.command.CommandResult;
+import org.eclipse.gmf.runtime.common.core.command.ICommand;
+import org.eclipse.gmf.runtime.emf.type.core.IElementType;
+import org.eclipse.gmf.runtime.emf.type.core.commands.EditElementCommand;
+import org.eclipse.gmf.runtime.emf.type.core.requests.ConfigureRequest;
+import org.eclipse.gmf.runtime.emf.type.core.requests.CreateElementRequest;
+import org.eclipse.gmf.runtime.notation.View;
+
+import comrel.CartesianQueuedUnit;
+import comrel.ComrelFactory;
+import comrel.ConditionalUnit;
+
+/**
+ * @generated
+ */
+public class ConditionalUnit2CreateCommand extends EditElementCommand {
+
+ /**
+ * @generated
+ */
+ public ConditionalUnit2CreateCommand(CreateElementRequest req) {
+ super(req.getLabel(), null, req);
+ }
+
+ /**
+ * FIXME: replace with setElementToEdit()
+ * @generated
+ */
+ protected EObject getElementToEdit() {
+ EObject container = ((CreateElementRequest) getRequest())
+ .getContainer();
+ if (container instanceof View) {
+ container = ((View) container).getElement();
+ }
+ return container;
+ }
+
+ /**
+ * @generated
+ */
+ public boolean canExecute() {
+ CartesianQueuedUnit container = (CartesianQueuedUnit) getElementToEdit();
+ if (container.getRefactoringUnit() != null) {
+ return false;
+ }
+ return true;
+
+ }
+
+ /**
+ * @generated
+ */
+ protected CommandResult doExecuteWithResult(IProgressMonitor monitor,
+ IAdaptable info) throws ExecutionException {
+ ConditionalUnit newElement = ComrelFactory.eINSTANCE
+ .createConditionalUnit();
+
+ CartesianQueuedUnit owner = (CartesianQueuedUnit) getElementToEdit();
+ owner.setRefactoringUnit(newElement);
+
+ doConfigure(newElement, monitor, info);
+
+ ((CreateElementRequest) getRequest()).setNewElement(newElement);
+ return CommandResult.newOKCommandResult(newElement);
+ }
+
+ /**
+ * @generated
+ */
+ protected void doConfigure(ConditionalUnit newElement,
+ IProgressMonitor monitor, IAdaptable info)
+ throws ExecutionException {
+ IElementType elementType = ((CreateElementRequest) getRequest())
+ .getElementType();
+ ConfigureRequest configureRequest = new ConfigureRequest(
+ getEditingDomain(), newElement, elementType);
+ configureRequest.setClientContext(((CreateElementRequest) getRequest())
+ .getClientContext());
+ configureRequest.addParameters(getRequest().getParameters());
+ ICommand configureCommand = elementType
+ .getEditCommand(configureRequest);
+ if (configureCommand != null && configureCommand.canExecute()) {
+ configureCommand.execute(monitor, info);
+ }
+ }
+
+}
diff --git a/org.eclipse.emf.refactor.comrel.diagram/src/comrel/diagram/edit/commands/ConditionalUnit3CreateCommand.java b/org.eclipse.emf.refactor.comrel.diagram/src/comrel/diagram/edit/commands/ConditionalUnit3CreateCommand.java
new file mode 100644
index 0000000..fcc341e
--- /dev/null
+++ b/org.eclipse.emf.refactor.comrel.diagram/src/comrel/diagram/edit/commands/ConditionalUnit3CreateCommand.java
@@ -0,0 +1,96 @@
+/*
+ *
+ */
+package comrel.diagram.edit.commands;
+
+import org.eclipse.core.commands.ExecutionException;
+import org.eclipse.core.runtime.IAdaptable;
+import org.eclipse.core.runtime.IProgressMonitor;
+import org.eclipse.emf.ecore.EObject;
+import org.eclipse.gmf.runtime.common.core.command.CommandResult;
+import org.eclipse.gmf.runtime.common.core.command.ICommand;
+import org.eclipse.gmf.runtime.emf.type.core.IElementType;
+import org.eclipse.gmf.runtime.emf.type.core.commands.EditElementCommand;
+import org.eclipse.gmf.runtime.emf.type.core.requests.ConfigureRequest;
+import org.eclipse.gmf.runtime.emf.type.core.requests.CreateElementRequest;
+import org.eclipse.gmf.runtime.notation.View;
+
+import comrel.ComrelFactory;
+import comrel.ConditionalUnit;
+import comrel.ParallelQueuedUnit;
+
+/**
+ * @generated
+ */
+public class ConditionalUnit3CreateCommand extends EditElementCommand {
+
+ /**
+ * @generated
+ */
+ public ConditionalUnit3CreateCommand(CreateElementRequest req) {
+ super(req.getLabel(), null, req);
+ }
+
+ /**
+ * FIXME: replace with setElementToEdit()
+ * @generated
+ */
+ protected EObject getElementToEdit() {
+ EObject container = ((CreateElementRequest) getRequest())
+ .getContainer();
+ if (container instanceof View) {
+ container = ((View) container).getElement();
+ }
+ return container;
+ }
+
+ /**
+ * @generated
+ */
+ public boolean canExecute() {
+ ParallelQueuedUnit container = (ParallelQueuedUnit) getElementToEdit();
+ if (container.getRefactoringUnits() != null) {
+ return false;
+ }
+ return true;
+
+ }
+
+ /**
+ * @generated
+ */
+ protected CommandResult doExecuteWithResult(IProgressMonitor monitor,
+ IAdaptable info) throws ExecutionException {
+ ConditionalUnit newElement = ComrelFactory.eINSTANCE
+ .createConditionalUnit();
+
+ ParallelQueuedUnit owner = (ParallelQueuedUnit) getElementToEdit();
+ owner.setRefactoringUnits(newElement);
+
+ doConfigure(newElement, monitor, info);
+
+ ((CreateElementRequest) getRequest()).setNewElement(newElement);
+ return CommandResult.newOKCommandResult(newElement);
+ }
+
+ /**
+ * @generated
+ */
+ protected void doConfigure(ConditionalUnit newElement,
+ IProgressMonitor monitor, IAdaptable info)
+ throws ExecutionException {
+ IElementType elementType = ((CreateElementRequest) getRequest())
+ .getElementType();
+ ConfigureRequest configureRequest = new ConfigureRequest(
+ getEditingDomain(), newElement, elementType);
+ configureRequest.setClientContext(((CreateElementRequest) getRequest())
+ .getClientContext());
+ configureRequest.addParameters(getRequest().getParameters());
+ ICommand configureCommand = elementType
+ .getEditCommand(configureRequest);
+ if (configureCommand != null && configureCommand.canExecute()) {
+ configureCommand.execute(monitor, info);
+ }
+ }
+
+}
diff --git a/org.eclipse.emf.refactor.comrel.diagram/src/comrel/diagram/edit/commands/ConditionalUnit4CreateCommand.java b/org.eclipse.emf.refactor.comrel.diagram/src/comrel/diagram/edit/commands/ConditionalUnit4CreateCommand.java
new file mode 100644
index 0000000..3225eec
--- /dev/null
+++ b/org.eclipse.emf.refactor.comrel.diagram/src/comrel/diagram/edit/commands/ConditionalUnit4CreateCommand.java
@@ -0,0 +1,96 @@
+/*
+ *
+ */
+package comrel.diagram.edit.commands;
+
+import org.eclipse.core.commands.ExecutionException;
+import org.eclipse.core.runtime.IAdaptable;
+import org.eclipse.core.runtime.IProgressMonitor;
+import org.eclipse.emf.ecore.EObject;
+import org.eclipse.gmf.runtime.common.core.command.CommandResult;
+import org.eclipse.gmf.runtime.common.core.command.ICommand;
+import org.eclipse.gmf.runtime.emf.type.core.IElementType;
+import org.eclipse.gmf.runtime.emf.type.core.commands.EditElementCommand;
+import org.eclipse.gmf.runtime.emf.type.core.requests.ConfigureRequest;
+import org.eclipse.gmf.runtime.emf.type.core.requests.CreateElementRequest;
+import org.eclipse.gmf.runtime.notation.View;
+
+import comrel.ComrelFactory;
+import comrel.ConditionalUnit;
+import comrel.SingleQueuedUnit;
+
+/**
+ * @generated
+ */
+public class ConditionalUnit4CreateCommand extends EditElementCommand {
+
+ /**
+ * @generated
+ */
+ public ConditionalUnit4CreateCommand(CreateElementRequest req) {
+ super(req.getLabel(), null, req);
+ }
+
+ /**
+ * FIXME: replace with setElementToEdit()
+ * @generated
+ */
+ protected EObject getElementToEdit() {
+ EObject container = ((CreateElementRequest) getRequest())
+ .getContainer();
+ if (container instanceof View) {
+ container = ((View) container).getElement();
+ }
+ return container;
+ }
+
+ /**
+ * @generated
+ */
+ public boolean canExecute() {
+ SingleQueuedUnit container = (SingleQueuedUnit) getElementToEdit();
+ if (container.getRefactoringUnit() != null) {
+ return false;
+ }
+ return true;
+
+ }
+
+ /**
+ * @generated
+ */
+ protected CommandResult doExecuteWithResult(IProgressMonitor monitor,
+ IAdaptable info) throws ExecutionException {
+ ConditionalUnit newElement = ComrelFactory.eINSTANCE
+ .createConditionalUnit();
+
+ SingleQueuedUnit owner = (SingleQueuedUnit) getElementToEdit();
+ owner.setRefactoringUnit(newElement);
+
+ doConfigure(newElement, monitor, info);
+
+ ((CreateElementRequest) getRequest()).setNewElement(newElement);
+ return CommandResult.newOKCommandResult(newElement);
+ }
+
+ /**
+ * @generated
+ */
+ protected void doConfigure(ConditionalUnit newElement,
+ IProgressMonitor monitor, IAdaptable info)
+ throws ExecutionException {
+ IElementType elementType = ((CreateElementRequest) getRequest())
+ .getElementType();
+ ConfigureRequest configureRequest = new ConfigureRequest(
+ getEditingDomain(), newElement, elementType);
+ configureRequest.setClientContext(((CreateElementRequest) getRequest())
+ .getClientContext());
+ configureRequest.addParameters(getRequest().getParameters());
+ ICommand configureCommand = elementType
+ .getEditCommand(configureRequest);
+ if (configureCommand != null && configureCommand.canExecute()) {
+ configureCommand.execute(monitor, info);
+ }
+ }
+
+}
diff --git a/org.eclipse.emf.refactor.comrel.diagram/src/comrel/diagram/edit/commands/ConditionalUnit5CreateCommand.java b/org.eclipse.emf.refactor.comrel.diagram/src/comrel/diagram/edit/commands/ConditionalUnit5CreateCommand.java
new file mode 100644
index 0000000..0619a57
--- /dev/null
+++ b/org.eclipse.emf.refactor.comrel.diagram/src/comrel/diagram/edit/commands/ConditionalUnit5CreateCommand.java
@@ -0,0 +1,92 @@
+/*
+ *
+ */
+package comrel.diagram.edit.commands;
+
+import org.eclipse.core.commands.ExecutionException;
+import org.eclipse.core.runtime.IAdaptable;
+import org.eclipse.core.runtime.IProgressMonitor;
+import org.eclipse.emf.ecore.EObject;
+import org.eclipse.gmf.runtime.common.core.command.CommandResult;
+import org.eclipse.gmf.runtime.common.core.command.ICommand;
+import org.eclipse.gmf.runtime.emf.type.core.IElementType;
+import org.eclipse.gmf.runtime.emf.type.core.commands.EditElementCommand;
+import org.eclipse.gmf.runtime.emf.type.core.requests.ConfigureRequest;
+import org.eclipse.gmf.runtime.emf.type.core.requests.CreateElementRequest;
+import org.eclipse.gmf.runtime.notation.View;
+
+import comrel.ComrelFactory;
+import comrel.ConditionalUnit;
+import comrel.SequentialUnit;
+
+/**
+ * @generated
+ */
+public class ConditionalUnit5CreateCommand extends EditElementCommand {
+
+ /**
+ * @generated
+ */
+ public ConditionalUnit5CreateCommand(CreateElementRequest req) {
+ super(req.getLabel(), null, req);
+ }
+
+ /**
+ * FIXME: replace with setElementToEdit()
+ * @generated
+ */
+ protected EObject getElementToEdit() {
+ EObject container = ((CreateElementRequest) getRequest())
+ .getContainer();
+ if (container instanceof View) {
+ container = ((View) container).getElement();
+ }
+ return container;
+ }
+
+ /**
+ * @generated
+ */
+ public boolean canExecute() {
+ return true;
+
+ }
+
+ /**
+ * @generated NOT
+ */
+ protected CommandResult doExecuteWithResult(IProgressMonitor monitor,
+ IAdaptable info) throws ExecutionException {
+ ConditionalUnit newElement = ComrelFactory.eINSTANCE
+ .createConditionalUnit();
+
+ SequentialUnit owner = (SequentialUnit) getElementToEdit();
+ owner.getRefactoringUnits().add(newElement);
+ owner.updateSeqExecutionOrder();
+ doConfigure(newElement, monitor, info);
+
+ ((CreateElementRequest) getRequest()).setNewElement(newElement);
+ return CommandResult.newOKCommandResult(newElement);
+ }
+
+ /**
+ * @generated
+ */
+ protected void doConfigure(ConditionalUnit newElement,
+ IProgressMonitor monitor, IAdaptable info)
+ throws ExecutionException {
+ IElementType elementType = ((CreateElementRequest) getRequest())
+ .getElementType();
+ ConfigureRequest configureRequest = new ConfigureRequest(
+ getEditingDomain(), newElement, elementType);
+ configureRequest.setClientContext(((CreateElementRequest) getRequest())
+ .getClientContext());
+ configureRequest.addParameters(getRequest().getParameters());
+ ICommand configureCommand = elementType
+ .getEditCommand(configureRequest);
+ if (configureCommand != null && configureCommand.canExecute()) {
+ configureCommand.execute(monitor, info);
+ }
+ }
+
+}
diff --git a/org.eclipse.emf.refactor.comrel.diagram/src/comrel/diagram/edit/commands/ConditionalUnit6CreateCommand.java b/org.eclipse.emf.refactor.comrel.diagram/src/comrel/diagram/edit/commands/ConditionalUnit6CreateCommand.java
new file mode 100644
index 0000000..682a4c8
--- /dev/null
+++ b/org.eclipse.emf.refactor.comrel.diagram/src/comrel/diagram/edit/commands/ConditionalUnit6CreateCommand.java
@@ -0,0 +1,95 @@
+/*
+ *
+ */
+package comrel.diagram.edit.commands;
+
+import org.eclipse.core.commands.ExecutionException;
+import org.eclipse.core.runtime.IAdaptable;
+import org.eclipse.core.runtime.IProgressMonitor;
+import org.eclipse.emf.ecore.EObject;
+import org.eclipse.gmf.runtime.common.core.command.CommandResult;
+import org.eclipse.gmf.runtime.common.core.command.ICommand;
+import org.eclipse.gmf.runtime.emf.type.core.IElementType;
+import org.eclipse.gmf.runtime.emf.type.core.commands.EditElementCommand;
+import org.eclipse.gmf.runtime.emf.type.core.requests.ConfigureRequest;
+import org.eclipse.gmf.runtime.emf.type.core.requests.CreateElementRequest;
+import org.eclipse.gmf.runtime.notation.View;
+
+import comrel.ComrelFactory;
+import comrel.ConditionalUnit;
+
+/**
+ * @generated
+ */
+public class ConditionalUnit6CreateCommand extends EditElementCommand {
+
+ /**
+ * @generated
+ */
+ public ConditionalUnit6CreateCommand(CreateElementRequest req) {
+ super(req.getLabel(), null, req);
+ }
+
+ /**
+ * FIXME: replace with setElementToEdit()
+ * @generated
+ */
+ protected EObject getElementToEdit() {
+ EObject container = ((CreateElementRequest) getRequest())
+ .getContainer();
+ if (container instanceof View) {
+ container = ((View) container).getElement();
+ }
+ return container;
+ }
+
+ /**
+ * @generated
+ */
+ public boolean canExecute() {
+ ConditionalUnit container = (ConditionalUnit) getElementToEdit();
+ if (container.getThen() != null) {
+ return false;
+ }
+ return true;
+
+ }
+
+ /**
+ * @generated
+ */
+ protected CommandResult doExecuteWithResult(IProgressMonitor monitor,
+ IAdaptable info) throws ExecutionException {
+ ConditionalUnit newElement = ComrelFactory.eINSTANCE
+ .createConditionalUnit();
+
+ ConditionalUnit owner = (ConditionalUnit) getElementToEdit();
+ owner.setThen(newElement);
+
+ doConfigure(newElement, monitor, info);
+
+ ((CreateElementRequest) getRequest()).setNewElement(newElement);
+ return CommandResult.newOKCommandResult(newElement);
+ }
+
+ /**
+ * @generated
+ */
+ protected void doConfigure(ConditionalUnit newElement,
+ IProgressMonitor monitor, IAdaptable info)
+ throws ExecutionException {
+ IElementType elementType = ((CreateElementRequest) getRequest())
+ .getElementType();
+ ConfigureRequest configureRequest = new ConfigureRequest(
+ getEditingDomain(), newElement, elementType);
+ configureRequest.setClientContext(((CreateElementRequest) getRequest())
+ .getClientContext());
+ configureRequest.addParameters(getRequest().getParameters());
+ ICommand configureCommand = elementType
+ .getEditCommand(configureRequest);
+ if (configureCommand != null && configureCommand.canExecute()) {
+ configureCommand.execute(monitor, info);
+ }
+ }
+
+}
diff --git a/org.eclipse.emf.refactor.comrel.diagram/src/comrel/diagram/edit/commands/ConditionalUnit7CreateCommand.java b/org.eclipse.emf.refactor.comrel.diagram/src/comrel/diagram/edit/commands/ConditionalUnit7CreateCommand.java
new file mode 100644
index 0000000..07be1d4
--- /dev/null
+++ b/org.eclipse.emf.refactor.comrel.diagram/src/comrel/diagram/edit/commands/ConditionalUnit7CreateCommand.java
@@ -0,0 +1,95 @@
+/*
+ *
+ */
+package comrel.diagram.edit.commands;
+
+import org.eclipse.core.commands.ExecutionException;
+import org.eclipse.core.runtime.IAdaptable;
+import org.eclipse.core.runtime.IProgressMonitor;
+import org.eclipse.emf.ecore.EObject;
+import org.eclipse.gmf.runtime.common.core.command.CommandResult;
+import org.eclipse.gmf.runtime.common.core.command.ICommand;
+import org.eclipse.gmf.runtime.emf.type.core.IElementType;
+import org.eclipse.gmf.runtime.emf.type.core.commands.EditElementCommand;
+import org.eclipse.gmf.runtime.emf.type.core.requests.ConfigureRequest;
+import org.eclipse.gmf.runtime.emf.type.core.requests.CreateElementRequest;
+import org.eclipse.gmf.runtime.notation.View;
+
+import comrel.ComrelFactory;
+import comrel.ConditionalUnit;
+
+/**
+ * @generated
+ */
+public class ConditionalUnit7CreateCommand extends EditElementCommand {
+
+ /**
+ * @generated
+ */
+ public ConditionalUnit7CreateCommand(CreateElementRequest req) {
+ super(req.getLabel(), null, req);
+ }
+
+ /**
+ * FIXME: replace with setElementToEdit()
+ * @generated
+ */
+ protected EObject getElementToEdit() {
+ EObject container = ((CreateElementRequest) getRequest())
+ .getContainer();
+ if (container instanceof View) {
+ container = ((View) container).getElement();
+ }
+ return container;
+ }
+
+ /**
+ * @generated
+ */
+ public boolean canExecute() {
+ ConditionalUnit container = (ConditionalUnit) getElementToEdit();
+ if (container.getElse() != null) {
+ return false;
+ }
+ return true;
+
+ }
+
+ /**
+ * @generated
+ */
+ protected CommandResult doExecuteWithResult(IProgressMonitor monitor,
+ IAdaptable info) throws ExecutionException {
+ ConditionalUnit newElement = ComrelFactory.eINSTANCE
+ .createConditionalUnit();
+
+ ConditionalUnit owner = (ConditionalUnit) getElementToEdit();
+ owner.setElse(newElement);
+
+ doConfigure(newElement, monitor, info);
+
+ ((CreateElementRequest) getRequest()).setNewElement(newElement);
+ return CommandResult.newOKCommandResult(newElement);
+ }
+
+ /**
+ * @generated
+ */
+ protected void doConfigure(ConditionalUnit newElement,
+ IProgressMonitor monitor, IAdaptable info)
+ throws ExecutionException {
+ IElementType elementType = ((CreateElementRequest) getRequest())
+ .getElementType();
+ ConfigureRequest configureRequest = new ConfigureRequest(
+ getEditingDomain(), newElement, elementType);
+ configureRequest.setClientContext(((CreateElementRequest) getRequest())
+ .getClientContext());
+ configureRequest.addParameters(getRequest().getParameters());
+ ICommand configureCommand = elementType
+ .getEditCommand(configureRequest);
+ if (configureCommand != null && configureCommand.canExecute()) {
+ configureCommand.execute(monitor, info);
+ }
+ }
+
+}
diff --git a/org.eclipse.emf.refactor.comrel.diagram/src/comrel/diagram/edit/commands/ConditionalUnitCreateCommand.java b/org.eclipse.emf.refactor.comrel.diagram/src/comrel/diagram/edit/commands/ConditionalUnitCreateCommand.java
new file mode 100644
index 0000000..731ffa0
--- /dev/null
+++ b/org.eclipse.emf.refactor.comrel.diagram/src/comrel/diagram/edit/commands/ConditionalUnitCreateCommand.java
@@ -0,0 +1,96 @@
+/*
+ *
+ */
+package comrel.diagram.edit.commands;
+
+import org.eclipse.core.commands.ExecutionException;
+import org.eclipse.core.runtime.IAdaptable;
+import org.eclipse.core.runtime.IProgressMonitor;
+import org.eclipse.emf.ecore.EObject;
+import org.eclipse.gmf.runtime.common.core.command.CommandResult;
+import org.eclipse.gmf.runtime.common.core.command.ICommand;
+import org.eclipse.gmf.runtime.emf.type.core.IElementType;
+import org.eclipse.gmf.runtime.emf.type.core.commands.EditElementCommand;
+import org.eclipse.gmf.runtime.emf.type.core.requests.ConfigureRequest;
+import org.eclipse.gmf.runtime.emf.type.core.requests.CreateElementRequest;
+import org.eclipse.gmf.runtime.notation.View;
+
+import comrel.CompositeRefactoring;
+import comrel.ComrelFactory;
+import comrel.ConditionalUnit;
+
+/**
+ * @generated
+ */
+public class ConditionalUnitCreateCommand extends EditElementCommand {
+
+ /**
+ * @generated
+ */
+ public ConditionalUnitCreateCommand(CreateElementRequest req) {
+ super(req.getLabel(), null, req);
+ }
+
+ /**
+ * FIXME: replace with setElementToEdit()
+ * @generated
+ */
+ protected EObject getElementToEdit() {
+ EObject container = ((CreateElementRequest) getRequest())
+ .getContainer();
+ if (container instanceof View) {
+ container = ((View) container).getElement();
+ }
+ return container;
+ }
+
+ /**
+ * @generated
+ */
+ public boolean canExecute() {
+ CompositeRefactoring container = (CompositeRefactoring) getElementToEdit();
+ if (container.getMainRefactoringUnit() != null) {
+ return false;
+ }
+ return true;
+
+ }
+
+ /**
+ * @generated
+ */
+ protected CommandResult doExecuteWithResult(IProgressMonitor monitor,
+ IAdaptable info) throws ExecutionException {
+ ConditionalUnit newElement = ComrelFactory.eINSTANCE
+ .createConditionalUnit();
+
+ CompositeRefactoring owner = (CompositeRefactoring) getElementToEdit();
+ owner.setMainRefactoringUnit(newElement);
+
+ doConfigure(newElement, monitor, info);
+
+ ((CreateElementRequest) getRequest()).setNewElement(newElement);
+ return CommandResult.newOKCommandResult(newElement);
+ }
+
+ /**
+ * @generated
+ */
+ protected void doConfigure(ConditionalUnit newElement,
+ IProgressMonitor monitor, IAdaptable info)
+ throws ExecutionException {
+ IElementType elementType = ((CreateElementRequest) getRequest())
+ .getElementType();
+ ConfigureRequest configureRequest = new ConfigureRequest(
+ getEditingDomain(), newElement, elementType);
+ configureRequest.setClientContext(((CreateElementRequest) getRequest())
+ .getClientContext());
+ configureRequest.addParameters(getRequest().getParameters());
+ ICommand configureCommand = elementType
+ .getEditCommand(configureRequest);
+ if (configureCommand != null && configureCommand.canExecute()) {
+ configureCommand.execute(monitor, info);
+ }
+ }
+
+}
diff --git a/org.eclipse.emf.refactor.comrel.diagram/src/comrel/diagram/edit/commands/MultiFeatureUnit2CreateCommand.java b/org.eclipse.emf.refactor.comrel.diagram/src/comrel/diagram/edit/commands/MultiFeatureUnit2CreateCommand.java
new file mode 100644
index 0000000..0417751
--- /dev/null
+++ b/org.eclipse.emf.refactor.comrel.diagram/src/comrel/diagram/edit/commands/MultiFeatureUnit2CreateCommand.java
@@ -0,0 +1,116 @@
+/*
+ *
+ */
+package comrel.diagram.edit.commands;
+
+import org.eclipse.core.commands.ExecutionException;
+import org.eclipse.core.runtime.IAdaptable;
+import org.eclipse.core.runtime.IProgressMonitor;
+import org.eclipse.emf.ecore.EObject;
+import org.eclipse.gmf.runtime.common.core.command.CommandResult;
+import org.eclipse.gmf.runtime.common.core.command.ICommand;
+import org.eclipse.gmf.runtime.emf.type.core.IElementType;
+import org.eclipse.gmf.runtime.emf.type.core.commands.EditElementCommand;
+import org.eclipse.gmf.runtime.emf.type.core.requests.ConfigureRequest;
+import org.eclipse.gmf.runtime.emf.type.core.requests.CreateElementRequest;
+import org.eclipse.gmf.runtime.notation.View;
+
+import comrel.CompositeRefactoring;
+import comrel.ComrelFactory;
+import comrel.MultiFeatureUnit;
+import comrel.ParallelQueuedUnit;
+
+/**
+ * @generated
+ */
+public class MultiFeatureUnit2CreateCommand extends EditElementCommand {
+
+ /**
+ * @generated
+ */
+ public MultiFeatureUnit2CreateCommand(CreateElementRequest req) {
+ super(req.getLabel(), null, req);
+ }
+
+ /**
+ * FIXME: replace with setElementToEdit()
+ * @generated
+ */
+ protected EObject getElementToEdit() {
+ EObject container = ((CreateElementRequest) getRequest())
+ .getContainer();
+ if (container instanceof View) {
+ container = ((View) container).getElement();
+ }
+ return container;
+ }
+
+ /**
+ * @generated
+ */
+ public boolean canExecute() {
+ return true;
+
+ }
+
+ /**
+ * @generated NOT
+ */
+ protected CommandResult doExecuteWithResult(IProgressMonitor monitor,
+ IAdaptable info) throws ExecutionException {
+ /*
+ * changes: Liest aus einem Request die ID des Helpers und
+ * erstellt anhand dessen die HelperUnit
+ */
+ CreateElementRequest request = ((CreateElementRequest) getRequest());
+ String helperId = (String) request.getParameters().get(
+ comrel.diagram.part.ComrelPaletteFactory.UNIT_ID);
+ comrel.ComrelFactory factory = comrel.ComrelFactory.eINSTANCE;
+ EObject container = ((CreateElementRequest) getRequest())
+ .getContainer();
+ while (container.eContainer() != null) {
+ container = container.eContainer();
+ }
+ CompositeRefactoring cr = (CompositeRefactoring) container;
+ comrel.MultiFeatureHelper helper = cr.getMultiFeatureHelper(helperId);
+ if (helper != null && !cr.getHelper().contains(helper)) {
+ cr.getHelper().add(helper);
+ }
+ comrel.MultiFeatureUnit newElement;
+ if (helper != null) {
+ newElement = factory.createMultiFeatureUnit(helper);
+ } else {
+ newElement = factory.createMultiFeatureUnit();
+ }
+ /* end of change */
+
+ ParallelQueuedUnit owner = (ParallelQueuedUnit) getElementToEdit();
+ owner.getHelperUnits().add(newElement);
+
+ doConfigure(newElement, monitor, info);
+
+ ((CreateElementRequest) getRequest()).setNewElement(newElement);
+ return CommandResult.newOKCommandResult(newElement);
+ }
+
+ /**
+ * @generated
+ */
+ protected void doConfigure(MultiFeatureUnit newElement,
+ IProgressMonitor monitor, IAdaptable info)
+ throws ExecutionException {
+ IElementType elementType = ((CreateElementRequest) getRequest())
+ .getElementType();
+ ConfigureRequest configureRequest = new ConfigureRequest(
+ getEditingDomain(), newElement, elementType);
+ configureRequest.setClientContext(((CreateElementRequest) getRequest())
+ .getClientContext());
+ configureRequest.addParameters(getRequest().getParameters());
+ ICommand configureCommand = elementType
+ .getEditCommand(configureRequest);
+ if (configureCommand != null && configureCommand.canExecute()) {
+ configureCommand.execute(monitor, info);
+ }
+ }
+
+}
diff --git a/org.eclipse.emf.refactor.comrel.diagram/src/comrel/diagram/edit/commands/MultiFeatureUnit3CreateCommand.java b/org.eclipse.emf.refactor.comrel.diagram/src/comrel/diagram/edit/commands/MultiFeatureUnit3CreateCommand.java
new file mode 100644
index 0000000..06e2969
--- /dev/null
+++ b/org.eclipse.emf.refactor.comrel.diagram/src/comrel/diagram/edit/commands/MultiFeatureUnit3CreateCommand.java
@@ -0,0 +1,116 @@
+/*
+ *
+ */
+package comrel.diagram.edit.commands;
+
+import org.eclipse.core.commands.ExecutionException;
+import org.eclipse.core.runtime.IAdaptable;
+import org.eclipse.core.runtime.IProgressMonitor;
+import org.eclipse.emf.ecore.EObject;
+import org.eclipse.gmf.runtime.common.core.command.CommandResult;
+import org.eclipse.gmf.runtime.common.core.command.ICommand;
+import org.eclipse.gmf.runtime.emf.type.core.IElementType;
+import org.eclipse.gmf.runtime.emf.type.core.commands.EditElementCommand;
+import org.eclipse.gmf.runtime.emf.type.core.requests.ConfigureRequest;
+import org.eclipse.gmf.runtime.emf.type.core.requests.CreateElementRequest;
+import org.eclipse.gmf.runtime.notation.View;
+
+import comrel.CompositeRefactoring;
+import comrel.ComrelFactory;
+import comrel.ConditionalUnit;
+import comrel.MultiFeatureUnit;
+
+/**
+ * @generated
+ */
+public class MultiFeatureUnit3CreateCommand extends EditElementCommand {
+
+ /**
+ * @generated
+ */
+ public MultiFeatureUnit3CreateCommand(CreateElementRequest req) {
+ super(req.getLabel(), null, req);
+ }
+
+ /**
+ * FIXME: replace with setElementToEdit()
+ * @generated
+ */
+ protected EObject getElementToEdit() {
+ EObject container = ((CreateElementRequest) getRequest())
+ .getContainer();
+ if (container instanceof View) {
+ container = ((View) container).getElement();
+ }
+ return container;
+ }
+
+ /**
+ * @generated
+ */
+ public boolean canExecute() {
+ return true;
+
+ }
+
+ /**
+ * @generated NOT
+ */
+ protected CommandResult doExecuteWithResult(IProgressMonitor monitor,
+ IAdaptable info) throws ExecutionException {
+ /*
+ * changes: Liest aus einem Request die ID des Helpers und
+ * erstellt anhand dessen die HelperUnit
+ */
+ CreateElementRequest request = ((CreateElementRequest) getRequest());
+ String helperId = (String) request.getParameters().get(
+ comrel.diagram.part.ComrelPaletteFactory.UNIT_ID);
+ comrel.ComrelFactory factory = comrel.ComrelFactory.eINSTANCE;
+ EObject container = ((CreateElementRequest) getRequest())
+ .getContainer();
+ while (container.eContainer() != null) {
+ container = container.eContainer();
+ }
+ CompositeRefactoring cr = (CompositeRefactoring) container;
+ comrel.MultiFeatureHelper helper = cr.getMultiFeatureHelper(helperId);
+ if (helper != null && !cr.getHelper().contains(helper)) {
+ cr.getHelper().add(helper);
+ }
+ comrel.MultiFeatureUnit newElement;
+ if (helper != null) {
+ newElement = factory.createMultiFeatureUnit(helper);
+ } else {
+ newElement = factory.createMultiFeatureUnit();
+ }
+ /* end of change */
+
+ ConditionalUnit owner = (ConditionalUnit) getElementToEdit();
+ owner.getHelperUnits().add(newElement);
+
+ doConfigure(newElement, monitor, info);
+
+ ((CreateElementRequest) getRequest()).setNewElement(newElement);
+ return CommandResult.newOKCommandResult(newElement);
+ }
+
+ /**
+ * @generated
+ */
+ protected void doConfigure(MultiFeatureUnit newElement,
+ IProgressMonitor monitor, IAdaptable info)
+ throws ExecutionException {
+ IElementType elementType = ((CreateElementRequest) getRequest())
+ .getElementType();
+ ConfigureRequest configureRequest = new ConfigureRequest(
+ getEditingDomain(), newElement, elementType);
+ configureRequest.setClientContext(((CreateElementRequest) getRequest())
+ .getClientContext());
+ configureRequest.addParameters(getRequest().getParameters());
+ ICommand configureCommand = elementType
+ .getEditCommand(configureRequest);
+ if (configureCommand != null && configureCommand.canExecute()) {
+ configureCommand.execute(monitor, info);
+ }
+ }
+
+}
diff --git a/org.eclipse.emf.refactor.comrel.diagram/src/comrel/diagram/edit/commands/MultiFeatureUnit4CreateCommand.java b/org.eclipse.emf.refactor.comrel.diagram/src/comrel/diagram/edit/commands/MultiFeatureUnit4CreateCommand.java
new file mode 100644
index 0000000..32fcc87
--- /dev/null
+++ b/org.eclipse.emf.refactor.comrel.diagram/src/comrel/diagram/edit/commands/MultiFeatureUnit4CreateCommand.java
@@ -0,0 +1,116 @@
+/*
+ *
+ */
+package comrel.diagram.edit.commands;
+
+import org.eclipse.core.commands.ExecutionException;
+import org.eclipse.core.runtime.IAdaptable;
+import org.eclipse.core.runtime.IProgressMonitor;
+import org.eclipse.emf.ecore.EObject;
+import org.eclipse.gmf.runtime.common.core.command.CommandResult;
+import org.eclipse.gmf.runtime.common.core.command.ICommand;
+import org.eclipse.gmf.runtime.emf.type.core.IElementType;
+import org.eclipse.gmf.runtime.emf.type.core.commands.EditElementCommand;
+import org.eclipse.gmf.runtime.emf.type.core.requests.ConfigureRequest;
+import org.eclipse.gmf.runtime.emf.type.core.requests.CreateElementRequest;
+import org.eclipse.gmf.runtime.notation.View;
+
+import comrel.CompositeRefactoring;
+import comrel.ComrelFactory;
+import comrel.MultiFeatureUnit;
+import comrel.SingleQueuedUnit;
+
+/**
+ * @generated
+ */
+public class MultiFeatureUnit4CreateCommand extends EditElementCommand {
+
+ /**
+ * @generated
+ */
+ public MultiFeatureUnit4CreateCommand(CreateElementRequest req) {
+ super(req.getLabel(), null, req);
+ }
+
+ /**
+ * FIXME: replace with setElementToEdit()
+ * @generated
+ */
+ protected EObject getElementToEdit() {
+ EObject container = ((CreateElementRequest) getRequest())
+ .getContainer();
+ if (container instanceof View) {
+ container = ((View) container).getElement();
+ }
+ return container;
+ }
+
+ /**
+ * @generated
+ */
+ public boolean canExecute() {
+ return true;
+
+ }
+
+ /**
+ * @generated NOT
+ */
+ protected CommandResult doExecuteWithResult(IProgressMonitor monitor,
+ IAdaptable info) throws ExecutionException {
+ /*
+ * changes: Liest aus einem Request die ID des Helpers und
+ * erstellt anhand dessen die HelperUnit
+ */
+ CreateElementRequest request = ((CreateElementRequest) getRequest());
+ String helperId = (String) request.getParameters().get(
+ comrel.diagram.part.ComrelPaletteFactory.UNIT_ID);
+ comrel.ComrelFactory factory = comrel.ComrelFactory.eINSTANCE;
+ EObject container = ((CreateElementRequest) getRequest())
+ .getContainer();
+ while (container.eContainer() != null) {
+ container = container.eContainer();
+ }
+ CompositeRefactoring cr = (CompositeRefactoring) container;
+ comrel.MultiFeatureHelper helper = cr.getMultiFeatureHelper(helperId);
+ if (helper != null && !cr.getHelper().contains(helper)) {
+ cr.getHelper().add(helper);
+ }
+ comrel.MultiFeatureUnit newElement;
+ if (helper != null) {
+ newElement = factory.createMultiFeatureUnit(helper);
+ } else {
+ newElement = factory.createMultiFeatureUnit();
+ }
+ /* end of change */
+
+ SingleQueuedUnit owner = (SingleQueuedUnit) getElementToEdit();
+ owner.getHelperUnits().add(newElement);
+
+ doConfigure(newElement, monitor, info);
+
+ ((CreateElementRequest) getRequest()).setNewElement(newElement);
+ return CommandResult.newOKCommandResult(newElement);
+ }
+
+ /**
+ * @generated
+ */
+ protected void doConfigure(MultiFeatureUnit newElement,
+ IProgressMonitor monitor, IAdaptable info)
+ throws ExecutionException {
+ IElementType elementType = ((CreateElementRequest) getRequest())
+ .getElementType();
+ ConfigureRequest configureRequest = new ConfigureRequest(
+ getEditingDomain(), newElement, elementType);
+ configureRequest.setClientContext(((CreateElementRequest) getRequest())
+ .getClientContext());
+ configureRequest.addParameters(getRequest().getParameters());
+ ICommand configureCommand = elementType
+ .getEditCommand(configureRequest);
+ if (configureCommand != null && configureCommand.canExecute()) {
+ configureCommand.execute(monitor, info);
+ }
+ }
+
+}
diff --git a/org.eclipse.emf.refactor.comrel.diagram/src/comrel/diagram/edit/commands/MultiFeatureUnit5CreateCommand.java b/org.eclipse.emf.refactor.comrel.diagram/src/comrel/diagram/edit/commands/MultiFeatureUnit5CreateCommand.java
new file mode 100644
index 0000000..6ac043d
--- /dev/null
+++ b/org.eclipse.emf.refactor.comrel.diagram/src/comrel/diagram/edit/commands/MultiFeatureUnit5CreateCommand.java
@@ -0,0 +1,116 @@
+/*
+ *
+ */
+package comrel.diagram.edit.commands;
+
+import org.eclipse.core.commands.ExecutionException;
+import org.eclipse.core.runtime.IAdaptable;
+import org.eclipse.core.runtime.IProgressMonitor;
+import org.eclipse.emf.ecore.EObject;
+import org.eclipse.gmf.runtime.common.core.command.CommandResult;
+import org.eclipse.gmf.runtime.common.core.command.ICommand;
+import org.eclipse.gmf.runtime.emf.type.core.IElementType;
+import org.eclipse.gmf.runtime.emf.type.core.commands.EditElementCommand;
+import org.eclipse.gmf.runtime.emf.type.core.requests.ConfigureRequest;
+import org.eclipse.gmf.runtime.emf.type.core.requests.CreateElementRequest;
+import org.eclipse.gmf.runtime.notation.View;
+
+import comrel.CompositeRefactoring;
+import comrel.ComrelFactory;
+import comrel.MultiFeatureUnit;
+import comrel.SequentialUnit;
+
+/**
+ * @generated
+ */
+public class MultiFeatureUnit5CreateCommand extends EditElementCommand {
+
+ /**
+ * @generated
+ */
+ public MultiFeatureUnit5CreateCommand(CreateElementRequest req) {
+ super(req.getLabel(), null, req);
+ }
+
+ /**
+ * FIXME: replace with setElementToEdit()
+ * @generated
+ */
+ protected EObject getElementToEdit() {
+ EObject container = ((CreateElementRequest) getRequest())
+ .getContainer();
+ if (container instanceof View) {
+ container = ((View) container).getElement();
+ }
+ return container;
+ }
+
+ /**
+ * @generated
+ */
+ public boolean canExecute() {
+ return true;
+
+ }
+
+ /**
+ * @generated NOT
+ */
+ protected CommandResult doExecuteWithResult(IProgressMonitor monitor,
+ IAdaptable info) throws ExecutionException {
+ /*
+ * changes: Liest aus einem Request die ID des Helpers und
+ * erstellt anhand dessen die HelperUnit
+ */
+ CreateElementRequest request = ((CreateElementRequest) getRequest());
+ String helperId = (String) request.getParameters().get(
+ comrel.diagram.part.ComrelPaletteFactory.UNIT_ID);
+ comrel.ComrelFactory factory = comrel.ComrelFactory.eINSTANCE;
+ EObject container = ((CreateElementRequest) getRequest())
+ .getContainer();
+ while (container.eContainer() != null) {
+ container = container.eContainer();
+ }
+ CompositeRefactoring cr = (CompositeRefactoring) container;
+ comrel.MultiFeatureHelper helper = cr.getMultiFeatureHelper(helperId);
+ if (helper != null && !cr.getHelper().contains(helper)) {
+ cr.getHelper().add(helper);
+ }
+ comrel.MultiFeatureUnit newElement;
+ if (helper != null) {
+ newElement = factory.createMultiFeatureUnit(helper);
+ } else {
+ newElement = factory.createMultiFeatureUnit();
+ }
+ /* end of change */
+
+ SequentialUnit owner = (SequentialUnit) getElementToEdit();
+ owner.getHelperUnits().add(newElement);
+ owner.updateSeqExecutionOrder();
+ doConfigure(newElement, monitor, info);
+
+ ((CreateElementRequest) getRequest()).setNewElement(newElement);
+ return CommandResult.newOKCommandResult(newElement);
+ }
+
+ /**
+ * @generated
+ */
+ protected void doConfigure(MultiFeatureUnit newElement,
+ IProgressMonitor monitor, IAdaptable info)
+ throws ExecutionException {
+ IElementType elementType = ((CreateElementRequest) getRequest())
+ .getElementType();
+ ConfigureRequest configureRequest = new ConfigureRequest(
+ getEditingDomain(), newElement, elementType);
+ configureRequest.setClientContext(((CreateElementRequest) getRequest())
+ .getClientContext());
+ configureRequest.addParameters(getRequest().getParameters());
+ ICommand configureCommand = elementType
+ .getEditCommand(configureRequest);
+ if (configureCommand != null && configureCommand.canExecute()) {
+ configureCommand.execute(monitor, info);
+ }
+ }
+
+}
diff --git a/org.eclipse.emf.refactor.comrel.diagram/src/comrel/diagram/edit/commands/MultiFeatureUnitCreateCommand.java b/org.eclipse.emf.refactor.comrel.diagram/src/comrel/diagram/edit/commands/MultiFeatureUnitCreateCommand.java
new file mode 100644
index 0000000..90944b0
--- /dev/null
+++ b/org.eclipse.emf.refactor.comrel.diagram/src/comrel/diagram/edit/commands/MultiFeatureUnitCreateCommand.java
@@ -0,0 +1,116 @@
+/*
+ *
+ */
+package comrel.diagram.edit.commands;
+
+import org.eclipse.core.commands.ExecutionException;
+import org.eclipse.core.runtime.IAdaptable;
+import org.eclipse.core.runtime.IProgressMonitor;
+import org.eclipse.emf.ecore.EObject;
+import org.eclipse.gmf.runtime.common.core.command.CommandResult;
+import org.eclipse.gmf.runtime.common.core.command.ICommand;
+import org.eclipse.gmf.runtime.emf.type.core.IElementType;
+import org.eclipse.gmf.runtime.emf.type.core.commands.EditElementCommand;
+import org.eclipse.gmf.runtime.emf.type.core.requests.ConfigureRequest;
+import org.eclipse.gmf.runtime.emf.type.core.requests.CreateElementRequest;
+import org.eclipse.gmf.runtime.notation.View;
+
+import comrel.CartesianQueuedUnit;
+import comrel.CompositeRefactoring;
+import comrel.ComrelFactory;
+import comrel.MultiFeatureUnit;
+
+/**
+ * @generated
+ */
+public class MultiFeatureUnitCreateCommand extends EditElementCommand {
+
+ /**
+ * @generated
+ */
+ public MultiFeatureUnitCreateCommand(CreateElementRequest req) {
+ super(req.getLabel(), null, req);
+ }
+
+ /**
+ * FIXME: replace with setElementToEdit()
+ * @generated
+ */
+ protected EObject getElementToEdit() {
+ EObject container = ((CreateElementRequest) getRequest())
+ .getContainer();
+ if (container instanceof View) {
+ container = ((View) container).getElement();
+ }
+ return container;
+ }
+
+ /**
+ * @generated
+ */
+ public boolean canExecute() {
+ return true;
+
+ }
+
+ /**
+ * @generated NOT
+ */
+ protected CommandResult doExecuteWithResult(IProgressMonitor monitor,
+ IAdaptable info) throws ExecutionException {
+ /*
+ * changes: Liest aus einem Request die ID des Helpers und
+ * erstellt anhand dessen die HelperUnit
+ */
+ CreateElementRequest request = ((CreateElementRequest) getRequest());
+ String helperId = (String) request.getParameters().get(
+ comrel.diagram.part.ComrelPaletteFactory.UNIT_ID);
+ comrel.ComrelFactory factory = comrel.ComrelFactory.eINSTANCE;
+ EObject container = ((CreateElementRequest) getRequest())
+ .getContainer();
+ while (container.eContainer() != null) {
+ container = container.eContainer();
+ }
+ CompositeRefactoring cr = (CompositeRefactoring) container;
+ comrel.MultiFeatureHelper helper = cr.getMultiFeatureHelper(helperId);
+ if (helper != null && !cr.getHelper().contains(helper)) {
+ cr.getHelper().add(helper);
+ }
+ comrel.MultiFeatureUnit newElement;
+ if (helper != null) {
+ newElement = factory.createMultiFeatureUnit(helper);
+ } else {
+ newElement = factory.createMultiFeatureUnit();
+ }
+ /* end of change */
+
+ CartesianQueuedUnit owner = (CartesianQueuedUnit) getElementToEdit();
+ owner.getHelperUnits().add(newElement);
+
+ doConfigure(newElement, monitor, info);
+
+ ((CreateElementRequest) getRequest()).setNewElement(newElement);
+ return CommandResult.newOKCommandResult(newElement);
+ }
+
+ /**
+ * @generated
+ */
+ protected void doConfigure(MultiFeatureUnit newElement,
+ IProgressMonitor monitor, IAdaptable info)
+ throws ExecutionException {
+ IElementType elementType = ((CreateElementRequest) getRequest())
+ .getElementType();
+ ConfigureRequest configureRequest = new ConfigureRequest(
+ getEditingDomain(), newElement, elementType);
+ configureRequest.setClientContext(((CreateElementRequest) getRequest())
+ .getClientContext());
+ configureRequest.addParameters(getRequest().getParameters());
+ ICommand configureCommand = elementType
+ .getEditCommand(configureRequest);
+ if (configureCommand != null && configureCommand.canExecute()) {
+ configureCommand.execute(monitor, info);
+ }
+ }
+
+}
diff --git a/org.eclipse.emf.refactor.comrel.diagram/src/comrel/diagram/edit/commands/MultiFilterUnit2CreateCommand.java b/org.eclipse.emf.refactor.comrel.diagram/src/comrel/diagram/edit/commands/MultiFilterUnit2CreateCommand.java
new file mode 100644
index 0000000..46cffc5
--- /dev/null
+++ b/org.eclipse.emf.refactor.comrel.diagram/src/comrel/diagram/edit/commands/MultiFilterUnit2CreateCommand.java
@@ -0,0 +1,116 @@
+/*
+ *
+ */
+package comrel.diagram.edit.commands;
+
+import org.eclipse.core.commands.ExecutionException;
+import org.eclipse.core.runtime.IAdaptable;
+import org.eclipse.core.runtime.IProgressMonitor;
+import org.eclipse.emf.ecore.EObject;
+import org.eclipse.gmf.runtime.common.core.command.CommandResult;
+import org.eclipse.gmf.runtime.common.core.command.ICommand;
+import org.eclipse.gmf.runtime.emf.type.core.IElementType;
+import org.eclipse.gmf.runtime.emf.type.core.commands.EditElementCommand;
+import org.eclipse.gmf.runtime.emf.type.core.requests.ConfigureRequest;
+import org.eclipse.gmf.runtime.emf.type.core.requests.CreateElementRequest;
+import org.eclipse.gmf.runtime.notation.View;
+
+import comrel.CompositeRefactoring;
+import comrel.ComrelFactory;
+import comrel.MultiFilterUnit;
+import comrel.ParallelQueuedUnit;
+
+/**
+ * @generated
+ */
+public class MultiFilterUnit2CreateCommand extends EditElementCommand {
+
+ /**
+ * @generated
+ */
+ public MultiFilterUnit2CreateCommand(CreateElementRequest req) {
+ super(req.getLabel(), null, req);
+ }
+
+ /**
+ * FIXME: replace with setElementToEdit()
+ * @generated
+ */
+ protected EObject getElementToEdit() {
+ EObject container = ((CreateElementRequest) getRequest())
+ .getContainer();
+ if (container instanceof View) {
+ container = ((View) container).getElement();
+ }
+ return container;
+ }
+
+ /**
+ * @generated
+ */
+ public boolean canExecute() {
+ return true;
+
+ }
+
+ /**
+ * @generated NOT
+ */
+ protected CommandResult doExecuteWithResult(IProgressMonitor monitor,
+ IAdaptable info) throws ExecutionException {
+ /*
+ * changes: Liest aus einem Request die ID des Helpers und
+ * erstellt anhand dessen die HelperUnit
+ */
+ CreateElementRequest request = ((CreateElementRequest) getRequest());
+ String helperId = (String) request.getParameters().get(
+ comrel.diagram.part.ComrelPaletteFactory.UNIT_ID);
+ comrel.ComrelFactory factory = comrel.ComrelFactory.eINSTANCE;
+ EObject container = ((CreateElementRequest) getRequest())
+ .getContainer();
+ while (container.eContainer() != null) {
+ container = container.eContainer();
+ }
+ CompositeRefactoring cr = (CompositeRefactoring) container;
+ comrel.MultiFilterHelper helper = cr.getMultiFilterHelper(helperId);
+ if (helper != null && !cr.getHelper().contains(helper)) {
+ cr.getHelper().add(helper);
+ }
+ comrel.MultiFilterUnit newElement;
+ if (helper != null) {
+ newElement = factory.createMultiFilterUnit(helper);
+ } else {
+ newElement = factory.createMultiFilterUnit();
+ }
+ /* end of change */
+
+ ParallelQueuedUnit owner = (ParallelQueuedUnit) getElementToEdit();
+ owner.getHelperUnits().add(newElement);
+
+ doConfigure(newElement, monitor, info);
+
+ ((CreateElementRequest) getRequest()).setNewElement(newElement);
+ return CommandResult.newOKCommandResult(newElement);
+ }
+
+ /**
+ * @generated
+ */
+ protected void doConfigure(MultiFilterUnit newElement,
+ IProgressMonitor monitor, IAdaptable info)
+ throws ExecutionException {
+ IElementType elementType = ((CreateElementRequest) getRequest())
+ .getElementType();
+ ConfigureRequest configureRequest = new ConfigureRequest(
+ getEditingDomain(), newElement, elementType);
+ configureRequest.setClientContext(((CreateElementRequest) getRequest())
+ .getClientContext());
+ configureRequest.addParameters(getRequest().getParameters());
+ ICommand configureCommand = elementType
+ .getEditCommand(configureRequest);
+ if (configureCommand != null && configureCommand.canExecute()) {
+ configureCommand.execute(monitor, info);
+ }
+ }
+
+}
diff --git a/org.eclipse.emf.refactor.comrel.diagram/src/comrel/diagram/edit/commands/MultiFilterUnit3CreateCommand.java b/org.eclipse.emf.refactor.comrel.diagram/src/comrel/diagram/edit/commands/MultiFilterUnit3CreateCommand.java
new file mode 100644
index 0000000..0955cee
--- /dev/null
+++ b/org.eclipse.emf.refactor.comrel.diagram/src/comrel/diagram/edit/commands/MultiFilterUnit3CreateCommand.java
@@ -0,0 +1,116 @@
+/*
+ *
+ */
+package comrel.diagram.edit.commands;
+
+import org.eclipse.core.commands.ExecutionException;
+import org.eclipse.core.runtime.IAdaptable;
+import org.eclipse.core.runtime.IProgressMonitor;
+import org.eclipse.emf.ecore.EObject;
+import org.eclipse.gmf.runtime.common.core.command.CommandResult;
+import org.eclipse.gmf.runtime.common.core.command.ICommand;
+import org.eclipse.gmf.runtime.emf.type.core.IElementType;
+import org.eclipse.gmf.runtime.emf.type.core.commands.EditElementCommand;
+import org.eclipse.gmf.runtime.emf.type.core.requests.ConfigureRequest;
+import org.eclipse.gmf.runtime.emf.type.core.requests.CreateElementRequest;
+import org.eclipse.gmf.runtime.notation.View;
+
+import comrel.CompositeRefactoring;
+import comrel.ComrelFactory;
+import comrel.ConditionalUnit;
+import comrel.MultiFilterUnit;
+
+/**
+ * @generated
+ */
+public class MultiFilterUnit3CreateCommand extends EditElementCommand {
+
+ /**
+ * @generated
+ */
+ public MultiFilterUnit3CreateCommand(CreateElementRequest req) {
+ super(req.getLabel(), null, req);
+ }
+
+ /**
+ * FIXME: replace with setElementToEdit()
+ * @generated
+ */
+ protected EObject getElementToEdit() {
+ EObject container = ((CreateElementRequest) getRequest())
+ .getContainer();
+ if (container instanceof View) {
+ container = ((View) container).getElement();
+ }
+ return container;
+ }
+
+ /**
+ * @generated
+ */
+ public boolean canExecute() {
+ return true;
+
+ }
+
+ /**
+ * @generated NOT
+ */
+ protected CommandResult doExecuteWithResult(IProgressMonitor monitor,
+ IAdaptable info) throws ExecutionException {
+ /*
+ * changes: Liest aus einem Request die ID des Helpers und
+ * erstellt anhand dessen die HelperUnit
+ */
+ CreateElementRequest request = ((CreateElementRequest) getRequest());
+ String helperId = (String) request.getParameters().get(
+ comrel.diagram.part.ComrelPaletteFactory.UNIT_ID);
+ comrel.ComrelFactory factory = comrel.ComrelFactory.eINSTANCE;
+ EObject container = ((CreateElementRequest) getRequest())
+ .getContainer();
+ while (container.eContainer() != null) {
+ container = container.eContainer();
+ }
+ CompositeRefactoring cr = (CompositeRefactoring) container;
+ comrel.MultiFilterHelper helper = cr.getMultiFilterHelper(helperId);
+ if (helper != null && !cr.getHelper().contains(helper)) {
+ cr.getHelper().add(helper);
+ }
+ comrel.MultiFilterUnit newElement;
+ if (helper != null) {
+ newElement = factory.createMultiFilterUnit(helper);
+ } else {
+ newElement = factory.createMultiFilterUnit();
+ }
+ /* end of change */
+
+ ConditionalUnit owner = (ConditionalUnit) getElementToEdit();
+ owner.getHelperUnits().add(newElement);
+
+ doConfigure(newElement, monitor, info);
+
+ ((CreateElementRequest) getRequest()).setNewElement(newElement);
+ return CommandResult.newOKCommandResult(newElement);
+ }
+
+ /**
+ * @generated
+ */
+ protected void doConfigure(MultiFilterUnit newElement,
+ IProgressMonitor monitor, IAdaptable info)
+ throws ExecutionException {
+ IElementType elementType = ((CreateElementRequest) getRequest())
+ .getElementType();
+ ConfigureRequest configureRequest = new ConfigureRequest(
+ getEditingDomain(), newElement, elementType);
+ configureRequest.setClientContext(((CreateElementRequest) getRequest())
+ .getClientContext());
+ configureRequest.addParameters(getRequest().getParameters());
+ ICommand configureCommand = elementType
+ .getEditCommand(configureRequest);
+ if (configureCommand != null && configureCommand.canExecute()) {
+ configureCommand.execute(monitor, info);
+ }
+ }
+
+}
diff --git a/org.eclipse.emf.refactor.comrel.diagram/src/comrel/diagram/edit/commands/MultiFilterUnit4CreateCommand.java b/org.eclipse.emf.refactor.comrel.diagram/src/comrel/diagram/edit/commands/MultiFilterUnit4CreateCommand.java
new file mode 100644
index 0000000..9cfd34f
--- /dev/null
+++ b/org.eclipse.emf.refactor.comrel.diagram/src/comrel/diagram/edit/commands/MultiFilterUnit4CreateCommand.java
@@ -0,0 +1,116 @@
+/*
+ *
+ */
+package comrel.diagram.edit.commands;
+
+import org.eclipse.core.commands.ExecutionException;
+import org.eclipse.core.runtime.IAdaptable;
+import org.eclipse.core.runtime.IProgressMonitor;
+import org.eclipse.emf.ecore.EObject;
+import org.eclipse.gmf.runtime.common.core.command.CommandResult;
+import org.eclipse.gmf.runtime.common.core.command.ICommand;
+import org.eclipse.gmf.runtime.emf.type.core.IElementType;
+import org.eclipse.gmf.runtime.emf.type.core.commands.EditElementCommand;
+import org.eclipse.gmf.runtime.emf.type.core.requests.ConfigureRequest;
+import org.eclipse.gmf.runtime.emf.type.core.requests.CreateElementRequest;
+import org.eclipse.gmf.runtime.notation.View;
+
+import comrel.CompositeRefactoring;
+import comrel.ComrelFactory;
+import comrel.MultiFilterUnit;
+import comrel.SingleQueuedUnit;
+
+/**
+ * @generated
+ */
+public class MultiFilterUnit4CreateCommand extends EditElementCommand {
+
+ /**
+ * @generated
+ */
+ public MultiFilterUnit4CreateCommand(CreateElementRequest req) {
+ super(req.getLabel(), null, req);
+ }
+
+ /**
+ * FIXME: replace with setElementToEdit()
+ * @generated
+ */
+ protected EObject getElementToEdit() {
+ EObject container = ((CreateElementRequest) getRequest())
+ .getContainer();
+ if (container instanceof View) {
+ container = ((View) container).getElement();
+ }
+ return container;
+ }
+
+ /**
+ * @generated
+ */
+ public boolean canExecute() {
+ return true;
+
+ }
+
+ /**
+ * @generated NOT
+ */
+ protected CommandResult doExecuteWithResult(IProgressMonitor monitor,
+ IAdaptable info) throws ExecutionException {
+ /*
+ * changes: Liest aus einem Request die ID des Helpers und
+ * erstellt anhand dessen die HelperUnit
+ */
+ CreateElementRequest request = ((CreateElementRequest) getRequest());
+ String helperId = (String) request.getParameters().get(
+ comrel.diagram.part.ComrelPaletteFactory.UNIT_ID);
+ comrel.ComrelFactory factory = comrel.ComrelFactory.eINSTANCE;
+ EObject container = ((CreateElementRequest) getRequest())
+ .getContainer();
+ while (container.eContainer() != null) {
+ container = container.eContainer();
+ }
+ CompositeRefactoring cr = (CompositeRefactoring) container;
+ comrel.MultiFilterHelper helper = cr.getMultiFilterHelper(helperId);
+ if (helper != null && !cr.getHelper().contains(helper)) {
+ cr.getHelper().add(helper);
+ }
+ comrel.MultiFilterUnit newElement;
+ if (helper != null) {
+ newElement = factory.createMultiFilterUnit(helper);
+ } else {
+ newElement = factory.createMultiFilterUnit();
+ }
+ /* end of change */
+
+ SingleQueuedUnit owner = (SingleQueuedUnit) getElementToEdit();
+ owner.getHelperUnits().add(newElement);
+
+ doConfigure(newElement, monitor, info);
+
+ ((CreateElementRequest) getRequest()).setNewElement(newElement);
+ return CommandResult.newOKCommandResult(newElement);
+ }
+
+ /**
+ * @generated
+ */
+ protected void doConfigure(MultiFilterUnit newElement,
+ IProgressMonitor monitor, IAdaptable info)
+ throws ExecutionException {
+ IElementType elementType = ((CreateElementRequest) getRequest())
+ .getElementType();
+ ConfigureRequest configureRequest = new ConfigureRequest(
+ getEditingDomain(), newElement, elementType);
+ configureRequest.setClientContext(((CreateElementRequest) getRequest())
+ .getClientContext());
+ configureRequest.addParameters(getRequest().getParameters());
+ ICommand configureCommand = elementType
+ .getEditCommand(configureRequest);
+ if (configureCommand != null && configureCommand.canExecute()) {
+ configureCommand.execute(monitor, info);
+ }
+ }
+
+}
diff --git a/org.eclipse.emf.refactor.comrel.diagram/src/comrel/diagram/edit/commands/MultiFilterUnit5CreateCommand.java b/org.eclipse.emf.refactor.comrel.diagram/src/comrel/diagram/edit/commands/MultiFilterUnit5CreateCommand.java
new file mode 100644
index 0000000..2c140b6
--- /dev/null
+++ b/org.eclipse.emf.refactor.comrel.diagram/src/comrel/diagram/edit/commands/MultiFilterUnit5CreateCommand.java
@@ -0,0 +1,116 @@
+/*
+ *
+ */
+package comrel.diagram.edit.commands;
+
+import org.eclipse.core.commands.ExecutionException;
+import org.eclipse.core.runtime.IAdaptable;
+import org.eclipse.core.runtime.IProgressMonitor;
+import org.eclipse.emf.ecore.EObject;
+import org.eclipse.gmf.runtime.common.core.command.CommandResult;
+import org.eclipse.gmf.runtime.common.core.command.ICommand;
+import org.eclipse.gmf.runtime.emf.type.core.IElementType;
+import org.eclipse.gmf.runtime.emf.type.core.commands.EditElementCommand;
+import org.eclipse.gmf.runtime.emf.type.core.requests.ConfigureRequest;
+import org.eclipse.gmf.runtime.emf.type.core.requests.CreateElementRequest;
+import org.eclipse.gmf.runtime.notation.View;
+
+import comrel.CompositeRefactoring;
+import comrel.ComrelFactory;
+import comrel.MultiFilterUnit;
+import comrel.SequentialUnit;
+
+/**
+ * @generated
+ */
+public class MultiFilterUnit5CreateCommand extends EditElementCommand {
+
+ /**
+ * @generated
+ */
+ public MultiFilterUnit5CreateCommand(CreateElementRequest req) {
+ super(req.getLabel(), null, req);
+ }
+
+ /**
+ * FIXME: replace with setElementToEdit()
+ * @generated
+ */
+ protected EObject getElementToEdit() {
+ EObject container = ((CreateElementRequest) getRequest())
+ .getContainer();
+ if (container instanceof View) {
+ container = ((View) container).getElement();
+ }
+ return container;
+ }
+
+ /**
+ * @generated
+ */
+ public boolean canExecute() {
+ return true;
+
+ }
+
+ /**
+ * @generated NOT
+ */
+ protected CommandResult doExecuteWithResult(IProgressMonitor monitor,
+ IAdaptable info) throws ExecutionException {
+ /*
+ * changes: Liest aus einem Request die ID des Helpers und
+ * erstellt anhand dessen die HelperUnit
+ */
+ CreateElementRequest request = ((CreateElementRequest) getRequest());
+ String helperId = (String) request.getParameters().get(
+ comrel.diagram.part.ComrelPaletteFactory.UNIT_ID);
+ comrel.ComrelFactory factory = comrel.ComrelFactory.eINSTANCE;
+ EObject container = ((CreateElementRequest) getRequest())
+ .getContainer();
+ while (container.eContainer() != null) {
+ container = container.eContainer();
+ }
+ CompositeRefactoring cr = (CompositeRefactoring) container;
+ comrel.MultiFilterHelper helper = cr.getMultiFilterHelper(helperId);
+ if (helper != null && !cr.getHelper().contains(helper)) {
+ cr.getHelper().add(helper);
+ }
+ comrel.MultiFilterUnit newElement;
+ if (helper != null) {
+ newElement = factory.createMultiFilterUnit(helper);
+ } else {
+ newElement = factory.createMultiFilterUnit();
+ }
+ /* end of change */
+
+ SequentialUnit owner = (SequentialUnit) getElementToEdit();
+ owner.getHelperUnits().add(newElement);
+ owner.updateSeqExecutionOrder();
+ doConfigure(newElement, monitor, info);
+
+ ((CreateElementRequest) getRequest()).setNewElement(newElement);
+ return CommandResult.newOKCommandResult(newElement);
+ }
+
+ /**
+ * @generated
+ */
+ protected void doConfigure(MultiFilterUnit newElement,
+ IProgressMonitor monitor, IAdaptable info)
+ throws ExecutionException {
+ IElementType elementType = ((CreateElementRequest) getRequest())
+ .getElementType();
+ ConfigureRequest configureRequest = new ConfigureRequest(
+ getEditingDomain(), newElement, elementType);
+ configureRequest.setClientContext(((CreateElementRequest) getRequest())
+ .getClientContext());
+ configureRequest.addParameters(getRequest().getParameters());
+ ICommand configureCommand = elementType
+ .getEditCommand(configureRequest);
+ if (configureCommand != null && configureCommand.canExecute()) {
+ configureCommand.execute(monitor, info);
+ }
+ }
+
+}
diff --git a/org.eclipse.emf.refactor.comrel.diagram/src/comrel/diagram/edit/commands/MultiFilterUnitCreateCommand.java b/org.eclipse.emf.refactor.comrel.diagram/src/comrel/diagram/edit/commands/MultiFilterUnitCreateCommand.java
new file mode 100644
index 0000000..7a8ea82
--- /dev/null
+++ b/org.eclipse.emf.refactor.comrel.diagram/src/comrel/diagram/edit/commands/MultiFilterUnitCreateCommand.java
@@ -0,0 +1,116 @@
+/*
+ *
+ */
+package comrel.diagram.edit.commands;
+
+import org.eclipse.core.commands.ExecutionException;
+import org.eclipse.core.runtime.IAdaptable;
+import org.eclipse.core.runtime.IProgressMonitor;
+import org.eclipse.emf.ecore.EObject;
+import org.eclipse.gmf.runtime.common.core.command.CommandResult;
+import org.eclipse.gmf.runtime.common.core.command.ICommand;
+import org.eclipse.gmf.runtime.emf.type.core.IElementType;
+import org.eclipse.gmf.runtime.emf.type.core.commands.EditElementCommand;
+import org.eclipse.gmf.runtime.emf.type.core.requests.ConfigureRequest;
+import org.eclipse.gmf.runtime.emf.type.core.requests.CreateElementRequest;
+import org.eclipse.gmf.runtime.notation.View;
+
+import comrel.CartesianQueuedUnit;
+import comrel.CompositeRefactoring;
+import comrel.ComrelFactory;
+import comrel.MultiFilterUnit;
+
+/**
+ * @generated
+ */
+public class MultiFilterUnitCreateCommand extends EditElementCommand {
+
+ /**
+ * @generated
+ */
+ public MultiFilterUnitCreateCommand(CreateElementRequest req) {
+ super(req.getLabel(), null, req);
+ }
+
+ /**
+ * FIXME: replace with setElementToEdit()
+ * @generated
+ */
+ protected EObject getElementToEdit() {
+ EObject container = ((CreateElementRequest) getRequest())
+ .getContainer();
+ if (container instanceof View) {
+ container = ((View) container).getElement();
+ }
+ return container;
+ }
+
+ /**
+ * @generated
+ */
+ public boolean canExecute() {
+ return true;
+
+ }
+
+ /**
+ * @generated NOT
+ */
+ protected CommandResult doExecuteWithResult(IProgressMonitor monitor,
+ IAdaptable info) throws ExecutionException {
+ /*
+ * changes: Liest aus einem Request die ID des Helpers und
+ * erstellt anhand dessen die HelperUnit
+ */
+ CreateElementRequest request = ((CreateElementRequest) getRequest());
+ String helperId = (String) request.getParameters().get(
+ comrel.diagram.part.ComrelPaletteFactory.UNIT_ID);
+ comrel.ComrelFactory factory = comrel.ComrelFactory.eINSTANCE;
+ EObject container = ((CreateElementRequest) getRequest())
+ .getContainer();
+ while (container.eContainer() != null) {
+ container = container.eContainer();
+ }
+ CompositeRefactoring cr = (CompositeRefactoring) container;
+ comrel.MultiFilterHelper helper = cr.getMultiFilterHelper(helperId);
+ if (helper != null && !cr.getHelper().contains(helper)) {
+ cr.getHelper().add(helper);
+ }
+ comrel.MultiFilterUnit newElement;
+ if (helper != null) {
+ newElement = factory.createMultiFilterUnit(helper);
+ } else {
+ newElement = factory.createMultiFilterUnit();
+ }
+ /* end of change */
+
+ CartesianQueuedUnit owner = (CartesianQueuedUnit) getElementToEdit();
+ owner.getHelperUnits().add(newElement);
+
+ doConfigure(newElement, monitor, info);
+
+ ((CreateElementRequest) getRequest()).setNewElement(newElement);
+ return CommandResult.newOKCommandResult(newElement);
+ }
+
+ /**
+ * @generated
+ */
+ protected void doConfigure(MultiFilterUnit newElement,
+ IProgressMonitor monitor, IAdaptable info)
+ throws ExecutionException {
+ IElementType elementType = ((CreateElementRequest) getRequest())
+ .getElementType();
+ ConfigureRequest configureRequest = new ConfigureRequest(
+ getEditingDomain(), newElement, elementType);
+ configureRequest.setClientContext(((CreateElementRequest) getRequest())
+ .getClientContext());
+ configureRequest.addParameters(getRequest().getParameters());
+ ICommand configureCommand = elementType
+ .getEditCommand(configureRequest);
+ if (configureCommand != null && configureCommand.canExecute()) {
+ configureCommand.execute(monitor, info);
+ }
+ }
+
+}
diff --git a/org.eclipse.emf.refactor.comrel.diagram/src/comrel/diagram/edit/commands/MultiInputPort2CreateCommand.java b/org.eclipse.emf.refactor.comrel.diagram/src/comrel/diagram/edit/commands/MultiInputPort2CreateCommand.java
new file mode 100644
index 0000000..d088aaa
--- /dev/null
+++ b/org.eclipse.emf.refactor.comrel.diagram/src/comrel/diagram/edit/commands/MultiInputPort2CreateCommand.java
@@ -0,0 +1,96 @@
+/*
+ *
+ */
+package comrel.diagram.edit.commands;
+
+import org.eclipse.core.commands.ExecutionException;
+import org.eclipse.core.runtime.IAdaptable;
+import org.eclipse.core.runtime.IProgressMonitor;
+import org.eclipse.emf.ecore.EObject;
+import org.eclipse.gmf.runtime.common.core.command.CommandResult;
+import org.eclipse.gmf.runtime.common.core.command.ICommand;
+import org.eclipse.gmf.runtime.emf.type.core.IElementType;
+import org.eclipse.gmf.runtime.emf.type.core.commands.EditElementCommand;
+import org.eclipse.gmf.runtime.emf.type.core.requests.ConfigureRequest;
+import org.eclipse.gmf.runtime.emf.type.core.requests.CreateElementRequest;
+import org.eclipse.gmf.runtime.notation.View;
+
+import comrel.ComrelFactory;
+import comrel.MultiInputPort;
+import comrel.ParallelQueuedUnit;
+
+/**
+ * @generated
+ */
+public class MultiInputPort2CreateCommand extends EditElementCommand {
+
+ /**
+ * @generated
+ */
+ public MultiInputPort2CreateCommand(CreateElementRequest req) {
+ super(req.getLabel(), null, req);
+ }
+
+ /**
+ * FIXME: replace with setElementToEdit()
+ * @generated
+ */
+ protected EObject getElementToEdit() {
+ EObject container = ((CreateElementRequest) getRequest())
+ .getContainer();
+ if (container instanceof View) {
+ container = ((View) container).getElement();
+ }
+ return container;
+ }
+
+ /**
+ * @generated
+ */
+ public boolean canExecute() {
+ ParallelQueuedUnit container = (ParallelQueuedUnit) getElementToEdit();
+ if (container.getMultiInputPorts().size() >= 2) {
+ return false;
+ }
+ return true;
+
+ }
+
+ /**
+ * @generated
+ */
+ protected CommandResult doExecuteWithResult(IProgressMonitor monitor,
+ IAdaptable info) throws ExecutionException {
+ MultiInputPort newElement = ComrelFactory.eINSTANCE
+ .createMultiInputPort();
+
+ ParallelQueuedUnit owner = (ParallelQueuedUnit) getElementToEdit();
+ owner.getMultiInputPorts().add(newElement);
+
+ doConfigure(newElement, monitor, info);
+
+ ((CreateElementRequest) getRequest()).setNewElement(newElement);
+ return CommandResult.newOKCommandResult(newElement);
+ }
+
+ /**
+ * @generated
+ */
+ protected void doConfigure(MultiInputPort newElement,
+ IProgressMonitor monitor, IAdaptable info)
+ throws ExecutionException {
+ IElementType elementType = ((CreateElementRequest) getRequest())
+ .getElementType();
+ ConfigureRequest configureRequest = new ConfigureRequest(
+ getEditingDomain(), newElement, elementType);
+ configureRequest.setClientContext(((CreateElementRequest) getRequest())
+ .getClientContext());
+ configureRequest.addParameters(getRequest().getParameters());
+ ICommand configureCommand = elementType
+ .getEditCommand(configureRequest);
+ if (configureCommand != null && configureCommand.canExecute()) {
+ configureCommand.execute(monitor, info);
+ }
+ }
+
+}
diff --git a/org.eclipse.emf.refactor.comrel.diagram/src/comrel/diagram/edit/commands/MultiInputPort3CreateCommand.java b/org.eclipse.emf.refactor.comrel.diagram/src/comrel/diagram/edit/commands/MultiInputPort3CreateCommand.java
new file mode 100644
index 0000000..5b52c7c
--- /dev/null
+++ b/org.eclipse.emf.refactor.comrel.diagram/src/comrel/diagram/edit/commands/MultiInputPort3CreateCommand.java
@@ -0,0 +1,92 @@
+/*
+ *
+ */
+package comrel.diagram.edit.commands;
+
+import org.eclipse.core.commands.ExecutionException;
+import org.eclipse.core.runtime.IAdaptable;
+import org.eclipse.core.runtime.IProgressMonitor;
+import org.eclipse.emf.ecore.EObject;
+import org.eclipse.gmf.runtime.common.core.command.CommandResult;
+import org.eclipse.gmf.runtime.common.core.command.ICommand;
+import org.eclipse.gmf.runtime.emf.type.core.IElementType;
+import org.eclipse.gmf.runtime.emf.type.core.commands.EditElementCommand;
+import org.eclipse.gmf.runtime.emf.type.core.requests.ConfigureRequest;
+import org.eclipse.gmf.runtime.emf.type.core.requests.CreateElementRequest;
+import org.eclipse.gmf.runtime.notation.View;
+
+import comrel.ComrelFactory;
+import comrel.MultiInputPort;
+import comrel.SingleFeatureUnit;
+
+/**
+ * @generated
+ */
+public class MultiInputPort3CreateCommand extends EditElementCommand {
+
+ /**
+ * @generated
+ */
+ public MultiInputPort3CreateCommand(CreateElementRequest req) {
+ super(req.getLabel(), null, req);
+ }
+
+ /**
+ * FIXME: replace with setElementToEdit()
+ * @generated
+ */
+ protected EObject getElementToEdit() {
+ EObject container = ((CreateElementRequest) getRequest())
+ .getContainer();
+ if (container instanceof View) {
+ container = ((View) container).getElement();
+ }
+ return container;
+ }
+
+ /**
+ * @generated
+ */
+ public boolean canExecute() {
+ return true;
+
+ }
+
+ /**
+ * @generated
+ */
+ protected CommandResult doExecuteWithResult(IProgressMonitor monitor,
+ IAdaptable info) throws ExecutionException {
+ MultiInputPort newElement = ComrelFactory.eINSTANCE
+ .createMultiInputPort();
+
+ SingleFeatureUnit owner = (SingleFeatureUnit) getElementToEdit();
+ owner.getSecondaryInputPorts().add(newElement);
+
+ doConfigure(newElement, monitor, info);
+
+ ((CreateElementRequest) getRequest()).setNewElement(newElement);
+ return CommandResult.newOKCommandResult(newElement);
+ }
+
+ /**
+ * @generated
+ */
+ protected void doConfigure(MultiInputPort newElement,
+ IProgressMonitor monitor, IAdaptable info)
+ throws ExecutionException {
+ IElementType elementType = ((CreateElementRequest) getRequest())
+ .getElementType();
+ ConfigureRequest configureRequest = new ConfigureRequest(
+ getEditingDomain(), newElement, elementType);
+ configureRequest.setClientContext(((CreateElementRequest) getRequest())
+ .getClientContext());
+ configureRequest.addParameters(getRequest().getParameters());
+ ICommand configureCommand = elementType
+ .getEditCommand(configureRequest);
+ if (configureCommand != null && configureCommand.canExecute()) {
+ configureCommand.execute(monitor, info);
+ }
+ }
+
+}
diff --git a/org.eclipse.emf.refactor.comrel.diagram/src/comrel/diagram/edit/commands/MultiInputPort4CreateCommand.java b/org.eclipse.emf.refactor.comrel.diagram/src/comrel/diagram/edit/commands/MultiInputPort4CreateCommand.java
new file mode 100644
index 0000000..f265336
--- /dev/null
+++ b/org.eclipse.emf.refactor.comrel.diagram/src/comrel/diagram/edit/commands/MultiInputPort4CreateCommand.java
@@ -0,0 +1,92 @@
+/*
+ *
+ */
+package comrel.diagram.edit.commands;
+
+import org.eclipse.core.commands.ExecutionException;
+import org.eclipse.core.runtime.IAdaptable;
+import org.eclipse.core.runtime.IProgressMonitor;
+import org.eclipse.emf.ecore.EObject;
+import org.eclipse.gmf.runtime.common.core.command.CommandResult;
+import org.eclipse.gmf.runtime.common.core.command.ICommand;
+import org.eclipse.gmf.runtime.emf.type.core.IElementType;
+import org.eclipse.gmf.runtime.emf.type.core.commands.EditElementCommand;
+import org.eclipse.gmf.runtime.emf.type.core.requests.ConfigureRequest;
+import org.eclipse.gmf.runtime.emf.type.core.requests.CreateElementRequest;
+import org.eclipse.gmf.runtime.notation.View;
+
+import comrel.ComrelFactory;
+import comrel.MultiFeatureUnit;
+import comrel.MultiInputPort;
+
+/**
+ * @generated
+ */
+public class MultiInputPort4CreateCommand extends EditElementCommand {
+
+ /**
+ * @generated
+ */
+ public MultiInputPort4CreateCommand(CreateElementRequest req) {
+ super(req.getLabel(), null, req);
+ }
+
+ /**
+ * FIXME: replace with setElementToEdit()
+ * @generated
+ */
+ protected EObject getElementToEdit() {
+ EObject container = ((CreateElementRequest) getRequest())
+ .getContainer();
+ if (container instanceof View) {
+ container = ((View) container).getElement();
+ }
+ return container;
+ }
+
+ /**
+ * @generated
+ */
+ public boolean canExecute() {
+ return true;
+
+ }
+
+ /**
+ * @generated
+ */
+ protected CommandResult doExecuteWithResult(IProgressMonitor monitor,
+ IAdaptable info) throws ExecutionException {
+ MultiInputPort newElement = ComrelFactory.eINSTANCE
+ .createMultiInputPort();
+
+ MultiFeatureUnit owner = (MultiFeatureUnit) getElementToEdit();
+ owner.getSecondaryInputPorts().add(newElement);
+
+ doConfigure(newElement, monitor, info);
+
+ ((CreateElementRequest) getRequest()).setNewElement(newElement);
+ return CommandResult.newOKCommandResult(newElement);
+ }
+
+ /**
+ * @generated
+ */
+ protected void doConfigure(MultiInputPort newElement,
+ IProgressMonitor monitor, IAdaptable info)
+ throws ExecutionException {
+ IElementType elementType = ((CreateElementRequest) getRequest())
+ .getElementType();
+ ConfigureRequest configureRequest = new ConfigureRequest(
+ getEditingDomain(), newElement, elementType);
+ configureRequest.setClientContext(((CreateElementRequest) getRequest())
+ .getClientContext());
+ configureRequest.addParameters(getRequest().getParameters());
+ ICommand configureCommand = elementType
+ .getEditCommand(configureRequest);
+ if (configureCommand != null && configureCommand.canExecute()) {
+ configureCommand.execute(monitor, info);
+ }
+ }
+
+}
diff --git a/org.eclipse.emf.refactor.comrel.diagram/src/comrel/diagram/edit/commands/MultiInputPort5CreateCommand.java b/org.eclipse.emf.refactor.comrel.diagram/src/comrel/diagram/edit/commands/MultiInputPort5CreateCommand.java
new file mode 100644
index 0000000..b9f6f35
--- /dev/null
+++ b/org.eclipse.emf.refactor.comrel.diagram/src/comrel/diagram/edit/commands/MultiInputPort5CreateCommand.java
@@ -0,0 +1,96 @@
+/*
+ *
+ */
+package comrel.diagram.edit.commands;
+
+import org.eclipse.core.commands.ExecutionException;
+import org.eclipse.core.runtime.IAdaptable;
+import org.eclipse.core.runtime.IProgressMonitor;
+import org.eclipse.emf.ecore.EObject;
+import org.eclipse.gmf.runtime.common.core.command.CommandResult;
+import org.eclipse.gmf.runtime.common.core.command.ICommand;
+import org.eclipse.gmf.runtime.emf.type.core.IElementType;
+import org.eclipse.gmf.runtime.emf.type.core.commands.EditElementCommand;
+import org.eclipse.gmf.runtime.emf.type.core.requests.ConfigureRequest;
+import org.eclipse.gmf.runtime.emf.type.core.requests.CreateElementRequest;
+import org.eclipse.gmf.runtime.notation.View;
+
+import comrel.ComrelFactory;
+import comrel.MultiInputPort;
+import comrel.SingleFilterUnit;
+
+/**
+ * @generated
+ */
+public class MultiInputPort5CreateCommand extends EditElementCommand {
+
+ /**
+ * @generated
+ */
+ public MultiInputPort5CreateCommand(CreateElementRequest req) {
+ super(req.getLabel(), null, req);
+ }
+
+ /**
+ * FIXME: replace with setElementToEdit()
+ * @generated
+ */
+ protected EObject getElementToEdit() {
+ EObject container = ((CreateElementRequest) getRequest())
+ .getContainer();
+ if (container instanceof View) {
+ container = ((View) container).getElement();
+ }
+ return container;
+ }
+
+ /**
+ * @generated
+ */
+ public boolean canExecute() {
+ SingleFilterUnit container = (SingleFilterUnit) getElementToEdit();
+ if (container.getInputPort() != null) {
+ return false;
+ }
+ return true;
+
+ }
+
+ /**
+ * @generated
+ */
+ protected CommandResult doExecuteWithResult(IProgressMonitor monitor,
+ IAdaptable info) throws ExecutionException {
+ MultiInputPort newElement = ComrelFactory.eINSTANCE
+ .createMultiInputPort();
+
+ SingleFilterUnit owner = (SingleFilterUnit) getElementToEdit();
+ owner.setInputPort(newElement);
+
+ doConfigure(newElement, monitor, info);
+
+ ((CreateElementRequest) getRequest()).setNewElement(newElement);
+ return CommandResult.newOKCommandResult(newElement);
+ }
+
+ /**
+ * @generated
+ */
+ protected void doConfigure(MultiInputPort newElement,
+ IProgressMonitor monitor, IAdaptable info)
+ throws ExecutionException {
+ IElementType elementType = ((CreateElementRequest) getRequest())
+ .getElementType();
+ ConfigureRequest configureRequest = new ConfigureRequest(
+ getEditingDomain(), newElement, elementType);
+ configureRequest.setClientContext(((CreateElementRequest) getRequest())
+ .getClientContext());
+ configureRequest.addParameters(getRequest().getParameters());
+ ICommand configureCommand = elementType
+ .getEditCommand(configureRequest);
+ if (configureCommand != null && configureCommand.canExecute()) {
+ configureCommand.execute(monitor, info);
+ }
+ }
+
+}
diff --git a/org.eclipse.emf.refactor.comrel.diagram/src/comrel/diagram/edit/commands/MultiInputPort6CreateCommand.java b/org.eclipse.emf.refactor.comrel.diagram/src/comrel/diagram/edit/commands/MultiInputPort6CreateCommand.java
new file mode 100644
index 0000000..d504d50
--- /dev/null
+++ b/org.eclipse.emf.refactor.comrel.diagram/src/comrel/diagram/edit/commands/MultiInputPort6CreateCommand.java
@@ -0,0 +1,96 @@
+/*
+ *
+ */
+package comrel.diagram.edit.commands;
+
+import org.eclipse.core.commands.ExecutionException;
+import org.eclipse.core.runtime.IAdaptable;
+import org.eclipse.core.runtime.IProgressMonitor;
+import org.eclipse.emf.ecore.EObject;
+import org.eclipse.gmf.runtime.common.core.command.CommandResult;
+import org.eclipse.gmf.runtime.common.core.command.ICommand;
+import org.eclipse.gmf.runtime.emf.type.core.IElementType;
+import org.eclipse.gmf.runtime.emf.type.core.commands.EditElementCommand;
+import org.eclipse.gmf.runtime.emf.type.core.requests.ConfigureRequest;
+import org.eclipse.gmf.runtime.emf.type.core.requests.CreateElementRequest;
+import org.eclipse.gmf.runtime.notation.View;
+
+import comrel.ComrelFactory;
+import comrel.MultiFilterUnit;
+import comrel.MultiInputPort;
+
+/**
+ * @generated
+ */
+public class MultiInputPort6CreateCommand extends EditElementCommand {
+
+ /**
+ * @generated
+ */
+ public MultiInputPort6CreateCommand(CreateElementRequest req) {
+ super(req.getLabel(), null, req);
+ }
+
+ /**
+ * FIXME: replace with setElementToEdit()
+ * @generated
+ */
+ protected EObject getElementToEdit() {
+ EObject container = ((CreateElementRequest) getRequest())
+ .getContainer();
+ if (container instanceof View) {
+ container = ((View) container).getElement();
+ }
+ return container;
+ }
+
+ /**
+ * @generated
+ */
+ public boolean canExecute() {
+ MultiFilterUnit container = (MultiFilterUnit) getElementToEdit();
+ if (container.getInputPort() != null) {
+ return false;
+ }
+ return true;
+
+ }
+
+ /**
+ * @generated
+ */
+ protected CommandResult doExecuteWithResult(IProgressMonitor monitor,
+ IAdaptable info) throws ExecutionException {
+ MultiInputPort newElement = ComrelFactory.eINSTANCE
+ .createMultiInputPort();
+
+ MultiFilterUnit owner = (MultiFilterUnit) getElementToEdit();
+ owner.setInputPort(newElement);
+
+ doConfigure(newElement, monitor, info);
+
+ ((CreateElementRequest) getRequest()).setNewElement(newElement);
+ return CommandResult.newOKCommandResult(newElement);
+ }
+
+ /**
+ * @generated
+ */
+ protected void doConfigure(MultiInputPort newElement,
+ IProgressMonitor monitor, IAdaptable info)
+ throws ExecutionException {
+ IElementType elementType = ((CreateElementRequest) getRequest())
+ .getElementType();
+ ConfigureRequest configureRequest = new ConfigureRequest(
+ getEditingDomain(), newElement, elementType);
+ configureRequest.setClientContext(((CreateElementRequest) getRequest())
+ .getClientContext());
+ configureRequest.addParameters(getRequest().getParameters());
+ ICommand configureCommand = elementType
+ .getEditCommand(configureRequest);
+ if (configureCommand != null && configureCommand.canExecute()) {
+ configureCommand.execute(monitor, info);
+ }
+ }
+
+}
diff --git a/org.eclipse.emf.refactor.comrel.diagram/src/comrel/diagram/edit/commands/MultiInputPort7CreateCommand.java b/org.eclipse.emf.refactor.comrel.diagram/src/comrel/diagram/edit/commands/MultiInputPort7CreateCommand.java
new file mode 100644
index 0000000..f4c6dfb
--- /dev/null
+++ b/org.eclipse.emf.refactor.comrel.diagram/src/comrel/diagram/edit/commands/MultiInputPort7CreateCommand.java
@@ -0,0 +1,96 @@
+/*
+ *
+ */
+package comrel.diagram.edit.commands;
+
+import org.eclipse.core.commands.ExecutionException;
+import org.eclipse.core.runtime.IAdaptable;
+import org.eclipse.core.runtime.IProgressMonitor;
+import org.eclipse.emf.ecore.EObject;
+import org.eclipse.gmf.runtime.common.core.command.CommandResult;
+import org.eclipse.gmf.runtime.common.core.command.ICommand;
+import org.eclipse.gmf.runtime.emf.type.core.IElementType;
+import org.eclipse.gmf.runtime.emf.type.core.commands.EditElementCommand;
+import org.eclipse.gmf.runtime.emf.type.core.requests.ConfigureRequest;
+import org.eclipse.gmf.runtime.emf.type.core.requests.CreateElementRequest;
+import org.eclipse.gmf.runtime.notation.View;
+
+import comrel.ComrelFactory;
+import comrel.MultiInputPort;
+import comrel.SingleQueuedUnit;
+
+/**
+ * @generated
+ */
+public class MultiInputPort7CreateCommand extends EditElementCommand {
+
+ /**
+ * @generated
+ */
+ public MultiInputPort7CreateCommand(CreateElementRequest req) {
+ super(req.getLabel(), null, req);
+ }
+
+ /**
+ * FIXME: replace with setElementToEdit()
+ * @generated
+ */
+ protected EObject getElementToEdit() {
+ EObject container = ((CreateElementRequest) getRequest())
+ .getContainer();
+ if (container instanceof View) {
+ container = ((View) container).getElement();
+ }
+ return container;
+ }
+
+ /**
+ * @generated
+ */
+ public boolean canExecute() {
+ SingleQueuedUnit container = (SingleQueuedUnit) getElementToEdit();
+ if (container.getMultiInputPort() != null) {
+ return false;
+ }
+ return true;
+
+ }
+
+ /**
+ * @generated
+ */
+ protected CommandResult doExecuteWithResult(IProgressMonitor monitor,
+ IAdaptable info) throws ExecutionException {
+ MultiInputPort newElement = ComrelFactory.eINSTANCE
+ .createMultiInputPort();
+
+ SingleQueuedUnit owner = (SingleQueuedUnit) getElementToEdit();
+ owner.setMultiInputPort(newElement);
+
+ doConfigure(newElement, monitor, info);
+
+ ((CreateElementRequest) getRequest()).setNewElement(newElement);
+ return CommandResult.newOKCommandResult(newElement);
+ }
+
+ /**
+ * @generated
+ */
+ protected void doConfigure(MultiInputPort newElement,
+ IProgressMonitor monitor, IAdaptable info)
+ throws ExecutionException {
+ IElementType elementType = ((CreateElementRequest) getRequest())
+ .getElementType();
+ ConfigureRequest configureRequest = new ConfigureRequest(
+ getEditingDomain(), newElement, elementType);
+ configureRequest.setClientContext(((CreateElementRequest) getRequest())
+ .getClientContext());
+ configureRequest.addParameters(getRequest().getParameters());
+ ICommand configureCommand = elementType
+ .getEditCommand(configureRequest);
+ if (configureCommand != null && configureCommand.canExecute()) {
+ configureCommand.execute(monitor, info);
+ }
+ }
+
+}
diff --git a/org.eclipse.emf.refactor.comrel.diagram/src/comrel/diagram/edit/commands/MultiInputPort8CreateCommand.java b/org.eclipse.emf.refactor.comrel.diagram/src/comrel/diagram/edit/commands/MultiInputPort8CreateCommand.java
new file mode 100644
index 0000000..e83a845
--- /dev/null
+++ b/org.eclipse.emf.refactor.comrel.diagram/src/comrel/diagram/edit/commands/MultiInputPort8CreateCommand.java
@@ -0,0 +1,92 @@
+/*
+ *
+ */
+package comrel.diagram.edit.commands;
+
+import org.eclipse.core.commands.ExecutionException;
+import org.eclipse.core.runtime.IAdaptable;
+import org.eclipse.core.runtime.IProgressMonitor;
+import org.eclipse.emf.ecore.EObject;
+import org.eclipse.gmf.runtime.common.core.command.CommandResult;
+import org.eclipse.gmf.runtime.common.core.command.ICommand;
+import org.eclipse.gmf.runtime.emf.type.core.IElementType;
+import org.eclipse.gmf.runtime.emf.type.core.commands.EditElementCommand;
+import org.eclipse.gmf.runtime.emf.type.core.requests.ConfigureRequest;
+import org.eclipse.gmf.runtime.emf.type.core.requests.CreateElementRequest;
+import org.eclipse.gmf.runtime.notation.View;
+
+import comrel.ComrelFactory;
+import comrel.MultiInputPort;
+import comrel.SequentialUnit;
+
+/**
+ * @generated
+ */
+public class MultiInputPort8CreateCommand extends EditElementCommand {
+
+ /**
+ * @generated
+ */
+ public MultiInputPort8CreateCommand(CreateElementRequest req) {
+ super(req.getLabel(), null, req);
+ }
+
+ /**
+ * FIXME: replace with setElementToEdit()
+ * @generated
+ */
+ protected EObject getElementToEdit() {
+ EObject container = ((CreateElementRequest) getRequest())
+ .getContainer();
+ if (container instanceof View) {
+ container = ((View) container).getElement();
+ }
+ return container;
+ }
+
+ /**
+ * @generated
+ */
+ public boolean canExecute() {
+ return true;
+
+ }
+
+ /**
+ * @generated
+ */
+ protected CommandResult doExecuteWithResult(IProgressMonitor monitor,
+ IAdaptable info) throws ExecutionException {
+ MultiInputPort newElement = ComrelFactory.eINSTANCE
+ .createMultiInputPort();
+
+ SequentialUnit owner = (SequentialUnit) getElementToEdit();
+ owner.getInputPorts().add(newElement);
+
+ doConfigure(newElement, monitor, info);
+
+ ((CreateElementRequest) getRequest()).setNewElement(newElement);
+ return CommandResult.newOKCommandResult(newElement);
+ }
+
+ /**
+ * @generated
+ */
+ protected void doConfigure(MultiInputPort newElement,
+ IProgressMonitor monitor, IAdaptable info)
+ throws ExecutionException {
+ IElementType elementType = ((CreateElementRequest) getRequest())
+ .getElementType();
+ ConfigureRequest configureRequest = new ConfigureRequest(
+ getEditingDomain(), newElement, elementType);
+ configureRequest.setClientContext(((CreateElementRequest) getRequest())
+ .getClientContext());
+ configureRequest.addParameters(getRequest().getParameters());
+ ICommand configureCommand = elementType
+ .getEditCommand(configureRequest);
+ if (configureCommand != null && configureCommand.canExecute()) {
+ configureCommand.execute(monitor, info);
+ }
+ }
+
+}
diff --git a/org.eclipse.emf.refactor.comrel.diagram/src/comrel/diagram/edit/commands/MultiInputPort9CreateCommand.java b/org.eclipse.emf.refactor.comrel.diagram/src/comrel/diagram/edit/commands/MultiInputPort9CreateCommand.java
new file mode 100644
index 0000000..ffe2401
--- /dev/null
+++ b/org.eclipse.emf.refactor.comrel.diagram/src/comrel/diagram/edit/commands/MultiInputPort9CreateCommand.java
@@ -0,0 +1,92 @@
+/*
+ *
+ */
+package comrel.diagram.edit.commands;
+
+import org.eclipse.core.commands.ExecutionException;
+import org.eclipse.core.runtime.IAdaptable;
+import org.eclipse.core.runtime.IProgressMonitor;
+import org.eclipse.emf.ecore.EObject;
+import org.eclipse.gmf.runtime.common.core.command.CommandResult;
+import org.eclipse.gmf.runtime.common.core.command.ICommand;
+import org.eclipse.gmf.runtime.emf.type.core.IElementType;
+import org.eclipse.gmf.runtime.emf.type.core.commands.EditElementCommand;
+import org.eclipse.gmf.runtime.emf.type.core.requests.ConfigureRequest;
+import org.eclipse.gmf.runtime.emf.type.core.requests.CreateElementRequest;
+import org.eclipse.gmf.runtime.notation.View;
+
+import comrel.ComrelFactory;
+import comrel.ConditionalUnit;
+import comrel.MultiInputPort;
+
+/**
+ * @generated
+ */
+public class MultiInputPort9CreateCommand extends EditElementCommand {
+
+ /**
+ * @generated
+ */
+ public MultiInputPort9CreateCommand(CreateElementRequest req) {
+ super(req.getLabel(), null, req);
+ }
+
+ /**
+ * FIXME: replace with setElementToEdit()
+ * @generated
+ */
+ protected EObject getElementToEdit() {
+ EObject container = ((CreateElementRequest) getRequest())
+ .getContainer();
+ if (container instanceof View) {
+ container = ((View) container).getElement();
+ }
+ return container;
+ }
+
+ /**
+ * @generated
+ */
+ public boolean canExecute() {
+ return true;
+
+ }
+
+ /**
+ * @generated
+ */
+ protected CommandResult doExecuteWithResult(IProgressMonitor monitor,
+ IAdaptable info) throws ExecutionException {
+ MultiInputPort newElement = ComrelFactory.eINSTANCE
+ .createMultiInputPort();
+
+ ConditionalUnit owner = (ConditionalUnit) getElementToEdit();
+ owner.getInputPorts().add(newElement);
+
+ doConfigure(newElement, monitor, info);
+
+ ((CreateElementRequest) getRequest()).setNewElement(newElement);
+ return CommandResult.newOKCommandResult(newElement);
+ }
+
+ /**
+ * @generated
+ */
+ protected void doConfigure(MultiInputPort newElement,
+ IProgressMonitor monitor, IAdaptable info)
+ throws ExecutionException {
+ IElementType elementType = ((CreateElementRequest) getRequest())
+ .getElementType();
+ ConfigureRequest configureRequest = new ConfigureRequest(
+ getEditingDomain(), newElement, elementType);
+ configureRequest.setClientContext(((CreateElementRequest) getRequest())
+ .getClientContext());
+ configureRequest.addParameters(getRequest().getParameters());
+ ICommand configureCommand = elementType
+ .getEditCommand(configureRequest);
+ if (configureCommand != null && configureCommand.canExecute()) {
+ configureCommand.execute(monitor, info);
+ }
+ }
+
+}
diff --git a/org.eclipse.emf.refactor.comrel.diagram/src/comrel/diagram/edit/commands/MultiInputPortCreateCommand.java b/org.eclipse.emf.refactor.comrel.diagram/src/comrel/diagram/edit/commands/MultiInputPortCreateCommand.java
new file mode 100644
index 0000000..2813e50
--- /dev/null
+++ b/org.eclipse.emf.refactor.comrel.diagram/src/comrel/diagram/edit/commands/MultiInputPortCreateCommand.java
@@ -0,0 +1,96 @@
+/*
+ *
+ */
+package comrel.diagram.edit.commands;
+
+import org.eclipse.core.commands.ExecutionException;
+import org.eclipse.core.runtime.IAdaptable;
+import org.eclipse.core.runtime.IProgressMonitor;
+import org.eclipse.emf.ecore.EObject;
+import org.eclipse.gmf.runtime.common.core.command.CommandResult;
+import org.eclipse.gmf.runtime.common.core.command.ICommand;
+import org.eclipse.gmf.runtime.emf.type.core.IElementType;
+import org.eclipse.gmf.runtime.emf.type.core.commands.EditElementCommand;
+import org.eclipse.gmf.runtime.emf.type.core.requests.ConfigureRequest;
+import org.eclipse.gmf.runtime.emf.type.core.requests.CreateElementRequest;
+import org.eclipse.gmf.runtime.notation.View;
+
+import comrel.CartesianQueuedUnit;
+import comrel.ComrelFactory;
+import comrel.MultiInputPort;
+
+/**
+ * @generated
+ */
+public class MultiInputPortCreateCommand extends EditElementCommand {
+
+ /**
+ * @generated
+ */
+ public MultiInputPortCreateCommand(CreateElementRequest req) {
+ super(req.getLabel(), null, req);
+ }
+
+ /**
+ * FIXME: replace with setElementToEdit()
+ * @generated
+ */
+ protected EObject getElementToEdit() {
+ EObject container = ((CreateElementRequest) getRequest())
+ .getContainer();
+ if (container instanceof View) {
+ container = ((View) container).getElement();
+ }
+ return container;
+ }
+
+ /**
+ * @generated
+ */
+ public boolean canExecute() {
+ CartesianQueuedUnit container = (CartesianQueuedUnit) getElementToEdit();
+ if (container.getMultiInputPorts().size() >= 2) {
+ return false;
+ }
+ return true;
+
+ }
+
+ /**
+ * @generated
+ */
+ protected CommandResult doExecuteWithResult(IProgressMonitor monitor,
+ IAdaptable info) throws ExecutionException {
+ MultiInputPort newElement = ComrelFactory.eINSTANCE
+ .createMultiInputPort();
+
+ CartesianQueuedUnit owner = (CartesianQueuedUnit) getElementToEdit();
+ owner.getMultiInputPorts().add(newElement);
+
+ doConfigure(newElement, monitor, info);
+
+ ((CreateElementRequest) getRequest()).setNewElement(newElement);
+ return CommandResult.newOKCommandResult(newElement);
+ }
+
+ /**
+ * @generated
+ */
+ protected void doConfigure(MultiInputPort newElement,
+ IProgressMonitor monitor, IAdaptable info)
+ throws ExecutionException {
+ IElementType elementType = ((CreateElementRequest) getRequest())
+ .getElementType();
+ ConfigureRequest configureRequest = new ConfigureRequest(
+ getEditingDomain(), newElement, elementType);
+ configureRequest.setClientContext(((CreateElementRequest) getRequest())
+ .getClientContext());
+ configureRequest.addParameters(getRequest().getParameters());
+ ICommand configureCommand = elementType
+ .getEditCommand(configureRequest);
+ if (configureCommand != null && configureCommand.canExecute()) {
+ configureCommand.execute(monitor, info);
+ }
+ }
+
+}
diff --git a/org.eclipse.emf.refactor.comrel.diagram/src/comrel/diagram/edit/commands/MultiOutputPort2CreateCommand.java b/org.eclipse.emf.refactor.comrel.diagram/src/comrel/diagram/edit/commands/MultiOutputPort2CreateCommand.java
new file mode 100644
index 0000000..7be947d
--- /dev/null
+++ b/org.eclipse.emf.refactor.comrel.diagram/src/comrel/diagram/edit/commands/MultiOutputPort2CreateCommand.java
@@ -0,0 +1,96 @@
+/*
+ *
+ */
+package comrel.diagram.edit.commands;
+
+import org.eclipse.core.commands.ExecutionException;
+import org.eclipse.core.runtime.IAdaptable;
+import org.eclipse.core.runtime.IProgressMonitor;
+import org.eclipse.emf.ecore.EObject;
+import org.eclipse.gmf.runtime.common.core.command.CommandResult;
+import org.eclipse.gmf.runtime.common.core.command.ICommand;
+import org.eclipse.gmf.runtime.emf.type.core.IElementType;
+import org.eclipse.gmf.runtime.emf.type.core.commands.EditElementCommand;
+import org.eclipse.gmf.runtime.emf.type.core.requests.ConfigureRequest;
+import org.eclipse.gmf.runtime.emf.type.core.requests.CreateElementRequest;
+import org.eclipse.gmf.runtime.notation.View;
+
+import comrel.ComrelFactory;
+import comrel.MultiFilterUnit;
+import comrel.MultiOutputPort;
+
+/**
+ * @generated
+ */
+public class MultiOutputPort2CreateCommand extends EditElementCommand {
+
+ /**
+ * @generated
+ */
+ public MultiOutputPort2CreateCommand(CreateElementRequest req) {
+ super(req.getLabel(), null, req);
+ }
+
+ /**
+ * FIXME: replace with setElementToEdit()
+ * @generated
+ */
+ protected EObject getElementToEdit() {
+ EObject container = ((CreateElementRequest) getRequest())
+ .getContainer();
+ if (container instanceof View) {
+ container = ((View) container).getElement();
+ }
+ return container;
+ }
+
+ /**
+ * @generated
+ */
+ public boolean canExecute() {
+ MultiFilterUnit container = (MultiFilterUnit) getElementToEdit();
+ if (container.getOutputPort() != null) {
+ return false;
+ }
+ return true;
+
+ }
+
+ /**
+ * @generated
+ */
+ protected CommandResult doExecuteWithResult(IProgressMonitor monitor,
+ IAdaptable info) throws ExecutionException {
+ MultiOutputPort newElement = ComrelFactory.eINSTANCE
+ .createMultiOutputPort();
+
+ MultiFilterUnit owner = (MultiFilterUnit) getElementToEdit();
+ owner.setOutputPort(newElement);
+
+ doConfigure(newElement, monitor, info);
+
+ ((CreateElementRequest) getRequest()).setNewElement(newElement);
+ return CommandResult.newOKCommandResult(newElement);
+ }
+
+ /**
+ * @generated
+ */
+ protected void doConfigure(MultiOutputPort newElement,
+ IProgressMonitor monitor, IAdaptable info)
+ throws ExecutionException {
+ IElementType elementType = ((CreateElementRequest) getRequest())
+ .getElementType();
+ ConfigureRequest configureRequest = new ConfigureRequest(
+ getEditingDomain(), newElement, elementType);
+ configureRequest.setClientContext(((CreateElementRequest) getRequest())
+ .getClientContext());
+ configureRequest.addParameters(getRequest().getParameters());
+ ICommand configureCommand = elementType
+ .getEditCommand(configureRequest);
+ if (configureCommand != null && configureCommand.canExecute()) {
+ configureCommand.execute(monitor, info);
+ }
+ }
+
+}
diff --git a/org.eclipse.emf.refactor.comrel.diagram/src/comrel/diagram/edit/commands/MultiOutputPortCreateCommand.java b/org.eclipse.emf.refactor.comrel.diagram/src/comrel/diagram/edit/commands/MultiOutputPortCreateCommand.java
new file mode 100644
index 0000000..3e6dd23
--- /dev/null
+++ b/org.eclipse.emf.refactor.comrel.diagram/src/comrel/diagram/edit/commands/MultiOutputPortCreateCommand.java
@@ -0,0 +1,96 @@
+/*
+ *
+ */
+package comrel.diagram.edit.commands;
+
+import org.eclipse.core.commands.ExecutionException;
+import org.eclipse.core.runtime.IAdaptable;
+import org.eclipse.core.runtime.IProgressMonitor;
+import org.eclipse.emf.ecore.EObject;
+import org.eclipse.gmf.runtime.common.core.command.CommandResult;
+import org.eclipse.gmf.runtime.common.core.command.ICommand;
+import org.eclipse.gmf.runtime.emf.type.core.IElementType;
+import org.eclipse.gmf.runtime.emf.type.core.commands.EditElementCommand;
+import org.eclipse.gmf.runtime.emf.type.core.requests.ConfigureRequest;
+import org.eclipse.gmf.runtime.emf.type.core.requests.CreateElementRequest;
+import org.eclipse.gmf.runtime.notation.View;
+
+import comrel.ComrelFactory;
+import comrel.MultiFeatureUnit;
+import comrel.MultiOutputPort;
+
+/**
+ * @generated
+ */
+public class MultiOutputPortCreateCommand extends EditElementCommand {
+
+ /**
+ * @generated
+ */
+ public MultiOutputPortCreateCommand(CreateElementRequest req) {
+ super(req.getLabel(), null, req);
+ }
+
+ /**
+ * FIXME: replace with setElementToEdit()
+ * @generated
+ */
+ protected EObject getElementToEdit() {
+ EObject container = ((CreateElementRequest) getRequest())
+ .getContainer();
+ if (container instanceof View) {
+ container = ((View) container).getElement();
+ }
+ return container;
+ }
+
+ /**
+ * @generated
+ */
+ public boolean canExecute() {
+ MultiFeatureUnit container = (MultiFeatureUnit) getElementToEdit();
+ if (container.getOutputPort() != null) {
+ return false;
+ }
+ return true;
+
+ }
+
+ /**
+ * @generated
+ */
+ protected CommandResult doExecuteWithResult(IProgressMonitor monitor,
+ IAdaptable info) throws ExecutionException {
+ MultiOutputPort newElement = ComrelFactory.eINSTANCE
+ .createMultiOutputPort();
+
+ MultiFeatureUnit owner = (MultiFeatureUnit) getElementToEdit();
+ owner.setOutputPort(newElement);
+
+ doConfigure(newElement, monitor, info);
+
+ ((CreateElementRequest) getRequest()).setNewElement(newElement);
+ return CommandResult.newOKCommandResult(newElement);
+ }
+
+ /**
+ * @generated
+ */
+ protected void doConfigure(MultiOutputPort newElement,
+ IProgressMonitor monitor, IAdaptable info)
+ throws ExecutionException {
+ IElementType elementType = ((CreateElementRequest) getRequest())
+ .getElementType();
+ ConfigureRequest configureRequest = new ConfigureRequest(
+ getEditingDomain(), newElement, elementType);
+ configureRequest.setClientContext(((CreateElementRequest) getRequest())
+ .getClientContext());
+ configureRequest.addParameters(getRequest().getParameters());
+ ICommand configureCommand = elementType
+ .getEditCommand(configureRequest);
+ if (configureCommand != null && configureCommand.canExecute()) {
+ configureCommand.execute(monitor, info);
+ }
+ }
+
+}
diff --git a/org.eclipse.emf.refactor.comrel.diagram/src/comrel/diagram/edit/commands/MultiPortMappingCreateCommand.java b/org.eclipse.emf.refactor.comrel.diagram/src/comrel/diagram/edit/commands/MultiPortMappingCreateCommand.java
new file mode 100644
index 0000000..1785542
--- /dev/null
+++ b/org.eclipse.emf.refactor.comrel.diagram/src/comrel/diagram/edit/commands/MultiPortMappingCreateCommand.java
@@ -0,0 +1,173 @@
+/*
+ *
+ */
+package comrel.diagram.edit.commands;
+
+import org.eclipse.core.commands.ExecutionException;
+import org.eclipse.core.runtime.IAdaptable;
+import org.eclipse.core.runtime.IProgressMonitor;
+import org.eclipse.emf.ecore.EObject;
+import org.eclipse.gmf.runtime.common.core.command.CommandResult;
+import org.eclipse.gmf.runtime.common.core.command.ICommand;
+import org.eclipse.gmf.runtime.emf.type.core.IElementType;
+import org.eclipse.gmf.runtime.emf.type.core.commands.EditElementCommand;
+import org.eclipse.gmf.runtime.emf.type.core.requests.ConfigureRequest;
+import org.eclipse.gmf.runtime.emf.type.core.requests.CreateElementRequest;
+import org.eclipse.gmf.runtime.emf.type.core.requests.CreateRelationshipRequest;
+
+import comrel.CompositeRefactoring;
+import comrel.ComrelFactory;
+import comrel.MultiInputPort;
+import comrel.MultiPort;
+import comrel.MultiPortMapping;
+import comrel.diagram.edit.policies.ComrelBaseItemSemanticEditPolicy;
+
+/**
+ * @generated
+ */
+public class MultiPortMappingCreateCommand extends EditElementCommand {
+
+ /**
+ * @generated
+ */
+ private final EObject source;
+
+ /**
+ * @generated
+ */
+ private final EObject target;
+
+ /**
+ * @generated
+ */
+ private final CompositeRefactoring container;
+
+ /**
+ * @generated
+ */
+ public MultiPortMappingCreateCommand(CreateRelationshipRequest request,
+ EObject source, EObject target) {
+ super(request.getLabel(), null, request);
+ this.source = source;
+ this.target = target;
+ container = deduceContainer(source, target);
+ }
+
+ /**
+ * @generated
+ */
+ public boolean canExecute() {
+ if (source == null && target == null) {
+ return false;
+ }
+ if (source != null && false == source instanceof MultiPort) {
+ return false;
+ }
+ if (target != null && false == target instanceof MultiInputPort) {
+ return false;
+ }
+ if (getSource() == null) {
+ return true; // link creation is in progress; source is not defined yet
+ }
+ // target may be null here but it's possible to check constraint
+ if (getContainer() == null) {
+ return false;
+ }
+ return ComrelBaseItemSemanticEditPolicy.getLinkConstraints()
+ .canCreateMultiPortMapping_4002(getContainer(), getSource(),
+ getTarget());
+ }
+
+ /**
+ * @generated
+ */
+ protected CommandResult doExecuteWithResult(IProgressMonitor monitor,
+ IAdaptable info) throws ExecutionException {
+ if (!canExecute()) {
+ throw new ExecutionException(
+ "Invalid arguments in create link command"); //$NON-NLS-1$
+ }
+
+ MultiPortMapping newElement = ComrelFactory.eINSTANCE
+ .createMultiPortMapping();
+ getContainer().getPortMappings().add(newElement);
+ newElement.setSource(getSource());
+ newElement.setTarget(getTarget());
+ doConfigure(newElement, monitor, info);
+ ((CreateElementRequest) getRequest()).setNewElement(newElement);
+ return CommandResult.newOKCommandResult(newElement);
+
+ }
+
+ /**
+ * @generated
+ */
+ protected void doConfigure(MultiPortMapping newElement,
+ IProgressMonitor monitor, IAdaptable info)
+ throws ExecutionException {
+ IElementType elementType = ((CreateElementRequest) getRequest())
+ .getElementType();
+ ConfigureRequest configureRequest = new ConfigureRequest(
+ getEditingDomain(), newElement, elementType);
+ configureRequest.setClientContext(((CreateElementRequest) getRequest())
+ .getClientContext());
+ configureRequest.addParameters(getRequest().getParameters());
+ configureRequest.setParameter(CreateRelationshipRequest.SOURCE,
+ getSource());
+ configureRequest.setParameter(CreateRelationshipRequest.TARGET,
+ getTarget());
+ ICommand configureCommand = elementType
+ .getEditCommand(configureRequest);
+ if (configureCommand != null && configureCommand.canExecute()) {
+ configureCommand.execute(monitor, info);
+ }
+ }
+
+ /**
+ * @generated
+ */
+ protected void setElementToEdit(EObject element) {
+ throw new UnsupportedOperationException();
+ }
+
+ /**
+ * @generated
+ */
+ protected MultiPort getSource() {
+ return (MultiPort) source;
+ }
+
+ /**
+ * @generated
+ */
+ protected MultiInputPort getTarget() {
+ return (MultiInputPort) target;
+ }
+
+ /**
+ * @generated
+ */
+ public CompositeRefactoring getContainer() {
+ return container;
+ }
+
+ /**
+ * Default approach is to traverse ancestors of the source to find instance of container.
+ * Modify with appropriate logic.
+ * @generated
+ */
+ private static CompositeRefactoring deduceContainer(EObject source,
+ EObject target) {
+ // Find container element for the new link.
+ // Climb up by containment hierarchy starting from the source
+ // and return the first element that is instance of the container class.
+ for (EObject element = source; element != null; element = element
+ .eContainer()) {
+ if (element instanceof CompositeRefactoring) {
+ return (CompositeRefactoring) element;
+ }
+ }
+ return null;
+ }
+
+}
diff --git a/org.eclipse.emf.refactor.comrel.diagram/src/comrel/diagram/edit/commands/MultiPortMappingReorientCommand.java b/org.eclipse.emf.refactor.comrel.diagram/src/comrel/diagram/edit/commands/MultiPortMappingReorientCommand.java
new file mode 100644
index 0000000..e661cb1
--- /dev/null
+++ b/org.eclipse.emf.refactor.comrel.diagram/src/comrel/diagram/edit/commands/MultiPortMappingReorientCommand.java
@@ -0,0 +1,170 @@
+/*
+ *
+ */
+package comrel.diagram.edit.commands;
+
+import org.eclipse.core.commands.ExecutionException;
+import org.eclipse.core.runtime.IAdaptable;
+import org.eclipse.core.runtime.IProgressMonitor;
+import org.eclipse.emf.ecore.EObject;
+import org.eclipse.gmf.runtime.common.core.command.CommandResult;
+import org.eclipse.gmf.runtime.emf.type.core.commands.EditElementCommand;
+import org.eclipse.gmf.runtime.emf.type.core.requests.ReorientRelationshipRequest;
+
+import comrel.CompositeRefactoring;
+import comrel.MultiInputPort;
+import comrel.MultiPort;
+import comrel.MultiPortMapping;
+import comrel.diagram.edit.policies.ComrelBaseItemSemanticEditPolicy;
+
+/**
+ * @generated
+ */
+public class MultiPortMappingReorientCommand extends EditElementCommand {
+
+ /**
+ * @generated
+ */
+ private final int reorientDirection;
+
+ /**
+ * @generated
+ */
+ private final EObject oldEnd;
+
+ /**
+ * @generated
+ */
+ private final EObject newEnd;
+
+ /**
+ * @generated
+ */
+ public MultiPortMappingReorientCommand(ReorientRelationshipRequest request) {
+ super(request.getLabel(), request.getRelationship(), request);
+ reorientDirection = request.getDirection();
+ oldEnd = request.getOldRelationshipEnd();
+ newEnd = request.getNewRelationshipEnd();
+ }
+
+ /**
+ * @generated
+ */
+ public boolean canExecute() {
+ if (false == getElementToEdit() instanceof MultiPortMapping) {
+ return false;
+ }
+ if (reorientDirection == ReorientRelationshipRequest.REORIENT_SOURCE) {
+ return canReorientSource();
+ }
+ if (reorientDirection == ReorientRelationshipRequest.REORIENT_TARGET) {
+ return canReorientTarget();
+ }
+ return false;
+ }
+
+ /**
+ * @generated
+ */
+ protected boolean canReorientSource() {
+ if (!(oldEnd instanceof MultiPort && newEnd instanceof MultiPort)) {
+ return false;
+ }
+ MultiInputPort target = getLink().getTarget();
+ if (!(getLink().eContainer() instanceof CompositeRefactoring)) {
+ return false;
+ }
+ CompositeRefactoring container = (CompositeRefactoring) getLink()
+ .eContainer();
+ return ComrelBaseItemSemanticEditPolicy.getLinkConstraints()
+ .canExistMultiPortMapping_4002(container, getLink(),
+ getNewSource(), target);
+ }
+
+ /**
+ * @generated
+ */
+ protected boolean canReorientTarget() {
+ if (!(oldEnd instanceof MultiInputPort && newEnd instanceof MultiInputPort)) {
+ return false;
+ }
+ MultiPort source = getLink().getSource();
+ if (!(getLink().eContainer() instanceof CompositeRefactoring)) {
+ return false;
+ }
+ CompositeRefactoring container = (CompositeRefactoring) getLink()
+ .eContainer();
+ return ComrelBaseItemSemanticEditPolicy.getLinkConstraints()
+ .canExistMultiPortMapping_4002(container, getLink(), source,
+ getNewTarget());
+ }
+
+ /**
+ * @generated
+ */
+ protected CommandResult doExecuteWithResult(IProgressMonitor monitor,
+ IAdaptable info) throws ExecutionException {
+ if (!canExecute()) {
+ throw new ExecutionException(
+ "Invalid arguments in reorient link command"); //$NON-NLS-1$
+ }
+ if (reorientDirection == ReorientRelationshipRequest.REORIENT_SOURCE) {
+ return reorientSource();
+ }
+ if (reorientDirection == ReorientRelationshipRequest.REORIENT_TARGET) {
+ return reorientTarget();
+ }
+ throw new IllegalStateException();
+ }
+
+ /**
+ * @generated
+ */
+ protected CommandResult reorientSource() throws ExecutionException {
+ getLink().setSource(getNewSource());
+ return CommandResult.newOKCommandResult(getLink());
+ }
+
+ /**
+ * @generated
+ */
+ protected CommandResult reorientTarget() throws ExecutionException {
+ getLink().setTarget(getNewTarget());
+ return CommandResult.newOKCommandResult(getLink());
+ }
+
+ /**
+ * @generated
+ */
+ protected MultiPortMapping getLink() {
+ return (MultiPortMapping) getElementToEdit();
+ }
+
+ /**
+ * @generated
+ */
+ protected MultiPort getOldSource() {
+ return (MultiPort) oldEnd;
+ }
+
+ /**
+ * @generated
+ */
+ protected MultiPort getNewSource() {
+ return (MultiPort) newEnd;
+ }
+
+ /**
+ * @generated
+ */
+ protected MultiInputPort getOldTarget() {
+ return (MultiInputPort) oldEnd;
+ }
+
+ /**
+ * @generated
+ */
+ protected MultiInputPort getNewTarget() {
+ return (MultiInputPort) newEnd;
+ }
+}
diff --git a/org.eclipse.emf.refactor.comrel.diagram/src/comrel/diagram/edit/commands/MultiSinglePortMappingCreateCommand.java b/org.eclipse.emf.refactor.comrel.diagram/src/comrel/diagram/edit/commands/MultiSinglePortMappingCreateCommand.java
new file mode 100644
index 0000000..5f8dc49
--- /dev/null
+++ b/org.eclipse.emf.refactor.comrel.diagram/src/comrel/diagram/edit/commands/MultiSinglePortMappingCreateCommand.java
@@ -0,0 +1,173 @@
+/*
+ *
+ */
+package comrel.diagram.edit.commands;
+
+import org.eclipse.core.commands.ExecutionException;
+import org.eclipse.core.runtime.IAdaptable;
+import org.eclipse.core.runtime.IProgressMonitor;
+import org.eclipse.emf.ecore.EObject;
+import org.eclipse.gmf.runtime.common.core.command.CommandResult;
+import org.eclipse.gmf.runtime.common.core.command.ICommand;
+import org.eclipse.gmf.runtime.emf.type.core.IElementType;
+import org.eclipse.gmf.runtime.emf.type.core.commands.EditElementCommand;
+import org.eclipse.gmf.runtime.emf.type.core.requests.ConfigureRequest;
+import org.eclipse.gmf.runtime.emf.type.core.requests.CreateElementRequest;
+import org.eclipse.gmf.runtime.emf.type.core.requests.CreateRelationshipRequest;
+
+import comrel.CompositeRefactoring;
+import comrel.ComrelFactory;
+import comrel.MultiPort;
+import comrel.MultiSinglePortMapping;
+import comrel.SingleInputPort;
+import comrel.diagram.edit.policies.ComrelBaseItemSemanticEditPolicy;
+
+/**
+ * @generated
+ */
+public class MultiSinglePortMappingCreateCommand extends EditElementCommand {
+
+ /**
+ * @generated
+ */
+ private final EObject source;
+
+ /**
+ * @generated
+ */
+ private final EObject target;
+
+ /**
+ * @generated
+ */
+ private final CompositeRefactoring container;
+
+ /**
+ * @generated
+ */
+ public MultiSinglePortMappingCreateCommand(
+ CreateRelationshipRequest request, EObject source, EObject target) {
+ super(request.getLabel(), null, request);
+ this.source = source;
+ this.target = target;
+ container = deduceContainer(source, target);
+ }
+
+ /**
+ * @generated
+ */
+ public boolean canExecute() {
+ if (source == null && target == null) {
+ return false;
+ }
+ if (source != null && false == source instanceof MultiPort) {
+ return false;
+ }
+ if (target != null && false == target instanceof SingleInputPort) {
+ return false;
+ }
+ if (getSource() == null) {
+ return true; // link creation is in progress; source is not defined yet
+ }
+ // target may be null here but it's possible to check constraint
+ if (getContainer() == null) {
+ return false;
+ }
+ return ComrelBaseItemSemanticEditPolicy.getLinkConstraints()
+ .canCreateMultiSinglePortMapping_4003(getContainer(),
+ getSource(), getTarget());
+ }
+
+ /**
+ * @generated
+ */
+ protected CommandResult doExecuteWithResult(IProgressMonitor monitor,
+ IAdaptable info) throws ExecutionException {
+ if (!canExecute()) {
+ throw new ExecutionException(
+ "Invalid arguments in create link command"); //$NON-NLS-1$
+ }
+
+ MultiSinglePortMapping newElement = ComrelFactory.eINSTANCE
+ .createMultiSinglePortMapping();
+ getContainer().getPortMappings().add(newElement);
+ newElement.setSource(getSource());
+ newElement.setTarget(getTarget());
+ doConfigure(newElement, monitor, info);
+ ((CreateElementRequest) getRequest()).setNewElement(newElement);
+ return CommandResult.newOKCommandResult(newElement);
+
+ }
+
+ /**
+ * @generated
+ */
+ protected void doConfigure(MultiSinglePortMapping newElement,
+ IProgressMonitor monitor, IAdaptable info)
+ throws ExecutionException {
+ IElementType elementType = ((CreateElementRequest) getRequest())
+ .getElementType();
+ ConfigureRequest configureRequest = new ConfigureRequest(
+ getEditingDomain(), newElement, elementType);
+ configureRequest.setClientContext(((CreateElementRequest) getRequest())
+ .getClientContext());
+ configureRequest.addParameters(getRequest().getParameters());
+ configureRequest.setParameter(CreateRelationshipRequest.SOURCE,
+ getSource());
+ configureRequest.setParameter(CreateRelationshipRequest.TARGET,
+ getTarget());
+ ICommand configureCommand = elementType
+ .getEditCommand(configureRequest);
+ if (configureCommand != null && configureCommand.canExecute()) {
+ configureCommand.execute(monitor, info);
+ }
+ }
+
+ /**
+ * @generated
+ */
+ protected void setElementToEdit(EObject element) {
+ throw new UnsupportedOperationException();
+ }
+
+ /**
+ * @generated
+ */
+ protected MultiPort getSource() {
+ return (MultiPort) source;
+ }
+
+ /**
+ * @generated
+ */
+ protected SingleInputPort getTarget() {
+ return (SingleInputPort) target;
+ }
+
+ /**
+ * @generated
+ */
+ public CompositeRefactoring getContainer() {
+ return container;
+ }
+
+ /**
+ * Default approach is to traverse ancestors of the source to find instance of container.
+ * Modify with appropriate logic.
+ * @generated
+ */
+ private static CompositeRefactoring deduceContainer(EObject source,
+ EObject target) {
+ // Find container element for the new link.
+ // Climb up by containment hierarchy starting from the source
+ // and return the first element that is instance of the container class.
+ for (EObject element = source; element != null; element = element
+ .eContainer()) {
+ if (element instanceof CompositeRefactoring) {
+ return (CompositeRefactoring) element;
+ }
+ }
+ return null;
+ }
+
+}
diff --git a/org.eclipse.emf.refactor.comrel.diagram/src/comrel/diagram/edit/commands/MultiSinglePortMappingReorientCommand.java b/org.eclipse.emf.refactor.comrel.diagram/src/comrel/diagram/edit/commands/MultiSinglePortMappingReorientCommand.java
new file mode 100644
index 0000000..bd86694
--- /dev/null
+++ b/org.eclipse.emf.refactor.comrel.diagram/src/comrel/diagram/edit/commands/MultiSinglePortMappingReorientCommand.java
@@ -0,0 +1,171 @@
+/*
+ *
+ */
+package comrel.diagram.edit.commands;
+
+import org.eclipse.core.commands.ExecutionException;
+import org.eclipse.core.runtime.IAdaptable;
+import org.eclipse.core.runtime.IProgressMonitor;
+import org.eclipse.emf.ecore.EObject;
+import org.eclipse.gmf.runtime.common.core.command.CommandResult;
+import org.eclipse.gmf.runtime.emf.type.core.commands.EditElementCommand;
+import org.eclipse.gmf.runtime.emf.type.core.requests.ReorientRelationshipRequest;
+
+import comrel.CompositeRefactoring;
+import comrel.MultiPort;
+import comrel.MultiSinglePortMapping;
+import comrel.SingleInputPort;
+import comrel.diagram.edit.policies.ComrelBaseItemSemanticEditPolicy;
+
+/**
+ * @generated
+ */
+public class MultiSinglePortMappingReorientCommand extends EditElementCommand {
+
+ /**
+ * @generated
+ */
+ private final int reorientDirection;
+
+ /**
+ * @generated
+ */
+ private final EObject oldEnd;
+
+ /**
+ * @generated
+ */
+ private final EObject newEnd;
+
+ /**
+ * @generated
+ */
+ public MultiSinglePortMappingReorientCommand(
+ ReorientRelationshipRequest request) {
+ super(request.getLabel(), request.getRelationship(), request);
+ reorientDirection = request.getDirection();
+ oldEnd = request.getOldRelationshipEnd();
+ newEnd = request.getNewRelationshipEnd();
+ }
+
+ /**
+ * @generated
+ */
+ public boolean canExecute() {
+ if (false == getElementToEdit() instanceof MultiSinglePortMapping) {
+ return false;
+ }
+ if (reorientDirection == ReorientRelationshipRequest.REORIENT_SOURCE) {
+ return canReorientSource();
+ }
+ if (reorientDirection == ReorientRelationshipRequest.REORIENT_TARGET) {
+ return canReorientTarget();
+ }
+ return false;
+ }
+
+ /**
+ * @generated
+ */
+ protected boolean canReorientSource() {
+ if (!(oldEnd instanceof MultiPort && newEnd instanceof MultiPort)) {
+ return false;
+ }
+ SingleInputPort target = getLink().getTarget();
+ if (!(getLink().eContainer() instanceof CompositeRefactoring)) {
+ return false;
+ }
+ CompositeRefactoring container = (CompositeRefactoring) getLink()
+ .eContainer();
+ return ComrelBaseItemSemanticEditPolicy.getLinkConstraints()
+ .canExistMultiSinglePortMapping_4003(container, getLink(),
+ getNewSource(), target);
+ }
+
+ /**
+ * @generated
+ */
+ protected boolean canReorientTarget() {
+ if (!(oldEnd instanceof SingleInputPort && newEnd instanceof SingleInputPort)) {
+ return false;
+ }
+ MultiPort source = getLink().getSource();
+ if (!(getLink().eContainer() instanceof CompositeRefactoring)) {
+ return false;
+ }
+ CompositeRefactoring container = (CompositeRefactoring) getLink()
+ .eContainer();
+ return ComrelBaseItemSemanticEditPolicy.getLinkConstraints()
+ .canExistMultiSinglePortMapping_4003(container, getLink(),
+ source, getNewTarget());
+ }
+
+ /**
+ * @generated
+ */
+ protected CommandResult doExecuteWithResult(IProgressMonitor monitor,
+ IAdaptable info) throws ExecutionException {
+ if (!canExecute()) {
+ throw new ExecutionException(
+ "Invalid arguments in reorient link command"); //$NON-NLS-1$
+ }
+ if (reorientDirection == ReorientRelationshipRequest.REORIENT_SOURCE) {
+ return reorientSource();
+ }
+ if (reorientDirection == ReorientRelationshipRequest.REORIENT_TARGET) {
+ return reorientTarget();
+ }
+ throw new IllegalStateException();
+ }
+
+ /**
+ * @generated
+ */
+ protected CommandResult reorientSource() throws ExecutionException {
+ getLink().setSource(getNewSource());
+ return CommandResult.newOKCommandResult(getLink());
+ }
+
+ /**
+ * @generated
+ */
+ protected CommandResult reorientTarget() throws ExecutionException {
+ getLink().setTarget(getNewTarget());
+ return CommandResult.newOKCommandResult(getLink());
+ }
+
+ /**
+ * @generated
+ */
+ protected MultiSinglePortMapping getLink() {
+ return (MultiSinglePortMapping) getElementToEdit();
+ }
+
+ /**
+ * @generated
+ */
+ protected MultiPort getOldSource() {
+ return (MultiPort) oldEnd;
+ }
+
+ /**
+ * @generated
+ */
+ protected MultiPort getNewSource() {
+ return (MultiPort) newEnd;
+ }
+
+ /**
+ * @generated
+ */
+ protected SingleInputPort getOldTarget() {
+ return (SingleInputPort) oldEnd;
+ }
+
+ /**
+ * @generated
+ */
+ protected SingleInputPort getNewTarget() {
+ return (SingleInputPort) newEnd;
+ }
+}
diff --git a/org.eclipse.emf.refactor.comrel.diagram/src/comrel/diagram/edit/commands/ParallelQueuedUnit2CreateCommand.java b/org.eclipse.emf.refactor.comrel.diagram/src/comrel/diagram/edit/commands/ParallelQueuedUnit2CreateCommand.java
new file mode 100644
index 0000000..6137256
--- /dev/null
+++ b/org.eclipse.emf.refactor.comrel.diagram/src/comrel/diagram/edit/commands/ParallelQueuedUnit2CreateCommand.java
@@ -0,0 +1,96 @@
+/*
+ *
+ */
+package comrel.diagram.edit.commands;
+
+import org.eclipse.core.commands.ExecutionException;
+import org.eclipse.core.runtime.IAdaptable;
+import org.eclipse.core.runtime.IProgressMonitor;
+import org.eclipse.emf.ecore.EObject;
+import org.eclipse.gmf.runtime.common.core.command.CommandResult;
+import org.eclipse.gmf.runtime.common.core.command.ICommand;
+import org.eclipse.gmf.runtime.emf.type.core.IElementType;
+import org.eclipse.gmf.runtime.emf.type.core.commands.EditElementCommand;
+import org.eclipse.gmf.runtime.emf.type.core.requests.ConfigureRequest;
+import org.eclipse.gmf.runtime.emf.type.core.requests.CreateElementRequest;
+import org.eclipse.gmf.runtime.notation.View;
+
+import comrel.CartesianQueuedUnit;
+import comrel.ComrelFactory;
+import comrel.ParallelQueuedUnit;
+
+/**
+ * @generated
+ */
+public class ParallelQueuedUnit2CreateCommand extends EditElementCommand {
+
+ /**
+ * @generated
+ */
+ public ParallelQueuedUnit2CreateCommand(CreateElementRequest req) {
+ super(req.getLabel(), null, req);
+ }
+
+ /**
+ * FIXME: replace with setElementToEdit()
+ * @generated
+ */
+ protected EObject getElementToEdit() {
+ EObject container = ((CreateElementRequest) getRequest())
+ .getContainer();
+ if (container instanceof View) {
+ container = ((View) container).getElement();
+ }
+ return container;
+ }
+
+ /**
+ * @generated
+ */
+ public boolean canExecute() {
+ CartesianQueuedUnit container = (CartesianQueuedUnit) getElementToEdit();
+ if (container.getRefactoringUnit() != null) {
+ return false;
+ }
+ return true;
+
+ }
+
+ /**
+ * @generated NOT
+ */
+ protected CommandResult doExecuteWithResult(IProgressMonitor monitor,
+ IAdaptable info) throws ExecutionException {
+ ParallelQueuedUnit newElement = ComrelFactory.eINSTANCE
+ .createParallelQueuedUnit();
+ newElement.init();
+ CartesianQueuedUnit owner = (CartesianQueuedUnit) getElementToEdit();
+ owner.setRefactoringUnit(newElement);
+
+ doConfigure(newElement, monitor, info);
+
+ ((CreateElementRequest) getRequest()).setNewElement(newElement);
+ return CommandResult.newOKCommandResult(newElement);
+ }
+
+ /**
+ * @generated
+ */
+ protected void doConfigure(ParallelQueuedUnit newElement,
+ IProgressMonitor monitor, IAdaptable info)
+ throws ExecutionException {
+ IElementType elementType = ((CreateElementRequest) getRequest())
+ .getElementType();
+ ConfigureRequest configureRequest = new ConfigureRequest(
+ getEditingDomain(), newElement, elementType);
+ configureRequest.setClientContext(((CreateElementRequest) getRequest())
+ .getClientContext());
+ configureRequest.addParameters(getRequest().getParameters());
+ ICommand configureCommand = elementType
+ .getEditCommand(configureRequest);
+ if (configureCommand != null && configureCommand.canExecute()) {
+ configureCommand.execute(monitor, info);
+ }
+ }
+
+}
diff --git a/org.eclipse.emf.refactor.comrel.diagram/src/comrel/diagram/edit/commands/ParallelQueuedUnit3CreateCommand.java b/org.eclipse.emf.refactor.comrel.diagram/src/comrel/diagram/edit/commands/ParallelQueuedUnit3CreateCommand.java
new file mode 100644
index 0000000..3db9c1e
--- /dev/null
+++ b/org.eclipse.emf.refactor.comrel.diagram/src/comrel/diagram/edit/commands/ParallelQueuedUnit3CreateCommand.java
@@ -0,0 +1,96 @@
+/*
+ *
+ */
+package comrel.diagram.edit.commands;
+
+import org.eclipse.core.commands.ExecutionException;
+import org.eclipse.core.runtime.IAdaptable;
+import org.eclipse.core.runtime.IProgressMonitor;
+import org.eclipse.emf.ecore.EObject;
+import org.eclipse.gmf.runtime.common.core.command.CommandResult;
+import org.eclipse.gmf.runtime.common.core.command.ICommand;
+import org.eclipse.gmf.runtime.emf.type.core.IElementType;
+import org.eclipse.gmf.runtime.emf.type.core.commands.EditElementCommand;
+import org.eclipse.gmf.runtime.emf.type.core.requests.ConfigureRequest;
+import org.eclipse.gmf.runtime.emf.type.core.requests.CreateElementRequest;
+import org.eclipse.gmf.runtime.notation.View;
+
+import comrel.ComrelFactory;
+import comrel.ConditionalUnit;
+import comrel.ParallelQueuedUnit;
+
+/**
+ * @generated
+ */
+public class ParallelQueuedUnit3CreateCommand extends EditElementCommand {
+
+ /**
+ * @generated
+ */
+ public ParallelQueuedUnit3CreateCommand(CreateElementRequest req) {
+ super(req.getLabel(), null, req);
+ }
+
+ /**
+ * FIXME: replace with setElementToEdit()
+ * @generated
+ */
+ protected EObject getElementToEdit() {
+ EObject container = ((CreateElementRequest) getRequest())
+ .getContainer();
+ if (container instanceof View) {
+ container = ((View) container).getElement();
+ }
+ return container;
+ }
+
+ /**
+ * @generated
+ */
+ public boolean canExecute() {
+ ConditionalUnit container = (ConditionalUnit) getElementToEdit();
+ if (container.getThen() != null) {
+ return false;
+ }
+ return true;
+
+ }
+
+ /**
+ * @generated NOT
+ */
+ protected CommandResult doExecuteWithResult(IProgressMonitor monitor,
+ IAdaptable info) throws ExecutionException {
+ ParallelQueuedUnit newElement = ComrelFactory.eINSTANCE
+ .createParallelQueuedUnit();
+ newElement.init();
+ ConditionalUnit owner = (ConditionalUnit) getElementToEdit();
+ owner.setThen(newElement);
+
+ doConfigure(newElement, monitor, info);
+
+ ((CreateElementRequest) getRequest()).setNewElement(newElement);
+ return CommandResult.newOKCommandResult(newElement);
+ }
+
+ /**
+ * @generated
+ */
+ protected void doConfigure(ParallelQueuedUnit newElement,
+ IProgressMonitor monitor, IAdaptable info)
+ throws ExecutionException {
+ IElementType elementType = ((CreateElementRequest) getRequest())
+ .getElementType();
+ ConfigureRequest configureRequest = new ConfigureRequest(
+ getEditingDomain(), newElement, elementType);
+ configureRequest.setClientContext(((CreateElementRequest) getRequest())
+ .getClientContext());
+ configureRequest.addParameters(getRequest().getParameters());
+ ICommand configureCommand = elementType
+ .getEditCommand(configureRequest);
+ if (configureCommand != null && configureCommand.canExecute()) {
+ configureCommand.execute(monitor, info);
+ }
+ }
+
+}
diff --git a/org.eclipse.emf.refactor.comrel.diagram/src/comrel/diagram/edit/commands/ParallelQueuedUnit4CreateCommand.java b/org.eclipse.emf.refactor.comrel.diagram/src/comrel/diagram/edit/commands/ParallelQueuedUnit4CreateCommand.java
new file mode 100644
index 0000000..9eaac37
--- /dev/null
+++ b/org.eclipse.emf.refactor.comrel.diagram/src/comrel/diagram/edit/commands/ParallelQueuedUnit4CreateCommand.java
@@ -0,0 +1,95 @@
+/*
+ *
+ */
+package comrel.diagram.edit.commands;
+
+import org.eclipse.core.commands.ExecutionException;
+import org.eclipse.core.runtime.IAdaptable;
+import org.eclipse.core.runtime.IProgressMonitor;
+import org.eclipse.emf.ecore.EObject;
+import org.eclipse.gmf.runtime.common.core.command.CommandResult;
+import org.eclipse.gmf.runtime.common.core.command.ICommand;
+import org.eclipse.gmf.runtime.emf.type.core.IElementType;
+import org.eclipse.gmf.runtime.emf.type.core.commands.EditElementCommand;
+import org.eclipse.gmf.runtime.emf.type.core.requests.ConfigureRequest;
+import org.eclipse.gmf.runtime.emf.type.core.requests.CreateElementRequest;
+import org.eclipse.gmf.runtime.notation.View;
+
+import comrel.ComrelFactory;
+import comrel.ParallelQueuedUnit;
+
+/**
+ * @generated
+ */
+public class ParallelQueuedUnit4CreateCommand extends EditElementCommand {
+
+ /**
+ * @generated
+ */
+ public ParallelQueuedUnit4CreateCommand(CreateElementRequest req) {
+ super(req.getLabel(), null, req);
+ }
+
+ /**
+ * FIXME: replace with setElementToEdit()
+ * @generated
+ */
+ protected EObject getElementToEdit() {
+ EObject container = ((CreateElementRequest) getRequest())
+ .getContainer();
+ if (container instanceof View) {
+ container = ((View) container).getElement();
+ }
+ return container;
+ }
+
+ /**
+ * @generated
+ */
+ public boolean canExecute() {
+ ParallelQueuedUnit container = (ParallelQueuedUnit) getElementToEdit();
+ if (container.getRefactoringUnits() != null) {
+ return false;
+ }
+ return true;
+
+ }
+
+ /**
+ * @generated NOT
+ */
+ protected CommandResult doExecuteWithResult(IProgressMonitor monitor,
+ IAdaptable info) throws ExecutionException {
+ ParallelQueuedUnit newElement = ComrelFactory.eINSTANCE
+ .createParallelQueuedUnit();
+ newElement.init();
+ ParallelQueuedUnit owner = (ParallelQueuedUnit) getElementToEdit();
+ owner.setRefactoringUnits(newElement);
+
+ doConfigure(newElement, monitor, info);
+
+ ((CreateElementRequest) getRequest()).setNewElement(newElement);
+ return CommandResult.newOKCommandResult(newElement);
+ }
+
+ /**
+ * @generated
+ */
+ protected void doConfigure(ParallelQueuedUnit newElement,
+ IProgressMonitor monitor, IAdaptable info)
+ throws ExecutionException {
+ IElementType elementType = ((CreateElementRequest) getRequest())
+ .getElementType();
+ ConfigureRequest configureRequest = new ConfigureRequest(
+ getEditingDomain(), newElement, elementType);
+ configureRequest.setClientContext(((CreateElementRequest) getRequest())
+ .getClientContext());
+ configureRequest.addParameters(getRequest().getParameters());
+ ICommand configureCommand = elementType
+ .getEditCommand(configureRequest);
+ if (configureCommand != null && configureCommand.canExecute()) {
+ configureCommand.execute(monitor, info);
+ }
+ }
+
+}
diff --git a/org.eclipse.emf.refactor.comrel.diagram/src/comrel/diagram/edit/commands/ParallelQueuedUnit5CreateCommand.java b/org.eclipse.emf.refactor.comrel.diagram/src/comrel/diagram/edit/commands/ParallelQueuedUnit5CreateCommand.java
new file mode 100644
index 0000000..25e8263
--- /dev/null
+++ b/org.eclipse.emf.refactor.comrel.diagram/src/comrel/diagram/edit/commands/ParallelQueuedUnit5CreateCommand.java
@@ -0,0 +1,96 @@
+/*
+ *
+ */
+package comrel.diagram.edit.commands;
+
+import org.eclipse.core.commands.ExecutionException;
+import org.eclipse.core.runtime.IAdaptable;
+import org.eclipse.core.runtime.IProgressMonitor;
+import org.eclipse.emf.ecore.EObject;
+import org.eclipse.gmf.runtime.common.core.command.CommandResult;
+import org.eclipse.gmf.runtime.common.core.command.ICommand;
+import org.eclipse.gmf.runtime.emf.type.core.IElementType;
+import org.eclipse.gmf.runtime.emf.type.core.commands.EditElementCommand;
+import org.eclipse.gmf.runtime.emf.type.core.requests.ConfigureRequest;
+import org.eclipse.gmf.runtime.emf.type.core.requests.CreateElementRequest;
+import org.eclipse.gmf.runtime.notation.View;
+
+import comrel.ComrelFactory;
+import comrel.ParallelQueuedUnit;
+import comrel.SingleQueuedUnit;
+
+/**
+ * @generated
+ */
+public class ParallelQueuedUnit5CreateCommand extends EditElementCommand {
+
+ /**
+ * @generated
+ */
+ public ParallelQueuedUnit5CreateCommand(CreateElementRequest req) {
+ super(req.getLabel(), null, req);
+ }
+
+ /**
+ * FIXME: replace with setElementToEdit()
+ * @generated
+ */
+ protected EObject getElementToEdit() {
+ EObject container = ((CreateElementRequest) getRequest())
+ .getContainer();
+ if (container instanceof View) {
+ container = ((View) container).getElement();
+ }
+ return container;
+ }
+
+ /**
+ * @generated
+ */
+ public boolean canExecute() {
+ SingleQueuedUnit container = (SingleQueuedUnit) getElementToEdit();
+ if (container.getRefactoringUnit() != null) {
+ return false;
+ }
+ return true;
+
+ }
+
+ /**
+ * @generated NOT
+ */
+ protected CommandResult doExecuteWithResult(IProgressMonitor monitor,
+ IAdaptable info) throws ExecutionException {
+ ParallelQueuedUnit newElement = ComrelFactory.eINSTANCE
+ .createParallelQueuedUnit();
+ newElement.init();
+ SingleQueuedUnit owner = (SingleQueuedUnit) getElementToEdit();
+ owner.setRefactoringUnit(newElement);
+
+ doConfigure(newElement, monitor, info);
+
+ ((CreateElementRequest) getRequest()).setNewElement(newElement);
+ return CommandResult.newOKCommandResult(newElement);
+ }
+
+ /**
+ * @generated
+ */
+ protected void doConfigure(ParallelQueuedUnit newElement,
+ IProgressMonitor monitor, IAdaptable info)
+ throws ExecutionException {
+ IElementType elementType = ((CreateElementRequest) getRequest())
+ .getElementType();
+ ConfigureRequest configureRequest = new ConfigureRequest(
+ getEditingDomain(), newElement, elementType);
+ configureRequest.setClientContext(((CreateElementRequest) getRequest())
+ .getClientContext());
+ configureRequest.addParameters(getRequest().getParameters());
+ ICommand configureCommand = elementType
+ .getEditCommand(configureRequest);
+ if (configureCommand != null && configureCommand.canExecute()) {
+ configureCommand.execute(monitor, info);
+ }
+ }
+
+}
diff --git a/org.eclipse.emf.refactor.comrel.diagram/src/comrel/diagram/edit/commands/ParallelQueuedUnit6CreateCommand.java b/org.eclipse.emf.refactor.comrel.diagram/src/comrel/diagram/edit/commands/ParallelQueuedUnit6CreateCommand.java
new file mode 100644
index 0000000..94ab2fd
--- /dev/null
+++ b/org.eclipse.emf.refactor.comrel.diagram/src/comrel/diagram/edit/commands/ParallelQueuedUnit6CreateCommand.java
@@ -0,0 +1,92 @@
+/*
+ *
+ */
+package comrel.diagram.edit.commands;
+
+import org.eclipse.core.commands.ExecutionException;
+import org.eclipse.core.runtime.IAdaptable;
+import org.eclipse.core.runtime.IProgressMonitor;
+import org.eclipse.emf.ecore.EObject;
+import org.eclipse.gmf.runtime.common.core.command.CommandResult;
+import org.eclipse.gmf.runtime.common.core.command.ICommand;
+import org.eclipse.gmf.runtime.emf.type.core.IElementType;
+import org.eclipse.gmf.runtime.emf.type.core.commands.EditElementCommand;
+import org.eclipse.gmf.runtime.emf.type.core.requests.ConfigureRequest;
+import org.eclipse.gmf.runtime.emf.type.core.requests.CreateElementRequest;
+import org.eclipse.gmf.runtime.notation.View;
+
+import comrel.ComrelFactory;
+import comrel.ParallelQueuedUnit;
+import comrel.SequentialUnit;
+
+/**
+ * @generated
+ */
+public class ParallelQueuedUnit6CreateCommand extends EditElementCommand {
+
+ /**
+ * @generated
+ */
+ public ParallelQueuedUnit6CreateCommand(CreateElementRequest req) {
+ super(req.getLabel(), null, req);
+ }
+
+ /**
+ * FIXME: replace with setElementToEdit()
+ * @generated
+ */
+ protected EObject getElementToEdit() {
+ EObject container = ((CreateElementRequest) getRequest())
+ .getContainer();
+ if (container instanceof View) {
+ container = ((View) container).getElement();
+ }
+ return container;
+ }
+
+ /**
+ * @generated
+ */
+ public boolean canExecute() {
+ return true;
+
+ }
+
+ /**
+ * @generated NOT
+ */
+ protected CommandResult doExecuteWithResult(IProgressMonitor monitor,
+ IAdaptable info) throws ExecutionException {
+ ParallelQueuedUnit newElement = ComrelFactory.eINSTANCE
+ .createParallelQueuedUnit();
+ newElement.init();
+ SequentialUnit owner = (SequentialUnit) getElementToEdit();
+ owner.getRefactoringUnits().add(newElement);
+ owner.updateSeqExecutionOrder();
+ doConfigure(newElement, monitor, info);
+
+ ((CreateElementRequest) getRequest()).setNewElement(newElement);
+ return CommandResult.newOKCommandResult(newElement);
+ }
+
+ /**
+ * @generated
+ */
+ protected void doConfigure(ParallelQueuedUnit newElement,
+ IProgressMonitor monitor, IAdaptable info)
+ throws ExecutionException {
+ IElementType elementType = ((CreateElementRequest) getRequest())
+ .getElementType();
+ ConfigureRequest configureRequest = new ConfigureRequest(
+ getEditingDomain(), newElement, elementType);
+ configureRequest.setClientContext(((CreateElementRequest) getRequest())
+ .getClientContext());
+ configureRequest.addParameters(getRequest().getParameters());
+ ICommand configureCommand = elementType
+ .getEditCommand(configureRequest);
+ if (configureCommand != null && configureCommand.canExecute()) {
+ configureCommand.execute(monitor, info);
+ }
+ }
+
+}
diff --git a/org.eclipse.emf.refactor.comrel.diagram/src/comrel/diagram/edit/commands/ParallelQueuedUnit7CreateCommand.java b/org.eclipse.emf.refactor.comrel.diagram/src/comrel/diagram/edit/commands/ParallelQueuedUnit7CreateCommand.java
new file mode 100644
index 0000000..7744b8a
--- /dev/null
+++ b/org.eclipse.emf.refactor.comrel.diagram/src/comrel/diagram/edit/commands/ParallelQueuedUnit7CreateCommand.java
@@ -0,0 +1,96 @@
+/*
+ *
+ */
+package comrel.diagram.edit.commands;
+
+import org.eclipse.core.commands.ExecutionException;
+import org.eclipse.core.runtime.IAdaptable;
+import org.eclipse.core.runtime.IProgressMonitor;
+import org.eclipse.emf.ecore.EObject;
+import org.eclipse.gmf.runtime.common.core.command.CommandResult;
+import org.eclipse.gmf.runtime.common.core.command.ICommand;
+import org.eclipse.gmf.runtime.emf.type.core.IElementType;
+import org.eclipse.gmf.runtime.emf.type.core.commands.EditElementCommand;
+import org.eclipse.gmf.runtime.emf.type.core.requests.ConfigureRequest;
+import org.eclipse.gmf.runtime.emf.type.core.requests.CreateElementRequest;
+import org.eclipse.gmf.runtime.notation.View;
+
+import comrel.ComrelFactory;
+import comrel.ConditionalUnit;
+import comrel.ParallelQueuedUnit;
+
+/**
+ * @generated
+ */
+public class ParallelQueuedUnit7CreateCommand extends EditElementCommand {
+
+ /**
+ * @generated
+ */
+ public ParallelQueuedUnit7CreateCommand(CreateElementRequest req) {
+ super(req.getLabel(), null, req);
+ }
+
+ /**
+ * FIXME: replace with setElementToEdit()
+ * @generated
+ */
+ protected EObject getElementToEdit() {
+ EObject container = ((CreateElementRequest) getRequest())
+ .getContainer();
+ if (container instanceof View) {
+ container = ((View) container).getElement();
+ }
+ return container;
+ }
+
+ /**
+ * @generated
+ */
+ public boolean canExecute() {
+ ConditionalUnit container = (ConditionalUnit) getElementToEdit();
+ if (container.getElse() != null) {
+ return false;
+ }
+ return true;
+
+ }
+
+ /**
+ * @generated NOT
+ */
+ protected CommandResult doExecuteWithResult(IProgressMonitor monitor,
+ IAdaptable info) throws ExecutionException {
+ ParallelQueuedUnit newElement = ComrelFactory.eINSTANCE
+ .createParallelQueuedUnit();
+ newElement.init();
+ ConditionalUnit owner = (ConditionalUnit) getElementToEdit();
+ owner.setElse(newElement);
+
+ doConfigure(newElement, monitor, info);
+
+ ((CreateElementRequest) getRequest()).setNewElement(newElement);
+ return CommandResult.newOKCommandResult(newElement);
+ }
+
+ /**
+ * @generated
+ */
+ protected void doConfigure(ParallelQueuedUnit newElement,
+ IProgressMonitor monitor, IAdaptable info)
+ throws ExecutionException {
+ IElementType elementType = ((CreateElementRequest) getRequest())
+ .getElementType();
+ ConfigureRequest configureRequest = new ConfigureRequest(
+ getEditingDomain(), newElement, elementType);
+ configureRequest.setClientContext(((CreateElementRequest) getRequest())
+ .getClientContext());
+ configureRequest.addParameters(getRequest().getParameters());
+ ICommand configureCommand = elementType
+ .getEditCommand(configureRequest);
+ if (configureCommand != null && configureCommand.canExecute()) {
+ configureCommand.execute(monitor, info);
+ }
+ }
+
+}
diff --git a/org.eclipse.emf.refactor.comrel.diagram/src/comrel/diagram/edit/commands/ParallelQueuedUnitCreateCommand.java b/org.eclipse.emf.refactor.comrel.diagram/src/comrel/diagram/edit/commands/ParallelQueuedUnitCreateCommand.java
new file mode 100644
index 0000000..0409a2e
--- /dev/null
+++ b/org.eclipse.emf.refactor.comrel.diagram/src/comrel/diagram/edit/commands/ParallelQueuedUnitCreateCommand.java
@@ -0,0 +1,96 @@
+/*
+ *
+ */
+package comrel.diagram.edit.commands;
+
+import org.eclipse.core.commands.ExecutionException;
+import org.eclipse.core.runtime.IAdaptable;
+import org.eclipse.core.runtime.IProgressMonitor;
+import org.eclipse.emf.ecore.EObject;
+import org.eclipse.gmf.runtime.common.core.command.CommandResult;
+import org.eclipse.gmf.runtime.common.core.command.ICommand;
+import org.eclipse.gmf.runtime.emf.type.core.IElementType;
+import org.eclipse.gmf.runtime.emf.type.core.commands.EditElementCommand;
+import org.eclipse.gmf.runtime.emf.type.core.requests.ConfigureRequest;
+import org.eclipse.gmf.runtime.emf.type.core.requests.CreateElementRequest;
+import org.eclipse.gmf.runtime.notation.View;
+
+import comrel.CompositeRefactoring;
+import comrel.ComrelFactory;
+import comrel.ParallelQueuedUnit;
+
+/**
+ * @generated
+ */
+public class ParallelQueuedUnitCreateCommand extends EditElementCommand {
+
+ /**
+ * @generated
+ */
+ public ParallelQueuedUnitCreateCommand(CreateElementRequest req) {
+ super(req.getLabel(), null, req);
+ }
+
+ /**
+ * FIXME: replace with setElementToEdit()
+ * @generated
+ */
+ protected EObject getElementToEdit() {
+ EObject container = ((CreateElementRequest) getRequest())
+ .getContainer();
+ if (container instanceof View) {
+ container = ((View) container).getElement();
+ }
+ return container;
+ }
+
+ /**
+ * @generated
+ */
+ public boolean canExecute() {
+ CompositeRefactoring container = (CompositeRefactoring) getElementToEdit();
+ if (container.getMainRefactoringUnit() != null) {
+ return false;
+ }
+ return true;
+
+ }
+
+ /**
+ * @generated NOT
+ */
+ protected CommandResult doExecuteWithResult(IProgressMonitor monitor,
+ IAdaptable info) throws ExecutionException {
+ ParallelQueuedUnit newElement = ComrelFactory.eINSTANCE
+ .createParallelQueuedUnit();
+ newElement.init();
+ CompositeRefactoring owner = (CompositeRefactoring) getElementToEdit();
+ owner.setMainRefactoringUnit(newElement);
+
+ doConfigure(newElement, monitor, info);
+
+ ((CreateElementRequest) getRequest()).setNewElement(newElement);
+ return CommandResult.newOKCommandResult(newElement);
+ }
+
+ /**
+ * @generated
+ */
+ protected void doConfigure(ParallelQueuedUnit newElement,
+ IProgressMonitor monitor, IAdaptable info)
+ throws ExecutionException {
+ IElementType elementType = ((CreateElementRequest) getRequest())
+ .getElementType();
+ ConfigureRequest configureRequest = new ConfigureRequest(
+ getEditingDomain(), newElement, elementType);
+ configureRequest.setClientContext(((CreateElementRequest) getRequest())
+ .getClientContext());
+ configureRequest.addParameters(getRequest().getParameters());
+ ICommand configureCommand = elementType
+ .getEditCommand(configureRequest);
+ if (configureCommand != null && configureCommand.canExecute()) {
+ configureCommand.execute(monitor, info);
+ }
+ }
+
+}
diff --git a/org.eclipse.emf.refactor.comrel.diagram/src/comrel/diagram/edit/commands/SequentialUnit2CreateCommand.java b/org.eclipse.emf.refactor.comrel.diagram/src/comrel/diagram/edit/commands/SequentialUnit2CreateCommand.java
new file mode 100644
index 0000000..2fea1d9
--- /dev/null
+++ b/org.eclipse.emf.refactor.comrel.diagram/src/comrel/diagram/edit/commands/SequentialUnit2CreateCommand.java
@@ -0,0 +1,96 @@
+/*
+ *
+ */
+package comrel.diagram.edit.commands;
+
+import org.eclipse.core.commands.ExecutionException;
+import org.eclipse.core.runtime.IAdaptable;
+import org.eclipse.core.runtime.IProgressMonitor;
+import org.eclipse.emf.ecore.EObject;
+import org.eclipse.gmf.runtime.common.core.command.CommandResult;
+import org.eclipse.gmf.runtime.common.core.command.ICommand;
+import org.eclipse.gmf.runtime.emf.type.core.IElementType;
+import org.eclipse.gmf.runtime.emf.type.core.commands.EditElementCommand;
+import org.eclipse.gmf.runtime.emf.type.core.requests.ConfigureRequest;
+import org.eclipse.gmf.runtime.emf.type.core.requests.CreateElementRequest;
+import org.eclipse.gmf.runtime.notation.View;
+
+import comrel.CartesianQueuedUnit;
+import comrel.ComrelFactory;
+import comrel.SequentialUnit;
+
+/**
+ * @generated
+ */
+public class SequentialUnit2CreateCommand extends EditElementCommand {
+
+ /**
+ * @generated
+ */
+ public SequentialUnit2CreateCommand(CreateElementRequest req) {
+ super(req.getLabel(), null, req);
+ }
+
+ /**
+ * FIXME: replace with setElementToEdit()
+ * @generated
+ */
+ protected EObject getElementToEdit() {
+ EObject container = ((CreateElementRequest) getRequest())
+ .getContainer();
+ if (container instanceof View) {
+ container = ((View) container).getElement();
+ }
+ return container;
+ }
+
+ /**
+ * @generated
+ */
+ public boolean canExecute() {
+ CartesianQueuedUnit container = (CartesianQueuedUnit) getElementToEdit();
+ if (container.getRefactoringUnit() != null) {
+ return false;
+ }
+ return true;
+
+ }
+
+ /**
+ * @generated
+ */
+ protected CommandResult doExecuteWithResult(IProgressMonitor monitor,
+ IAdaptable info) throws ExecutionException {
+ SequentialUnit newElement = ComrelFactory.eINSTANCE
+ .createSequentialUnit();
+
+ CartesianQueuedUnit owner = (CartesianQueuedUnit) getElementToEdit();
+ owner.setRefactoringUnit(newElement);
+
+ doConfigure(newElement, monitor, info);
+
+ ((CreateElementRequest) getRequest()).setNewElement(newElement);
+ return CommandResult.newOKCommandResult(newElement);
+ }
+
+ /**
+ * @generated
+ */
+ protected void doConfigure(SequentialUnit newElement,
+ IProgressMonitor monitor, IAdaptable info)
+ throws ExecutionException {
+ IElementType elementType = ((CreateElementRequest) getRequest())
+ .getElementType();
+ ConfigureRequest configureRequest = new ConfigureRequest(
+ getEditingDomain(), newElement, elementType);
+ configureRequest.setClientContext(((CreateElementRequest) getRequest())
+ .getClientContext());
+ configureRequest.addParameters(getRequest().getParameters());
+ ICommand configureCommand = elementType
+ .getEditCommand(configureRequest);
+ if (configureCommand != null && configureCommand.canExecute()) {
+ configureCommand.execute(monitor, info);
+ }
+ }
+
+}
diff --git a/org.eclipse.emf.refactor.comrel.diagram/src/comrel/diagram/edit/commands/SequentialUnit3CreateCommand.java b/org.eclipse.emf.refactor.comrel.diagram/src/comrel/diagram/edit/commands/SequentialUnit3CreateCommand.java
new file mode 100644
index 0000000..525889c
--- /dev/null
+++ b/org.eclipse.emf.refactor.comrel.diagram/src/comrel/diagram/edit/commands/SequentialUnit3CreateCommand.java
@@ -0,0 +1,96 @@
+/*
+ *
+ */
+package comrel.diagram.edit.commands;
+
+import org.eclipse.core.commands.ExecutionException;
+import org.eclipse.core.runtime.IAdaptable;
+import org.eclipse.core.runtime.IProgressMonitor;
+import org.eclipse.emf.ecore.EObject;
+import org.eclipse.gmf.runtime.common.core.command.CommandResult;
+import org.eclipse.gmf.runtime.common.core.command.ICommand;
+import org.eclipse.gmf.runtime.emf.type.core.IElementType;
+import org.eclipse.gmf.runtime.emf.type.core.commands.EditElementCommand;
+import org.eclipse.gmf.runtime.emf.type.core.requests.ConfigureRequest;
+import org.eclipse.gmf.runtime.emf.type.core.requests.CreateElementRequest;
+import org.eclipse.gmf.runtime.notation.View;
+
+import comrel.ComrelFactory;
+import comrel.ParallelQueuedUnit;
+import comrel.SequentialUnit;
+
+/**
+ * @generated
+ */
+public class SequentialUnit3CreateCommand extends EditElementCommand {
+
+ /**
+ * @generated
+ */
+ public SequentialUnit3CreateCommand(CreateElementRequest req) {
+ super(req.getLabel(), null, req);
+ }
+
+ /**
+ * FIXME: replace with setElementToEdit()
+ * @generated
+ */
+ protected EObject getElementToEdit() {
+ EObject container = ((CreateElementRequest) getRequest())
+ .getContainer();
+ if (container instanceof View) {
+ container = ((View) container).getElement();
+ }
+ return container;
+ }
+
+ /**
+ * @generated
+ */
+ public boolean canExecute() {
+ ParallelQueuedUnit container = (ParallelQueuedUnit) getElementToEdit();
+ if (container.getRefactoringUnits() != null) {
+ return false;
+ }
+ return true;
+
+ }
+
+ /**
+ * @generated
+ */
+ protected CommandResult doExecuteWithResult(IProgressMonitor monitor,
+ IAdaptable info) throws ExecutionException {
+ SequentialUnit newElement = ComrelFactory.eINSTANCE
+ .createSequentialUnit();
+
+ ParallelQueuedUnit owner = (ParallelQueuedUnit) getElementToEdit();
+ owner.setRefactoringUnits(newElement);
+
+ doConfigure(newElement, monitor, info);
+
+ ((CreateElementRequest) getRequest()).setNewElement(newElement);
+ return CommandResult.newOKCommandResult(newElement);
+ }
+
+ /**
+ * @generated
+ */
+ protected void doConfigure(SequentialUnit newElement,
+ IProgressMonitor monitor, IAdaptable info)
+ throws ExecutionException {
+ IElementType elementType = ((CreateElementRequest) getRequest())
+ .getElementType();
+ ConfigureRequest configureRequest = new ConfigureRequest(
+ getEditingDomain(), newElement, elementType);
+ configureRequest.setClientContext(((CreateElementRequest) getRequest())
+ .getClientContext());
+ configureRequest.addParameters(getRequest().getParameters());
+ ICommand configureCommand = elementType
+ .getEditCommand(configureRequest);
+ if (configureCommand != null && configureCommand.canExecute()) {
+ configureCommand.execute(monitor, info);
+ }
+ }
+
+}
diff --git a/org.eclipse.emf.refactor.comrel.diagram/src/comrel/diagram/edit/commands/SequentialUnit4CreateCommand.java b/org.eclipse.emf.refactor.comrel.diagram/src/comrel/diagram/edit/commands/SequentialUnit4CreateCommand.java
new file mode 100644
index 0000000..7aaa287
--- /dev/null
+++ b/org.eclipse.emf.refactor.comrel.diagram/src/comrel/diagram/edit/commands/SequentialUnit4CreateCommand.java
@@ -0,0 +1,96 @@
+/*
+ *
+ */
+package comrel.diagram.edit.commands;
+
+import org.eclipse.core.commands.ExecutionException;
+import org.eclipse.core.runtime.IAdaptable;
+import org.eclipse.core.runtime.IProgressMonitor;
+import org.eclipse.emf.ecore.EObject;
+import org.eclipse.gmf.runtime.common.core.command.CommandResult;
+import org.eclipse.gmf.runtime.common.core.command.ICommand;
+import org.eclipse.gmf.runtime.emf.type.core.IElementType;
+import org.eclipse.gmf.runtime.emf.type.core.commands.EditElementCommand;
+import org.eclipse.gmf.runtime.emf.type.core.requests.ConfigureRequest;
+import org.eclipse.gmf.runtime.emf.type.core.requests.CreateElementRequest;
+import org.eclipse.gmf.runtime.notation.View;
+
+import comrel.ComrelFactory;
+import comrel.SequentialUnit;
+import comrel.SingleQueuedUnit;
+
+/**
+ * @generated
+ */
+public class SequentialUnit4CreateCommand extends EditElementCommand {
+
+ /**
+ * @generated
+ */
+ public SequentialUnit4CreateCommand(CreateElementRequest req) {
+ super(req.getLabel(), null, req);
+ }
+
+ /**
+ * FIXME: replace with setElementToEdit()
+ * @generated
+ */
+ protected EObject getElementToEdit() {
+ EObject container = ((CreateElementRequest) getRequest())
+ .getContainer();
+ if (container instanceof View) {
+ container = ((View) container).getElement();
+ }
+ return container;
+ }
+
+ /**
+ * @generated
+ */
+ public boolean canExecute() {
+ SingleQueuedUnit container = (SingleQueuedUnit) getElementToEdit();
+ if (container.getRefactoringUnit() != null) {
+ return false;
+ }
+ return true;
+
+ }
+
+ /**
+ * @generated
+ */
+ protected CommandResult doExecuteWithResult(IProgressMonitor monitor,
+ IAdaptable info) throws ExecutionException {
+ SequentialUnit newElement = ComrelFactory.eINSTANCE
+ .createSequentialUnit();
+
+ SingleQueuedUnit owner = (SingleQueuedUnit) getElementToEdit();
+ owner.setRefactoringUnit(newElement);
+
+ doConfigure(newElement, monitor, info);
+
+ ((CreateElementRequest) getRequest()).setNewElement(newElement);
+ return CommandResult.newOKCommandResult(newElement);
+ }
+
+ /**
+ * @generated
+ */
+ protected void doConfigure(SequentialUnit newElement,
+ IProgressMonitor monitor, IAdaptable info)
+ throws ExecutionException {
+ IElementType elementType = ((CreateElementRequest) getRequest())
+ .getElementType();
+ ConfigureRequest configureRequest = new ConfigureRequest(
+ getEditingDomain(), newElement, elementType);
+ configureRequest.setClientContext(((CreateElementRequest) getRequest())
+ .getClientContext());
+ configureRequest.addParameters(getRequest().getParameters());
+ ICommand configureCommand = elementType
+ .getEditCommand(configureRequest);
+ if (configureCommand != null && configureCommand.canExecute()) {
+ configureCommand.execute(monitor, info);
+ }
+ }
+
+}
diff --git a/org.eclipse.emf.refactor.comrel.diagram/src/comrel/diagram/edit/commands/SequentialUnit5CreateCommand.java b/org.eclipse.emf.refactor.comrel.diagram/src/comrel/diagram/edit/commands/SequentialUnit5CreateCommand.java
new file mode 100644
index 0000000..a403d49
--- /dev/null
+++ b/org.eclipse.emf.refactor.comrel.diagram/src/comrel/diagram/edit/commands/SequentialUnit5CreateCommand.java
@@ -0,0 +1,96 @@
+/*
+ *
+ */
+package comrel.diagram.edit.commands;
+
+import org.eclipse.core.commands.ExecutionException;
+import org.eclipse.core.runtime.IAdaptable;
+import org.eclipse.core.runtime.IProgressMonitor;
+import org.eclipse.emf.ecore.EObject;
+import org.eclipse.gmf.runtime.common.core.command.CommandResult;
+import org.eclipse.gmf.runtime.common.core.command.ICommand;
+import org.eclipse.gmf.runtime.emf.type.core.IElementType;
+import org.eclipse.gmf.runtime.emf.type.core.commands.EditElementCommand;
+import org.eclipse.gmf.runtime.emf.type.core.requests.ConfigureRequest;
+import org.eclipse.gmf.runtime.emf.type.core.requests.CreateElementRequest;
+import org.eclipse.gmf.runtime.notation.View;
+
+import comrel.ComrelFactory;
+import comrel.ConditionalUnit;
+import comrel.SequentialUnit;
+
+/**
+ * @generated
+ */
+public class SequentialUnit5CreateCommand extends EditElementCommand {
+
+ /**
+ * @generated
+ */
+ public SequentialUnit5CreateCommand(CreateElementRequest req) {
+ super(req.getLabel(), null, req);
+ }
+
+ /**
+ * FIXME: replace with setElementToEdit()
+ * @generated
+ */
+ protected EObject getElementToEdit() {
+ EObject container = ((CreateElementRequest) getRequest())
+ .getContainer();
+ if (container instanceof View) {
+ container = ((View) container).getElement();
+ }
+ return container;
+ }
+
+ /**
+ * @generated
+ */
+ public boolean canExecute() {
+ ConditionalUnit container = (ConditionalUnit) getElementToEdit();
+ if (container.getThen() != null) {
+ return false;
+ }
+ return true;
+
+ }
+
+ /**
+ * @generated
+ */
+ protected CommandResult doExecuteWithResult(IProgressMonitor monitor,
+ IAdaptable info) throws ExecutionException {
+ SequentialUnit newElement = ComrelFactory.eINSTANCE
+ .createSequentialUnit();
+
+ ConditionalUnit owner = (ConditionalUnit) getElementToEdit();
+ owner.setThen(newElement);
+
+ doConfigure(newElement, monitor, info);
+
+ ((CreateElementRequest) getRequest()).setNewElement(newElement);
+ return CommandResult.newOKCommandResult(newElement);
+ }
+
+ /**
+ * @generated
+ */
+ protected void doConfigure(SequentialUnit newElement,
+ IProgressMonitor monitor, IAdaptable info)
+ throws ExecutionException {
+ IElementType elementType = ((CreateElementRequest) getRequest())
+ .getElementType();
+ ConfigureRequest configureRequest = new ConfigureRequest(
+ getEditingDomain(), newElement, elementType);
+ configureRequest.setClientContext(((CreateElementRequest) getRequest())
+ .getClientContext());
+ configureRequest.addParameters(getRequest().getParameters());
+ ICommand configureCommand = elementType
+ .getEditCommand(configureRequest);
+ if (configureCommand != null && configureCommand.canExecute()) {
+ configureCommand.execute(monitor, info);
+ }
+ }
+
+}
diff --git a/org.eclipse.emf.refactor.comrel.diagram/src/comrel/diagram/edit/commands/SequentialUnit6CreateCommand.java b/org.eclipse.emf.refactor.comrel.diagram/src/comrel/diagram/edit/commands/SequentialUnit6CreateCommand.java
new file mode 100644
index 0000000..3a1f3e1
--- /dev/null
+++ b/org.eclipse.emf.refactor.comrel.diagram/src/comrel/diagram/edit/commands/SequentialUnit6CreateCommand.java
@@ -0,0 +1,91 @@
+/*
+ *
+ */
+package comrel.diagram.edit.commands;
+
+import org.eclipse.core.commands.ExecutionException;
+import org.eclipse.core.runtime.IAdaptable;
+import org.eclipse.core.runtime.IProgressMonitor;
+import org.eclipse.emf.ecore.EObject;
+import org.eclipse.gmf.runtime.common.core.command.CommandResult;
+import org.eclipse.gmf.runtime.common.core.command.ICommand;
+import org.eclipse.gmf.runtime.emf.type.core.IElementType;
+import org.eclipse.gmf.runtime.emf.type.core.commands.EditElementCommand;
+import org.eclipse.gmf.runtime.emf.type.core.requests.ConfigureRequest;
+import org.eclipse.gmf.runtime.emf.type.core.requests.CreateElementRequest;
+import org.eclipse.gmf.runtime.notation.View;
+
+import comrel.ComrelFactory;
+import comrel.SequentialUnit;
+
+/**
+ * @generated
+ */
+public class SequentialUnit6CreateCommand extends EditElementCommand {
+
+ /**
+ * @generated
+ */
+ public SequentialUnit6CreateCommand(CreateElementRequest req) {
+ super(req.getLabel(), null, req);
+ }
+
+ /**
+ * FIXME: replace with setElementToEdit()
+ * @generated
+ */
+ protected EObject getElementToEdit() {
+ EObject container = ((CreateElementRequest) getRequest())
+ .getContainer();
+ if (container instanceof View) {
+ container = ((View) container).getElement();
+ }
+ return container;
+ }
+
+ /**
+ * @generated
+ */
+ public boolean canExecute() {
+ return true;
+
+ }
+
+ /**
+ * @generated NOT
+ */
+ protected CommandResult doExecuteWithResult(IProgressMonitor monitor,
+ IAdaptable info) throws ExecutionException {
+ SequentialUnit newElement = ComrelFactory.eINSTANCE
+ .createSequentialUnit();
+
+ SequentialUnit owner = (SequentialUnit) getElementToEdit();
+ owner.getRefactoringUnits().add(newElement);
+ owner.updateSeqExecutionOrder();
+ doConfigure(newElement, monitor, info);
+
+ ((CreateElementRequest) getRequest()).setNewElement(newElement);
+ return CommandResult.newOKCommandResult(newElement);
+ }
+
+ /**
+ * @generated
+ */
+ protected void doConfigure(SequentialUnit newElement,
+ IProgressMonitor monitor, IAdaptable info)
+ throws ExecutionException {
+ IElementType elementType = ((CreateElementRequest) getRequest())
+ .getElementType();
+ ConfigureRequest configureRequest = new ConfigureRequest(
+ getEditingDomain(), newElement, elementType);
+ configureRequest.setClientContext(((CreateElementRequest) getRequest())
+ .getClientContext());
+ configureRequest.addParameters(getRequest().getParameters());
+ ICommand configureCommand = elementType
+ .getEditCommand(configureRequest);
+ if (configureCommand != null && configureCommand.canExecute()) {
+ configureCommand.execute(monitor, info);
+ }
+ }
+
+}
diff --git a/org.eclipse.emf.refactor.comrel.diagram/src/comrel/diagram/edit/commands/SequentialUnit7CreateCommand.java b/org.eclipse.emf.refactor.comrel.diagram/src/comrel/diagram/edit/commands/SequentialUnit7CreateCommand.java
new file mode 100644
index 0000000..14cd78b
--- /dev/null
+++ b/org.eclipse.emf.refactor.comrel.diagram/src/comrel/diagram/edit/commands/SequentialUnit7CreateCommand.java
@@ -0,0 +1,96 @@
+/*
+ *
+ */
+package comrel.diagram.edit.commands;
+
+import org.eclipse.core.commands.ExecutionException;
+import org.eclipse.core.runtime.IAdaptable;
+import org.eclipse.core.runtime.IProgressMonitor;
+import org.eclipse.emf.ecore.EObject;
+import org.eclipse.gmf.runtime.common.core.command.CommandResult;
+import org.eclipse.gmf.runtime.common.core.command.ICommand;
+import org.eclipse.gmf.runtime.emf.type.core.IElementType;
+import org.eclipse.gmf.runtime.emf.type.core.commands.EditElementCommand;
+import org.eclipse.gmf.runtime.emf.type.core.requests.ConfigureRequest;
+import org.eclipse.gmf.runtime.emf.type.core.requests.CreateElementRequest;
+import org.eclipse.gmf.runtime.notation.View;
+
+import comrel.ComrelFactory;
+import comrel.ConditionalUnit;
+import comrel.SequentialUnit;
+
+/**
+ * @generated
+ */
+public class SequentialUnit7CreateCommand extends EditElementCommand {
+
+ /**
+ * @generated
+ */
+ public SequentialUnit7CreateCommand(CreateElementRequest req) {
+ super(req.getLabel(), null, req);
+ }
+
+ /**
+ * FIXME: replace with setElementToEdit()
+ * @generated
+ */
+ protected EObject getElementToEdit() {
+ EObject container = ((CreateElementRequest) getRequest())
+ .getContainer();
+ if (container instanceof View) {
+ container = ((View) container).getElement();
+ }
+ return container;
+ }
+
+ /**
+ * @generated
+ */
+ public boolean canExecute() {
+ ConditionalUnit container = (ConditionalUnit) getElementToEdit();
+ if (container.getElse() != null) {
+ return false;
+ }
+ return true;
+
+ }
+
+ /**
+ * @generated
+ */
+ protected CommandResult doExecuteWithResult(IProgressMonitor monitor,
+ IAdaptable info) throws ExecutionException {
+ SequentialUnit newElement = ComrelFactory.eINSTANCE
+ .createSequentialUnit();
+
+ ConditionalUnit owner = (ConditionalUnit) getElementToEdit();
+ owner.setElse(newElement);
+
+ doConfigure(newElement, monitor, info);
+
+ ((CreateElementRequest) getRequest()).setNewElement(newElement);
+ return CommandResult.newOKCommandResult(newElement);
+ }
+
+ /**
+ * @generated
+ */
+ protected void doConfigure(SequentialUnit newElement,
+ IProgressMonitor monitor, IAdaptable info)
+ throws ExecutionException {
+ IElementType elementType = ((CreateElementRequest) getRequest())
+ .getElementType();
+ ConfigureRequest configureRequest = new ConfigureRequest(
+ getEditingDomain(), newElement, elementType);
+ configureRequest.setClientContext(((CreateElementRequest) getRequest())
+ .getClientContext());
+ configureRequest.addParameters(getRequest().getParameters());
+ ICommand configureCommand = elementType
+ .getEditCommand(configureRequest);
+ if (configureCommand != null && configureCommand.canExecute()) {
+ configureCommand.execute(monitor, info);
+ }
+ }
+
+}
diff --git a/org.eclipse.emf.refactor.comrel.diagram/src/comrel/diagram/edit/commands/SequentialUnitCreateCommand.java b/org.eclipse.emf.refactor.comrel.diagram/src/comrel/diagram/edit/commands/SequentialUnitCreateCommand.java
new file mode 100644
index 0000000..024b33e
--- /dev/null
+++ b/org.eclipse.emf.refactor.comrel.diagram/src/comrel/diagram/edit/commands/SequentialUnitCreateCommand.java
@@ -0,0 +1,96 @@
+/*
+ *
+ */
+package comrel.diagram.edit.commands;
+
+import org.eclipse.core.commands.ExecutionException;
+import org.eclipse.core.runtime.IAdaptable;
+import org.eclipse.core.runtime.IProgressMonitor;
+import org.eclipse.emf.ecore.EObject;
+import org.eclipse.gmf.runtime.common.core.command.CommandResult;
+import org.eclipse.gmf.runtime.common.core.command.ICommand;
+import org.eclipse.gmf.runtime.emf.type.core.IElementType;
+import org.eclipse.gmf.runtime.emf.type.core.commands.EditElementCommand;
+import org.eclipse.gmf.runtime.emf.type.core.requests.ConfigureRequest;
+import org.eclipse.gmf.runtime.emf.type.core.requests.CreateElementRequest;
+import org.eclipse.gmf.runtime.notation.View;
+
+import comrel.CompositeRefactoring;
+import comrel.ComrelFactory;
+import comrel.SequentialUnit;
+
+/**
+ * @generated
+ */
+public class SequentialUnitCreateCommand extends EditElementCommand {
+
+ /**
+ * @generated
+ */
+ public SequentialUnitCreateCommand(CreateElementRequest req) {
+ super(req.getLabel(), null, req);
+ }
+
+ /**
+ * FIXME: replace with setElementToEdit()
+ * @generated
+ */
+ protected EObject getElementToEdit() {
+ EObject container = ((CreateElementRequest) getRequest())
+ .getContainer();
+ if (container instanceof View) {
+ container = ((View) container).getElement();
+ }
+ return container;
+ }
+
+ /**
+ * @generated
+ */
+ public boolean canExecute() {
+ CompositeRefactoring container = (CompositeRefactoring) getElementToEdit();
+ if (container.getMainRefactoringUnit() != null) {
+ return false;
+ }
+ return true;
+
+ }
+
+ /**
+ * @generated
+ */
+ protected CommandResult doExecuteWithResult(IProgressMonitor monitor,
+ IAdaptable info) throws ExecutionException {
+ SequentialUnit newElement = ComrelFactory.eINSTANCE
+ .createSequentialUnit();
+
+ CompositeRefactoring owner = (CompositeRefactoring) getElementToEdit();
+ owner.setMainRefactoringUnit(newElement);
+
+ doConfigure(newElement, monitor, info);
+
+ ((CreateElementRequest) getRequest()).setNewElement(newElement);
+ return CommandResult.newOKCommandResult(newElement);
+ }
+
+ /**
+ * @generated
+ */
+ protected void doConfigure(SequentialUnit newElement,
+ IProgressMonitor monitor, IAdaptable info)
+ throws ExecutionException {
+ IElementType elementType = ((CreateElementRequest) getRequest())
+ .getElementType();
+ ConfigureRequest configureRequest = new ConfigureRequest(
+ getEditingDomain(), newElement, elementType);
+ configureRequest.setClientContext(((CreateElementRequest) getRequest())
+ .getClientContext());
+ configureRequest.addParameters(getRequest().getParameters());
+ ICommand configureCommand = elementType
+ .getEditCommand(configureRequest);
+ if (configureCommand != null && configureCommand.canExecute()) {
+ configureCommand.execute(monitor, info);
+ }
+ }
+
+}
diff --git a/org.eclipse.emf.refactor.comrel.diagram/src/comrel/diagram/edit/commands/SingleFeatureUnit2CreateCommand.java b/org.eclipse.emf.refactor.comrel.diagram/src/comrel/diagram/edit/commands/SingleFeatureUnit2CreateCommand.java
new file mode 100644
index 0000000..1343097
--- /dev/null
+++ b/org.eclipse.emf.refactor.comrel.diagram/src/comrel/diagram/edit/commands/SingleFeatureUnit2CreateCommand.java
@@ -0,0 +1,116 @@
+/*
+ *
+ */
+package comrel.diagram.edit.commands;
+
+import org.eclipse.core.commands.ExecutionException;
+import org.eclipse.core.runtime.IAdaptable;
+import org.eclipse.core.runtime.IProgressMonitor;
+import org.eclipse.emf.ecore.EObject;
+import org.eclipse.gmf.runtime.common.core.command.CommandResult;
+import org.eclipse.gmf.runtime.common.core.command.ICommand;
+import org.eclipse.gmf.runtime.emf.type.core.IElementType;
+import org.eclipse.gmf.runtime.emf.type.core.commands.EditElementCommand;
+import org.eclipse.gmf.runtime.emf.type.core.requests.ConfigureRequest;
+import org.eclipse.gmf.runtime.emf.type.core.requests.CreateElementRequest;
+import org.eclipse.gmf.runtime.notation.View;
+
+import comrel.CompositeRefactoring;
+import comrel.ComrelFactory;
+import comrel.ParallelQueuedUnit;
+import comrel.SingleFeatureUnit;
+
+/**
+ * @generated
+ */
+public class SingleFeatureUnit2CreateCommand extends EditElementCommand {
+
+ /**
+ * @generated
+ */
+ public SingleFeatureUnit2CreateCommand(CreateElementRequest req) {
+ super(req.getLabel(), null, req);
+ }
+
+ /**
+ * FIXME: replace with setElementToEdit()
+ * @generated
+ */
+ protected EObject getElementToEdit() {
+ EObject container = ((CreateElementRequest) getRequest())
+ .getContainer();
+ if (container instanceof View) {
+ container = ((View) container).getElement();
+ }
+ return container;
+ }
+
+ /**
+ * @generated
+ */
+ public boolean canExecute() {
+ return true;
+
+ }
+
+ /**
+ * @generated NOT
+ */
+ protected CommandResult doExecuteWithResult(IProgressMonitor monitor,
+ IAdaptable info) throws ExecutionException {
+ /*
+ * changes: Liest aus einem Request die ID des Helpers und
+ * erstellt anhand dessen die HelperUnit
+ */
+ CreateElementRequest request = ((CreateElementRequest) getRequest());
+ String helperId = (String) request.getParameters().get(
+ comrel.diagram.part.ComrelPaletteFactory.UNIT_ID);
+ comrel.ComrelFactory factory = comrel.ComrelFactory.eINSTANCE;
+ EObject container = ((CreateElementRequest) getRequest())
+ .getContainer();
+ while (container.eContainer() != null) {
+ container = container.eContainer();
+ }
+ CompositeRefactoring cr = (CompositeRefactoring) container;
+ comrel.SingleFeatureHelper helper = cr.getSingleFeatureHelper(helperId);
+ if (helper != null && !cr.getHelper().contains(helper)) {
+ cr.getHelper().add(helper);
+ }
+ comrel.SingleFeatureUnit newElement;
+ if (helper != null) {
+ newElement = factory.createSingleFeatureUnit(helper);
+ } else {
+ newElement = factory.createSingleFeatureUnit();
+ }
+ /* end of change */
+
+ ParallelQueuedUnit owner = (ParallelQueuedUnit) getElementToEdit();
+ owner.getHelperUnits().add(newElement);
+
+ doConfigure(newElement, monitor, info);
+
+ ((CreateElementRequest) getRequest()).setNewElement(newElement);
+ return CommandResult.newOKCommandResult(newElement);
+ }
+
+ /**
+ * @generated
+ */
+ protected void doConfigure(SingleFeatureUnit newElement,
+ IProgressMonitor monitor, IAdaptable info)
+ throws ExecutionException {
+ IElementType elementType = ((CreateElementRequest) getRequest())
+ .getElementType();
+ ConfigureRequest configureRequest = new ConfigureRequest(
+ getEditingDomain(), newElement, elementType);
+ configureRequest.setClientContext(((CreateElementRequest) getRequest())
+ .getClientContext());
+ configureRequest.addParameters(getRequest().getParameters());
+ ICommand configureCommand = elementType
+ .getEditCommand(configureRequest);
+ if (configureCommand != null && configureCommand.canExecute()) {
+ configureCommand.execute(monitor, info);
+ }
+ }
+
+}
diff --git a/org.eclipse.emf.refactor.comrel.diagram/src/comrel/diagram/edit/commands/SingleFeatureUnit3CreateCommand.java b/org.eclipse.emf.refactor.comrel.diagram/src/comrel/diagram/edit/commands/SingleFeatureUnit3CreateCommand.java
new file mode 100644
index 0000000..408ac4b
--- /dev/null
+++ b/org.eclipse.emf.refactor.comrel.diagram/src/comrel/diagram/edit/commands/SingleFeatureUnit3CreateCommand.java
@@ -0,0 +1,116 @@
+/*
+ *
+ */
+package comrel.diagram.edit.commands;
+
+import org.eclipse.core.commands.ExecutionException;
+import org.eclipse.core.runtime.IAdaptable;
+import org.eclipse.core.runtime.IProgressMonitor;
+import org.eclipse.emf.ecore.EObject;
+import org.eclipse.gmf.runtime.common.core.command.CommandResult;
+import org.eclipse.gmf.runtime.common.core.command.ICommand;
+import org.eclipse.gmf.runtime.emf.type.core.IElementType;
+import org.eclipse.gmf.runtime.emf.type.core.commands.EditElementCommand;
+import org.eclipse.gmf.runtime.emf.type.core.requests.ConfigureRequest;
+import org.eclipse.gmf.runtime.emf.type.core.requests.CreateElementRequest;
+import org.eclipse.gmf.runtime.notation.View;
+
+import comrel.CompositeRefactoring;
+import comrel.ComrelFactory;
+import comrel.ConditionalUnit;
+import comrel.SingleFeatureUnit;
+
+/**
+ * @generated
+ */
+public class SingleFeatureUnit3CreateCommand extends EditElementCommand {
+
+ /**
+ * @generated
+ */
+ public SingleFeatureUnit3CreateCommand(CreateElementRequest req) {
+ super(req.getLabel(), null, req);
+ }
+
+ /**
+ * FIXME: replace with setElementToEdit()
+ * @generated
+ */
+ protected EObject getElementToEdit() {
+ EObject container = ((CreateElementRequest) getRequest())
+ .getContainer();
+ if (container instanceof View) {
+ container = ((View) container).getElement();
+ }
+ return container;
+ }
+
+ /**
+ * @generated
+ */
+ public boolean canExecute() {
+ return true;
+
+ }
+
+ /**
+ * @generated NOT
+ */
+ protected CommandResult doExecuteWithResult(IProgressMonitor monitor,
+ IAdaptable info) throws ExecutionException {
+ /*
+ * changes: Liest aus einem Request die ID des Helpers und
+ * erstellt anhand dessen die HelperUnit
+ */
+ CreateElementRequest request = ((CreateElementRequest) getRequest());
+ String helperId = (String) request.getParameters().get(
+ comrel.diagram.part.ComrelPaletteFactory.UNIT_ID);
+ comrel.ComrelFactory factory = comrel.ComrelFactory.eINSTANCE;
+ EObject container = ((CreateElementRequest) getRequest())
+ .getContainer();
+ while (container.eContainer() != null) {
+ container = container.eContainer();
+ }
+ CompositeRefactoring cr = (CompositeRefactoring) container;
+ comrel.SingleFeatureHelper helper = cr.getSingleFeatureHelper(helperId);
+ if (helper != null && !cr.getHelper().contains(helper)) {
+ cr.getHelper().add(helper);
+ }
+ comrel.SingleFeatureUnit newElement;
+ if (helper != null) {
+ newElement = factory.createSingleFeatureUnit(helper);
+ } else {
+ newElement = factory.createSingleFeatureUnit();
+ }
+ /* end of change */
+
+ ConditionalUnit owner = (ConditionalUnit) getElementToEdit();
+ owner.getHelperUnits().add(newElement);
+
+ doConfigure(newElement, monitor, info);
+
+ ((CreateElementRequest) getRequest()).setNewElement(newElement);
+ return CommandResult.newOKCommandResult(newElement);
+ }
+
+ /**
+ * @generated
+ */
+ protected void doConfigure(SingleFeatureUnit newElement,
+ IProgressMonitor monitor, IAdaptable info)
+ throws ExecutionException {
+ IElementType elementType = ((CreateElementRequest) getRequest())
+ .getElementType();
+ ConfigureRequest configureRequest = new ConfigureRequest(
+ getEditingDomain(), newElement, elementType);
+ configureRequest.setClientContext(((CreateElementRequest) getRequest())
+ .getClientContext());
+ configureRequest.addParameters(getRequest().getParameters());
+ ICommand configureCommand = elementType
+ .getEditCommand(configureRequest);
+ if (configureCommand != null && configureCommand.canExecute()) {
+ configureCommand.execute(monitor, info);
+ }
+ }
+
+}
diff --git a/org.eclipse.emf.refactor.comrel.diagram/src/comrel/diagram/edit/commands/SingleFeatureUnit4CreateCommand.java b/org.eclipse.emf.refactor.comrel.diagram/src/comrel/diagram/edit/commands/SingleFeatureUnit4CreateCommand.java
new file mode 100644
index 0000000..0a67a30
--- /dev/null
+++ b/org.eclipse.emf.refactor.comrel.diagram/src/comrel/diagram/edit/commands/SingleFeatureUnit4CreateCommand.java
@@ -0,0 +1,116 @@
+/*
+ *
+ */
+package comrel.diagram.edit.commands;
+
+import org.eclipse.core.commands.ExecutionException;
+import org.eclipse.core.runtime.IAdaptable;
+import org.eclipse.core.runtime.IProgressMonitor;
+import org.eclipse.emf.ecore.EObject;
+import org.eclipse.gmf.runtime.common.core.command.CommandResult;
+import org.eclipse.gmf.runtime.common.core.command.ICommand;
+import org.eclipse.gmf.runtime.emf.type.core.IElementType;
+import org.eclipse.gmf.runtime.emf.type.core.commands.EditElementCommand;
+import org.eclipse.gmf.runtime.emf.type.core.requests.ConfigureRequest;
+import org.eclipse.gmf.runtime.emf.type.core.requests.CreateElementRequest;
+import org.eclipse.gmf.runtime.notation.View;
+
+import comrel.CompositeRefactoring;
+import comrel.ComrelFactory;
+import comrel.SingleFeatureUnit;
+import comrel.SingleQueuedUnit;
+
+/**
+ * @generated
+ */
+public class SingleFeatureUnit4CreateCommand extends EditElementCommand {
+
+ /**
+ * @generated
+ */
+ public SingleFeatureUnit4CreateCommand(CreateElementRequest req) {
+ super(req.getLabel(), null, req);
+ }
+
+ /**
+ * FIXME: replace with setElementToEdit()
+ * @generated
+ */
+ protected EObject getElementToEdit() {
+ EObject container = ((CreateElementRequest) getRequest())
+ .getContainer();
+ if (container instanceof View) {
+ container = ((View) container).getElement();
+ }
+ return container;
+ }
+
+ /**
+ * @generated
+ */
+ public boolean canExecute() {
+ return true;
+
+ }
+
+ /**
+ * @generated NOT
+ */
+ protected CommandResult doExecuteWithResult(IProgressMonitor monitor,
+ IAdaptable info) throws ExecutionException {
+ /*
+ * changes: Liest aus einem Request die ID des Helpers und
+ * erstellt anhand dessen die HelperUnit
+ */
+ CreateElementRequest request = ((CreateElementRequest) getRequest());
+ String helperId = (String) request.getParameters().get(
+ comrel.diagram.part.ComrelPaletteFactory.UNIT_ID);
+ comrel.ComrelFactory factory = comrel.ComrelFactory.eINSTANCE;
+ EObject container = ((CreateElementRequest) getRequest())
+ .getContainer();
+ while (container.eContainer() != null) {
+ container = container.eContainer();
+ }
+ CompositeRefactoring cr = (CompositeRefactoring) container;
+ comrel.SingleFeatureHelper helper = cr.getSingleFeatureHelper(helperId);
+ if (helper != null && !cr.getHelper().contains(helper)) {
+ cr.getHelper().add(helper);
+ }
+ comrel.SingleFeatureUnit newElement;
+ if (helper != null) {
+ newElement = factory.createSingleFeatureUnit(helper);
+ } else {
+ newElement = factory.createSingleFeatureUnit();
+ }
+ /* end of change */
+
+ SingleQueuedUnit owner = (SingleQueuedUnit) getElementToEdit();
+ owner.getHelperUnits().add(newElement);
+
+ doConfigure(newElement, monitor, info);
+
+ ((CreateElementRequest) getRequest()).setNewElement(newElement);
+ return CommandResult.newOKCommandResult(newElement);
+ }
+
+ /**
+ * @generated
+ */
+ protected void doConfigure(SingleFeatureUnit newElement,
+ IProgressMonitor monitor, IAdaptable info)
+ throws ExecutionException {
+ IElementType elementType = ((CreateElementRequest) getRequest())
+ .getElementType();
+ ConfigureRequest configureRequest = new ConfigureRequest(
+ getEditingDomain(), newElement, elementType);
+ configureRequest.setClientContext(((CreateElementRequest) getRequest())
+ .getClientContext());
+ configureRequest.addParameters(getRequest().getParameters());
+ ICommand configureCommand = elementType
+ .getEditCommand(configureRequest);
+ if (configureCommand != null && configureCommand.canExecute()) {
+ configureCommand.execute(monitor, info);
+ }
+ }
+
+}
diff --git a/org.eclipse.emf.refactor.comrel.diagram/src/comrel/diagram/edit/commands/SingleFeatureUnit5CreateCommand.java b/org.eclipse.emf.refactor.comrel.diagram/src/comrel/diagram/edit/commands/SingleFeatureUnit5CreateCommand.java
new file mode 100644
index 0000000..42dfc3b
--- /dev/null
+++ b/org.eclipse.emf.refactor.comrel.diagram/src/comrel/diagram/edit/commands/SingleFeatureUnit5CreateCommand.java
@@ -0,0 +1,116 @@
+/*
+ *
+ */
+package comrel.diagram.edit.commands;
+
+import org.eclipse.core.commands.ExecutionException;
+import org.eclipse.core.runtime.IAdaptable;
+import org.eclipse.core.runtime.IProgressMonitor;
+import org.eclipse.emf.ecore.EObject;
+import org.eclipse.gmf.runtime.common.core.command.CommandResult;
+import org.eclipse.gmf.runtime.common.core.command.ICommand;
+import org.eclipse.gmf.runtime.emf.type.core.IElementType;
+import org.eclipse.gmf.runtime.emf.type.core.commands.EditElementCommand;
+import org.eclipse.gmf.runtime.emf.type.core.requests.ConfigureRequest;
+import org.eclipse.gmf.runtime.emf.type.core.requests.CreateElementRequest;
+import org.eclipse.gmf.runtime.notation.View;
+
+import comrel.CompositeRefactoring;
+import comrel.ComrelFactory;
+import comrel.SequentialUnit;
+import comrel.SingleFeatureUnit;
+
+/**
+ * @generated
+ */
+public class SingleFeatureUnit5CreateCommand extends EditElementCommand {
+
+ /**
+ * @generated
+ */
+ public SingleFeatureUnit5CreateCommand(CreateElementRequest req) {
+ super(req.getLabel(), null, req);
+ }
+
+ /**
+ * FIXME: replace with setElementToEdit()
+ * @generated
+ */
+ protected EObject getElementToEdit() {
+ EObject container = ((CreateElementRequest) getRequest())
+ .getContainer();
+ if (container instanceof View) {
+ container = ((View) container).getElement();
+ }
+ return container;
+ }
+
+ /**
+ * @generated
+ */
+ public boolean canExecute() {
+ return true;
+
+ }
+
+ /**
+ * @generated NOT
+ */
+ protected CommandResult doExecuteWithResult(IProgressMonitor monitor,
+ IAdaptable info) throws ExecutionException {
+ /*
+ * changes: Liest aus einem Request die ID des Helpers und
+ * erstellt anhand dessen die HelperUnit
+ */
+ CreateElementRequest request = ((CreateElementRequest) getRequest());
+ String helperId = (String) request.getParameters().get(
+ comrel.diagram.part.ComrelPaletteFactory.UNIT_ID);
+ comrel.ComrelFactory factory = comrel.ComrelFactory.eINSTANCE;
+ EObject container = ((CreateElementRequest) getRequest())
+ .getContainer();
+ while (container.eContainer() != null) {
+ container = container.eContainer();
+ }
+ CompositeRefactoring cr = (CompositeRefactoring) container;
+ comrel.SingleFeatureHelper helper = cr.getSingleFeatureHelper(helperId);
+ if (helper != null && !cr.getHelper().contains(helper)) {
+ cr.getHelper().add(helper);
+ }
+ comrel.SingleFeatureUnit newElement;
+ if (helper != null) {
+ newElement = factory.createSingleFeatureUnit(helper);
+ } else {
+ newElement = factory.createSingleFeatureUnit();
+ }
+ /* end of change */
+
+ SequentialUnit owner = (SequentialUnit) getElementToEdit();
+ owner.getHelperUnits().add(newElement);
+
+ doConfigure(newElement, monitor, info);
+
+ ((CreateElementRequest) getRequest()).setNewElement(newElement);
+ return CommandResult.newOKCommandResult(newElement);
+ }
+
+ /**
+ * @generated
+ */
+ protected void doConfigure(SingleFeatureUnit newElement,
+ IProgressMonitor monitor, IAdaptable info)
+ throws ExecutionException {
+ IElementType elementType = ((CreateElementRequest) getRequest())
+ .getElementType();
+ ConfigureRequest configureRequest = new ConfigureRequest(
+ getEditingDomain(), newElement, elementType);
+ configureRequest.setClientContext(((CreateElementRequest) getRequest())
+ .getClientContext());
+ configureRequest.addParameters(getRequest().getParameters());
+ ICommand configureCommand = elementType
+ .getEditCommand(configureRequest);
+ if (configureCommand != null && configureCommand.canExecute()) {
+ configureCommand.execute(monitor, info);
+ }
+ }
+
+}
diff --git a/org.eclipse.emf.refactor.comrel.diagram/src/comrel/diagram/edit/commands/SingleFeatureUnitCreateCommand.java b/org.eclipse.emf.refactor.comrel.diagram/src/comrel/diagram/edit/commands/SingleFeatureUnitCreateCommand.java
new file mode 100644
index 0000000..053a886
--- /dev/null
+++ b/org.eclipse.emf.refactor.comrel.diagram/src/comrel/diagram/edit/commands/SingleFeatureUnitCreateCommand.java
@@ -0,0 +1,116 @@
+/*
+ *
+ */
+package comrel.diagram.edit.commands;
+
+import org.eclipse.core.commands.ExecutionException;
+import org.eclipse.core.runtime.IAdaptable;
+import org.eclipse.core.runtime.IProgressMonitor;
+import org.eclipse.emf.ecore.EObject;
+import org.eclipse.gmf.runtime.common.core.command.CommandResult;
+import org.eclipse.gmf.runtime.common.core.command.ICommand;
+import org.eclipse.gmf.runtime.emf.type.core.IElementType;
+import org.eclipse.gmf.runtime.emf.type.core.commands.EditElementCommand;
+import org.eclipse.gmf.runtime.emf.type.core.requests.ConfigureRequest;
+import org.eclipse.gmf.runtime.emf.type.core.requests.CreateElementRequest;
+import org.eclipse.gmf.runtime.notation.View;
+
+import comrel.CartesianQueuedUnit;
+import comrel.CompositeRefactoring;
+import comrel.ComrelFactory;
+import comrel.SingleFeatureUnit;
+
+/**
+ * @generated
+ */
+public class SingleFeatureUnitCreateCommand extends EditElementCommand {
+
+ /**
+ * @generated
+ */
+ public SingleFeatureUnitCreateCommand(CreateElementRequest req) {
+ super(req.getLabel(), null, req);
+ }
+
+ /**
+ * FIXME: replace with setElementToEdit()
+ * @generated
+ */
+ protected EObject getElementToEdit() {
+ EObject container = ((CreateElementRequest) getRequest())
+ .getContainer();
+ if (container instanceof View) {
+ container = ((View) container).getElement();
+ }
+ return container;
+ }
+
+ /**
+ * @generated
+ */
+ public boolean canExecute() {
+ return true;
+
+ }
+
+ /**
+ * @generated NOT
+ */
+ protected CommandResult doExecuteWithResult(IProgressMonitor monitor,
+ IAdaptable info) throws ExecutionException {
+ /*
+ * changes: Liest aus einem Request die ID des Helpers und
+ * erstellt anhand dessen die HelperUnit
+ */
+ CreateElementRequest request = ((CreateElementRequest) getRequest());
+ String helperId = (String) request.getParameters().get(
+ comrel.diagram.part.ComrelPaletteFactory.UNIT_ID);
+ comrel.ComrelFactory factory = comrel.ComrelFactory.eINSTANCE;
+ EObject container = ((CreateElementRequest) getRequest())
+ .getContainer();
+ while (container.eContainer() != null) {
+ container = container.eContainer();
+ }
+ CompositeRefactoring cr = (CompositeRefactoring) container;
+ comrel.SingleFeatureHelper helper = cr.getSingleFeatureHelper(helperId);
+ if (helper != null && !cr.getHelper().contains(helper)) {
+ cr.getHelper().add(helper);
+ }
+ comrel.SingleFeatureUnit newElement;
+ if (helper != null) {
+ newElement = factory.createSingleFeatureUnit(helper);
+ } else {
+ newElement = factory.createSingleFeatureUnit();
+ }
+ /* end of change */
+
+ CartesianQueuedUnit owner = (CartesianQueuedUnit) getElementToEdit();
+ owner.getHelperUnits().add(newElement);
+
+ doConfigure(newElement, monitor, info);
+
+ ((CreateElementRequest) getRequest()).setNewElement(newElement);
+ return CommandResult.newOKCommandResult(newElement);
+ }
+
+ /**
+ * @generated
+ */
+ protected void doConfigure(SingleFeatureUnit newElement,
+ IProgressMonitor monitor, IAdaptable info)
+ throws ExecutionException {
+ IElementType elementType = ((CreateElementRequest) getRequest())
+ .getElementType();
+ ConfigureRequest configureRequest = new ConfigureRequest(
+ getEditingDomain(), newElement, elementType);
+ configureRequest.setClientContext(((CreateElementRequest) getRequest())
+ .getClientContext());
+ configureRequest.addParameters(getRequest().getParameters());
+ ICommand configureCommand = elementType
+ .getEditCommand(configureRequest);
+ if (configureCommand != null && configureCommand.canExecute()) {
+ configureCommand.execute(monitor, info);
+ }
+ }
+
+}
diff --git a/org.eclipse.emf.refactor.comrel.diagram/src/comrel/diagram/edit/commands/SingleFilterUnit2CreateCommand.java b/org.eclipse.emf.refactor.comrel.diagram/src/comrel/diagram/edit/commands/SingleFilterUnit2CreateCommand.java
new file mode 100644
index 0000000..45d18ef
--- /dev/null
+++ b/org.eclipse.emf.refactor.comrel.diagram/src/comrel/diagram/edit/commands/SingleFilterUnit2CreateCommand.java
@@ -0,0 +1,116 @@
+/*
+ *
+ */
+package comrel.diagram.edit.commands;
+
+import org.eclipse.core.commands.ExecutionException;
+import org.eclipse.core.runtime.IAdaptable;
+import org.eclipse.core.runtime.IProgressMonitor;
+import org.eclipse.emf.ecore.EObject;
+import org.eclipse.gmf.runtime.common.core.command.CommandResult;
+import org.eclipse.gmf.runtime.common.core.command.ICommand;
+import org.eclipse.gmf.runtime.emf.type.core.IElementType;
+import org.eclipse.gmf.runtime.emf.type.core.commands.EditElementCommand;
+import org.eclipse.gmf.runtime.emf.type.core.requests.ConfigureRequest;
+import org.eclipse.gmf.runtime.emf.type.core.requests.CreateElementRequest;
+import org.eclipse.gmf.runtime.notation.View;
+
+import comrel.CompositeRefactoring;
+import comrel.ComrelFactory;
+import comrel.ParallelQueuedUnit;
+import comrel.SingleFilterUnit;
+
+/**
+ * @generated
+ */
+public class SingleFilterUnit2CreateCommand extends EditElementCommand {
+
+ /**
+ * @generated
+ */
+ public SingleFilterUnit2CreateCommand(CreateElementRequest req) {
+ super(req.getLabel(), null, req);
+ }
+
+ /**
+ * FIXME: replace with setElementToEdit()
+ * @generated
+ */
+ protected EObject getElementToEdit() {
+ EObject container = ((CreateElementRequest) getRequest())
+ .getContainer();
+ if (container instanceof View) {
+ container = ((View) container).getElement();
+ }
+ return container;
+ }
+
+ /**
+ * @generated
+ */
+ public boolean canExecute() {
+ return true;
+
+ }
+
+ /**
+ * @generated NOT
+ */
+ protected CommandResult doExecuteWithResult(IProgressMonitor monitor,
+ IAdaptable info) throws ExecutionException {
+ /*
+ * changes: Liest aus einem Request die ID des Helpers und
+ * erstellt anhand dessen die HelperUnit
+ */
+ CreateElementRequest request = ((CreateElementRequest) getRequest());
+ String helperId = (String) request.getParameters().get(
+ comrel.diagram.part.ComrelPaletteFactory.UNIT_ID);
+ comrel.ComrelFactory factory = comrel.ComrelFactory.eINSTANCE;
+ EObject container = ((CreateElementRequest) getRequest())
+ .getContainer();
+ while (container.eContainer() != null) {
+ container = container.eContainer();
+ }
+ CompositeRefactoring cr = (CompositeRefactoring) container;
+ comrel.SingleFilterHelper helper = cr.getSingleFilterHelper(helperId);
+ if (helper != null && !cr.getHelper().contains(helper)) {
+ cr.getHelper().add(helper);
+ }
+ comrel.SingleFilterUnit newElement;
+ if (helper != null) {
+ newElement = factory.createSingleFilterUnit(helper);
+ } else {
+ newElement = factory.createSingleFilterUnit();
+ }
+ /* end of change */
+
+ ParallelQueuedUnit owner = (ParallelQueuedUnit) getElementToEdit();
+ owner.getHelperUnits().add(newElement);
+
+ doConfigure(newElement, monitor, info);
+
+ ((CreateElementRequest) getRequest()).setNewElement(newElement);
+ return CommandResult.newOKCommandResult(newElement);
+ }
+
+ /**
+ * @generated
+ */
+ protected void doConfigure(SingleFilterUnit newElement,
+ IProgressMonitor monitor, IAdaptable info)
+ throws ExecutionException {
+ IElementType elementType = ((CreateElementRequest) getRequest())
+ .getElementType();
+ ConfigureRequest configureRequest = new ConfigureRequest(
+ getEditingDomain(), newElement, elementType);
+ configureRequest.setClientContext(((CreateElementRequest) getRequest())
+ .getClientContext());
+ configureRequest.addParameters(getRequest().getParameters());
+ ICommand configureCommand = elementType
+ .getEditCommand(configureRequest);
+ if (configureCommand != null && configureCommand.canExecute()) {
+ configureCommand.execute(monitor, info);
+ }
+ }
+
+}
diff --git a/org.eclipse.emf.refactor.comrel.diagram/src/comrel/diagram/edit/commands/SingleFilterUnit3CreateCommand.java b/org.eclipse.emf.refactor.comrel.diagram/src/comrel/diagram/edit/commands/SingleFilterUnit3CreateCommand.java
new file mode 100644
index 0000000..526991d
--- /dev/null
+++ b/org.eclipse.emf.refactor.comrel.diagram/src/comrel/diagram/edit/commands/SingleFilterUnit3CreateCommand.java
@@ -0,0 +1,116 @@
+/*
+ *
+ */
+package comrel.diagram.edit.commands;
+
+import org.eclipse.core.commands.ExecutionException;
+import org.eclipse.core.runtime.IAdaptable;
+import org.eclipse.core.runtime.IProgressMonitor;
+import org.eclipse.emf.ecore.EObject;
+import org.eclipse.gmf.runtime.common.core.command.CommandResult;
+import org.eclipse.gmf.runtime.common.core.command.ICommand;
+import org.eclipse.gmf.runtime.emf.type.core.IElementType;
+import org.eclipse.gmf.runtime.emf.type.core.commands.EditElementCommand;
+import org.eclipse.gmf.runtime.emf.type.core.requests.ConfigureRequest;
+import org.eclipse.gmf.runtime.emf.type.core.requests.CreateElementRequest;
+import org.eclipse.gmf.runtime.notation.View;
+
+import comrel.CompositeRefactoring;
+import comrel.ComrelFactory;
+import comrel.ConditionalUnit;
+import comrel.SingleFilterUnit;
+
+/**
+ * @generated
+ */
+public class SingleFilterUnit3CreateCommand extends EditElementCommand {
+
+ /**
+ * @generated
+ */
+ public SingleFilterUnit3CreateCommand(CreateElementRequest req) {
+ super(req.getLabel(), null, req);
+ }
+
+ /**
+ * FIXME: replace with setElementToEdit()
+ * @generated
+ */
+ protected EObject getElementToEdit() {
+ EObject container = ((CreateElementRequest) getRequest())
+ .getContainer();
+ if (container instanceof View) {
+ container = ((View) container).getElement();
+ }
+ return container;
+ }
+
+ /**
+ * @generated
+ */
+ public boolean canExecute() {
+ return true;
+
+ }
+
+ /**
+ * @generated NOT
+ */
+ protected CommandResult doExecuteWithResult(IProgressMonitor monitor,
+ IAdaptable info) throws ExecutionException {
+ /*
+ * changes: Liest aus einem Request die ID des Helpers und
+ * erstellt anhand dessen die HelperUnit
+ */
+ CreateElementRequest request = ((CreateElementRequest) getRequest());
+ String helperId = (String) request.getParameters().get(
+ comrel.diagram.part.ComrelPaletteFactory.UNIT_ID);
+ comrel.ComrelFactory factory = comrel.ComrelFactory.eINSTANCE;
+ EObject container = ((CreateElementRequest) getRequest())
+ .getContainer();
+ while (container.eContainer() != null) {
+ container = container.eContainer();
+ }
+ CompositeRefactoring cr = (CompositeRefactoring) container;
+ comrel.SingleFilterHelper helper = cr.getSingleFilterHelper(helperId);
+ if (helper != null && !cr.getHelper().contains(helper)) {
+ cr.getHelper().add(helper);
+ }
+ comrel.SingleFilterUnit newElement;
+ if (helper != null) {
+ newElement = factory.createSingleFilterUnit(helper);
+ } else {
+ newElement = factory.createSingleFilterUnit();
+ }
+ /* end of change */
+
+ ConditionalUnit owner = (ConditionalUnit) getElementToEdit();
+ owner.getHelperUnits().add(newElement);
+
+ doConfigure(newElement, monitor, info);
+
+ ((CreateElementRequest) getRequest()).setNewElement(newElement);
+ return CommandResult.newOKCommandResult(newElement);
+ }
+
+ /**
+ * @generated
+ */
+ protected void doConfigure(SingleFilterUnit newElement,
+ IProgressMonitor monitor, IAdaptable info)
+ throws ExecutionException {
+ IElementType elementType = ((CreateElementRequest) getRequest())
+ .getElementType();
+ ConfigureRequest configureRequest = new ConfigureRequest(
+ getEditingDomain(), newElement, elementType);
+ configureRequest.setClientContext(((CreateElementRequest) getRequest())
+ .getClientContext());
+ configureRequest.addParameters(getRequest().getParameters());
+ ICommand configureCommand = elementType
+ .getEditCommand(configureRequest);
+ if (configureCommand != null && configureCommand.canExecute()) {
+ configureCommand.execute(monitor, info);
+ }
+ }
+
+}
diff --git a/org.eclipse.emf.refactor.comrel.diagram/src/comrel/diagram/edit/commands/SingleFilterUnit4CreateCommand.java b/org.eclipse.emf.refactor.comrel.diagram/src/comrel/diagram/edit/commands/SingleFilterUnit4CreateCommand.java
new file mode 100644
index 0000000..ea75103
--- /dev/null
+++ b/org.eclipse.emf.refactor.comrel.diagram/src/comrel/diagram/edit/commands/SingleFilterUnit4CreateCommand.java
@@ -0,0 +1,116 @@
+/*
+ *
+ */
+package comrel.diagram.edit.commands;
+
+import org.eclipse.core.commands.ExecutionException;
+import org.eclipse.core.runtime.IAdaptable;
+import org.eclipse.core.runtime.IProgressMonitor;
+import org.eclipse.emf.ecore.EObject;
+import org.eclipse.gmf.runtime.common.core.command.CommandResult;
+import org.eclipse.gmf.runtime.common.core.command.ICommand;
+import org.eclipse.gmf.runtime.emf.type.core.IElementType;
+import org.eclipse.gmf.runtime.emf.type.core.commands.EditElementCommand;
+import org.eclipse.gmf.runtime.emf.type.core.requests.ConfigureRequest;
+import org.eclipse.gmf.runtime.emf.type.core.requests.CreateElementRequest;
+import org.eclipse.gmf.runtime.notation.View;
+
+import comrel.CompositeRefactoring;
+import comrel.ComrelFactory;
+import comrel.SingleFilterUnit;
+import comrel.SingleQueuedUnit;
+
+/**
+ * @generated
+ */
+public class SingleFilterUnit4CreateCommand extends EditElementCommand {
+
+ /**
+ * @generated
+ */
+ public SingleFilterUnit4CreateCommand(CreateElementRequest req) {
+ super(req.getLabel(), null, req);
+ }
+
+ /**
+ * FIXME: replace with setElementToEdit()
+ * @generated
+ */
+ protected EObject getElementToEdit() {
+ EObject container = ((CreateElementRequest) getRequest())
+ .getContainer();
+ if (container instanceof View) {
+ container = ((View) container).getElement();
+ }
+ return container;
+ }
+
+ /**
+ * @generated
+ */
+ public boolean canExecute() {
+ return true;
+
+ }
+
+ /**
+ * @generated NOT
+ */
+ protected CommandResult doExecuteWithResult(IProgressMonitor monitor,
+ IAdaptable info) throws ExecutionException {
+ /*
+ * changes: Liest aus einem Request die ID des Helpers und
+ * erstellt anhand dessen die HelperUnit
+ */
+ CreateElementRequest request = ((CreateElementRequest) getRequest());
+ String helperId = (String) request.getParameters().get(
+ comrel.diagram.part.ComrelPaletteFactory.UNIT_ID);
+ comrel.ComrelFactory factory = comrel.ComrelFactory.eINSTANCE;
+ EObject container = ((CreateElementRequest) getRequest())
+ .getContainer();
+ while (container.eContainer() != null) {
+ container = container.eContainer();
+ }
+ CompositeRefactoring cr = (CompositeRefactoring) container;
+ comrel.SingleFilterHelper helper = cr.getSingleFilterHelper(helperId);
+ if (helper != null && !cr.getHelper().contains(helper)) {
+ cr.getHelper().add(helper);
+ }
+ comrel.SingleFilterUnit newElement;
+ if (helper != null) {
+ newElement = factory.createSingleFilterUnit(helper);
+ } else {
+ newElement = factory.createSingleFilterUnit();
+ }
+ /* end of change */
+
+ SingleQueuedUnit owner = (SingleQueuedUnit) getElementToEdit();
+ owner.getHelperUnits().add(newElement);
+
+ doConfigure(newElement, monitor, info);
+
+ ((CreateElementRequest) getRequest()).setNewElement(newElement);
+ return CommandResult.newOKCommandResult(newElement);
+ }
+
+ /**
+ * @generated
+ */
+ protected void doConfigure(SingleFilterUnit newElement,
+ IProgressMonitor monitor, IAdaptable info)
+ throws ExecutionException {
+ IElementType elementType = ((CreateElementRequest) getRequest())
+ .getElementType();
+ ConfigureRequest configureRequest = new ConfigureRequest(
+ getEditingDomain(), newElement, elementType);
+ configureRequest.setClientContext(((CreateElementRequest) getRequest())
+ .getClientContext());
+ configureRequest.addParameters(getRequest().getParameters());
+ ICommand configureCommand = elementType
+ .getEditCommand(configureRequest);
+ if (configureCommand != null && configureCommand.canExecute()) {
+ configureCommand.execute(monitor, info);
+ }
+ }
+
+}
diff --git a/org.eclipse.emf.refactor.comrel.diagram/src/comrel/diagram/edit/commands/SingleFilterUnit5CreateCommand.java b/org.eclipse.emf.refactor.comrel.diagram/src/comrel/diagram/edit/commands/SingleFilterUnit5CreateCommand.java
new file mode 100644
index 0000000..02d9a08
--- /dev/null
+++ b/org.eclipse.emf.refactor.comrel.diagram/src/comrel/diagram/edit/commands/SingleFilterUnit5CreateCommand.java
@@ -0,0 +1,116 @@
+/*
+ *
+ */
+package comrel.diagram.edit.commands;
+
+import org.eclipse.core.commands.ExecutionException;
+import org.eclipse.core.runtime.IAdaptable;
+import org.eclipse.core.runtime.IProgressMonitor;
+import org.eclipse.emf.ecore.EObject;
+import org.eclipse.gmf.runtime.common.core.command.CommandResult;
+import org.eclipse.gmf.runtime.common.core.command.ICommand;
+import org.eclipse.gmf.runtime.emf.type.core.IElementType;
+import org.eclipse.gmf.runtime.emf.type.core.commands.EditElementCommand;
+import org.eclipse.gmf.runtime.emf.type.core.requests.ConfigureRequest;
+import org.eclipse.gmf.runtime.emf.type.core.requests.CreateElementRequest;
+import org.eclipse.gmf.runtime.notation.View;
+
+import comrel.CompositeRefactoring;
+import comrel.ComrelFactory;
+import comrel.SequentialUnit;
+import comrel.SingleFilterUnit;
+
+/**
+ * @generated
+ */
+public class SingleFilterUnit5CreateCommand extends EditElementCommand {
+
+ /**
+ * @generated
+ */
+ public SingleFilterUnit5CreateCommand(CreateElementRequest req) {
+ super(req.getLabel(), null, req);
+ }
+
+ /**
+ * FIXME: replace with setElementToEdit()
+ * @generated
+ */
+ protected EObject getElementToEdit() {
+ EObject container = ((CreateElementRequest) getRequest())
+ .getContainer();
+ if (container instanceof View) {
+ container = ((View) container).getElement();
+ }
+ return container;
+ }
+
+ /**
+ * @generated
+ */
+ public boolean canExecute() {
+ return true;
+
+ }
+
+ /**
+ * @generated NOT
+ */
+ protected CommandResult doExecuteWithResult(IProgressMonitor monitor,
+ IAdaptable info) throws ExecutionException {
+ /*
+ * changes: Liest aus einem Request die ID des Helpers und
+ * erstellt anhand dessen die HelperUnit
+ */
+ CreateElementRequest request = ((CreateElementRequest) getRequest());
+ String helperId = (String) request.getParameters().get(
+ comrel.diagram.part.ComrelPaletteFactory.UNIT_ID);
+ comrel.ComrelFactory factory = comrel.ComrelFactory.eINSTANCE;
+ EObject container = ((CreateElementRequest) getRequest())
+ .getContainer();
+ while (container.eContainer() != null) {
+ container = container.eContainer();
+ }
+ CompositeRefactoring cr = (CompositeRefactoring) container;
+ comrel.SingleFilterHelper helper = cr.getSingleFilterHelper(helperId);
+ if (helper != null && !cr.getHelper().contains(helper)) {
+ cr.getHelper().add(helper);
+ }
+ comrel.SingleFilterUnit newElement;
+ if (helper != null) {
+ newElement = factory.createSingleFilterUnit(helper);
+ } else {
+ newElement = factory.createSingleFilterUnit();
+ }
+ /* end of change */
+
+ SequentialUnit owner = (SequentialUnit) getElementToEdit();
+ owner.getHelperUnits().add(newElement);
+
+ doConfigure(newElement, monitor, info);
+
+ ((CreateElementRequest) getRequest()).setNewElement(newElement);
+ return CommandResult.newOKCommandResult(newElement);
+ }
+
+ /**
+ * @generated
+ */
+ protected void doConfigure(SingleFilterUnit newElement,
+ IProgressMonitor monitor, IAdaptable info)
+ throws ExecutionException {
+ IElementType elementType = ((CreateElementRequest) getRequest())
+ .getElementType();
+ ConfigureRequest configureRequest = new ConfigureRequest(
+ getEditingDomain(), newElement, elementType);
+ configureRequest.setClientContext(((CreateElementRequest) getRequest())
+ .getClientContext());
+ configureRequest.addParameters(getRequest().getParameters());
+ ICommand configureCommand = elementType
+ .getEditCommand(configureRequest);
+ if (configureCommand != null && configureCommand.canExecute()) {
+ configureCommand.execute(monitor, info);
+ }
+ }
+
+}
diff --git a/org.eclipse.emf.refactor.comrel.diagram/src/comrel/diagram/edit/commands/SingleFilterUnitCreateCommand.java b/org.eclipse.emf.refactor.comrel.diagram/src/comrel/diagram/edit/commands/SingleFilterUnitCreateCommand.java
new file mode 100644
index 0000000..9a6549d
--- /dev/null
+++ b/org.eclipse.emf.refactor.comrel.diagram/src/comrel/diagram/edit/commands/SingleFilterUnitCreateCommand.java
@@ -0,0 +1,116 @@
+/*
+ *
+ */
+package comrel.diagram.edit.commands;
+
+import org.eclipse.core.commands.ExecutionException;
+import org.eclipse.core.runtime.IAdaptable;
+import org.eclipse.core.runtime.IProgressMonitor;
+import org.eclipse.emf.ecore.EObject;
+import org.eclipse.gmf.runtime.common.core.command.CommandResult;
+import org.eclipse.gmf.runtime.common.core.command.ICommand;
+import org.eclipse.gmf.runtime.emf.type.core.IElementType;
+import org.eclipse.gmf.runtime.emf.type.core.commands.EditElementCommand;
+import org.eclipse.gmf.runtime.emf.type.core.requests.ConfigureRequest;
+import org.eclipse.gmf.runtime.emf.type.core.requests.CreateElementRequest;
+import org.eclipse.gmf.runtime.notation.View;
+
+import comrel.CartesianQueuedUnit;
+import comrel.CompositeRefactoring;
+import comrel.ComrelFactory;
+import comrel.SingleFilterUnit;
+
+/**
+ * @generated
+ */
+public class SingleFilterUnitCreateCommand extends EditElementCommand {
+
+ /**
+ * @generated
+ */
+ public SingleFilterUnitCreateCommand(CreateElementRequest req) {
+ super(req.getLabel(), null, req);
+ }
+
+ /**
+ * FIXME: replace with setElementToEdit()
+ * @generated
+ */
+ protected EObject getElementToEdit() {
+ EObject container = ((CreateElementRequest) getRequest())
+ .getContainer();
+ if (container instanceof View) {
+ container = ((View) container).getElement();
+ }
+ return container;
+ }
+
+ /**
+ * @generated
+ */
+ public boolean canExecute() {
+ return true;
+
+ }
+
+ /**
+ * @generated NOT
+ */
+ protected CommandResult doExecuteWithResult(IProgressMonitor monitor,
+ IAdaptable info) throws ExecutionException {
+ /*
+ * changes: Liest aus einem Request die ID des Helpers und
+ * erstellt anhand dessen die HelperUnit
+ */
+ CreateElementRequest request = ((CreateElementRequest) getRequest());
+ String helperId = (String) request.getParameters().get(
+ comrel.diagram.part.ComrelPaletteFactory.UNIT_ID);
+ comrel.ComrelFactory factory = comrel.ComrelFactory.eINSTANCE;
+ EObject container = ((CreateElementRequest) getRequest())
+ .getContainer();
+ while (container.eContainer() != null) {
+ container = container.eContainer();
+ }
+ CompositeRefactoring cr = (CompositeRefactoring) container;
+ comrel.SingleFilterHelper helper = cr.getSingleFilterHelper(helperId);
+ if (helper != null && !cr.getHelper().contains(helper)) {
+ cr.getHelper().add(helper);
+ }
+ comrel.SingleFilterUnit newElement;
+ if (helper != null) {
+ newElement = factory.createSingleFilterUnit(helper);
+ } else {
+ newElement = factory.createSingleFilterUnit();
+ }
+ /* end of change */
+
+ CartesianQueuedUnit owner = (CartesianQueuedUnit) getElementToEdit();
+ owner.getHelperUnits().add(newElement);
+
+ doConfigure(newElement, monitor, info);
+
+ ((CreateElementRequest) getRequest()).setNewElement(newElement);
+ return CommandResult.newOKCommandResult(newElement);
+ }
+
+ /**
+ * @generated
+ */
+ protected void doConfigure(SingleFilterUnit newElement,
+ IProgressMonitor monitor, IAdaptable info)
+ throws ExecutionException {
+ IElementType elementType = ((CreateElementRequest) getRequest())
+ .getElementType();
+ ConfigureRequest configureRequest = new ConfigureRequest(
+ getEditingDomain(), newElement, elementType);
+ configureRequest.setClientContext(((CreateElementRequest) getRequest())
+ .getClientContext());
+ configureRequest.addParameters(getRequest().getParameters());
+ ICommand configureCommand = elementType
+ .getEditCommand(configureRequest);
+ if (configureCommand != null && configureCommand.canExecute()) {
+ configureCommand.execute(monitor, info);
+ }
+ }
+
+}
diff --git a/org.eclipse.emf.refactor.comrel.diagram/src/comrel/diagram/edit/commands/SingleInputPort2CreateCommand.java b/org.eclipse.emf.refactor.comrel.diagram/src/comrel/diagram/edit/commands/SingleInputPort2CreateCommand.java
new file mode 100644
index 0000000..9ba7626
--- /dev/null
+++ b/org.eclipse.emf.refactor.comrel.diagram/src/comrel/diagram/edit/commands/SingleInputPort2CreateCommand.java
@@ -0,0 +1,92 @@
+/*
+ *
+ */
+package comrel.diagram.edit.commands;
+
+import org.eclipse.core.commands.ExecutionException;
+import org.eclipse.core.runtime.IAdaptable;
+import org.eclipse.core.runtime.IProgressMonitor;
+import org.eclipse.emf.ecore.EObject;
+import org.eclipse.gmf.runtime.common.core.command.CommandResult;
+import org.eclipse.gmf.runtime.common.core.command.ICommand;
+import org.eclipse.gmf.runtime.emf.type.core.IElementType;
+import org.eclipse.gmf.runtime.emf.type.core.commands.EditElementCommand;
+import org.eclipse.gmf.runtime.emf.type.core.requests.ConfigureRequest;
+import org.eclipse.gmf.runtime.emf.type.core.requests.CreateElementRequest;
+import org.eclipse.gmf.runtime.notation.View;
+
+import comrel.CartesianQueuedUnit;
+import comrel.ComrelFactory;
+import comrel.SingleInputPort;
+
+/**
+ * @generated
+ */
+public class SingleInputPort2CreateCommand extends EditElementCommand {
+
+ /**
+ * @generated
+ */
+ public SingleInputPort2CreateCommand(CreateElementRequest req) {
+ super(req.getLabel(), null, req);
+ }
+
+ /**
+ * FIXME: replace with setElementToEdit()
+ * @generated
+ */
+ protected EObject getElementToEdit() {
+ EObject container = ((CreateElementRequest) getRequest())
+ .getContainer();
+ if (container instanceof View) {
+ container = ((View) container).getElement();
+ }
+ return container;
+ }
+
+ /**
+ * @generated
+ */
+ public boolean canExecute() {
+ return true;
+
+ }
+
+ /**
+ * @generated
+ */
+ protected CommandResult doExecuteWithResult(IProgressMonitor monitor,
+ IAdaptable info) throws ExecutionException {
+ SingleInputPort newElement = ComrelFactory.eINSTANCE
+ .createSingleInputPort();
+
+ CartesianQueuedUnit owner = (CartesianQueuedUnit) getElementToEdit();
+ owner.getSingleInputPorts().add(newElement);
+
+ doConfigure(newElement, monitor, info);
+
+ ((CreateElementRequest) getRequest()).setNewElement(newElement);
+ return CommandResult.newOKCommandResult(newElement);
+ }
+
+ /**
+ * @generated
+ */
+ protected void doConfigure(SingleInputPort newElement,
+ IProgressMonitor monitor, IAdaptable info)
+ throws ExecutionException {
+ IElementType elementType = ((CreateElementRequest) getRequest())
+ .getElementType();
+ ConfigureRequest configureRequest = new ConfigureRequest(
+ getEditingDomain(), newElement, elementType);
+ configureRequest.setClientContext(((CreateElementRequest) getRequest())
+ .getClientContext());
+ configureRequest.addParameters(getRequest().getParameters());
+ ICommand configureCommand = elementType
+ .getEditCommand(configureRequest);
+ if (configureCommand != null && configureCommand.canExecute()) {
+ configureCommand.execute(monitor, info);
+ }
+ }
+
+}
diff --git a/org.eclipse.emf.refactor.comrel.diagram/src/comrel/diagram/edit/commands/SingleInputPort3CreateCommand.java b/org.eclipse.emf.refactor.comrel.diagram/src/comrel/diagram/edit/commands/SingleInputPort3CreateCommand.java
new file mode 100644
index 0000000..68286ec
--- /dev/null
+++ b/org.eclipse.emf.refactor.comrel.diagram/src/comrel/diagram/edit/commands/SingleInputPort3CreateCommand.java
@@ -0,0 +1,92 @@
+/*
+ *
+ */
+package comrel.diagram.edit.commands;
+
+import org.eclipse.core.commands.ExecutionException;
+import org.eclipse.core.runtime.IAdaptable;
+import org.eclipse.core.runtime.IProgressMonitor;
+import org.eclipse.emf.ecore.EObject;
+import org.eclipse.gmf.runtime.common.core.command.CommandResult;
+import org.eclipse.gmf.runtime.common.core.command.ICommand;
+import org.eclipse.gmf.runtime.emf.type.core.IElementType;
+import org.eclipse.gmf.runtime.emf.type.core.commands.EditElementCommand;
+import org.eclipse.gmf.runtime.emf.type.core.requests.ConfigureRequest;
+import org.eclipse.gmf.runtime.emf.type.core.requests.CreateElementRequest;
+import org.eclipse.gmf.runtime.notation.View;
+
+import comrel.ComrelFactory;
+import comrel.ParallelQueuedUnit;
+import comrel.SingleInputPort;
+
+/**
+ * @generated
+ */
+public class SingleInputPort3CreateCommand extends EditElementCommand {
+
+ /**
+ * @generated
+ */
+ public SingleInputPort3CreateCommand(CreateElementRequest req) {
+ super(req.getLabel(), null, req);
+ }
+
+ /**
+ * FIXME: replace with setElementToEdit()
+ * @generated
+ */
+ protected EObject getElementToEdit() {
+ EObject container = ((CreateElementRequest) getRequest())
+ .getContainer();
+ if (container instanceof View) {
+ container = ((View) container).getElement();
+ }
+ return container;
+ }
+
+ /**
+ * @generated
+ */
+ public boolean canExecute() {
+ return true;
+
+ }
+
+ /**
+ * @generated
+ */
+ protected CommandResult doExecuteWithResult(IProgressMonitor monitor,
+ IAdaptable info) throws ExecutionException {
+ SingleInputPort newElement = ComrelFactory.eINSTANCE
+ .createSingleInputPort();
+
+ ParallelQueuedUnit owner = (ParallelQueuedUnit) getElementToEdit();
+ owner.getSingleInputPorts().add(newElement);
+
+ doConfigure(newElement, monitor, info);
+
+ ((CreateElementRequest) getRequest()).setNewElement(newElement);
+ return CommandResult.newOKCommandResult(newElement);
+ }
+
+ /**
+ * @generated
+ */
+ protected void doConfigure(SingleInputPort newElement,
+ IProgressMonitor monitor, IAdaptable info)
+ throws ExecutionException {
+ IElementType elementType = ((CreateElementRequest) getRequest())
+ .getElementType();
+ ConfigureRequest configureRequest = new ConfigureRequest(
+ getEditingDomain(), newElement, elementType);
+ configureRequest.setClientContext(((CreateElementRequest) getRequest())
+ .getClientContext());
+ configureRequest.addParameters(getRequest().getParameters());
+ ICommand configureCommand = elementType
+ .getEditCommand(configureRequest);
+ if (configureCommand != null && configureCommand.canExecute()) {
+ configureCommand.execute(monitor, info);
+ }
+ }
+
+}
diff --git a/org.eclipse.emf.refactor.comrel.diagram/src/comrel/diagram/edit/commands/SingleInputPort4CreateCommand.java b/org.eclipse.emf.refactor.comrel.diagram/src/comrel/diagram/edit/commands/SingleInputPort4CreateCommand.java
new file mode 100644
index 0000000..e27d1d0
--- /dev/null
+++ b/org.eclipse.emf.refactor.comrel.diagram/src/comrel/diagram/edit/commands/SingleInputPort4CreateCommand.java
@@ -0,0 +1,96 @@
+/*
+ *
+ */
+package comrel.diagram.edit.commands;
+
+import org.eclipse.core.commands.ExecutionException;
+import org.eclipse.core.runtime.IAdaptable;
+import org.eclipse.core.runtime.IProgressMonitor;
+import org.eclipse.emf.ecore.EObject;
+import org.eclipse.gmf.runtime.common.core.command.CommandResult;
+import org.eclipse.gmf.runtime.common.core.command.ICommand;
+import org.eclipse.gmf.runtime.emf.type.core.IElementType;
+import org.eclipse.gmf.runtime.emf.type.core.commands.EditElementCommand;
+import org.eclipse.gmf.runtime.emf.type.core.requests.ConfigureRequest;
+import org.eclipse.gmf.runtime.emf.type.core.requests.CreateElementRequest;
+import org.eclipse.gmf.runtime.notation.View;
+
+import comrel.ComrelFactory;
+import comrel.SingleFeatureUnit;
+import comrel.SingleInputPort;
+
+/**
+ * @generated
+ */
+public class SingleInputPort4CreateCommand extends EditElementCommand {
+
+ /**
+ * @generated
+ */
+ public SingleInputPort4CreateCommand(CreateElementRequest req) {
+ super(req.getLabel(), null, req);
+ }
+
+ /**
+ * FIXME: replace with setElementToEdit()
+ * @generated
+ */
+ protected EObject getElementToEdit() {
+ EObject container = ((CreateElementRequest) getRequest())
+ .getContainer();
+ if (container instanceof View) {
+ container = ((View) container).getElement();
+ }
+ return container;
+ }
+
+ /**
+ * @generated
+ */
+ public boolean canExecute() {
+ SingleFeatureUnit container = (SingleFeatureUnit) getElementToEdit();
+ if (container.getInputPort() != null) {
+ return false;
+ }
+ return true;
+
+ }
+
+ /**
+ * @generated
+ */
+ protected CommandResult doExecuteWithResult(IProgressMonitor monitor,
+ IAdaptable info) throws ExecutionException {
+ SingleInputPort newElement = ComrelFactory.eINSTANCE
+ .createSingleInputPort();
+
+ SingleFeatureUnit owner = (SingleFeatureUnit) getElementToEdit();
+ owner.setInputPort(newElement);
+
+ doConfigure(newElement, monitor, info);
+
+ ((CreateElementRequest) getRequest()).setNewElement(newElement);
+ return CommandResult.newOKCommandResult(newElement);
+ }
+
+ /**
+ * @generated
+ */
+ protected void doConfigure(SingleInputPort newElement,
+ IProgressMonitor monitor, IAdaptable info)
+ throws ExecutionException {
+ IElementType elementType = ((CreateElementRequest) getRequest())
+ .getElementType();
+ ConfigureRequest configureRequest = new ConfigureRequest(
+ getEditingDomain(), newElement, elementType);
+ configureRequest.setClientContext(((CreateElementRequest) getRequest())
+ .getClientContext());
+ configureRequest.addParameters(getRequest().getParameters());
+ ICommand configureCommand = elementType
+ .getEditCommand(configureRequest);
+ if (configureCommand != null && configureCommand.canExecute()) {
+ configureCommand.execute(monitor, info);
+ }
+ }
+
+}
diff --git a/org.eclipse.emf.refactor.comrel.diagram/src/comrel/diagram/edit/commands/SingleInputPort5CreateCommand.java b/org.eclipse.emf.refactor.comrel.diagram/src/comrel/diagram/edit/commands/SingleInputPort5CreateCommand.java
new file mode 100644
index 0000000..1965ac6
--- /dev/null
+++ b/org.eclipse.emf.refactor.comrel.diagram/src/comrel/diagram/edit/commands/SingleInputPort5CreateCommand.java
@@ -0,0 +1,96 @@
+/*
+ *
+ */
+package comrel.diagram.edit.commands;
+
+import org.eclipse.core.commands.ExecutionException;
+import org.eclipse.core.runtime.IAdaptable;
+import org.eclipse.core.runtime.IProgressMonitor;
+import org.eclipse.emf.ecore.EObject;
+import org.eclipse.gmf.runtime.common.core.command.CommandResult;
+import org.eclipse.gmf.runtime.common.core.command.ICommand;
+import org.eclipse.gmf.runtime.emf.type.core.IElementType;
+import org.eclipse.gmf.runtime.emf.type.core.commands.EditElementCommand;
+import org.eclipse.gmf.runtime.emf.type.core.requests.ConfigureRequest;
+import org.eclipse.gmf.runtime.emf.type.core.requests.CreateElementRequest;
+import org.eclipse.gmf.runtime.notation.View;
+
+import comrel.ComrelFactory;
+import comrel.MultiFeatureUnit;
+import comrel.SingleInputPort;
+
+/**
+ * @generated
+ */
+public class SingleInputPort5CreateCommand extends EditElementCommand {
+
+ /**
+ * @generated
+ */
+ public SingleInputPort5CreateCommand(CreateElementRequest req) {
+ super(req.getLabel(), null, req);
+ }
+
+ /**
+ * FIXME: replace with setElementToEdit()
+ * @generated
+ */
+ protected EObject getElementToEdit() {
+ EObject container = ((CreateElementRequest) getRequest())
+ .getContainer();
+ if (container instanceof View) {
+ container = ((View) container).getElement();
+ }
+ return container;
+ }
+
+ /**
+ * @generated
+ */
+ public boolean canExecute() {
+ MultiFeatureUnit container = (MultiFeatureUnit) getElementToEdit();
+ if (container.getInputPort() != null) {
+ return false;
+ }
+ return true;
+
+ }
+
+ /**
+ * @generated
+ */
+ protected CommandResult doExecuteWithResult(IProgressMonitor monitor,
+ IAdaptable info) throws ExecutionException {
+ SingleInputPort newElement = ComrelFactory.eINSTANCE
+ .createSingleInputPort();
+
+ MultiFeatureUnit owner = (MultiFeatureUnit) getElementToEdit();
+ owner.setInputPort(newElement);
+
+ doConfigure(newElement, monitor, info);
+
+ ((CreateElementRequest) getRequest()).setNewElement(newElement);
+ return CommandResult.newOKCommandResult(newElement);
+ }
+
+ /**
+ * @generated
+ */
+ protected void doConfigure(SingleInputPort newElement,
+ IProgressMonitor monitor, IAdaptable info)
+ throws ExecutionException {
+ IElementType elementType = ((CreateElementRequest) getRequest())
+ .getElementType();
+ ConfigureRequest configureRequest = new ConfigureRequest(
+ getEditingDomain(), newElement, elementType);
+ configureRequest.setClientContext(((CreateElementRequest) getRequest())
+ .getClientContext());
+ configureRequest.addParameters(getRequest().getParameters());
+ ICommand configureCommand = elementType
+ .getEditCommand(configureRequest);
+ if (configureCommand != null && configureCommand.canExecute()) {
+ configureCommand.execute(monitor, info);
+ }
+ }
+
+}
diff --git a/org.eclipse.emf.refactor.comrel.diagram/src/comrel/diagram/edit/commands/SingleInputPort6CreateCommand.java b/org.eclipse.emf.refactor.comrel.diagram/src/comrel/diagram/edit/commands/SingleInputPort6CreateCommand.java
new file mode 100644
index 0000000..2acb57a
--- /dev/null
+++ b/org.eclipse.emf.refactor.comrel.diagram/src/comrel/diagram/edit/commands/SingleInputPort6CreateCommand.java
@@ -0,0 +1,92 @@
+/*
+ *
+ */
+package comrel.diagram.edit.commands;
+
+import org.eclipse.core.commands.ExecutionException;
+import org.eclipse.core.runtime.IAdaptable;
+import org.eclipse.core.runtime.IProgressMonitor;
+import org.eclipse.emf.ecore.EObject;
+import org.eclipse.gmf.runtime.common.core.command.CommandResult;
+import org.eclipse.gmf.runtime.common.core.command.ICommand;
+import org.eclipse.gmf.runtime.emf.type.core.IElementType;
+import org.eclipse.gmf.runtime.emf.type.core.commands.EditElementCommand;
+import org.eclipse.gmf.runtime.emf.type.core.requests.ConfigureRequest;
+import org.eclipse.gmf.runtime.emf.type.core.requests.CreateElementRequest;
+import org.eclipse.gmf.runtime.notation.View;
+
+import comrel.ComrelFactory;
+import comrel.SingleInputPort;
+import comrel.SingleQueuedUnit;
+
+/**
+ * @generated
+ */
+public class SingleInputPort6CreateCommand extends EditElementCommand {
+
+ /**
+ * @generated
+ */
+ public SingleInputPort6CreateCommand(CreateElementRequest req) {
+ super(req.getLabel(), null, req);
+ }
+
+ /**
+ * FIXME: replace with setElementToEdit()
+ * @generated
+ */
+ protected EObject getElementToEdit() {
+ EObject container = ((CreateElementRequest) getRequest())
+ .getContainer();
+ if (container instanceof View) {
+ container = ((View) container).getElement();
+ }
+ return container;
+ }
+
+ /**
+ * @generated
+ */
+ public boolean canExecute() {
+ return true;
+
+ }
+
+ /**
+ * @generated
+ */
+ protected CommandResult doExecuteWithResult(IProgressMonitor monitor,
+ IAdaptable info) throws ExecutionException {
+ SingleInputPort newElement = ComrelFactory.eINSTANCE
+ .createSingleInputPort();
+
+ SingleQueuedUnit owner = (SingleQueuedUnit) getElementToEdit();
+ owner.getSingleInputPorts().add(newElement);
+
+ doConfigure(newElement, monitor, info);
+
+ ((CreateElementRequest) getRequest()).setNewElement(newElement);
+ return CommandResult.newOKCommandResult(newElement);
+ }
+
+ /**
+ * @generated
+ */
+ protected void doConfigure(SingleInputPort newElement,
+ IProgressMonitor monitor, IAdaptable info)
+ throws ExecutionException {
+ IElementType elementType = ((CreateElementRequest) getRequest())
+ .getElementType();
+ ConfigureRequest configureRequest = new ConfigureRequest(
+ getEditingDomain(), newElement, elementType);
+ configureRequest.setClientContext(((CreateElementRequest) getRequest())
+ .getClientContext());
+ configureRequest.addParameters(getRequest().getParameters());
+ ICommand configureCommand = elementType
+ .getEditCommand(configureRequest);
+ if (configureCommand != null && configureCommand.canExecute()) {
+ configureCommand.execute(monitor, info);
+ }
+ }
+
+}
diff --git a/org.eclipse.emf.refactor.comrel.diagram/src/comrel/diagram/edit/commands/SingleInputPort7CreateCommand.java b/org.eclipse.emf.refactor.comrel.diagram/src/comrel/diagram/edit/commands/SingleInputPort7CreateCommand.java
new file mode 100644
index 0000000..ba6e5ad
--- /dev/null
+++ b/org.eclipse.emf.refactor.comrel.diagram/src/comrel/diagram/edit/commands/SingleInputPort7CreateCommand.java
@@ -0,0 +1,92 @@
+/*
+ *
+ */
+package comrel.diagram.edit.commands;
+
+import org.eclipse.core.commands.ExecutionException;
+import org.eclipse.core.runtime.IAdaptable;
+import org.eclipse.core.runtime.IProgressMonitor;
+import org.eclipse.emf.ecore.EObject;
+import org.eclipse.gmf.runtime.common.core.command.CommandResult;
+import org.eclipse.gmf.runtime.common.core.command.ICommand;
+import org.eclipse.gmf.runtime.emf.type.core.IElementType;
+import org.eclipse.gmf.runtime.emf.type.core.commands.EditElementCommand;
+import org.eclipse.gmf.runtime.emf.type.core.requests.ConfigureRequest;
+import org.eclipse.gmf.runtime.emf.type.core.requests.CreateElementRequest;
+import org.eclipse.gmf.runtime.notation.View;
+
+import comrel.ComrelFactory;
+import comrel.SequentialUnit;
+import comrel.SingleInputPort;
+
+/**
+ * @generated
+ */
+public class SingleInputPort7CreateCommand extends EditElementCommand {
+
+ /**
+ * @generated
+ */
+ public SingleInputPort7CreateCommand(CreateElementRequest req) {
+ super(req.getLabel(), null, req);
+ }
+
+ /**
+ * FIXME: replace with setElementToEdit()
+ * @generated
+ */
+ protected EObject getElementToEdit() {
+ EObject container = ((CreateElementRequest) getRequest())
+ .getContainer();
+ if (container instanceof View) {
+ container = ((View) container).getElement();
+ }
+ return container;
+ }
+
+ /**
+ * @generated
+ */
+ public boolean canExecute() {
+ return true;
+
+ }
+
+ /**
+ * @generated
+ */
+ protected CommandResult doExecuteWithResult(IProgressMonitor monitor,
+ IAdaptable info) throws ExecutionException {
+ SingleInputPort newElement = ComrelFactory.eINSTANCE
+ .createSingleInputPort();
+
+ SequentialUnit owner = (SequentialUnit) getElementToEdit();
+ owner.getInputPorts().add(newElement);
+
+ doConfigure(newElement, monitor, info);
+
+ ((CreateElementRequest) getRequest()).setNewElement(newElement);
+ return CommandResult.newOKCommandResult(newElement);
+ }
+
+ /**
+ * @generated
+ */
+ protected void doConfigure(SingleInputPort newElement,
+ IProgressMonitor monitor, IAdaptable info)
+ throws ExecutionException {
+ IElementType elementType = ((CreateElementRequest) getRequest())
+ .getElementType();
+ ConfigureRequest configureRequest = new ConfigureRequest(
+ getEditingDomain(), newElement, elementType);
+ configureRequest.setClientContext(((CreateElementRequest) getRequest())
+ .getClientContext());
+ configureRequest.addParameters(getRequest().getParameters());
+ ICommand configureCommand = elementType
+ .getEditCommand(configureRequest);
+ if (configureCommand != null && configureCommand.canExecute()) {
+ configureCommand.execute(monitor, info);
+ }
+ }
+
+}
diff --git a/org.eclipse.emf.refactor.comrel.diagram/src/comrel/diagram/edit/commands/SingleInputPort8CreateCommand.java b/org.eclipse.emf.refactor.comrel.diagram/src/comrel/diagram/edit/commands/SingleInputPort8CreateCommand.java
new file mode 100644
index 0000000..5798cc8
--- /dev/null
+++ b/org.eclipse.emf.refactor.comrel.diagram/src/comrel/diagram/edit/commands/SingleInputPort8CreateCommand.java
@@ -0,0 +1,92 @@
+/*
+ *
+ */
+package comrel.diagram.edit.commands;
+
+import org.eclipse.core.commands.ExecutionException;
+import org.eclipse.core.runtime.IAdaptable;
+import org.eclipse.core.runtime.IProgressMonitor;
+import org.eclipse.emf.ecore.EObject;
+import org.eclipse.gmf.runtime.common.core.command.CommandResult;
+import org.eclipse.gmf.runtime.common.core.command.ICommand;
+import org.eclipse.gmf.runtime.emf.type.core.IElementType;
+import org.eclipse.gmf.runtime.emf.type.core.commands.EditElementCommand;
+import org.eclipse.gmf.runtime.emf.type.core.requests.ConfigureRequest;
+import org.eclipse.gmf.runtime.emf.type.core.requests.CreateElementRequest;
+import org.eclipse.gmf.runtime.notation.View;
+
+import comrel.ComrelFactory;
+import comrel.ConditionalUnit;
+import comrel.SingleInputPort;
+
+/**
+ * @generated
+ */
+public class SingleInputPort8CreateCommand extends EditElementCommand {
+
+ /**
+ * @generated
+ */
+ public SingleInputPort8CreateCommand(CreateElementRequest req) {
+ super(req.getLabel(), null, req);
+ }
+
+ /**
+ * FIXME: replace with setElementToEdit()
+ * @generated
+ */
+ protected EObject getElementToEdit() {
+ EObject container = ((CreateElementRequest) getRequest())
+ .getContainer();
+ if (container instanceof View) {
+ container = ((View) container).getElement();
+ }
+ return container;
+ }
+
+ /**
+ * @generated
+ */
+ public boolean canExecute() {
+ return true;
+
+ }
+
+ /**
+ * @generated
+ */
+ protected CommandResult doExecuteWithResult(IProgressMonitor monitor,
+ IAdaptable info) throws ExecutionException {
+ SingleInputPort newElement = ComrelFactory.eINSTANCE
+ .createSingleInputPort();
+
+ ConditionalUnit owner = (ConditionalUnit) getElementToEdit();
+ owner.getInputPorts().add(newElement);
+
+ doConfigure(newElement, monitor, info);
+
+ ((CreateElementRequest) getRequest()).setNewElement(newElement);
+ return CommandResult.newOKCommandResult(newElement);
+ }
+
+ /**
+ * @generated
+ */
+ protected void doConfigure(SingleInputPort newElement,
+ IProgressMonitor monitor, IAdaptable info)
+ throws ExecutionException {
+ IElementType elementType = ((CreateElementRequest) getRequest())
+ .getElementType();
+ ConfigureRequest configureRequest = new ConfigureRequest(
+ getEditingDomain(), newElement, elementType);
+ configureRequest.setClientContext(((CreateElementRequest) getRequest())
+ .getClientContext());
+ configureRequest.addParameters(getRequest().getParameters());
+ ICommand configureCommand = elementType
+ .getEditCommand(configureRequest);
+ if (configureCommand != null && configureCommand.canExecute()) {
+ configureCommand.execute(monitor, info);
+ }
+ }
+
+}
diff --git a/org.eclipse.emf.refactor.comrel.diagram/src/comrel/diagram/edit/commands/SingleInputPort9CreateCommand.java b/org.eclipse.emf.refactor.comrel.diagram/src/comrel/diagram/edit/commands/SingleInputPort9CreateCommand.java
new file mode 100644
index 0000000..e9b8755
--- /dev/null
+++ b/org.eclipse.emf.refactor.comrel.diagram/src/comrel/diagram/edit/commands/SingleInputPort9CreateCommand.java
@@ -0,0 +1,102 @@
+/*
+ *
+ */
+package comrel.diagram.edit.commands;
+
+import org.eclipse.core.commands.ExecutionException;
+import org.eclipse.core.runtime.IAdaptable;
+import org.eclipse.core.runtime.IProgressMonitor;
+import org.eclipse.emf.ecore.EObject;
+import org.eclipse.gmf.runtime.common.core.command.CommandResult;
+import org.eclipse.gmf.runtime.common.core.command.ICommand;
+import org.eclipse.gmf.runtime.emf.type.core.IElementType;
+import org.eclipse.gmf.runtime.emf.type.core.commands.EditElementCommand;
+import org.eclipse.gmf.runtime.emf.type.core.requests.ConfigureRequest;
+import org.eclipse.gmf.runtime.emf.type.core.requests.CreateElementRequest;
+import org.eclipse.gmf.runtime.notation.View;
+
+import comrel.AtomicUnit;
+import comrel.ComrelFactory;
+import comrel.SingleInputPort;
+
+/**
+ * @generated
+ */
+public class SingleInputPort9CreateCommand extends EditElementCommand {
+
+ /**
+ * @generated
+ */
+ public SingleInputPort9CreateCommand(CreateElementRequest req) {
+ super(req.getLabel(), null, req);
+ }
+
+ /**
+ * FIXME: replace with setElementToEdit()
+ * @generated
+ */
+ protected EObject getElementToEdit() {
+ EObject container = ((CreateElementRequest) getRequest())
+ .getContainer();
+ if (container instanceof View) {
+ container = ((View) container).getElement();
+ }
+ return container;
+ }
+
+ /**
+ * @generated
+ */
+ public boolean canExecute() {
+ return true;
+
+ }
+
+ /**
+ * @generated NOT
+ */
+ protected CommandResult doExecuteWithResult(IProgressMonitor monitor,
+ IAdaptable info) throws ExecutionException {
+ AtomicUnit owner = (AtomicUnit) getElementToEdit();
+ /*
+ * Begin Changes: Only the AtomicRefactoirngInputPorts are alloweded
+ */
+ if (owner.getInputPorts().size() != owner.getModelRefactoring()
+ .getInputPorts().size()) {
+ SingleInputPort newElement = ComrelFactory.eINSTANCE
+ .createSingleInputPort();
+
+ owner.getInputPorts().add(newElement);
+
+ doConfigure(newElement, monitor, info);
+
+ ((CreateElementRequest) getRequest()).setNewElement(newElement);
+ return CommandResult.newOKCommandResult(newElement);
+ }
+ return CommandResult.newCancelledCommandResult();
+ /*
+ * End Changes!
+ */
+ }
+
+ /**
+ * @generated
+ */
+ protected void doConfigure(SingleInputPort newElement,
+ IProgressMonitor monitor, IAdaptable info)
+ throws ExecutionException {
+ IElementType elementType = ((CreateElementRequest) getRequest())
+ .getElementType();
+ ConfigureRequest configureRequest = new ConfigureRequest(
+ getEditingDomain(), newElement, elementType);
+ configureRequest.setClientContext(((CreateElementRequest) getRequest())
+ .getClientContext());
+ configureRequest.addParameters(getRequest().getParameters());
+ ICommand configureCommand = elementType
+ .getEditCommand(configureRequest);
+ if (configureCommand != null && configureCommand.canExecute()) {
+ configureCommand.execute(monitor, info);
+ }
+ }
+
+}
diff --git a/org.eclipse.emf.refactor.comrel.diagram/src/comrel/diagram/edit/commands/SingleInputPortCreateCommand.java b/org.eclipse.emf.refactor.comrel.diagram/src/comrel/diagram/edit/commands/SingleInputPortCreateCommand.java
new file mode 100644
index 0000000..0e66242
--- /dev/null
+++ b/org.eclipse.emf.refactor.comrel.diagram/src/comrel/diagram/edit/commands/SingleInputPortCreateCommand.java
@@ -0,0 +1,92 @@
+/*
+ *
+ */
+package comrel.diagram.edit.commands;
+
+import org.eclipse.core.commands.ExecutionException;
+import org.eclipse.core.runtime.IAdaptable;
+import org.eclipse.core.runtime.IProgressMonitor;
+import org.eclipse.emf.ecore.EObject;
+import org.eclipse.gmf.runtime.common.core.command.CommandResult;
+import org.eclipse.gmf.runtime.common.core.command.ICommand;
+import org.eclipse.gmf.runtime.emf.type.core.IElementType;
+import org.eclipse.gmf.runtime.emf.type.core.commands.EditElementCommand;
+import org.eclipse.gmf.runtime.emf.type.core.requests.ConfigureRequest;
+import org.eclipse.gmf.runtime.emf.type.core.requests.CreateElementRequest;
+import org.eclipse.gmf.runtime.notation.View;
+
+import comrel.ComrelFactory;
+import comrel.ModelRefactoring;
+import comrel.SingleInputPort;
+
+/**
+ * @generated
+ */
+public class SingleInputPortCreateCommand extends EditElementCommand {
+
+ /**
+ * @generated
+ */
+ public SingleInputPortCreateCommand(CreateElementRequest req) {
+ super(req.getLabel(), null, req);
+ }
+
+ /**
+ * FIXME: replace with setElementToEdit()
+ * @generated
+ */
+ protected EObject getElementToEdit() {
+ EObject container = ((CreateElementRequest) getRequest())
+ .getContainer();
+ if (container instanceof View) {
+ container = ((View) container).getElement();
+ }
+ return container;
+ }
+
+ /**
+ * @generated
+ */
+ public boolean canExecute() {
+ return true;
+
+ }
+
+ /**
+ * @generated
+ */
+ protected CommandResult doExecuteWithResult(IProgressMonitor monitor,
+ IAdaptable info) throws ExecutionException {
+ SingleInputPort newElement = ComrelFactory.eINSTANCE
+ .createSingleInputPort();
+
+ ModelRefactoring owner = (ModelRefactoring) getElementToEdit();
+ owner.getInputPorts().add(newElement);
+
+ doConfigure(newElement, monitor, info);
+
+ ((CreateElementRequest) getRequest()).setNewElement(newElement);
+ return CommandResult.newOKCommandResult(newElement);
+ }
+
+ /**
+ * @generated
+ */
+ protected void doConfigure(SingleInputPort newElement,
+ IProgressMonitor monitor, IAdaptable info)
+ throws ExecutionException {
+ IElementType elementType = ((CreateElementRequest) getRequest())
+ .getElementType();
+ ConfigureRequest configureRequest = new ConfigureRequest(
+ getEditingDomain(), newElement, elementType);
+ configureRequest.setClientContext(((CreateElementRequest) getRequest())
+ .getClientContext());
+ configureRequest.addParameters(getRequest().getParameters());
+ ICommand configureCommand = elementType
+ .getEditCommand(configureRequest);
+ if (configureCommand != null && configureCommand.canExecute()) {
+ configureCommand.execute(monitor, info);
+ }
+ }
+
+}
diff --git a/org.eclipse.emf.refactor.comrel.diagram/src/comrel/diagram/edit/commands/SingleOutputPort2CreateCommand.java b/org.eclipse.emf.refactor.comrel.diagram/src/comrel/diagram/edit/commands/SingleOutputPort2CreateCommand.java
new file mode 100644
index 0000000..0732846
--- /dev/null
+++ b/org.eclipse.emf.refactor.comrel.diagram/src/comrel/diagram/edit/commands/SingleOutputPort2CreateCommand.java
@@ -0,0 +1,96 @@
+/*
+ *
+ */
+package comrel.diagram.edit.commands;
+
+import org.eclipse.core.commands.ExecutionException;
+import org.eclipse.core.runtime.IAdaptable;
+import org.eclipse.core.runtime.IProgressMonitor;
+import org.eclipse.emf.ecore.EObject;
+import org.eclipse.gmf.runtime.common.core.command.CommandResult;
+import org.eclipse.gmf.runtime.common.core.command.ICommand;
+import org.eclipse.gmf.runtime.emf.type.core.IElementType;
+import org.eclipse.gmf.runtime.emf.type.core.commands.EditElementCommand;
+import org.eclipse.gmf.runtime.emf.type.core.requests.ConfigureRequest;
+import org.eclipse.gmf.runtime.emf.type.core.requests.CreateElementRequest;
+import org.eclipse.gmf.runtime.notation.View;
+
+import comrel.ComrelFactory;
+import comrel.SingleFilterUnit;
+import comrel.SingleOutputPort;
+
+/**
+ * @generated
+ */
+public class SingleOutputPort2CreateCommand extends EditElementCommand {
+
+ /**
+ * @generated
+ */
+ public SingleOutputPort2CreateCommand(CreateElementRequest req) {
+ super(req.getLabel(), null, req);
+ }
+
+ /**
+ * FIXME: replace with setElementToEdit()
+ * @generated
+ */
+ protected EObject getElementToEdit() {
+ EObject container = ((CreateElementRequest) getRequest())
+ .getContainer();
+ if (container instanceof View) {
+ container = ((View) container).getElement();
+ }
+ return container;
+ }
+
+ /**
+ * @generated
+ */
+ public boolean canExecute() {
+ SingleFilterUnit container = (SingleFilterUnit) getElementToEdit();
+ if (container.getOutputPort() != null) {
+ return false;
+ }
+ return true;
+
+ }
+
+ /**
+ * @generated
+ */
+ protected CommandResult doExecuteWithResult(IProgressMonitor monitor,
+ IAdaptable info) throws ExecutionException {
+ SingleOutputPort newElement = ComrelFactory.eINSTANCE
+ .createSingleOutputPort();
+
+ SingleFilterUnit owner = (SingleFilterUnit) getElementToEdit();
+ owner.setOutputPort(newElement);
+
+ doConfigure(newElement, monitor, info);
+
+ ((CreateElementRequest) getRequest()).setNewElement(newElement);
+ return CommandResult.newOKCommandResult(newElement);
+ }
+
+ /**
+ * @generated
+ */
+ protected void doConfigure(SingleOutputPort newElement,
+ IProgressMonitor monitor, IAdaptable info)
+ throws ExecutionException {
+ IElementType elementType = ((CreateElementRequest) getRequest())
+ .getElementType();
+ ConfigureRequest configureRequest = new ConfigureRequest(
+ getEditingDomain(), newElement, elementType);
+ configureRequest.setClientContext(((CreateElementRequest) getRequest())
+ .getClientContext());
+ configureRequest.addParameters(getRequest().getParameters());
+ ICommand configureCommand = elementType
+ .getEditCommand(configureRequest);
+ if (configureCommand != null && configureCommand.canExecute()) {
+ configureCommand.execute(monitor, info);
+ }
+ }
+
+}
diff --git a/org.eclipse.emf.refactor.comrel.diagram/src/comrel/diagram/edit/commands/SingleOutputPortCreateCommand.java b/org.eclipse.emf.refactor.comrel.diagram/src/comrel/diagram/edit/commands/SingleOutputPortCreateCommand.java
new file mode 100644
index 0000000..f44d4e0
--- /dev/null
+++ b/org.eclipse.emf.refactor.comrel.diagram/src/comrel/diagram/edit/commands/SingleOutputPortCreateCommand.java
@@ -0,0 +1,96 @@
+/*
+ *
+ */
+package comrel.diagram.edit.commands;
+
+import org.eclipse.core.commands.ExecutionException;
+import org.eclipse.core.runtime.IAdaptable;
+import org.eclipse.core.runtime.IProgressMonitor;
+import org.eclipse.emf.ecore.EObject;
+import org.eclipse.gmf.runtime.common.core.command.CommandResult;
+import org.eclipse.gmf.runtime.common.core.command.ICommand;
+import org.eclipse.gmf.runtime.emf.type.core.IElementType;
+import org.eclipse.gmf.runtime.emf.type.core.commands.EditElementCommand;
+import org.eclipse.gmf.runtime.emf.type.core.requests.ConfigureRequest;
+import org.eclipse.gmf.runtime.emf.type.core.requests.CreateElementRequest;
+import org.eclipse.gmf.runtime.notation.View;
+
+import comrel.ComrelFactory;
+import comrel.SingleFeatureUnit;
+import comrel.SingleOutputPort;
+
+/**
+ * @generated
+ */
+public class SingleOutputPortCreateCommand extends EditElementCommand {
+
+ /**
+ * @generated
+ */
+ public SingleOutputPortCreateCommand(CreateElementRequest req) {
+ super(req.getLabel(), null, req);
+ }
+
+ /**
+ * FIXME: replace with setElementToEdit()
+ * @generated
+ */
+ protected EObject getElementToEdit() {
+ EObject container = ((CreateElementRequest) getRequest())
+ .getContainer();
+ if (container instanceof View) {
+ container = ((View) container).getElement();
+ }
+ return container;
+ }
+
+ /**
+ * @generated
+ */
+ public boolean canExecute() {
+ SingleFeatureUnit container = (SingleFeatureUnit) getElementToEdit();
+ if (container.getOutputPort() != null) {
+ return false;
+ }
+ return true;
+
+ }
+
+ /**
+ * @generated
+ */
+ protected CommandResult doExecuteWithResult(IProgressMonitor monitor,
+ IAdaptable info) throws ExecutionException {
+ SingleOutputPort newElement = ComrelFactory.eINSTANCE
+ .createSingleOutputPort();
+
+ SingleFeatureUnit owner = (SingleFeatureUnit) getElementToEdit();
+ owner.setOutputPort(newElement);
+
+ doConfigure(newElement, monitor, info);
+
+ ((CreateElementRequest) getRequest()).setNewElement(newElement);
+ return CommandResult.newOKCommandResult(newElement);
+ }
+
+ /**
+ * @generated
+ */
+ protected void doConfigure(SingleOutputPort newElement,
+ IProgressMonitor monitor, IAdaptable info)
+ throws ExecutionException {
+ IElementType elementType = ((CreateElementRequest) getRequest())
+ .getElementType();
+ ConfigureRequest configureRequest = new ConfigureRequest(
+ getEditingDomain(), newElement, elementType);
+ configureRequest.setClientContext(((CreateElementRequest) getRequest())
+ .getClientContext());
+ configureRequest.addParameters(getRequest().getParameters());
+ ICommand configureCommand = elementType
+ .getEditCommand(configureRequest);
+ if (configureCommand != null && configureCommand.canExecute()) {
+ configureCommand.execute(monitor, info);
+ }
+ }
+
+}
diff --git a/org.eclipse.emf.refactor.comrel.diagram/src/comrel/diagram/edit/commands/SinglePortMappingCreateCommand.java b/org.eclipse.emf.refactor.comrel.diagram/src/comrel/diagram/edit/commands/SinglePortMappingCreateCommand.java
new file mode 100644
index 0000000..2cfe773
--- /dev/null
+++ b/org.eclipse.emf.refactor.comrel.diagram/src/comrel/diagram/edit/commands/SinglePortMappingCreateCommand.java
@@ -0,0 +1,173 @@
+/*
+ *
+ */
+package comrel.diagram.edit.commands;
+
+import org.eclipse.core.commands.ExecutionException;
+import org.eclipse.core.runtime.IAdaptable;
+import org.eclipse.core.runtime.IProgressMonitor;
+import org.eclipse.emf.ecore.EObject;
+import org.eclipse.gmf.runtime.common.core.command.CommandResult;
+import org.eclipse.gmf.runtime.common.core.command.ICommand;
+import org.eclipse.gmf.runtime.emf.type.core.IElementType;
+import org.eclipse.gmf.runtime.emf.type.core.commands.EditElementCommand;
+import org.eclipse.gmf.runtime.emf.type.core.requests.ConfigureRequest;
+import org.eclipse.gmf.runtime.emf.type.core.requests.CreateElementRequest;
+import org.eclipse.gmf.runtime.emf.type.core.requests.CreateRelationshipRequest;
+
+import comrel.CompositeRefactoring;
+import comrel.ComrelFactory;
+import comrel.SingleInputPort;
+import comrel.SinglePort;
+import comrel.SinglePortMapping;
+import comrel.diagram.edit.policies.ComrelBaseItemSemanticEditPolicy;
+
+/**
+ * @generated
+ */
+public class SinglePortMappingCreateCommand extends EditElementCommand {
+
+ /**
+ * @generated
+ */
+ private final EObject source;
+
+ /**
+ * @generated
+ */
+ private final EObject target;
+
+ /**
+ * @generated
+ */
+ private final CompositeRefactoring container;
+
+ /**
+ * @generated
+ */
+ public SinglePortMappingCreateCommand(CreateRelationshipRequest request,
+ EObject source, EObject target) {
+ super(request.getLabel(), null, request);
+ this.source = source;
+ this.target = target;
+ container = deduceContainer(source, target);
+ }
+
+ /**
+ * @generated
+ */
+ public boolean canExecute() {
+ if (source == null && target == null) {
+ return false;
+ }
+ if (source != null && false == source instanceof SinglePort) {
+ return false;
+ }
+ if (target != null && false == target instanceof SingleInputPort) {
+ return false;
+ }
+ if (getSource() == null) {
+ return true; // link creation is in progress; source is not defined yet
+ }
+ // target may be null here but it's possible to check constraint
+ if (getContainer() == null) {
+ return false;
+ }
+ return ComrelBaseItemSemanticEditPolicy.getLinkConstraints()
+ .canCreateSinglePortMapping_4001(getContainer(), getSource(),
+ getTarget());
+ }
+
+ /**
+ * @generated
+ */
+ protected CommandResult doExecuteWithResult(IProgressMonitor monitor,
+ IAdaptable info) throws ExecutionException {
+ if (!canExecute()) {
+ throw new ExecutionException(
+ "Invalid arguments in create link command"); //$NON-NLS-1$
+ }
+
+ SinglePortMapping newElement = ComrelFactory.eINSTANCE
+ .createSinglePortMapping();
+ getContainer().getPortMappings().add(newElement);
+ newElement.setSource(getSource());
+ newElement.setTarget(getTarget());
+ doConfigure(newElement, monitor, info);
+ ((CreateElementRequest) getRequest()).setNewElement(newElement);
+ return CommandResult.newOKCommandResult(newElement);
+
+ }
+
+ /**
+ * @generated
+ */
+ protected void doConfigure(SinglePortMapping newElement,
+ IProgressMonitor monitor, IAdaptable info)
+ throws ExecutionException {
+ IElementType elementType = ((CreateElementRequest) getRequest())
+ .getElementType();
+ ConfigureRequest configureRequest = new ConfigureRequest(
+ getEditingDomain(), newElement, elementType);
+ configureRequest.setClientContext(((CreateElementRequest) getRequest())
+ .getClientContext());
+ configureRequest.addParameters(getRequest().getParameters());
+ configureRequest.setParameter(CreateRelationshipRequest.SOURCE,
+ getSource());
+ configureRequest.setParameter(CreateRelationshipRequest.TARGET,
+ getTarget());
+ ICommand configureCommand = elementType
+ .getEditCommand(configureRequest);
+ if (configureCommand != null && configureCommand.canExecute()) {
+ configureCommand.execute(monitor, info);
+ }
+ }
+
+ /**
+ * @generated
+ */
+ protected void setElementToEdit(EObject element) {
+ throw new UnsupportedOperationException();
+ }
+
+ /**
+ * @generated
+ */
+ protected SinglePort getSource() {
+ return (SinglePort) source;
+ }
+
+ /**
+ * @generated
+ */
+ protected SingleInputPort getTarget() {
+ return (SingleInputPort) target;
+ }
+
+ /**
+ * @generated
+ */
+ public CompositeRefactoring getContainer() {
+ return container;
+ }
+
+ /**
+ * Default approach is to traverse ancestors of the source to find instance of container.
+ * Modify with appropriate logic.
+ * @generated
+ */
+ private static CompositeRefactoring deduceContainer(EObject source,
+ EObject target) {
+ // Find container element for the new link.
+ // Climb up by containment hierarchy starting from the source
+ // and return the first element that is instance of the container class.
+ for (EObject element = source; element != null; element = element
+ .eContainer()) {
+ if (element instanceof CompositeRefactoring) {
+ return (CompositeRefactoring) element;
+ }
+ }
+ return null;
+ }
+
+}
diff --git a/org.eclipse.emf.refactor.comrel.diagram/src/comrel/diagram/edit/commands/SinglePortMappingReorientCommand.java b/org.eclipse.emf.refactor.comrel.diagram/src/comrel/diagram/edit/commands/SinglePortMappingReorientCommand.java
new file mode 100644
index 0000000..c7a3afb
--- /dev/null
+++ b/org.eclipse.emf.refactor.comrel.diagram/src/comrel/diagram/edit/commands/SinglePortMappingReorientCommand.java
@@ -0,0 +1,170 @@
+/*
+ *
+ */
+package comrel.diagram.edit.commands;
+
+import org.eclipse.core.commands.ExecutionException;
+import org.eclipse.core.runtime.IAdaptable;
+import org.eclipse.core.runtime.IProgressMonitor;
+import org.eclipse.emf.ecore.EObject;
+import org.eclipse.gmf.runtime.common.core.command.CommandResult;
+import org.eclipse.gmf.runtime.emf.type.core.commands.EditElementCommand;
+import org.eclipse.gmf.runtime.emf.type.core.requests.ReorientRelationshipRequest;
+
+import comrel.CompositeRefactoring;
+import comrel.SingleInputPort;
+import comrel.SinglePort;
+import comrel.SinglePortMapping;
+import comrel.diagram.edit.policies.ComrelBaseItemSemanticEditPolicy;
+
+/**
+ * @generated
+ */
+public class SinglePortMappingReorientCommand extends EditElementCommand {
+
+ /**
+ * @generated
+ */
+ private final int reorientDirection;
+
+ /**
+ * @generated
+ */
+ private final EObject oldEnd;
+
+ /**
+ * @generated
+ */
+ private final EObject newEnd;
+
+ /**
+ * @generated
+ */
+ public SinglePortMappingReorientCommand(ReorientRelationshipRequest request) {
+ super(request.getLabel(), request.getRelationship(), request);
+ reorientDirection = request.getDirection();
+ oldEnd = request.getOldRelationshipEnd();
+ newEnd = request.getNewRelationshipEnd();
+ }
+
+ /**
+ * @generated
+ */
+ public boolean canExecute() {
+ if (false == getElementToEdit() instanceof SinglePortMapping) {
+ return false;
+ }
+ if (reorientDirection == ReorientRelationshipRequest.REORIENT_SOURCE) {
+ return canReorientSource();
+ }
+ if (reorientDirection == ReorientRelationshipRequest.REORIENT_TARGET) {
+ return canReorientTarget();
+ }
+ return false;
+ }
+
+ /**
+ * @generated
+ */
+ protected boolean canReorientSource() {
+ if (!(oldEnd instanceof SinglePort && newEnd instanceof SinglePort)) {
+ return false;
+ }
+ SingleInputPort target = getLink().getTarget();
+ if (!(getLink().eContainer() instanceof CompositeRefactoring)) {
+ return false;
+ }
+ CompositeRefactoring container = (CompositeRefactoring) getLink()
+ .eContainer();
+ return ComrelBaseItemSemanticEditPolicy.getLinkConstraints()
+ .canExistSinglePortMapping_4001(container, getLink(),
+ getNewSource(), target);
+ }
+
+ /**
+ * @generated
+ */
+ protected boolean canReorientTarget() {
+ if (!(oldEnd instanceof SingleInputPort && newEnd instanceof SingleInputPort)) {
+ return false;
+ }
+ SinglePort source = getLink().getSource();
+ if (!(getLink().eContainer() instanceof CompositeRefactoring)) {
+ return false;
+ }
+ CompositeRefactoring container = (CompositeRefactoring) getLink()
+ .eContainer();
+ return ComrelBaseItemSemanticEditPolicy.getLinkConstraints()
+ .canExistSinglePortMapping_4001(container, getLink(), source,
+ getNewTarget());
+ }
+
+ /**
+ * @generated
+ */
+ protected CommandResult doExecuteWithResult(IProgressMonitor monitor,
+ IAdaptable info) throws ExecutionException {
+ if (!canExecute()) {
+ throw new ExecutionException(
+ "Invalid arguments in reorient link command"); //$NON-NLS-1$
+ }
+ if (reorientDirection == ReorientRelationshipRequest.REORIENT_SOURCE) {
+ return reorientSource();
+ }
+ if (reorientDirection == ReorientRelationshipRequest.REORIENT_TARGET) {
+ return reorientTarget();
+ }
+ throw new IllegalStateException();
+ }
+
+ /**
+ * @generated
+ */
+ protected CommandResult reorientSource() throws ExecutionException {
+ getLink().setSource(getNewSource());
+ return CommandResult.newOKCommandResult(getLink());
+ }
+
+ /**
+ * @generated
+ */
+ protected CommandResult reorientTarget() throws ExecutionException {
+ getLink().setTarget(getNewTarget());
+ return CommandResult.newOKCommandResult(getLink());
+ }
+
+ /**
+ * @generated
+ */
+ protected SinglePortMapping getLink() {
+ return (SinglePortMapping) getElementToEdit();
+ }
+
+ /**
+ * @generated
+ */
+ protected SinglePort getOldSource() {
+ return (SinglePort) oldEnd;
+ }
+
+ /**
+ * @generated
+ */
+ protected SinglePort getNewSource() {
+ return (SinglePort) newEnd;
+ }
+
+ /**
+ * @generated
+ */
+ protected SingleInputPort getOldTarget() {
+ return (SingleInputPort) oldEnd;
+ }
+
+ /**
+ * @generated
+ */
+ protected SingleInputPort getNewTarget() {
+ return (SingleInputPort) newEnd;
+ }
+}
diff --git a/org.eclipse.emf.refactor.comrel.diagram/src/comrel/diagram/edit/commands/SingleQueuedUnit2CreateCommand.java b/org.eclipse.emf.refactor.comrel.diagram/src/comrel/diagram/edit/commands/SingleQueuedUnit2CreateCommand.java
new file mode 100644
index 0000000..592be49
--- /dev/null
+++ b/org.eclipse.emf.refactor.comrel.diagram/src/comrel/diagram/edit/commands/SingleQueuedUnit2CreateCommand.java
@@ -0,0 +1,96 @@
+/*
+ *
+ */
+package comrel.diagram.edit.commands;
+
+import org.eclipse.core.commands.ExecutionException;
+import org.eclipse.core.runtime.IAdaptable;
+import org.eclipse.core.runtime.IProgressMonitor;
+import org.eclipse.emf.ecore.EObject;
+import org.eclipse.gmf.runtime.common.core.command.CommandResult;
+import org.eclipse.gmf.runtime.common.core.command.ICommand;
+import org.eclipse.gmf.runtime.emf.type.core.IElementType;
+import org.eclipse.gmf.runtime.emf.type.core.commands.EditElementCommand;
+import org.eclipse.gmf.runtime.emf.type.core.requests.ConfigureRequest;
+import org.eclipse.gmf.runtime.emf.type.core.requests.CreateElementRequest;
+import org.eclipse.gmf.runtime.notation.View;
+
+import comrel.CartesianQueuedUnit;
+import comrel.ComrelFactory;
+import comrel.SingleQueuedUnit;
+
+/**
+ * @generated
+ */
+public class SingleQueuedUnit2CreateCommand extends EditElementCommand {
+
+ /**
+ * @generated
+ */
+ public SingleQueuedUnit2CreateCommand(CreateElementRequest req) {
+ super(req.getLabel(), null, req);
+ }
+
+ /**
+ * FIXME: replace with setElementToEdit()
+ * @generated
+ */
+ protected EObject getElementToEdit() {
+ EObject container = ((CreateElementRequest) getRequest())
+ .getContainer();
+ if (container instanceof View) {
+ container = ((View) container).getElement();
+ }
+ return container;
+ }
+
+ /**
+ * @generated
+ */
+ public boolean canExecute() {
+ CartesianQueuedUnit container = (CartesianQueuedUnit) getElementToEdit();
+ if (container.getRefactoringUnit() != null) {
+ return false;
+ }
+ return true;
+
+ }
+
+ /**
+ * @generated
+ */
+ protected CommandResult doExecuteWithResult(IProgressMonitor monitor,
+ IAdaptable info) throws ExecutionException {
+ SingleQueuedUnit newElement = ComrelFactory.eINSTANCE
+ .createSingleQueuedUnit();
+
+ CartesianQueuedUnit owner = (CartesianQueuedUnit) getElementToEdit();
+ owner.setRefactoringUnit(newElement);
+
+ doConfigure(newElement, monitor, info);
+
+ ((CreateElementRequest) getRequest()).setNewElement(newElement);
+ return CommandResult.newOKCommandResult(newElement);
+ }
+
+ /**
+ * @generated
+ */
+ protected void doConfigure(SingleQueuedUnit newElement,
+ IProgressMonitor monitor, IAdaptable info)
+ throws ExecutionException {
+ IElementType elementType = ((CreateElementRequest) getRequest())
+ .getElementType();
+ ConfigureRequest configureRequest = new ConfigureRequest(
+ getEditingDomain(), newElement, elementType);
+ configureRequest.setClientContext(((CreateElementRequest) getRequest())
+ .getClientContext());
+ configureRequest.addParameters(getRequest().getParameters());
+ ICommand configureCommand = elementType
+ .getEditCommand(configureRequest);
+ if (configureCommand != null && configureCommand.canExecute()) {
+ configureCommand.execute(monitor, info);
+ }
+ }
+
+}
diff --git a/org.eclipse.emf.refactor.comrel.diagram/src/comrel/diagram/edit/commands/SingleQueuedUnit3CreateCommand.java b/org.eclipse.emf.refactor.comrel.diagram/src/comrel/diagram/edit/commands/SingleQueuedUnit3CreateCommand.java
new file mode 100644
index 0000000..c198260
--- /dev/null
+++ b/org.eclipse.emf.refactor.comrel.diagram/src/comrel/diagram/edit/commands/SingleQueuedUnit3CreateCommand.java
@@ -0,0 +1,96 @@
+/*
+ *
+ */
+package comrel.diagram.edit.commands;
+
+import org.eclipse.core.commands.ExecutionException;
+import org.eclipse.core.runtime.IAdaptable;
+import org.eclipse.core.runtime.IProgressMonitor;
+import org.eclipse.emf.ecore.EObject;
+import org.eclipse.gmf.runtime.common.core.command.CommandResult;
+import org.eclipse.gmf.runtime.common.core.command.ICommand;
+import org.eclipse.gmf.runtime.emf.type.core.IElementType;
+import org.eclipse.gmf.runtime.emf.type.core.commands.EditElementCommand;
+import org.eclipse.gmf.runtime.emf.type.core.requests.ConfigureRequest;
+import org.eclipse.gmf.runtime.emf.type.core.requests.CreateElementRequest;
+import org.eclipse.gmf.runtime.notation.View;
+
+import comrel.ComrelFactory;
+import comrel.ParallelQueuedUnit;
+import comrel.SingleQueuedUnit;
+
+/**
+ * @generated
+ */
+public class SingleQueuedUnit3CreateCommand extends EditElementCommand {
+
+ /**
+ * @generated
+ */
+ public SingleQueuedUnit3CreateCommand(CreateElementRequest req) {
+ super(req.getLabel(), null, req);
+ }
+
+ /**
+ * FIXME: replace with setElementToEdit()
+ * @generated
+ */
+ protected EObject getElementToEdit() {
+ EObject container = ((CreateElementRequest) getRequest())
+ .getContainer();
+ if (container instanceof View) {
+ container = ((View) container).getElement();
+ }
+ return container;
+ }
+
+ /**
+ * @generated
+ */
+ public boolean canExecute() {
+ ParallelQueuedUnit container = (ParallelQueuedUnit) getElementToEdit();
+ if (container.getRefactoringUnits() != null) {
+ return false;
+ }
+ return true;
+
+ }
+
+ /**
+ * @generated
+ */
+ protected CommandResult doExecuteWithResult(IProgressMonitor monitor,
+ IAdaptable info) throws ExecutionException {
+ SingleQueuedUnit newElement = ComrelFactory.eINSTANCE
+ .createSingleQueuedUnit();
+
+ ParallelQueuedUnit owner = (ParallelQueuedUnit) getElementToEdit();
+ owner.setRefactoringUnits(newElement);
+
+ doConfigure(newElement, monitor, info);
+
+ ((CreateElementRequest) getRequest()).setNewElement(newElement);
+ return CommandResult.newOKCommandResult(newElement);
+ }
+
+ /**
+ * @generated
+ */
+ protected void doConfigure(SingleQueuedUnit newElement,
+ IProgressMonitor monitor, IAdaptable info)
+ throws ExecutionException {
+ IElementType elementType = ((CreateElementRequest) getRequest())
+ .getElementType();
+ ConfigureRequest configureRequest = new ConfigureRequest(
+ getEditingDomain(), newElement, elementType);
+ configureRequest.setClientContext(((CreateElementRequest) getRequest())
+ .getClientContext());
+ configureRequest.addParameters(getRequest().getParameters());
+ ICommand configureCommand = elementType
+ .getEditCommand(configureRequest);
+ if (configureCommand != null && configureCommand.canExecute()) {
+ configureCommand.execute(monitor, info);
+ }
+ }
+
+}
diff --git a/org.eclipse.emf.refactor.comrel.diagram/src/comrel/diagram/edit/commands/SingleQueuedUnit4CreateCommand.java b/org.eclipse.emf.refactor.comrel.diagram/src/comrel/diagram/edit/commands/SingleQueuedUnit4CreateCommand.java
new file mode 100644
index 0000000..9de9e9b
--- /dev/null
+++ b/org.eclipse.emf.refactor.comrel.diagram/src/comrel/diagram/edit/commands/SingleQueuedUnit4CreateCommand.java
@@ -0,0 +1,96 @@
+/*
+ *
+ */
+package comrel.diagram.edit.commands;
+
+import org.eclipse.core.commands.ExecutionException;
+import org.eclipse.core.runtime.IAdaptable;
+import org.eclipse.core.runtime.IProgressMonitor;
+import org.eclipse.emf.ecore.EObject;
+import org.eclipse.gmf.runtime.common.core.command.CommandResult;
+import org.eclipse.gmf.runtime.common.core.command.ICommand;
+import org.eclipse.gmf.runtime.emf.type.core.IElementType;
+import org.eclipse.gmf.runtime.emf.type.core.commands.EditElementCommand;
+import org.eclipse.gmf.runtime.emf.type.core.requests.ConfigureRequest;
+import org.eclipse.gmf.runtime.emf.type.core.requests.CreateElementRequest;
+import org.eclipse.gmf.runtime.notation.View;
+
+import comrel.ComrelFactory;
+import comrel.ConditionalUnit;
+import comrel.SingleQueuedUnit;
+
+/**
+ * @generated
+ */
+public class SingleQueuedUnit4CreateCommand extends EditElementCommand {
+
+ /**
+ * @generated
+ */
+ public SingleQueuedUnit4CreateCommand(CreateElementRequest req) {
+ super(req.getLabel(), null, req);
+ }
+
+ /**
+ * FIXME: replace with setElementToEdit()
+ * @generated
+ */
+ protected EObject getElementToEdit() {
+ EObject container = ((CreateElementRequest) getRequest())
+ .getContainer();
+ if (container instanceof View) {
+ container = ((View) container).getElement();
+ }
+ return container;
+ }
+
+ /**
+ * @generated
+ */
+ public boolean canExecute() {
+ ConditionalUnit container = (ConditionalUnit) getElementToEdit();
+ if (container.getThen() != null) {
+ return false;
+ }
+ return true;
+
+ }
+
+ /**
+ * @generated
+ */
+ protected CommandResult doExecuteWithResult(IProgressMonitor monitor,
+ IAdaptable info) throws ExecutionException {
+ SingleQueuedUnit newElement = ComrelFactory.eINSTANCE
+ .createSingleQueuedUnit();
+
+ ConditionalUnit owner = (ConditionalUnit) getElementToEdit();
+ owner.setThen(newElement);
+
+ doConfigure(newElement, monitor, info);
+
+ ((CreateElementRequest) getRequest()).setNewElement(newElement);
+ return CommandResult.newOKCommandResult(newElement);
+ }
+
+ /**
+ * @generated
+ */
+ protected void doConfigure(SingleQueuedUnit newElement,
+ IProgressMonitor monitor, IAdaptable info)
+ throws ExecutionException {
+ IElementType elementType = ((CreateElementRequest) getRequest())
+ .getElementType();
+ ConfigureRequest configureRequest = new ConfigureRequest(
+ getEditingDomain(), newElement, elementType);
+ configureRequest.setClientContext(((CreateElementRequest) getRequest())
+ .getClientContext());
+ configureRequest.addParameters(getRequest().getParameters());
+ ICommand configureCommand = elementType
+ .getEditCommand(configureRequest);
+ if (configureCommand != null && configureCommand.canExecute()) {
+ configureCommand.execute(monitor, info);
+ }
+ }
+
+}
diff --git a/org.eclipse.emf.refactor.comrel.diagram/src/comrel/diagram/edit/commands/SingleQueuedUnit5CreateCommand.java b/org.eclipse.emf.refactor.comrel.diagram/src/comrel/diagram/edit/commands/SingleQueuedUnit5CreateCommand.java
new file mode 100644
index 0000000..adfc0ef
--- /dev/null
+++ b/org.eclipse.emf.refactor.comrel.diagram/src/comrel/diagram/edit/commands/SingleQueuedUnit5CreateCommand.java
@@ -0,0 +1,95 @@
+/*
+ *
+ */
+package comrel.diagram.edit.commands;
+
+import org.eclipse.core.commands.ExecutionException;
+import org.eclipse.core.runtime.IAdaptable;
+import org.eclipse.core.runtime.IProgressMonitor;
+import org.eclipse.emf.ecore.EObject;
+import org.eclipse.gmf.runtime.common.core.command.CommandResult;
+import org.eclipse.gmf.runtime.common.core.command.ICommand;
+import org.eclipse.gmf.runtime.emf.type.core.IElementType;
+import org.eclipse.gmf.runtime.emf.type.core.commands.EditElementCommand;
+import org.eclipse.gmf.runtime.emf.type.core.requests.ConfigureRequest;
+import org.eclipse.gmf.runtime.emf.type.core.requests.CreateElementRequest;
+import org.eclipse.gmf.runtime.notation.View;
+
+import comrel.ComrelFactory;
+import comrel.SingleQueuedUnit;
+
+/**
+ * @generated
+ */
+public class SingleQueuedUnit5CreateCommand extends EditElementCommand {
+
+ /**
+ * @generated
+ */
+ public SingleQueuedUnit5CreateCommand(CreateElementRequest req) {
+ super(req.getLabel(), null, req);
+ }
+
+ /**
+ * FIXME: replace with setElementToEdit()
+ * @generated
+ */
+ protected EObject getElementToEdit() {
+ EObject container = ((CreateElementRequest) getRequest())
+ .getContainer();
+ if (container instanceof View) {
+ container = ((View) container).getElement();
+ }
+ return container;
+ }
+
+ /**
+ * @generated
+ */
+ public boolean canExecute() {
+ SingleQueuedUnit container = (SingleQueuedUnit) getElementToEdit();
+ if (container.getRefactoringUnit() != null) {
+ return false;
+ }
+ return true;
+
+ }
+
+ /**
+ * @generated
+ */
+ protected CommandResult doExecuteWithResult(IProgressMonitor monitor,
+ IAdaptable info) throws ExecutionException {
+ SingleQueuedUnit newElement = ComrelFactory.eINSTANCE
+ .createSingleQueuedUnit();
+
+ SingleQueuedUnit owner = (SingleQueuedUnit) getElementToEdit();
+ owner.setRefactoringUnit(newElement);
+
+ doConfigure(newElement, monitor, info);
+
+ ((CreateElementRequest) getRequest()).setNewElement(newElement);
+ return CommandResult.newOKCommandResult(newElement);
+ }
+
+ /**
+ * @generated
+ */
+ protected void doConfigure(SingleQueuedUnit newElement,
+ IProgressMonitor monitor, IAdaptable info)
+ throws ExecutionException {
+ IElementType elementType = ((CreateElementRequest) getRequest())
+ .getElementType();
+ ConfigureRequest configureRequest = new ConfigureRequest(
+ getEditingDomain(), newElement, elementType);
+ configureRequest.setClientContext(((CreateElementRequest) getRequest())
+ .getClientContext());
+ configureRequest.addParameters(getRequest().getParameters());
+ ICommand configureCommand = elementType
+ .getEditCommand(configureRequest);
+ if (configureCommand != null && configureCommand.canExecute()) {
+ configureCommand.execute(monitor, info);
+ }
+ }
+
+}
diff --git a/org.eclipse.emf.refactor.comrel.diagram/src/comrel/diagram/edit/commands/SingleQueuedUnit6CreateCommand.java b/org.eclipse.emf.refactor.comrel.diagram/src/comrel/diagram/edit/commands/SingleQueuedUnit6CreateCommand.java
new file mode 100644
index 0000000..9616b65
--- /dev/null
+++ b/org.eclipse.emf.refactor.comrel.diagram/src/comrel/diagram/edit/commands/SingleQueuedUnit6CreateCommand.java
@@ -0,0 +1,92 @@
+/*
+ *
+ */
+package comrel.diagram.edit.commands;
+
+import org.eclipse.core.commands.ExecutionException;
+import org.eclipse.core.runtime.IAdaptable;
+import org.eclipse.core.runtime.IProgressMonitor;
+import org.eclipse.emf.ecore.EObject;
+import org.eclipse.gmf.runtime.common.core.command.CommandResult;
+import org.eclipse.gmf.runtime.common.core.command.ICommand;
+import org.eclipse.gmf.runtime.emf.type.core.IElementType;
+import org.eclipse.gmf.runtime.emf.type.core.commands.EditElementCommand;
+import org.eclipse.gmf.runtime.emf.type.core.requests.ConfigureRequest;
+import org.eclipse.gmf.runtime.emf.type.core.requests.CreateElementRequest;
+import org.eclipse.gmf.runtime.notation.View;
+
+import comrel.ComrelFactory;
+import comrel.SequentialUnit;
+import comrel.SingleQueuedUnit;
+
+/**
+ * @generated
+ */
+public class SingleQueuedUnit6CreateCommand extends EditElementCommand {
+
+ /**
+ * @generated
+ */
+ public SingleQueuedUnit6CreateCommand(CreateElementRequest req) {
+ super(req.getLabel(), null, req);
+ }
+
+ /**
+ * FIXME: replace with setElementToEdit()
+ * @generated
+ */
+ protected EObject getElementToEdit() {
+ EObject container = ((CreateElementRequest) getRequest())
+ .getContainer();
+ if (container instanceof View) {
+ container = ((View) container).getElement();
+ }
+ return container;
+ }
+
+ /**
+ * @generated
+ */
+ public boolean canExecute() {
+ return true;
+
+ }
+
+ /**
+ * @generated NOT
+ */
+ protected CommandResult doExecuteWithResult(IProgressMonitor monitor,
+ IAdaptable info) throws ExecutionException {
+ SingleQueuedUnit newElement = ComrelFactory.eINSTANCE
+ .createSingleQueuedUnit();
+
+ SequentialUnit owner = (SequentialUnit) getElementToEdit();
+ owner.getRefactoringUnits().add(newElement);
+ owner.updateSeqExecutionOrder();
+ doConfigure(newElement, monitor, info);
+
+ ((CreateElementRequest) getRequest()).setNewElement(newElement);
+ return CommandResult.newOKCommandResult(newElement);
+ }
+
+ /**
+ * @generated
+ */
+ protected void doConfigure(SingleQueuedUnit newElement,
+ IProgressMonitor monitor, IAdaptable info)
+ throws ExecutionException {
+ IElementType elementType = ((CreateElementRequest) getRequest())
+ .getElementType();
+ ConfigureRequest configureRequest = new ConfigureRequest(
+ getEditingDomain(), newElement, elementType);
+ configureRequest.setClientContext(((CreateElementRequest) getRequest())
+ .getClientContext());
+ configureRequest.addParameters(getRequest().getParameters());
+ ICommand configureCommand = elementType
+ .getEditCommand(configureRequest);
+ if (configureCommand != null && configureCommand.canExecute()) {
+ configureCommand.execute(monitor, info);
+ }
+ }
+
+}
diff --git a/org.eclipse.emf.refactor.comrel.diagram/src/comrel/diagram/edit/commands/SingleQueuedUnit7CreateCommand.java b/org.eclipse.emf.refactor.comrel.diagram/src/comrel/diagram/edit/commands/SingleQueuedUnit7CreateCommand.java
new file mode 100644
index 0000000..5d12361
--- /dev/null
+++ b/org.eclipse.emf.refactor.comrel.diagram/src/comrel/diagram/edit/commands/SingleQueuedUnit7CreateCommand.java
@@ -0,0 +1,96 @@
+/*
+ *
+ */
+package comrel.diagram.edit.commands;
+
+import org.eclipse.core.commands.ExecutionException;
+import org.eclipse.core.runtime.IAdaptable;
+import org.eclipse.core.runtime.IProgressMonitor;
+import org.eclipse.emf.ecore.EObject;
+import org.eclipse.gmf.runtime.common.core.command.CommandResult;
+import org.eclipse.gmf.runtime.common.core.command.ICommand;
+import org.eclipse.gmf.runtime.emf.type.core.IElementType;
+import org.eclipse.gmf.runtime.emf.type.core.commands.EditElementCommand;
+import org.eclipse.gmf.runtime.emf.type.core.requests.ConfigureRequest;
+import org.eclipse.gmf.runtime.emf.type.core.requests.CreateElementRequest;
+import org.eclipse.gmf.runtime.notation.View;
+
+import comrel.ComrelFactory;
+import comrel.ConditionalUnit;
+import comrel.SingleQueuedUnit;
+
+/**
+ * @generated
+ */
+public class SingleQueuedUnit7CreateCommand extends EditElementCommand {
+
+ /**
+ * @generated
+ */
+ public SingleQueuedUnit7CreateCommand(CreateElementRequest req) {
+ super(req.getLabel(), null, req);
+ }
+
+ /**
+ * FIXME: replace with setElementToEdit()
+ * @generated
+ */
+ protected EObject getElementToEdit() {
+ EObject container = ((CreateElementRequest) getRequest())
+ .getContainer();
+ if (container instanceof View) {
+ container = ((View) container).getElement();
+ }
+ return container;
+ }
+
+ /**
+ * @generated
+ */
+ public boolean canExecute() {
+ ConditionalUnit container = (ConditionalUnit) getElementToEdit();
+ if (container.getElse() != null) {
+ return false;
+ }
+ return true;
+
+ }
+
+ /**
+ * @generated
+ */
+ protected CommandResult doExecuteWithResult(IProgressMonitor monitor,
+ IAdaptable info) throws ExecutionException {
+ SingleQueuedUnit newElement = ComrelFactory.eINSTANCE
+ .createSingleQueuedUnit();
+
+ ConditionalUnit owner = (ConditionalUnit) getElementToEdit();
+ owner.setElse(newElement);
+
+ doConfigure(newElement, monitor, info);
+
+ ((CreateElementRequest) getRequest()).setNewElement(newElement);
+ return CommandResult.newOKCommandResult(newElement);
+ }
+
+ /**
+ * @generated
+ */
+ protected void doConfigure(SingleQueuedUnit newElement,
+ IProgressMonitor monitor, IAdaptable info)
+ throws ExecutionException {
+ IElementType elementType = ((CreateElementRequest) getRequest())
+ .getElementType();
+ ConfigureRequest configureRequest = new ConfigureRequest(
+ getEditingDomain(), newElement, elementType);
+ configureRequest.setClientContext(((CreateElementRequest) getRequest())
+ .getClientContext());
+ configureRequest.addParameters(getRequest().getParameters());
+ ICommand configureCommand = elementType
+ .getEditCommand(configureRequest);
+ if (configureCommand != null && configureCommand.canExecute()) {
+ configureCommand.execute(monitor, info);
+ }
+ }
+
+}
diff --git a/org.eclipse.emf.refactor.comrel.diagram/src/comrel/diagram/edit/commands/SingleQueuedUnitCreateCommand.java b/org.eclipse.emf.refactor.comrel.diagram/src/comrel/diagram/edit/commands/SingleQueuedUnitCreateCommand.java
new file mode 100644
index 0000000..f311bac
--- /dev/null
+++ b/org.eclipse.emf.refactor.comrel.diagram/src/comrel/diagram/edit/commands/SingleQueuedUnitCreateCommand.java
@@ -0,0 +1,96 @@
+/*
+ *
+ */
+package comrel.diagram.edit.commands;
+
+import org.eclipse.core.commands.ExecutionException;
+import org.eclipse.core.runtime.IAdaptable;
+import org.eclipse.core.runtime.IProgressMonitor;
+import org.eclipse.emf.ecore.EObject;
+import org.eclipse.gmf.runtime.common.core.command.CommandResult;
+import org.eclipse.gmf.runtime.common.core.command.ICommand;
+import org.eclipse.gmf.runtime.emf.type.core.IElementType;
+import org.eclipse.gmf.runtime.emf.type.core.commands.EditElementCommand;
+import org.eclipse.gmf.runtime.emf.type.core.requests.ConfigureRequest;
+import org.eclipse.gmf.runtime.emf.type.core.requests.CreateElementRequest;
+import org.eclipse.gmf.runtime.notation.View;
+
+import comrel.CompositeRefactoring;
+import comrel.ComrelFactory;
+import comrel.SingleQueuedUnit;
+
+/**
+ * @generated
+ */
+public class SingleQueuedUnitCreateCommand extends EditElementCommand {
+
+ /**
+ * @generated
+ */
+ public SingleQueuedUnitCreateCommand(CreateElementRequest req) {
+ super(req.getLabel(), null, req);
+ }
+
+ /**
+ * FIXME: replace with setElementToEdit()
+ * @generated
+ */
+ protected EObject getElementToEdit() {
+ EObject container = ((CreateElementRequest) getRequest())
+ .getContainer();
+ if (container instanceof View) {
+ container = ((View) container).getElement();
+ }
+ return container;
+ }
+
+ /**
+ * @generated
+ */
+ public boolean canExecute() {
+ CompositeRefactoring container = (CompositeRefactoring) getElementToEdit();
+ if (container.getMainRefactoringUnit() != null) {
+ return false;
+ }
+ return true;
+
+ }
+
+ /**
+ * @generated
+ */
+ protected CommandResult doExecuteWithResult(IProgressMonitor monitor,
+ IAdaptable info) throws ExecutionException {
+ SingleQueuedUnit newElement = ComrelFactory.eINSTANCE
+ .createSingleQueuedUnit();
+
+ CompositeRefactoring owner = (CompositeRefactoring) getElementToEdit();
+ owner.setMainRefactoringUnit(newElement);
+
+ doConfigure(newElement, monitor, info);
+
+ ((CreateElementRequest) getRequest()).setNewElement(newElement);
+ return CommandResult.newOKCommandResult(newElement);
+ }
+
+ /**
+ * @generated
+ */
+ protected void doConfigure(SingleQueuedUnit newElement,
+ IProgressMonitor monitor, IAdaptable info)
+ throws ExecutionException {
+ IElementType elementType = ((CreateElementRequest) getRequest())
+ .getElementType();
+ ConfigureRequest configureRequest = new ConfigureRequest(
+ getEditingDomain(), newElement, elementType);
+ configureRequest.setClientContext(((CreateElementRequest) getRequest())
+ .getClientContext());
+ configureRequest.addParameters(getRequest().getParameters());
+ ICommand configureCommand = elementType
+ .getEditCommand(configureRequest);
+ if (configureCommand != null && configureCommand.canExecute()) {
+ configureCommand.execute(monitor, info);
+ }
+ }
+
+}
diff --git a/org.eclipse.emf.refactor.comrel.diagram/src/comrel/diagram/edit/commands/custom/CustomDestroyElementCommand.java b/org.eclipse.emf.refactor.comrel.diagram/src/comrel/diagram/edit/commands/custom/CustomDestroyElementCommand.java
new file mode 100644
index 0000000..87b9b3b
--- /dev/null
+++ b/org.eclipse.emf.refactor.comrel.diagram/src/comrel/diagram/edit/commands/custom/CustomDestroyElementCommand.java
@@ -0,0 +1,146 @@
+/**
+ *
+ */
+package comrel.diagram.edit.commands.custom;
+
+import java.util.ArrayList;
+
+import org.eclipse.core.commands.ExecutionException;
+import org.eclipse.core.runtime.IAdaptable;
+import org.eclipse.core.runtime.IProgressMonitor;
+import org.eclipse.emf.ecore.EObject;
+import org.eclipse.gmf.runtime.common.core.command.CommandResult;
+import org.eclipse.gmf.runtime.emf.type.core.commands.DestroyElementCommand;
+import org.eclipse.gmf.runtime.emf.type.core.requests.DestroyElementRequest;
+
+import comrel.AtomicUnit;
+import comrel.CompositeRefactoring;
+import comrel.Helper;
+import comrel.HelperUnit;
+import comrel.ModelRefactoring;
+import comrel.MultiPortMapping;
+import comrel.MultiSinglePortMapping;
+import comrel.Port;
+import comrel.PortMapping;
+import comrel.SinglePortMapping;
+import comrel.util.ComrelUtil;
+
+/**
+ * @author Gerrit
+ * Selbstdefiniertes DestroyElementCommand, um eventuell bestimmte
+ * Dinge noch zu machen, bevor das Element zerstört wird.
+ */
+public class CustomDestroyElementCommand extends DestroyElementCommand {
+
+ boolean condition = true;
+ ModelRefactoring ref= null;
+ Port p = null;
+ Helper helper= null;
+ EObject container = null;
+
+
+ public CustomDestroyElementCommand(DestroyElementRequest request,boolean condition) {
+ super(request);
+ this.condition = condition;
+ this.container = request.getContainer();
+ }
+
+ public CustomDestroyElementCommand(DestroyElementRequest request,Port port, boolean condition) {
+ super(request);
+ this.condition = condition;
+ this.container = request.getContainer();
+ this.p=port;
+ }
+
+ public CustomDestroyElementCommand(DestroyElementRequest request,ModelRefactoring ref) {
+ super(request);
+ this.ref=ref;
+ this.container = request.getContainer();
+ }
+
+ public CustomDestroyElementCommand(DestroyElementRequest request,Helper helper) {
+ super(request);
+ this.helper = helper;
+ this.container = request.getContainer();
+ }
+
+ /* (non-Javadoc)
+ * @see org.eclipse.gmf.runtime.emf.type.core.commands.DestroyElementCommand#canExecute()
+ */
+ @Override
+ public boolean canExecute() {
+ return condition;
+ }
+
+ @Override
+ protected CommandResult doExecuteWithResult(IProgressMonitor monitor,
+ IAdaptable info) throws ExecutionException {
+
+ CommandResult result = super.doExecuteWithResult(monitor, info);
+ CompositeRefactoring cr = (CompositeRefactoring)ComrelUtil.getContainedCompositeRefactoring(container);
+ ArrayList<PortMapping> mappings = new ArrayList<PortMapping>();
+ ArrayList<Port> ports = new ArrayList<Port>();
+ if(ref != null) {
+ AtomicUnit context = (AtomicUnit) getElementToDestroy();
+ ports.addAll(context.getInputPorts());
+ for(PortMapping m : cr.getPortMappings()) {
+ if(ports.contains(m.getSource()) || ports.contains(m.getTarget())) {
+ setSourceTargetNull(m);
+ mappings.add(m);
+ }
+ }
+ cr.getPortMappings().removeAll(mappings);
+ cr.getModelRefactorings().remove(ref);
+ }
+ if(helper != null) {
+ HelperUnit context = (HelperUnit) getElementToDestroy();
+ ports.add(context.getInputPort());
+ ports.add(context.getOutputPort());
+ for(PortMapping m : cr.getPortMappings()) {
+ if(ports.contains(m.getSource()) || ports.contains(m.getTarget())) {
+ setSourceTargetNull(m);
+ mappings.add(m);
+ }
+ }
+ cr.getPortMappings().removeAll(mappings);
+ cr.getHelper().remove(helper);
+ }
+ if(p != null) {
+ for(PortMapping m : cr.getPortMappings()) {
+ if(ports == m.getSource() || p == m.getTarget()) {
+ setSourceTargetNull(m);
+ mappings.add(m);
+ }
+ }
+ cr.getPortMappings().removeAll(mappings);
+ }
+
+ cr.removeUnusedModelRefactorings();
+ cr.removeUnusedHelper();
+
+
+ return result;
+ }
+
+ private void setSourceTargetNull(PortMapping mapping) {
+
+ if (mapping instanceof SinglePortMapping) {
+ SinglePortMapping m = (SinglePortMapping) mapping;
+ m.setSource(null);
+ m.setTarget(null);
+ }
+ if (mapping instanceof MultiPortMapping) {
+ MultiPortMapping m = (MultiPortMapping) mapping;
+ m.setSource(null);
+ m.setTarget(null);
+ }
+ if (mapping instanceof MultiSinglePortMapping) {
+ MultiSinglePortMapping m = (MultiSinglePortMapping) mapping;
+ m.setSource(null);
+ m.setTarget(null);
+ }
+ }
+
+
+
+}
\ No newline at end of file
diff --git a/org.eclipse.emf.refactor.comrel.diagram/src/comrel/diagram/edit/helpers/AtomicUnitEditHelper.java b/org.eclipse.emf.refactor.comrel.diagram/src/comrel/diagram/edit/helpers/AtomicUnitEditHelper.java
new file mode 100644
index 0000000..f680c70
--- /dev/null
+++ b/org.eclipse.emf.refactor.comrel.diagram/src/comrel/diagram/edit/helpers/AtomicUnitEditHelper.java
@@ -0,0 +1,42 @@
+/*
+ *
+ */
+package comrel.diagram.edit.helpers;
+
+import org.eclipse.gmf.runtime.common.core.command.ICommand;
+import org.eclipse.gmf.runtime.emf.type.core.requests.DestroyElementRequest;
+
+import comrel.AtomicUnit;
+import comrel.CompositeRefactoring;
+import comrel.ModelRefactoring;
+import comrel.diagram.edit.commands.custom.CustomDestroyElementCommand;
+
+/**
+ * @generated
+ */
+public class AtomicUnitEditHelper extends ComrelBaseEditHelper {
+
+ @Override
+ protected ICommand getDestroyElementCommand(DestroyElementRequest req) {
+ if (req.getElementToDestroy() instanceof AtomicUnit) {
+ AtomicUnit context = (AtomicUnit) req.getElementToDestroy();
+ System.out.println("AtomicUnit: " + context);
+ ModelRefactoring modelRefactoring = context.getModelRefactoring();
+ System.out.println("ModelRefactoring: " + modelRefactoring);
+ CompositeRefactoring cr = (CompositeRefactoring) modelRefactoring
+ .eContainer();
+ System.out.println("CompositeRefactoring: " + cr);
+ if (cr != null) {
+ System.out.println("in use?: " + cr.modelRefactoringInUse(modelRefactoring, context));
+ if (!cr.modelRefactoringInUse(modelRefactoring, context)) {
+ System.out.println("return: new CustomDestroyElementCommand");
+ return new CustomDestroyElementCommand(req,
+ modelRefactoring);
+ }
+ }
+ }
+ System.out.println("return: super call");
+ return super.getDestroyElementCommand(req);
+ }
+
+}
diff --git a/org.eclipse.emf.refactor.comrel.diagram/src/comrel/diagram/edit/helpers/CartesianQueuedUnitEditHelper.java b/org.eclipse.emf.refactor.comrel.diagram/src/comrel/diagram/edit/helpers/CartesianQueuedUnitEditHelper.java
new file mode 100644
index 0000000..fa4acfc
--- /dev/null
+++ b/org.eclipse.emf.refactor.comrel.diagram/src/comrel/diagram/edit/helpers/CartesianQueuedUnitEditHelper.java
@@ -0,0 +1,10 @@
+/*
+ *
+ */
+package comrel.diagram.edit.helpers;
+
+/**
+ * @generated
+ */
+public class CartesianQueuedUnitEditHelper extends ComrelBaseEditHelper {
+}
diff --git a/org.eclipse.emf.refactor.comrel.diagram/src/comrel/diagram/edit/helpers/CompositeRefactoringEditHelper.java b/org.eclipse.emf.refactor.comrel.diagram/src/comrel/diagram/edit/helpers/CompositeRefactoringEditHelper.java
new file mode 100644
index 0000000..34bb262
--- /dev/null
+++ b/org.eclipse.emf.refactor.comrel.diagram/src/comrel/diagram/edit/helpers/CompositeRefactoringEditHelper.java
@@ -0,0 +1,10 @@
+/*
+ *
+ */
+package comrel.diagram.edit.helpers;
+
+/**
+ * @generated
+ */
+public class CompositeRefactoringEditHelper extends ComrelBaseEditHelper {
+}
diff --git a/org.eclipse.emf.refactor.comrel.diagram/src/comrel/diagram/edit/helpers/ComrelBaseEditHelper.java b/org.eclipse.emf.refactor.comrel.diagram/src/comrel/diagram/edit/helpers/ComrelBaseEditHelper.java
new file mode 100644
index 0000000..8ac361c
--- /dev/null
+++ b/org.eclipse.emf.refactor.comrel.diagram/src/comrel/diagram/edit/helpers/ComrelBaseEditHelper.java
@@ -0,0 +1,128 @@
+/*
+ *
+ */
+package comrel.diagram.edit.helpers;
+
+import org.eclipse.gmf.runtime.common.core.command.CompositeCommand;
+import org.eclipse.gmf.runtime.common.core.command.ICommand;
+import org.eclipse.gmf.runtime.emf.type.core.ElementTypeRegistry;
+import org.eclipse.gmf.runtime.emf.type.core.IElementType;
+import org.eclipse.gmf.runtime.emf.type.core.edithelper.AbstractEditHelper;
+import org.eclipse.gmf.runtime.emf.type.core.edithelper.IEditHelperAdvice;
+import org.eclipse.gmf.runtime.emf.type.core.requests.CreateElementRequest;
+import org.eclipse.gmf.runtime.emf.type.core.requests.CreateRelationshipRequest;
+import org.eclipse.gmf.runtime.emf.type.core.requests.DestroyElementRequest;
+import org.eclipse.gmf.runtime.emf.type.core.requests.DestroyReferenceRequest;
+import org.eclipse.gmf.runtime.emf.type.core.requests.IEditCommandRequest;
+
+import comrel.CompositeRefactoring;
+import comrel.Port;
+import comrel.util.ComrelUtil;
+
+/**
+ * @generated
+ */
+public class ComrelBaseEditHelper extends AbstractEditHelper {
+
+ /**
+ * @generated
+ */
+ public static final String EDIT_POLICY_COMMAND = "edit policy command"; //$NON-NLS-1$
+
+ /**
+ * @generated
+ */
+ public static final String CONTEXT_ELEMENT_TYPE = "context element type"; //$NON-NLS-1$
+
+ /**
+ * @generated
+ */
+ protected IEditHelperAdvice[] getEditHelperAdvice(IEditCommandRequest req) {
+ if (req.getParameter(CONTEXT_ELEMENT_TYPE) instanceof IElementType) {
+ return ElementTypeRegistry.getInstance().getEditHelperAdvice(
+ (IElementType) req.getParameter(CONTEXT_ELEMENT_TYPE));
+ }
+ return super.getEditHelperAdvice(req);
+ }
+
+ /**
+ * @generated
+ */
+ protected ICommand getInsteadCommand(IEditCommandRequest req) {
+ ICommand epCommand = (ICommand) req.getParameter(EDIT_POLICY_COMMAND);
+ req.setParameter(EDIT_POLICY_COMMAND, null);
+ ICommand ehCommand = super.getInsteadCommand(req);
+ if (epCommand == null) {
+ return ehCommand;
+ }
+ if (ehCommand == null) {
+ return epCommand;
+ }
+ CompositeCommand command = new CompositeCommand(null);
+ command.add(epCommand);
+ command.add(ehCommand);
+ return command;
+ }
+
+ /**
+ * @generated NOT
+ */
+ protected ICommand getCreateCommand(CreateElementRequest req) {
+ CompositeRefactoring cr = ComrelUtil
+ .getContainedCompositeRefactoring(req.getContainer());
+ if (cr != null) {
+ cr.updateVisualization();
+ }
+ return null;
+ }
+
+ /**
+ * @generated NOT
+ */
+ protected ICommand getCreateRelationshipCommand(
+ CreateRelationshipRequest req) {
+ CompositeRefactoring cr = ComrelUtil
+ .getContainedCompositeRefactoring(req.getContainer());
+ if (cr != null) {
+ cr.updateVisualization();
+ }
+ return null;
+ }
+
+ /**
+ * @generated NOT
+ */
+ protected ICommand getDestroyElementCommand(DestroyElementRequest req) {
+ if (req.getElementToDestroy() instanceof Port) {
+ return EditHelperUtil.getPortDestroy(req);
+ }
+ CompositeRefactoring cr = ComrelUtil
+ .getContainedCompositeRefactoring(req.getContainer());
+ if (cr != null) {
+ cr.updateVisualization();
+ }
+ return null;
+ }
+
+ /**
+ * @generated NOT
+ */
+ protected ICommand getDestroyReferenceCommand(DestroyReferenceRequest req) {
+ CompositeRefactoring cr = ComrelUtil
+ .getContainedCompositeRefactoring(req.getContainer());
+ if (cr != null) {
+ cr.updateVisualization();
+ }
+ return null;
+ }
+
+ @Override
+ public void initializeDefaultFeature(CreateElementRequest req) {
+ CompositeRefactoring cr = ComrelUtil
+ .getContainedCompositeRefactoring(req.getContainer());
+ if (cr != null) {
+ cr.updateVisualization();
+ }
+ super.initializeDefaultFeature(req);
+ }
+}
diff --git a/org.eclipse.emf.refactor.comrel.diagram/src/comrel/diagram/edit/helpers/ConditionCheckEditHelper.java b/org.eclipse.emf.refactor.comrel.diagram/src/comrel/diagram/edit/helpers/ConditionCheckEditHelper.java
new file mode 100644
index 0000000..5c656a2
--- /dev/null
+++ b/org.eclipse.emf.refactor.comrel.diagram/src/comrel/diagram/edit/helpers/ConditionCheckEditHelper.java
@@ -0,0 +1,10 @@
+/*
+ *
+ */
+package comrel.diagram.edit.helpers;
+
+/**
+ * @generated
+ */
+public class ConditionCheckEditHelper extends ComrelBaseEditHelper {
+}
diff --git a/org.eclipse.emf.refactor.comrel.diagram/src/comrel/diagram/edit/helpers/ConditionalUnitEditHelper.java b/org.eclipse.emf.refactor.comrel.diagram/src/comrel/diagram/edit/helpers/ConditionalUnitEditHelper.java
new file mode 100644
index 0000000..1d1f5a6
--- /dev/null
+++ b/org.eclipse.emf.refactor.comrel.diagram/src/comrel/diagram/edit/helpers/ConditionalUnitEditHelper.java
@@ -0,0 +1,10 @@
+/*
+ *
+ */
+package comrel.diagram.edit.helpers;
+
+/**
+ * @generated
+ */
+public class ConditionalUnitEditHelper extends ComrelBaseEditHelper {
+}
diff --git a/org.eclipse.emf.refactor.comrel.diagram/src/comrel/diagram/edit/helpers/EditHelperUtil.java b/org.eclipse.emf.refactor.comrel.diagram/src/comrel/diagram/edit/helpers/EditHelperUtil.java
new file mode 100644
index 0000000..2223dbd
--- /dev/null
+++ b/org.eclipse.emf.refactor.comrel.diagram/src/comrel/diagram/edit/helpers/EditHelperUtil.java
@@ -0,0 +1,36 @@
+package comrel.diagram.edit.helpers;
+
+import org.eclipse.gmf.runtime.common.core.command.ICommand;
+import org.eclipse.gmf.runtime.emf.type.core.requests.DestroyElementRequest;
+
+import comrel.MultiInputPort;
+import comrel.MultiOutputPort;
+import comrel.SingleInputPort;
+import comrel.SingleOutputPort;
+
+public class EditHelperUtil {
+
+
+ public static ICommand getPortDestroy(DestroyElementRequest req) {
+ ComrelBaseEditHelper h;
+ if(req.getElementToDestroy() instanceof SingleInputPort){
+ h = new SingleInputPortEditHelper();
+ System.out.println("in: getPortDestroy(DestroyElementRequest req)");
+ return h.getDestroyElementCommand(req);
+ }
+ if(req.getElementToDestroy() instanceof SingleOutputPort){
+ h = new SingleOutputPortEditHelper();
+ return h.getDestroyElementCommand(req);
+ }
+ if(req.getElementToDestroy() instanceof MultiInputPort){
+ h = new MultiInputPortEditHelper();
+ return h.getDestroyElementCommand(req);
+ }
+ if(req.getElementToDestroy() instanceof MultiOutputPort){
+ h = new MultiOutputPortEditHelper();
+ return h.getDestroyElementCommand(req);
+ }
+ return null;
+
+ }
+}
diff --git a/org.eclipse.emf.refactor.comrel.diagram/src/comrel/diagram/edit/helpers/MultiFeatureUnitEditHelper.java b/org.eclipse.emf.refactor.comrel.diagram/src/comrel/diagram/edit/helpers/MultiFeatureUnitEditHelper.java
new file mode 100644
index 0000000..015d33f
--- /dev/null
+++ b/org.eclipse.emf.refactor.comrel.diagram/src/comrel/diagram/edit/helpers/MultiFeatureUnitEditHelper.java
@@ -0,0 +1,37 @@
+/*
+ *
+ */
+package comrel.diagram.edit.helpers;
+
+import org.eclipse.gmf.runtime.common.core.command.ICommand;
+import org.eclipse.gmf.runtime.emf.type.core.requests.DestroyElementRequest;
+
+import comrel.CompositeRefactoring;
+import comrel.Helper;
+import comrel.HelperUnit;
+import comrel.MultiFeatureUnit;
+import comrel.diagram.edit.commands.custom.CustomDestroyElementCommand;
+
+/**
+ * @generated
+ */
+public class MultiFeatureUnitEditHelper extends ComrelBaseEditHelper {
+
+ @Override
+ protected ICommand getDestroyElementCommand(DestroyElementRequest req) {
+ if (req.getElementToDestroy() instanceof HelperUnit) {
+ HelperUnit context = (HelperUnit) req.getElementToDestroy();
+ Helper helper = ((MultiFeatureUnit) context)
+ .getMultiFeatureHelper();
+ CompositeRefactoring cr = (CompositeRefactoring) helper
+ .eContainer();
+ if (cr != null) {
+ if (!cr.helperInUse(helper, context)) {
+ return new CustomDestroyElementCommand(req, helper);
+ }
+ }
+ }
+ return super.getDestroyElementCommand(req);
+ }
+
+}
diff --git a/org.eclipse.emf.refactor.comrel.diagram/src/comrel/diagram/edit/helpers/MultiFilterUnitEditHelper.java b/org.eclipse.emf.refactor.comrel.diagram/src/comrel/diagram/edit/helpers/MultiFilterUnitEditHelper.java
new file mode 100644
index 0000000..b7e54d6
--- /dev/null
+++ b/org.eclipse.emf.refactor.comrel.diagram/src/comrel/diagram/edit/helpers/MultiFilterUnitEditHelper.java
@@ -0,0 +1,36 @@
+/*
+ *
+ */
+package comrel.diagram.edit.helpers;
+
+import org.eclipse.gmf.runtime.common.core.command.ICommand;
+import org.eclipse.gmf.runtime.emf.type.core.requests.DestroyElementRequest;
+
+import comrel.CompositeRefactoring;
+import comrel.Helper;
+import comrel.HelperUnit;
+import comrel.MultiFilterUnit;
+import comrel.diagram.edit.commands.custom.CustomDestroyElementCommand;
+
+/**
+ * @generated
+ */
+public class MultiFilterUnitEditHelper extends ComrelBaseEditHelper {
+
+ @Override
+ protected ICommand getDestroyElementCommand(DestroyElementRequest req) {
+ if (req.getElementToDestroy() instanceof HelperUnit) {
+ HelperUnit context = (HelperUnit) req.getElementToDestroy();
+ Helper helper = ((MultiFilterUnit) context).getMultiFilterHelper();
+ CompositeRefactoring refSys = (CompositeRefactoring) helper
+ .eContainer();
+ if (refSys != null) {
+ if (!refSys.helperInUse(helper, context)) {
+ return new CustomDestroyElementCommand(req, helper);
+ }
+ }
+ }
+ return super.getDestroyElementCommand(req);
+ }
+
+}
diff --git a/org.eclipse.emf.refactor.comrel.diagram/src/comrel/diagram/edit/helpers/MultiInputPortEditHelper.java b/org.eclipse.emf.refactor.comrel.diagram/src/comrel/diagram/edit/helpers/MultiInputPortEditHelper.java
new file mode 100644
index 0000000..cd5bbff
--- /dev/null
+++ b/org.eclipse.emf.refactor.comrel.diagram/src/comrel/diagram/edit/helpers/MultiInputPortEditHelper.java
@@ -0,0 +1,30 @@
+/*
+ *
+ */
+package comrel.diagram.edit.helpers;
+
+import org.eclipse.emf.ecore.EObject;
+import org.eclipse.gmf.runtime.common.core.command.ICommand;
+import org.eclipse.gmf.runtime.emf.type.core.requests.DestroyElementRequest;
+
+import comrel.FilterUnit;
+import comrel.Port;
+import comrel.QueuedUnit;
+import comrel.diagram.edit.commands.custom.CustomDestroyElementCommand;
+
+/**
+ * @generated
+ */
+public class MultiInputPortEditHelper extends ComrelBaseEditHelper {
+
+ @Override
+ protected ICommand getDestroyElementCommand(DestroyElementRequest req) {
+ EObject container = req.getElementToDestroy().eContainer();
+ boolean condition = !(container instanceof QueuedUnit)
+ || container == null;
+ condition &= !(container instanceof FilterUnit);
+ return new CustomDestroyElementCommand(req,
+ (Port) req.getElementToDestroy(), condition);
+ }
+
+}
diff --git a/org.eclipse.emf.refactor.comrel.diagram/src/comrel/diagram/edit/helpers/MultiOutputPortEditHelper.java b/org.eclipse.emf.refactor.comrel.diagram/src/comrel/diagram/edit/helpers/MultiOutputPortEditHelper.java
new file mode 100644
index 0000000..dc49883
--- /dev/null
+++ b/org.eclipse.emf.refactor.comrel.diagram/src/comrel/diagram/edit/helpers/MultiOutputPortEditHelper.java
@@ -0,0 +1,28 @@
+/*
+ *
+ */
+package comrel.diagram.edit.helpers;
+
+import org.eclipse.emf.ecore.EObject;
+import org.eclipse.gmf.runtime.common.core.command.ICommand;
+import org.eclipse.gmf.runtime.emf.type.core.requests.DestroyElementRequest;
+
+import comrel.HelperUnit;
+import comrel.Port;
+import comrel.diagram.edit.commands.custom.CustomDestroyElementCommand;
+
+/**
+ * @generated
+ */
+public class MultiOutputPortEditHelper extends ComrelBaseEditHelper {
+
+ @Override
+ protected ICommand getDestroyElementCommand(DestroyElementRequest req) {
+ EObject container = req.getElementToDestroy().eContainer();
+ boolean condition = !(container instanceof HelperUnit)
+ || container == null;
+ return new CustomDestroyElementCommand(req,
+ (Port) req.getElementToDestroy(), condition);
+ }
+
+}
diff --git a/org.eclipse.emf.refactor.comrel.diagram/src/comrel/diagram/edit/helpers/MultiPortMappingEditHelper.java b/org.eclipse.emf.refactor.comrel.diagram/src/comrel/diagram/edit/helpers/MultiPortMappingEditHelper.java
new file mode 100644
index 0000000..96a8181
--- /dev/null
+++ b/org.eclipse.emf.refactor.comrel.diagram/src/comrel/diagram/edit/helpers/MultiPortMappingEditHelper.java
@@ -0,0 +1,10 @@
+/*
+ *
+ */
+package comrel.diagram.edit.helpers;
+
+/**
+ * @generated
+ */
+public class MultiPortMappingEditHelper extends ComrelBaseEditHelper {
+}
diff --git a/org.eclipse.emf.refactor.comrel.diagram/src/comrel/diagram/edit/helpers/MultiSinglePortMappingEditHelper.java b/org.eclipse.emf.refactor.comrel.diagram/src/comrel/diagram/edit/helpers/MultiSinglePortMappingEditHelper.java
new file mode 100644
index 0000000..790fa08
--- /dev/null
+++ b/org.eclipse.emf.refactor.comrel.diagram/src/comrel/diagram/edit/helpers/MultiSinglePortMappingEditHelper.java
@@ -0,0 +1,10 @@
+/*
+ *
+ */
+package comrel.diagram.edit.helpers;
+
+/**
+ * @generated
+ */
+public class MultiSinglePortMappingEditHelper extends ComrelBaseEditHelper {
+}
diff --git a/org.eclipse.emf.refactor.comrel.diagram/src/comrel/diagram/edit/helpers/ParallelQueuedUnitEditHelper.java b/org.eclipse.emf.refactor.comrel.diagram/src/comrel/diagram/edit/helpers/ParallelQueuedUnitEditHelper.java
new file mode 100644
index 0000000..8b5f29c
--- /dev/null
+++ b/org.eclipse.emf.refactor.comrel.diagram/src/comrel/diagram/edit/helpers/ParallelQueuedUnitEditHelper.java
@@ -0,0 +1,10 @@
+/*
+ *
+ */
+package comrel.diagram.edit.helpers;
+
+/**
+ * @generated
+ */
+public class ParallelQueuedUnitEditHelper extends ComrelBaseEditHelper {
+}
diff --git a/org.eclipse.emf.refactor.comrel.diagram/src/comrel/diagram/edit/helpers/SequentialUnitEditHelper.java b/org.eclipse.emf.refactor.comrel.diagram/src/comrel/diagram/edit/helpers/SequentialUnitEditHelper.java
new file mode 100644
index 0000000..6f7cbc5
--- /dev/null
+++ b/org.eclipse.emf.refactor.comrel.diagram/src/comrel/diagram/edit/helpers/SequentialUnitEditHelper.java
@@ -0,0 +1,10 @@
+/*
+ *
+ */
+package comrel.diagram.edit.helpers;
+
+/**
+ * @generated
+ */
+public class SequentialUnitEditHelper extends ComrelBaseEditHelper {
+}
diff --git a/org.eclipse.emf.refactor.comrel.diagram/src/comrel/diagram/edit/helpers/SingleFeatureUnitEditHelper.java b/org.eclipse.emf.refactor.comrel.diagram/src/comrel/diagram/edit/helpers/SingleFeatureUnitEditHelper.java
new file mode 100644
index 0000000..91168b2
--- /dev/null
+++ b/org.eclipse.emf.refactor.comrel.diagram/src/comrel/diagram/edit/helpers/SingleFeatureUnitEditHelper.java
@@ -0,0 +1,37 @@
+/*
+ *
+ */
+package comrel.diagram.edit.helpers;
+
+import org.eclipse.gmf.runtime.common.core.command.ICommand;
+import org.eclipse.gmf.runtime.emf.type.core.requests.DestroyElementRequest;
+
+import comrel.CompositeRefactoring;
+import comrel.Helper;
+import comrel.HelperUnit;
+import comrel.SingleFeatureUnit;
+import comrel.diagram.edit.commands.custom.CustomDestroyElementCommand;
+
+/**
+ * @generated
+ */
+public class SingleFeatureUnitEditHelper extends ComrelBaseEditHelper {
+
+ @Override
+ protected ICommand getDestroyElementCommand(DestroyElementRequest req) {
+ if (req.getElementToDestroy() instanceof HelperUnit) {
+ HelperUnit context = (HelperUnit) req.getElementToDestroy();
+ Helper helper = ((SingleFeatureUnit) context)
+ .getSingleFeatureHelper();
+ CompositeRefactoring cr = (CompositeRefactoring) helper
+ .eContainer();
+ if (cr != null) {
+ if (!cr.helperInUse(helper, context)) {
+ return new CustomDestroyElementCommand(req, helper);
+ }
+ }
+ }
+ return super.getDestroyElementCommand(req);
+ }
+
+}
diff --git a/org.eclipse.emf.refactor.comrel.diagram/src/comrel/diagram/edit/helpers/SingleFilterUnitEditHelper.java b/org.eclipse.emf.refactor.comrel.diagram/src/comrel/diagram/edit/helpers/SingleFilterUnitEditHelper.java
new file mode 100644
index 0000000..147818a
--- /dev/null
+++ b/org.eclipse.emf.refactor.comrel.diagram/src/comrel/diagram/edit/helpers/SingleFilterUnitEditHelper.java
@@ -0,0 +1,37 @@
+/*
+ *
+ */
+package comrel.diagram.edit.helpers;
+
+import org.eclipse.gmf.runtime.common.core.command.ICommand;
+import org.eclipse.gmf.runtime.emf.type.core.requests.DestroyElementRequest;
+
+import comrel.CompositeRefactoring;
+import comrel.Helper;
+import comrel.HelperUnit;
+import comrel.SingleFilterUnit;
+import comrel.diagram.edit.commands.custom.CustomDestroyElementCommand;
+
+/**
+ * @generated
+ */
+public class SingleFilterUnitEditHelper extends ComrelBaseEditHelper {
+
+ @Override
+ protected ICommand getDestroyElementCommand(DestroyElementRequest req) {
+ if (req.getElementToDestroy() instanceof HelperUnit) {
+ HelperUnit context = (HelperUnit) req.getElementToDestroy();
+ Helper helper = ((SingleFilterUnit) context)
+ .getSingleFilterHelper();
+ CompositeRefactoring cr = (CompositeRefactoring) helper
+ .eContainer();
+ if (cr != null) {
+ if (!cr.helperInUse(helper, context)) {
+ return new CustomDestroyElementCommand(req, helper);
+ }
+ }
+ }
+ return super.getDestroyElementCommand(req);
+ }
+
+}
diff --git a/org.eclipse.emf.refactor.comrel.diagram/src/comrel/diagram/edit/helpers/SingleInputPortEditHelper.java b/org.eclipse.emf.refactor.comrel.diagram/src/comrel/diagram/edit/helpers/SingleInputPortEditHelper.java
new file mode 100644
index 0000000..dc4de99
--- /dev/null
+++ b/org.eclipse.emf.refactor.comrel.diagram/src/comrel/diagram/edit/helpers/SingleInputPortEditHelper.java
@@ -0,0 +1,30 @@
+/*
+ *
+ */
+package comrel.diagram.edit.helpers;
+
+import org.eclipse.emf.ecore.EObject;
+import org.eclipse.gmf.runtime.common.core.command.ICommand;
+import org.eclipse.gmf.runtime.emf.type.core.requests.DestroyElementRequest;
+
+import comrel.AtomicUnit;
+import comrel.HelperUnit;
+import comrel.Port;
+import comrel.diagram.edit.commands.custom.CustomDestroyElementCommand;
+
+/**
+ * @generated
+ */
+public class SingleInputPortEditHelper extends ComrelBaseEditHelper {
+
+ @Override
+ protected ICommand getDestroyElementCommand(DestroyElementRequest req) {
+ EObject container = req.getElementToDestroy().eContainer();
+ boolean condition = !(container instanceof AtomicUnit)
+ || container == null;
+ condition &= !(container instanceof HelperUnit);
+ return new CustomDestroyElementCommand(req,
+ (Port) req.getElementToDestroy(), condition);
+ }
+
+}
diff --git a/org.eclipse.emf.refactor.comrel.diagram/src/comrel/diagram/edit/helpers/SingleOutputPortEditHelper.java b/org.eclipse.emf.refactor.comrel.diagram/src/comrel/diagram/edit/helpers/SingleOutputPortEditHelper.java
new file mode 100644
index 0000000..99cd151
--- /dev/null
+++ b/org.eclipse.emf.refactor.comrel.diagram/src/comrel/diagram/edit/helpers/SingleOutputPortEditHelper.java
@@ -0,0 +1,28 @@
+/*
+ *
+ */
+package comrel.diagram.edit.helpers;
+
+import org.eclipse.emf.ecore.EObject;
+import org.eclipse.gmf.runtime.common.core.command.ICommand;
+import org.eclipse.gmf.runtime.emf.type.core.requests.DestroyElementRequest;
+
+import comrel.HelperUnit;
+import comrel.Port;
+import comrel.diagram.edit.commands.custom.CustomDestroyElementCommand;
+
+/**
+ * @generated
+ */
+public class SingleOutputPortEditHelper extends ComrelBaseEditHelper {
+
+ @Override
+ protected ICommand getDestroyElementCommand(DestroyElementRequest req) {
+ EObject container = req.getElementToDestroy().eContainer();
+ boolean condition = !(container instanceof HelperUnit)
+ || container == null;
+ return new CustomDestroyElementCommand(req,
+ (Port) req.getElementToDestroy(), condition);
+ }
+
+}
diff --git a/org.eclipse.emf.refactor.comrel.diagram/src/comrel/diagram/edit/helpers/SinglePortMappingEditHelper.java b/org.eclipse.emf.refactor.comrel.diagram/src/comrel/diagram/edit/helpers/SinglePortMappingEditHelper.java
new file mode 100644
index 0000000..d5eed52
--- /dev/null
+++ b/org.eclipse.emf.refactor.comrel.diagram/src/comrel/diagram/edit/helpers/SinglePortMappingEditHelper.java
@@ -0,0 +1,10 @@
+/*
+ *
+ */
+package comrel.diagram.edit.helpers;
+
+/**
+ * @generated
+ */
+public class SinglePortMappingEditHelper extends ComrelBaseEditHelper {
+}
diff --git a/org.eclipse.emf.refactor.comrel.diagram/src/comrel/diagram/edit/helpers/SingleQueuedUnitEditHelper.java b/org.eclipse.emf.refactor.comrel.diagram/src/comrel/diagram/edit/helpers/SingleQueuedUnitEditHelper.java
new file mode 100644
index 0000000..5a9c885
--- /dev/null
+++ b/org.eclipse.emf.refactor.comrel.diagram/src/comrel/diagram/edit/helpers/SingleQueuedUnitEditHelper.java
@@ -0,0 +1,10 @@
+/*
+ *
+ */
+package comrel.diagram.edit.helpers;
+
+/**
+ * @generated
+ */
+public class SingleQueuedUnitEditHelper extends ComrelBaseEditHelper {
+}
diff --git a/org.eclipse.emf.refactor.comrel.diagram/src/comrel/diagram/edit/parts/AtomicUnit2EditPart.java b/org.eclipse.emf.refactor.comrel.diagram/src/comrel/diagram/edit/parts/AtomicUnit2EditPart.java
new file mode 100644
index 0000000..a1d6e9c
--- /dev/null
+++ b/org.eclipse.emf.refactor.comrel.diagram/src/comrel/diagram/edit/parts/AtomicUnit2EditPart.java
@@ -0,0 +1,334 @@
+/*
+ *
+ */
+package comrel.diagram.edit.parts;
+
+import org.eclipse.draw2d.IFigure;
+import org.eclipse.draw2d.MarginBorder;
+import org.eclipse.draw2d.PositionConstants;
+import org.eclipse.draw2d.RoundedRectangle;
+import org.eclipse.draw2d.Shape;
+import org.eclipse.draw2d.StackLayout;
+import org.eclipse.draw2d.geometry.Dimension;
+import org.eclipse.gef.EditPart;
+import org.eclipse.gef.EditPolicy;
+import org.eclipse.gef.Request;
+import org.eclipse.gef.commands.Command;
+import org.eclipse.gef.editpolicies.LayoutEditPolicy;
+import org.eclipse.gef.editpolicies.NonResizableEditPolicy;
+import org.eclipse.gef.requests.CreateRequest;
+import org.eclipse.gmf.runtime.diagram.ui.editparts.AbstractBorderedShapeEditPart;
+import org.eclipse.gmf.runtime.diagram.ui.editparts.IBorderItemEditPart;
+import org.eclipse.gmf.runtime.diagram.ui.editparts.IGraphicalEditPart;
+import org.eclipse.gmf.runtime.diagram.ui.editpolicies.BorderItemSelectionEditPolicy;
+import org.eclipse.gmf.runtime.diagram.ui.editpolicies.CreationEditPolicy;
+import org.eclipse.gmf.runtime.diagram.ui.editpolicies.DragDropEditPolicy;
+import org.eclipse.gmf.runtime.diagram.ui.editpolicies.EditPolicyRoles;
+import org.eclipse.gmf.runtime.diagram.ui.figures.BorderItemLocator;
+import org.eclipse.gmf.runtime.draw2d.ui.figures.ConstrainedToolbarLayout;
+import org.eclipse.gmf.runtime.draw2d.ui.figures.WrappingLabel;
+import org.eclipse.gmf.runtime.gef.ui.figures.DefaultSizeNodeFigure;
+import org.eclipse.gmf.runtime.gef.ui.figures.NodeFigure;
+import org.eclipse.gmf.runtime.notation.View;
+import org.eclipse.swt.graphics.Color;
+
+import comrel.diagram.edit.policies.AtomicUnit2CanonicalEditPolicy;
+import comrel.diagram.edit.policies.AtomicUnit2ItemSemanticEditPolicy;
+import comrel.diagram.part.ComrelVisualIDRegistry;
+
+/**
+ * @generated
+ */
+public class AtomicUnit2EditPart extends AbstractBorderedShapeEditPart {
+
+ /**
+ * @generated
+ */
+ public static final int VISUAL_ID = 3034;
+
+ /**
+ * @generated
+ */
+ protected IFigure contentPane;
+
+ /**
+ * @generated
+ */
+ protected IFigure primaryShape;
+
+ /**
+ * @generated
+ */
+ public AtomicUnit2EditPart(View view) {
+ super(view);
+ }
+
+ /**
+ * @generated
+ */
+ protected void createDefaultEditPolicies() {
+ installEditPolicy(EditPolicyRoles.CREATION_ROLE,
+ new CreationEditPolicy());
+ super.createDefaultEditPolicies();
+ installEditPolicy(EditPolicyRoles.SEMANTIC_ROLE,
+ new AtomicUnit2ItemSemanticEditPolicy());
+ installEditPolicy(EditPolicyRoles.DRAG_DROP_ROLE,
+ new DragDropEditPolicy());
+ installEditPolicy(EditPolicyRoles.CANONICAL_ROLE,
+ new AtomicUnit2CanonicalEditPolicy());
+ installEditPolicy(EditPolicy.LAYOUT_ROLE, createLayoutEditPolicy());
+ // XXX need an SCR to runtime to have another abstract superclass that would let children add reasonable editpolicies
+ // removeEditPolicy(org.eclipse.gmf.runtime.diagram.ui.editpolicies.EditPolicyRoles.CONNECTION_HANDLES_ROLE);
+ }
+
+ /**
+ * @generated
+ */
+ protected LayoutEditPolicy createLayoutEditPolicy() {
+ org.eclipse.gmf.runtime.diagram.ui.editpolicies.LayoutEditPolicy lep = new org.eclipse.gmf.runtime.diagram.ui.editpolicies.LayoutEditPolicy() {
+
+ protected EditPolicy createChildEditPolicy(EditPart child) {
+ View childView = (View) child.getModel();
+ switch (ComrelVisualIDRegistry.getVisualID(childView)) {
+ case SingleInputPort9EditPart.VISUAL_ID:
+ return new BorderItemSelectionEditPolicy();
+ }
+ EditPolicy result = child
+ .getEditPolicy(EditPolicy.PRIMARY_DRAG_ROLE);
+ if (result == null) {
+ result = new NonResizableEditPolicy();
+ }
+ return result;
+ }
+
+ protected Command getMoveChildrenCommand(Request request) {
+ return null;
+ }
+
+ protected Command getCreateCommand(CreateRequest request) {
+ return null;
+ }
+ };
+ return lep;
+ }
+
+ /**
+ * @generated
+ */
+ protected IFigure createNodeShape() {
+ return primaryShape = new AtomicUnitFigure();
+ }
+
+ /**
+ * @generated
+ */
+ public AtomicUnitFigure getPrimaryShape() {
+ return (AtomicUnitFigure) primaryShape;
+ }
+
+ /**
+ * @generated NOT
+ */
+ protected boolean addFixedChild(EditPart childEditPart) {
+ if (childEditPart instanceof AtomicUnitLabelType2EditPart) {
+ ((AtomicUnitLabelType2EditPart) childEditPart)
+ .setLabel(getPrimaryShape()
+ .getFigureAtomicUnitLabelFigure());
+ return true;
+ }
+ if (childEditPart instanceof SingleInputPort9EditPart) {
+ BorderItemLocator locator = new BorderItemLocator(getMainFigure(),
+ PositionConstants.NORTH);
+ locator.setCurrentSideOfParent(PositionConstants.NORTH); // Position des Ports
+ locator.setPreferredSideOfParent(PositionConstants.NORTH); // Position des Ports
+ getBorderedFigure().getBorderItemContainer().add(
+ ((SingleInputPort9EditPart) childEditPart).getFigure(),
+ locator);
+ return true;
+ }
+ return false;
+ }
+
+ /**
+ * @generated NOT
+ */
+ protected boolean removeFixedChild(EditPart childEditPart) {
+ if (childEditPart instanceof AtomicUnitLabelType2EditPart) {
+ return true;
+ }
+ if (childEditPart instanceof SingleInputPort9EditPart) {
+ // getBorderedFigure().getBorderItemContainer().remove(
+ // ((SingleInputPort9EditPart) childEditPart).getFigure());
+ return true;
+ }
+ return false;
+ }
+
+ /**
+ * @generated
+ */
+ protected void addChildVisual(EditPart childEditPart, int index) {
+ if (addFixedChild(childEditPart)) {
+ return;
+ }
+ super.addChildVisual(childEditPart, -1);
+ }
+
+ /**
+ * @generated
+ */
+ protected void removeChildVisual(EditPart childEditPart) {
+ if (removeFixedChild(childEditPart)) {
+ return;
+ }
+ super.removeChildVisual(childEditPart);
+ }
+
+ /**
+ * @generated
+ */
+ protected IFigure getContentPaneFor(IGraphicalEditPart editPart) {
+ if (editPart instanceof IBorderItemEditPart) {
+ return getBorderedFigure().getBorderItemContainer();
+ }
+ return getContentPane();
+ }
+
+ /**
+ * @generated
+ */
+ protected NodeFigure createNodePlate() {
+ DefaultSizeNodeFigure result = new DefaultSizeNodeFigure(40, 40);
+ return result;
+ }
+
+ /**
+ * Creates figure for this edit part.
+ *
+ * Body of this method does not depend on settings in generation model
+ * so you may safely remove <i>generated</i> tag and modify it.
+ *
+ * @generated
+ */
+ protected NodeFigure createMainFigure() {
+ NodeFigure figure = createNodePlate();
+ figure.setLayoutManager(new StackLayout());
+ IFigure shape = createNodeShape();
+ figure.add(shape);
+ contentPane = setupContentPane(shape);
+ return figure;
+ }
+
+ /**
+ * Default implementation treats passed figure as content pane.
+ * Respects layout one may have set for generated figure.
+ * @param nodeShape instance of generated figure class
+ * @generated
+ */
+ protected IFigure setupContentPane(IFigure nodeShape) {
+ if (nodeShape.getLayoutManager() == null) {
+ ConstrainedToolbarLayout layout = new ConstrainedToolbarLayout();
+ layout.setSpacing(5);
+ nodeShape.setLayoutManager(layout);
+ }
+ return nodeShape; // use nodeShape itself as contentPane
+ }
+
+ /**
+ * @generated
+ */
+ public IFigure getContentPane() {
+ if (contentPane != null) {
+ return contentPane;
+ }
+ return super.getContentPane();
+ }
+
+ /**
+ * @generated
+ */
+ protected void setForegroundColor(Color color) {
+ if (primaryShape != null) {
+ primaryShape.setForegroundColor(color);
+ }
+ }
+
+ /**
+ * @generated
+ */
+ protected void setBackgroundColor(Color color) {
+ if (primaryShape != null) {
+ primaryShape.setBackgroundColor(color);
+ }
+ }
+
+ /**
+ * @generated
+ */
+ protected void setLineWidth(int width) {
+ if (primaryShape instanceof Shape) {
+ ((Shape) primaryShape).setLineWidth(width);
+ }
+ }
+
+ /**
+ * @generated
+ */
+ protected void setLineType(int style) {
+ if (primaryShape instanceof Shape) {
+ ((Shape) primaryShape).setLineStyle(style);
+ }
+ }
+
+ /**
+ * @generated
+ */
+ public EditPart getPrimaryChildEditPart() {
+ return getChildBySemanticHint(ComrelVisualIDRegistry
+ .getType(AtomicUnitLabelType2EditPart.VISUAL_ID));
+ }
+
+ /**
+ * @generated
+ */
+ public class AtomicUnitFigure extends RoundedRectangle {
+
+ /**
+ * @generated
+ */
+ private WrappingLabel fFigureAtomicUnitLabelFigure;
+
+ /**
+ * @generated
+ */
+ public AtomicUnitFigure() {
+ this.setCornerDimensions(new Dimension(getMapMode().DPtoLP(8),
+ getMapMode().DPtoLP(8)));
+ this.setBorder(new MarginBorder(getMapMode().DPtoLP(5),
+ getMapMode().DPtoLP(5), getMapMode().DPtoLP(5),
+ getMapMode().DPtoLP(5)));
+ createContents();
+ }
+
+ /**
+ * @generated
+ */
+ private void createContents() {
+
+ fFigureAtomicUnitLabelFigure = new WrappingLabel();
+ fFigureAtomicUnitLabelFigure.setText("AtomicUnit");
+
+ this.add(fFigureAtomicUnitLabelFigure);
+
+ }
+
+ /**
+ * @generated
+ */
+ public WrappingLabel getFigureAtomicUnitLabelFigure() {
+ return fFigureAtomicUnitLabelFigure;
+ }
+
+ }
+
+}
diff --git a/org.eclipse.emf.refactor.comrel.diagram/src/comrel/diagram/edit/parts/AtomicUnit3EditPart.java b/org.eclipse.emf.refactor.comrel.diagram/src/comrel/diagram/edit/parts/AtomicUnit3EditPart.java
new file mode 100644
index 0000000..6a05b37
--- /dev/null
+++ b/org.eclipse.emf.refactor.comrel.diagram/src/comrel/diagram/edit/parts/AtomicUnit3EditPart.java
@@ -0,0 +1,334 @@
+/*
+ *
+ */
+package comrel.diagram.edit.parts;
+
+import org.eclipse.draw2d.IFigure;
+import org.eclipse.draw2d.MarginBorder;
+import org.eclipse.draw2d.PositionConstants;
+import org.eclipse.draw2d.RoundedRectangle;
+import org.eclipse.draw2d.Shape;
+import org.eclipse.draw2d.StackLayout;
+import org.eclipse.draw2d.geometry.Dimension;
+import org.eclipse.gef.EditPart;
+import org.eclipse.gef.EditPolicy;
+import org.eclipse.gef.Request;
+import org.eclipse.gef.commands.Command;
+import org.eclipse.gef.editpolicies.LayoutEditPolicy;
+import org.eclipse.gef.editpolicies.NonResizableEditPolicy;
+import org.eclipse.gef.requests.CreateRequest;
+import org.eclipse.gmf.runtime.diagram.ui.editparts.AbstractBorderedShapeEditPart;
+import org.eclipse.gmf.runtime.diagram.ui.editparts.IBorderItemEditPart;
+import org.eclipse.gmf.runtime.diagram.ui.editparts.IGraphicalEditPart;
+import org.eclipse.gmf.runtime.diagram.ui.editpolicies.BorderItemSelectionEditPolicy;
+import org.eclipse.gmf.runtime.diagram.ui.editpolicies.CreationEditPolicy;
+import org.eclipse.gmf.runtime.diagram.ui.editpolicies.DragDropEditPolicy;
+import org.eclipse.gmf.runtime.diagram.ui.editpolicies.EditPolicyRoles;
+import org.eclipse.gmf.runtime.diagram.ui.figures.BorderItemLocator;
+import org.eclipse.gmf.runtime.draw2d.ui.figures.ConstrainedToolbarLayout;
+import org.eclipse.gmf.runtime.draw2d.ui.figures.WrappingLabel;
+import org.eclipse.gmf.runtime.gef.ui.figures.DefaultSizeNodeFigure;
+import org.eclipse.gmf.runtime.gef.ui.figures.NodeFigure;
+import org.eclipse.gmf.runtime.notation.View;
+import org.eclipse.swt.graphics.Color;
+
+import comrel.diagram.edit.policies.AtomicUnit3CanonicalEditPolicy;
+import comrel.diagram.edit.policies.AtomicUnit3ItemSemanticEditPolicy;
+import comrel.diagram.part.ComrelVisualIDRegistry;
+
+/**
+ * @generated
+ */
+public class AtomicUnit3EditPart extends AbstractBorderedShapeEditPart {
+
+ /**
+ * @generated
+ */
+ public static final int VISUAL_ID = 3049;
+
+ /**
+ * @generated
+ */
+ protected IFigure contentPane;
+
+ /**
+ * @generated
+ */
+ protected IFigure primaryShape;
+
+ /**
+ * @generated
+ */
+ public AtomicUnit3EditPart(View view) {
+ super(view);
+ }
+
+ /**
+ * @generated
+ */
+ protected void createDefaultEditPolicies() {
+ installEditPolicy(EditPolicyRoles.CREATION_ROLE,
+ new CreationEditPolicy());
+ super.createDefaultEditPolicies();
+ installEditPolicy(EditPolicyRoles.SEMANTIC_ROLE,
+ new AtomicUnit3ItemSemanticEditPolicy());
+ installEditPolicy(EditPolicyRoles.DRAG_DROP_ROLE,
+ new DragDropEditPolicy());
+ installEditPolicy(EditPolicyRoles.CANONICAL_ROLE,
+ new AtomicUnit3CanonicalEditPolicy());
+ installEditPolicy(EditPolicy.LAYOUT_ROLE, createLayoutEditPolicy());
+ // XXX need an SCR to runtime to have another abstract superclass that would let children add reasonable editpolicies
+ // removeEditPolicy(org.eclipse.gmf.runtime.diagram.ui.editpolicies.EditPolicyRoles.CONNECTION_HANDLES_ROLE);
+ }
+
+ /**
+ * @generated
+ */
+ protected LayoutEditPolicy createLayoutEditPolicy() {
+ org.eclipse.gmf.runtime.diagram.ui.editpolicies.LayoutEditPolicy lep = new org.eclipse.gmf.runtime.diagram.ui.editpolicies.LayoutEditPolicy() {
+
+ protected EditPolicy createChildEditPolicy(EditPart child) {
+ View childView = (View) child.getModel();
+ switch (ComrelVisualIDRegistry.getVisualID(childView)) {
+ case SingleInputPort9EditPart.VISUAL_ID:
+ return new BorderItemSelectionEditPolicy();
+ }
+ EditPolicy result = child
+ .getEditPolicy(EditPolicy.PRIMARY_DRAG_ROLE);
+ if (result == null) {
+ result = new NonResizableEditPolicy();
+ }
+ return result;
+ }
+
+ protected Command getMoveChildrenCommand(Request request) {
+ return null;
+ }
+
+ protected Command getCreateCommand(CreateRequest request) {
+ return null;
+ }
+ };
+ return lep;
+ }
+
+ /**
+ * @generated
+ */
+ protected IFigure createNodeShape() {
+ return primaryShape = new AtomicUnitFigure();
+ }
+
+ /**
+ * @generated
+ */
+ public AtomicUnitFigure getPrimaryShape() {
+ return (AtomicUnitFigure) primaryShape;
+ }
+
+ /**
+ * @generated NOT
+ */
+ protected boolean addFixedChild(EditPart childEditPart) {
+ if (childEditPart instanceof AtomicUnitLabelType3EditPart) {
+ ((AtomicUnitLabelType3EditPart) childEditPart)
+ .setLabel(getPrimaryShape()
+ .getFigureAtomicUnitLabelFigure());
+ return true;
+ }
+ if (childEditPart instanceof SingleInputPort9EditPart) {
+ BorderItemLocator locator = new BorderItemLocator(getMainFigure(),
+ PositionConstants.NORTH);
+ locator.setCurrentSideOfParent(PositionConstants.NORTH); // Position des Ports
+ locator.setPreferredSideOfParent(PositionConstants.NORTH); // Position des Ports
+ getBorderedFigure().getBorderItemContainer().add(
+ ((SingleInputPort9EditPart) childEditPart).getFigure(),
+ locator);
+ return true;
+ }
+ return false;
+ }
+
+ /**
+ * @generated NOT
+ */
+ protected boolean removeFixedChild(EditPart childEditPart) {
+ if (childEditPart instanceof AtomicUnitLabelType3EditPart) {
+ return true;
+ }
+ if (childEditPart instanceof SingleInputPort9EditPart) {
+ // getBorderedFigure().getBorderItemContainer().remove(
+ // ((SingleInputPort9EditPart) childEditPart).getFigure());
+ return true;
+ }
+ return false;
+ }
+
+ /**
+ * @generated
+ */
+ protected void addChildVisual(EditPart childEditPart, int index) {
+ if (addFixedChild(childEditPart)) {
+ return;
+ }
+ super.addChildVisual(childEditPart, -1);
+ }
+
+ /**
+ * @generated
+ */
+ protected void removeChildVisual(EditPart childEditPart) {
+ if (removeFixedChild(childEditPart)) {
+ return;
+ }
+ super.removeChildVisual(childEditPart);
+ }
+
+ /**
+ * @generated
+ */
+ protected IFigure getContentPaneFor(IGraphicalEditPart editPart) {
+ if (editPart instanceof IBorderItemEditPart) {
+ return getBorderedFigure().getBorderItemContainer();
+ }
+ return getContentPane();
+ }
+
+ /**
+ * @generated
+ */
+ protected NodeFigure createNodePlate() {
+ DefaultSizeNodeFigure result = new DefaultSizeNodeFigure(40, 40);
+ return result;
+ }
+
+ /**
+ * Creates figure for this edit part.
+ *
+ * Body of this method does not depend on settings in generation model
+ * so you may safely remove <i>generated</i> tag and modify it.
+ *
+ * @generated
+ */
+ protected NodeFigure createMainFigure() {
+ NodeFigure figure = createNodePlate();
+ figure.setLayoutManager(new StackLayout());
+ IFigure shape = createNodeShape();
+ figure.add(shape);
+ contentPane = setupContentPane(shape);
+ return figure;
+ }
+
+ /**
+ * Default implementation treats passed figure as content pane.
+ * Respects layout one may have set for generated figure.
+ * @param nodeShape instance of generated figure class
+ * @generated
+ */
+ protected IFigure setupContentPane(IFigure nodeShape) {
+ if (nodeShape.getLayoutManager() == null) {
+ ConstrainedToolbarLayout layout = new ConstrainedToolbarLayout();
+ layout.setSpacing(5);
+ nodeShape.setLayoutManager(layout);
+ }
+ return nodeShape; // use nodeShape itself as contentPane
+ }
+
+ /**
+ * @generated
+ */
+ public IFigure getContentPane() {
+ if (contentPane != null) {
+ return contentPane;
+ }
+ return super.getContentPane();
+ }
+
+ /**
+ * @generated
+ */
+ protected void setForegroundColor(Color color) {
+ if (primaryShape != null) {
+ primaryShape.setForegroundColor(color);
+ }
+ }
+
+ /**
+ * @generated
+ */
+ protected void setBackgroundColor(Color color) {
+ if (primaryShape != null) {
+ primaryShape.setBackgroundColor(color);
+ }
+ }
+
+ /**
+ * @generated
+ */
+ protected void setLineWidth(int width) {
+ if (primaryShape instanceof Shape) {
+ ((Shape) primaryShape).setLineWidth(width);
+ }
+ }
+
+ /**
+ * @generated
+ */
+ protected void setLineType(int style) {
+ if (primaryShape instanceof Shape) {
+ ((Shape) primaryShape).setLineStyle(style);
+ }
+ }
+
+ /**
+ * @generated
+ */
+ public EditPart getPrimaryChildEditPart() {
+ return getChildBySemanticHint(ComrelVisualIDRegistry
+ .getType(AtomicUnitLabelType3EditPart.VISUAL_ID));
+ }
+
+ /**
+ * @generated
+ */
+ public class AtomicUnitFigure extends RoundedRectangle {
+
+ /**
+ * @generated
+ */
+ private WrappingLabel fFigureAtomicUnitLabelFigure;
+
+ /**
+ * @generated
+ */
+ public AtomicUnitFigure() {
+ this.setCornerDimensions(new Dimension(getMapMode().DPtoLP(8),
+ getMapMode().DPtoLP(8)));
+ this.setBorder(new MarginBorder(getMapMode().DPtoLP(5),
+ getMapMode().DPtoLP(5), getMapMode().DPtoLP(5),
+ getMapMode().DPtoLP(5)));
+ createContents();
+ }
+
+ /**
+ * @generated
+ */
+ private void createContents() {
+
+ fFigureAtomicUnitLabelFigure = new WrappingLabel();
+ fFigureAtomicUnitLabelFigure.setText("AtomicUnit");
+
+ this.add(fFigureAtomicUnitLabelFigure);
+
+ }
+
+ /**
+ * @generated
+ */
+ public WrappingLabel getFigureAtomicUnitLabelFigure() {
+ return fFigureAtomicUnitLabelFigure;
+ }
+
+ }
+
+}
diff --git a/org.eclipse.emf.refactor.comrel.diagram/src/comrel/diagram/edit/parts/AtomicUnit4EditPart.java b/org.eclipse.emf.refactor.comrel.diagram/src/comrel/diagram/edit/parts/AtomicUnit4EditPart.java
new file mode 100644
index 0000000..e000c37
--- /dev/null
+++ b/org.eclipse.emf.refactor.comrel.diagram/src/comrel/diagram/edit/parts/AtomicUnit4EditPart.java
@@ -0,0 +1,334 @@
+/*
+ *
+ */
+package comrel.diagram.edit.parts;
+
+import org.eclipse.draw2d.IFigure;
+import org.eclipse.draw2d.MarginBorder;
+import org.eclipse.draw2d.PositionConstants;
+import org.eclipse.draw2d.RoundedRectangle;
+import org.eclipse.draw2d.Shape;
+import org.eclipse.draw2d.StackLayout;
+import org.eclipse.draw2d.geometry.Dimension;
+import org.eclipse.gef.EditPart;
+import org.eclipse.gef.EditPolicy;
+import org.eclipse.gef.Request;
+import org.eclipse.gef.commands.Command;
+import org.eclipse.gef.editpolicies.LayoutEditPolicy;
+import org.eclipse.gef.editpolicies.NonResizableEditPolicy;
+import org.eclipse.gef.requests.CreateRequest;
+import org.eclipse.gmf.runtime.diagram.ui.editparts.AbstractBorderedShapeEditPart;
+import org.eclipse.gmf.runtime.diagram.ui.editparts.IBorderItemEditPart;
+import org.eclipse.gmf.runtime.diagram.ui.editparts.IGraphicalEditPart;
+import org.eclipse.gmf.runtime.diagram.ui.editpolicies.BorderItemSelectionEditPolicy;
+import org.eclipse.gmf.runtime.diagram.ui.editpolicies.CreationEditPolicy;
+import org.eclipse.gmf.runtime.diagram.ui.editpolicies.DragDropEditPolicy;
+import org.eclipse.gmf.runtime.diagram.ui.editpolicies.EditPolicyRoles;
+import org.eclipse.gmf.runtime.diagram.ui.figures.BorderItemLocator;
+import org.eclipse.gmf.runtime.draw2d.ui.figures.ConstrainedToolbarLayout;
+import org.eclipse.gmf.runtime.draw2d.ui.figures.WrappingLabel;
+import org.eclipse.gmf.runtime.gef.ui.figures.DefaultSizeNodeFigure;
+import org.eclipse.gmf.runtime.gef.ui.figures.NodeFigure;
+import org.eclipse.gmf.runtime.notation.View;
+import org.eclipse.swt.graphics.Color;
+
+import comrel.diagram.edit.policies.AtomicUnit4CanonicalEditPolicy;
+import comrel.diagram.edit.policies.AtomicUnit4ItemSemanticEditPolicy;
+import comrel.diagram.part.ComrelVisualIDRegistry;
+
+/**
+ * @generated
+ */
+public class AtomicUnit4EditPart extends AbstractBorderedShapeEditPart {
+
+ /**
+ * @generated
+ */
+ public static final int VISUAL_ID = 3068;
+
+ /**
+ * @generated
+ */
+ protected IFigure contentPane;
+
+ /**
+ * @generated
+ */
+ protected IFigure primaryShape;
+
+ /**
+ * @generated
+ */
+ public AtomicUnit4EditPart(View view) {
+ super(view);
+ }
+
+ /**
+ * @generated
+ */
+ protected void createDefaultEditPolicies() {
+ installEditPolicy(EditPolicyRoles.CREATION_ROLE,
+ new CreationEditPolicy());
+ super.createDefaultEditPolicies();
+ installEditPolicy(EditPolicyRoles.SEMANTIC_ROLE,
+ new AtomicUnit4ItemSemanticEditPolicy());
+ installEditPolicy(EditPolicyRoles.DRAG_DROP_ROLE,
+ new DragDropEditPolicy());
+ installEditPolicy(EditPolicyRoles.CANONICAL_ROLE,
+ new AtomicUnit4CanonicalEditPolicy());
+ installEditPolicy(EditPolicy.LAYOUT_ROLE, createLayoutEditPolicy());
+ // XXX need an SCR to runtime to have another abstract superclass that would let children add reasonable editpolicies
+ // removeEditPolicy(org.eclipse.gmf.runtime.diagram.ui.editpolicies.EditPolicyRoles.CONNECTION_HANDLES_ROLE);
+ }
+
+ /**
+ * @generated
+ */
+ protected LayoutEditPolicy createLayoutEditPolicy() {
+ org.eclipse.gmf.runtime.diagram.ui.editpolicies.LayoutEditPolicy lep = new org.eclipse.gmf.runtime.diagram.ui.editpolicies.LayoutEditPolicy() {
+
+ protected EditPolicy createChildEditPolicy(EditPart child) {
+ View childView = (View) child.getModel();
+ switch (ComrelVisualIDRegistry.getVisualID(childView)) {
+ case SingleInputPort9EditPart.VISUAL_ID:
+ return new BorderItemSelectionEditPolicy();
+ }
+ EditPolicy result = child
+ .getEditPolicy(EditPolicy.PRIMARY_DRAG_ROLE);
+ if (result == null) {
+ result = new NonResizableEditPolicy();
+ }
+ return result;
+ }
+
+ protected Command getMoveChildrenCommand(Request request) {
+ return null;
+ }
+
+ protected Command getCreateCommand(CreateRequest request) {
+ return null;
+ }
+ };
+ return lep;
+ }
+
+ /**
+ * @generated
+ */
+ protected IFigure createNodeShape() {
+ return primaryShape = new AtomicUnitFigure();
+ }
+
+ /**
+ * @generated
+ */
+ public AtomicUnitFigure getPrimaryShape() {
+ return (AtomicUnitFigure) primaryShape;
+ }
+
+ /**
+ * @generated NOT
+ */
+ protected boolean addFixedChild(EditPart childEditPart) {
+ if (childEditPart instanceof AtomicUnitLabelType4EditPart) {
+ ((AtomicUnitLabelType4EditPart) childEditPart)
+ .setLabel(getPrimaryShape()
+ .getFigureAtomicUnitLabelFigure());
+ return true;
+ }
+ if (childEditPart instanceof SingleInputPort9EditPart) {
+ BorderItemLocator locator = new BorderItemLocator(getMainFigure(),
+ PositionConstants.NORTH);
+ locator.setCurrentSideOfParent(PositionConstants.NORTH); // Position des Ports
+ locator.setPreferredSideOfParent(PositionConstants.NORTH); // Position des Ports
+ getBorderedFigure().getBorderItemContainer().add(
+ ((SingleInputPort9EditPart) childEditPart).getFigure(),
+ locator);
+ return true;
+ }
+ return false;
+ }
+
+ /**
+ * @generated NOT
+ */
+ protected boolean removeFixedChild(EditPart childEditPart) {
+ if (childEditPart instanceof AtomicUnitLabelType4EditPart) {
+ return true;
+ }
+ if (childEditPart instanceof SingleInputPort9EditPart) {
+ // getBorderedFigure().getBorderItemContainer().remove(
+ // ((SingleInputPort9EditPart) childEditPart).getFigure());
+ return true;
+ }
+ return false;
+ }
+
+ /**
+ * @generated
+ */
+ protected void addChildVisual(EditPart childEditPart, int index) {
+ if (addFixedChild(childEditPart)) {
+ return;
+ }
+ super.addChildVisual(childEditPart, -1);
+ }
+
+ /**
+ * @generated
+ */
+ protected void removeChildVisual(EditPart childEditPart) {
+ if (removeFixedChild(childEditPart)) {
+ return;
+ }
+ super.removeChildVisual(childEditPart);
+ }
+
+ /**
+ * @generated
+ */
+ protected IFigure getContentPaneFor(IGraphicalEditPart editPart) {
+ if (editPart instanceof IBorderItemEditPart) {
+ return getBorderedFigure().getBorderItemContainer();
+ }
+ return getContentPane();
+ }
+
+ /**
+ * @generated
+ */
+ protected NodeFigure createNodePlate() {
+ DefaultSizeNodeFigure result = new DefaultSizeNodeFigure(40, 40);
+ return result;
+ }
+
+ /**
+ * Creates figure for this edit part.
+ *
+ * Body of this method does not depend on settings in generation model
+ * so you may safely remove <i>generated</i> tag and modify it.
+ *
+ * @generated
+ */
+ protected NodeFigure createMainFigure() {
+ NodeFigure figure = createNodePlate();
+ figure.setLayoutManager(new StackLayout());
+ IFigure shape = createNodeShape();
+ figure.add(shape);
+ contentPane = setupContentPane(shape);
+ return figure;
+ }
+
+ /**
+ * Default implementation treats passed figure as content pane.
+ * Respects layout one may have set for generated figure.
+ * @param nodeShape instance of generated figure class
+ * @generated
+ */
+ protected IFigure setupContentPane(IFigure nodeShape) {
+ if (nodeShape.getLayoutManager() == null) {
+ ConstrainedToolbarLayout layout = new ConstrainedToolbarLayout();
+ layout.setSpacing(5);
+ nodeShape.setLayoutManager(layout);
+ }
+ return nodeShape; // use nodeShape itself as contentPane
+ }
+
+ /**
+ * @generated
+ */
+ public IFigure getContentPane() {
+ if (contentPane != null) {
+ return contentPane;
+ }
+ return super.getContentPane();
+ }
+
+ /**
+ * @generated
+ */
+ protected void setForegroundColor(Color color) {
+ if (primaryShape != null) {
+ primaryShape.setForegroundColor(color);
+ }
+ }
+
+ /**
+ * @generated
+ */
+ protected void setBackgroundColor(Color color) {
+ if (primaryShape != null) {
+ primaryShape.setBackgroundColor(color);
+ }
+ }
+
+ /**
+ * @generated
+ */
+ protected void setLineWidth(int width) {
+ if (primaryShape instanceof Shape) {
+ ((Shape) primaryShape).setLineWidth(width);
+ }
+ }
+
+ /**
+ * @generated
+ */
+ protected void setLineType(int style) {
+ if (primaryShape instanceof Shape) {
+ ((Shape) primaryShape).setLineStyle(style);
+ }
+ }
+
+ /**
+ * @generated
+ */
+ public EditPart getPrimaryChildEditPart() {
+ return getChildBySemanticHint(ComrelVisualIDRegistry
+ .getType(AtomicUnitLabelType4EditPart.VISUAL_ID));
+ }
+
+ /**
+ * @generated
+ */
+ public class AtomicUnitFigure extends RoundedRectangle {
+
+ /**
+ * @generated
+ */
+ private WrappingLabel fFigureAtomicUnitLabelFigure;
+
+ /**
+ * @generated
+ */
+ public AtomicUnitFigure() {
+ this.setCornerDimensions(new Dimension(getMapMode().DPtoLP(8),
+ getMapMode().DPtoLP(8)));
+ this.setBorder(new MarginBorder(getMapMode().DPtoLP(5),
+ getMapMode().DPtoLP(5), getMapMode().DPtoLP(5),
+ getMapMode().DPtoLP(5)));
+ createContents();
+ }
+
+ /**
+ * @generated
+ */
+ private void createContents() {
+
+ fFigureAtomicUnitLabelFigure = new WrappingLabel();
+ fFigureAtomicUnitLabelFigure.setText("AtomicUnit");
+
+ this.add(fFigureAtomicUnitLabelFigure);
+
+ }
+
+ /**
+ * @generated
+ */
+ public WrappingLabel getFigureAtomicUnitLabelFigure() {
+ return fFigureAtomicUnitLabelFigure;
+ }
+
+ }
+
+}
diff --git a/org.eclipse.emf.refactor.comrel.diagram/src/comrel/diagram/edit/parts/AtomicUnit5EditPart.java b/org.eclipse.emf.refactor.comrel.diagram/src/comrel/diagram/edit/parts/AtomicUnit5EditPart.java
new file mode 100644
index 0000000..6c285a1
--- /dev/null
+++ b/org.eclipse.emf.refactor.comrel.diagram/src/comrel/diagram/edit/parts/AtomicUnit5EditPart.java
@@ -0,0 +1,334 @@
+/*
+ *
+ */
+package comrel.diagram.edit.parts;
+
+import org.eclipse.draw2d.IFigure;
+import org.eclipse.draw2d.MarginBorder;
+import org.eclipse.draw2d.PositionConstants;
+import org.eclipse.draw2d.RoundedRectangle;
+import org.eclipse.draw2d.Shape;
+import org.eclipse.draw2d.StackLayout;
+import org.eclipse.draw2d.geometry.Dimension;
+import org.eclipse.gef.EditPart;
+import org.eclipse.gef.EditPolicy;
+import org.eclipse.gef.Request;
+import org.eclipse.gef.commands.Command;
+import org.eclipse.gef.editpolicies.LayoutEditPolicy;
+import org.eclipse.gef.editpolicies.NonResizableEditPolicy;
+import org.eclipse.gef.requests.CreateRequest;
+import org.eclipse.gmf.runtime.diagram.ui.editparts.AbstractBorderedShapeEditPart;
+import org.eclipse.gmf.runtime.diagram.ui.editparts.IBorderItemEditPart;
+import org.eclipse.gmf.runtime.diagram.ui.editparts.IGraphicalEditPart;
+import org.eclipse.gmf.runtime.diagram.ui.editpolicies.BorderItemSelectionEditPolicy;
+import org.eclipse.gmf.runtime.diagram.ui.editpolicies.CreationEditPolicy;
+import org.eclipse.gmf.runtime.diagram.ui.editpolicies.DragDropEditPolicy;
+import org.eclipse.gmf.runtime.diagram.ui.editpolicies.EditPolicyRoles;
+import org.eclipse.gmf.runtime.diagram.ui.figures.BorderItemLocator;
+import org.eclipse.gmf.runtime.draw2d.ui.figures.ConstrainedToolbarLayout;
+import org.eclipse.gmf.runtime.draw2d.ui.figures.WrappingLabel;
+import org.eclipse.gmf.runtime.gef.ui.figures.DefaultSizeNodeFigure;
+import org.eclipse.gmf.runtime.gef.ui.figures.NodeFigure;
+import org.eclipse.gmf.runtime.notation.View;
+import org.eclipse.swt.graphics.Color;
+
+import comrel.diagram.edit.policies.AtomicUnit5CanonicalEditPolicy;
+import comrel.diagram.edit.policies.AtomicUnit5ItemSemanticEditPolicy;
+import comrel.diagram.part.ComrelVisualIDRegistry;
+
+/**
+ * @generated
+ */
+public class AtomicUnit5EditPart extends AbstractBorderedShapeEditPart {
+
+ /**
+ * @generated
+ */
+ public static final int VISUAL_ID = 3074;
+
+ /**
+ * @generated
+ */
+ protected IFigure contentPane;
+
+ /**
+ * @generated
+ */
+ protected IFigure primaryShape;
+
+ /**
+ * @generated
+ */
+ public AtomicUnit5EditPart(View view) {
+ super(view);
+ }
+
+ /**
+ * @generated
+ */
+ protected void createDefaultEditPolicies() {
+ installEditPolicy(EditPolicyRoles.CREATION_ROLE,
+ new CreationEditPolicy());
+ super.createDefaultEditPolicies();
+ installEditPolicy(EditPolicyRoles.SEMANTIC_ROLE,
+ new AtomicUnit5ItemSemanticEditPolicy());
+ installEditPolicy(EditPolicyRoles.DRAG_DROP_ROLE,
+ new DragDropEditPolicy());
+ installEditPolicy(EditPolicyRoles.CANONICAL_ROLE,
+ new AtomicUnit5CanonicalEditPolicy());
+ installEditPolicy(EditPolicy.LAYOUT_ROLE, createLayoutEditPolicy());
+ // XXX need an SCR to runtime to have another abstract superclass that would let children add reasonable editpolicies
+ // removeEditPolicy(org.eclipse.gmf.runtime.diagram.ui.editpolicies.EditPolicyRoles.CONNECTION_HANDLES_ROLE);
+ }
+
+ /**
+ * @generated
+ */
+ protected LayoutEditPolicy createLayoutEditPolicy() {
+ org.eclipse.gmf.runtime.diagram.ui.editpolicies.LayoutEditPolicy lep = new org.eclipse.gmf.runtime.diagram.ui.editpolicies.LayoutEditPolicy() {
+
+ protected EditPolicy createChildEditPolicy(EditPart child) {
+ View childView = (View) child.getModel();
+ switch (ComrelVisualIDRegistry.getVisualID(childView)) {
+ case SingleInputPort9EditPart.VISUAL_ID:
+ return new BorderItemSelectionEditPolicy();
+ }
+ EditPolicy result = child
+ .getEditPolicy(EditPolicy.PRIMARY_DRAG_ROLE);
+ if (result == null) {
+ result = new NonResizableEditPolicy();
+ }
+ return result;
+ }
+
+ protected Command getMoveChildrenCommand(Request request) {
+ return null;
+ }
+
+ protected Command getCreateCommand(CreateRequest request) {
+ return null;
+ }
+ };
+ return lep;
+ }
+
+ /**
+ * @generated
+ */
+ protected IFigure createNodeShape() {
+ return primaryShape = new AtomicUnitFigure();
+ }
+
+ /**
+ * @generated
+ */
+ public AtomicUnitFigure getPrimaryShape() {
+ return (AtomicUnitFigure) primaryShape;
+ }
+
+ /**
+ * @generated NOT
+ */
+ protected boolean addFixedChild(EditPart childEditPart) {
+ if (childEditPart instanceof AtomicUnitLabelType5EditPart) {
+ ((AtomicUnitLabelType5EditPart) childEditPart)
+ .setLabel(getPrimaryShape()
+ .getFigureAtomicUnitLabelFigure());
+ return true;
+ }
+ if (childEditPart instanceof SingleInputPort9EditPart) {
+ BorderItemLocator locator = new BorderItemLocator(getMainFigure(),
+ PositionConstants.NORTH);
+ locator.setCurrentSideOfParent(PositionConstants.NORTH); // Position des Ports
+ locator.setPreferredSideOfParent(PositionConstants.NORTH); // Position des Ports
+ getBorderedFigure().getBorderItemContainer().add(
+ ((SingleInputPort9EditPart) childEditPart).getFigure(),
+ locator);
+ return true;
+ }
+ return false;
+ }
+
+ /**
+ * @generated NOT
+ */
+ protected boolean removeFixedChild(EditPart childEditPart) {
+ if (childEditPart instanceof AtomicUnitLabelType5EditPart) {
+ return true;
+ }
+ if (childEditPart instanceof SingleInputPort9EditPart) {
+ // getBorderedFigure().getBorderItemContainer().remove(
+ // ((SingleInputPort9EditPart) childEditPart).getFigure());
+ return true;
+ }
+ return false;
+ }
+
+ /**
+ * @generated
+ */
+ protected void addChildVisual(EditPart childEditPart, int index) {
+ if (addFixedChild(childEditPart)) {
+ return;
+ }
+ super.addChildVisual(childEditPart, -1);
+ }
+
+ /**
+ * @generated
+ */
+ protected void removeChildVisual(EditPart childEditPart) {
+ if (removeFixedChild(childEditPart)) {
+ return;
+ }
+ super.removeChildVisual(childEditPart);
+ }
+
+ /**
+ * @generated
+ */
+ protected IFigure getContentPaneFor(IGraphicalEditPart editPart) {
+ if (editPart instanceof IBorderItemEditPart) {
+ return getBorderedFigure().getBorderItemContainer();
+ }
+ return getContentPane();
+ }
+
+ /**
+ * @generated
+ */
+ protected NodeFigure createNodePlate() {
+ DefaultSizeNodeFigure result = new DefaultSizeNodeFigure(40, 40);
+ return result;
+ }
+
+ /**
+ * Creates figure for this edit part.
+ *
+ * Body of this method does not depend on settings in generation model
+ * so you may safely remove <i>generated</i> tag and modify it.
+ *
+ * @generated
+ */
+ protected NodeFigure createMainFigure() {
+ NodeFigure figure = createNodePlate();
+ figure.setLayoutManager(new StackLayout());
+ IFigure shape = createNodeShape();
+ figure.add(shape);
+ contentPane = setupContentPane(shape);
+ return figure;
+ }
+
+ /**
+ * Default implementation treats passed figure as content pane.
+ * Respects layout one may have set for generated figure.
+ * @param nodeShape instance of generated figure class
+ * @generated
+ */
+ protected IFigure setupContentPane(IFigure nodeShape) {
+ if (nodeShape.getLayoutManager() == null) {
+ ConstrainedToolbarLayout layout = new ConstrainedToolbarLayout();
+ layout.setSpacing(5);
+ nodeShape.setLayoutManager(layout);
+ }
+ return nodeShape; // use nodeShape itself as contentPane
+ }
+
+ /**
+ * @generated
+ */
+ public IFigure getContentPane() {
+ if (contentPane != null) {
+ return contentPane;
+ }
+ return super.getContentPane();
+ }
+
+ /**
+ * @generated
+ */
+ protected void setForegroundColor(Color color) {
+ if (primaryShape != null) {
+ primaryShape.setForegroundColor(color);
+ }
+ }
+
+ /**
+ * @generated
+ */
+ protected void setBackgroundColor(Color color) {
+ if (primaryShape != null) {
+ primaryShape.setBackgroundColor(color);
+ }
+ }
+
+ /**
+ * @generated
+ */
+ protected void setLineWidth(int width) {
+ if (primaryShape instanceof Shape) {
+ ((Shape) primaryShape).setLineWidth(width);
+ }
+ }
+
+ /**
+ * @generated
+ */
+ protected void setLineType(int style) {
+ if (primaryShape instanceof Shape) {
+ ((Shape) primaryShape).setLineStyle(style);
+ }
+ }
+
+ /**
+ * @generated
+ */
+ public EditPart getPrimaryChildEditPart() {
+ return getChildBySemanticHint(ComrelVisualIDRegistry
+ .getType(AtomicUnitLabelType5EditPart.VISUAL_ID));
+ }
+
+ /**
+ * @generated
+ */
+ public class AtomicUnitFigure extends RoundedRectangle {
+
+ /**
+ * @generated
+ */
+ private WrappingLabel fFigureAtomicUnitLabelFigure;
+
+ /**
+ * @generated
+ */
+ public AtomicUnitFigure() {
+ this.setCornerDimensions(new Dimension(getMapMode().DPtoLP(8),
+ getMapMode().DPtoLP(8)));
+ this.setBorder(new MarginBorder(getMapMode().DPtoLP(5),
+ getMapMode().DPtoLP(5), getMapMode().DPtoLP(5),
+ getMapMode().DPtoLP(5)));
+ createContents();
+ }
+
+ /**
+ * @generated
+ */
+ private void createContents() {
+
+ fFigureAtomicUnitLabelFigure = new WrappingLabel();
+ fFigureAtomicUnitLabelFigure.setText("AtomicUnit");
+
+ this.add(fFigureAtomicUnitLabelFigure);
+
+ }
+
+ /**
+ * @generated
+ */
+ public WrappingLabel getFigureAtomicUnitLabelFigure() {
+ return fFigureAtomicUnitLabelFigure;
+ }
+
+ }
+
+}
diff --git a/org.eclipse.emf.refactor.comrel.diagram/src/comrel/diagram/edit/parts/AtomicUnit6EditPart.java b/org.eclipse.emf.refactor.comrel.diagram/src/comrel/diagram/edit/parts/AtomicUnit6EditPart.java
new file mode 100644
index 0000000..50914fb
--- /dev/null
+++ b/org.eclipse.emf.refactor.comrel.diagram/src/comrel/diagram/edit/parts/AtomicUnit6EditPart.java
@@ -0,0 +1,334 @@
+/*
+ *
+ */
+package comrel.diagram.edit.parts;
+
+import org.eclipse.draw2d.IFigure;
+import org.eclipse.draw2d.MarginBorder;
+import org.eclipse.draw2d.PositionConstants;
+import org.eclipse.draw2d.RoundedRectangle;
+import org.eclipse.draw2d.Shape;
+import org.eclipse.draw2d.StackLayout;
+import org.eclipse.draw2d.geometry.Dimension;
+import org.eclipse.gef.EditPart;
+import org.eclipse.gef.EditPolicy;
+import org.eclipse.gef.Request;
+import org.eclipse.gef.commands.Command;
+import org.eclipse.gef.editpolicies.LayoutEditPolicy;
+import org.eclipse.gef.editpolicies.NonResizableEditPolicy;
+import org.eclipse.gef.requests.CreateRequest;
+import org.eclipse.gmf.runtime.diagram.ui.editparts.AbstractBorderedShapeEditPart;
+import org.eclipse.gmf.runtime.diagram.ui.editparts.IBorderItemEditPart;
+import org.eclipse.gmf.runtime.diagram.ui.editparts.IGraphicalEditPart;
+import org.eclipse.gmf.runtime.diagram.ui.editpolicies.BorderItemSelectionEditPolicy;
+import org.eclipse.gmf.runtime.diagram.ui.editpolicies.CreationEditPolicy;
+import org.eclipse.gmf.runtime.diagram.ui.editpolicies.DragDropEditPolicy;
+import org.eclipse.gmf.runtime.diagram.ui.editpolicies.EditPolicyRoles;
+import org.eclipse.gmf.runtime.diagram.ui.figures.BorderItemLocator;
+import org.eclipse.gmf.runtime.draw2d.ui.figures.ConstrainedToolbarLayout;
+import org.eclipse.gmf.runtime.draw2d.ui.figures.WrappingLabel;
+import org.eclipse.gmf.runtime.gef.ui.figures.DefaultSizeNodeFigure;
+import org.eclipse.gmf.runtime.gef.ui.figures.NodeFigure;
+import org.eclipse.gmf.runtime.notation.View;
+import org.eclipse.swt.graphics.Color;
+
+import comrel.diagram.edit.policies.AtomicUnit6CanonicalEditPolicy;
+import comrel.diagram.edit.policies.AtomicUnit6ItemSemanticEditPolicy;
+import comrel.diagram.part.ComrelVisualIDRegistry;
+
+/**
+ * @generated
+ */
+public class AtomicUnit6EditPart extends AbstractBorderedShapeEditPart {
+
+ /**
+ * @generated
+ */
+ public static final int VISUAL_ID = 3077;
+
+ /**
+ * @generated
+ */
+ protected IFigure contentPane;
+
+ /**
+ * @generated
+ */
+ protected IFigure primaryShape;
+
+ /**
+ * @generated
+ */
+ public AtomicUnit6EditPart(View view) {
+ super(view);
+ }
+
+ /**
+ * @generated
+ */
+ protected void createDefaultEditPolicies() {
+ installEditPolicy(EditPolicyRoles.CREATION_ROLE,
+ new CreationEditPolicy());
+ super.createDefaultEditPolicies();
+ installEditPolicy(EditPolicyRoles.SEMANTIC_ROLE,
+ new AtomicUnit6ItemSemanticEditPolicy());
+ installEditPolicy(EditPolicyRoles.DRAG_DROP_ROLE,
+ new DragDropEditPolicy());
+ installEditPolicy(EditPolicyRoles.CANONICAL_ROLE,
+ new AtomicUnit6CanonicalEditPolicy());
+ installEditPolicy(EditPolicy.LAYOUT_ROLE, createLayoutEditPolicy());
+ // XXX need an SCR to runtime to have another abstract superclass that would let children add reasonable editpolicies
+ // removeEditPolicy(org.eclipse.gmf.runtime.diagram.ui.editpolicies.EditPolicyRoles.CONNECTION_HANDLES_ROLE);
+ }
+
+ /**
+ * @generated
+ */
+ protected LayoutEditPolicy createLayoutEditPolicy() {
+ org.eclipse.gmf.runtime.diagram.ui.editpolicies.LayoutEditPolicy lep = new org.eclipse.gmf.runtime.diagram.ui.editpolicies.LayoutEditPolicy() {
+
+ protected EditPolicy createChildEditPolicy(EditPart child) {
+ View childView = (View) child.getModel();
+ switch (ComrelVisualIDRegistry.getVisualID(childView)) {
+ case SingleInputPort9EditPart.VISUAL_ID:
+ return new BorderItemSelectionEditPolicy();
+ }
+ EditPolicy result = child
+ .getEditPolicy(EditPolicy.PRIMARY_DRAG_ROLE);
+ if (result == null) {
+ result = new NonResizableEditPolicy();
+ }
+ return result;
+ }
+
+ protected Command getMoveChildrenCommand(Request request) {
+ return null;
+ }
+
+ protected Command getCreateCommand(CreateRequest request) {
+ return null;
+ }
+ };
+ return lep;
+ }
+
+ /**
+ * @generated
+ */
+ protected IFigure createNodeShape() {
+ return primaryShape = new AtomicUnitFigure();
+ }
+
+ /**
+ * @generated
+ */
+ public AtomicUnitFigure getPrimaryShape() {
+ return (AtomicUnitFigure) primaryShape;
+ }
+
+ /**
+ * @generated NOT
+ */
+ protected boolean addFixedChild(EditPart childEditPart) {
+ if (childEditPart instanceof AtomicUnitLabelType6EditPart) {
+ ((AtomicUnitLabelType6EditPart) childEditPart)
+ .setLabel(getPrimaryShape()
+ .getFigureAtomicUnitLabelFigure());
+ return true;
+ }
+ if (childEditPart instanceof SingleInputPort9EditPart) {
+ BorderItemLocator locator = new BorderItemLocator(getMainFigure(),
+ PositionConstants.NORTH);
+ locator.setCurrentSideOfParent(PositionConstants.NORTH); // Position des Ports
+ locator.setPreferredSideOfParent(PositionConstants.NORTH); // Position des Ports
+ getBorderedFigure().getBorderItemContainer().add(
+ ((SingleInputPort9EditPart) childEditPart).getFigure(),
+ locator);
+ return true;
+ }
+ return false;
+ }
+
+ /**
+ * @generated NOT
+ */
+ protected boolean removeFixedChild(EditPart childEditPart) {
+ if (childEditPart instanceof AtomicUnitLabelType6EditPart) {
+ return true;
+ }
+ if (childEditPart instanceof SingleInputPort9EditPart) {
+ // getBorderedFigure().getBorderItemContainer().remove(
+ // ((SingleInputPort9EditPart) childEditPart).getFigure());
+ return true;
+ }
+ return false;
+ }
+
+ /**
+ * @generated
+ */
+ protected void addChildVisual(EditPart childEditPart, int index) {
+ if (addFixedChild(childEditPart)) {
+ return;
+ }
+ super.addChildVisual(childEditPart, -1);
+ }
+
+ /**
+ * @generated
+ */
+ protected void removeChildVisual(EditPart childEditPart) {
+ if (removeFixedChild(childEditPart)) {
+ return;
+ }
+ super.removeChildVisual(childEditPart);
+ }
+
+ /**
+ * @generated
+ */
+ protected IFigure getContentPaneFor(IGraphicalEditPart editPart) {
+ if (editPart instanceof IBorderItemEditPart) {
+ return getBorderedFigure().getBorderItemContainer();
+ }
+ return getContentPane();
+ }
+
+ /**
+ * @generated
+ */
+ protected NodeFigure createNodePlate() {
+ DefaultSizeNodeFigure result = new DefaultSizeNodeFigure(40, 40);
+ return result;
+ }
+
+ /**
+ * Creates figure for this edit part.
+ *
+ * Body of this method does not depend on settings in generation model
+ * so you may safely remove <i>generated</i> tag and modify it.
+ *
+ * @generated
+ */
+ protected NodeFigure createMainFigure() {
+ NodeFigure figure = createNodePlate();
+ figure.setLayoutManager(new StackLayout());
+ IFigure shape = createNodeShape();
+ figure.add(shape);
+ contentPane = setupContentPane(shape);
+ return figure;
+ }
+
+ /**
+ * Default implementation treats passed figure as content pane.
+ * Respects layout one may have set for generated figure.
+ * @param nodeShape instance of generated figure class
+ * @generated
+ */
+ protected IFigure setupContentPane(IFigure nodeShape) {
+ if (nodeShape.getLayoutManager() == null) {
+ ConstrainedToolbarLayout layout = new ConstrainedToolbarLayout();
+ layout.setSpacing(5);
+ nodeShape.setLayoutManager(layout);
+ }
+ return nodeShape; // use nodeShape itself as contentPane
+ }
+
+ /**
+ * @generated
+ */
+ public IFigure getContentPane() {
+ if (contentPane != null) {
+ return contentPane;
+ }
+ return super.getContentPane();
+ }
+
+ /**
+ * @generated
+ */
+ protected void setForegroundColor(Color color) {
+ if (primaryShape != null) {
+ primaryShape.setForegroundColor(color);
+ }
+ }
+
+ /**
+ * @generated
+ */
+ protected void setBackgroundColor(Color color) {
+ if (primaryShape != null) {
+ primaryShape.setBackgroundColor(color);
+ }
+ }
+
+ /**
+ * @generated
+ */
+ protected void setLineWidth(int width) {
+ if (primaryShape instanceof Shape) {
+ ((Shape) primaryShape).setLineWidth(width);
+ }
+ }
+
+ /**
+ * @generated
+ */
+ protected void setLineType(int style) {
+ if (primaryShape instanceof Shape) {
+ ((Shape) primaryShape).setLineStyle(style);
+ }
+ }
+
+ /**
+ * @generated
+ */
+ public EditPart getPrimaryChildEditPart() {
+ return getChildBySemanticHint(ComrelVisualIDRegistry
+ .getType(AtomicUnitLabelType6EditPart.VISUAL_ID));
+ }
+
+ /**
+ * @generated
+ */
+ public class AtomicUnitFigure extends RoundedRectangle {
+
+ /**
+ * @generated
+ */
+ private WrappingLabel fFigureAtomicUnitLabelFigure;
+
+ /**
+ * @generated
+ */
+ public AtomicUnitFigure() {
+ this.setCornerDimensions(new Dimension(getMapMode().DPtoLP(8),
+ getMapMode().DPtoLP(8)));
+ this.setBorder(new MarginBorder(getMapMode().DPtoLP(5),
+ getMapMode().DPtoLP(5), getMapMode().DPtoLP(5),
+ getMapMode().DPtoLP(5)));
+ createContents();
+ }
+
+ /**
+ * @generated
+ */
+ private void createContents() {
+
+ fFigureAtomicUnitLabelFigure = new WrappingLabel();
+ fFigureAtomicUnitLabelFigure.setText("AtomicUnit");
+
+ this.add(fFigureAtomicUnitLabelFigure);
+
+ }
+
+ /**
+ * @generated
+ */
+ public WrappingLabel getFigureAtomicUnitLabelFigure() {
+ return fFigureAtomicUnitLabelFigure;
+ }
+
+ }
+
+}
diff --git a/org.eclipse.emf.refactor.comrel.diagram/src/comrel/diagram/edit/parts/AtomicUnit7EditPart.java b/org.eclipse.emf.refactor.comrel.diagram/src/comrel/diagram/edit/parts/AtomicUnit7EditPart.java
new file mode 100644
index 0000000..cf60afc
--- /dev/null
+++ b/org.eclipse.emf.refactor.comrel.diagram/src/comrel/diagram/edit/parts/AtomicUnit7EditPart.java
@@ -0,0 +1,338 @@
+/*
+ *
+ */
+package comrel.diagram.edit.parts;
+
+import org.eclipse.draw2d.IFigure;
+import org.eclipse.draw2d.MarginBorder;
+import org.eclipse.draw2d.PositionConstants;
+import org.eclipse.draw2d.RoundedRectangle;
+import org.eclipse.draw2d.Shape;
+import org.eclipse.draw2d.StackLayout;
+import org.eclipse.draw2d.geometry.Dimension;
+import org.eclipse.gef.EditPart;
+import org.eclipse.gef.EditPolicy;
+import org.eclipse.gef.Request;
+import org.eclipse.gef.commands.Command;
+import org.eclipse.gef.editpolicies.LayoutEditPolicy;
+import org.eclipse.gef.editpolicies.NonResizableEditPolicy;
+import org.eclipse.gef.requests.CreateRequest;
+import org.eclipse.gmf.runtime.diagram.ui.editparts.AbstractBorderedShapeEditPart;
+import org.eclipse.gmf.runtime.diagram.ui.editparts.IBorderItemEditPart;
+import org.eclipse.gmf.runtime.diagram.ui.editparts.IGraphicalEditPart;
+import org.eclipse.gmf.runtime.diagram.ui.editpolicies.BorderItemSelectionEditPolicy;
+import org.eclipse.gmf.runtime.diagram.ui.editpolicies.CreationEditPolicy;
+import org.eclipse.gmf.runtime.diagram.ui.editpolicies.DragDropEditPolicy;
+import org.eclipse.gmf.runtime.diagram.ui.editpolicies.EditPolicyRoles;
+import org.eclipse.gmf.runtime.diagram.ui.figures.BorderItemLocator;
+import org.eclipse.gmf.runtime.draw2d.ui.figures.ConstrainedToolbarLayout;
+import org.eclipse.gmf.runtime.draw2d.ui.figures.WrappingLabel;
+import org.eclipse.gmf.runtime.gef.ui.figures.DefaultSizeNodeFigure;
+import org.eclipse.gmf.runtime.gef.ui.figures.NodeFigure;
+import org.eclipse.gmf.runtime.notation.View;
+import org.eclipse.swt.graphics.Color;
+
+import comrel.RefactoringUnit;
+import comrel.diagram.edit.policies.AtomicUnit7CanonicalEditPolicy;
+import comrel.diagram.edit.policies.AtomicUnit7ItemSemanticEditPolicy;
+import comrel.diagram.part.ComrelVisualIDRegistry;
+
+/**
+ * @generated
+ */
+public class AtomicUnit7EditPart extends AbstractBorderedShapeEditPart {
+
+ /**
+ * @generated
+ */
+ public static final int VISUAL_ID = 3078;
+
+ /**
+ * @generated
+ */
+ protected IFigure contentPane;
+
+ /**
+ * @generated
+ */
+ protected IFigure primaryShape;
+
+ /**
+ * @generated
+ */
+ public AtomicUnit7EditPart(View view) {
+ super(view);
+ }
+
+ /**
+ * @generated
+ */
+ protected void createDefaultEditPolicies() {
+ installEditPolicy(EditPolicyRoles.CREATION_ROLE,
+ new CreationEditPolicy());
+ super.createDefaultEditPolicies();
+ installEditPolicy(EditPolicyRoles.SEMANTIC_ROLE,
+ new AtomicUnit7ItemSemanticEditPolicy());
+ installEditPolicy(EditPolicyRoles.DRAG_DROP_ROLE,
+ new DragDropEditPolicy());
+ installEditPolicy(EditPolicyRoles.CANONICAL_ROLE,
+ new AtomicUnit7CanonicalEditPolicy());
+ installEditPolicy(EditPolicy.LAYOUT_ROLE, createLayoutEditPolicy());
+ // XXX need an SCR to runtime to have another abstract superclass that would let children add reasonable editpolicies
+ // removeEditPolicy(org.eclipse.gmf.runtime.diagram.ui.editpolicies.EditPolicyRoles.CONNECTION_HANDLES_ROLE);
+ }
+
+ /**
+ * @generated
+ */
+ protected LayoutEditPolicy createLayoutEditPolicy() {
+ org.eclipse.gmf.runtime.diagram.ui.editpolicies.LayoutEditPolicy lep = new org.eclipse.gmf.runtime.diagram.ui.editpolicies.LayoutEditPolicy() {
+
+ protected EditPolicy createChildEditPolicy(EditPart child) {
+ View childView = (View) child.getModel();
+ switch (ComrelVisualIDRegistry.getVisualID(childView)) {
+ case SingleInputPort9EditPart.VISUAL_ID:
+ return new BorderItemSelectionEditPolicy();
+ }
+ EditPolicy result = child
+ .getEditPolicy(EditPolicy.PRIMARY_DRAG_ROLE);
+ if (result == null) {
+ result = new NonResizableEditPolicy();
+ }
+ return result;
+ }
+
+ protected Command getMoveChildrenCommand(Request request) {
+ return null;
+ }
+
+ protected Command getCreateCommand(CreateRequest request) {
+ return null;
+ }
+ };
+ return lep;
+ }
+
+ /**
+ * @generated NOT
+ */
+ protected IFigure createNodeShape() {
+ AtomicUnitFigure figure = new AtomicUnitFigure();
+ RefactoringUnit unit = (RefactoringUnit) this.resolveSemanticElement();
+ unit.setFigure(figure);
+ return primaryShape = figure;
+ }
+
+ /**
+ * @generated
+ */
+ public AtomicUnitFigure getPrimaryShape() {
+ return (AtomicUnitFigure) primaryShape;
+ }
+
+ /**
+ * @generated NOT
+ */
+ protected boolean addFixedChild(EditPart childEditPart) {
+ if (childEditPart instanceof AtomicUnitLabelType7EditPart) {
+ ((AtomicUnitLabelType7EditPart) childEditPart)
+ .setLabel(getPrimaryShape()
+ .getFigureAtomicUnitLabelFigure());
+ return true;
+ }
+ if (childEditPart instanceof SingleInputPort9EditPart) {
+ BorderItemLocator locator = new BorderItemLocator(getMainFigure(),
+ PositionConstants.NORTH);
+ locator.setCurrentSideOfParent(PositionConstants.NORTH); // Position des Ports
+ locator.setPreferredSideOfParent(PositionConstants.NORTH); // Position des Ports
+ getBorderedFigure().getBorderItemContainer().add(
+ ((SingleInputPort9EditPart) childEditPart).getFigure(),
+ locator);
+ return true;
+ }
+ return false;
+ }
+
+ /**
+ * @generated NOT
+ */
+ protected boolean removeFixedChild(EditPart childEditPart) {
+ if (childEditPart instanceof AtomicUnitLabelType7EditPart) {
+ return true;
+ }
+ if (childEditPart instanceof SingleInputPort9EditPart) {
+ // getBorderedFigure().getBorderItemContainer().remove(
+ // ((SingleInputPort9EditPart) childEditPart).getFigure());
+ return true;
+ }
+ return false;
+ }
+
+ /**
+ * @generated
+ */
+ protected void addChildVisual(EditPart childEditPart, int index) {
+ if (addFixedChild(childEditPart)) {
+ return;
+ }
+ super.addChildVisual(childEditPart, -1);
+ }
+
+ /**
+ * @generated
+ */
+ protected void removeChildVisual(EditPart childEditPart) {
+ if (removeFixedChild(childEditPart)) {
+ return;
+ }
+ super.removeChildVisual(childEditPart);
+ }
+
+ /**
+ * @generated
+ */
+ protected IFigure getContentPaneFor(IGraphicalEditPart editPart) {
+ if (editPart instanceof IBorderItemEditPart) {
+ return getBorderedFigure().getBorderItemContainer();
+ }
+ return getContentPane();
+ }
+
+ /**
+ * @generated
+ */
+ protected NodeFigure createNodePlate() {
+ DefaultSizeNodeFigure result = new DefaultSizeNodeFigure(40, 40);
+ return result;
+ }
+
+ /**
+ * Creates figure for this edit part.
+ *
+ * Body of this method does not depend on settings in generation model
+ * so you may safely remove <i>generated</i> tag and modify it.
+ *
+ * @generated
+ */
+ protected NodeFigure createMainFigure() {
+ NodeFigure figure = createNodePlate();
+ figure.setLayoutManager(new StackLayout());
+ IFigure shape = createNodeShape();
+ figure.add(shape);
+ contentPane = setupContentPane(shape);
+ return figure;
+ }
+
+ /**
+ * Default implementation treats passed figure as content pane.
+ * Respects layout one may have set for generated figure.
+ * @param nodeShape instance of generated figure class
+ * @generated
+ */
+ protected IFigure setupContentPane(IFigure nodeShape) {
+ if (nodeShape.getLayoutManager() == null) {
+ ConstrainedToolbarLayout layout = new ConstrainedToolbarLayout();
+ layout.setSpacing(5);
+ nodeShape.setLayoutManager(layout);
+ }
+ return nodeShape; // use nodeShape itself as contentPane
+ }
+
+ /**
+ * @generated
+ */
+ public IFigure getContentPane() {
+ if (contentPane != null) {
+ return contentPane;
+ }
+ return super.getContentPane();
+ }
+
+ /**
+ * @generated
+ */
+ protected void setForegroundColor(Color color) {
+ if (primaryShape != null) {
+ primaryShape.setForegroundColor(color);
+ }
+ }
+
+ /**
+ * @generated
+ */
+ protected void setBackgroundColor(Color color) {
+ if (primaryShape != null) {
+ primaryShape.setBackgroundColor(color);
+ }
+ }
+
+ /**
+ * @generated
+ */
+ protected void setLineWidth(int width) {
+ if (primaryShape instanceof Shape) {
+ ((Shape) primaryShape).setLineWidth(width);
+ }
+ }
+
+ /**
+ * @generated
+ */
+ protected void setLineType(int style) {
+ if (primaryShape instanceof Shape) {
+ ((Shape) primaryShape).setLineStyle(style);
+ }
+ }
+
+ /**
+ * @generated
+ */
+ public EditPart getPrimaryChildEditPart() {
+ return getChildBySemanticHint(ComrelVisualIDRegistry
+ .getType(AtomicUnitLabelType7EditPart.VISUAL_ID));
+ }
+
+ /**
+ * @generated
+ */
+ public class AtomicUnitFigure extends RoundedRectangle {
+
+ /**
+ * @generated
+ */
+ private WrappingLabel fFigureAtomicUnitLabelFigure;
+
+ /**
+ * @generated
+ */
+ public AtomicUnitFigure() {
+ this.setCornerDimensions(new Dimension(getMapMode().DPtoLP(8),
+ getMapMode().DPtoLP(8)));
+ this.setBorder(new MarginBorder(getMapMode().DPtoLP(5),
+ getMapMode().DPtoLP(5), getMapMode().DPtoLP(5),
+ getMapMode().DPtoLP(5)));
+ createContents();
+ }
+
+ /**
+ * @generated
+ */
+ private void createContents() {
+
+ fFigureAtomicUnitLabelFigure = new WrappingLabel();
+ fFigureAtomicUnitLabelFigure.setText("AtomicUnit");
+
+ this.add(fFigureAtomicUnitLabelFigure);
+
+ }
+
+ /**
+ * @generated
+ */
+ public WrappingLabel getFigureAtomicUnitLabelFigure() {
+ return fFigureAtomicUnitLabelFigure;
+ }
+
+ }
+
+}
diff --git a/org.eclipse.emf.refactor.comrel.diagram/src/comrel/diagram/edit/parts/AtomicUnitEditPart.java b/org.eclipse.emf.refactor.comrel.diagram/src/comrel/diagram/edit/parts/AtomicUnitEditPart.java
new file mode 100644
index 0000000..7b5d7cf
--- /dev/null
+++ b/org.eclipse.emf.refactor.comrel.diagram/src/comrel/diagram/edit/parts/AtomicUnitEditPart.java
@@ -0,0 +1,349 @@
+/*
+ *
+ */
+package comrel.diagram.edit.parts;
+
+import org.eclipse.draw2d.IFigure;
+import org.eclipse.draw2d.MarginBorder;
+import org.eclipse.draw2d.PositionConstants;
+import org.eclipse.draw2d.RoundedRectangle;
+import org.eclipse.draw2d.Shape;
+import org.eclipse.draw2d.StackLayout;
+import org.eclipse.draw2d.geometry.Dimension;
+import org.eclipse.emf.common.notify.Notification;
+import org.eclipse.emf.ecore.EcorePackage;
+import org.eclipse.gef.EditPart;
+import org.eclipse.gef.EditPolicy;
+import org.eclipse.gef.Request;
+import org.eclipse.gef.commands.Command;
+import org.eclipse.gef.editpolicies.LayoutEditPolicy;
+import org.eclipse.gef.editpolicies.NonResizableEditPolicy;
+import org.eclipse.gef.requests.CreateRequest;
+import org.eclipse.gmf.runtime.diagram.ui.editparts.AbstractBorderedShapeEditPart;
+import org.eclipse.gmf.runtime.diagram.ui.editparts.IBorderItemEditPart;
+import org.eclipse.gmf.runtime.diagram.ui.editparts.IGraphicalEditPart;
+import org.eclipse.gmf.runtime.diagram.ui.editpolicies.BorderItemSelectionEditPolicy;
+import org.eclipse.gmf.runtime.diagram.ui.editpolicies.CreationEditPolicy;
+import org.eclipse.gmf.runtime.diagram.ui.editpolicies.DragDropEditPolicy;
+import org.eclipse.gmf.runtime.diagram.ui.editpolicies.EditPolicyRoles;
+import org.eclipse.gmf.runtime.diagram.ui.figures.BorderItemLocator;
+import org.eclipse.gmf.runtime.draw2d.ui.figures.ConstrainedToolbarLayout;
+import org.eclipse.gmf.runtime.draw2d.ui.figures.WrappingLabel;
+import org.eclipse.gmf.runtime.gef.ui.figures.DefaultSizeNodeFigure;
+import org.eclipse.gmf.runtime.gef.ui.figures.NodeFigure;
+import org.eclipse.gmf.runtime.notation.View;
+import org.eclipse.swt.graphics.Color;
+
+import comrel.diagram.edit.policies.AtomicUnitCanonicalEditPolicy;
+import comrel.diagram.edit.policies.AtomicUnitItemSemanticEditPolicy;
+import comrel.diagram.part.ComrelVisualIDRegistry;
+
+/**
+ * @generated
+ */
+public class AtomicUnitEditPart extends AbstractBorderedShapeEditPart {
+
+ /**
+ * @generated
+ */
+ public static final int VISUAL_ID = 2007;
+
+ /**
+ * @generated
+ */
+ protected IFigure contentPane;
+
+ /**
+ * @generated
+ */
+ protected IFigure primaryShape;
+
+ /**
+ * @generated
+ */
+ public AtomicUnitEditPart(View view) {
+ super(view);
+ }
+
+ /**
+ * @generated
+ */
+ protected void createDefaultEditPolicies() {
+ installEditPolicy(EditPolicyRoles.CREATION_ROLE,
+ new CreationEditPolicy());
+ super.createDefaultEditPolicies();
+ installEditPolicy(EditPolicyRoles.SEMANTIC_ROLE,
+ new AtomicUnitItemSemanticEditPolicy());
+ installEditPolicy(EditPolicyRoles.DRAG_DROP_ROLE,
+ new DragDropEditPolicy());
+ installEditPolicy(EditPolicyRoles.CANONICAL_ROLE,
+ new AtomicUnitCanonicalEditPolicy());
+ installEditPolicy(EditPolicy.LAYOUT_ROLE, createLayoutEditPolicy());
+ // XXX need an SCR to runtime to have another abstract superclass that would let children add reasonable editpolicies
+ // removeEditPolicy(org.eclipse.gmf.runtime.diagram.ui.editpolicies.EditPolicyRoles.CONNECTION_HANDLES_ROLE);
+ }
+
+ /**
+ * @generated
+ */
+ protected LayoutEditPolicy createLayoutEditPolicy() {
+ org.eclipse.gmf.runtime.diagram.ui.editpolicies.LayoutEditPolicy lep = new org.eclipse.gmf.runtime.diagram.ui.editpolicies.LayoutEditPolicy() {
+
+ protected EditPolicy createChildEditPolicy(EditPart child) {
+ View childView = (View) child.getModel();
+ switch (ComrelVisualIDRegistry.getVisualID(childView)) {
+ case SingleInputPort9EditPart.VISUAL_ID:
+ return new BorderItemSelectionEditPolicy();
+ }
+ EditPolicy result = child
+ .getEditPolicy(EditPolicy.PRIMARY_DRAG_ROLE);
+ if (result == null) {
+ result = new NonResizableEditPolicy();
+ }
+ return result;
+ }
+
+ protected Command getMoveChildrenCommand(Request request) {
+ return null;
+ }
+
+ protected Command getCreateCommand(CreateRequest request) {
+ return null;
+ }
+ };
+ return lep;
+ }
+
+ /**
+ * @generated
+ */
+ protected IFigure createNodeShape() {
+ return primaryShape = new AtomicUnitFigure();
+ }
+
+ /**
+ * @generated
+ */
+ public AtomicUnitFigure getPrimaryShape() {
+ return (AtomicUnitFigure) primaryShape;
+ }
+
+ /**
+ * @generated NOT
+ */
+ protected boolean addFixedChild(EditPart childEditPart) {
+ if (childEditPart instanceof AtomicUnitLabelTypeEditPart) {
+ ((AtomicUnitLabelTypeEditPart) childEditPart)
+ .setLabel(getPrimaryShape()
+ .getFigureAtomicUnitLabelFigure());
+ return true;
+ }
+ if (childEditPart instanceof SingleInputPort9EditPart) {
+ BorderItemLocator locator = new BorderItemLocator(getMainFigure(),
+ PositionConstants.NORTH);
+ locator.setCurrentSideOfParent(PositionConstants.NORTH); // Position des Ports
+ locator.setPreferredSideOfParent(PositionConstants.NORTH); // Position des Ports
+ getBorderedFigure().getBorderItemContainer().add(
+ ((SingleInputPort9EditPart) childEditPart).getFigure(),
+ locator);
+ return true;
+ }
+ return false;
+ }
+
+ /**
+ * @generated NOT
+ */
+ protected boolean removeFixedChild(EditPart childEditPart) {
+ if (childEditPart instanceof AtomicUnitLabelTypeEditPart) {
+ return true;
+ }
+ if (childEditPart instanceof SingleInputPort9EditPart) {
+ // getBorderedFigure().getBorderItemContainer().remove(
+ // ((SingleInputPort9EditPart) childEditPart).getFigure());
+ return true;
+ }
+ return false;
+ }
+
+ /**
+ * @generated
+ */
+ protected void addChildVisual(EditPart childEditPart, int index) {
+ if (addFixedChild(childEditPart)) {
+ return;
+ }
+ super.addChildVisual(childEditPart, -1);
+ }
+
+ /**
+ * @generated
+ */
+ protected void removeChildVisual(EditPart childEditPart) {
+ if (removeFixedChild(childEditPart)) {
+ return;
+ }
+ super.removeChildVisual(childEditPart);
+ }
+
+ /**
+ * @generated
+ */
+ protected IFigure getContentPaneFor(IGraphicalEditPart editPart) {
+ if (editPart instanceof IBorderItemEditPart) {
+ return getBorderedFigure().getBorderItemContainer();
+ }
+ return getContentPane();
+ }
+
+ /**
+ * @generated
+ */
+ protected NodeFigure createNodePlate() {
+ DefaultSizeNodeFigure result = new DefaultSizeNodeFigure(40, 40);
+ return result;
+ }
+
+ /**
+ * Creates figure for this edit part.
+ *
+ * Body of this method does not depend on settings in generation model
+ * so you may safely remove <i>generated</i> tag and modify it.
+ *
+ * @generated
+ */
+ protected NodeFigure createMainFigure() {
+ NodeFigure figure = createNodePlate();
+ figure.setLayoutManager(new StackLayout());
+ IFigure shape = createNodeShape();
+ figure.add(shape);
+ contentPane = setupContentPane(shape);
+ return figure;
+ }
+
+ /**
+ * Default implementation treats passed figure as content pane.
+ * Respects layout one may have set for generated figure.
+ * @param nodeShape instance of generated figure class
+ * @generated
+ */
+ protected IFigure setupContentPane(IFigure nodeShape) {
+ if (nodeShape.getLayoutManager() == null) {
+ ConstrainedToolbarLayout layout = new ConstrainedToolbarLayout();
+ layout.setSpacing(5);
+ nodeShape.setLayoutManager(layout);
+ }
+ return nodeShape; // use nodeShape itself as contentPane
+ }
+
+ /**
+ * @generated
+ */
+ public IFigure getContentPane() {
+ if (contentPane != null) {
+ return contentPane;
+ }
+ return super.getContentPane();
+ }
+
+ /**
+ * @generated
+ */
+ protected void setForegroundColor(Color color) {
+ if (primaryShape != null) {
+ primaryShape.setForegroundColor(color);
+ }
+ }
+
+ /**
+ * @generated
+ */
+ protected void setBackgroundColor(Color color) {
+ if (primaryShape != null) {
+ primaryShape.setBackgroundColor(color);
+ }
+ }
+
+ /**
+ * @generated
+ */
+ protected void setLineWidth(int width) {
+ if (primaryShape instanceof Shape) {
+ ((Shape) primaryShape).setLineWidth(width);
+ }
+ }
+
+ /**
+ * @generated
+ */
+ protected void setLineType(int style) {
+ if (primaryShape instanceof Shape) {
+ ((Shape) primaryShape).setLineStyle(style);
+ }
+ }
+
+ /**
+ * @generated
+ */
+ public EditPart getPrimaryChildEditPart() {
+ return getChildBySemanticHint(ComrelVisualIDRegistry
+ .getType(AtomicUnitLabelTypeEditPart.VISUAL_ID));
+ }
+
+ /**
+ * @generated
+ */
+ protected void handleNotificationEvent(Notification event) {
+ if (event.getNotifier() == getModel()
+ && EcorePackage.eINSTANCE.getEModelElement_EAnnotations()
+ .equals(event.getFeature())) {
+ handleMajorSemanticChange();
+ } else {
+ super.handleNotificationEvent(event);
+ }
+ }
+
+ /**
+ * @generated
+ */
+ public class AtomicUnitFigure extends RoundedRectangle {
+
+ /**
+ * @generated
+ */
+ private WrappingLabel fFigureAtomicUnitLabelFigure;
+
+ /**
+ * @generated
+ */
+ public AtomicUnitFigure() {
+ this.setCornerDimensions(new Dimension(getMapMode().DPtoLP(8),
+ getMapMode().DPtoLP(8)));
+ this.setBorder(new MarginBorder(getMapMode().DPtoLP(5),
+ getMapMode().DPtoLP(5), getMapMode().DPtoLP(5),
+ getMapMode().DPtoLP(5)));
+ createContents();
+ }
+
+ /**
+ * @generated
+ */
+ private void createContents() {
+
+ fFigureAtomicUnitLabelFigure = new WrappingLabel();
+ fFigureAtomicUnitLabelFigure.setText("AtomicUnit");
+
+ this.add(fFigureAtomicUnitLabelFigure);
+
+ }
+
+ /**
+ * @generated
+ */
+ public WrappingLabel getFigureAtomicUnitLabelFigure() {
+ return fFigureAtomicUnitLabelFigure;
+ }
+
+ }
+
+}
diff --git a/org.eclipse.emf.refactor.comrel.diagram/src/comrel/diagram/edit/parts/AtomicUnitLabelType2EditPart.java b/org.eclipse.emf.refactor.comrel.diagram/src/comrel/diagram/edit/parts/AtomicUnitLabelType2EditPart.java
new file mode 100644
index 0000000..03798ad
--- /dev/null
+++ b/org.eclipse.emf.refactor.comrel.diagram/src/comrel/diagram/edit/parts/AtomicUnitLabelType2EditPart.java
@@ -0,0 +1,576 @@
+/*
+ *
+ */
+package comrel.diagram.edit.parts;
+
+import java.util.Collections;
+import java.util.List;
+
+import org.eclipse.draw2d.IFigure;
+import org.eclipse.draw2d.Label;
+import org.eclipse.draw2d.geometry.Point;
+import org.eclipse.emf.common.notify.Notification;
+import org.eclipse.emf.ecore.EObject;
+import org.eclipse.emf.transaction.RunnableWithResult;
+import org.eclipse.gef.AccessibleEditPart;
+import org.eclipse.gef.EditPolicy;
+import org.eclipse.gef.Request;
+import org.eclipse.gef.requests.DirectEditRequest;
+import org.eclipse.gef.tools.DirectEditManager;
+import org.eclipse.gmf.runtime.common.ui.services.parser.IParser;
+import org.eclipse.gmf.runtime.common.ui.services.parser.IParserEditStatus;
+import org.eclipse.gmf.runtime.common.ui.services.parser.ParserEditStatus;
+import org.eclipse.gmf.runtime.common.ui.services.parser.ParserOptions;
+import org.eclipse.gmf.runtime.diagram.ui.editparts.CompartmentEditPart;
+import org.eclipse.gmf.runtime.diagram.ui.editparts.IGraphicalEditPart;
+import org.eclipse.gmf.runtime.diagram.ui.editparts.ITextAwareEditPart;
+import org.eclipse.gmf.runtime.diagram.ui.editpolicies.LabelDirectEditPolicy;
+import org.eclipse.gmf.runtime.diagram.ui.l10n.DiagramColorRegistry;
+import org.eclipse.gmf.runtime.diagram.ui.requests.RequestConstants;
+import org.eclipse.gmf.runtime.diagram.ui.tools.TextDirectEditManager;
+import org.eclipse.gmf.runtime.draw2d.ui.figures.WrappingLabel;
+import org.eclipse.gmf.runtime.emf.core.util.EObjectAdapter;
+import org.eclipse.gmf.runtime.emf.ui.services.parser.ISemanticParser;
+import org.eclipse.gmf.runtime.notation.FontStyle;
+import org.eclipse.gmf.runtime.notation.NotationPackage;
+import org.eclipse.gmf.runtime.notation.View;
+import org.eclipse.jface.text.contentassist.IContentAssistProcessor;
+import org.eclipse.jface.viewers.ICellEditorValidator;
+import org.eclipse.swt.SWT;
+import org.eclipse.swt.accessibility.AccessibleEvent;
+import org.eclipse.swt.graphics.Color;
+import org.eclipse.swt.graphics.FontData;
+import org.eclipse.swt.graphics.Image;
+
+import comrel.diagram.edit.policies.ComrelTextSelectionEditPolicy;
+import comrel.diagram.part.ComrelVisualIDRegistry;
+import comrel.diagram.providers.ComrelElementTypes;
+import comrel.diagram.providers.ComrelParserProvider;
+
+/**
+ * @generated
+ */
+public class AtomicUnitLabelType2EditPart extends CompartmentEditPart implements
+ ITextAwareEditPart {
+
+ /**
+ * @generated
+ */
+ public static final int VISUAL_ID = 5027;
+
+ /**
+ * @generated
+ */
+ private DirectEditManager manager;
+
+ /**
+ * @generated
+ */
+ private IParser parser;
+
+ /**
+ * @generated
+ */
+ private List<?> parserElements;
+
+ /**
+ * @generated
+ */
+ private String defaultText;
+
+ /**
+ * @generated
+ */
+ public AtomicUnitLabelType2EditPart(View view) {
+ super(view);
+ }
+
+ /**
+ * @generated
+ */
+ protected void createDefaultEditPolicies() {
+ super.createDefaultEditPolicies();
+ installEditPolicy(EditPolicy.SELECTION_FEEDBACK_ROLE,
+ new ComrelTextSelectionEditPolicy());
+ installEditPolicy(EditPolicy.DIRECT_EDIT_ROLE,
+ new LabelDirectEditPolicy());
+ installEditPolicy(EditPolicy.PRIMARY_DRAG_ROLE,
+ new CompositeRefactoringEditPart.NodeLabelDragPolicy());
+ }
+
+ /**
+ * @generated
+ */
+ protected String getLabelTextHelper(IFigure figure) {
+ if (figure instanceof WrappingLabel) {
+ return ((WrappingLabel) figure).getText();
+ } else {
+ return ((Label) figure).getText();
+ }
+ }
+
+ /**
+ * @generated
+ */
+ protected void setLabelTextHelper(IFigure figure, String text) {
+ if (figure instanceof WrappingLabel) {
+ ((WrappingLabel) figure).setText(text);
+ } else {
+ ((Label) figure).setText(text);
+ }
+ }
+
+ /**
+ * @generated
+ */
+ protected Image getLabelIconHelper(IFigure figure) {
+ if (figure instanceof WrappingLabel) {
+ return ((WrappingLabel) figure).getIcon();
+ } else {
+ return ((Label) figure).getIcon();
+ }
+ }
+
+ /**
+ * @generated
+ */
+ protected void setLabelIconHelper(IFigure figure, Image icon) {
+ if (figure instanceof WrappingLabel) {
+ ((WrappingLabel) figure).setIcon(icon);
+ } else {
+ ((Label) figure).setIcon(icon);
+ }
+ }
+
+ /**
+ * @generated
+ */
+ public void setLabel(WrappingLabel figure) {
+ unregisterVisuals();
+ setFigure(figure);
+ defaultText = getLabelTextHelper(figure);
+ registerVisuals();
+ refreshVisuals();
+ }
+
+ /**
+ * @generated
+ */
+ @SuppressWarnings("rawtypes")
+ protected List getModelChildren() {
+ return Collections.EMPTY_LIST;
+ }
+
+ /**
+ * @generated
+ */
+ public IGraphicalEditPart getChildBySemanticHint(String semanticHint) {
+ return null;
+ }
+
+ /**
+ * @generated
+ */
+ protected EObject getParserElement() {
+ return resolveSemanticElement();
+ }
+
+ /**
+ * @generated
+ */
+ protected Image getLabelIcon() {
+ return null;
+ }
+
+ /**
+ * @generated
+ */
+ protected String getLabelText() {
+ String text = null;
+ EObject parserElement = getParserElement();
+ if (parserElement != null && getParser() != null) {
+ text = getParser().getPrintString(
+ new EObjectAdapter(parserElement),
+ getParserOptions().intValue());
+ }
+ if (text == null || text.length() == 0) {
+ text = defaultText;
+ }
+ return text;
+ }
+
+ /**
+ * @generated
+ */
+ public void setLabelText(String text) {
+ setLabelTextHelper(getFigure(), text);
+ Object pdEditPolicy = getEditPolicy(EditPolicy.PRIMARY_DRAG_ROLE);
+ if (pdEditPolicy instanceof ComrelTextSelectionEditPolicy) {
+ ((ComrelTextSelectionEditPolicy) pdEditPolicy).refreshFeedback();
+ }
+ Object sfEditPolicy = getEditPolicy(EditPolicy.SELECTION_FEEDBACK_ROLE);
+ if (sfEditPolicy instanceof ComrelTextSelectionEditPolicy) {
+ ((ComrelTextSelectionEditPolicy) sfEditPolicy).refreshFeedback();
+ }
+ }
+
+ /**
+ * @generated
+ */
+ public String getEditText() {
+ if (getParserElement() == null || getParser() == null) {
+ return ""; //$NON-NLS-1$
+ }
+ return getParser().getEditString(
+ new EObjectAdapter(getParserElement()),
+ getParserOptions().intValue());
+ }
+
+ /**
+ * @generated
+ */
+ protected boolean isEditable() {
+ return getParser() != null;
+ }
+
+ /**
+ * @generated
+ */
+ public ICellEditorValidator getEditTextValidator() {
+ return new ICellEditorValidator() {
+
+ public String isValid(final Object value) {
+ if (value instanceof String) {
+ final EObject element = getParserElement();
+ final IParser parser = getParser();
+ try {
+ IParserEditStatus valid = (IParserEditStatus) getEditingDomain()
+ .runExclusive(
+ new RunnableWithResult.Impl<IParserEditStatus>() {
+
+ public void run() {
+ setResult(parser
+ .isValidEditString(
+ new EObjectAdapter(
+ element),
+ (String) value));
+ }
+ });
+ return valid.getCode() == ParserEditStatus.EDITABLE ? null
+ : valid.getMessage();
+ } catch (InterruptedException ie) {
+ ie.printStackTrace();
+ }
+ }
+
+ // shouldn't get here
+ return null;
+ }
+ };
+ }
+
+ /**
+ * @generated
+ */
+ public IContentAssistProcessor getCompletionProcessor() {
+ if (getParserElement() == null || getParser() == null) {
+ return null;
+ }
+ return getParser().getCompletionProcessor(
+ new EObjectAdapter(getParserElement()));
+ }
+
+ /**
+ * @generated
+ */
+ public ParserOptions getParserOptions() {
+ return ParserOptions.NONE;
+ }
+
+ /**
+ * @generated
+ */
+ public IParser getParser() {
+ if (parser == null) {
+ parser = ComrelParserProvider
+ .getParser(
+ ComrelElementTypes.AtomicUnit_3034,
+ getParserElement(),
+ ComrelVisualIDRegistry
+ .getType(comrel.diagram.edit.parts.AtomicUnitLabelType2EditPart.VISUAL_ID));
+ }
+ return parser;
+ }
+
+ /**
+ * @generated
+ */
+ protected DirectEditManager getManager() {
+ if (manager == null) {
+ setManager(new TextDirectEditManager(this,
+ TextDirectEditManager.getTextCellEditorClass(this),
+ ComrelEditPartFactory.getTextCellEditorLocator(this)));
+ }
+ return manager;
+ }
+
+ /**
+ * @generated
+ */
+ protected void setManager(DirectEditManager manager) {
+ this.manager = manager;
+ }
+
+ /**
+ * @generated
+ */
+ protected void performDirectEdit() {
+ getManager().show();
+ }
+
+ /**
+ * @generated
+ */
+ protected void performDirectEdit(Point eventLocation) {
+ if (getManager().getClass() == TextDirectEditManager.class) {
+ ((TextDirectEditManager) getManager()).show(eventLocation
+ .getSWTPoint());
+ }
+ }
+
+ /**
+ * @generated
+ */
+ private void performDirectEdit(char initialCharacter) {
+ if (getManager() instanceof TextDirectEditManager) {
+ ((TextDirectEditManager) getManager()).show(initialCharacter);
+ } else {
+ performDirectEdit();
+ }
+ }
+
+ /**
+ * @generated
+ */
+ protected void performDirectEditRequest(Request request) {
+ final Request theRequest = request;
+ try {
+ getEditingDomain().runExclusive(new Runnable() {
+
+ public void run() {
+ if (isActive() && isEditable()) {
+ if (theRequest
+ .getExtendedData()
+ .get(RequestConstants.REQ_DIRECTEDIT_EXTENDEDDATA_INITIAL_CHAR) instanceof Character) {
+ Character initialChar = (Character) theRequest
+ .getExtendedData()
+ .get(RequestConstants.REQ_DIRECTEDIT_EXTENDEDDATA_INITIAL_CHAR);
+ performDirectEdit(initialChar.charValue());
+ } else if ((theRequest instanceof DirectEditRequest)
+ && (getEditText().equals(getLabelText()))) {
+ DirectEditRequest editRequest = (DirectEditRequest) theRequest;
+ performDirectEdit(editRequest.getLocation());
+ } else {
+ performDirectEdit();
+ }
+ }
+ }
+ });
+ } catch (InterruptedException e) {
+ e.printStackTrace();
+ }
+ }
+
+ /**
+ * @generated
+ */
+ protected void refreshVisuals() {
+ super.refreshVisuals();
+ refreshLabel();
+ refreshFont();
+ refreshFontColor();
+ refreshUnderline();
+ refreshStrikeThrough();
+ }
+
+ /**
+ * @generated
+ */
+ protected void refreshLabel() {
+ setLabelTextHelper(getFigure(), getLabelText());
+ setLabelIconHelper(getFigure(), getLabelIcon());
+ Object pdEditPolicy = getEditPolicy(EditPolicy.PRIMARY_DRAG_ROLE);
+ if (pdEditPolicy instanceof ComrelTextSelectionEditPolicy) {
+ ((ComrelTextSelectionEditPolicy) pdEditPolicy).refreshFeedback();
+ }
+ Object sfEditPolicy = getEditPolicy(EditPolicy.SELECTION_FEEDBACK_ROLE);
+ if (sfEditPolicy instanceof ComrelTextSelectionEditPolicy) {
+ ((ComrelTextSelectionEditPolicy) sfEditPolicy).refreshFeedback();
+ }
+ }
+
+ /**
+ * @generated
+ */
+ protected void refreshUnderline() {
+ FontStyle style = (FontStyle) getFontStyleOwnerView().getStyle(
+ NotationPackage.eINSTANCE.getFontStyle());
+ if (style != null && getFigure() instanceof WrappingLabel) {
+ ((WrappingLabel) getFigure()).setTextUnderline(style.isUnderline());
+ }
+ }
+
+ /**
+ * @generated
+ */
+ protected void refreshStrikeThrough() {
+ FontStyle style = (FontStyle) getFontStyleOwnerView().getStyle(
+ NotationPackage.eINSTANCE.getFontStyle());
+ if (style != null && getFigure() instanceof WrappingLabel) {
+ ((WrappingLabel) getFigure()).setTextStrikeThrough(style
+ .isStrikeThrough());
+ }
+ }
+
+ /**
+ * @generated
+ */
+ protected void refreshFont() {
+ FontStyle style = (FontStyle) getFontStyleOwnerView().getStyle(
+ NotationPackage.eINSTANCE.getFontStyle());
+ if (style != null) {
+ FontData fontData = new FontData(style.getFontName(),
+ style.getFontHeight(), (style.isBold() ? SWT.BOLD
+ : SWT.NORMAL)
+ | (style.isItalic() ? SWT.ITALIC : SWT.NORMAL));
+ setFont(fontData);
+ }
+ }
+
+ /**
+ * @generated
+ */
+ protected void setFontColor(Color color) {
+ getFigure().setForegroundColor(color);
+ }
+
+ /**
+ * @generated
+ */
+ protected void addSemanticListeners() {
+ if (getParser() instanceof ISemanticParser) {
+ EObject element = resolveSemanticElement();
+ parserElements = ((ISemanticParser) getParser())
+ .getSemanticElementsBeingParsed(element);
+ for (int i = 0; i < parserElements.size(); i++) {
+ addListenerFilter(
+ "SemanticModel" + i, this, (EObject) parserElements.get(i)); //$NON-NLS-1$
+ }
+ } else {
+ super.addSemanticListeners();
+ }
+ }
+
+ /**
+ * @generated
+ */
+ protected void removeSemanticListeners() {
+ if (parserElements != null) {
+ for (int i = 0; i < parserElements.size(); i++) {
+ removeListenerFilter("SemanticModel" + i); //$NON-NLS-1$
+ }
+ } else {
+ super.removeSemanticListeners();
+ }
+ }
+
+ /**
+ * @generated
+ */
+ protected AccessibleEditPart getAccessibleEditPart() {
+ if (accessibleEP == null) {
+ accessibleEP = new AccessibleGraphicalEditPart() {
+
+ public void getName(AccessibleEvent e) {
+ e.result = getLabelTextHelper(getFigure());
+ }
+ };
+ }
+ return accessibleEP;
+ }
+
+ /**
+ * @generated
+ */
+ private View getFontStyleOwnerView() {
+ return getPrimaryView();
+ }
+
+ /**
+ * @generated
+ */
+ protected void addNotationalListeners() {
+ super.addNotationalListeners();
+ addListenerFilter("PrimaryView", this, getPrimaryView()); //$NON-NLS-1$
+ }
+
+ /**
+ * @generated
+ */
+ protected void removeNotationalListeners() {
+ super.removeNotationalListeners();
+ removeListenerFilter("PrimaryView"); //$NON-NLS-1$
+ }
+
+ /**
+ * @generated
+ */
+ protected void handleNotificationEvent(Notification event) {
+ Object feature = event.getFeature();
+ if (NotationPackage.eINSTANCE.getFontStyle_FontColor().equals(feature)) {
+ Integer c = (Integer) event.getNewValue();
+ setFontColor(DiagramColorRegistry.getInstance().getColor(c));
+ } else if (NotationPackage.eINSTANCE.getFontStyle_Underline().equals(
+ feature)) {
+ refreshUnderline();
+ } else if (NotationPackage.eINSTANCE.getFontStyle_StrikeThrough()
+ .equals(feature)) {
+ refreshStrikeThrough();
+ } else if (NotationPackage.eINSTANCE.getFontStyle_FontHeight().equals(
+ feature)
+ || NotationPackage.eINSTANCE.getFontStyle_FontName().equals(
+ feature)
+ || NotationPackage.eINSTANCE.getFontStyle_Bold()
+ .equals(feature)
+ || NotationPackage.eINSTANCE.getFontStyle_Italic().equals(
+ feature)) {
+ refreshFont();
+ } else {
+ if (getParser() != null
+ && getParser().isAffectingEvent(event,
+ getParserOptions().intValue())) {
+ refreshLabel();
+ }
+ if (getParser() instanceof ISemanticParser) {
+ ISemanticParser modelParser = (ISemanticParser) getParser();
+ if (modelParser.areSemanticElementsAffected(null, event)) {
+ removeSemanticListeners();
+ if (resolveSemanticElement() != null) {
+ addSemanticListeners();
+ }
+ refreshLabel();
+ }
+ }
+ }
+ super.handleNotificationEvent(event);
+ }
+
+ /**
+ * @generated
+ */
+ protected IFigure createFigure() {
+ // Parent should assign one using setLabel() method
+ return null;
+ }
+
+}
diff --git a/org.eclipse.emf.refactor.comrel.diagram/src/comrel/diagram/edit/parts/AtomicUnitLabelType3EditPart.java b/org.eclipse.emf.refactor.comrel.diagram/src/comrel/diagram/edit/parts/AtomicUnitLabelType3EditPart.java
new file mode 100644
index 0000000..7e81a1f
--- /dev/null
+++ b/org.eclipse.emf.refactor.comrel.diagram/src/comrel/diagram/edit/parts/AtomicUnitLabelType3EditPart.java
@@ -0,0 +1,576 @@
+/*
+ *
+ */
+package comrel.diagram.edit.parts;
+
+import java.util.Collections;
+import java.util.List;
+
+import org.eclipse.draw2d.IFigure;
+import org.eclipse.draw2d.Label;
+import org.eclipse.draw2d.geometry.Point;
+import org.eclipse.emf.common.notify.Notification;
+import org.eclipse.emf.ecore.EObject;
+import org.eclipse.emf.transaction.RunnableWithResult;
+import org.eclipse.gef.AccessibleEditPart;
+import org.eclipse.gef.EditPolicy;
+import org.eclipse.gef.Request;
+import org.eclipse.gef.requests.DirectEditRequest;
+import org.eclipse.gef.tools.DirectEditManager;
+import org.eclipse.gmf.runtime.common.ui.services.parser.IParser;
+import org.eclipse.gmf.runtime.common.ui.services.parser.IParserEditStatus;
+import org.eclipse.gmf.runtime.common.ui.services.parser.ParserEditStatus;
+import org.eclipse.gmf.runtime.common.ui.services.parser.ParserOptions;
+import org.eclipse.gmf.runtime.diagram.ui.editparts.CompartmentEditPart;
+import org.eclipse.gmf.runtime.diagram.ui.editparts.IGraphicalEditPart;
+import org.eclipse.gmf.runtime.diagram.ui.editparts.ITextAwareEditPart;
+import org.eclipse.gmf.runtime.diagram.ui.editpolicies.LabelDirectEditPolicy;
+import org.eclipse.gmf.runtime.diagram.ui.l10n.DiagramColorRegistry;
+import org.eclipse.gmf.runtime.diagram.ui.requests.RequestConstants;
+import org.eclipse.gmf.runtime.diagram.ui.tools.TextDirectEditManager;
+import org.eclipse.gmf.runtime.draw2d.ui.figures.WrappingLabel;
+import org.eclipse.gmf.runtime.emf.core.util.EObjectAdapter;
+import org.eclipse.gmf.runtime.emf.ui.services.parser.ISemanticParser;
+import org.eclipse.gmf.runtime.notation.FontStyle;
+import org.eclipse.gmf.runtime.notation.NotationPackage;
+import org.eclipse.gmf.runtime.notation.View;
+import org.eclipse.jface.text.contentassist.IContentAssistProcessor;
+import org.eclipse.jface.viewers.ICellEditorValidator;
+import org.eclipse.swt.SWT;
+import org.eclipse.swt.accessibility.AccessibleEvent;
+import org.eclipse.swt.graphics.Color;
+import org.eclipse.swt.graphics.FontData;
+import org.eclipse.swt.graphics.Image;
+
+import comrel.diagram.edit.policies.ComrelTextSelectionEditPolicy;
+import comrel.diagram.part.ComrelVisualIDRegistry;
+import comrel.diagram.providers.ComrelElementTypes;
+import comrel.diagram.providers.ComrelParserProvider;
+
+/**
+ * @generated
+ */
+public class AtomicUnitLabelType3EditPart extends CompartmentEditPart implements
+ ITextAwareEditPart {
+
+ /**
+ * @generated
+ */
+ public static final int VISUAL_ID = 5034;
+
+ /**
+ * @generated
+ */
+ private DirectEditManager manager;
+
+ /**
+ * @generated
+ */
+ private IParser parser;
+
+ /**
+ * @generated
+ */
+ private List<?> parserElements;
+
+ /**
+ * @generated
+ */
+ private String defaultText;
+
+ /**
+ * @generated
+ */
+ public AtomicUnitLabelType3EditPart(View view) {
+ super(view);
+ }
+
+ /**
+ * @generated
+ */
+ protected void createDefaultEditPolicies() {
+ super.createDefaultEditPolicies();
+ installEditPolicy(EditPolicy.SELECTION_FEEDBACK_ROLE,
+ new ComrelTextSelectionEditPolicy());
+ installEditPolicy(EditPolicy.DIRECT_EDIT_ROLE,
+ new LabelDirectEditPolicy());
+ installEditPolicy(EditPolicy.PRIMARY_DRAG_ROLE,
+ new CompositeRefactoringEditPart.NodeLabelDragPolicy());
+ }
+
+ /**
+ * @generated
+ */
+ protected String getLabelTextHelper(IFigure figure) {
+ if (figure instanceof WrappingLabel) {
+ return ((WrappingLabel) figure).getText();
+ } else {
+ return ((Label) figure).getText();
+ }
+ }
+
+ /**
+ * @generated
+ */
+ protected void setLabelTextHelper(IFigure figure, String text) {
+ if (figure instanceof WrappingLabel) {
+ ((WrappingLabel) figure).setText(text);
+ } else {
+ ((Label) figure).setText(text);
+ }
+ }
+
+ /**
+ * @generated
+ */
+ protected Image getLabelIconHelper(IFigure figure) {
+ if (figure instanceof WrappingLabel) {
+ return ((WrappingLabel) figure).getIcon();
+ } else {
+ return ((Label) figure).getIcon();
+ }
+ }
+
+ /**
+ * @generated
+ */
+ protected void setLabelIconHelper(IFigure figure, Image icon) {
+ if (figure instanceof WrappingLabel) {
+ ((WrappingLabel) figure).setIcon(icon);
+ } else {
+ ((Label) figure).setIcon(icon);
+ }
+ }
+
+ /**
+ * @generated
+ */
+ public void setLabel(WrappingLabel figure) {
+ unregisterVisuals();
+ setFigure(figure);
+ defaultText = getLabelTextHelper(figure);
+ registerVisuals();
+ refreshVisuals();
+ }
+
+ /**
+ * @generated
+ */
+ @SuppressWarnings("rawtypes")
+ protected List getModelChildren() {
+ return Collections.EMPTY_LIST;
+ }
+
+ /**
+ * @generated
+ */
+ public IGraphicalEditPart getChildBySemanticHint(String semanticHint) {
+ return null;
+ }
+
+ /**
+ * @generated
+ */
+ protected EObject getParserElement() {
+ return resolveSemanticElement();
+ }
+
+ /**
+ * @generated
+ */
+ protected Image getLabelIcon() {
+ return null;
+ }
+
+ /**
+ * @generated
+ */
+ protected String getLabelText() {
+ String text = null;
+ EObject parserElement = getParserElement();
+ if (parserElement != null && getParser() != null) {
+ text = getParser().getPrintString(
+ new EObjectAdapter(parserElement),
+ getParserOptions().intValue());
+ }
+ if (text == null || text.length() == 0) {
+ text = defaultText;
+ }
+ return text;
+ }
+
+ /**
+ * @generated
+ */
+ public void setLabelText(String text) {
+ setLabelTextHelper(getFigure(), text);
+ Object pdEditPolicy = getEditPolicy(EditPolicy.PRIMARY_DRAG_ROLE);
+ if (pdEditPolicy instanceof ComrelTextSelectionEditPolicy) {
+ ((ComrelTextSelectionEditPolicy) pdEditPolicy).refreshFeedback();
+ }
+ Object sfEditPolicy = getEditPolicy(EditPolicy.SELECTION_FEEDBACK_ROLE);
+ if (sfEditPolicy instanceof ComrelTextSelectionEditPolicy) {
+ ((ComrelTextSelectionEditPolicy) sfEditPolicy).refreshFeedback();
+ }
+ }
+
+ /**
+ * @generated
+ */
+ public String getEditText() {
+ if (getParserElement() == null || getParser() == null) {
+ return ""; //$NON-NLS-1$
+ }
+ return getParser().getEditString(
+ new EObjectAdapter(getParserElement()),
+ getParserOptions().intValue());
+ }
+
+ /**
+ * @generated
+ */
+ protected boolean isEditable() {
+ return getParser() != null;
+ }
+
+ /**
+ * @generated
+ */
+ public ICellEditorValidator getEditTextValidator() {
+ return new ICellEditorValidator() {
+
+ public String isValid(final Object value) {
+ if (value instanceof String) {
+ final EObject element = getParserElement();
+ final IParser parser = getParser();
+ try {
+ IParserEditStatus valid = (IParserEditStatus) getEditingDomain()
+ .runExclusive(
+ new RunnableWithResult.Impl<IParserEditStatus>() {
+
+ public void run() {
+ setResult(parser
+ .isValidEditString(
+ new EObjectAdapter(
+ element),
+ (String) value));
+ }
+ });
+ return valid.getCode() == ParserEditStatus.EDITABLE ? null
+ : valid.getMessage();
+ } catch (InterruptedException ie) {
+ ie.printStackTrace();
+ }
+ }
+
+ // shouldn't get here
+ return null;
+ }
+ };
+ }
+
+ /**
+ * @generated
+ */
+ public IContentAssistProcessor getCompletionProcessor() {
+ if (getParserElement() == null || getParser() == null) {
+ return null;
+ }
+ return getParser().getCompletionProcessor(
+ new EObjectAdapter(getParserElement()));
+ }
+
+ /**
+ * @generated
+ */
+ public ParserOptions getParserOptions() {
+ return ParserOptions.NONE;
+ }
+
+ /**
+ * @generated
+ */
+ public IParser getParser() {
+ if (parser == null) {
+ parser = ComrelParserProvider
+ .getParser(
+ ComrelElementTypes.AtomicUnit_3049,
+ getParserElement(),
+ ComrelVisualIDRegistry
+ .getType(comrel.diagram.edit.parts.AtomicUnitLabelType3EditPart.VISUAL_ID));
+ }
+ return parser;
+ }
+
+ /**
+ * @generated
+ */
+ protected DirectEditManager getManager() {
+ if (manager == null) {
+ setManager(new TextDirectEditManager(this,
+ TextDirectEditManager.getTextCellEditorClass(this),
+ ComrelEditPartFactory.getTextCellEditorLocator(this)));
+ }
+ return manager;
+ }
+
+ /**
+ * @generated
+ */
+ protected void setManager(DirectEditManager manager) {
+ this.manager = manager;
+ }
+
+ /**
+ * @generated
+ */
+ protected void performDirectEdit() {
+ getManager().show();
+ }
+
+ /**
+ * @generated
+ */
+ protected void performDirectEdit(Point eventLocation) {
+ if (getManager().getClass() == TextDirectEditManager.class) {
+ ((TextDirectEditManager) getManager()).show(eventLocation
+ .getSWTPoint());
+ }
+ }
+
+ /**
+ * @generated
+ */
+ private void performDirectEdit(char initialCharacter) {
+ if (getManager() instanceof TextDirectEditManager) {
+ ((TextDirectEditManager) getManager()).show(initialCharacter);
+ } else {
+ performDirectEdit();
+ }
+ }
+
+ /**
+ * @generated
+ */
+ protected void performDirectEditRequest(Request request) {
+ final Request theRequest = request;
+ try {
+ getEditingDomain().runExclusive(new Runnable() {
+
+ public void run() {
+ if (isActive() && isEditable()) {
+ if (theRequest
+ .getExtendedData()
+ .get(RequestConstants.REQ_DIRECTEDIT_EXTENDEDDATA_INITIAL_CHAR) instanceof Character) {
+ Character initialChar = (Character) theRequest
+ .getExtendedData()
+ .get(RequestConstants.REQ_DIRECTEDIT_EXTENDEDDATA_INITIAL_CHAR);
+ performDirectEdit(initialChar.charValue());
+ } else if ((theRequest instanceof DirectEditRequest)
+ && (getEditText().equals(getLabelText()))) {
+ DirectEditRequest editRequest = (DirectEditRequest) theRequest;
+ performDirectEdit(editRequest.getLocation());
+ } else {
+ performDirectEdit();
+ }
+ }
+ }
+ });
+ } catch (InterruptedException e) {
+ e.printStackTrace();
+ }
+ }
+
+ /**
+ * @generated
+ */
+ protected void refreshVisuals() {
+ super.refreshVisuals();
+ refreshLabel();
+ refreshFont();
+ refreshFontColor();
+ refreshUnderline();
+ refreshStrikeThrough();
+ }
+
+ /**
+ * @generated
+ */
+ protected void refreshLabel() {
+ setLabelTextHelper(getFigure(), getLabelText());
+ setLabelIconHelper(getFigure(), getLabelIcon());
+ Object pdEditPolicy = getEditPolicy(EditPolicy.PRIMARY_DRAG_ROLE);
+ if (pdEditPolicy instanceof ComrelTextSelectionEditPolicy) {
+ ((ComrelTextSelectionEditPolicy) pdEditPolicy).refreshFeedback();
+ }
+ Object sfEditPolicy = getEditPolicy(EditPolicy.SELECTION_FEEDBACK_ROLE);
+ if (sfEditPolicy instanceof ComrelTextSelectionEditPolicy) {
+ ((ComrelTextSelectionEditPolicy) sfEditPolicy).refreshFeedback();
+ }
+ }
+
+ /**
+ * @generated
+ */
+ protected void refreshUnderline() {
+ FontStyle style = (FontStyle) getFontStyleOwnerView().getStyle(
+ NotationPackage.eINSTANCE.getFontStyle());
+ if (style != null && getFigure() instanceof WrappingLabel) {
+ ((WrappingLabel) getFigure()).setTextUnderline(style.isUnderline());
+ }
+ }
+
+ /**
+ * @generated
+ */
+ protected void refreshStrikeThrough() {
+ FontStyle style = (FontStyle) getFontStyleOwnerView().getStyle(
+ NotationPackage.eINSTANCE.getFontStyle());
+ if (style != null && getFigure() instanceof WrappingLabel) {
+ ((WrappingLabel) getFigure()).setTextStrikeThrough(style
+ .isStrikeThrough());
+ }
+ }
+
+ /**
+ * @generated
+ */
+ protected void refreshFont() {
+ FontStyle style = (FontStyle) getFontStyleOwnerView().getStyle(
+ NotationPackage.eINSTANCE.getFontStyle());
+ if (style != null) {
+ FontData fontData = new FontData(style.getFontName(),
+ style.getFontHeight(), (style.isBold() ? SWT.BOLD
+ : SWT.NORMAL)
+ | (style.isItalic() ? SWT.ITALIC : SWT.NORMAL));
+ setFont(fontData);
+ }
+ }
+
+ /**
+ * @generated
+ */
+ protected void setFontColor(Color color) {
+ getFigure().setForegroundColor(color);
+ }
+
+ /**
+ * @generated
+ */
+ protected void addSemanticListeners() {
+ if (getParser() instanceof ISemanticParser) {
+ EObject element = resolveSemanticElement();
+ parserElements = ((ISemanticParser) getParser())
+ .getSemanticElementsBeingParsed(element);
+ for (int i = 0; i < parserElements.size(); i++) {
+ addListenerFilter(
+ "SemanticModel" + i, this, (EObject) parserElements.get(i)); //$NON-NLS-1$
+ }
+ } else {
+ super.addSemanticListeners();
+ }
+ }
+
+ /**
+ * @generated
+ */
+ protected void removeSemanticListeners() {
+ if (parserElements != null) {
+ for (int i = 0; i < parserElements.size(); i++) {
+ removeListenerFilter("SemanticModel" + i); //$NON-NLS-1$
+ }
+ } else {
+ super.removeSemanticListeners();
+ }
+ }
+
+ /**
+ * @generated
+ */
+ protected AccessibleEditPart getAccessibleEditPart() {
+ if (accessibleEP == null) {
+ accessibleEP = new AccessibleGraphicalEditPart() {
+
+ public void getName(AccessibleEvent e) {
+ e.result = getLabelTextHelper(getFigure());
+ }
+ };
+ }
+ return accessibleEP;
+ }
+
+ /**
+ * @generated
+ */
+ private View getFontStyleOwnerView() {
+ return getPrimaryView();
+ }
+
+ /**
+ * @generated
+ */
+ protected void addNotationalListeners() {
+ super.addNotationalListeners();
+ addListenerFilter("PrimaryView", this, getPrimaryView()); //$NON-NLS-1$
+ }
+
+ /**
+ * @generated
+ */
+ protected void removeNotationalListeners() {
+ super.removeNotationalListeners();
+ removeListenerFilter("PrimaryView"); //$NON-NLS-1$
+ }
+
+ /**
+ * @generated
+ */
+ protected void handleNotificationEvent(Notification event) {
+ Object feature = event.getFeature();
+ if (NotationPackage.eINSTANCE.getFontStyle_FontColor().equals(feature)) {
+ Integer c = (Integer) event.getNewValue();
+ setFontColor(DiagramColorRegistry.getInstance().getColor(c));
+ } else if (NotationPackage.eINSTANCE.getFontStyle_Underline().equals(
+ feature)) {
+ refreshUnderline();
+ } else if (NotationPackage.eINSTANCE.getFontStyle_StrikeThrough()
+ .equals(feature)) {
+ refreshStrikeThrough();
+ } else if (NotationPackage.eINSTANCE.getFontStyle_FontHeight().equals(
+ feature)
+ || NotationPackage.eINSTANCE.getFontStyle_FontName().equals(
+ feature)
+ || NotationPackage.eINSTANCE.getFontStyle_Bold()
+ .equals(feature)
+ || NotationPackage.eINSTANCE.getFontStyle_Italic().equals(
+ feature)) {
+ refreshFont();
+ } else {
+ if (getParser() != null
+ && getParser().isAffectingEvent(event,
+ getParserOptions().intValue())) {
+ refreshLabel();
+ }
+ if (getParser() instanceof ISemanticParser) {
+ ISemanticParser modelParser = (ISemanticParser) getParser();
+ if (modelParser.areSemanticElementsAffected(null, event)) {
+ removeSemanticListeners();
+ if (resolveSemanticElement() != null) {
+ addSemanticListeners();
+ }
+ refreshLabel();
+ }
+ }
+ }
+ super.handleNotificationEvent(event);
+ }
+
+ /**
+ * @generated
+ */
+ protected IFigure createFigure() {
+ // Parent should assign one using setLabel() method
+ return null;
+ }
+
+}
diff --git a/org.eclipse.emf.refactor.comrel.diagram/src/comrel/diagram/edit/parts/AtomicUnitLabelType4EditPart.java b/org.eclipse.emf.refactor.comrel.diagram/src/comrel/diagram/edit/parts/AtomicUnitLabelType4EditPart.java
new file mode 100644
index 0000000..009f131
--- /dev/null
+++ b/org.eclipse.emf.refactor.comrel.diagram/src/comrel/diagram/edit/parts/AtomicUnitLabelType4EditPart.java
@@ -0,0 +1,576 @@
+/*
+ *
+ */
+package comrel.diagram.edit.parts;
+
+import java.util.Collections;
+import java.util.List;
+
+import org.eclipse.draw2d.IFigure;
+import org.eclipse.draw2d.Label;
+import org.eclipse.draw2d.geometry.Point;
+import org.eclipse.emf.common.notify.Notification;
+import org.eclipse.emf.ecore.EObject;
+import org.eclipse.emf.transaction.RunnableWithResult;
+import org.eclipse.gef.AccessibleEditPart;
+import org.eclipse.gef.EditPolicy;
+import org.eclipse.gef.Request;
+import org.eclipse.gef.requests.DirectEditRequest;
+import org.eclipse.gef.tools.DirectEditManager;
+import org.eclipse.gmf.runtime.common.ui.services.parser.IParser;
+import org.eclipse.gmf.runtime.common.ui.services.parser.IParserEditStatus;
+import org.eclipse.gmf.runtime.common.ui.services.parser.ParserEditStatus;
+import org.eclipse.gmf.runtime.common.ui.services.parser.ParserOptions;
+import org.eclipse.gmf.runtime.diagram.ui.editparts.CompartmentEditPart;
+import org.eclipse.gmf.runtime.diagram.ui.editparts.IGraphicalEditPart;
+import org.eclipse.gmf.runtime.diagram.ui.editparts.ITextAwareEditPart;
+import org.eclipse.gmf.runtime.diagram.ui.editpolicies.LabelDirectEditPolicy;
+import org.eclipse.gmf.runtime.diagram.ui.l10n.DiagramColorRegistry;
+import org.eclipse.gmf.runtime.diagram.ui.requests.RequestConstants;
+import org.eclipse.gmf.runtime.diagram.ui.tools.TextDirectEditManager;
+import org.eclipse.gmf.runtime.draw2d.ui.figures.WrappingLabel;
+import org.eclipse.gmf.runtime.emf.core.util.EObjectAdapter;
+import org.eclipse.gmf.runtime.emf.ui.services.parser.ISemanticParser;
+import org.eclipse.gmf.runtime.notation.FontStyle;
+import org.eclipse.gmf.runtime.notation.NotationPackage;
+import org.eclipse.gmf.runtime.notation.View;
+import org.eclipse.jface.text.contentassist.IContentAssistProcessor;
+import org.eclipse.jface.viewers.ICellEditorValidator;
+import org.eclipse.swt.SWT;
+import org.eclipse.swt.accessibility.AccessibleEvent;
+import org.eclipse.swt.graphics.Color;
+import org.eclipse.swt.graphics.FontData;
+import org.eclipse.swt.graphics.Image;
+
+import comrel.diagram.edit.policies.ComrelTextSelectionEditPolicy;
+import comrel.diagram.part.ComrelVisualIDRegistry;
+import comrel.diagram.providers.ComrelElementTypes;
+import comrel.diagram.providers.ComrelParserProvider;
+
+/**
+ * @generated
+ */
+public class AtomicUnitLabelType4EditPart extends CompartmentEditPart implements
+ ITextAwareEditPart {
+
+ /**
+ * @generated
+ */
+ public static final int VISUAL_ID = 5048;
+
+ /**
+ * @generated
+ */
+ private DirectEditManager manager;
+
+ /**
+ * @generated
+ */
+ private IParser parser;
+
+ /**
+ * @generated
+ */
+ private List<?> parserElements;
+
+ /**
+ * @generated
+ */
+ private String defaultText;
+
+ /**
+ * @generated
+ */
+ public AtomicUnitLabelType4EditPart(View view) {
+ super(view);
+ }
+
+ /**
+ * @generated
+ */
+ protected void createDefaultEditPolicies() {
+ super.createDefaultEditPolicies();
+ installEditPolicy(EditPolicy.SELECTION_FEEDBACK_ROLE,
+ new ComrelTextSelectionEditPolicy());
+ installEditPolicy(EditPolicy.DIRECT_EDIT_ROLE,
+ new LabelDirectEditPolicy());
+ installEditPolicy(EditPolicy.PRIMARY_DRAG_ROLE,
+ new CompositeRefactoringEditPart.NodeLabelDragPolicy());
+ }
+
+ /**
+ * @generated
+ */
+ protected String getLabelTextHelper(IFigure figure) {
+ if (figure instanceof WrappingLabel) {
+ return ((WrappingLabel) figure).getText();
+ } else {
+ return ((Label) figure).getText();
+ }
+ }
+
+ /**
+ * @generated
+ */
+ protected void setLabelTextHelper(IFigure figure, String text) {
+ if (figure instanceof WrappingLabel) {
+ ((WrappingLabel) figure).setText(text);
+ } else {
+ ((Label) figure).setText(text);
+ }
+ }
+
+ /**
+ * @generated
+ */
+ protected Image getLabelIconHelper(IFigure figure) {
+ if (figure instanceof WrappingLabel) {
+ return ((WrappingLabel) figure).getIcon();
+ } else {
+ return ((Label) figure).getIcon();
+ }
+ }
+
+ /**
+ * @generated
+ */
+ protected void setLabelIconHelper(IFigure figure, Image icon) {
+ if (figure instanceof WrappingLabel) {
+ ((WrappingLabel) figure).setIcon(icon);
+ } else {
+ ((Label) figure).setIcon(icon);
+ }
+ }
+
+ /**
+ * @generated
+ */
+ public void setLabel(WrappingLabel figure) {
+ unregisterVisuals();
+ setFigure(figure);
+ defaultText = getLabelTextHelper(figure);
+ registerVisuals();
+ refreshVisuals();
+ }
+
+ /**
+ * @generated
+ */
+ @SuppressWarnings("rawtypes")
+ protected List getModelChildren() {
+ return Collections.EMPTY_LIST;
+ }
+
+ /**
+ * @generated
+ */
+ public IGraphicalEditPart getChildBySemanticHint(String semanticHint) {
+ return null;
+ }
+
+ /**
+ * @generated
+ */
+ protected EObject getParserElement() {
+ return resolveSemanticElement();
+ }
+
+ /**
+ * @generated
+ */
+ protected Image getLabelIcon() {
+ return null;
+ }
+
+ /**
+ * @generated
+ */
+ protected String getLabelText() {
+ String text = null;
+ EObject parserElement = getParserElement();
+ if (parserElement != null && getParser() != null) {
+ text = getParser().getPrintString(
+ new EObjectAdapter(parserElement),
+ getParserOptions().intValue());
+ }
+ if (text == null || text.length() == 0) {
+ text = defaultText;
+ }
+ return text;
+ }
+
+ /**
+ * @generated
+ */
+ public void setLabelText(String text) {
+ setLabelTextHelper(getFigure(), text);
+ Object pdEditPolicy = getEditPolicy(EditPolicy.PRIMARY_DRAG_ROLE);
+ if (pdEditPolicy instanceof ComrelTextSelectionEditPolicy) {
+ ((ComrelTextSelectionEditPolicy) pdEditPolicy).refreshFeedback();
+ }
+ Object sfEditPolicy = getEditPolicy(EditPolicy.SELECTION_FEEDBACK_ROLE);
+ if (sfEditPolicy instanceof ComrelTextSelectionEditPolicy) {
+ ((ComrelTextSelectionEditPolicy) sfEditPolicy).refreshFeedback();
+ }
+ }
+
+ /**
+ * @generated
+ */
+ public String getEditText() {
+ if (getParserElement() == null || getParser() == null) {
+ return ""; //$NON-NLS-1$
+ }
+ return getParser().getEditString(
+ new EObjectAdapter(getParserElement()),
+ getParserOptions().intValue());
+ }
+
+ /**
+ * @generated
+ */
+ protected boolean isEditable() {
+ return getParser() != null;
+ }
+
+ /**
+ * @generated
+ */
+ public ICellEditorValidator getEditTextValidator() {
+ return new ICellEditorValidator() {
+
+ public String isValid(final Object value) {
+ if (value instanceof String) {
+ final EObject element = getParserElement();
+ final IParser parser = getParser();
+ try {
+ IParserEditStatus valid = (IParserEditStatus) getEditingDomain()
+ .runExclusive(
+ new RunnableWithResult.Impl<IParserEditStatus>() {
+
+ public void run() {
+ setResult(parser
+ .isValidEditString(
+ new EObjectAdapter(
+ element),
+ (String) value));
+ }
+ });
+ return valid.getCode() == ParserEditStatus.EDITABLE ? null
+ : valid.getMessage();
+ } catch (InterruptedException ie) {
+ ie.printStackTrace();
+ }
+ }
+
+ // shouldn't get here
+ return null;
+ }
+ };
+ }
+
+ /**
+ * @generated
+ */
+ public IContentAssistProcessor getCompletionProcessor() {
+ if (getParserElement() == null || getParser() == null) {
+ return null;
+ }
+ return getParser().getCompletionProcessor(
+ new EObjectAdapter(getParserElement()));
+ }
+
+ /**
+ * @generated
+ */
+ public ParserOptions getParserOptions() {
+ return ParserOptions.NONE;
+ }
+
+ /**
+ * @generated
+ */
+ public IParser getParser() {
+ if (parser == null) {
+ parser = ComrelParserProvider
+ .getParser(
+ ComrelElementTypes.AtomicUnit_3068,
+ getParserElement(),
+ ComrelVisualIDRegistry
+ .getType(comrel.diagram.edit.parts.AtomicUnitLabelType4EditPart.VISUAL_ID));
+ }
+ return parser;
+ }
+
+ /**
+ * @generated
+ */
+ protected DirectEditManager getManager() {
+ if (manager == null) {
+ setManager(new TextDirectEditManager(this,
+ TextDirectEditManager.getTextCellEditorClass(this),
+ ComrelEditPartFactory.getTextCellEditorLocator(this)));
+ }
+ return manager;
+ }
+
+ /**
+ * @generated
+ */
+ protected void setManager(DirectEditManager manager) {
+ this.manager = manager;
+ }
+
+ /**
+ * @generated
+ */
+ protected void performDirectEdit() {
+ getManager().show();
+ }
+
+ /**
+ * @generated
+ */
+ protected void performDirectEdit(Point eventLocation) {
+ if (getManager().getClass() == TextDirectEditManager.class) {
+ ((TextDirectEditManager) getManager()).show(eventLocation
+ .getSWTPoint());
+ }
+ }
+
+ /**
+ * @generated
+ */
+ private void performDirectEdit(char initialCharacter) {
+ if (getManager() instanceof TextDirectEditManager) {
+ ((TextDirectEditManager) getManager()).show(initialCharacter);
+ } else {
+ performDirectEdit();
+ }
+ }
+
+ /**
+ * @generated
+ */
+ protected void performDirectEditRequest(Request request) {
+ final Request theRequest = request;
+ try {
+ getEditingDomain().runExclusive(new Runnable() {
+
+ public void run() {
+ if (isActive() && isEditable()) {
+ if (theRequest
+ .getExtendedData()
+ .get(RequestConstants.REQ_DIRECTEDIT_EXTENDEDDATA_INITIAL_CHAR) instanceof Character) {
+ Character initialChar = (Character) theRequest
+ .getExtendedData()
+ .get(RequestConstants.REQ_DIRECTEDIT_EXTENDEDDATA_INITIAL_CHAR);
+ performDirectEdit(initialChar.charValue());
+ } else if ((theRequest instanceof DirectEditRequest)
+ && (getEditText().equals(getLabelText()))) {
+ DirectEditRequest editRequest = (DirectEditRequest) theRequest;
+ performDirectEdit(editRequest.getLocation());
+ } else {
+ performDirectEdit();
+ }
+ }
+ }
+ });
+ } catch (InterruptedException e) {
+ e.printStackTrace();
+ }
+ }
+
+ /**
+ * @generated
+ */
+ protected void refreshVisuals() {
+ super.refreshVisuals();
+ refreshLabel();
+ refreshFont();
+ refreshFontColor();
+ refreshUnderline();
+ refreshStrikeThrough();
+ }
+
+ /**
+ * @generated
+ */
+ protected void refreshLabel() {
+ setLabelTextHelper(getFigure(), getLabelText());
+ setLabelIconHelper(getFigure(), getLabelIcon());
+ Object pdEditPolicy = getEditPolicy(EditPolicy.PRIMARY_DRAG_ROLE);
+ if (pdEditPolicy instanceof ComrelTextSelectionEditPolicy) {
+ ((ComrelTextSelectionEditPolicy) pdEditPolicy).refreshFeedback();
+ }
+ Object sfEditPolicy = getEditPolicy(EditPolicy.SELECTION_FEEDBACK_ROLE);
+ if (sfEditPolicy instanceof ComrelTextSelectionEditPolicy) {
+ ((ComrelTextSelectionEditPolicy) sfEditPolicy).refreshFeedback();
+ }
+ }
+
+ /**
+ * @generated
+ */
+ protected void refreshUnderline() {
+ FontStyle style = (FontStyle) getFontStyleOwnerView().getStyle(
+ NotationPackage.eINSTANCE.getFontStyle());
+ if (style != null && getFigure() instanceof WrappingLabel) {
+ ((WrappingLabel) getFigure()).setTextUnderline(style.isUnderline());
+ }
+ }
+
+ /**
+ * @generated
+ */
+ protected void refreshStrikeThrough() {
+ FontStyle style = (FontStyle) getFontStyleOwnerView().getStyle(
+ NotationPackage.eINSTANCE.getFontStyle());
+ if (style != null && getFigure() instanceof WrappingLabel) {
+ ((WrappingLabel) getFigure()).setTextStrikeThrough(style
+ .isStrikeThrough());
+ }
+ }
+
+ /**
+ * @generated
+ */
+ protected void refreshFont() {
+ FontStyle style = (FontStyle) getFontStyleOwnerView().getStyle(
+ NotationPackage.eINSTANCE.getFontStyle());
+ if (style != null) {
+ FontData fontData = new FontData(style.getFontName(),
+ style.getFontHeight(), (style.isBold() ? SWT.BOLD
+ : SWT.NORMAL)
+ | (style.isItalic() ? SWT.ITALIC : SWT.NORMAL));
+ setFont(fontData);
+ }
+ }
+
+ /**
+ * @generated
+ */
+ protected void setFontColor(Color color) {
+ getFigure().setForegroundColor(color);
+ }
+
+ /**
+ * @generated
+ */
+ protected void addSemanticListeners() {
+ if (getParser() instanceof ISemanticParser) {
+ EObject element = resolveSemanticElement();
+ parserElements = ((ISemanticParser) getParser())
+ .getSemanticElementsBeingParsed(element);
+ for (int i = 0; i < parserElements.size(); i++) {
+ addListenerFilter(
+ "SemanticModel" + i, this, (EObject) parserElements.get(i)); //$NON-NLS-1$
+ }
+ } else {
+ super.addSemanticListeners();
+ }
+ }
+
+ /**
+ * @generated
+ */
+ protected void removeSemanticListeners() {
+ if (parserElements != null) {
+ for (int i = 0; i < parserElements.size(); i++) {
+ removeListenerFilter("SemanticModel" + i); //$NON-NLS-1$
+ }
+ } else {
+ super.removeSemanticListeners();
+ }
+ }
+
+ /**
+ * @generated
+ */
+ protected AccessibleEditPart getAccessibleEditPart() {
+ if (accessibleEP == null) {
+ accessibleEP = new AccessibleGraphicalEditPart() {
+
+ public void getName(AccessibleEvent e) {
+ e.result = getLabelTextHelper(getFigure());
+ }
+ };
+ }
+ return accessibleEP;
+ }
+
+ /**
+ * @generated
+ */
+ private View getFontStyleOwnerView() {
+ return getPrimaryView();
+ }
+
+ /**
+ * @generated
+ */
+ protected void addNotationalListeners() {
+ super.addNotationalListeners();
+ addListenerFilter("PrimaryView", this, getPrimaryView()); //$NON-NLS-1$
+ }
+
+ /**
+ * @generated
+ */
+ protected void removeNotationalListeners() {
+ super.removeNotationalListeners();
+ removeListenerFilter("PrimaryView"); //$NON-NLS-1$
+ }
+
+ /**
+ * @generated
+ */
+ protected void handleNotificationEvent(Notification event) {
+ Object feature = event.getFeature();
+ if (NotationPackage.eINSTANCE.getFontStyle_FontColor().equals(feature)) {
+ Integer c = (Integer) event.getNewValue();
+ setFontColor(DiagramColorRegistry.getInstance().getColor(c));
+ } else if (NotationPackage.eINSTANCE.getFontStyle_Underline().equals(
+ feature)) {
+ refreshUnderline();
+ } else if (NotationPackage.eINSTANCE.getFontStyle_StrikeThrough()
+ .equals(feature)) {
+ refreshStrikeThrough();
+ } else if (NotationPackage.eINSTANCE.getFontStyle_FontHeight().equals(
+ feature)
+ || NotationPackage.eINSTANCE.getFontStyle_FontName().equals(
+ feature)
+ || NotationPackage.eINSTANCE.getFontStyle_Bold()
+ .equals(feature)
+ || NotationPackage.eINSTANCE.getFontStyle_Italic().equals(
+ feature)) {
+ refreshFont();
+ } else {
+ if (getParser() != null
+ && getParser().isAffectingEvent(event,
+ getParserOptions().intValue())) {
+ refreshLabel();
+ }
+ if (getParser() instanceof ISemanticParser) {
+ ISemanticParser modelParser = (ISemanticParser) getParser();
+ if (modelParser.areSemanticElementsAffected(null, event)) {
+ removeSemanticListeners();
+ if (resolveSemanticElement() != null) {
+ addSemanticListeners();
+ }
+ refreshLabel();
+ }
+ }
+ }
+ super.handleNotificationEvent(event);
+ }
+
+ /**
+ * @generated
+ */
+ protected IFigure createFigure() {
+ // Parent should assign one using setLabel() method
+ return null;
+ }
+
+}
diff --git a/org.eclipse.emf.refactor.comrel.diagram/src/comrel/diagram/edit/parts/AtomicUnitLabelType5EditPart.java b/org.eclipse.emf.refactor.comrel.diagram/src/comrel/diagram/edit/parts/AtomicUnitLabelType5EditPart.java
new file mode 100644
index 0000000..2e319e4
--- /dev/null
+++ b/org.eclipse.emf.refactor.comrel.diagram/src/comrel/diagram/edit/parts/AtomicUnitLabelType5EditPart.java
@@ -0,0 +1,576 @@
+/*
+ *
+ */
+package comrel.diagram.edit.parts;
+
+import java.util.Collections;
+import java.util.List;
+
+import org.eclipse.draw2d.IFigure;
+import org.eclipse.draw2d.Label;
+import org.eclipse.draw2d.geometry.Point;
+import org.eclipse.emf.common.notify.Notification;
+import org.eclipse.emf.ecore.EObject;
+import org.eclipse.emf.transaction.RunnableWithResult;
+import org.eclipse.gef.AccessibleEditPart;
+import org.eclipse.gef.EditPolicy;
+import org.eclipse.gef.Request;
+import org.eclipse.gef.requests.DirectEditRequest;
+import org.eclipse.gef.tools.DirectEditManager;
+import org.eclipse.gmf.runtime.common.ui.services.parser.IParser;
+import org.eclipse.gmf.runtime.common.ui.services.parser.IParserEditStatus;
+import org.eclipse.gmf.runtime.common.ui.services.parser.ParserEditStatus;
+import org.eclipse.gmf.runtime.common.ui.services.parser.ParserOptions;
+import org.eclipse.gmf.runtime.diagram.ui.editparts.CompartmentEditPart;
+import org.eclipse.gmf.runtime.diagram.ui.editparts.IGraphicalEditPart;
+import org.eclipse.gmf.runtime.diagram.ui.editparts.ITextAwareEditPart;
+import org.eclipse.gmf.runtime.diagram.ui.editpolicies.LabelDirectEditPolicy;
+import org.eclipse.gmf.runtime.diagram.ui.l10n.DiagramColorRegistry;
+import org.eclipse.gmf.runtime.diagram.ui.requests.RequestConstants;
+import org.eclipse.gmf.runtime.diagram.ui.tools.TextDirectEditManager;
+import org.eclipse.gmf.runtime.draw2d.ui.figures.WrappingLabel;
+import org.eclipse.gmf.runtime.emf.core.util.EObjectAdapter;
+import org.eclipse.gmf.runtime.emf.ui.services.parser.ISemanticParser;
+import org.eclipse.gmf.runtime.notation.FontStyle;
+import org.eclipse.gmf.runtime.notation.NotationPackage;
+import org.eclipse.gmf.runtime.notation.View;
+import org.eclipse.jface.text.contentassist.IContentAssistProcessor;
+import org.eclipse.jface.viewers.ICellEditorValidator;
+import org.eclipse.swt.SWT;
+import org.eclipse.swt.accessibility.AccessibleEvent;
+import org.eclipse.swt.graphics.Color;
+import org.eclipse.swt.graphics.FontData;
+import org.eclipse.swt.graphics.Image;
+
+import comrel.diagram.edit.policies.ComrelTextSelectionEditPolicy;
+import comrel.diagram.part.ComrelVisualIDRegistry;
+import comrel.diagram.providers.ComrelElementTypes;
+import comrel.diagram.providers.ComrelParserProvider;
+
+/**
+ * @generated
+ */
+public class AtomicUnitLabelType5EditPart extends CompartmentEditPart implements
+ ITextAwareEditPart {
+
+ /**
+ * @generated
+ */
+ public static final int VISUAL_ID = 5050;
+
+ /**
+ * @generated
+ */
+ private DirectEditManager manager;
+
+ /**
+ * @generated
+ */
+ private IParser parser;
+
+ /**
+ * @generated
+ */
+ private List<?> parserElements;
+
+ /**
+ * @generated
+ */
+ private String defaultText;
+
+ /**
+ * @generated
+ */
+ public AtomicUnitLabelType5EditPart(View view) {
+ super(view);
+ }
+
+ /**
+ * @generated
+ */
+ protected void createDefaultEditPolicies() {
+ super.createDefaultEditPolicies();
+ installEditPolicy(EditPolicy.SELECTION_FEEDBACK_ROLE,
+ new ComrelTextSelectionEditPolicy());
+ installEditPolicy(EditPolicy.DIRECT_EDIT_ROLE,
+ new LabelDirectEditPolicy());
+ installEditPolicy(EditPolicy.PRIMARY_DRAG_ROLE,
+ new CompositeRefactoringEditPart.NodeLabelDragPolicy());
+ }
+
+ /**
+ * @generated
+ */
+ protected String getLabelTextHelper(IFigure figure) {
+ if (figure instanceof WrappingLabel) {
+ return ((WrappingLabel) figure).getText();
+ } else {
+ return ((Label) figure).getText();
+ }
+ }
+
+ /**
+ * @generated
+ */
+ protected void setLabelTextHelper(IFigure figure, String text) {
+ if (figure instanceof WrappingLabel) {
+ ((WrappingLabel) figure).setText(text);
+ } else {
+ ((Label) figure).setText(text);
+ }
+ }
+
+ /**
+ * @generated
+ */
+ protected Image getLabelIconHelper(IFigure figure) {
+ if (figure instanceof WrappingLabel) {
+ return ((WrappingLabel) figure).getIcon();
+ } else {
+ return ((Label) figure).getIcon();
+ }
+ }
+
+ /**
+ * @generated
+ */
+ protected void setLabelIconHelper(IFigure figure, Image icon) {
+ if (figure instanceof WrappingLabel) {
+ ((WrappingLabel) figure).setIcon(icon);
+ } else {
+ ((Label) figure).setIcon(icon);
+ }
+ }
+
+ /**
+ * @generated
+ */
+ public void setLabel(WrappingLabel figure) {
+ unregisterVisuals();
+ setFigure(figure);
+ defaultText = getLabelTextHelper(figure);
+ registerVisuals();
+ refreshVisuals();
+ }
+
+ /**
+ * @generated
+ */
+ @SuppressWarnings("rawtypes")
+ protected List getModelChildren() {
+ return Collections.EMPTY_LIST;
+ }
+
+ /**
+ * @generated
+ */
+ public IGraphicalEditPart getChildBySemanticHint(String semanticHint) {
+ return null;
+ }
+
+ /**
+ * @generated
+ */
+ protected EObject getParserElement() {
+ return resolveSemanticElement();
+ }
+
+ /**
+ * @generated
+ */
+ protected Image getLabelIcon() {
+ return null;
+ }
+
+ /**
+ * @generated
+ */
+ protected String getLabelText() {
+ String text = null;
+ EObject parserElement = getParserElement();
+ if (parserElement != null && getParser() != null) {
+ text = getParser().getPrintString(
+ new EObjectAdapter(parserElement),
+ getParserOptions().intValue());
+ }
+ if (text == null || text.length() == 0) {
+ text = defaultText;
+ }
+ return text;
+ }
+
+ /**
+ * @generated
+ */
+ public void setLabelText(String text) {
+ setLabelTextHelper(getFigure(), text);
+ Object pdEditPolicy = getEditPolicy(EditPolicy.PRIMARY_DRAG_ROLE);
+ if (pdEditPolicy instanceof ComrelTextSelectionEditPolicy) {
+ ((ComrelTextSelectionEditPolicy) pdEditPolicy).refreshFeedback();
+ }
+ Object sfEditPolicy = getEditPolicy(EditPolicy.SELECTION_FEEDBACK_ROLE);
+ if (sfEditPolicy instanceof ComrelTextSelectionEditPolicy) {
+ ((ComrelTextSelectionEditPolicy) sfEditPolicy).refreshFeedback();
+ }
+ }
+
+ /**
+ * @generated
+ */
+ public String getEditText() {
+ if (getParserElement() == null || getParser() == null) {
+ return ""; //$NON-NLS-1$
+ }
+ return getParser().getEditString(
+ new EObjectAdapter(getParserElement()),
+ getParserOptions().intValue());
+ }
+
+ /**
+ * @generated
+ */
+ protected boolean isEditable() {
+ return getParser() != null;
+ }
+
+ /**
+ * @generated
+ */
+ public ICellEditorValidator getEditTextValidator() {
+ return new ICellEditorValidator() {
+
+ public String isValid(final Object value) {
+ if (value instanceof String) {
+ final EObject element = getParserElement();
+ final IParser parser = getParser();
+ try {
+ IParserEditStatus valid = (IParserEditStatus) getEditingDomain()
+ .runExclusive(
+ new RunnableWithResult.Impl<IParserEditStatus>() {
+
+ public void run() {
+ setResult(parser
+ .isValidEditString(
+ new EObjectAdapter(
+ element),
+ (String) value));
+ }
+ });
+ return valid.getCode() == ParserEditStatus.EDITABLE ? null
+ : valid.getMessage();
+ } catch (InterruptedException ie) {
+ ie.printStackTrace();
+ }
+ }
+
+ // shouldn't get here
+ return null;
+ }
+ };
+ }
+
+ /**
+ * @generated
+ */
+ public IContentAssistProcessor getCompletionProcessor() {
+ if (getParserElement() == null || getParser() == null) {
+ return null;
+ }
+ return getParser().getCompletionProcessor(
+ new EObjectAdapter(getParserElement()));
+ }
+
+ /**
+ * @generated
+ */
+ public ParserOptions getParserOptions() {
+ return ParserOptions.NONE;
+ }
+
+ /**
+ * @generated
+ */
+ public IParser getParser() {
+ if (parser == null) {
+ parser = ComrelParserProvider
+ .getParser(
+ ComrelElementTypes.AtomicUnit_3074,
+ getParserElement(),
+ ComrelVisualIDRegistry
+ .getType(comrel.diagram.edit.parts.AtomicUnitLabelType5EditPart.VISUAL_ID));
+ }
+ return parser;
+ }
+
+ /**
+ * @generated
+ */
+ protected DirectEditManager getManager() {
+ if (manager == null) {
+ setManager(new TextDirectEditManager(this,
+ TextDirectEditManager.getTextCellEditorClass(this),
+ ComrelEditPartFactory.getTextCellEditorLocator(this)));
+ }
+ return manager;
+ }
+
+ /**
+ * @generated
+ */
+ protected void setManager(DirectEditManager manager) {
+ this.manager = manager;
+ }
+
+ /**
+ * @generated
+ */
+ protected void performDirectEdit() {
+ getManager().show();
+ }
+
+ /**
+ * @generated
+ */
+ protected void performDirectEdit(Point eventLocation) {
+ if (getManager().getClass() == TextDirectEditManager.class) {
+ ((TextDirectEditManager) getManager()).show(eventLocation
+ .getSWTPoint());
+ }
+ }
+
+ /**
+ * @generated
+ */
+ private void performDirectEdit(char initialCharacter) {
+ if (getManager() instanceof TextDirectEditManager) {
+ ((TextDirectEditManager) getManager()).show(initialCharacter);
+ } else {
+ performDirectEdit();
+ }
+ }
+
+ /**
+ * @generated
+ */
+ protected void performDirectEditRequest(Request request) {
+ final Request theRequest = request;
+ try {
+ getEditingDomain().runExclusive(new Runnable() {
+
+ public void run() {
+ if (isActive() && isEditable()) {
+ if (theRequest
+ .getExtendedData()
+ .get(RequestConstants.REQ_DIRECTEDIT_EXTENDEDDATA_INITIAL_CHAR) instanceof Character) {
+ Character initialChar = (Character) theRequest
+ .getExtendedData()
+ .get(RequestConstants.REQ_DIRECTEDIT_EXTENDEDDATA_INITIAL_CHAR);
+ performDirectEdit(initialChar.charValue());
+ } else if ((theRequest instanceof DirectEditRequest)
+ && (getEditText().equals(getLabelText()))) {
+ DirectEditRequest editRequest = (DirectEditRequest) theRequest;
+ performDirectEdit(editRequest.getLocation());
+ } else {
+ performDirectEdit();
+ }
+ }
+ }
+ });
+ } catch (InterruptedException e) {
+ e.printStackTrace();
+ }
+ }
+
+ /**
+ * @generated
+ */
+ protected void refreshVisuals() {
+ super.refreshVisuals();
+ refreshLabel();
+ refreshFont();
+ refreshFontColor();
+ refreshUnderline();
+ refreshStrikeThrough();
+ }
+
+ /**
+ * @generated
+ */
+ protected void refreshLabel() {
+ setLabelTextHelper(getFigure(), getLabelText());
+ setLabelIconHelper(getFigure(), getLabelIcon());
+ Object pdEditPolicy = getEditPolicy(EditPolicy.PRIMARY_DRAG_ROLE);
+ if (pdEditPolicy instanceof ComrelTextSelectionEditPolicy) {
+ ((ComrelTextSelectionEditPolicy) pdEditPolicy).refreshFeedback();
+ }
+ Object sfEditPolicy = getEditPolicy(EditPolicy.SELECTION_FEEDBACK_ROLE);
+ if (sfEditPolicy instanceof ComrelTextSelectionEditPolicy) {
+ ((ComrelTextSelectionEditPolicy) sfEditPolicy).refreshFeedback();
+ }
+ }
+
+ /**
+ * @generated
+ */
+ protected void refreshUnderline() {
+ FontStyle style = (FontStyle) getFontStyleOwnerView().getStyle(
+ NotationPackage.eINSTANCE.getFontStyle());
+ if (style != null && getFigure() instanceof WrappingLabel) {
+ ((WrappingLabel) getFigure()).setTextUnderline(style.isUnderline());
+ }
+ }
+
+ /**
+ * @generated
+ */
+ protected void refreshStrikeThrough() {
+ FontStyle style = (FontStyle) getFontStyleOwnerView().getStyle(
+ NotationPackage.eINSTANCE.getFontStyle());
+ if (style != null && getFigure() instanceof WrappingLabel) {
+ ((WrappingLabel) getFigure()).setTextStrikeThrough(style
+ .isStrikeThrough());
+ }
+ }
+
+ /**
+ * @generated
+ */
+ protected void refreshFont() {
+ FontStyle style = (FontStyle) getFontStyleOwnerView().getStyle(
+ NotationPackage.eINSTANCE.getFontStyle());
+ if (style != null) {
+ FontData fontData = new FontData(style.getFontName(),
+ style.getFontHeight(), (style.isBold() ? SWT.BOLD
+ : SWT.NORMAL)
+ | (style.isItalic() ? SWT.ITALIC : SWT.NORMAL));
+ setFont(fontData);
+ }
+ }
+
+ /**
+ * @generated
+ */
+ protected void setFontColor(Color color) {
+ getFigure().setForegroundColor(color);
+ }
+
+ /**
+ * @generated
+ */
+ protected void addSemanticListeners() {
+ if (getParser() instanceof ISemanticParser) {
+ EObject element = resolveSemanticElement();
+ parserElements = ((ISemanticParser) getParser())
+ .getSemanticElementsBeingParsed(element);
+ for (int i = 0; i < parserElements.size(); i++) {
+ addListenerFilter(
+ "SemanticModel" + i, this, (EObject) parserElements.get(i)); //$NON-NLS-1$
+ }
+ } else {
+ super.addSemanticListeners();
+ }
+ }
+
+ /**
+ * @generated
+ */
+ protected void removeSemanticListeners() {
+ if (parserElements != null) {
+ for (int i = 0; i < parserElements.size(); i++) {
+ removeListenerFilter("SemanticModel" + i); //$NON-NLS-1$
+ }
+ } else {
+ super.removeSemanticListeners();
+ }
+ }
+
+ /**
+ * @generated
+ */
+ protected AccessibleEditPart getAccessibleEditPart() {
+ if (accessibleEP == null) {
+ accessibleEP = new AccessibleGraphicalEditPart() {
+
+ public void getName(AccessibleEvent e) {
+ e.result = getLabelTextHelper(getFigure());
+ }
+ };
+ }
+ return accessibleEP;
+ }
+
+ /**
+ * @generated
+ */
+ private View getFontStyleOwnerView() {
+ return getPrimaryView();
+ }
+
+ /**
+ * @generated
+ */
+ protected void addNotationalListeners() {
+ super.addNotationalListeners();
+ addListenerFilter("PrimaryView", this, getPrimaryView()); //$NON-NLS-1$
+ }
+
+ /**
+ * @generated
+ */
+ protected void removeNotationalListeners() {
+ super.removeNotationalListeners();
+ removeListenerFilter("PrimaryView"); //$NON-NLS-1$
+ }
+
+ /**
+ * @generated
+ */
+ protected void handleNotificationEvent(Notification event) {
+ Object feature = event.getFeature();
+ if (NotationPackage.eINSTANCE.getFontStyle_FontColor().equals(feature)) {
+ Integer c = (Integer) event.getNewValue();
+ setFontColor(DiagramColorRegistry.getInstance().getColor(c));
+ } else if (NotationPackage.eINSTANCE.getFontStyle_Underline().equals(
+ feature)) {
+ refreshUnderline();
+ } else if (NotationPackage.eINSTANCE.getFontStyle_StrikeThrough()
+ .equals(feature)) {
+ refreshStrikeThrough();
+ } else if (NotationPackage.eINSTANCE.getFontStyle_FontHeight().equals(
+ feature)
+ || NotationPackage.eINSTANCE.getFontStyle_FontName().equals(
+ feature)
+ || NotationPackage.eINSTANCE.getFontStyle_Bold()
+ .equals(feature)
+ || NotationPackage.eINSTANCE.getFontStyle_Italic().equals(
+ feature)) {
+ refreshFont();
+ } else {
+ if (getParser() != null
+ && getParser().isAffectingEvent(event,
+ getParserOptions().intValue())) {
+ refreshLabel();
+ }
+ if (getParser() instanceof ISemanticParser) {
+ ISemanticParser modelParser = (ISemanticParser) getParser();
+ if (modelParser.areSemanticElementsAffected(null, event)) {
+ removeSemanticListeners();
+ if (resolveSemanticElement() != null) {
+ addSemanticListeners();
+ }
+ refreshLabel();
+ }
+ }
+ }
+ super.handleNotificationEvent(event);
+ }
+
+ /**
+ * @generated
+ */
+ protected IFigure createFigure() {
+ // Parent should assign one using setLabel() method
+ return null;
+ }
+
+}
diff --git a/org.eclipse.emf.refactor.comrel.diagram/src/comrel/diagram/edit/parts/AtomicUnitLabelType6EditPart.java b/org.eclipse.emf.refactor.comrel.diagram/src/comrel/diagram/edit/parts/AtomicUnitLabelType6EditPart.java
new file mode 100644
index 0000000..20ca5af
--- /dev/null
+++ b/org.eclipse.emf.refactor.comrel.diagram/src/comrel/diagram/edit/parts/AtomicUnitLabelType6EditPart.java
@@ -0,0 +1,576 @@
+/*
+ *
+ */
+package comrel.diagram.edit.parts;
+
+import java.util.Collections;
+import java.util.List;
+
+import org.eclipse.draw2d.IFigure;
+import org.eclipse.draw2d.Label;
+import org.eclipse.draw2d.geometry.Point;
+import org.eclipse.emf.common.notify.Notification;
+import org.eclipse.emf.ecore.EObject;
+import org.eclipse.emf.transaction.RunnableWithResult;
+import org.eclipse.gef.AccessibleEditPart;
+import org.eclipse.gef.EditPolicy;
+import org.eclipse.gef.Request;
+import org.eclipse.gef.requests.DirectEditRequest;
+import org.eclipse.gef.tools.DirectEditManager;
+import org.eclipse.gmf.runtime.common.ui.services.parser.IParser;
+import org.eclipse.gmf.runtime.common.ui.services.parser.IParserEditStatus;
+import org.eclipse.gmf.runtime.common.ui.services.parser.ParserEditStatus;
+import org.eclipse.gmf.runtime.common.ui.services.parser.ParserOptions;
+import org.eclipse.gmf.runtime.diagram.ui.editparts.CompartmentEditPart;
+import org.eclipse.gmf.runtime.diagram.ui.editparts.IGraphicalEditPart;
+import org.eclipse.gmf.runtime.diagram.ui.editparts.ITextAwareEditPart;
+import org.eclipse.gmf.runtime.diagram.ui.editpolicies.LabelDirectEditPolicy;
+import org.eclipse.gmf.runtime.diagram.ui.l10n.DiagramColorRegistry;
+import org.eclipse.gmf.runtime.diagram.ui.requests.RequestConstants;
+import org.eclipse.gmf.runtime.diagram.ui.tools.TextDirectEditManager;
+import org.eclipse.gmf.runtime.draw2d.ui.figures.WrappingLabel;
+import org.eclipse.gmf.runtime.emf.core.util.EObjectAdapter;
+import org.eclipse.gmf.runtime.emf.ui.services.parser.ISemanticParser;
+import org.eclipse.gmf.runtime.notation.FontStyle;
+import org.eclipse.gmf.runtime.notation.NotationPackage;
+import org.eclipse.gmf.runtime.notation.View;
+import org.eclipse.jface.text.contentassist.IContentAssistProcessor;
+import org.eclipse.jface.viewers.ICellEditorValidator;
+import org.eclipse.swt.SWT;
+import org.eclipse.swt.accessibility.AccessibleEvent;
+import org.eclipse.swt.graphics.Color;
+import org.eclipse.swt.graphics.FontData;
+import org.eclipse.swt.graphics.Image;
+
+import comrel.diagram.edit.policies.ComrelTextSelectionEditPolicy;
+import comrel.diagram.part.ComrelVisualIDRegistry;
+import comrel.diagram.providers.ComrelElementTypes;
+import comrel.diagram.providers.ComrelParserProvider;
+
+/**
+ * @generated
+ */
+public class AtomicUnitLabelType6EditPart extends CompartmentEditPart implements
+ ITextAwareEditPart {
+
+ /**
+ * @generated
+ */
+ public static final int VISUAL_ID = 5053;
+
+ /**
+ * @generated
+ */
+ private DirectEditManager manager;
+
+ /**
+ * @generated
+ */
+ private IParser parser;
+
+ /**
+ * @generated
+ */
+ private List<?> parserElements;
+
+ /**
+ * @generated
+ */
+ private String defaultText;
+
+ /**
+ * @generated
+ */
+ public AtomicUnitLabelType6EditPart(View view) {
+ super(view);
+ }
+
+ /**
+ * @generated
+ */
+ protected void createDefaultEditPolicies() {
+ super.createDefaultEditPolicies();
+ installEditPolicy(EditPolicy.SELECTION_FEEDBACK_ROLE,
+ new ComrelTextSelectionEditPolicy());
+ installEditPolicy(EditPolicy.DIRECT_EDIT_ROLE,
+ new LabelDirectEditPolicy());
+ installEditPolicy(EditPolicy.PRIMARY_DRAG_ROLE,
+ new CompositeRefactoringEditPart.NodeLabelDragPolicy());
+ }
+
+ /**
+ * @generated
+ */
+ protected String getLabelTextHelper(IFigure figure) {
+ if (figure instanceof WrappingLabel) {
+ return ((WrappingLabel) figure).getText();
+ } else {
+ return ((Label) figure).getText();
+ }
+ }
+
+ /**
+ * @generated
+ */
+ protected void setLabelTextHelper(IFigure figure, String text) {
+ if (figure instanceof WrappingLabel) {
+ ((WrappingLabel) figure).setText(text);
+ } else {
+ ((Label) figure).setText(text);
+ }
+ }
+
+ /**
+ * @generated
+ */
+ protected Image getLabelIconHelper(IFigure figure) {
+ if (figure instanceof WrappingLabel) {
+ return ((WrappingLabel) figure).getIcon();
+ } else {
+ return ((Label) figure).getIcon();
+ }
+ }
+
+ /**
+ * @generated
+ */
+ protected void setLabelIconHelper(IFigure figure, Image icon) {
+ if (figure instanceof WrappingLabel) {
+ ((WrappingLabel) figure).setIcon(icon);
+ } else {
+ ((Label) figure).setIcon(icon);
+ }
+ }
+
+ /**
+ * @generated
+ */
+ public void setLabel(WrappingLabel figure) {
+ unregisterVisuals();
+ setFigure(figure);
+ defaultText = getLabelTextHelper(figure);
+ registerVisuals();
+ refreshVisuals();
+ }
+
+ /**
+ * @generated
+ */
+ @SuppressWarnings("rawtypes")
+ protected List getModelChildren() {
+ return Collections.EMPTY_LIST;
+ }
+
+ /**
+ * @generated
+ */
+ public IGraphicalEditPart getChildBySemanticHint(String semanticHint) {
+ return null;
+ }
+
+ /**
+ * @generated
+ */
+ protected EObject getParserElement() {
+ return resolveSemanticElement();
+ }
+
+ /**
+ * @generated
+ */
+ protected Image getLabelIcon() {
+ return null;
+ }
+
+ /**
+ * @generated
+ */
+ protected String getLabelText() {
+ String text = null;
+ EObject parserElement = getParserElement();
+ if (parserElement != null && getParser() != null) {
+ text = getParser().getPrintString(
+ new EObjectAdapter(parserElement),
+ getParserOptions().intValue());
+ }
+ if (text == null || text.length() == 0) {
+ text = defaultText;
+ }
+ return text;
+ }
+
+ /**
+ * @generated
+ */
+ public void setLabelText(String text) {
+ setLabelTextHelper(getFigure(), text);
+ Object pdEditPolicy = getEditPolicy(EditPolicy.PRIMARY_DRAG_ROLE);
+ if (pdEditPolicy instanceof ComrelTextSelectionEditPolicy) {
+ ((ComrelTextSelectionEditPolicy) pdEditPolicy).refreshFeedback();
+ }
+ Object sfEditPolicy = getEditPolicy(EditPolicy.SELECTION_FEEDBACK_ROLE);
+ if (sfEditPolicy instanceof ComrelTextSelectionEditPolicy) {
+ ((ComrelTextSelectionEditPolicy) sfEditPolicy).refreshFeedback();
+ }
+ }
+
+ /**
+ * @generated
+ */
+ public String getEditText() {
+ if (getParserElement() == null || getParser() == null) {
+ return ""; //$NON-NLS-1$
+ }
+ return getParser().getEditString(
+ new EObjectAdapter(getParserElement()),
+ getParserOptions().intValue());
+ }
+
+ /**
+ * @generated
+ */
+ protected boolean isEditable() {
+ return getParser() != null;
+ }
+
+ /**
+ * @generated
+ */
+ public ICellEditorValidator getEditTextValidator() {
+ return new ICellEditorValidator() {
+
+ public String isValid(final Object value) {
+ if (value instanceof String) {
+ final EObject element = getParserElement();
+ final IParser parser = getParser();
+ try {
+ IParserEditStatus valid = (IParserEditStatus) getEditingDomain()
+ .runExclusive(
+ new RunnableWithResult.Impl<IParserEditStatus>() {
+
+ public void run() {
+ setResult(parser
+ .isValidEditString(
+ new EObjectAdapter(
+ element),
+ (String) value));
+ }
+ });
+ return valid.getCode() == ParserEditStatus.EDITABLE ? null
+ : valid.getMessage();
+ } catch (InterruptedException ie) {
+ ie.printStackTrace();
+ }
+ }
+
+ // shouldn't get here
+ return null;
+ }
+ };
+ }
+
+ /**
+ * @generated
+ */
+ public IContentAssistProcessor getCompletionProcessor() {
+ if (getParserElement() == null || getParser() == null) {
+ return null;
+ }
+ return getParser().getCompletionProcessor(
+ new EObjectAdapter(getParserElement()));
+ }
+
+ /**
+ * @generated
+ */
+ public ParserOptions getParserOptions() {
+ return ParserOptions.NONE;
+ }
+
+ /**
+ * @generated
+ */
+ public IParser getParser() {
+ if (parser == null) {
+ parser = ComrelParserProvider
+ .getParser(
+ ComrelElementTypes.AtomicUnit_3077,
+ getParserElement(),
+ ComrelVisualIDRegistry
+ .getType(comrel.diagram.edit.parts.AtomicUnitLabelType6EditPart.VISUAL_ID));
+ }
+ return parser;
+ }
+
+ /**
+ * @generated
+ */
+ protected DirectEditManager getManager() {
+ if (manager == null) {
+ setManager(new TextDirectEditManager(this,
+ TextDirectEditManager.getTextCellEditorClass(this),
+ ComrelEditPartFactory.getTextCellEditorLocator(this)));
+ }
+ return manager;
+ }
+
+ /**
+ * @generated
+ */
+ protected void setManager(DirectEditManager manager) {
+ this.manager = manager;
+ }
+
+ /**
+ * @generated
+ */
+ protected void performDirectEdit() {
+ getManager().show();
+ }
+
+ /**
+ * @generated
+ */
+ protected void performDirectEdit(Point eventLocation) {
+ if (getManager().getClass() == TextDirectEditManager.class) {
+ ((TextDirectEditManager) getManager()).show(eventLocation
+ .getSWTPoint());
+ }
+ }
+
+ /**
+ * @generated
+ */
+ private void performDirectEdit(char initialCharacter) {
+ if (getManager() instanceof TextDirectEditManager) {
+ ((TextDirectEditManager) getManager()).show(initialCharacter);
+ } else {
+ performDirectEdit();
+ }
+ }
+
+ /**
+ * @generated
+ */
+ protected void performDirectEditRequest(Request request) {
+ final Request theRequest = request;
+ try {
+ getEditingDomain().runExclusive(new Runnable() {
+
+ public void run() {
+ if (isActive() && isEditable()) {
+ if (theRequest
+ .getExtendedData()
+ .get(RequestConstants.REQ_DIRECTEDIT_EXTENDEDDATA_INITIAL_CHAR) instanceof Character) {
+ Character initialChar = (Character) theRequest
+ .getExtendedData()
+ .get(RequestConstants.REQ_DIRECTEDIT_EXTENDEDDATA_INITIAL_CHAR);
+ performDirectEdit(initialChar.charValue());
+ } else if ((theRequest instanceof DirectEditRequest)
+ && (getEditText().equals(getLabelText()))) {
+ DirectEditRequest editRequest = (DirectEditRequest) theRequest;
+ performDirectEdit(editRequest.getLocation());
+ } else {
+ performDirectEdit();
+ }
+ }
+ }
+ });
+ } catch (InterruptedException e) {
+ e.printStackTrace();
+ }
+ }
+
+ /**
+ * @generated
+ */
+ protected void refreshVisuals() {
+ super.refreshVisuals();
+ refreshLabel();
+ refreshFont();
+ refreshFontColor();
+ refreshUnderline();
+ refreshStrikeThrough();
+ }
+
+ /**
+ * @generated
+ */
+ protected void refreshLabel() {
+ setLabelTextHelper(getFigure(), getLabelText());
+ setLabelIconHelper(getFigure(), getLabelIcon());
+ Object pdEditPolicy = getEditPolicy(EditPolicy.PRIMARY_DRAG_ROLE);
+ if (pdEditPolicy instanceof ComrelTextSelectionEditPolicy) {
+ ((ComrelTextSelectionEditPolicy) pdEditPolicy).refreshFeedback();
+ }
+ Object sfEditPolicy = getEditPolicy(EditPolicy.SELECTION_FEEDBACK_ROLE);
+ if (sfEditPolicy instanceof ComrelTextSelectionEditPolicy) {
+ ((ComrelTextSelectionEditPolicy) sfEditPolicy).refreshFeedback();
+ }
+ }
+
+ /**
+ * @generated
+ */
+ protected void refreshUnderline() {
+ FontStyle style = (FontStyle) getFontStyleOwnerView().getStyle(
+ NotationPackage.eINSTANCE.getFontStyle());
+ if (style != null && getFigure() instanceof WrappingLabel) {
+ ((WrappingLabel) getFigure()).setTextUnderline(style.isUnderline());
+ }
+ }
+
+ /**
+ * @generated
+ */
+ protected void refreshStrikeThrough() {
+ FontStyle style = (FontStyle) getFontStyleOwnerView().getStyle(
+ NotationPackage.eINSTANCE.getFontStyle());
+ if (style != null && getFigure() instanceof WrappingLabel) {
+ ((WrappingLabel) getFigure()).setTextStrikeThrough(style
+ .isStrikeThrough());
+ }
+ }
+
+ /**
+ * @generated
+ */
+ protected void refreshFont() {
+ FontStyle style = (FontStyle) getFontStyleOwnerView().getStyle(
+ NotationPackage.eINSTANCE.getFontStyle());
+ if (style != null) {
+ FontData fontData = new FontData(style.getFontName(),
+ style.getFontHeight(), (style.isBold() ? SWT.BOLD
+ : SWT.NORMAL)
+ | (style.isItalic() ? SWT.ITALIC : SWT.NORMAL));
+ setFont(fontData);
+ }
+ }
+
+ /**
+ * @generated
+ */
+ protected void setFontColor(Color color) {
+ getFigure().setForegroundColor(color);
+ }
+
+ /**
+ * @generated
+ */
+ protected void addSemanticListeners() {
+ if (getParser() instanceof ISemanticParser) {
+ EObject element = resolveSemanticElement();
+ parserElements = ((ISemanticParser) getParser())
+ .getSemanticElementsBeingParsed(element);
+ for (int i = 0; i < parserElements.size(); i++) {
+ addListenerFilter(
+ "SemanticModel" + i, this, (EObject) parserElements.get(i)); //$NON-NLS-1$
+ }
+ } else {
+ super.addSemanticListeners();
+ }
+ }
+
+ /**
+ * @generated
+ */
+ protected void removeSemanticListeners() {
+ if (parserElements != null) {
+ for (int i = 0; i < parserElements.size(); i++) {
+ removeListenerFilter("SemanticModel" + i); //$NON-NLS-1$
+ }
+ } else {
+ super.removeSemanticListeners();
+ }
+ }
+
+ /**
+ * @generated
+ */
+ protected AccessibleEditPart getAccessibleEditPart() {
+ if (accessibleEP == null) {
+ accessibleEP = new AccessibleGraphicalEditPart() {
+
+ public void getName(AccessibleEvent e) {
+ e.result = getLabelTextHelper(getFigure());
+ }
+ };
+ }
+ return accessibleEP;
+ }
+
+ /**
+ * @generated
+ */
+ private View getFontStyleOwnerView() {
+ return getPrimaryView();
+ }
+
+ /**
+ * @generated
+ */
+ protected void addNotationalListeners() {
+ super.addNotationalListeners();
+ addListenerFilter("PrimaryView", this, getPrimaryView()); //$NON-NLS-1$
+ }
+
+ /**
+ * @generated
+ */
+ protected void removeNotationalListeners() {
+ super.removeNotationalListeners();
+ removeListenerFilter("PrimaryView"); //$NON-NLS-1$
+ }
+
+ /**
+ * @generated
+ */
+ protected void handleNotificationEvent(Notification event) {
+ Object feature = event.getFeature();
+ if (NotationPackage.eINSTANCE.getFontStyle_FontColor().equals(feature)) {
+ Integer c = (Integer) event.getNewValue();
+ setFontColor(DiagramColorRegistry.getInstance().getColor(c));
+ } else if (NotationPackage.eINSTANCE.getFontStyle_Underline().equals(
+ feature)) {
+ refreshUnderline();
+ } else if (NotationPackage.eINSTANCE.getFontStyle_StrikeThrough()
+ .equals(feature)) {
+ refreshStrikeThrough();
+ } else if (NotationPackage.eINSTANCE.getFontStyle_FontHeight().equals(
+ feature)
+ || NotationPackage.eINSTANCE.getFontStyle_FontName().equals(
+ feature)
+ || NotationPackage.eINSTANCE.getFontStyle_Bold()
+ .equals(feature)
+ || NotationPackage.eINSTANCE.getFontStyle_Italic().equals(
+ feature)) {
+ refreshFont();
+ } else {
+ if (getParser() != null
+ && getParser().isAffectingEvent(event,
+ getParserOptions().intValue())) {
+ refreshLabel();
+ }
+ if (getParser() instanceof ISemanticParser) {
+ ISemanticParser modelParser = (ISemanticParser) getParser();
+ if (modelParser.areSemanticElementsAffected(null, event)) {
+ removeSemanticListeners();
+ if (resolveSemanticElement() != null) {
+ addSemanticListeners();
+ }
+ refreshLabel();
+ }
+ }
+ }
+ super.handleNotificationEvent(event);
+ }
+
+ /**
+ * @generated
+ */
+ protected IFigure createFigure() {
+ // Parent should assign one using setLabel() method
+ return null;
+ }
+
+}
diff --git a/org.eclipse.emf.refactor.comrel.diagram/src/comrel/diagram/edit/parts/AtomicUnitLabelType7EditPart.java b/org.eclipse.emf.refactor.comrel.diagram/src/comrel/diagram/edit/parts/AtomicUnitLabelType7EditPart.java
new file mode 100644
index 0000000..783f109
--- /dev/null
+++ b/org.eclipse.emf.refactor.comrel.diagram/src/comrel/diagram/edit/parts/AtomicUnitLabelType7EditPart.java
@@ -0,0 +1,576 @@
+/*
+ *
+ */
+package comrel.diagram.edit.parts;
+
+import java.util.Collections;
+import java.util.List;
+
+import org.eclipse.draw2d.IFigure;
+import org.eclipse.draw2d.Label;
+import org.eclipse.draw2d.geometry.Point;
+import org.eclipse.emf.common.notify.Notification;
+import org.eclipse.emf.ecore.EObject;
+import org.eclipse.emf.transaction.RunnableWithResult;
+import org.eclipse.gef.AccessibleEditPart;
+import org.eclipse.gef.EditPolicy;
+import org.eclipse.gef.Request;
+import org.eclipse.gef.requests.DirectEditRequest;
+import org.eclipse.gef.tools.DirectEditManager;
+import org.eclipse.gmf.runtime.common.ui.services.parser.IParser;
+import org.eclipse.gmf.runtime.common.ui.services.parser.IParserEditStatus;
+import org.eclipse.gmf.runtime.common.ui.services.parser.ParserEditStatus;
+import org.eclipse.gmf.runtime.common.ui.services.parser.ParserOptions;
+import org.eclipse.gmf.runtime.diagram.ui.editparts.CompartmentEditPart;
+import org.eclipse.gmf.runtime.diagram.ui.editparts.IGraphicalEditPart;
+import org.eclipse.gmf.runtime.diagram.ui.editparts.ITextAwareEditPart;
+import org.eclipse.gmf.runtime.diagram.ui.editpolicies.LabelDirectEditPolicy;
+import org.eclipse.gmf.runtime.diagram.ui.l10n.DiagramColorRegistry;
+import org.eclipse.gmf.runtime.diagram.ui.requests.RequestConstants;
+import org.eclipse.gmf.runtime.diagram.ui.tools.TextDirectEditManager;
+import org.eclipse.gmf.runtime.draw2d.ui.figures.WrappingLabel;
+import org.eclipse.gmf.runtime.emf.core.util.EObjectAdapter;
+import org.eclipse.gmf.runtime.emf.ui.services.parser.ISemanticParser;
+import org.eclipse.gmf.runtime.notation.FontStyle;
+import org.eclipse.gmf.runtime.notation.NotationPackage;
+import org.eclipse.gmf.runtime.notation.View;
+import org.eclipse.jface.text.contentassist.IContentAssistProcessor;
+import org.eclipse.jface.viewers.ICellEditorValidator;
+import org.eclipse.swt.SWT;
+import org.eclipse.swt.accessibility.AccessibleEvent;
+import org.eclipse.swt.graphics.Color;
+import org.eclipse.swt.graphics.FontData;
+import org.eclipse.swt.graphics.Image;
+
+import comrel.diagram.edit.policies.ComrelTextSelectionEditPolicy;
+import comrel.diagram.part.ComrelVisualIDRegistry;
+import comrel.diagram.providers.ComrelElementTypes;
+import comrel.diagram.providers.ComrelParserProvider;
+
+/**
+ * @generated
+ */
+public class AtomicUnitLabelType7EditPart extends CompartmentEditPart implements
+ ITextAwareEditPart {
+
+ /**
+ * @generated
+ */
+ public static final int VISUAL_ID = 5054;
+
+ /**
+ * @generated
+ */
+ private DirectEditManager manager;
+
+ /**
+ * @generated
+ */
+ private IParser parser;
+
+ /**
+ * @generated
+ */
+ private List<?> parserElements;
+
+ /**
+ * @generated
+ */
+ private String defaultText;
+
+ /**
+ * @generated
+ */
+ public AtomicUnitLabelType7EditPart(View view) {
+ super(view);
+ }
+
+ /**
+ * @generated
+ */
+ protected void createDefaultEditPolicies() {
+ super.createDefaultEditPolicies();
+ installEditPolicy(EditPolicy.SELECTION_FEEDBACK_ROLE,
+ new ComrelTextSelectionEditPolicy());
+ installEditPolicy(EditPolicy.DIRECT_EDIT_ROLE,
+ new LabelDirectEditPolicy());
+ installEditPolicy(EditPolicy.PRIMARY_DRAG_ROLE,
+ new CompositeRefactoringEditPart.NodeLabelDragPolicy());
+ }
+
+ /**
+ * @generated
+ */
+ protected String getLabelTextHelper(IFigure figure) {
+ if (figure instanceof WrappingLabel) {
+ return ((WrappingLabel) figure).getText();
+ } else {
+ return ((Label) figure).getText();
+ }
+ }
+
+ /**
+ * @generated
+ */
+ protected void setLabelTextHelper(IFigure figure, String text) {
+ if (figure instanceof WrappingLabel) {
+ ((WrappingLabel) figure).setText(text);
+ } else {
+ ((Label) figure).setText(text);
+ }
+ }
+
+ /**
+ * @generated
+ */
+ protected Image getLabelIconHelper(IFigure figure) {
+ if (figure instanceof WrappingLabel) {
+ return ((WrappingLabel) figure).getIcon();
+ } else {
+ return ((Label) figure).getIcon();
+ }
+ }
+
+ /**
+ * @generated
+ */
+ protected void setLabelIconHelper(IFigure figure, Image icon) {
+ if (figure instanceof WrappingLabel) {
+ ((WrappingLabel) figure).setIcon(icon);
+ } else {
+ ((Label) figure).setIcon(icon);
+ }
+ }
+
+ /**
+ * @generated
+ */
+ public void setLabel(WrappingLabel figure) {
+ unregisterVisuals();
+ setFigure(figure);
+ defaultText = getLabelTextHelper(figure);
+ registerVisuals();
+ refreshVisuals();
+ }
+
+ /**
+ * @generated
+ */
+ @SuppressWarnings("rawtypes")
+ protected List getModelChildren() {
+ return Collections.EMPTY_LIST;
+ }
+
+ /**
+ * @generated
+ */
+ public IGraphicalEditPart getChildBySemanticHint(String semanticHint) {
+ return null;
+ }
+
+ /**
+ * @generated
+ */
+ protected EObject getParserElement() {
+ return resolveSemanticElement();
+ }
+
+ /**
+ * @generated
+ */
+ protected Image getLabelIcon() {
+ return null;
+ }
+
+ /**
+ * @generated
+ */
+ protected String getLabelText() {
+ String text = null;
+ EObject parserElement = getParserElement();
+ if (parserElement != null && getParser() != null) {
+ text = getParser().getPrintString(
+ new EObjectAdapter(parserElement),
+ getParserOptions().intValue());
+ }
+ if (text == null || text.length() == 0) {
+ text = defaultText;
+ }
+ return text;
+ }
+
+ /**
+ * @generated
+ */
+ public void setLabelText(String text) {
+ setLabelTextHelper(getFigure(), text);
+ Object pdEditPolicy = getEditPolicy(EditPolicy.PRIMARY_DRAG_ROLE);
+ if (pdEditPolicy instanceof ComrelTextSelectionEditPolicy) {
+ ((ComrelTextSelectionEditPolicy) pdEditPolicy).refreshFeedback();
+ }
+ Object sfEditPolicy = getEditPolicy(EditPolicy.SELECTION_FEEDBACK_ROLE);
+ if (sfEditPolicy instanceof ComrelTextSelectionEditPolicy) {
+ ((ComrelTextSelectionEditPolicy) sfEditPolicy).refreshFeedback();
+ }
+ }
+
+ /**
+ * @generated
+ */
+ public String getEditText() {
+ if (getParserElement() == null || getParser() == null) {
+ return ""; //$NON-NLS-1$
+ }
+ return getParser().getEditString(
+ new EObjectAdapter(getParserElement()),
+ getParserOptions().intValue());
+ }
+
+ /**
+ * @generated
+ */
+ protected boolean isEditable() {
+ return getParser() != null;
+ }
+
+ /**
+ * @generated
+ */
+ public ICellEditorValidator getEditTextValidator() {
+ return new ICellEditorValidator() {
+
+ public String isValid(final Object value) {
+ if (value instanceof String) {
+ final EObject element = getParserElement();
+ final IParser parser = getParser();
+ try {
+ IParserEditStatus valid = (IParserEditStatus) getEditingDomain()
+ .runExclusive(
+ new RunnableWithResult.Impl<IParserEditStatus>() {
+
+ public void run() {
+ setResult(parser
+ .isValidEditString(
+ new EObjectAdapter(
+ element),
+ (String) value));
+ }
+ });
+ return valid.getCode() == ParserEditStatus.EDITABLE ? null
+ : valid.getMessage();
+ } catch (InterruptedException ie) {
+ ie.printStackTrace();
+ }
+ }
+
+ // shouldn't get here
+ return null;
+ }
+ };
+ }
+
+ /**
+ * @generated
+ */
+ public IContentAssistProcessor getCompletionProcessor() {
+ if (getParserElement() == null || getParser() == null) {
+ return null;
+ }
+ return getParser().getCompletionProcessor(
+ new EObjectAdapter(getParserElement()));
+ }
+
+ /**
+ * @generated
+ */
+ public ParserOptions getParserOptions() {
+ return ParserOptions.NONE;
+ }
+
+ /**
+ * @generated
+ */
+ public IParser getParser() {
+ if (parser == null) {
+ parser = ComrelParserProvider
+ .getParser(
+ ComrelElementTypes.AtomicUnit_3078,
+ getParserElement(),
+ ComrelVisualIDRegistry
+ .getType(comrel.diagram.edit.parts.AtomicUnitLabelType7EditPart.VISUAL_ID));
+ }
+ return parser;
+ }
+
+ /**
+ * @generated
+ */
+ protected DirectEditManager getManager() {
+ if (manager == null) {
+ setManager(new TextDirectEditManager(this,
+ TextDirectEditManager.getTextCellEditorClass(this),
+ ComrelEditPartFactory.getTextCellEditorLocator(this)));
+ }
+ return manager;
+ }
+
+ /**
+ * @generated
+ */
+ protected void setManager(DirectEditManager manager) {
+ this.manager = manager;
+ }
+
+ /**
+ * @generated
+ */
+ protected void performDirectEdit() {
+ getManager().show();
+ }
+
+ /**
+ * @generated
+ */
+ protected void performDirectEdit(Point eventLocation) {
+ if (getManager().getClass() == TextDirectEditManager.class) {
+ ((TextDirectEditManager) getManager()).show(eventLocation
+ .getSWTPoint());
+ }
+ }
+
+ /**
+ * @generated
+ */
+ private void performDirectEdit(char initialCharacter) {
+ if (getManager() instanceof TextDirectEditManager) {
+ ((TextDirectEditManager) getManager()).show(initialCharacter);
+ } else {
+ performDirectEdit();
+ }
+ }
+
+ /**
+ * @generated
+ */
+ protected void performDirectEditRequest(Request request) {
+ final Request theRequest = request;
+ try {
+ getEditingDomain().runExclusive(new Runnable() {
+
+ public void run() {
+ if (isActive() && isEditable()) {
+ if (theRequest
+ .getExtendedData()
+ .get(RequestConstants.REQ_DIRECTEDIT_EXTENDEDDATA_INITIAL_CHAR) instanceof Character) {
+ Character initialChar = (Character) theRequest
+ .getExtendedData()
+ .get(RequestConstants.REQ_DIRECTEDIT_EXTENDEDDATA_INITIAL_CHAR);
+ performDirectEdit(initialChar.charValue());
+ } else if ((theRequest instanceof DirectEditRequest)
+ && (getEditText().equals(getLabelText()))) {
+ DirectEditRequest editRequest = (DirectEditRequest) theRequest;
+ performDirectEdit(editRequest.getLocation());
+ } else {
+ performDirectEdit();
+ }
+ }
+ }
+ });
+ } catch (InterruptedException e) {
+ e.printStackTrace();
+ }
+ }
+
+ /**
+ * @generated
+ */
+ protected void refreshVisuals() {
+ super.refreshVisuals();
+ refreshLabel();
+ refreshFont();
+ refreshFontColor();
+ refreshUnderline();
+ refreshStrikeThrough();
+ }
+
+ /**
+ * @generated
+ */
+ protected void refreshLabel() {
+ setLabelTextHelper(getFigure(), getLabelText());
+ setLabelIconHelper(getFigure(), getLabelIcon());
+ Object pdEditPolicy = getEditPolicy(EditPolicy.PRIMARY_DRAG_ROLE);
+ if (pdEditPolicy instanceof ComrelTextSelectionEditPolicy) {
+ ((ComrelTextSelectionEditPolicy) pdEditPolicy).refreshFeedback();
+ }
+ Object sfEditPolicy = getEditPolicy(EditPolicy.SELECTION_FEEDBACK_ROLE);
+ if (sfEditPolicy instanceof ComrelTextSelectionEditPolicy) {
+ ((ComrelTextSelectionEditPolicy) sfEditPolicy).refreshFeedback();
+ }
+ }
+
+ /**
+ * @generated
+ */
+ protected void refreshUnderline() {
+ FontStyle style = (FontStyle) getFontStyleOwnerView().getStyle(
+ NotationPackage.eINSTANCE.getFontStyle());
+ if (style != null && getFigure() instanceof WrappingLabel) {
+ ((WrappingLabel) getFigure()).setTextUnderline(style.isUnderline());
+ }
+ }
+
+ /**
+ * @generated
+ */
+ protected void refreshStrikeThrough() {
+ FontStyle style = (FontStyle) getFontStyleOwnerView().getStyle(
+ NotationPackage.eINSTANCE.getFontStyle());
+ if (style != null && getFigure() instanceof WrappingLabel) {
+ ((WrappingLabel) getFigure()).setTextStrikeThrough(style
+ .isStrikeThrough());
+ }
+ }
+
+ /**
+ * @generated
+ */
+ protected void refreshFont() {
+ FontStyle style = (FontStyle) getFontStyleOwnerView().getStyle(
+ NotationPackage.eINSTANCE.getFontStyle());
+ if (style != null) {
+ FontData fontData = new FontData(style.getFontName(),
+ style.getFontHeight(), (style.isBold() ? SWT.BOLD
+ : SWT.NORMAL)
+ | (style.isItalic() ? SWT.ITALIC : SWT.NORMAL));
+ setFont(fontData);
+ }
+ }
+
+ /**
+ * @generated
+ */
+ protected void setFontColor(Color color) {
+ getFigure().setForegroundColor(color);
+ }
+
+ /**
+ * @generated
+ */
+ protected void addSemanticListeners() {
+ if (getParser() instanceof ISemanticParser) {
+ EObject element = resolveSemanticElement();
+ parserElements = ((ISemanticParser) getParser())
+ .getSemanticElementsBeingParsed(element);
+ for (int i = 0; i < parserElements.size(); i++) {
+ addListenerFilter(
+ "SemanticModel" + i, this, (EObject) parserElements.get(i)); //$NON-NLS-1$
+ }
+ } else {
+ super.addSemanticListeners();
+ }
+ }
+
+ /**
+ * @generated
+ */
+ protected void removeSemanticListeners() {
+ if (parserElements != null) {
+ for (int i = 0; i < parserElements.size(); i++) {
+ removeListenerFilter("SemanticModel" + i); //$NON-NLS-1$
+ }
+ } else {
+ super.removeSemanticListeners();
+ }
+ }
+
+ /**
+ * @generated
+ */
+ protected AccessibleEditPart getAccessibleEditPart() {
+ if (accessibleEP == null) {
+ accessibleEP = new AccessibleGraphicalEditPart() {
+
+ public void getName(AccessibleEvent e) {
+ e.result = getLabelTextHelper(getFigure());
+ }
+ };
+ }
+ return accessibleEP;
+ }
+
+ /**
+ * @generated
+ */
+ private View getFontStyleOwnerView() {
+ return getPrimaryView();
+ }
+
+ /**
+ * @generated
+ */
+ protected void addNotationalListeners() {
+ super.addNotationalListeners();
+ addListenerFilter("PrimaryView", this, getPrimaryView()); //$NON-NLS-1$
+ }
+
+ /**
+ * @generated
+ */
+ protected void removeNotationalListeners() {
+ super.removeNotationalListeners();
+ removeListenerFilter("PrimaryView"); //$NON-NLS-1$
+ }
+
+ /**
+ * @generated
+ */
+ protected void handleNotificationEvent(Notification event) {
+ Object feature = event.getFeature();
+ if (NotationPackage.eINSTANCE.getFontStyle_FontColor().equals(feature)) {
+ Integer c = (Integer) event.getNewValue();
+ setFontColor(DiagramColorRegistry.getInstance().getColor(c));
+ } else if (NotationPackage.eINSTANCE.getFontStyle_Underline().equals(
+ feature)) {
+ refreshUnderline();
+ } else if (NotationPackage.eINSTANCE.getFontStyle_StrikeThrough()
+ .equals(feature)) {
+ refreshStrikeThrough();
+ } else if (NotationPackage.eINSTANCE.getFontStyle_FontHeight().equals(
+ feature)
+ || NotationPackage.eINSTANCE.getFontStyle_FontName().equals(
+ feature)
+ || NotationPackage.eINSTANCE.getFontStyle_Bold()
+ .equals(feature)
+ || NotationPackage.eINSTANCE.getFontStyle_Italic().equals(
+ feature)) {
+ refreshFont();
+ } else {
+ if (getParser() != null
+ && getParser().isAffectingEvent(event,
+ getParserOptions().intValue())) {
+ refreshLabel();
+ }
+ if (getParser() instanceof ISemanticParser) {
+ ISemanticParser modelParser = (ISemanticParser) getParser();
+ if (modelParser.areSemanticElementsAffected(null, event)) {
+ removeSemanticListeners();
+ if (resolveSemanticElement() != null) {
+ addSemanticListeners();
+ }
+ refreshLabel();
+ }
+ }
+ }
+ super.handleNotificationEvent(event);
+ }
+
+ /**
+ * @generated
+ */
+ protected IFigure createFigure() {
+ // Parent should assign one using setLabel() method
+ return null;
+ }
+
+}
diff --git a/org.eclipse.emf.refactor.comrel.diagram/src/comrel/diagram/edit/parts/AtomicUnitLabelTypeEditPart.java b/org.eclipse.emf.refactor.comrel.diagram/src/comrel/diagram/edit/parts/AtomicUnitLabelTypeEditPart.java
new file mode 100644
index 0000000..eb0b51a
--- /dev/null
+++ b/org.eclipse.emf.refactor.comrel.diagram/src/comrel/diagram/edit/parts/AtomicUnitLabelTypeEditPart.java
@@ -0,0 +1,576 @@
+/*
+ *
+ */
+package comrel.diagram.edit.parts;
+
+import java.util.Collections;
+import java.util.List;
+
+import org.eclipse.draw2d.IFigure;
+import org.eclipse.draw2d.Label;
+import org.eclipse.draw2d.geometry.Point;
+import org.eclipse.emf.common.notify.Notification;
+import org.eclipse.emf.ecore.EObject;
+import org.eclipse.emf.transaction.RunnableWithResult;
+import org.eclipse.gef.AccessibleEditPart;
+import org.eclipse.gef.EditPolicy;
+import org.eclipse.gef.Request;
+import org.eclipse.gef.requests.DirectEditRequest;
+import org.eclipse.gef.tools.DirectEditManager;
+import org.eclipse.gmf.runtime.common.ui.services.parser.IParser;
+import org.eclipse.gmf.runtime.common.ui.services.parser.IParserEditStatus;
+import org.eclipse.gmf.runtime.common.ui.services.parser.ParserEditStatus;
+import org.eclipse.gmf.runtime.common.ui.services.parser.ParserOptions;
+import org.eclipse.gmf.runtime.diagram.ui.editparts.CompartmentEditPart;
+import org.eclipse.gmf.runtime.diagram.ui.editparts.IGraphicalEditPart;
+import org.eclipse.gmf.runtime.diagram.ui.editparts.ITextAwareEditPart;
+import org.eclipse.gmf.runtime.diagram.ui.editpolicies.LabelDirectEditPolicy;
+import org.eclipse.gmf.runtime.diagram.ui.l10n.DiagramColorRegistry;
+import org.eclipse.gmf.runtime.diagram.ui.requests.RequestConstants;
+import org.eclipse.gmf.runtime.diagram.ui.tools.TextDirectEditManager;
+import org.eclipse.gmf.runtime.draw2d.ui.figures.WrappingLabel;
+import org.eclipse.gmf.runtime.emf.core.util.EObjectAdapter;
+import org.eclipse.gmf.runtime.emf.ui.services.parser.ISemanticParser;
+import org.eclipse.gmf.runtime.notation.FontStyle;
+import org.eclipse.gmf.runtime.notation.NotationPackage;
+import org.eclipse.gmf.runtime.notation.View;
+import org.eclipse.jface.text.contentassist.IContentAssistProcessor;
+import org.eclipse.jface.viewers.ICellEditorValidator;
+import org.eclipse.swt.SWT;
+import org.eclipse.swt.accessibility.AccessibleEvent;
+import org.eclipse.swt.graphics.Color;
+import org.eclipse.swt.graphics.FontData;
+import org.eclipse.swt.graphics.Image;
+
+import comrel.diagram.edit.policies.ComrelTextSelectionEditPolicy;
+import comrel.diagram.part.ComrelVisualIDRegistry;
+import comrel.diagram.providers.ComrelElementTypes;
+import comrel.diagram.providers.ComrelParserProvider;
+
+/**
+ * @generated
+ */
+public class AtomicUnitLabelTypeEditPart extends CompartmentEditPart implements
+ ITextAwareEditPart {
+
+ /**
+ * @generated
+ */
+ public static final int VISUAL_ID = 5085;
+
+ /**
+ * @generated
+ */
+ private DirectEditManager manager;
+
+ /**
+ * @generated
+ */
+ private IParser parser;
+
+ /**
+ * @generated
+ */
+ private List<?> parserElements;
+
+ /**
+ * @generated
+ */
+ private String defaultText;
+
+ /**
+ * @generated
+ */
+ public AtomicUnitLabelTypeEditPart(View view) {
+ super(view);
+ }
+
+ /**
+ * @generated
+ */
+ protected void createDefaultEditPolicies() {
+ super.createDefaultEditPolicies();
+ installEditPolicy(EditPolicy.SELECTION_FEEDBACK_ROLE,
+ new ComrelTextSelectionEditPolicy());
+ installEditPolicy(EditPolicy.DIRECT_EDIT_ROLE,
+ new LabelDirectEditPolicy());
+ installEditPolicy(EditPolicy.PRIMARY_DRAG_ROLE,
+ new CompositeRefactoringEditPart.NodeLabelDragPolicy());
+ }
+
+ /**
+ * @generated
+ */
+ protected String getLabelTextHelper(IFigure figure) {
+ if (figure instanceof WrappingLabel) {
+ return ((WrappingLabel) figure).getText();
+ } else {
+ return ((Label) figure).getText();
+ }
+ }
+
+ /**
+ * @generated
+ */
+ protected void setLabelTextHelper(IFigure figure, String text) {
+ if (figure instanceof WrappingLabel) {
+ ((WrappingLabel) figure).setText(text);
+ } else {
+ ((Label) figure).setText(text);
+ }
+ }
+
+ /**
+ * @generated
+ */
+ protected Image getLabelIconHelper(IFigure figure) {
+ if (figure instanceof WrappingLabel) {
+ return ((WrappingLabel) figure).getIcon();
+ } else {
+ return ((Label) figure).getIcon();
+ }
+ }
+
+ /**
+ * @generated
+ */
+ protected void setLabelIconHelper(IFigure figure, Image icon) {
+ if (figure instanceof WrappingLabel) {
+ ((WrappingLabel) figure).setIcon(icon);
+ } else {
+ ((Label) figure).setIcon(icon);
+ }
+ }
+
+ /**
+ * @generated
+ */
+ public void setLabel(WrappingLabel figure) {
+ unregisterVisuals();
+ setFigure(figure);
+ defaultText = getLabelTextHelper(figure);
+ registerVisuals();
+ refreshVisuals();
+ }
+
+ /**
+ * @generated
+ */
+ @SuppressWarnings("rawtypes")
+ protected List getModelChildren() {
+ return Collections.EMPTY_LIST;
+ }
+
+ /**
+ * @generated
+ */
+ public IGraphicalEditPart getChildBySemanticHint(String semanticHint) {
+ return null;
+ }
+
+ /**
+ * @generated
+ */
+ protected EObject getParserElement() {
+ return resolveSemanticElement();
+ }
+
+ /**
+ * @generated
+ */
+ protected Image getLabelIcon() {
+ return null;
+ }
+
+ /**
+ * @generated
+ */
+ protected String getLabelText() {
+ String text = null;
+ EObject parserElement = getParserElement();
+ if (parserElement != null && getParser() != null) {
+ text = getParser().getPrintString(
+ new EObjectAdapter(parserElement),
+ getParserOptions().intValue());
+ }
+ if (text == null || text.length() == 0) {
+ text = defaultText;
+ }
+ return text;
+ }
+
+ /**
+ * @generated
+ */
+ public void setLabelText(String text) {
+ setLabelTextHelper(getFigure(), text);
+ Object pdEditPolicy = getEditPolicy(EditPolicy.PRIMARY_DRAG_ROLE);
+ if (pdEditPolicy instanceof ComrelTextSelectionEditPolicy) {
+ ((ComrelTextSelectionEditPolicy) pdEditPolicy).refreshFeedback();
+ }
+ Object sfEditPolicy = getEditPolicy(EditPolicy.SELECTION_FEEDBACK_ROLE);
+ if (sfEditPolicy instanceof ComrelTextSelectionEditPolicy) {
+ ((ComrelTextSelectionEditPolicy) sfEditPolicy).refreshFeedback();
+ }
+ }
+
+ /**
+ * @generated
+ */
+ public String getEditText() {
+ if (getParserElement() == null || getParser() == null) {
+ return ""; //$NON-NLS-1$
+ }
+ return getParser().getEditString(
+ new EObjectAdapter(getParserElement()),
+ getParserOptions().intValue());
+ }
+
+ /**
+ * @generated
+ */
+ protected boolean isEditable() {
+ return getParser() != null;
+ }
+
+ /**
+ * @generated
+ */
+ public ICellEditorValidator getEditTextValidator() {
+ return new ICellEditorValidator() {
+
+ public String isValid(final Object value) {
+ if (value instanceof String) {
+ final EObject element = getParserElement();
+ final IParser parser = getParser();
+ try {
+ IParserEditStatus valid = (IParserEditStatus) getEditingDomain()
+ .runExclusive(
+ new RunnableWithResult.Impl<IParserEditStatus>() {
+
+ public void run() {
+ setResult(parser
+ .isValidEditString(
+ new EObjectAdapter(
+ element),
+ (String) value));
+ }
+ });
+ return valid.getCode() == ParserEditStatus.EDITABLE ? null
+ : valid.getMessage();
+ } catch (InterruptedException ie) {
+ ie.printStackTrace();
+ }
+ }
+
+ // shouldn't get here
+ return null;
+ }
+ };
+ }
+
+ /**
+ * @generated
+ */
+ public IContentAssistProcessor getCompletionProcessor() {
+ if (getParserElement() == null || getParser() == null) {
+ return null;
+ }
+ return getParser().getCompletionProcessor(
+ new EObjectAdapter(getParserElement()));
+ }
+
+ /**
+ * @generated
+ */
+ public ParserOptions getParserOptions() {
+ return ParserOptions.NONE;
+ }
+
+ /**
+ * @generated
+ */
+ public IParser getParser() {
+ if (parser == null) {
+ parser = ComrelParserProvider
+ .getParser(
+ ComrelElementTypes.AtomicUnit_2007,
+ getParserElement(),
+ ComrelVisualIDRegistry
+ .getType(comrel.diagram.edit.parts.AtomicUnitLabelTypeEditPart.VISUAL_ID));
+ }
+ return parser;
+ }
+
+ /**
+ * @generated
+ */
+ protected DirectEditManager getManager() {
+ if (manager == null) {
+ setManager(new TextDirectEditManager(this,
+ TextDirectEditManager.getTextCellEditorClass(this),
+ ComrelEditPartFactory.getTextCellEditorLocator(this)));
+ }
+ return manager;
+ }
+
+ /**
+ * @generated
+ */
+ protected void setManager(DirectEditManager manager) {
+ this.manager = manager;
+ }
+
+ /**
+ * @generated
+ */
+ protected void performDirectEdit() {
+ getManager().show();
+ }
+
+ /**
+ * @generated
+ */
+ protected void performDirectEdit(Point eventLocation) {
+ if (getManager().getClass() == TextDirectEditManager.class) {
+ ((TextDirectEditManager) getManager()).show(eventLocation
+ .getSWTPoint());
+ }
+ }
+
+ /**
+ * @generated
+ */
+ private void performDirectEdit(char initialCharacter) {
+ if (getManager() instanceof TextDirectEditManager) {
+ ((TextDirectEditManager) getManager()).show(initialCharacter);
+ } else {
+ performDirectEdit();
+ }
+ }
+
+ /**
+ * @generated
+ */
+ protected void performDirectEditRequest(Request request) {
+ final Request theRequest = request;
+ try {
+ getEditingDomain().runExclusive(new Runnable() {
+
+ public void run() {
+ if (isActive() && isEditable()) {
+ if (theRequest
+ .getExtendedData()
+ .get(RequestConstants.REQ_DIRECTEDIT_EXTENDEDDATA_INITIAL_CHAR) instanceof Character) {
+ Character initialChar = (Character) theRequest
+ .getExtendedData()
+ .get(RequestConstants.REQ_DIRECTEDIT_EXTENDEDDATA_INITIAL_CHAR);
+ performDirectEdit(initialChar.charValue());
+ } else if ((theRequest instanceof DirectEditRequest)
+ && (getEditText().equals(getLabelText()))) {
+ DirectEditRequest editRequest = (DirectEditRequest) theRequest;
+ performDirectEdit(editRequest.getLocation());
+ } else {
+ performDirectEdit();
+ }
+ }
+ }
+ });
+ } catch (InterruptedException e) {
+ e.printStackTrace();
+ }
+ }
+
+ /**
+ * @generated
+ */
+ protected void refreshVisuals() {
+ super.refreshVisuals();
+ refreshLabel();
+ refreshFont();
+ refreshFontColor();
+ refreshUnderline();
+ refreshStrikeThrough();
+ }
+
+ /**
+ * @generated
+ */
+ protected void refreshLabel() {
+ setLabelTextHelper(getFigure(), getLabelText());
+ setLabelIconHelper(getFigure(), getLabelIcon());
+ Object pdEditPolicy = getEditPolicy(EditPolicy.PRIMARY_DRAG_ROLE);
+ if (pdEditPolicy instanceof ComrelTextSelectionEditPolicy) {
+ ((ComrelTextSelectionEditPolicy) pdEditPolicy).refreshFeedback();
+ }
+ Object sfEditPolicy = getEditPolicy(EditPolicy.SELECTION_FEEDBACK_ROLE);
+ if (sfEditPolicy instanceof ComrelTextSelectionEditPolicy) {
+ ((ComrelTextSelectionEditPolicy) sfEditPolicy).refreshFeedback();
+ }
+ }
+
+ /**
+ * @generated
+ */
+ protected void refreshUnderline() {
+ FontStyle style = (FontStyle) getFontStyleOwnerView().getStyle(
+ NotationPackage.eINSTANCE.getFontStyle());
+ if (style != null && getFigure() instanceof WrappingLabel) {
+ ((WrappingLabel) getFigure()).setTextUnderline(style.isUnderline());
+ }
+ }
+
+ /**
+ * @generated
+ */
+ protected void refreshStrikeThrough() {
+ FontStyle style = (FontStyle) getFontStyleOwnerView().getStyle(
+ NotationPackage.eINSTANCE.getFontStyle());
+ if (style != null && getFigure() instanceof WrappingLabel) {
+ ((WrappingLabel) getFigure()).setTextStrikeThrough(style
+ .isStrikeThrough());
+ }
+ }
+
+ /**
+ * @generated
+ */
+ protected void refreshFont() {
+ FontStyle style = (FontStyle) getFontStyleOwnerView().getStyle(
+ NotationPackage.eINSTANCE.getFontStyle());
+ if (style != null) {
+ FontData fontData = new FontData(style.getFontName(),
+ style.getFontHeight(), (style.isBold() ? SWT.BOLD
+ : SWT.NORMAL)
+ | (style.isItalic() ? SWT.ITALIC : SWT.NORMAL));
+ setFont(fontData);
+ }
+ }
+
+ /**
+ * @generated
+ */
+ protected void setFontColor(Color color) {
+ getFigure().setForegroundColor(color);
+ }
+
+ /**
+ * @generated
+ */
+ protected void addSemanticListeners() {
+ if (getParser() instanceof ISemanticParser) {
+ EObject element = resolveSemanticElement();
+ parserElements = ((ISemanticParser) getParser())
+ .getSemanticElementsBeingParsed(element);
+ for (int i = 0; i < parserElements.size(); i++) {
+ addListenerFilter(
+ "SemanticModel" + i, this, (EObject) parserElements.get(i)); //$NON-NLS-1$
+ }
+ } else {
+ super.addSemanticListeners();
+ }
+ }
+
+ /**
+ * @generated
+ */
+ protected void removeSemanticListeners() {
+ if (parserElements != null) {
+ for (int i = 0; i < parserElements.size(); i++) {
+ removeListenerFilter("SemanticModel" + i); //$NON-NLS-1$
+ }
+ } else {
+ super.removeSemanticListeners();
+ }
+ }
+
+ /**
+ * @generated
+ */
+ protected AccessibleEditPart getAccessibleEditPart() {
+ if (accessibleEP == null) {
+ accessibleEP = new AccessibleGraphicalEditPart() {
+
+ public void getName(AccessibleEvent e) {
+ e.result = getLabelTextHelper(getFigure());
+ }
+ };
+ }
+ return accessibleEP;
+ }
+
+ /**
+ * @generated
+ */
+ private View getFontStyleOwnerView() {
+ return getPrimaryView();
+ }
+
+ /**
+ * @generated
+ */
+ protected void addNotationalListeners() {
+ super.addNotationalListeners();
+ addListenerFilter("PrimaryView", this, getPrimaryView()); //$NON-NLS-1$
+ }
+
+ /**
+ * @generated
+ */
+ protected void removeNotationalListeners() {
+ super.removeNotationalListeners();
+ removeListenerFilter("PrimaryView"); //$NON-NLS-1$
+ }
+
+ /**
+ * @generated
+ */
+ protected void handleNotificationEvent(Notification event) {
+ Object feature = event.getFeature();
+ if (NotationPackage.eINSTANCE.getFontStyle_FontColor().equals(feature)) {
+ Integer c = (Integer) event.getNewValue();
+ setFontColor(DiagramColorRegistry.getInstance().getColor(c));
+ } else if (NotationPackage.eINSTANCE.getFontStyle_Underline().equals(
+ feature)) {
+ refreshUnderline();
+ } else if (NotationPackage.eINSTANCE.getFontStyle_StrikeThrough()
+ .equals(feature)) {
+ refreshStrikeThrough();
+ } else if (NotationPackage.eINSTANCE.getFontStyle_FontHeight().equals(
+ feature)
+ || NotationPackage.eINSTANCE.getFontStyle_FontName().equals(
+ feature)
+ || NotationPackage.eINSTANCE.getFontStyle_Bold()
+ .equals(feature)
+ || NotationPackage.eINSTANCE.getFontStyle_Italic().equals(
+ feature)) {
+ refreshFont();
+ } else {
+ if (getParser() != null
+ && getParser().isAffectingEvent(event,
+ getParserOptions().intValue())) {
+ refreshLabel();
+ }
+ if (getParser() instanceof ISemanticParser) {
+ ISemanticParser modelParser = (ISemanticParser) getParser();
+ if (modelParser.areSemanticElementsAffected(null, event)) {
+ removeSemanticListeners();
+ if (resolveSemanticElement() != null) {
+ addSemanticListeners();
+ }
+ refreshLabel();
+ }
+ }
+ }
+ super.handleNotificationEvent(event);
+ }
+
+ /**
+ * @generated
+ */
+ protected IFigure createFigure() {
+ // Parent should assign one using setLabel() method
+ return null;
+ }
+
+}
diff --git a/org.eclipse.emf.refactor.comrel.diagram/src/comrel/diagram/edit/parts/CartesianQueuedUnit2EditPart.java b/org.eclipse.emf.refactor.comrel.diagram/src/comrel/diagram/edit/parts/CartesianQueuedUnit2EditPart.java
new file mode 100644
index 0000000..649b2d9
--- /dev/null
+++ b/org.eclipse.emf.refactor.comrel.diagram/src/comrel/diagram/edit/parts/CartesianQueuedUnit2EditPart.java
@@ -0,0 +1,437 @@
+/*
+ *
+ */
+package comrel.diagram.edit.parts;
+
+import org.eclipse.draw2d.IFigure;
+import org.eclipse.draw2d.MarginBorder;
+import org.eclipse.draw2d.PositionConstants;
+import org.eclipse.draw2d.RectangleFigure;
+import org.eclipse.draw2d.RoundedRectangle;
+import org.eclipse.draw2d.Shape;
+import org.eclipse.draw2d.StackLayout;
+import org.eclipse.draw2d.geometry.Dimension;
+import org.eclipse.gef.EditPart;
+import org.eclipse.gef.EditPolicy;
+import org.eclipse.gef.Request;
+import org.eclipse.gef.commands.Command;
+import org.eclipse.gef.editpolicies.LayoutEditPolicy;
+import org.eclipse.gef.editpolicies.NonResizableEditPolicy;
+import org.eclipse.gef.requests.CreateRequest;
+import org.eclipse.gmf.runtime.diagram.ui.editparts.AbstractBorderedShapeEditPart;
+import org.eclipse.gmf.runtime.diagram.ui.editparts.IBorderItemEditPart;
+import org.eclipse.gmf.runtime.diagram.ui.editparts.IGraphicalEditPart;
+import org.eclipse.gmf.runtime.diagram.ui.editpolicies.BorderItemSelectionEditPolicy;
+import org.eclipse.gmf.runtime.diagram.ui.editpolicies.CreationEditPolicy;
+import org.eclipse.gmf.runtime.diagram.ui.editpolicies.DragDropEditPolicy;
+import org.eclipse.gmf.runtime.diagram.ui.editpolicies.EditPolicyRoles;
+import org.eclipse.gmf.runtime.diagram.ui.figures.BorderItemLocator;
+import org.eclipse.gmf.runtime.draw2d.ui.figures.ConstrainedToolbarLayout;
+import org.eclipse.gmf.runtime.draw2d.ui.figures.WrappingLabel;
+import org.eclipse.gmf.runtime.gef.ui.figures.DefaultSizeNodeFigure;
+import org.eclipse.gmf.runtime.gef.ui.figures.NodeFigure;
+import org.eclipse.gmf.runtime.notation.View;
+import org.eclipse.swt.graphics.Color;
+
+import comrel.diagram.edit.parts.CartesianQueuedUnitEditPart.CartesianQueuedUnitFigure;
+import comrel.diagram.edit.parts.custom.Labels;
+import comrel.diagram.edit.policies.CartesianQueuedUnit2CanonicalEditPolicy;
+import comrel.diagram.edit.policies.CartesianQueuedUnit2ItemSemanticEditPolicy;
+import comrel.diagram.edit.policies.OpenDiagramEditPolicy;
+import comrel.diagram.part.ComrelVisualIDRegistry;
+
+/**
+ * @generated
+ */
+public class CartesianQueuedUnit2EditPart extends AbstractBorderedShapeEditPart {
+
+ /**
+ * @generated
+ */
+ public static final int VISUAL_ID = 3003;
+
+ /**
+ * @generated
+ */
+ protected IFigure contentPane;
+
+ /**
+ * @generated
+ */
+ protected IFigure primaryShape;
+
+ /**
+ * @generated
+ */
+ public CartesianQueuedUnit2EditPart(View view) {
+ super(view);
+ }
+
+ /**
+ * @generated
+ */
+ protected void createDefaultEditPolicies() {
+ installEditPolicy(EditPolicyRoles.CREATION_ROLE,
+ new CreationEditPolicy());
+ super.createDefaultEditPolicies();
+ installEditPolicy(EditPolicyRoles.SEMANTIC_ROLE,
+ new CartesianQueuedUnit2ItemSemanticEditPolicy());
+ installEditPolicy(EditPolicyRoles.DRAG_DROP_ROLE,
+ new DragDropEditPolicy());
+ installEditPolicy(EditPolicyRoles.CANONICAL_ROLE,
+ new CartesianQueuedUnit2CanonicalEditPolicy());
+ installEditPolicy(EditPolicy.LAYOUT_ROLE, createLayoutEditPolicy());
+ installEditPolicy(EditPolicyRoles.OPEN_ROLE,
+ new OpenDiagramEditPolicy());
+ // XXX need an SCR to runtime to have another abstract superclass that would let children add reasonable editpolicies
+ // removeEditPolicy(org.eclipse.gmf.runtime.diagram.ui.editpolicies.EditPolicyRoles.CONNECTION_HANDLES_ROLE);
+ }
+
+ /**
+ * @generated
+ */
+ protected LayoutEditPolicy createLayoutEditPolicy() {
+ org.eclipse.gmf.runtime.diagram.ui.editpolicies.LayoutEditPolicy lep = new org.eclipse.gmf.runtime.diagram.ui.editpolicies.LayoutEditPolicy() {
+
+ protected EditPolicy createChildEditPolicy(EditPart child) {
+ View childView = (View) child.getModel();
+ switch (ComrelVisualIDRegistry.getVisualID(childView)) {
+ case SingleInputPort2EditPart.VISUAL_ID:
+ case MultiInputPortEditPart.VISUAL_ID:
+ return new BorderItemSelectionEditPolicy();
+ }
+ EditPolicy result = child
+ .getEditPolicy(EditPolicy.PRIMARY_DRAG_ROLE);
+ if (result == null) {
+ result = new NonResizableEditPolicy();
+ }
+ return result;
+ }
+
+ protected Command getMoveChildrenCommand(Request request) {
+ return null;
+ }
+
+ protected Command getCreateCommand(CreateRequest request) {
+ return null;
+ }
+ };
+ return lep;
+ }
+
+ /**
+ * @generated NOT
+ */
+ protected IFigure createNodeShape() {
+ CartesianQueuedUnitFigure figure = new CartesianQueuedUnitFigure();
+ RectangleFigure compHelper = (RectangleFigure) figure.getChildren()
+ .get(1);
+ RectangleFigure compRef = (RectangleFigure) figure.getChildren().get(2);
+ Labels.setLabels(compHelper, compRef, true);
+ return primaryShape = figure;
+ }
+
+ /**
+ * @generated
+ */
+ public CartesianQueuedUnitFigure getPrimaryShape() {
+ return (CartesianQueuedUnitFigure) primaryShape;
+ }
+
+ /**
+ * @generated NOT
+ */
+ protected boolean addFixedChild(EditPart childEditPart) {
+ if (childEditPart instanceof CartesianQueuedUnitNameTypeLblStrict2EditPart) {
+ ((CartesianQueuedUnitNameTypeLblStrict2EditPart) childEditPart)
+ .setLabel(getPrimaryShape()
+ .getFigureCartesianQueuedUnitLabelFigure());
+ return true;
+ }
+ if (childEditPart instanceof CartesianQueuedUnitCartesianQueuedUnitHelperUnitsCompartment2EditPart) {
+ IFigure pane = getPrimaryShape()
+ .getCartesianQueuedUnitHelperUnitsCompartmentFigure();
+ setupContentPane(pane); // FIXME each comparment should handle his content pane in his own way
+ pane.add(((CartesianQueuedUnitCartesianQueuedUnitHelperUnitsCompartment2EditPart) childEditPart)
+ .getFigure());
+ return true;
+ }
+ if (childEditPart instanceof CartesianQueuedUnitCartesianQueuedUnitRefactoringUnitCompartment2EditPart) {
+ IFigure pane = getPrimaryShape()
+ .getCartesianQueuedUnitRefactoringUnitCompartmentFigure();
+ setupContentPane(pane); // FIXME each comparment should handle his content pane in his own way
+ pane.add(((CartesianQueuedUnitCartesianQueuedUnitRefactoringUnitCompartment2EditPart) childEditPart)
+ .getFigure());
+ return true;
+ }
+ if (childEditPart instanceof SingleInputPort2EditPart) {
+ BorderItemLocator locator = new BorderItemLocator(getMainFigure(),
+ PositionConstants.NORTH);
+ locator.setCurrentSideOfParent(PositionConstants.NORTH); // Position des Ports
+ locator.setPreferredSideOfParent(PositionConstants.NORTH); // Position des Ports
+ getBorderedFigure().getBorderItemContainer().add(
+ ((SingleInputPort2EditPart) childEditPart).getFigure(),
+ locator);
+ return true;
+ }
+ if (childEditPart instanceof MultiInputPortEditPart) {
+ BorderItemLocator locator = new BorderItemLocator(getMainFigure(),
+ PositionConstants.NORTH);
+ locator.setCurrentSideOfParent(PositionConstants.NORTH); // Position des Ports
+ locator.setPreferredSideOfParent(PositionConstants.NORTH); // Position des Ports
+ getBorderedFigure().getBorderItemContainer().add(
+ ((MultiInputPortEditPart) childEditPart).getFigure(),
+ locator);
+ return true;
+ }
+ return false;
+ }
+
+ /**
+ * @generated NOT
+ */
+ protected boolean removeFixedChild(EditPart childEditPart) {
+ if (childEditPart instanceof CartesianQueuedUnitNameTypeLblStrict2EditPart) {
+ return true;
+ }
+ if (childEditPart instanceof CartesianQueuedUnitCartesianQueuedUnitHelperUnitsCompartment2EditPart) {
+ IFigure pane = getPrimaryShape()
+ .getCartesianQueuedUnitHelperUnitsCompartmentFigure();
+ setupContentPane(pane); // FIXME each comparment should handle his content pane in his own way
+ pane.remove(((CartesianQueuedUnitCartesianQueuedUnitHelperUnitsCompartment2EditPart) childEditPart)
+ .getFigure());
+ return true;
+ }
+ if (childEditPart instanceof CartesianQueuedUnitCartesianQueuedUnitRefactoringUnitCompartment2EditPart) {
+ IFigure pane = getPrimaryShape()
+ .getCartesianQueuedUnitRefactoringUnitCompartmentFigure();
+ setupContentPane(pane); // FIXME each comparment should handle his content pane in his own way
+ pane.remove(((CartesianQueuedUnitCartesianQueuedUnitRefactoringUnitCompartment2EditPart) childEditPart)
+ .getFigure());
+ return true;
+ }
+ if (childEditPart instanceof SingleInputPort2EditPart) {
+ getBorderedFigure().getBorderItemContainer().remove(
+ ((SingleInputPort2EditPart) childEditPart).getFigure());
+ return true;
+ }
+ if (childEditPart instanceof MultiInputPortEditPart) {
+ // getBorderedFigure().getBorderItemContainer().remove(
+ // ((MultiInputPortEditPart) childEditPart).getFigure());
+ return true;
+ }
+ return false;
+ }
+
+ /**
+ * @generated
+ */
+ protected void addChildVisual(EditPart childEditPart, int index) {
+ if (addFixedChild(childEditPart)) {
+ return;
+ }
+ super.addChildVisual(childEditPart, -1);
+ }
+
+ /**
+ * @generated
+ */
+ protected void removeChildVisual(EditPart childEditPart) {
+ if (removeFixedChild(childEditPart)) {
+ return;
+ }
+ super.removeChildVisual(childEditPart);
+ }
+
+ /**
+ * @generated
+ */
+ protected IFigure getContentPaneFor(IGraphicalEditPart editPart) {
+ if (editPart instanceof CartesianQueuedUnitCartesianQueuedUnitHelperUnitsCompartment2EditPart) {
+ return getPrimaryShape()
+ .getCartesianQueuedUnitHelperUnitsCompartmentFigure();
+ }
+ if (editPart instanceof CartesianQueuedUnitCartesianQueuedUnitRefactoringUnitCompartment2EditPart) {
+ return getPrimaryShape()
+ .getCartesianQueuedUnitRefactoringUnitCompartmentFigure();
+ }
+ if (editPart instanceof IBorderItemEditPart) {
+ return getBorderedFigure().getBorderItemContainer();
+ }
+ return getContentPane();
+ }
+
+ /**
+ * @generated
+ */
+ protected NodeFigure createNodePlate() {
+ DefaultSizeNodeFigure result = new DefaultSizeNodeFigure(40, 40);
+ return result;
+ }
+
+ /**
+ * Creates figure for this edit part.
+ *
+ * Body of this method does not depend on settings in generation model
+ * so you may safely remove <i>generated</i> tag and modify it.
+ *
+ * @generated
+ */
+ protected NodeFigure createMainFigure() {
+ NodeFigure figure = createNodePlate();
+ figure.setLayoutManager(new StackLayout());
+ IFigure shape = createNodeShape();
+ figure.add(shape);
+ contentPane = setupContentPane(shape);
+ return figure;
+ }
+
+ /**
+ * Default implementation treats passed figure as content pane.
+ * Respects layout one may have set for generated figure.
+ * @param nodeShape instance of generated figure class
+ * @generated
+ */
+ protected IFigure setupContentPane(IFigure nodeShape) {
+ if (nodeShape.getLayoutManager() == null) {
+ ConstrainedToolbarLayout layout = new ConstrainedToolbarLayout();
+ layout.setSpacing(5);
+ nodeShape.setLayoutManager(layout);
+ }
+ return nodeShape; // use nodeShape itself as contentPane
+ }
+
+ /**
+ * @generated
+ */
+ public IFigure getContentPane() {
+ if (contentPane != null) {
+ return contentPane;
+ }
+ return super.getContentPane();
+ }
+
+ /**
+ * @generated
+ */
+ protected void setForegroundColor(Color color) {
+ if (primaryShape != null) {
+ primaryShape.setForegroundColor(color);
+ }
+ }
+
+ /**
+ * @generated
+ */
+ protected void setBackgroundColor(Color color) {
+ if (primaryShape != null) {
+ primaryShape.setBackgroundColor(color);
+ }
+ }
+
+ /**
+ * @generated
+ */
+ protected void setLineWidth(int width) {
+ if (primaryShape instanceof Shape) {
+ ((Shape) primaryShape).setLineWidth(width);
+ }
+ }
+
+ /**
+ * @generated
+ */
+ protected void setLineType(int style) {
+ if (primaryShape instanceof Shape) {
+ ((Shape) primaryShape).setLineStyle(style);
+ }
+ }
+
+ /**
+ * @generated
+ */
+ public EditPart getPrimaryChildEditPart() {
+ return getChildBySemanticHint(ComrelVisualIDRegistry
+ .getType(CartesianQueuedUnitNameTypeLblStrict2EditPart.VISUAL_ID));
+ }
+
+ /**
+ * @generated
+ */
+ public class CartesianQueuedUnitFigure extends RoundedRectangle {
+
+ /**
+ * @generated
+ */
+ private WrappingLabel fFigureCartesianQueuedUnitLabelFigure;
+ /**
+ * @generated
+ */
+ private RectangleFigure fCartesianQueuedUnitHelperUnitsCompartmentFigure;
+ /**
+ * @generated
+ */
+ private RectangleFigure fCartesianQueuedUnitRefactoringUnitCompartmentFigure;
+
+ /**
+ * @generated
+ */
+ public CartesianQueuedUnitFigure() {
+ this.setCornerDimensions(new Dimension(getMapMode().DPtoLP(8),
+ getMapMode().DPtoLP(8)));
+ this.setBorder(new MarginBorder(getMapMode().DPtoLP(5),
+ getMapMode().DPtoLP(5), getMapMode().DPtoLP(5),
+ getMapMode().DPtoLP(5)));
+ createContents();
+ }
+
+ /**
+ * @generated
+ */
+ private void createContents() {
+
+ fFigureCartesianQueuedUnitLabelFigure = new WrappingLabel();
+ fFigureCartesianQueuedUnitLabelFigure
+ .setText("CartesianQueuedUnit");
+ fFigureCartesianQueuedUnitLabelFigure.setMaximumSize(new Dimension(
+ getMapMode().DPtoLP(10000), getMapMode().DPtoLP(50)));
+
+ this.add(fFigureCartesianQueuedUnitLabelFigure);
+
+ fCartesianQueuedUnitHelperUnitsCompartmentFigure = new RectangleFigure();
+ fCartesianQueuedUnitHelperUnitsCompartmentFigure.setOutline(false);
+
+ this.add(fCartesianQueuedUnitHelperUnitsCompartmentFigure);
+
+ fCartesianQueuedUnitRefactoringUnitCompartmentFigure = new RectangleFigure();
+ fCartesianQueuedUnitRefactoringUnitCompartmentFigure
+ .setOutline(false);
+
+ this.add(fCartesianQueuedUnitRefactoringUnitCompartmentFigure);
+
+ }
+
+ /**
+ * @generated
+ */
+ public WrappingLabel getFigureCartesianQueuedUnitLabelFigure() {
+ return fFigureCartesianQueuedUnitLabelFigure;
+ }
+
+ /**
+ * @generated
+ */
+ public RectangleFigure getCartesianQueuedUnitHelperUnitsCompartmentFigure() {
+ return fCartesianQueuedUnitHelperUnitsCompartmentFigure;
+ }
+
+ /**
+ * @generated
+ */
+ public RectangleFigure getCartesianQueuedUnitRefactoringUnitCompartmentFigure() {
+ return fCartesianQueuedUnitRefactoringUnitCompartmentFigure;
+ }
+
+ }
+
+}
diff --git a/org.eclipse.emf.refactor.comrel.diagram/src/comrel/diagram/edit/parts/CartesianQueuedUnit3EditPart.java b/org.eclipse.emf.refactor.comrel.diagram/src/comrel/diagram/edit/parts/CartesianQueuedUnit3EditPart.java
new file mode 100644
index 0000000..9a10d2f
--- /dev/null
+++ b/org.eclipse.emf.refactor.comrel.diagram/src/comrel/diagram/edit/parts/CartesianQueuedUnit3EditPart.java
@@ -0,0 +1,437 @@
+/*
+ *
+ */
+package comrel.diagram.edit.parts;
+
+import org.eclipse.draw2d.IFigure;
+import org.eclipse.draw2d.MarginBorder;
+import org.eclipse.draw2d.PositionConstants;
+import org.eclipse.draw2d.RectangleFigure;
+import org.eclipse.draw2d.RoundedRectangle;
+import org.eclipse.draw2d.Shape;
+import org.eclipse.draw2d.StackLayout;
+import org.eclipse.draw2d.geometry.Dimension;
+import org.eclipse.gef.EditPart;
+import org.eclipse.gef.EditPolicy;
+import org.eclipse.gef.Request;
+import org.eclipse.gef.commands.Command;
+import org.eclipse.gef.editpolicies.LayoutEditPolicy;
+import org.eclipse.gef.editpolicies.NonResizableEditPolicy;
+import org.eclipse.gef.requests.CreateRequest;
+import org.eclipse.gmf.runtime.diagram.ui.editparts.AbstractBorderedShapeEditPart;
+import org.eclipse.gmf.runtime.diagram.ui.editparts.IBorderItemEditPart;
+import org.eclipse.gmf.runtime.diagram.ui.editparts.IGraphicalEditPart;
+import org.eclipse.gmf.runtime.diagram.ui.editpolicies.BorderItemSelectionEditPolicy;
+import org.eclipse.gmf.runtime.diagram.ui.editpolicies.CreationEditPolicy;
+import org.eclipse.gmf.runtime.diagram.ui.editpolicies.DragDropEditPolicy;
+import org.eclipse.gmf.runtime.diagram.ui.editpolicies.EditPolicyRoles;
+import org.eclipse.gmf.runtime.diagram.ui.figures.BorderItemLocator;
+import org.eclipse.gmf.runtime.draw2d.ui.figures.ConstrainedToolbarLayout;
+import org.eclipse.gmf.runtime.draw2d.ui.figures.WrappingLabel;
+import org.eclipse.gmf.runtime.gef.ui.figures.DefaultSizeNodeFigure;
+import org.eclipse.gmf.runtime.gef.ui.figures.NodeFigure;
+import org.eclipse.gmf.runtime.notation.View;
+import org.eclipse.swt.graphics.Color;
+
+import comrel.diagram.edit.parts.CartesianQueuedUnitEditPart.CartesianQueuedUnitFigure;
+import comrel.diagram.edit.parts.custom.Labels;
+import comrel.diagram.edit.policies.CartesianQueuedUnit3CanonicalEditPolicy;
+import comrel.diagram.edit.policies.CartesianQueuedUnit3ItemSemanticEditPolicy;
+import comrel.diagram.edit.policies.OpenDiagramEditPolicy;
+import comrel.diagram.part.ComrelVisualIDRegistry;
+
+/**
+ * @generated
+ */
+public class CartesianQueuedUnit3EditPart extends AbstractBorderedShapeEditPart {
+
+ /**
+ * @generated
+ */
+ public static final int VISUAL_ID = 3007;
+
+ /**
+ * @generated
+ */
+ protected IFigure contentPane;
+
+ /**
+ * @generated
+ */
+ protected IFigure primaryShape;
+
+ /**
+ * @generated
+ */
+ public CartesianQueuedUnit3EditPart(View view) {
+ super(view);
+ }
+
+ /**
+ * @generated
+ */
+ protected void createDefaultEditPolicies() {
+ installEditPolicy(EditPolicyRoles.CREATION_ROLE,
+ new CreationEditPolicy());
+ super.createDefaultEditPolicies();
+ installEditPolicy(EditPolicyRoles.SEMANTIC_ROLE,
+ new CartesianQueuedUnit3ItemSemanticEditPolicy());
+ installEditPolicy(EditPolicyRoles.DRAG_DROP_ROLE,
+ new DragDropEditPolicy());
+ installEditPolicy(EditPolicyRoles.CANONICAL_ROLE,
+ new CartesianQueuedUnit3CanonicalEditPolicy());
+ installEditPolicy(EditPolicy.LAYOUT_ROLE, createLayoutEditPolicy());
+ installEditPolicy(EditPolicyRoles.OPEN_ROLE,
+ new OpenDiagramEditPolicy());
+ // XXX need an SCR to runtime to have another abstract superclass that would let children add reasonable editpolicies
+ // removeEditPolicy(org.eclipse.gmf.runtime.diagram.ui.editpolicies.EditPolicyRoles.CONNECTION_HANDLES_ROLE);
+ }
+
+ /**
+ * @generated
+ */
+ protected LayoutEditPolicy createLayoutEditPolicy() {
+ org.eclipse.gmf.runtime.diagram.ui.editpolicies.LayoutEditPolicy lep = new org.eclipse.gmf.runtime.diagram.ui.editpolicies.LayoutEditPolicy() {
+
+ protected EditPolicy createChildEditPolicy(EditPart child) {
+ View childView = (View) child.getModel();
+ switch (ComrelVisualIDRegistry.getVisualID(childView)) {
+ case SingleInputPort2EditPart.VISUAL_ID:
+ case MultiInputPortEditPart.VISUAL_ID:
+ return new BorderItemSelectionEditPolicy();
+ }
+ EditPolicy result = child
+ .getEditPolicy(EditPolicy.PRIMARY_DRAG_ROLE);
+ if (result == null) {
+ result = new NonResizableEditPolicy();
+ }
+ return result;
+ }
+
+ protected Command getMoveChildrenCommand(Request request) {
+ return null;
+ }
+
+ protected Command getCreateCommand(CreateRequest request) {
+ return null;
+ }
+ };
+ return lep;
+ }
+
+ /**
+ * @generated NOT
+ */
+ protected IFigure createNodeShape() {
+ CartesianQueuedUnitFigure figure = new CartesianQueuedUnitFigure();
+ RectangleFigure compHelper = (RectangleFigure) figure.getChildren()
+ .get(1);
+ RectangleFigure compRef = (RectangleFigure) figure.getChildren().get(2);
+ Labels.setLabels(compHelper, compRef, true);
+ return primaryShape = figure;
+ }
+
+ /**
+ * @generated
+ */
+ public CartesianQueuedUnitFigure getPrimaryShape() {
+ return (CartesianQueuedUnitFigure) primaryShape;
+ }
+
+ /**
+ * @generated NOT
+ */
+ protected boolean addFixedChild(EditPart childEditPart) {
+ if (childEditPart instanceof CartesianQueuedUnitNameTypeLblStrict3EditPart) {
+ ((CartesianQueuedUnitNameTypeLblStrict3EditPart) childEditPart)
+ .setLabel(getPrimaryShape()
+ .getFigureCartesianQueuedUnitLabelFigure());
+ return true;
+ }
+ if (childEditPart instanceof CartesianQueuedUnitCartesianQueuedUnitHelperUnitsCompartment3EditPart) {
+ IFigure pane = getPrimaryShape()
+ .getCartesianQueuedUnitHelperUnitsCompartmentFigure();
+ setupContentPane(pane); // FIXME each comparment should handle his content pane in his own way
+ pane.add(((CartesianQueuedUnitCartesianQueuedUnitHelperUnitsCompartment3EditPart) childEditPart)
+ .getFigure());
+ return true;
+ }
+ if (childEditPart instanceof CartesianQueuedUnitCartesianQueuedUnitRefactoringUnitCompartment3EditPart) {
+ IFigure pane = getPrimaryShape()
+ .getCartesianQueuedUnitRefactoringUnitCompartmentFigure();
+ setupContentPane(pane); // FIXME each comparment should handle his content pane in his own way
+ pane.add(((CartesianQueuedUnitCartesianQueuedUnitRefactoringUnitCompartment3EditPart) childEditPart)
+ .getFigure());
+ return true;
+ }
+ if (childEditPart instanceof SingleInputPort2EditPart) {
+ BorderItemLocator locator = new BorderItemLocator(getMainFigure(),
+ PositionConstants.NORTH);
+ locator.setCurrentSideOfParent(PositionConstants.NORTH); // Position des Ports
+ locator.setPreferredSideOfParent(PositionConstants.NORTH); // Position des Ports
+ getBorderedFigure().getBorderItemContainer().add(
+ ((SingleInputPort2EditPart) childEditPart).getFigure(),
+ locator);
+ return true;
+ }
+ if (childEditPart instanceof MultiInputPortEditPart) {
+ BorderItemLocator locator = new BorderItemLocator(getMainFigure(),
+ PositionConstants.NORTH);
+ locator.setCurrentSideOfParent(PositionConstants.NORTH); // Position des Ports
+ locator.setPreferredSideOfParent(PositionConstants.NORTH); // Position des Ports
+ getBorderedFigure().getBorderItemContainer().add(
+ ((MultiInputPortEditPart) childEditPart).getFigure(),
+ locator);
+ return true;
+ }
+ return false;
+ }
+
+ /**
+ * @generated NOT
+ */
+ protected boolean removeFixedChild(EditPart childEditPart) {
+ if (childEditPart instanceof CartesianQueuedUnitNameTypeLblStrict3EditPart) {
+ return true;
+ }
+ if (childEditPart instanceof CartesianQueuedUnitCartesianQueuedUnitHelperUnitsCompartment3EditPart) {
+ IFigure pane = getPrimaryShape()
+ .getCartesianQueuedUnitHelperUnitsCompartmentFigure();
+ setupContentPane(pane); // FIXME each comparment should handle his content pane in his own way
+ pane.remove(((CartesianQueuedUnitCartesianQueuedUnitHelperUnitsCompartment3EditPart) childEditPart)
+ .getFigure());
+ return true;
+ }
+ if (childEditPart instanceof CartesianQueuedUnitCartesianQueuedUnitRefactoringUnitCompartment3EditPart) {
+ IFigure pane = getPrimaryShape()
+ .getCartesianQueuedUnitRefactoringUnitCompartmentFigure();
+ setupContentPane(pane); // FIXME each comparment should handle his content pane in his own way
+ pane.remove(((CartesianQueuedUnitCartesianQueuedUnitRefactoringUnitCompartment3EditPart) childEditPart)
+ .getFigure());
+ return true;
+ }
+ if (childEditPart instanceof SingleInputPort2EditPart) {
+ getBorderedFigure().getBorderItemContainer().remove(
+ ((SingleInputPort2EditPart) childEditPart).getFigure());
+ return true;
+ }
+ if (childEditPart instanceof MultiInputPortEditPart) {
+ // getBorderedFigure().getBorderItemContainer().remove(
+ // ((MultiInputPortEditPart) childEditPart).getFigure());
+ return true;
+ }
+ return false;
+ }
+
+ /**
+ * @generated
+ */
+ protected void addChildVisual(EditPart childEditPart, int index) {
+ if (addFixedChild(childEditPart)) {
+ return;
+ }
+ super.addChildVisual(childEditPart, -1);
+ }
+
+ /**
+ * @generated
+ */
+ protected void removeChildVisual(EditPart childEditPart) {
+ if (removeFixedChild(childEditPart)) {
+ return;
+ }
+ super.removeChildVisual(childEditPart);
+ }
+
+ /**
+ * @generated
+ */
+ protected IFigure getContentPaneFor(IGraphicalEditPart editPart) {
+ if (editPart instanceof CartesianQueuedUnitCartesianQueuedUnitHelperUnitsCompartment3EditPart) {
+ return getPrimaryShape()
+ .getCartesianQueuedUnitHelperUnitsCompartmentFigure();
+ }
+ if (editPart instanceof CartesianQueuedUnitCartesianQueuedUnitRefactoringUnitCompartment3EditPart) {
+ return getPrimaryShape()
+ .getCartesianQueuedUnitRefactoringUnitCompartmentFigure();
+ }
+ if (editPart instanceof IBorderItemEditPart) {
+ return getBorderedFigure().getBorderItemContainer();
+ }
+ return getContentPane();
+ }
+
+ /**
+ * @generated
+ */
+ protected NodeFigure createNodePlate() {
+ DefaultSizeNodeFigure result = new DefaultSizeNodeFigure(40, 40);
+ return result;
+ }
+
+ /**
+ * Creates figure for this edit part.
+ *
+ * Body of this method does not depend on settings in generation model
+ * so you may safely remove <i>generated</i> tag and modify it.
+ *
+ * @generated
+ */
+ protected NodeFigure createMainFigure() {
+ NodeFigure figure = createNodePlate();
+ figure.setLayoutManager(new StackLayout());
+ IFigure shape = createNodeShape();
+ figure.add(shape);
+ contentPane = setupContentPane(shape);
+ return figure;
+ }
+
+ /**
+ * Default implementation treats passed figure as content pane.
+ * Respects layout one may have set for generated figure.
+ * @param nodeShape instance of generated figure class
+ * @generated
+ */
+ protected IFigure setupContentPane(IFigure nodeShape) {
+ if (nodeShape.getLayoutManager() == null) {
+ ConstrainedToolbarLayout layout = new ConstrainedToolbarLayout();
+ layout.setSpacing(5);
+ nodeShape.setLayoutManager(layout);
+ }
+ return nodeShape; // use nodeShape itself as contentPane
+ }
+
+ /**
+ * @generated
+ */
+ public IFigure getContentPane() {
+ if (contentPane != null) {
+ return contentPane;
+ }
+ return super.getContentPane();
+ }
+
+ /**
+ * @generated
+ */
+ protected void setForegroundColor(Color color) {
+ if (primaryShape != null) {
+ primaryShape.setForegroundColor(color);
+ }
+ }
+
+ /**
+ * @generated
+ */
+ protected void setBackgroundColor(Color color) {
+ if (primaryShape != null) {
+ primaryShape.setBackgroundColor(color);
+ }
+ }
+
+ /**
+ * @generated
+ */
+ protected void setLineWidth(int width) {
+ if (primaryShape instanceof Shape) {
+ ((Shape) primaryShape).setLineWidth(width);
+ }
+ }
+
+ /**
+ * @generated
+ */
+ protected void setLineType(int style) {
+ if (primaryShape instanceof Shape) {
+ ((Shape) primaryShape).setLineStyle(style);
+ }
+ }
+
+ /**
+ * @generated
+ */
+ public EditPart getPrimaryChildEditPart() {
+ return getChildBySemanticHint(ComrelVisualIDRegistry
+ .getType(CartesianQueuedUnitNameTypeLblStrict3EditPart.VISUAL_ID));
+ }
+
+ /**
+ * @generated
+ */
+ public class CartesianQueuedUnitFigure extends RoundedRectangle {
+
+ /**
+ * @generated
+ */
+ private WrappingLabel fFigureCartesianQueuedUnitLabelFigure;
+ /**
+ * @generated
+ */
+ private RectangleFigure fCartesianQueuedUnitHelperUnitsCompartmentFigure;
+ /**
+ * @generated
+ */
+ private RectangleFigure fCartesianQueuedUnitRefactoringUnitCompartmentFigure;
+
+ /**
+ * @generated
+ */
+ public CartesianQueuedUnitFigure() {
+ this.setCornerDimensions(new Dimension(getMapMode().DPtoLP(8),
+ getMapMode().DPtoLP(8)));
+ this.setBorder(new MarginBorder(getMapMode().DPtoLP(5),
+ getMapMode().DPtoLP(5), getMapMode().DPtoLP(5),
+ getMapMode().DPtoLP(5)));
+ createContents();
+ }
+
+ /**
+ * @generated
+ */
+ private void createContents() {
+
+ fFigureCartesianQueuedUnitLabelFigure = new WrappingLabel();
+ fFigureCartesianQueuedUnitLabelFigure
+ .setText("CartesianQueuedUnit");
+ fFigureCartesianQueuedUnitLabelFigure.setMaximumSize(new Dimension(
+ getMapMode().DPtoLP(10000), getMapMode().DPtoLP(50)));
+
+ this.add(fFigureCartesianQueuedUnitLabelFigure);
+
+ fCartesianQueuedUnitHelperUnitsCompartmentFigure = new RectangleFigure();
+ fCartesianQueuedUnitHelperUnitsCompartmentFigure.setOutline(false);
+
+ this.add(fCartesianQueuedUnitHelperUnitsCompartmentFigure);
+
+ fCartesianQueuedUnitRefactoringUnitCompartmentFigure = new RectangleFigure();
+ fCartesianQueuedUnitRefactoringUnitCompartmentFigure
+ .setOutline(false);
+
+ this.add(fCartesianQueuedUnitRefactoringUnitCompartmentFigure);
+
+ }
+
+ /**
+ * @generated
+ */
+ public WrappingLabel getFigureCartesianQueuedUnitLabelFigure() {
+ return fFigureCartesianQueuedUnitLabelFigure;
+ }
+
+ /**
+ * @generated
+ */
+ public RectangleFigure getCartesianQueuedUnitHelperUnitsCompartmentFigure() {
+ return fCartesianQueuedUnitHelperUnitsCompartmentFigure;
+ }
+
+ /**
+ * @generated
+ */
+ public RectangleFigure getCartesianQueuedUnitRefactoringUnitCompartmentFigure() {
+ return fCartesianQueuedUnitRefactoringUnitCompartmentFigure;
+ }
+
+ }
+
+}
diff --git a/org.eclipse.emf.refactor.comrel.diagram/src/comrel/diagram/edit/parts/CartesianQueuedUnit4EditPart.java b/org.eclipse.emf.refactor.comrel.diagram/src/comrel/diagram/edit/parts/CartesianQueuedUnit4EditPart.java
new file mode 100644
index 0000000..a642d95
--- /dev/null
+++ b/org.eclipse.emf.refactor.comrel.diagram/src/comrel/diagram/edit/parts/CartesianQueuedUnit4EditPart.java
@@ -0,0 +1,437 @@
+/*
+ *
+ */
+package comrel.diagram.edit.parts;
+
+import org.eclipse.draw2d.IFigure;
+import org.eclipse.draw2d.MarginBorder;
+import org.eclipse.draw2d.PositionConstants;
+import org.eclipse.draw2d.RectangleFigure;
+import org.eclipse.draw2d.RoundedRectangle;
+import org.eclipse.draw2d.Shape;
+import org.eclipse.draw2d.StackLayout;
+import org.eclipse.draw2d.geometry.Dimension;
+import org.eclipse.gef.EditPart;
+import org.eclipse.gef.EditPolicy;
+import org.eclipse.gef.Request;
+import org.eclipse.gef.commands.Command;
+import org.eclipse.gef.editpolicies.LayoutEditPolicy;
+import org.eclipse.gef.editpolicies.NonResizableEditPolicy;
+import org.eclipse.gef.requests.CreateRequest;
+import org.eclipse.gmf.runtime.diagram.ui.editparts.AbstractBorderedShapeEditPart;
+import org.eclipse.gmf.runtime.diagram.ui.editparts.IBorderItemEditPart;
+import org.eclipse.gmf.runtime.diagram.ui.editparts.IGraphicalEditPart;
+import org.eclipse.gmf.runtime.diagram.ui.editpolicies.BorderItemSelectionEditPolicy;
+import org.eclipse.gmf.runtime.diagram.ui.editpolicies.CreationEditPolicy;
+import org.eclipse.gmf.runtime.diagram.ui.editpolicies.DragDropEditPolicy;
+import org.eclipse.gmf.runtime.diagram.ui.editpolicies.EditPolicyRoles;
+import org.eclipse.gmf.runtime.diagram.ui.figures.BorderItemLocator;
+import org.eclipse.gmf.runtime.draw2d.ui.figures.ConstrainedToolbarLayout;
+import org.eclipse.gmf.runtime.draw2d.ui.figures.WrappingLabel;
+import org.eclipse.gmf.runtime.gef.ui.figures.DefaultSizeNodeFigure;
+import org.eclipse.gmf.runtime.gef.ui.figures.NodeFigure;
+import org.eclipse.gmf.runtime.notation.View;
+import org.eclipse.swt.graphics.Color;
+
+import comrel.diagram.edit.parts.CartesianQueuedUnitEditPart.CartesianQueuedUnitFigure;
+import comrel.diagram.edit.parts.custom.Labels;
+import comrel.diagram.edit.policies.CartesianQueuedUnit4CanonicalEditPolicy;
+import comrel.diagram.edit.policies.CartesianQueuedUnit4ItemSemanticEditPolicy;
+import comrel.diagram.edit.policies.OpenDiagramEditPolicy;
+import comrel.diagram.part.ComrelVisualIDRegistry;
+
+/**
+ * @generated
+ */
+public class CartesianQueuedUnit4EditPart extends AbstractBorderedShapeEditPart {
+
+ /**
+ * @generated
+ */
+ public static final int VISUAL_ID = 3025;
+
+ /**
+ * @generated
+ */
+ protected IFigure contentPane;
+
+ /**
+ * @generated
+ */
+ protected IFigure primaryShape;
+
+ /**
+ * @generated
+ */
+ public CartesianQueuedUnit4EditPart(View view) {
+ super(view);
+ }
+
+ /**
+ * @generated
+ */
+ protected void createDefaultEditPolicies() {
+ installEditPolicy(EditPolicyRoles.CREATION_ROLE,
+ new CreationEditPolicy());
+ super.createDefaultEditPolicies();
+ installEditPolicy(EditPolicyRoles.SEMANTIC_ROLE,
+ new CartesianQueuedUnit4ItemSemanticEditPolicy());
+ installEditPolicy(EditPolicyRoles.DRAG_DROP_ROLE,
+ new DragDropEditPolicy());
+ installEditPolicy(EditPolicyRoles.CANONICAL_ROLE,
+ new CartesianQueuedUnit4CanonicalEditPolicy());
+ installEditPolicy(EditPolicy.LAYOUT_ROLE, createLayoutEditPolicy());
+ installEditPolicy(EditPolicyRoles.OPEN_ROLE,
+ new OpenDiagramEditPolicy());
+ // XXX need an SCR to runtime to have another abstract superclass that would let children add reasonable editpolicies
+ // removeEditPolicy(org.eclipse.gmf.runtime.diagram.ui.editpolicies.EditPolicyRoles.CONNECTION_HANDLES_ROLE);
+ }
+
+ /**
+ * @generated
+ */
+ protected LayoutEditPolicy createLayoutEditPolicy() {
+ org.eclipse.gmf.runtime.diagram.ui.editpolicies.LayoutEditPolicy lep = new org.eclipse.gmf.runtime.diagram.ui.editpolicies.LayoutEditPolicy() {
+
+ protected EditPolicy createChildEditPolicy(EditPart child) {
+ View childView = (View) child.getModel();
+ switch (ComrelVisualIDRegistry.getVisualID(childView)) {
+ case SingleInputPort2EditPart.VISUAL_ID:
+ case MultiInputPortEditPart.VISUAL_ID:
+ return new BorderItemSelectionEditPolicy();
+ }
+ EditPolicy result = child
+ .getEditPolicy(EditPolicy.PRIMARY_DRAG_ROLE);
+ if (result == null) {
+ result = new NonResizableEditPolicy();
+ }
+ return result;
+ }
+
+ protected Command getMoveChildrenCommand(Request request) {
+ return null;
+ }
+
+ protected Command getCreateCommand(CreateRequest request) {
+ return null;
+ }
+ };
+ return lep;
+ }
+
+ /**
+ * @generated NOT
+ */
+ protected IFigure createNodeShape() {
+ CartesianQueuedUnitFigure figure = new CartesianQueuedUnitFigure();
+ RectangleFigure compHelper = (RectangleFigure) figure.getChildren()
+ .get(1);
+ RectangleFigure compRef = (RectangleFigure) figure.getChildren().get(2);
+ Labels.setLabels(compHelper, compRef, true);
+ return primaryShape = figure;
+ }
+
+ /**
+ * @generated
+ */
+ public CartesianQueuedUnitFigure getPrimaryShape() {
+ return (CartesianQueuedUnitFigure) primaryShape;
+ }
+
+ /**
+ * @generated NOT
+ */
+ protected boolean addFixedChild(EditPart childEditPart) {
+ if (childEditPart instanceof CartesianQueuedUnitNameTypeLblStrict4EditPart) {
+ ((CartesianQueuedUnitNameTypeLblStrict4EditPart) childEditPart)
+ .setLabel(getPrimaryShape()
+ .getFigureCartesianQueuedUnitLabelFigure());
+ return true;
+ }
+ if (childEditPart instanceof CartesianQueuedUnitCartesianQueuedUnitHelperUnitsCompartment4EditPart) {
+ IFigure pane = getPrimaryShape()
+ .getCartesianQueuedUnitHelperUnitsCompartmentFigure();
+ setupContentPane(pane); // FIXME each comparment should handle his content pane in his own way
+ pane.add(((CartesianQueuedUnitCartesianQueuedUnitHelperUnitsCompartment4EditPart) childEditPart)
+ .getFigure());
+ return true;
+ }
+ if (childEditPart instanceof CartesianQueuedUnitCartesianQueuedUnitRefactoringUnitCompartment4EditPart) {
+ IFigure pane = getPrimaryShape()
+ .getCartesianQueuedUnitRefactoringUnitCompartmentFigure();
+ setupContentPane(pane); // FIXME each comparment should handle his content pane in his own way
+ pane.add(((CartesianQueuedUnitCartesianQueuedUnitRefactoringUnitCompartment4EditPart) childEditPart)
+ .getFigure());
+ return true;
+ }
+ if (childEditPart instanceof SingleInputPort2EditPart) {
+ BorderItemLocator locator = new BorderItemLocator(getMainFigure(),
+ PositionConstants.NORTH);
+ locator.setCurrentSideOfParent(PositionConstants.NORTH); // Position des Ports
+ locator.setPreferredSideOfParent(PositionConstants.NORTH); // Position des Ports
+ getBorderedFigure().getBorderItemContainer().add(
+ ((SingleInputPort2EditPart) childEditPart).getFigure(),
+ locator);
+ return true;
+ }
+ if (childEditPart instanceof MultiInputPortEditPart) {
+ BorderItemLocator locator = new BorderItemLocator(getMainFigure(),
+ PositionConstants.NORTH);
+ locator.setCurrentSideOfParent(PositionConstants.NORTH); // Position des Ports
+ locator.setPreferredSideOfParent(PositionConstants.NORTH); // Position des Ports
+ getBorderedFigure().getBorderItemContainer().add(
+ ((MultiInputPortEditPart) childEditPart).getFigure(),
+ locator);
+ return true;
+ }
+ return false;
+ }
+
+ /**
+ * @generated NOT
+ */
+ protected boolean removeFixedChild(EditPart childEditPart) {
+ if (childEditPart instanceof CartesianQueuedUnitNameTypeLblStrict4EditPart) {
+ return true;
+ }
+ if (childEditPart instanceof CartesianQueuedUnitCartesianQueuedUnitHelperUnitsCompartment4EditPart) {
+ IFigure pane = getPrimaryShape()
+ .getCartesianQueuedUnitHelperUnitsCompartmentFigure();
+ setupContentPane(pane); // FIXME each comparment should handle his content pane in his own way
+ pane.remove(((CartesianQueuedUnitCartesianQueuedUnitHelperUnitsCompartment4EditPart) childEditPart)
+ .getFigure());
+ return true;
+ }
+ if (childEditPart instanceof CartesianQueuedUnitCartesianQueuedUnitRefactoringUnitCompartment4EditPart) {
+ IFigure pane = getPrimaryShape()
+ .getCartesianQueuedUnitRefactoringUnitCompartmentFigure();
+ setupContentPane(pane); // FIXME each comparment should handle his content pane in his own way
+ pane.remove(((CartesianQueuedUnitCartesianQueuedUnitRefactoringUnitCompartment4EditPart) childEditPart)
+ .getFigure());
+ return true;
+ }
+ if (childEditPart instanceof SingleInputPort2EditPart) {
+ getBorderedFigure().getBorderItemContainer().remove(
+ ((SingleInputPort2EditPart) childEditPart).getFigure());
+ return true;
+ }
+ if (childEditPart instanceof MultiInputPortEditPart) {
+ // getBorderedFigure().getBorderItemContainer().remove(
+ // ((MultiInputPortEditPart) childEditPart).getFigure());
+ return true;
+ }
+ return false;
+ }
+
+ /**
+ * @generated
+ */
+ protected void addChildVisual(EditPart childEditPart, int index) {
+ if (addFixedChild(childEditPart)) {
+ return;
+ }
+ super.addChildVisual(childEditPart, -1);
+ }
+
+ /**
+ * @generated
+ */
+ protected void removeChildVisual(EditPart childEditPart) {
+ if (removeFixedChild(childEditPart)) {
+ return;
+ }
+ super.removeChildVisual(childEditPart);
+ }
+
+ /**
+ * @generated
+ */
+ protected IFigure getContentPaneFor(IGraphicalEditPart editPart) {
+ if (editPart instanceof CartesianQueuedUnitCartesianQueuedUnitHelperUnitsCompartment4EditPart) {
+ return getPrimaryShape()
+ .getCartesianQueuedUnitHelperUnitsCompartmentFigure();
+ }
+ if (editPart instanceof CartesianQueuedUnitCartesianQueuedUnitRefactoringUnitCompartment4EditPart) {
+ return getPrimaryShape()
+ .getCartesianQueuedUnitRefactoringUnitCompartmentFigure();
+ }
+ if (editPart instanceof IBorderItemEditPart) {
+ return getBorderedFigure().getBorderItemContainer();
+ }
+ return getContentPane();
+ }
+
+ /**
+ * @generated
+ */
+ protected NodeFigure createNodePlate() {
+ DefaultSizeNodeFigure result = new DefaultSizeNodeFigure(40, 40);
+ return result;
+ }
+
+ /**
+ * Creates figure for this edit part.
+ *
+ * Body of this method does not depend on settings in generation model
+ * so you may safely remove <i>generated</i> tag and modify it.
+ *
+ * @generated
+ */
+ protected NodeFigure createMainFigure() {
+ NodeFigure figure = createNodePlate();
+ figure.setLayoutManager(new StackLayout());
+ IFigure shape = createNodeShape();
+ figure.add(shape);
+ contentPane = setupContentPane(shape);
+ return figure;
+ }
+
+ /**
+ * Default implementation treats passed figure as content pane.
+ * Respects layout one may have set for generated figure.
+ * @param nodeShape instance of generated figure class
+ * @generated
+ */
+ protected IFigure setupContentPane(IFigure nodeShape) {
+ if (nodeShape.getLayoutManager() == null) {
+ ConstrainedToolbarLayout layout = new ConstrainedToolbarLayout();
+ layout.setSpacing(5);
+ nodeShape.setLayoutManager(layout);
+ }
+ return nodeShape; // use nodeShape itself as contentPane
+ }
+
+ /**
+ * @generated
+ */
+ public IFigure getContentPane() {
+ if (contentPane != null) {
+ return contentPane;
+ }
+ return super.getContentPane();
+ }
+
+ /**
+ * @generated
+ */
+ protected void setForegroundColor(Color color) {
+ if (primaryShape != null) {
+ primaryShape.setForegroundColor(color);
+ }
+ }
+
+ /**
+ * @generated
+ */
+ protected void setBackgroundColor(Color color) {
+ if (primaryShape != null) {
+ primaryShape.setBackgroundColor(color);
+ }
+ }
+
+ /**
+ * @generated
+ */
+ protected void setLineWidth(int width) {
+ if (primaryShape instanceof Shape) {
+ ((Shape) primaryShape).setLineWidth(width);
+ }
+ }
+
+ /**
+ * @generated
+ */
+ protected void setLineType(int style) {
+ if (primaryShape instanceof Shape) {
+ ((Shape) primaryShape).setLineStyle(style);
+ }
+ }
+
+ /**
+ * @generated
+ */
+ public EditPart getPrimaryChildEditPart() {
+ return getChildBySemanticHint(ComrelVisualIDRegistry
+ .getType(CartesianQueuedUnitNameTypeLblStrict4EditPart.VISUAL_ID));
+ }
+
+ /**
+ * @generated
+ */
+ public class CartesianQueuedUnitFigure extends RoundedRectangle {
+
+ /**
+ * @generated
+ */
+ private WrappingLabel fFigureCartesianQueuedUnitLabelFigure;
+ /**
+ * @generated
+ */
+ private RectangleFigure fCartesianQueuedUnitHelperUnitsCompartmentFigure;
+ /**
+ * @generated
+ */
+ private RectangleFigure fCartesianQueuedUnitRefactoringUnitCompartmentFigure;
+
+ /**
+ * @generated
+ */
+ public CartesianQueuedUnitFigure() {
+ this.setCornerDimensions(new Dimension(getMapMode().DPtoLP(8),
+ getMapMode().DPtoLP(8)));
+ this.setBorder(new MarginBorder(getMapMode().DPtoLP(5),
+ getMapMode().DPtoLP(5), getMapMode().DPtoLP(5),
+ getMapMode().DPtoLP(5)));
+ createContents();
+ }
+
+ /**
+ * @generated
+ */
+ private void createContents() {
+
+ fFigureCartesianQueuedUnitLabelFigure = new WrappingLabel();
+ fFigureCartesianQueuedUnitLabelFigure
+ .setText("CartesianQueuedUnit");
+ fFigureCartesianQueuedUnitLabelFigure.setMaximumSize(new Dimension(
+ getMapMode().DPtoLP(10000), getMapMode().DPtoLP(50)));
+
+ this.add(fFigureCartesianQueuedUnitLabelFigure);
+
+ fCartesianQueuedUnitHelperUnitsCompartmentFigure = new RectangleFigure();
+ fCartesianQueuedUnitHelperUnitsCompartmentFigure.setOutline(false);
+
+ this.add(fCartesianQueuedUnitHelperUnitsCompartmentFigure);
+
+ fCartesianQueuedUnitRefactoringUnitCompartmentFigure = new RectangleFigure();
+ fCartesianQueuedUnitRefactoringUnitCompartmentFigure
+ .setOutline(false);
+
+ this.add(fCartesianQueuedUnitRefactoringUnitCompartmentFigure);
+
+ }
+
+ /**
+ * @generated
+ */
+ public WrappingLabel getFigureCartesianQueuedUnitLabelFigure() {
+ return fFigureCartesianQueuedUnitLabelFigure;
+ }
+
+ /**
+ * @generated
+ */
+ public RectangleFigure getCartesianQueuedUnitHelperUnitsCompartmentFigure() {
+ return fCartesianQueuedUnitHelperUnitsCompartmentFigure;
+ }
+
+ /**
+ * @generated
+ */
+ public RectangleFigure getCartesianQueuedUnitRefactoringUnitCompartmentFigure() {
+ return fCartesianQueuedUnitRefactoringUnitCompartmentFigure;
+ }
+
+ }
+
+}
diff --git a/org.eclipse.emf.refactor.comrel.diagram/src/comrel/diagram/edit/parts/CartesianQueuedUnit5EditPart.java b/org.eclipse.emf.refactor.comrel.diagram/src/comrel/diagram/edit/parts/CartesianQueuedUnit5EditPart.java
new file mode 100644
index 0000000..4fd669a
--- /dev/null
+++ b/org.eclipse.emf.refactor.comrel.diagram/src/comrel/diagram/edit/parts/CartesianQueuedUnit5EditPart.java
@@ -0,0 +1,437 @@
+/*
+ *
+ */
+package comrel.diagram.edit.parts;
+
+import org.eclipse.draw2d.IFigure;
+import org.eclipse.draw2d.MarginBorder;
+import org.eclipse.draw2d.PositionConstants;
+import org.eclipse.draw2d.RectangleFigure;
+import org.eclipse.draw2d.RoundedRectangle;
+import org.eclipse.draw2d.Shape;
+import org.eclipse.draw2d.StackLayout;
+import org.eclipse.draw2d.geometry.Dimension;
+import org.eclipse.gef.EditPart;
+import org.eclipse.gef.EditPolicy;
+import org.eclipse.gef.Request;
+import org.eclipse.gef.commands.Command;
+import org.eclipse.gef.editpolicies.LayoutEditPolicy;
+import org.eclipse.gef.editpolicies.NonResizableEditPolicy;
+import org.eclipse.gef.requests.CreateRequest;
+import org.eclipse.gmf.runtime.diagram.ui.editparts.AbstractBorderedShapeEditPart;
+import org.eclipse.gmf.runtime.diagram.ui.editparts.IBorderItemEditPart;
+import org.eclipse.gmf.runtime.diagram.ui.editparts.IGraphicalEditPart;
+import org.eclipse.gmf.runtime.diagram.ui.editpolicies.BorderItemSelectionEditPolicy;
+import org.eclipse.gmf.runtime.diagram.ui.editpolicies.CreationEditPolicy;
+import org.eclipse.gmf.runtime.diagram.ui.editpolicies.DragDropEditPolicy;
+import org.eclipse.gmf.runtime.diagram.ui.editpolicies.EditPolicyRoles;
+import org.eclipse.gmf.runtime.diagram.ui.figures.BorderItemLocator;
+import org.eclipse.gmf.runtime.draw2d.ui.figures.ConstrainedToolbarLayout;
+import org.eclipse.gmf.runtime.draw2d.ui.figures.WrappingLabel;
+import org.eclipse.gmf.runtime.gef.ui.figures.DefaultSizeNodeFigure;
+import org.eclipse.gmf.runtime.gef.ui.figures.NodeFigure;
+import org.eclipse.gmf.runtime.notation.View;
+import org.eclipse.swt.graphics.Color;
+
+import comrel.diagram.edit.parts.CartesianQueuedUnitEditPart.CartesianQueuedUnitFigure;
+import comrel.diagram.edit.parts.custom.Labels;
+import comrel.diagram.edit.policies.CartesianQueuedUnit5CanonicalEditPolicy;
+import comrel.diagram.edit.policies.CartesianQueuedUnit5ItemSemanticEditPolicy;
+import comrel.diagram.edit.policies.OpenDiagramEditPolicy;
+import comrel.diagram.part.ComrelVisualIDRegistry;
+
+/**
+ * @generated
+ */
+public class CartesianQueuedUnit5EditPart extends AbstractBorderedShapeEditPart {
+
+ /**
+ * @generated
+ */
+ public static final int VISUAL_ID = 3029;
+
+ /**
+ * @generated
+ */
+ protected IFigure contentPane;
+
+ /**
+ * @generated
+ */
+ protected IFigure primaryShape;
+
+ /**
+ * @generated
+ */
+ public CartesianQueuedUnit5EditPart(View view) {
+ super(view);
+ }
+
+ /**
+ * @generated
+ */
+ protected void createDefaultEditPolicies() {
+ installEditPolicy(EditPolicyRoles.CREATION_ROLE,
+ new CreationEditPolicy());
+ super.createDefaultEditPolicies();
+ installEditPolicy(EditPolicyRoles.SEMANTIC_ROLE,
+ new CartesianQueuedUnit5ItemSemanticEditPolicy());
+ installEditPolicy(EditPolicyRoles.DRAG_DROP_ROLE,
+ new DragDropEditPolicy());
+ installEditPolicy(EditPolicyRoles.CANONICAL_ROLE,
+ new CartesianQueuedUnit5CanonicalEditPolicy());
+ installEditPolicy(EditPolicy.LAYOUT_ROLE, createLayoutEditPolicy());
+ installEditPolicy(EditPolicyRoles.OPEN_ROLE,
+ new OpenDiagramEditPolicy());
+ // XXX need an SCR to runtime to have another abstract superclass that would let children add reasonable editpolicies
+ // removeEditPolicy(org.eclipse.gmf.runtime.diagram.ui.editpolicies.EditPolicyRoles.CONNECTION_HANDLES_ROLE);
+ }
+
+ /**
+ * @generated
+ */
+ protected LayoutEditPolicy createLayoutEditPolicy() {
+ org.eclipse.gmf.runtime.diagram.ui.editpolicies.LayoutEditPolicy lep = new org.eclipse.gmf.runtime.diagram.ui.editpolicies.LayoutEditPolicy() {
+
+ protected EditPolicy createChildEditPolicy(EditPart child) {
+ View childView = (View) child.getModel();
+ switch (ComrelVisualIDRegistry.getVisualID(childView)) {
+ case SingleInputPort2EditPart.VISUAL_ID:
+ case MultiInputPortEditPart.VISUAL_ID:
+ return new BorderItemSelectionEditPolicy();
+ }
+ EditPolicy result = child
+ .getEditPolicy(EditPolicy.PRIMARY_DRAG_ROLE);
+ if (result == null) {
+ result = new NonResizableEditPolicy();
+ }
+ return result;
+ }
+
+ protected Command getMoveChildrenCommand(Request request) {
+ return null;
+ }
+
+ protected Command getCreateCommand(CreateRequest request) {
+ return null;
+ }
+ };
+ return lep;
+ }
+
+ /**
+ * @generated NOT
+ */
+ protected IFigure createNodeShape() {
+ CartesianQueuedUnitFigure figure = new CartesianQueuedUnitFigure();
+ RectangleFigure compHelper = (RectangleFigure) figure.getChildren()
+ .get(1);
+ RectangleFigure compRef = (RectangleFigure) figure.getChildren().get(2);
+ Labels.setLabels(compHelper, compRef, true);
+ return primaryShape = figure;
+ }
+
+ /**
+ * @generated
+ */
+ public CartesianQueuedUnitFigure getPrimaryShape() {
+ return (CartesianQueuedUnitFigure) primaryShape;
+ }
+
+ /**
+ * @generated NOT
+ */
+ protected boolean addFixedChild(EditPart childEditPart) {
+ if (childEditPart instanceof CartesianQueuedUnitNameTypeLblStrict5EditPart) {
+ ((CartesianQueuedUnitNameTypeLblStrict5EditPart) childEditPart)
+ .setLabel(getPrimaryShape()
+ .getFigureCartesianQueuedUnitLabelFigure());
+ return true;
+ }
+ if (childEditPart instanceof CartesianQueuedUnitCartesianQueuedUnitHelperUnitsCompartment5EditPart) {
+ IFigure pane = getPrimaryShape()
+ .getCartesianQueuedUnitHelperUnitsCompartmentFigure();
+ setupContentPane(pane); // FIXME each comparment should handle his content pane in his own way
+ pane.add(((CartesianQueuedUnitCartesianQueuedUnitHelperUnitsCompartment5EditPart) childEditPart)
+ .getFigure());
+ return true;
+ }
+ if (childEditPart instanceof CartesianQueuedUnitCartesianQueuedUnitRefactoringUnitCompartment5EditPart) {
+ IFigure pane = getPrimaryShape()
+ .getCartesianQueuedUnitRefactoringUnitCompartmentFigure();
+ setupContentPane(pane); // FIXME each comparment should handle his content pane in his own way
+ pane.add(((CartesianQueuedUnitCartesianQueuedUnitRefactoringUnitCompartment5EditPart) childEditPart)
+ .getFigure());
+ return true;
+ }
+ if (childEditPart instanceof SingleInputPort2EditPart) {
+ BorderItemLocator locator = new BorderItemLocator(getMainFigure(),
+ PositionConstants.NORTH);
+ locator.setCurrentSideOfParent(PositionConstants.NORTH); // Position des Ports
+ locator.setPreferredSideOfParent(PositionConstants.NORTH); // Position des Ports
+ getBorderedFigure().getBorderItemContainer().add(
+ ((SingleInputPort2EditPart) childEditPart).getFigure(),
+ locator);
+ return true;
+ }
+ if (childEditPart instanceof MultiInputPortEditPart) {
+ BorderItemLocator locator = new BorderItemLocator(getMainFigure(),
+ PositionConstants.NORTH);
+ locator.setCurrentSideOfParent(PositionConstants.NORTH); // Position des Ports
+ locator.setPreferredSideOfParent(PositionConstants.NORTH); // Position des Ports
+ getBorderedFigure().getBorderItemContainer().add(
+ ((MultiInputPortEditPart) childEditPart).getFigure(),
+ locator);
+ return true;
+ }
+ return false;
+ }
+
+ /**
+ * @generated NOT
+ */
+ protected boolean removeFixedChild(EditPart childEditPart) {
+ if (childEditPart instanceof CartesianQueuedUnitNameTypeLblStrict5EditPart) {
+ return true;
+ }
+ if (childEditPart instanceof CartesianQueuedUnitCartesianQueuedUnitHelperUnitsCompartment5EditPart) {
+ IFigure pane = getPrimaryShape()
+ .getCartesianQueuedUnitHelperUnitsCompartmentFigure();
+ setupContentPane(pane); // FIXME each comparment should handle his content pane in his own way
+ pane.remove(((CartesianQueuedUnitCartesianQueuedUnitHelperUnitsCompartment5EditPart) childEditPart)
+ .getFigure());
+ return true;
+ }
+ if (childEditPart instanceof CartesianQueuedUnitCartesianQueuedUnitRefactoringUnitCompartment5EditPart) {
+ IFigure pane = getPrimaryShape()
+ .getCartesianQueuedUnitRefactoringUnitCompartmentFigure();
+ setupContentPane(pane); // FIXME each comparment should handle his content pane in his own way
+ pane.remove(((CartesianQueuedUnitCartesianQueuedUnitRefactoringUnitCompartment5EditPart) childEditPart)
+ .getFigure());
+ return true;
+ }
+ if (childEditPart instanceof SingleInputPort2EditPart) {
+ getBorderedFigure().getBorderItemContainer().remove(
+ ((SingleInputPort2EditPart) childEditPart).getFigure());
+ return true;
+ }
+ if (childEditPart instanceof MultiInputPortEditPart) {
+ // getBorderedFigure().getBorderItemContainer().remove(
+ // ((MultiInputPortEditPart) childEditPart).getFigure());
+ return true;
+ }
+ return false;
+ }
+
+ /**
+ * @generated
+ */
+ protected void addChildVisual(EditPart childEditPart, int index) {
+ if (addFixedChild(childEditPart)) {
+ return;
+ }
+ super.addChildVisual(childEditPart, -1);
+ }
+
+ /**
+ * @generated
+ */
+ protected void removeChildVisual(EditPart childEditPart) {
+ if (removeFixedChild(childEditPart)) {
+ return;
+ }
+ super.removeChildVisual(childEditPart);
+ }
+
+ /**
+ * @generated
+ */
+ protected IFigure getContentPaneFor(IGraphicalEditPart editPart) {
+ if (editPart instanceof CartesianQueuedUnitCartesianQueuedUnitHelperUnitsCompartment5EditPart) {
+ return getPrimaryShape()
+ .getCartesianQueuedUnitHelperUnitsCompartmentFigure();
+ }
+ if (editPart instanceof CartesianQueuedUnitCartesianQueuedUnitRefactoringUnitCompartment5EditPart) {
+ return getPrimaryShape()
+ .getCartesianQueuedUnitRefactoringUnitCompartmentFigure();
+ }
+ if (editPart instanceof IBorderItemEditPart) {
+ return getBorderedFigure().getBorderItemContainer();
+ }
+ return getContentPane();
+ }
+
+ /**
+ * @generated
+ */
+ protected NodeFigure createNodePlate() {
+ DefaultSizeNodeFigure result = new DefaultSizeNodeFigure(40, 40);
+ return result;
+ }
+
+ /**
+ * Creates figure for this edit part.
+ *
+ * Body of this method does not depend on settings in generation model
+ * so you may safely remove <i>generated</i> tag and modify it.
+ *
+ * @generated
+ */
+ protected NodeFigure createMainFigure() {
+ NodeFigure figure = createNodePlate();
+ figure.setLayoutManager(new StackLayout());
+ IFigure shape = createNodeShape();
+ figure.add(shape);
+ contentPane = setupContentPane(shape);
+ return figure;
+ }
+
+ /**
+ * Default implementation treats passed figure as content pane.
+ * Respects layout one may have set for generated figure.
+ * @param nodeShape instance of generated figure class
+ * @generated
+ */
+ protected IFigure setupContentPane(IFigure nodeShape) {
+ if (nodeShape.getLayoutManager() == null) {
+ ConstrainedToolbarLayout layout = new ConstrainedToolbarLayout();
+ layout.setSpacing(5);
+ nodeShape.setLayoutManager(layout);
+ }
+ return nodeShape; // use nodeShape itself as contentPane
+ }
+
+ /**
+ * @generated
+ */
+ public IFigure getContentPane() {
+ if (contentPane != null) {
+ return contentPane;
+ }
+ return super.getContentPane();
+ }
+
+ /**
+ * @generated
+ */
+ protected void setForegroundColor(Color color) {
+ if (primaryShape != null) {
+ primaryShape.setForegroundColor(color);
+ }
+ }
+
+ /**
+ * @generated
+ */
+ protected void setBackgroundColor(Color color) {
+ if (primaryShape != null) {
+ primaryShape.setBackgroundColor(color);
+ }
+ }
+
+ /**
+ * @generated
+ */
+ protected void setLineWidth(int width) {
+ if (primaryShape instanceof Shape) {
+ ((Shape) primaryShape).setLineWidth(width);
+ }
+ }
+
+ /**
+ * @generated
+ */
+ protected void setLineType(int style) {
+ if (primaryShape instanceof Shape) {
+ ((Shape) primaryShape).setLineStyle(style);
+ }
+ }
+
+ /**
+ * @generated
+ */
+ public EditPart getPrimaryChildEditPart() {
+ return getChildBySemanticHint(ComrelVisualIDRegistry
+ .getType(CartesianQueuedUnitNameTypeLblStrict5EditPart.VISUAL_ID));
+ }
+
+ /**
+ * @generated
+ */
+ public class CartesianQueuedUnitFigure extends RoundedRectangle {
+
+ /**
+ * @generated
+ */
+ private WrappingLabel fFigureCartesianQueuedUnitLabelFigure;
+ /**
+ * @generated
+ */
+ private RectangleFigure fCartesianQueuedUnitHelperUnitsCompartmentFigure;
+ /**
+ * @generated
+ */
+ private RectangleFigure fCartesianQueuedUnitRefactoringUnitCompartmentFigure;
+
+ /**
+ * @generated
+ */
+ public CartesianQueuedUnitFigure() {
+ this.setCornerDimensions(new Dimension(getMapMode().DPtoLP(8),
+ getMapMode().DPtoLP(8)));
+ this.setBorder(new MarginBorder(getMapMode().DPtoLP(5),
+ getMapMode().DPtoLP(5), getMapMode().DPtoLP(5),
+ getMapMode().DPtoLP(5)));
+ createContents();
+ }
+
+ /**
+ * @generated
+ */
+ private void createContents() {
+
+ fFigureCartesianQueuedUnitLabelFigure = new WrappingLabel();
+ fFigureCartesianQueuedUnitLabelFigure
+ .setText("CartesianQueuedUnit");
+ fFigureCartesianQueuedUnitLabelFigure.setMaximumSize(new Dimension(
+ getMapMode().DPtoLP(10000), getMapMode().DPtoLP(50)));
+
+ this.add(fFigureCartesianQueuedUnitLabelFigure);
+
+ fCartesianQueuedUnitHelperUnitsCompartmentFigure = new RectangleFigure();
+ fCartesianQueuedUnitHelperUnitsCompartmentFigure.setOutline(false);
+
+ this.add(fCartesianQueuedUnitHelperUnitsCompartmentFigure);
+
+ fCartesianQueuedUnitRefactoringUnitCompartmentFigure = new RectangleFigure();
+ fCartesianQueuedUnitRefactoringUnitCompartmentFigure
+ .setOutline(false);
+
+ this.add(fCartesianQueuedUnitRefactoringUnitCompartmentFigure);
+
+ }
+
+ /**
+ * @generated
+ */
+ public WrappingLabel getFigureCartesianQueuedUnitLabelFigure() {
+ return fFigureCartesianQueuedUnitLabelFigure;
+ }
+
+ /**
+ * @generated
+ */
+ public RectangleFigure getCartesianQueuedUnitHelperUnitsCompartmentFigure() {
+ return fCartesianQueuedUnitHelperUnitsCompartmentFigure;
+ }
+
+ /**
+ * @generated
+ */
+ public RectangleFigure getCartesianQueuedUnitRefactoringUnitCompartmentFigure() {
+ return fCartesianQueuedUnitRefactoringUnitCompartmentFigure;
+ }
+
+ }
+
+}
diff --git a/org.eclipse.emf.refactor.comrel.diagram/src/comrel/diagram/edit/parts/CartesianQueuedUnit6EditPart.java b/org.eclipse.emf.refactor.comrel.diagram/src/comrel/diagram/edit/parts/CartesianQueuedUnit6EditPart.java
new file mode 100644
index 0000000..ea7c698
--- /dev/null
+++ b/org.eclipse.emf.refactor.comrel.diagram/src/comrel/diagram/edit/parts/CartesianQueuedUnit6EditPart.java
@@ -0,0 +1,437 @@
+/*
+ *
+ */
+package comrel.diagram.edit.parts;
+
+import org.eclipse.draw2d.IFigure;
+import org.eclipse.draw2d.MarginBorder;
+import org.eclipse.draw2d.PositionConstants;
+import org.eclipse.draw2d.RectangleFigure;
+import org.eclipse.draw2d.RoundedRectangle;
+import org.eclipse.draw2d.Shape;
+import org.eclipse.draw2d.StackLayout;
+import org.eclipse.draw2d.geometry.Dimension;
+import org.eclipse.gef.EditPart;
+import org.eclipse.gef.EditPolicy;
+import org.eclipse.gef.Request;
+import org.eclipse.gef.commands.Command;
+import org.eclipse.gef.editpolicies.LayoutEditPolicy;
+import org.eclipse.gef.editpolicies.NonResizableEditPolicy;
+import org.eclipse.gef.requests.CreateRequest;
+import org.eclipse.gmf.runtime.diagram.ui.editparts.AbstractBorderedShapeEditPart;
+import org.eclipse.gmf.runtime.diagram.ui.editparts.IBorderItemEditPart;
+import org.eclipse.gmf.runtime.diagram.ui.editparts.IGraphicalEditPart;
+import org.eclipse.gmf.runtime.diagram.ui.editpolicies.BorderItemSelectionEditPolicy;
+import org.eclipse.gmf.runtime.diagram.ui.editpolicies.CreationEditPolicy;
+import org.eclipse.gmf.runtime.diagram.ui.editpolicies.DragDropEditPolicy;
+import org.eclipse.gmf.runtime.diagram.ui.editpolicies.EditPolicyRoles;
+import org.eclipse.gmf.runtime.diagram.ui.figures.BorderItemLocator;
+import org.eclipse.gmf.runtime.draw2d.ui.figures.ConstrainedToolbarLayout;
+import org.eclipse.gmf.runtime.draw2d.ui.figures.WrappingLabel;
+import org.eclipse.gmf.runtime.gef.ui.figures.DefaultSizeNodeFigure;
+import org.eclipse.gmf.runtime.gef.ui.figures.NodeFigure;
+import org.eclipse.gmf.runtime.notation.View;
+import org.eclipse.swt.graphics.Color;
+
+import comrel.diagram.edit.parts.CartesianQueuedUnitEditPart.CartesianQueuedUnitFigure;
+import comrel.diagram.edit.parts.custom.Labels;
+import comrel.diagram.edit.policies.CartesianQueuedUnit6CanonicalEditPolicy;
+import comrel.diagram.edit.policies.CartesianQueuedUnit6ItemSemanticEditPolicy;
+import comrel.diagram.edit.policies.OpenDiagramEditPolicy;
+import comrel.diagram.part.ComrelVisualIDRegistry;
+
+/**
+ * @generated
+ */
+public class CartesianQueuedUnit6EditPart extends AbstractBorderedShapeEditPart {
+
+ /**
+ * @generated
+ */
+ public static final int VISUAL_ID = 3033;
+
+ /**
+ * @generated
+ */
+ protected IFigure contentPane;
+
+ /**
+ * @generated
+ */
+ protected IFigure primaryShape;
+
+ /**
+ * @generated
+ */
+ public CartesianQueuedUnit6EditPart(View view) {
+ super(view);
+ }
+
+ /**
+ * @generated
+ */
+ protected void createDefaultEditPolicies() {
+ installEditPolicy(EditPolicyRoles.CREATION_ROLE,
+ new CreationEditPolicy());
+ super.createDefaultEditPolicies();
+ installEditPolicy(EditPolicyRoles.SEMANTIC_ROLE,
+ new CartesianQueuedUnit6ItemSemanticEditPolicy());
+ installEditPolicy(EditPolicyRoles.DRAG_DROP_ROLE,
+ new DragDropEditPolicy());
+ installEditPolicy(EditPolicyRoles.CANONICAL_ROLE,
+ new CartesianQueuedUnit6CanonicalEditPolicy());
+ installEditPolicy(EditPolicy.LAYOUT_ROLE, createLayoutEditPolicy());
+ installEditPolicy(EditPolicyRoles.OPEN_ROLE,
+ new OpenDiagramEditPolicy());
+ // XXX need an SCR to runtime to have another abstract superclass that would let children add reasonable editpolicies
+ // removeEditPolicy(org.eclipse.gmf.runtime.diagram.ui.editpolicies.EditPolicyRoles.CONNECTION_HANDLES_ROLE);
+ }
+
+ /**
+ * @generated
+ */
+ protected LayoutEditPolicy createLayoutEditPolicy() {
+ org.eclipse.gmf.runtime.diagram.ui.editpolicies.LayoutEditPolicy lep = new org.eclipse.gmf.runtime.diagram.ui.editpolicies.LayoutEditPolicy() {
+
+ protected EditPolicy createChildEditPolicy(EditPart child) {
+ View childView = (View) child.getModel();
+ switch (ComrelVisualIDRegistry.getVisualID(childView)) {
+ case SingleInputPort2EditPart.VISUAL_ID:
+ case MultiInputPortEditPart.VISUAL_ID:
+ return new BorderItemSelectionEditPolicy();
+ }
+ EditPolicy result = child
+ .getEditPolicy(EditPolicy.PRIMARY_DRAG_ROLE);
+ if (result == null) {
+ result = new NonResizableEditPolicy();
+ }
+ return result;
+ }
+
+ protected Command getMoveChildrenCommand(Request request) {
+ return null;
+ }
+
+ protected Command getCreateCommand(CreateRequest request) {
+ return null;
+ }
+ };
+ return lep;
+ }
+
+ /**
+ * @generated NOT
+ */
+ protected IFigure createNodeShape() {
+ CartesianQueuedUnitFigure figure = new CartesianQueuedUnitFigure();
+ RectangleFigure compHelper = (RectangleFigure) figure.getChildren()
+ .get(1);
+ RectangleFigure compRef = (RectangleFigure) figure.getChildren().get(2);
+ Labels.setLabels(compHelper, compRef, true);
+ return primaryShape = figure;
+ }
+
+ /**
+ * @generated
+ */
+ public CartesianQueuedUnitFigure getPrimaryShape() {
+ return (CartesianQueuedUnitFigure) primaryShape;
+ }
+
+ /**
+ * @generated NOT
+ */
+ protected boolean addFixedChild(EditPart childEditPart) {
+ if (childEditPart instanceof CartesianQueuedUnitNameTypeLblStrict6EditPart) {
+ ((CartesianQueuedUnitNameTypeLblStrict6EditPart) childEditPart)
+ .setLabel(getPrimaryShape()
+ .getFigureCartesianQueuedUnitLabelFigure());
+ return true;
+ }
+ if (childEditPart instanceof CartesianQueuedUnitCartesianQueuedUnitHelperUnitsCompartment6EditPart) {
+ IFigure pane = getPrimaryShape()
+ .getCartesianQueuedUnitHelperUnitsCompartmentFigure();
+ setupContentPane(pane); // FIXME each comparment should handle his content pane in his own way
+ pane.add(((CartesianQueuedUnitCartesianQueuedUnitHelperUnitsCompartment6EditPart) childEditPart)
+ .getFigure());
+ return true;
+ }
+ if (childEditPart instanceof CartesianQueuedUnitCartesianQueuedUnitRefactoringUnitCompartment6EditPart) {
+ IFigure pane = getPrimaryShape()
+ .getCartesianQueuedUnitRefactoringUnitCompartmentFigure();
+ setupContentPane(pane); // FIXME each comparment should handle his content pane in his own way
+ pane.add(((CartesianQueuedUnitCartesianQueuedUnitRefactoringUnitCompartment6EditPart) childEditPart)
+ .getFigure());
+ return true;
+ }
+ if (childEditPart instanceof SingleInputPort2EditPart) {
+ BorderItemLocator locator = new BorderItemLocator(getMainFigure(),
+ PositionConstants.NORTH);
+ locator.setCurrentSideOfParent(PositionConstants.NORTH); // Position des Ports
+ locator.setPreferredSideOfParent(PositionConstants.NORTH); // Position des Ports
+ getBorderedFigure().getBorderItemContainer().add(
+ ((SingleInputPort2EditPart) childEditPart).getFigure(),
+ locator);
+ return true;
+ }
+ if (childEditPart instanceof MultiInputPortEditPart) {
+ BorderItemLocator locator = new BorderItemLocator(getMainFigure(),
+ PositionConstants.NORTH);
+ locator.setCurrentSideOfParent(PositionConstants.NORTH); // Position des Ports
+ locator.setPreferredSideOfParent(PositionConstants.NORTH); // Position des Ports
+ getBorderedFigure().getBorderItemContainer().add(
+ ((MultiInputPortEditPart) childEditPart).getFigure(),
+ locator);
+ return true;
+ }
+ return false;
+ }
+
+ /**
+ * @generated NOT
+ */
+ protected boolean removeFixedChild(EditPart childEditPart) {
+ if (childEditPart instanceof CartesianQueuedUnitNameTypeLblStrict6EditPart) {
+ return true;
+ }
+ if (childEditPart instanceof CartesianQueuedUnitCartesianQueuedUnitHelperUnitsCompartment6EditPart) {
+ IFigure pane = getPrimaryShape()
+ .getCartesianQueuedUnitHelperUnitsCompartmentFigure();
+ setupContentPane(pane); // FIXME each comparment should handle his content pane in his own way
+ pane.remove(((CartesianQueuedUnitCartesianQueuedUnitHelperUnitsCompartment6EditPart) childEditPart)
+ .getFigure());
+ return true;
+ }
+ if (childEditPart instanceof CartesianQueuedUnitCartesianQueuedUnitRefactoringUnitCompartment6EditPart) {
+ IFigure pane = getPrimaryShape()
+ .getCartesianQueuedUnitRefactoringUnitCompartmentFigure();
+ setupContentPane(pane); // FIXME each comparment should handle his content pane in his own way
+ pane.remove(((CartesianQueuedUnitCartesianQueuedUnitRefactoringUnitCompartment6EditPart) childEditPart)
+ .getFigure());
+ return true;
+ }
+ if (childEditPart instanceof SingleInputPort2EditPart) {
+ getBorderedFigure().getBorderItemContainer().remove(
+ ((SingleInputPort2EditPart) childEditPart).getFigure());
+ return true;
+ }
+ if (childEditPart instanceof MultiInputPortEditPart) {
+ // getBorderedFigure().getBorderItemContainer().remove(
+ // ((MultiInputPortEditPart) childEditPart).getFigure());
+ return true;
+ }
+ return false;
+ }
+
+ /**
+ * @generated
+ */
+ protected void addChildVisual(EditPart childEditPart, int index) {
+ if (addFixedChild(childEditPart)) {
+ return;
+ }
+ super.addChildVisual(childEditPart, -1);
+ }
+
+ /**
+ * @generated
+ */
+ protected void removeChildVisual(EditPart childEditPart) {
+ if (removeFixedChild(childEditPart)) {
+ return;
+ }
+ super.removeChildVisual(childEditPart);
+ }
+
+ /**
+ * @generated
+ */
+ protected IFigure getContentPaneFor(IGraphicalEditPart editPart) {
+ if (editPart instanceof CartesianQueuedUnitCartesianQueuedUnitHelperUnitsCompartment6EditPart) {
+ return getPrimaryShape()
+ .getCartesianQueuedUnitHelperUnitsCompartmentFigure();
+ }
+ if (editPart instanceof CartesianQueuedUnitCartesianQueuedUnitRefactoringUnitCompartment6EditPart) {
+ return getPrimaryShape()
+ .getCartesianQueuedUnitRefactoringUnitCompartmentFigure();
+ }
+ if (editPart instanceof IBorderItemEditPart) {
+ return getBorderedFigure().getBorderItemContainer();
+ }
+ return getContentPane();
+ }
+
+ /**
+ * @generated
+ */
+ protected NodeFigure createNodePlate() {
+ DefaultSizeNodeFigure result = new DefaultSizeNodeFigure(40, 40);
+ return result;
+ }
+
+ /**
+ * Creates figure for this edit part.
+ *
+ * Body of this method does not depend on settings in generation model
+ * so you may safely remove <i>generated</i> tag and modify it.
+ *
+ * @generated
+ */
+ protected NodeFigure createMainFigure() {
+ NodeFigure figure = createNodePlate();
+ figure.setLayoutManager(new StackLayout());
+ IFigure shape = createNodeShape();
+ figure.add(shape);
+ contentPane = setupContentPane(shape);
+ return figure;
+ }
+
+ /**
+ * Default implementation treats passed figure as content pane.
+ * Respects layout one may have set for generated figure.
+ * @param nodeShape instance of generated figure class
+ * @generated
+ */
+ protected IFigure setupContentPane(IFigure nodeShape) {
+ if (nodeShape.getLayoutManager() == null) {
+ ConstrainedToolbarLayout layout = new ConstrainedToolbarLayout();
+ layout.setSpacing(5);
+ nodeShape.setLayoutManager(layout);
+ }
+ return nodeShape; // use nodeShape itself as contentPane
+ }
+
+ /**
+ * @generated
+ */
+ public IFigure getContentPane() {
+ if (contentPane != null) {
+ return contentPane;
+ }
+ return super.getContentPane();
+ }
+
+ /**
+ * @generated
+ */
+ protected void setForegroundColor(Color color) {
+ if (primaryShape != null) {
+ primaryShape.setForegroundColor(color);
+ }
+ }
+
+ /**
+ * @generated
+ */
+ protected void setBackgroundColor(Color color) {
+ if (primaryShape != null) {
+ primaryShape.setBackgroundColor(color);
+ }
+ }
+
+ /**
+ * @generated
+ */
+ protected void setLineWidth(int width) {
+ if (primaryShape instanceof Shape) {
+ ((Shape) primaryShape).setLineWidth(width);
+ }
+ }
+
+ /**
+ * @generated
+ */
+ protected void setLineType(int style) {
+ if (primaryShape instanceof Shape) {
+ ((Shape) primaryShape).setLineStyle(style);
+ }
+ }
+
+ /**
+ * @generated
+ */
+ public EditPart getPrimaryChildEditPart() {
+ return getChildBySemanticHint(ComrelVisualIDRegistry
+ .getType(CartesianQueuedUnitNameTypeLblStrict6EditPart.VISUAL_ID));
+ }
+
+ /**
+ * @generated
+ */
+ public class CartesianQueuedUnitFigure extends RoundedRectangle {
+
+ /**
+ * @generated
+ */
+ private WrappingLabel fFigureCartesianQueuedUnitLabelFigure;
+ /**
+ * @generated
+ */
+ private RectangleFigure fCartesianQueuedUnitHelperUnitsCompartmentFigure;
+ /**
+ * @generated
+ */
+ private RectangleFigure fCartesianQueuedUnitRefactoringUnitCompartmentFigure;
+
+ /**
+ * @generated
+ */
+ public CartesianQueuedUnitFigure() {
+ this.setCornerDimensions(new Dimension(getMapMode().DPtoLP(8),
+ getMapMode().DPtoLP(8)));
+ this.setBorder(new MarginBorder(getMapMode().DPtoLP(5),
+ getMapMode().DPtoLP(5), getMapMode().DPtoLP(5),
+ getMapMode().DPtoLP(5)));
+ createContents();
+ }
+
+ /**
+ * @generated
+ */
+ private void createContents() {
+
+ fFigureCartesianQueuedUnitLabelFigure = new WrappingLabel();
+ fFigureCartesianQueuedUnitLabelFigure
+ .setText("CartesianQueuedUnit");
+ fFigureCartesianQueuedUnitLabelFigure.setMaximumSize(new Dimension(
+ getMapMode().DPtoLP(10000), getMapMode().DPtoLP(50)));
+
+ this.add(fFigureCartesianQueuedUnitLabelFigure);
+
+ fCartesianQueuedUnitHelperUnitsCompartmentFigure = new RectangleFigure();
+ fCartesianQueuedUnitHelperUnitsCompartmentFigure.setOutline(false);
+
+ this.add(fCartesianQueuedUnitHelperUnitsCompartmentFigure);
+
+ fCartesianQueuedUnitRefactoringUnitCompartmentFigure = new RectangleFigure();
+ fCartesianQueuedUnitRefactoringUnitCompartmentFigure
+ .setOutline(false);
+
+ this.add(fCartesianQueuedUnitRefactoringUnitCompartmentFigure);
+
+ }
+
+ /**
+ * @generated
+ */
+ public WrappingLabel getFigureCartesianQueuedUnitLabelFigure() {
+ return fFigureCartesianQueuedUnitLabelFigure;
+ }
+
+ /**
+ * @generated
+ */
+ public RectangleFigure getCartesianQueuedUnitHelperUnitsCompartmentFigure() {
+ return fCartesianQueuedUnitHelperUnitsCompartmentFigure;
+ }
+
+ /**
+ * @generated
+ */
+ public RectangleFigure getCartesianQueuedUnitRefactoringUnitCompartmentFigure() {
+ return fCartesianQueuedUnitRefactoringUnitCompartmentFigure;
+ }
+
+ }
+
+}
diff --git a/org.eclipse.emf.refactor.comrel.diagram/src/comrel/diagram/edit/parts/CartesianQueuedUnit7EditPart.java b/org.eclipse.emf.refactor.comrel.diagram/src/comrel/diagram/edit/parts/CartesianQueuedUnit7EditPart.java
new file mode 100644
index 0000000..7d42770
--- /dev/null
+++ b/org.eclipse.emf.refactor.comrel.diagram/src/comrel/diagram/edit/parts/CartesianQueuedUnit7EditPart.java
@@ -0,0 +1,439 @@
+/*
+ *
+ */
+package comrel.diagram.edit.parts;
+
+import org.eclipse.draw2d.IFigure;
+import org.eclipse.draw2d.MarginBorder;
+import org.eclipse.draw2d.PositionConstants;
+import org.eclipse.draw2d.RectangleFigure;
+import org.eclipse.draw2d.RoundedRectangle;
+import org.eclipse.draw2d.Shape;
+import org.eclipse.draw2d.StackLayout;
+import org.eclipse.draw2d.geometry.Dimension;
+import org.eclipse.gef.EditPart;
+import org.eclipse.gef.EditPolicy;
+import org.eclipse.gef.Request;
+import org.eclipse.gef.commands.Command;
+import org.eclipse.gef.editpolicies.LayoutEditPolicy;
+import org.eclipse.gef.editpolicies.NonResizableEditPolicy;
+import org.eclipse.gef.requests.CreateRequest;
+import org.eclipse.gmf.runtime.diagram.ui.editparts.AbstractBorderedShapeEditPart;
+import org.eclipse.gmf.runtime.diagram.ui.editparts.IBorderItemEditPart;
+import org.eclipse.gmf.runtime.diagram.ui.editparts.IGraphicalEditPart;
+import org.eclipse.gmf.runtime.diagram.ui.editpolicies.BorderItemSelectionEditPolicy;
+import org.eclipse.gmf.runtime.diagram.ui.editpolicies.CreationEditPolicy;
+import org.eclipse.gmf.runtime.diagram.ui.editpolicies.DragDropEditPolicy;
+import org.eclipse.gmf.runtime.diagram.ui.editpolicies.EditPolicyRoles;
+import org.eclipse.gmf.runtime.diagram.ui.figures.BorderItemLocator;
+import org.eclipse.gmf.runtime.draw2d.ui.figures.ConstrainedToolbarLayout;
+import org.eclipse.gmf.runtime.draw2d.ui.figures.WrappingLabel;
+import org.eclipse.gmf.runtime.gef.ui.figures.DefaultSizeNodeFigure;
+import org.eclipse.gmf.runtime.gef.ui.figures.NodeFigure;
+import org.eclipse.gmf.runtime.notation.View;
+import org.eclipse.swt.graphics.Color;
+
+import comrel.RefactoringUnit;
+import comrel.diagram.edit.parts.custom.Labels;
+import comrel.diagram.edit.policies.CartesianQueuedUnit7CanonicalEditPolicy;
+import comrel.diagram.edit.policies.CartesianQueuedUnit7ItemSemanticEditPolicy;
+import comrel.diagram.edit.policies.OpenDiagramEditPolicy;
+import comrel.diagram.part.ComrelVisualIDRegistry;
+
+/**
+ * @generated
+ */
+public class CartesianQueuedUnit7EditPart extends AbstractBorderedShapeEditPart {
+
+ /**
+ * @generated
+ */
+ public static final int VISUAL_ID = 3047;
+
+ /**
+ * @generated
+ */
+ protected IFigure contentPane;
+
+ /**
+ * @generated
+ */
+ protected IFigure primaryShape;
+
+ /**
+ * @generated
+ */
+ public CartesianQueuedUnit7EditPart(View view) {
+ super(view);
+ }
+
+ /**
+ * @generated
+ */
+ protected void createDefaultEditPolicies() {
+ installEditPolicy(EditPolicyRoles.CREATION_ROLE,
+ new CreationEditPolicy());
+ super.createDefaultEditPolicies();
+ installEditPolicy(EditPolicyRoles.SEMANTIC_ROLE,
+ new CartesianQueuedUnit7ItemSemanticEditPolicy());
+ installEditPolicy(EditPolicyRoles.DRAG_DROP_ROLE,
+ new DragDropEditPolicy());
+ installEditPolicy(EditPolicyRoles.CANONICAL_ROLE,
+ new CartesianQueuedUnit7CanonicalEditPolicy());
+ installEditPolicy(EditPolicy.LAYOUT_ROLE, createLayoutEditPolicy());
+ installEditPolicy(EditPolicyRoles.OPEN_ROLE,
+ new OpenDiagramEditPolicy());
+ // XXX need an SCR to runtime to have another abstract superclass that would let children add reasonable editpolicies
+ // removeEditPolicy(org.eclipse.gmf.runtime.diagram.ui.editpolicies.EditPolicyRoles.CONNECTION_HANDLES_ROLE);
+ }
+
+ /**
+ * @generated
+ */
+ protected LayoutEditPolicy createLayoutEditPolicy() {
+ org.eclipse.gmf.runtime.diagram.ui.editpolicies.LayoutEditPolicy lep = new org.eclipse.gmf.runtime.diagram.ui.editpolicies.LayoutEditPolicy() {
+
+ protected EditPolicy createChildEditPolicy(EditPart child) {
+ View childView = (View) child.getModel();
+ switch (ComrelVisualIDRegistry.getVisualID(childView)) {
+ case SingleInputPort2EditPart.VISUAL_ID:
+ case MultiInputPortEditPart.VISUAL_ID:
+ return new BorderItemSelectionEditPolicy();
+ }
+ EditPolicy result = child
+ .getEditPolicy(EditPolicy.PRIMARY_DRAG_ROLE);
+ if (result == null) {
+ result = new NonResizableEditPolicy();
+ }
+ return result;
+ }
+
+ protected Command getMoveChildrenCommand(Request request) {
+ return null;
+ }
+
+ protected Command getCreateCommand(CreateRequest request) {
+ return null;
+ }
+ };
+ return lep;
+ }
+
+ /**
+ * @generated NOT
+ */
+ protected IFigure createNodeShape() {
+ CartesianQueuedUnitFigure figure = new CartesianQueuedUnitFigure();
+ RectangleFigure compHelper = (RectangleFigure) figure.getChildren()
+ .get(1);
+ RectangleFigure compRef = (RectangleFigure) figure.getChildren().get(2);
+ Labels.setLabels(compHelper, compRef, true);
+ RefactoringUnit unit = (RefactoringUnit) this.resolveSemanticElement();
+ unit.setFigure(figure);
+ return primaryShape = figure;
+ }
+
+ /**
+ * @generated
+ */
+ public CartesianQueuedUnitFigure getPrimaryShape() {
+ return (CartesianQueuedUnitFigure) primaryShape;
+ }
+
+ /**
+ * @generated NOT
+ */
+ protected boolean addFixedChild(EditPart childEditPart) {
+ if (childEditPart instanceof CartesianQueuedUnitNameTypeLblStrict7EditPart) {
+ ((CartesianQueuedUnitNameTypeLblStrict7EditPart) childEditPart)
+ .setLabel(getPrimaryShape()
+ .getFigureCartesianQueuedUnitLabelFigure());
+ return true;
+ }
+ if (childEditPart instanceof CartesianQueuedUnitCartesianQueuedUnitHelperUnitsCompartment7EditPart) {
+ IFigure pane = getPrimaryShape()
+ .getCartesianQueuedUnitHelperUnitsCompartmentFigure();
+ setupContentPane(pane); // FIXME each comparment should handle his content pane in his own way
+ pane.add(((CartesianQueuedUnitCartesianQueuedUnitHelperUnitsCompartment7EditPart) childEditPart)
+ .getFigure());
+ return true;
+ }
+ if (childEditPart instanceof CartesianQueuedUnitCartesianQueuedUnitRefactoringUnitCompartment7EditPart) {
+ IFigure pane = getPrimaryShape()
+ .getCartesianQueuedUnitRefactoringUnitCompartmentFigure();
+ setupContentPane(pane); // FIXME each comparment should handle his content pane in his own way
+ pane.add(((CartesianQueuedUnitCartesianQueuedUnitRefactoringUnitCompartment7EditPart) childEditPart)
+ .getFigure());
+ return true;
+ }
+ if (childEditPart instanceof SingleInputPort2EditPart) {
+ BorderItemLocator locator = new BorderItemLocator(getMainFigure(),
+ PositionConstants.NORTH);
+ locator.setCurrentSideOfParent(PositionConstants.NORTH); // Position des Ports
+ locator.setPreferredSideOfParent(PositionConstants.NORTH); // Position des Ports
+ getBorderedFigure().getBorderItemContainer().add(
+ ((SingleInputPort2EditPart) childEditPart).getFigure(),
+ locator);
+ return true;
+ }
+ if (childEditPart instanceof MultiInputPortEditPart) {
+ BorderItemLocator locator = new BorderItemLocator(getMainFigure(),
+ PositionConstants.NORTH);
+ locator.setCurrentSideOfParent(PositionConstants.NORTH); // Position des Ports
+ locator.setPreferredSideOfParent(PositionConstants.NORTH); // Position des Ports
+ getBorderedFigure().getBorderItemContainer().add(
+ ((MultiInputPortEditPart) childEditPart).getFigure(),
+ locator);
+ return true;
+ }
+ return false;
+ }
+
+ /**
+ * @generated NOT
+ */
+ protected boolean removeFixedChild(EditPart childEditPart) {
+ if (childEditPart instanceof CartesianQueuedUnitNameTypeLblStrict7EditPart) {
+ return true;
+ }
+ if (childEditPart instanceof CartesianQueuedUnitCartesianQueuedUnitHelperUnitsCompartment7EditPart) {
+ IFigure pane = getPrimaryShape()
+ .getCartesianQueuedUnitHelperUnitsCompartmentFigure();
+ setupContentPane(pane); // FIXME each comparment should handle his content pane in his own way
+ pane.remove(((CartesianQueuedUnitCartesianQueuedUnitHelperUnitsCompartment7EditPart) childEditPart)
+ .getFigure());
+ return true;
+ }
+ if (childEditPart instanceof CartesianQueuedUnitCartesianQueuedUnitRefactoringUnitCompartment7EditPart) {
+ IFigure pane = getPrimaryShape()
+ .getCartesianQueuedUnitRefactoringUnitCompartmentFigure();
+ setupContentPane(pane); // FIXME each comparment should handle his content pane in his own way
+ pane.remove(((CartesianQueuedUnitCartesianQueuedUnitRefactoringUnitCompartment7EditPart) childEditPart)
+ .getFigure());
+ return true;
+ }
+ if (childEditPart instanceof SingleInputPort2EditPart) {
+ getBorderedFigure().getBorderItemContainer().remove(
+ ((SingleInputPort2EditPart) childEditPart).getFigure());
+ return true;
+ }
+ if (childEditPart instanceof MultiInputPortEditPart) {
+ // getBorderedFigure().getBorderItemContainer().remove(
+ // ((MultiInputPortEditPart) childEditPart).getFigure());
+ return true;
+ }
+ return false;
+ }
+
+ /**
+ * @generated
+ */
+ protected void addChildVisual(EditPart childEditPart, int index) {
+ if (addFixedChild(childEditPart)) {
+ return;
+ }
+ super.addChildVisual(childEditPart, -1);
+ }
+
+ /**
+ * @generated
+ */
+ protected void removeChildVisual(EditPart childEditPart) {
+ if (removeFixedChild(childEditPart)) {
+ return;
+ }
+ super.removeChildVisual(childEditPart);
+ }
+
+ /**
+ * @generated
+ */
+ protected IFigure getContentPaneFor(IGraphicalEditPart editPart) {
+ if (editPart instanceof CartesianQueuedUnitCartesianQueuedUnitHelperUnitsCompartment7EditPart) {
+ return getPrimaryShape()
+ .getCartesianQueuedUnitHelperUnitsCompartmentFigure();
+ }
+ if (editPart instanceof CartesianQueuedUnitCartesianQueuedUnitRefactoringUnitCompartment7EditPart) {
+ return getPrimaryShape()
+ .getCartesianQueuedUnitRefactoringUnitCompartmentFigure();
+ }
+ if (editPart instanceof IBorderItemEditPart) {
+ return getBorderedFigure().getBorderItemContainer();
+ }
+ return getContentPane();
+ }
+
+ /**
+ * @generated
+ */
+ protected NodeFigure createNodePlate() {
+ DefaultSizeNodeFigure result = new DefaultSizeNodeFigure(40, 40);
+ return result;
+ }
+
+ /**
+ * Creates figure for this edit part.
+ *
+ * Body of this method does not depend on settings in generation model
+ * so you may safely remove <i>generated</i> tag and modify it.
+ *
+ * @generated
+ */
+ protected NodeFigure createMainFigure() {
+ NodeFigure figure = createNodePlate();
+ figure.setLayoutManager(new StackLayout());
+ IFigure shape = createNodeShape();
+ figure.add(shape);
+ contentPane = setupContentPane(shape);
+ return figure;
+ }
+
+ /**
+ * Default implementation treats passed figure as content pane.
+ * Respects layout one may have set for generated figure.
+ * @param nodeShape instance of generated figure class
+ * @generated
+ */
+ protected IFigure setupContentPane(IFigure nodeShape) {
+ if (nodeShape.getLayoutManager() == null) {
+ ConstrainedToolbarLayout layout = new ConstrainedToolbarLayout();
+ layout.setSpacing(5);
+ nodeShape.setLayoutManager(layout);
+ }
+ return nodeShape; // use nodeShape itself as contentPane
+ }
+
+ /**
+ * @generated
+ */
+ public IFigure getContentPane() {
+ if (contentPane != null) {
+ return contentPane;
+ }
+ return super.getContentPane();
+ }
+
+ /**
+ * @generated
+ */
+ protected void setForegroundColor(Color color) {
+ if (primaryShape != null) {
+ primaryShape.setForegroundColor(color);
+ }
+ }
+
+ /**
+ * @generated
+ */
+ protected void setBackgroundColor(Color color) {
+ if (primaryShape != null) {
+ primaryShape.setBackgroundColor(color);
+ }
+ }
+
+ /**
+ * @generated
+ */
+ protected void setLineWidth(int width) {
+ if (primaryShape instanceof Shape) {
+ ((Shape) primaryShape).setLineWidth(width);
+ }
+ }
+
+ /**
+ * @generated
+ */
+ protected void setLineType(int style) {
+ if (primaryShape instanceof Shape) {
+ ((Shape) primaryShape).setLineStyle(style);
+ }
+ }
+
+ /**
+ * @generated
+ */
+ public EditPart getPrimaryChildEditPart() {
+ return getChildBySemanticHint(ComrelVisualIDRegistry
+ .getType(CartesianQueuedUnitNameTypeLblStrict7EditPart.VISUAL_ID));
+ }
+
+ /**
+ * @generated
+ */
+ public class CartesianQueuedUnitFigure extends RoundedRectangle {
+
+ /**
+ * @generated
+ */
+ private WrappingLabel fFigureCartesianQueuedUnitLabelFigure;
+ /**
+ * @generated
+ */
+ private RectangleFigure fCartesianQueuedUnitHelperUnitsCompartmentFigure;
+ /**
+ * @generated
+ */
+ private RectangleFigure fCartesianQueuedUnitRefactoringUnitCompartmentFigure;
+
+ /**
+ * @generated
+ */
+ public CartesianQueuedUnitFigure() {
+ this.setCornerDimensions(new Dimension(getMapMode().DPtoLP(8),
+ getMapMode().DPtoLP(8)));
+ this.setBorder(new MarginBorder(getMapMode().DPtoLP(5),
+ getMapMode().DPtoLP(5), getMapMode().DPtoLP(5),
+ getMapMode().DPtoLP(5)));
+ createContents();
+ }
+
+ /**
+ * @generated
+ */
+ private void createContents() {
+
+ fFigureCartesianQueuedUnitLabelFigure = new WrappingLabel();
+ fFigureCartesianQueuedUnitLabelFigure
+ .setText("CartesianQueuedUnit");
+ fFigureCartesianQueuedUnitLabelFigure.setMaximumSize(new Dimension(
+ getMapMode().DPtoLP(10000), getMapMode().DPtoLP(50)));
+
+ this.add(fFigureCartesianQueuedUnitLabelFigure);
+
+ fCartesianQueuedUnitHelperUnitsCompartmentFigure = new RectangleFigure();
+ fCartesianQueuedUnitHelperUnitsCompartmentFigure.setOutline(false);
+
+ this.add(fCartesianQueuedUnitHelperUnitsCompartmentFigure);
+
+ fCartesianQueuedUnitRefactoringUnitCompartmentFigure = new RectangleFigure();
+ fCartesianQueuedUnitRefactoringUnitCompartmentFigure
+ .setOutline(false);
+
+ this.add(fCartesianQueuedUnitRefactoringUnitCompartmentFigure);
+
+ }
+
+ /**
+ * @generated
+ */
+ public WrappingLabel getFigureCartesianQueuedUnitLabelFigure() {
+ return fFigureCartesianQueuedUnitLabelFigure;
+ }
+
+ /**
+ * @generated
+ */
+ public RectangleFigure getCartesianQueuedUnitHelperUnitsCompartmentFigure() {
+ return fCartesianQueuedUnitHelperUnitsCompartmentFigure;
+ }
+
+ /**
+ * @generated
+ */
+ public RectangleFigure getCartesianQueuedUnitRefactoringUnitCompartmentFigure() {
+ return fCartesianQueuedUnitRefactoringUnitCompartmentFigure;
+ }
+
+ }
+
+}
diff --git a/org.eclipse.emf.refactor.comrel.diagram/src/comrel/diagram/edit/parts/CartesianQueuedUnitCartesianQueuedUnitHelperUnitsCompartment2EditPart.java b/org.eclipse.emf.refactor.comrel.diagram/src/comrel/diagram/edit/parts/CartesianQueuedUnitCartesianQueuedUnitHelperUnitsCompartment2EditPart.java
new file mode 100644
index 0000000..6235dbe
--- /dev/null
+++ b/org.eclipse.emf.refactor.comrel.diagram/src/comrel/diagram/edit/parts/CartesianQueuedUnitCartesianQueuedUnitHelperUnitsCompartment2EditPart.java
@@ -0,0 +1,85 @@
+/*
+ *
+ */
+package comrel.diagram.edit.parts;
+
+import org.eclipse.draw2d.IFigure;
+import org.eclipse.gef.EditPolicy;
+import org.eclipse.gmf.runtime.diagram.ui.editparts.ShapeCompartmentEditPart;
+import org.eclipse.gmf.runtime.diagram.ui.editpolicies.CreationEditPolicy;
+import org.eclipse.gmf.runtime.diagram.ui.editpolicies.DragDropEditPolicy;
+import org.eclipse.gmf.runtime.diagram.ui.editpolicies.EditPolicyRoles;
+import org.eclipse.gmf.runtime.diagram.ui.editpolicies.ResizableCompartmentEditPolicy;
+import org.eclipse.gmf.runtime.diagram.ui.figures.ResizableCompartmentFigure;
+import org.eclipse.gmf.runtime.draw2d.ui.figures.ConstrainedToolbarLayout;
+import org.eclipse.gmf.runtime.notation.View;
+
+import comrel.diagram.edit.policies.CartesianQueuedUnitCartesianQueuedUnitHelperUnitsCompartment2CanonicalEditPolicy;
+import comrel.diagram.edit.policies.CartesianQueuedUnitCartesianQueuedUnitHelperUnitsCompartment2ItemSemanticEditPolicy;
+import comrel.diagram.part.Messages;
+
+/**
+ * @generated
+ */
+public class CartesianQueuedUnitCartesianQueuedUnitHelperUnitsCompartment2EditPart
+ extends ShapeCompartmentEditPart {
+
+ /**
+ * @generated
+ */
+ public static final int VISUAL_ID = 7003;
+
+ /**
+ * @generated
+ */
+ public CartesianQueuedUnitCartesianQueuedUnitHelperUnitsCompartment2EditPart(
+ View view) {
+ super(view);
+ }
+
+ /**
+ * @generated
+ */
+ public String getCompartmentName() {
+ return Messages.CartesianQueuedUnitCartesianQueuedUnitHelperUnitsCompartment2EditPart_title;
+ }
+
+ /**
+ * @generated
+ */
+ public IFigure createFigure() {
+ ResizableCompartmentFigure result = (ResizableCompartmentFigure) super
+ .createFigure();
+ result.setTitleVisibility(false);
+ return result;
+ }
+
+ /**
+ * @generated
+ */
+ protected void createDefaultEditPolicies() {
+ super.createDefaultEditPolicies();
+ installEditPolicy(EditPolicy.PRIMARY_DRAG_ROLE,
+ new ResizableCompartmentEditPolicy());
+ installEditPolicy(
+ EditPolicyRoles.SEMANTIC_ROLE,
+ new CartesianQueuedUnitCartesianQueuedUnitHelperUnitsCompartment2ItemSemanticEditPolicy());
+ installEditPolicy(EditPolicyRoles.CREATION_ROLE,
+ new CreationEditPolicy());
+ installEditPolicy(EditPolicyRoles.DRAG_DROP_ROLE,
+ new DragDropEditPolicy());
+ installEditPolicy(
+ EditPolicyRoles.CANONICAL_ROLE,
+ new CartesianQueuedUnitCartesianQueuedUnitHelperUnitsCompartment2CanonicalEditPolicy());
+ }
+
+ /**
+ * @generated
+ */
+ protected void setRatio(Double ratio) {
+ if (getFigure().getParent().getLayoutManager() instanceof ConstrainedToolbarLayout) {
+ super.setRatio(ratio);
+ }
+ }
+
+}
diff --git a/org.eclipse.emf.refactor.comrel.diagram/src/comrel/diagram/edit/parts/CartesianQueuedUnitCartesianQueuedUnitHelperUnitsCompartment3EditPart.java b/org.eclipse.emf.refactor.comrel.diagram/src/comrel/diagram/edit/parts/CartesianQueuedUnitCartesianQueuedUnitHelperUnitsCompartment3EditPart.java
new file mode 100644
index 0000000..f9fe04c
--- /dev/null
+++ b/org.eclipse.emf.refactor.comrel.diagram/src/comrel/diagram/edit/parts/CartesianQueuedUnitCartesianQueuedUnitHelperUnitsCompartment3EditPart.java
@@ -0,0 +1,85 @@
+/*
+ *
+ */
+package comrel.diagram.edit.parts;
+
+import org.eclipse.draw2d.IFigure;
+import org.eclipse.gef.EditPolicy;
+import org.eclipse.gmf.runtime.diagram.ui.editparts.ShapeCompartmentEditPart;
+import org.eclipse.gmf.runtime.diagram.ui.editpolicies.CreationEditPolicy;
+import org.eclipse.gmf.runtime.diagram.ui.editpolicies.DragDropEditPolicy;
+import org.eclipse.gmf.runtime.diagram.ui.editpolicies.EditPolicyRoles;
+import org.eclipse.gmf.runtime.diagram.ui.editpolicies.ResizableCompartmentEditPolicy;
+import org.eclipse.gmf.runtime.diagram.ui.figures.ResizableCompartmentFigure;
+import org.eclipse.gmf.runtime.draw2d.ui.figures.ConstrainedToolbarLayout;
+import org.eclipse.gmf.runtime.notation.View;
+
+import comrel.diagram.edit.policies.CartesianQueuedUnitCartesianQueuedUnitHelperUnitsCompartment3CanonicalEditPolicy;
+import comrel.diagram.edit.policies.CartesianQueuedUnitCartesianQueuedUnitHelperUnitsCompartment3ItemSemanticEditPolicy;
+import comrel.diagram.part.Messages;
+
+/**
+ * @generated
+ */
+public class CartesianQueuedUnitCartesianQueuedUnitHelperUnitsCompartment3EditPart
+ extends ShapeCompartmentEditPart {
+
+ /**
+ * @generated
+ */
+ public static final int VISUAL_ID = 7007;
+
+ /**
+ * @generated
+ */
+ public CartesianQueuedUnitCartesianQueuedUnitHelperUnitsCompartment3EditPart(
+ View view) {
+ super(view);
+ }
+
+ /**
+ * @generated
+ */
+ public String getCompartmentName() {
+ return Messages.CartesianQueuedUnitCartesianQueuedUnitHelperUnitsCompartment3EditPart_title;
+ }
+
+ /**
+ * @generated
+ */
+ public IFigure createFigure() {
+ ResizableCompartmentFigure result = (ResizableCompartmentFigure) super
+ .createFigure();
+ result.setTitleVisibility(false);
+ return result;
+ }
+
+ /**
+ * @generated
+ */
+ protected void createDefaultEditPolicies() {
+ super.createDefaultEditPolicies();
+ installEditPolicy(EditPolicy.PRIMARY_DRAG_ROLE,
+ new ResizableCompartmentEditPolicy());
+ installEditPolicy(
+ EditPolicyRoles.SEMANTIC_ROLE,
+ new CartesianQueuedUnitCartesianQueuedUnitHelperUnitsCompartment3ItemSemanticEditPolicy());
+ installEditPolicy(EditPolicyRoles.CREATION_ROLE,
+ new CreationEditPolicy());
+ installEditPolicy(EditPolicyRoles.DRAG_DROP_ROLE,
+ new DragDropEditPolicy());
+ installEditPolicy(
+ EditPolicyRoles.CANONICAL_ROLE,
+ new CartesianQueuedUnitCartesianQueuedUnitHelperUnitsCompartment3CanonicalEditPolicy());
+ }
+
+ /**
+ * @generated
+ */
+ protected void setRatio(Double ratio) {
+ if (getFigure().getParent().getLayoutManager() instanceof ConstrainedToolbarLayout) {
+ super.setRatio(ratio);
+ }
+ }
+
+}
diff --git a/org.eclipse.emf.refactor.comrel.diagram/src/comrel/diagram/edit/parts/CartesianQueuedUnitCartesianQueuedUnitHelperUnitsCompartment4EditPart.java b/org.eclipse.emf.refactor.comrel.diagram/src/comrel/diagram/edit/parts/CartesianQueuedUnitCartesianQueuedUnitHelperUnitsCompartment4EditPart.java
new file mode 100644
index 0000000..839c0ca
--- /dev/null
+++ b/org.eclipse.emf.refactor.comrel.diagram/src/comrel/diagram/edit/parts/CartesianQueuedUnitCartesianQueuedUnitHelperUnitsCompartment4EditPart.java
@@ -0,0 +1,85 @@
+/*
+ *
+ */
+package comrel.diagram.edit.parts;
+
+import org.eclipse.draw2d.IFigure;
+import org.eclipse.gef.EditPolicy;
+import org.eclipse.gmf.runtime.diagram.ui.editparts.ShapeCompartmentEditPart;
+import org.eclipse.gmf.runtime.diagram.ui.editpolicies.CreationEditPolicy;
+import org.eclipse.gmf.runtime.diagram.ui.editpolicies.DragDropEditPolicy;
+import org.eclipse.gmf.runtime.diagram.ui.editpolicies.EditPolicyRoles;
+import org.eclipse.gmf.runtime.diagram.ui.editpolicies.ResizableCompartmentEditPolicy;
+import org.eclipse.gmf.runtime.diagram.ui.figures.ResizableCompartmentFigure;
+import org.eclipse.gmf.runtime.draw2d.ui.figures.ConstrainedToolbarLayout;
+import org.eclipse.gmf.runtime.notation.View;
+
+import comrel.diagram.edit.policies.CartesianQueuedUnitCartesianQueuedUnitHelperUnitsCompartment4CanonicalEditPolicy;
+import comrel.diagram.edit.policies.CartesianQueuedUnitCartesianQueuedUnitHelperUnitsCompartment4ItemSemanticEditPolicy;
+import comrel.diagram.part.Messages;
+
+/**
+ * @generated
+ */
+public class CartesianQueuedUnitCartesianQueuedUnitHelperUnitsCompartment4EditPart
+ extends ShapeCompartmentEditPart {
+
+ /**
+ * @generated
+ */
+ public static final int VISUAL_ID = 7011;
+
+ /**
+ * @generated
+ */
+ public CartesianQueuedUnitCartesianQueuedUnitHelperUnitsCompartment4EditPart(
+ View view) {
+ super(view);
+ }
+
+ /**
+ * @generated
+ */
+ public String getCompartmentName() {
+ return Messages.CartesianQueuedUnitCartesianQueuedUnitHelperUnitsCompartment4EditPart_title;
+ }
+
+ /**
+ * @generated
+ */
+ public IFigure createFigure() {
+ ResizableCompartmentFigure result = (ResizableCompartmentFigure) super
+ .createFigure();
+ result.setTitleVisibility(false);
+ return result;
+ }
+
+ /**
+ * @generated
+ */
+ protected void createDefaultEditPolicies() {
+ super.createDefaultEditPolicies();
+ installEditPolicy(EditPolicy.PRIMARY_DRAG_ROLE,
+ new ResizableCompartmentEditPolicy());
+ installEditPolicy(
+ EditPolicyRoles.SEMANTIC_ROLE,
+ new CartesianQueuedUnitCartesianQueuedUnitHelperUnitsCompartment4ItemSemanticEditPolicy());
+ installEditPolicy(EditPolicyRoles.CREATION_ROLE,
+ new CreationEditPolicy());
+ installEditPolicy(EditPolicyRoles.DRAG_DROP_ROLE,
+ new DragDropEditPolicy());
+ installEditPolicy(
+ EditPolicyRoles.CANONICAL_ROLE,
+ new CartesianQueuedUnitCartesianQueuedUnitHelperUnitsCompartment4CanonicalEditPolicy());
+ }
+
+ /**
+ * @generated
+ */
+ protected void setRatio(Double ratio) {
+ if (getFigure().getParent().getLayoutManager() instanceof ConstrainedToolbarLayout) {
+ super.setRatio(ratio);
+ }
+ }
+
+}
diff --git a/org.eclipse.emf.refactor.comrel.diagram/src/comrel/diagram/edit/parts/CartesianQueuedUnitCartesianQueuedUnitHelperUnitsCompartment5EditPart.java b/org.eclipse.emf.refactor.comrel.diagram/src/comrel/diagram/edit/parts/CartesianQueuedUnitCartesianQueuedUnitHelperUnitsCompartment5EditPart.java
new file mode 100644
index 0000000..4815300
--- /dev/null
+++ b/org.eclipse.emf.refactor.comrel.diagram/src/comrel/diagram/edit/parts/CartesianQueuedUnitCartesianQueuedUnitHelperUnitsCompartment5EditPart.java
@@ -0,0 +1,85 @@
+/*
+ *
+ */
+package comrel.diagram.edit.parts;
+
+import org.eclipse.draw2d.IFigure;
+import org.eclipse.gef.EditPolicy;
+import org.eclipse.gmf.runtime.diagram.ui.editparts.ShapeCompartmentEditPart;
+import org.eclipse.gmf.runtime.diagram.ui.editpolicies.CreationEditPolicy;
+import org.eclipse.gmf.runtime.diagram.ui.editpolicies.DragDropEditPolicy;
+import org.eclipse.gmf.runtime.diagram.ui.editpolicies.EditPolicyRoles;
+import org.eclipse.gmf.runtime.diagram.ui.editpolicies.ResizableCompartmentEditPolicy;
+import org.eclipse.gmf.runtime.diagram.ui.figures.ResizableCompartmentFigure;
+import org.eclipse.gmf.runtime.draw2d.ui.figures.ConstrainedToolbarLayout;
+import org.eclipse.gmf.runtime.notation.View;
+
+import comrel.diagram.edit.policies.CartesianQueuedUnitCartesianQueuedUnitHelperUnitsCompartment5CanonicalEditPolicy;
+import comrel.diagram.edit.policies.CartesianQueuedUnitCartesianQueuedUnitHelperUnitsCompartment5ItemSemanticEditPolicy;
+import comrel.diagram.part.Messages;
+
+/**
+ * @generated
+ */
+public class CartesianQueuedUnitCartesianQueuedUnitHelperUnitsCompartment5EditPart
+ extends ShapeCompartmentEditPart {
+
+ /**
+ * @generated
+ */
+ public static final int VISUAL_ID = 7015;
+
+ /**
+ * @generated
+ */
+ public CartesianQueuedUnitCartesianQueuedUnitHelperUnitsCompartment5EditPart(
+ View view) {
+ super(view);
+ }
+
+ /**
+ * @generated
+ */
+ public String getCompartmentName() {
+ return Messages.CartesianQueuedUnitCartesianQueuedUnitHelperUnitsCompartment5EditPart_title;
+ }
+
+ /**
+ * @generated
+ */
+ public IFigure createFigure() {
+ ResizableCompartmentFigure result = (ResizableCompartmentFigure) super
+ .createFigure();
+ result.setTitleVisibility(false);
+ return result;
+ }
+
+ /**
+ * @generated
+ */
+ protected void createDefaultEditPolicies() {
+ super.createDefaultEditPolicies();
+ installEditPolicy(EditPolicy.PRIMARY_DRAG_ROLE,
+ new ResizableCompartmentEditPolicy());
+ installEditPolicy(
+ EditPolicyRoles.SEMANTIC_ROLE,
+ new CartesianQueuedUnitCartesianQueuedUnitHelperUnitsCompartment5ItemSemanticEditPolicy());
+ installEditPolicy(EditPolicyRoles.CREATION_ROLE,
+ new CreationEditPolicy());
+ installEditPolicy(EditPolicyRoles.DRAG_DROP_ROLE,
+ new DragDropEditPolicy());
+ installEditPolicy(
+ EditPolicyRoles.CANONICAL_ROLE,
+ new CartesianQueuedUnitCartesianQueuedUnitHelperUnitsCompartment5CanonicalEditPolicy());
+ }
+
+ /**
+ * @generated
+ */
+ protected void setRatio(Double ratio) {
+ if (getFigure().getParent().getLayoutManager() instanceof ConstrainedToolbarLayout) {
+ super.setRatio(ratio);
+ }
+ }
+
+}
diff --git a/org.eclipse.emf.refactor.comrel.diagram/src/comrel/diagram/edit/parts/CartesianQueuedUnitCartesianQueuedUnitHelperUnitsCompartment6EditPart.java b/org.eclipse.emf.refactor.comrel.diagram/src/comrel/diagram/edit/parts/CartesianQueuedUnitCartesianQueuedUnitHelperUnitsCompartment6EditPart.java
new file mode 100644
index 0000000..ae7a1d2
--- /dev/null
+++ b/org.eclipse.emf.refactor.comrel.diagram/src/comrel/diagram/edit/parts/CartesianQueuedUnitCartesianQueuedUnitHelperUnitsCompartment6EditPart.java
@@ -0,0 +1,85 @@
+/*
+ *
+ */
+package comrel.diagram.edit.parts;
+
+import org.eclipse.draw2d.IFigure;
+import org.eclipse.gef.EditPolicy;
+import org.eclipse.gmf.runtime.diagram.ui.editparts.ShapeCompartmentEditPart;
+import org.eclipse.gmf.runtime.diagram.ui.editpolicies.CreationEditPolicy;
+import org.eclipse.gmf.runtime.diagram.ui.editpolicies.DragDropEditPolicy;
+import org.eclipse.gmf.runtime.diagram.ui.editpolicies.EditPolicyRoles;
+import org.eclipse.gmf.runtime.diagram.ui.editpolicies.ResizableCompartmentEditPolicy;
+import org.eclipse.gmf.runtime.diagram.ui.figures.ResizableCompartmentFigure;
+import org.eclipse.gmf.runtime.draw2d.ui.figures.ConstrainedToolbarLayout;
+import org.eclipse.gmf.runtime.notation.View;
+
+import comrel.diagram.edit.policies.CartesianQueuedUnitCartesianQueuedUnitHelperUnitsCompartment6CanonicalEditPolicy;
+import comrel.diagram.edit.policies.CartesianQueuedUnitCartesianQueuedUnitHelperUnitsCompartment6ItemSemanticEditPolicy;
+import comrel.diagram.part.Messages;
+
+/**
+ * @generated
+ */
+public class CartesianQueuedUnitCartesianQueuedUnitHelperUnitsCompartment6EditPart
+ extends ShapeCompartmentEditPart {
+
+ /**
+ * @generated
+ */
+ public static final int VISUAL_ID = 7021;
+
+ /**
+ * @generated
+ */
+ public CartesianQueuedUnitCartesianQueuedUnitHelperUnitsCompartment6EditPart(
+ View view) {
+ super(view);
+ }
+
+ /**
+ * @generated
+ */
+ public String getCompartmentName() {
+ return Messages.CartesianQueuedUnitCartesianQueuedUnitHelperUnitsCompartment6EditPart_title;
+ }
+
+ /**
+ * @generated
+ */
+ public IFigure createFigure() {
+ ResizableCompartmentFigure result = (ResizableCompartmentFigure) super
+ .createFigure();
+ result.setTitleVisibility(false);
+ return result;
+ }
+
+ /**
+ * @generated
+ */
+ protected void createDefaultEditPolicies() {
+ super.createDefaultEditPolicies();
+ installEditPolicy(EditPolicy.PRIMARY_DRAG_ROLE,
+ new ResizableCompartmentEditPolicy());
+ installEditPolicy(
+ EditPolicyRoles.SEMANTIC_ROLE,
+ new CartesianQueuedUnitCartesianQueuedUnitHelperUnitsCompartment6ItemSemanticEditPolicy());
+ installEditPolicy(EditPolicyRoles.CREATION_ROLE,
+ new CreationEditPolicy());
+ installEditPolicy(EditPolicyRoles.DRAG_DROP_ROLE,
+ new DragDropEditPolicy());
+ installEditPolicy(
+ EditPolicyRoles.CANONICAL_ROLE,
+ new CartesianQueuedUnitCartesianQueuedUnitHelperUnitsCompartment6CanonicalEditPolicy());
+ }
+
+ /**
+ * @generated
+ */
+ protected void setRatio(Double ratio) {
+ if (getFigure().getParent().getLayoutManager() instanceof ConstrainedToolbarLayout) {
+ super.setRatio(ratio);
+ }
+ }
+
+}
diff --git a/org.eclipse.emf.refactor.comrel.diagram/src/comrel/diagram/edit/parts/CartesianQueuedUnitCartesianQueuedUnitHelperUnitsCompartment7EditPart.java b/org.eclipse.emf.refactor.comrel.diagram/src/comrel/diagram/edit/parts/CartesianQueuedUnitCartesianQueuedUnitHelperUnitsCompartment7EditPart.java
new file mode 100644
index 0000000..c1ef01e
--- /dev/null
+++ b/org.eclipse.emf.refactor.comrel.diagram/src/comrel/diagram/edit/parts/CartesianQueuedUnitCartesianQueuedUnitHelperUnitsCompartment7EditPart.java
@@ -0,0 +1,85 @@
+/*
+ *
+ */
+package comrel.diagram.edit.parts;
+
+import org.eclipse.draw2d.IFigure;
+import org.eclipse.gef.EditPolicy;
+import org.eclipse.gmf.runtime.diagram.ui.editparts.ShapeCompartmentEditPart;
+import org.eclipse.gmf.runtime.diagram.ui.editpolicies.CreationEditPolicy;
+import org.eclipse.gmf.runtime.diagram.ui.editpolicies.DragDropEditPolicy;
+import org.eclipse.gmf.runtime.diagram.ui.editpolicies.EditPolicyRoles;
+import org.eclipse.gmf.runtime.diagram.ui.editpolicies.ResizableCompartmentEditPolicy;
+import org.eclipse.gmf.runtime.diagram.ui.figures.ResizableCompartmentFigure;
+import org.eclipse.gmf.runtime.draw2d.ui.figures.ConstrainedToolbarLayout;
+import org.eclipse.gmf.runtime.notation.View;
+
+import comrel.diagram.edit.policies.CartesianQueuedUnitCartesianQueuedUnitHelperUnitsCompartment7CanonicalEditPolicy;
+import comrel.diagram.edit.policies.CartesianQueuedUnitCartesianQueuedUnitHelperUnitsCompartment7ItemSemanticEditPolicy;
+import comrel.diagram.part.Messages;
+
+/**
+ * @generated
+ */
+public class CartesianQueuedUnitCartesianQueuedUnitHelperUnitsCompartment7EditPart
+ extends ShapeCompartmentEditPart {
+
+ /**
+ * @generated
+ */
+ public static final int VISUAL_ID = 7039;
+
+ /**
+ * @generated
+ */
+ public CartesianQueuedUnitCartesianQueuedUnitHelperUnitsCompartment7EditPart(
+ View view) {
+ super(view);
+ }
+
+ /**
+ * @generated
+ */
+ public String getCompartmentName() {
+ return Messages.CartesianQueuedUnitCartesianQueuedUnitHelperUnitsCompartment7EditPart_title;
+ }
+
+ /**
+ * @generated
+ */
+ public IFigure createFigure() {
+ ResizableCompartmentFigure result = (ResizableCompartmentFigure) super
+ .createFigure();
+ result.setTitleVisibility(false);
+ return result;
+ }
+
+ /**
+ * @generated
+ */
+ protected void createDefaultEditPolicies() {
+ super.createDefaultEditPolicies();
+ installEditPolicy(EditPolicy.PRIMARY_DRAG_ROLE,
+ new ResizableCompartmentEditPolicy());
+ installEditPolicy(
+ EditPolicyRoles.SEMANTIC_ROLE,
+ new CartesianQueuedUnitCartesianQueuedUnitHelperUnitsCompartment7ItemSemanticEditPolicy());
+ installEditPolicy(EditPolicyRoles.CREATION_ROLE,
+ new CreationEditPolicy());
+ installEditPolicy(EditPolicyRoles.DRAG_DROP_ROLE,
+ new DragDropEditPolicy());
+ installEditPolicy(
+ EditPolicyRoles.CANONICAL_ROLE,
+ new CartesianQueuedUnitCartesianQueuedUnitHelperUnitsCompartment7CanonicalEditPolicy());
+ }
+
+ /**
+ * @generated
+ */
+ protected void setRatio(Double ratio) {
+ if (getFigure().getParent().getLayoutManager() instanceof ConstrainedToolbarLayout) {
+ super.setRatio(ratio);
+ }
+ }
+
+}
diff --git a/org.eclipse.emf.refactor.comrel.diagram/src/comrel/diagram/edit/parts/CartesianQueuedUnitCartesianQueuedUnitHelperUnitsCompartmentEditPart.java b/org.eclipse.emf.refactor.comrel.diagram/src/comrel/diagram/edit/parts/CartesianQueuedUnitCartesianQueuedUnitHelperUnitsCompartmentEditPart.java
new file mode 100644
index 0000000..be70376
--- /dev/null
+++ b/org.eclipse.emf.refactor.comrel.diagram/src/comrel/diagram/edit/parts/CartesianQueuedUnitCartesianQueuedUnitHelperUnitsCompartmentEditPart.java
@@ -0,0 +1,85 @@
+/*
+ *
+ */
+package comrel.diagram.edit.parts;
+
+import org.eclipse.draw2d.IFigure;
+import org.eclipse.gef.EditPolicy;
+import org.eclipse.gmf.runtime.diagram.ui.editparts.ShapeCompartmentEditPart;
+import org.eclipse.gmf.runtime.diagram.ui.editpolicies.CreationEditPolicy;
+import org.eclipse.gmf.runtime.diagram.ui.editpolicies.DragDropEditPolicy;
+import org.eclipse.gmf.runtime.diagram.ui.editpolicies.EditPolicyRoles;
+import org.eclipse.gmf.runtime.diagram.ui.editpolicies.ResizableCompartmentEditPolicy;
+import org.eclipse.gmf.runtime.diagram.ui.figures.ResizableCompartmentFigure;
+import org.eclipse.gmf.runtime.draw2d.ui.figures.ConstrainedToolbarLayout;
+import org.eclipse.gmf.runtime.notation.View;
+
+import comrel.diagram.edit.policies.CartesianQueuedUnitCartesianQueuedUnitHelperUnitsCompartmentCanonicalEditPolicy;
+import comrel.diagram.edit.policies.CartesianQueuedUnitCartesianQueuedUnitHelperUnitsCompartmentItemSemanticEditPolicy;
+import comrel.diagram.part.Messages;
+
+/**
+ * @generated
+ */
+public class CartesianQueuedUnitCartesianQueuedUnitHelperUnitsCompartmentEditPart
+ extends ShapeCompartmentEditPart {
+
+ /**
+ * @generated
+ */
+ public static final int VISUAL_ID = 7001;
+
+ /**
+ * @generated
+ */
+ public CartesianQueuedUnitCartesianQueuedUnitHelperUnitsCompartmentEditPart(
+ View view) {
+ super(view);
+ }
+
+ /**
+ * @generated
+ */
+ public String getCompartmentName() {
+ return Messages.CartesianQueuedUnitCartesianQueuedUnitHelperUnitsCompartmentEditPart_title;
+ }
+
+ /**
+ * @generated
+ */
+ public IFigure createFigure() {
+ ResizableCompartmentFigure result = (ResizableCompartmentFigure) super
+ .createFigure();
+ result.setTitleVisibility(false);
+ return result;
+ }
+
+ /**
+ * @generated
+ */
+ protected void createDefaultEditPolicies() {
+ super.createDefaultEditPolicies();
+ installEditPolicy(EditPolicy.PRIMARY_DRAG_ROLE,
+ new ResizableCompartmentEditPolicy());
+ installEditPolicy(
+ EditPolicyRoles.SEMANTIC_ROLE,
+ new CartesianQueuedUnitCartesianQueuedUnitHelperUnitsCompartmentItemSemanticEditPolicy());
+ installEditPolicy(EditPolicyRoles.CREATION_ROLE,
+ new CreationEditPolicy());
+ installEditPolicy(EditPolicyRoles.DRAG_DROP_ROLE,
+ new DragDropEditPolicy());
+ installEditPolicy(
+ EditPolicyRoles.CANONICAL_ROLE,
+ new CartesianQueuedUnitCartesianQueuedUnitHelperUnitsCompartmentCanonicalEditPolicy());
+ }
+
+ /**
+ * @generated
+ */
+ protected void setRatio(Double ratio) {
+ if (getFigure().getParent().getLayoutManager() instanceof ConstrainedToolbarLayout) {
+ super.setRatio(ratio);
+ }
+ }
+
+}
diff --git a/org.eclipse.emf.refactor.comrel.diagram/src/comrel/diagram/edit/parts/CartesianQueuedUnitCartesianQueuedUnitRefactoringUnitCompartment2EditPart.java b/org.eclipse.emf.refactor.comrel.diagram/src/comrel/diagram/edit/parts/CartesianQueuedUnitCartesianQueuedUnitRefactoringUnitCompartment2EditPart.java
new file mode 100644
index 0000000..a031a13
--- /dev/null
+++ b/org.eclipse.emf.refactor.comrel.diagram/src/comrel/diagram/edit/parts/CartesianQueuedUnitCartesianQueuedUnitRefactoringUnitCompartment2EditPart.java
@@ -0,0 +1,85 @@
+/*
+ *
+ */
+package comrel.diagram.edit.parts;
+
+import org.eclipse.draw2d.IFigure;
+import org.eclipse.gef.EditPolicy;
+import org.eclipse.gmf.runtime.diagram.ui.editparts.ShapeCompartmentEditPart;
+import org.eclipse.gmf.runtime.diagram.ui.editpolicies.CreationEditPolicy;
+import org.eclipse.gmf.runtime.diagram.ui.editpolicies.DragDropEditPolicy;
+import org.eclipse.gmf.runtime.diagram.ui.editpolicies.EditPolicyRoles;
+import org.eclipse.gmf.runtime.diagram.ui.editpolicies.ResizableCompartmentEditPolicy;
+import org.eclipse.gmf.runtime.diagram.ui.figures.ResizableCompartmentFigure;
+import org.eclipse.gmf.runtime.draw2d.ui.figures.ConstrainedToolbarLayout;
+import org.eclipse.gmf.runtime.notation.View;
+
+import comrel.diagram.edit.policies.CartesianQueuedUnitCartesianQueuedUnitRefactoringUnitCompartment2CanonicalEditPolicy;
+import comrel.diagram.edit.policies.CartesianQueuedUnitCartesianQueuedUnitRefactoringUnitCompartment2ItemSemanticEditPolicy;
+import comrel.diagram.part.Messages;
+
+/**
+ * @generated
+ */
+public class CartesianQueuedUnitCartesianQueuedUnitRefactoringUnitCompartment2EditPart
+ extends ShapeCompartmentEditPart {
+
+ /**
+ * @generated
+ */
+ public static final int VISUAL_ID = 7004;
+
+ /**
+ * @generated
+ */
+ public CartesianQueuedUnitCartesianQueuedUnitRefactoringUnitCompartment2EditPart(
+ View view) {
+ super(view);
+ }
+
+ /**
+ * @generated
+ */
+ public String getCompartmentName() {
+ return Messages.CartesianQueuedUnitCartesianQueuedUnitRefactoringUnitCompartment2EditPart_title;
+ }
+
+ /**
+ * @generated
+ */
+ public IFigure createFigure() {
+ ResizableCompartmentFigure result = (ResizableCompartmentFigure) super
+ .createFigure();
+ result.setTitleVisibility(false);
+ return result;
+ }
+
+ /**
+ * @generated
+ */
+ protected void createDefaultEditPolicies() {
+ super.createDefaultEditPolicies();
+ installEditPolicy(EditPolicy.PRIMARY_DRAG_ROLE,
+ new ResizableCompartmentEditPolicy());
+ installEditPolicy(
+ EditPolicyRoles.SEMANTIC_ROLE,
+ new CartesianQueuedUnitCartesianQueuedUnitRefactoringUnitCompartment2ItemSemanticEditPolicy());
+ installEditPolicy(EditPolicyRoles.CREATION_ROLE,
+ new CreationEditPolicy());
+ installEditPolicy(EditPolicyRoles.DRAG_DROP_ROLE,
+ new DragDropEditPolicy());
+ installEditPolicy(
+ EditPolicyRoles.CANONICAL_ROLE,
+ new CartesianQueuedUnitCartesianQueuedUnitRefactoringUnitCompartment2CanonicalEditPolicy());
+ }
+
+ /**
+ * @generated
+ */
+ protected void setRatio(Double ratio) {
+ if (getFigure().getParent().getLayoutManager() instanceof ConstrainedToolbarLayout) {
+ super.setRatio(ratio);
+ }
+ }
+
+}
diff --git a/org.eclipse.emf.refactor.comrel.diagram/src/comrel/diagram/edit/parts/CartesianQueuedUnitCartesianQueuedUnitRefactoringUnitCompartment3EditPart.java b/org.eclipse.emf.refactor.comrel.diagram/src/comrel/diagram/edit/parts/CartesianQueuedUnitCartesianQueuedUnitRefactoringUnitCompartment3EditPart.java
new file mode 100644
index 0000000..bec06d6
--- /dev/null
+++ b/org.eclipse.emf.refactor.comrel.diagram/src/comrel/diagram/edit/parts/CartesianQueuedUnitCartesianQueuedUnitRefactoringUnitCompartment3EditPart.java
@@ -0,0 +1,85 @@
+/*
+ *
+ */
+package comrel.diagram.edit.parts;
+
+import org.eclipse.draw2d.IFigure;
+import org.eclipse.gef.EditPolicy;
+import org.eclipse.gmf.runtime.diagram.ui.editparts.ShapeCompartmentEditPart;
+import org.eclipse.gmf.runtime.diagram.ui.editpolicies.CreationEditPolicy;
+import org.eclipse.gmf.runtime.diagram.ui.editpolicies.DragDropEditPolicy;
+import org.eclipse.gmf.runtime.diagram.ui.editpolicies.EditPolicyRoles;
+import org.eclipse.gmf.runtime.diagram.ui.editpolicies.ResizableCompartmentEditPolicy;
+import org.eclipse.gmf.runtime.diagram.ui.figures.ResizableCompartmentFigure;
+import org.eclipse.gmf.runtime.draw2d.ui.figures.ConstrainedToolbarLayout;
+import org.eclipse.gmf.runtime.notation.View;
+
+import comrel.diagram.edit.policies.CartesianQueuedUnitCartesianQueuedUnitRefactoringUnitCompartment3CanonicalEditPolicy;
+import comrel.diagram.edit.policies.CartesianQueuedUnitCartesianQueuedUnitRefactoringUnitCompartment3ItemSemanticEditPolicy;
+import comrel.diagram.part.Messages;
+
+/**
+ * @generated
+ */
+public class CartesianQueuedUnitCartesianQueuedUnitRefactoringUnitCompartment3EditPart
+ extends ShapeCompartmentEditPart {
+
+ /**
+ * @generated
+ */
+ public static final int VISUAL_ID = 7008;
+
+ /**
+ * @generated
+ */
+ public CartesianQueuedUnitCartesianQueuedUnitRefactoringUnitCompartment3EditPart(
+ View view) {
+ super(view);
+ }
+
+ /**
+ * @generated
+ */
+ public String getCompartmentName() {
+ return Messages.CartesianQueuedUnitCartesianQueuedUnitRefactoringUnitCompartment3EditPart_title;
+ }
+
+ /**
+ * @generated
+ */
+ public IFigure createFigure() {
+ ResizableCompartmentFigure result = (ResizableCompartmentFigure) super
+ .createFigure();
+ result.setTitleVisibility(false);
+ return result;
+ }
+
+ /**
+ * @generated
+ */
+ protected void createDefaultEditPolicies() {
+ super.createDefaultEditPolicies();
+ installEditPolicy(EditPolicy.PRIMARY_DRAG_ROLE,
+ new ResizableCompartmentEditPolicy());
+ installEditPolicy(
+ EditPolicyRoles.SEMANTIC_ROLE,
+ new CartesianQueuedUnitCartesianQueuedUnitRefactoringUnitCompartment3ItemSemanticEditPolicy());
+ installEditPolicy(EditPolicyRoles.CREATION_ROLE,
+ new CreationEditPolicy());
+ installEditPolicy(EditPolicyRoles.DRAG_DROP_ROLE,
+ new DragDropEditPolicy());
+ installEditPolicy(
+ EditPolicyRoles.CANONICAL_ROLE,
+ new CartesianQueuedUnitCartesianQueuedUnitRefactoringUnitCompartment3CanonicalEditPolicy());
+ }
+
+ /**
+ * @generated
+ */
+ protected void setRatio(Double ratio) {
+ if (getFigure().getParent().getLayoutManager() instanceof ConstrainedToolbarLayout) {
+ super.setRatio(ratio);
+ }
+ }
+
+}
diff --git a/org.eclipse.emf.refactor.comrel.diagram/src/comrel/diagram/edit/parts/CartesianQueuedUnitCartesianQueuedUnitRefactoringUnitCompartment4EditPart.java b/org.eclipse.emf.refactor.comrel.diagram/src/comrel/diagram/edit/parts/CartesianQueuedUnitCartesianQueuedUnitRefactoringUnitCompartment4EditPart.java
new file mode 100644
index 0000000..6c6c448
--- /dev/null
+++ b/org.eclipse.emf.refactor.comrel.diagram/src/comrel/diagram/edit/parts/CartesianQueuedUnitCartesianQueuedUnitRefactoringUnitCompartment4EditPart.java
@@ -0,0 +1,85 @@
+/*
+ *
+ */
+package comrel.diagram.edit.parts;
+
+import org.eclipse.draw2d.IFigure;
+import org.eclipse.gef.EditPolicy;
+import org.eclipse.gmf.runtime.diagram.ui.editparts.ShapeCompartmentEditPart;
+import org.eclipse.gmf.runtime.diagram.ui.editpolicies.CreationEditPolicy;
+import org.eclipse.gmf.runtime.diagram.ui.editpolicies.DragDropEditPolicy;
+import org.eclipse.gmf.runtime.diagram.ui.editpolicies.EditPolicyRoles;
+import org.eclipse.gmf.runtime.diagram.ui.editpolicies.ResizableCompartmentEditPolicy;
+import org.eclipse.gmf.runtime.diagram.ui.figures.ResizableCompartmentFigure;
+import org.eclipse.gmf.runtime.draw2d.ui.figures.ConstrainedToolbarLayout;
+import org.eclipse.gmf.runtime.notation.View;
+
+import comrel.diagram.edit.policies.CartesianQueuedUnitCartesianQueuedUnitRefactoringUnitCompartment4CanonicalEditPolicy;
+import comrel.diagram.edit.policies.CartesianQueuedUnitCartesianQueuedUnitRefactoringUnitCompartment4ItemSemanticEditPolicy;
+import comrel.diagram.part.Messages;
+
+/**
+ * @generated
+ */
+public class CartesianQueuedUnitCartesianQueuedUnitRefactoringUnitCompartment4EditPart
+ extends ShapeCompartmentEditPart {
+
+ /**
+ * @generated
+ */
+ public static final int VISUAL_ID = 7012;
+
+ /**
+ * @generated
+ */
+ public CartesianQueuedUnitCartesianQueuedUnitRefactoringUnitCompartment4EditPart(
+ View view) {
+ super(view);
+ }
+
+ /**
+ * @generated
+ */
+ public String getCompartmentName() {
+ return Messages.CartesianQueuedUnitCartesianQueuedUnitRefactoringUnitCompartment4EditPart_title;
+ }
+
+ /**
+ * @generated
+ */
+ public IFigure createFigure() {
+ ResizableCompartmentFigure result = (ResizableCompartmentFigure) super
+ .createFigure();
+ result.setTitleVisibility(false);
+ return result;
+ }
+
+ /**
+ * @generated
+ */
+ protected void createDefaultEditPolicies() {
+ super.createDefaultEditPolicies();
+ installEditPolicy(EditPolicy.PRIMARY_DRAG_ROLE,
+ new ResizableCompartmentEditPolicy());
+ installEditPolicy(
+ EditPolicyRoles.SEMANTIC_ROLE,
+ new CartesianQueuedUnitCartesianQueuedUnitRefactoringUnitCompartment4ItemSemanticEditPolicy());
+ installEditPolicy(EditPolicyRoles.CREATION_ROLE,
+ new CreationEditPolicy());
+ installEditPolicy(EditPolicyRoles.DRAG_DROP_ROLE,
+ new DragDropEditPolicy());
+ installEditPolicy(
+ EditPolicyRoles.CANONICAL_ROLE,
+ new CartesianQueuedUnitCartesianQueuedUnitRefactoringUnitCompartment4CanonicalEditPolicy());
+ }
+
+ /**
+ * @generated
+ */
+ protected void setRatio(Double ratio) {
+ if (getFigure().getParent().getLayoutManager() instanceof ConstrainedToolbarLayout) {
+ super.setRatio(ratio);
+ }
+ }
+
+}
diff --git a/org.eclipse.emf.refactor.comrel.diagram/src/comrel/diagram/edit/parts/CartesianQueuedUnitCartesianQueuedUnitRefactoringUnitCompartment5EditPart.java b/org.eclipse.emf.refactor.comrel.diagram/src/comrel/diagram/edit/parts/CartesianQueuedUnitCartesianQueuedUnitRefactoringUnitCompartment5EditPart.java
new file mode 100644
index 0000000..231f34b
--- /dev/null
+++ b/org.eclipse.emf.refactor.comrel.diagram/src/comrel/diagram/edit/parts/CartesianQueuedUnitCartesianQueuedUnitRefactoringUnitCompartment5EditPart.java
@@ -0,0 +1,85 @@
+/*
+ *
+ */
+package comrel.diagram.edit.parts;
+
+import org.eclipse.draw2d.IFigure;
+import org.eclipse.gef.EditPolicy;
+import org.eclipse.gmf.runtime.diagram.ui.editparts.ShapeCompartmentEditPart;
+import org.eclipse.gmf.runtime.diagram.ui.editpolicies.CreationEditPolicy;
+import org.eclipse.gmf.runtime.diagram.ui.editpolicies.DragDropEditPolicy;
+import org.eclipse.gmf.runtime.diagram.ui.editpolicies.EditPolicyRoles;
+import org.eclipse.gmf.runtime.diagram.ui.editpolicies.ResizableCompartmentEditPolicy;
+import org.eclipse.gmf.runtime.diagram.ui.figures.ResizableCompartmentFigure;
+import org.eclipse.gmf.runtime.draw2d.ui.figures.ConstrainedToolbarLayout;
+import org.eclipse.gmf.runtime.notation.View;
+
+import comrel.diagram.edit.policies.CartesianQueuedUnitCartesianQueuedUnitRefactoringUnitCompartment5CanonicalEditPolicy;
+import comrel.diagram.edit.policies.CartesianQueuedUnitCartesianQueuedUnitRefactoringUnitCompartment5ItemSemanticEditPolicy;
+import comrel.diagram.part.Messages;
+
+/**
+ * @generated
+ */
+public class CartesianQueuedUnitCartesianQueuedUnitRefactoringUnitCompartment5EditPart
+ extends ShapeCompartmentEditPart {
+
+ /**
+ * @generated
+ */
+ public static final int VISUAL_ID = 7016;
+
+ /**
+ * @generated
+ */
+ public CartesianQueuedUnitCartesianQueuedUnitRefactoringUnitCompartment5EditPart(
+ View view) {
+ super(view);
+ }
+
+ /**
+ * @generated
+ */
+ public String getCompartmentName() {
+ return Messages.CartesianQueuedUnitCartesianQueuedUnitRefactoringUnitCompartment5EditPart_title;
+ }
+
+ /**
+ * @generated
+ */
+ public IFigure createFigure() {
+ ResizableCompartmentFigure result = (ResizableCompartmentFigure) super
+ .createFigure();
+ result.setTitleVisibility(false);
+ return result;
+ }
+
+ /**
+ * @generated
+ */
+ protected void createDefaultEditPolicies() {
+ super.createDefaultEditPolicies();
+ installEditPolicy(EditPolicy.PRIMARY_DRAG_ROLE,
+ new ResizableCompartmentEditPolicy());
+ installEditPolicy(
+ EditPolicyRoles.SEMANTIC_ROLE,
+ new CartesianQueuedUnitCartesianQueuedUnitRefactoringUnitCompartment5ItemSemanticEditPolicy());
+ installEditPolicy(EditPolicyRoles.CREATION_ROLE,
+ new CreationEditPolicy());
+ installEditPolicy(EditPolicyRoles.DRAG_DROP_ROLE,
+ new DragDropEditPolicy());
+ installEditPolicy(
+ EditPolicyRoles.CANONICAL_ROLE,
+ new CartesianQueuedUnitCartesianQueuedUnitRefactoringUnitCompartment5CanonicalEditPolicy());
+ }
+
+ /**
+ * @generated
+ */
+ protected void setRatio(Double ratio) {
+ if (getFigure().getParent().getLayoutManager() instanceof ConstrainedToolbarLayout) {
+ super.setRatio(ratio);
+ }
+ }
+
+}
diff --git a/org.eclipse.emf.refactor.comrel.diagram/src/comrel/diagram/edit/parts/CartesianQueuedUnitCartesianQueuedUnitRefactoringUnitCompartment6EditPart.java b/org.eclipse.emf.refactor.comrel.diagram/src/comrel/diagram/edit/parts/CartesianQueuedUnitCartesianQueuedUnitRefactoringUnitCompartment6EditPart.java
new file mode 100644
index 0000000..3ee01a6
--- /dev/null
+++ b/org.eclipse.emf.refactor.comrel.diagram/src/comrel/diagram/edit/parts/CartesianQueuedUnitCartesianQueuedUnitRefactoringUnitCompartment6EditPart.java
@@ -0,0 +1,85 @@
+/*
+ *
+ */
+package comrel.diagram.edit.parts;
+
+import org.eclipse.draw2d.IFigure;
+import org.eclipse.gef.EditPolicy;
+import org.eclipse.gmf.runtime.diagram.ui.editparts.ShapeCompartmentEditPart;
+import org.eclipse.gmf.runtime.diagram.ui.editpolicies.CreationEditPolicy;
+import org.eclipse.gmf.runtime.diagram.ui.editpolicies.DragDropEditPolicy;
+import org.eclipse.gmf.runtime.diagram.ui.editpolicies.EditPolicyRoles;
+import org.eclipse.gmf.runtime.diagram.ui.editpolicies.ResizableCompartmentEditPolicy;
+import org.eclipse.gmf.runtime.diagram.ui.figures.ResizableCompartmentFigure;
+import org.eclipse.gmf.runtime.draw2d.ui.figures.ConstrainedToolbarLayout;
+import org.eclipse.gmf.runtime.notation.View;
+
+import comrel.diagram.edit.policies.CartesianQueuedUnitCartesianQueuedUnitRefactoringUnitCompartment6CanonicalEditPolicy;
+import comrel.diagram.edit.policies.CartesianQueuedUnitCartesianQueuedUnitRefactoringUnitCompartment6ItemSemanticEditPolicy;
+import comrel.diagram.part.Messages;
+
+/**
+ * @generated
+ */
+public class CartesianQueuedUnitCartesianQueuedUnitRefactoringUnitCompartment6EditPart
+ extends ShapeCompartmentEditPart {
+
+ /**
+ * @generated
+ */
+ public static final int VISUAL_ID = 7022;
+
+ /**
+ * @generated
+ */
+ public CartesianQueuedUnitCartesianQueuedUnitRefactoringUnitCompartment6EditPart(
+ View view) {
+ super(view);
+ }
+
+ /**
+ * @generated
+ */
+ public String getCompartmentName() {
+ return Messages.CartesianQueuedUnitCartesianQueuedUnitRefactoringUnitCompartment6EditPart_title;
+ }
+
+ /**
+ * @generated
+ */
+ public IFigure createFigure() {
+ ResizableCompartmentFigure result = (ResizableCompartmentFigure) super
+ .createFigure();
+ result.setTitleVisibility(false);
+ return result;
+ }
+
+ /**
+ * @generated
+ */
+ protected void createDefaultEditPolicies() {
+ super.createDefaultEditPolicies();
+ installEditPolicy(EditPolicy.PRIMARY_DRAG_ROLE,
+ new ResizableCompartmentEditPolicy());
+ installEditPolicy(
+ EditPolicyRoles.SEMANTIC_ROLE,
+ new CartesianQueuedUnitCartesianQueuedUnitRefactoringUnitCompartment6ItemSemanticEditPolicy());
+ installEditPolicy(EditPolicyRoles.CREATION_ROLE,
+ new CreationEditPolicy());
+ installEditPolicy(EditPolicyRoles.DRAG_DROP_ROLE,
+ new DragDropEditPolicy());
+ installEditPolicy(
+ EditPolicyRoles.CANONICAL_ROLE,
+ new CartesianQueuedUnitCartesianQueuedUnitRefactoringUnitCompartment6CanonicalEditPolicy());
+ }
+
+ /**
+ * @generated
+ */
+ protected void setRatio(Double ratio) {
+ if (getFigure().getParent().getLayoutManager() instanceof ConstrainedToolbarLayout) {
+ super.setRatio(ratio);
+ }
+ }
+
+}
diff --git a/org.eclipse.emf.refactor.comrel.diagram/src/comrel/diagram/edit/parts/CartesianQueuedUnitCartesianQueuedUnitRefactoringUnitCompartment7EditPart.java b/org.eclipse.emf.refactor.comrel.diagram/src/comrel/diagram/edit/parts/CartesianQueuedUnitCartesianQueuedUnitRefactoringUnitCompartment7EditPart.java
new file mode 100644
index 0000000..b0775be
--- /dev/null
+++ b/org.eclipse.emf.refactor.comrel.diagram/src/comrel/diagram/edit/parts/CartesianQueuedUnitCartesianQueuedUnitRefactoringUnitCompartment7EditPart.java
@@ -0,0 +1,85 @@
+/*
+ *
+ */
+package comrel.diagram.edit.parts;
+
+import org.eclipse.draw2d.IFigure;
+import org.eclipse.gef.EditPolicy;
+import org.eclipse.gmf.runtime.diagram.ui.editparts.ShapeCompartmentEditPart;
+import org.eclipse.gmf.runtime.diagram.ui.editpolicies.CreationEditPolicy;
+import org.eclipse.gmf.runtime.diagram.ui.editpolicies.DragDropEditPolicy;
+import org.eclipse.gmf.runtime.diagram.ui.editpolicies.EditPolicyRoles;
+import org.eclipse.gmf.runtime.diagram.ui.editpolicies.ResizableCompartmentEditPolicy;
+import org.eclipse.gmf.runtime.diagram.ui.figures.ResizableCompartmentFigure;
+import org.eclipse.gmf.runtime.draw2d.ui.figures.ConstrainedToolbarLayout;
+import org.eclipse.gmf.runtime.notation.View;
+
+import comrel.diagram.edit.policies.CartesianQueuedUnitCartesianQueuedUnitRefactoringUnitCompartment7CanonicalEditPolicy;
+import comrel.diagram.edit.policies.CartesianQueuedUnitCartesianQueuedUnitRefactoringUnitCompartment7ItemSemanticEditPolicy;
+import comrel.diagram.part.Messages;
+
+/**
+ * @generated
+ */
+public class CartesianQueuedUnitCartesianQueuedUnitRefactoringUnitCompartment7EditPart
+ extends ShapeCompartmentEditPart {
+
+ /**
+ * @generated
+ */
+ public static final int VISUAL_ID = 7040;
+
+ /**
+ * @generated
+ */
+ public CartesianQueuedUnitCartesianQueuedUnitRefactoringUnitCompartment7EditPart(
+ View view) {
+ super(view);
+ }
+
+ /**
+ * @generated
+ */
+ public String getCompartmentName() {
+ return Messages.CartesianQueuedUnitCartesianQueuedUnitRefactoringUnitCompartment7EditPart_title;
+ }
+
+ /**
+ * @generated
+ */
+ public IFigure createFigure() {
+ ResizableCompartmentFigure result = (ResizableCompartmentFigure) super
+ .createFigure();
+ result.setTitleVisibility(false);
+ return result;
+ }
+
+ /**
+ * @generated
+ */
+ protected void createDefaultEditPolicies() {
+ super.createDefaultEditPolicies();
+ installEditPolicy(EditPolicy.PRIMARY_DRAG_ROLE,
+ new ResizableCompartmentEditPolicy());
+ installEditPolicy(
+ EditPolicyRoles.SEMANTIC_ROLE,
+ new CartesianQueuedUnitCartesianQueuedUnitRefactoringUnitCompartment7ItemSemanticEditPolicy());
+ installEditPolicy(EditPolicyRoles.CREATION_ROLE,
+ new CreationEditPolicy());
+ installEditPolicy(EditPolicyRoles.DRAG_DROP_ROLE,
+ new DragDropEditPolicy());
+ installEditPolicy(
+ EditPolicyRoles.CANONICAL_ROLE,
+ new CartesianQueuedUnitCartesianQueuedUnitRefactoringUnitCompartment7CanonicalEditPolicy());
+ }
+
+ /**
+ * @generated
+ */
+ protected void setRatio(Double ratio) {
+ if (getFigure().getParent().getLayoutManager() instanceof ConstrainedToolbarLayout) {
+ super.setRatio(ratio);
+ }
+ }
+
+}
diff --git a/org.eclipse.emf.refactor.comrel.diagram/src/comrel/diagram/edit/parts/CartesianQueuedUnitCartesianQueuedUnitRefactoringUnitCompartmentEditPart.java b/org.eclipse.emf.refactor.comrel.diagram/src/comrel/diagram/edit/parts/CartesianQueuedUnitCartesianQueuedUnitRefactoringUnitCompartmentEditPart.java
new file mode 100644
index 0000000..1a7b069
--- /dev/null
+++ b/org.eclipse.emf.refactor.comrel.diagram/src/comrel/diagram/edit/parts/CartesianQueuedUnitCartesianQueuedUnitRefactoringUnitCompartmentEditPart.java
@@ -0,0 +1,85 @@
+/*
+ *
+ */
+package comrel.diagram.edit.parts;
+
+import org.eclipse.draw2d.IFigure;
+import org.eclipse.gef.EditPolicy;
+import org.eclipse.gmf.runtime.diagram.ui.editparts.ShapeCompartmentEditPart;
+import org.eclipse.gmf.runtime.diagram.ui.editpolicies.CreationEditPolicy;
+import org.eclipse.gmf.runtime.diagram.ui.editpolicies.DragDropEditPolicy;
+import org.eclipse.gmf.runtime.diagram.ui.editpolicies.EditPolicyRoles;
+import org.eclipse.gmf.runtime.diagram.ui.editpolicies.ResizableCompartmentEditPolicy;
+import org.eclipse.gmf.runtime.diagram.ui.figures.ResizableCompartmentFigure;
+import org.eclipse.gmf.runtime.draw2d.ui.figures.ConstrainedToolbarLayout;
+import org.eclipse.gmf.runtime.notation.View;
+
+import comrel.diagram.edit.policies.CartesianQueuedUnitCartesianQueuedUnitRefactoringUnitCompartmentCanonicalEditPolicy;
+import comrel.diagram.edit.policies.CartesianQueuedUnitCartesianQueuedUnitRefactoringUnitCompartmentItemSemanticEditPolicy;
+import comrel.diagram.part.Messages;
+
+/**
+ * @generated
+ */
+public class CartesianQueuedUnitCartesianQueuedUnitRefactoringUnitCompartmentEditPart
+ extends ShapeCompartmentEditPart {
+
+ /**
+ * @generated
+ */
+ public static final int VISUAL_ID = 7002;
+
+ /**
+ * @generated
+ */
+ public CartesianQueuedUnitCartesianQueuedUnitRefactoringUnitCompartmentEditPart(
+ View view) {
+ super(view);
+ }
+
+ /**
+ * @generated
+ */
+ public String getCompartmentName() {
+ return Messages.CartesianQueuedUnitCartesianQueuedUnitRefactoringUnitCompartmentEditPart_title;
+ }
+
+ /**
+ * @generated
+ */
+ public IFigure createFigure() {
+ ResizableCompartmentFigure result = (ResizableCompartmentFigure) super
+ .createFigure();
+ result.setTitleVisibility(false);
+ return result;
+ }
+
+ /**
+ * @generated
+ */
+ protected void createDefaultEditPolicies() {
+ super.createDefaultEditPolicies();
+ installEditPolicy(EditPolicy.PRIMARY_DRAG_ROLE,
+ new ResizableCompartmentEditPolicy());
+ installEditPolicy(
+ EditPolicyRoles.SEMANTIC_ROLE,
+ new CartesianQueuedUnitCartesianQueuedUnitRefactoringUnitCompartmentItemSemanticEditPolicy());
+ installEditPolicy(EditPolicyRoles.CREATION_ROLE,
+ new CreationEditPolicy());
+ installEditPolicy(EditPolicyRoles.DRAG_DROP_ROLE,
+ new DragDropEditPolicy());
+ installEditPolicy(
+ EditPolicyRoles.CANONICAL_ROLE,
+ new CartesianQueuedUnitCartesianQueuedUnitRefactoringUnitCompartmentCanonicalEditPolicy());
+ }
+
+ /**
+ * @generated
+ */
+ protected void setRatio(Double ratio) {
+ if (getFigure().getParent().getLayoutManager() instanceof ConstrainedToolbarLayout) {
+ super.setRatio(ratio);
+ }
+ }
+
+}
diff --git a/org.eclipse.emf.refactor.comrel.diagram/src/comrel/diagram/edit/parts/CartesianQueuedUnitEditPart.java b/org.eclipse.emf.refactor.comrel.diagram/src/comrel/diagram/edit/parts/CartesianQueuedUnitEditPart.java
new file mode 100644
index 0000000..07edb9e
--- /dev/null
+++ b/org.eclipse.emf.refactor.comrel.diagram/src/comrel/diagram/edit/parts/CartesianQueuedUnitEditPart.java
@@ -0,0 +1,451 @@
+/*
+ *
+ */
+package comrel.diagram.edit.parts;
+
+import org.eclipse.draw2d.IFigure;
+import org.eclipse.draw2d.MarginBorder;
+import org.eclipse.draw2d.PositionConstants;
+import org.eclipse.draw2d.RectangleFigure;
+import org.eclipse.draw2d.RoundedRectangle;
+import org.eclipse.draw2d.Shape;
+import org.eclipse.draw2d.StackLayout;
+import org.eclipse.draw2d.geometry.Dimension;
+import org.eclipse.emf.common.notify.Notification;
+import org.eclipse.emf.ecore.EcorePackage;
+import org.eclipse.gef.EditPart;
+import org.eclipse.gef.EditPolicy;
+import org.eclipse.gef.Request;
+import org.eclipse.gef.commands.Command;
+import org.eclipse.gef.editpolicies.LayoutEditPolicy;
+import org.eclipse.gef.editpolicies.NonResizableEditPolicy;
+import org.eclipse.gef.requests.CreateRequest;
+import org.eclipse.gmf.runtime.diagram.ui.editparts.AbstractBorderedShapeEditPart;
+import org.eclipse.gmf.runtime.diagram.ui.editparts.IBorderItemEditPart;
+import org.eclipse.gmf.runtime.diagram.ui.editparts.IGraphicalEditPart;
+import org.eclipse.gmf.runtime.diagram.ui.editpolicies.BorderItemSelectionEditPolicy;
+import org.eclipse.gmf.runtime.diagram.ui.editpolicies.CreationEditPolicy;
+import org.eclipse.gmf.runtime.diagram.ui.editpolicies.DragDropEditPolicy;
+import org.eclipse.gmf.runtime.diagram.ui.editpolicies.EditPolicyRoles;
+import org.eclipse.gmf.runtime.diagram.ui.figures.BorderItemLocator;
+import org.eclipse.gmf.runtime.draw2d.ui.figures.ConstrainedToolbarLayout;
+import org.eclipse.gmf.runtime.draw2d.ui.figures.WrappingLabel;
+import org.eclipse.gmf.runtime.gef.ui.figures.DefaultSizeNodeFigure;
+import org.eclipse.gmf.runtime.gef.ui.figures.NodeFigure;
+import org.eclipse.gmf.runtime.notation.View;
+import org.eclipse.swt.graphics.Color;
+
+import comrel.diagram.edit.parts.custom.Labels;
+import comrel.diagram.edit.policies.CartesianQueuedUnitCanonicalEditPolicy;
+import comrel.diagram.edit.policies.CartesianQueuedUnitItemSemanticEditPolicy;
+import comrel.diagram.edit.policies.OpenDiagramEditPolicy;
+import comrel.diagram.part.ComrelVisualIDRegistry;
+
+/**
+ * @generated
+ */
+public class CartesianQueuedUnitEditPart extends AbstractBorderedShapeEditPart {
+
+ /**
+ * @generated
+ */
+ public static final int VISUAL_ID = 2002;
+
+ /**
+ * @generated
+ */
+ protected IFigure contentPane;
+
+ /**
+ * @generated
+ */
+ protected IFigure primaryShape;
+
+ /**
+ * @generated
+ */
+ public CartesianQueuedUnitEditPart(View view) {
+ super(view);
+ }
+
+ /**
+ * @generated
+ */
+ protected void createDefaultEditPolicies() {
+ installEditPolicy(EditPolicyRoles.CREATION_ROLE,
+ new CreationEditPolicy());
+ super.createDefaultEditPolicies();
+ installEditPolicy(EditPolicyRoles.SEMANTIC_ROLE,
+ new CartesianQueuedUnitItemSemanticEditPolicy());
+ installEditPolicy(EditPolicyRoles.DRAG_DROP_ROLE,
+ new DragDropEditPolicy());
+ installEditPolicy(EditPolicyRoles.CANONICAL_ROLE,
+ new CartesianQueuedUnitCanonicalEditPolicy());
+ installEditPolicy(EditPolicy.LAYOUT_ROLE, createLayoutEditPolicy());
+ installEditPolicy(EditPolicyRoles.OPEN_ROLE,
+ new OpenDiagramEditPolicy());
+ // XXX need an SCR to runtime to have another abstract superclass that would let children add reasonable editpolicies
+ // removeEditPolicy(org.eclipse.gmf.runtime.diagram.ui.editpolicies.EditPolicyRoles.CONNECTION_HANDLES_ROLE);
+ }
+
+ /**
+ * @generated
+ */
+ protected LayoutEditPolicy createLayoutEditPolicy() {
+ org.eclipse.gmf.runtime.diagram.ui.editpolicies.LayoutEditPolicy lep = new org.eclipse.gmf.runtime.diagram.ui.editpolicies.LayoutEditPolicy() {
+
+ protected EditPolicy createChildEditPolicy(EditPart child) {
+ View childView = (View) child.getModel();
+ switch (ComrelVisualIDRegistry.getVisualID(childView)) {
+ case SingleInputPort2EditPart.VISUAL_ID:
+ case MultiInputPortEditPart.VISUAL_ID:
+ return new BorderItemSelectionEditPolicy();
+ }
+ EditPolicy result = child
+ .getEditPolicy(EditPolicy.PRIMARY_DRAG_ROLE);
+ if (result == null) {
+ result = new NonResizableEditPolicy();
+ }
+ return result;
+ }
+
+ protected Command getMoveChildrenCommand(Request request) {
+ return null;
+ }
+
+ protected Command getCreateCommand(CreateRequest request) {
+ return null;
+ }
+ };
+ return lep;
+ }
+
+ /**
+ * @generated NOT
+ */
+ protected IFigure createNodeShape() {
+ CartesianQueuedUnitFigure figure = new CartesianQueuedUnitFigure();
+ RectangleFigure compHelper = (RectangleFigure) figure.getChildren()
+ .get(1);
+ RectangleFigure compRef = (RectangleFigure) figure.getChildren().get(2);
+ Labels.setLabels(compHelper, compRef, true);
+ return primaryShape = figure;
+ }
+
+ /**
+ * @generated
+ */
+ public CartesianQueuedUnitFigure getPrimaryShape() {
+ return (CartesianQueuedUnitFigure) primaryShape;
+ }
+
+ /**
+ * @generated NOT
+ */
+ protected boolean addFixedChild(EditPart childEditPart) {
+ if (childEditPart instanceof CartesianQueuedUnitNameTypeLblStrictEditPart) {
+ ((CartesianQueuedUnitNameTypeLblStrictEditPart) childEditPart)
+ .setLabel(getPrimaryShape()
+ .getFigureCartesianQueuedUnitLabelFigure());
+ return true;
+ }
+ if (childEditPart instanceof CartesianQueuedUnitCartesianQueuedUnitHelperUnitsCompartmentEditPart) {
+ IFigure pane = getPrimaryShape()
+ .getCartesianQueuedUnitHelperUnitsCompartmentFigure();
+ setupContentPane(pane); // FIXME each comparment should handle his content pane in his own way
+ pane.add(((CartesianQueuedUnitCartesianQueuedUnitHelperUnitsCompartmentEditPart) childEditPart)
+ .getFigure());
+ return true;
+ }
+ if (childEditPart instanceof CartesianQueuedUnitCartesianQueuedUnitRefactoringUnitCompartmentEditPart) {
+ IFigure pane = getPrimaryShape()
+ .getCartesianQueuedUnitRefactoringUnitCompartmentFigure();
+ setupContentPane(pane); // FIXME each comparment should handle his content pane in his own way
+ pane.add(((CartesianQueuedUnitCartesianQueuedUnitRefactoringUnitCompartmentEditPart) childEditPart)
+ .getFigure());
+ return true;
+ }
+ if (childEditPart instanceof SingleInputPort2EditPart) {
+ BorderItemLocator locator = new BorderItemLocator(getMainFigure(),
+ PositionConstants.NORTH);
+ locator.setCurrentSideOfParent(PositionConstants.NORTH); // Position des Ports
+ locator.setPreferredSideOfParent(PositionConstants.NORTH); // Position des Ports
+ getBorderedFigure().getBorderItemContainer().add(
+ ((SingleInputPort2EditPart) childEditPart).getFigure(),
+ locator);
+ return true;
+ }
+ if (childEditPart instanceof MultiInputPortEditPart) {
+ BorderItemLocator locator = new BorderItemLocator(getMainFigure(),
+ PositionConstants.NORTH);
+ locator.setCurrentSideOfParent(PositionConstants.NORTH); // Position des Ports
+ locator.setPreferredSideOfParent(PositionConstants.NORTH); // Position des Ports
+ getBorderedFigure().getBorderItemContainer().add(
+ ((MultiInputPortEditPart) childEditPart).getFigure(),
+ locator);
+ return true;
+ }
+ return false;
+ }
+
+ /**
+ * @generated NOT
+ */
+ protected boolean removeFixedChild(EditPart childEditPart) {
+ if (childEditPart instanceof CartesianQueuedUnitNameTypeLblStrictEditPart) {
+ return true;
+ }
+ if (childEditPart instanceof CartesianQueuedUnitCartesianQueuedUnitHelperUnitsCompartmentEditPart) {
+ IFigure pane = getPrimaryShape()
+ .getCartesianQueuedUnitHelperUnitsCompartmentFigure();
+ setupContentPane(pane); // FIXME each comparment should handle his content pane in his own way
+ pane.remove(((CartesianQueuedUnitCartesianQueuedUnitHelperUnitsCompartmentEditPart) childEditPart)
+ .getFigure());
+ return true;
+ }
+ if (childEditPart instanceof CartesianQueuedUnitCartesianQueuedUnitRefactoringUnitCompartmentEditPart) {
+ IFigure pane = getPrimaryShape()
+ .getCartesianQueuedUnitRefactoringUnitCompartmentFigure();
+ setupContentPane(pane); // FIXME each comparment should handle his content pane in his own way
+ pane.remove(((CartesianQueuedUnitCartesianQueuedUnitRefactoringUnitCompartmentEditPart) childEditPart)
+ .getFigure());
+ return true;
+ }
+ if (childEditPart instanceof SingleInputPort2EditPart) {
+ getBorderedFigure().getBorderItemContainer().remove(
+ ((SingleInputPort2EditPart) childEditPart).getFigure());
+ return true;
+ }
+ if (childEditPart instanceof MultiInputPortEditPart) {
+ // getBorderedFigure().getBorderItemContainer().remove(
+ // ((MultiInputPortEditPart) childEditPart).getFigure());
+ return true;
+ }
+ return false;
+ }
+
+ /**
+ * @generated
+ */
+ protected void addChildVisual(EditPart childEditPart, int index) {
+ if (addFixedChild(childEditPart)) {
+ return;
+ }
+ super.addChildVisual(childEditPart, -1);
+ }
+
+ /**
+ * @generated
+ */
+ protected void removeChildVisual(EditPart childEditPart) {
+ if (removeFixedChild(childEditPart)) {
+ return;
+ }
+ super.removeChildVisual(childEditPart);
+ }
+
+ /**
+ * @generated
+ */
+ protected IFigure getContentPaneFor(IGraphicalEditPart editPart) {
+ if (editPart instanceof CartesianQueuedUnitCartesianQueuedUnitHelperUnitsCompartmentEditPart) {
+ return getPrimaryShape()
+ .getCartesianQueuedUnitHelperUnitsCompartmentFigure();
+ }
+ if (editPart instanceof CartesianQueuedUnitCartesianQueuedUnitRefactoringUnitCompartmentEditPart) {
+ return getPrimaryShape()
+ .getCartesianQueuedUnitRefactoringUnitCompartmentFigure();
+ }
+ if (editPart instanceof IBorderItemEditPart) {
+ return getBorderedFigure().getBorderItemContainer();
+ }
+ return getContentPane();
+ }
+
+ /**
+ * @generated
+ */
+ protected NodeFigure createNodePlate() {
+ DefaultSizeNodeFigure result = new DefaultSizeNodeFigure(40, 40);
+ return result;
+ }
+
+ /**
+ * Creates figure for this edit part.
+ *
+ * Body of this method does not depend on settings in generation model
+ * so you may safely remove <i>generated</i> tag and modify it.
+ *
+ * @generated
+ */
+ protected NodeFigure createMainFigure() {
+ NodeFigure figure = createNodePlate();
+ figure.setLayoutManager(new StackLayout());
+ IFigure shape = createNodeShape();
+ figure.add(shape);
+ contentPane = setupContentPane(shape);
+ return figure;
+ }
+
+ /**
+ * Default implementation treats passed figure as content pane.
+ * Respects layout one may have set for generated figure.
+ * @param nodeShape instance of generated figure class
+ * @generated
+ */
+ protected IFigure setupContentPane(IFigure nodeShape) {
+ if (nodeShape.getLayoutManager() == null) {
+ ConstrainedToolbarLayout layout = new ConstrainedToolbarLayout();
+ layout.setSpacing(5);
+ nodeShape.setLayoutManager(layout);
+ }
+ return nodeShape; // use nodeShape itself as contentPane
+ }
+
+ /**
+ * @generated
+ */
+ public IFigure getContentPane() {
+ if (contentPane != null) {
+ return contentPane;
+ }
+ return super.getContentPane();
+ }
+
+ /**
+ * @generated
+ */
+ protected void setForegroundColor(Color color) {
+ if (primaryShape != null) {
+ primaryShape.setForegroundColor(color);
+ }
+ }
+
+ /**
+ * @generated
+ */
+ protected void setBackgroundColor(Color color) {
+ if (primaryShape != null) {
+ primaryShape.setBackgroundColor(color);
+ }
+ }
+
+ /**
+ * @generated
+ */
+ protected void setLineWidth(int width) {
+ if (primaryShape instanceof Shape) {
+ ((Shape) primaryShape).setLineWidth(width);
+ }
+ }
+
+ /**
+ * @generated
+ */
+ protected void setLineType(int style) {
+ if (primaryShape instanceof Shape) {
+ ((Shape) primaryShape).setLineStyle(style);
+ }
+ }
+
+ /**
+ * @generated
+ */
+ public EditPart getPrimaryChildEditPart() {
+ return getChildBySemanticHint(ComrelVisualIDRegistry
+ .getType(CartesianQueuedUnitNameTypeLblStrictEditPart.VISUAL_ID));
+ }
+
+ /**
+ * @generated
+ */
+ protected void handleNotificationEvent(Notification event) {
+ if (event.getNotifier() == getModel()
+ && EcorePackage.eINSTANCE.getEModelElement_EAnnotations()
+ .equals(event.getFeature())) {
+ handleMajorSemanticChange();
+ } else {
+ super.handleNotificationEvent(event);
+ }
+ }
+
+ /**
+ * @generated
+ */
+ public class CartesianQueuedUnitFigure extends RoundedRectangle {
+
+ /**
+ * @generated
+ */
+ private WrappingLabel fFigureCartesianQueuedUnitLabelFigure;
+ /**
+ * @generated
+ */
+ private RectangleFigure fCartesianQueuedUnitHelperUnitsCompartmentFigure;
+ /**
+ * @generated
+ */
+ private RectangleFigure fCartesianQueuedUnitRefactoringUnitCompartmentFigure;
+
+ /**
+ * @generated
+ */
+ public CartesianQueuedUnitFigure() {
+ this.setCornerDimensions(new Dimension(getMapMode().DPtoLP(8),
+ getMapMode().DPtoLP(8)));
+ this.setBorder(new MarginBorder(getMapMode().DPtoLP(5),
+ getMapMode().DPtoLP(5), getMapMode().DPtoLP(5),
+ getMapMode().DPtoLP(5)));
+ createContents();
+ }
+
+ /**
+ * @generated
+ */
+ private void createContents() {
+
+ fFigureCartesianQueuedUnitLabelFigure = new WrappingLabel();
+ fFigureCartesianQueuedUnitLabelFigure
+ .setText("CartesianQueuedUnit");
+ fFigureCartesianQueuedUnitLabelFigure.setMaximumSize(new Dimension(
+ getMapMode().DPtoLP(10000), getMapMode().DPtoLP(50)));
+
+ this.add(fFigureCartesianQueuedUnitLabelFigure);
+
+ fCartesianQueuedUnitHelperUnitsCompartmentFigure = new RectangleFigure();
+ fCartesianQueuedUnitHelperUnitsCompartmentFigure.setOutline(false);
+
+ this.add(fCartesianQueuedUnitHelperUnitsCompartmentFigure);
+
+ fCartesianQueuedUnitRefactoringUnitCompartmentFigure = new RectangleFigure();
+ fCartesianQueuedUnitRefactoringUnitCompartmentFigure
+ .setOutline(false);
+
+ this.add(fCartesianQueuedUnitRefactoringUnitCompartmentFigure);
+
+ }
+
+ /**
+ * @generated
+ */
+ public WrappingLabel getFigureCartesianQueuedUnitLabelFigure() {
+ return fFigureCartesianQueuedUnitLabelFigure;
+ }
+
+ /**
+ * @generated
+ */
+ public RectangleFigure getCartesianQueuedUnitHelperUnitsCompartmentFigure() {
+ return fCartesianQueuedUnitHelperUnitsCompartmentFigure;
+ }
+
+ /**
+ * @generated
+ */
+ public RectangleFigure getCartesianQueuedUnitRefactoringUnitCompartmentFigure() {
+ return fCartesianQueuedUnitRefactoringUnitCompartmentFigure;
+ }
+
+ }
+
+}
diff --git a/org.eclipse.emf.refactor.comrel.diagram/src/comrel/diagram/edit/parts/CartesianQueuedUnitNameTypeLblStrict2EditPart.java b/org.eclipse.emf.refactor.comrel.diagram/src/comrel/diagram/edit/parts/CartesianQueuedUnitNameTypeLblStrict2EditPart.java
new file mode 100644
index 0000000..7fab219
--- /dev/null
+++ b/org.eclipse.emf.refactor.comrel.diagram/src/comrel/diagram/edit/parts/CartesianQueuedUnitNameTypeLblStrict2EditPart.java
@@ -0,0 +1,576 @@
+/*
+ *
+ */
+package comrel.diagram.edit.parts;
+
+import java.util.Collections;
+import java.util.List;
+
+import org.eclipse.draw2d.IFigure;
+import org.eclipse.draw2d.Label;
+import org.eclipse.draw2d.geometry.Point;
+import org.eclipse.emf.common.notify.Notification;
+import org.eclipse.emf.ecore.EObject;
+import org.eclipse.emf.transaction.RunnableWithResult;
+import org.eclipse.gef.AccessibleEditPart;
+import org.eclipse.gef.EditPolicy;
+import org.eclipse.gef.Request;
+import org.eclipse.gef.requests.DirectEditRequest;
+import org.eclipse.gef.tools.DirectEditManager;
+import org.eclipse.gmf.runtime.common.ui.services.parser.IParser;
+import org.eclipse.gmf.runtime.common.ui.services.parser.IParserEditStatus;
+import org.eclipse.gmf.runtime.common.ui.services.parser.ParserEditStatus;
+import org.eclipse.gmf.runtime.common.ui.services.parser.ParserOptions;
+import org.eclipse.gmf.runtime.diagram.ui.editparts.CompartmentEditPart;
+import org.eclipse.gmf.runtime.diagram.ui.editparts.IGraphicalEditPart;
+import org.eclipse.gmf.runtime.diagram.ui.editparts.ITextAwareEditPart;
+import org.eclipse.gmf.runtime.diagram.ui.editpolicies.LabelDirectEditPolicy;
+import org.eclipse.gmf.runtime.diagram.ui.l10n.DiagramColorRegistry;
+import org.eclipse.gmf.runtime.diagram.ui.requests.RequestConstants;
+import org.eclipse.gmf.runtime.diagram.ui.tools.TextDirectEditManager;
+import org.eclipse.gmf.runtime.draw2d.ui.figures.WrappingLabel;
+import org.eclipse.gmf.runtime.emf.core.util.EObjectAdapter;
+import org.eclipse.gmf.runtime.emf.ui.services.parser.ISemanticParser;
+import org.eclipse.gmf.runtime.notation.FontStyle;
+import org.eclipse.gmf.runtime.notation.NotationPackage;
+import org.eclipse.gmf.runtime.notation.View;
+import org.eclipse.jface.text.contentassist.IContentAssistProcessor;
+import org.eclipse.jface.viewers.ICellEditorValidator;
+import org.eclipse.swt.SWT;
+import org.eclipse.swt.accessibility.AccessibleEvent;
+import org.eclipse.swt.graphics.Color;
+import org.eclipse.swt.graphics.FontData;
+import org.eclipse.swt.graphics.Image;
+
+import comrel.diagram.edit.policies.ComrelTextSelectionEditPolicy;
+import comrel.diagram.part.ComrelVisualIDRegistry;
+import comrel.diagram.providers.ComrelElementTypes;
+import comrel.diagram.providers.ComrelParserProvider;
+
+/**
+ * @generated
+ */
+public class CartesianQueuedUnitNameTypeLblStrict2EditPart extends
+ CompartmentEditPart implements ITextAwareEditPart {
+
+ /**
+ * @generated
+ */
+ public static final int VISUAL_ID = 5079;
+
+ /**
+ * @generated
+ */
+ private DirectEditManager manager;
+
+ /**
+ * @generated
+ */
+ private IParser parser;
+
+ /**
+ * @generated
+ */
+ private List<?> parserElements;
+
+ /**
+ * @generated
+ */
+ private String defaultText;
+
+ /**
+ * @generated
+ */
+ public CartesianQueuedUnitNameTypeLblStrict2EditPart(View view) {
+ super(view);
+ }
+
+ /**
+ * @generated
+ */
+ protected void createDefaultEditPolicies() {
+ super.createDefaultEditPolicies();
+ installEditPolicy(EditPolicy.SELECTION_FEEDBACK_ROLE,
+ new ComrelTextSelectionEditPolicy());
+ installEditPolicy(EditPolicy.DIRECT_EDIT_ROLE,
+ new LabelDirectEditPolicy());
+ installEditPolicy(EditPolicy.PRIMARY_DRAG_ROLE,
+ new CompositeRefactoringEditPart.NodeLabelDragPolicy());
+ }
+
+ /**
+ * @generated
+ */
+ protected String getLabelTextHelper(IFigure figure) {
+ if (figure instanceof WrappingLabel) {
+ return ((WrappingLabel) figure).getText();
+ } else {
+ return ((Label) figure).getText();
+ }
+ }
+
+ /**
+ * @generated
+ */
+ protected void setLabelTextHelper(IFigure figure, String text) {
+ if (figure instanceof WrappingLabel) {
+ ((WrappingLabel) figure).setText(text);
+ } else {
+ ((Label) figure).setText(text);
+ }
+ }
+
+ /**
+ * @generated
+ */
+ protected Image getLabelIconHelper(IFigure figure) {
+ if (figure instanceof WrappingLabel) {
+ return ((WrappingLabel) figure).getIcon();
+ } else {
+ return ((Label) figure).getIcon();
+ }
+ }
+
+ /**
+ * @generated
+ */
+ protected void setLabelIconHelper(IFigure figure, Image icon) {
+ if (figure instanceof WrappingLabel) {
+ ((WrappingLabel) figure).setIcon(icon);
+ } else {
+ ((Label) figure).setIcon(icon);
+ }
+ }
+
+ /**
+ * @generated
+ */
+ public void setLabel(WrappingLabel figure) {
+ unregisterVisuals();
+ setFigure(figure);
+ defaultText = getLabelTextHelper(figure);
+ registerVisuals();
+ refreshVisuals();
+ }
+
+ /**
+ * @generated
+ */
+ @SuppressWarnings("rawtypes")
+ protected List getModelChildren() {
+ return Collections.EMPTY_LIST;
+ }
+
+ /**
+ * @generated
+ */
+ public IGraphicalEditPart getChildBySemanticHint(String semanticHint) {
+ return null;
+ }
+
+ /**
+ * @generated
+ */
+ protected EObject getParserElement() {
+ return resolveSemanticElement();
+ }
+
+ /**
+ * @generated
+ */
+ protected Image getLabelIcon() {
+ return null;
+ }
+
+ /**
+ * @generated
+ */
+ protected String getLabelText() {
+ String text = null;
+ EObject parserElement = getParserElement();
+ if (parserElement != null && getParser() != null) {
+ text = getParser().getPrintString(
+ new EObjectAdapter(parserElement),
+ getParserOptions().intValue());
+ }
+ if (text == null || text.length() == 0) {
+ text = defaultText;
+ }
+ return text;
+ }
+
+ /**
+ * @generated
+ */
+ public void setLabelText(String text) {
+ setLabelTextHelper(getFigure(), text);
+ Object pdEditPolicy = getEditPolicy(EditPolicy.PRIMARY_DRAG_ROLE);
+ if (pdEditPolicy instanceof ComrelTextSelectionEditPolicy) {
+ ((ComrelTextSelectionEditPolicy) pdEditPolicy).refreshFeedback();
+ }
+ Object sfEditPolicy = getEditPolicy(EditPolicy.SELECTION_FEEDBACK_ROLE);
+ if (sfEditPolicy instanceof ComrelTextSelectionEditPolicy) {
+ ((ComrelTextSelectionEditPolicy) sfEditPolicy).refreshFeedback();
+ }
+ }
+
+ /**
+ * @generated
+ */
+ public String getEditText() {
+ if (getParserElement() == null || getParser() == null) {
+ return ""; //$NON-NLS-1$
+ }
+ return getParser().getEditString(
+ new EObjectAdapter(getParserElement()),
+ getParserOptions().intValue());
+ }
+
+ /**
+ * @generated
+ */
+ protected boolean isEditable() {
+ return getParser() != null;
+ }
+
+ /**
+ * @generated
+ */
+ public ICellEditorValidator getEditTextValidator() {
+ return new ICellEditorValidator() {
+
+ public String isValid(final Object value) {
+ if (value instanceof String) {
+ final EObject element = getParserElement();
+ final IParser parser = getParser();
+ try {
+ IParserEditStatus valid = (IParserEditStatus) getEditingDomain()
+ .runExclusive(
+ new RunnableWithResult.Impl<IParserEditStatus>() {
+
+ public void run() {
+ setResult(parser
+ .isValidEditString(
+ new EObjectAdapter(
+ element),
+ (String) value));
+ }
+ });
+ return valid.getCode() == ParserEditStatus.EDITABLE ? null
+ : valid.getMessage();
+ } catch (InterruptedException ie) {
+ ie.printStackTrace();
+ }
+ }
+
+ // shouldn't get here
+ return null;
+ }
+ };
+ }
+
+ /**
+ * @generated
+ */
+ public IContentAssistProcessor getCompletionProcessor() {
+ if (getParserElement() == null || getParser() == null) {
+ return null;
+ }
+ return getParser().getCompletionProcessor(
+ new EObjectAdapter(getParserElement()));
+ }
+
+ /**
+ * @generated
+ */
+ public ParserOptions getParserOptions() {
+ return ParserOptions.NONE;
+ }
+
+ /**
+ * @generated
+ */
+ public IParser getParser() {
+ if (parser == null) {
+ parser = ComrelParserProvider
+ .getParser(
+ ComrelElementTypes.CartesianQueuedUnit_3003,
+ getParserElement(),
+ ComrelVisualIDRegistry
+ .getType(comrel.diagram.edit.parts.CartesianQueuedUnitNameTypeLblStrict2EditPart.VISUAL_ID));
+ }
+ return parser;
+ }
+
+ /**
+ * @generated
+ */
+ protected DirectEditManager getManager() {
+ if (manager == null) {
+ setManager(new TextDirectEditManager(this,
+ TextDirectEditManager.getTextCellEditorClass(this),
+ ComrelEditPartFactory.getTextCellEditorLocator(this)));
+ }
+ return manager;
+ }
+
+ /**
+ * @generated
+ */
+ protected void setManager(DirectEditManager manager) {
+ this.manager = manager;
+ }
+
+ /**
+ * @generated
+ */
+ protected void performDirectEdit() {
+ getManager().show();
+ }
+
+ /**
+ * @generated
+ */
+ protected void performDirectEdit(Point eventLocation) {
+ if (getManager().getClass() == TextDirectEditManager.class) {
+ ((TextDirectEditManager) getManager()).show(eventLocation
+ .getSWTPoint());
+ }
+ }
+
+ /**
+ * @generated
+ */
+ private void performDirectEdit(char initialCharacter) {
+ if (getManager() instanceof TextDirectEditManager) {
+ ((TextDirectEditManager) getManager()).show(initialCharacter);
+ } else {
+ performDirectEdit();
+ }
+ }
+
+ /**
+ * @generated
+ */
+ protected void performDirectEditRequest(Request request) {
+ final Request theRequest = request;
+ try {
+ getEditingDomain().runExclusive(new Runnable() {
+
+ public void run() {
+ if (isActive() && isEditable()) {
+ if (theRequest
+ .getExtendedData()
+ .get(RequestConstants.REQ_DIRECTEDIT_EXTENDEDDATA_INITIAL_CHAR) instanceof Character) {
+ Character initialChar = (Character) theRequest
+ .getExtendedData()
+ .get(RequestConstants.REQ_DIRECTEDIT_EXTENDEDDATA_INITIAL_CHAR);
+ performDirectEdit(initialChar.charValue());
+ } else if ((theRequest instanceof DirectEditRequest)
+ && (getEditText().equals(getLabelText()))) {
+ DirectEditRequest editRequest = (DirectEditRequest) theRequest;
+ performDirectEdit(editRequest.getLocation());
+ } else {
+ performDirectEdit();
+ }
+ }
+ }
+ });
+ } catch (InterruptedException e) {
+ e.printStackTrace();
+ }
+ }
+
+ /**
+ * @generated
+ */
+ protected void refreshVisuals() {
+ super.refreshVisuals();
+ refreshLabel();
+ refreshFont();
+ refreshFontColor();
+ refreshUnderline();
+ refreshStrikeThrough();
+ }
+
+ /**
+ * @generated
+ */
+ protected void refreshLabel() {
+ setLabelTextHelper(getFigure(), getLabelText());
+ setLabelIconHelper(getFigure(), getLabelIcon());
+ Object pdEditPolicy = getEditPolicy(EditPolicy.PRIMARY_DRAG_ROLE);
+ if (pdEditPolicy instanceof ComrelTextSelectionEditPolicy) {
+ ((ComrelTextSelectionEditPolicy) pdEditPolicy).refreshFeedback();
+ }
+ Object sfEditPolicy = getEditPolicy(EditPolicy.SELECTION_FEEDBACK_ROLE);
+ if (sfEditPolicy instanceof ComrelTextSelectionEditPolicy) {
+ ((ComrelTextSelectionEditPolicy) sfEditPolicy).refreshFeedback();
+ }
+ }
+
+ /**
+ * @generated
+ */
+ protected void refreshUnderline() {
+ FontStyle style = (FontStyle) getFontStyleOwnerView().getStyle(
+ NotationPackage.eINSTANCE.getFontStyle());
+ if (style != null && getFigure() instanceof WrappingLabel) {
+ ((WrappingLabel) getFigure()).setTextUnderline(style.isUnderline());
+ }
+ }
+
+ /**
+ * @generated
+ */
+ protected void refreshStrikeThrough() {
+ FontStyle style = (FontStyle) getFontStyleOwnerView().getStyle(
+ NotationPackage.eINSTANCE.getFontStyle());
+ if (style != null && getFigure() instanceof WrappingLabel) {
+ ((WrappingLabel) getFigure()).setTextStrikeThrough(style
+ .isStrikeThrough());
+ }
+ }
+
+ /**
+ * @generated
+ */
+ protected void refreshFont() {
+ FontStyle style = (FontStyle) getFontStyleOwnerView().getStyle(
+ NotationPackage.eINSTANCE.getFontStyle());
+ if (style != null) {
+ FontData fontData = new FontData(style.getFontName(),
+ style.getFontHeight(), (style.isBold() ? SWT.BOLD
+ : SWT.NORMAL)
+ | (style.isItalic() ? SWT.ITALIC : SWT.NORMAL));
+ setFont(fontData);
+ }
+ }
+
+ /**
+ * @generated
+ */
+ protected void setFontColor(Color color) {
+ getFigure().setForegroundColor(color);
+ }
+
+ /**
+ * @generated
+ */
+ protected void addSemanticListeners() {
+ if (getParser() instanceof ISemanticParser) {
+ EObject element = resolveSemanticElement();
+ parserElements = ((ISemanticParser) getParser())
+ .getSemanticElementsBeingParsed(element);
+ for (int i = 0; i < parserElements.size(); i++) {
+ addListenerFilter(
+ "SemanticModel" + i, this, (EObject) parserElements.get(i)); //$NON-NLS-1$
+ }
+ } else {
+ super.addSemanticListeners();
+ }
+ }
+
+ /**
+ * @generated
+ */
+ protected void removeSemanticListeners() {
+ if (parserElements != null) {
+ for (int i = 0; i < parserElements.size(); i++) {
+ removeListenerFilter("SemanticModel" + i); //$NON-NLS-1$
+ }
+ } else {
+ super.removeSemanticListeners();
+ }
+ }
+
+ /**
+ * @generated
+ */
+ protected AccessibleEditPart getAccessibleEditPart() {
+ if (accessibleEP == null) {
+ accessibleEP = new AccessibleGraphicalEditPart() {
+
+ public void getName(AccessibleEvent e) {
+ e.result = getLabelTextHelper(getFigure());
+ }
+ };
+ }
+ return accessibleEP;
+ }
+
+ /**
+ * @generated
+ */
+ private View getFontStyleOwnerView() {
+ return getPrimaryView();
+ }
+
+ /**
+ * @generated
+ */
+ protected void addNotationalListeners() {
+ super.addNotationalListeners();
+ addListenerFilter("PrimaryView", this, getPrimaryView()); //$NON-NLS-1$
+ }
+
+ /**
+ * @generated
+ */
+ protected void removeNotationalListeners() {
+ super.removeNotationalListeners();
+ removeListenerFilter("PrimaryView"); //$NON-NLS-1$
+ }
+
+ /**
+ * @generated
+ */
+ protected void handleNotificationEvent(Notification event) {
+ Object feature = event.getFeature();
+ if (NotationPackage.eINSTANCE.getFontStyle_FontColor().equals(feature)) {
+ Integer c = (Integer) event.getNewValue();
+ setFontColor(DiagramColorRegistry.getInstance().getColor(c));
+ } else if (NotationPackage.eINSTANCE.getFontStyle_Underline().equals(
+ feature)) {
+ refreshUnderline();
+ } else if (NotationPackage.eINSTANCE.getFontStyle_StrikeThrough()
+ .equals(feature)) {
+ refreshStrikeThrough();
+ } else if (NotationPackage.eINSTANCE.getFontStyle_FontHeight().equals(
+ feature)
+ || NotationPackage.eINSTANCE.getFontStyle_FontName().equals(
+ feature)
+ || NotationPackage.eINSTANCE.getFontStyle_Bold()
+ .equals(feature)
+ || NotationPackage.eINSTANCE.getFontStyle_Italic().equals(
+ feature)) {
+ refreshFont();
+ } else {
+ if (getParser() != null
+ && getParser().isAffectingEvent(event,
+ getParserOptions().intValue())) {
+ refreshLabel();
+ }
+ if (getParser() instanceof ISemanticParser) {
+ ISemanticParser modelParser = (ISemanticParser) getParser();
+ if (modelParser.areSemanticElementsAffected(null, event)) {
+ removeSemanticListeners();
+ if (resolveSemanticElement() != null) {
+ addSemanticListeners();
+ }
+ refreshLabel();
+ }
+ }
+ }
+ super.handleNotificationEvent(event);
+ }
+
+ /**
+ * @generated
+ */
+ protected IFigure createFigure() {
+ // Parent should assign one using setLabel() method
+ return null;
+ }
+
+}
diff --git a/org.eclipse.emf.refactor.comrel.diagram/src/comrel/diagram/edit/parts/CartesianQueuedUnitNameTypeLblStrict3EditPart.java b/org.eclipse.emf.refactor.comrel.diagram/src/comrel/diagram/edit/parts/CartesianQueuedUnitNameTypeLblStrict3EditPart.java
new file mode 100644
index 0000000..f0c9584
--- /dev/null
+++ b/org.eclipse.emf.refactor.comrel.diagram/src/comrel/diagram/edit/parts/CartesianQueuedUnitNameTypeLblStrict3EditPart.java
@@ -0,0 +1,576 @@
+/*
+ *
+ */
+package comrel.diagram.edit.parts;
+
+import java.util.Collections;
+import java.util.List;
+
+import org.eclipse.draw2d.IFigure;
+import org.eclipse.draw2d.Label;
+import org.eclipse.draw2d.geometry.Point;
+import org.eclipse.emf.common.notify.Notification;
+import org.eclipse.emf.ecore.EObject;
+import org.eclipse.emf.transaction.RunnableWithResult;
+import org.eclipse.gef.AccessibleEditPart;
+import org.eclipse.gef.EditPolicy;
+import org.eclipse.gef.Request;
+import org.eclipse.gef.requests.DirectEditRequest;
+import org.eclipse.gef.tools.DirectEditManager;
+import org.eclipse.gmf.runtime.common.ui.services.parser.IParser;
+import org.eclipse.gmf.runtime.common.ui.services.parser.IParserEditStatus;
+import org.eclipse.gmf.runtime.common.ui.services.parser.ParserEditStatus;
+import org.eclipse.gmf.runtime.common.ui.services.parser.ParserOptions;
+import org.eclipse.gmf.runtime.diagram.ui.editparts.CompartmentEditPart;
+import org.eclipse.gmf.runtime.diagram.ui.editparts.IGraphicalEditPart;
+import org.eclipse.gmf.runtime.diagram.ui.editparts.ITextAwareEditPart;
+import org.eclipse.gmf.runtime.diagram.ui.editpolicies.LabelDirectEditPolicy;
+import org.eclipse.gmf.runtime.diagram.ui.l10n.DiagramColorRegistry;
+import org.eclipse.gmf.runtime.diagram.ui.requests.RequestConstants;
+import org.eclipse.gmf.runtime.diagram.ui.tools.TextDirectEditManager;
+import org.eclipse.gmf.runtime.draw2d.ui.figures.WrappingLabel;
+import org.eclipse.gmf.runtime.emf.core.util.EObjectAdapter;
+import org.eclipse.gmf.runtime.emf.ui.services.parser.ISemanticParser;
+import org.eclipse.gmf.runtime.notation.FontStyle;
+import org.eclipse.gmf.runtime.notation.NotationPackage;
+import org.eclipse.gmf.runtime.notation.View;
+import org.eclipse.jface.text.contentassist.IContentAssistProcessor;
+import org.eclipse.jface.viewers.ICellEditorValidator;
+import org.eclipse.swt.SWT;
+import org.eclipse.swt.accessibility.AccessibleEvent;
+import org.eclipse.swt.graphics.Color;
+import org.eclipse.swt.graphics.FontData;
+import org.eclipse.swt.graphics.Image;
+
+import comrel.diagram.edit.policies.ComrelTextSelectionEditPolicy;
+import comrel.diagram.part.ComrelVisualIDRegistry;
+import comrel.diagram.providers.ComrelElementTypes;
+import comrel.diagram.providers.ComrelParserProvider;
+
+/**
+ * @generated
+ */
+public class CartesianQueuedUnitNameTypeLblStrict3EditPart extends
+ CompartmentEditPart implements ITextAwareEditPart {
+
+ /**
+ * @generated
+ */
+ public static final int VISUAL_ID = 5077;
+
+ /**
+ * @generated
+ */
+ private DirectEditManager manager;
+
+ /**
+ * @generated
+ */
+ private IParser parser;
+
+ /**
+ * @generated
+ */
+ private List<?> parserElements;
+
+ /**
+ * @generated
+ */
+ private String defaultText;
+
+ /**
+ * @generated
+ */
+ public CartesianQueuedUnitNameTypeLblStrict3EditPart(View view) {
+ super(view);
+ }
+
+ /**
+ * @generated
+ */
+ protected void createDefaultEditPolicies() {
+ super.createDefaultEditPolicies();
+ installEditPolicy(EditPolicy.SELECTION_FEEDBACK_ROLE,
+ new ComrelTextSelectionEditPolicy());
+ installEditPolicy(EditPolicy.DIRECT_EDIT_ROLE,
+ new LabelDirectEditPolicy());
+ installEditPolicy(EditPolicy.PRIMARY_DRAG_ROLE,
+ new CompositeRefactoringEditPart.NodeLabelDragPolicy());
+ }
+
+ /**
+ * @generated
+ */
+ protected String getLabelTextHelper(IFigure figure) {
+ if (figure instanceof WrappingLabel) {
+ return ((WrappingLabel) figure).getText();
+ } else {
+ return ((Label) figure).getText();
+ }
+ }
+
+ /**
+ * @generated
+ */
+ protected void setLabelTextHelper(IFigure figure, String text) {
+ if (figure instanceof WrappingLabel) {
+ ((WrappingLabel) figure).setText(text);
+ } else {
+ ((Label) figure).setText(text);
+ }
+ }
+
+ /**
+ * @generated
+ */
+ protected Image getLabelIconHelper(IFigure figure) {
+ if (figure instanceof WrappingLabel) {
+ return ((WrappingLabel) figure).getIcon();
+ } else {
+ return ((Label) figure).getIcon();
+ }
+ }
+
+ /**
+ * @generated
+ */
+ protected void setLabelIconHelper(IFigure figure, Image icon) {
+ if (figure instanceof WrappingLabel) {
+ ((WrappingLabel) figure).setIcon(icon);
+ } else {
+ ((Label) figure).setIcon(icon);
+ }
+ }
+
+ /**
+ * @generated
+ */
+ public void setLabel(WrappingLabel figure) {
+ unregisterVisuals();
+ setFigure(figure);
+ defaultText = getLabelTextHelper(figure);
+ registerVisuals();
+ refreshVisuals();
+ }
+
+ /**
+ * @generated
+ */
+ @SuppressWarnings("rawtypes")
+ protected List getModelChildren() {
+ return Collections.EMPTY_LIST;
+ }
+
+ /**
+ * @generated
+ */
+ public IGraphicalEditPart getChildBySemanticHint(String semanticHint) {
+ return null;
+ }
+
+ /**
+ * @generated
+ */
+ protected EObject getParserElement() {
+ return resolveSemanticElement();
+ }
+
+ /**
+ * @generated
+ */
+ protected Image getLabelIcon() {
+ return null;
+ }
+
+ /**
+ * @generated
+ */
+ protected String getLabelText() {
+ String text = null;
+ EObject parserElement = getParserElement();
+ if (parserElement != null && getParser() != null) {
+ text = getParser().getPrintString(
+ new EObjectAdapter(parserElement),
+ getParserOptions().intValue());
+ }
+ if (text == null || text.length() == 0) {
+ text = defaultText;
+ }
+ return text;
+ }
+
+ /**
+ * @generated
+ */
+ public void setLabelText(String text) {
+ setLabelTextHelper(getFigure(), text);
+ Object pdEditPolicy = getEditPolicy(EditPolicy.PRIMARY_DRAG_ROLE);
+ if (pdEditPolicy instanceof ComrelTextSelectionEditPolicy) {
+ ((ComrelTextSelectionEditPolicy) pdEditPolicy).refreshFeedback();
+ }
+ Object sfEditPolicy = getEditPolicy(EditPolicy.SELECTION_FEEDBACK_ROLE);
+ if (sfEditPolicy instanceof ComrelTextSelectionEditPolicy) {
+ ((ComrelTextSelectionEditPolicy) sfEditPolicy).refreshFeedback();
+ }
+ }
+
+ /**
+ * @generated
+ */
+ public String getEditText() {
+ if (getParserElement() == null || getParser() == null) {
+ return ""; //$NON-NLS-1$
+ }
+ return getParser().getEditString(
+ new EObjectAdapter(getParserElement()),
+ getParserOptions().intValue());
+ }
+
+ /**
+ * @generated
+ */
+ protected boolean isEditable() {
+ return getParser() != null;
+ }
+
+ /**
+ * @generated
+ */
+ public ICellEditorValidator getEditTextValidator() {
+ return new ICellEditorValidator() {
+
+ public String isValid(final Object value) {
+ if (value instanceof String) {
+ final EObject element = getParserElement();
+ final IParser parser = getParser();
+ try {
+ IParserEditStatus valid = (IParserEditStatus) getEditingDomain()
+ .runExclusive(
+ new RunnableWithResult.Impl<IParserEditStatus>() {
+
+ public void run() {
+ setResult(parser
+ .isValidEditString(
+ new EObjectAdapter(
+ element),
+ (String) value));
+ }
+ });
+ return valid.getCode() == ParserEditStatus.EDITABLE ? null
+ : valid.getMessage();
+ } catch (InterruptedException ie) {
+ ie.printStackTrace();
+ }
+ }
+
+ // shouldn't get here
+ return null;
+ }
+ };
+ }
+
+ /**
+ * @generated
+ */
+ public IContentAssistProcessor getCompletionProcessor() {
+ if (getParserElement() == null || getParser() == null) {
+ return null;
+ }
+ return getParser().getCompletionProcessor(
+ new EObjectAdapter(getParserElement()));
+ }
+
+ /**
+ * @generated
+ */
+ public ParserOptions getParserOptions() {
+ return ParserOptions.NONE;
+ }
+
+ /**
+ * @generated
+ */
+ public IParser getParser() {
+ if (parser == null) {
+ parser = ComrelParserProvider
+ .getParser(
+ ComrelElementTypes.CartesianQueuedUnit_3007,
+ getParserElement(),
+ ComrelVisualIDRegistry
+ .getType(comrel.diagram.edit.parts.CartesianQueuedUnitNameTypeLblStrict3EditPart.VISUAL_ID));
+ }
+ return parser;
+ }
+
+ /**
+ * @generated
+ */
+ protected DirectEditManager getManager() {
+ if (manager == null) {
+ setManager(new TextDirectEditManager(this,
+ TextDirectEditManager.getTextCellEditorClass(this),
+ ComrelEditPartFactory.getTextCellEditorLocator(this)));
+ }
+ return manager;
+ }
+
+ /**
+ * @generated
+ */
+ protected void setManager(DirectEditManager manager) {
+ this.manager = manager;
+ }
+
+ /**
+ * @generated
+ */
+ protected void performDirectEdit() {
+ getManager().show();
+ }
+
+ /**
+ * @generated
+ */
+ protected void performDirectEdit(Point eventLocation) {
+ if (getManager().getClass() == TextDirectEditManager.class) {
+ ((TextDirectEditManager) getManager()).show(eventLocation
+ .getSWTPoint());
+ }
+ }
+
+ /**
+ * @generated
+ */
+ private void performDirectEdit(char initialCharacter) {
+ if (getManager() instanceof TextDirectEditManager) {
+ ((TextDirectEditManager) getManager()).show(initialCharacter);
+ } else {
+ performDirectEdit();
+ }
+ }
+
+ /**
+ * @generated
+ */
+ protected void performDirectEditRequest(Request request) {
+ final Request theRequest = request;
+ try {
+ getEditingDomain().runExclusive(new Runnable() {
+
+ public void run() {
+ if (isActive() && isEditable()) {
+ if (theRequest
+ .getExtendedData()
+ .get(RequestConstants.REQ_DIRECTEDIT_EXTENDEDDATA_INITIAL_CHAR) instanceof Character) {
+ Character initialChar = (Character) theRequest
+ .getExtendedData()
+ .get(RequestConstants.REQ_DIRECTEDIT_EXTENDEDDATA_INITIAL_CHAR);
+ performDirectEdit(initialChar.charValue());
+ } else if ((theRequest instanceof DirectEditRequest)
+ && (getEditText().equals(getLabelText()))) {
+ DirectEditRequest editRequest = (DirectEditRequest) theRequest;
+ performDirectEdit(editRequest.getLocation());
+ } else {
+ performDirectEdit();
+ }
+ }
+ }
+ });
+ } catch (InterruptedException e) {
+ e.printStackTrace();
+ }
+ }
+
+ /**
+ * @generated
+ */
+ protected void refreshVisuals() {
+ super.refreshVisuals();
+ refreshLabel();
+ refreshFont();
+ refreshFontColor();
+ refreshUnderline();
+ refreshStrikeThrough();
+ }
+
+ /**
+ * @generated
+ */
+ protected void refreshLabel() {
+ setLabelTextHelper(getFigure(), getLabelText());
+ setLabelIconHelper(getFigure(), getLabelIcon());
+ Object pdEditPolicy = getEditPolicy(EditPolicy.PRIMARY_DRAG_ROLE);
+ if (pdEditPolicy instanceof ComrelTextSelectionEditPolicy) {
+ ((ComrelTextSelectionEditPolicy) pdEditPolicy).refreshFeedback();
+ }
+ Object sfEditPolicy = getEditPolicy(EditPolicy.SELECTION_FEEDBACK_ROLE);
+ if (sfEditPolicy instanceof ComrelTextSelectionEditPolicy) {
+ ((ComrelTextSelectionEditPolicy) sfEditPolicy).refreshFeedback();
+ }
+ }
+
+ /**
+ * @generated
+ */
+ protected void refreshUnderline() {
+ FontStyle style = (FontStyle) getFontStyleOwnerView().getStyle(
+ NotationPackage.eINSTANCE.getFontStyle());
+ if (style != null && getFigure() instanceof WrappingLabel) {
+ ((WrappingLabel) getFigure()).setTextUnderline(style.isUnderline());
+ }
+ }
+
+ /**
+ * @generated
+ */
+ protected void refreshStrikeThrough() {
+ FontStyle style = (FontStyle) getFontStyleOwnerView().getStyle(
+ NotationPackage.eINSTANCE.getFontStyle());
+ if (style != null && getFigure() instanceof WrappingLabel) {
+ ((WrappingLabel) getFigure()).setTextStrikeThrough(style
+ .isStrikeThrough());
+ }
+ }
+
+ /**
+ * @generated
+ */
+ protected void refreshFont() {
+ FontStyle style = (FontStyle) getFontStyleOwnerView().getStyle(
+ NotationPackage.eINSTANCE.getFontStyle());
+ if (style != null) {
+ FontData fontData = new FontData(style.getFontName(),
+ style.getFontHeight(), (style.isBold() ? SWT.BOLD
+ : SWT.NORMAL)
+ | (style.isItalic() ? SWT.ITALIC : SWT.NORMAL));
+ setFont(fontData);
+ }
+ }
+
+ /**
+ * @generated
+ */
+ protected void setFontColor(Color color) {
+ getFigure().setForegroundColor(color);
+ }
+
+ /**
+ * @generated
+ */
+ protected void addSemanticListeners() {
+ if (getParser() instanceof ISemanticParser) {
+ EObject element = resolveSemanticElement();
+ parserElements = ((ISemanticParser) getParser())
+ .getSemanticElementsBeingParsed(element);
+ for (int i = 0; i < parserElements.size(); i++) {
+ addListenerFilter(
+ "SemanticModel" + i, this, (EObject) parserElements.get(i)); //$NON-NLS-1$
+ }
+ } else {
+ super.addSemanticListeners();
+ }
+ }
+
+ /**
+ * @generated
+ */
+ protected void removeSemanticListeners() {
+ if (parserElements != null) {
+ for (int i = 0; i < parserElements.size(); i++) {
+ removeListenerFilter("SemanticModel" + i); //$NON-NLS-1$
+ }
+ } else {
+ super.removeSemanticListeners();
+ }
+ }
+
+ /**
+ * @generated
+ */
+ protected AccessibleEditPart getAccessibleEditPart() {
+ if (accessibleEP == null) {
+ accessibleEP = new AccessibleGraphicalEditPart() {
+
+ public void getName(AccessibleEvent e) {
+ e.result = getLabelTextHelper(getFigure());
+ }
+ };
+ }
+ return accessibleEP;
+ }
+
+ /**
+ * @generated
+ */
+ private View getFontStyleOwnerView() {
+ return getPrimaryView();
+ }
+
+ /**
+ * @generated
+ */
+ protected void addNotationalListeners() {
+ super.addNotationalListeners();
+ addListenerFilter("PrimaryView", this, getPrimaryView()); //$NON-NLS-1$
+ }
+
+ /**
+ * @generated
+ */
+ protected void removeNotationalListeners() {
+ super.removeNotationalListeners();
+ removeListenerFilter("PrimaryView"); //$NON-NLS-1$
+ }
+
+ /**
+ * @generated
+ */
+ protected void handleNotificationEvent(Notification event) {
+ Object feature = event.getFeature();
+ if (NotationPackage.eINSTANCE.getFontStyle_FontColor().equals(feature)) {
+ Integer c = (Integer) event.getNewValue();
+ setFontColor(DiagramColorRegistry.getInstance().getColor(c));
+ } else if (NotationPackage.eINSTANCE.getFontStyle_Underline().equals(
+ feature)) {
+ refreshUnderline();
+ } else if (NotationPackage.eINSTANCE.getFontStyle_StrikeThrough()
+ .equals(feature)) {
+ refreshStrikeThrough();
+ } else if (NotationPackage.eINSTANCE.getFontStyle_FontHeight().equals(
+ feature)
+ || NotationPackage.eINSTANCE.getFontStyle_FontName().equals(
+ feature)
+ || NotationPackage.eINSTANCE.getFontStyle_Bold()
+ .equals(feature)
+ || NotationPackage.eINSTANCE.getFontStyle_Italic().equals(
+ feature)) {
+ refreshFont();
+ } else {
+ if (getParser() != null
+ && getParser().isAffectingEvent(event,
+ getParserOptions().intValue())) {
+ refreshLabel();
+ }
+ if (getParser() instanceof ISemanticParser) {
+ ISemanticParser modelParser = (ISemanticParser) getParser();
+ if (modelParser.areSemanticElementsAffected(null, event)) {
+ removeSemanticListeners();
+ if (resolveSemanticElement() != null) {
+ addSemanticListeners();
+ }
+ refreshLabel();
+ }
+ }
+ }
+ super.handleNotificationEvent(event);
+ }
+
+ /**
+ * @generated
+ */
+ protected IFigure createFigure() {
+ // Parent should assign one using setLabel() method
+ return null;
+ }
+
+}
diff --git a/org.eclipse.emf.refactor.comrel.diagram/src/comrel/diagram/edit/parts/CartesianQueuedUnitNameTypeLblStrict4EditPart.java b/org.eclipse.emf.refactor.comrel.diagram/src/comrel/diagram/edit/parts/CartesianQueuedUnitNameTypeLblStrict4EditPart.java
new file mode 100644
index 0000000..4dfeac7
--- /dev/null
+++ b/org.eclipse.emf.refactor.comrel.diagram/src/comrel/diagram/edit/parts/CartesianQueuedUnitNameTypeLblStrict4EditPart.java
@@ -0,0 +1,576 @@
+/*
+ *
+ */
+package comrel.diagram.edit.parts;
+
+import java.util.Collections;
+import java.util.List;
+
+import org.eclipse.draw2d.IFigure;
+import org.eclipse.draw2d.Label;
+import org.eclipse.draw2d.geometry.Point;
+import org.eclipse.emf.common.notify.Notification;
+import org.eclipse.emf.ecore.EObject;
+import org.eclipse.emf.transaction.RunnableWithResult;
+import org.eclipse.gef.AccessibleEditPart;
+import org.eclipse.gef.EditPolicy;
+import org.eclipse.gef.Request;
+import org.eclipse.gef.requests.DirectEditRequest;
+import org.eclipse.gef.tools.DirectEditManager;
+import org.eclipse.gmf.runtime.common.ui.services.parser.IParser;
+import org.eclipse.gmf.runtime.common.ui.services.parser.IParserEditStatus;
+import org.eclipse.gmf.runtime.common.ui.services.parser.ParserEditStatus;
+import org.eclipse.gmf.runtime.common.ui.services.parser.ParserOptions;
+import org.eclipse.gmf.runtime.diagram.ui.editparts.CompartmentEditPart;
+import org.eclipse.gmf.runtime.diagram.ui.editparts.IGraphicalEditPart;
+import org.eclipse.gmf.runtime.diagram.ui.editparts.ITextAwareEditPart;
+import org.eclipse.gmf.runtime.diagram.ui.editpolicies.LabelDirectEditPolicy;
+import org.eclipse.gmf.runtime.diagram.ui.l10n.DiagramColorRegistry;
+import org.eclipse.gmf.runtime.diagram.ui.requests.RequestConstants;
+import org.eclipse.gmf.runtime.diagram.ui.tools.TextDirectEditManager;
+import org.eclipse.gmf.runtime.draw2d.ui.figures.WrappingLabel;
+import org.eclipse.gmf.runtime.emf.core.util.EObjectAdapter;
+import org.eclipse.gmf.runtime.emf.ui.services.parser.ISemanticParser;
+import org.eclipse.gmf.runtime.notation.FontStyle;
+import org.eclipse.gmf.runtime.notation.NotationPackage;
+import org.eclipse.gmf.runtime.notation.View;
+import org.eclipse.jface.text.contentassist.IContentAssistProcessor;
+import org.eclipse.jface.viewers.ICellEditorValidator;
+import org.eclipse.swt.SWT;
+import org.eclipse.swt.accessibility.AccessibleEvent;
+import org.eclipse.swt.graphics.Color;
+import org.eclipse.swt.graphics.FontData;
+import org.eclipse.swt.graphics.Image;
+
+import comrel.diagram.edit.policies.ComrelTextSelectionEditPolicy;
+import comrel.diagram.part.ComrelVisualIDRegistry;
+import comrel.diagram.providers.ComrelElementTypes;
+import comrel.diagram.providers.ComrelParserProvider;
+
+/**
+ * @generated
+ */
+public class CartesianQueuedUnitNameTypeLblStrict4EditPart extends
+ CompartmentEditPart implements ITextAwareEditPart {
+
+ /**
+ * @generated
+ */
+ public static final int VISUAL_ID = 5075;
+
+ /**
+ * @generated
+ */
+ private DirectEditManager manager;
+
+ /**
+ * @generated
+ */
+ private IParser parser;
+
+ /**
+ * @generated
+ */
+ private List<?> parserElements;
+
+ /**
+ * @generated
+ */
+ private String defaultText;
+
+ /**
+ * @generated
+ */
+ public CartesianQueuedUnitNameTypeLblStrict4EditPart(View view) {
+ super(view);
+ }
+
+ /**
+ * @generated
+ */
+ protected void createDefaultEditPolicies() {
+ super.createDefaultEditPolicies();
+ installEditPolicy(EditPolicy.SELECTION_FEEDBACK_ROLE,
+ new ComrelTextSelectionEditPolicy());
+ installEditPolicy(EditPolicy.DIRECT_EDIT_ROLE,
+ new LabelDirectEditPolicy());
+ installEditPolicy(EditPolicy.PRIMARY_DRAG_ROLE,
+ new CompositeRefactoringEditPart.NodeLabelDragPolicy());
+ }
+
+ /**
+ * @generated
+ */
+ protected String getLabelTextHelper(IFigure figure) {
+ if (figure instanceof WrappingLabel) {
+ return ((WrappingLabel) figure).getText();
+ } else {
+ return ((Label) figure).getText();
+ }
+ }
+
+ /**
+ * @generated
+ */
+ protected void setLabelTextHelper(IFigure figure, String text) {
+ if (figure instanceof WrappingLabel) {
+ ((WrappingLabel) figure).setText(text);
+ } else {
+ ((Label) figure).setText(text);
+ }
+ }
+
+ /**
+ * @generated
+ */
+ protected Image getLabelIconHelper(IFigure figure) {
+ if (figure instanceof WrappingLabel) {
+ return ((WrappingLabel) figure).getIcon();
+ } else {
+ return ((Label) figure).getIcon();
+ }
+ }
+
+ /**
+ * @generated
+ */
+ protected void setLabelIconHelper(IFigure figure, Image icon) {
+ if (figure instanceof WrappingLabel) {
+ ((WrappingLabel) figure).setIcon(icon);
+ } else {
+ ((Label) figure).setIcon(icon);
+ }
+ }
+
+ /**
+ * @generated
+ */
+ public void setLabel(WrappingLabel figure) {
+ unregisterVisuals();
+ setFigure(figure);
+ defaultText = getLabelTextHelper(figure);
+ registerVisuals();
+ refreshVisuals();
+ }
+
+ /**
+ * @generated
+ */
+ @SuppressWarnings("rawtypes")
+ protected List getModelChildren() {
+ return Collections.EMPTY_LIST;
+ }
+
+ /**
+ * @generated
+ */
+ public IGraphicalEditPart getChildBySemanticHint(String semanticHint) {
+ return null;
+ }
+
+ /**
+ * @generated
+ */
+ protected EObject getParserElement() {
+ return resolveSemanticElement();
+ }
+
+ /**
+ * @generated
+ */
+ protected Image getLabelIcon() {
+ return null;
+ }
+
+ /**
+ * @generated
+ */
+ protected String getLabelText() {
+ String text = null;
+ EObject parserElement = getParserElement();
+ if (parserElement != null && getParser() != null) {
+ text = getParser().getPrintString(
+ new EObjectAdapter(parserElement),
+ getParserOptions().intValue());
+ }
+ if (text == null || text.length() == 0) {
+ text = defaultText;
+ }
+ return text;
+ }
+
+ /**
+ * @generated
+ */
+ public void setLabelText(String text) {
+ setLabelTextHelper(getFigure(), text);
+ Object pdEditPolicy = getEditPolicy(EditPolicy.PRIMARY_DRAG_ROLE);
+ if (pdEditPolicy instanceof ComrelTextSelectionEditPolicy) {
+ ((ComrelTextSelectionEditPolicy) pdEditPolicy).refreshFeedback();
+ }
+ Object sfEditPolicy = getEditPolicy(EditPolicy.SELECTION_FEEDBACK_ROLE);
+ if (sfEditPolicy instanceof ComrelTextSelectionEditPolicy) {
+ ((ComrelTextSelectionEditPolicy) sfEditPolicy).refreshFeedback();
+ }
+ }
+
+ /**
+ * @generated
+ */
+ public String getEditText() {
+ if (getParserElement() == null || getParser() == null) {
+ return ""; //$NON-NLS-1$
+ }
+ return getParser().getEditString(
+ new EObjectAdapter(getParserElement()),
+ getParserOptions().intValue());
+ }
+
+ /**
+ * @generated
+ */
+ protected boolean isEditable() {
+ return getParser() != null;
+ }
+
+ /**
+ * @generated
+ */
+ public ICellEditorValidator getEditTextValidator() {
+ return new ICellEditorValidator() {
+
+ public String isValid(final Object value) {
+ if (value instanceof String) {
+ final EObject element = getParserElement();
+ final IParser parser = getParser();
+ try {
+ IParserEditStatus valid = (IParserEditStatus) getEditingDomain()
+ .runExclusive(
+ new RunnableWithResult.Impl<IParserEditStatus>() {
+
+ public void run() {
+ setResult(parser
+ .isValidEditString(
+ new EObjectAdapter(
+ element),
+ (String) value));
+ }
+ });
+ return valid.getCode() == ParserEditStatus.EDITABLE ? null
+ : valid.getMessage();
+ } catch (InterruptedException ie) {
+ ie.printStackTrace();
+ }
+ }
+
+ // shouldn't get here
+ return null;
+ }
+ };
+ }
+
+ /**
+ * @generated
+ */
+ public IContentAssistProcessor getCompletionProcessor() {
+ if (getParserElement() == null || getParser() == null) {
+ return null;
+ }
+ return getParser().getCompletionProcessor(
+ new EObjectAdapter(getParserElement()));
+ }
+
+ /**
+ * @generated
+ */
+ public ParserOptions getParserOptions() {
+ return ParserOptions.NONE;
+ }
+
+ /**
+ * @generated
+ */
+ public IParser getParser() {
+ if (parser == null) {
+ parser = ComrelParserProvider
+ .getParser(
+ ComrelElementTypes.CartesianQueuedUnit_3025,
+ getParserElement(),
+ ComrelVisualIDRegistry
+ .getType(comrel.diagram.edit.parts.CartesianQueuedUnitNameTypeLblStrict4EditPart.VISUAL_ID));
+ }
+ return parser;
+ }
+
+ /**
+ * @generated
+ */
+ protected DirectEditManager getManager() {
+ if (manager == null) {
+ setManager(new TextDirectEditManager(this,
+ TextDirectEditManager.getTextCellEditorClass(this),
+ ComrelEditPartFactory.getTextCellEditorLocator(this)));
+ }
+ return manager;
+ }
+
+ /**
+ * @generated
+ */
+ protected void setManager(DirectEditManager manager) {
+ this.manager = manager;
+ }
+
+ /**
+ * @generated
+ */
+ protected void performDirectEdit() {
+ getManager().show();
+ }
+
+ /**
+ * @generated
+ */
+ protected void performDirectEdit(Point eventLocation) {
+ if (getManager().getClass() == TextDirectEditManager.class) {
+ ((TextDirectEditManager) getManager()).show(eventLocation
+ .getSWTPoint());
+ }
+ }
+
+ /**
+ * @generated
+ */
+ private void performDirectEdit(char initialCharacter) {
+ if (getManager() instanceof TextDirectEditManager) {
+ ((TextDirectEditManager) getManager()).show(initialCharacter);
+ } else {
+ performDirectEdit();
+ }
+ }
+
+ /**
+ * @generated
+ */
+ protected void performDirectEditRequest(Request request) {
+ final Request theRequest = request;
+ try {
+ getEditingDomain().runExclusive(new Runnable() {
+
+ public void run() {
+ if (isActive() && isEditable()) {
+ if (theRequest
+ .getExtendedData()
+ .get(RequestConstants.REQ_DIRECTEDIT_EXTENDEDDATA_INITIAL_CHAR) instanceof Character) {
+ Character initialChar = (Character) theRequest
+ .getExtendedData()
+ .get(RequestConstants.REQ_DIRECTEDIT_EXTENDEDDATA_INITIAL_CHAR);
+ performDirectEdit(initialChar.charValue());
+ } else if ((theRequest instanceof DirectEditRequest)
+ && (getEditText().equals(getLabelText()))) {
+ DirectEditRequest editRequest = (DirectEditRequest) theRequest;
+ performDirectEdit(editRequest.getLocation());
+ } else {
+ performDirectEdit();
+ }
+ }
+ }
+ });
+ } catch (InterruptedException e) {
+ e.printStackTrace();
+ }
+ }
+
+ /**
+ * @generated
+ */
+ protected void refreshVisuals() {
+ super.refreshVisuals();
+ refreshLabel();
+ refreshFont();
+ refreshFontColor();
+ refreshUnderline();
+ refreshStrikeThrough();
+ }
+
+ /**
+ * @generated
+ */
+ protected void refreshLabel() {
+ setLabelTextHelper(getFigure(), getLabelText());
+ setLabelIconHelper(getFigure(), getLabelIcon());
+ Object pdEditPolicy = getEditPolicy(EditPolicy.PRIMARY_DRAG_ROLE);
+ if (pdEditPolicy instanceof ComrelTextSelectionEditPolicy) {
+ ((ComrelTextSelectionEditPolicy) pdEditPolicy).refreshFeedback();
+ }
+ Object sfEditPolicy = getEditPolicy(EditPolicy.SELECTION_FEEDBACK_ROLE);
+ if (sfEditPolicy instanceof ComrelTextSelectionEditPolicy) {
+ ((ComrelTextSelectionEditPolicy) sfEditPolicy).refreshFeedback();
+ }
+ }
+
+ /**
+ * @generated
+ */
+ protected void refreshUnderline() {
+ FontStyle style = (FontStyle) getFontStyleOwnerView().getStyle(
+ NotationPackage.eINSTANCE.getFontStyle());
+ if (style != null && getFigure() instanceof WrappingLabel) {
+ ((WrappingLabel) getFigure()).setTextUnderline(style.isUnderline());
+ }
+ }
+
+ /**
+ * @generated
+ */
+ protected void refreshStrikeThrough() {
+ FontStyle style = (FontStyle) getFontStyleOwnerView().getStyle(
+ NotationPackage.eINSTANCE.getFontStyle());
+ if (style != null && getFigure() instanceof WrappingLabel) {
+ ((WrappingLabel) getFigure()).setTextStrikeThrough(style
+ .isStrikeThrough());
+ }
+ }
+
+ /**
+ * @generated
+ */
+ protected void refreshFont() {
+ FontStyle style = (FontStyle) getFontStyleOwnerView().getStyle(
+ NotationPackage.eINSTANCE.getFontStyle());
+ if (style != null) {
+ FontData fontData = new FontData(style.getFontName(),
+ style.getFontHeight(), (style.isBold() ? SWT.BOLD
+ : SWT.NORMAL)
+ | (style.isItalic() ? SWT.ITALIC : SWT.NORMAL));
+ setFont(fontData);
+ }
+ }
+
+ /**
+ * @generated
+ */
+ protected void setFontColor(Color color) {
+ getFigure().setForegroundColor(color);
+ }
+
+ /**
+ * @generated
+ */
+ protected void addSemanticListeners() {
+ if (getParser() instanceof ISemanticParser) {
+ EObject element = resolveSemanticElement();
+ parserElements = ((ISemanticParser) getParser())
+ .getSemanticElementsBeingParsed(element);
+ for (int i = 0; i < parserElements.size(); i++) {
+ addListenerFilter(
+ "SemanticModel" + i, this, (EObject) parserElements.get(i)); //$NON-NLS-1$
+ }
+ } else {
+ super.addSemanticListeners();
+ }
+ }
+
+ /**
+ * @generated
+ */
+ protected void removeSemanticListeners() {
+ if (parserElements != null) {
+ for (int i = 0; i < parserElements.size(); i++) {
+ removeListenerFilter("SemanticModel" + i); //$NON-NLS-1$
+ }
+ } else {
+ super.removeSemanticListeners();
+ }
+ }
+
+ /**
+ * @generated
+ */
+ protected AccessibleEditPart getAccessibleEditPart() {
+ if (accessibleEP == null) {
+ accessibleEP = new AccessibleGraphicalEditPart() {
+
+ public void getName(AccessibleEvent e) {
+ e.result = getLabelTextHelper(getFigure());
+ }
+ };
+ }
+ return accessibleEP;
+ }
+
+ /**
+ * @generated
+ */
+ private View getFontStyleOwnerView() {
+ return getPrimaryView();
+ }
+
+ /**
+ * @generated
+ */
+ protected void addNotationalListeners() {
+ super.addNotationalListeners();
+ addListenerFilter("PrimaryView", this, getPrimaryView()); //$NON-NLS-1$
+ }
+
+ /**
+ * @generated
+ */
+ protected void removeNotationalListeners() {
+ super.removeNotationalListeners();
+ removeListenerFilter("PrimaryView"); //$NON-NLS-1$
+ }
+
+ /**
+ * @generated
+ */
+ protected void handleNotificationEvent(Notification event) {
+ Object feature = event.getFeature();
+ if (NotationPackage.eINSTANCE.getFontStyle_FontColor().equals(feature)) {
+ Integer c = (Integer) event.getNewValue();
+ setFontColor(DiagramColorRegistry.getInstance().getColor(c));
+ } else if (NotationPackage.eINSTANCE.getFontStyle_Underline().equals(
+ feature)) {
+ refreshUnderline();
+ } else if (NotationPackage.eINSTANCE.getFontStyle_StrikeThrough()
+ .equals(feature)) {
+ refreshStrikeThrough();
+ } else if (NotationPackage.eINSTANCE.getFontStyle_FontHeight().equals(
+ feature)
+ || NotationPackage.eINSTANCE.getFontStyle_FontName().equals(
+ feature)
+ || NotationPackage.eINSTANCE.getFontStyle_Bold()
+ .equals(feature)
+ || NotationPackage.eINSTANCE.getFontStyle_Italic().equals(
+ feature)) {
+ refreshFont();
+ } else {
+ if (getParser() != null
+ && getParser().isAffectingEvent(event,
+ getParserOptions().intValue())) {
+ refreshLabel();
+ }
+ if (getParser() instanceof ISemanticParser) {
+ ISemanticParser modelParser = (ISemanticParser) getParser();
+ if (modelParser.areSemanticElementsAffected(null, event)) {
+ removeSemanticListeners();
+ if (resolveSemanticElement() != null) {
+ addSemanticListeners();
+ }
+ refreshLabel();
+ }
+ }
+ }
+ super.handleNotificationEvent(event);
+ }
+
+ /**
+ * @generated
+ */
+ protected IFigure createFigure() {
+ // Parent should assign one using setLabel() method
+ return null;
+ }
+
+}
diff --git a/org.eclipse.emf.refactor.comrel.diagram/src/comrel/diagram/edit/parts/CartesianQueuedUnitNameTypeLblStrict5EditPart.java b/org.eclipse.emf.refactor.comrel.diagram/src/comrel/diagram/edit/parts/CartesianQueuedUnitNameTypeLblStrict5EditPart.java
new file mode 100644
index 0000000..ea0d1a3
--- /dev/null
+++ b/org.eclipse.emf.refactor.comrel.diagram/src/comrel/diagram/edit/parts/CartesianQueuedUnitNameTypeLblStrict5EditPart.java
@@ -0,0 +1,576 @@
+/*
+ *
+ */
+package comrel.diagram.edit.parts;
+
+import java.util.Collections;
+import java.util.List;
+
+import org.eclipse.draw2d.IFigure;
+import org.eclipse.draw2d.Label;
+import org.eclipse.draw2d.geometry.Point;
+import org.eclipse.emf.common.notify.Notification;
+import org.eclipse.emf.ecore.EObject;
+import org.eclipse.emf.transaction.RunnableWithResult;
+import org.eclipse.gef.AccessibleEditPart;
+import org.eclipse.gef.EditPolicy;
+import org.eclipse.gef.Request;
+import org.eclipse.gef.requests.DirectEditRequest;
+import org.eclipse.gef.tools.DirectEditManager;
+import org.eclipse.gmf.runtime.common.ui.services.parser.IParser;
+import org.eclipse.gmf.runtime.common.ui.services.parser.IParserEditStatus;
+import org.eclipse.gmf.runtime.common.ui.services.parser.ParserEditStatus;
+import org.eclipse.gmf.runtime.common.ui.services.parser.ParserOptions;
+import org.eclipse.gmf.runtime.diagram.ui.editparts.CompartmentEditPart;
+import org.eclipse.gmf.runtime.diagram.ui.editparts.IGraphicalEditPart;
+import org.eclipse.gmf.runtime.diagram.ui.editparts.ITextAwareEditPart;
+import org.eclipse.gmf.runtime.diagram.ui.editpolicies.LabelDirectEditPolicy;
+import org.eclipse.gmf.runtime.diagram.ui.l10n.DiagramColorRegistry;
+import org.eclipse.gmf.runtime.diagram.ui.requests.RequestConstants;
+import org.eclipse.gmf.runtime.diagram.ui.tools.TextDirectEditManager;
+import org.eclipse.gmf.runtime.draw2d.ui.figures.WrappingLabel;
+import org.eclipse.gmf.runtime.emf.core.util.EObjectAdapter;
+import org.eclipse.gmf.runtime.emf.ui.services.parser.ISemanticParser;
+import org.eclipse.gmf.runtime.notation.FontStyle;
+import org.eclipse.gmf.runtime.notation.NotationPackage;
+import org.eclipse.gmf.runtime.notation.View;
+import org.eclipse.jface.text.contentassist.IContentAssistProcessor;
+import org.eclipse.jface.viewers.ICellEditorValidator;
+import org.eclipse.swt.SWT;
+import org.eclipse.swt.accessibility.AccessibleEvent;
+import org.eclipse.swt.graphics.Color;
+import org.eclipse.swt.graphics.FontData;
+import org.eclipse.swt.graphics.Image;
+
+import comrel.diagram.edit.policies.ComrelTextSelectionEditPolicy;
+import comrel.diagram.part.ComrelVisualIDRegistry;
+import comrel.diagram.providers.ComrelElementTypes;
+import comrel.diagram.providers.ComrelParserProvider;
+
+/**
+ * @generated
+ */
+public class CartesianQueuedUnitNameTypeLblStrict5EditPart extends
+ CompartmentEditPart implements ITextAwareEditPart {
+
+ /**
+ * @generated
+ */
+ public static final int VISUAL_ID = 5073;
+
+ /**
+ * @generated
+ */
+ private DirectEditManager manager;
+
+ /**
+ * @generated
+ */
+ private IParser parser;
+
+ /**
+ * @generated
+ */
+ private List<?> parserElements;
+
+ /**
+ * @generated
+ */
+ private String defaultText;
+
+ /**
+ * @generated
+ */
+ public CartesianQueuedUnitNameTypeLblStrict5EditPart(View view) {
+ super(view);
+ }
+
+ /**
+ * @generated
+ */
+ protected void createDefaultEditPolicies() {
+ super.createDefaultEditPolicies();
+ installEditPolicy(EditPolicy.SELECTION_FEEDBACK_ROLE,
+ new ComrelTextSelectionEditPolicy());
+ installEditPolicy(EditPolicy.DIRECT_EDIT_ROLE,
+ new LabelDirectEditPolicy());
+ installEditPolicy(EditPolicy.PRIMARY_DRAG_ROLE,
+ new CompositeRefactoringEditPart.NodeLabelDragPolicy());
+ }
+
+ /**
+ * @generated
+ */
+ protected String getLabelTextHelper(IFigure figure) {
+ if (figure instanceof WrappingLabel) {
+ return ((WrappingLabel) figure).getText();
+ } else {
+ return ((Label) figure).getText();
+ }
+ }
+
+ /**
+ * @generated
+ */
+ protected void setLabelTextHelper(IFigure figure, String text) {
+ if (figure instanceof WrappingLabel) {
+ ((WrappingLabel) figure).setText(text);
+ } else {
+ ((Label) figure).setText(text);
+ }
+ }
+
+ /**
+ * @generated
+ */
+ protected Image getLabelIconHelper(IFigure figure) {
+ if (figure instanceof WrappingLabel) {
+ return ((WrappingLabel) figure).getIcon();
+ } else {
+ return ((Label) figure).getIcon();
+ }
+ }
+
+ /**
+ * @generated
+ */
+ protected void setLabelIconHelper(IFigure figure, Image icon) {
+ if (figure instanceof WrappingLabel) {
+ ((WrappingLabel) figure).setIcon(icon);
+ } else {
+ ((Label) figure).setIcon(icon);
+ }
+ }
+
+ /**
+ * @generated
+ */
+ public void setLabel(WrappingLabel figure) {
+ unregisterVisuals();
+ setFigure(figure);
+ defaultText = getLabelTextHelper(figure);
+ registerVisuals();
+ refreshVisuals();
+ }
+
+ /**
+ * @generated
+ */
+ @SuppressWarnings("rawtypes")
+ protected List getModelChildren() {
+ return Collections.EMPTY_LIST;
+ }
+
+ /**
+ * @generated
+ */
+ public IGraphicalEditPart getChildBySemanticHint(String semanticHint) {
+ return null;
+ }
+
+ /**
+ * @generated
+ */
+ protected EObject getParserElement() {
+ return resolveSemanticElement();
+ }
+
+ /**
+ * @generated
+ */
+ protected Image getLabelIcon() {
+ return null;
+ }
+
+ /**
+ * @generated
+ */
+ protected String getLabelText() {
+ String text = null;
+ EObject parserElement = getParserElement();
+ if (parserElement != null && getParser() != null) {
+ text = getParser().getPrintString(
+ new EObjectAdapter(parserElement),
+ getParserOptions().intValue());
+ }
+ if (text == null || text.length() == 0) {
+ text = defaultText;
+ }
+ return text;
+ }
+
+ /**
+ * @generated
+ */
+ public void setLabelText(String text) {
+ setLabelTextHelper(getFigure(), text);
+ Object pdEditPolicy = getEditPolicy(EditPolicy.PRIMARY_DRAG_ROLE);
+ if (pdEditPolicy instanceof ComrelTextSelectionEditPolicy) {
+ ((ComrelTextSelectionEditPolicy) pdEditPolicy).refreshFeedback();
+ }
+ Object sfEditPolicy = getEditPolicy(EditPolicy.SELECTION_FEEDBACK_ROLE);
+ if (sfEditPolicy instanceof ComrelTextSelectionEditPolicy) {
+ ((ComrelTextSelectionEditPolicy) sfEditPolicy).refreshFeedback();
+ }
+ }
+
+ /**
+ * @generated
+ */
+ public String getEditText() {
+ if (getParserElement() == null || getParser() == null) {
+ return ""; //$NON-NLS-1$
+ }
+ return getParser().getEditString(
+ new EObjectAdapter(getParserElement()),
+ getParserOptions().intValue());
+ }
+
+ /**
+ * @generated
+ */
+ protected boolean isEditable() {
+ return getParser() != null;
+ }
+
+ /**
+ * @generated
+ */
+ public ICellEditorValidator getEditTextValidator() {
+ return new ICellEditorValidator() {
+
+ public String isValid(final Object value) {
+ if (value instanceof String) {
+ final EObject element = getParserElement();
+ final IParser parser = getParser();
+ try {
+ IParserEditStatus valid = (IParserEditStatus) getEditingDomain()
+ .runExclusive(
+ new RunnableWithResult.Impl<IParserEditStatus>() {
+
+ public void run() {
+ setResult(parser
+ .isValidEditString(
+ new EObjectAdapter(
+ element),
+ (String) value));
+ }
+ });
+ return valid.getCode() == ParserEditStatus.EDITABLE ? null
+ : valid.getMessage();
+ } catch (InterruptedException ie) {
+ ie.printStackTrace();
+ }
+ }
+
+ // shouldn't get here
+ return null;
+ }
+ };
+ }
+
+ /**
+ * @generated
+ */
+ public IContentAssistProcessor getCompletionProcessor() {
+ if (getParserElement() == null || getParser() == null) {
+ return null;
+ }
+ return getParser().getCompletionProcessor(
+ new EObjectAdapter(getParserElement()));
+ }
+
+ /**
+ * @generated
+ */
+ public ParserOptions getParserOptions() {
+ return ParserOptions.NONE;
+ }
+
+ /**
+ * @generated
+ */
+ public IParser getParser() {
+ if (parser == null) {
+ parser = ComrelParserProvider
+ .getParser(
+ ComrelElementTypes.CartesianQueuedUnit_3029,
+ getParserElement(),
+ ComrelVisualIDRegistry
+ .getType(comrel.diagram.edit.parts.CartesianQueuedUnitNameTypeLblStrict5EditPart.VISUAL_ID));
+ }
+ return parser;
+ }
+
+ /**
+ * @generated
+ */
+ protected DirectEditManager getManager() {
+ if (manager == null) {
+ setManager(new TextDirectEditManager(this,
+ TextDirectEditManager.getTextCellEditorClass(this),
+ ComrelEditPartFactory.getTextCellEditorLocator(this)));
+ }
+ return manager;
+ }
+
+ /**
+ * @generated
+ */
+ protected void setManager(DirectEditManager manager) {
+ this.manager = manager;
+ }
+
+ /**
+ * @generated
+ */
+ protected void performDirectEdit() {
+ getManager().show();
+ }
+
+ /**
+ * @generated
+ */
+ protected void performDirectEdit(Point eventLocation) {
+ if (getManager().getClass() == TextDirectEditManager.class) {
+ ((TextDirectEditManager) getManager()).show(eventLocation
+ .getSWTPoint());
+ }
+ }
+
+ /**
+ * @generated
+ */
+ private void performDirectEdit(char initialCharacter) {
+ if (getManager() instanceof TextDirectEditManager) {
+ ((TextDirectEditManager) getManager()).show(initialCharacter);
+ } else {
+ performDirectEdit();
+ }
+ }
+
+ /**
+ * @generated
+ */
+ protected void performDirectEditRequest(Request request) {
+ final Request theRequest = request;
+ try {
+ getEditingDomain().runExclusive(new Runnable() {
+
+ public void run() {
+ if (isActive() && isEditable()) {
+ if (theRequest
+ .getExtendedData()
+ .get(RequestConstants.REQ_DIRECTEDIT_EXTENDEDDATA_INITIAL_CHAR) instanceof Character) {
+ Character initialChar = (Character) theRequest
+ .getExtendedData()
+ .get(RequestConstants.REQ_DIRECTEDIT_EXTENDEDDATA_INITIAL_CHAR);
+ performDirectEdit(initialChar.charValue());
+ } else if ((theRequest instanceof DirectEditRequest)
+ && (getEditText().equals(getLabelText()))) {
+ DirectEditRequest editRequest = (DirectEditRequest) theRequest;
+ performDirectEdit(editRequest.getLocation());
+ } else {
+ performDirectEdit();
+ }
+ }
+ }
+ });
+ } catch (InterruptedException e) {
+ e.printStackTrace();
+ }
+ }
+
+ /**
+ * @generated
+ */
+ protected void refreshVisuals() {
+ super.refreshVisuals();
+ refreshLabel();
+ refreshFont();
+ refreshFontColor();
+ refreshUnderline();
+ refreshStrikeThrough();
+ }
+
+ /**
+ * @generated
+ */
+ protected void refreshLabel() {
+ setLabelTextHelper(getFigure(), getLabelText());
+ setLabelIconHelper(getFigure(), getLabelIcon());
+ Object pdEditPolicy = getEditPolicy(EditPolicy.PRIMARY_DRAG_ROLE);
+ if (pdEditPolicy instanceof ComrelTextSelectionEditPolicy) {
+ ((ComrelTextSelectionEditPolicy) pdEditPolicy).refreshFeedback();
+ }
+ Object sfEditPolicy = getEditPolicy(EditPolicy.SELECTION_FEEDBACK_ROLE);
+ if (sfEditPolicy instanceof ComrelTextSelectionEditPolicy) {
+ ((ComrelTextSelectionEditPolicy) sfEditPolicy).refreshFeedback();
+ }
+ }
+
+ /**
+ * @generated
+ */
+ protected void refreshUnderline() {
+ FontStyle style = (FontStyle) getFontStyleOwnerView().getStyle(
+ NotationPackage.eINSTANCE.getFontStyle());
+ if (style != null && getFigure() instanceof WrappingLabel) {
+ ((WrappingLabel) getFigure()).setTextUnderline(style.isUnderline());
+ }
+ }
+
+ /**
+ * @generated
+ */
+ protected void refreshStrikeThrough() {
+ FontStyle style = (FontStyle) getFontStyleOwnerView().getStyle(
+ NotationPackage.eINSTANCE.getFontStyle());
+ if (style != null && getFigure() instanceof WrappingLabel) {
+ ((WrappingLabel) getFigure()).setTextStrikeThrough(style
+ .isStrikeThrough());
+ }
+ }
+
+ /**
+ * @generated
+ */
+ protected void refreshFont() {
+ FontStyle style = (FontStyle) getFontStyleOwnerView().getStyle(
+ NotationPackage.eINSTANCE.getFontStyle());
+ if (style != null) {
+ FontData fontData = new FontData(style.getFontName(),
+ style.getFontHeight(), (style.isBold() ? SWT.BOLD
+ : SWT.NORMAL)
+ | (style.isItalic() ? SWT.ITALIC : SWT.NORMAL));
+ setFont(fontData);
+ }
+ }
+
+ /**
+ * @generated
+ */
+ protected void setFontColor(Color color) {
+ getFigure().setForegroundColor(color);
+ }
+
+ /**
+ * @generated
+ */
+ protected void addSemanticListeners() {
+ if (getParser() instanceof ISemanticParser) {
+ EObject element = resolveSemanticElement();
+ parserElements = ((ISemanticParser) getParser())
+ .getSemanticElementsBeingParsed(element);
+ for (int i = 0; i < parserElements.size(); i++) {
+ addListenerFilter(
+ "SemanticModel" + i, this, (EObject) parserElements.get(i)); //$NON-NLS-1$
+ }
+ } else {
+ super.addSemanticListeners();
+ }
+ }
+
+ /**
+ * @generated
+ */
+ protected void removeSemanticListeners() {
+ if (parserElements != null) {
+ for (int i = 0; i < parserElements.size(); i++) {
+ removeListenerFilter("SemanticModel" + i); //$NON-NLS-1$
+ }
+ } else {
+ super.removeSemanticListeners();
+ }
+ }
+
+ /**
+ * @generated
+ */
+ protected AccessibleEditPart getAccessibleEditPart() {
+ if (accessibleEP == null) {
+ accessibleEP = new AccessibleGraphicalEditPart() {
+
+ public void getName(AccessibleEvent e) {
+ e.result = getLabelTextHelper(getFigure());
+ }
+ };
+ }
+ return accessibleEP;
+ }
+
+ /**
+ * @generated
+ */
+ private View getFontStyleOwnerView() {
+ return getPrimaryView();
+ }
+
+ /**
+ * @generated
+ */
+ protected void addNotationalListeners() {
+ super.addNotationalListeners();
+ addListenerFilter("PrimaryView", this, getPrimaryView()); //$NON-NLS-1$
+ }
+
+ /**
+ * @generated
+ */
+ protected void removeNotationalListeners() {
+ super.removeNotationalListeners();
+ removeListenerFilter("PrimaryView"); //$NON-NLS-1$
+ }
+
+ /**
+ * @generated
+ */
+ protected void handleNotificationEvent(Notification event) {
+ Object feature = event.getFeature();
+ if (NotationPackage.eINSTANCE.getFontStyle_FontColor().equals(feature)) {
+ Integer c = (Integer) event.getNewValue();
+ setFontColor(DiagramColorRegistry.getInstance().getColor(c));
+ } else if (NotationPackage.eINSTANCE.getFontStyle_Underline().equals(
+ feature)) {
+ refreshUnderline();
+ } else if (NotationPackage.eINSTANCE.getFontStyle_StrikeThrough()
+ .equals(feature)) {
+ refreshStrikeThrough();
+ } else if (NotationPackage.eINSTANCE.getFontStyle_FontHeight().equals(
+ feature)
+ || NotationPackage.eINSTANCE.getFontStyle_FontName().equals(
+ feature)
+ || NotationPackage.eINSTANCE.getFontStyle_Bold()
+ .equals(feature)
+ || NotationPackage.eINSTANCE.getFontStyle_Italic().equals(
+ feature)) {
+ refreshFont();
+ } else {
+ if (getParser() != null
+ && getParser().isAffectingEvent(event,
+ getParserOptions().intValue())) {
+ refreshLabel();
+ }
+ if (getParser() instanceof ISemanticParser) {
+ ISemanticParser modelParser = (ISemanticParser) getParser();
+ if (modelParser.areSemanticElementsAffected(null, event)) {
+ removeSemanticListeners();
+ if (resolveSemanticElement() != null) {
+ addSemanticListeners();
+ }
+ refreshLabel();
+ }
+ }
+ }
+ super.handleNotificationEvent(event);
+ }
+
+ /**
+ * @generated
+ */
+ protected IFigure createFigure() {
+ // Parent should assign one using setLabel() method
+ return null;
+ }
+
+}
diff --git a/org.eclipse.emf.refactor.comrel.diagram/src/comrel/diagram/edit/parts/CartesianQueuedUnitNameTypeLblStrict6EditPart.java b/org.eclipse.emf.refactor.comrel.diagram/src/comrel/diagram/edit/parts/CartesianQueuedUnitNameTypeLblStrict6EditPart.java
new file mode 100644
index 0000000..ae24b7a
--- /dev/null
+++ b/org.eclipse.emf.refactor.comrel.diagram/src/comrel/diagram/edit/parts/CartesianQueuedUnitNameTypeLblStrict6EditPart.java
@@ -0,0 +1,576 @@
+/*
+ *
+ */
+package comrel.diagram.edit.parts;
+
+import java.util.Collections;
+import java.util.List;
+
+import org.eclipse.draw2d.IFigure;
+import org.eclipse.draw2d.Label;
+import org.eclipse.draw2d.geometry.Point;
+import org.eclipse.emf.common.notify.Notification;
+import org.eclipse.emf.ecore.EObject;
+import org.eclipse.emf.transaction.RunnableWithResult;
+import org.eclipse.gef.AccessibleEditPart;
+import org.eclipse.gef.EditPolicy;
+import org.eclipse.gef.Request;
+import org.eclipse.gef.requests.DirectEditRequest;
+import org.eclipse.gef.tools.DirectEditManager;
+import org.eclipse.gmf.runtime.common.ui.services.parser.IParser;
+import org.eclipse.gmf.runtime.common.ui.services.parser.IParserEditStatus;
+import org.eclipse.gmf.runtime.common.ui.services.parser.ParserEditStatus;
+import org.eclipse.gmf.runtime.common.ui.services.parser.ParserOptions;
+import org.eclipse.gmf.runtime.diagram.ui.editparts.CompartmentEditPart;
+import org.eclipse.gmf.runtime.diagram.ui.editparts.IGraphicalEditPart;
+import org.eclipse.gmf.runtime.diagram.ui.editparts.ITextAwareEditPart;
+import org.eclipse.gmf.runtime.diagram.ui.editpolicies.LabelDirectEditPolicy;
+import org.eclipse.gmf.runtime.diagram.ui.l10n.DiagramColorRegistry;
+import org.eclipse.gmf.runtime.diagram.ui.requests.RequestConstants;
+import org.eclipse.gmf.runtime.diagram.ui.tools.TextDirectEditManager;
+import org.eclipse.gmf.runtime.draw2d.ui.figures.WrappingLabel;
+import org.eclipse.gmf.runtime.emf.core.util.EObjectAdapter;
+import org.eclipse.gmf.runtime.emf.ui.services.parser.ISemanticParser;
+import org.eclipse.gmf.runtime.notation.FontStyle;
+import org.eclipse.gmf.runtime.notation.NotationPackage;
+import org.eclipse.gmf.runtime.notation.View;
+import org.eclipse.jface.text.contentassist.IContentAssistProcessor;
+import org.eclipse.jface.viewers.ICellEditorValidator;
+import org.eclipse.swt.SWT;
+import org.eclipse.swt.accessibility.AccessibleEvent;
+import org.eclipse.swt.graphics.Color;
+import org.eclipse.swt.graphics.FontData;
+import org.eclipse.swt.graphics.Image;
+
+import comrel.diagram.edit.policies.ComrelTextSelectionEditPolicy;
+import comrel.diagram.part.ComrelVisualIDRegistry;
+import comrel.diagram.providers.ComrelElementTypes;
+import comrel.diagram.providers.ComrelParserProvider;
+
+/**
+ * @generated
+ */
+public class CartesianQueuedUnitNameTypeLblStrict6EditPart extends
+ CompartmentEditPart implements ITextAwareEditPart {
+
+ /**
+ * @generated
+ */
+ public static final int VISUAL_ID = 5028;
+
+ /**
+ * @generated
+ */
+ private DirectEditManager manager;
+
+ /**
+ * @generated
+ */
+ private IParser parser;
+
+ /**
+ * @generated
+ */
+ private List<?> parserElements;
+
+ /**
+ * @generated
+ */
+ private String defaultText;
+
+ /**
+ * @generated
+ */
+ public CartesianQueuedUnitNameTypeLblStrict6EditPart(View view) {
+ super(view);
+ }
+
+ /**
+ * @generated
+ */
+ protected void createDefaultEditPolicies() {
+ super.createDefaultEditPolicies();
+ installEditPolicy(EditPolicy.SELECTION_FEEDBACK_ROLE,
+ new ComrelTextSelectionEditPolicy());
+ installEditPolicy(EditPolicy.DIRECT_EDIT_ROLE,
+ new LabelDirectEditPolicy());
+ installEditPolicy(EditPolicy.PRIMARY_DRAG_ROLE,
+ new CompositeRefactoringEditPart.NodeLabelDragPolicy());
+ }
+
+ /**
+ * @generated
+ */
+ protected String getLabelTextHelper(IFigure figure) {
+ if (figure instanceof WrappingLabel) {
+ return ((WrappingLabel) figure).getText();
+ } else {
+ return ((Label) figure).getText();
+ }
+ }
+
+ /**
+ * @generated
+ */
+ protected void setLabelTextHelper(IFigure figure, String text) {
+ if (figure instanceof WrappingLabel) {
+ ((WrappingLabel) figure).setText(text);
+ } else {
+ ((Label) figure).setText(text);
+ }
+ }
+
+ /**
+ * @generated
+ */
+ protected Image getLabelIconHelper(IFigure figure) {
+ if (figure instanceof WrappingLabel) {
+ return ((WrappingLabel) figure).getIcon();
+ } else {
+ return ((Label) figure).getIcon();
+ }
+ }
+
+ /**
+ * @generated
+ */
+ protected void setLabelIconHelper(IFigure figure, Image icon) {
+ if (figure instanceof WrappingLabel) {
+ ((WrappingLabel) figure).setIcon(icon);
+ } else {
+ ((Label) figure).setIcon(icon);
+ }
+ }
+
+ /**
+ * @generated
+ */
+ public void setLabel(WrappingLabel figure) {
+ unregisterVisuals();
+ setFigure(figure);
+ defaultText = getLabelTextHelper(figure);
+ registerVisuals();
+ refreshVisuals();
+ }
+
+ /**
+ * @generated
+ */
+ @SuppressWarnings("rawtypes")
+ protected List getModelChildren() {
+ return Collections.EMPTY_LIST;
+ }
+
+ /**
+ * @generated
+ */
+ public IGraphicalEditPart getChildBySemanticHint(String semanticHint) {
+ return null;
+ }
+
+ /**
+ * @generated
+ */
+ protected EObject getParserElement() {
+ return resolveSemanticElement();
+ }
+
+ /**
+ * @generated
+ */
+ protected Image getLabelIcon() {
+ return null;
+ }
+
+ /**
+ * @generated
+ */
+ protected String getLabelText() {
+ String text = null;
+ EObject parserElement = getParserElement();
+ if (parserElement != null && getParser() != null) {
+ text = getParser().getPrintString(
+ new EObjectAdapter(parserElement),
+ getParserOptions().intValue());
+ }
+ if (text == null || text.length() == 0) {
+ text = defaultText;
+ }
+ return text;
+ }
+
+ /**
+ * @generated
+ */
+ public void setLabelText(String text) {
+ setLabelTextHelper(getFigure(), text);
+ Object pdEditPolicy = getEditPolicy(EditPolicy.PRIMARY_DRAG_ROLE);
+ if (pdEditPolicy instanceof ComrelTextSelectionEditPolicy) {
+ ((ComrelTextSelectionEditPolicy) pdEditPolicy).refreshFeedback();
+ }
+ Object sfEditPolicy = getEditPolicy(EditPolicy.SELECTION_FEEDBACK_ROLE);
+ if (sfEditPolicy instanceof ComrelTextSelectionEditPolicy) {
+ ((ComrelTextSelectionEditPolicy) sfEditPolicy).refreshFeedback();
+ }
+ }
+
+ /**
+ * @generated
+ */
+ public String getEditText() {
+ if (getParserElement() == null || getParser() == null) {
+ return ""; //$NON-NLS-1$
+ }
+ return getParser().getEditString(
+ new EObjectAdapter(getParserElement()),
+ getParserOptions().intValue());
+ }
+
+ /**
+ * @generated
+ */
+ protected boolean isEditable() {
+ return getParser() != null;
+ }
+
+ /**
+ * @generated
+ */
+ public ICellEditorValidator getEditTextValidator() {
+ return new ICellEditorValidator() {
+
+ public String isValid(final Object value) {
+ if (value instanceof String) {
+ final EObject element = getParserElement();
+ final IParser parser = getParser();
+ try {
+ IParserEditStatus valid = (IParserEditStatus) getEditingDomain()
+ .runExclusive(
+ new RunnableWithResult.Impl<IParserEditStatus>() {
+
+ public void run() {
+ setResult(parser
+ .isValidEditString(
+ new EObjectAdapter(
+ element),
+ (String) value));
+ }
+ });
+ return valid.getCode() == ParserEditStatus.EDITABLE ? null
+ : valid.getMessage();
+ } catch (InterruptedException ie) {
+ ie.printStackTrace();
+ }
+ }
+
+ // shouldn't get here
+ return null;
+ }
+ };
+ }
+
+ /**
+ * @generated
+ */
+ public IContentAssistProcessor getCompletionProcessor() {
+ if (getParserElement() == null || getParser() == null) {
+ return null;
+ }
+ return getParser().getCompletionProcessor(
+ new EObjectAdapter(getParserElement()));
+ }
+
+ /**
+ * @generated
+ */
+ public ParserOptions getParserOptions() {
+ return ParserOptions.NONE;
+ }
+
+ /**
+ * @generated
+ */
+ public IParser getParser() {
+ if (parser == null) {
+ parser = ComrelParserProvider
+ .getParser(
+ ComrelElementTypes.CartesianQueuedUnit_3033,
+ getParserElement(),
+ ComrelVisualIDRegistry
+ .getType(comrel.diagram.edit.parts.CartesianQueuedUnitNameTypeLblStrict6EditPart.VISUAL_ID));
+ }
+ return parser;
+ }
+
+ /**
+ * @generated
+ */
+ protected DirectEditManager getManager() {
+ if (manager == null) {
+ setManager(new TextDirectEditManager(this,
+ TextDirectEditManager.getTextCellEditorClass(this),
+ ComrelEditPartFactory.getTextCellEditorLocator(this)));
+ }
+ return manager;
+ }
+
+ /**
+ * @generated
+ */
+ protected void setManager(DirectEditManager manager) {
+ this.manager = manager;
+ }
+
+ /**
+ * @generated
+ */
+ protected void performDirectEdit() {
+ getManager().show();
+ }
+
+ /**
+ * @generated
+ */
+ protected void performDirectEdit(Point eventLocation) {
+ if (getManager().getClass() == TextDirectEditManager.class) {
+ ((TextDirectEditManager) getManager()).show(eventLocation
+ .getSWTPoint());
+ }
+ }
+
+ /**
+ * @generated
+ */
+ private void performDirectEdit(char initialCharacter) {
+ if (getManager() instanceof TextDirectEditManager) {
+ ((TextDirectEditManager) getManager()).show(initialCharacter);
+ } else {
+ performDirectEdit();
+ }
+ }
+
+ /**
+ * @generated
+ */
+ protected void performDirectEditRequest(Request request) {
+ final Request theRequest = request;
+ try {
+ getEditingDomain().runExclusive(new Runnable() {
+
+ public void run() {
+ if (isActive() && isEditable()) {
+ if (theRequest
+ .getExtendedData()
+ .get(RequestConstants.REQ_DIRECTEDIT_EXTENDEDDATA_INITIAL_CHAR) instanceof Character) {
+ Character initialChar = (Character) theRequest
+ .getExtendedData()
+ .get(RequestConstants.REQ_DIRECTEDIT_EXTENDEDDATA_INITIAL_CHAR);
+ performDirectEdit(initialChar.charValue());
+ } else if ((theRequest instanceof DirectEditRequest)
+ && (getEditText().equals(getLabelText()))) {
+ DirectEditRequest editRequest = (DirectEditRequest) theRequest;
+ performDirectEdit(editRequest.getLocation());
+ } else {
+ performDirectEdit();
+ }
+ }
+ }
+ });
+ } catch (InterruptedException e) {
+ e.printStackTrace();
+ }
+ }
+
+ /**
+ * @generated
+ */
+ protected void refreshVisuals() {
+ super.refreshVisuals();
+ refreshLabel();
+ refreshFont();
+ refreshFontColor();
+ refreshUnderline();
+ refreshStrikeThrough();
+ }
+
+ /**
+ * @generated
+ */
+ protected void refreshLabel() {
+ setLabelTextHelper(getFigure(), getLabelText());
+ setLabelIconHelper(getFigure(), getLabelIcon());
+ Object pdEditPolicy = getEditPolicy(EditPolicy.PRIMARY_DRAG_ROLE);
+ if (pdEditPolicy instanceof ComrelTextSelectionEditPolicy) {
+ ((ComrelTextSelectionEditPolicy) pdEditPolicy).refreshFeedback();
+ }
+ Object sfEditPolicy = getEditPolicy(EditPolicy.SELECTION_FEEDBACK_ROLE);
+ if (sfEditPolicy instanceof ComrelTextSelectionEditPolicy) {
+ ((ComrelTextSelectionEditPolicy) sfEditPolicy).refreshFeedback();
+ }
+ }
+
+ /**
+ * @generated
+ */
+ protected void refreshUnderline() {
+ FontStyle style = (FontStyle) getFontStyleOwnerView().getStyle(
+ NotationPackage.eINSTANCE.getFontStyle());
+ if (style != null && getFigure() instanceof WrappingLabel) {
+ ((WrappingLabel) getFigure()).setTextUnderline(style.isUnderline());
+ }
+ }
+
+ /**
+ * @generated
+ */
+ protected void refreshStrikeThrough() {
+ FontStyle style = (FontStyle) getFontStyleOwnerView().getStyle(
+ NotationPackage.eINSTANCE.getFontStyle());
+ if (style != null && getFigure() instanceof WrappingLabel) {
+ ((WrappingLabel) getFigure()).setTextStrikeThrough(style
+ .isStrikeThrough());
+ }
+ }
+
+ /**
+ * @generated
+ */
+ protected void refreshFont() {
+ FontStyle style = (FontStyle) getFontStyleOwnerView().getStyle(
+ NotationPackage.eINSTANCE.getFontStyle());
+ if (style != null) {
+ FontData fontData = new FontData(style.getFontName(),
+ style.getFontHeight(), (style.isBold() ? SWT.BOLD
+ : SWT.NORMAL)
+ | (style.isItalic() ? SWT.ITALIC : SWT.NORMAL));
+ setFont(fontData);
+ }
+ }
+
+ /**
+ * @generated
+ */
+ protected void setFontColor(Color color) {
+ getFigure().setForegroundColor(color);
+ }
+
+ /**
+ * @generated
+ */
+ protected void addSemanticListeners() {
+ if (getParser() instanceof ISemanticParser) {
+ EObject element = resolveSemanticElement();
+ parserElements = ((ISemanticParser) getParser())
+ .getSemanticElementsBeingParsed(element);
+ for (int i = 0; i < parserElements.size(); i++) {
+ addListenerFilter(
+ "SemanticModel" + i, this, (EObject) parserElements.get(i)); //$NON-NLS-1$
+ }
+ } else {
+ super.addSemanticListeners();
+ }
+ }
+
+ /**
+ * @generated
+ */
+ protected void removeSemanticListeners() {
+ if (parserElements != null) {
+ for (int i = 0; i < parserElements.size(); i++) {
+ removeListenerFilter("SemanticModel" + i); //$NON-NLS-1$
+ }
+ } else {
+ super.removeSemanticListeners();
+ }
+ }
+
+ /**
+ * @generated
+ */
+ protected AccessibleEditPart getAccessibleEditPart() {
+ if (accessibleEP == null) {
+ accessibleEP = new AccessibleGraphicalEditPart() {
+
+ public void getName(AccessibleEvent e) {
+ e.result = getLabelTextHelper(getFigure());
+ }
+ };
+ }
+ return accessibleEP;
+ }
+
+ /**
+ * @generated
+ */
+ private View getFontStyleOwnerView() {
+ return getPrimaryView();
+ }
+
+ /**
+ * @generated
+ */
+ protected void addNotationalListeners() {
+ super.addNotationalListeners();
+ addListenerFilter("PrimaryView", this, getPrimaryView()); //$NON-NLS-1$
+ }
+
+ /**
+ * @generated
+ */
+ protected void removeNotationalListeners() {
+ super.removeNotationalListeners();
+ removeListenerFilter("PrimaryView"); //$NON-NLS-1$
+ }
+
+ /**
+ * @generated
+ */
+ protected void handleNotificationEvent(Notification event) {
+ Object feature = event.getFeature();
+ if (NotationPackage.eINSTANCE.getFontStyle_FontColor().equals(feature)) {
+ Integer c = (Integer) event.getNewValue();
+ setFontColor(DiagramColorRegistry.getInstance().getColor(c));
+ } else if (NotationPackage.eINSTANCE.getFontStyle_Underline().equals(
+ feature)) {
+ refreshUnderline();
+ } else if (NotationPackage.eINSTANCE.getFontStyle_StrikeThrough()
+ .equals(feature)) {
+ refreshStrikeThrough();
+ } else if (NotationPackage.eINSTANCE.getFontStyle_FontHeight().equals(
+ feature)
+ || NotationPackage.eINSTANCE.getFontStyle_FontName().equals(
+ feature)
+ || NotationPackage.eINSTANCE.getFontStyle_Bold()
+ .equals(feature)
+ || NotationPackage.eINSTANCE.getFontStyle_Italic().equals(
+ feature)) {
+ refreshFont();
+ } else {
+ if (getParser() != null
+ && getParser().isAffectingEvent(event,
+ getParserOptions().intValue())) {
+ refreshLabel();
+ }
+ if (getParser() instanceof ISemanticParser) {
+ ISemanticParser modelParser = (ISemanticParser) getParser();
+ if (modelParser.areSemanticElementsAffected(null, event)) {
+ removeSemanticListeners();
+ if (resolveSemanticElement() != null) {
+ addSemanticListeners();
+ }
+ refreshLabel();
+ }
+ }
+ }
+ super.handleNotificationEvent(event);
+ }
+
+ /**
+ * @generated
+ */
+ protected IFigure createFigure() {
+ // Parent should assign one using setLabel() method
+ return null;
+ }
+
+}
diff --git a/org.eclipse.emf.refactor.comrel.diagram/src/comrel/diagram/edit/parts/CartesianQueuedUnitNameTypeLblStrict7EditPart.java b/org.eclipse.emf.refactor.comrel.diagram/src/comrel/diagram/edit/parts/CartesianQueuedUnitNameTypeLblStrict7EditPart.java
new file mode 100644
index 0000000..b393e23
--- /dev/null
+++ b/org.eclipse.emf.refactor.comrel.diagram/src/comrel/diagram/edit/parts/CartesianQueuedUnitNameTypeLblStrict7EditPart.java
@@ -0,0 +1,576 @@
+/*
+ *
+ */
+package comrel.diagram.edit.parts;
+
+import java.util.Collections;
+import java.util.List;
+
+import org.eclipse.draw2d.IFigure;
+import org.eclipse.draw2d.Label;
+import org.eclipse.draw2d.geometry.Point;
+import org.eclipse.emf.common.notify.Notification;
+import org.eclipse.emf.ecore.EObject;
+import org.eclipse.emf.transaction.RunnableWithResult;
+import org.eclipse.gef.AccessibleEditPart;
+import org.eclipse.gef.EditPolicy;
+import org.eclipse.gef.Request;
+import org.eclipse.gef.requests.DirectEditRequest;
+import org.eclipse.gef.tools.DirectEditManager;
+import org.eclipse.gmf.runtime.common.ui.services.parser.IParser;
+import org.eclipse.gmf.runtime.common.ui.services.parser.IParserEditStatus;
+import org.eclipse.gmf.runtime.common.ui.services.parser.ParserEditStatus;
+import org.eclipse.gmf.runtime.common.ui.services.parser.ParserOptions;
+import org.eclipse.gmf.runtime.diagram.ui.editparts.CompartmentEditPart;
+import org.eclipse.gmf.runtime.diagram.ui.editparts.IGraphicalEditPart;
+import org.eclipse.gmf.runtime.diagram.ui.editparts.ITextAwareEditPart;
+import org.eclipse.gmf.runtime.diagram.ui.editpolicies.LabelDirectEditPolicy;
+import org.eclipse.gmf.runtime.diagram.ui.l10n.DiagramColorRegistry;
+import org.eclipse.gmf.runtime.diagram.ui.requests.RequestConstants;
+import org.eclipse.gmf.runtime.diagram.ui.tools.TextDirectEditManager;
+import org.eclipse.gmf.runtime.draw2d.ui.figures.WrappingLabel;
+import org.eclipse.gmf.runtime.emf.core.util.EObjectAdapter;
+import org.eclipse.gmf.runtime.emf.ui.services.parser.ISemanticParser;
+import org.eclipse.gmf.runtime.notation.FontStyle;
+import org.eclipse.gmf.runtime.notation.NotationPackage;
+import org.eclipse.gmf.runtime.notation.View;
+import org.eclipse.jface.text.contentassist.IContentAssistProcessor;
+import org.eclipse.jface.viewers.ICellEditorValidator;
+import org.eclipse.swt.SWT;
+import org.eclipse.swt.accessibility.AccessibleEvent;
+import org.eclipse.swt.graphics.Color;
+import org.eclipse.swt.graphics.FontData;
+import org.eclipse.swt.graphics.Image;
+
+import comrel.diagram.edit.policies.ComrelTextSelectionEditPolicy;
+import comrel.diagram.part.ComrelVisualIDRegistry;
+import comrel.diagram.providers.ComrelElementTypes;
+import comrel.diagram.providers.ComrelParserProvider;
+
+/**
+ * @generated
+ */
+public class CartesianQueuedUnitNameTypeLblStrict7EditPart extends
+ CompartmentEditPart implements ITextAwareEditPart {
+
+ /**
+ * @generated
+ */
+ public static final int VISUAL_ID = 5033;
+
+ /**
+ * @generated
+ */
+ private DirectEditManager manager;
+
+ /**
+ * @generated
+ */
+ private IParser parser;
+
+ /**
+ * @generated
+ */
+ private List<?> parserElements;
+
+ /**
+ * @generated
+ */
+ private String defaultText;
+
+ /**
+ * @generated
+ */
+ public CartesianQueuedUnitNameTypeLblStrict7EditPart(View view) {
+ super(view);
+ }
+
+ /**
+ * @generated
+ */
+ protected void createDefaultEditPolicies() {
+ super.createDefaultEditPolicies();
+ installEditPolicy(EditPolicy.SELECTION_FEEDBACK_ROLE,
+ new ComrelTextSelectionEditPolicy());
+ installEditPolicy(EditPolicy.DIRECT_EDIT_ROLE,
+ new LabelDirectEditPolicy());
+ installEditPolicy(EditPolicy.PRIMARY_DRAG_ROLE,
+ new CompositeRefactoringEditPart.NodeLabelDragPolicy());
+ }
+
+ /**
+ * @generated
+ */
+ protected String getLabelTextHelper(IFigure figure) {
+ if (figure instanceof WrappingLabel) {
+ return ((WrappingLabel) figure).getText();
+ } else {
+ return ((Label) figure).getText();
+ }
+ }
+
+ /**
+ * @generated
+ */
+ protected void setLabelTextHelper(IFigure figure, String text) {
+ if (figure instanceof WrappingLabel) {
+ ((WrappingLabel) figure).setText(text);
+ } else {
+ ((Label) figure).setText(text);
+ }
+ }
+
+ /**
+ * @generated
+ */
+ protected Image getLabelIconHelper(IFigure figure) {
+ if (figure instanceof WrappingLabel) {
+ return ((WrappingLabel) figure).getIcon();
+ } else {
+ return ((Label) figure).getIcon();
+ }
+ }
+
+ /**
+ * @generated
+ */
+ protected void setLabelIconHelper(IFigure figure, Image icon) {
+ if (figure instanceof WrappingLabel) {
+ ((WrappingLabel) figure).setIcon(icon);
+ } else {
+ ((Label) figure).setIcon(icon);
+ }
+ }
+
+ /**
+ * @generated
+ */
+ public void setLabel(WrappingLabel figure) {
+ unregisterVisuals();
+ setFigure(figure);
+ defaultText = getLabelTextHelper(figure);
+ registerVisuals();
+ refreshVisuals();
+ }
+
+ /**
+ * @generated
+ */
+ @SuppressWarnings("rawtypes")
+ protected List getModelChildren() {
+ return Collections.EMPTY_LIST;
+ }
+
+ /**
+ * @generated
+ */
+ public IGraphicalEditPart getChildBySemanticHint(String semanticHint) {
+ return null;
+ }
+
+ /**
+ * @generated
+ */
+ protected EObject getParserElement() {
+ return resolveSemanticElement();
+ }
+
+ /**
+ * @generated
+ */
+ protected Image getLabelIcon() {
+ return null;
+ }
+
+ /**
+ * @generated
+ */
+ protected String getLabelText() {
+ String text = null;
+ EObject parserElement = getParserElement();
+ if (parserElement != null && getParser() != null) {
+ text = getParser().getPrintString(
+ new EObjectAdapter(parserElement),
+ getParserOptions().intValue());
+ }
+ if (text == null || text.length() == 0) {
+ text = defaultText;
+ }
+ return text;
+ }
+
+ /**
+ * @generated
+ */
+ public void setLabelText(String text) {
+ setLabelTextHelper(getFigure(), text);
+ Object pdEditPolicy = getEditPolicy(EditPolicy.PRIMARY_DRAG_ROLE);
+ if (pdEditPolicy instanceof ComrelTextSelectionEditPolicy) {
+ ((ComrelTextSelectionEditPolicy) pdEditPolicy).refreshFeedback();
+ }
+ Object sfEditPolicy = getEditPolicy(EditPolicy.SELECTION_FEEDBACK_ROLE);
+ if (sfEditPolicy instanceof ComrelTextSelectionEditPolicy) {
+ ((ComrelTextSelectionEditPolicy) sfEditPolicy).refreshFeedback();
+ }
+ }
+
+ /**
+ * @generated
+ */
+ public String getEditText() {
+ if (getParserElement() == null || getParser() == null) {
+ return ""; //$NON-NLS-1$
+ }
+ return getParser().getEditString(
+ new EObjectAdapter(getParserElement()),
+ getParserOptions().intValue());
+ }
+
+ /**
+ * @generated
+ */
+ protected boolean isEditable() {
+ return getParser() != null;
+ }
+
+ /**
+ * @generated
+ */
+ public ICellEditorValidator getEditTextValidator() {
+ return new ICellEditorValidator() {
+
+ public String isValid(final Object value) {
+ if (value instanceof String) {
+ final EObject element = getParserElement();
+ final IParser parser = getParser();
+ try {
+ IParserEditStatus valid = (IParserEditStatus) getEditingDomain()
+ .runExclusive(
+ new RunnableWithResult.Impl<IParserEditStatus>() {
+
+ public void run() {
+ setResult(parser
+ .isValidEditString(
+ new EObjectAdapter(
+ element),
+ (String) value));
+ }
+ });
+ return valid.getCode() == ParserEditStatus.EDITABLE ? null
+ : valid.getMessage();
+ } catch (InterruptedException ie) {
+ ie.printStackTrace();
+ }
+ }
+
+ // shouldn't get here
+ return null;
+ }
+ };
+ }
+
+ /**
+ * @generated
+ */
+ public IContentAssistProcessor getCompletionProcessor() {
+ if (getParserElement() == null || getParser() == null) {
+ return null;
+ }
+ return getParser().getCompletionProcessor(
+ new EObjectAdapter(getParserElement()));
+ }
+
+ /**
+ * @generated
+ */
+ public ParserOptions getParserOptions() {
+ return ParserOptions.NONE;
+ }
+
+ /**
+ * @generated
+ */
+ public IParser getParser() {
+ if (parser == null) {
+ parser = ComrelParserProvider
+ .getParser(
+ ComrelElementTypes.CartesianQueuedUnit_3047,
+ getParserElement(),
+ ComrelVisualIDRegistry
+ .getType(comrel.diagram.edit.parts.CartesianQueuedUnitNameTypeLblStrict7EditPart.VISUAL_ID));
+ }
+ return parser;
+ }
+
+ /**
+ * @generated
+ */
+ protected DirectEditManager getManager() {
+ if (manager == null) {
+ setManager(new TextDirectEditManager(this,
+ TextDirectEditManager.getTextCellEditorClass(this),
+ ComrelEditPartFactory.getTextCellEditorLocator(this)));
+ }
+ return manager;
+ }
+
+ /**
+ * @generated
+ */
+ protected void setManager(DirectEditManager manager) {
+ this.manager = manager;
+ }
+
+ /**
+ * @generated
+ */
+ protected void performDirectEdit() {
+ getManager().show();
+ }
+
+ /**
+ * @generated
+ */
+ protected void performDirectEdit(Point eventLocation) {
+ if (getManager().getClass() == TextDirectEditManager.class) {
+ ((TextDirectEditManager) getManager()).show(eventLocation
+ .getSWTPoint());
+ }
+ }
+
+ /**
+ * @generated
+ */
+ private void performDirectEdit(char initialCharacter) {
+ if (getManager() instanceof TextDirectEditManager) {
+ ((TextDirectEditManager) getManager()).show(initialCharacter);
+ } else {
+ performDirectEdit();
+ }
+ }
+
+ /**
+ * @generated
+ */
+ protected void performDirectEditRequest(Request request) {
+ final Request theRequest = request;
+ try {
+ getEditingDomain().runExclusive(new Runnable() {
+
+ public void run() {
+ if (isActive() && isEditable()) {
+ if (theRequest
+ .getExtendedData()
+ .get(RequestConstants.REQ_DIRECTEDIT_EXTENDEDDATA_INITIAL_CHAR) instanceof Character) {
+ Character initialChar = (Character) theRequest
+ .getExtendedData()
+ .get(RequestConstants.REQ_DIRECTEDIT_EXTENDEDDATA_INITIAL_CHAR);
+ performDirectEdit(initialChar.charValue());
+ } else if ((theRequest instanceof DirectEditRequest)
+ && (getEditText().equals(getLabelText()))) {
+ DirectEditRequest editRequest = (DirectEditRequest) theRequest;
+ performDirectEdit(editRequest.getLocation());
+ } else {
+ performDirectEdit();
+ }
+ }
+ }
+ });
+ } catch (InterruptedException e) {
+ e.printStackTrace();
+ }
+ }
+
+ /**
+ * @generated
+ */
+ protected void refreshVisuals() {
+ super.refreshVisuals();
+ refreshLabel();
+ refreshFont();
+ refreshFontColor();
+ refreshUnderline();
+ refreshStrikeThrough();
+ }
+
+ /**
+ * @generated
+ */
+ protected void refreshLabel() {
+ setLabelTextHelper(getFigure(), getLabelText());
+ setLabelIconHelper(getFigure(), getLabelIcon());
+ Object pdEditPolicy = getEditPolicy(EditPolicy.PRIMARY_DRAG_ROLE);
+ if (pdEditPolicy instanceof ComrelTextSelectionEditPolicy) {
+ ((ComrelTextSelectionEditPolicy) pdEditPolicy).refreshFeedback();
+ }
+ Object sfEditPolicy = getEditPolicy(EditPolicy.SELECTION_FEEDBACK_ROLE);
+ if (sfEditPolicy instanceof ComrelTextSelectionEditPolicy) {
+ ((ComrelTextSelectionEditPolicy) sfEditPolicy).refreshFeedback();
+ }
+ }
+
+ /**
+ * @generated
+ */
+ protected void refreshUnderline() {
+ FontStyle style = (FontStyle) getFontStyleOwnerView().getStyle(
+ NotationPackage.eINSTANCE.getFontStyle());
+ if (style != null && getFigure() instanceof WrappingLabel) {
+ ((WrappingLabel) getFigure()).setTextUnderline(style.isUnderline());
+ }
+ }
+
+ /**
+ * @generated
+ */
+ protected void refreshStrikeThrough() {
+ FontStyle style = (FontStyle) getFontStyleOwnerView().getStyle(
+ NotationPackage.eINSTANCE.getFontStyle());
+ if (style != null && getFigure() instanceof WrappingLabel) {
+ ((WrappingLabel) getFigure()).setTextStrikeThrough(style
+ .isStrikeThrough());
+ }
+ }
+
+ /**
+ * @generated
+ */
+ protected void refreshFont() {
+ FontStyle style = (FontStyle) getFontStyleOwnerView().getStyle(
+ NotationPackage.eINSTANCE.getFontStyle());
+ if (style != null) {
+ FontData fontData = new FontData(style.getFontName(),
+ style.getFontHeight(), (style.isBold() ? SWT.BOLD
+ : SWT.NORMAL)
+ | (style.isItalic() ? SWT.ITALIC : SWT.NORMAL));
+ setFont(fontData);
+ }
+ }
+
+ /**
+ * @generated
+ */
+ protected void setFontColor(Color color) {
+ getFigure().setForegroundColor(color);
+ }
+
+ /**
+ * @generated
+ */
+ protected void addSemanticListeners() {
+ if (getParser() instanceof ISemanticParser) {
+ EObject element = resolveSemanticElement();
+ parserElements = ((ISemanticParser) getParser())
+ .getSemanticElementsBeingParsed(element);
+ for (int i = 0; i < parserElements.size(); i++) {
+ addListenerFilter(
+ "SemanticModel" + i, this, (EObject) parserElements.get(i)); //$NON-NLS-1$
+ }
+ } else {
+ super.addSemanticListeners();
+ }
+ }
+
+ /**
+ * @generated
+ */
+ protected void removeSemanticListeners() {
+ if (parserElements != null) {
+ for (int i = 0; i < parserElements.size(); i++) {
+ removeListenerFilter("SemanticModel" + i); //$NON-NLS-1$
+ }
+ } else {
+ super.removeSemanticListeners();
+ }
+ }
+
+ /**
+ * @generated
+ */
+ protected AccessibleEditPart getAccessibleEditPart() {
+ if (accessibleEP == null) {
+ accessibleEP = new AccessibleGraphicalEditPart() {
+
+ public void getName(AccessibleEvent e) {
+ e.result = getLabelTextHelper(getFigure());
+ }
+ };
+ }
+ return accessibleEP;
+ }
+
+ /**
+ * @generated
+ */
+ private View getFontStyleOwnerView() {
+ return getPrimaryView();
+ }
+
+ /**
+ * @generated
+ */
+ protected void addNotationalListeners() {
+ super.addNotationalListeners();
+ addListenerFilter("PrimaryView", this, getPrimaryView()); //$NON-NLS-1$
+ }
+
+ /**
+ * @generated
+ */
+ protected void removeNotationalListeners() {
+ super.removeNotationalListeners();
+ removeListenerFilter("PrimaryView"); //$NON-NLS-1$
+ }
+
+ /**
+ * @generated
+ */
+ protected void handleNotificationEvent(Notification event) {
+ Object feature = event.getFeature();
+ if (NotationPackage.eINSTANCE.getFontStyle_FontColor().equals(feature)) {
+ Integer c = (Integer) event.getNewValue();
+ setFontColor(DiagramColorRegistry.getInstance().getColor(c));
+ } else if (NotationPackage.eINSTANCE.getFontStyle_Underline().equals(
+ feature)) {
+ refreshUnderline();
+ } else if (NotationPackage.eINSTANCE.getFontStyle_StrikeThrough()
+ .equals(feature)) {
+ refreshStrikeThrough();
+ } else if (NotationPackage.eINSTANCE.getFontStyle_FontHeight().equals(
+ feature)
+ || NotationPackage.eINSTANCE.getFontStyle_FontName().equals(
+ feature)
+ || NotationPackage.eINSTANCE.getFontStyle_Bold()
+ .equals(feature)
+ || NotationPackage.eINSTANCE.getFontStyle_Italic().equals(
+ feature)) {
+ refreshFont();
+ } else {
+ if (getParser() != null
+ && getParser().isAffectingEvent(event,
+ getParserOptions().intValue())) {
+ refreshLabel();
+ }
+ if (getParser() instanceof ISemanticParser) {
+ ISemanticParser modelParser = (ISemanticParser) getParser();
+ if (modelParser.areSemanticElementsAffected(null, event)) {
+ removeSemanticListeners();
+ if (resolveSemanticElement() != null) {
+ addSemanticListeners();
+ }
+ refreshLabel();
+ }
+ }
+ }
+ super.handleNotificationEvent(event);
+ }
+
+ /**
+ * @generated
+ */
+ protected IFigure createFigure() {
+ // Parent should assign one using setLabel() method
+ return null;
+ }
+
+}
diff --git a/org.eclipse.emf.refactor.comrel.diagram/src/comrel/diagram/edit/parts/CartesianQueuedUnitNameTypeLblStrictEditPart.java b/org.eclipse.emf.refactor.comrel.diagram/src/comrel/diagram/edit/parts/CartesianQueuedUnitNameTypeLblStrictEditPart.java
new file mode 100644
index 0000000..b2a1561
--- /dev/null
+++ b/org.eclipse.emf.refactor.comrel.diagram/src/comrel/diagram/edit/parts/CartesianQueuedUnitNameTypeLblStrictEditPart.java
@@ -0,0 +1,576 @@
+/*
+ *
+ */
+package comrel.diagram.edit.parts;
+
+import java.util.Collections;
+import java.util.List;
+
+import org.eclipse.draw2d.IFigure;
+import org.eclipse.draw2d.Label;
+import org.eclipse.draw2d.geometry.Point;
+import org.eclipse.emf.common.notify.Notification;
+import org.eclipse.emf.ecore.EObject;
+import org.eclipse.emf.transaction.RunnableWithResult;
+import org.eclipse.gef.AccessibleEditPart;
+import org.eclipse.gef.EditPolicy;
+import org.eclipse.gef.Request;
+import org.eclipse.gef.requests.DirectEditRequest;
+import org.eclipse.gef.tools.DirectEditManager;
+import org.eclipse.gmf.runtime.common.ui.services.parser.IParser;
+import org.eclipse.gmf.runtime.common.ui.services.parser.IParserEditStatus;
+import org.eclipse.gmf.runtime.common.ui.services.parser.ParserEditStatus;
+import org.eclipse.gmf.runtime.common.ui.services.parser.ParserOptions;
+import org.eclipse.gmf.runtime.diagram.ui.editparts.CompartmentEditPart;
+import org.eclipse.gmf.runtime.diagram.ui.editparts.IGraphicalEditPart;
+import org.eclipse.gmf.runtime.diagram.ui.editparts.ITextAwareEditPart;
+import org.eclipse.gmf.runtime.diagram.ui.editpolicies.LabelDirectEditPolicy;
+import org.eclipse.gmf.runtime.diagram.ui.l10n.DiagramColorRegistry;
+import org.eclipse.gmf.runtime.diagram.ui.requests.RequestConstants;
+import org.eclipse.gmf.runtime.diagram.ui.tools.TextDirectEditManager;
+import org.eclipse.gmf.runtime.draw2d.ui.figures.WrappingLabel;
+import org.eclipse.gmf.runtime.emf.core.util.EObjectAdapter;
+import org.eclipse.gmf.runtime.emf.ui.services.parser.ISemanticParser;
+import org.eclipse.gmf.runtime.notation.FontStyle;
+import org.eclipse.gmf.runtime.notation.NotationPackage;
+import org.eclipse.gmf.runtime.notation.View;
+import org.eclipse.jface.text.contentassist.IContentAssistProcessor;
+import org.eclipse.jface.viewers.ICellEditorValidator;
+import org.eclipse.swt.SWT;
+import org.eclipse.swt.accessibility.AccessibleEvent;
+import org.eclipse.swt.graphics.Color;
+import org.eclipse.swt.graphics.FontData;
+import org.eclipse.swt.graphics.Image;
+
+import comrel.diagram.edit.policies.ComrelTextSelectionEditPolicy;
+import comrel.diagram.part.ComrelVisualIDRegistry;
+import comrel.diagram.providers.ComrelElementTypes;
+import comrel.diagram.providers.ComrelParserProvider;
+
+/**
+ * @generated
+ */
+public class CartesianQueuedUnitNameTypeLblStrictEditPart extends
+ CompartmentEditPart implements ITextAwareEditPart {
+
+ /**
+ * @generated
+ */
+ public static final int VISUAL_ID = 5080;
+
+ /**
+ * @generated
+ */
+ private DirectEditManager manager;
+
+ /**
+ * @generated
+ */
+ private IParser parser;
+
+ /**
+ * @generated
+ */
+ private List<?> parserElements;
+
+ /**
+ * @generated
+ */
+ private String defaultText;
+
+ /**
+ * @generated
+ */
+ public CartesianQueuedUnitNameTypeLblStrictEditPart(View view) {
+ super(view);
+ }
+
+ /**
+ * @generated
+ */
+ protected void createDefaultEditPolicies() {
+ super.createDefaultEditPolicies();
+ installEditPolicy(EditPolicy.SELECTION_FEEDBACK_ROLE,
+ new ComrelTextSelectionEditPolicy());
+ installEditPolicy(EditPolicy.DIRECT_EDIT_ROLE,
+ new LabelDirectEditPolicy());
+ installEditPolicy(EditPolicy.PRIMARY_DRAG_ROLE,
+ new CompositeRefactoringEditPart.NodeLabelDragPolicy());
+ }
+
+ /**
+ * @generated
+ */
+ protected String getLabelTextHelper(IFigure figure) {
+ if (figure instanceof WrappingLabel) {
+ return ((WrappingLabel) figure).getText();
+ } else {
+ return ((Label) figure).getText();
+ }
+ }
+
+ /**
+ * @generated
+ */
+ protected void setLabelTextHelper(IFigure figure, String text) {
+ if (figure instanceof WrappingLabel) {
+ ((WrappingLabel) figure).setText(text);
+ } else {
+ ((Label) figure).setText(text);
+ }
+ }
+
+ /**
+ * @generated
+ */
+ protected Image getLabelIconHelper(IFigure figure) {
+ if (figure instanceof WrappingLabel) {
+ return ((WrappingLabel) figure).getIcon();
+ } else {
+ return ((Label) figure).getIcon();
+ }
+ }
+
+ /**
+ * @generated
+ */
+ protected void setLabelIconHelper(IFigure figure, Image icon) {
+ if (figure instanceof WrappingLabel) {
+ ((WrappingLabel) figure).setIcon(icon);
+ } else {
+ ((Label) figure).setIcon(icon);
+ }
+ }
+
+ /**
+ * @generated
+ */
+ public void setLabel(WrappingLabel figure) {
+ unregisterVisuals();
+ setFigure(figure);
+ defaultText = getLabelTextHelper(figure);
+ registerVisuals();
+ refreshVisuals();
+ }
+
+ /**
+ * @generated
+ */
+ @SuppressWarnings("rawtypes")
+ protected List getModelChildren() {
+ return Collections.EMPTY_LIST;
+ }
+
+ /**
+ * @generated
+ */
+ public IGraphicalEditPart getChildBySemanticHint(String semanticHint) {
+ return null;
+ }
+
+ /**
+ * @generated
+ */
+ protected EObject getParserElement() {
+ return resolveSemanticElement();
+ }
+
+ /**
+ * @generated
+ */
+ protected Image getLabelIcon() {
+ return null;
+ }
+
+ /**
+ * @generated
+ */
+ protected String getLabelText() {
+ String text = null;
+ EObject parserElement = getParserElement();
+ if (parserElement != null && getParser() != null) {
+ text = getParser().getPrintString(
+ new EObjectAdapter(parserElement),
+ getParserOptions().intValue());
+ }
+ if (text == null || text.length() == 0) {
+ text = defaultText;
+ }
+ return text;
+ }
+
+ /**
+ * @generated
+ */
+ public void setLabelText(String text) {
+ setLabelTextHelper(getFigure(), text);
+ Object pdEditPolicy = getEditPolicy(EditPolicy.PRIMARY_DRAG_ROLE);
+ if (pdEditPolicy instanceof ComrelTextSelectionEditPolicy) {
+ ((ComrelTextSelectionEditPolicy) pdEditPolicy).refreshFeedback();
+ }
+ Object sfEditPolicy = getEditPolicy(EditPolicy.SELECTION_FEEDBACK_ROLE);
+ if (sfEditPolicy instanceof ComrelTextSelectionEditPolicy) {
+ ((ComrelTextSelectionEditPolicy) sfEditPolicy).refreshFeedback();
+ }
+ }
+
+ /**
+ * @generated
+ */
+ public String getEditText() {
+ if (getParserElement() == null || getParser() == null) {
+ return ""; //$NON-NLS-1$
+ }
+ return getParser().getEditString(
+ new EObjectAdapter(getParserElement()),
+ getParserOptions().intValue());
+ }
+
+ /**
+ * @generated
+ */
+ protected boolean isEditable() {
+ return getParser() != null;
+ }
+
+ /**
+ * @generated
+ */
+ public ICellEditorValidator getEditTextValidator() {
+ return new ICellEditorValidator() {
+
+ public String isValid(final Object value) {
+ if (value instanceof String) {
+ final EObject element = getParserElement();
+ final IParser parser = getParser();
+ try {
+ IParserEditStatus valid = (IParserEditStatus) getEditingDomain()
+ .runExclusive(
+ new RunnableWithResult.Impl<IParserEditStatus>() {
+
+ public void run() {
+ setResult(parser
+ .isValidEditString(
+ new EObjectAdapter(
+ element),
+ (String) value));
+ }
+ });
+ return valid.getCode() == ParserEditStatus.EDITABLE ? null
+ : valid.getMessage();
+ } catch (InterruptedException ie) {
+ ie.printStackTrace();
+ }
+ }
+
+ // shouldn't get here
+ return null;
+ }
+ };
+ }
+
+ /**
+ * @generated
+ */
+ public IContentAssistProcessor getCompletionProcessor() {
+ if (getParserElement() == null || getParser() == null) {
+ return null;
+ }
+ return getParser().getCompletionProcessor(
+ new EObjectAdapter(getParserElement()));
+ }
+
+ /**
+ * @generated
+ */
+ public ParserOptions getParserOptions() {
+ return ParserOptions.NONE;
+ }
+
+ /**
+ * @generated
+ */
+ public IParser getParser() {
+ if (parser == null) {
+ parser = ComrelParserProvider
+ .getParser(
+ ComrelElementTypes.CartesianQueuedUnit_2002,
+ getParserElement(),
+ ComrelVisualIDRegistry
+ .getType(comrel.diagram.edit.parts.CartesianQueuedUnitNameTypeLblStrictEditPart.VISUAL_ID));
+ }
+ return parser;
+ }
+
+ /**
+ * @generated
+ */
+ protected DirectEditManager getManager() {
+ if (manager == null) {
+ setManager(new TextDirectEditManager(this,
+ TextDirectEditManager.getTextCellEditorClass(this),
+ ComrelEditPartFactory.getTextCellEditorLocator(this)));
+ }
+ return manager;
+ }
+
+ /**
+ * @generated
+ */
+ protected void setManager(DirectEditManager manager) {
+ this.manager = manager;
+ }
+
+ /**
+ * @generated
+ */
+ protected void performDirectEdit() {
+ getManager().show();
+ }
+
+ /**
+ * @generated
+ */
+ protected void performDirectEdit(Point eventLocation) {
+ if (getManager().getClass() == TextDirectEditManager.class) {
+ ((TextDirectEditManager) getManager()).show(eventLocation
+ .getSWTPoint());
+ }
+ }
+
+ /**
+ * @generated
+ */
+ private void performDirectEdit(char initialCharacter) {
+ if (getManager() instanceof TextDirectEditManager) {
+ ((TextDirectEditManager) getManager()).show(initialCharacter);
+ } else {
+ performDirectEdit();
+ }
+ }
+
+ /**
+ * @generated
+ */
+ protected void performDirectEditRequest(Request request) {
+ final Request theRequest = request;
+ try {
+ getEditingDomain().runExclusive(new Runnable() {
+
+ public void run() {
+ if (isActive() && isEditable()) {
+ if (theRequest
+ .getExtendedData()
+ .get(RequestConstants.REQ_DIRECTEDIT_EXTENDEDDATA_INITIAL_CHAR) instanceof Character) {
+ Character initialChar = (Character) theRequest
+ .getExtendedData()
+ .get(RequestConstants.REQ_DIRECTEDIT_EXTENDEDDATA_INITIAL_CHAR);
+ performDirectEdit(initialChar.charValue());
+ } else if ((theRequest instanceof DirectEditRequest)
+ && (getEditText().equals(getLabelText()))) {
+ DirectEditRequest editRequest = (DirectEditRequest) theRequest;
+ performDirectEdit(editRequest.getLocation());
+ } else {
+ performDirectEdit();
+ }
+ }
+ }
+ });
+ } catch (InterruptedException e) {
+ e.printStackTrace();
+ }
+ }
+
+ /**
+ * @generated
+ */
+ protected void refreshVisuals() {
+ super.refreshVisuals();
+ refreshLabel();
+ refreshFont();
+ refreshFontColor();
+ refreshUnderline();
+ refreshStrikeThrough();
+ }
+
+ /**
+ * @generated
+ */
+ protected void refreshLabel() {
+ setLabelTextHelper(getFigure(), getLabelText());
+ setLabelIconHelper(getFigure(), getLabelIcon());
+ Object pdEditPolicy = getEditPolicy(EditPolicy.PRIMARY_DRAG_ROLE);
+ if (pdEditPolicy instanceof ComrelTextSelectionEditPolicy) {
+ ((ComrelTextSelectionEditPolicy) pdEditPolicy).refreshFeedback();
+ }
+ Object sfEditPolicy = getEditPolicy(EditPolicy.SELECTION_FEEDBACK_ROLE);
+ if (sfEditPolicy instanceof ComrelTextSelectionEditPolicy) {
+ ((ComrelTextSelectionEditPolicy) sfEditPolicy).refreshFeedback();
+ }
+ }
+
+ /**
+ * @generated
+ */
+ protected void refreshUnderline() {
+ FontStyle style = (FontStyle) getFontStyleOwnerView().getStyle(
+ NotationPackage.eINSTANCE.getFontStyle());
+ if (style != null && getFigure() instanceof WrappingLabel) {
+ ((WrappingLabel) getFigure()).setTextUnderline(style.isUnderline());
+ }
+ }
+
+ /**
+ * @generated
+ */
+ protected void refreshStrikeThrough() {
+ FontStyle style = (FontStyle) getFontStyleOwnerView().getStyle(
+ NotationPackage.eINSTANCE.getFontStyle());
+ if (style != null && getFigure() instanceof WrappingLabel) {
+ ((WrappingLabel) getFigure()).setTextStrikeThrough(style
+ .isStrikeThrough());
+ }
+ }
+
+ /**
+ * @generated
+ */
+ protected void refreshFont() {
+ FontStyle style = (FontStyle) getFontStyleOwnerView().getStyle(
+ NotationPackage.eINSTANCE.getFontStyle());
+ if (style != null) {
+ FontData fontData = new FontData(style.getFontName(),
+ style.getFontHeight(), (style.isBold() ? SWT.BOLD
+ : SWT.NORMAL)
+ | (style.isItalic() ? SWT.ITALIC : SWT.NORMAL));
+ setFont(fontData);
+ }
+ }
+
+ /**
+ * @generated
+ */
+ protected void setFontColor(Color color) {
+ getFigure().setForegroundColor(color);
+ }
+
+ /**
+ * @generated
+ */
+ protected void addSemanticListeners() {
+ if (getParser() instanceof ISemanticParser) {
+ EObject element = resolveSemanticElement();
+ parserElements = ((ISemanticParser) getParser())
+ .getSemanticElementsBeingParsed(element);
+ for (int i = 0; i < parserElements.size(); i++) {
+ addListenerFilter(
+ "SemanticModel" + i, this, (EObject) parserElements.get(i)); //$NON-NLS-1$
+ }
+ } else {
+ super.addSemanticListeners();
+ }
+ }
+
+ /**
+ * @generated
+ */
+ protected void removeSemanticListeners() {
+ if (parserElements != null) {
+ for (int i = 0; i < parserElements.size(); i++) {
+ removeListenerFilter("SemanticModel" + i); //$NON-NLS-1$
+ }
+ } else {
+ super.removeSemanticListeners();
+ }
+ }
+
+ /**
+ * @generated
+ */
+ protected AccessibleEditPart getAccessibleEditPart() {
+ if (accessibleEP == null) {
+ accessibleEP = new AccessibleGraphicalEditPart() {
+
+ public void getName(AccessibleEvent e) {
+ e.result = getLabelTextHelper(getFigure());
+ }
+ };
+ }
+ return accessibleEP;
+ }
+
+ /**
+ * @generated
+ */
+ private View getFontStyleOwnerView() {
+ return getPrimaryView();
+ }
+
+ /**
+ * @generated
+ */
+ protected void addNotationalListeners() {
+ super.addNotationalListeners();
+ addListenerFilter("PrimaryView", this, getPrimaryView()); //$NON-NLS-1$
+ }
+
+ /**
+ * @generated
+ */
+ protected void removeNotationalListeners() {
+ super.removeNotationalListeners();
+ removeListenerFilter("PrimaryView"); //$NON-NLS-1$
+ }
+
+ /**
+ * @generated
+ */
+ protected void handleNotificationEvent(Notification event) {
+ Object feature = event.getFeature();
+ if (NotationPackage.eINSTANCE.getFontStyle_FontColor().equals(feature)) {
+ Integer c = (Integer) event.getNewValue();
+ setFontColor(DiagramColorRegistry.getInstance().getColor(c));
+ } else if (NotationPackage.eINSTANCE.getFontStyle_Underline().equals(
+ feature)) {
+ refreshUnderline();
+ } else if (NotationPackage.eINSTANCE.getFontStyle_StrikeThrough()
+ .equals(feature)) {
+ refreshStrikeThrough();
+ } else if (NotationPackage.eINSTANCE.getFontStyle_FontHeight().equals(
+ feature)
+ || NotationPackage.eINSTANCE.getFontStyle_FontName().equals(
+ feature)
+ || NotationPackage.eINSTANCE.getFontStyle_Bold()
+ .equals(feature)
+ || NotationPackage.eINSTANCE.getFontStyle_Italic().equals(
+ feature)) {
+ refreshFont();
+ } else {
+ if (getParser() != null
+ && getParser().isAffectingEvent(event,
+ getParserOptions().intValue())) {
+ refreshLabel();
+ }
+ if (getParser() instanceof ISemanticParser) {
+ ISemanticParser modelParser = (ISemanticParser) getParser();
+ if (modelParser.areSemanticElementsAffected(null, event)) {
+ removeSemanticListeners();
+ if (resolveSemanticElement() != null) {
+ addSemanticListeners();
+ }
+ refreshLabel();
+ }
+ }
+ }
+ super.handleNotificationEvent(event);
+ }
+
+ /**
+ * @generated
+ */
+ protected IFigure createFigure() {
+ // Parent should assign one using setLabel() method
+ return null;
+ }
+
+}
diff --git a/org.eclipse.emf.refactor.comrel.diagram/src/comrel/diagram/edit/parts/CompositeRefactoringEditPart.java b/org.eclipse.emf.refactor.comrel.diagram/src/comrel/diagram/edit/parts/CompositeRefactoringEditPart.java
new file mode 100644
index 0000000..e710fe4
--- /dev/null
+++ b/org.eclipse.emf.refactor.comrel.diagram/src/comrel/diagram/edit/parts/CompositeRefactoringEditPart.java
@@ -0,0 +1,134 @@
+/*
+ *
+ */
+package comrel.diagram.edit.parts;
+
+import java.util.ArrayList;
+import java.util.Collections;
+import java.util.Iterator;
+import java.util.List;
+
+import org.eclipse.emf.ecore.EObject;
+import org.eclipse.gef.GraphicalEditPart;
+import org.eclipse.gef.Request;
+import org.eclipse.gef.commands.Command;
+import org.eclipse.gef.editpolicies.NonResizableEditPolicy;
+import org.eclipse.gef.handles.MoveHandle;
+import org.eclipse.gmf.runtime.diagram.ui.commands.ICommandProxy;
+import org.eclipse.gmf.runtime.diagram.ui.editparts.DiagramEditPart;
+import org.eclipse.gmf.runtime.diagram.ui.editpolicies.DiagramDragDropEditPolicy;
+import org.eclipse.gmf.runtime.diagram.ui.editpolicies.EditPolicyRoles;
+import org.eclipse.gmf.runtime.diagram.ui.requests.CreateViewRequest;
+import org.eclipse.gmf.runtime.diagram.ui.requests.DropObjectsRequest;
+import org.eclipse.gmf.runtime.emf.core.util.EObjectAdapter;
+import org.eclipse.gmf.runtime.notation.Node;
+import org.eclipse.gmf.runtime.notation.View;
+
+import comrel.diagram.edit.commands.ComrelCreateShortcutDecorationsCommand;
+import comrel.diagram.edit.policies.CompositeRefactoringCanonicalEditPolicy;
+import comrel.diagram.edit.policies.CompositeRefactoringItemSemanticEditPolicy;
+
+/**
+ * @generated
+ */
+public class CompositeRefactoringEditPart extends DiagramEditPart {
+
+ /**
+ * @generated
+ */
+ public final static String MODEL_ID = "Comrel"; //$NON-NLS-1$
+
+ /**
+ * @generated
+ */
+ public static final int VISUAL_ID = 1000;
+
+ /**
+ * @generated
+ */
+ public CompositeRefactoringEditPart(View view) {
+ super(view);
+ }
+
+ /**
+ * @generated
+ */
+ protected void createDefaultEditPolicies() {
+ super.createDefaultEditPolicies();
+ installEditPolicy(EditPolicyRoles.SEMANTIC_ROLE,
+ new CompositeRefactoringItemSemanticEditPolicy());
+ installEditPolicy(EditPolicyRoles.CANONICAL_ROLE,
+ new CompositeRefactoringCanonicalEditPolicy());
+ installEditPolicy(EditPolicyRoles.DRAG_DROP_ROLE,
+ new DiagramDragDropEditPolicy() {
+ public Command getDropObjectsCommand(
+ DropObjectsRequest dropRequest) {
+ ArrayList<CreateViewRequest.ViewDescriptor> viewDescriptors = new ArrayList<CreateViewRequest.ViewDescriptor>();
+ for (Iterator<?> it = dropRequest.getObjects()
+ .iterator(); it.hasNext();) {
+ Object nextObject = it.next();
+ if (false == nextObject instanceof EObject) {
+ continue;
+ }
+ viewDescriptors
+ .add(new CreateViewRequest.ViewDescriptor(
+ new EObjectAdapter(
+ (EObject) nextObject),
+ Node.class, null,
+ getDiagramPreferencesHint()));
+ }
+ return createShortcutsCommand(dropRequest,
+ viewDescriptors);
+ }
+
+ private Command createShortcutsCommand(
+ DropObjectsRequest dropRequest,
+ List<CreateViewRequest.ViewDescriptor> viewDescriptors) {
+ Command command = createViewsAndArrangeCommand(
+ dropRequest, viewDescriptors);
+ if (command != null) {
+ return command
+ .chain(new ICommandProxy(
+ new ComrelCreateShortcutDecorationsCommand(
+ getEditingDomain(),
+ (View) getModel(),
+ viewDescriptors)));
+ }
+ return null;
+ }
+ });
+ // removeEditPolicy(org.eclipse.gmf.runtime.diagram.ui.editpolicies.EditPolicyRoles.POPUPBAR_ROLE);
+ }
+
+ /**
+ * @generated
+ */
+ /*package-local*/static class NodeLabelDragPolicy extends
+ NonResizableEditPolicy {
+
+ /**
+ * @generated
+ */
+ @SuppressWarnings("rawtypes")
+ protected List createSelectionHandles() {
+ MoveHandle h = new MoveHandle((GraphicalEditPart) getHost());
+ h.setBorder(null);
+ return Collections.singletonList(h);
+ }
+
+ /**
+ * @generated
+ */
+ public Command getCommand(Request request) {
+ return null;
+ }
+
+ /**
+ * @generated
+ */
+ public boolean understandsRequest(Request request) {
+ return false;
+ }
+ }
+
+}
diff --git a/org.eclipse.emf.refactor.comrel.diagram/src/comrel/diagram/edit/parts/ComrelEditPartFactory.java b/org.eclipse.emf.refactor.comrel.diagram/src/comrel/diagram/edit/parts/ComrelEditPartFactory.java
new file mode 100644
index 0000000..c0a5bf3
--- /dev/null
+++ b/org.eclipse.emf.refactor.comrel.diagram/src/comrel/diagram/edit/parts/ComrelEditPartFactory.java
@@ -0,0 +1,1009 @@
+/*
+ *
+ */
+package comrel.diagram.edit.parts;
+
+import org.eclipse.draw2d.FigureUtilities;
+import org.eclipse.draw2d.Label;
+import org.eclipse.draw2d.geometry.Dimension;
+import org.eclipse.draw2d.geometry.Rectangle;
+import org.eclipse.gef.EditPart;
+import org.eclipse.gef.EditPartFactory;
+import org.eclipse.gef.tools.CellEditorLocator;
+import org.eclipse.gmf.runtime.diagram.ui.editparts.ITextAwareEditPart;
+import org.eclipse.gmf.runtime.draw2d.ui.figures.WrappingLabel;
+import org.eclipse.gmf.runtime.notation.View;
+import org.eclipse.jface.viewers.CellEditor;
+import org.eclipse.swt.SWT;
+import org.eclipse.swt.widgets.Text;
+
+import comrel.diagram.part.ComrelVisualIDRegistry;
+
+/**
+ * @generated
+ */
+public class ComrelEditPartFactory implements EditPartFactory {
+
+ /**
+ * @generated
+ */
+ public EditPart createEditPart(EditPart context, Object model) {
+ if (model instanceof View) {
+ View view = (View) model;
+ switch (ComrelVisualIDRegistry.getVisualID(view)) {
+
+ case CompositeRefactoringEditPart.VISUAL_ID:
+ return new CompositeRefactoringEditPart(view);
+
+ case SingleInputPortEditPart.VISUAL_ID:
+ return new SingleInputPortEditPart(view);
+
+ case SingleInputPortNameTypeEditPart.VISUAL_ID:
+ return new SingleInputPortNameTypeEditPart(view);
+
+ case CartesianQueuedUnitEditPart.VISUAL_ID:
+ return new CartesianQueuedUnitEditPart(view);
+
+ case CartesianQueuedUnitNameTypeLblStrictEditPart.VISUAL_ID:
+ return new CartesianQueuedUnitNameTypeLblStrictEditPart(view);
+
+ case ParallelQueuedUnitEditPart.VISUAL_ID:
+ return new ParallelQueuedUnitEditPart(view);
+
+ case ParallelQueuedUnitNameTypeLblStrictEditPart.VISUAL_ID:
+ return new ParallelQueuedUnitNameTypeLblStrictEditPart(view);
+
+ case SingleQueuedUnitEditPart.VISUAL_ID:
+ return new SingleQueuedUnitEditPart(view);
+
+ case SingleQueuedUnitNameTypeLblStrictEditPart.VISUAL_ID:
+ return new SingleQueuedUnitNameTypeLblStrictEditPart(view);
+
+ case SequentialUnitEditPart.VISUAL_ID:
+ return new SequentialUnitEditPart(view);
+
+ case SequentialUnitNameTypeLblStrictEditPart.VISUAL_ID:
+ return new SequentialUnitNameTypeLblStrictEditPart(view);
+
+ case ConditionalUnitEditPart.VISUAL_ID:
+ return new ConditionalUnitEditPart(view);
+
+ case ConditionalUnitNameTypeEditPart.VISUAL_ID:
+ return new ConditionalUnitNameTypeEditPart(view);
+
+ case AtomicUnitEditPart.VISUAL_ID:
+ return new AtomicUnitEditPart(view);
+
+ case AtomicUnitLabelTypeEditPart.VISUAL_ID:
+ return new AtomicUnitLabelTypeEditPart(view);
+
+ case SingleInputPort2EditPart.VISUAL_ID:
+ return new SingleInputPort2EditPart(view);
+
+ case SingleInputPortNameType2EditPart.VISUAL_ID:
+ return new SingleInputPortNameType2EditPart(view);
+
+ case MultiInputPortEditPart.VISUAL_ID:
+ return new MultiInputPortEditPart(view);
+
+ case MultiInputPortNameTypeEditPart.VISUAL_ID:
+ return new MultiInputPortNameTypeEditPart(view);
+
+ case CartesianQueuedUnit2EditPart.VISUAL_ID:
+ return new CartesianQueuedUnit2EditPart(view);
+
+ case CartesianQueuedUnitNameTypeLblStrict2EditPart.VISUAL_ID:
+ return new CartesianQueuedUnitNameTypeLblStrict2EditPart(view);
+
+ case ParallelQueuedUnit2EditPart.VISUAL_ID:
+ return new ParallelQueuedUnit2EditPart(view);
+
+ case ParallelQueuedUnitNameTypeLblStrict2EditPart.VISUAL_ID:
+ return new ParallelQueuedUnitNameTypeLblStrict2EditPart(view);
+
+ case SingleInputPort3EditPart.VISUAL_ID:
+ return new SingleInputPort3EditPart(view);
+
+ case SingleInputPortNameType3EditPart.VISUAL_ID:
+ return new SingleInputPortNameType3EditPart(view);
+
+ case MultiInputPort2EditPart.VISUAL_ID:
+ return new MultiInputPort2EditPart(view);
+
+ case MultiInputPortNameType2EditPart.VISUAL_ID:
+ return new MultiInputPortNameType2EditPart(view);
+
+ case CartesianQueuedUnit3EditPart.VISUAL_ID:
+ return new CartesianQueuedUnit3EditPart(view);
+
+ case CartesianQueuedUnitNameTypeLblStrict3EditPart.VISUAL_ID:
+ return new CartesianQueuedUnitNameTypeLblStrict3EditPart(view);
+
+ case SingleFeatureUnitEditPart.VISUAL_ID:
+ return new SingleFeatureUnitEditPart(view);
+
+ case SingleFeatureUnitNameTypeEditPart.VISUAL_ID:
+ return new SingleFeatureUnitNameTypeEditPart(view);
+
+ case SingleInputPort4EditPart.VISUAL_ID:
+ return new SingleInputPort4EditPart(view);
+
+ case SingleInputPortNameType4EditPart.VISUAL_ID:
+ return new SingleInputPortNameType4EditPart(view);
+
+ case MultiInputPort3EditPart.VISUAL_ID:
+ return new MultiInputPort3EditPart(view);
+
+ case MultiInputPortNameType3EditPart.VISUAL_ID:
+ return new MultiInputPortNameType3EditPart(view);
+
+ case SingleOutputPortEditPart.VISUAL_ID:
+ return new SingleOutputPortEditPart(view);
+
+ case SingleOutputPortNameTypeEditPart.VISUAL_ID:
+ return new SingleOutputPortNameTypeEditPart(view);
+
+ case MultiFeatureUnitEditPart.VISUAL_ID:
+ return new MultiFeatureUnitEditPart(view);
+
+ case MultiFeatureUnitNameTypeEditPart.VISUAL_ID:
+ return new MultiFeatureUnitNameTypeEditPart(view);
+
+ case SingleInputPort5EditPart.VISUAL_ID:
+ return new SingleInputPort5EditPart(view);
+
+ case SingleInputPortNameType5EditPart.VISUAL_ID:
+ return new SingleInputPortNameType5EditPart(view);
+
+ case MultiInputPort4EditPart.VISUAL_ID:
+ return new MultiInputPort4EditPart(view);
+
+ case MultiInputPortNameType4EditPart.VISUAL_ID:
+ return new MultiInputPortNameType4EditPart(view);
+
+ case MultiOutputPortEditPart.VISUAL_ID:
+ return new MultiOutputPortEditPart(view);
+
+ case MultiOutputPortNameTypeEditPart.VISUAL_ID:
+ return new MultiOutputPortNameTypeEditPart(view);
+
+ case SingleFilterUnitEditPart.VISUAL_ID:
+ return new SingleFilterUnitEditPart(view);
+
+ case SingleFilterUnitNameTypeEditPart.VISUAL_ID:
+ return new SingleFilterUnitNameTypeEditPart(view);
+
+ case MultiInputPort5EditPart.VISUAL_ID:
+ return new MultiInputPort5EditPart(view);
+
+ case MultiInputPortNameType5EditPart.VISUAL_ID:
+ return new MultiInputPortNameType5EditPart(view);
+
+ case SingleOutputPort2EditPart.VISUAL_ID:
+ return new SingleOutputPort2EditPart(view);
+
+ case SingleOutputPortNameType2EditPart.VISUAL_ID:
+ return new SingleOutputPortNameType2EditPart(view);
+
+ case MultiFilterUnitEditPart.VISUAL_ID:
+ return new MultiFilterUnitEditPart(view);
+
+ case MultiFilterUnitNameTypeEditPart.VISUAL_ID:
+ return new MultiFilterUnitNameTypeEditPart(view);
+
+ case MultiInputPort6EditPart.VISUAL_ID:
+ return new MultiInputPort6EditPart(view);
+
+ case MultiInputPortNameType6EditPart.VISUAL_ID:
+ return new MultiInputPortNameType6EditPart(view);
+
+ case MultiOutputPort2EditPart.VISUAL_ID:
+ return new MultiOutputPort2EditPart(view);
+
+ case MultiOutputPortNameType2EditPart.VISUAL_ID:
+ return new MultiOutputPortNameType2EditPart(view);
+
+ case SingleQueuedUnit2EditPart.VISUAL_ID:
+ return new SingleQueuedUnit2EditPart(view);
+
+ case SingleQueuedUnitNameTypeLblStrict2EditPart.VISUAL_ID:
+ return new SingleQueuedUnitNameTypeLblStrict2EditPart(view);
+
+ case SingleInputPort6EditPart.VISUAL_ID:
+ return new SingleInputPort6EditPart(view);
+
+ case SingleInputPortNameType6EditPart.VISUAL_ID:
+ return new SingleInputPortNameType6EditPart(view);
+
+ case MultiInputPort7EditPart.VISUAL_ID:
+ return new MultiInputPort7EditPart(view);
+
+ case MultiInputPortNameType7EditPart.VISUAL_ID:
+ return new MultiInputPortNameType7EditPart(view);
+
+ case CartesianQueuedUnit4EditPart.VISUAL_ID:
+ return new CartesianQueuedUnit4EditPart(view);
+
+ case CartesianQueuedUnitNameTypeLblStrict4EditPart.VISUAL_ID:
+ return new CartesianQueuedUnitNameTypeLblStrict4EditPart(view);
+
+ case SequentialUnit2EditPart.VISUAL_ID:
+ return new SequentialUnit2EditPart(view);
+
+ case SequentialUnitNameTypeLblStrict2EditPart.VISUAL_ID:
+ return new SequentialUnitNameTypeLblStrict2EditPart(view);
+
+ case SingleInputPort7EditPart.VISUAL_ID:
+ return new SingleInputPort7EditPart(view);
+
+ case SingleInputPortNameType7EditPart.VISUAL_ID:
+ return new SingleInputPortNameType7EditPart(view);
+
+ case MultiInputPort8EditPart.VISUAL_ID:
+ return new MultiInputPort8EditPart(view);
+
+ case MultiInputPortNameType8EditPart.VISUAL_ID:
+ return new MultiInputPortNameType8EditPart(view);
+
+ case CartesianQueuedUnit5EditPart.VISUAL_ID:
+ return new CartesianQueuedUnit5EditPart(view);
+
+ case CartesianQueuedUnitNameTypeLblStrict5EditPart.VISUAL_ID:
+ return new CartesianQueuedUnitNameTypeLblStrict5EditPart(view);
+
+ case ConditionalUnit2EditPart.VISUAL_ID:
+ return new ConditionalUnit2EditPart(view);
+
+ case ConditionalUnitNameType2EditPart.VISUAL_ID:
+ return new ConditionalUnitNameType2EditPart(view);
+
+ case SingleInputPort8EditPart.VISUAL_ID:
+ return new SingleInputPort8EditPart(view);
+
+ case SingleInputPortNameType8EditPart.VISUAL_ID:
+ return new SingleInputPortNameType8EditPart(view);
+
+ case MultiInputPort9EditPart.VISUAL_ID:
+ return new MultiInputPort9EditPart(view);
+
+ case MultiInputPortNameType9EditPart.VISUAL_ID:
+ return new MultiInputPortNameType9EditPart(view);
+
+ case CartesianQueuedUnit6EditPart.VISUAL_ID:
+ return new CartesianQueuedUnit6EditPart(view);
+
+ case CartesianQueuedUnitNameTypeLblStrict6EditPart.VISUAL_ID:
+ return new CartesianQueuedUnitNameTypeLblStrict6EditPart(view);
+
+ case AtomicUnit2EditPart.VISUAL_ID:
+ return new AtomicUnit2EditPart(view);
+
+ case AtomicUnitLabelType2EditPart.VISUAL_ID:
+ return new AtomicUnitLabelType2EditPart(view);
+
+ case SingleInputPort9EditPart.VISUAL_ID:
+ return new SingleInputPort9EditPart(view);
+
+ case SingleInputPortNameType9EditPart.VISUAL_ID:
+ return new SingleInputPortNameType9EditPart(view);
+
+ case ParallelQueuedUnit3EditPart.VISUAL_ID:
+ return new ParallelQueuedUnit3EditPart(view);
+
+ case ParallelQueuedUnitNameTypeLblStrict3EditPart.VISUAL_ID:
+ return new ParallelQueuedUnitNameTypeLblStrict3EditPart(view);
+
+ case ParallelQueuedUnit4EditPart.VISUAL_ID:
+ return new ParallelQueuedUnit4EditPart(view);
+
+ case ParallelQueuedUnitNameTypeLblStrict4EditPart.VISUAL_ID:
+ return new ParallelQueuedUnitNameTypeLblStrict4EditPart(view);
+
+ case SingleFeatureUnit2EditPart.VISUAL_ID:
+ return new SingleFeatureUnit2EditPart(view);
+
+ case SingleFeatureUnitNameType2EditPart.VISUAL_ID:
+ return new SingleFeatureUnitNameType2EditPart(view);
+
+ case MultiFeatureUnit2EditPart.VISUAL_ID:
+ return new MultiFeatureUnit2EditPart(view);
+
+ case MultiFeatureUnitNameType2EditPart.VISUAL_ID:
+ return new MultiFeatureUnitNameType2EditPart(view);
+
+ case SingleFilterUnit2EditPart.VISUAL_ID:
+ return new SingleFilterUnit2EditPart(view);
+
+ case SingleFilterUnitNameType2EditPart.VISUAL_ID:
+ return new SingleFilterUnitNameType2EditPart(view);
+
+ case MultiFilterUnit2EditPart.VISUAL_ID:
+ return new MultiFilterUnit2EditPart(view);
+
+ case MultiFilterUnitNameType2EditPart.VISUAL_ID:
+ return new MultiFilterUnitNameType2EditPart(view);
+
+ case SingleQueuedUnit3EditPart.VISUAL_ID:
+ return new SingleQueuedUnit3EditPart(view);
+
+ case SingleQueuedUnitNameTypeLblStrict3EditPart.VISUAL_ID:
+ return new SingleQueuedUnitNameTypeLblStrict3EditPart(view);
+
+ case ParallelQueuedUnit5EditPart.VISUAL_ID:
+ return new ParallelQueuedUnit5EditPart(view);
+
+ case ParallelQueuedUnitNameTypeLblStrict5EditPart.VISUAL_ID:
+ return new ParallelQueuedUnitNameTypeLblStrict5EditPart(view);
+
+ case SequentialUnit3EditPart.VISUAL_ID:
+ return new SequentialUnit3EditPart(view);
+
+ case SequentialUnitNameTypeLblStrict3EditPart.VISUAL_ID:
+ return new SequentialUnitNameTypeLblStrict3EditPart(view);
+
+ case ParallelQueuedUnit6EditPart.VISUAL_ID:
+ return new ParallelQueuedUnit6EditPart(view);
+
+ case ParallelQueuedUnitNameTypeLblStrict6EditPart.VISUAL_ID:
+ return new ParallelQueuedUnitNameTypeLblStrict6EditPart(view);
+
+ case ConditionalUnit3EditPart.VISUAL_ID:
+ return new ConditionalUnit3EditPart(view);
+
+ case ConditionalUnitNameType3EditPart.VISUAL_ID:
+ return new ConditionalUnitNameType3EditPart(view);
+
+ case CartesianQueuedUnit7EditPart.VISUAL_ID:
+ return new CartesianQueuedUnit7EditPart(view);
+
+ case CartesianQueuedUnitNameTypeLblStrict7EditPart.VISUAL_ID:
+ return new CartesianQueuedUnitNameTypeLblStrict7EditPart(view);
+
+ case ParallelQueuedUnit7EditPart.VISUAL_ID:
+ return new ParallelQueuedUnit7EditPart(view);
+
+ case ParallelQueuedUnitNameTypeLblStrict7EditPart.VISUAL_ID:
+ return new ParallelQueuedUnitNameTypeLblStrict7EditPart(view);
+
+ case AtomicUnit3EditPart.VISUAL_ID:
+ return new AtomicUnit3EditPart(view);
+
+ case AtomicUnitLabelType3EditPart.VISUAL_ID:
+ return new AtomicUnitLabelType3EditPart(view);
+
+ case SingleFeatureUnit3EditPart.VISUAL_ID:
+ return new SingleFeatureUnit3EditPart(view);
+
+ case SingleFeatureUnitNameType3EditPart.VISUAL_ID:
+ return new SingleFeatureUnitNameType3EditPart(view);
+
+ case MultiFeatureUnit3EditPart.VISUAL_ID:
+ return new MultiFeatureUnit3EditPart(view);
+
+ case MultiFeatureUnitNameType3EditPart.VISUAL_ID:
+ return new MultiFeatureUnitNameType3EditPart(view);
+
+ case SingleFilterUnit3EditPart.VISUAL_ID:
+ return new SingleFilterUnit3EditPart(view);
+
+ case SingleFilterUnitNameType3EditPart.VISUAL_ID:
+ return new SingleFilterUnitNameType3EditPart(view);
+
+ case MultiFilterUnit3EditPart.VISUAL_ID:
+ return new MultiFilterUnit3EditPart(view);
+
+ case MultiFilterUnitNameType3EditPart.VISUAL_ID:
+ return new MultiFilterUnitNameType3EditPart(view);
+
+ case SingleQueuedUnit4EditPart.VISUAL_ID:
+ return new SingleQueuedUnit4EditPart(view);
+
+ case SingleQueuedUnitNameTypeLblStrict4EditPart.VISUAL_ID:
+ return new SingleQueuedUnitNameTypeLblStrict4EditPart(view);
+
+ case SingleFeatureUnit4EditPart.VISUAL_ID:
+ return new SingleFeatureUnit4EditPart(view);
+
+ case SingleFeatureUnitNameType4EditPart.VISUAL_ID:
+ return new SingleFeatureUnitNameType4EditPart(view);
+
+ case MultiFeatureUnit4EditPart.VISUAL_ID:
+ return new MultiFeatureUnit4EditPart(view);
+
+ case MultiFeatureUnitNameType4EditPart.VISUAL_ID:
+ return new MultiFeatureUnitNameType4EditPart(view);
+
+ case SingleFilterUnit4EditPart.VISUAL_ID:
+ return new SingleFilterUnit4EditPart(view);
+
+ case SingleFilterUnitNameType4EditPart.VISUAL_ID:
+ return new SingleFilterUnitNameType4EditPart(view);
+
+ case MultiFilterUnit4EditPart.VISUAL_ID:
+ return new MultiFilterUnit4EditPart(view);
+
+ case MultiFilterUnitNameType4EditPart.VISUAL_ID:
+ return new MultiFilterUnitNameType4EditPart(view);
+
+ case SingleQueuedUnit5EditPart.VISUAL_ID:
+ return new SingleQueuedUnit5EditPart(view);
+
+ case SingleQueuedUnitNameTypeLblStrict5EditPart.VISUAL_ID:
+ return new SingleQueuedUnitNameTypeLblStrict5EditPart(view);
+
+ case SequentialUnit4EditPart.VISUAL_ID:
+ return new SequentialUnit4EditPart(view);
+
+ case SequentialUnitNameTypeLblStrict4EditPart.VISUAL_ID:
+ return new SequentialUnitNameTypeLblStrict4EditPart(view);
+
+ case SingleFeatureUnit5EditPart.VISUAL_ID:
+ return new SingleFeatureUnit5EditPart(view);
+
+ case SingleFeatureUnitNameType5EditPart.VISUAL_ID:
+ return new SingleFeatureUnitNameType5EditPart(view);
+
+ case MultiFeatureUnit5EditPart.VISUAL_ID:
+ return new MultiFeatureUnit5EditPart(view);
+
+ case MultiFeatureUnitNameType5EditPart.VISUAL_ID:
+ return new MultiFeatureUnitNameType5EditPart(view);
+
+ case SingleFilterUnit5EditPart.VISUAL_ID:
+ return new SingleFilterUnit5EditPart(view);
+
+ case SingleFilterUnitNameType5EditPart.VISUAL_ID:
+ return new SingleFilterUnitNameType5EditPart(view);
+
+ case MultiFilterUnit5EditPart.VISUAL_ID:
+ return new MultiFilterUnit5EditPart(view);
+
+ case MultiFilterUnitNameType5EditPart.VISUAL_ID:
+ return new MultiFilterUnitNameType5EditPart(view);
+
+ case SingleQueuedUnit6EditPart.VISUAL_ID:
+ return new SingleQueuedUnit6EditPart(view);
+
+ case SingleQueuedUnitNameTypeLblStrict6EditPart.VISUAL_ID:
+ return new SingleQueuedUnitNameTypeLblStrict6EditPart(view);
+
+ case ConditionalUnit4EditPart.VISUAL_ID:
+ return new ConditionalUnit4EditPart(view);
+
+ case ConditionalUnitNameType4EditPart.VISUAL_ID:
+ return new ConditionalUnitNameType4EditPart(view);
+
+ case SingleQueuedUnit7EditPart.VISUAL_ID:
+ return new SingleQueuedUnit7EditPart(view);
+
+ case SingleQueuedUnitNameTypeLblStrict7EditPart.VISUAL_ID:
+ return new SingleQueuedUnitNameTypeLblStrict7EditPart(view);
+
+ case AtomicUnit4EditPart.VISUAL_ID:
+ return new AtomicUnit4EditPart(view);
+
+ case AtomicUnitLabelType4EditPart.VISUAL_ID:
+ return new AtomicUnitLabelType4EditPart(view);
+
+ case SequentialUnit5EditPart.VISUAL_ID:
+ return new SequentialUnit5EditPart(view);
+
+ case SequentialUnitNameTypeLblStrict5EditPart.VISUAL_ID:
+ return new SequentialUnitNameTypeLblStrict5EditPart(view);
+
+ case SequentialUnit6EditPart.VISUAL_ID:
+ return new SequentialUnit6EditPart(view);
+
+ case SequentialUnitNameTypeLblStrict6EditPart.VISUAL_ID:
+ return new SequentialUnitNameTypeLblStrict6EditPart(view);
+
+ case ConditionalUnit5EditPart.VISUAL_ID:
+ return new ConditionalUnit5EditPart(view);
+
+ case ConditionalUnitNameType5EditPart.VISUAL_ID:
+ return new ConditionalUnitNameType5EditPart(view);
+
+ case ConditionalUnit6EditPart.VISUAL_ID:
+ return new ConditionalUnit6EditPart(view);
+
+ case ConditionalUnitNameType6EditPart.VISUAL_ID:
+ return new ConditionalUnitNameType6EditPart(view);
+
+ case SequentialUnit7EditPart.VISUAL_ID:
+ return new SequentialUnit7EditPart(view);
+
+ case SequentialUnitNameTypeLblStrict7EditPart.VISUAL_ID:
+ return new SequentialUnitNameTypeLblStrict7EditPart(view);
+
+ case AtomicUnit5EditPart.VISUAL_ID:
+ return new AtomicUnit5EditPart(view);
+
+ case AtomicUnitLabelType5EditPart.VISUAL_ID:
+ return new AtomicUnitLabelType5EditPart(view);
+
+ case ConditionalUnit7EditPart.VISUAL_ID:
+ return new ConditionalUnit7EditPart(view);
+
+ case ConditionalUnitNameType7EditPart.VISUAL_ID:
+ return new ConditionalUnitNameType7EditPart(view);
+
+ case ConditionCheckEditPart.VISUAL_ID:
+ return new ConditionCheckEditPart(view);
+
+ case ConditionCheckNameTypeSpecEditPart.VISUAL_ID:
+ return new ConditionCheckNameTypeSpecEditPart(view);
+
+ case AtomicUnit6EditPart.VISUAL_ID:
+ return new AtomicUnit6EditPart(view);
+
+ case AtomicUnitLabelType6EditPart.VISUAL_ID:
+ return new AtomicUnitLabelType6EditPart(view);
+
+ case AtomicUnit7EditPart.VISUAL_ID:
+ return new AtomicUnit7EditPart(view);
+
+ case AtomicUnitLabelType7EditPart.VISUAL_ID:
+ return new AtomicUnitLabelType7EditPart(view);
+
+ case CartesianQueuedUnitCartesianQueuedUnitHelperUnitsCompartmentEditPart.VISUAL_ID:
+ return new CartesianQueuedUnitCartesianQueuedUnitHelperUnitsCompartmentEditPart(
+ view);
+
+ case CartesianQueuedUnitCartesianQueuedUnitRefactoringUnitCompartmentEditPart.VISUAL_ID:
+ return new CartesianQueuedUnitCartesianQueuedUnitRefactoringUnitCompartmentEditPart(
+ view);
+
+ case CartesianQueuedUnitCartesianQueuedUnitHelperUnitsCompartment2EditPart.VISUAL_ID:
+ return new CartesianQueuedUnitCartesianQueuedUnitHelperUnitsCompartment2EditPart(
+ view);
+
+ case CartesianQueuedUnitCartesianQueuedUnitRefactoringUnitCompartment2EditPart.VISUAL_ID:
+ return new CartesianQueuedUnitCartesianQueuedUnitRefactoringUnitCompartment2EditPart(
+ view);
+
+ case ParallelQueuedUnitParallelQueuedUnitHelperUnitsCompartmentEditPart.VISUAL_ID:
+ return new ParallelQueuedUnitParallelQueuedUnitHelperUnitsCompartmentEditPart(
+ view);
+
+ case ParallelQueuedUnitParallelQueuedUnitRefactoringUnitsCompartmentEditPart.VISUAL_ID:
+ return new ParallelQueuedUnitParallelQueuedUnitRefactoringUnitsCompartmentEditPart(
+ view);
+
+ case CartesianQueuedUnitCartesianQueuedUnitHelperUnitsCompartment3EditPart.VISUAL_ID:
+ return new CartesianQueuedUnitCartesianQueuedUnitHelperUnitsCompartment3EditPart(
+ view);
+
+ case CartesianQueuedUnitCartesianQueuedUnitRefactoringUnitCompartment3EditPart.VISUAL_ID:
+ return new CartesianQueuedUnitCartesianQueuedUnitRefactoringUnitCompartment3EditPart(
+ view);
+
+ case SingleQueuedUnitSingleQueuedUnitHelperUnitsCompartmentEditPart.VISUAL_ID:
+ return new SingleQueuedUnitSingleQueuedUnitHelperUnitsCompartmentEditPart(
+ view);
+
+ case SingleQueuedUnitSingleQueuedUnitRefactoringUnitCompartmentEditPart.VISUAL_ID:
+ return new SingleQueuedUnitSingleQueuedUnitRefactoringUnitCompartmentEditPart(
+ view);
+
+ case CartesianQueuedUnitCartesianQueuedUnitHelperUnitsCompartment4EditPart.VISUAL_ID:
+ return new CartesianQueuedUnitCartesianQueuedUnitHelperUnitsCompartment4EditPart(
+ view);
+
+ case CartesianQueuedUnitCartesianQueuedUnitRefactoringUnitCompartment4EditPart.VISUAL_ID:
+ return new CartesianQueuedUnitCartesianQueuedUnitRefactoringUnitCompartment4EditPart(
+ view);
+
+ case SequentialUnitSequentialUnitHelperUnitsCompartmentEditPart.VISUAL_ID:
+ return new SequentialUnitSequentialUnitHelperUnitsCompartmentEditPart(
+ view);
+
+ case SequentialUnitSequentialUnitRefactoringUnitsCompartmentEditPart.VISUAL_ID:
+ return new SequentialUnitSequentialUnitRefactoringUnitsCompartmentEditPart(
+ view);
+
+ case CartesianQueuedUnitCartesianQueuedUnitHelperUnitsCompartment5EditPart.VISUAL_ID:
+ return new CartesianQueuedUnitCartesianQueuedUnitHelperUnitsCompartment5EditPart(
+ view);
+
+ case CartesianQueuedUnitCartesianQueuedUnitRefactoringUnitCompartment5EditPart.VISUAL_ID:
+ return new CartesianQueuedUnitCartesianQueuedUnitRefactoringUnitCompartment5EditPart(
+ view);
+
+ case ConditionalUnitConditionalUnitIfCompartmentEditPart.VISUAL_ID:
+ return new ConditionalUnitConditionalUnitIfCompartmentEditPart(
+ view);
+
+ case ConditionalUnitConditionalUnitHelperUnitsCompartmentEditPart.VISUAL_ID:
+ return new ConditionalUnitConditionalUnitHelperUnitsCompartmentEditPart(
+ view);
+
+ case ConditionalUnitConditionalUnitThenCompartmentEditPart.VISUAL_ID:
+ return new ConditionalUnitConditionalUnitThenCompartmentEditPart(
+ view);
+
+ case ConditionalUnitConditionalUnitElseCompartmentEditPart.VISUAL_ID:
+ return new ConditionalUnitConditionalUnitElseCompartmentEditPart(
+ view);
+
+ case CartesianQueuedUnitCartesianQueuedUnitHelperUnitsCompartment6EditPart.VISUAL_ID:
+ return new CartesianQueuedUnitCartesianQueuedUnitHelperUnitsCompartment6EditPart(
+ view);
+
+ case CartesianQueuedUnitCartesianQueuedUnitRefactoringUnitCompartment6EditPart.VISUAL_ID:
+ return new CartesianQueuedUnitCartesianQueuedUnitRefactoringUnitCompartment6EditPart(
+ view);
+
+ case ParallelQueuedUnitParallelQueuedUnitHelperUnitsCompartment2EditPart.VISUAL_ID:
+ return new ParallelQueuedUnitParallelQueuedUnitHelperUnitsCompartment2EditPart(
+ view);
+
+ case ParallelQueuedUnitParallelQueuedUnitRefactoringUnitsCompartment2EditPart.VISUAL_ID:
+ return new ParallelQueuedUnitParallelQueuedUnitRefactoringUnitsCompartment2EditPart(
+ view);
+
+ case ParallelQueuedUnitParallelQueuedUnitHelperUnitsCompartment3EditPart.VISUAL_ID:
+ return new ParallelQueuedUnitParallelQueuedUnitHelperUnitsCompartment3EditPart(
+ view);
+
+ case ParallelQueuedUnitParallelQueuedUnitRefactoringUnitsCompartment3EditPart.VISUAL_ID:
+ return new ParallelQueuedUnitParallelQueuedUnitRefactoringUnitsCompartment3EditPart(
+ view);
+
+ case SingleQueuedUnitSingleQueuedUnitHelperUnitsCompartment2EditPart.VISUAL_ID:
+ return new SingleQueuedUnitSingleQueuedUnitHelperUnitsCompartment2EditPart(
+ view);
+
+ case SingleQueuedUnitSingleQueuedUnitRefactoringUnitCompartment2EditPart.VISUAL_ID:
+ return new SingleQueuedUnitSingleQueuedUnitRefactoringUnitCompartment2EditPart(
+ view);
+
+ case ParallelQueuedUnitParallelQueuedUnitHelperUnitsCompartment4EditPart.VISUAL_ID:
+ return new ParallelQueuedUnitParallelQueuedUnitHelperUnitsCompartment4EditPart(
+ view);
+
+ case ParallelQueuedUnitParallelQueuedUnitRefactoringUnitsCompartment4EditPart.VISUAL_ID:
+ return new ParallelQueuedUnitParallelQueuedUnitRefactoringUnitsCompartment4EditPart(
+ view);
+
+ case SequentialUnitSequentialUnitHelperUnitsCompartment2EditPart.VISUAL_ID:
+ return new SequentialUnitSequentialUnitHelperUnitsCompartment2EditPart(
+ view);
+
+ case SequentialUnitSequentialUnitRefactoringUnitsCompartment2EditPart.VISUAL_ID:
+ return new SequentialUnitSequentialUnitRefactoringUnitsCompartment2EditPart(
+ view);
+
+ case ParallelQueuedUnitParallelQueuedUnitHelperUnitsCompartment5EditPart.VISUAL_ID:
+ return new ParallelQueuedUnitParallelQueuedUnitHelperUnitsCompartment5EditPart(
+ view);
+
+ case ParallelQueuedUnitParallelQueuedUnitRefactoringUnitsCompartment5EditPart.VISUAL_ID:
+ return new ParallelQueuedUnitParallelQueuedUnitRefactoringUnitsCompartment5EditPart(
+ view);
+
+ case ConditionalUnitConditionalUnitIfCompartment2EditPart.VISUAL_ID:
+ return new ConditionalUnitConditionalUnitIfCompartment2EditPart(
+ view);
+
+ case ConditionalUnitConditionalUnitHelperUnitsCompartment2EditPart.VISUAL_ID:
+ return new ConditionalUnitConditionalUnitHelperUnitsCompartment2EditPart(
+ view);
+
+ case ConditionalUnitConditionalUnitThenCompartment2EditPart.VISUAL_ID:
+ return new ConditionalUnitConditionalUnitThenCompartment2EditPart(
+ view);
+
+ case ConditionalUnitConditionalUnitElseCompartment2EditPart.VISUAL_ID:
+ return new ConditionalUnitConditionalUnitElseCompartment2EditPart(
+ view);
+
+ case CartesianQueuedUnitCartesianQueuedUnitHelperUnitsCompartment7EditPart.VISUAL_ID:
+ return new CartesianQueuedUnitCartesianQueuedUnitHelperUnitsCompartment7EditPart(
+ view);
+
+ case CartesianQueuedUnitCartesianQueuedUnitRefactoringUnitCompartment7EditPart.VISUAL_ID:
+ return new CartesianQueuedUnitCartesianQueuedUnitRefactoringUnitCompartment7EditPart(
+ view);
+
+ case ParallelQueuedUnitParallelQueuedUnitHelperUnitsCompartment6EditPart.VISUAL_ID:
+ return new ParallelQueuedUnitParallelQueuedUnitHelperUnitsCompartment6EditPart(
+ view);
+
+ case ParallelQueuedUnitParallelQueuedUnitRefactoringUnitsCompartment6EditPart.VISUAL_ID:
+ return new ParallelQueuedUnitParallelQueuedUnitRefactoringUnitsCompartment6EditPart(
+ view);
+
+ case SingleQueuedUnitSingleQueuedUnitHelperUnitsCompartment3EditPart.VISUAL_ID:
+ return new SingleQueuedUnitSingleQueuedUnitHelperUnitsCompartment3EditPart(
+ view);
+
+ case SingleQueuedUnitSingleQueuedUnitRefactoringUnitCompartment3EditPart.VISUAL_ID:
+ return new SingleQueuedUnitSingleQueuedUnitRefactoringUnitCompartment3EditPart(
+ view);
+
+ case SingleQueuedUnitSingleQueuedUnitHelperUnitsCompartment4EditPart.VISUAL_ID:
+ return new SingleQueuedUnitSingleQueuedUnitHelperUnitsCompartment4EditPart(
+ view);
+
+ case SingleQueuedUnitSingleQueuedUnitRefactoringUnitCompartment4EditPart.VISUAL_ID:
+ return new SingleQueuedUnitSingleQueuedUnitRefactoringUnitCompartment4EditPart(
+ view);
+
+ case SequentialUnitSequentialUnitHelperUnitsCompartment3EditPart.VISUAL_ID:
+ return new SequentialUnitSequentialUnitHelperUnitsCompartment3EditPart(
+ view);
+
+ case SequentialUnitSequentialUnitRefactoringUnitsCompartment3EditPart.VISUAL_ID:
+ return new SequentialUnitSequentialUnitRefactoringUnitsCompartment3EditPart(
+ view);
+
+ case SingleQueuedUnitSingleQueuedUnitHelperUnitsCompartment5EditPart.VISUAL_ID:
+ return new SingleQueuedUnitSingleQueuedUnitHelperUnitsCompartment5EditPart(
+ view);
+
+ case SingleQueuedUnitSingleQueuedUnitRefactoringUnitCompartment5EditPart.VISUAL_ID:
+ return new SingleQueuedUnitSingleQueuedUnitRefactoringUnitCompartment5EditPart(
+ view);
+
+ case ConditionalUnitConditionalUnitIfCompartment3EditPart.VISUAL_ID:
+ return new ConditionalUnitConditionalUnitIfCompartment3EditPart(
+ view);
+
+ case ConditionalUnitConditionalUnitHelperUnitsCompartment3EditPart.VISUAL_ID:
+ return new ConditionalUnitConditionalUnitHelperUnitsCompartment3EditPart(
+ view);
+
+ case ConditionalUnitConditionalUnitThenCompartment3EditPart.VISUAL_ID:
+ return new ConditionalUnitConditionalUnitThenCompartment3EditPart(
+ view);
+
+ case ConditionalUnitConditionalUnitElseCompartment3EditPart.VISUAL_ID:
+ return new ConditionalUnitConditionalUnitElseCompartment3EditPart(
+ view);
+
+ case SingleQueuedUnitSingleQueuedUnitHelperUnitsCompartment6EditPart.VISUAL_ID:
+ return new SingleQueuedUnitSingleQueuedUnitHelperUnitsCompartment6EditPart(
+ view);
+
+ case SingleQueuedUnitSingleQueuedUnitRefactoringUnitCompartment6EditPart.VISUAL_ID:
+ return new SingleQueuedUnitSingleQueuedUnitRefactoringUnitCompartment6EditPart(
+ view);
+
+ case SequentialUnitSequentialUnitHelperUnitsCompartment4EditPart.VISUAL_ID:
+ return new SequentialUnitSequentialUnitHelperUnitsCompartment4EditPart(
+ view);
+
+ case SequentialUnitSequentialUnitRefactoringUnitsCompartment4EditPart.VISUAL_ID:
+ return new SequentialUnitSequentialUnitRefactoringUnitsCompartment4EditPart(
+ view);
+
+ case SequentialUnitSequentialUnitHelperUnitsCompartment5EditPart.VISUAL_ID:
+ return new SequentialUnitSequentialUnitHelperUnitsCompartment5EditPart(
+ view);
+
+ case SequentialUnitSequentialUnitRefactoringUnitsCompartment5EditPart.VISUAL_ID:
+ return new SequentialUnitSequentialUnitRefactoringUnitsCompartment5EditPart(
+ view);
+
+ case ConditionalUnitConditionalUnitIfCompartment4EditPart.VISUAL_ID:
+ return new ConditionalUnitConditionalUnitIfCompartment4EditPart(
+ view);
+
+ case ConditionalUnitConditionalUnitHelperUnitsCompartment4EditPart.VISUAL_ID:
+ return new ConditionalUnitConditionalUnitHelperUnitsCompartment4EditPart(
+ view);
+
+ case ConditionalUnitConditionalUnitThenCompartment4EditPart.VISUAL_ID:
+ return new ConditionalUnitConditionalUnitThenCompartment4EditPart(
+ view);
+
+ case ConditionalUnitConditionalUnitElseCompartment4EditPart.VISUAL_ID:
+ return new ConditionalUnitConditionalUnitElseCompartment4EditPart(
+ view);
+
+ case ConditionalUnitConditionalUnitIfCompartment5EditPart.VISUAL_ID:
+ return new ConditionalUnitConditionalUnitIfCompartment5EditPart(
+ view);
+
+ case ConditionalUnitConditionalUnitHelperUnitsCompartment5EditPart.VISUAL_ID:
+ return new ConditionalUnitConditionalUnitHelperUnitsCompartment5EditPart(
+ view);
+
+ case ConditionalUnitConditionalUnitThenCompartment5EditPart.VISUAL_ID:
+ return new ConditionalUnitConditionalUnitThenCompartment5EditPart(
+ view);
+
+ case ConditionalUnitConditionalUnitElseCompartment5EditPart.VISUAL_ID:
+ return new ConditionalUnitConditionalUnitElseCompartment5EditPart(
+ view);
+
+ case SequentialUnitSequentialUnitHelperUnitsCompartment6EditPart.VISUAL_ID:
+ return new SequentialUnitSequentialUnitHelperUnitsCompartment6EditPart(
+ view);
+
+ case SequentialUnitSequentialUnitRefactoringUnitsCompartment6EditPart.VISUAL_ID:
+ return new SequentialUnitSequentialUnitRefactoringUnitsCompartment6EditPart(
+ view);
+
+ case ConditionalUnitConditionalUnitIfCompartment6EditPart.VISUAL_ID:
+ return new ConditionalUnitConditionalUnitIfCompartment6EditPart(
+ view);
+
+ case ConditionalUnitConditionalUnitHelperUnitsCompartment6EditPart.VISUAL_ID:
+ return new ConditionalUnitConditionalUnitHelperUnitsCompartment6EditPart(
+ view);
+
+ case ConditionalUnitConditionalUnitThenCompartment6EditPart.VISUAL_ID:
+ return new ConditionalUnitConditionalUnitThenCompartment6EditPart(
+ view);
+
+ case ConditionalUnitConditionalUnitElseCompartment6EditPart.VISUAL_ID:
+ return new ConditionalUnitConditionalUnitElseCompartment6EditPart(
+ view);
+
+ case ParallelQueuedUnitParallelQueuedUnitHelperUnitsCompartment7EditPart.VISUAL_ID:
+ return new ParallelQueuedUnitParallelQueuedUnitHelperUnitsCompartment7EditPart(
+ view);
+
+ case ParallelQueuedUnitParallelQueuedUnitRefactoringUnitsCompartment7EditPart.VISUAL_ID:
+ return new ParallelQueuedUnitParallelQueuedUnitRefactoringUnitsCompartment7EditPart(
+ view);
+
+ case SingleQueuedUnitSingleQueuedUnitHelperUnitsCompartment7EditPart.VISUAL_ID:
+ return new SingleQueuedUnitSingleQueuedUnitHelperUnitsCompartment7EditPart(
+ view);
+
+ case SingleQueuedUnitSingleQueuedUnitRefactoringUnitCompartment7EditPart.VISUAL_ID:
+ return new SingleQueuedUnitSingleQueuedUnitRefactoringUnitCompartment7EditPart(
+ view);
+
+ case SequentialUnitSequentialUnitHelperUnitsCompartment7EditPart.VISUAL_ID:
+ return new SequentialUnitSequentialUnitHelperUnitsCompartment7EditPart(
+ view);
+
+ case SequentialUnitSequentialUnitRefactoringUnitsCompartment7EditPart.VISUAL_ID:
+ return new SequentialUnitSequentialUnitRefactoringUnitsCompartment7EditPart(
+ view);
+
+ case ConditionalUnitConditionalUnitIfCompartment7EditPart.VISUAL_ID:
+ return new ConditionalUnitConditionalUnitIfCompartment7EditPart(
+ view);
+
+ case ConditionalUnitConditionalUnitHelperUnitsCompartment7EditPart.VISUAL_ID:
+ return new ConditionalUnitConditionalUnitHelperUnitsCompartment7EditPart(
+ view);
+
+ case ConditionalUnitConditionalUnitThenCompartment7EditPart.VISUAL_ID:
+ return new ConditionalUnitConditionalUnitThenCompartment7EditPart(
+ view);
+
+ case ConditionalUnitConditionalUnitElseCompartment7EditPart.VISUAL_ID:
+ return new ConditionalUnitConditionalUnitElseCompartment7EditPart(
+ view);
+
+ case SinglePortMappingEditPart.VISUAL_ID:
+ return new SinglePortMappingEditPart(view);
+
+ case MultiPortMappingEditPart.VISUAL_ID:
+ return new MultiPortMappingEditPart(view);
+
+ case MultiSinglePortMappingEditPart.VISUAL_ID:
+ return new MultiSinglePortMappingEditPart(view);
+
+ }
+ }
+ return createUnrecognizedEditPart(context, model);
+ }
+
+ /**
+ * @generated
+ */
+ private EditPart createUnrecognizedEditPart(EditPart context, Object model) {
+ // Handle creation of unrecognized child node EditParts here
+ return null;
+ }
+
+ /**
+ * @generated
+ */
+ public static CellEditorLocator getTextCellEditorLocator(
+ ITextAwareEditPart source) {
+ if (source.getFigure() instanceof WrappingLabel)
+ return new TextCellEditorLocator((WrappingLabel) source.getFigure());
+ else {
+ return new LabelCellEditorLocator((Label) source.getFigure());
+ }
+ }
+
+ /**
+ * @generated
+ */
+ static private class TextCellEditorLocator implements CellEditorLocator {
+
+ /**
+ * @generated
+ */
+ private WrappingLabel wrapLabel;
+
+ /**
+ * @generated
+ */
+ public TextCellEditorLocator(WrappingLabel wrapLabel) {
+ this.wrapLabel = wrapLabel;
+ }
+
+ /**
+ * @generated
+ */
+ public WrappingLabel getWrapLabel() {
+ return wrapLabel;
+ }
+
+ /**
+ * @generated
+ */
+ public void relocate(CellEditor celleditor) {
+ Text text = (Text) celleditor.getControl();
+ Rectangle rect = getWrapLabel().getTextBounds().getCopy();
+ getWrapLabel().translateToAbsolute(rect);
+ if (!text.getFont().isDisposed()) {
+ if (getWrapLabel().isTextWrapOn()
+ && getWrapLabel().getText().length() > 0) {
+ rect.setSize(new Dimension(text.computeSize(rect.width,
+ SWT.DEFAULT)));
+ } else {
+ int avr = FigureUtilities.getFontMetrics(text.getFont())
+ .getAverageCharWidth();
+ rect.setSize(new Dimension(text.computeSize(SWT.DEFAULT,
+ SWT.DEFAULT)).expand(avr * 2, 0));
+ }
+ }
+ if (!rect.equals(new Rectangle(text.getBounds()))) {
+ text.setBounds(rect.x, rect.y, rect.width, rect.height);
+ }
+ }
+ }
+
+ /**
+ * @generated
+ */
+ private static class LabelCellEditorLocator implements CellEditorLocator {
+
+ /**
+ * @generated
+ */
+ private Label label;
+
+ /**
+ * @generated
+ */
+ public LabelCellEditorLocator(Label label) {
+ this.label = label;
+ }
+
+ /**
+ * @generated
+ */
+ public Label getLabel() {
+ return label;
+ }
+
+ /**
+ * @generated
+ */
+ public void relocate(CellEditor celleditor) {
+ Text text = (Text) celleditor.getControl();
+ Rectangle rect = getLabel().getTextBounds().getCopy();
+ getLabel().translateToAbsolute(rect);
+ if (!text.getFont().isDisposed()) {
+ int avr = FigureUtilities.getFontMetrics(text.getFont())
+ .getAverageCharWidth();
+ rect.setSize(new Dimension(text.computeSize(SWT.DEFAULT,
+ SWT.DEFAULT)).expand(avr * 2, 0));
+ }
+ if (!rect.equals(new Rectangle(text.getBounds()))) {
+ text.setBounds(rect.x, rect.y, rect.width, rect.height);
+ }
+ }
+ }
+}
diff --git a/org.eclipse.emf.refactor.comrel.diagram/src/comrel/diagram/edit/parts/ConditionCheckEditPart.java b/org.eclipse.emf.refactor.comrel.diagram/src/comrel/diagram/edit/parts/ConditionCheckEditPart.java
new file mode 100644
index 0000000..a84eee9
--- /dev/null
+++ b/org.eclipse.emf.refactor.comrel.diagram/src/comrel/diagram/edit/parts/ConditionCheckEditPart.java
@@ -0,0 +1,298 @@
+/*
+ *
+ */
+package comrel.diagram.edit.parts;
+
+import org.eclipse.draw2d.IFigure;
+import org.eclipse.draw2d.MarginBorder;
+import org.eclipse.draw2d.RoundedRectangle;
+import org.eclipse.draw2d.Shape;
+import org.eclipse.draw2d.StackLayout;
+import org.eclipse.draw2d.geometry.Dimension;
+import org.eclipse.gef.EditPart;
+import org.eclipse.gef.EditPolicy;
+import org.eclipse.gef.Request;
+import org.eclipse.gef.commands.Command;
+import org.eclipse.gef.editpolicies.LayoutEditPolicy;
+import org.eclipse.gef.editpolicies.NonResizableEditPolicy;
+import org.eclipse.gef.requests.CreateRequest;
+import org.eclipse.gmf.runtime.diagram.ui.editparts.IGraphicalEditPart;
+import org.eclipse.gmf.runtime.diagram.ui.editparts.ShapeNodeEditPart;
+import org.eclipse.gmf.runtime.diagram.ui.editpolicies.EditPolicyRoles;
+import org.eclipse.gmf.runtime.draw2d.ui.figures.ConstrainedToolbarLayout;
+import org.eclipse.gmf.runtime.draw2d.ui.figures.WrappingLabel;
+import org.eclipse.gmf.runtime.gef.ui.figures.DefaultSizeNodeFigure;
+import org.eclipse.gmf.runtime.gef.ui.figures.NodeFigure;
+import org.eclipse.gmf.runtime.notation.View;
+import org.eclipse.swt.graphics.Color;
+
+import comrel.diagram.edit.policies.ConditionCheckItemSemanticEditPolicy;
+import comrel.diagram.part.ComrelVisualIDRegistry;
+
+/**
+ * @generated
+ */
+public class ConditionCheckEditPart extends ShapeNodeEditPart {
+
+ /**
+ * @generated
+ */
+ public static final int VISUAL_ID = 3076;
+
+ /**
+ * @generated
+ */
+ protected IFigure contentPane;
+
+ /**
+ * @generated
+ */
+ protected IFigure primaryShape;
+
+ /**
+ * @generated
+ */
+ public ConditionCheckEditPart(View view) {
+ super(view);
+ }
+
+ /**
+ * @generated
+ */
+ protected void createDefaultEditPolicies() {
+ super.createDefaultEditPolicies();
+ installEditPolicy(EditPolicyRoles.SEMANTIC_ROLE,
+ new ConditionCheckItemSemanticEditPolicy());
+ installEditPolicy(EditPolicy.LAYOUT_ROLE, createLayoutEditPolicy());
+ // XXX need an SCR to runtime to have another abstract superclass that would let children add reasonable editpolicies
+ // removeEditPolicy(org.eclipse.gmf.runtime.diagram.ui.editpolicies.EditPolicyRoles.CONNECTION_HANDLES_ROLE);
+ }
+
+ /**
+ * @generated
+ */
+ protected LayoutEditPolicy createLayoutEditPolicy() {
+ org.eclipse.gmf.runtime.diagram.ui.editpolicies.LayoutEditPolicy lep = new org.eclipse.gmf.runtime.diagram.ui.editpolicies.LayoutEditPolicy() {
+
+ protected EditPolicy createChildEditPolicy(EditPart child) {
+ EditPolicy result = child
+ .getEditPolicy(EditPolicy.PRIMARY_DRAG_ROLE);
+ if (result == null) {
+ result = new NonResizableEditPolicy();
+ }
+ return result;
+ }
+
+ protected Command getMoveChildrenCommand(Request request) {
+ return null;
+ }
+
+ protected Command getCreateCommand(CreateRequest request) {
+ return null;
+ }
+ };
+ return lep;
+ }
+
+ /**
+ * @generated
+ */
+ protected IFigure createNodeShape() {
+ return primaryShape = new ConditionCheckFigure();
+ }
+
+ /**
+ * @generated
+ */
+ public ConditionCheckFigure getPrimaryShape() {
+ return (ConditionCheckFigure) primaryShape;
+ }
+
+ /**
+ * @generated
+ */
+ protected boolean addFixedChild(EditPart childEditPart) {
+ if (childEditPart instanceof ConditionCheckNameTypeSpecEditPart) {
+ ((ConditionCheckNameTypeSpecEditPart) childEditPart)
+ .setLabel(getPrimaryShape()
+ .getFigureConditionCheckLabelFigure());
+ return true;
+ }
+ return false;
+ }
+
+ /**
+ * @generated
+ */
+ protected boolean removeFixedChild(EditPart childEditPart) {
+ if (childEditPart instanceof ConditionCheckNameTypeSpecEditPart) {
+ return true;
+ }
+ return false;
+ }
+
+ /**
+ * @generated
+ */
+ protected void addChildVisual(EditPart childEditPart, int index) {
+ if (addFixedChild(childEditPart)) {
+ return;
+ }
+ super.addChildVisual(childEditPart, -1);
+ }
+
+ /**
+ * @generated
+ */
+ protected void removeChildVisual(EditPart childEditPart) {
+ if (removeFixedChild(childEditPart)) {
+ return;
+ }
+ super.removeChildVisual(childEditPart);
+ }
+
+ /**
+ * @generated
+ */
+ protected IFigure getContentPaneFor(IGraphicalEditPart editPart) {
+ return getContentPane();
+ }
+
+ /**
+ * @generated
+ */
+ protected NodeFigure createNodePlate() {
+ DefaultSizeNodeFigure result = new DefaultSizeNodeFigure(40, 40);
+ return result;
+ }
+
+ /**
+ * Creates figure for this edit part.
+ *
+ * Body of this method does not depend on settings in generation model
+ * so you may safely remove <i>generated</i> tag and modify it.
+ *
+ * @generated
+ */
+ protected NodeFigure createNodeFigure() {
+ NodeFigure figure = createNodePlate();
+ figure.setLayoutManager(new StackLayout());
+ IFigure shape = createNodeShape();
+ figure.add(shape);
+ contentPane = setupContentPane(shape);
+ return figure;
+ }
+
+ /**
+ * Default implementation treats passed figure as content pane.
+ * Respects layout one may have set for generated figure.
+ * @param nodeShape instance of generated figure class
+ * @generated
+ */
+ protected IFigure setupContentPane(IFigure nodeShape) {
+ if (nodeShape.getLayoutManager() == null) {
+ ConstrainedToolbarLayout layout = new ConstrainedToolbarLayout();
+ layout.setSpacing(5);
+ nodeShape.setLayoutManager(layout);
+ }
+ return nodeShape; // use nodeShape itself as contentPane
+ }
+
+ /**
+ * @generated
+ */
+ public IFigure getContentPane() {
+ if (contentPane != null) {
+ return contentPane;
+ }
+ return super.getContentPane();
+ }
+
+ /**
+ * @generated
+ */
+ protected void setForegroundColor(Color color) {
+ if (primaryShape != null) {
+ primaryShape.setForegroundColor(color);
+ }
+ }
+
+ /**
+ * @generated
+ */
+ protected void setBackgroundColor(Color color) {
+ if (primaryShape != null) {
+ primaryShape.setBackgroundColor(color);
+ }
+ }
+
+ /**
+ * @generated
+ */
+ protected void setLineWidth(int width) {
+ if (primaryShape instanceof Shape) {
+ ((Shape) primaryShape).setLineWidth(width);
+ }
+ }
+
+ /**
+ * @generated
+ */
+ protected void setLineType(int style) {
+ if (primaryShape instanceof Shape) {
+ ((Shape) primaryShape).setLineStyle(style);
+ }
+ }
+
+ /**
+ * @generated
+ */
+ public EditPart getPrimaryChildEditPart() {
+ return getChildBySemanticHint(ComrelVisualIDRegistry
+ .getType(ConditionCheckNameTypeSpecEditPart.VISUAL_ID));
+ }
+
+ /**
+ * @generated
+ */
+ public class ConditionCheckFigure extends RoundedRectangle {
+
+ /**
+ * @generated
+ */
+ private WrappingLabel fFigureConditionCheckLabelFigure;
+
+ /**
+ * @generated
+ */
+ public ConditionCheckFigure() {
+ this.setCornerDimensions(new Dimension(getMapMode().DPtoLP(8),
+ getMapMode().DPtoLP(8)));
+ this.setBorder(new MarginBorder(getMapMode().DPtoLP(5),
+ getMapMode().DPtoLP(5), getMapMode().DPtoLP(5),
+ getMapMode().DPtoLP(5)));
+ createContents();
+ }
+
+ /**
+ * @generated
+ */
+ private void createContents() {
+
+ fFigureConditionCheckLabelFigure = new WrappingLabel();
+ fFigureConditionCheckLabelFigure.setText("ConditionCheck");
+
+ this.add(fFigureConditionCheckLabelFigure);
+
+ }
+
+ /**
+ * @generated
+ */
+ public WrappingLabel getFigureConditionCheckLabelFigure() {
+ return fFigureConditionCheckLabelFigure;
+ }
+
+ }
+
+}
diff --git a/org.eclipse.emf.refactor.comrel.diagram/src/comrel/diagram/edit/parts/ConditionCheckNameTypeSpecEditPart.java b/org.eclipse.emf.refactor.comrel.diagram/src/comrel/diagram/edit/parts/ConditionCheckNameTypeSpecEditPart.java
new file mode 100644
index 0000000..361e2a2
--- /dev/null
+++ b/org.eclipse.emf.refactor.comrel.diagram/src/comrel/diagram/edit/parts/ConditionCheckNameTypeSpecEditPart.java
@@ -0,0 +1,576 @@
+/*
+ *
+ */
+package comrel.diagram.edit.parts;
+
+import java.util.Collections;
+import java.util.List;
+
+import org.eclipse.draw2d.IFigure;
+import org.eclipse.draw2d.Label;
+import org.eclipse.draw2d.geometry.Point;
+import org.eclipse.emf.common.notify.Notification;
+import org.eclipse.emf.ecore.EObject;
+import org.eclipse.emf.transaction.RunnableWithResult;
+import org.eclipse.gef.AccessibleEditPart;
+import org.eclipse.gef.EditPolicy;
+import org.eclipse.gef.Request;
+import org.eclipse.gef.requests.DirectEditRequest;
+import org.eclipse.gef.tools.DirectEditManager;
+import org.eclipse.gmf.runtime.common.ui.services.parser.IParser;
+import org.eclipse.gmf.runtime.common.ui.services.parser.IParserEditStatus;
+import org.eclipse.gmf.runtime.common.ui.services.parser.ParserEditStatus;
+import org.eclipse.gmf.runtime.common.ui.services.parser.ParserOptions;
+import org.eclipse.gmf.runtime.diagram.ui.editparts.CompartmentEditPart;
+import org.eclipse.gmf.runtime.diagram.ui.editparts.IGraphicalEditPart;
+import org.eclipse.gmf.runtime.diagram.ui.editparts.ITextAwareEditPart;
+import org.eclipse.gmf.runtime.diagram.ui.editpolicies.LabelDirectEditPolicy;
+import org.eclipse.gmf.runtime.diagram.ui.l10n.DiagramColorRegistry;
+import org.eclipse.gmf.runtime.diagram.ui.requests.RequestConstants;
+import org.eclipse.gmf.runtime.diagram.ui.tools.TextDirectEditManager;
+import org.eclipse.gmf.runtime.draw2d.ui.figures.WrappingLabel;
+import org.eclipse.gmf.runtime.emf.core.util.EObjectAdapter;
+import org.eclipse.gmf.runtime.emf.ui.services.parser.ISemanticParser;
+import org.eclipse.gmf.runtime.notation.FontStyle;
+import org.eclipse.gmf.runtime.notation.NotationPackage;
+import org.eclipse.gmf.runtime.notation.View;
+import org.eclipse.jface.text.contentassist.IContentAssistProcessor;
+import org.eclipse.jface.viewers.ICellEditorValidator;
+import org.eclipse.swt.SWT;
+import org.eclipse.swt.accessibility.AccessibleEvent;
+import org.eclipse.swt.graphics.Color;
+import org.eclipse.swt.graphics.FontData;
+import org.eclipse.swt.graphics.Image;
+
+import comrel.diagram.edit.policies.ComrelTextSelectionEditPolicy;
+import comrel.diagram.part.ComrelVisualIDRegistry;
+import comrel.diagram.providers.ComrelElementTypes;
+import comrel.diagram.providers.ComrelParserProvider;
+
+/**
+ * @generated
+ */
+public class ConditionCheckNameTypeSpecEditPart extends CompartmentEditPart
+ implements ITextAwareEditPart {
+
+ /**
+ * @generated
+ */
+ public static final int VISUAL_ID = 5052;
+
+ /**
+ * @generated
+ */
+ private DirectEditManager manager;
+
+ /**
+ * @generated
+ */
+ private IParser parser;
+
+ /**
+ * @generated
+ */
+ private List<?> parserElements;
+
+ /**
+ * @generated
+ */
+ private String defaultText;
+
+ /**
+ * @generated
+ */
+ public ConditionCheckNameTypeSpecEditPart(View view) {
+ super(view);
+ }
+
+ /**
+ * @generated
+ */
+ protected void createDefaultEditPolicies() {
+ super.createDefaultEditPolicies();
+ installEditPolicy(EditPolicy.SELECTION_FEEDBACK_ROLE,
+ new ComrelTextSelectionEditPolicy());
+ installEditPolicy(EditPolicy.DIRECT_EDIT_ROLE,
+ new LabelDirectEditPolicy());
+ installEditPolicy(EditPolicy.PRIMARY_DRAG_ROLE,
+ new CompositeRefactoringEditPart.NodeLabelDragPolicy());
+ }
+
+ /**
+ * @generated
+ */
+ protected String getLabelTextHelper(IFigure figure) {
+ if (figure instanceof WrappingLabel) {
+ return ((WrappingLabel) figure).getText();
+ } else {
+ return ((Label) figure).getText();
+ }
+ }
+
+ /**
+ * @generated
+ */
+ protected void setLabelTextHelper(IFigure figure, String text) {
+ if (figure instanceof WrappingLabel) {
+ ((WrappingLabel) figure).setText(text);
+ } else {
+ ((Label) figure).setText(text);
+ }
+ }
+
+ /**
+ * @generated
+ */
+ protected Image getLabelIconHelper(IFigure figure) {
+ if (figure instanceof WrappingLabel) {
+ return ((WrappingLabel) figure).getIcon();
+ } else {
+ return ((Label) figure).getIcon();
+ }
+ }
+
+ /**
+ * @generated
+ */
+ protected void setLabelIconHelper(IFigure figure, Image icon) {
+ if (figure instanceof WrappingLabel) {
+ ((WrappingLabel) figure).setIcon(icon);
+ } else {
+ ((Label) figure).setIcon(icon);
+ }
+ }
+
+ /**
+ * @generated
+ */
+ public void setLabel(WrappingLabel figure) {
+ unregisterVisuals();
+ setFigure(figure);
+ defaultText = getLabelTextHelper(figure);
+ registerVisuals();
+ refreshVisuals();
+ }
+
+ /**
+ * @generated
+ */
+ @SuppressWarnings("rawtypes")
+ protected List getModelChildren() {
+ return Collections.EMPTY_LIST;
+ }
+
+ /**
+ * @generated
+ */
+ public IGraphicalEditPart getChildBySemanticHint(String semanticHint) {
+ return null;
+ }
+
+ /**
+ * @generated
+ */
+ protected EObject getParserElement() {
+ return resolveSemanticElement();
+ }
+
+ /**
+ * @generated
+ */
+ protected Image getLabelIcon() {
+ return null;
+ }
+
+ /**
+ * @generated
+ */
+ protected String getLabelText() {
+ String text = null;
+ EObject parserElement = getParserElement();
+ if (parserElement != null && getParser() != null) {
+ text = getParser().getPrintString(
+ new EObjectAdapter(parserElement),
+ getParserOptions().intValue());
+ }
+ if (text == null || text.length() == 0) {
+ text = defaultText;
+ }
+ return text;
+ }
+
+ /**
+ * @generated
+ */
+ public void setLabelText(String text) {
+ setLabelTextHelper(getFigure(), text);
+ Object pdEditPolicy = getEditPolicy(EditPolicy.PRIMARY_DRAG_ROLE);
+ if (pdEditPolicy instanceof ComrelTextSelectionEditPolicy) {
+ ((ComrelTextSelectionEditPolicy) pdEditPolicy).refreshFeedback();
+ }
+ Object sfEditPolicy = getEditPolicy(EditPolicy.SELECTION_FEEDBACK_ROLE);
+ if (sfEditPolicy instanceof ComrelTextSelectionEditPolicy) {
+ ((ComrelTextSelectionEditPolicy) sfEditPolicy).refreshFeedback();
+ }
+ }
+
+ /**
+ * @generated
+ */
+ public String getEditText() {
+ if (getParserElement() == null || getParser() == null) {
+ return ""; //$NON-NLS-1$
+ }
+ return getParser().getEditString(
+ new EObjectAdapter(getParserElement()),
+ getParserOptions().intValue());
+ }
+
+ /**
+ * @generated
+ */
+ protected boolean isEditable() {
+ return getParser() != null;
+ }
+
+ /**
+ * @generated
+ */
+ public ICellEditorValidator getEditTextValidator() {
+ return new ICellEditorValidator() {
+
+ public String isValid(final Object value) {
+ if (value instanceof String) {
+ final EObject element = getParserElement();
+ final IParser parser = getParser();
+ try {
+ IParserEditStatus valid = (IParserEditStatus) getEditingDomain()
+ .runExclusive(
+ new RunnableWithResult.Impl<IParserEditStatus>() {
+
+ public void run() {
+ setResult(parser
+ .isValidEditString(
+ new EObjectAdapter(
+ element),
+ (String) value));
+ }
+ });
+ return valid.getCode() == ParserEditStatus.EDITABLE ? null
+ : valid.getMessage();
+ } catch (InterruptedException ie) {
+ ie.printStackTrace();
+ }
+ }
+
+ // shouldn't get here
+ return null;
+ }
+ };
+ }
+
+ /**
+ * @generated
+ */
+ public IContentAssistProcessor getCompletionProcessor() {
+ if (getParserElement() == null || getParser() == null) {
+ return null;
+ }
+ return getParser().getCompletionProcessor(
+ new EObjectAdapter(getParserElement()));
+ }
+
+ /**
+ * @generated
+ */
+ public ParserOptions getParserOptions() {
+ return ParserOptions.NONE;
+ }
+
+ /**
+ * @generated
+ */
+ public IParser getParser() {
+ if (parser == null) {
+ parser = ComrelParserProvider
+ .getParser(
+ ComrelElementTypes.ConditionCheck_3076,
+ getParserElement(),
+ ComrelVisualIDRegistry
+ .getType(comrel.diagram.edit.parts.ConditionCheckNameTypeSpecEditPart.VISUAL_ID));
+ }
+ return parser;
+ }
+
+ /**
+ * @generated
+ */
+ protected DirectEditManager getManager() {
+ if (manager == null) {
+ setManager(new TextDirectEditManager(this,
+ TextDirectEditManager.getTextCellEditorClass(this),
+ ComrelEditPartFactory.getTextCellEditorLocator(this)));
+ }
+ return manager;
+ }
+
+ /**
+ * @generated
+ */
+ protected void setManager(DirectEditManager manager) {
+ this.manager = manager;
+ }
+
+ /**
+ * @generated
+ */
+ protected void performDirectEdit() {
+ getManager().show();
+ }
+
+ /**
+ * @generated
+ */
+ protected void performDirectEdit(Point eventLocation) {
+ if (getManager().getClass() == TextDirectEditManager.class) {
+ ((TextDirectEditManager) getManager()).show(eventLocation
+ .getSWTPoint());
+ }
+ }
+
+ /**
+ * @generated
+ */
+ private void performDirectEdit(char initialCharacter) {
+ if (getManager() instanceof TextDirectEditManager) {
+ ((TextDirectEditManager) getManager()).show(initialCharacter);
+ } else {
+ performDirectEdit();
+ }
+ }
+
+ /**
+ * @generated
+ */
+ protected void performDirectEditRequest(Request request) {
+ final Request theRequest = request;
+ try {
+ getEditingDomain().runExclusive(new Runnable() {
+
+ public void run() {
+ if (isActive() && isEditable()) {
+ if (theRequest
+ .getExtendedData()
+ .get(RequestConstants.REQ_DIRECTEDIT_EXTENDEDDATA_INITIAL_CHAR) instanceof Character) {
+ Character initialChar = (Character) theRequest
+ .getExtendedData()
+ .get(RequestConstants.REQ_DIRECTEDIT_EXTENDEDDATA_INITIAL_CHAR);
+ performDirectEdit(initialChar.charValue());
+ } else if ((theRequest instanceof DirectEditRequest)
+ && (getEditText().equals(getLabelText()))) {
+ DirectEditRequest editRequest = (DirectEditRequest) theRequest;
+ performDirectEdit(editRequest.getLocation());
+ } else {
+ performDirectEdit();
+ }
+ }
+ }
+ });
+ } catch (InterruptedException e) {
+ e.printStackTrace();
+ }
+ }
+
+ /**
+ * @generated
+ */
+ protected void refreshVisuals() {
+ super.refreshVisuals();
+ refreshLabel();
+ refreshFont();
+ refreshFontColor();
+ refreshUnderline();
+ refreshStrikeThrough();
+ }
+
+ /**
+ * @generated
+ */
+ protected void refreshLabel() {
+ setLabelTextHelper(getFigure(), getLabelText());
+ setLabelIconHelper(getFigure(), getLabelIcon());
+ Object pdEditPolicy = getEditPolicy(EditPolicy.PRIMARY_DRAG_ROLE);
+ if (pdEditPolicy instanceof ComrelTextSelectionEditPolicy) {
+ ((ComrelTextSelectionEditPolicy) pdEditPolicy).refreshFeedback();
+ }
+ Object sfEditPolicy = getEditPolicy(EditPolicy.SELECTION_FEEDBACK_ROLE);
+ if (sfEditPolicy instanceof ComrelTextSelectionEditPolicy) {
+ ((ComrelTextSelectionEditPolicy) sfEditPolicy).refreshFeedback();
+ }
+ }
+
+ /**
+ * @generated
+ */
+ protected void refreshUnderline() {
+ FontStyle style = (FontStyle) getFontStyleOwnerView().getStyle(
+ NotationPackage.eINSTANCE.getFontStyle());
+ if (style != null && getFigure() instanceof WrappingLabel) {
+ ((WrappingLabel) getFigure()).setTextUnderline(style.isUnderline());
+ }
+ }
+
+ /**
+ * @generated
+ */
+ protected void refreshStrikeThrough() {
+ FontStyle style = (FontStyle) getFontStyleOwnerView().getStyle(
+ NotationPackage.eINSTANCE.getFontStyle());
+ if (style != null && getFigure() instanceof WrappingLabel) {
+ ((WrappingLabel) getFigure()).setTextStrikeThrough(style
+ .isStrikeThrough());
+ }
+ }
+
+ /**
+ * @generated
+ */
+ protected void refreshFont() {
+ FontStyle style = (FontStyle) getFontStyleOwnerView().getStyle(
+ NotationPackage.eINSTANCE.getFontStyle());
+ if (style != null) {
+ FontData fontData = new FontData(style.getFontName(),
+ style.getFontHeight(), (style.isBold() ? SWT.BOLD
+ : SWT.NORMAL)
+ | (style.isItalic() ? SWT.ITALIC : SWT.NORMAL));
+ setFont(fontData);
+ }
+ }
+
+ /**
+ * @generated
+ */
+ protected void setFontColor(Color color) {
+ getFigure().setForegroundColor(color);
+ }
+
+ /**
+ * @generated
+ */
+ protected void addSemanticListeners() {
+ if (getParser() instanceof ISemanticParser) {
+ EObject element = resolveSemanticElement();
+ parserElements = ((ISemanticParser) getParser())
+ .getSemanticElementsBeingParsed(element);
+ for (int i = 0; i < parserElements.size(); i++) {
+ addListenerFilter(
+ "SemanticModel" + i, this, (EObject) parserElements.get(i)); //$NON-NLS-1$
+ }
+ } else {
+ super.addSemanticListeners();
+ }
+ }
+
+ /**
+ * @generated
+ */
+ protected void removeSemanticListeners() {
+ if (parserElements != null) {
+ for (int i = 0; i < parserElements.size(); i++) {
+ removeListenerFilter("SemanticModel" + i); //$NON-NLS-1$
+ }
+ } else {
+ super.removeSemanticListeners();
+ }
+ }
+
+ /**
+ * @generated
+ */
+ protected AccessibleEditPart getAccessibleEditPart() {
+ if (accessibleEP == null) {
+ accessibleEP = new AccessibleGraphicalEditPart() {
+
+ public void getName(AccessibleEvent e) {
+ e.result = getLabelTextHelper(getFigure());
+ }
+ };
+ }
+ return accessibleEP;
+ }
+
+ /**
+ * @generated
+ */
+ private View getFontStyleOwnerView() {
+ return getPrimaryView();
+ }
+
+ /**
+ * @generated
+ */
+ protected void addNotationalListeners() {
+ super.addNotationalListeners();
+ addListenerFilter("PrimaryView", this, getPrimaryView()); //$NON-NLS-1$
+ }
+
+ /**
+ * @generated
+ */
+ protected void removeNotationalListeners() {
+ super.removeNotationalListeners();
+ removeListenerFilter("PrimaryView"); //$NON-NLS-1$
+ }
+
+ /**
+ * @generated
+ */
+ protected void handleNotificationEvent(Notification event) {
+ Object feature = event.getFeature();
+ if (NotationPackage.eINSTANCE.getFontStyle_FontColor().equals(feature)) {
+ Integer c = (Integer) event.getNewValue();
+ setFontColor(DiagramColorRegistry.getInstance().getColor(c));
+ } else if (NotationPackage.eINSTANCE.getFontStyle_Underline().equals(
+ feature)) {
+ refreshUnderline();
+ } else if (NotationPackage.eINSTANCE.getFontStyle_StrikeThrough()
+ .equals(feature)) {
+ refreshStrikeThrough();
+ } else if (NotationPackage.eINSTANCE.getFontStyle_FontHeight().equals(
+ feature)
+ || NotationPackage.eINSTANCE.getFontStyle_FontName().equals(
+ feature)
+ || NotationPackage.eINSTANCE.getFontStyle_Bold()
+ .equals(feature)
+ || NotationPackage.eINSTANCE.getFontStyle_Italic().equals(
+ feature)) {
+ refreshFont();
+ } else {
+ if (getParser() != null
+ && getParser().isAffectingEvent(event,
+ getParserOptions().intValue())) {
+ refreshLabel();
+ }
+ if (getParser() instanceof ISemanticParser) {
+ ISemanticParser modelParser = (ISemanticParser) getParser();
+ if (modelParser.areSemanticElementsAffected(null, event)) {
+ removeSemanticListeners();
+ if (resolveSemanticElement() != null) {
+ addSemanticListeners();
+ }
+ refreshLabel();
+ }
+ }
+ }
+ super.handleNotificationEvent(event);
+ }
+
+ /**
+ * @generated
+ */
+ protected IFigure createFigure() {
+ // Parent should assign one using setLabel() method
+ return null;
+ }
+
+}
diff --git a/org.eclipse.emf.refactor.comrel.diagram/src/comrel/diagram/edit/parts/ConditionalUnit2EditPart.java b/org.eclipse.emf.refactor.comrel.diagram/src/comrel/diagram/edit/parts/ConditionalUnit2EditPart.java
new file mode 100644
index 0000000..a2b8187
--- /dev/null
+++ b/org.eclipse.emf.refactor.comrel.diagram/src/comrel/diagram/edit/parts/ConditionalUnit2EditPart.java
@@ -0,0 +1,493 @@
+/*
+ *
+ */
+package comrel.diagram.edit.parts;
+
+import org.eclipse.draw2d.IFigure;
+import org.eclipse.draw2d.MarginBorder;
+import org.eclipse.draw2d.PositionConstants;
+import org.eclipse.draw2d.RectangleFigure;
+import org.eclipse.draw2d.RoundedRectangle;
+import org.eclipse.draw2d.Shape;
+import org.eclipse.draw2d.StackLayout;
+import org.eclipse.draw2d.geometry.Dimension;
+import org.eclipse.gef.EditPart;
+import org.eclipse.gef.EditPolicy;
+import org.eclipse.gef.Request;
+import org.eclipse.gef.commands.Command;
+import org.eclipse.gef.editpolicies.LayoutEditPolicy;
+import org.eclipse.gef.editpolicies.NonResizableEditPolicy;
+import org.eclipse.gef.requests.CreateRequest;
+import org.eclipse.gmf.runtime.diagram.ui.editparts.AbstractBorderedShapeEditPart;
+import org.eclipse.gmf.runtime.diagram.ui.editparts.IBorderItemEditPart;
+import org.eclipse.gmf.runtime.diagram.ui.editparts.IGraphicalEditPart;
+import org.eclipse.gmf.runtime.diagram.ui.editpolicies.BorderItemSelectionEditPolicy;
+import org.eclipse.gmf.runtime.diagram.ui.editpolicies.CreationEditPolicy;
+import org.eclipse.gmf.runtime.diagram.ui.editpolicies.DragDropEditPolicy;
+import org.eclipse.gmf.runtime.diagram.ui.editpolicies.EditPolicyRoles;
+import org.eclipse.gmf.runtime.diagram.ui.figures.BorderItemLocator;
+import org.eclipse.gmf.runtime.draw2d.ui.figures.ConstrainedToolbarLayout;
+import org.eclipse.gmf.runtime.draw2d.ui.figures.WrappingLabel;
+import org.eclipse.gmf.runtime.gef.ui.figures.DefaultSizeNodeFigure;
+import org.eclipse.gmf.runtime.gef.ui.figures.NodeFigure;
+import org.eclipse.gmf.runtime.notation.View;
+import org.eclipse.swt.graphics.Color;
+
+import comrel.diagram.edit.policies.ConditionalUnit2CanonicalEditPolicy;
+import comrel.diagram.edit.policies.ConditionalUnit2ItemSemanticEditPolicy;
+import comrel.diagram.edit.policies.OpenDiagramEditPolicy;
+import comrel.diagram.part.ComrelVisualIDRegistry;
+
+/**
+ * @generated
+ */
+public class ConditionalUnit2EditPart extends AbstractBorderedShapeEditPart {
+
+ /**
+ * @generated
+ */
+ public static final int VISUAL_ID = 3030;
+
+ /**
+ * @generated
+ */
+ protected IFigure contentPane;
+
+ /**
+ * @generated
+ */
+ protected IFigure primaryShape;
+
+ /**
+ * @generated
+ */
+ public ConditionalUnit2EditPart(View view) {
+ super(view);
+ }
+
+ /**
+ * @generated
+ */
+ protected void createDefaultEditPolicies() {
+ installEditPolicy(EditPolicyRoles.CREATION_ROLE,
+ new CreationEditPolicy());
+ super.createDefaultEditPolicies();
+ installEditPolicy(EditPolicyRoles.SEMANTIC_ROLE,
+ new ConditionalUnit2ItemSemanticEditPolicy());
+ installEditPolicy(EditPolicyRoles.DRAG_DROP_ROLE,
+ new DragDropEditPolicy());
+ installEditPolicy(EditPolicyRoles.CANONICAL_ROLE,
+ new ConditionalUnit2CanonicalEditPolicy());
+ installEditPolicy(EditPolicy.LAYOUT_ROLE, createLayoutEditPolicy());
+ installEditPolicy(EditPolicyRoles.OPEN_ROLE,
+ new OpenDiagramEditPolicy());
+ // XXX need an SCR to runtime to have another abstract superclass that would let children add reasonable editpolicies
+ // removeEditPolicy(org.eclipse.gmf.runtime.diagram.ui.editpolicies.EditPolicyRoles.CONNECTION_HANDLES_ROLE);
+ }
+
+ /**
+ * @generated
+ */
+ protected LayoutEditPolicy createLayoutEditPolicy() {
+ org.eclipse.gmf.runtime.diagram.ui.editpolicies.LayoutEditPolicy lep = new org.eclipse.gmf.runtime.diagram.ui.editpolicies.LayoutEditPolicy() {
+
+ protected EditPolicy createChildEditPolicy(EditPart child) {
+ View childView = (View) child.getModel();
+ switch (ComrelVisualIDRegistry.getVisualID(childView)) {
+ case SingleInputPort8EditPart.VISUAL_ID:
+ case MultiInputPort9EditPart.VISUAL_ID:
+ return new BorderItemSelectionEditPolicy();
+ }
+ EditPolicy result = child
+ .getEditPolicy(EditPolicy.PRIMARY_DRAG_ROLE);
+ if (result == null) {
+ result = new NonResizableEditPolicy();
+ }
+ return result;
+ }
+
+ protected Command getMoveChildrenCommand(Request request) {
+ return null;
+ }
+
+ protected Command getCreateCommand(CreateRequest request) {
+ return null;
+ }
+ };
+ return lep;
+ }
+
+ /**
+ * @generated
+ */
+ protected IFigure createNodeShape() {
+ return primaryShape = new ConditionalUnitFigure();
+ }
+
+ /**
+ * @generated
+ */
+ public ConditionalUnitFigure getPrimaryShape() {
+ return (ConditionalUnitFigure) primaryShape;
+ }
+
+ /**
+ * @generated
+ */
+ protected boolean addFixedChild(EditPart childEditPart) {
+ if (childEditPart instanceof ConditionalUnitNameType2EditPart) {
+ ((ConditionalUnitNameType2EditPart) childEditPart)
+ .setLabel(getPrimaryShape()
+ .getFigureConditionalUnitLabelFigure());
+ return true;
+ }
+ if (childEditPart instanceof ConditionalUnitConditionalUnitIfCompartmentEditPart) {
+ IFigure pane = getPrimaryShape()
+ .getConditionalUnitIfCompartmentFigure();
+ setupContentPane(pane); // FIXME each comparment should handle his content pane in his own way
+ pane.add(((ConditionalUnitConditionalUnitIfCompartmentEditPart) childEditPart)
+ .getFigure());
+ return true;
+ }
+ if (childEditPart instanceof ConditionalUnitConditionalUnitHelperUnitsCompartmentEditPart) {
+ IFigure pane = getPrimaryShape()
+ .getConditionalUnitHelperUnitsCompartmentFigure();
+ setupContentPane(pane); // FIXME each comparment should handle his content pane in his own way
+ pane.add(((ConditionalUnitConditionalUnitHelperUnitsCompartmentEditPart) childEditPart)
+ .getFigure());
+ return true;
+ }
+ if (childEditPart instanceof ConditionalUnitConditionalUnitThenCompartmentEditPart) {
+ IFigure pane = getPrimaryShape()
+ .getConditionalUnitThenCompartmentFigure();
+ setupContentPane(pane); // FIXME each comparment should handle his content pane in his own way
+ pane.add(((ConditionalUnitConditionalUnitThenCompartmentEditPart) childEditPart)
+ .getFigure());
+ return true;
+ }
+ if (childEditPart instanceof ConditionalUnitConditionalUnitElseCompartmentEditPart) {
+ IFigure pane = getPrimaryShape()
+ .getConditionalUnitElseCompartmentFigure();
+ setupContentPane(pane); // FIXME each comparment should handle his content pane in his own way
+ pane.add(((ConditionalUnitConditionalUnitElseCompartmentEditPart) childEditPart)
+ .getFigure());
+ return true;
+ }
+ if (childEditPart instanceof SingleInputPort8EditPart) {
+ BorderItemLocator locator = new BorderItemLocator(getMainFigure(),
+ PositionConstants.NONE);
+ getBorderedFigure().getBorderItemContainer().add(
+ ((SingleInputPort8EditPart) childEditPart).getFigure(),
+ locator);
+ return true;
+ }
+ if (childEditPart instanceof MultiInputPort9EditPart) {
+ BorderItemLocator locator = new BorderItemLocator(getMainFigure(),
+ PositionConstants.NONE);
+ getBorderedFigure().getBorderItemContainer().add(
+ ((MultiInputPort9EditPart) childEditPart).getFigure(),
+ locator);
+ return true;
+ }
+ return false;
+ }
+
+ /**
+ * @generated
+ */
+ protected boolean removeFixedChild(EditPart childEditPart) {
+ if (childEditPart instanceof ConditionalUnitNameType2EditPart) {
+ return true;
+ }
+ if (childEditPart instanceof ConditionalUnitConditionalUnitIfCompartmentEditPart) {
+ IFigure pane = getPrimaryShape()
+ .getConditionalUnitIfCompartmentFigure();
+ setupContentPane(pane); // FIXME each comparment should handle his content pane in his own way
+ pane.remove(((ConditionalUnitConditionalUnitIfCompartmentEditPart) childEditPart)
+ .getFigure());
+ return true;
+ }
+ if (childEditPart instanceof ConditionalUnitConditionalUnitHelperUnitsCompartmentEditPart) {
+ IFigure pane = getPrimaryShape()
+ .getConditionalUnitHelperUnitsCompartmentFigure();
+ setupContentPane(pane); // FIXME each comparment should handle his content pane in his own way
+ pane.remove(((ConditionalUnitConditionalUnitHelperUnitsCompartmentEditPart) childEditPart)
+ .getFigure());
+ return true;
+ }
+ if (childEditPart instanceof ConditionalUnitConditionalUnitThenCompartmentEditPart) {
+ IFigure pane = getPrimaryShape()
+ .getConditionalUnitThenCompartmentFigure();
+ setupContentPane(pane); // FIXME each comparment should handle his content pane in his own way
+ pane.remove(((ConditionalUnitConditionalUnitThenCompartmentEditPart) childEditPart)
+ .getFigure());
+ return true;
+ }
+ if (childEditPart instanceof ConditionalUnitConditionalUnitElseCompartmentEditPart) {
+ IFigure pane = getPrimaryShape()
+ .getConditionalUnitElseCompartmentFigure();
+ setupContentPane(pane); // FIXME each comparment should handle his content pane in his own way
+ pane.remove(((ConditionalUnitConditionalUnitElseCompartmentEditPart) childEditPart)
+ .getFigure());
+ return true;
+ }
+ if (childEditPart instanceof SingleInputPort8EditPart) {
+ getBorderedFigure().getBorderItemContainer().remove(
+ ((SingleInputPort8EditPart) childEditPart).getFigure());
+ return true;
+ }
+ if (childEditPart instanceof MultiInputPort9EditPart) {
+ getBorderedFigure().getBorderItemContainer().remove(
+ ((MultiInputPort9EditPart) childEditPart).getFigure());
+ return true;
+ }
+ return false;
+ }
+
+ /**
+ * @generated
+ */
+ protected void addChildVisual(EditPart childEditPart, int index) {
+ if (addFixedChild(childEditPart)) {
+ return;
+ }
+ super.addChildVisual(childEditPart, -1);
+ }
+
+ /**
+ * @generated
+ */
+ protected void removeChildVisual(EditPart childEditPart) {
+ if (removeFixedChild(childEditPart)) {
+ return;
+ }
+ super.removeChildVisual(childEditPart);
+ }
+
+ /**
+ * @generated
+ */
+ protected IFigure getContentPaneFor(IGraphicalEditPart editPart) {
+ if (editPart instanceof ConditionalUnitConditionalUnitIfCompartmentEditPart) {
+ return getPrimaryShape().getConditionalUnitIfCompartmentFigure();
+ }
+ if (editPart instanceof ConditionalUnitConditionalUnitHelperUnitsCompartmentEditPart) {
+ return getPrimaryShape()
+ .getConditionalUnitHelperUnitsCompartmentFigure();
+ }
+ if (editPart instanceof ConditionalUnitConditionalUnitThenCompartmentEditPart) {
+ return getPrimaryShape().getConditionalUnitThenCompartmentFigure();
+ }
+ if (editPart instanceof ConditionalUnitConditionalUnitElseCompartmentEditPart) {
+ return getPrimaryShape().getConditionalUnitElseCompartmentFigure();
+ }
+ if (editPart instanceof IBorderItemEditPart) {
+ return getBorderedFigure().getBorderItemContainer();
+ }
+ return getContentPane();
+ }
+
+ /**
+ * @generated
+ */
+ protected NodeFigure createNodePlate() {
+ DefaultSizeNodeFigure result = new DefaultSizeNodeFigure(40, 40);
+ return result;
+ }
+
+ /**
+ * Creates figure for this edit part.
+ *
+ * Body of this method does not depend on settings in generation model
+ * so you may safely remove <i>generated</i> tag and modify it.
+ *
+ * @generated
+ */
+ protected NodeFigure createMainFigure() {
+ NodeFigure figure = createNodePlate();
+ figure.setLayoutManager(new StackLayout());
+ IFigure shape = createNodeShape();
+ figure.add(shape);
+ contentPane = setupContentPane(shape);
+ return figure;
+ }
+
+ /**
+ * Default implementation treats passed figure as content pane.
+ * Respects layout one may have set for generated figure.
+ * @param nodeShape instance of generated figure class
+ * @generated
+ */
+ protected IFigure setupContentPane(IFigure nodeShape) {
+ if (nodeShape.getLayoutManager() == null) {
+ ConstrainedToolbarLayout layout = new ConstrainedToolbarLayout();
+ layout.setSpacing(5);
+ nodeShape.setLayoutManager(layout);
+ }
+ return nodeShape; // use nodeShape itself as contentPane
+ }
+
+ /**
+ * @generated
+ */
+ public IFigure getContentPane() {
+ if (contentPane != null) {
+ return contentPane;
+ }
+ return super.getContentPane();
+ }
+
+ /**
+ * @generated
+ */
+ protected void setForegroundColor(Color color) {
+ if (primaryShape != null) {
+ primaryShape.setForegroundColor(color);
+ }
+ }
+
+ /**
+ * @generated
+ */
+ protected void setBackgroundColor(Color color) {
+ if (primaryShape != null) {
+ primaryShape.setBackgroundColor(color);
+ }
+ }
+
+ /**
+ * @generated
+ */
+ protected void setLineWidth(int width) {
+ if (primaryShape instanceof Shape) {
+ ((Shape) primaryShape).setLineWidth(width);
+ }
+ }
+
+ /**
+ * @generated
+ */
+ protected void setLineType(int style) {
+ if (primaryShape instanceof Shape) {
+ ((Shape) primaryShape).setLineStyle(style);
+ }
+ }
+
+ /**
+ * @generated
+ */
+ public EditPart getPrimaryChildEditPart() {
+ return getChildBySemanticHint(ComrelVisualIDRegistry
+ .getType(ConditionalUnitNameType2EditPart.VISUAL_ID));
+ }
+
+ /**
+ * @generated
+ */
+ public class ConditionalUnitFigure extends RoundedRectangle {
+
+ /**
+ * @generated
+ */
+ private WrappingLabel fFigureConditionalUnitLabelFigure;
+ /**
+ * @generated
+ */
+ private RectangleFigure fConditionalUnitIfCompartmentFigure;
+ /**
+ * @generated
+ */
+ private RectangleFigure fConditionalUnitHelperUnitsCompartmentFigure;
+ /**
+ * @generated
+ */
+ private RectangleFigure fConditionalUnitThenCompartmentFigure;
+ /**
+ * @generated
+ */
+ private RectangleFigure fConditionalUnitElseCompartmentFigure;
+
+ /**
+ * @generated
+ */
+ public ConditionalUnitFigure() {
+ this.setCornerDimensions(new Dimension(getMapMode().DPtoLP(8),
+ getMapMode().DPtoLP(8)));
+ this.setBorder(new MarginBorder(getMapMode().DPtoLP(5),
+ getMapMode().DPtoLP(5), getMapMode().DPtoLP(5),
+ getMapMode().DPtoLP(5)));
+ createContents();
+ }
+
+ /**
+ * @generated
+ */
+ private void createContents() {
+
+ fFigureConditionalUnitLabelFigure = new WrappingLabel();
+ fFigureConditionalUnitLabelFigure.setText("ConditionalUnit");
+ fFigureConditionalUnitLabelFigure.setMaximumSize(new Dimension(
+ getMapMode().DPtoLP(10000), getMapMode().DPtoLP(50)));
+
+ this.add(fFigureConditionalUnitLabelFigure);
+
+ fConditionalUnitIfCompartmentFigure = new RectangleFigure();
+ fConditionalUnitIfCompartmentFigure.setOutline(false);
+
+ this.add(fConditionalUnitIfCompartmentFigure);
+
+ fConditionalUnitHelperUnitsCompartmentFigure = new RectangleFigure();
+ fConditionalUnitHelperUnitsCompartmentFigure.setOutline(false);
+
+ this.add(fConditionalUnitHelperUnitsCompartmentFigure);
+
+ fConditionalUnitThenCompartmentFigure = new RectangleFigure();
+ fConditionalUnitThenCompartmentFigure.setOutline(false);
+
+ this.add(fConditionalUnitThenCompartmentFigure);
+
+ fConditionalUnitElseCompartmentFigure = new RectangleFigure();
+ fConditionalUnitElseCompartmentFigure.setOutline(false);
+
+ this.add(fConditionalUnitElseCompartmentFigure);
+
+ }
+
+ /**
+ * @generated
+ */
+ public WrappingLabel getFigureConditionalUnitLabelFigure() {
+ return fFigureConditionalUnitLabelFigure;
+ }
+
+ /**
+ * @generated
+ */
+ public RectangleFigure getConditionalUnitIfCompartmentFigure() {
+ return fConditionalUnitIfCompartmentFigure;
+ }
+
+ /**
+ * @generated
+ */
+ public RectangleFigure getConditionalUnitHelperUnitsCompartmentFigure() {
+ return fConditionalUnitHelperUnitsCompartmentFigure;
+ }
+
+ /**
+ * @generated
+ */
+ public RectangleFigure getConditionalUnitThenCompartmentFigure() {
+ return fConditionalUnitThenCompartmentFigure;
+ }
+
+ /**
+ * @generated
+ */
+ public RectangleFigure getConditionalUnitElseCompartmentFigure() {
+ return fConditionalUnitElseCompartmentFigure;
+ }
+
+ }
+
+}
diff --git a/org.eclipse.emf.refactor.comrel.diagram/src/comrel/diagram/edit/parts/ConditionalUnit3EditPart.java b/org.eclipse.emf.refactor.comrel.diagram/src/comrel/diagram/edit/parts/ConditionalUnit3EditPart.java
new file mode 100644
index 0000000..c49d015
--- /dev/null
+++ b/org.eclipse.emf.refactor.comrel.diagram/src/comrel/diagram/edit/parts/ConditionalUnit3EditPart.java
@@ -0,0 +1,493 @@
+/*
+ *
+ */
+package comrel.diagram.edit.parts;
+
+import org.eclipse.draw2d.IFigure;
+import org.eclipse.draw2d.MarginBorder;
+import org.eclipse.draw2d.PositionConstants;
+import org.eclipse.draw2d.RectangleFigure;
+import org.eclipse.draw2d.RoundedRectangle;
+import org.eclipse.draw2d.Shape;
+import org.eclipse.draw2d.StackLayout;
+import org.eclipse.draw2d.geometry.Dimension;
+import org.eclipse.gef.EditPart;
+import org.eclipse.gef.EditPolicy;
+import org.eclipse.gef.Request;
+import org.eclipse.gef.commands.Command;
+import org.eclipse.gef.editpolicies.LayoutEditPolicy;
+import org.eclipse.gef.editpolicies.NonResizableEditPolicy;
+import org.eclipse.gef.requests.CreateRequest;
+import org.eclipse.gmf.runtime.diagram.ui.editparts.AbstractBorderedShapeEditPart;
+import org.eclipse.gmf.runtime.diagram.ui.editparts.IBorderItemEditPart;
+import org.eclipse.gmf.runtime.diagram.ui.editparts.IGraphicalEditPart;
+import org.eclipse.gmf.runtime.diagram.ui.editpolicies.BorderItemSelectionEditPolicy;
+import org.eclipse.gmf.runtime.diagram.ui.editpolicies.CreationEditPolicy;
+import org.eclipse.gmf.runtime.diagram.ui.editpolicies.DragDropEditPolicy;
+import org.eclipse.gmf.runtime.diagram.ui.editpolicies.EditPolicyRoles;
+import org.eclipse.gmf.runtime.diagram.ui.figures.BorderItemLocator;
+import org.eclipse.gmf.runtime.draw2d.ui.figures.ConstrainedToolbarLayout;
+import org.eclipse.gmf.runtime.draw2d.ui.figures.WrappingLabel;
+import org.eclipse.gmf.runtime.gef.ui.figures.DefaultSizeNodeFigure;
+import org.eclipse.gmf.runtime.gef.ui.figures.NodeFigure;
+import org.eclipse.gmf.runtime.notation.View;
+import org.eclipse.swt.graphics.Color;
+
+import comrel.diagram.edit.policies.ConditionalUnit3CanonicalEditPolicy;
+import comrel.diagram.edit.policies.ConditionalUnit3ItemSemanticEditPolicy;
+import comrel.diagram.edit.policies.OpenDiagramEditPolicy;
+import comrel.diagram.part.ComrelVisualIDRegistry;
+
+/**
+ * @generated
+ */
+public class ConditionalUnit3EditPart extends AbstractBorderedShapeEditPart {
+
+ /**
+ * @generated
+ */
+ public static final int VISUAL_ID = 3046;
+
+ /**
+ * @generated
+ */
+ protected IFigure contentPane;
+
+ /**
+ * @generated
+ */
+ protected IFigure primaryShape;
+
+ /**
+ * @generated
+ */
+ public ConditionalUnit3EditPart(View view) {
+ super(view);
+ }
+
+ /**
+ * @generated
+ */
+ protected void createDefaultEditPolicies() {
+ installEditPolicy(EditPolicyRoles.CREATION_ROLE,
+ new CreationEditPolicy());
+ super.createDefaultEditPolicies();
+ installEditPolicy(EditPolicyRoles.SEMANTIC_ROLE,
+ new ConditionalUnit3ItemSemanticEditPolicy());
+ installEditPolicy(EditPolicyRoles.DRAG_DROP_ROLE,
+ new DragDropEditPolicy());
+ installEditPolicy(EditPolicyRoles.CANONICAL_ROLE,
+ new ConditionalUnit3CanonicalEditPolicy());
+ installEditPolicy(EditPolicy.LAYOUT_ROLE, createLayoutEditPolicy());
+ installEditPolicy(EditPolicyRoles.OPEN_ROLE,
+ new OpenDiagramEditPolicy());
+ // XXX need an SCR to runtime to have another abstract superclass that would let children add reasonable editpolicies
+ // removeEditPolicy(org.eclipse.gmf.runtime.diagram.ui.editpolicies.EditPolicyRoles.CONNECTION_HANDLES_ROLE);
+ }
+
+ /**
+ * @generated
+ */
+ protected LayoutEditPolicy createLayoutEditPolicy() {
+ org.eclipse.gmf.runtime.diagram.ui.editpolicies.LayoutEditPolicy lep = new org.eclipse.gmf.runtime.diagram.ui.editpolicies.LayoutEditPolicy() {
+
+ protected EditPolicy createChildEditPolicy(EditPart child) {
+ View childView = (View) child.getModel();
+ switch (ComrelVisualIDRegistry.getVisualID(childView)) {
+ case SingleInputPort8EditPart.VISUAL_ID:
+ case MultiInputPort9EditPart.VISUAL_ID:
+ return new BorderItemSelectionEditPolicy();
+ }
+ EditPolicy result = child
+ .getEditPolicy(EditPolicy.PRIMARY_DRAG_ROLE);
+ if (result == null) {
+ result = new NonResizableEditPolicy();
+ }
+ return result;
+ }
+
+ protected Command getMoveChildrenCommand(Request request) {
+ return null;
+ }
+
+ protected Command getCreateCommand(CreateRequest request) {
+ return null;
+ }
+ };
+ return lep;
+ }
+
+ /**
+ * @generated
+ */
+ protected IFigure createNodeShape() {
+ return primaryShape = new ConditionalUnitFigure();
+ }
+
+ /**
+ * @generated
+ */
+ public ConditionalUnitFigure getPrimaryShape() {
+ return (ConditionalUnitFigure) primaryShape;
+ }
+
+ /**
+ * @generated
+ */
+ protected boolean addFixedChild(EditPart childEditPart) {
+ if (childEditPart instanceof ConditionalUnitNameType3EditPart) {
+ ((ConditionalUnitNameType3EditPart) childEditPart)
+ .setLabel(getPrimaryShape()
+ .getFigureConditionalUnitLabelFigure());
+ return true;
+ }
+ if (childEditPart instanceof ConditionalUnitConditionalUnitIfCompartment2EditPart) {
+ IFigure pane = getPrimaryShape()
+ .getConditionalUnitIfCompartmentFigure();
+ setupContentPane(pane); // FIXME each comparment should handle his content pane in his own way
+ pane.add(((ConditionalUnitConditionalUnitIfCompartment2EditPart) childEditPart)
+ .getFigure());
+ return true;
+ }
+ if (childEditPart instanceof ConditionalUnitConditionalUnitHelperUnitsCompartment2EditPart) {
+ IFigure pane = getPrimaryShape()
+ .getConditionalUnitHelperUnitsCompartmentFigure();
+ setupContentPane(pane); // FIXME each comparment should handle his content pane in his own way
+ pane.add(((ConditionalUnitConditionalUnitHelperUnitsCompartment2EditPart) childEditPart)
+ .getFigure());
+ return true;
+ }
+ if (childEditPart instanceof ConditionalUnitConditionalUnitThenCompartment2EditPart) {
+ IFigure pane = getPrimaryShape()
+ .getConditionalUnitThenCompartmentFigure();
+ setupContentPane(pane); // FIXME each comparment should handle his content pane in his own way
+ pane.add(((ConditionalUnitConditionalUnitThenCompartment2EditPart) childEditPart)
+ .getFigure());
+ return true;
+ }
+ if (childEditPart instanceof ConditionalUnitConditionalUnitElseCompartment2EditPart) {
+ IFigure pane = getPrimaryShape()
+ .getConditionalUnitElseCompartmentFigure();
+ setupContentPane(pane); // FIXME each comparment should handle his content pane in his own way
+ pane.add(((ConditionalUnitConditionalUnitElseCompartment2EditPart) childEditPart)
+ .getFigure());
+ return true;
+ }
+ if (childEditPart instanceof SingleInputPort8EditPart) {
+ BorderItemLocator locator = new BorderItemLocator(getMainFigure(),
+ PositionConstants.NONE);
+ getBorderedFigure().getBorderItemContainer().add(
+ ((SingleInputPort8EditPart) childEditPart).getFigure(),
+ locator);
+ return true;
+ }
+ if (childEditPart instanceof MultiInputPort9EditPart) {
+ BorderItemLocator locator = new BorderItemLocator(getMainFigure(),
+ PositionConstants.NONE);
+ getBorderedFigure().getBorderItemContainer().add(
+ ((MultiInputPort9EditPart) childEditPart).getFigure(),
+ locator);
+ return true;
+ }
+ return false;
+ }
+
+ /**
+ * @generated
+ */
+ protected boolean removeFixedChild(EditPart childEditPart) {
+ if (childEditPart instanceof ConditionalUnitNameType3EditPart) {
+ return true;
+ }
+ if (childEditPart instanceof ConditionalUnitConditionalUnitIfCompartment2EditPart) {
+ IFigure pane = getPrimaryShape()
+ .getConditionalUnitIfCompartmentFigure();
+ setupContentPane(pane); // FIXME each comparment should handle his content pane in his own way
+ pane.remove(((ConditionalUnitConditionalUnitIfCompartment2EditPart) childEditPart)
+ .getFigure());
+ return true;
+ }
+ if (childEditPart instanceof ConditionalUnitConditionalUnitHelperUnitsCompartment2EditPart) {
+ IFigure pane = getPrimaryShape()
+ .getConditionalUnitHelperUnitsCompartmentFigure();
+ setupContentPane(pane); // FIXME each comparment should handle his content pane in his own way
+ pane.remove(((ConditionalUnitConditionalUnitHelperUnitsCompartment2EditPart) childEditPart)
+ .getFigure());
+ return true;
+ }
+ if (childEditPart instanceof ConditionalUnitConditionalUnitThenCompartment2EditPart) {
+ IFigure pane = getPrimaryShape()
+ .getConditionalUnitThenCompartmentFigure();
+ setupContentPane(pane); // FIXME each comparment should handle his content pane in his own way
+ pane.remove(((ConditionalUnitConditionalUnitThenCompartment2EditPart) childEditPart)
+ .getFigure());
+ return true;
+ }
+ if (childEditPart instanceof ConditionalUnitConditionalUnitElseCompartment2EditPart) {
+ IFigure pane = getPrimaryShape()
+ .getConditionalUnitElseCompartmentFigure();
+ setupContentPane(pane); // FIXME each comparment should handle his content pane in his own way
+ pane.remove(((ConditionalUnitConditionalUnitElseCompartment2EditPart) childEditPart)
+ .getFigure());
+ return true;
+ }
+ if (childEditPart instanceof SingleInputPort8EditPart) {
+ getBorderedFigure().getBorderItemContainer().remove(
+ ((SingleInputPort8EditPart) childEditPart).getFigure());
+ return true;
+ }
+ if (childEditPart instanceof MultiInputPort9EditPart) {
+ getBorderedFigure().getBorderItemContainer().remove(
+ ((MultiInputPort9EditPart) childEditPart).getFigure());
+ return true;
+ }
+ return false;
+ }
+
+ /**
+ * @generated
+ */
+ protected void addChildVisual(EditPart childEditPart, int index) {
+ if (addFixedChild(childEditPart)) {
+ return;
+ }
+ super.addChildVisual(childEditPart, -1);
+ }
+
+ /**
+ * @generated
+ */
+ protected void removeChildVisual(EditPart childEditPart) {
+ if (removeFixedChild(childEditPart)) {
+ return;
+ }
+ super.removeChildVisual(childEditPart);
+ }
+
+ /**
+ * @generated
+ */
+ protected IFigure getContentPaneFor(IGraphicalEditPart editPart) {
+ if (editPart instanceof ConditionalUnitConditionalUnitIfCompartment2EditPart) {
+ return getPrimaryShape().getConditionalUnitIfCompartmentFigure();
+ }
+ if (editPart instanceof ConditionalUnitConditionalUnitHelperUnitsCompartment2EditPart) {
+ return getPrimaryShape()
+ .getConditionalUnitHelperUnitsCompartmentFigure();
+ }
+ if (editPart instanceof ConditionalUnitConditionalUnitThenCompartment2EditPart) {
+ return getPrimaryShape().getConditionalUnitThenCompartmentFigure();
+ }
+ if (editPart instanceof ConditionalUnitConditionalUnitElseCompartment2EditPart) {
+ return getPrimaryShape().getConditionalUnitElseCompartmentFigure();
+ }
+ if (editPart instanceof IBorderItemEditPart) {
+ return getBorderedFigure().getBorderItemContainer();
+ }
+ return getContentPane();
+ }
+
+ /**
+ * @generated
+ */
+ protected NodeFigure createNodePlate() {
+ DefaultSizeNodeFigure result = new DefaultSizeNodeFigure(40, 40);
+ return result;
+ }
+
+ /**
+ * Creates figure for this edit part.
+ *
+ * Body of this method does not depend on settings in generation model
+ * so you may safely remove <i>generated</i> tag and modify it.
+ *
+ * @generated
+ */
+ protected NodeFigure createMainFigure() {
+ NodeFigure figure = createNodePlate();
+ figure.setLayoutManager(new StackLayout());
+ IFigure shape = createNodeShape();
+ figure.add(shape);
+ contentPane = setupContentPane(shape);
+ return figure;
+ }
+
+ /**
+ * Default implementation treats passed figure as content pane.
+ * Respects layout one may have set for generated figure.
+ * @param nodeShape instance of generated figure class
+ * @generated
+ */
+ protected IFigure setupContentPane(IFigure nodeShape) {
+ if (nodeShape.getLayoutManager() == null) {
+ ConstrainedToolbarLayout layout = new ConstrainedToolbarLayout();
+ layout.setSpacing(5);
+ nodeShape.setLayoutManager(layout);
+ }
+ return nodeShape; // use nodeShape itself as contentPane
+ }
+
+ /**
+ * @generated
+ */
+ public IFigure getContentPane() {
+ if (contentPane != null) {
+ return contentPane;
+ }
+ return super.getContentPane();
+ }
+
+ /**
+ * @generated
+ */
+ protected void setForegroundColor(Color color) {
+ if (primaryShape != null) {
+ primaryShape.setForegroundColor(color);
+ }
+ }
+
+ /**
+ * @generated
+ */
+ protected void setBackgroundColor(Color color) {
+ if (primaryShape != null) {
+ primaryShape.setBackgroundColor(color);
+ }
+ }
+
+ /**
+ * @generated
+ */
+ protected void setLineWidth(int width) {
+ if (primaryShape instanceof Shape) {
+ ((Shape) primaryShape).setLineWidth(width);
+ }
+ }
+
+ /**
+ * @generated
+ */
+ protected void setLineType(int style) {
+ if (primaryShape instanceof Shape) {
+ ((Shape) primaryShape).setLineStyle(style);
+ }
+ }
+
+ /**
+ * @generated
+ */
+ public EditPart getPrimaryChildEditPart() {
+ return getChildBySemanticHint(ComrelVisualIDRegistry
+ .getType(ConditionalUnitNameType3EditPart.VISUAL_ID));
+ }
+
+ /**
+ * @generated
+ */
+ public class ConditionalUnitFigure extends RoundedRectangle {
+
+ /**
+ * @generated
+ */
+ private WrappingLabel fFigureConditionalUnitLabelFigure;
+ /**
+ * @generated
+ */
+ private RectangleFigure fConditionalUnitIfCompartmentFigure;
+ /**
+ * @generated
+ */
+ private RectangleFigure fConditionalUnitHelperUnitsCompartmentFigure;
+ /**
+ * @generated
+ */
+ private RectangleFigure fConditionalUnitThenCompartmentFigure;
+ /**
+ * @generated
+ */
+ private RectangleFigure fConditionalUnitElseCompartmentFigure;
+
+ /**
+ * @generated
+ */
+ public ConditionalUnitFigure() {
+ this.setCornerDimensions(new Dimension(getMapMode().DPtoLP(8),
+ getMapMode().DPtoLP(8)));
+ this.setBorder(new MarginBorder(getMapMode().DPtoLP(5),
+ getMapMode().DPtoLP(5), getMapMode().DPtoLP(5),
+ getMapMode().DPtoLP(5)));
+ createContents();
+ }
+
+ /**
+ * @generated
+ */
+ private void createContents() {
+
+ fFigureConditionalUnitLabelFigure = new WrappingLabel();
+ fFigureConditionalUnitLabelFigure.setText("ConditionalUnit");
+ fFigureConditionalUnitLabelFigure.setMaximumSize(new Dimension(
+ getMapMode().DPtoLP(10000), getMapMode().DPtoLP(50)));
+
+ this.add(fFigureConditionalUnitLabelFigure);
+
+ fConditionalUnitIfCompartmentFigure = new RectangleFigure();
+ fConditionalUnitIfCompartmentFigure.setOutline(false);
+
+ this.add(fConditionalUnitIfCompartmentFigure);
+
+ fConditionalUnitHelperUnitsCompartmentFigure = new RectangleFigure();
+ fConditionalUnitHelperUnitsCompartmentFigure.setOutline(false);
+
+ this.add(fConditionalUnitHelperUnitsCompartmentFigure);
+
+ fConditionalUnitThenCompartmentFigure = new RectangleFigure();
+ fConditionalUnitThenCompartmentFigure.setOutline(false);
+
+ this.add(fConditionalUnitThenCompartmentFigure);
+
+ fConditionalUnitElseCompartmentFigure = new RectangleFigure();
+ fConditionalUnitElseCompartmentFigure.setOutline(false);
+
+ this.add(fConditionalUnitElseCompartmentFigure);
+
+ }
+
+ /**
+ * @generated
+ */
+ public WrappingLabel getFigureConditionalUnitLabelFigure() {
+ return fFigureConditionalUnitLabelFigure;
+ }
+
+ /**
+ * @generated
+ */
+ public RectangleFigure getConditionalUnitIfCompartmentFigure() {
+ return fConditionalUnitIfCompartmentFigure;
+ }
+
+ /**
+ * @generated
+ */
+ public RectangleFigure getConditionalUnitHelperUnitsCompartmentFigure() {
+ return fConditionalUnitHelperUnitsCompartmentFigure;
+ }
+
+ /**
+ * @generated
+ */
+ public RectangleFigure getConditionalUnitThenCompartmentFigure() {
+ return fConditionalUnitThenCompartmentFigure;
+ }
+
+ /**
+ * @generated
+ */
+ public RectangleFigure getConditionalUnitElseCompartmentFigure() {
+ return fConditionalUnitElseCompartmentFigure;
+ }
+
+ }
+
+}
diff --git a/org.eclipse.emf.refactor.comrel.diagram/src/comrel/diagram/edit/parts/ConditionalUnit4EditPart.java b/org.eclipse.emf.refactor.comrel.diagram/src/comrel/diagram/edit/parts/ConditionalUnit4EditPart.java
new file mode 100644
index 0000000..d28f6f0
--- /dev/null
+++ b/org.eclipse.emf.refactor.comrel.diagram/src/comrel/diagram/edit/parts/ConditionalUnit4EditPart.java
@@ -0,0 +1,493 @@
+/*
+ *
+ */
+package comrel.diagram.edit.parts;
+
+import org.eclipse.draw2d.IFigure;
+import org.eclipse.draw2d.MarginBorder;
+import org.eclipse.draw2d.PositionConstants;
+import org.eclipse.draw2d.RectangleFigure;
+import org.eclipse.draw2d.RoundedRectangle;
+import org.eclipse.draw2d.Shape;
+import org.eclipse.draw2d.StackLayout;
+import org.eclipse.draw2d.geometry.Dimension;
+import org.eclipse.gef.EditPart;
+import org.eclipse.gef.EditPolicy;
+import org.eclipse.gef.Request;
+import org.eclipse.gef.commands.Command;
+import org.eclipse.gef.editpolicies.LayoutEditPolicy;
+import org.eclipse.gef.editpolicies.NonResizableEditPolicy;
+import org.eclipse.gef.requests.CreateRequest;
+import org.eclipse.gmf.runtime.diagram.ui.editparts.AbstractBorderedShapeEditPart;
+import org.eclipse.gmf.runtime.diagram.ui.editparts.IBorderItemEditPart;
+import org.eclipse.gmf.runtime.diagram.ui.editparts.IGraphicalEditPart;
+import org.eclipse.gmf.runtime.diagram.ui.editpolicies.BorderItemSelectionEditPolicy;
+import org.eclipse.gmf.runtime.diagram.ui.editpolicies.CreationEditPolicy;
+import org.eclipse.gmf.runtime.diagram.ui.editpolicies.DragDropEditPolicy;
+import org.eclipse.gmf.runtime.diagram.ui.editpolicies.EditPolicyRoles;
+import org.eclipse.gmf.runtime.diagram.ui.figures.BorderItemLocator;
+import org.eclipse.gmf.runtime.draw2d.ui.figures.ConstrainedToolbarLayout;
+import org.eclipse.gmf.runtime.draw2d.ui.figures.WrappingLabel;
+import org.eclipse.gmf.runtime.gef.ui.figures.DefaultSizeNodeFigure;
+import org.eclipse.gmf.runtime.gef.ui.figures.NodeFigure;
+import org.eclipse.gmf.runtime.notation.View;
+import org.eclipse.swt.graphics.Color;
+
+import comrel.diagram.edit.policies.ConditionalUnit4CanonicalEditPolicy;
+import comrel.diagram.edit.policies.ConditionalUnit4ItemSemanticEditPolicy;
+import comrel.diagram.edit.policies.OpenDiagramEditPolicy;
+import comrel.diagram.part.ComrelVisualIDRegistry;
+
+/**
+ * @generated
+ */
+public class ConditionalUnit4EditPart extends AbstractBorderedShapeEditPart {
+
+ /**
+ * @generated
+ */
+ public static final int VISUAL_ID = 3066;
+
+ /**
+ * @generated
+ */
+ protected IFigure contentPane;
+
+ /**
+ * @generated
+ */
+ protected IFigure primaryShape;
+
+ /**
+ * @generated
+ */
+ public ConditionalUnit4EditPart(View view) {
+ super(view);
+ }
+
+ /**
+ * @generated
+ */
+ protected void createDefaultEditPolicies() {
+ installEditPolicy(EditPolicyRoles.CREATION_ROLE,
+ new CreationEditPolicy());
+ super.createDefaultEditPolicies();
+ installEditPolicy(EditPolicyRoles.SEMANTIC_ROLE,
+ new ConditionalUnit4ItemSemanticEditPolicy());
+ installEditPolicy(EditPolicyRoles.DRAG_DROP_ROLE,
+ new DragDropEditPolicy());
+ installEditPolicy(EditPolicyRoles.CANONICAL_ROLE,
+ new ConditionalUnit4CanonicalEditPolicy());
+ installEditPolicy(EditPolicy.LAYOUT_ROLE, createLayoutEditPolicy());
+ installEditPolicy(EditPolicyRoles.OPEN_ROLE,
+ new OpenDiagramEditPolicy());
+ // XXX need an SCR to runtime to have another abstract superclass that would let children add reasonable editpolicies
+ // removeEditPolicy(org.eclipse.gmf.runtime.diagram.ui.editpolicies.EditPolicyRoles.CONNECTION_HANDLES_ROLE);
+ }
+
+ /**
+ * @generated
+ */
+ protected LayoutEditPolicy createLayoutEditPolicy() {
+ org.eclipse.gmf.runtime.diagram.ui.editpolicies.LayoutEditPolicy lep = new org.eclipse.gmf.runtime.diagram.ui.editpolicies.LayoutEditPolicy() {
+
+ protected EditPolicy createChildEditPolicy(EditPart child) {
+ View childView = (View) child.getModel();
+ switch (ComrelVisualIDRegistry.getVisualID(childView)) {
+ case SingleInputPort8EditPart.VISUAL_ID:
+ case MultiInputPort9EditPart.VISUAL_ID:
+ return new BorderItemSelectionEditPolicy();
+ }
+ EditPolicy result = child
+ .getEditPolicy(EditPolicy.PRIMARY_DRAG_ROLE);
+ if (result == null) {
+ result = new NonResizableEditPolicy();
+ }
+ return result;
+ }
+
+ protected Command getMoveChildrenCommand(Request request) {
+ return null;
+ }
+
+ protected Command getCreateCommand(CreateRequest request) {
+ return null;
+ }
+ };
+ return lep;
+ }
+
+ /**
+ * @generated
+ */
+ protected IFigure createNodeShape() {
+ return primaryShape = new ConditionalUnitFigure();
+ }
+
+ /**
+ * @generated
+ */
+ public ConditionalUnitFigure getPrimaryShape() {
+ return (ConditionalUnitFigure) primaryShape;
+ }
+
+ /**
+ * @generated
+ */
+ protected boolean addFixedChild(EditPart childEditPart) {
+ if (childEditPart instanceof ConditionalUnitNameType4EditPart) {
+ ((ConditionalUnitNameType4EditPart) childEditPart)
+ .setLabel(getPrimaryShape()
+ .getFigureConditionalUnitLabelFigure());
+ return true;
+ }
+ if (childEditPart instanceof ConditionalUnitConditionalUnitIfCompartment3EditPart) {
+ IFigure pane = getPrimaryShape()
+ .getConditionalUnitIfCompartmentFigure();
+ setupContentPane(pane); // FIXME each comparment should handle his content pane in his own way
+ pane.add(((ConditionalUnitConditionalUnitIfCompartment3EditPart) childEditPart)
+ .getFigure());
+ return true;
+ }
+ if (childEditPart instanceof ConditionalUnitConditionalUnitHelperUnitsCompartment3EditPart) {
+ IFigure pane = getPrimaryShape()
+ .getConditionalUnitHelperUnitsCompartmentFigure();
+ setupContentPane(pane); // FIXME each comparment should handle his content pane in his own way
+ pane.add(((ConditionalUnitConditionalUnitHelperUnitsCompartment3EditPart) childEditPart)
+ .getFigure());
+ return true;
+ }
+ if (childEditPart instanceof ConditionalUnitConditionalUnitThenCompartment3EditPart) {
+ IFigure pane = getPrimaryShape()
+ .getConditionalUnitThenCompartmentFigure();
+ setupContentPane(pane); // FIXME each comparment should handle his content pane in his own way
+ pane.add(((ConditionalUnitConditionalUnitThenCompartment3EditPart) childEditPart)
+ .getFigure());
+ return true;
+ }
+ if (childEditPart instanceof ConditionalUnitConditionalUnitElseCompartment3EditPart) {
+ IFigure pane = getPrimaryShape()
+ .getConditionalUnitElseCompartmentFigure();
+ setupContentPane(pane); // FIXME each comparment should handle his content pane in his own way
+ pane.add(((ConditionalUnitConditionalUnitElseCompartment3EditPart) childEditPart)
+ .getFigure());
+ return true;
+ }
+ if (childEditPart instanceof SingleInputPort8EditPart) {
+ BorderItemLocator locator = new BorderItemLocator(getMainFigure(),
+ PositionConstants.NONE);
+ getBorderedFigure().getBorderItemContainer().add(
+ ((SingleInputPort8EditPart) childEditPart).getFigure(),
+ locator);
+ return true;
+ }
+ if (childEditPart instanceof MultiInputPort9EditPart) {
+ BorderItemLocator locator = new BorderItemLocator(getMainFigure(),
+ PositionConstants.NONE);
+ getBorderedFigure().getBorderItemContainer().add(
+ ((MultiInputPort9EditPart) childEditPart).getFigure(),
+ locator);
+ return true;
+ }
+ return false;
+ }
+
+ /**
+ * @generated
+ */
+ protected boolean removeFixedChild(EditPart childEditPart) {
+ if (childEditPart instanceof ConditionalUnitNameType4EditPart) {
+ return true;
+ }
+ if (childEditPart instanceof ConditionalUnitConditionalUnitIfCompartment3EditPart) {
+ IFigure pane = getPrimaryShape()
+ .getConditionalUnitIfCompartmentFigure();
+ setupContentPane(pane); // FIXME each comparment should handle his content pane in his own way
+ pane.remove(((ConditionalUnitConditionalUnitIfCompartment3EditPart) childEditPart)
+ .getFigure());
+ return true;
+ }
+ if (childEditPart instanceof ConditionalUnitConditionalUnitHelperUnitsCompartment3EditPart) {
+ IFigure pane = getPrimaryShape()
+ .getConditionalUnitHelperUnitsCompartmentFigure();
+ setupContentPane(pane); // FIXME each comparment should handle his content pane in his own way
+ pane.remove(((ConditionalUnitConditionalUnitHelperUnitsCompartment3EditPart) childEditPart)
+ .getFigure());
+ return true;
+ }
+ if (childEditPart instanceof ConditionalUnitConditionalUnitThenCompartment3EditPart) {
+ IFigure pane = getPrimaryShape()
+ .getConditionalUnitThenCompartmentFigure();
+ setupContentPane(pane); // FIXME each comparment should handle his content pane in his own way
+ pane.remove(((ConditionalUnitConditionalUnitThenCompartment3EditPart) childEditPart)
+ .getFigure());
+ return true;
+ }
+ if (childEditPart instanceof ConditionalUnitConditionalUnitElseCompartment3EditPart) {
+ IFigure pane = getPrimaryShape()
+ .getConditionalUnitElseCompartmentFigure();
+ setupContentPane(pane); // FIXME each comparment should handle his content pane in his own way
+ pane.remove(((ConditionalUnitConditionalUnitElseCompartment3EditPart) childEditPart)
+ .getFigure());
+ return true;
+ }
+ if (childEditPart instanceof SingleInputPort8EditPart) {
+ getBorderedFigure().getBorderItemContainer().remove(
+ ((SingleInputPort8EditPart) childEditPart).getFigure());
+ return true;
+ }
+ if (childEditPart instanceof MultiInputPort9EditPart) {
+ getBorderedFigure().getBorderItemContainer().remove(
+ ((MultiInputPort9EditPart) childEditPart).getFigure());
+ return true;
+ }
+ return false;
+ }
+
+ /**
+ * @generated
+ */
+ protected void addChildVisual(EditPart childEditPart, int index) {
+ if (addFixedChild(childEditPart)) {
+ return;
+ }
+ super.addChildVisual(childEditPart, -1);
+ }
+
+ /**
+ * @generated
+ */
+ protected void removeChildVisual(EditPart childEditPart) {
+ if (removeFixedChild(childEditPart)) {
+ return;
+ }
+ super.removeChildVisual(childEditPart);
+ }
+
+ /**
+ * @generated
+ */
+ protected IFigure getContentPaneFor(IGraphicalEditPart editPart) {
+ if (editPart instanceof ConditionalUnitConditionalUnitIfCompartment3EditPart) {
+ return getPrimaryShape().getConditionalUnitIfCompartmentFigure();
+ }
+ if (editPart instanceof ConditionalUnitConditionalUnitHelperUnitsCompartment3EditPart) {
+ return getPrimaryShape()
+ .getConditionalUnitHelperUnitsCompartmentFigure();
+ }
+ if (editPart instanceof ConditionalUnitConditionalUnitThenCompartment3EditPart) {
+ return getPrimaryShape().getConditionalUnitThenCompartmentFigure();
+ }
+ if (editPart instanceof ConditionalUnitConditionalUnitElseCompartment3EditPart) {
+ return getPrimaryShape().getConditionalUnitElseCompartmentFigure();
+ }
+ if (editPart instanceof IBorderItemEditPart) {
+ return getBorderedFigure().getBorderItemContainer();
+ }
+ return getContentPane();
+ }
+
+ /**
+ * @generated
+ */
+ protected NodeFigure createNodePlate() {
+ DefaultSizeNodeFigure result = new DefaultSizeNodeFigure(40, 40);
+ return result;
+ }
+
+ /**
+ * Creates figure for this edit part.
+ *
+ * Body of this method does not depend on settings in generation model
+ * so you may safely remove <i>generated</i> tag and modify it.
+ *
+ * @generated
+ */
+ protected NodeFigure createMainFigure() {
+ NodeFigure figure = createNodePlate();
+ figure.setLayoutManager(new StackLayout());
+ IFigure shape = createNodeShape();
+ figure.add(shape);
+ contentPane = setupContentPane(shape);
+ return figure;
+ }
+
+ /**
+ * Default implementation treats passed figure as content pane.
+ * Respects layout one may have set for generated figure.
+ * @param nodeShape instance of generated figure class
+ * @generated
+ */
+ protected IFigure setupContentPane(IFigure nodeShape) {
+ if (nodeShape.getLayoutManager() == null) {
+ ConstrainedToolbarLayout layout = new ConstrainedToolbarLayout();
+ layout.setSpacing(5);
+ nodeShape.setLayoutManager(layout);
+ }
+ return nodeShape; // use nodeShape itself as contentPane
+ }
+
+ /**
+ * @generated
+ */
+ public IFigure getContentPane() {
+ if (contentPane != null) {
+ return contentPane;
+ }
+ return super.getContentPane();
+ }
+
+ /**
+ * @generated
+ */
+ protected void setForegroundColor(Color color) {
+ if (primaryShape != null) {
+ primaryShape.setForegroundColor(color);
+ }
+ }
+
+ /**
+ * @generated
+ */
+ protected void setBackgroundColor(Color color) {
+ if (primaryShape != null) {
+ primaryShape.setBackgroundColor(color);
+ }
+ }
+
+ /**
+ * @generated
+ */
+ protected void setLineWidth(int width) {
+ if (primaryShape instanceof Shape) {
+ ((Shape) primaryShape).setLineWidth(width);
+ }
+ }
+
+ /**
+ * @generated
+ */
+ protected void setLineType(int style) {
+ if (primaryShape instanceof Shape) {
+ ((Shape) primaryShape).setLineStyle(style);
+ }
+ }
+
+ /**
+ * @generated
+ */
+ public EditPart getPrimaryChildEditPart() {
+ return getChildBySemanticHint(ComrelVisualIDRegistry
+ .getType(ConditionalUnitNameType4EditPart.VISUAL_ID));
+ }
+
+ /**
+ * @generated
+ */
+ public class ConditionalUnitFigure extends RoundedRectangle {
+
+ /**
+ * @generated
+ */
+ private WrappingLabel fFigureConditionalUnitLabelFigure;
+ /**
+ * @generated
+ */
+ private RectangleFigure fConditionalUnitIfCompartmentFigure;
+ /**
+ * @generated
+ */
+ private RectangleFigure fConditionalUnitHelperUnitsCompartmentFigure;
+ /**
+ * @generated
+ */
+ private RectangleFigure fConditionalUnitThenCompartmentFigure;
+ /**
+ * @generated
+ */
+ private RectangleFigure fConditionalUnitElseCompartmentFigure;
+
+ /**
+ * @generated
+ */
+ public ConditionalUnitFigure() {
+ this.setCornerDimensions(new Dimension(getMapMode().DPtoLP(8),
+ getMapMode().DPtoLP(8)));
+ this.setBorder(new MarginBorder(getMapMode().DPtoLP(5),
+ getMapMode().DPtoLP(5), getMapMode().DPtoLP(5),
+ getMapMode().DPtoLP(5)));
+ createContents();
+ }
+
+ /**
+ * @generated
+ */
+ private void createContents() {
+
+ fFigureConditionalUnitLabelFigure = new WrappingLabel();
+ fFigureConditionalUnitLabelFigure.setText("ConditionalUnit");
+ fFigureConditionalUnitLabelFigure.setMaximumSize(new Dimension(
+ getMapMode().DPtoLP(10000), getMapMode().DPtoLP(50)));
+
+ this.add(fFigureConditionalUnitLabelFigure);
+
+ fConditionalUnitIfCompartmentFigure = new RectangleFigure();
+ fConditionalUnitIfCompartmentFigure.setOutline(false);
+
+ this.add(fConditionalUnitIfCompartmentFigure);
+
+ fConditionalUnitHelperUnitsCompartmentFigure = new RectangleFigure();
+ fConditionalUnitHelperUnitsCompartmentFigure.setOutline(false);
+
+ this.add(fConditionalUnitHelperUnitsCompartmentFigure);
+
+ fConditionalUnitThenCompartmentFigure = new RectangleFigure();
+ fConditionalUnitThenCompartmentFigure.setOutline(false);
+
+ this.add(fConditionalUnitThenCompartmentFigure);
+
+ fConditionalUnitElseCompartmentFigure = new RectangleFigure();
+ fConditionalUnitElseCompartmentFigure.setOutline(false);
+
+ this.add(fConditionalUnitElseCompartmentFigure);
+
+ }
+
+ /**
+ * @generated
+ */
+ public WrappingLabel getFigureConditionalUnitLabelFigure() {
+ return fFigureConditionalUnitLabelFigure;
+ }
+
+ /**
+ * @generated
+ */
+ public RectangleFigure getConditionalUnitIfCompartmentFigure() {
+ return fConditionalUnitIfCompartmentFigure;
+ }
+
+ /**
+ * @generated
+ */
+ public RectangleFigure getConditionalUnitHelperUnitsCompartmentFigure() {
+ return fConditionalUnitHelperUnitsCompartmentFigure;
+ }
+
+ /**
+ * @generated
+ */
+ public RectangleFigure getConditionalUnitThenCompartmentFigure() {
+ return fConditionalUnitThenCompartmentFigure;
+ }
+
+ /**
+ * @generated
+ */
+ public RectangleFigure getConditionalUnitElseCompartmentFigure() {
+ return fConditionalUnitElseCompartmentFigure;
+ }
+
+ }
+
+}
diff --git a/org.eclipse.emf.refactor.comrel.diagram/src/comrel/diagram/edit/parts/ConditionalUnit5EditPart.java b/org.eclipse.emf.refactor.comrel.diagram/src/comrel/diagram/edit/parts/ConditionalUnit5EditPart.java
new file mode 100644
index 0000000..5b4bb89
--- /dev/null
+++ b/org.eclipse.emf.refactor.comrel.diagram/src/comrel/diagram/edit/parts/ConditionalUnit5EditPart.java
@@ -0,0 +1,493 @@
+/*
+ *
+ */
+package comrel.diagram.edit.parts;
+
+import org.eclipse.draw2d.IFigure;
+import org.eclipse.draw2d.MarginBorder;
+import org.eclipse.draw2d.PositionConstants;
+import org.eclipse.draw2d.RectangleFigure;
+import org.eclipse.draw2d.RoundedRectangle;
+import org.eclipse.draw2d.Shape;
+import org.eclipse.draw2d.StackLayout;
+import org.eclipse.draw2d.geometry.Dimension;
+import org.eclipse.gef.EditPart;
+import org.eclipse.gef.EditPolicy;
+import org.eclipse.gef.Request;
+import org.eclipse.gef.commands.Command;
+import org.eclipse.gef.editpolicies.LayoutEditPolicy;
+import org.eclipse.gef.editpolicies.NonResizableEditPolicy;
+import org.eclipse.gef.requests.CreateRequest;
+import org.eclipse.gmf.runtime.diagram.ui.editparts.AbstractBorderedShapeEditPart;
+import org.eclipse.gmf.runtime.diagram.ui.editparts.IBorderItemEditPart;
+import org.eclipse.gmf.runtime.diagram.ui.editparts.IGraphicalEditPart;
+import org.eclipse.gmf.runtime.diagram.ui.editpolicies.BorderItemSelectionEditPolicy;
+import org.eclipse.gmf.runtime.diagram.ui.editpolicies.CreationEditPolicy;
+import org.eclipse.gmf.runtime.diagram.ui.editpolicies.DragDropEditPolicy;
+import org.eclipse.gmf.runtime.diagram.ui.editpolicies.EditPolicyRoles;
+import org.eclipse.gmf.runtime.diagram.ui.figures.BorderItemLocator;
+import org.eclipse.gmf.runtime.draw2d.ui.figures.ConstrainedToolbarLayout;
+import org.eclipse.gmf.runtime.draw2d.ui.figures.WrappingLabel;
+import org.eclipse.gmf.runtime.gef.ui.figures.DefaultSizeNodeFigure;
+import org.eclipse.gmf.runtime.gef.ui.figures.NodeFigure;
+import org.eclipse.gmf.runtime.notation.View;
+import org.eclipse.swt.graphics.Color;
+
+import comrel.diagram.edit.policies.ConditionalUnit5CanonicalEditPolicy;
+import comrel.diagram.edit.policies.ConditionalUnit5ItemSemanticEditPolicy;
+import comrel.diagram.edit.policies.OpenDiagramEditPolicy;
+import comrel.diagram.part.ComrelVisualIDRegistry;
+
+/**
+ * @generated
+ */
+public class ConditionalUnit5EditPart extends AbstractBorderedShapeEditPart {
+
+ /**
+ * @generated
+ */
+ public static final int VISUAL_ID = 3071;
+
+ /**
+ * @generated
+ */
+ protected IFigure contentPane;
+
+ /**
+ * @generated
+ */
+ protected IFigure primaryShape;
+
+ /**
+ * @generated
+ */
+ public ConditionalUnit5EditPart(View view) {
+ super(view);
+ }
+
+ /**
+ * @generated
+ */
+ protected void createDefaultEditPolicies() {
+ installEditPolicy(EditPolicyRoles.CREATION_ROLE,
+ new CreationEditPolicy());
+ super.createDefaultEditPolicies();
+ installEditPolicy(EditPolicyRoles.SEMANTIC_ROLE,
+ new ConditionalUnit5ItemSemanticEditPolicy());
+ installEditPolicy(EditPolicyRoles.DRAG_DROP_ROLE,
+ new DragDropEditPolicy());
+ installEditPolicy(EditPolicyRoles.CANONICAL_ROLE,
+ new ConditionalUnit5CanonicalEditPolicy());
+ installEditPolicy(EditPolicy.LAYOUT_ROLE, createLayoutEditPolicy());
+ installEditPolicy(EditPolicyRoles.OPEN_ROLE,
+ new OpenDiagramEditPolicy());
+ // XXX need an SCR to runtime to have another abstract superclass that would let children add reasonable editpolicies
+ // removeEditPolicy(org.eclipse.gmf.runtime.diagram.ui.editpolicies.EditPolicyRoles.CONNECTION_HANDLES_ROLE);
+ }
+
+ /**
+ * @generated
+ */
+ protected LayoutEditPolicy createLayoutEditPolicy() {
+ org.eclipse.gmf.runtime.diagram.ui.editpolicies.LayoutEditPolicy lep = new org.eclipse.gmf.runtime.diagram.ui.editpolicies.LayoutEditPolicy() {
+
+ protected EditPolicy createChildEditPolicy(EditPart child) {
+ View childView = (View) child.getModel();
+ switch (ComrelVisualIDRegistry.getVisualID(childView)) {
+ case SingleInputPort8EditPart.VISUAL_ID:
+ case MultiInputPort9EditPart.VISUAL_ID:
+ return new BorderItemSelectionEditPolicy();
+ }
+ EditPolicy result = child
+ .getEditPolicy(EditPolicy.PRIMARY_DRAG_ROLE);
+ if (result == null) {
+ result = new NonResizableEditPolicy();
+ }
+ return result;
+ }
+
+ protected Command getMoveChildrenCommand(Request request) {
+ return null;
+ }
+
+ protected Command getCreateCommand(CreateRequest request) {
+ return null;
+ }
+ };
+ return lep;
+ }
+
+ /**
+ * @generated
+ */
+ protected IFigure createNodeShape() {
+ return primaryShape = new ConditionalUnitFigure();
+ }
+
+ /**
+ * @generated
+ */
+ public ConditionalUnitFigure getPrimaryShape() {
+ return (ConditionalUnitFigure) primaryShape;
+ }
+
+ /**
+ * @generated
+ */
+ protected boolean addFixedChild(EditPart childEditPart) {
+ if (childEditPart instanceof ConditionalUnitNameType5EditPart) {
+ ((ConditionalUnitNameType5EditPart) childEditPart)
+ .setLabel(getPrimaryShape()
+ .getFigureConditionalUnitLabelFigure());
+ return true;
+ }
+ if (childEditPart instanceof ConditionalUnitConditionalUnitIfCompartment4EditPart) {
+ IFigure pane = getPrimaryShape()
+ .getConditionalUnitIfCompartmentFigure();
+ setupContentPane(pane); // FIXME each comparment should handle his content pane in his own way
+ pane.add(((ConditionalUnitConditionalUnitIfCompartment4EditPart) childEditPart)
+ .getFigure());
+ return true;
+ }
+ if (childEditPart instanceof ConditionalUnitConditionalUnitHelperUnitsCompartment4EditPart) {
+ IFigure pane = getPrimaryShape()
+ .getConditionalUnitHelperUnitsCompartmentFigure();
+ setupContentPane(pane); // FIXME each comparment should handle his content pane in his own way
+ pane.add(((ConditionalUnitConditionalUnitHelperUnitsCompartment4EditPart) childEditPart)
+ .getFigure());
+ return true;
+ }
+ if (childEditPart instanceof ConditionalUnitConditionalUnitThenCompartment4EditPart) {
+ IFigure pane = getPrimaryShape()
+ .getConditionalUnitThenCompartmentFigure();
+ setupContentPane(pane); // FIXME each comparment should handle his content pane in his own way
+ pane.add(((ConditionalUnitConditionalUnitThenCompartment4EditPart) childEditPart)
+ .getFigure());
+ return true;
+ }
+ if (childEditPart instanceof ConditionalUnitConditionalUnitElseCompartment4EditPart) {
+ IFigure pane = getPrimaryShape()
+ .getConditionalUnitElseCompartmentFigure();
+ setupContentPane(pane); // FIXME each comparment should handle his content pane in his own way
+ pane.add(((ConditionalUnitConditionalUnitElseCompartment4EditPart) childEditPart)
+ .getFigure());
+ return true;
+ }
+ if (childEditPart instanceof SingleInputPort8EditPart) {
+ BorderItemLocator locator = new BorderItemLocator(getMainFigure(),
+ PositionConstants.NONE);
+ getBorderedFigure().getBorderItemContainer().add(
+ ((SingleInputPort8EditPart) childEditPart).getFigure(),
+ locator);
+ return true;
+ }
+ if (childEditPart instanceof MultiInputPort9EditPart) {
+ BorderItemLocator locator = new BorderItemLocator(getMainFigure(),
+ PositionConstants.NONE);
+ getBorderedFigure().getBorderItemContainer().add(
+ ((MultiInputPort9EditPart) childEditPart).getFigure(),
+ locator);
+ return true;
+ }
+ return false;
+ }
+
+ /**
+ * @generated
+ */
+ protected boolean removeFixedChild(EditPart childEditPart) {
+ if (childEditPart instanceof ConditionalUnitNameType5EditPart) {
+ return true;
+ }
+ if (childEditPart instanceof ConditionalUnitConditionalUnitIfCompartment4EditPart) {
+ IFigure pane = getPrimaryShape()
+ .getConditionalUnitIfCompartmentFigure();
+ setupContentPane(pane); // FIXME each comparment should handle his content pane in his own way
+ pane.remove(((ConditionalUnitConditionalUnitIfCompartment4EditPart) childEditPart)
+ .getFigure());
+ return true;
+ }
+ if (childEditPart instanceof ConditionalUnitConditionalUnitHelperUnitsCompartment4EditPart) {
+ IFigure pane = getPrimaryShape()
+ .getConditionalUnitHelperUnitsCompartmentFigure();
+ setupContentPane(pane); // FIXME each comparment should handle his content pane in his own way
+ pane.remove(((ConditionalUnitConditionalUnitHelperUnitsCompartment4EditPart) childEditPart)
+ .getFigure());
+ return true;
+ }
+ if (childEditPart instanceof ConditionalUnitConditionalUnitThenCompartment4EditPart) {
+ IFigure pane = getPrimaryShape()
+ .getConditionalUnitThenCompartmentFigure();
+ setupContentPane(pane); // FIXME each comparment should handle his content pane in his own way
+ pane.remove(((ConditionalUnitConditionalUnitThenCompartment4EditPart) childEditPart)
+ .getFigure());
+ return true;
+ }
+ if (childEditPart instanceof ConditionalUnitConditionalUnitElseCompartment4EditPart) {
+ IFigure pane = getPrimaryShape()
+ .getConditionalUnitElseCompartmentFigure();
+ setupContentPane(pane); // FIXME each comparment should handle his content pane in his own way
+ pane.remove(((ConditionalUnitConditionalUnitElseCompartment4EditPart) childEditPart)
+ .getFigure());
+ return true;
+ }
+ if (childEditPart instanceof SingleInputPort8EditPart) {
+ getBorderedFigure().getBorderItemContainer().remove(
+ ((SingleInputPort8EditPart) childEditPart).getFigure());
+ return true;
+ }
+ if (childEditPart instanceof MultiInputPort9EditPart) {
+ getBorderedFigure().getBorderItemContainer().remove(
+ ((MultiInputPort9EditPart) childEditPart).getFigure());
+ return true;
+ }
+ return false;
+ }
+
+ /**
+ * @generated
+ */
+ protected void addChildVisual(EditPart childEditPart, int index) {
+ if (addFixedChild(childEditPart)) {
+ return;
+ }
+ super.addChildVisual(childEditPart, -1);
+ }
+
+ /**
+ * @generated
+ */
+ protected void removeChildVisual(EditPart childEditPart) {
+ if (removeFixedChild(childEditPart)) {
+ return;
+ }
+ super.removeChildVisual(childEditPart);
+ }
+
+ /**
+ * @generated
+ */
+ protected IFigure getContentPaneFor(IGraphicalEditPart editPart) {
+ if (editPart instanceof ConditionalUnitConditionalUnitIfCompartment4EditPart) {
+ return getPrimaryShape().getConditionalUnitIfCompartmentFigure();
+ }
+ if (editPart instanceof ConditionalUnitConditionalUnitHelperUnitsCompartment4EditPart) {
+ return getPrimaryShape()
+ .getConditionalUnitHelperUnitsCompartmentFigure();
+ }
+ if (editPart instanceof ConditionalUnitConditionalUnitThenCompartment4EditPart) {
+ return getPrimaryShape().getConditionalUnitThenCompartmentFigure();
+ }
+ if (editPart instanceof ConditionalUnitConditionalUnitElseCompartment4EditPart) {
+ return getPrimaryShape().getConditionalUnitElseCompartmentFigure();
+ }
+ if (editPart instanceof IBorderItemEditPart) {
+ return getBorderedFigure().getBorderItemContainer();
+ }
+ return getContentPane();
+ }
+
+ /**
+ * @generated
+ */
+ protected NodeFigure createNodePlate() {
+ DefaultSizeNodeFigure result = new DefaultSizeNodeFigure(40, 40);
+ return result;
+ }
+
+ /**
+ * Creates figure for this edit part.
+ *
+ * Body of this method does not depend on settings in generation model
+ * so you may safely remove <i>generated</i> tag and modify it.
+ *
+ * @generated
+ */
+ protected NodeFigure createMainFigure() {
+ NodeFigure figure = createNodePlate();
+ figure.setLayoutManager(new StackLayout());
+ IFigure shape = createNodeShape();
+ figure.add(shape);
+ contentPane = setupContentPane(shape);
+ return figure;
+ }
+
+ /**
+ * Default implementation treats passed figure as content pane.
+ * Respects layout one may have set for generated figure.
+ * @param nodeShape instance of generated figure class
+ * @generated
+ */
+ protected IFigure setupContentPane(IFigure nodeShape) {
+ if (nodeShape.getLayoutManager() == null) {
+ ConstrainedToolbarLayout layout = new ConstrainedToolbarLayout();
+ layout.setSpacing(5);
+ nodeShape.setLayoutManager(layout);
+ }
+ return nodeShape; // use nodeShape itself as contentPane
+ }
+
+ /**
+ * @generated
+ */
+ public IFigure getContentPane() {
+ if (contentPane != null) {
+ return contentPane;
+ }
+ return super.getContentPane();
+ }
+
+ /**
+ * @generated
+ */
+ protected void setForegroundColor(Color color) {
+ if (primaryShape != null) {
+ primaryShape.setForegroundColor(color);
+ }
+ }
+
+ /**
+ * @generated
+ */
+ protected void setBackgroundColor(Color color) {
+ if (primaryShape != null) {
+ primaryShape.setBackgroundColor(color);
+ }
+ }
+
+ /**
+ * @generated
+ */
+ protected void setLineWidth(int width) {
+ if (primaryShape instanceof Shape) {
+ ((Shape) primaryShape).setLineWidth(width);
+ }
+ }
+
+ /**
+ * @generated
+ */
+ protected void setLineType(int style) {
+ if (primaryShape instanceof Shape) {
+ ((Shape) primaryShape).setLineStyle(style);
+ }
+ }
+
+ /**
+ * @generated
+ */
+ public EditPart getPrimaryChildEditPart() {
+ return getChildBySemanticHint(ComrelVisualIDRegistry
+ .getType(ConditionalUnitNameType5EditPart.VISUAL_ID));
+ }
+
+ /**
+ * @generated
+ */
+ public class ConditionalUnitFigure extends RoundedRectangle {
+
+ /**
+ * @generated
+ */
+ private WrappingLabel fFigureConditionalUnitLabelFigure;
+ /**
+ * @generated
+ */
+ private RectangleFigure fConditionalUnitIfCompartmentFigure;
+ /**
+ * @generated
+ */
+ private RectangleFigure fConditionalUnitHelperUnitsCompartmentFigure;
+ /**
+ * @generated
+ */
+ private RectangleFigure fConditionalUnitThenCompartmentFigure;
+ /**
+ * @generated
+ */
+ private RectangleFigure fConditionalUnitElseCompartmentFigure;
+
+ /**
+ * @generated
+ */
+ public ConditionalUnitFigure() {
+ this.setCornerDimensions(new Dimension(getMapMode().DPtoLP(8),
+ getMapMode().DPtoLP(8)));
+ this.setBorder(new MarginBorder(getMapMode().DPtoLP(5),
+ getMapMode().DPtoLP(5), getMapMode().DPtoLP(5),
+ getMapMode().DPtoLP(5)));
+ createContents();
+ }
+
+ /**
+ * @generated
+ */
+ private void createContents() {
+
+ fFigureConditionalUnitLabelFigure = new WrappingLabel();
+ fFigureConditionalUnitLabelFigure.setText("ConditionalUnit");
+ fFigureConditionalUnitLabelFigure.setMaximumSize(new Dimension(
+ getMapMode().DPtoLP(10000), getMapMode().DPtoLP(50)));
+
+ this.add(fFigureConditionalUnitLabelFigure);
+
+ fConditionalUnitIfCompartmentFigure = new RectangleFigure();
+ fConditionalUnitIfCompartmentFigure.setOutline(false);
+
+ this.add(fConditionalUnitIfCompartmentFigure);
+
+ fConditionalUnitHelperUnitsCompartmentFigure = new RectangleFigure();
+ fConditionalUnitHelperUnitsCompartmentFigure.setOutline(false);
+
+ this.add(fConditionalUnitHelperUnitsCompartmentFigure);
+
+ fConditionalUnitThenCompartmentFigure = new RectangleFigure();
+ fConditionalUnitThenCompartmentFigure.setOutline(false);
+
+ this.add(fConditionalUnitThenCompartmentFigure);
+
+ fConditionalUnitElseCompartmentFigure = new RectangleFigure();
+ fConditionalUnitElseCompartmentFigure.setOutline(false);
+
+ this.add(fConditionalUnitElseCompartmentFigure);
+
+ }
+
+ /**
+ * @generated
+ */
+ public WrappingLabel getFigureConditionalUnitLabelFigure() {
+ return fFigureConditionalUnitLabelFigure;
+ }
+
+ /**
+ * @generated
+ */
+ public RectangleFigure getConditionalUnitIfCompartmentFigure() {
+ return fConditionalUnitIfCompartmentFigure;
+ }
+
+ /**
+ * @generated
+ */
+ public RectangleFigure getConditionalUnitHelperUnitsCompartmentFigure() {
+ return fConditionalUnitHelperUnitsCompartmentFigure;
+ }
+
+ /**
+ * @generated
+ */
+ public RectangleFigure getConditionalUnitThenCompartmentFigure() {
+ return fConditionalUnitThenCompartmentFigure;
+ }
+
+ /**
+ * @generated
+ */
+ public RectangleFigure getConditionalUnitElseCompartmentFigure() {
+ return fConditionalUnitElseCompartmentFigure;
+ }
+
+ }
+
+}
diff --git a/org.eclipse.emf.refactor.comrel.diagram/src/comrel/diagram/edit/parts/ConditionalUnit6EditPart.java b/org.eclipse.emf.refactor.comrel.diagram/src/comrel/diagram/edit/parts/ConditionalUnit6EditPart.java
new file mode 100644
index 0000000..c2e85ac
--- /dev/null
+++ b/org.eclipse.emf.refactor.comrel.diagram/src/comrel/diagram/edit/parts/ConditionalUnit6EditPart.java
@@ -0,0 +1,493 @@
+/*
+ *
+ */
+package comrel.diagram.edit.parts;
+
+import org.eclipse.draw2d.IFigure;
+import org.eclipse.draw2d.MarginBorder;
+import org.eclipse.draw2d.PositionConstants;
+import org.eclipse.draw2d.RectangleFigure;
+import org.eclipse.draw2d.RoundedRectangle;
+import org.eclipse.draw2d.Shape;
+import org.eclipse.draw2d.StackLayout;
+import org.eclipse.draw2d.geometry.Dimension;
+import org.eclipse.gef.EditPart;
+import org.eclipse.gef.EditPolicy;
+import org.eclipse.gef.Request;
+import org.eclipse.gef.commands.Command;
+import org.eclipse.gef.editpolicies.LayoutEditPolicy;
+import org.eclipse.gef.editpolicies.NonResizableEditPolicy;
+import org.eclipse.gef.requests.CreateRequest;
+import org.eclipse.gmf.runtime.diagram.ui.editparts.AbstractBorderedShapeEditPart;
+import org.eclipse.gmf.runtime.diagram.ui.editparts.IBorderItemEditPart;
+import org.eclipse.gmf.runtime.diagram.ui.editparts.IGraphicalEditPart;
+import org.eclipse.gmf.runtime.diagram.ui.editpolicies.BorderItemSelectionEditPolicy;
+import org.eclipse.gmf.runtime.diagram.ui.editpolicies.CreationEditPolicy;
+import org.eclipse.gmf.runtime.diagram.ui.editpolicies.DragDropEditPolicy;
+import org.eclipse.gmf.runtime.diagram.ui.editpolicies.EditPolicyRoles;
+import org.eclipse.gmf.runtime.diagram.ui.figures.BorderItemLocator;
+import org.eclipse.gmf.runtime.draw2d.ui.figures.ConstrainedToolbarLayout;
+import org.eclipse.gmf.runtime.draw2d.ui.figures.WrappingLabel;
+import org.eclipse.gmf.runtime.gef.ui.figures.DefaultSizeNodeFigure;
+import org.eclipse.gmf.runtime.gef.ui.figures.NodeFigure;
+import org.eclipse.gmf.runtime.notation.View;
+import org.eclipse.swt.graphics.Color;
+
+import comrel.diagram.edit.policies.ConditionalUnit6CanonicalEditPolicy;
+import comrel.diagram.edit.policies.ConditionalUnit6ItemSemanticEditPolicy;
+import comrel.diagram.edit.policies.OpenDiagramEditPolicy;
+import comrel.diagram.part.ComrelVisualIDRegistry;
+
+/**
+ * @generated
+ */
+public class ConditionalUnit6EditPart extends AbstractBorderedShapeEditPart {
+
+ /**
+ * @generated
+ */
+ public static final int VISUAL_ID = 3072;
+
+ /**
+ * @generated
+ */
+ protected IFigure contentPane;
+
+ /**
+ * @generated
+ */
+ protected IFigure primaryShape;
+
+ /**
+ * @generated
+ */
+ public ConditionalUnit6EditPart(View view) {
+ super(view);
+ }
+
+ /**
+ * @generated
+ */
+ protected void createDefaultEditPolicies() {
+ installEditPolicy(EditPolicyRoles.CREATION_ROLE,
+ new CreationEditPolicy());
+ super.createDefaultEditPolicies();
+ installEditPolicy(EditPolicyRoles.SEMANTIC_ROLE,
+ new ConditionalUnit6ItemSemanticEditPolicy());
+ installEditPolicy(EditPolicyRoles.DRAG_DROP_ROLE,
+ new DragDropEditPolicy());
+ installEditPolicy(EditPolicyRoles.CANONICAL_ROLE,
+ new ConditionalUnit6CanonicalEditPolicy());
+ installEditPolicy(EditPolicy.LAYOUT_ROLE, createLayoutEditPolicy());
+ installEditPolicy(EditPolicyRoles.OPEN_ROLE,
+ new OpenDiagramEditPolicy());
+ // XXX need an SCR to runtime to have another abstract superclass that would let children add reasonable editpolicies
+ // removeEditPolicy(org.eclipse.gmf.runtime.diagram.ui.editpolicies.EditPolicyRoles.CONNECTION_HANDLES_ROLE);
+ }
+
+ /**
+ * @generated
+ */
+ protected LayoutEditPolicy createLayoutEditPolicy() {
+ org.eclipse.gmf.runtime.diagram.ui.editpolicies.LayoutEditPolicy lep = new org.eclipse.gmf.runtime.diagram.ui.editpolicies.LayoutEditPolicy() {
+
+ protected EditPolicy createChildEditPolicy(EditPart child) {
+ View childView = (View) child.getModel();
+ switch (ComrelVisualIDRegistry.getVisualID(childView)) {
+ case SingleInputPort8EditPart.VISUAL_ID:
+ case MultiInputPort9EditPart.VISUAL_ID:
+ return new BorderItemSelectionEditPolicy();
+ }
+ EditPolicy result = child
+ .getEditPolicy(EditPolicy.PRIMARY_DRAG_ROLE);
+ if (result == null) {
+ result = new NonResizableEditPolicy();
+ }
+ return result;
+ }
+
+ protected Command getMoveChildrenCommand(Request request) {
+ return null;
+ }
+
+ protected Command getCreateCommand(CreateRequest request) {
+ return null;
+ }
+ };
+ return lep;
+ }
+
+ /**
+ * @generated
+ */
+ protected IFigure createNodeShape() {
+ return primaryShape = new ConditionalUnitFigure();
+ }
+
+ /**
+ * @generated
+ */
+ public ConditionalUnitFigure getPrimaryShape() {
+ return (ConditionalUnitFigure) primaryShape;
+ }
+
+ /**
+ * @generated
+ */
+ protected boolean addFixedChild(EditPart childEditPart) {
+ if (childEditPart instanceof ConditionalUnitNameType6EditPart) {
+ ((ConditionalUnitNameType6EditPart) childEditPart)
+ .setLabel(getPrimaryShape()
+ .getFigureConditionalUnitLabelFigure());
+ return true;
+ }
+ if (childEditPart instanceof ConditionalUnitConditionalUnitIfCompartment5EditPart) {
+ IFigure pane = getPrimaryShape()
+ .getConditionalUnitIfCompartmentFigure();
+ setupContentPane(pane); // FIXME each comparment should handle his content pane in his own way
+ pane.add(((ConditionalUnitConditionalUnitIfCompartment5EditPart) childEditPart)
+ .getFigure());
+ return true;
+ }
+ if (childEditPart instanceof ConditionalUnitConditionalUnitHelperUnitsCompartment5EditPart) {
+ IFigure pane = getPrimaryShape()
+ .getConditionalUnitHelperUnitsCompartmentFigure();
+ setupContentPane(pane); // FIXME each comparment should handle his content pane in his own way
+ pane.add(((ConditionalUnitConditionalUnitHelperUnitsCompartment5EditPart) childEditPart)
+ .getFigure());
+ return true;
+ }
+ if (childEditPart instanceof ConditionalUnitConditionalUnitThenCompartment5EditPart) {
+ IFigure pane = getPrimaryShape()
+ .getConditionalUnitThenCompartmentFigure();
+ setupContentPane(pane); // FIXME each comparment should handle his content pane in his own way
+ pane.add(((ConditionalUnitConditionalUnitThenCompartment5EditPart) childEditPart)
+ .getFigure());
+ return true;
+ }
+ if (childEditPart instanceof ConditionalUnitConditionalUnitElseCompartment5EditPart) {
+ IFigure pane = getPrimaryShape()
+ .getConditionalUnitElseCompartmentFigure();
+ setupContentPane(pane); // FIXME each comparment should handle his content pane in his own way
+ pane.add(((ConditionalUnitConditionalUnitElseCompartment5EditPart) childEditPart)
+ .getFigure());
+ return true;
+ }
+ if (childEditPart instanceof SingleInputPort8EditPart) {
+ BorderItemLocator locator = new BorderItemLocator(getMainFigure(),
+ PositionConstants.NONE);
+ getBorderedFigure().getBorderItemContainer().add(
+ ((SingleInputPort8EditPart) childEditPart).getFigure(),
+ locator);
+ return true;
+ }
+ if (childEditPart instanceof MultiInputPort9EditPart) {
+ BorderItemLocator locator = new BorderItemLocator(getMainFigure(),
+ PositionConstants.NONE);
+ getBorderedFigure().getBorderItemContainer().add(
+ ((MultiInputPort9EditPart) childEditPart).getFigure(),
+ locator);
+ return true;
+ }
+ return false;
+ }
+
+ /**
+ * @generated
+ */
+ protected boolean removeFixedChild(EditPart childEditPart) {
+ if (childEditPart instanceof ConditionalUnitNameType6EditPart) {
+ return true;
+ }
+ if (childEditPart instanceof ConditionalUnitConditionalUnitIfCompartment5EditPart) {
+ IFigure pane = getPrimaryShape()
+ .getConditionalUnitIfCompartmentFigure();
+ setupContentPane(pane); // FIXME each comparment should handle his content pane in his own way
+ pane.remove(((ConditionalUnitConditionalUnitIfCompartment5EditPart) childEditPart)
+ .getFigure());
+ return true;
+ }
+ if (childEditPart instanceof ConditionalUnitConditionalUnitHelperUnitsCompartment5EditPart) {
+ IFigure pane = getPrimaryShape()
+ .getConditionalUnitHelperUnitsCompartmentFigure();
+ setupContentPane(pane); // FIXME each comparment should handle his content pane in his own way
+ pane.remove(((ConditionalUnitConditionalUnitHelperUnitsCompartment5EditPart) childEditPart)
+ .getFigure());
+ return true;
+ }
+ if (childEditPart instanceof ConditionalUnitConditionalUnitThenCompartment5EditPart) {
+ IFigure pane = getPrimaryShape()
+ .getConditionalUnitThenCompartmentFigure();
+ setupContentPane(pane); // FIXME each comparment should handle his content pane in his own way
+ pane.remove(((ConditionalUnitConditionalUnitThenCompartment5EditPart) childEditPart)
+ .getFigure());
+ return true;
+ }
+ if (childEditPart instanceof ConditionalUnitConditionalUnitElseCompartment5EditPart) {
+ IFigure pane = getPrimaryShape()
+ .getConditionalUnitElseCompartmentFigure();
+ setupContentPane(pane); // FIXME each comparment should handle his content pane in his own way
+ pane.remove(((ConditionalUnitConditionalUnitElseCompartment5EditPart) childEditPart)
+ .getFigure());
+ return true;
+ }
+ if (childEditPart instanceof SingleInputPort8EditPart) {
+ getBorderedFigure().getBorderItemContainer().remove(
+ ((SingleInputPort8EditPart) childEditPart).getFigure());
+ return true;
+ }
+ if (childEditPart instanceof MultiInputPort9EditPart) {
+ getBorderedFigure().getBorderItemContainer().remove(
+ ((MultiInputPort9EditPart) childEditPart).getFigure());
+ return true;
+ }
+ return false;
+ }
+
+ /**
+ * @generated
+ */
+ protected void addChildVisual(EditPart childEditPart, int index) {
+ if (addFixedChild(childEditPart)) {
+ return;
+ }
+ super.addChildVisual(childEditPart, -1);
+ }
+
+ /**
+ * @generated
+ */
+ protected void removeChildVisual(EditPart childEditPart) {
+ if (removeFixedChild(childEditPart)) {
+ return;
+ }
+ super.removeChildVisual(childEditPart);
+ }
+
+ /**
+ * @generated
+ */
+ protected IFigure getContentPaneFor(IGraphicalEditPart editPart) {
+ if (editPart instanceof ConditionalUnitConditionalUnitIfCompartment5EditPart) {
+ return getPrimaryShape().getConditionalUnitIfCompartmentFigure();
+ }
+ if (editPart instanceof ConditionalUnitConditionalUnitHelperUnitsCompartment5EditPart) {
+ return getPrimaryShape()
+ .getConditionalUnitHelperUnitsCompartmentFigure();
+ }
+ if (editPart instanceof ConditionalUnitConditionalUnitThenCompartment5EditPart) {
+ return getPrimaryShape().getConditionalUnitThenCompartmentFigure();
+ }
+ if (editPart instanceof ConditionalUnitConditionalUnitElseCompartment5EditPart) {
+ return getPrimaryShape().getConditionalUnitElseCompartmentFigure();
+ }
+ if (editPart instanceof IBorderItemEditPart) {
+ return getBorderedFigure().getBorderItemContainer();
+ }
+ return getContentPane();
+ }
+
+ /**
+ * @generated
+ */
+ protected NodeFigure createNodePlate() {
+ DefaultSizeNodeFigure result = new DefaultSizeNodeFigure(40, 40);
+ return result;
+ }
+
+ /**
+ * Creates figure for this edit part.
+ *
+ * Body of this method does not depend on settings in generation model
+ * so you may safely remove <i>generated</i> tag and modify it.
+ *
+ * @generated
+ */
+ protected NodeFigure createMainFigure() {
+ NodeFigure figure = createNodePlate();
+ figure.setLayoutManager(new StackLayout());
+ IFigure shape = createNodeShape();
+ figure.add(shape);
+ contentPane = setupContentPane(shape);
+ return figure;
+ }
+
+ /**
+ * Default implementation treats passed figure as content pane.
+ * Respects layout one may have set for generated figure.
+ * @param nodeShape instance of generated figure class
+ * @generated
+ */
+ protected IFigure setupContentPane(IFigure nodeShape) {
+ if (nodeShape.getLayoutManager() == null) {
+ ConstrainedToolbarLayout layout = new ConstrainedToolbarLayout();
+ layout.setSpacing(5);
+ nodeShape.setLayoutManager(layout);
+ }
+ return nodeShape; // use nodeShape itself as contentPane
+ }
+
+ /**
+ * @generated
+ */
+ public IFigure getContentPane() {
+ if (contentPane != null) {
+ return contentPane;
+ }
+ return super.getContentPane();
+ }
+
+ /**
+ * @generated
+ */
+ protected void setForegroundColor(Color color) {
+ if (primaryShape != null) {
+ primaryShape.setForegroundColor(color);
+ }
+ }
+
+ /**
+ * @generated
+ */
+ protected void setBackgroundColor(Color color) {
+ if (primaryShape != null) {
+ primaryShape.setBackgroundColor(color);
+ }
+ }
+
+ /**
+ * @generated
+ */
+ protected void setLineWidth(int width) {
+ if (primaryShape instanceof Shape) {
+ ((Shape) primaryShape).setLineWidth(width);
+ }
+ }
+
+ /**
+ * @generated
+ */
+ protected void setLineType(int style) {
+ if (primaryShape instanceof Shape) {
+ ((Shape) primaryShape).setLineStyle(style);
+ }
+ }
+
+ /**
+ * @generated
+ */
+ public EditPart getPrimaryChildEditPart() {
+ return getChildBySemanticHint(ComrelVisualIDRegistry
+ .getType(ConditionalUnitNameType6EditPart.VISUAL_ID));
+ }
+
+ /**
+ * @generated
+ */
+ public class ConditionalUnitFigure extends RoundedRectangle {
+
+ /**
+ * @generated
+ */
+ private WrappingLabel fFigureConditionalUnitLabelFigure;
+ /**
+ * @generated
+ */
+ private RectangleFigure fConditionalUnitIfCompartmentFigure;
+ /**
+ * @generated
+ */
+ private RectangleFigure fConditionalUnitHelperUnitsCompartmentFigure;
+ /**
+ * @generated
+ */
+ private RectangleFigure fConditionalUnitThenCompartmentFigure;
+ /**
+ * @generated
+ */
+ private RectangleFigure fConditionalUnitElseCompartmentFigure;
+
+ /**
+ * @generated
+ */
+ public ConditionalUnitFigure() {
+ this.setCornerDimensions(new Dimension(getMapMode().DPtoLP(8),
+ getMapMode().DPtoLP(8)));
+ this.setBorder(new MarginBorder(getMapMode().DPtoLP(5),
+ getMapMode().DPtoLP(5), getMapMode().DPtoLP(5),
+ getMapMode().DPtoLP(5)));
+ createContents();
+ }
+
+ /**
+ * @generated
+ */
+ private void createContents() {
+
+ fFigureConditionalUnitLabelFigure = new WrappingLabel();
+ fFigureConditionalUnitLabelFigure.setText("ConditionalUnit");
+ fFigureConditionalUnitLabelFigure.setMaximumSize(new Dimension(
+ getMapMode().DPtoLP(10000), getMapMode().DPtoLP(50)));
+
+ this.add(fFigureConditionalUnitLabelFigure);
+
+ fConditionalUnitIfCompartmentFigure = new RectangleFigure();
+ fConditionalUnitIfCompartmentFigure.setOutline(false);
+
+ this.add(fConditionalUnitIfCompartmentFigure);
+
+ fConditionalUnitHelperUnitsCompartmentFigure = new RectangleFigure();
+ fConditionalUnitHelperUnitsCompartmentFigure.setOutline(false);
+
+ this.add(fConditionalUnitHelperUnitsCompartmentFigure);
+
+ fConditionalUnitThenCompartmentFigure = new RectangleFigure();
+ fConditionalUnitThenCompartmentFigure.setOutline(false);
+
+ this.add(fConditionalUnitThenCompartmentFigure);
+
+ fConditionalUnitElseCompartmentFigure = new RectangleFigure();
+ fConditionalUnitElseCompartmentFigure.setOutline(false);
+
+ this.add(fConditionalUnitElseCompartmentFigure);
+
+ }
+
+ /**
+ * @generated
+ */
+ public WrappingLabel getFigureConditionalUnitLabelFigure() {
+ return fFigureConditionalUnitLabelFigure;
+ }
+
+ /**
+ * @generated
+ */
+ public RectangleFigure getConditionalUnitIfCompartmentFigure() {
+ return fConditionalUnitIfCompartmentFigure;
+ }
+
+ /**
+ * @generated
+ */
+ public RectangleFigure getConditionalUnitHelperUnitsCompartmentFigure() {
+ return fConditionalUnitHelperUnitsCompartmentFigure;
+ }
+
+ /**
+ * @generated
+ */
+ public RectangleFigure getConditionalUnitThenCompartmentFigure() {
+ return fConditionalUnitThenCompartmentFigure;
+ }
+
+ /**
+ * @generated
+ */
+ public RectangleFigure getConditionalUnitElseCompartmentFigure() {
+ return fConditionalUnitElseCompartmentFigure;
+ }
+
+ }
+
+}
diff --git a/org.eclipse.emf.refactor.comrel.diagram/src/comrel/diagram/edit/parts/ConditionalUnit7EditPart.java b/org.eclipse.emf.refactor.comrel.diagram/src/comrel/diagram/edit/parts/ConditionalUnit7EditPart.java
new file mode 100644
index 0000000..8cbdf24
--- /dev/null
+++ b/org.eclipse.emf.refactor.comrel.diagram/src/comrel/diagram/edit/parts/ConditionalUnit7EditPart.java
@@ -0,0 +1,493 @@
+/*
+ *
+ */
+package comrel.diagram.edit.parts;
+
+import org.eclipse.draw2d.IFigure;
+import org.eclipse.draw2d.MarginBorder;
+import org.eclipse.draw2d.PositionConstants;
+import org.eclipse.draw2d.RectangleFigure;
+import org.eclipse.draw2d.RoundedRectangle;
+import org.eclipse.draw2d.Shape;
+import org.eclipse.draw2d.StackLayout;
+import org.eclipse.draw2d.geometry.Dimension;
+import org.eclipse.gef.EditPart;
+import org.eclipse.gef.EditPolicy;
+import org.eclipse.gef.Request;
+import org.eclipse.gef.commands.Command;
+import org.eclipse.gef.editpolicies.LayoutEditPolicy;
+import org.eclipse.gef.editpolicies.NonResizableEditPolicy;
+import org.eclipse.gef.requests.CreateRequest;
+import org.eclipse.gmf.runtime.diagram.ui.editparts.AbstractBorderedShapeEditPart;
+import org.eclipse.gmf.runtime.diagram.ui.editparts.IBorderItemEditPart;
+import org.eclipse.gmf.runtime.diagram.ui.editparts.IGraphicalEditPart;
+import org.eclipse.gmf.runtime.diagram.ui.editpolicies.BorderItemSelectionEditPolicy;
+import org.eclipse.gmf.runtime.diagram.ui.editpolicies.CreationEditPolicy;
+import org.eclipse.gmf.runtime.diagram.ui.editpolicies.DragDropEditPolicy;
+import org.eclipse.gmf.runtime.diagram.ui.editpolicies.EditPolicyRoles;
+import org.eclipse.gmf.runtime.diagram.ui.figures.BorderItemLocator;
+import org.eclipse.gmf.runtime.draw2d.ui.figures.ConstrainedToolbarLayout;
+import org.eclipse.gmf.runtime.draw2d.ui.figures.WrappingLabel;
+import org.eclipse.gmf.runtime.gef.ui.figures.DefaultSizeNodeFigure;
+import org.eclipse.gmf.runtime.gef.ui.figures.NodeFigure;
+import org.eclipse.gmf.runtime.notation.View;
+import org.eclipse.swt.graphics.Color;
+
+import comrel.diagram.edit.policies.ConditionalUnit7CanonicalEditPolicy;
+import comrel.diagram.edit.policies.ConditionalUnit7ItemSemanticEditPolicy;
+import comrel.diagram.edit.policies.OpenDiagramEditPolicy;
+import comrel.diagram.part.ComrelVisualIDRegistry;
+
+/**
+ * @generated
+ */
+public class ConditionalUnit7EditPart extends AbstractBorderedShapeEditPart {
+
+ /**
+ * @generated
+ */
+ public static final int VISUAL_ID = 3075;
+
+ /**
+ * @generated
+ */
+ protected IFigure contentPane;
+
+ /**
+ * @generated
+ */
+ protected IFigure primaryShape;
+
+ /**
+ * @generated
+ */
+ public ConditionalUnit7EditPart(View view) {
+ super(view);
+ }
+
+ /**
+ * @generated
+ */
+ protected void createDefaultEditPolicies() {
+ installEditPolicy(EditPolicyRoles.CREATION_ROLE,
+ new CreationEditPolicy());
+ super.createDefaultEditPolicies();
+ installEditPolicy(EditPolicyRoles.SEMANTIC_ROLE,
+ new ConditionalUnit7ItemSemanticEditPolicy());
+ installEditPolicy(EditPolicyRoles.DRAG_DROP_ROLE,
+ new DragDropEditPolicy());
+ installEditPolicy(EditPolicyRoles.CANONICAL_ROLE,
+ new ConditionalUnit7CanonicalEditPolicy());
+ installEditPolicy(EditPolicy.LAYOUT_ROLE, createLayoutEditPolicy());
+ installEditPolicy(EditPolicyRoles.OPEN_ROLE,
+ new OpenDiagramEditPolicy());
+ // XXX need an SCR to runtime to have another abstract superclass that would let children add reasonable editpolicies
+ // removeEditPolicy(org.eclipse.gmf.runtime.diagram.ui.editpolicies.EditPolicyRoles.CONNECTION_HANDLES_ROLE);
+ }
+
+ /**
+ * @generated
+ */
+ protected LayoutEditPolicy createLayoutEditPolicy() {
+ org.eclipse.gmf.runtime.diagram.ui.editpolicies.LayoutEditPolicy lep = new org.eclipse.gmf.runtime.diagram.ui.editpolicies.LayoutEditPolicy() {
+
+ protected EditPolicy createChildEditPolicy(EditPart child) {
+ View childView = (View) child.getModel();
+ switch (ComrelVisualIDRegistry.getVisualID(childView)) {
+ case SingleInputPort8EditPart.VISUAL_ID:
+ case MultiInputPort9EditPart.VISUAL_ID:
+ return new BorderItemSelectionEditPolicy();
+ }
+ EditPolicy result = child
+ .getEditPolicy(EditPolicy.PRIMARY_DRAG_ROLE);
+ if (result == null) {
+ result = new NonResizableEditPolicy();
+ }
+ return result;
+ }
+
+ protected Command getMoveChildrenCommand(Request request) {
+ return null;
+ }
+
+ protected Command getCreateCommand(CreateRequest request) {
+ return null;
+ }
+ };
+ return lep;
+ }
+
+ /**
+ * @generated
+ */
+ protected IFigure createNodeShape() {
+ return primaryShape = new ConditionalUnitFigure();
+ }
+
+ /**
+ * @generated
+ */
+ public ConditionalUnitFigure getPrimaryShape() {
+ return (ConditionalUnitFigure) primaryShape;
+ }
+
+ /**
+ * @generated
+ */
+ protected boolean addFixedChild(EditPart childEditPart) {
+ if (childEditPart instanceof ConditionalUnitNameType7EditPart) {
+ ((ConditionalUnitNameType7EditPart) childEditPart)
+ .setLabel(getPrimaryShape()
+ .getFigureConditionalUnitLabelFigure());
+ return true;
+ }
+ if (childEditPart instanceof ConditionalUnitConditionalUnitIfCompartment6EditPart) {
+ IFigure pane = getPrimaryShape()
+ .getConditionalUnitIfCompartmentFigure();
+ setupContentPane(pane); // FIXME each comparment should handle his content pane in his own way
+ pane.add(((ConditionalUnitConditionalUnitIfCompartment6EditPart) childEditPart)
+ .getFigure());
+ return true;
+ }
+ if (childEditPart instanceof ConditionalUnitConditionalUnitHelperUnitsCompartment6EditPart) {
+ IFigure pane = getPrimaryShape()
+ .getConditionalUnitHelperUnitsCompartmentFigure();
+ setupContentPane(pane); // FIXME each comparment should handle his content pane in his own way
+ pane.add(((ConditionalUnitConditionalUnitHelperUnitsCompartment6EditPart) childEditPart)
+ .getFigure());
+ return true;
+ }
+ if (childEditPart instanceof ConditionalUnitConditionalUnitThenCompartment6EditPart) {
+ IFigure pane = getPrimaryShape()
+ .getConditionalUnitThenCompartmentFigure();
+ setupContentPane(pane); // FIXME each comparment should handle his content pane in his own way
+ pane.add(((ConditionalUnitConditionalUnitThenCompartment6EditPart) childEditPart)
+ .getFigure());
+ return true;
+ }
+ if (childEditPart instanceof ConditionalUnitConditionalUnitElseCompartment6EditPart) {
+ IFigure pane = getPrimaryShape()
+ .getConditionalUnitElseCompartmentFigure();
+ setupContentPane(pane); // FIXME each comparment should handle his content pane in his own way
+ pane.add(((ConditionalUnitConditionalUnitElseCompartment6EditPart) childEditPart)
+ .getFigure());
+ return true;
+ }
+ if (childEditPart instanceof SingleInputPort8EditPart) {
+ BorderItemLocator locator = new BorderItemLocator(getMainFigure(),
+ PositionConstants.NONE);
+ getBorderedFigure().getBorderItemContainer().add(
+ ((SingleInputPort8EditPart) childEditPart).getFigure(),
+ locator);
+ return true;
+ }
+ if (childEditPart instanceof MultiInputPort9EditPart) {
+ BorderItemLocator locator = new BorderItemLocator(getMainFigure(),
+ PositionConstants.NONE);
+ getBorderedFigure().getBorderItemContainer().add(
+ ((MultiInputPort9EditPart) childEditPart).getFigure(),
+ locator);
+ return true;
+ }
+ return false;
+ }
+
+ /**
+ * @generated
+ */
+ protected boolean removeFixedChild(EditPart childEditPart) {
+ if (childEditPart instanceof ConditionalUnitNameType7EditPart) {
+ return true;
+ }
+ if (childEditPart instanceof ConditionalUnitConditionalUnitIfCompartment6EditPart) {
+ IFigure pane = getPrimaryShape()
+ .getConditionalUnitIfCompartmentFigure();
+ setupContentPane(pane); // FIXME each comparment should handle his content pane in his own way
+ pane.remove(((ConditionalUnitConditionalUnitIfCompartment6EditPart) childEditPart)
+ .getFigure());
+ return true;
+ }
+ if (childEditPart instanceof ConditionalUnitConditionalUnitHelperUnitsCompartment6EditPart) {
+ IFigure pane = getPrimaryShape()
+ .getConditionalUnitHelperUnitsCompartmentFigure();
+ setupContentPane(pane); // FIXME each comparment should handle his content pane in his own way
+ pane.remove(((ConditionalUnitConditionalUnitHelperUnitsCompartment6EditPart) childEditPart)
+ .getFigure());
+ return true;
+ }
+ if (childEditPart instanceof ConditionalUnitConditionalUnitThenCompartment6EditPart) {
+ IFigure pane = getPrimaryShape()
+ .getConditionalUnitThenCompartmentFigure();
+ setupContentPane(pane); // FIXME each comparment should handle his content pane in his own way
+ pane.remove(((ConditionalUnitConditionalUnitThenCompartment6EditPart) childEditPart)
+ .getFigure());
+ return true;
+ }
+ if (childEditPart instanceof ConditionalUnitConditionalUnitElseCompartment6EditPart) {
+ IFigure pane = getPrimaryShape()
+ .getConditionalUnitElseCompartmentFigure();
+ setupContentPane(pane); // FIXME each comparment should handle his content pane in his own way
+ pane.remove(((ConditionalUnitConditionalUnitElseCompartment6EditPart) childEditPart)
+ .getFigure());
+ return true;
+ }
+ if (childEditPart instanceof SingleInputPort8EditPart) {
+ getBorderedFigure().getBorderItemContainer().remove(
+ ((SingleInputPort8EditPart) childEditPart).getFigure());
+ return true;
+ }
+ if (childEditPart instanceof MultiInputPort9EditPart) {
+ getBorderedFigure().getBorderItemContainer().remove(
+ ((MultiInputPort9EditPart) childEditPart).getFigure());
+ return true;
+ }
+ return false;
+ }
+
+ /**
+ * @generated
+ */
+ protected void addChildVisual(EditPart childEditPart, int index) {
+ if (addFixedChild(childEditPart)) {
+ return;
+ }
+ super.addChildVisual(childEditPart, -1);
+ }
+
+ /**
+ * @generated
+ */
+ protected void removeChildVisual(EditPart childEditPart) {
+ if (removeFixedChild(childEditPart)) {
+ return;
+ }
+ super.removeChildVisual(childEditPart);
+ }
+
+ /**
+ * @generated
+ */
+ protected IFigure getContentPaneFor(IGraphicalEditPart editPart) {
+ if (editPart instanceof ConditionalUnitConditionalUnitIfCompartment6EditPart) {
+ return getPrimaryShape().getConditionalUnitIfCompartmentFigure();
+ }
+ if (editPart instanceof ConditionalUnitConditionalUnitHelperUnitsCompartment6EditPart) {
+ return getPrimaryShape()
+ .getConditionalUnitHelperUnitsCompartmentFigure();
+ }
+ if (editPart instanceof ConditionalUnitConditionalUnitThenCompartment6EditPart) {
+ return getPrimaryShape().getConditionalUnitThenCompartmentFigure();
+ }
+ if (editPart instanceof ConditionalUnitConditionalUnitElseCompartment6EditPart) {
+ return getPrimaryShape().getConditionalUnitElseCompartmentFigure();
+ }
+ if (editPart instanceof IBorderItemEditPart) {
+ return getBorderedFigure().getBorderItemContainer();
+ }
+ return getContentPane();
+ }
+
+ /**
+ * @generated
+ */
+ protected NodeFigure createNodePlate() {
+ DefaultSizeNodeFigure result = new DefaultSizeNodeFigure(40, 40);
+ return result;
+ }
+
+ /**
+ * Creates figure for this edit part.
+ *
+ * Body of this method does not depend on settings in generation model
+ * so you may safely remove <i>generated</i> tag and modify it.
+ *
+ * @generated
+ */
+ protected NodeFigure createMainFigure() {
+ NodeFigure figure = createNodePlate();
+ figure.setLayoutManager(new StackLayout());
+ IFigure shape = createNodeShape();
+ figure.add(shape);
+ contentPane = setupContentPane(shape);
+ return figure;
+ }
+
+ /**
+ * Default implementation treats passed figure as content pane.
+ * Respects layout one may have set for generated figure.
+ * @param nodeShape instance of generated figure class
+ * @generated
+ */
+ protected IFigure setupContentPane(IFigure nodeShape) {
+ if (nodeShape.getLayoutManager() == null) {
+ ConstrainedToolbarLayout layout = new ConstrainedToolbarLayout();
+ layout.setSpacing(5);
+ nodeShape.setLayoutManager(layout);
+ }
+ return nodeShape; // use nodeShape itself as contentPane
+ }
+
+ /**
+ * @generated
+ */
+ public IFigure getContentPane() {
+ if (contentPane != null) {
+ return contentPane;
+ }
+ return super.getContentPane();
+ }
+
+ /**
+ * @generated
+ */
+ protected void setForegroundColor(Color color) {
+ if (primaryShape != null) {
+ primaryShape.setForegroundColor(color);
+ }
+ }
+
+ /**
+ * @generated
+ */
+ protected void setBackgroundColor(Color color) {
+ if (primaryShape != null) {
+ primaryShape.setBackgroundColor(color);
+ }
+ }
+
+ /**
+ * @generated
+ */
+ protected void setLineWidth(int width) {
+ if (primaryShape instanceof Shape) {
+ ((Shape) primaryShape).setLineWidth(width);
+ }
+ }
+
+ /**
+ * @generated
+ */
+ protected void setLineType(int style) {
+ if (primaryShape instanceof Shape) {
+ ((Shape) primaryShape).setLineStyle(style);
+ }
+ }
+
+ /**
+ * @generated
+ */
+ public EditPart getPrimaryChildEditPart() {
+ return getChildBySemanticHint(ComrelVisualIDRegistry
+ .getType(ConditionalUnitNameType7EditPart.VISUAL_ID));
+ }
+
+ /**
+ * @generated
+ */
+ public class ConditionalUnitFigure extends RoundedRectangle {
+
+ /**
+ * @generated
+ */
+ private WrappingLabel fFigureConditionalUnitLabelFigure;
+ /**
+ * @generated
+ */
+ private RectangleFigure fConditionalUnitIfCompartmentFigure;
+ /**
+ * @generated
+ */
+ private RectangleFigure fConditionalUnitHelperUnitsCompartmentFigure;
+ /**
+ * @generated
+ */
+ private RectangleFigure fConditionalUnitThenCompartmentFigure;
+ /**
+ * @generated
+ */
+ private RectangleFigure fConditionalUnitElseCompartmentFigure;
+
+ /**
+ * @generated
+ */
+ public ConditionalUnitFigure() {
+ this.setCornerDimensions(new Dimension(getMapMode().DPtoLP(8),
+ getMapMode().DPtoLP(8)));
+ this.setBorder(new MarginBorder(getMapMode().DPtoLP(5),
+ getMapMode().DPtoLP(5), getMapMode().DPtoLP(5),
+ getMapMode().DPtoLP(5)));
+ createContents();
+ }
+
+ /**
+ * @generated
+ */
+ private void createContents() {
+
+ fFigureConditionalUnitLabelFigure = new WrappingLabel();
+ fFigureConditionalUnitLabelFigure.setText("ConditionalUnit");
+ fFigureConditionalUnitLabelFigure.setMaximumSize(new Dimension(
+ getMapMode().DPtoLP(10000), getMapMode().DPtoLP(50)));
+
+ this.add(fFigureConditionalUnitLabelFigure);
+
+ fConditionalUnitIfCompartmentFigure = new RectangleFigure();
+ fConditionalUnitIfCompartmentFigure.setOutline(false);
+
+ this.add(fConditionalUnitIfCompartmentFigure);
+
+ fConditionalUnitHelperUnitsCompartmentFigure = new RectangleFigure();
+ fConditionalUnitHelperUnitsCompartmentFigure.setOutline(false);
+
+ this.add(fConditionalUnitHelperUnitsCompartmentFigure);
+
+ fConditionalUnitThenCompartmentFigure = new RectangleFigure();
+ fConditionalUnitThenCompartmentFigure.setOutline(false);
+
+ this.add(fConditionalUnitThenCompartmentFigure);
+
+ fConditionalUnitElseCompartmentFigure = new RectangleFigure();
+ fConditionalUnitElseCompartmentFigure.setOutline(false);
+
+ this.add(fConditionalUnitElseCompartmentFigure);
+
+ }
+
+ /**
+ * @generated
+ */
+ public WrappingLabel getFigureConditionalUnitLabelFigure() {
+ return fFigureConditionalUnitLabelFigure;
+ }
+
+ /**
+ * @generated
+ */
+ public RectangleFigure getConditionalUnitIfCompartmentFigure() {
+ return fConditionalUnitIfCompartmentFigure;
+ }
+
+ /**
+ * @generated
+ */
+ public RectangleFigure getConditionalUnitHelperUnitsCompartmentFigure() {
+ return fConditionalUnitHelperUnitsCompartmentFigure;
+ }
+
+ /**
+ * @generated
+ */
+ public RectangleFigure getConditionalUnitThenCompartmentFigure() {
+ return fConditionalUnitThenCompartmentFigure;
+ }
+
+ /**
+ * @generated
+ */
+ public RectangleFigure getConditionalUnitElseCompartmentFigure() {
+ return fConditionalUnitElseCompartmentFigure;
+ }
+
+ }
+
+}
diff --git a/org.eclipse.emf.refactor.comrel.diagram/src/comrel/diagram/edit/parts/ConditionalUnitConditionalUnitElseCompartment2EditPart.java b/org.eclipse.emf.refactor.comrel.diagram/src/comrel/diagram/edit/parts/ConditionalUnitConditionalUnitElseCompartment2EditPart.java
new file mode 100644
index 0000000..200818d
--- /dev/null
+++ b/org.eclipse.emf.refactor.comrel.diagram/src/comrel/diagram/edit/parts/ConditionalUnitConditionalUnitElseCompartment2EditPart.java
@@ -0,0 +1,84 @@
+/*
+ *
+ */
+package comrel.diagram.edit.parts;
+
+import org.eclipse.draw2d.IFigure;
+import org.eclipse.gef.EditPolicy;
+import org.eclipse.gmf.runtime.diagram.ui.editparts.ShapeCompartmentEditPart;
+import org.eclipse.gmf.runtime.diagram.ui.editpolicies.CreationEditPolicy;
+import org.eclipse.gmf.runtime.diagram.ui.editpolicies.DragDropEditPolicy;
+import org.eclipse.gmf.runtime.diagram.ui.editpolicies.EditPolicyRoles;
+import org.eclipse.gmf.runtime.diagram.ui.editpolicies.ResizableCompartmentEditPolicy;
+import org.eclipse.gmf.runtime.diagram.ui.figures.ResizableCompartmentFigure;
+import org.eclipse.gmf.runtime.draw2d.ui.figures.ConstrainedToolbarLayout;
+import org.eclipse.gmf.runtime.notation.View;
+
+import comrel.diagram.edit.policies.ConditionalUnitConditionalUnitElseCompartment2CanonicalEditPolicy;
+import comrel.diagram.edit.policies.ConditionalUnitConditionalUnitElseCompartment2ItemSemanticEditPolicy;
+import comrel.diagram.part.Messages;
+
+/**
+ * @generated
+ */
+public class ConditionalUnitConditionalUnitElseCompartment2EditPart extends
+ ShapeCompartmentEditPart {
+
+ /**
+ * @generated
+ */
+ public static final int VISUAL_ID = 7038;
+
+ /**
+ * @generated
+ */
+ public ConditionalUnitConditionalUnitElseCompartment2EditPart(View view) {
+ super(view);
+ }
+
+ /**
+ * @generated
+ */
+ public String getCompartmentName() {
+ return Messages.ConditionalUnitConditionalUnitElseCompartment2EditPart_title;
+ }
+
+ /**
+ * @generated
+ */
+ public IFigure createFigure() {
+ ResizableCompartmentFigure result = (ResizableCompartmentFigure) super
+ .createFigure();
+ result.setTitleVisibility(false);
+ return result;
+ }
+
+ /**
+ * @generated
+ */
+ protected void createDefaultEditPolicies() {
+ super.createDefaultEditPolicies();
+ installEditPolicy(EditPolicy.PRIMARY_DRAG_ROLE,
+ new ResizableCompartmentEditPolicy());
+ installEditPolicy(
+ EditPolicyRoles.SEMANTIC_ROLE,
+ new ConditionalUnitConditionalUnitElseCompartment2ItemSemanticEditPolicy());
+ installEditPolicy(EditPolicyRoles.CREATION_ROLE,
+ new CreationEditPolicy());
+ installEditPolicy(EditPolicyRoles.DRAG_DROP_ROLE,
+ new DragDropEditPolicy());
+ installEditPolicy(
+ EditPolicyRoles.CANONICAL_ROLE,
+ new ConditionalUnitConditionalUnitElseCompartment2CanonicalEditPolicy());
+ }
+
+ /**
+ * @generated
+ */
+ protected void setRatio(Double ratio) {
+ if (getFigure().getParent().getLayoutManager() instanceof ConstrainedToolbarLayout) {
+ super.setRatio(ratio);
+ }
+ }
+
+}
diff --git a/org.eclipse.emf.refactor.comrel.diagram/src/comrel/diagram/edit/parts/ConditionalUnitConditionalUnitElseCompartment3EditPart.java b/org.eclipse.emf.refactor.comrel.diagram/src/comrel/diagram/edit/parts/ConditionalUnitConditionalUnitElseCompartment3EditPart.java
new file mode 100644
index 0000000..4cbc743
--- /dev/null
+++ b/org.eclipse.emf.refactor.comrel.diagram/src/comrel/diagram/edit/parts/ConditionalUnitConditionalUnitElseCompartment3EditPart.java
@@ -0,0 +1,84 @@
+/*
+ *
+ */
+package comrel.diagram.edit.parts;
+
+import org.eclipse.draw2d.IFigure;
+import org.eclipse.gef.EditPolicy;
+import org.eclipse.gmf.runtime.diagram.ui.editparts.ShapeCompartmentEditPart;
+import org.eclipse.gmf.runtime.diagram.ui.editpolicies.CreationEditPolicy;
+import org.eclipse.gmf.runtime.diagram.ui.editpolicies.DragDropEditPolicy;
+import org.eclipse.gmf.runtime.diagram.ui.editpolicies.EditPolicyRoles;
+import org.eclipse.gmf.runtime.diagram.ui.editpolicies.ResizableCompartmentEditPolicy;
+import org.eclipse.gmf.runtime.diagram.ui.figures.ResizableCompartmentFigure;
+import org.eclipse.gmf.runtime.draw2d.ui.figures.ConstrainedToolbarLayout;
+import org.eclipse.gmf.runtime.notation.View;
+
+import comrel.diagram.edit.policies.ConditionalUnitConditionalUnitElseCompartment3CanonicalEditPolicy;
+import comrel.diagram.edit.policies.ConditionalUnitConditionalUnitElseCompartment3ItemSemanticEditPolicy;
+import comrel.diagram.part.Messages;
+
+/**
+ * @generated
+ */
+public class ConditionalUnitConditionalUnitElseCompartment3EditPart extends
+ ShapeCompartmentEditPart {
+
+ /**
+ * @generated
+ */
+ public static final int VISUAL_ID = 7054;
+
+ /**
+ * @generated
+ */
+ public ConditionalUnitConditionalUnitElseCompartment3EditPart(View view) {
+ super(view);
+ }
+
+ /**
+ * @generated
+ */
+ public String getCompartmentName() {
+ return Messages.ConditionalUnitConditionalUnitElseCompartment3EditPart_title;
+ }
+
+ /**
+ * @generated
+ */
+ public IFigure createFigure() {
+ ResizableCompartmentFigure result = (ResizableCompartmentFigure) super
+ .createFigure();
+ result.setTitleVisibility(false);
+ return result;
+ }
+
+ /**
+ * @generated
+ */
+ protected void createDefaultEditPolicies() {
+ super.createDefaultEditPolicies();
+ installEditPolicy(EditPolicy.PRIMARY_DRAG_ROLE,
+ new ResizableCompartmentEditPolicy());
+ installEditPolicy(
+ EditPolicyRoles.SEMANTIC_ROLE,
+ new ConditionalUnitConditionalUnitElseCompartment3ItemSemanticEditPolicy());
+ installEditPolicy(EditPolicyRoles.CREATION_ROLE,
+ new CreationEditPolicy());
+ installEditPolicy(EditPolicyRoles.DRAG_DROP_ROLE,
+ new DragDropEditPolicy());
+ installEditPolicy(
+ EditPolicyRoles.CANONICAL_ROLE,
+ new ConditionalUnitConditionalUnitElseCompartment3CanonicalEditPolicy());
+ }
+
+ /**
+ * @generated
+ */
+ protected void setRatio(Double ratio) {
+ if (getFigure().getParent().getLayoutManager() instanceof ConstrainedToolbarLayout) {
+ super.setRatio(ratio);
+ }
+ }
+
+}
diff --git a/org.eclipse.emf.refactor.comrel.diagram/src/comrel/diagram/edit/parts/ConditionalUnitConditionalUnitElseCompartment4EditPart.java b/org.eclipse.emf.refactor.comrel.diagram/src/comrel/diagram/edit/parts/ConditionalUnitConditionalUnitElseCompartment4EditPart.java
new file mode 100644
index 0000000..cea3539
--- /dev/null
+++ b/org.eclipse.emf.refactor.comrel.diagram/src/comrel/diagram/edit/parts/ConditionalUnitConditionalUnitElseCompartment4EditPart.java
@@ -0,0 +1,84 @@
+/*
+ *
+ */
+package comrel.diagram.edit.parts;
+
+import org.eclipse.draw2d.IFigure;
+import org.eclipse.gef.EditPolicy;
+import org.eclipse.gmf.runtime.diagram.ui.editparts.ShapeCompartmentEditPart;
+import org.eclipse.gmf.runtime.diagram.ui.editpolicies.CreationEditPolicy;
+import org.eclipse.gmf.runtime.diagram.ui.editpolicies.DragDropEditPolicy;
+import org.eclipse.gmf.runtime.diagram.ui.editpolicies.EditPolicyRoles;
+import org.eclipse.gmf.runtime.diagram.ui.editpolicies.ResizableCompartmentEditPolicy;
+import org.eclipse.gmf.runtime.diagram.ui.figures.ResizableCompartmentFigure;
+import org.eclipse.gmf.runtime.draw2d.ui.figures.ConstrainedToolbarLayout;
+import org.eclipse.gmf.runtime.notation.View;
+
+import comrel.diagram.edit.policies.ConditionalUnitConditionalUnitElseCompartment4CanonicalEditPolicy;
+import comrel.diagram.edit.policies.ConditionalUnitConditionalUnitElseCompartment4ItemSemanticEditPolicy;
+import comrel.diagram.part.Messages;
+
+/**
+ * @generated
+ */
+public class ConditionalUnitConditionalUnitElseCompartment4EditPart extends
+ ShapeCompartmentEditPart {
+
+ /**
+ * @generated
+ */
+ public static final int VISUAL_ID = 7064;
+
+ /**
+ * @generated
+ */
+ public ConditionalUnitConditionalUnitElseCompartment4EditPart(View view) {
+ super(view);
+ }
+
+ /**
+ * @generated
+ */
+ public String getCompartmentName() {
+ return Messages.ConditionalUnitConditionalUnitElseCompartment4EditPart_title;
+ }
+
+ /**
+ * @generated
+ */
+ public IFigure createFigure() {
+ ResizableCompartmentFigure result = (ResizableCompartmentFigure) super
+ .createFigure();
+ result.setTitleVisibility(false);
+ return result;
+ }
+
+ /**
+ * @generated
+ */
+ protected void createDefaultEditPolicies() {
+ super.createDefaultEditPolicies();
+ installEditPolicy(EditPolicy.PRIMARY_DRAG_ROLE,
+ new ResizableCompartmentEditPolicy());
+ installEditPolicy(
+ EditPolicyRoles.SEMANTIC_ROLE,
+ new ConditionalUnitConditionalUnitElseCompartment4ItemSemanticEditPolicy());
+ installEditPolicy(EditPolicyRoles.CREATION_ROLE,
+ new CreationEditPolicy());
+ installEditPolicy(EditPolicyRoles.DRAG_DROP_ROLE,
+ new DragDropEditPolicy());
+ installEditPolicy(
+ EditPolicyRoles.CANONICAL_ROLE,
+ new ConditionalUnitConditionalUnitElseCompartment4CanonicalEditPolicy());
+ }
+
+ /**
+ * @generated
+ */
+ protected void setRatio(Double ratio) {
+ if (getFigure().getParent().getLayoutManager() instanceof ConstrainedToolbarLayout) {
+ super.setRatio(ratio);
+ }
+ }
+
+}
diff --git a/org.eclipse.emf.refactor.comrel.diagram/src/comrel/diagram/edit/parts/ConditionalUnitConditionalUnitElseCompartment5EditPart.java b/org.eclipse.emf.refactor.comrel.diagram/src/comrel/diagram/edit/parts/ConditionalUnitConditionalUnitElseCompartment5EditPart.java
new file mode 100644
index 0000000..081435d
--- /dev/null
+++ b/org.eclipse.emf.refactor.comrel.diagram/src/comrel/diagram/edit/parts/ConditionalUnitConditionalUnitElseCompartment5EditPart.java
@@ -0,0 +1,84 @@
+/*
+ *
+ */
+package comrel.diagram.edit.parts;
+
+import org.eclipse.draw2d.IFigure;
+import org.eclipse.gef.EditPolicy;
+import org.eclipse.gmf.runtime.diagram.ui.editparts.ShapeCompartmentEditPart;
+import org.eclipse.gmf.runtime.diagram.ui.editpolicies.CreationEditPolicy;
+import org.eclipse.gmf.runtime.diagram.ui.editpolicies.DragDropEditPolicy;
+import org.eclipse.gmf.runtime.diagram.ui.editpolicies.EditPolicyRoles;
+import org.eclipse.gmf.runtime.diagram.ui.editpolicies.ResizableCompartmentEditPolicy;
+import org.eclipse.gmf.runtime.diagram.ui.figures.ResizableCompartmentFigure;
+import org.eclipse.gmf.runtime.draw2d.ui.figures.ConstrainedToolbarLayout;
+import org.eclipse.gmf.runtime.notation.View;
+
+import comrel.diagram.edit.policies.ConditionalUnitConditionalUnitElseCompartment5CanonicalEditPolicy;
+import comrel.diagram.edit.policies.ConditionalUnitConditionalUnitElseCompartment5ItemSemanticEditPolicy;
+import comrel.diagram.part.Messages;
+
+/**
+ * @generated
+ */
+public class ConditionalUnitConditionalUnitElseCompartment5EditPart extends
+ ShapeCompartmentEditPart {
+
+ /**
+ * @generated
+ */
+ public static final int VISUAL_ID = 7068;
+
+ /**
+ * @generated
+ */
+ public ConditionalUnitConditionalUnitElseCompartment5EditPart(View view) {
+ super(view);
+ }
+
+ /**
+ * @generated
+ */
+ public String getCompartmentName() {
+ return Messages.ConditionalUnitConditionalUnitElseCompartment5EditPart_title;
+ }
+
+ /**
+ * @generated
+ */
+ public IFigure createFigure() {
+ ResizableCompartmentFigure result = (ResizableCompartmentFigure) super
+ .createFigure();
+ result.setTitleVisibility(false);
+ return result;
+ }
+
+ /**
+ * @generated
+ */
+ protected void createDefaultEditPolicies() {
+ super.createDefaultEditPolicies();
+ installEditPolicy(EditPolicy.PRIMARY_DRAG_ROLE,
+ new ResizableCompartmentEditPolicy());
+ installEditPolicy(
+ EditPolicyRoles.SEMANTIC_ROLE,
+ new ConditionalUnitConditionalUnitElseCompartment5ItemSemanticEditPolicy());
+ installEditPolicy(EditPolicyRoles.CREATION_ROLE,
+ new CreationEditPolicy());
+ installEditPolicy(EditPolicyRoles.DRAG_DROP_ROLE,
+ new DragDropEditPolicy());
+ installEditPolicy(
+ EditPolicyRoles.CANONICAL_ROLE,
+ new ConditionalUnitConditionalUnitElseCompartment5CanonicalEditPolicy());
+ }
+
+ /**
+ * @generated
+ */
+ protected void setRatio(Double ratio) {
+ if (getFigure().getParent().getLayoutManager() instanceof ConstrainedToolbarLayout) {
+ super.setRatio(ratio);
+ }
+ }
+
+}
diff --git a/org.eclipse.emf.refactor.comrel.diagram/src/comrel/diagram/edit/parts/ConditionalUnitConditionalUnitElseCompartment6EditPart.java b/org.eclipse.emf.refactor.comrel.diagram/src/comrel/diagram/edit/parts/ConditionalUnitConditionalUnitElseCompartment6EditPart.java
new file mode 100644
index 0000000..e643a1e
--- /dev/null
+++ b/org.eclipse.emf.refactor.comrel.diagram/src/comrel/diagram/edit/parts/ConditionalUnitConditionalUnitElseCompartment6EditPart.java
@@ -0,0 +1,84 @@
+/*
+ *
+ */
+package comrel.diagram.edit.parts;
+
+import org.eclipse.draw2d.IFigure;
+import org.eclipse.gef.EditPolicy;
+import org.eclipse.gmf.runtime.diagram.ui.editparts.ShapeCompartmentEditPart;
+import org.eclipse.gmf.runtime.diagram.ui.editpolicies.CreationEditPolicy;
+import org.eclipse.gmf.runtime.diagram.ui.editpolicies.DragDropEditPolicy;
+import org.eclipse.gmf.runtime.diagram.ui.editpolicies.EditPolicyRoles;
+import org.eclipse.gmf.runtime.diagram.ui.editpolicies.ResizableCompartmentEditPolicy;
+import org.eclipse.gmf.runtime.diagram.ui.figures.ResizableCompartmentFigure;
+import org.eclipse.gmf.runtime.draw2d.ui.figures.ConstrainedToolbarLayout;
+import org.eclipse.gmf.runtime.notation.View;
+
+import comrel.diagram.edit.policies.ConditionalUnitConditionalUnitElseCompartment6CanonicalEditPolicy;
+import comrel.diagram.edit.policies.ConditionalUnitConditionalUnitElseCompartment6ItemSemanticEditPolicy;
+import comrel.diagram.part.Messages;
+
+/**
+ * @generated
+ */
+public class ConditionalUnitConditionalUnitElseCompartment6EditPart extends
+ ShapeCompartmentEditPart {
+
+ /**
+ * @generated
+ */
+ public static final int VISUAL_ID = 7074;
+
+ /**
+ * @generated
+ */
+ public ConditionalUnitConditionalUnitElseCompartment6EditPart(View view) {
+ super(view);
+ }
+
+ /**
+ * @generated
+ */
+ public String getCompartmentName() {
+ return Messages.ConditionalUnitConditionalUnitElseCompartment6EditPart_title;
+ }
+
+ /**
+ * @generated
+ */
+ public IFigure createFigure() {
+ ResizableCompartmentFigure result = (ResizableCompartmentFigure) super
+ .createFigure();
+ result.setTitleVisibility(false);
+ return result;
+ }
+
+ /**
+ * @generated
+ */
+ protected void createDefaultEditPolicies() {
+ super.createDefaultEditPolicies();
+ installEditPolicy(EditPolicy.PRIMARY_DRAG_ROLE,
+ new ResizableCompartmentEditPolicy());
+ installEditPolicy(
+ EditPolicyRoles.SEMANTIC_ROLE,
+ new ConditionalUnitConditionalUnitElseCompartment6ItemSemanticEditPolicy());
+ installEditPolicy(EditPolicyRoles.CREATION_ROLE,
+ new CreationEditPolicy());
+ installEditPolicy(EditPolicyRoles.DRAG_DROP_ROLE,
+ new DragDropEditPolicy());
+ installEditPolicy(
+ EditPolicyRoles.CANONICAL_ROLE,
+ new ConditionalUnitConditionalUnitElseCompartment6CanonicalEditPolicy());
+ }
+
+ /**
+ * @generated
+ */
+ protected void setRatio(Double ratio) {
+ if (getFigure().getParent().getLayoutManager() instanceof ConstrainedToolbarLayout) {
+ super.setRatio(ratio);
+ }
+ }
+
+}
diff --git a/org.eclipse.emf.refactor.comrel.diagram/src/comrel/diagram/edit/parts/ConditionalUnitConditionalUnitElseCompartment7EditPart.java b/org.eclipse.emf.refactor.comrel.diagram/src/comrel/diagram/edit/parts/ConditionalUnitConditionalUnitElseCompartment7EditPart.java
new file mode 100644
index 0000000..90cbcc6
--- /dev/null
+++ b/org.eclipse.emf.refactor.comrel.diagram/src/comrel/diagram/edit/parts/ConditionalUnitConditionalUnitElseCompartment7EditPart.java
@@ -0,0 +1,84 @@
+/*
+ *
+ */
+package comrel.diagram.edit.parts;
+
+import org.eclipse.draw2d.IFigure;
+import org.eclipse.gef.EditPolicy;
+import org.eclipse.gmf.runtime.diagram.ui.editparts.ShapeCompartmentEditPart;
+import org.eclipse.gmf.runtime.diagram.ui.editpolicies.CreationEditPolicy;
+import org.eclipse.gmf.runtime.diagram.ui.editpolicies.DragDropEditPolicy;
+import org.eclipse.gmf.runtime.diagram.ui.editpolicies.EditPolicyRoles;
+import org.eclipse.gmf.runtime.diagram.ui.editpolicies.ResizableCompartmentEditPolicy;
+import org.eclipse.gmf.runtime.diagram.ui.figures.ResizableCompartmentFigure;
+import org.eclipse.gmf.runtime.draw2d.ui.figures.ConstrainedToolbarLayout;
+import org.eclipse.gmf.runtime.notation.View;
+
+import comrel.diagram.edit.policies.ConditionalUnitConditionalUnitElseCompartment7CanonicalEditPolicy;
+import comrel.diagram.edit.policies.ConditionalUnitConditionalUnitElseCompartment7ItemSemanticEditPolicy;
+import comrel.diagram.part.Messages;
+
+/**
+ * @generated
+ */
+public class ConditionalUnitConditionalUnitElseCompartment7EditPart extends
+ ShapeCompartmentEditPart {
+
+ /**
+ * @generated
+ */
+ public static final int VISUAL_ID = 7084;
+
+ /**
+ * @generated
+ */
+ public ConditionalUnitConditionalUnitElseCompartment7EditPart(View view) {
+ super(view);
+ }
+
+ /**
+ * @generated
+ */
+ public String getCompartmentName() {
+ return Messages.ConditionalUnitConditionalUnitElseCompartment7EditPart_title;
+ }
+
+ /**
+ * @generated
+ */
+ public IFigure createFigure() {
+ ResizableCompartmentFigure result = (ResizableCompartmentFigure) super
+ .createFigure();
+ result.setTitleVisibility(false);
+ return result;
+ }
+
+ /**
+ * @generated
+ */
+ protected void createDefaultEditPolicies() {
+ super.createDefaultEditPolicies();
+ installEditPolicy(EditPolicy.PRIMARY_DRAG_ROLE,
+ new ResizableCompartmentEditPolicy());
+ installEditPolicy(
+ EditPolicyRoles.SEMANTIC_ROLE,
+ new ConditionalUnitConditionalUnitElseCompartment7ItemSemanticEditPolicy());
+ installEditPolicy(EditPolicyRoles.CREATION_ROLE,
+ new CreationEditPolicy());
+ installEditPolicy(EditPolicyRoles.DRAG_DROP_ROLE,
+ new DragDropEditPolicy());
+ installEditPolicy(
+ EditPolicyRoles.CANONICAL_ROLE,
+ new ConditionalUnitConditionalUnitElseCompartment7CanonicalEditPolicy());
+ }
+
+ /**
+ * @generated
+ */
+ protected void setRatio(Double ratio) {
+ if (getFigure().getParent().getLayoutManager() instanceof ConstrainedToolbarLayout) {
+ super.setRatio(ratio);
+ }
+ }
+
+}
diff --git a/org.eclipse.emf.refactor.comrel.diagram/src/comrel/diagram/edit/parts/ConditionalUnitConditionalUnitElseCompartmentEditPart.java b/org.eclipse.emf.refactor.comrel.diagram/src/comrel/diagram/edit/parts/ConditionalUnitConditionalUnitElseCompartmentEditPart.java
new file mode 100644
index 0000000..cef8e31
--- /dev/null
+++ b/org.eclipse.emf.refactor.comrel.diagram/src/comrel/diagram/edit/parts/ConditionalUnitConditionalUnitElseCompartmentEditPart.java
@@ -0,0 +1,84 @@
+/*
+ *
+ */
+package comrel.diagram.edit.parts;
+
+import org.eclipse.draw2d.IFigure;
+import org.eclipse.gef.EditPolicy;
+import org.eclipse.gmf.runtime.diagram.ui.editparts.ShapeCompartmentEditPart;
+import org.eclipse.gmf.runtime.diagram.ui.editpolicies.CreationEditPolicy;
+import org.eclipse.gmf.runtime.diagram.ui.editpolicies.DragDropEditPolicy;
+import org.eclipse.gmf.runtime.diagram.ui.editpolicies.EditPolicyRoles;
+import org.eclipse.gmf.runtime.diagram.ui.editpolicies.ResizableCompartmentEditPolicy;
+import org.eclipse.gmf.runtime.diagram.ui.figures.ResizableCompartmentFigure;
+import org.eclipse.gmf.runtime.draw2d.ui.figures.ConstrainedToolbarLayout;
+import org.eclipse.gmf.runtime.notation.View;
+
+import comrel.diagram.edit.policies.ConditionalUnitConditionalUnitElseCompartmentCanonicalEditPolicy;
+import comrel.diagram.edit.policies.ConditionalUnitConditionalUnitElseCompartmentItemSemanticEditPolicy;
+import comrel.diagram.part.Messages;
+
+/**
+ * @generated
+ */
+public class ConditionalUnitConditionalUnitElseCompartmentEditPart extends
+ ShapeCompartmentEditPart {
+
+ /**
+ * @generated
+ */
+ public static final int VISUAL_ID = 7020;
+
+ /**
+ * @generated
+ */
+ public ConditionalUnitConditionalUnitElseCompartmentEditPart(View view) {
+ super(view);
+ }
+
+ /**
+ * @generated
+ */
+ public String getCompartmentName() {
+ return Messages.ConditionalUnitConditionalUnitElseCompartmentEditPart_title;
+ }
+
+ /**
+ * @generated
+ */
+ public IFigure createFigure() {
+ ResizableCompartmentFigure result = (ResizableCompartmentFigure) super
+ .createFigure();
+ result.setTitleVisibility(false);
+ return result;
+ }
+
+ /**
+ * @generated
+ */
+ protected void createDefaultEditPolicies() {
+ super.createDefaultEditPolicies();
+ installEditPolicy(EditPolicy.PRIMARY_DRAG_ROLE,
+ new ResizableCompartmentEditPolicy());
+ installEditPolicy(
+ EditPolicyRoles.SEMANTIC_ROLE,
+ new ConditionalUnitConditionalUnitElseCompartmentItemSemanticEditPolicy());
+ installEditPolicy(EditPolicyRoles.CREATION_ROLE,
+ new CreationEditPolicy());
+ installEditPolicy(EditPolicyRoles.DRAG_DROP_ROLE,
+ new DragDropEditPolicy());
+ installEditPolicy(
+ EditPolicyRoles.CANONICAL_ROLE,
+ new ConditionalUnitConditionalUnitElseCompartmentCanonicalEditPolicy());
+ }
+
+ /**
+ * @generated
+ */
+ protected void setRatio(Double ratio) {
+ if (getFigure().getParent().getLayoutManager() instanceof ConstrainedToolbarLayout) {
+ super.setRatio(ratio);
+ }
+ }
+
+}
diff --git a/org.eclipse.emf.refactor.comrel.diagram/src/comrel/diagram/edit/parts/ConditionalUnitConditionalUnitHelperUnitsCompartment2EditPart.java b/org.eclipse.emf.refactor.comrel.diagram/src/comrel/diagram/edit/parts/ConditionalUnitConditionalUnitHelperUnitsCompartment2EditPart.java
new file mode 100644
index 0000000..0b0beb1
--- /dev/null
+++ b/org.eclipse.emf.refactor.comrel.diagram/src/comrel/diagram/edit/parts/ConditionalUnitConditionalUnitHelperUnitsCompartment2EditPart.java
@@ -0,0 +1,85 @@
+/*
+ *
+ */
+package comrel.diagram.edit.parts;
+
+import org.eclipse.draw2d.IFigure;
+import org.eclipse.gef.EditPolicy;
+import org.eclipse.gmf.runtime.diagram.ui.editparts.ShapeCompartmentEditPart;
+import org.eclipse.gmf.runtime.diagram.ui.editpolicies.CreationEditPolicy;
+import org.eclipse.gmf.runtime.diagram.ui.editpolicies.DragDropEditPolicy;
+import org.eclipse.gmf.runtime.diagram.ui.editpolicies.EditPolicyRoles;
+import org.eclipse.gmf.runtime.diagram.ui.editpolicies.ResizableCompartmentEditPolicy;
+import org.eclipse.gmf.runtime.diagram.ui.figures.ResizableCompartmentFigure;
+import org.eclipse.gmf.runtime.draw2d.ui.figures.ConstrainedToolbarLayout;
+import org.eclipse.gmf.runtime.notation.View;
+
+import comrel.diagram.edit.policies.ConditionalUnitConditionalUnitHelperUnitsCompartment2CanonicalEditPolicy;
+import comrel.diagram.edit.policies.ConditionalUnitConditionalUnitHelperUnitsCompartment2ItemSemanticEditPolicy;
+import comrel.diagram.part.Messages;
+
+/**
+ * @generated
+ */
+public class ConditionalUnitConditionalUnitHelperUnitsCompartment2EditPart
+ extends ShapeCompartmentEditPart {
+
+ /**
+ * @generated
+ */
+ public static final int VISUAL_ID = 7036;
+
+ /**
+ * @generated
+ */
+ public ConditionalUnitConditionalUnitHelperUnitsCompartment2EditPart(
+ View view) {
+ super(view);
+ }
+
+ /**
+ * @generated
+ */
+ public String getCompartmentName() {
+ return Messages.ConditionalUnitConditionalUnitHelperUnitsCompartment2EditPart_title;
+ }
+
+ /**
+ * @generated
+ */
+ public IFigure createFigure() {
+ ResizableCompartmentFigure result = (ResizableCompartmentFigure) super
+ .createFigure();
+ result.setTitleVisibility(false);
+ return result;
+ }
+
+ /**
+ * @generated
+ */
+ protected void createDefaultEditPolicies() {
+ super.createDefaultEditPolicies();
+ installEditPolicy(EditPolicy.PRIMARY_DRAG_ROLE,
+ new ResizableCompartmentEditPolicy());
+ installEditPolicy(
+ EditPolicyRoles.SEMANTIC_ROLE,
+ new ConditionalUnitConditionalUnitHelperUnitsCompartment2ItemSemanticEditPolicy());
+ installEditPolicy(EditPolicyRoles.CREATION_ROLE,
+ new CreationEditPolicy());
+ installEditPolicy(EditPolicyRoles.DRAG_DROP_ROLE,
+ new DragDropEditPolicy());
+ installEditPolicy(
+ EditPolicyRoles.CANONICAL_ROLE,
+ new ConditionalUnitConditionalUnitHelperUnitsCompartment2CanonicalEditPolicy());
+ }
+
+ /**
+ * @generated
+ */
+ protected void setRatio(Double ratio) {
+ if (getFigure().getParent().getLayoutManager() instanceof ConstrainedToolbarLayout) {
+ super.setRatio(ratio);
+ }
+ }
+
+}
diff --git a/org.eclipse.emf.refactor.comrel.diagram/src/comrel/diagram/edit/parts/ConditionalUnitConditionalUnitHelperUnitsCompartment3EditPart.java b/org.eclipse.emf.refactor.comrel.diagram/src/comrel/diagram/edit/parts/ConditionalUnitConditionalUnitHelperUnitsCompartment3EditPart.java
new file mode 100644
index 0000000..4a265ca
--- /dev/null
+++ b/org.eclipse.emf.refactor.comrel.diagram/src/comrel/diagram/edit/parts/ConditionalUnitConditionalUnitHelperUnitsCompartment3EditPart.java
@@ -0,0 +1,85 @@
+/*
+ *
+ */
+package comrel.diagram.edit.parts;
+
+import org.eclipse.draw2d.IFigure;
+import org.eclipse.gef.EditPolicy;
+import org.eclipse.gmf.runtime.diagram.ui.editparts.ShapeCompartmentEditPart;
+import org.eclipse.gmf.runtime.diagram.ui.editpolicies.CreationEditPolicy;
+import org.eclipse.gmf.runtime.diagram.ui.editpolicies.DragDropEditPolicy;
+import org.eclipse.gmf.runtime.diagram.ui.editpolicies.EditPolicyRoles;
+import org.eclipse.gmf.runtime.diagram.ui.editpolicies.ResizableCompartmentEditPolicy;
+import org.eclipse.gmf.runtime.diagram.ui.figures.ResizableCompartmentFigure;
+import org.eclipse.gmf.runtime.draw2d.ui.figures.ConstrainedToolbarLayout;
+import org.eclipse.gmf.runtime.notation.View;
+
+import comrel.diagram.edit.policies.ConditionalUnitConditionalUnitHelperUnitsCompartment3CanonicalEditPolicy;
+import comrel.diagram.edit.policies.ConditionalUnitConditionalUnitHelperUnitsCompartment3ItemSemanticEditPolicy;
+import comrel.diagram.part.Messages;
+
+/**
+ * @generated
+ */
+public class ConditionalUnitConditionalUnitHelperUnitsCompartment3EditPart
+ extends ShapeCompartmentEditPart {
+
+ /**
+ * @generated
+ */
+ public static final int VISUAL_ID = 7052;
+
+ /**
+ * @generated
+ */
+ public ConditionalUnitConditionalUnitHelperUnitsCompartment3EditPart(
+ View view) {
+ super(view);
+ }
+
+ /**
+ * @generated
+ */
+ public String getCompartmentName() {
+ return Messages.ConditionalUnitConditionalUnitHelperUnitsCompartment3EditPart_title;
+ }
+
+ /**
+ * @generated
+ */
+ public IFigure createFigure() {
+ ResizableCompartmentFigure result = (ResizableCompartmentFigure) super
+ .createFigure();
+ result.setTitleVisibility(false);
+ return result;
+ }
+
+ /**
+ * @generated
+ */
+ protected void createDefaultEditPolicies() {
+ super.createDefaultEditPolicies();
+ installEditPolicy(EditPolicy.PRIMARY_DRAG_ROLE,
+ new ResizableCompartmentEditPolicy());
+ installEditPolicy(
+ EditPolicyRoles.SEMANTIC_ROLE,
+ new ConditionalUnitConditionalUnitHelperUnitsCompartment3ItemSemanticEditPolicy());
+ installEditPolicy(EditPolicyRoles.CREATION_ROLE,
+ new CreationEditPolicy());
+ installEditPolicy(EditPolicyRoles.DRAG_DROP_ROLE,
+ new DragDropEditPolicy());
+ installEditPolicy(
+ EditPolicyRoles.CANONICAL_ROLE,
+ new ConditionalUnitConditionalUnitHelperUnitsCompartment3CanonicalEditPolicy());
+ }
+
+ /**
+ * @generated
+ */
+ protected void setRatio(Double ratio) {
+ if (getFigure().getParent().getLayoutManager() instanceof ConstrainedToolbarLayout) {
+ super.setRatio(ratio);
+ }
+ }
+
+}
diff --git a/org.eclipse.emf.refactor.comrel.diagram/src/comrel/diagram/edit/parts/ConditionalUnitConditionalUnitHelperUnitsCompartment4EditPart.java b/org.eclipse.emf.refactor.comrel.diagram/src/comrel/diagram/edit/parts/ConditionalUnitConditionalUnitHelperUnitsCompartment4EditPart.java
new file mode 100644
index 0000000..cfde887
--- /dev/null
+++ b/org.eclipse.emf.refactor.comrel.diagram/src/comrel/diagram/edit/parts/ConditionalUnitConditionalUnitHelperUnitsCompartment4EditPart.java
@@ -0,0 +1,85 @@
+/*
+ *
+ */
+package comrel.diagram.edit.parts;
+
+import org.eclipse.draw2d.IFigure;
+import org.eclipse.gef.EditPolicy;
+import org.eclipse.gmf.runtime.diagram.ui.editparts.ShapeCompartmentEditPart;
+import org.eclipse.gmf.runtime.diagram.ui.editpolicies.CreationEditPolicy;
+import org.eclipse.gmf.runtime.diagram.ui.editpolicies.DragDropEditPolicy;
+import org.eclipse.gmf.runtime.diagram.ui.editpolicies.EditPolicyRoles;
+import org.eclipse.gmf.runtime.diagram.ui.editpolicies.ResizableCompartmentEditPolicy;
+import org.eclipse.gmf.runtime.diagram.ui.figures.ResizableCompartmentFigure;
+import org.eclipse.gmf.runtime.draw2d.ui.figures.ConstrainedToolbarLayout;
+import org.eclipse.gmf.runtime.notation.View;
+
+import comrel.diagram.edit.policies.ConditionalUnitConditionalUnitHelperUnitsCompartment4CanonicalEditPolicy;
+import comrel.diagram.edit.policies.ConditionalUnitConditionalUnitHelperUnitsCompartment4ItemSemanticEditPolicy;
+import comrel.diagram.part.Messages;
+
+/**
+ * @generated
+ */
+public class ConditionalUnitConditionalUnitHelperUnitsCompartment4EditPart
+ extends ShapeCompartmentEditPart {
+
+ /**
+ * @generated
+ */
+ public static final int VISUAL_ID = 7062;
+
+ /**
+ * @generated
+ */
+ public ConditionalUnitConditionalUnitHelperUnitsCompartment4EditPart(
+ View view) {
+ super(view);
+ }
+
+ /**
+ * @generated
+ */
+ public String getCompartmentName() {
+ return Messages.ConditionalUnitConditionalUnitHelperUnitsCompartment4EditPart_title;
+ }
+
+ /**
+ * @generated
+ */
+ public IFigure createFigure() {
+ ResizableCompartmentFigure result = (ResizableCompartmentFigure) super
+ .createFigure();
+ result.setTitleVisibility(false);
+ return result;
+ }
+
+ /**
+ * @generated
+ */
+ protected void createDefaultEditPolicies() {
+ super.createDefaultEditPolicies();
+ installEditPolicy(EditPolicy.PRIMARY_DRAG_ROLE,
+ new ResizableCompartmentEditPolicy());
+ installEditPolicy(
+ EditPolicyRoles.SEMANTIC_ROLE,
+ new ConditionalUnitConditionalUnitHelperUnitsCompartment4ItemSemanticEditPolicy());
+ installEditPolicy(EditPolicyRoles.CREATION_ROLE,
+ new CreationEditPolicy());
+ installEditPolicy(EditPolicyRoles.DRAG_DROP_ROLE,
+ new DragDropEditPolicy());
+ installEditPolicy(
+ EditPolicyRoles.CANONICAL_ROLE,
+ new ConditionalUnitConditionalUnitHelperUnitsCompartment4CanonicalEditPolicy());
+ }
+
+ /**
+ * @generated
+ */
+ protected void setRatio(Double ratio) {
+ if (getFigure().getParent().getLayoutManager() instanceof ConstrainedToolbarLayout) {
+ super.setRatio(ratio);
+ }
+ }
+
+}
diff --git a/org.eclipse.emf.refactor.comrel.diagram/src/comrel/diagram/edit/parts/ConditionalUnitConditionalUnitHelperUnitsCompartment5EditPart.java b/org.eclipse.emf.refactor.comrel.diagram/src/comrel/diagram/edit/parts/ConditionalUnitConditionalUnitHelperUnitsCompartment5EditPart.java
new file mode 100644
index 0000000..0666089
--- /dev/null
+++ b/org.eclipse.emf.refactor.comrel.diagram/src/comrel/diagram/edit/parts/ConditionalUnitConditionalUnitHelperUnitsCompartment5EditPart.java
@@ -0,0 +1,85 @@
+/*
+ *
+ */
+package comrel.diagram.edit.parts;
+
+import org.eclipse.draw2d.IFigure;
+import org.eclipse.gef.EditPolicy;
+import org.eclipse.gmf.runtime.diagram.ui.editparts.ShapeCompartmentEditPart;
+import org.eclipse.gmf.runtime.diagram.ui.editpolicies.CreationEditPolicy;
+import org.eclipse.gmf.runtime.diagram.ui.editpolicies.DragDropEditPolicy;
+import org.eclipse.gmf.runtime.diagram.ui.editpolicies.EditPolicyRoles;
+import org.eclipse.gmf.runtime.diagram.ui.editpolicies.ResizableCompartmentEditPolicy;
+import org.eclipse.gmf.runtime.diagram.ui.figures.ResizableCompartmentFigure;
+import org.eclipse.gmf.runtime.draw2d.ui.figures.ConstrainedToolbarLayout;
+import org.eclipse.gmf.runtime.notation.View;
+
+import comrel.diagram.edit.policies.ConditionalUnitConditionalUnitHelperUnitsCompartment5CanonicalEditPolicy;
+import comrel.diagram.edit.policies.ConditionalUnitConditionalUnitHelperUnitsCompartment5ItemSemanticEditPolicy;
+import comrel.diagram.part.Messages;
+
+/**
+ * @generated
+ */
+public class ConditionalUnitConditionalUnitHelperUnitsCompartment5EditPart
+ extends ShapeCompartmentEditPart {
+
+ /**
+ * @generated
+ */
+ public static final int VISUAL_ID = 7066;
+
+ /**
+ * @generated
+ */
+ public ConditionalUnitConditionalUnitHelperUnitsCompartment5EditPart(
+ View view) {
+ super(view);
+ }
+
+ /**
+ * @generated
+ */
+ public String getCompartmentName() {
+ return Messages.ConditionalUnitConditionalUnitHelperUnitsCompartment5EditPart_title;
+ }
+
+ /**
+ * @generated
+ */
+ public IFigure createFigure() {
+ ResizableCompartmentFigure result = (ResizableCompartmentFigure) super
+ .createFigure();
+ result.setTitleVisibility(false);
+ return result;
+ }
+
+ /**
+ * @generated
+ */
+ protected void createDefaultEditPolicies() {
+ super.createDefaultEditPolicies();
+ installEditPolicy(EditPolicy.PRIMARY_DRAG_ROLE,
+ new ResizableCompartmentEditPolicy());
+ installEditPolicy(
+ EditPolicyRoles.SEMANTIC_ROLE,
+ new ConditionalUnitConditionalUnitHelperUnitsCompartment5ItemSemanticEditPolicy());
+ installEditPolicy(EditPolicyRoles.CREATION_ROLE,
+ new CreationEditPolicy());
+ installEditPolicy(EditPolicyRoles.DRAG_DROP_ROLE,
+ new DragDropEditPolicy());
+ installEditPolicy(
+ EditPolicyRoles.CANONICAL_ROLE,
+ new ConditionalUnitConditionalUnitHelperUnitsCompartment5CanonicalEditPolicy());
+ }
+
+ /**
+ * @generated
+ */
+ protected void setRatio(Double ratio) {
+ if (getFigure().getParent().getLayoutManager() instanceof ConstrainedToolbarLayout) {
+ super.setRatio(ratio);
+ }
+ }
+
+}
diff --git a/org.eclipse.emf.refactor.comrel.diagram/src/comrel/diagram/edit/parts/ConditionalUnitConditionalUnitHelperUnitsCompartment6EditPart.java b/org.eclipse.emf.refactor.comrel.diagram/src/comrel/diagram/edit/parts/ConditionalUnitConditionalUnitHelperUnitsCompartment6EditPart.java
new file mode 100644
index 0000000..2d6c529
--- /dev/null
+++ b/org.eclipse.emf.refactor.comrel.diagram/src/comrel/diagram/edit/parts/ConditionalUnitConditionalUnitHelperUnitsCompartment6EditPart.java
@@ -0,0 +1,85 @@
+/*
+ *
+ */
+package comrel.diagram.edit.parts;
+
+import org.eclipse.draw2d.IFigure;
+import org.eclipse.gef.EditPolicy;
+import org.eclipse.gmf.runtime.diagram.ui.editparts.ShapeCompartmentEditPart;
+import org.eclipse.gmf.runtime.diagram.ui.editpolicies.CreationEditPolicy;
+import org.eclipse.gmf.runtime.diagram.ui.editpolicies.DragDropEditPolicy;
+import org.eclipse.gmf.runtime.diagram.ui.editpolicies.EditPolicyRoles;
+import org.eclipse.gmf.runtime.diagram.ui.editpolicies.ResizableCompartmentEditPolicy;
+import org.eclipse.gmf.runtime.diagram.ui.figures.ResizableCompartmentFigure;
+import org.eclipse.gmf.runtime.draw2d.ui.figures.ConstrainedToolbarLayout;
+import org.eclipse.gmf.runtime.notation.View;
+
+import comrel.diagram.edit.policies.ConditionalUnitConditionalUnitHelperUnitsCompartment6CanonicalEditPolicy;
+import comrel.diagram.edit.policies.ConditionalUnitConditionalUnitHelperUnitsCompartment6ItemSemanticEditPolicy;
+import comrel.diagram.part.Messages;
+
+/**
+ * @generated
+ */
+public class ConditionalUnitConditionalUnitHelperUnitsCompartment6EditPart
+ extends ShapeCompartmentEditPart {
+
+ /**
+ * @generated
+ */
+ public static final int VISUAL_ID = 7072;
+
+ /**
+ * @generated
+ */
+ public ConditionalUnitConditionalUnitHelperUnitsCompartment6EditPart(
+ View view) {
+ super(view);
+ }
+
+ /**
+ * @generated
+ */
+ public String getCompartmentName() {
+ return Messages.ConditionalUnitConditionalUnitHelperUnitsCompartment6EditPart_title;
+ }
+
+ /**
+ * @generated
+ */
+ public IFigure createFigure() {
+ ResizableCompartmentFigure result = (ResizableCompartmentFigure) super
+ .createFigure();
+ result.setTitleVisibility(false);
+ return result;
+ }
+
+ /**
+ * @generated
+ */
+ protected void createDefaultEditPolicies() {
+ super.createDefaultEditPolicies();
+ installEditPolicy(EditPolicy.PRIMARY_DRAG_ROLE,
+ new ResizableCompartmentEditPolicy());
+ installEditPolicy(
+ EditPolicyRoles.SEMANTIC_ROLE,
+ new ConditionalUnitConditionalUnitHelperUnitsCompartment6ItemSemanticEditPolicy());
+ installEditPolicy(EditPolicyRoles.CREATION_ROLE,
+ new CreationEditPolicy());
+ installEditPolicy(EditPolicyRoles.DRAG_DROP_ROLE,
+ new DragDropEditPolicy());
+ installEditPolicy(
+ EditPolicyRoles.CANONICAL_ROLE,
+ new ConditionalUnitConditionalUnitHelperUnitsCompartment6CanonicalEditPolicy());
+ }
+
+ /**
+ * @generated
+ */
+ protected void setRatio(Double ratio) {
+ if (getFigure().getParent().getLayoutManager() instanceof ConstrainedToolbarLayout) {
+ super.setRatio(ratio);
+ }
+ }
+
+}
diff --git a/org.eclipse.emf.refactor.comrel.diagram/src/comrel/diagram/edit/parts/ConditionalUnitConditionalUnitHelperUnitsCompartment7EditPart.java b/org.eclipse.emf.refactor.comrel.diagram/src/comrel/diagram/edit/parts/ConditionalUnitConditionalUnitHelperUnitsCompartment7EditPart.java
new file mode 100644
index 0000000..3690b62
--- /dev/null
+++ b/org.eclipse.emf.refactor.comrel.diagram/src/comrel/diagram/edit/parts/ConditionalUnitConditionalUnitHelperUnitsCompartment7EditPart.java
@@ -0,0 +1,85 @@
+/*
+ *
+ */
+package comrel.diagram.edit.parts;
+
+import org.eclipse.draw2d.IFigure;
+import org.eclipse.gef.EditPolicy;
+import org.eclipse.gmf.runtime.diagram.ui.editparts.ShapeCompartmentEditPart;
+import org.eclipse.gmf.runtime.diagram.ui.editpolicies.CreationEditPolicy;
+import org.eclipse.gmf.runtime.diagram.ui.editpolicies.DragDropEditPolicy;
+import org.eclipse.gmf.runtime.diagram.ui.editpolicies.EditPolicyRoles;
+import org.eclipse.gmf.runtime.diagram.ui.editpolicies.ResizableCompartmentEditPolicy;
+import org.eclipse.gmf.runtime.diagram.ui.figures.ResizableCompartmentFigure;
+import org.eclipse.gmf.runtime.draw2d.ui.figures.ConstrainedToolbarLayout;
+import org.eclipse.gmf.runtime.notation.View;
+
+import comrel.diagram.edit.policies.ConditionalUnitConditionalUnitHelperUnitsCompartment7CanonicalEditPolicy;
+import comrel.diagram.edit.policies.ConditionalUnitConditionalUnitHelperUnitsCompartment7ItemSemanticEditPolicy;
+import comrel.diagram.part.Messages;
+
+/**
+ * @generated
+ */
+public class ConditionalUnitConditionalUnitHelperUnitsCompartment7EditPart
+ extends ShapeCompartmentEditPart {
+
+ /**
+ * @generated
+ */
+ public static final int VISUAL_ID = 7082;
+
+ /**
+ * @generated
+ */
+ public ConditionalUnitConditionalUnitHelperUnitsCompartment7EditPart(
+ View view) {
+ super(view);
+ }
+
+ /**
+ * @generated
+ */
+ public String getCompartmentName() {
+ return Messages.ConditionalUnitConditionalUnitHelperUnitsCompartment7EditPart_title;
+ }
+
+ /**
+ * @generated
+ */
+ public IFigure createFigure() {
+ ResizableCompartmentFigure result = (ResizableCompartmentFigure) super
+ .createFigure();
+ result.setTitleVisibility(false);
+ return result;
+ }
+
+ /**
+ * @generated
+ */
+ protected void createDefaultEditPolicies() {
+ super.createDefaultEditPolicies();
+ installEditPolicy(EditPolicy.PRIMARY_DRAG_ROLE,
+ new ResizableCompartmentEditPolicy());
+ installEditPolicy(
+ EditPolicyRoles.SEMANTIC_ROLE,
+ new ConditionalUnitConditionalUnitHelperUnitsCompartment7ItemSemanticEditPolicy());
+ installEditPolicy(EditPolicyRoles.CREATION_ROLE,
+ new CreationEditPolicy());
+ installEditPolicy(EditPolicyRoles.DRAG_DROP_ROLE,
+ new DragDropEditPolicy());
+ installEditPolicy(
+ EditPolicyRoles.CANONICAL_ROLE,
+ new ConditionalUnitConditionalUnitHelperUnitsCompartment7CanonicalEditPolicy());
+ }
+
+ /**
+ * @generated
+ */
+ protected void setRatio(Double ratio) {
+ if (getFigure().getParent().getLayoutManager() instanceof ConstrainedToolbarLayout) {
+ super.setRatio(ratio);
+ }
+ }
+
+}
diff --git a/org.eclipse.emf.refactor.comrel.diagram/src/comrel/diagram/edit/parts/ConditionalUnitConditionalUnitHelperUnitsCompartmentEditPart.java b/org.eclipse.emf.refactor.comrel.diagram/src/comrel/diagram/edit/parts/ConditionalUnitConditionalUnitHelperUnitsCompartmentEditPart.java
new file mode 100644
index 0000000..123cb88
--- /dev/null
+++ b/org.eclipse.emf.refactor.comrel.diagram/src/comrel/diagram/edit/parts/ConditionalUnitConditionalUnitHelperUnitsCompartmentEditPart.java
@@ -0,0 +1,85 @@
+/*
+ *
+ */
+package comrel.diagram.edit.parts;
+
+import org.eclipse.draw2d.IFigure;
+import org.eclipse.gef.EditPolicy;
+import org.eclipse.gmf.runtime.diagram.ui.editparts.ShapeCompartmentEditPart;
+import org.eclipse.gmf.runtime.diagram.ui.editpolicies.CreationEditPolicy;
+import org.eclipse.gmf.runtime.diagram.ui.editpolicies.DragDropEditPolicy;
+import org.eclipse.gmf.runtime.diagram.ui.editpolicies.EditPolicyRoles;
+import org.eclipse.gmf.runtime.diagram.ui.editpolicies.ResizableCompartmentEditPolicy;
+import org.eclipse.gmf.runtime.diagram.ui.figures.ResizableCompartmentFigure;
+import org.eclipse.gmf.runtime.draw2d.ui.figures.ConstrainedToolbarLayout;
+import org.eclipse.gmf.runtime.notation.View;
+
+import comrel.diagram.edit.policies.ConditionalUnitConditionalUnitHelperUnitsCompartmentCanonicalEditPolicy;
+import comrel.diagram.edit.policies.ConditionalUnitConditionalUnitHelperUnitsCompartmentItemSemanticEditPolicy;
+import comrel.diagram.part.Messages;
+
+/**
+ * @generated
+ */
+public class ConditionalUnitConditionalUnitHelperUnitsCompartmentEditPart
+ extends ShapeCompartmentEditPart {
+
+ /**
+ * @generated
+ */
+ public static final int VISUAL_ID = 7018;
+
+ /**
+ * @generated
+ */
+ public ConditionalUnitConditionalUnitHelperUnitsCompartmentEditPart(
+ View view) {
+ super(view);
+ }
+
+ /**
+ * @generated
+ */
+ public String getCompartmentName() {
+ return Messages.ConditionalUnitConditionalUnitHelperUnitsCompartmentEditPart_title;
+ }
+
+ /**
+ * @generated
+ */
+ public IFigure createFigure() {
+ ResizableCompartmentFigure result = (ResizableCompartmentFigure) super
+ .createFigure();
+ result.setTitleVisibility(false);
+ return result;
+ }
+
+ /**
+ * @generated
+ */
+ protected void createDefaultEditPolicies() {
+ super.createDefaultEditPolicies();
+ installEditPolicy(EditPolicy.PRIMARY_DRAG_ROLE,
+ new ResizableCompartmentEditPolicy());
+ installEditPolicy(
+ EditPolicyRoles.SEMANTIC_ROLE,
+ new ConditionalUnitConditionalUnitHelperUnitsCompartmentItemSemanticEditPolicy());
+ installEditPolicy(EditPolicyRoles.CREATION_ROLE,
+ new CreationEditPolicy());
+ installEditPolicy(EditPolicyRoles.DRAG_DROP_ROLE,
+ new DragDropEditPolicy());
+ installEditPolicy(
+ EditPolicyRoles.CANONICAL_ROLE,
+ new ConditionalUnitConditionalUnitHelperUnitsCompartmentCanonicalEditPolicy());
+ }
+
+ /**
+ * @generated
+ */
+ protected void setRatio(Double ratio) {
+ if (getFigure().getParent().getLayoutManager() instanceof ConstrainedToolbarLayout) {
+ super.setRatio(ratio);
+ }
+ }
+
+}
diff --git a/org.eclipse.emf.refactor.comrel.diagram/src/comrel/diagram/edit/parts/ConditionalUnitConditionalUnitIfCompartment2EditPart.java b/org.eclipse.emf.refactor.comrel.diagram/src/comrel/diagram/edit/parts/ConditionalUnitConditionalUnitIfCompartment2EditPart.java
new file mode 100644
index 0000000..a1b9780
--- /dev/null
+++ b/org.eclipse.emf.refactor.comrel.diagram/src/comrel/diagram/edit/parts/ConditionalUnitConditionalUnitIfCompartment2EditPart.java
@@ -0,0 +1,84 @@
+/*
+ *
+ */
+package comrel.diagram.edit.parts;
+
+import org.eclipse.draw2d.IFigure;
+import org.eclipse.gef.EditPolicy;
+import org.eclipse.gmf.runtime.diagram.ui.editparts.ShapeCompartmentEditPart;
+import org.eclipse.gmf.runtime.diagram.ui.editpolicies.CreationEditPolicy;
+import org.eclipse.gmf.runtime.diagram.ui.editpolicies.DragDropEditPolicy;
+import org.eclipse.gmf.runtime.diagram.ui.editpolicies.EditPolicyRoles;
+import org.eclipse.gmf.runtime.diagram.ui.editpolicies.ResizableCompartmentEditPolicy;
+import org.eclipse.gmf.runtime.diagram.ui.figures.ResizableCompartmentFigure;
+import org.eclipse.gmf.runtime.draw2d.ui.figures.ConstrainedToolbarLayout;
+import org.eclipse.gmf.runtime.notation.View;
+
+import comrel.diagram.edit.policies.ConditionalUnitConditionalUnitIfCompartment2CanonicalEditPolicy;
+import comrel.diagram.edit.policies.ConditionalUnitConditionalUnitIfCompartment2ItemSemanticEditPolicy;
+import comrel.diagram.part.Messages;
+
+/**
+ * @generated
+ */
+public class ConditionalUnitConditionalUnitIfCompartment2EditPart extends
+ ShapeCompartmentEditPart {
+
+ /**
+ * @generated
+ */
+ public static final int VISUAL_ID = 7035;
+
+ /**
+ * @generated
+ */
+ public ConditionalUnitConditionalUnitIfCompartment2EditPart(View view) {
+ super(view);
+ }
+
+ /**
+ * @generated
+ */
+ public String getCompartmentName() {
+ return Messages.ConditionalUnitConditionalUnitIfCompartment2EditPart_title;
+ }
+
+ /**
+ * @generated
+ */
+ public IFigure createFigure() {
+ ResizableCompartmentFigure result = (ResizableCompartmentFigure) super
+ .createFigure();
+ result.setTitleVisibility(false);
+ return result;
+ }
+
+ /**
+ * @generated
+ */
+ protected void createDefaultEditPolicies() {
+ super.createDefaultEditPolicies();
+ installEditPolicy(EditPolicy.PRIMARY_DRAG_ROLE,
+ new ResizableCompartmentEditPolicy());
+ installEditPolicy(
+ EditPolicyRoles.SEMANTIC_ROLE,
+ new ConditionalUnitConditionalUnitIfCompartment2ItemSemanticEditPolicy());
+ installEditPolicy(EditPolicyRoles.CREATION_ROLE,
+ new CreationEditPolicy());
+ installEditPolicy(EditPolicyRoles.DRAG_DROP_ROLE,
+ new DragDropEditPolicy());
+ installEditPolicy(
+ EditPolicyRoles.CANONICAL_ROLE,
+ new ConditionalUnitConditionalUnitIfCompartment2CanonicalEditPolicy());
+ }
+
+ /**
+ * @generated
+ */
+ protected void setRatio(Double ratio) {
+ if (getFigure().getParent().getLayoutManager() instanceof ConstrainedToolbarLayout) {
+ super.setRatio(ratio);
+ }
+ }
+
+}
diff --git a/org.eclipse.emf.refactor.comrel.diagram/src/comrel/diagram/edit/parts/ConditionalUnitConditionalUnitIfCompartment3EditPart.java b/org.eclipse.emf.refactor.comrel.diagram/src/comrel/diagram/edit/parts/ConditionalUnitConditionalUnitIfCompartment3EditPart.java
new file mode 100644
index 0000000..deccc76
--- /dev/null
+++ b/org.eclipse.emf.refactor.comrel.diagram/src/comrel/diagram/edit/parts/ConditionalUnitConditionalUnitIfCompartment3EditPart.java
@@ -0,0 +1,84 @@
+/*
+ *
+ */
+package comrel.diagram.edit.parts;
+
+import org.eclipse.draw2d.IFigure;
+import org.eclipse.gef.EditPolicy;
+import org.eclipse.gmf.runtime.diagram.ui.editparts.ShapeCompartmentEditPart;
+import org.eclipse.gmf.runtime.diagram.ui.editpolicies.CreationEditPolicy;
+import org.eclipse.gmf.runtime.diagram.ui.editpolicies.DragDropEditPolicy;
+import org.eclipse.gmf.runtime.diagram.ui.editpolicies.EditPolicyRoles;
+import org.eclipse.gmf.runtime.diagram.ui.editpolicies.ResizableCompartmentEditPolicy;
+import org.eclipse.gmf.runtime.diagram.ui.figures.ResizableCompartmentFigure;
+import org.eclipse.gmf.runtime.draw2d.ui.figures.ConstrainedToolbarLayout;
+import org.eclipse.gmf.runtime.notation.View;
+
+import comrel.diagram.edit.policies.ConditionalUnitConditionalUnitIfCompartment3CanonicalEditPolicy;
+import comrel.diagram.edit.policies.ConditionalUnitConditionalUnitIfCompartment3ItemSemanticEditPolicy;
+import comrel.diagram.part.Messages;
+
+/**
+ * @generated
+ */
+public class ConditionalUnitConditionalUnitIfCompartment3EditPart extends
+ ShapeCompartmentEditPart {
+
+ /**
+ * @generated
+ */
+ public static final int VISUAL_ID = 7051;
+
+ /**
+ * @generated
+ */
+ public ConditionalUnitConditionalUnitIfCompartment3EditPart(View view) {
+ super(view);
+ }
+
+ /**
+ * @generated
+ */
+ public String getCompartmentName() {
+ return Messages.ConditionalUnitConditionalUnitIfCompartment3EditPart_title;
+ }
+
+ /**
+ * @generated
+ */
+ public IFigure createFigure() {
+ ResizableCompartmentFigure result = (ResizableCompartmentFigure) super
+ .createFigure();
+ result.setTitleVisibility(false);
+ return result;
+ }
+
+ /**
+ * @generated
+ */
+ protected void createDefaultEditPolicies() {
+ super.createDefaultEditPolicies();
+ installEditPolicy(EditPolicy.PRIMARY_DRAG_ROLE,
+ new ResizableCompartmentEditPolicy());
+ installEditPolicy(
+ EditPolicyRoles.SEMANTIC_ROLE,
+ new ConditionalUnitConditionalUnitIfCompartment3ItemSemanticEditPolicy());
+ installEditPolicy(EditPolicyRoles.CREATION_ROLE,
+ new CreationEditPolicy());
+ installEditPolicy(EditPolicyRoles.DRAG_DROP_ROLE,
+ new DragDropEditPolicy());
+ installEditPolicy(
+ EditPolicyRoles.CANONICAL_ROLE,
+ new ConditionalUnitConditionalUnitIfCompartment3CanonicalEditPolicy());
+ }
+
+ /**
+ * @generated
+ */
+ protected void setRatio(Double ratio) {
+ if (getFigure().getParent().getLayoutManager() instanceof ConstrainedToolbarLayout) {
+ super.setRatio(ratio);
+ }
+ }
+
+}
diff --git a/org.eclipse.emf.refactor.comrel.diagram/src/comrel/diagram/edit/parts/ConditionalUnitConditionalUnitIfCompartment4EditPart.java b/org.eclipse.emf.refactor.comrel.diagram/src/comrel/diagram/edit/parts/ConditionalUnitConditionalUnitIfCompartment4EditPart.java
new file mode 100644
index 0000000..2692cb4
--- /dev/null
+++ b/org.eclipse.emf.refactor.comrel.diagram/src/comrel/diagram/edit/parts/ConditionalUnitConditionalUnitIfCompartment4EditPart.java
@@ -0,0 +1,84 @@
+/*
+ *
+ */
+package comrel.diagram.edit.parts;
+
+import org.eclipse.draw2d.IFigure;
+import org.eclipse.gef.EditPolicy;
+import org.eclipse.gmf.runtime.diagram.ui.editparts.ShapeCompartmentEditPart;
+import org.eclipse.gmf.runtime.diagram.ui.editpolicies.CreationEditPolicy;
+import org.eclipse.gmf.runtime.diagram.ui.editpolicies.DragDropEditPolicy;
+import org.eclipse.gmf.runtime.diagram.ui.editpolicies.EditPolicyRoles;
+import org.eclipse.gmf.runtime.diagram.ui.editpolicies.ResizableCompartmentEditPolicy;
+import org.eclipse.gmf.runtime.diagram.ui.figures.ResizableCompartmentFigure;
+import org.eclipse.gmf.runtime.draw2d.ui.figures.ConstrainedToolbarLayout;
+import org.eclipse.gmf.runtime.notation.View;
+
+import comrel.diagram.edit.policies.ConditionalUnitConditionalUnitIfCompartment4CanonicalEditPolicy;
+import comrel.diagram.edit.policies.ConditionalUnitConditionalUnitIfCompartment4ItemSemanticEditPolicy;
+import comrel.diagram.part.Messages;
+
+/**
+ * @generated
+ */
+public class ConditionalUnitConditionalUnitIfCompartment4EditPart extends
+ ShapeCompartmentEditPart {
+
+ /**
+ * @generated
+ */
+ public static final int VISUAL_ID = 7061;
+
+ /**
+ * @generated
+ */
+ public ConditionalUnitConditionalUnitIfCompartment4EditPart(View view) {
+ super(view);
+ }
+
+ /**
+ * @generated
+ */
+ public String getCompartmentName() {
+ return Messages.ConditionalUnitConditionalUnitIfCompartment4EditPart_title;
+ }
+
+ /**
+ * @generated
+ */
+ public IFigure createFigure() {
+ ResizableCompartmentFigure result = (ResizableCompartmentFigure) super
+ .createFigure();
+ result.setTitleVisibility(false);
+ return result;
+ }
+
+ /**
+ * @generated
+ */
+ protected void createDefaultEditPolicies() {
+ super.createDefaultEditPolicies();
+ installEditPolicy(EditPolicy.PRIMARY_DRAG_ROLE,
+ new ResizableCompartmentEditPolicy());
+ installEditPolicy(
+ EditPolicyRoles.SEMANTIC_ROLE,
+ new ConditionalUnitConditionalUnitIfCompartment4ItemSemanticEditPolicy());
+ installEditPolicy(EditPolicyRoles.CREATION_ROLE,
+ new CreationEditPolicy());
+ installEditPolicy(EditPolicyRoles.DRAG_DROP_ROLE,
+ new DragDropEditPolicy());
+ installEditPolicy(
+ EditPolicyRoles.CANONICAL_ROLE,
+ new ConditionalUnitConditionalUnitIfCompartment4CanonicalEditPolicy());
+ }
+
+ /**
+ * @generated
+ */
+ protected void setRatio(Double ratio) {
+ if (getFigure().getParent().getLayoutManager() instanceof ConstrainedToolbarLayout) {
+ super.setRatio(ratio);
+ }
+ }
+
+}
diff --git a/org.eclipse.emf.refactor.comrel.diagram/src/comrel/diagram/edit/parts/ConditionalUnitConditionalUnitIfCompartment5EditPart.java b/org.eclipse.emf.refactor.comrel.diagram/src/comrel/diagram/edit/parts/ConditionalUnitConditionalUnitIfCompartment5EditPart.java
new file mode 100644
index 0000000..ad6ed24
--- /dev/null
+++ b/org.eclipse.emf.refactor.comrel.diagram/src/comrel/diagram/edit/parts/ConditionalUnitConditionalUnitIfCompartment5EditPart.java
@@ -0,0 +1,84 @@
+/*
+ *
+ */
+package comrel.diagram.edit.parts;
+
+import org.eclipse.draw2d.IFigure;
+import org.eclipse.gef.EditPolicy;
+import org.eclipse.gmf.runtime.diagram.ui.editparts.ShapeCompartmentEditPart;
+import org.eclipse.gmf.runtime.diagram.ui.editpolicies.CreationEditPolicy;
+import org.eclipse.gmf.runtime.diagram.ui.editpolicies.DragDropEditPolicy;
+import org.eclipse.gmf.runtime.diagram.ui.editpolicies.EditPolicyRoles;
+import org.eclipse.gmf.runtime.diagram.ui.editpolicies.ResizableCompartmentEditPolicy;
+import org.eclipse.gmf.runtime.diagram.ui.figures.ResizableCompartmentFigure;
+import org.eclipse.gmf.runtime.draw2d.ui.figures.ConstrainedToolbarLayout;
+import org.eclipse.gmf.runtime.notation.View;
+
+import comrel.diagram.edit.policies.ConditionalUnitConditionalUnitIfCompartment5CanonicalEditPolicy;
+import comrel.diagram.edit.policies.ConditionalUnitConditionalUnitIfCompartment5ItemSemanticEditPolicy;
+import comrel.diagram.part.Messages;
+
+/**
+ * @generated
+ */
+public class ConditionalUnitConditionalUnitIfCompartment5EditPart extends
+ ShapeCompartmentEditPart {
+
+ /**
+ * @generated
+ */
+ public static final int VISUAL_ID = 7065;
+
+ /**
+ * @generated
+ */
+ public ConditionalUnitConditionalUnitIfCompartment5EditPart(View view) {
+ super(view);
+ }
+
+ /**
+ * @generated
+ */
+ public String getCompartmentName() {
+ return Messages.ConditionalUnitConditionalUnitIfCompartment5EditPart_title;
+ }
+
+ /**
+ * @generated
+ */
+ public IFigure createFigure() {
+ ResizableCompartmentFigure result = (ResizableCompartmentFigure) super
+ .createFigure();
+ result.setTitleVisibility(false);
+ return result;
+ }
+
+ /**
+ * @generated
+ */
+ protected void createDefaultEditPolicies() {
+ super.createDefaultEditPolicies();
+ installEditPolicy(EditPolicy.PRIMARY_DRAG_ROLE,
+ new ResizableCompartmentEditPolicy());
+ installEditPolicy(
+ EditPolicyRoles.SEMANTIC_ROLE,
+ new ConditionalUnitConditionalUnitIfCompartment5ItemSemanticEditPolicy());
+ installEditPolicy(EditPolicyRoles.CREATION_ROLE,
+ new CreationEditPolicy());
+ installEditPolicy(EditPolicyRoles.DRAG_DROP_ROLE,
+ new DragDropEditPolicy());
+ installEditPolicy(
+ EditPolicyRoles.CANONICAL_ROLE,
+ new ConditionalUnitConditionalUnitIfCompartment5CanonicalEditPolicy());
+ }
+
+ /**
+ * @generated
+ */
+ protected void setRatio(Double ratio) {
+ if (getFigure().getParent().getLayoutManager() instanceof ConstrainedToolbarLayout) {
+ super.setRatio(ratio);
+ }
+ }
+
+}
diff --git a/org.eclipse.emf.refactor.comrel.diagram/src/comrel/diagram/edit/parts/ConditionalUnitConditionalUnitIfCompartment6EditPart.java b/org.eclipse.emf.refactor.comrel.diagram/src/comrel/diagram/edit/parts/ConditionalUnitConditionalUnitIfCompartment6EditPart.java
new file mode 100644
index 0000000..38d3f6c
--- /dev/null
+++ b/org.eclipse.emf.refactor.comrel.diagram/src/comrel/diagram/edit/parts/ConditionalUnitConditionalUnitIfCompartment6EditPart.java
@@ -0,0 +1,84 @@
+/*
+ *
+ */
+package comrel.diagram.edit.parts;
+
+import org.eclipse.draw2d.IFigure;
+import org.eclipse.gef.EditPolicy;
+import org.eclipse.gmf.runtime.diagram.ui.editparts.ShapeCompartmentEditPart;
+import org.eclipse.gmf.runtime.diagram.ui.editpolicies.CreationEditPolicy;
+import org.eclipse.gmf.runtime.diagram.ui.editpolicies.DragDropEditPolicy;
+import org.eclipse.gmf.runtime.diagram.ui.editpolicies.EditPolicyRoles;
+import org.eclipse.gmf.runtime.diagram.ui.editpolicies.ResizableCompartmentEditPolicy;
+import org.eclipse.gmf.runtime.diagram.ui.figures.ResizableCompartmentFigure;
+import org.eclipse.gmf.runtime.draw2d.ui.figures.ConstrainedToolbarLayout;
+import org.eclipse.gmf.runtime.notation.View;
+
+import comrel.diagram.edit.policies.ConditionalUnitConditionalUnitIfCompartment6CanonicalEditPolicy;
+import comrel.diagram.edit.policies.ConditionalUnitConditionalUnitIfCompartment6ItemSemanticEditPolicy;
+import comrel.diagram.part.Messages;
+
+/**
+ * @generated
+ */
+public class ConditionalUnitConditionalUnitIfCompartment6EditPart extends
+ ShapeCompartmentEditPart {
+
+ /**
+ * @generated
+ */
+ public static final int VISUAL_ID = 7071;
+
+ /**
+ * @generated
+ */
+ public ConditionalUnitConditionalUnitIfCompartment6EditPart(View view) {
+ super(view);
+ }
+
+ /**
+ * @generated
+ */
+ public String getCompartmentName() {
+ return Messages.ConditionalUnitConditionalUnitIfCompartment6EditPart_title;
+ }
+
+ /**
+ * @generated
+ */
+ public IFigure createFigure() {
+ ResizableCompartmentFigure result = (ResizableCompartmentFigure) super
+ .createFigure();
+ result.setTitleVisibility(false);
+ return result;
+ }
+
+ /**
+ * @generated
+ */
+ protected void createDefaultEditPolicies() {
+ super.createDefaultEditPolicies();
+ installEditPolicy(EditPolicy.PRIMARY_DRAG_ROLE,
+ new ResizableCompartmentEditPolicy());
+ installEditPolicy(
+ EditPolicyRoles.SEMANTIC_ROLE,
+ new ConditionalUnitConditionalUnitIfCompartment6ItemSemanticEditPolicy());
+ installEditPolicy(EditPolicyRoles.CREATION_ROLE,
+ new CreationEditPolicy());
+ installEditPolicy(EditPolicyRoles.DRAG_DROP_ROLE,
+ new DragDropEditPolicy());
+ installEditPolicy(
+ EditPolicyRoles.CANONICAL_ROLE,
+ new ConditionalUnitConditionalUnitIfCompartment6CanonicalEditPolicy());
+ }
+
+ /**
+ * @generated
+ */
+ protected void setRatio(Double ratio) {
+ if (getFigure().getParent().getLayoutManager() instanceof ConstrainedToolbarLayout) {
+ super.setRatio(ratio);
+ }
+ }
+
+}
diff --git a/org.eclipse.emf.refactor.comrel.diagram/src/comrel/diagram/edit/parts/ConditionalUnitConditionalUnitIfCompartment7EditPart.java b/org.eclipse.emf.refactor.comrel.diagram/src/comrel/diagram/edit/parts/ConditionalUnitConditionalUnitIfCompartment7EditPart.java
new file mode 100644
index 0000000..63ec946
--- /dev/null
+++ b/org.eclipse.emf.refactor.comrel.diagram/src/comrel/diagram/edit/parts/ConditionalUnitConditionalUnitIfCompartment7EditPart.java
@@ -0,0 +1,84 @@
+/*
+ *
+ */
+package comrel.diagram.edit.parts;
+
+import org.eclipse.draw2d.IFigure;
+import org.eclipse.gef.EditPolicy;
+import org.eclipse.gmf.runtime.diagram.ui.editparts.ShapeCompartmentEditPart;
+import org.eclipse.gmf.runtime.diagram.ui.editpolicies.CreationEditPolicy;
+import org.eclipse.gmf.runtime.diagram.ui.editpolicies.DragDropEditPolicy;
+import org.eclipse.gmf.runtime.diagram.ui.editpolicies.EditPolicyRoles;
+import org.eclipse.gmf.runtime.diagram.ui.editpolicies.ResizableCompartmentEditPolicy;
+import org.eclipse.gmf.runtime.diagram.ui.figures.ResizableCompartmentFigure;
+import org.eclipse.gmf.runtime.draw2d.ui.figures.ConstrainedToolbarLayout;
+import org.eclipse.gmf.runtime.notation.View;
+
+import comrel.diagram.edit.policies.ConditionalUnitConditionalUnitIfCompartment7CanonicalEditPolicy;
+import comrel.diagram.edit.policies.ConditionalUnitConditionalUnitIfCompartment7ItemSemanticEditPolicy;
+import comrel.diagram.part.Messages;
+
+/**
+ * @generated
+ */
+public class ConditionalUnitConditionalUnitIfCompartment7EditPart extends
+ ShapeCompartmentEditPart {
+
+ /**
+ * @generated
+ */
+ public static final int VISUAL_ID = 7081;
+
+ /**
+ * @generated
+ */
+ public ConditionalUnitConditionalUnitIfCompartment7EditPart(View view) {
+ super(view);
+ }
+
+ /**
+ * @generated
+ */
+ public String getCompartmentName() {
+ return Messages.ConditionalUnitConditionalUnitIfCompartment7EditPart_title;
+ }
+
+ /**
+ * @generated
+ */
+ public IFigure createFigure() {
+ ResizableCompartmentFigure result = (ResizableCompartmentFigure) super
+ .createFigure();
+ result.setTitleVisibility(false);
+ return result;
+ }
+
+ /**
+ * @generated
+ */
+ protected void createDefaultEditPolicies() {
+ super.createDefaultEditPolicies();
+ installEditPolicy(EditPolicy.PRIMARY_DRAG_ROLE,
+ new ResizableCompartmentEditPolicy());
+ installEditPolicy(
+ EditPolicyRoles.SEMANTIC_ROLE,
+ new ConditionalUnitConditionalUnitIfCompartment7ItemSemanticEditPolicy());
+ installEditPolicy(EditPolicyRoles.CREATION_ROLE,
+ new CreationEditPolicy());
+ installEditPolicy(EditPolicyRoles.DRAG_DROP_ROLE,
+ new DragDropEditPolicy());
+ installEditPolicy(
+ EditPolicyRoles.CANONICAL_ROLE,
+ new ConditionalUnitConditionalUnitIfCompartment7CanonicalEditPolicy());
+ }
+
+ /**
+ * @generated
+ */
+ protected void setRatio(Double ratio) {
+ if (getFigure().getParent().getLayoutManager() instanceof ConstrainedToolbarLayout) {
+ super.setRatio(ratio);
+ }
+ }
+
+}
diff --git a/org.eclipse.emf.refactor.comrel.diagram/src/comrel/diagram/edit/parts/ConditionalUnitConditionalUnitIfCompartmentEditPart.java b/org.eclipse.emf.refactor.comrel.diagram/src/comrel/diagram/edit/parts/ConditionalUnitConditionalUnitIfCompartmentEditPart.java
new file mode 100644
index 0000000..e7ce2b1
--- /dev/null
+++ b/org.eclipse.emf.refactor.comrel.diagram/src/comrel/diagram/edit/parts/ConditionalUnitConditionalUnitIfCompartmentEditPart.java
@@ -0,0 +1,84 @@
+/*
+ *
+ */
+package comrel.diagram.edit.parts;
+
+import org.eclipse.draw2d.IFigure;
+import org.eclipse.gef.EditPolicy;
+import org.eclipse.gmf.runtime.diagram.ui.editparts.ShapeCompartmentEditPart;
+import org.eclipse.gmf.runtime.diagram.ui.editpolicies.CreationEditPolicy;
+import org.eclipse.gmf.runtime.diagram.ui.editpolicies.DragDropEditPolicy;
+import org.eclipse.gmf.runtime.diagram.ui.editpolicies.EditPolicyRoles;
+import org.eclipse.gmf.runtime.diagram.ui.editpolicies.ResizableCompartmentEditPolicy;
+import org.eclipse.gmf.runtime.diagram.ui.figures.ResizableCompartmentFigure;
+import org.eclipse.gmf.runtime.draw2d.ui.figures.ConstrainedToolbarLayout;
+import org.eclipse.gmf.runtime.notation.View;
+
+import comrel.diagram.edit.policies.ConditionalUnitConditionalUnitIfCompartmentCanonicalEditPolicy;
+import comrel.diagram.edit.policies.ConditionalUnitConditionalUnitIfCompartmentItemSemanticEditPolicy;
+import comrel.diagram.part.Messages;
+
+/**
+ * @generated
+ */
+public class ConditionalUnitConditionalUnitIfCompartmentEditPart extends
+ ShapeCompartmentEditPart {
+
+ /**
+ * @generated
+ */
+ public static final int VISUAL_ID = 7017;
+
+ /**
+ * @generated
+ */
+ public ConditionalUnitConditionalUnitIfCompartmentEditPart(View view) {
+ super(view);
+ }
+
+ /**
+ * @generated
+ */
+ public String getCompartmentName() {
+ return Messages.ConditionalUnitConditionalUnitIfCompartmentEditPart_title;
+ }
+
+ /**
+ * @generated
+ */
+ public IFigure createFigure() {
+ ResizableCompartmentFigure result = (ResizableCompartmentFigure) super
+ .createFigure();
+ result.setTitleVisibility(false);
+ return result;
+ }
+
+ /**
+ * @generated
+ */
+ protected void createDefaultEditPolicies() {
+ super.createDefaultEditPolicies();
+ installEditPolicy(EditPolicy.PRIMARY_DRAG_ROLE,
+ new ResizableCompartmentEditPolicy());
+ installEditPolicy(
+ EditPolicyRoles.SEMANTIC_ROLE,
+ new ConditionalUnitConditionalUnitIfCompartmentItemSemanticEditPolicy());
+ installEditPolicy(EditPolicyRoles.CREATION_ROLE,
+ new CreationEditPolicy());
+ installEditPolicy(EditPolicyRoles.DRAG_DROP_ROLE,
+ new DragDropEditPolicy());
+ installEditPolicy(
+ EditPolicyRoles.CANONICAL_ROLE,
+ new ConditionalUnitConditionalUnitIfCompartmentCanonicalEditPolicy());
+ }
+
+ /**
+ * @generated
+ */
+ protected void setRatio(Double ratio) {
+ if (getFigure().getParent().getLayoutManager() instanceof ConstrainedToolbarLayout) {
+ super.setRatio(ratio);
+ }
+ }
+
+}
diff --git a/org.eclipse.emf.refactor.comrel.diagram/src/comrel/diagram/edit/parts/ConditionalUnitConditionalUnitThenCompartment2EditPart.java b/org.eclipse.emf.refactor.comrel.diagram/src/comrel/diagram/edit/parts/ConditionalUnitConditionalUnitThenCompartment2EditPart.java
new file mode 100644
index 0000000..59f2eae
--- /dev/null
+++ b/org.eclipse.emf.refactor.comrel.diagram/src/comrel/diagram/edit/parts/ConditionalUnitConditionalUnitThenCompartment2EditPart.java
@@ -0,0 +1,84 @@
+/*
+ *
+ */
+package comrel.diagram.edit.parts;
+
+import org.eclipse.draw2d.IFigure;
+import org.eclipse.gef.EditPolicy;
+import org.eclipse.gmf.runtime.diagram.ui.editparts.ShapeCompartmentEditPart;
+import org.eclipse.gmf.runtime.diagram.ui.editpolicies.CreationEditPolicy;
+import org.eclipse.gmf.runtime.diagram.ui.editpolicies.DragDropEditPolicy;
+import org.eclipse.gmf.runtime.diagram.ui.editpolicies.EditPolicyRoles;
+import org.eclipse.gmf.runtime.diagram.ui.editpolicies.ResizableCompartmentEditPolicy;
+import org.eclipse.gmf.runtime.diagram.ui.figures.ResizableCompartmentFigure;
+import org.eclipse.gmf.runtime.draw2d.ui.figures.ConstrainedToolbarLayout;
+import org.eclipse.gmf.runtime.notation.View;
+
+import comrel.diagram.edit.policies.ConditionalUnitConditionalUnitThenCompartment2CanonicalEditPolicy;
+import comrel.diagram.edit.policies.ConditionalUnitConditionalUnitThenCompartment2ItemSemanticEditPolicy;
+import comrel.diagram.part.Messages;
+
+/**
+ * @generated
+ */
+public class ConditionalUnitConditionalUnitThenCompartment2EditPart extends
+ ShapeCompartmentEditPart {
+
+ /**
+ * @generated
+ */
+ public static final int VISUAL_ID = 7037;
+
+ /**
+ * @generated
+ */
+ public ConditionalUnitConditionalUnitThenCompartment2EditPart(View view) {
+ super(view);
+ }
+
+ /**
+ * @generated
+ */
+ public String getCompartmentName() {
+ return Messages.ConditionalUnitConditionalUnitThenCompartment2EditPart_title;
+ }
+
+ /**
+ * @generated
+ */
+ public IFigure createFigure() {
+ ResizableCompartmentFigure result = (ResizableCompartmentFigure) super
+ .createFigure();
+ result.setTitleVisibility(false);
+ return result;
+ }
+
+ /**
+ * @generated
+ */
+ protected void createDefaultEditPolicies() {
+ super.createDefaultEditPolicies();
+ installEditPolicy(EditPolicy.PRIMARY_DRAG_ROLE,
+ new ResizableCompartmentEditPolicy());
+ installEditPolicy(
+ EditPolicyRoles.SEMANTIC_ROLE,
+ new ConditionalUnitConditionalUnitThenCompartment2ItemSemanticEditPolicy());
+ installEditPolicy(EditPolicyRoles.CREATION_ROLE,
+ new CreationEditPolicy());
+ installEditPolicy(EditPolicyRoles.DRAG_DROP_ROLE,
+ new DragDropEditPolicy());
+ installEditPolicy(
+ EditPolicyRoles.CANONICAL_ROLE,
+ new ConditionalUnitConditionalUnitThenCompartment2CanonicalEditPolicy());
+ }
+
+ /**
+ * @generated
+ */
+ protected void setRatio(Double ratio) {
+ if (getFigure().getParent().getLayoutManager() instanceof ConstrainedToolbarLayout) {
+ super.setRatio(ratio);
+ }
+ }
+
+}
diff --git a/org.eclipse.emf.refactor.comrel.diagram/src/comrel/diagram/edit/parts/ConditionalUnitConditionalUnitThenCompartment3EditPart.java b/org.eclipse.emf.refactor.comrel.diagram/src/comrel/diagram/edit/parts/ConditionalUnitConditionalUnitThenCompartment3EditPart.java
new file mode 100644
index 0000000..53032b8
--- /dev/null
+++ b/org.eclipse.emf.refactor.comrel.diagram/src/comrel/diagram/edit/parts/ConditionalUnitConditionalUnitThenCompartment3EditPart.java
@@ -0,0 +1,84 @@
+/*
+ *
+ */
+package comrel.diagram.edit.parts;
+
+import org.eclipse.draw2d.IFigure;
+import org.eclipse.gef.EditPolicy;
+import org.eclipse.gmf.runtime.diagram.ui.editparts.ShapeCompartmentEditPart;
+import org.eclipse.gmf.runtime.diagram.ui.editpolicies.CreationEditPolicy;
+import org.eclipse.gmf.runtime.diagram.ui.editpolicies.DragDropEditPolicy;
+import org.eclipse.gmf.runtime.diagram.ui.editpolicies.EditPolicyRoles;
+import org.eclipse.gmf.runtime.diagram.ui.editpolicies.ResizableCompartmentEditPolicy;
+import org.eclipse.gmf.runtime.diagram.ui.figures.ResizableCompartmentFigure;
+import org.eclipse.gmf.runtime.draw2d.ui.figures.ConstrainedToolbarLayout;
+import org.eclipse.gmf.runtime.notation.View;
+
+import comrel.diagram.edit.policies.ConditionalUnitConditionalUnitThenCompartment3CanonicalEditPolicy;
+import comrel.diagram.edit.policies.ConditionalUnitConditionalUnitThenCompartment3ItemSemanticEditPolicy;
+import comrel.diagram.part.Messages;
+
+/**
+ * @generated
+ */
+public class ConditionalUnitConditionalUnitThenCompartment3EditPart extends
+ ShapeCompartmentEditPart {
+
+ /**
+ * @generated
+ */
+ public static final int VISUAL_ID = 7053;
+
+ /**
+ * @generated
+ */
+ public ConditionalUnitConditionalUnitThenCompartment3EditPart(View view) {
+ super(view);
+ }
+
+ /**
+ * @generated
+ */
+ public String getCompartmentName() {
+ return Messages.ConditionalUnitConditionalUnitThenCompartment3EditPart_title;
+ }
+
+ /**
+ * @generated
+ */
+ public IFigure createFigure() {
+ ResizableCompartmentFigure result = (ResizableCompartmentFigure) super
+ .createFigure();
+ result.setTitleVisibility(false);
+ return result;
+ }
+
+ /**
+ * @generated
+ */
+ protected void createDefaultEditPolicies() {
+ super.createDefaultEditPolicies();
+ installEditPolicy(EditPolicy.PRIMARY_DRAG_ROLE,
+ new ResizableCompartmentEditPolicy());
+ installEditPolicy(
+ EditPolicyRoles.SEMANTIC_ROLE,
+ new ConditionalUnitConditionalUnitThenCompartment3ItemSemanticEditPolicy());
+ installEditPolicy(EditPolicyRoles.CREATION_ROLE,
+ new CreationEditPolicy());
+ installEditPolicy(EditPolicyRoles.DRAG_DROP_ROLE,
+ new DragDropEditPolicy());
+ installEditPolicy(
+ EditPolicyRoles.CANONICAL_ROLE,
+ new ConditionalUnitConditionalUnitThenCompartment3CanonicalEditPolicy());
+ }
+
+ /**
+ * @generated
+ */
+ protected void setRatio(Double ratio) {
+ if (getFigure().getParent().getLayoutManager() instanceof ConstrainedToolbarLayout) {
+ super.setRatio(ratio);
+ }
+ }
+
+}
diff --git a/org.eclipse.emf.refactor.comrel.diagram/src/comrel/diagram/edit/parts/ConditionalUnitConditionalUnitThenCompartment4EditPart.java b/org.eclipse.emf.refactor.comrel.diagram/src/comrel/diagram/edit/parts/ConditionalUnitConditionalUnitThenCompartment4EditPart.java
new file mode 100644
index 0000000..e521b3e
--- /dev/null
+++ b/org.eclipse.emf.refactor.comrel.diagram/src/comrel/diagram/edit/parts/ConditionalUnitConditionalUnitThenCompartment4EditPart.java
@@ -0,0 +1,84 @@
+/*
+ *
+ */
+package comrel.diagram.edit.parts;
+
+import org.eclipse.draw2d.IFigure;
+import org.eclipse.gef.EditPolicy;
+import org.eclipse.gmf.runtime.diagram.ui.editparts.ShapeCompartmentEditPart;
+import org.eclipse.gmf.runtime.diagram.ui.editpolicies.CreationEditPolicy;
+import org.eclipse.gmf.runtime.diagram.ui.editpolicies.DragDropEditPolicy;
+import org.eclipse.gmf.runtime.diagram.ui.editpolicies.EditPolicyRoles;
+import org.eclipse.gmf.runtime.diagram.ui.editpolicies.ResizableCompartmentEditPolicy;
+import org.eclipse.gmf.runtime.diagram.ui.figures.ResizableCompartmentFigure;
+import org.eclipse.gmf.runtime.draw2d.ui.figures.ConstrainedToolbarLayout;
+import org.eclipse.gmf.runtime.notation.View;
+
+import comrel.diagram.edit.policies.ConditionalUnitConditionalUnitThenCompartment4CanonicalEditPolicy;
+import comrel.diagram.edit.policies.ConditionalUnitConditionalUnitThenCompartment4ItemSemanticEditPolicy;
+import comrel.diagram.part.Messages;
+
+/**
+ * @generated
+ */
+public class ConditionalUnitConditionalUnitThenCompartment4EditPart extends
+ ShapeCompartmentEditPart {
+
+ /**
+ * @generated
+ */
+ public static final int VISUAL_ID = 7063;
+
+ /**
+ * @generated
+ */
+ public ConditionalUnitConditionalUnitThenCompartment4EditPart(View view) {
+ super(view);
+ }
+
+ /**
+ * @generated
+ */
+ public String getCompartmentName() {
+ return Messages.ConditionalUnitConditionalUnitThenCompartment4EditPart_title;
+ }
+
+ /**
+ * @generated
+ */
+ public IFigure createFigure() {
+ ResizableCompartmentFigure result = (ResizableCompartmentFigure) super
+ .createFigure();
+ result.setTitleVisibility(false);
+ return result;
+ }
+
+ /**
+ * @generated
+ */
+ protected void createDefaultEditPolicies() {
+ super.createDefaultEditPolicies();
+ installEditPolicy(EditPolicy.PRIMARY_DRAG_ROLE,
+ new ResizableCompartmentEditPolicy());
+ installEditPolicy(
+ EditPolicyRoles.SEMANTIC_ROLE,
+ new ConditionalUnitConditionalUnitThenCompartment4ItemSemanticEditPolicy());
+ installEditPolicy(EditPolicyRoles.CREATION_ROLE,
+ new CreationEditPolicy());
+ installEditPolicy(EditPolicyRoles.DRAG_DROP_ROLE,
+ new DragDropEditPolicy());
+ installEditPolicy(
+ EditPolicyRoles.CANONICAL_ROLE,
+ new ConditionalUnitConditionalUnitThenCompartment4CanonicalEditPolicy());
+ }
+
+ /**
+ * @generated
+ */
+ protected void setRatio(Double ratio) {
+ if (getFigure().getParent().getLayoutManager() instanceof ConstrainedToolbarLayout) {
+ super.setRatio(ratio);
+ }
+ }
+
+}
diff --git a/org.eclipse.emf.refactor.comrel.diagram/src/comrel/diagram/edit/parts/ConditionalUnitConditionalUnitThenCompartment5EditPart.java b/org.eclipse.emf.refactor.comrel.diagram/src/comrel/diagram/edit/parts/ConditionalUnitConditionalUnitThenCompartment5EditPart.java
new file mode 100644
index 0000000..e4acd48
--- /dev/null
+++ b/org.eclipse.emf.refactor.comrel.diagram/src/comrel/diagram/edit/parts/ConditionalUnitConditionalUnitThenCompartment5EditPart.java
@@ -0,0 +1,84 @@
+/*
+ *
+ */
+package comrel.diagram.edit.parts;
+
+import org.eclipse.draw2d.IFigure;
+import org.eclipse.gef.EditPolicy;
+import org.eclipse.gmf.runtime.diagram.ui.editparts.ShapeCompartmentEditPart;
+import org.eclipse.gmf.runtime.diagram.ui.editpolicies.CreationEditPolicy;
+import org.eclipse.gmf.runtime.diagram.ui.editpolicies.DragDropEditPolicy;
+import org.eclipse.gmf.runtime.diagram.ui.editpolicies.EditPolicyRoles;
+import org.eclipse.gmf.runtime.diagram.ui.editpolicies.ResizableCompartmentEditPolicy;
+import org.eclipse.gmf.runtime.diagram.ui.figures.ResizableCompartmentFigure;
+import org.eclipse.gmf.runtime.draw2d.ui.figures.ConstrainedToolbarLayout;
+import org.eclipse.gmf.runtime.notation.View;
+
+import comrel.diagram.edit.policies.ConditionalUnitConditionalUnitThenCompartment5CanonicalEditPolicy;
+import comrel.diagram.edit.policies.ConditionalUnitConditionalUnitThenCompartment5ItemSemanticEditPolicy;
+import comrel.diagram.part.Messages;
+
+/**
+ * @generated
+ */
+public class ConditionalUnitConditionalUnitThenCompartment5EditPart extends
+ ShapeCompartmentEditPart {
+
+ /**
+ * @generated
+ */
+ public static final int VISUAL_ID = 7067;
+
+ /**
+ * @generated
+ */
+ public ConditionalUnitConditionalUnitThenCompartment5EditPart(View view) {
+ super(view);
+ }
+
+ /**
+ * @generated
+ */
+ public String getCompartmentName() {
+ return Messages.ConditionalUnitConditionalUnitThenCompartment5EditPart_title;
+ }
+
+ /**
+ * @generated
+ */
+ public IFigure createFigure() {
+ ResizableCompartmentFigure result = (ResizableCompartmentFigure) super
+ .createFigure();
+ result.setTitleVisibility(false);
+ return result;
+ }
+
+ /**
+ * @generated
+ */
+ protected void createDefaultEditPolicies() {
+ super.createDefaultEditPolicies();
+ installEditPolicy(EditPolicy.PRIMARY_DRAG_ROLE,
+ new ResizableCompartmentEditPolicy());
+ installEditPolicy(
+ EditPolicyRoles.SEMANTIC_ROLE,
+ new ConditionalUnitConditionalUnitThenCompartment5ItemSemanticEditPolicy());
+ installEditPolicy(EditPolicyRoles.CREATION_ROLE,
+ new CreationEditPolicy());
+ installEditPolicy(EditPolicyRoles.DRAG_DROP_ROLE,
+ new DragDropEditPolicy());
+ installEditPolicy(
+ EditPolicyRoles.CANONICAL_ROLE,
+ new ConditionalUnitConditionalUnitThenCompartment5CanonicalEditPolicy());
+ }
+
+ /**
+ * @generated
+ */
+ protected void setRatio(Double ratio) {
+ if (getFigure().getParent().getLayoutManager() instanceof ConstrainedToolbarLayout) {
+ super.setRatio(ratio);
+ }
+ }
+
+}
diff --git a/org.eclipse.emf.refactor.comrel.diagram/src/comrel/diagram/edit/parts/ConditionalUnitConditionalUnitThenCompartment6EditPart.java b/org.eclipse.emf.refactor.comrel.diagram/src/comrel/diagram/edit/parts/ConditionalUnitConditionalUnitThenCompartment6EditPart.java
new file mode 100644
index 0000000..94f12ca
--- /dev/null
+++ b/org.eclipse.emf.refactor.comrel.diagram/src/comrel/diagram/edit/parts/ConditionalUnitConditionalUnitThenCompartment6EditPart.java
@@ -0,0 +1,84 @@
+/*
+ *
+ */
+package comrel.diagram.edit.parts;
+
+import org.eclipse.draw2d.IFigure;
+import org.eclipse.gef.EditPolicy;
+import org.eclipse.gmf.runtime.diagram.ui.editparts.ShapeCompartmentEditPart;
+import org.eclipse.gmf.runtime.diagram.ui.editpolicies.CreationEditPolicy;
+import org.eclipse.gmf.runtime.diagram.ui.editpolicies.DragDropEditPolicy;
+import org.eclipse.gmf.runtime.diagram.ui.editpolicies.EditPolicyRoles;
+import org.eclipse.gmf.runtime.diagram.ui.editpolicies.ResizableCompartmentEditPolicy;
+import org.eclipse.gmf.runtime.diagram.ui.figures.ResizableCompartmentFigure;
+import org.eclipse.gmf.runtime.draw2d.ui.figures.ConstrainedToolbarLayout;
+import org.eclipse.gmf.runtime.notation.View;
+
+import comrel.diagram.edit.policies.ConditionalUnitConditionalUnitThenCompartment6CanonicalEditPolicy;
+import comrel.diagram.edit.policies.ConditionalUnitConditionalUnitThenCompartment6ItemSemanticEditPolicy;
+import comrel.diagram.part.Messages;
+
+/**
+ * @generated
+ */
+public class ConditionalUnitConditionalUnitThenCompartment6EditPart extends
+ ShapeCompartmentEditPart {
+
+ /**
+ * @generated
+ */
+ public static final int VISUAL_ID = 7073;
+
+ /**
+ * @generated
+ */
+ public ConditionalUnitConditionalUnitThenCompartment6EditPart(View view) {
+ super(view);
+ }
+
+ /**
+ * @generated
+ */
+ public String getCompartmentName() {
+ return Messages.ConditionalUnitConditionalUnitThenCompartment6EditPart_title;
+ }
+
+ /**
+ * @generated
+ */
+ public IFigure createFigure() {
+ ResizableCompartmentFigure result = (ResizableCompartmentFigure) super
+ .createFigure();
+ result.setTitleVisibility(false);
+ return result;
+ }
+
+ /**
+ * @generated
+ */
+ protected void createDefaultEditPolicies() {
+ super.createDefaultEditPolicies();
+ installEditPolicy(EditPolicy.PRIMARY_DRAG_ROLE,
+ new ResizableCompartmentEditPolicy());
+ installEditPolicy(
+ EditPolicyRoles.SEMANTIC_ROLE,
+ new ConditionalUnitConditionalUnitThenCompartment6ItemSemanticEditPolicy());
+ installEditPolicy(EditPolicyRoles.CREATION_ROLE,
+ new CreationEditPolicy());
+ installEditPolicy(EditPolicyRoles.DRAG_DROP_ROLE,
+ new DragDropEditPolicy());
+ installEditPolicy(
+ EditPolicyRoles.CANONICAL_ROLE,
+ new ConditionalUnitConditionalUnitThenCompartment6CanonicalEditPolicy());
+ }
+
+ /**
+ * @generated
+ */
+ protected void setRatio(Double ratio) {
+ if (getFigure().getParent().getLayoutManager() instanceof ConstrainedToolbarLayout) {
+ super.setRatio(ratio);
+ }
+ }
+
+}
diff --git a/org.eclipse.emf.refactor.comrel.diagram/src/comrel/diagram/edit/parts/ConditionalUnitConditionalUnitThenCompartment7EditPart.java b/org.eclipse.emf.refactor.comrel.diagram/src/comrel/diagram/edit/parts/ConditionalUnitConditionalUnitThenCompartment7EditPart.java
new file mode 100644
index 0000000..7f430f2
--- /dev/null
+++ b/org.eclipse.emf.refactor.comrel.diagram/src/comrel/diagram/edit/parts/ConditionalUnitConditionalUnitThenCompartment7EditPart.java
@@ -0,0 +1,84 @@
+/*
+ *
+ */
+package comrel.diagram.edit.parts;
+
+import org.eclipse.draw2d.IFigure;
+import org.eclipse.gef.EditPolicy;
+import org.eclipse.gmf.runtime.diagram.ui.editparts.ShapeCompartmentEditPart;
+import org.eclipse.gmf.runtime.diagram.ui.editpolicies.CreationEditPolicy;
+import org.eclipse.gmf.runtime.diagram.ui.editpolicies.DragDropEditPolicy;
+import org.eclipse.gmf.runtime.diagram.ui.editpolicies.EditPolicyRoles;
+import org.eclipse.gmf.runtime.diagram.ui.editpolicies.ResizableCompartmentEditPolicy;
+import org.eclipse.gmf.runtime.diagram.ui.figures.ResizableCompartmentFigure;
+import org.eclipse.gmf.runtime.draw2d.ui.figures.ConstrainedToolbarLayout;
+import org.eclipse.gmf.runtime.notation.View;
+
+import comrel.diagram.edit.policies.ConditionalUnitConditionalUnitThenCompartment7CanonicalEditPolicy;
+import comrel.diagram.edit.policies.ConditionalUnitConditionalUnitThenCompartment7ItemSemanticEditPolicy;
+import comrel.diagram.part.Messages;
+
+/**
+ * @generated
+ */
+public class ConditionalUnitConditionalUnitThenCompartment7EditPart extends
+ ShapeCompartmentEditPart {
+
+ /**
+ * @generated
+ */
+ public static final int VISUAL_ID = 7083;
+
+ /**
+ * @generated
+ */
+ public ConditionalUnitConditionalUnitThenCompartment7EditPart(View view) {
+ super(view);
+ }
+
+ /**
+ * @generated
+ */
+ public String getCompartmentName() {
+ return Messages.ConditionalUnitConditionalUnitThenCompartment7EditPart_title;
+ }
+
+ /**
+ * @generated
+ */
+ public IFigure createFigure() {
+ ResizableCompartmentFigure result = (ResizableCompartmentFigure) super
+ .createFigure();
+ result.setTitleVisibility(false);
+ return result;
+ }
+
+ /**
+ * @generated
+ */
+ protected void createDefaultEditPolicies() {
+ super.createDefaultEditPolicies();
+ installEditPolicy(EditPolicy.PRIMARY_DRAG_ROLE,
+ new ResizableCompartmentEditPolicy());
+ installEditPolicy(
+ EditPolicyRoles.SEMANTIC_ROLE,
+ new ConditionalUnitConditionalUnitThenCompartment7ItemSemanticEditPolicy());
+ installEditPolicy(EditPolicyRoles.CREATION_ROLE,
+ new CreationEditPolicy());
+ installEditPolicy(EditPolicyRoles.DRAG_DROP_ROLE,
+ new DragDropEditPolicy());
+ installEditPolicy(
+ EditPolicyRoles.CANONICAL_ROLE,
+ new ConditionalUnitConditionalUnitThenCompartment7CanonicalEditPolicy());
+ }
+
+ /**
+ * @generated
+ */
+ protected void setRatio(Double ratio) {
+ if (getFigure().getParent().getLayoutManager() instanceof ConstrainedToolbarLayout) {
+ super.setRatio(ratio);
+ }
+ }
+
+}
diff --git a/org.eclipse.emf.refactor.comrel.diagram/src/comrel/diagram/edit/parts/ConditionalUnitConditionalUnitThenCompartmentEditPart.java b/org.eclipse.emf.refactor.comrel.diagram/src/comrel/diagram/edit/parts/ConditionalUnitConditionalUnitThenCompartmentEditPart.java
new file mode 100644
index 0000000..d11b1ba
--- /dev/null
+++ b/org.eclipse.emf.refactor.comrel.diagram/src/comrel/diagram/edit/parts/ConditionalUnitConditionalUnitThenCompartmentEditPart.java
@@ -0,0 +1,84 @@
+/*
+ *
+ */
+package comrel.diagram.edit.parts;
+
+import org.eclipse.draw2d.IFigure;
+import org.eclipse.gef.EditPolicy;
+import org.eclipse.gmf.runtime.diagram.ui.editparts.ShapeCompartmentEditPart;
+import org.eclipse.gmf.runtime.diagram.ui.editpolicies.CreationEditPolicy;
+import org.eclipse.gmf.runtime.diagram.ui.editpolicies.DragDropEditPolicy;
+import org.eclipse.gmf.runtime.diagram.ui.editpolicies.EditPolicyRoles;
+import org.eclipse.gmf.runtime.diagram.ui.editpolicies.ResizableCompartmentEditPolicy;
+import org.eclipse.gmf.runtime.diagram.ui.figures.ResizableCompartmentFigure;
+import org.eclipse.gmf.runtime.draw2d.ui.figures.ConstrainedToolbarLayout;
+import org.eclipse.gmf.runtime.notation.View;
+
+import comrel.diagram.edit.policies.ConditionalUnitConditionalUnitThenCompartmentCanonicalEditPolicy;
+import comrel.diagram.edit.policies.ConditionalUnitConditionalUnitThenCompartmentItemSemanticEditPolicy;
+import comrel.diagram.part.Messages;
+
+/**
+ * @generated
+ */
+public class ConditionalUnitConditionalUnitThenCompartmentEditPart extends
+ ShapeCompartmentEditPart {
+
+ /**
+ * @generated
+ */
+ public static final int VISUAL_ID = 7019;
+
+ /**
+ * @generated
+ */
+ public ConditionalUnitConditionalUnitThenCompartmentEditPart(View view) {
+ super(view);
+ }
+
+ /**
+ * @generated
+ */
+ public String getCompartmentName() {
+ return Messages.ConditionalUnitConditionalUnitThenCompartmentEditPart_title;
+ }
+
+ /**
+ * @generated
+ */
+ public IFigure createFigure() {
+ ResizableCompartmentFigure result = (ResizableCompartmentFigure) super
+ .createFigure();
+ result.setTitleVisibility(false);
+ return result;
+ }
+
+ /**
+ * @generated
+ */
+ protected void createDefaultEditPolicies() {
+ super.createDefaultEditPolicies();
+ installEditPolicy(EditPolicy.PRIMARY_DRAG_ROLE,
+ new ResizableCompartmentEditPolicy());
+ installEditPolicy(
+ EditPolicyRoles.SEMANTIC_ROLE,
+ new ConditionalUnitConditionalUnitThenCompartmentItemSemanticEditPolicy());
+ installEditPolicy(EditPolicyRoles.CREATION_ROLE,
+ new CreationEditPolicy());
+ installEditPolicy(EditPolicyRoles.DRAG_DROP_ROLE,
+ new DragDropEditPolicy());
+ installEditPolicy(
+ EditPolicyRoles.CANONICAL_ROLE,
+ new ConditionalUnitConditionalUnitThenCompartmentCanonicalEditPolicy());
+ }
+
+ /**
+ * @generated
+ */
+ protected void setRatio(Double ratio) {
+ if (getFigure().getParent().getLayoutManager() instanceof ConstrainedToolbarLayout) {
+ super.setRatio(ratio);
+ }
+ }
+
+}
diff --git a/org.eclipse.emf.refactor.comrel.diagram/src/comrel/diagram/edit/parts/ConditionalUnitEditPart.java b/org.eclipse.emf.refactor.comrel.diagram/src/comrel/diagram/edit/parts/ConditionalUnitEditPart.java
new file mode 100644
index 0000000..e8343f0
--- /dev/null
+++ b/org.eclipse.emf.refactor.comrel.diagram/src/comrel/diagram/edit/parts/ConditionalUnitEditPart.java
@@ -0,0 +1,508 @@
+/*
+ *
+ */
+package comrel.diagram.edit.parts;
+
+import org.eclipse.draw2d.IFigure;
+import org.eclipse.draw2d.MarginBorder;
+import org.eclipse.draw2d.PositionConstants;
+import org.eclipse.draw2d.RectangleFigure;
+import org.eclipse.draw2d.RoundedRectangle;
+import org.eclipse.draw2d.Shape;
+import org.eclipse.draw2d.StackLayout;
+import org.eclipse.draw2d.geometry.Dimension;
+import org.eclipse.emf.common.notify.Notification;
+import org.eclipse.emf.ecore.EcorePackage;
+import org.eclipse.gef.EditPart;
+import org.eclipse.gef.EditPolicy;
+import org.eclipse.gef.Request;
+import org.eclipse.gef.commands.Command;
+import org.eclipse.gef.editpolicies.LayoutEditPolicy;
+import org.eclipse.gef.editpolicies.NonResizableEditPolicy;
+import org.eclipse.gef.requests.CreateRequest;
+import org.eclipse.gmf.runtime.diagram.ui.editparts.AbstractBorderedShapeEditPart;
+import org.eclipse.gmf.runtime.diagram.ui.editparts.IBorderItemEditPart;
+import org.eclipse.gmf.runtime.diagram.ui.editparts.IGraphicalEditPart;
+import org.eclipse.gmf.runtime.diagram.ui.editpolicies.BorderItemSelectionEditPolicy;
+import org.eclipse.gmf.runtime.diagram.ui.editpolicies.CreationEditPolicy;
+import org.eclipse.gmf.runtime.diagram.ui.editpolicies.DragDropEditPolicy;
+import org.eclipse.gmf.runtime.diagram.ui.editpolicies.EditPolicyRoles;
+import org.eclipse.gmf.runtime.diagram.ui.figures.BorderItemLocator;
+import org.eclipse.gmf.runtime.draw2d.ui.figures.ConstrainedToolbarLayout;
+import org.eclipse.gmf.runtime.draw2d.ui.figures.WrappingLabel;
+import org.eclipse.gmf.runtime.gef.ui.figures.DefaultSizeNodeFigure;
+import org.eclipse.gmf.runtime.gef.ui.figures.NodeFigure;
+import org.eclipse.gmf.runtime.notation.View;
+import org.eclipse.swt.graphics.Color;
+
+import comrel.diagram.edit.policies.ConditionalUnitCanonicalEditPolicy;
+import comrel.diagram.edit.policies.ConditionalUnitItemSemanticEditPolicy;
+import comrel.diagram.edit.policies.OpenDiagramEditPolicy;
+import comrel.diagram.part.ComrelVisualIDRegistry;
+
+/**
+ * @generated
+ */
+public class ConditionalUnitEditPart extends AbstractBorderedShapeEditPart {
+
+ /**
+ * @generated
+ */
+ public static final int VISUAL_ID = 2006;
+
+ /**
+ * @generated
+ */
+ protected IFigure contentPane;
+
+ /**
+ * @generated
+ */
+ protected IFigure primaryShape;
+
+ /**
+ * @generated
+ */
+ public ConditionalUnitEditPart(View view) {
+ super(view);
+ }
+
+ /**
+ * @generated
+ */
+ protected void createDefaultEditPolicies() {
+ installEditPolicy(EditPolicyRoles.CREATION_ROLE,
+ new CreationEditPolicy());
+ super.createDefaultEditPolicies();
+ installEditPolicy(EditPolicyRoles.SEMANTIC_ROLE,
+ new ConditionalUnitItemSemanticEditPolicy());
+ installEditPolicy(EditPolicyRoles.DRAG_DROP_ROLE,
+ new DragDropEditPolicy());
+ installEditPolicy(EditPolicyRoles.CANONICAL_ROLE,
+ new ConditionalUnitCanonicalEditPolicy());
+ installEditPolicy(EditPolicy.LAYOUT_ROLE, createLayoutEditPolicy());
+ installEditPolicy(EditPolicyRoles.OPEN_ROLE,
+ new OpenDiagramEditPolicy());
+ // XXX need an SCR to runtime to have another abstract superclass that would let children add reasonable editpolicies
+ // removeEditPolicy(org.eclipse.gmf.runtime.diagram.ui.editpolicies.EditPolicyRoles.CONNECTION_HANDLES_ROLE);
+ }
+
+ /**
+ * @generated
+ */
+ protected LayoutEditPolicy createLayoutEditPolicy() {
+ org.eclipse.gmf.runtime.diagram.ui.editpolicies.LayoutEditPolicy lep = new org.eclipse.gmf.runtime.diagram.ui.editpolicies.LayoutEditPolicy() {
+
+ protected EditPolicy createChildEditPolicy(EditPart child) {
+ View childView = (View) child.getModel();
+ switch (ComrelVisualIDRegistry.getVisualID(childView)) {
+ case SingleInputPort8EditPart.VISUAL_ID:
+ case MultiInputPort9EditPart.VISUAL_ID:
+ return new BorderItemSelectionEditPolicy();
+ }
+ EditPolicy result = child
+ .getEditPolicy(EditPolicy.PRIMARY_DRAG_ROLE);
+ if (result == null) {
+ result = new NonResizableEditPolicy();
+ }
+ return result;
+ }
+
+ protected Command getMoveChildrenCommand(Request request) {
+ return null;
+ }
+
+ protected Command getCreateCommand(CreateRequest request) {
+ return null;
+ }
+ };
+ return lep;
+ }
+
+ /**
+ * @generated
+ */
+ protected IFigure createNodeShape() {
+ return primaryShape = new ConditionalUnitFigure();
+ }
+
+ /**
+ * @generated
+ */
+ public ConditionalUnitFigure getPrimaryShape() {
+ return (ConditionalUnitFigure) primaryShape;
+ }
+
+ /**
+ * @generated
+ */
+ protected boolean addFixedChild(EditPart childEditPart) {
+ if (childEditPart instanceof ConditionalUnitNameTypeEditPart) {
+ ((ConditionalUnitNameTypeEditPart) childEditPart)
+ .setLabel(getPrimaryShape()
+ .getFigureConditionalUnitLabelFigure());
+ return true;
+ }
+ if (childEditPart instanceof ConditionalUnitConditionalUnitIfCompartment7EditPart) {
+ IFigure pane = getPrimaryShape()
+ .getConditionalUnitIfCompartmentFigure();
+ setupContentPane(pane); // FIXME each comparment should handle his content pane in his own way
+ pane.add(((ConditionalUnitConditionalUnitIfCompartment7EditPart) childEditPart)
+ .getFigure());
+ return true;
+ }
+ if (childEditPart instanceof ConditionalUnitConditionalUnitHelperUnitsCompartment7EditPart) {
+ IFigure pane = getPrimaryShape()
+ .getConditionalUnitHelperUnitsCompartmentFigure();
+ setupContentPane(pane); // FIXME each comparment should handle his content pane in his own way
+ pane.add(((ConditionalUnitConditionalUnitHelperUnitsCompartment7EditPart) childEditPart)
+ .getFigure());
+ return true;
+ }
+ if (childEditPart instanceof ConditionalUnitConditionalUnitThenCompartment7EditPart) {
+ IFigure pane = getPrimaryShape()
+ .getConditionalUnitThenCompartmentFigure();
+ setupContentPane(pane); // FIXME each comparment should handle his content pane in his own way
+ pane.add(((ConditionalUnitConditionalUnitThenCompartment7EditPart) childEditPart)
+ .getFigure());
+ return true;
+ }
+ if (childEditPart instanceof ConditionalUnitConditionalUnitElseCompartment7EditPart) {
+ IFigure pane = getPrimaryShape()
+ .getConditionalUnitElseCompartmentFigure();
+ setupContentPane(pane); // FIXME each comparment should handle his content pane in his own way
+ pane.add(((ConditionalUnitConditionalUnitElseCompartment7EditPart) childEditPart)
+ .getFigure());
+ return true;
+ }
+ if (childEditPart instanceof SingleInputPort8EditPart) {
+ BorderItemLocator locator = new BorderItemLocator(getMainFigure(),
+ PositionConstants.NONE);
+ getBorderedFigure().getBorderItemContainer().add(
+ ((SingleInputPort8EditPart) childEditPart).getFigure(),
+ locator);
+ return true;
+ }
+ if (childEditPart instanceof MultiInputPort9EditPart) {
+ BorderItemLocator locator = new BorderItemLocator(getMainFigure(),
+ PositionConstants.NONE);
+ getBorderedFigure().getBorderItemContainer().add(
+ ((MultiInputPort9EditPart) childEditPart).getFigure(),
+ locator);
+ return true;
+ }
+ return false;
+ }
+
+ /**
+ * @generated
+ */
+ protected boolean removeFixedChild(EditPart childEditPart) {
+ if (childEditPart instanceof ConditionalUnitNameTypeEditPart) {
+ return true;
+ }
+ if (childEditPart instanceof ConditionalUnitConditionalUnitIfCompartment7EditPart) {
+ IFigure pane = getPrimaryShape()
+ .getConditionalUnitIfCompartmentFigure();
+ setupContentPane(pane); // FIXME each comparment should handle his content pane in his own way
+ pane.remove(((ConditionalUnitConditionalUnitIfCompartment7EditPart) childEditPart)
+ .getFigure());
+ return true;
+ }
+ if (childEditPart instanceof ConditionalUnitConditionalUnitHelperUnitsCompartment7EditPart) {
+ IFigure pane = getPrimaryShape()
+ .getConditionalUnitHelperUnitsCompartmentFigure();
+ setupContentPane(pane); // FIXME each comparment should handle his content pane in his own way
+ pane.remove(((ConditionalUnitConditionalUnitHelperUnitsCompartment7EditPart) childEditPart)
+ .getFigure());
+ return true;
+ }
+ if (childEditPart instanceof ConditionalUnitConditionalUnitThenCompartment7EditPart) {
+ IFigure pane = getPrimaryShape()
+ .getConditionalUnitThenCompartmentFigure();
+ setupContentPane(pane); // FIXME each comparment should handle his content pane in his own way
+ pane.remove(((ConditionalUnitConditionalUnitThenCompartment7EditPart) childEditPart)
+ .getFigure());
+ return true;
+ }
+ if (childEditPart instanceof ConditionalUnitConditionalUnitElseCompartment7EditPart) {
+ IFigure pane = getPrimaryShape()
+ .getConditionalUnitElseCompartmentFigure();
+ setupContentPane(pane); // FIXME each comparment should handle his content pane in his own way
+ pane.remove(((ConditionalUnitConditionalUnitElseCompartment7EditPart) childEditPart)
+ .getFigure());
+ return true;
+ }
+ if (childEditPart instanceof SingleInputPort8EditPart) {
+ getBorderedFigure().getBorderItemContainer().remove(
+ ((SingleInputPort8EditPart) childEditPart).getFigure());
+ return true;
+ }
+ if (childEditPart instanceof MultiInputPort9EditPart) {
+ getBorderedFigure().getBorderItemContainer().remove(
+ ((MultiInputPort9EditPart) childEditPart).getFigure());
+ return true;
+ }
+ return false;
+ }
+
+ /**
+ * @generated
+ */
+ protected void addChildVisual(EditPart childEditPart, int index) {
+ if (addFixedChild(childEditPart)) {
+ return;
+ }
+ super.addChildVisual(childEditPart, -1);
+ }
+
+ /**
+ * @generated
+ */
+ protected void removeChildVisual(EditPart childEditPart) {
+ if (removeFixedChild(childEditPart)) {
+ return;
+ }
+ super.removeChildVisual(childEditPart);
+ }
+
+ /**
+ * @generated
+ */
+ protected IFigure getContentPaneFor(IGraphicalEditPart editPart) {
+ if (editPart instanceof ConditionalUnitConditionalUnitIfCompartment7EditPart) {
+ return getPrimaryShape().getConditionalUnitIfCompartmentFigure();
+ }
+ if (editPart instanceof ConditionalUnitConditionalUnitHelperUnitsCompartment7EditPart) {
+ return getPrimaryShape()
+ .getConditionalUnitHelperUnitsCompartmentFigure();
+ }
+ if (editPart instanceof ConditionalUnitConditionalUnitThenCompartment7EditPart) {
+ return getPrimaryShape().getConditionalUnitThenCompartmentFigure();
+ }
+ if (editPart instanceof ConditionalUnitConditionalUnitElseCompartment7EditPart) {
+ return getPrimaryShape().getConditionalUnitElseCompartmentFigure();
+ }
+ if (editPart instanceof IBorderItemEditPart) {
+ return getBorderedFigure().getBorderItemContainer();
+ }
+ return getContentPane();
+ }
+
+ /**
+ * @generated
+ */
+ protected NodeFigure createNodePlate() {
+ DefaultSizeNodeFigure result = new DefaultSizeNodeFigure(40, 40);
+ return result;
+ }
+
+ /**
+ * Creates figure for this edit part.
+ *
+ * Body of this method does not depend on settings in generation model
+ * so you may safely remove <i>generated</i> tag and modify it.
+ *
+ * @generated
+ */
+ protected NodeFigure createMainFigure() {
+ NodeFigure figure = createNodePlate();
+ figure.setLayoutManager(new StackLayout());
+ IFigure shape = createNodeShape();
+ figure.add(shape);
+ contentPane = setupContentPane(shape);
+ return figure;
+ }
+
+ /**
+ * Default implementation treats passed figure as content pane.
+ * Respects layout one may have set for generated figure.
+ * @param nodeShape instance of generated figure class
+ * @generated
+ */
+ protected IFigure setupContentPane(IFigure nodeShape) {
+ if (nodeShape.getLayoutManager() == null) {
+ ConstrainedToolbarLayout layout = new ConstrainedToolbarLayout();
+ layout.setSpacing(5);
+ nodeShape.setLayoutManager(layout);
+ }
+ return nodeShape; // use nodeShape itself as contentPane
+ }
+
+ /**
+ * @generated
+ */
+ public IFigure getContentPane() {
+ if (contentPane != null) {
+ return contentPane;
+ }
+ return super.getContentPane();
+ }
+
+ /**
+ * @generated
+ */
+ protected void setForegroundColor(Color color) {
+ if (primaryShape != null) {
+ primaryShape.setForegroundColor(color);
+ }
+ }
+
+ /**
+ * @generated
+ */
+ protected void setBackgroundColor(Color color) {
+ if (primaryShape != null) {
+ primaryShape.setBackgroundColor(color);
+ }
+ }
+
+ /**
+ * @generated
+ */
+ protected void setLineWidth(int width) {
+ if (primaryShape instanceof Shape) {
+ ((Shape) primaryShape).setLineWidth(width);
+ }
+ }
+
+ /**
+ * @generated
+ */
+ protected void setLineType(int style) {
+ if (primaryShape instanceof Shape) {
+ ((Shape) primaryShape).setLineStyle(style);
+ }
+ }
+
+ /**
+ * @generated
+ */
+ public EditPart getPrimaryChildEditPart() {
+ return getChildBySemanticHint(ComrelVisualIDRegistry
+ .getType(ConditionalUnitNameTypeEditPart.VISUAL_ID));
+ }
+
+ /**
+ * @generated
+ */
+ protected void handleNotificationEvent(Notification event) {
+ if (event.getNotifier() == getModel()
+ && EcorePackage.eINSTANCE.getEModelElement_EAnnotations()
+ .equals(event.getFeature())) {
+ handleMajorSemanticChange();
+ } else {
+ super.handleNotificationEvent(event);
+ }
+ }
+
+ /**
+ * @generated
+ */
+ public class ConditionalUnitFigure extends RoundedRectangle {
+
+ /**
+ * @generated
+ */
+ private WrappingLabel fFigureConditionalUnitLabelFigure;
+ /**
+ * @generated
+ */
+ private RectangleFigure fConditionalUnitIfCompartmentFigure;
+ /**
+ * @generated
+ */
+ private RectangleFigure fConditionalUnitHelperUnitsCompartmentFigure;
+ /**
+ * @generated
+ */
+ private RectangleFigure fConditionalUnitThenCompartmentFigure;
+ /**
+ * @generated
+ */
+ private RectangleFigure fConditionalUnitElseCompartmentFigure;
+
+ /**
+ * @generated
+ */
+ public ConditionalUnitFigure() {
+ this.setCornerDimensions(new Dimension(getMapMode().DPtoLP(8),
+ getMapMode().DPtoLP(8)));
+ this.setBorder(new MarginBorder(getMapMode().DPtoLP(5),
+ getMapMode().DPtoLP(5), getMapMode().DPtoLP(5),
+ getMapMode().DPtoLP(5)));
+ createContents();
+ }
+
+ /**
+ * @generated
+ */
+ private void createContents() {
+
+ fFigureConditionalUnitLabelFigure = new WrappingLabel();
+ fFigureConditionalUnitLabelFigure.setText("ConditionalUnit");
+ fFigureConditionalUnitLabelFigure.setMaximumSize(new Dimension(
+ getMapMode().DPtoLP(10000), getMapMode().DPtoLP(50)));
+
+ this.add(fFigureConditionalUnitLabelFigure);
+
+ fConditionalUnitIfCompartmentFigure = new RectangleFigure();
+ fConditionalUnitIfCompartmentFigure.setOutline(false);
+
+ this.add(fConditionalUnitIfCompartmentFigure);
+
+ fConditionalUnitHelperUnitsCompartmentFigure = new RectangleFigure();
+ fConditionalUnitHelperUnitsCompartmentFigure.setOutline(false);
+
+ this.add(fConditionalUnitHelperUnitsCompartmentFigure);
+
+ fConditionalUnitThenCompartmentFigure = new RectangleFigure();
+ fConditionalUnitThenCompartmentFigure.setOutline(false);
+
+ this.add(fConditionalUnitThenCompartmentFigure);
+
+ fConditionalUnitElseCompartmentFigure = new RectangleFigure();
+ fConditionalUnitElseCompartmentFigure.setOutline(false);
+
+ this.add(fConditionalUnitElseCompartmentFigure);
+
+ }
+
+ /**
+ * @generated
+ */
+ public WrappingLabel getFigureConditionalUnitLabelFigure() {
+ return fFigureConditionalUnitLabelFigure;
+ }
+
+ /**
+ * @generated
+ */
+ public RectangleFigure getConditionalUnitIfCompartmentFigure() {
+ return fConditionalUnitIfCompartmentFigure;
+ }
+
+ /**
+ * @generated
+ */
+ public RectangleFigure getConditionalUnitHelperUnitsCompartmentFigure() {
+ return fConditionalUnitHelperUnitsCompartmentFigure;
+ }
+
+ /**
+ * @generated
+ */
+ public RectangleFigure getConditionalUnitThenCompartmentFigure() {
+ return fConditionalUnitThenCompartmentFigure;
+ }
+
+ /**
+ * @generated
+ */
+ public RectangleFigure getConditionalUnitElseCompartmentFigure() {
+ return fConditionalUnitElseCompartmentFigure;
+ }
+
+ }
+
+}
diff --git a/org.eclipse.emf.refactor.comrel.diagram/src/comrel/diagram/edit/parts/ConditionalUnitNameType2EditPart.java b/org.eclipse.emf.refactor.comrel.diagram/src/comrel/diagram/edit/parts/ConditionalUnitNameType2EditPart.java
new file mode 100644
index 0000000..e67f335
--- /dev/null
+++ b/org.eclipse.emf.refactor.comrel.diagram/src/comrel/diagram/edit/parts/ConditionalUnitNameType2EditPart.java
@@ -0,0 +1,576 @@
+/*
+ *
+ */
+package comrel.diagram.edit.parts;
+
+import java.util.Collections;
+import java.util.List;
+
+import org.eclipse.draw2d.IFigure;
+import org.eclipse.draw2d.Label;
+import org.eclipse.draw2d.geometry.Point;
+import org.eclipse.emf.common.notify.Notification;
+import org.eclipse.emf.ecore.EObject;
+import org.eclipse.emf.transaction.RunnableWithResult;
+import org.eclipse.gef.AccessibleEditPart;
+import org.eclipse.gef.EditPolicy;
+import org.eclipse.gef.Request;
+import org.eclipse.gef.requests.DirectEditRequest;
+import org.eclipse.gef.tools.DirectEditManager;
+import org.eclipse.gmf.runtime.common.ui.services.parser.IParser;
+import org.eclipse.gmf.runtime.common.ui.services.parser.IParserEditStatus;
+import org.eclipse.gmf.runtime.common.ui.services.parser.ParserEditStatus;
+import org.eclipse.gmf.runtime.common.ui.services.parser.ParserOptions;
+import org.eclipse.gmf.runtime.diagram.ui.editparts.CompartmentEditPart;
+import org.eclipse.gmf.runtime.diagram.ui.editparts.IGraphicalEditPart;
+import org.eclipse.gmf.runtime.diagram.ui.editparts.ITextAwareEditPart;
+import org.eclipse.gmf.runtime.diagram.ui.editpolicies.LabelDirectEditPolicy;
+import org.eclipse.gmf.runtime.diagram.ui.l10n.DiagramColorRegistry;
+import org.eclipse.gmf.runtime.diagram.ui.requests.RequestConstants;
+import org.eclipse.gmf.runtime.diagram.ui.tools.TextDirectEditManager;
+import org.eclipse.gmf.runtime.draw2d.ui.figures.WrappingLabel;
+import org.eclipse.gmf.runtime.emf.core.util.EObjectAdapter;
+import org.eclipse.gmf.runtime.emf.ui.services.parser.ISemanticParser;
+import org.eclipse.gmf.runtime.notation.FontStyle;
+import org.eclipse.gmf.runtime.notation.NotationPackage;
+import org.eclipse.gmf.runtime.notation.View;
+import org.eclipse.jface.text.contentassist.IContentAssistProcessor;
+import org.eclipse.jface.viewers.ICellEditorValidator;
+import org.eclipse.swt.SWT;
+import org.eclipse.swt.accessibility.AccessibleEvent;
+import org.eclipse.swt.graphics.Color;
+import org.eclipse.swt.graphics.FontData;
+import org.eclipse.swt.graphics.Image;
+
+import comrel.diagram.edit.policies.ComrelTextSelectionEditPolicy;
+import comrel.diagram.part.ComrelVisualIDRegistry;
+import comrel.diagram.providers.ComrelElementTypes;
+import comrel.diagram.providers.ComrelParserProvider;
+
+/**
+ * @generated
+ */
+public class ConditionalUnitNameType2EditPart extends CompartmentEditPart
+ implements ITextAwareEditPart {
+
+ /**
+ * @generated
+ */
+ public static final int VISUAL_ID = 5072;
+
+ /**
+ * @generated
+ */
+ private DirectEditManager manager;
+
+ /**
+ * @generated
+ */
+ private IParser parser;
+
+ /**
+ * @generated
+ */
+ private List<?> parserElements;
+
+ /**
+ * @generated
+ */
+ private String defaultText;
+
+ /**
+ * @generated
+ */
+ public ConditionalUnitNameType2EditPart(View view) {
+ super(view);
+ }
+
+ /**
+ * @generated
+ */
+ protected void createDefaultEditPolicies() {
+ super.createDefaultEditPolicies();
+ installEditPolicy(EditPolicy.SELECTION_FEEDBACK_ROLE,
+ new ComrelTextSelectionEditPolicy());
+ installEditPolicy(EditPolicy.DIRECT_EDIT_ROLE,
+ new LabelDirectEditPolicy());
+ installEditPolicy(EditPolicy.PRIMARY_DRAG_ROLE,
+ new CompositeRefactoringEditPart.NodeLabelDragPolicy());
+ }
+
+ /**
+ * @generated
+ */
+ protected String getLabelTextHelper(IFigure figure) {
+ if (figure instanceof WrappingLabel) {
+ return ((WrappingLabel) figure).getText();
+ } else {
+ return ((Label) figure).getText();
+ }
+ }
+
+ /**
+ * @generated
+ */
+ protected void setLabelTextHelper(IFigure figure, String text) {
+ if (figure instanceof WrappingLabel) {
+ ((WrappingLabel) figure).setText(text);
+ } else {
+ ((Label) figure).setText(text);
+ }
+ }
+
+ /**
+ * @generated
+ */
+ protected Image getLabelIconHelper(IFigure figure) {
+ if (figure instanceof WrappingLabel) {
+ return ((WrappingLabel) figure).getIcon();
+ } else {
+ return ((Label) figure).getIcon();
+ }
+ }
+
+ /**
+ * @generated
+ */
+ protected void setLabelIconHelper(IFigure figure, Image icon) {
+ if (figure instanceof WrappingLabel) {
+ ((WrappingLabel) figure).setIcon(icon);
+ } else {
+ ((Label) figure).setIcon(icon);
+ }
+ }
+
+ /**
+ * @generated
+ */
+ public void setLabel(WrappingLabel figure) {
+ unregisterVisuals();
+ setFigure(figure);
+ defaultText = getLabelTextHelper(figure);
+ registerVisuals();
+ refreshVisuals();
+ }
+
+ /**
+ * @generated
+ */
+ @SuppressWarnings("rawtypes")
+ protected List getModelChildren() {
+ return Collections.EMPTY_LIST;
+ }
+
+ /**
+ * @generated
+ */
+ public IGraphicalEditPart getChildBySemanticHint(String semanticHint) {
+ return null;
+ }
+
+ /**
+ * @generated
+ */
+ protected EObject getParserElement() {
+ return resolveSemanticElement();
+ }
+
+ /**
+ * @generated
+ */
+ protected Image getLabelIcon() {
+ return null;
+ }
+
+ /**
+ * @generated
+ */
+ protected String getLabelText() {
+ String text = null;
+ EObject parserElement = getParserElement();
+ if (parserElement != null && getParser() != null) {
+ text = getParser().getPrintString(
+ new EObjectAdapter(parserElement),
+ getParserOptions().intValue());
+ }
+ if (text == null || text.length() == 0) {
+ text = defaultText;
+ }
+ return text;
+ }
+
+ /**
+ * @generated
+ */
+ public void setLabelText(String text) {
+ setLabelTextHelper(getFigure(), text);
+ Object pdEditPolicy = getEditPolicy(EditPolicy.PRIMARY_DRAG_ROLE);
+ if (pdEditPolicy instanceof ComrelTextSelectionEditPolicy) {
+ ((ComrelTextSelectionEditPolicy) pdEditPolicy).refreshFeedback();
+ }
+ Object sfEditPolicy = getEditPolicy(EditPolicy.SELECTION_FEEDBACK_ROLE);
+ if (sfEditPolicy instanceof ComrelTextSelectionEditPolicy) {
+ ((ComrelTextSelectionEditPolicy) sfEditPolicy).refreshFeedback();
+ }
+ }
+
+ /**
+ * @generated
+ */
+ public String getEditText() {
+ if (getParserElement() == null || getParser() == null) {
+ return ""; //$NON-NLS-1$
+ }
+ return getParser().getEditString(
+ new EObjectAdapter(getParserElement()),
+ getParserOptions().intValue());
+ }
+
+ /**
+ * @generated
+ */
+ protected boolean isEditable() {
+ return getParser() != null;
+ }
+
+ /**
+ * @generated
+ */
+ public ICellEditorValidator getEditTextValidator() {
+ return new ICellEditorValidator() {
+
+ public String isValid(final Object value) {
+ if (value instanceof String) {
+ final EObject element = getParserElement();
+ final IParser parser = getParser();
+ try {
+ IParserEditStatus valid = (IParserEditStatus) getEditingDomain()
+ .runExclusive(
+ new RunnableWithResult.Impl<IParserEditStatus>() {
+
+ public void run() {
+ setResult(parser
+ .isValidEditString(
+ new EObjectAdapter(
+ element),
+ (String) value));
+ }
+ });
+ return valid.getCode() == ParserEditStatus.EDITABLE ? null
+ : valid.getMessage();
+ } catch (InterruptedException ie) {
+ ie.printStackTrace();
+ }
+ }
+
+ // shouldn't get here
+ return null;
+ }
+ };
+ }
+
+ /**
+ * @generated
+ */
+ public IContentAssistProcessor getCompletionProcessor() {
+ if (getParserElement() == null || getParser() == null) {
+ return null;
+ }
+ return getParser().getCompletionProcessor(
+ new EObjectAdapter(getParserElement()));
+ }
+
+ /**
+ * @generated
+ */
+ public ParserOptions getParserOptions() {
+ return ParserOptions.NONE;
+ }
+
+ /**
+ * @generated
+ */
+ public IParser getParser() {
+ if (parser == null) {
+ parser = ComrelParserProvider
+ .getParser(
+ ComrelElementTypes.ConditionalUnit_3030,
+ getParserElement(),
+ ComrelVisualIDRegistry
+ .getType(comrel.diagram.edit.parts.ConditionalUnitNameType2EditPart.VISUAL_ID));
+ }
+ return parser;
+ }
+
+ /**
+ * @generated
+ */
+ protected DirectEditManager getManager() {
+ if (manager == null) {
+ setManager(new TextDirectEditManager(this,
+ TextDirectEditManager.getTextCellEditorClass(this),
+ ComrelEditPartFactory.getTextCellEditorLocator(this)));
+ }
+ return manager;
+ }
+
+ /**
+ * @generated
+ */
+ protected void setManager(DirectEditManager manager) {
+ this.manager = manager;
+ }
+
+ /**
+ * @generated
+ */
+ protected void performDirectEdit() {
+ getManager().show();
+ }
+
+ /**
+ * @generated
+ */
+ protected void performDirectEdit(Point eventLocation) {
+ if (getManager().getClass() == TextDirectEditManager.class) {
+ ((TextDirectEditManager) getManager()).show(eventLocation
+ .getSWTPoint());
+ }
+ }
+
+ /**
+ * @generated
+ */
+ private void performDirectEdit(char initialCharacter) {
+ if (getManager() instanceof TextDirectEditManager) {
+ ((TextDirectEditManager) getManager()).show(initialCharacter);
+ } else {
+ performDirectEdit();
+ }
+ }
+
+ /**
+ * @generated
+ */
+ protected void performDirectEditRequest(Request request) {
+ final Request theRequest = request;
+ try {
+ getEditingDomain().runExclusive(new Runnable() {
+
+ public void run() {
+ if (isActive() && isEditable()) {
+ if (theRequest
+ .getExtendedData()
+ .get(RequestConstants.REQ_DIRECTEDIT_EXTENDEDDATA_INITIAL_CHAR) instanceof Character) {
+ Character initialChar = (Character) theRequest
+ .getExtendedData()
+ .get(RequestConstants.REQ_DIRECTEDIT_EXTENDEDDATA_INITIAL_CHAR);
+ performDirectEdit(initialChar.charValue());
+ } else if ((theRequest instanceof DirectEditRequest)
+ && (getEditText().equals(getLabelText()))) {
+ DirectEditRequest editRequest = (DirectEditRequest) theRequest;
+ performDirectEdit(editRequest.getLocation());
+ } else {
+ performDirectEdit();
+ }
+ }
+ }
+ });
+ } catch (InterruptedException e) {
+ e.printStackTrace();
+ }
+ }
+
+ /**
+ * @generated
+ */
+ protected void refreshVisuals() {
+ super.refreshVisuals();
+ refreshLabel();
+ refreshFont();
+ refreshFontColor();
+ refreshUnderline();
+ refreshStrikeThrough();
+ }
+
+ /**
+ * @generated
+ */
+ protected void refreshLabel() {
+ setLabelTextHelper(getFigure(), getLabelText());
+ setLabelIconHelper(getFigure(), getLabelIcon());
+ Object pdEditPolicy = getEditPolicy(EditPolicy.PRIMARY_DRAG_ROLE);
+ if (pdEditPolicy instanceof ComrelTextSelectionEditPolicy) {
+ ((ComrelTextSelectionEditPolicy) pdEditPolicy).refreshFeedback();
+ }
+ Object sfEditPolicy = getEditPolicy(EditPolicy.SELECTION_FEEDBACK_ROLE);
+ if (sfEditPolicy instanceof ComrelTextSelectionEditPolicy) {
+ ((ComrelTextSelectionEditPolicy) sfEditPolicy).refreshFeedback();
+ }
+ }
+
+ /**
+ * @generated
+ */
+ protected void refreshUnderline() {
+ FontStyle style = (FontStyle) getFontStyleOwnerView().getStyle(
+ NotationPackage.eINSTANCE.getFontStyle());
+ if (style != null && getFigure() instanceof WrappingLabel) {
+ ((WrappingLabel) getFigure()).setTextUnderline(style.isUnderline());
+ }
+ }
+
+ /**
+ * @generated
+ */
+ protected void refreshStrikeThrough() {
+ FontStyle style = (FontStyle) getFontStyleOwnerView().getStyle(
+ NotationPackage.eINSTANCE.getFontStyle());
+ if (style != null && getFigure() instanceof WrappingLabel) {
+ ((WrappingLabel) getFigure()).setTextStrikeThrough(style
+ .isStrikeThrough());
+ }
+ }
+
+ /**
+ * @generated
+ */
+ protected void refreshFont() {
+ FontStyle style = (FontStyle) getFontStyleOwnerView().getStyle(
+ NotationPackage.eINSTANCE.getFontStyle());
+ if (style != null) {
+ FontData fontData = new FontData(style.getFontName(),
+ style.getFontHeight(), (style.isBold() ? SWT.BOLD
+ : SWT.NORMAL)
+ | (style.isItalic() ? SWT.ITALIC : SWT.NORMAL));
+ setFont(fontData);
+ }
+ }
+
+ /**
+ * @generated
+ */
+ protected void setFontColor(Color color) {
+ getFigure().setForegroundColor(color);
+ }
+
+ /**
+ * @generated
+ */
+ protected void addSemanticListeners() {
+ if (getParser() instanceof ISemanticParser) {
+ EObject element = resolveSemanticElement();
+ parserElements = ((ISemanticParser) getParser())
+ .getSemanticElementsBeingParsed(element);
+ for (int i = 0; i < parserElements.size(); i++) {
+ addListenerFilter(
+ "SemanticModel" + i, this, (EObject) parserElements.get(i)); //$NON-NLS-1$
+ }
+ } else {
+ super.addSemanticListeners();
+ }
+ }
+
+ /**
+ * @generated
+ */
+ protected void removeSemanticListeners() {
+ if (parserElements != null) {
+ for (int i = 0; i < parserElements.size(); i++) {
+ removeListenerFilter("SemanticModel" + i); //$NON-NLS-1$
+ }
+ } else {
+ super.removeSemanticListeners();
+ }
+ }
+
+ /**
+ * @generated
+ */
+ protected AccessibleEditPart getAccessibleEditPart() {
+ if (accessibleEP == null) {
+ accessibleEP = new AccessibleGraphicalEditPart() {
+
+ public void getName(AccessibleEvent e) {
+ e.result = getLabelTextHelper(getFigure());
+ }
+ };
+ }
+ return accessibleEP;
+ }
+
+ /**
+ * @generated
+ */
+ private View getFontStyleOwnerView() {
+ return getPrimaryView();
+ }
+
+ /**
+ * @generated
+ */
+ protected void addNotationalListeners() {
+ super.addNotationalListeners();
+ addListenerFilter("PrimaryView", this, getPrimaryView()); //$NON-NLS-1$
+ }
+
+ /**
+ * @generated
+ */
+ protected void removeNotationalListeners() {
+ super.removeNotationalListeners();
+ removeListenerFilter("PrimaryView"); //$NON-NLS-1$
+ }
+
+ /**
+ * @generated
+ */
+ protected void handleNotificationEvent(Notification event) {
+ Object feature = event.getFeature();
+ if (NotationPackage.eINSTANCE.getFontStyle_FontColor().equals(feature)) {
+ Integer c = (Integer) event.getNewValue();
+ setFontColor(DiagramColorRegistry.getInstance().getColor(c));
+ } else if (NotationPackage.eINSTANCE.getFontStyle_Underline().equals(
+ feature)) {
+ refreshUnderline();
+ } else if (NotationPackage.eINSTANCE.getFontStyle_StrikeThrough()
+ .equals(feature)) {
+ refreshStrikeThrough();
+ } else if (NotationPackage.eINSTANCE.getFontStyle_FontHeight().equals(
+ feature)
+ || NotationPackage.eINSTANCE.getFontStyle_FontName().equals(
+ feature)
+ || NotationPackage.eINSTANCE.getFontStyle_Bold()
+ .equals(feature)
+ || NotationPackage.eINSTANCE.getFontStyle_Italic().equals(
+ feature)) {
+ refreshFont();
+ } else {
+ if (getParser() != null
+ && getParser().isAffectingEvent(event,
+ getParserOptions().intValue())) {
+ refreshLabel();
+ }
+ if (getParser() instanceof ISemanticParser) {
+ ISemanticParser modelParser = (ISemanticParser) getParser();
+ if (modelParser.areSemanticElementsAffected(null, event)) {
+ removeSemanticListeners();
+ if (resolveSemanticElement() != null) {
+ addSemanticListeners();
+ }
+ refreshLabel();
+ }
+ }
+ }
+ super.handleNotificationEvent(event);
+ }
+
+ /**
+ * @generated
+ */
+ protected IFigure createFigure() {
+ // Parent should assign one using setLabel() method
+ return null;
+ }
+
+}
diff --git a/org.eclipse.emf.refactor.comrel.diagram/src/comrel/diagram/edit/parts/ConditionalUnitNameType3EditPart.java b/org.eclipse.emf.refactor.comrel.diagram/src/comrel/diagram/edit/parts/ConditionalUnitNameType3EditPart.java
new file mode 100644
index 0000000..5a0fa40
--- /dev/null
+++ b/org.eclipse.emf.refactor.comrel.diagram/src/comrel/diagram/edit/parts/ConditionalUnitNameType3EditPart.java
@@ -0,0 +1,576 @@
+/*
+ *
+ */
+package comrel.diagram.edit.parts;
+
+import java.util.Collections;
+import java.util.List;
+
+import org.eclipse.draw2d.IFigure;
+import org.eclipse.draw2d.Label;
+import org.eclipse.draw2d.geometry.Point;
+import org.eclipse.emf.common.notify.Notification;
+import org.eclipse.emf.ecore.EObject;
+import org.eclipse.emf.transaction.RunnableWithResult;
+import org.eclipse.gef.AccessibleEditPart;
+import org.eclipse.gef.EditPolicy;
+import org.eclipse.gef.Request;
+import org.eclipse.gef.requests.DirectEditRequest;
+import org.eclipse.gef.tools.DirectEditManager;
+import org.eclipse.gmf.runtime.common.ui.services.parser.IParser;
+import org.eclipse.gmf.runtime.common.ui.services.parser.IParserEditStatus;
+import org.eclipse.gmf.runtime.common.ui.services.parser.ParserEditStatus;
+import org.eclipse.gmf.runtime.common.ui.services.parser.ParserOptions;
+import org.eclipse.gmf.runtime.diagram.ui.editparts.CompartmentEditPart;
+import org.eclipse.gmf.runtime.diagram.ui.editparts.IGraphicalEditPart;
+import org.eclipse.gmf.runtime.diagram.ui.editparts.ITextAwareEditPart;
+import org.eclipse.gmf.runtime.diagram.ui.editpolicies.LabelDirectEditPolicy;
+import org.eclipse.gmf.runtime.diagram.ui.l10n.DiagramColorRegistry;
+import org.eclipse.gmf.runtime.diagram.ui.requests.RequestConstants;
+import org.eclipse.gmf.runtime.diagram.ui.tools.TextDirectEditManager;
+import org.eclipse.gmf.runtime.draw2d.ui.figures.WrappingLabel;
+import org.eclipse.gmf.runtime.emf.core.util.EObjectAdapter;
+import org.eclipse.gmf.runtime.emf.ui.services.parser.ISemanticParser;
+import org.eclipse.gmf.runtime.notation.FontStyle;
+import org.eclipse.gmf.runtime.notation.NotationPackage;
+import org.eclipse.gmf.runtime.notation.View;
+import org.eclipse.jface.text.contentassist.IContentAssistProcessor;
+import org.eclipse.jface.viewers.ICellEditorValidator;
+import org.eclipse.swt.SWT;
+import org.eclipse.swt.accessibility.AccessibleEvent;
+import org.eclipse.swt.graphics.Color;
+import org.eclipse.swt.graphics.FontData;
+import org.eclipse.swt.graphics.Image;
+
+import comrel.diagram.edit.policies.ComrelTextSelectionEditPolicy;
+import comrel.diagram.part.ComrelVisualIDRegistry;
+import comrel.diagram.providers.ComrelElementTypes;
+import comrel.diagram.providers.ComrelParserProvider;
+
+/**
+ * @generated
+ */
+public class ConditionalUnitNameType3EditPart extends CompartmentEditPart
+ implements ITextAwareEditPart {
+
+ /**
+ * @generated
+ */
+ public static final int VISUAL_ID = 5065;
+
+ /**
+ * @generated
+ */
+ private DirectEditManager manager;
+
+ /**
+ * @generated
+ */
+ private IParser parser;
+
+ /**
+ * @generated
+ */
+ private List<?> parserElements;
+
+ /**
+ * @generated
+ */
+ private String defaultText;
+
+ /**
+ * @generated
+ */
+ public ConditionalUnitNameType3EditPart(View view) {
+ super(view);
+ }
+
+ /**
+ * @generated
+ */
+ protected void createDefaultEditPolicies() {
+ super.createDefaultEditPolicies();
+ installEditPolicy(EditPolicy.SELECTION_FEEDBACK_ROLE,
+ new ComrelTextSelectionEditPolicy());
+ installEditPolicy(EditPolicy.DIRECT_EDIT_ROLE,
+ new LabelDirectEditPolicy());
+ installEditPolicy(EditPolicy.PRIMARY_DRAG_ROLE,
+ new CompositeRefactoringEditPart.NodeLabelDragPolicy());
+ }
+
+ /**
+ * @generated
+ */
+ protected String getLabelTextHelper(IFigure figure) {
+ if (figure instanceof WrappingLabel) {
+ return ((WrappingLabel) figure).getText();
+ } else {
+ return ((Label) figure).getText();
+ }
+ }
+
+ /**
+ * @generated
+ */
+ protected void setLabelTextHelper(IFigure figure, String text) {
+ if (figure instanceof WrappingLabel) {
+ ((WrappingLabel) figure).setText(text);
+ } else {
+ ((Label) figure).setText(text);
+ }
+ }
+
+ /**
+ * @generated
+ */
+ protected Image getLabelIconHelper(IFigure figure) {
+ if (figure instanceof WrappingLabel) {
+ return ((WrappingLabel) figure).getIcon();
+ } else {
+ return ((Label) figure).getIcon();
+ }
+ }
+
+ /**
+ * @generated
+ */
+ protected void setLabelIconHelper(IFigure figure, Image icon) {
+ if (figure instanceof WrappingLabel) {
+ ((WrappingLabel) figure).setIcon(icon);
+ } else {
+ ((Label) figure).setIcon(icon);
+ }
+ }
+
+ /**
+ * @generated
+ */
+ public void setLabel(WrappingLabel figure) {
+ unregisterVisuals();
+ setFigure(figure);
+ defaultText = getLabelTextHelper(figure);
+ registerVisuals();
+ refreshVisuals();
+ }
+
+ /**
+ * @generated
+ */
+ @SuppressWarnings("rawtypes")
+ protected List getModelChildren() {
+ return Collections.EMPTY_LIST;
+ }
+
+ /**
+ * @generated
+ */
+ public IGraphicalEditPart getChildBySemanticHint(String semanticHint) {
+ return null;
+ }
+
+ /**
+ * @generated
+ */
+ protected EObject getParserElement() {
+ return resolveSemanticElement();
+ }
+
+ /**
+ * @generated
+ */
+ protected Image getLabelIcon() {
+ return null;
+ }
+
+ /**
+ * @generated
+ */
+ protected String getLabelText() {
+ String text = null;
+ EObject parserElement = getParserElement();
+ if (parserElement != null && getParser() != null) {
+ text = getParser().getPrintString(
+ new EObjectAdapter(parserElement),
+ getParserOptions().intValue());
+ }
+ if (text == null || text.length() == 0) {
+ text = defaultText;
+ }
+ return text;
+ }
+
+ /**
+ * @generated
+ */
+ public void setLabelText(String text) {
+ setLabelTextHelper(getFigure(), text);
+ Object pdEditPolicy = getEditPolicy(EditPolicy.PRIMARY_DRAG_ROLE);
+ if (pdEditPolicy instanceof ComrelTextSelectionEditPolicy) {
+ ((ComrelTextSelectionEditPolicy) pdEditPolicy).refreshFeedback();
+ }
+ Object sfEditPolicy = getEditPolicy(EditPolicy.SELECTION_FEEDBACK_ROLE);
+ if (sfEditPolicy instanceof ComrelTextSelectionEditPolicy) {
+ ((ComrelTextSelectionEditPolicy) sfEditPolicy).refreshFeedback();
+ }
+ }
+
+ /**
+ * @generated
+ */
+ public String getEditText() {
+ if (getParserElement() == null || getParser() == null) {
+ return ""; //$NON-NLS-1$
+ }
+ return getParser().getEditString(
+ new EObjectAdapter(getParserElement()),
+ getParserOptions().intValue());
+ }
+
+ /**
+ * @generated
+ */
+ protected boolean isEditable() {
+ return getParser() != null;
+ }
+
+ /**
+ * @generated
+ */
+ public ICellEditorValidator getEditTextValidator() {
+ return new ICellEditorValidator() {
+
+ public String isValid(final Object value) {
+ if (value instanceof String) {
+ final EObject element = getParserElement();
+ final IParser parser = getParser();
+ try {
+ IParserEditStatus valid = (IParserEditStatus) getEditingDomain()
+ .runExclusive(
+ new RunnableWithResult.Impl<IParserEditStatus>() {
+
+ public void run() {
+ setResult(parser
+ .isValidEditString(
+ new EObjectAdapter(
+ element),
+ (String) value));
+ }
+ });
+ return valid.getCode() == ParserEditStatus.EDITABLE ? null
+ : valid.getMessage();
+ } catch (InterruptedException ie) {
+ ie.printStackTrace();
+ }
+ }
+
+ // shouldn't get here
+ return null;
+ }
+ };
+ }
+
+ /**
+ * @generated
+ */
+ public IContentAssistProcessor getCompletionProcessor() {
+ if (getParserElement() == null || getParser() == null) {
+ return null;
+ }
+ return getParser().getCompletionProcessor(
+ new EObjectAdapter(getParserElement()));
+ }
+
+ /**
+ * @generated
+ */
+ public ParserOptions getParserOptions() {
+ return ParserOptions.NONE;
+ }
+
+ /**
+ * @generated
+ */
+ public IParser getParser() {
+ if (parser == null) {
+ parser = ComrelParserProvider
+ .getParser(
+ ComrelElementTypes.ConditionalUnit_3046,
+ getParserElement(),
+ ComrelVisualIDRegistry
+ .getType(comrel.diagram.edit.parts.ConditionalUnitNameType3EditPart.VISUAL_ID));
+ }
+ return parser;
+ }
+
+ /**
+ * @generated
+ */
+ protected DirectEditManager getManager() {
+ if (manager == null) {
+ setManager(new TextDirectEditManager(this,
+ TextDirectEditManager.getTextCellEditorClass(this),
+ ComrelEditPartFactory.getTextCellEditorLocator(this)));
+ }
+ return manager;
+ }
+
+ /**
+ * @generated
+ */
+ protected void setManager(DirectEditManager manager) {
+ this.manager = manager;
+ }
+
+ /**
+ * @generated
+ */
+ protected void performDirectEdit() {
+ getManager().show();
+ }
+
+ /**
+ * @generated
+ */
+ protected void performDirectEdit(Point eventLocation) {
+ if (getManager().getClass() == TextDirectEditManager.class) {
+ ((TextDirectEditManager) getManager()).show(eventLocation
+ .getSWTPoint());
+ }
+ }
+
+ /**
+ * @generated
+ */
+ private void performDirectEdit(char initialCharacter) {
+ if (getManager() instanceof TextDirectEditManager) {
+ ((TextDirectEditManager) getManager()).show(initialCharacter);
+ } else {
+ performDirectEdit();
+ }
+ }
+
+ /**
+ * @generated
+ */
+ protected void performDirectEditRequest(Request request) {
+ final Request theRequest = request;
+ try {
+ getEditingDomain().runExclusive(new Runnable() {
+
+ public void run() {
+ if (isActive() && isEditable()) {
+ if (theRequest
+ .getExtendedData()
+ .get(RequestConstants.REQ_DIRECTEDIT_EXTENDEDDATA_INITIAL_CHAR) instanceof Character) {
+ Character initialChar = (Character) theRequest
+ .getExtendedData()
+ .get(RequestConstants.REQ_DIRECTEDIT_EXTENDEDDATA_INITIAL_CHAR);
+ performDirectEdit(initialChar.charValue());
+ } else if ((theRequest instanceof DirectEditRequest)
+ && (getEditText().equals(getLabelText()))) {
+ DirectEditRequest editRequest = (DirectEditRequest) theRequest;
+ performDirectEdit(editRequest.getLocation());
+ } else {
+ performDirectEdit();
+ }
+ }
+ }
+ });
+ } catch (InterruptedException e) {
+ e.printStackTrace();
+ }
+ }
+
+ /**
+ * @generated
+ */
+ protected void refreshVisuals() {
+ super.refreshVisuals();
+ refreshLabel();
+ refreshFont();
+ refreshFontColor();
+ refreshUnderline();
+ refreshStrikeThrough();
+ }
+
+ /**
+ * @generated
+ */
+ protected void refreshLabel() {
+ setLabelTextHelper(getFigure(), getLabelText());
+ setLabelIconHelper(getFigure(), getLabelIcon());
+ Object pdEditPolicy = getEditPolicy(EditPolicy.PRIMARY_DRAG_ROLE);
+ if (pdEditPolicy instanceof ComrelTextSelectionEditPolicy) {
+ ((ComrelTextSelectionEditPolicy) pdEditPolicy).refreshFeedback();
+ }
+ Object sfEditPolicy = getEditPolicy(EditPolicy.SELECTION_FEEDBACK_ROLE);
+ if (sfEditPolicy instanceof ComrelTextSelectionEditPolicy) {
+ ((ComrelTextSelectionEditPolicy) sfEditPolicy).refreshFeedback();
+ }
+ }
+
+ /**
+ * @generated
+ */
+ protected void refreshUnderline() {
+ FontStyle style = (FontStyle) getFontStyleOwnerView().getStyle(
+ NotationPackage.eINSTANCE.getFontStyle());
+ if (style != null && getFigure() instanceof WrappingLabel) {
+ ((WrappingLabel) getFigure()).setTextUnderline(style.isUnderline());
+ }
+ }
+
+ /**
+ * @generated
+ */
+ protected void refreshStrikeThrough() {
+ FontStyle style = (FontStyle) getFontStyleOwnerView().getStyle(
+ NotationPackage.eINSTANCE.getFontStyle());
+ if (style != null && getFigure() instanceof WrappingLabel) {
+ ((WrappingLabel) getFigure()).setTextStrikeThrough(style
+ .isStrikeThrough());
+ }
+ }
+
+ /**
+ * @generated
+ */
+ protected void refreshFont() {
+ FontStyle style = (FontStyle) getFontStyleOwnerView().getStyle(
+ NotationPackage.eINSTANCE.getFontStyle());
+ if (style != null) {
+ FontData fontData = new FontData(style.getFontName(),
+ style.getFontHeight(), (style.isBold() ? SWT.BOLD
+ : SWT.NORMAL)
+ | (style.isItalic() ? SWT.ITALIC : SWT.NORMAL));
+ setFont(fontData);
+ }
+ }
+
+ /**
+ * @generated
+ */
+ protected void setFontColor(Color color) {
+ getFigure().setForegroundColor(color);
+ }
+
+ /**
+ * @generated
+ */
+ protected void addSemanticListeners() {
+ if (getParser() instanceof ISemanticParser) {
+ EObject element = resolveSemanticElement();
+ parserElements = ((ISemanticParser) getParser())
+ .getSemanticElementsBeingParsed(element);
+ for (int i = 0; i < parserElements.size(); i++) {
+ addListenerFilter(
+ "SemanticModel" + i, this, (EObject) parserElements.get(i)); //$NON-NLS-1$
+ }
+ } else {
+ super.addSemanticListeners();
+ }
+ }
+
+ /**
+ * @generated
+ */
+ protected void removeSemanticListeners() {
+ if (parserElements != null) {
+ for (int i = 0; i < parserElements.size(); i++) {
+ removeListenerFilter("SemanticModel" + i); //$NON-NLS-1$
+ }
+ } else {
+ super.removeSemanticListeners();
+ }
+ }
+
+ /**
+ * @generated
+ */
+ protected AccessibleEditPart getAccessibleEditPart() {
+ if (accessibleEP == null) {
+ accessibleEP = new AccessibleGraphicalEditPart() {
+
+ public void getName(AccessibleEvent e) {
+ e.result = getLabelTextHelper(getFigure());
+ }
+ };
+ }
+ return accessibleEP;
+ }
+
+ /**
+ * @generated
+ */
+ private View getFontStyleOwnerView() {
+ return getPrimaryView();
+ }
+
+ /**
+ * @generated
+ */
+ protected void addNotationalListeners() {
+ super.addNotationalListeners();
+ addListenerFilter("PrimaryView", this, getPrimaryView()); //$NON-NLS-1$
+ }
+
+ /**
+ * @generated
+ */
+ protected void removeNotationalListeners() {
+ super.removeNotationalListeners();
+ removeListenerFilter("PrimaryView"); //$NON-NLS-1$
+ }
+
+ /**
+ * @generated
+ */
+ protected void handleNotificationEvent(Notification event) {
+ Object feature = event.getFeature();
+ if (NotationPackage.eINSTANCE.getFontStyle_FontColor().equals(feature)) {
+ Integer c = (Integer) event.getNewValue();
+ setFontColor(DiagramColorRegistry.getInstance().getColor(c));
+ } else if (NotationPackage.eINSTANCE.getFontStyle_Underline().equals(
+ feature)) {
+ refreshUnderline();
+ } else if (NotationPackage.eINSTANCE.getFontStyle_StrikeThrough()
+ .equals(feature)) {
+ refreshStrikeThrough();
+ } else if (NotationPackage.eINSTANCE.getFontStyle_FontHeight().equals(
+ feature)
+ || NotationPackage.eINSTANCE.getFontStyle_FontName().equals(
+ feature)
+ || NotationPackage.eINSTANCE.getFontStyle_Bold()
+ .equals(feature)
+ || NotationPackage.eINSTANCE.getFontStyle_Italic().equals(
+ feature)) {
+ refreshFont();
+ } else {
+ if (getParser() != null
+ && getParser().isAffectingEvent(event,
+ getParserOptions().intValue())) {
+ refreshLabel();
+ }
+ if (getParser() instanceof ISemanticParser) {
+ ISemanticParser modelParser = (ISemanticParser) getParser();
+ if (modelParser.areSemanticElementsAffected(null, event)) {
+ removeSemanticListeners();
+ if (resolveSemanticElement() != null) {
+ addSemanticListeners();
+ }
+ refreshLabel();
+ }
+ }
+ }
+ super.handleNotificationEvent(event);
+ }
+
+ /**
+ * @generated
+ */
+ protected IFigure createFigure() {
+ // Parent should assign one using setLabel() method
+ return null;
+ }
+
+}
diff --git a/org.eclipse.emf.refactor.comrel.diagram/src/comrel/diagram/edit/parts/ConditionalUnitNameType4EditPart.java b/org.eclipse.emf.refactor.comrel.diagram/src/comrel/diagram/edit/parts/ConditionalUnitNameType4EditPart.java
new file mode 100644
index 0000000..56a2b31
--- /dev/null
+++ b/org.eclipse.emf.refactor.comrel.diagram/src/comrel/diagram/edit/parts/ConditionalUnitNameType4EditPart.java
@@ -0,0 +1,576 @@
+/*
+ *
+ */
+package comrel.diagram.edit.parts;
+
+import java.util.Collections;
+import java.util.List;
+
+import org.eclipse.draw2d.IFigure;
+import org.eclipse.draw2d.Label;
+import org.eclipse.draw2d.geometry.Point;
+import org.eclipse.emf.common.notify.Notification;
+import org.eclipse.emf.ecore.EObject;
+import org.eclipse.emf.transaction.RunnableWithResult;
+import org.eclipse.gef.AccessibleEditPart;
+import org.eclipse.gef.EditPolicy;
+import org.eclipse.gef.Request;
+import org.eclipse.gef.requests.DirectEditRequest;
+import org.eclipse.gef.tools.DirectEditManager;
+import org.eclipse.gmf.runtime.common.ui.services.parser.IParser;
+import org.eclipse.gmf.runtime.common.ui.services.parser.IParserEditStatus;
+import org.eclipse.gmf.runtime.common.ui.services.parser.ParserEditStatus;
+import org.eclipse.gmf.runtime.common.ui.services.parser.ParserOptions;
+import org.eclipse.gmf.runtime.diagram.ui.editparts.CompartmentEditPart;
+import org.eclipse.gmf.runtime.diagram.ui.editparts.IGraphicalEditPart;
+import org.eclipse.gmf.runtime.diagram.ui.editparts.ITextAwareEditPart;
+import org.eclipse.gmf.runtime.diagram.ui.editpolicies.LabelDirectEditPolicy;
+import org.eclipse.gmf.runtime.diagram.ui.l10n.DiagramColorRegistry;
+import org.eclipse.gmf.runtime.diagram.ui.requests.RequestConstants;
+import org.eclipse.gmf.runtime.diagram.ui.tools.TextDirectEditManager;
+import org.eclipse.gmf.runtime.draw2d.ui.figures.WrappingLabel;
+import org.eclipse.gmf.runtime.emf.core.util.EObjectAdapter;
+import org.eclipse.gmf.runtime.emf.ui.services.parser.ISemanticParser;
+import org.eclipse.gmf.runtime.notation.FontStyle;
+import org.eclipse.gmf.runtime.notation.NotationPackage;
+import org.eclipse.gmf.runtime.notation.View;
+import org.eclipse.jface.text.contentassist.IContentAssistProcessor;
+import org.eclipse.jface.viewers.ICellEditorValidator;
+import org.eclipse.swt.SWT;
+import org.eclipse.swt.accessibility.AccessibleEvent;
+import org.eclipse.swt.graphics.Color;
+import org.eclipse.swt.graphics.FontData;
+import org.eclipse.swt.graphics.Image;
+
+import comrel.diagram.edit.policies.ComrelTextSelectionEditPolicy;
+import comrel.diagram.part.ComrelVisualIDRegistry;
+import comrel.diagram.providers.ComrelElementTypes;
+import comrel.diagram.providers.ComrelParserProvider;
+
+/**
+ * @generated
+ */
+public class ConditionalUnitNameType4EditPart extends CompartmentEditPart
+ implements ITextAwareEditPart {
+
+ /**
+ * @generated
+ */
+ public static final int VISUAL_ID = 5060;
+
+ /**
+ * @generated
+ */
+ private DirectEditManager manager;
+
+ /**
+ * @generated
+ */
+ private IParser parser;
+
+ /**
+ * @generated
+ */
+ private List<?> parserElements;
+
+ /**
+ * @generated
+ */
+ private String defaultText;
+
+ /**
+ * @generated
+ */
+ public ConditionalUnitNameType4EditPart(View view) {
+ super(view);
+ }
+
+ /**
+ * @generated
+ */
+ protected void createDefaultEditPolicies() {
+ super.createDefaultEditPolicies();
+ installEditPolicy(EditPolicy.SELECTION_FEEDBACK_ROLE,
+ new ComrelTextSelectionEditPolicy());
+ installEditPolicy(EditPolicy.DIRECT_EDIT_ROLE,
+ new LabelDirectEditPolicy());
+ installEditPolicy(EditPolicy.PRIMARY_DRAG_ROLE,
+ new CompositeRefactoringEditPart.NodeLabelDragPolicy());
+ }
+
+ /**
+ * @generated
+ */
+ protected String getLabelTextHelper(IFigure figure) {
+ if (figure instanceof WrappingLabel) {
+ return ((WrappingLabel) figure).getText();
+ } else {
+ return ((Label) figure).getText();
+ }
+ }
+
+ /**
+ * @generated
+ */
+ protected void setLabelTextHelper(IFigure figure, String text) {
+ if (figure instanceof WrappingLabel) {
+ ((WrappingLabel) figure).setText(text);
+ } else {
+ ((Label) figure).setText(text);
+ }
+ }
+
+ /**
+ * @generated
+ */
+ protected Image getLabelIconHelper(IFigure figure) {
+ if (figure instanceof WrappingLabel) {
+ return ((WrappingLabel) figure).getIcon();
+ } else {
+ return ((Label) figure).getIcon();
+ }
+ }
+
+ /**
+ * @generated
+ */
+ protected void setLabelIconHelper(IFigure figure, Image icon) {
+ if (figure instanceof WrappingLabel) {
+ ((WrappingLabel) figure).setIcon(icon);
+ } else {
+ ((Label) figure).setIcon(icon);
+ }
+ }
+
+ /**
+ * @generated
+ */
+ public void setLabel(WrappingLabel figure) {
+ unregisterVisuals();
+ setFigure(figure);
+ defaultText = getLabelTextHelper(figure);
+ registerVisuals();
+ refreshVisuals();
+ }
+
+ /**
+ * @generated
+ */
+ @SuppressWarnings("rawtypes")
+ protected List getModelChildren() {
+ return Collections.EMPTY_LIST;
+ }
+
+ /**
+ * @generated
+ */
+ public IGraphicalEditPart getChildBySemanticHint(String semanticHint) {
+ return null;
+ }
+
+ /**
+ * @generated
+ */
+ protected EObject getParserElement() {
+ return resolveSemanticElement();
+ }
+
+ /**
+ * @generated
+ */
+ protected Image getLabelIcon() {
+ return null;
+ }
+
+ /**
+ * @generated
+ */
+ protected String getLabelText() {
+ String text = null;
+ EObject parserElement = getParserElement();
+ if (parserElement != null && getParser() != null) {
+ text = getParser().getPrintString(
+ new EObjectAdapter(parserElement),
+ getParserOptions().intValue());
+ }
+ if (text == null || text.length() == 0) {
+ text = defaultText;
+ }
+ return text;
+ }
+
+ /**
+ * @generated
+ */
+ public void setLabelText(String text) {
+ setLabelTextHelper(getFigure(), text);
+ Object pdEditPolicy = getEditPolicy(EditPolicy.PRIMARY_DRAG_ROLE);
+ if (pdEditPolicy instanceof ComrelTextSelectionEditPolicy) {
+ ((ComrelTextSelectionEditPolicy) pdEditPolicy).refreshFeedback();
+ }
+ Object sfEditPolicy = getEditPolicy(EditPolicy.SELECTION_FEEDBACK_ROLE);
+ if (sfEditPolicy instanceof ComrelTextSelectionEditPolicy) {
+ ((ComrelTextSelectionEditPolicy) sfEditPolicy).refreshFeedback();
+ }
+ }
+
+ /**
+ * @generated
+ */
+ public String getEditText() {
+ if (getParserElement() == null || getParser() == null) {
+ return ""; //$NON-NLS-1$
+ }
+ return getParser().getEditString(
+ new EObjectAdapter(getParserElement()),
+ getParserOptions().intValue());
+ }
+
+ /**
+ * @generated
+ */
+ protected boolean isEditable() {
+ return getParser() != null;
+ }
+
+ /**
+ * @generated
+ */
+ public ICellEditorValidator getEditTextValidator() {
+ return new ICellEditorValidator() {
+
+ public String isValid(final Object value) {
+ if (value instanceof String) {
+ final EObject element = getParserElement();
+ final IParser parser = getParser();
+ try {
+ IParserEditStatus valid = (IParserEditStatus) getEditingDomain()
+ .runExclusive(
+ new RunnableWithResult.Impl<IParserEditStatus>() {
+
+ public void run() {
+ setResult(parser
+ .isValidEditString(
+ new EObjectAdapter(
+ element),
+ (String) value));
+ }
+ });
+ return valid.getCode() == ParserEditStatus.EDITABLE ? null
+ : valid.getMessage();
+ } catch (InterruptedException ie) {
+ ie.printStackTrace();
+ }
+ }
+
+ // shouldn't get here
+ return null;
+ }
+ };
+ }
+
+ /**
+ * @generated
+ */
+ public IContentAssistProcessor getCompletionProcessor() {
+ if (getParserElement() == null || getParser() == null) {
+ return null;
+ }
+ return getParser().getCompletionProcessor(
+ new EObjectAdapter(getParserElement()));
+ }
+
+ /**
+ * @generated
+ */
+ public ParserOptions getParserOptions() {
+ return ParserOptions.NONE;
+ }
+
+ /**
+ * @generated
+ */
+ public IParser getParser() {
+ if (parser == null) {
+ parser = ComrelParserProvider
+ .getParser(
+ ComrelElementTypes.ConditionalUnit_3066,
+ getParserElement(),
+ ComrelVisualIDRegistry
+ .getType(comrel.diagram.edit.parts.ConditionalUnitNameType4EditPart.VISUAL_ID));
+ }
+ return parser;
+ }
+
+ /**
+ * @generated
+ */
+ protected DirectEditManager getManager() {
+ if (manager == null) {
+ setManager(new TextDirectEditManager(this,
+ TextDirectEditManager.getTextCellEditorClass(this),
+ ComrelEditPartFactory.getTextCellEditorLocator(this)));
+ }
+ return manager;
+ }
+
+ /**
+ * @generated
+ */
+ protected void setManager(DirectEditManager manager) {
+ this.manager = manager;
+ }
+
+ /**
+ * @generated
+ */
+ protected void performDirectEdit() {
+ getManager().show();
+ }
+
+ /**
+ * @generated
+ */
+ protected void performDirectEdit(Point eventLocation) {
+ if (getManager().getClass() == TextDirectEditManager.class) {
+ ((TextDirectEditManager) getManager()).show(eventLocation
+ .getSWTPoint());
+ }
+ }
+
+ /**
+ * @generated
+ */
+ private void performDirectEdit(char initialCharacter) {
+ if (getManager() instanceof TextDirectEditManager) {
+ ((TextDirectEditManager) getManager()).show(initialCharacter);
+ } else {
+ performDirectEdit();
+ }
+ }
+
+ /**
+ * @generated
+ */
+ protected void performDirectEditRequest(Request request) {
+ final Request theRequest = request;
+ try {
+ getEditingDomain().runExclusive(new Runnable() {
+
+ public void run() {
+ if (isActive() && isEditable()) {
+ if (theRequest
+ .getExtendedData()
+ .get(RequestConstants.REQ_DIRECTEDIT_EXTENDEDDATA_INITIAL_CHAR) instanceof Character) {
+ Character initialChar = (Character) theRequest
+ .getExtendedData()
+ .get(RequestConstants.REQ_DIRECTEDIT_EXTENDEDDATA_INITIAL_CHAR);
+ performDirectEdit(initialChar.charValue());
+ } else if ((theRequest instanceof DirectEditRequest)
+ && (getEditText().equals(getLabelText()))) {
+ DirectEditRequest editRequest = (DirectEditRequest) theRequest;
+ performDirectEdit(editRequest.getLocation());
+ } else {
+ performDirectEdit();
+ }
+ }
+ }
+ });
+ } catch (InterruptedException e) {
+ e.printStackTrace();
+ }
+ }
+
+ /**
+ * @generated
+ */
+ protected void refreshVisuals() {
+ super.refreshVisuals();
+ refreshLabel();
+ refreshFont();
+ refreshFontColor();
+ refreshUnderline();
+ refreshStrikeThrough();
+ }
+
+ /**
+ * @generated
+ */
+ protected void refreshLabel() {
+ setLabelTextHelper(getFigure(), getLabelText());
+ setLabelIconHelper(getFigure(), getLabelIcon());
+ Object pdEditPolicy = getEditPolicy(EditPolicy.PRIMARY_DRAG_ROLE);
+ if (pdEditPolicy instanceof ComrelTextSelectionEditPolicy) {
+ ((ComrelTextSelectionEditPolicy) pdEditPolicy).refreshFeedback();
+ }
+ Object sfEditPolicy = getEditPolicy(EditPolicy.SELECTION_FEEDBACK_ROLE);
+ if (sfEditPolicy instanceof ComrelTextSelectionEditPolicy) {
+ ((ComrelTextSelectionEditPolicy) sfEditPolicy).refreshFeedback();
+ }
+ }
+
+ /**
+ * @generated
+ */
+ protected void refreshUnderline() {
+ FontStyle style = (FontStyle) getFontStyleOwnerView().getStyle(
+ NotationPackage.eINSTANCE.getFontStyle());
+ if (style != null && getFigure() instanceof WrappingLabel) {
+ ((WrappingLabel) getFigure()).setTextUnderline(style.isUnderline());
+ }
+ }
+
+ /**
+ * @generated
+ */
+ protected void refreshStrikeThrough() {
+ FontStyle style = (FontStyle) getFontStyleOwnerView().getStyle(
+ NotationPackage.eINSTANCE.getFontStyle());
+ if (style != null && getFigure() instanceof WrappingLabel) {
+ ((WrappingLabel) getFigure()).setTextStrikeThrough(style
+ .isStrikeThrough());
+ }
+ }
+
+ /**
+ * @generated
+ */
+ protected void refreshFont() {
+ FontStyle style = (FontStyle) getFontStyleOwnerView().getStyle(
+ NotationPackage.eINSTANCE.getFontStyle());
+ if (style != null) {
+ FontData fontData = new FontData(style.getFontName(),
+ style.getFontHeight(), (style.isBold() ? SWT.BOLD
+ : SWT.NORMAL)
+ | (style.isItalic() ? SWT.ITALIC : SWT.NORMAL));
+ setFont(fontData);
+ }
+ }
+
+ /**
+ * @generated
+ */
+ protected void setFontColor(Color color) {
+ getFigure().setForegroundColor(color);
+ }
+
+ /**
+ * @generated
+ */
+ protected void addSemanticListeners() {
+ if (getParser() instanceof ISemanticParser) {
+ EObject element = resolveSemanticElement();
+ parserElements = ((ISemanticParser) getParser())
+ .getSemanticElementsBeingParsed(element);
+ for (int i = 0; i < parserElements.size(); i++) {
+ addListenerFilter(
+ "SemanticModel" + i, this, (EObject) parserElements.get(i)); //$NON-NLS-1$
+ }
+ } else {
+ super.addSemanticListeners();
+ }
+ }
+
+ /**
+ * @generated
+ */
+ protected void removeSemanticListeners() {
+ if (parserElements != null) {
+ for (int i = 0; i < parserElements.size(); i++) {
+ removeListenerFilter("SemanticModel" + i); //$NON-NLS-1$
+ }
+ } else {
+ super.removeSemanticListeners();
+ }
+ }
+
+ /**
+ * @generated
+ */
+ protected AccessibleEditPart getAccessibleEditPart() {
+ if (accessibleEP == null) {
+ accessibleEP = new AccessibleGraphicalEditPart() {
+
+ public void getName(AccessibleEvent e) {
+ e.result = getLabelTextHelper(getFigure());
+ }
+ };
+ }
+ return accessibleEP;
+ }
+
+ /**
+ * @generated
+ */
+ private View getFontStyleOwnerView() {
+ return getPrimaryView();
+ }
+
+ /**
+ * @generated
+ */
+ protected void addNotationalListeners() {
+ super.addNotationalListeners();
+ addListenerFilter("PrimaryView", this, getPrimaryView()); //$NON-NLS-1$
+ }
+
+ /**
+ * @generated
+ */
+ protected void removeNotationalListeners() {
+ super.removeNotationalListeners();
+ removeListenerFilter("PrimaryView"); //$NON-NLS-1$
+ }
+
+ /**
+ * @generated
+ */
+ protected void handleNotificationEvent(Notification event) {
+ Object feature = event.getFeature();
+ if (NotationPackage.eINSTANCE.getFontStyle_FontColor().equals(feature)) {
+ Integer c = (Integer) event.getNewValue();
+ setFontColor(DiagramColorRegistry.getInstance().getColor(c));
+ } else if (NotationPackage.eINSTANCE.getFontStyle_Underline().equals(
+ feature)) {
+ refreshUnderline();
+ } else if (NotationPackage.eINSTANCE.getFontStyle_StrikeThrough()
+ .equals(feature)) {
+ refreshStrikeThrough();
+ } else if (NotationPackage.eINSTANCE.getFontStyle_FontHeight().equals(
+ feature)
+ || NotationPackage.eINSTANCE.getFontStyle_FontName().equals(
+ feature)
+ || NotationPackage.eINSTANCE.getFontStyle_Bold()
+ .equals(feature)
+ || NotationPackage.eINSTANCE.getFontStyle_Italic().equals(
+ feature)) {
+ refreshFont();
+ } else {
+ if (getParser() != null
+ && getParser().isAffectingEvent(event,
+ getParserOptions().intValue())) {
+ refreshLabel();
+ }
+ if (getParser() instanceof ISemanticParser) {
+ ISemanticParser modelParser = (ISemanticParser) getParser();
+ if (modelParser.areSemanticElementsAffected(null, event)) {
+ removeSemanticListeners();
+ if (resolveSemanticElement() != null) {
+ addSemanticListeners();
+ }
+ refreshLabel();
+ }
+ }
+ }
+ super.handleNotificationEvent(event);
+ }
+
+ /**
+ * @generated
+ */
+ protected IFigure createFigure() {
+ // Parent should assign one using setLabel() method
+ return null;
+ }
+
+}
diff --git a/org.eclipse.emf.refactor.comrel.diagram/src/comrel/diagram/edit/parts/ConditionalUnitNameType5EditPart.java b/org.eclipse.emf.refactor.comrel.diagram/src/comrel/diagram/edit/parts/ConditionalUnitNameType5EditPart.java
new file mode 100644
index 0000000..3eccb94
--- /dev/null
+++ b/org.eclipse.emf.refactor.comrel.diagram/src/comrel/diagram/edit/parts/ConditionalUnitNameType5EditPart.java
@@ -0,0 +1,576 @@
+/*
+ *
+ */
+package comrel.diagram.edit.parts;
+
+import java.util.Collections;
+import java.util.List;
+
+import org.eclipse.draw2d.IFigure;
+import org.eclipse.draw2d.Label;
+import org.eclipse.draw2d.geometry.Point;
+import org.eclipse.emf.common.notify.Notification;
+import org.eclipse.emf.ecore.EObject;
+import org.eclipse.emf.transaction.RunnableWithResult;
+import org.eclipse.gef.AccessibleEditPart;
+import org.eclipse.gef.EditPolicy;
+import org.eclipse.gef.Request;
+import org.eclipse.gef.requests.DirectEditRequest;
+import org.eclipse.gef.tools.DirectEditManager;
+import org.eclipse.gmf.runtime.common.ui.services.parser.IParser;
+import org.eclipse.gmf.runtime.common.ui.services.parser.IParserEditStatus;
+import org.eclipse.gmf.runtime.common.ui.services.parser.ParserEditStatus;
+import org.eclipse.gmf.runtime.common.ui.services.parser.ParserOptions;
+import org.eclipse.gmf.runtime.diagram.ui.editparts.CompartmentEditPart;
+import org.eclipse.gmf.runtime.diagram.ui.editparts.IGraphicalEditPart;
+import org.eclipse.gmf.runtime.diagram.ui.editparts.ITextAwareEditPart;
+import org.eclipse.gmf.runtime.diagram.ui.editpolicies.LabelDirectEditPolicy;
+import org.eclipse.gmf.runtime.diagram.ui.l10n.DiagramColorRegistry;
+import org.eclipse.gmf.runtime.diagram.ui.requests.RequestConstants;
+import org.eclipse.gmf.runtime.diagram.ui.tools.TextDirectEditManager;
+import org.eclipse.gmf.runtime.draw2d.ui.figures.WrappingLabel;
+import org.eclipse.gmf.runtime.emf.core.util.EObjectAdapter;
+import org.eclipse.gmf.runtime.emf.ui.services.parser.ISemanticParser;
+import org.eclipse.gmf.runtime.notation.FontStyle;
+import org.eclipse.gmf.runtime.notation.NotationPackage;
+import org.eclipse.gmf.runtime.notation.View;
+import org.eclipse.jface.text.contentassist.IContentAssistProcessor;
+import org.eclipse.jface.viewers.ICellEditorValidator;
+import org.eclipse.swt.SWT;
+import org.eclipse.swt.accessibility.AccessibleEvent;
+import org.eclipse.swt.graphics.Color;
+import org.eclipse.swt.graphics.FontData;
+import org.eclipse.swt.graphics.Image;
+
+import comrel.diagram.edit.policies.ComrelTextSelectionEditPolicy;
+import comrel.diagram.part.ComrelVisualIDRegistry;
+import comrel.diagram.providers.ComrelElementTypes;
+import comrel.diagram.providers.ComrelParserProvider;
+
+/**
+ * @generated
+ */
+public class ConditionalUnitNameType5EditPart extends CompartmentEditPart
+ implements ITextAwareEditPart {
+
+ /**
+ * @generated
+ */
+ public static final int VISUAL_ID = 5057;
+
+ /**
+ * @generated
+ */
+ private DirectEditManager manager;
+
+ /**
+ * @generated
+ */
+ private IParser parser;
+
+ /**
+ * @generated
+ */
+ private List<?> parserElements;
+
+ /**
+ * @generated
+ */
+ private String defaultText;
+
+ /**
+ * @generated
+ */
+ public ConditionalUnitNameType5EditPart(View view) {
+ super(view);
+ }
+
+ /**
+ * @generated
+ */
+ protected void createDefaultEditPolicies() {
+ super.createDefaultEditPolicies();
+ installEditPolicy(EditPolicy.SELECTION_FEEDBACK_ROLE,
+ new ComrelTextSelectionEditPolicy());
+ installEditPolicy(EditPolicy.DIRECT_EDIT_ROLE,
+ new LabelDirectEditPolicy());
+ installEditPolicy(EditPolicy.PRIMARY_DRAG_ROLE,
+ new CompositeRefactoringEditPart.NodeLabelDragPolicy());
+ }
+
+ /**
+ * @generated
+ */
+ protected String getLabelTextHelper(IFigure figure) {
+ if (figure instanceof WrappingLabel) {
+ return ((WrappingLabel) figure).getText();
+ } else {
+ return ((Label) figure).getText();
+ }
+ }
+
+ /**
+ * @generated
+ */
+ protected void setLabelTextHelper(IFigure figure, String text) {
+ if (figure instanceof WrappingLabel) {
+ ((WrappingLabel) figure).setText(text);
+ } else {
+ ((Label) figure).setText(text);
+ }
+ }
+
+ /**
+ * @generated
+ */
+ protected Image getLabelIconHelper(IFigure figure) {
+ if (figure instanceof WrappingLabel) {
+ return ((WrappingLabel) figure).getIcon();
+ } else {
+ return ((Label) figure).getIcon();
+ }
+ }
+
+ /**
+ * @generated
+ */
+ protected void setLabelIconHelper(IFigure figure, Image icon) {
+ if (figure instanceof WrappingLabel) {
+ ((WrappingLabel) figure).setIcon(icon);
+ } else {
+ ((Label) figure).setIcon(icon);
+ }
+ }
+
+ /**
+ * @generated
+ */
+ public void setLabel(WrappingLabel figure) {
+ unregisterVisuals();
+ setFigure(figure);
+ defaultText = getLabelTextHelper(figure);
+ registerVisuals();
+ refreshVisuals();
+ }
+
+ /**
+ * @generated
+ */
+ @SuppressWarnings("rawtypes")
+ protected List getModelChildren() {
+ return Collections.EMPTY_LIST;
+ }
+
+ /**
+ * @generated
+ */
+ public IGraphicalEditPart getChildBySemanticHint(String semanticHint) {
+ return null;
+ }
+
+ /**
+ * @generated
+ */
+ protected EObject getParserElement() {
+ return resolveSemanticElement();
+ }
+
+ /**
+ * @generated
+ */
+ protected Image getLabelIcon() {
+ return null;
+ }
+
+ /**
+ * @generated
+ */
+ protected String getLabelText() {
+ String text = null;
+ EObject parserElement = getParserElement();
+ if (parserElement != null && getParser() != null) {
+ text = getParser().getPrintString(
+ new EObjectAdapter(parserElement),
+ getParserOptions().intValue());
+ }
+ if (text == null || text.length() == 0) {
+ text = defaultText;
+ }
+ return text;
+ }
+
+ /**
+ * @generated
+ */
+ public void setLabelText(String text) {
+ setLabelTextHelper(getFigure(), text);
+ Object pdEditPolicy = getEditPolicy(EditPolicy.PRIMARY_DRAG_ROLE);
+ if (pdEditPolicy instanceof ComrelTextSelectionEditPolicy) {
+ ((ComrelTextSelectionEditPolicy) pdEditPolicy).refreshFeedback();
+ }
+ Object sfEditPolicy = getEditPolicy(EditPolicy.SELECTION_FEEDBACK_ROLE);
+ if (sfEditPolicy instanceof ComrelTextSelectionEditPolicy) {
+ ((ComrelTextSelectionEditPolicy) sfEditPolicy).refreshFeedback();
+ }
+ }
+
+ /**
+ * @generated
+ */
+ public String getEditText() {
+ if (getParserElement() == null || getParser() == null) {
+ return ""; //$NON-NLS-1$
+ }
+ return getParser().getEditString(
+ new EObjectAdapter(getParserElement()),
+ getParserOptions().intValue());
+ }
+
+ /**
+ * @generated
+ */
+ protected boolean isEditable() {
+ return getParser() != null;
+ }
+
+ /**
+ * @generated
+ */
+ public ICellEditorValidator getEditTextValidator() {
+ return new ICellEditorValidator() {
+
+ public String isValid(final Object value) {
+ if (value instanceof String) {
+ final EObject element = getParserElement();
+ final IParser parser = getParser();
+ try {
+ IParserEditStatus valid = (IParserEditStatus) getEditingDomain()
+ .runExclusive(
+ new RunnableWithResult.Impl<IParserEditStatus>() {
+
+ public void run() {
+ setResult(parser
+ .isValidEditString(
+ new EObjectAdapter(
+ element),
+ (String) value));
+ }
+ });
+ return valid.getCode() == ParserEditStatus.EDITABLE ? null
+ : valid.getMessage();
+ } catch (InterruptedException ie) {
+ ie.printStackTrace();
+ }
+ }
+
+ // shouldn't get here
+ return null;
+ }
+ };
+ }
+
+ /**
+ * @generated
+ */
+ public IContentAssistProcessor getCompletionProcessor() {
+ if (getParserElement() == null || getParser() == null) {
+ return null;
+ }
+ return getParser().getCompletionProcessor(
+ new EObjectAdapter(getParserElement()));
+ }
+
+ /**
+ * @generated
+ */
+ public ParserOptions getParserOptions() {
+ return ParserOptions.NONE;
+ }
+
+ /**
+ * @generated
+ */
+ public IParser getParser() {
+ if (parser == null) {
+ parser = ComrelParserProvider
+ .getParser(
+ ComrelElementTypes.ConditionalUnit_3071,
+ getParserElement(),
+ ComrelVisualIDRegistry
+ .getType(comrel.diagram.edit.parts.ConditionalUnitNameType5EditPart.VISUAL_ID));
+ }
+ return parser;
+ }
+
+ /**
+ * @generated
+ */
+ protected DirectEditManager getManager() {
+ if (manager == null) {
+ setManager(new TextDirectEditManager(this,
+ TextDirectEditManager.getTextCellEditorClass(this),
+ ComrelEditPartFactory.getTextCellEditorLocator(this)));
+ }
+ return manager;
+ }
+
+ /**
+ * @generated
+ */
+ protected void setManager(DirectEditManager manager) {
+ this.manager = manager;
+ }
+
+ /**
+ * @generated
+ */
+ protected void performDirectEdit() {
+ getManager().show();
+ }
+
+ /**
+ * @generated
+ */
+ protected void performDirectEdit(Point eventLocation) {
+ if (getManager().getClass() == TextDirectEditManager.class) {
+ ((TextDirectEditManager) getManager()).show(eventLocation
+ .getSWTPoint());
+ }
+ }
+
+ /**
+ * @generated
+ */
+ private void performDirectEdit(char initialCharacter) {
+ if (getManager() instanceof TextDirectEditManager) {
+ ((TextDirectEditManager) getManager()).show(initialCharacter);
+ } else {
+ performDirectEdit();
+ }
+ }
+
+ /**
+ * @generated
+ */
+ protected void performDirectEditRequest(Request request) {
+ final Request theRequest = request;
+ try {
+ getEditingDomain().runExclusive(new Runnable() {
+
+ public void run() {
+ if (isActive() && isEditable()) {
+ if (theRequest
+ .getExtendedData()
+ .get(RequestConstants.REQ_DIRECTEDIT_EXTENDEDDATA_INITIAL_CHAR) instanceof Character) {
+ Character initialChar = (Character) theRequest
+ .getExtendedData()
+ .get(RequestConstants.REQ_DIRECTEDIT_EXTENDEDDATA_INITIAL_CHAR);
+ performDirectEdit(initialChar.charValue());
+ } else if ((theRequest instanceof DirectEditRequest)
+ && (getEditText().equals(getLabelText()))) {
+ DirectEditRequest editRequest = (DirectEditRequest) theRequest;
+ performDirectEdit(editRequest.getLocation());
+ } else {
+ performDirectEdit();
+ }
+ }
+ }
+ });
+ } catch (InterruptedException e) {
+ e.printStackTrace();
+ }
+ }
+
+ /**
+ * @generated
+ */
+ protected void refreshVisuals() {
+ super.refreshVisuals();
+ refreshLabel();
+ refreshFont();
+ refreshFontColor();
+ refreshUnderline();
+ refreshStrikeThrough();
+ }
+
+ /**
+ * @generated
+ */
+ protected void refreshLabel() {
+ setLabelTextHelper(getFigure(), getLabelText());
+ setLabelIconHelper(getFigure(), getLabelIcon());
+ Object pdEditPolicy = getEditPolicy(EditPolicy.PRIMARY_DRAG_ROLE);
+ if (pdEditPolicy instanceof ComrelTextSelectionEditPolicy) {
+ ((ComrelTextSelectionEditPolicy) pdEditPolicy).refreshFeedback();
+ }
+ Object sfEditPolicy = getEditPolicy(EditPolicy.SELECTION_FEEDBACK_ROLE);
+ if (sfEditPolicy instanceof ComrelTextSelectionEditPolicy) {
+ ((ComrelTextSelectionEditPolicy) sfEditPolicy).refreshFeedback();
+ }
+ }
+
+ /**
+ * @generated
+ */
+ protected void refreshUnderline() {
+ FontStyle style = (FontStyle) getFontStyleOwnerView().getStyle(
+ NotationPackage.eINSTANCE.getFontStyle());
+ if (style != null && getFigure() instanceof WrappingLabel) {
+ ((WrappingLabel) getFigure()).setTextUnderline(style.isUnderline());
+ }
+ }
+
+ /**
+ * @generated
+ */
+ protected void refreshStrikeThrough() {
+ FontStyle style = (FontStyle) getFontStyleOwnerView().getStyle(
+ NotationPackage.eINSTANCE.getFontStyle());
+ if (style != null && getFigure() instanceof WrappingLabel) {
+ ((WrappingLabel) getFigure()).setTextStrikeThrough(style
+ .isStrikeThrough());
+ }
+ }
+
+ /**
+ * @generated
+ */
+ protected void refreshFont() {
+ FontStyle style = (FontStyle) getFontStyleOwnerView().getStyle(
+ NotationPackage.eINSTANCE.getFontStyle());
+ if (style != null) {
+ FontData fontData = new FontData(style.getFontName(),
+ style.getFontHeight(), (style.isBold() ? SWT.BOLD
+ : SWT.NORMAL)
+ | (style.isItalic() ? SWT.ITALIC : SWT.NORMAL));
+ setFont(fontData);
+ }
+ }
+
+ /**
+ * @generated
+ */
+ protected void setFontColor(Color color) {
+ getFigure().setForegroundColor(color);
+ }
+
+ /**
+ * @generated
+ */
+ protected void addSemanticListeners() {
+ if (getParser() instanceof ISemanticParser) {
+ EObject element = resolveSemanticElement();
+ parserElements = ((ISemanticParser) getParser())
+ .getSemanticElementsBeingParsed(element);
+ for (int i = 0; i < parserElements.size(); i++) {
+ addListenerFilter(
+ "SemanticModel" + i, this, (EObject) parserElements.get(i)); //$NON-NLS-1$
+ }
+ } else {
+ super.addSemanticListeners();
+ }
+ }
+
+ /**
+ * @generated
+ */
+ protected void removeSemanticListeners() {
+ if (parserElements != null) {
+ for (int i = 0; i < parserElements.size(); i++) {
+ removeListenerFilter("SemanticModel" + i); //$NON-NLS-1$
+ }
+ } else {
+ super.removeSemanticListeners();
+ }
+ }
+
+ /**
+ * @generated
+ */
+ protected AccessibleEditPart getAccessibleEditPart() {
+ if (accessibleEP == null) {
+ accessibleEP = new AccessibleGraphicalEditPart() {
+
+ public void getName(AccessibleEvent e) {
+ e.result = getLabelTextHelper(getFigure());
+ }
+ };
+ }
+ return accessibleEP;
+ }
+
+ /**
+ * @generated
+ */
+ private View getFontStyleOwnerView() {
+ return getPrimaryView();
+ }
+
+ /**
+ * @generated
+ */
+ protected void addNotationalListeners() {
+ super.addNotationalListeners();
+ addListenerFilter("PrimaryView", this, getPrimaryView()); //$NON-NLS-1$
+ }
+
+ /**
+ * @generated
+ */
+ protected void removeNotationalListeners() {
+ super.removeNotationalListeners();
+ removeListenerFilter("PrimaryView"); //$NON-NLS-1$
+ }
+
+ /**
+ * @generated
+ */
+ protected void handleNotificationEvent(Notification event) {
+ Object feature = event.getFeature();
+ if (NotationPackage.eINSTANCE.getFontStyle_FontColor().equals(feature)) {
+ Integer c = (Integer) event.getNewValue();
+ setFontColor(DiagramColorRegistry.getInstance().getColor(c));
+ } else if (NotationPackage.eINSTANCE.getFontStyle_Underline().equals(
+ feature)) {
+ refreshUnderline();
+ } else if (NotationPackage.eINSTANCE.getFontStyle_StrikeThrough()
+ .equals(feature)) {
+ refreshStrikeThrough();
+ } else if (NotationPackage.eINSTANCE.getFontStyle_FontHeight().equals(
+ feature)
+ || NotationPackage.eINSTANCE.getFontStyle_FontName().equals(
+ feature)
+ || NotationPackage.eINSTANCE.getFontStyle_Bold()
+ .equals(feature)
+ || NotationPackage.eINSTANCE.getFontStyle_Italic().equals(
+ feature)) {
+ refreshFont();
+ } else {
+ if (getParser() != null
+ && getParser().isAffectingEvent(event,
+ getParserOptions().intValue())) {
+ refreshLabel();
+ }
+ if (getParser() instanceof ISemanticParser) {
+ ISemanticParser modelParser = (ISemanticParser) getParser();
+ if (modelParser.areSemanticElementsAffected(null, event)) {
+ removeSemanticListeners();
+ if (resolveSemanticElement() != null) {
+ addSemanticListeners();
+ }
+ refreshLabel();
+ }
+ }
+ }
+ super.handleNotificationEvent(event);
+ }
+
+ /**
+ * @generated
+ */
+ protected IFigure createFigure() {
+ // Parent should assign one using setLabel() method
+ return null;
+ }
+
+}
diff --git a/org.eclipse.emf.refactor.comrel.diagram/src/comrel/diagram/edit/parts/ConditionalUnitNameType6EditPart.java b/org.eclipse.emf.refactor.comrel.diagram/src/comrel/diagram/edit/parts/ConditionalUnitNameType6EditPart.java
new file mode 100644
index 0000000..6b83351
--- /dev/null
+++ b/org.eclipse.emf.refactor.comrel.diagram/src/comrel/diagram/edit/parts/ConditionalUnitNameType6EditPart.java
@@ -0,0 +1,576 @@
+/*
+ *
+ */
+package comrel.diagram.edit.parts;
+
+import java.util.Collections;
+import java.util.List;
+
+import org.eclipse.draw2d.IFigure;
+import org.eclipse.draw2d.Label;
+import org.eclipse.draw2d.geometry.Point;
+import org.eclipse.emf.common.notify.Notification;
+import org.eclipse.emf.ecore.EObject;
+import org.eclipse.emf.transaction.RunnableWithResult;
+import org.eclipse.gef.AccessibleEditPart;
+import org.eclipse.gef.EditPolicy;
+import org.eclipse.gef.Request;
+import org.eclipse.gef.requests.DirectEditRequest;
+import org.eclipse.gef.tools.DirectEditManager;
+import org.eclipse.gmf.runtime.common.ui.services.parser.IParser;
+import org.eclipse.gmf.runtime.common.ui.services.parser.IParserEditStatus;
+import org.eclipse.gmf.runtime.common.ui.services.parser.ParserEditStatus;
+import org.eclipse.gmf.runtime.common.ui.services.parser.ParserOptions;
+import org.eclipse.gmf.runtime.diagram.ui.editparts.CompartmentEditPart;
+import org.eclipse.gmf.runtime.diagram.ui.editparts.IGraphicalEditPart;
+import org.eclipse.gmf.runtime.diagram.ui.editparts.ITextAwareEditPart;
+import org.eclipse.gmf.runtime.diagram.ui.editpolicies.LabelDirectEditPolicy;
+import org.eclipse.gmf.runtime.diagram.ui.l10n.DiagramColorRegistry;
+import org.eclipse.gmf.runtime.diagram.ui.requests.RequestConstants;
+import org.eclipse.gmf.runtime.diagram.ui.tools.TextDirectEditManager;
+import org.eclipse.gmf.runtime.draw2d.ui.figures.WrappingLabel;
+import org.eclipse.gmf.runtime.emf.core.util.EObjectAdapter;
+import org.eclipse.gmf.runtime.emf.ui.services.parser.ISemanticParser;
+import org.eclipse.gmf.runtime.notation.FontStyle;
+import org.eclipse.gmf.runtime.notation.NotationPackage;
+import org.eclipse.gmf.runtime.notation.View;
+import org.eclipse.jface.text.contentassist.IContentAssistProcessor;
+import org.eclipse.jface.viewers.ICellEditorValidator;
+import org.eclipse.swt.SWT;
+import org.eclipse.swt.accessibility.AccessibleEvent;
+import org.eclipse.swt.graphics.Color;
+import org.eclipse.swt.graphics.FontData;
+import org.eclipse.swt.graphics.Image;
+
+import comrel.diagram.edit.policies.ComrelTextSelectionEditPolicy;
+import comrel.diagram.part.ComrelVisualIDRegistry;
+import comrel.diagram.providers.ComrelElementTypes;
+import comrel.diagram.providers.ComrelParserProvider;
+
+/**
+ * @generated
+ */
+public class ConditionalUnitNameType6EditPart extends CompartmentEditPart
+ implements ITextAwareEditPart {
+
+ /**
+ * @generated
+ */
+ public static final int VISUAL_ID = 5056;
+
+ /**
+ * @generated
+ */
+ private DirectEditManager manager;
+
+ /**
+ * @generated
+ */
+ private IParser parser;
+
+ /**
+ * @generated
+ */
+ private List<?> parserElements;
+
+ /**
+ * @generated
+ */
+ private String defaultText;
+
+ /**
+ * @generated
+ */
+ public ConditionalUnitNameType6EditPart(View view) {
+ super(view);
+ }
+
+ /**
+ * @generated
+ */
+ protected void createDefaultEditPolicies() {
+ super.createDefaultEditPolicies();
+ installEditPolicy(EditPolicy.SELECTION_FEEDBACK_ROLE,
+ new ComrelTextSelectionEditPolicy());
+ installEditPolicy(EditPolicy.DIRECT_EDIT_ROLE,
+ new LabelDirectEditPolicy());
+ installEditPolicy(EditPolicy.PRIMARY_DRAG_ROLE,
+ new CompositeRefactoringEditPart.NodeLabelDragPolicy());
+ }
+
+ /**
+ * @generated
+ */
+ protected String getLabelTextHelper(IFigure figure) {
+ if (figure instanceof WrappingLabel) {
+ return ((WrappingLabel) figure).getText();
+ } else {
+ return ((Label) figure).getText();
+ }
+ }
+
+ /**
+ * @generated
+ */
+ protected void setLabelTextHelper(IFigure figure, String text) {
+ if (figure instanceof WrappingLabel) {
+ ((WrappingLabel) figure).setText(text);
+ } else {
+ ((Label) figure).setText(text);
+ }
+ }
+
+ /**
+ * @generated
+ */
+ protected Image getLabelIconHelper(IFigure figure) {
+ if (figure instanceof WrappingLabel) {
+ return ((WrappingLabel) figure).getIcon();
+ } else {
+ return ((Label) figure).getIcon();
+ }
+ }
+
+ /**
+ * @generated
+ */
+ protected void setLabelIconHelper(IFigure figure, Image icon) {
+ if (figure instanceof WrappingLabel) {
+ ((WrappingLabel) figure).setIcon(icon);
+ } else {
+ ((Label) figure).setIcon(icon);
+ }
+ }
+
+ /**
+ * @generated
+ */
+ public void setLabel(WrappingLabel figure) {
+ unregisterVisuals();
+ setFigure(figure);
+ defaultText = getLabelTextHelper(figure);
+ registerVisuals();
+ refreshVisuals();
+ }
+
+ /**
+ * @generated
+ */
+ @SuppressWarnings("rawtypes")
+ protected List getModelChildren() {
+ return Collections.EMPTY_LIST;
+ }
+
+ /**
+ * @generated
+ */
+ public IGraphicalEditPart getChildBySemanticHint(String semanticHint) {
+ return null;
+ }
+
+ /**
+ * @generated
+ */
+ protected EObject getParserElement() {
+ return resolveSemanticElement();
+ }
+
+ /**
+ * @generated
+ */
+ protected Image getLabelIcon() {
+ return null;
+ }
+
+ /**
+ * @generated
+ */
+ protected String getLabelText() {
+ String text = null;
+ EObject parserElement = getParserElement();
+ if (parserElement != null && getParser() != null) {
+ text = getParser().getPrintString(
+ new EObjectAdapter(parserElement),
+ getParserOptions().intValue());
+ }
+ if (text == null || text.length() == 0) {
+ text = defaultText;
+ }
+ return text;
+ }
+
+ /**
+ * @generated
+ */
+ public void setLabelText(String text) {
+ setLabelTextHelper(getFigure(), text);
+ Object pdEditPolicy = getEditPolicy(EditPolicy.PRIMARY_DRAG_ROLE);
+ if (pdEditPolicy instanceof ComrelTextSelectionEditPolicy) {
+ ((ComrelTextSelectionEditPolicy) pdEditPolicy).refreshFeedback();
+ }
+ Object sfEditPolicy = getEditPolicy(EditPolicy.SELECTION_FEEDBACK_ROLE);
+ if (sfEditPolicy instanceof ComrelTextSelectionEditPolicy) {
+ ((ComrelTextSelectionEditPolicy) sfEditPolicy).refreshFeedback();
+ }
+ }
+
+ /**
+ * @generated
+ */
+ public String getEditText() {
+ if (getParserElement() == null || getParser() == null) {
+ return ""; //$NON-NLS-1$
+ }
+ return getParser().getEditString(
+ new EObjectAdapter(getParserElement()),
+ getParserOptions().intValue());
+ }
+
+ /**
+ * @generated
+ */
+ protected boolean isEditable() {
+ return getParser() != null;
+ }
+
+ /**
+ * @generated
+ */
+ public ICellEditorValidator getEditTextValidator() {
+ return new ICellEditorValidator() {
+
+ public String isValid(final Object value) {
+ if (value instanceof String) {
+ final EObject element = getParserElement();
+ final IParser parser = getParser();
+ try {
+ IParserEditStatus valid = (IParserEditStatus) getEditingDomain()
+ .runExclusive(
+ new RunnableWithResult.Impl<IParserEditStatus>() {
+
+ public void run() {
+ setResult(parser
+ .isValidEditString(
+ new EObjectAdapter(
+ element),
+ (String) value));
+ }
+ });
+ return valid.getCode() == ParserEditStatus.EDITABLE ? null
+ : valid.getMessage();
+ } catch (InterruptedException ie) {
+ ie.printStackTrace();
+ }
+ }
+
+ // shouldn't get here
+ return null;
+ }
+ };
+ }
+
+ /**
+ * @generated
+ */
+ public IContentAssistProcessor getCompletionProcessor() {
+ if (getParserElement() == null || getParser() == null) {
+ return null;
+ }
+ return getParser().getCompletionProcessor(
+ new EObjectAdapter(getParserElement()));
+ }
+
+ /**
+ * @generated
+ */
+ public ParserOptions getParserOptions() {
+ return ParserOptions.NONE;
+ }
+
+ /**
+ * @generated
+ */
+ public IParser getParser() {
+ if (parser == null) {
+ parser = ComrelParserProvider
+ .getParser(
+ ComrelElementTypes.ConditionalUnit_3072,
+ getParserElement(),
+ ComrelVisualIDRegistry
+ .getType(comrel.diagram.edit.parts.ConditionalUnitNameType6EditPart.VISUAL_ID));
+ }
+ return parser;
+ }
+
+ /**
+ * @generated
+ */
+ protected DirectEditManager getManager() {
+ if (manager == null) {
+ setManager(new TextDirectEditManager(this,
+ TextDirectEditManager.getTextCellEditorClass(this),
+ ComrelEditPartFactory.getTextCellEditorLocator(this)));
+ }
+ return manager;
+ }
+
+ /**
+ * @generated
+ */
+ protected void setManager(DirectEditManager manager) {
+ this.manager = manager;
+ }
+
+ /**
+ * @generated
+ */
+ protected void performDirectEdit() {
+ getManager().show();
+ }
+
+ /**
+ * @generated
+ */
+ protected void performDirectEdit(Point eventLocation) {
+ if (getManager().getClass() == TextDirectEditManager.class) {
+ ((TextDirectEditManager) getManager()).show(eventLocation
+ .getSWTPoint());
+ }
+ }
+
+ /**
+ * @generated
+ */
+ private void performDirectEdit(char initialCharacter) {
+ if (getManager() instanceof TextDirectEditManager) {
+ ((TextDirectEditManager) getManager()).show(initialCharacter);
+ } else {
+ performDirectEdit();
+ }
+ }
+
+ /**
+ * @generated
+ */
+ protected void performDirectEditRequest(Request request) {
+ final Request theRequest = request;
+ try {
+ getEditingDomain().runExclusive(new Runnable() {
+
+ public void run() {
+ if (isActive() && isEditable()) {
+ if (theRequest
+ .getExtendedData()
+ .get(RequestConstants.REQ_DIRECTEDIT_EXTENDEDDATA_INITIAL_CHAR) instanceof Character) {
+ Character initialChar = (Character) theRequest
+ .getExtendedData()
+ .get(RequestConstants.REQ_DIRECTEDIT_EXTENDEDDATA_INITIAL_CHAR);
+ performDirectEdit(initialChar.charValue());
+ } else if ((theRequest instanceof DirectEditRequest)
+ && (getEditText().equals(getLabelText()))) {
+ DirectEditRequest editRequest = (DirectEditRequest) theRequest;
+ performDirectEdit(editRequest.getLocation());
+ } else {
+ performDirectEdit();
+ }
+ }
+ }
+ });
+ } catch (InterruptedException e) {
+ e.printStackTrace();
+ }
+ }
+
+ /**
+ * @generated
+ */
+ protected void refreshVisuals() {
+ super.refreshVisuals();
+ refreshLabel();
+ refreshFont();
+ refreshFontColor();
+ refreshUnderline();
+ refreshStrikeThrough();
+ }
+
+ /**
+ * @generated
+ */
+ protected void refreshLabel() {
+ setLabelTextHelper(getFigure(), getLabelText());
+ setLabelIconHelper(getFigure(), getLabelIcon());
+ Object pdEditPolicy = getEditPolicy(EditPolicy.PRIMARY_DRAG_ROLE);
+ if (pdEditPolicy instanceof ComrelTextSelectionEditPolicy) {
+ ((ComrelTextSelectionEditPolicy) pdEditPolicy).refreshFeedback();
+ }
+ Object sfEditPolicy = getEditPolicy(EditPolicy.SELECTION_FEEDBACK_ROLE);
+ if (sfEditPolicy instanceof ComrelTextSelectionEditPolicy) {
+ ((ComrelTextSelectionEditPolicy) sfEditPolicy).refreshFeedback();
+ }
+ }
+
+ /**
+ * @generated
+ */
+ protected void refreshUnderline() {
+ FontStyle style = (FontStyle) getFontStyleOwnerView().getStyle(
+ NotationPackage.eINSTANCE.getFontStyle());
+ if (style != null && getFigure() instanceof WrappingLabel) {
+ ((WrappingLabel) getFigure()).setTextUnderline(style.isUnderline());
+ }
+ }
+
+ /**
+ * @generated
+ */
+ protected void refreshStrikeThrough() {
+ FontStyle style = (FontStyle) getFontStyleOwnerView().getStyle(
+ NotationPackage.eINSTANCE.getFontStyle());
+ if (style != null && getFigure() instanceof WrappingLabel) {
+ ((WrappingLabel) getFigure()).setTextStrikeThrough(style
+ .isStrikeThrough());
+ }
+ }
+
+ /**
+ * @generated
+ */
+ protected void refreshFont() {
+ FontStyle style = (FontStyle) getFontStyleOwnerView().getStyle(
+ NotationPackage.eINSTANCE.getFontStyle());
+ if (style != null) {
+ FontData fontData = new FontData(style.getFontName(),
+ style.getFontHeight(), (style.isBold() ? SWT.BOLD
+ : SWT.NORMAL)
+ | (style.isItalic() ? SWT.ITALIC : SWT.NORMAL));
+ setFont(fontData);
+ }
+ }
+
+ /**
+ * @generated
+ */
+ protected void setFontColor(Color color) {
+ getFigure().setForegroundColor(color);
+ }
+
+ /**
+ * @generated
+ */
+ protected void addSemanticListeners() {
+ if (getParser() instanceof ISemanticParser) {
+ EObject element = resolveSemanticElement();
+ parserElements = ((ISemanticParser) getParser())
+ .getSemanticElementsBeingParsed(element);
+ for (int i = 0; i < parserElements.size(); i++) {
+ addListenerFilter(
+ "SemanticModel" + i, this, (EObject) parserElements.get(i)); //$NON-NLS-1$
+ }
+ } else {
+ super.addSemanticListeners();
+ }
+ }
+
+ /**
+ * @generated
+ */
+ protected void removeSemanticListeners() {
+ if (parserElements != null) {
+ for (int i = 0; i < parserElements.size(); i++) {
+ removeListenerFilter("SemanticModel" + i); //$NON-NLS-1$
+ }
+ } else {
+ super.removeSemanticListeners();
+ }
+ }
+
+ /**
+ * @generated
+ */
+ protected AccessibleEditPart getAccessibleEditPart() {
+ if (accessibleEP == null) {
+ accessibleEP = new AccessibleGraphicalEditPart() {
+
+ public void getName(AccessibleEvent e) {
+ e.result = getLabelTextHelper(getFigure());
+ }
+ };
+ }
+ return accessibleEP;
+ }
+
+ /**
+ * @generated
+ */
+ private View getFontStyleOwnerView() {
+ return getPrimaryView();
+ }
+
+ /**
+ * @generated
+ */
+ protected void addNotationalListeners() {
+ super.addNotationalListeners();
+ addListenerFilter("PrimaryView", this, getPrimaryView()); //$NON-NLS-1$
+ }
+
+ /**
+ * @generated
+ */
+ protected void removeNotationalListeners() {
+ super.removeNotationalListeners();
+ removeListenerFilter("PrimaryView"); //$NON-NLS-1$
+ }
+
+ /**
+ * @generated
+ */
+ protected void handleNotificationEvent(Notification event) {
+ Object feature = event.getFeature();
+ if (NotationPackage.eINSTANCE.getFontStyle_FontColor().equals(feature)) {
+ Integer c = (Integer) event.getNewValue();
+ setFontColor(DiagramColorRegistry.getInstance().getColor(c));
+ } else if (NotationPackage.eINSTANCE.getFontStyle_Underline().equals(
+ feature)) {
+ refreshUnderline();
+ } else if (NotationPackage.eINSTANCE.getFontStyle_StrikeThrough()
+ .equals(feature)) {
+ refreshStrikeThrough();
+ } else if (NotationPackage.eINSTANCE.getFontStyle_FontHeight().equals(
+ feature)
+ || NotationPackage.eINSTANCE.getFontStyle_FontName().equals(
+ feature)
+ || NotationPackage.eINSTANCE.getFontStyle_Bold()
+ .equals(feature)
+ || NotationPackage.eINSTANCE.getFontStyle_Italic().equals(
+ feature)) {
+ refreshFont();
+ } else {
+ if (getParser() != null
+ && getParser().isAffectingEvent(event,
+ getParserOptions().intValue())) {
+ refreshLabel();
+ }
+ if (getParser() instanceof ISemanticParser) {
+ ISemanticParser modelParser = (ISemanticParser) getParser();
+ if (modelParser.areSemanticElementsAffected(null, event)) {
+ removeSemanticListeners();
+ if (resolveSemanticElement() != null) {
+ addSemanticListeners();
+ }
+ refreshLabel();
+ }
+ }
+ }
+ super.handleNotificationEvent(event);
+ }
+
+ /**
+ * @generated
+ */
+ protected IFigure createFigure() {
+ // Parent should assign one using setLabel() method
+ return null;
+ }
+
+}
diff --git a/org.eclipse.emf.refactor.comrel.diagram/src/comrel/diagram/edit/parts/ConditionalUnitNameType7EditPart.java b/org.eclipse.emf.refactor.comrel.diagram/src/comrel/diagram/edit/parts/ConditionalUnitNameType7EditPart.java
new file mode 100644
index 0000000..a0ae612
--- /dev/null
+++ b/org.eclipse.emf.refactor.comrel.diagram/src/comrel/diagram/edit/parts/ConditionalUnitNameType7EditPart.java
@@ -0,0 +1,576 @@
+/*
+ *
+ */
+package comrel.diagram.edit.parts;
+
+import java.util.Collections;
+import java.util.List;
+
+import org.eclipse.draw2d.IFigure;
+import org.eclipse.draw2d.Label;
+import org.eclipse.draw2d.geometry.Point;
+import org.eclipse.emf.common.notify.Notification;
+import org.eclipse.emf.ecore.EObject;
+import org.eclipse.emf.transaction.RunnableWithResult;
+import org.eclipse.gef.AccessibleEditPart;
+import org.eclipse.gef.EditPolicy;
+import org.eclipse.gef.Request;
+import org.eclipse.gef.requests.DirectEditRequest;
+import org.eclipse.gef.tools.DirectEditManager;
+import org.eclipse.gmf.runtime.common.ui.services.parser.IParser;
+import org.eclipse.gmf.runtime.common.ui.services.parser.IParserEditStatus;
+import org.eclipse.gmf.runtime.common.ui.services.parser.ParserEditStatus;
+import org.eclipse.gmf.runtime.common.ui.services.parser.ParserOptions;
+import org.eclipse.gmf.runtime.diagram.ui.editparts.CompartmentEditPart;
+import org.eclipse.gmf.runtime.diagram.ui.editparts.IGraphicalEditPart;
+import org.eclipse.gmf.runtime.diagram.ui.editparts.ITextAwareEditPart;
+import org.eclipse.gmf.runtime.diagram.ui.editpolicies.LabelDirectEditPolicy;
+import org.eclipse.gmf.runtime.diagram.ui.l10n.DiagramColorRegistry;
+import org.eclipse.gmf.runtime.diagram.ui.requests.RequestConstants;
+import org.eclipse.gmf.runtime.diagram.ui.tools.TextDirectEditManager;
+import org.eclipse.gmf.runtime.draw2d.ui.figures.WrappingLabel;
+import org.eclipse.gmf.runtime.emf.core.util.EObjectAdapter;
+import org.eclipse.gmf.runtime.emf.ui.services.parser.ISemanticParser;
+import org.eclipse.gmf.runtime.notation.FontStyle;
+import org.eclipse.gmf.runtime.notation.NotationPackage;
+import org.eclipse.gmf.runtime.notation.View;
+import org.eclipse.jface.text.contentassist.IContentAssistProcessor;
+import org.eclipse.jface.viewers.ICellEditorValidator;
+import org.eclipse.swt.SWT;
+import org.eclipse.swt.accessibility.AccessibleEvent;
+import org.eclipse.swt.graphics.Color;
+import org.eclipse.swt.graphics.FontData;
+import org.eclipse.swt.graphics.Image;
+
+import comrel.diagram.edit.policies.ComrelTextSelectionEditPolicy;
+import comrel.diagram.part.ComrelVisualIDRegistry;
+import comrel.diagram.providers.ComrelElementTypes;
+import comrel.diagram.providers.ComrelParserProvider;
+
+/**
+ * @generated
+ */
+public class ConditionalUnitNameType7EditPart extends CompartmentEditPart
+ implements ITextAwareEditPart {
+
+ /**
+ * @generated
+ */
+ public static final int VISUAL_ID = 5055;
+
+ /**
+ * @generated
+ */
+ private DirectEditManager manager;
+
+ /**
+ * @generated
+ */
+ private IParser parser;
+
+ /**
+ * @generated
+ */
+ private List<?> parserElements;
+
+ /**
+ * @generated
+ */
+ private String defaultText;
+
+ /**
+ * @generated
+ */
+ public ConditionalUnitNameType7EditPart(View view) {
+ super(view);
+ }
+
+ /**
+ * @generated
+ */
+ protected void createDefaultEditPolicies() {
+ super.createDefaultEditPolicies();
+ installEditPolicy(EditPolicy.SELECTION_FEEDBACK_ROLE,
+ new ComrelTextSelectionEditPolicy());
+ installEditPolicy(EditPolicy.DIRECT_EDIT_ROLE,
+ new LabelDirectEditPolicy());
+ installEditPolicy(EditPolicy.PRIMARY_DRAG_ROLE,
+ new CompositeRefactoringEditPart.NodeLabelDragPolicy());
+ }
+
+ /**
+ * @generated
+ */
+ protected String getLabelTextHelper(IFigure figure) {
+ if (figure instanceof WrappingLabel) {
+ return ((WrappingLabel) figure).getText();
+ } else {
+ return ((Label) figure).getText();
+ }
+ }
+
+ /**
+ * @generated
+ */
+ protected void setLabelTextHelper(IFigure figure, String text) {
+ if (figure instanceof WrappingLabel) {
+ ((WrappingLabel) figure).setText(text);
+ } else {
+ ((Label) figure).setText(text);
+ }
+ }
+
+ /**
+ * @generated
+ */
+ protected Image getLabelIconHelper(IFigure figure) {
+ if (figure instanceof WrappingLabel) {
+ return ((WrappingLabel) figure).getIcon();
+ } else {
+ return ((Label) figure).getIcon();
+ }
+ }
+
+ /**
+ * @generated
+ */
+ protected void setLabelIconHelper(IFigure figure, Image icon) {
+ if (figure instanceof WrappingLabel) {
+ ((WrappingLabel) figure).setIcon(icon);
+ } else {
+ ((Label) figure).setIcon(icon);
+ }
+ }
+
+ /**
+ * @generated
+ */
+ public void setLabel(WrappingLabel figure) {
+ unregisterVisuals();
+ setFigure(figure);
+ defaultText = getLabelTextHelper(figure);
+ registerVisuals();
+ refreshVisuals();
+ }
+
+ /**
+ * @generated
+ */
+ @SuppressWarnings("rawtypes")
+ protected List getModelChildren() {
+ return Collections.EMPTY_LIST;
+ }
+
+ /**
+ * @generated
+ */
+ public IGraphicalEditPart getChildBySemanticHint(String semanticHint) {
+ return null;
+ }
+
+ /**
+ * @generated
+ */
+ protected EObject getParserElement() {
+ return resolveSemanticElement();
+ }
+
+ /**
+ * @generated
+ */
+ protected Image getLabelIcon() {
+ return null;
+ }
+
+ /**
+ * @generated
+ */
+ protected String getLabelText() {
+ String text = null;
+ EObject parserElement = getParserElement();
+ if (parserElement != null && getParser() != null) {
+ text = getParser().getPrintString(
+ new EObjectAdapter(parserElement),
+ getParserOptions().intValue());
+ }
+ if (text == null || text.length() == 0) {
+ text = defaultText;
+ }
+ return text;
+ }
+
+ /**
+ * @generated
+ */
+ public void setLabelText(String text) {
+ setLabelTextHelper(getFigure(), text);
+ Object pdEditPolicy = getEditPolicy(EditPolicy.PRIMARY_DRAG_ROLE);
+ if (pdEditPolicy instanceof ComrelTextSelectionEditPolicy) {
+ ((ComrelTextSelectionEditPolicy) pdEditPolicy).refreshFeedback();
+ }
+ Object sfEditPolicy = getEditPolicy(EditPolicy.SELECTION_FEEDBACK_ROLE);
+ if (sfEditPolicy instanceof ComrelTextSelectionEditPolicy) {
+ ((ComrelTextSelectionEditPolicy) sfEditPolicy).refreshFeedback();
+ }
+ }
+
+ /**
+ * @generated
+ */
+ public String getEditText() {
+ if (getParserElement() == null || getParser() == null) {
+ return ""; //$NON-NLS-1$
+ }
+ return getParser().getEditString(
+ new EObjectAdapter(getParserElement()),
+ getParserOptions().intValue());
+ }
+
+ /**
+ * @generated
+ */
+ protected boolean isEditable() {
+ return getParser() != null;
+ }
+
+ /**
+ * @generated
+ */
+ public ICellEditorValidator getEditTextValidator() {
+ return new ICellEditorValidator() {
+
+ public String isValid(final Object value) {
+ if (value instanceof String) {
+ final EObject element = getParserElement();
+ final IParser parser = getParser();
+ try {
+ IParserEditStatus valid = (IParserEditStatus) getEditingDomain()
+ .runExclusive(
+ new RunnableWithResult.Impl<IParserEditStatus>() {
+
+ public void run() {
+ setResult(parser
+ .isValidEditString(
+ new EObjectAdapter(
+ element),
+ (String) value));
+ }
+ });
+ return valid.getCode() == ParserEditStatus.EDITABLE ? null
+ : valid.getMessage();
+ } catch (InterruptedException ie) {
+ ie.printStackTrace();
+ }
+ }
+
+ // shouldn't get here
+ return null;
+ }
+ };
+ }
+
+ /**
+ * @generated
+ */
+ public IContentAssistProcessor getCompletionProcessor() {
+ if (getParserElement() == null || getParser() == null) {
+ return null;
+ }
+ return getParser().getCompletionProcessor(
+ new EObjectAdapter(getParserElement()));
+ }
+
+ /**
+ * @generated
+ */
+ public ParserOptions getParserOptions() {
+ return ParserOptions.NONE;
+ }
+
+ /**
+ * @generated
+ */
+ public IParser getParser() {
+ if (parser == null) {
+ parser = ComrelParserProvider
+ .getParser(
+ ComrelElementTypes.ConditionalUnit_3075,
+ getParserElement(),
+ ComrelVisualIDRegistry
+ .getType(comrel.diagram.edit.parts.ConditionalUnitNameType7EditPart.VISUAL_ID));
+ }
+ return parser;
+ }
+
+ /**
+ * @generated
+ */
+ protected DirectEditManager getManager() {
+ if (manager == null) {
+ setManager(new TextDirectEditManager(this,
+ TextDirectEditManager.getTextCellEditorClass(this),
+ ComrelEditPartFactory.getTextCellEditorLocator(this)));
+ }
+ return manager;
+ }
+
+ /**
+ * @generated
+ */
+ protected void setManager(DirectEditManager manager) {
+ this.manager = manager;
+ }
+
+ /**
+ * @generated
+ */
+ protected void performDirectEdit() {
+ getManager().show();
+ }
+
+ /**
+ * @generated
+ */
+ protected void performDirectEdit(Point eventLocation) {
+ if (getManager().getClass() == TextDirectEditManager.class) {
+ ((TextDirectEditManager) getManager()).show(eventLocation
+ .getSWTPoint());
+ }
+ }
+
+ /**
+ * @generated
+ */
+ private void performDirectEdit(char initialCharacter) {
+ if (getManager() instanceof TextDirectEditManager) {
+ ((TextDirectEditManager) getManager()).show(initialCharacter);
+ } else {
+ performDirectEdit();
+ }
+ }
+
+ /**
+ * @generated
+ */
+ protected void performDirectEditRequest(Request request) {
+ final Request theRequest = request;
+ try {
+ getEditingDomain().runExclusive(new Runnable() {
+
+ public void run() {
+ if (isActive() && isEditable()) {
+ if (theRequest
+ .getExtendedData()
+ .get(RequestConstants.REQ_DIRECTEDIT_EXTENDEDDATA_INITIAL_CHAR) instanceof Character) {
+ Character initialChar = (Character) theRequest
+ .getExtendedData()
+ .get(RequestConstants.REQ_DIRECTEDIT_EXTENDEDDATA_INITIAL_CHAR);
+ performDirectEdit(initialChar.charValue());
+ } else if ((theRequest instanceof DirectEditRequest)
+ && (getEditText().equals(getLabelText()))) {
+ DirectEditRequest editRequest = (DirectEditRequest) theRequest;
+ performDirectEdit(editRequest.getLocation());
+ } else {
+ performDirectEdit();
+ }
+ }
+ }
+ });
+ } catch (InterruptedException e) {
+ e.printStackTrace();
+ }
+ }
+
+ /**
+ * @generated
+ */
+ protected void refreshVisuals() {
+ super.refreshVisuals();
+ refreshLabel();
+ refreshFont();
+ refreshFontColor();
+ refreshUnderline();
+ refreshStrikeThrough();
+ }
+
+ /**
+ * @generated
+ */
+ protected void refreshLabel() {
+ setLabelTextHelper(getFigure(), getLabelText());
+ setLabelIconHelper(getFigure(), getLabelIcon());
+ Object pdEditPolicy = getEditPolicy(EditPolicy.PRIMARY_DRAG_ROLE);
+ if (pdEditPolicy instanceof ComrelTextSelectionEditPolicy) {
+ ((ComrelTextSelectionEditPolicy) pdEditPolicy).refreshFeedback();
+ }
+ Object sfEditPolicy = getEditPolicy(EditPolicy.SELECTION_FEEDBACK_ROLE);
+ if (sfEditPolicy instanceof ComrelTextSelectionEditPolicy) {
+ ((ComrelTextSelectionEditPolicy) sfEditPolicy).refreshFeedback();
+ }
+ }
+
+ /**
+ * @generated
+ */
+ protected void refreshUnderline() {
+ FontStyle style = (FontStyle) getFontStyleOwnerView().getStyle(
+ NotationPackage.eINSTANCE.getFontStyle());
+ if (style != null && getFigure() instanceof WrappingLabel) {
+ ((WrappingLabel) getFigure()).setTextUnderline(style.isUnderline());
+ }
+ }
+
+ /**
+ * @generated
+ */
+ protected void refreshStrikeThrough() {
+ FontStyle style = (FontStyle) getFontStyleOwnerView().getStyle(
+ NotationPackage.eINSTANCE.getFontStyle());
+ if (style != null && getFigure() instanceof WrappingLabel) {
+ ((WrappingLabel) getFigure()).setTextStrikeThrough(style
+ .isStrikeThrough());
+ }
+ }
+
+ /**
+ * @generated
+ */
+ protected void refreshFont() {
+ FontStyle style = (FontStyle) getFontStyleOwnerView().getStyle(
+ NotationPackage.eINSTANCE.getFontStyle());
+ if (style != null) {
+ FontData fontData = new FontData(style.getFontName(),
+ style.getFontHeight(), (style.isBold() ? SWT.BOLD
+ : SWT.NORMAL)
+ | (style.isItalic() ? SWT.ITALIC : SWT.NORMAL));
+ setFont(fontData);
+ }
+ }
+
+ /**
+ * @generated
+ */
+ protected void setFontColor(Color color) {
+ getFigure().setForegroundColor(color);
+ }
+
+ /**
+ * @generated
+ */
+ protected void addSemanticListeners() {
+ if (getParser() instanceof ISemanticParser) {
+ EObject element = resolveSemanticElement();
+ parserElements = ((ISemanticParser) getParser())
+ .getSemanticElementsBeingParsed(element);
+ for (int i = 0; i < parserElements.size(); i++) {
+ addListenerFilter(
+ "SemanticModel" + i, this, (EObject) parserElements.get(i)); //$NON-NLS-1$
+ }
+ } else {
+ super.addSemanticListeners();
+ }
+ }
+
+ /**
+ * @generated
+ */
+ protected void removeSemanticListeners() {
+ if (parserElements != null) {
+ for (int i = 0; i < parserElements.size(); i++) {
+ removeListenerFilter("SemanticModel" + i); //$NON-NLS-1$
+ }
+ } else {
+ super.removeSemanticListeners();
+ }
+ }
+
+ /**
+ * @generated
+ */
+ protected AccessibleEditPart getAccessibleEditPart() {
+ if (accessibleEP == null) {
+ accessibleEP = new AccessibleGraphicalEditPart() {
+
+ public void getName(AccessibleEvent e) {
+ e.result = getLabelTextHelper(getFigure());
+ }
+ };
+ }
+ return accessibleEP;
+ }
+
+ /**
+ * @generated
+ */
+ private View getFontStyleOwnerView() {
+ return getPrimaryView();
+ }
+
+ /**
+ * @generated
+ */
+ protected void addNotationalListeners() {
+ super.addNotationalListeners();
+ addListenerFilter("PrimaryView", this, getPrimaryView()); //$NON-NLS-1$
+ }
+
+ /**
+ * @generated
+ */
+ protected void removeNotationalListeners() {
+ super.removeNotationalListeners();
+ removeListenerFilter("PrimaryView"); //$NON-NLS-1$
+ }
+
+ /**
+ * @generated
+ */
+ protected void handleNotificationEvent(Notification event) {
+ Object feature = event.getFeature();
+ if (NotationPackage.eINSTANCE.getFontStyle_FontColor().equals(feature)) {
+ Integer c = (Integer) event.getNewValue();
+ setFontColor(DiagramColorRegistry.getInstance().getColor(c));
+ } else if (NotationPackage.eINSTANCE.getFontStyle_Underline().equals(
+ feature)) {
+ refreshUnderline();
+ } else if (NotationPackage.eINSTANCE.getFontStyle_StrikeThrough()
+ .equals(feature)) {
+ refreshStrikeThrough();
+ } else if (NotationPackage.eINSTANCE.getFontStyle_FontHeight().equals(
+ feature)
+ || NotationPackage.eINSTANCE.getFontStyle_FontName().equals(
+ feature)
+ || NotationPackage.eINSTANCE.getFontStyle_Bold()
+ .equals(feature)
+ || NotationPackage.eINSTANCE.getFontStyle_Italic().equals(
+ feature)) {
+ refreshFont();
+ } else {
+ if (getParser() != null
+ && getParser().isAffectingEvent(event,
+ getParserOptions().intValue())) {
+ refreshLabel();
+ }
+ if (getParser() instanceof ISemanticParser) {
+ ISemanticParser modelParser = (ISemanticParser) getParser();
+ if (modelParser.areSemanticElementsAffected(null, event)) {
+ removeSemanticListeners();
+ if (resolveSemanticElement() != null) {
+ addSemanticListeners();
+ }
+ refreshLabel();
+ }
+ }
+ }
+ super.handleNotificationEvent(event);
+ }
+
+ /**
+ * @generated
+ */
+ protected IFigure createFigure() {
+ // Parent should assign one using setLabel() method
+ return null;
+ }
+
+}
diff --git a/org.eclipse.emf.refactor.comrel.diagram/src/comrel/diagram/edit/parts/ConditionalUnitNameTypeEditPart.java b/org.eclipse.emf.refactor.comrel.diagram/src/comrel/diagram/edit/parts/ConditionalUnitNameTypeEditPart.java
new file mode 100644
index 0000000..69e7e39
--- /dev/null
+++ b/org.eclipse.emf.refactor.comrel.diagram/src/comrel/diagram/edit/parts/ConditionalUnitNameTypeEditPart.java
@@ -0,0 +1,576 @@
+/*
+ *
+ */
+package comrel.diagram.edit.parts;
+
+import java.util.Collections;
+import java.util.List;
+
+import org.eclipse.draw2d.IFigure;
+import org.eclipse.draw2d.Label;
+import org.eclipse.draw2d.geometry.Point;
+import org.eclipse.emf.common.notify.Notification;
+import org.eclipse.emf.ecore.EObject;
+import org.eclipse.emf.transaction.RunnableWithResult;
+import org.eclipse.gef.AccessibleEditPart;
+import org.eclipse.gef.EditPolicy;
+import org.eclipse.gef.Request;
+import org.eclipse.gef.requests.DirectEditRequest;
+import org.eclipse.gef.tools.DirectEditManager;
+import org.eclipse.gmf.runtime.common.ui.services.parser.IParser;
+import org.eclipse.gmf.runtime.common.ui.services.parser.IParserEditStatus;
+import org.eclipse.gmf.runtime.common.ui.services.parser.ParserEditStatus;
+import org.eclipse.gmf.runtime.common.ui.services.parser.ParserOptions;
+import org.eclipse.gmf.runtime.diagram.ui.editparts.CompartmentEditPart;
+import org.eclipse.gmf.runtime.diagram.ui.editparts.IGraphicalEditPart;
+import org.eclipse.gmf.runtime.diagram.ui.editparts.ITextAwareEditPart;
+import org.eclipse.gmf.runtime.diagram.ui.editpolicies.LabelDirectEditPolicy;
+import org.eclipse.gmf.runtime.diagram.ui.l10n.DiagramColorRegistry;
+import org.eclipse.gmf.runtime.diagram.ui.requests.RequestConstants;
+import org.eclipse.gmf.runtime.diagram.ui.tools.TextDirectEditManager;
+import org.eclipse.gmf.runtime.draw2d.ui.figures.WrappingLabel;
+import org.eclipse.gmf.runtime.emf.core.util.EObjectAdapter;
+import org.eclipse.gmf.runtime.emf.ui.services.parser.ISemanticParser;
+import org.eclipse.gmf.runtime.notation.FontStyle;
+import org.eclipse.gmf.runtime.notation.NotationPackage;
+import org.eclipse.gmf.runtime.notation.View;
+import org.eclipse.jface.text.contentassist.IContentAssistProcessor;
+import org.eclipse.jface.viewers.ICellEditorValidator;
+import org.eclipse.swt.SWT;
+import org.eclipse.swt.accessibility.AccessibleEvent;
+import org.eclipse.swt.graphics.Color;
+import org.eclipse.swt.graphics.FontData;
+import org.eclipse.swt.graphics.Image;
+
+import comrel.diagram.edit.policies.ComrelTextSelectionEditPolicy;
+import comrel.diagram.part.ComrelVisualIDRegistry;
+import comrel.diagram.providers.ComrelElementTypes;
+import comrel.diagram.providers.ComrelParserProvider;
+
+/**
+ * @generated
+ */
+public class ConditionalUnitNameTypeEditPart extends CompartmentEditPart
+ implements ITextAwareEditPart {
+
+ /**
+ * @generated
+ */
+ public static final int VISUAL_ID = 5084;
+
+ /**
+ * @generated
+ */
+ private DirectEditManager manager;
+
+ /**
+ * @generated
+ */
+ private IParser parser;
+
+ /**
+ * @generated
+ */
+ private List<?> parserElements;
+
+ /**
+ * @generated
+ */
+ private String defaultText;
+
+ /**
+ * @generated
+ */
+ public ConditionalUnitNameTypeEditPart(View view) {
+ super(view);
+ }
+
+ /**
+ * @generated
+ */
+ protected void createDefaultEditPolicies() {
+ super.createDefaultEditPolicies();
+ installEditPolicy(EditPolicy.SELECTION_FEEDBACK_ROLE,
+ new ComrelTextSelectionEditPolicy());
+ installEditPolicy(EditPolicy.DIRECT_EDIT_ROLE,
+ new LabelDirectEditPolicy());
+ installEditPolicy(EditPolicy.PRIMARY_DRAG_ROLE,
+ new CompositeRefactoringEditPart.NodeLabelDragPolicy());
+ }
+
+ /**
+ * @generated
+ */
+ protected String getLabelTextHelper(IFigure figure) {
+ if (figure instanceof WrappingLabel) {
+ return ((WrappingLabel) figure).getText();
+ } else {
+ return ((Label) figure).getText();
+ }
+ }
+
+ /**
+ * @generated
+ */
+ protected void setLabelTextHelper(IFigure figure, String text) {
+ if (figure instanceof WrappingLabel) {
+ ((WrappingLabel) figure).setText(text);
+ } else {
+ ((Label) figure).setText(text);
+ }
+ }
+
+ /**
+ * @generated
+ */
+ protected Image getLabelIconHelper(IFigure figure) {
+ if (figure instanceof WrappingLabel) {
+ return ((WrappingLabel) figure).getIcon();
+ } else {
+ return ((Label) figure).getIcon();
+ }
+ }
+
+ /**
+ * @generated
+ */
+ protected void setLabelIconHelper(IFigure figure, Image icon) {
+ if (figure instanceof WrappingLabel) {
+ ((WrappingLabel) figure).setIcon(icon);
+ } else {
+ ((Label) figure).setIcon(icon);
+ }
+ }
+
+ /**
+ * @generated
+ */
+ public void setLabel(WrappingLabel figure) {
+ unregisterVisuals();
+ setFigure(figure);
+ defaultText = getLabelTextHelper(figure);
+ registerVisuals();
+ refreshVisuals();
+ }
+
+ /**
+ * @generated
+ */
+ @SuppressWarnings("rawtypes")
+ protected List getModelChildren() {
+ return Collections.EMPTY_LIST;
+ }
+
+ /**
+ * @generated
+ */
+ public IGraphicalEditPart getChildBySemanticHint(String semanticHint) {
+ return null;
+ }
+
+ /**
+ * @generated
+ */
+ protected EObject getParserElement() {
+ return resolveSemanticElement();
+ }
+
+ /**
+ * @generated
+ */
+ protected Image getLabelIcon() {
+ return null;
+ }
+
+ /**
+ * @generated
+ */
+ protected String getLabelText() {
+ String text = null;
+ EObject parserElement = getParserElement();
+ if (parserElement != null && getParser() != null) {
+ text = getParser().getPrintString(
+ new EObjectAdapter(parserElement),
+ getParserOptions().intValue());
+ }
+ if (text == null || text.length() == 0) {
+ text = defaultText;
+ }
+ return text;
+ }
+
+ /**
+ * @generated
+ */
+ public void setLabelText(String text) {
+ setLabelTextHelper(getFigure(), text);
+ Object pdEditPolicy = getEditPolicy(EditPolicy.PRIMARY_DRAG_ROLE);
+ if (pdEditPolicy instanceof ComrelTextSelectionEditPolicy) {
+ ((ComrelTextSelectionEditPolicy) pdEditPolicy).refreshFeedback();
+ }
+ Object sfEditPolicy = getEditPolicy(EditPolicy.SELECTION_FEEDBACK_ROLE);
+ if (sfEditPolicy instanceof ComrelTextSelectionEditPolicy) {
+ ((ComrelTextSelectionEditPolicy) sfEditPolicy).refreshFeedback();
+ }
+ }
+
+ /**
+ * @generated
+ */
+ public String getEditText() {
+ if (getParserElement() == null || getParser() == null) {
+ return ""; //$NON-NLS-1$
+ }
+ return getParser().getEditString(
+ new EObjectAdapter(getParserElement()),
+ getParserOptions().intValue());
+ }
+
+ /**
+ * @generated
+ */
+ protected boolean isEditable() {
+ return getParser() != null;
+ }
+
+ /**
+ * @generated
+ */
+ public ICellEditorValidator getEditTextValidator() {
+ return new ICellEditorValidator() {
+
+ public String isValid(final Object value) {
+ if (value instanceof String) {
+ final EObject element = getParserElement();
+ final IParser parser = getParser();
+ try {
+ IParserEditStatus valid = (IParserEditStatus) getEditingDomain()
+ .runExclusive(
+ new RunnableWithResult.Impl<IParserEditStatus>() {
+
+ public void run() {
+ setResult(parser
+ .isValidEditString(
+ new EObjectAdapter(
+ element),
+ (String) value));
+ }
+ });
+ return valid.getCode() == ParserEditStatus.EDITABLE ? null
+ : valid.getMessage();
+ } catch (InterruptedException ie) {
+ ie.printStackTrace();
+ }
+ }
+
+ // shouldn't get here
+ return null;
+ }
+ };
+ }
+
+ /**
+ * @generated
+ */
+ public IContentAssistProcessor getCompletionProcessor() {
+ if (getParserElement() == null || getParser() == null) {
+ return null;
+ }
+ return getParser().getCompletionProcessor(
+ new EObjectAdapter(getParserElement()));
+ }
+
+ /**
+ * @generated
+ */
+ public ParserOptions getParserOptions() {
+ return ParserOptions.NONE;
+ }
+
+ /**
+ * @generated
+ */
+ public IParser getParser() {
+ if (parser == null) {
+ parser = ComrelParserProvider
+ .getParser(
+ ComrelElementTypes.ConditionalUnit_2006,
+ getParserElement(),
+ ComrelVisualIDRegistry
+ .getType(comrel.diagram.edit.parts.ConditionalUnitNameTypeEditPart.VISUAL_ID));
+ }
+ return parser;
+ }
+
+ /**
+ * @generated
+ */
+ protected DirectEditManager getManager() {
+ if (manager == null) {
+ setManager(new TextDirectEditManager(this,
+ TextDirectEditManager.getTextCellEditorClass(this),
+ ComrelEditPartFactory.getTextCellEditorLocator(this)));
+ }
+ return manager;
+ }
+
+ /**
+ * @generated
+ */
+ protected void setManager(DirectEditManager manager) {
+ this.manager = manager;
+ }
+
+ /**
+ * @generated
+ */
+ protected void performDirectEdit() {
+ getManager().show();
+ }
+
+ /**
+ * @generated
+ */
+ protected void performDirectEdit(Point eventLocation) {
+ if (getManager().getClass() == TextDirectEditManager.class) {
+ ((TextDirectEditManager) getManager()).show(eventLocation
+ .getSWTPoint());
+ }
+ }
+
+ /**
+ * @generated
+ */
+ private void performDirectEdit(char initialCharacter) {
+ if (getManager() instanceof TextDirectEditManager) {
+ ((TextDirectEditManager) getManager()).show(initialCharacter);
+ } else {
+ performDirectEdit();
+ }
+ }
+
+ /**
+ * @generated
+ */
+ protected void performDirectEditRequest(Request request) {
+ final Request theRequest = request;
+ try {
+ getEditingDomain().runExclusive(new Runnable() {
+
+ public void run() {
+ if (isActive() && isEditable()) {
+ if (theRequest
+ .getExtendedData()
+ .get(RequestConstants.REQ_DIRECTEDIT_EXTENDEDDATA_INITIAL_CHAR) instanceof Character) {
+ Character initialChar = (Character) theRequest
+ .getExtendedData()
+ .get(RequestConstants.REQ_DIRECTEDIT_EXTENDEDDATA_INITIAL_CHAR);
+ performDirectEdit(initialChar.charValue());
+ } else if ((theRequest instanceof DirectEditRequest)
+ && (getEditText().equals(getLabelText()))) {
+ DirectEditRequest editRequest = (DirectEditRequest) theRequest;
+ performDirectEdit(editRequest.getLocation());
+ } else {
+ performDirectEdit();
+ }
+ }
+ }
+ });
+ } catch (InterruptedException e) {
+ e.printStackTrace();
+ }
+ }
+
+ /**
+ * @generated
+ */
+ protected void refreshVisuals() {
+ super.refreshVisuals();
+ refreshLabel();
+ refreshFont();
+ refreshFontColor();
+ refreshUnderline();
+ refreshStrikeThrough();
+ }
+
+ /**
+ * @generated
+ */
+ protected void refreshLabel() {
+ setLabelTextHelper(getFigure(), getLabelText());
+ setLabelIconHelper(getFigure(), getLabelIcon());
+ Object pdEditPolicy = getEditPolicy(EditPolicy.PRIMARY_DRAG_ROLE);
+ if (pdEditPolicy instanceof ComrelTextSelectionEditPolicy) {
+ ((ComrelTextSelectionEditPolicy) pdEditPolicy).refreshFeedback();
+ }
+ Object sfEditPolicy = getEditPolicy(EditPolicy.SELECTION_FEEDBACK_ROLE);
+ if (sfEditPolicy instanceof ComrelTextSelectionEditPolicy) {
+ ((ComrelTextSelectionEditPolicy) sfEditPolicy).refreshFeedback();
+ }
+ }
+
+ /**
+ * @generated
+ */
+ protected void refreshUnderline() {
+ FontStyle style = (FontStyle) getFontStyleOwnerView().getStyle(
+ NotationPackage.eINSTANCE.getFontStyle());
+ if (style != null && getFigure() instanceof WrappingLabel) {
+ ((WrappingLabel) getFigure()).setTextUnderline(style.isUnderline());
+ }
+ }
+
+ /**
+ * @generated
+ */
+ protected void refreshStrikeThrough() {
+ FontStyle style = (FontStyle) getFontStyleOwnerView().getStyle(
+ NotationPackage.eINSTANCE.getFontStyle());
+ if (style != null && getFigure() instanceof WrappingLabel) {
+ ((WrappingLabel) getFigure()).setTextStrikeThrough(style
+ .isStrikeThrough());
+ }
+ }
+
+ /**
+ * @generated
+ */
+ protected void refreshFont() {
+ FontStyle style = (FontStyle) getFontStyleOwnerView().getStyle(
+ NotationPackage.eINSTANCE.getFontStyle());
+ if (style != null) {
+ FontData fontData = new FontData(style.getFontName(),
+ style.getFontHeight(), (style.isBold() ? SWT.BOLD
+ : SWT.NORMAL)
+ | (style.isItalic() ? SWT.ITALIC : SWT.NORMAL));
+ setFont(fontData);
+ }
+ }
+
+ /**
+ * @generated
+ */
+ protected void setFontColor(Color color) {
+ getFigure().setForegroundColor(color);
+ }
+
+ /**
+ * @generated
+ */
+ protected void addSemanticListeners() {
+ if (getParser() instanceof ISemanticParser) {
+ EObject element = resolveSemanticElement();
+ parserElements = ((ISemanticParser) getParser())
+ .getSemanticElementsBeingParsed(element);
+ for (int i = 0; i < parserElements.size(); i++) {
+ addListenerFilter(
+ "SemanticModel" + i, this, (EObject) parserElements.get(i)); //$NON-NLS-1$
+ }
+ } else {
+ super.addSemanticListeners();
+ }
+ }
+
+ /**
+ * @generated
+ */
+ protected void removeSemanticListeners() {
+ if (parserElements != null) {
+ for (int i = 0; i < parserElements.size(); i++) {
+ removeListenerFilter("SemanticModel" + i); //$NON-NLS-1$
+ }
+ } else {
+ super.removeSemanticListeners();
+ }
+ }
+
+ /**
+ * @generated
+ */
+ protected AccessibleEditPart getAccessibleEditPart() {
+ if (accessibleEP == null) {
+ accessibleEP = new AccessibleGraphicalEditPart() {
+
+ public void getName(AccessibleEvent e) {
+ e.result = getLabelTextHelper(getFigure());
+ }
+ };
+ }
+ return accessibleEP;
+ }
+
+ /**
+ * @generated
+ */
+ private View getFontStyleOwnerView() {
+ return getPrimaryView();
+ }
+
+ /**
+ * @generated
+ */
+ protected void addNotationalListeners() {
+ super.addNotationalListeners();
+ addListenerFilter("PrimaryView", this, getPrimaryView()); //$NON-NLS-1$
+ }
+
+ /**
+ * @generated
+ */
+ protected void removeNotationalListeners() {
+ super.removeNotationalListeners();
+ removeListenerFilter("PrimaryView"); //$NON-NLS-1$
+ }
+
+ /**
+ * @generated
+ */
+ protected void handleNotificationEvent(Notification event) {
+ Object feature = event.getFeature();
+ if (NotationPackage.eINSTANCE.getFontStyle_FontColor().equals(feature)) {
+ Integer c = (Integer) event.getNewValue();
+ setFontColor(DiagramColorRegistry.getInstance().getColor(c));
+ } else if (NotationPackage.eINSTANCE.getFontStyle_Underline().equals(
+ feature)) {
+ refreshUnderline();
+ } else if (NotationPackage.eINSTANCE.getFontStyle_StrikeThrough()
+ .equals(feature)) {
+ refreshStrikeThrough();
+ } else if (NotationPackage.eINSTANCE.getFontStyle_FontHeight().equals(
+ feature)
+ || NotationPackage.eINSTANCE.getFontStyle_FontName().equals(
+ feature)
+ || NotationPackage.eINSTANCE.getFontStyle_Bold()
+ .equals(feature)
+ || NotationPackage.eINSTANCE.getFontStyle_Italic().equals(
+ feature)) {
+ refreshFont();
+ } else {
+ if (getParser() != null
+ && getParser().isAffectingEvent(event,
+ getParserOptions().intValue())) {
+ refreshLabel();
+ }
+ if (getParser() instanceof ISemanticParser) {
+ ISemanticParser modelParser = (ISemanticParser) getParser();
+ if (modelParser.areSemanticElementsAffected(null, event)) {
+ removeSemanticListeners();
+ if (resolveSemanticElement() != null) {
+ addSemanticListeners();
+ }
+ refreshLabel();
+ }
+ }
+ }
+ super.handleNotificationEvent(event);
+ }
+
+ /**
+ * @generated
+ */
+ protected IFigure createFigure() {
+ // Parent should assign one using setLabel() method
+ return null;
+ }
+
+}
diff --git a/org.eclipse.emf.refactor.comrel.diagram/src/comrel/diagram/edit/parts/MultiFeatureUnit2EditPart.java b/org.eclipse.emf.refactor.comrel.diagram/src/comrel/diagram/edit/parts/MultiFeatureUnit2EditPart.java
new file mode 100644
index 0000000..f077597
--- /dev/null
+++ b/org.eclipse.emf.refactor.comrel.diagram/src/comrel/diagram/edit/parts/MultiFeatureUnit2EditPart.java
@@ -0,0 +1,366 @@
+/*
+ *
+ */
+package comrel.diagram.edit.parts;
+
+import org.eclipse.draw2d.IFigure;
+import org.eclipse.draw2d.MarginBorder;
+import org.eclipse.draw2d.PositionConstants;
+import org.eclipse.draw2d.RoundedRectangle;
+import org.eclipse.draw2d.Shape;
+import org.eclipse.draw2d.StackLayout;
+import org.eclipse.draw2d.geometry.Dimension;
+import org.eclipse.gef.EditPart;
+import org.eclipse.gef.EditPolicy;
+import org.eclipse.gef.Request;
+import org.eclipse.gef.commands.Command;
+import org.eclipse.gef.editpolicies.LayoutEditPolicy;
+import org.eclipse.gef.editpolicies.NonResizableEditPolicy;
+import org.eclipse.gef.requests.CreateRequest;
+import org.eclipse.gmf.runtime.diagram.ui.editparts.AbstractBorderedShapeEditPart;
+import org.eclipse.gmf.runtime.diagram.ui.editparts.IBorderItemEditPart;
+import org.eclipse.gmf.runtime.diagram.ui.editparts.IGraphicalEditPart;
+import org.eclipse.gmf.runtime.diagram.ui.editpolicies.BorderItemSelectionEditPolicy;
+import org.eclipse.gmf.runtime.diagram.ui.editpolicies.CreationEditPolicy;
+import org.eclipse.gmf.runtime.diagram.ui.editpolicies.DragDropEditPolicy;
+import org.eclipse.gmf.runtime.diagram.ui.editpolicies.EditPolicyRoles;
+import org.eclipse.gmf.runtime.diagram.ui.figures.BorderItemLocator;
+import org.eclipse.gmf.runtime.draw2d.ui.figures.ConstrainedToolbarLayout;
+import org.eclipse.gmf.runtime.draw2d.ui.figures.WrappingLabel;
+import org.eclipse.gmf.runtime.gef.ui.figures.DefaultSizeNodeFigure;
+import org.eclipse.gmf.runtime.gef.ui.figures.NodeFigure;
+import org.eclipse.gmf.runtime.notation.View;
+import org.eclipse.swt.graphics.Color;
+
+import comrel.diagram.edit.policies.MultiFeatureUnit2CanonicalEditPolicy;
+import comrel.diagram.edit.policies.MultiFeatureUnit2ItemSemanticEditPolicy;
+import comrel.diagram.part.ComrelVisualIDRegistry;
+
+/**
+ * @generated
+ */
+public class MultiFeatureUnit2EditPart extends AbstractBorderedShapeEditPart {
+
+ /**
+ * @generated
+ */
+ public static final int VISUAL_ID = 3039;
+
+ /**
+ * @generated
+ */
+ protected IFigure contentPane;
+
+ /**
+ * @generated
+ */
+ protected IFigure primaryShape;
+
+ /**
+ * @generated
+ */
+ public MultiFeatureUnit2EditPart(View view) {
+ super(view);
+ }
+
+ /**
+ * @generated
+ */
+ protected void createDefaultEditPolicies() {
+ installEditPolicy(EditPolicyRoles.CREATION_ROLE,
+ new CreationEditPolicy());
+ super.createDefaultEditPolicies();
+ installEditPolicy(EditPolicyRoles.SEMANTIC_ROLE,
+ new MultiFeatureUnit2ItemSemanticEditPolicy());
+ installEditPolicy(EditPolicyRoles.DRAG_DROP_ROLE,
+ new DragDropEditPolicy());
+ installEditPolicy(EditPolicyRoles.CANONICAL_ROLE,
+ new MultiFeatureUnit2CanonicalEditPolicy());
+ installEditPolicy(EditPolicy.LAYOUT_ROLE, createLayoutEditPolicy());
+ // XXX need an SCR to runtime to have another abstract superclass that would let children add reasonable editpolicies
+ // removeEditPolicy(org.eclipse.gmf.runtime.diagram.ui.editpolicies.EditPolicyRoles.CONNECTION_HANDLES_ROLE);
+ }
+
+ /**
+ * @generated
+ */
+ protected LayoutEditPolicy createLayoutEditPolicy() {
+ org.eclipse.gmf.runtime.diagram.ui.editpolicies.LayoutEditPolicy lep = new org.eclipse.gmf.runtime.diagram.ui.editpolicies.LayoutEditPolicy() {
+
+ protected EditPolicy createChildEditPolicy(EditPart child) {
+ View childView = (View) child.getModel();
+ switch (ComrelVisualIDRegistry.getVisualID(childView)) {
+ case SingleInputPort5EditPart.VISUAL_ID:
+ case MultiInputPort4EditPart.VISUAL_ID:
+ case MultiOutputPortEditPart.VISUAL_ID:
+ return new BorderItemSelectionEditPolicy();
+ }
+ EditPolicy result = child
+ .getEditPolicy(EditPolicy.PRIMARY_DRAG_ROLE);
+ if (result == null) {
+ result = new NonResizableEditPolicy();
+ }
+ return result;
+ }
+
+ protected Command getMoveChildrenCommand(Request request) {
+ return null;
+ }
+
+ protected Command getCreateCommand(CreateRequest request) {
+ return null;
+ }
+ };
+ return lep;
+ }
+
+ /**
+ * @generated
+ */
+ protected IFigure createNodeShape() {
+ return primaryShape = new MultiFeatureUnitFigure();
+ }
+
+ /**
+ * @generated
+ */
+ public MultiFeatureUnitFigure getPrimaryShape() {
+ return (MultiFeatureUnitFigure) primaryShape;
+ }
+
+ /**
+ * @generated NOT
+ */
+ protected boolean addFixedChild(EditPart childEditPart) {
+ if (childEditPart instanceof MultiFeatureUnitNameType2EditPart) {
+ ((MultiFeatureUnitNameType2EditPart) childEditPart)
+ .setLabel(getPrimaryShape()
+ .getFigureMultiFeatureUnitLabelFigure());
+ return true;
+ }
+ if (childEditPart instanceof SingleInputPort5EditPart) {
+ BorderItemLocator locator = new BorderItemLocator(getMainFigure(),
+ PositionConstants.NORTH);
+ locator.setCurrentSideOfParent(PositionConstants.NORTH); // Position des Ports
+ locator.setPreferredSideOfParent(PositionConstants.NORTH); // Position des Ports
+ getBorderedFigure().getBorderItemContainer().add(
+ ((SingleInputPort5EditPart) childEditPart).getFigure(),
+ locator);
+ return true;
+ }
+ if (childEditPart instanceof MultiInputPort4EditPart) {
+ BorderItemLocator locator = new BorderItemLocator(getMainFigure(),
+ PositionConstants.NORTH);
+ locator.setCurrentSideOfParent(PositionConstants.NORTH); // Position des Ports
+ locator.setPreferredSideOfParent(PositionConstants.NORTH); // Position des Ports
+ getBorderedFigure().getBorderItemContainer().add(
+ ((MultiInputPort4EditPart) childEditPart).getFigure(),
+ locator);
+ return true;
+ }
+ if (childEditPart instanceof MultiOutputPortEditPart) {
+ BorderItemLocator locator = new BorderItemLocator(getMainFigure(),
+ PositionConstants.SOUTH);
+ locator.setCurrentSideOfParent(PositionConstants.SOUTH); // Position des Ports
+ locator.setPreferredSideOfParent(PositionConstants.SOUTH); // Position des Ports
+ getBorderedFigure().getBorderItemContainer().add(
+ ((MultiOutputPortEditPart) childEditPart).getFigure(),
+ locator);
+ return true;
+ }
+ return false;
+ }
+
+ /**
+ * @generated NOT
+ */
+ protected boolean removeFixedChild(EditPart childEditPart) {
+ if (childEditPart instanceof MultiFeatureUnitNameType2EditPart) {
+ return true;
+ }
+ if (childEditPart instanceof SingleInputPort5EditPart) {
+ // getBorderedFigure().getBorderItemContainer().remove(
+ // ((SingleInputPort5EditPart) childEditPart).getFigure());
+ return true;
+ }
+ if (childEditPart instanceof MultiInputPort4EditPart) {
+ getBorderedFigure().getBorderItemContainer().remove(
+ ((MultiInputPort4EditPart) childEditPart).getFigure());
+ return true;
+ }
+ if (childEditPart instanceof MultiOutputPortEditPart) {
+ // getBorderedFigure().getBorderItemContainer().remove(
+ // ((MultiOutputPortEditPart) childEditPart).getFigure());
+ return true;
+ }
+ return false;
+ }
+
+ /**
+ * @generated
+ */
+ protected void addChildVisual(EditPart childEditPart, int index) {
+ if (addFixedChild(childEditPart)) {
+ return;
+ }
+ super.addChildVisual(childEditPart, -1);
+ }
+
+ /**
+ * @generated
+ */
+ protected void removeChildVisual(EditPart childEditPart) {
+ if (removeFixedChild(childEditPart)) {
+ return;
+ }
+ super.removeChildVisual(childEditPart);
+ }
+
+ /**
+ * @generated
+ */
+ protected IFigure getContentPaneFor(IGraphicalEditPart editPart) {
+ if (editPart instanceof IBorderItemEditPart) {
+ return getBorderedFigure().getBorderItemContainer();
+ }
+ return getContentPane();
+ }
+
+ /**
+ * @generated
+ */
+ protected NodeFigure createNodePlate() {
+ DefaultSizeNodeFigure result = new DefaultSizeNodeFigure(40, 40);
+ return result;
+ }
+
+ /**
+ * Creates figure for this edit part.
+ *
+ * Body of this method does not depend on settings in generation model
+ * so you may safely remove <i>generated</i> tag and modify it.
+ *
+ * @generated
+ */
+ protected NodeFigure createMainFigure() {
+ NodeFigure figure = createNodePlate();
+ figure.setLayoutManager(new StackLayout());
+ IFigure shape = createNodeShape();
+ figure.add(shape);
+ contentPane = setupContentPane(shape);
+ return figure;
+ }
+
+ /**
+ * Default implementation treats passed figure as content pane.
+ * Respects layout one may have set for generated figure.
+ * @param nodeShape instance of generated figure class
+ * @generated
+ */
+ protected IFigure setupContentPane(IFigure nodeShape) {
+ if (nodeShape.getLayoutManager() == null) {
+ ConstrainedToolbarLayout layout = new ConstrainedToolbarLayout();
+ layout.setSpacing(5);
+ nodeShape.setLayoutManager(layout);
+ }
+ return nodeShape; // use nodeShape itself as contentPane
+ }
+
+ /**
+ * @generated
+ */
+ public IFigure getContentPane() {
+ if (contentPane != null) {
+ return contentPane;
+ }
+ return super.getContentPane();
+ }
+
+ /**
+ * @generated
+ */
+ protected void setForegroundColor(Color color) {
+ if (primaryShape != null) {
+ primaryShape.setForegroundColor(color);
+ }
+ }
+
+ /**
+ * @generated
+ */
+ protected void setBackgroundColor(Color color) {
+ if (primaryShape != null) {
+ primaryShape.setBackgroundColor(color);
+ }
+ }
+
+ /**
+ * @generated
+ */
+ protected void setLineWidth(int width) {
+ if (primaryShape instanceof Shape) {
+ ((Shape) primaryShape).setLineWidth(width);
+ }
+ }
+
+ /**
+ * @generated
+ */
+ protected void setLineType(int style) {
+ if (primaryShape instanceof Shape) {
+ ((Shape) primaryShape).setLineStyle(style);
+ }
+ }
+
+ /**
+ * @generated
+ */
+ public EditPart getPrimaryChildEditPart() {
+ return getChildBySemanticHint(ComrelVisualIDRegistry
+ .getType(MultiFeatureUnitNameType2EditPart.VISUAL_ID));
+ }
+
+ /**
+ * @generated
+ */
+ public class MultiFeatureUnitFigure extends RoundedRectangle {
+
+ /**
+ * @generated
+ */
+ private WrappingLabel fFigureMultiFeatureUnitLabelFigure;
+
+ /**
+ * @generated
+ */
+ public MultiFeatureUnitFigure() {
+ this.setCornerDimensions(new Dimension(getMapMode().DPtoLP(8),
+ getMapMode().DPtoLP(8)));
+ this.setBorder(new MarginBorder(getMapMode().DPtoLP(5),
+ getMapMode().DPtoLP(5), getMapMode().DPtoLP(5),
+ getMapMode().DPtoLP(5)));
+ createContents();
+ }
+
+ /**
+ * @generated
+ */
+ private void createContents() {
+
+ fFigureMultiFeatureUnitLabelFigure = new WrappingLabel();
+ fFigureMultiFeatureUnitLabelFigure.setText("MultiFeatureUnit");
+
+ this.add(fFigureMultiFeatureUnitLabelFigure);
+
+ }
+
+ /**
+ * @generated
+ */
+ public WrappingLabel getFigureMultiFeatureUnitLabelFigure() {
+ return fFigureMultiFeatureUnitLabelFigure;
+ }
+
+ }
+
+}
diff --git a/org.eclipse.emf.refactor.comrel.diagram/src/comrel/diagram/edit/parts/MultiFeatureUnit3EditPart.java b/org.eclipse.emf.refactor.comrel.diagram/src/comrel/diagram/edit/parts/MultiFeatureUnit3EditPart.java
new file mode 100644
index 0000000..490af8e
--- /dev/null
+++ b/org.eclipse.emf.refactor.comrel.diagram/src/comrel/diagram/edit/parts/MultiFeatureUnit3EditPart.java
@@ -0,0 +1,366 @@
+/*
+ *
+ */
+package comrel.diagram.edit.parts;
+
+import org.eclipse.draw2d.IFigure;
+import org.eclipse.draw2d.MarginBorder;
+import org.eclipse.draw2d.PositionConstants;
+import org.eclipse.draw2d.RoundedRectangle;
+import org.eclipse.draw2d.Shape;
+import org.eclipse.draw2d.StackLayout;
+import org.eclipse.draw2d.geometry.Dimension;
+import org.eclipse.gef.EditPart;
+import org.eclipse.gef.EditPolicy;
+import org.eclipse.gef.Request;
+import org.eclipse.gef.commands.Command;
+import org.eclipse.gef.editpolicies.LayoutEditPolicy;
+import org.eclipse.gef.editpolicies.NonResizableEditPolicy;
+import org.eclipse.gef.requests.CreateRequest;
+import org.eclipse.gmf.runtime.diagram.ui.editparts.AbstractBorderedShapeEditPart;
+import org.eclipse.gmf.runtime.diagram.ui.editparts.IBorderItemEditPart;
+import org.eclipse.gmf.runtime.diagram.ui.editparts.IGraphicalEditPart;
+import org.eclipse.gmf.runtime.diagram.ui.editpolicies.BorderItemSelectionEditPolicy;
+import org.eclipse.gmf.runtime.diagram.ui.editpolicies.CreationEditPolicy;
+import org.eclipse.gmf.runtime.diagram.ui.editpolicies.DragDropEditPolicy;
+import org.eclipse.gmf.runtime.diagram.ui.editpolicies.EditPolicyRoles;
+import org.eclipse.gmf.runtime.diagram.ui.figures.BorderItemLocator;
+import org.eclipse.gmf.runtime.draw2d.ui.figures.ConstrainedToolbarLayout;
+import org.eclipse.gmf.runtime.draw2d.ui.figures.WrappingLabel;
+import org.eclipse.gmf.runtime.gef.ui.figures.DefaultSizeNodeFigure;
+import org.eclipse.gmf.runtime.gef.ui.figures.NodeFigure;
+import org.eclipse.gmf.runtime.notation.View;
+import org.eclipse.swt.graphics.Color;
+
+import comrel.diagram.edit.policies.MultiFeatureUnit3CanonicalEditPolicy;
+import comrel.diagram.edit.policies.MultiFeatureUnit3ItemSemanticEditPolicy;
+import comrel.diagram.part.ComrelVisualIDRegistry;
+
+/**
+ * @generated
+ */
+public class MultiFeatureUnit3EditPart extends AbstractBorderedShapeEditPart {
+
+ /**
+ * @generated
+ */
+ public static final int VISUAL_ID = 3051;
+
+ /**
+ * @generated
+ */
+ protected IFigure contentPane;
+
+ /**
+ * @generated
+ */
+ protected IFigure primaryShape;
+
+ /**
+ * @generated
+ */
+ public MultiFeatureUnit3EditPart(View view) {
+ super(view);
+ }
+
+ /**
+ * @generated
+ */
+ protected void createDefaultEditPolicies() {
+ installEditPolicy(EditPolicyRoles.CREATION_ROLE,
+ new CreationEditPolicy());
+ super.createDefaultEditPolicies();
+ installEditPolicy(EditPolicyRoles.SEMANTIC_ROLE,
+ new MultiFeatureUnit3ItemSemanticEditPolicy());
+ installEditPolicy(EditPolicyRoles.DRAG_DROP_ROLE,
+ new DragDropEditPolicy());
+ installEditPolicy(EditPolicyRoles.CANONICAL_ROLE,
+ new MultiFeatureUnit3CanonicalEditPolicy());
+ installEditPolicy(EditPolicy.LAYOUT_ROLE, createLayoutEditPolicy());
+ // XXX need an SCR to runtime to have another abstract superclass that would let children add reasonable editpolicies
+ // removeEditPolicy(org.eclipse.gmf.runtime.diagram.ui.editpolicies.EditPolicyRoles.CONNECTION_HANDLES_ROLE);
+ }
+
+ /**
+ * @generated
+ */
+ protected LayoutEditPolicy createLayoutEditPolicy() {
+ org.eclipse.gmf.runtime.diagram.ui.editpolicies.LayoutEditPolicy lep = new org.eclipse.gmf.runtime.diagram.ui.editpolicies.LayoutEditPolicy() {
+
+ protected EditPolicy createChildEditPolicy(EditPart child) {
+ View childView = (View) child.getModel();
+ switch (ComrelVisualIDRegistry.getVisualID(childView)) {
+ case SingleInputPort5EditPart.VISUAL_ID:
+ case MultiInputPort4EditPart.VISUAL_ID:
+ case MultiOutputPortEditPart.VISUAL_ID:
+ return new BorderItemSelectionEditPolicy();
+ }
+ EditPolicy result = child
+ .getEditPolicy(EditPolicy.PRIMARY_DRAG_ROLE);
+ if (result == null) {
+ result = new NonResizableEditPolicy();
+ }
+ return result;
+ }
+
+ protected Command getMoveChildrenCommand(Request request) {
+ return null;
+ }
+
+ protected Command getCreateCommand(CreateRequest request) {
+ return null;
+ }
+ };
+ return lep;
+ }
+
+ /**
+ * @generated
+ */
+ protected IFigure createNodeShape() {
+ return primaryShape = new MultiFeatureUnitFigure();
+ }
+
+ /**
+ * @generated
+ */
+ public MultiFeatureUnitFigure getPrimaryShape() {
+ return (MultiFeatureUnitFigure) primaryShape;
+ }
+
+ /**
+ * @generated NOT
+ */
+ protected boolean addFixedChild(EditPart childEditPart) {
+ if (childEditPart instanceof MultiFeatureUnitNameType3EditPart) {
+ ((MultiFeatureUnitNameType3EditPart) childEditPart)
+ .setLabel(getPrimaryShape()
+ .getFigureMultiFeatureUnitLabelFigure());
+ return true;
+ }
+ if (childEditPart instanceof SingleInputPort5EditPart) {
+ BorderItemLocator locator = new BorderItemLocator(getMainFigure(),
+ PositionConstants.NORTH);
+ locator.setCurrentSideOfParent(PositionConstants.NORTH); // Position des Ports
+ locator.setPreferredSideOfParent(PositionConstants.NORTH); // Position des Ports
+ getBorderedFigure().getBorderItemContainer().add(
+ ((SingleInputPort5EditPart) childEditPart).getFigure(),
+ locator);
+ return true;
+ }
+ if (childEditPart instanceof MultiInputPort4EditPart) {
+ BorderItemLocator locator = new BorderItemLocator(getMainFigure(),
+ PositionConstants.NORTH);
+ locator.setCurrentSideOfParent(PositionConstants.NORTH); // Position des Ports
+ locator.setPreferredSideOfParent(PositionConstants.NORTH); // Position des Ports
+ getBorderedFigure().getBorderItemContainer().add(
+ ((MultiInputPort4EditPart) childEditPart).getFigure(),
+ locator);
+ return true;
+ }
+ if (childEditPart instanceof MultiOutputPortEditPart) {
+ BorderItemLocator locator = new BorderItemLocator(getMainFigure(),
+ PositionConstants.SOUTH);
+ locator.setCurrentSideOfParent(PositionConstants.SOUTH); // Position des Ports
+ locator.setPreferredSideOfParent(PositionConstants.SOUTH); // Position des Ports
+ getBorderedFigure().getBorderItemContainer().add(
+ ((MultiOutputPortEditPart) childEditPart).getFigure(),
+ locator);
+ return true;
+ }
+ return false;
+ }
+
+ /**
+ * @generated NOT
+ */
+ protected boolean removeFixedChild(EditPart childEditPart) {
+ if (childEditPart instanceof MultiFeatureUnitNameType3EditPart) {
+ return true;
+ }
+ if (childEditPart instanceof SingleInputPort5EditPart) {
+ // getBorderedFigure().getBorderItemContainer().remove(
+ // ((SingleInputPort5EditPart) childEditPart).getFigure());
+ return true;
+ }
+ if (childEditPart instanceof MultiInputPort4EditPart) {
+ getBorderedFigure().getBorderItemContainer().remove(
+ ((MultiInputPort4EditPart) childEditPart).getFigure());
+ return true;
+ }
+ if (childEditPart instanceof MultiOutputPortEditPart) {
+ // getBorderedFigure().getBorderItemContainer().remove(
+ // ((MultiOutputPortEditPart) childEditPart).getFigure());
+ return true;
+ }
+ return false;
+ }
+
+ /**
+ * @generated
+ */
+ protected void addChildVisual(EditPart childEditPart, int index) {
+ if (addFixedChild(childEditPart)) {
+ return;
+ }
+ super.addChildVisual(childEditPart, -1);
+ }
+
+ /**
+ * @generated
+ */
+ protected void removeChildVisual(EditPart childEditPart) {
+ if (removeFixedChild(childEditPart)) {
+ return;
+ }
+ super.removeChildVisual(childEditPart);
+ }
+
+ /**
+ * @generated
+ */
+ protected IFigure getContentPaneFor(IGraphicalEditPart editPart) {
+ if (editPart instanceof IBorderItemEditPart) {
+ return getBorderedFigure().getBorderItemContainer();
+ }
+ return getContentPane();
+ }
+
+ /**
+ * @generated
+ */
+ protected NodeFigure createNodePlate() {
+ DefaultSizeNodeFigure result = new DefaultSizeNodeFigure(40, 40);
+ return result;
+ }
+
+ /**
+ * Creates figure for this edit part.
+ *
+ * Body of this method does not depend on settings in generation model
+ * so you may safely remove <i>generated</i> tag and modify it.
+ *
+ * @generated
+ */
+ protected NodeFigure createMainFigure() {
+ NodeFigure figure = createNodePlate();
+ figure.setLayoutManager(new StackLayout());
+ IFigure shape = createNodeShape();
+ figure.add(shape);
+ contentPane = setupContentPane(shape);
+ return figure;
+ }
+
+ /**
+ * Default implementation treats passed figure as content pane.
+ * Respects layout one may have set for generated figure.
+ * @param nodeShape instance of generated figure class
+ * @generated
+ */
+ protected IFigure setupContentPane(IFigure nodeShape) {
+ if (nodeShape.getLayoutManager() == null) {
+ ConstrainedToolbarLayout layout = new ConstrainedToolbarLayout();
+ layout.setSpacing(5);
+ nodeShape.setLayoutManager(layout);
+ }
+ return nodeShape; // use nodeShape itself as contentPane
+ }
+
+ /**
+ * @generated
+ */
+ public IFigure getContentPane() {
+ if (contentPane != null) {
+ return contentPane;
+ }
+ return super.getContentPane();
+ }
+
+ /**
+ * @generated
+ */
+ protected void setForegroundColor(Color color) {
+ if (primaryShape != null) {
+ primaryShape.setForegroundColor(color);
+ }
+ }
+
+ /**
+ * @generated
+ */
+ protected void setBackgroundColor(Color color) {
+ if (primaryShape != null) {
+ primaryShape.setBackgroundColor(color);
+ }
+ }
+
+ /**
+ * @generated
+ */
+ protected void setLineWidth(int width) {
+ if (primaryShape instanceof Shape) {
+ ((Shape) primaryShape).setLineWidth(width);
+ }
+ }
+
+ /**
+ * @generated
+ */
+ protected void setLineType(int style) {
+ if (primaryShape instanceof Shape) {
+ ((Shape) primaryShape).setLineStyle(style);
+ }
+ }
+
+ /**
+ * @generated
+ */
+ public EditPart getPrimaryChildEditPart() {
+ return getChildBySemanticHint(ComrelVisualIDRegistry
+ .getType(MultiFeatureUnitNameType3EditPart.VISUAL_ID));
+ }
+
+ /**
+ * @generated
+ */
+ public class MultiFeatureUnitFigure extends RoundedRectangle {
+
+ /**
+ * @generated
+ */
+ private WrappingLabel fFigureMultiFeatureUnitLabelFigure;
+
+ /**
+ * @generated
+ */
+ public MultiFeatureUnitFigure() {
+ this.setCornerDimensions(new Dimension(getMapMode().DPtoLP(8),
+ getMapMode().DPtoLP(8)));
+ this.setBorder(new MarginBorder(getMapMode().DPtoLP(5),
+ getMapMode().DPtoLP(5), getMapMode().DPtoLP(5),
+ getMapMode().DPtoLP(5)));
+ createContents();
+ }
+
+ /**
+ * @generated
+ */
+ private void createContents() {
+
+ fFigureMultiFeatureUnitLabelFigure = new WrappingLabel();
+ fFigureMultiFeatureUnitLabelFigure.setText("MultiFeatureUnit");
+
+ this.add(fFigureMultiFeatureUnitLabelFigure);
+
+ }
+
+ /**
+ * @generated
+ */
+ public WrappingLabel getFigureMultiFeatureUnitLabelFigure() {
+ return fFigureMultiFeatureUnitLabelFigure;
+ }
+
+ }
+
+}
diff --git a/org.eclipse.emf.refactor.comrel.diagram/src/comrel/diagram/edit/parts/MultiFeatureUnit4EditPart.java b/org.eclipse.emf.refactor.comrel.diagram/src/comrel/diagram/edit/parts/MultiFeatureUnit4EditPart.java
new file mode 100644
index 0000000..13f8fd1
--- /dev/null
+++ b/org.eclipse.emf.refactor.comrel.diagram/src/comrel/diagram/edit/parts/MultiFeatureUnit4EditPart.java
@@ -0,0 +1,366 @@
+/*
+ *
+ */
+package comrel.diagram.edit.parts;
+
+import org.eclipse.draw2d.IFigure;
+import org.eclipse.draw2d.MarginBorder;
+import org.eclipse.draw2d.PositionConstants;
+import org.eclipse.draw2d.RoundedRectangle;
+import org.eclipse.draw2d.Shape;
+import org.eclipse.draw2d.StackLayout;
+import org.eclipse.draw2d.geometry.Dimension;
+import org.eclipse.gef.EditPart;
+import org.eclipse.gef.EditPolicy;
+import org.eclipse.gef.Request;
+import org.eclipse.gef.commands.Command;
+import org.eclipse.gef.editpolicies.LayoutEditPolicy;
+import org.eclipse.gef.editpolicies.NonResizableEditPolicy;
+import org.eclipse.gef.requests.CreateRequest;
+import org.eclipse.gmf.runtime.diagram.ui.editparts.AbstractBorderedShapeEditPart;
+import org.eclipse.gmf.runtime.diagram.ui.editparts.IBorderItemEditPart;
+import org.eclipse.gmf.runtime.diagram.ui.editparts.IGraphicalEditPart;
+import org.eclipse.gmf.runtime.diagram.ui.editpolicies.BorderItemSelectionEditPolicy;
+import org.eclipse.gmf.runtime.diagram.ui.editpolicies.CreationEditPolicy;
+import org.eclipse.gmf.runtime.diagram.ui.editpolicies.DragDropEditPolicy;
+import org.eclipse.gmf.runtime.diagram.ui.editpolicies.EditPolicyRoles;
+import org.eclipse.gmf.runtime.diagram.ui.figures.BorderItemLocator;
+import org.eclipse.gmf.runtime.draw2d.ui.figures.ConstrainedToolbarLayout;
+import org.eclipse.gmf.runtime.draw2d.ui.figures.WrappingLabel;
+import org.eclipse.gmf.runtime.gef.ui.figures.DefaultSizeNodeFigure;
+import org.eclipse.gmf.runtime.gef.ui.figures.NodeFigure;
+import org.eclipse.gmf.runtime.notation.View;
+import org.eclipse.swt.graphics.Color;
+
+import comrel.diagram.edit.policies.MultiFeatureUnit4CanonicalEditPolicy;
+import comrel.diagram.edit.policies.MultiFeatureUnit4ItemSemanticEditPolicy;
+import comrel.diagram.part.ComrelVisualIDRegistry;
+
+/**
+ * @generated
+ */
+public class MultiFeatureUnit4EditPart extends AbstractBorderedShapeEditPart {
+
+ /**
+ * @generated
+ */
+ public static final int VISUAL_ID = 3056;
+
+ /**
+ * @generated
+ */
+ protected IFigure contentPane;
+
+ /**
+ * @generated
+ */
+ protected IFigure primaryShape;
+
+ /**
+ * @generated
+ */
+ public MultiFeatureUnit4EditPart(View view) {
+ super(view);
+ }
+
+ /**
+ * @generated
+ */
+ protected void createDefaultEditPolicies() {
+ installEditPolicy(EditPolicyRoles.CREATION_ROLE,
+ new CreationEditPolicy());
+ super.createDefaultEditPolicies();
+ installEditPolicy(EditPolicyRoles.SEMANTIC_ROLE,
+ new MultiFeatureUnit4ItemSemanticEditPolicy());
+ installEditPolicy(EditPolicyRoles.DRAG_DROP_ROLE,
+ new DragDropEditPolicy());
+ installEditPolicy(EditPolicyRoles.CANONICAL_ROLE,
+ new MultiFeatureUnit4CanonicalEditPolicy());
+ installEditPolicy(EditPolicy.LAYOUT_ROLE, createLayoutEditPolicy());
+ // XXX need an SCR to runtime to have another abstract superclass that would let children add reasonable editpolicies
+ // removeEditPolicy(org.eclipse.gmf.runtime.diagram.ui.editpolicies.EditPolicyRoles.CONNECTION_HANDLES_ROLE);
+ }
+
+ /**
+ * @generated
+ */
+ protected LayoutEditPolicy createLayoutEditPolicy() {
+ org.eclipse.gmf.runtime.diagram.ui.editpolicies.LayoutEditPolicy lep = new org.eclipse.gmf.runtime.diagram.ui.editpolicies.LayoutEditPolicy() {
+
+ protected EditPolicy createChildEditPolicy(EditPart child) {
+ View childView = (View) child.getModel();
+ switch (ComrelVisualIDRegistry.getVisualID(childView)) {
+ case SingleInputPort5EditPart.VISUAL_ID:
+ case MultiInputPort4EditPart.VISUAL_ID:
+ case MultiOutputPortEditPart.VISUAL_ID:
+ return new BorderItemSelectionEditPolicy();
+ }
+ EditPolicy result = child
+ .getEditPolicy(EditPolicy.PRIMARY_DRAG_ROLE);
+ if (result == null) {
+ result = new NonResizableEditPolicy();
+ }
+ return result;
+ }
+
+ protected Command getMoveChildrenCommand(Request request) {
+ return null;
+ }
+
+ protected Command getCreateCommand(CreateRequest request) {
+ return null;
+ }
+ };
+ return lep;
+ }
+
+ /**
+ * @generated
+ */
+ protected IFigure createNodeShape() {
+ return primaryShape = new MultiFeatureUnitFigure();
+ }
+
+ /**
+ * @generated
+ */
+ public MultiFeatureUnitFigure getPrimaryShape() {
+ return (MultiFeatureUnitFigure) primaryShape;
+ }
+
+ /**
+ * @generated NOT
+ */
+ protected boolean addFixedChild(EditPart childEditPart) {
+ if (childEditPart instanceof MultiFeatureUnitNameType4EditPart) {
+ ((MultiFeatureUnitNameType4EditPart) childEditPart)
+ .setLabel(getPrimaryShape()
+ .getFigureMultiFeatureUnitLabelFigure());
+ return true;
+ }
+ if (childEditPart instanceof SingleInputPort5EditPart) {
+ BorderItemLocator locator = new BorderItemLocator(getMainFigure(),
+ PositionConstants.NORTH);
+ locator.setCurrentSideOfParent(PositionConstants.NORTH); // Position des Ports
+ locator.setPreferredSideOfParent(PositionConstants.NORTH); // Position des Ports
+ getBorderedFigure().getBorderItemContainer().add(
+ ((SingleInputPort5EditPart) childEditPart).getFigure(),
+ locator);
+ return true;
+ }
+ if (childEditPart instanceof MultiInputPort4EditPart) {
+ BorderItemLocator locator = new BorderItemLocator(getMainFigure(),
+ PositionConstants.NORTH);
+ locator.setCurrentSideOfParent(PositionConstants.NORTH); // Position des Ports
+ locator.setPreferredSideOfParent(PositionConstants.NORTH); // Position des Ports
+ getBorderedFigure().getBorderItemContainer().add(
+ ((MultiInputPort4EditPart) childEditPart).getFigure(),
+ locator);
+ return true;
+ }
+ if (childEditPart instanceof MultiOutputPortEditPart) {
+ BorderItemLocator locator = new BorderItemLocator(getMainFigure(),
+ PositionConstants.SOUTH);
+ locator.setCurrentSideOfParent(PositionConstants.SOUTH); // Position des Ports
+ locator.setPreferredSideOfParent(PositionConstants.SOUTH); // Position des Ports
+ getBorderedFigure().getBorderItemContainer().add(
+ ((MultiOutputPortEditPart) childEditPart).getFigure(),
+ locator);
+ return true;
+ }
+ return false;
+ }
+
+ /**
+ * @generated NOT
+ */
+ protected boolean removeFixedChild(EditPart childEditPart) {
+ if (childEditPart instanceof MultiFeatureUnitNameType4EditPart) {
+ return true;
+ }
+ if (childEditPart instanceof SingleInputPort5EditPart) {
+ // getBorderedFigure().getBorderItemContainer().remove(
+ // ((SingleInputPort5EditPart) childEditPart).getFigure());
+ return true;
+ }
+ if (childEditPart instanceof MultiInputPort4EditPart) {
+ getBorderedFigure().getBorderItemContainer().remove(
+ ((MultiInputPort4EditPart) childEditPart).getFigure());
+ return true;
+ }
+ if (childEditPart instanceof MultiOutputPortEditPart) {
+ // getBorderedFigure().getBorderItemContainer().remove(
+ // ((MultiOutputPortEditPart) childEditPart).getFigure());
+ return true;
+ }
+ return false;
+ }
+
+ /**
+ * @generated
+ */
+ protected void addChildVisual(EditPart childEditPart, int index) {
+ if (addFixedChild(childEditPart)) {
+ return;
+ }
+ super.addChildVisual(childEditPart, -1);
+ }
+
+ /**
+ * @generated
+ */
+ protected void removeChildVisual(EditPart childEditPart) {
+ if (removeFixedChild(childEditPart)) {
+ return;
+ }
+ super.removeChildVisual(childEditPart);
+ }
+
+ /**
+ * @generated
+ */
+ protected IFigure getContentPaneFor(IGraphicalEditPart editPart) {
+ if (editPart instanceof IBorderItemEditPart) {
+ return getBorderedFigure().getBorderItemContainer();
+ }
+ return getContentPane();
+ }
+
+ /**
+ * @generated
+ */
+ protected NodeFigure createNodePlate() {
+ DefaultSizeNodeFigure result = new DefaultSizeNodeFigure(40, 40);
+ return result;
+ }
+
+ /**
+ * Creates figure for this edit part.
+ *
+ * Body of this method does not depend on settings in generation model
+ * so you may safely remove <i>generated</i> tag and modify it.
+ *
+ * @generated
+ */
+ protected NodeFigure createMainFigure() {
+ NodeFigure figure = createNodePlate();
+ figure.setLayoutManager(new StackLayout());
+ IFigure shape = createNodeShape();
+ figure.add(shape);
+ contentPane = setupContentPane(shape);
+ return figure;
+ }
+
+ /**
+ * Default implementation treats passed figure as content pane.
+ * Respects layout one may have set for generated figure.
+ * @param nodeShape instance of generated figure class
+ * @generated
+ */
+ protected IFigure setupContentPane(IFigure nodeShape) {
+ if (nodeShape.getLayoutManager() == null) {
+ ConstrainedToolbarLayout layout = new ConstrainedToolbarLayout();
+ layout.setSpacing(5);
+ nodeShape.setLayoutManager(layout);
+ }
+ return nodeShape; // use nodeShape itself as contentPane
+ }
+
+ /**
+ * @generated
+ */
+ public IFigure getContentPane() {
+ if (contentPane != null) {
+ return contentPane;
+ }
+ return super.getContentPane();
+ }
+
+ /**
+ * @generated
+ */
+ protected void setForegroundColor(Color color) {
+ if (primaryShape != null) {
+ primaryShape.setForegroundColor(color);
+ }
+ }
+
+ /**
+ * @generated
+ */
+ protected void setBackgroundColor(Color color) {
+ if (primaryShape != null) {
+ primaryShape.setBackgroundColor(color);
+ }
+ }
+
+ /**
+ * @generated
+ */
+ protected void setLineWidth(int width) {
+ if (primaryShape instanceof Shape) {
+ ((Shape) primaryShape).setLineWidth(width);
+ }
+ }
+
+ /**
+ * @generated
+ */
+ protected void setLineType(int style) {
+ if (primaryShape instanceof Shape) {
+ ((Shape) primaryShape).setLineStyle(style);
+ }
+ }
+
+ /**
+ * @generated
+ */
+ public EditPart getPrimaryChildEditPart() {
+ return getChildBySemanticHint(ComrelVisualIDRegistry
+ .getType(MultiFeatureUnitNameType4EditPart.VISUAL_ID));
+ }
+
+ /**
+ * @generated
+ */
+ public class MultiFeatureUnitFigure extends RoundedRectangle {
+
+ /**
+ * @generated
+ */
+ private WrappingLabel fFigureMultiFeatureUnitLabelFigure;
+
+ /**
+ * @generated
+ */
+ public MultiFeatureUnitFigure() {
+ this.setCornerDimensions(new Dimension(getMapMode().DPtoLP(8),
+ getMapMode().DPtoLP(8)));
+ this.setBorder(new MarginBorder(getMapMode().DPtoLP(5),
+ getMapMode().DPtoLP(5), getMapMode().DPtoLP(5),
+ getMapMode().DPtoLP(5)));
+ createContents();
+ }
+
+ /**
+ * @generated
+ */
+ private void createContents() {
+
+ fFigureMultiFeatureUnitLabelFigure = new WrappingLabel();
+ fFigureMultiFeatureUnitLabelFigure.setText("MultiFeatureUnit");
+
+ this.add(fFigureMultiFeatureUnitLabelFigure);
+
+ }
+
+ /**
+ * @generated
+ */
+ public WrappingLabel getFigureMultiFeatureUnitLabelFigure() {
+ return fFigureMultiFeatureUnitLabelFigure;
+ }
+
+ }
+
+}
diff --git a/org.eclipse.emf.refactor.comrel.diagram/src/comrel/diagram/edit/parts/MultiFeatureUnit5EditPart.java b/org.eclipse.emf.refactor.comrel.diagram/src/comrel/diagram/edit/parts/MultiFeatureUnit5EditPart.java
new file mode 100644
index 0000000..24991c1
--- /dev/null
+++ b/org.eclipse.emf.refactor.comrel.diagram/src/comrel/diagram/edit/parts/MultiFeatureUnit5EditPart.java
@@ -0,0 +1,366 @@
+/*
+ *
+ */
+package comrel.diagram.edit.parts;
+
+import org.eclipse.draw2d.IFigure;
+import org.eclipse.draw2d.MarginBorder;
+import org.eclipse.draw2d.PositionConstants;
+import org.eclipse.draw2d.RoundedRectangle;
+import org.eclipse.draw2d.Shape;
+import org.eclipse.draw2d.StackLayout;
+import org.eclipse.draw2d.geometry.Dimension;
+import org.eclipse.gef.EditPart;
+import org.eclipse.gef.EditPolicy;
+import org.eclipse.gef.Request;
+import org.eclipse.gef.commands.Command;
+import org.eclipse.gef.editpolicies.LayoutEditPolicy;
+import org.eclipse.gef.editpolicies.NonResizableEditPolicy;
+import org.eclipse.gef.requests.CreateRequest;
+import org.eclipse.gmf.runtime.diagram.ui.editparts.AbstractBorderedShapeEditPart;
+import org.eclipse.gmf.runtime.diagram.ui.editparts.IBorderItemEditPart;
+import org.eclipse.gmf.runtime.diagram.ui.editparts.IGraphicalEditPart;
+import org.eclipse.gmf.runtime.diagram.ui.editpolicies.BorderItemSelectionEditPolicy;
+import org.eclipse.gmf.runtime.diagram.ui.editpolicies.CreationEditPolicy;
+import org.eclipse.gmf.runtime.diagram.ui.editpolicies.DragDropEditPolicy;
+import org.eclipse.gmf.runtime.diagram.ui.editpolicies.EditPolicyRoles;
+import org.eclipse.gmf.runtime.diagram.ui.figures.BorderItemLocator;
+import org.eclipse.gmf.runtime.draw2d.ui.figures.ConstrainedToolbarLayout;
+import org.eclipse.gmf.runtime.draw2d.ui.figures.WrappingLabel;
+import org.eclipse.gmf.runtime.gef.ui.figures.DefaultSizeNodeFigure;
+import org.eclipse.gmf.runtime.gef.ui.figures.NodeFigure;
+import org.eclipse.gmf.runtime.notation.View;
+import org.eclipse.swt.graphics.Color;
+
+import comrel.diagram.edit.policies.MultiFeatureUnit5CanonicalEditPolicy;
+import comrel.diagram.edit.policies.MultiFeatureUnit5ItemSemanticEditPolicy;
+import comrel.diagram.part.ComrelVisualIDRegistry;
+
+/**
+ * @generated
+ */
+public class MultiFeatureUnit5EditPart extends AbstractBorderedShapeEditPart {
+
+ /**
+ * @generated
+ */
+ public static final int VISUAL_ID = 3062;
+
+ /**
+ * @generated
+ */
+ protected IFigure contentPane;
+
+ /**
+ * @generated
+ */
+ protected IFigure primaryShape;
+
+ /**
+ * @generated
+ */
+ public MultiFeatureUnit5EditPart(View view) {
+ super(view);
+ }
+
+ /**
+ * @generated
+ */
+ protected void createDefaultEditPolicies() {
+ installEditPolicy(EditPolicyRoles.CREATION_ROLE,
+ new CreationEditPolicy());
+ super.createDefaultEditPolicies();
+ installEditPolicy(EditPolicyRoles.SEMANTIC_ROLE,
+ new MultiFeatureUnit5ItemSemanticEditPolicy());
+ installEditPolicy(EditPolicyRoles.DRAG_DROP_ROLE,
+ new DragDropEditPolicy());
+ installEditPolicy(EditPolicyRoles.CANONICAL_ROLE,
+ new MultiFeatureUnit5CanonicalEditPolicy());
+ installEditPolicy(EditPolicy.LAYOUT_ROLE, createLayoutEditPolicy());
+ // XXX need an SCR to runtime to have another abstract superclass that would let children add reasonable editpolicies
+ // removeEditPolicy(org.eclipse.gmf.runtime.diagram.ui.editpolicies.EditPolicyRoles.CONNECTION_HANDLES_ROLE);
+ }
+
+ /**
+ * @generated
+ */
+ protected LayoutEditPolicy createLayoutEditPolicy() {
+ org.eclipse.gmf.runtime.diagram.ui.editpolicies.LayoutEditPolicy lep = new org.eclipse.gmf.runtime.diagram.ui.editpolicies.LayoutEditPolicy() {
+
+ protected EditPolicy createChildEditPolicy(EditPart child) {
+ View childView = (View) child.getModel();
+ switch (ComrelVisualIDRegistry.getVisualID(childView)) {
+ case SingleInputPort5EditPart.VISUAL_ID:
+ case MultiInputPort4EditPart.VISUAL_ID:
+ case MultiOutputPortEditPart.VISUAL_ID:
+ return new BorderItemSelectionEditPolicy();
+ }
+ EditPolicy result = child
+ .getEditPolicy(EditPolicy.PRIMARY_DRAG_ROLE);
+ if (result == null) {
+ result = new NonResizableEditPolicy();
+ }
+ return result;
+ }
+
+ protected Command getMoveChildrenCommand(Request request) {
+ return null;
+ }
+
+ protected Command getCreateCommand(CreateRequest request) {
+ return null;
+ }
+ };
+ return lep;
+ }
+
+ /**
+ * @generated
+ */
+ protected IFigure createNodeShape() {
+ return primaryShape = new MultiFeatureUnitFigure();
+ }
+
+ /**
+ * @generated
+ */
+ public MultiFeatureUnitFigure getPrimaryShape() {
+ return (MultiFeatureUnitFigure) primaryShape;
+ }
+
+ /**
+ * @generated NOT
+ */
+ protected boolean addFixedChild(EditPart childEditPart) {
+ if (childEditPart instanceof MultiFeatureUnitNameType5EditPart) {
+ ((MultiFeatureUnitNameType5EditPart) childEditPart)
+ .setLabel(getPrimaryShape()
+ .getFigureMultiFeatureUnitLabelFigure());
+ return true;
+ }
+ if (childEditPart instanceof SingleInputPort5EditPart) {
+ BorderItemLocator locator = new BorderItemLocator(getMainFigure(),
+ PositionConstants.NORTH);
+ locator.setCurrentSideOfParent(PositionConstants.NORTH); // Position des Ports
+ locator.setPreferredSideOfParent(PositionConstants.NORTH); // Position des Ports
+ getBorderedFigure().getBorderItemContainer().add(
+ ((SingleInputPort5EditPart) childEditPart).getFigure(),
+ locator);
+ return true;
+ }
+ if (childEditPart instanceof MultiInputPort4EditPart) {
+ BorderItemLocator locator = new BorderItemLocator(getMainFigure(),
+ PositionConstants.NORTH);
+ locator.setCurrentSideOfParent(PositionConstants.NORTH); // Position des Ports
+ locator.setPreferredSideOfParent(PositionConstants.NORTH); // Position des Ports
+ getBorderedFigure().getBorderItemContainer().add(
+ ((MultiInputPort4EditPart) childEditPart).getFigure(),
+ locator);
+ return true;
+ }
+ if (childEditPart instanceof MultiOutputPortEditPart) {
+ BorderItemLocator locator = new BorderItemLocator(getMainFigure(),
+ PositionConstants.SOUTH);
+ locator.setCurrentSideOfParent(PositionConstants.SOUTH); // Position des Ports
+ locator.setPreferredSideOfParent(PositionConstants.SOUTH); // Position des Ports
+ getBorderedFigure().getBorderItemContainer().add(
+ ((MultiOutputPortEditPart) childEditPart).getFigure(),
+ locator);
+ return true;
+ }
+ return false;
+ }
+
+ /**
+ * @generated NOT
+ */
+ protected boolean removeFixedChild(EditPart childEditPart) {
+ if (childEditPart instanceof MultiFeatureUnitNameType5EditPart) {
+ return true;
+ }
+ if (childEditPart instanceof SingleInputPort5EditPart) {
+ // getBorderedFigure().getBorderItemContainer().remove(
+ // ((SingleInputPort5EditPart) childEditPart).getFigure());
+ return true;
+ }
+ if (childEditPart instanceof MultiInputPort4EditPart) {
+ getBorderedFigure().getBorderItemContainer().remove(
+ ((MultiInputPort4EditPart) childEditPart).getFigure());
+ return true;
+ }
+ if (childEditPart instanceof MultiOutputPortEditPart) {
+ // getBorderedFigure().getBorderItemContainer().remove(
+ // ((MultiOutputPortEditPart) childEditPart).getFigure());
+ return true;
+ }
+ return false;
+ }
+
+ /**
+ * @generated
+ */
+ protected void addChildVisual(EditPart childEditPart, int index) {
+ if (addFixedChild(childEditPart)) {
+ return;
+ }
+ super.addChildVisual(childEditPart, -1);
+ }
+
+ /**
+ * @generated
+ */
+ protected void removeChildVisual(EditPart childEditPart) {
+ if (removeFixedChild(childEditPart)) {
+ return;
+ }
+ super.removeChildVisual(childEditPart);
+ }
+
+ /**
+ * @generated
+ */
+ protected IFigure getContentPaneFor(IGraphicalEditPart editPart) {
+ if (editPart instanceof IBorderItemEditPart) {
+ return getBorderedFigure().getBorderItemContainer();
+ }
+ return getContentPane();
+ }
+
+ /**
+ * @generated
+ */
+ protected NodeFigure createNodePlate() {
+ DefaultSizeNodeFigure result = new DefaultSizeNodeFigure(40, 40);
+ return result;
+ }
+
+ /**
+ * Creates figure for this edit part.
+ *
+ * Body of this method does not depend on settings in generation model
+ * so you may safely remove <i>generated</i> tag and modify it.
+ *
+ * @generated
+ */
+ protected NodeFigure createMainFigure() {
+ NodeFigure figure = createNodePlate();
+ figure.setLayoutManager(new StackLayout());
+ IFigure shape = createNodeShape();
+ figure.add(shape);
+ contentPane = setupContentPane(shape);
+ return figure;
+ }
+
+ /**
+ * Default implementation treats passed figure as content pane.
+ * Respects layout one may have set for generated figure.
+ * @param nodeShape instance of generated figure class
+ * @generated
+ */
+ protected IFigure setupContentPane(IFigure nodeShape) {
+ if (nodeShape.getLayoutManager() == null) {
+ ConstrainedToolbarLayout layout = new ConstrainedToolbarLayout();
+ layout.setSpacing(5);
+ nodeShape.setLayoutManager(layout);
+ }
+ return nodeShape; // use nodeShape itself as contentPane
+ }
+
+ /**
+ * @generated
+ */
+ public IFigure getContentPane() {
+ if (contentPane != null) {
+ return contentPane;
+ }
+ return super.getContentPane();
+ }
+
+ /**
+ * @generated
+ */
+ protected void setForegroundColor(Color color) {
+ if (primaryShape != null) {
+ primaryShape.setForegroundColor(color);
+ }
+ }
+
+ /**
+ * @generated
+ */
+ protected void setBackgroundColor(Color color) {
+ if (primaryShape != null) {
+ primaryShape.setBackgroundColor(color);
+ }
+ }
+
+ /**
+ * @generated
+ */
+ protected void setLineWidth(int width) {
+ if (primaryShape instanceof Shape) {
+ ((Shape) primaryShape).setLineWidth(width);
+ }
+ }
+
+ /**
+ * @generated
+ */
+ protected void setLineType(int style) {
+ if (primaryShape instanceof Shape) {
+ ((Shape) primaryShape).setLineStyle(style);
+ }
+ }
+
+ /**
+ * @generated
+ */
+ public EditPart getPrimaryChildEditPart() {
+ return getChildBySemanticHint(ComrelVisualIDRegistry
+ .getType(MultiFeatureUnitNameType5EditPart.VISUAL_ID));
+ }
+
+ /**
+ * @generated
+ */
+ public class MultiFeatureUnitFigure extends RoundedRectangle {
+
+ /**
+ * @generated
+ */
+ private WrappingLabel fFigureMultiFeatureUnitLabelFigure;
+
+ /**
+ * @generated
+ */
+ public MultiFeatureUnitFigure() {
+ this.setCornerDimensions(new Dimension(getMapMode().DPtoLP(8),
+ getMapMode().DPtoLP(8)));
+ this.setBorder(new MarginBorder(getMapMode().DPtoLP(5),
+ getMapMode().DPtoLP(5), getMapMode().DPtoLP(5),
+ getMapMode().DPtoLP(5)));
+ createContents();
+ }
+
+ /**
+ * @generated
+ */
+ private void createContents() {
+
+ fFigureMultiFeatureUnitLabelFigure = new WrappingLabel();
+ fFigureMultiFeatureUnitLabelFigure.setText("MultiFeatureUnit");
+
+ this.add(fFigureMultiFeatureUnitLabelFigure);
+
+ }
+
+ /**
+ * @generated
+ */
+ public WrappingLabel getFigureMultiFeatureUnitLabelFigure() {
+ return fFigureMultiFeatureUnitLabelFigure;
+ }
+
+ }
+
+}
diff --git a/org.eclipse.emf.refactor.comrel.diagram/src/comrel/diagram/edit/parts/MultiFeatureUnitEditPart.java b/org.eclipse.emf.refactor.comrel.diagram/src/comrel/diagram/edit/parts/MultiFeatureUnitEditPart.java
new file mode 100644
index 0000000..c47a908
--- /dev/null
+++ b/org.eclipse.emf.refactor.comrel.diagram/src/comrel/diagram/edit/parts/MultiFeatureUnitEditPart.java
@@ -0,0 +1,366 @@
+/*
+ *
+ */
+package comrel.diagram.edit.parts;
+
+import org.eclipse.draw2d.IFigure;
+import org.eclipse.draw2d.MarginBorder;
+import org.eclipse.draw2d.PositionConstants;
+import org.eclipse.draw2d.RoundedRectangle;
+import org.eclipse.draw2d.Shape;
+import org.eclipse.draw2d.StackLayout;
+import org.eclipse.draw2d.geometry.Dimension;
+import org.eclipse.gef.EditPart;
+import org.eclipse.gef.EditPolicy;
+import org.eclipse.gef.Request;
+import org.eclipse.gef.commands.Command;
+import org.eclipse.gef.editpolicies.LayoutEditPolicy;
+import org.eclipse.gef.editpolicies.NonResizableEditPolicy;
+import org.eclipse.gef.requests.CreateRequest;
+import org.eclipse.gmf.runtime.diagram.ui.editparts.AbstractBorderedShapeEditPart;
+import org.eclipse.gmf.runtime.diagram.ui.editparts.IBorderItemEditPart;
+import org.eclipse.gmf.runtime.diagram.ui.editparts.IGraphicalEditPart;
+import org.eclipse.gmf.runtime.diagram.ui.editpolicies.BorderItemSelectionEditPolicy;
+import org.eclipse.gmf.runtime.diagram.ui.editpolicies.CreationEditPolicy;
+import org.eclipse.gmf.runtime.diagram.ui.editpolicies.DragDropEditPolicy;
+import org.eclipse.gmf.runtime.diagram.ui.editpolicies.EditPolicyRoles;
+import org.eclipse.gmf.runtime.diagram.ui.figures.BorderItemLocator;
+import org.eclipse.gmf.runtime.draw2d.ui.figures.ConstrainedToolbarLayout;
+import org.eclipse.gmf.runtime.draw2d.ui.figures.WrappingLabel;
+import org.eclipse.gmf.runtime.gef.ui.figures.DefaultSizeNodeFigure;
+import org.eclipse.gmf.runtime.gef.ui.figures.NodeFigure;
+import org.eclipse.gmf.runtime.notation.View;
+import org.eclipse.swt.graphics.Color;
+
+import comrel.diagram.edit.policies.MultiFeatureUnitCanonicalEditPolicy;
+import comrel.diagram.edit.policies.MultiFeatureUnitItemSemanticEditPolicy;
+import comrel.diagram.part.ComrelVisualIDRegistry;
+
+/**
+ * @generated
+ */
+public class MultiFeatureUnitEditPart extends AbstractBorderedShapeEditPart {
+
+ /**
+ * @generated
+ */
+ public static final int VISUAL_ID = 3012;
+
+ /**
+ * @generated
+ */
+ protected IFigure contentPane;
+
+ /**
+ * @generated
+ */
+ protected IFigure primaryShape;
+
+ /**
+ * @generated
+ */
+ public MultiFeatureUnitEditPart(View view) {
+ super(view);
+ }
+
+ /**
+ * @generated
+ */
+ protected void createDefaultEditPolicies() {
+ installEditPolicy(EditPolicyRoles.CREATION_ROLE,
+ new CreationEditPolicy());
+ super.createDefaultEditPolicies();
+ installEditPolicy(EditPolicyRoles.SEMANTIC_ROLE,
+ new MultiFeatureUnitItemSemanticEditPolicy());
+ installEditPolicy(EditPolicyRoles.DRAG_DROP_ROLE,
+ new DragDropEditPolicy());
+ installEditPolicy(EditPolicyRoles.CANONICAL_ROLE,
+ new MultiFeatureUnitCanonicalEditPolicy());
+ installEditPolicy(EditPolicy.LAYOUT_ROLE, createLayoutEditPolicy());
+ // XXX need an SCR to runtime to have another abstract superclass that would let children add reasonable editpolicies
+ // removeEditPolicy(org.eclipse.gmf.runtime.diagram.ui.editpolicies.EditPolicyRoles.CONNECTION_HANDLES_ROLE);
+ }
+
+ /**
+ * @generated
+ */
+ protected LayoutEditPolicy createLayoutEditPolicy() {
+ org.eclipse.gmf.runtime.diagram.ui.editpolicies.LayoutEditPolicy lep = new org.eclipse.gmf.runtime.diagram.ui.editpolicies.LayoutEditPolicy() {
+
+ protected EditPolicy createChildEditPolicy(EditPart child) {
+ View childView = (View) child.getModel();
+ switch (ComrelVisualIDRegistry.getVisualID(childView)) {
+ case SingleInputPort5EditPart.VISUAL_ID:
+ case MultiInputPort4EditPart.VISUAL_ID:
+ case MultiOutputPortEditPart.VISUAL_ID:
+ return new BorderItemSelectionEditPolicy();
+ }
+ EditPolicy result = child
+ .getEditPolicy(EditPolicy.PRIMARY_DRAG_ROLE);
+ if (result == null) {
+ result = new NonResizableEditPolicy();
+ }
+ return result;
+ }
+
+ protected Command getMoveChildrenCommand(Request request) {
+ return null;
+ }
+
+ protected Command getCreateCommand(CreateRequest request) {
+ return null;
+ }
+ };
+ return lep;
+ }
+
+ /**
+ * @generated
+ */
+ protected IFigure createNodeShape() {
+ return primaryShape = new MultiFeatureUnitFigure();
+ }
+
+ /**
+ * @generated
+ */
+ public MultiFeatureUnitFigure getPrimaryShape() {
+ return (MultiFeatureUnitFigure) primaryShape;
+ }
+
+ /**
+ * @generated NOT
+ */
+ protected boolean addFixedChild(EditPart childEditPart) {
+ if (childEditPart instanceof MultiFeatureUnitNameTypeEditPart) {
+ ((MultiFeatureUnitNameTypeEditPart) childEditPart)
+ .setLabel(getPrimaryShape()
+ .getFigureMultiFeatureUnitLabelFigure());
+ return true;
+ }
+ if (childEditPart instanceof SingleInputPort5EditPart) {
+ BorderItemLocator locator = new BorderItemLocator(getMainFigure(),
+ PositionConstants.NORTH);
+ locator.setCurrentSideOfParent(PositionConstants.NORTH); // Position des Ports
+ locator.setPreferredSideOfParent(PositionConstants.NORTH); // Position des Ports
+ getBorderedFigure().getBorderItemContainer().add(
+ ((SingleInputPort5EditPart) childEditPart).getFigure(),
+ locator);
+ return true;
+ }
+ if (childEditPart instanceof MultiInputPort4EditPart) {
+ BorderItemLocator locator = new BorderItemLocator(getMainFigure(),
+ PositionConstants.NORTH);
+ locator.setCurrentSideOfParent(PositionConstants.NORTH); // Position des Ports
+ locator.setPreferredSideOfParent(PositionConstants.NORTH); // Position des Ports
+ getBorderedFigure().getBorderItemContainer().add(
+ ((MultiInputPort4EditPart) childEditPart).getFigure(),
+ locator);
+ return true;
+ }
+ if (childEditPart instanceof MultiOutputPortEditPart) {
+ BorderItemLocator locator = new BorderItemLocator(getMainFigure(),
+ PositionConstants.SOUTH);
+ locator.setCurrentSideOfParent(PositionConstants.SOUTH); // Position des Ports
+ locator.setPreferredSideOfParent(PositionConstants.SOUTH); // Position des Ports
+ getBorderedFigure().getBorderItemContainer().add(
+ ((MultiOutputPortEditPart) childEditPart).getFigure(),
+ locator);
+ return true;
+ }
+ return false;
+ }
+
+ /**
+ * @generated NOT
+ */
+ protected boolean removeFixedChild(EditPart childEditPart) {
+ if (childEditPart instanceof MultiFeatureUnitNameTypeEditPart) {
+ return true;
+ }
+ if (childEditPart instanceof SingleInputPort5EditPart) {
+ // getBorderedFigure().getBorderItemContainer().remove(
+ // ((SingleInputPort5EditPart) childEditPart).getFigure());
+ return true;
+ }
+ if (childEditPart instanceof MultiInputPort4EditPart) {
+ getBorderedFigure().getBorderItemContainer().remove(
+ ((MultiInputPort4EditPart) childEditPart).getFigure());
+ return true;
+ }
+ if (childEditPart instanceof MultiOutputPortEditPart) {
+ // getBorderedFigure().getBorderItemContainer().remove(
+ // ((MultiOutputPortEditPart) childEditPart).getFigure());
+ return true;
+ }
+ return false;
+ }
+
+ /**
+ * @generated
+ */
+ protected void addChildVisual(EditPart childEditPart, int index) {
+ if (addFixedChild(childEditPart)) {
+ return;
+ }
+ super.addChildVisual(childEditPart, -1);
+ }
+
+ /**
+ * @generated
+ */
+ protected void removeChildVisual(EditPart childEditPart) {
+ if (removeFixedChild(childEditPart)) {
+ return;
+ }
+ super.removeChildVisual(childEditPart);
+ }
+
+ /**
+ * @generated
+ */
+ protected IFigure getContentPaneFor(IGraphicalEditPart editPart) {
+ if (editPart instanceof IBorderItemEditPart) {
+ return getBorderedFigure().getBorderItemContainer();
+ }
+ return getContentPane();
+ }
+
+ /**
+ * @generated
+ */
+ protected NodeFigure createNodePlate() {
+ DefaultSizeNodeFigure result = new DefaultSizeNodeFigure(40, 40);
+ return result;
+ }
+
+ /**
+ * Creates figure for this edit part.
+ *
+ * Body of this method does not depend on settings in generation model
+ * so you may safely remove <i>generated</i> tag and modify it.
+ *
+ * @generated
+ */
+ protected NodeFigure createMainFigure() {
+ NodeFigure figure = createNodePlate();
+ figure.setLayoutManager(new StackLayout());
+ IFigure shape = createNodeShape();
+ figure.add(shape);
+ contentPane = setupContentPane(shape);
+ return figure;
+ }
+
+ /**
+ * Default implementation treats passed figure as content pane.
+ * Respects layout one may have set for generated figure.
+ * @param nodeShape instance of generated figure class
+ * @generated
+ */
+ protected IFigure setupContentPane(IFigure nodeShape) {
+ if (nodeShape.getLayoutManager() == null) {
+ ConstrainedToolbarLayout layout = new ConstrainedToolbarLayout();
+ layout.setSpacing(5);
+ nodeShape.setLayoutManager(layout);
+ }
+ return nodeShape; // use nodeShape itself as contentPane
+ }
+
+ /**
+ * @generated
+ */
+ public IFigure getContentPane() {
+ if (contentPane != null) {
+ return contentPane;
+ }
+ return super.getContentPane();
+ }
+
+ /**
+ * @generated
+ */
+ protected void setForegroundColor(Color color) {
+ if (primaryShape != null) {
+ primaryShape.setForegroundColor(color);
+ }
+ }
+
+ /**
+ * @generated
+ */
+ protected void setBackgroundColor(Color color) {
+ if (primaryShape != null) {
+ primaryShape.setBackgroundColor(color);
+ }
+ }
+
+ /**
+ * @generated
+ */
+ protected void setLineWidth(int width) {
+ if (primaryShape instanceof Shape) {
+ ((Shape) primaryShape).setLineWidth(width);
+ }
+ }
+
+ /**
+ * @generated
+ */
+ protected void setLineType(int style) {
+ if (primaryShape instanceof Shape) {
+ ((Shape) primaryShape).setLineStyle(style);
+ }
+ }
+
+ /**
+ * @generated
+ */
+ public EditPart getPrimaryChildEditPart() {
+ return getChildBySemanticHint(ComrelVisualIDRegistry
+ .getType(MultiFeatureUnitNameTypeEditPart.VISUAL_ID));
+ }
+
+ /**
+ * @generated
+ */
+ public class MultiFeatureUnitFigure extends RoundedRectangle {
+
+ /**
+ * @generated
+ */
+ private WrappingLabel fFigureMultiFeatureUnitLabelFigure;
+
+ /**
+ * @generated
+ */
+ public MultiFeatureUnitFigure() {
+ this.setCornerDimensions(new Dimension(getMapMode().DPtoLP(8),
+ getMapMode().DPtoLP(8)));
+ this.setBorder(new MarginBorder(getMapMode().DPtoLP(5),
+ getMapMode().DPtoLP(5), getMapMode().DPtoLP(5),
+ getMapMode().DPtoLP(5)));
+ createContents();
+ }
+
+ /**
+ * @generated
+ */
+ private void createContents() {
+
+ fFigureMultiFeatureUnitLabelFigure = new WrappingLabel();
+ fFigureMultiFeatureUnitLabelFigure.setText("MultiFeatureUnit");
+
+ this.add(fFigureMultiFeatureUnitLabelFigure);
+
+ }
+
+ /**
+ * @generated
+ */
+ public WrappingLabel getFigureMultiFeatureUnitLabelFigure() {
+ return fFigureMultiFeatureUnitLabelFigure;
+ }
+
+ }
+
+}
diff --git a/org.eclipse.emf.refactor.comrel.diagram/src/comrel/diagram/edit/parts/MultiFeatureUnitNameType2EditPart.java b/org.eclipse.emf.refactor.comrel.diagram/src/comrel/diagram/edit/parts/MultiFeatureUnitNameType2EditPart.java
new file mode 100644
index 0000000..a46b4d8
--- /dev/null
+++ b/org.eclipse.emf.refactor.comrel.diagram/src/comrel/diagram/edit/parts/MultiFeatureUnitNameType2EditPart.java
@@ -0,0 +1,576 @@
+/*
+ *
+ */
+package comrel.diagram.edit.parts;
+
+import java.util.Collections;
+import java.util.List;
+
+import org.eclipse.draw2d.IFigure;
+import org.eclipse.draw2d.Label;
+import org.eclipse.draw2d.geometry.Point;
+import org.eclipse.emf.common.notify.Notification;
+import org.eclipse.emf.ecore.EObject;
+import org.eclipse.emf.transaction.RunnableWithResult;
+import org.eclipse.gef.AccessibleEditPart;
+import org.eclipse.gef.EditPolicy;
+import org.eclipse.gef.Request;
+import org.eclipse.gef.requests.DirectEditRequest;
+import org.eclipse.gef.tools.DirectEditManager;
+import org.eclipse.gmf.runtime.common.ui.services.parser.IParser;
+import org.eclipse.gmf.runtime.common.ui.services.parser.IParserEditStatus;
+import org.eclipse.gmf.runtime.common.ui.services.parser.ParserEditStatus;
+import org.eclipse.gmf.runtime.common.ui.services.parser.ParserOptions;
+import org.eclipse.gmf.runtime.diagram.ui.editparts.CompartmentEditPart;
+import org.eclipse.gmf.runtime.diagram.ui.editparts.IGraphicalEditPart;
+import org.eclipse.gmf.runtime.diagram.ui.editparts.ITextAwareEditPart;
+import org.eclipse.gmf.runtime.diagram.ui.editpolicies.LabelDirectEditPolicy;
+import org.eclipse.gmf.runtime.diagram.ui.l10n.DiagramColorRegistry;
+import org.eclipse.gmf.runtime.diagram.ui.requests.RequestConstants;
+import org.eclipse.gmf.runtime.diagram.ui.tools.TextDirectEditManager;
+import org.eclipse.gmf.runtime.draw2d.ui.figures.WrappingLabel;
+import org.eclipse.gmf.runtime.emf.core.util.EObjectAdapter;
+import org.eclipse.gmf.runtime.emf.ui.services.parser.ISemanticParser;
+import org.eclipse.gmf.runtime.notation.FontStyle;
+import org.eclipse.gmf.runtime.notation.NotationPackage;
+import org.eclipse.gmf.runtime.notation.View;
+import org.eclipse.jface.text.contentassist.IContentAssistProcessor;
+import org.eclipse.jface.viewers.ICellEditorValidator;
+import org.eclipse.swt.SWT;
+import org.eclipse.swt.accessibility.AccessibleEvent;
+import org.eclipse.swt.graphics.Color;
+import org.eclipse.swt.graphics.FontData;
+import org.eclipse.swt.graphics.Image;
+
+import comrel.diagram.edit.policies.ComrelTextSelectionEditPolicy;
+import comrel.diagram.part.ComrelVisualIDRegistry;
+import comrel.diagram.providers.ComrelElementTypes;
+import comrel.diagram.providers.ComrelParserProvider;
+
+/**
+ * @generated
+ */
+public class MultiFeatureUnitNameType2EditPart extends CompartmentEditPart
+ implements ITextAwareEditPart {
+
+ /**
+ * @generated
+ */
+ public static final int VISUAL_ID = 5030;
+
+ /**
+ * @generated
+ */
+ private DirectEditManager manager;
+
+ /**
+ * @generated
+ */
+ private IParser parser;
+
+ /**
+ * @generated
+ */
+ private List<?> parserElements;
+
+ /**
+ * @generated
+ */
+ private String defaultText;
+
+ /**
+ * @generated
+ */
+ public MultiFeatureUnitNameType2EditPart(View view) {
+ super(view);
+ }
+
+ /**
+ * @generated
+ */
+ protected void createDefaultEditPolicies() {
+ super.createDefaultEditPolicies();
+ installEditPolicy(EditPolicy.SELECTION_FEEDBACK_ROLE,
+ new ComrelTextSelectionEditPolicy());
+ installEditPolicy(EditPolicy.DIRECT_EDIT_ROLE,
+ new LabelDirectEditPolicy());
+ installEditPolicy(EditPolicy.PRIMARY_DRAG_ROLE,
+ new CompositeRefactoringEditPart.NodeLabelDragPolicy());
+ }
+
+ /**
+ * @generated
+ */
+ protected String getLabelTextHelper(IFigure figure) {
+ if (figure instanceof WrappingLabel) {
+ return ((WrappingLabel) figure).getText();
+ } else {
+ return ((Label) figure).getText();
+ }
+ }
+
+ /**
+ * @generated
+ */
+ protected void setLabelTextHelper(IFigure figure, String text) {
+ if (figure instanceof WrappingLabel) {
+ ((WrappingLabel) figure).setText(text);
+ } else {
+ ((Label) figure).setText(text);
+ }
+ }
+
+ /**
+ * @generated
+ */
+ protected Image getLabelIconHelper(IFigure figure) {
+ if (figure instanceof WrappingLabel) {
+ return ((WrappingLabel) figure).getIcon();
+ } else {
+ return ((Label) figure).getIcon();
+ }
+ }
+
+ /**
+ * @generated
+ */
+ protected void setLabelIconHelper(IFigure figure, Image icon) {
+ if (figure instanceof WrappingLabel) {
+ ((WrappingLabel) figure).setIcon(icon);
+ } else {
+ ((Label) figure).setIcon(icon);
+ }
+ }
+
+ /**
+ * @generated
+ */
+ public void setLabel(WrappingLabel figure) {
+ unregisterVisuals();
+ setFigure(figure);
+ defaultText = getLabelTextHelper(figure);
+ registerVisuals();
+ refreshVisuals();
+ }
+
+ /**
+ * @generated
+ */
+ @SuppressWarnings("rawtypes")
+ protected List getModelChildren() {
+ return Collections.EMPTY_LIST;
+ }
+
+ /**
+ * @generated
+ */
+ public IGraphicalEditPart getChildBySemanticHint(String semanticHint) {
+ return null;
+ }
+
+ /**
+ * @generated
+ */
+ protected EObject getParserElement() {
+ return resolveSemanticElement();
+ }
+
+ /**
+ * @generated
+ */
+ protected Image getLabelIcon() {
+ return null;
+ }
+
+ /**
+ * @generated
+ */
+ protected String getLabelText() {
+ String text = null;
+ EObject parserElement = getParserElement();
+ if (parserElement != null && getParser() != null) {
+ text = getParser().getPrintString(
+ new EObjectAdapter(parserElement),
+ getParserOptions().intValue());
+ }
+ if (text == null || text.length() == 0) {
+ text = defaultText;
+ }
+ return text;
+ }
+
+ /**
+ * @generated
+ */
+ public void setLabelText(String text) {
+ setLabelTextHelper(getFigure(), text);
+ Object pdEditPolicy = getEditPolicy(EditPolicy.PRIMARY_DRAG_ROLE);
+ if (pdEditPolicy instanceof ComrelTextSelectionEditPolicy) {
+ ((ComrelTextSelectionEditPolicy) pdEditPolicy).refreshFeedback();
+ }
+ Object sfEditPolicy = getEditPolicy(EditPolicy.SELECTION_FEEDBACK_ROLE);
+ if (sfEditPolicy instanceof ComrelTextSelectionEditPolicy) {
+ ((ComrelTextSelectionEditPolicy) sfEditPolicy).refreshFeedback();
+ }
+ }
+
+ /**
+ * @generated
+ */
+ public String getEditText() {
+ if (getParserElement() == null || getParser() == null) {
+ return ""; //$NON-NLS-1$
+ }
+ return getParser().getEditString(
+ new EObjectAdapter(getParserElement()),
+ getParserOptions().intValue());
+ }
+
+ /**
+ * @generated
+ */
+ protected boolean isEditable() {
+ return getParser() != null;
+ }
+
+ /**
+ * @generated
+ */
+ public ICellEditorValidator getEditTextValidator() {
+ return new ICellEditorValidator() {
+
+ public String isValid(final Object value) {
+ if (value instanceof String) {
+ final EObject element = getParserElement();
+ final IParser parser = getParser();
+ try {
+ IParserEditStatus valid = (IParserEditStatus) getEditingDomain()
+ .runExclusive(
+ new RunnableWithResult.Impl<IParserEditStatus>() {
+
+ public void run() {
+ setResult(parser
+ .isValidEditString(
+ new EObjectAdapter(
+ element),
+ (String) value));
+ }
+ });
+ return valid.getCode() == ParserEditStatus.EDITABLE ? null
+ : valid.getMessage();
+ } catch (InterruptedException ie) {
+ ie.printStackTrace();
+ }
+ }
+
+ // shouldn't get here
+ return null;
+ }
+ };
+ }
+
+ /**
+ * @generated
+ */
+ public IContentAssistProcessor getCompletionProcessor() {
+ if (getParserElement() == null || getParser() == null) {
+ return null;
+ }
+ return getParser().getCompletionProcessor(
+ new EObjectAdapter(getParserElement()));
+ }
+
+ /**
+ * @generated
+ */
+ public ParserOptions getParserOptions() {
+ return ParserOptions.NONE;
+ }
+
+ /**
+ * @generated
+ */
+ public IParser getParser() {
+ if (parser == null) {
+ parser = ComrelParserProvider
+ .getParser(
+ ComrelElementTypes.MultiFeatureUnit_3039,
+ getParserElement(),
+ ComrelVisualIDRegistry
+ .getType(comrel.diagram.edit.parts.MultiFeatureUnitNameType2EditPart.VISUAL_ID));
+ }
+ return parser;
+ }
+
+ /**
+ * @generated
+ */
+ protected DirectEditManager getManager() {
+ if (manager == null) {
+ setManager(new TextDirectEditManager(this,
+ TextDirectEditManager.getTextCellEditorClass(this),
+ ComrelEditPartFactory.getTextCellEditorLocator(this)));
+ }
+ return manager;
+ }
+
+ /**
+ * @generated
+ */
+ protected void setManager(DirectEditManager manager) {
+ this.manager = manager;
+ }
+
+ /**
+ * @generated
+ */
+ protected void performDirectEdit() {
+ getManager().show();
+ }
+
+ /**
+ * @generated
+ */
+ protected void performDirectEdit(Point eventLocation) {
+ if (getManager().getClass() == TextDirectEditManager.class) {
+ ((TextDirectEditManager) getManager()).show(eventLocation
+ .getSWTPoint());
+ }
+ }
+
+ /**
+ * @generated
+ */
+ private void performDirectEdit(char initialCharacter) {
+ if (getManager() instanceof TextDirectEditManager) {
+ ((TextDirectEditManager) getManager()).show(initialCharacter);
+ } else {
+ performDirectEdit();
+ }
+ }
+
+ /**
+ * @generated
+ */
+ protected void performDirectEditRequest(Request request) {
+ final Request theRequest = request;
+ try {
+ getEditingDomain().runExclusive(new Runnable() {
+
+ public void run() {
+ if (isActive() && isEditable()) {
+ if (theRequest
+ .getExtendedData()
+ .get(RequestConstants.REQ_DIRECTEDIT_EXTENDEDDATA_INITIAL_CHAR) instanceof Character) {
+ Character initialChar = (Character) theRequest
+ .getExtendedData()
+ .get(RequestConstants.REQ_DIRECTEDIT_EXTENDEDDATA_INITIAL_CHAR);
+ performDirectEdit(initialChar.charValue());
+ } else if ((theRequest instanceof DirectEditRequest)
+ && (getEditText().equals(getLabelText()))) {
+ DirectEditRequest editRequest = (DirectEditRequest) theRequest;
+ performDirectEdit(editRequest.getLocation());
+ } else {
+ performDirectEdit();
+ }
+ }
+ }
+ });
+ } catch (InterruptedException e) {
+ e.printStackTrace();
+ }
+ }
+
+ /**
+ * @generated
+ */
+ protected void refreshVisuals() {
+ super.refreshVisuals();
+ refreshLabel();
+ refreshFont();
+ refreshFontColor();
+ refreshUnderline();
+ refreshStrikeThrough();
+ }
+
+ /**
+ * @generated
+ */
+ protected void refreshLabel() {
+ setLabelTextHelper(getFigure(), getLabelText());
+ setLabelIconHelper(getFigure(), getLabelIcon());
+ Object pdEditPolicy = getEditPolicy(EditPolicy.PRIMARY_DRAG_ROLE);
+ if (pdEditPolicy instanceof ComrelTextSelectionEditPolicy) {
+ ((ComrelTextSelectionEditPolicy) pdEditPolicy).refreshFeedback();
+ }
+ Object sfEditPolicy = getEditPolicy(EditPolicy.SELECTION_FEEDBACK_ROLE);
+ if (sfEditPolicy instanceof ComrelTextSelectionEditPolicy) {
+ ((ComrelTextSelectionEditPolicy) sfEditPolicy).refreshFeedback();
+ }
+ }
+
+ /**
+ * @generated
+ */
+ protected void refreshUnderline() {
+ FontStyle style = (FontStyle) getFontStyleOwnerView().getStyle(
+ NotationPackage.eINSTANCE.getFontStyle());
+ if (style != null && getFigure() instanceof WrappingLabel) {
+ ((WrappingLabel) getFigure()).setTextUnderline(style.isUnderline());
+ }
+ }
+
+ /**
+ * @generated
+ */
+ protected void refreshStrikeThrough() {
+ FontStyle style = (FontStyle) getFontStyleOwnerView().getStyle(
+ NotationPackage.eINSTANCE.getFontStyle());
+ if (style != null && getFigure() instanceof WrappingLabel) {
+ ((WrappingLabel) getFigure()).setTextStrikeThrough(style
+ .isStrikeThrough());
+ }
+ }
+
+ /**
+ * @generated
+ */
+ protected void refreshFont() {
+ FontStyle style = (FontStyle) getFontStyleOwnerView().getStyle(
+ NotationPackage.eINSTANCE.getFontStyle());
+ if (style != null) {
+ FontData fontData = new FontData(style.getFontName(),
+ style.getFontHeight(), (style.isBold() ? SWT.BOLD
+ : SWT.NORMAL)
+ | (style.isItalic() ? SWT.ITALIC : SWT.NORMAL));
+ setFont(fontData);
+ }
+ }
+
+ /**
+ * @generated
+ */
+ protected void setFontColor(Color color) {
+ getFigure().setForegroundColor(color);
+ }
+
+ /**
+ * @generated
+ */
+ protected void addSemanticListeners() {
+ if (getParser() instanceof ISemanticParser) {
+ EObject element = resolveSemanticElement();
+ parserElements = ((ISemanticParser) getParser())
+ .getSemanticElementsBeingParsed(element);
+ for (int i = 0; i < parserElements.size(); i++) {
+ addListenerFilter(
+ "SemanticModel" + i, this, (EObject) parserElements.get(i)); //$NON-NLS-1$
+ }
+ } else {
+ super.addSemanticListeners();
+ }
+ }
+
+ /**
+ * @generated
+ */
+ protected void removeSemanticListeners() {
+ if (parserElements != null) {
+ for (int i = 0; i < parserElements.size(); i++) {
+ removeListenerFilter("SemanticModel" + i); //$NON-NLS-1$
+ }
+ } else {
+ super.removeSemanticListeners();
+ }
+ }
+
+ /**
+ * @generated
+ */
+ protected AccessibleEditPart getAccessibleEditPart() {
+ if (accessibleEP == null) {
+ accessibleEP = new AccessibleGraphicalEditPart() {
+
+ public void getName(AccessibleEvent e) {
+ e.result = getLabelTextHelper(getFigure());
+ }
+ };
+ }
+ return accessibleEP;
+ }
+
+ /**
+ * @generated
+ */
+ private View getFontStyleOwnerView() {
+ return getPrimaryView();
+ }
+
+ /**
+ * @generated
+ */
+ protected void addNotationalListeners() {
+ super.addNotationalListeners();
+ addListenerFilter("PrimaryView", this, getPrimaryView()); //$NON-NLS-1$
+ }
+
+ /**
+ * @generated
+ */
+ protected void removeNotationalListeners() {
+ super.removeNotationalListeners();
+ removeListenerFilter("PrimaryView"); //$NON-NLS-1$
+ }
+
+ /**
+ * @generated
+ */
+ protected void handleNotificationEvent(Notification event) {
+ Object feature = event.getFeature();
+ if (NotationPackage.eINSTANCE.getFontStyle_FontColor().equals(feature)) {
+ Integer c = (Integer) event.getNewValue();
+ setFontColor(DiagramColorRegistry.getInstance().getColor(c));
+ } else if (NotationPackage.eINSTANCE.getFontStyle_Underline().equals(
+ feature)) {
+ refreshUnderline();
+ } else if (NotationPackage.eINSTANCE.getFontStyle_StrikeThrough()
+ .equals(feature)) {
+ refreshStrikeThrough();
+ } else if (NotationPackage.eINSTANCE.getFontStyle_FontHeight().equals(
+ feature)
+ || NotationPackage.eINSTANCE.getFontStyle_FontName().equals(
+ feature)
+ || NotationPackage.eINSTANCE.getFontStyle_Bold()
+ .equals(feature)
+ || NotationPackage.eINSTANCE.getFontStyle_Italic().equals(
+ feature)) {
+ refreshFont();
+ } else {
+ if (getParser() != null
+ && getParser().isAffectingEvent(event,
+ getParserOptions().intValue())) {
+ refreshLabel();
+ }
+ if (getParser() instanceof ISemanticParser) {
+ ISemanticParser modelParser = (ISemanticParser) getParser();
+ if (modelParser.areSemanticElementsAffected(null, event)) {
+ removeSemanticListeners();
+ if (resolveSemanticElement() != null) {
+ addSemanticListeners();
+ }
+ refreshLabel();
+ }
+ }
+ }
+ super.handleNotificationEvent(event);
+ }
+
+ /**
+ * @generated
+ */
+ protected IFigure createFigure() {
+ // Parent should assign one using setLabel() method
+ return null;
+ }
+
+}
diff --git a/org.eclipse.emf.refactor.comrel.diagram/src/comrel/diagram/edit/parts/MultiFeatureUnitNameType3EditPart.java b/org.eclipse.emf.refactor.comrel.diagram/src/comrel/diagram/edit/parts/MultiFeatureUnitNameType3EditPart.java
new file mode 100644
index 0000000..d531d5c
--- /dev/null
+++ b/org.eclipse.emf.refactor.comrel.diagram/src/comrel/diagram/edit/parts/MultiFeatureUnitNameType3EditPart.java
@@ -0,0 +1,576 @@
+/*
+ *
+ */
+package comrel.diagram.edit.parts;
+
+import java.util.Collections;
+import java.util.List;
+
+import org.eclipse.draw2d.IFigure;
+import org.eclipse.draw2d.Label;
+import org.eclipse.draw2d.geometry.Point;
+import org.eclipse.emf.common.notify.Notification;
+import org.eclipse.emf.ecore.EObject;
+import org.eclipse.emf.transaction.RunnableWithResult;
+import org.eclipse.gef.AccessibleEditPart;
+import org.eclipse.gef.EditPolicy;
+import org.eclipse.gef.Request;
+import org.eclipse.gef.requests.DirectEditRequest;
+import org.eclipse.gef.tools.DirectEditManager;
+import org.eclipse.gmf.runtime.common.ui.services.parser.IParser;
+import org.eclipse.gmf.runtime.common.ui.services.parser.IParserEditStatus;
+import org.eclipse.gmf.runtime.common.ui.services.parser.ParserEditStatus;
+import org.eclipse.gmf.runtime.common.ui.services.parser.ParserOptions;
+import org.eclipse.gmf.runtime.diagram.ui.editparts.CompartmentEditPart;
+import org.eclipse.gmf.runtime.diagram.ui.editparts.IGraphicalEditPart;
+import org.eclipse.gmf.runtime.diagram.ui.editparts.ITextAwareEditPart;
+import org.eclipse.gmf.runtime.diagram.ui.editpolicies.LabelDirectEditPolicy;
+import org.eclipse.gmf.runtime.diagram.ui.l10n.DiagramColorRegistry;
+import org.eclipse.gmf.runtime.diagram.ui.requests.RequestConstants;
+import org.eclipse.gmf.runtime.diagram.ui.tools.TextDirectEditManager;
+import org.eclipse.gmf.runtime.draw2d.ui.figures.WrappingLabel;
+import org.eclipse.gmf.runtime.emf.core.util.EObjectAdapter;
+import org.eclipse.gmf.runtime.emf.ui.services.parser.ISemanticParser;
+import org.eclipse.gmf.runtime.notation.FontStyle;
+import org.eclipse.gmf.runtime.notation.NotationPackage;
+import org.eclipse.gmf.runtime.notation.View;
+import org.eclipse.jface.text.contentassist.IContentAssistProcessor;
+import org.eclipse.jface.viewers.ICellEditorValidator;
+import org.eclipse.swt.SWT;
+import org.eclipse.swt.accessibility.AccessibleEvent;
+import org.eclipse.swt.graphics.Color;
+import org.eclipse.swt.graphics.FontData;
+import org.eclipse.swt.graphics.Image;
+
+import comrel.diagram.edit.policies.ComrelTextSelectionEditPolicy;
+import comrel.diagram.part.ComrelVisualIDRegistry;
+import comrel.diagram.providers.ComrelElementTypes;
+import comrel.diagram.providers.ComrelParserProvider;
+
+/**
+ * @generated
+ */
+public class MultiFeatureUnitNameType3EditPart extends CompartmentEditPart
+ implements ITextAwareEditPart {
+
+ /**
+ * @generated
+ */
+ public static final int VISUAL_ID = 5037;
+
+ /**
+ * @generated
+ */
+ private DirectEditManager manager;
+
+ /**
+ * @generated
+ */
+ private IParser parser;
+
+ /**
+ * @generated
+ */
+ private List<?> parserElements;
+
+ /**
+ * @generated
+ */
+ private String defaultText;
+
+ /**
+ * @generated
+ */
+ public MultiFeatureUnitNameType3EditPart(View view) {
+ super(view);
+ }
+
+ /**
+ * @generated
+ */
+ protected void createDefaultEditPolicies() {
+ super.createDefaultEditPolicies();
+ installEditPolicy(EditPolicy.SELECTION_FEEDBACK_ROLE,
+ new ComrelTextSelectionEditPolicy());
+ installEditPolicy(EditPolicy.DIRECT_EDIT_ROLE,
+ new LabelDirectEditPolicy());
+ installEditPolicy(EditPolicy.PRIMARY_DRAG_ROLE,
+ new CompositeRefactoringEditPart.NodeLabelDragPolicy());
+ }
+
+ /**
+ * @generated
+ */
+ protected String getLabelTextHelper(IFigure figure) {
+ if (figure instanceof WrappingLabel) {
+ return ((WrappingLabel) figure).getText();
+ } else {
+ return ((Label) figure).getText();
+ }
+ }
+
+ /**
+ * @generated
+ */
+ protected void setLabelTextHelper(IFigure figure, String text) {
+ if (figure instanceof WrappingLabel) {
+ ((WrappingLabel) figure).setText(text);
+ } else {
+ ((Label) figure).setText(text);
+ }
+ }
+
+ /**
+ * @generated
+ */
+ protected Image getLabelIconHelper(IFigure figure) {
+ if (figure instanceof WrappingLabel) {
+ return ((WrappingLabel) figure).getIcon();
+ } else {
+ return ((Label) figure).getIcon();
+ }
+ }
+
+ /**
+ * @generated
+ */
+ protected void setLabelIconHelper(IFigure figure, Image icon) {
+ if (figure instanceof WrappingLabel) {
+ ((WrappingLabel) figure).setIcon(icon);
+ } else {
+ ((Label) figure).setIcon(icon);
+ }
+ }
+
+ /**
+ * @generated
+ */
+ public void setLabel(WrappingLabel figure) {
+ unregisterVisuals();
+ setFigure(figure);
+ defaultText = getLabelTextHelper(figure);
+ registerVisuals();
+ refreshVisuals();
+ }
+
+ /**
+ * @generated
+ */
+ @SuppressWarnings("rawtypes")
+ protected List getModelChildren() {
+ return Collections.EMPTY_LIST;
+ }
+
+ /**
+ * @generated
+ */
+ public IGraphicalEditPart getChildBySemanticHint(String semanticHint) {
+ return null;
+ }
+
+ /**
+ * @generated
+ */
+ protected EObject getParserElement() {
+ return resolveSemanticElement();
+ }
+
+ /**
+ * @generated
+ */
+ protected Image getLabelIcon() {
+ return null;
+ }
+
+ /**
+ * @generated
+ */
+ protected String getLabelText() {
+ String text = null;
+ EObject parserElement = getParserElement();
+ if (parserElement != null && getParser() != null) {
+ text = getParser().getPrintString(
+ new EObjectAdapter(parserElement),
+ getParserOptions().intValue());
+ }
+ if (text == null || text.length() == 0) {
+ text = defaultText;
+ }
+ return text;
+ }
+
+ /**
+ * @generated
+ */
+ public void setLabelText(String text) {
+ setLabelTextHelper(getFigure(), text);
+ Object pdEditPolicy = getEditPolicy(EditPolicy.PRIMARY_DRAG_ROLE);
+ if (pdEditPolicy instanceof ComrelTextSelectionEditPolicy) {
+ ((ComrelTextSelectionEditPolicy) pdEditPolicy).refreshFeedback();
+ }
+ Object sfEditPolicy = getEditPolicy(EditPolicy.SELECTION_FEEDBACK_ROLE);
+ if (sfEditPolicy instanceof ComrelTextSelectionEditPolicy) {
+ ((ComrelTextSelectionEditPolicy) sfEditPolicy).refreshFeedback();
+ }
+ }
+
+ /**
+ * @generated
+ */
+ public String getEditText() {
+ if (getParserElement() == null || getParser() == null) {
+ return ""; //$NON-NLS-1$
+ }
+ return getParser().getEditString(
+ new EObjectAdapter(getParserElement()),
+ getParserOptions().intValue());
+ }
+
+ /**
+ * @generated
+ */
+ protected boolean isEditable() {
+ return getParser() != null;
+ }
+
+ /**
+ * @generated
+ */
+ public ICellEditorValidator getEditTextValidator() {
+ return new ICellEditorValidator() {
+
+ public String isValid(final Object value) {
+ if (value instanceof String) {
+ final EObject element = getParserElement();
+ final IParser parser = getParser();
+ try {
+ IParserEditStatus valid = (IParserEditStatus) getEditingDomain()
+ .runExclusive(
+ new RunnableWithResult.Impl<IParserEditStatus>() {
+
+ public void run() {
+ setResult(parser
+ .isValidEditString(
+ new EObjectAdapter(
+ element),
+ (String) value));
+ }
+ });
+ return valid.getCode() == ParserEditStatus.EDITABLE ? null
+ : valid.getMessage();
+ } catch (InterruptedException ie) {
+ ie.printStackTrace();
+ }
+ }
+
+ // shouldn't get here
+ return null;
+ }
+ };
+ }
+
+ /**
+ * @generated
+ */
+ public IContentAssistProcessor getCompletionProcessor() {
+ if (getParserElement() == null || getParser() == null) {
+ return null;
+ }
+ return getParser().getCompletionProcessor(
+ new EObjectAdapter(getParserElement()));
+ }
+
+ /**
+ * @generated
+ */
+ public ParserOptions getParserOptions() {
+ return ParserOptions.NONE;
+ }
+
+ /**
+ * @generated
+ */
+ public IParser getParser() {
+ if (parser == null) {
+ parser = ComrelParserProvider
+ .getParser(
+ ComrelElementTypes.MultiFeatureUnit_3051,
+ getParserElement(),
+ ComrelVisualIDRegistry
+ .getType(comrel.diagram.edit.parts.MultiFeatureUnitNameType3EditPart.VISUAL_ID));
+ }
+ return parser;
+ }
+
+ /**
+ * @generated
+ */
+ protected DirectEditManager getManager() {
+ if (manager == null) {
+ setManager(new TextDirectEditManager(this,
+ TextDirectEditManager.getTextCellEditorClass(this),
+ ComrelEditPartFactory.getTextCellEditorLocator(this)));
+ }
+ return manager;
+ }
+
+ /**
+ * @generated
+ */
+ protected void setManager(DirectEditManager manager) {
+ this.manager = manager;
+ }
+
+ /**
+ * @generated
+ */
+ protected void performDirectEdit() {
+ getManager().show();
+ }
+
+ /**
+ * @generated
+ */
+ protected void performDirectEdit(Point eventLocation) {
+ if (getManager().getClass() == TextDirectEditManager.class) {
+ ((TextDirectEditManager) getManager()).show(eventLocation
+ .getSWTPoint());
+ }
+ }
+
+ /**
+ * @generated
+ */
+ private void performDirectEdit(char initialCharacter) {
+ if (getManager() instanceof TextDirectEditManager) {
+ ((TextDirectEditManager) getManager()).show(initialCharacter);
+ } else {
+ performDirectEdit();
+ }
+ }
+
+ /**
+ * @generated
+ */
+ protected void performDirectEditRequest(Request request) {
+ final Request theRequest = request;
+ try {
+ getEditingDomain().runExclusive(new Runnable() {
+
+ public void run() {
+ if (isActive() && isEditable()) {
+ if (theRequest
+ .getExtendedData()
+ .get(RequestConstants.REQ_DIRECTEDIT_EXTENDEDDATA_INITIAL_CHAR) instanceof Character) {
+ Character initialChar = (Character) theRequest
+ .getExtendedData()
+ .get(RequestConstants.REQ_DIRECTEDIT_EXTENDEDDATA_INITIAL_CHAR);
+ performDirectEdit(initialChar.charValue());
+ } else if ((theRequest instanceof DirectEditRequest)
+ && (getEditText().equals(getLabelText()))) {
+ DirectEditRequest editRequest = (DirectEditRequest) theRequest;
+ performDirectEdit(editRequest.getLocation());
+ } else {
+ performDirectEdit();
+ }
+ }
+ }
+ });
+ } catch (InterruptedException e) {
+ e.printStackTrace();
+ }
+ }
+
+ /**
+ * @generated
+ */
+ protected void refreshVisuals() {
+ super.refreshVisuals();
+ refreshLabel();
+ refreshFont();
+ refreshFontColor();
+ refreshUnderline();
+ refreshStrikeThrough();
+ }
+
+ /**
+ * @generated
+ */
+ protected void refreshLabel() {
+ setLabelTextHelper(getFigure(), getLabelText());
+ setLabelIconHelper(getFigure(), getLabelIcon());
+ Object pdEditPolicy = getEditPolicy(EditPolicy.PRIMARY_DRAG_ROLE);
+ if (pdEditPolicy instanceof ComrelTextSelectionEditPolicy) {
+ ((ComrelTextSelectionEditPolicy) pdEditPolicy).refreshFeedback();
+ }
+ Object sfEditPolicy = getEditPolicy(EditPolicy.SELECTION_FEEDBACK_ROLE);
+ if (sfEditPolicy instanceof ComrelTextSelectionEditPolicy) {
+ ((ComrelTextSelectionEditPolicy) sfEditPolicy).refreshFeedback();
+ }
+ }
+
+ /**
+ * @generated
+ */
+ protected void refreshUnderline() {
+ FontStyle style = (FontStyle) getFontStyleOwnerView().getStyle(
+ NotationPackage.eINSTANCE.getFontStyle());
+ if (style != null && getFigure() instanceof WrappingLabel) {
+ ((WrappingLabel) getFigure()).setTextUnderline(style.isUnderline());
+ }
+ }
+
+ /**
+ * @generated
+ */
+ protected void refreshStrikeThrough() {
+ FontStyle style = (FontStyle) getFontStyleOwnerView().getStyle(
+ NotationPackage.eINSTANCE.getFontStyle());
+ if (style != null && getFigure() instanceof WrappingLabel) {
+ ((WrappingLabel) getFigure()).setTextStrikeThrough(style
+ .isStrikeThrough());
+ }
+ }
+
+ /**
+ * @generated
+ */
+ protected void refreshFont() {
+ FontStyle style = (FontStyle) getFontStyleOwnerView().getStyle(
+ NotationPackage.eINSTANCE.getFontStyle());
+ if (style != null) {
+ FontData fontData = new FontData(style.getFontName(),
+ style.getFontHeight(), (style.isBold() ? SWT.BOLD
+ : SWT.NORMAL)
+ | (style.isItalic() ? SWT.ITALIC : SWT.NORMAL));
+ setFont(fontData);
+ }
+ }
+
+ /**
+ * @generated
+ */
+ protected void setFontColor(Color color) {
+ getFigure().setForegroundColor(color);
+ }
+
+ /**
+ * @generated
+ */
+ protected void addSemanticListeners() {
+ if (getParser() instanceof ISemanticParser) {
+ EObject element = resolveSemanticElement();
+ parserElements = ((ISemanticParser) getParser())
+ .getSemanticElementsBeingParsed(element);
+ for (int i = 0; i < parserElements.size(); i++) {
+ addListenerFilter(
+ "SemanticModel" + i, this, (EObject) parserElements.get(i)); //$NON-NLS-1$
+ }
+ } else {
+ super.addSemanticListeners();
+ }
+ }
+
+ /**
+ * @generated
+ */
+ protected void removeSemanticListeners() {
+ if (parserElements != null) {
+ for (int i = 0; i < parserElements.size(); i++) {
+ removeListenerFilter("SemanticModel" + i); //$NON-NLS-1$
+ }
+ } else {
+ super.removeSemanticListeners();
+ }
+ }
+
+ /**
+ * @generated
+ */
+ protected AccessibleEditPart getAccessibleEditPart() {
+ if (accessibleEP == null) {
+ accessibleEP = new AccessibleGraphicalEditPart() {
+
+ public void getName(AccessibleEvent e) {
+ e.result = getLabelTextHelper(getFigure());
+ }
+ };
+ }
+ return accessibleEP;
+ }
+
+ /**
+ * @generated
+ */
+ private View getFontStyleOwnerView() {
+ return getPrimaryView();
+ }
+
+ /**
+ * @generated
+ */
+ protected void addNotationalListeners() {
+ super.addNotationalListeners();
+ addListenerFilter("PrimaryView", this, getPrimaryView()); //$NON-NLS-1$
+ }
+
+ /**
+ * @generated
+ */
+ protected void removeNotationalListeners() {
+ super.removeNotationalListeners();
+ removeListenerFilter("PrimaryView"); //$NON-NLS-1$
+ }
+
+ /**
+ * @generated
+ */
+ protected void handleNotificationEvent(Notification event) {
+ Object feature = event.getFeature();
+ if (NotationPackage.eINSTANCE.getFontStyle_FontColor().equals(feature)) {
+ Integer c = (Integer) event.getNewValue();
+ setFontColor(DiagramColorRegistry.getInstance().getColor(c));
+ } else if (NotationPackage.eINSTANCE.getFontStyle_Underline().equals(
+ feature)) {
+ refreshUnderline();
+ } else if (NotationPackage.eINSTANCE.getFontStyle_StrikeThrough()
+ .equals(feature)) {
+ refreshStrikeThrough();
+ } else if (NotationPackage.eINSTANCE.getFontStyle_FontHeight().equals(
+ feature)
+ || NotationPackage.eINSTANCE.getFontStyle_FontName().equals(
+ feature)
+ || NotationPackage.eINSTANCE.getFontStyle_Bold()
+ .equals(feature)
+ || NotationPackage.eINSTANCE.getFontStyle_Italic().equals(
+ feature)) {
+ refreshFont();
+ } else {
+ if (getParser() != null
+ && getParser().isAffectingEvent(event,
+ getParserOptions().intValue())) {
+ refreshLabel();
+ }
+ if (getParser() instanceof ISemanticParser) {
+ ISemanticParser modelParser = (ISemanticParser) getParser();
+ if (modelParser.areSemanticElementsAffected(null, event)) {
+ removeSemanticListeners();
+ if (resolveSemanticElement() != null) {
+ addSemanticListeners();
+ }
+ refreshLabel();
+ }
+ }
+ }
+ super.handleNotificationEvent(event);
+ }
+
+ /**
+ * @generated
+ */
+ protected IFigure createFigure() {
+ // Parent should assign one using setLabel() method
+ return null;
+ }
+
+}
diff --git a/org.eclipse.emf.refactor.comrel.diagram/src/comrel/diagram/edit/parts/MultiFeatureUnitNameType4EditPart.java b/org.eclipse.emf.refactor.comrel.diagram/src/comrel/diagram/edit/parts/MultiFeatureUnitNameType4EditPart.java
new file mode 100644
index 0000000..6223ef7
--- /dev/null
+++ b/org.eclipse.emf.refactor.comrel.diagram/src/comrel/diagram/edit/parts/MultiFeatureUnitNameType4EditPart.java
@@ -0,0 +1,576 @@
+/*
+ *
+ */
+package comrel.diagram.edit.parts;
+
+import java.util.Collections;
+import java.util.List;
+
+import org.eclipse.draw2d.IFigure;
+import org.eclipse.draw2d.Label;
+import org.eclipse.draw2d.geometry.Point;
+import org.eclipse.emf.common.notify.Notification;
+import org.eclipse.emf.ecore.EObject;
+import org.eclipse.emf.transaction.RunnableWithResult;
+import org.eclipse.gef.AccessibleEditPart;
+import org.eclipse.gef.EditPolicy;
+import org.eclipse.gef.Request;
+import org.eclipse.gef.requests.DirectEditRequest;
+import org.eclipse.gef.tools.DirectEditManager;
+import org.eclipse.gmf.runtime.common.ui.services.parser.IParser;
+import org.eclipse.gmf.runtime.common.ui.services.parser.IParserEditStatus;
+import org.eclipse.gmf.runtime.common.ui.services.parser.ParserEditStatus;
+import org.eclipse.gmf.runtime.common.ui.services.parser.ParserOptions;
+import org.eclipse.gmf.runtime.diagram.ui.editparts.CompartmentEditPart;
+import org.eclipse.gmf.runtime.diagram.ui.editparts.IGraphicalEditPart;
+import org.eclipse.gmf.runtime.diagram.ui.editparts.ITextAwareEditPart;
+import org.eclipse.gmf.runtime.diagram.ui.editpolicies.LabelDirectEditPolicy;
+import org.eclipse.gmf.runtime.diagram.ui.l10n.DiagramColorRegistry;
+import org.eclipse.gmf.runtime.diagram.ui.requests.RequestConstants;
+import org.eclipse.gmf.runtime.diagram.ui.tools.TextDirectEditManager;
+import org.eclipse.gmf.runtime.draw2d.ui.figures.WrappingLabel;
+import org.eclipse.gmf.runtime.emf.core.util.EObjectAdapter;
+import org.eclipse.gmf.runtime.emf.ui.services.parser.ISemanticParser;
+import org.eclipse.gmf.runtime.notation.FontStyle;
+import org.eclipse.gmf.runtime.notation.NotationPackage;
+import org.eclipse.gmf.runtime.notation.View;
+import org.eclipse.jface.text.contentassist.IContentAssistProcessor;
+import org.eclipse.jface.viewers.ICellEditorValidator;
+import org.eclipse.swt.SWT;
+import org.eclipse.swt.accessibility.AccessibleEvent;
+import org.eclipse.swt.graphics.Color;
+import org.eclipse.swt.graphics.FontData;
+import org.eclipse.swt.graphics.Image;
+
+import comrel.diagram.edit.policies.ComrelTextSelectionEditPolicy;
+import comrel.diagram.part.ComrelVisualIDRegistry;
+import comrel.diagram.providers.ComrelElementTypes;
+import comrel.diagram.providers.ComrelParserProvider;
+
+/**
+ * @generated
+ */
+public class MultiFeatureUnitNameType4EditPart extends CompartmentEditPart
+ implements ITextAwareEditPart {
+
+ /**
+ * @generated
+ */
+ public static final int VISUAL_ID = 5041;
+
+ /**
+ * @generated
+ */
+ private DirectEditManager manager;
+
+ /**
+ * @generated
+ */
+ private IParser parser;
+
+ /**
+ * @generated
+ */
+ private List<?> parserElements;
+
+ /**
+ * @generated
+ */
+ private String defaultText;
+
+ /**
+ * @generated
+ */
+ public MultiFeatureUnitNameType4EditPart(View view) {
+ super(view);
+ }
+
+ /**
+ * @generated
+ */
+ protected void createDefaultEditPolicies() {
+ super.createDefaultEditPolicies();
+ installEditPolicy(EditPolicy.SELECTION_FEEDBACK_ROLE,
+ new ComrelTextSelectionEditPolicy());
+ installEditPolicy(EditPolicy.DIRECT_EDIT_ROLE,
+ new LabelDirectEditPolicy());
+ installEditPolicy(EditPolicy.PRIMARY_DRAG_ROLE,
+ new CompositeRefactoringEditPart.NodeLabelDragPolicy());
+ }
+
+ /**
+ * @generated
+ */
+ protected String getLabelTextHelper(IFigure figure) {
+ if (figure instanceof WrappingLabel) {
+ return ((WrappingLabel) figure).getText();
+ } else {
+ return ((Label) figure).getText();
+ }
+ }
+
+ /**
+ * @generated
+ */
+ protected void setLabelTextHelper(IFigure figure, String text) {
+ if (figure instanceof WrappingLabel) {
+ ((WrappingLabel) figure).setText(text);
+ } else {
+ ((Label) figure).setText(text);
+ }
+ }
+
+ /**
+ * @generated
+ */
+ protected Image getLabelIconHelper(IFigure figure) {
+ if (figure instanceof WrappingLabel) {
+ return ((WrappingLabel) figure).getIcon();
+ } else {
+ return ((Label) figure).getIcon();
+ }
+ }
+
+ /**
+ * @generated
+ */
+ protected void setLabelIconHelper(IFigure figure, Image icon) {
+ if (figure instanceof WrappingLabel) {
+ ((WrappingLabel) figure).setIcon(icon);
+ } else {
+ ((Label) figure).setIcon(icon);
+ }
+ }
+
+ /**
+ * @generated
+ */
+ public void setLabel(WrappingLabel figure) {
+ unregisterVisuals();
+ setFigure(figure);
+ defaultText = getLabelTextHelper(figure);
+ registerVisuals();
+ refreshVisuals();
+ }
+
+ /**
+ * @generated
+ */
+ @SuppressWarnings("rawtypes")
+ protected List getModelChildren() {
+ return Collections.EMPTY_LIST;
+ }
+
+ /**
+ * @generated
+ */
+ public IGraphicalEditPart getChildBySemanticHint(String semanticHint) {
+ return null;
+ }
+
+ /**
+ * @generated
+ */
+ protected EObject getParserElement() {
+ return resolveSemanticElement();
+ }
+
+ /**
+ * @generated
+ */
+ protected Image getLabelIcon() {
+ return null;
+ }
+
+ /**
+ * @generated
+ */
+ protected String getLabelText() {
+ String text = null;
+ EObject parserElement = getParserElement();
+ if (parserElement != null && getParser() != null) {
+ text = getParser().getPrintString(
+ new EObjectAdapter(parserElement),
+ getParserOptions().intValue());
+ }
+ if (text == null || text.length() == 0) {
+ text = defaultText;
+ }
+ return text;
+ }
+
+ /**
+ * @generated
+ */
+ public void setLabelText(String text) {
+ setLabelTextHelper(getFigure(), text);
+ Object pdEditPolicy = getEditPolicy(EditPolicy.PRIMARY_DRAG_ROLE);
+ if (pdEditPolicy instanceof ComrelTextSelectionEditPolicy) {
+ ((ComrelTextSelectionEditPolicy) pdEditPolicy).refreshFeedback();
+ }
+ Object sfEditPolicy = getEditPolicy(EditPolicy.SELECTION_FEEDBACK_ROLE);
+ if (sfEditPolicy instanceof ComrelTextSelectionEditPolicy) {
+ ((ComrelTextSelectionEditPolicy) sfEditPolicy).refreshFeedback();
+ }
+ }
+
+ /**
+ * @generated
+ */
+ public String getEditText() {
+ if (getParserElement() == null || getParser() == null) {
+ return ""; //$NON-NLS-1$
+ }
+ return getParser().getEditString(
+ new EObjectAdapter(getParserElement()),
+ getParserOptions().intValue());
+ }
+
+ /**
+ * @generated
+ */
+ protected boolean isEditable() {
+ return getParser() != null;
+ }
+
+ /**
+ * @generated
+ */
+ public ICellEditorValidator getEditTextValidator() {
+ return new ICellEditorValidator() {
+
+ public String isValid(final Object value) {
+ if (value instanceof String) {
+ final EObject element = getParserElement();
+ final IParser parser = getParser();
+ try {
+ IParserEditStatus valid = (IParserEditStatus) getEditingDomain()
+ .runExclusive(
+ new RunnableWithResult.Impl<IParserEditStatus>() {
+
+ public void run() {
+ setResult(parser
+ .isValidEditString(
+ new EObjectAdapter(
+ element),
+ (String) value));
+ }
+ });
+ return valid.getCode() == ParserEditStatus.EDITABLE ? null
+ : valid.getMessage();
+ } catch (InterruptedException ie) {
+ ie.printStackTrace();
+ }
+ }
+
+ // shouldn't get here
+ return null;
+ }
+ };
+ }
+
+ /**
+ * @generated
+ */
+ public IContentAssistProcessor getCompletionProcessor() {
+ if (getParserElement() == null || getParser() == null) {
+ return null;
+ }
+ return getParser().getCompletionProcessor(
+ new EObjectAdapter(getParserElement()));
+ }
+
+ /**
+ * @generated
+ */
+ public ParserOptions getParserOptions() {
+ return ParserOptions.NONE;
+ }
+
+ /**
+ * @generated
+ */
+ public IParser getParser() {
+ if (parser == null) {
+ parser = ComrelParserProvider
+ .getParser(
+ ComrelElementTypes.MultiFeatureUnit_3056,
+ getParserElement(),
+ ComrelVisualIDRegistry
+ .getType(comrel.diagram.edit.parts.MultiFeatureUnitNameType4EditPart.VISUAL_ID));
+ }
+ return parser;
+ }
+
+ /**
+ * @generated
+ */
+ protected DirectEditManager getManager() {
+ if (manager == null) {
+ setManager(new TextDirectEditManager(this,
+ TextDirectEditManager.getTextCellEditorClass(this),
+ ComrelEditPartFactory.getTextCellEditorLocator(this)));
+ }
+ return manager;
+ }
+
+ /**
+ * @generated
+ */
+ protected void setManager(DirectEditManager manager) {
+ this.manager = manager;
+ }
+
+ /**
+ * @generated
+ */
+ protected void performDirectEdit() {
+ getManager().show();
+ }
+
+ /**
+ * @generated
+ */
+ protected void performDirectEdit(Point eventLocation) {
+ if (getManager().getClass() == TextDirectEditManager.class) {
+ ((TextDirectEditManager) getManager()).show(eventLocation
+ .getSWTPoint());
+ }
+ }
+
+ /**
+ * @generated
+ */
+ private void performDirectEdit(char initialCharacter) {
+ if (getManager() instanceof TextDirectEditManager) {
+ ((TextDirectEditManager) getManager()).show(initialCharacter);
+ } else {
+ performDirectEdit();
+ }
+ }
+
+ /**
+ * @generated
+ */
+ protected void performDirectEditRequest(Request request) {
+ final Request theRequest = request;
+ try {
+ getEditingDomain().runExclusive(new Runnable() {
+
+ public void run() {
+ if (isActive() && isEditable()) {
+ if (theRequest
+ .getExtendedData()
+ .get(RequestConstants.REQ_DIRECTEDIT_EXTENDEDDATA_INITIAL_CHAR) instanceof Character) {
+ Character initialChar = (Character) theRequest
+ .getExtendedData()
+ .get(RequestConstants.REQ_DIRECTEDIT_EXTENDEDDATA_INITIAL_CHAR);
+ performDirectEdit(initialChar.charValue());
+ } else if ((theRequest instanceof DirectEditRequest)
+ && (getEditText().equals(getLabelText()))) {
+ DirectEditRequest editRequest = (DirectEditRequest) theRequest;
+ performDirectEdit(editRequest.getLocation());
+ } else {
+ performDirectEdit();
+ }
+ }
+ }
+ });
+ } catch (InterruptedException e) {
+ e.printStackTrace();
+ }
+ }
+
+ /**
+ * @generated
+ */
+ protected void refreshVisuals() {
+ super.refreshVisuals();
+ refreshLabel();
+ refreshFont();
+ refreshFontColor();
+ refreshUnderline();
+ refreshStrikeThrough();
+ }
+
+ /**
+ * @generated
+ */
+ protected void refreshLabel() {
+ setLabelTextHelper(getFigure(), getLabelText());
+ setLabelIconHelper(getFigure(), getLabelIcon());
+ Object pdEditPolicy = getEditPolicy(EditPolicy.PRIMARY_DRAG_ROLE);
+ if (pdEditPolicy instanceof ComrelTextSelectionEditPolicy) {
+ ((ComrelTextSelectionEditPolicy) pdEditPolicy).refreshFeedback();
+ }
+ Object sfEditPolicy = getEditPolicy(EditPolicy.SELECTION_FEEDBACK_ROLE);
+ if (sfEditPolicy instanceof ComrelTextSelectionEditPolicy) {
+ ((ComrelTextSelectionEditPolicy) sfEditPolicy).refreshFeedback();
+ }
+ }
+
+ /**
+ * @generated
+ */
+ protected void refreshUnderline() {
+ FontStyle style = (FontStyle) getFontStyleOwnerView().getStyle(
+ NotationPackage.eINSTANCE.getFontStyle());
+ if (style != null && getFigure() instanceof WrappingLabel) {
+ ((WrappingLabel) getFigure()).setTextUnderline(style.isUnderline());
+ }
+ }
+
+ /**
+ * @generated
+ */
+ protected void refreshStrikeThrough() {
+ FontStyle style = (FontStyle) getFontStyleOwnerView().getStyle(
+ NotationPackage.eINSTANCE.getFontStyle());
+ if (style != null && getFigure() instanceof WrappingLabel) {
+ ((WrappingLabel) getFigure()).setTextStrikeThrough(style
+ .isStrikeThrough());
+ }
+ }
+
+ /**
+ * @generated
+ */
+ protected void refreshFont() {
+ FontStyle style = (FontStyle) getFontStyleOwnerView().getStyle(
+ NotationPackage.eINSTANCE.getFontStyle());
+ if (style != null) {
+ FontData fontData = new FontData(style.getFontName(),
+ style.getFontHeight(), (style.isBold() ? SWT.BOLD
+ : SWT.NORMAL)
+ | (style.isItalic() ? SWT.ITALIC : SWT.NORMAL));
+ setFont(fontData);
+ }
+ }
+
+ /**
+ * @generated
+ */
+ protected void setFontColor(Color color) {
+ getFigure().setForegroundColor(color);
+ }
+
+ /**
+ * @generated
+ */
+ protected void addSemanticListeners() {
+ if (getParser() instanceof ISemanticParser) {
+ EObject element = resolveSemanticElement();
+ parserElements = ((ISemanticParser) getParser())
+ .getSemanticElementsBeingParsed(element);
+ for (int i = 0; i < parserElements.size(); i++) {
+ addListenerFilter(
+ "SemanticModel" + i, this, (EObject) parserElements.get(i)); //$NON-NLS-1$
+ }
+ } else {
+ super.addSemanticListeners();
+ }
+ }
+
+ /**
+ * @generated
+ */
+ protected void removeSemanticListeners() {
+ if (parserElements != null) {
+ for (int i = 0; i < parserElements.size(); i++) {
+ removeListenerFilter("SemanticModel" + i); //$NON-NLS-1$
+ }
+ } else {
+ super.removeSemanticListeners();
+ }
+ }
+
+ /**
+ * @generated
+ */
+ protected AccessibleEditPart getAccessibleEditPart() {
+ if (accessibleEP == null) {
+ accessibleEP = new AccessibleGraphicalEditPart() {
+
+ public void getName(AccessibleEvent e) {
+ e.result = getLabelTextHelper(getFigure());
+ }
+ };
+ }
+ return accessibleEP;
+ }
+
+ /**
+ * @generated
+ */
+ private View getFontStyleOwnerView() {
+ return getPrimaryView();
+ }
+
+ /**
+ * @generated
+ */
+ protected void addNotationalListeners() {
+ super.addNotationalListeners();
+ addListenerFilter("PrimaryView", this, getPrimaryView()); //$NON-NLS-1$
+ }
+
+ /**
+ * @generated
+ */
+ protected void removeNotationalListeners() {
+ super.removeNotationalListeners();
+ removeListenerFilter("PrimaryView"); //$NON-NLS-1$
+ }
+
+ /**
+ * @generated
+ */
+ protected void handleNotificationEvent(Notification event) {
+ Object feature = event.getFeature();
+ if (NotationPackage.eINSTANCE.getFontStyle_FontColor().equals(feature)) {
+ Integer c = (Integer) event.getNewValue();
+ setFontColor(DiagramColorRegistry.getInstance().getColor(c));
+ } else if (NotationPackage.eINSTANCE.getFontStyle_Underline().equals(
+ feature)) {
+ refreshUnderline();
+ } else if (NotationPackage.eINSTANCE.getFontStyle_StrikeThrough()
+ .equals(feature)) {
+ refreshStrikeThrough();
+ } else if (NotationPackage.eINSTANCE.getFontStyle_FontHeight().equals(
+ feature)
+ || NotationPackage.eINSTANCE.getFontStyle_FontName().equals(
+ feature)
+ || NotationPackage.eINSTANCE.getFontStyle_Bold()
+ .equals(feature)
+ || NotationPackage.eINSTANCE.getFontStyle_Italic().equals(
+ feature)) {
+ refreshFont();
+ } else {
+ if (getParser() != null
+ && getParser().isAffectingEvent(event,
+ getParserOptions().intValue())) {
+ refreshLabel();
+ }
+ if (getParser() instanceof ISemanticParser) {
+ ISemanticParser modelParser = (ISemanticParser) getParser();
+ if (modelParser.areSemanticElementsAffected(null, event)) {
+ removeSemanticListeners();
+ if (resolveSemanticElement() != null) {
+ addSemanticListeners();
+ }
+ refreshLabel();
+ }
+ }
+ }
+ super.handleNotificationEvent(event);
+ }
+
+ /**
+ * @generated
+ */
+ protected IFigure createFigure() {
+ // Parent should assign one using setLabel() method
+ return null;
+ }
+
+}
diff --git a/org.eclipse.emf.refactor.comrel.diagram/src/comrel/diagram/edit/parts/MultiFeatureUnitNameType5EditPart.java b/org.eclipse.emf.refactor.comrel.diagram/src/comrel/diagram/edit/parts/MultiFeatureUnitNameType5EditPart.java
new file mode 100644
index 0000000..2ad4625
--- /dev/null
+++ b/org.eclipse.emf.refactor.comrel.diagram/src/comrel/diagram/edit/parts/MultiFeatureUnitNameType5EditPart.java
@@ -0,0 +1,576 @@
+/*
+ *
+ */
+package comrel.diagram.edit.parts;
+
+import java.util.Collections;
+import java.util.List;
+
+import org.eclipse.draw2d.IFigure;
+import org.eclipse.draw2d.Label;
+import org.eclipse.draw2d.geometry.Point;
+import org.eclipse.emf.common.notify.Notification;
+import org.eclipse.emf.ecore.EObject;
+import org.eclipse.emf.transaction.RunnableWithResult;
+import org.eclipse.gef.AccessibleEditPart;
+import org.eclipse.gef.EditPolicy;
+import org.eclipse.gef.Request;
+import org.eclipse.gef.requests.DirectEditRequest;
+import org.eclipse.gef.tools.DirectEditManager;
+import org.eclipse.gmf.runtime.common.ui.services.parser.IParser;
+import org.eclipse.gmf.runtime.common.ui.services.parser.IParserEditStatus;
+import org.eclipse.gmf.runtime.common.ui.services.parser.ParserEditStatus;
+import org.eclipse.gmf.runtime.common.ui.services.parser.ParserOptions;
+import org.eclipse.gmf.runtime.diagram.ui.editparts.CompartmentEditPart;
+import org.eclipse.gmf.runtime.diagram.ui.editparts.IGraphicalEditPart;
+import org.eclipse.gmf.runtime.diagram.ui.editparts.ITextAwareEditPart;
+import org.eclipse.gmf.runtime.diagram.ui.editpolicies.LabelDirectEditPolicy;
+import org.eclipse.gmf.runtime.diagram.ui.l10n.DiagramColorRegistry;
+import org.eclipse.gmf.runtime.diagram.ui.requests.RequestConstants;
+import org.eclipse.gmf.runtime.diagram.ui.tools.TextDirectEditManager;
+import org.eclipse.gmf.runtime.draw2d.ui.figures.WrappingLabel;
+import org.eclipse.gmf.runtime.emf.core.util.EObjectAdapter;
+import org.eclipse.gmf.runtime.emf.ui.services.parser.ISemanticParser;
+import org.eclipse.gmf.runtime.notation.FontStyle;
+import org.eclipse.gmf.runtime.notation.NotationPackage;
+import org.eclipse.gmf.runtime.notation.View;
+import org.eclipse.jface.text.contentassist.IContentAssistProcessor;
+import org.eclipse.jface.viewers.ICellEditorValidator;
+import org.eclipse.swt.SWT;
+import org.eclipse.swt.accessibility.AccessibleEvent;
+import org.eclipse.swt.graphics.Color;
+import org.eclipse.swt.graphics.FontData;
+import org.eclipse.swt.graphics.Image;
+
+import comrel.diagram.edit.policies.ComrelTextSelectionEditPolicy;
+import comrel.diagram.part.ComrelVisualIDRegistry;
+import comrel.diagram.providers.ComrelElementTypes;
+import comrel.diagram.providers.ComrelParserProvider;
+
+/**
+ * @generated
+ */
+public class MultiFeatureUnitNameType5EditPart extends CompartmentEditPart
+ implements ITextAwareEditPart {
+
+ /**
+ * @generated
+ */
+ public static final int VISUAL_ID = 5045;
+
+ /**
+ * @generated
+ */
+ private DirectEditManager manager;
+
+ /**
+ * @generated
+ */
+ private IParser parser;
+
+ /**
+ * @generated
+ */
+ private List<?> parserElements;
+
+ /**
+ * @generated
+ */
+ private String defaultText;
+
+ /**
+ * @generated
+ */
+ public MultiFeatureUnitNameType5EditPart(View view) {
+ super(view);
+ }
+
+ /**
+ * @generated
+ */
+ protected void createDefaultEditPolicies() {
+ super.createDefaultEditPolicies();
+ installEditPolicy(EditPolicy.SELECTION_FEEDBACK_ROLE,
+ new ComrelTextSelectionEditPolicy());
+ installEditPolicy(EditPolicy.DIRECT_EDIT_ROLE,
+ new LabelDirectEditPolicy());
+ installEditPolicy(EditPolicy.PRIMARY_DRAG_ROLE,
+ new CompositeRefactoringEditPart.NodeLabelDragPolicy());
+ }
+
+ /**
+ * @generated
+ */
+ protected String getLabelTextHelper(IFigure figure) {
+ if (figure instanceof WrappingLabel) {
+ return ((WrappingLabel) figure).getText();
+ } else {
+ return ((Label) figure).getText();
+ }
+ }
+
+ /**
+ * @generated
+ */
+ protected void setLabelTextHelper(IFigure figure, String text) {
+ if (figure instanceof WrappingLabel) {
+ ((WrappingLabel) figure).setText(text);
+ } else {
+ ((Label) figure).setText(text);
+ }
+ }
+
+ /**
+ * @generated
+ */
+ protected Image getLabelIconHelper(IFigure figure) {
+ if (figure instanceof WrappingLabel) {
+ return ((WrappingLabel) figure).getIcon();
+ } else {
+ return ((Label) figure).getIcon();
+ }
+ }
+
+ /**
+ * @generated
+ */
+ protected void setLabelIconHelper(IFigure figure, Image icon) {
+ if (figure instanceof WrappingLabel) {
+ ((WrappingLabel) figure).setIcon(icon);
+ } else {
+ ((Label) figure).setIcon(icon);
+ }
+ }
+
+ /**
+ * @generated
+ */
+ public void setLabel(WrappingLabel figure) {
+ unregisterVisuals();
+ setFigure(figure);
+ defaultText = getLabelTextHelper(figure);
+ registerVisuals();
+ refreshVisuals();
+ }
+
+ /**
+ * @generated
+ */
+ @SuppressWarnings("rawtypes")
+ protected List getModelChildren() {
+ return Collections.EMPTY_LIST;
+ }
+
+ /**
+ * @generated
+ */
+ public IGraphicalEditPart getChildBySemanticHint(String semanticHint) {
+ return null;
+ }
+
+ /**
+ * @generated
+ */
+ protected EObject getParserElement() {
+ return resolveSemanticElement();
+ }
+
+ /**
+ * @generated
+ */
+ protected Image getLabelIcon() {
+ return null;
+ }
+
+ /**
+ * @generated
+ */
+ protected String getLabelText() {
+ String text = null;
+ EObject parserElement = getParserElement();
+ if (parserElement != null && getParser() != null) {
+ text = getParser().getPrintString(
+ new EObjectAdapter(parserElement),
+ getParserOptions().intValue());
+ }
+ if (text == null || text.length() == 0) {
+ text = defaultText;
+ }
+ return text;
+ }
+
+ /**
+ * @generated
+ */
+ public void setLabelText(String text) {
+ setLabelTextHelper(getFigure(), text);
+ Object pdEditPolicy = getEditPolicy(EditPolicy.PRIMARY_DRAG_ROLE);
+ if (pdEditPolicy instanceof ComrelTextSelectionEditPolicy) {
+ ((ComrelTextSelectionEditPolicy) pdEditPolicy).refreshFeedback();
+ }
+ Object sfEditPolicy = getEditPolicy(EditPolicy.SELECTION_FEEDBACK_ROLE);
+ if (sfEditPolicy instanceof ComrelTextSelectionEditPolicy) {
+ ((ComrelTextSelectionEditPolicy) sfEditPolicy).refreshFeedback();
+ }
+ }
+
+ /**
+ * @generated
+ */
+ public String getEditText() {
+ if (getParserElement() == null || getParser() == null) {
+ return ""; //$NON-NLS-1$
+ }
+ return getParser().getEditString(
+ new EObjectAdapter(getParserElement()),
+ getParserOptions().intValue());
+ }
+
+ /**
+ * @generated
+ */
+ protected boolean isEditable() {
+ return getParser() != null;
+ }
+
+ /**
+ * @generated
+ */
+ public ICellEditorValidator getEditTextValidator() {
+ return new ICellEditorValidator() {
+
+ public String isValid(final Object value) {
+ if (value instanceof String) {
+ final EObject element = getParserElement();
+ final IParser parser = getParser();
+ try {
+ IParserEditStatus valid = (IParserEditStatus) getEditingDomain()
+ .runExclusive(
+ new RunnableWithResult.Impl<IParserEditStatus>() {
+
+ public void run() {
+ setResult(parser
+ .isValidEditString(
+ new EObjectAdapter(
+ element),
+ (String) value));
+ }
+ });
+ return valid.getCode() == ParserEditStatus.EDITABLE ? null
+ : valid.getMessage();
+ } catch (InterruptedException ie) {
+ ie.printStackTrace();
+ }
+ }
+
+ // shouldn't get here
+ return null;
+ }
+ };
+ }
+
+ /**
+ * @generated
+ */
+ public IContentAssistProcessor getCompletionProcessor() {
+ if (getParserElement() == null || getParser() == null) {
+ return null;
+ }
+ return getParser().getCompletionProcessor(
+ new EObjectAdapter(getParserElement()));
+ }
+
+ /**
+ * @generated
+ */
+ public ParserOptions getParserOptions() {
+ return ParserOptions.NONE;
+ }
+
+ /**
+ * @generated
+ */
+ public IParser getParser() {
+ if (parser == null) {
+ parser = ComrelParserProvider
+ .getParser(
+ ComrelElementTypes.MultiFeatureUnit_3062,
+ getParserElement(),
+ ComrelVisualIDRegistry
+ .getType(comrel.diagram.edit.parts.MultiFeatureUnitNameType5EditPart.VISUAL_ID));
+ }
+ return parser;
+ }
+
+ /**
+ * @generated
+ */
+ protected DirectEditManager getManager() {
+ if (manager == null) {
+ setManager(new TextDirectEditManager(this,
+ TextDirectEditManager.getTextCellEditorClass(this),
+ ComrelEditPartFactory.getTextCellEditorLocator(this)));
+ }
+ return manager;
+ }
+
+ /**
+ * @generated
+ */
+ protected void setManager(DirectEditManager manager) {
+ this.manager = manager;
+ }
+
+ /**
+ * @generated
+ */
+ protected void performDirectEdit() {
+ getManager().show();
+ }
+
+ /**
+ * @generated
+ */
+ protected void performDirectEdit(Point eventLocation) {
+ if (getManager().getClass() == TextDirectEditManager.class) {
+ ((TextDirectEditManager) getManager()).show(eventLocation
+ .getSWTPoint());
+ }
+ }
+
+ /**
+ * @generated
+ */
+ private void performDirectEdit(char initialCharacter) {
+ if (getManager() instanceof TextDirectEditManager) {
+ ((TextDirectEditManager) getManager()).show(initialCharacter);
+ } else {
+ performDirectEdit();
+ }
+ }
+
+ /**
+ * @generated
+ */
+ protected void performDirectEditRequest(Request request) {
+ final Request theRequest = request;
+ try {
+ getEditingDomain().runExclusive(new Runnable() {
+
+ public void run() {
+ if (isActive() && isEditable()) {
+ if (theRequest
+ .getExtendedData()
+ .get(RequestConstants.REQ_DIRECTEDIT_EXTENDEDDATA_INITIAL_CHAR) instanceof Character) {
+ Character initialChar = (Character) theRequest
+ .getExtendedData()
+ .get(RequestConstants.REQ_DIRECTEDIT_EXTENDEDDATA_INITIAL_CHAR);
+ performDirectEdit(initialChar.charValue());
+ } else if ((theRequest instanceof DirectEditRequest)
+ && (getEditText().equals(getLabelText()))) {
+ DirectEditRequest editRequest = (DirectEditRequest) theRequest;
+ performDirectEdit(editRequest.getLocation());
+ } else {
+ performDirectEdit();
+ }
+ }
+ }
+ });
+ } catch (InterruptedException e) {
+ e.printStackTrace();
+ }
+ }
+
+ /**
+ * @generated
+ */
+ protected void refreshVisuals() {
+ super.refreshVisuals();
+ refreshLabel();
+ refreshFont();
+ refreshFontColor();
+ refreshUnderline();
+ refreshStrikeThrough();
+ }
+
+ /**
+ * @generated
+ */
+ protected void refreshLabel() {
+ setLabelTextHelper(getFigure(), getLabelText());
+ setLabelIconHelper(getFigure(), getLabelIcon());
+ Object pdEditPolicy = getEditPolicy(EditPolicy.PRIMARY_DRAG_ROLE);
+ if (pdEditPolicy instanceof ComrelTextSelectionEditPolicy) {
+ ((ComrelTextSelectionEditPolicy) pdEditPolicy).refreshFeedback();
+ }
+ Object sfEditPolicy = getEditPolicy(EditPolicy.SELECTION_FEEDBACK_ROLE);
+ if (sfEditPolicy instanceof ComrelTextSelectionEditPolicy) {
+ ((ComrelTextSelectionEditPolicy) sfEditPolicy).refreshFeedback();
+ }
+ }
+
+ /**
+ * @generated
+ */
+ protected void refreshUnderline() {
+ FontStyle style = (FontStyle) getFontStyleOwnerView().getStyle(
+ NotationPackage.eINSTANCE.getFontStyle());
+ if (style != null && getFigure() instanceof WrappingLabel) {
+ ((WrappingLabel) getFigure()).setTextUnderline(style.isUnderline());
+ }
+ }
+
+ /**
+ * @generated
+ */
+ protected void refreshStrikeThrough() {
+ FontStyle style = (FontStyle) getFontStyleOwnerView().getStyle(
+ NotationPackage.eINSTANCE.getFontStyle());
+ if (style != null && getFigure() instanceof WrappingLabel) {
+ ((WrappingLabel) getFigure()).setTextStrikeThrough(style
+ .isStrikeThrough());
+ }
+ }
+
+ /**
+ * @generated
+ */
+ protected void refreshFont() {
+ FontStyle style = (FontStyle) getFontStyleOwnerView().getStyle(
+ NotationPackage.eINSTANCE.getFontStyle());
+ if (style != null) {
+ FontData fontData = new FontData(style.getFontName(),
+ style.getFontHeight(), (style.isBold() ? SWT.BOLD
+ : SWT.NORMAL)
+ | (style.isItalic() ? SWT.ITALIC : SWT.NORMAL));
+ setFont(fontData);
+ }
+ }
+
+ /**
+ * @generated
+ */
+ protected void setFontColor(Color color) {
+ getFigure().setForegroundColor(color);
+ }
+
+ /**
+ * @generated
+ */
+ protected void addSemanticListeners() {
+ if (getParser() instanceof ISemanticParser) {
+ EObject element = resolveSemanticElement();
+ parserElements = ((ISemanticParser) getParser())
+ .getSemanticElementsBeingParsed(element);
+ for (int i = 0; i < parserElements.size(); i++) {
+ addListenerFilter(
+ "SemanticModel" + i, this, (EObject) parserElements.get(i)); //$NON-NLS-1$
+ }
+ } else {
+ super.addSemanticListeners();
+ }
+ }
+
+ /**
+ * @generated
+ */
+ protected void removeSemanticListeners() {
+ if (parserElements != null) {
+ for (int i = 0; i < parserElements.size(); i++) {
+ removeListenerFilter("SemanticModel" + i); //$NON-NLS-1$
+ }
+ } else {
+ super.removeSemanticListeners();
+ }
+ }
+
+ /**
+ * @generated
+ */
+ protected AccessibleEditPart getAccessibleEditPart() {
+ if (accessibleEP == null) {
+ accessibleEP = new AccessibleGraphicalEditPart() {
+
+ public void getName(AccessibleEvent e) {
+ e.result = getLabelTextHelper(getFigure());
+ }
+ };
+ }
+ return accessibleEP;
+ }
+
+ /**
+ * @generated
+ */
+ private View getFontStyleOwnerView() {
+ return getPrimaryView();
+ }
+
+ /**
+ * @generated
+ */
+ protected void addNotationalListeners() {
+ super.addNotationalListeners();
+ addListenerFilter("PrimaryView", this, getPrimaryView()); //$NON-NLS-1$
+ }
+
+ /**
+ * @generated
+ */
+ protected void removeNotationalListeners() {
+ super.removeNotationalListeners();
+ removeListenerFilter("PrimaryView"); //$NON-NLS-1$
+ }
+
+ /**
+ * @generated
+ */
+ protected void handleNotificationEvent(Notification event) {
+ Object feature = event.getFeature();
+ if (NotationPackage.eINSTANCE.getFontStyle_FontColor().equals(feature)) {
+ Integer c = (Integer) event.getNewValue();
+ setFontColor(DiagramColorRegistry.getInstance().getColor(c));
+ } else if (NotationPackage.eINSTANCE.getFontStyle_Underline().equals(
+ feature)) {
+ refreshUnderline();
+ } else if (NotationPackage.eINSTANCE.getFontStyle_StrikeThrough()
+ .equals(feature)) {
+ refreshStrikeThrough();
+ } else if (NotationPackage.eINSTANCE.getFontStyle_FontHeight().equals(
+ feature)
+ || NotationPackage.eINSTANCE.getFontStyle_FontName().equals(
+ feature)
+ || NotationPackage.eINSTANCE.getFontStyle_Bold()
+ .equals(feature)
+ || NotationPackage.eINSTANCE.getFontStyle_Italic().equals(
+ feature)) {
+ refreshFont();
+ } else {
+ if (getParser() != null
+ && getParser().isAffectingEvent(event,
+ getParserOptions().intValue())) {
+ refreshLabel();
+ }
+ if (getParser() instanceof ISemanticParser) {
+ ISemanticParser modelParser = (ISemanticParser) getParser();
+ if (modelParser.areSemanticElementsAffected(null, event)) {
+ removeSemanticListeners();
+ if (resolveSemanticElement() != null) {
+ addSemanticListeners();
+ }
+ refreshLabel();
+ }
+ }
+ }
+ super.handleNotificationEvent(event);
+ }
+
+ /**
+ * @generated
+ */
+ protected IFigure createFigure() {
+ // Parent should assign one using setLabel() method
+ return null;
+ }
+
+}
diff --git a/org.eclipse.emf.refactor.comrel.diagram/src/comrel/diagram/edit/parts/MultiFeatureUnitNameTypeEditPart.java b/org.eclipse.emf.refactor.comrel.diagram/src/comrel/diagram/edit/parts/MultiFeatureUnitNameTypeEditPart.java
new file mode 100644
index 0000000..291a2bd
--- /dev/null
+++ b/org.eclipse.emf.refactor.comrel.diagram/src/comrel/diagram/edit/parts/MultiFeatureUnitNameTypeEditPart.java
@@ -0,0 +1,576 @@
+/*
+ *
+ */
+package comrel.diagram.edit.parts;
+
+import java.util.Collections;
+import java.util.List;
+
+import org.eclipse.draw2d.IFigure;
+import org.eclipse.draw2d.Label;
+import org.eclipse.draw2d.geometry.Point;
+import org.eclipse.emf.common.notify.Notification;
+import org.eclipse.emf.ecore.EObject;
+import org.eclipse.emf.transaction.RunnableWithResult;
+import org.eclipse.gef.AccessibleEditPart;
+import org.eclipse.gef.EditPolicy;
+import org.eclipse.gef.Request;
+import org.eclipse.gef.requests.DirectEditRequest;
+import org.eclipse.gef.tools.DirectEditManager;
+import org.eclipse.gmf.runtime.common.ui.services.parser.IParser;
+import org.eclipse.gmf.runtime.common.ui.services.parser.IParserEditStatus;
+import org.eclipse.gmf.runtime.common.ui.services.parser.ParserEditStatus;
+import org.eclipse.gmf.runtime.common.ui.services.parser.ParserOptions;
+import org.eclipse.gmf.runtime.diagram.ui.editparts.CompartmentEditPart;
+import org.eclipse.gmf.runtime.diagram.ui.editparts.IGraphicalEditPart;
+import org.eclipse.gmf.runtime.diagram.ui.editparts.ITextAwareEditPart;
+import org.eclipse.gmf.runtime.diagram.ui.editpolicies.LabelDirectEditPolicy;
+import org.eclipse.gmf.runtime.diagram.ui.l10n.DiagramColorRegistry;
+import org.eclipse.gmf.runtime.diagram.ui.requests.RequestConstants;
+import org.eclipse.gmf.runtime.diagram.ui.tools.TextDirectEditManager;
+import org.eclipse.gmf.runtime.draw2d.ui.figures.WrappingLabel;
+import org.eclipse.gmf.runtime.emf.core.util.EObjectAdapter;
+import org.eclipse.gmf.runtime.emf.ui.services.parser.ISemanticParser;
+import org.eclipse.gmf.runtime.notation.FontStyle;
+import org.eclipse.gmf.runtime.notation.NotationPackage;
+import org.eclipse.gmf.runtime.notation.View;
+import org.eclipse.jface.text.contentassist.IContentAssistProcessor;
+import org.eclipse.jface.viewers.ICellEditorValidator;
+import org.eclipse.swt.SWT;
+import org.eclipse.swt.accessibility.AccessibleEvent;
+import org.eclipse.swt.graphics.Color;
+import org.eclipse.swt.graphics.FontData;
+import org.eclipse.swt.graphics.Image;
+
+import comrel.diagram.edit.policies.ComrelTextSelectionEditPolicy;
+import comrel.diagram.part.ComrelVisualIDRegistry;
+import comrel.diagram.providers.ComrelElementTypes;
+import comrel.diagram.providers.ComrelParserProvider;
+
+/**
+ * @generated
+ */
+public class MultiFeatureUnitNameTypeEditPart extends CompartmentEditPart
+ implements ITextAwareEditPart {
+
+ /**
+ * @generated
+ */
+ public static final int VISUAL_ID = 5013;
+
+ /**
+ * @generated
+ */
+ private DirectEditManager manager;
+
+ /**
+ * @generated
+ */
+ private IParser parser;
+
+ /**
+ * @generated
+ */
+ private List<?> parserElements;
+
+ /**
+ * @generated
+ */
+ private String defaultText;
+
+ /**
+ * @generated
+ */
+ public MultiFeatureUnitNameTypeEditPart(View view) {
+ super(view);
+ }
+
+ /**
+ * @generated
+ */
+ protected void createDefaultEditPolicies() {
+ super.createDefaultEditPolicies();
+ installEditPolicy(EditPolicy.SELECTION_FEEDBACK_ROLE,
+ new ComrelTextSelectionEditPolicy());
+ installEditPolicy(EditPolicy.DIRECT_EDIT_ROLE,
+ new LabelDirectEditPolicy());
+ installEditPolicy(EditPolicy.PRIMARY_DRAG_ROLE,
+ new CompositeRefactoringEditPart.NodeLabelDragPolicy());
+ }
+
+ /**
+ * @generated
+ */
+ protected String getLabelTextHelper(IFigure figure) {
+ if (figure instanceof WrappingLabel) {
+ return ((WrappingLabel) figure).getText();
+ } else {
+ return ((Label) figure).getText();
+ }
+ }
+
+ /**
+ * @generated
+ */
+ protected void setLabelTextHelper(IFigure figure, String text) {
+ if (figure instanceof WrappingLabel) {
+ ((WrappingLabel) figure).setText(text);
+ } else {
+ ((Label) figure).setText(text);
+ }
+ }
+
+ /**
+ * @generated
+ */
+ protected Image getLabelIconHelper(IFigure figure) {
+ if (figure instanceof WrappingLabel) {
+ return ((WrappingLabel) figure).getIcon();
+ } else {
+ return ((Label) figure).getIcon();
+ }
+ }
+
+ /**
+ * @generated
+ */
+ protected void setLabelIconHelper(IFigure figure, Image icon) {
+ if (figure instanceof WrappingLabel) {
+ ((WrappingLabel) figure).setIcon(icon);
+ } else {
+ ((Label) figure).setIcon(icon);
+ }
+ }
+
+ /**
+ * @generated
+ */
+ public void setLabel(WrappingLabel figure) {
+ unregisterVisuals();
+ setFigure(figure);
+ defaultText = getLabelTextHelper(figure);
+ registerVisuals();
+ refreshVisuals();
+ }
+
+ /**
+ * @generated
+ */
+ @SuppressWarnings("rawtypes")
+ protected List getModelChildren() {
+ return Collections.EMPTY_LIST;
+ }
+
+ /**
+ * @generated
+ */
+ public IGraphicalEditPart getChildBySemanticHint(String semanticHint) {
+ return null;
+ }
+
+ /**
+ * @generated
+ */
+ protected EObject getParserElement() {
+ return resolveSemanticElement();
+ }
+
+ /**
+ * @generated
+ */
+ protected Image getLabelIcon() {
+ return null;
+ }
+
+ /**
+ * @generated
+ */
+ protected String getLabelText() {
+ String text = null;
+ EObject parserElement = getParserElement();
+ if (parserElement != null && getParser() != null) {
+ text = getParser().getPrintString(
+ new EObjectAdapter(parserElement),
+ getParserOptions().intValue());
+ }
+ if (text == null || text.length() == 0) {
+ text = defaultText;
+ }
+ return text;
+ }
+
+ /**
+ * @generated
+ */
+ public void setLabelText(String text) {
+ setLabelTextHelper(getFigure(), text);
+ Object pdEditPolicy = getEditPolicy(EditPolicy.PRIMARY_DRAG_ROLE);
+ if (pdEditPolicy instanceof ComrelTextSelectionEditPolicy) {
+ ((ComrelTextSelectionEditPolicy) pdEditPolicy).refreshFeedback();
+ }
+ Object sfEditPolicy = getEditPolicy(EditPolicy.SELECTION_FEEDBACK_ROLE);
+ if (sfEditPolicy instanceof ComrelTextSelectionEditPolicy) {
+ ((ComrelTextSelectionEditPolicy) sfEditPolicy).refreshFeedback();
+ }
+ }
+
+ /**
+ * @generated
+ */
+ public String getEditText() {
+ if (getParserElement() == null || getParser() == null) {
+ return ""; //$NON-NLS-1$
+ }
+ return getParser().getEditString(
+ new EObjectAdapter(getParserElement()),
+ getParserOptions().intValue());
+ }
+
+ /**
+ * @generated
+ */
+ protected boolean isEditable() {
+ return getParser() != null;
+ }
+
+ /**
+ * @generated
+ */
+ public ICellEditorValidator getEditTextValidator() {
+ return new ICellEditorValidator() {
+
+ public String isValid(final Object value) {
+ if (value instanceof String) {
+ final EObject element = getParserElement();
+ final IParser parser = getParser();
+ try {
+ IParserEditStatus valid = (IParserEditStatus) getEditingDomain()
+ .runExclusive(
+ new RunnableWithResult.Impl<IParserEditStatus>() {
+
+ public void run() {
+ setResult(parser
+ .isValidEditString(
+ new EObjectAdapter(
+ element),
+ (String) value));
+ }
+ });
+ return valid.getCode() == ParserEditStatus.EDITABLE ? null
+ : valid.getMessage();
+ } catch (InterruptedException ie) {
+ ie.printStackTrace();
+ }
+ }
+
+ // shouldn't get here
+ return null;
+ }
+ };
+ }
+
+ /**
+ * @generated
+ */
+ public IContentAssistProcessor getCompletionProcessor() {
+ if (getParserElement() == null || getParser() == null) {
+ return null;
+ }
+ return getParser().getCompletionProcessor(
+ new EObjectAdapter(getParserElement()));
+ }
+
+ /**
+ * @generated
+ */
+ public ParserOptions getParserOptions() {
+ return ParserOptions.NONE;
+ }
+
+ /**
+ * @generated
+ */
+ public IParser getParser() {
+ if (parser == null) {
+ parser = ComrelParserProvider
+ .getParser(
+ ComrelElementTypes.MultiFeatureUnit_3012,
+ getParserElement(),
+ ComrelVisualIDRegistry
+ .getType(comrel.diagram.edit.parts.MultiFeatureUnitNameTypeEditPart.VISUAL_ID));
+ }
+ return parser;
+ }
+
+ /**
+ * @generated
+ */
+ protected DirectEditManager getManager() {
+ if (manager == null) {
+ setManager(new TextDirectEditManager(this,
+ TextDirectEditManager.getTextCellEditorClass(this),
+ ComrelEditPartFactory.getTextCellEditorLocator(this)));
+ }
+ return manager;
+ }
+
+ /**
+ * @generated
+ */
+ protected void setManager(DirectEditManager manager) {
+ this.manager = manager;
+ }
+
+ /**
+ * @generated
+ */
+ protected void performDirectEdit() {
+ getManager().show();
+ }
+
+ /**
+ * @generated
+ */
+ protected void performDirectEdit(Point eventLocation) {
+ if (getManager().getClass() == TextDirectEditManager.class) {
+ ((TextDirectEditManager) getManager()).show(eventLocation
+ .getSWTPoint());
+ }
+ }
+
+ /**
+ * @generated
+ */
+ private void performDirectEdit(char initialCharacter) {
+ if (getManager() instanceof TextDirectEditManager) {
+ ((TextDirectEditManager) getManager()).show(initialCharacter);
+ } else {
+ performDirectEdit();
+ }
+ }
+
+ /**
+ * @generated
+ */
+ protected void performDirectEditRequest(Request request) {
+ final Request theRequest = request;
+ try {
+ getEditingDomain().runExclusive(new Runnable() {
+
+ public void run() {
+ if (isActive() && isEditable()) {
+ if (theRequest
+ .getExtendedData()
+ .get(RequestConstants.REQ_DIRECTEDIT_EXTENDEDDATA_INITIAL_CHAR) instanceof Character) {
+ Character initialChar = (Character) theRequest
+ .getExtendedData()
+ .get(RequestConstants.REQ_DIRECTEDIT_EXTENDEDDATA_INITIAL_CHAR);
+ performDirectEdit(initialChar.charValue());
+ } else if ((theRequest instanceof DirectEditRequest)
+ && (getEditText().equals(getLabelText()))) {
+ DirectEditRequest editRequest = (DirectEditRequest) theRequest;
+ performDirectEdit(editRequest.getLocation());
+ } else {
+ performDirectEdit();
+ }
+ }
+ }
+ });
+ } catch (InterruptedException e) {
+ e.printStackTrace();
+ }
+ }
+
+ /**
+ * @generated
+ */
+ protected void refreshVisuals() {
+ super.refreshVisuals();
+ refreshLabel();
+ refreshFont();
+ refreshFontColor();
+ refreshUnderline();
+ refreshStrikeThrough();
+ }
+
+ /**
+ * @generated
+ */
+ protected void refreshLabel() {
+ setLabelTextHelper(getFigure(), getLabelText());
+ setLabelIconHelper(getFigure(), getLabelIcon());
+ Object pdEditPolicy = getEditPolicy(EditPolicy.PRIMARY_DRAG_ROLE);
+ if (pdEditPolicy instanceof ComrelTextSelectionEditPolicy) {
+ ((ComrelTextSelectionEditPolicy) pdEditPolicy).refreshFeedback();
+ }
+ Object sfEditPolicy = getEditPolicy(EditPolicy.SELECTION_FEEDBACK_ROLE);
+ if (sfEditPolicy instanceof ComrelTextSelectionEditPolicy) {
+ ((ComrelTextSelectionEditPolicy) sfEditPolicy).refreshFeedback();
+ }
+ }
+
+ /**
+ * @generated
+ */
+ protected void refreshUnderline() {
+ FontStyle style = (FontStyle) getFontStyleOwnerView().getStyle(
+ NotationPackage.eINSTANCE.getFontStyle());
+ if (style != null && getFigure() instanceof WrappingLabel) {
+ ((WrappingLabel) getFigure()).setTextUnderline(style.isUnderline());
+ }
+ }
+
+ /**
+ * @generated
+ */
+ protected void refreshStrikeThrough() {
+ FontStyle style = (FontStyle) getFontStyleOwnerView().getStyle(
+ NotationPackage.eINSTANCE.getFontStyle());
+ if (style != null && getFigure() instanceof WrappingLabel) {
+ ((WrappingLabel) getFigure()).setTextStrikeThrough(style
+ .isStrikeThrough());
+ }
+ }
+
+ /**
+ * @generated
+ */
+ protected void refreshFont() {
+ FontStyle style = (FontStyle) getFontStyleOwnerView().getStyle(
+ NotationPackage.eINSTANCE.getFontStyle());
+ if (style != null) {
+ FontData fontData = new FontData(style.getFontName(),
+ style.getFontHeight(), (style.isBold() ? SWT.BOLD
+ : SWT.NORMAL)
+ | (style.isItalic() ? SWT.ITALIC : SWT.NORMAL));
+ setFont(fontData);
+ }
+ }
+
+ /**
+ * @generated
+ */
+ protected void setFontColor(Color color) {
+ getFigure().setForegroundColor(color);
+ }
+
+ /**
+ * @generated
+ */
+ protected void addSemanticListeners() {
+ if (getParser() instanceof ISemanticParser) {
+ EObject element = resolveSemanticElement();
+ parserElements = ((ISemanticParser) getParser())
+ .getSemanticElementsBeingParsed(element);
+ for (int i = 0; i < parserElements.size(); i++) {
+ addListenerFilter(
+ "SemanticModel" + i, this, (EObject) parserElements.get(i)); //$NON-NLS-1$
+ }
+ } else {
+ super.addSemanticListeners();
+ }
+ }
+
+ /**
+ * @generated
+ */
+ protected void removeSemanticListeners() {
+ if (parserElements != null) {
+ for (int i = 0; i < parserElements.size(); i++) {
+ removeListenerFilter("SemanticModel" + i); //$NON-NLS-1$
+ }
+ } else {
+ super.removeSemanticListeners();
+ }
+ }
+
+ /**
+ * @generated
+ */
+ protected AccessibleEditPart getAccessibleEditPart() {
+ if (accessibleEP == null) {
+ accessibleEP = new AccessibleGraphicalEditPart() {
+
+ public void getName(AccessibleEvent e) {
+ e.result = getLabelTextHelper(getFigure());
+ }
+ };
+ }
+ return accessibleEP;
+ }
+
+ /**
+ * @generated
+ */
+ private View getFontStyleOwnerView() {
+ return getPrimaryView();
+ }
+
+ /**
+ * @generated
+ */
+ protected void addNotationalListeners() {
+ super.addNotationalListeners();
+ addListenerFilter("PrimaryView", this, getPrimaryView()); //$NON-NLS-1$
+ }
+
+ /**
+ * @generated
+ */
+ protected void removeNotationalListeners() {
+ super.removeNotationalListeners();
+ removeListenerFilter("PrimaryView"); //$NON-NLS-1$
+ }
+
+ /**
+ * @generated
+ */
+ protected void handleNotificationEvent(Notification event) {
+ Object feature = event.getFeature();
+ if (NotationPackage.eINSTANCE.getFontStyle_FontColor().equals(feature)) {
+ Integer c = (Integer) event.getNewValue();
+ setFontColor(DiagramColorRegistry.getInstance().getColor(c));
+ } else if (NotationPackage.eINSTANCE.getFontStyle_Underline().equals(
+ feature)) {
+ refreshUnderline();
+ } else if (NotationPackage.eINSTANCE.getFontStyle_StrikeThrough()
+ .equals(feature)) {
+ refreshStrikeThrough();
+ } else if (NotationPackage.eINSTANCE.getFontStyle_FontHeight().equals(
+ feature)
+ || NotationPackage.eINSTANCE.getFontStyle_FontName().equals(
+ feature)
+ || NotationPackage.eINSTANCE.getFontStyle_Bold()
+ .equals(feature)
+ || NotationPackage.eINSTANCE.getFontStyle_Italic().equals(
+ feature)) {
+ refreshFont();
+ } else {
+ if (getParser() != null
+ && getParser().isAffectingEvent(event,
+ getParserOptions().intValue())) {
+ refreshLabel();
+ }
+ if (getParser() instanceof ISemanticParser) {
+ ISemanticParser modelParser = (ISemanticParser) getParser();
+ if (modelParser.areSemanticElementsAffected(null, event)) {
+ removeSemanticListeners();
+ if (resolveSemanticElement() != null) {
+ addSemanticListeners();
+ }
+ refreshLabel();
+ }
+ }
+ }
+ super.handleNotificationEvent(event);
+ }
+
+ /**
+ * @generated
+ */
+ protected IFigure createFigure() {
+ // Parent should assign one using setLabel() method
+ return null;
+ }
+
+}
diff --git a/org.eclipse.emf.refactor.comrel.diagram/src/comrel/diagram/edit/parts/MultiFilterUnit2EditPart.java b/org.eclipse.emf.refactor.comrel.diagram/src/comrel/diagram/edit/parts/MultiFilterUnit2EditPart.java
new file mode 100644
index 0000000..f9153eb
--- /dev/null
+++ b/org.eclipse.emf.refactor.comrel.diagram/src/comrel/diagram/edit/parts/MultiFilterUnit2EditPart.java
@@ -0,0 +1,350 @@
+/*
+ *
+ */
+package comrel.diagram.edit.parts;
+
+import org.eclipse.draw2d.IFigure;
+import org.eclipse.draw2d.MarginBorder;
+import org.eclipse.draw2d.PositionConstants;
+import org.eclipse.draw2d.RoundedRectangle;
+import org.eclipse.draw2d.Shape;
+import org.eclipse.draw2d.StackLayout;
+import org.eclipse.draw2d.geometry.Dimension;
+import org.eclipse.gef.EditPart;
+import org.eclipse.gef.EditPolicy;
+import org.eclipse.gef.Request;
+import org.eclipse.gef.commands.Command;
+import org.eclipse.gef.editpolicies.LayoutEditPolicy;
+import org.eclipse.gef.editpolicies.NonResizableEditPolicy;
+import org.eclipse.gef.requests.CreateRequest;
+import org.eclipse.gmf.runtime.diagram.ui.editparts.AbstractBorderedShapeEditPart;
+import org.eclipse.gmf.runtime.diagram.ui.editparts.IBorderItemEditPart;
+import org.eclipse.gmf.runtime.diagram.ui.editparts.IGraphicalEditPart;
+import org.eclipse.gmf.runtime.diagram.ui.editpolicies.BorderItemSelectionEditPolicy;
+import org.eclipse.gmf.runtime.diagram.ui.editpolicies.CreationEditPolicy;
+import org.eclipse.gmf.runtime.diagram.ui.editpolicies.DragDropEditPolicy;
+import org.eclipse.gmf.runtime.diagram.ui.editpolicies.EditPolicyRoles;
+import org.eclipse.gmf.runtime.diagram.ui.figures.BorderItemLocator;
+import org.eclipse.gmf.runtime.draw2d.ui.figures.ConstrainedToolbarLayout;
+import org.eclipse.gmf.runtime.draw2d.ui.figures.WrappingLabel;
+import org.eclipse.gmf.runtime.gef.ui.figures.DefaultSizeNodeFigure;
+import org.eclipse.gmf.runtime.gef.ui.figures.NodeFigure;
+import org.eclipse.gmf.runtime.notation.View;
+import org.eclipse.swt.graphics.Color;
+
+import comrel.diagram.edit.policies.MultiFilterUnit2CanonicalEditPolicy;
+import comrel.diagram.edit.policies.MultiFilterUnit2ItemSemanticEditPolicy;
+import comrel.diagram.part.ComrelVisualIDRegistry;
+
+/**
+ * @generated
+ */
+public class MultiFilterUnit2EditPart extends AbstractBorderedShapeEditPart {
+
+ /**
+ * @generated
+ */
+ public static final int VISUAL_ID = 3041;
+
+ /**
+ * @generated
+ */
+ protected IFigure contentPane;
+
+ /**
+ * @generated
+ */
+ protected IFigure primaryShape;
+
+ /**
+ * @generated
+ */
+ public MultiFilterUnit2EditPart(View view) {
+ super(view);
+ }
+
+ /**
+ * @generated
+ */
+ protected void createDefaultEditPolicies() {
+ installEditPolicy(EditPolicyRoles.CREATION_ROLE,
+ new CreationEditPolicy());
+ super.createDefaultEditPolicies();
+ installEditPolicy(EditPolicyRoles.SEMANTIC_ROLE,
+ new MultiFilterUnit2ItemSemanticEditPolicy());
+ installEditPolicy(EditPolicyRoles.DRAG_DROP_ROLE,
+ new DragDropEditPolicy());
+ installEditPolicy(EditPolicyRoles.CANONICAL_ROLE,
+ new MultiFilterUnit2CanonicalEditPolicy());
+ installEditPolicy(EditPolicy.LAYOUT_ROLE, createLayoutEditPolicy());
+ // XXX need an SCR to runtime to have another abstract superclass that would let children add reasonable editpolicies
+ // removeEditPolicy(org.eclipse.gmf.runtime.diagram.ui.editpolicies.EditPolicyRoles.CONNECTION_HANDLES_ROLE);
+ }
+
+ /**
+ * @generated
+ */
+ protected LayoutEditPolicy createLayoutEditPolicy() {
+ org.eclipse.gmf.runtime.diagram.ui.editpolicies.LayoutEditPolicy lep = new org.eclipse.gmf.runtime.diagram.ui.editpolicies.LayoutEditPolicy() {
+
+ protected EditPolicy createChildEditPolicy(EditPart child) {
+ View childView = (View) child.getModel();
+ switch (ComrelVisualIDRegistry.getVisualID(childView)) {
+ case MultiInputPort6EditPart.VISUAL_ID:
+ case MultiOutputPort2EditPart.VISUAL_ID:
+ return new BorderItemSelectionEditPolicy();
+ }
+ EditPolicy result = child
+ .getEditPolicy(EditPolicy.PRIMARY_DRAG_ROLE);
+ if (result == null) {
+ result = new NonResizableEditPolicy();
+ }
+ return result;
+ }
+
+ protected Command getMoveChildrenCommand(Request request) {
+ return null;
+ }
+
+ protected Command getCreateCommand(CreateRequest request) {
+ return null;
+ }
+ };
+ return lep;
+ }
+
+ /**
+ * @generated
+ */
+ protected IFigure createNodeShape() {
+ return primaryShape = new MultiFilterUnitFigure();
+ }
+
+ /**
+ * @generated
+ */
+ public MultiFilterUnitFigure getPrimaryShape() {
+ return (MultiFilterUnitFigure) primaryShape;
+ }
+
+ /**
+ * @generated NOT
+ */
+ protected boolean addFixedChild(EditPart childEditPart) {
+ if (childEditPart instanceof MultiFilterUnitNameType2EditPart) {
+ ((MultiFilterUnitNameType2EditPart) childEditPart)
+ .setLabel(getPrimaryShape()
+ .getFigureMultiFilterUnitLabelFigure());
+ return true;
+ }
+ if (childEditPart instanceof MultiInputPort6EditPart) {
+ BorderItemLocator locator = new BorderItemLocator(getMainFigure(),
+ PositionConstants.NORTH);
+ locator.setCurrentSideOfParent(PositionConstants.NORTH); // Position des Ports
+ locator.setPreferredSideOfParent(PositionConstants.NORTH); // Position des Ports
+ getBorderedFigure().getBorderItemContainer().add(
+ ((MultiInputPort6EditPart) childEditPart).getFigure(),
+ locator);
+ return true;
+ }
+ if (childEditPart instanceof MultiOutputPort2EditPart) {
+ BorderItemLocator locator = new BorderItemLocator(getMainFigure(),
+ PositionConstants.SOUTH);
+ locator.setCurrentSideOfParent(PositionConstants.SOUTH); // Position des Ports
+ locator.setPreferredSideOfParent(PositionConstants.SOUTH); // Position des Ports
+ getBorderedFigure().getBorderItemContainer().add(
+ ((MultiOutputPort2EditPart) childEditPart).getFigure(),
+ locator);
+ return true;
+ }
+ return false;
+ }
+
+ /**
+ * @generated NOT
+ */
+ protected boolean removeFixedChild(EditPart childEditPart) {
+ if (childEditPart instanceof MultiFilterUnitNameType2EditPart) {
+ return true;
+ }
+ if (childEditPart instanceof MultiInputPort6EditPart) {
+ // getBorderedFigure().getBorderItemContainer().remove(
+ // ((MultiInputPort6EditPart) childEditPart).getFigure());
+ return true;
+ }
+ if (childEditPart instanceof MultiOutputPort2EditPart) {
+ // getBorderedFigure().getBorderItemContainer().remove(
+ // ((MultiOutputPort2EditPart) childEditPart).getFigure());
+ return true;
+ }
+ return false;
+ }
+
+ /**
+ * @generated
+ */
+ protected void addChildVisual(EditPart childEditPart, int index) {
+ if (addFixedChild(childEditPart)) {
+ return;
+ }
+ super.addChildVisual(childEditPart, -1);
+ }
+
+ /**
+ * @generated
+ */
+ protected void removeChildVisual(EditPart childEditPart) {
+ if (removeFixedChild(childEditPart)) {
+ return;
+ }
+ super.removeChildVisual(childEditPart);
+ }
+
+ /**
+ * @generated
+ */
+ protected IFigure getContentPaneFor(IGraphicalEditPart editPart) {
+ if (editPart instanceof IBorderItemEditPart) {
+ return getBorderedFigure().getBorderItemContainer();
+ }
+ return getContentPane();
+ }
+
+ /**
+ * @generated
+ */
+ protected NodeFigure createNodePlate() {
+ DefaultSizeNodeFigure result = new DefaultSizeNodeFigure(40, 40);
+ return result;
+ }
+
+ /**
+ * Creates figure for this edit part.
+ *
+ * Body of this method does not depend on settings in generation model
+ * so you may safely remove <i>generated</i> tag and modify it.
+ *
+ * @generated
+ */
+ protected NodeFigure createMainFigure() {
+ NodeFigure figure = createNodePlate();
+ figure.setLayoutManager(new StackLayout());
+ IFigure shape = createNodeShape();
+ figure.add(shape);
+ contentPane = setupContentPane(shape);
+ return figure;
+ }
+
+ /**
+ * Default implementation treats passed figure as content pane.
+ * Respects layout one may have set for generated figure.
+ * @param nodeShape instance of generated figure class
+ * @generated
+ */
+ protected IFigure setupContentPane(IFigure nodeShape) {
+ if (nodeShape.getLayoutManager() == null) {
+ ConstrainedToolbarLayout layout = new ConstrainedToolbarLayout();
+ layout.setSpacing(5);
+ nodeShape.setLayoutManager(layout);
+ }
+ return nodeShape; // use nodeShape itself as contentPane
+ }
+
+ /**
+ * @generated
+ */
+ public IFigure getContentPane() {
+ if (contentPane != null) {
+ return contentPane;
+ }
+ return super.getContentPane();
+ }
+
+ /**
+ * @generated
+ */
+ protected void setForegroundColor(Color color) {
+ if (primaryShape != null) {
+ primaryShape.setForegroundColor(color);
+ }
+ }
+
+ /**
+ * @generated
+ */
+ protected void setBackgroundColor(Color color) {
+ if (primaryShape != null) {
+ primaryShape.setBackgroundColor(color);
+ }
+ }
+
+ /**
+ * @generated
+ */
+ protected void setLineWidth(int width) {
+ if (primaryShape instanceof Shape) {
+ ((Shape) primaryShape).setLineWidth(width);
+ }
+ }
+
+ /**
+ * @generated
+ */
+ protected void setLineType(int style) {
+ if (primaryShape instanceof Shape) {
+ ((Shape) primaryShape).setLineStyle(style);
+ }
+ }
+
+ /**
+ * @generated
+ */
+ public EditPart getPrimaryChildEditPart() {
+ return getChildBySemanticHint(ComrelVisualIDRegistry
+ .getType(MultiFilterUnitNameType2EditPart.VISUAL_ID));
+ }
+
+ /**
+ * @generated
+ */
+ public class MultiFilterUnitFigure extends RoundedRectangle {
+
+ /**
+ * @generated
+ */
+ private WrappingLabel fFigureMultiFilterUnitLabelFigure;
+
+ /**
+ * @generated
+ */
+ public MultiFilterUnitFigure() {
+ this.setCornerDimensions(new Dimension(getMapMode().DPtoLP(8),
+ getMapMode().DPtoLP(8)));
+ this.setBorder(new MarginBorder(getMapMode().DPtoLP(5),
+ getMapMode().DPtoLP(5), getMapMode().DPtoLP(5),
+ getMapMode().DPtoLP(5)));
+ createContents();
+ }
+
+ /**
+ * @generated
+ */
+ private void createContents() {
+
+ fFigureMultiFilterUnitLabelFigure = new WrappingLabel();
+ fFigureMultiFilterUnitLabelFigure.setText("MultiFilterUnit");
+
+ this.add(fFigureMultiFilterUnitLabelFigure);
+
+ }
+
+ /**
+ * @generated
+ */
+ public WrappingLabel getFigureMultiFilterUnitLabelFigure() {
+ return fFigureMultiFilterUnitLabelFigure;
+ }
+
+ }
+
+}
diff --git a/org.eclipse.emf.refactor.comrel.diagram/src/comrel/diagram/edit/parts/MultiFilterUnit3EditPart.java b/org.eclipse.emf.refactor.comrel.diagram/src/comrel/diagram/edit/parts/MultiFilterUnit3EditPart.java
new file mode 100644
index 0000000..01d2439
--- /dev/null
+++ b/org.eclipse.emf.refactor.comrel.diagram/src/comrel/diagram/edit/parts/MultiFilterUnit3EditPart.java
@@ -0,0 +1,350 @@
+/*
+ *
+ */
+package comrel.diagram.edit.parts;
+
+import org.eclipse.draw2d.IFigure;
+import org.eclipse.draw2d.MarginBorder;
+import org.eclipse.draw2d.PositionConstants;
+import org.eclipse.draw2d.RoundedRectangle;
+import org.eclipse.draw2d.Shape;
+import org.eclipse.draw2d.StackLayout;
+import org.eclipse.draw2d.geometry.Dimension;
+import org.eclipse.gef.EditPart;
+import org.eclipse.gef.EditPolicy;
+import org.eclipse.gef.Request;
+import org.eclipse.gef.commands.Command;
+import org.eclipse.gef.editpolicies.LayoutEditPolicy;
+import org.eclipse.gef.editpolicies.NonResizableEditPolicy;
+import org.eclipse.gef.requests.CreateRequest;
+import org.eclipse.gmf.runtime.diagram.ui.editparts.AbstractBorderedShapeEditPart;
+import org.eclipse.gmf.runtime.diagram.ui.editparts.IBorderItemEditPart;
+import org.eclipse.gmf.runtime.diagram.ui.editparts.IGraphicalEditPart;
+import org.eclipse.gmf.runtime.diagram.ui.editpolicies.BorderItemSelectionEditPolicy;
+import org.eclipse.gmf.runtime.diagram.ui.editpolicies.CreationEditPolicy;
+import org.eclipse.gmf.runtime.diagram.ui.editpolicies.DragDropEditPolicy;
+import org.eclipse.gmf.runtime.diagram.ui.editpolicies.EditPolicyRoles;
+import org.eclipse.gmf.runtime.diagram.ui.figures.BorderItemLocator;
+import org.eclipse.gmf.runtime.draw2d.ui.figures.ConstrainedToolbarLayout;
+import org.eclipse.gmf.runtime.draw2d.ui.figures.WrappingLabel;
+import org.eclipse.gmf.runtime.gef.ui.figures.DefaultSizeNodeFigure;
+import org.eclipse.gmf.runtime.gef.ui.figures.NodeFigure;
+import org.eclipse.gmf.runtime.notation.View;
+import org.eclipse.swt.graphics.Color;
+
+import comrel.diagram.edit.policies.MultiFilterUnit3CanonicalEditPolicy;
+import comrel.diagram.edit.policies.MultiFilterUnit3ItemSemanticEditPolicy;
+import comrel.diagram.part.ComrelVisualIDRegistry;
+
+/**
+ * @generated
+ */
+public class MultiFilterUnit3EditPart extends AbstractBorderedShapeEditPart {
+
+ /**
+ * @generated
+ */
+ public static final int VISUAL_ID = 3053;
+
+ /**
+ * @generated
+ */
+ protected IFigure contentPane;
+
+ /**
+ * @generated
+ */
+ protected IFigure primaryShape;
+
+ /**
+ * @generated
+ */
+ public MultiFilterUnit3EditPart(View view) {
+ super(view);
+ }
+
+ /**
+ * @generated
+ */
+ protected void createDefaultEditPolicies() {
+ installEditPolicy(EditPolicyRoles.CREATION_ROLE,
+ new CreationEditPolicy());
+ super.createDefaultEditPolicies();
+ installEditPolicy(EditPolicyRoles.SEMANTIC_ROLE,
+ new MultiFilterUnit3ItemSemanticEditPolicy());
+ installEditPolicy(EditPolicyRoles.DRAG_DROP_ROLE,
+ new DragDropEditPolicy());
+ installEditPolicy(EditPolicyRoles.CANONICAL_ROLE,
+ new MultiFilterUnit3CanonicalEditPolicy());
+ installEditPolicy(EditPolicy.LAYOUT_ROLE, createLayoutEditPolicy());
+ // XXX need an SCR to runtime to have another abstract superclass that would let children add reasonable editpolicies
+ // removeEditPolicy(org.eclipse.gmf.runtime.diagram.ui.editpolicies.EditPolicyRoles.CONNECTION_HANDLES_ROLE);
+ }
+
+ /**
+ * @generated
+ */
+ protected LayoutEditPolicy createLayoutEditPolicy() {
+ org.eclipse.gmf.runtime.diagram.ui.editpolicies.LayoutEditPolicy lep = new org.eclipse.gmf.runtime.diagram.ui.editpolicies.LayoutEditPolicy() {
+
+ protected EditPolicy createChildEditPolicy(EditPart child) {
+ View childView = (View) child.getModel();
+ switch (ComrelVisualIDRegistry.getVisualID(childView)) {
+ case MultiInputPort6EditPart.VISUAL_ID:
+ case MultiOutputPort2EditPart.VISUAL_ID:
+ return new BorderItemSelectionEditPolicy();
+ }
+ EditPolicy result = child
+ .getEditPolicy(EditPolicy.PRIMARY_DRAG_ROLE);
+ if (result == null) {
+ result = new NonResizableEditPolicy();
+ }
+ return result;
+ }
+
+ protected Command getMoveChildrenCommand(Request request) {
+ return null;
+ }
+
+ protected Command getCreateCommand(CreateRequest request) {
+ return null;
+ }
+ };
+ return lep;
+ }
+
+ /**
+ * @generated
+ */
+ protected IFigure createNodeShape() {
+ return primaryShape = new MultiFilterUnitFigure();
+ }
+
+ /**
+ * @generated
+ */
+ public MultiFilterUnitFigure getPrimaryShape() {
+ return (MultiFilterUnitFigure) primaryShape;
+ }
+
+ /**
+ * @generated NOT
+ */
+ protected boolean addFixedChild(EditPart childEditPart) {
+ if (childEditPart instanceof MultiFilterUnitNameType3EditPart) {
+ ((MultiFilterUnitNameType3EditPart) childEditPart)
+ .setLabel(getPrimaryShape()
+ .getFigureMultiFilterUnitLabelFigure());
+ return true;
+ }
+ if (childEditPart instanceof MultiInputPort6EditPart) {
+ BorderItemLocator locator = new BorderItemLocator(getMainFigure(),
+ PositionConstants.NORTH);
+ locator.setCurrentSideOfParent(PositionConstants.NORTH); // Position des Ports
+ locator.setPreferredSideOfParent(PositionConstants.NORTH); // Position des Ports
+ getBorderedFigure().getBorderItemContainer().add(
+ ((MultiInputPort6EditPart) childEditPart).getFigure(),
+ locator);
+ return true;
+ }
+ if (childEditPart instanceof MultiOutputPort2EditPart) {
+ BorderItemLocator locator = new BorderItemLocator(getMainFigure(),
+ PositionConstants.SOUTH);
+ locator.setCurrentSideOfParent(PositionConstants.SOUTH); // Position des Ports
+ locator.setPreferredSideOfParent(PositionConstants.SOUTH); // Position des Ports
+ getBorderedFigure().getBorderItemContainer().add(
+ ((MultiOutputPort2EditPart) childEditPart).getFigure(),
+ locator);
+ return true;
+ }
+ return false;
+ }
+
+ /**
+ * @generated NOT
+ */
+ protected boolean removeFixedChild(EditPart childEditPart) {
+ if (childEditPart instanceof MultiFilterUnitNameType3EditPart) {
+ return true;
+ }
+ if (childEditPart instanceof MultiInputPort6EditPart) {
+ // getBorderedFigure().getBorderItemContainer().remove(
+ // ((MultiInputPort6EditPart) childEditPart).getFigure());
+ return true;
+ }
+ if (childEditPart instanceof MultiOutputPort2EditPart) {
+ // getBorderedFigure().getBorderItemContainer().remove(
+ // ((MultiOutputPort2EditPart) childEditPart).getFigure());
+ return true;
+ }
+ return false;
+ }
+
+ /**
+ * @generated
+ */
+ protected void addChildVisual(EditPart childEditPart, int index) {
+ if (addFixedChild(childEditPart)) {
+ return;
+ }
+ super.addChildVisual(childEditPart, -1);
+ }
+
+ /**
+ * @generated
+ */
+ protected void removeChildVisual(EditPart childEditPart) {
+ if (removeFixedChild(childEditPart)) {
+ return;
+ }
+ super.removeChildVisual(childEditPart);
+ }
+
+ /**
+ * @generated
+ */
+ protected IFigure getContentPaneFor(IGraphicalEditPart editPart) {
+ if (editPart instanceof IBorderItemEditPart) {
+ return getBorderedFigure().getBorderItemContainer();
+ }
+ return getContentPane();
+ }
+
+ /**
+ * @generated
+ */
+ protected NodeFigure createNodePlate() {
+ DefaultSizeNodeFigure result = new DefaultSizeNodeFigure(40, 40);
+ return result;
+ }
+
+ /**
+ * Creates figure for this edit part.
+ *
+ * Body of this method does not depend on settings in generation model
+ * so you may safely remove <i>generated</i> tag and modify it.
+ *
+ * @generated
+ */
+ protected NodeFigure createMainFigure() {
+ NodeFigure figure = createNodePlate();
+ figure.setLayoutManager(new StackLayout());
+ IFigure shape = createNodeShape();
+ figure.add(shape);
+ contentPane = setupContentPane(shape);
+ return figure;
+ }
+
+ /**
+ * Default implementation treats passed figure as content pane.
+ * Respects layout one may have set for generated figure.
+ * @param nodeShape instance of generated figure class
+ * @generated
+ */
+ protected IFigure setupContentPane(IFigure nodeShape) {
+ if (nodeShape.getLayoutManager() == null) {
+ ConstrainedToolbarLayout layout = new ConstrainedToolbarLayout();
+ layout.setSpacing(5);
+ nodeShape.setLayoutManager(layout);
+ }
+ return nodeShape; // use nodeShape itself as contentPane
+ }
+
+ /**
+ * @generated
+ */
+ public IFigure getContentPane() {
+ if (contentPane != null) {
+ return contentPane;
+ }
+ return super.getContentPane();
+ }
+
+ /**
+ * @generated
+ */
+ protected void setForegroundColor(Color color) {
+ if (primaryShape != null) {
+ primaryShape.setForegroundColor(color);
+ }
+ }
+
+ /**
+ * @generated
+ */
+ protected void setBackgroundColor(Color color) {
+ if (primaryShape != null) {
+ primaryShape.setBackgroundColor(color);
+ }
+ }
+
+ /**
+ * @generated
+ */
+ protected void setLineWidth(int width) {
+ if (primaryShape instanceof Shape) {
+ ((Shape) primaryShape).setLineWidth(width);
+ }
+ }
+
+ /**
+ * @generated
+ */
+ protected void setLineType(int style) {
+ if (primaryShape instanceof Shape) {
+ ((Shape) primaryShape).setLineStyle(style);
+ }
+ }
+
+ /**
+ * @generated
+ */
+ public EditPart getPrimaryChildEditPart() {
+ return getChildBySemanticHint(ComrelVisualIDRegistry
+ .getType(MultiFilterUnitNameType3EditPart.VISUAL_ID));
+ }
+
+ /**
+ * @generated
+ */
+ public class MultiFilterUnitFigure extends RoundedRectangle {
+
+ /**
+ * @generated
+ */
+ private WrappingLabel fFigureMultiFilterUnitLabelFigure;
+
+ /**
+ * @generated
+ */
+ public MultiFilterUnitFigure() {
+ this.setCornerDimensions(new Dimension(getMapMode().DPtoLP(8),
+ getMapMode().DPtoLP(8)));
+ this.setBorder(new MarginBorder(getMapMode().DPtoLP(5),
+ getMapMode().DPtoLP(5), getMapMode().DPtoLP(5),
+ getMapMode().DPtoLP(5)));
+ createContents();
+ }
+
+ /**
+ * @generated
+ */
+ private void createContents() {
+
+ fFigureMultiFilterUnitLabelFigure = new WrappingLabel();
+ fFigureMultiFilterUnitLabelFigure.setText("MultiFilterUnit");
+
+ this.add(fFigureMultiFilterUnitLabelFigure);
+
+ }
+
+ /**
+ * @generated
+ */
+ public WrappingLabel getFigureMultiFilterUnitLabelFigure() {
+ return fFigureMultiFilterUnitLabelFigure;
+ }
+
+ }
+
+}
diff --git a/org.eclipse.emf.refactor.comrel.diagram/src/comrel/diagram/edit/parts/MultiFilterUnit4EditPart.java b/org.eclipse.emf.refactor.comrel.diagram/src/comrel/diagram/edit/parts/MultiFilterUnit4EditPart.java
new file mode 100644
index 0000000..1e00024
--- /dev/null
+++ b/org.eclipse.emf.refactor.comrel.diagram/src/comrel/diagram/edit/parts/MultiFilterUnit4EditPart.java
@@ -0,0 +1,350 @@
+/*
+ *
+ */
+package comrel.diagram.edit.parts;
+
+import org.eclipse.draw2d.IFigure;
+import org.eclipse.draw2d.MarginBorder;
+import org.eclipse.draw2d.PositionConstants;
+import org.eclipse.draw2d.RoundedRectangle;
+import org.eclipse.draw2d.Shape;
+import org.eclipse.draw2d.StackLayout;
+import org.eclipse.draw2d.geometry.Dimension;
+import org.eclipse.gef.EditPart;
+import org.eclipse.gef.EditPolicy;
+import org.eclipse.gef.Request;
+import org.eclipse.gef.commands.Command;
+import org.eclipse.gef.editpolicies.LayoutEditPolicy;
+import org.eclipse.gef.editpolicies.NonResizableEditPolicy;
+import org.eclipse.gef.requests.CreateRequest;
+import org.eclipse.gmf.runtime.diagram.ui.editparts.AbstractBorderedShapeEditPart;
+import org.eclipse.gmf.runtime.diagram.ui.editparts.IBorderItemEditPart;
+import org.eclipse.gmf.runtime.diagram.ui.editparts.IGraphicalEditPart;
+import org.eclipse.gmf.runtime.diagram.ui.editpolicies.BorderItemSelectionEditPolicy;
+import org.eclipse.gmf.runtime.diagram.ui.editpolicies.CreationEditPolicy;
+import org.eclipse.gmf.runtime.diagram.ui.editpolicies.DragDropEditPolicy;
+import org.eclipse.gmf.runtime.diagram.ui.editpolicies.EditPolicyRoles;
+import org.eclipse.gmf.runtime.diagram.ui.figures.BorderItemLocator;
+import org.eclipse.gmf.runtime.draw2d.ui.figures.ConstrainedToolbarLayout;
+import org.eclipse.gmf.runtime.draw2d.ui.figures.WrappingLabel;
+import org.eclipse.gmf.runtime.gef.ui.figures.DefaultSizeNodeFigure;
+import org.eclipse.gmf.runtime.gef.ui.figures.NodeFigure;
+import org.eclipse.gmf.runtime.notation.View;
+import org.eclipse.swt.graphics.Color;
+
+import comrel.diagram.edit.policies.MultiFilterUnit4CanonicalEditPolicy;
+import comrel.diagram.edit.policies.MultiFilterUnit4ItemSemanticEditPolicy;
+import comrel.diagram.part.ComrelVisualIDRegistry;
+
+/**
+ * @generated
+ */
+public class MultiFilterUnit4EditPart extends AbstractBorderedShapeEditPart {
+
+ /**
+ * @generated
+ */
+ public static final int VISUAL_ID = 3058;
+
+ /**
+ * @generated
+ */
+ protected IFigure contentPane;
+
+ /**
+ * @generated
+ */
+ protected IFigure primaryShape;
+
+ /**
+ * @generated
+ */
+ public MultiFilterUnit4EditPart(View view) {
+ super(view);
+ }
+
+ /**
+ * @generated
+ */
+ protected void createDefaultEditPolicies() {
+ installEditPolicy(EditPolicyRoles.CREATION_ROLE,
+ new CreationEditPolicy());
+ super.createDefaultEditPolicies();
+ installEditPolicy(EditPolicyRoles.SEMANTIC_ROLE,
+ new MultiFilterUnit4ItemSemanticEditPolicy());
+ installEditPolicy(EditPolicyRoles.DRAG_DROP_ROLE,
+ new DragDropEditPolicy());
+ installEditPolicy(EditPolicyRoles.CANONICAL_ROLE,
+ new MultiFilterUnit4CanonicalEditPolicy());
+ installEditPolicy(EditPolicy.LAYOUT_ROLE, createLayoutEditPolicy());
+ // XXX need an SCR to runtime to have another abstract superclass that would let children add reasonable editpolicies
+ // removeEditPolicy(org.eclipse.gmf.runtime.diagram.ui.editpolicies.EditPolicyRoles.CONNECTION_HANDLES_ROLE);
+ }
+
+ /**
+ * @generated
+ */
+ protected LayoutEditPolicy createLayoutEditPolicy() {
+ org.eclipse.gmf.runtime.diagram.ui.editpolicies.LayoutEditPolicy lep = new org.eclipse.gmf.runtime.diagram.ui.editpolicies.LayoutEditPolicy() {
+
+ protected EditPolicy createChildEditPolicy(EditPart child) {
+ View childView = (View) child.getModel();
+ switch (ComrelVisualIDRegistry.getVisualID(childView)) {
+ case MultiInputPort6EditPart.VISUAL_ID:
+ case MultiOutputPort2EditPart.VISUAL_ID:
+ return new BorderItemSelectionEditPolicy();
+ }
+ EditPolicy result = child
+ .getEditPolicy(EditPolicy.PRIMARY_DRAG_ROLE);
+ if (result == null) {
+ result = new NonResizableEditPolicy();
+ }
+ return result;
+ }
+
+ protected Command getMoveChildrenCommand(Request request) {
+ return null;
+ }
+
+ protected Command getCreateCommand(CreateRequest request) {
+ return null;
+ }
+ };
+ return lep;
+ }
+
+ /**
+ * @generated
+ */
+ protected IFigure createNodeShape() {
+ return primaryShape = new MultiFilterUnitFigure();
+ }
+
+ /**
+ * @generated
+ */
+ public MultiFilterUnitFigure getPrimaryShape() {
+ return (MultiFilterUnitFigure) primaryShape;
+ }
+
+ /**
+ * @generated NOT
+ */
+ protected boolean addFixedChild(EditPart childEditPart) {
+ if (childEditPart instanceof MultiFilterUnitNameType4EditPart) {
+ ((MultiFilterUnitNameType4EditPart) childEditPart)
+ .setLabel(getPrimaryShape()
+ .getFigureMultiFilterUnitLabelFigure());
+ return true;
+ }
+ if (childEditPart instanceof MultiInputPort6EditPart) {
+ BorderItemLocator locator = new BorderItemLocator(getMainFigure(),
+ PositionConstants.NORTH);
+ locator.setCurrentSideOfParent(PositionConstants.NORTH); // Position des Ports
+ locator.setPreferredSideOfParent(PositionConstants.NORTH); // Position des Ports
+ getBorderedFigure().getBorderItemContainer().add(
+ ((MultiInputPort6EditPart) childEditPart).getFigure(),
+ locator);
+ return true;
+ }
+ if (childEditPart instanceof MultiOutputPort2EditPart) {
+ BorderItemLocator locator = new BorderItemLocator(getMainFigure(),
+ PositionConstants.SOUTH);
+ locator.setCurrentSideOfParent(PositionConstants.SOUTH); // Position des Ports
+ locator.setPreferredSideOfParent(PositionConstants.SOUTH); // Position des Ports
+ getBorderedFigure().getBorderItemContainer().add(
+ ((MultiOutputPort2EditPart) childEditPart).getFigure(),
+ locator);
+ return true;
+ }
+ return false;
+ }
+
+ /**
+ * @generated NOT
+ */
+ protected boolean removeFixedChild(EditPart childEditPart) {
+ if (childEditPart instanceof MultiFilterUnitNameType4EditPart) {
+ return true;
+ }
+ if (childEditPart instanceof MultiInputPort6EditPart) {
+ // getBorderedFigure().getBorderItemContainer().remove(
+ // ((MultiInputPort6EditPart) childEditPart).getFigure());
+ return true;
+ }
+ if (childEditPart instanceof MultiOutputPort2EditPart) {
+ // getBorderedFigure().getBorderItemContainer().remove(
+ // ((MultiOutputPort2EditPart) childEditPart).getFigure());
+ return true;
+ }
+ return false;
+ }
+
+ /**
+ * @generated
+ */
+ protected void addChildVisual(EditPart childEditPart, int index) {
+ if (addFixedChild(childEditPart)) {
+ return;
+ }
+ super.addChildVisual(childEditPart, -1);
+ }
+
+ /**
+ * @generated
+ */
+ protected void removeChildVisual(EditPart childEditPart) {
+ if (removeFixedChild(childEditPart)) {
+ return;
+ }
+ super.removeChildVisual(childEditPart);
+ }
+
+ /**
+ * @generated
+ */
+ protected IFigure getContentPaneFor(IGraphicalEditPart editPart) {
+ if (editPart instanceof IBorderItemEditPart) {
+ return getBorderedFigure().getBorderItemContainer();
+ }
+ return getContentPane();
+ }
+
+ /**
+ * @generated
+ */
+ protected NodeFigure createNodePlate() {
+ DefaultSizeNodeFigure result = new DefaultSizeNodeFigure(40, 40);
+ return result;
+ }
+
+ /**
+ * Creates figure for this edit part.
+ *
+ * Body of this method does not depend on settings in generation model
+ * so you may safely remove <i>generated</i> tag and modify it.
+ *
+ * @generated
+ */
+ protected NodeFigure createMainFigure() {
+ NodeFigure figure = createNodePlate();
+ figure.setLayoutManager(new StackLayout());
+ IFigure shape = createNodeShape();
+ figure.add(shape);
+ contentPane = setupContentPane(shape);
+ return figure;
+ }
+
+ /**
+ * Default implementation treats passed figure as content pane.
+ * Respects layout one may have set for generated figure.
+ * @param nodeShape instance of generated figure class
+ * @generated
+ */
+ protected IFigure setupContentPane(IFigure nodeShape) {
+ if (nodeShape.getLayoutManager() == null) {
+ ConstrainedToolbarLayout layout = new ConstrainedToolbarLayout();
+ layout.setSpacing(5);
+ nodeShape.setLayoutManager(layout);
+ }
+ return nodeShape; // use nodeShape itself as contentPane
+ }
+
+ /**
+ * @generated
+ */
+ public IFigure getContentPane() {
+ if (contentPane != null) {
+ return contentPane;
+ }
+ return super.getContentPane();
+ }
+
+ /**
+ * @generated
+ */
+ protected void setForegroundColor(Color color) {
+ if (primaryShape != null) {
+ primaryShape.setForegroundColor(color);
+ }
+ }
+
+ /**
+ * @generated
+ */
+ protected void setBackgroundColor(Color color) {
+ if (primaryShape != null) {
+ primaryShape.setBackgroundColor(color);
+ }
+ }
+
+ /**
+ * @generated
+ */
+ protected void setLineWidth(int width) {
+ if (primaryShape instanceof Shape) {
+ ((Shape) primaryShape).setLineWidth(width);
+ }
+ }
+
+ /**
+ * @generated
+ */
+ protected void setLineType(int style) {
+ if (primaryShape instanceof Shape) {
+ ((Shape) primaryShape).setLineStyle(style);
+ }
+ }
+
+ /**
+ * @generated
+ */
+ public EditPart getPrimaryChildEditPart() {
+ return getChildBySemanticHint(ComrelVisualIDRegistry
+ .getType(MultiFilterUnitNameType4EditPart.VISUAL_ID));
+ }
+
+ /**
+ * @generated
+ */
+ public class MultiFilterUnitFigure extends RoundedRectangle {
+
+ /**
+ * @generated
+ */
+ private WrappingLabel fFigureMultiFilterUnitLabelFigure;
+
+ /**
+ * @generated
+ */
+ public MultiFilterUnitFigure() {
+ this.setCornerDimensions(new Dimension(getMapMode().DPtoLP(8),
+ getMapMode().DPtoLP(8)));
+ this.setBorder(new MarginBorder(getMapMode().DPtoLP(5),
+ getMapMode().DPtoLP(5), getMapMode().DPtoLP(5),
+ getMapMode().DPtoLP(5)));
+ createContents();
+ }
+
+ /**
+ * @generated
+ */
+ private void createContents() {
+
+ fFigureMultiFilterUnitLabelFigure = new WrappingLabel();
+ fFigureMultiFilterUnitLabelFigure.setText("MultiFilterUnit");
+
+ this.add(fFigureMultiFilterUnitLabelFigure);
+
+ }
+
+ /**
+ * @generated
+ */
+ public WrappingLabel getFigureMultiFilterUnitLabelFigure() {
+ return fFigureMultiFilterUnitLabelFigure;
+ }
+
+ }
+
+}
diff --git a/org.eclipse.emf.refactor.comrel.diagram/src/comrel/diagram/edit/parts/MultiFilterUnit5EditPart.java b/org.eclipse.emf.refactor.comrel.diagram/src/comrel/diagram/edit/parts/MultiFilterUnit5EditPart.java
new file mode 100644
index 0000000..ed14283
--- /dev/null
+++ b/org.eclipse.emf.refactor.comrel.diagram/src/comrel/diagram/edit/parts/MultiFilterUnit5EditPart.java
@@ -0,0 +1,350 @@
+/*
+ *
+ */
+package comrel.diagram.edit.parts;
+
+import org.eclipse.draw2d.IFigure;
+import org.eclipse.draw2d.MarginBorder;
+import org.eclipse.draw2d.PositionConstants;
+import org.eclipse.draw2d.RoundedRectangle;
+import org.eclipse.draw2d.Shape;
+import org.eclipse.draw2d.StackLayout;
+import org.eclipse.draw2d.geometry.Dimension;
+import org.eclipse.gef.EditPart;
+import org.eclipse.gef.EditPolicy;
+import org.eclipse.gef.Request;
+import org.eclipse.gef.commands.Command;
+import org.eclipse.gef.editpolicies.LayoutEditPolicy;
+import org.eclipse.gef.editpolicies.NonResizableEditPolicy;
+import org.eclipse.gef.requests.CreateRequest;
+import org.eclipse.gmf.runtime.diagram.ui.editparts.AbstractBorderedShapeEditPart;
+import org.eclipse.gmf.runtime.diagram.ui.editparts.IBorderItemEditPart;
+import org.eclipse.gmf.runtime.diagram.ui.editparts.IGraphicalEditPart;
+import org.eclipse.gmf.runtime.diagram.ui.editpolicies.BorderItemSelectionEditPolicy;
+import org.eclipse.gmf.runtime.diagram.ui.editpolicies.CreationEditPolicy;
+import org.eclipse.gmf.runtime.diagram.ui.editpolicies.DragDropEditPolicy;
+import org.eclipse.gmf.runtime.diagram.ui.editpolicies.EditPolicyRoles;
+import org.eclipse.gmf.runtime.diagram.ui.figures.BorderItemLocator;
+import org.eclipse.gmf.runtime.draw2d.ui.figures.ConstrainedToolbarLayout;
+import org.eclipse.gmf.runtime.draw2d.ui.figures.WrappingLabel;
+import org.eclipse.gmf.runtime.gef.ui.figures.DefaultSizeNodeFigure;
+import org.eclipse.gmf.runtime.gef.ui.figures.NodeFigure;
+import org.eclipse.gmf.runtime.notation.View;
+import org.eclipse.swt.graphics.Color;
+
+import comrel.diagram.edit.policies.MultiFilterUnit5CanonicalEditPolicy;
+import comrel.diagram.edit.policies.MultiFilterUnit5ItemSemanticEditPolicy;
+import comrel.diagram.part.ComrelVisualIDRegistry;
+
+/**
+ * @generated
+ */
+public class MultiFilterUnit5EditPart extends AbstractBorderedShapeEditPart {
+
+ /**
+ * @generated
+ */
+ public static final int VISUAL_ID = 3064;
+
+ /**
+ * @generated
+ */
+ protected IFigure contentPane;
+
+ /**
+ * @generated
+ */
+ protected IFigure primaryShape;
+
+ /**
+ * @generated
+ */
+ public MultiFilterUnit5EditPart(View view) {
+ super(view);
+ }
+
+ /**
+ * @generated
+ */
+ protected void createDefaultEditPolicies() {
+ installEditPolicy(EditPolicyRoles.CREATION_ROLE,
+ new CreationEditPolicy());
+ super.createDefaultEditPolicies();
+ installEditPolicy(EditPolicyRoles.SEMANTIC_ROLE,
+ new MultiFilterUnit5ItemSemanticEditPolicy());
+ installEditPolicy(EditPolicyRoles.DRAG_DROP_ROLE,
+ new DragDropEditPolicy());
+ installEditPolicy(EditPolicyRoles.CANONICAL_ROLE,
+ new MultiFilterUnit5CanonicalEditPolicy());
+ installEditPolicy(EditPolicy.LAYOUT_ROLE, createLayoutEditPolicy());
+ // XXX need an SCR to runtime to have another abstract superclass that would let children add reasonable editpolicies
+ // removeEditPolicy(org.eclipse.gmf.runtime.diagram.ui.editpolicies.EditPolicyRoles.CONNECTION_HANDLES_ROLE);
+ }
+
+ /**
+ * @generated
+ */
+ protected LayoutEditPolicy createLayoutEditPolicy() {
+ org.eclipse.gmf.runtime.diagram.ui.editpolicies.LayoutEditPolicy lep = new org.eclipse.gmf.runtime.diagram.ui.editpolicies.LayoutEditPolicy() {
+
+ protected EditPolicy createChildEditPolicy(EditPart child) {
+ View childView = (View) child.getModel();
+ switch (ComrelVisualIDRegistry.getVisualID(childView)) {
+ case MultiInputPort6EditPart.VISUAL_ID:
+ case MultiOutputPort2EditPart.VISUAL_ID:
+ return new BorderItemSelectionEditPolicy();
+ }
+ EditPolicy result = child
+ .getEditPolicy(EditPolicy.PRIMARY_DRAG_ROLE);
+ if (result == null) {
+ result = new NonResizableEditPolicy();
+ }
+ return result;
+ }
+
+ protected Command getMoveChildrenCommand(Request request) {
+ return null;
+ }
+
+ protected Command getCreateCommand(CreateRequest request) {
+ return null;
+ }
+ };
+ return lep;
+ }
+
+ /**
+ * @generated
+ */
+ protected IFigure createNodeShape() {
+ return primaryShape = new MultiFilterUnitFigure();
+ }
+
+ /**
+ * @generated
+ */
+ public MultiFilterUnitFigure getPrimaryShape() {
+ return (MultiFilterUnitFigure) primaryShape;
+ }
+
+ /**
+ * @generated NOT
+ */
+ protected boolean addFixedChild(EditPart childEditPart) {
+ if (childEditPart instanceof MultiFilterUnitNameType5EditPart) {
+ ((MultiFilterUnitNameType5EditPart) childEditPart)
+ .setLabel(getPrimaryShape()
+ .getFigureMultiFilterUnitLabelFigure());
+ return true;
+ }
+ if (childEditPart instanceof MultiInputPort6EditPart) {
+ BorderItemLocator locator = new BorderItemLocator(getMainFigure(),
+ PositionConstants.NORTH);
+ locator.setCurrentSideOfParent(PositionConstants.NORTH); // Position des Ports
+ locator.setPreferredSideOfParent(PositionConstants.NORTH); // Position des Ports
+ getBorderedFigure().getBorderItemContainer().add(
+ ((MultiInputPort6EditPart) childEditPart).getFigure(),
+ locator);
+ return true;
+ }
+ if (childEditPart instanceof MultiOutputPort2EditPart) {
+ BorderItemLocator locator = new BorderItemLocator(getMainFigure(),
+ PositionConstants.SOUTH);
+ locator.setCurrentSideOfParent(PositionConstants.SOUTH); // Position des Ports
+ locator.setPreferredSideOfParent(PositionConstants.SOUTH); // Position des Ports
+ getBorderedFigure().getBorderItemContainer().add(
+ ((MultiOutputPort2EditPart) childEditPart).getFigure(),
+ locator);
+ return true;
+ }
+ return false;
+ }
+
+ /**
+ * @generated NOt
+ */
+ protected boolean removeFixedChild(EditPart childEditPart) {
+ if (childEditPart instanceof MultiFilterUnitNameType5EditPart) {
+ return true;
+ }
+ if (childEditPart instanceof MultiInputPort6EditPart) {
+ // getBorderedFigure().getBorderItemContainer().remove(
+ // ((MultiInputPort6EditPart) childEditPart).getFigure());
+ return true;
+ }
+ if (childEditPart instanceof MultiOutputPort2EditPart) {
+ // getBorderedFigure().getBorderItemContainer().remove(
+ // ((MultiOutputPort2EditPart) childEditPart).getFigure());
+ return true;
+ }
+ return false;
+ }
+
+ /**
+ * @generated
+ */
+ protected void addChildVisual(EditPart childEditPart, int index) {
+ if (addFixedChild(childEditPart)) {
+ return;
+ }
+ super.addChildVisual(childEditPart, -1);
+ }
+
+ /**
+ * @generated
+ */
+ protected void removeChildVisual(EditPart childEditPart) {
+ if (removeFixedChild(childEditPart)) {
+ return;
+ }
+ super.removeChildVisual(childEditPart);
+ }
+
+ /**
+ * @generated
+ */
+ protected IFigure getContentPaneFor(IGraphicalEditPart editPart) {
+ if (editPart instanceof IBorderItemEditPart) {
+ return getBorderedFigure().getBorderItemContainer();
+ }
+ return getContentPane();
+ }
+
+ /**
+ * @generated
+ */
+ protected NodeFigure createNodePlate() {
+ DefaultSizeNodeFigure result = new DefaultSizeNodeFigure(40, 40);
+ return result;
+ }
+
+ /**
+ * Creates figure for this edit part.
+ *
+ * Body of this method does not depend on settings in generation model
+ * so you may safely remove <i>generated</i> tag and modify it.
+ *
+ * @generated
+ */
+ protected NodeFigure createMainFigure() {
+ NodeFigure figure = createNodePlate();
+ figure.setLayoutManager(new StackLayout());
+ IFigure shape = createNodeShape();
+ figure.add(shape);
+ contentPane = setupContentPane(shape);
+ return figure;
+ }
+
+ /**
+ * Default implementation treats passed figure as content pane.
+ * Respects layout one may have set for generated figure.
+ * @param nodeShape instance of generated figure class
+ * @generated
+ */
+ protected IFigure setupContentPane(IFigure nodeShape) {
+ if (nodeShape.getLayoutManager() == null) {
+ ConstrainedToolbarLayout layout = new ConstrainedToolbarLayout();
+ layout.setSpacing(5);
+ nodeShape.setLayoutManager(layout);
+ }
+ return nodeShape; // use nodeShape itself as contentPane
+ }
+
+ /**
+ * @generated
+ */
+ public IFigure getContentPane() {
+ if (contentPane != null) {
+ return contentPane;
+ }
+ return super.getContentPane();
+ }
+
+ /**
+ * @generated
+ */
+ protected void setForegroundColor(Color color) {
+ if (primaryShape != null) {
+ primaryShape.setForegroundColor(color);
+ }
+ }
+
+ /**
+ * @generated
+ */
+ protected void setBackgroundColor(Color color) {
+ if (primaryShape != null) {
+ primaryShape.setBackgroundColor(color);
+ }
+ }
+
+ /**
+ * @generated
+ */
+ protected void setLineWidth(int width) {
+ if (primaryShape instanceof Shape) {
+ ((Shape) primaryShape).setLineWidth(width);
+ }
+ }
+
+ /**
+ * @generated
+ */
+ protected void setLineType(int style) {
+ if (primaryShape instanceof Shape) {
+ ((Shape) primaryShape).setLineStyle(style);
+ }
+ }
+
+ /**
+ * @generated
+ */
+ public EditPart getPrimaryChildEditPart() {
+ return getChildBySemanticHint(ComrelVisualIDRegistry
+ .getType(MultiFilterUnitNameType5EditPart.VISUAL_ID));
+ }
+
+ /**
+ * @generated
+ */
+ public class MultiFilterUnitFigure extends RoundedRectangle {
+
+ /**
+ * @generated
+ */
+ private WrappingLabel fFigureMultiFilterUnitLabelFigure;
+
+ /**
+ * @generated
+ */
+ public MultiFilterUnitFigure() {
+ this.setCornerDimensions(new Dimension(getMapMode().DPtoLP(8),
+ getMapMode().DPtoLP(8)));
+ this.setBorder(new MarginBorder(getMapMode().DPtoLP(5),
+ getMapMode().DPtoLP(5), getMapMode().DPtoLP(5),
+ getMapMode().DPtoLP(5)));
+ createContents();
+ }
+
+ /**
+ * @generated
+ */
+ private void createContents() {
+
+ fFigureMultiFilterUnitLabelFigure = new WrappingLabel();
+ fFigureMultiFilterUnitLabelFigure.setText("MultiFilterUnit");
+
+ this.add(fFigureMultiFilterUnitLabelFigure);
+
+ }
+
+ /**
+ * @generated
+ */
+ public WrappingLabel getFigureMultiFilterUnitLabelFigure() {
+ return fFigureMultiFilterUnitLabelFigure;
+ }
+
+ }
+
+}
diff --git a/org.eclipse.emf.refactor.comrel.diagram/src/comrel/diagram/edit/parts/MultiFilterUnitEditPart.java b/org.eclipse.emf.refactor.comrel.diagram/src/comrel/diagram/edit/parts/MultiFilterUnitEditPart.java
new file mode 100644
index 0000000..fb2ba2a
--- /dev/null
+++ b/org.eclipse.emf.refactor.comrel.diagram/src/comrel/diagram/edit/parts/MultiFilterUnitEditPart.java
@@ -0,0 +1,350 @@
+/*
+ *
+ */
+package comrel.diagram.edit.parts;
+
+import org.eclipse.draw2d.IFigure;
+import org.eclipse.draw2d.MarginBorder;
+import org.eclipse.draw2d.PositionConstants;
+import org.eclipse.draw2d.RoundedRectangle;
+import org.eclipse.draw2d.Shape;
+import org.eclipse.draw2d.StackLayout;
+import org.eclipse.draw2d.geometry.Dimension;
+import org.eclipse.gef.EditPart;
+import org.eclipse.gef.EditPolicy;
+import org.eclipse.gef.Request;
+import org.eclipse.gef.commands.Command;
+import org.eclipse.gef.editpolicies.LayoutEditPolicy;
+import org.eclipse.gef.editpolicies.NonResizableEditPolicy;
+import org.eclipse.gef.requests.CreateRequest;
+import org.eclipse.gmf.runtime.diagram.ui.editparts.AbstractBorderedShapeEditPart;
+import org.eclipse.gmf.runtime.diagram.ui.editparts.IBorderItemEditPart;
+import org.eclipse.gmf.runtime.diagram.ui.editparts.IGraphicalEditPart;
+import org.eclipse.gmf.runtime.diagram.ui.editpolicies.BorderItemSelectionEditPolicy;
+import org.eclipse.gmf.runtime.diagram.ui.editpolicies.CreationEditPolicy;
+import org.eclipse.gmf.runtime.diagram.ui.editpolicies.DragDropEditPolicy;
+import org.eclipse.gmf.runtime.diagram.ui.editpolicies.EditPolicyRoles;
+import org.eclipse.gmf.runtime.diagram.ui.figures.BorderItemLocator;
+import org.eclipse.gmf.runtime.draw2d.ui.figures.ConstrainedToolbarLayout;
+import org.eclipse.gmf.runtime.draw2d.ui.figures.WrappingLabel;
+import org.eclipse.gmf.runtime.gef.ui.figures.DefaultSizeNodeFigure;
+import org.eclipse.gmf.runtime.gef.ui.figures.NodeFigure;
+import org.eclipse.gmf.runtime.notation.View;
+import org.eclipse.swt.graphics.Color;
+
+import comrel.diagram.edit.policies.MultiFilterUnitCanonicalEditPolicy;
+import comrel.diagram.edit.policies.MultiFilterUnitItemSemanticEditPolicy;
+import comrel.diagram.part.ComrelVisualIDRegistry;
+
+/**
+ * @generated
+ */
+public class MultiFilterUnitEditPart extends AbstractBorderedShapeEditPart {
+
+ /**
+ * @generated
+ */
+ public static final int VISUAL_ID = 3019;
+
+ /**
+ * @generated
+ */
+ protected IFigure contentPane;
+
+ /**
+ * @generated
+ */
+ protected IFigure primaryShape;
+
+ /**
+ * @generated
+ */
+ public MultiFilterUnitEditPart(View view) {
+ super(view);
+ }
+
+ /**
+ * @generated
+ */
+ protected void createDefaultEditPolicies() {
+ installEditPolicy(EditPolicyRoles.CREATION_ROLE,
+ new CreationEditPolicy());
+ super.createDefaultEditPolicies();
+ installEditPolicy(EditPolicyRoles.SEMANTIC_ROLE,
+ new MultiFilterUnitItemSemanticEditPolicy());
+ installEditPolicy(EditPolicyRoles.DRAG_DROP_ROLE,
+ new DragDropEditPolicy());
+ installEditPolicy(EditPolicyRoles.CANONICAL_ROLE,
+ new MultiFilterUnitCanonicalEditPolicy());
+ installEditPolicy(EditPolicy.LAYOUT_ROLE, createLayoutEditPolicy());
+ // XXX need an SCR to runtime to have another abstract superclass that would let children add reasonable editpolicies
+ // removeEditPolicy(org.eclipse.gmf.runtime.diagram.ui.editpolicies.EditPolicyRoles.CONNECTION_HANDLES_ROLE);
+ }
+
+ /**
+ * @generated
+ */
+ protected LayoutEditPolicy createLayoutEditPolicy() {
+ org.eclipse.gmf.runtime.diagram.ui.editpolicies.LayoutEditPolicy lep = new org.eclipse.gmf.runtime.diagram.ui.editpolicies.LayoutEditPolicy() {
+
+ protected EditPolicy createChildEditPolicy(EditPart child) {
+ View childView = (View) child.getModel();
+ switch (ComrelVisualIDRegistry.getVisualID(childView)) {
+ case MultiInputPort6EditPart.VISUAL_ID:
+ case MultiOutputPort2EditPart.VISUAL_ID:
+ return new BorderItemSelectionEditPolicy();
+ }
+ EditPolicy result = child
+ .getEditPolicy(EditPolicy.PRIMARY_DRAG_ROLE);
+ if (result == null) {
+ result = new NonResizableEditPolicy();
+ }
+ return result;
+ }
+
+ protected Command getMoveChildrenCommand(Request request) {
+ return null;
+ }
+
+ protected Command getCreateCommand(CreateRequest request) {
+ return null;
+ }
+ };
+ return lep;
+ }
+
+ /**
+ * @generated
+ */
+ protected IFigure createNodeShape() {
+ return primaryShape = new MultiFilterUnitFigure();
+ }
+
+ /**
+ * @generated
+ */
+ public MultiFilterUnitFigure getPrimaryShape() {
+ return (MultiFilterUnitFigure) primaryShape;
+ }
+
+ /**
+ * @generated NOT
+ */
+ protected boolean addFixedChild(EditPart childEditPart) {
+ if (childEditPart instanceof MultiFilterUnitNameTypeEditPart) {
+ ((MultiFilterUnitNameTypeEditPart) childEditPart)
+ .setLabel(getPrimaryShape()
+ .getFigureMultiFilterUnitLabelFigure());
+ return true;
+ }
+ if (childEditPart instanceof MultiInputPort6EditPart) {
+ BorderItemLocator locator = new BorderItemLocator(getMainFigure(),
+ PositionConstants.NORTH);
+ locator.setCurrentSideOfParent(PositionConstants.NORTH); // Position des Ports
+ locator.setPreferredSideOfParent(PositionConstants.NORTH); // Position des Ports
+ getBorderedFigure().getBorderItemContainer().add(
+ ((MultiInputPort6EditPart) childEditPart).getFigure(),
+ locator);
+ return true;
+ }
+ if (childEditPart instanceof MultiOutputPort2EditPart) {
+ BorderItemLocator locator = new BorderItemLocator(getMainFigure(),
+ PositionConstants.SOUTH);
+ locator.setCurrentSideOfParent(PositionConstants.SOUTH); // Position des Ports
+ locator.setPreferredSideOfParent(PositionConstants.SOUTH); // Position des Ports
+ getBorderedFigure().getBorderItemContainer().add(
+ ((MultiOutputPort2EditPart) childEditPart).getFigure(),
+ locator);
+ return true;
+ }
+ return false;
+ }
+
+ /**
+ * @generated NOT
+ */
+ protected boolean removeFixedChild(EditPart childEditPart) {
+ if (childEditPart instanceof MultiFilterUnitNameTypeEditPart) {
+ return true;
+ }
+ if (childEditPart instanceof MultiInputPort6EditPart) {
+ // getBorderedFigure().getBorderItemContainer().remove(
+ // ((MultiInputPort6EditPart) childEditPart).getFigure());
+ return true;
+ }
+ if (childEditPart instanceof MultiOutputPort2EditPart) {
+ // getBorderedFigure().getBorderItemContainer().remove(
+ // ((MultiOutputPort2EditPart) childEditPart).getFigure());
+ return true;
+ }
+ return false;
+ }
+
+ /**
+ * @generated
+ */
+ protected void addChildVisual(EditPart childEditPart, int index) {
+ if (addFixedChild(childEditPart)) {
+ return;
+ }
+ super.addChildVisual(childEditPart, -1);
+ }
+
+ /**
+ * @generated
+ */
+ protected void removeChildVisual(EditPart childEditPart) {
+ if (removeFixedChild(childEditPart)) {
+ return;
+ }
+ super.removeChildVisual(childEditPart);
+ }
+
+ /**
+ * @generated
+ */
+ protected IFigure getContentPaneFor(IGraphicalEditPart editPart) {
+ if (editPart instanceof IBorderItemEditPart) {
+ return getBorderedFigure().getBorderItemContainer();
+ }
+ return getContentPane();
+ }
+
+ /**
+ * @generated
+ */
+ protected NodeFigure createNodePlate() {
+ DefaultSizeNodeFigure result = new DefaultSizeNodeFigure(40, 40);
+ return result;
+ }
+
+ /**
+ * Creates figure for this edit part.
+ *
+ * Body of this method does not depend on settings in generation model
+ * so you may safely remove <i>generated</i> tag and modify it.
+ *
+ * @generated
+ */
+ protected NodeFigure createMainFigure() {
+ NodeFigure figure = createNodePlate();
+ figure.setLayoutManager(new StackLayout());
+ IFigure shape = createNodeShape();
+ figure.add(shape);
+ contentPane = setupContentPane(shape);
+ return figure;
+ }
+
+ /**
+ * Default implementation treats passed figure as content pane.
+ * Respects layout one may have set for generated figure.
+ * @param nodeShape instance of generated figure class
+ * @generated
+ */
+ protected IFigure setupContentPane(IFigure nodeShape) {
+ if (nodeShape.getLayoutManager() == null) {
+ ConstrainedToolbarLayout layout = new ConstrainedToolbarLayout();
+ layout.setSpacing(5);
+ nodeShape.setLayoutManager(layout);
+ }
+ return nodeShape; // use nodeShape itself as contentPane
+ }
+
+ /**
+ * @generated
+ */
+ public IFigure getContentPane() {
+ if (contentPane != null) {
+ return contentPane;
+ }
+ return super.getContentPane();
+ }
+
+ /**
+ * @generated
+ */
+ protected void setForegroundColor(Color color) {
+ if (primaryShape != null) {
+ primaryShape.setForegroundColor(color);
+ }
+ }
+
+ /**
+ * @generated
+ */
+ protected void setBackgroundColor(Color color) {
+ if (primaryShape != null) {
+ primaryShape.setBackgroundColor(color);
+ }
+ }
+
+ /**
+ * @generated
+ */
+ protected void setLineWidth(int width) {
+ if (primaryShape instanceof Shape) {
+ ((Shape) primaryShape).setLineWidth(width);
+ }
+ }
+
+ /**
+ * @generated
+ */
+ protected void setLineType(int style) {
+ if (primaryShape instanceof Shape) {
+ ((Shape) primaryShape).setLineStyle(style);
+ }
+ }
+
+ /**
+ * @generated
+ */
+ public EditPart getPrimaryChildEditPart() {
+ return getChildBySemanticHint(ComrelVisualIDRegistry
+ .getType(MultiFilterUnitNameTypeEditPart.VISUAL_ID));
+ }
+
+ /**
+ * @generated
+ */
+ public class MultiFilterUnitFigure extends RoundedRectangle {
+
+ /**
+ * @generated
+ */
+ private WrappingLabel fFigureMultiFilterUnitLabelFigure;
+
+ /**
+ * @generated
+ */
+ public MultiFilterUnitFigure() {
+ this.setCornerDimensions(new Dimension(getMapMode().DPtoLP(8),
+ getMapMode().DPtoLP(8)));
+ this.setBorder(new MarginBorder(getMapMode().DPtoLP(5),
+ getMapMode().DPtoLP(5), getMapMode().DPtoLP(5),
+ getMapMode().DPtoLP(5)));
+ createContents();
+ }
+
+ /**
+ * @generated
+ */
+ private void createContents() {
+
+ fFigureMultiFilterUnitLabelFigure = new WrappingLabel();
+ fFigureMultiFilterUnitLabelFigure.setText("MultiFilterUnit");
+
+ this.add(fFigureMultiFilterUnitLabelFigure);
+
+ }
+
+ /**
+ * @generated
+ */
+ public WrappingLabel getFigureMultiFilterUnitLabelFigure() {
+ return fFigureMultiFilterUnitLabelFigure;
+ }
+
+ }
+
+}
diff --git a/org.eclipse.emf.refactor.comrel.diagram/src/comrel/diagram/edit/parts/MultiFilterUnitNameType2EditPart.java b/org.eclipse.emf.refactor.comrel.diagram/src/comrel/diagram/edit/parts/MultiFilterUnitNameType2EditPart.java
new file mode 100644
index 0000000..30d30e4
--- /dev/null
+++ b/org.eclipse.emf.refactor.comrel.diagram/src/comrel/diagram/edit/parts/MultiFilterUnitNameType2EditPart.java
@@ -0,0 +1,576 @@
+/*
+ *
+ */
+package comrel.diagram.edit.parts;
+
+import java.util.Collections;
+import java.util.List;
+
+import org.eclipse.draw2d.IFigure;
+import org.eclipse.draw2d.Label;
+import org.eclipse.draw2d.geometry.Point;
+import org.eclipse.emf.common.notify.Notification;
+import org.eclipse.emf.ecore.EObject;
+import org.eclipse.emf.transaction.RunnableWithResult;
+import org.eclipse.gef.AccessibleEditPart;
+import org.eclipse.gef.EditPolicy;
+import org.eclipse.gef.Request;
+import org.eclipse.gef.requests.DirectEditRequest;
+import org.eclipse.gef.tools.DirectEditManager;
+import org.eclipse.gmf.runtime.common.ui.services.parser.IParser;
+import org.eclipse.gmf.runtime.common.ui.services.parser.IParserEditStatus;
+import org.eclipse.gmf.runtime.common.ui.services.parser.ParserEditStatus;
+import org.eclipse.gmf.runtime.common.ui.services.parser.ParserOptions;
+import org.eclipse.gmf.runtime.diagram.ui.editparts.CompartmentEditPart;
+import org.eclipse.gmf.runtime.diagram.ui.editparts.IGraphicalEditPart;
+import org.eclipse.gmf.runtime.diagram.ui.editparts.ITextAwareEditPart;
+import org.eclipse.gmf.runtime.diagram.ui.editpolicies.LabelDirectEditPolicy;
+import org.eclipse.gmf.runtime.diagram.ui.l10n.DiagramColorRegistry;
+import org.eclipse.gmf.runtime.diagram.ui.requests.RequestConstants;
+import org.eclipse.gmf.runtime.diagram.ui.tools.TextDirectEditManager;
+import org.eclipse.gmf.runtime.draw2d.ui.figures.WrappingLabel;
+import org.eclipse.gmf.runtime.emf.core.util.EObjectAdapter;
+import org.eclipse.gmf.runtime.emf.ui.services.parser.ISemanticParser;
+import org.eclipse.gmf.runtime.notation.FontStyle;
+import org.eclipse.gmf.runtime.notation.NotationPackage;
+import org.eclipse.gmf.runtime.notation.View;
+import org.eclipse.jface.text.contentassist.IContentAssistProcessor;
+import org.eclipse.jface.viewers.ICellEditorValidator;
+import org.eclipse.swt.SWT;
+import org.eclipse.swt.accessibility.AccessibleEvent;
+import org.eclipse.swt.graphics.Color;
+import org.eclipse.swt.graphics.FontData;
+import org.eclipse.swt.graphics.Image;
+
+import comrel.diagram.edit.policies.ComrelTextSelectionEditPolicy;
+import comrel.diagram.part.ComrelVisualIDRegistry;
+import comrel.diagram.providers.ComrelElementTypes;
+import comrel.diagram.providers.ComrelParserProvider;
+
+/**
+ * @generated
+ */
+public class MultiFilterUnitNameType2EditPart extends CompartmentEditPart
+ implements ITextAwareEditPart {
+
+ /**
+ * @generated
+ */
+ public static final int VISUAL_ID = 5032;
+
+ /**
+ * @generated
+ */
+ private DirectEditManager manager;
+
+ /**
+ * @generated
+ */
+ private IParser parser;
+
+ /**
+ * @generated
+ */
+ private List<?> parserElements;
+
+ /**
+ * @generated
+ */
+ private String defaultText;
+
+ /**
+ * @generated
+ */
+ public MultiFilterUnitNameType2EditPart(View view) {
+ super(view);
+ }
+
+ /**
+ * @generated
+ */
+ protected void createDefaultEditPolicies() {
+ super.createDefaultEditPolicies();
+ installEditPolicy(EditPolicy.SELECTION_FEEDBACK_ROLE,
+ new ComrelTextSelectionEditPolicy());
+ installEditPolicy(EditPolicy.DIRECT_EDIT_ROLE,
+ new LabelDirectEditPolicy());
+ installEditPolicy(EditPolicy.PRIMARY_DRAG_ROLE,
+ new CompositeRefactoringEditPart.NodeLabelDragPolicy());
+ }
+
+ /**
+ * @generated
+ */
+ protected String getLabelTextHelper(IFigure figure) {
+ if (figure instanceof WrappingLabel) {
+ return ((WrappingLabel) figure).getText();
+ } else {
+ return ((Label) figure).getText();
+ }
+ }
+
+ /**
+ * @generated
+ */
+ protected void setLabelTextHelper(IFigure figure, String text) {
+ if (figure instanceof WrappingLabel) {
+ ((WrappingLabel) figure).setText(text);
+ } else {
+ ((Label) figure).setText(text);
+ }
+ }
+
+ /**
+ * @generated
+ */
+ protected Image getLabelIconHelper(IFigure figure) {
+ if (figure instanceof WrappingLabel) {
+ return ((WrappingLabel) figure).getIcon();
+ } else {
+ return ((Label) figure).getIcon();
+ }
+ }
+
+ /**
+ * @generated
+ */
+ protected void setLabelIconHelper(IFigure figure, Image icon) {
+ if (figure instanceof WrappingLabel) {
+ ((WrappingLabel) figure).setIcon(icon);
+ } else {
+ ((Label) figure).setIcon(icon);
+ }
+ }
+
+ /**
+ * @generated
+ */
+ public void setLabel(WrappingLabel figure) {
+ unregisterVisuals();
+ setFigure(figure);
+ defaultText = getLabelTextHelper(figure);
+ registerVisuals();
+ refreshVisuals();
+ }
+
+ /**
+ * @generated
+ */
+ @SuppressWarnings("rawtypes")
+ protected List getModelChildren() {
+ return Collections.EMPTY_LIST;
+ }
+
+ /**
+ * @generated
+ */
+ public IGraphicalEditPart getChildBySemanticHint(String semanticHint) {
+ return null;
+ }
+
+ /**
+ * @generated
+ */
+ protected EObject getParserElement() {
+ return resolveSemanticElement();
+ }
+
+ /**
+ * @generated
+ */
+ protected Image getLabelIcon() {
+ return null;
+ }
+
+ /**
+ * @generated
+ */
+ protected String getLabelText() {
+ String text = null;
+ EObject parserElement = getParserElement();
+ if (parserElement != null && getParser() != null) {
+ text = getParser().getPrintString(
+ new EObjectAdapter(parserElement),
+ getParserOptions().intValue());
+ }
+ if (text == null || text.length() == 0) {
+ text = defaultText;
+ }
+ return text;
+ }
+
+ /**
+ * @generated
+ */
+ public void setLabelText(String text) {
+ setLabelTextHelper(getFigure(), text);
+ Object pdEditPolicy = getEditPolicy(EditPolicy.PRIMARY_DRAG_ROLE);
+ if (pdEditPolicy instanceof ComrelTextSelectionEditPolicy) {
+ ((ComrelTextSelectionEditPolicy) pdEditPolicy).refreshFeedback();
+ }
+ Object sfEditPolicy = getEditPolicy(EditPolicy.SELECTION_FEEDBACK_ROLE);
+ if (sfEditPolicy instanceof ComrelTextSelectionEditPolicy) {
+ ((ComrelTextSelectionEditPolicy) sfEditPolicy).refreshFeedback();
+ }
+ }
+
+ /**
+ * @generated
+ */
+ public String getEditText() {
+ if (getParserElement() == null || getParser() == null) {
+ return ""; //$NON-NLS-1$
+ }
+ return getParser().getEditString(
+ new EObjectAdapter(getParserElement()),
+ getParserOptions().intValue());
+ }
+
+ /**
+ * @generated
+ */
+ protected boolean isEditable() {
+ return getParser() != null;
+ }
+
+ /**
+ * @generated
+ */
+ public ICellEditorValidator getEditTextValidator() {
+ return new ICellEditorValidator() {
+
+ public String isValid(final Object value) {
+ if (value instanceof String) {
+ final EObject element = getParserElement();
+ final IParser parser = getParser();
+ try {
+ IParserEditStatus valid = (IParserEditStatus) getEditingDomain()
+ .runExclusive(
+ new RunnableWithResult.Impl<IParserEditStatus>() {
+
+ public void run() {
+ setResult(parser
+ .isValidEditString(
+ new EObjectAdapter(
+ element),
+ (String) value));
+ }
+ });
+ return valid.getCode() == ParserEditStatus.EDITABLE ? null
+ : valid.getMessage();
+ } catch (InterruptedException ie) {
+ ie.printStackTrace();
+ }
+ }
+
+ // shouldn't get here
+ return null;
+ }
+ };
+ }
+
+ /**
+ * @generated
+ */
+ public IContentAssistProcessor getCompletionProcessor() {
+ if (getParserElement() == null || getParser() == null) {
+ return null;
+ }
+ return getParser().getCompletionProcessor(
+ new EObjectAdapter(getParserElement()));
+ }
+
+ /**
+ * @generated
+ */
+ public ParserOptions getParserOptions() {
+ return ParserOptions.NONE;
+ }
+
+ /**
+ * @generated
+ */
+ public IParser getParser() {
+ if (parser == null) {
+ parser = ComrelParserProvider
+ .getParser(
+ ComrelElementTypes.MultiFilterUnit_3041,
+ getParserElement(),
+ ComrelVisualIDRegistry
+ .getType(comrel.diagram.edit.parts.MultiFilterUnitNameType2EditPart.VISUAL_ID));
+ }
+ return parser;
+ }
+
+ /**
+ * @generated
+ */
+ protected DirectEditManager getManager() {
+ if (manager == null) {
+ setManager(new TextDirectEditManager(this,
+ TextDirectEditManager.getTextCellEditorClass(this),
+ ComrelEditPartFactory.getTextCellEditorLocator(this)));
+ }
+ return manager;
+ }
+
+ /**
+ * @generated
+ */
+ protected void setManager(DirectEditManager manager) {
+ this.manager = manager;
+ }
+
+ /**
+ * @generated
+ */
+ protected void performDirectEdit() {
+ getManager().show();
+ }
+
+ /**
+ * @generated
+ */
+ protected void performDirectEdit(Point eventLocation) {
+ if (getManager().getClass() == TextDirectEditManager.class) {
+ ((TextDirectEditManager) getManager()).show(eventLocation
+ .getSWTPoint());
+ }
+ }
+
+ /**
+ * @generated
+ */
+ private void performDirectEdit(char initialCharacter) {
+ if (getManager() instanceof TextDirectEditManager) {
+ ((TextDirectEditManager) getManager()).show(initialCharacter);
+ } else {
+ performDirectEdit();
+ }
+ }
+
+ /**
+ * @generated
+ */
+ protected void performDirectEditRequest(Request request) {
+ final Request theRequest = request;
+ try {
+ getEditingDomain().runExclusive(new Runnable() {
+
+ public void run() {
+ if (isActive() && isEditable()) {
+ if (theRequest
+ .getExtendedData()
+ .get(RequestConstants.REQ_DIRECTEDIT_EXTENDEDDATA_INITIAL_CHAR) instanceof Character) {
+ Character initialChar = (Character) theRequest
+ .getExtendedData()
+ .get(RequestConstants.REQ_DIRECTEDIT_EXTENDEDDATA_INITIAL_CHAR);
+ performDirectEdit(initialChar.charValue());
+ } else if ((theRequest instanceof DirectEditRequest)
+ && (getEditText().equals(getLabelText()))) {
+ DirectEditRequest editRequest = (DirectEditRequest) theRequest;
+ performDirectEdit(editRequest.getLocation());
+ } else {
+ performDirectEdit();
+ }
+ }
+ }
+ });
+ } catch (InterruptedException e) {
+ e.printStackTrace();
+ }
+ }
+
+ /**
+ * @generated
+ */
+ protected void refreshVisuals() {
+ super.refreshVisuals();
+ refreshLabel();
+ refreshFont();
+ refreshFontColor();
+ refreshUnderline();
+ refreshStrikeThrough();
+ }
+
+ /**
+ * @generated
+ */
+ protected void refreshLabel() {
+ setLabelTextHelper(getFigure(), getLabelText());
+ setLabelIconHelper(getFigure(), getLabelIcon());
+ Object pdEditPolicy = getEditPolicy(EditPolicy.PRIMARY_DRAG_ROLE);
+ if (pdEditPolicy instanceof ComrelTextSelectionEditPolicy) {
+ ((ComrelTextSelectionEditPolicy) pdEditPolicy).refreshFeedback();
+ }
+ Object sfEditPolicy = getEditPolicy(EditPolicy.SELECTION_FEEDBACK_ROLE);
+ if (sfEditPolicy instanceof ComrelTextSelectionEditPolicy) {
+ ((ComrelTextSelectionEditPolicy) sfEditPolicy).refreshFeedback();
+ }
+ }
+
+ /**
+ * @generated
+ */
+ protected void refreshUnderline() {
+ FontStyle style = (FontStyle) getFontStyleOwnerView().getStyle(
+ NotationPackage.eINSTANCE.getFontStyle());
+ if (style != null && getFigure() instanceof WrappingLabel) {
+ ((WrappingLabel) getFigure()).setTextUnderline(style.isUnderline());
+ }
+ }
+
+ /**
+ * @generated
+ */
+ protected void refreshStrikeThrough() {
+ FontStyle style = (FontStyle) getFontStyleOwnerView().getStyle(
+ NotationPackage.eINSTANCE.getFontStyle());
+ if (style != null && getFigure() instanceof WrappingLabel) {
+ ((WrappingLabel) getFigure()).setTextStrikeThrough(style
+ .isStrikeThrough());
+ }
+ }
+
+ /**
+ * @generated
+ */
+ protected void refreshFont() {
+ FontStyle style = (FontStyle) getFontStyleOwnerView().getStyle(
+ NotationPackage.eINSTANCE.getFontStyle());
+ if (style != null) {
+ FontData fontData = new FontData(style.getFontName(),
+ style.getFontHeight(), (style.isBold() ? SWT.BOLD
+ : SWT.NORMAL)
+ | (style.isItalic() ? SWT.ITALIC : SWT.NORMAL));
+ setFont(fontData);
+ }
+ }
+
+ /**
+ * @generated
+ */
+ protected void setFontColor(Color color) {
+ getFigure().setForegroundColor(color);
+ }
+
+ /**
+ * @generated
+ */
+ protected void addSemanticListeners() {
+ if (getParser() instanceof ISemanticParser) {
+ EObject element = resolveSemanticElement();
+ parserElements = ((ISemanticParser) getParser())
+ .getSemanticElementsBeingParsed(element);
+ for (int i = 0; i < parserElements.size(); i++) {
+ addListenerFilter(
+ "SemanticModel" + i, this, (EObject) parserElements.get(i)); //$NON-NLS-1$
+ }
+ } else {
+ super.addSemanticListeners();
+ }
+ }
+
+ /**
+ * @generated
+ */
+ protected void removeSemanticListeners() {
+ if (parserElements != null) {
+ for (int i = 0; i < parserElements.size(); i++) {
+ removeListenerFilter("SemanticModel" + i); //$NON-NLS-1$
+ }
+ } else {
+ super.removeSemanticListeners();
+ }
+ }
+
+ /**
+ * @generated
+ */
+ protected AccessibleEditPart getAccessibleEditPart() {
+ if (accessibleEP == null) {
+ accessibleEP = new AccessibleGraphicalEditPart() {
+
+ public void getName(AccessibleEvent e) {
+ e.result = getLabelTextHelper(getFigure());
+ }
+ };
+ }
+ return accessibleEP;
+ }
+
+ /**
+ * @generated
+ */
+ private View getFontStyleOwnerView() {
+ return getPrimaryView();
+ }
+
+ /**
+ * @generated
+ */
+ protected void addNotationalListeners() {
+ super.addNotationalListeners();
+ addListenerFilter("PrimaryView", this, getPrimaryView()); //$NON-NLS-1$
+ }
+
+ /**
+ * @generated
+ */
+ protected void removeNotationalListeners() {
+ super.removeNotationalListeners();
+ removeListenerFilter("PrimaryView"); //$NON-NLS-1$
+ }
+
+ /**
+ * @generated
+ */
+ protected void handleNotificationEvent(Notification event) {
+ Object feature = event.getFeature();
+ if (NotationPackage.eINSTANCE.getFontStyle_FontColor().equals(feature)) {
+ Integer c = (Integer) event.getNewValue();
+ setFontColor(DiagramColorRegistry.getInstance().getColor(c));
+ } else if (NotationPackage.eINSTANCE.getFontStyle_Underline().equals(
+ feature)) {
+ refreshUnderline();
+ } else if (NotationPackage.eINSTANCE.getFontStyle_StrikeThrough()
+ .equals(feature)) {
+ refreshStrikeThrough();
+ } else if (NotationPackage.eINSTANCE.getFontStyle_FontHeight().equals(
+ feature)
+ || NotationPackage.eINSTANCE.getFontStyle_FontName().equals(
+ feature)
+ || NotationPackage.eINSTANCE.getFontStyle_Bold()
+ .equals(feature)
+ || NotationPackage.eINSTANCE.getFontStyle_Italic().equals(
+ feature)) {
+ refreshFont();
+ } else {
+ if (getParser() != null
+ && getParser().isAffectingEvent(event,
+ getParserOptions().intValue())) {
+ refreshLabel();
+ }
+ if (getParser() instanceof ISemanticParser) {
+ ISemanticParser modelParser = (ISemanticParser) getParser();
+ if (modelParser.areSemanticElementsAffected(null, event)) {
+ removeSemanticListeners();
+ if (resolveSemanticElement() != null) {
+ addSemanticListeners();
+ }
+ refreshLabel();
+ }
+ }
+ }
+ super.handleNotificationEvent(event);
+ }
+
+ /**
+ * @generated
+ */
+ protected IFigure createFigure() {
+ // Parent should assign one using setLabel() method
+ return null;
+ }
+
+}
diff --git a/org.eclipse.emf.refactor.comrel.diagram/src/comrel/diagram/edit/parts/MultiFilterUnitNameType3EditPart.java b/org.eclipse.emf.refactor.comrel.diagram/src/comrel/diagram/edit/parts/MultiFilterUnitNameType3EditPart.java
new file mode 100644
index 0000000..f7a21c3
--- /dev/null
+++ b/org.eclipse.emf.refactor.comrel.diagram/src/comrel/diagram/edit/parts/MultiFilterUnitNameType3EditPart.java
@@ -0,0 +1,576 @@
+/*
+ *
+ */
+package comrel.diagram.edit.parts;
+
+import java.util.Collections;
+import java.util.List;
+
+import org.eclipse.draw2d.IFigure;
+import org.eclipse.draw2d.Label;
+import org.eclipse.draw2d.geometry.Point;
+import org.eclipse.emf.common.notify.Notification;
+import org.eclipse.emf.ecore.EObject;
+import org.eclipse.emf.transaction.RunnableWithResult;
+import org.eclipse.gef.AccessibleEditPart;
+import org.eclipse.gef.EditPolicy;
+import org.eclipse.gef.Request;
+import org.eclipse.gef.requests.DirectEditRequest;
+import org.eclipse.gef.tools.DirectEditManager;
+import org.eclipse.gmf.runtime.common.ui.services.parser.IParser;
+import org.eclipse.gmf.runtime.common.ui.services.parser.IParserEditStatus;
+import org.eclipse.gmf.runtime.common.ui.services.parser.ParserEditStatus;
+import org.eclipse.gmf.runtime.common.ui.services.parser.ParserOptions;
+import org.eclipse.gmf.runtime.diagram.ui.editparts.CompartmentEditPart;
+import org.eclipse.gmf.runtime.diagram.ui.editparts.IGraphicalEditPart;
+import org.eclipse.gmf.runtime.diagram.ui.editparts.ITextAwareEditPart;
+import org.eclipse.gmf.runtime.diagram.ui.editpolicies.LabelDirectEditPolicy;
+import org.eclipse.gmf.runtime.diagram.ui.l10n.DiagramColorRegistry;
+import org.eclipse.gmf.runtime.diagram.ui.requests.RequestConstants;
+import org.eclipse.gmf.runtime.diagram.ui.tools.TextDirectEditManager;
+import org.eclipse.gmf.runtime.draw2d.ui.figures.WrappingLabel;
+import org.eclipse.gmf.runtime.emf.core.util.EObjectAdapter;
+import org.eclipse.gmf.runtime.emf.ui.services.parser.ISemanticParser;
+import org.eclipse.gmf.runtime.notation.FontStyle;
+import org.eclipse.gmf.runtime.notation.NotationPackage;
+import org.eclipse.gmf.runtime.notation.View;
+import org.eclipse.jface.text.contentassist.IContentAssistProcessor;
+import org.eclipse.jface.viewers.ICellEditorValidator;
+import org.eclipse.swt.SWT;
+import org.eclipse.swt.accessibility.AccessibleEvent;
+import org.eclipse.swt.graphics.Color;
+import org.eclipse.swt.graphics.FontData;
+import org.eclipse.swt.graphics.Image;
+
+import comrel.diagram.edit.policies.ComrelTextSelectionEditPolicy;
+import comrel.diagram.part.ComrelVisualIDRegistry;
+import comrel.diagram.providers.ComrelElementTypes;
+import comrel.diagram.providers.ComrelParserProvider;
+
+/**
+ * @generated
+ */
+public class MultiFilterUnitNameType3EditPart extends CompartmentEditPart
+ implements ITextAwareEditPart {
+
+ /**
+ * @generated
+ */
+ public static final int VISUAL_ID = 5039;
+
+ /**
+ * @generated
+ */
+ private DirectEditManager manager;
+
+ /**
+ * @generated
+ */
+ private IParser parser;
+
+ /**
+ * @generated
+ */
+ private List<?> parserElements;
+
+ /**
+ * @generated
+ */
+ private String defaultText;
+
+ /**
+ * @generated
+ */
+ public MultiFilterUnitNameType3EditPart(View view) {
+ super(view);
+ }
+
+ /**
+ * @generated
+ */
+ protected void createDefaultEditPolicies() {
+ super.createDefaultEditPolicies();
+ installEditPolicy(EditPolicy.SELECTION_FEEDBACK_ROLE,
+ new ComrelTextSelectionEditPolicy());
+ installEditPolicy(EditPolicy.DIRECT_EDIT_ROLE,
+ new LabelDirectEditPolicy());
+ installEditPolicy(EditPolicy.PRIMARY_DRAG_ROLE,
+ new CompositeRefactoringEditPart.NodeLabelDragPolicy());
+ }
+
+ /**
+ * @generated
+ */
+ protected String getLabelTextHelper(IFigure figure) {
+ if (figure instanceof WrappingLabel) {
+ return ((WrappingLabel) figure).getText();
+ } else {
+ return ((Label) figure).getText();
+ }
+ }
+
+ /**
+ * @generated
+ */
+ protected void setLabelTextHelper(IFigure figure, String text) {
+ if (figure instanceof WrappingLabel) {
+ ((WrappingLabel) figure).setText(text);
+ } else {
+ ((Label) figure).setText(text);
+ }
+ }
+
+ /**
+ * @generated
+ */
+ protected Image getLabelIconHelper(IFigure figure) {
+ if (figure instanceof WrappingLabel) {
+ return ((WrappingLabel) figure).getIcon();
+ } else {
+ return ((Label) figure).getIcon();
+ }
+ }
+
+ /**
+ * @generated
+ */
+ protected void setLabelIconHelper(IFigure figure, Image icon) {
+ if (figure instanceof WrappingLabel) {
+ ((WrappingLabel) figure).setIcon(icon);
+ } else {
+ ((Label) figure).setIcon(icon);
+ }
+ }
+
+ /**
+ * @generated
+ */
+ public void setLabel(WrappingLabel figure) {
+ unregisterVisuals();
+ setFigure(figure);
+ defaultText = getLabelTextHelper(figure);
+ registerVisuals();
+ refreshVisuals();
+ }
+
+ /**
+ * @generated
+ */
+ @SuppressWarnings("rawtypes")
+ protected List getModelChildren() {
+ return Collections.EMPTY_LIST;
+ }
+
+ /**
+ * @generated
+ */
+ public IGraphicalEditPart getChildBySemanticHint(String semanticHint) {
+ return null;
+ }
+
+ /**
+ * @generated
+ */
+ protected EObject getParserElement() {
+ return resolveSemanticElement();
+ }
+
+ /**
+ * @generated
+ */
+ protected Image getLabelIcon() {
+ return null;
+ }
+
+ /**
+ * @generated
+ */
+ protected String getLabelText() {
+ String text = null;
+ EObject parserElement = getParserElement();
+ if (parserElement != null && getParser() != null) {
+ text = getParser().getPrintString(
+ new EObjectAdapter(parserElement),
+ getParserOptions().intValue());
+ }
+ if (text == null || text.length() == 0) {
+ text = defaultText;
+ }
+ return text;
+ }
+
+ /**
+ * @generated
+ */
+ public void setLabelText(String text) {
+ setLabelTextHelper(getFigure(), text);
+ Object pdEditPolicy = getEditPolicy(EditPolicy.PRIMARY_DRAG_ROLE);
+ if (pdEditPolicy instanceof ComrelTextSelectionEditPolicy) {
+ ((ComrelTextSelectionEditPolicy) pdEditPolicy).refreshFeedback();
+ }
+ Object sfEditPolicy = getEditPolicy(EditPolicy.SELECTION_FEEDBACK_ROLE);
+ if (sfEditPolicy instanceof ComrelTextSelectionEditPolicy) {
+ ((ComrelTextSelectionEditPolicy) sfEditPolicy).refreshFeedback();
+ }
+ }
+
+ /**
+ * @generated
+ */
+ public String getEditText() {
+ if (getParserElement() == null || getParser() == null) {
+ return ""; //$NON-NLS-1$
+ }
+ return getParser().getEditString(
+ new EObjectAdapter(getParserElement()),
+ getParserOptions().intValue());
+ }
+
+ /**
+ * @generated
+ */
+ protected boolean isEditable() {
+ return getParser() != null;
+ }
+
+ /**
+ * @generated
+ */
+ public ICellEditorValidator getEditTextValidator() {
+ return new ICellEditorValidator() {
+
+ public String isValid(final Object value) {
+ if (value instanceof String) {
+ final EObject element = getParserElement();
+ final IParser parser = getParser();
+ try {
+ IParserEditStatus valid = (IParserEditStatus) getEditingDomain()
+ .runExclusive(
+ new RunnableWithResult.Impl<IParserEditStatus>() {
+
+ public void run() {
+ setResult(parser
+ .isValidEditString(
+ new EObjectAdapter(
+ element),
+ (String) value));
+ }
+ });
+ return valid.getCode() == ParserEditStatus.EDITABLE ? null
+ : valid.getMessage();
+ } catch (InterruptedException ie) {
+ ie.printStackTrace();
+ }
+ }
+
+ // shouldn't get here
+ return null;
+ }
+ };
+ }
+
+ /**
+ * @generated
+ */
+ public IContentAssistProcessor getCompletionProcessor() {
+ if (getParserElement() == null || getParser() == null) {
+ return null;
+ }
+ return getParser().getCompletionProcessor(
+ new EObjectAdapter(getParserElement()));
+ }
+
+ /**
+ * @generated
+ */
+ public ParserOptions getParserOptions() {
+ return ParserOptions.NONE;
+ }
+
+ /**
+ * @generated
+ */
+ public IParser getParser() {
+ if (parser == null) {
+ parser = ComrelParserProvider
+ .getParser(
+ ComrelElementTypes.MultiFilterUnit_3053,
+ getParserElement(),
+ ComrelVisualIDRegistry
+ .getType(comrel.diagram.edit.parts.MultiFilterUnitNameType3EditPart.VISUAL_ID));
+ }
+ return parser;
+ }
+
+ /**
+ * @generated
+ */
+ protected DirectEditManager getManager() {
+ if (manager == null) {
+ setManager(new TextDirectEditManager(this,
+ TextDirectEditManager.getTextCellEditorClass(this),
+ ComrelEditPartFactory.getTextCellEditorLocator(this)));
+ }
+ return manager;
+ }
+
+ /**
+ * @generated
+ */
+ protected void setManager(DirectEditManager manager) {
+ this.manager = manager;
+ }
+
+ /**
+ * @generated
+ */
+ protected void performDirectEdit() {
+ getManager().show();
+ }
+
+ /**
+ * @generated
+ */
+ protected void performDirectEdit(Point eventLocation) {
+ if (getManager().getClass() == TextDirectEditManager.class) {
+ ((TextDirectEditManager) getManager()).show(eventLocation
+ .getSWTPoint());
+ }
+ }
+
+ /**
+ * @generated
+ */
+ private void performDirectEdit(char initialCharacter) {
+ if (getManager() instanceof TextDirectEditManager) {
+ ((TextDirectEditManager) getManager()).show(initialCharacter);
+ } else {
+ performDirectEdit();
+ }
+ }
+
+ /**
+ * @generated
+ */
+ protected void performDirectEditRequest(Request request) {
+ final Request theRequest = request;
+ try {
+ getEditingDomain().runExclusive(new Runnable() {
+
+ public void run() {
+ if (isActive() && isEditable()) {
+ if (theRequest
+ .getExtendedData()
+ .get(RequestConstants.REQ_DIRECTEDIT_EXTENDEDDATA_INITIAL_CHAR) instanceof Character) {
+ Character initialChar = (Character) theRequest
+ .getExtendedData()
+ .get(RequestConstants.REQ_DIRECTEDIT_EXTENDEDDATA_INITIAL_CHAR);
+ performDirectEdit(initialChar.charValue());
+ } else if ((theRequest instanceof DirectEditRequest)
+ && (getEditText().equals(getLabelText()))) {
+ DirectEditRequest editRequest = (DirectEditRequest) theRequest;
+ performDirectEdit(editRequest.getLocation());
+ } else {
+ performDirectEdit();
+ }
+ }
+ }
+ });
+ } catch (InterruptedException e) {
+ e.printStackTrace();
+ }
+ }
+
+ /**
+ * @generated
+ */
+ protected void refreshVisuals() {
+ super.refreshVisuals();
+ refreshLabel();
+ refreshFont();
+ refreshFontColor();
+ refreshUnderline();
+ refreshStrikeThrough();
+ }
+
+ /**
+ * @generated
+ */
+ protected void refreshLabel() {
+ setLabelTextHelper(getFigure(), getLabelText());
+ setLabelIconHelper(getFigure(), getLabelIcon());
+ Object pdEditPolicy = getEditPolicy(EditPolicy.PRIMARY_DRAG_ROLE);
+ if (pdEditPolicy instanceof ComrelTextSelectionEditPolicy) {
+ ((ComrelTextSelectionEditPolicy) pdEditPolicy).refreshFeedback();
+ }
+ Object sfEditPolicy = getEditPolicy(EditPolicy.SELECTION_FEEDBACK_ROLE);
+ if (sfEditPolicy instanceof ComrelTextSelectionEditPolicy) {
+ ((ComrelTextSelectionEditPolicy) sfEditPolicy).refreshFeedback();
+ }
+ }
+
+ /**
+ * @generated
+ */
+ protected void refreshUnderline() {
+ FontStyle style = (FontStyle) getFontStyleOwnerView().getStyle(
+ NotationPackage.eINSTANCE.getFontStyle());
+ if (style != null && getFigure() instanceof WrappingLabel) {
+ ((WrappingLabel) getFigure()).setTextUnderline(style.isUnderline());
+ }
+ }
+
+ /**
+ * @generated
+ */
+ protected void refreshStrikeThrough() {
+ FontStyle style = (FontStyle) getFontStyleOwnerView().getStyle(
+ NotationPackage.eINSTANCE.getFontStyle());
+ if (style != null && getFigure() instanceof WrappingLabel) {
+ ((WrappingLabel) getFigure()).setTextStrikeThrough(style
+ .isStrikeThrough());
+ }
+ }
+
+ /**
+ * @generated
+ */
+ protected void refreshFont() {
+ FontStyle style = (FontStyle) getFontStyleOwnerView().getStyle(
+ NotationPackage.eINSTANCE.getFontStyle());
+ if (style != null) {
+ FontData fontData = new FontData(style.getFontName(),
+ style.getFontHeight(), (style.isBold() ? SWT.BOLD
+ : SWT.NORMAL)
+ | (style.isItalic() ? SWT.ITALIC : SWT.NORMAL));
+ setFont(fontData);
+ }
+ }
+
+ /**
+ * @generated
+ */
+ protected void setFontColor(Color color) {
+ getFigure().setForegroundColor(color);
+ }
+
+ /**
+ * @generated
+ */
+ protected void addSemanticListeners() {
+ if (getParser() instanceof ISemanticParser) {
+ EObject element = resolveSemanticElement();
+ parserElements = ((ISemanticParser) getParser())
+ .getSemanticElementsBeingParsed(element);
+ for (int i = 0; i < parserElements.size(); i++) {
+ addListenerFilter(
+ "SemanticModel" + i, this, (EObject) parserElements.get(i)); //$NON-NLS-1$
+ }
+ } else {
+ super.addSemanticListeners();
+ }
+ }
+
+ /**
+ * @generated
+ */
+ protected void removeSemanticListeners() {
+ if (parserElements != null) {
+ for (int i = 0; i < parserElements.size(); i++) {
+ removeListenerFilter("SemanticModel" + i); //$NON-NLS-1$
+ }
+ } else {
+ super.removeSemanticListeners();
+ }
+ }
+
+ /**
+ * @generated
+ */
+ protected AccessibleEditPart getAccessibleEditPart() {
+ if (accessibleEP == null) {
+ accessibleEP = new AccessibleGraphicalEditPart() {
+
+ public void getName(AccessibleEvent e) {
+ e.result = getLabelTextHelper(getFigure());
+ }
+ };
+ }
+ return accessibleEP;
+ }
+
+ /**
+ * @generated
+ */
+ private View getFontStyleOwnerView() {
+ return getPrimaryView();
+ }
+
+ /**
+ * @generated
+ */
+ protected void addNotationalListeners() {
+ super.addNotationalListeners();
+ addListenerFilter("PrimaryView", this, getPrimaryView()); //$NON-NLS-1$
+ }
+
+ /**
+ * @generated
+ */
+ protected void removeNotationalListeners() {
+ super.removeNotationalListeners();
+ removeListenerFilter("PrimaryView"); //$NON-NLS-1$
+ }
+
+ /**
+ * @generated
+ */
+ protected void handleNotificationEvent(Notification event) {
+ Object feature = event.getFeature();
+ if (NotationPackage.eINSTANCE.getFontStyle_FontColor().equals(feature)) {
+ Integer c = (Integer) event.getNewValue();
+ setFontColor(DiagramColorRegistry.getInstance().getColor(c));
+ } else if (NotationPackage.eINSTANCE.getFontStyle_Underline().equals(
+ feature)) {
+ refreshUnderline();
+ } else if (NotationPackage.eINSTANCE.getFontStyle_StrikeThrough()
+ .equals(feature)) {
+ refreshStrikeThrough();
+ } else if (NotationPackage.eINSTANCE.getFontStyle_FontHeight().equals(
+ feature)
+ || NotationPackage.eINSTANCE.getFontStyle_FontName().equals(
+ feature)
+ || NotationPackage.eINSTANCE.getFontStyle_Bold()
+ .equals(feature)
+ || NotationPackage.eINSTANCE.getFontStyle_Italic().equals(
+ feature)) {
+ refreshFont();
+ } else {
+ if (getParser() != null
+ && getParser().isAffectingEvent(event,
+ getParserOptions().intValue())) {
+ refreshLabel();
+ }
+ if (getParser() instanceof ISemanticParser) {
+ ISemanticParser modelParser = (ISemanticParser) getParser();
+ if (modelParser.areSemanticElementsAffected(null, event)) {
+ removeSemanticListeners();
+ if (resolveSemanticElement() != null) {
+ addSemanticListeners();
+ }
+ refreshLabel();
+ }
+ }
+ }
+ super.handleNotificationEvent(event);
+ }
+
+ /**
+ * @generated
+ */
+ protected IFigure createFigure() {
+ // Parent should assign one using setLabel() method
+ return null;
+ }
+
+}
diff --git a/org.eclipse.emf.refactor.comrel.diagram/src/comrel/diagram/edit/parts/MultiFilterUnitNameType4EditPart.java b/org.eclipse.emf.refactor.comrel.diagram/src/comrel/diagram/edit/parts/MultiFilterUnitNameType4EditPart.java
new file mode 100644
index 0000000..0113c8f
--- /dev/null
+++ b/org.eclipse.emf.refactor.comrel.diagram/src/comrel/diagram/edit/parts/MultiFilterUnitNameType4EditPart.java
@@ -0,0 +1,576 @@
+/*
+ *
+ */
+package comrel.diagram.edit.parts;
+
+import java.util.Collections;
+import java.util.List;
+
+import org.eclipse.draw2d.IFigure;
+import org.eclipse.draw2d.Label;
+import org.eclipse.draw2d.geometry.Point;
+import org.eclipse.emf.common.notify.Notification;
+import org.eclipse.emf.ecore.EObject;
+import org.eclipse.emf.transaction.RunnableWithResult;
+import org.eclipse.gef.AccessibleEditPart;
+import org.eclipse.gef.EditPolicy;
+import org.eclipse.gef.Request;
+import org.eclipse.gef.requests.DirectEditRequest;
+import org.eclipse.gef.tools.DirectEditManager;
+import org.eclipse.gmf.runtime.common.ui.services.parser.IParser;
+import org.eclipse.gmf.runtime.common.ui.services.parser.IParserEditStatus;
+import org.eclipse.gmf.runtime.common.ui.services.parser.ParserEditStatus;
+import org.eclipse.gmf.runtime.common.ui.services.parser.ParserOptions;
+import org.eclipse.gmf.runtime.diagram.ui.editparts.CompartmentEditPart;
+import org.eclipse.gmf.runtime.diagram.ui.editparts.IGraphicalEditPart;
+import org.eclipse.gmf.runtime.diagram.ui.editparts.ITextAwareEditPart;
+import org.eclipse.gmf.runtime.diagram.ui.editpolicies.LabelDirectEditPolicy;
+import org.eclipse.gmf.runtime.diagram.ui.l10n.DiagramColorRegistry;
+import org.eclipse.gmf.runtime.diagram.ui.requests.RequestConstants;
+import org.eclipse.gmf.runtime.diagram.ui.tools.TextDirectEditManager;
+import org.eclipse.gmf.runtime.draw2d.ui.figures.WrappingLabel;
+import org.eclipse.gmf.runtime.emf.core.util.EObjectAdapter;
+import org.eclipse.gmf.runtime.emf.ui.services.parser.ISemanticParser;
+import org.eclipse.gmf.runtime.notation.FontStyle;
+import org.eclipse.gmf.runtime.notation.NotationPackage;
+import org.eclipse.gmf.runtime.notation.View;
+import org.eclipse.jface.text.contentassist.IContentAssistProcessor;
+import org.eclipse.jface.viewers.ICellEditorValidator;
+import org.eclipse.swt.SWT;
+import org.eclipse.swt.accessibility.AccessibleEvent;
+import org.eclipse.swt.graphics.Color;
+import org.eclipse.swt.graphics.FontData;
+import org.eclipse.swt.graphics.Image;
+
+import comrel.diagram.edit.policies.ComrelTextSelectionEditPolicy;
+import comrel.diagram.part.ComrelVisualIDRegistry;
+import comrel.diagram.providers.ComrelElementTypes;
+import comrel.diagram.providers.ComrelParserProvider;
+
+/**
+ * @generated
+ */
+public class MultiFilterUnitNameType4EditPart extends CompartmentEditPart
+ implements ITextAwareEditPart {
+
+ /**
+ * @generated
+ */
+ public static final int VISUAL_ID = 5043;
+
+ /**
+ * @generated
+ */
+ private DirectEditManager manager;
+
+ /**
+ * @generated
+ */
+ private IParser parser;
+
+ /**
+ * @generated
+ */
+ private List<?> parserElements;
+
+ /**
+ * @generated
+ */
+ private String defaultText;
+
+ /**
+ * @generated
+ */
+ public MultiFilterUnitNameType4EditPart(View view) {
+ super(view);
+ }
+
+ /**
+ * @generated
+ */
+ protected void createDefaultEditPolicies() {
+ super.createDefaultEditPolicies();
+ installEditPolicy(EditPolicy.SELECTION_FEEDBACK_ROLE,
+ new ComrelTextSelectionEditPolicy());
+ installEditPolicy(EditPolicy.DIRECT_EDIT_ROLE,
+ new LabelDirectEditPolicy());
+ installEditPolicy(EditPolicy.PRIMARY_DRAG_ROLE,
+ new CompositeRefactoringEditPart.NodeLabelDragPolicy());
+ }
+
+ /**
+ * @generated
+ */
+ protected String getLabelTextHelper(IFigure figure) {
+ if (figure instanceof WrappingLabel) {
+ return ((WrappingLabel) figure).getText();
+ } else {
+ return ((Label) figure).getText();
+ }
+ }
+
+ /**
+ * @generated
+ */
+ protected void setLabelTextHelper(IFigure figure, String text) {
+ if (figure instanceof WrappingLabel) {
+ ((WrappingLabel) figure).setText(text);
+ } else {
+ ((Label) figure).setText(text);
+ }
+ }
+
+ /**
+ * @generated
+ */
+ protected Image getLabelIconHelper(IFigure figure) {
+ if (figure instanceof WrappingLabel) {
+ return ((WrappingLabel) figure).getIcon();
+ } else {
+ return ((Label) figure).getIcon();
+ }
+ }
+
+ /**
+ * @generated
+ */
+ protected void setLabelIconHelper(IFigure figure, Image icon) {
+ if (figure instanceof WrappingLabel) {
+ ((WrappingLabel) figure).setIcon(icon);
+ } else {
+ ((Label) figure).setIcon(icon);
+ }
+ }
+
+ /**
+ * @generated
+ */
+ public void setLabel(WrappingLabel figure) {
+ unregisterVisuals();
+ setFigure(figure);
+ defaultText = getLabelTextHelper(figure);
+ registerVisuals();
+ refreshVisuals();
+ }
+
+ /**
+ * @generated
+ */
+ @SuppressWarnings("rawtypes")
+ protected List getModelChildren() {
+ return Collections.EMPTY_LIST;
+ }
+
+ /**
+ * @generated
+ */
+ public IGraphicalEditPart getChildBySemanticHint(String semanticHint) {
+ return null;
+ }
+
+ /**
+ * @generated
+ */
+ protected EObject getParserElement() {
+ return resolveSemanticElement();
+ }
+
+ /**
+ * @generated
+ */
+ protected Image getLabelIcon() {
+ return null;
+ }
+
+ /**
+ * @generated
+ */
+ protected String getLabelText() {
+ String text = null;
+ EObject parserElement = getParserElement();
+ if (parserElement != null && getParser() != null) {
+ text = getParser().getPrintString(
+ new EObjectAdapter(parserElement),
+ getParserOptions().intValue());
+ }
+ if (text == null || text.length() == 0) {
+ text = defaultText;
+ }
+ return text;
+ }
+
+ /**
+ * @generated
+ */
+ public void setLabelText(String text) {
+ setLabelTextHelper(getFigure(), text);
+ Object pdEditPolicy = getEditPolicy(EditPolicy.PRIMARY_DRAG_ROLE);
+ if (pdEditPolicy instanceof ComrelTextSelectionEditPolicy) {
+ ((ComrelTextSelectionEditPolicy) pdEditPolicy).refreshFeedback();
+ }
+ Object sfEditPolicy = getEditPolicy(EditPolicy.SELECTION_FEEDBACK_ROLE);
+ if (sfEditPolicy instanceof ComrelTextSelectionEditPolicy) {
+ ((ComrelTextSelectionEditPolicy) sfEditPolicy).refreshFeedback();
+ }
+ }
+
+ /**
+ * @generated
+ */
+ public String getEditText() {
+ if (getParserElement() == null || getParser() == null) {
+ return ""; //$NON-NLS-1$
+ }
+ return getParser().getEditString(
+ new EObjectAdapter(getParserElement()),
+ getParserOptions().intValue());
+ }
+
+ /**
+ * @generated
+ */
+ protected boolean isEditable() {
+ return getParser() != null;
+ }
+
+ /**
+ * @generated
+ */
+ public ICellEditorValidator getEditTextValidator() {
+ return new ICellEditorValidator() {
+
+ public String isValid(final Object value) {
+ if (value instanceof String) {
+ final EObject element = getParserElement();
+ final IParser parser = getParser();
+ try {
+ IParserEditStatus valid = (IParserEditStatus) getEditingDomain()
+ .runExclusive(
+ new RunnableWithResult.Impl<IParserEditStatus>() {
+
+ public void run() {
+ setResult(parser
+ .isValidEditString(
+ new EObjectAdapter(
+ element),
+ (String) value));
+ }
+ });
+ return valid.getCode() == ParserEditStatus.EDITABLE ? null
+ : valid.getMessage();
+ } catch (InterruptedException ie) {
+ ie.printStackTrace();
+ }
+ }
+
+ // shouldn't get here
+ return null;
+ }
+ };
+ }
+
+ /**
+ * @generated
+ */
+ public IContentAssistProcessor getCompletionProcessor() {
+ if (getParserElement() == null || getParser() == null) {
+ return null;
+ }
+ return getParser().getCompletionProcessor(
+ new EObjectAdapter(getParserElement()));
+ }
+
+ /**
+ * @generated
+ */
+ public ParserOptions getParserOptions() {
+ return ParserOptions.NONE;
+ }
+
+ /**
+ * @generated
+ */
+ public IParser getParser() {
+ if (parser == null) {
+ parser = ComrelParserProvider
+ .getParser(
+ ComrelElementTypes.MultiFilterUnit_3058,
+ getParserElement(),
+ ComrelVisualIDRegistry
+ .getType(comrel.diagram.edit.parts.MultiFilterUnitNameType4EditPart.VISUAL_ID));
+ }
+ return parser;
+ }
+
+ /**
+ * @generated
+ */
+ protected DirectEditManager getManager() {
+ if (manager == null) {
+ setManager(new TextDirectEditManager(this,
+ TextDirectEditManager.getTextCellEditorClass(this),
+ ComrelEditPartFactory.getTextCellEditorLocator(this)));
+ }
+ return manager;
+ }
+
+ /**
+ * @generated
+ */
+ protected void setManager(DirectEditManager manager) {
+ this.manager = manager;
+ }
+
+ /**
+ * @generated
+ */
+ protected void performDirectEdit() {
+ getManager().show();
+ }
+
+ /**
+ * @generated
+ */
+ protected void performDirectEdit(Point eventLocation) {
+ if (getManager().getClass() == TextDirectEditManager.class) {
+ ((TextDirectEditManager) getManager()).show(eventLocation
+ .getSWTPoint());
+ }
+ }
+
+ /**
+ * @generated
+ */
+ private void performDirectEdit(char initialCharacter) {
+ if (getManager() instanceof TextDirectEditManager) {
+ ((TextDirectEditManager) getManager()).show(initialCharacter);
+ } else {
+ performDirectEdit();
+ }
+ }
+
+ /**
+ * @generated
+ */
+ protected void performDirectEditRequest(Request request) {
+ final Request theRequest = request;
+ try {
+ getEditingDomain().runExclusive(new Runnable() {
+
+ public void run() {
+ if (isActive() && isEditable()) {
+ if (theRequest
+ .getExtendedData()
+ .get(RequestConstants.REQ_DIRECTEDIT_EXTENDEDDATA_INITIAL_CHAR) instanceof Character) {
+ Character initialChar = (Character) theRequest
+ .getExtendedData()
+ .get(RequestConstants.REQ_DIRECTEDIT_EXTENDEDDATA_INITIAL_CHAR);
+ performDirectEdit(initialChar.charValue());
+ } else if ((theRequest instanceof DirectEditRequest)
+ && (getEditText().equals(getLabelText()))) {
+ DirectEditRequest editRequest = (DirectEditRequest) theRequest;
+ performDirectEdit(editRequest.getLocation());
+ } else {
+ performDirectEdit();
+ }
+ }
+ }
+ });
+ } catch (InterruptedException e) {
+ e.printStackTrace();
+ }
+ }
+
+ /**
+ * @generated
+ */
+ protected void refreshVisuals() {
+ super.refreshVisuals();
+ refreshLabel();
+ refreshFont();
+ refreshFontColor();
+ refreshUnderline();
+ refreshStrikeThrough();
+ }
+
+ /**
+ * @generated
+ */
+ protected void refreshLabel() {
+ setLabelTextHelper(getFigure(), getLabelText());
+ setLabelIconHelper(getFigure(), getLabelIcon());
+ Object pdEditPolicy = getEditPolicy(EditPolicy.PRIMARY_DRAG_ROLE);
+ if (pdEditPolicy instanceof ComrelTextSelectionEditPolicy) {
+ ((ComrelTextSelectionEditPolicy) pdEditPolicy).refreshFeedback();
+ }
+ Object sfEditPolicy = getEditPolicy(EditPolicy.SELECTION_FEEDBACK_ROLE);
+ if (sfEditPolicy instanceof ComrelTextSelectionEditPolicy) {
+ ((ComrelTextSelectionEditPolicy) sfEditPolicy).refreshFeedback();
+ }
+ }
+
+ /**
+ * @generated
+ */
+ protected void refreshUnderline() {
+ FontStyle style = (FontStyle) getFontStyleOwnerView().getStyle(
+ NotationPackage.eINSTANCE.getFontStyle());
+ if (style != null && getFigure() instanceof WrappingLabel) {
+ ((WrappingLabel) getFigure()).setTextUnderline(style.isUnderline());
+ }
+ }
+
+ /**
+ * @generated
+ */
+ protected void refreshStrikeThrough() {
+ FontStyle style = (FontStyle) getFontStyleOwnerView().getStyle(
+ NotationPackage.eINSTANCE.getFontStyle());
+ if (style != null && getFigure() instanceof WrappingLabel) {
+ ((WrappingLabel) getFigure()).setTextStrikeThrough(style
+ .isStrikeThrough());
+ }
+ }
+
+ /**
+ * @generated
+ */
+ protected void refreshFont() {
+ FontStyle style = (FontStyle) getFontStyleOwnerView().getStyle(
+ NotationPackage.eINSTANCE.getFontStyle());
+ if (style != null) {
+ FontData fontData = new FontData(style.getFontName(),
+ style.getFontHeight(), (style.isBold() ? SWT.BOLD
+ : SWT.NORMAL)
+ | (style.isItalic() ? SWT.ITALIC : SWT.NORMAL));
+ setFont(fontData);
+ }
+ }
+
+ /**
+ * @generated
+ */
+ protected void setFontColor(Color color) {
+ getFigure().setForegroundColor(color);
+ }
+
+ /**
+ * @generated
+ */
+ protected void addSemanticListeners() {
+ if (getParser() instanceof ISemanticParser) {
+ EObject element = resolveSemanticElement();
+ parserElements = ((ISemanticParser) getParser())
+ .getSemanticElementsBeingParsed(element);
+ for (int i = 0; i < parserElements.size(); i++) {
+ addListenerFilter(
+ "SemanticModel" + i, this, (EObject) parserElements.get(i)); //$NON-NLS-1$
+ }
+ } else {
+ super.addSemanticListeners();
+ }
+ }
+
+ /**
+ * @generated
+ */
+ protected void removeSemanticListeners() {
+ if (parserElements != null) {
+ for (int i = 0; i < parserElements.size(); i++) {
+ removeListenerFilter("SemanticModel" + i); //$NON-NLS-1$
+ }
+ } else {
+ super.removeSemanticListeners();
+ }
+ }
+
+ /**
+ * @generated
+ */
+ protected AccessibleEditPart getAccessibleEditPart() {
+ if (accessibleEP == null) {
+ accessibleEP = new AccessibleGraphicalEditPart() {
+
+ public void getName(AccessibleEvent e) {
+ e.result = getLabelTextHelper(getFigure());
+ }
+ };
+ }
+ return accessibleEP;
+ }
+
+ /**
+ * @generated
+ */
+ private View getFontStyleOwnerView() {
+ return getPrimaryView();
+ }
+
+ /**
+ * @generated
+ */
+ protected void addNotationalListeners() {
+ super.addNotationalListeners();
+ addListenerFilter("PrimaryView", this, getPrimaryView()); //$NON-NLS-1$
+ }
+
+ /**
+ * @generated
+ */
+ protected void removeNotationalListeners() {
+ super.removeNotationalListeners();
+ removeListenerFilter("PrimaryView"); //$NON-NLS-1$
+ }
+
+ /**
+ * @generated
+ */
+ protected void handleNotificationEvent(Notification event) {
+ Object feature = event.getFeature();
+ if (NotationPackage.eINSTANCE.getFontStyle_FontColor().equals(feature)) {
+ Integer c = (Integer) event.getNewValue();
+ setFontColor(DiagramColorRegistry.getInstance().getColor(c));
+ } else if (NotationPackage.eINSTANCE.getFontStyle_Underline().equals(
+ feature)) {
+ refreshUnderline();
+ } else if (NotationPackage.eINSTANCE.getFontStyle_StrikeThrough()
+ .equals(feature)) {
+ refreshStrikeThrough();
+ } else if (NotationPackage.eINSTANCE.getFontStyle_FontHeight().equals(
+ feature)
+ || NotationPackage.eINSTANCE.getFontStyle_FontName().equals(
+ feature)
+ || NotationPackage.eINSTANCE.getFontStyle_Bold()
+ .equals(feature)
+ || NotationPackage.eINSTANCE.getFontStyle_Italic().equals(
+ feature)) {
+ refreshFont();
+ } else {
+ if (getParser() != null
+ && getParser().isAffectingEvent(event,
+ getParserOptions().intValue())) {
+ refreshLabel();
+ }
+ if (getParser() instanceof ISemanticParser) {
+ ISemanticParser modelParser = (ISemanticParser) getParser();
+ if (modelParser.areSemanticElementsAffected(null, event)) {
+ removeSemanticListeners();
+ if (resolveSemanticElement() != null) {
+ addSemanticListeners();
+ }
+ refreshLabel();
+ }
+ }
+ }
+ super.handleNotificationEvent(event);
+ }
+
+ /**
+ * @generated
+ */
+ protected IFigure createFigure() {
+ // Parent should assign one using setLabel() method
+ return null;
+ }
+
+}
diff --git a/org.eclipse.emf.refactor.comrel.diagram/src/comrel/diagram/edit/parts/MultiFilterUnitNameType5EditPart.java b/org.eclipse.emf.refactor.comrel.diagram/src/comrel/diagram/edit/parts/MultiFilterUnitNameType5EditPart.java
new file mode 100644
index 0000000..7e77a99
--- /dev/null
+++ b/org.eclipse.emf.refactor.comrel.diagram/src/comrel/diagram/edit/parts/MultiFilterUnitNameType5EditPart.java
@@ -0,0 +1,576 @@
+/*
+ *
+ */
+package comrel.diagram.edit.parts;
+
+import java.util.Collections;
+import java.util.List;
+
+import org.eclipse.draw2d.IFigure;
+import org.eclipse.draw2d.Label;
+import org.eclipse.draw2d.geometry.Point;
+import org.eclipse.emf.common.notify.Notification;
+import org.eclipse.emf.ecore.EObject;
+import org.eclipse.emf.transaction.RunnableWithResult;
+import org.eclipse.gef.AccessibleEditPart;
+import org.eclipse.gef.EditPolicy;
+import org.eclipse.gef.Request;
+import org.eclipse.gef.requests.DirectEditRequest;
+import org.eclipse.gef.tools.DirectEditManager;
+import org.eclipse.gmf.runtime.common.ui.services.parser.IParser;
+import org.eclipse.gmf.runtime.common.ui.services.parser.IParserEditStatus;
+import org.eclipse.gmf.runtime.common.ui.services.parser.ParserEditStatus;
+import org.eclipse.gmf.runtime.common.ui.services.parser.ParserOptions;
+import org.eclipse.gmf.runtime.diagram.ui.editparts.CompartmentEditPart;
+import org.eclipse.gmf.runtime.diagram.ui.editparts.IGraphicalEditPart;
+import org.eclipse.gmf.runtime.diagram.ui.editparts.ITextAwareEditPart;
+import org.eclipse.gmf.runtime.diagram.ui.editpolicies.LabelDirectEditPolicy;
+import org.eclipse.gmf.runtime.diagram.ui.l10n.DiagramColorRegistry;
+import org.eclipse.gmf.runtime.diagram.ui.requests.RequestConstants;
+import org.eclipse.gmf.runtime.diagram.ui.tools.TextDirectEditManager;
+import org.eclipse.gmf.runtime.draw2d.ui.figures.WrappingLabel;
+import org.eclipse.gmf.runtime.emf.core.util.EObjectAdapter;
+import org.eclipse.gmf.runtime.emf.ui.services.parser.ISemanticParser;
+import org.eclipse.gmf.runtime.notation.FontStyle;
+import org.eclipse.gmf.runtime.notation.NotationPackage;
+import org.eclipse.gmf.runtime.notation.View;
+import org.eclipse.jface.text.contentassist.IContentAssistProcessor;
+import org.eclipse.jface.viewers.ICellEditorValidator;
+import org.eclipse.swt.SWT;
+import org.eclipse.swt.accessibility.AccessibleEvent;
+import org.eclipse.swt.graphics.Color;
+import org.eclipse.swt.graphics.FontData;
+import org.eclipse.swt.graphics.Image;
+
+import comrel.diagram.edit.policies.ComrelTextSelectionEditPolicy;
+import comrel.diagram.part.ComrelVisualIDRegistry;
+import comrel.diagram.providers.ComrelElementTypes;
+import comrel.diagram.providers.ComrelParserProvider;
+
+/**
+ * @generated
+ */
+public class MultiFilterUnitNameType5EditPart extends CompartmentEditPart
+ implements ITextAwareEditPart {
+
+ /**
+ * @generated
+ */
+ public static final int VISUAL_ID = 5047;
+
+ /**
+ * @generated
+ */
+ private DirectEditManager manager;
+
+ /**
+ * @generated
+ */
+ private IParser parser;
+
+ /**
+ * @generated
+ */
+ private List<?> parserElements;
+
+ /**
+ * @generated
+ */
+ private String defaultText;
+
+ /**
+ * @generated
+ */
+ public MultiFilterUnitNameType5EditPart(View view) {
+ super(view);
+ }
+
+ /**
+ * @generated
+ */
+ protected void createDefaultEditPolicies() {
+ super.createDefaultEditPolicies();
+ installEditPolicy(EditPolicy.SELECTION_FEEDBACK_ROLE,
+ new ComrelTextSelectionEditPolicy());
+ installEditPolicy(EditPolicy.DIRECT_EDIT_ROLE,
+ new LabelDirectEditPolicy());
+ installEditPolicy(EditPolicy.PRIMARY_DRAG_ROLE,
+ new CompositeRefactoringEditPart.NodeLabelDragPolicy());
+ }
+
+ /**
+ * @generated
+ */
+ protected String getLabelTextHelper(IFigure figure) {
+ if (figure instanceof WrappingLabel) {
+ return ((WrappingLabel) figure).getText();
+ } else {
+ return ((Label) figure).getText();
+ }
+ }
+
+ /**
+ * @generated
+ */
+ protected void setLabelTextHelper(IFigure figure, String text) {
+ if (figure instanceof WrappingLabel) {
+ ((WrappingLabel) figure).setText(text);
+ } else {
+ ((Label) figure).setText(text);
+ }
+ }
+
+ /**
+ * @generated
+ */
+ protected Image getLabelIconHelper(IFigure figure) {
+ if (figure instanceof WrappingLabel) {
+ return ((WrappingLabel) figure).getIcon();
+ } else {
+ return ((Label) figure).getIcon();
+ }
+ }
+
+ /**
+ * @generated
+ */
+ protected void setLabelIconHelper(IFigure figure, Image icon) {
+ if (figure instanceof WrappingLabel) {
+ ((WrappingLabel) figure).setIcon(icon);
+ } else {
+ ((Label) figure).setIcon(icon);
+ }
+ }
+
+ /**
+ * @generated
+ */
+ public void setLabel(WrappingLabel figure) {
+ unregisterVisuals();
+ setFigure(figure);
+ defaultText = getLabelTextHelper(figure);
+ registerVisuals();
+ refreshVisuals();
+ }
+
+ /**
+ * @generated
+ */
+ @SuppressWarnings("rawtypes")
+ protected List getModelChildren() {
+ return Collections.EMPTY_LIST;
+ }
+
+ /**
+ * @generated
+ */
+ public IGraphicalEditPart getChildBySemanticHint(String semanticHint) {
+ return null;
+ }
+
+ /**
+ * @generated
+ */
+ protected EObject getParserElement() {
+ return resolveSemanticElement();
+ }
+
+ /**
+ * @generated
+ */
+ protected Image getLabelIcon() {
+ return null;
+ }
+
+ /**
+ * @generated
+ */
+ protected String getLabelText() {
+ String text = null;
+ EObject parserElement = getParserElement();
+ if (parserElement != null && getParser() != null) {
+ text = getParser().getPrintString(
+ new EObjectAdapter(parserElement),
+ getParserOptions().intValue());
+ }
+ if (text == null || text.length() == 0) {
+ text = defaultText;
+ }
+ return text;
+ }
+
+ /**
+ * @generated
+ */
+ public void setLabelText(String text) {
+ setLabelTextHelper(getFigure(), text);
+ Object pdEditPolicy = getEditPolicy(EditPolicy.PRIMARY_DRAG_ROLE);
+ if (pdEditPolicy instanceof ComrelTextSelectionEditPolicy) {
+ ((ComrelTextSelectionEditPolicy) pdEditPolicy).refreshFeedback();
+ }
+ Object sfEditPolicy = getEditPolicy(EditPolicy.SELECTION_FEEDBACK_ROLE);
+ if (sfEditPolicy instanceof ComrelTextSelectionEditPolicy) {
+ ((ComrelTextSelectionEditPolicy) sfEditPolicy).refreshFeedback();
+ }
+ }
+
+ /**
+ * @generated
+ */
+ public String getEditText() {
+ if (getParserElement() == null || getParser() == null) {
+ return ""; //$NON-NLS-1$
+ }
+ return getParser().getEditString(
+ new EObjectAdapter(getParserElement()),
+ getParserOptions().intValue());
+ }
+
+ /**
+ * @generated
+ */
+ protected boolean isEditable() {
+ return getParser() != null;
+ }
+
+ /**
+ * @generated
+ */
+ public ICellEditorValidator getEditTextValidator() {
+ return new ICellEditorValidator() {
+
+ public String isValid(final Object value) {
+ if (value instanceof String) {
+ final EObject element = getParserElement();
+ final IParser parser = getParser();
+ try {
+ IParserEditStatus valid = (IParserEditStatus) getEditingDomain()
+ .runExclusive(
+ new RunnableWithResult.Impl<IParserEditStatus>() {
+
+ public void run() {
+ setResult(parser
+ .isValidEditString(
+ new EObjectAdapter(
+ element),
+ (String) value));
+ }
+ });
+ return valid.getCode() == ParserEditStatus.EDITABLE ? null
+ : valid.getMessage();
+ } catch (InterruptedException ie) {
+ ie.printStackTrace();
+ }
+ }
+
+ // shouldn't get here
+ return null;
+ }
+ };
+ }
+
+ /**
+ * @generated
+ */
+ public IContentAssistProcessor getCompletionProcessor() {
+ if (getParserElement() == null || getParser() == null) {
+ return null;
+ }
+ return getParser().getCompletionProcessor(
+ new EObjectAdapter(getParserElement()));
+ }
+
+ /**
+ * @generated
+ */
+ public ParserOptions getParserOptions() {
+ return ParserOptions.NONE;
+ }
+
+ /**
+ * @generated
+ */
+ public IParser getParser() {
+ if (parser == null) {
+ parser = ComrelParserProvider
+ .getParser(
+ ComrelElementTypes.MultiFilterUnit_3064,
+ getParserElement(),
+ ComrelVisualIDRegistry
+ .getType(comrel.diagram.edit.parts.MultiFilterUnitNameType5EditPart.VISUAL_ID));
+ }
+ return parser;
+ }
+
+ /**
+ * @generated
+ */
+ protected DirectEditManager getManager() {
+ if (manager == null) {
+ setManager(new TextDirectEditManager(this,
+ TextDirectEditManager.getTextCellEditorClass(this),
+ ComrelEditPartFactory.getTextCellEditorLocator(this)));
+ }
+ return manager;
+ }
+
+ /**
+ * @generated
+ */
+ protected void setManager(DirectEditManager manager) {
+ this.manager = manager;
+ }
+
+ /**
+ * @generated
+ */
+ protected void performDirectEdit() {
+ getManager().show();
+ }
+
+ /**
+ * @generated
+ */
+ protected void performDirectEdit(Point eventLocation) {
+ if (getManager().getClass() == TextDirectEditManager.class) {
+ ((TextDirectEditManager) getManager()).show(eventLocation
+ .getSWTPoint());
+ }
+ }
+
+ /**
+ * @generated
+ */
+ private void performDirectEdit(char initialCharacter) {
+ if (getManager() instanceof TextDirectEditManager) {
+ ((TextDirectEditManager) getManager()).show(initialCharacter);
+ } else {
+ performDirectEdit();
+ }
+ }
+
+ /**
+ * @generated
+ */
+ protected void performDirectEditRequest(Request request) {
+ final Request theRequest = request;
+ try {
+ getEditingDomain().runExclusive(new Runnable() {
+
+ public void run() {
+ if (isActive() && isEditable()) {
+ if (theRequest
+ .getExtendedData()
+ .get(RequestConstants.REQ_DIRECTEDIT_EXTENDEDDATA_INITIAL_CHAR) instanceof Character) {
+ Character initialChar = (Character) theRequest
+ .getExtendedData()
+ .get(RequestConstants.REQ_DIRECTEDIT_EXTENDEDDATA_INITIAL_CHAR);
+ performDirectEdit(initialChar.charValue());
+ } else if ((theRequest instanceof DirectEditRequest)
+ && (getEditText().equals(getLabelText()))) {
+ DirectEditRequest editRequest = (DirectEditRequest) theRequest;
+ performDirectEdit(editRequest.getLocation());
+ } else {
+ performDirectEdit();
+ }
+ }
+ }
+ });
+ } catch (InterruptedException e) {
+ e.printStackTrace();
+ }
+ }
+
+ /**
+ * @generated
+ */
+ protected void refreshVisuals() {
+ super.refreshVisuals();
+ refreshLabel();
+ refreshFont();
+ refreshFontColor();
+ refreshUnderline();
+ refreshStrikeThrough();
+ }
+
+ /**
+ * @generated
+ */
+ protected void refreshLabel() {
+ setLabelTextHelper(getFigure(), getLabelText());
+ setLabelIconHelper(getFigure(), getLabelIcon());
+ Object pdEditPolicy = getEditPolicy(EditPolicy.PRIMARY_DRAG_ROLE);
+ if (pdEditPolicy instanceof ComrelTextSelectionEditPolicy) {
+ ((ComrelTextSelectionEditPolicy) pdEditPolicy).refreshFeedback();
+ }
+ Object sfEditPolicy = getEditPolicy(EditPolicy.SELECTION_FEEDBACK_ROLE);
+ if (sfEditPolicy instanceof ComrelTextSelectionEditPolicy) {
+ ((ComrelTextSelectionEditPolicy) sfEditPolicy).refreshFeedback();
+ }
+ }
+
+ /**
+ * @generated
+ */
+ protected void refreshUnderline() {
+ FontStyle style = (FontStyle) getFontStyleOwnerView().getStyle(
+ NotationPackage.eINSTANCE.getFontStyle());
+ if (style != null && getFigure() instanceof WrappingLabel) {
+ ((WrappingLabel) getFigure()).setTextUnderline(style.isUnderline());
+ }
+ }
+
+ /**
+ * @generated
+ */
+ protected void refreshStrikeThrough() {
+ FontStyle style = (FontStyle) getFontStyleOwnerView().getStyle(
+ NotationPackage.eINSTANCE.getFontStyle());
+ if (style != null && getFigure() instanceof WrappingLabel) {
+ ((WrappingLabel) getFigure()).setTextStrikeThrough(style
+ .isStrikeThrough());
+ }
+ }
+
+ /**
+ * @generated
+ */
+ protected void refreshFont() {
+ FontStyle style = (FontStyle) getFontStyleOwnerView().getStyle(
+ NotationPackage.eINSTANCE.getFontStyle());
+ if (style != null) {
+ FontData fontData = new FontData(style.getFontName(),
+ style.getFontHeight(), (style.isBold() ? SWT.BOLD
+ : SWT.NORMAL)
+ | (style.isItalic() ? SWT.ITALIC : SWT.NORMAL));
+ setFont(fontData);
+ }
+ }
+
+ /**
+ * @generated
+ */
+ protected void setFontColor(Color color) {
+ getFigure().setForegroundColor(color);
+ }
+
+ /**
+ * @generated
+ */
+ protected void addSemanticListeners() {
+ if (getParser() instanceof ISemanticParser) {
+ EObject element = resolveSemanticElement();
+ parserElements = ((ISemanticParser) getParser())
+ .getSemanticElementsBeingParsed(element);
+ for (int i = 0; i < parserElements.size(); i++) {
+ addListenerFilter(
+ "SemanticModel" + i, this, (EObject) parserElements.get(i)); //$NON-NLS-1$
+ }
+ } else {
+ super.addSemanticListeners();
+ }
+ }
+
+ /**
+ * @generated
+ */
+ protected void removeSemanticListeners() {
+ if (parserElements != null) {
+ for (int i = 0; i < parserElements.size(); i++) {
+ removeListenerFilter("SemanticModel" + i); //$NON-NLS-1$
+ }
+ } else {
+ super.removeSemanticListeners();
+ }
+ }
+
+ /**
+ * @generated
+ */
+ protected AccessibleEditPart getAccessibleEditPart() {
+ if (accessibleEP == null) {
+ accessibleEP = new AccessibleGraphicalEditPart() {
+
+ public void getName(AccessibleEvent e) {
+ e.result = getLabelTextHelper(getFigure());
+ }
+ };
+ }
+ return accessibleEP;
+ }
+
+ /**
+ * @generated
+ */
+ private View getFontStyleOwnerView() {
+ return getPrimaryView();
+ }
+
+ /**
+ * @generated
+ */
+ protected void addNotationalListeners() {
+ super.addNotationalListeners();
+ addListenerFilter("PrimaryView", this, getPrimaryView()); //$NON-NLS-1$
+ }
+
+ /**
+ * @generated
+ */
+ protected void removeNotationalListeners() {
+ super.removeNotationalListeners();
+ removeListenerFilter("PrimaryView"); //$NON-NLS-1$
+ }
+
+ /**
+ * @generated
+ */
+ protected void handleNotificationEvent(Notification event) {
+ Object feature = event.getFeature();
+ if (NotationPackage.eINSTANCE.getFontStyle_FontColor().equals(feature)) {
+ Integer c = (Integer) event.getNewValue();
+ setFontColor(DiagramColorRegistry.getInstance().getColor(c));
+ } else if (NotationPackage.eINSTANCE.getFontStyle_Underline().equals(
+ feature)) {
+ refreshUnderline();
+ } else if (NotationPackage.eINSTANCE.getFontStyle_StrikeThrough()
+ .equals(feature)) {
+ refreshStrikeThrough();
+ } else if (NotationPackage.eINSTANCE.getFontStyle_FontHeight().equals(
+ feature)
+ || NotationPackage.eINSTANCE.getFontStyle_FontName().equals(
+ feature)
+ || NotationPackage.eINSTANCE.getFontStyle_Bold()
+ .equals(feature)
+ || NotationPackage.eINSTANCE.getFontStyle_Italic().equals(
+ feature)) {
+ refreshFont();
+ } else {
+ if (getParser() != null
+ && getParser().isAffectingEvent(event,
+ getParserOptions().intValue())) {
+ refreshLabel();
+ }
+ if (getParser() instanceof ISemanticParser) {
+ ISemanticParser modelParser = (ISemanticParser) getParser();
+ if (modelParser.areSemanticElementsAffected(null, event)) {
+ removeSemanticListeners();
+ if (resolveSemanticElement() != null) {
+ addSemanticListeners();
+ }
+ refreshLabel();
+ }
+ }
+ }
+ super.handleNotificationEvent(event);
+ }
+
+ /**
+ * @generated
+ */
+ protected IFigure createFigure() {
+ // Parent should assign one using setLabel() method
+ return null;
+ }
+
+}
diff --git a/org.eclipse.emf.refactor.comrel.diagram/src/comrel/diagram/edit/parts/MultiFilterUnitNameTypeEditPart.java b/org.eclipse.emf.refactor.comrel.diagram/src/comrel/diagram/edit/parts/MultiFilterUnitNameTypeEditPart.java
new file mode 100644
index 0000000..37f9c2e
--- /dev/null
+++ b/org.eclipse.emf.refactor.comrel.diagram/src/comrel/diagram/edit/parts/MultiFilterUnitNameTypeEditPart.java
@@ -0,0 +1,576 @@
+/*
+ *
+ */
+package comrel.diagram.edit.parts;
+
+import java.util.Collections;
+import java.util.List;
+
+import org.eclipse.draw2d.IFigure;
+import org.eclipse.draw2d.Label;
+import org.eclipse.draw2d.geometry.Point;
+import org.eclipse.emf.common.notify.Notification;
+import org.eclipse.emf.ecore.EObject;
+import org.eclipse.emf.transaction.RunnableWithResult;
+import org.eclipse.gef.AccessibleEditPart;
+import org.eclipse.gef.EditPolicy;
+import org.eclipse.gef.Request;
+import org.eclipse.gef.requests.DirectEditRequest;
+import org.eclipse.gef.tools.DirectEditManager;
+import org.eclipse.gmf.runtime.common.ui.services.parser.IParser;
+import org.eclipse.gmf.runtime.common.ui.services.parser.IParserEditStatus;
+import org.eclipse.gmf.runtime.common.ui.services.parser.ParserEditStatus;
+import org.eclipse.gmf.runtime.common.ui.services.parser.ParserOptions;
+import org.eclipse.gmf.runtime.diagram.ui.editparts.CompartmentEditPart;
+import org.eclipse.gmf.runtime.diagram.ui.editparts.IGraphicalEditPart;
+import org.eclipse.gmf.runtime.diagram.ui.editparts.ITextAwareEditPart;
+import org.eclipse.gmf.runtime.diagram.ui.editpolicies.LabelDirectEditPolicy;
+import org.eclipse.gmf.runtime.diagram.ui.l10n.DiagramColorRegistry;
+import org.eclipse.gmf.runtime.diagram.ui.requests.RequestConstants;
+import org.eclipse.gmf.runtime.diagram.ui.tools.TextDirectEditManager;
+import org.eclipse.gmf.runtime.draw2d.ui.figures.WrappingLabel;
+import org.eclipse.gmf.runtime.emf.core.util.EObjectAdapter;
+import org.eclipse.gmf.runtime.emf.ui.services.parser.ISemanticParser;
+import org.eclipse.gmf.runtime.notation.FontStyle;
+import org.eclipse.gmf.runtime.notation.NotationPackage;
+import org.eclipse.gmf.runtime.notation.View;
+import org.eclipse.jface.text.contentassist.IContentAssistProcessor;
+import org.eclipse.jface.viewers.ICellEditorValidator;
+import org.eclipse.swt.SWT;
+import org.eclipse.swt.accessibility.AccessibleEvent;
+import org.eclipse.swt.graphics.Color;
+import org.eclipse.swt.graphics.FontData;
+import org.eclipse.swt.graphics.Image;
+
+import comrel.diagram.edit.policies.ComrelTextSelectionEditPolicy;
+import comrel.diagram.part.ComrelVisualIDRegistry;
+import comrel.diagram.providers.ComrelElementTypes;
+import comrel.diagram.providers.ComrelParserProvider;
+
+/**
+ * @generated
+ */
+public class MultiFilterUnitNameTypeEditPart extends CompartmentEditPart
+ implements ITextAwareEditPart {
+
+ /**
+ * @generated
+ */
+ public static final int VISUAL_ID = 5019;
+
+ /**
+ * @generated
+ */
+ private DirectEditManager manager;
+
+ /**
+ * @generated
+ */
+ private IParser parser;
+
+ /**
+ * @generated
+ */
+ private List<?> parserElements;
+
+ /**
+ * @generated
+ */
+ private String defaultText;
+
+ /**
+ * @generated
+ */
+ public MultiFilterUnitNameTypeEditPart(View view) {
+ super(view);
+ }
+
+ /**
+ * @generated
+ */
+ protected void createDefaultEditPolicies() {
+ super.createDefaultEditPolicies();
+ installEditPolicy(EditPolicy.SELECTION_FEEDBACK_ROLE,
+ new ComrelTextSelectionEditPolicy());
+ installEditPolicy(EditPolicy.DIRECT_EDIT_ROLE,
+ new LabelDirectEditPolicy());
+ installEditPolicy(EditPolicy.PRIMARY_DRAG_ROLE,
+ new CompositeRefactoringEditPart.NodeLabelDragPolicy());
+ }
+
+ /**
+ * @generated
+ */
+ protected String getLabelTextHelper(IFigure figure) {
+ if (figure instanceof WrappingLabel) {
+ return ((WrappingLabel) figure).getText();
+ } else {
+ return ((Label) figure).getText();
+ }
+ }
+
+ /**
+ * @generated
+ */
+ protected void setLabelTextHelper(IFigure figure, String text) {
+ if (figure instanceof WrappingLabel) {
+ ((WrappingLabel) figure).setText(text);
+ } else {
+ ((Label) figure).setText(text);
+ }
+ }
+
+ /**
+ * @generated
+ */
+ protected Image getLabelIconHelper(IFigure figure) {
+ if (figure instanceof WrappingLabel) {
+ return ((WrappingLabel) figure).getIcon();
+ } else {
+ return ((Label) figure).getIcon();
+ }
+ }
+
+ /**
+ * @generated
+ */
+ protected void setLabelIconHelper(IFigure figure, Image icon) {
+ if (figure instanceof WrappingLabel) {
+ ((WrappingLabel) figure).setIcon(icon);
+ } else {
+ ((Label) figure).setIcon(icon);
+ }
+ }
+
+ /**
+ * @generated
+ */
+ public void setLabel(WrappingLabel figure) {
+ unregisterVisuals();
+ setFigure(figure);
+ defaultText = getLabelTextHelper(figure);
+ registerVisuals();
+ refreshVisuals();
+ }
+
+ /**
+ * @generated
+ */
+ @SuppressWarnings("rawtypes")
+ protected List getModelChildren() {
+ return Collections.EMPTY_LIST;
+ }
+
+ /**
+ * @generated
+ */
+ public IGraphicalEditPart getChildBySemanticHint(String semanticHint) {
+ return null;
+ }
+
+ /**
+ * @generated
+ */
+ protected EObject getParserElement() {
+ return resolveSemanticElement();
+ }
+
+ /**
+ * @generated
+ */
+ protected Image getLabelIcon() {
+ return null;
+ }
+
+ /**
+ * @generated
+ */
+ protected String getLabelText() {
+ String text = null;
+ EObject parserElement = getParserElement();
+ if (parserElement != null && getParser() != null) {
+ text = getParser().getPrintString(
+ new EObjectAdapter(parserElement),
+ getParserOptions().intValue());
+ }
+ if (text == null || text.length() == 0) {
+ text = defaultText;
+ }
+ return text;
+ }
+
+ /**
+ * @generated
+ */
+ public void setLabelText(String text) {
+ setLabelTextHelper(getFigure(), text);
+ Object pdEditPolicy = getEditPolicy(EditPolicy.PRIMARY_DRAG_ROLE);
+ if (pdEditPolicy instanceof ComrelTextSelectionEditPolicy) {
+ ((ComrelTextSelectionEditPolicy) pdEditPolicy).refreshFeedback();
+ }
+ Object sfEditPolicy = getEditPolicy(EditPolicy.SELECTION_FEEDBACK_ROLE);
+ if (sfEditPolicy instanceof ComrelTextSelectionEditPolicy) {
+ ((ComrelTextSelectionEditPolicy) sfEditPolicy).refreshFeedback();
+ }
+ }
+
+ /**
+ * @generated
+ */
+ public String getEditText() {
+ if (getParserElement() == null || getParser() == null) {
+ return ""; //$NON-NLS-1$
+ }
+ return getParser().getEditString(
+ new EObjectAdapter(getParserElement()),
+ getParserOptions().intValue());
+ }
+
+ /**
+ * @generated
+ */
+ protected boolean isEditable() {
+ return getParser() != null;
+ }
+
+ /**
+ * @generated
+ */
+ public ICellEditorValidator getEditTextValidator() {
+ return new ICellEditorValidator() {
+
+ public String isValid(final Object value) {
+ if (value instanceof String) {
+ final EObject element = getParserElement();
+ final IParser parser = getParser();
+ try {
+ IParserEditStatus valid = (IParserEditStatus) getEditingDomain()
+ .runExclusive(
+ new RunnableWithResult.Impl<IParserEditStatus>() {
+
+ public void run() {
+ setResult(parser
+ .isValidEditString(
+ new EObjectAdapter(
+ element),
+ (String) value));
+ }
+ });
+ return valid.getCode() == ParserEditStatus.EDITABLE ? null
+ : valid.getMessage();
+ } catch (InterruptedException ie) {
+ ie.printStackTrace();
+ }
+ }
+
+ // shouldn't get here
+ return null;
+ }
+ };
+ }
+
+ /**
+ * @generated
+ */
+ public IContentAssistProcessor getCompletionProcessor() {
+ if (getParserElement() == null || getParser() == null) {
+ return null;
+ }
+ return getParser().getCompletionProcessor(
+ new EObjectAdapter(getParserElement()));
+ }
+
+ /**
+ * @generated
+ */
+ public ParserOptions getParserOptions() {
+ return ParserOptions.NONE;
+ }
+
+ /**
+ * @generated
+ */
+ public IParser getParser() {
+ if (parser == null) {
+ parser = ComrelParserProvider
+ .getParser(
+ ComrelElementTypes.MultiFilterUnit_3019,
+ getParserElement(),
+ ComrelVisualIDRegistry
+ .getType(comrel.diagram.edit.parts.MultiFilterUnitNameTypeEditPart.VISUAL_ID));
+ }
+ return parser;
+ }
+
+ /**
+ * @generated
+ */
+ protected DirectEditManager getManager() {
+ if (manager == null) {
+ setManager(new TextDirectEditManager(this,
+ TextDirectEditManager.getTextCellEditorClass(this),
+ ComrelEditPartFactory.getTextCellEditorLocator(this)));
+ }
+ return manager;
+ }
+
+ /**
+ * @generated
+ */
+ protected void setManager(DirectEditManager manager) {
+ this.manager = manager;
+ }
+
+ /**
+ * @generated
+ */
+ protected void performDirectEdit() {
+ getManager().show();
+ }
+
+ /**
+ * @generated
+ */
+ protected void performDirectEdit(Point eventLocation) {
+ if (getManager().getClass() == TextDirectEditManager.class) {
+ ((TextDirectEditManager) getManager()).show(eventLocation
+ .getSWTPoint());
+ }
+ }
+
+ /**
+ * @generated
+ */
+ private void performDirectEdit(char initialCharacter) {
+ if (getManager() instanceof TextDirectEditManager) {
+ ((TextDirectEditManager) getManager()).show(initialCharacter);
+ } else {
+ performDirectEdit();
+ }
+ }
+
+ /**
+ * @generated
+ */
+ protected void performDirectEditRequest(Request request) {
+ final Request theRequest = request;
+ try {
+ getEditingDomain().runExclusive(new Runnable() {
+
+ public void run() {
+ if (isActive() && isEditable()) {
+ if (theRequest
+ .getExtendedData()
+ .get(RequestConstants.REQ_DIRECTEDIT_EXTENDEDDATA_INITIAL_CHAR) instanceof Character) {
+ Character initialChar = (Character) theRequest
+ .getExtendedData()
+ .get(RequestConstants.REQ_DIRECTEDIT_EXTENDEDDATA_INITIAL_CHAR);
+ performDirectEdit(initialChar.charValue());
+ } else if ((theRequest instanceof DirectEditRequest)
+ && (getEditText().equals(getLabelText()))) {
+ DirectEditRequest editRequest = (DirectEditRequest) theRequest;
+ performDirectEdit(editRequest.getLocation());
+ } else {
+ performDirectEdit();
+ }
+ }
+ }
+ });
+ } catch (InterruptedException e) {
+ e.printStackTrace();
+ }
+ }
+
+ /**
+ * @generated
+ */
+ protected void refreshVisuals() {
+ super.refreshVisuals();
+ refreshLabel();
+ refreshFont();
+ refreshFontColor();
+ refreshUnderline();
+ refreshStrikeThrough();
+ }
+
+ /**
+ * @generated
+ */
+ protected void refreshLabel() {
+ setLabelTextHelper(getFigure(), getLabelText());
+ setLabelIconHelper(getFigure(), getLabelIcon());
+ Object pdEditPolicy = getEditPolicy(EditPolicy.PRIMARY_DRAG_ROLE);
+ if (pdEditPolicy instanceof ComrelTextSelectionEditPolicy) {
+ ((ComrelTextSelectionEditPolicy) pdEditPolicy).refreshFeedback();
+ }
+ Object sfEditPolicy = getEditPolicy(EditPolicy.SELECTION_FEEDBACK_ROLE);
+ if (sfEditPolicy instanceof ComrelTextSelectionEditPolicy) {
+ ((ComrelTextSelectionEditPolicy) sfEditPolicy).refreshFeedback();
+ }
+ }
+
+ /**
+ * @generated
+ */
+ protected void refreshUnderline() {
+ FontStyle style = (FontStyle) getFontStyleOwnerView().getStyle(
+ NotationPackage.eINSTANCE.getFontStyle());
+ if (style != null && getFigure() instanceof WrappingLabel) {
+ ((WrappingLabel) getFigure()).setTextUnderline(style.isUnderline());
+ }
+ }
+
+ /**
+ * @generated
+ */
+ protected void refreshStrikeThrough() {
+ FontStyle style = (FontStyle) getFontStyleOwnerView().getStyle(
+ NotationPackage.eINSTANCE.getFontStyle());
+ if (style != null && getFigure() instanceof WrappingLabel) {
+ ((WrappingLabel) getFigure()).setTextStrikeThrough(style
+ .isStrikeThrough());
+ }
+ }
+
+ /**
+ * @generated
+ */
+ protected void refreshFont() {
+ FontStyle style = (FontStyle) getFontStyleOwnerView().getStyle(
+ NotationPackage.eINSTANCE.getFontStyle());
+ if (style != null) {
+ FontData fontData = new FontData(style.getFontName(),
+ style.getFontHeight(), (style.isBold() ? SWT.BOLD
+ : SWT.NORMAL)
+ | (style.isItalic() ? SWT.ITALIC : SWT.NORMAL));
+ setFont(fontData);
+ }
+ }
+
+ /**
+ * @generated
+ */
+ protected void setFontColor(Color color) {
+ getFigure().setForegroundColor(color);
+ }
+
+ /**
+ * @generated
+ */
+ protected void addSemanticListeners() {
+ if (getParser() instanceof ISemanticParser) {
+ EObject element = resolveSemanticElement();
+ parserElements = ((ISemanticParser) getParser())
+ .getSemanticElementsBeingParsed(element);
+ for (int i = 0; i < parserElements.size(); i++) {
+ addListenerFilter(
+ "SemanticModel" + i, this, (EObject) parserElements.get(i)); //$NON-NLS-1$
+ }
+ } else {
+ super.addSemanticListeners();
+ }
+ }
+
+ /**
+ * @generated
+ */
+ protected void removeSemanticListeners() {
+ if (parserElements != null) {
+ for (int i = 0; i < parserElements.size(); i++) {
+ removeListenerFilter("SemanticModel" + i); //$NON-NLS-1$
+ }
+ } else {
+ super.removeSemanticListeners();
+ }
+ }
+
+ /**
+ * @generated
+ */
+ protected AccessibleEditPart getAccessibleEditPart() {
+ if (accessibleEP == null) {
+ accessibleEP = new AccessibleGraphicalEditPart() {
+
+ public void getName(AccessibleEvent e) {
+ e.result = getLabelTextHelper(getFigure());
+ }
+ };
+ }
+ return accessibleEP;
+ }
+
+ /**
+ * @generated
+ */
+ private View getFontStyleOwnerView() {
+ return getPrimaryView();
+ }
+
+ /**
+ * @generated
+ */
+ protected void addNotationalListeners() {
+ super.addNotationalListeners();
+ addListenerFilter("PrimaryView", this, getPrimaryView()); //$NON-NLS-1$
+ }
+
+ /**
+ * @generated
+ */
+ protected void removeNotationalListeners() {
+ super.removeNotationalListeners();
+ removeListenerFilter("PrimaryView"); //$NON-NLS-1$
+ }
+
+ /**
+ * @generated
+ */
+ protected void handleNotificationEvent(Notification event) {
+ Object feature = event.getFeature();
+ if (NotationPackage.eINSTANCE.getFontStyle_FontColor().equals(feature)) {
+ Integer c = (Integer) event.getNewValue();
+ setFontColor(DiagramColorRegistry.getInstance().getColor(c));
+ } else if (NotationPackage.eINSTANCE.getFontStyle_Underline().equals(
+ feature)) {
+ refreshUnderline();
+ } else if (NotationPackage.eINSTANCE.getFontStyle_StrikeThrough()
+ .equals(feature)) {
+ refreshStrikeThrough();
+ } else if (NotationPackage.eINSTANCE.getFontStyle_FontHeight().equals(
+ feature)
+ || NotationPackage.eINSTANCE.getFontStyle_FontName().equals(
+ feature)
+ || NotationPackage.eINSTANCE.getFontStyle_Bold()
+ .equals(feature)
+ || NotationPackage.eINSTANCE.getFontStyle_Italic().equals(
+ feature)) {
+ refreshFont();
+ } else {
+ if (getParser() != null
+ && getParser().isAffectingEvent(event,
+ getParserOptions().intValue())) {
+ refreshLabel();
+ }
+ if (getParser() instanceof ISemanticParser) {
+ ISemanticParser modelParser = (ISemanticParser) getParser();
+ if (modelParser.areSemanticElementsAffected(null, event)) {
+ removeSemanticListeners();
+ if (resolveSemanticElement() != null) {
+ addSemanticListeners();
+ }
+ refreshLabel();
+ }
+ }
+ }
+ super.handleNotificationEvent(event);
+ }
+
+ /**
+ * @generated
+ */
+ protected IFigure createFigure() {
+ // Parent should assign one using setLabel() method
+ return null;
+ }
+
+}
diff --git a/org.eclipse.emf.refactor.comrel.diagram/src/comrel/diagram/edit/parts/MultiInputPort2EditPart.java b/org.eclipse.emf.refactor.comrel.diagram/src/comrel/diagram/edit/parts/MultiInputPort2EditPart.java
new file mode 100644
index 0000000..8e0f651
--- /dev/null
+++ b/org.eclipse.emf.refactor.comrel.diagram/src/comrel/diagram/edit/parts/MultiInputPort2EditPart.java
@@ -0,0 +1,408 @@
+/*
+ *
+ */
+package comrel.diagram.edit.parts;
+
+import java.util.ArrayList;
+import java.util.Collections;
+import java.util.LinkedList;
+import java.util.List;
+
+import org.eclipse.draw2d.IFigure;
+import org.eclipse.draw2d.MarginBorder;
+import org.eclipse.draw2d.PositionConstants;
+import org.eclipse.draw2d.RectangleFigure;
+import org.eclipse.draw2d.Shape;
+import org.eclipse.draw2d.StackLayout;
+import org.eclipse.draw2d.geometry.Dimension;
+import org.eclipse.gef.EditPart;
+import org.eclipse.gef.EditPolicy;
+import org.eclipse.gef.GraphicalEditPart;
+import org.eclipse.gef.Request;
+import org.eclipse.gef.commands.Command;
+import org.eclipse.gef.editpolicies.LayoutEditPolicy;
+import org.eclipse.gef.editpolicies.NonResizableEditPolicy;
+import org.eclipse.gef.handles.MoveHandle;
+import org.eclipse.gef.requests.CreateRequest;
+import org.eclipse.gmf.runtime.diagram.ui.editparts.BorderedBorderItemEditPart;
+import org.eclipse.gmf.runtime.diagram.ui.editparts.IBorderItemEditPart;
+import org.eclipse.gmf.runtime.diagram.ui.editparts.IGraphicalEditPart;
+import org.eclipse.gmf.runtime.diagram.ui.editpolicies.BorderItemSelectionEditPolicy;
+import org.eclipse.gmf.runtime.diagram.ui.editpolicies.EditPolicyRoles;
+import org.eclipse.gmf.runtime.diagram.ui.figures.BorderItemLocator;
+import org.eclipse.gmf.runtime.draw2d.ui.figures.WrappingLabel;
+import org.eclipse.gmf.runtime.emf.type.core.IElementType;
+import org.eclipse.gmf.runtime.gef.ui.figures.DefaultSizeNodeFigure;
+import org.eclipse.gmf.runtime.gef.ui.figures.NodeFigure;
+import org.eclipse.gmf.runtime.notation.View;
+import org.eclipse.swt.graphics.Color;
+
+import comrel.InputPort;
+import comrel.diagram.edit.parts.MultiInputPort8EditPart.MultiInputPortFigure;
+import comrel.diagram.edit.policies.MultiInputPort2ItemSemanticEditPolicy;
+import comrel.diagram.part.ComrelVisualIDRegistry;
+import comrel.diagram.providers.ComrelElementTypes;
+import comrel.figures.InputPortFigure;
+
+/**
+ * @generated
+ */
+public class MultiInputPort2EditPart extends BorderedBorderItemEditPart {
+
+ /**
+ * @generated
+ */
+ public static final int VISUAL_ID = 3006;
+
+ /**
+ * @generated
+ */
+ protected IFigure contentPane;
+
+ /**
+ * @generated
+ */
+ protected IFigure primaryShape;
+
+ /**
+ * @generated
+ */
+ public MultiInputPort2EditPart(View view) {
+ super(view);
+ }
+
+ /**
+ * @generated
+ */
+ protected void createDefaultEditPolicies() {
+ super.createDefaultEditPolicies();
+ installEditPolicy(EditPolicy.PRIMARY_DRAG_ROLE,
+ getPrimaryDragEditPolicy());
+ installEditPolicy(EditPolicyRoles.SEMANTIC_ROLE,
+ new MultiInputPort2ItemSemanticEditPolicy());
+ installEditPolicy(EditPolicy.LAYOUT_ROLE, createLayoutEditPolicy());
+ // XXX need an SCR to runtime to have another abstract superclass that would let children add reasonable editpolicies
+ // removeEditPolicy(org.eclipse.gmf.runtime.diagram.ui.editpolicies.EditPolicyRoles.CONNECTION_HANDLES_ROLE);
+ }
+
+ /**
+ * @generated
+ */
+ protected LayoutEditPolicy createLayoutEditPolicy() {
+ org.eclipse.gmf.runtime.diagram.ui.editpolicies.LayoutEditPolicy lep = new org.eclipse.gmf.runtime.diagram.ui.editpolicies.LayoutEditPolicy() {
+
+ protected EditPolicy createChildEditPolicy(EditPart child) {
+ View childView = (View) child.getModel();
+ switch (ComrelVisualIDRegistry.getVisualID(childView)) {
+ case MultiInputPortNameType2EditPart.VISUAL_ID:
+ return new BorderItemSelectionEditPolicy() {
+
+ protected List createSelectionHandles() {
+ MoveHandle mh = new MoveHandle(
+ (GraphicalEditPart) getHost());
+ mh.setBorder(null);
+ return Collections.singletonList(mh);
+ }
+ };
+ }
+ EditPolicy result = child
+ .getEditPolicy(EditPolicy.PRIMARY_DRAG_ROLE);
+ if (result == null) {
+ result = new NonResizableEditPolicy();
+ }
+ return result;
+ }
+
+ protected Command getMoveChildrenCommand(Request request) {
+ return null;
+ }
+
+ protected Command getCreateCommand(CreateRequest request) {
+ return null;
+ }
+ };
+ return lep;
+ }
+
+ /**
+ * @generated NOT
+ */
+ protected IFigure createNodeShape() {
+ MultiInputPortFigure figure = new MultiInputPortFigure();
+ InputPort port = (InputPort) this.resolveSemanticElement();
+ figure.setPort(port);
+ return primaryShape = figure;
+ }
+
+ /**
+ * @generated
+ */
+ public MultiInputPortFigure getPrimaryShape() {
+ return (MultiInputPortFigure) primaryShape;
+ }
+
+ /**
+ * @generated
+ */
+ protected void addBorderItem(IFigure borderItemContainer,
+ IBorderItemEditPart borderItemEditPart) {
+ if (borderItemEditPart instanceof MultiInputPortNameType2EditPart) {
+ BorderItemLocator locator = new BorderItemLocator(getMainFigure(),
+ PositionConstants.SOUTH);
+ locator.setBorderItemOffset(new Dimension(-20, -20));
+ borderItemContainer.add(borderItemEditPart.getFigure(), locator);
+ } else {
+ super.addBorderItem(borderItemContainer, borderItemEditPart);
+ }
+ }
+
+ /**
+ * @generated
+ */
+ protected NodeFigure createNodePlate() {
+ DefaultSizeNodeFigure result = new DefaultSizeNodeFigure(20, 20);
+
+ //FIXME: workaround for #154536
+ result.getBounds().setSize(result.getPreferredSize());
+ return result;
+ }
+
+ /**
+ * Creates figure for this edit part.
+ *
+ * Body of this method does not depend on settings in generation model
+ * so you may safely remove <i>generated</i> tag and modify it.
+ *
+ * @generated
+ */
+ protected NodeFigure createMainFigure() {
+ NodeFigure figure = createNodePlate();
+ figure.setLayoutManager(new StackLayout());
+ IFigure shape = createNodeShape();
+ figure.add(shape);
+ contentPane = setupContentPane(shape);
+ return figure;
+ }
+
+ /**
+ * Default implementation treats passed figure as content pane.
+ * Respects layout one may have set for generated figure.
+ * @param nodeShape instance of generated figure class
+ * @generated
+ */
+ protected IFigure setupContentPane(IFigure nodeShape) {
+ return nodeShape; // use nodeShape itself as contentPane
+ }
+
+ /**
+ * @generated
+ */
+ public IFigure getContentPane() {
+ if (contentPane != null) {
+ return contentPane;
+ }
+ return super.getContentPane();
+ }
+
+ /**
+ * @generated
+ */
+ protected void setForegroundColor(Color color) {
+ if (primaryShape != null) {
+ primaryShape.setForegroundColor(color);
+ }
+ }
+
+ /**
+ * @generated
+ */
+ protected void setBackgroundColor(Color color) {
+ if (primaryShape != null) {
+ primaryShape.setBackgroundColor(color);
+ }
+ }
+
+ /**
+ * @generated
+ */
+ protected void setLineWidth(int width) {
+ if (primaryShape instanceof Shape) {
+ ((Shape) primaryShape).setLineWidth(width);
+ }
+ }
+
+ /**
+ * @generated
+ */
+ protected void setLineType(int style) {
+ if (primaryShape instanceof Shape) {
+ ((Shape) primaryShape).setLineStyle(style);
+ }
+ }
+
+ /**
+ * @generated
+ */
+ public EditPart getPrimaryChildEditPart() {
+ return getChildBySemanticHint(ComrelVisualIDRegistry
+ .getType(MultiInputPortNameType2EditPart.VISUAL_ID));
+ }
+
+ /**
+ * @generated
+ */
+ public List<IElementType> getMARelTypesOnSource() {
+ ArrayList<IElementType> types = new ArrayList<IElementType>(2);
+ types.add(ComrelElementTypes.MultiPortMapping_4002);
+ types.add(ComrelElementTypes.MultiSinglePortMapping_4003);
+ return types;
+ }
+
+ /**
+ * @generated
+ */
+ public List<IElementType> getMARelTypesOnSourceAndTarget(
+ IGraphicalEditPart targetEditPart) {
+ LinkedList<IElementType> types = new LinkedList<IElementType>();
+ if (targetEditPart instanceof MultiInputPortEditPart) {
+ types.add(ComrelElementTypes.MultiPortMapping_4002);
+ }
+ if (targetEditPart instanceof comrel.diagram.edit.parts.MultiInputPort2EditPart) {
+ types.add(ComrelElementTypes.MultiPortMapping_4002);
+ }
+ if (targetEditPart instanceof MultiInputPort3EditPart) {
+ types.add(ComrelElementTypes.MultiPortMapping_4002);
+ }
+ if (targetEditPart instanceof MultiInputPort4EditPart) {
+ types.add(ComrelElementTypes.MultiPortMapping_4002);
+ }
+ if (targetEditPart instanceof MultiInputPort5EditPart) {
+ types.add(ComrelElementTypes.MultiPortMapping_4002);
+ }
+ if (targetEditPart instanceof MultiInputPort6EditPart) {
+ types.add(ComrelElementTypes.MultiPortMapping_4002);
+ }
+ if (targetEditPart instanceof MultiInputPort7EditPart) {
+ types.add(ComrelElementTypes.MultiPortMapping_4002);
+ }
+ if (targetEditPart instanceof MultiInputPort8EditPart) {
+ types.add(ComrelElementTypes.MultiPortMapping_4002);
+ }
+ if (targetEditPart instanceof MultiInputPort9EditPart) {
+ types.add(ComrelElementTypes.MultiPortMapping_4002);
+ }
+ if (targetEditPart instanceof SingleInputPortEditPart) {
+ types.add(ComrelElementTypes.MultiSinglePortMapping_4003);
+ }
+ if (targetEditPart instanceof SingleInputPort2EditPart) {
+ types.add(ComrelElementTypes.MultiSinglePortMapping_4003);
+ }
+ if (targetEditPart instanceof SingleInputPort3EditPart) {
+ types.add(ComrelElementTypes.MultiSinglePortMapping_4003);
+ }
+ if (targetEditPart instanceof SingleInputPort4EditPart) {
+ types.add(ComrelElementTypes.MultiSinglePortMapping_4003);
+ }
+ if (targetEditPart instanceof SingleInputPort5EditPart) {
+ types.add(ComrelElementTypes.MultiSinglePortMapping_4003);
+ }
+ if (targetEditPart instanceof SingleInputPort6EditPart) {
+ types.add(ComrelElementTypes.MultiSinglePortMapping_4003);
+ }
+ if (targetEditPart instanceof SingleInputPort7EditPart) {
+ types.add(ComrelElementTypes.MultiSinglePortMapping_4003);
+ }
+ if (targetEditPart instanceof SingleInputPort8EditPart) {
+ types.add(ComrelElementTypes.MultiSinglePortMapping_4003);
+ }
+ if (targetEditPart instanceof SingleInputPort9EditPart) {
+ types.add(ComrelElementTypes.MultiSinglePortMapping_4003);
+ }
+ return types;
+ }
+
+ /**
+ * @generated
+ */
+ public List<IElementType> getMATypesForTarget(IElementType relationshipType) {
+ LinkedList<IElementType> types = new LinkedList<IElementType>();
+ if (relationshipType == ComrelElementTypes.MultiPortMapping_4002) {
+ types.add(ComrelElementTypes.MultiInputPort_3002);
+ types.add(ComrelElementTypes.MultiInputPort_3006);
+ types.add(ComrelElementTypes.MultiInputPort_3010);
+ types.add(ComrelElementTypes.MultiInputPort_3014);
+ types.add(ComrelElementTypes.MultiInputPort_3017);
+ types.add(ComrelElementTypes.MultiInputPort_3020);
+ types.add(ComrelElementTypes.MultiInputPort_3024);
+ types.add(ComrelElementTypes.MultiInputPort_3028);
+ types.add(ComrelElementTypes.MultiInputPort_3032);
+ } else if (relationshipType == ComrelElementTypes.MultiSinglePortMapping_4003) {
+ types.add(ComrelElementTypes.SingleInputPort_2001);
+ types.add(ComrelElementTypes.SingleInputPort_3001);
+ types.add(ComrelElementTypes.SingleInputPort_3005);
+ types.add(ComrelElementTypes.SingleInputPort_3009);
+ types.add(ComrelElementTypes.SingleInputPort_3013);
+ types.add(ComrelElementTypes.SingleInputPort_3023);
+ types.add(ComrelElementTypes.SingleInputPort_3027);
+ types.add(ComrelElementTypes.SingleInputPort_3031);
+ types.add(ComrelElementTypes.SingleInputPort_3035);
+ }
+ return types;
+ }
+
+ /**
+ * @generated
+ */
+ public List<IElementType> getMARelTypesOnTarget() {
+ ArrayList<IElementType> types = new ArrayList<IElementType>(1);
+ types.add(ComrelElementTypes.MultiPortMapping_4002);
+ return types;
+ }
+
+ /**
+ * @generated
+ */
+ public List<IElementType> getMATypesForSource(IElementType relationshipType) {
+ LinkedList<IElementType> types = new LinkedList<IElementType>();
+ if (relationshipType == ComrelElementTypes.MultiPortMapping_4002) {
+ types.add(ComrelElementTypes.MultiInputPort_3002);
+ types.add(ComrelElementTypes.MultiInputPort_3006);
+ types.add(ComrelElementTypes.MultiInputPort_3010);
+ types.add(ComrelElementTypes.MultiInputPort_3014);
+ types.add(ComrelElementTypes.MultiOutputPort_3015);
+ types.add(ComrelElementTypes.MultiInputPort_3017);
+ types.add(ComrelElementTypes.MultiInputPort_3020);
+ types.add(ComrelElementTypes.MultiOutputPort_3021);
+ types.add(ComrelElementTypes.MultiInputPort_3024);
+ types.add(ComrelElementTypes.MultiInputPort_3028);
+ types.add(ComrelElementTypes.MultiInputPort_3032);
+ }
+ return types;
+ }
+
+ /**
+ * @generated NOT
+ */
+ public class MultiInputPortFigure extends InputPortFigure {
+
+ /**
+ * @generated
+ */
+ public MultiInputPortFigure() {
+ this.setLineWidth(10);
+ this.setForegroundColor(THIS_FORE);
+ this.setPreferredSize(new Dimension(getMapMode().DPtoLP(20),
+ getMapMode().DPtoLP(20)));
+ this.setBorder(new MarginBorder(getMapMode().DPtoLP(5),
+ getMapMode().DPtoLP(5), getMapMode().DPtoLP(5),
+ getMapMode().DPtoLP(5)));
+ }
+
+ }
+
+ /**
+ * @generated
+ */
+ static final Color THIS_FORE = new Color(null, 255, 0, 0);
+
+}
diff --git a/org.eclipse.emf.refactor.comrel.diagram/src/comrel/diagram/edit/parts/MultiInputPort3EditPart.java b/org.eclipse.emf.refactor.comrel.diagram/src/comrel/diagram/edit/parts/MultiInputPort3EditPart.java
new file mode 100644
index 0000000..a026690
--- /dev/null
+++ b/org.eclipse.emf.refactor.comrel.diagram/src/comrel/diagram/edit/parts/MultiInputPort3EditPart.java
@@ -0,0 +1,408 @@
+/*
+ *
+ */
+package comrel.diagram.edit.parts;
+
+import java.util.ArrayList;
+import java.util.Collections;
+import java.util.LinkedList;
+import java.util.List;
+
+import org.eclipse.draw2d.IFigure;
+import org.eclipse.draw2d.MarginBorder;
+import org.eclipse.draw2d.PositionConstants;
+import org.eclipse.draw2d.RectangleFigure;
+import org.eclipse.draw2d.Shape;
+import org.eclipse.draw2d.StackLayout;
+import org.eclipse.draw2d.geometry.Dimension;
+import org.eclipse.gef.EditPart;
+import org.eclipse.gef.EditPolicy;
+import org.eclipse.gef.GraphicalEditPart;
+import org.eclipse.gef.Request;
+import org.eclipse.gef.commands.Command;
+import org.eclipse.gef.editpolicies.LayoutEditPolicy;
+import org.eclipse.gef.editpolicies.NonResizableEditPolicy;
+import org.eclipse.gef.handles.MoveHandle;
+import org.eclipse.gef.requests.CreateRequest;
+import org.eclipse.gmf.runtime.diagram.ui.editparts.BorderedBorderItemEditPart;
+import org.eclipse.gmf.runtime.diagram.ui.editparts.IBorderItemEditPart;
+import org.eclipse.gmf.runtime.diagram.ui.editparts.IGraphicalEditPart;
+import org.eclipse.gmf.runtime.diagram.ui.editpolicies.BorderItemSelectionEditPolicy;
+import org.eclipse.gmf.runtime.diagram.ui.editpolicies.EditPolicyRoles;
+import org.eclipse.gmf.runtime.diagram.ui.figures.BorderItemLocator;
+import org.eclipse.gmf.runtime.draw2d.ui.figures.WrappingLabel;
+import org.eclipse.gmf.runtime.emf.type.core.IElementType;
+import org.eclipse.gmf.runtime.gef.ui.figures.DefaultSizeNodeFigure;
+import org.eclipse.gmf.runtime.gef.ui.figures.NodeFigure;
+import org.eclipse.gmf.runtime.notation.View;
+import org.eclipse.swt.graphics.Color;
+
+import comrel.InputPort;
+import comrel.diagram.edit.parts.MultiInputPort8EditPart.MultiInputPortFigure;
+import comrel.diagram.edit.policies.MultiInputPort3ItemSemanticEditPolicy;
+import comrel.diagram.part.ComrelVisualIDRegistry;
+import comrel.diagram.providers.ComrelElementTypes;
+import comrel.figures.InputPortFigure;
+
+/**
+ * @generated
+ */
+public class MultiInputPort3EditPart extends BorderedBorderItemEditPart {
+
+ /**
+ * @generated
+ */
+ public static final int VISUAL_ID = 3010;
+
+ /**
+ * @generated
+ */
+ protected IFigure contentPane;
+
+ /**
+ * @generated
+ */
+ protected IFigure primaryShape;
+
+ /**
+ * @generated
+ */
+ public MultiInputPort3EditPart(View view) {
+ super(view);
+ }
+
+ /**
+ * @generated
+ */
+ protected void createDefaultEditPolicies() {
+ super.createDefaultEditPolicies();
+ installEditPolicy(EditPolicy.PRIMARY_DRAG_ROLE,
+ getPrimaryDragEditPolicy());
+ installEditPolicy(EditPolicyRoles.SEMANTIC_ROLE,
+ new MultiInputPort3ItemSemanticEditPolicy());
+ installEditPolicy(EditPolicy.LAYOUT_ROLE, createLayoutEditPolicy());
+ // XXX need an SCR to runtime to have another abstract superclass that would let children add reasonable editpolicies
+ // removeEditPolicy(org.eclipse.gmf.runtime.diagram.ui.editpolicies.EditPolicyRoles.CONNECTION_HANDLES_ROLE);
+ }
+
+ /**
+ * @generated
+ */
+ protected LayoutEditPolicy createLayoutEditPolicy() {
+ org.eclipse.gmf.runtime.diagram.ui.editpolicies.LayoutEditPolicy lep = new org.eclipse.gmf.runtime.diagram.ui.editpolicies.LayoutEditPolicy() {
+
+ protected EditPolicy createChildEditPolicy(EditPart child) {
+ View childView = (View) child.getModel();
+ switch (ComrelVisualIDRegistry.getVisualID(childView)) {
+ case MultiInputPortNameType3EditPart.VISUAL_ID:
+ return new BorderItemSelectionEditPolicy() {
+
+ protected List createSelectionHandles() {
+ MoveHandle mh = new MoveHandle(
+ (GraphicalEditPart) getHost());
+ mh.setBorder(null);
+ return Collections.singletonList(mh);
+ }
+ };
+ }
+ EditPolicy result = child
+ .getEditPolicy(EditPolicy.PRIMARY_DRAG_ROLE);
+ if (result == null) {
+ result = new NonResizableEditPolicy();
+ }
+ return result;
+ }
+
+ protected Command getMoveChildrenCommand(Request request) {
+ return null;
+ }
+
+ protected Command getCreateCommand(CreateRequest request) {
+ return null;
+ }
+ };
+ return lep;
+ }
+
+ /**
+ * @generated NOT
+ */
+ protected IFigure createNodeShape() {
+ MultiInputPortFigure figure = new MultiInputPortFigure();
+ InputPort port = (InputPort) this.resolveSemanticElement();
+ figure.setPort(port);
+ return primaryShape = figure;
+ }
+
+ /**
+ * @generated
+ */
+ public MultiInputPortFigure getPrimaryShape() {
+ return (MultiInputPortFigure) primaryShape;
+ }
+
+ /**
+ * @generated
+ */
+ protected void addBorderItem(IFigure borderItemContainer,
+ IBorderItemEditPart borderItemEditPart) {
+ if (borderItemEditPart instanceof MultiInputPortNameType3EditPart) {
+ BorderItemLocator locator = new BorderItemLocator(getMainFigure(),
+ PositionConstants.SOUTH);
+ locator.setBorderItemOffset(new Dimension(-20, -20));
+ borderItemContainer.add(borderItemEditPart.getFigure(), locator);
+ } else {
+ super.addBorderItem(borderItemContainer, borderItemEditPart);
+ }
+ }
+
+ /**
+ * @generated
+ */
+ protected NodeFigure createNodePlate() {
+ DefaultSizeNodeFigure result = new DefaultSizeNodeFigure(20, 20);
+
+ //FIXME: workaround for #154536
+ result.getBounds().setSize(result.getPreferredSize());
+ return result;
+ }
+
+ /**
+ * Creates figure for this edit part.
+ *
+ * Body of this method does not depend on settings in generation model
+ * so you may safely remove <i>generated</i> tag and modify it.
+ *
+ * @generated
+ */
+ protected NodeFigure createMainFigure() {
+ NodeFigure figure = createNodePlate();
+ figure.setLayoutManager(new StackLayout());
+ IFigure shape = createNodeShape();
+ figure.add(shape);
+ contentPane = setupContentPane(shape);
+ return figure;
+ }
+
+ /**
+ * Default implementation treats passed figure as content pane.
+ * Respects layout one may have set for generated figure.
+ * @param nodeShape instance of generated figure class
+ * @generated
+ */
+ protected IFigure setupContentPane(IFigure nodeShape) {
+ return nodeShape; // use nodeShape itself as contentPane
+ }
+
+ /**
+ * @generated
+ */
+ public IFigure getContentPane() {
+ if (contentPane != null) {
+ return contentPane;
+ }
+ return super.getContentPane();
+ }
+
+ /**
+ * @generated
+ */
+ protected void setForegroundColor(Color color) {
+ if (primaryShape != null) {
+ primaryShape.setForegroundColor(color);
+ }
+ }
+
+ /**
+ * @generated
+ */
+ protected void setBackgroundColor(Color color) {
+ if (primaryShape != null) {
+ primaryShape.setBackgroundColor(color);
+ }
+ }
+
+ /**
+ * @generated
+ */
+ protected void setLineWidth(int width) {
+ if (primaryShape instanceof Shape) {
+ ((Shape) primaryShape).setLineWidth(width);
+ }
+ }
+
+ /**
+ * @generated
+ */
+ protected void setLineType(int style) {
+ if (primaryShape instanceof Shape) {
+ ((Shape) primaryShape).setLineStyle(style);
+ }
+ }
+
+ /**
+ * @generated
+ */
+ public EditPart getPrimaryChildEditPart() {
+ return getChildBySemanticHint(ComrelVisualIDRegistry
+ .getType(MultiInputPortNameType3EditPart.VISUAL_ID));
+ }
+
+ /**
+ * @generated
+ */
+ public List<IElementType> getMARelTypesOnSource() {
+ ArrayList<IElementType> types = new ArrayList<IElementType>(2);
+ types.add(ComrelElementTypes.MultiPortMapping_4002);
+ types.add(ComrelElementTypes.MultiSinglePortMapping_4003);
+ return types;
+ }
+
+ /**
+ * @generated
+ */
+ public List<IElementType> getMARelTypesOnSourceAndTarget(
+ IGraphicalEditPart targetEditPart) {
+ LinkedList<IElementType> types = new LinkedList<IElementType>();
+ if (targetEditPart instanceof MultiInputPortEditPart) {
+ types.add(ComrelElementTypes.MultiPortMapping_4002);
+ }
+ if (targetEditPart instanceof MultiInputPort2EditPart) {
+ types.add(ComrelElementTypes.MultiPortMapping_4002);
+ }
+ if (targetEditPart instanceof comrel.diagram.edit.parts.MultiInputPort3EditPart) {
+ types.add(ComrelElementTypes.MultiPortMapping_4002);
+ }
+ if (targetEditPart instanceof MultiInputPort4EditPart) {
+ types.add(ComrelElementTypes.MultiPortMapping_4002);
+ }
+ if (targetEditPart instanceof MultiInputPort5EditPart) {
+ types.add(ComrelElementTypes.MultiPortMapping_4002);
+ }
+ if (targetEditPart instanceof MultiInputPort6EditPart) {
+ types.add(ComrelElementTypes.MultiPortMapping_4002);
+ }
+ if (targetEditPart instanceof MultiInputPort7EditPart) {
+ types.add(ComrelElementTypes.MultiPortMapping_4002);
+ }
+ if (targetEditPart instanceof MultiInputPort8EditPart) {
+ types.add(ComrelElementTypes.MultiPortMapping_4002);
+ }
+ if (targetEditPart instanceof MultiInputPort9EditPart) {
+ types.add(ComrelElementTypes.MultiPortMapping_4002);
+ }
+ if (targetEditPart instanceof SingleInputPortEditPart) {
+ types.add(ComrelElementTypes.MultiSinglePortMapping_4003);
+ }
+ if (targetEditPart instanceof SingleInputPort2EditPart) {
+ types.add(ComrelElementTypes.MultiSinglePortMapping_4003);
+ }
+ if (targetEditPart instanceof SingleInputPort3EditPart) {
+ types.add(ComrelElementTypes.MultiSinglePortMapping_4003);
+ }
+ if (targetEditPart instanceof SingleInputPort4EditPart) {
+ types.add(ComrelElementTypes.MultiSinglePortMapping_4003);
+ }
+ if (targetEditPart instanceof SingleInputPort5EditPart) {
+ types.add(ComrelElementTypes.MultiSinglePortMapping_4003);
+ }
+ if (targetEditPart instanceof SingleInputPort6EditPart) {
+ types.add(ComrelElementTypes.MultiSinglePortMapping_4003);
+ }
+ if (targetEditPart instanceof SingleInputPort7EditPart) {
+ types.add(ComrelElementTypes.MultiSinglePortMapping_4003);
+ }
+ if (targetEditPart instanceof SingleInputPort8EditPart) {
+ types.add(ComrelElementTypes.MultiSinglePortMapping_4003);
+ }
+ if (targetEditPart instanceof SingleInputPort9EditPart) {
+ types.add(ComrelElementTypes.MultiSinglePortMapping_4003);
+ }
+ return types;
+ }
+
+ /**
+ * @generated
+ */
+ public List<IElementType> getMATypesForTarget(IElementType relationshipType) {
+ LinkedList<IElementType> types = new LinkedList<IElementType>();
+ if (relationshipType == ComrelElementTypes.MultiPortMapping_4002) {
+ types.add(ComrelElementTypes.MultiInputPort_3002);
+ types.add(ComrelElementTypes.MultiInputPort_3006);
+ types.add(ComrelElementTypes.MultiInputPort_3010);
+ types.add(ComrelElementTypes.MultiInputPort_3014);
+ types.add(ComrelElementTypes.MultiInputPort_3017);
+ types.add(ComrelElementTypes.MultiInputPort_3020);
+ types.add(ComrelElementTypes.MultiInputPort_3024);
+ types.add(ComrelElementTypes.MultiInputPort_3028);
+ types.add(ComrelElementTypes.MultiInputPort_3032);
+ } else if (relationshipType == ComrelElementTypes.MultiSinglePortMapping_4003) {
+ types.add(ComrelElementTypes.SingleInputPort_2001);
+ types.add(ComrelElementTypes.SingleInputPort_3001);
+ types.add(ComrelElementTypes.SingleInputPort_3005);
+ types.add(ComrelElementTypes.SingleInputPort_3009);
+ types.add(ComrelElementTypes.SingleInputPort_3013);
+ types.add(ComrelElementTypes.SingleInputPort_3023);
+ types.add(ComrelElementTypes.SingleInputPort_3027);
+ types.add(ComrelElementTypes.SingleInputPort_3031);
+ types.add(ComrelElementTypes.SingleInputPort_3035);
+ }
+ return types;
+ }
+
+ /**
+ * @generated
+ */
+ public List<IElementType> getMARelTypesOnTarget() {
+ ArrayList<IElementType> types = new ArrayList<IElementType>(1);
+ types.add(ComrelElementTypes.MultiPortMapping_4002);
+ return types;
+ }
+
+ /**
+ * @generated
+ */
+ public List<IElementType> getMATypesForSource(IElementType relationshipType) {
+ LinkedList<IElementType> types = new LinkedList<IElementType>();
+ if (relationshipType == ComrelElementTypes.MultiPortMapping_4002) {
+ types.add(ComrelElementTypes.MultiInputPort_3002);
+ types.add(ComrelElementTypes.MultiInputPort_3006);
+ types.add(ComrelElementTypes.MultiInputPort_3010);
+ types.add(ComrelElementTypes.MultiInputPort_3014);
+ types.add(ComrelElementTypes.MultiOutputPort_3015);
+ types.add(ComrelElementTypes.MultiInputPort_3017);
+ types.add(ComrelElementTypes.MultiInputPort_3020);
+ types.add(ComrelElementTypes.MultiOutputPort_3021);
+ types.add(ComrelElementTypes.MultiInputPort_3024);
+ types.add(ComrelElementTypes.MultiInputPort_3028);
+ types.add(ComrelElementTypes.MultiInputPort_3032);
+ }
+ return types;
+ }
+
+ /**
+ * @generated NOT
+ */
+ public class MultiInputPortFigure extends InputPortFigure {
+
+ /**
+ * @generated
+ */
+ public MultiInputPortFigure() {
+ this.setLineWidth(10);
+ this.setForegroundColor(THIS_FORE);
+ this.setPreferredSize(new Dimension(getMapMode().DPtoLP(20),
+ getMapMode().DPtoLP(20)));
+ this.setBorder(new MarginBorder(getMapMode().DPtoLP(5),
+ getMapMode().DPtoLP(5), getMapMode().DPtoLP(5),
+ getMapMode().DPtoLP(5)));
+ }
+
+ }
+
+ /**
+ * @generated
+ */
+ static final Color THIS_FORE = new Color(null, 255, 0, 0);
+
+}
diff --git a/org.eclipse.emf.refactor.comrel.diagram/src/comrel/diagram/edit/parts/MultiInputPort4EditPart.java b/org.eclipse.emf.refactor.comrel.diagram/src/comrel/diagram/edit/parts/MultiInputPort4EditPart.java
new file mode 100644
index 0000000..ad617f5
--- /dev/null
+++ b/org.eclipse.emf.refactor.comrel.diagram/src/comrel/diagram/edit/parts/MultiInputPort4EditPart.java
@@ -0,0 +1,408 @@
+/*
+ *
+ */
+package comrel.diagram.edit.parts;
+
+import java.util.ArrayList;
+import java.util.Collections;
+import java.util.LinkedList;
+import java.util.List;
+
+import org.eclipse.draw2d.IFigure;
+import org.eclipse.draw2d.MarginBorder;
+import org.eclipse.draw2d.PositionConstants;
+import org.eclipse.draw2d.RectangleFigure;
+import org.eclipse.draw2d.Shape;
+import org.eclipse.draw2d.StackLayout;
+import org.eclipse.draw2d.geometry.Dimension;
+import org.eclipse.gef.EditPart;
+import org.eclipse.gef.EditPolicy;
+import org.eclipse.gef.GraphicalEditPart;
+import org.eclipse.gef.Request;
+import org.eclipse.gef.commands.Command;
+import org.eclipse.gef.editpolicies.LayoutEditPolicy;
+import org.eclipse.gef.editpolicies.NonResizableEditPolicy;
+import org.eclipse.gef.handles.MoveHandle;
+import org.eclipse.gef.requests.CreateRequest;
+import org.eclipse.gmf.runtime.diagram.ui.editparts.BorderedBorderItemEditPart;
+import org.eclipse.gmf.runtime.diagram.ui.editparts.IBorderItemEditPart;
+import org.eclipse.gmf.runtime.diagram.ui.editparts.IGraphicalEditPart;
+import org.eclipse.gmf.runtime.diagram.ui.editpolicies.BorderItemSelectionEditPolicy;
+import org.eclipse.gmf.runtime.diagram.ui.editpolicies.EditPolicyRoles;
+import org.eclipse.gmf.runtime.diagram.ui.figures.BorderItemLocator;
+import org.eclipse.gmf.runtime.draw2d.ui.figures.WrappingLabel;
+import org.eclipse.gmf.runtime.emf.type.core.IElementType;
+import org.eclipse.gmf.runtime.gef.ui.figures.DefaultSizeNodeFigure;
+import org.eclipse.gmf.runtime.gef.ui.figures.NodeFigure;
+import org.eclipse.gmf.runtime.notation.View;
+import org.eclipse.swt.graphics.Color;
+
+import comrel.InputPort;
+import comrel.diagram.edit.parts.MultiInputPort8EditPart.MultiInputPortFigure;
+import comrel.diagram.edit.policies.MultiInputPort4ItemSemanticEditPolicy;
+import comrel.diagram.part.ComrelVisualIDRegistry;
+import comrel.diagram.providers.ComrelElementTypes;
+import comrel.figures.InputPortFigure;
+
+/**
+ * @generated
+ */
+public class MultiInputPort4EditPart extends BorderedBorderItemEditPart {
+
+ /**
+ * @generated
+ */
+ public static final int VISUAL_ID = 3014;
+
+ /**
+ * @generated
+ */
+ protected IFigure contentPane;
+
+ /**
+ * @generated
+ */
+ protected IFigure primaryShape;
+
+ /**
+ * @generated
+ */
+ public MultiInputPort4EditPart(View view) {
+ super(view);
+ }
+
+ /**
+ * @generated
+ */
+ protected void createDefaultEditPolicies() {
+ super.createDefaultEditPolicies();
+ installEditPolicy(EditPolicy.PRIMARY_DRAG_ROLE,
+ getPrimaryDragEditPolicy());
+ installEditPolicy(EditPolicyRoles.SEMANTIC_ROLE,
+ new MultiInputPort4ItemSemanticEditPolicy());
+ installEditPolicy(EditPolicy.LAYOUT_ROLE, createLayoutEditPolicy());
+ // XXX need an SCR to runtime to have another abstract superclass that would let children add reasonable editpolicies
+ // removeEditPolicy(org.eclipse.gmf.runtime.diagram.ui.editpolicies.EditPolicyRoles.CONNECTION_HANDLES_ROLE);
+ }
+
+ /**
+ * @generated
+ */
+ protected LayoutEditPolicy createLayoutEditPolicy() {
+ org.eclipse.gmf.runtime.diagram.ui.editpolicies.LayoutEditPolicy lep = new org.eclipse.gmf.runtime.diagram.ui.editpolicies.LayoutEditPolicy() {
+
+ protected EditPolicy createChildEditPolicy(EditPart child) {
+ View childView = (View) child.getModel();
+ switch (ComrelVisualIDRegistry.getVisualID(childView)) {
+ case MultiInputPortNameType4EditPart.VISUAL_ID:
+ return new BorderItemSelectionEditPolicy() {
+
+ protected List createSelectionHandles() {
+ MoveHandle mh = new MoveHandle(
+ (GraphicalEditPart) getHost());
+ mh.setBorder(null);
+ return Collections.singletonList(mh);
+ }
+ };
+ }
+ EditPolicy result = child
+ .getEditPolicy(EditPolicy.PRIMARY_DRAG_ROLE);
+ if (result == null) {
+ result = new NonResizableEditPolicy();
+ }
+ return result;
+ }
+
+ protected Command getMoveChildrenCommand(Request request) {
+ return null;
+ }
+
+ protected Command getCreateCommand(CreateRequest request) {
+ return null;
+ }
+ };
+ return lep;
+ }
+
+ /**
+ * @generated NOT
+ */
+ protected IFigure createNodeShape() {
+ MultiInputPortFigure figure = new MultiInputPortFigure();
+ InputPort port = (InputPort) this.resolveSemanticElement();
+ figure.setPort(port);
+ return primaryShape = figure;
+ }
+
+ /**
+ * @generated
+ */
+ public MultiInputPortFigure getPrimaryShape() {
+ return (MultiInputPortFigure) primaryShape;
+ }
+
+ /**
+ * @generated
+ */
+ protected void addBorderItem(IFigure borderItemContainer,
+ IBorderItemEditPart borderItemEditPart) {
+ if (borderItemEditPart instanceof MultiInputPortNameType4EditPart) {
+ BorderItemLocator locator = new BorderItemLocator(getMainFigure(),
+ PositionConstants.SOUTH);
+ locator.setBorderItemOffset(new Dimension(-20, -20));
+ borderItemContainer.add(borderItemEditPart.getFigure(), locator);
+ } else {
+ super.addBorderItem(borderItemContainer, borderItemEditPart);
+ }
+ }
+
+ /**
+ * @generated
+ */
+ protected NodeFigure createNodePlate() {
+ DefaultSizeNodeFigure result = new DefaultSizeNodeFigure(20, 20);
+
+ //FIXME: workaround for #154536
+ result.getBounds().setSize(result.getPreferredSize());
+ return result;
+ }
+
+ /**
+ * Creates figure for this edit part.
+ *
+ * Body of this method does not depend on settings in generation model
+ * so you may safely remove <i>generated</i> tag and modify it.
+ *
+ * @generated
+ */
+ protected NodeFigure createMainFigure() {
+ NodeFigure figure = createNodePlate();
+ figure.setLayoutManager(new StackLayout());
+ IFigure shape = createNodeShape();
+ figure.add(shape);
+ contentPane = setupContentPane(shape);
+ return figure;
+ }
+
+ /**
+ * Default implementation treats passed figure as content pane.
+ * Respects layout one may have set for generated figure.
+ * @param nodeShape instance of generated figure class
+ * @generated
+ */
+ protected IFigure setupContentPane(IFigure nodeShape) {
+ return nodeShape; // use nodeShape itself as contentPane
+ }
+
+ /**
+ * @generated
+ */
+ public IFigure getContentPane() {
+ if (contentPane != null) {
+ return contentPane;
+ }
+ return super.getContentPane();
+ }
+
+ /**
+ * @generated
+ */
+ protected void setForegroundColor(Color color) {
+ if (primaryShape != null) {
+ primaryShape.setForegroundColor(color);
+ }
+ }
+
+ /**
+ * @generated
+ */
+ protected void setBackgroundColor(Color color) {
+ if (primaryShape != null) {
+ primaryShape.setBackgroundColor(color);
+ }
+ }
+
+ /**
+ * @generated
+ */
+ protected void setLineWidth(int width) {
+ if (primaryShape instanceof Shape) {
+ ((Shape) primaryShape).setLineWidth(width);
+ }
+ }
+
+ /**
+ * @generated
+ */
+ protected void setLineType(int style) {
+ if (primaryShape instanceof Shape) {
+ ((Shape) primaryShape).setLineStyle(style);
+ }
+ }
+
+ /**
+ * @generated
+ */
+ public EditPart getPrimaryChildEditPart() {
+ return getChildBySemanticHint(ComrelVisualIDRegistry
+ .getType(MultiInputPortNameType4EditPart.VISUAL_ID));
+ }
+
+ /**
+ * @generated
+ */
+ public List<IElementType> getMARelTypesOnSource() {
+ ArrayList<IElementType> types = new ArrayList<IElementType>(2);
+ types.add(ComrelElementTypes.MultiPortMapping_4002);
+ types.add(ComrelElementTypes.MultiSinglePortMapping_4003);
+ return types;
+ }
+
+ /**
+ * @generated
+ */
+ public List<IElementType> getMARelTypesOnSourceAndTarget(
+ IGraphicalEditPart targetEditPart) {
+ LinkedList<IElementType> types = new LinkedList<IElementType>();
+ if (targetEditPart instanceof MultiInputPortEditPart) {
+ types.add(ComrelElementTypes.MultiPortMapping_4002);
+ }
+ if (targetEditPart instanceof MultiInputPort2EditPart) {
+ types.add(ComrelElementTypes.MultiPortMapping_4002);
+ }
+ if (targetEditPart instanceof MultiInputPort3EditPart) {
+ types.add(ComrelElementTypes.MultiPortMapping_4002);
+ }
+ if (targetEditPart instanceof comrel.diagram.edit.parts.MultiInputPort4EditPart) {
+ types.add(ComrelElementTypes.MultiPortMapping_4002);
+ }
+ if (targetEditPart instanceof MultiInputPort5EditPart) {
+ types.add(ComrelElementTypes.MultiPortMapping_4002);
+ }
+ if (targetEditPart instanceof MultiInputPort6EditPart) {
+ types.add(ComrelElementTypes.MultiPortMapping_4002);
+ }
+ if (targetEditPart instanceof MultiInputPort7EditPart) {
+ types.add(ComrelElementTypes.MultiPortMapping_4002);
+ }
+ if (targetEditPart instanceof MultiInputPort8EditPart) {
+ types.add(ComrelElementTypes.MultiPortMapping_4002);
+ }
+ if (targetEditPart instanceof MultiInputPort9EditPart) {
+ types.add(ComrelElementTypes.MultiPortMapping_4002);
+ }
+ if (targetEditPart instanceof SingleInputPortEditPart) {
+ types.add(ComrelElementTypes.MultiSinglePortMapping_4003);
+ }
+ if (targetEditPart instanceof SingleInputPort2EditPart) {
+ types.add(ComrelElementTypes.MultiSinglePortMapping_4003);
+ }
+ if (targetEditPart instanceof SingleInputPort3EditPart) {
+ types.add(ComrelElementTypes.MultiSinglePortMapping_4003);
+ }
+ if (targetEditPart instanceof SingleInputPort4EditPart) {
+ types.add(ComrelElementTypes.MultiSinglePortMapping_4003);
+ }
+ if (targetEditPart instanceof SingleInputPort5EditPart) {
+ types.add(ComrelElementTypes.MultiSinglePortMapping_4003);
+ }
+ if (targetEditPart instanceof SingleInputPort6EditPart) {
+ types.add(ComrelElementTypes.MultiSinglePortMapping_4003);
+ }
+ if (targetEditPart instanceof SingleInputPort7EditPart) {
+ types.add(ComrelElementTypes.MultiSinglePortMapping_4003);
+ }
+ if (targetEditPart instanceof SingleInputPort8EditPart) {
+ types.add(ComrelElementTypes.MultiSinglePortMapping_4003);
+ }
+ if (targetEditPart instanceof SingleInputPort9EditPart) {
+ types.add(ComrelElementTypes.MultiSinglePortMapping_4003);
+ }
+ return types;
+ }
+
+ /**
+ * @generated
+ */
+ public List<IElementType> getMATypesForTarget(IElementType relationshipType) {
+ LinkedList<IElementType> types = new LinkedList<IElementType>();
+ if (relationshipType == ComrelElementTypes.MultiPortMapping_4002) {
+ types.add(ComrelElementTypes.MultiInputPort_3002);
+ types.add(ComrelElementTypes.MultiInputPort_3006);
+ types.add(ComrelElementTypes.MultiInputPort_3010);
+ types.add(ComrelElementTypes.MultiInputPort_3014);
+ types.add(ComrelElementTypes.MultiInputPort_3017);
+ types.add(ComrelElementTypes.MultiInputPort_3020);
+ types.add(ComrelElementTypes.MultiInputPort_3024);
+ types.add(ComrelElementTypes.MultiInputPort_3028);
+ types.add(ComrelElementTypes.MultiInputPort_3032);
+ } else if (relationshipType == ComrelElementTypes.MultiSinglePortMapping_4003) {
+ types.add(ComrelElementTypes.SingleInputPort_2001);
+ types.add(ComrelElementTypes.SingleInputPort_3001);
+ types.add(ComrelElementTypes.SingleInputPort_3005);
+ types.add(ComrelElementTypes.SingleInputPort_3009);
+ types.add(ComrelElementTypes.SingleInputPort_3013);
+ types.add(ComrelElementTypes.SingleInputPort_3023);
+ types.add(ComrelElementTypes.SingleInputPort_3027);
+ types.add(ComrelElementTypes.SingleInputPort_3031);
+ types.add(ComrelElementTypes.SingleInputPort_3035);
+ }
+ return types;
+ }
+
+ /**
+ * @generated
+ */
+ public List<IElementType> getMARelTypesOnTarget() {
+ ArrayList<IElementType> types = new ArrayList<IElementType>(1);
+ types.add(ComrelElementTypes.MultiPortMapping_4002);
+ return types;
+ }
+
+ /**
+ * @generated
+ */
+ public List<IElementType> getMATypesForSource(IElementType relationshipType) {
+ LinkedList<IElementType> types = new LinkedList<IElementType>();
+ if (relationshipType == ComrelElementTypes.MultiPortMapping_4002) {
+ types.add(ComrelElementTypes.MultiInputPort_3002);
+ types.add(ComrelElementTypes.MultiInputPort_3006);
+ types.add(ComrelElementTypes.MultiInputPort_3010);
+ types.add(ComrelElementTypes.MultiInputPort_3014);
+ types.add(ComrelElementTypes.MultiOutputPort_3015);
+ types.add(ComrelElementTypes.MultiInputPort_3017);
+ types.add(ComrelElementTypes.MultiInputPort_3020);
+ types.add(ComrelElementTypes.MultiOutputPort_3021);
+ types.add(ComrelElementTypes.MultiInputPort_3024);
+ types.add(ComrelElementTypes.MultiInputPort_3028);
+ types.add(ComrelElementTypes.MultiInputPort_3032);
+ }
+ return types;
+ }
+
+ /**
+ * @generated NOT
+ */
+ public class MultiInputPortFigure extends InputPortFigure {
+
+ /**
+ * @generated
+ */
+ public MultiInputPortFigure() {
+ this.setLineWidth(10);
+ this.setForegroundColor(THIS_FORE);
+ this.setPreferredSize(new Dimension(getMapMode().DPtoLP(20),
+ getMapMode().DPtoLP(20)));
+ this.setBorder(new MarginBorder(getMapMode().DPtoLP(5),
+ getMapMode().DPtoLP(5), getMapMode().DPtoLP(5),
+ getMapMode().DPtoLP(5)));
+ }
+
+ }
+
+ /**
+ * @generated
+ */
+ static final Color THIS_FORE = new Color(null, 255, 0, 0);
+
+}
diff --git a/org.eclipse.emf.refactor.comrel.diagram/src/comrel/diagram/edit/parts/MultiInputPort5EditPart.java b/org.eclipse.emf.refactor.comrel.diagram/src/comrel/diagram/edit/parts/MultiInputPort5EditPart.java
new file mode 100644
index 0000000..01e7cbf
--- /dev/null
+++ b/org.eclipse.emf.refactor.comrel.diagram/src/comrel/diagram/edit/parts/MultiInputPort5EditPart.java
@@ -0,0 +1,408 @@
+/*
+ *
+ */
+package comrel.diagram.edit.parts;
+
+import java.util.ArrayList;
+import java.util.Collections;
+import java.util.LinkedList;
+import java.util.List;
+
+import org.eclipse.draw2d.IFigure;
+import org.eclipse.draw2d.MarginBorder;
+import org.eclipse.draw2d.PositionConstants;
+import org.eclipse.draw2d.RectangleFigure;
+import org.eclipse.draw2d.Shape;
+import org.eclipse.draw2d.StackLayout;
+import org.eclipse.draw2d.geometry.Dimension;
+import org.eclipse.gef.EditPart;
+import org.eclipse.gef.EditPolicy;
+import org.eclipse.gef.GraphicalEditPart;
+import org.eclipse.gef.Request;
+import org.eclipse.gef.commands.Command;
+import org.eclipse.gef.editpolicies.LayoutEditPolicy;
+import org.eclipse.gef.editpolicies.NonResizableEditPolicy;
+import org.eclipse.gef.handles.MoveHandle;
+import org.eclipse.gef.requests.CreateRequest;
+import org.eclipse.gmf.runtime.diagram.ui.editparts.BorderedBorderItemEditPart;
+import org.eclipse.gmf.runtime.diagram.ui.editparts.IBorderItemEditPart;
+import org.eclipse.gmf.runtime.diagram.ui.editparts.IGraphicalEditPart;
+import org.eclipse.gmf.runtime.diagram.ui.editpolicies.BorderItemSelectionEditPolicy;
+import org.eclipse.gmf.runtime.diagram.ui.editpolicies.EditPolicyRoles;
+import org.eclipse.gmf.runtime.diagram.ui.figures.BorderItemLocator;
+import org.eclipse.gmf.runtime.draw2d.ui.figures.WrappingLabel;
+import org.eclipse.gmf.runtime.emf.type.core.IElementType;
+import org.eclipse.gmf.runtime.gef.ui.figures.DefaultSizeNodeFigure;
+import org.eclipse.gmf.runtime.gef.ui.figures.NodeFigure;
+import org.eclipse.gmf.runtime.notation.View;
+import org.eclipse.swt.graphics.Color;
+
+import comrel.InputPort;
+import comrel.diagram.edit.parts.MultiInputPort8EditPart.MultiInputPortFigure;
+import comrel.diagram.edit.policies.MultiInputPort5ItemSemanticEditPolicy;
+import comrel.diagram.part.ComrelVisualIDRegistry;
+import comrel.diagram.providers.ComrelElementTypes;
+import comrel.figures.InputPortFigure;
+
+/**
+ * @generated
+ */
+public class MultiInputPort5EditPart extends BorderedBorderItemEditPart {
+
+ /**
+ * @generated
+ */
+ public static final int VISUAL_ID = 3017;
+
+ /**
+ * @generated
+ */
+ protected IFigure contentPane;
+
+ /**
+ * @generated
+ */
+ protected IFigure primaryShape;
+
+ /**
+ * @generated
+ */
+ public MultiInputPort5EditPart(View view) {
+ super(view);
+ }
+
+ /**
+ * @generated
+ */
+ protected void createDefaultEditPolicies() {
+ super.createDefaultEditPolicies();
+ installEditPolicy(EditPolicy.PRIMARY_DRAG_ROLE,
+ getPrimaryDragEditPolicy());
+ installEditPolicy(EditPolicyRoles.SEMANTIC_ROLE,
+ new MultiInputPort5ItemSemanticEditPolicy());
+ installEditPolicy(EditPolicy.LAYOUT_ROLE, createLayoutEditPolicy());
+ // XXX need an SCR to runtime to have another abstract superclass that would let children add reasonable editpolicies
+ // removeEditPolicy(org.eclipse.gmf.runtime.diagram.ui.editpolicies.EditPolicyRoles.CONNECTION_HANDLES_ROLE);
+ }
+
+ /**
+ * @generated
+ */
+ protected LayoutEditPolicy createLayoutEditPolicy() {
+ org.eclipse.gmf.runtime.diagram.ui.editpolicies.LayoutEditPolicy lep = new org.eclipse.gmf.runtime.diagram.ui.editpolicies.LayoutEditPolicy() {
+
+ protected EditPolicy createChildEditPolicy(EditPart child) {
+ View childView = (View) child.getModel();
+ switch (ComrelVisualIDRegistry.getVisualID(childView)) {
+ case MultiInputPortNameType5EditPart.VISUAL_ID:
+ return new BorderItemSelectionEditPolicy() {
+
+ protected List createSelectionHandles() {
+ MoveHandle mh = new MoveHandle(
+ (GraphicalEditPart) getHost());
+ mh.setBorder(null);
+ return Collections.singletonList(mh);
+ }
+ };
+ }
+ EditPolicy result = child
+ .getEditPolicy(EditPolicy.PRIMARY_DRAG_ROLE);
+ if (result == null) {
+ result = new NonResizableEditPolicy();
+ }
+ return result;
+ }
+
+ protected Command getMoveChildrenCommand(Request request) {
+ return null;
+ }
+
+ protected Command getCreateCommand(CreateRequest request) {
+ return null;
+ }
+ };
+ return lep;
+ }
+
+ /**
+ * @generated NOT
+ */
+ protected IFigure createNodeShape() {
+ MultiInputPortFigure figure = new MultiInputPortFigure();
+ InputPort port = (InputPort) this.resolveSemanticElement();
+ figure.setPort(port);
+ return primaryShape = figure;
+ }
+
+ /**
+ * @generated
+ */
+ public MultiInputPortFigure getPrimaryShape() {
+ return (MultiInputPortFigure) primaryShape;
+ }
+
+ /**
+ * @generated
+ */
+ protected void addBorderItem(IFigure borderItemContainer,
+ IBorderItemEditPart borderItemEditPart) {
+ if (borderItemEditPart instanceof MultiInputPortNameType5EditPart) {
+ BorderItemLocator locator = new BorderItemLocator(getMainFigure(),
+ PositionConstants.SOUTH);
+ locator.setBorderItemOffset(new Dimension(-20, -20));
+ borderItemContainer.add(borderItemEditPart.getFigure(), locator);
+ } else {
+ super.addBorderItem(borderItemContainer, borderItemEditPart);
+ }
+ }
+
+ /**
+ * @generated
+ */
+ protected NodeFigure createNodePlate() {
+ DefaultSizeNodeFigure result = new DefaultSizeNodeFigure(20, 20);
+
+ //FIXME: workaround for #154536
+ result.getBounds().setSize(result.getPreferredSize());
+ return result;
+ }
+
+ /**
+ * Creates figure for this edit part.
+ *
+ * Body of this method does not depend on settings in generation model
+ * so you may safely remove <i>generated</i> tag and modify it.
+ *
+ * @generated
+ */
+ protected NodeFigure createMainFigure() {
+ NodeFigure figure = createNodePlate();
+ figure.setLayoutManager(new StackLayout());
+ IFigure shape = createNodeShape();
+ figure.add(shape);
+ contentPane = setupContentPane(shape);
+ return figure;
+ }
+
+ /**
+ * Default implementation treats passed figure as content pane.
+ * Respects layout one may have set for generated figure.
+ * @param nodeShape instance of generated figure class
+ * @generated
+ */
+ protected IFigure setupContentPane(IFigure nodeShape) {
+ return nodeShape; // use nodeShape itself as contentPane
+ }
+
+ /**
+ * @generated
+ */
+ public IFigure getContentPane() {
+ if (contentPane != null) {
+ return contentPane;
+ }
+ return super.getContentPane();
+ }
+
+ /**
+ * @generated
+ */
+ protected void setForegroundColor(Color color) {
+ if (primaryShape != null) {
+ primaryShape.setForegroundColor(color);
+ }
+ }
+
+ /**
+ * @generated
+ */
+ protected void setBackgroundColor(Color color) {
+ if (primaryShape != null) {
+ primaryShape.setBackgroundColor(color);
+ }
+ }
+
+ /**
+ * @generated
+ */
+ protected void setLineWidth(int width) {
+ if (primaryShape instanceof Shape) {
+ ((Shape) primaryShape).setLineWidth(width);
+ }
+ }
+
+ /**
+ * @generated
+ */
+ protected void setLineType(int style) {
+ if (primaryShape instanceof Shape) {
+ ((Shape) primaryShape).setLineStyle(style);
+ }
+ }
+
+ /**
+ * @generated
+ */
+ public EditPart getPrimaryChildEditPart() {
+ return getChildBySemanticHint(ComrelVisualIDRegistry
+ .getType(MultiInputPortNameType5EditPart.VISUAL_ID));
+ }
+
+ /**
+ * @generated
+ */
+ public List<IElementType> getMARelTypesOnSource() {
+ ArrayList<IElementType> types = new ArrayList<IElementType>(2);
+ types.add(ComrelElementTypes.MultiPortMapping_4002);
+ types.add(ComrelElementTypes.MultiSinglePortMapping_4003);
+ return types;
+ }
+
+ /**
+ * @generated
+ */
+ public List<IElementType> getMARelTypesOnSourceAndTarget(
+ IGraphicalEditPart targetEditPart) {
+ LinkedList<IElementType> types = new LinkedList<IElementType>();
+ if (targetEditPart instanceof MultiInputPortEditPart) {
+ types.add(ComrelElementTypes.MultiPortMapping_4002);
+ }
+ if (targetEditPart instanceof MultiInputPort2EditPart) {
+ types.add(ComrelElementTypes.MultiPortMapping_4002);
+ }
+ if (targetEditPart instanceof MultiInputPort3EditPart) {
+ types.add(ComrelElementTypes.MultiPortMapping_4002);
+ }
+ if (targetEditPart instanceof MultiInputPort4EditPart) {
+ types.add(ComrelElementTypes.MultiPortMapping_4002);
+ }
+ if (targetEditPart instanceof comrel.diagram.edit.parts.MultiInputPort5EditPart) {
+ types.add(ComrelElementTypes.MultiPortMapping_4002);
+ }
+ if (targetEditPart instanceof MultiInputPort6EditPart) {
+ types.add(ComrelElementTypes.MultiPortMapping_4002);
+ }
+ if (targetEditPart instanceof MultiInputPort7EditPart) {
+ types.add(ComrelElementTypes.MultiPortMapping_4002);
+ }
+ if (targetEditPart instanceof MultiInputPort8EditPart) {
+ types.add(ComrelElementTypes.MultiPortMapping_4002);
+ }
+ if (targetEditPart instanceof MultiInputPort9EditPart) {
+ types.add(ComrelElementTypes.MultiPortMapping_4002);
+ }
+ if (targetEditPart instanceof SingleInputPortEditPart) {
+ types.add(ComrelElementTypes.MultiSinglePortMapping_4003);
+ }
+ if (targetEditPart instanceof SingleInputPort2EditPart) {
+ types.add(ComrelElementTypes.MultiSinglePortMapping_4003);
+ }
+ if (targetEditPart instanceof SingleInputPort3EditPart) {
+ types.add(ComrelElementTypes.MultiSinglePortMapping_4003);
+ }
+ if (targetEditPart instanceof SingleInputPort4EditPart) {
+ types.add(ComrelElementTypes.MultiSinglePortMapping_4003);
+ }
+ if (targetEditPart instanceof SingleInputPort5EditPart) {
+ types.add(ComrelElementTypes.MultiSinglePortMapping_4003);
+ }
+ if (targetEditPart instanceof SingleInputPort6EditPart) {
+ types.add(ComrelElementTypes.MultiSinglePortMapping_4003);
+ }
+ if (targetEditPart instanceof SingleInputPort7EditPart) {
+ types.add(ComrelElementTypes.MultiSinglePortMapping_4003);
+ }
+ if (targetEditPart instanceof SingleInputPort8EditPart) {
+ types.add(ComrelElementTypes.MultiSinglePortMapping_4003);
+ }
+ if (targetEditPart instanceof SingleInputPort9EditPart) {
+ types.add(ComrelElementTypes.MultiSinglePortMapping_4003);
+ }
+ return types;
+ }
+
+ /**
+ * @generated
+ */
+ public List<IElementType> getMATypesForTarget(IElementType relationshipType) {
+ LinkedList<IElementType> types = new LinkedList<IElementType>();
+ if (relationshipType == ComrelElementTypes.MultiPortMapping_4002) {
+ types.add(ComrelElementTypes.MultiInputPort_3002);
+ types.add(ComrelElementTypes.MultiInputPort_3006);
+ types.add(ComrelElementTypes.MultiInputPort_3010);
+ types.add(ComrelElementTypes.MultiInputPort_3014);
+ types.add(ComrelElementTypes.MultiInputPort_3017);
+ types.add(ComrelElementTypes.MultiInputPort_3020);
+ types.add(ComrelElementTypes.MultiInputPort_3024);
+ types.add(ComrelElementTypes.MultiInputPort_3028);
+ types.add(ComrelElementTypes.MultiInputPort_3032);
+ } else if (relationshipType == ComrelElementTypes.MultiSinglePortMapping_4003) {
+ types.add(ComrelElementTypes.SingleInputPort_2001);
+ types.add(ComrelElementTypes.SingleInputPort_3001);
+ types.add(ComrelElementTypes.SingleInputPort_3005);
+ types.add(ComrelElementTypes.SingleInputPort_3009);
+ types.add(ComrelElementTypes.SingleInputPort_3013);
+ types.add(ComrelElementTypes.SingleInputPort_3023);
+ types.add(ComrelElementTypes.SingleInputPort_3027);
+ types.add(ComrelElementTypes.SingleInputPort_3031);
+ types.add(ComrelElementTypes.SingleInputPort_3035);
+ }
+ return types;
+ }
+
+ /**
+ * @generated
+ */
+ public List<IElementType> getMARelTypesOnTarget() {
+ ArrayList<IElementType> types = new ArrayList<IElementType>(1);
+ types.add(ComrelElementTypes.MultiPortMapping_4002);
+ return types;
+ }
+
+ /**
+ * @generated
+ */
+ public List<IElementType> getMATypesForSource(IElementType relationshipType) {
+ LinkedList<IElementType> types = new LinkedList<IElementType>();
+ if (relationshipType == ComrelElementTypes.MultiPortMapping_4002) {
+ types.add(ComrelElementTypes.MultiInputPort_3002);
+ types.add(ComrelElementTypes.MultiInputPort_3006);
+ types.add(ComrelElementTypes.MultiInputPort_3010);
+ types.add(ComrelElementTypes.MultiInputPort_3014);
+ types.add(ComrelElementTypes.MultiOutputPort_3015);
+ types.add(ComrelElementTypes.MultiInputPort_3017);
+ types.add(ComrelElementTypes.MultiInputPort_3020);
+ types.add(ComrelElementTypes.MultiOutputPort_3021);
+ types.add(ComrelElementTypes.MultiInputPort_3024);
+ types.add(ComrelElementTypes.MultiInputPort_3028);
+ types.add(ComrelElementTypes.MultiInputPort_3032);
+ }
+ return types;
+ }
+
+ /**
+ * @generated NOT
+ */
+ public class MultiInputPortFigure extends InputPortFigure {
+
+ /**
+ * @generated
+ */
+ public MultiInputPortFigure() {
+ this.setLineWidth(10);
+ this.setForegroundColor(THIS_FORE);
+ this.setPreferredSize(new Dimension(getMapMode().DPtoLP(20),
+ getMapMode().DPtoLP(20)));
+ this.setBorder(new MarginBorder(getMapMode().DPtoLP(5),
+ getMapMode().DPtoLP(5), getMapMode().DPtoLP(5),
+ getMapMode().DPtoLP(5)));
+ }
+
+ }
+
+ /**
+ * @generated
+ */
+ static final Color THIS_FORE = new Color(null, 255, 0, 0);
+
+}
diff --git a/org.eclipse.emf.refactor.comrel.diagram/src/comrel/diagram/edit/parts/MultiInputPort6EditPart.java b/org.eclipse.emf.refactor.comrel.diagram/src/comrel/diagram/edit/parts/MultiInputPort6EditPart.java
new file mode 100644
index 0000000..240953d
--- /dev/null
+++ b/org.eclipse.emf.refactor.comrel.diagram/src/comrel/diagram/edit/parts/MultiInputPort6EditPart.java
@@ -0,0 +1,408 @@
+/*
+ *
+ */
+package comrel.diagram.edit.parts;
+
+import java.util.ArrayList;
+import java.util.Collections;
+import java.util.LinkedList;
+import java.util.List;
+
+import org.eclipse.draw2d.IFigure;
+import org.eclipse.draw2d.MarginBorder;
+import org.eclipse.draw2d.PositionConstants;
+import org.eclipse.draw2d.RectangleFigure;
+import org.eclipse.draw2d.Shape;
+import org.eclipse.draw2d.StackLayout;
+import org.eclipse.draw2d.geometry.Dimension;
+import org.eclipse.gef.EditPart;
+import org.eclipse.gef.EditPolicy;
+import org.eclipse.gef.GraphicalEditPart;
+import org.eclipse.gef.Request;
+import org.eclipse.gef.commands.Command;
+import org.eclipse.gef.editpolicies.LayoutEditPolicy;
+import org.eclipse.gef.editpolicies.NonResizableEditPolicy;
+import org.eclipse.gef.handles.MoveHandle;
+import org.eclipse.gef.requests.CreateRequest;
+import org.eclipse.gmf.runtime.diagram.ui.editparts.BorderedBorderItemEditPart;
+import org.eclipse.gmf.runtime.diagram.ui.editparts.IBorderItemEditPart;
+import org.eclipse.gmf.runtime.diagram.ui.editparts.IGraphicalEditPart;
+import org.eclipse.gmf.runtime.diagram.ui.editpolicies.BorderItemSelectionEditPolicy;
+import org.eclipse.gmf.runtime.diagram.ui.editpolicies.EditPolicyRoles;
+import org.eclipse.gmf.runtime.diagram.ui.figures.BorderItemLocator;
+import org.eclipse.gmf.runtime.draw2d.ui.figures.WrappingLabel;
+import org.eclipse.gmf.runtime.emf.type.core.IElementType;
+import org.eclipse.gmf.runtime.gef.ui.figures.DefaultSizeNodeFigure;
+import org.eclipse.gmf.runtime.gef.ui.figures.NodeFigure;
+import org.eclipse.gmf.runtime.notation.View;
+import org.eclipse.swt.graphics.Color;
+
+import comrel.InputPort;
+import comrel.diagram.edit.parts.MultiInputPort8EditPart.MultiInputPortFigure;
+import comrel.diagram.edit.policies.MultiInputPort6ItemSemanticEditPolicy;
+import comrel.diagram.part.ComrelVisualIDRegistry;
+import comrel.diagram.providers.ComrelElementTypes;
+import comrel.figures.InputPortFigure;
+
+/**
+ * @generated
+ */
+public class MultiInputPort6EditPart extends BorderedBorderItemEditPart {
+
+ /**
+ * @generated
+ */
+ public static final int VISUAL_ID = 3020;
+
+ /**
+ * @generated
+ */
+ protected IFigure contentPane;
+
+ /**
+ * @generated
+ */
+ protected IFigure primaryShape;
+
+ /**
+ * @generated
+ */
+ public MultiInputPort6EditPart(View view) {
+ super(view);
+ }
+
+ /**
+ * @generated
+ */
+ protected void createDefaultEditPolicies() {
+ super.createDefaultEditPolicies();
+ installEditPolicy(EditPolicy.PRIMARY_DRAG_ROLE,
+ getPrimaryDragEditPolicy());
+ installEditPolicy(EditPolicyRoles.SEMANTIC_ROLE,
+ new MultiInputPort6ItemSemanticEditPolicy());
+ installEditPolicy(EditPolicy.LAYOUT_ROLE, createLayoutEditPolicy());
+ // XXX need an SCR to runtime to have another abstract superclass that would let children add reasonable editpolicies
+ // removeEditPolicy(org.eclipse.gmf.runtime.diagram.ui.editpolicies.EditPolicyRoles.CONNECTION_HANDLES_ROLE);
+ }
+
+ /**
+ * @generated
+ */
+ protected LayoutEditPolicy createLayoutEditPolicy() {
+ org.eclipse.gmf.runtime.diagram.ui.editpolicies.LayoutEditPolicy lep = new org.eclipse.gmf.runtime.diagram.ui.editpolicies.LayoutEditPolicy() {
+
+ protected EditPolicy createChildEditPolicy(EditPart child) {
+ View childView = (View) child.getModel();
+ switch (ComrelVisualIDRegistry.getVisualID(childView)) {
+ case MultiInputPortNameType6EditPart.VISUAL_ID:
+ return new BorderItemSelectionEditPolicy() {
+
+ protected List createSelectionHandles() {
+ MoveHandle mh = new MoveHandle(
+ (GraphicalEditPart) getHost());
+ mh.setBorder(null);
+ return Collections.singletonList(mh);
+ }
+ };
+ }
+ EditPolicy result = child
+ .getEditPolicy(EditPolicy.PRIMARY_DRAG_ROLE);
+ if (result == null) {
+ result = new NonResizableEditPolicy();
+ }
+ return result;
+ }
+
+ protected Command getMoveChildrenCommand(Request request) {
+ return null;
+ }
+
+ protected Command getCreateCommand(CreateRequest request) {
+ return null;
+ }
+ };
+ return lep;
+ }
+
+ /**
+ * @generated NOT
+ */
+ protected IFigure createNodeShape() {
+ MultiInputPortFigure figure = new MultiInputPortFigure();
+ InputPort port = (InputPort) this.resolveSemanticElement();
+ figure.setPort(port);
+ return primaryShape = figure;
+ }
+
+ /**
+ * @generated
+ */
+ public MultiInputPortFigure getPrimaryShape() {
+ return (MultiInputPortFigure) primaryShape;
+ }
+
+ /**
+ * @generated
+ */
+ protected void addBorderItem(IFigure borderItemContainer,
+ IBorderItemEditPart borderItemEditPart) {
+ if (borderItemEditPart instanceof MultiInputPortNameType6EditPart) {
+ BorderItemLocator locator = new BorderItemLocator(getMainFigure(),
+ PositionConstants.SOUTH);
+ locator.setBorderItemOffset(new Dimension(-20, -20));
+ borderItemContainer.add(borderItemEditPart.getFigure(), locator);
+ } else {
+ super.addBorderItem(borderItemContainer, borderItemEditPart);
+ }
+ }
+
+ /**
+ * @generated
+ */
+ protected NodeFigure createNodePlate() {
+ DefaultSizeNodeFigure result = new DefaultSizeNodeFigure(20, 20);
+
+ //FIXME: workaround for #154536
+ result.getBounds().setSize(result.getPreferredSize());
+ return result;
+ }
+
+ /**
+ * Creates figure for this edit part.
+ *
+ * Body of this method does not depend on settings in generation model
+ * so you may safely remove <i>generated</i> tag and modify it.
+ *
+ * @generated
+ */
+ protected NodeFigure createMainFigure() {
+ NodeFigure figure = createNodePlate();
+ figure.setLayoutManager(new StackLayout());
+ IFigure shape = createNodeShape();
+ figure.add(shape);
+ contentPane = setupContentPane(shape);
+ return figure;
+ }
+
+ /**
+ * Default implementation treats passed figure as content pane.
+ * Respects layout one may have set for generated figure.
+ * @param nodeShape instance of generated figure class
+ * @generated
+ */
+ protected IFigure setupContentPane(IFigure nodeShape) {
+ return nodeShape; // use nodeShape itself as contentPane
+ }
+
+ /**
+ * @generated
+ */
+ public IFigure getContentPane() {
+ if (contentPane != null) {
+ return contentPane;
+ }
+ return super.getContentPane();
+ }
+
+ /**
+ * @generated
+ */
+ protected void setForegroundColor(Color color) {
+ if (primaryShape != null) {
+ primaryShape.setForegroundColor(color);
+ }
+ }
+
+ /**
+ * @generated
+ */
+ protected void setBackgroundColor(Color color) {
+ if (primaryShape != null) {
+ primaryShape.setBackgroundColor(color);
+ }
+ }
+
+ /**
+ * @generated
+ */
+ protected void setLineWidth(int width) {
+ if (primaryShape instanceof Shape) {
+ ((Shape) primaryShape).setLineWidth(width);
+ }
+ }
+
+ /**
+ * @generated
+ */
+ protected void setLineType(int style) {
+ if (primaryShape instanceof Shape) {
+ ((Shape) primaryShape).setLineStyle(style);
+ }
+ }
+
+ /**
+ * @generated
+ */
+ public EditPart getPrimaryChildEditPart() {
+ return getChildBySemanticHint(ComrelVisualIDRegistry
+ .getType(MultiInputPortNameType6EditPart.VISUAL_ID));
+ }
+
+ /**
+ * @generated
+ */
+ public List<IElementType> getMARelTypesOnSource() {
+ ArrayList<IElementType> types = new ArrayList<IElementType>(2);
+ types.add(ComrelElementTypes.MultiPortMapping_4002);
+ types.add(ComrelElementTypes.MultiSinglePortMapping_4003);
+ return types;
+ }
+
+ /**
+ * @generated
+ */
+ public List<IElementType> getMARelTypesOnSourceAndTarget(
+ IGraphicalEditPart targetEditPart) {
+ LinkedList<IElementType> types = new LinkedList<IElementType>();
+ if (targetEditPart instanceof MultiInputPortEditPart) {
+ types.add(ComrelElementTypes.MultiPortMapping_4002);
+ }
+ if (targetEditPart instanceof MultiInputPort2EditPart) {
+ types.add(ComrelElementTypes.MultiPortMapping_4002);
+ }
+ if (targetEditPart instanceof MultiInputPort3EditPart) {
+ types.add(ComrelElementTypes.MultiPortMapping_4002);
+ }
+ if (targetEditPart instanceof MultiInputPort4EditPart) {
+ types.add(ComrelElementTypes.MultiPortMapping_4002);
+ }
+ if (targetEditPart instanceof MultiInputPort5EditPart) {
+ types.add(ComrelElementTypes.MultiPortMapping_4002);
+ }
+ if (targetEditPart instanceof comrel.diagram.edit.parts.MultiInputPort6EditPart) {
+ types.add(ComrelElementTypes.MultiPortMapping_4002);
+ }
+ if (targetEditPart instanceof MultiInputPort7EditPart) {
+ types.add(ComrelElementTypes.MultiPortMapping_4002);
+ }
+ if (targetEditPart instanceof MultiInputPort8EditPart) {
+ types.add(ComrelElementTypes.MultiPortMapping_4002);
+ }
+ if (targetEditPart instanceof MultiInputPort9EditPart) {
+ types.add(ComrelElementTypes.MultiPortMapping_4002);
+ }
+ if (targetEditPart instanceof SingleInputPortEditPart) {
+ types.add(ComrelElementTypes.MultiSinglePortMapping_4003);
+ }
+ if (targetEditPart instanceof SingleInputPort2EditPart) {
+ types.add(ComrelElementTypes.MultiSinglePortMapping_4003);
+ }
+ if (targetEditPart instanceof SingleInputPort3EditPart) {
+ types.add(ComrelElementTypes.MultiSinglePortMapping_4003);
+ }
+ if (targetEditPart instanceof SingleInputPort4EditPart) {
+ types.add(ComrelElementTypes.MultiSinglePortMapping_4003);
+ }
+ if (targetEditPart instanceof SingleInputPort5EditPart) {
+ types.add(ComrelElementTypes.MultiSinglePortMapping_4003);
+ }
+ if (targetEditPart instanceof SingleInputPort6EditPart) {
+ types.add(ComrelElementTypes.MultiSinglePortMapping_4003);
+ }
+ if (targetEditPart instanceof SingleInputPort7EditPart) {
+ types.add(ComrelElementTypes.MultiSinglePortMapping_4003);
+ }
+ if (targetEditPart instanceof SingleInputPort8EditPart) {
+ types.add(ComrelElementTypes.MultiSinglePortMapping_4003);
+ }
+ if (targetEditPart instanceof SingleInputPort9EditPart) {
+ types.add(ComrelElementTypes.MultiSinglePortMapping_4003);
+ }
+ return types;
+ }
+
+ /**
+ * @generated
+ */
+ public List<IElementType> getMATypesForTarget(IElementType relationshipType) {
+ LinkedList<IElementType> types = new LinkedList<IElementType>();
+ if (relationshipType == ComrelElementTypes.MultiPortMapping_4002) {
+ types.add(ComrelElementTypes.MultiInputPort_3002);
+ types.add(ComrelElementTypes.MultiInputPort_3006);
+ types.add(ComrelElementTypes.MultiInputPort_3010);
+ types.add(ComrelElementTypes.MultiInputPort_3014);
+ types.add(ComrelElementTypes.MultiInputPort_3017);
+ types.add(ComrelElementTypes.MultiInputPort_3020);
+ types.add(ComrelElementTypes.MultiInputPort_3024);
+ types.add(ComrelElementTypes.MultiInputPort_3028);
+ types.add(ComrelElementTypes.MultiInputPort_3032);
+ } else if (relationshipType == ComrelElementTypes.MultiSinglePortMapping_4003) {
+ types.add(ComrelElementTypes.SingleInputPort_2001);
+ types.add(ComrelElementTypes.SingleInputPort_3001);
+ types.add(ComrelElementTypes.SingleInputPort_3005);
+ types.add(ComrelElementTypes.SingleInputPort_3009);
+ types.add(ComrelElementTypes.SingleInputPort_3013);
+ types.add(ComrelElementTypes.SingleInputPort_3023);
+ types.add(ComrelElementTypes.SingleInputPort_3027);
+ types.add(ComrelElementTypes.SingleInputPort_3031);
+ types.add(ComrelElementTypes.SingleInputPort_3035);
+ }
+ return types;
+ }
+
+ /**
+ * @generated
+ */
+ public List<IElementType> getMARelTypesOnTarget() {
+ ArrayList<IElementType> types = new ArrayList<IElementType>(1);
+ types.add(ComrelElementTypes.MultiPortMapping_4002);
+ return types;
+ }
+
+ /**
+ * @generated
+ */
+ public List<IElementType> getMATypesForSource(IElementType relationshipType) {
+ LinkedList<IElementType> types = new LinkedList<IElementType>();
+ if (relationshipType == ComrelElementTypes.MultiPortMapping_4002) {
+ types.add(ComrelElementTypes.MultiInputPort_3002);
+ types.add(ComrelElementTypes.MultiInputPort_3006);
+ types.add(ComrelElementTypes.MultiInputPort_3010);
+ types.add(ComrelElementTypes.MultiInputPort_3014);
+ types.add(ComrelElementTypes.MultiOutputPort_3015);
+ types.add(ComrelElementTypes.MultiInputPort_3017);
+ types.add(ComrelElementTypes.MultiInputPort_3020);
+ types.add(ComrelElementTypes.MultiOutputPort_3021);
+ types.add(ComrelElementTypes.MultiInputPort_3024);
+ types.add(ComrelElementTypes.MultiInputPort_3028);
+ types.add(ComrelElementTypes.MultiInputPort_3032);
+ }
+ return types;
+ }
+
+ /**
+ * @generated NOT
+ */
+ public class MultiInputPortFigure extends InputPortFigure {
+
+ /**
+ * @generated
+ */
+ public MultiInputPortFigure() {
+ this.setLineWidth(10);
+ this.setForegroundColor(THIS_FORE);
+ this.setPreferredSize(new Dimension(getMapMode().DPtoLP(20),
+ getMapMode().DPtoLP(20)));
+ this.setBorder(new MarginBorder(getMapMode().DPtoLP(5),
+ getMapMode().DPtoLP(5), getMapMode().DPtoLP(5),
+ getMapMode().DPtoLP(5)));
+ }
+
+ }
+
+ /**
+ * @generated
+ */
+ static final Color THIS_FORE = new Color(null, 255, 0, 0);
+
+}
diff --git a/org.eclipse.emf.refactor.comrel.diagram/src/comrel/diagram/edit/parts/MultiInputPort7EditPart.java b/org.eclipse.emf.refactor.comrel.diagram/src/comrel/diagram/edit/parts/MultiInputPort7EditPart.java
new file mode 100644
index 0000000..e8f87ef
--- /dev/null
+++ b/org.eclipse.emf.refactor.comrel.diagram/src/comrel/diagram/edit/parts/MultiInputPort7EditPart.java
@@ -0,0 +1,408 @@
+/*
+ *
+ */
+package comrel.diagram.edit.parts;
+
+import java.util.ArrayList;
+import java.util.Collections;
+import java.util.LinkedList;
+import java.util.List;
+
+import org.eclipse.draw2d.IFigure;
+import org.eclipse.draw2d.MarginBorder;
+import org.eclipse.draw2d.PositionConstants;
+import org.eclipse.draw2d.RectangleFigure;
+import org.eclipse.draw2d.Shape;
+import org.eclipse.draw2d.StackLayout;
+import org.eclipse.draw2d.geometry.Dimension;
+import org.eclipse.gef.EditPart;
+import org.eclipse.gef.EditPolicy;
+import org.eclipse.gef.GraphicalEditPart;
+import org.eclipse.gef.Request;
+import org.eclipse.gef.commands.Command;
+import org.eclipse.gef.editpolicies.LayoutEditPolicy;
+import org.eclipse.gef.editpolicies.NonResizableEditPolicy;
+import org.eclipse.gef.handles.MoveHandle;
+import org.eclipse.gef.requests.CreateRequest;
+import org.eclipse.gmf.runtime.diagram.ui.editparts.BorderedBorderItemEditPart;
+import org.eclipse.gmf.runtime.diagram.ui.editparts.IBorderItemEditPart;
+import org.eclipse.gmf.runtime.diagram.ui.editparts.IGraphicalEditPart;
+import org.eclipse.gmf.runtime.diagram.ui.editpolicies.BorderItemSelectionEditPolicy;
+import org.eclipse.gmf.runtime.diagram.ui.editpolicies.EditPolicyRoles;
+import org.eclipse.gmf.runtime.diagram.ui.figures.BorderItemLocator;
+import org.eclipse.gmf.runtime.draw2d.ui.figures.WrappingLabel;
+import org.eclipse.gmf.runtime.emf.type.core.IElementType;
+import org.eclipse.gmf.runtime.gef.ui.figures.DefaultSizeNodeFigure;
+import org.eclipse.gmf.runtime.gef.ui.figures.NodeFigure;
+import org.eclipse.gmf.runtime.notation.View;
+import org.eclipse.swt.graphics.Color;
+
+import comrel.InputPort;
+import comrel.diagram.edit.parts.MultiInputPort8EditPart.MultiInputPortFigure;
+import comrel.diagram.edit.policies.MultiInputPort7ItemSemanticEditPolicy;
+import comrel.diagram.part.ComrelVisualIDRegistry;
+import comrel.diagram.providers.ComrelElementTypes;
+import comrel.figures.InputPortFigure;
+
+/**
+ * @generated
+ */
+public class MultiInputPort7EditPart extends BorderedBorderItemEditPart {
+
+ /**
+ * @generated
+ */
+ public static final int VISUAL_ID = 3024;
+
+ /**
+ * @generated
+ */
+ protected IFigure contentPane;
+
+ /**
+ * @generated
+ */
+ protected IFigure primaryShape;
+
+ /**
+ * @generated
+ */
+ public MultiInputPort7EditPart(View view) {
+ super(view);
+ }
+
+ /**
+ * @generated
+ */
+ protected void createDefaultEditPolicies() {
+ super.createDefaultEditPolicies();
+ installEditPolicy(EditPolicy.PRIMARY_DRAG_ROLE,
+ getPrimaryDragEditPolicy());
+ installEditPolicy(EditPolicyRoles.SEMANTIC_ROLE,
+ new MultiInputPort7ItemSemanticEditPolicy());
+ installEditPolicy(EditPolicy.LAYOUT_ROLE, createLayoutEditPolicy());
+ // XXX need an SCR to runtime to have another abstract superclass that would let children add reasonable editpolicies
+ // removeEditPolicy(org.eclipse.gmf.runtime.diagram.ui.editpolicies.EditPolicyRoles.CONNECTION_HANDLES_ROLE);
+ }
+
+ /**
+ * @generated
+ */
+ protected LayoutEditPolicy createLayoutEditPolicy() {
+ org.eclipse.gmf.runtime.diagram.ui.editpolicies.LayoutEditPolicy lep = new org.eclipse.gmf.runtime.diagram.ui.editpolicies.LayoutEditPolicy() {
+
+ protected EditPolicy createChildEditPolicy(EditPart child) {
+ View childView = (View) child.getModel();
+ switch (ComrelVisualIDRegistry.getVisualID(childView)) {
+ case MultiInputPortNameType7EditPart.VISUAL_ID:
+ return new BorderItemSelectionEditPolicy() {
+
+ protected List createSelectionHandles() {
+ MoveHandle mh = new MoveHandle(
+ (GraphicalEditPart) getHost());
+ mh.setBorder(null);
+ return Collections.singletonList(mh);
+ }
+ };
+ }
+ EditPolicy result = child
+ .getEditPolicy(EditPolicy.PRIMARY_DRAG_ROLE);
+ if (result == null) {
+ result = new NonResizableEditPolicy();
+ }
+ return result;
+ }
+
+ protected Command getMoveChildrenCommand(Request request) {
+ return null;
+ }
+
+ protected Command getCreateCommand(CreateRequest request) {
+ return null;
+ }
+ };
+ return lep;
+ }
+
+ /**
+ * @generated NOT
+ */
+ protected IFigure createNodeShape() {
+ MultiInputPortFigure figure = new MultiInputPortFigure();
+ InputPort port = (InputPort) this.resolveSemanticElement();
+ figure.setPort(port);
+ return primaryShape = figure;
+ }
+
+ /**
+ * @generated
+ */
+ public MultiInputPortFigure getPrimaryShape() {
+ return (MultiInputPortFigure) primaryShape;
+ }
+
+ /**
+ * @generated
+ */
+ protected void addBorderItem(IFigure borderItemContainer,
+ IBorderItemEditPart borderItemEditPart) {
+ if (borderItemEditPart instanceof MultiInputPortNameType7EditPart) {
+ BorderItemLocator locator = new BorderItemLocator(getMainFigure(),
+ PositionConstants.SOUTH);
+ locator.setBorderItemOffset(new Dimension(-20, -20));
+ borderItemContainer.add(borderItemEditPart.getFigure(), locator);
+ } else {
+ super.addBorderItem(borderItemContainer, borderItemEditPart);
+ }
+ }
+
+ /**
+ * @generated
+ */
+ protected NodeFigure createNodePlate() {
+ DefaultSizeNodeFigure result = new DefaultSizeNodeFigure(20, 20);
+
+ //FIXME: workaround for #154536
+ result.getBounds().setSize(result.getPreferredSize());
+ return result;
+ }
+
+ /**
+ * Creates figure for this edit part.
+ *
+ * Body of this method does not depend on settings in generation model
+ * so you may safely remove <i>generated</i> tag and modify it.
+ *
+ * @generated
+ */
+ protected NodeFigure createMainFigure() {
+ NodeFigure figure = createNodePlate();
+ figure.setLayoutManager(new StackLayout());
+ IFigure shape = createNodeShape();
+ figure.add(shape);
+ contentPane = setupContentPane(shape);
+ return figure;
+ }
+
+ /**
+ * Default implementation treats passed figure as content pane.
+ * Respects layout one may have set for generated figure.
+ * @param nodeShape instance of generated figure class
+ * @generated
+ */
+ protected IFigure setupContentPane(IFigure nodeShape) {
+ return nodeShape; // use nodeShape itself as contentPane
+ }
+
+ /**
+ * @generated
+ */
+ public IFigure getContentPane() {
+ if (contentPane != null) {
+ return contentPane;
+ }
+ return super.getContentPane();
+ }
+
+ /**
+ * @generated
+ */
+ protected void setForegroundColor(Color color) {
+ if (primaryShape != null) {
+ primaryShape.setForegroundColor(color);
+ }
+ }
+
+ /**
+ * @generated
+ */
+ protected void setBackgroundColor(Color color) {
+ if (primaryShape != null) {
+ primaryShape.setBackgroundColor(color);
+ }
+ }
+
+ /**
+ * @generated
+ */
+ protected void setLineWidth(int width) {
+ if (primaryShape instanceof Shape) {
+ ((Shape) primaryShape).setLineWidth(width);
+ }
+ }
+
+ /**
+ * @generated
+ */
+ protected void setLineType(int style) {
+ if (primaryShape instanceof Shape) {
+ ((Shape) primaryShape).setLineStyle(style);
+ }
+ }
+
+ /**
+ * @generated
+ */
+ public EditPart getPrimaryChildEditPart() {
+ return getChildBySemanticHint(ComrelVisualIDRegistry
+ .getType(MultiInputPortNameType7EditPart.VISUAL_ID));
+ }
+
+ /**
+ * @generated
+ */
+ public List<IElementType> getMARelTypesOnSource() {
+ ArrayList<IElementType> types = new ArrayList<IElementType>(2);
+ types.add(ComrelElementTypes.MultiPortMapping_4002);
+ types.add(ComrelElementTypes.MultiSinglePortMapping_4003);
+ return types;
+ }
+
+ /**
+ * @generated
+ */
+ public List<IElementType> getMARelTypesOnSourceAndTarget(
+ IGraphicalEditPart targetEditPart) {
+ LinkedList<IElementType> types = new LinkedList<IElementType>();
+ if (targetEditPart instanceof MultiInputPortEditPart) {
+ types.add(ComrelElementTypes.MultiPortMapping_4002);
+ }
+ if (targetEditPart instanceof MultiInputPort2EditPart) {
+ types.add(ComrelElementTypes.MultiPortMapping_4002);
+ }
+ if (targetEditPart instanceof MultiInputPort3EditPart) {
+ types.add(ComrelElementTypes.MultiPortMapping_4002);
+ }
+ if (targetEditPart instanceof MultiInputPort4EditPart) {
+ types.add(ComrelElementTypes.MultiPortMapping_4002);
+ }
+ if (targetEditPart instanceof MultiInputPort5EditPart) {
+ types.add(ComrelElementTypes.MultiPortMapping_4002);
+ }
+ if (targetEditPart instanceof MultiInputPort6EditPart) {
+ types.add(ComrelElementTypes.MultiPortMapping_4002);
+ }
+ if (targetEditPart instanceof comrel.diagram.edit.parts.MultiInputPort7EditPart) {
+ types.add(ComrelElementTypes.MultiPortMapping_4002);
+ }
+ if (targetEditPart instanceof MultiInputPort8EditPart) {
+ types.add(ComrelElementTypes.MultiPortMapping_4002);
+ }
+ if (targetEditPart instanceof MultiInputPort9EditPart) {
+ types.add(ComrelElementTypes.MultiPortMapping_4002);
+ }
+ if (targetEditPart instanceof SingleInputPortEditPart) {
+ types.add(ComrelElementTypes.MultiSinglePortMapping_4003);
+ }
+ if (targetEditPart instanceof SingleInputPort2EditPart) {
+ types.add(ComrelElementTypes.MultiSinglePortMapping_4003);
+ }
+ if (targetEditPart instanceof SingleInputPort3EditPart) {
+ types.add(ComrelElementTypes.MultiSinglePortMapping_4003);
+ }
+ if (targetEditPart instanceof SingleInputPort4EditPart) {
+ types.add(ComrelElementTypes.MultiSinglePortMapping_4003);
+ }
+ if (targetEditPart instanceof SingleInputPort5EditPart) {
+ types.add(ComrelElementTypes.MultiSinglePortMapping_4003);
+ }
+ if (targetEditPart instanceof SingleInputPort6EditPart) {
+ types.add(ComrelElementTypes.MultiSinglePortMapping_4003);
+ }
+ if (targetEditPart instanceof SingleInputPort7EditPart) {
+ types.add(ComrelElementTypes.MultiSinglePortMapping_4003);
+ }
+ if (targetEditPart instanceof SingleInputPort8EditPart) {
+ types.add(ComrelElementTypes.MultiSinglePortMapping_4003);
+ }
+ if (targetEditPart instanceof SingleInputPort9EditPart) {
+ types.add(ComrelElementTypes.MultiSinglePortMapping_4003);
+ }
+ return types;
+ }
+
+ /**
+ * @generated
+ */
+ public List<IElementType> getMATypesForTarget(IElementType relationshipType) {
+ LinkedList<IElementType> types = new LinkedList<IElementType>();
+ if (relationshipType == ComrelElementTypes.MultiPortMapping_4002) {
+ types.add(ComrelElementTypes.MultiInputPort_3002);
+ types.add(ComrelElementTypes.MultiInputPort_3006);
+ types.add(ComrelElementTypes.MultiInputPort_3010);
+ types.add(ComrelElementTypes.MultiInputPort_3014);
+ types.add(ComrelElementTypes.MultiInputPort_3017);
+ types.add(ComrelElementTypes.MultiInputPort_3020);
+ types.add(ComrelElementTypes.MultiInputPort_3024);
+ types.add(ComrelElementTypes.MultiInputPort_3028);
+ types.add(ComrelElementTypes.MultiInputPort_3032);
+ } else if (relationshipType == ComrelElementTypes.MultiSinglePortMapping_4003) {
+ types.add(ComrelElementTypes.SingleInputPort_2001);
+ types.add(ComrelElementTypes.SingleInputPort_3001);
+ types.add(ComrelElementTypes.SingleInputPort_3005);
+ types.add(ComrelElementTypes.SingleInputPort_3009);
+ types.add(ComrelElementTypes.SingleInputPort_3013);
+ types.add(ComrelElementTypes.SingleInputPort_3023);
+ types.add(ComrelElementTypes.SingleInputPort_3027);
+ types.add(ComrelElementTypes.SingleInputPort_3031);
+ types.add(ComrelElementTypes.SingleInputPort_3035);
+ }
+ return types;
+ }
+
+ /**
+ * @generated
+ */
+ public List<IElementType> getMARelTypesOnTarget() {
+ ArrayList<IElementType> types = new ArrayList<IElementType>(1);
+ types.add(ComrelElementTypes.MultiPortMapping_4002);
+ return types;
+ }
+
+ /**
+ * @generated
+ */
+ public List<IElementType> getMATypesForSource(IElementType relationshipType) {
+ LinkedList<IElementType> types = new LinkedList<IElementType>();
+ if (relationshipType == ComrelElementTypes.MultiPortMapping_4002) {
+ types.add(ComrelElementTypes.MultiInputPort_3002);
+ types.add(ComrelElementTypes.MultiInputPort_3006);
+ types.add(ComrelElementTypes.MultiInputPort_3010);
+ types.add(ComrelElementTypes.MultiInputPort_3014);
+ types.add(ComrelElementTypes.MultiOutputPort_3015);
+ types.add(ComrelElementTypes.MultiInputPort_3017);
+ types.add(ComrelElementTypes.MultiInputPort_3020);
+ types.add(ComrelElementTypes.MultiOutputPort_3021);
+ types.add(ComrelElementTypes.MultiInputPort_3024);
+ types.add(ComrelElementTypes.MultiInputPort_3028);
+ types.add(ComrelElementTypes.MultiInputPort_3032);
+ }
+ return types;
+ }
+
+ /**
+ * @generated NOT
+ */
+ public class MultiInputPortFigure extends InputPortFigure {
+
+ /**
+ * @generated
+ */
+ public MultiInputPortFigure() {
+ this.setLineWidth(10);
+ this.setForegroundColor(THIS_FORE);
+ this.setPreferredSize(new Dimension(getMapMode().DPtoLP(20),
+ getMapMode().DPtoLP(20)));
+ this.setBorder(new MarginBorder(getMapMode().DPtoLP(5),
+ getMapMode().DPtoLP(5), getMapMode().DPtoLP(5),
+ getMapMode().DPtoLP(5)));
+ }
+
+ }
+
+ /**
+ * @generated
+ */
+ static final Color THIS_FORE = new Color(null, 255, 0, 0);
+
+}
diff --git a/org.eclipse.emf.refactor.comrel.diagram/src/comrel/diagram/edit/parts/MultiInputPort8EditPart.java b/org.eclipse.emf.refactor.comrel.diagram/src/comrel/diagram/edit/parts/MultiInputPort8EditPart.java
new file mode 100644
index 0000000..7f37710
--- /dev/null
+++ b/org.eclipse.emf.refactor.comrel.diagram/src/comrel/diagram/edit/parts/MultiInputPort8EditPart.java
@@ -0,0 +1,407 @@
+/*
+ *
+ */
+package comrel.diagram.edit.parts;
+
+import java.util.ArrayList;
+import java.util.Collections;
+import java.util.LinkedList;
+import java.util.List;
+
+import org.eclipse.draw2d.IFigure;
+import org.eclipse.draw2d.MarginBorder;
+import org.eclipse.draw2d.PositionConstants;
+import org.eclipse.draw2d.RectangleFigure;
+import org.eclipse.draw2d.Shape;
+import org.eclipse.draw2d.StackLayout;
+import org.eclipse.draw2d.geometry.Dimension;
+import org.eclipse.gef.EditPart;
+import org.eclipse.gef.EditPolicy;
+import org.eclipse.gef.GraphicalEditPart;
+import org.eclipse.gef.Request;
+import org.eclipse.gef.commands.Command;
+import org.eclipse.gef.editpolicies.LayoutEditPolicy;
+import org.eclipse.gef.editpolicies.NonResizableEditPolicy;
+import org.eclipse.gef.handles.MoveHandle;
+import org.eclipse.gef.requests.CreateRequest;
+import org.eclipse.gmf.runtime.diagram.ui.editparts.BorderedBorderItemEditPart;
+import org.eclipse.gmf.runtime.diagram.ui.editparts.IBorderItemEditPart;
+import org.eclipse.gmf.runtime.diagram.ui.editparts.IGraphicalEditPart;
+import org.eclipse.gmf.runtime.diagram.ui.editpolicies.BorderItemSelectionEditPolicy;
+import org.eclipse.gmf.runtime.diagram.ui.editpolicies.EditPolicyRoles;
+import org.eclipse.gmf.runtime.diagram.ui.figures.BorderItemLocator;
+import org.eclipse.gmf.runtime.draw2d.ui.figures.WrappingLabel;
+import org.eclipse.gmf.runtime.emf.type.core.IElementType;
+import org.eclipse.gmf.runtime.gef.ui.figures.DefaultSizeNodeFigure;
+import org.eclipse.gmf.runtime.gef.ui.figures.NodeFigure;
+import org.eclipse.gmf.runtime.notation.View;
+import org.eclipse.swt.graphics.Color;
+
+import comrel.InputPort;
+import comrel.diagram.edit.policies.MultiInputPort8ItemSemanticEditPolicy;
+import comrel.diagram.part.ComrelVisualIDRegistry;
+import comrel.diagram.providers.ComrelElementTypes;
+import comrel.figures.InputPortFigure;
+
+/**
+ * @generated
+ */
+public class MultiInputPort8EditPart extends BorderedBorderItemEditPart {
+
+ /**
+ * @generated
+ */
+ public static final int VISUAL_ID = 3028;
+
+ /**
+ * @generated
+ */
+ protected IFigure contentPane;
+
+ /**
+ * @generated
+ */
+ protected IFigure primaryShape;
+
+ /**
+ * @generated
+ */
+ public MultiInputPort8EditPart(View view) {
+ super(view);
+ }
+
+ /**
+ * @generated
+ */
+ protected void createDefaultEditPolicies() {
+ super.createDefaultEditPolicies();
+ installEditPolicy(EditPolicy.PRIMARY_DRAG_ROLE,
+ getPrimaryDragEditPolicy());
+ installEditPolicy(EditPolicyRoles.SEMANTIC_ROLE,
+ new MultiInputPort8ItemSemanticEditPolicy());
+ installEditPolicy(EditPolicy.LAYOUT_ROLE, createLayoutEditPolicy());
+ // XXX need an SCR to runtime to have another abstract superclass that would let children add reasonable editpolicies
+ // removeEditPolicy(org.eclipse.gmf.runtime.diagram.ui.editpolicies.EditPolicyRoles.CONNECTION_HANDLES_ROLE);
+ }
+
+ /**
+ * @generated
+ */
+ protected LayoutEditPolicy createLayoutEditPolicy() {
+ org.eclipse.gmf.runtime.diagram.ui.editpolicies.LayoutEditPolicy lep = new org.eclipse.gmf.runtime.diagram.ui.editpolicies.LayoutEditPolicy() {
+
+ protected EditPolicy createChildEditPolicy(EditPart child) {
+ View childView = (View) child.getModel();
+ switch (ComrelVisualIDRegistry.getVisualID(childView)) {
+ case MultiInputPortNameType8EditPart.VISUAL_ID:
+ return new BorderItemSelectionEditPolicy() {
+
+ protected List createSelectionHandles() {
+ MoveHandle mh = new MoveHandle(
+ (GraphicalEditPart) getHost());
+ mh.setBorder(null);
+ return Collections.singletonList(mh);
+ }
+ };
+ }
+ EditPolicy result = child
+ .getEditPolicy(EditPolicy.PRIMARY_DRAG_ROLE);
+ if (result == null) {
+ result = new NonResizableEditPolicy();
+ }
+ return result;
+ }
+
+ protected Command getMoveChildrenCommand(Request request) {
+ return null;
+ }
+
+ protected Command getCreateCommand(CreateRequest request) {
+ return null;
+ }
+ };
+ return lep;
+ }
+
+ /**
+ * @generated NOT
+ */
+ protected IFigure createNodeShape() {
+ MultiInputPortFigure figure = new MultiInputPortFigure();
+ InputPort port = (InputPort) this.resolveSemanticElement();
+ figure.setPort(port);
+ return primaryShape = figure;
+ }
+
+ /**
+ * @generated
+ */
+ public MultiInputPortFigure getPrimaryShape() {
+ return (MultiInputPortFigure) primaryShape;
+ }
+
+ /**
+ * @generated
+ */
+ protected void addBorderItem(IFigure borderItemContainer,
+ IBorderItemEditPart borderItemEditPart) {
+ if (borderItemEditPart instanceof MultiInputPortNameType8EditPart) {
+ BorderItemLocator locator = new BorderItemLocator(getMainFigure(),
+ PositionConstants.SOUTH);
+ locator.setBorderItemOffset(new Dimension(-20, -20));
+ borderItemContainer.add(borderItemEditPart.getFigure(), locator);
+ } else {
+ super.addBorderItem(borderItemContainer, borderItemEditPart);
+ }
+ }
+
+ /**
+ * @generated
+ */
+ protected NodeFigure createNodePlate() {
+ DefaultSizeNodeFigure result = new DefaultSizeNodeFigure(20, 20);
+
+ //FIXME: workaround for #154536
+ result.getBounds().setSize(result.getPreferredSize());
+ return result;
+ }
+
+ /**
+ * Creates figure for this edit part.
+ *
+ * Body of this method does not depend on settings in generation model
+ * so you may safely remove <i>generated</i> tag and modify it.
+ *
+ * @generated
+ */
+ protected NodeFigure createMainFigure() {
+ NodeFigure figure = createNodePlate();
+ figure.setLayoutManager(new StackLayout());
+ IFigure shape = createNodeShape();
+ figure.add(shape);
+ contentPane = setupContentPane(shape);
+ return figure;
+ }
+
+ /**
+ * Default implementation treats passed figure as content pane.
+ * Respects layout one may have set for generated figure.
+ * @param nodeShape instance of generated figure class
+ * @generated
+ */
+ protected IFigure setupContentPane(IFigure nodeShape) {
+ return nodeShape; // use nodeShape itself as contentPane
+ }
+
+ /**
+ * @generated
+ */
+ public IFigure getContentPane() {
+ if (contentPane != null) {
+ return contentPane;
+ }
+ return super.getContentPane();
+ }
+
+ /**
+ * @generated
+ */
+ protected void setForegroundColor(Color color) {
+ if (primaryShape != null) {
+ primaryShape.setForegroundColor(color);
+ }
+ }
+
+ /**
+ * @generated
+ */
+ protected void setBackgroundColor(Color color) {
+ if (primaryShape != null) {
+ primaryShape.setBackgroundColor(color);
+ }
+ }
+
+ /**
+ * @generated
+ */
+ protected void setLineWidth(int width) {
+ if (primaryShape instanceof Shape) {
+ ((Shape) primaryShape).setLineWidth(width);
+ }
+ }
+
+ /**
+ * @generated
+ */
+ protected void setLineType(int style) {
+ if (primaryShape instanceof Shape) {
+ ((Shape) primaryShape).setLineStyle(style);
+ }
+ }
+
+ /**
+ * @generated
+ */
+ public EditPart getPrimaryChildEditPart() {
+ return getChildBySemanticHint(ComrelVisualIDRegistry
+ .getType(MultiInputPortNameType8EditPart.VISUAL_ID));
+ }
+
+ /**
+ * @generated
+ */
+ public List<IElementType> getMARelTypesOnSource() {
+ ArrayList<IElementType> types = new ArrayList<IElementType>(2);
+ types.add(ComrelElementTypes.MultiPortMapping_4002);
+ types.add(ComrelElementTypes.MultiSinglePortMapping_4003);
+ return types;
+ }
+
+ /**
+ * @generated
+ */
+ public List<IElementType> getMARelTypesOnSourceAndTarget(
+ IGraphicalEditPart targetEditPart) {
+ LinkedList<IElementType> types = new LinkedList<IElementType>();
+ if (targetEditPart instanceof MultiInputPortEditPart) {
+ types.add(ComrelElementTypes.MultiPortMapping_4002);
+ }
+ if (targetEditPart instanceof MultiInputPort2EditPart) {
+ types.add(ComrelElementTypes.MultiPortMapping_4002);
+ }
+ if (targetEditPart instanceof MultiInputPort3EditPart) {
+ types.add(ComrelElementTypes.MultiPortMapping_4002);
+ }
+ if (targetEditPart instanceof MultiInputPort4EditPart) {
+ types.add(ComrelElementTypes.MultiPortMapping_4002);
+ }
+ if (targetEditPart instanceof MultiInputPort5EditPart) {
+ types.add(ComrelElementTypes.MultiPortMapping_4002);
+ }
+ if (targetEditPart instanceof MultiInputPort6EditPart) {
+ types.add(ComrelElementTypes.MultiPortMapping_4002);
+ }
+ if (targetEditPart instanceof MultiInputPort7EditPart) {
+ types.add(ComrelElementTypes.MultiPortMapping_4002);
+ }
+ if (targetEditPart instanceof comrel.diagram.edit.parts.MultiInputPort8EditPart) {
+ types.add(ComrelElementTypes.MultiPortMapping_4002);
+ }
+ if (targetEditPart instanceof MultiInputPort9EditPart) {
+ types.add(ComrelElementTypes.MultiPortMapping_4002);
+ }
+ if (targetEditPart instanceof SingleInputPortEditPart) {
+ types.add(ComrelElementTypes.MultiSinglePortMapping_4003);
+ }
+ if (targetEditPart instanceof SingleInputPort2EditPart) {
+ types.add(ComrelElementTypes.MultiSinglePortMapping_4003);
+ }
+ if (targetEditPart instanceof SingleInputPort3EditPart) {
+ types.add(ComrelElementTypes.MultiSinglePortMapping_4003);
+ }
+ if (targetEditPart instanceof SingleInputPort4EditPart) {
+ types.add(ComrelElementTypes.MultiSinglePortMapping_4003);
+ }
+ if (targetEditPart instanceof SingleInputPort5EditPart) {
+ types.add(ComrelElementTypes.MultiSinglePortMapping_4003);
+ }
+ if (targetEditPart instanceof SingleInputPort6EditPart) {
+ types.add(ComrelElementTypes.MultiSinglePortMapping_4003);
+ }
+ if (targetEditPart instanceof SingleInputPort7EditPart) {
+ types.add(ComrelElementTypes.MultiSinglePortMapping_4003);
+ }
+ if (targetEditPart instanceof SingleInputPort8EditPart) {
+ types.add(ComrelElementTypes.MultiSinglePortMapping_4003);
+ }
+ if (targetEditPart instanceof SingleInputPort9EditPart) {
+ types.add(ComrelElementTypes.MultiSinglePortMapping_4003);
+ }
+ return types;
+ }
+
+ /**
+ * @generated
+ */
+ public List<IElementType> getMATypesForTarget(IElementType relationshipType) {
+ LinkedList<IElementType> types = new LinkedList<IElementType>();
+ if (relationshipType == ComrelElementTypes.MultiPortMapping_4002) {
+ types.add(ComrelElementTypes.MultiInputPort_3002);
+ types.add(ComrelElementTypes.MultiInputPort_3006);
+ types.add(ComrelElementTypes.MultiInputPort_3010);
+ types.add(ComrelElementTypes.MultiInputPort_3014);
+ types.add(ComrelElementTypes.MultiInputPort_3017);
+ types.add(ComrelElementTypes.MultiInputPort_3020);
+ types.add(ComrelElementTypes.MultiInputPort_3024);
+ types.add(ComrelElementTypes.MultiInputPort_3028);
+ types.add(ComrelElementTypes.MultiInputPort_3032);
+ } else if (relationshipType == ComrelElementTypes.MultiSinglePortMapping_4003) {
+ types.add(ComrelElementTypes.SingleInputPort_2001);
+ types.add(ComrelElementTypes.SingleInputPort_3001);
+ types.add(ComrelElementTypes.SingleInputPort_3005);
+ types.add(ComrelElementTypes.SingleInputPort_3009);
+ types.add(ComrelElementTypes.SingleInputPort_3013);
+ types.add(ComrelElementTypes.SingleInputPort_3023);
+ types.add(ComrelElementTypes.SingleInputPort_3027);
+ types.add(ComrelElementTypes.SingleInputPort_3031);
+ types.add(ComrelElementTypes.SingleInputPort_3035);
+ }
+ return types;
+ }
+
+ /**
+ * @generated
+ */
+ public List<IElementType> getMARelTypesOnTarget() {
+ ArrayList<IElementType> types = new ArrayList<IElementType>(1);
+ types.add(ComrelElementTypes.MultiPortMapping_4002);
+ return types;
+ }
+
+ /**
+ * @generated
+ */
+ public List<IElementType> getMATypesForSource(IElementType relationshipType) {
+ LinkedList<IElementType> types = new LinkedList<IElementType>();
+ if (relationshipType == ComrelElementTypes.MultiPortMapping_4002) {
+ types.add(ComrelElementTypes.MultiInputPort_3002);
+ types.add(ComrelElementTypes.MultiInputPort_3006);
+ types.add(ComrelElementTypes.MultiInputPort_3010);
+ types.add(ComrelElementTypes.MultiInputPort_3014);
+ types.add(ComrelElementTypes.MultiOutputPort_3015);
+ types.add(ComrelElementTypes.MultiInputPort_3017);
+ types.add(ComrelElementTypes.MultiInputPort_3020);
+ types.add(ComrelElementTypes.MultiOutputPort_3021);
+ types.add(ComrelElementTypes.MultiInputPort_3024);
+ types.add(ComrelElementTypes.MultiInputPort_3028);
+ types.add(ComrelElementTypes.MultiInputPort_3032);
+ }
+ return types;
+ }
+
+ /**
+ * @generated NOT
+ */
+ public class MultiInputPortFigure extends InputPortFigure {
+
+ /**
+ * @generated
+ */
+ public MultiInputPortFigure() {
+ this.setLineWidth(10);
+ this.setForegroundColor(THIS_FORE);
+ this.setPreferredSize(new Dimension(getMapMode().DPtoLP(20),
+ getMapMode().DPtoLP(20)));
+ this.setBorder(new MarginBorder(getMapMode().DPtoLP(5),
+ getMapMode().DPtoLP(5), getMapMode().DPtoLP(5),
+ getMapMode().DPtoLP(5)));
+ }
+
+ }
+
+ /**
+ * @generated
+ */
+ static final Color THIS_FORE = new Color(null, 255, 0, 0);
+
+}
diff --git a/org.eclipse.emf.refactor.comrel.diagram/src/comrel/diagram/edit/parts/MultiInputPort9EditPart.java b/org.eclipse.emf.refactor.comrel.diagram/src/comrel/diagram/edit/parts/MultiInputPort9EditPart.java
new file mode 100644
index 0000000..dabe97d
--- /dev/null
+++ b/org.eclipse.emf.refactor.comrel.diagram/src/comrel/diagram/edit/parts/MultiInputPort9EditPart.java
@@ -0,0 +1,408 @@
+/*
+ *
+ */
+package comrel.diagram.edit.parts;
+
+import java.util.ArrayList;
+import java.util.Collections;
+import java.util.LinkedList;
+import java.util.List;
+
+import org.eclipse.draw2d.IFigure;
+import org.eclipse.draw2d.MarginBorder;
+import org.eclipse.draw2d.PositionConstants;
+import org.eclipse.draw2d.RectangleFigure;
+import org.eclipse.draw2d.Shape;
+import org.eclipse.draw2d.StackLayout;
+import org.eclipse.draw2d.geometry.Dimension;
+import org.eclipse.gef.EditPart;
+import org.eclipse.gef.EditPolicy;
+import org.eclipse.gef.GraphicalEditPart;
+import org.eclipse.gef.Request;
+import org.eclipse.gef.commands.Command;
+import org.eclipse.gef.editpolicies.LayoutEditPolicy;
+import org.eclipse.gef.editpolicies.NonResizableEditPolicy;
+import org.eclipse.gef.handles.MoveHandle;
+import org.eclipse.gef.requests.CreateRequest;
+import org.eclipse.gmf.runtime.diagram.ui.editparts.BorderedBorderItemEditPart;
+import org.eclipse.gmf.runtime.diagram.ui.editparts.IBorderItemEditPart;
+import org.eclipse.gmf.runtime.diagram.ui.editparts.IGraphicalEditPart;
+import org.eclipse.gmf.runtime.diagram.ui.editpolicies.BorderItemSelectionEditPolicy;
+import org.eclipse.gmf.runtime.diagram.ui.editpolicies.EditPolicyRoles;
+import org.eclipse.gmf.runtime.diagram.ui.figures.BorderItemLocator;
+import org.eclipse.gmf.runtime.draw2d.ui.figures.WrappingLabel;
+import org.eclipse.gmf.runtime.emf.type.core.IElementType;
+import org.eclipse.gmf.runtime.gef.ui.figures.DefaultSizeNodeFigure;
+import org.eclipse.gmf.runtime.gef.ui.figures.NodeFigure;
+import org.eclipse.gmf.runtime.notation.View;
+import org.eclipse.swt.graphics.Color;
+
+import comrel.InputPort;
+import comrel.diagram.edit.parts.MultiInputPort8EditPart.MultiInputPortFigure;
+import comrel.diagram.edit.policies.MultiInputPort9ItemSemanticEditPolicy;
+import comrel.diagram.part.ComrelVisualIDRegistry;
+import comrel.diagram.providers.ComrelElementTypes;
+import comrel.figures.InputPortFigure;
+
+/**
+ * @generated
+ */
+public class MultiInputPort9EditPart extends BorderedBorderItemEditPart {
+
+ /**
+ * @generated
+ */
+ public static final int VISUAL_ID = 3032;
+
+ /**
+ * @generated
+ */
+ protected IFigure contentPane;
+
+ /**
+ * @generated
+ */
+ protected IFigure primaryShape;
+
+ /**
+ * @generated
+ */
+ public MultiInputPort9EditPart(View view) {
+ super(view);
+ }
+
+ /**
+ * @generated
+ */
+ protected void createDefaultEditPolicies() {
+ super.createDefaultEditPolicies();
+ installEditPolicy(EditPolicy.PRIMARY_DRAG_ROLE,
+ getPrimaryDragEditPolicy());
+ installEditPolicy(EditPolicyRoles.SEMANTIC_ROLE,
+ new MultiInputPort9ItemSemanticEditPolicy());
+ installEditPolicy(EditPolicy.LAYOUT_ROLE, createLayoutEditPolicy());
+ // XXX need an SCR to runtime to have another abstract superclass that would let children add reasonable editpolicies
+ // removeEditPolicy(org.eclipse.gmf.runtime.diagram.ui.editpolicies.EditPolicyRoles.CONNECTION_HANDLES_ROLE);
+ }
+
+ /**
+ * @generated
+ */
+ protected LayoutEditPolicy createLayoutEditPolicy() {
+ org.eclipse.gmf.runtime.diagram.ui.editpolicies.LayoutEditPolicy lep = new org.eclipse.gmf.runtime.diagram.ui.editpolicies.LayoutEditPolicy() {
+
+ protected EditPolicy createChildEditPolicy(EditPart child) {
+ View childView = (View) child.getModel();
+ switch (ComrelVisualIDRegistry.getVisualID(childView)) {
+ case MultiInputPortNameType9EditPart.VISUAL_ID:
+ return new BorderItemSelectionEditPolicy() {
+
+ protected List createSelectionHandles() {
+ MoveHandle mh = new MoveHandle(
+ (GraphicalEditPart) getHost());
+ mh.setBorder(null);
+ return Collections.singletonList(mh);
+ }
+ };
+ }
+ EditPolicy result = child
+ .getEditPolicy(EditPolicy.PRIMARY_DRAG_ROLE);
+ if (result == null) {
+ result = new NonResizableEditPolicy();
+ }
+ return result;
+ }
+
+ protected Command getMoveChildrenCommand(Request request) {
+ return null;
+ }
+
+ protected Command getCreateCommand(CreateRequest request) {
+ return null;
+ }
+ };
+ return lep;
+ }
+
+ /**
+ * @generated NOT
+ */
+ protected IFigure createNodeShape() {
+ MultiInputPortFigure figure = new MultiInputPortFigure();
+ InputPort port = (InputPort) this.resolveSemanticElement();
+ figure.setPort(port);
+ return primaryShape = figure;
+ }
+
+ /**
+ * @generated
+ */
+ public MultiInputPortFigure getPrimaryShape() {
+ return (MultiInputPortFigure) primaryShape;
+ }
+
+ /**
+ * @generated
+ */
+ protected void addBorderItem(IFigure borderItemContainer,
+ IBorderItemEditPart borderItemEditPart) {
+ if (borderItemEditPart instanceof MultiInputPortNameType9EditPart) {
+ BorderItemLocator locator = new BorderItemLocator(getMainFigure(),
+ PositionConstants.SOUTH);
+ locator.setBorderItemOffset(new Dimension(-20, -20));
+ borderItemContainer.add(borderItemEditPart.getFigure(), locator);
+ } else {
+ super.addBorderItem(borderItemContainer, borderItemEditPart);
+ }
+ }
+
+ /**
+ * @generated
+ */
+ protected NodeFigure createNodePlate() {
+ DefaultSizeNodeFigure result = new DefaultSizeNodeFigure(20, 20);
+
+ //FIXME: workaround for #154536
+ result.getBounds().setSize(result.getPreferredSize());
+ return result;
+ }
+
+ /**
+ * Creates figure for this edit part.
+ *
+ * Body of this method does not depend on settings in generation model
+ * so you may safely remove <i>generated</i> tag and modify it.
+ *
+ * @generated
+ */
+ protected NodeFigure createMainFigure() {
+ NodeFigure figure = createNodePlate();
+ figure.setLayoutManager(new StackLayout());
+ IFigure shape = createNodeShape();
+ figure.add(shape);
+ contentPane = setupContentPane(shape);
+ return figure;
+ }
+
+ /**
+ * Default implementation treats passed figure as content pane.
+ * Respects layout one may have set for generated figure.
+ * @param nodeShape instance of generated figure class
+ * @generated
+ */
+ protected IFigure setupContentPane(IFigure nodeShape) {
+ return nodeShape; // use nodeShape itself as contentPane
+ }
+
+ /**
+ * @generated
+ */
+ public IFigure getContentPane() {
+ if (contentPane != null) {
+ return contentPane;
+ }
+ return super.getContentPane();
+ }
+
+ /**
+ * @generated
+ */
+ protected void setForegroundColor(Color color) {
+ if (primaryShape != null) {
+ primaryShape.setForegroundColor(color);
+ }
+ }
+
+ /**
+ * @generated
+ */
+ protected void setBackgroundColor(Color color) {
+ if (primaryShape != null) {
+ primaryShape.setBackgroundColor(color);
+ }
+ }
+
+ /**
+ * @generated
+ */
+ protected void setLineWidth(int width) {
+ if (primaryShape instanceof Shape) {
+ ((Shape) primaryShape).setLineWidth(width);
+ }
+ }
+
+ /**
+ * @generated
+ */
+ protected void setLineType(int style) {
+ if (primaryShape instanceof Shape) {
+ ((Shape) primaryShape).setLineStyle(style);
+ }
+ }
+
+ /**
+ * @generated
+ */
+ public EditPart getPrimaryChildEditPart() {
+ return getChildBySemanticHint(ComrelVisualIDRegistry
+ .getType(MultiInputPortNameType9EditPart.VISUAL_ID));
+ }
+
+ /**
+ * @generated
+ */
+ public List<IElementType> getMARelTypesOnSource() {
+ ArrayList<IElementType> types = new ArrayList<IElementType>(2);
+ types.add(ComrelElementTypes.MultiPortMapping_4002);
+ types.add(ComrelElementTypes.MultiSinglePortMapping_4003);
+ return types;
+ }
+
+ /**
+ * @generated
+ */
+ public List<IElementType> getMARelTypesOnSourceAndTarget(
+ IGraphicalEditPart targetEditPart) {
+ LinkedList<IElementType> types = new LinkedList<IElementType>();
+ if (targetEditPart instanceof MultiInputPortEditPart) {
+ types.add(ComrelElementTypes.MultiPortMapping_4002);
+ }
+ if (targetEditPart instanceof MultiInputPort2EditPart) {
+ types.add(ComrelElementTypes.MultiPortMapping_4002);
+ }
+ if (targetEditPart instanceof MultiInputPort3EditPart) {
+ types.add(ComrelElementTypes.MultiPortMapping_4002);
+ }
+ if (targetEditPart instanceof MultiInputPort4EditPart) {
+ types.add(ComrelElementTypes.MultiPortMapping_4002);
+ }
+ if (targetEditPart instanceof MultiInputPort5EditPart) {
+ types.add(ComrelElementTypes.MultiPortMapping_4002);
+ }
+ if (targetEditPart instanceof MultiInputPort6EditPart) {
+ types.add(ComrelElementTypes.MultiPortMapping_4002);
+ }
+ if (targetEditPart instanceof MultiInputPort7EditPart) {
+ types.add(ComrelElementTypes.MultiPortMapping_4002);
+ }
+ if (targetEditPart instanceof MultiInputPort8EditPart) {
+ types.add(ComrelElementTypes.MultiPortMapping_4002);
+ }
+ if (targetEditPart instanceof comrel.diagram.edit.parts.MultiInputPort9EditPart) {
+ types.add(ComrelElementTypes.MultiPortMapping_4002);
+ }
+ if (targetEditPart instanceof SingleInputPortEditPart) {
+ types.add(ComrelElementTypes.MultiSinglePortMapping_4003);
+ }
+ if (targetEditPart instanceof SingleInputPort2EditPart) {
+ types.add(ComrelElementTypes.MultiSinglePortMapping_4003);
+ }
+ if (targetEditPart instanceof SingleInputPort3EditPart) {
+ types.add(ComrelElementTypes.MultiSinglePortMapping_4003);
+ }
+ if (targetEditPart instanceof SingleInputPort4EditPart) {
+ types.add(ComrelElementTypes.MultiSinglePortMapping_4003);
+ }
+ if (targetEditPart instanceof SingleInputPort5EditPart) {
+ types.add(ComrelElementTypes.MultiSinglePortMapping_4003);
+ }
+ if (targetEditPart instanceof SingleInputPort6EditPart) {
+ types.add(ComrelElementTypes.MultiSinglePortMapping_4003);
+ }
+ if (targetEditPart instanceof SingleInputPort7EditPart) {
+ types.add(ComrelElementTypes.MultiSinglePortMapping_4003);
+ }
+ if (targetEditPart instanceof SingleInputPort8EditPart) {
+ types.add(ComrelElementTypes.MultiSinglePortMapping_4003);
+ }
+ if (targetEditPart instanceof SingleInputPort9EditPart) {
+ types.add(ComrelElementTypes.MultiSinglePortMapping_4003);
+ }
+ return types;
+ }
+
+ /**
+ * @generated
+ */
+ public List<IElementType> getMATypesForTarget(IElementType relationshipType) {
+ LinkedList<IElementType> types = new LinkedList<IElementType>();
+ if (relationshipType == ComrelElementTypes.MultiPortMapping_4002) {
+ types.add(ComrelElementTypes.MultiInputPort_3002);
+ types.add(ComrelElementTypes.MultiInputPort_3006);
+ types.add(ComrelElementTypes.MultiInputPort_3010);
+ types.add(ComrelElementTypes.MultiInputPort_3014);
+ types.add(ComrelElementTypes.MultiInputPort_3017);
+ types.add(ComrelElementTypes.MultiInputPort_3020);
+ types.add(ComrelElementTypes.MultiInputPort_3024);
+ types.add(ComrelElementTypes.MultiInputPort_3028);
+ types.add(ComrelElementTypes.MultiInputPort_3032);
+ } else if (relationshipType == ComrelElementTypes.MultiSinglePortMapping_4003) {
+ types.add(ComrelElementTypes.SingleInputPort_2001);
+ types.add(ComrelElementTypes.SingleInputPort_3001);
+ types.add(ComrelElementTypes.SingleInputPort_3005);
+ types.add(ComrelElementTypes.SingleInputPort_3009);
+ types.add(ComrelElementTypes.SingleInputPort_3013);
+ types.add(ComrelElementTypes.SingleInputPort_3023);
+ types.add(ComrelElementTypes.SingleInputPort_3027);
+ types.add(ComrelElementTypes.SingleInputPort_3031);
+ types.add(ComrelElementTypes.SingleInputPort_3035);
+ }
+ return types;
+ }
+
+ /**
+ * @generated
+ */
+ public List<IElementType> getMARelTypesOnTarget() {
+ ArrayList<IElementType> types = new ArrayList<IElementType>(1);
+ types.add(ComrelElementTypes.MultiPortMapping_4002);
+ return types;
+ }
+
+ /**
+ * @generated
+ */
+ public List<IElementType> getMATypesForSource(IElementType relationshipType) {
+ LinkedList<IElementType> types = new LinkedList<IElementType>();
+ if (relationshipType == ComrelElementTypes.MultiPortMapping_4002) {
+ types.add(ComrelElementTypes.MultiInputPort_3002);
+ types.add(ComrelElementTypes.MultiInputPort_3006);
+ types.add(ComrelElementTypes.MultiInputPort_3010);
+ types.add(ComrelElementTypes.MultiInputPort_3014);
+ types.add(ComrelElementTypes.MultiOutputPort_3015);
+ types.add(ComrelElementTypes.MultiInputPort_3017);
+ types.add(ComrelElementTypes.MultiInputPort_3020);
+ types.add(ComrelElementTypes.MultiOutputPort_3021);
+ types.add(ComrelElementTypes.MultiInputPort_3024);
+ types.add(ComrelElementTypes.MultiInputPort_3028);
+ types.add(ComrelElementTypes.MultiInputPort_3032);
+ }
+ return types;
+ }
+
+ /**
+ * @generated NOT
+ */
+ public class MultiInputPortFigure extends InputPortFigure {
+
+ /**
+ * @generated
+ */
+ public MultiInputPortFigure() {
+ this.setLineWidth(10);
+ this.setForegroundColor(THIS_FORE);
+ this.setPreferredSize(new Dimension(getMapMode().DPtoLP(20),
+ getMapMode().DPtoLP(20)));
+ this.setBorder(new MarginBorder(getMapMode().DPtoLP(5),
+ getMapMode().DPtoLP(5), getMapMode().DPtoLP(5),
+ getMapMode().DPtoLP(5)));
+ }
+
+ }
+
+ /**
+ * @generated
+ */
+ static final Color THIS_FORE = new Color(null, 255, 0, 0);
+
+}
diff --git a/org.eclipse.emf.refactor.comrel.diagram/src/comrel/diagram/edit/parts/MultiInputPortEditPart.java b/org.eclipse.emf.refactor.comrel.diagram/src/comrel/diagram/edit/parts/MultiInputPortEditPart.java
new file mode 100644
index 0000000..83452d1
--- /dev/null
+++ b/org.eclipse.emf.refactor.comrel.diagram/src/comrel/diagram/edit/parts/MultiInputPortEditPart.java
@@ -0,0 +1,408 @@
+/*
+ *
+ */
+package comrel.diagram.edit.parts;
+
+import java.util.ArrayList;
+import java.util.Collections;
+import java.util.LinkedList;
+import java.util.List;
+
+import org.eclipse.draw2d.IFigure;
+import org.eclipse.draw2d.MarginBorder;
+import org.eclipse.draw2d.PositionConstants;
+import org.eclipse.draw2d.RectangleFigure;
+import org.eclipse.draw2d.Shape;
+import org.eclipse.draw2d.StackLayout;
+import org.eclipse.draw2d.geometry.Dimension;
+import org.eclipse.gef.EditPart;
+import org.eclipse.gef.EditPolicy;
+import org.eclipse.gef.GraphicalEditPart;
+import org.eclipse.gef.Request;
+import org.eclipse.gef.commands.Command;
+import org.eclipse.gef.editpolicies.LayoutEditPolicy;
+import org.eclipse.gef.editpolicies.NonResizableEditPolicy;
+import org.eclipse.gef.handles.MoveHandle;
+import org.eclipse.gef.requests.CreateRequest;
+import org.eclipse.gmf.runtime.diagram.ui.editparts.BorderedBorderItemEditPart;
+import org.eclipse.gmf.runtime.diagram.ui.editparts.IBorderItemEditPart;
+import org.eclipse.gmf.runtime.diagram.ui.editparts.IGraphicalEditPart;
+import org.eclipse.gmf.runtime.diagram.ui.editpolicies.BorderItemSelectionEditPolicy;
+import org.eclipse.gmf.runtime.diagram.ui.editpolicies.EditPolicyRoles;
+import org.eclipse.gmf.runtime.diagram.ui.figures.BorderItemLocator;
+import org.eclipse.gmf.runtime.draw2d.ui.figures.WrappingLabel;
+import org.eclipse.gmf.runtime.emf.type.core.IElementType;
+import org.eclipse.gmf.runtime.gef.ui.figures.DefaultSizeNodeFigure;
+import org.eclipse.gmf.runtime.gef.ui.figures.NodeFigure;
+import org.eclipse.gmf.runtime.notation.View;
+import org.eclipse.swt.graphics.Color;
+
+import comrel.InputPort;
+import comrel.diagram.edit.parts.MultiInputPort8EditPart.MultiInputPortFigure;
+import comrel.diagram.edit.policies.MultiInputPortItemSemanticEditPolicy;
+import comrel.diagram.part.ComrelVisualIDRegistry;
+import comrel.diagram.providers.ComrelElementTypes;
+import comrel.figures.InputPortFigure;
+
+/**
+ * @generated
+ */
+public class MultiInputPortEditPart extends BorderedBorderItemEditPart {
+
+ /**
+ * @generated
+ */
+ public static final int VISUAL_ID = 3002;
+
+ /**
+ * @generated
+ */
+ protected IFigure contentPane;
+
+ /**
+ * @generated
+ */
+ protected IFigure primaryShape;
+
+ /**
+ * @generated
+ */
+ public MultiInputPortEditPart(View view) {
+ super(view);
+ }
+
+ /**
+ * @generated
+ */
+ protected void createDefaultEditPolicies() {
+ super.createDefaultEditPolicies();
+ installEditPolicy(EditPolicy.PRIMARY_DRAG_ROLE,
+ getPrimaryDragEditPolicy());
+ installEditPolicy(EditPolicyRoles.SEMANTIC_ROLE,
+ new MultiInputPortItemSemanticEditPolicy());
+ installEditPolicy(EditPolicy.LAYOUT_ROLE, createLayoutEditPolicy());
+ // XXX need an SCR to runtime to have another abstract superclass that would let children add reasonable editpolicies
+ // removeEditPolicy(org.eclipse.gmf.runtime.diagram.ui.editpolicies.EditPolicyRoles.CONNECTION_HANDLES_ROLE);
+ }
+
+ /**
+ * @generated
+ */
+ protected LayoutEditPolicy createLayoutEditPolicy() {
+ org.eclipse.gmf.runtime.diagram.ui.editpolicies.LayoutEditPolicy lep = new org.eclipse.gmf.runtime.diagram.ui.editpolicies.LayoutEditPolicy() {
+
+ protected EditPolicy createChildEditPolicy(EditPart child) {
+ View childView = (View) child.getModel();
+ switch (ComrelVisualIDRegistry.getVisualID(childView)) {
+ case MultiInputPortNameTypeEditPart.VISUAL_ID:
+ return new BorderItemSelectionEditPolicy() {
+
+ protected List createSelectionHandles() {
+ MoveHandle mh = new MoveHandle(
+ (GraphicalEditPart) getHost());
+ mh.setBorder(null);
+ return Collections.singletonList(mh);
+ }
+ };
+ }
+ EditPolicy result = child
+ .getEditPolicy(EditPolicy.PRIMARY_DRAG_ROLE);
+ if (result == null) {
+ result = new NonResizableEditPolicy();
+ }
+ return result;
+ }
+
+ protected Command getMoveChildrenCommand(Request request) {
+ return null;
+ }
+
+ protected Command getCreateCommand(CreateRequest request) {
+ return null;
+ }
+ };
+ return lep;
+ }
+
+ /**
+ * @generated NOT
+ */
+ protected IFigure createNodeShape() {
+ MultiInputPortFigure figure = new MultiInputPortFigure();
+ InputPort port = (InputPort) this.resolveSemanticElement();
+ figure.setPort(port);
+ return primaryShape = figure;
+ }
+
+ /**
+ * @generated
+ */
+ public MultiInputPortFigure getPrimaryShape() {
+ return (MultiInputPortFigure) primaryShape;
+ }
+
+ /**
+ * @generated
+ */
+ protected void addBorderItem(IFigure borderItemContainer,
+ IBorderItemEditPart borderItemEditPart) {
+ if (borderItemEditPart instanceof MultiInputPortNameTypeEditPart) {
+ BorderItemLocator locator = new BorderItemLocator(getMainFigure(),
+ PositionConstants.SOUTH);
+ locator.setBorderItemOffset(new Dimension(-20, -20));
+ borderItemContainer.add(borderItemEditPart.getFigure(), locator);
+ } else {
+ super.addBorderItem(borderItemContainer, borderItemEditPart);
+ }
+ }
+
+ /**
+ * @generated
+ */
+ protected NodeFigure createNodePlate() {
+ DefaultSizeNodeFigure result = new DefaultSizeNodeFigure(20, 20);
+
+ //FIXME: workaround for #154536
+ result.getBounds().setSize(result.getPreferredSize());
+ return result;
+ }
+
+ /**
+ * Creates figure for this edit part.
+ *
+ * Body of this method does not depend on settings in generation model
+ * so you may safely remove <i>generated</i> tag and modify it.
+ *
+ * @generated
+ */
+ protected NodeFigure createMainFigure() {
+ NodeFigure figure = createNodePlate();
+ figure.setLayoutManager(new StackLayout());
+ IFigure shape = createNodeShape();
+ figure.add(shape);
+ contentPane = setupContentPane(shape);
+ return figure;
+ }
+
+ /**
+ * Default implementation treats passed figure as content pane.
+ * Respects layout one may have set for generated figure.
+ * @param nodeShape instance of generated figure class
+ * @generated
+ */
+ protected IFigure setupContentPane(IFigure nodeShape) {
+ return nodeShape; // use nodeShape itself as contentPane
+ }
+
+ /**
+ * @generated
+ */
+ public IFigure getContentPane() {
+ if (contentPane != null) {
+ return contentPane;
+ }
+ return super.getContentPane();
+ }
+
+ /**
+ * @generated
+ */
+ protected void setForegroundColor(Color color) {
+ if (primaryShape != null) {
+ primaryShape.setForegroundColor(color);
+ }
+ }
+
+ /**
+ * @generated
+ */
+ protected void setBackgroundColor(Color color) {
+ if (primaryShape != null) {
+ primaryShape.setBackgroundColor(color);
+ }
+ }
+
+ /**
+ * @generated
+ */
+ protected void setLineWidth(int width) {
+ if (primaryShape instanceof Shape) {
+ ((Shape) primaryShape).setLineWidth(width);
+ }
+ }
+
+ /**
+ * @generated
+ */
+ protected void setLineType(int style) {
+ if (primaryShape instanceof Shape) {
+ ((Shape) primaryShape).setLineStyle(style);
+ }
+ }
+
+ /**
+ * @generated
+ */
+ public EditPart getPrimaryChildEditPart() {
+ return getChildBySemanticHint(ComrelVisualIDRegistry
+ .getType(MultiInputPortNameTypeEditPart.VISUAL_ID));
+ }
+
+ /**
+ * @generated
+ */
+ public List<IElementType> getMARelTypesOnSource() {
+ ArrayList<IElementType> types = new ArrayList<IElementType>(2);
+ types.add(ComrelElementTypes.MultiPortMapping_4002);
+ types.add(ComrelElementTypes.MultiSinglePortMapping_4003);
+ return types;
+ }
+
+ /**
+ * @generated
+ */
+ public List<IElementType> getMARelTypesOnSourceAndTarget(
+ IGraphicalEditPart targetEditPart) {
+ LinkedList<IElementType> types = new LinkedList<IElementType>();
+ if (targetEditPart instanceof comrel.diagram.edit.parts.MultiInputPortEditPart) {
+ types.add(ComrelElementTypes.MultiPortMapping_4002);
+ }
+ if (targetEditPart instanceof MultiInputPort2EditPart) {
+ types.add(ComrelElementTypes.MultiPortMapping_4002);
+ }
+ if (targetEditPart instanceof MultiInputPort3EditPart) {
+ types.add(ComrelElementTypes.MultiPortMapping_4002);
+ }
+ if (targetEditPart instanceof MultiInputPort4EditPart) {
+ types.add(ComrelElementTypes.MultiPortMapping_4002);
+ }
+ if (targetEditPart instanceof MultiInputPort5EditPart) {
+ types.add(ComrelElementTypes.MultiPortMapping_4002);
+ }
+ if (targetEditPart instanceof MultiInputPort6EditPart) {
+ types.add(ComrelElementTypes.MultiPortMapping_4002);
+ }
+ if (targetEditPart instanceof MultiInputPort7EditPart) {
+ types.add(ComrelElementTypes.MultiPortMapping_4002);
+ }
+ if (targetEditPart instanceof MultiInputPort8EditPart) {
+ types.add(ComrelElementTypes.MultiPortMapping_4002);
+ }
+ if (targetEditPart instanceof MultiInputPort9EditPart) {
+ types.add(ComrelElementTypes.MultiPortMapping_4002);
+ }
+ if (targetEditPart instanceof SingleInputPortEditPart) {
+ types.add(ComrelElementTypes.MultiSinglePortMapping_4003);
+ }
+ if (targetEditPart instanceof SingleInputPort2EditPart) {
+ types.add(ComrelElementTypes.MultiSinglePortMapping_4003);
+ }
+ if (targetEditPart instanceof SingleInputPort3EditPart) {
+ types.add(ComrelElementTypes.MultiSinglePortMapping_4003);
+ }
+ if (targetEditPart instanceof SingleInputPort4EditPart) {
+ types.add(ComrelElementTypes.MultiSinglePortMapping_4003);
+ }
+ if (targetEditPart instanceof SingleInputPort5EditPart) {
+ types.add(ComrelElementTypes.MultiSinglePortMapping_4003);
+ }
+ if (targetEditPart instanceof SingleInputPort6EditPart) {
+ types.add(ComrelElementTypes.MultiSinglePortMapping_4003);
+ }
+ if (targetEditPart instanceof SingleInputPort7EditPart) {
+ types.add(ComrelElementTypes.MultiSinglePortMapping_4003);
+ }
+ if (targetEditPart instanceof SingleInputPort8EditPart) {
+ types.add(ComrelElementTypes.MultiSinglePortMapping_4003);
+ }
+ if (targetEditPart instanceof SingleInputPort9EditPart) {
+ types.add(ComrelElementTypes.MultiSinglePortMapping_4003);
+ }
+ return types;
+ }
+
+ /**
+ * @generated
+ */
+ public List<IElementType> getMATypesForTarget(IElementType relationshipType) {
+ LinkedList<IElementType> types = new LinkedList<IElementType>();
+ if (relationshipType == ComrelElementTypes.MultiPortMapping_4002) {
+ types.add(ComrelElementTypes.MultiInputPort_3002);
+ types.add(ComrelElementTypes.MultiInputPort_3006);
+ types.add(ComrelElementTypes.MultiInputPort_3010);
+ types.add(ComrelElementTypes.MultiInputPort_3014);
+ types.add(ComrelElementTypes.MultiInputPort_3017);
+ types.add(ComrelElementTypes.MultiInputPort_3020);
+ types.add(ComrelElementTypes.MultiInputPort_3024);
+ types.add(ComrelElementTypes.MultiInputPort_3028);
+ types.add(ComrelElementTypes.MultiInputPort_3032);
+ } else if (relationshipType == ComrelElementTypes.MultiSinglePortMapping_4003) {
+ types.add(ComrelElementTypes.SingleInputPort_2001);
+ types.add(ComrelElementTypes.SingleInputPort_3001);
+ types.add(ComrelElementTypes.SingleInputPort_3005);
+ types.add(ComrelElementTypes.SingleInputPort_3009);
+ types.add(ComrelElementTypes.SingleInputPort_3013);
+ types.add(ComrelElementTypes.SingleInputPort_3023);
+ types.add(ComrelElementTypes.SingleInputPort_3027);
+ types.add(ComrelElementTypes.SingleInputPort_3031);
+ types.add(ComrelElementTypes.SingleInputPort_3035);
+ }
+ return types;
+ }
+
+ /**
+ * @generated
+ */
+ public List<IElementType> getMARelTypesOnTarget() {
+ ArrayList<IElementType> types = new ArrayList<IElementType>(1);
+ types.add(ComrelElementTypes.MultiPortMapping_4002);
+ return types;
+ }
+
+ /**
+ * @generated
+ */
+ public List<IElementType> getMATypesForSource(IElementType relationshipType) {
+ LinkedList<IElementType> types = new LinkedList<IElementType>();
+ if (relationshipType == ComrelElementTypes.MultiPortMapping_4002) {
+ types.add(ComrelElementTypes.MultiInputPort_3002);
+ types.add(ComrelElementTypes.MultiInputPort_3006);
+ types.add(ComrelElementTypes.MultiInputPort_3010);
+ types.add(ComrelElementTypes.MultiInputPort_3014);
+ types.add(ComrelElementTypes.MultiOutputPort_3015);
+ types.add(ComrelElementTypes.MultiInputPort_3017);
+ types.add(ComrelElementTypes.MultiInputPort_3020);
+ types.add(ComrelElementTypes.MultiOutputPort_3021);
+ types.add(ComrelElementTypes.MultiInputPort_3024);
+ types.add(ComrelElementTypes.MultiInputPort_3028);
+ types.add(ComrelElementTypes.MultiInputPort_3032);
+ }
+ return types;
+ }
+
+ /**
+ * @generated NOT
+ */
+ public class MultiInputPortFigure extends InputPortFigure {
+
+ /**
+ * @generated
+ */
+ public MultiInputPortFigure() {
+ this.setLineWidth(10);
+ this.setForegroundColor(THIS_FORE);
+ this.setPreferredSize(new Dimension(getMapMode().DPtoLP(20),
+ getMapMode().DPtoLP(20)));
+ this.setBorder(new MarginBorder(getMapMode().DPtoLP(5),
+ getMapMode().DPtoLP(5), getMapMode().DPtoLP(5),
+ getMapMode().DPtoLP(5)));
+ }
+
+ }
+
+ /**
+ * @generated
+ */
+ static final Color THIS_FORE = new Color(null, 255, 0, 0);
+
+}
diff --git a/org.eclipse.emf.refactor.comrel.diagram/src/comrel/diagram/edit/parts/MultiInputPortNameType2EditPart.java b/org.eclipse.emf.refactor.comrel.diagram/src/comrel/diagram/edit/parts/MultiInputPortNameType2EditPart.java
new file mode 100644
index 0000000..61c9303
--- /dev/null
+++ b/org.eclipse.emf.refactor.comrel.diagram/src/comrel/diagram/edit/parts/MultiInputPortNameType2EditPart.java
@@ -0,0 +1,631 @@
+/*
+ *
+ */
+package comrel.diagram.edit.parts;
+
+import java.util.Collections;
+import java.util.List;
+
+import org.eclipse.draw2d.IFigure;
+import org.eclipse.draw2d.Label;
+import org.eclipse.draw2d.geometry.Point;
+import org.eclipse.draw2d.geometry.Rectangle;
+import org.eclipse.emf.common.notify.Notification;
+import org.eclipse.emf.ecore.EObject;
+import org.eclipse.emf.transaction.RunnableWithResult;
+import org.eclipse.gef.AccessibleEditPart;
+import org.eclipse.gef.EditPolicy;
+import org.eclipse.gef.Request;
+import org.eclipse.gef.requests.DirectEditRequest;
+import org.eclipse.gef.tools.DirectEditManager;
+import org.eclipse.gmf.runtime.common.ui.services.parser.IParser;
+import org.eclipse.gmf.runtime.common.ui.services.parser.IParserEditStatus;
+import org.eclipse.gmf.runtime.common.ui.services.parser.ParserEditStatus;
+import org.eclipse.gmf.runtime.common.ui.services.parser.ParserOptions;
+import org.eclipse.gmf.runtime.diagram.ui.editparts.IBorderItemEditPart;
+import org.eclipse.gmf.runtime.diagram.ui.editparts.IGraphicalEditPart;
+import org.eclipse.gmf.runtime.diagram.ui.editparts.ITextAwareEditPart;
+import org.eclipse.gmf.runtime.diagram.ui.editparts.LabelEditPart;
+import org.eclipse.gmf.runtime.diagram.ui.editpolicies.LabelDirectEditPolicy;
+import org.eclipse.gmf.runtime.diagram.ui.figures.IBorderItemLocator;
+import org.eclipse.gmf.runtime.diagram.ui.l10n.DiagramColorRegistry;
+import org.eclipse.gmf.runtime.diagram.ui.requests.RequestConstants;
+import org.eclipse.gmf.runtime.diagram.ui.tools.TextDirectEditManager;
+import org.eclipse.gmf.runtime.draw2d.ui.figures.WrappingLabel;
+import org.eclipse.gmf.runtime.emf.core.util.EObjectAdapter;
+import org.eclipse.gmf.runtime.emf.ui.services.parser.ISemanticParser;
+import org.eclipse.gmf.runtime.notation.FontStyle;
+import org.eclipse.gmf.runtime.notation.NotationPackage;
+import org.eclipse.gmf.runtime.notation.View;
+import org.eclipse.jface.text.contentassist.IContentAssistProcessor;
+import org.eclipse.jface.viewers.ICellEditorValidator;
+import org.eclipse.swt.SWT;
+import org.eclipse.swt.accessibility.AccessibleEvent;
+import org.eclipse.swt.graphics.Color;
+import org.eclipse.swt.graphics.FontData;
+import org.eclipse.swt.graphics.Image;
+
+import comrel.diagram.edit.policies.ComrelTextSelectionEditPolicy;
+import comrel.diagram.part.ComrelVisualIDRegistry;
+import comrel.diagram.providers.ComrelElementTypes;
+import comrel.diagram.providers.ComrelParserProvider;
+
+/**
+ * @generated
+ */
+public class MultiInputPortNameType2EditPart extends LabelEditPart implements
+ ITextAwareEditPart, IBorderItemEditPart {
+
+ /**
+ * @generated
+ */
+ public static final int VISUAL_ID = 5005;
+
+ /**
+ * @generated
+ */
+ private DirectEditManager manager;
+
+ /**
+ * @generated
+ */
+ private IParser parser;
+
+ /**
+ * @generated
+ */
+ private List<?> parserElements;
+
+ /**
+ * @generated
+ */
+ private String defaultText;
+
+ /**
+ * @generated
+ */
+ static {
+ registerSnapBackPosition(
+ ComrelVisualIDRegistry
+ .getType(comrel.diagram.edit.parts.MultiInputPortNameType2EditPart.VISUAL_ID),
+ new Point(0, 0));
+ }
+
+ /**
+ * @generated
+ */
+ public MultiInputPortNameType2EditPart(View view) {
+ super(view);
+ }
+
+ /**
+ * @generated
+ */
+ protected void createDefaultEditPolicies() {
+ super.createDefaultEditPolicies();
+ installEditPolicy(EditPolicy.DIRECT_EDIT_ROLE,
+ new LabelDirectEditPolicy());
+ installEditPolicy(EditPolicy.SELECTION_FEEDBACK_ROLE,
+ new ComrelTextSelectionEditPolicy());
+ }
+
+ /**
+ * @generated
+ */
+ public IBorderItemLocator getBorderItemLocator() {
+ IFigure parentFigure = getFigure().getParent();
+ if (parentFigure != null && parentFigure.getLayoutManager() != null) {
+ Object constraint = parentFigure.getLayoutManager().getConstraint(
+ getFigure());
+ return (IBorderItemLocator) constraint;
+ }
+ return null;
+ }
+
+ /**
+ * @generated
+ */
+ public void refreshBounds() {
+ int x = ((Integer) getStructuralFeatureValue(NotationPackage.eINSTANCE
+ .getLocation_X())).intValue();
+ int y = ((Integer) getStructuralFeatureValue(NotationPackage.eINSTANCE
+ .getLocation_Y())).intValue();
+ int width = ((Integer) getStructuralFeatureValue(NotationPackage.eINSTANCE
+ .getSize_Width())).intValue();
+ int height = ((Integer) getStructuralFeatureValue(NotationPackage.eINSTANCE
+ .getSize_Height())).intValue();
+ getBorderItemLocator()
+ .setConstraint(new Rectangle(x, y, width, height));
+ }
+
+ /**
+ * @generated
+ */
+ protected String getLabelTextHelper(IFigure figure) {
+ if (figure instanceof WrappingLabel) {
+ return ((WrappingLabel) figure).getText();
+ } else {
+ return ((Label) figure).getText();
+ }
+ }
+
+ /**
+ * @generated NOT
+ */
+ protected void setLabelTextHelper(IFigure figure, String text) {
+ int posDot = -1;
+ int posDouble = -1;
+ posDot = text.lastIndexOf(".");
+ posDouble = text.indexOf(":");
+ if (posDot > -1 && posDouble > -1) {
+ String first = text.substring(0, posDouble + 1);
+ String second = text.substring(posDot + 1);
+ text = first + second;
+ }
+ if (figure instanceof WrappingLabel) {
+ ((WrappingLabel) figure).setText(text);
+ } else {
+ ((Label) figure).setText(text);
+ }
+ }
+
+ /**
+ * @generated
+ */
+ protected Image getLabelIconHelper(IFigure figure) {
+ if (figure instanceof WrappingLabel) {
+ return ((WrappingLabel) figure).getIcon();
+ } else {
+ return ((Label) figure).getIcon();
+ }
+ }
+
+ /**
+ * @generated
+ */
+ protected void setLabelIconHelper(IFigure figure, Image icon) {
+ if (figure instanceof WrappingLabel) {
+ ((WrappingLabel) figure).setIcon(icon);
+ } else {
+ ((Label) figure).setIcon(icon);
+ }
+ }
+
+ /**
+ * @generated
+ */
+ public void setLabel(IFigure figure) {
+ unregisterVisuals();
+ setFigure(figure);
+ defaultText = getLabelTextHelper(figure);
+ registerVisuals();
+ refreshVisuals();
+ }
+
+ /**
+ * @generated
+ */
+ @SuppressWarnings("rawtypes")
+ protected List getModelChildren() {
+ return Collections.EMPTY_LIST;
+ }
+
+ /**
+ * @generated
+ */
+ public IGraphicalEditPart getChildBySemanticHint(String semanticHint) {
+ return null;
+ }
+
+ /**
+ * @generated
+ */
+ protected EObject getParserElement() {
+ return resolveSemanticElement();
+ }
+
+ /**
+ * @generated
+ */
+ protected Image getLabelIcon() {
+ return null;
+ }
+
+ /**
+ * @generated
+ */
+ protected String getLabelText() {
+ String text = null;
+ EObject parserElement = getParserElement();
+ if (parserElement != null && getParser() != null) {
+ text = getParser().getPrintString(
+ new EObjectAdapter(parserElement),
+ getParserOptions().intValue());
+ }
+ if (text == null || text.length() == 0) {
+ text = defaultText;
+ }
+ return text;
+ }
+
+ /**
+ * @generated
+ */
+ public void setLabelText(String text) {
+ setLabelTextHelper(getFigure(), text);
+ Object pdEditPolicy = getEditPolicy(EditPolicy.PRIMARY_DRAG_ROLE);
+ if (pdEditPolicy instanceof ComrelTextSelectionEditPolicy) {
+ ((ComrelTextSelectionEditPolicy) pdEditPolicy).refreshFeedback();
+ }
+ Object sfEditPolicy = getEditPolicy(EditPolicy.SELECTION_FEEDBACK_ROLE);
+ if (sfEditPolicy instanceof ComrelTextSelectionEditPolicy) {
+ ((ComrelTextSelectionEditPolicy) sfEditPolicy).refreshFeedback();
+ }
+ }
+
+ /**
+ * @generated
+ */
+ public String getEditText() {
+ if (getParserElement() == null || getParser() == null) {
+ return ""; //$NON-NLS-1$
+ }
+ return getParser().getEditString(
+ new EObjectAdapter(getParserElement()),
+ getParserOptions().intValue());
+ }
+
+ /**
+ * @generated
+ */
+ protected boolean isEditable() {
+ return getParser() != null;
+ }
+
+ /**
+ * @generated
+ */
+ public ICellEditorValidator getEditTextValidator() {
+ return new ICellEditorValidator() {
+
+ public String isValid(final Object value) {
+ if (value instanceof String) {
+ final EObject element = getParserElement();
+ final IParser parser = getParser();
+ try {
+ IParserEditStatus valid = (IParserEditStatus) getEditingDomain()
+ .runExclusive(
+ new RunnableWithResult.Impl<IParserEditStatus>() {
+
+ public void run() {
+ setResult(parser
+ .isValidEditString(
+ new EObjectAdapter(
+ element),
+ (String) value));
+ }
+ });
+ return valid.getCode() == ParserEditStatus.EDITABLE ? null
+ : valid.getMessage();
+ } catch (InterruptedException ie) {
+ ie.printStackTrace();
+ }
+ }
+
+ // shouldn't get here
+ return null;
+ }
+ };
+ }
+
+ /**
+ * @generated
+ */
+ public IContentAssistProcessor getCompletionProcessor() {
+ if (getParserElement() == null || getParser() == null) {
+ return null;
+ }
+ return getParser().getCompletionProcessor(
+ new EObjectAdapter(getParserElement()));
+ }
+
+ /**
+ * @generated
+ */
+ public ParserOptions getParserOptions() {
+ return ParserOptions.NONE;
+ }
+
+ /**
+ * @generated
+ */
+ public IParser getParser() {
+ if (parser == null) {
+ parser = ComrelParserProvider
+ .getParser(
+ ComrelElementTypes.MultiInputPort_3006,
+ getParserElement(),
+ ComrelVisualIDRegistry
+ .getType(comrel.diagram.edit.parts.MultiInputPortNameType2EditPart.VISUAL_ID));
+ }
+ return parser;
+ }
+
+ /**
+ * @generated
+ */
+ protected DirectEditManager getManager() {
+ if (manager == null) {
+ setManager(new TextDirectEditManager(this,
+ TextDirectEditManager.getTextCellEditorClass(this),
+ ComrelEditPartFactory.getTextCellEditorLocator(this)));
+ }
+ return manager;
+ }
+
+ /**
+ * @generated
+ */
+ protected void setManager(DirectEditManager manager) {
+ this.manager = manager;
+ }
+
+ /**
+ * @generated
+ */
+ protected void performDirectEdit() {
+ getManager().show();
+ }
+
+ /**
+ * @generated
+ */
+ protected void performDirectEdit(Point eventLocation) {
+ if (getManager().getClass() == TextDirectEditManager.class) {
+ ((TextDirectEditManager) getManager()).show(eventLocation
+ .getSWTPoint());
+ }
+ }
+
+ /**
+ * @generated
+ */
+ private void performDirectEdit(char initialCharacter) {
+ if (getManager() instanceof TextDirectEditManager) {
+ ((TextDirectEditManager) getManager()).show(initialCharacter);
+ } else {
+ performDirectEdit();
+ }
+ }
+
+ /**
+ * @generated
+ */
+ protected void performDirectEditRequest(Request request) {
+ final Request theRequest = request;
+ try {
+ getEditingDomain().runExclusive(new Runnable() {
+
+ public void run() {
+ if (isActive() && isEditable()) {
+ if (theRequest
+ .getExtendedData()
+ .get(RequestConstants.REQ_DIRECTEDIT_EXTENDEDDATA_INITIAL_CHAR) instanceof Character) {
+ Character initialChar = (Character) theRequest
+ .getExtendedData()
+ .get(RequestConstants.REQ_DIRECTEDIT_EXTENDEDDATA_INITIAL_CHAR);
+ performDirectEdit(initialChar.charValue());
+ } else if ((theRequest instanceof DirectEditRequest)
+ && (getEditText().equals(getLabelText()))) {
+ DirectEditRequest editRequest = (DirectEditRequest) theRequest;
+ performDirectEdit(editRequest.getLocation());
+ } else {
+ performDirectEdit();
+ }
+ }
+ }
+ });
+ } catch (InterruptedException e) {
+ e.printStackTrace();
+ }
+ }
+
+ /**
+ * @generated
+ */
+ protected void refreshVisuals() {
+ super.refreshVisuals();
+ refreshLabel();
+ refreshFont();
+ refreshFontColor();
+ refreshUnderline();
+ refreshStrikeThrough();
+ }
+
+ /**
+ * @generated
+ */
+ protected void refreshLabel() {
+ setLabelTextHelper(getFigure(), getLabelText());
+ setLabelIconHelper(getFigure(), getLabelIcon());
+ Object pdEditPolicy = getEditPolicy(EditPolicy.PRIMARY_DRAG_ROLE);
+ if (pdEditPolicy instanceof ComrelTextSelectionEditPolicy) {
+ ((ComrelTextSelectionEditPolicy) pdEditPolicy).refreshFeedback();
+ }
+ Object sfEditPolicy = getEditPolicy(EditPolicy.SELECTION_FEEDBACK_ROLE);
+ if (sfEditPolicy instanceof ComrelTextSelectionEditPolicy) {
+ ((ComrelTextSelectionEditPolicy) sfEditPolicy).refreshFeedback();
+ }
+ }
+
+ /**
+ * @generated
+ */
+ protected void refreshUnderline() {
+ FontStyle style = (FontStyle) getFontStyleOwnerView().getStyle(
+ NotationPackage.eINSTANCE.getFontStyle());
+ if (style != null && getFigure() instanceof WrappingLabel) {
+ ((WrappingLabel) getFigure()).setTextUnderline(style.isUnderline());
+ }
+ }
+
+ /**
+ * @generated
+ */
+ protected void refreshStrikeThrough() {
+ FontStyle style = (FontStyle) getFontStyleOwnerView().getStyle(
+ NotationPackage.eINSTANCE.getFontStyle());
+ if (style != null && getFigure() instanceof WrappingLabel) {
+ ((WrappingLabel) getFigure()).setTextStrikeThrough(style
+ .isStrikeThrough());
+ }
+ }
+
+ /**
+ * @generated
+ */
+ protected void refreshFont() {
+ FontStyle style = (FontStyle) getFontStyleOwnerView().getStyle(
+ NotationPackage.eINSTANCE.getFontStyle());
+ if (style != null) {
+ FontData fontData = new FontData(style.getFontName(),
+ style.getFontHeight(), (style.isBold() ? SWT.BOLD
+ : SWT.NORMAL)
+ | (style.isItalic() ? SWT.ITALIC : SWT.NORMAL));
+ setFont(fontData);
+ }
+ }
+
+ /**
+ * @generated
+ */
+ protected void setFontColor(Color color) {
+ getFigure().setForegroundColor(color);
+ }
+
+ /**
+ * @generated
+ */
+ protected void addSemanticListeners() {
+ if (getParser() instanceof ISemanticParser) {
+ EObject element = resolveSemanticElement();
+ parserElements = ((ISemanticParser) getParser())
+ .getSemanticElementsBeingParsed(element);
+ for (int i = 0; i < parserElements.size(); i++) {
+ addListenerFilter(
+ "SemanticModel" + i, this, (EObject) parserElements.get(i)); //$NON-NLS-1$
+ }
+ } else {
+ super.addSemanticListeners();
+ }
+ }
+
+ /**
+ * @generated
+ */
+ protected void removeSemanticListeners() {
+ if (parserElements != null) {
+ for (int i = 0; i < parserElements.size(); i++) {
+ removeListenerFilter("SemanticModel" + i); //$NON-NLS-1$
+ }
+ } else {
+ super.removeSemanticListeners();
+ }
+ }
+
+ /**
+ * @generated
+ */
+ protected AccessibleEditPart getAccessibleEditPart() {
+ if (accessibleEP == null) {
+ accessibleEP = new AccessibleGraphicalEditPart() {
+
+ public void getName(AccessibleEvent e) {
+ e.result = getLabelTextHelper(getFigure());
+ }
+ };
+ }
+ return accessibleEP;
+ }
+
+ /**
+ * @generated
+ */
+ private View getFontStyleOwnerView() {
+ return getPrimaryView();
+ }
+
+ /**
+ * @generated
+ */
+ protected void handleNotificationEvent(Notification event) {
+ Object feature = event.getFeature();
+ if (NotationPackage.eINSTANCE.getFontStyle_FontColor().equals(feature)) {
+ Integer c = (Integer) event.getNewValue();
+ setFontColor(DiagramColorRegistry.getInstance().getColor(c));
+ } else if (NotationPackage.eINSTANCE.getFontStyle_Underline().equals(
+ feature)) {
+ refreshUnderline();
+ } else if (NotationPackage.eINSTANCE.getFontStyle_StrikeThrough()
+ .equals(feature)) {
+ refreshStrikeThrough();
+ } else if (NotationPackage.eINSTANCE.getFontStyle_FontHeight().equals(
+ feature)
+ || NotationPackage.eINSTANCE.getFontStyle_FontName().equals(
+ feature)
+ || NotationPackage.eINSTANCE.getFontStyle_Bold()
+ .equals(feature)
+ || NotationPackage.eINSTANCE.getFontStyle_Italic().equals(
+ feature)) {
+ refreshFont();
+ } else {
+ if (getParser() != null
+ && getParser().isAffectingEvent(event,
+ getParserOptions().intValue())) {
+ refreshLabel();
+ }
+ if (getParser() instanceof ISemanticParser) {
+ ISemanticParser modelParser = (ISemanticParser) getParser();
+ if (modelParser.areSemanticElementsAffected(null, event)) {
+ removeSemanticListeners();
+ if (resolveSemanticElement() != null) {
+ addSemanticListeners();
+ }
+ refreshLabel();
+ }
+ }
+ }
+ super.handleNotificationEvent(event);
+ }
+
+ /**
+ * @generated
+ */
+ protected IFigure createFigure() {
+ IFigure label = createFigurePrim();
+ defaultText = getLabelTextHelper(label);
+ return label;
+ }
+
+ /**
+ * @generated
+ */
+ protected IFigure createFigurePrim() {
+ return new MultiInputPortLabelFigure();
+ }
+
+ /**
+ * @generated
+ */
+ public class MultiInputPortLabelFigure extends WrappingLabel {
+
+ /**
+ * @generated
+ */
+ public MultiInputPortLabelFigure() {
+ this.setText("MultiInputPort");
+ }
+
+ }
+
+}
diff --git a/org.eclipse.emf.refactor.comrel.diagram/src/comrel/diagram/edit/parts/MultiInputPortNameType3EditPart.java b/org.eclipse.emf.refactor.comrel.diagram/src/comrel/diagram/edit/parts/MultiInputPortNameType3EditPart.java
new file mode 100644
index 0000000..eef19c6
--- /dev/null
+++ b/org.eclipse.emf.refactor.comrel.diagram/src/comrel/diagram/edit/parts/MultiInputPortNameType3EditPart.java
@@ -0,0 +1,631 @@
+/*
+ *
+ */
+package comrel.diagram.edit.parts;
+
+import java.util.Collections;
+import java.util.List;
+
+import org.eclipse.draw2d.IFigure;
+import org.eclipse.draw2d.Label;
+import org.eclipse.draw2d.geometry.Point;
+import org.eclipse.draw2d.geometry.Rectangle;
+import org.eclipse.emf.common.notify.Notification;
+import org.eclipse.emf.ecore.EObject;
+import org.eclipse.emf.transaction.RunnableWithResult;
+import org.eclipse.gef.AccessibleEditPart;
+import org.eclipse.gef.EditPolicy;
+import org.eclipse.gef.Request;
+import org.eclipse.gef.requests.DirectEditRequest;
+import org.eclipse.gef.tools.DirectEditManager;
+import org.eclipse.gmf.runtime.common.ui.services.parser.IParser;
+import org.eclipse.gmf.runtime.common.ui.services.parser.IParserEditStatus;
+import org.eclipse.gmf.runtime.common.ui.services.parser.ParserEditStatus;
+import org.eclipse.gmf.runtime.common.ui.services.parser.ParserOptions;
+import org.eclipse.gmf.runtime.diagram.ui.editparts.IBorderItemEditPart;
+import org.eclipse.gmf.runtime.diagram.ui.editparts.IGraphicalEditPart;
+import org.eclipse.gmf.runtime.diagram.ui.editparts.ITextAwareEditPart;
+import org.eclipse.gmf.runtime.diagram.ui.editparts.LabelEditPart;
+import org.eclipse.gmf.runtime.diagram.ui.editpolicies.LabelDirectEditPolicy;
+import org.eclipse.gmf.runtime.diagram.ui.figures.IBorderItemLocator;
+import org.eclipse.gmf.runtime.diagram.ui.l10n.DiagramColorRegistry;
+import org.eclipse.gmf.runtime.diagram.ui.requests.RequestConstants;
+import org.eclipse.gmf.runtime.diagram.ui.tools.TextDirectEditManager;
+import org.eclipse.gmf.runtime.draw2d.ui.figures.WrappingLabel;
+import org.eclipse.gmf.runtime.emf.core.util.EObjectAdapter;
+import org.eclipse.gmf.runtime.emf.ui.services.parser.ISemanticParser;
+import org.eclipse.gmf.runtime.notation.FontStyle;
+import org.eclipse.gmf.runtime.notation.NotationPackage;
+import org.eclipse.gmf.runtime.notation.View;
+import org.eclipse.jface.text.contentassist.IContentAssistProcessor;
+import org.eclipse.jface.viewers.ICellEditorValidator;
+import org.eclipse.swt.SWT;
+import org.eclipse.swt.accessibility.AccessibleEvent;
+import org.eclipse.swt.graphics.Color;
+import org.eclipse.swt.graphics.FontData;
+import org.eclipse.swt.graphics.Image;
+
+import comrel.diagram.edit.policies.ComrelTextSelectionEditPolicy;
+import comrel.diagram.part.ComrelVisualIDRegistry;
+import comrel.diagram.providers.ComrelElementTypes;
+import comrel.diagram.providers.ComrelParserProvider;
+
+/**
+ * @generated
+ */
+public class MultiInputPortNameType3EditPart extends LabelEditPart implements
+ ITextAwareEditPart, IBorderItemEditPart {
+
+ /**
+ * @generated
+ */
+ public static final int VISUAL_ID = 5007;
+
+ /**
+ * @generated
+ */
+ private DirectEditManager manager;
+
+ /**
+ * @generated
+ */
+ private IParser parser;
+
+ /**
+ * @generated
+ */
+ private List<?> parserElements;
+
+ /**
+ * @generated
+ */
+ private String defaultText;
+
+ /**
+ * @generated
+ */
+ static {
+ registerSnapBackPosition(
+ ComrelVisualIDRegistry
+ .getType(comrel.diagram.edit.parts.MultiInputPortNameType3EditPart.VISUAL_ID),
+ new Point(0, 0));
+ }
+
+ /**
+ * @generated
+ */
+ public MultiInputPortNameType3EditPart(View view) {
+ super(view);
+ }
+
+ /**
+ * @generated
+ */
+ protected void createDefaultEditPolicies() {
+ super.createDefaultEditPolicies();
+ installEditPolicy(EditPolicy.DIRECT_EDIT_ROLE,
+ new LabelDirectEditPolicy());
+ installEditPolicy(EditPolicy.SELECTION_FEEDBACK_ROLE,
+ new ComrelTextSelectionEditPolicy());
+ }
+
+ /**
+ * @generated
+ */
+ public IBorderItemLocator getBorderItemLocator() {
+ IFigure parentFigure = getFigure().getParent();
+ if (parentFigure != null && parentFigure.getLayoutManager() != null) {
+ Object constraint = parentFigure.getLayoutManager().getConstraint(
+ getFigure());
+ return (IBorderItemLocator) constraint;
+ }
+ return null;
+ }
+
+ /**
+ * @generated
+ */
+ public void refreshBounds() {
+ int x = ((Integer) getStructuralFeatureValue(NotationPackage.eINSTANCE
+ .getLocation_X())).intValue();
+ int y = ((Integer) getStructuralFeatureValue(NotationPackage.eINSTANCE
+ .getLocation_Y())).intValue();
+ int width = ((Integer) getStructuralFeatureValue(NotationPackage.eINSTANCE
+ .getSize_Width())).intValue();
+ int height = ((Integer) getStructuralFeatureValue(NotationPackage.eINSTANCE
+ .getSize_Height())).intValue();
+ getBorderItemLocator()
+ .setConstraint(new Rectangle(x, y, width, height));
+ }
+
+ /**
+ * @generated
+ */
+ protected String getLabelTextHelper(IFigure figure) {
+ if (figure instanceof WrappingLabel) {
+ return ((WrappingLabel) figure).getText();
+ } else {
+ return ((Label) figure).getText();
+ }
+ }
+
+ /**
+ * @generated NOT
+ */
+ protected void setLabelTextHelper(IFigure figure, String text) {
+ int posDot = -1;
+ int posDouble = -1;
+ posDot = text.lastIndexOf(".");
+ posDouble = text.indexOf(":");
+ if (posDot > -1 && posDouble > -1) {
+ String first = text.substring(0, posDouble + 1);
+ String second = text.substring(posDot + 1);
+ text = first + second;
+ }
+ if (figure instanceof WrappingLabel) {
+ ((WrappingLabel) figure).setText(text);
+ } else {
+ ((Label) figure).setText(text);
+ }
+ }
+
+ /**
+ * @generated
+ */
+ protected Image getLabelIconHelper(IFigure figure) {
+ if (figure instanceof WrappingLabel) {
+ return ((WrappingLabel) figure).getIcon();
+ } else {
+ return ((Label) figure).getIcon();
+ }
+ }
+
+ /**
+ * @generated
+ */
+ protected void setLabelIconHelper(IFigure figure, Image icon) {
+ if (figure instanceof WrappingLabel) {
+ ((WrappingLabel) figure).setIcon(icon);
+ } else {
+ ((Label) figure).setIcon(icon);
+ }
+ }
+
+ /**
+ * @generated
+ */
+ public void setLabel(IFigure figure) {
+ unregisterVisuals();
+ setFigure(figure);
+ defaultText = getLabelTextHelper(figure);
+ registerVisuals();
+ refreshVisuals();
+ }
+
+ /**
+ * @generated
+ */
+ @SuppressWarnings("rawtypes")
+ protected List getModelChildren() {
+ return Collections.EMPTY_LIST;
+ }
+
+ /**
+ * @generated
+ */
+ public IGraphicalEditPart getChildBySemanticHint(String semanticHint) {
+ return null;
+ }
+
+ /**
+ * @generated
+ */
+ protected EObject getParserElement() {
+ return resolveSemanticElement();
+ }
+
+ /**
+ * @generated
+ */
+ protected Image getLabelIcon() {
+ return null;
+ }
+
+ /**
+ * @generated
+ */
+ protected String getLabelText() {
+ String text = null;
+ EObject parserElement = getParserElement();
+ if (parserElement != null && getParser() != null) {
+ text = getParser().getPrintString(
+ new EObjectAdapter(parserElement),
+ getParserOptions().intValue());
+ }
+ if (text == null || text.length() == 0) {
+ text = defaultText;
+ }
+ return text;
+ }
+
+ /**
+ * @generated
+ */
+ public void setLabelText(String text) {
+ setLabelTextHelper(getFigure(), text);
+ Object pdEditPolicy = getEditPolicy(EditPolicy.PRIMARY_DRAG_ROLE);
+ if (pdEditPolicy instanceof ComrelTextSelectionEditPolicy) {
+ ((ComrelTextSelectionEditPolicy) pdEditPolicy).refreshFeedback();
+ }
+ Object sfEditPolicy = getEditPolicy(EditPolicy.SELECTION_FEEDBACK_ROLE);
+ if (sfEditPolicy instanceof ComrelTextSelectionEditPolicy) {
+ ((ComrelTextSelectionEditPolicy) sfEditPolicy).refreshFeedback();
+ }
+ }
+
+ /**
+ * @generated
+ */
+ public String getEditText() {
+ if (getParserElement() == null || getParser() == null) {
+ return ""; //$NON-NLS-1$
+ }
+ return getParser().getEditString(
+ new EObjectAdapter(getParserElement()),
+ getParserOptions().intValue());
+ }
+
+ /**
+ * @generated
+ */
+ protected boolean isEditable() {
+ return getParser() != null;
+ }
+
+ /**
+ * @generated
+ */
+ public ICellEditorValidator getEditTextValidator() {
+ return new ICellEditorValidator() {
+
+ public String isValid(final Object value) {
+ if (value instanceof String) {
+ final EObject element = getParserElement();
+ final IParser parser = getParser();
+ try {
+ IParserEditStatus valid = (IParserEditStatus) getEditingDomain()
+ .runExclusive(
+ new RunnableWithResult.Impl<IParserEditStatus>() {
+
+ public void run() {
+ setResult(parser
+ .isValidEditString(
+ new EObjectAdapter(
+ element),
+ (String) value));
+ }
+ });
+ return valid.getCode() == ParserEditStatus.EDITABLE ? null
+ : valid.getMessage();
+ } catch (InterruptedException ie) {
+ ie.printStackTrace();
+ }
+ }
+
+ // shouldn't get here
+ return null;
+ }
+ };
+ }
+
+ /**
+ * @generated
+ */
+ public IContentAssistProcessor getCompletionProcessor() {
+ if (getParserElement() == null || getParser() == null) {
+ return null;
+ }
+ return getParser().getCompletionProcessor(
+ new EObjectAdapter(getParserElement()));
+ }
+
+ /**
+ * @generated
+ */
+ public ParserOptions getParserOptions() {
+ return ParserOptions.NONE;
+ }
+
+ /**
+ * @generated
+ */
+ public IParser getParser() {
+ if (parser == null) {
+ parser = ComrelParserProvider
+ .getParser(
+ ComrelElementTypes.MultiInputPort_3010,
+ getParserElement(),
+ ComrelVisualIDRegistry
+ .getType(comrel.diagram.edit.parts.MultiInputPortNameType3EditPart.VISUAL_ID));
+ }
+ return parser;
+ }
+
+ /**
+ * @generated
+ */
+ protected DirectEditManager getManager() {
+ if (manager == null) {
+ setManager(new TextDirectEditManager(this,
+ TextDirectEditManager.getTextCellEditorClass(this),
+ ComrelEditPartFactory.getTextCellEditorLocator(this)));
+ }
+ return manager;
+ }
+
+ /**
+ * @generated
+ */
+ protected void setManager(DirectEditManager manager) {
+ this.manager = manager;
+ }
+
+ /**
+ * @generated
+ */
+ protected void performDirectEdit() {
+ getManager().show();
+ }
+
+ /**
+ * @generated
+ */
+ protected void performDirectEdit(Point eventLocation) {
+ if (getManager().getClass() == TextDirectEditManager.class) {
+ ((TextDirectEditManager) getManager()).show(eventLocation
+ .getSWTPoint());
+ }
+ }
+
+ /**
+ * @generated
+ */
+ private void performDirectEdit(char initialCharacter) {
+ if (getManager() instanceof TextDirectEditManager) {
+ ((TextDirectEditManager) getManager()).show(initialCharacter);
+ } else {
+ performDirectEdit();
+ }
+ }
+
+ /**
+ * @generated
+ */
+ protected void performDirectEditRequest(Request request) {
+ final Request theRequest = request;
+ try {
+ getEditingDomain().runExclusive(new Runnable() {
+
+ public void run() {
+ if (isActive() && isEditable()) {
+ if (theRequest
+ .getExtendedData()
+ .get(RequestConstants.REQ_DIRECTEDIT_EXTENDEDDATA_INITIAL_CHAR) instanceof Character) {
+ Character initialChar = (Character) theRequest
+ .getExtendedData()
+ .get(RequestConstants.REQ_DIRECTEDIT_EXTENDEDDATA_INITIAL_CHAR);
+ performDirectEdit(initialChar.charValue());
+ } else if ((theRequest instanceof DirectEditRequest)
+ && (getEditText().equals(getLabelText()))) {
+ DirectEditRequest editRequest = (DirectEditRequest) theRequest;
+ performDirectEdit(editRequest.getLocation());
+ } else {
+ performDirectEdit();
+ }
+ }
+ }
+ });
+ } catch (InterruptedException e) {
+ e.printStackTrace();
+ }
+ }
+
+ /**
+ * @generated
+ */
+ protected void refreshVisuals() {
+ super.refreshVisuals();
+ refreshLabel();
+ refreshFont();
+ refreshFontColor();
+ refreshUnderline();
+ refreshStrikeThrough();
+ }
+
+ /**
+ * @generated
+ */
+ protected void refreshLabel() {
+ setLabelTextHelper(getFigure(), getLabelText());
+ setLabelIconHelper(getFigure(), getLabelIcon());
+ Object pdEditPolicy = getEditPolicy(EditPolicy.PRIMARY_DRAG_ROLE);
+ if (pdEditPolicy instanceof ComrelTextSelectionEditPolicy) {
+ ((ComrelTextSelectionEditPolicy) pdEditPolicy).refreshFeedback();
+ }
+ Object sfEditPolicy = getEditPolicy(EditPolicy.SELECTION_FEEDBACK_ROLE);
+ if (sfEditPolicy instanceof ComrelTextSelectionEditPolicy) {
+ ((ComrelTextSelectionEditPolicy) sfEditPolicy).refreshFeedback();
+ }
+ }
+
+ /**
+ * @generated
+ */
+ protected void refreshUnderline() {
+ FontStyle style = (FontStyle) getFontStyleOwnerView().getStyle(
+ NotationPackage.eINSTANCE.getFontStyle());
+ if (style != null && getFigure() instanceof WrappingLabel) {
+ ((WrappingLabel) getFigure()).setTextUnderline(style.isUnderline());
+ }
+ }
+
+ /**
+ * @generated
+ */
+ protected void refreshStrikeThrough() {
+ FontStyle style = (FontStyle) getFontStyleOwnerView().getStyle(
+ NotationPackage.eINSTANCE.getFontStyle());
+ if (style != null && getFigure() instanceof WrappingLabel) {
+ ((WrappingLabel) getFigure()).setTextStrikeThrough(style
+ .isStrikeThrough());
+ }
+ }
+
+ /**
+ * @generated
+ */
+ protected void refreshFont() {
+ FontStyle style = (FontStyle) getFontStyleOwnerView().getStyle(
+ NotationPackage.eINSTANCE.getFontStyle());
+ if (style != null) {
+ FontData fontData = new FontData(style.getFontName(),
+ style.getFontHeight(), (style.isBold() ? SWT.BOLD
+ : SWT.NORMAL)
+ | (style.isItalic() ? SWT.ITALIC : SWT.NORMAL));
+ setFont(fontData);
+ }
+ }
+
+ /**
+ * @generated
+ */
+ protected void setFontColor(Color color) {
+ getFigure().setForegroundColor(color);
+ }
+
+ /**
+ * @generated
+ */
+ protected void addSemanticListeners() {
+ if (getParser() instanceof ISemanticParser) {
+ EObject element = resolveSemanticElement();
+ parserElements = ((ISemanticParser) getParser())
+ .getSemanticElementsBeingParsed(element);
+ for (int i = 0; i < parserElements.size(); i++) {
+ addListenerFilter(
+ "SemanticModel" + i, this, (EObject) parserElements.get(i)); //$NON-NLS-1$
+ }
+ } else {
+ super.addSemanticListeners();
+ }
+ }
+
+ /**
+ * @generated
+ */
+ protected void removeSemanticListeners() {
+ if (parserElements != null) {
+ for (int i = 0; i < parserElements.size(); i++) {
+ removeListenerFilter("SemanticModel" + i); //$NON-NLS-1$
+ }
+ } else {
+ super.removeSemanticListeners();
+ }
+ }
+
+ /**
+ * @generated
+ */
+ protected AccessibleEditPart getAccessibleEditPart() {
+ if (accessibleEP == null) {
+ accessibleEP = new AccessibleGraphicalEditPart() {
+
+ public void getName(AccessibleEvent e) {
+ e.result = getLabelTextHelper(getFigure());
+ }
+ };
+ }
+ return accessibleEP;
+ }
+
+ /**
+ * @generated
+ */
+ private View getFontStyleOwnerView() {
+ return getPrimaryView();
+ }
+
+ /**
+ * @generated
+ */
+ protected void handleNotificationEvent(Notification event) {
+ Object feature = event.getFeature();
+ if (NotationPackage.eINSTANCE.getFontStyle_FontColor().equals(feature)) {
+ Integer c = (Integer) event.getNewValue();
+ setFontColor(DiagramColorRegistry.getInstance().getColor(c));
+ } else if (NotationPackage.eINSTANCE.getFontStyle_Underline().equals(
+ feature)) {
+ refreshUnderline();
+ } else if (NotationPackage.eINSTANCE.getFontStyle_StrikeThrough()
+ .equals(feature)) {
+ refreshStrikeThrough();
+ } else if (NotationPackage.eINSTANCE.getFontStyle_FontHeight().equals(
+ feature)
+ || NotationPackage.eINSTANCE.getFontStyle_FontName().equals(
+ feature)
+ || NotationPackage.eINSTANCE.getFontStyle_Bold()
+ .equals(feature)
+ || NotationPackage.eINSTANCE.getFontStyle_Italic().equals(
+ feature)) {
+ refreshFont();
+ } else {
+ if (getParser() != null
+ && getParser().isAffectingEvent(event,
+ getParserOptions().intValue())) {
+ refreshLabel();
+ }
+ if (getParser() instanceof ISemanticParser) {
+ ISemanticParser modelParser = (ISemanticParser) getParser();
+ if (modelParser.areSemanticElementsAffected(null, event)) {
+ removeSemanticListeners();
+ if (resolveSemanticElement() != null) {
+ addSemanticListeners();
+ }
+ refreshLabel();
+ }
+ }
+ }
+ super.handleNotificationEvent(event);
+ }
+
+ /**
+ * @generated
+ */
+ protected IFigure createFigure() {
+ IFigure label = createFigurePrim();
+ defaultText = getLabelTextHelper(label);
+ return label;
+ }
+
+ /**
+ * @generated
+ */
+ protected IFigure createFigurePrim() {
+ return new MultiInputPortLabelFigure();
+ }
+
+ /**
+ * @generated
+ */
+ public class MultiInputPortLabelFigure extends WrappingLabel {
+
+ /**
+ * @generated
+ */
+ public MultiInputPortLabelFigure() {
+ this.setText("MultiInputPort");
+ }
+
+ }
+
+}
diff --git a/org.eclipse.emf.refactor.comrel.diagram/src/comrel/diagram/edit/parts/MultiInputPortNameType4EditPart.java b/org.eclipse.emf.refactor.comrel.diagram/src/comrel/diagram/edit/parts/MultiInputPortNameType4EditPart.java
new file mode 100644
index 0000000..a9e34db
--- /dev/null
+++ b/org.eclipse.emf.refactor.comrel.diagram/src/comrel/diagram/edit/parts/MultiInputPortNameType4EditPart.java
@@ -0,0 +1,631 @@
+/*
+ *
+ */
+package comrel.diagram.edit.parts;
+
+import java.util.Collections;
+import java.util.List;
+
+import org.eclipse.draw2d.IFigure;
+import org.eclipse.draw2d.Label;
+import org.eclipse.draw2d.geometry.Point;
+import org.eclipse.draw2d.geometry.Rectangle;
+import org.eclipse.emf.common.notify.Notification;
+import org.eclipse.emf.ecore.EObject;
+import org.eclipse.emf.transaction.RunnableWithResult;
+import org.eclipse.gef.AccessibleEditPart;
+import org.eclipse.gef.EditPolicy;
+import org.eclipse.gef.Request;
+import org.eclipse.gef.requests.DirectEditRequest;
+import org.eclipse.gef.tools.DirectEditManager;
+import org.eclipse.gmf.runtime.common.ui.services.parser.IParser;
+import org.eclipse.gmf.runtime.common.ui.services.parser.IParserEditStatus;
+import org.eclipse.gmf.runtime.common.ui.services.parser.ParserEditStatus;
+import org.eclipse.gmf.runtime.common.ui.services.parser.ParserOptions;
+import org.eclipse.gmf.runtime.diagram.ui.editparts.IBorderItemEditPart;
+import org.eclipse.gmf.runtime.diagram.ui.editparts.IGraphicalEditPart;
+import org.eclipse.gmf.runtime.diagram.ui.editparts.ITextAwareEditPart;
+import org.eclipse.gmf.runtime.diagram.ui.editparts.LabelEditPart;
+import org.eclipse.gmf.runtime.diagram.ui.editpolicies.LabelDirectEditPolicy;
+import org.eclipse.gmf.runtime.diagram.ui.figures.IBorderItemLocator;
+import org.eclipse.gmf.runtime.diagram.ui.l10n.DiagramColorRegistry;
+import org.eclipse.gmf.runtime.diagram.ui.requests.RequestConstants;
+import org.eclipse.gmf.runtime.diagram.ui.tools.TextDirectEditManager;
+import org.eclipse.gmf.runtime.draw2d.ui.figures.WrappingLabel;
+import org.eclipse.gmf.runtime.emf.core.util.EObjectAdapter;
+import org.eclipse.gmf.runtime.emf.ui.services.parser.ISemanticParser;
+import org.eclipse.gmf.runtime.notation.FontStyle;
+import org.eclipse.gmf.runtime.notation.NotationPackage;
+import org.eclipse.gmf.runtime.notation.View;
+import org.eclipse.jface.text.contentassist.IContentAssistProcessor;
+import org.eclipse.jface.viewers.ICellEditorValidator;
+import org.eclipse.swt.SWT;
+import org.eclipse.swt.accessibility.AccessibleEvent;
+import org.eclipse.swt.graphics.Color;
+import org.eclipse.swt.graphics.FontData;
+import org.eclipse.swt.graphics.Image;
+
+import comrel.diagram.edit.policies.ComrelTextSelectionEditPolicy;
+import comrel.diagram.part.ComrelVisualIDRegistry;
+import comrel.diagram.providers.ComrelElementTypes;
+import comrel.diagram.providers.ComrelParserProvider;
+
+/**
+ * @generated
+ */
+public class MultiInputPortNameType4EditPart extends LabelEditPart implements
+ ITextAwareEditPart, IBorderItemEditPart {
+
+ /**
+ * @generated
+ */
+ public static final int VISUAL_ID = 5011;
+
+ /**
+ * @generated
+ */
+ private DirectEditManager manager;
+
+ /**
+ * @generated
+ */
+ private IParser parser;
+
+ /**
+ * @generated
+ */
+ private List<?> parserElements;
+
+ /**
+ * @generated
+ */
+ private String defaultText;
+
+ /**
+ * @generated
+ */
+ static {
+ registerSnapBackPosition(
+ ComrelVisualIDRegistry
+ .getType(comrel.diagram.edit.parts.MultiInputPortNameType4EditPart.VISUAL_ID),
+ new Point(0, 0));
+ }
+
+ /**
+ * @generated
+ */
+ public MultiInputPortNameType4EditPart(View view) {
+ super(view);
+ }
+
+ /**
+ * @generated
+ */
+ protected void createDefaultEditPolicies() {
+ super.createDefaultEditPolicies();
+ installEditPolicy(EditPolicy.DIRECT_EDIT_ROLE,
+ new LabelDirectEditPolicy());
+ installEditPolicy(EditPolicy.SELECTION_FEEDBACK_ROLE,
+ new ComrelTextSelectionEditPolicy());
+ }
+
+ /**
+ * @generated
+ */
+ public IBorderItemLocator getBorderItemLocator() {
+ IFigure parentFigure = getFigure().getParent();
+ if (parentFigure != null && parentFigure.getLayoutManager() != null) {
+ Object constraint = parentFigure.getLayoutManager().getConstraint(
+ getFigure());
+ return (IBorderItemLocator) constraint;
+ }
+ return null;
+ }
+
+ /**
+ * @generated
+ */
+ public void refreshBounds() {
+ int x = ((Integer) getStructuralFeatureValue(NotationPackage.eINSTANCE
+ .getLocation_X())).intValue();
+ int y = ((Integer) getStructuralFeatureValue(NotationPackage.eINSTANCE
+ .getLocation_Y())).intValue();
+ int width = ((Integer) getStructuralFeatureValue(NotationPackage.eINSTANCE
+ .getSize_Width())).intValue();
+ int height = ((Integer) getStructuralFeatureValue(NotationPackage.eINSTANCE
+ .getSize_Height())).intValue();
+ getBorderItemLocator()
+ .setConstraint(new Rectangle(x, y, width, height));
+ }
+
+ /**
+ * @generated
+ */
+ protected String getLabelTextHelper(IFigure figure) {
+ if (figure instanceof WrappingLabel) {
+ return ((WrappingLabel) figure).getText();
+ } else {
+ return ((Label) figure).getText();
+ }
+ }
+
+ /**
+ * @generated NOT
+ */
+ protected void setLabelTextHelper(IFigure figure, String text) {
+ int posDot = -1;
+ int posDouble = -1;
+ posDot = text.lastIndexOf(".");
+ posDouble = text.indexOf(":");
+ if (posDot > -1 && posDouble > -1) {
+ String first = text.substring(0, posDouble + 1);
+ String second = text.substring(posDot + 1);
+ text = first + second;
+ }
+ if (figure instanceof WrappingLabel) {
+ ((WrappingLabel) figure).setText(text);
+ } else {
+ ((Label) figure).setText(text);
+ }
+ }
+
+ /**
+ * @generated
+ */
+ protected Image getLabelIconHelper(IFigure figure) {
+ if (figure instanceof WrappingLabel) {
+ return ((WrappingLabel) figure).getIcon();
+ } else {
+ return ((Label) figure).getIcon();
+ }
+ }
+
+ /**
+ * @generated
+ */
+ protected void setLabelIconHelper(IFigure figure, Image icon) {
+ if (figure instanceof WrappingLabel) {
+ ((WrappingLabel) figure).setIcon(icon);
+ } else {
+ ((Label) figure).setIcon(icon);
+ }
+ }
+
+ /**
+ * @generated
+ */
+ public void setLabel(IFigure figure) {
+ unregisterVisuals();
+ setFigure(figure);
+ defaultText = getLabelTextHelper(figure);
+ registerVisuals();
+ refreshVisuals();
+ }
+
+ /**
+ * @generated
+ */
+ @SuppressWarnings("rawtypes")
+ protected List getModelChildren() {
+ return Collections.EMPTY_LIST;
+ }
+
+ /**
+ * @generated
+ */
+ public IGraphicalEditPart getChildBySemanticHint(String semanticHint) {
+ return null;
+ }
+
+ /**
+ * @generated
+ */
+ protected EObject getParserElement() {
+ return resolveSemanticElement();
+ }
+
+ /**
+ * @generated
+ */
+ protected Image getLabelIcon() {
+ return null;
+ }
+
+ /**
+ * @generated
+ */
+ protected String getLabelText() {
+ String text = null;
+ EObject parserElement = getParserElement();
+ if (parserElement != null && getParser() != null) {
+ text = getParser().getPrintString(
+ new EObjectAdapter(parserElement),
+ getParserOptions().intValue());
+ }
+ if (text == null || text.length() == 0) {
+ text = defaultText;
+ }
+ return text;
+ }
+
+ /**
+ * @generated
+ */
+ public void setLabelText(String text) {
+ setLabelTextHelper(getFigure(), text);
+ Object pdEditPolicy = getEditPolicy(EditPolicy.PRIMARY_DRAG_ROLE);
+ if (pdEditPolicy instanceof ComrelTextSelectionEditPolicy) {
+ ((ComrelTextSelectionEditPolicy) pdEditPolicy).refreshFeedback();
+ }
+ Object sfEditPolicy = getEditPolicy(EditPolicy.SELECTION_FEEDBACK_ROLE);
+ if (sfEditPolicy instanceof ComrelTextSelectionEditPolicy) {
+ ((ComrelTextSelectionEditPolicy) sfEditPolicy).refreshFeedback();
+ }
+ }
+
+ /**
+ * @generated
+ */
+ public String getEditText() {
+ if (getParserElement() == null || getParser() == null) {
+ return ""; //$NON-NLS-1$
+ }
+ return getParser().getEditString(
+ new EObjectAdapter(getParserElement()),
+ getParserOptions().intValue());
+ }
+
+ /**
+ * @generated
+ */
+ protected boolean isEditable() {
+ return getParser() != null;
+ }
+
+ /**
+ * @generated
+ */
+ public ICellEditorValidator getEditTextValidator() {
+ return new ICellEditorValidator() {
+
+ public String isValid(final Object value) {
+ if (value instanceof String) {
+ final EObject element = getParserElement();
+ final IParser parser = getParser();
+ try {
+ IParserEditStatus valid = (IParserEditStatus) getEditingDomain()
+ .runExclusive(
+ new RunnableWithResult.Impl<IParserEditStatus>() {
+
+ public void run() {
+ setResult(parser
+ .isValidEditString(
+ new EObjectAdapter(
+ element),
+ (String) value));
+ }
+ });
+ return valid.getCode() == ParserEditStatus.EDITABLE ? null
+ : valid.getMessage();
+ } catch (InterruptedException ie) {
+ ie.printStackTrace();
+ }
+ }
+
+ // shouldn't get here
+ return null;
+ }
+ };
+ }
+
+ /**
+ * @generated
+ */
+ public IContentAssistProcessor getCompletionProcessor() {
+ if (getParserElement() == null || getParser() == null) {
+ return null;
+ }
+ return getParser().getCompletionProcessor(
+ new EObjectAdapter(getParserElement()));
+ }
+
+ /**
+ * @generated
+ */
+ public ParserOptions getParserOptions() {
+ return ParserOptions.NONE;
+ }
+
+ /**
+ * @generated
+ */
+ public IParser getParser() {
+ if (parser == null) {
+ parser = ComrelParserProvider
+ .getParser(
+ ComrelElementTypes.MultiInputPort_3014,
+ getParserElement(),
+ ComrelVisualIDRegistry
+ .getType(comrel.diagram.edit.parts.MultiInputPortNameType4EditPart.VISUAL_ID));
+ }
+ return parser;
+ }
+
+ /**
+ * @generated
+ */
+ protected DirectEditManager getManager() {
+ if (manager == null) {
+ setManager(new TextDirectEditManager(this,
+ TextDirectEditManager.getTextCellEditorClass(this),
+ ComrelEditPartFactory.getTextCellEditorLocator(this)));
+ }
+ return manager;
+ }
+
+ /**
+ * @generated
+ */
+ protected void setManager(DirectEditManager manager) {
+ this.manager = manager;
+ }
+
+ /**
+ * @generated
+ */
+ protected void performDirectEdit() {
+ getManager().show();
+ }
+
+ /**
+ * @generated
+ */
+ protected void performDirectEdit(Point eventLocation) {
+ if (getManager().getClass() == TextDirectEditManager.class) {
+ ((TextDirectEditManager) getManager()).show(eventLocation
+ .getSWTPoint());
+ }
+ }
+
+ /**
+ * @generated
+ */
+ private void performDirectEdit(char initialCharacter) {
+ if (getManager() instanceof TextDirectEditManager) {
+ ((TextDirectEditManager) getManager()).show(initialCharacter);
+ } else {
+ performDirectEdit();
+ }
+ }
+
+ /**
+ * @generated
+ */
+ protected void performDirectEditRequest(Request request) {
+ final Request theRequest = request;
+ try {
+ getEditingDomain().runExclusive(new Runnable() {
+
+ public void run() {
+ if (isActive() && isEditable()) {
+ if (theRequest
+ .getExtendedData()
+ .get(RequestConstants.REQ_DIRECTEDIT_EXTENDEDDATA_INITIAL_CHAR) instanceof Character) {
+ Character initialChar = (Character) theRequest
+ .getExtendedData()
+ .get(RequestConstants.REQ_DIRECTEDIT_EXTENDEDDATA_INITIAL_CHAR);
+ performDirectEdit(initialChar.charValue());
+ } else if ((theRequest instanceof DirectEditRequest)
+ && (getEditText().equals(getLabelText()))) {
+ DirectEditRequest editRequest = (DirectEditRequest) theRequest;
+ performDirectEdit(editRequest.getLocation());
+ } else {
+ performDirectEdit();
+ }
+ }
+ }
+ });
+ } catch (InterruptedException e) {
+ e.printStackTrace();
+ }
+ }
+
+ /**
+ * @generated
+ */
+ protected void refreshVisuals() {
+ super.refreshVisuals();
+ refreshLabel();
+ refreshFont();
+ refreshFontColor();
+ refreshUnderline();
+ refreshStrikeThrough();
+ }
+
+ /**
+ * @generated
+ */
+ protected void refreshLabel() {
+ setLabelTextHelper(getFigure(), getLabelText());
+ setLabelIconHelper(getFigure(), getLabelIcon());
+ Object pdEditPolicy = getEditPolicy(EditPolicy.PRIMARY_DRAG_ROLE);
+ if (pdEditPolicy instanceof ComrelTextSelectionEditPolicy) {
+ ((ComrelTextSelectionEditPolicy) pdEditPolicy).refreshFeedback();
+ }
+ Object sfEditPolicy = getEditPolicy(EditPolicy.SELECTION_FEEDBACK_ROLE);
+ if (sfEditPolicy instanceof ComrelTextSelectionEditPolicy) {
+ ((ComrelTextSelectionEditPolicy) sfEditPolicy).refreshFeedback();
+ }
+ }
+
+ /**
+ * @generated
+ */
+ protected void refreshUnderline() {
+ FontStyle style = (FontStyle) getFontStyleOwnerView().getStyle(
+ NotationPackage.eINSTANCE.getFontStyle());
+ if (style != null && getFigure() instanceof WrappingLabel) {
+ ((WrappingLabel) getFigure()).setTextUnderline(style.isUnderline());
+ }
+ }
+
+ /**
+ * @generated
+ */
+ protected void refreshStrikeThrough() {
+ FontStyle style = (FontStyle) getFontStyleOwnerView().getStyle(
+ NotationPackage.eINSTANCE.getFontStyle());
+ if (style != null && getFigure() instanceof WrappingLabel) {
+ ((WrappingLabel) getFigure()).setTextStrikeThrough(style
+ .isStrikeThrough());
+ }
+ }
+
+ /**
+ * @generated
+ */
+ protected void refreshFont() {
+ FontStyle style = (FontStyle) getFontStyleOwnerView().getStyle(
+ NotationPackage.eINSTANCE.getFontStyle());
+ if (style != null) {
+ FontData fontData = new FontData(style.getFontName(),
+ style.getFontHeight(), (style.isBold() ? SWT.BOLD
+ : SWT.NORMAL)
+ | (style.isItalic() ? SWT.ITALIC : SWT.NORMAL));
+ setFont(fontData);
+ }
+ }
+
+ /**
+ * @generated
+ */
+ protected void setFontColor(Color color) {
+ getFigure().setForegroundColor(color);
+ }
+
+ /**
+ * @generated
+ */
+ protected void addSemanticListeners() {
+ if (getParser() instanceof ISemanticParser) {
+ EObject element = resolveSemanticElement();
+ parserElements = ((ISemanticParser) getParser())
+ .getSemanticElementsBeingParsed(element);
+ for (int i = 0; i < parserElements.size(); i++) {
+ addListenerFilter(
+ "SemanticModel" + i, this, (EObject) parserElements.get(i)); //$NON-NLS-1$
+ }
+ } else {
+ super.addSemanticListeners();
+ }
+ }
+
+ /**
+ * @generated
+ */
+ protected void removeSemanticListeners() {
+ if (parserElements != null) {
+ for (int i = 0; i < parserElements.size(); i++) {
+ removeListenerFilter("SemanticModel" + i); //$NON-NLS-1$
+ }
+ } else {
+ super.removeSemanticListeners();
+ }
+ }
+
+ /**
+ * @generated
+ */
+ protected AccessibleEditPart getAccessibleEditPart() {
+ if (accessibleEP == null) {
+ accessibleEP = new AccessibleGraphicalEditPart() {
+
+ public void getName(AccessibleEvent e) {
+ e.result = getLabelTextHelper(getFigure());
+ }
+ };
+ }
+ return accessibleEP;
+ }
+
+ /**
+ * @generated
+ */
+ private View getFontStyleOwnerView() {
+ return getPrimaryView();
+ }
+
+ /**
+ * @generated
+ */
+ protected void handleNotificationEvent(Notification event) {
+ Object feature = event.getFeature();
+ if (NotationPackage.eINSTANCE.getFontStyle_FontColor().equals(feature)) {
+ Integer c = (Integer) event.getNewValue();
+ setFontColor(DiagramColorRegistry.getInstance().getColor(c));
+ } else if (NotationPackage.eINSTANCE.getFontStyle_Underline().equals(
+ feature)) {
+ refreshUnderline();
+ } else if (NotationPackage.eINSTANCE.getFontStyle_StrikeThrough()
+ .equals(feature)) {
+ refreshStrikeThrough();
+ } else if (NotationPackage.eINSTANCE.getFontStyle_FontHeight().equals(
+ feature)
+ || NotationPackage.eINSTANCE.getFontStyle_FontName().equals(
+ feature)
+ || NotationPackage.eINSTANCE.getFontStyle_Bold()
+ .equals(feature)
+ || NotationPackage.eINSTANCE.getFontStyle_Italic().equals(
+ feature)) {
+ refreshFont();
+ } else {
+ if (getParser() != null
+ && getParser().isAffectingEvent(event,
+ getParserOptions().intValue())) {
+ refreshLabel();
+ }
+ if (getParser() instanceof ISemanticParser) {
+ ISemanticParser modelParser = (ISemanticParser) getParser();
+ if (modelParser.areSemanticElementsAffected(null, event)) {
+ removeSemanticListeners();
+ if (resolveSemanticElement() != null) {
+ addSemanticListeners();
+ }
+ refreshLabel();
+ }
+ }
+ }
+ super.handleNotificationEvent(event);
+ }
+
+ /**
+ * @generated
+ */
+ protected IFigure createFigure() {
+ IFigure label = createFigurePrim();
+ defaultText = getLabelTextHelper(label);
+ return label;
+ }
+
+ /**
+ * @generated
+ */
+ protected IFigure createFigurePrim() {
+ return new MultiInputPortLabelFigure();
+ }
+
+ /**
+ * @generated
+ */
+ public class MultiInputPortLabelFigure extends WrappingLabel {
+
+ /**
+ * @generated
+ */
+ public MultiInputPortLabelFigure() {
+ this.setText("MultiInputPort");
+ }
+
+ }
+
+}
diff --git a/org.eclipse.emf.refactor.comrel.diagram/src/comrel/diagram/edit/parts/MultiInputPortNameType5EditPart.java b/org.eclipse.emf.refactor.comrel.diagram/src/comrel/diagram/edit/parts/MultiInputPortNameType5EditPart.java
new file mode 100644
index 0000000..e1cef15
--- /dev/null
+++ b/org.eclipse.emf.refactor.comrel.diagram/src/comrel/diagram/edit/parts/MultiInputPortNameType5EditPart.java
@@ -0,0 +1,631 @@
+/*
+ *
+ */
+package comrel.diagram.edit.parts;
+
+import java.util.Collections;
+import java.util.List;
+
+import org.eclipse.draw2d.IFigure;
+import org.eclipse.draw2d.Label;
+import org.eclipse.draw2d.geometry.Point;
+import org.eclipse.draw2d.geometry.Rectangle;
+import org.eclipse.emf.common.notify.Notification;
+import org.eclipse.emf.ecore.EObject;
+import org.eclipse.emf.transaction.RunnableWithResult;
+import org.eclipse.gef.AccessibleEditPart;
+import org.eclipse.gef.EditPolicy;
+import org.eclipse.gef.Request;
+import org.eclipse.gef.requests.DirectEditRequest;
+import org.eclipse.gef.tools.DirectEditManager;
+import org.eclipse.gmf.runtime.common.ui.services.parser.IParser;
+import org.eclipse.gmf.runtime.common.ui.services.parser.IParserEditStatus;
+import org.eclipse.gmf.runtime.common.ui.services.parser.ParserEditStatus;
+import org.eclipse.gmf.runtime.common.ui.services.parser.ParserOptions;
+import org.eclipse.gmf.runtime.diagram.ui.editparts.IBorderItemEditPart;
+import org.eclipse.gmf.runtime.diagram.ui.editparts.IGraphicalEditPart;
+import org.eclipse.gmf.runtime.diagram.ui.editparts.ITextAwareEditPart;
+import org.eclipse.gmf.runtime.diagram.ui.editparts.LabelEditPart;
+import org.eclipse.gmf.runtime.diagram.ui.editpolicies.LabelDirectEditPolicy;
+import org.eclipse.gmf.runtime.diagram.ui.figures.IBorderItemLocator;
+import org.eclipse.gmf.runtime.diagram.ui.l10n.DiagramColorRegistry;
+import org.eclipse.gmf.runtime.diagram.ui.requests.RequestConstants;
+import org.eclipse.gmf.runtime.diagram.ui.tools.TextDirectEditManager;
+import org.eclipse.gmf.runtime.draw2d.ui.figures.WrappingLabel;
+import org.eclipse.gmf.runtime.emf.core.util.EObjectAdapter;
+import org.eclipse.gmf.runtime.emf.ui.services.parser.ISemanticParser;
+import org.eclipse.gmf.runtime.notation.FontStyle;
+import org.eclipse.gmf.runtime.notation.NotationPackage;
+import org.eclipse.gmf.runtime.notation.View;
+import org.eclipse.jface.text.contentassist.IContentAssistProcessor;
+import org.eclipse.jface.viewers.ICellEditorValidator;
+import org.eclipse.swt.SWT;
+import org.eclipse.swt.accessibility.AccessibleEvent;
+import org.eclipse.swt.graphics.Color;
+import org.eclipse.swt.graphics.FontData;
+import org.eclipse.swt.graphics.Image;
+
+import comrel.diagram.edit.policies.ComrelTextSelectionEditPolicy;
+import comrel.diagram.part.ComrelVisualIDRegistry;
+import comrel.diagram.providers.ComrelElementTypes;
+import comrel.diagram.providers.ComrelParserProvider;
+
+/**
+ * @generated
+ */
+public class MultiInputPortNameType5EditPart extends LabelEditPart implements
+ ITextAwareEditPart, IBorderItemEditPart {
+
+ /**
+ * @generated
+ */
+ public static final int VISUAL_ID = 5014;
+
+ /**
+ * @generated
+ */
+ private DirectEditManager manager;
+
+ /**
+ * @generated
+ */
+ private IParser parser;
+
+ /**
+ * @generated
+ */
+ private List<?> parserElements;
+
+ /**
+ * @generated
+ */
+ private String defaultText;
+
+ /**
+ * @generated
+ */
+ static {
+ registerSnapBackPosition(
+ ComrelVisualIDRegistry
+ .getType(comrel.diagram.edit.parts.MultiInputPortNameType5EditPart.VISUAL_ID),
+ new Point(0, 0));
+ }
+
+ /**
+ * @generated
+ */
+ public MultiInputPortNameType5EditPart(View view) {
+ super(view);
+ }
+
+ /**
+ * @generated
+ */
+ protected void createDefaultEditPolicies() {
+ super.createDefaultEditPolicies();
+ installEditPolicy(EditPolicy.DIRECT_EDIT_ROLE,
+ new LabelDirectEditPolicy());
+ installEditPolicy(EditPolicy.SELECTION_FEEDBACK_ROLE,
+ new ComrelTextSelectionEditPolicy());
+ }
+
+ /**
+ * @generated
+ */
+ public IBorderItemLocator getBorderItemLocator() {
+ IFigure parentFigure = getFigure().getParent();
+ if (parentFigure != null && parentFigure.getLayoutManager() != null) {
+ Object constraint = parentFigure.getLayoutManager().getConstraint(
+ getFigure());
+ return (IBorderItemLocator) constraint;
+ }
+ return null;
+ }
+
+ /**
+ * @generated
+ */
+ public void refreshBounds() {
+ int x = ((Integer) getStructuralFeatureValue(NotationPackage.eINSTANCE
+ .getLocation_X())).intValue();
+ int y = ((Integer) getStructuralFeatureValue(NotationPackage.eINSTANCE
+ .getLocation_Y())).intValue();
+ int width = ((Integer) getStructuralFeatureValue(NotationPackage.eINSTANCE
+ .getSize_Width())).intValue();
+ int height = ((Integer) getStructuralFeatureValue(NotationPackage.eINSTANCE
+ .getSize_Height())).intValue();
+ getBorderItemLocator()
+ .setConstraint(new Rectangle(x, y, width, height));
+ }
+
+ /**
+ * @generated
+ */
+ protected String getLabelTextHelper(IFigure figure) {
+ if (figure instanceof WrappingLabel) {
+ return ((WrappingLabel) figure).getText();
+ } else {
+ return ((Label) figure).getText();
+ }
+ }
+
+ /**
+ * @generated NOT
+ */
+ protected void setLabelTextHelper(IFigure figure, String text) {
+ int posDot = -1;
+ int posDouble = -1;
+ posDot = text.lastIndexOf(".");
+ posDouble = text.indexOf(":");
+ if (posDot > -1 && posDouble > -1) {
+ String first = text.substring(0, posDouble + 1);
+ String second = text.substring(posDot + 1);
+ text = first + second;
+ }
+ if (figure instanceof WrappingLabel) {
+ ((WrappingLabel) figure).setText(text);
+ } else {
+ ((Label) figure).setText(text);
+ }
+ }
+
+ /**
+ * @generated
+ */
+ protected Image getLabelIconHelper(IFigure figure) {
+ if (figure instanceof WrappingLabel) {
+ return ((WrappingLabel) figure).getIcon();
+ } else {
+ return ((Label) figure).getIcon();
+ }
+ }
+
+ /**
+ * @generated
+ */
+ protected void setLabelIconHelper(IFigure figure, Image icon) {
+ if (figure instanceof WrappingLabel) {
+ ((WrappingLabel) figure).setIcon(icon);
+ } else {
+ ((Label) figure).setIcon(icon);
+ }
+ }
+
+ /**
+ * @generated
+ */
+ public void setLabel(IFigure figure) {
+ unregisterVisuals();
+ setFigure(figure);
+ defaultText = getLabelTextHelper(figure);
+ registerVisuals();
+ refreshVisuals();
+ }
+
+ /**
+ * @generated
+ */
+ @SuppressWarnings("rawtypes")
+ protected List getModelChildren() {
+ return Collections.EMPTY_LIST;
+ }
+
+ /**
+ * @generated
+ */
+ public IGraphicalEditPart getChildBySemanticHint(String semanticHint) {
+ return null;
+ }
+
+ /**
+ * @generated
+ */
+ protected EObject getParserElement() {
+ return resolveSemanticElement();
+ }
+
+ /**
+ * @generated
+ */
+ protected Image getLabelIcon() {
+ return null;
+ }
+
+ /**
+ * @generated
+ */
+ protected String getLabelText() {
+ String text = null;
+ EObject parserElement = getParserElement();
+ if (parserElement != null && getParser() != null) {
+ text = getParser().getPrintString(
+ new EObjectAdapter(parserElement),
+ getParserOptions().intValue());
+ }
+ if (text == null || text.length() == 0) {
+ text = defaultText;
+ }
+ return text;
+ }
+
+ /**
+ * @generated
+ */
+ public void setLabelText(String text) {
+ setLabelTextHelper(getFigure(), text);
+ Object pdEditPolicy = getEditPolicy(EditPolicy.PRIMARY_DRAG_ROLE);
+ if (pdEditPolicy instanceof ComrelTextSelectionEditPolicy) {
+ ((ComrelTextSelectionEditPolicy) pdEditPolicy).refreshFeedback();
+ }
+ Object sfEditPolicy = getEditPolicy(EditPolicy.SELECTION_FEEDBACK_ROLE);
+ if (sfEditPolicy instanceof ComrelTextSelectionEditPolicy) {
+ ((ComrelTextSelectionEditPolicy) sfEditPolicy).refreshFeedback();
+ }
+ }
+
+ /**
+ * @generated
+ */
+ public String getEditText() {
+ if (getParserElement() == null || getParser() == null) {
+ return ""; //$NON-NLS-1$
+ }
+ return getParser().getEditString(
+ new EObjectAdapter(getParserElement()),
+ getParserOptions().intValue());
+ }
+
+ /**
+ * @generated
+ */
+ protected boolean isEditable() {
+ return getParser() != null;
+ }
+
+ /**
+ * @generated
+ */
+ public ICellEditorValidator getEditTextValidator() {
+ return new ICellEditorValidator() {
+
+ public String isValid(final Object value) {
+ if (value instanceof String) {
+ final EObject element = getParserElement();
+ final IParser parser = getParser();
+ try {
+ IParserEditStatus valid = (IParserEditStatus) getEditingDomain()
+ .runExclusive(
+ new RunnableWithResult.Impl<IParserEditStatus>() {
+
+ public void run() {
+ setResult(parser
+ .isValidEditString(
+ new EObjectAdapter(
+ element),
+ (String) value));
+ }
+ });
+ return valid.getCode() == ParserEditStatus.EDITABLE ? null
+ : valid.getMessage();
+ } catch (InterruptedException ie) {
+ ie.printStackTrace();
+ }
+ }
+
+ // shouldn't get here
+ return null;
+ }
+ };
+ }
+
+ /**
+ * @generated
+ */
+ public IContentAssistProcessor getCompletionProcessor() {
+ if (getParserElement() == null || getParser() == null) {
+ return null;
+ }
+ return getParser().getCompletionProcessor(
+ new EObjectAdapter(getParserElement()));
+ }
+
+ /**
+ * @generated
+ */
+ public ParserOptions getParserOptions() {
+ return ParserOptions.NONE;
+ }
+
+ /**
+ * @generated
+ */
+ public IParser getParser() {
+ if (parser == null) {
+ parser = ComrelParserProvider
+ .getParser(
+ ComrelElementTypes.MultiInputPort_3017,
+ getParserElement(),
+ ComrelVisualIDRegistry
+ .getType(comrel.diagram.edit.parts.MultiInputPortNameType5EditPart.VISUAL_ID));
+ }
+ return parser;
+ }
+
+ /**
+ * @generated
+ */
+ protected DirectEditManager getManager() {
+ if (manager == null) {
+ setManager(new TextDirectEditManager(this,
+ TextDirectEditManager.getTextCellEditorClass(this),
+ ComrelEditPartFactory.getTextCellEditorLocator(this)));
+ }
+ return manager;
+ }
+
+ /**
+ * @generated
+ */
+ protected void setManager(DirectEditManager manager) {
+ this.manager = manager;
+ }
+
+ /**
+ * @generated
+ */
+ protected void performDirectEdit() {
+ getManager().show();
+ }
+
+ /**
+ * @generated
+ */
+ protected void performDirectEdit(Point eventLocation) {
+ if (getManager().getClass() == TextDirectEditManager.class) {
+ ((TextDirectEditManager) getManager()).show(eventLocation
+ .getSWTPoint());
+ }
+ }
+
+ /**
+ * @generated
+ */
+ private void performDirectEdit(char initialCharacter) {
+ if (getManager() instanceof TextDirectEditManager) {
+ ((TextDirectEditManager) getManager()).show(initialCharacter);
+ } else {
+ performDirectEdit();
+ }
+ }
+
+ /**
+ * @generated
+ */
+ protected void performDirectEditRequest(Request request) {
+ final Request theRequest = request;
+ try {
+ getEditingDomain().runExclusive(new Runnable() {
+
+ public void run() {
+ if (isActive() && isEditable()) {
+ if (theRequest
+ .getExtendedData()
+ .get(RequestConstants.REQ_DIRECTEDIT_EXTENDEDDATA_INITIAL_CHAR) instanceof Character) {
+ Character initialChar = (Character) theRequest
+ .getExtendedData()
+ .get(RequestConstants.REQ_DIRECTEDIT_EXTENDEDDATA_INITIAL_CHAR);
+ performDirectEdit(initialChar.charValue());
+ } else if ((theRequest instanceof DirectEditRequest)
+ && (getEditText().equals(getLabelText()))) {
+ DirectEditRequest editRequest = (DirectEditRequest) theRequest;
+ performDirectEdit(editRequest.getLocation());
+ } else {
+ performDirectEdit();
+ }
+ }
+ }
+ });
+ } catch (InterruptedException e) {
+ e.printStackTrace();
+ }
+ }
+
+ /**
+ * @generated
+ */
+ protected void refreshVisuals() {
+ super.refreshVisuals();
+ refreshLabel();
+ refreshFont();
+ refreshFontColor();
+ refreshUnderline();
+ refreshStrikeThrough();
+ }
+
+ /**
+ * @generated
+ */
+ protected void refreshLabel() {
+ setLabelTextHelper(getFigure(), getLabelText());
+ setLabelIconHelper(getFigure(), getLabelIcon());
+ Object pdEditPolicy = getEditPolicy(EditPolicy.PRIMARY_DRAG_ROLE);
+ if (pdEditPolicy instanceof ComrelTextSelectionEditPolicy) {
+ ((ComrelTextSelectionEditPolicy) pdEditPolicy).refreshFeedback();
+ }
+ Object sfEditPolicy = getEditPolicy(EditPolicy.SELECTION_FEEDBACK_ROLE);
+ if (sfEditPolicy instanceof ComrelTextSelectionEditPolicy) {
+ ((ComrelTextSelectionEditPolicy) sfEditPolicy).refreshFeedback();
+ }
+ }
+
+ /**
+ * @generated
+ */
+ protected void refreshUnderline() {
+ FontStyle style = (FontStyle) getFontStyleOwnerView().getStyle(
+ NotationPackage.eINSTANCE.getFontStyle());
+ if (style != null && getFigure() instanceof WrappingLabel) {
+ ((WrappingLabel) getFigure()).setTextUnderline(style.isUnderline());
+ }
+ }
+
+ /**
+ * @generated
+ */
+ protected void refreshStrikeThrough() {
+ FontStyle style = (FontStyle) getFontStyleOwnerView().getStyle(
+ NotationPackage.eINSTANCE.getFontStyle());
+ if (style != null && getFigure() instanceof WrappingLabel) {
+ ((WrappingLabel) getFigure()).setTextStrikeThrough(style
+ .isStrikeThrough());
+ }
+ }
+
+ /**
+ * @generated
+ */
+ protected void refreshFont() {
+ FontStyle style = (FontStyle) getFontStyleOwnerView().getStyle(
+ NotationPackage.eINSTANCE.getFontStyle());
+ if (style != null) {
+ FontData fontData = new FontData(style.getFontName(),
+ style.getFontHeight(), (style.isBold() ? SWT.BOLD
+ : SWT.NORMAL)
+ | (style.isItalic() ? SWT.ITALIC : SWT.NORMAL));
+ setFont(fontData);
+ }
+ }
+
+ /**
+ * @generated
+ */
+ protected void setFontColor(Color color) {
+ getFigure().setForegroundColor(color);
+ }
+
+ /**
+ * @generated
+ */
+ protected void addSemanticListeners() {
+ if (getParser() instanceof ISemanticParser) {
+ EObject element = resolveSemanticElement();
+ parserElements = ((ISemanticParser) getParser())
+ .getSemanticElementsBeingParsed(element);
+ for (int i = 0; i < parserElements.size(); i++) {
+ addListenerFilter(
+ "SemanticModel" + i, this, (EObject) parserElements.get(i)); //$NON-NLS-1$
+ }
+ } else {
+ super.addSemanticListeners();
+ }
+ }
+
+ /**
+ * @generated
+ */
+ protected void removeSemanticListeners() {
+ if (parserElements != null) {
+ for (int i = 0; i < parserElements.size(); i++) {
+ removeListenerFilter("SemanticModel" + i); //$NON-NLS-1$
+ }
+ } else {
+ super.removeSemanticListeners();
+ }
+ }
+
+ /**
+ * @generated
+ */
+ protected AccessibleEditPart getAccessibleEditPart() {
+ if (accessibleEP == null) {
+ accessibleEP = new AccessibleGraphicalEditPart() {
+
+ public void getName(AccessibleEvent e) {
+ e.result = getLabelTextHelper(getFigure());
+ }
+ };
+ }
+ return accessibleEP;
+ }
+
+ /**
+ * @generated
+ */
+ private View getFontStyleOwnerView() {
+ return getPrimaryView();
+ }
+
+ /**
+ * @generated
+ */
+ protected void handleNotificationEvent(Notification event) {
+ Object feature = event.getFeature();
+ if (NotationPackage.eINSTANCE.getFontStyle_FontColor().equals(feature)) {
+ Integer c = (Integer) event.getNewValue();
+ setFontColor(DiagramColorRegistry.getInstance().getColor(c));
+ } else if (NotationPackage.eINSTANCE.getFontStyle_Underline().equals(
+ feature)) {
+ refreshUnderline();
+ } else if (NotationPackage.eINSTANCE.getFontStyle_StrikeThrough()
+ .equals(feature)) {
+ refreshStrikeThrough();
+ } else if (NotationPackage.eINSTANCE.getFontStyle_FontHeight().equals(
+ feature)
+ || NotationPackage.eINSTANCE.getFontStyle_FontName().equals(
+ feature)
+ || NotationPackage.eINSTANCE.getFontStyle_Bold()
+ .equals(feature)
+ || NotationPackage.eINSTANCE.getFontStyle_Italic().equals(
+ feature)) {
+ refreshFont();
+ } else {
+ if (getParser() != null
+ && getParser().isAffectingEvent(event,
+ getParserOptions().intValue())) {
+ refreshLabel();
+ }
+ if (getParser() instanceof ISemanticParser) {
+ ISemanticParser modelParser = (ISemanticParser) getParser();
+ if (modelParser.areSemanticElementsAffected(null, event)) {
+ removeSemanticListeners();
+ if (resolveSemanticElement() != null) {
+ addSemanticListeners();
+ }
+ refreshLabel();
+ }
+ }
+ }
+ super.handleNotificationEvent(event);
+ }
+
+ /**
+ * @generated
+ */
+ protected IFigure createFigure() {
+ IFigure label = createFigurePrim();
+ defaultText = getLabelTextHelper(label);
+ return label;
+ }
+
+ /**
+ * @generated
+ */
+ protected IFigure createFigurePrim() {
+ return new MultiInputPortLabelFigure();
+ }
+
+ /**
+ * @generated
+ */
+ public class MultiInputPortLabelFigure extends WrappingLabel {
+
+ /**
+ * @generated
+ */
+ public MultiInputPortLabelFigure() {
+ this.setText("MultiInputPort");
+ }
+
+ }
+
+}
diff --git a/org.eclipse.emf.refactor.comrel.diagram/src/comrel/diagram/edit/parts/MultiInputPortNameType6EditPart.java b/org.eclipse.emf.refactor.comrel.diagram/src/comrel/diagram/edit/parts/MultiInputPortNameType6EditPart.java
new file mode 100644
index 0000000..5c56d55
--- /dev/null
+++ b/org.eclipse.emf.refactor.comrel.diagram/src/comrel/diagram/edit/parts/MultiInputPortNameType6EditPart.java
@@ -0,0 +1,631 @@
+/*
+ *
+ */
+package comrel.diagram.edit.parts;
+
+import java.util.Collections;
+import java.util.List;
+
+import org.eclipse.draw2d.IFigure;
+import org.eclipse.draw2d.Label;
+import org.eclipse.draw2d.geometry.Point;
+import org.eclipse.draw2d.geometry.Rectangle;
+import org.eclipse.emf.common.notify.Notification;
+import org.eclipse.emf.ecore.EObject;
+import org.eclipse.emf.transaction.RunnableWithResult;
+import org.eclipse.gef.AccessibleEditPart;
+import org.eclipse.gef.EditPolicy;
+import org.eclipse.gef.Request;
+import org.eclipse.gef.requests.DirectEditRequest;
+import org.eclipse.gef.tools.DirectEditManager;
+import org.eclipse.gmf.runtime.common.ui.services.parser.IParser;
+import org.eclipse.gmf.runtime.common.ui.services.parser.IParserEditStatus;
+import org.eclipse.gmf.runtime.common.ui.services.parser.ParserEditStatus;
+import org.eclipse.gmf.runtime.common.ui.services.parser.ParserOptions;
+import org.eclipse.gmf.runtime.diagram.ui.editparts.IBorderItemEditPart;
+import org.eclipse.gmf.runtime.diagram.ui.editparts.IGraphicalEditPart;
+import org.eclipse.gmf.runtime.diagram.ui.editparts.ITextAwareEditPart;
+import org.eclipse.gmf.runtime.diagram.ui.editparts.LabelEditPart;
+import org.eclipse.gmf.runtime.diagram.ui.editpolicies.LabelDirectEditPolicy;
+import org.eclipse.gmf.runtime.diagram.ui.figures.IBorderItemLocator;
+import org.eclipse.gmf.runtime.diagram.ui.l10n.DiagramColorRegistry;
+import org.eclipse.gmf.runtime.diagram.ui.requests.RequestConstants;
+import org.eclipse.gmf.runtime.diagram.ui.tools.TextDirectEditManager;
+import org.eclipse.gmf.runtime.draw2d.ui.figures.WrappingLabel;
+import org.eclipse.gmf.runtime.emf.core.util.EObjectAdapter;
+import org.eclipse.gmf.runtime.emf.ui.services.parser.ISemanticParser;
+import org.eclipse.gmf.runtime.notation.FontStyle;
+import org.eclipse.gmf.runtime.notation.NotationPackage;
+import org.eclipse.gmf.runtime.notation.View;
+import org.eclipse.jface.text.contentassist.IContentAssistProcessor;
+import org.eclipse.jface.viewers.ICellEditorValidator;
+import org.eclipse.swt.SWT;
+import org.eclipse.swt.accessibility.AccessibleEvent;
+import org.eclipse.swt.graphics.Color;
+import org.eclipse.swt.graphics.FontData;
+import org.eclipse.swt.graphics.Image;
+
+import comrel.diagram.edit.policies.ComrelTextSelectionEditPolicy;
+import comrel.diagram.part.ComrelVisualIDRegistry;
+import comrel.diagram.providers.ComrelElementTypes;
+import comrel.diagram.providers.ComrelParserProvider;
+
+/**
+ * @generated
+ */
+public class MultiInputPortNameType6EditPart extends LabelEditPart implements
+ ITextAwareEditPart, IBorderItemEditPart {
+
+ /**
+ * @generated
+ */
+ public static final int VISUAL_ID = 5017;
+
+ /**
+ * @generated
+ */
+ private DirectEditManager manager;
+
+ /**
+ * @generated
+ */
+ private IParser parser;
+
+ /**
+ * @generated
+ */
+ private List<?> parserElements;
+
+ /**
+ * @generated
+ */
+ private String defaultText;
+
+ /**
+ * @generated
+ */
+ static {
+ registerSnapBackPosition(
+ ComrelVisualIDRegistry
+ .getType(comrel.diagram.edit.parts.MultiInputPortNameType6EditPart.VISUAL_ID),
+ new Point(0, 0));
+ }
+
+ /**
+ * @generated
+ */
+ public MultiInputPortNameType6EditPart(View view) {
+ super(view);
+ }
+
+ /**
+ * @generated
+ */
+ protected void createDefaultEditPolicies() {
+ super.createDefaultEditPolicies();
+ installEditPolicy(EditPolicy.DIRECT_EDIT_ROLE,
+ new LabelDirectEditPolicy());
+ installEditPolicy(EditPolicy.SELECTION_FEEDBACK_ROLE,
+ new ComrelTextSelectionEditPolicy());
+ }
+
+ /**
+ * @generated
+ */
+ public IBorderItemLocator getBorderItemLocator() {
+ IFigure parentFigure = getFigure().getParent();
+ if (parentFigure != null && parentFigure.getLayoutManager() != null) {
+ Object constraint = parentFigure.getLayoutManager().getConstraint(
+ getFigure());
+ return (IBorderItemLocator) constraint;
+ }
+ return null;
+ }
+
+ /**
+ * @generated
+ */
+ public void refreshBounds() {
+ int x = ((Integer) getStructuralFeatureValue(NotationPackage.eINSTANCE
+ .getLocation_X())).intValue();
+ int y = ((Integer) getStructuralFeatureValue(NotationPackage.eINSTANCE
+ .getLocation_Y())).intValue();
+ int width = ((Integer) getStructuralFeatureValue(NotationPackage.eINSTANCE
+ .getSize_Width())).intValue();
+ int height = ((Integer) getStructuralFeatureValue(NotationPackage.eINSTANCE
+ .getSize_Height())).intValue();
+ getBorderItemLocator()
+ .setConstraint(new Rectangle(x, y, width, height));
+ }
+
+ /**
+ * @generated
+ */
+ protected String getLabelTextHelper(IFigure figure) {
+ if (figure instanceof WrappingLabel) {
+ return ((WrappingLabel) figure).getText();
+ } else {
+ return ((Label) figure).getText();
+ }
+ }
+
+ /**
+ * @generated NOT
+ */
+ protected void setLabelTextHelper(IFigure figure, String text) {
+ int posDot = -1;
+ int posDouble = -1;
+ posDot = text.lastIndexOf(".");
+ posDouble = text.indexOf(":");
+ if (posDot > -1 && posDouble > -1) {
+ String first = text.substring(0, posDouble + 1);
+ String second = text.substring(posDot + 1);
+ text = first + second;
+ }
+ if (figure instanceof WrappingLabel) {
+ ((WrappingLabel) figure).setText(text);
+ } else {
+ ((Label) figure).setText(text);
+ }
+ }
+
+ /**
+ * @generated
+ */
+ protected Image getLabelIconHelper(IFigure figure) {
+ if (figure instanceof WrappingLabel) {
+ return ((WrappingLabel) figure).getIcon();
+ } else {
+ return ((Label) figure).getIcon();
+ }
+ }
+
+ /**
+ * @generated
+ */
+ protected void setLabelIconHelper(IFigure figure, Image icon) {
+ if (figure instanceof WrappingLabel) {
+ ((WrappingLabel) figure).setIcon(icon);
+ } else {
+ ((Label) figure).setIcon(icon);
+ }
+ }
+
+ /**
+ * @generated
+ */
+ public void setLabel(IFigure figure) {
+ unregisterVisuals();
+ setFigure(figure);
+ defaultText = getLabelTextHelper(figure);
+ registerVisuals();
+ refreshVisuals();
+ }
+
+ /**
+ * @generated
+ */
+ @SuppressWarnings("rawtypes")
+ protected List getModelChildren() {
+ return Collections.EMPTY_LIST;
+ }
+
+ /**
+ * @generated
+ */
+ public IGraphicalEditPart getChildBySemanticHint(String semanticHint) {
+ return null;
+ }
+
+ /**
+ * @generated
+ */
+ protected EObject getParserElement() {
+ return resolveSemanticElement();
+ }
+
+ /**
+ * @generated
+ */
+ protected Image getLabelIcon() {
+ return null;
+ }
+
+ /**
+ * @generated
+ */
+ protected String getLabelText() {
+ String text = null;
+ EObject parserElement = getParserElement();
+ if (parserElement != null && getParser() != null) {
+ text = getParser().getPrintString(
+ new EObjectAdapter(parserElement),
+ getParserOptions().intValue());
+ }
+ if (text == null || text.length() == 0) {
+ text = defaultText;
+ }
+ return text;
+ }
+
+ /**
+ * @generated
+ */
+ public void setLabelText(String text) {
+ setLabelTextHelper(getFigure(), text);
+ Object pdEditPolicy = getEditPolicy(EditPolicy.PRIMARY_DRAG_ROLE);
+ if (pdEditPolicy instanceof ComrelTextSelectionEditPolicy) {
+ ((ComrelTextSelectionEditPolicy) pdEditPolicy).refreshFeedback();
+ }
+ Object sfEditPolicy = getEditPolicy(EditPolicy.SELECTION_FEEDBACK_ROLE);
+ if (sfEditPolicy instanceof ComrelTextSelectionEditPolicy) {
+ ((ComrelTextSelectionEditPolicy) sfEditPolicy).refreshFeedback();
+ }
+ }
+
+ /**
+ * @generated
+ */
+ public String getEditText() {
+ if (getParserElement() == null || getParser() == null) {
+ return ""; //$NON-NLS-1$
+ }
+ return getParser().getEditString(
+ new EObjectAdapter(getParserElement()),
+ getParserOptions().intValue());
+ }
+
+ /**
+ * @generated
+ */
+ protected boolean isEditable() {
+ return getParser() != null;
+ }
+
+ /**
+ * @generated
+ */
+ public ICellEditorValidator getEditTextValidator() {
+ return new ICellEditorValidator() {
+
+ public String isValid(final Object value) {
+ if (value instanceof String) {
+ final EObject element = getParserElement();
+ final IParser parser = getParser();
+ try {
+ IParserEditStatus valid = (IParserEditStatus) getEditingDomain()
+ .runExclusive(
+ new RunnableWithResult.Impl<IParserEditStatus>() {
+
+ public void run() {
+ setResult(parser
+ .isValidEditString(
+ new EObjectAdapter(
+ element),
+ (String) value));
+ }
+ });
+ return valid.getCode() == ParserEditStatus.EDITABLE ? null
+ : valid.getMessage();
+ } catch (InterruptedException ie) {
+ ie.printStackTrace();
+ }
+ }
+
+ // shouldn't get here
+ return null;
+ }
+ };
+ }
+
+ /**
+ * @generated
+ */
+ public IContentAssistProcessor getCompletionProcessor() {
+ if (getParserElement() == null || getParser() == null) {
+ return null;
+ }
+ return getParser().getCompletionProcessor(
+ new EObjectAdapter(getParserElement()));
+ }
+
+ /**
+ * @generated
+ */
+ public ParserOptions getParserOptions() {
+ return ParserOptions.NONE;
+ }
+
+ /**
+ * @generated
+ */
+ public IParser getParser() {
+ if (parser == null) {
+ parser = ComrelParserProvider
+ .getParser(
+ ComrelElementTypes.MultiInputPort_3020,
+ getParserElement(),
+ ComrelVisualIDRegistry
+ .getType(comrel.diagram.edit.parts.MultiInputPortNameType6EditPart.VISUAL_ID));
+ }
+ return parser;
+ }
+
+ /**
+ * @generated
+ */
+ protected DirectEditManager getManager() {
+ if (manager == null) {
+ setManager(new TextDirectEditManager(this,
+ TextDirectEditManager.getTextCellEditorClass(this),
+ ComrelEditPartFactory.getTextCellEditorLocator(this)));
+ }
+ return manager;
+ }
+
+ /**
+ * @generated
+ */
+ protected void setManager(DirectEditManager manager) {
+ this.manager = manager;
+ }
+
+ /**
+ * @generated
+ */
+ protected void performDirectEdit() {
+ getManager().show();
+ }
+
+ /**
+ * @generated
+ */
+ protected void performDirectEdit(Point eventLocation) {
+ if (getManager().getClass() == TextDirectEditManager.class) {
+ ((TextDirectEditManager) getManager()).show(eventLocation
+ .getSWTPoint());
+ }
+ }
+
+ /**
+ * @generated
+ */
+ private void performDirectEdit(char initialCharacter) {
+ if (getManager() instanceof TextDirectEditManager) {
+ ((TextDirectEditManager) getManager()).show(initialCharacter);
+ } else {
+ performDirectEdit();
+ }
+ }
+
+ /**
+ * @generated
+ */
+ protected void performDirectEditRequest(Request request) {
+ final Request theRequest = request;
+ try {
+ getEditingDomain().runExclusive(new Runnable() {
+
+ public void run() {
+ if (isActive() && isEditable()) {
+ if (theRequest
+ .getExtendedData()
+ .get(RequestConstants.REQ_DIRECTEDIT_EXTENDEDDATA_INITIAL_CHAR) instanceof Character) {
+ Character initialChar = (Character) theRequest
+ .getExtendedData()
+ .get(RequestConstants.REQ_DIRECTEDIT_EXTENDEDDATA_INITIAL_CHAR);
+ performDirectEdit(initialChar.charValue());
+ } else if ((theRequest instanceof DirectEditRequest)
+ && (getEditText().equals(getLabelText()))) {
+ DirectEditRequest editRequest = (DirectEditRequest) theRequest;
+ performDirectEdit(editRequest.getLocation());
+ } else {
+ performDirectEdit();
+ }
+ }
+ }
+ });
+ } catch (InterruptedException e) {
+ e.printStackTrace();
+ }
+ }
+
+ /**
+ * @generated
+ */
+ protected void refreshVisuals() {
+ super.refreshVisuals();
+ refreshLabel();
+ refreshFont();
+ refreshFontColor();
+ refreshUnderline();
+ refreshStrikeThrough();
+ }
+
+ /**
+ * @generated
+ */
+ protected void refreshLabel() {
+ setLabelTextHelper(getFigure(), getLabelText());
+ setLabelIconHelper(getFigure(), getLabelIcon());
+ Object pdEditPolicy = getEditPolicy(EditPolicy.PRIMARY_DRAG_ROLE);
+ if (pdEditPolicy instanceof ComrelTextSelectionEditPolicy) {
+ ((ComrelTextSelectionEditPolicy) pdEditPolicy).refreshFeedback();
+ }
+ Object sfEditPolicy = getEditPolicy(EditPolicy.SELECTION_FEEDBACK_ROLE);
+ if (sfEditPolicy instanceof ComrelTextSelectionEditPolicy) {
+ ((ComrelTextSelectionEditPolicy) sfEditPolicy).refreshFeedback();
+ }
+ }
+
+ /**
+ * @generated
+ */
+ protected void refreshUnderline() {
+ FontStyle style = (FontStyle) getFontStyleOwnerView().getStyle(
+ NotationPackage.eINSTANCE.getFontStyle());
+ if (style != null && getFigure() instanceof WrappingLabel) {
+ ((WrappingLabel) getFigure()).setTextUnderline(style.isUnderline());
+ }
+ }
+
+ /**
+ * @generated
+ */
+ protected void refreshStrikeThrough() {
+ FontStyle style = (FontStyle) getFontStyleOwnerView().getStyle(
+ NotationPackage.eINSTANCE.getFontStyle());
+ if (style != null && getFigure() instanceof WrappingLabel) {
+ ((WrappingLabel) getFigure()).setTextStrikeThrough(style
+ .isStrikeThrough());
+ }
+ }
+
+ /**
+ * @generated
+ */
+ protected void refreshFont() {
+ FontStyle style = (FontStyle) getFontStyleOwnerView().getStyle(
+ NotationPackage.eINSTANCE.getFontStyle());
+ if (style != null) {
+ FontData fontData = new FontData(style.getFontName(),
+ style.getFontHeight(), (style.isBold() ? SWT.BOLD
+ : SWT.NORMAL)
+ | (style.isItalic() ? SWT.ITALIC : SWT.NORMAL));
+ setFont(fontData);
+ }
+ }
+
+ /**
+ * @generated
+ */
+ protected void setFontColor(Color color) {
+ getFigure().setForegroundColor(color);
+ }
+
+ /**
+ * @generated
+ */
+ protected void addSemanticListeners() {
+ if (getParser() instanceof ISemanticParser) {
+ EObject element = resolveSemanticElement();
+ parserElements = ((ISemanticParser) getParser())
+ .getSemanticElementsBeingParsed(element);
+ for (int i = 0; i < parserElements.size(); i++) {
+ addListenerFilter(
+ "SemanticModel" + i, this, (EObject) parserElements.get(i)); //$NON-NLS-1$
+ }
+ } else {
+ super.addSemanticListeners();
+ }
+ }
+
+ /**
+ * @generated
+ */
+ protected void removeSemanticListeners() {
+ if (parserElements != null) {
+ for (int i = 0; i < parserElements.size(); i++) {
+ removeListenerFilter("SemanticModel" + i); //$NON-NLS-1$
+ }
+ } else {
+ super.removeSemanticListeners();
+ }
+ }
+
+ /**
+ * @generated
+ */
+ protected AccessibleEditPart getAccessibleEditPart() {
+ if (accessibleEP == null) {
+ accessibleEP = new AccessibleGraphicalEditPart() {
+
+ public void getName(AccessibleEvent e) {
+ e.result = getLabelTextHelper(getFigure());
+ }
+ };
+ }
+ return accessibleEP;
+ }
+
+ /**
+ * @generated
+ */
+ private View getFontStyleOwnerView() {
+ return getPrimaryView();
+ }
+
+ /**
+ * @generated
+ */
+ protected void handleNotificationEvent(Notification event) {
+ Object feature = event.getFeature();
+ if (NotationPackage.eINSTANCE.getFontStyle_FontColor().equals(feature)) {
+ Integer c = (Integer) event.getNewValue();
+ setFontColor(DiagramColorRegistry.getInstance().getColor(c));
+ } else if (NotationPackage.eINSTANCE.getFontStyle_Underline().equals(
+ feature)) {
+ refreshUnderline();
+ } else if (NotationPackage.eINSTANCE.getFontStyle_StrikeThrough()
+ .equals(feature)) {
+ refreshStrikeThrough();
+ } else if (NotationPackage.eINSTANCE.getFontStyle_FontHeight().equals(
+ feature)
+ || NotationPackage.eINSTANCE.getFontStyle_FontName().equals(
+ feature)
+ || NotationPackage.eINSTANCE.getFontStyle_Bold()
+ .equals(feature)
+ || NotationPackage.eINSTANCE.getFontStyle_Italic().equals(
+ feature)) {
+ refreshFont();
+ } else {
+ if (getParser() != null
+ && getParser().isAffectingEvent(event,
+ getParserOptions().intValue())) {
+ refreshLabel();
+ }
+ if (getParser() instanceof ISemanticParser) {
+ ISemanticParser modelParser = (ISemanticParser) getParser();
+ if (modelParser.areSemanticElementsAffected(null, event)) {
+ removeSemanticListeners();
+ if (resolveSemanticElement() != null) {
+ addSemanticListeners();
+ }
+ refreshLabel();
+ }
+ }
+ }
+ super.handleNotificationEvent(event);
+ }
+
+ /**
+ * @generated
+ */
+ protected IFigure createFigure() {
+ IFigure label = createFigurePrim();
+ defaultText = getLabelTextHelper(label);
+ return label;
+ }
+
+ /**
+ * @generated
+ */
+ protected IFigure createFigurePrim() {
+ return new MultiInputPortLabelFigure();
+ }
+
+ /**
+ * @generated
+ */
+ public class MultiInputPortLabelFigure extends WrappingLabel {
+
+ /**
+ * @generated
+ */
+ public MultiInputPortLabelFigure() {
+ this.setText("MultiInputPort");
+ }
+
+ }
+
+}
diff --git a/org.eclipse.emf.refactor.comrel.diagram/src/comrel/diagram/edit/parts/MultiInputPortNameType7EditPart.java b/org.eclipse.emf.refactor.comrel.diagram/src/comrel/diagram/edit/parts/MultiInputPortNameType7EditPart.java
new file mode 100644
index 0000000..06a8e59
--- /dev/null
+++ b/org.eclipse.emf.refactor.comrel.diagram/src/comrel/diagram/edit/parts/MultiInputPortNameType7EditPart.java
@@ -0,0 +1,631 @@
+/*
+ *
+ */
+package comrel.diagram.edit.parts;
+
+import java.util.Collections;
+import java.util.List;
+
+import org.eclipse.draw2d.IFigure;
+import org.eclipse.draw2d.Label;
+import org.eclipse.draw2d.geometry.Point;
+import org.eclipse.draw2d.geometry.Rectangle;
+import org.eclipse.emf.common.notify.Notification;
+import org.eclipse.emf.ecore.EObject;
+import org.eclipse.emf.transaction.RunnableWithResult;
+import org.eclipse.gef.AccessibleEditPart;
+import org.eclipse.gef.EditPolicy;
+import org.eclipse.gef.Request;
+import org.eclipse.gef.requests.DirectEditRequest;
+import org.eclipse.gef.tools.DirectEditManager;
+import org.eclipse.gmf.runtime.common.ui.services.parser.IParser;
+import org.eclipse.gmf.runtime.common.ui.services.parser.IParserEditStatus;
+import org.eclipse.gmf.runtime.common.ui.services.parser.ParserEditStatus;
+import org.eclipse.gmf.runtime.common.ui.services.parser.ParserOptions;
+import org.eclipse.gmf.runtime.diagram.ui.editparts.IBorderItemEditPart;
+import org.eclipse.gmf.runtime.diagram.ui.editparts.IGraphicalEditPart;
+import org.eclipse.gmf.runtime.diagram.ui.editparts.ITextAwareEditPart;
+import org.eclipse.gmf.runtime.diagram.ui.editparts.LabelEditPart;
+import org.eclipse.gmf.runtime.diagram.ui.editpolicies.LabelDirectEditPolicy;
+import org.eclipse.gmf.runtime.diagram.ui.figures.IBorderItemLocator;
+import org.eclipse.gmf.runtime.diagram.ui.l10n.DiagramColorRegistry;
+import org.eclipse.gmf.runtime.diagram.ui.requests.RequestConstants;
+import org.eclipse.gmf.runtime.diagram.ui.tools.TextDirectEditManager;
+import org.eclipse.gmf.runtime.draw2d.ui.figures.WrappingLabel;
+import org.eclipse.gmf.runtime.emf.core.util.EObjectAdapter;
+import org.eclipse.gmf.runtime.emf.ui.services.parser.ISemanticParser;
+import org.eclipse.gmf.runtime.notation.FontStyle;
+import org.eclipse.gmf.runtime.notation.NotationPackage;
+import org.eclipse.gmf.runtime.notation.View;
+import org.eclipse.jface.text.contentassist.IContentAssistProcessor;
+import org.eclipse.jface.viewers.ICellEditorValidator;
+import org.eclipse.swt.SWT;
+import org.eclipse.swt.accessibility.AccessibleEvent;
+import org.eclipse.swt.graphics.Color;
+import org.eclipse.swt.graphics.FontData;
+import org.eclipse.swt.graphics.Image;
+
+import comrel.diagram.edit.policies.ComrelTextSelectionEditPolicy;
+import comrel.diagram.part.ComrelVisualIDRegistry;
+import comrel.diagram.providers.ComrelElementTypes;
+import comrel.diagram.providers.ComrelParserProvider;
+
+/**
+ * @generated
+ */
+public class MultiInputPortNameType7EditPart extends LabelEditPart implements
+ ITextAwareEditPart, IBorderItemEditPart {
+
+ /**
+ * @generated
+ */
+ public static final int VISUAL_ID = 5021;
+
+ /**
+ * @generated
+ */
+ private DirectEditManager manager;
+
+ /**
+ * @generated
+ */
+ private IParser parser;
+
+ /**
+ * @generated
+ */
+ private List<?> parserElements;
+
+ /**
+ * @generated
+ */
+ private String defaultText;
+
+ /**
+ * @generated
+ */
+ static {
+ registerSnapBackPosition(
+ ComrelVisualIDRegistry
+ .getType(comrel.diagram.edit.parts.MultiInputPortNameType7EditPart.VISUAL_ID),
+ new Point(0, 0));
+ }
+
+ /**
+ * @generated
+ */
+ public MultiInputPortNameType7EditPart(View view) {
+ super(view);
+ }
+
+ /**
+ * @generated
+ */
+ protected void createDefaultEditPolicies() {
+ super.createDefaultEditPolicies();
+ installEditPolicy(EditPolicy.DIRECT_EDIT_ROLE,
+ new LabelDirectEditPolicy());
+ installEditPolicy(EditPolicy.SELECTION_FEEDBACK_ROLE,
+ new ComrelTextSelectionEditPolicy());
+ }
+
+ /**
+ * @generated
+ */
+ public IBorderItemLocator getBorderItemLocator() {
+ IFigure parentFigure = getFigure().getParent();
+ if (parentFigure != null && parentFigure.getLayoutManager() != null) {
+ Object constraint = parentFigure.getLayoutManager().getConstraint(
+ getFigure());
+ return (IBorderItemLocator) constraint;
+ }
+ return null;
+ }
+
+ /**
+ * @generated
+ */
+ public void refreshBounds() {
+ int x = ((Integer) getStructuralFeatureValue(NotationPackage.eINSTANCE
+ .getLocation_X())).intValue();
+ int y = ((Integer) getStructuralFeatureValue(NotationPackage.eINSTANCE
+ .getLocation_Y())).intValue();
+ int width = ((Integer) getStructuralFeatureValue(NotationPackage.eINSTANCE
+ .getSize_Width())).intValue();
+ int height = ((Integer) getStructuralFeatureValue(NotationPackage.eINSTANCE
+ .getSize_Height())).intValue();
+ getBorderItemLocator()
+ .setConstraint(new Rectangle(x, y, width, height));
+ }
+
+ /**
+ * @generated
+ */
+ protected String getLabelTextHelper(IFigure figure) {
+ if (figure instanceof WrappingLabel) {
+ return ((WrappingLabel) figure).getText();
+ } else {
+ return ((Label) figure).getText();
+ }
+ }
+
+ /**
+ * @generated NOT
+ */
+ protected void setLabelTextHelper(IFigure figure, String text) {
+ int posDot = -1;
+ int posDouble = -1;
+ posDot = text.lastIndexOf(".");
+ posDouble = text.indexOf(":");
+ if (posDot > -1 && posDouble > -1) {
+ String first = text.substring(0, posDouble + 1);
+ String second = text.substring(posDot + 1);
+ text = first + second;
+ }
+ if (figure instanceof WrappingLabel) {
+ ((WrappingLabel) figure).setText(text);
+ } else {
+ ((Label) figure).setText(text);
+ }
+ }
+
+ /**
+ * @generated
+ */
+ protected Image getLabelIconHelper(IFigure figure) {
+ if (figure instanceof WrappingLabel) {
+ return ((WrappingLabel) figure).getIcon();
+ } else {
+ return ((Label) figure).getIcon();
+ }
+ }
+
+ /**
+ * @generated
+ */
+ protected void setLabelIconHelper(IFigure figure, Image icon) {
+ if (figure instanceof WrappingLabel) {
+ ((WrappingLabel) figure).setIcon(icon);
+ } else {
+ ((Label) figure).setIcon(icon);
+ }
+ }
+
+ /**
+ * @generated
+ */
+ public void setLabel(IFigure figure) {
+ unregisterVisuals();
+ setFigure(figure);
+ defaultText = getLabelTextHelper(figure);
+ registerVisuals();
+ refreshVisuals();
+ }
+
+ /**
+ * @generated
+ */
+ @SuppressWarnings("rawtypes")
+ protected List getModelChildren() {
+ return Collections.EMPTY_LIST;
+ }
+
+ /**
+ * @generated
+ */
+ public IGraphicalEditPart getChildBySemanticHint(String semanticHint) {
+ return null;
+ }
+
+ /**
+ * @generated
+ */
+ protected EObject getParserElement() {
+ return resolveSemanticElement();
+ }
+
+ /**
+ * @generated
+ */
+ protected Image getLabelIcon() {
+ return null;
+ }
+
+ /**
+ * @generated
+ */
+ protected String getLabelText() {
+ String text = null;
+ EObject parserElement = getParserElement();
+ if (parserElement != null && getParser() != null) {
+ text = getParser().getPrintString(
+ new EObjectAdapter(parserElement),
+ getParserOptions().intValue());
+ }
+ if (text == null || text.length() == 0) {
+ text = defaultText;
+ }
+ return text;
+ }
+
+ /**
+ * @generated
+ */
+ public void setLabelText(String text) {
+ setLabelTextHelper(getFigure(), text);
+ Object pdEditPolicy = getEditPolicy(EditPolicy.PRIMARY_DRAG_ROLE);
+ if (pdEditPolicy instanceof ComrelTextSelectionEditPolicy) {
+ ((ComrelTextSelectionEditPolicy) pdEditPolicy).refreshFeedback();
+ }
+ Object sfEditPolicy = getEditPolicy(EditPolicy.SELECTION_FEEDBACK_ROLE);
+ if (sfEditPolicy instanceof ComrelTextSelectionEditPolicy) {
+ ((ComrelTextSelectionEditPolicy) sfEditPolicy).refreshFeedback();
+ }
+ }
+
+ /**
+ * @generated
+ */
+ public String getEditText() {
+ if (getParserElement() == null || getParser() == null) {
+ return ""; //$NON-NLS-1$
+ }
+ return getParser().getEditString(
+ new EObjectAdapter(getParserElement()),
+ getParserOptions().intValue());
+ }
+
+ /**
+ * @generated
+ */
+ protected boolean isEditable() {
+ return getParser() != null;
+ }
+
+ /**
+ * @generated
+ */
+ public ICellEditorValidator getEditTextValidator() {
+ return new ICellEditorValidator() {
+
+ public String isValid(final Object value) {
+ if (value instanceof String) {
+ final EObject element = getParserElement();
+ final IParser parser = getParser();
+ try {
+ IParserEditStatus valid = (IParserEditStatus) getEditingDomain()
+ .runExclusive(
+ new RunnableWithResult.Impl<IParserEditStatus>() {
+
+ public void run() {
+ setResult(parser
+ .isValidEditString(
+ new EObjectAdapter(
+ element),
+ (String) value));
+ }
+ });
+ return valid.getCode() == ParserEditStatus.EDITABLE ? null
+ : valid.getMessage();
+ } catch (InterruptedException ie) {
+ ie.printStackTrace();
+ }
+ }
+
+ // shouldn't get here
+ return null;
+ }
+ };
+ }
+
+ /**
+ * @generated
+ */
+ public IContentAssistProcessor getCompletionProcessor() {
+ if (getParserElement() == null || getParser() == null) {
+ return null;
+ }
+ return getParser().getCompletionProcessor(
+ new EObjectAdapter(getParserElement()));
+ }
+
+ /**
+ * @generated
+ */
+ public ParserOptions getParserOptions() {
+ return ParserOptions.NONE;
+ }
+
+ /**
+ * @generated
+ */
+ public IParser getParser() {
+ if (parser == null) {
+ parser = ComrelParserProvider
+ .getParser(
+ ComrelElementTypes.MultiInputPort_3024,
+ getParserElement(),
+ ComrelVisualIDRegistry
+ .getType(comrel.diagram.edit.parts.MultiInputPortNameType7EditPart.VISUAL_ID));
+ }
+ return parser;
+ }
+
+ /**
+ * @generated
+ */
+ protected DirectEditManager getManager() {
+ if (manager == null) {
+ setManager(new TextDirectEditManager(this,
+ TextDirectEditManager.getTextCellEditorClass(this),
+ ComrelEditPartFactory.getTextCellEditorLocator(this)));
+ }
+ return manager;
+ }
+
+ /**
+ * @generated
+ */
+ protected void setManager(DirectEditManager manager) {
+ this.manager = manager;
+ }
+
+ /**
+ * @generated
+ */
+ protected void performDirectEdit() {
+ getManager().show();
+ }
+
+ /**
+ * @generated
+ */
+ protected void performDirectEdit(Point eventLocation) {
+ if (getManager().getClass() == TextDirectEditManager.class) {
+ ((TextDirectEditManager) getManager()).show(eventLocation
+ .getSWTPoint());
+ }
+ }
+
+ /**
+ * @generated
+ */
+ private void performDirectEdit(char initialCharacter) {
+ if (getManager() instanceof TextDirectEditManager) {
+ ((TextDirectEditManager) getManager()).show(initialCharacter);
+ } else {
+ performDirectEdit();
+ }
+ }
+
+ /**
+ * @generated
+ */
+ protected void performDirectEditRequest(Request request) {
+ final Request theRequest = request;
+ try {
+ getEditingDomain().runExclusive(new Runnable() {
+
+ public void run() {
+ if (isActive() && isEditable()) {
+ if (theRequest
+ .getExtendedData()
+ .get(RequestConstants.REQ_DIRECTEDIT_EXTENDEDDATA_INITIAL_CHAR) instanceof Character) {
+ Character initialChar = (Character) theRequest
+ .getExtendedData()
+ .get(RequestConstants.REQ_DIRECTEDIT_EXTENDEDDATA_INITIAL_CHAR);
+ performDirectEdit(initialChar.charValue());
+ } else if ((theRequest instanceof DirectEditRequest)
+ && (getEditText().equals(getLabelText()))) {
+ DirectEditRequest editRequest = (DirectEditRequest) theRequest;
+ performDirectEdit(editRequest.getLocation());
+ } else {
+ performDirectEdit();
+ }
+ }
+ }
+ });
+ } catch (InterruptedException e) {
+ e.printStackTrace();
+ }
+ }
+
+ /**
+ * @generated
+ */
+ protected void refreshVisuals() {
+ super.refreshVisuals();
+ refreshLabel();
+ refreshFont();
+ refreshFontColor();
+ refreshUnderline();
+ refreshStrikeThrough();
+ }
+
+ /**
+ * @generated
+ */
+ protected void refreshLabel() {
+ setLabelTextHelper(getFigure(), getLabelText());
+ setLabelIconHelper(getFigure(), getLabelIcon());
+ Object pdEditPolicy = getEditPolicy(EditPolicy.PRIMARY_DRAG_ROLE);
+ if (pdEditPolicy instanceof ComrelTextSelectionEditPolicy) {
+ ((ComrelTextSelectionEditPolicy) pdEditPolicy).refreshFeedback();
+ }
+ Object sfEditPolicy = getEditPolicy(EditPolicy.SELECTION_FEEDBACK_ROLE);
+ if (sfEditPolicy instanceof ComrelTextSelectionEditPolicy) {
+ ((ComrelTextSelectionEditPolicy) sfEditPolicy).refreshFeedback();
+ }
+ }
+
+ /**
+ * @generated
+ */
+ protected void refreshUnderline() {
+ FontStyle style = (FontStyle) getFontStyleOwnerView().getStyle(
+ NotationPackage.eINSTANCE.getFontStyle());
+ if (style != null && getFigure() instanceof WrappingLabel) {
+ ((WrappingLabel) getFigure()).setTextUnderline(style.isUnderline());
+ }
+ }
+
+ /**
+ * @generated
+ */
+ protected void refreshStrikeThrough() {
+ FontStyle style = (FontStyle) getFontStyleOwnerView().getStyle(
+ NotationPackage.eINSTANCE.getFontStyle());
+ if (style != null && getFigure() instanceof WrappingLabel) {
+ ((WrappingLabel) getFigure()).setTextStrikeThrough(style
+ .isStrikeThrough());
+ }
+ }
+
+ /**
+ * @generated
+ */
+ protected void refreshFont() {
+ FontStyle style = (FontStyle) getFontStyleOwnerView().getStyle(
+ NotationPackage.eINSTANCE.getFontStyle());
+ if (style != null) {
+ FontData fontData = new FontData(style.getFontName(),
+ style.getFontHeight(), (style.isBold() ? SWT.BOLD
+ : SWT.NORMAL)
+ | (style.isItalic() ? SWT.ITALIC : SWT.NORMAL));
+ setFont(fontData);
+ }
+ }
+
+ /**
+ * @generated
+ */
+ protected void setFontColor(Color color) {
+ getFigure().setForegroundColor(color);
+ }
+
+ /**
+ * @generated
+ */
+ protected void addSemanticListeners() {
+ if (getParser() instanceof ISemanticParser) {
+ EObject element = resolveSemanticElement();
+ parserElements = ((ISemanticParser) getParser())
+ .getSemanticElementsBeingParsed(element);
+ for (int i = 0; i < parserElements.size(); i++) {
+ addListenerFilter(
+ "SemanticModel" + i, this, (EObject) parserElements.get(i)); //$NON-NLS-1$
+ }
+ } else {
+ super.addSemanticListeners();
+ }
+ }
+
+ /**
+ * @generated
+ */
+ protected void removeSemanticListeners() {
+ if (parserElements != null) {
+ for (int i = 0; i < parserElements.size(); i++) {
+ removeListenerFilter("SemanticModel" + i); //$NON-NLS-1$
+ }
+ } else {
+ super.removeSemanticListeners();
+ }
+ }
+
+ /**
+ * @generated
+ */
+ protected AccessibleEditPart getAccessibleEditPart() {
+ if (accessibleEP == null) {
+ accessibleEP = new AccessibleGraphicalEditPart() {
+
+ public void getName(AccessibleEvent e) {
+ e.result = getLabelTextHelper(getFigure());
+ }
+ };
+ }
+ return accessibleEP;
+ }
+
+ /**
+ * @generated
+ */
+ private View getFontStyleOwnerView() {
+ return getPrimaryView();
+ }
+
+ /**
+ * @generated
+ */
+ protected void handleNotificationEvent(Notification event) {
+ Object feature = event.getFeature();
+ if (NotationPackage.eINSTANCE.getFontStyle_FontColor().equals(feature)) {
+ Integer c = (Integer) event.getNewValue();
+ setFontColor(DiagramColorRegistry.getInstance().getColor(c));
+ } else if (NotationPackage.eINSTANCE.getFontStyle_Underline().equals(
+ feature)) {
+ refreshUnderline();
+ } else if (NotationPackage.eINSTANCE.getFontStyle_StrikeThrough()
+ .equals(feature)) {
+ refreshStrikeThrough();
+ } else if (NotationPackage.eINSTANCE.getFontStyle_FontHeight().equals(
+ feature)
+ || NotationPackage.eINSTANCE.getFontStyle_FontName().equals(
+ feature)
+ || NotationPackage.eINSTANCE.getFontStyle_Bold()
+ .equals(feature)
+ || NotationPackage.eINSTANCE.getFontStyle_Italic().equals(
+ feature)) {
+ refreshFont();
+ } else {
+ if (getParser() != null
+ && getParser().isAffectingEvent(event,
+ getParserOptions().intValue())) {
+ refreshLabel();
+ }
+ if (getParser() instanceof ISemanticParser) {
+ ISemanticParser modelParser = (ISemanticParser) getParser();
+ if (modelParser.areSemanticElementsAffected(null, event)) {
+ removeSemanticListeners();
+ if (resolveSemanticElement() != null) {
+ addSemanticListeners();
+ }
+ refreshLabel();
+ }
+ }
+ }
+ super.handleNotificationEvent(event);
+ }
+
+ /**
+ * @generated
+ */
+ protected IFigure createFigure() {
+ IFigure label = createFigurePrim();
+ defaultText = getLabelTextHelper(label);
+ return label;
+ }
+
+ /**
+ * @generated
+ */
+ protected IFigure createFigurePrim() {
+ return new MultiInputPortLabelFigure();
+ }
+
+ /**
+ * @generated
+ */
+ public class MultiInputPortLabelFigure extends WrappingLabel {
+
+ /**
+ * @generated
+ */
+ public MultiInputPortLabelFigure() {
+ this.setText("MultiInputPort");
+ }
+
+ }
+
+}
diff --git a/org.eclipse.emf.refactor.comrel.diagram/src/comrel/diagram/edit/parts/MultiInputPortNameType8EditPart.java b/org.eclipse.emf.refactor.comrel.diagram/src/comrel/diagram/edit/parts/MultiInputPortNameType8EditPart.java
new file mode 100644
index 0000000..22081df
--- /dev/null
+++ b/org.eclipse.emf.refactor.comrel.diagram/src/comrel/diagram/edit/parts/MultiInputPortNameType8EditPart.java
@@ -0,0 +1,631 @@
+/*
+ *
+ */
+package comrel.diagram.edit.parts;
+
+import java.util.Collections;
+import java.util.List;
+
+import org.eclipse.draw2d.IFigure;
+import org.eclipse.draw2d.Label;
+import org.eclipse.draw2d.geometry.Point;
+import org.eclipse.draw2d.geometry.Rectangle;
+import org.eclipse.emf.common.notify.Notification;
+import org.eclipse.emf.ecore.EObject;
+import org.eclipse.emf.transaction.RunnableWithResult;
+import org.eclipse.gef.AccessibleEditPart;
+import org.eclipse.gef.EditPolicy;
+import org.eclipse.gef.Request;
+import org.eclipse.gef.requests.DirectEditRequest;
+import org.eclipse.gef.tools.DirectEditManager;
+import org.eclipse.gmf.runtime.common.ui.services.parser.IParser;
+import org.eclipse.gmf.runtime.common.ui.services.parser.IParserEditStatus;
+import org.eclipse.gmf.runtime.common.ui.services.parser.ParserEditStatus;
+import org.eclipse.gmf.runtime.common.ui.services.parser.ParserOptions;
+import org.eclipse.gmf.runtime.diagram.ui.editparts.IBorderItemEditPart;
+import org.eclipse.gmf.runtime.diagram.ui.editparts.IGraphicalEditPart;
+import org.eclipse.gmf.runtime.diagram.ui.editparts.ITextAwareEditPart;
+import org.eclipse.gmf.runtime.diagram.ui.editparts.LabelEditPart;
+import org.eclipse.gmf.runtime.diagram.ui.editpolicies.LabelDirectEditPolicy;
+import org.eclipse.gmf.runtime.diagram.ui.figures.IBorderItemLocator;
+import org.eclipse.gmf.runtime.diagram.ui.l10n.DiagramColorRegistry;
+import org.eclipse.gmf.runtime.diagram.ui.requests.RequestConstants;
+import org.eclipse.gmf.runtime.diagram.ui.tools.TextDirectEditManager;
+import org.eclipse.gmf.runtime.draw2d.ui.figures.WrappingLabel;
+import org.eclipse.gmf.runtime.emf.core.util.EObjectAdapter;
+import org.eclipse.gmf.runtime.emf.ui.services.parser.ISemanticParser;
+import org.eclipse.gmf.runtime.notation.FontStyle;
+import org.eclipse.gmf.runtime.notation.NotationPackage;
+import org.eclipse.gmf.runtime.notation.View;
+import org.eclipse.jface.text.contentassist.IContentAssistProcessor;
+import org.eclipse.jface.viewers.ICellEditorValidator;
+import org.eclipse.swt.SWT;
+import org.eclipse.swt.accessibility.AccessibleEvent;
+import org.eclipse.swt.graphics.Color;
+import org.eclipse.swt.graphics.FontData;
+import org.eclipse.swt.graphics.Image;
+
+import comrel.diagram.edit.policies.ComrelTextSelectionEditPolicy;
+import comrel.diagram.part.ComrelVisualIDRegistry;
+import comrel.diagram.providers.ComrelElementTypes;
+import comrel.diagram.providers.ComrelParserProvider;
+
+/**
+ * @generated
+ */
+public class MultiInputPortNameType8EditPart extends LabelEditPart implements
+ ITextAwareEditPart, IBorderItemEditPart {
+
+ /**
+ * @generated
+ */
+ public static final int VISUAL_ID = 5023;
+
+ /**
+ * @generated
+ */
+ private DirectEditManager manager;
+
+ /**
+ * @generated
+ */
+ private IParser parser;
+
+ /**
+ * @generated
+ */
+ private List<?> parserElements;
+
+ /**
+ * @generated
+ */
+ private String defaultText;
+
+ /**
+ * @generated
+ */
+ static {
+ registerSnapBackPosition(
+ ComrelVisualIDRegistry
+ .getType(comrel.diagram.edit.parts.MultiInputPortNameType8EditPart.VISUAL_ID),
+ new Point(0, 0));
+ }
+
+ /**
+ * @generated
+ */
+ public MultiInputPortNameType8EditPart(View view) {
+ super(view);
+ }
+
+ /**
+ * @generated
+ */
+ protected void createDefaultEditPolicies() {
+ super.createDefaultEditPolicies();
+ installEditPolicy(EditPolicy.DIRECT_EDIT_ROLE,
+ new LabelDirectEditPolicy());
+ installEditPolicy(EditPolicy.SELECTION_FEEDBACK_ROLE,
+ new ComrelTextSelectionEditPolicy());
+ }
+
+ /**
+ * @generated
+ */
+ public IBorderItemLocator getBorderItemLocator() {
+ IFigure parentFigure = getFigure().getParent();
+ if (parentFigure != null && parentFigure.getLayoutManager() != null) {
+ Object constraint = parentFigure.getLayoutManager().getConstraint(
+ getFigure());
+ return (IBorderItemLocator) constraint;
+ }
+ return null;
+ }
+
+ /**
+ * @generated
+ */
+ public void refreshBounds() {
+ int x = ((Integer) getStructuralFeatureValue(NotationPackage.eINSTANCE
+ .getLocation_X())).intValue();
+ int y = ((Integer) getStructuralFeatureValue(NotationPackage.eINSTANCE
+ .getLocation_Y())).intValue();
+ int width = ((Integer) getStructuralFeatureValue(NotationPackage.eINSTANCE
+ .getSize_Width())).intValue();
+ int height = ((Integer) getStructuralFeatureValue(NotationPackage.eINSTANCE
+ .getSize_Height())).intValue();
+ getBorderItemLocator()
+ .setConstraint(new Rectangle(x, y, width, height));
+ }
+
+ /**
+ * @generated
+ */
+ protected String getLabelTextHelper(IFigure figure) {
+ if (figure instanceof WrappingLabel) {
+ return ((WrappingLabel) figure).getText();
+ } else {
+ return ((Label) figure).getText();
+ }
+ }
+
+ /**
+ * @generated NOT
+ */
+ protected void setLabelTextHelper(IFigure figure, String text) {
+ int posDot = -1;
+ int posDouble = -1;
+ posDot = text.lastIndexOf(".");
+ posDouble = text.indexOf(":");
+ if (posDot > -1 && posDouble > -1) {
+ String first = text.substring(0, posDouble + 1);
+ String second = text.substring(posDot + 1);
+ text = first + second;
+ }
+ if (figure instanceof WrappingLabel) {
+ ((WrappingLabel) figure).setText(text);
+ } else {
+ ((Label) figure).setText(text);
+ }
+ }
+
+ /**
+ * @generated
+ */
+ protected Image getLabelIconHelper(IFigure figure) {
+ if (figure instanceof WrappingLabel) {
+ return ((WrappingLabel) figure).getIcon();
+ } else {
+ return ((Label) figure).getIcon();
+ }
+ }
+
+ /**
+ * @generated
+ */
+ protected void setLabelIconHelper(IFigure figure, Image icon) {
+ if (figure instanceof WrappingLabel) {
+ ((WrappingLabel) figure).setIcon(icon);
+ } else {
+ ((Label) figure).setIcon(icon);
+ }
+ }
+
+ /**
+ * @generated
+ */
+ public void setLabel(IFigure figure) {
+ unregisterVisuals();
+ setFigure(figure);
+ defaultText = getLabelTextHelper(figure);
+ registerVisuals();
+ refreshVisuals();
+ }
+
+ /**
+ * @generated
+ */
+ @SuppressWarnings("rawtypes")
+ protected List getModelChildren() {
+ return Collections.EMPTY_LIST;
+ }
+
+ /**
+ * @generated
+ */
+ public IGraphicalEditPart getChildBySemanticHint(String semanticHint) {
+ return null;
+ }
+
+ /**
+ * @generated
+ */
+ protected EObject getParserElement() {
+ return resolveSemanticElement();
+ }
+
+ /**
+ * @generated
+ */
+ protected Image getLabelIcon() {
+ return null;
+ }
+
+ /**
+ * @generated
+ */
+ protected String getLabelText() {
+ String text = null;
+ EObject parserElement = getParserElement();
+ if (parserElement != null && getParser() != null) {
+ text = getParser().getPrintString(
+ new EObjectAdapter(parserElement),
+ getParserOptions().intValue());
+ }
+ if (text == null || text.length() == 0) {
+ text = defaultText;
+ }
+ return text;
+ }
+
+ /**
+ * @generated
+ */
+ public void setLabelText(String text) {
+ setLabelTextHelper(getFigure(), text);
+ Object pdEditPolicy = getEditPolicy(EditPolicy.PRIMARY_DRAG_ROLE);
+ if (pdEditPolicy instanceof ComrelTextSelectionEditPolicy) {
+ ((ComrelTextSelectionEditPolicy) pdEditPolicy).refreshFeedback();
+ }
+ Object sfEditPolicy = getEditPolicy(EditPolicy.SELECTION_FEEDBACK_ROLE);
+ if (sfEditPolicy instanceof ComrelTextSelectionEditPolicy) {
+ ((ComrelTextSelectionEditPolicy) sfEditPolicy).refreshFeedback();
+ }
+ }
+
+ /**
+ * @generated
+ */
+ public String getEditText() {
+ if (getParserElement() == null || getParser() == null) {
+ return ""; //$NON-NLS-1$
+ }
+ return getParser().getEditString(
+ new EObjectAdapter(getParserElement()),
+ getParserOptions().intValue());
+ }
+
+ /**
+ * @generated
+ */
+ protected boolean isEditable() {
+ return getParser() != null;
+ }
+
+ /**
+ * @generated
+ */
+ public ICellEditorValidator getEditTextValidator() {
+ return new ICellEditorValidator() {
+
+ public String isValid(final Object value) {
+ if (value instanceof String) {
+ final EObject element = getParserElement();
+ final IParser parser = getParser();
+ try {
+ IParserEditStatus valid = (IParserEditStatus) getEditingDomain()
+ .runExclusive(
+ new RunnableWithResult.Impl<IParserEditStatus>() {
+
+ public void run() {
+ setResult(parser
+ .isValidEditString(
+ new EObjectAdapter(
+ element),
+ (String) value));
+ }
+ });
+ return valid.getCode() == ParserEditStatus.EDITABLE ? null
+ : valid.getMessage();
+ } catch (InterruptedException ie) {
+ ie.printStackTrace();
+ }
+ }
+
+ // shouldn't get here
+ return null;
+ }
+ };
+ }
+
+ /**
+ * @generated
+ */
+ public IContentAssistProcessor getCompletionProcessor() {
+ if (getParserElement() == null || getParser() == null) {
+ return null;
+ }
+ return getParser().getCompletionProcessor(
+ new EObjectAdapter(getParserElement()));
+ }
+
+ /**
+ * @generated
+ */
+ public ParserOptions getParserOptions() {
+ return ParserOptions.NONE;
+ }
+
+ /**
+ * @generated
+ */
+ public IParser getParser() {
+ if (parser == null) {
+ parser = ComrelParserProvider
+ .getParser(
+ ComrelElementTypes.MultiInputPort_3028,
+ getParserElement(),
+ ComrelVisualIDRegistry
+ .getType(comrel.diagram.edit.parts.MultiInputPortNameType8EditPart.VISUAL_ID));
+ }
+ return parser;
+ }
+
+ /**
+ * @generated
+ */
+ protected DirectEditManager getManager() {
+ if (manager == null) {
+ setManager(new TextDirectEditManager(this,
+ TextDirectEditManager.getTextCellEditorClass(this),
+ ComrelEditPartFactory.getTextCellEditorLocator(this)));
+ }
+ return manager;
+ }
+
+ /**
+ * @generated
+ */
+ protected void setManager(DirectEditManager manager) {
+ this.manager = manager;
+ }
+
+ /**
+ * @generated
+ */
+ protected void performDirectEdit() {
+ getManager().show();
+ }
+
+ /**
+ * @generated
+ */
+ protected void performDirectEdit(Point eventLocation) {
+ if (getManager().getClass() == TextDirectEditManager.class) {
+ ((TextDirectEditManager) getManager()).show(eventLocation
+ .getSWTPoint());
+ }
+ }
+
+ /**
+ * @generated
+ */
+ private void performDirectEdit(char initialCharacter) {
+ if (getManager() instanceof TextDirectEditManager) {
+ ((TextDirectEditManager) getManager()).show(initialCharacter);
+ } else {
+ performDirectEdit();
+ }
+ }
+
+ /**
+ * @generated
+ */
+ protected void performDirectEditRequest(Request request) {
+ final Request theRequest = request;
+ try {
+ getEditingDomain().runExclusive(new Runnable() {
+
+ public void run() {
+ if (isActive() && isEditable()) {
+ if (theRequest
+ .getExtendedData()
+ .get(RequestConstants.REQ_DIRECTEDIT_EXTENDEDDATA_INITIAL_CHAR) instanceof Character) {
+ Character initialChar = (Character) theRequest
+ .getExtendedData()
+ .get(RequestConstants.REQ_DIRECTEDIT_EXTENDEDDATA_INITIAL_CHAR);
+ performDirectEdit(initialChar.charValue());
+ } else if ((theRequest instanceof DirectEditRequest)
+ && (getEditText().equals(getLabelText()))) {
+ DirectEditRequest editRequest = (DirectEditRequest) theRequest;
+ performDirectEdit(editRequest.getLocation());
+ } else {
+ performDirectEdit();
+ }
+ }
+ }
+ });
+ } catch (InterruptedException e) {
+ e.printStackTrace();
+ }
+ }
+
+ /**
+ * @generated
+ */
+ protected void refreshVisuals() {
+ super.refreshVisuals();
+ refreshLabel();
+ refreshFont();
+ refreshFontColor();
+ refreshUnderline();
+ refreshStrikeThrough();
+ }
+
+ /**
+ * @generated
+ */
+ protected void refreshLabel() {
+ setLabelTextHelper(getFigure(), getLabelText());
+ setLabelIconHelper(getFigure(), getLabelIcon());
+ Object pdEditPolicy = getEditPolicy(EditPolicy.PRIMARY_DRAG_ROLE);
+ if (pdEditPolicy instanceof ComrelTextSelectionEditPolicy) {
+ ((ComrelTextSelectionEditPolicy) pdEditPolicy).refreshFeedback();
+ }
+ Object sfEditPolicy = getEditPolicy(EditPolicy.SELECTION_FEEDBACK_ROLE);
+ if (sfEditPolicy instanceof ComrelTextSelectionEditPolicy) {
+ ((ComrelTextSelectionEditPolicy) sfEditPolicy).refreshFeedback();
+ }
+ }
+
+ /**
+ * @generated
+ */
+ protected void refreshUnderline() {
+ FontStyle style = (FontStyle) getFontStyleOwnerView().getStyle(
+ NotationPackage.eINSTANCE.getFontStyle());
+ if (style != null && getFigure() instanceof WrappingLabel) {
+ ((WrappingLabel) getFigure()).setTextUnderline(style.isUnderline());
+ }
+ }
+
+ /**
+ * @generated
+ */
+ protected void refreshStrikeThrough() {
+ FontStyle style = (FontStyle) getFontStyleOwnerView().getStyle(
+ NotationPackage.eINSTANCE.getFontStyle());
+ if (style != null && getFigure() instanceof WrappingLabel) {
+ ((WrappingLabel) getFigure()).setTextStrikeThrough(style
+ .isStrikeThrough());
+ }
+ }
+
+ /**
+ * @generated
+ */
+ protected void refreshFont() {
+ FontStyle style = (FontStyle) getFontStyleOwnerView().getStyle(
+ NotationPackage.eINSTANCE.getFontStyle());
+ if (style != null) {
+ FontData fontData = new FontData(style.getFontName(),
+ style.getFontHeight(), (style.isBold() ? SWT.BOLD
+ : SWT.NORMAL)
+ | (style.isItalic() ? SWT.ITALIC : SWT.NORMAL));
+ setFont(fontData);
+ }
+ }
+
+ /**
+ * @generated
+ */
+ protected void setFontColor(Color color) {
+ getFigure().setForegroundColor(color);
+ }
+
+ /**
+ * @generated
+ */
+ protected void addSemanticListeners() {
+ if (getParser() instanceof ISemanticParser) {
+ EObject element = resolveSemanticElement();
+ parserElements = ((ISemanticParser) getParser())
+ .getSemanticElementsBeingParsed(element);
+ for (int i = 0; i < parserElements.size(); i++) {
+ addListenerFilter(
+ "SemanticModel" + i, this, (EObject) parserElements.get(i)); //$NON-NLS-1$
+ }
+ } else {
+ super.addSemanticListeners();
+ }
+ }
+
+ /**
+ * @generated
+ */
+ protected void removeSemanticListeners() {
+ if (parserElements != null) {
+ for (int i = 0; i < parserElements.size(); i++) {
+ removeListenerFilter("SemanticModel" + i); //$NON-NLS-1$
+ }
+ } else {
+ super.removeSemanticListeners();
+ }
+ }
+
+ /**
+ * @generated
+ */
+ protected AccessibleEditPart getAccessibleEditPart() {
+ if (accessibleEP == null) {
+ accessibleEP = new AccessibleGraphicalEditPart() {
+
+ public void getName(AccessibleEvent e) {
+ e.result = getLabelTextHelper(getFigure());
+ }
+ };
+ }
+ return accessibleEP;
+ }
+
+ /**
+ * @generated
+ */
+ private View getFontStyleOwnerView() {
+ return getPrimaryView();
+ }
+
+ /**
+ * @generated
+ */
+ protected void handleNotificationEvent(Notification event) {
+ Object feature = event.getFeature();
+ if (NotationPackage.eINSTANCE.getFontStyle_FontColor().equals(feature)) {
+ Integer c = (Integer) event.getNewValue();
+ setFontColor(DiagramColorRegistry.getInstance().getColor(c));
+ } else if (NotationPackage.eINSTANCE.getFontStyle_Underline().equals(
+ feature)) {
+ refreshUnderline();
+ } else if (NotationPackage.eINSTANCE.getFontStyle_StrikeThrough()
+ .equals(feature)) {
+ refreshStrikeThrough();
+ } else if (NotationPackage.eINSTANCE.getFontStyle_FontHeight().equals(
+ feature)
+ || NotationPackage.eINSTANCE.getFontStyle_FontName().equals(
+ feature)
+ || NotationPackage.eINSTANCE.getFontStyle_Bold()
+ .equals(feature)
+ || NotationPackage.eINSTANCE.getFontStyle_Italic().equals(
+ feature)) {
+ refreshFont();
+ } else {
+ if (getParser() != null
+ && getParser().isAffectingEvent(event,
+ getParserOptions().intValue())) {
+ refreshLabel();
+ }
+ if (getParser() instanceof ISemanticParser) {
+ ISemanticParser modelParser = (ISemanticParser) getParser();
+ if (modelParser.areSemanticElementsAffected(null, event)) {
+ removeSemanticListeners();
+ if (resolveSemanticElement() != null) {
+ addSemanticListeners();
+ }
+ refreshLabel();
+ }
+ }
+ }
+ super.handleNotificationEvent(event);
+ }
+
+ /**
+ * @generated
+ */
+ protected IFigure createFigure() {
+ IFigure label = createFigurePrim();
+ defaultText = getLabelTextHelper(label);
+ return label;
+ }
+
+ /**
+ * @generated
+ */
+ protected IFigure createFigurePrim() {
+ return new MultiInputPortLabelFigure();
+ }
+
+ /**
+ * @generated
+ */
+ public class MultiInputPortLabelFigure extends WrappingLabel {
+
+ /**
+ * @generated
+ */
+ public MultiInputPortLabelFigure() {
+ this.setText("MultiInputPort");
+ }
+
+ }
+
+}
diff --git a/org.eclipse.emf.refactor.comrel.diagram/src/comrel/diagram/edit/parts/MultiInputPortNameType9EditPart.java b/org.eclipse.emf.refactor.comrel.diagram/src/comrel/diagram/edit/parts/MultiInputPortNameType9EditPart.java
new file mode 100644
index 0000000..d35e6d0
--- /dev/null
+++ b/org.eclipse.emf.refactor.comrel.diagram/src/comrel/diagram/edit/parts/MultiInputPortNameType9EditPart.java
@@ -0,0 +1,631 @@
+/*
+ *
+ */
+package comrel.diagram.edit.parts;
+
+import java.util.Collections;
+import java.util.List;
+
+import org.eclipse.draw2d.IFigure;
+import org.eclipse.draw2d.Label;
+import org.eclipse.draw2d.geometry.Point;
+import org.eclipse.draw2d.geometry.Rectangle;
+import org.eclipse.emf.common.notify.Notification;
+import org.eclipse.emf.ecore.EObject;
+import org.eclipse.emf.transaction.RunnableWithResult;
+import org.eclipse.gef.AccessibleEditPart;
+import org.eclipse.gef.EditPolicy;
+import org.eclipse.gef.Request;
+import org.eclipse.gef.requests.DirectEditRequest;
+import org.eclipse.gef.tools.DirectEditManager;
+import org.eclipse.gmf.runtime.common.ui.services.parser.IParser;
+import org.eclipse.gmf.runtime.common.ui.services.parser.IParserEditStatus;
+import org.eclipse.gmf.runtime.common.ui.services.parser.ParserEditStatus;
+import org.eclipse.gmf.runtime.common.ui.services.parser.ParserOptions;
+import org.eclipse.gmf.runtime.diagram.ui.editparts.IBorderItemEditPart;
+import org.eclipse.gmf.runtime.diagram.ui.editparts.IGraphicalEditPart;
+import org.eclipse.gmf.runtime.diagram.ui.editparts.ITextAwareEditPart;
+import org.eclipse.gmf.runtime.diagram.ui.editparts.LabelEditPart;
+import org.eclipse.gmf.runtime.diagram.ui.editpolicies.LabelDirectEditPolicy;
+import org.eclipse.gmf.runtime.diagram.ui.figures.IBorderItemLocator;
+import org.eclipse.gmf.runtime.diagram.ui.l10n.DiagramColorRegistry;
+import org.eclipse.gmf.runtime.diagram.ui.requests.RequestConstants;
+import org.eclipse.gmf.runtime.diagram.ui.tools.TextDirectEditManager;
+import org.eclipse.gmf.runtime.draw2d.ui.figures.WrappingLabel;
+import org.eclipse.gmf.runtime.emf.core.util.EObjectAdapter;
+import org.eclipse.gmf.runtime.emf.ui.services.parser.ISemanticParser;
+import org.eclipse.gmf.runtime.notation.FontStyle;
+import org.eclipse.gmf.runtime.notation.NotationPackage;
+import org.eclipse.gmf.runtime.notation.View;
+import org.eclipse.jface.text.contentassist.IContentAssistProcessor;
+import org.eclipse.jface.viewers.ICellEditorValidator;
+import org.eclipse.swt.SWT;
+import org.eclipse.swt.accessibility.AccessibleEvent;
+import org.eclipse.swt.graphics.Color;
+import org.eclipse.swt.graphics.FontData;
+import org.eclipse.swt.graphics.Image;
+
+import comrel.diagram.edit.policies.ComrelTextSelectionEditPolicy;
+import comrel.diagram.part.ComrelVisualIDRegistry;
+import comrel.diagram.providers.ComrelElementTypes;
+import comrel.diagram.providers.ComrelParserProvider;
+
+/**
+ * @generated
+ */
+public class MultiInputPortNameType9EditPart extends LabelEditPart implements
+ ITextAwareEditPart, IBorderItemEditPart {
+
+ /**
+ * @generated
+ */
+ public static final int VISUAL_ID = 5025;
+
+ /**
+ * @generated
+ */
+ private DirectEditManager manager;
+
+ /**
+ * @generated
+ */
+ private IParser parser;
+
+ /**
+ * @generated
+ */
+ private List<?> parserElements;
+
+ /**
+ * @generated
+ */
+ private String defaultText;
+
+ /**
+ * @generated
+ */
+ static {
+ registerSnapBackPosition(
+ ComrelVisualIDRegistry
+ .getType(comrel.diagram.edit.parts.MultiInputPortNameType9EditPart.VISUAL_ID),
+ new Point(0, 0));
+ }
+
+ /**
+ * @generated
+ */
+ public MultiInputPortNameType9EditPart(View view) {
+ super(view);
+ }
+
+ /**
+ * @generated
+ */
+ protected void createDefaultEditPolicies() {
+ super.createDefaultEditPolicies();
+ installEditPolicy(EditPolicy.DIRECT_EDIT_ROLE,
+ new LabelDirectEditPolicy());
+ installEditPolicy(EditPolicy.SELECTION_FEEDBACK_ROLE,
+ new ComrelTextSelectionEditPolicy());
+ }
+
+ /**
+ * @generated
+ */
+ public IBorderItemLocator getBorderItemLocator() {
+ IFigure parentFigure = getFigure().getParent();
+ if (parentFigure != null && parentFigure.getLayoutManager() != null) {
+ Object constraint = parentFigure.getLayoutManager().getConstraint(
+ getFigure());
+ return (IBorderItemLocator) constraint;
+ }
+ return null;
+ }
+
+ /**
+ * @generated
+ */
+ public void refreshBounds() {
+ int x = ((Integer) getStructuralFeatureValue(NotationPackage.eINSTANCE
+ .getLocation_X())).intValue();
+ int y = ((Integer) getStructuralFeatureValue(NotationPackage.eINSTANCE
+ .getLocation_Y())).intValue();
+ int width = ((Integer) getStructuralFeatureValue(NotationPackage.eINSTANCE
+ .getSize_Width())).intValue();
+ int height = ((Integer) getStructuralFeatureValue(NotationPackage.eINSTANCE
+ .getSize_Height())).intValue();
+ getBorderItemLocator()
+ .setConstraint(new Rectangle(x, y, width, height));
+ }
+
+ /**
+ * @generated
+ */
+ protected String getLabelTextHelper(IFigure figure) {
+ if (figure instanceof WrappingLabel) {
+ return ((WrappingLabel) figure).getText();
+ } else {
+ return ((Label) figure).getText();
+ }
+ }
+
+ /**
+ * @generated NOT
+ */
+ protected void setLabelTextHelper(IFigure figure, String text) {
+ int posDot = -1;
+ int posDouble = -1;
+ posDot = text.lastIndexOf(".");
+ posDouble = text.indexOf(":");
+ if (posDot > -1 && posDouble > -1) {
+ String first = text.substring(0, posDouble + 1);
+ String second = text.substring(posDot + 1);
+ text = first + second;
+ }
+ if (figure instanceof WrappingLabel) {
+ ((WrappingLabel) figure).setText(text);
+ } else {
+ ((Label) figure).setText(text);
+ }
+ }
+
+ /**
+ * @generated
+ */
+ protected Image getLabelIconHelper(IFigure figure) {
+ if (figure instanceof WrappingLabel) {
+ return ((WrappingLabel) figure).getIcon();
+ } else {
+ return ((Label) figure).getIcon();
+ }
+ }
+
+ /**
+ * @generated
+ */
+ protected void setLabelIconHelper(IFigure figure, Image icon) {
+ if (figure instanceof WrappingLabel) {
+ ((WrappingLabel) figure).setIcon(icon);
+ } else {
+ ((Label) figure).setIcon(icon);
+ }
+ }
+
+ /**
+ * @generated
+ */
+ public void setLabel(IFigure figure) {
+ unregisterVisuals();
+ setFigure(figure);
+ defaultText = getLabelTextHelper(figure);
+ registerVisuals();
+ refreshVisuals();
+ }
+
+ /**
+ * @generated
+ */
+ @SuppressWarnings("rawtypes")
+ protected List getModelChildren() {
+ return Collections.EMPTY_LIST;
+ }
+
+ /**
+ * @generated
+ */
+ public IGraphicalEditPart getChildBySemanticHint(String semanticHint) {
+ return null;
+ }
+
+ /**
+ * @generated
+ */
+ protected EObject getParserElement() {
+ return resolveSemanticElement();
+ }
+
+ /**
+ * @generated
+ */
+ protected Image getLabelIcon() {
+ return null;
+ }
+
+ /**
+ * @generated
+ */
+ protected String getLabelText() {
+ String text = null;
+ EObject parserElement = getParserElement();
+ if (parserElement != null && getParser() != null) {
+ text = getParser().getPrintString(
+ new EObjectAdapter(parserElement),
+ getParserOptions().intValue());
+ }
+ if (text == null || text.length() == 0) {
+ text = defaultText;
+ }
+ return text;
+ }
+
+ /**
+ * @generated
+ */
+ public void setLabelText(String text) {
+ setLabelTextHelper(getFigure(), text);
+ Object pdEditPolicy = getEditPolicy(EditPolicy.PRIMARY_DRAG_ROLE);
+ if (pdEditPolicy instanceof ComrelTextSelectionEditPolicy) {
+ ((ComrelTextSelectionEditPolicy) pdEditPolicy).refreshFeedback();
+ }
+ Object sfEditPolicy = getEditPolicy(EditPolicy.SELECTION_FEEDBACK_ROLE);
+ if (sfEditPolicy instanceof ComrelTextSelectionEditPolicy) {
+ ((ComrelTextSelectionEditPolicy) sfEditPolicy).refreshFeedback();
+ }
+ }
+
+ /**
+ * @generated
+ */
+ public String getEditText() {
+ if (getParserElement() == null || getParser() == null) {
+ return ""; //$NON-NLS-1$
+ }
+ return getParser().getEditString(
+ new EObjectAdapter(getParserElement()),
+ getParserOptions().intValue());
+ }
+
+ /**
+ * @generated
+ */
+ protected boolean isEditable() {
+ return getParser() != null;
+ }
+
+ /**
+ * @generated
+ */
+ public ICellEditorValidator getEditTextValidator() {
+ return new ICellEditorValidator() {
+
+ public String isValid(final Object value) {
+ if (value instanceof String) {
+ final EObject element = getParserElement();
+ final IParser parser = getParser();
+ try {
+ IParserEditStatus valid = (IParserEditStatus) getEditingDomain()
+ .runExclusive(
+ new RunnableWithResult.Impl<IParserEditStatus>() {
+
+ public void run() {
+ setResult(parser
+ .isValidEditString(
+ new EObjectAdapter(
+ element),
+ (String) value));
+ }
+ });
+ return valid.getCode() == ParserEditStatus.EDITABLE ? null
+ : valid.getMessage();
+ } catch (InterruptedException ie) {
+ ie.printStackTrace();
+ }
+ }
+
+ // shouldn't get here
+ return null;
+ }
+ };
+ }
+
+ /**
+ * @generated
+ */
+ public IContentAssistProcessor getCompletionProcessor() {
+ if (getParserElement() == null || getParser() == null) {
+ return null;
+ }
+ return getParser().getCompletionProcessor(
+ new EObjectAdapter(getParserElement()));
+ }
+
+ /**
+ * @generated
+ */
+ public ParserOptions getParserOptions() {
+ return ParserOptions.NONE;
+ }
+
+ /**
+ * @generated
+ */
+ public IParser getParser() {
+ if (parser == null) {
+ parser = ComrelParserProvider
+ .getParser(
+ ComrelElementTypes.MultiInputPort_3032,
+ getParserElement(),
+ ComrelVisualIDRegistry
+ .getType(comrel.diagram.edit.parts.MultiInputPortNameType9EditPart.VISUAL_ID));
+ }
+ return parser;
+ }
+
+ /**
+ * @generated
+ */
+ protected DirectEditManager getManager() {
+ if (manager == null) {
+ setManager(new TextDirectEditManager(this,
+ TextDirectEditManager.getTextCellEditorClass(this),
+ ComrelEditPartFactory.getTextCellEditorLocator(this)));
+ }
+ return manager;
+ }
+
+ /**
+ * @generated
+ */
+ protected void setManager(DirectEditManager manager) {
+ this.manager = manager;
+ }
+
+ /**
+ * @generated
+ */
+ protected void performDirectEdit() {
+ getManager().show();
+ }
+
+ /**
+ * @generated
+ */
+ protected void performDirectEdit(Point eventLocation) {
+ if (getManager().getClass() == TextDirectEditManager.class) {
+ ((TextDirectEditManager) getManager()).show(eventLocation
+ .getSWTPoint());
+ }
+ }
+
+ /**
+ * @generated
+ */
+ private void performDirectEdit(char initialCharacter) {
+ if (getManager() instanceof TextDirectEditManager) {
+ ((TextDirectEditManager) getManager()).show(initialCharacter);
+ } else {
+ performDirectEdit();
+ }
+ }
+
+ /**
+ * @generated
+ */
+ protected void performDirectEditRequest(Request request) {
+ final Request theRequest = request;
+ try {
+ getEditingDomain().runExclusive(new Runnable() {
+
+ public void run() {
+ if (isActive() && isEditable()) {
+ if (theRequest
+ .getExtendedData()
+ .get(RequestConstants.REQ_DIRECTEDIT_EXTENDEDDATA_INITIAL_CHAR) instanceof Character) {
+ Character initialChar = (Character) theRequest
+ .getExtendedData()
+ .get(RequestConstants.REQ_DIRECTEDIT_EXTENDEDDATA_INITIAL_CHAR);
+ performDirectEdit(initialChar.charValue());
+ } else if ((theRequest instanceof DirectEditRequest)
+ && (getEditText().equals(getLabelText()))) {
+ DirectEditRequest editRequest = (DirectEditRequest) theRequest;
+ performDirectEdit(editRequest.getLocation());
+ } else {
+ performDirectEdit();
+ }
+ }
+ }
+ });
+ } catch (InterruptedException e) {
+ e.printStackTrace();
+ }
+ }
+
+ /**
+ * @generated
+ */
+ protected void refreshVisuals() {
+ super.refreshVisuals();
+ refreshLabel();
+ refreshFont();
+ refreshFontColor();
+ refreshUnderline();
+ refreshStrikeThrough();
+ }
+
+ /**
+ * @generated
+ */
+ protected void refreshLabel() {
+ setLabelTextHelper(getFigure(), getLabelText());
+ setLabelIconHelper(getFigure(), getLabelIcon());
+ Object pdEditPolicy = getEditPolicy(EditPolicy.PRIMARY_DRAG_ROLE);
+ if (pdEditPolicy instanceof ComrelTextSelectionEditPolicy) {
+ ((ComrelTextSelectionEditPolicy) pdEditPolicy).refreshFeedback();
+ }
+ Object sfEditPolicy = getEditPolicy(EditPolicy.SELECTION_FEEDBACK_ROLE);
+ if (sfEditPolicy instanceof ComrelTextSelectionEditPolicy) {
+ ((ComrelTextSelectionEditPolicy) sfEditPolicy).refreshFeedback();
+ }
+ }
+
+ /**
+ * @generated
+ */
+ protected void refreshUnderline() {
+ FontStyle style = (FontStyle) getFontStyleOwnerView().getStyle(
+ NotationPackage.eINSTANCE.getFontStyle());
+ if (style != null && getFigure() instanceof WrappingLabel) {
+ ((WrappingLabel) getFigure()).setTextUnderline(style.isUnderline());
+ }
+ }
+
+ /**
+ * @generated
+ */
+ protected void refreshStrikeThrough() {
+ FontStyle style = (FontStyle) getFontStyleOwnerView().getStyle(
+ NotationPackage.eINSTANCE.getFontStyle());
+ if (style != null && getFigure() instanceof WrappingLabel) {
+ ((WrappingLabel) getFigure()).setTextStrikeThrough(style
+ .isStrikeThrough());
+ }
+ }
+
+ /**
+ * @generated
+ */
+ protected void refreshFont() {
+ FontStyle style = (FontStyle) getFontStyleOwnerView().getStyle(
+ NotationPackage.eINSTANCE.getFontStyle());
+ if (style != null) {
+ FontData fontData = new FontData(style.getFontName(),
+ style.getFontHeight(), (style.isBold() ? SWT.BOLD
+ : SWT.NORMAL)
+ | (style.isItalic() ? SWT.ITALIC : SWT.NORMAL));
+ setFont(fontData);
+ }
+ }
+
+ /**
+ * @generated
+ */
+ protected void setFontColor(Color color) {
+ getFigure().setForegroundColor(color);
+ }
+
+ /**
+ * @generated
+ */
+ protected void addSemanticListeners() {
+ if (getParser() instanceof ISemanticParser) {
+ EObject element = resolveSemanticElement();
+ parserElements = ((ISemanticParser) getParser())
+ .getSemanticElementsBeingParsed(element);
+ for (int i = 0; i < parserElements.size(); i++) {
+ addListenerFilter(
+ "SemanticModel" + i, this, (EObject) parserElements.get(i)); //$NON-NLS-1$
+ }
+ } else {
+ super.addSemanticListeners();
+ }
+ }
+
+ /**
+ * @generated
+ */
+ protected void removeSemanticListeners() {
+ if (parserElements != null) {
+ for (int i = 0; i < parserElements.size(); i++) {
+ removeListenerFilter("SemanticModel" + i); //$NON-NLS-1$
+ }
+ } else {
+ super.removeSemanticListeners();
+ }
+ }
+
+ /**
+ * @generated
+ */
+ protected AccessibleEditPart getAccessibleEditPart() {
+ if (accessibleEP == null) {
+ accessibleEP = new AccessibleGraphicalEditPart() {
+
+ public void getName(AccessibleEvent e) {
+ e.result = getLabelTextHelper(getFigure());
+ }
+ };
+ }
+ return accessibleEP;
+ }
+
+ /**
+ * @generated
+ */
+ private View getFontStyleOwnerView() {
+ return getPrimaryView();
+ }
+
+ /**
+ * @generated
+ */
+ protected void handleNotificationEvent(Notification event) {
+ Object feature = event.getFeature();
+ if (NotationPackage.eINSTANCE.getFontStyle_FontColor().equals(feature)) {
+ Integer c = (Integer) event.getNewValue();
+ setFontColor(DiagramColorRegistry.getInstance().getColor(c));
+ } else if (NotationPackage.eINSTANCE.getFontStyle_Underline().equals(
+ feature)) {
+ refreshUnderline();
+ } else if (NotationPackage.eINSTANCE.getFontStyle_StrikeThrough()
+ .equals(feature)) {
+ refreshStrikeThrough();
+ } else if (NotationPackage.eINSTANCE.getFontStyle_FontHeight().equals(
+ feature)
+ || NotationPackage.eINSTANCE.getFontStyle_FontName().equals(
+ feature)
+ || NotationPackage.eINSTANCE.getFontStyle_Bold()
+ .equals(feature)
+ || NotationPackage.eINSTANCE.getFontStyle_Italic().equals(
+ feature)) {
+ refreshFont();
+ } else {
+ if (getParser() != null
+ && getParser().isAffectingEvent(event,
+ getParserOptions().intValue())) {
+ refreshLabel();
+ }
+ if (getParser() instanceof ISemanticParser) {
+ ISemanticParser modelParser = (ISemanticParser) getParser();
+ if (modelParser.areSemanticElementsAffected(null, event)) {
+ removeSemanticListeners();
+ if (resolveSemanticElement() != null) {
+ addSemanticListeners();
+ }
+ refreshLabel();
+ }
+ }
+ }
+ super.handleNotificationEvent(event);
+ }
+
+ /**
+ * @generated
+ */
+ protected IFigure createFigure() {
+ IFigure label = createFigurePrim();
+ defaultText = getLabelTextHelper(label);
+ return label;
+ }
+
+ /**
+ * @generated
+ */
+ protected IFigure createFigurePrim() {
+ return new MultiInputPortLabelFigure();
+ }
+
+ /**
+ * @generated
+ */
+ public class MultiInputPortLabelFigure extends WrappingLabel {
+
+ /**
+ * @generated
+ */
+ public MultiInputPortLabelFigure() {
+ this.setText("MultiInputPort");
+ }
+
+ }
+
+}
diff --git a/org.eclipse.emf.refactor.comrel.diagram/src/comrel/diagram/edit/parts/MultiInputPortNameTypeEditPart.java b/org.eclipse.emf.refactor.comrel.diagram/src/comrel/diagram/edit/parts/MultiInputPortNameTypeEditPart.java
new file mode 100644
index 0000000..fab8aa5
--- /dev/null
+++ b/org.eclipse.emf.refactor.comrel.diagram/src/comrel/diagram/edit/parts/MultiInputPortNameTypeEditPart.java
@@ -0,0 +1,631 @@
+/*
+ *
+ */
+package comrel.diagram.edit.parts;
+
+import java.util.Collections;
+import java.util.List;
+
+import org.eclipse.draw2d.IFigure;
+import org.eclipse.draw2d.Label;
+import org.eclipse.draw2d.geometry.Point;
+import org.eclipse.draw2d.geometry.Rectangle;
+import org.eclipse.emf.common.notify.Notification;
+import org.eclipse.emf.ecore.EObject;
+import org.eclipse.emf.transaction.RunnableWithResult;
+import org.eclipse.gef.AccessibleEditPart;
+import org.eclipse.gef.EditPolicy;
+import org.eclipse.gef.Request;
+import org.eclipse.gef.requests.DirectEditRequest;
+import org.eclipse.gef.tools.DirectEditManager;
+import org.eclipse.gmf.runtime.common.ui.services.parser.IParser;
+import org.eclipse.gmf.runtime.common.ui.services.parser.IParserEditStatus;
+import org.eclipse.gmf.runtime.common.ui.services.parser.ParserEditStatus;
+import org.eclipse.gmf.runtime.common.ui.services.parser.ParserOptions;
+import org.eclipse.gmf.runtime.diagram.ui.editparts.IBorderItemEditPart;
+import org.eclipse.gmf.runtime.diagram.ui.editparts.IGraphicalEditPart;
+import org.eclipse.gmf.runtime.diagram.ui.editparts.ITextAwareEditPart;
+import org.eclipse.gmf.runtime.diagram.ui.editparts.LabelEditPart;
+import org.eclipse.gmf.runtime.diagram.ui.editpolicies.LabelDirectEditPolicy;
+import org.eclipse.gmf.runtime.diagram.ui.figures.IBorderItemLocator;
+import org.eclipse.gmf.runtime.diagram.ui.l10n.DiagramColorRegistry;
+import org.eclipse.gmf.runtime.diagram.ui.requests.RequestConstants;
+import org.eclipse.gmf.runtime.diagram.ui.tools.TextDirectEditManager;
+import org.eclipse.gmf.runtime.draw2d.ui.figures.WrappingLabel;
+import org.eclipse.gmf.runtime.emf.core.util.EObjectAdapter;
+import org.eclipse.gmf.runtime.emf.ui.services.parser.ISemanticParser;
+import org.eclipse.gmf.runtime.notation.FontStyle;
+import org.eclipse.gmf.runtime.notation.NotationPackage;
+import org.eclipse.gmf.runtime.notation.View;
+import org.eclipse.jface.text.contentassist.IContentAssistProcessor;
+import org.eclipse.jface.viewers.ICellEditorValidator;
+import org.eclipse.swt.SWT;
+import org.eclipse.swt.accessibility.AccessibleEvent;
+import org.eclipse.swt.graphics.Color;
+import org.eclipse.swt.graphics.FontData;
+import org.eclipse.swt.graphics.Image;
+
+import comrel.diagram.edit.policies.ComrelTextSelectionEditPolicy;
+import comrel.diagram.part.ComrelVisualIDRegistry;
+import comrel.diagram.providers.ComrelElementTypes;
+import comrel.diagram.providers.ComrelParserProvider;
+
+/**
+ * @generated
+ */
+public class MultiInputPortNameTypeEditPart extends LabelEditPart implements
+ ITextAwareEditPart, IBorderItemEditPart {
+
+ /**
+ * @generated
+ */
+ public static final int VISUAL_ID = 5003;
+
+ /**
+ * @generated
+ */
+ private DirectEditManager manager;
+
+ /**
+ * @generated
+ */
+ private IParser parser;
+
+ /**
+ * @generated
+ */
+ private List<?> parserElements;
+
+ /**
+ * @generated
+ */
+ private String defaultText;
+
+ /**
+ * @generated
+ */
+ static {
+ registerSnapBackPosition(
+ ComrelVisualIDRegistry
+ .getType(comrel.diagram.edit.parts.MultiInputPortNameTypeEditPart.VISUAL_ID),
+ new Point(0, 0));
+ }
+
+ /**
+ * @generated
+ */
+ public MultiInputPortNameTypeEditPart(View view) {
+ super(view);
+ }
+
+ /**
+ * @generated
+ */
+ protected void createDefaultEditPolicies() {
+ super.createDefaultEditPolicies();
+ installEditPolicy(EditPolicy.DIRECT_EDIT_ROLE,
+ new LabelDirectEditPolicy());
+ installEditPolicy(EditPolicy.SELECTION_FEEDBACK_ROLE,
+ new ComrelTextSelectionEditPolicy());
+ }
+
+ /**
+ * @generated
+ */
+ public IBorderItemLocator getBorderItemLocator() {
+ IFigure parentFigure = getFigure().getParent();
+ if (parentFigure != null && parentFigure.getLayoutManager() != null) {
+ Object constraint = parentFigure.getLayoutManager().getConstraint(
+ getFigure());
+ return (IBorderItemLocator) constraint;
+ }
+ return null;
+ }
+
+ /**
+ * @generated
+ */
+ public void refreshBounds() {
+ int x = ((Integer) getStructuralFeatureValue(NotationPackage.eINSTANCE
+ .getLocation_X())).intValue();
+ int y = ((Integer) getStructuralFeatureValue(NotationPackage.eINSTANCE
+ .getLocation_Y())).intValue();
+ int width = ((Integer) getStructuralFeatureValue(NotationPackage.eINSTANCE
+ .getSize_Width())).intValue();
+ int height = ((Integer) getStructuralFeatureValue(NotationPackage.eINSTANCE
+ .getSize_Height())).intValue();
+ getBorderItemLocator()
+ .setConstraint(new Rectangle(x, y, width, height));
+ }
+
+ /**
+ * @generated
+ */
+ protected String getLabelTextHelper(IFigure figure) {
+ if (figure instanceof WrappingLabel) {
+ return ((WrappingLabel) figure).getText();
+ } else {
+ return ((Label) figure).getText();
+ }
+ }
+
+ /**
+ * @generated NOT
+ */
+ protected void setLabelTextHelper(IFigure figure, String text) {
+ int posDot = -1;
+ int posDouble = -1;
+ posDot = text.lastIndexOf(".");
+ posDouble = text.indexOf(":");
+ if (posDot > -1 && posDouble > -1) {
+ String first = text.substring(0, posDouble + 1);
+ String second = text.substring(posDot + 1);
+ text = first + second;
+ }
+ if (figure instanceof WrappingLabel) {
+ ((WrappingLabel) figure).setText(text);
+ } else {
+ ((Label) figure).setText(text);
+ }
+ }
+
+ /**
+ * @generated
+ */
+ protected Image getLabelIconHelper(IFigure figure) {
+ if (figure instanceof WrappingLabel) {
+ return ((WrappingLabel) figure).getIcon();
+ } else {
+ return ((Label) figure).getIcon();
+ }
+ }
+
+ /**
+ * @generated
+ */
+ protected void setLabelIconHelper(IFigure figure, Image icon) {
+ if (figure instanceof WrappingLabel) {
+ ((WrappingLabel) figure).setIcon(icon);
+ } else {
+ ((Label) figure).setIcon(icon);
+ }
+ }
+
+ /**
+ * @generated
+ */
+ public void setLabel(IFigure figure) {
+ unregisterVisuals();
+ setFigure(figure);
+ defaultText = getLabelTextHelper(figure);
+ registerVisuals();
+ refreshVisuals();
+ }
+
+ /**
+ * @generated
+ */
+ @SuppressWarnings("rawtypes")
+ protected List getModelChildren() {
+ return Collections.EMPTY_LIST;
+ }
+
+ /**
+ * @generated
+ */
+ public IGraphicalEditPart getChildBySemanticHint(String semanticHint) {
+ return null;
+ }
+
+ /**
+ * @generated
+ */
+ protected EObject getParserElement() {
+ return resolveSemanticElement();
+ }
+
+ /**
+ * @generated
+ */
+ protected Image getLabelIcon() {
+ return null;
+ }
+
+ /**
+ * @generated
+ */
+ protected String getLabelText() {
+ String text = null;
+ EObject parserElement = getParserElement();
+ if (parserElement != null && getParser() != null) {
+ text = getParser().getPrintString(
+ new EObjectAdapter(parserElement),
+ getParserOptions().intValue());
+ }
+ if (text == null || text.length() == 0) {
+ text = defaultText;
+ }
+ return text;
+ }
+
+ /**
+ * @generated
+ */
+ public void setLabelText(String text) {
+ setLabelTextHelper(getFigure(), text);
+ Object pdEditPolicy = getEditPolicy(EditPolicy.PRIMARY_DRAG_ROLE);
+ if (pdEditPolicy instanceof ComrelTextSelectionEditPolicy) {
+ ((ComrelTextSelectionEditPolicy) pdEditPolicy).refreshFeedback();
+ }
+ Object sfEditPolicy = getEditPolicy(EditPolicy.SELECTION_FEEDBACK_ROLE);
+ if (sfEditPolicy instanceof ComrelTextSelectionEditPolicy) {
+ ((ComrelTextSelectionEditPolicy) sfEditPolicy).refreshFeedback();
+ }
+ }
+
+ /**
+ * @generated
+ */
+ public String getEditText() {
+ if (getParserElement() == null || getParser() == null) {
+ return ""; //$NON-NLS-1$
+ }
+ return getParser().getEditString(
+ new EObjectAdapter(getParserElement()),
+ getParserOptions().intValue());
+ }
+
+ /**
+ * @generated
+ */
+ protected boolean isEditable() {
+ return getParser() != null;
+ }
+
+ /**
+ * @generated
+ */
+ public ICellEditorValidator getEditTextValidator() {
+ return new ICellEditorValidator() {
+
+ public String isValid(final Object value) {
+ if (value instanceof String) {
+ final EObject element = getParserElement();
+ final IParser parser = getParser();
+ try {
+ IParserEditStatus valid = (IParserEditStatus) getEditingDomain()
+ .runExclusive(
+ new RunnableWithResult.Impl<IParserEditStatus>() {
+
+ public void run() {
+ setResult(parser
+ .isValidEditString(
+ new EObjectAdapter(
+ element),
+ (String) value));
+ }
+ });
+ return valid.getCode() == ParserEditStatus.EDITABLE ? null
+ : valid.getMessage();
+ } catch (InterruptedException ie) {
+ ie.printStackTrace();
+ }
+ }
+
+ // shouldn't get here
+ return null;
+ }
+ };
+ }
+
+ /**
+ * @generated
+ */
+ public IContentAssistProcessor getCompletionProcessor() {
+ if (getParserElement() == null || getParser() == null) {
+ return null;
+ }
+ return getParser().getCompletionProcessor(
+ new EObjectAdapter(getParserElement()));
+ }
+
+ /**
+ * @generated
+ */
+ public ParserOptions getParserOptions() {
+ return ParserOptions.NONE;
+ }
+
+ /**
+ * @generated
+ */
+ public IParser getParser() {
+ if (parser == null) {
+ parser = ComrelParserProvider
+ .getParser(
+ ComrelElementTypes.MultiInputPort_3002,
+ getParserElement(),
+ ComrelVisualIDRegistry
+ .getType(comrel.diagram.edit.parts.MultiInputPortNameTypeEditPart.VISUAL_ID));
+ }
+ return parser;
+ }
+
+ /**
+ * @generated
+ */
+ protected DirectEditManager getManager() {
+ if (manager == null) {
+ setManager(new TextDirectEditManager(this,
+ TextDirectEditManager.getTextCellEditorClass(this),
+ ComrelEditPartFactory.getTextCellEditorLocator(this)));
+ }
+ return manager;
+ }
+
+ /**
+ * @generated
+ */
+ protected void setManager(DirectEditManager manager) {
+ this.manager = manager;
+ }
+
+ /**
+ * @generated
+ */
+ protected void performDirectEdit() {
+ getManager().show();
+ }
+
+ /**
+ * @generated
+ */
+ protected void performDirectEdit(Point eventLocation) {
+ if (getManager().getClass() == TextDirectEditManager.class) {
+ ((TextDirectEditManager) getManager()).show(eventLocation
+ .getSWTPoint());
+ }
+ }
+
+ /**
+ * @generated
+ */
+ private void performDirectEdit(char initialCharacter) {
+ if (getManager() instanceof TextDirectEditManager) {
+ ((TextDirectEditManager) getManager()).show(initialCharacter);
+ } else {
+ performDirectEdit();
+ }
+ }
+
+ /**
+ * @generated
+ */
+ protected void performDirectEditRequest(Request request) {
+ final Request theRequest = request;
+ try {
+ getEditingDomain().runExclusive(new Runnable() {
+
+ public void run() {
+ if (isActive() && isEditable()) {
+ if (theRequest
+ .getExtendedData()
+ .get(RequestConstants.REQ_DIRECTEDIT_EXTENDEDDATA_INITIAL_CHAR) instanceof Character) {
+ Character initialChar = (Character) theRequest
+ .getExtendedData()
+ .get(RequestConstants.REQ_DIRECTEDIT_EXTENDEDDATA_INITIAL_CHAR);
+ performDirectEdit(initialChar.charValue());
+ } else if ((theRequest instanceof DirectEditRequest)
+ && (getEditText().equals(getLabelText()))) {
+ DirectEditRequest editRequest = (DirectEditRequest) theRequest;
+ performDirectEdit(editRequest.getLocation());
+ } else {
+ performDirectEdit();
+ }
+ }
+ }
+ });
+ } catch (InterruptedException e) {
+ e.printStackTrace();
+ }
+ }
+
+ /**
+ * @generated
+ */
+ protected void refreshVisuals() {
+ super.refreshVisuals();
+ refreshLabel();
+ refreshFont();
+ refreshFontColor();
+ refreshUnderline();
+ refreshStrikeThrough();
+ }
+
+ /**
+ * @generated
+ */
+ protected void refreshLabel() {
+ setLabelTextHelper(getFigure(), getLabelText());
+ setLabelIconHelper(getFigure(), getLabelIcon());
+ Object pdEditPolicy = getEditPolicy(EditPolicy.PRIMARY_DRAG_ROLE);
+ if (pdEditPolicy instanceof ComrelTextSelectionEditPolicy) {
+ ((ComrelTextSelectionEditPolicy) pdEditPolicy).refreshFeedback();
+ }
+ Object sfEditPolicy = getEditPolicy(EditPolicy.SELECTION_FEEDBACK_ROLE);
+ if (sfEditPolicy instanceof ComrelTextSelectionEditPolicy) {
+ ((ComrelTextSelectionEditPolicy) sfEditPolicy).refreshFeedback();
+ }
+ }
+
+ /**
+ * @generated
+ */
+ protected void refreshUnderline() {
+ FontStyle style = (FontStyle) getFontStyleOwnerView().getStyle(
+ NotationPackage.eINSTANCE.getFontStyle());
+ if (style != null && getFigure() instanceof WrappingLabel) {
+ ((WrappingLabel) getFigure()).setTextUnderline(style.isUnderline());
+ }
+ }
+
+ /**
+ * @generated
+ */
+ protected void refreshStrikeThrough() {
+ FontStyle style = (FontStyle) getFontStyleOwnerView().getStyle(
+ NotationPackage.eINSTANCE.getFontStyle());
+ if (style != null && getFigure() instanceof WrappingLabel) {
+ ((WrappingLabel) getFigure()).setTextStrikeThrough(style
+ .isStrikeThrough());
+ }
+ }
+
+ /**
+ * @generated
+ */
+ protected void refreshFont() {
+ FontStyle style = (FontStyle) getFontStyleOwnerView().getStyle(
+ NotationPackage.eINSTANCE.getFontStyle());
+ if (style != null) {
+ FontData fontData = new FontData(style.getFontName(),
+ style.getFontHeight(), (style.isBold() ? SWT.BOLD
+ : SWT.NORMAL)
+ | (style.isItalic() ? SWT.ITALIC : SWT.NORMAL));
+ setFont(fontData);
+ }
+ }
+
+ /**
+ * @generated
+ */
+ protected void setFontColor(Color color) {
+ getFigure().setForegroundColor(color);
+ }
+
+ /**
+ * @generated
+ */
+ protected void addSemanticListeners() {
+ if (getParser() instanceof ISemanticParser) {
+ EObject element = resolveSemanticElement();
+ parserElements = ((ISemanticParser) getParser())
+ .getSemanticElementsBeingParsed(element);
+ for (int i = 0; i < parserElements.size(); i++) {
+ addListenerFilter(
+ "SemanticModel" + i, this, (EObject) parserElements.get(i)); //$NON-NLS-1$
+ }
+ } else {
+ super.addSemanticListeners();
+ }
+ }
+
+ /**
+ * @generated
+ */
+ protected void removeSemanticListeners() {
+ if (parserElements != null) {
+ for (int i = 0; i < parserElements.size(); i++) {
+ removeListenerFilter("SemanticModel" + i); //$NON-NLS-1$
+ }
+ } else {
+ super.removeSemanticListeners();
+ }
+ }
+
+ /**
+ * @generated
+ */
+ protected AccessibleEditPart getAccessibleEditPart() {
+ if (accessibleEP == null) {
+ accessibleEP = new AccessibleGraphicalEditPart() {
+
+ public void getName(AccessibleEvent e) {
+ e.result = getLabelTextHelper(getFigure());
+ }
+ };
+ }
+ return accessibleEP;
+ }
+
+ /**
+ * @generated
+ */
+ private View getFontStyleOwnerView() {
+ return getPrimaryView();
+ }
+
+ /**
+ * @generated
+ */
+ protected void handleNotificationEvent(Notification event) {
+ Object feature = event.getFeature();
+ if (NotationPackage.eINSTANCE.getFontStyle_FontColor().equals(feature)) {
+ Integer c = (Integer) event.getNewValue();
+ setFontColor(DiagramColorRegistry.getInstance().getColor(c));
+ } else if (NotationPackage.eINSTANCE.getFontStyle_Underline().equals(
+ feature)) {
+ refreshUnderline();
+ } else if (NotationPackage.eINSTANCE.getFontStyle_StrikeThrough()
+ .equals(feature)) {
+ refreshStrikeThrough();
+ } else if (NotationPackage.eINSTANCE.getFontStyle_FontHeight().equals(
+ feature)
+ || NotationPackage.eINSTANCE.getFontStyle_FontName().equals(
+ feature)
+ || NotationPackage.eINSTANCE.getFontStyle_Bold()
+ .equals(feature)
+ || NotationPackage.eINSTANCE.getFontStyle_Italic().equals(
+ feature)) {
+ refreshFont();
+ } else {
+ if (getParser() != null
+ && getParser().isAffectingEvent(event,
+ getParserOptions().intValue())) {
+ refreshLabel();
+ }
+ if (getParser() instanceof ISemanticParser) {
+ ISemanticParser modelParser = (ISemanticParser) getParser();
+ if (modelParser.areSemanticElementsAffected(null, event)) {
+ removeSemanticListeners();
+ if (resolveSemanticElement() != null) {
+ addSemanticListeners();
+ }
+ refreshLabel();
+ }
+ }
+ }
+ super.handleNotificationEvent(event);
+ }
+
+ /**
+ * @generated
+ */
+ protected IFigure createFigure() {
+ IFigure label = createFigurePrim();
+ defaultText = getLabelTextHelper(label);
+ return label;
+ }
+
+ /**
+ * @generated
+ */
+ protected IFigure createFigurePrim() {
+ return new MultiInputPortLabelFigure();
+ }
+
+ /**
+ * @generated
+ */
+ public class MultiInputPortLabelFigure extends WrappingLabel {
+
+ /**
+ * @generated
+ */
+ public MultiInputPortLabelFigure() {
+ this.setText("MultiInputPort");
+ }
+
+ }
+
+}
diff --git a/org.eclipse.emf.refactor.comrel.diagram/src/comrel/diagram/edit/parts/MultiOutputPort2EditPart.java b/org.eclipse.emf.refactor.comrel.diagram/src/comrel/diagram/edit/parts/MultiOutputPort2EditPart.java
new file mode 100644
index 0000000..e12e607
--- /dev/null
+++ b/org.eclipse.emf.refactor.comrel.diagram/src/comrel/diagram/edit/parts/MultiOutputPort2EditPart.java
@@ -0,0 +1,377 @@
+/*
+ *
+ */
+package comrel.diagram.edit.parts;
+
+import java.util.ArrayList;
+import java.util.Collections;
+import java.util.LinkedList;
+import java.util.List;
+
+import org.eclipse.draw2d.Ellipse;
+import org.eclipse.draw2d.IFigure;
+import org.eclipse.draw2d.MarginBorder;
+import org.eclipse.draw2d.PositionConstants;
+import org.eclipse.draw2d.Shape;
+import org.eclipse.draw2d.StackLayout;
+import org.eclipse.draw2d.geometry.Dimension;
+import org.eclipse.gef.EditPart;
+import org.eclipse.gef.EditPolicy;
+import org.eclipse.gef.GraphicalEditPart;
+import org.eclipse.gef.Request;
+import org.eclipse.gef.commands.Command;
+import org.eclipse.gef.editpolicies.LayoutEditPolicy;
+import org.eclipse.gef.editpolicies.NonResizableEditPolicy;
+import org.eclipse.gef.handles.MoveHandle;
+import org.eclipse.gef.requests.CreateRequest;
+import org.eclipse.gmf.runtime.diagram.ui.editparts.BorderedBorderItemEditPart;
+import org.eclipse.gmf.runtime.diagram.ui.editparts.IBorderItemEditPart;
+import org.eclipse.gmf.runtime.diagram.ui.editparts.IGraphicalEditPart;
+import org.eclipse.gmf.runtime.diagram.ui.editpolicies.BorderItemSelectionEditPolicy;
+import org.eclipse.gmf.runtime.diagram.ui.editpolicies.EditPolicyRoles;
+import org.eclipse.gmf.runtime.diagram.ui.figures.BorderItemLocator;
+import org.eclipse.gmf.runtime.draw2d.ui.figures.WrappingLabel;
+import org.eclipse.gmf.runtime.emf.type.core.IElementType;
+import org.eclipse.gmf.runtime.gef.ui.figures.DefaultSizeNodeFigure;
+import org.eclipse.gmf.runtime.gef.ui.figures.NodeFigure;
+import org.eclipse.gmf.runtime.notation.View;
+import org.eclipse.swt.graphics.Color;
+
+import comrel.OutputPort;
+import comrel.diagram.edit.policies.MultiOutputPort2ItemSemanticEditPolicy;
+import comrel.diagram.part.ComrelVisualIDRegistry;
+import comrel.diagram.providers.ComrelElementTypes;
+import comrel.figures.OutputPortFigure;
+
+/**
+ * @generated
+ */
+public class MultiOutputPort2EditPart extends BorderedBorderItemEditPart {
+
+ /**
+ * @generated
+ */
+ public static final int VISUAL_ID = 3021;
+
+ /**
+ * @generated
+ */
+ protected IFigure contentPane;
+
+ /**
+ * @generated
+ */
+ protected IFigure primaryShape;
+
+ /**
+ * @generated
+ */
+ public MultiOutputPort2EditPart(View view) {
+ super(view);
+ }
+
+ /**
+ * @generated
+ */
+ protected void createDefaultEditPolicies() {
+ super.createDefaultEditPolicies();
+ installEditPolicy(EditPolicy.PRIMARY_DRAG_ROLE,
+ getPrimaryDragEditPolicy());
+ installEditPolicy(EditPolicyRoles.SEMANTIC_ROLE,
+ new MultiOutputPort2ItemSemanticEditPolicy());
+ installEditPolicy(EditPolicy.LAYOUT_ROLE, createLayoutEditPolicy());
+ // XXX need an SCR to runtime to have another abstract superclass that would let children add reasonable editpolicies
+ // removeEditPolicy(org.eclipse.gmf.runtime.diagram.ui.editpolicies.EditPolicyRoles.CONNECTION_HANDLES_ROLE);
+ }
+
+ /**
+ * @generated
+ */
+ protected LayoutEditPolicy createLayoutEditPolicy() {
+ org.eclipse.gmf.runtime.diagram.ui.editpolicies.LayoutEditPolicy lep = new org.eclipse.gmf.runtime.diagram.ui.editpolicies.LayoutEditPolicy() {
+
+ protected EditPolicy createChildEditPolicy(EditPart child) {
+ View childView = (View) child.getModel();
+ switch (ComrelVisualIDRegistry.getVisualID(childView)) {
+ case MultiOutputPortNameType2EditPart.VISUAL_ID:
+ return new BorderItemSelectionEditPolicy() {
+
+ protected List createSelectionHandles() {
+ MoveHandle mh = new MoveHandle(
+ (GraphicalEditPart) getHost());
+ mh.setBorder(null);
+ return Collections.singletonList(mh);
+ }
+ };
+ }
+ EditPolicy result = child
+ .getEditPolicy(EditPolicy.PRIMARY_DRAG_ROLE);
+ if (result == null) {
+ result = new NonResizableEditPolicy();
+ }
+ return result;
+ }
+
+ protected Command getMoveChildrenCommand(Request request) {
+ return null;
+ }
+
+ protected Command getCreateCommand(CreateRequest request) {
+ return null;
+ }
+ };
+ return lep;
+ }
+
+ /**
+ * @generated NOT
+ */
+ protected IFigure createNodeShape() {
+ MultiOutputPortFigure figure = new MultiOutputPortFigure();
+ OutputPort port = (OutputPort) this.resolveSemanticElement();
+ figure.setPort(port);
+ return primaryShape = figure;
+ }
+
+ /**
+ * @generated
+ */
+ public MultiOutputPortFigure getPrimaryShape() {
+ return (MultiOutputPortFigure) primaryShape;
+ }
+
+ /**
+ * @generated
+ */
+ protected void addBorderItem(IFigure borderItemContainer,
+ IBorderItemEditPart borderItemEditPart) {
+ if (borderItemEditPart instanceof MultiOutputPortNameType2EditPart) {
+ BorderItemLocator locator = new BorderItemLocator(getMainFigure(),
+ PositionConstants.SOUTH);
+ locator.setBorderItemOffset(new Dimension(-20, -20));
+ borderItemContainer.add(borderItemEditPart.getFigure(), locator);
+ } else {
+ super.addBorderItem(borderItemContainer, borderItemEditPart);
+ }
+ }
+
+ /**
+ * @generated
+ */
+ protected NodeFigure createNodePlate() {
+ DefaultSizeNodeFigure result = new DefaultSizeNodeFigure(20, 20);
+
+ //FIXME: workaround for #154536
+ result.getBounds().setSize(result.getPreferredSize());
+ return result;
+ }
+
+ /**
+ * Creates figure for this edit part.
+ *
+ * Body of this method does not depend on settings in generation model
+ * so you may safely remove <i>generated</i> tag and modify it.
+ *
+ * @generated
+ */
+ protected NodeFigure createMainFigure() {
+ NodeFigure figure = createNodePlate();
+ figure.setLayoutManager(new StackLayout());
+ IFigure shape = createNodeShape();
+ figure.add(shape);
+ contentPane = setupContentPane(shape);
+ return figure;
+ }
+
+ /**
+ * Default implementation treats passed figure as content pane.
+ * Respects layout one may have set for generated figure.
+ * @param nodeShape instance of generated figure class
+ * @generated
+ */
+ protected IFigure setupContentPane(IFigure nodeShape) {
+ return nodeShape; // use nodeShape itself as contentPane
+ }
+
+ /**
+ * @generated
+ */
+ public IFigure getContentPane() {
+ if (contentPane != null) {
+ return contentPane;
+ }
+ return super.getContentPane();
+ }
+
+ /**
+ * @generated
+ */
+ protected void setForegroundColor(Color color) {
+ if (primaryShape != null) {
+ primaryShape.setForegroundColor(color);
+ }
+ }
+
+ /**
+ * @generated
+ */
+ protected void setBackgroundColor(Color color) {
+ if (primaryShape != null) {
+ primaryShape.setBackgroundColor(color);
+ }
+ }
+
+ /**
+ * @generated
+ */
+ protected void setLineWidth(int width) {
+ if (primaryShape instanceof Shape) {
+ ((Shape) primaryShape).setLineWidth(width);
+ }
+ }
+
+ /**
+ * @generated
+ */
+ protected void setLineType(int style) {
+ if (primaryShape instanceof Shape) {
+ ((Shape) primaryShape).setLineStyle(style);
+ }
+ }
+
+ /**
+ * @generated
+ */
+ public EditPart getPrimaryChildEditPart() {
+ return getChildBySemanticHint(ComrelVisualIDRegistry
+ .getType(MultiOutputPortNameType2EditPart.VISUAL_ID));
+ }
+
+ /**
+ * @generated
+ */
+ public List<IElementType> getMARelTypesOnSource() {
+ ArrayList<IElementType> types = new ArrayList<IElementType>(2);
+ types.add(ComrelElementTypes.MultiPortMapping_4002);
+ types.add(ComrelElementTypes.MultiSinglePortMapping_4003);
+ return types;
+ }
+
+ /**
+ * @generated
+ */
+ public List<IElementType> getMARelTypesOnSourceAndTarget(
+ IGraphicalEditPart targetEditPart) {
+ LinkedList<IElementType> types = new LinkedList<IElementType>();
+ if (targetEditPart instanceof MultiInputPortEditPart) {
+ types.add(ComrelElementTypes.MultiPortMapping_4002);
+ }
+ if (targetEditPart instanceof MultiInputPort2EditPart) {
+ types.add(ComrelElementTypes.MultiPortMapping_4002);
+ }
+ if (targetEditPart instanceof MultiInputPort3EditPart) {
+ types.add(ComrelElementTypes.MultiPortMapping_4002);
+ }
+ if (targetEditPart instanceof MultiInputPort4EditPart) {
+ types.add(ComrelElementTypes.MultiPortMapping_4002);
+ }
+ if (targetEditPart instanceof MultiInputPort5EditPart) {
+ types.add(ComrelElementTypes.MultiPortMapping_4002);
+ }
+ if (targetEditPart instanceof MultiInputPort6EditPart) {
+ types.add(ComrelElementTypes.MultiPortMapping_4002);
+ }
+ if (targetEditPart instanceof MultiInputPort7EditPart) {
+ types.add(ComrelElementTypes.MultiPortMapping_4002);
+ }
+ if (targetEditPart instanceof MultiInputPort8EditPart) {
+ types.add(ComrelElementTypes.MultiPortMapping_4002);
+ }
+ if (targetEditPart instanceof MultiInputPort9EditPart) {
+ types.add(ComrelElementTypes.MultiPortMapping_4002);
+ }
+ if (targetEditPart instanceof SingleInputPortEditPart) {
+ types.add(ComrelElementTypes.MultiSinglePortMapping_4003);
+ }
+ if (targetEditPart instanceof SingleInputPort2EditPart) {
+ types.add(ComrelElementTypes.MultiSinglePortMapping_4003);
+ }
+ if (targetEditPart instanceof SingleInputPort3EditPart) {
+ types.add(ComrelElementTypes.MultiSinglePortMapping_4003);
+ }
+ if (targetEditPart instanceof SingleInputPort4EditPart) {
+ types.add(ComrelElementTypes.MultiSinglePortMapping_4003);
+ }
+ if (targetEditPart instanceof SingleInputPort5EditPart) {
+ types.add(ComrelElementTypes.MultiSinglePortMapping_4003);
+ }
+ if (targetEditPart instanceof SingleInputPort6EditPart) {
+ types.add(ComrelElementTypes.MultiSinglePortMapping_4003);
+ }
+ if (targetEditPart instanceof SingleInputPort7EditPart) {
+ types.add(ComrelElementTypes.MultiSinglePortMapping_4003);
+ }
+ if (targetEditPart instanceof SingleInputPort8EditPart) {
+ types.add(ComrelElementTypes.MultiSinglePortMapping_4003);
+ }
+ if (targetEditPart instanceof SingleInputPort9EditPart) {
+ types.add(ComrelElementTypes.MultiSinglePortMapping_4003);
+ }
+ return types;
+ }
+
+ /**
+ * @generated
+ */
+ public List<IElementType> getMATypesForTarget(IElementType relationshipType) {
+ LinkedList<IElementType> types = new LinkedList<IElementType>();
+ if (relationshipType == ComrelElementTypes.MultiPortMapping_4002) {
+ types.add(ComrelElementTypes.MultiInputPort_3002);
+ types.add(ComrelElementTypes.MultiInputPort_3006);
+ types.add(ComrelElementTypes.MultiInputPort_3010);
+ types.add(ComrelElementTypes.MultiInputPort_3014);
+ types.add(ComrelElementTypes.MultiInputPort_3017);
+ types.add(ComrelElementTypes.MultiInputPort_3020);
+ types.add(ComrelElementTypes.MultiInputPort_3024);
+ types.add(ComrelElementTypes.MultiInputPort_3028);
+ types.add(ComrelElementTypes.MultiInputPort_3032);
+ } else if (relationshipType == ComrelElementTypes.MultiSinglePortMapping_4003) {
+ types.add(ComrelElementTypes.SingleInputPort_2001);
+ types.add(ComrelElementTypes.SingleInputPort_3001);
+ types.add(ComrelElementTypes.SingleInputPort_3005);
+ types.add(ComrelElementTypes.SingleInputPort_3009);
+ types.add(ComrelElementTypes.SingleInputPort_3013);
+ types.add(ComrelElementTypes.SingleInputPort_3023);
+ types.add(ComrelElementTypes.SingleInputPort_3027);
+ types.add(ComrelElementTypes.SingleInputPort_3031);
+ types.add(ComrelElementTypes.SingleInputPort_3035);
+ }
+ return types;
+ }
+
+ /**
+ * @generated NOT
+ */
+ public class MultiOutputPortFigure extends OutputPortFigure {
+
+ /**
+ * @generated
+ */
+ public MultiOutputPortFigure() {
+ this.setLineWidth(10);
+ this.setForegroundColor(THIS_FORE);
+ this.setPreferredSize(new Dimension(getMapMode().DPtoLP(20),
+ getMapMode().DPtoLP(20)));
+ this.setBorder(new MarginBorder(getMapMode().DPtoLP(5),
+ getMapMode().DPtoLP(5), getMapMode().DPtoLP(5),
+ getMapMode().DPtoLP(5)));
+ }
+
+ }
+
+ /**
+ * @generated
+ */
+ static final Color THIS_FORE = new Color(null, 255, 0, 0);
+
+}
diff --git a/org.eclipse.emf.refactor.comrel.diagram/src/comrel/diagram/edit/parts/MultiOutputPortEditPart.java b/org.eclipse.emf.refactor.comrel.diagram/src/comrel/diagram/edit/parts/MultiOutputPortEditPart.java
new file mode 100644
index 0000000..a9442d5
--- /dev/null
+++ b/org.eclipse.emf.refactor.comrel.diagram/src/comrel/diagram/edit/parts/MultiOutputPortEditPart.java
@@ -0,0 +1,377 @@
+/*
+ *
+ */
+package comrel.diagram.edit.parts;
+
+import java.util.ArrayList;
+import java.util.Collections;
+import java.util.LinkedList;
+import java.util.List;
+
+import org.eclipse.draw2d.Ellipse;
+import org.eclipse.draw2d.IFigure;
+import org.eclipse.draw2d.MarginBorder;
+import org.eclipse.draw2d.PositionConstants;
+import org.eclipse.draw2d.Shape;
+import org.eclipse.draw2d.StackLayout;
+import org.eclipse.draw2d.geometry.Dimension;
+import org.eclipse.gef.EditPart;
+import org.eclipse.gef.EditPolicy;
+import org.eclipse.gef.GraphicalEditPart;
+import org.eclipse.gef.Request;
+import org.eclipse.gef.commands.Command;
+import org.eclipse.gef.editpolicies.LayoutEditPolicy;
+import org.eclipse.gef.editpolicies.NonResizableEditPolicy;
+import org.eclipse.gef.handles.MoveHandle;
+import org.eclipse.gef.requests.CreateRequest;
+import org.eclipse.gmf.runtime.diagram.ui.editparts.BorderedBorderItemEditPart;
+import org.eclipse.gmf.runtime.diagram.ui.editparts.IBorderItemEditPart;
+import org.eclipse.gmf.runtime.diagram.ui.editparts.IGraphicalEditPart;
+import org.eclipse.gmf.runtime.diagram.ui.editpolicies.BorderItemSelectionEditPolicy;
+import org.eclipse.gmf.runtime.diagram.ui.editpolicies.EditPolicyRoles;
+import org.eclipse.gmf.runtime.diagram.ui.figures.BorderItemLocator;
+import org.eclipse.gmf.runtime.draw2d.ui.figures.WrappingLabel;
+import org.eclipse.gmf.runtime.emf.type.core.IElementType;
+import org.eclipse.gmf.runtime.gef.ui.figures.DefaultSizeNodeFigure;
+import org.eclipse.gmf.runtime.gef.ui.figures.NodeFigure;
+import org.eclipse.gmf.runtime.notation.View;
+import org.eclipse.swt.graphics.Color;
+
+import comrel.OutputPort;
+import comrel.diagram.edit.policies.MultiOutputPortItemSemanticEditPolicy;
+import comrel.diagram.part.ComrelVisualIDRegistry;
+import comrel.diagram.providers.ComrelElementTypes;
+import comrel.figures.OutputPortFigure;
+
+/**
+ * @generated
+ */
+public class MultiOutputPortEditPart extends BorderedBorderItemEditPart {
+
+ /**
+ * @generated
+ */
+ public static final int VISUAL_ID = 3015;
+
+ /**
+ * @generated
+ */
+ protected IFigure contentPane;
+
+ /**
+ * @generated
+ */
+ protected IFigure primaryShape;
+
+ /**
+ * @generated
+ */
+ public MultiOutputPortEditPart(View view) {
+ super(view);
+ }
+
+ /**
+ * @generated
+ */
+ protected void createDefaultEditPolicies() {
+ super.createDefaultEditPolicies();
+ installEditPolicy(EditPolicy.PRIMARY_DRAG_ROLE,
+ getPrimaryDragEditPolicy());
+ installEditPolicy(EditPolicyRoles.SEMANTIC_ROLE,
+ new MultiOutputPortItemSemanticEditPolicy());
+ installEditPolicy(EditPolicy.LAYOUT_ROLE, createLayoutEditPolicy());
+ // XXX need an SCR to runtime to have another abstract superclass that would let children add reasonable editpolicies
+ // removeEditPolicy(org.eclipse.gmf.runtime.diagram.ui.editpolicies.EditPolicyRoles.CONNECTION_HANDLES_ROLE);
+ }
+
+ /**
+ * @generated
+ */
+ protected LayoutEditPolicy createLayoutEditPolicy() {
+ org.eclipse.gmf.runtime.diagram.ui.editpolicies.LayoutEditPolicy lep = new org.eclipse.gmf.runtime.diagram.ui.editpolicies.LayoutEditPolicy() {
+
+ protected EditPolicy createChildEditPolicy(EditPart child) {
+ View childView = (View) child.getModel();
+ switch (ComrelVisualIDRegistry.getVisualID(childView)) {
+ case MultiOutputPortNameTypeEditPart.VISUAL_ID:
+ return new BorderItemSelectionEditPolicy() {
+
+ protected List createSelectionHandles() {
+ MoveHandle mh = new MoveHandle(
+ (GraphicalEditPart) getHost());
+ mh.setBorder(null);
+ return Collections.singletonList(mh);
+ }
+ };
+ }
+ EditPolicy result = child
+ .getEditPolicy(EditPolicy.PRIMARY_DRAG_ROLE);
+ if (result == null) {
+ result = new NonResizableEditPolicy();
+ }
+ return result;
+ }
+
+ protected Command getMoveChildrenCommand(Request request) {
+ return null;
+ }
+
+ protected Command getCreateCommand(CreateRequest request) {
+ return null;
+ }
+ };
+ return lep;
+ }
+
+ /**
+ * @generated NOT
+ */
+ protected IFigure createNodeShape() {
+ MultiOutputPortFigure figure = new MultiOutputPortFigure();
+ OutputPort port = (OutputPort) this.resolveSemanticElement();
+ figure.setPort(port);
+ return primaryShape = figure;
+ }
+
+ /**
+ * @generated
+ */
+ public MultiOutputPortFigure getPrimaryShape() {
+ return (MultiOutputPortFigure) primaryShape;
+ }
+
+ /**
+ * @generated
+ */
+ protected void addBorderItem(IFigure borderItemContainer,
+ IBorderItemEditPart borderItemEditPart) {
+ if (borderItemEditPart instanceof MultiOutputPortNameTypeEditPart) {
+ BorderItemLocator locator = new BorderItemLocator(getMainFigure(),
+ PositionConstants.SOUTH);
+ locator.setBorderItemOffset(new Dimension(-20, -20));
+ borderItemContainer.add(borderItemEditPart.getFigure(), locator);
+ } else {
+ super.addBorderItem(borderItemContainer, borderItemEditPart);
+ }
+ }
+
+ /**
+ * @generated
+ */
+ protected NodeFigure createNodePlate() {
+ DefaultSizeNodeFigure result = new DefaultSizeNodeFigure(20, 20);
+
+ //FIXME: workaround for #154536
+ result.getBounds().setSize(result.getPreferredSize());
+ return result;
+ }
+
+ /**
+ * Creates figure for this edit part.
+ *
+ * Body of this method does not depend on settings in generation model
+ * so you may safely remove <i>generated</i> tag and modify it.
+ *
+ * @generated
+ */
+ protected NodeFigure createMainFigure() {
+ NodeFigure figure = createNodePlate();
+ figure.setLayoutManager(new StackLayout());
+ IFigure shape = createNodeShape();
+ figure.add(shape);
+ contentPane = setupContentPane(shape);
+ return figure;
+ }
+
+ /**
+ * Default implementation treats passed figure as content pane.
+ * Respects layout one may have set for generated figure.
+ * @param nodeShape instance of generated figure class
+ * @generated
+ */
+ protected IFigure setupContentPane(IFigure nodeShape) {
+ return nodeShape; // use nodeShape itself as contentPane
+ }
+
+ /**
+ * @generated
+ */
+ public IFigure getContentPane() {
+ if (contentPane != null) {
+ return contentPane;
+ }
+ return super.getContentPane();
+ }
+
+ /**
+ * @generated
+ */
+ protected void setForegroundColor(Color color) {
+ if (primaryShape != null) {
+ primaryShape.setForegroundColor(color);
+ }
+ }
+
+ /**
+ * @generated
+ */
+ protected void setBackgroundColor(Color color) {
+ if (primaryShape != null) {
+ primaryShape.setBackgroundColor(color);
+ }
+ }
+
+ /**
+ * @generated
+ */
+ protected void setLineWidth(int width) {
+ if (primaryShape instanceof Shape) {
+ ((Shape) primaryShape).setLineWidth(width);
+ }
+ }
+
+ /**
+ * @generated
+ */
+ protected void setLineType(int style) {
+ if (primaryShape instanceof Shape) {
+ ((Shape) primaryShape).setLineStyle(style);
+ }
+ }
+
+ /**
+ * @generated
+ */
+ public EditPart getPrimaryChildEditPart() {
+ return getChildBySemanticHint(ComrelVisualIDRegistry
+ .getType(MultiOutputPortNameTypeEditPart.VISUAL_ID));
+ }
+
+ /**
+ * @generated
+ */
+ public List<IElementType> getMARelTypesOnSource() {
+ ArrayList<IElementType> types = new ArrayList<IElementType>(2);
+ types.add(ComrelElementTypes.MultiPortMapping_4002);
+ types.add(ComrelElementTypes.MultiSinglePortMapping_4003);
+ return types;
+ }
+
+ /**
+ * @generated
+ */
+ public List<IElementType> getMARelTypesOnSourceAndTarget(
+ IGraphicalEditPart targetEditPart) {
+ LinkedList<IElementType> types = new LinkedList<IElementType>();
+ if (targetEditPart instanceof MultiInputPortEditPart) {
+ types.add(ComrelElementTypes.MultiPortMapping_4002);
+ }
+ if (targetEditPart instanceof MultiInputPort2EditPart) {
+ types.add(ComrelElementTypes.MultiPortMapping_4002);
+ }
+ if (targetEditPart instanceof MultiInputPort3EditPart) {
+ types.add(ComrelElementTypes.MultiPortMapping_4002);
+ }
+ if (targetEditPart instanceof MultiInputPort4EditPart) {
+ types.add(ComrelElementTypes.MultiPortMapping_4002);
+ }
+ if (targetEditPart instanceof MultiInputPort5EditPart) {
+ types.add(ComrelElementTypes.MultiPortMapping_4002);
+ }
+ if (targetEditPart instanceof MultiInputPort6EditPart) {
+ types.add(ComrelElementTypes.MultiPortMapping_4002);
+ }
+ if (targetEditPart instanceof MultiInputPort7EditPart) {
+ types.add(ComrelElementTypes.MultiPortMapping_4002);
+ }
+ if (targetEditPart instanceof MultiInputPort8EditPart) {
+ types.add(ComrelElementTypes.MultiPortMapping_4002);
+ }
+ if (targetEditPart instanceof MultiInputPort9EditPart) {
+ types.add(ComrelElementTypes.MultiPortMapping_4002);
+ }
+ if (targetEditPart instanceof SingleInputPortEditPart) {
+ types.add(ComrelElementTypes.MultiSinglePortMapping_4003);
+ }
+ if (targetEditPart instanceof SingleInputPort2EditPart) {
+ types.add(ComrelElementTypes.MultiSinglePortMapping_4003);
+ }
+ if (targetEditPart instanceof SingleInputPort3EditPart) {
+ types.add(ComrelElementTypes.MultiSinglePortMapping_4003);
+ }
+ if (targetEditPart instanceof SingleInputPort4EditPart) {
+ types.add(ComrelElementTypes.MultiSinglePortMapping_4003);
+ }
+ if (targetEditPart instanceof SingleInputPort5EditPart) {
+ types.add(ComrelElementTypes.MultiSinglePortMapping_4003);
+ }
+ if (targetEditPart instanceof SingleInputPort6EditPart) {
+ types.add(ComrelElementTypes.MultiSinglePortMapping_4003);
+ }
+ if (targetEditPart instanceof SingleInputPort7EditPart) {
+ types.add(ComrelElementTypes.MultiSinglePortMapping_4003);
+ }
+ if (targetEditPart instanceof SingleInputPort8EditPart) {
+ types.add(ComrelElementTypes.MultiSinglePortMapping_4003);
+ }
+ if (targetEditPart instanceof SingleInputPort9EditPart) {
+ types.add(ComrelElementTypes.MultiSinglePortMapping_4003);
+ }
+ return types;
+ }
+
+ /**
+ * @generated
+ */
+ public List<IElementType> getMATypesForTarget(IElementType relationshipType) {
+ LinkedList<IElementType> types = new LinkedList<IElementType>();
+ if (relationshipType == ComrelElementTypes.MultiPortMapping_4002) {
+ types.add(ComrelElementTypes.MultiInputPort_3002);
+ types.add(ComrelElementTypes.MultiInputPort_3006);
+ types.add(ComrelElementTypes.MultiInputPort_3010);
+ types.add(ComrelElementTypes.MultiInputPort_3014);
+ types.add(ComrelElementTypes.MultiInputPort_3017);
+ types.add(ComrelElementTypes.MultiInputPort_3020);
+ types.add(ComrelElementTypes.MultiInputPort_3024);
+ types.add(ComrelElementTypes.MultiInputPort_3028);
+ types.add(ComrelElementTypes.MultiInputPort_3032);
+ } else if (relationshipType == ComrelElementTypes.MultiSinglePortMapping_4003) {
+ types.add(ComrelElementTypes.SingleInputPort_2001);
+ types.add(ComrelElementTypes.SingleInputPort_3001);
+ types.add(ComrelElementTypes.SingleInputPort_3005);
+ types.add(ComrelElementTypes.SingleInputPort_3009);
+ types.add(ComrelElementTypes.SingleInputPort_3013);
+ types.add(ComrelElementTypes.SingleInputPort_3023);
+ types.add(ComrelElementTypes.SingleInputPort_3027);
+ types.add(ComrelElementTypes.SingleInputPort_3031);
+ types.add(ComrelElementTypes.SingleInputPort_3035);
+ }
+ return types;
+ }
+
+ /**
+ * @generated NOT
+ */
+ public class MultiOutputPortFigure extends OutputPortFigure {
+
+ /**
+ * @generated
+ */
+ public MultiOutputPortFigure() {
+ this.setLineWidth(10);
+ this.setForegroundColor(THIS_FORE);
+ this.setPreferredSize(new Dimension(getMapMode().DPtoLP(20),
+ getMapMode().DPtoLP(20)));
+ this.setBorder(new MarginBorder(getMapMode().DPtoLP(5),
+ getMapMode().DPtoLP(5), getMapMode().DPtoLP(5),
+ getMapMode().DPtoLP(5)));
+ }
+
+ }
+
+ /**
+ * @generated
+ */
+ static final Color THIS_FORE = new Color(null, 255, 0, 0);
+
+}
diff --git a/org.eclipse.emf.refactor.comrel.diagram/src/comrel/diagram/edit/parts/MultiOutputPortNameType2EditPart.java b/org.eclipse.emf.refactor.comrel.diagram/src/comrel/diagram/edit/parts/MultiOutputPortNameType2EditPart.java
new file mode 100644
index 0000000..d8f67c7
--- /dev/null
+++ b/org.eclipse.emf.refactor.comrel.diagram/src/comrel/diagram/edit/parts/MultiOutputPortNameType2EditPart.java
@@ -0,0 +1,631 @@
+/*
+ *
+ */
+package comrel.diagram.edit.parts;
+
+import java.util.Collections;
+import java.util.List;
+
+import org.eclipse.draw2d.IFigure;
+import org.eclipse.draw2d.Label;
+import org.eclipse.draw2d.geometry.Point;
+import org.eclipse.draw2d.geometry.Rectangle;
+import org.eclipse.emf.common.notify.Notification;
+import org.eclipse.emf.ecore.EObject;
+import org.eclipse.emf.transaction.RunnableWithResult;
+import org.eclipse.gef.AccessibleEditPart;
+import org.eclipse.gef.EditPolicy;
+import org.eclipse.gef.Request;
+import org.eclipse.gef.requests.DirectEditRequest;
+import org.eclipse.gef.tools.DirectEditManager;
+import org.eclipse.gmf.runtime.common.ui.services.parser.IParser;
+import org.eclipse.gmf.runtime.common.ui.services.parser.IParserEditStatus;
+import org.eclipse.gmf.runtime.common.ui.services.parser.ParserEditStatus;
+import org.eclipse.gmf.runtime.common.ui.services.parser.ParserOptions;
+import org.eclipse.gmf.runtime.diagram.ui.editparts.IBorderItemEditPart;
+import org.eclipse.gmf.runtime.diagram.ui.editparts.IGraphicalEditPart;
+import org.eclipse.gmf.runtime.diagram.ui.editparts.ITextAwareEditPart;
+import org.eclipse.gmf.runtime.diagram.ui.editparts.LabelEditPart;
+import org.eclipse.gmf.runtime.diagram.ui.editpolicies.LabelDirectEditPolicy;
+import org.eclipse.gmf.runtime.diagram.ui.figures.IBorderItemLocator;
+import org.eclipse.gmf.runtime.diagram.ui.l10n.DiagramColorRegistry;
+import org.eclipse.gmf.runtime.diagram.ui.requests.RequestConstants;
+import org.eclipse.gmf.runtime.diagram.ui.tools.TextDirectEditManager;
+import org.eclipse.gmf.runtime.draw2d.ui.figures.WrappingLabel;
+import org.eclipse.gmf.runtime.emf.core.util.EObjectAdapter;
+import org.eclipse.gmf.runtime.emf.ui.services.parser.ISemanticParser;
+import org.eclipse.gmf.runtime.notation.FontStyle;
+import org.eclipse.gmf.runtime.notation.NotationPackage;
+import org.eclipse.gmf.runtime.notation.View;
+import org.eclipse.jface.text.contentassist.IContentAssistProcessor;
+import org.eclipse.jface.viewers.ICellEditorValidator;
+import org.eclipse.swt.SWT;
+import org.eclipse.swt.accessibility.AccessibleEvent;
+import org.eclipse.swt.graphics.Color;
+import org.eclipse.swt.graphics.FontData;
+import org.eclipse.swt.graphics.Image;
+
+import comrel.diagram.edit.policies.ComrelTextSelectionEditPolicy;
+import comrel.diagram.part.ComrelVisualIDRegistry;
+import comrel.diagram.providers.ComrelElementTypes;
+import comrel.diagram.providers.ComrelParserProvider;
+
+/**
+ * @generated
+ */
+public class MultiOutputPortNameType2EditPart extends LabelEditPart implements
+ ITextAwareEditPart, IBorderItemEditPart {
+
+ /**
+ * @generated
+ */
+ public static final int VISUAL_ID = 5018;
+
+ /**
+ * @generated
+ */
+ private DirectEditManager manager;
+
+ /**
+ * @generated
+ */
+ private IParser parser;
+
+ /**
+ * @generated
+ */
+ private List<?> parserElements;
+
+ /**
+ * @generated
+ */
+ private String defaultText;
+
+ /**
+ * @generated
+ */
+ static {
+ registerSnapBackPosition(
+ ComrelVisualIDRegistry
+ .getType(comrel.diagram.edit.parts.MultiOutputPortNameType2EditPart.VISUAL_ID),
+ new Point(0, 0));
+ }
+
+ /**
+ * @generated
+ */
+ public MultiOutputPortNameType2EditPart(View view) {
+ super(view);
+ }
+
+ /**
+ * @generated
+ */
+ protected void createDefaultEditPolicies() {
+ super.createDefaultEditPolicies();
+ installEditPolicy(EditPolicy.DIRECT_EDIT_ROLE,
+ new LabelDirectEditPolicy());
+ installEditPolicy(EditPolicy.SELECTION_FEEDBACK_ROLE,
+ new ComrelTextSelectionEditPolicy());
+ }
+
+ /**
+ * @generated
+ */
+ public IBorderItemLocator getBorderItemLocator() {
+ IFigure parentFigure = getFigure().getParent();
+ if (parentFigure != null && parentFigure.getLayoutManager() != null) {
+ Object constraint = parentFigure.getLayoutManager().getConstraint(
+ getFigure());
+ return (IBorderItemLocator) constraint;
+ }
+ return null;
+ }
+
+ /**
+ * @generated
+ */
+ public void refreshBounds() {
+ int x = ((Integer) getStructuralFeatureValue(NotationPackage.eINSTANCE
+ .getLocation_X())).intValue();
+ int y = ((Integer) getStructuralFeatureValue(NotationPackage.eINSTANCE
+ .getLocation_Y())).intValue();
+ int width = ((Integer) getStructuralFeatureValue(NotationPackage.eINSTANCE
+ .getSize_Width())).intValue();
+ int height = ((Integer) getStructuralFeatureValue(NotationPackage.eINSTANCE
+ .getSize_Height())).intValue();
+ getBorderItemLocator()
+ .setConstraint(new Rectangle(x, y, width, height));
+ }
+
+ /**
+ * @generated
+ */
+ protected String getLabelTextHelper(IFigure figure) {
+ if (figure instanceof WrappingLabel) {
+ return ((WrappingLabel) figure).getText();
+ } else {
+ return ((Label) figure).getText();
+ }
+ }
+
+ /**
+ * @generated NOT
+ */
+ protected void setLabelTextHelper(IFigure figure, String text) {
+ int posDot = -1;
+ int posDouble = -1;
+ posDot = text.lastIndexOf(".");
+ posDouble = text.indexOf(":");
+ if (posDot > -1 && posDouble > -1) {
+ String first = text.substring(0, posDouble + 1);
+ String second = text.substring(posDot + 1);
+ text = first + second;
+ }
+ if (figure instanceof WrappingLabel) {
+ ((WrappingLabel) figure).setText(text);
+ } else {
+ ((Label) figure).setText(text);
+ }
+ }
+
+ /**
+ * @generated
+ */
+ protected Image getLabelIconHelper(IFigure figure) {
+ if (figure instanceof WrappingLabel) {
+ return ((WrappingLabel) figure).getIcon();
+ } else {
+ return ((Label) figure).getIcon();
+ }
+ }
+
+ /**
+ * @generated
+ */
+ protected void setLabelIconHelper(IFigure figure, Image icon) {
+ if (figure instanceof WrappingLabel) {
+ ((WrappingLabel) figure).setIcon(icon);
+ } else {
+ ((Label) figure).setIcon(icon);
+ }
+ }
+
+ /**
+ * @generated
+ */
+ public void setLabel(IFigure figure) {
+ unregisterVisuals();
+ setFigure(figure);
+ defaultText = getLabelTextHelper(figure);
+ registerVisuals();
+ refreshVisuals();
+ }
+
+ /**
+ * @generated
+ */
+ @SuppressWarnings("rawtypes")
+ protected List getModelChildren() {
+ return Collections.EMPTY_LIST;
+ }
+
+ /**
+ * @generated
+ */
+ public IGraphicalEditPart getChildBySemanticHint(String semanticHint) {
+ return null;
+ }
+
+ /**
+ * @generated
+ */
+ protected EObject getParserElement() {
+ return resolveSemanticElement();
+ }
+
+ /**
+ * @generated
+ */
+ protected Image getLabelIcon() {
+ return null;
+ }
+
+ /**
+ * @generated
+ */
+ protected String getLabelText() {
+ String text = null;
+ EObject parserElement = getParserElement();
+ if (parserElement != null && getParser() != null) {
+ text = getParser().getPrintString(
+ new EObjectAdapter(parserElement),
+ getParserOptions().intValue());
+ }
+ if (text == null || text.length() == 0) {
+ text = defaultText;
+ }
+ return text;
+ }
+
+ /**
+ * @generated
+ */
+ public void setLabelText(String text) {
+ setLabelTextHelper(getFigure(), text);
+ Object pdEditPolicy = getEditPolicy(EditPolicy.PRIMARY_DRAG_ROLE);
+ if (pdEditPolicy instanceof ComrelTextSelectionEditPolicy) {
+ ((ComrelTextSelectionEditPolicy) pdEditPolicy).refreshFeedback();
+ }
+ Object sfEditPolicy = getEditPolicy(EditPolicy.SELECTION_FEEDBACK_ROLE);
+ if (sfEditPolicy instanceof ComrelTextSelectionEditPolicy) {
+ ((ComrelTextSelectionEditPolicy) sfEditPolicy).refreshFeedback();
+ }
+ }
+
+ /**
+ * @generated
+ */
+ public String getEditText() {
+ if (getParserElement() == null || getParser() == null) {
+ return ""; //$NON-NLS-1$
+ }
+ return getParser().getEditString(
+ new EObjectAdapter(getParserElement()),
+ getParserOptions().intValue());
+ }
+
+ /**
+ * @generated
+ */
+ protected boolean isEditable() {
+ return getParser() != null;
+ }
+
+ /**
+ * @generated
+ */
+ public ICellEditorValidator getEditTextValidator() {
+ return new ICellEditorValidator() {
+
+ public String isValid(final Object value) {
+ if (value instanceof String) {
+ final EObject element = getParserElement();
+ final IParser parser = getParser();
+ try {
+ IParserEditStatus valid = (IParserEditStatus) getEditingDomain()
+ .runExclusive(
+ new RunnableWithResult.Impl<IParserEditStatus>() {
+
+ public void run() {
+ setResult(parser
+ .isValidEditString(
+ new EObjectAdapter(
+ element),
+ (String) value));
+ }
+ });
+ return valid.getCode() == ParserEditStatus.EDITABLE ? null
+ : valid.getMessage();
+ } catch (InterruptedException ie) {
+ ie.printStackTrace();
+ }
+ }
+
+ // shouldn't get here
+ return null;
+ }
+ };
+ }
+
+ /**
+ * @generated
+ */
+ public IContentAssistProcessor getCompletionProcessor() {
+ if (getParserElement() == null || getParser() == null) {
+ return null;
+ }
+ return getParser().getCompletionProcessor(
+ new EObjectAdapter(getParserElement()));
+ }
+
+ /**
+ * @generated
+ */
+ public ParserOptions getParserOptions() {
+ return ParserOptions.NONE;
+ }
+
+ /**
+ * @generated
+ */
+ public IParser getParser() {
+ if (parser == null) {
+ parser = ComrelParserProvider
+ .getParser(
+ ComrelElementTypes.MultiOutputPort_3021,
+ getParserElement(),
+ ComrelVisualIDRegistry
+ .getType(comrel.diagram.edit.parts.MultiOutputPortNameType2EditPart.VISUAL_ID));
+ }
+ return parser;
+ }
+
+ /**
+ * @generated
+ */
+ protected DirectEditManager getManager() {
+ if (manager == null) {
+ setManager(new TextDirectEditManager(this,
+ TextDirectEditManager.getTextCellEditorClass(this),
+ ComrelEditPartFactory.getTextCellEditorLocator(this)));
+ }
+ return manager;
+ }
+
+ /**
+ * @generated
+ */
+ protected void setManager(DirectEditManager manager) {
+ this.manager = manager;
+ }
+
+ /**
+ * @generated
+ */
+ protected void performDirectEdit() {
+ getManager().show();
+ }
+
+ /**
+ * @generated
+ */
+ protected void performDirectEdit(Point eventLocation) {
+ if (getManager().getClass() == TextDirectEditManager.class) {
+ ((TextDirectEditManager) getManager()).show(eventLocation
+ .getSWTPoint());
+ }
+ }
+
+ /**
+ * @generated
+ */
+ private void performDirectEdit(char initialCharacter) {
+ if (getManager() instanceof TextDirectEditManager) {
+ ((TextDirectEditManager) getManager()).show(initialCharacter);
+ } else {
+ performDirectEdit();
+ }
+ }
+
+ /**
+ * @generated
+ */
+ protected void performDirectEditRequest(Request request) {
+ final Request theRequest = request;
+ try {
+ getEditingDomain().runExclusive(new Runnable() {
+
+ public void run() {
+ if (isActive() && isEditable()) {
+ if (theRequest
+ .getExtendedData()
+ .get(RequestConstants.REQ_DIRECTEDIT_EXTENDEDDATA_INITIAL_CHAR) instanceof Character) {
+ Character initialChar = (Character) theRequest
+ .getExtendedData()
+ .get(RequestConstants.REQ_DIRECTEDIT_EXTENDEDDATA_INITIAL_CHAR);
+ performDirectEdit(initialChar.charValue());
+ } else if ((theRequest instanceof DirectEditRequest)
+ && (getEditText().equals(getLabelText()))) {
+ DirectEditRequest editRequest = (DirectEditRequest) theRequest;
+ performDirectEdit(editRequest.getLocation());
+ } else {
+ performDirectEdit();
+ }
+ }
+ }
+ });
+ } catch (InterruptedException e) {
+ e.printStackTrace();
+ }
+ }
+
+ /**
+ * @generated
+ */
+ protected void refreshVisuals() {
+ super.refreshVisuals();
+ refreshLabel();
+ refreshFont();
+ refreshFontColor();
+ refreshUnderline();
+ refreshStrikeThrough();
+ }
+
+ /**
+ * @generated
+ */
+ protected void refreshLabel() {
+ setLabelTextHelper(getFigure(), getLabelText());
+ setLabelIconHelper(getFigure(), getLabelIcon());
+ Object pdEditPolicy = getEditPolicy(EditPolicy.PRIMARY_DRAG_ROLE);
+ if (pdEditPolicy instanceof ComrelTextSelectionEditPolicy) {
+ ((ComrelTextSelectionEditPolicy) pdEditPolicy).refreshFeedback();
+ }
+ Object sfEditPolicy = getEditPolicy(EditPolicy.SELECTION_FEEDBACK_ROLE);
+ if (sfEditPolicy instanceof ComrelTextSelectionEditPolicy) {
+ ((ComrelTextSelectionEditPolicy) sfEditPolicy).refreshFeedback();
+ }
+ }
+
+ /**
+ * @generated
+ */
+ protected void refreshUnderline() {
+ FontStyle style = (FontStyle) getFontStyleOwnerView().getStyle(
+ NotationPackage.eINSTANCE.getFontStyle());
+ if (style != null && getFigure() instanceof WrappingLabel) {
+ ((WrappingLabel) getFigure()).setTextUnderline(style.isUnderline());
+ }
+ }
+
+ /**
+ * @generated
+ */
+ protected void refreshStrikeThrough() {
+ FontStyle style = (FontStyle) getFontStyleOwnerView().getStyle(
+ NotationPackage.eINSTANCE.getFontStyle());
+ if (style != null && getFigure() instanceof WrappingLabel) {
+ ((WrappingLabel) getFigure()).setTextStrikeThrough(style
+ .isStrikeThrough());
+ }
+ }
+
+ /**
+ * @generated
+ */
+ protected void refreshFont() {
+ FontStyle style = (FontStyle) getFontStyleOwnerView().getStyle(
+ NotationPackage.eINSTANCE.getFontStyle());
+ if (style != null) {
+ FontData fontData = new FontData(style.getFontName(),
+ style.getFontHeight(), (style.isBold() ? SWT.BOLD
+ : SWT.NORMAL)
+ | (style.isItalic() ? SWT.ITALIC : SWT.NORMAL));
+ setFont(fontData);
+ }
+ }
+
+ /**
+ * @generated
+ */
+ protected void setFontColor(Color color) {
+ getFigure().setForegroundColor(color);
+ }
+
+ /**
+ * @generated
+ */
+ protected void addSemanticListeners() {
+ if (getParser() instanceof ISemanticParser) {
+ EObject element = resolveSemanticElement();
+ parserElements = ((ISemanticParser) getParser())
+ .getSemanticElementsBeingParsed(element);
+ for (int i = 0; i < parserElements.size(); i++) {
+ addListenerFilter(
+ "SemanticModel" + i, this, (EObject) parserElements.get(i)); //$NON-NLS-1$
+ }
+ } else {
+ super.addSemanticListeners();
+ }
+ }
+
+ /**
+ * @generated
+ */
+ protected void removeSemanticListeners() {
+ if (parserElements != null) {
+ for (int i = 0; i < parserElements.size(); i++) {
+ removeListenerFilter("SemanticModel" + i); //$NON-NLS-1$
+ }
+ } else {
+ super.removeSemanticListeners();
+ }
+ }
+
+ /**
+ * @generated
+ */
+ protected AccessibleEditPart getAccessibleEditPart() {
+ if (accessibleEP == null) {
+ accessibleEP = new AccessibleGraphicalEditPart() {
+
+ public void getName(AccessibleEvent e) {
+ e.result = getLabelTextHelper(getFigure());
+ }
+ };
+ }
+ return accessibleEP;
+ }
+
+ /**
+ * @generated
+ */
+ private View getFontStyleOwnerView() {
+ return getPrimaryView();
+ }
+
+ /**
+ * @generated
+ */
+ protected void handleNotificationEvent(Notification event) {
+ Object feature = event.getFeature();
+ if (NotationPackage.eINSTANCE.getFontStyle_FontColor().equals(feature)) {
+ Integer c = (Integer) event.getNewValue();
+ setFontColor(DiagramColorRegistry.getInstance().getColor(c));
+ } else if (NotationPackage.eINSTANCE.getFontStyle_Underline().equals(
+ feature)) {
+ refreshUnderline();
+ } else if (NotationPackage.eINSTANCE.getFontStyle_StrikeThrough()
+ .equals(feature)) {
+ refreshStrikeThrough();
+ } else if (NotationPackage.eINSTANCE.getFontStyle_FontHeight().equals(
+ feature)
+ || NotationPackage.eINSTANCE.getFontStyle_FontName().equals(
+ feature)
+ || NotationPackage.eINSTANCE.getFontStyle_Bold()
+ .equals(feature)
+ || NotationPackage.eINSTANCE.getFontStyle_Italic().equals(
+ feature)) {
+ refreshFont();
+ } else {
+ if (getParser() != null
+ && getParser().isAffectingEvent(event,
+ getParserOptions().intValue())) {
+ refreshLabel();
+ }
+ if (getParser() instanceof ISemanticParser) {
+ ISemanticParser modelParser = (ISemanticParser) getParser();
+ if (modelParser.areSemanticElementsAffected(null, event)) {
+ removeSemanticListeners();
+ if (resolveSemanticElement() != null) {
+ addSemanticListeners();
+ }
+ refreshLabel();
+ }
+ }
+ }
+ super.handleNotificationEvent(event);
+ }
+
+ /**
+ * @generated
+ */
+ protected IFigure createFigure() {
+ IFigure label = createFigurePrim();
+ defaultText = getLabelTextHelper(label);
+ return label;
+ }
+
+ /**
+ * @generated
+ */
+ protected IFigure createFigurePrim() {
+ return new MultiOutputPortLabelFigure();
+ }
+
+ /**
+ * @generated
+ */
+ public class MultiOutputPortLabelFigure extends WrappingLabel {
+
+ /**
+ * @generated
+ */
+ public MultiOutputPortLabelFigure() {
+ this.setText("MultiOutputPort");
+ }
+
+ }
+
+}
diff --git a/org.eclipse.emf.refactor.comrel.diagram/src/comrel/diagram/edit/parts/MultiOutputPortNameTypeEditPart.java b/org.eclipse.emf.refactor.comrel.diagram/src/comrel/diagram/edit/parts/MultiOutputPortNameTypeEditPart.java
new file mode 100644
index 0000000..dd53007
--- /dev/null
+++ b/org.eclipse.emf.refactor.comrel.diagram/src/comrel/diagram/edit/parts/MultiOutputPortNameTypeEditPart.java
@@ -0,0 +1,631 @@
+/*
+ *
+ */
+package comrel.diagram.edit.parts;
+
+import java.util.Collections;
+import java.util.List;
+
+import org.eclipse.draw2d.IFigure;
+import org.eclipse.draw2d.Label;
+import org.eclipse.draw2d.geometry.Point;
+import org.eclipse.draw2d.geometry.Rectangle;
+import org.eclipse.emf.common.notify.Notification;
+import org.eclipse.emf.ecore.EObject;
+import org.eclipse.emf.transaction.RunnableWithResult;
+import org.eclipse.gef.AccessibleEditPart;
+import org.eclipse.gef.EditPolicy;
+import org.eclipse.gef.Request;
+import org.eclipse.gef.requests.DirectEditRequest;
+import org.eclipse.gef.tools.DirectEditManager;
+import org.eclipse.gmf.runtime.common.ui.services.parser.IParser;
+import org.eclipse.gmf.runtime.common.ui.services.parser.IParserEditStatus;
+import org.eclipse.gmf.runtime.common.ui.services.parser.ParserEditStatus;
+import org.eclipse.gmf.runtime.common.ui.services.parser.ParserOptions;
+import org.eclipse.gmf.runtime.diagram.ui.editparts.IBorderItemEditPart;
+import org.eclipse.gmf.runtime.diagram.ui.editparts.IGraphicalEditPart;
+import org.eclipse.gmf.runtime.diagram.ui.editparts.ITextAwareEditPart;
+import org.eclipse.gmf.runtime.diagram.ui.editparts.LabelEditPart;
+import org.eclipse.gmf.runtime.diagram.ui.editpolicies.LabelDirectEditPolicy;
+import org.eclipse.gmf.runtime.diagram.ui.figures.IBorderItemLocator;
+import org.eclipse.gmf.runtime.diagram.ui.l10n.DiagramColorRegistry;
+import org.eclipse.gmf.runtime.diagram.ui.requests.RequestConstants;
+import org.eclipse.gmf.runtime.diagram.ui.tools.TextDirectEditManager;
+import org.eclipse.gmf.runtime.draw2d.ui.figures.WrappingLabel;
+import org.eclipse.gmf.runtime.emf.core.util.EObjectAdapter;
+import org.eclipse.gmf.runtime.emf.ui.services.parser.ISemanticParser;
+import org.eclipse.gmf.runtime.notation.FontStyle;
+import org.eclipse.gmf.runtime.notation.NotationPackage;
+import org.eclipse.gmf.runtime.notation.View;
+import org.eclipse.jface.text.contentassist.IContentAssistProcessor;
+import org.eclipse.jface.viewers.ICellEditorValidator;
+import org.eclipse.swt.SWT;
+import org.eclipse.swt.accessibility.AccessibleEvent;
+import org.eclipse.swt.graphics.Color;
+import org.eclipse.swt.graphics.FontData;
+import org.eclipse.swt.graphics.Image;
+
+import comrel.diagram.edit.policies.ComrelTextSelectionEditPolicy;
+import comrel.diagram.part.ComrelVisualIDRegistry;
+import comrel.diagram.providers.ComrelElementTypes;
+import comrel.diagram.providers.ComrelParserProvider;
+
+/**
+ * @generated
+ */
+public class MultiOutputPortNameTypeEditPart extends LabelEditPart implements
+ ITextAwareEditPart, IBorderItemEditPart {
+
+ /**
+ * @generated
+ */
+ public static final int VISUAL_ID = 5012;
+
+ /**
+ * @generated
+ */
+ private DirectEditManager manager;
+
+ /**
+ * @generated
+ */
+ private IParser parser;
+
+ /**
+ * @generated
+ */
+ private List<?> parserElements;
+
+ /**
+ * @generated
+ */
+ private String defaultText;
+
+ /**
+ * @generated
+ */
+ static {
+ registerSnapBackPosition(
+ ComrelVisualIDRegistry
+ .getType(comrel.diagram.edit.parts.MultiOutputPortNameTypeEditPart.VISUAL_ID),
+ new Point(0, 0));
+ }
+
+ /**
+ * @generated
+ */
+ public MultiOutputPortNameTypeEditPart(View view) {
+ super(view);
+ }
+
+ /**
+ * @generated
+ */
+ protected void createDefaultEditPolicies() {
+ super.createDefaultEditPolicies();
+ installEditPolicy(EditPolicy.DIRECT_EDIT_ROLE,
+ new LabelDirectEditPolicy());
+ installEditPolicy(EditPolicy.SELECTION_FEEDBACK_ROLE,
+ new ComrelTextSelectionEditPolicy());
+ }
+
+ /**
+ * @generated
+ */
+ public IBorderItemLocator getBorderItemLocator() {
+ IFigure parentFigure = getFigure().getParent();
+ if (parentFigure != null && parentFigure.getLayoutManager() != null) {
+ Object constraint = parentFigure.getLayoutManager().getConstraint(
+ getFigure());
+ return (IBorderItemLocator) constraint;
+ }
+ return null;
+ }
+
+ /**
+ * @generated
+ */
+ public void refreshBounds() {
+ int x = ((Integer) getStructuralFeatureValue(NotationPackage.eINSTANCE
+ .getLocation_X())).intValue();
+ int y = ((Integer) getStructuralFeatureValue(NotationPackage.eINSTANCE
+ .getLocation_Y())).intValue();
+ int width = ((Integer) getStructuralFeatureValue(NotationPackage.eINSTANCE
+ .getSize_Width())).intValue();
+ int height = ((Integer) getStructuralFeatureValue(NotationPackage.eINSTANCE
+ .getSize_Height())).intValue();
+ getBorderItemLocator()
+ .setConstraint(new Rectangle(x, y, width, height));
+ }
+
+ /**
+ * @generated
+ */
+ protected String getLabelTextHelper(IFigure figure) {
+ if (figure instanceof WrappingLabel) {
+ return ((WrappingLabel) figure).getText();
+ } else {
+ return ((Label) figure).getText();
+ }
+ }
+
+ /**
+ * @generated NOT
+ */
+ protected void setLabelTextHelper(IFigure figure, String text) {
+ int posDot = -1;
+ int posDouble = -1;
+ posDot = text.lastIndexOf(".");
+ posDouble = text.indexOf(":");
+ if (posDot > -1 && posDouble > -1) {
+ String first = text.substring(0, posDouble + 1);
+ String second = text.substring(posDot + 1);
+ text = first + second;
+ }
+ if (figure instanceof WrappingLabel) {
+ ((WrappingLabel) figure).setText(text);
+ } else {
+ ((Label) figure).setText(text);
+ }
+ }
+
+ /**
+ * @generated
+ */
+ protected Image getLabelIconHelper(IFigure figure) {
+ if (figure instanceof WrappingLabel) {
+ return ((WrappingLabel) figure).getIcon();
+ } else {
+ return ((Label) figure).getIcon();
+ }
+ }
+
+ /**
+ * @generated
+ */
+ protected void setLabelIconHelper(IFigure figure, Image icon) {
+ if (figure instanceof WrappingLabel) {
+ ((WrappingLabel) figure).setIcon(icon);
+ } else {
+ ((Label) figure).setIcon(icon);
+ }
+ }
+
+ /**
+ * @generated
+ */
+ public void setLabel(IFigure figure) {
+ unregisterVisuals();
+ setFigure(figure);
+ defaultText = getLabelTextHelper(figure);
+ registerVisuals();
+ refreshVisuals();
+ }
+
+ /**
+ * @generated
+ */
+ @SuppressWarnings("rawtypes")
+ protected List getModelChildren() {
+ return Collections.EMPTY_LIST;
+ }
+
+ /**
+ * @generated
+ */
+ public IGraphicalEditPart getChildBySemanticHint(String semanticHint) {
+ return null;
+ }
+
+ /**
+ * @generated
+ */
+ protected EObject getParserElement() {
+ return resolveSemanticElement();
+ }
+
+ /**
+ * @generated
+ */
+ protected Image getLabelIcon() {
+ return null;
+ }
+
+ /**
+ * @generated
+ */
+ protected String getLabelText() {
+ String text = null;
+ EObject parserElement = getParserElement();
+ if (parserElement != null && getParser() != null) {
+ text = getParser().getPrintString(
+ new EObjectAdapter(parserElement),
+ getParserOptions().intValue());
+ }
+ if (text == null || text.length() == 0) {
+ text = defaultText;
+ }
+ return text;
+ }
+
+ /**
+ * @generated
+ */
+ public void setLabelText(String text) {
+ setLabelTextHelper(getFigure(), text);
+ Object pdEditPolicy = getEditPolicy(EditPolicy.PRIMARY_DRAG_ROLE);
+ if (pdEditPolicy instanceof ComrelTextSelectionEditPolicy) {
+ ((ComrelTextSelectionEditPolicy) pdEditPolicy).refreshFeedback();
+ }
+ Object sfEditPolicy = getEditPolicy(EditPolicy.SELECTION_FEEDBACK_ROLE);
+ if (sfEditPolicy instanceof ComrelTextSelectionEditPolicy) {
+ ((ComrelTextSelectionEditPolicy) sfEditPolicy).refreshFeedback();
+ }
+ }
+
+ /**
+ * @generated
+ */
+ public String getEditText() {
+ if (getParserElement() == null || getParser() == null) {
+ return ""; //$NON-NLS-1$
+ }
+ return getParser().getEditString(
+ new EObjectAdapter(getParserElement()),
+ getParserOptions().intValue());
+ }
+
+ /**
+ * @generated
+ */
+ protected boolean isEditable() {
+ return getParser() != null;
+ }
+
+ /**
+ * @generated
+ */
+ public ICellEditorValidator getEditTextValidator() {
+ return new ICellEditorValidator() {
+
+ public String isValid(final Object value) {
+ if (value instanceof String) {
+ final EObject element = getParserElement();
+ final IParser parser = getParser();
+ try {
+ IParserEditStatus valid = (IParserEditStatus) getEditingDomain()
+ .runExclusive(
+ new RunnableWithResult.Impl<IParserEditStatus>() {
+
+ public void run() {
+ setResult(parser
+ .isValidEditString(
+ new EObjectAdapter(
+ element),
+ (String) value));
+ }
+ });
+ return valid.getCode() == ParserEditStatus.EDITABLE ? null
+ : valid.getMessage();
+ } catch (InterruptedException ie) {
+ ie.printStackTrace();
+ }
+ }
+
+ // shouldn't get here
+ return null;
+ }
+ };
+ }
+
+ /**
+ * @generated
+ */
+ public IContentAssistProcessor getCompletionProcessor() {
+ if (getParserElement() == null || getParser() == null) {
+ return null;
+ }
+ return getParser().getCompletionProcessor(
+ new EObjectAdapter(getParserElement()));
+ }
+
+ /**
+ * @generated
+ */
+ public ParserOptions getParserOptions() {
+ return ParserOptions.NONE;
+ }
+
+ /**
+ * @generated
+ */
+ public IParser getParser() {
+ if (parser == null) {
+ parser = ComrelParserProvider
+ .getParser(
+ ComrelElementTypes.MultiOutputPort_3015,
+ getParserElement(),
+ ComrelVisualIDRegistry
+ .getType(comrel.diagram.edit.parts.MultiOutputPortNameTypeEditPart.VISUAL_ID));
+ }
+ return parser;
+ }
+
+ /**
+ * @generated
+ */
+ protected DirectEditManager getManager() {
+ if (manager == null) {
+ setManager(new TextDirectEditManager(this,
+ TextDirectEditManager.getTextCellEditorClass(this),
+ ComrelEditPartFactory.getTextCellEditorLocator(this)));
+ }
+ return manager;
+ }
+
+ /**
+ * @generated
+ */
+ protected void setManager(DirectEditManager manager) {
+ this.manager = manager;
+ }
+
+ /**
+ * @generated
+ */
+ protected void performDirectEdit() {
+ getManager().show();
+ }
+
+ /**
+ * @generated
+ */
+ protected void performDirectEdit(Point eventLocation) {
+ if (getManager().getClass() == TextDirectEditManager.class) {
+ ((TextDirectEditManager) getManager()).show(eventLocation
+ .getSWTPoint());
+ }
+ }
+
+ /**
+ * @generated
+ */
+ private void performDirectEdit(char initialCharacter) {
+ if (getManager() instanceof TextDirectEditManager) {
+ ((TextDirectEditManager) getManager()).show(initialCharacter);
+ } else {
+ performDirectEdit();
+ }
+ }
+
+ /**
+ * @generated
+ */
+ protected void performDirectEditRequest(Request request) {
+ final Request theRequest = request;
+ try {
+ getEditingDomain().runExclusive(new Runnable() {
+
+ public void run() {
+ if (isActive() && isEditable()) {
+ if (theRequest
+ .getExtendedData()
+ .get(RequestConstants.REQ_DIRECTEDIT_EXTENDEDDATA_INITIAL_CHAR) instanceof Character) {
+ Character initialChar = (Character) theRequest
+ .getExtendedData()
+ .get(RequestConstants.REQ_DIRECTEDIT_EXTENDEDDATA_INITIAL_CHAR);
+ performDirectEdit(initialChar.charValue());
+ } else if ((theRequest instanceof DirectEditRequest)
+ && (getEditText().equals(getLabelText()))) {
+ DirectEditRequest editRequest = (DirectEditRequest) theRequest;
+ performDirectEdit(editRequest.getLocation());
+ } else {
+ performDirectEdit();
+ }
+ }
+ }
+ });
+ } catch (InterruptedException e) {
+ e.printStackTrace();
+ }
+ }
+
+ /**
+ * @generated
+ */
+ protected void refreshVisuals() {
+ super.refreshVisuals();
+ refreshLabel();
+ refreshFont();
+ refreshFontColor();
+ refreshUnderline();
+ refreshStrikeThrough();
+ }
+
+ /**
+ * @generated
+ */
+ protected void refreshLabel() {
+ setLabelTextHelper(getFigure(), getLabelText());
+ setLabelIconHelper(getFigure(), getLabelIcon());
+ Object pdEditPolicy = getEditPolicy(EditPolicy.PRIMARY_DRAG_ROLE);
+ if (pdEditPolicy instanceof ComrelTextSelectionEditPolicy) {
+ ((ComrelTextSelectionEditPolicy) pdEditPolicy).refreshFeedback();
+ }
+ Object sfEditPolicy = getEditPolicy(EditPolicy.SELECTION_FEEDBACK_ROLE);
+ if (sfEditPolicy instanceof ComrelTextSelectionEditPolicy) {
+ ((ComrelTextSelectionEditPolicy) sfEditPolicy).refreshFeedback();
+ }
+ }
+
+ /**
+ * @generated
+ */
+ protected void refreshUnderline() {
+ FontStyle style = (FontStyle) getFontStyleOwnerView().getStyle(
+ NotationPackage.eINSTANCE.getFontStyle());
+ if (style != null && getFigure() instanceof WrappingLabel) {
+ ((WrappingLabel) getFigure()).setTextUnderline(style.isUnderline());
+ }
+ }
+
+ /**
+ * @generated
+ */
+ protected void refreshStrikeThrough() {
+ FontStyle style = (FontStyle) getFontStyleOwnerView().getStyle(
+ NotationPackage.eINSTANCE.getFontStyle());
+ if (style != null && getFigure() instanceof WrappingLabel) {
+ ((WrappingLabel) getFigure()).setTextStrikeThrough(style
+ .isStrikeThrough());
+ }
+ }
+
+ /**
+ * @generated
+ */
+ protected void refreshFont() {
+ FontStyle style = (FontStyle) getFontStyleOwnerView().getStyle(
+ NotationPackage.eINSTANCE.getFontStyle());
+ if (style != null) {
+ FontData fontData = new FontData(style.getFontName(),
+ style.getFontHeight(), (style.isBold() ? SWT.BOLD
+ : SWT.NORMAL)
+ | (style.isItalic() ? SWT.ITALIC : SWT.NORMAL));
+ setFont(fontData);
+ }
+ }
+
+ /**
+ * @generated
+ */
+ protected void setFontColor(Color color) {
+ getFigure().setForegroundColor(color);
+ }
+
+ /**
+ * @generated
+ */
+ protected void addSemanticListeners() {
+ if (getParser() instanceof ISemanticParser) {
+ EObject element = resolveSemanticElement();
+ parserElements = ((ISemanticParser) getParser())
+ .getSemanticElementsBeingParsed(element);
+ for (int i = 0; i < parserElements.size(); i++) {
+ addListenerFilter(
+ "SemanticModel" + i, this, (EObject) parserElements.get(i)); //$NON-NLS-1$
+ }
+ } else {
+ super.addSemanticListeners();
+ }
+ }
+
+ /**
+ * @generated
+ */
+ protected void removeSemanticListeners() {
+ if (parserElements != null) {
+ for (int i = 0; i < parserElements.size(); i++) {
+ removeListenerFilter("SemanticModel" + i); //$NON-NLS-1$
+ }
+ } else {
+ super.removeSemanticListeners();
+ }
+ }
+
+ /**
+ * @generated
+ */
+ protected AccessibleEditPart getAccessibleEditPart() {
+ if (accessibleEP == null) {
+ accessibleEP = new AccessibleGraphicalEditPart() {
+
+ public void getName(AccessibleEvent e) {
+ e.result = getLabelTextHelper(getFigure());
+ }
+ };
+ }
+ return accessibleEP;
+ }
+
+ /**
+ * @generated
+ */
+ private View getFontStyleOwnerView() {
+ return getPrimaryView();
+ }
+
+ /**
+ * @generated
+ */
+ protected void handleNotificationEvent(Notification event) {
+ Object feature = event.getFeature();
+ if (NotationPackage.eINSTANCE.getFontStyle_FontColor().equals(feature)) {
+ Integer c = (Integer) event.getNewValue();
+ setFontColor(DiagramColorRegistry.getInstance().getColor(c));
+ } else if (NotationPackage.eINSTANCE.getFontStyle_Underline().equals(
+ feature)) {
+ refreshUnderline();
+ } else if (NotationPackage.eINSTANCE.getFontStyle_StrikeThrough()
+ .equals(feature)) {
+ refreshStrikeThrough();
+ } else if (NotationPackage.eINSTANCE.getFontStyle_FontHeight().equals(
+ feature)
+ || NotationPackage.eINSTANCE.getFontStyle_FontName().equals(
+ feature)
+ || NotationPackage.eINSTANCE.getFontStyle_Bold()
+ .equals(feature)
+ || NotationPackage.eINSTANCE.getFontStyle_Italic().equals(
+ feature)) {
+ refreshFont();
+ } else {
+ if (getParser() != null
+ && getParser().isAffectingEvent(event,
+ getParserOptions().intValue())) {
+ refreshLabel();
+ }
+ if (getParser() instanceof ISemanticParser) {
+ ISemanticParser modelParser = (ISemanticParser) getParser();
+ if (modelParser.areSemanticElementsAffected(null, event)) {
+ removeSemanticListeners();
+ if (resolveSemanticElement() != null) {
+ addSemanticListeners();
+ }
+ refreshLabel();
+ }
+ }
+ }
+ super.handleNotificationEvent(event);
+ }
+
+ /**
+ * @generated
+ */
+ protected IFigure createFigure() {
+ IFigure label = createFigurePrim();
+ defaultText = getLabelTextHelper(label);
+ return label;
+ }
+
+ /**
+ * @generated
+ */
+ protected IFigure createFigurePrim() {
+ return new MultiOutputPortLabelFigure();
+ }
+
+ /**
+ * @generated
+ */
+ public class MultiOutputPortLabelFigure extends WrappingLabel {
+
+ /**
+ * @generated
+ */
+ public MultiOutputPortLabelFigure() {
+ this.setText("MultiOutputPort");
+ }
+
+ }
+
+}
diff --git a/org.eclipse.emf.refactor.comrel.diagram/src/comrel/diagram/edit/parts/MultiPortMappingEditPart.java b/org.eclipse.emf.refactor.comrel.diagram/src/comrel/diagram/edit/parts/MultiPortMappingEditPart.java
new file mode 100644
index 0000000..1368a86
--- /dev/null
+++ b/org.eclipse.emf.refactor.comrel.diagram/src/comrel/diagram/edit/parts/MultiPortMappingEditPart.java
@@ -0,0 +1,95 @@
+/*
+ *
+ */
+package comrel.diagram.edit.parts;
+
+import org.eclipse.draw2d.Connection;
+import org.eclipse.draw2d.Graphics;
+import org.eclipse.draw2d.PolylineDecoration;
+import org.eclipse.draw2d.RotatableDecoration;
+import org.eclipse.gmf.runtime.diagram.ui.editparts.ConnectionNodeEditPart;
+import org.eclipse.gmf.runtime.diagram.ui.editparts.ITreeBranchEditPart;
+import org.eclipse.gmf.runtime.diagram.ui.editpolicies.EditPolicyRoles;
+import org.eclipse.gmf.runtime.draw2d.ui.figures.PolylineConnectionEx;
+import org.eclipse.gmf.runtime.notation.View;
+
+import comrel.PortMapping;
+import comrel.diagram.edit.policies.MultiPortMappingItemSemanticEditPolicy;
+import comrel.figures.PortMappingFigure;
+
+/**
+ * @generated
+ */
+public class MultiPortMappingEditPart extends ConnectionNodeEditPart implements
+ ITreeBranchEditPart {
+
+ /**
+ * @generated
+ */
+ public static final int VISUAL_ID = 4002;
+
+ /**
+ * @generated
+ */
+ public MultiPortMappingEditPart(View view) {
+ super(view);
+ }
+
+ /**
+ * @generated
+ */
+ protected void createDefaultEditPolicies() {
+ super.createDefaultEditPolicies();
+ installEditPolicy(EditPolicyRoles.SEMANTIC_ROLE,
+ new MultiPortMappingItemSemanticEditPolicy());
+ }
+
+ /**
+ * Creates figure for this edit part.
+ *
+ * Body of this method does not depend on settings in generation model
+ * so you may safely remove <i>generated</i> tag and modify it.
+ *
+ * @generated NOT
+ */
+
+ protected Connection createConnectionFigure() {
+ PortMapping mapping = (PortMapping) this.resolveSemanticElement();
+ PortMappingFigure figure = new MultiPortMappingFigure();
+ figure.setMapping(mapping);
+ return figure;
+ }
+
+ /**
+ * @generated
+ */
+ public MultiPortMappingFigure getPrimaryShape() {
+ return (MultiPortMappingFigure) getFigure();
+ }
+
+ /**
+ * @generated NOT
+ */
+ public class MultiPortMappingFigure extends PortMappingFigure {
+
+ /**
+ * @generated
+ */
+ public MultiPortMappingFigure() {
+ this.setLineWidth(2);
+ this.setLineStyle(Graphics.LINE_DOT);
+
+ setTargetDecoration(createTargetDecoration());
+ }
+
+ /**
+ * @generated
+ */
+ private RotatableDecoration createTargetDecoration() {
+ PolylineDecoration df = new PolylineDecoration();
+ return df;
+ }
+
+ }
+
+}
diff --git a/org.eclipse.emf.refactor.comrel.diagram/src/comrel/diagram/edit/parts/MultiSinglePortMappingEditPart.java b/org.eclipse.emf.refactor.comrel.diagram/src/comrel/diagram/edit/parts/MultiSinglePortMappingEditPart.java
new file mode 100644
index 0000000..21784a1
--- /dev/null
+++ b/org.eclipse.emf.refactor.comrel.diagram/src/comrel/diagram/edit/parts/MultiSinglePortMappingEditPart.java
@@ -0,0 +1,95 @@
+/*
+ *
+ */
+package comrel.diagram.edit.parts;
+
+import org.eclipse.draw2d.Connection;
+import org.eclipse.draw2d.Graphics;
+import org.eclipse.draw2d.PolylineDecoration;
+import org.eclipse.draw2d.RotatableDecoration;
+import org.eclipse.gmf.runtime.diagram.ui.editparts.ConnectionNodeEditPart;
+import org.eclipse.gmf.runtime.diagram.ui.editparts.ITreeBranchEditPart;
+import org.eclipse.gmf.runtime.diagram.ui.editpolicies.EditPolicyRoles;
+import org.eclipse.gmf.runtime.draw2d.ui.figures.PolylineConnectionEx;
+import org.eclipse.gmf.runtime.notation.View;
+
+import comrel.PortMapping;
+import comrel.diagram.edit.policies.MultiSinglePortMappingItemSemanticEditPolicy;
+import comrel.figures.PortMappingFigure;
+
+/**
+ * @generated
+ */
+public class MultiSinglePortMappingEditPart extends ConnectionNodeEditPart
+ implements ITreeBranchEditPart {
+
+ /**
+ * @generated
+ */
+ public static final int VISUAL_ID = 4003;
+
+ /**
+ * @generated
+ */
+ public MultiSinglePortMappingEditPart(View view) {
+ super(view);
+ }
+
+ /**
+ * @generated
+ */
+ protected void createDefaultEditPolicies() {
+ super.createDefaultEditPolicies();
+ installEditPolicy(EditPolicyRoles.SEMANTIC_ROLE,
+ new MultiSinglePortMappingItemSemanticEditPolicy());
+ }
+
+ /**
+ * Creates figure for this edit part.
+ *
+ * Body of this method does not depend on settings in generation model
+ * so you may safely remove <i>generated</i> tag and modify it.
+ *
+ * @generated NOT
+ */
+
+ protected Connection createConnectionFigure() {
+ PortMapping mapping = (PortMapping) this.resolveSemanticElement();
+ PortMappingFigure figure = new MultiSinglePortMappingFigure();
+ figure.setMapping(mapping);
+ return figure;
+ }
+
+ /**
+ * @generated
+ */
+ public MultiSinglePortMappingFigure getPrimaryShape() {
+ return (MultiSinglePortMappingFigure) getFigure();
+ }
+
+ /**
+ * @generated NOT
+ */
+ public class MultiSinglePortMappingFigure extends PortMappingFigure {
+
+ /**
+ * @generated
+ */
+ public MultiSinglePortMappingFigure() {
+ this.setLineWidth(2);
+ this.setLineStyle(Graphics.LINE_DOT);
+
+ setTargetDecoration(createTargetDecoration());
+ }
+
+ /**
+ * @generated
+ */
+ private RotatableDecoration createTargetDecoration() {
+ PolylineDecoration df = new PolylineDecoration();
+ return df;
+ }
+
+ }
+
+}
diff --git a/org.eclipse.emf.refactor.comrel.diagram/src/comrel/diagram/edit/parts/ParallelQueuedUnit2EditPart.java b/org.eclipse.emf.refactor.comrel.diagram/src/comrel/diagram/edit/parts/ParallelQueuedUnit2EditPart.java
new file mode 100644
index 0000000..c47e855
--- /dev/null
+++ b/org.eclipse.emf.refactor.comrel.diagram/src/comrel/diagram/edit/parts/ParallelQueuedUnit2EditPart.java
@@ -0,0 +1,438 @@
+/*
+ *
+ */
+package comrel.diagram.edit.parts;
+
+import org.eclipse.draw2d.IFigure;
+import org.eclipse.draw2d.MarginBorder;
+import org.eclipse.draw2d.PositionConstants;
+import org.eclipse.draw2d.RectangleFigure;
+import org.eclipse.draw2d.RoundedRectangle;
+import org.eclipse.draw2d.Shape;
+import org.eclipse.draw2d.StackLayout;
+import org.eclipse.draw2d.geometry.Dimension;
+import org.eclipse.gef.EditPart;
+import org.eclipse.gef.EditPolicy;
+import org.eclipse.gef.Request;
+import org.eclipse.gef.commands.Command;
+import org.eclipse.gef.editpolicies.LayoutEditPolicy;
+import org.eclipse.gef.editpolicies.NonResizableEditPolicy;
+import org.eclipse.gef.requests.CreateRequest;
+import org.eclipse.gmf.runtime.diagram.ui.editparts.AbstractBorderedShapeEditPart;
+import org.eclipse.gmf.runtime.diagram.ui.editparts.IBorderItemEditPart;
+import org.eclipse.gmf.runtime.diagram.ui.editparts.IGraphicalEditPart;
+import org.eclipse.gmf.runtime.diagram.ui.editpolicies.BorderItemSelectionEditPolicy;
+import org.eclipse.gmf.runtime.diagram.ui.editpolicies.CreationEditPolicy;
+import org.eclipse.gmf.runtime.diagram.ui.editpolicies.DragDropEditPolicy;
+import org.eclipse.gmf.runtime.diagram.ui.editpolicies.EditPolicyRoles;
+import org.eclipse.gmf.runtime.diagram.ui.figures.BorderItemLocator;
+import org.eclipse.gmf.runtime.draw2d.ui.figures.ConstrainedToolbarLayout;
+import org.eclipse.gmf.runtime.draw2d.ui.figures.WrappingLabel;
+import org.eclipse.gmf.runtime.gef.ui.figures.DefaultSizeNodeFigure;
+import org.eclipse.gmf.runtime.gef.ui.figures.NodeFigure;
+import org.eclipse.gmf.runtime.notation.View;
+import org.eclipse.swt.graphics.Color;
+
+import comrel.diagram.edit.parts.ParallelQueuedUnit6EditPart.ParallelQueuedUnitFigure;
+import comrel.diagram.edit.parts.custom.Labels;
+import comrel.diagram.edit.policies.OpenDiagramEditPolicy;
+import comrel.diagram.edit.policies.ParallelQueuedUnit2CanonicalEditPolicy;
+import comrel.diagram.edit.policies.ParallelQueuedUnit2ItemSemanticEditPolicy;
+import comrel.diagram.part.ComrelVisualIDRegistry;
+
+/**
+ * @generated
+ */
+public class ParallelQueuedUnit2EditPart extends AbstractBorderedShapeEditPart {
+
+ /**
+ * @generated
+ */
+ public static final int VISUAL_ID = 3004;
+
+ /**
+ * @generated
+ */
+ protected IFigure contentPane;
+
+ /**
+ * @generated
+ */
+ protected IFigure primaryShape;
+
+ /**
+ * @generated
+ */
+ public ParallelQueuedUnit2EditPart(View view) {
+ super(view);
+ }
+
+ /**
+ * @generated
+ */
+ protected void createDefaultEditPolicies() {
+ installEditPolicy(EditPolicyRoles.CREATION_ROLE,
+ new CreationEditPolicy());
+ super.createDefaultEditPolicies();
+ installEditPolicy(EditPolicyRoles.SEMANTIC_ROLE,
+ new ParallelQueuedUnit2ItemSemanticEditPolicy());
+ installEditPolicy(EditPolicyRoles.DRAG_DROP_ROLE,
+ new DragDropEditPolicy());
+ installEditPolicy(EditPolicyRoles.CANONICAL_ROLE,
+ new ParallelQueuedUnit2CanonicalEditPolicy());
+ installEditPolicy(EditPolicy.LAYOUT_ROLE, createLayoutEditPolicy());
+ installEditPolicy(EditPolicyRoles.OPEN_ROLE,
+ new OpenDiagramEditPolicy());
+ // XXX need an SCR to runtime to have another abstract superclass that would let children add reasonable editpolicies
+ // removeEditPolicy(org.eclipse.gmf.runtime.diagram.ui.editpolicies.EditPolicyRoles.CONNECTION_HANDLES_ROLE);
+ }
+
+ /**
+ * @generated
+ */
+ protected LayoutEditPolicy createLayoutEditPolicy() {
+ org.eclipse.gmf.runtime.diagram.ui.editpolicies.LayoutEditPolicy lep = new org.eclipse.gmf.runtime.diagram.ui.editpolicies.LayoutEditPolicy() {
+
+ protected EditPolicy createChildEditPolicy(EditPart child) {
+ View childView = (View) child.getModel();
+ switch (ComrelVisualIDRegistry.getVisualID(childView)) {
+ case SingleInputPort3EditPart.VISUAL_ID:
+ case MultiInputPort2EditPart.VISUAL_ID:
+ return new BorderItemSelectionEditPolicy();
+ }
+ EditPolicy result = child
+ .getEditPolicy(EditPolicy.PRIMARY_DRAG_ROLE);
+ if (result == null) {
+ result = new NonResizableEditPolicy();
+ }
+ return result;
+ }
+
+ protected Command getMoveChildrenCommand(Request request) {
+ return null;
+ }
+
+ protected Command getCreateCommand(CreateRequest request) {
+ return null;
+ }
+ };
+ return lep;
+ }
+
+ /**
+ * @generated NOT
+ */
+ protected IFigure createNodeShape() {
+ ParallelQueuedUnitFigure figure = new ParallelQueuedUnitFigure();
+ RectangleFigure compHelper = (RectangleFigure) figure.getChildren()
+ .get(1);
+ RectangleFigure compRef = (RectangleFigure) figure.getChildren().get(2);
+ Labels.setLabels(compHelper, compRef, true);
+ // RefactoringUnit unit = (RefactoringUnit) this.resolveSemanticElement();
+ // unit.setFigure(figure);
+ return primaryShape = figure;
+ }
+
+ /**
+ * @generated
+ */
+ public ParallelQueuedUnitFigure getPrimaryShape() {
+ return (ParallelQueuedUnitFigure) primaryShape;
+ }
+
+ /**
+ * @generated NOT
+ */
+ protected boolean addFixedChild(EditPart childEditPart) {
+ if (childEditPart instanceof ParallelQueuedUnitNameTypeLblStrict2EditPart) {
+ ((ParallelQueuedUnitNameTypeLblStrict2EditPart) childEditPart)
+ .setLabel(getPrimaryShape()
+ .getFigureParallelQueuedUnitLabelFigure());
+ return true;
+ }
+ if (childEditPart instanceof ParallelQueuedUnitParallelQueuedUnitHelperUnitsCompartmentEditPart) {
+ IFigure pane = getPrimaryShape()
+ .getParallelQueuedUnitHelperUnitsCompartmentFigure();
+ setupContentPane(pane); // FIXME each comparment should handle his content pane in his own way
+ pane.add(((ParallelQueuedUnitParallelQueuedUnitHelperUnitsCompartmentEditPart) childEditPart)
+ .getFigure());
+ return true;
+ }
+ if (childEditPart instanceof ParallelQueuedUnitParallelQueuedUnitRefactoringUnitsCompartmentEditPart) {
+ IFigure pane = getPrimaryShape()
+ .getParallelQueuedUnitRefactoringUnitsCompartmentFigure();
+ setupContentPane(pane); // FIXME each comparment should handle his content pane in his own way
+ pane.add(((ParallelQueuedUnitParallelQueuedUnitRefactoringUnitsCompartmentEditPart) childEditPart)
+ .getFigure());
+ return true;
+ }
+ if (childEditPart instanceof SingleInputPort3EditPart) {
+ BorderItemLocator locator = new BorderItemLocator(getMainFigure(),
+ PositionConstants.NORTH);
+ locator.setCurrentSideOfParent(PositionConstants.NORTH); // Position des Ports
+ locator.setPreferredSideOfParent(PositionConstants.NORTH); // Position des Ports
+ getBorderedFigure().getBorderItemContainer().add(
+ ((SingleInputPort3EditPart) childEditPart).getFigure(),
+ locator);
+ return true;
+ }
+ if (childEditPart instanceof MultiInputPort2EditPart) {
+ BorderItemLocator locator = new BorderItemLocator(getMainFigure(),
+ PositionConstants.NORTH);
+ locator.setCurrentSideOfParent(PositionConstants.NORTH); // Position des Ports
+ locator.setPreferredSideOfParent(PositionConstants.NORTH); // Position des Ports
+ getBorderedFigure().getBorderItemContainer().add(
+ ((MultiInputPort2EditPart) childEditPart).getFigure(),
+ locator);
+ return true;
+ }
+ return false;
+ }
+
+ /**
+ * @generated NOT
+ */
+ protected boolean removeFixedChild(EditPart childEditPart) {
+ if (childEditPart instanceof ParallelQueuedUnitNameTypeLblStrict2EditPart) {
+ return true;
+ }
+ if (childEditPart instanceof ParallelQueuedUnitParallelQueuedUnitHelperUnitsCompartmentEditPart) {
+ IFigure pane = getPrimaryShape()
+ .getParallelQueuedUnitHelperUnitsCompartmentFigure();
+ setupContentPane(pane); // FIXME each comparment should handle his content pane in his own way
+ pane.remove(((ParallelQueuedUnitParallelQueuedUnitHelperUnitsCompartmentEditPart) childEditPart)
+ .getFigure());
+ return true;
+ }
+ if (childEditPart instanceof ParallelQueuedUnitParallelQueuedUnitRefactoringUnitsCompartmentEditPart) {
+ IFigure pane = getPrimaryShape()
+ .getParallelQueuedUnitRefactoringUnitsCompartmentFigure();
+ setupContentPane(pane); // FIXME each comparment should handle his content pane in his own way
+ pane.remove(((ParallelQueuedUnitParallelQueuedUnitRefactoringUnitsCompartmentEditPart) childEditPart)
+ .getFigure());
+ return true;
+ }
+ if (childEditPart instanceof SingleInputPort3EditPart) {
+ getBorderedFigure().getBorderItemContainer().remove(
+ ((SingleInputPort3EditPart) childEditPart).getFigure());
+ return true;
+ }
+ if (childEditPart instanceof MultiInputPort2EditPart) {
+ // getBorderedFigure().getBorderItemContainer().remove(
+ // ((MultiInputPort2EditPart) childEditPart).getFigure());
+ return true;
+ }
+ return false;
+ }
+
+ /**
+ * @generated
+ */
+ protected void addChildVisual(EditPart childEditPart, int index) {
+ if (addFixedChild(childEditPart)) {
+ return;
+ }
+ super.addChildVisual(childEditPart, -1);
+ }
+
+ /**
+ * @generated
+ */
+ protected void removeChildVisual(EditPart childEditPart) {
+ if (removeFixedChild(childEditPart)) {
+ return;
+ }
+ super.removeChildVisual(childEditPart);
+ }
+
+ /**
+ * @generated
+ */
+ protected IFigure getContentPaneFor(IGraphicalEditPart editPart) {
+ if (editPart instanceof ParallelQueuedUnitParallelQueuedUnitHelperUnitsCompartmentEditPart) {
+ return getPrimaryShape()
+ .getParallelQueuedUnitHelperUnitsCompartmentFigure();
+ }
+ if (editPart instanceof ParallelQueuedUnitParallelQueuedUnitRefactoringUnitsCompartmentEditPart) {
+ return getPrimaryShape()
+ .getParallelQueuedUnitRefactoringUnitsCompartmentFigure();
+ }
+ if (editPart instanceof IBorderItemEditPart) {
+ return getBorderedFigure().getBorderItemContainer();
+ }
+ return getContentPane();
+ }
+
+ /**
+ * @generated
+ */
+ protected NodeFigure createNodePlate() {
+ DefaultSizeNodeFigure result = new DefaultSizeNodeFigure(40, 40);
+ return result;
+ }
+
+ /**
+ * Creates figure for this edit part.
+ *
+ * Body of this method does not depend on settings in generation model
+ * so you may safely remove <i>generated</i> tag and modify it.
+ *
+ * @generated
+ */
+ protected NodeFigure createMainFigure() {
+ NodeFigure figure = createNodePlate();
+ figure.setLayoutManager(new StackLayout());
+ IFigure shape = createNodeShape();
+ figure.add(shape);
+ contentPane = setupContentPane(shape);
+ return figure;
+ }
+
+ /**
+ * Default implementation treats passed figure as content pane.
+ * Respects layout one may have set for generated figure.
+ * @param nodeShape instance of generated figure class
+ * @generated
+ */
+ protected IFigure setupContentPane(IFigure nodeShape) {
+ if (nodeShape.getLayoutManager() == null) {
+ ConstrainedToolbarLayout layout = new ConstrainedToolbarLayout();
+ layout.setSpacing(5);
+ nodeShape.setLayoutManager(layout);
+ }
+ return nodeShape; // use nodeShape itself as contentPane
+ }
+
+ /**
+ * @generated
+ */
+ public IFigure getContentPane() {
+ if (contentPane != null) {
+ return contentPane;
+ }
+ return super.getContentPane();
+ }
+
+ /**
+ * @generated
+ */
+ protected void setForegroundColor(Color color) {
+ if (primaryShape != null) {
+ primaryShape.setForegroundColor(color);
+ }
+ }
+
+ /**
+ * @generated
+ */
+ protected void setBackgroundColor(Color color) {
+ if (primaryShape != null) {
+ primaryShape.setBackgroundColor(color);
+ }
+ }
+
+ /**
+ * @generated
+ */
+ protected void setLineWidth(int width) {
+ if (primaryShape instanceof Shape) {
+ ((Shape) primaryShape).setLineWidth(width);
+ }
+ }
+
+ /**
+ * @generated
+ */
+ protected void setLineType(int style) {
+ if (primaryShape instanceof Shape) {
+ ((Shape) primaryShape).setLineStyle(style);
+ }
+ }
+
+ /**
+ * @generated
+ */
+ public EditPart getPrimaryChildEditPart() {
+ return getChildBySemanticHint(ComrelVisualIDRegistry
+ .getType(ParallelQueuedUnitNameTypeLblStrict2EditPart.VISUAL_ID));
+ }
+
+ /**
+ * @generated
+ */
+ public class ParallelQueuedUnitFigure extends RoundedRectangle {
+
+ /**
+ * @generated
+ */
+ private WrappingLabel fFigureParallelQueuedUnitLabelFigure;
+ /**
+ * @generated
+ */
+ private RectangleFigure fParallelQueuedUnitHelperUnitsCompartmentFigure;
+ /**
+ * @generated
+ */
+ private RectangleFigure fParallelQueuedUnitRefactoringUnitsCompartmentFigure;
+
+ /**
+ * @generated
+ */
+ public ParallelQueuedUnitFigure() {
+ this.setCornerDimensions(new Dimension(getMapMode().DPtoLP(8),
+ getMapMode().DPtoLP(8)));
+ this.setBorder(new MarginBorder(getMapMode().DPtoLP(5),
+ getMapMode().DPtoLP(5), getMapMode().DPtoLP(5),
+ getMapMode().DPtoLP(5)));
+ createContents();
+ }
+
+ /**
+ * @generated
+ */
+ private void createContents() {
+
+ fFigureParallelQueuedUnitLabelFigure = new WrappingLabel();
+ fFigureParallelQueuedUnitLabelFigure.setText("ParallelQueuedUnit");
+ fFigureParallelQueuedUnitLabelFigure.setMaximumSize(new Dimension(
+ getMapMode().DPtoLP(10000), getMapMode().DPtoLP(50)));
+
+ this.add(fFigureParallelQueuedUnitLabelFigure);
+
+ fParallelQueuedUnitHelperUnitsCompartmentFigure = new RectangleFigure();
+ fParallelQueuedUnitHelperUnitsCompartmentFigure.setOutline(false);
+
+ this.add(fParallelQueuedUnitHelperUnitsCompartmentFigure);
+
+ fParallelQueuedUnitRefactoringUnitsCompartmentFigure = new RectangleFigure();
+ fParallelQueuedUnitRefactoringUnitsCompartmentFigure
+ .setOutline(false);
+
+ this.add(fParallelQueuedUnitRefactoringUnitsCompartmentFigure);
+
+ }
+
+ /**
+ * @generated
+ */
+ public WrappingLabel getFigureParallelQueuedUnitLabelFigure() {
+ return fFigureParallelQueuedUnitLabelFigure;
+ }
+
+ /**
+ * @generated
+ */
+ public RectangleFigure getParallelQueuedUnitHelperUnitsCompartmentFigure() {
+ return fParallelQueuedUnitHelperUnitsCompartmentFigure;
+ }
+
+ /**
+ * @generated
+ */
+ public RectangleFigure getParallelQueuedUnitRefactoringUnitsCompartmentFigure() {
+ return fParallelQueuedUnitRefactoringUnitsCompartmentFigure;
+ }
+
+ }
+
+}
diff --git a/org.eclipse.emf.refactor.comrel.diagram/src/comrel/diagram/edit/parts/ParallelQueuedUnit3EditPart.java b/org.eclipse.emf.refactor.comrel.diagram/src/comrel/diagram/edit/parts/ParallelQueuedUnit3EditPart.java
new file mode 100644
index 0000000..d578559
--- /dev/null
+++ b/org.eclipse.emf.refactor.comrel.diagram/src/comrel/diagram/edit/parts/ParallelQueuedUnit3EditPart.java
@@ -0,0 +1,438 @@
+/*
+ *
+ */
+package comrel.diagram.edit.parts;
+
+import org.eclipse.draw2d.IFigure;
+import org.eclipse.draw2d.MarginBorder;
+import org.eclipse.draw2d.PositionConstants;
+import org.eclipse.draw2d.RectangleFigure;
+import org.eclipse.draw2d.RoundedRectangle;
+import org.eclipse.draw2d.Shape;
+import org.eclipse.draw2d.StackLayout;
+import org.eclipse.draw2d.geometry.Dimension;
+import org.eclipse.gef.EditPart;
+import org.eclipse.gef.EditPolicy;
+import org.eclipse.gef.Request;
+import org.eclipse.gef.commands.Command;
+import org.eclipse.gef.editpolicies.LayoutEditPolicy;
+import org.eclipse.gef.editpolicies.NonResizableEditPolicy;
+import org.eclipse.gef.requests.CreateRequest;
+import org.eclipse.gmf.runtime.diagram.ui.editparts.AbstractBorderedShapeEditPart;
+import org.eclipse.gmf.runtime.diagram.ui.editparts.IBorderItemEditPart;
+import org.eclipse.gmf.runtime.diagram.ui.editparts.IGraphicalEditPart;
+import org.eclipse.gmf.runtime.diagram.ui.editpolicies.BorderItemSelectionEditPolicy;
+import org.eclipse.gmf.runtime.diagram.ui.editpolicies.CreationEditPolicy;
+import org.eclipse.gmf.runtime.diagram.ui.editpolicies.DragDropEditPolicy;
+import org.eclipse.gmf.runtime.diagram.ui.editpolicies.EditPolicyRoles;
+import org.eclipse.gmf.runtime.diagram.ui.figures.BorderItemLocator;
+import org.eclipse.gmf.runtime.draw2d.ui.figures.ConstrainedToolbarLayout;
+import org.eclipse.gmf.runtime.draw2d.ui.figures.WrappingLabel;
+import org.eclipse.gmf.runtime.gef.ui.figures.DefaultSizeNodeFigure;
+import org.eclipse.gmf.runtime.gef.ui.figures.NodeFigure;
+import org.eclipse.gmf.runtime.notation.View;
+import org.eclipse.swt.graphics.Color;
+
+import comrel.diagram.edit.parts.ParallelQueuedUnit6EditPart.ParallelQueuedUnitFigure;
+import comrel.diagram.edit.parts.custom.Labels;
+import comrel.diagram.edit.policies.OpenDiagramEditPolicy;
+import comrel.diagram.edit.policies.ParallelQueuedUnit3CanonicalEditPolicy;
+import comrel.diagram.edit.policies.ParallelQueuedUnit3ItemSemanticEditPolicy;
+import comrel.diagram.part.ComrelVisualIDRegistry;
+
+/**
+ * @generated
+ */
+public class ParallelQueuedUnit3EditPart extends AbstractBorderedShapeEditPart {
+
+ /**
+ * @generated
+ */
+ public static final int VISUAL_ID = 3036;
+
+ /**
+ * @generated
+ */
+ protected IFigure contentPane;
+
+ /**
+ * @generated
+ */
+ protected IFigure primaryShape;
+
+ /**
+ * @generated
+ */
+ public ParallelQueuedUnit3EditPart(View view) {
+ super(view);
+ }
+
+ /**
+ * @generated
+ */
+ protected void createDefaultEditPolicies() {
+ installEditPolicy(EditPolicyRoles.CREATION_ROLE,
+ new CreationEditPolicy());
+ super.createDefaultEditPolicies();
+ installEditPolicy(EditPolicyRoles.SEMANTIC_ROLE,
+ new ParallelQueuedUnit3ItemSemanticEditPolicy());
+ installEditPolicy(EditPolicyRoles.DRAG_DROP_ROLE,
+ new DragDropEditPolicy());
+ installEditPolicy(EditPolicyRoles.CANONICAL_ROLE,
+ new ParallelQueuedUnit3CanonicalEditPolicy());
+ installEditPolicy(EditPolicy.LAYOUT_ROLE, createLayoutEditPolicy());
+ installEditPolicy(EditPolicyRoles.OPEN_ROLE,
+ new OpenDiagramEditPolicy());
+ // XXX need an SCR to runtime to have another abstract superclass that would let children add reasonable editpolicies
+ // removeEditPolicy(org.eclipse.gmf.runtime.diagram.ui.editpolicies.EditPolicyRoles.CONNECTION_HANDLES_ROLE);
+ }
+
+ /**
+ * @generated
+ */
+ protected LayoutEditPolicy createLayoutEditPolicy() {
+ org.eclipse.gmf.runtime.diagram.ui.editpolicies.LayoutEditPolicy lep = new org.eclipse.gmf.runtime.diagram.ui.editpolicies.LayoutEditPolicy() {
+
+ protected EditPolicy createChildEditPolicy(EditPart child) {
+ View childView = (View) child.getModel();
+ switch (ComrelVisualIDRegistry.getVisualID(childView)) {
+ case SingleInputPort3EditPart.VISUAL_ID:
+ case MultiInputPort2EditPart.VISUAL_ID:
+ return new BorderItemSelectionEditPolicy();
+ }
+ EditPolicy result = child
+ .getEditPolicy(EditPolicy.PRIMARY_DRAG_ROLE);
+ if (result == null) {
+ result = new NonResizableEditPolicy();
+ }
+ return result;
+ }
+
+ protected Command getMoveChildrenCommand(Request request) {
+ return null;
+ }
+
+ protected Command getCreateCommand(CreateRequest request) {
+ return null;
+ }
+ };
+ return lep;
+ }
+
+ /**
+ * @generated NOT
+ */
+ protected IFigure createNodeShape() {
+ ParallelQueuedUnitFigure figure = new ParallelQueuedUnitFigure();
+ RectangleFigure compHelper = (RectangleFigure) figure.getChildren()
+ .get(1);
+ RectangleFigure compRef = (RectangleFigure) figure.getChildren().get(2);
+ Labels.setLabels(compHelper, compRef, true);
+ // RefactoringUnit unit = (RefactoringUnit) this.resolveSemanticElement();
+ // unit.setFigure(figure);
+ return primaryShape = figure;
+ }
+
+ /**
+ * @generated
+ */
+ public ParallelQueuedUnitFigure getPrimaryShape() {
+ return (ParallelQueuedUnitFigure) primaryShape;
+ }
+
+ /**
+ * @generated NOT
+ */
+ protected boolean addFixedChild(EditPart childEditPart) {
+ if (childEditPart instanceof ParallelQueuedUnitNameTypeLblStrict3EditPart) {
+ ((ParallelQueuedUnitNameTypeLblStrict3EditPart) childEditPart)
+ .setLabel(getPrimaryShape()
+ .getFigureParallelQueuedUnitLabelFigure());
+ return true;
+ }
+ if (childEditPart instanceof ParallelQueuedUnitParallelQueuedUnitHelperUnitsCompartment2EditPart) {
+ IFigure pane = getPrimaryShape()
+ .getParallelQueuedUnitHelperUnitsCompartmentFigure();
+ setupContentPane(pane); // FIXME each comparment should handle his content pane in his own way
+ pane.add(((ParallelQueuedUnitParallelQueuedUnitHelperUnitsCompartment2EditPart) childEditPart)
+ .getFigure());
+ return true;
+ }
+ if (childEditPart instanceof ParallelQueuedUnitParallelQueuedUnitRefactoringUnitsCompartment2EditPart) {
+ IFigure pane = getPrimaryShape()
+ .getParallelQueuedUnitRefactoringUnitsCompartmentFigure();
+ setupContentPane(pane); // FIXME each comparment should handle his content pane in his own way
+ pane.add(((ParallelQueuedUnitParallelQueuedUnitRefactoringUnitsCompartment2EditPart) childEditPart)
+ .getFigure());
+ return true;
+ }
+ if (childEditPart instanceof SingleInputPort3EditPart) {
+ BorderItemLocator locator = new BorderItemLocator(getMainFigure(),
+ PositionConstants.NORTH);
+ locator.setCurrentSideOfParent(PositionConstants.NORTH); // Position des Ports
+ locator.setPreferredSideOfParent(PositionConstants.NORTH); // Position des Ports
+ getBorderedFigure().getBorderItemContainer().add(
+ ((SingleInputPort3EditPart) childEditPart).getFigure(),
+ locator);
+ return true;
+ }
+ if (childEditPart instanceof MultiInputPort2EditPart) {
+ BorderItemLocator locator = new BorderItemLocator(getMainFigure(),
+ PositionConstants.NORTH);
+ locator.setCurrentSideOfParent(PositionConstants.NORTH); // Position des Ports
+ locator.setPreferredSideOfParent(PositionConstants.NORTH); // Position des Ports
+ getBorderedFigure().getBorderItemContainer().add(
+ ((MultiInputPort2EditPart) childEditPart).getFigure(),
+ locator);
+ return true;
+ }
+ return false;
+ }
+
+ /**
+ * @generated NOT
+ */
+ protected boolean removeFixedChild(EditPart childEditPart) {
+ if (childEditPart instanceof ParallelQueuedUnitNameTypeLblStrict3EditPart) {
+ return true;
+ }
+ if (childEditPart instanceof ParallelQueuedUnitParallelQueuedUnitHelperUnitsCompartment2EditPart) {
+ IFigure pane = getPrimaryShape()
+ .getParallelQueuedUnitHelperUnitsCompartmentFigure();
+ setupContentPane(pane); // FIXME each comparment should handle his content pane in his own way
+ pane.remove(((ParallelQueuedUnitParallelQueuedUnitHelperUnitsCompartment2EditPart) childEditPart)
+ .getFigure());
+ return true;
+ }
+ if (childEditPart instanceof ParallelQueuedUnitParallelQueuedUnitRefactoringUnitsCompartment2EditPart) {
+ IFigure pane = getPrimaryShape()
+ .getParallelQueuedUnitRefactoringUnitsCompartmentFigure();
+ setupContentPane(pane); // FIXME each comparment should handle his content pane in his own way
+ pane.remove(((ParallelQueuedUnitParallelQueuedUnitRefactoringUnitsCompartment2EditPart) childEditPart)
+ .getFigure());
+ return true;
+ }
+ if (childEditPart instanceof SingleInputPort3EditPart) {
+ getBorderedFigure().getBorderItemContainer().remove(
+ ((SingleInputPort3EditPart) childEditPart).getFigure());
+ return true;
+ }
+ if (childEditPart instanceof MultiInputPort2EditPart) {
+ // getBorderedFigure().getBorderItemContainer().remove(
+ // ((MultiInputPort2EditPart) childEditPart).getFigure());
+ return true;
+ }
+ return false;
+ }
+
+ /**
+ * @generated
+ */
+ protected void addChildVisual(EditPart childEditPart, int index) {
+ if (addFixedChild(childEditPart)) {
+ return;
+ }
+ super.addChildVisual(childEditPart, -1);
+ }
+
+ /**
+ * @generated
+ */
+ protected void removeChildVisual(EditPart childEditPart) {
+ if (removeFixedChild(childEditPart)) {
+ return;
+ }
+ super.removeChildVisual(childEditPart);
+ }
+
+ /**
+ * @generated
+ */
+ protected IFigure getContentPaneFor(IGraphicalEditPart editPart) {
+ if (editPart instanceof ParallelQueuedUnitParallelQueuedUnitHelperUnitsCompartment2EditPart) {
+ return getPrimaryShape()
+ .getParallelQueuedUnitHelperUnitsCompartmentFigure();
+ }
+ if (editPart instanceof ParallelQueuedUnitParallelQueuedUnitRefactoringUnitsCompartment2EditPart) {
+ return getPrimaryShape()
+ .getParallelQueuedUnitRefactoringUnitsCompartmentFigure();
+ }
+ if (editPart instanceof IBorderItemEditPart) {
+ return getBorderedFigure().getBorderItemContainer();
+ }
+ return getContentPane();
+ }
+
+ /**
+ * @generated
+ */
+ protected NodeFigure createNodePlate() {
+ DefaultSizeNodeFigure result = new DefaultSizeNodeFigure(40, 40);
+ return result;
+ }
+
+ /**
+ * Creates figure for this edit part.
+ *
+ * Body of this method does not depend on settings in generation model
+ * so you may safely remove <i>generated</i> tag and modify it.
+ *
+ * @generated
+ */
+ protected NodeFigure createMainFigure() {
+ NodeFigure figure = createNodePlate();
+ figure.setLayoutManager(new StackLayout());
+ IFigure shape = createNodeShape();
+ figure.add(shape);
+ contentPane = setupContentPane(shape);
+ return figure;
+ }
+
+ /**
+ * Default implementation treats passed figure as content pane.
+ * Respects layout one may have set for generated figure.
+ * @param nodeShape instance of generated figure class
+ * @generated
+ */
+ protected IFigure setupContentPane(IFigure nodeShape) {
+ if (nodeShape.getLayoutManager() == null) {
+ ConstrainedToolbarLayout layout = new ConstrainedToolbarLayout();
+ layout.setSpacing(5);
+ nodeShape.setLayoutManager(layout);
+ }
+ return nodeShape; // use nodeShape itself as contentPane
+ }
+
+ /**
+ * @generated
+ */
+ public IFigure getContentPane() {
+ if (contentPane != null) {
+ return contentPane;
+ }
+ return super.getContentPane();
+ }
+
+ /**
+ * @generated
+ */
+ protected void setForegroundColor(Color color) {
+ if (primaryShape != null) {
+ primaryShape.setForegroundColor(color);
+ }
+ }
+
+ /**
+ * @generated
+ */
+ protected void setBackgroundColor(Color color) {
+ if (primaryShape != null) {
+ primaryShape.setBackgroundColor(color);
+ }
+ }
+
+ /**
+ * @generated
+ */
+ protected void setLineWidth(int width) {
+ if (primaryShape instanceof Shape) {
+ ((Shape) primaryShape).setLineWidth(width);
+ }
+ }
+
+ /**
+ * @generated
+ */
+ protected void setLineType(int style) {
+ if (primaryShape instanceof Shape) {
+ ((Shape) primaryShape).setLineStyle(style);
+ }
+ }
+
+ /**
+ * @generated
+ */
+ public EditPart getPrimaryChildEditPart() {
+ return getChildBySemanticHint(ComrelVisualIDRegistry
+ .getType(ParallelQueuedUnitNameTypeLblStrict3EditPart.VISUAL_ID));
+ }
+
+ /**
+ * @generated
+ */
+ public class ParallelQueuedUnitFigure extends RoundedRectangle {
+
+ /**
+ * @generated
+ */
+ private WrappingLabel fFigureParallelQueuedUnitLabelFigure;
+ /**
+ * @generated
+ */
+ private RectangleFigure fParallelQueuedUnitHelperUnitsCompartmentFigure;
+ /**
+ * @generated
+ */
+ private RectangleFigure fParallelQueuedUnitRefactoringUnitsCompartmentFigure;
+
+ /**
+ * @generated
+ */
+ public ParallelQueuedUnitFigure() {
+ this.setCornerDimensions(new Dimension(getMapMode().DPtoLP(8),
+ getMapMode().DPtoLP(8)));
+ this.setBorder(new MarginBorder(getMapMode().DPtoLP(5),
+ getMapMode().DPtoLP(5), getMapMode().DPtoLP(5),
+ getMapMode().DPtoLP(5)));
+ createContents();
+ }
+
+ /**
+ * @generated
+ */
+ private void createContents() {
+
+ fFigureParallelQueuedUnitLabelFigure = new WrappingLabel();
+ fFigureParallelQueuedUnitLabelFigure.setText("ParallelQueuedUnit");
+ fFigureParallelQueuedUnitLabelFigure.setMaximumSize(new Dimension(
+ getMapMode().DPtoLP(10000), getMapMode().DPtoLP(50)));
+
+ this.add(fFigureParallelQueuedUnitLabelFigure);
+
+ fParallelQueuedUnitHelperUnitsCompartmentFigure = new RectangleFigure();
+ fParallelQueuedUnitHelperUnitsCompartmentFigure.setOutline(false);
+
+ this.add(fParallelQueuedUnitHelperUnitsCompartmentFigure);
+
+ fParallelQueuedUnitRefactoringUnitsCompartmentFigure = new RectangleFigure();
+ fParallelQueuedUnitRefactoringUnitsCompartmentFigure
+ .setOutline(false);
+
+ this.add(fParallelQueuedUnitRefactoringUnitsCompartmentFigure);
+
+ }
+
+ /**
+ * @generated
+ */
+ public WrappingLabel getFigureParallelQueuedUnitLabelFigure() {
+ return fFigureParallelQueuedUnitLabelFigure;
+ }
+
+ /**
+ * @generated
+ */
+ public RectangleFigure getParallelQueuedUnitHelperUnitsCompartmentFigure() {
+ return fParallelQueuedUnitHelperUnitsCompartmentFigure;
+ }
+
+ /**
+ * @generated
+ */
+ public RectangleFigure getParallelQueuedUnitRefactoringUnitsCompartmentFigure() {
+ return fParallelQueuedUnitRefactoringUnitsCompartmentFigure;
+ }
+
+ }
+
+}
diff --git a/org.eclipse.emf.refactor.comrel.diagram/src/comrel/diagram/edit/parts/ParallelQueuedUnit4EditPart.java b/org.eclipse.emf.refactor.comrel.diagram/src/comrel/diagram/edit/parts/ParallelQueuedUnit4EditPart.java
new file mode 100644
index 0000000..5df870a
--- /dev/null
+++ b/org.eclipse.emf.refactor.comrel.diagram/src/comrel/diagram/edit/parts/ParallelQueuedUnit4EditPart.java
@@ -0,0 +1,438 @@
+/*
+ *
+ */
+package comrel.diagram.edit.parts;
+
+import org.eclipse.draw2d.IFigure;
+import org.eclipse.draw2d.MarginBorder;
+import org.eclipse.draw2d.PositionConstants;
+import org.eclipse.draw2d.RectangleFigure;
+import org.eclipse.draw2d.RoundedRectangle;
+import org.eclipse.draw2d.Shape;
+import org.eclipse.draw2d.StackLayout;
+import org.eclipse.draw2d.geometry.Dimension;
+import org.eclipse.gef.EditPart;
+import org.eclipse.gef.EditPolicy;
+import org.eclipse.gef.Request;
+import org.eclipse.gef.commands.Command;
+import org.eclipse.gef.editpolicies.LayoutEditPolicy;
+import org.eclipse.gef.editpolicies.NonResizableEditPolicy;
+import org.eclipse.gef.requests.CreateRequest;
+import org.eclipse.gmf.runtime.diagram.ui.editparts.AbstractBorderedShapeEditPart;
+import org.eclipse.gmf.runtime.diagram.ui.editparts.IBorderItemEditPart;
+import org.eclipse.gmf.runtime.diagram.ui.editparts.IGraphicalEditPart;
+import org.eclipse.gmf.runtime.diagram.ui.editpolicies.BorderItemSelectionEditPolicy;
+import org.eclipse.gmf.runtime.diagram.ui.editpolicies.CreationEditPolicy;
+import org.eclipse.gmf.runtime.diagram.ui.editpolicies.DragDropEditPolicy;
+import org.eclipse.gmf.runtime.diagram.ui.editpolicies.EditPolicyRoles;
+import org.eclipse.gmf.runtime.diagram.ui.figures.BorderItemLocator;
+import org.eclipse.gmf.runtime.draw2d.ui.figures.ConstrainedToolbarLayout;
+import org.eclipse.gmf.runtime.draw2d.ui.figures.WrappingLabel;
+import org.eclipse.gmf.runtime.gef.ui.figures.DefaultSizeNodeFigure;
+import org.eclipse.gmf.runtime.gef.ui.figures.NodeFigure;
+import org.eclipse.gmf.runtime.notation.View;
+import org.eclipse.swt.graphics.Color;
+
+import comrel.diagram.edit.parts.ParallelQueuedUnit6EditPart.ParallelQueuedUnitFigure;
+import comrel.diagram.edit.parts.custom.Labels;
+import comrel.diagram.edit.policies.OpenDiagramEditPolicy;
+import comrel.diagram.edit.policies.ParallelQueuedUnit4CanonicalEditPolicy;
+import comrel.diagram.edit.policies.ParallelQueuedUnit4ItemSemanticEditPolicy;
+import comrel.diagram.part.ComrelVisualIDRegistry;
+
+/**
+ * @generated
+ */
+public class ParallelQueuedUnit4EditPart extends AbstractBorderedShapeEditPart {
+
+ /**
+ * @generated
+ */
+ public static final int VISUAL_ID = 3037;
+
+ /**
+ * @generated
+ */
+ protected IFigure contentPane;
+
+ /**
+ * @generated
+ */
+ protected IFigure primaryShape;
+
+ /**
+ * @generated
+ */
+ public ParallelQueuedUnit4EditPart(View view) {
+ super(view);
+ }
+
+ /**
+ * @generated
+ */
+ protected void createDefaultEditPolicies() {
+ installEditPolicy(EditPolicyRoles.CREATION_ROLE,
+ new CreationEditPolicy());
+ super.createDefaultEditPolicies();
+ installEditPolicy(EditPolicyRoles.SEMANTIC_ROLE,
+ new ParallelQueuedUnit4ItemSemanticEditPolicy());
+ installEditPolicy(EditPolicyRoles.DRAG_DROP_ROLE,
+ new DragDropEditPolicy());
+ installEditPolicy(EditPolicyRoles.CANONICAL_ROLE,
+ new ParallelQueuedUnit4CanonicalEditPolicy());
+ installEditPolicy(EditPolicy.LAYOUT_ROLE, createLayoutEditPolicy());
+ installEditPolicy(EditPolicyRoles.OPEN_ROLE,
+ new OpenDiagramEditPolicy());
+ // XXX need an SCR to runtime to have another abstract superclass that would let children add reasonable editpolicies
+ // removeEditPolicy(org.eclipse.gmf.runtime.diagram.ui.editpolicies.EditPolicyRoles.CONNECTION_HANDLES_ROLE);
+ }
+
+ /**
+ * @generated
+ */
+ protected LayoutEditPolicy createLayoutEditPolicy() {
+ org.eclipse.gmf.runtime.diagram.ui.editpolicies.LayoutEditPolicy lep = new org.eclipse.gmf.runtime.diagram.ui.editpolicies.LayoutEditPolicy() {
+
+ protected EditPolicy createChildEditPolicy(EditPart child) {
+ View childView = (View) child.getModel();
+ switch (ComrelVisualIDRegistry.getVisualID(childView)) {
+ case SingleInputPort3EditPart.VISUAL_ID:
+ case MultiInputPort2EditPart.VISUAL_ID:
+ return new BorderItemSelectionEditPolicy();
+ }
+ EditPolicy result = child
+ .getEditPolicy(EditPolicy.PRIMARY_DRAG_ROLE);
+ if (result == null) {
+ result = new NonResizableEditPolicy();
+ }
+ return result;
+ }
+
+ protected Command getMoveChildrenCommand(Request request) {
+ return null;
+ }
+
+ protected Command getCreateCommand(CreateRequest request) {
+ return null;
+ }
+ };
+ return lep;
+ }
+
+ /**
+ * @generated NOT
+ */
+ protected IFigure createNodeShape() {
+ ParallelQueuedUnitFigure figure = new ParallelQueuedUnitFigure();
+ RectangleFigure compHelper = (RectangleFigure) figure.getChildren()
+ .get(1);
+ RectangleFigure compRef = (RectangleFigure) figure.getChildren().get(2);
+ Labels.setLabels(compHelper, compRef, true);
+ // RefactoringUnit unit = (RefactoringUnit) this.resolveSemanticElement();
+ // unit.setFigure(figure);
+ return primaryShape = figure;
+ }
+
+ /**
+ * @generated
+ */
+ public ParallelQueuedUnitFigure getPrimaryShape() {
+ return (ParallelQueuedUnitFigure) primaryShape;
+ }
+
+ /**
+ * @generated NOT
+ */
+ protected boolean addFixedChild(EditPart childEditPart) {
+ if (childEditPart instanceof ParallelQueuedUnitNameTypeLblStrict4EditPart) {
+ ((ParallelQueuedUnitNameTypeLblStrict4EditPart) childEditPart)
+ .setLabel(getPrimaryShape()
+ .getFigureParallelQueuedUnitLabelFigure());
+ return true;
+ }
+ if (childEditPart instanceof ParallelQueuedUnitParallelQueuedUnitHelperUnitsCompartment3EditPart) {
+ IFigure pane = getPrimaryShape()
+ .getParallelQueuedUnitHelperUnitsCompartmentFigure();
+ setupContentPane(pane); // FIXME each comparment should handle his content pane in his own way
+ pane.add(((ParallelQueuedUnitParallelQueuedUnitHelperUnitsCompartment3EditPart) childEditPart)
+ .getFigure());
+ return true;
+ }
+ if (childEditPart instanceof ParallelQueuedUnitParallelQueuedUnitRefactoringUnitsCompartment3EditPart) {
+ IFigure pane = getPrimaryShape()
+ .getParallelQueuedUnitRefactoringUnitsCompartmentFigure();
+ setupContentPane(pane); // FIXME each comparment should handle his content pane in his own way
+ pane.add(((ParallelQueuedUnitParallelQueuedUnitRefactoringUnitsCompartment3EditPart) childEditPart)
+ .getFigure());
+ return true;
+ }
+ if (childEditPart instanceof SingleInputPort3EditPart) {
+ BorderItemLocator locator = new BorderItemLocator(getMainFigure(),
+ PositionConstants.NORTH);
+ locator.setCurrentSideOfParent(PositionConstants.NORTH); // Position des Ports
+ locator.setPreferredSideOfParent(PositionConstants.NORTH); // Position des Ports
+ getBorderedFigure().getBorderItemContainer().add(
+ ((SingleInputPort3EditPart) childEditPart).getFigure(),
+ locator);
+ return true;
+ }
+ if (childEditPart instanceof MultiInputPort2EditPart) {
+ BorderItemLocator locator = new BorderItemLocator(getMainFigure(),
+ PositionConstants.NORTH);
+ locator.setCurrentSideOfParent(PositionConstants.NORTH); // Position des Ports
+ locator.setPreferredSideOfParent(PositionConstants.NORTH); // Position des Ports
+ getBorderedFigure().getBorderItemContainer().add(
+ ((MultiInputPort2EditPart) childEditPart).getFigure(),
+ locator);
+ return true;
+ }
+ return false;
+ }
+
+ /**
+ * @generated NOT
+ */
+ protected boolean removeFixedChild(EditPart childEditPart) {
+ if (childEditPart instanceof ParallelQueuedUnitNameTypeLblStrict4EditPart) {
+ return true;
+ }
+ if (childEditPart instanceof ParallelQueuedUnitParallelQueuedUnitHelperUnitsCompartment3EditPart) {
+ IFigure pane = getPrimaryShape()
+ .getParallelQueuedUnitHelperUnitsCompartmentFigure();
+ setupContentPane(pane); // FIXME each comparment should handle his content pane in his own way
+ pane.remove(((ParallelQueuedUnitParallelQueuedUnitHelperUnitsCompartment3EditPart) childEditPart)
+ .getFigure());
+ return true;
+ }
+ if (childEditPart instanceof ParallelQueuedUnitParallelQueuedUnitRefactoringUnitsCompartment3EditPart) {
+ IFigure pane = getPrimaryShape()
+ .getParallelQueuedUnitRefactoringUnitsCompartmentFigure();
+ setupContentPane(pane); // FIXME each comparment should handle his content pane in his own way
+ pane.remove(((ParallelQueuedUnitParallelQueuedUnitRefactoringUnitsCompartment3EditPart) childEditPart)
+ .getFigure());
+ return true;
+ }
+ if (childEditPart instanceof SingleInputPort3EditPart) {
+ getBorderedFigure().getBorderItemContainer().remove(
+ ((SingleInputPort3EditPart) childEditPart).getFigure());
+ return true;
+ }
+ if (childEditPart instanceof MultiInputPort2EditPart) {
+ // getBorderedFigure().getBorderItemContainer().remove(
+ // ((MultiInputPort2EditPart) childEditPart).getFigure());
+ return true;
+ }
+ return false;
+ }
+
+ /**
+ * @generated
+ */
+ protected void addChildVisual(EditPart childEditPart, int index) {
+ if (addFixedChild(childEditPart)) {
+ return;
+ }
+ super.addChildVisual(childEditPart, -1);
+ }
+
+ /**
+ * @generated
+ */
+ protected void removeChildVisual(EditPart childEditPart) {
+ if (removeFixedChild(childEditPart)) {
+ return;
+ }
+ super.removeChildVisual(childEditPart);
+ }
+
+ /**
+ * @generated
+ */
+ protected IFigure getContentPaneFor(IGraphicalEditPart editPart) {
+ if (editPart instanceof ParallelQueuedUnitParallelQueuedUnitHelperUnitsCompartment3EditPart) {
+ return getPrimaryShape()
+ .getParallelQueuedUnitHelperUnitsCompartmentFigure();
+ }
+ if (editPart instanceof ParallelQueuedUnitParallelQueuedUnitRefactoringUnitsCompartment3EditPart) {
+ return getPrimaryShape()
+ .getParallelQueuedUnitRefactoringUnitsCompartmentFigure();
+ }
+ if (editPart instanceof IBorderItemEditPart) {
+ return getBorderedFigure().getBorderItemContainer();
+ }
+ return getContentPane();
+ }
+
+ /**
+ * @generated
+ */
+ protected NodeFigure createNodePlate() {
+ DefaultSizeNodeFigure result = new DefaultSizeNodeFigure(40, 40);
+ return result;
+ }
+
+ /**
+ * Creates figure for this edit part.
+ *
+ * Body of this method does not depend on settings in generation model
+ * so you may safely remove <i>generated</i> tag and modify it.
+ *
+ * @generated
+ */
+ protected NodeFigure createMainFigure() {
+ NodeFigure figure = createNodePlate();
+ figure.setLayoutManager(new StackLayout());
+ IFigure shape = createNodeShape();
+ figure.add(shape);
+ contentPane = setupContentPane(shape);
+ return figure;
+ }
+
+ /**
+ * Default implementation treats passed figure as content pane.
+ * Respects layout one may have set for generated figure.
+ * @param nodeShape instance of generated figure class
+ * @generated
+ */
+ protected IFigure setupContentPane(IFigure nodeShape) {
+ if (nodeShape.getLayoutManager() == null) {
+ ConstrainedToolbarLayout layout = new ConstrainedToolbarLayout();
+ layout.setSpacing(5);
+ nodeShape.setLayoutManager(layout);
+ }
+ return nodeShape; // use nodeShape itself as contentPane
+ }
+
+ /**
+ * @generated
+ */
+ public IFigure getContentPane() {
+ if (contentPane != null) {
+ return contentPane;
+ }
+ return super.getContentPane();
+ }
+
+ /**
+ * @generated
+ */
+ protected void setForegroundColor(Color color) {
+ if (primaryShape != null) {
+ primaryShape.setForegroundColor(color);
+ }
+ }
+
+ /**
+ * @generated
+ */
+ protected void setBackgroundColor(Color color) {
+ if (primaryShape != null) {
+ primaryShape.setBackgroundColor(color);
+ }
+ }
+
+ /**
+ * @generated
+ */
+ protected void setLineWidth(int width) {
+ if (primaryShape instanceof Shape) {
+ ((Shape) primaryShape).setLineWidth(width);
+ }
+ }
+
+ /**
+ * @generated
+ */
+ protected void setLineType(int style) {
+ if (primaryShape instanceof Shape) {
+ ((Shape) primaryShape).setLineStyle(style);
+ }
+ }
+
+ /**
+ * @generated
+ */
+ public EditPart getPrimaryChildEditPart() {
+ return getChildBySemanticHint(ComrelVisualIDRegistry
+ .getType(ParallelQueuedUnitNameTypeLblStrict4EditPart.VISUAL_ID));
+ }
+
+ /**
+ * @generated
+ */
+ public class ParallelQueuedUnitFigure extends RoundedRectangle {
+
+ /**
+ * @generated
+ */
+ private WrappingLabel fFigureParallelQueuedUnitLabelFigure;
+ /**
+ * @generated
+ */
+ private RectangleFigure fParallelQueuedUnitHelperUnitsCompartmentFigure;
+ /**
+ * @generated
+ */
+ private RectangleFigure fParallelQueuedUnitRefactoringUnitsCompartmentFigure;
+
+ /**
+ * @generated
+ */
+ public ParallelQueuedUnitFigure() {
+ this.setCornerDimensions(new Dimension(getMapMode().DPtoLP(8),
+ getMapMode().DPtoLP(8)));
+ this.setBorder(new MarginBorder(getMapMode().DPtoLP(5),
+ getMapMode().DPtoLP(5), getMapMode().DPtoLP(5),
+ getMapMode().DPtoLP(5)));
+ createContents();
+ }
+
+ /**
+ * @generated
+ */
+ private void createContents() {
+
+ fFigureParallelQueuedUnitLabelFigure = new WrappingLabel();
+ fFigureParallelQueuedUnitLabelFigure.setText("ParallelQueuedUnit");
+ fFigureParallelQueuedUnitLabelFigure.setMaximumSize(new Dimension(
+ getMapMode().DPtoLP(10000), getMapMode().DPtoLP(50)));
+
+ this.add(fFigureParallelQueuedUnitLabelFigure);
+
+ fParallelQueuedUnitHelperUnitsCompartmentFigure = new RectangleFigure();
+ fParallelQueuedUnitHelperUnitsCompartmentFigure.setOutline(false);
+
+ this.add(fParallelQueuedUnitHelperUnitsCompartmentFigure);
+
+ fParallelQueuedUnitRefactoringUnitsCompartmentFigure = new RectangleFigure();
+ fParallelQueuedUnitRefactoringUnitsCompartmentFigure
+ .setOutline(false);
+
+ this.add(fParallelQueuedUnitRefactoringUnitsCompartmentFigure);
+
+ }
+
+ /**
+ * @generated
+ */
+ public WrappingLabel getFigureParallelQueuedUnitLabelFigure() {
+ return fFigureParallelQueuedUnitLabelFigure;
+ }
+
+ /**
+ * @generated
+ */
+ public RectangleFigure getParallelQueuedUnitHelperUnitsCompartmentFigure() {
+ return fParallelQueuedUnitHelperUnitsCompartmentFigure;
+ }
+
+ /**
+ * @generated
+ */
+ public RectangleFigure getParallelQueuedUnitRefactoringUnitsCompartmentFigure() {
+ return fParallelQueuedUnitRefactoringUnitsCompartmentFigure;
+ }
+
+ }
+
+}
diff --git a/org.eclipse.emf.refactor.comrel.diagram/src/comrel/diagram/edit/parts/ParallelQueuedUnit5EditPart.java b/org.eclipse.emf.refactor.comrel.diagram/src/comrel/diagram/edit/parts/ParallelQueuedUnit5EditPart.java
new file mode 100644
index 0000000..23800ba
--- /dev/null
+++ b/org.eclipse.emf.refactor.comrel.diagram/src/comrel/diagram/edit/parts/ParallelQueuedUnit5EditPart.java
@@ -0,0 +1,438 @@
+/*
+ *
+ */
+package comrel.diagram.edit.parts;
+
+import org.eclipse.draw2d.IFigure;
+import org.eclipse.draw2d.MarginBorder;
+import org.eclipse.draw2d.PositionConstants;
+import org.eclipse.draw2d.RectangleFigure;
+import org.eclipse.draw2d.RoundedRectangle;
+import org.eclipse.draw2d.Shape;
+import org.eclipse.draw2d.StackLayout;
+import org.eclipse.draw2d.geometry.Dimension;
+import org.eclipse.gef.EditPart;
+import org.eclipse.gef.EditPolicy;
+import org.eclipse.gef.Request;
+import org.eclipse.gef.commands.Command;
+import org.eclipse.gef.editpolicies.LayoutEditPolicy;
+import org.eclipse.gef.editpolicies.NonResizableEditPolicy;
+import org.eclipse.gef.requests.CreateRequest;
+import org.eclipse.gmf.runtime.diagram.ui.editparts.AbstractBorderedShapeEditPart;
+import org.eclipse.gmf.runtime.diagram.ui.editparts.IBorderItemEditPart;
+import org.eclipse.gmf.runtime.diagram.ui.editparts.IGraphicalEditPart;
+import org.eclipse.gmf.runtime.diagram.ui.editpolicies.BorderItemSelectionEditPolicy;
+import org.eclipse.gmf.runtime.diagram.ui.editpolicies.CreationEditPolicy;
+import org.eclipse.gmf.runtime.diagram.ui.editpolicies.DragDropEditPolicy;
+import org.eclipse.gmf.runtime.diagram.ui.editpolicies.EditPolicyRoles;
+import org.eclipse.gmf.runtime.diagram.ui.figures.BorderItemLocator;
+import org.eclipse.gmf.runtime.draw2d.ui.figures.ConstrainedToolbarLayout;
+import org.eclipse.gmf.runtime.draw2d.ui.figures.WrappingLabel;
+import org.eclipse.gmf.runtime.gef.ui.figures.DefaultSizeNodeFigure;
+import org.eclipse.gmf.runtime.gef.ui.figures.NodeFigure;
+import org.eclipse.gmf.runtime.notation.View;
+import org.eclipse.swt.graphics.Color;
+
+import comrel.diagram.edit.parts.ParallelQueuedUnit6EditPart.ParallelQueuedUnitFigure;
+import comrel.diagram.edit.parts.custom.Labels;
+import comrel.diagram.edit.policies.OpenDiagramEditPolicy;
+import comrel.diagram.edit.policies.ParallelQueuedUnit5CanonicalEditPolicy;
+import comrel.diagram.edit.policies.ParallelQueuedUnit5ItemSemanticEditPolicy;
+import comrel.diagram.part.ComrelVisualIDRegistry;
+
+/**
+ * @generated
+ */
+public class ParallelQueuedUnit5EditPart extends AbstractBorderedShapeEditPart {
+
+ /**
+ * @generated
+ */
+ public static final int VISUAL_ID = 3043;
+
+ /**
+ * @generated
+ */
+ protected IFigure contentPane;
+
+ /**
+ * @generated
+ */
+ protected IFigure primaryShape;
+
+ /**
+ * @generated
+ */
+ public ParallelQueuedUnit5EditPart(View view) {
+ super(view);
+ }
+
+ /**
+ * @generated
+ */
+ protected void createDefaultEditPolicies() {
+ installEditPolicy(EditPolicyRoles.CREATION_ROLE,
+ new CreationEditPolicy());
+ super.createDefaultEditPolicies();
+ installEditPolicy(EditPolicyRoles.SEMANTIC_ROLE,
+ new ParallelQueuedUnit5ItemSemanticEditPolicy());
+ installEditPolicy(EditPolicyRoles.DRAG_DROP_ROLE,
+ new DragDropEditPolicy());
+ installEditPolicy(EditPolicyRoles.CANONICAL_ROLE,
+ new ParallelQueuedUnit5CanonicalEditPolicy());
+ installEditPolicy(EditPolicy.LAYOUT_ROLE, createLayoutEditPolicy());
+ installEditPolicy(EditPolicyRoles.OPEN_ROLE,
+ new OpenDiagramEditPolicy());
+ // XXX need an SCR to runtime to have another abstract superclass that would let children add reasonable editpolicies
+ // removeEditPolicy(org.eclipse.gmf.runtime.diagram.ui.editpolicies.EditPolicyRoles.CONNECTION_HANDLES_ROLE);
+ }
+
+ /**
+ * @generated
+ */
+ protected LayoutEditPolicy createLayoutEditPolicy() {
+ org.eclipse.gmf.runtime.diagram.ui.editpolicies.LayoutEditPolicy lep = new org.eclipse.gmf.runtime.diagram.ui.editpolicies.LayoutEditPolicy() {
+
+ protected EditPolicy createChildEditPolicy(EditPart child) {
+ View childView = (View) child.getModel();
+ switch (ComrelVisualIDRegistry.getVisualID(childView)) {
+ case SingleInputPort3EditPart.VISUAL_ID:
+ case MultiInputPort2EditPart.VISUAL_ID:
+ return new BorderItemSelectionEditPolicy();
+ }
+ EditPolicy result = child
+ .getEditPolicy(EditPolicy.PRIMARY_DRAG_ROLE);
+ if (result == null) {
+ result = new NonResizableEditPolicy();
+ }
+ return result;
+ }
+
+ protected Command getMoveChildrenCommand(Request request) {
+ return null;
+ }
+
+ protected Command getCreateCommand(CreateRequest request) {
+ return null;
+ }
+ };
+ return lep;
+ }
+
+ /**
+ * @generated NOT
+ */
+ protected IFigure createNodeShape() {
+ ParallelQueuedUnitFigure figure = new ParallelQueuedUnitFigure();
+ RectangleFigure compHelper = (RectangleFigure) figure.getChildren()
+ .get(1);
+ RectangleFigure compRef = (RectangleFigure) figure.getChildren().get(2);
+ Labels.setLabels(compHelper, compRef, true);
+ // RefactoringUnit unit = (RefactoringUnit) this.resolveSemanticElement();
+ // unit.setFigure(figure);
+ return primaryShape = figure;
+ }
+
+ /**
+ * @generated
+ */
+ public ParallelQueuedUnitFigure getPrimaryShape() {
+ return (ParallelQueuedUnitFigure) primaryShape;
+ }
+
+ /**
+ * @generated NOT
+ */
+ protected boolean addFixedChild(EditPart childEditPart) {
+ if (childEditPart instanceof ParallelQueuedUnitNameTypeLblStrict5EditPart) {
+ ((ParallelQueuedUnitNameTypeLblStrict5EditPart) childEditPart)
+ .setLabel(getPrimaryShape()
+ .getFigureParallelQueuedUnitLabelFigure());
+ return true;
+ }
+ if (childEditPart instanceof ParallelQueuedUnitParallelQueuedUnitHelperUnitsCompartment4EditPart) {
+ IFigure pane = getPrimaryShape()
+ .getParallelQueuedUnitHelperUnitsCompartmentFigure();
+ setupContentPane(pane); // FIXME each comparment should handle his content pane in his own way
+ pane.add(((ParallelQueuedUnitParallelQueuedUnitHelperUnitsCompartment4EditPart) childEditPart)
+ .getFigure());
+ return true;
+ }
+ if (childEditPart instanceof ParallelQueuedUnitParallelQueuedUnitRefactoringUnitsCompartment4EditPart) {
+ IFigure pane = getPrimaryShape()
+ .getParallelQueuedUnitRefactoringUnitsCompartmentFigure();
+ setupContentPane(pane); // FIXME each comparment should handle his content pane in his own way
+ pane.add(((ParallelQueuedUnitParallelQueuedUnitRefactoringUnitsCompartment4EditPart) childEditPart)
+ .getFigure());
+ return true;
+ }
+ if (childEditPart instanceof SingleInputPort3EditPart) {
+ BorderItemLocator locator = new BorderItemLocator(getMainFigure(),
+ PositionConstants.NORTH);
+ locator.setCurrentSideOfParent(PositionConstants.NORTH); // Position des Ports
+ locator.setPreferredSideOfParent(PositionConstants.NORTH); // Position des Ports
+ getBorderedFigure().getBorderItemContainer().add(
+ ((SingleInputPort3EditPart) childEditPart).getFigure(),
+ locator);
+ return true;
+ }
+ if (childEditPart instanceof MultiInputPort2EditPart) {
+ BorderItemLocator locator = new BorderItemLocator(getMainFigure(),
+ PositionConstants.NORTH);
+ locator.setCurrentSideOfParent(PositionConstants.NORTH); // Position des Ports
+ locator.setPreferredSideOfParent(PositionConstants.NORTH); // Position des Ports
+ getBorderedFigure().getBorderItemContainer().add(
+ ((MultiInputPort2EditPart) childEditPart).getFigure(),
+ locator);
+ return true;
+ }
+ return false;
+ }
+
+ /**
+ * @generated NOT
+ */
+ protected boolean removeFixedChild(EditPart childEditPart) {
+ if (childEditPart instanceof ParallelQueuedUnitNameTypeLblStrict5EditPart) {
+ return true;
+ }
+ if (childEditPart instanceof ParallelQueuedUnitParallelQueuedUnitHelperUnitsCompartment4EditPart) {
+ IFigure pane = getPrimaryShape()
+ .getParallelQueuedUnitHelperUnitsCompartmentFigure();
+ setupContentPane(pane); // FIXME each comparment should handle his content pane in his own way
+ pane.remove(((ParallelQueuedUnitParallelQueuedUnitHelperUnitsCompartment4EditPart) childEditPart)
+ .getFigure());
+ return true;
+ }
+ if (childEditPart instanceof ParallelQueuedUnitParallelQueuedUnitRefactoringUnitsCompartment4EditPart) {
+ IFigure pane = getPrimaryShape()
+ .getParallelQueuedUnitRefactoringUnitsCompartmentFigure();
+ setupContentPane(pane); // FIXME each comparment should handle his content pane in his own way
+ pane.remove(((ParallelQueuedUnitParallelQueuedUnitRefactoringUnitsCompartment4EditPart) childEditPart)
+ .getFigure());
+ return true;
+ }
+ if (childEditPart instanceof SingleInputPort3EditPart) {
+ getBorderedFigure().getBorderItemContainer().remove(
+ ((SingleInputPort3EditPart) childEditPart).getFigure());
+ return true;
+ }
+ if (childEditPart instanceof MultiInputPort2EditPart) {
+ // getBorderedFigure().getBorderItemContainer().remove(
+ // ((MultiInputPort2EditPart) childEditPart).getFigure());
+ return true;
+ }
+ return false;
+ }
+
+ /**
+ * @generated
+ */
+ protected void addChildVisual(EditPart childEditPart, int index) {
+ if (addFixedChild(childEditPart)) {
+ return;
+ }
+ super.addChildVisual(childEditPart, -1);
+ }
+
+ /**
+ * @generated
+ */
+ protected void removeChildVisual(EditPart childEditPart) {
+ if (removeFixedChild(childEditPart)) {
+ return;
+ }
+ super.removeChildVisual(childEditPart);
+ }
+
+ /**
+ * @generated
+ */
+ protected IFigure getContentPaneFor(IGraphicalEditPart editPart) {
+ if (editPart instanceof ParallelQueuedUnitParallelQueuedUnitHelperUnitsCompartment4EditPart) {
+ return getPrimaryShape()
+ .getParallelQueuedUnitHelperUnitsCompartmentFigure();
+ }
+ if (editPart instanceof ParallelQueuedUnitParallelQueuedUnitRefactoringUnitsCompartment4EditPart) {
+ return getPrimaryShape()
+ .getParallelQueuedUnitRefactoringUnitsCompartmentFigure();
+ }
+ if (editPart instanceof IBorderItemEditPart) {
+ return getBorderedFigure().getBorderItemContainer();
+ }
+ return getContentPane();
+ }
+
+ /**
+ * @generated
+ */
+ protected NodeFigure createNodePlate() {
+ DefaultSizeNodeFigure result = new DefaultSizeNodeFigure(40, 40);
+ return result;
+ }
+
+ /**
+ * Creates figure for this edit part.
+ *
+ * Body of this method does not depend on settings in generation model
+ * so you may safely remove <i>generated</i> tag and modify it.
+ *
+ * @generated
+ */
+ protected NodeFigure createMainFigure() {
+ NodeFigure figure = createNodePlate();
+ figure.setLayoutManager(new StackLayout());
+ IFigure shape = createNodeShape();
+ figure.add(shape);
+ contentPane = setupContentPane(shape);
+ return figure;
+ }
+
+ /**
+ * Default implementation treats passed figure as content pane.
+ * Respects layout one may have set for generated figure.
+ * @param nodeShape instance of generated figure class
+ * @generated
+ */
+ protected IFigure setupContentPane(IFigure nodeShape) {
+ if (nodeShape.getLayoutManager() == null) {
+ ConstrainedToolbarLayout layout = new ConstrainedToolbarLayout();
+ layout.setSpacing(5);
+ nodeShape.setLayoutManager(layout);
+ }
+ return nodeShape; // use nodeShape itself as contentPane
+ }
+
+ /**
+ * @generated
+ */
+ public IFigure getContentPane() {
+ if (contentPane != null) {
+ return contentPane;
+ }
+ return super.getContentPane();
+ }
+
+ /**
+ * @generated
+ */
+ protected void setForegroundColor(Color color) {
+ if (primaryShape != null) {
+ primaryShape.setForegroundColor(color);
+ }
+ }
+
+ /**
+ * @generated
+ */
+ protected void setBackgroundColor(Color color) {
+ if (primaryShape != null) {
+ primaryShape.setBackgroundColor(color);
+ }
+ }
+
+ /**
+ * @generated
+ */
+ protected void setLineWidth(int width) {
+ if (primaryShape instanceof Shape) {
+ ((Shape) primaryShape).setLineWidth(width);
+ }
+ }
+
+ /**
+ * @generated
+ */
+ protected void setLineType(int style) {
+ if (primaryShape instanceof Shape) {
+ ((Shape) primaryShape).setLineStyle(style);
+ }
+ }
+
+ /**
+ * @generated
+ */
+ public EditPart getPrimaryChildEditPart() {
+ return getChildBySemanticHint(ComrelVisualIDRegistry
+ .getType(ParallelQueuedUnitNameTypeLblStrict5EditPart.VISUAL_ID));
+ }
+
+ /**
+ * @generated
+ */
+ public class ParallelQueuedUnitFigure extends RoundedRectangle {
+
+ /**
+ * @generated
+ */
+ private WrappingLabel fFigureParallelQueuedUnitLabelFigure;
+ /**
+ * @generated
+ */
+ private RectangleFigure fParallelQueuedUnitHelperUnitsCompartmentFigure;
+ /**
+ * @generated
+ */
+ private RectangleFigure fParallelQueuedUnitRefactoringUnitsCompartmentFigure;
+
+ /**
+ * @generated
+ */
+ public ParallelQueuedUnitFigure() {
+ this.setCornerDimensions(new Dimension(getMapMode().DPtoLP(8),
+ getMapMode().DPtoLP(8)));
+ this.setBorder(new MarginBorder(getMapMode().DPtoLP(5),
+ getMapMode().DPtoLP(5), getMapMode().DPtoLP(5),
+ getMapMode().DPtoLP(5)));
+ createContents();
+ }
+
+ /**
+ * @generated
+ */
+ private void createContents() {
+
+ fFigureParallelQueuedUnitLabelFigure = new WrappingLabel();
+ fFigureParallelQueuedUnitLabelFigure.setText("ParallelQueuedUnit");
+ fFigureParallelQueuedUnitLabelFigure.setMaximumSize(new Dimension(
+ getMapMode().DPtoLP(10000), getMapMode().DPtoLP(50)));
+
+ this.add(fFigureParallelQueuedUnitLabelFigure);
+
+ fParallelQueuedUnitHelperUnitsCompartmentFigure = new RectangleFigure();
+ fParallelQueuedUnitHelperUnitsCompartmentFigure.setOutline(false);
+
+ this.add(fParallelQueuedUnitHelperUnitsCompartmentFigure);
+
+ fParallelQueuedUnitRefactoringUnitsCompartmentFigure = new RectangleFigure();
+ fParallelQueuedUnitRefactoringUnitsCompartmentFigure
+ .setOutline(false);
+
+ this.add(fParallelQueuedUnitRefactoringUnitsCompartmentFigure);
+
+ }
+
+ /**
+ * @generated
+ */
+ public WrappingLabel getFigureParallelQueuedUnitLabelFigure() {
+ return fFigureParallelQueuedUnitLabelFigure;
+ }
+
+ /**
+ * @generated
+ */
+ public RectangleFigure getParallelQueuedUnitHelperUnitsCompartmentFigure() {
+ return fParallelQueuedUnitHelperUnitsCompartmentFigure;
+ }
+
+ /**
+ * @generated
+ */
+ public RectangleFigure getParallelQueuedUnitRefactoringUnitsCompartmentFigure() {
+ return fParallelQueuedUnitRefactoringUnitsCompartmentFigure;
+ }
+
+ }
+
+}
diff --git a/org.eclipse.emf.refactor.comrel.diagram/src/comrel/diagram/edit/parts/ParallelQueuedUnit6EditPart.java b/org.eclipse.emf.refactor.comrel.diagram/src/comrel/diagram/edit/parts/ParallelQueuedUnit6EditPart.java
new file mode 100644
index 0000000..2d330a2
--- /dev/null
+++ b/org.eclipse.emf.refactor.comrel.diagram/src/comrel/diagram/edit/parts/ParallelQueuedUnit6EditPart.java
@@ -0,0 +1,439 @@
+/*
+ *
+ */
+package comrel.diagram.edit.parts;
+
+import org.eclipse.draw2d.IFigure;
+import org.eclipse.draw2d.MarginBorder;
+import org.eclipse.draw2d.PositionConstants;
+import org.eclipse.draw2d.RectangleFigure;
+import org.eclipse.draw2d.RoundedRectangle;
+import org.eclipse.draw2d.Shape;
+import org.eclipse.draw2d.StackLayout;
+import org.eclipse.draw2d.geometry.Dimension;
+import org.eclipse.gef.EditPart;
+import org.eclipse.gef.EditPolicy;
+import org.eclipse.gef.Request;
+import org.eclipse.gef.commands.Command;
+import org.eclipse.gef.editpolicies.LayoutEditPolicy;
+import org.eclipse.gef.editpolicies.NonResizableEditPolicy;
+import org.eclipse.gef.requests.CreateRequest;
+import org.eclipse.gmf.runtime.diagram.ui.editparts.AbstractBorderedShapeEditPart;
+import org.eclipse.gmf.runtime.diagram.ui.editparts.IBorderItemEditPart;
+import org.eclipse.gmf.runtime.diagram.ui.editparts.IGraphicalEditPart;
+import org.eclipse.gmf.runtime.diagram.ui.editpolicies.BorderItemSelectionEditPolicy;
+import org.eclipse.gmf.runtime.diagram.ui.editpolicies.CreationEditPolicy;
+import org.eclipse.gmf.runtime.diagram.ui.editpolicies.DragDropEditPolicy;
+import org.eclipse.gmf.runtime.diagram.ui.editpolicies.EditPolicyRoles;
+import org.eclipse.gmf.runtime.diagram.ui.figures.BorderItemLocator;
+import org.eclipse.gmf.runtime.draw2d.ui.figures.ConstrainedToolbarLayout;
+import org.eclipse.gmf.runtime.draw2d.ui.figures.WrappingLabel;
+import org.eclipse.gmf.runtime.gef.ui.figures.DefaultSizeNodeFigure;
+import org.eclipse.gmf.runtime.gef.ui.figures.NodeFigure;
+import org.eclipse.gmf.runtime.notation.View;
+import org.eclipse.swt.graphics.Color;
+
+import comrel.RefactoringUnit;
+import comrel.diagram.edit.parts.ParallelQueuedUnit7EditPart.ParallelQueuedUnitFigure;
+import comrel.diagram.edit.parts.custom.Labels;
+import comrel.diagram.edit.policies.OpenDiagramEditPolicy;
+import comrel.diagram.edit.policies.ParallelQueuedUnit6CanonicalEditPolicy;
+import comrel.diagram.edit.policies.ParallelQueuedUnit6ItemSemanticEditPolicy;
+import comrel.diagram.part.ComrelVisualIDRegistry;
+
+/**
+ * @generated
+ */
+public class ParallelQueuedUnit6EditPart extends AbstractBorderedShapeEditPart {
+
+ /**
+ * @generated
+ */
+ public static final int VISUAL_ID = 3045;
+
+ /**
+ * @generated
+ */
+ protected IFigure contentPane;
+
+ /**
+ * @generated
+ */
+ protected IFigure primaryShape;
+
+ /**
+ * @generated
+ */
+ public ParallelQueuedUnit6EditPart(View view) {
+ super(view);
+ }
+
+ /**
+ * @generated
+ */
+ protected void createDefaultEditPolicies() {
+ installEditPolicy(EditPolicyRoles.CREATION_ROLE,
+ new CreationEditPolicy());
+ super.createDefaultEditPolicies();
+ installEditPolicy(EditPolicyRoles.SEMANTIC_ROLE,
+ new ParallelQueuedUnit6ItemSemanticEditPolicy());
+ installEditPolicy(EditPolicyRoles.DRAG_DROP_ROLE,
+ new DragDropEditPolicy());
+ installEditPolicy(EditPolicyRoles.CANONICAL_ROLE,
+ new ParallelQueuedUnit6CanonicalEditPolicy());
+ installEditPolicy(EditPolicy.LAYOUT_ROLE, createLayoutEditPolicy());
+ installEditPolicy(EditPolicyRoles.OPEN_ROLE,
+ new OpenDiagramEditPolicy());
+ // XXX need an SCR to runtime to have another abstract superclass that would let children add reasonable editpolicies
+ // removeEditPolicy(org.eclipse.gmf.runtime.diagram.ui.editpolicies.EditPolicyRoles.CONNECTION_HANDLES_ROLE);
+ }
+
+ /**
+ * @generated
+ */
+ protected LayoutEditPolicy createLayoutEditPolicy() {
+ org.eclipse.gmf.runtime.diagram.ui.editpolicies.LayoutEditPolicy lep = new org.eclipse.gmf.runtime.diagram.ui.editpolicies.LayoutEditPolicy() {
+
+ protected EditPolicy createChildEditPolicy(EditPart child) {
+ View childView = (View) child.getModel();
+ switch (ComrelVisualIDRegistry.getVisualID(childView)) {
+ case SingleInputPort3EditPart.VISUAL_ID:
+ case MultiInputPort2EditPart.VISUAL_ID:
+ return new BorderItemSelectionEditPolicy();
+ }
+ EditPolicy result = child
+ .getEditPolicy(EditPolicy.PRIMARY_DRAG_ROLE);
+ if (result == null) {
+ result = new NonResizableEditPolicy();
+ }
+ return result;
+ }
+
+ protected Command getMoveChildrenCommand(Request request) {
+ return null;
+ }
+
+ protected Command getCreateCommand(CreateRequest request) {
+ return null;
+ }
+ };
+ return lep;
+ }
+
+ /**
+ * @generated NOT
+ */
+ protected IFigure createNodeShape() {
+ ParallelQueuedUnitFigure figure = new ParallelQueuedUnitFigure();
+ RectangleFigure compHelper = (RectangleFigure) figure.getChildren()
+ .get(1);
+ RectangleFigure compRef = (RectangleFigure) figure.getChildren().get(2);
+ Labels.setLabels(compHelper, compRef, true);
+ // RefactoringUnit unit = (RefactoringUnit) this.resolveSemanticElement();
+ // unit.setFigure(figure);
+ return primaryShape = figure;
+ }
+
+ /**
+ * @generated
+ */
+ public ParallelQueuedUnitFigure getPrimaryShape() {
+ return (ParallelQueuedUnitFigure) primaryShape;
+ }
+
+ /**
+ * @generated NOT
+ */
+ protected boolean addFixedChild(EditPart childEditPart) {
+ if (childEditPart instanceof ParallelQueuedUnitNameTypeLblStrict6EditPart) {
+ ((ParallelQueuedUnitNameTypeLblStrict6EditPart) childEditPart)
+ .setLabel(getPrimaryShape()
+ .getFigureParallelQueuedUnitLabelFigure());
+ return true;
+ }
+ if (childEditPart instanceof ParallelQueuedUnitParallelQueuedUnitHelperUnitsCompartment5EditPart) {
+ IFigure pane = getPrimaryShape()
+ .getParallelQueuedUnitHelperUnitsCompartmentFigure();
+ setupContentPane(pane); // FIXME each comparment should handle his content pane in his own way
+ pane.add(((ParallelQueuedUnitParallelQueuedUnitHelperUnitsCompartment5EditPart) childEditPart)
+ .getFigure());
+ return true;
+ }
+ if (childEditPart instanceof ParallelQueuedUnitParallelQueuedUnitRefactoringUnitsCompartment5EditPart) {
+ IFigure pane = getPrimaryShape()
+ .getParallelQueuedUnitRefactoringUnitsCompartmentFigure();
+ setupContentPane(pane); // FIXME each comparment should handle his content pane in his own way
+ pane.add(((ParallelQueuedUnitParallelQueuedUnitRefactoringUnitsCompartment5EditPart) childEditPart)
+ .getFigure());
+ return true;
+ }
+ if (childEditPart instanceof SingleInputPort3EditPart) {
+ BorderItemLocator locator = new BorderItemLocator(getMainFigure(),
+ PositionConstants.NORTH);
+ locator.setCurrentSideOfParent(PositionConstants.NORTH); // Position des Ports
+ locator.setPreferredSideOfParent(PositionConstants.NORTH); // Position des Ports
+ getBorderedFigure().getBorderItemContainer().add(
+ ((SingleInputPort3EditPart) childEditPart).getFigure(),
+ locator);
+ return true;
+ }
+ if (childEditPart instanceof MultiInputPort2EditPart) {
+ BorderItemLocator locator = new BorderItemLocator(getMainFigure(),
+ PositionConstants.NORTH);
+ locator.setCurrentSideOfParent(PositionConstants.NORTH); // Position des Ports
+ locator.setPreferredSideOfParent(PositionConstants.NORTH); // Position des Ports
+ getBorderedFigure().getBorderItemContainer().add(
+ ((MultiInputPort2EditPart) childEditPart).getFigure(),
+ locator);
+ return true;
+ }
+ return false;
+ }
+
+ /**
+ * @generated NOT
+ */
+ protected boolean removeFixedChild(EditPart childEditPart) {
+ if (childEditPart instanceof ParallelQueuedUnitNameTypeLblStrict6EditPart) {
+ return true;
+ }
+ if (childEditPart instanceof ParallelQueuedUnitParallelQueuedUnitHelperUnitsCompartment5EditPart) {
+ IFigure pane = getPrimaryShape()
+ .getParallelQueuedUnitHelperUnitsCompartmentFigure();
+ setupContentPane(pane); // FIXME each comparment should handle his content pane in his own way
+ pane.remove(((ParallelQueuedUnitParallelQueuedUnitHelperUnitsCompartment5EditPart) childEditPart)
+ .getFigure());
+ return true;
+ }
+ if (childEditPart instanceof ParallelQueuedUnitParallelQueuedUnitRefactoringUnitsCompartment5EditPart) {
+ IFigure pane = getPrimaryShape()
+ .getParallelQueuedUnitRefactoringUnitsCompartmentFigure();
+ setupContentPane(pane); // FIXME each comparment should handle his content pane in his own way
+ pane.remove(((ParallelQueuedUnitParallelQueuedUnitRefactoringUnitsCompartment5EditPart) childEditPart)
+ .getFigure());
+ return true;
+ }
+ if (childEditPart instanceof SingleInputPort3EditPart) {
+ getBorderedFigure().getBorderItemContainer().remove(
+ ((SingleInputPort3EditPart) childEditPart).getFigure());
+ return true;
+ }
+ if (childEditPart instanceof MultiInputPort2EditPart) {
+ // getBorderedFigure().getBorderItemContainer().remove(
+ // ((MultiInputPort2EditPart) childEditPart).getFigure());
+ return true;
+ }
+ return false;
+ }
+
+ /**
+ * @generated
+ */
+ protected void addChildVisual(EditPart childEditPart, int index) {
+ if (addFixedChild(childEditPart)) {
+ return;
+ }
+ super.addChildVisual(childEditPart, -1);
+ }
+
+ /**
+ * @generated
+ */
+ protected void removeChildVisual(EditPart childEditPart) {
+ if (removeFixedChild(childEditPart)) {
+ return;
+ }
+ super.removeChildVisual(childEditPart);
+ }
+
+ /**
+ * @generated
+ */
+ protected IFigure getContentPaneFor(IGraphicalEditPart editPart) {
+ if (editPart instanceof ParallelQueuedUnitParallelQueuedUnitHelperUnitsCompartment5EditPart) {
+ return getPrimaryShape()
+ .getParallelQueuedUnitHelperUnitsCompartmentFigure();
+ }
+ if (editPart instanceof ParallelQueuedUnitParallelQueuedUnitRefactoringUnitsCompartment5EditPart) {
+ return getPrimaryShape()
+ .getParallelQueuedUnitRefactoringUnitsCompartmentFigure();
+ }
+ if (editPart instanceof IBorderItemEditPart) {
+ return getBorderedFigure().getBorderItemContainer();
+ }
+ return getContentPane();
+ }
+
+ /**
+ * @generated
+ */
+ protected NodeFigure createNodePlate() {
+ DefaultSizeNodeFigure result = new DefaultSizeNodeFigure(40, 40);
+ return result;
+ }
+
+ /**
+ * Creates figure for this edit part.
+ *
+ * Body of this method does not depend on settings in generation model
+ * so you may safely remove <i>generated</i> tag and modify it.
+ *
+ * @generated
+ */
+ protected NodeFigure createMainFigure() {
+ NodeFigure figure = createNodePlate();
+ figure.setLayoutManager(new StackLayout());
+ IFigure shape = createNodeShape();
+ figure.add(shape);
+ contentPane = setupContentPane(shape);
+ return figure;
+ }
+
+ /**
+ * Default implementation treats passed figure as content pane.
+ * Respects layout one may have set for generated figure.
+ * @param nodeShape instance of generated figure class
+ * @generated
+ */
+ protected IFigure setupContentPane(IFigure nodeShape) {
+ if (nodeShape.getLayoutManager() == null) {
+ ConstrainedToolbarLayout layout = new ConstrainedToolbarLayout();
+ layout.setSpacing(5);
+ nodeShape.setLayoutManager(layout);
+ }
+ return nodeShape; // use nodeShape itself as contentPane
+ }
+
+ /**
+ * @generated
+ */
+ public IFigure getContentPane() {
+ if (contentPane != null) {
+ return contentPane;
+ }
+ return super.getContentPane();
+ }
+
+ /**
+ * @generated
+ */
+ protected void setForegroundColor(Color color) {
+ if (primaryShape != null) {
+ primaryShape.setForegroundColor(color);
+ }
+ }
+
+ /**
+ * @generated
+ */
+ protected void setBackgroundColor(Color color) {
+ if (primaryShape != null) {
+ primaryShape.setBackgroundColor(color);
+ }
+ }
+
+ /**
+ * @generated
+ */
+ protected void setLineWidth(int width) {
+ if (primaryShape instanceof Shape) {
+ ((Shape) primaryShape).setLineWidth(width);
+ }
+ }
+
+ /**
+ * @generated
+ */
+ protected void setLineType(int style) {
+ if (primaryShape instanceof Shape) {
+ ((Shape) primaryShape).setLineStyle(style);
+ }
+ }
+
+ /**
+ * @generated
+ */
+ public EditPart getPrimaryChildEditPart() {
+ return getChildBySemanticHint(ComrelVisualIDRegistry
+ .getType(ParallelQueuedUnitNameTypeLblStrict6EditPart.VISUAL_ID));
+ }
+
+ /**
+ * @generated
+ */
+ public class ParallelQueuedUnitFigure extends RoundedRectangle {
+
+ /**
+ * @generated
+ */
+ private WrappingLabel fFigureParallelQueuedUnitLabelFigure;
+ /**
+ * @generated
+ */
+ private RectangleFigure fParallelQueuedUnitHelperUnitsCompartmentFigure;
+ /**
+ * @generated
+ */
+ private RectangleFigure fParallelQueuedUnitRefactoringUnitsCompartmentFigure;
+
+ /**
+ * @generated
+ */
+ public ParallelQueuedUnitFigure() {
+ this.setCornerDimensions(new Dimension(getMapMode().DPtoLP(8),
+ getMapMode().DPtoLP(8)));
+ this.setBorder(new MarginBorder(getMapMode().DPtoLP(5),
+ getMapMode().DPtoLP(5), getMapMode().DPtoLP(5),
+ getMapMode().DPtoLP(5)));
+ createContents();
+ }
+
+ /**
+ * @generated
+ */
+ private void createContents() {
+
+ fFigureParallelQueuedUnitLabelFigure = new WrappingLabel();
+ fFigureParallelQueuedUnitLabelFigure.setText("ParallelQueuedUnit");
+ fFigureParallelQueuedUnitLabelFigure.setMaximumSize(new Dimension(
+ getMapMode().DPtoLP(10000), getMapMode().DPtoLP(50)));
+
+ this.add(fFigureParallelQueuedUnitLabelFigure);
+
+ fParallelQueuedUnitHelperUnitsCompartmentFigure = new RectangleFigure();
+ fParallelQueuedUnitHelperUnitsCompartmentFigure.setOutline(false);
+
+ this.add(fParallelQueuedUnitHelperUnitsCompartmentFigure);
+
+ fParallelQueuedUnitRefactoringUnitsCompartmentFigure = new RectangleFigure();
+ fParallelQueuedUnitRefactoringUnitsCompartmentFigure
+ .setOutline(false);
+
+ this.add(fParallelQueuedUnitRefactoringUnitsCompartmentFigure);
+
+ }
+
+ /**
+ * @generated
+ */
+ public WrappingLabel getFigureParallelQueuedUnitLabelFigure() {
+ return fFigureParallelQueuedUnitLabelFigure;
+ }
+
+ /**
+ * @generated
+ */
+ public RectangleFigure getParallelQueuedUnitHelperUnitsCompartmentFigure() {
+ return fParallelQueuedUnitHelperUnitsCompartmentFigure;
+ }
+
+ /**
+ * @generated
+ */
+ public RectangleFigure getParallelQueuedUnitRefactoringUnitsCompartmentFigure() {
+ return fParallelQueuedUnitRefactoringUnitsCompartmentFigure;
+ }
+
+ }
+
+}
diff --git a/org.eclipse.emf.refactor.comrel.diagram/src/comrel/diagram/edit/parts/ParallelQueuedUnit7EditPart.java b/org.eclipse.emf.refactor.comrel.diagram/src/comrel/diagram/edit/parts/ParallelQueuedUnit7EditPart.java
new file mode 100644
index 0000000..d8d3adb
--- /dev/null
+++ b/org.eclipse.emf.refactor.comrel.diagram/src/comrel/diagram/edit/parts/ParallelQueuedUnit7EditPart.java
@@ -0,0 +1,438 @@
+/*
+ *
+ */
+package comrel.diagram.edit.parts;
+
+import org.eclipse.draw2d.IFigure;
+import org.eclipse.draw2d.MarginBorder;
+import org.eclipse.draw2d.PositionConstants;
+import org.eclipse.draw2d.RectangleFigure;
+import org.eclipse.draw2d.RoundedRectangle;
+import org.eclipse.draw2d.Shape;
+import org.eclipse.draw2d.StackLayout;
+import org.eclipse.draw2d.geometry.Dimension;
+import org.eclipse.gef.EditPart;
+import org.eclipse.gef.EditPolicy;
+import org.eclipse.gef.Request;
+import org.eclipse.gef.commands.Command;
+import org.eclipse.gef.editpolicies.LayoutEditPolicy;
+import org.eclipse.gef.editpolicies.NonResizableEditPolicy;
+import org.eclipse.gef.requests.CreateRequest;
+import org.eclipse.gmf.runtime.diagram.ui.editparts.AbstractBorderedShapeEditPart;
+import org.eclipse.gmf.runtime.diagram.ui.editparts.IBorderItemEditPart;
+import org.eclipse.gmf.runtime.diagram.ui.editparts.IGraphicalEditPart;
+import org.eclipse.gmf.runtime.diagram.ui.editpolicies.BorderItemSelectionEditPolicy;
+import org.eclipse.gmf.runtime.diagram.ui.editpolicies.CreationEditPolicy;
+import org.eclipse.gmf.runtime.diagram.ui.editpolicies.DragDropEditPolicy;
+import org.eclipse.gmf.runtime.diagram.ui.editpolicies.EditPolicyRoles;
+import org.eclipse.gmf.runtime.diagram.ui.figures.BorderItemLocator;
+import org.eclipse.gmf.runtime.draw2d.ui.figures.ConstrainedToolbarLayout;
+import org.eclipse.gmf.runtime.draw2d.ui.figures.WrappingLabel;
+import org.eclipse.gmf.runtime.gef.ui.figures.DefaultSizeNodeFigure;
+import org.eclipse.gmf.runtime.gef.ui.figures.NodeFigure;
+import org.eclipse.gmf.runtime.notation.View;
+import org.eclipse.swt.graphics.Color;
+
+import comrel.RefactoringUnit;
+import comrel.diagram.edit.parts.custom.Labels;
+import comrel.diagram.edit.policies.OpenDiagramEditPolicy;
+import comrel.diagram.edit.policies.ParallelQueuedUnit7CanonicalEditPolicy;
+import comrel.diagram.edit.policies.ParallelQueuedUnit7ItemSemanticEditPolicy;
+import comrel.diagram.part.ComrelVisualIDRegistry;
+
+/**
+ * @generated
+ */
+public class ParallelQueuedUnit7EditPart extends AbstractBorderedShapeEditPart {
+
+ /**
+ * @generated
+ */
+ public static final int VISUAL_ID = 3048;
+
+ /**
+ * @generated
+ */
+ protected IFigure contentPane;
+
+ /**
+ * @generated
+ */
+ protected IFigure primaryShape;
+
+ /**
+ * @generated
+ */
+ public ParallelQueuedUnit7EditPart(View view) {
+ super(view);
+ }
+
+ /**
+ * @generated
+ */
+ protected void createDefaultEditPolicies() {
+ installEditPolicy(EditPolicyRoles.CREATION_ROLE,
+ new CreationEditPolicy());
+ super.createDefaultEditPolicies();
+ installEditPolicy(EditPolicyRoles.SEMANTIC_ROLE,
+ new ParallelQueuedUnit7ItemSemanticEditPolicy());
+ installEditPolicy(EditPolicyRoles.DRAG_DROP_ROLE,
+ new DragDropEditPolicy());
+ installEditPolicy(EditPolicyRoles.CANONICAL_ROLE,
+ new ParallelQueuedUnit7CanonicalEditPolicy());
+ installEditPolicy(EditPolicy.LAYOUT_ROLE, createLayoutEditPolicy());
+ installEditPolicy(EditPolicyRoles.OPEN_ROLE,
+ new OpenDiagramEditPolicy());
+ // XXX need an SCR to runtime to have another abstract superclass that would let children add reasonable editpolicies
+ // removeEditPolicy(org.eclipse.gmf.runtime.diagram.ui.editpolicies.EditPolicyRoles.CONNECTION_HANDLES_ROLE);
+ }
+
+ /**
+ * @generated
+ */
+ protected LayoutEditPolicy createLayoutEditPolicy() {
+ org.eclipse.gmf.runtime.diagram.ui.editpolicies.LayoutEditPolicy lep = new org.eclipse.gmf.runtime.diagram.ui.editpolicies.LayoutEditPolicy() {
+
+ protected EditPolicy createChildEditPolicy(EditPart child) {
+ View childView = (View) child.getModel();
+ switch (ComrelVisualIDRegistry.getVisualID(childView)) {
+ case SingleInputPort3EditPart.VISUAL_ID:
+ case MultiInputPort2EditPart.VISUAL_ID:
+ return new BorderItemSelectionEditPolicy();
+ }
+ EditPolicy result = child
+ .getEditPolicy(EditPolicy.PRIMARY_DRAG_ROLE);
+ if (result == null) {
+ result = new NonResizableEditPolicy();
+ }
+ return result;
+ }
+
+ protected Command getMoveChildrenCommand(Request request) {
+ return null;
+ }
+
+ protected Command getCreateCommand(CreateRequest request) {
+ return null;
+ }
+ };
+ return lep;
+ }
+
+ /**
+ * @generated NOT
+ */
+ protected IFigure createNodeShape() {
+ ParallelQueuedUnitFigure figure = new ParallelQueuedUnitFigure();
+ RectangleFigure compHelper = (RectangleFigure) figure.getChildren()
+ .get(1);
+ RectangleFigure compRef = (RectangleFigure) figure.getChildren().get(2);
+ Labels.setLabels(compHelper, compRef, true);
+ RefactoringUnit unit = (RefactoringUnit) this.resolveSemanticElement();
+ unit.setFigure(figure);
+ return primaryShape = figure;
+ }
+
+ /**
+ * @generated
+ */
+ public ParallelQueuedUnitFigure getPrimaryShape() {
+ return (ParallelQueuedUnitFigure) primaryShape;
+ }
+
+ /**
+ * @generated NOT
+ */
+ protected boolean addFixedChild(EditPart childEditPart) {
+ if (childEditPart instanceof ParallelQueuedUnitNameTypeLblStrict7EditPart) {
+ ((ParallelQueuedUnitNameTypeLblStrict7EditPart) childEditPart)
+ .setLabel(getPrimaryShape()
+ .getFigureParallelQueuedUnitLabelFigure());
+ return true;
+ }
+ if (childEditPart instanceof ParallelQueuedUnitParallelQueuedUnitHelperUnitsCompartment6EditPart) {
+ IFigure pane = getPrimaryShape()
+ .getParallelQueuedUnitHelperUnitsCompartmentFigure();
+ setupContentPane(pane); // FIXME each comparment should handle his content pane in his own way
+ pane.add(((ParallelQueuedUnitParallelQueuedUnitHelperUnitsCompartment6EditPart) childEditPart)
+ .getFigure());
+ return true;
+ }
+ if (childEditPart instanceof ParallelQueuedUnitParallelQueuedUnitRefactoringUnitsCompartment6EditPart) {
+ IFigure pane = getPrimaryShape()
+ .getParallelQueuedUnitRefactoringUnitsCompartmentFigure();
+ setupContentPane(pane); // FIXME each comparment should handle his content pane in his own way
+ pane.add(((ParallelQueuedUnitParallelQueuedUnitRefactoringUnitsCompartment6EditPart) childEditPart)
+ .getFigure());
+ return true;
+ }
+ if (childEditPart instanceof SingleInputPort3EditPart) {
+ BorderItemLocator locator = new BorderItemLocator(getMainFigure(),
+ PositionConstants.NORTH);
+ locator.setCurrentSideOfParent(PositionConstants.NORTH); // Position des Ports
+ locator.setPreferredSideOfParent(PositionConstants.NORTH); // Position des Ports
+ getBorderedFigure().getBorderItemContainer().add(
+ ((SingleInputPort3EditPart) childEditPart).getFigure(),
+ locator);
+ return true;
+ }
+ if (childEditPart instanceof MultiInputPort2EditPart) {
+ BorderItemLocator locator = new BorderItemLocator(getMainFigure(),
+ PositionConstants.NORTH);
+ locator.setCurrentSideOfParent(PositionConstants.NORTH); // Position des Ports
+ locator.setPreferredSideOfParent(PositionConstants.NORTH); // Position des Ports
+ getBorderedFigure().getBorderItemContainer().add(
+ ((MultiInputPort2EditPart) childEditPart).getFigure(),
+ locator);
+ return true;
+ }
+ return false;
+ }
+
+ /**
+ * @generated NOT
+ */
+ protected boolean removeFixedChild(EditPart childEditPart) {
+ if (childEditPart instanceof ParallelQueuedUnitNameTypeLblStrict7EditPart) {
+ return true;
+ }
+ if (childEditPart instanceof ParallelQueuedUnitParallelQueuedUnitHelperUnitsCompartment6EditPart) {
+ IFigure pane = getPrimaryShape()
+ .getParallelQueuedUnitHelperUnitsCompartmentFigure();
+ setupContentPane(pane); // FIXME each comparment should handle his content pane in his own way
+ pane.remove(((ParallelQueuedUnitParallelQueuedUnitHelperUnitsCompartment6EditPart) childEditPart)
+ .getFigure());
+ return true;
+ }
+ if (childEditPart instanceof ParallelQueuedUnitParallelQueuedUnitRefactoringUnitsCompartment6EditPart) {
+ IFigure pane = getPrimaryShape()
+ .getParallelQueuedUnitRefactoringUnitsCompartmentFigure();
+ setupContentPane(pane); // FIXME each comparment should handle his content pane in his own way
+ pane.remove(((ParallelQueuedUnitParallelQueuedUnitRefactoringUnitsCompartment6EditPart) childEditPart)
+ .getFigure());
+ return true;
+ }
+ if (childEditPart instanceof SingleInputPort3EditPart) {
+ getBorderedFigure().getBorderItemContainer().remove(
+ ((SingleInputPort3EditPart) childEditPart).getFigure());
+ return true;
+ }
+ if (childEditPart instanceof MultiInputPort2EditPart) {
+ // getBorderedFigure().getBorderItemContainer().remove(
+ // ((MultiInputPort2EditPart) childEditPart).getFigure());
+ return true;
+ }
+ return false;
+ }
+
+ /**
+ * @generated
+ */
+ protected void addChildVisual(EditPart childEditPart, int index) {
+ if (addFixedChild(childEditPart)) {
+ return;
+ }
+ super.addChildVisual(childEditPart, -1);
+ }
+
+ /**
+ * @generated
+ */
+ protected void removeChildVisual(EditPart childEditPart) {
+ if (removeFixedChild(childEditPart)) {
+ return;
+ }
+ super.removeChildVisual(childEditPart);
+ }
+
+ /**
+ * @generated
+ */
+ protected IFigure getContentPaneFor(IGraphicalEditPart editPart) {
+ if (editPart instanceof ParallelQueuedUnitParallelQueuedUnitHelperUnitsCompartment6EditPart) {
+ return getPrimaryShape()
+ .getParallelQueuedUnitHelperUnitsCompartmentFigure();
+ }
+ if (editPart instanceof ParallelQueuedUnitParallelQueuedUnitRefactoringUnitsCompartment6EditPart) {
+ return getPrimaryShape()
+ .getParallelQueuedUnitRefactoringUnitsCompartmentFigure();
+ }
+ if (editPart instanceof IBorderItemEditPart) {
+ return getBorderedFigure().getBorderItemContainer();
+ }
+ return getContentPane();
+ }
+
+ /**
+ * @generated
+ */
+ protected NodeFigure createNodePlate() {
+ DefaultSizeNodeFigure result = new DefaultSizeNodeFigure(40, 40);
+ return result;
+ }
+
+ /**
+ * Creates figure for this edit part.
+ *
+ * Body of this method does not depend on settings in generation model
+ * so you may safely remove <i>generated</i> tag and modify it.
+ *
+ * @generated
+ */
+ protected NodeFigure createMainFigure() {
+ NodeFigure figure = createNodePlate();
+ figure.setLayoutManager(new StackLayout());
+ IFigure shape = createNodeShape();
+ figure.add(shape);
+ contentPane = setupContentPane(shape);
+ return figure;
+ }
+
+ /**
+ * Default implementation treats passed figure as content pane.
+ * Respects layout one may have set for generated figure.
+ * @param nodeShape instance of generated figure class
+ * @generated
+ */
+ protected IFigure setupContentPane(IFigure nodeShape) {
+ if (nodeShape.getLayoutManager() == null) {
+ ConstrainedToolbarLayout layout = new ConstrainedToolbarLayout();
+ layout.setSpacing(5);
+ nodeShape.setLayoutManager(layout);
+ }
+ return nodeShape; // use nodeShape itself as contentPane
+ }
+
+ /**
+ * @generated
+ */
+ public IFigure getContentPane() {
+ if (contentPane != null) {
+ return contentPane;
+ }
+ return super.getContentPane();
+ }
+
+ /**
+ * @generated
+ */
+ protected void setForegroundColor(Color color) {
+ if (primaryShape != null) {
+ primaryShape.setForegroundColor(color);
+ }
+ }
+
+ /**
+ * @generated
+ */
+ protected void setBackgroundColor(Color color) {
+ if (primaryShape != null) {
+ primaryShape.setBackgroundColor(color);
+ }
+ }
+
+ /**
+ * @generated
+ */
+ protected void setLineWidth(int width) {
+ if (primaryShape instanceof Shape) {
+ ((Shape) primaryShape).setLineWidth(width);
+ }
+ }
+
+ /**
+ * @generated
+ */
+ protected void setLineType(int style) {
+ if (primaryShape instanceof Shape) {
+ ((Shape) primaryShape).setLineStyle(style);
+ }
+ }
+
+ /**
+ * @generated
+ */
+ public EditPart getPrimaryChildEditPart() {
+ return getChildBySemanticHint(ComrelVisualIDRegistry
+ .getType(ParallelQueuedUnitNameTypeLblStrict7EditPart.VISUAL_ID));
+ }
+
+ /**
+ * @generated
+ */
+ public class ParallelQueuedUnitFigure extends RoundedRectangle {
+
+ /**
+ * @generated
+ */
+ private WrappingLabel fFigureParallelQueuedUnitLabelFigure;
+ /**
+ * @generated
+ */
+ private RectangleFigure fParallelQueuedUnitHelperUnitsCompartmentFigure;
+ /**
+ * @generated
+ */
+ private RectangleFigure fParallelQueuedUnitRefactoringUnitsCompartmentFigure;
+
+ /**
+ * @generated
+ */
+ public ParallelQueuedUnitFigure() {
+ this.setCornerDimensions(new Dimension(getMapMode().DPtoLP(8),
+ getMapMode().DPtoLP(8)));
+ this.setBorder(new MarginBorder(getMapMode().DPtoLP(5),
+ getMapMode().DPtoLP(5), getMapMode().DPtoLP(5),
+ getMapMode().DPtoLP(5)));
+ createContents();
+ }
+
+ /**
+ * @generated
+ */
+ private void createContents() {
+
+ fFigureParallelQueuedUnitLabelFigure = new WrappingLabel();
+ fFigureParallelQueuedUnitLabelFigure.setText("ParallelQueuedUnit");
+ fFigureParallelQueuedUnitLabelFigure.setMaximumSize(new Dimension(
+ getMapMode().DPtoLP(10000), getMapMode().DPtoLP(50)));
+
+ this.add(fFigureParallelQueuedUnitLabelFigure);
+
+ fParallelQueuedUnitHelperUnitsCompartmentFigure = new RectangleFigure();
+ fParallelQueuedUnitHelperUnitsCompartmentFigure.setOutline(false);
+
+ this.add(fParallelQueuedUnitHelperUnitsCompartmentFigure);
+
+ fParallelQueuedUnitRefactoringUnitsCompartmentFigure = new RectangleFigure();
+ fParallelQueuedUnitRefactoringUnitsCompartmentFigure
+ .setOutline(false);
+
+ this.add(fParallelQueuedUnitRefactoringUnitsCompartmentFigure);
+
+ }
+
+ /**
+ * @generated
+ */
+ public WrappingLabel getFigureParallelQueuedUnitLabelFigure() {
+ return fFigureParallelQueuedUnitLabelFigure;
+ }
+
+ /**
+ * @generated
+ */
+ public RectangleFigure getParallelQueuedUnitHelperUnitsCompartmentFigure() {
+ return fParallelQueuedUnitHelperUnitsCompartmentFigure;
+ }
+
+ /**
+ * @generated
+ */
+ public RectangleFigure getParallelQueuedUnitRefactoringUnitsCompartmentFigure() {
+ return fParallelQueuedUnitRefactoringUnitsCompartmentFigure;
+ }
+
+ }
+
+}
diff --git a/org.eclipse.emf.refactor.comrel.diagram/src/comrel/diagram/edit/parts/ParallelQueuedUnitEditPart.java b/org.eclipse.emf.refactor.comrel.diagram/src/comrel/diagram/edit/parts/ParallelQueuedUnitEditPart.java
new file mode 100644
index 0000000..c83d6e5
--- /dev/null
+++ b/org.eclipse.emf.refactor.comrel.diagram/src/comrel/diagram/edit/parts/ParallelQueuedUnitEditPart.java
@@ -0,0 +1,453 @@
+/*
+ *
+ */
+package comrel.diagram.edit.parts;
+
+import org.eclipse.draw2d.IFigure;
+import org.eclipse.draw2d.MarginBorder;
+import org.eclipse.draw2d.PositionConstants;
+import org.eclipse.draw2d.RectangleFigure;
+import org.eclipse.draw2d.RoundedRectangle;
+import org.eclipse.draw2d.Shape;
+import org.eclipse.draw2d.StackLayout;
+import org.eclipse.draw2d.geometry.Dimension;
+import org.eclipse.emf.common.notify.Notification;
+import org.eclipse.emf.ecore.EcorePackage;
+import org.eclipse.gef.EditPart;
+import org.eclipse.gef.EditPolicy;
+import org.eclipse.gef.Request;
+import org.eclipse.gef.commands.Command;
+import org.eclipse.gef.editpolicies.LayoutEditPolicy;
+import org.eclipse.gef.editpolicies.NonResizableEditPolicy;
+import org.eclipse.gef.requests.CreateRequest;
+import org.eclipse.gmf.runtime.diagram.ui.editparts.AbstractBorderedShapeEditPart;
+import org.eclipse.gmf.runtime.diagram.ui.editparts.IBorderItemEditPart;
+import org.eclipse.gmf.runtime.diagram.ui.editparts.IGraphicalEditPart;
+import org.eclipse.gmf.runtime.diagram.ui.editpolicies.BorderItemSelectionEditPolicy;
+import org.eclipse.gmf.runtime.diagram.ui.editpolicies.CreationEditPolicy;
+import org.eclipse.gmf.runtime.diagram.ui.editpolicies.DragDropEditPolicy;
+import org.eclipse.gmf.runtime.diagram.ui.editpolicies.EditPolicyRoles;
+import org.eclipse.gmf.runtime.diagram.ui.figures.BorderItemLocator;
+import org.eclipse.gmf.runtime.draw2d.ui.figures.ConstrainedToolbarLayout;
+import org.eclipse.gmf.runtime.draw2d.ui.figures.WrappingLabel;
+import org.eclipse.gmf.runtime.gef.ui.figures.DefaultSizeNodeFigure;
+import org.eclipse.gmf.runtime.gef.ui.figures.NodeFigure;
+import org.eclipse.gmf.runtime.notation.View;
+import org.eclipse.swt.graphics.Color;
+
+import comrel.diagram.edit.parts.ParallelQueuedUnit6EditPart.ParallelQueuedUnitFigure;
+import comrel.diagram.edit.parts.custom.Labels;
+import comrel.diagram.edit.policies.OpenDiagramEditPolicy;
+import comrel.diagram.edit.policies.ParallelQueuedUnitCanonicalEditPolicy;
+import comrel.diagram.edit.policies.ParallelQueuedUnitItemSemanticEditPolicy;
+import comrel.diagram.part.ComrelVisualIDRegistry;
+
+/**
+ * @generated
+ */
+public class ParallelQueuedUnitEditPart extends AbstractBorderedShapeEditPart {
+
+ /**
+ * @generated
+ */
+ public static final int VISUAL_ID = 2003;
+
+ /**
+ * @generated
+ */
+ protected IFigure contentPane;
+
+ /**
+ * @generated
+ */
+ protected IFigure primaryShape;
+
+ /**
+ * @generated
+ */
+ public ParallelQueuedUnitEditPart(View view) {
+ super(view);
+ }
+
+ /**
+ * @generated
+ */
+ protected void createDefaultEditPolicies() {
+ installEditPolicy(EditPolicyRoles.CREATION_ROLE,
+ new CreationEditPolicy());
+ super.createDefaultEditPolicies();
+ installEditPolicy(EditPolicyRoles.SEMANTIC_ROLE,
+ new ParallelQueuedUnitItemSemanticEditPolicy());
+ installEditPolicy(EditPolicyRoles.DRAG_DROP_ROLE,
+ new DragDropEditPolicy());
+ installEditPolicy(EditPolicyRoles.CANONICAL_ROLE,
+ new ParallelQueuedUnitCanonicalEditPolicy());
+ installEditPolicy(EditPolicy.LAYOUT_ROLE, createLayoutEditPolicy());
+ installEditPolicy(EditPolicyRoles.OPEN_ROLE,
+ new OpenDiagramEditPolicy());
+ // XXX need an SCR to runtime to have another abstract superclass that would let children add reasonable editpolicies
+ // removeEditPolicy(org.eclipse.gmf.runtime.diagram.ui.editpolicies.EditPolicyRoles.CONNECTION_HANDLES_ROLE);
+ }
+
+ /**
+ * @generated
+ */
+ protected LayoutEditPolicy createLayoutEditPolicy() {
+ org.eclipse.gmf.runtime.diagram.ui.editpolicies.LayoutEditPolicy lep = new org.eclipse.gmf.runtime.diagram.ui.editpolicies.LayoutEditPolicy() {
+
+ protected EditPolicy createChildEditPolicy(EditPart child) {
+ View childView = (View) child.getModel();
+ switch (ComrelVisualIDRegistry.getVisualID(childView)) {
+ case SingleInputPort3EditPart.VISUAL_ID:
+ case MultiInputPort2EditPart.VISUAL_ID:
+ return new BorderItemSelectionEditPolicy();
+ }
+ EditPolicy result = child
+ .getEditPolicy(EditPolicy.PRIMARY_DRAG_ROLE);
+ if (result == null) {
+ result = new NonResizableEditPolicy();
+ }
+ return result;
+ }
+
+ protected Command getMoveChildrenCommand(Request request) {
+ return null;
+ }
+
+ protected Command getCreateCommand(CreateRequest request) {
+ return null;
+ }
+ };
+ return lep;
+ }
+
+ /**
+ * @generated NOT
+ */
+ protected IFigure createNodeShape() {
+ ParallelQueuedUnitFigure figure = new ParallelQueuedUnitFigure();
+ RectangleFigure compHelper = (RectangleFigure) figure.getChildren()
+ .get(1);
+ RectangleFigure compRef = (RectangleFigure) figure.getChildren().get(2);
+ Labels.setLabels(compHelper, compRef, true);
+ // RefactoringUnit unit = (RefactoringUnit) this.resolveSemanticElement();
+ // unit.setFigure(figure);
+ return primaryShape = figure;
+ }
+
+ /**
+ * @generated
+ */
+ public ParallelQueuedUnitFigure getPrimaryShape() {
+ return (ParallelQueuedUnitFigure) primaryShape;
+ }
+
+ /**
+ * @generated NOT
+ */
+ protected boolean addFixedChild(EditPart childEditPart) {
+ if (childEditPart instanceof ParallelQueuedUnitNameTypeLblStrictEditPart) {
+ ((ParallelQueuedUnitNameTypeLblStrictEditPart) childEditPart)
+ .setLabel(getPrimaryShape()
+ .getFigureParallelQueuedUnitLabelFigure());
+ return true;
+ }
+ if (childEditPart instanceof ParallelQueuedUnitParallelQueuedUnitHelperUnitsCompartment7EditPart) {
+ IFigure pane = getPrimaryShape()
+ .getParallelQueuedUnitHelperUnitsCompartmentFigure();
+ setupContentPane(pane); // FIXME each comparment should handle his content pane in his own way
+ pane.add(((ParallelQueuedUnitParallelQueuedUnitHelperUnitsCompartment7EditPart) childEditPart)
+ .getFigure());
+ return true;
+ }
+ if (childEditPart instanceof ParallelQueuedUnitParallelQueuedUnitRefactoringUnitsCompartment7EditPart) {
+ IFigure pane = getPrimaryShape()
+ .getParallelQueuedUnitRefactoringUnitsCompartmentFigure();
+ setupContentPane(pane); // FIXME each comparment should handle his content pane in his own way
+ pane.add(((ParallelQueuedUnitParallelQueuedUnitRefactoringUnitsCompartment7EditPart) childEditPart)
+ .getFigure());
+ return true;
+ }
+ if (childEditPart instanceof SingleInputPort3EditPart) {
+ BorderItemLocator locator = new BorderItemLocator(getMainFigure(),
+ PositionConstants.NORTH);
+ locator.setCurrentSideOfParent(PositionConstants.NORTH); // Position des Ports
+ locator.setPreferredSideOfParent(PositionConstants.NORTH); // Position des Ports
+ getBorderedFigure().getBorderItemContainer().add(
+ ((SingleInputPort3EditPart) childEditPart).getFigure(),
+ locator);
+ return true;
+ }
+ if (childEditPart instanceof MultiInputPort2EditPart) {
+ BorderItemLocator locator = new BorderItemLocator(getMainFigure(),
+ PositionConstants.NORTH);
+ locator.setCurrentSideOfParent(PositionConstants.NORTH); // Position des Ports
+ locator.setPreferredSideOfParent(PositionConstants.NORTH); // Position des Ports
+ getBorderedFigure().getBorderItemContainer().add(
+ ((MultiInputPort2EditPart) childEditPart).getFigure(),
+ locator);
+ return true;
+ }
+ return false;
+ }
+
+ /**
+ * @generated NOT
+ */
+ protected boolean removeFixedChild(EditPart childEditPart) {
+ if (childEditPart instanceof ParallelQueuedUnitNameTypeLblStrictEditPart) {
+ return true;
+ }
+ if (childEditPart instanceof ParallelQueuedUnitParallelQueuedUnitHelperUnitsCompartment7EditPart) {
+ IFigure pane = getPrimaryShape()
+ .getParallelQueuedUnitHelperUnitsCompartmentFigure();
+ setupContentPane(pane); // FIXME each comparment should handle his content pane in his own way
+ pane.remove(((ParallelQueuedUnitParallelQueuedUnitHelperUnitsCompartment7EditPart) childEditPart)
+ .getFigure());
+ return true;
+ }
+ if (childEditPart instanceof ParallelQueuedUnitParallelQueuedUnitRefactoringUnitsCompartment7EditPart) {
+ IFigure pane = getPrimaryShape()
+ .getParallelQueuedUnitRefactoringUnitsCompartmentFigure();
+ setupContentPane(pane); // FIXME each comparment should handle his content pane in his own way
+ pane.remove(((ParallelQueuedUnitParallelQueuedUnitRefactoringUnitsCompartment7EditPart) childEditPart)
+ .getFigure());
+ return true;
+ }
+ if (childEditPart instanceof SingleInputPort3EditPart) {
+ getBorderedFigure().getBorderItemContainer().remove(
+ ((SingleInputPort3EditPart) childEditPart).getFigure());
+ return true;
+ }
+ if (childEditPart instanceof MultiInputPort2EditPart) {
+ // getBorderedFigure().getBorderItemContainer().remove(
+ // ((MultiInputPort2EditPart) childEditPart).getFigure());
+ return true;
+ }
+ return false;
+ }
+
+ /**
+ * @generated
+ */
+ protected void addChildVisual(EditPart childEditPart, int index) {
+ if (addFixedChild(childEditPart)) {
+ return;
+ }
+ super.addChildVisual(childEditPart, -1);
+ }
+
+ /**
+ * @generated
+ */
+ protected void removeChildVisual(EditPart childEditPart) {
+ if (removeFixedChild(childEditPart)) {
+ return;
+ }
+ super.removeChildVisual(childEditPart);
+ }
+
+ /**
+ * @generated
+ */
+ protected IFigure getContentPaneFor(IGraphicalEditPart editPart) {
+ if (editPart instanceof ParallelQueuedUnitParallelQueuedUnitHelperUnitsCompartment7EditPart) {
+ return getPrimaryShape()
+ .getParallelQueuedUnitHelperUnitsCompartmentFigure();
+ }
+ if (editPart instanceof ParallelQueuedUnitParallelQueuedUnitRefactoringUnitsCompartment7EditPart) {
+ return getPrimaryShape()
+ .getParallelQueuedUnitRefactoringUnitsCompartmentFigure();
+ }
+ if (editPart instanceof IBorderItemEditPart) {
+ return getBorderedFigure().getBorderItemContainer();
+ }
+ return getContentPane();
+ }
+
+ /**
+ * @generated
+ */
+ protected NodeFigure createNodePlate() {
+ DefaultSizeNodeFigure result = new DefaultSizeNodeFigure(40, 40);
+ return result;
+ }
+
+ /**
+ * Creates figure for this edit part.
+ *
+ * Body of this method does not depend on settings in generation model
+ * so you may safely remove <i>generated</i> tag and modify it.
+ *
+ * @generated
+ */
+ protected NodeFigure createMainFigure() {
+ NodeFigure figure = createNodePlate();
+ figure.setLayoutManager(new StackLayout());
+ IFigure shape = createNodeShape();
+ figure.add(shape);
+ contentPane = setupContentPane(shape);
+ return figure;
+ }
+
+ /**
+ * Default implementation treats passed figure as content pane.
+ * Respects layout one may have set for generated figure.
+ * @param nodeShape instance of generated figure class
+ * @generated
+ */
+ protected IFigure setupContentPane(IFigure nodeShape) {
+ if (nodeShape.getLayoutManager() == null) {
+ ConstrainedToolbarLayout layout = new ConstrainedToolbarLayout();
+ layout.setSpacing(5);
+ nodeShape.setLayoutManager(layout);
+ }
+ return nodeShape; // use nodeShape itself as contentPane
+ }
+
+ /**
+ * @generated
+ */
+ public IFigure getContentPane() {
+ if (contentPane != null) {
+ return contentPane;
+ }
+ return super.getContentPane();
+ }
+
+ /**
+ * @generated
+ */
+ protected void setForegroundColor(Color color) {
+ if (primaryShape != null) {
+ primaryShape.setForegroundColor(color);
+ }
+ }
+
+ /**
+ * @generated
+ */
+ protected void setBackgroundColor(Color color) {
+ if (primaryShape != null) {
+ primaryShape.setBackgroundColor(color);
+ }
+ }
+
+ /**
+ * @generated
+ */
+ protected void setLineWidth(int width) {
+ if (primaryShape instanceof Shape) {
+ ((Shape) primaryShape).setLineWidth(width);
+ }
+ }
+
+ /**
+ * @generated
+ */
+ protected void setLineType(int style) {
+ if (primaryShape instanceof Shape) {
+ ((Shape) primaryShape).setLineStyle(style);
+ }
+ }
+
+ /**
+ * @generated
+ */
+ public EditPart getPrimaryChildEditPart() {
+ return getChildBySemanticHint(ComrelVisualIDRegistry
+ .getType(ParallelQueuedUnitNameTypeLblStrictEditPart.VISUAL_ID));
+ }
+
+ /**
+ * @generated
+ */
+ protected void handleNotificationEvent(Notification event) {
+ if (event.getNotifier() == getModel()
+ && EcorePackage.eINSTANCE.getEModelElement_EAnnotations()
+ .equals(event.getFeature())) {
+ handleMajorSemanticChange();
+ } else {
+ super.handleNotificationEvent(event);
+ }
+ }
+
+ /**
+ * @generated
+ */
+ public class ParallelQueuedUnitFigure extends RoundedRectangle {
+
+ /**
+ * @generated
+ */
+ private WrappingLabel fFigureParallelQueuedUnitLabelFigure;
+ /**
+ * @generated
+ */
+ private RectangleFigure fParallelQueuedUnitHelperUnitsCompartmentFigure;
+ /**
+ * @generated
+ */
+ private RectangleFigure fParallelQueuedUnitRefactoringUnitsCompartmentFigure;
+
+ /**
+ * @generated
+ */
+ public ParallelQueuedUnitFigure() {
+ this.setCornerDimensions(new Dimension(getMapMode().DPtoLP(8),
+ getMapMode().DPtoLP(8)));
+ this.setBorder(new MarginBorder(getMapMode().DPtoLP(5),
+ getMapMode().DPtoLP(5), getMapMode().DPtoLP(5),
+ getMapMode().DPtoLP(5)));
+ createContents();
+ }
+
+ /**
+ * @generated
+ */
+ private void createContents() {
+
+ fFigureParallelQueuedUnitLabelFigure = new WrappingLabel();
+ fFigureParallelQueuedUnitLabelFigure.setText("ParallelQueuedUnit");
+ fFigureParallelQueuedUnitLabelFigure.setMaximumSize(new Dimension(
+ getMapMode().DPtoLP(10000), getMapMode().DPtoLP(50)));
+
+ this.add(fFigureParallelQueuedUnitLabelFigure);
+
+ fParallelQueuedUnitHelperUnitsCompartmentFigure = new RectangleFigure();
+ fParallelQueuedUnitHelperUnitsCompartmentFigure.setOutline(false);
+
+ this.add(fParallelQueuedUnitHelperUnitsCompartmentFigure);
+
+ fParallelQueuedUnitRefactoringUnitsCompartmentFigure = new RectangleFigure();
+ fParallelQueuedUnitRefactoringUnitsCompartmentFigure
+ .setOutline(false);
+
+ this.add(fParallelQueuedUnitRefactoringUnitsCompartmentFigure);
+
+ }
+
+ /**
+ * @generated
+ */
+ public WrappingLabel getFigureParallelQueuedUnitLabelFigure() {
+ return fFigureParallelQueuedUnitLabelFigure;
+ }
+
+ /**
+ * @generated
+ */
+ public RectangleFigure getParallelQueuedUnitHelperUnitsCompartmentFigure() {
+ return fParallelQueuedUnitHelperUnitsCompartmentFigure;
+ }
+
+ /**
+ * @generated
+ */
+ public RectangleFigure getParallelQueuedUnitRefactoringUnitsCompartmentFigure() {
+ return fParallelQueuedUnitRefactoringUnitsCompartmentFigure;
+ }
+
+ }
+
+}
diff --git a/org.eclipse.emf.refactor.comrel.diagram/src/comrel/diagram/edit/parts/ParallelQueuedUnitNameTypeLblStrict2EditPart.java b/org.eclipse.emf.refactor.comrel.diagram/src/comrel/diagram/edit/parts/ParallelQueuedUnitNameTypeLblStrict2EditPart.java
new file mode 100644
index 0000000..417247b
--- /dev/null
+++ b/org.eclipse.emf.refactor.comrel.diagram/src/comrel/diagram/edit/parts/ParallelQueuedUnitNameTypeLblStrict2EditPart.java
@@ -0,0 +1,576 @@
+/*
+ *
+ */
+package comrel.diagram.edit.parts;
+
+import java.util.Collections;
+import java.util.List;
+
+import org.eclipse.draw2d.IFigure;
+import org.eclipse.draw2d.Label;
+import org.eclipse.draw2d.geometry.Point;
+import org.eclipse.emf.common.notify.Notification;
+import org.eclipse.emf.ecore.EObject;
+import org.eclipse.emf.transaction.RunnableWithResult;
+import org.eclipse.gef.AccessibleEditPart;
+import org.eclipse.gef.EditPolicy;
+import org.eclipse.gef.Request;
+import org.eclipse.gef.requests.DirectEditRequest;
+import org.eclipse.gef.tools.DirectEditManager;
+import org.eclipse.gmf.runtime.common.ui.services.parser.IParser;
+import org.eclipse.gmf.runtime.common.ui.services.parser.IParserEditStatus;
+import org.eclipse.gmf.runtime.common.ui.services.parser.ParserEditStatus;
+import org.eclipse.gmf.runtime.common.ui.services.parser.ParserOptions;
+import org.eclipse.gmf.runtime.diagram.ui.editparts.CompartmentEditPart;
+import org.eclipse.gmf.runtime.diagram.ui.editparts.IGraphicalEditPart;
+import org.eclipse.gmf.runtime.diagram.ui.editparts.ITextAwareEditPart;
+import org.eclipse.gmf.runtime.diagram.ui.editpolicies.LabelDirectEditPolicy;
+import org.eclipse.gmf.runtime.diagram.ui.l10n.DiagramColorRegistry;
+import org.eclipse.gmf.runtime.diagram.ui.requests.RequestConstants;
+import org.eclipse.gmf.runtime.diagram.ui.tools.TextDirectEditManager;
+import org.eclipse.gmf.runtime.draw2d.ui.figures.WrappingLabel;
+import org.eclipse.gmf.runtime.emf.core.util.EObjectAdapter;
+import org.eclipse.gmf.runtime.emf.ui.services.parser.ISemanticParser;
+import org.eclipse.gmf.runtime.notation.FontStyle;
+import org.eclipse.gmf.runtime.notation.NotationPackage;
+import org.eclipse.gmf.runtime.notation.View;
+import org.eclipse.jface.text.contentassist.IContentAssistProcessor;
+import org.eclipse.jface.viewers.ICellEditorValidator;
+import org.eclipse.swt.SWT;
+import org.eclipse.swt.accessibility.AccessibleEvent;
+import org.eclipse.swt.graphics.Color;
+import org.eclipse.swt.graphics.FontData;
+import org.eclipse.swt.graphics.Image;
+
+import comrel.diagram.edit.policies.ComrelTextSelectionEditPolicy;
+import comrel.diagram.part.ComrelVisualIDRegistry;
+import comrel.diagram.providers.ComrelElementTypes;
+import comrel.diagram.providers.ComrelParserProvider;
+
+/**
+ * @generated
+ */
+public class ParallelQueuedUnitNameTypeLblStrict2EditPart extends
+ CompartmentEditPart implements ITextAwareEditPart {
+
+ /**
+ * @generated
+ */
+ public static final int VISUAL_ID = 5078;
+
+ /**
+ * @generated
+ */
+ private DirectEditManager manager;
+
+ /**
+ * @generated
+ */
+ private IParser parser;
+
+ /**
+ * @generated
+ */
+ private List<?> parserElements;
+
+ /**
+ * @generated
+ */
+ private String defaultText;
+
+ /**
+ * @generated
+ */
+ public ParallelQueuedUnitNameTypeLblStrict2EditPart(View view) {
+ super(view);
+ }
+
+ /**
+ * @generated
+ */
+ protected void createDefaultEditPolicies() {
+ super.createDefaultEditPolicies();
+ installEditPolicy(EditPolicy.SELECTION_FEEDBACK_ROLE,
+ new ComrelTextSelectionEditPolicy());
+ installEditPolicy(EditPolicy.DIRECT_EDIT_ROLE,
+ new LabelDirectEditPolicy());
+ installEditPolicy(EditPolicy.PRIMARY_DRAG_ROLE,
+ new CompositeRefactoringEditPart.NodeLabelDragPolicy());
+ }
+
+ /**
+ * @generated
+ */
+ protected String getLabelTextHelper(IFigure figure) {
+ if (figure instanceof WrappingLabel) {
+ return ((WrappingLabel) figure).getText();
+ } else {
+ return ((Label) figure).getText();
+ }
+ }
+
+ /**
+ * @generated
+ */
+ protected void setLabelTextHelper(IFigure figure, String text) {
+ if (figure instanceof WrappingLabel) {
+ ((WrappingLabel) figure).setText(text);
+ } else {
+ ((Label) figure).setText(text);
+ }
+ }
+
+ /**
+ * @generated
+ */
+ protected Image getLabelIconHelper(IFigure figure) {
+ if (figure instanceof WrappingLabel) {
+ return ((WrappingLabel) figure).getIcon();
+ } else {
+ return ((Label) figure).getIcon();
+ }
+ }
+
+ /**
+ * @generated
+ */
+ protected void setLabelIconHelper(IFigure figure, Image icon) {
+ if (figure instanceof WrappingLabel) {
+ ((WrappingLabel) figure).setIcon(icon);
+ } else {
+ ((Label) figure).setIcon(icon);
+ }
+ }
+
+ /**
+ * @generated
+ */
+ public void setLabel(WrappingLabel figure) {
+ unregisterVisuals();
+ setFigure(figure);
+ defaultText = getLabelTextHelper(figure);
+ registerVisuals();
+ refreshVisuals();
+ }
+
+ /**
+ * @generated
+ */
+ @SuppressWarnings("rawtypes")
+ protected List getModelChildren() {
+ return Collections.EMPTY_LIST;
+ }
+
+ /**
+ * @generated
+ */
+ public IGraphicalEditPart getChildBySemanticHint(String semanticHint) {
+ return null;
+ }
+
+ /**
+ * @generated
+ */
+ protected EObject getParserElement() {
+ return resolveSemanticElement();
+ }
+
+ /**
+ * @generated
+ */
+ protected Image getLabelIcon() {
+ return null;
+ }
+
+ /**
+ * @generated
+ */
+ protected String getLabelText() {
+ String text = null;
+ EObject parserElement = getParserElement();
+ if (parserElement != null && getParser() != null) {
+ text = getParser().getPrintString(
+ new EObjectAdapter(parserElement),
+ getParserOptions().intValue());
+ }
+ if (text == null || text.length() == 0) {
+ text = defaultText;
+ }
+ return text;
+ }
+
+ /**
+ * @generated
+ */
+ public void setLabelText(String text) {
+ setLabelTextHelper(getFigure(), text);
+ Object pdEditPolicy = getEditPolicy(EditPolicy.PRIMARY_DRAG_ROLE);
+ if (pdEditPolicy instanceof ComrelTextSelectionEditPolicy) {
+ ((ComrelTextSelectionEditPolicy) pdEditPolicy).refreshFeedback();
+ }
+ Object sfEditPolicy = getEditPolicy(EditPolicy.SELECTION_FEEDBACK_ROLE);
+ if (sfEditPolicy instanceof ComrelTextSelectionEditPolicy) {
+ ((ComrelTextSelectionEditPolicy) sfEditPolicy).refreshFeedback();
+ }
+ }
+
+ /**
+ * @generated
+ */
+ public String getEditText() {
+ if (getParserElement() == null || getParser() == null) {
+ return ""; //$NON-NLS-1$
+ }
+ return getParser().getEditString(
+ new EObjectAdapter(getParserElement()),
+ getParserOptions().intValue());
+ }
+
+ /**
+ * @generated
+ */
+ protected boolean isEditable() {
+ return getParser() != null;
+ }
+
+ /**
+ * @generated
+ */
+ public ICellEditorValidator getEditTextValidator() {
+ return new ICellEditorValidator() {
+
+ public String isValid(final Object value) {
+ if (value instanceof String) {
+ final EObject element = getParserElement();
+ final IParser parser = getParser();
+ try {
+ IParserEditStatus valid = (IParserEditStatus) getEditingDomain()
+ .runExclusive(
+ new RunnableWithResult.Impl<IParserEditStatus>() {
+
+ public void run() {
+ setResult(parser
+ .isValidEditString(
+ new EObjectAdapter(
+ element),
+ (String) value));
+ }
+ });
+ return valid.getCode() == ParserEditStatus.EDITABLE ? null
+ : valid.getMessage();
+ } catch (InterruptedException ie) {
+ ie.printStackTrace();
+ }
+ }
+
+ // shouldn't get here
+ return null;
+ }
+ };
+ }
+
+ /**
+ * @generated
+ */
+ public IContentAssistProcessor getCompletionProcessor() {
+ if (getParserElement() == null || getParser() == null) {
+ return null;
+ }
+ return getParser().getCompletionProcessor(
+ new EObjectAdapter(getParserElement()));
+ }
+
+ /**
+ * @generated
+ */
+ public ParserOptions getParserOptions() {
+ return ParserOptions.NONE;
+ }
+
+ /**
+ * @generated
+ */
+ public IParser getParser() {
+ if (parser == null) {
+ parser = ComrelParserProvider
+ .getParser(
+ ComrelElementTypes.ParallelQueuedUnit_3004,
+ getParserElement(),
+ ComrelVisualIDRegistry
+ .getType(comrel.diagram.edit.parts.ParallelQueuedUnitNameTypeLblStrict2EditPart.VISUAL_ID));
+ }
+ return parser;
+ }
+
+ /**
+ * @generated
+ */
+ protected DirectEditManager getManager() {
+ if (manager == null) {
+ setManager(new TextDirectEditManager(this,
+ TextDirectEditManager.getTextCellEditorClass(this),
+ ComrelEditPartFactory.getTextCellEditorLocator(this)));
+ }
+ return manager;
+ }
+
+ /**
+ * @generated
+ */
+ protected void setManager(DirectEditManager manager) {
+ this.manager = manager;
+ }
+
+ /**
+ * @generated
+ */
+ protected void performDirectEdit() {
+ getManager().show();
+ }
+
+ /**
+ * @generated
+ */
+ protected void performDirectEdit(Point eventLocation) {
+ if (getManager().getClass() == TextDirectEditManager.class) {
+ ((TextDirectEditManager) getManager()).show(eventLocation
+ .getSWTPoint());
+ }
+ }
+
+ /**
+ * @generated
+ */
+ private void performDirectEdit(char initialCharacter) {
+ if (getManager() instanceof TextDirectEditManager) {
+ ((TextDirectEditManager) getManager()).show(initialCharacter);
+ } else {
+ performDirectEdit();
+ }
+ }
+
+ /**
+ * @generated
+ */
+ protected void performDirectEditRequest(Request request) {
+ final Request theRequest = request;
+ try {
+ getEditingDomain().runExclusive(new Runnable() {
+
+ public void run() {
+ if (isActive() && isEditable()) {
+ if (theRequest
+ .getExtendedData()
+ .get(RequestConstants.REQ_DIRECTEDIT_EXTENDEDDATA_INITIAL_CHAR) instanceof Character) {
+ Character initialChar = (Character) theRequest
+ .getExtendedData()
+ .get(RequestConstants.REQ_DIRECTEDIT_EXTENDEDDATA_INITIAL_CHAR);
+ performDirectEdit(initialChar.charValue());
+ } else if ((theRequest instanceof DirectEditRequest)
+ && (getEditText().equals(getLabelText()))) {
+ DirectEditRequest editRequest = (DirectEditRequest) theRequest;
+ performDirectEdit(editRequest.getLocation());
+ } else {
+ performDirectEdit();
+ }
+ }
+ }
+ });
+ } catch (InterruptedException e) {
+ e.printStackTrace();
+ }
+ }
+
+ /**
+ * @generated
+ */
+ protected void refreshVisuals() {
+ super.refreshVisuals();
+ refreshLabel();
+ refreshFont();
+ refreshFontColor();
+ refreshUnderline();
+ refreshStrikeThrough();
+ }
+
+ /**
+ * @generated
+ */
+ protected void refreshLabel() {
+ setLabelTextHelper(getFigure(), getLabelText());
+ setLabelIconHelper(getFigure(), getLabelIcon());
+ Object pdEditPolicy = getEditPolicy(EditPolicy.PRIMARY_DRAG_ROLE);
+ if (pdEditPolicy instanceof ComrelTextSelectionEditPolicy) {
+ ((ComrelTextSelectionEditPolicy) pdEditPolicy).refreshFeedback();
+ }
+ Object sfEditPolicy = getEditPolicy(EditPolicy.SELECTION_FEEDBACK_ROLE);
+ if (sfEditPolicy instanceof ComrelTextSelectionEditPolicy) {
+ ((ComrelTextSelectionEditPolicy) sfEditPolicy).refreshFeedback();
+ }
+ }
+
+ /**
+ * @generated
+ */
+ protected void refreshUnderline() {
+ FontStyle style = (FontStyle) getFontStyleOwnerView().getStyle(
+ NotationPackage.eINSTANCE.getFontStyle());
+ if (style != null && getFigure() instanceof WrappingLabel) {
+ ((WrappingLabel) getFigure()).setTextUnderline(style.isUnderline());
+ }
+ }
+
+ /**
+ * @generated
+ */
+ protected void refreshStrikeThrough() {
+ FontStyle style = (FontStyle) getFontStyleOwnerView().getStyle(
+ NotationPackage.eINSTANCE.getFontStyle());
+ if (style != null && getFigure() instanceof WrappingLabel) {
+ ((WrappingLabel) getFigure()).setTextStrikeThrough(style
+ .isStrikeThrough());
+ }
+ }
+
+ /**
+ * @generated
+ */
+ protected void refreshFont() {
+ FontStyle style = (FontStyle) getFontStyleOwnerView().getStyle(
+ NotationPackage.eINSTANCE.getFontStyle());
+ if (style != null) {
+ FontData fontData = new FontData(style.getFontName(),
+ style.getFontHeight(), (style.isBold() ? SWT.BOLD
+ : SWT.NORMAL)
+ | (style.isItalic() ? SWT.ITALIC : SWT.NORMAL));
+ setFont(fontData);
+ }
+ }
+
+ /**
+ * @generated
+ */
+ protected void setFontColor(Color color) {
+ getFigure().setForegroundColor(color);
+ }
+
+ /**
+ * @generated
+ */
+ protected void addSemanticListeners() {
+ if (getParser() instanceof ISemanticParser) {
+ EObject element = resolveSemanticElement();
+ parserElements = ((ISemanticParser) getParser())
+ .getSemanticElementsBeingParsed(element);
+ for (int i = 0; i < parserElements.size(); i++) {
+ addListenerFilter(
+ "SemanticModel" + i, this, (EObject) parserElements.get(i)); //$NON-NLS-1$
+ }
+ } else {
+ super.addSemanticListeners();
+ }
+ }
+
+ /**
+ * @generated
+ */
+ protected void removeSemanticListeners() {
+ if (parserElements != null) {
+ for (int i = 0; i < parserElements.size(); i++) {
+ removeListenerFilter("SemanticModel" + i); //$NON-NLS-1$
+ }
+ } else {
+ super.removeSemanticListeners();
+ }
+ }
+
+ /**
+ * @generated
+ */
+ protected AccessibleEditPart getAccessibleEditPart() {
+ if (accessibleEP == null) {
+ accessibleEP = new AccessibleGraphicalEditPart() {
+
+ public void getName(AccessibleEvent e) {
+ e.result = getLabelTextHelper(getFigure());
+ }
+ };
+ }
+ return accessibleEP;
+ }
+
+ /**
+ * @generated
+ */
+ private View getFontStyleOwnerView() {
+ return getPrimaryView();
+ }
+
+ /**
+ * @generated
+ */
+ protected void addNotationalListeners() {
+ super.addNotationalListeners();
+ addListenerFilter("PrimaryView", this, getPrimaryView()); //$NON-NLS-1$
+ }
+
+ /**
+ * @generated
+ */
+ protected void removeNotationalListeners() {
+ super.removeNotationalListeners();
+ removeListenerFilter("PrimaryView"); //$NON-NLS-1$
+ }
+
+ /**
+ * @generated
+ */
+ protected void handleNotificationEvent(Notification event) {
+ Object feature = event.getFeature();
+ if (NotationPackage.eINSTANCE.getFontStyle_FontColor().equals(feature)) {
+ Integer c = (Integer) event.getNewValue();
+ setFontColor(DiagramColorRegistry.getInstance().getColor(c));
+ } else if (NotationPackage.eINSTANCE.getFontStyle_Underline().equals(
+ feature)) {
+ refreshUnderline();
+ } else if (NotationPackage.eINSTANCE.getFontStyle_StrikeThrough()
+ .equals(feature)) {
+ refreshStrikeThrough();
+ } else if (NotationPackage.eINSTANCE.getFontStyle_FontHeight().equals(
+ feature)
+ || NotationPackage.eINSTANCE.getFontStyle_FontName().equals(
+ feature)
+ || NotationPackage.eINSTANCE.getFontStyle_Bold()
+ .equals(feature)
+ || NotationPackage.eINSTANCE.getFontStyle_Italic().equals(
+ feature)) {
+ refreshFont();
+ } else {
+ if (getParser() != null
+ && getParser().isAffectingEvent(event,
+ getParserOptions().intValue())) {
+ refreshLabel();
+ }
+ if (getParser() instanceof ISemanticParser) {
+ ISemanticParser modelParser = (ISemanticParser) getParser();
+ if (modelParser.areSemanticElementsAffected(null, event)) {
+ removeSemanticListeners();
+ if (resolveSemanticElement() != null) {
+ addSemanticListeners();
+ }
+ refreshLabel();
+ }
+ }
+ }
+ super.handleNotificationEvent(event);
+ }
+
+ /**
+ * @generated
+ */
+ protected IFigure createFigure() {
+ // Parent should assign one using setLabel() method
+ return null;
+ }
+
+}
diff --git a/org.eclipse.emf.refactor.comrel.diagram/src/comrel/diagram/edit/parts/ParallelQueuedUnitNameTypeLblStrict3EditPart.java b/org.eclipse.emf.refactor.comrel.diagram/src/comrel/diagram/edit/parts/ParallelQueuedUnitNameTypeLblStrict3EditPart.java
new file mode 100644
index 0000000..a916514
--- /dev/null
+++ b/org.eclipse.emf.refactor.comrel.diagram/src/comrel/diagram/edit/parts/ParallelQueuedUnitNameTypeLblStrict3EditPart.java
@@ -0,0 +1,576 @@
+/*
+ *
+ */
+package comrel.diagram.edit.parts;
+
+import java.util.Collections;
+import java.util.List;
+
+import org.eclipse.draw2d.IFigure;
+import org.eclipse.draw2d.Label;
+import org.eclipse.draw2d.geometry.Point;
+import org.eclipse.emf.common.notify.Notification;
+import org.eclipse.emf.ecore.EObject;
+import org.eclipse.emf.transaction.RunnableWithResult;
+import org.eclipse.gef.AccessibleEditPart;
+import org.eclipse.gef.EditPolicy;
+import org.eclipse.gef.Request;
+import org.eclipse.gef.requests.DirectEditRequest;
+import org.eclipse.gef.tools.DirectEditManager;
+import org.eclipse.gmf.runtime.common.ui.services.parser.IParser;
+import org.eclipse.gmf.runtime.common.ui.services.parser.IParserEditStatus;
+import org.eclipse.gmf.runtime.common.ui.services.parser.ParserEditStatus;
+import org.eclipse.gmf.runtime.common.ui.services.parser.ParserOptions;
+import org.eclipse.gmf.runtime.diagram.ui.editparts.CompartmentEditPart;
+import org.eclipse.gmf.runtime.diagram.ui.editparts.IGraphicalEditPart;
+import org.eclipse.gmf.runtime.diagram.ui.editparts.ITextAwareEditPart;
+import org.eclipse.gmf.runtime.diagram.ui.editpolicies.LabelDirectEditPolicy;
+import org.eclipse.gmf.runtime.diagram.ui.l10n.DiagramColorRegistry;
+import org.eclipse.gmf.runtime.diagram.ui.requests.RequestConstants;
+import org.eclipse.gmf.runtime.diagram.ui.tools.TextDirectEditManager;
+import org.eclipse.gmf.runtime.draw2d.ui.figures.WrappingLabel;
+import org.eclipse.gmf.runtime.emf.core.util.EObjectAdapter;
+import org.eclipse.gmf.runtime.emf.ui.services.parser.ISemanticParser;
+import org.eclipse.gmf.runtime.notation.FontStyle;
+import org.eclipse.gmf.runtime.notation.NotationPackage;
+import org.eclipse.gmf.runtime.notation.View;
+import org.eclipse.jface.text.contentassist.IContentAssistProcessor;
+import org.eclipse.jface.viewers.ICellEditorValidator;
+import org.eclipse.swt.SWT;
+import org.eclipse.swt.accessibility.AccessibleEvent;
+import org.eclipse.swt.graphics.Color;
+import org.eclipse.swt.graphics.FontData;
+import org.eclipse.swt.graphics.Image;
+
+import comrel.diagram.edit.policies.ComrelTextSelectionEditPolicy;
+import comrel.diagram.part.ComrelVisualIDRegistry;
+import comrel.diagram.providers.ComrelElementTypes;
+import comrel.diagram.providers.ComrelParserProvider;
+
+/**
+ * @generated
+ */
+public class ParallelQueuedUnitNameTypeLblStrict3EditPart extends
+ CompartmentEditPart implements ITextAwareEditPart {
+
+ /**
+ * @generated
+ */
+ public static final int VISUAL_ID = 5071;
+
+ /**
+ * @generated
+ */
+ private DirectEditManager manager;
+
+ /**
+ * @generated
+ */
+ private IParser parser;
+
+ /**
+ * @generated
+ */
+ private List<?> parserElements;
+
+ /**
+ * @generated
+ */
+ private String defaultText;
+
+ /**
+ * @generated
+ */
+ public ParallelQueuedUnitNameTypeLblStrict3EditPart(View view) {
+ super(view);
+ }
+
+ /**
+ * @generated
+ */
+ protected void createDefaultEditPolicies() {
+ super.createDefaultEditPolicies();
+ installEditPolicy(EditPolicy.SELECTION_FEEDBACK_ROLE,
+ new ComrelTextSelectionEditPolicy());
+ installEditPolicy(EditPolicy.DIRECT_EDIT_ROLE,
+ new LabelDirectEditPolicy());
+ installEditPolicy(EditPolicy.PRIMARY_DRAG_ROLE,
+ new CompositeRefactoringEditPart.NodeLabelDragPolicy());
+ }
+
+ /**
+ * @generated
+ */
+ protected String getLabelTextHelper(IFigure figure) {
+ if (figure instanceof WrappingLabel) {
+ return ((WrappingLabel) figure).getText();
+ } else {
+ return ((Label) figure).getText();
+ }
+ }
+
+ /**
+ * @generated
+ */
+ protected void setLabelTextHelper(IFigure figure, String text) {
+ if (figure instanceof WrappingLabel) {
+ ((WrappingLabel) figure).setText(text);
+ } else {
+ ((Label) figure).setText(text);
+ }
+ }
+
+ /**
+ * @generated
+ */
+ protected Image getLabelIconHelper(IFigure figure) {
+ if (figure instanceof WrappingLabel) {
+ return ((WrappingLabel) figure).getIcon();
+ } else {
+ return ((Label) figure).getIcon();
+ }
+ }
+
+ /**
+ * @generated
+ */
+ protected void setLabelIconHelper(IFigure figure, Image icon) {
+ if (figure instanceof WrappingLabel) {
+ ((WrappingLabel) figure).setIcon(icon);
+ } else {
+ ((Label) figure).setIcon(icon);
+ }
+ }
+
+ /**
+ * @generated
+ */
+ public void setLabel(WrappingLabel figure) {
+ unregisterVisuals();
+ setFigure(figure);
+ defaultText = getLabelTextHelper(figure);
+ registerVisuals();
+ refreshVisuals();
+ }
+
+ /**
+ * @generated
+ */
+ @SuppressWarnings("rawtypes")
+ protected List getModelChildren() {
+ return Collections.EMPTY_LIST;
+ }
+
+ /**
+ * @generated
+ */
+ public IGraphicalEditPart getChildBySemanticHint(String semanticHint) {
+ return null;
+ }
+
+ /**
+ * @generated
+ */
+ protected EObject getParserElement() {
+ return resolveSemanticElement();
+ }
+
+ /**
+ * @generated
+ */
+ protected Image getLabelIcon() {
+ return null;
+ }
+
+ /**
+ * @generated
+ */
+ protected String getLabelText() {
+ String text = null;
+ EObject parserElement = getParserElement();
+ if (parserElement != null && getParser() != null) {
+ text = getParser().getPrintString(
+ new EObjectAdapter(parserElement),
+ getParserOptions().intValue());
+ }
+ if (text == null || text.length() == 0) {
+ text = defaultText;
+ }
+ return text;
+ }
+
+ /**
+ * @generated
+ */
+ public void setLabelText(String text) {
+ setLabelTextHelper(getFigure(), text);
+ Object pdEditPolicy = getEditPolicy(EditPolicy.PRIMARY_DRAG_ROLE);
+ if (pdEditPolicy instanceof ComrelTextSelectionEditPolicy) {
+ ((ComrelTextSelectionEditPolicy) pdEditPolicy).refreshFeedback();
+ }
+ Object sfEditPolicy = getEditPolicy(EditPolicy.SELECTION_FEEDBACK_ROLE);
+ if (sfEditPolicy instanceof ComrelTextSelectionEditPolicy) {
+ ((ComrelTextSelectionEditPolicy) sfEditPolicy).refreshFeedback();
+ }
+ }
+
+ /**
+ * @generated
+ */
+ public String getEditText() {
+ if (getParserElement() == null || getParser() == null) {
+ return ""; //$NON-NLS-1$
+ }
+ return getParser().getEditString(
+ new EObjectAdapter(getParserElement()),
+ getParserOptions().intValue());
+ }
+
+ /**
+ * @generated
+ */
+ protected boolean isEditable() {
+ return getParser() != null;
+ }
+
+ /**
+ * @generated
+ */
+ public ICellEditorValidator getEditTextValidator() {
+ return new ICellEditorValidator() {
+
+ public String isValid(final Object value) {
+ if (value instanceof String) {
+ final EObject element = getParserElement();
+ final IParser parser = getParser();
+ try {
+ IParserEditStatus valid = (IParserEditStatus) getEditingDomain()
+ .runExclusive(
+ new RunnableWithResult.Impl<IParserEditStatus>() {
+
+ public void run() {
+ setResult(parser
+ .isValidEditString(
+ new EObjectAdapter(
+ element),
+ (String) value));
+ }
+ });
+ return valid.getCode() == ParserEditStatus.EDITABLE ? null
+ : valid.getMessage();
+ } catch (InterruptedException ie) {
+ ie.printStackTrace();
+ }
+ }
+
+ // shouldn't get here
+ return null;
+ }
+ };
+ }
+
+ /**
+ * @generated
+ */
+ public IContentAssistProcessor getCompletionProcessor() {
+ if (getParserElement() == null || getParser() == null) {
+ return null;
+ }
+ return getParser().getCompletionProcessor(
+ new EObjectAdapter(getParserElement()));
+ }
+
+ /**
+ * @generated
+ */
+ public ParserOptions getParserOptions() {
+ return ParserOptions.NONE;
+ }
+
+ /**
+ * @generated
+ */
+ public IParser getParser() {
+ if (parser == null) {
+ parser = ComrelParserProvider
+ .getParser(
+ ComrelElementTypes.ParallelQueuedUnit_3036,
+ getParserElement(),
+ ComrelVisualIDRegistry
+ .getType(comrel.diagram.edit.parts.ParallelQueuedUnitNameTypeLblStrict3EditPart.VISUAL_ID));
+ }
+ return parser;
+ }
+
+ /**
+ * @generated
+ */
+ protected DirectEditManager getManager() {
+ if (manager == null) {
+ setManager(new TextDirectEditManager(this,
+ TextDirectEditManager.getTextCellEditorClass(this),
+ ComrelEditPartFactory.getTextCellEditorLocator(this)));
+ }
+ return manager;
+ }
+
+ /**
+ * @generated
+ */
+ protected void setManager(DirectEditManager manager) {
+ this.manager = manager;
+ }
+
+ /**
+ * @generated
+ */
+ protected void performDirectEdit() {
+ getManager().show();
+ }
+
+ /**
+ * @generated
+ */
+ protected void performDirectEdit(Point eventLocation) {
+ if (getManager().getClass() == TextDirectEditManager.class) {
+ ((TextDirectEditManager) getManager()).show(eventLocation
+ .getSWTPoint());
+ }
+ }
+
+ /**
+ * @generated
+ */
+ private void performDirectEdit(char initialCharacter) {
+ if (getManager() instanceof TextDirectEditManager) {
+ ((TextDirectEditManager) getManager()).show(initialCharacter);
+ } else {
+ performDirectEdit();
+ }
+ }
+
+ /**
+ * @generated
+ */
+ protected void performDirectEditRequest(Request request) {
+ final Request theRequest = request;
+ try {
+ getEditingDomain().runExclusive(new Runnable() {
+
+ public void run() {
+ if (isActive() && isEditable()) {
+ if (theRequest
+ .getExtendedData()
+ .get(RequestConstants.REQ_DIRECTEDIT_EXTENDEDDATA_INITIAL_CHAR) instanceof Character) {
+ Character initialChar = (Character) theRequest
+ .getExtendedData()
+ .get(RequestConstants.REQ_DIRECTEDIT_EXTENDEDDATA_INITIAL_CHAR);
+ performDirectEdit(initialChar.charValue());
+ } else if ((theRequest instanceof DirectEditRequest)
+ && (getEditText().equals(getLabelText()))) {
+ DirectEditRequest editRequest = (DirectEditRequest) theRequest;
+ performDirectEdit(editRequest.getLocation());
+ } else {
+ performDirectEdit();
+ }
+ }
+ }
+ });
+ } catch (InterruptedException e) {
+ e.printStackTrace();
+ }
+ }
+
+ /**
+ * @generated
+ */
+ protected void refreshVisuals() {
+ super.refreshVisuals();
+ refreshLabel();
+ refreshFont();
+ refreshFontColor();
+ refreshUnderline();
+ refreshStrikeThrough();
+ }
+
+ /**
+ * @generated
+ */
+ protected void refreshLabel() {
+ setLabelTextHelper(getFigure(), getLabelText());
+ setLabelIconHelper(getFigure(), getLabelIcon());
+ Object pdEditPolicy = getEditPolicy(EditPolicy.PRIMARY_DRAG_ROLE);
+ if (pdEditPolicy instanceof ComrelTextSelectionEditPolicy) {
+ ((ComrelTextSelectionEditPolicy) pdEditPolicy).refreshFeedback();
+ }
+ Object sfEditPolicy = getEditPolicy(EditPolicy.SELECTION_FEEDBACK_ROLE);
+ if (sfEditPolicy instanceof ComrelTextSelectionEditPolicy) {
+ ((ComrelTextSelectionEditPolicy) sfEditPolicy).refreshFeedback();
+ }
+ }
+
+ /**
+ * @generated
+ */
+ protected void refreshUnderline() {
+ FontStyle style = (FontStyle) getFontStyleOwnerView().getStyle(
+ NotationPackage.eINSTANCE.getFontStyle());
+ if (style != null && getFigure() instanceof WrappingLabel) {
+ ((WrappingLabel) getFigure()).setTextUnderline(style.isUnderline());
+ }
+ }
+
+ /**
+ * @generated
+ */
+ protected void refreshStrikeThrough() {
+ FontStyle style = (FontStyle) getFontStyleOwnerView().getStyle(
+ NotationPackage.eINSTANCE.getFontStyle());
+ if (style != null && getFigure() instanceof WrappingLabel) {
+ ((WrappingLabel) getFigure()).setTextStrikeThrough(style
+ .isStrikeThrough());
+ }
+ }
+
+ /**
+ * @generated
+ */
+ protected void refreshFont() {
+ FontStyle style = (FontStyle) getFontStyleOwnerView().getStyle(
+ NotationPackage.eINSTANCE.getFontStyle());
+ if (style != null) {
+ FontData fontData = new FontData(style.getFontName(),
+ style.getFontHeight(), (style.isBold() ? SWT.BOLD
+ : SWT.NORMAL)
+ | (style.isItalic() ? SWT.ITALIC : SWT.NORMAL));
+ setFont(fontData);
+ }
+ }
+
+ /**
+ * @generated
+ */
+ protected void setFontColor(Color color) {
+ getFigure().setForegroundColor(color);
+ }
+
+ /**
+ * @generated
+ */
+ protected void addSemanticListeners() {
+ if (getParser() instanceof ISemanticParser) {
+ EObject element = resolveSemanticElement();
+ parserElements = ((ISemanticParser) getParser())
+ .getSemanticElementsBeingParsed(element);
+ for (int i = 0; i < parserElements.size(); i++) {
+ addListenerFilter(
+ "SemanticModel" + i, this, (EObject) parserElements.get(i)); //$NON-NLS-1$
+ }
+ } else {
+ super.addSemanticListeners();
+ }
+ }
+
+ /**
+ * @generated
+ */
+ protected void removeSemanticListeners() {
+ if (parserElements != null) {
+ for (int i = 0; i < parserElements.size(); i++) {
+ removeListenerFilter("SemanticModel" + i); //$NON-NLS-1$
+ }
+ } else {
+ super.removeSemanticListeners();
+ }
+ }
+
+ /**
+ * @generated
+ */
+ protected AccessibleEditPart getAccessibleEditPart() {
+ if (accessibleEP == null) {
+ accessibleEP = new AccessibleGraphicalEditPart() {
+
+ public void getName(AccessibleEvent e) {
+ e.result = getLabelTextHelper(getFigure());
+ }
+ };
+ }
+ return accessibleEP;
+ }
+
+ /**
+ * @generated
+ */
+ private View getFontStyleOwnerView() {
+ return getPrimaryView();
+ }
+
+ /**
+ * @generated
+ */
+ protected void addNotationalListeners() {
+ super.addNotationalListeners();
+ addListenerFilter("PrimaryView", this, getPrimaryView()); //$NON-NLS-1$
+ }
+
+ /**
+ * @generated
+ */
+ protected void removeNotationalListeners() {
+ super.removeNotationalListeners();
+ removeListenerFilter("PrimaryView"); //$NON-NLS-1$
+ }
+
+ /**
+ * @generated
+ */
+ protected void handleNotificationEvent(Notification event) {
+ Object feature = event.getFeature();
+ if (NotationPackage.eINSTANCE.getFontStyle_FontColor().equals(feature)) {
+ Integer c = (Integer) event.getNewValue();
+ setFontColor(DiagramColorRegistry.getInstance().getColor(c));
+ } else if (NotationPackage.eINSTANCE.getFontStyle_Underline().equals(
+ feature)) {
+ refreshUnderline();
+ } else if (NotationPackage.eINSTANCE.getFontStyle_StrikeThrough()
+ .equals(feature)) {
+ refreshStrikeThrough();
+ } else if (NotationPackage.eINSTANCE.getFontStyle_FontHeight().equals(
+ feature)
+ || NotationPackage.eINSTANCE.getFontStyle_FontName().equals(
+ feature)
+ || NotationPackage.eINSTANCE.getFontStyle_Bold()
+ .equals(feature)
+ || NotationPackage.eINSTANCE.getFontStyle_Italic().equals(
+ feature)) {
+ refreshFont();
+ } else {
+ if (getParser() != null
+ && getParser().isAffectingEvent(event,
+ getParserOptions().intValue())) {
+ refreshLabel();
+ }
+ if (getParser() instanceof ISemanticParser) {
+ ISemanticParser modelParser = (ISemanticParser) getParser();
+ if (modelParser.areSemanticElementsAffected(null, event)) {
+ removeSemanticListeners();
+ if (resolveSemanticElement() != null) {
+ addSemanticListeners();
+ }
+ refreshLabel();
+ }
+ }
+ }
+ super.handleNotificationEvent(event);
+ }
+
+ /**
+ * @generated
+ */
+ protected IFigure createFigure() {
+ // Parent should assign one using setLabel() method
+ return null;
+ }
+
+}
diff --git a/org.eclipse.emf.refactor.comrel.diagram/src/comrel/diagram/edit/parts/ParallelQueuedUnitNameTypeLblStrict4EditPart.java b/org.eclipse.emf.refactor.comrel.diagram/src/comrel/diagram/edit/parts/ParallelQueuedUnitNameTypeLblStrict4EditPart.java
new file mode 100644
index 0000000..7197b0e
--- /dev/null
+++ b/org.eclipse.emf.refactor.comrel.diagram/src/comrel/diagram/edit/parts/ParallelQueuedUnitNameTypeLblStrict4EditPart.java
@@ -0,0 +1,576 @@
+/*
+ *
+ */
+package comrel.diagram.edit.parts;
+
+import java.util.Collections;
+import java.util.List;
+
+import org.eclipse.draw2d.IFigure;
+import org.eclipse.draw2d.Label;
+import org.eclipse.draw2d.geometry.Point;
+import org.eclipse.emf.common.notify.Notification;
+import org.eclipse.emf.ecore.EObject;
+import org.eclipse.emf.transaction.RunnableWithResult;
+import org.eclipse.gef.AccessibleEditPart;
+import org.eclipse.gef.EditPolicy;
+import org.eclipse.gef.Request;
+import org.eclipse.gef.requests.DirectEditRequest;
+import org.eclipse.gef.tools.DirectEditManager;
+import org.eclipse.gmf.runtime.common.ui.services.parser.IParser;
+import org.eclipse.gmf.runtime.common.ui.services.parser.IParserEditStatus;
+import org.eclipse.gmf.runtime.common.ui.services.parser.ParserEditStatus;
+import org.eclipse.gmf.runtime.common.ui.services.parser.ParserOptions;
+import org.eclipse.gmf.runtime.diagram.ui.editparts.CompartmentEditPart;
+import org.eclipse.gmf.runtime.diagram.ui.editparts.IGraphicalEditPart;
+import org.eclipse.gmf.runtime.diagram.ui.editparts.ITextAwareEditPart;
+import org.eclipse.gmf.runtime.diagram.ui.editpolicies.LabelDirectEditPolicy;
+import org.eclipse.gmf.runtime.diagram.ui.l10n.DiagramColorRegistry;
+import org.eclipse.gmf.runtime.diagram.ui.requests.RequestConstants;
+import org.eclipse.gmf.runtime.diagram.ui.tools.TextDirectEditManager;
+import org.eclipse.gmf.runtime.draw2d.ui.figures.WrappingLabel;
+import org.eclipse.gmf.runtime.emf.core.util.EObjectAdapter;
+import org.eclipse.gmf.runtime.emf.ui.services.parser.ISemanticParser;
+import org.eclipse.gmf.runtime.notation.FontStyle;
+import org.eclipse.gmf.runtime.notation.NotationPackage;
+import org.eclipse.gmf.runtime.notation.View;
+import org.eclipse.jface.text.contentassist.IContentAssistProcessor;
+import org.eclipse.jface.viewers.ICellEditorValidator;
+import org.eclipse.swt.SWT;
+import org.eclipse.swt.accessibility.AccessibleEvent;
+import org.eclipse.swt.graphics.Color;
+import org.eclipse.swt.graphics.FontData;
+import org.eclipse.swt.graphics.Image;
+
+import comrel.diagram.edit.policies.ComrelTextSelectionEditPolicy;
+import comrel.diagram.part.ComrelVisualIDRegistry;
+import comrel.diagram.providers.ComrelElementTypes;
+import comrel.diagram.providers.ComrelParserProvider;
+
+/**
+ * @generated
+ */
+public class ParallelQueuedUnitNameTypeLblStrict4EditPart extends
+ CompartmentEditPart implements ITextAwareEditPart {
+
+ /**
+ * @generated
+ */
+ public static final int VISUAL_ID = 5070;
+
+ /**
+ * @generated
+ */
+ private DirectEditManager manager;
+
+ /**
+ * @generated
+ */
+ private IParser parser;
+
+ /**
+ * @generated
+ */
+ private List<?> parserElements;
+
+ /**
+ * @generated
+ */
+ private String defaultText;
+
+ /**
+ * @generated
+ */
+ public ParallelQueuedUnitNameTypeLblStrict4EditPart(View view) {
+ super(view);
+ }
+
+ /**
+ * @generated
+ */
+ protected void createDefaultEditPolicies() {
+ super.createDefaultEditPolicies();
+ installEditPolicy(EditPolicy.SELECTION_FEEDBACK_ROLE,
+ new ComrelTextSelectionEditPolicy());
+ installEditPolicy(EditPolicy.DIRECT_EDIT_ROLE,
+ new LabelDirectEditPolicy());
+ installEditPolicy(EditPolicy.PRIMARY_DRAG_ROLE,
+ new CompositeRefactoringEditPart.NodeLabelDragPolicy());
+ }
+
+ /**
+ * @generated
+ */
+ protected String getLabelTextHelper(IFigure figure) {
+ if (figure instanceof WrappingLabel) {
+ return ((WrappingLabel) figure).getText();
+ } else {
+ return ((Label) figure).getText();
+ }
+ }
+
+ /**
+ * @generated
+ */
+ protected void setLabelTextHelper(IFigure figure, String text) {
+ if (figure instanceof WrappingLabel) {
+ ((WrappingLabel) figure).setText(text);
+ } else {
+ ((Label) figure).setText(text);
+ }
+ }
+
+ /**
+ * @generated
+ */
+ protected Image getLabelIconHelper(IFigure figure) {
+ if (figure instanceof WrappingLabel) {
+ return ((WrappingLabel) figure).getIcon();
+ } else {
+ return ((Label) figure).getIcon();
+ }
+ }
+
+ /**
+ * @generated
+ */
+ protected void setLabelIconHelper(IFigure figure, Image icon) {
+ if (figure instanceof WrappingLabel) {
+ ((WrappingLabel) figure).setIcon(icon);
+ } else {
+ ((Label) figure).setIcon(icon);
+ }
+ }
+
+ /**
+ * @generated
+ */
+ public void setLabel(WrappingLabel figure) {
+ unregisterVisuals();
+ setFigure(figure);
+ defaultText = getLabelTextHelper(figure);
+ registerVisuals();
+ refreshVisuals();
+ }
+
+ /**
+ * @generated
+ */
+ @SuppressWarnings("rawtypes")
+ protected List getModelChildren() {
+ return Collections.EMPTY_LIST;
+ }
+
+ /**
+ * @generated
+ */
+ public IGraphicalEditPart getChildBySemanticHint(String semanticHint) {
+ return null;
+ }
+
+ /**
+ * @generated
+ */
+ protected EObject getParserElement() {
+ return resolveSemanticElement();
+ }
+
+ /**
+ * @generated
+ */
+ protected Image getLabelIcon() {
+ return null;
+ }
+
+ /**
+ * @generated
+ */
+ protected String getLabelText() {
+ String text = null;
+ EObject parserElement = getParserElement();
+ if (parserElement != null && getParser() != null) {
+ text = getParser().getPrintString(
+ new EObjectAdapter(parserElement),
+ getParserOptions().intValue());
+ }
+ if (text == null || text.length() == 0) {
+ text = defaultText;
+ }
+ return text;
+ }
+
+ /**
+ * @generated
+ */
+ public void setLabelText(String text) {
+ setLabelTextHelper(getFigure(), text);
+ Object pdEditPolicy = getEditPolicy(EditPolicy.PRIMARY_DRAG_ROLE);
+ if (pdEditPolicy instanceof ComrelTextSelectionEditPolicy) {
+ ((ComrelTextSelectionEditPolicy) pdEditPolicy).refreshFeedback();
+ }
+ Object sfEditPolicy = getEditPolicy(EditPolicy.SELECTION_FEEDBACK_ROLE);
+ if (sfEditPolicy instanceof ComrelTextSelectionEditPolicy) {
+ ((ComrelTextSelectionEditPolicy) sfEditPolicy).refreshFeedback();
+ }
+ }
+
+ /**
+ * @generated
+ */
+ public String getEditText() {
+ if (getParserElement() == null || getParser() == null) {
+ return ""; //$NON-NLS-1$
+ }
+ return getParser().getEditString(
+ new EObjectAdapter(getParserElement()),
+ getParserOptions().intValue());
+ }
+
+ /**
+ * @generated
+ */
+ protected boolean isEditable() {
+ return getParser() != null;
+ }
+
+ /**
+ * @generated
+ */
+ public ICellEditorValidator getEditTextValidator() {
+ return new ICellEditorValidator() {
+
+ public String isValid(final Object value) {
+ if (value instanceof String) {
+ final EObject element = getParserElement();
+ final IParser parser = getParser();
+ try {
+ IParserEditStatus valid = (IParserEditStatus) getEditingDomain()
+ .runExclusive(
+ new RunnableWithResult.Impl<IParserEditStatus>() {
+
+ public void run() {
+ setResult(parser
+ .isValidEditString(
+ new EObjectAdapter(
+ element),
+ (String) value));
+ }
+ });
+ return valid.getCode() == ParserEditStatus.EDITABLE ? null
+ : valid.getMessage();
+ } catch (InterruptedException ie) {
+ ie.printStackTrace();
+ }
+ }
+
+ // shouldn't get here
+ return null;
+ }
+ };
+ }
+
+ /**
+ * @generated
+ */
+ public IContentAssistProcessor getCompletionProcessor() {
+ if (getParserElement() == null || getParser() == null) {
+ return null;
+ }
+ return getParser().getCompletionProcessor(
+ new EObjectAdapter(getParserElement()));
+ }
+
+ /**
+ * @generated
+ */
+ public ParserOptions getParserOptions() {
+ return ParserOptions.NONE;
+ }
+
+ /**
+ * @generated
+ */
+ public IParser getParser() {
+ if (parser == null) {
+ parser = ComrelParserProvider
+ .getParser(
+ ComrelElementTypes.ParallelQueuedUnit_3037,
+ getParserElement(),
+ ComrelVisualIDRegistry
+ .getType(comrel.diagram.edit.parts.ParallelQueuedUnitNameTypeLblStrict4EditPart.VISUAL_ID));
+ }
+ return parser;
+ }
+
+ /**
+ * @generated
+ */
+ protected DirectEditManager getManager() {
+ if (manager == null) {
+ setManager(new TextDirectEditManager(this,
+ TextDirectEditManager.getTextCellEditorClass(this),
+ ComrelEditPartFactory.getTextCellEditorLocator(this)));
+ }
+ return manager;
+ }
+
+ /**
+ * @generated
+ */
+ protected void setManager(DirectEditManager manager) {
+ this.manager = manager;
+ }
+
+ /**
+ * @generated
+ */
+ protected void performDirectEdit() {
+ getManager().show();
+ }
+
+ /**
+ * @generated
+ */
+ protected void performDirectEdit(Point eventLocation) {
+ if (getManager().getClass() == TextDirectEditManager.class) {
+ ((TextDirectEditManager) getManager()).show(eventLocation
+ .getSWTPoint());
+ }
+ }
+
+ /**
+ * @generated
+ */
+ private void performDirectEdit(char initialCharacter) {
+ if (getManager() instanceof TextDirectEditManager) {
+ ((TextDirectEditManager) getManager()).show(initialCharacter);
+ } else {
+ performDirectEdit();
+ }
+ }
+
+ /**
+ * @generated
+ */
+ protected void performDirectEditRequest(Request request) {
+ final Request theRequest = request;
+ try {
+ getEditingDomain().runExclusive(new Runnable() {
+
+ public void run() {
+ if (isActive() && isEditable()) {
+ if (theRequest
+ .getExtendedData()
+ .get(RequestConstants.REQ_DIRECTEDIT_EXTENDEDDATA_INITIAL_CHAR) instanceof Character) {
+ Character initialChar = (Character) theRequest
+ .getExtendedData()
+ .get(RequestConstants.REQ_DIRECTEDIT_EXTENDEDDATA_INITIAL_CHAR);
+ performDirectEdit(initialChar.charValue());
+ } else if ((theRequest instanceof DirectEditRequest)
+ && (getEditText().equals(getLabelText()))) {
+ DirectEditRequest editRequest = (DirectEditRequest) theRequest;
+ performDirectEdit(editRequest.getLocation());
+ } else {
+ performDirectEdit();
+ }
+ }
+ }
+ });
+ } catch (InterruptedException e) {
+ e.printStackTrace();
+ }
+ }
+
+ /**
+ * @generated
+ */
+ protected void refreshVisuals() {
+ super.refreshVisuals();
+ refreshLabel();
+ refreshFont();
+ refreshFontColor();
+ refreshUnderline();
+ refreshStrikeThrough();
+ }
+
+ /**
+ * @generated
+ */
+ protected void refreshLabel() {
+ setLabelTextHelper(getFigure(), getLabelText());
+ setLabelIconHelper(getFigure(), getLabelIcon());
+ Object pdEditPolicy = getEditPolicy(EditPolicy.PRIMARY_DRAG_ROLE);
+ if (pdEditPolicy instanceof ComrelTextSelectionEditPolicy) {
+ ((ComrelTextSelectionEditPolicy) pdEditPolicy).refreshFeedback();
+ }
+ Object sfEditPolicy = getEditPolicy(EditPolicy.SELECTION_FEEDBACK_ROLE);
+ if (sfEditPolicy instanceof ComrelTextSelectionEditPolicy) {
+ ((ComrelTextSelectionEditPolicy) sfEditPolicy).refreshFeedback();
+ }
+ }
+
+ /**
+ * @generated
+ */
+ protected void refreshUnderline() {
+ FontStyle style = (FontStyle) getFontStyleOwnerView().getStyle(
+ NotationPackage.eINSTANCE.getFontStyle());
+ if (style != null && getFigure() instanceof WrappingLabel) {
+ ((WrappingLabel) getFigure()).setTextUnderline(style.isUnderline());
+ }
+ }
+
+ /**
+ * @generated
+ */
+ protected void refreshStrikeThrough() {
+ FontStyle style = (FontStyle) getFontStyleOwnerView().getStyle(
+ NotationPackage.eINSTANCE.getFontStyle());
+ if (style != null && getFigure() instanceof WrappingLabel) {
+ ((WrappingLabel) getFigure()).setTextStrikeThrough(style
+ .isStrikeThrough());
+ }
+ }
+
+ /**
+ * @generated
+ */
+ protected void refreshFont() {
+ FontStyle style = (FontStyle) getFontStyleOwnerView().getStyle(
+ NotationPackage.eINSTANCE.getFontStyle());
+ if (style != null) {
+ FontData fontData = new FontData(style.getFontName(),
+ style.getFontHeight(), (style.isBold() ? SWT.BOLD
+ : SWT.NORMAL)
+ | (style.isItalic() ? SWT.ITALIC : SWT.NORMAL));
+ setFont(fontData);
+ }
+ }
+
+ /**
+ * @generated
+ */
+ protected void setFontColor(Color color) {
+ getFigure().setForegroundColor(color);
+ }
+
+ /**
+ * @generated
+ */
+ protected void addSemanticListeners() {
+ if (getParser() instanceof ISemanticParser) {
+ EObject element = resolveSemanticElement();
+ parserElements = ((ISemanticParser) getParser())
+ .getSemanticElementsBeingParsed(element);
+ for (int i = 0; i < parserElements.size(); i++) {
+ addListenerFilter(
+ "SemanticModel" + i, this, (EObject) parserElements.get(i)); //$NON-NLS-1$
+ }
+ } else {
+ super.addSemanticListeners();
+ }
+ }
+
+ /**
+ * @generated
+ */
+ protected void removeSemanticListeners() {
+ if (parserElements != null) {
+ for (int i = 0; i < parserElements.size(); i++) {
+ removeListenerFilter("SemanticModel" + i); //$NON-NLS-1$
+ }
+ } else {
+ super.removeSemanticListeners();
+ }
+ }
+
+ /**
+ * @generated
+ */
+ protected AccessibleEditPart getAccessibleEditPart() {
+ if (accessibleEP == null) {
+ accessibleEP = new AccessibleGraphicalEditPart() {
+
+ public void getName(AccessibleEvent e) {
+ e.result = getLabelTextHelper(getFigure());
+ }
+ };
+ }
+ return accessibleEP;
+ }
+
+ /**
+ * @generated
+ */
+ private View getFontStyleOwnerView() {
+ return getPrimaryView();
+ }
+
+ /**
+ * @generated
+ */
+ protected void addNotationalListeners() {
+ super.addNotationalListeners();
+ addListenerFilter("PrimaryView", this, getPrimaryView()); //$NON-NLS-1$
+ }
+
+ /**
+ * @generated
+ */
+ protected void removeNotationalListeners() {
+ super.removeNotationalListeners();
+ removeListenerFilter("PrimaryView"); //$NON-NLS-1$
+ }
+
+ /**
+ * @generated
+ */
+ protected void handleNotificationEvent(Notification event) {
+ Object feature = event.getFeature();
+ if (NotationPackage.eINSTANCE.getFontStyle_FontColor().equals(feature)) {
+ Integer c = (Integer) event.getNewValue();
+ setFontColor(DiagramColorRegistry.getInstance().getColor(c));
+ } else if (NotationPackage.eINSTANCE.getFontStyle_Underline().equals(
+ feature)) {
+ refreshUnderline();
+ } else if (NotationPackage.eINSTANCE.getFontStyle_StrikeThrough()
+ .equals(feature)) {
+ refreshStrikeThrough();
+ } else if (NotationPackage.eINSTANCE.getFontStyle_FontHeight().equals(
+ feature)
+ || NotationPackage.eINSTANCE.getFontStyle_FontName().equals(
+ feature)
+ || NotationPackage.eINSTANCE.getFontStyle_Bold()
+ .equals(feature)
+ || NotationPackage.eINSTANCE.getFontStyle_Italic().equals(
+ feature)) {
+ refreshFont();
+ } else {
+ if (getParser() != null
+ && getParser().isAffectingEvent(event,
+ getParserOptions().intValue())) {
+ refreshLabel();
+ }
+ if (getParser() instanceof ISemanticParser) {
+ ISemanticParser modelParser = (ISemanticParser) getParser();
+ if (modelParser.areSemanticElementsAffected(null, event)) {
+ removeSemanticListeners();
+ if (resolveSemanticElement() != null) {
+ addSemanticListeners();
+ }
+ refreshLabel();
+ }
+ }
+ }
+ super.handleNotificationEvent(event);
+ }
+
+ /**
+ * @generated
+ */
+ protected IFigure createFigure() {
+ // Parent should assign one using setLabel() method
+ return null;
+ }
+
+}
diff --git a/org.eclipse.emf.refactor.comrel.diagram/src/comrel/diagram/edit/parts/ParallelQueuedUnitNameTypeLblStrict5EditPart.java b/org.eclipse.emf.refactor.comrel.diagram/src/comrel/diagram/edit/parts/ParallelQueuedUnitNameTypeLblStrict5EditPart.java
new file mode 100644
index 0000000..0e62774
--- /dev/null
+++ b/org.eclipse.emf.refactor.comrel.diagram/src/comrel/diagram/edit/parts/ParallelQueuedUnitNameTypeLblStrict5EditPart.java
@@ -0,0 +1,576 @@
+/*
+ *
+ */
+package comrel.diagram.edit.parts;
+
+import java.util.Collections;
+import java.util.List;
+
+import org.eclipse.draw2d.IFigure;
+import org.eclipse.draw2d.Label;
+import org.eclipse.draw2d.geometry.Point;
+import org.eclipse.emf.common.notify.Notification;
+import org.eclipse.emf.ecore.EObject;
+import org.eclipse.emf.transaction.RunnableWithResult;
+import org.eclipse.gef.AccessibleEditPart;
+import org.eclipse.gef.EditPolicy;
+import org.eclipse.gef.Request;
+import org.eclipse.gef.requests.DirectEditRequest;
+import org.eclipse.gef.tools.DirectEditManager;
+import org.eclipse.gmf.runtime.common.ui.services.parser.IParser;
+import org.eclipse.gmf.runtime.common.ui.services.parser.IParserEditStatus;
+import org.eclipse.gmf.runtime.common.ui.services.parser.ParserEditStatus;
+import org.eclipse.gmf.runtime.common.ui.services.parser.ParserOptions;
+import org.eclipse.gmf.runtime.diagram.ui.editparts.CompartmentEditPart;
+import org.eclipse.gmf.runtime.diagram.ui.editparts.IGraphicalEditPart;
+import org.eclipse.gmf.runtime.diagram.ui.editparts.ITextAwareEditPart;
+import org.eclipse.gmf.runtime.diagram.ui.editpolicies.LabelDirectEditPolicy;
+import org.eclipse.gmf.runtime.diagram.ui.l10n.DiagramColorRegistry;
+import org.eclipse.gmf.runtime.diagram.ui.requests.RequestConstants;
+import org.eclipse.gmf.runtime.diagram.ui.tools.TextDirectEditManager;
+import org.eclipse.gmf.runtime.draw2d.ui.figures.WrappingLabel;
+import org.eclipse.gmf.runtime.emf.core.util.EObjectAdapter;
+import org.eclipse.gmf.runtime.emf.ui.services.parser.ISemanticParser;
+import org.eclipse.gmf.runtime.notation.FontStyle;
+import org.eclipse.gmf.runtime.notation.NotationPackage;
+import org.eclipse.gmf.runtime.notation.View;
+import org.eclipse.jface.text.contentassist.IContentAssistProcessor;
+import org.eclipse.jface.viewers.ICellEditorValidator;
+import org.eclipse.swt.SWT;
+import org.eclipse.swt.accessibility.AccessibleEvent;
+import org.eclipse.swt.graphics.Color;
+import org.eclipse.swt.graphics.FontData;
+import org.eclipse.swt.graphics.Image;
+
+import comrel.diagram.edit.policies.ComrelTextSelectionEditPolicy;
+import comrel.diagram.part.ComrelVisualIDRegistry;
+import comrel.diagram.providers.ComrelElementTypes;
+import comrel.diagram.providers.ComrelParserProvider;
+
+/**
+ * @generated
+ */
+public class ParallelQueuedUnitNameTypeLblStrict5EditPart extends
+ CompartmentEditPart implements ITextAwareEditPart {
+
+ /**
+ * @generated
+ */
+ public static final int VISUAL_ID = 5068;
+
+ /**
+ * @generated
+ */
+ private DirectEditManager manager;
+
+ /**
+ * @generated
+ */
+ private IParser parser;
+
+ /**
+ * @generated
+ */
+ private List<?> parserElements;
+
+ /**
+ * @generated
+ */
+ private String defaultText;
+
+ /**
+ * @generated
+ */
+ public ParallelQueuedUnitNameTypeLblStrict5EditPart(View view) {
+ super(view);
+ }
+
+ /**
+ * @generated
+ */
+ protected void createDefaultEditPolicies() {
+ super.createDefaultEditPolicies();
+ installEditPolicy(EditPolicy.SELECTION_FEEDBACK_ROLE,
+ new ComrelTextSelectionEditPolicy());
+ installEditPolicy(EditPolicy.DIRECT_EDIT_ROLE,
+ new LabelDirectEditPolicy());
+ installEditPolicy(EditPolicy.PRIMARY_DRAG_ROLE,
+ new CompositeRefactoringEditPart.NodeLabelDragPolicy());
+ }
+
+ /**
+ * @generated
+ */
+ protected String getLabelTextHelper(IFigure figure) {
+ if (figure instanceof WrappingLabel) {
+ return ((WrappingLabel) figure).getText();
+ } else {
+ return ((Label) figure).getText();
+ }
+ }
+
+ /**
+ * @generated
+ */
+ protected void setLabelTextHelper(IFigure figure, String text) {
+ if (figure instanceof WrappingLabel) {
+ ((WrappingLabel) figure).setText(text);
+ } else {
+ ((Label) figure).setText(text);
+ }
+ }
+
+ /**
+ * @generated
+ */
+ protected Image getLabelIconHelper(IFigure figure) {
+ if (figure instanceof WrappingLabel) {
+ return ((WrappingLabel) figure).getIcon();
+ } else {
+ return ((Label) figure).getIcon();
+ }
+ }
+
+ /**
+ * @generated
+ */
+ protected void setLabelIconHelper(IFigure figure, Image icon) {
+ if (figure instanceof WrappingLabel) {
+ ((WrappingLabel) figure).setIcon(icon);
+ } else {
+ ((Label) figure).setIcon(icon);
+ }
+ }
+
+ /**
+ * @generated
+ */
+ public void setLabel(WrappingLabel figure) {
+ unregisterVisuals();
+ setFigure(figure);
+ defaultText = getLabelTextHelper(figure);
+ registerVisuals();
+ refreshVisuals();
+ }
+
+ /**
+ * @generated
+ */
+ @SuppressWarnings("rawtypes")
+ protected List getModelChildren() {
+ return Collections.EMPTY_LIST;
+ }
+
+ /**
+ * @generated
+ */
+ public IGraphicalEditPart getChildBySemanticHint(String semanticHint) {
+ return null;
+ }
+
+ /**
+ * @generated
+ */
+ protected EObject getParserElement() {
+ return resolveSemanticElement();
+ }
+
+ /**
+ * @generated
+ */
+ protected Image getLabelIcon() {
+ return null;
+ }
+
+ /**
+ * @generated
+ */
+ protected String getLabelText() {
+ String text = null;
+ EObject parserElement = getParserElement();
+ if (parserElement != null && getParser() != null) {
+ text = getParser().getPrintString(
+ new EObjectAdapter(parserElement),
+ getParserOptions().intValue());
+ }
+ if (text == null || text.length() == 0) {
+ text = defaultText;
+ }
+ return text;
+ }
+
+ /**
+ * @generated
+ */
+ public void setLabelText(String text) {
+ setLabelTextHelper(getFigure(), text);
+ Object pdEditPolicy = getEditPolicy(EditPolicy.PRIMARY_DRAG_ROLE);
+ if (pdEditPolicy instanceof ComrelTextSelectionEditPolicy) {
+ ((ComrelTextSelectionEditPolicy) pdEditPolicy).refreshFeedback();
+ }
+ Object sfEditPolicy = getEditPolicy(EditPolicy.SELECTION_FEEDBACK_ROLE);
+ if (sfEditPolicy instanceof ComrelTextSelectionEditPolicy) {
+ ((ComrelTextSelectionEditPolicy) sfEditPolicy).refreshFeedback();
+ }
+ }
+
+ /**
+ * @generated
+ */
+ public String getEditText() {
+ if (getParserElement() == null || getParser() == null) {
+ return ""; //$NON-NLS-1$
+ }
+ return getParser().getEditString(
+ new EObjectAdapter(getParserElement()),
+ getParserOptions().intValue());
+ }
+
+ /**
+ * @generated
+ */
+ protected boolean isEditable() {
+ return getParser() != null;
+ }
+
+ /**
+ * @generated
+ */
+ public ICellEditorValidator getEditTextValidator() {
+ return new ICellEditorValidator() {
+
+ public String isValid(final Object value) {
+ if (value instanceof String) {
+ final EObject element = getParserElement();
+ final IParser parser = getParser();
+ try {
+ IParserEditStatus valid = (IParserEditStatus) getEditingDomain()
+ .runExclusive(
+ new RunnableWithResult.Impl<IParserEditStatus>() {
+
+ public void run() {
+ setResult(parser
+ .isValidEditString(
+ new EObjectAdapter(
+ element),
+ (String) value));
+ }
+ });
+ return valid.getCode() == ParserEditStatus.EDITABLE ? null
+ : valid.getMessage();
+ } catch (InterruptedException ie) {
+ ie.printStackTrace();
+ }
+ }
+
+ // shouldn't get here
+ return null;
+ }
+ };
+ }
+
+ /**
+ * @generated
+ */
+ public IContentAssistProcessor getCompletionProcessor() {
+ if (getParserElement() == null || getParser() == null) {
+ return null;
+ }
+ return getParser().getCompletionProcessor(
+ new EObjectAdapter(getParserElement()));
+ }
+
+ /**
+ * @generated
+ */
+ public ParserOptions getParserOptions() {
+ return ParserOptions.NONE;
+ }
+
+ /**
+ * @generated
+ */
+ public IParser getParser() {
+ if (parser == null) {
+ parser = ComrelParserProvider
+ .getParser(
+ ComrelElementTypes.ParallelQueuedUnit_3043,
+ getParserElement(),
+ ComrelVisualIDRegistry
+ .getType(comrel.diagram.edit.parts.ParallelQueuedUnitNameTypeLblStrict5EditPart.VISUAL_ID));
+ }
+ return parser;
+ }
+
+ /**
+ * @generated
+ */
+ protected DirectEditManager getManager() {
+ if (manager == null) {
+ setManager(new TextDirectEditManager(this,
+ TextDirectEditManager.getTextCellEditorClass(this),
+ ComrelEditPartFactory.getTextCellEditorLocator(this)));
+ }
+ return manager;
+ }
+
+ /**
+ * @generated
+ */
+ protected void setManager(DirectEditManager manager) {
+ this.manager = manager;
+ }
+
+ /**
+ * @generated
+ */
+ protected void performDirectEdit() {
+ getManager().show();
+ }
+
+ /**
+ * @generated
+ */
+ protected void performDirectEdit(Point eventLocation) {
+ if (getManager().getClass() == TextDirectEditManager.class) {
+ ((TextDirectEditManager) getManager()).show(eventLocation
+ .getSWTPoint());
+ }
+ }
+
+ /**
+ * @generated
+ */
+ private void performDirectEdit(char initialCharacter) {
+ if (getManager() instanceof TextDirectEditManager) {
+ ((TextDirectEditManager) getManager()).show(initialCharacter);
+ } else {
+ performDirectEdit();
+ }
+ }
+
+ /**
+ * @generated
+ */
+ protected void performDirectEditRequest(Request request) {
+ final Request theRequest = request;
+ try {
+ getEditingDomain().runExclusive(new Runnable() {
+
+ public void run() {
+ if (isActive() && isEditable()) {
+ if (theRequest
+ .getExtendedData()
+ .get(RequestConstants.REQ_DIRECTEDIT_EXTENDEDDATA_INITIAL_CHAR) instanceof Character) {
+ Character initialChar = (Character) theRequest
+ .getExtendedData()
+ .get(RequestConstants.REQ_DIRECTEDIT_EXTENDEDDATA_INITIAL_CHAR);
+ performDirectEdit(initialChar.charValue());
+ } else if ((theRequest instanceof DirectEditRequest)
+ && (getEditText().equals(getLabelText()))) {
+ DirectEditRequest editRequest = (DirectEditRequest) theRequest;
+ performDirectEdit(editRequest.getLocation());
+ } else {
+ performDirectEdit();
+ }
+ }
+ }
+ });
+ } catch (InterruptedException e) {
+ e.printStackTrace();
+ }
+ }
+
+ /**
+ * @generated
+ */
+ protected void refreshVisuals() {
+ super.refreshVisuals();
+ refreshLabel();
+ refreshFont();
+ refreshFontColor();
+ refreshUnderline();
+ refreshStrikeThrough();
+ }
+
+ /**
+ * @generated
+ */
+ protected void refreshLabel() {
+ setLabelTextHelper(getFigure(), getLabelText());
+ setLabelIconHelper(getFigure(), getLabelIcon());
+ Object pdEditPolicy = getEditPolicy(EditPolicy.PRIMARY_DRAG_ROLE);
+ if (pdEditPolicy instanceof ComrelTextSelectionEditPolicy) {
+ ((ComrelTextSelectionEditPolicy) pdEditPolicy).refreshFeedback();
+ }
+ Object sfEditPolicy = getEditPolicy(EditPolicy.SELECTION_FEEDBACK_ROLE);
+ if (sfEditPolicy instanceof ComrelTextSelectionEditPolicy) {
+ ((ComrelTextSelectionEditPolicy) sfEditPolicy).refreshFeedback();
+ }
+ }
+
+ /**
+ * @generated
+ */
+ protected void refreshUnderline() {
+ FontStyle style = (FontStyle) getFontStyleOwnerView().getStyle(
+ NotationPackage.eINSTANCE.getFontStyle());
+ if (style != null && getFigure() instanceof WrappingLabel) {
+ ((WrappingLabel) getFigure()).setTextUnderline(style.isUnderline());
+ }
+ }
+
+ /**
+ * @generated
+ */
+ protected void refreshStrikeThrough() {
+ FontStyle style = (FontStyle) getFontStyleOwnerView().getStyle(
+ NotationPackage.eINSTANCE.getFontStyle());
+ if (style != null && getFigure() instanceof WrappingLabel) {
+ ((WrappingLabel) getFigure()).setTextStrikeThrough(style
+ .isStrikeThrough());
+ }
+ }
+
+ /**
+ * @generated
+ */
+ protected void refreshFont() {
+ FontStyle style = (FontStyle) getFontStyleOwnerView().getStyle(
+ NotationPackage.eINSTANCE.getFontStyle());
+ if (style != null) {
+ FontData fontData = new FontData(style.getFontName(),
+ style.getFontHeight(), (style.isBold() ? SWT.BOLD
+ : SWT.NORMAL)
+ | (style.isItalic() ? SWT.ITALIC : SWT.NORMAL));
+ setFont(fontData);
+ }
+ }
+
+ /**
+ * @generated
+ */
+ protected void setFontColor(Color color) {
+ getFigure().setForegroundColor(color);
+ }
+
+ /**
+ * @generated
+ */
+ protected void addSemanticListeners() {
+ if (getParser() instanceof ISemanticParser) {
+ EObject element = resolveSemanticElement();
+ parserElements = ((ISemanticParser) getParser())
+ .getSemanticElementsBeingParsed(element);
+ for (int i = 0; i < parserElements.size(); i++) {
+ addListenerFilter(
+ "SemanticModel" + i, this, (EObject) parserElements.get(i)); //$NON-NLS-1$
+ }
+ } else {
+ super.addSemanticListeners();
+ }
+ }
+
+ /**
+ * @generated
+ */
+ protected void removeSemanticListeners() {
+ if (parserElements != null) {
+ for (int i = 0; i < parserElements.size(); i++) {
+ removeListenerFilter("SemanticModel" + i); //$NON-NLS-1$
+ }
+ } else {
+ super.removeSemanticListeners();
+ }
+ }
+
+ /**
+ * @generated
+ */
+ protected AccessibleEditPart getAccessibleEditPart() {
+ if (accessibleEP == null) {
+ accessibleEP = new AccessibleGraphicalEditPart() {
+
+ public void getName(AccessibleEvent e) {
+ e.result = getLabelTextHelper(getFigure());
+ }
+ };
+ }
+ return accessibleEP;
+ }
+
+ /**
+ * @generated
+ */
+ private View getFontStyleOwnerView() {
+ return getPrimaryView();
+ }
+
+ /**
+ * @generated
+ */
+ protected void addNotationalListeners() {
+ super.addNotationalListeners();
+ addListenerFilter("PrimaryView", this, getPrimaryView()); //$NON-NLS-1$
+ }
+
+ /**
+ * @generated
+ */
+ protected void removeNotationalListeners() {
+ super.removeNotationalListeners();
+ removeListenerFilter("PrimaryView"); //$NON-NLS-1$
+ }
+
+ /**
+ * @generated
+ */
+ protected void handleNotificationEvent(Notification event) {
+ Object feature = event.getFeature();
+ if (NotationPackage.eINSTANCE.getFontStyle_FontColor().equals(feature)) {
+ Integer c = (Integer) event.getNewValue();
+ setFontColor(DiagramColorRegistry.getInstance().getColor(c));
+ } else if (NotationPackage.eINSTANCE.getFontStyle_Underline().equals(
+ feature)) {
+ refreshUnderline();
+ } else if (NotationPackage.eINSTANCE.getFontStyle_StrikeThrough()
+ .equals(feature)) {
+ refreshStrikeThrough();
+ } else if (NotationPackage.eINSTANCE.getFontStyle_FontHeight().equals(
+ feature)
+ || NotationPackage.eINSTANCE.getFontStyle_FontName().equals(
+ feature)
+ || NotationPackage.eINSTANCE.getFontStyle_Bold()
+ .equals(feature)
+ || NotationPackage.eINSTANCE.getFontStyle_Italic().equals(
+ feature)) {
+ refreshFont();
+ } else {
+ if (getParser() != null
+ && getParser().isAffectingEvent(event,
+ getParserOptions().intValue())) {
+ refreshLabel();
+ }
+ if (getParser() instanceof ISemanticParser) {
+ ISemanticParser modelParser = (ISemanticParser) getParser();
+ if (modelParser.areSemanticElementsAffected(null, event)) {
+ removeSemanticListeners();
+ if (resolveSemanticElement() != null) {
+ addSemanticListeners();
+ }
+ refreshLabel();
+ }
+ }
+ }
+ super.handleNotificationEvent(event);
+ }
+
+ /**
+ * @generated
+ */
+ protected IFigure createFigure() {
+ // Parent should assign one using setLabel() method
+ return null;
+ }
+
+}
diff --git a/org.eclipse.emf.refactor.comrel.diagram/src/comrel/diagram/edit/parts/ParallelQueuedUnitNameTypeLblStrict6EditPart.java b/org.eclipse.emf.refactor.comrel.diagram/src/comrel/diagram/edit/parts/ParallelQueuedUnitNameTypeLblStrict6EditPart.java
new file mode 100644
index 0000000..404dfe8
--- /dev/null
+++ b/org.eclipse.emf.refactor.comrel.diagram/src/comrel/diagram/edit/parts/ParallelQueuedUnitNameTypeLblStrict6EditPart.java
@@ -0,0 +1,576 @@
+/*
+ *
+ */
+package comrel.diagram.edit.parts;
+
+import java.util.Collections;
+import java.util.List;
+
+import org.eclipse.draw2d.IFigure;
+import org.eclipse.draw2d.Label;
+import org.eclipse.draw2d.geometry.Point;
+import org.eclipse.emf.common.notify.Notification;
+import org.eclipse.emf.ecore.EObject;
+import org.eclipse.emf.transaction.RunnableWithResult;
+import org.eclipse.gef.AccessibleEditPart;
+import org.eclipse.gef.EditPolicy;
+import org.eclipse.gef.Request;
+import org.eclipse.gef.requests.DirectEditRequest;
+import org.eclipse.gef.tools.DirectEditManager;
+import org.eclipse.gmf.runtime.common.ui.services.parser.IParser;
+import org.eclipse.gmf.runtime.common.ui.services.parser.IParserEditStatus;
+import org.eclipse.gmf.runtime.common.ui.services.parser.ParserEditStatus;
+import org.eclipse.gmf.runtime.common.ui.services.parser.ParserOptions;
+import org.eclipse.gmf.runtime.diagram.ui.editparts.CompartmentEditPart;
+import org.eclipse.gmf.runtime.diagram.ui.editparts.IGraphicalEditPart;
+import org.eclipse.gmf.runtime.diagram.ui.editparts.ITextAwareEditPart;
+import org.eclipse.gmf.runtime.diagram.ui.editpolicies.LabelDirectEditPolicy;
+import org.eclipse.gmf.runtime.diagram.ui.l10n.DiagramColorRegistry;
+import org.eclipse.gmf.runtime.diagram.ui.requests.RequestConstants;
+import org.eclipse.gmf.runtime.diagram.ui.tools.TextDirectEditManager;
+import org.eclipse.gmf.runtime.draw2d.ui.figures.WrappingLabel;
+import org.eclipse.gmf.runtime.emf.core.util.EObjectAdapter;
+import org.eclipse.gmf.runtime.emf.ui.services.parser.ISemanticParser;
+import org.eclipse.gmf.runtime.notation.FontStyle;
+import org.eclipse.gmf.runtime.notation.NotationPackage;
+import org.eclipse.gmf.runtime.notation.View;
+import org.eclipse.jface.text.contentassist.IContentAssistProcessor;
+import org.eclipse.jface.viewers.ICellEditorValidator;
+import org.eclipse.swt.SWT;
+import org.eclipse.swt.accessibility.AccessibleEvent;
+import org.eclipse.swt.graphics.Color;
+import org.eclipse.swt.graphics.FontData;
+import org.eclipse.swt.graphics.Image;
+
+import comrel.diagram.edit.policies.ComrelTextSelectionEditPolicy;
+import comrel.diagram.part.ComrelVisualIDRegistry;
+import comrel.diagram.providers.ComrelElementTypes;
+import comrel.diagram.providers.ComrelParserProvider;
+
+/**
+ * @generated
+ */
+public class ParallelQueuedUnitNameTypeLblStrict6EditPart extends
+ CompartmentEditPart implements ITextAwareEditPart {
+
+ /**
+ * @generated
+ */
+ public static final int VISUAL_ID = 5066;
+
+ /**
+ * @generated
+ */
+ private DirectEditManager manager;
+
+ /**
+ * @generated
+ */
+ private IParser parser;
+
+ /**
+ * @generated
+ */
+ private List<?> parserElements;
+
+ /**
+ * @generated
+ */
+ private String defaultText;
+
+ /**
+ * @generated
+ */
+ public ParallelQueuedUnitNameTypeLblStrict6EditPart(View view) {
+ super(view);
+ }
+
+ /**
+ * @generated
+ */
+ protected void createDefaultEditPolicies() {
+ super.createDefaultEditPolicies();
+ installEditPolicy(EditPolicy.SELECTION_FEEDBACK_ROLE,
+ new ComrelTextSelectionEditPolicy());
+ installEditPolicy(EditPolicy.DIRECT_EDIT_ROLE,
+ new LabelDirectEditPolicy());
+ installEditPolicy(EditPolicy.PRIMARY_DRAG_ROLE,
+ new CompositeRefactoringEditPart.NodeLabelDragPolicy());
+ }
+
+ /**
+ * @generated
+ */
+ protected String getLabelTextHelper(IFigure figure) {
+ if (figure instanceof WrappingLabel) {
+ return ((WrappingLabel) figure).getText();
+ } else {
+ return ((Label) figure).getText();
+ }
+ }
+
+ /**
+ * @generated
+ */
+ protected void setLabelTextHelper(IFigure figure, String text) {
+ if (figure instanceof WrappingLabel) {
+ ((WrappingLabel) figure).setText(text);
+ } else {
+ ((Label) figure).setText(text);
+ }
+ }
+
+ /**
+ * @generated
+ */
+ protected Image getLabelIconHelper(IFigure figure) {
+ if (figure instanceof WrappingLabel) {
+ return ((WrappingLabel) figure).getIcon();
+ } else {
+ return ((Label) figure).getIcon();
+ }
+ }
+
+ /**
+ * @generated
+ */
+ protected void setLabelIconHelper(IFigure figure, Image icon) {
+ if (figure instanceof WrappingLabel) {
+ ((WrappingLabel) figure).setIcon(icon);
+ } else {
+ ((Label) figure).setIcon(icon);
+ }
+ }
+
+ /**
+ * @generated
+ */
+ public void setLabel(WrappingLabel figure) {
+ unregisterVisuals();
+ setFigure(figure);
+ defaultText = getLabelTextHelper(figure);
+ registerVisuals();
+ refreshVisuals();
+ }
+
+ /**
+ * @generated
+ */
+ @SuppressWarnings("rawtypes")
+ protected List getModelChildren() {
+ return Collections.EMPTY_LIST;
+ }
+
+ /**
+ * @generated
+ */
+ public IGraphicalEditPart getChildBySemanticHint(String semanticHint) {
+ return null;
+ }
+
+ /**
+ * @generated
+ */
+ protected EObject getParserElement() {
+ return resolveSemanticElement();
+ }
+
+ /**
+ * @generated
+ */
+ protected Image getLabelIcon() {
+ return null;
+ }
+
+ /**
+ * @generated
+ */
+ protected String getLabelText() {
+ String text = null;
+ EObject parserElement = getParserElement();
+ if (parserElement != null && getParser() != null) {
+ text = getParser().getPrintString(
+ new EObjectAdapter(parserElement),
+ getParserOptions().intValue());
+ }
+ if (text == null || text.length() == 0) {
+ text = defaultText;
+ }
+ return text;
+ }
+
+ /**
+ * @generated
+ */
+ public void setLabelText(String text) {
+ setLabelTextHelper(getFigure(), text);
+ Object pdEditPolicy = getEditPolicy(EditPolicy.PRIMARY_DRAG_ROLE);
+ if (pdEditPolicy instanceof ComrelTextSelectionEditPolicy) {
+ ((ComrelTextSelectionEditPolicy) pdEditPolicy).refreshFeedback();
+ }
+ Object sfEditPolicy = getEditPolicy(EditPolicy.SELECTION_FEEDBACK_ROLE);
+ if (sfEditPolicy instanceof ComrelTextSelectionEditPolicy) {
+ ((ComrelTextSelectionEditPolicy) sfEditPolicy).refreshFeedback();
+ }
+ }
+
+ /**
+ * @generated
+ */
+ public String getEditText() {
+ if (getParserElement() == null || getParser() == null) {
+ return ""; //$NON-NLS-1$
+ }
+ return getParser().getEditString(
+ new EObjectAdapter(getParserElement()),
+ getParserOptions().intValue());
+ }
+
+ /**
+ * @generated
+ */
+ protected boolean isEditable() {
+ return getParser() != null;
+ }
+
+ /**
+ * @generated
+ */
+ public ICellEditorValidator getEditTextValidator() {
+ return new ICellEditorValidator() {
+
+ public String isValid(final Object value) {
+ if (value instanceof String) {
+ final EObject element = getParserElement();
+ final IParser parser = getParser();
+ try {
+ IParserEditStatus valid = (IParserEditStatus) getEditingDomain()
+ .runExclusive(
+ new RunnableWithResult.Impl<IParserEditStatus>() {
+
+ public void run() {
+ setResult(parser
+ .isValidEditString(
+ new EObjectAdapter(
+ element),
+ (String) value));
+ }
+ });
+ return valid.getCode() == ParserEditStatus.EDITABLE ? null
+ : valid.getMessage();
+ } catch (InterruptedException ie) {
+ ie.printStackTrace();
+ }
+ }
+
+ // shouldn't get here
+ return null;
+ }
+ };
+ }
+
+ /**
+ * @generated
+ */
+ public IContentAssistProcessor getCompletionProcessor() {
+ if (getParserElement() == null || getParser() == null) {
+ return null;
+ }
+ return getParser().getCompletionProcessor(
+ new EObjectAdapter(getParserElement()));
+ }
+
+ /**
+ * @generated
+ */
+ public ParserOptions getParserOptions() {
+ return ParserOptions.NONE;
+ }
+
+ /**
+ * @generated
+ */
+ public IParser getParser() {
+ if (parser == null) {
+ parser = ComrelParserProvider
+ .getParser(
+ ComrelElementTypes.ParallelQueuedUnit_3045,
+ getParserElement(),
+ ComrelVisualIDRegistry
+ .getType(comrel.diagram.edit.parts.ParallelQueuedUnitNameTypeLblStrict6EditPart.VISUAL_ID));
+ }
+ return parser;
+ }
+
+ /**
+ * @generated
+ */
+ protected DirectEditManager getManager() {
+ if (manager == null) {
+ setManager(new TextDirectEditManager(this,
+ TextDirectEditManager.getTextCellEditorClass(this),
+ ComrelEditPartFactory.getTextCellEditorLocator(this)));
+ }
+ return manager;
+ }
+
+ /**
+ * @generated
+ */
+ protected void setManager(DirectEditManager manager) {
+ this.manager = manager;
+ }
+
+ /**
+ * @generated
+ */
+ protected void performDirectEdit() {
+ getManager().show();
+ }
+
+ /**
+ * @generated
+ */
+ protected void performDirectEdit(Point eventLocation) {
+ if (getManager().getClass() == TextDirectEditManager.class) {
+ ((TextDirectEditManager) getManager()).show(eventLocation
+ .getSWTPoint());
+ }
+ }
+
+ /**
+ * @generated
+ */
+ private void performDirectEdit(char initialCharacter) {
+ if (getManager() instanceof TextDirectEditManager) {
+ ((TextDirectEditManager) getManager()).show(initialCharacter);
+ } else {
+ performDirectEdit();
+ }
+ }
+
+ /**
+ * @generated
+ */
+ protected void performDirectEditRequest(Request request) {
+ final Request theRequest = request;
+ try {
+ getEditingDomain().runExclusive(new Runnable() {
+
+ public void run() {
+ if (isActive() && isEditable()) {
+ if (theRequest
+ .getExtendedData()
+ .get(RequestConstants.REQ_DIRECTEDIT_EXTENDEDDATA_INITIAL_CHAR) instanceof Character) {
+ Character initialChar = (Character) theRequest
+ .getExtendedData()
+ .get(RequestConstants.REQ_DIRECTEDIT_EXTENDEDDATA_INITIAL_CHAR);
+ performDirectEdit(initialChar.charValue());
+ } else if ((theRequest instanceof DirectEditRequest)
+ && (getEditText().equals(getLabelText()))) {
+ DirectEditRequest editRequest = (DirectEditRequest) theRequest;
+ performDirectEdit(editRequest.getLocation());
+ } else {
+ performDirectEdit();
+ }
+ }
+ }
+ });
+ } catch (InterruptedException e) {
+ e.printStackTrace();
+ }
+ }
+
+ /**
+ * @generated
+ */
+ protected void refreshVisuals() {
+ super.refreshVisuals();
+ refreshLabel();
+ refreshFont();
+ refreshFontColor();
+ refreshUnderline();
+ refreshStrikeThrough();
+ }
+
+ /**
+ * @generated
+ */
+ protected void refreshLabel() {
+ setLabelTextHelper(getFigure(), getLabelText());
+ setLabelIconHelper(getFigure(), getLabelIcon());
+ Object pdEditPolicy = getEditPolicy(EditPolicy.PRIMARY_DRAG_ROLE);
+ if (pdEditPolicy instanceof ComrelTextSelectionEditPolicy) {
+ ((ComrelTextSelectionEditPolicy) pdEditPolicy).refreshFeedback();
+ }
+ Object sfEditPolicy = getEditPolicy(EditPolicy.SELECTION_FEEDBACK_ROLE);
+ if (sfEditPolicy instanceof ComrelTextSelectionEditPolicy) {
+ ((ComrelTextSelectionEditPolicy) sfEditPolicy).refreshFeedback();
+ }
+ }
+
+ /**
+ * @generated
+ */
+ protected void refreshUnderline() {
+ FontStyle style = (FontStyle) getFontStyleOwnerView().getStyle(
+ NotationPackage.eINSTANCE.getFontStyle());
+ if (style != null && getFigure() instanceof WrappingLabel) {
+ ((WrappingLabel) getFigure()).setTextUnderline(style.isUnderline());
+ }
+ }
+
+ /**
+ * @generated
+ */
+ protected void refreshStrikeThrough() {
+ FontStyle style = (FontStyle) getFontStyleOwnerView().getStyle(
+ NotationPackage.eINSTANCE.getFontStyle());
+ if (style != null && getFigure() instanceof WrappingLabel) {
+ ((WrappingLabel) getFigure()).setTextStrikeThrough(style
+ .isStrikeThrough());
+ }
+ }
+
+ /**
+ * @generated
+ */
+ protected void refreshFont() {
+ FontStyle style = (FontStyle) getFontStyleOwnerView().getStyle(
+ NotationPackage.eINSTANCE.getFontStyle());
+ if (style != null) {
+ FontData fontData = new FontData(style.getFontName(),
+ style.getFontHeight(), (style.isBold() ? SWT.BOLD
+ : SWT.NORMAL)
+ | (style.isItalic() ? SWT.ITALIC : SWT.NORMAL));
+ setFont(fontData);
+ }
+ }
+
+ /**
+ * @generated
+ */
+ protected void setFontColor(Color color) {
+ getFigure().setForegroundColor(color);
+ }
+
+ /**
+ * @generated
+ */
+ protected void addSemanticListeners() {
+ if (getParser() instanceof ISemanticParser) {
+ EObject element = resolveSemanticElement();
+ parserElements = ((ISemanticParser) getParser())
+ .getSemanticElementsBeingParsed(element);
+ for (int i = 0; i < parserElements.size(); i++) {
+ addListenerFilter(
+ "SemanticModel" + i, this, (EObject) parserElements.get(i)); //$NON-NLS-1$
+ }
+ } else {
+ super.addSemanticListeners();
+ }
+ }
+
+ /**
+ * @generated
+ */
+ protected void removeSemanticListeners() {
+ if (parserElements != null) {
+ for (int i = 0; i < parserElements.size(); i++) {
+ removeListenerFilter("SemanticModel" + i); //$NON-NLS-1$
+ }
+ } else {
+ super.removeSemanticListeners();
+ }
+ }
+
+ /**
+ * @generated
+ */
+ protected AccessibleEditPart getAccessibleEditPart() {
+ if (accessibleEP == null) {
+ accessibleEP = new AccessibleGraphicalEditPart() {
+
+ public void getName(AccessibleEvent e) {
+ e.result = getLabelTextHelper(getFigure());
+ }
+ };
+ }
+ return accessibleEP;
+ }
+
+ /**
+ * @generated
+ */
+ private View getFontStyleOwnerView() {
+ return getPrimaryView();
+ }
+
+ /**
+ * @generated
+ */
+ protected void addNotationalListeners() {
+ super.addNotationalListeners();
+ addListenerFilter("PrimaryView", this, getPrimaryView()); //$NON-NLS-1$
+ }
+
+ /**
+ * @generated
+ */
+ protected void removeNotationalListeners() {
+ super.removeNotationalListeners();
+ removeListenerFilter("PrimaryView"); //$NON-NLS-1$
+ }
+
+ /**
+ * @generated
+ */
+ protected void handleNotificationEvent(Notification event) {
+ Object feature = event.getFeature();
+ if (NotationPackage.eINSTANCE.getFontStyle_FontColor().equals(feature)) {
+ Integer c = (Integer) event.getNewValue();
+ setFontColor(DiagramColorRegistry.getInstance().getColor(c));
+ } else if (NotationPackage.eINSTANCE.getFontStyle_Underline().equals(
+ feature)) {
+ refreshUnderline();
+ } else if (NotationPackage.eINSTANCE.getFontStyle_StrikeThrough()
+ .equals(feature)) {
+ refreshStrikeThrough();
+ } else if (NotationPackage.eINSTANCE.getFontStyle_FontHeight().equals(
+ feature)
+ || NotationPackage.eINSTANCE.getFontStyle_FontName().equals(
+ feature)
+ || NotationPackage.eINSTANCE.getFontStyle_Bold()
+ .equals(feature)
+ || NotationPackage.eINSTANCE.getFontStyle_Italic().equals(
+ feature)) {
+ refreshFont();
+ } else {
+ if (getParser() != null
+ && getParser().isAffectingEvent(event,
+ getParserOptions().intValue())) {
+ refreshLabel();
+ }
+ if (getParser() instanceof ISemanticParser) {
+ ISemanticParser modelParser = (ISemanticParser) getParser();
+ if (modelParser.areSemanticElementsAffected(null, event)) {
+ removeSemanticListeners();
+ if (resolveSemanticElement() != null) {
+ addSemanticListeners();
+ }
+ refreshLabel();
+ }
+ }
+ }
+ super.handleNotificationEvent(event);
+ }
+
+ /**
+ * @generated
+ */
+ protected IFigure createFigure() {
+ // Parent should assign one using setLabel() method
+ return null;
+ }
+
+}
diff --git a/org.eclipse.emf.refactor.comrel.diagram/src/comrel/diagram/edit/parts/ParallelQueuedUnitNameTypeLblStrict7EditPart.java b/org.eclipse.emf.refactor.comrel.diagram/src/comrel/diagram/edit/parts/ParallelQueuedUnitNameTypeLblStrict7EditPart.java
new file mode 100644
index 0000000..c3fe75f
--- /dev/null
+++ b/org.eclipse.emf.refactor.comrel.diagram/src/comrel/diagram/edit/parts/ParallelQueuedUnitNameTypeLblStrict7EditPart.java
@@ -0,0 +1,576 @@
+/*
+ *
+ */
+package comrel.diagram.edit.parts;
+
+import java.util.Collections;
+import java.util.List;
+
+import org.eclipse.draw2d.IFigure;
+import org.eclipse.draw2d.Label;
+import org.eclipse.draw2d.geometry.Point;
+import org.eclipse.emf.common.notify.Notification;
+import org.eclipse.emf.ecore.EObject;
+import org.eclipse.emf.transaction.RunnableWithResult;
+import org.eclipse.gef.AccessibleEditPart;
+import org.eclipse.gef.EditPolicy;
+import org.eclipse.gef.Request;
+import org.eclipse.gef.requests.DirectEditRequest;
+import org.eclipse.gef.tools.DirectEditManager;
+import org.eclipse.gmf.runtime.common.ui.services.parser.IParser;
+import org.eclipse.gmf.runtime.common.ui.services.parser.IParserEditStatus;
+import org.eclipse.gmf.runtime.common.ui.services.parser.ParserEditStatus;
+import org.eclipse.gmf.runtime.common.ui.services.parser.ParserOptions;
+import org.eclipse.gmf.runtime.diagram.ui.editparts.CompartmentEditPart;
+import org.eclipse.gmf.runtime.diagram.ui.editparts.IGraphicalEditPart;
+import org.eclipse.gmf.runtime.diagram.ui.editparts.ITextAwareEditPart;
+import org.eclipse.gmf.runtime.diagram.ui.editpolicies.LabelDirectEditPolicy;
+import org.eclipse.gmf.runtime.diagram.ui.l10n.DiagramColorRegistry;
+import org.eclipse.gmf.runtime.diagram.ui.requests.RequestConstants;
+import org.eclipse.gmf.runtime.diagram.ui.tools.TextDirectEditManager;
+import org.eclipse.gmf.runtime.draw2d.ui.figures.WrappingLabel;
+import org.eclipse.gmf.runtime.emf.core.util.EObjectAdapter;
+import org.eclipse.gmf.runtime.emf.ui.services.parser.ISemanticParser;
+import org.eclipse.gmf.runtime.notation.FontStyle;
+import org.eclipse.gmf.runtime.notation.NotationPackage;
+import org.eclipse.gmf.runtime.notation.View;
+import org.eclipse.jface.text.contentassist.IContentAssistProcessor;
+import org.eclipse.jface.viewers.ICellEditorValidator;
+import org.eclipse.swt.SWT;
+import org.eclipse.swt.accessibility.AccessibleEvent;
+import org.eclipse.swt.graphics.Color;
+import org.eclipse.swt.graphics.FontData;
+import org.eclipse.swt.graphics.Image;
+
+import comrel.diagram.edit.policies.ComrelTextSelectionEditPolicy;
+import comrel.diagram.part.ComrelVisualIDRegistry;
+import comrel.diagram.providers.ComrelElementTypes;
+import comrel.diagram.providers.ComrelParserProvider;
+
+/**
+ * @generated
+ */
+public class ParallelQueuedUnitNameTypeLblStrict7EditPart extends
+ CompartmentEditPart implements ITextAwareEditPart {
+
+ /**
+ * @generated
+ */
+ public static final int VISUAL_ID = 5035;
+
+ /**
+ * @generated
+ */
+ private DirectEditManager manager;
+
+ /**
+ * @generated
+ */
+ private IParser parser;
+
+ /**
+ * @generated
+ */
+ private List<?> parserElements;
+
+ /**
+ * @generated
+ */
+ private String defaultText;
+
+ /**
+ * @generated
+ */
+ public ParallelQueuedUnitNameTypeLblStrict7EditPart(View view) {
+ super(view);
+ }
+
+ /**
+ * @generated
+ */
+ protected void createDefaultEditPolicies() {
+ super.createDefaultEditPolicies();
+ installEditPolicy(EditPolicy.SELECTION_FEEDBACK_ROLE,
+ new ComrelTextSelectionEditPolicy());
+ installEditPolicy(EditPolicy.DIRECT_EDIT_ROLE,
+ new LabelDirectEditPolicy());
+ installEditPolicy(EditPolicy.PRIMARY_DRAG_ROLE,
+ new CompositeRefactoringEditPart.NodeLabelDragPolicy());
+ }
+
+ /**
+ * @generated
+ */
+ protected String getLabelTextHelper(IFigure figure) {
+ if (figure instanceof WrappingLabel) {
+ return ((WrappingLabel) figure).getText();
+ } else {
+ return ((Label) figure).getText();
+ }
+ }
+
+ /**
+ * @generated
+ */
+ protected void setLabelTextHelper(IFigure figure, String text) {
+ if (figure instanceof WrappingLabel) {
+ ((WrappingLabel) figure).setText(text);
+ } else {
+ ((Label) figure).setText(text);
+ }
+ }
+
+ /**
+ * @generated
+ */
+ protected Image getLabelIconHelper(IFigure figure) {
+ if (figure instanceof WrappingLabel) {
+ return ((WrappingLabel) figure).getIcon();
+ } else {
+ return ((Label) figure).getIcon();
+ }
+ }
+
+ /**
+ * @generated
+ */
+ protected void setLabelIconHelper(IFigure figure, Image icon) {
+ if (figure instanceof WrappingLabel) {
+ ((WrappingLabel) figure).setIcon(icon);
+ } else {
+ ((Label) figure).setIcon(icon);
+ }
+ }
+
+ /**
+ * @generated
+ */
+ public void setLabel(WrappingLabel figure) {
+ unregisterVisuals();
+ setFigure(figure);
+ defaultText = getLabelTextHelper(figure);
+ registerVisuals();
+ refreshVisuals();
+ }
+
+ /**
+ * @generated
+ */
+ @SuppressWarnings("rawtypes")
+ protected List getModelChildren() {
+ return Collections.EMPTY_LIST;
+ }
+
+ /**
+ * @generated
+ */
+ public IGraphicalEditPart getChildBySemanticHint(String semanticHint) {
+ return null;
+ }
+
+ /**
+ * @generated
+ */
+ protected EObject getParserElement() {
+ return resolveSemanticElement();
+ }
+
+ /**
+ * @generated
+ */
+ protected Image getLabelIcon() {
+ return null;
+ }
+
+ /**
+ * @generated
+ */
+ protected String getLabelText() {
+ String text = null;
+ EObject parserElement = getParserElement();
+ if (parserElement != null && getParser() != null) {
+ text = getParser().getPrintString(
+ new EObjectAdapter(parserElement),
+ getParserOptions().intValue());
+ }
+ if (text == null || text.length() == 0) {
+ text = defaultText;
+ }
+ return text;
+ }
+
+ /**
+ * @generated
+ */
+ public void setLabelText(String text) {
+ setLabelTextHelper(getFigure(), text);
+ Object pdEditPolicy = getEditPolicy(EditPolicy.PRIMARY_DRAG_ROLE);
+ if (pdEditPolicy instanceof ComrelTextSelectionEditPolicy) {
+ ((ComrelTextSelectionEditPolicy) pdEditPolicy).refreshFeedback();
+ }
+ Object sfEditPolicy = getEditPolicy(EditPolicy.SELECTION_FEEDBACK_ROLE);
+ if (sfEditPolicy instanceof ComrelTextSelectionEditPolicy) {
+ ((ComrelTextSelectionEditPolicy) sfEditPolicy).refreshFeedback();
+ }
+ }
+
+ /**
+ * @generated
+ */
+ public String getEditText() {
+ if (getParserElement() == null || getParser() == null) {
+ return ""; //$NON-NLS-1$
+ }
+ return getParser().getEditString(
+ new EObjectAdapter(getParserElement()),
+ getParserOptions().intValue());
+ }
+
+ /**
+ * @generated
+ */
+ protected boolean isEditable() {
+ return getParser() != null;
+ }
+
+ /**
+ * @generated
+ */
+ public ICellEditorValidator getEditTextValidator() {
+ return new ICellEditorValidator() {
+
+ public String isValid(final Object value) {
+ if (value instanceof String) {
+ final EObject element = getParserElement();
+ final IParser parser = getParser();
+ try {
+ IParserEditStatus valid = (IParserEditStatus) getEditingDomain()
+ .runExclusive(
+ new RunnableWithResult.Impl<IParserEditStatus>() {
+
+ public void run() {
+ setResult(parser
+ .isValidEditString(
+ new EObjectAdapter(
+ element),
+ (String) value));
+ }
+ });
+ return valid.getCode() == ParserEditStatus.EDITABLE ? null
+ : valid.getMessage();
+ } catch (InterruptedException ie) {
+ ie.printStackTrace();
+ }
+ }
+
+ // shouldn't get here
+ return null;
+ }
+ };
+ }
+
+ /**
+ * @generated
+ */
+ public IContentAssistProcessor getCompletionProcessor() {
+ if (getParserElement() == null || getParser() == null) {
+ return null;
+ }
+ return getParser().getCompletionProcessor(
+ new EObjectAdapter(getParserElement()));
+ }
+
+ /**
+ * @generated
+ */
+ public ParserOptions getParserOptions() {
+ return ParserOptions.NONE;
+ }
+
+ /**
+ * @generated
+ */
+ public IParser getParser() {
+ if (parser == null) {
+ parser = ComrelParserProvider
+ .getParser(
+ ComrelElementTypes.ParallelQueuedUnit_3048,
+ getParserElement(),
+ ComrelVisualIDRegistry
+ .getType(comrel.diagram.edit.parts.ParallelQueuedUnitNameTypeLblStrict7EditPart.VISUAL_ID));
+ }
+ return parser;
+ }
+
+ /**
+ * @generated
+ */
+ protected DirectEditManager getManager() {
+ if (manager == null) {
+ setManager(new TextDirectEditManager(this,
+ TextDirectEditManager.getTextCellEditorClass(this),
+ ComrelEditPartFactory.getTextCellEditorLocator(this)));
+ }
+ return manager;
+ }
+
+ /**
+ * @generated
+ */
+ protected void setManager(DirectEditManager manager) {
+ this.manager = manager;
+ }
+
+ /**
+ * @generated
+ */
+ protected void performDirectEdit() {
+ getManager().show();
+ }
+
+ /**
+ * @generated
+ */
+ protected void performDirectEdit(Point eventLocation) {
+ if (getManager().getClass() == TextDirectEditManager.class) {
+ ((TextDirectEditManager) getManager()).show(eventLocation
+ .getSWTPoint());
+ }
+ }
+
+ /**
+ * @generated
+ */
+ private void performDirectEdit(char initialCharacter) {
+ if (getManager() instanceof TextDirectEditManager) {
+ ((TextDirectEditManager) getManager()).show(initialCharacter);
+ } else {
+ performDirectEdit();
+ }
+ }
+
+ /**
+ * @generated
+ */
+ protected void performDirectEditRequest(Request request) {
+ final Request theRequest = request;
+ try {
+ getEditingDomain().runExclusive(new Runnable() {
+
+ public void run() {
+ if (isActive() && isEditable()) {
+ if (theRequest
+ .getExtendedData()
+ .get(RequestConstants.REQ_DIRECTEDIT_EXTENDEDDATA_INITIAL_CHAR) instanceof Character) {
+ Character initialChar = (Character) theRequest
+ .getExtendedData()
+ .get(RequestConstants.REQ_DIRECTEDIT_EXTENDEDDATA_INITIAL_CHAR);
+ performDirectEdit(initialChar.charValue());
+ } else if ((theRequest instanceof DirectEditRequest)
+ && (getEditText().equals(getLabelText()))) {
+ DirectEditRequest editRequest = (DirectEditRequest) theRequest;
+ performDirectEdit(editRequest.getLocation());
+ } else {
+ performDirectEdit();
+ }
+ }
+ }
+ });
+ } catch (InterruptedException e) {
+ e.printStackTrace();
+ }
+ }
+
+ /**
+ * @generated
+ */
+ protected void refreshVisuals() {
+ super.refreshVisuals();
+ refreshLabel();
+ refreshFont();
+ refreshFontColor();
+ refreshUnderline();
+ refreshStrikeThrough();
+ }
+
+ /**
+ * @generated
+ */
+ protected void refreshLabel() {
+ setLabelTextHelper(getFigure(), getLabelText());
+ setLabelIconHelper(getFigure(), getLabelIcon());
+ Object pdEditPolicy = getEditPolicy(EditPolicy.PRIMARY_DRAG_ROLE);
+ if (pdEditPolicy instanceof ComrelTextSelectionEditPolicy) {
+ ((ComrelTextSelectionEditPolicy) pdEditPolicy).refreshFeedback();
+ }
+ Object sfEditPolicy = getEditPolicy(EditPolicy.SELECTION_FEEDBACK_ROLE);
+ if (sfEditPolicy instanceof ComrelTextSelectionEditPolicy) {
+ ((ComrelTextSelectionEditPolicy) sfEditPolicy).refreshFeedback();
+ }
+ }
+
+ /**
+ * @generated
+ */
+ protected void refreshUnderline() {
+ FontStyle style = (FontStyle) getFontStyleOwnerView().getStyle(
+ NotationPackage.eINSTANCE.getFontStyle());
+ if (style != null && getFigure() instanceof WrappingLabel) {
+ ((WrappingLabel) getFigure()).setTextUnderline(style.isUnderline());
+ }
+ }
+
+ /**
+ * @generated
+ */
+ protected void refreshStrikeThrough() {
+ FontStyle style = (FontStyle) getFontStyleOwnerView().getStyle(
+ NotationPackage.eINSTANCE.getFontStyle());
+ if (style != null && getFigure() instanceof WrappingLabel) {
+ ((WrappingLabel) getFigure()).setTextStrikeThrough(style
+ .isStrikeThrough());
+ }
+ }
+
+ /**
+ * @generated
+ */
+ protected void refreshFont() {
+ FontStyle style = (FontStyle) getFontStyleOwnerView().getStyle(
+ NotationPackage.eINSTANCE.getFontStyle());
+ if (style != null) {
+ FontData fontData = new FontData(style.getFontName(),
+ style.getFontHeight(), (style.isBold() ? SWT.BOLD
+ : SWT.NORMAL)
+ | (style.isItalic() ? SWT.ITALIC : SWT.NORMAL));
+ setFont(fontData);
+ }
+ }
+
+ /**
+ * @generated
+ */
+ protected void setFontColor(Color color) {
+ getFigure().setForegroundColor(color);
+ }
+
+ /**
+ * @generated
+ */
+ protected void addSemanticListeners() {
+ if (getParser() instanceof ISemanticParser) {
+ EObject element = resolveSemanticElement();
+ parserElements = ((ISemanticParser) getParser())
+ .getSemanticElementsBeingParsed(element);
+ for (int i = 0; i < parserElements.size(); i++) {
+ addListenerFilter(
+ "SemanticModel" + i, this, (EObject) parserElements.get(i)); //$NON-NLS-1$
+ }
+ } else {
+ super.addSemanticListeners();
+ }
+ }
+
+ /**
+ * @generated
+ */
+ protected void removeSemanticListeners() {
+ if (parserElements != null) {
+ for (int i = 0; i < parserElements.size(); i++) {
+ removeListenerFilter("SemanticModel" + i); //$NON-NLS-1$
+ }
+ } else {
+ super.removeSemanticListeners();
+ }
+ }
+
+ /**
+ * @generated
+ */
+ protected AccessibleEditPart getAccessibleEditPart() {
+ if (accessibleEP == null) {
+ accessibleEP = new AccessibleGraphicalEditPart() {
+
+ public void getName(AccessibleEvent e) {
+ e.result = getLabelTextHelper(getFigure());
+ }
+ };
+ }
+ return accessibleEP;
+ }
+
+ /**
+ * @generated
+ */
+ private View getFontStyleOwnerView() {
+ return getPrimaryView();
+ }
+
+ /**
+ * @generated
+ */
+ protected void addNotationalListeners() {
+ super.addNotationalListeners();
+ addListenerFilter("PrimaryView", this, getPrimaryView()); //$NON-NLS-1$
+ }
+
+ /**
+ * @generated
+ */
+ protected void removeNotationalListeners() {
+ super.removeNotationalListeners();
+ removeListenerFilter("PrimaryView"); //$NON-NLS-1$
+ }
+
+ /**
+ * @generated
+ */
+ protected void handleNotificationEvent(Notification event) {
+ Object feature = event.getFeature();
+ if (NotationPackage.eINSTANCE.getFontStyle_FontColor().equals(feature)) {
+ Integer c = (Integer) event.getNewValue();
+ setFontColor(DiagramColorRegistry.getInstance().getColor(c));
+ } else if (NotationPackage.eINSTANCE.getFontStyle_Underline().equals(
+ feature)) {
+ refreshUnderline();
+ } else if (NotationPackage.eINSTANCE.getFontStyle_StrikeThrough()
+ .equals(feature)) {
+ refreshStrikeThrough();
+ } else if (NotationPackage.eINSTANCE.getFontStyle_FontHeight().equals(
+ feature)
+ || NotationPackage.eINSTANCE.getFontStyle_FontName().equals(
+ feature)
+ || NotationPackage.eINSTANCE.getFontStyle_Bold()
+ .equals(feature)
+ || NotationPackage.eINSTANCE.getFontStyle_Italic().equals(
+ feature)) {
+ refreshFont();
+ } else {
+ if (getParser() != null
+ && getParser().isAffectingEvent(event,
+ getParserOptions().intValue())) {
+ refreshLabel();
+ }
+ if (getParser() instanceof ISemanticParser) {
+ ISemanticParser modelParser = (ISemanticParser) getParser();
+ if (modelParser.areSemanticElementsAffected(null, event)) {
+ removeSemanticListeners();
+ if (resolveSemanticElement() != null) {
+ addSemanticListeners();
+ }
+ refreshLabel();
+ }
+ }
+ }
+ super.handleNotificationEvent(event);
+ }
+
+ /**
+ * @generated
+ */
+ protected IFigure createFigure() {
+ // Parent should assign one using setLabel() method
+ return null;
+ }
+
+}
diff --git a/org.eclipse.emf.refactor.comrel.diagram/src/comrel/diagram/edit/parts/ParallelQueuedUnitNameTypeLblStrictEditPart.java b/org.eclipse.emf.refactor.comrel.diagram/src/comrel/diagram/edit/parts/ParallelQueuedUnitNameTypeLblStrictEditPart.java
new file mode 100644
index 0000000..bb4d23a
--- /dev/null
+++ b/org.eclipse.emf.refactor.comrel.diagram/src/comrel/diagram/edit/parts/ParallelQueuedUnitNameTypeLblStrictEditPart.java
@@ -0,0 +1,576 @@
+/*
+ *
+ */
+package comrel.diagram.edit.parts;
+
+import java.util.Collections;
+import java.util.List;
+
+import org.eclipse.draw2d.IFigure;
+import org.eclipse.draw2d.Label;
+import org.eclipse.draw2d.geometry.Point;
+import org.eclipse.emf.common.notify.Notification;
+import org.eclipse.emf.ecore.EObject;
+import org.eclipse.emf.transaction.RunnableWithResult;
+import org.eclipse.gef.AccessibleEditPart;
+import org.eclipse.gef.EditPolicy;
+import org.eclipse.gef.Request;
+import org.eclipse.gef.requests.DirectEditRequest;
+import org.eclipse.gef.tools.DirectEditManager;
+import org.eclipse.gmf.runtime.common.ui.services.parser.IParser;
+import org.eclipse.gmf.runtime.common.ui.services.parser.IParserEditStatus;
+import org.eclipse.gmf.runtime.common.ui.services.parser.ParserEditStatus;
+import org.eclipse.gmf.runtime.common.ui.services.parser.ParserOptions;
+import org.eclipse.gmf.runtime.diagram.ui.editparts.CompartmentEditPart;
+import org.eclipse.gmf.runtime.diagram.ui.editparts.IGraphicalEditPart;
+import org.eclipse.gmf.runtime.diagram.ui.editparts.ITextAwareEditPart;
+import org.eclipse.gmf.runtime.diagram.ui.editpolicies.LabelDirectEditPolicy;
+import org.eclipse.gmf.runtime.diagram.ui.l10n.DiagramColorRegistry;
+import org.eclipse.gmf.runtime.diagram.ui.requests.RequestConstants;
+import org.eclipse.gmf.runtime.diagram.ui.tools.TextDirectEditManager;
+import org.eclipse.gmf.runtime.draw2d.ui.figures.WrappingLabel;
+import org.eclipse.gmf.runtime.emf.core.util.EObjectAdapter;
+import org.eclipse.gmf.runtime.emf.ui.services.parser.ISemanticParser;
+import org.eclipse.gmf.runtime.notation.FontStyle;
+import org.eclipse.gmf.runtime.notation.NotationPackage;
+import org.eclipse.gmf.runtime.notation.View;
+import org.eclipse.jface.text.contentassist.IContentAssistProcessor;
+import org.eclipse.jface.viewers.ICellEditorValidator;
+import org.eclipse.swt.SWT;
+import org.eclipse.swt.accessibility.AccessibleEvent;
+import org.eclipse.swt.graphics.Color;
+import org.eclipse.swt.graphics.FontData;
+import org.eclipse.swt.graphics.Image;
+
+import comrel.diagram.edit.policies.ComrelTextSelectionEditPolicy;
+import comrel.diagram.part.ComrelVisualIDRegistry;
+import comrel.diagram.providers.ComrelElementTypes;
+import comrel.diagram.providers.ComrelParserProvider;
+
+/**
+ * @generated
+ */
+public class ParallelQueuedUnitNameTypeLblStrictEditPart extends
+ CompartmentEditPart implements ITextAwareEditPart {
+
+ /**
+ * @generated
+ */
+ public static final int VISUAL_ID = 5081;
+
+ /**
+ * @generated
+ */
+ private DirectEditManager manager;
+
+ /**
+ * @generated
+ */
+ private IParser parser;
+
+ /**
+ * @generated
+ */
+ private List<?> parserElements;
+
+ /**
+ * @generated
+ */
+ private String defaultText;
+
+ /**
+ * @generated
+ */
+ public ParallelQueuedUnitNameTypeLblStrictEditPart(View view) {
+ super(view);
+ }
+
+ /**
+ * @generated
+ */
+ protected void createDefaultEditPolicies() {
+ super.createDefaultEditPolicies();
+ installEditPolicy(EditPolicy.SELECTION_FEEDBACK_ROLE,
+ new ComrelTextSelectionEditPolicy());
+ installEditPolicy(EditPolicy.DIRECT_EDIT_ROLE,
+ new LabelDirectEditPolicy());
+ installEditPolicy(EditPolicy.PRIMARY_DRAG_ROLE,
+ new CompositeRefactoringEditPart.NodeLabelDragPolicy());
+ }
+
+ /**
+ * @generated
+ */
+ protected String getLabelTextHelper(IFigure figure) {
+ if (figure instanceof WrappingLabel) {
+ return ((WrappingLabel) figure).getText();
+ } else {
+ return ((Label) figure).getText();
+ }
+ }
+
+ /**
+ * @generated
+ */
+ protected void setLabelTextHelper(IFigure figure, String text) {
+ if (figure instanceof WrappingLabel) {
+ ((WrappingLabel) figure).setText(text);
+ } else {
+ ((Label) figure).setText(text);
+ }
+ }
+
+ /**
+ * @generated
+ */
+ protected Image getLabelIconHelper(IFigure figure) {
+ if (figure instanceof WrappingLabel) {
+ return ((WrappingLabel) figure).getIcon();
+ } else {
+ return ((Label) figure).getIcon();
+ }
+ }
+
+ /**
+ * @generated
+ */
+ protected void setLabelIconHelper(IFigure figure, Image icon) {
+ if (figure instanceof WrappingLabel) {
+ ((WrappingLabel) figure).setIcon(icon);
+ } else {
+ ((Label) figure).setIcon(icon);
+ }
+ }
+
+ /**
+ * @generated
+ */
+ public void setLabel(WrappingLabel figure) {
+ unregisterVisuals();
+ setFigure(figure);
+ defaultText = getLabelTextHelper(figure);
+ registerVisuals();
+ refreshVisuals();
+ }
+
+ /**
+ * @generated
+ */
+ @SuppressWarnings("rawtypes")
+ protected List getModelChildren() {
+ return Collections.EMPTY_LIST;
+ }
+
+ /**
+ * @generated
+ */
+ public IGraphicalEditPart getChildBySemanticHint(String semanticHint) {
+ return null;
+ }
+
+ /**
+ * @generated
+ */
+ protected EObject getParserElement() {
+ return resolveSemanticElement();
+ }
+
+ /**
+ * @generated
+ */
+ protected Image getLabelIcon() {
+ return null;
+ }
+
+ /**
+ * @generated
+ */
+ protected String getLabelText() {
+ String text = null;
+ EObject parserElement = getParserElement();
+ if (parserElement != null && getParser() != null) {
+ text = getParser().getPrintString(
+ new EObjectAdapter(parserElement),
+ getParserOptions().intValue());
+ }
+ if (text == null || text.length() == 0) {
+ text = defaultText;
+ }
+ return text;
+ }
+
+ /**
+ * @generated
+ */
+ public void setLabelText(String text) {
+ setLabelTextHelper(getFigure(), text);
+ Object pdEditPolicy = getEditPolicy(EditPolicy.PRIMARY_DRAG_ROLE);
+ if (pdEditPolicy instanceof ComrelTextSelectionEditPolicy) {
+ ((ComrelTextSelectionEditPolicy) pdEditPolicy).refreshFeedback();
+ }
+ Object sfEditPolicy = getEditPolicy(EditPolicy.SELECTION_FEEDBACK_ROLE);
+ if (sfEditPolicy instanceof ComrelTextSelectionEditPolicy) {
+ ((ComrelTextSelectionEditPolicy) sfEditPolicy).refreshFeedback();
+ }
+ }
+
+ /**
+ * @generated
+ */
+ public String getEditText() {
+ if (getParserElement() == null || getParser() == null) {
+ return ""; //$NON-NLS-1$
+ }
+ return getParser().getEditString(
+ new EObjectAdapter(getParserElement()),
+ getParserOptions().intValue());
+ }
+
+ /**
+ * @generated
+ */
+ protected boolean isEditable() {
+ return getParser() != null;
+ }
+
+ /**
+ * @generated
+ */
+ public ICellEditorValidator getEditTextValidator() {
+ return new ICellEditorValidator() {
+
+ public String isValid(final Object value) {
+ if (value instanceof String) {
+ final EObject element = getParserElement();
+ final IParser parser = getParser();
+ try {
+ IParserEditStatus valid = (IParserEditStatus) getEditingDomain()
+ .runExclusive(
+ new RunnableWithResult.Impl<IParserEditStatus>() {
+
+ public void run() {
+ setResult(parser
+ .isValidEditString(
+ new EObjectAdapter(
+ element),
+ (String) value));
+ }
+ });
+ return valid.getCode() == ParserEditStatus.EDITABLE ? null
+ : valid.getMessage();
+ } catch (InterruptedException ie) {
+ ie.printStackTrace();
+ }
+ }
+
+ // shouldn't get here
+ return null;
+ }
+ };
+ }
+
+ /**
+ * @generated
+ */
+ public IContentAssistProcessor getCompletionProcessor() {
+ if (getParserElement() == null || getParser() == null) {
+ return null;
+ }
+ return getParser().getCompletionProcessor(
+ new EObjectAdapter(getParserElement()));
+ }
+
+ /**
+ * @generated
+ */
+ public ParserOptions getParserOptions() {
+ return ParserOptions.NONE;
+ }
+
+ /**
+ * @generated
+ */
+ public IParser getParser() {
+ if (parser == null) {
+ parser = ComrelParserProvider
+ .getParser(
+ ComrelElementTypes.ParallelQueuedUnit_2003,
+ getParserElement(),
+ ComrelVisualIDRegistry
+ .getType(comrel.diagram.edit.parts.ParallelQueuedUnitNameTypeLblStrictEditPart.VISUAL_ID));
+ }
+ return parser;
+ }
+
+ /**
+ * @generated
+ */
+ protected DirectEditManager getManager() {
+ if (manager == null) {
+ setManager(new TextDirectEditManager(this,
+ TextDirectEditManager.getTextCellEditorClass(this),
+ ComrelEditPartFactory.getTextCellEditorLocator(this)));
+ }
+ return manager;
+ }
+
+ /**
+ * @generated
+ */
+ protected void setManager(DirectEditManager manager) {
+ this.manager = manager;
+ }
+
+ /**
+ * @generated
+ */
+ protected void performDirectEdit() {
+ getManager().show();
+ }
+
+ /**
+ * @generated
+ */
+ protected void performDirectEdit(Point eventLocation) {
+ if (getManager().getClass() == TextDirectEditManager.class) {
+ ((TextDirectEditManager) getManager()).show(eventLocation
+ .getSWTPoint());
+ }
+ }
+
+ /**
+ * @generated
+ */
+ private void performDirectEdit(char initialCharacter) {
+ if (getManager() instanceof TextDirectEditManager) {
+ ((TextDirectEditManager) getManager()).show(initialCharacter);
+ } else {
+ performDirectEdit();
+ }
+ }
+
+ /**
+ * @generated
+ */
+ protected void performDirectEditRequest(Request request) {
+ final Request theRequest = request;
+ try {
+ getEditingDomain().runExclusive(new Runnable() {
+
+ public void run() {
+ if (isActive() && isEditable()) {
+ if (theRequest
+ .getExtendedData()
+ .get(RequestConstants.REQ_DIRECTEDIT_EXTENDEDDATA_INITIAL_CHAR) instanceof Character) {
+ Character initialChar = (Character) theRequest
+ .getExtendedData()
+ .get(RequestConstants.REQ_DIRECTEDIT_EXTENDEDDATA_INITIAL_CHAR);
+ performDirectEdit(initialChar.charValue());
+ } else if ((theRequest instanceof DirectEditRequest)
+ && (getEditText().equals(getLabelText()))) {
+ DirectEditRequest editRequest = (DirectEditRequest) theRequest;
+ performDirectEdit(editRequest.getLocation());
+ } else {
+ performDirectEdit();
+ }
+ }
+ }
+ });
+ } catch (InterruptedException e) {
+ e.printStackTrace();
+ }
+ }
+
+ /**
+ * @generated
+ */
+ protected void refreshVisuals() {
+ super.refreshVisuals();
+ refreshLabel();
+ refreshFont();
+ refreshFontColor();
+ refreshUnderline();
+ refreshStrikeThrough();
+ }
+
+ /**
+ * @generated
+ */
+ protected void refreshLabel() {
+ setLabelTextHelper(getFigure(), getLabelText());
+ setLabelIconHelper(getFigure(), getLabelIcon());
+ Object pdEditPolicy = getEditPolicy(EditPolicy.PRIMARY_DRAG_ROLE);
+ if (pdEditPolicy instanceof ComrelTextSelectionEditPolicy) {
+ ((ComrelTextSelectionEditPolicy) pdEditPolicy).refreshFeedback();
+ }
+ Object sfEditPolicy = getEditPolicy(EditPolicy.SELECTION_FEEDBACK_ROLE);
+ if (sfEditPolicy instanceof ComrelTextSelectionEditPolicy) {
+ ((ComrelTextSelectionEditPolicy) sfEditPolicy).refreshFeedback();
+ }
+ }
+
+ /**
+ * @generated
+ */
+ protected void refreshUnderline() {
+ FontStyle style = (FontStyle) getFontStyleOwnerView().getStyle(
+ NotationPackage.eINSTANCE.getFontStyle());
+ if (style != null && getFigure() instanceof WrappingLabel) {
+ ((WrappingLabel) getFigure()).setTextUnderline(style.isUnderline());
+ }
+ }
+
+ /**
+ * @generated
+ */
+ protected void refreshStrikeThrough() {
+ FontStyle style = (FontStyle) getFontStyleOwnerView().getStyle(
+ NotationPackage.eINSTANCE.getFontStyle());
+ if (style != null && getFigure() instanceof WrappingLabel) {
+ ((WrappingLabel) getFigure()).setTextStrikeThrough(style
+ .isStrikeThrough());
+ }
+ }
+
+ /**
+ * @generated
+ */
+ protected void refreshFont() {
+ FontStyle style = (FontStyle) getFontStyleOwnerView().getStyle(
+ NotationPackage.eINSTANCE.getFontStyle());
+ if (style != null) {
+ FontData fontData = new FontData(style.getFontName(),
+ style.getFontHeight(), (style.isBold() ? SWT.BOLD
+ : SWT.NORMAL)
+ | (style.isItalic() ? SWT.ITALIC : SWT.NORMAL));
+ setFont(fontData);
+ }
+ }
+
+ /**
+ * @generated
+ */
+ protected void setFontColor(Color color) {
+ getFigure().setForegroundColor(color);
+ }
+
+ /**
+ * @generated
+ */
+ protected void addSemanticListeners() {
+ if (getParser() instanceof ISemanticParser) {
+ EObject element = resolveSemanticElement();
+ parserElements = ((ISemanticParser) getParser())
+ .getSemanticElementsBeingParsed(element);
+ for (int i = 0; i < parserElements.size(); i++) {
+ addListenerFilter(
+ "SemanticModel" + i, this, (EObject) parserElements.get(i)); //$NON-NLS-1$
+ }
+ } else {
+ super.addSemanticListeners();
+ }
+ }
+
+ /**
+ * @generated
+ */
+ protected void removeSemanticListeners() {
+ if (parserElements != null) {
+ for (int i = 0; i < parserElements.size(); i++) {
+ removeListenerFilter("SemanticModel" + i); //$NON-NLS-1$
+ }
+ } else {
+ super.removeSemanticListeners();
+ }
+ }
+
+ /**
+ * @generated
+ */
+ protected AccessibleEditPart getAccessibleEditPart() {
+ if (accessibleEP == null) {
+ accessibleEP = new AccessibleGraphicalEditPart() {
+
+ public void getName(AccessibleEvent e) {
+ e.result = getLabelTextHelper(getFigure());
+ }
+ };
+ }
+ return accessibleEP;
+ }
+
+ /**
+ * @generated
+ */
+ private View getFontStyleOwnerView() {
+ return getPrimaryView();
+ }
+
+ /**
+ * @generated
+ */
+ protected void addNotationalListeners() {
+ super.addNotationalListeners();
+ addListenerFilter("PrimaryView", this, getPrimaryView()); //$NON-NLS-1$
+ }
+
+ /**
+ * @generated
+ */
+ protected void removeNotationalListeners() {
+ super.removeNotationalListeners();
+ removeListenerFilter("PrimaryView"); //$NON-NLS-1$
+ }
+
+ /**
+ * @generated
+ */
+ protected void handleNotificationEvent(Notification event) {
+ Object feature = event.getFeature();
+ if (NotationPackage.eINSTANCE.getFontStyle_FontColor().equals(feature)) {
+ Integer c = (Integer) event.getNewValue();
+ setFontColor(DiagramColorRegistry.getInstance().getColor(c));
+ } else if (NotationPackage.eINSTANCE.getFontStyle_Underline().equals(
+ feature)) {
+ refreshUnderline();
+ } else if (NotationPackage.eINSTANCE.getFontStyle_StrikeThrough()
+ .equals(feature)) {
+ refreshStrikeThrough();
+ } else if (NotationPackage.eINSTANCE.getFontStyle_FontHeight().equals(
+ feature)
+ || NotationPackage.eINSTANCE.getFontStyle_FontName().equals(
+ feature)
+ || NotationPackage.eINSTANCE.getFontStyle_Bold()
+ .equals(feature)
+ || NotationPackage.eINSTANCE.getFontStyle_Italic().equals(
+ feature)) {
+ refreshFont();
+ } else {
+ if (getParser() != null
+ && getParser().isAffectingEvent(event,
+ getParserOptions().intValue())) {
+ refreshLabel();
+ }
+ if (getParser() instanceof ISemanticParser) {
+ ISemanticParser modelParser = (ISemanticParser) getParser();
+ if (modelParser.areSemanticElementsAffected(null, event)) {
+ removeSemanticListeners();
+ if (resolveSemanticElement() != null) {
+ addSemanticListeners();
+ }
+ refreshLabel();
+ }
+ }
+ }
+ super.handleNotificationEvent(event);
+ }
+
+ /**
+ * @generated
+ */
+ protected IFigure createFigure() {
+ // Parent should assign one using setLabel() method
+ return null;
+ }
+
+}
diff --git a/org.eclipse.emf.refactor.comrel.diagram/src/comrel/diagram/edit/parts/ParallelQueuedUnitParallelQueuedUnitHelperUnitsCompartment2EditPart.java b/org.eclipse.emf.refactor.comrel.diagram/src/comrel/diagram/edit/parts/ParallelQueuedUnitParallelQueuedUnitHelperUnitsCompartment2EditPart.java
new file mode 100644
index 0000000..5efeda8
--- /dev/null
+++ b/org.eclipse.emf.refactor.comrel.diagram/src/comrel/diagram/edit/parts/ParallelQueuedUnitParallelQueuedUnitHelperUnitsCompartment2EditPart.java
@@ -0,0 +1,85 @@
+/*
+ *
+ */
+package comrel.diagram.edit.parts;
+
+import org.eclipse.draw2d.IFigure;
+import org.eclipse.gef.EditPolicy;
+import org.eclipse.gmf.runtime.diagram.ui.editparts.ShapeCompartmentEditPart;
+import org.eclipse.gmf.runtime.diagram.ui.editpolicies.CreationEditPolicy;
+import org.eclipse.gmf.runtime.diagram.ui.editpolicies.DragDropEditPolicy;
+import org.eclipse.gmf.runtime.diagram.ui.editpolicies.EditPolicyRoles;
+import org.eclipse.gmf.runtime.diagram.ui.editpolicies.ResizableCompartmentEditPolicy;
+import org.eclipse.gmf.runtime.diagram.ui.figures.ResizableCompartmentFigure;
+import org.eclipse.gmf.runtime.draw2d.ui.figures.ConstrainedToolbarLayout;
+import org.eclipse.gmf.runtime.notation.View;
+
+import comrel.diagram.edit.policies.ParallelQueuedUnitParallelQueuedUnitHelperUnitsCompartment2CanonicalEditPolicy;
+import comrel.diagram.edit.policies.ParallelQueuedUnitParallelQueuedUnitHelperUnitsCompartment2ItemSemanticEditPolicy;
+import comrel.diagram.part.Messages;
+
+/**
+ * @generated
+ */
+public class ParallelQueuedUnitParallelQueuedUnitHelperUnitsCompartment2EditPart
+ extends ShapeCompartmentEditPart {
+
+ /**
+ * @generated
+ */
+ public static final int VISUAL_ID = 7023;
+
+ /**
+ * @generated
+ */
+ public ParallelQueuedUnitParallelQueuedUnitHelperUnitsCompartment2EditPart(
+ View view) {
+ super(view);
+ }
+
+ /**
+ * @generated
+ */
+ public String getCompartmentName() {
+ return Messages.ParallelQueuedUnitParallelQueuedUnitHelperUnitsCompartment2EditPart_title;
+ }
+
+ /**
+ * @generated
+ */
+ public IFigure createFigure() {
+ ResizableCompartmentFigure result = (ResizableCompartmentFigure) super
+ .createFigure();
+ result.setTitleVisibility(false);
+ return result;
+ }
+
+ /**
+ * @generated
+ */
+ protected void createDefaultEditPolicies() {
+ super.createDefaultEditPolicies();
+ installEditPolicy(EditPolicy.PRIMARY_DRAG_ROLE,
+ new ResizableCompartmentEditPolicy());
+ installEditPolicy(
+ EditPolicyRoles.SEMANTIC_ROLE,
+ new ParallelQueuedUnitParallelQueuedUnitHelperUnitsCompartment2ItemSemanticEditPolicy());
+ installEditPolicy(EditPolicyRoles.CREATION_ROLE,
+ new CreationEditPolicy());
+ installEditPolicy(EditPolicyRoles.DRAG_DROP_ROLE,
+ new DragDropEditPolicy());
+ installEditPolicy(
+ EditPolicyRoles.CANONICAL_ROLE,
+ new ParallelQueuedUnitParallelQueuedUnitHelperUnitsCompartment2CanonicalEditPolicy());
+ }
+
+ /**
+ * @generated
+ */
+ protected void setRatio(Double ratio) {
+ if (getFigure().getParent().getLayoutManager() instanceof ConstrainedToolbarLayout) {
+ super.setRatio(ratio);
+ }
+ }
+
+}
diff --git a/org.eclipse.emf.refactor.comrel.diagram/src/comrel/diagram/edit/parts/ParallelQueuedUnitParallelQueuedUnitHelperUnitsCompartment3EditPart.java b/org.eclipse.emf.refactor.comrel.diagram/src/comrel/diagram/edit/parts/ParallelQueuedUnitParallelQueuedUnitHelperUnitsCompartment3EditPart.java
new file mode 100644
index 0000000..a543929
--- /dev/null
+++ b/org.eclipse.emf.refactor.comrel.diagram/src/comrel/diagram/edit/parts/ParallelQueuedUnitParallelQueuedUnitHelperUnitsCompartment3EditPart.java
@@ -0,0 +1,85 @@
+/*
+ *
+ */
+package comrel.diagram.edit.parts;
+
+import org.eclipse.draw2d.IFigure;
+import org.eclipse.gef.EditPolicy;
+import org.eclipse.gmf.runtime.diagram.ui.editparts.ShapeCompartmentEditPart;
+import org.eclipse.gmf.runtime.diagram.ui.editpolicies.CreationEditPolicy;
+import org.eclipse.gmf.runtime.diagram.ui.editpolicies.DragDropEditPolicy;
+import org.eclipse.gmf.runtime.diagram.ui.editpolicies.EditPolicyRoles;
+import org.eclipse.gmf.runtime.diagram.ui.editpolicies.ResizableCompartmentEditPolicy;
+import org.eclipse.gmf.runtime.diagram.ui.figures.ResizableCompartmentFigure;
+import org.eclipse.gmf.runtime.draw2d.ui.figures.ConstrainedToolbarLayout;
+import org.eclipse.gmf.runtime.notation.View;
+
+import comrel.diagram.edit.policies.ParallelQueuedUnitParallelQueuedUnitHelperUnitsCompartment3CanonicalEditPolicy;
+import comrel.diagram.edit.policies.ParallelQueuedUnitParallelQueuedUnitHelperUnitsCompartment3ItemSemanticEditPolicy;
+import comrel.diagram.part.Messages;
+
+/**
+ * @generated
+ */
+public class ParallelQueuedUnitParallelQueuedUnitHelperUnitsCompartment3EditPart
+ extends ShapeCompartmentEditPart {
+
+ /**
+ * @generated
+ */
+ public static final int VISUAL_ID = 7025;
+
+ /**
+ * @generated
+ */
+ public ParallelQueuedUnitParallelQueuedUnitHelperUnitsCompartment3EditPart(
+ View view) {
+ super(view);
+ }
+
+ /**
+ * @generated
+ */
+ public String getCompartmentName() {
+ return Messages.ParallelQueuedUnitParallelQueuedUnitHelperUnitsCompartment3EditPart_title;
+ }
+
+ /**
+ * @generated
+ */
+ public IFigure createFigure() {
+ ResizableCompartmentFigure result = (ResizableCompartmentFigure) super
+ .createFigure();
+ result.setTitleVisibility(false);
+ return result;
+ }
+
+ /**
+ * @generated
+ */
+ protected void createDefaultEditPolicies() {
+ super.createDefaultEditPolicies();
+ installEditPolicy(EditPolicy.PRIMARY_DRAG_ROLE,
+ new ResizableCompartmentEditPolicy());
+ installEditPolicy(
+ EditPolicyRoles.SEMANTIC_ROLE,
+ new ParallelQueuedUnitParallelQueuedUnitHelperUnitsCompartment3ItemSemanticEditPolicy());
+ installEditPolicy(EditPolicyRoles.CREATION_ROLE,
+ new CreationEditPolicy());
+ installEditPolicy(EditPolicyRoles.DRAG_DROP_ROLE,
+ new DragDropEditPolicy());
+ installEditPolicy(
+ EditPolicyRoles.CANONICAL_ROLE,
+ new ParallelQueuedUnitParallelQueuedUnitHelperUnitsCompartment3CanonicalEditPolicy());
+ }
+
+ /**
+ * @generated
+ */
+ protected void setRatio(Double ratio) {
+ if (getFigure().getParent().getLayoutManager() instanceof ConstrainedToolbarLayout) {
+ super.setRatio(ratio);
+ }
+ }
+
+}
diff --git a/org.eclipse.emf.refactor.comrel.diagram/src/comrel/diagram/edit/parts/ParallelQueuedUnitParallelQueuedUnitHelperUnitsCompartment4EditPart.java b/org.eclipse.emf.refactor.comrel.diagram/src/comrel/diagram/edit/parts/ParallelQueuedUnitParallelQueuedUnitHelperUnitsCompartment4EditPart.java
new file mode 100644
index 0000000..9c7c83c
--- /dev/null
+++ b/org.eclipse.emf.refactor.comrel.diagram/src/comrel/diagram/edit/parts/ParallelQueuedUnitParallelQueuedUnitHelperUnitsCompartment4EditPart.java
@@ -0,0 +1,85 @@
+/*
+ *
+ */
+package comrel.diagram.edit.parts;
+
+import org.eclipse.draw2d.IFigure;
+import org.eclipse.gef.EditPolicy;
+import org.eclipse.gmf.runtime.diagram.ui.editparts.ShapeCompartmentEditPart;
+import org.eclipse.gmf.runtime.diagram.ui.editpolicies.CreationEditPolicy;
+import org.eclipse.gmf.runtime.diagram.ui.editpolicies.DragDropEditPolicy;
+import org.eclipse.gmf.runtime.diagram.ui.editpolicies.EditPolicyRoles;
+import org.eclipse.gmf.runtime.diagram.ui.editpolicies.ResizableCompartmentEditPolicy;
+import org.eclipse.gmf.runtime.diagram.ui.figures.ResizableCompartmentFigure;
+import org.eclipse.gmf.runtime.draw2d.ui.figures.ConstrainedToolbarLayout;
+import org.eclipse.gmf.runtime.notation.View;
+
+import comrel.diagram.edit.policies.ParallelQueuedUnitParallelQueuedUnitHelperUnitsCompartment4CanonicalEditPolicy;
+import comrel.diagram.edit.policies.ParallelQueuedUnitParallelQueuedUnitHelperUnitsCompartment4ItemSemanticEditPolicy;
+import comrel.diagram.part.Messages;
+
+/**
+ * @generated
+ */
+public class ParallelQueuedUnitParallelQueuedUnitHelperUnitsCompartment4EditPart
+ extends ShapeCompartmentEditPart {
+
+ /**
+ * @generated
+ */
+ public static final int VISUAL_ID = 7029;
+
+ /**
+ * @generated
+ */
+ public ParallelQueuedUnitParallelQueuedUnitHelperUnitsCompartment4EditPart(
+ View view) {
+ super(view);
+ }
+
+ /**
+ * @generated
+ */
+ public String getCompartmentName() {
+ return Messages.ParallelQueuedUnitParallelQueuedUnitHelperUnitsCompartment4EditPart_title;
+ }
+
+ /**
+ * @generated
+ */
+ public IFigure createFigure() {
+ ResizableCompartmentFigure result = (ResizableCompartmentFigure) super
+ .createFigure();
+ result.setTitleVisibility(false);
+ return result;
+ }
+
+ /**
+ * @generated
+ */
+ protected void createDefaultEditPolicies() {
+ super.createDefaultEditPolicies();
+ installEditPolicy(EditPolicy.PRIMARY_DRAG_ROLE,
+ new ResizableCompartmentEditPolicy());
+ installEditPolicy(
+ EditPolicyRoles.SEMANTIC_ROLE,
+ new ParallelQueuedUnitParallelQueuedUnitHelperUnitsCompartment4ItemSemanticEditPolicy());
+ installEditPolicy(EditPolicyRoles.CREATION_ROLE,
+ new CreationEditPolicy());
+ installEditPolicy(EditPolicyRoles.DRAG_DROP_ROLE,
+ new DragDropEditPolicy());
+ installEditPolicy(
+ EditPolicyRoles.CANONICAL_ROLE,
+ new ParallelQueuedUnitParallelQueuedUnitHelperUnitsCompartment4CanonicalEditPolicy());
+ }
+
+ /**
+ * @generated
+ */
+ protected void setRatio(Double ratio) {
+ if (getFigure().getParent().getLayoutManager() instanceof ConstrainedToolbarLayout) {
+ super.setRatio(ratio);
+ }
+ }
+
+}
diff --git a/org.eclipse.emf.refactor.comrel.diagram/src/comrel/diagram/edit/parts/ParallelQueuedUnitParallelQueuedUnitHelperUnitsCompartment5EditPart.java b/org.eclipse.emf.refactor.comrel.diagram/src/comrel/diagram/edit/parts/ParallelQueuedUnitParallelQueuedUnitHelperUnitsCompartment5EditPart.java
new file mode 100644
index 0000000..204a3f5
--- /dev/null
+++ b/org.eclipse.emf.refactor.comrel.diagram/src/comrel/diagram/edit/parts/ParallelQueuedUnitParallelQueuedUnitHelperUnitsCompartment5EditPart.java
@@ -0,0 +1,85 @@
+/*
+ *
+ */
+package comrel.diagram.edit.parts;
+
+import org.eclipse.draw2d.IFigure;
+import org.eclipse.gef.EditPolicy;
+import org.eclipse.gmf.runtime.diagram.ui.editparts.ShapeCompartmentEditPart;
+import org.eclipse.gmf.runtime.diagram.ui.editpolicies.CreationEditPolicy;
+import org.eclipse.gmf.runtime.diagram.ui.editpolicies.DragDropEditPolicy;
+import org.eclipse.gmf.runtime.diagram.ui.editpolicies.EditPolicyRoles;
+import org.eclipse.gmf.runtime.diagram.ui.editpolicies.ResizableCompartmentEditPolicy;
+import org.eclipse.gmf.runtime.diagram.ui.figures.ResizableCompartmentFigure;
+import org.eclipse.gmf.runtime.draw2d.ui.figures.ConstrainedToolbarLayout;
+import org.eclipse.gmf.runtime.notation.View;
+
+import comrel.diagram.edit.policies.ParallelQueuedUnitParallelQueuedUnitHelperUnitsCompartment5CanonicalEditPolicy;
+import comrel.diagram.edit.policies.ParallelQueuedUnitParallelQueuedUnitHelperUnitsCompartment5ItemSemanticEditPolicy;
+import comrel.diagram.part.Messages;
+
+/**
+ * @generated
+ */
+public class ParallelQueuedUnitParallelQueuedUnitHelperUnitsCompartment5EditPart
+ extends ShapeCompartmentEditPart {
+
+ /**
+ * @generated
+ */
+ public static final int VISUAL_ID = 7033;
+
+ /**
+ * @generated
+ */
+ public ParallelQueuedUnitParallelQueuedUnitHelperUnitsCompartment5EditPart(
+ View view) {
+ super(view);
+ }
+
+ /**
+ * @generated
+ */
+ public String getCompartmentName() {
+ return Messages.ParallelQueuedUnitParallelQueuedUnitHelperUnitsCompartment5EditPart_title;
+ }
+
+ /**
+ * @generated
+ */
+ public IFigure createFigure() {
+ ResizableCompartmentFigure result = (ResizableCompartmentFigure) super
+ .createFigure();
+ result.setTitleVisibility(false);
+ return result;
+ }
+
+ /**
+ * @generated
+ */
+ protected void createDefaultEditPolicies() {
+ super.createDefaultEditPolicies();
+ installEditPolicy(EditPolicy.PRIMARY_DRAG_ROLE,
+ new ResizableCompartmentEditPolicy());
+ installEditPolicy(
+ EditPolicyRoles.SEMANTIC_ROLE,
+ new ParallelQueuedUnitParallelQueuedUnitHelperUnitsCompartment5ItemSemanticEditPolicy());
+ installEditPolicy(EditPolicyRoles.CREATION_ROLE,
+ new CreationEditPolicy());
+ installEditPolicy(EditPolicyRoles.DRAG_DROP_ROLE,
+ new DragDropEditPolicy());
+ installEditPolicy(
+ EditPolicyRoles.CANONICAL_ROLE,
+ new ParallelQueuedUnitParallelQueuedUnitHelperUnitsCompartment5CanonicalEditPolicy());
+ }
+
+ /**
+ * @generated
+ */
+ protected void setRatio(Double ratio) {
+ if (getFigure().getParent().getLayoutManager() instanceof ConstrainedToolbarLayout) {
+ super.setRatio(ratio);
+ }
+ }
+
+}
diff --git a/org.eclipse.emf.refactor.comrel.diagram/src/comrel/diagram/edit/parts/ParallelQueuedUnitParallelQueuedUnitHelperUnitsCompartment6EditPart.java b/org.eclipse.emf.refactor.comrel.diagram/src/comrel/diagram/edit/parts/ParallelQueuedUnitParallelQueuedUnitHelperUnitsCompartment6EditPart.java
new file mode 100644
index 0000000..2a04cfb
--- /dev/null
+++ b/org.eclipse.emf.refactor.comrel.diagram/src/comrel/diagram/edit/parts/ParallelQueuedUnitParallelQueuedUnitHelperUnitsCompartment6EditPart.java
@@ -0,0 +1,85 @@
+/*
+ *
+ */
+package comrel.diagram.edit.parts;
+
+import org.eclipse.draw2d.IFigure;
+import org.eclipse.gef.EditPolicy;
+import org.eclipse.gmf.runtime.diagram.ui.editparts.ShapeCompartmentEditPart;
+import org.eclipse.gmf.runtime.diagram.ui.editpolicies.CreationEditPolicy;
+import org.eclipse.gmf.runtime.diagram.ui.editpolicies.DragDropEditPolicy;
+import org.eclipse.gmf.runtime.diagram.ui.editpolicies.EditPolicyRoles;
+import org.eclipse.gmf.runtime.diagram.ui.editpolicies.ResizableCompartmentEditPolicy;
+import org.eclipse.gmf.runtime.diagram.ui.figures.ResizableCompartmentFigure;
+import org.eclipse.gmf.runtime.draw2d.ui.figures.ConstrainedToolbarLayout;
+import org.eclipse.gmf.runtime.notation.View;
+
+import comrel.diagram.edit.policies.ParallelQueuedUnitParallelQueuedUnitHelperUnitsCompartment6CanonicalEditPolicy;
+import comrel.diagram.edit.policies.ParallelQueuedUnitParallelQueuedUnitHelperUnitsCompartment6ItemSemanticEditPolicy;
+import comrel.diagram.part.Messages;
+
+/**
+ * @generated
+ */
+public class ParallelQueuedUnitParallelQueuedUnitHelperUnitsCompartment6EditPart
+ extends ShapeCompartmentEditPart {
+
+ /**
+ * @generated
+ */
+ public static final int VISUAL_ID = 7041;
+
+ /**
+ * @generated
+ */
+ public ParallelQueuedUnitParallelQueuedUnitHelperUnitsCompartment6EditPart(
+ View view) {
+ super(view);
+ }
+
+ /**
+ * @generated
+ */
+ public String getCompartmentName() {
+ return Messages.ParallelQueuedUnitParallelQueuedUnitHelperUnitsCompartment6EditPart_title;
+ }
+
+ /**
+ * @generated
+ */
+ public IFigure createFigure() {
+ ResizableCompartmentFigure result = (ResizableCompartmentFigure) super
+ .createFigure();
+ result.setTitleVisibility(false);
+ return result;
+ }
+
+ /**
+ * @generated
+ */
+ protected void createDefaultEditPolicies() {
+ super.createDefaultEditPolicies();
+ installEditPolicy(EditPolicy.PRIMARY_DRAG_ROLE,
+ new ResizableCompartmentEditPolicy());
+ installEditPolicy(
+ EditPolicyRoles.SEMANTIC_ROLE,
+ new ParallelQueuedUnitParallelQueuedUnitHelperUnitsCompartment6ItemSemanticEditPolicy());
+ installEditPolicy(EditPolicyRoles.CREATION_ROLE,
+ new CreationEditPolicy());
+ installEditPolicy(EditPolicyRoles.DRAG_DROP_ROLE,
+ new DragDropEditPolicy());
+ installEditPolicy(
+ EditPolicyRoles.CANONICAL_ROLE,
+ new ParallelQueuedUnitParallelQueuedUnitHelperUnitsCompartment6CanonicalEditPolicy());
+ }
+
+ /**
+ * @generated
+ */
+ protected void setRatio(Double ratio) {
+ if (getFigure().getParent().getLayoutManager() instanceof ConstrainedToolbarLayout) {
+ super.setRatio(ratio);
+ }
+ }
+
+}
diff --git a/org.eclipse.emf.refactor.comrel.diagram/src/comrel/diagram/edit/parts/ParallelQueuedUnitParallelQueuedUnitHelperUnitsCompartment7EditPart.java b/org.eclipse.emf.refactor.comrel.diagram/src/comrel/diagram/edit/parts/ParallelQueuedUnitParallelQueuedUnitHelperUnitsCompartment7EditPart.java
new file mode 100644
index 0000000..150c39a
--- /dev/null
+++ b/org.eclipse.emf.refactor.comrel.diagram/src/comrel/diagram/edit/parts/ParallelQueuedUnitParallelQueuedUnitHelperUnitsCompartment7EditPart.java
@@ -0,0 +1,85 @@
+/*
+ *
+ */
+package comrel.diagram.edit.parts;
+
+import org.eclipse.draw2d.IFigure;
+import org.eclipse.gef.EditPolicy;
+import org.eclipse.gmf.runtime.diagram.ui.editparts.ShapeCompartmentEditPart;
+import org.eclipse.gmf.runtime.diagram.ui.editpolicies.CreationEditPolicy;
+import org.eclipse.gmf.runtime.diagram.ui.editpolicies.DragDropEditPolicy;
+import org.eclipse.gmf.runtime.diagram.ui.editpolicies.EditPolicyRoles;
+import org.eclipse.gmf.runtime.diagram.ui.editpolicies.ResizableCompartmentEditPolicy;
+import org.eclipse.gmf.runtime.diagram.ui.figures.ResizableCompartmentFigure;
+import org.eclipse.gmf.runtime.draw2d.ui.figures.ConstrainedToolbarLayout;
+import org.eclipse.gmf.runtime.notation.View;
+
+import comrel.diagram.edit.policies.ParallelQueuedUnitParallelQueuedUnitHelperUnitsCompartment7CanonicalEditPolicy;
+import comrel.diagram.edit.policies.ParallelQueuedUnitParallelQueuedUnitHelperUnitsCompartment7ItemSemanticEditPolicy;
+import comrel.diagram.part.Messages;
+
+/**
+ * @generated
+ */
+public class ParallelQueuedUnitParallelQueuedUnitHelperUnitsCompartment7EditPart
+ extends ShapeCompartmentEditPart {
+
+ /**
+ * @generated
+ */
+ public static final int VISUAL_ID = 7075;
+
+ /**
+ * @generated
+ */
+ public ParallelQueuedUnitParallelQueuedUnitHelperUnitsCompartment7EditPart(
+ View view) {
+ super(view);
+ }
+
+ /**
+ * @generated
+ */
+ public String getCompartmentName() {
+ return Messages.ParallelQueuedUnitParallelQueuedUnitHelperUnitsCompartment7EditPart_title;
+ }
+
+ /**
+ * @generated
+ */
+ public IFigure createFigure() {
+ ResizableCompartmentFigure result = (ResizableCompartmentFigure) super
+ .createFigure();
+ result.setTitleVisibility(false);
+ return result;
+ }
+
+ /**
+ * @generated
+ */
+ protected void createDefaultEditPolicies() {
+ super.createDefaultEditPolicies();
+ installEditPolicy(EditPolicy.PRIMARY_DRAG_ROLE,
+ new ResizableCompartmentEditPolicy());
+ installEditPolicy(
+ EditPolicyRoles.SEMANTIC_ROLE,
+ new ParallelQueuedUnitParallelQueuedUnitHelperUnitsCompartment7ItemSemanticEditPolicy());
+ installEditPolicy(EditPolicyRoles.CREATION_ROLE,
+ new CreationEditPolicy());
+ installEditPolicy(EditPolicyRoles.DRAG_DROP_ROLE,
+ new DragDropEditPolicy());
+ installEditPolicy(
+ EditPolicyRoles.CANONICAL_ROLE,
+ new ParallelQueuedUnitParallelQueuedUnitHelperUnitsCompartment7CanonicalEditPolicy());
+ }
+
+ /**
+ * @generated
+ */
+ protected void setRatio(Double ratio) {
+ if (getFigure().getParent().getLayoutManager() instanceof ConstrainedToolbarLayout) {
+ super.setRatio(ratio);
+ }
+ }
+
+}
diff --git a/org.eclipse.emf.refactor.comrel.diagram/src/comrel/diagram/edit/parts/ParallelQueuedUnitParallelQueuedUnitHelperUnitsCompartmentEditPart.java b/org.eclipse.emf.refactor.comrel.diagram/src/comrel/diagram/edit/parts/ParallelQueuedUnitParallelQueuedUnitHelperUnitsCompartmentEditPart.java
new file mode 100644
index 0000000..941cae0
--- /dev/null
+++ b/org.eclipse.emf.refactor.comrel.diagram/src/comrel/diagram/edit/parts/ParallelQueuedUnitParallelQueuedUnitHelperUnitsCompartmentEditPart.java
@@ -0,0 +1,85 @@
+/*
+ *
+ */
+package comrel.diagram.edit.parts;
+
+import org.eclipse.draw2d.IFigure;
+import org.eclipse.gef.EditPolicy;
+import org.eclipse.gmf.runtime.diagram.ui.editparts.ShapeCompartmentEditPart;
+import org.eclipse.gmf.runtime.diagram.ui.editpolicies.CreationEditPolicy;
+import org.eclipse.gmf.runtime.diagram.ui.editpolicies.DragDropEditPolicy;
+import org.eclipse.gmf.runtime.diagram.ui.editpolicies.EditPolicyRoles;
+import org.eclipse.gmf.runtime.diagram.ui.editpolicies.ResizableCompartmentEditPolicy;
+import org.eclipse.gmf.runtime.diagram.ui.figures.ResizableCompartmentFigure;
+import org.eclipse.gmf.runtime.draw2d.ui.figures.ConstrainedToolbarLayout;
+import org.eclipse.gmf.runtime.notation.View;
+
+import comrel.diagram.edit.policies.ParallelQueuedUnitParallelQueuedUnitHelperUnitsCompartmentCanonicalEditPolicy;
+import comrel.diagram.edit.policies.ParallelQueuedUnitParallelQueuedUnitHelperUnitsCompartmentItemSemanticEditPolicy;
+import comrel.diagram.part.Messages;
+
+/**
+ * @generated
+ */
+public class ParallelQueuedUnitParallelQueuedUnitHelperUnitsCompartmentEditPart
+ extends ShapeCompartmentEditPart {
+
+ /**
+ * @generated
+ */
+ public static final int VISUAL_ID = 7005;
+
+ /**
+ * @generated
+ */
+ public ParallelQueuedUnitParallelQueuedUnitHelperUnitsCompartmentEditPart(
+ View view) {
+ super(view);
+ }
+
+ /**
+ * @generated
+ */
+ public String getCompartmentName() {
+ return Messages.ParallelQueuedUnitParallelQueuedUnitHelperUnitsCompartmentEditPart_title;
+ }
+
+ /**
+ * @generated
+ */
+ public IFigure createFigure() {
+ ResizableCompartmentFigure result = (ResizableCompartmentFigure) super
+ .createFigure();
+ result.setTitleVisibility(false);
+ return result;
+ }
+
+ /**
+ * @generated
+ */
+ protected void createDefaultEditPolicies() {
+ super.createDefaultEditPolicies();
+ installEditPolicy(EditPolicy.PRIMARY_DRAG_ROLE,
+ new ResizableCompartmentEditPolicy());
+ installEditPolicy(
+ EditPolicyRoles.SEMANTIC_ROLE,
+ new ParallelQueuedUnitParallelQueuedUnitHelperUnitsCompartmentItemSemanticEditPolicy());
+ installEditPolicy(EditPolicyRoles.CREATION_ROLE,
+ new CreationEditPolicy());
+ installEditPolicy(EditPolicyRoles.DRAG_DROP_ROLE,
+ new DragDropEditPolicy());
+ installEditPolicy(
+ EditPolicyRoles.CANONICAL_ROLE,
+ new ParallelQueuedUnitParallelQueuedUnitHelperUnitsCompartmentCanonicalEditPolicy());
+ }
+
+ /**
+ * @generated
+ */
+ protected void setRatio(Double ratio) {
+ if (getFigure().getParent().getLayoutManager() instanceof ConstrainedToolbarLayout) {
+ super.setRatio(ratio);
+ }
+ }
+
+}
diff --git a/org.eclipse.emf.refactor.comrel.diagram/src/comrel/diagram/edit/parts/ParallelQueuedUnitParallelQueuedUnitRefactoringUnitsCompartment2EditPart.java b/org.eclipse.emf.refactor.comrel.diagram/src/comrel/diagram/edit/parts/ParallelQueuedUnitParallelQueuedUnitRefactoringUnitsCompartment2EditPart.java
new file mode 100644
index 0000000..5edc671
--- /dev/null
+++ b/org.eclipse.emf.refactor.comrel.diagram/src/comrel/diagram/edit/parts/ParallelQueuedUnitParallelQueuedUnitRefactoringUnitsCompartment2EditPart.java
@@ -0,0 +1,85 @@
+/*
+ *
+ */
+package comrel.diagram.edit.parts;
+
+import org.eclipse.draw2d.IFigure;
+import org.eclipse.gef.EditPolicy;
+import org.eclipse.gmf.runtime.diagram.ui.editparts.ShapeCompartmentEditPart;
+import org.eclipse.gmf.runtime.diagram.ui.editpolicies.CreationEditPolicy;
+import org.eclipse.gmf.runtime.diagram.ui.editpolicies.DragDropEditPolicy;
+import org.eclipse.gmf.runtime.diagram.ui.editpolicies.EditPolicyRoles;
+import org.eclipse.gmf.runtime.diagram.ui.editpolicies.ResizableCompartmentEditPolicy;
+import org.eclipse.gmf.runtime.diagram.ui.figures.ResizableCompartmentFigure;
+import org.eclipse.gmf.runtime.draw2d.ui.figures.ConstrainedToolbarLayout;
+import org.eclipse.gmf.runtime.notation.View;
+
+import comrel.diagram.edit.policies.ParallelQueuedUnitParallelQueuedUnitRefactoringUnitsCompartment2CanonicalEditPolicy;
+import comrel.diagram.edit.policies.ParallelQueuedUnitParallelQueuedUnitRefactoringUnitsCompartment2ItemSemanticEditPolicy;
+import comrel.diagram.part.Messages;
+
+/**
+ * @generated
+ */
+public class ParallelQueuedUnitParallelQueuedUnitRefactoringUnitsCompartment2EditPart
+ extends ShapeCompartmentEditPart {
+
+ /**
+ * @generated
+ */
+ public static final int VISUAL_ID = 7024;
+
+ /**
+ * @generated
+ */
+ public ParallelQueuedUnitParallelQueuedUnitRefactoringUnitsCompartment2EditPart(
+ View view) {
+ super(view);
+ }
+
+ /**
+ * @generated
+ */
+ public String getCompartmentName() {
+ return Messages.ParallelQueuedUnitParallelQueuedUnitRefactoringUnitsCompartment2EditPart_title;
+ }
+
+ /**
+ * @generated
+ */
+ public IFigure createFigure() {
+ ResizableCompartmentFigure result = (ResizableCompartmentFigure) super
+ .createFigure();
+ result.setTitleVisibility(false);
+ return result;
+ }
+
+ /**
+ * @generated
+ */
+ protected void createDefaultEditPolicies() {
+ super.createDefaultEditPolicies();
+ installEditPolicy(EditPolicy.PRIMARY_DRAG_ROLE,
+ new ResizableCompartmentEditPolicy());
+ installEditPolicy(
+ EditPolicyRoles.SEMANTIC_ROLE,
+ new ParallelQueuedUnitParallelQueuedUnitRefactoringUnitsCompartment2ItemSemanticEditPolicy());
+ installEditPolicy(EditPolicyRoles.CREATION_ROLE,
+ new CreationEditPolicy());
+ installEditPolicy(EditPolicyRoles.DRAG_DROP_ROLE,
+ new DragDropEditPolicy());
+ installEditPolicy(
+ EditPolicyRoles.CANONICAL_ROLE,
+ new ParallelQueuedUnitParallelQueuedUnitRefactoringUnitsCompartment2CanonicalEditPolicy());
+ }
+
+ /**
+ * @generated
+ */
+ protected void setRatio(Double ratio) {
+ if (getFigure().getParent().getLayoutManager() instanceof ConstrainedToolbarLayout) {
+ super.setRatio(ratio);
+ }
+ }
+
+}
diff --git a/org.eclipse.emf.refactor.comrel.diagram/src/comrel/diagram/edit/parts/ParallelQueuedUnitParallelQueuedUnitRefactoringUnitsCompartment3EditPart.java b/org.eclipse.emf.refactor.comrel.diagram/src/comrel/diagram/edit/parts/ParallelQueuedUnitParallelQueuedUnitRefactoringUnitsCompartment3EditPart.java
new file mode 100644
index 0000000..c6394e0
--- /dev/null
+++ b/org.eclipse.emf.refactor.comrel.diagram/src/comrel/diagram/edit/parts/ParallelQueuedUnitParallelQueuedUnitRefactoringUnitsCompartment3EditPart.java
@@ -0,0 +1,85 @@
+/*
+ *
+ */
+package comrel.diagram.edit.parts;
+
+import org.eclipse.draw2d.IFigure;
+import org.eclipse.gef.EditPolicy;
+import org.eclipse.gmf.runtime.diagram.ui.editparts.ShapeCompartmentEditPart;
+import org.eclipse.gmf.runtime.diagram.ui.editpolicies.CreationEditPolicy;
+import org.eclipse.gmf.runtime.diagram.ui.editpolicies.DragDropEditPolicy;
+import org.eclipse.gmf.runtime.diagram.ui.editpolicies.EditPolicyRoles;
+import org.eclipse.gmf.runtime.diagram.ui.editpolicies.ResizableCompartmentEditPolicy;
+import org.eclipse.gmf.runtime.diagram.ui.figures.ResizableCompartmentFigure;
+import org.eclipse.gmf.runtime.draw2d.ui.figures.ConstrainedToolbarLayout;
+import org.eclipse.gmf.runtime.notation.View;
+
+import comrel.diagram.edit.policies.ParallelQueuedUnitParallelQueuedUnitRefactoringUnitsCompartment3CanonicalEditPolicy;
+import comrel.diagram.edit.policies.ParallelQueuedUnitParallelQueuedUnitRefactoringUnitsCompartment3ItemSemanticEditPolicy;
+import comrel.diagram.part.Messages;
+
+/**
+ * @generated
+ */
+public class ParallelQueuedUnitParallelQueuedUnitRefactoringUnitsCompartment3EditPart
+ extends ShapeCompartmentEditPart {
+
+ /**
+ * @generated
+ */
+ public static final int VISUAL_ID = 7026;
+
+ /**
+ * @generated
+ */
+ public ParallelQueuedUnitParallelQueuedUnitRefactoringUnitsCompartment3EditPart(
+ View view) {
+ super(view);
+ }
+
+ /**
+ * @generated
+ */
+ public String getCompartmentName() {
+ return Messages.ParallelQueuedUnitParallelQueuedUnitRefactoringUnitsCompartment3EditPart_title;
+ }
+
+ /**
+ * @generated
+ */
+ public IFigure createFigure() {
+ ResizableCompartmentFigure result = (ResizableCompartmentFigure) super
+ .createFigure();
+ result.setTitleVisibility(false);
+ return result;
+ }
+
+ /**
+ * @generated
+ */
+ protected void createDefaultEditPolicies() {
+ super.createDefaultEditPolicies();
+ installEditPolicy(EditPolicy.PRIMARY_DRAG_ROLE,
+ new ResizableCompartmentEditPolicy());
+ installEditPolicy(
+ EditPolicyRoles.SEMANTIC_ROLE,
+ new ParallelQueuedUnitParallelQueuedUnitRefactoringUnitsCompartment3ItemSemanticEditPolicy());
+ installEditPolicy(EditPolicyRoles.CREATION_ROLE,
+ new CreationEditPolicy());
+ installEditPolicy(EditPolicyRoles.DRAG_DROP_ROLE,
+ new DragDropEditPolicy());
+ installEditPolicy(
+ EditPolicyRoles.CANONICAL_ROLE,
+ new ParallelQueuedUnitParallelQueuedUnitRefactoringUnitsCompartment3CanonicalEditPolicy());
+ }
+
+ /**
+ * @generated
+ */
+ protected void setRatio(Double ratio) {
+ if (getFigure().getParent().getLayoutManager() instanceof ConstrainedToolbarLayout) {
+ super.setRatio(ratio);
+ }
+ }
+
+}
diff --git a/org.eclipse.emf.refactor.comrel.diagram/src/comrel/diagram/edit/parts/ParallelQueuedUnitParallelQueuedUnitRefactoringUnitsCompartment4EditPart.java b/org.eclipse.emf.refactor.comrel.diagram/src/comrel/diagram/edit/parts/ParallelQueuedUnitParallelQueuedUnitRefactoringUnitsCompartment4EditPart.java
new file mode 100644
index 0000000..59585ed
--- /dev/null
+++ b/org.eclipse.emf.refactor.comrel.diagram/src/comrel/diagram/edit/parts/ParallelQueuedUnitParallelQueuedUnitRefactoringUnitsCompartment4EditPart.java
@@ -0,0 +1,85 @@
+/*
+ *
+ */
+package comrel.diagram.edit.parts;
+
+import org.eclipse.draw2d.IFigure;
+import org.eclipse.gef.EditPolicy;
+import org.eclipse.gmf.runtime.diagram.ui.editparts.ShapeCompartmentEditPart;
+import org.eclipse.gmf.runtime.diagram.ui.editpolicies.CreationEditPolicy;
+import org.eclipse.gmf.runtime.diagram.ui.editpolicies.DragDropEditPolicy;
+import org.eclipse.gmf.runtime.diagram.ui.editpolicies.EditPolicyRoles;
+import org.eclipse.gmf.runtime.diagram.ui.editpolicies.ResizableCompartmentEditPolicy;
+import org.eclipse.gmf.runtime.diagram.ui.figures.ResizableCompartmentFigure;
+import org.eclipse.gmf.runtime.draw2d.ui.figures.ConstrainedToolbarLayout;
+import org.eclipse.gmf.runtime.notation.View;
+
+import comrel.diagram.edit.policies.ParallelQueuedUnitParallelQueuedUnitRefactoringUnitsCompartment4CanonicalEditPolicy;
+import comrel.diagram.edit.policies.ParallelQueuedUnitParallelQueuedUnitRefactoringUnitsCompartment4ItemSemanticEditPolicy;
+import comrel.diagram.part.Messages;
+
+/**
+ * @generated
+ */
+public class ParallelQueuedUnitParallelQueuedUnitRefactoringUnitsCompartment4EditPart
+ extends ShapeCompartmentEditPart {
+
+ /**
+ * @generated
+ */
+ public static final int VISUAL_ID = 7030;
+
+ /**
+ * @generated
+ */
+ public ParallelQueuedUnitParallelQueuedUnitRefactoringUnitsCompartment4EditPart(
+ View view) {
+ super(view);
+ }
+
+ /**
+ * @generated
+ */
+ public String getCompartmentName() {
+ return Messages.ParallelQueuedUnitParallelQueuedUnitRefactoringUnitsCompartment4EditPart_title;
+ }
+
+ /**
+ * @generated
+ */
+ public IFigure createFigure() {
+ ResizableCompartmentFigure result = (ResizableCompartmentFigure) super
+ .createFigure();
+ result.setTitleVisibility(false);
+ return result;
+ }
+
+ /**
+ * @generated
+ */
+ protected void createDefaultEditPolicies() {
+ super.createDefaultEditPolicies();
+ installEditPolicy(EditPolicy.PRIMARY_DRAG_ROLE,
+ new ResizableCompartmentEditPolicy());
+ installEditPolicy(
+ EditPolicyRoles.SEMANTIC_ROLE,
+ new ParallelQueuedUnitParallelQueuedUnitRefactoringUnitsCompartment4ItemSemanticEditPolicy());
+ installEditPolicy(EditPolicyRoles.CREATION_ROLE,
+ new CreationEditPolicy());
+ installEditPolicy(EditPolicyRoles.DRAG_DROP_ROLE,
+ new DragDropEditPolicy());
+ installEditPolicy(
+ EditPolicyRoles.CANONICAL_ROLE,
+ new ParallelQueuedUnitParallelQueuedUnitRefactoringUnitsCompartment4CanonicalEditPolicy());
+ }
+
+ /**
+ * @generated
+ */
+ protected void setRatio(Double ratio) {
+ if (getFigure().getParent().getLayoutManager() instanceof ConstrainedToolbarLayout) {
+ super.setRatio(ratio);
+ }
+ }
+
+}
diff --git a/org.eclipse.emf.refactor.comrel.diagram/src/comrel/diagram/edit/parts/ParallelQueuedUnitParallelQueuedUnitRefactoringUnitsCompartment5EditPart.java b/org.eclipse.emf.refactor.comrel.diagram/src/comrel/diagram/edit/parts/ParallelQueuedUnitParallelQueuedUnitRefactoringUnitsCompartment5EditPart.java
new file mode 100644
index 0000000..c4c0c56
--- /dev/null
+++ b/org.eclipse.emf.refactor.comrel.diagram/src/comrel/diagram/edit/parts/ParallelQueuedUnitParallelQueuedUnitRefactoringUnitsCompartment5EditPart.java
@@ -0,0 +1,85 @@
+/*
+ *
+ */
+package comrel.diagram.edit.parts;
+
+import org.eclipse.draw2d.IFigure;
+import org.eclipse.gef.EditPolicy;
+import org.eclipse.gmf.runtime.diagram.ui.editparts.ShapeCompartmentEditPart;
+import org.eclipse.gmf.runtime.diagram.ui.editpolicies.CreationEditPolicy;
+import org.eclipse.gmf.runtime.diagram.ui.editpolicies.DragDropEditPolicy;
+import org.eclipse.gmf.runtime.diagram.ui.editpolicies.EditPolicyRoles;
+import org.eclipse.gmf.runtime.diagram.ui.editpolicies.ResizableCompartmentEditPolicy;
+import org.eclipse.gmf.runtime.diagram.ui.figures.ResizableCompartmentFigure;
+import org.eclipse.gmf.runtime.draw2d.ui.figures.ConstrainedToolbarLayout;
+import org.eclipse.gmf.runtime.notation.View;
+
+import comrel.diagram.edit.policies.ParallelQueuedUnitParallelQueuedUnitRefactoringUnitsCompartment5CanonicalEditPolicy;
+import comrel.diagram.edit.policies.ParallelQueuedUnitParallelQueuedUnitRefactoringUnitsCompartment5ItemSemanticEditPolicy;
+import comrel.diagram.part.Messages;
+
+/**
+ * @generated
+ */
+public class ParallelQueuedUnitParallelQueuedUnitRefactoringUnitsCompartment5EditPart
+ extends ShapeCompartmentEditPart {
+
+ /**
+ * @generated
+ */
+ public static final int VISUAL_ID = 7034;
+
+ /**
+ * @generated
+ */
+ public ParallelQueuedUnitParallelQueuedUnitRefactoringUnitsCompartment5EditPart(
+ View view) {
+ super(view);
+ }
+
+ /**
+ * @generated
+ */
+ public String getCompartmentName() {
+ return Messages.ParallelQueuedUnitParallelQueuedUnitRefactoringUnitsCompartment5EditPart_title;
+ }
+
+ /**
+ * @generated
+ */
+ public IFigure createFigure() {
+ ResizableCompartmentFigure result = (ResizableCompartmentFigure) super
+ .createFigure();
+ result.setTitleVisibility(false);
+ return result;
+ }
+
+ /**
+ * @generated
+ */
+ protected void createDefaultEditPolicies() {
+ super.createDefaultEditPolicies();
+ installEditPolicy(EditPolicy.PRIMARY_DRAG_ROLE,
+ new ResizableCompartmentEditPolicy());
+ installEditPolicy(
+ EditPolicyRoles.SEMANTIC_ROLE,
+ new ParallelQueuedUnitParallelQueuedUnitRefactoringUnitsCompartment5ItemSemanticEditPolicy());
+ installEditPolicy(EditPolicyRoles.CREATION_ROLE,
+ new CreationEditPolicy());
+ installEditPolicy(EditPolicyRoles.DRAG_DROP_ROLE,
+ new DragDropEditPolicy());
+ installEditPolicy(
+ EditPolicyRoles.CANONICAL_ROLE,
+ new ParallelQueuedUnitParallelQueuedUnitRefactoringUnitsCompartment5CanonicalEditPolicy());
+ }
+
+ /**
+ * @generated
+ */
+ protected void setRatio(Double ratio) {
+ if (getFigure().getParent().getLayoutManager() instanceof ConstrainedToolbarLayout) {
+ super.setRatio(ratio);
+ }
+ }
+
+}
diff --git a/org.eclipse.emf.refactor.comrel.diagram/src/comrel/diagram/edit/parts/ParallelQueuedUnitParallelQueuedUnitRefactoringUnitsCompartment6EditPart.java b/org.eclipse.emf.refactor.comrel.diagram/src/comrel/diagram/edit/parts/ParallelQueuedUnitParallelQueuedUnitRefactoringUnitsCompartment6EditPart.java
new file mode 100644
index 0000000..76ca938
--- /dev/null
+++ b/org.eclipse.emf.refactor.comrel.diagram/src/comrel/diagram/edit/parts/ParallelQueuedUnitParallelQueuedUnitRefactoringUnitsCompartment6EditPart.java
@@ -0,0 +1,85 @@
+/*
+ *
+ */
+package comrel.diagram.edit.parts;
+
+import org.eclipse.draw2d.IFigure;
+import org.eclipse.gef.EditPolicy;
+import org.eclipse.gmf.runtime.diagram.ui.editparts.ShapeCompartmentEditPart;
+import org.eclipse.gmf.runtime.diagram.ui.editpolicies.CreationEditPolicy;
+import org.eclipse.gmf.runtime.diagram.ui.editpolicies.DragDropEditPolicy;
+import org.eclipse.gmf.runtime.diagram.ui.editpolicies.EditPolicyRoles;
+import org.eclipse.gmf.runtime.diagram.ui.editpolicies.ResizableCompartmentEditPolicy;
+import org.eclipse.gmf.runtime.diagram.ui.figures.ResizableCompartmentFigure;
+import org.eclipse.gmf.runtime.draw2d.ui.figures.ConstrainedToolbarLayout;
+import org.eclipse.gmf.runtime.notation.View;
+
+import comrel.diagram.edit.policies.ParallelQueuedUnitParallelQueuedUnitRefactoringUnitsCompartment6CanonicalEditPolicy;
+import comrel.diagram.edit.policies.ParallelQueuedUnitParallelQueuedUnitRefactoringUnitsCompartment6ItemSemanticEditPolicy;
+import comrel.diagram.part.Messages;
+
+/**
+ * @generated
+ */
+public class ParallelQueuedUnitParallelQueuedUnitRefactoringUnitsCompartment6EditPart
+ extends ShapeCompartmentEditPart {
+
+ /**
+ * @generated
+ */
+ public static final int VISUAL_ID = 7042;
+
+ /**
+ * @generated
+ */
+ public ParallelQueuedUnitParallelQueuedUnitRefactoringUnitsCompartment6EditPart(
+ View view) {
+ super(view);
+ }
+
+ /**
+ * @generated
+ */
+ public String getCompartmentName() {
+ return Messages.ParallelQueuedUnitParallelQueuedUnitRefactoringUnitsCompartment6EditPart_title;
+ }
+
+ /**
+ * @generated
+ */
+ public IFigure createFigure() {
+ ResizableCompartmentFigure result = (ResizableCompartmentFigure) super
+ .createFigure();
+ result.setTitleVisibility(false);
+ return result;
+ }
+
+ /**
+ * @generated
+ */
+ protected void createDefaultEditPolicies() {
+ super.createDefaultEditPolicies();
+ installEditPolicy(EditPolicy.PRIMARY_DRAG_ROLE,
+ new ResizableCompartmentEditPolicy());
+ installEditPolicy(
+ EditPolicyRoles.SEMANTIC_ROLE,
+ new ParallelQueuedUnitParallelQueuedUnitRefactoringUnitsCompartment6ItemSemanticEditPolicy());
+ installEditPolicy(EditPolicyRoles.CREATION_ROLE,
+ new CreationEditPolicy());
+ installEditPolicy(EditPolicyRoles.DRAG_DROP_ROLE,
+ new DragDropEditPolicy());
+ installEditPolicy(
+ EditPolicyRoles.CANONICAL_ROLE,
+ new ParallelQueuedUnitParallelQueuedUnitRefactoringUnitsCompartment6CanonicalEditPolicy());
+ }
+
+ /**
+ * @generated
+ */
+ protected void setRatio(Double ratio) {
+ if (getFigure().getParent().getLayoutManager() instanceof ConstrainedToolbarLayout) {
+ super.setRatio(ratio);
+ }
+ }
+
+}
diff --git a/org.eclipse.emf.refactor.comrel.diagram/src/comrel/diagram/edit/parts/ParallelQueuedUnitParallelQueuedUnitRefactoringUnitsCompartment7EditPart.java b/org.eclipse.emf.refactor.comrel.diagram/src/comrel/diagram/edit/parts/ParallelQueuedUnitParallelQueuedUnitRefactoringUnitsCompartment7EditPart.java
new file mode 100644
index 0000000..4dddf73
--- /dev/null
+++ b/org.eclipse.emf.refactor.comrel.diagram/src/comrel/diagram/edit/parts/ParallelQueuedUnitParallelQueuedUnitRefactoringUnitsCompartment7EditPart.java
@@ -0,0 +1,85 @@
+/*
+ *
+ */
+package comrel.diagram.edit.parts;
+
+import org.eclipse.draw2d.IFigure;
+import org.eclipse.gef.EditPolicy;
+import org.eclipse.gmf.runtime.diagram.ui.editparts.ShapeCompartmentEditPart;
+import org.eclipse.gmf.runtime.diagram.ui.editpolicies.CreationEditPolicy;
+import org.eclipse.gmf.runtime.diagram.ui.editpolicies.DragDropEditPolicy;
+import org.eclipse.gmf.runtime.diagram.ui.editpolicies.EditPolicyRoles;
+import org.eclipse.gmf.runtime.diagram.ui.editpolicies.ResizableCompartmentEditPolicy;
+import org.eclipse.gmf.runtime.diagram.ui.figures.ResizableCompartmentFigure;
+import org.eclipse.gmf.runtime.draw2d.ui.figures.ConstrainedToolbarLayout;
+import org.eclipse.gmf.runtime.notation.View;
+
+import comrel.diagram.edit.policies.ParallelQueuedUnitParallelQueuedUnitRefactoringUnitsCompartment7CanonicalEditPolicy;
+import comrel.diagram.edit.policies.ParallelQueuedUnitParallelQueuedUnitRefactoringUnitsCompartment7ItemSemanticEditPolicy;
+import comrel.diagram.part.Messages;
+
+/**
+ * @generated
+ */
+public class ParallelQueuedUnitParallelQueuedUnitRefactoringUnitsCompartment7EditPart
+ extends ShapeCompartmentEditPart {
+
+ /**
+ * @generated
+ */
+ public static final int VISUAL_ID = 7076;
+
+ /**
+ * @generated
+ */
+ public ParallelQueuedUnitParallelQueuedUnitRefactoringUnitsCompartment7EditPart(
+ View view) {
+ super(view);
+ }
+
+ /**
+ * @generated
+ */
+ public String getCompartmentName() {
+ return Messages.ParallelQueuedUnitParallelQueuedUnitRefactoringUnitsCompartment7EditPart_title;
+ }
+
+ /**
+ * @generated
+ */
+ public IFigure createFigure() {
+ ResizableCompartmentFigure result = (ResizableCompartmentFigure) super
+ .createFigure();
+ result.setTitleVisibility(false);
+ return result;
+ }
+
+ /**
+ * @generated
+ */
+ protected void createDefaultEditPolicies() {
+ super.createDefaultEditPolicies();
+ installEditPolicy(EditPolicy.PRIMARY_DRAG_ROLE,
+ new ResizableCompartmentEditPolicy());
+ installEditPolicy(
+ EditPolicyRoles.SEMANTIC_ROLE,
+ new ParallelQueuedUnitParallelQueuedUnitRefactoringUnitsCompartment7ItemSemanticEditPolicy());
+ installEditPolicy(EditPolicyRoles.CREATION_ROLE,
+ new CreationEditPolicy());
+ installEditPolicy(EditPolicyRoles.DRAG_DROP_ROLE,
+ new DragDropEditPolicy());
+ installEditPolicy(
+ EditPolicyRoles.CANONICAL_ROLE,
+ new ParallelQueuedUnitParallelQueuedUnitRefactoringUnitsCompartment7CanonicalEditPolicy());
+ }
+
+ /**
+ * @generated
+ */
+ protected void setRatio(Double ratio) {
+ if (getFigure().getParent().getLayoutManager() instanceof ConstrainedToolbarLayout) {
+ super.setRatio(ratio);
+ }
+ }
+
+}
diff --git a/org.eclipse.emf.refactor.comrel.diagram/src/comrel/diagram/edit/parts/ParallelQueuedUnitParallelQueuedUnitRefactoringUnitsCompartmentEditPart.java b/org.eclipse.emf.refactor.comrel.diagram/src/comrel/diagram/edit/parts/ParallelQueuedUnitParallelQueuedUnitRefactoringUnitsCompartmentEditPart.java
new file mode 100644
index 0000000..7a957ce
--- /dev/null
+++ b/org.eclipse.emf.refactor.comrel.diagram/src/comrel/diagram/edit/parts/ParallelQueuedUnitParallelQueuedUnitRefactoringUnitsCompartmentEditPart.java
@@ -0,0 +1,85 @@
+/*
+ *
+ */
+package comrel.diagram.edit.parts;
+
+import org.eclipse.draw2d.IFigure;
+import org.eclipse.gef.EditPolicy;
+import org.eclipse.gmf.runtime.diagram.ui.editparts.ShapeCompartmentEditPart;
+import org.eclipse.gmf.runtime.diagram.ui.editpolicies.CreationEditPolicy;
+import org.eclipse.gmf.runtime.diagram.ui.editpolicies.DragDropEditPolicy;
+import org.eclipse.gmf.runtime.diagram.ui.editpolicies.EditPolicyRoles;
+import org.eclipse.gmf.runtime.diagram.ui.editpolicies.ResizableCompartmentEditPolicy;
+import org.eclipse.gmf.runtime.diagram.ui.figures.ResizableCompartmentFigure;
+import org.eclipse.gmf.runtime.draw2d.ui.figures.ConstrainedToolbarLayout;
+import org.eclipse.gmf.runtime.notation.View;
+
+import comrel.diagram.edit.policies.ParallelQueuedUnitParallelQueuedUnitRefactoringUnitsCompartmentCanonicalEditPolicy;
+import comrel.diagram.edit.policies.ParallelQueuedUnitParallelQueuedUnitRefactoringUnitsCompartmentItemSemanticEditPolicy;
+import comrel.diagram.part.Messages;
+
+/**
+ * @generated
+ */
+public class ParallelQueuedUnitParallelQueuedUnitRefactoringUnitsCompartmentEditPart
+ extends ShapeCompartmentEditPart {
+
+ /**
+ * @generated
+ */
+ public static final int VISUAL_ID = 7006;
+
+ /**
+ * @generated
+ */
+ public ParallelQueuedUnitParallelQueuedUnitRefactoringUnitsCompartmentEditPart(
+ View view) {
+ super(view);
+ }
+
+ /**
+ * @generated
+ */
+ public String getCompartmentName() {
+ return Messages.ParallelQueuedUnitParallelQueuedUnitRefactoringUnitsCompartmentEditPart_title;
+ }
+
+ /**
+ * @generated
+ */
+ public IFigure createFigure() {
+ ResizableCompartmentFigure result = (ResizableCompartmentFigure) super
+ .createFigure();
+ result.setTitleVisibility(false);
+ return result;
+ }
+
+ /**
+ * @generated
+ */
+ protected void createDefaultEditPolicies() {
+ super.createDefaultEditPolicies();
+ installEditPolicy(EditPolicy.PRIMARY_DRAG_ROLE,
+ new ResizableCompartmentEditPolicy());
+ installEditPolicy(
+ EditPolicyRoles.SEMANTIC_ROLE,
+ new ParallelQueuedUnitParallelQueuedUnitRefactoringUnitsCompartmentItemSemanticEditPolicy());
+ installEditPolicy(EditPolicyRoles.CREATION_ROLE,
+ new CreationEditPolicy());
+ installEditPolicy(EditPolicyRoles.DRAG_DROP_ROLE,
+ new DragDropEditPolicy());
+ installEditPolicy(
+ EditPolicyRoles.CANONICAL_ROLE,
+ new ParallelQueuedUnitParallelQueuedUnitRefactoringUnitsCompartmentCanonicalEditPolicy());
+ }
+
+ /**
+ * @generated
+ */
+ protected void setRatio(Double ratio) {
+ if (getFigure().getParent().getLayoutManager() instanceof ConstrainedToolbarLayout) {
+ super.setRatio(ratio);
+ }
+ }
+
+}
diff --git a/org.eclipse.emf.refactor.comrel.diagram/src/comrel/diagram/edit/parts/SequentialUnit2EditPart.java b/org.eclipse.emf.refactor.comrel.diagram/src/comrel/diagram/edit/parts/SequentialUnit2EditPart.java
new file mode 100644
index 0000000..71e55f2
--- /dev/null
+++ b/org.eclipse.emf.refactor.comrel.diagram/src/comrel/diagram/edit/parts/SequentialUnit2EditPart.java
@@ -0,0 +1,439 @@
+/*
+ *
+ */
+package comrel.diagram.edit.parts;
+
+import org.eclipse.draw2d.IFigure;
+import org.eclipse.draw2d.MarginBorder;
+import org.eclipse.draw2d.PositionConstants;
+import org.eclipse.draw2d.RectangleFigure;
+import org.eclipse.draw2d.RoundedRectangle;
+import org.eclipse.draw2d.Shape;
+import org.eclipse.draw2d.StackLayout;
+import org.eclipse.draw2d.geometry.Dimension;
+import org.eclipse.gef.EditPart;
+import org.eclipse.gef.EditPolicy;
+import org.eclipse.gef.Request;
+import org.eclipse.gef.commands.Command;
+import org.eclipse.gef.editpolicies.LayoutEditPolicy;
+import org.eclipse.gef.editpolicies.NonResizableEditPolicy;
+import org.eclipse.gef.requests.CreateRequest;
+import org.eclipse.gmf.runtime.diagram.ui.editparts.AbstractBorderedShapeEditPart;
+import org.eclipse.gmf.runtime.diagram.ui.editparts.IBorderItemEditPart;
+import org.eclipse.gmf.runtime.diagram.ui.editparts.IGraphicalEditPart;
+import org.eclipse.gmf.runtime.diagram.ui.editpolicies.BorderItemSelectionEditPolicy;
+import org.eclipse.gmf.runtime.diagram.ui.editpolicies.CreationEditPolicy;
+import org.eclipse.gmf.runtime.diagram.ui.editpolicies.DragDropEditPolicy;
+import org.eclipse.gmf.runtime.diagram.ui.editpolicies.EditPolicyRoles;
+import org.eclipse.gmf.runtime.diagram.ui.figures.BorderItemLocator;
+import org.eclipse.gmf.runtime.draw2d.ui.figures.ConstrainedToolbarLayout;
+import org.eclipse.gmf.runtime.draw2d.ui.figures.WrappingLabel;
+import org.eclipse.gmf.runtime.gef.ui.figures.DefaultSizeNodeFigure;
+import org.eclipse.gmf.runtime.gef.ui.figures.NodeFigure;
+import org.eclipse.gmf.runtime.notation.View;
+import org.eclipse.swt.graphics.Color;
+
+import comrel.RefactoringUnit;
+import comrel.diagram.edit.parts.SequentialUnitEditPart.SequentialUnitFigure;
+import comrel.diagram.edit.parts.custom.Labels;
+import comrel.diagram.edit.policies.OpenDiagramEditPolicy;
+import comrel.diagram.edit.policies.SequentialUnit2CanonicalEditPolicy;
+import comrel.diagram.edit.policies.SequentialUnit2ItemSemanticEditPolicy;
+import comrel.diagram.part.ComrelVisualIDRegistry;
+
+/**
+ * @generated
+ */
+public class SequentialUnit2EditPart extends AbstractBorderedShapeEditPart {
+
+ /**
+ * @generated
+ */
+ public static final int VISUAL_ID = 3026;
+
+ /**
+ * @generated
+ */
+ protected IFigure contentPane;
+
+ /**
+ * @generated
+ */
+ protected IFigure primaryShape;
+
+ /**
+ * @generated
+ */
+ public SequentialUnit2EditPart(View view) {
+ super(view);
+ }
+
+ /**
+ * @generated
+ */
+ protected void createDefaultEditPolicies() {
+ installEditPolicy(EditPolicyRoles.CREATION_ROLE,
+ new CreationEditPolicy());
+ super.createDefaultEditPolicies();
+ installEditPolicy(EditPolicyRoles.SEMANTIC_ROLE,
+ new SequentialUnit2ItemSemanticEditPolicy());
+ installEditPolicy(EditPolicyRoles.DRAG_DROP_ROLE,
+ new DragDropEditPolicy());
+ installEditPolicy(EditPolicyRoles.CANONICAL_ROLE,
+ new SequentialUnit2CanonicalEditPolicy());
+ installEditPolicy(EditPolicy.LAYOUT_ROLE, createLayoutEditPolicy());
+ installEditPolicy(EditPolicyRoles.OPEN_ROLE,
+ new OpenDiagramEditPolicy());
+ // XXX need an SCR to runtime to have another abstract superclass that would let children add reasonable editpolicies
+ // removeEditPolicy(org.eclipse.gmf.runtime.diagram.ui.editpolicies.EditPolicyRoles.CONNECTION_HANDLES_ROLE);
+ }
+
+ /**
+ * @generated
+ */
+ protected LayoutEditPolicy createLayoutEditPolicy() {
+ org.eclipse.gmf.runtime.diagram.ui.editpolicies.LayoutEditPolicy lep = new org.eclipse.gmf.runtime.diagram.ui.editpolicies.LayoutEditPolicy() {
+
+ protected EditPolicy createChildEditPolicy(EditPart child) {
+ View childView = (View) child.getModel();
+ switch (ComrelVisualIDRegistry.getVisualID(childView)) {
+ case SingleInputPort7EditPart.VISUAL_ID:
+ case MultiInputPort8EditPart.VISUAL_ID:
+ return new BorderItemSelectionEditPolicy();
+ }
+ EditPolicy result = child
+ .getEditPolicy(EditPolicy.PRIMARY_DRAG_ROLE);
+ if (result == null) {
+ result = new NonResizableEditPolicy();
+ }
+ return result;
+ }
+
+ protected Command getMoveChildrenCommand(Request request) {
+ return null;
+ }
+
+ protected Command getCreateCommand(CreateRequest request) {
+ return null;
+ }
+ };
+ return lep;
+ }
+
+ /**
+ * @generated NOT
+ */
+ protected IFigure createNodeShape() {
+ SequentialUnitFigure figure = new SequentialUnitFigure();
+ // RefactoringUnit unit = (RefactoringUnit) this.resolveSemanticElement();
+ // unit.setFigure(figure);
+ RectangleFigure compHelper = (RectangleFigure) figure.getChildren()
+ .get(1);
+ RectangleFigure compRef = (RectangleFigure) figure.getChildren().get(2);
+ Labels.setLabels(compHelper, compRef, false);
+ return primaryShape = figure;
+ // return primaryShape = new SequentialUnitFigure();
+ }
+
+ /**
+ * @generated
+ */
+ public SequentialUnitFigure getPrimaryShape() {
+ return (SequentialUnitFigure) primaryShape;
+ }
+
+ /**
+ * @generated NOT
+ */
+ protected boolean addFixedChild(EditPart childEditPart) {
+ if (childEditPart instanceof SequentialUnitNameTypeLblStrict2EditPart) {
+ ((SequentialUnitNameTypeLblStrict2EditPart) childEditPart)
+ .setLabel(getPrimaryShape()
+ .getFigureSequentialUnitLabelFigure());
+ return true;
+ }
+ if (childEditPart instanceof SequentialUnitSequentialUnitHelperUnitsCompartmentEditPart) {
+ IFigure pane = getPrimaryShape()
+ .getSequentialUnitHelperUnitsCompartmentFigure();
+ setupContentPane(pane); // FIXME each comparment should handle his content pane in his own way
+ pane.add(((SequentialUnitSequentialUnitHelperUnitsCompartmentEditPart) childEditPart)
+ .getFigure());
+ return true;
+ }
+ if (childEditPart instanceof SequentialUnitSequentialUnitRefactoringUnitsCompartmentEditPart) {
+ IFigure pane = getPrimaryShape()
+ .getSequentialUnitRefactoringUnitsCompartmentFigure();
+ setupContentPane(pane); // FIXME each comparment should handle his content pane in his own way
+ pane.add(((SequentialUnitSequentialUnitRefactoringUnitsCompartmentEditPart) childEditPart)
+ .getFigure());
+ return true;
+ }
+ if (childEditPart instanceof SingleInputPort7EditPart) {
+ BorderItemLocator locator = new BorderItemLocator(getMainFigure(),
+ PositionConstants.NORTH);
+ locator.setCurrentSideOfParent(PositionConstants.NORTH); // Position des Ports
+ locator.setPreferredSideOfParent(PositionConstants.NORTH); // Position des Ports
+ getBorderedFigure().getBorderItemContainer().add(
+ ((SingleInputPort7EditPart) childEditPart).getFigure(),
+ locator);
+ return true;
+ }
+ if (childEditPart instanceof MultiInputPort8EditPart) {
+ BorderItemLocator locator = new BorderItemLocator(getMainFigure(),
+ PositionConstants.NORTH);
+ locator.setCurrentSideOfParent(PositionConstants.NORTH); // Position des Ports
+ locator.setPreferredSideOfParent(PositionConstants.NORTH); // Position des Ports
+ getBorderedFigure().getBorderItemContainer().add(
+ ((MultiInputPort8EditPart) childEditPart).getFigure(),
+ locator);
+ return true;
+ }
+ return false;
+ }
+
+ /**
+ * @generated
+ */
+ protected boolean removeFixedChild(EditPart childEditPart) {
+ if (childEditPart instanceof SequentialUnitNameTypeLblStrict2EditPart) {
+ return true;
+ }
+ if (childEditPart instanceof SequentialUnitSequentialUnitHelperUnitsCompartmentEditPart) {
+ IFigure pane = getPrimaryShape()
+ .getSequentialUnitHelperUnitsCompartmentFigure();
+ setupContentPane(pane); // FIXME each comparment should handle his content pane in his own way
+ pane.remove(((SequentialUnitSequentialUnitHelperUnitsCompartmentEditPart) childEditPart)
+ .getFigure());
+ return true;
+ }
+ if (childEditPart instanceof SequentialUnitSequentialUnitRefactoringUnitsCompartmentEditPart) {
+ IFigure pane = getPrimaryShape()
+ .getSequentialUnitRefactoringUnitsCompartmentFigure();
+ setupContentPane(pane); // FIXME each comparment should handle his content pane in his own way
+ pane.remove(((SequentialUnitSequentialUnitRefactoringUnitsCompartmentEditPart) childEditPart)
+ .getFigure());
+ return true;
+ }
+ if (childEditPart instanceof SingleInputPort7EditPart) {
+ getBorderedFigure().getBorderItemContainer().remove(
+ ((SingleInputPort7EditPart) childEditPart).getFigure());
+ return true;
+ }
+ if (childEditPart instanceof MultiInputPort8EditPart) {
+ getBorderedFigure().getBorderItemContainer().remove(
+ ((MultiInputPort8EditPart) childEditPart).getFigure());
+ return true;
+ }
+ return false;
+ }
+
+ /**
+ * @generated
+ */
+ protected void addChildVisual(EditPart childEditPart, int index) {
+ if (addFixedChild(childEditPart)) {
+ return;
+ }
+ super.addChildVisual(childEditPart, -1);
+ }
+
+ /**
+ * @generated
+ */
+ protected void removeChildVisual(EditPart childEditPart) {
+ if (removeFixedChild(childEditPart)) {
+ return;
+ }
+ super.removeChildVisual(childEditPart);
+ }
+
+ /**
+ * @generated
+ */
+ protected IFigure getContentPaneFor(IGraphicalEditPart editPart) {
+ if (editPart instanceof SequentialUnitSequentialUnitHelperUnitsCompartmentEditPart) {
+ return getPrimaryShape()
+ .getSequentialUnitHelperUnitsCompartmentFigure();
+ }
+ if (editPart instanceof SequentialUnitSequentialUnitRefactoringUnitsCompartmentEditPart) {
+ return getPrimaryShape()
+ .getSequentialUnitRefactoringUnitsCompartmentFigure();
+ }
+ if (editPart instanceof IBorderItemEditPart) {
+ return getBorderedFigure().getBorderItemContainer();
+ }
+ return getContentPane();
+ }
+
+ /**
+ * @generated
+ */
+ protected NodeFigure createNodePlate() {
+ DefaultSizeNodeFigure result = new DefaultSizeNodeFigure(40, 40);
+ return result;
+ }
+
+ /**
+ * Creates figure for this edit part.
+ *
+ * Body of this method does not depend on settings in generation model
+ * so you may safely remove <i>generated</i> tag and modify it.
+ *
+ * @generated
+ */
+ protected NodeFigure createMainFigure() {
+ NodeFigure figure = createNodePlate();
+ figure.setLayoutManager(new StackLayout());
+ IFigure shape = createNodeShape();
+ figure.add(shape);
+ contentPane = setupContentPane(shape);
+ return figure;
+ }
+
+ /**
+ * Default implementation treats passed figure as content pane.
+ * Respects layout one may have set for generated figure.
+ * @param nodeShape instance of generated figure class
+ * @generated
+ */
+ protected IFigure setupContentPane(IFigure nodeShape) {
+ if (nodeShape.getLayoutManager() == null) {
+ ConstrainedToolbarLayout layout = new ConstrainedToolbarLayout();
+ layout.setSpacing(5);
+ nodeShape.setLayoutManager(layout);
+ }
+ return nodeShape; // use nodeShape itself as contentPane
+ }
+
+ /**
+ * @generated
+ */
+ public IFigure getContentPane() {
+ if (contentPane != null) {
+ return contentPane;
+ }
+ return super.getContentPane();
+ }
+
+ /**
+ * @generated
+ */
+ protected void setForegroundColor(Color color) {
+ if (primaryShape != null) {
+ primaryShape.setForegroundColor(color);
+ }
+ }
+
+ /**
+ * @generated
+ */
+ protected void setBackgroundColor(Color color) {
+ if (primaryShape != null) {
+ primaryShape.setBackgroundColor(color);
+ }
+ }
+
+ /**
+ * @generated
+ */
+ protected void setLineWidth(int width) {
+ if (primaryShape instanceof Shape) {
+ ((Shape) primaryShape).setLineWidth(width);
+ }
+ }
+
+ /**
+ * @generated
+ */
+ protected void setLineType(int style) {
+ if (primaryShape instanceof Shape) {
+ ((Shape) primaryShape).setLineStyle(style);
+ }
+ }
+
+ /**
+ * @generated
+ */
+ public EditPart getPrimaryChildEditPart() {
+ return getChildBySemanticHint(ComrelVisualIDRegistry
+ .getType(SequentialUnitNameTypeLblStrict2EditPart.VISUAL_ID));
+ }
+
+ /**
+ * @generated
+ */
+ public class SequentialUnitFigure extends RoundedRectangle {
+
+ /**
+ * @generated
+ */
+ private WrappingLabel fFigureSequentialUnitLabelFigure;
+ /**
+ * @generated
+ */
+ private RectangleFigure fSequentialUnitHelperUnitsCompartmentFigure;
+ /**
+ * @generated
+ */
+ private RectangleFigure fSequentialUnitRefactoringUnitsCompartmentFigure;
+
+ /**
+ * @generated
+ */
+ public SequentialUnitFigure() {
+ this.setCornerDimensions(new Dimension(getMapMode().DPtoLP(8),
+ getMapMode().DPtoLP(8)));
+ this.setBorder(new MarginBorder(getMapMode().DPtoLP(5),
+ getMapMode().DPtoLP(5), getMapMode().DPtoLP(5),
+ getMapMode().DPtoLP(5)));
+ createContents();
+ }
+
+ /**
+ * @generated
+ */
+ private void createContents() {
+
+ fFigureSequentialUnitLabelFigure = new WrappingLabel();
+ fFigureSequentialUnitLabelFigure.setText("SequentialUnit");
+ fFigureSequentialUnitLabelFigure.setMaximumSize(new Dimension(
+ getMapMode().DPtoLP(10000), getMapMode().DPtoLP(50)));
+
+ this.add(fFigureSequentialUnitLabelFigure);
+
+ fSequentialUnitHelperUnitsCompartmentFigure = new RectangleFigure();
+ fSequentialUnitHelperUnitsCompartmentFigure.setOutline(false);
+
+ this.add(fSequentialUnitHelperUnitsCompartmentFigure);
+
+ fSequentialUnitRefactoringUnitsCompartmentFigure = new RectangleFigure();
+ fSequentialUnitRefactoringUnitsCompartmentFigure.setOutline(false);
+
+ this.add(fSequentialUnitRefactoringUnitsCompartmentFigure);
+
+ }
+
+ /**
+ * @generated
+ */
+ public WrappingLabel getFigureSequentialUnitLabelFigure() {
+ return fFigureSequentialUnitLabelFigure;
+ }
+
+ /**
+ * @generated
+ */
+ public RectangleFigure getSequentialUnitHelperUnitsCompartmentFigure() {
+ return fSequentialUnitHelperUnitsCompartmentFigure;
+ }
+
+ /**
+ * @generated
+ */
+ public RectangleFigure getSequentialUnitRefactoringUnitsCompartmentFigure() {
+ return fSequentialUnitRefactoringUnitsCompartmentFigure;
+ }
+
+ }
+
+}
diff --git a/org.eclipse.emf.refactor.comrel.diagram/src/comrel/diagram/edit/parts/SequentialUnit3EditPart.java b/org.eclipse.emf.refactor.comrel.diagram/src/comrel/diagram/edit/parts/SequentialUnit3EditPart.java
new file mode 100644
index 0000000..44645ed
--- /dev/null
+++ b/org.eclipse.emf.refactor.comrel.diagram/src/comrel/diagram/edit/parts/SequentialUnit3EditPart.java
@@ -0,0 +1,439 @@
+/*
+ *
+ */
+package comrel.diagram.edit.parts;
+
+import org.eclipse.draw2d.IFigure;
+import org.eclipse.draw2d.MarginBorder;
+import org.eclipse.draw2d.PositionConstants;
+import org.eclipse.draw2d.RectangleFigure;
+import org.eclipse.draw2d.RoundedRectangle;
+import org.eclipse.draw2d.Shape;
+import org.eclipse.draw2d.StackLayout;
+import org.eclipse.draw2d.geometry.Dimension;
+import org.eclipse.gef.EditPart;
+import org.eclipse.gef.EditPolicy;
+import org.eclipse.gef.Request;
+import org.eclipse.gef.commands.Command;
+import org.eclipse.gef.editpolicies.LayoutEditPolicy;
+import org.eclipse.gef.editpolicies.NonResizableEditPolicy;
+import org.eclipse.gef.requests.CreateRequest;
+import org.eclipse.gmf.runtime.diagram.ui.editparts.AbstractBorderedShapeEditPart;
+import org.eclipse.gmf.runtime.diagram.ui.editparts.IBorderItemEditPart;
+import org.eclipse.gmf.runtime.diagram.ui.editparts.IGraphicalEditPart;
+import org.eclipse.gmf.runtime.diagram.ui.editpolicies.BorderItemSelectionEditPolicy;
+import org.eclipse.gmf.runtime.diagram.ui.editpolicies.CreationEditPolicy;
+import org.eclipse.gmf.runtime.diagram.ui.editpolicies.DragDropEditPolicy;
+import org.eclipse.gmf.runtime.diagram.ui.editpolicies.EditPolicyRoles;
+import org.eclipse.gmf.runtime.diagram.ui.figures.BorderItemLocator;
+import org.eclipse.gmf.runtime.draw2d.ui.figures.ConstrainedToolbarLayout;
+import org.eclipse.gmf.runtime.draw2d.ui.figures.WrappingLabel;
+import org.eclipse.gmf.runtime.gef.ui.figures.DefaultSizeNodeFigure;
+import org.eclipse.gmf.runtime.gef.ui.figures.NodeFigure;
+import org.eclipse.gmf.runtime.notation.View;
+import org.eclipse.swt.graphics.Color;
+
+import comrel.RefactoringUnit;
+import comrel.diagram.edit.parts.SequentialUnit2EditPart.SequentialUnitFigure;
+import comrel.diagram.edit.parts.custom.Labels;
+import comrel.diagram.edit.policies.OpenDiagramEditPolicy;
+import comrel.diagram.edit.policies.SequentialUnit3CanonicalEditPolicy;
+import comrel.diagram.edit.policies.SequentialUnit3ItemSemanticEditPolicy;
+import comrel.diagram.part.ComrelVisualIDRegistry;
+
+/**
+ * @generated
+ */
+public class SequentialUnit3EditPart extends AbstractBorderedShapeEditPart {
+
+ /**
+ * @generated
+ */
+ public static final int VISUAL_ID = 3044;
+
+ /**
+ * @generated
+ */
+ protected IFigure contentPane;
+
+ /**
+ * @generated
+ */
+ protected IFigure primaryShape;
+
+ /**
+ * @generated
+ */
+ public SequentialUnit3EditPart(View view) {
+ super(view);
+ }
+
+ /**
+ * @generated
+ */
+ protected void createDefaultEditPolicies() {
+ installEditPolicy(EditPolicyRoles.CREATION_ROLE,
+ new CreationEditPolicy());
+ super.createDefaultEditPolicies();
+ installEditPolicy(EditPolicyRoles.SEMANTIC_ROLE,
+ new SequentialUnit3ItemSemanticEditPolicy());
+ installEditPolicy(EditPolicyRoles.DRAG_DROP_ROLE,
+ new DragDropEditPolicy());
+ installEditPolicy(EditPolicyRoles.CANONICAL_ROLE,
+ new SequentialUnit3CanonicalEditPolicy());
+ installEditPolicy(EditPolicy.LAYOUT_ROLE, createLayoutEditPolicy());
+ installEditPolicy(EditPolicyRoles.OPEN_ROLE,
+ new OpenDiagramEditPolicy());
+ // XXX need an SCR to runtime to have another abstract superclass that would let children add reasonable editpolicies
+ // removeEditPolicy(org.eclipse.gmf.runtime.diagram.ui.editpolicies.EditPolicyRoles.CONNECTION_HANDLES_ROLE);
+ }
+
+ /**
+ * @generated
+ */
+ protected LayoutEditPolicy createLayoutEditPolicy() {
+ org.eclipse.gmf.runtime.diagram.ui.editpolicies.LayoutEditPolicy lep = new org.eclipse.gmf.runtime.diagram.ui.editpolicies.LayoutEditPolicy() {
+
+ protected EditPolicy createChildEditPolicy(EditPart child) {
+ View childView = (View) child.getModel();
+ switch (ComrelVisualIDRegistry.getVisualID(childView)) {
+ case SingleInputPort7EditPart.VISUAL_ID:
+ case MultiInputPort8EditPart.VISUAL_ID:
+ return new BorderItemSelectionEditPolicy();
+ }
+ EditPolicy result = child
+ .getEditPolicy(EditPolicy.PRIMARY_DRAG_ROLE);
+ if (result == null) {
+ result = new NonResizableEditPolicy();
+ }
+ return result;
+ }
+
+ protected Command getMoveChildrenCommand(Request request) {
+ return null;
+ }
+
+ protected Command getCreateCommand(CreateRequest request) {
+ return null;
+ }
+ };
+ return lep;
+ }
+
+ /**
+ * @generated NOT
+ */
+ protected IFigure createNodeShape() {
+ SequentialUnitFigure figure = new SequentialUnitFigure();
+ // RefactoringUnit unit = (RefactoringUnit) this.resolveSemanticElement();
+ // unit.setFigure(figure);
+ RectangleFigure compHelper = (RectangleFigure) figure.getChildren()
+ .get(1);
+ RectangleFigure compRef = (RectangleFigure) figure.getChildren().get(2);
+ Labels.setLabels(compHelper, compRef, false);
+ return primaryShape = figure;
+ // return primaryShape = new SequentialUnitFigure();
+ }
+
+ /**
+ * @generated
+ */
+ public SequentialUnitFigure getPrimaryShape() {
+ return (SequentialUnitFigure) primaryShape;
+ }
+
+ /**
+ * @generated NOT
+ */
+ protected boolean addFixedChild(EditPart childEditPart) {
+ if (childEditPart instanceof SequentialUnitNameTypeLblStrict3EditPart) {
+ ((SequentialUnitNameTypeLblStrict3EditPart) childEditPart)
+ .setLabel(getPrimaryShape()
+ .getFigureSequentialUnitLabelFigure());
+ return true;
+ }
+ if (childEditPart instanceof SequentialUnitSequentialUnitHelperUnitsCompartment2EditPart) {
+ IFigure pane = getPrimaryShape()
+ .getSequentialUnitHelperUnitsCompartmentFigure();
+ setupContentPane(pane); // FIXME each comparment should handle his content pane in his own way
+ pane.add(((SequentialUnitSequentialUnitHelperUnitsCompartment2EditPart) childEditPart)
+ .getFigure());
+ return true;
+ }
+ if (childEditPart instanceof SequentialUnitSequentialUnitRefactoringUnitsCompartment2EditPart) {
+ IFigure pane = getPrimaryShape()
+ .getSequentialUnitRefactoringUnitsCompartmentFigure();
+ setupContentPane(pane); // FIXME each comparment should handle his content pane in his own way
+ pane.add(((SequentialUnitSequentialUnitRefactoringUnitsCompartment2EditPart) childEditPart)
+ .getFigure());
+ return true;
+ }
+ if (childEditPart instanceof SingleInputPort7EditPart) {
+ BorderItemLocator locator = new BorderItemLocator(getMainFigure(),
+ PositionConstants.NORTH);
+ locator.setCurrentSideOfParent(PositionConstants.NORTH); // Position des Ports
+ locator.setPreferredSideOfParent(PositionConstants.NORTH); // Position des Ports
+ getBorderedFigure().getBorderItemContainer().add(
+ ((SingleInputPort7EditPart) childEditPart).getFigure(),
+ locator);
+ return true;
+ }
+ if (childEditPart instanceof MultiInputPort8EditPart) {
+ BorderItemLocator locator = new BorderItemLocator(getMainFigure(),
+ PositionConstants.NORTH);
+ locator.setCurrentSideOfParent(PositionConstants.NORTH); // Position des Ports
+ locator.setPreferredSideOfParent(PositionConstants.NORTH); // Position des Ports
+ getBorderedFigure().getBorderItemContainer().add(
+ ((MultiInputPort8EditPart) childEditPart).getFigure(),
+ locator);
+ return true;
+ }
+ return false;
+ }
+
+ /**
+ * @generated
+ */
+ protected boolean removeFixedChild(EditPart childEditPart) {
+ if (childEditPart instanceof SequentialUnitNameTypeLblStrict3EditPart) {
+ return true;
+ }
+ if (childEditPart instanceof SequentialUnitSequentialUnitHelperUnitsCompartment2EditPart) {
+ IFigure pane = getPrimaryShape()
+ .getSequentialUnitHelperUnitsCompartmentFigure();
+ setupContentPane(pane); // FIXME each comparment should handle his content pane in his own way
+ pane.remove(((SequentialUnitSequentialUnitHelperUnitsCompartment2EditPart) childEditPart)
+ .getFigure());
+ return true;
+ }
+ if (childEditPart instanceof SequentialUnitSequentialUnitRefactoringUnitsCompartment2EditPart) {
+ IFigure pane = getPrimaryShape()
+ .getSequentialUnitRefactoringUnitsCompartmentFigure();
+ setupContentPane(pane); // FIXME each comparment should handle his content pane in his own way
+ pane.remove(((SequentialUnitSequentialUnitRefactoringUnitsCompartment2EditPart) childEditPart)
+ .getFigure());
+ return true;
+ }
+ if (childEditPart instanceof SingleInputPort7EditPart) {
+ getBorderedFigure().getBorderItemContainer().remove(
+ ((SingleInputPort7EditPart) childEditPart).getFigure());
+ return true;
+ }
+ if (childEditPart instanceof MultiInputPort8EditPart) {
+ getBorderedFigure().getBorderItemContainer().remove(
+ ((MultiInputPort8EditPart) childEditPart).getFigure());
+ return true;
+ }
+ return false;
+ }
+
+ /**
+ * @generated
+ */
+ protected void addChildVisual(EditPart childEditPart, int index) {
+ if (addFixedChild(childEditPart)) {
+ return;
+ }
+ super.addChildVisual(childEditPart, -1);
+ }
+
+ /**
+ * @generated
+ */
+ protected void removeChildVisual(EditPart childEditPart) {
+ if (removeFixedChild(childEditPart)) {
+ return;
+ }
+ super.removeChildVisual(childEditPart);
+ }
+
+ /**
+ * @generated
+ */
+ protected IFigure getContentPaneFor(IGraphicalEditPart editPart) {
+ if (editPart instanceof SequentialUnitSequentialUnitHelperUnitsCompartment2EditPart) {
+ return getPrimaryShape()
+ .getSequentialUnitHelperUnitsCompartmentFigure();
+ }
+ if (editPart instanceof SequentialUnitSequentialUnitRefactoringUnitsCompartment2EditPart) {
+ return getPrimaryShape()
+ .getSequentialUnitRefactoringUnitsCompartmentFigure();
+ }
+ if (editPart instanceof IBorderItemEditPart) {
+ return getBorderedFigure().getBorderItemContainer();
+ }
+ return getContentPane();
+ }
+
+ /**
+ * @generated
+ */
+ protected NodeFigure createNodePlate() {
+ DefaultSizeNodeFigure result = new DefaultSizeNodeFigure(40, 40);
+ return result;
+ }
+
+ /**
+ * Creates figure for this edit part.
+ *
+ * Body of this method does not depend on settings in generation model
+ * so you may safely remove <i>generated</i> tag and modify it.
+ *
+ * @generated
+ */
+ protected NodeFigure createMainFigure() {
+ NodeFigure figure = createNodePlate();
+ figure.setLayoutManager(new StackLayout());
+ IFigure shape = createNodeShape();
+ figure.add(shape);
+ contentPane = setupContentPane(shape);
+ return figure;
+ }
+
+ /**
+ * Default implementation treats passed figure as content pane.
+ * Respects layout one may have set for generated figure.
+ * @param nodeShape instance of generated figure class
+ * @generated
+ */
+ protected IFigure setupContentPane(IFigure nodeShape) {
+ if (nodeShape.getLayoutManager() == null) {
+ ConstrainedToolbarLayout layout = new ConstrainedToolbarLayout();
+ layout.setSpacing(5);
+ nodeShape.setLayoutManager(layout);
+ }
+ return nodeShape; // use nodeShape itself as contentPane
+ }
+
+ /**
+ * @generated
+ */
+ public IFigure getContentPane() {
+ if (contentPane != null) {
+ return contentPane;
+ }
+ return super.getContentPane();
+ }
+
+ /**
+ * @generated
+ */
+ protected void setForegroundColor(Color color) {
+ if (primaryShape != null) {
+ primaryShape.setForegroundColor(color);
+ }
+ }
+
+ /**
+ * @generated
+ */
+ protected void setBackgroundColor(Color color) {
+ if (primaryShape != null) {
+ primaryShape.setBackgroundColor(color);
+ }
+ }
+
+ /**
+ * @generated
+ */
+ protected void setLineWidth(int width) {
+ if (primaryShape instanceof Shape) {
+ ((Shape) primaryShape).setLineWidth(width);
+ }
+ }
+
+ /**
+ * @generated
+ */
+ protected void setLineType(int style) {
+ if (primaryShape instanceof Shape) {
+ ((Shape) primaryShape).setLineStyle(style);
+ }
+ }
+
+ /**
+ * @generated
+ */
+ public EditPart getPrimaryChildEditPart() {
+ return getChildBySemanticHint(ComrelVisualIDRegistry
+ .getType(SequentialUnitNameTypeLblStrict3EditPart.VISUAL_ID));
+ }
+
+ /**
+ * @generated
+ */
+ public class SequentialUnitFigure extends RoundedRectangle {
+
+ /**
+ * @generated
+ */
+ private WrappingLabel fFigureSequentialUnitLabelFigure;
+ /**
+ * @generated
+ */
+ private RectangleFigure fSequentialUnitHelperUnitsCompartmentFigure;
+ /**
+ * @generated
+ */
+ private RectangleFigure fSequentialUnitRefactoringUnitsCompartmentFigure;
+
+ /**
+ * @generated
+ */
+ public SequentialUnitFigure() {
+ this.setCornerDimensions(new Dimension(getMapMode().DPtoLP(8),
+ getMapMode().DPtoLP(8)));
+ this.setBorder(new MarginBorder(getMapMode().DPtoLP(5),
+ getMapMode().DPtoLP(5), getMapMode().DPtoLP(5),
+ getMapMode().DPtoLP(5)));
+ createContents();
+ }
+
+ /**
+ * @generated
+ */
+ private void createContents() {
+
+ fFigureSequentialUnitLabelFigure = new WrappingLabel();
+ fFigureSequentialUnitLabelFigure.setText("SequentialUnit");
+ fFigureSequentialUnitLabelFigure.setMaximumSize(new Dimension(
+ getMapMode().DPtoLP(10000), getMapMode().DPtoLP(50)));
+
+ this.add(fFigureSequentialUnitLabelFigure);
+
+ fSequentialUnitHelperUnitsCompartmentFigure = new RectangleFigure();
+ fSequentialUnitHelperUnitsCompartmentFigure.setOutline(false);
+
+ this.add(fSequentialUnitHelperUnitsCompartmentFigure);
+
+ fSequentialUnitRefactoringUnitsCompartmentFigure = new RectangleFigure();
+ fSequentialUnitRefactoringUnitsCompartmentFigure.setOutline(false);
+
+ this.add(fSequentialUnitRefactoringUnitsCompartmentFigure);
+
+ }
+
+ /**
+ * @generated
+ */
+ public WrappingLabel getFigureSequentialUnitLabelFigure() {
+ return fFigureSequentialUnitLabelFigure;
+ }
+
+ /**
+ * @generated
+ */
+ public RectangleFigure getSequentialUnitHelperUnitsCompartmentFigure() {
+ return fSequentialUnitHelperUnitsCompartmentFigure;
+ }
+
+ /**
+ * @generated
+ */
+ public RectangleFigure getSequentialUnitRefactoringUnitsCompartmentFigure() {
+ return fSequentialUnitRefactoringUnitsCompartmentFigure;
+ }
+
+ }
+
+}
diff --git a/org.eclipse.emf.refactor.comrel.diagram/src/comrel/diagram/edit/parts/SequentialUnit4EditPart.java b/org.eclipse.emf.refactor.comrel.diagram/src/comrel/diagram/edit/parts/SequentialUnit4EditPart.java
new file mode 100644
index 0000000..28c4786
--- /dev/null
+++ b/org.eclipse.emf.refactor.comrel.diagram/src/comrel/diagram/edit/parts/SequentialUnit4EditPart.java
@@ -0,0 +1,439 @@
+/*
+ *
+ */
+package comrel.diagram.edit.parts;
+
+import org.eclipse.draw2d.IFigure;
+import org.eclipse.draw2d.MarginBorder;
+import org.eclipse.draw2d.PositionConstants;
+import org.eclipse.draw2d.RectangleFigure;
+import org.eclipse.draw2d.RoundedRectangle;
+import org.eclipse.draw2d.Shape;
+import org.eclipse.draw2d.StackLayout;
+import org.eclipse.draw2d.geometry.Dimension;
+import org.eclipse.gef.EditPart;
+import org.eclipse.gef.EditPolicy;
+import org.eclipse.gef.Request;
+import org.eclipse.gef.commands.Command;
+import org.eclipse.gef.editpolicies.LayoutEditPolicy;
+import org.eclipse.gef.editpolicies.NonResizableEditPolicy;
+import org.eclipse.gef.requests.CreateRequest;
+import org.eclipse.gmf.runtime.diagram.ui.editparts.AbstractBorderedShapeEditPart;
+import org.eclipse.gmf.runtime.diagram.ui.editparts.IBorderItemEditPart;
+import org.eclipse.gmf.runtime.diagram.ui.editparts.IGraphicalEditPart;
+import org.eclipse.gmf.runtime.diagram.ui.editpolicies.BorderItemSelectionEditPolicy;
+import org.eclipse.gmf.runtime.diagram.ui.editpolicies.CreationEditPolicy;
+import org.eclipse.gmf.runtime.diagram.ui.editpolicies.DragDropEditPolicy;
+import org.eclipse.gmf.runtime.diagram.ui.editpolicies.EditPolicyRoles;
+import org.eclipse.gmf.runtime.diagram.ui.figures.BorderItemLocator;
+import org.eclipse.gmf.runtime.draw2d.ui.figures.ConstrainedToolbarLayout;
+import org.eclipse.gmf.runtime.draw2d.ui.figures.WrappingLabel;
+import org.eclipse.gmf.runtime.gef.ui.figures.DefaultSizeNodeFigure;
+import org.eclipse.gmf.runtime.gef.ui.figures.NodeFigure;
+import org.eclipse.gmf.runtime.notation.View;
+import org.eclipse.swt.graphics.Color;
+
+import comrel.RefactoringUnit;
+import comrel.diagram.edit.parts.SequentialUnit2EditPart.SequentialUnitFigure;
+import comrel.diagram.edit.parts.custom.Labels;
+import comrel.diagram.edit.policies.OpenDiagramEditPolicy;
+import comrel.diagram.edit.policies.SequentialUnit4CanonicalEditPolicy;
+import comrel.diagram.edit.policies.SequentialUnit4ItemSemanticEditPolicy;
+import comrel.diagram.part.ComrelVisualIDRegistry;
+
+/**
+ * @generated
+ */
+public class SequentialUnit4EditPart extends AbstractBorderedShapeEditPart {
+
+ /**
+ * @generated
+ */
+ public static final int VISUAL_ID = 3060;
+
+ /**
+ * @generated
+ */
+ protected IFigure contentPane;
+
+ /**
+ * @generated
+ */
+ protected IFigure primaryShape;
+
+ /**
+ * @generated
+ */
+ public SequentialUnit4EditPart(View view) {
+ super(view);
+ }
+
+ /**
+ * @generated
+ */
+ protected void createDefaultEditPolicies() {
+ installEditPolicy(EditPolicyRoles.CREATION_ROLE,
+ new CreationEditPolicy());
+ super.createDefaultEditPolicies();
+ installEditPolicy(EditPolicyRoles.SEMANTIC_ROLE,
+ new SequentialUnit4ItemSemanticEditPolicy());
+ installEditPolicy(EditPolicyRoles.DRAG_DROP_ROLE,
+ new DragDropEditPolicy());
+ installEditPolicy(EditPolicyRoles.CANONICAL_ROLE,
+ new SequentialUnit4CanonicalEditPolicy());
+ installEditPolicy(EditPolicy.LAYOUT_ROLE, createLayoutEditPolicy());
+ installEditPolicy(EditPolicyRoles.OPEN_ROLE,
+ new OpenDiagramEditPolicy());
+ // XXX need an SCR to runtime to have another abstract superclass that would let children add reasonable editpolicies
+ // removeEditPolicy(org.eclipse.gmf.runtime.diagram.ui.editpolicies.EditPolicyRoles.CONNECTION_HANDLES_ROLE);
+ }
+
+ /**
+ * @generated
+ */
+ protected LayoutEditPolicy createLayoutEditPolicy() {
+ org.eclipse.gmf.runtime.diagram.ui.editpolicies.LayoutEditPolicy lep = new org.eclipse.gmf.runtime.diagram.ui.editpolicies.LayoutEditPolicy() {
+
+ protected EditPolicy createChildEditPolicy(EditPart child) {
+ View childView = (View) child.getModel();
+ switch (ComrelVisualIDRegistry.getVisualID(childView)) {
+ case SingleInputPort7EditPart.VISUAL_ID:
+ case MultiInputPort8EditPart.VISUAL_ID:
+ return new BorderItemSelectionEditPolicy();
+ }
+ EditPolicy result = child
+ .getEditPolicy(EditPolicy.PRIMARY_DRAG_ROLE);
+ if (result == null) {
+ result = new NonResizableEditPolicy();
+ }
+ return result;
+ }
+
+ protected Command getMoveChildrenCommand(Request request) {
+ return null;
+ }
+
+ protected Command getCreateCommand(CreateRequest request) {
+ return null;
+ }
+ };
+ return lep;
+ }
+
+ /**
+ * @generated NOT
+ */
+ protected IFigure createNodeShape() {
+ SequentialUnitFigure figure = new SequentialUnitFigure();
+ // RefactoringUnit unit = (RefactoringUnit) this.resolveSemanticElement();
+ // unit.setFigure(figure);
+ RectangleFigure compHelper = (RectangleFigure) figure.getChildren()
+ .get(1);
+ RectangleFigure compRef = (RectangleFigure) figure.getChildren().get(2);
+ Labels.setLabels(compHelper, compRef, false);
+ return primaryShape = figure;
+ // return primaryShape = new SequentialUnitFigure();
+ }
+
+ /**
+ * @generated
+ */
+ public SequentialUnitFigure getPrimaryShape() {
+ return (SequentialUnitFigure) primaryShape;
+ }
+
+ /**
+ * @generated NOT
+ */
+ protected boolean addFixedChild(EditPart childEditPart) {
+ if (childEditPart instanceof SequentialUnitNameTypeLblStrict4EditPart) {
+ ((SequentialUnitNameTypeLblStrict4EditPart) childEditPart)
+ .setLabel(getPrimaryShape()
+ .getFigureSequentialUnitLabelFigure());
+ return true;
+ }
+ if (childEditPart instanceof SequentialUnitSequentialUnitHelperUnitsCompartment3EditPart) {
+ IFigure pane = getPrimaryShape()
+ .getSequentialUnitHelperUnitsCompartmentFigure();
+ setupContentPane(pane); // FIXME each comparment should handle his content pane in his own way
+ pane.add(((SequentialUnitSequentialUnitHelperUnitsCompartment3EditPart) childEditPart)
+ .getFigure());
+ return true;
+ }
+ if (childEditPart instanceof SequentialUnitSequentialUnitRefactoringUnitsCompartment3EditPart) {
+ IFigure pane = getPrimaryShape()
+ .getSequentialUnitRefactoringUnitsCompartmentFigure();
+ setupContentPane(pane); // FIXME each comparment should handle his content pane in his own way
+ pane.add(((SequentialUnitSequentialUnitRefactoringUnitsCompartment3EditPart) childEditPart)
+ .getFigure());
+ return true;
+ }
+ if (childEditPart instanceof SingleInputPort7EditPart) {
+ BorderItemLocator locator = new BorderItemLocator(getMainFigure(),
+ PositionConstants.NORTH);
+ locator.setCurrentSideOfParent(PositionConstants.NORTH); // Position des Ports
+ locator.setPreferredSideOfParent(PositionConstants.NORTH); // Position des Ports
+ getBorderedFigure().getBorderItemContainer().add(
+ ((SingleInputPort7EditPart) childEditPart).getFigure(),
+ locator);
+ return true;
+ }
+ if (childEditPart instanceof MultiInputPort8EditPart) {
+ BorderItemLocator locator = new BorderItemLocator(getMainFigure(),
+ PositionConstants.NORTH);
+ locator.setCurrentSideOfParent(PositionConstants.NORTH); // Position des Ports
+ locator.setPreferredSideOfParent(PositionConstants.NORTH); // Position des Ports
+ getBorderedFigure().getBorderItemContainer().add(
+ ((MultiInputPort8EditPart) childEditPart).getFigure(),
+ locator);
+ return true;
+ }
+ return false;
+ }
+
+ /**
+ * @generated
+ */
+ protected boolean removeFixedChild(EditPart childEditPart) {
+ if (childEditPart instanceof SequentialUnitNameTypeLblStrict4EditPart) {
+ return true;
+ }
+ if (childEditPart instanceof SequentialUnitSequentialUnitHelperUnitsCompartment3EditPart) {
+ IFigure pane = getPrimaryShape()
+ .getSequentialUnitHelperUnitsCompartmentFigure();
+ setupContentPane(pane); // FIXME each comparment should handle his content pane in his own way
+ pane.remove(((SequentialUnitSequentialUnitHelperUnitsCompartment3EditPart) childEditPart)
+ .getFigure());
+ return true;
+ }
+ if (childEditPart instanceof SequentialUnitSequentialUnitRefactoringUnitsCompartment3EditPart) {
+ IFigure pane = getPrimaryShape()
+ .getSequentialUnitRefactoringUnitsCompartmentFigure();
+ setupContentPane(pane); // FIXME each comparment should handle his content pane in his own way
+ pane.remove(((SequentialUnitSequentialUnitRefactoringUnitsCompartment3EditPart) childEditPart)
+ .getFigure());
+ return true;
+ }
+ if (childEditPart instanceof SingleInputPort7EditPart) {
+ getBorderedFigure().getBorderItemContainer().remove(
+ ((SingleInputPort7EditPart) childEditPart).getFigure());
+ return true;
+ }
+ if (childEditPart instanceof MultiInputPort8EditPart) {
+ getBorderedFigure().getBorderItemContainer().remove(
+ ((MultiInputPort8EditPart) childEditPart).getFigure());
+ return true;
+ }
+ return false;
+ }
+
+ /**
+ * @generated
+ */
+ protected void addChildVisual(EditPart childEditPart, int index) {
+ if (addFixedChild(childEditPart)) {
+ return;
+ }
+ super.addChildVisual(childEditPart, -1);
+ }
+
+ /**
+ * @generated
+ */
+ protected void removeChildVisual(EditPart childEditPart) {
+ if (removeFixedChild(childEditPart)) {
+ return;
+ }
+ super.removeChildVisual(childEditPart);
+ }
+
+ /**
+ * @generated
+ */
+ protected IFigure getContentPaneFor(IGraphicalEditPart editPart) {
+ if (editPart instanceof SequentialUnitSequentialUnitHelperUnitsCompartment3EditPart) {
+ return getPrimaryShape()
+ .getSequentialUnitHelperUnitsCompartmentFigure();
+ }
+ if (editPart instanceof SequentialUnitSequentialUnitRefactoringUnitsCompartment3EditPart) {
+ return getPrimaryShape()
+ .getSequentialUnitRefactoringUnitsCompartmentFigure();
+ }
+ if (editPart instanceof IBorderItemEditPart) {
+ return getBorderedFigure().getBorderItemContainer();
+ }
+ return getContentPane();
+ }
+
+ /**
+ * @generated
+ */
+ protected NodeFigure createNodePlate() {
+ DefaultSizeNodeFigure result = new DefaultSizeNodeFigure(40, 40);
+ return result;
+ }
+
+ /**
+ * Creates figure for this edit part.
+ *
+ * Body of this method does not depend on settings in generation model
+ * so you may safely remove <i>generated</i> tag and modify it.
+ *
+ * @generated
+ */
+ protected NodeFigure createMainFigure() {
+ NodeFigure figure = createNodePlate();
+ figure.setLayoutManager(new StackLayout());
+ IFigure shape = createNodeShape();
+ figure.add(shape);
+ contentPane = setupContentPane(shape);
+ return figure;
+ }
+
+ /**
+ * Default implementation treats passed figure as content pane.
+ * Respects layout one may have set for generated figure.
+ * @param nodeShape instance of generated figure class
+ * @generated
+ */
+ protected IFigure setupContentPane(IFigure nodeShape) {
+ if (nodeShape.getLayoutManager() == null) {
+ ConstrainedToolbarLayout layout = new ConstrainedToolbarLayout();
+ layout.setSpacing(5);
+ nodeShape.setLayoutManager(layout);
+ }
+ return nodeShape; // use nodeShape itself as contentPane
+ }
+
+ /**
+ * @generated
+ */
+ public IFigure getContentPane() {
+ if (contentPane != null) {
+ return contentPane;
+ }
+ return super.getContentPane();
+ }
+
+ /**
+ * @generated
+ */
+ protected void setForegroundColor(Color color) {
+ if (primaryShape != null) {
+ primaryShape.setForegroundColor(color);
+ }
+ }
+
+ /**
+ * @generated
+ */
+ protected void setBackgroundColor(Color color) {
+ if (primaryShape != null) {
+ primaryShape.setBackgroundColor(color);
+ }
+ }
+
+ /**
+ * @generated
+ */
+ protected void setLineWidth(int width) {
+ if (primaryShape instanceof Shape) {
+ ((Shape) primaryShape).setLineWidth(width);
+ }
+ }
+
+ /**
+ * @generated
+ */
+ protected void setLineType(int style) {
+ if (primaryShape instanceof Shape) {
+ ((Shape) primaryShape).setLineStyle(style);
+ }
+ }
+
+ /**
+ * @generated
+ */
+ public EditPart getPrimaryChildEditPart() {
+ return getChildBySemanticHint(ComrelVisualIDRegistry
+ .getType(SequentialUnitNameTypeLblStrict4EditPart.VISUAL_ID));
+ }
+
+ /**
+ * @generated
+ */
+ public class SequentialUnitFigure extends RoundedRectangle {
+
+ /**
+ * @generated
+ */
+ private WrappingLabel fFigureSequentialUnitLabelFigure;
+ /**
+ * @generated
+ */
+ private RectangleFigure fSequentialUnitHelperUnitsCompartmentFigure;
+ /**
+ * @generated
+ */
+ private RectangleFigure fSequentialUnitRefactoringUnitsCompartmentFigure;
+
+ /**
+ * @generated
+ */
+ public SequentialUnitFigure() {
+ this.setCornerDimensions(new Dimension(getMapMode().DPtoLP(8),
+ getMapMode().DPtoLP(8)));
+ this.setBorder(new MarginBorder(getMapMode().DPtoLP(5),
+ getMapMode().DPtoLP(5), getMapMode().DPtoLP(5),
+ getMapMode().DPtoLP(5)));
+ createContents();
+ }
+
+ /**
+ * @generated
+ */
+ private void createContents() {
+
+ fFigureSequentialUnitLabelFigure = new WrappingLabel();
+ fFigureSequentialUnitLabelFigure.setText("SequentialUnit");
+ fFigureSequentialUnitLabelFigure.setMaximumSize(new Dimension(
+ getMapMode().DPtoLP(10000), getMapMode().DPtoLP(50)));
+
+ this.add(fFigureSequentialUnitLabelFigure);
+
+ fSequentialUnitHelperUnitsCompartmentFigure = new RectangleFigure();
+ fSequentialUnitHelperUnitsCompartmentFigure.setOutline(false);
+
+ this.add(fSequentialUnitHelperUnitsCompartmentFigure);
+
+ fSequentialUnitRefactoringUnitsCompartmentFigure = new RectangleFigure();
+ fSequentialUnitRefactoringUnitsCompartmentFigure.setOutline(false);
+
+ this.add(fSequentialUnitRefactoringUnitsCompartmentFigure);
+
+ }
+
+ /**
+ * @generated
+ */
+ public WrappingLabel getFigureSequentialUnitLabelFigure() {
+ return fFigureSequentialUnitLabelFigure;
+ }
+
+ /**
+ * @generated
+ */
+ public RectangleFigure getSequentialUnitHelperUnitsCompartmentFigure() {
+ return fSequentialUnitHelperUnitsCompartmentFigure;
+ }
+
+ /**
+ * @generated
+ */
+ public RectangleFigure getSequentialUnitRefactoringUnitsCompartmentFigure() {
+ return fSequentialUnitRefactoringUnitsCompartmentFigure;
+ }
+
+ }
+
+}
diff --git a/org.eclipse.emf.refactor.comrel.diagram/src/comrel/diagram/edit/parts/SequentialUnit5EditPart.java b/org.eclipse.emf.refactor.comrel.diagram/src/comrel/diagram/edit/parts/SequentialUnit5EditPart.java
new file mode 100644
index 0000000..78ce982
--- /dev/null
+++ b/org.eclipse.emf.refactor.comrel.diagram/src/comrel/diagram/edit/parts/SequentialUnit5EditPart.java
@@ -0,0 +1,439 @@
+/*
+ *
+ */
+package comrel.diagram.edit.parts;
+
+import org.eclipse.draw2d.IFigure;
+import org.eclipse.draw2d.MarginBorder;
+import org.eclipse.draw2d.PositionConstants;
+import org.eclipse.draw2d.RectangleFigure;
+import org.eclipse.draw2d.RoundedRectangle;
+import org.eclipse.draw2d.Shape;
+import org.eclipse.draw2d.StackLayout;
+import org.eclipse.draw2d.geometry.Dimension;
+import org.eclipse.gef.EditPart;
+import org.eclipse.gef.EditPolicy;
+import org.eclipse.gef.Request;
+import org.eclipse.gef.commands.Command;
+import org.eclipse.gef.editpolicies.LayoutEditPolicy;
+import org.eclipse.gef.editpolicies.NonResizableEditPolicy;
+import org.eclipse.gef.requests.CreateRequest;
+import org.eclipse.gmf.runtime.diagram.ui.editparts.AbstractBorderedShapeEditPart;
+import org.eclipse.gmf.runtime.diagram.ui.editparts.IBorderItemEditPart;
+import org.eclipse.gmf.runtime.diagram.ui.editparts.IGraphicalEditPart;
+import org.eclipse.gmf.runtime.diagram.ui.editpolicies.BorderItemSelectionEditPolicy;
+import org.eclipse.gmf.runtime.diagram.ui.editpolicies.CreationEditPolicy;
+import org.eclipse.gmf.runtime.diagram.ui.editpolicies.DragDropEditPolicy;
+import org.eclipse.gmf.runtime.diagram.ui.editpolicies.EditPolicyRoles;
+import org.eclipse.gmf.runtime.diagram.ui.figures.BorderItemLocator;
+import org.eclipse.gmf.runtime.draw2d.ui.figures.ConstrainedToolbarLayout;
+import org.eclipse.gmf.runtime.draw2d.ui.figures.WrappingLabel;
+import org.eclipse.gmf.runtime.gef.ui.figures.DefaultSizeNodeFigure;
+import org.eclipse.gmf.runtime.gef.ui.figures.NodeFigure;
+import org.eclipse.gmf.runtime.notation.View;
+import org.eclipse.swt.graphics.Color;
+
+import comrel.RefactoringUnit;
+import comrel.diagram.edit.parts.SequentialUnit2EditPart.SequentialUnitFigure;
+import comrel.diagram.edit.parts.custom.Labels;
+import comrel.diagram.edit.policies.OpenDiagramEditPolicy;
+import comrel.diagram.edit.policies.SequentialUnit5CanonicalEditPolicy;
+import comrel.diagram.edit.policies.SequentialUnit5ItemSemanticEditPolicy;
+import comrel.diagram.part.ComrelVisualIDRegistry;
+
+/**
+ * @generated
+ */
+public class SequentialUnit5EditPart extends AbstractBorderedShapeEditPart {
+
+ /**
+ * @generated
+ */
+ public static final int VISUAL_ID = 3069;
+
+ /**
+ * @generated
+ */
+ protected IFigure contentPane;
+
+ /**
+ * @generated
+ */
+ protected IFigure primaryShape;
+
+ /**
+ * @generated
+ */
+ public SequentialUnit5EditPart(View view) {
+ super(view);
+ }
+
+ /**
+ * @generated
+ */
+ protected void createDefaultEditPolicies() {
+ installEditPolicy(EditPolicyRoles.CREATION_ROLE,
+ new CreationEditPolicy());
+ super.createDefaultEditPolicies();
+ installEditPolicy(EditPolicyRoles.SEMANTIC_ROLE,
+ new SequentialUnit5ItemSemanticEditPolicy());
+ installEditPolicy(EditPolicyRoles.DRAG_DROP_ROLE,
+ new DragDropEditPolicy());
+ installEditPolicy(EditPolicyRoles.CANONICAL_ROLE,
+ new SequentialUnit5CanonicalEditPolicy());
+ installEditPolicy(EditPolicy.LAYOUT_ROLE, createLayoutEditPolicy());
+ installEditPolicy(EditPolicyRoles.OPEN_ROLE,
+ new OpenDiagramEditPolicy());
+ // XXX need an SCR to runtime to have another abstract superclass that would let children add reasonable editpolicies
+ // removeEditPolicy(org.eclipse.gmf.runtime.diagram.ui.editpolicies.EditPolicyRoles.CONNECTION_HANDLES_ROLE);
+ }
+
+ /**
+ * @generated
+ */
+ protected LayoutEditPolicy createLayoutEditPolicy() {
+ org.eclipse.gmf.runtime.diagram.ui.editpolicies.LayoutEditPolicy lep = new org.eclipse.gmf.runtime.diagram.ui.editpolicies.LayoutEditPolicy() {
+
+ protected EditPolicy createChildEditPolicy(EditPart child) {
+ View childView = (View) child.getModel();
+ switch (ComrelVisualIDRegistry.getVisualID(childView)) {
+ case SingleInputPort7EditPart.VISUAL_ID:
+ case MultiInputPort8EditPart.VISUAL_ID:
+ return new BorderItemSelectionEditPolicy();
+ }
+ EditPolicy result = child
+ .getEditPolicy(EditPolicy.PRIMARY_DRAG_ROLE);
+ if (result == null) {
+ result = new NonResizableEditPolicy();
+ }
+ return result;
+ }
+
+ protected Command getMoveChildrenCommand(Request request) {
+ return null;
+ }
+
+ protected Command getCreateCommand(CreateRequest request) {
+ return null;
+ }
+ };
+ return lep;
+ }
+
+ /**
+ * @generated NOT
+ */
+ protected IFigure createNodeShape() {
+ SequentialUnitFigure figure = new SequentialUnitFigure();
+ // RefactoringUnit unit = (RefactoringUnit) this.resolveSemanticElement();
+ // unit.setFigure(figure);
+ RectangleFigure compHelper = (RectangleFigure) figure.getChildren()
+ .get(1);
+ RectangleFigure compRef = (RectangleFigure) figure.getChildren().get(2);
+ Labels.setLabels(compHelper, compRef, false);
+ return primaryShape = figure;
+ // return primaryShape = new SequentialUnitFigure();
+ }
+
+ /**
+ * @generated
+ */
+ public SequentialUnitFigure getPrimaryShape() {
+ return (SequentialUnitFigure) primaryShape;
+ }
+
+ /**
+ * @generated NOT
+ */
+ protected boolean addFixedChild(EditPart childEditPart) {
+ if (childEditPart instanceof SequentialUnitNameTypeLblStrict5EditPart) {
+ ((SequentialUnitNameTypeLblStrict5EditPart) childEditPart)
+ .setLabel(getPrimaryShape()
+ .getFigureSequentialUnitLabelFigure());
+ return true;
+ }
+ if (childEditPart instanceof SequentialUnitSequentialUnitHelperUnitsCompartment4EditPart) {
+ IFigure pane = getPrimaryShape()
+ .getSequentialUnitHelperUnitsCompartmentFigure();
+ setupContentPane(pane); // FIXME each comparment should handle his content pane in his own way
+ pane.add(((SequentialUnitSequentialUnitHelperUnitsCompartment4EditPart) childEditPart)
+ .getFigure());
+ return true;
+ }
+ if (childEditPart instanceof SequentialUnitSequentialUnitRefactoringUnitsCompartment4EditPart) {
+ IFigure pane = getPrimaryShape()
+ .getSequentialUnitRefactoringUnitsCompartmentFigure();
+ setupContentPane(pane); // FIXME each comparment should handle his content pane in his own way
+ pane.add(((SequentialUnitSequentialUnitRefactoringUnitsCompartment4EditPart) childEditPart)
+ .getFigure());
+ return true;
+ }
+ if (childEditPart instanceof SingleInputPort7EditPart) {
+ BorderItemLocator locator = new BorderItemLocator(getMainFigure(),
+ PositionConstants.NORTH);
+ locator.setCurrentSideOfParent(PositionConstants.NORTH); // Position des Ports
+ locator.setPreferredSideOfParent(PositionConstants.NORTH); // Position des Ports
+ getBorderedFigure().getBorderItemContainer().add(
+ ((SingleInputPort7EditPart) childEditPart).getFigure(),
+ locator);
+ return true;
+ }
+ if (childEditPart instanceof MultiInputPort8EditPart) {
+ BorderItemLocator locator = new BorderItemLocator(getMainFigure(),
+ PositionConstants.NORTH);
+ locator.setCurrentSideOfParent(PositionConstants.NORTH); // Position des Ports
+ locator.setPreferredSideOfParent(PositionConstants.NORTH); // Position des Ports
+ getBorderedFigure().getBorderItemContainer().add(
+ ((MultiInputPort8EditPart) childEditPart).getFigure(),
+ locator);
+ return true;
+ }
+ return false;
+ }
+
+ /**
+ * @generated
+ */
+ protected boolean removeFixedChild(EditPart childEditPart) {
+ if (childEditPart instanceof SequentialUnitNameTypeLblStrict5EditPart) {
+ return true;
+ }
+ if (childEditPart instanceof SequentialUnitSequentialUnitHelperUnitsCompartment4EditPart) {
+ IFigure pane = getPrimaryShape()
+ .getSequentialUnitHelperUnitsCompartmentFigure();
+ setupContentPane(pane); // FIXME each comparment should handle his content pane in his own way
+ pane.remove(((SequentialUnitSequentialUnitHelperUnitsCompartment4EditPart) childEditPart)
+ .getFigure());
+ return true;
+ }
+ if (childEditPart instanceof SequentialUnitSequentialUnitRefactoringUnitsCompartment4EditPart) {
+ IFigure pane = getPrimaryShape()
+ .getSequentialUnitRefactoringUnitsCompartmentFigure();
+ setupContentPane(pane); // FIXME each comparment should handle his content pane in his own way
+ pane.remove(((SequentialUnitSequentialUnitRefactoringUnitsCompartment4EditPart) childEditPart)
+ .getFigure());
+ return true;
+ }
+ if (childEditPart instanceof SingleInputPort7EditPart) {
+ getBorderedFigure().getBorderItemContainer().remove(
+ ((SingleInputPort7EditPart) childEditPart).getFigure());
+ return true;
+ }
+ if (childEditPart instanceof MultiInputPort8EditPart) {
+ getBorderedFigure().getBorderItemContainer().remove(
+ ((MultiInputPort8EditPart) childEditPart).getFigure());
+ return true;
+ }
+ return false;
+ }
+
+ /**
+ * @generated
+ */
+ protected void addChildVisual(EditPart childEditPart, int index) {
+ if (addFixedChild(childEditPart)) {
+ return;
+ }
+ super.addChildVisual(childEditPart, -1);
+ }
+
+ /**
+ * @generated
+ */
+ protected void removeChildVisual(EditPart childEditPart) {
+ if (removeFixedChild(childEditPart)) {
+ return;
+ }
+ super.removeChildVisual(childEditPart);
+ }
+
+ /**
+ * @generated
+ */
+ protected IFigure getContentPaneFor(IGraphicalEditPart editPart) {
+ if (editPart instanceof SequentialUnitSequentialUnitHelperUnitsCompartment4EditPart) {
+ return getPrimaryShape()
+ .getSequentialUnitHelperUnitsCompartmentFigure();
+ }
+ if (editPart instanceof SequentialUnitSequentialUnitRefactoringUnitsCompartment4EditPart) {
+ return getPrimaryShape()
+ .getSequentialUnitRefactoringUnitsCompartmentFigure();
+ }
+ if (editPart instanceof IBorderItemEditPart) {
+ return getBorderedFigure().getBorderItemContainer();
+ }
+ return getContentPane();
+ }
+
+ /**
+ * @generated
+ */
+ protected NodeFigure createNodePlate() {
+ DefaultSizeNodeFigure result = new DefaultSizeNodeFigure(40, 40);
+ return result;
+ }
+
+ /**
+ * Creates figure for this edit part.
+ *
+ * Body of this method does not depend on settings in generation model
+ * so you may safely remove <i>generated</i> tag and modify it.
+ *
+ * @generated
+ */
+ protected NodeFigure createMainFigure() {
+ NodeFigure figure = createNodePlate();
+ figure.setLayoutManager(new StackLayout());
+ IFigure shape = createNodeShape();
+ figure.add(shape);
+ contentPane = setupContentPane(shape);
+ return figure;
+ }
+
+ /**
+ * Default implementation treats passed figure as content pane.
+ * Respects layout one may have set for generated figure.
+ * @param nodeShape instance of generated figure class
+ * @generated
+ */
+ protected IFigure setupContentPane(IFigure nodeShape) {
+ if (nodeShape.getLayoutManager() == null) {
+ ConstrainedToolbarLayout layout = new ConstrainedToolbarLayout();
+ layout.setSpacing(5);
+ nodeShape.setLayoutManager(layout);
+ }
+ return nodeShape; // use nodeShape itself as contentPane
+ }
+
+ /**
+ * @generated
+ */
+ public IFigure getContentPane() {
+ if (contentPane != null) {
+ return contentPane;
+ }
+ return super.getContentPane();
+ }
+
+ /**
+ * @generated
+ */
+ protected void setForegroundColor(Color color) {
+ if (primaryShape != null) {
+ primaryShape.setForegroundColor(color);
+ }
+ }
+
+ /**
+ * @generated
+ */
+ protected void setBackgroundColor(Color color) {
+ if (primaryShape != null) {
+ primaryShape.setBackgroundColor(color);
+ }
+ }
+
+ /**
+ * @generated
+ */
+ protected void setLineWidth(int width) {
+ if (primaryShape instanceof Shape) {
+ ((Shape) primaryShape).setLineWidth(width);
+ }
+ }
+
+ /**
+ * @generated
+ */
+ protected void setLineType(int style) {
+ if (primaryShape instanceof Shape) {
+ ((Shape) primaryShape).setLineStyle(style);
+ }
+ }
+
+ /**
+ * @generated
+ */
+ public EditPart getPrimaryChildEditPart() {
+ return getChildBySemanticHint(ComrelVisualIDRegistry
+ .getType(SequentialUnitNameTypeLblStrict5EditPart.VISUAL_ID));
+ }
+
+ /**
+ * @generated
+ */
+ public class SequentialUnitFigure extends RoundedRectangle {
+
+ /**
+ * @generated
+ */
+ private WrappingLabel fFigureSequentialUnitLabelFigure;
+ /**
+ * @generated
+ */
+ private RectangleFigure fSequentialUnitHelperUnitsCompartmentFigure;
+ /**
+ * @generated
+ */
+ private RectangleFigure fSequentialUnitRefactoringUnitsCompartmentFigure;
+
+ /**
+ * @generated
+ */
+ public SequentialUnitFigure() {
+ this.setCornerDimensions(new Dimension(getMapMode().DPtoLP(8),
+ getMapMode().DPtoLP(8)));
+ this.setBorder(new MarginBorder(getMapMode().DPtoLP(5),
+ getMapMode().DPtoLP(5), getMapMode().DPtoLP(5),
+ getMapMode().DPtoLP(5)));
+ createContents();
+ }
+
+ /**
+ * @generated
+ */
+ private void createContents() {
+
+ fFigureSequentialUnitLabelFigure = new WrappingLabel();
+ fFigureSequentialUnitLabelFigure.setText("SequentialUnit");
+ fFigureSequentialUnitLabelFigure.setMaximumSize(new Dimension(
+ getMapMode().DPtoLP(10000), getMapMode().DPtoLP(50)));
+
+ this.add(fFigureSequentialUnitLabelFigure);
+
+ fSequentialUnitHelperUnitsCompartmentFigure = new RectangleFigure();
+ fSequentialUnitHelperUnitsCompartmentFigure.setOutline(false);
+
+ this.add(fSequentialUnitHelperUnitsCompartmentFigure);
+
+ fSequentialUnitRefactoringUnitsCompartmentFigure = new RectangleFigure();
+ fSequentialUnitRefactoringUnitsCompartmentFigure.setOutline(false);
+
+ this.add(fSequentialUnitRefactoringUnitsCompartmentFigure);
+
+ }
+
+ /**
+ * @generated
+ */
+ public WrappingLabel getFigureSequentialUnitLabelFigure() {
+ return fFigureSequentialUnitLabelFigure;
+ }
+
+ /**
+ * @generated
+ */
+ public RectangleFigure getSequentialUnitHelperUnitsCompartmentFigure() {
+ return fSequentialUnitHelperUnitsCompartmentFigure;
+ }
+
+ /**
+ * @generated
+ */
+ public RectangleFigure getSequentialUnitRefactoringUnitsCompartmentFigure() {
+ return fSequentialUnitRefactoringUnitsCompartmentFigure;
+ }
+
+ }
+
+}
diff --git a/org.eclipse.emf.refactor.comrel.diagram/src/comrel/diagram/edit/parts/SequentialUnit6EditPart.java b/org.eclipse.emf.refactor.comrel.diagram/src/comrel/diagram/edit/parts/SequentialUnit6EditPart.java
new file mode 100644
index 0000000..c4a7bd2
--- /dev/null
+++ b/org.eclipse.emf.refactor.comrel.diagram/src/comrel/diagram/edit/parts/SequentialUnit6EditPart.java
@@ -0,0 +1,439 @@
+/*
+ *
+ */
+package comrel.diagram.edit.parts;
+
+import org.eclipse.draw2d.IFigure;
+import org.eclipse.draw2d.MarginBorder;
+import org.eclipse.draw2d.PositionConstants;
+import org.eclipse.draw2d.RectangleFigure;
+import org.eclipse.draw2d.RoundedRectangle;
+import org.eclipse.draw2d.Shape;
+import org.eclipse.draw2d.StackLayout;
+import org.eclipse.draw2d.geometry.Dimension;
+import org.eclipse.gef.EditPart;
+import org.eclipse.gef.EditPolicy;
+import org.eclipse.gef.Request;
+import org.eclipse.gef.commands.Command;
+import org.eclipse.gef.editpolicies.LayoutEditPolicy;
+import org.eclipse.gef.editpolicies.NonResizableEditPolicy;
+import org.eclipse.gef.requests.CreateRequest;
+import org.eclipse.gmf.runtime.diagram.ui.editparts.AbstractBorderedShapeEditPart;
+import org.eclipse.gmf.runtime.diagram.ui.editparts.IBorderItemEditPart;
+import org.eclipse.gmf.runtime.diagram.ui.editparts.IGraphicalEditPart;
+import org.eclipse.gmf.runtime.diagram.ui.editpolicies.BorderItemSelectionEditPolicy;
+import org.eclipse.gmf.runtime.diagram.ui.editpolicies.CreationEditPolicy;
+import org.eclipse.gmf.runtime.diagram.ui.editpolicies.DragDropEditPolicy;
+import org.eclipse.gmf.runtime.diagram.ui.editpolicies.EditPolicyRoles;
+import org.eclipse.gmf.runtime.diagram.ui.figures.BorderItemLocator;
+import org.eclipse.gmf.runtime.draw2d.ui.figures.ConstrainedToolbarLayout;
+import org.eclipse.gmf.runtime.draw2d.ui.figures.WrappingLabel;
+import org.eclipse.gmf.runtime.gef.ui.figures.DefaultSizeNodeFigure;
+import org.eclipse.gmf.runtime.gef.ui.figures.NodeFigure;
+import org.eclipse.gmf.runtime.notation.View;
+import org.eclipse.swt.graphics.Color;
+
+import comrel.RefactoringUnit;
+import comrel.diagram.edit.parts.SequentialUnit2EditPart.SequentialUnitFigure;
+import comrel.diagram.edit.parts.custom.Labels;
+import comrel.diagram.edit.policies.OpenDiagramEditPolicy;
+import comrel.diagram.edit.policies.SequentialUnit6CanonicalEditPolicy;
+import comrel.diagram.edit.policies.SequentialUnit6ItemSemanticEditPolicy;
+import comrel.diagram.part.ComrelVisualIDRegistry;
+
+/**
+ * @generated
+ */
+public class SequentialUnit6EditPart extends AbstractBorderedShapeEditPart {
+
+ /**
+ * @generated
+ */
+ public static final int VISUAL_ID = 3070;
+
+ /**
+ * @generated
+ */
+ protected IFigure contentPane;
+
+ /**
+ * @generated
+ */
+ protected IFigure primaryShape;
+
+ /**
+ * @generated
+ */
+ public SequentialUnit6EditPart(View view) {
+ super(view);
+ }
+
+ /**
+ * @generated
+ */
+ protected void createDefaultEditPolicies() {
+ installEditPolicy(EditPolicyRoles.CREATION_ROLE,
+ new CreationEditPolicy());
+ super.createDefaultEditPolicies();
+ installEditPolicy(EditPolicyRoles.SEMANTIC_ROLE,
+ new SequentialUnit6ItemSemanticEditPolicy());
+ installEditPolicy(EditPolicyRoles.DRAG_DROP_ROLE,
+ new DragDropEditPolicy());
+ installEditPolicy(EditPolicyRoles.CANONICAL_ROLE,
+ new SequentialUnit6CanonicalEditPolicy());
+ installEditPolicy(EditPolicy.LAYOUT_ROLE, createLayoutEditPolicy());
+ installEditPolicy(EditPolicyRoles.OPEN_ROLE,
+ new OpenDiagramEditPolicy());
+ // XXX need an SCR to runtime to have another abstract superclass that would let children add reasonable editpolicies
+ // removeEditPolicy(org.eclipse.gmf.runtime.diagram.ui.editpolicies.EditPolicyRoles.CONNECTION_HANDLES_ROLE);
+ }
+
+ /**
+ * @generated
+ */
+ protected LayoutEditPolicy createLayoutEditPolicy() {
+ org.eclipse.gmf.runtime.diagram.ui.editpolicies.LayoutEditPolicy lep = new org.eclipse.gmf.runtime.diagram.ui.editpolicies.LayoutEditPolicy() {
+
+ protected EditPolicy createChildEditPolicy(EditPart child) {
+ View childView = (View) child.getModel();
+ switch (ComrelVisualIDRegistry.getVisualID(childView)) {
+ case SingleInputPort7EditPart.VISUAL_ID:
+ case MultiInputPort8EditPart.VISUAL_ID:
+ return new BorderItemSelectionEditPolicy();
+ }
+ EditPolicy result = child
+ .getEditPolicy(EditPolicy.PRIMARY_DRAG_ROLE);
+ if (result == null) {
+ result = new NonResizableEditPolicy();
+ }
+ return result;
+ }
+
+ protected Command getMoveChildrenCommand(Request request) {
+ return null;
+ }
+
+ protected Command getCreateCommand(CreateRequest request) {
+ return null;
+ }
+ };
+ return lep;
+ }
+
+ /**
+ * @generated NOT
+ */
+ protected IFigure createNodeShape() {
+ SequentialUnitFigure figure = new SequentialUnitFigure();
+ // RefactoringUnit unit = (RefactoringUnit) this.resolveSemanticElement();
+ // unit.setFigure(figure);
+ RectangleFigure compHelper = (RectangleFigure) figure.getChildren()
+ .get(1);
+ RectangleFigure compRef = (RectangleFigure) figure.getChildren().get(2);
+ Labels.setLabels(compHelper, compRef, false);
+ return primaryShape = figure;
+ // return primaryShape = new SequentialUnitFigure();
+ }
+
+ /**
+ * @generated
+ */
+ public SequentialUnitFigure getPrimaryShape() {
+ return (SequentialUnitFigure) primaryShape;
+ }
+
+ /**
+ * @generated NOT
+ */
+ protected boolean addFixedChild(EditPart childEditPart) {
+ if (childEditPart instanceof SequentialUnitNameTypeLblStrict6EditPart) {
+ ((SequentialUnitNameTypeLblStrict6EditPart) childEditPart)
+ .setLabel(getPrimaryShape()
+ .getFigureSequentialUnitLabelFigure());
+ return true;
+ }
+ if (childEditPart instanceof SequentialUnitSequentialUnitHelperUnitsCompartment5EditPart) {
+ IFigure pane = getPrimaryShape()
+ .getSequentialUnitHelperUnitsCompartmentFigure();
+ setupContentPane(pane); // FIXME each comparment should handle his content pane in his own way
+ pane.add(((SequentialUnitSequentialUnitHelperUnitsCompartment5EditPart) childEditPart)
+ .getFigure());
+ return true;
+ }
+ if (childEditPart instanceof SequentialUnitSequentialUnitRefactoringUnitsCompartment5EditPart) {
+ IFigure pane = getPrimaryShape()
+ .getSequentialUnitRefactoringUnitsCompartmentFigure();
+ setupContentPane(pane); // FIXME each comparment should handle his content pane in his own way
+ pane.add(((SequentialUnitSequentialUnitRefactoringUnitsCompartment5EditPart) childEditPart)
+ .getFigure());
+ return true;
+ }
+ if (childEditPart instanceof SingleInputPort7EditPart) {
+ BorderItemLocator locator = new BorderItemLocator(getMainFigure(),
+ PositionConstants.NORTH);
+ locator.setCurrentSideOfParent(PositionConstants.NORTH); // Position des Ports
+ locator.setPreferredSideOfParent(PositionConstants.NORTH); // Position des Ports
+ getBorderedFigure().getBorderItemContainer().add(
+ ((SingleInputPort7EditPart) childEditPart).getFigure(),
+ locator);
+ return true;
+ }
+ if (childEditPart instanceof MultiInputPort8EditPart) {
+ BorderItemLocator locator = new BorderItemLocator(getMainFigure(),
+ PositionConstants.NORTH);
+ locator.setCurrentSideOfParent(PositionConstants.NORTH); // Position des Ports
+ locator.setPreferredSideOfParent(PositionConstants.NORTH); // Position des Ports
+ getBorderedFigure().getBorderItemContainer().add(
+ ((MultiInputPort8EditPart) childEditPart).getFigure(),
+ locator);
+ return true;
+ }
+ return false;
+ }
+
+ /**
+ * @generated
+ */
+ protected boolean removeFixedChild(EditPart childEditPart) {
+ if (childEditPart instanceof SequentialUnitNameTypeLblStrict6EditPart) {
+ return true;
+ }
+ if (childEditPart instanceof SequentialUnitSequentialUnitHelperUnitsCompartment5EditPart) {
+ IFigure pane = getPrimaryShape()
+ .getSequentialUnitHelperUnitsCompartmentFigure();
+ setupContentPane(pane); // FIXME each comparment should handle his content pane in his own way
+ pane.remove(((SequentialUnitSequentialUnitHelperUnitsCompartment5EditPart) childEditPart)
+ .getFigure());
+ return true;
+ }
+ if (childEditPart instanceof SequentialUnitSequentialUnitRefactoringUnitsCompartment5EditPart) {
+ IFigure pane = getPrimaryShape()
+ .getSequentialUnitRefactoringUnitsCompartmentFigure();
+ setupContentPane(pane); // FIXME each comparment should handle his content pane in his own way
+ pane.remove(((SequentialUnitSequentialUnitRefactoringUnitsCompartment5EditPart) childEditPart)
+ .getFigure());
+ return true;
+ }
+ if (childEditPart instanceof SingleInputPort7EditPart) {
+ getBorderedFigure().getBorderItemContainer().remove(
+ ((SingleInputPort7EditPart) childEditPart).getFigure());
+ return true;
+ }
+ if (childEditPart instanceof MultiInputPort8EditPart) {
+ getBorderedFigure().getBorderItemContainer().remove(
+ ((MultiInputPort8EditPart) childEditPart).getFigure());
+ return true;
+ }
+ return false;
+ }
+
+ /**
+ * @generated
+ */
+ protected void addChildVisual(EditPart childEditPart, int index) {
+ if (addFixedChild(childEditPart)) {
+ return;
+ }
+ super.addChildVisual(childEditPart, -1);
+ }
+
+ /**
+ * @generated
+ */
+ protected void removeChildVisual(EditPart childEditPart) {
+ if (removeFixedChild(childEditPart)) {
+ return;
+ }
+ super.removeChildVisual(childEditPart);
+ }
+
+ /**
+ * @generated
+ */
+ protected IFigure getContentPaneFor(IGraphicalEditPart editPart) {
+ if (editPart instanceof SequentialUnitSequentialUnitHelperUnitsCompartment5EditPart) {
+ return getPrimaryShape()
+ .getSequentialUnitHelperUnitsCompartmentFigure();
+ }
+ if (editPart instanceof SequentialUnitSequentialUnitRefactoringUnitsCompartment5EditPart) {
+ return getPrimaryShape()
+ .getSequentialUnitRefactoringUnitsCompartmentFigure();
+ }
+ if (editPart instanceof IBorderItemEditPart) {
+ return getBorderedFigure().getBorderItemContainer();
+ }
+ return getContentPane();
+ }
+
+ /**
+ * @generated
+ */
+ protected NodeFigure createNodePlate() {
+ DefaultSizeNodeFigure result = new DefaultSizeNodeFigure(40, 40);
+ return result;
+ }
+
+ /**
+ * Creates figure for this edit part.
+ *
+ * Body of this method does not depend on settings in generation model
+ * so you may safely remove <i>generated</i> tag and modify it.
+ *
+ * @generated
+ */
+ protected NodeFigure createMainFigure() {
+ NodeFigure figure = createNodePlate();
+ figure.setLayoutManager(new StackLayout());
+ IFigure shape = createNodeShape();
+ figure.add(shape);
+ contentPane = setupContentPane(shape);
+ return figure;
+ }
+
+ /**
+ * Default implementation treats passed figure as content pane.
+ * Respects layout one may have set for generated figure.
+ * @param nodeShape instance of generated figure class
+ * @generated
+ */
+ protected IFigure setupContentPane(IFigure nodeShape) {
+ if (nodeShape.getLayoutManager() == null) {
+ ConstrainedToolbarLayout layout = new ConstrainedToolbarLayout();
+ layout.setSpacing(5);
+ nodeShape.setLayoutManager(layout);
+ }
+ return nodeShape; // use nodeShape itself as contentPane
+ }
+
+ /**
+ * @generated
+ */
+ public IFigure getContentPane() {
+ if (contentPane != null) {
+ return contentPane;
+ }
+ return super.getContentPane();
+ }
+
+ /**
+ * @generated
+ */
+ protected void setForegroundColor(Color color) {
+ if (primaryShape != null) {
+ primaryShape.setForegroundColor(color);
+ }
+ }
+
+ /**
+ * @generated
+ */
+ protected void setBackgroundColor(Color color) {
+ if (primaryShape != null) {
+ primaryShape.setBackgroundColor(color);
+ }
+ }
+
+ /**
+ * @generated
+ */
+ protected void setLineWidth(int width) {
+ if (primaryShape instanceof Shape) {
+ ((Shape) primaryShape).setLineWidth(width);
+ }
+ }
+
+ /**
+ * @generated
+ */
+ protected void setLineType(int style) {
+ if (primaryShape instanceof Shape) {
+ ((Shape) primaryShape).setLineStyle(style);
+ }
+ }
+
+ /**
+ * @generated
+ */
+ public EditPart getPrimaryChildEditPart() {
+ return getChildBySemanticHint(ComrelVisualIDRegistry
+ .getType(SequentialUnitNameTypeLblStrict6EditPart.VISUAL_ID));
+ }
+
+ /**
+ * @generated
+ */
+ public class SequentialUnitFigure extends RoundedRectangle {
+
+ /**
+ * @generated
+ */
+ private WrappingLabel fFigureSequentialUnitLabelFigure;
+ /**
+ * @generated
+ */
+ private RectangleFigure fSequentialUnitHelperUnitsCompartmentFigure;
+ /**
+ * @generated
+ */
+ private RectangleFigure fSequentialUnitRefactoringUnitsCompartmentFigure;
+
+ /**
+ * @generated
+ */
+ public SequentialUnitFigure() {
+ this.setCornerDimensions(new Dimension(getMapMode().DPtoLP(8),
+ getMapMode().DPtoLP(8)));
+ this.setBorder(new MarginBorder(getMapMode().DPtoLP(5),
+ getMapMode().DPtoLP(5), getMapMode().DPtoLP(5),
+ getMapMode().DPtoLP(5)));
+ createContents();
+ }
+
+ /**
+ * @generated
+ */
+ private void createContents() {
+
+ fFigureSequentialUnitLabelFigure = new WrappingLabel();
+ fFigureSequentialUnitLabelFigure.setText("SequentialUnit");
+ fFigureSequentialUnitLabelFigure.setMaximumSize(new Dimension(
+ getMapMode().DPtoLP(10000), getMapMode().DPtoLP(50)));
+
+ this.add(fFigureSequentialUnitLabelFigure);
+
+ fSequentialUnitHelperUnitsCompartmentFigure = new RectangleFigure();
+ fSequentialUnitHelperUnitsCompartmentFigure.setOutline(false);
+
+ this.add(fSequentialUnitHelperUnitsCompartmentFigure);
+
+ fSequentialUnitRefactoringUnitsCompartmentFigure = new RectangleFigure();
+ fSequentialUnitRefactoringUnitsCompartmentFigure.setOutline(false);
+
+ this.add(fSequentialUnitRefactoringUnitsCompartmentFigure);
+
+ }
+
+ /**
+ * @generated
+ */
+ public WrappingLabel getFigureSequentialUnitLabelFigure() {
+ return fFigureSequentialUnitLabelFigure;
+ }
+
+ /**
+ * @generated
+ */
+ public RectangleFigure getSequentialUnitHelperUnitsCompartmentFigure() {
+ return fSequentialUnitHelperUnitsCompartmentFigure;
+ }
+
+ /**
+ * @generated
+ */
+ public RectangleFigure getSequentialUnitRefactoringUnitsCompartmentFigure() {
+ return fSequentialUnitRefactoringUnitsCompartmentFigure;
+ }
+
+ }
+
+}
diff --git a/org.eclipse.emf.refactor.comrel.diagram/src/comrel/diagram/edit/parts/SequentialUnit7EditPart.java b/org.eclipse.emf.refactor.comrel.diagram/src/comrel/diagram/edit/parts/SequentialUnit7EditPart.java
new file mode 100644
index 0000000..4b046f0
--- /dev/null
+++ b/org.eclipse.emf.refactor.comrel.diagram/src/comrel/diagram/edit/parts/SequentialUnit7EditPart.java
@@ -0,0 +1,438 @@
+/*
+ *
+ */
+package comrel.diagram.edit.parts;
+
+import org.eclipse.draw2d.IFigure;
+import org.eclipse.draw2d.MarginBorder;
+import org.eclipse.draw2d.PositionConstants;
+import org.eclipse.draw2d.RectangleFigure;
+import org.eclipse.draw2d.RoundedRectangle;
+import org.eclipse.draw2d.Shape;
+import org.eclipse.draw2d.StackLayout;
+import org.eclipse.draw2d.geometry.Dimension;
+import org.eclipse.gef.EditPart;
+import org.eclipse.gef.EditPolicy;
+import org.eclipse.gef.Request;
+import org.eclipse.gef.commands.Command;
+import org.eclipse.gef.editpolicies.LayoutEditPolicy;
+import org.eclipse.gef.editpolicies.NonResizableEditPolicy;
+import org.eclipse.gef.requests.CreateRequest;
+import org.eclipse.gmf.runtime.diagram.ui.editparts.AbstractBorderedShapeEditPart;
+import org.eclipse.gmf.runtime.diagram.ui.editparts.IBorderItemEditPart;
+import org.eclipse.gmf.runtime.diagram.ui.editparts.IGraphicalEditPart;
+import org.eclipse.gmf.runtime.diagram.ui.editpolicies.BorderItemSelectionEditPolicy;
+import org.eclipse.gmf.runtime.diagram.ui.editpolicies.CreationEditPolicy;
+import org.eclipse.gmf.runtime.diagram.ui.editpolicies.DragDropEditPolicy;
+import org.eclipse.gmf.runtime.diagram.ui.editpolicies.EditPolicyRoles;
+import org.eclipse.gmf.runtime.diagram.ui.figures.BorderItemLocator;
+import org.eclipse.gmf.runtime.draw2d.ui.figures.ConstrainedToolbarLayout;
+import org.eclipse.gmf.runtime.draw2d.ui.figures.WrappingLabel;
+import org.eclipse.gmf.runtime.gef.ui.figures.DefaultSizeNodeFigure;
+import org.eclipse.gmf.runtime.gef.ui.figures.NodeFigure;
+import org.eclipse.gmf.runtime.notation.View;
+import org.eclipse.swt.graphics.Color;
+
+import comrel.RefactoringUnit;
+import comrel.diagram.edit.parts.custom.Labels;
+import comrel.diagram.edit.policies.OpenDiagramEditPolicy;
+import comrel.diagram.edit.policies.SequentialUnit7CanonicalEditPolicy;
+import comrel.diagram.edit.policies.SequentialUnit7ItemSemanticEditPolicy;
+import comrel.diagram.part.ComrelVisualIDRegistry;
+
+/**
+ * @generated
+ */
+public class SequentialUnit7EditPart extends AbstractBorderedShapeEditPart {
+
+ /**
+ * @generated
+ */
+ public static final int VISUAL_ID = 3073;
+
+ /**
+ * @generated
+ */
+ protected IFigure contentPane;
+
+ /**
+ * @generated
+ */
+ protected IFigure primaryShape;
+
+ /**
+ * @generated
+ */
+ public SequentialUnit7EditPart(View view) {
+ super(view);
+ }
+
+ /**
+ * @generated
+ */
+ protected void createDefaultEditPolicies() {
+ installEditPolicy(EditPolicyRoles.CREATION_ROLE,
+ new CreationEditPolicy());
+ super.createDefaultEditPolicies();
+ installEditPolicy(EditPolicyRoles.SEMANTIC_ROLE,
+ new SequentialUnit7ItemSemanticEditPolicy());
+ installEditPolicy(EditPolicyRoles.DRAG_DROP_ROLE,
+ new DragDropEditPolicy());
+ installEditPolicy(EditPolicyRoles.CANONICAL_ROLE,
+ new SequentialUnit7CanonicalEditPolicy());
+ installEditPolicy(EditPolicy.LAYOUT_ROLE, createLayoutEditPolicy());
+ installEditPolicy(EditPolicyRoles.OPEN_ROLE,
+ new OpenDiagramEditPolicy());
+ // XXX need an SCR to runtime to have another abstract superclass that would let children add reasonable editpolicies
+ // removeEditPolicy(org.eclipse.gmf.runtime.diagram.ui.editpolicies.EditPolicyRoles.CONNECTION_HANDLES_ROLE);
+ }
+
+ /**
+ * @generated
+ */
+ protected LayoutEditPolicy createLayoutEditPolicy() {
+ org.eclipse.gmf.runtime.diagram.ui.editpolicies.LayoutEditPolicy lep = new org.eclipse.gmf.runtime.diagram.ui.editpolicies.LayoutEditPolicy() {
+
+ protected EditPolicy createChildEditPolicy(EditPart child) {
+ View childView = (View) child.getModel();
+ switch (ComrelVisualIDRegistry.getVisualID(childView)) {
+ case SingleInputPort7EditPart.VISUAL_ID:
+ case MultiInputPort8EditPart.VISUAL_ID:
+ return new BorderItemSelectionEditPolicy();
+ }
+ EditPolicy result = child
+ .getEditPolicy(EditPolicy.PRIMARY_DRAG_ROLE);
+ if (result == null) {
+ result = new NonResizableEditPolicy();
+ }
+ return result;
+ }
+
+ protected Command getMoveChildrenCommand(Request request) {
+ return null;
+ }
+
+ protected Command getCreateCommand(CreateRequest request) {
+ return null;
+ }
+ };
+ return lep;
+ }
+
+ /**
+ * @generated NOT
+ */
+ protected IFigure createNodeShape() {
+ SequentialUnitFigure figure = new SequentialUnitFigure();
+ RefactoringUnit unit = (RefactoringUnit) this.resolveSemanticElement();
+ unit.setFigure(figure);
+ RectangleFigure compHelper = (RectangleFigure) figure.getChildren()
+ .get(1);
+ RectangleFigure compRef = (RectangleFigure) figure.getChildren().get(2);
+ Labels.setLabels(compHelper, compRef, false);
+ return primaryShape = figure;
+ // return primaryShape = new SequentialUnitFigure();
+ }
+
+ /**
+ * @generated
+ */
+ public SequentialUnitFigure getPrimaryShape() {
+ return (SequentialUnitFigure) primaryShape;
+ }
+
+ /**
+ * @generated NOT
+ */
+ protected boolean addFixedChild(EditPart childEditPart) {
+ if (childEditPart instanceof SequentialUnitNameTypeLblStrict7EditPart) {
+ ((SequentialUnitNameTypeLblStrict7EditPart) childEditPart)
+ .setLabel(getPrimaryShape()
+ .getFigureSequentialUnitLabelFigure());
+ return true;
+ }
+ if (childEditPart instanceof SequentialUnitSequentialUnitHelperUnitsCompartment6EditPart) {
+ IFigure pane = getPrimaryShape()
+ .getSequentialUnitHelperUnitsCompartmentFigure();
+ setupContentPane(pane); // FIXME each comparment should handle his content pane in his own way
+ pane.add(((SequentialUnitSequentialUnitHelperUnitsCompartment6EditPart) childEditPart)
+ .getFigure());
+ return true;
+ }
+ if (childEditPart instanceof SequentialUnitSequentialUnitRefactoringUnitsCompartment6EditPart) {
+ IFigure pane = getPrimaryShape()
+ .getSequentialUnitRefactoringUnitsCompartmentFigure();
+ setupContentPane(pane); // FIXME each comparment should handle his content pane in his own way
+ pane.add(((SequentialUnitSequentialUnitRefactoringUnitsCompartment6EditPart) childEditPart)
+ .getFigure());
+ return true;
+ }
+ if (childEditPart instanceof SingleInputPort7EditPart) {
+ BorderItemLocator locator = new BorderItemLocator(getMainFigure(),
+ PositionConstants.NORTH);
+ locator.setCurrentSideOfParent(PositionConstants.NORTH); // Position des Ports
+ locator.setPreferredSideOfParent(PositionConstants.NORTH); // Position des Ports
+ getBorderedFigure().getBorderItemContainer().add(
+ ((SingleInputPort7EditPart) childEditPart).getFigure(),
+ locator);
+ return true;
+ }
+ if (childEditPart instanceof MultiInputPort8EditPart) {
+ BorderItemLocator locator = new BorderItemLocator(getMainFigure(),
+ PositionConstants.NORTH);
+ locator.setCurrentSideOfParent(PositionConstants.NORTH); // Position des Ports
+ locator.setPreferredSideOfParent(PositionConstants.NORTH); // Position des Ports
+ getBorderedFigure().getBorderItemContainer().add(
+ ((MultiInputPort8EditPart) childEditPart).getFigure(),
+ locator);
+ return true;
+ }
+ return false;
+ }
+
+ /**
+ * @generated
+ */
+ protected boolean removeFixedChild(EditPart childEditPart) {
+ if (childEditPart instanceof SequentialUnitNameTypeLblStrict7EditPart) {
+ return true;
+ }
+ if (childEditPart instanceof SequentialUnitSequentialUnitHelperUnitsCompartment6EditPart) {
+ IFigure pane = getPrimaryShape()
+ .getSequentialUnitHelperUnitsCompartmentFigure();
+ setupContentPane(pane); // FIXME each comparment should handle his content pane in his own way
+ pane.remove(((SequentialUnitSequentialUnitHelperUnitsCompartment6EditPart) childEditPart)
+ .getFigure());
+ return true;
+ }
+ if (childEditPart instanceof SequentialUnitSequentialUnitRefactoringUnitsCompartment6EditPart) {
+ IFigure pane = getPrimaryShape()
+ .getSequentialUnitRefactoringUnitsCompartmentFigure();
+ setupContentPane(pane); // FIXME each comparment should handle his content pane in his own way
+ pane.remove(((SequentialUnitSequentialUnitRefactoringUnitsCompartment6EditPart) childEditPart)
+ .getFigure());
+ return true;
+ }
+ if (childEditPart instanceof SingleInputPort7EditPart) {
+ getBorderedFigure().getBorderItemContainer().remove(
+ ((SingleInputPort7EditPart) childEditPart).getFigure());
+ return true;
+ }
+ if (childEditPart instanceof MultiInputPort8EditPart) {
+ getBorderedFigure().getBorderItemContainer().remove(
+ ((MultiInputPort8EditPart) childEditPart).getFigure());
+ return true;
+ }
+ return false;
+ }
+
+ /**
+ * @generated
+ */
+ protected void addChildVisual(EditPart childEditPart, int index) {
+ if (addFixedChild(childEditPart)) {
+ return;
+ }
+ super.addChildVisual(childEditPart, -1);
+ }
+
+ /**
+ * @generated
+ */
+ protected void removeChildVisual(EditPart childEditPart) {
+ if (removeFixedChild(childEditPart)) {
+ return;
+ }
+ super.removeChildVisual(childEditPart);
+ }
+
+ /**
+ * @generated
+ */
+ protected IFigure getContentPaneFor(IGraphicalEditPart editPart) {
+ if (editPart instanceof SequentialUnitSequentialUnitHelperUnitsCompartment6EditPart) {
+ return getPrimaryShape()
+ .getSequentialUnitHelperUnitsCompartmentFigure();
+ }
+ if (editPart instanceof SequentialUnitSequentialUnitRefactoringUnitsCompartment6EditPart) {
+ return getPrimaryShape()
+ .getSequentialUnitRefactoringUnitsCompartmentFigure();
+ }
+ if (editPart instanceof IBorderItemEditPart) {
+ return getBorderedFigure().getBorderItemContainer();
+ }
+ return getContentPane();
+ }
+
+ /**
+ * @generated
+ */
+ protected NodeFigure createNodePlate() {
+ DefaultSizeNodeFigure result = new DefaultSizeNodeFigure(40, 40);
+ return result;
+ }
+
+ /**
+ * Creates figure for this edit part.
+ *
+ * Body of this method does not depend on settings in generation model
+ * so you may safely remove <i>generated</i> tag and modify it.
+ *
+ * @generated
+ */
+ protected NodeFigure createMainFigure() {
+ NodeFigure figure = createNodePlate();
+ figure.setLayoutManager(new StackLayout());
+ IFigure shape = createNodeShape();
+ figure.add(shape);
+ contentPane = setupContentPane(shape);
+ return figure;
+ }
+
+ /**
+ * Default implementation treats passed figure as content pane.
+ * Respects layout one may have set for generated figure.
+ * @param nodeShape instance of generated figure class
+ * @generated
+ */
+ protected IFigure setupContentPane(IFigure nodeShape) {
+ if (nodeShape.getLayoutManager() == null) {
+ ConstrainedToolbarLayout layout = new ConstrainedToolbarLayout();
+ layout.setSpacing(5);
+ nodeShape.setLayoutManager(layout);
+ }
+ return nodeShape; // use nodeShape itself as contentPane
+ }
+
+ /**
+ * @generated
+ */
+ public IFigure getContentPane() {
+ if (contentPane != null) {
+ return contentPane;
+ }
+ return super.getContentPane();
+ }
+
+ /**
+ * @generated
+ */
+ protected void setForegroundColor(Color color) {
+ if (primaryShape != null) {
+ primaryShape.setForegroundColor(color);
+ }
+ }
+
+ /**
+ * @generated
+ */
+ protected void setBackgroundColor(Color color) {
+ if (primaryShape != null) {
+ primaryShape.setBackgroundColor(color);
+ }
+ }
+
+ /**
+ * @generated
+ */
+ protected void setLineWidth(int width) {
+ if (primaryShape instanceof Shape) {
+ ((Shape) primaryShape).setLineWidth(width);
+ }
+ }
+
+ /**
+ * @generated
+ */
+ protected void setLineType(int style) {
+ if (primaryShape instanceof Shape) {
+ ((Shape) primaryShape).setLineStyle(style);
+ }
+ }
+
+ /**
+ * @generated
+ */
+ public EditPart getPrimaryChildEditPart() {
+ return getChildBySemanticHint(ComrelVisualIDRegistry
+ .getType(SequentialUnitNameTypeLblStrict7EditPart.VISUAL_ID));
+ }
+
+ /**
+ * @generated
+ */
+ public class SequentialUnitFigure extends RoundedRectangle {
+
+ /**
+ * @generated
+ */
+ private WrappingLabel fFigureSequentialUnitLabelFigure;
+ /**
+ * @generated
+ */
+ private RectangleFigure fSequentialUnitHelperUnitsCompartmentFigure;
+ /**
+ * @generated
+ */
+ private RectangleFigure fSequentialUnitRefactoringUnitsCompartmentFigure;
+
+ /**
+ * @generated
+ */
+ public SequentialUnitFigure() {
+ this.setCornerDimensions(new Dimension(getMapMode().DPtoLP(8),
+ getMapMode().DPtoLP(8)));
+ this.setBorder(new MarginBorder(getMapMode().DPtoLP(5),
+ getMapMode().DPtoLP(5), getMapMode().DPtoLP(5),
+ getMapMode().DPtoLP(5)));
+ createContents();
+ }
+
+ /**
+ * @generated
+ */
+ private void createContents() {
+
+ fFigureSequentialUnitLabelFigure = new WrappingLabel();
+ fFigureSequentialUnitLabelFigure.setText("SequentialUnit");
+ fFigureSequentialUnitLabelFigure.setMaximumSize(new Dimension(
+ getMapMode().DPtoLP(10000), getMapMode().DPtoLP(50)));
+
+ this.add(fFigureSequentialUnitLabelFigure);
+
+ fSequentialUnitHelperUnitsCompartmentFigure = new RectangleFigure();
+ fSequentialUnitHelperUnitsCompartmentFigure.setOutline(false);
+
+ this.add(fSequentialUnitHelperUnitsCompartmentFigure);
+
+ fSequentialUnitRefactoringUnitsCompartmentFigure = new RectangleFigure();
+ fSequentialUnitRefactoringUnitsCompartmentFigure.setOutline(false);
+
+ this.add(fSequentialUnitRefactoringUnitsCompartmentFigure);
+
+ }
+
+ /**
+ * @generated
+ */
+ public WrappingLabel getFigureSequentialUnitLabelFigure() {
+ return fFigureSequentialUnitLabelFigure;
+ }
+
+ /**
+ * @generated
+ */
+ public RectangleFigure getSequentialUnitHelperUnitsCompartmentFigure() {
+ return fSequentialUnitHelperUnitsCompartmentFigure;
+ }
+
+ /**
+ * @generated
+ */
+ public RectangleFigure getSequentialUnitRefactoringUnitsCompartmentFigure() {
+ return fSequentialUnitRefactoringUnitsCompartmentFigure;
+ }
+
+ }
+
+}
diff --git a/org.eclipse.emf.refactor.comrel.diagram/src/comrel/diagram/edit/parts/SequentialUnitEditPart.java b/org.eclipse.emf.refactor.comrel.diagram/src/comrel/diagram/edit/parts/SequentialUnitEditPart.java
new file mode 100644
index 0000000..25b0780
--- /dev/null
+++ b/org.eclipse.emf.refactor.comrel.diagram/src/comrel/diagram/edit/parts/SequentialUnitEditPart.java
@@ -0,0 +1,453 @@
+/*
+ *
+ */
+package comrel.diagram.edit.parts;
+
+import org.eclipse.draw2d.IFigure;
+import org.eclipse.draw2d.MarginBorder;
+import org.eclipse.draw2d.PositionConstants;
+import org.eclipse.draw2d.RectangleFigure;
+import org.eclipse.draw2d.RoundedRectangle;
+import org.eclipse.draw2d.Shape;
+import org.eclipse.draw2d.StackLayout;
+import org.eclipse.draw2d.geometry.Dimension;
+import org.eclipse.emf.common.notify.Notification;
+import org.eclipse.emf.ecore.EcorePackage;
+import org.eclipse.gef.EditPart;
+import org.eclipse.gef.EditPolicy;
+import org.eclipse.gef.Request;
+import org.eclipse.gef.commands.Command;
+import org.eclipse.gef.editpolicies.LayoutEditPolicy;
+import org.eclipse.gef.editpolicies.NonResizableEditPolicy;
+import org.eclipse.gef.requests.CreateRequest;
+import org.eclipse.gmf.runtime.diagram.ui.editparts.AbstractBorderedShapeEditPart;
+import org.eclipse.gmf.runtime.diagram.ui.editparts.IBorderItemEditPart;
+import org.eclipse.gmf.runtime.diagram.ui.editparts.IGraphicalEditPart;
+import org.eclipse.gmf.runtime.diagram.ui.editpolicies.BorderItemSelectionEditPolicy;
+import org.eclipse.gmf.runtime.diagram.ui.editpolicies.CreationEditPolicy;
+import org.eclipse.gmf.runtime.diagram.ui.editpolicies.DragDropEditPolicy;
+import org.eclipse.gmf.runtime.diagram.ui.editpolicies.EditPolicyRoles;
+import org.eclipse.gmf.runtime.diagram.ui.figures.BorderItemLocator;
+import org.eclipse.gmf.runtime.draw2d.ui.figures.ConstrainedToolbarLayout;
+import org.eclipse.gmf.runtime.draw2d.ui.figures.WrappingLabel;
+import org.eclipse.gmf.runtime.gef.ui.figures.DefaultSizeNodeFigure;
+import org.eclipse.gmf.runtime.gef.ui.figures.NodeFigure;
+import org.eclipse.gmf.runtime.notation.View;
+import org.eclipse.swt.graphics.Color;
+
+import comrel.RefactoringUnit;
+import comrel.diagram.edit.parts.custom.Labels;
+import comrel.diagram.edit.policies.OpenDiagramEditPolicy;
+import comrel.diagram.edit.policies.SequentialUnitCanonicalEditPolicy;
+import comrel.diagram.edit.policies.SequentialUnitItemSemanticEditPolicy;
+import comrel.diagram.part.ComrelVisualIDRegistry;
+
+/**
+ * @generated
+ */
+public class SequentialUnitEditPart extends AbstractBorderedShapeEditPart {
+
+ /**
+ * @generated
+ */
+ public static final int VISUAL_ID = 2005;
+
+ /**
+ * @generated
+ */
+ protected IFigure contentPane;
+
+ /**
+ * @generated
+ */
+ protected IFigure primaryShape;
+
+ /**
+ * @generated
+ */
+ public SequentialUnitEditPart(View view) {
+ super(view);
+ }
+
+ /**
+ * @generated
+ */
+ protected void createDefaultEditPolicies() {
+ installEditPolicy(EditPolicyRoles.CREATION_ROLE,
+ new CreationEditPolicy());
+ super.createDefaultEditPolicies();
+ installEditPolicy(EditPolicyRoles.SEMANTIC_ROLE,
+ new SequentialUnitItemSemanticEditPolicy());
+ installEditPolicy(EditPolicyRoles.DRAG_DROP_ROLE,
+ new DragDropEditPolicy());
+ installEditPolicy(EditPolicyRoles.CANONICAL_ROLE,
+ new SequentialUnitCanonicalEditPolicy());
+ installEditPolicy(EditPolicy.LAYOUT_ROLE, createLayoutEditPolicy());
+ installEditPolicy(EditPolicyRoles.OPEN_ROLE,
+ new OpenDiagramEditPolicy());
+ // XXX need an SCR to runtime to have another abstract superclass that would let children add reasonable editpolicies
+ // removeEditPolicy(org.eclipse.gmf.runtime.diagram.ui.editpolicies.EditPolicyRoles.CONNECTION_HANDLES_ROLE);
+ }
+
+ /**
+ * @generated
+ */
+ protected LayoutEditPolicy createLayoutEditPolicy() {
+ org.eclipse.gmf.runtime.diagram.ui.editpolicies.LayoutEditPolicy lep = new org.eclipse.gmf.runtime.diagram.ui.editpolicies.LayoutEditPolicy() {
+
+ protected EditPolicy createChildEditPolicy(EditPart child) {
+ View childView = (View) child.getModel();
+ switch (ComrelVisualIDRegistry.getVisualID(childView)) {
+ case SingleInputPort7EditPart.VISUAL_ID:
+ case MultiInputPort8EditPart.VISUAL_ID:
+ return new BorderItemSelectionEditPolicy();
+ }
+ EditPolicy result = child
+ .getEditPolicy(EditPolicy.PRIMARY_DRAG_ROLE);
+ if (result == null) {
+ result = new NonResizableEditPolicy();
+ }
+ return result;
+ }
+
+ protected Command getMoveChildrenCommand(Request request) {
+ return null;
+ }
+
+ protected Command getCreateCommand(CreateRequest request) {
+ return null;
+ }
+ };
+ return lep;
+ }
+
+ /**
+ * @generated NOT
+ */
+ protected IFigure createNodeShape() {
+ SequentialUnitFigure figure = new SequentialUnitFigure();
+ // RefactoringUnit unit = (RefactoringUnit) this.resolveSemanticElement();
+ // unit.setFigure(figure);
+ RectangleFigure compHelper = (RectangleFigure) figure.getChildren()
+ .get(1);
+ RectangleFigure compRef = (RectangleFigure) figure.getChildren().get(2);
+ Labels.setLabels(compHelper, compRef, false);
+ return primaryShape = figure;
+ // return primaryShape = new SequentialUnitFigure();
+ }
+
+ /**
+ * @generated
+ */
+ public SequentialUnitFigure getPrimaryShape() {
+ return (SequentialUnitFigure) primaryShape;
+ }
+
+ /**
+ * @generated NOT
+ */
+ protected boolean addFixedChild(EditPart childEditPart) {
+ if (childEditPart instanceof SequentialUnitNameTypeLblStrictEditPart) {
+ ((SequentialUnitNameTypeLblStrictEditPart) childEditPart)
+ .setLabel(getPrimaryShape()
+ .getFigureSequentialUnitLabelFigure());
+ return true;
+ }
+ if (childEditPart instanceof SequentialUnitSequentialUnitHelperUnitsCompartment7EditPart) {
+ IFigure pane = getPrimaryShape()
+ .getSequentialUnitHelperUnitsCompartmentFigure();
+ setupContentPane(pane); // FIXME each comparment should handle his content pane in his own way
+ pane.add(((SequentialUnitSequentialUnitHelperUnitsCompartment7EditPart) childEditPart)
+ .getFigure());
+ return true;
+ }
+ if (childEditPart instanceof SequentialUnitSequentialUnitRefactoringUnitsCompartment7EditPart) {
+ IFigure pane = getPrimaryShape()
+ .getSequentialUnitRefactoringUnitsCompartmentFigure();
+ setupContentPane(pane); // FIXME each comparment should handle his content pane in his own way
+ pane.add(((SequentialUnitSequentialUnitRefactoringUnitsCompartment7EditPart) childEditPart)
+ .getFigure());
+ return true;
+ }
+ if (childEditPart instanceof SingleInputPort7EditPart) {
+ BorderItemLocator locator = new BorderItemLocator(getMainFigure(),
+ PositionConstants.NORTH);
+ locator.setCurrentSideOfParent(PositionConstants.NORTH); // Position des Ports
+ locator.setPreferredSideOfParent(PositionConstants.NORTH); // Position des Ports
+ getBorderedFigure().getBorderItemContainer().add(
+ ((SingleInputPort7EditPart) childEditPart).getFigure(),
+ locator);
+ return true;
+ }
+ if (childEditPart instanceof MultiInputPort8EditPart) {
+ BorderItemLocator locator = new BorderItemLocator(getMainFigure(),
+ PositionConstants.NORTH);
+ locator.setCurrentSideOfParent(PositionConstants.NORTH); // Position des Ports
+ locator.setPreferredSideOfParent(PositionConstants.NORTH); // Position des Ports
+ getBorderedFigure().getBorderItemContainer().add(
+ ((MultiInputPort8EditPart) childEditPart).getFigure(),
+ locator);
+ return true;
+ }
+ return false;
+ }
+
+ /**
+ * @generated
+ */
+ protected boolean removeFixedChild(EditPart childEditPart) {
+ if (childEditPart instanceof SequentialUnitNameTypeLblStrictEditPart) {
+ return true;
+ }
+ if (childEditPart instanceof SequentialUnitSequentialUnitHelperUnitsCompartment7EditPart) {
+ IFigure pane = getPrimaryShape()
+ .getSequentialUnitHelperUnitsCompartmentFigure();
+ setupContentPane(pane); // FIXME each comparment should handle his content pane in his own way
+ pane.remove(((SequentialUnitSequentialUnitHelperUnitsCompartment7EditPart) childEditPart)
+ .getFigure());
+ return true;
+ }
+ if (childEditPart instanceof SequentialUnitSequentialUnitRefactoringUnitsCompartment7EditPart) {
+ IFigure pane = getPrimaryShape()
+ .getSequentialUnitRefactoringUnitsCompartmentFigure();
+ setupContentPane(pane); // FIXME each comparment should handle his content pane in his own way
+ pane.remove(((SequentialUnitSequentialUnitRefactoringUnitsCompartment7EditPart) childEditPart)
+ .getFigure());
+ return true;
+ }
+ if (childEditPart instanceof SingleInputPort7EditPart) {
+ getBorderedFigure().getBorderItemContainer().remove(
+ ((SingleInputPort7EditPart) childEditPart).getFigure());
+ return true;
+ }
+ if (childEditPart instanceof MultiInputPort8EditPart) {
+ getBorderedFigure().getBorderItemContainer().remove(
+ ((MultiInputPort8EditPart) childEditPart).getFigure());
+ return true;
+ }
+ return false;
+ }
+
+ /**
+ * @generated
+ */
+ protected void addChildVisual(EditPart childEditPart, int index) {
+ if (addFixedChild(childEditPart)) {
+ return;
+ }
+ super.addChildVisual(childEditPart, -1);
+ }
+
+ /**
+ * @generated
+ */
+ protected void removeChildVisual(EditPart childEditPart) {
+ if (removeFixedChild(childEditPart)) {
+ return;
+ }
+ super.removeChildVisual(childEditPart);
+ }
+
+ /**
+ * @generated
+ */
+ protected IFigure getContentPaneFor(IGraphicalEditPart editPart) {
+ if (editPart instanceof SequentialUnitSequentialUnitHelperUnitsCompartment7EditPart) {
+ return getPrimaryShape()
+ .getSequentialUnitHelperUnitsCompartmentFigure();
+ }
+ if (editPart instanceof SequentialUnitSequentialUnitRefactoringUnitsCompartment7EditPart) {
+ return getPrimaryShape()
+ .getSequentialUnitRefactoringUnitsCompartmentFigure();
+ }
+ if (editPart instanceof IBorderItemEditPart) {
+ return getBorderedFigure().getBorderItemContainer();
+ }
+ return getContentPane();
+ }
+
+ /**
+ * @generated
+ */
+ protected NodeFigure createNodePlate() {
+ DefaultSizeNodeFigure result = new DefaultSizeNodeFigure(40, 40);
+ return result;
+ }
+
+ /**
+ * Creates figure for this edit part.
+ *
+ * Body of this method does not depend on settings in generation model
+ * so you may safely remove <i>generated</i> tag and modify it.
+ *
+ * @generated
+ */
+ protected NodeFigure createMainFigure() {
+ NodeFigure figure = createNodePlate();
+ figure.setLayoutManager(new StackLayout());
+ IFigure shape = createNodeShape();
+ figure.add(shape);
+ contentPane = setupContentPane(shape);
+ return figure;
+ }
+
+ /**
+ * Default implementation treats passed figure as content pane.
+ * Respects layout one may have set for generated figure.
+ * @param nodeShape instance of generated figure class
+ * @generated
+ */
+ protected IFigure setupContentPane(IFigure nodeShape) {
+ if (nodeShape.getLayoutManager() == null) {
+ ConstrainedToolbarLayout layout = new ConstrainedToolbarLayout();
+ layout.setSpacing(5);
+ nodeShape.setLayoutManager(layout);
+ }
+ return nodeShape; // use nodeShape itself as contentPane
+ }
+
+ /**
+ * @generated
+ */
+ public IFigure getContentPane() {
+ if (contentPane != null) {
+ return contentPane;
+ }
+ return super.getContentPane();
+ }
+
+ /**
+ * @generated
+ */
+ protected void setForegroundColor(Color color) {
+ if (primaryShape != null) {
+ primaryShape.setForegroundColor(color);
+ }
+ }
+
+ /**
+ * @generated
+ */
+ protected void setBackgroundColor(Color color) {
+ if (primaryShape != null) {
+ primaryShape.setBackgroundColor(color);
+ }
+ }
+
+ /**
+ * @generated
+ */
+ protected void setLineWidth(int width) {
+ if (primaryShape instanceof Shape) {
+ ((Shape) primaryShape).setLineWidth(width);
+ }
+ }
+
+ /**
+ * @generated
+ */
+ protected void setLineType(int style) {
+ if (primaryShape instanceof Shape) {
+ ((Shape) primaryShape).setLineStyle(style);
+ }
+ }
+
+ /**
+ * @generated
+ */
+ public EditPart getPrimaryChildEditPart() {
+ return getChildBySemanticHint(ComrelVisualIDRegistry
+ .getType(SequentialUnitNameTypeLblStrictEditPart.VISUAL_ID));
+ }
+
+ /**
+ * @generated
+ */
+ protected void handleNotificationEvent(Notification event) {
+ if (event.getNotifier() == getModel()
+ && EcorePackage.eINSTANCE.getEModelElement_EAnnotations()
+ .equals(event.getFeature())) {
+ handleMajorSemanticChange();
+ } else {
+ super.handleNotificationEvent(event);
+ }
+ }
+
+ /**
+ * @generated
+ */
+ public class SequentialUnitFigure extends RoundedRectangle {
+
+ /**
+ * @generated
+ */
+ private WrappingLabel fFigureSequentialUnitLabelFigure;
+ /**
+ * @generated
+ */
+ private RectangleFigure fSequentialUnitHelperUnitsCompartmentFigure;
+ /**
+ * @generated
+ */
+ private RectangleFigure fSequentialUnitRefactoringUnitsCompartmentFigure;
+
+ /**
+ * @generated
+ */
+ public SequentialUnitFigure() {
+ this.setCornerDimensions(new Dimension(getMapMode().DPtoLP(8),
+ getMapMode().DPtoLP(8)));
+ this.setBorder(new MarginBorder(getMapMode().DPtoLP(5),
+ getMapMode().DPtoLP(5), getMapMode().DPtoLP(5),
+ getMapMode().DPtoLP(5)));
+ createContents();
+ }
+
+ /**
+ * @generated
+ */
+ private void createContents() {
+
+ fFigureSequentialUnitLabelFigure = new WrappingLabel();
+ fFigureSequentialUnitLabelFigure.setText("SequentialUnit");
+ fFigureSequentialUnitLabelFigure.setMaximumSize(new Dimension(
+ getMapMode().DPtoLP(10000), getMapMode().DPtoLP(50)));
+
+ this.add(fFigureSequentialUnitLabelFigure);
+
+ fSequentialUnitHelperUnitsCompartmentFigure = new RectangleFigure();
+ fSequentialUnitHelperUnitsCompartmentFigure.setOutline(false);
+
+ this.add(fSequentialUnitHelperUnitsCompartmentFigure);
+
+ fSequentialUnitRefactoringUnitsCompartmentFigure = new RectangleFigure();
+ fSequentialUnitRefactoringUnitsCompartmentFigure.setOutline(false);
+
+ this.add(fSequentialUnitRefactoringUnitsCompartmentFigure);
+
+ }
+
+ /**
+ * @generated
+ */
+ public WrappingLabel getFigureSequentialUnitLabelFigure() {
+ return fFigureSequentialUnitLabelFigure;
+ }
+
+ /**
+ * @generated
+ */
+ public RectangleFigure getSequentialUnitHelperUnitsCompartmentFigure() {
+ return fSequentialUnitHelperUnitsCompartmentFigure;
+ }
+
+ /**
+ * @generated
+ */
+ public RectangleFigure getSequentialUnitRefactoringUnitsCompartmentFigure() {
+ return fSequentialUnitRefactoringUnitsCompartmentFigure;
+ }
+
+ }
+
+}
diff --git a/org.eclipse.emf.refactor.comrel.diagram/src/comrel/diagram/edit/parts/SequentialUnitNameTypeLblStrict2EditPart.java b/org.eclipse.emf.refactor.comrel.diagram/src/comrel/diagram/edit/parts/SequentialUnitNameTypeLblStrict2EditPart.java
new file mode 100644
index 0000000..c8def06
--- /dev/null
+++ b/org.eclipse.emf.refactor.comrel.diagram/src/comrel/diagram/edit/parts/SequentialUnitNameTypeLblStrict2EditPart.java
@@ -0,0 +1,576 @@
+/*
+ *
+ */
+package comrel.diagram.edit.parts;
+
+import java.util.Collections;
+import java.util.List;
+
+import org.eclipse.draw2d.IFigure;
+import org.eclipse.draw2d.Label;
+import org.eclipse.draw2d.geometry.Point;
+import org.eclipse.emf.common.notify.Notification;
+import org.eclipse.emf.ecore.EObject;
+import org.eclipse.emf.transaction.RunnableWithResult;
+import org.eclipse.gef.AccessibleEditPart;
+import org.eclipse.gef.EditPolicy;
+import org.eclipse.gef.Request;
+import org.eclipse.gef.requests.DirectEditRequest;
+import org.eclipse.gef.tools.DirectEditManager;
+import org.eclipse.gmf.runtime.common.ui.services.parser.IParser;
+import org.eclipse.gmf.runtime.common.ui.services.parser.IParserEditStatus;
+import org.eclipse.gmf.runtime.common.ui.services.parser.ParserEditStatus;
+import org.eclipse.gmf.runtime.common.ui.services.parser.ParserOptions;
+import org.eclipse.gmf.runtime.diagram.ui.editparts.CompartmentEditPart;
+import org.eclipse.gmf.runtime.diagram.ui.editparts.IGraphicalEditPart;
+import org.eclipse.gmf.runtime.diagram.ui.editparts.ITextAwareEditPart;
+import org.eclipse.gmf.runtime.diagram.ui.editpolicies.LabelDirectEditPolicy;
+import org.eclipse.gmf.runtime.diagram.ui.l10n.DiagramColorRegistry;
+import org.eclipse.gmf.runtime.diagram.ui.requests.RequestConstants;
+import org.eclipse.gmf.runtime.diagram.ui.tools.TextDirectEditManager;
+import org.eclipse.gmf.runtime.draw2d.ui.figures.WrappingLabel;
+import org.eclipse.gmf.runtime.emf.core.util.EObjectAdapter;
+import org.eclipse.gmf.runtime.emf.ui.services.parser.ISemanticParser;
+import org.eclipse.gmf.runtime.notation.FontStyle;
+import org.eclipse.gmf.runtime.notation.NotationPackage;
+import org.eclipse.gmf.runtime.notation.View;
+import org.eclipse.jface.text.contentassist.IContentAssistProcessor;
+import org.eclipse.jface.viewers.ICellEditorValidator;
+import org.eclipse.swt.SWT;
+import org.eclipse.swt.accessibility.AccessibleEvent;
+import org.eclipse.swt.graphics.Color;
+import org.eclipse.swt.graphics.FontData;
+import org.eclipse.swt.graphics.Image;
+
+import comrel.diagram.edit.policies.ComrelTextSelectionEditPolicy;
+import comrel.diagram.part.ComrelVisualIDRegistry;
+import comrel.diagram.providers.ComrelElementTypes;
+import comrel.diagram.providers.ComrelParserProvider;
+
+/**
+ * @generated
+ */
+public class SequentialUnitNameTypeLblStrict2EditPart extends
+ CompartmentEditPart implements ITextAwareEditPart {
+
+ /**
+ * @generated
+ */
+ public static final int VISUAL_ID = 5074;
+
+ /**
+ * @generated
+ */
+ private DirectEditManager manager;
+
+ /**
+ * @generated
+ */
+ private IParser parser;
+
+ /**
+ * @generated
+ */
+ private List<?> parserElements;
+
+ /**
+ * @generated
+ */
+ private String defaultText;
+
+ /**
+ * @generated
+ */
+ public SequentialUnitNameTypeLblStrict2EditPart(View view) {
+ super(view);
+ }
+
+ /**
+ * @generated
+ */
+ protected void createDefaultEditPolicies() {
+ super.createDefaultEditPolicies();
+ installEditPolicy(EditPolicy.SELECTION_FEEDBACK_ROLE,
+ new ComrelTextSelectionEditPolicy());
+ installEditPolicy(EditPolicy.DIRECT_EDIT_ROLE,
+ new LabelDirectEditPolicy());
+ installEditPolicy(EditPolicy.PRIMARY_DRAG_ROLE,
+ new CompositeRefactoringEditPart.NodeLabelDragPolicy());
+ }
+
+ /**
+ * @generated
+ */
+ protected String getLabelTextHelper(IFigure figure) {
+ if (figure instanceof WrappingLabel) {
+ return ((WrappingLabel) figure).getText();
+ } else {
+ return ((Label) figure).getText();
+ }
+ }
+
+ /**
+ * @generated
+ */
+ protected void setLabelTextHelper(IFigure figure, String text) {
+ if (figure instanceof WrappingLabel) {
+ ((WrappingLabel) figure).setText(text);
+ } else {
+ ((Label) figure).setText(text);
+ }
+ }
+
+ /**
+ * @generated
+ */
+ protected Image getLabelIconHelper(IFigure figure) {
+ if (figure instanceof WrappingLabel) {
+ return ((WrappingLabel) figure).getIcon();
+ } else {
+ return ((Label) figure).getIcon();
+ }
+ }
+
+ /**
+ * @generated
+ */
+ protected void setLabelIconHelper(IFigure figure, Image icon) {
+ if (figure instanceof WrappingLabel) {
+ ((WrappingLabel) figure).setIcon(icon);
+ } else {
+ ((Label) figure).setIcon(icon);
+ }
+ }
+
+ /**
+ * @generated
+ */
+ public void setLabel(WrappingLabel figure) {
+ unregisterVisuals();
+ setFigure(figure);
+ defaultText = getLabelTextHelper(figure);
+ registerVisuals();
+ refreshVisuals();
+ }
+
+ /**
+ * @generated
+ */
+ @SuppressWarnings("rawtypes")
+ protected List getModelChildren() {
+ return Collections.EMPTY_LIST;
+ }
+
+ /**
+ * @generated
+ */
+ public IGraphicalEditPart getChildBySemanticHint(String semanticHint) {
+ return null;
+ }
+
+ /**
+ * @generated
+ */
+ protected EObject getParserElement() {
+ return resolveSemanticElement();
+ }
+
+ /**
+ * @generated
+ */
+ protected Image getLabelIcon() {
+ return null;
+ }
+
+ /**
+ * @generated
+ */
+ protected String getLabelText() {
+ String text = null;
+ EObject parserElement = getParserElement();
+ if (parserElement != null && getParser() != null) {
+ text = getParser().getPrintString(
+ new EObjectAdapter(parserElement),
+ getParserOptions().intValue());
+ }
+ if (text == null || text.length() == 0) {
+ text = defaultText;
+ }
+ return text;
+ }
+
+ /**
+ * @generated
+ */
+ public void setLabelText(String text) {
+ setLabelTextHelper(getFigure(), text);
+ Object pdEditPolicy = getEditPolicy(EditPolicy.PRIMARY_DRAG_ROLE);
+ if (pdEditPolicy instanceof ComrelTextSelectionEditPolicy) {
+ ((ComrelTextSelectionEditPolicy) pdEditPolicy).refreshFeedback();
+ }
+ Object sfEditPolicy = getEditPolicy(EditPolicy.SELECTION_FEEDBACK_ROLE);
+ if (sfEditPolicy instanceof ComrelTextSelectionEditPolicy) {
+ ((ComrelTextSelectionEditPolicy) sfEditPolicy).refreshFeedback();
+ }
+ }
+
+ /**
+ * @generated
+ */
+ public String getEditText() {
+ if (getParserElement() == null || getParser() == null) {
+ return ""; //$NON-NLS-1$
+ }
+ return getParser().getEditString(
+ new EObjectAdapter(getParserElement()),
+ getParserOptions().intValue());
+ }
+
+ /**
+ * @generated
+ */
+ protected boolean isEditable() {
+ return getParser() != null;
+ }
+
+ /**
+ * @generated
+ */
+ public ICellEditorValidator getEditTextValidator() {
+ return new ICellEditorValidator() {
+
+ public String isValid(final Object value) {
+ if (value instanceof String) {
+ final EObject element = getParserElement();
+ final IParser parser = getParser();
+ try {
+ IParserEditStatus valid = (IParserEditStatus) getEditingDomain()
+ .runExclusive(
+ new RunnableWithResult.Impl<IParserEditStatus>() {
+
+ public void run() {
+ setResult(parser
+ .isValidEditString(
+ new EObjectAdapter(
+ element),
+ (String) value));
+ }
+ });
+ return valid.getCode() == ParserEditStatus.EDITABLE ? null
+ : valid.getMessage();
+ } catch (InterruptedException ie) {
+ ie.printStackTrace();
+ }
+ }
+
+ // shouldn't get here
+ return null;
+ }
+ };
+ }
+
+ /**
+ * @generated
+ */
+ public IContentAssistProcessor getCompletionProcessor() {
+ if (getParserElement() == null || getParser() == null) {
+ return null;
+ }
+ return getParser().getCompletionProcessor(
+ new EObjectAdapter(getParserElement()));
+ }
+
+ /**
+ * @generated
+ */
+ public ParserOptions getParserOptions() {
+ return ParserOptions.NONE;
+ }
+
+ /**
+ * @generated
+ */
+ public IParser getParser() {
+ if (parser == null) {
+ parser = ComrelParserProvider
+ .getParser(
+ ComrelElementTypes.SequentialUnit_3026,
+ getParserElement(),
+ ComrelVisualIDRegistry
+ .getType(comrel.diagram.edit.parts.SequentialUnitNameTypeLblStrict2EditPart.VISUAL_ID));
+ }
+ return parser;
+ }
+
+ /**
+ * @generated
+ */
+ protected DirectEditManager getManager() {
+ if (manager == null) {
+ setManager(new TextDirectEditManager(this,
+ TextDirectEditManager.getTextCellEditorClass(this),
+ ComrelEditPartFactory.getTextCellEditorLocator(this)));
+ }
+ return manager;
+ }
+
+ /**
+ * @generated
+ */
+ protected void setManager(DirectEditManager manager) {
+ this.manager = manager;
+ }
+
+ /**
+ * @generated
+ */
+ protected void performDirectEdit() {
+ getManager().show();
+ }
+
+ /**
+ * @generated
+ */
+ protected void performDirectEdit(Point eventLocation) {
+ if (getManager().getClass() == TextDirectEditManager.class) {
+ ((TextDirectEditManager) getManager()).show(eventLocation
+ .getSWTPoint());
+ }
+ }
+
+ /**
+ * @generated
+ */
+ private void performDirectEdit(char initialCharacter) {
+ if (getManager() instanceof TextDirectEditManager) {
+ ((TextDirectEditManager) getManager()).show(initialCharacter);
+ } else {
+ performDirectEdit();
+ }
+ }
+
+ /**
+ * @generated
+ */
+ protected void performDirectEditRequest(Request request) {
+ final Request theRequest = request;
+ try {
+ getEditingDomain().runExclusive(new Runnable() {
+
+ public void run() {
+ if (isActive() && isEditable()) {
+ if (theRequest
+ .getExtendedData()
+ .get(RequestConstants.REQ_DIRECTEDIT_EXTENDEDDATA_INITIAL_CHAR) instanceof Character) {
+ Character initialChar = (Character) theRequest
+ .getExtendedData()
+ .get(RequestConstants.REQ_DIRECTEDIT_EXTENDEDDATA_INITIAL_CHAR);
+ performDirectEdit(initialChar.charValue());
+ } else if ((theRequest instanceof DirectEditRequest)
+ && (getEditText().equals(getLabelText()))) {
+ DirectEditRequest editRequest = (DirectEditRequest) theRequest;
+ performDirectEdit(editRequest.getLocation());
+ } else {
+ performDirectEdit();
+ }
+ }
+ }
+ });
+ } catch (InterruptedException e) {
+ e.printStackTrace();
+ }
+ }
+
+ /**
+ * @generated
+ */
+ protected void refreshVisuals() {
+ super.refreshVisuals();
+ refreshLabel();
+ refreshFont();
+ refreshFontColor();
+ refreshUnderline();
+ refreshStrikeThrough();
+ }
+
+ /**
+ * @generated
+ */
+ protected void refreshLabel() {
+ setLabelTextHelper(getFigure(), getLabelText());
+ setLabelIconHelper(getFigure(), getLabelIcon());
+ Object pdEditPolicy = getEditPolicy(EditPolicy.PRIMARY_DRAG_ROLE);
+ if (pdEditPolicy instanceof ComrelTextSelectionEditPolicy) {
+ ((ComrelTextSelectionEditPolicy) pdEditPolicy).refreshFeedback();
+ }
+ Object sfEditPolicy = getEditPolicy(EditPolicy.SELECTION_FEEDBACK_ROLE);
+ if (sfEditPolicy instanceof ComrelTextSelectionEditPolicy) {
+ ((ComrelTextSelectionEditPolicy) sfEditPolicy).refreshFeedback();
+ }
+ }
+
+ /**
+ * @generated
+ */
+ protected void refreshUnderline() {
+ FontStyle style = (FontStyle) getFontStyleOwnerView().getStyle(
+ NotationPackage.eINSTANCE.getFontStyle());
+ if (style != null && getFigure() instanceof WrappingLabel) {
+ ((WrappingLabel) getFigure()).setTextUnderline(style.isUnderline());
+ }
+ }
+
+ /**
+ * @generated
+ */
+ protected void refreshStrikeThrough() {
+ FontStyle style = (FontStyle) getFontStyleOwnerView().getStyle(
+ NotationPackage.eINSTANCE.getFontStyle());
+ if (style != null && getFigure() instanceof WrappingLabel) {
+ ((WrappingLabel) getFigure()).setTextStrikeThrough(style
+ .isStrikeThrough());
+ }
+ }
+
+ /**
+ * @generated
+ */
+ protected void refreshFont() {
+ FontStyle style = (FontStyle) getFontStyleOwnerView().getStyle(
+ NotationPackage.eINSTANCE.getFontStyle());
+ if (style != null) {
+ FontData fontData = new FontData(style.getFontName(),
+ style.getFontHeight(), (style.isBold() ? SWT.BOLD
+ : SWT.NORMAL)
+ | (style.isItalic() ? SWT.ITALIC : SWT.NORMAL));
+ setFont(fontData);
+ }
+ }
+
+ /**
+ * @generated
+ */
+ protected void setFontColor(Color color) {
+ getFigure().setForegroundColor(color);
+ }
+
+ /**
+ * @generated
+ */
+ protected void addSemanticListeners() {
+ if (getParser() instanceof ISemanticParser) {
+ EObject element = resolveSemanticElement();
+ parserElements = ((ISemanticParser) getParser())
+ .getSemanticElementsBeingParsed(element);
+ for (int i = 0; i < parserElements.size(); i++) {
+ addListenerFilter(
+ "SemanticModel" + i, this, (EObject) parserElements.get(i)); //$NON-NLS-1$
+ }
+ } else {
+ super.addSemanticListeners();
+ }
+ }
+
+ /**
+ * @generated
+ */
+ protected void removeSemanticListeners() {
+ if (parserElements != null) {
+ for (int i = 0; i < parserElements.size(); i++) {
+ removeListenerFilter("SemanticModel" + i); //$NON-NLS-1$
+ }
+ } else {
+ super.removeSemanticListeners();
+ }
+ }
+
+ /**
+ * @generated
+ */
+ protected AccessibleEditPart getAccessibleEditPart() {
+ if (accessibleEP == null) {
+ accessibleEP = new AccessibleGraphicalEditPart() {
+
+ public void getName(AccessibleEvent e) {
+ e.result = getLabelTextHelper(getFigure());
+ }
+ };
+ }
+ return accessibleEP;
+ }
+
+ /**
+ * @generated
+ */
+ private View getFontStyleOwnerView() {
+ return getPrimaryView();
+ }
+
+ /**
+ * @generated
+ */
+ protected void addNotationalListeners() {
+ super.addNotationalListeners();
+ addListenerFilter("PrimaryView", this, getPrimaryView()); //$NON-NLS-1$
+ }
+
+ /**
+ * @generated
+ */
+ protected void removeNotationalListeners() {
+ super.removeNotationalListeners();
+ removeListenerFilter("PrimaryView"); //$NON-NLS-1$
+ }
+
+ /**
+ * @generated
+ */
+ protected void handleNotificationEvent(Notification event) {
+ Object feature = event.getFeature();
+ if (NotationPackage.eINSTANCE.getFontStyle_FontColor().equals(feature)) {
+ Integer c = (Integer) event.getNewValue();
+ setFontColor(DiagramColorRegistry.getInstance().getColor(c));
+ } else if (NotationPackage.eINSTANCE.getFontStyle_Underline().equals(
+ feature)) {
+ refreshUnderline();
+ } else if (NotationPackage.eINSTANCE.getFontStyle_StrikeThrough()
+ .equals(feature)) {
+ refreshStrikeThrough();
+ } else if (NotationPackage.eINSTANCE.getFontStyle_FontHeight().equals(
+ feature)
+ || NotationPackage.eINSTANCE.getFontStyle_FontName().equals(
+ feature)
+ || NotationPackage.eINSTANCE.getFontStyle_Bold()
+ .equals(feature)
+ || NotationPackage.eINSTANCE.getFontStyle_Italic().equals(
+ feature)) {
+ refreshFont();
+ } else {
+ if (getParser() != null
+ && getParser().isAffectingEvent(event,
+ getParserOptions().intValue())) {
+ refreshLabel();
+ }
+ if (getParser() instanceof ISemanticParser) {
+ ISemanticParser modelParser = (ISemanticParser) getParser();
+ if (modelParser.areSemanticElementsAffected(null, event)) {
+ removeSemanticListeners();
+ if (resolveSemanticElement() != null) {
+ addSemanticListeners();
+ }
+ refreshLabel();
+ }
+ }
+ }
+ super.handleNotificationEvent(event);
+ }
+
+ /**
+ * @generated
+ */
+ protected IFigure createFigure() {
+ // Parent should assign one using setLabel() method
+ return null;
+ }
+
+}
diff --git a/org.eclipse.emf.refactor.comrel.diagram/src/comrel/diagram/edit/parts/SequentialUnitNameTypeLblStrict3EditPart.java b/org.eclipse.emf.refactor.comrel.diagram/src/comrel/diagram/edit/parts/SequentialUnitNameTypeLblStrict3EditPart.java
new file mode 100644
index 0000000..daebfcd
--- /dev/null
+++ b/org.eclipse.emf.refactor.comrel.diagram/src/comrel/diagram/edit/parts/SequentialUnitNameTypeLblStrict3EditPart.java
@@ -0,0 +1,576 @@
+/*
+ *
+ */
+package comrel.diagram.edit.parts;
+
+import java.util.Collections;
+import java.util.List;
+
+import org.eclipse.draw2d.IFigure;
+import org.eclipse.draw2d.Label;
+import org.eclipse.draw2d.geometry.Point;
+import org.eclipse.emf.common.notify.Notification;
+import org.eclipse.emf.ecore.EObject;
+import org.eclipse.emf.transaction.RunnableWithResult;
+import org.eclipse.gef.AccessibleEditPart;
+import org.eclipse.gef.EditPolicy;
+import org.eclipse.gef.Request;
+import org.eclipse.gef.requests.DirectEditRequest;
+import org.eclipse.gef.tools.DirectEditManager;
+import org.eclipse.gmf.runtime.common.ui.services.parser.IParser;
+import org.eclipse.gmf.runtime.common.ui.services.parser.IParserEditStatus;
+import org.eclipse.gmf.runtime.common.ui.services.parser.ParserEditStatus;
+import org.eclipse.gmf.runtime.common.ui.services.parser.ParserOptions;
+import org.eclipse.gmf.runtime.diagram.ui.editparts.CompartmentEditPart;
+import org.eclipse.gmf.runtime.diagram.ui.editparts.IGraphicalEditPart;
+import org.eclipse.gmf.runtime.diagram.ui.editparts.ITextAwareEditPart;
+import org.eclipse.gmf.runtime.diagram.ui.editpolicies.LabelDirectEditPolicy;
+import org.eclipse.gmf.runtime.diagram.ui.l10n.DiagramColorRegistry;
+import org.eclipse.gmf.runtime.diagram.ui.requests.RequestConstants;
+import org.eclipse.gmf.runtime.diagram.ui.tools.TextDirectEditManager;
+import org.eclipse.gmf.runtime.draw2d.ui.figures.WrappingLabel;
+import org.eclipse.gmf.runtime.emf.core.util.EObjectAdapter;
+import org.eclipse.gmf.runtime.emf.ui.services.parser.ISemanticParser;
+import org.eclipse.gmf.runtime.notation.FontStyle;
+import org.eclipse.gmf.runtime.notation.NotationPackage;
+import org.eclipse.gmf.runtime.notation.View;
+import org.eclipse.jface.text.contentassist.IContentAssistProcessor;
+import org.eclipse.jface.viewers.ICellEditorValidator;
+import org.eclipse.swt.SWT;
+import org.eclipse.swt.accessibility.AccessibleEvent;
+import org.eclipse.swt.graphics.Color;
+import org.eclipse.swt.graphics.FontData;
+import org.eclipse.swt.graphics.Image;
+
+import comrel.diagram.edit.policies.ComrelTextSelectionEditPolicy;
+import comrel.diagram.part.ComrelVisualIDRegistry;
+import comrel.diagram.providers.ComrelElementTypes;
+import comrel.diagram.providers.ComrelParserProvider;
+
+/**
+ * @generated
+ */
+public class SequentialUnitNameTypeLblStrict3EditPart extends
+ CompartmentEditPart implements ITextAwareEditPart {
+
+ /**
+ * @generated
+ */
+ public static final int VISUAL_ID = 5067;
+
+ /**
+ * @generated
+ */
+ private DirectEditManager manager;
+
+ /**
+ * @generated
+ */
+ private IParser parser;
+
+ /**
+ * @generated
+ */
+ private List<?> parserElements;
+
+ /**
+ * @generated
+ */
+ private String defaultText;
+
+ /**
+ * @generated
+ */
+ public SequentialUnitNameTypeLblStrict3EditPart(View view) {
+ super(view);
+ }
+
+ /**
+ * @generated
+ */
+ protected void createDefaultEditPolicies() {
+ super.createDefaultEditPolicies();
+ installEditPolicy(EditPolicy.SELECTION_FEEDBACK_ROLE,
+ new ComrelTextSelectionEditPolicy());
+ installEditPolicy(EditPolicy.DIRECT_EDIT_ROLE,
+ new LabelDirectEditPolicy());
+ installEditPolicy(EditPolicy.PRIMARY_DRAG_ROLE,
+ new CompositeRefactoringEditPart.NodeLabelDragPolicy());
+ }
+
+ /**
+ * @generated
+ */
+ protected String getLabelTextHelper(IFigure figure) {
+ if (figure instanceof WrappingLabel) {
+ return ((WrappingLabel) figure).getText();
+ } else {
+ return ((Label) figure).getText();
+ }
+ }
+
+ /**
+ * @generated
+ */
+ protected void setLabelTextHelper(IFigure figure, String text) {
+ if (figure instanceof WrappingLabel) {
+ ((WrappingLabel) figure).setText(text);
+ } else {
+ ((Label) figure).setText(text);
+ }
+ }
+
+ /**
+ * @generated
+ */
+ protected Image getLabelIconHelper(IFigure figure) {
+ if (figure instanceof WrappingLabel) {
+ return ((WrappingLabel) figure).getIcon();
+ } else {
+ return ((Label) figure).getIcon();
+ }
+ }
+
+ /**
+ * @generated
+ */
+ protected void setLabelIconHelper(IFigure figure, Image icon) {
+ if (figure instanceof WrappingLabel) {
+ ((WrappingLabel) figure).setIcon(icon);
+ } else {
+ ((Label) figure).setIcon(icon);
+ }
+ }
+
+ /**
+ * @generated
+ */
+ public void setLabel(WrappingLabel figure) {
+ unregisterVisuals();
+ setFigure(figure);
+ defaultText = getLabelTextHelper(figure);
+ registerVisuals();
+ refreshVisuals();
+ }
+
+ /**
+ * @generated
+ */
+ @SuppressWarnings("rawtypes")
+ protected List getModelChildren() {
+ return Collections.EMPTY_LIST;
+ }
+
+ /**
+ * @generated
+ */
+ public IGraphicalEditPart getChildBySemanticHint(String semanticHint) {
+ return null;
+ }
+
+ /**
+ * @generated
+ */
+ protected EObject getParserElement() {
+ return resolveSemanticElement();
+ }
+
+ /**
+ * @generated
+ */
+ protected Image getLabelIcon() {
+ return null;
+ }
+
+ /**
+ * @generated
+ */
+ protected String getLabelText() {
+ String text = null;
+ EObject parserElement = getParserElement();
+ if (parserElement != null && getParser() != null) {
+ text = getParser().getPrintString(
+ new EObjectAdapter(parserElement),
+ getParserOptions().intValue());
+ }
+ if (text == null || text.length() == 0) {
+ text = defaultText;
+ }
+ return text;
+ }
+
+ /**
+ * @generated
+ */
+ public void setLabelText(String text) {
+ setLabelTextHelper(getFigure(), text);
+ Object pdEditPolicy = getEditPolicy(EditPolicy.PRIMARY_DRAG_ROLE);
+ if (pdEditPolicy instanceof ComrelTextSelectionEditPolicy) {
+ ((ComrelTextSelectionEditPolicy) pdEditPolicy).refreshFeedback();
+ }
+ Object sfEditPolicy = getEditPolicy(EditPolicy.SELECTION_FEEDBACK_ROLE);
+ if (sfEditPolicy instanceof ComrelTextSelectionEditPolicy) {
+ ((ComrelTextSelectionEditPolicy) sfEditPolicy).refreshFeedback();
+ }
+ }
+
+ /**
+ * @generated
+ */
+ public String getEditText() {
+ if (getParserElement() == null || getParser() == null) {
+ return ""; //$NON-NLS-1$
+ }
+ return getParser().getEditString(
+ new EObjectAdapter(getParserElement()),
+ getParserOptions().intValue());
+ }
+
+ /**
+ * @generated
+ */
+ protected boolean isEditable() {
+ return getParser() != null;
+ }
+
+ /**
+ * @generated
+ */
+ public ICellEditorValidator getEditTextValidator() {
+ return new ICellEditorValidator() {
+
+ public String isValid(final Object value) {
+ if (value instanceof String) {
+ final EObject element = getParserElement();
+ final IParser parser = getParser();
+ try {
+ IParserEditStatus valid = (IParserEditStatus) getEditingDomain()
+ .runExclusive(
+ new RunnableWithResult.Impl<IParserEditStatus>() {
+
+ public void run() {
+ setResult(parser
+ .isValidEditString(
+ new EObjectAdapter(
+ element),
+ (String) value));
+ }
+ });
+ return valid.getCode() == ParserEditStatus.EDITABLE ? null
+ : valid.getMessage();
+ } catch (InterruptedException ie) {
+ ie.printStackTrace();
+ }
+ }
+
+ // shouldn't get here
+ return null;
+ }
+ };
+ }
+
+ /**
+ * @generated
+ */
+ public IContentAssistProcessor getCompletionProcessor() {
+ if (getParserElement() == null || getParser() == null) {
+ return null;
+ }
+ return getParser().getCompletionProcessor(
+ new EObjectAdapter(getParserElement()));
+ }
+
+ /**
+ * @generated
+ */
+ public ParserOptions getParserOptions() {
+ return ParserOptions.NONE;
+ }
+
+ /**
+ * @generated
+ */
+ public IParser getParser() {
+ if (parser == null) {
+ parser = ComrelParserProvider
+ .getParser(
+ ComrelElementTypes.SequentialUnit_3044,
+ getParserElement(),
+ ComrelVisualIDRegistry
+ .getType(comrel.diagram.edit.parts.SequentialUnitNameTypeLblStrict3EditPart.VISUAL_ID));
+ }
+ return parser;
+ }
+
+ /**
+ * @generated
+ */
+ protected DirectEditManager getManager() {
+ if (manager == null) {
+ setManager(new TextDirectEditManager(this,
+ TextDirectEditManager.getTextCellEditorClass(this),
+ ComrelEditPartFactory.getTextCellEditorLocator(this)));
+ }
+ return manager;
+ }
+
+ /**
+ * @generated
+ */
+ protected void setManager(DirectEditManager manager) {
+ this.manager = manager;
+ }
+
+ /**
+ * @generated
+ */
+ protected void performDirectEdit() {
+ getManager().show();
+ }
+
+ /**
+ * @generated
+ */
+ protected void performDirectEdit(Point eventLocation) {
+ if (getManager().getClass() == TextDirectEditManager.class) {
+ ((TextDirectEditManager) getManager()).show(eventLocation
+ .getSWTPoint());
+ }
+ }
+
+ /**
+ * @generated
+ */
+ private void performDirectEdit(char initialCharacter) {
+ if (getManager() instanceof TextDirectEditManager) {
+ ((TextDirectEditManager) getManager()).show(initialCharacter);
+ } else {
+ performDirectEdit();
+ }
+ }
+
+ /**
+ * @generated
+ */
+ protected void performDirectEditRequest(Request request) {
+ final Request theRequest = request;
+ try {
+ getEditingDomain().runExclusive(new Runnable() {
+
+ public void run() {
+ if (isActive() && isEditable()) {
+ if (theRequest
+ .getExtendedData()
+ .get(RequestConstants.REQ_DIRECTEDIT_EXTENDEDDATA_INITIAL_CHAR) instanceof Character) {
+ Character initialChar = (Character) theRequest
+ .getExtendedData()
+ .get(RequestConstants.REQ_DIRECTEDIT_EXTENDEDDATA_INITIAL_CHAR);
+ performDirectEdit(initialChar.charValue());
+ } else if ((theRequest instanceof DirectEditRequest)
+ && (getEditText().equals(getLabelText()))) {
+ DirectEditRequest editRequest = (DirectEditRequest) theRequest;
+ performDirectEdit(editRequest.getLocation());
+ } else {
+ performDirectEdit();
+ }
+ }
+ }
+ });
+ } catch (InterruptedException e) {
+ e.printStackTrace();
+ }
+ }
+
+ /**
+ * @generated
+ */
+ protected void refreshVisuals() {
+ super.refreshVisuals();
+ refreshLabel();
+ refreshFont();
+ refreshFontColor();
+ refreshUnderline();
+ refreshStrikeThrough();
+ }
+
+ /**
+ * @generated
+ */
+ protected void refreshLabel() {
+ setLabelTextHelper(getFigure(), getLabelText());
+ setLabelIconHelper(getFigure(), getLabelIcon());
+ Object pdEditPolicy = getEditPolicy(EditPolicy.PRIMARY_DRAG_ROLE);
+ if (pdEditPolicy instanceof ComrelTextSelectionEditPolicy) {
+ ((ComrelTextSelectionEditPolicy) pdEditPolicy).refreshFeedback();
+ }
+ Object sfEditPolicy = getEditPolicy(EditPolicy.SELECTION_FEEDBACK_ROLE);
+ if (sfEditPolicy instanceof ComrelTextSelectionEditPolicy) {
+ ((ComrelTextSelectionEditPolicy) sfEditPolicy).refreshFeedback();
+ }
+ }
+
+ /**
+ * @generated
+ */
+ protected void refreshUnderline() {
+ FontStyle style = (FontStyle) getFontStyleOwnerView().getStyle(
+ NotationPackage.eINSTANCE.getFontStyle());
+ if (style != null && getFigure() instanceof WrappingLabel) {
+ ((WrappingLabel) getFigure()).setTextUnderline(style.isUnderline());
+ }
+ }
+
+ /**
+ * @generated
+ */
+ protected void refreshStrikeThrough() {
+ FontStyle style = (FontStyle) getFontStyleOwnerView().getStyle(
+ NotationPackage.eINSTANCE.getFontStyle());
+ if (style != null && getFigure() instanceof WrappingLabel) {
+ ((WrappingLabel) getFigure()).setTextStrikeThrough(style
+ .isStrikeThrough());
+ }
+ }
+
+ /**
+ * @generated
+ */
+ protected void refreshFont() {
+ FontStyle style = (FontStyle) getFontStyleOwnerView().getStyle(
+ NotationPackage.eINSTANCE.getFontStyle());
+ if (style != null) {
+ FontData fontData = new FontData(style.getFontName(),
+ style.getFontHeight(), (style.isBold() ? SWT.BOLD
+ : SWT.NORMAL)
+ | (style.isItalic() ? SWT.ITALIC : SWT.NORMAL));
+ setFont(fontData);
+ }
+ }
+
+ /**
+ * @generated
+ */
+ protected void setFontColor(Color color) {
+ getFigure().setForegroundColor(color);
+ }
+
+ /**
+ * @generated
+ */
+ protected void addSemanticListeners() {
+ if (getParser() instanceof ISemanticParser) {
+ EObject element = resolveSemanticElement();
+ parserElements = ((ISemanticParser) getParser())
+ .getSemanticElementsBeingParsed(element);
+ for (int i = 0; i < parserElements.size(); i++) {
+ addListenerFilter(
+ "SemanticModel" + i, this, (EObject) parserElements.get(i)); //$NON-NLS-1$
+ }
+ } else {
+ super.addSemanticListeners();
+ }
+ }
+
+ /**
+ * @generated
+ */
+ protected void removeSemanticListeners() {
+ if (parserElements != null) {
+ for (int i = 0; i < parserElements.size(); i++) {
+ removeListenerFilter("SemanticModel" + i); //$NON-NLS-1$
+ }
+ } else {
+ super.removeSemanticListeners();
+ }
+ }
+
+ /**
+ * @generated
+ */
+ protected AccessibleEditPart getAccessibleEditPart() {
+ if (accessibleEP == null) {
+ accessibleEP = new AccessibleGraphicalEditPart() {
+
+ public void getName(AccessibleEvent e) {
+ e.result = getLabelTextHelper(getFigure());
+ }
+ };
+ }
+ return accessibleEP;
+ }
+
+ /**
+ * @generated
+ */
+ private View getFontStyleOwnerView() {
+ return getPrimaryView();
+ }
+
+ /**
+ * @generated
+ */
+ protected void addNotationalListeners() {
+ super.addNotationalListeners();
+ addListenerFilter("PrimaryView", this, getPrimaryView()); //$NON-NLS-1$
+ }
+
+ /**
+ * @generated
+ */
+ protected void removeNotationalListeners() {
+ super.removeNotationalListeners();
+ removeListenerFilter("PrimaryView"); //$NON-NLS-1$
+ }
+
+ /**
+ * @generated
+ */
+ protected void handleNotificationEvent(Notification event) {
+ Object feature = event.getFeature();
+ if (NotationPackage.eINSTANCE.getFontStyle_FontColor().equals(feature)) {
+ Integer c = (Integer) event.getNewValue();
+ setFontColor(DiagramColorRegistry.getInstance().getColor(c));
+ } else if (NotationPackage.eINSTANCE.getFontStyle_Underline().equals(
+ feature)) {
+ refreshUnderline();
+ } else if (NotationPackage.eINSTANCE.getFontStyle_StrikeThrough()
+ .equals(feature)) {
+ refreshStrikeThrough();
+ } else if (NotationPackage.eINSTANCE.getFontStyle_FontHeight().equals(
+ feature)
+ || NotationPackage.eINSTANCE.getFontStyle_FontName().equals(
+ feature)
+ || NotationPackage.eINSTANCE.getFontStyle_Bold()
+ .equals(feature)
+ || NotationPackage.eINSTANCE.getFontStyle_Italic().equals(
+ feature)) {
+ refreshFont();
+ } else {
+ if (getParser() != null
+ && getParser().isAffectingEvent(event,
+ getParserOptions().intValue())) {
+ refreshLabel();
+ }
+ if (getParser() instanceof ISemanticParser) {
+ ISemanticParser modelParser = (ISemanticParser) getParser();
+ if (modelParser.areSemanticElementsAffected(null, event)) {
+ removeSemanticListeners();
+ if (resolveSemanticElement() != null) {
+ addSemanticListeners();
+ }
+ refreshLabel();
+ }
+ }
+ }
+ super.handleNotificationEvent(event);
+ }
+
+ /**
+ * @generated
+ */
+ protected IFigure createFigure() {
+ // Parent should assign one using setLabel() method
+ return null;
+ }
+
+}
diff --git a/org.eclipse.emf.refactor.comrel.diagram/src/comrel/diagram/edit/parts/SequentialUnitNameTypeLblStrict4EditPart.java b/org.eclipse.emf.refactor.comrel.diagram/src/comrel/diagram/edit/parts/SequentialUnitNameTypeLblStrict4EditPart.java
new file mode 100644
index 0000000..8fb1e59
--- /dev/null
+++ b/org.eclipse.emf.refactor.comrel.diagram/src/comrel/diagram/edit/parts/SequentialUnitNameTypeLblStrict4EditPart.java
@@ -0,0 +1,576 @@
+/*
+ *
+ */
+package comrel.diagram.edit.parts;
+
+import java.util.Collections;
+import java.util.List;
+
+import org.eclipse.draw2d.IFigure;
+import org.eclipse.draw2d.Label;
+import org.eclipse.draw2d.geometry.Point;
+import org.eclipse.emf.common.notify.Notification;
+import org.eclipse.emf.ecore.EObject;
+import org.eclipse.emf.transaction.RunnableWithResult;
+import org.eclipse.gef.AccessibleEditPart;
+import org.eclipse.gef.EditPolicy;
+import org.eclipse.gef.Request;
+import org.eclipse.gef.requests.DirectEditRequest;
+import org.eclipse.gef.tools.DirectEditManager;
+import org.eclipse.gmf.runtime.common.ui.services.parser.IParser;
+import org.eclipse.gmf.runtime.common.ui.services.parser.IParserEditStatus;
+import org.eclipse.gmf.runtime.common.ui.services.parser.ParserEditStatus;
+import org.eclipse.gmf.runtime.common.ui.services.parser.ParserOptions;
+import org.eclipse.gmf.runtime.diagram.ui.editparts.CompartmentEditPart;
+import org.eclipse.gmf.runtime.diagram.ui.editparts.IGraphicalEditPart;
+import org.eclipse.gmf.runtime.diagram.ui.editparts.ITextAwareEditPart;
+import org.eclipse.gmf.runtime.diagram.ui.editpolicies.LabelDirectEditPolicy;
+import org.eclipse.gmf.runtime.diagram.ui.l10n.DiagramColorRegistry;
+import org.eclipse.gmf.runtime.diagram.ui.requests.RequestConstants;
+import org.eclipse.gmf.runtime.diagram.ui.tools.TextDirectEditManager;
+import org.eclipse.gmf.runtime.draw2d.ui.figures.WrappingLabel;
+import org.eclipse.gmf.runtime.emf.core.util.EObjectAdapter;
+import org.eclipse.gmf.runtime.emf.ui.services.parser.ISemanticParser;
+import org.eclipse.gmf.runtime.notation.FontStyle;
+import org.eclipse.gmf.runtime.notation.NotationPackage;
+import org.eclipse.gmf.runtime.notation.View;
+import org.eclipse.jface.text.contentassist.IContentAssistProcessor;
+import org.eclipse.jface.viewers.ICellEditorValidator;
+import org.eclipse.swt.SWT;
+import org.eclipse.swt.accessibility.AccessibleEvent;
+import org.eclipse.swt.graphics.Color;
+import org.eclipse.swt.graphics.FontData;
+import org.eclipse.swt.graphics.Image;
+
+import comrel.diagram.edit.policies.ComrelTextSelectionEditPolicy;
+import comrel.diagram.part.ComrelVisualIDRegistry;
+import comrel.diagram.providers.ComrelElementTypes;
+import comrel.diagram.providers.ComrelParserProvider;
+
+/**
+ * @generated
+ */
+public class SequentialUnitNameTypeLblStrict4EditPart extends
+ CompartmentEditPart implements ITextAwareEditPart {
+
+ /**
+ * @generated
+ */
+ public static final int VISUAL_ID = 5062;
+
+ /**
+ * @generated
+ */
+ private DirectEditManager manager;
+
+ /**
+ * @generated
+ */
+ private IParser parser;
+
+ /**
+ * @generated
+ */
+ private List<?> parserElements;
+
+ /**
+ * @generated
+ */
+ private String defaultText;
+
+ /**
+ * @generated
+ */
+ public SequentialUnitNameTypeLblStrict4EditPart(View view) {
+ super(view);
+ }
+
+ /**
+ * @generated
+ */
+ protected void createDefaultEditPolicies() {
+ super.createDefaultEditPolicies();
+ installEditPolicy(EditPolicy.SELECTION_FEEDBACK_ROLE,
+ new ComrelTextSelectionEditPolicy());
+ installEditPolicy(EditPolicy.DIRECT_EDIT_ROLE,
+ new LabelDirectEditPolicy());
+ installEditPolicy(EditPolicy.PRIMARY_DRAG_ROLE,
+ new CompositeRefactoringEditPart.NodeLabelDragPolicy());
+ }
+
+ /**
+ * @generated
+ */
+ protected String getLabelTextHelper(IFigure figure) {
+ if (figure instanceof WrappingLabel) {
+ return ((WrappingLabel) figure).getText();
+ } else {
+ return ((Label) figure).getText();
+ }
+ }
+
+ /**
+ * @generated
+ */
+ protected void setLabelTextHelper(IFigure figure, String text) {
+ if (figure instanceof WrappingLabel) {
+ ((WrappingLabel) figure).setText(text);
+ } else {
+ ((Label) figure).setText(text);
+ }
+ }
+
+ /**
+ * @generated
+ */
+ protected Image getLabelIconHelper(IFigure figure) {
+ if (figure instanceof WrappingLabel) {
+ return ((WrappingLabel) figure).getIcon();
+ } else {
+ return ((Label) figure).getIcon();
+ }
+ }
+
+ /**
+ * @generated
+ */
+ protected void setLabelIconHelper(IFigure figure, Image icon) {
+ if (figure instanceof WrappingLabel) {
+ ((WrappingLabel) figure).setIcon(icon);
+ } else {
+ ((Label) figure).setIcon(icon);
+ }
+ }
+
+ /**
+ * @generated
+ */
+ public void setLabel(WrappingLabel figure) {
+ unregisterVisuals();
+ setFigure(figure);
+ defaultText = getLabelTextHelper(figure);
+ registerVisuals();
+ refreshVisuals();
+ }
+
+ /**
+ * @generated
+ */
+ @SuppressWarnings("rawtypes")
+ protected List getModelChildren() {
+ return Collections.EMPTY_LIST;
+ }
+
+ /**
+ * @generated
+ */
+ public IGraphicalEditPart getChildBySemanticHint(String semanticHint) {
+ return null;
+ }
+
+ /**
+ * @generated
+ */
+ protected EObject getParserElement() {
+ return resolveSemanticElement();
+ }
+
+ /**
+ * @generated
+ */
+ protected Image getLabelIcon() {
+ return null;
+ }
+
+ /**
+ * @generated
+ */
+ protected String getLabelText() {
+ String text = null;
+ EObject parserElement = getParserElement();
+ if (parserElement != null && getParser() != null) {
+ text = getParser().getPrintString(
+ new EObjectAdapter(parserElement),
+ getParserOptions().intValue());
+ }
+ if (text == null || text.length() == 0) {
+ text = defaultText;
+ }
+ return text;
+ }
+
+ /**
+ * @generated
+ */
+ public void setLabelText(String text) {
+ setLabelTextHelper(getFigure(), text);
+ Object pdEditPolicy = getEditPolicy(EditPolicy.PRIMARY_DRAG_ROLE);
+ if (pdEditPolicy instanceof ComrelTextSelectionEditPolicy) {
+ ((ComrelTextSelectionEditPolicy) pdEditPolicy).refreshFeedback();
+ }
+ Object sfEditPolicy = getEditPolicy(EditPolicy.SELECTION_FEEDBACK_ROLE);
+ if (sfEditPolicy instanceof ComrelTextSelectionEditPolicy) {
+ ((ComrelTextSelectionEditPolicy) sfEditPolicy).refreshFeedback();
+ }
+ }
+
+ /**
+ * @generated
+ */
+ public String getEditText() {
+ if (getParserElement() == null || getParser() == null) {
+ return ""; //$NON-NLS-1$
+ }
+ return getParser().getEditString(
+ new EObjectAdapter(getParserElement()),
+ getParserOptions().intValue());
+ }
+
+ /**
+ * @generated
+ */
+ protected boolean isEditable() {
+ return getParser() != null;
+ }
+
+ /**
+ * @generated
+ */
+ public ICellEditorValidator getEditTextValidator() {
+ return new ICellEditorValidator() {
+
+ public String isValid(final Object value) {
+ if (value instanceof String) {
+ final EObject element = getParserElement();
+ final IParser parser = getParser();
+ try {
+ IParserEditStatus valid = (IParserEditStatus) getEditingDomain()
+ .runExclusive(
+ new RunnableWithResult.Impl<IParserEditStatus>() {
+
+ public void run() {
+ setResult(parser
+ .isValidEditString(
+ new EObjectAdapter(
+ element),
+ (String) value));
+ }
+ });
+ return valid.getCode() == ParserEditStatus.EDITABLE ? null
+ : valid.getMessage();
+ } catch (InterruptedException ie) {
+ ie.printStackTrace();
+ }
+ }
+
+ // shouldn't get here
+ return null;
+ }
+ };
+ }
+
+ /**
+ * @generated
+ */
+ public IContentAssistProcessor getCompletionProcessor() {
+ if (getParserElement() == null || getParser() == null) {
+ return null;
+ }
+ return getParser().getCompletionProcessor(
+ new EObjectAdapter(getParserElement()));
+ }
+
+ /**
+ * @generated
+ */
+ public ParserOptions getParserOptions() {
+ return ParserOptions.NONE;
+ }
+
+ /**
+ * @generated
+ */
+ public IParser getParser() {
+ if (parser == null) {
+ parser = ComrelParserProvider
+ .getParser(
+ ComrelElementTypes.SequentialUnit_3060,
+ getParserElement(),
+ ComrelVisualIDRegistry
+ .getType(comrel.diagram.edit.parts.SequentialUnitNameTypeLblStrict4EditPart.VISUAL_ID));
+ }
+ return parser;
+ }
+
+ /**
+ * @generated
+ */
+ protected DirectEditManager getManager() {
+ if (manager == null) {
+ setManager(new TextDirectEditManager(this,
+ TextDirectEditManager.getTextCellEditorClass(this),
+ ComrelEditPartFactory.getTextCellEditorLocator(this)));
+ }
+ return manager;
+ }
+
+ /**
+ * @generated
+ */
+ protected void setManager(DirectEditManager manager) {
+ this.manager = manager;
+ }
+
+ /**
+ * @generated
+ */
+ protected void performDirectEdit() {
+ getManager().show();
+ }
+
+ /**
+ * @generated
+ */
+ protected void performDirectEdit(Point eventLocation) {
+ if (getManager().getClass() == TextDirectEditManager.class) {
+ ((TextDirectEditManager) getManager()).show(eventLocation
+ .getSWTPoint());
+ }
+ }
+
+ /**
+ * @generated
+ */
+ private void performDirectEdit(char initialCharacter) {
+ if (getManager() instanceof TextDirectEditManager) {
+ ((TextDirectEditManager) getManager()).show(initialCharacter);
+ } else {
+ performDirectEdit();
+ }
+ }
+
+ /**
+ * @generated
+ */
+ protected void performDirectEditRequest(Request request) {
+ final Request theRequest = request;
+ try {
+ getEditingDomain().runExclusive(new Runnable() {
+
+ public void run() {
+ if (isActive() && isEditable()) {
+ if (theRequest
+ .getExtendedData()
+ .get(RequestConstants.REQ_DIRECTEDIT_EXTENDEDDATA_INITIAL_CHAR) instanceof Character) {
+ Character initialChar = (Character) theRequest
+ .getExtendedData()
+ .get(RequestConstants.REQ_DIRECTEDIT_EXTENDEDDATA_INITIAL_CHAR);
+ performDirectEdit(initialChar.charValue());
+ } else if ((theRequest instanceof DirectEditRequest)
+ && (getEditText().equals(getLabelText()))) {
+ DirectEditRequest editRequest = (DirectEditRequest) theRequest;
+ performDirectEdit(editRequest.getLocation());
+ } else {
+ performDirectEdit();
+ }
+ }
+ }
+ });
+ } catch (InterruptedException e) {
+ e.printStackTrace();
+ }
+ }
+
+ /**
+ * @generated
+ */
+ protected void refreshVisuals() {
+ super.refreshVisuals();
+ refreshLabel();
+ refreshFont();
+ refreshFontColor();
+ refreshUnderline();
+ refreshStrikeThrough();
+ }
+
+ /**
+ * @generated
+ */
+ protected void refreshLabel() {
+ setLabelTextHelper(getFigure(), getLabelText());
+ setLabelIconHelper(getFigure(), getLabelIcon());
+ Object pdEditPolicy = getEditPolicy(EditPolicy.PRIMARY_DRAG_ROLE);
+ if (pdEditPolicy instanceof ComrelTextSelectionEditPolicy) {
+ ((ComrelTextSelectionEditPolicy) pdEditPolicy).refreshFeedback();
+ }
+ Object sfEditPolicy = getEditPolicy(EditPolicy.SELECTION_FEEDBACK_ROLE);
+ if (sfEditPolicy instanceof ComrelTextSelectionEditPolicy) {
+ ((ComrelTextSelectionEditPolicy) sfEditPolicy).refreshFeedback();
+ }
+ }
+
+ /**
+ * @generated
+ */
+ protected void refreshUnderline() {
+ FontStyle style = (FontStyle) getFontStyleOwnerView().getStyle(
+ NotationPackage.eINSTANCE.getFontStyle());
+ if (style != null && getFigure() instanceof WrappingLabel) {
+ ((WrappingLabel) getFigure()).setTextUnderline(style.isUnderline());
+ }
+ }
+
+ /**
+ * @generated
+ */
+ protected void refreshStrikeThrough() {
+ FontStyle style = (FontStyle) getFontStyleOwnerView().getStyle(
+ NotationPackage.eINSTANCE.getFontStyle());
+ if (style != null && getFigure() instanceof WrappingLabel) {
+ ((WrappingLabel) getFigure()).setTextStrikeThrough(style
+ .isStrikeThrough());
+ }
+ }
+
+ /**
+ * @generated
+ */
+ protected void refreshFont() {
+ FontStyle style = (FontStyle) getFontStyleOwnerView().getStyle(
+ NotationPackage.eINSTANCE.getFontStyle());
+ if (style != null) {
+ FontData fontData = new FontData(style.getFontName(),
+ style.getFontHeight(), (style.isBold() ? SWT.BOLD
+ : SWT.NORMAL)
+ | (style.isItalic() ? SWT.ITALIC : SWT.NORMAL));
+ setFont(fontData);
+ }
+ }
+
+ /**
+ * @generated
+ */
+ protected void setFontColor(Color color) {
+ getFigure().setForegroundColor(color);
+ }
+
+ /**
+ * @generated
+ */
+ protected void addSemanticListeners() {
+ if (getParser() instanceof ISemanticParser) {
+ EObject element = resolveSemanticElement();
+ parserElements = ((ISemanticParser) getParser())
+ .getSemanticElementsBeingParsed(element);
+ for (int i = 0; i < parserElements.size(); i++) {
+ addListenerFilter(
+ "SemanticModel" + i, this, (EObject) parserElements.get(i)); //$NON-NLS-1$
+ }
+ } else {
+ super.addSemanticListeners();
+ }
+ }
+
+ /**
+ * @generated
+ */
+ protected void removeSemanticListeners() {
+ if (parserElements != null) {
+ for (int i = 0; i < parserElements.size(); i++) {
+ removeListenerFilter("SemanticModel" + i); //$NON-NLS-1$
+ }
+ } else {
+ super.removeSemanticListeners();
+ }
+ }
+
+ /**
+ * @generated
+ */
+ protected AccessibleEditPart getAccessibleEditPart() {
+ if (accessibleEP == null) {
+ accessibleEP = new AccessibleGraphicalEditPart() {
+
+ public void getName(AccessibleEvent e) {
+ e.result = getLabelTextHelper(getFigure());
+ }
+ };
+ }
+ return accessibleEP;
+ }
+
+ /**
+ * @generated
+ */
+ private View getFontStyleOwnerView() {
+ return getPrimaryView();
+ }
+
+ /**
+ * @generated
+ */
+ protected void addNotationalListeners() {
+ super.addNotationalListeners();
+ addListenerFilter("PrimaryView", this, getPrimaryView()); //$NON-NLS-1$
+ }
+
+ /**
+ * @generated
+ */
+ protected void removeNotationalListeners() {
+ super.removeNotationalListeners();
+ removeListenerFilter("PrimaryView"); //$NON-NLS-1$
+ }
+
+ /**
+ * @generated
+ */
+ protected void handleNotificationEvent(Notification event) {
+ Object feature = event.getFeature();
+ if (NotationPackage.eINSTANCE.getFontStyle_FontColor().equals(feature)) {
+ Integer c = (Integer) event.getNewValue();
+ setFontColor(DiagramColorRegistry.getInstance().getColor(c));
+ } else if (NotationPackage.eINSTANCE.getFontStyle_Underline().equals(
+ feature)) {
+ refreshUnderline();
+ } else if (NotationPackage.eINSTANCE.getFontStyle_StrikeThrough()
+ .equals(feature)) {
+ refreshStrikeThrough();
+ } else if (NotationPackage.eINSTANCE.getFontStyle_FontHeight().equals(
+ feature)
+ || NotationPackage.eINSTANCE.getFontStyle_FontName().equals(
+ feature)
+ || NotationPackage.eINSTANCE.getFontStyle_Bold()
+ .equals(feature)
+ || NotationPackage.eINSTANCE.getFontStyle_Italic().equals(
+ feature)) {
+ refreshFont();
+ } else {
+ if (getParser() != null
+ && getParser().isAffectingEvent(event,
+ getParserOptions().intValue())) {
+ refreshLabel();
+ }
+ if (getParser() instanceof ISemanticParser) {
+ ISemanticParser modelParser = (ISemanticParser) getParser();
+ if (modelParser.areSemanticElementsAffected(null, event)) {
+ removeSemanticListeners();
+ if (resolveSemanticElement() != null) {
+ addSemanticListeners();
+ }
+ refreshLabel();
+ }
+ }
+ }
+ super.handleNotificationEvent(event);
+ }
+
+ /**
+ * @generated
+ */
+ protected IFigure createFigure() {
+ // Parent should assign one using setLabel() method
+ return null;
+ }
+
+}
diff --git a/org.eclipse.emf.refactor.comrel.diagram/src/comrel/diagram/edit/parts/SequentialUnitNameTypeLblStrict5EditPart.java b/org.eclipse.emf.refactor.comrel.diagram/src/comrel/diagram/edit/parts/SequentialUnitNameTypeLblStrict5EditPart.java
new file mode 100644
index 0000000..9d5b659
--- /dev/null
+++ b/org.eclipse.emf.refactor.comrel.diagram/src/comrel/diagram/edit/parts/SequentialUnitNameTypeLblStrict5EditPart.java
@@ -0,0 +1,576 @@
+/*
+ *
+ */
+package comrel.diagram.edit.parts;
+
+import java.util.Collections;
+import java.util.List;
+
+import org.eclipse.draw2d.IFigure;
+import org.eclipse.draw2d.Label;
+import org.eclipse.draw2d.geometry.Point;
+import org.eclipse.emf.common.notify.Notification;
+import org.eclipse.emf.ecore.EObject;
+import org.eclipse.emf.transaction.RunnableWithResult;
+import org.eclipse.gef.AccessibleEditPart;
+import org.eclipse.gef.EditPolicy;
+import org.eclipse.gef.Request;
+import org.eclipse.gef.requests.DirectEditRequest;
+import org.eclipse.gef.tools.DirectEditManager;
+import org.eclipse.gmf.runtime.common.ui.services.parser.IParser;
+import org.eclipse.gmf.runtime.common.ui.services.parser.IParserEditStatus;
+import org.eclipse.gmf.runtime.common.ui.services.parser.ParserEditStatus;
+import org.eclipse.gmf.runtime.common.ui.services.parser.ParserOptions;
+import org.eclipse.gmf.runtime.diagram.ui.editparts.CompartmentEditPart;
+import org.eclipse.gmf.runtime.diagram.ui.editparts.IGraphicalEditPart;
+import org.eclipse.gmf.runtime.diagram.ui.editparts.ITextAwareEditPart;
+import org.eclipse.gmf.runtime.diagram.ui.editpolicies.LabelDirectEditPolicy;
+import org.eclipse.gmf.runtime.diagram.ui.l10n.DiagramColorRegistry;
+import org.eclipse.gmf.runtime.diagram.ui.requests.RequestConstants;
+import org.eclipse.gmf.runtime.diagram.ui.tools.TextDirectEditManager;
+import org.eclipse.gmf.runtime.draw2d.ui.figures.WrappingLabel;
+import org.eclipse.gmf.runtime.emf.core.util.EObjectAdapter;
+import org.eclipse.gmf.runtime.emf.ui.services.parser.ISemanticParser;
+import org.eclipse.gmf.runtime.notation.FontStyle;
+import org.eclipse.gmf.runtime.notation.NotationPackage;
+import org.eclipse.gmf.runtime.notation.View;
+import org.eclipse.jface.text.contentassist.IContentAssistProcessor;
+import org.eclipse.jface.viewers.ICellEditorValidator;
+import org.eclipse.swt.SWT;
+import org.eclipse.swt.accessibility.AccessibleEvent;
+import org.eclipse.swt.graphics.Color;
+import org.eclipse.swt.graphics.FontData;
+import org.eclipse.swt.graphics.Image;
+
+import comrel.diagram.edit.policies.ComrelTextSelectionEditPolicy;
+import comrel.diagram.part.ComrelVisualIDRegistry;
+import comrel.diagram.providers.ComrelElementTypes;
+import comrel.diagram.providers.ComrelParserProvider;
+
+/**
+ * @generated
+ */
+public class SequentialUnitNameTypeLblStrict5EditPart extends
+ CompartmentEditPart implements ITextAwareEditPart {
+
+ /**
+ * @generated
+ */
+ public static final int VISUAL_ID = 5059;
+
+ /**
+ * @generated
+ */
+ private DirectEditManager manager;
+
+ /**
+ * @generated
+ */
+ private IParser parser;
+
+ /**
+ * @generated
+ */
+ private List<?> parserElements;
+
+ /**
+ * @generated
+ */
+ private String defaultText;
+
+ /**
+ * @generated
+ */
+ public SequentialUnitNameTypeLblStrict5EditPart(View view) {
+ super(view);
+ }
+
+ /**
+ * @generated
+ */
+ protected void createDefaultEditPolicies() {
+ super.createDefaultEditPolicies();
+ installEditPolicy(EditPolicy.SELECTION_FEEDBACK_ROLE,
+ new ComrelTextSelectionEditPolicy());
+ installEditPolicy(EditPolicy.DIRECT_EDIT_ROLE,
+ new LabelDirectEditPolicy());
+ installEditPolicy(EditPolicy.PRIMARY_DRAG_ROLE,
+ new CompositeRefactoringEditPart.NodeLabelDragPolicy());
+ }
+
+ /**
+ * @generated
+ */
+ protected String getLabelTextHelper(IFigure figure) {
+ if (figure instanceof WrappingLabel) {
+ return ((WrappingLabel) figure).getText();
+ } else {
+ return ((Label) figure).getText();
+ }
+ }
+
+ /**
+ * @generated
+ */
+ protected void setLabelTextHelper(IFigure figure, String text) {
+ if (figure instanceof WrappingLabel) {
+ ((WrappingLabel) figure).setText(text);
+ } else {
+ ((Label) figure).setText(text);
+ }
+ }
+
+ /**
+ * @generated
+ */
+ protected Image getLabelIconHelper(IFigure figure) {
+ if (figure instanceof WrappingLabel) {
+ return ((WrappingLabel) figure).getIcon();
+ } else {
+ return ((Label) figure).getIcon();
+ }
+ }
+
+ /**
+ * @generated
+ */
+ protected void setLabelIconHelper(IFigure figure, Image icon) {
+ if (figure instanceof WrappingLabel) {
+ ((WrappingLabel) figure).setIcon(icon);
+ } else {
+ ((Label) figure).setIcon(icon);
+ }
+ }
+
+ /**
+ * @generated
+ */
+ public void setLabel(WrappingLabel figure) {
+ unregisterVisuals();
+ setFigure(figure);
+ defaultText = getLabelTextHelper(figure);
+ registerVisuals();
+ refreshVisuals();
+ }
+
+ /**
+ * @generated
+ */
+ @SuppressWarnings("rawtypes")
+ protected List getModelChildren() {
+ return Collections.EMPTY_LIST;
+ }
+
+ /**
+ * @generated
+ */
+ public IGraphicalEditPart getChildBySemanticHint(String semanticHint) {
+ return null;
+ }
+
+ /**
+ * @generated
+ */
+ protected EObject getParserElement() {
+ return resolveSemanticElement();
+ }
+
+ /**
+ * @generated
+ */
+ protected Image getLabelIcon() {
+ return null;
+ }
+
+ /**
+ * @generated
+ */
+ protected String getLabelText() {
+ String text = null;
+ EObject parserElement = getParserElement();
+ if (parserElement != null && getParser() != null) {
+ text = getParser().getPrintString(
+ new EObjectAdapter(parserElement),
+ getParserOptions().intValue());
+ }
+ if (text == null || text.length() == 0) {
+ text = defaultText;
+ }
+ return text;
+ }
+
+ /**
+ * @generated
+ */
+ public void setLabelText(String text) {
+ setLabelTextHelper(getFigure(), text);
+ Object pdEditPolicy = getEditPolicy(EditPolicy.PRIMARY_DRAG_ROLE);
+ if (pdEditPolicy instanceof ComrelTextSelectionEditPolicy) {
+ ((ComrelTextSelectionEditPolicy) pdEditPolicy).refreshFeedback();
+ }
+ Object sfEditPolicy = getEditPolicy(EditPolicy.SELECTION_FEEDBACK_ROLE);
+ if (sfEditPolicy instanceof ComrelTextSelectionEditPolicy) {
+ ((ComrelTextSelectionEditPolicy) sfEditPolicy).refreshFeedback();
+ }
+ }
+
+ /**
+ * @generated
+ */
+ public String getEditText() {
+ if (getParserElement() == null || getParser() == null) {
+ return ""; //$NON-NLS-1$
+ }
+ return getParser().getEditString(
+ new EObjectAdapter(getParserElement()),
+ getParserOptions().intValue());
+ }
+
+ /**
+ * @generated
+ */
+ protected boolean isEditable() {
+ return getParser() != null;
+ }
+
+ /**
+ * @generated
+ */
+ public ICellEditorValidator getEditTextValidator() {
+ return new ICellEditorValidator() {
+
+ public String isValid(final Object value) {
+ if (value instanceof String) {
+ final EObject element = getParserElement();
+ final IParser parser = getParser();
+ try {
+ IParserEditStatus valid = (IParserEditStatus) getEditingDomain()
+ .runExclusive(
+ new RunnableWithResult.Impl<IParserEditStatus>() {
+
+ public void run() {
+ setResult(parser
+ .isValidEditString(
+ new EObjectAdapter(
+ element),
+ (String) value));
+ }
+ });
+ return valid.getCode() == ParserEditStatus.EDITABLE ? null
+ : valid.getMessage();
+ } catch (InterruptedException ie) {
+ ie.printStackTrace();
+ }
+ }
+
+ // shouldn't get here
+ return null;
+ }
+ };
+ }
+
+ /**
+ * @generated
+ */
+ public IContentAssistProcessor getCompletionProcessor() {
+ if (getParserElement() == null || getParser() == null) {
+ return null;
+ }
+ return getParser().getCompletionProcessor(
+ new EObjectAdapter(getParserElement()));
+ }
+
+ /**
+ * @generated
+ */
+ public ParserOptions getParserOptions() {
+ return ParserOptions.NONE;
+ }
+
+ /**
+ * @generated
+ */
+ public IParser getParser() {
+ if (parser == null) {
+ parser = ComrelParserProvider
+ .getParser(
+ ComrelElementTypes.SequentialUnit_3069,
+ getParserElement(),
+ ComrelVisualIDRegistry
+ .getType(comrel.diagram.edit.parts.SequentialUnitNameTypeLblStrict5EditPart.VISUAL_ID));
+ }
+ return parser;
+ }
+
+ /**
+ * @generated
+ */
+ protected DirectEditManager getManager() {
+ if (manager == null) {
+ setManager(new TextDirectEditManager(this,
+ TextDirectEditManager.getTextCellEditorClass(this),
+ ComrelEditPartFactory.getTextCellEditorLocator(this)));
+ }
+ return manager;
+ }
+
+ /**
+ * @generated
+ */
+ protected void setManager(DirectEditManager manager) {
+ this.manager = manager;
+ }
+
+ /**
+ * @generated
+ */
+ protected void performDirectEdit() {
+ getManager().show();
+ }
+
+ /**
+ * @generated
+ */
+ protected void performDirectEdit(Point eventLocation) {
+ if (getManager().getClass() == TextDirectEditManager.class) {
+ ((TextDirectEditManager) getManager()).show(eventLocation
+ .getSWTPoint());
+ }
+ }
+
+ /**
+ * @generated
+ */
+ private void performDirectEdit(char initialCharacter) {
+ if (getManager() instanceof TextDirectEditManager) {
+ ((TextDirectEditManager) getManager()).show(initialCharacter);
+ } else {
+ performDirectEdit();
+ }
+ }
+
+ /**
+ * @generated
+ */
+ protected void performDirectEditRequest(Request request) {
+ final Request theRequest = request;
+ try {
+ getEditingDomain().runExclusive(new Runnable() {
+
+ public void run() {
+ if (isActive() && isEditable()) {
+ if (theRequest
+ .getExtendedData()
+ .get(RequestConstants.REQ_DIRECTEDIT_EXTENDEDDATA_INITIAL_CHAR) instanceof Character) {
+ Character initialChar = (Character) theRequest
+ .getExtendedData()
+ .get(RequestConstants.REQ_DIRECTEDIT_EXTENDEDDATA_INITIAL_CHAR);
+ performDirectEdit(initialChar.charValue());
+ } else if ((theRequest instanceof DirectEditRequest)
+ && (getEditText().equals(getLabelText()))) {
+ DirectEditRequest editRequest = (DirectEditRequest) theRequest;
+ performDirectEdit(editRequest.getLocation());
+ } else {
+ performDirectEdit();
+ }
+ }
+ }
+ });
+ } catch (InterruptedException e) {
+ e.printStackTrace();
+ }
+ }
+
+ /**
+ * @generated
+ */
+ protected void refreshVisuals() {
+ super.refreshVisuals();
+ refreshLabel();
+ refreshFont();
+ refreshFontColor();
+ refreshUnderline();
+ refreshStrikeThrough();
+ }
+
+ /**
+ * @generated
+ */
+ protected void refreshLabel() {
+ setLabelTextHelper(getFigure(), getLabelText());
+ setLabelIconHelper(getFigure(), getLabelIcon());
+ Object pdEditPolicy = getEditPolicy(EditPolicy.PRIMARY_DRAG_ROLE);
+ if (pdEditPolicy instanceof ComrelTextSelectionEditPolicy) {
+ ((ComrelTextSelectionEditPolicy) pdEditPolicy).refreshFeedback();
+ }
+ Object sfEditPolicy = getEditPolicy(EditPolicy.SELECTION_FEEDBACK_ROLE);
+ if (sfEditPolicy instanceof ComrelTextSelectionEditPolicy) {
+ ((ComrelTextSelectionEditPolicy) sfEditPolicy).refreshFeedback();
+ }
+ }
+
+ /**
+ * @generated
+ */
+ protected void refreshUnderline() {
+ FontStyle style = (FontStyle) getFontStyleOwnerView().getStyle(
+ NotationPackage.eINSTANCE.getFontStyle());
+ if (style != null && getFigure() instanceof WrappingLabel) {
+ ((WrappingLabel) getFigure()).setTextUnderline(style.isUnderline());
+ }
+ }
+
+ /**
+ * @generated
+ */
+ protected void refreshStrikeThrough() {
+ FontStyle style = (FontStyle) getFontStyleOwnerView().getStyle(
+ NotationPackage.eINSTANCE.getFontStyle());
+ if (style != null && getFigure() instanceof WrappingLabel) {
+ ((WrappingLabel) getFigure()).setTextStrikeThrough(style
+ .isStrikeThrough());
+ }
+ }
+
+ /**
+ * @generated
+ */
+ protected void refreshFont() {
+ FontStyle style = (FontStyle) getFontStyleOwnerView().getStyle(
+ NotationPackage.eINSTANCE.getFontStyle());
+ if (style != null) {
+ FontData fontData = new FontData(style.getFontName(),
+ style.getFontHeight(), (style.isBold() ? SWT.BOLD
+ : SWT.NORMAL)
+ | (style.isItalic() ? SWT.ITALIC : SWT.NORMAL));
+ setFont(fontData);
+ }
+ }
+
+ /**
+ * @generated
+ */
+ protected void setFontColor(Color color) {
+ getFigure().setForegroundColor(color);
+ }
+
+ /**
+ * @generated
+ */
+ protected void addSemanticListeners() {
+ if (getParser() instanceof ISemanticParser) {
+ EObject element = resolveSemanticElement();
+ parserElements = ((ISemanticParser) getParser())
+ .getSemanticElementsBeingParsed(element);
+ for (int i = 0; i < parserElements.size(); i++) {
+ addListenerFilter(
+ "SemanticModel" + i, this, (EObject) parserElements.get(i)); //$NON-NLS-1$
+ }
+ } else {
+ super.addSemanticListeners();
+ }
+ }
+
+ /**
+ * @generated
+ */
+ protected void removeSemanticListeners() {
+ if (parserElements != null) {
+ for (int i = 0; i < parserElements.size(); i++) {
+ removeListenerFilter("SemanticModel" + i); //$NON-NLS-1$
+ }
+ } else {
+ super.removeSemanticListeners();
+ }
+ }
+
+ /**
+ * @generated
+ */
+ protected AccessibleEditPart getAccessibleEditPart() {
+ if (accessibleEP == null) {
+ accessibleEP = new AccessibleGraphicalEditPart() {
+
+ public void getName(AccessibleEvent e) {
+ e.result = getLabelTextHelper(getFigure());
+ }
+ };
+ }
+ return accessibleEP;
+ }
+
+ /**
+ * @generated
+ */
+ private View getFontStyleOwnerView() {
+ return getPrimaryView();
+ }
+
+ /**
+ * @generated
+ */
+ protected void addNotationalListeners() {
+ super.addNotationalListeners();
+ addListenerFilter("PrimaryView", this, getPrimaryView()); //$NON-NLS-1$
+ }
+
+ /**
+ * @generated
+ */
+ protected void removeNotationalListeners() {
+ super.removeNotationalListeners();
+ removeListenerFilter("PrimaryView"); //$NON-NLS-1$
+ }
+
+ /**
+ * @generated
+ */
+ protected void handleNotificationEvent(Notification event) {
+ Object feature = event.getFeature();
+ if (NotationPackage.eINSTANCE.getFontStyle_FontColor().equals(feature)) {
+ Integer c = (Integer) event.getNewValue();
+ setFontColor(DiagramColorRegistry.getInstance().getColor(c));
+ } else if (NotationPackage.eINSTANCE.getFontStyle_Underline().equals(
+ feature)) {
+ refreshUnderline();
+ } else if (NotationPackage.eINSTANCE.getFontStyle_StrikeThrough()
+ .equals(feature)) {
+ refreshStrikeThrough();
+ } else if (NotationPackage.eINSTANCE.getFontStyle_FontHeight().equals(
+ feature)
+ || NotationPackage.eINSTANCE.getFontStyle_FontName().equals(
+ feature)
+ || NotationPackage.eINSTANCE.getFontStyle_Bold()
+ .equals(feature)
+ || NotationPackage.eINSTANCE.getFontStyle_Italic().equals(
+ feature)) {
+ refreshFont();
+ } else {
+ if (getParser() != null
+ && getParser().isAffectingEvent(event,
+ getParserOptions().intValue())) {
+ refreshLabel();
+ }
+ if (getParser() instanceof ISemanticParser) {
+ ISemanticParser modelParser = (ISemanticParser) getParser();
+ if (modelParser.areSemanticElementsAffected(null, event)) {
+ removeSemanticListeners();
+ if (resolveSemanticElement() != null) {
+ addSemanticListeners();
+ }
+ refreshLabel();
+ }
+ }
+ }
+ super.handleNotificationEvent(event);
+ }
+
+ /**
+ * @generated
+ */
+ protected IFigure createFigure() {
+ // Parent should assign one using setLabel() method
+ return null;
+ }
+
+}
diff --git a/org.eclipse.emf.refactor.comrel.diagram/src/comrel/diagram/edit/parts/SequentialUnitNameTypeLblStrict6EditPart.java b/org.eclipse.emf.refactor.comrel.diagram/src/comrel/diagram/edit/parts/SequentialUnitNameTypeLblStrict6EditPart.java
new file mode 100644
index 0000000..aefb2bf
--- /dev/null
+++ b/org.eclipse.emf.refactor.comrel.diagram/src/comrel/diagram/edit/parts/SequentialUnitNameTypeLblStrict6EditPart.java
@@ -0,0 +1,576 @@
+/*
+ *
+ */
+package comrel.diagram.edit.parts;
+
+import java.util.Collections;
+import java.util.List;
+
+import org.eclipse.draw2d.IFigure;
+import org.eclipse.draw2d.Label;
+import org.eclipse.draw2d.geometry.Point;
+import org.eclipse.emf.common.notify.Notification;
+import org.eclipse.emf.ecore.EObject;
+import org.eclipse.emf.transaction.RunnableWithResult;
+import org.eclipse.gef.AccessibleEditPart;
+import org.eclipse.gef.EditPolicy;
+import org.eclipse.gef.Request;
+import org.eclipse.gef.requests.DirectEditRequest;
+import org.eclipse.gef.tools.DirectEditManager;
+import org.eclipse.gmf.runtime.common.ui.services.parser.IParser;
+import org.eclipse.gmf.runtime.common.ui.services.parser.IParserEditStatus;
+import org.eclipse.gmf.runtime.common.ui.services.parser.ParserEditStatus;
+import org.eclipse.gmf.runtime.common.ui.services.parser.ParserOptions;
+import org.eclipse.gmf.runtime.diagram.ui.editparts.CompartmentEditPart;
+import org.eclipse.gmf.runtime.diagram.ui.editparts.IGraphicalEditPart;
+import org.eclipse.gmf.runtime.diagram.ui.editparts.ITextAwareEditPart;
+import org.eclipse.gmf.runtime.diagram.ui.editpolicies.LabelDirectEditPolicy;
+import org.eclipse.gmf.runtime.diagram.ui.l10n.DiagramColorRegistry;
+import org.eclipse.gmf.runtime.diagram.ui.requests.RequestConstants;
+import org.eclipse.gmf.runtime.diagram.ui.tools.TextDirectEditManager;
+import org.eclipse.gmf.runtime.draw2d.ui.figures.WrappingLabel;
+import org.eclipse.gmf.runtime.emf.core.util.EObjectAdapter;
+import org.eclipse.gmf.runtime.emf.ui.services.parser.ISemanticParser;
+import org.eclipse.gmf.runtime.notation.FontStyle;
+import org.eclipse.gmf.runtime.notation.NotationPackage;
+import org.eclipse.gmf.runtime.notation.View;
+import org.eclipse.jface.text.contentassist.IContentAssistProcessor;
+import org.eclipse.jface.viewers.ICellEditorValidator;
+import org.eclipse.swt.SWT;
+import org.eclipse.swt.accessibility.AccessibleEvent;
+import org.eclipse.swt.graphics.Color;
+import org.eclipse.swt.graphics.FontData;
+import org.eclipse.swt.graphics.Image;
+
+import comrel.diagram.edit.policies.ComrelTextSelectionEditPolicy;
+import comrel.diagram.part.ComrelVisualIDRegistry;
+import comrel.diagram.providers.ComrelElementTypes;
+import comrel.diagram.providers.ComrelParserProvider;
+
+/**
+ * @generated
+ */
+public class SequentialUnitNameTypeLblStrict6EditPart extends
+ CompartmentEditPart implements ITextAwareEditPart {
+
+ /**
+ * @generated
+ */
+ public static final int VISUAL_ID = 5058;
+
+ /**
+ * @generated
+ */
+ private DirectEditManager manager;
+
+ /**
+ * @generated
+ */
+ private IParser parser;
+
+ /**
+ * @generated
+ */
+ private List<?> parserElements;
+
+ /**
+ * @generated
+ */
+ private String defaultText;
+
+ /**
+ * @generated
+ */
+ public SequentialUnitNameTypeLblStrict6EditPart(View view) {
+ super(view);
+ }
+
+ /**
+ * @generated
+ */
+ protected void createDefaultEditPolicies() {
+ super.createDefaultEditPolicies();
+ installEditPolicy(EditPolicy.SELECTION_FEEDBACK_ROLE,
+ new ComrelTextSelectionEditPolicy());
+ installEditPolicy(EditPolicy.DIRECT_EDIT_ROLE,
+ new LabelDirectEditPolicy());
+ installEditPolicy(EditPolicy.PRIMARY_DRAG_ROLE,
+ new CompositeRefactoringEditPart.NodeLabelDragPolicy());
+ }
+
+ /**
+ * @generated
+ */
+ protected String getLabelTextHelper(IFigure figure) {
+ if (figure instanceof WrappingLabel) {
+ return ((WrappingLabel) figure).getText();
+ } else {
+ return ((Label) figure).getText();
+ }
+ }
+
+ /**
+ * @generated
+ */
+ protected void setLabelTextHelper(IFigure figure, String text) {
+ if (figure instanceof WrappingLabel) {
+ ((WrappingLabel) figure).setText(text);
+ } else {
+ ((Label) figure).setText(text);
+ }
+ }
+
+ /**
+ * @generated
+ */
+ protected Image getLabelIconHelper(IFigure figure) {
+ if (figure instanceof WrappingLabel) {
+ return ((WrappingLabel) figure).getIcon();
+ } else {
+ return ((Label) figure).getIcon();
+ }
+ }
+
+ /**
+ * @generated
+ */
+ protected void setLabelIconHelper(IFigure figure, Image icon) {
+ if (figure instanceof WrappingLabel) {
+ ((WrappingLabel) figure).setIcon(icon);
+ } else {
+ ((Label) figure).setIcon(icon);
+ }
+ }
+
+ /**
+ * @generated
+ */
+ public void setLabel(WrappingLabel figure) {
+ unregisterVisuals();
+ setFigure(figure);
+ defaultText = getLabelTextHelper(figure);
+ registerVisuals();
+ refreshVisuals();
+ }
+
+ /**
+ * @generated
+ */
+ @SuppressWarnings("rawtypes")
+ protected List getModelChildren() {
+ return Collections.EMPTY_LIST;
+ }
+
+ /**
+ * @generated
+ */
+ public IGraphicalEditPart getChildBySemanticHint(String semanticHint) {
+ return null;
+ }
+
+ /**
+ * @generated
+ */
+ protected EObject getParserElement() {
+ return resolveSemanticElement();
+ }
+
+ /**
+ * @generated
+ */
+ protected Image getLabelIcon() {
+ return null;
+ }
+
+ /**
+ * @generated
+ */
+ protected String getLabelText() {
+ String text = null;
+ EObject parserElement = getParserElement();
+ if (parserElement != null && getParser() != null) {
+ text = getParser().getPrintString(
+ new EObjectAdapter(parserElement),
+ getParserOptions().intValue());
+ }
+ if (text == null || text.length() == 0) {
+ text = defaultText;
+ }
+ return text;
+ }
+
+ /**
+ * @generated
+ */
+ public void setLabelText(String text) {
+ setLabelTextHelper(getFigure(), text);
+ Object pdEditPolicy = getEditPolicy(EditPolicy.PRIMARY_DRAG_ROLE);
+ if (pdEditPolicy instanceof ComrelTextSelectionEditPolicy) {
+ ((ComrelTextSelectionEditPolicy) pdEditPolicy).refreshFeedback();
+ }
+ Object sfEditPolicy = getEditPolicy(EditPolicy.SELECTION_FEEDBACK_ROLE);
+ if (sfEditPolicy instanceof ComrelTextSelectionEditPolicy) {
+ ((ComrelTextSelectionEditPolicy) sfEditPolicy).refreshFeedback();
+ }
+ }
+
+ /**
+ * @generated
+ */
+ public String getEditText() {
+ if (getParserElement() == null || getParser() == null) {
+ return ""; //$NON-NLS-1$
+ }
+ return getParser().getEditString(
+ new EObjectAdapter(getParserElement()),
+ getParserOptions().intValue());
+ }
+
+ /**
+ * @generated
+ */
+ protected boolean isEditable() {
+ return getParser() != null;
+ }
+
+ /**
+ * @generated
+ */
+ public ICellEditorValidator getEditTextValidator() {
+ return new ICellEditorValidator() {
+
+ public String isValid(final Object value) {
+ if (value instanceof String) {
+ final EObject element = getParserElement();
+ final IParser parser = getParser();
+ try {
+ IParserEditStatus valid = (IParserEditStatus) getEditingDomain()
+ .runExclusive(
+ new RunnableWithResult.Impl<IParserEditStatus>() {
+
+ public void run() {
+ setResult(parser
+ .isValidEditString(
+ new EObjectAdapter(
+ element),
+ (String) value));
+ }
+ });
+ return valid.getCode() == ParserEditStatus.EDITABLE ? null
+ : valid.getMessage();
+ } catch (InterruptedException ie) {
+ ie.printStackTrace();
+ }
+ }
+
+ // shouldn't get here
+ return null;
+ }
+ };
+ }
+
+ /**
+ * @generated
+ */
+ public IContentAssistProcessor getCompletionProcessor() {
+ if (getParserElement() == null || getParser() == null) {
+ return null;
+ }
+ return getParser().getCompletionProcessor(
+ new EObjectAdapter(getParserElement()));
+ }
+
+ /**
+ * @generated
+ */
+ public ParserOptions getParserOptions() {
+ return ParserOptions.NONE;
+ }
+
+ /**
+ * @generated
+ */
+ public IParser getParser() {
+ if (parser == null) {
+ parser = ComrelParserProvider
+ .getParser(
+ ComrelElementTypes.SequentialUnit_3070,
+ getParserElement(),
+ ComrelVisualIDRegistry
+ .getType(comrel.diagram.edit.parts.SequentialUnitNameTypeLblStrict6EditPart.VISUAL_ID));
+ }
+ return parser;
+ }
+
+ /**
+ * @generated
+ */
+ protected DirectEditManager getManager() {
+ if (manager == null) {
+ setManager(new TextDirectEditManager(this,
+ TextDirectEditManager.getTextCellEditorClass(this),
+ ComrelEditPartFactory.getTextCellEditorLocator(this)));
+ }
+ return manager;
+ }
+
+ /**
+ * @generated
+ */
+ protected void setManager(DirectEditManager manager) {
+ this.manager = manager;
+ }
+
+ /**
+ * @generated
+ */
+ protected void performDirectEdit() {
+ getManager().show();
+ }
+
+ /**
+ * @generated
+ */
+ protected void performDirectEdit(Point eventLocation) {
+ if (getManager().getClass() == TextDirectEditManager.class) {
+ ((TextDirectEditManager) getManager()).show(eventLocation
+ .getSWTPoint());
+ }
+ }
+
+ /**
+ * @generated
+ */
+ private void performDirectEdit(char initialCharacter) {
+ if (getManager() instanceof TextDirectEditManager) {
+ ((TextDirectEditManager) getManager()).show(initialCharacter);
+ } else {
+ performDirectEdit();
+ }
+ }
+
+ /**
+ * @generated
+ */
+ protected void performDirectEditRequest(Request request) {
+ final Request theRequest = request;
+ try {
+ getEditingDomain().runExclusive(new Runnable() {
+
+ public void run() {
+ if (isActive() && isEditable()) {
+ if (theRequest
+ .getExtendedData()
+ .get(RequestConstants.REQ_DIRECTEDIT_EXTENDEDDATA_INITIAL_CHAR) instanceof Character) {
+ Character initialChar = (Character) theRequest
+ .getExtendedData()
+ .get(RequestConstants.REQ_DIRECTEDIT_EXTENDEDDATA_INITIAL_CHAR);
+ performDirectEdit(initialChar.charValue());
+ } else if ((theRequest instanceof DirectEditRequest)
+ && (getEditText().equals(getLabelText()))) {
+ DirectEditRequest editRequest = (DirectEditRequest) theRequest;
+ performDirectEdit(editRequest.getLocation());
+ } else {
+ performDirectEdit();
+ }
+ }
+ }
+ });
+ } catch (InterruptedException e) {
+ e.printStackTrace();
+ }
+ }
+
+ /**
+ * @generated
+ */
+ protected void refreshVisuals() {
+ super.refreshVisuals();
+ refreshLabel();
+ refreshFont();
+ refreshFontColor();
+ refreshUnderline();
+ refreshStrikeThrough();
+ }
+
+ /**
+ * @generated
+ */
+ protected void refreshLabel() {
+ setLabelTextHelper(getFigure(), getLabelText());
+ setLabelIconHelper(getFigure(), getLabelIcon());
+ Object pdEditPolicy = getEditPolicy(EditPolicy.PRIMARY_DRAG_ROLE);
+ if (pdEditPolicy instanceof ComrelTextSelectionEditPolicy) {
+ ((ComrelTextSelectionEditPolicy) pdEditPolicy).refreshFeedback();
+ }
+ Object sfEditPolicy = getEditPolicy(EditPolicy.SELECTION_FEEDBACK_ROLE);
+ if (sfEditPolicy instanceof ComrelTextSelectionEditPolicy) {
+ ((ComrelTextSelectionEditPolicy) sfEditPolicy).refreshFeedback();
+ }
+ }
+
+ /**
+ * @generated
+ */
+ protected void refreshUnderline() {
+ FontStyle style = (FontStyle) getFontStyleOwnerView().getStyle(
+ NotationPackage.eINSTANCE.getFontStyle());
+ if (style != null && getFigure() instanceof WrappingLabel) {
+ ((WrappingLabel) getFigure()).setTextUnderline(style.isUnderline());
+ }
+ }
+
+ /**
+ * @generated
+ */
+ protected void refreshStrikeThrough() {
+ FontStyle style = (FontStyle) getFontStyleOwnerView().getStyle(
+ NotationPackage.eINSTANCE.getFontStyle());
+ if (style != null && getFigure() instanceof WrappingLabel) {
+ ((WrappingLabel) getFigure()).setTextStrikeThrough(style
+ .isStrikeThrough());
+ }
+ }
+
+ /**
+ * @generated
+ */
+ protected void refreshFont() {
+ FontStyle style = (FontStyle) getFontStyleOwnerView().getStyle(
+ NotationPackage.eINSTANCE.getFontStyle());
+ if (style != null) {
+ FontData fontData = new FontData(style.getFontName(),
+ style.getFontHeight(), (style.isBold() ? SWT.BOLD
+ : SWT.NORMAL)
+ | (style.isItalic() ? SWT.ITALIC : SWT.NORMAL));
+ setFont(fontData);
+ }
+ }
+
+ /**
+ * @generated
+ */
+ protected void setFontColor(Color color) {
+ getFigure().setForegroundColor(color);
+ }
+
+ /**
+ * @generated
+ */
+ protected void addSemanticListeners() {
+ if (getParser() instanceof ISemanticParser) {
+ EObject element = resolveSemanticElement();
+ parserElements = ((ISemanticParser) getParser())
+ .getSemanticElementsBeingParsed(element);
+ for (int i = 0; i < parserElements.size(); i++) {
+ addListenerFilter(
+ "SemanticModel" + i, this, (EObject) parserElements.get(i)); //$NON-NLS-1$
+ }
+ } else {
+ super.addSemanticListeners();
+ }
+ }
+
+ /**
+ * @generated
+ */
+ protected void removeSemanticListeners() {
+ if (parserElements != null) {
+ for (int i = 0; i < parserElements.size(); i++) {
+ removeListenerFilter("SemanticModel" + i); //$NON-NLS-1$
+ }
+ } else {
+ super.removeSemanticListeners();
+ }
+ }
+
+ /**
+ * @generated
+ */
+ protected AccessibleEditPart getAccessibleEditPart() {
+ if (accessibleEP == null) {
+ accessibleEP = new AccessibleGraphicalEditPart() {
+
+ public void getName(AccessibleEvent e) {
+ e.result = getLabelTextHelper(getFigure());
+ }
+ };
+ }
+ return accessibleEP;
+ }
+
+ /**
+ * @generated
+ */
+ private View getFontStyleOwnerView() {
+ return getPrimaryView();
+ }
+
+ /**
+ * @generated
+ */
+ protected void addNotationalListeners() {
+ super.addNotationalListeners();
+ addListenerFilter("PrimaryView", this, getPrimaryView()); //$NON-NLS-1$
+ }
+
+ /**
+ * @generated
+ */
+ protected void removeNotationalListeners() {
+ super.removeNotationalListeners();
+ removeListenerFilter("PrimaryView"); //$NON-NLS-1$
+ }
+
+ /**
+ * @generated
+ */
+ protected void handleNotificationEvent(Notification event) {
+ Object feature = event.getFeature();
+ if (NotationPackage.eINSTANCE.getFontStyle_FontColor().equals(feature)) {
+ Integer c = (Integer) event.getNewValue();
+ setFontColor(DiagramColorRegistry.getInstance().getColor(c));
+ } else if (NotationPackage.eINSTANCE.getFontStyle_Underline().equals(
+ feature)) {
+ refreshUnderline();
+ } else if (NotationPackage.eINSTANCE.getFontStyle_StrikeThrough()
+ .equals(feature)) {
+ refreshStrikeThrough();
+ } else if (NotationPackage.eINSTANCE.getFontStyle_FontHeight().equals(
+ feature)
+ || NotationPackage.eINSTANCE.getFontStyle_FontName().equals(
+ feature)
+ || NotationPackage.eINSTANCE.getFontStyle_Bold()
+ .equals(feature)
+ || NotationPackage.eINSTANCE.getFontStyle_Italic().equals(
+ feature)) {
+ refreshFont();
+ } else {
+ if (getParser() != null
+ && getParser().isAffectingEvent(event,
+ getParserOptions().intValue())) {
+ refreshLabel();
+ }
+ if (getParser() instanceof ISemanticParser) {
+ ISemanticParser modelParser = (ISemanticParser) getParser();
+ if (modelParser.areSemanticElementsAffected(null, event)) {
+ removeSemanticListeners();
+ if (resolveSemanticElement() != null) {
+ addSemanticListeners();
+ }
+ refreshLabel();
+ }
+ }
+ }
+ super.handleNotificationEvent(event);
+ }
+
+ /**
+ * @generated
+ */
+ protected IFigure createFigure() {
+ // Parent should assign one using setLabel() method
+ return null;
+ }
+
+}
diff --git a/org.eclipse.emf.refactor.comrel.diagram/src/comrel/diagram/edit/parts/SequentialUnitNameTypeLblStrict7EditPart.java b/org.eclipse.emf.refactor.comrel.diagram/src/comrel/diagram/edit/parts/SequentialUnitNameTypeLblStrict7EditPart.java
new file mode 100644
index 0000000..082a7d2
--- /dev/null
+++ b/org.eclipse.emf.refactor.comrel.diagram/src/comrel/diagram/edit/parts/SequentialUnitNameTypeLblStrict7EditPart.java
@@ -0,0 +1,576 @@
+/*
+ *
+ */
+package comrel.diagram.edit.parts;
+
+import java.util.Collections;
+import java.util.List;
+
+import org.eclipse.draw2d.IFigure;
+import org.eclipse.draw2d.Label;
+import org.eclipse.draw2d.geometry.Point;
+import org.eclipse.emf.common.notify.Notification;
+import org.eclipse.emf.ecore.EObject;
+import org.eclipse.emf.transaction.RunnableWithResult;
+import org.eclipse.gef.AccessibleEditPart;
+import org.eclipse.gef.EditPolicy;
+import org.eclipse.gef.Request;
+import org.eclipse.gef.requests.DirectEditRequest;
+import org.eclipse.gef.tools.DirectEditManager;
+import org.eclipse.gmf.runtime.common.ui.services.parser.IParser;
+import org.eclipse.gmf.runtime.common.ui.services.parser.IParserEditStatus;
+import org.eclipse.gmf.runtime.common.ui.services.parser.ParserEditStatus;
+import org.eclipse.gmf.runtime.common.ui.services.parser.ParserOptions;
+import org.eclipse.gmf.runtime.diagram.ui.editparts.CompartmentEditPart;
+import org.eclipse.gmf.runtime.diagram.ui.editparts.IGraphicalEditPart;
+import org.eclipse.gmf.runtime.diagram.ui.editparts.ITextAwareEditPart;
+import org.eclipse.gmf.runtime.diagram.ui.editpolicies.LabelDirectEditPolicy;
+import org.eclipse.gmf.runtime.diagram.ui.l10n.DiagramColorRegistry;
+import org.eclipse.gmf.runtime.diagram.ui.requests.RequestConstants;
+import org.eclipse.gmf.runtime.diagram.ui.tools.TextDirectEditManager;
+import org.eclipse.gmf.runtime.draw2d.ui.figures.WrappingLabel;
+import org.eclipse.gmf.runtime.emf.core.util.EObjectAdapter;
+import org.eclipse.gmf.runtime.emf.ui.services.parser.ISemanticParser;
+import org.eclipse.gmf.runtime.notation.FontStyle;
+import org.eclipse.gmf.runtime.notation.NotationPackage;
+import org.eclipse.gmf.runtime.notation.View;
+import org.eclipse.jface.text.contentassist.IContentAssistProcessor;
+import org.eclipse.jface.viewers.ICellEditorValidator;
+import org.eclipse.swt.SWT;
+import org.eclipse.swt.accessibility.AccessibleEvent;
+import org.eclipse.swt.graphics.Color;
+import org.eclipse.swt.graphics.FontData;
+import org.eclipse.swt.graphics.Image;
+
+import comrel.diagram.edit.policies.ComrelTextSelectionEditPolicy;
+import comrel.diagram.part.ComrelVisualIDRegistry;
+import comrel.diagram.providers.ComrelElementTypes;
+import comrel.diagram.providers.ComrelParserProvider;
+
+/**
+ * @generated
+ */
+public class SequentialUnitNameTypeLblStrict7EditPart extends
+ CompartmentEditPart implements ITextAwareEditPart {
+
+ /**
+ * @generated
+ */
+ public static final int VISUAL_ID = 5051;
+
+ /**
+ * @generated
+ */
+ private DirectEditManager manager;
+
+ /**
+ * @generated
+ */
+ private IParser parser;
+
+ /**
+ * @generated
+ */
+ private List<?> parserElements;
+
+ /**
+ * @generated
+ */
+ private String defaultText;
+
+ /**
+ * @generated
+ */
+ public SequentialUnitNameTypeLblStrict7EditPart(View view) {
+ super(view);
+ }
+
+ /**
+ * @generated
+ */
+ protected void createDefaultEditPolicies() {
+ super.createDefaultEditPolicies();
+ installEditPolicy(EditPolicy.SELECTION_FEEDBACK_ROLE,
+ new ComrelTextSelectionEditPolicy());
+ installEditPolicy(EditPolicy.DIRECT_EDIT_ROLE,
+ new LabelDirectEditPolicy());
+ installEditPolicy(EditPolicy.PRIMARY_DRAG_ROLE,
+ new CompositeRefactoringEditPart.NodeLabelDragPolicy());
+ }
+
+ /**
+ * @generated
+ */
+ protected String getLabelTextHelper(IFigure figure) {
+ if (figure instanceof WrappingLabel) {
+ return ((WrappingLabel) figure).getText();
+ } else {
+ return ((Label) figure).getText();
+ }
+ }
+
+ /**
+ * @generated
+ */
+ protected void setLabelTextHelper(IFigure figure, String text) {
+ if (figure instanceof WrappingLabel) {
+ ((WrappingLabel) figure).setText(text);
+ } else {
+ ((Label) figure).setText(text);
+ }
+ }
+
+ /**
+ * @generated
+ */
+ protected Image getLabelIconHelper(IFigure figure) {
+ if (figure instanceof WrappingLabel) {
+ return ((WrappingLabel) figure).getIcon();
+ } else {
+ return ((Label) figure).getIcon();
+ }
+ }
+
+ /**
+ * @generated
+ */
+ protected void setLabelIconHelper(IFigure figure, Image icon) {
+ if (figure instanceof WrappingLabel) {
+ ((WrappingLabel) figure).setIcon(icon);
+ } else {
+ ((Label) figure).setIcon(icon);
+ }
+ }
+
+ /**
+ * @generated
+ */
+ public void setLabel(WrappingLabel figure) {
+ unregisterVisuals();
+ setFigure(figure);
+ defaultText = getLabelTextHelper(figure);
+ registerVisuals();
+ refreshVisuals();
+ }
+
+ /**
+ * @generated
+ */
+ @SuppressWarnings("rawtypes")
+ protected List getModelChildren() {
+ return Collections.EMPTY_LIST;
+ }
+
+ /**
+ * @generated
+ */
+ public IGraphicalEditPart getChildBySemanticHint(String semanticHint) {
+ return null;
+ }
+
+ /**
+ * @generated
+ */
+ protected EObject getParserElement() {
+ return resolveSemanticElement();
+ }
+
+ /**
+ * @generated
+ */
+ protected Image getLabelIcon() {
+ return null;
+ }
+
+ /**
+ * @generated
+ */
+ protected String getLabelText() {
+ String text = null;
+ EObject parserElement = getParserElement();
+ if (parserElement != null && getParser() != null) {
+ text = getParser().getPrintString(
+ new EObjectAdapter(parserElement),
+ getParserOptions().intValue());
+ }
+ if (text == null || text.length() == 0) {
+ text = defaultText;
+ }
+ return text;
+ }
+
+ /**
+ * @generated
+ */
+ public void setLabelText(String text) {
+ setLabelTextHelper(getFigure(), text);
+ Object pdEditPolicy = getEditPolicy(EditPolicy.PRIMARY_DRAG_ROLE);
+ if (pdEditPolicy instanceof ComrelTextSelectionEditPolicy) {
+ ((ComrelTextSelectionEditPolicy) pdEditPolicy).refreshFeedback();
+ }
+ Object sfEditPolicy = getEditPolicy(EditPolicy.SELECTION_FEEDBACK_ROLE);
+ if (sfEditPolicy instanceof ComrelTextSelectionEditPolicy) {
+ ((ComrelTextSelectionEditPolicy) sfEditPolicy).refreshFeedback();
+ }
+ }
+
+ /**
+ * @generated
+ */
+ public String getEditText() {
+ if (getParserElement() == null || getParser() == null) {
+ return ""; //$NON-NLS-1$
+ }
+ return getParser().getEditString(
+ new EObjectAdapter(getParserElement()),
+ getParserOptions().intValue());
+ }
+
+ /**
+ * @generated
+ */
+ protected boolean isEditable() {
+ return getParser() != null;
+ }
+
+ /**
+ * @generated
+ */
+ public ICellEditorValidator getEditTextValidator() {
+ return new ICellEditorValidator() {
+
+ public String isValid(final Object value) {
+ if (value instanceof String) {
+ final EObject element = getParserElement();
+ final IParser parser = getParser();
+ try {
+ IParserEditStatus valid = (IParserEditStatus) getEditingDomain()
+ .runExclusive(
+ new RunnableWithResult.Impl<IParserEditStatus>() {
+
+ public void run() {
+ setResult(parser
+ .isValidEditString(
+ new EObjectAdapter(
+ element),
+ (String) value));
+ }
+ });
+ return valid.getCode() == ParserEditStatus.EDITABLE ? null
+ : valid.getMessage();
+ } catch (InterruptedException ie) {
+ ie.printStackTrace();
+ }
+ }
+
+ // shouldn't get here
+ return null;
+ }
+ };
+ }
+
+ /**
+ * @generated
+ */
+ public IContentAssistProcessor getCompletionProcessor() {
+ if (getParserElement() == null || getParser() == null) {
+ return null;
+ }
+ return getParser().getCompletionProcessor(
+ new EObjectAdapter(getParserElement()));
+ }
+
+ /**
+ * @generated
+ */
+ public ParserOptions getParserOptions() {
+ return ParserOptions.NONE;
+ }
+
+ /**
+ * @generated
+ */
+ public IParser getParser() {
+ if (parser == null) {
+ parser = ComrelParserProvider
+ .getParser(
+ ComrelElementTypes.SequentialUnit_3073,
+ getParserElement(),
+ ComrelVisualIDRegistry
+ .getType(comrel.diagram.edit.parts.SequentialUnitNameTypeLblStrict7EditPart.VISUAL_ID));
+ }
+ return parser;
+ }
+
+ /**
+ * @generated
+ */
+ protected DirectEditManager getManager() {
+ if (manager == null) {
+ setManager(new TextDirectEditManager(this,
+ TextDirectEditManager.getTextCellEditorClass(this),
+ ComrelEditPartFactory.getTextCellEditorLocator(this)));
+ }
+ return manager;
+ }
+
+ /**
+ * @generated
+ */
+ protected void setManager(DirectEditManager manager) {
+ this.manager = manager;
+ }
+
+ /**
+ * @generated
+ */
+ protected void performDirectEdit() {
+ getManager().show();
+ }
+
+ /**
+ * @generated
+ */
+ protected void performDirectEdit(Point eventLocation) {
+ if (getManager().getClass() == TextDirectEditManager.class) {
+ ((TextDirectEditManager) getManager()).show(eventLocation
+ .getSWTPoint());
+ }
+ }
+
+ /**
+ * @generated
+ */
+ private void performDirectEdit(char initialCharacter) {
+ if (getManager() instanceof TextDirectEditManager) {
+ ((TextDirectEditManager) getManager()).show(initialCharacter);
+ } else {
+ performDirectEdit();
+ }
+ }
+
+ /**
+ * @generated
+ */
+ protected void performDirectEditRequest(Request request) {
+ final Request theRequest = request;
+ try {
+ getEditingDomain().runExclusive(new Runnable() {
+
+ public void run() {
+ if (isActive() && isEditable()) {
+ if (theRequest
+ .getExtendedData()
+ .get(RequestConstants.REQ_DIRECTEDIT_EXTENDEDDATA_INITIAL_CHAR) instanceof Character) {
+ Character initialChar = (Character) theRequest
+ .getExtendedData()
+ .get(RequestConstants.REQ_DIRECTEDIT_EXTENDEDDATA_INITIAL_CHAR);
+ performDirectEdit(initialChar.charValue());
+ } else if ((theRequest instanceof DirectEditRequest)
+ && (getEditText().equals(getLabelText()))) {
+ DirectEditRequest editRequest = (DirectEditRequest) theRequest;
+ performDirectEdit(editRequest.getLocation());
+ } else {
+ performDirectEdit();
+ }
+ }
+ }
+ });
+ } catch (InterruptedException e) {
+ e.printStackTrace();
+ }
+ }
+
+ /**
+ * @generated
+ */
+ protected void refreshVisuals() {
+ super.refreshVisuals();
+ refreshLabel();
+ refreshFont();
+ refreshFontColor();
+ refreshUnderline();
+ refreshStrikeThrough();
+ }
+
+ /**
+ * @generated
+ */
+ protected void refreshLabel() {
+ setLabelTextHelper(getFigure(), getLabelText());
+ setLabelIconHelper(getFigure(), getLabelIcon());
+ Object pdEditPolicy = getEditPolicy(EditPolicy.PRIMARY_DRAG_ROLE);
+ if (pdEditPolicy instanceof ComrelTextSelectionEditPolicy) {
+ ((ComrelTextSelectionEditPolicy) pdEditPolicy).refreshFeedback();
+ }
+ Object sfEditPolicy = getEditPolicy(EditPolicy.SELECTION_FEEDBACK_ROLE);
+ if (sfEditPolicy instanceof ComrelTextSelectionEditPolicy) {
+ ((ComrelTextSelectionEditPolicy) sfEditPolicy).refreshFeedback();
+ }
+ }
+
+ /**
+ * @generated
+ */
+ protected void refreshUnderline() {
+ FontStyle style = (FontStyle) getFontStyleOwnerView().getStyle(
+ NotationPackage.eINSTANCE.getFontStyle());
+ if (style != null && getFigure() instanceof WrappingLabel) {
+ ((WrappingLabel) getFigure()).setTextUnderline(style.isUnderline());
+ }
+ }
+
+ /**
+ * @generated
+ */
+ protected void refreshStrikeThrough() {
+ FontStyle style = (FontStyle) getFontStyleOwnerView().getStyle(
+ NotationPackage.eINSTANCE.getFontStyle());
+ if (style != null && getFigure() instanceof WrappingLabel) {
+ ((WrappingLabel) getFigure()).setTextStrikeThrough(style
+ .isStrikeThrough());
+ }
+ }
+
+ /**
+ * @generated
+ */
+ protected void refreshFont() {
+ FontStyle style = (FontStyle) getFontStyleOwnerView().getStyle(
+ NotationPackage.eINSTANCE.getFontStyle());
+ if (style != null) {
+ FontData fontData = new FontData(style.getFontName(),
+ style.getFontHeight(), (style.isBold() ? SWT.BOLD
+ : SWT.NORMAL)
+ | (style.isItalic() ? SWT.ITALIC : SWT.NORMAL));
+ setFont(fontData);
+ }
+ }
+
+ /**
+ * @generated
+ */
+ protected void setFontColor(Color color) {
+ getFigure().setForegroundColor(color);
+ }
+
+ /**
+ * @generated
+ */
+ protected void addSemanticListeners() {
+ if (getParser() instanceof ISemanticParser) {
+ EObject element = resolveSemanticElement();
+ parserElements = ((ISemanticParser) getParser())
+ .getSemanticElementsBeingParsed(element);
+ for (int i = 0; i < parserElements.size(); i++) {
+ addListenerFilter(
+ "SemanticModel" + i, this, (EObject) parserElements.get(i)); //$NON-NLS-1$
+ }
+ } else {
+ super.addSemanticListeners();
+ }
+ }
+
+ /**
+ * @generated
+ */
+ protected void removeSemanticListeners() {
+ if (parserElements != null) {
+ for (int i = 0; i < parserElements.size(); i++) {
+ removeListenerFilter("SemanticModel" + i); //$NON-NLS-1$
+ }
+ } else {
+ super.removeSemanticListeners();
+ }
+ }
+
+ /**
+ * @generated
+ */
+ protected AccessibleEditPart getAccessibleEditPart() {
+ if (accessibleEP == null) {
+ accessibleEP = new AccessibleGraphicalEditPart() {
+
+ public void getName(AccessibleEvent e) {
+ e.result = getLabelTextHelper(getFigure());
+ }
+ };
+ }
+ return accessibleEP;
+ }
+
+ /**
+ * @generated
+ */
+ private View getFontStyleOwnerView() {
+ return getPrimaryView();
+ }
+
+ /**
+ * @generated
+ */
+ protected void addNotationalListeners() {
+ super.addNotationalListeners();
+ addListenerFilter("PrimaryView", this, getPrimaryView()); //$NON-NLS-1$
+ }
+
+ /**
+ * @generated
+ */
+ protected void removeNotationalListeners() {
+ super.removeNotationalListeners();
+ removeListenerFilter("PrimaryView"); //$NON-NLS-1$
+ }
+
+ /**
+ * @generated
+ */
+ protected void handleNotificationEvent(Notification event) {
+ Object feature = event.getFeature();
+ if (NotationPackage.eINSTANCE.getFontStyle_FontColor().equals(feature)) {
+ Integer c = (Integer) event.getNewValue();
+ setFontColor(DiagramColorRegistry.getInstance().getColor(c));
+ } else if (NotationPackage.eINSTANCE.getFontStyle_Underline().equals(
+ feature)) {
+ refreshUnderline();
+ } else if (NotationPackage.eINSTANCE.getFontStyle_StrikeThrough()
+ .equals(feature)) {
+ refreshStrikeThrough();
+ } else if (NotationPackage.eINSTANCE.getFontStyle_FontHeight().equals(
+ feature)
+ || NotationPackage.eINSTANCE.getFontStyle_FontName().equals(
+ feature)
+ || NotationPackage.eINSTANCE.getFontStyle_Bold()
+ .equals(feature)
+ || NotationPackage.eINSTANCE.getFontStyle_Italic().equals(
+ feature)) {
+ refreshFont();
+ } else {
+ if (getParser() != null
+ && getParser().isAffectingEvent(event,
+ getParserOptions().intValue())) {
+ refreshLabel();
+ }
+ if (getParser() instanceof ISemanticParser) {
+ ISemanticParser modelParser = (ISemanticParser) getParser();
+ if (modelParser.areSemanticElementsAffected(null, event)) {
+ removeSemanticListeners();
+ if (resolveSemanticElement() != null) {
+ addSemanticListeners();
+ }
+ refreshLabel();
+ }
+ }
+ }
+ super.handleNotificationEvent(event);
+ }
+
+ /**
+ * @generated
+ */
+ protected IFigure createFigure() {
+ // Parent should assign one using setLabel() method
+ return null;
+ }
+
+}
diff --git a/org.eclipse.emf.refactor.comrel.diagram/src/comrel/diagram/edit/parts/SequentialUnitNameTypeLblStrictEditPart.java b/org.eclipse.emf.refactor.comrel.diagram/src/comrel/diagram/edit/parts/SequentialUnitNameTypeLblStrictEditPart.java
new file mode 100644
index 0000000..7b430f7
--- /dev/null
+++ b/org.eclipse.emf.refactor.comrel.diagram/src/comrel/diagram/edit/parts/SequentialUnitNameTypeLblStrictEditPart.java
@@ -0,0 +1,576 @@
+/*
+ *
+ */
+package comrel.diagram.edit.parts;
+
+import java.util.Collections;
+import java.util.List;
+
+import org.eclipse.draw2d.IFigure;
+import org.eclipse.draw2d.Label;
+import org.eclipse.draw2d.geometry.Point;
+import org.eclipse.emf.common.notify.Notification;
+import org.eclipse.emf.ecore.EObject;
+import org.eclipse.emf.transaction.RunnableWithResult;
+import org.eclipse.gef.AccessibleEditPart;
+import org.eclipse.gef.EditPolicy;
+import org.eclipse.gef.Request;
+import org.eclipse.gef.requests.DirectEditRequest;
+import org.eclipse.gef.tools.DirectEditManager;
+import org.eclipse.gmf.runtime.common.ui.services.parser.IParser;
+import org.eclipse.gmf.runtime.common.ui.services.parser.IParserEditStatus;
+import org.eclipse.gmf.runtime.common.ui.services.parser.ParserEditStatus;
+import org.eclipse.gmf.runtime.common.ui.services.parser.ParserOptions;
+import org.eclipse.gmf.runtime.diagram.ui.editparts.CompartmentEditPart;
+import org.eclipse.gmf.runtime.diagram.ui.editparts.IGraphicalEditPart;
+import org.eclipse.gmf.runtime.diagram.ui.editparts.ITextAwareEditPart;
+import org.eclipse.gmf.runtime.diagram.ui.editpolicies.LabelDirectEditPolicy;
+import org.eclipse.gmf.runtime.diagram.ui.l10n.DiagramColorRegistry;
+import org.eclipse.gmf.runtime.diagram.ui.requests.RequestConstants;
+import org.eclipse.gmf.runtime.diagram.ui.tools.TextDirectEditManager;
+import org.eclipse.gmf.runtime.draw2d.ui.figures.WrappingLabel;
+import org.eclipse.gmf.runtime.emf.core.util.EObjectAdapter;
+import org.eclipse.gmf.runtime.emf.ui.services.parser.ISemanticParser;
+import org.eclipse.gmf.runtime.notation.FontStyle;
+import org.eclipse.gmf.runtime.notation.NotationPackage;
+import org.eclipse.gmf.runtime.notation.View;
+import org.eclipse.jface.text.contentassist.IContentAssistProcessor;
+import org.eclipse.jface.viewers.ICellEditorValidator;
+import org.eclipse.swt.SWT;
+import org.eclipse.swt.accessibility.AccessibleEvent;
+import org.eclipse.swt.graphics.Color;
+import org.eclipse.swt.graphics.FontData;
+import org.eclipse.swt.graphics.Image;
+
+import comrel.diagram.edit.policies.ComrelTextSelectionEditPolicy;
+import comrel.diagram.part.ComrelVisualIDRegistry;
+import comrel.diagram.providers.ComrelElementTypes;
+import comrel.diagram.providers.ComrelParserProvider;
+
+/**
+ * @generated
+ */
+public class SequentialUnitNameTypeLblStrictEditPart extends
+ CompartmentEditPart implements ITextAwareEditPart {
+
+ /**
+ * @generated
+ */
+ public static final int VISUAL_ID = 5083;
+
+ /**
+ * @generated
+ */
+ private DirectEditManager manager;
+
+ /**
+ * @generated
+ */
+ private IParser parser;
+
+ /**
+ * @generated
+ */
+ private List<?> parserElements;
+
+ /**
+ * @generated
+ */
+ private String defaultText;
+
+ /**
+ * @generated
+ */
+ public SequentialUnitNameTypeLblStrictEditPart(View view) {
+ super(view);
+ }
+
+ /**
+ * @generated
+ */
+ protected void createDefaultEditPolicies() {
+ super.createDefaultEditPolicies();
+ installEditPolicy(EditPolicy.SELECTION_FEEDBACK_ROLE,
+ new ComrelTextSelectionEditPolicy());
+ installEditPolicy(EditPolicy.DIRECT_EDIT_ROLE,
+ new LabelDirectEditPolicy());
+ installEditPolicy(EditPolicy.PRIMARY_DRAG_ROLE,
+ new CompositeRefactoringEditPart.NodeLabelDragPolicy());
+ }
+
+ /**
+ * @generated
+ */
+ protected String getLabelTextHelper(IFigure figure) {
+ if (figure instanceof WrappingLabel) {
+ return ((WrappingLabel) figure).getText();
+ } else {
+ return ((Label) figure).getText();
+ }
+ }
+
+ /**
+ * @generated
+ */
+ protected void setLabelTextHelper(IFigure figure, String text) {
+ if (figure instanceof WrappingLabel) {
+ ((WrappingLabel) figure).setText(text);
+ } else {
+ ((Label) figure).setText(text);
+ }
+ }
+
+ /**
+ * @generated
+ */
+ protected Image getLabelIconHelper(IFigure figure) {
+ if (figure instanceof WrappingLabel) {
+ return ((WrappingLabel) figure).getIcon();
+ } else {
+ return ((Label) figure).getIcon();
+ }
+ }
+
+ /**
+ * @generated
+ */
+ protected void setLabelIconHelper(IFigure figure, Image icon) {
+ if (figure instanceof WrappingLabel) {
+ ((WrappingLabel) figure).setIcon(icon);
+ } else {
+ ((Label) figure).setIcon(icon);
+ }
+ }
+
+ /**
+ * @generated
+ */
+ public void setLabel(WrappingLabel figure) {
+ unregisterVisuals();
+ setFigure(figure);
+ defaultText = getLabelTextHelper(figure);
+ registerVisuals();
+ refreshVisuals();
+ }
+
+ /**
+ * @generated
+ */
+ @SuppressWarnings("rawtypes")
+ protected List getModelChildren() {
+ return Collections.EMPTY_LIST;
+ }
+
+ /**
+ * @generated
+ */
+ public IGraphicalEditPart getChildBySemanticHint(String semanticHint) {
+ return null;
+ }
+
+ /**
+ * @generated
+ */
+ protected EObject getParserElement() {
+ return resolveSemanticElement();
+ }
+
+ /**
+ * @generated
+ */
+ protected Image getLabelIcon() {
+ return null;
+ }
+
+ /**
+ * @generated
+ */
+ protected String getLabelText() {
+ String text = null;
+ EObject parserElement = getParserElement();
+ if (parserElement != null && getParser() != null) {
+ text = getParser().getPrintString(
+ new EObjectAdapter(parserElement),
+ getParserOptions().intValue());
+ }
+ if (text == null || text.length() == 0) {
+ text = defaultText;
+ }
+ return text;
+ }
+
+ /**
+ * @generated
+ */
+ public void setLabelText(String text) {
+ setLabelTextHelper(getFigure(), text);
+ Object pdEditPolicy = getEditPolicy(EditPolicy.PRIMARY_DRAG_ROLE);
+ if (pdEditPolicy instanceof ComrelTextSelectionEditPolicy) {
+ ((ComrelTextSelectionEditPolicy) pdEditPolicy).refreshFeedback();
+ }
+ Object sfEditPolicy = getEditPolicy(EditPolicy.SELECTION_FEEDBACK_ROLE);
+ if (sfEditPolicy instanceof ComrelTextSelectionEditPolicy) {
+ ((ComrelTextSelectionEditPolicy) sfEditPolicy).refreshFeedback();
+ }
+ }
+
+ /**
+ * @generated
+ */
+ public String getEditText() {
+ if (getParserElement() == null || getParser() == null) {
+ return ""; //$NON-NLS-1$
+ }
+ return getParser().getEditString(
+ new EObjectAdapter(getParserElement()),
+ getParserOptions().intValue());
+ }
+
+ /**
+ * @generated
+ */
+ protected boolean isEditable() {
+ return getParser() != null;
+ }
+
+ /**
+ * @generated
+ */
+ public ICellEditorValidator getEditTextValidator() {
+ return new ICellEditorValidator() {
+
+ public String isValid(final Object value) {
+ if (value instanceof String) {
+ final EObject element = getParserElement();
+ final IParser parser = getParser();
+ try {
+ IParserEditStatus valid = (IParserEditStatus) getEditingDomain()
+ .runExclusive(
+ new RunnableWithResult.Impl<IParserEditStatus>() {
+
+ public void run() {
+ setResult(parser
+ .isValidEditString(
+ new EObjectAdapter(
+ element),
+ (String) value));
+ }
+ });
+ return valid.getCode() == ParserEditStatus.EDITABLE ? null
+ : valid.getMessage();
+ } catch (InterruptedException ie) {
+ ie.printStackTrace();
+ }
+ }
+
+ // shouldn't get here
+ return null;
+ }
+ };
+ }
+
+ /**
+ * @generated
+ */
+ public IContentAssistProcessor getCompletionProcessor() {
+ if (getParserElement() == null || getParser() == null) {
+ return null;
+ }
+ return getParser().getCompletionProcessor(
+ new EObjectAdapter(getParserElement()));
+ }
+
+ /**
+ * @generated
+ */
+ public ParserOptions getParserOptions() {
+ return ParserOptions.NONE;
+ }
+
+ /**
+ * @generated
+ */
+ public IParser getParser() {
+ if (parser == null) {
+ parser = ComrelParserProvider
+ .getParser(
+ ComrelElementTypes.SequentialUnit_2005,
+ getParserElement(),
+ ComrelVisualIDRegistry
+ .getType(comrel.diagram.edit.parts.SequentialUnitNameTypeLblStrictEditPart.VISUAL_ID));
+ }
+ return parser;
+ }
+
+ /**
+ * @generated
+ */
+ protected DirectEditManager getManager() {
+ if (manager == null) {
+ setManager(new TextDirectEditManager(this,
+ TextDirectEditManager.getTextCellEditorClass(this),
+ ComrelEditPartFactory.getTextCellEditorLocator(this)));
+ }
+ return manager;
+ }
+
+ /**
+ * @generated
+ */
+ protected void setManager(DirectEditManager manager) {
+ this.manager = manager;
+ }
+
+ /**
+ * @generated
+ */
+ protected void performDirectEdit() {
+ getManager().show();
+ }
+
+ /**
+ * @generated
+ */
+ protected void performDirectEdit(Point eventLocation) {
+ if (getManager().getClass() == TextDirectEditManager.class) {
+ ((TextDirectEditManager) getManager()).show(eventLocation
+ .getSWTPoint());
+ }
+ }
+
+ /**
+ * @generated
+ */
+ private void performDirectEdit(char initialCharacter) {
+ if (getManager() instanceof TextDirectEditManager) {
+ ((TextDirectEditManager) getManager()).show(initialCharacter);
+ } else {
+ performDirectEdit();
+ }
+ }
+
+ /**
+ * @generated
+ */
+ protected void performDirectEditRequest(Request request) {
+ final Request theRequest = request;
+ try {
+ getEditingDomain().runExclusive(new Runnable() {
+
+ public void run() {
+ if (isActive() && isEditable()) {
+ if (theRequest
+ .getExtendedData()
+ .get(RequestConstants.REQ_DIRECTEDIT_EXTENDEDDATA_INITIAL_CHAR) instanceof Character) {
+ Character initialChar = (Character) theRequest
+ .getExtendedData()
+ .get(RequestConstants.REQ_DIRECTEDIT_EXTENDEDDATA_INITIAL_CHAR);
+ performDirectEdit(initialChar.charValue());
+ } else if ((theRequest instanceof DirectEditRequest)
+ && (getEditText().equals(getLabelText()))) {
+ DirectEditRequest editRequest = (DirectEditRequest) theRequest;
+ performDirectEdit(editRequest.getLocation());
+ } else {
+ performDirectEdit();
+ }
+ }
+ }
+ });
+ } catch (InterruptedException e) {
+ e.printStackTrace();
+ }
+ }
+
+ /**
+ * @generated
+ */
+ protected void refreshVisuals() {
+ super.refreshVisuals();
+ refreshLabel();
+ refreshFont();
+ refreshFontColor();
+ refreshUnderline();
+ refreshStrikeThrough();
+ }
+
+ /**
+ * @generated
+ */
+ protected void refreshLabel() {
+ setLabelTextHelper(getFigure(), getLabelText());
+ setLabelIconHelper(getFigure(), getLabelIcon());
+ Object pdEditPolicy = getEditPolicy(EditPolicy.PRIMARY_DRAG_ROLE);
+ if (pdEditPolicy instanceof ComrelTextSelectionEditPolicy) {
+ ((ComrelTextSelectionEditPolicy) pdEditPolicy).refreshFeedback();
+ }
+ Object sfEditPolicy = getEditPolicy(EditPolicy.SELECTION_FEEDBACK_ROLE);
+ if (sfEditPolicy instanceof ComrelTextSelectionEditPolicy) {
+ ((ComrelTextSelectionEditPolicy) sfEditPolicy).refreshFeedback();
+ }
+ }
+
+ /**
+ * @generated
+ */
+ protected void refreshUnderline() {
+ FontStyle style = (FontStyle) getFontStyleOwnerView().getStyle(
+ NotationPackage.eINSTANCE.getFontStyle());
+ if (style != null && getFigure() instanceof WrappingLabel) {
+ ((WrappingLabel) getFigure()).setTextUnderline(style.isUnderline());
+ }
+ }
+
+ /**
+ * @generated
+ */
+ protected void refreshStrikeThrough() {
+ FontStyle style = (FontStyle) getFontStyleOwnerView().getStyle(
+ NotationPackage.eINSTANCE.getFontStyle());
+ if (style != null && getFigure() instanceof WrappingLabel) {
+ ((WrappingLabel) getFigure()).setTextStrikeThrough(style
+ .isStrikeThrough());
+ }
+ }
+
+ /**
+ * @generated
+ */
+ protected void refreshFont() {
+ FontStyle style = (FontStyle) getFontStyleOwnerView().getStyle(
+ NotationPackage.eINSTANCE.getFontStyle());
+ if (style != null) {
+ FontData fontData = new FontData(style.getFontName(),
+ style.getFontHeight(), (style.isBold() ? SWT.BOLD
+ : SWT.NORMAL)
+ | (style.isItalic() ? SWT.ITALIC : SWT.NORMAL));
+ setFont(fontData);
+ }
+ }
+
+ /**
+ * @generated
+ */
+ protected void setFontColor(Color color) {
+ getFigure().setForegroundColor(color);
+ }
+
+ /**
+ * @generated
+ */
+ protected void addSemanticListeners() {
+ if (getParser() instanceof ISemanticParser) {
+ EObject element = resolveSemanticElement();
+ parserElements = ((ISemanticParser) getParser())
+ .getSemanticElementsBeingParsed(element);
+ for (int i = 0; i < parserElements.size(); i++) {
+ addListenerFilter(
+ "SemanticModel" + i, this, (EObject) parserElements.get(i)); //$NON-NLS-1$
+ }
+ } else {
+ super.addSemanticListeners();
+ }
+ }
+
+ /**
+ * @generated
+ */
+ protected void removeSemanticListeners() {
+ if (parserElements != null) {
+ for (int i = 0; i < parserElements.size(); i++) {
+ removeListenerFilter("SemanticModel" + i); //$NON-NLS-1$
+ }
+ } else {
+ super.removeSemanticListeners();
+ }
+ }
+
+ /**
+ * @generated
+ */
+ protected AccessibleEditPart getAccessibleEditPart() {
+ if (accessibleEP == null) {
+ accessibleEP = new AccessibleGraphicalEditPart() {
+
+ public void getName(AccessibleEvent e) {
+ e.result = getLabelTextHelper(getFigure());
+ }
+ };
+ }
+ return accessibleEP;
+ }
+
+ /**
+ * @generated
+ */
+ private View getFontStyleOwnerView() {
+ return getPrimaryView();
+ }
+
+ /**
+ * @generated
+ */
+ protected void addNotationalListeners() {
+ super.addNotationalListeners();
+ addListenerFilter("PrimaryView", this, getPrimaryView()); //$NON-NLS-1$
+ }
+
+ /**
+ * @generated
+ */
+ protected void removeNotationalListeners() {
+ super.removeNotationalListeners();
+ removeListenerFilter("PrimaryView"); //$NON-NLS-1$
+ }
+
+ /**
+ * @generated
+ */
+ protected void handleNotificationEvent(Notification event) {
+ Object feature = event.getFeature();
+ if (NotationPackage.eINSTANCE.getFontStyle_FontColor().equals(feature)) {
+ Integer c = (Integer) event.getNewValue();
+ setFontColor(DiagramColorRegistry.getInstance().getColor(c));
+ } else if (NotationPackage.eINSTANCE.getFontStyle_Underline().equals(
+ feature)) {
+ refreshUnderline();
+ } else if (NotationPackage.eINSTANCE.getFontStyle_StrikeThrough()
+ .equals(feature)) {
+ refreshStrikeThrough();
+ } else if (NotationPackage.eINSTANCE.getFontStyle_FontHeight().equals(
+ feature)
+ || NotationPackage.eINSTANCE.getFontStyle_FontName().equals(
+ feature)
+ || NotationPackage.eINSTANCE.getFontStyle_Bold()
+ .equals(feature)
+ || NotationPackage.eINSTANCE.getFontStyle_Italic().equals(
+ feature)) {
+ refreshFont();
+ } else {
+ if (getParser() != null
+ && getParser().isAffectingEvent(event,
+ getParserOptions().intValue())) {
+ refreshLabel();
+ }
+ if (getParser() instanceof ISemanticParser) {
+ ISemanticParser modelParser = (ISemanticParser) getParser();
+ if (modelParser.areSemanticElementsAffected(null, event)) {
+ removeSemanticListeners();
+ if (resolveSemanticElement() != null) {
+ addSemanticListeners();
+ }
+ refreshLabel();
+ }
+ }
+ }
+ super.handleNotificationEvent(event);
+ }
+
+ /**
+ * @generated
+ */
+ protected IFigure createFigure() {
+ // Parent should assign one using setLabel() method
+ return null;
+ }
+
+}
diff --git a/org.eclipse.emf.refactor.comrel.diagram/src/comrel/diagram/edit/parts/SequentialUnitSequentialUnitHelperUnitsCompartment2EditPart.java b/org.eclipse.emf.refactor.comrel.diagram/src/comrel/diagram/edit/parts/SequentialUnitSequentialUnitHelperUnitsCompartment2EditPart.java
new file mode 100644
index 0000000..675748a
--- /dev/null
+++ b/org.eclipse.emf.refactor.comrel.diagram/src/comrel/diagram/edit/parts/SequentialUnitSequentialUnitHelperUnitsCompartment2EditPart.java
@@ -0,0 +1,84 @@
+/*
+ *
+ */
+package comrel.diagram.edit.parts;
+
+import org.eclipse.draw2d.IFigure;
+import org.eclipse.gef.EditPolicy;
+import org.eclipse.gmf.runtime.diagram.ui.editparts.ShapeCompartmentEditPart;
+import org.eclipse.gmf.runtime.diagram.ui.editpolicies.CreationEditPolicy;
+import org.eclipse.gmf.runtime.diagram.ui.editpolicies.DragDropEditPolicy;
+import org.eclipse.gmf.runtime.diagram.ui.editpolicies.EditPolicyRoles;
+import org.eclipse.gmf.runtime.diagram.ui.editpolicies.ResizableCompartmentEditPolicy;
+import org.eclipse.gmf.runtime.diagram.ui.figures.ResizableCompartmentFigure;
+import org.eclipse.gmf.runtime.draw2d.ui.figures.ConstrainedToolbarLayout;
+import org.eclipse.gmf.runtime.notation.View;
+
+import comrel.diagram.edit.policies.SequentialUnitSequentialUnitHelperUnitsCompartment2CanonicalEditPolicy;
+import comrel.diagram.edit.policies.SequentialUnitSequentialUnitHelperUnitsCompartment2ItemSemanticEditPolicy;
+import comrel.diagram.part.Messages;
+
+/**
+ * @generated
+ */
+public class SequentialUnitSequentialUnitHelperUnitsCompartment2EditPart extends
+ ShapeCompartmentEditPart {
+
+ /**
+ * @generated
+ */
+ public static final int VISUAL_ID = 7031;
+
+ /**
+ * @generated
+ */
+ public SequentialUnitSequentialUnitHelperUnitsCompartment2EditPart(View view) {
+ super(view);
+ }
+
+ /**
+ * @generated
+ */
+ public String getCompartmentName() {
+ return Messages.SequentialUnitSequentialUnitHelperUnitsCompartment2EditPart_title;
+ }
+
+ /**
+ * @generated
+ */
+ public IFigure createFigure() {
+ ResizableCompartmentFigure result = (ResizableCompartmentFigure) super
+ .createFigure();
+ result.setTitleVisibility(false);
+ return result;
+ }
+
+ /**
+ * @generated
+ */
+ protected void createDefaultEditPolicies() {
+ super.createDefaultEditPolicies();
+ installEditPolicy(EditPolicy.PRIMARY_DRAG_ROLE,
+ new ResizableCompartmentEditPolicy());
+ installEditPolicy(
+ EditPolicyRoles.SEMANTIC_ROLE,
+ new SequentialUnitSequentialUnitHelperUnitsCompartment2ItemSemanticEditPolicy());
+ installEditPolicy(EditPolicyRoles.CREATION_ROLE,
+ new CreationEditPolicy());
+ installEditPolicy(EditPolicyRoles.DRAG_DROP_ROLE,
+ new DragDropEditPolicy());
+ installEditPolicy(
+ EditPolicyRoles.CANONICAL_ROLE,
+ new SequentialUnitSequentialUnitHelperUnitsCompartment2CanonicalEditPolicy());
+ }
+
+ /**
+ * @generated
+ */
+ protected void setRatio(Double ratio) {
+ if (getFigure().getParent().getLayoutManager() instanceof ConstrainedToolbarLayout) {
+ super.setRatio(ratio);
+ }
+ }
+
+}
diff --git a/org.eclipse.emf.refactor.comrel.diagram/src/comrel/diagram/edit/parts/SequentialUnitSequentialUnitHelperUnitsCompartment3EditPart.java b/org.eclipse.emf.refactor.comrel.diagram/src/comrel/diagram/edit/parts/SequentialUnitSequentialUnitHelperUnitsCompartment3EditPart.java
new file mode 100644
index 0000000..b0985da
--- /dev/null
+++ b/org.eclipse.emf.refactor.comrel.diagram/src/comrel/diagram/edit/parts/SequentialUnitSequentialUnitHelperUnitsCompartment3EditPart.java
@@ -0,0 +1,84 @@
+/*
+ *
+ */
+package comrel.diagram.edit.parts;
+
+import org.eclipse.draw2d.IFigure;
+import org.eclipse.gef.EditPolicy;
+import org.eclipse.gmf.runtime.diagram.ui.editparts.ShapeCompartmentEditPart;
+import org.eclipse.gmf.runtime.diagram.ui.editpolicies.CreationEditPolicy;
+import org.eclipse.gmf.runtime.diagram.ui.editpolicies.DragDropEditPolicy;
+import org.eclipse.gmf.runtime.diagram.ui.editpolicies.EditPolicyRoles;
+import org.eclipse.gmf.runtime.diagram.ui.editpolicies.ResizableCompartmentEditPolicy;
+import org.eclipse.gmf.runtime.diagram.ui.figures.ResizableCompartmentFigure;
+import org.eclipse.gmf.runtime.draw2d.ui.figures.ConstrainedToolbarLayout;
+import org.eclipse.gmf.runtime.notation.View;
+
+import comrel.diagram.edit.policies.SequentialUnitSequentialUnitHelperUnitsCompartment3CanonicalEditPolicy;
+import comrel.diagram.edit.policies.SequentialUnitSequentialUnitHelperUnitsCompartment3ItemSemanticEditPolicy;
+import comrel.diagram.part.Messages;
+
+/**
+ * @generated
+ */
+public class SequentialUnitSequentialUnitHelperUnitsCompartment3EditPart extends
+ ShapeCompartmentEditPart {
+
+ /**
+ * @generated
+ */
+ public static final int VISUAL_ID = 7047;
+
+ /**
+ * @generated
+ */
+ public SequentialUnitSequentialUnitHelperUnitsCompartment3EditPart(View view) {
+ super(view);
+ }
+
+ /**
+ * @generated
+ */
+ public String getCompartmentName() {
+ return Messages.SequentialUnitSequentialUnitHelperUnitsCompartment3EditPart_title;
+ }
+
+ /**
+ * @generated
+ */
+ public IFigure createFigure() {
+ ResizableCompartmentFigure result = (ResizableCompartmentFigure) super
+ .createFigure();
+ result.setTitleVisibility(false);
+ return result;
+ }
+
+ /**
+ * @generated
+ */
+ protected void createDefaultEditPolicies() {
+ super.createDefaultEditPolicies();
+ installEditPolicy(EditPolicy.PRIMARY_DRAG_ROLE,
+ new ResizableCompartmentEditPolicy());
+ installEditPolicy(
+ EditPolicyRoles.SEMANTIC_ROLE,
+ new SequentialUnitSequentialUnitHelperUnitsCompartment3ItemSemanticEditPolicy());
+ installEditPolicy(EditPolicyRoles.CREATION_ROLE,
+ new CreationEditPolicy());
+ installEditPolicy(EditPolicyRoles.DRAG_DROP_ROLE,
+ new DragDropEditPolicy());
+ installEditPolicy(
+ EditPolicyRoles.CANONICAL_ROLE,
+ new SequentialUnitSequentialUnitHelperUnitsCompartment3CanonicalEditPolicy());
+ }
+
+ /**
+ * @generated
+ */
+ protected void setRatio(Double ratio) {
+ if (getFigure().getParent().getLayoutManager() instanceof ConstrainedToolbarLayout) {
+ super.setRatio(ratio);
+ }
+ }
+
+}
diff --git a/org.eclipse.emf.refactor.comrel.diagram/src/comrel/diagram/edit/parts/SequentialUnitSequentialUnitHelperUnitsCompartment4EditPart.java b/org.eclipse.emf.refactor.comrel.diagram/src/comrel/diagram/edit/parts/SequentialUnitSequentialUnitHelperUnitsCompartment4EditPart.java
new file mode 100644
index 0000000..650b66a
--- /dev/null
+++ b/org.eclipse.emf.refactor.comrel.diagram/src/comrel/diagram/edit/parts/SequentialUnitSequentialUnitHelperUnitsCompartment4EditPart.java
@@ -0,0 +1,84 @@
+/*
+ *
+ */
+package comrel.diagram.edit.parts;
+
+import org.eclipse.draw2d.IFigure;
+import org.eclipse.gef.EditPolicy;
+import org.eclipse.gmf.runtime.diagram.ui.editparts.ShapeCompartmentEditPart;
+import org.eclipse.gmf.runtime.diagram.ui.editpolicies.CreationEditPolicy;
+import org.eclipse.gmf.runtime.diagram.ui.editpolicies.DragDropEditPolicy;
+import org.eclipse.gmf.runtime.diagram.ui.editpolicies.EditPolicyRoles;
+import org.eclipse.gmf.runtime.diagram.ui.editpolicies.ResizableCompartmentEditPolicy;
+import org.eclipse.gmf.runtime.diagram.ui.figures.ResizableCompartmentFigure;
+import org.eclipse.gmf.runtime.draw2d.ui.figures.ConstrainedToolbarLayout;
+import org.eclipse.gmf.runtime.notation.View;
+
+import comrel.diagram.edit.policies.SequentialUnitSequentialUnitHelperUnitsCompartment4CanonicalEditPolicy;
+import comrel.diagram.edit.policies.SequentialUnitSequentialUnitHelperUnitsCompartment4ItemSemanticEditPolicy;
+import comrel.diagram.part.Messages;
+
+/**
+ * @generated
+ */
+public class SequentialUnitSequentialUnitHelperUnitsCompartment4EditPart extends
+ ShapeCompartmentEditPart {
+
+ /**
+ * @generated
+ */
+ public static final int VISUAL_ID = 7057;
+
+ /**
+ * @generated
+ */
+ public SequentialUnitSequentialUnitHelperUnitsCompartment4EditPart(View view) {
+ super(view);
+ }
+
+ /**
+ * @generated
+ */
+ public String getCompartmentName() {
+ return Messages.SequentialUnitSequentialUnitHelperUnitsCompartment4EditPart_title;
+ }
+
+ /**
+ * @generated
+ */
+ public IFigure createFigure() {
+ ResizableCompartmentFigure result = (ResizableCompartmentFigure) super
+ .createFigure();
+ result.setTitleVisibility(false);
+ return result;
+ }
+
+ /**
+ * @generated
+ */
+ protected void createDefaultEditPolicies() {
+ super.createDefaultEditPolicies();
+ installEditPolicy(EditPolicy.PRIMARY_DRAG_ROLE,
+ new ResizableCompartmentEditPolicy());
+ installEditPolicy(
+ EditPolicyRoles.SEMANTIC_ROLE,
+ new SequentialUnitSequentialUnitHelperUnitsCompartment4ItemSemanticEditPolicy());
+ installEditPolicy(EditPolicyRoles.CREATION_ROLE,
+ new CreationEditPolicy());
+ installEditPolicy(EditPolicyRoles.DRAG_DROP_ROLE,
+ new DragDropEditPolicy());
+ installEditPolicy(
+ EditPolicyRoles.CANONICAL_ROLE,
+ new SequentialUnitSequentialUnitHelperUnitsCompartment4CanonicalEditPolicy());
+ }
+
+ /**
+ * @generated
+ */
+ protected void setRatio(Double ratio) {
+ if (getFigure().getParent().getLayoutManager() instanceof ConstrainedToolbarLayout) {
+ super.setRatio(ratio);
+ }
+ }
+
+}
diff --git a/org.eclipse.emf.refactor.comrel.diagram/src/comrel/diagram/edit/parts/SequentialUnitSequentialUnitHelperUnitsCompartment5EditPart.java b/org.eclipse.emf.refactor.comrel.diagram/src/comrel/diagram/edit/parts/SequentialUnitSequentialUnitHelperUnitsCompartment5EditPart.java
new file mode 100644
index 0000000..144ddae
--- /dev/null
+++ b/org.eclipse.emf.refactor.comrel.diagram/src/comrel/diagram/edit/parts/SequentialUnitSequentialUnitHelperUnitsCompartment5EditPart.java
@@ -0,0 +1,84 @@
+/*
+ *
+ */
+package comrel.diagram.edit.parts;
+
+import org.eclipse.draw2d.IFigure;
+import org.eclipse.gef.EditPolicy;
+import org.eclipse.gmf.runtime.diagram.ui.editparts.ShapeCompartmentEditPart;
+import org.eclipse.gmf.runtime.diagram.ui.editpolicies.CreationEditPolicy;
+import org.eclipse.gmf.runtime.diagram.ui.editpolicies.DragDropEditPolicy;
+import org.eclipse.gmf.runtime.diagram.ui.editpolicies.EditPolicyRoles;
+import org.eclipse.gmf.runtime.diagram.ui.editpolicies.ResizableCompartmentEditPolicy;
+import org.eclipse.gmf.runtime.diagram.ui.figures.ResizableCompartmentFigure;
+import org.eclipse.gmf.runtime.draw2d.ui.figures.ConstrainedToolbarLayout;
+import org.eclipse.gmf.runtime.notation.View;
+
+import comrel.diagram.edit.policies.SequentialUnitSequentialUnitHelperUnitsCompartment5CanonicalEditPolicy;
+import comrel.diagram.edit.policies.SequentialUnitSequentialUnitHelperUnitsCompartment5ItemSemanticEditPolicy;
+import comrel.diagram.part.Messages;
+
+/**
+ * @generated
+ */
+public class SequentialUnitSequentialUnitHelperUnitsCompartment5EditPart extends
+ ShapeCompartmentEditPart {
+
+ /**
+ * @generated
+ */
+ public static final int VISUAL_ID = 7059;
+
+ /**
+ * @generated
+ */
+ public SequentialUnitSequentialUnitHelperUnitsCompartment5EditPart(View view) {
+ super(view);
+ }
+
+ /**
+ * @generated
+ */
+ public String getCompartmentName() {
+ return Messages.SequentialUnitSequentialUnitHelperUnitsCompartment5EditPart_title;
+ }
+
+ /**
+ * @generated
+ */
+ public IFigure createFigure() {
+ ResizableCompartmentFigure result = (ResizableCompartmentFigure) super
+ .createFigure();
+ result.setTitleVisibility(false);
+ return result;
+ }
+
+ /**
+ * @generated
+ */
+ protected void createDefaultEditPolicies() {
+ super.createDefaultEditPolicies();
+ installEditPolicy(EditPolicy.PRIMARY_DRAG_ROLE,
+ new ResizableCompartmentEditPolicy());
+ installEditPolicy(
+ EditPolicyRoles.SEMANTIC_ROLE,
+ new SequentialUnitSequentialUnitHelperUnitsCompartment5ItemSemanticEditPolicy());
+ installEditPolicy(EditPolicyRoles.CREATION_ROLE,
+ new CreationEditPolicy());
+ installEditPolicy(EditPolicyRoles.DRAG_DROP_ROLE,
+ new DragDropEditPolicy());
+ installEditPolicy(
+ EditPolicyRoles.CANONICAL_ROLE,
+ new SequentialUnitSequentialUnitHelperUnitsCompartment5CanonicalEditPolicy());
+ }
+
+ /**
+ * @generated
+ */
+ protected void setRatio(Double ratio) {
+ if (getFigure().getParent().getLayoutManager() instanceof ConstrainedToolbarLayout) {
+ super.setRatio(ratio);
+ }
+ }
+
+}
diff --git a/org.eclipse.emf.refactor.comrel.diagram/src/comrel/diagram/edit/parts/SequentialUnitSequentialUnitHelperUnitsCompartment6EditPart.java b/org.eclipse.emf.refactor.comrel.diagram/src/comrel/diagram/edit/parts/SequentialUnitSequentialUnitHelperUnitsCompartment6EditPart.java
new file mode 100644
index 0000000..3da8297
--- /dev/null
+++ b/org.eclipse.emf.refactor.comrel.diagram/src/comrel/diagram/edit/parts/SequentialUnitSequentialUnitHelperUnitsCompartment6EditPart.java
@@ -0,0 +1,84 @@
+/*
+ *
+ */
+package comrel.diagram.edit.parts;
+
+import org.eclipse.draw2d.IFigure;
+import org.eclipse.gef.EditPolicy;
+import org.eclipse.gmf.runtime.diagram.ui.editparts.ShapeCompartmentEditPart;
+import org.eclipse.gmf.runtime.diagram.ui.editpolicies.CreationEditPolicy;
+import org.eclipse.gmf.runtime.diagram.ui.editpolicies.DragDropEditPolicy;
+import org.eclipse.gmf.runtime.diagram.ui.editpolicies.EditPolicyRoles;
+import org.eclipse.gmf.runtime.diagram.ui.editpolicies.ResizableCompartmentEditPolicy;
+import org.eclipse.gmf.runtime.diagram.ui.figures.ResizableCompartmentFigure;
+import org.eclipse.gmf.runtime.draw2d.ui.figures.ConstrainedToolbarLayout;
+import org.eclipse.gmf.runtime.notation.View;
+
+import comrel.diagram.edit.policies.SequentialUnitSequentialUnitHelperUnitsCompartment6CanonicalEditPolicy;
+import comrel.diagram.edit.policies.SequentialUnitSequentialUnitHelperUnitsCompartment6ItemSemanticEditPolicy;
+import comrel.diagram.part.Messages;
+
+/**
+ * @generated
+ */
+public class SequentialUnitSequentialUnitHelperUnitsCompartment6EditPart extends
+ ShapeCompartmentEditPart {
+
+ /**
+ * @generated
+ */
+ public static final int VISUAL_ID = 7069;
+
+ /**
+ * @generated
+ */
+ public SequentialUnitSequentialUnitHelperUnitsCompartment6EditPart(View view) {
+ super(view);
+ }
+
+ /**
+ * @generated
+ */
+ public String getCompartmentName() {
+ return Messages.SequentialUnitSequentialUnitHelperUnitsCompartment6EditPart_title;
+ }
+
+ /**
+ * @generated
+ */
+ public IFigure createFigure() {
+ ResizableCompartmentFigure result = (ResizableCompartmentFigure) super
+ .createFigure();
+ result.setTitleVisibility(false);
+ return result;
+ }
+
+ /**
+ * @generated
+ */
+ protected void createDefaultEditPolicies() {
+ super.createDefaultEditPolicies();
+ installEditPolicy(EditPolicy.PRIMARY_DRAG_ROLE,
+ new ResizableCompartmentEditPolicy());
+ installEditPolicy(
+ EditPolicyRoles.SEMANTIC_ROLE,
+ new SequentialUnitSequentialUnitHelperUnitsCompartment6ItemSemanticEditPolicy());
+ installEditPolicy(EditPolicyRoles.CREATION_ROLE,
+ new CreationEditPolicy());
+ installEditPolicy(EditPolicyRoles.DRAG_DROP_ROLE,
+ new DragDropEditPolicy());
+ installEditPolicy(
+ EditPolicyRoles.CANONICAL_ROLE,
+ new SequentialUnitSequentialUnitHelperUnitsCompartment6CanonicalEditPolicy());
+ }
+
+ /**
+ * @generated
+ */
+ protected void setRatio(Double ratio) {
+ if (getFigure().getParent().getLayoutManager() instanceof ConstrainedToolbarLayout) {
+ super.setRatio(ratio);
+ }
+ }
+
+}
diff --git a/org.eclipse.emf.refactor.comrel.diagram/src/comrel/diagram/edit/parts/SequentialUnitSequentialUnitHelperUnitsCompartment7EditPart.java b/org.eclipse.emf.refactor.comrel.diagram/src/comrel/diagram/edit/parts/SequentialUnitSequentialUnitHelperUnitsCompartment7EditPart.java
new file mode 100644
index 0000000..7908e64
--- /dev/null
+++ b/org.eclipse.emf.refactor.comrel.diagram/src/comrel/diagram/edit/parts/SequentialUnitSequentialUnitHelperUnitsCompartment7EditPart.java
@@ -0,0 +1,84 @@
+/*
+ *
+ */
+package comrel.diagram.edit.parts;
+
+import org.eclipse.draw2d.IFigure;
+import org.eclipse.gef.EditPolicy;
+import org.eclipse.gmf.runtime.diagram.ui.editparts.ShapeCompartmentEditPart;
+import org.eclipse.gmf.runtime.diagram.ui.editpolicies.CreationEditPolicy;
+import org.eclipse.gmf.runtime.diagram.ui.editpolicies.DragDropEditPolicy;
+import org.eclipse.gmf.runtime.diagram.ui.editpolicies.EditPolicyRoles;
+import org.eclipse.gmf.runtime.diagram.ui.editpolicies.ResizableCompartmentEditPolicy;
+import org.eclipse.gmf.runtime.diagram.ui.figures.ResizableCompartmentFigure;
+import org.eclipse.gmf.runtime.draw2d.ui.figures.ConstrainedToolbarLayout;
+import org.eclipse.gmf.runtime.notation.View;
+
+import comrel.diagram.edit.policies.SequentialUnitSequentialUnitHelperUnitsCompartment7CanonicalEditPolicy;
+import comrel.diagram.edit.policies.SequentialUnitSequentialUnitHelperUnitsCompartment7ItemSemanticEditPolicy;
+import comrel.diagram.part.Messages;
+
+/**
+ * @generated
+ */
+public class SequentialUnitSequentialUnitHelperUnitsCompartment7EditPart extends
+ ShapeCompartmentEditPart {
+
+ /**
+ * @generated
+ */
+ public static final int VISUAL_ID = 7079;
+
+ /**
+ * @generated
+ */
+ public SequentialUnitSequentialUnitHelperUnitsCompartment7EditPart(View view) {
+ super(view);
+ }
+
+ /**
+ * @generated
+ */
+ public String getCompartmentName() {
+ return Messages.SequentialUnitSequentialUnitHelperUnitsCompartment7EditPart_title;
+ }
+
+ /**
+ * @generated
+ */
+ public IFigure createFigure() {
+ ResizableCompartmentFigure result = (ResizableCompartmentFigure) super
+ .createFigure();
+ result.setTitleVisibility(false);
+ return result;
+ }
+
+ /**
+ * @generated
+ */
+ protected void createDefaultEditPolicies() {
+ super.createDefaultEditPolicies();
+ installEditPolicy(EditPolicy.PRIMARY_DRAG_ROLE,
+ new ResizableCompartmentEditPolicy());
+ installEditPolicy(
+ EditPolicyRoles.SEMANTIC_ROLE,
+ new SequentialUnitSequentialUnitHelperUnitsCompartment7ItemSemanticEditPolicy());
+ installEditPolicy(EditPolicyRoles.CREATION_ROLE,
+ new CreationEditPolicy());
+ installEditPolicy(EditPolicyRoles.DRAG_DROP_ROLE,
+ new DragDropEditPolicy());
+ installEditPolicy(
+ EditPolicyRoles.CANONICAL_ROLE,
+ new SequentialUnitSequentialUnitHelperUnitsCompartment7CanonicalEditPolicy());
+ }
+
+ /**
+ * @generated
+ */
+ protected void setRatio(Double ratio) {
+ if (getFigure().getParent().getLayoutManager() instanceof ConstrainedToolbarLayout) {
+ super.setRatio(ratio);
+ }
+ }
+
+}
diff --git a/org.eclipse.emf.refactor.comrel.diagram/src/comrel/diagram/edit/parts/SequentialUnitSequentialUnitHelperUnitsCompartmentEditPart.java b/org.eclipse.emf.refactor.comrel.diagram/src/comrel/diagram/edit/parts/SequentialUnitSequentialUnitHelperUnitsCompartmentEditPart.java
new file mode 100644
index 0000000..a8e0bb5
--- /dev/null
+++ b/org.eclipse.emf.refactor.comrel.diagram/src/comrel/diagram/edit/parts/SequentialUnitSequentialUnitHelperUnitsCompartmentEditPart.java
@@ -0,0 +1,84 @@
+/*
+ *
+ */
+package comrel.diagram.edit.parts;
+
+import org.eclipse.draw2d.IFigure;
+import org.eclipse.gef.EditPolicy;
+import org.eclipse.gmf.runtime.diagram.ui.editparts.ShapeCompartmentEditPart;
+import org.eclipse.gmf.runtime.diagram.ui.editpolicies.CreationEditPolicy;
+import org.eclipse.gmf.runtime.diagram.ui.editpolicies.DragDropEditPolicy;
+import org.eclipse.gmf.runtime.diagram.ui.editpolicies.EditPolicyRoles;
+import org.eclipse.gmf.runtime.diagram.ui.editpolicies.ResizableCompartmentEditPolicy;
+import org.eclipse.gmf.runtime.diagram.ui.figures.ResizableCompartmentFigure;
+import org.eclipse.gmf.runtime.draw2d.ui.figures.ConstrainedToolbarLayout;
+import org.eclipse.gmf.runtime.notation.View;
+
+import comrel.diagram.edit.policies.SequentialUnitSequentialUnitHelperUnitsCompartmentCanonicalEditPolicy;
+import comrel.diagram.edit.policies.SequentialUnitSequentialUnitHelperUnitsCompartmentItemSemanticEditPolicy;
+import comrel.diagram.part.Messages;
+
+/**
+ * @generated
+ */
+public class SequentialUnitSequentialUnitHelperUnitsCompartmentEditPart extends
+ ShapeCompartmentEditPart {
+
+ /**
+ * @generated
+ */
+ public static final int VISUAL_ID = 7013;
+
+ /**
+ * @generated
+ */
+ public SequentialUnitSequentialUnitHelperUnitsCompartmentEditPart(View view) {
+ super(view);
+ }
+
+ /**
+ * @generated
+ */
+ public String getCompartmentName() {
+ return Messages.SequentialUnitSequentialUnitHelperUnitsCompartmentEditPart_title;
+ }
+
+ /**
+ * @generated
+ */
+ public IFigure createFigure() {
+ ResizableCompartmentFigure result = (ResizableCompartmentFigure) super
+ .createFigure();
+ result.setTitleVisibility(false);
+ return result;
+ }
+
+ /**
+ * @generated
+ */
+ protected void createDefaultEditPolicies() {
+ super.createDefaultEditPolicies();
+ installEditPolicy(EditPolicy.PRIMARY_DRAG_ROLE,
+ new ResizableCompartmentEditPolicy());
+ installEditPolicy(
+ EditPolicyRoles.SEMANTIC_ROLE,
+ new SequentialUnitSequentialUnitHelperUnitsCompartmentItemSemanticEditPolicy());
+ installEditPolicy(EditPolicyRoles.CREATION_ROLE,
+ new CreationEditPolicy());
+ installEditPolicy(EditPolicyRoles.DRAG_DROP_ROLE,
+ new DragDropEditPolicy());
+ installEditPolicy(
+ EditPolicyRoles.CANONICAL_ROLE,
+ new SequentialUnitSequentialUnitHelperUnitsCompartmentCanonicalEditPolicy());
+ }
+
+ /**
+ * @generated
+ */
+ protected void setRatio(Double ratio) {
+ if (getFigure().getParent().getLayoutManager() instanceof ConstrainedToolbarLayout) {
+ super.setRatio(ratio);
+ }
+ }
+
+}
diff --git a/org.eclipse.emf.refactor.comrel.diagram/src/comrel/diagram/edit/parts/SequentialUnitSequentialUnitRefactoringUnitsCompartment2EditPart.java b/org.eclipse.emf.refactor.comrel.diagram/src/comrel/diagram/edit/parts/SequentialUnitSequentialUnitRefactoringUnitsCompartment2EditPart.java
new file mode 100644
index 0000000..65681c4
--- /dev/null
+++ b/org.eclipse.emf.refactor.comrel.diagram/src/comrel/diagram/edit/parts/SequentialUnitSequentialUnitRefactoringUnitsCompartment2EditPart.java
@@ -0,0 +1,85 @@
+/*
+ *
+ */
+package comrel.diagram.edit.parts;
+
+import org.eclipse.draw2d.IFigure;
+import org.eclipse.gef.EditPolicy;
+import org.eclipse.gmf.runtime.diagram.ui.editparts.ShapeCompartmentEditPart;
+import org.eclipse.gmf.runtime.diagram.ui.editpolicies.CreationEditPolicy;
+import org.eclipse.gmf.runtime.diagram.ui.editpolicies.DragDropEditPolicy;
+import org.eclipse.gmf.runtime.diagram.ui.editpolicies.EditPolicyRoles;
+import org.eclipse.gmf.runtime.diagram.ui.editpolicies.ResizableCompartmentEditPolicy;
+import org.eclipse.gmf.runtime.diagram.ui.figures.ResizableCompartmentFigure;
+import org.eclipse.gmf.runtime.draw2d.ui.figures.ConstrainedToolbarLayout;
+import org.eclipse.gmf.runtime.notation.View;
+
+import comrel.diagram.edit.policies.SequentialUnitSequentialUnitRefactoringUnitsCompartment2CanonicalEditPolicy;
+import comrel.diagram.edit.policies.SequentialUnitSequentialUnitRefactoringUnitsCompartment2ItemSemanticEditPolicy;
+import comrel.diagram.part.Messages;
+
+/**
+ * @generated
+ */
+public class SequentialUnitSequentialUnitRefactoringUnitsCompartment2EditPart
+ extends ShapeCompartmentEditPart {
+
+ /**
+ * @generated
+ */
+ public static final int VISUAL_ID = 7032;
+
+ /**
+ * @generated
+ */
+ public SequentialUnitSequentialUnitRefactoringUnitsCompartment2EditPart(
+ View view) {
+ super(view);
+ }
+
+ /**
+ * @generated
+ */
+ public String getCompartmentName() {
+ return Messages.SequentialUnitSequentialUnitRefactoringUnitsCompartment2EditPart_title;
+ }
+
+ /**
+ * @generated
+ */
+ public IFigure createFigure() {
+ ResizableCompartmentFigure result = (ResizableCompartmentFigure) super
+ .createFigure();
+ result.setTitleVisibility(false);
+ return result;
+ }
+
+ /**
+ * @generated
+ */
+ protected void createDefaultEditPolicies() {
+ super.createDefaultEditPolicies();
+ installEditPolicy(EditPolicy.PRIMARY_DRAG_ROLE,
+ new ResizableCompartmentEditPolicy());
+ installEditPolicy(
+ EditPolicyRoles.SEMANTIC_ROLE,
+ new SequentialUnitSequentialUnitRefactoringUnitsCompartment2ItemSemanticEditPolicy());
+ installEditPolicy(EditPolicyRoles.CREATION_ROLE,
+ new CreationEditPolicy());
+ installEditPolicy(EditPolicyRoles.DRAG_DROP_ROLE,
+ new DragDropEditPolicy());
+ installEditPolicy(
+ EditPolicyRoles.CANONICAL_ROLE,
+ new SequentialUnitSequentialUnitRefactoringUnitsCompartment2CanonicalEditPolicy());
+ }
+
+ /**
+ * @generated
+ */
+ protected void setRatio(Double ratio) {
+ if (getFigure().getParent().getLayoutManager() instanceof ConstrainedToolbarLayout) {
+ super.setRatio(ratio);
+ }
+ }
+
+}
diff --git a/org.eclipse.emf.refactor.comrel.diagram/src/comrel/diagram/edit/parts/SequentialUnitSequentialUnitRefactoringUnitsCompartment3EditPart.java b/org.eclipse.emf.refactor.comrel.diagram/src/comrel/diagram/edit/parts/SequentialUnitSequentialUnitRefactoringUnitsCompartment3EditPart.java
new file mode 100644
index 0000000..c547a02
--- /dev/null
+++ b/org.eclipse.emf.refactor.comrel.diagram/src/comrel/diagram/edit/parts/SequentialUnitSequentialUnitRefactoringUnitsCompartment3EditPart.java
@@ -0,0 +1,85 @@
+/*
+ *
+ */
+package comrel.diagram.edit.parts;
+
+import org.eclipse.draw2d.IFigure;
+import org.eclipse.gef.EditPolicy;
+import org.eclipse.gmf.runtime.diagram.ui.editparts.ShapeCompartmentEditPart;
+import org.eclipse.gmf.runtime.diagram.ui.editpolicies.CreationEditPolicy;
+import org.eclipse.gmf.runtime.diagram.ui.editpolicies.DragDropEditPolicy;
+import org.eclipse.gmf.runtime.diagram.ui.editpolicies.EditPolicyRoles;
+import org.eclipse.gmf.runtime.diagram.ui.editpolicies.ResizableCompartmentEditPolicy;
+import org.eclipse.gmf.runtime.diagram.ui.figures.ResizableCompartmentFigure;
+import org.eclipse.gmf.runtime.draw2d.ui.figures.ConstrainedToolbarLayout;
+import org.eclipse.gmf.runtime.notation.View;
+
+import comrel.diagram.edit.policies.SequentialUnitSequentialUnitRefactoringUnitsCompartment3CanonicalEditPolicy;
+import comrel.diagram.edit.policies.SequentialUnitSequentialUnitRefactoringUnitsCompartment3ItemSemanticEditPolicy;
+import comrel.diagram.part.Messages;
+
+/**
+ * @generated
+ */
+public class SequentialUnitSequentialUnitRefactoringUnitsCompartment3EditPart
+ extends ShapeCompartmentEditPart {
+
+ /**
+ * @generated
+ */
+ public static final int VISUAL_ID = 7048;
+
+ /**
+ * @generated
+ */
+ public SequentialUnitSequentialUnitRefactoringUnitsCompartment3EditPart(
+ View view) {
+ super(view);
+ }
+
+ /**
+ * @generated
+ */
+ public String getCompartmentName() {
+ return Messages.SequentialUnitSequentialUnitRefactoringUnitsCompartment3EditPart_title;
+ }
+
+ /**
+ * @generated
+ */
+ public IFigure createFigure() {
+ ResizableCompartmentFigure result = (ResizableCompartmentFigure) super
+ .createFigure();
+ result.setTitleVisibility(false);
+ return result;
+ }
+
+ /**
+ * @generated
+ */
+ protected void createDefaultEditPolicies() {
+ super.createDefaultEditPolicies();
+ installEditPolicy(EditPolicy.PRIMARY_DRAG_ROLE,
+ new ResizableCompartmentEditPolicy());
+ installEditPolicy(
+ EditPolicyRoles.SEMANTIC_ROLE,
+ new SequentialUnitSequentialUnitRefactoringUnitsCompartment3ItemSemanticEditPolicy());
+ installEditPolicy(EditPolicyRoles.CREATION_ROLE,
+ new CreationEditPolicy());
+ installEditPolicy(EditPolicyRoles.DRAG_DROP_ROLE,
+ new DragDropEditPolicy());
+ installEditPolicy(
+ EditPolicyRoles.CANONICAL_ROLE,
+ new SequentialUnitSequentialUnitRefactoringUnitsCompartment3CanonicalEditPolicy());
+ }
+
+ /**
+ * @generated
+ */
+ protected void setRatio(Double ratio) {
+ if (getFigure().getParent().getLayoutManager() instanceof ConstrainedToolbarLayout) {
+ super.setRatio(ratio);
+ }
+ }
+
+}
diff --git a/org.eclipse.emf.refactor.comrel.diagram/src/comrel/diagram/edit/parts/SequentialUnitSequentialUnitRefactoringUnitsCompartment4EditPart.java b/org.eclipse.emf.refactor.comrel.diagram/src/comrel/diagram/edit/parts/SequentialUnitSequentialUnitRefactoringUnitsCompartment4EditPart.java
new file mode 100644
index 0000000..e629cd6
--- /dev/null
+++ b/org.eclipse.emf.refactor.comrel.diagram/src/comrel/diagram/edit/parts/SequentialUnitSequentialUnitRefactoringUnitsCompartment4EditPart.java
@@ -0,0 +1,85 @@
+/*
+ *
+ */
+package comrel.diagram.edit.parts;
+
+import org.eclipse.draw2d.IFigure;
+import org.eclipse.gef.EditPolicy;
+import org.eclipse.gmf.runtime.diagram.ui.editparts.ShapeCompartmentEditPart;
+import org.eclipse.gmf.runtime.diagram.ui.editpolicies.CreationEditPolicy;
+import org.eclipse.gmf.runtime.diagram.ui.editpolicies.DragDropEditPolicy;
+import org.eclipse.gmf.runtime.diagram.ui.editpolicies.EditPolicyRoles;
+import org.eclipse.gmf.runtime.diagram.ui.editpolicies.ResizableCompartmentEditPolicy;
+import org.eclipse.gmf.runtime.diagram.ui.figures.ResizableCompartmentFigure;
+import org.eclipse.gmf.runtime.draw2d.ui.figures.ConstrainedToolbarLayout;
+import org.eclipse.gmf.runtime.notation.View;
+
+import comrel.diagram.edit.policies.SequentialUnitSequentialUnitRefactoringUnitsCompartment4CanonicalEditPolicy;
+import comrel.diagram.edit.policies.SequentialUnitSequentialUnitRefactoringUnitsCompartment4ItemSemanticEditPolicy;
+import comrel.diagram.part.Messages;
+
+/**
+ * @generated
+ */
+public class SequentialUnitSequentialUnitRefactoringUnitsCompartment4EditPart
+ extends ShapeCompartmentEditPart {
+
+ /**
+ * @generated
+ */
+ public static final int VISUAL_ID = 7058;
+
+ /**
+ * @generated
+ */
+ public SequentialUnitSequentialUnitRefactoringUnitsCompartment4EditPart(
+ View view) {
+ super(view);
+ }
+
+ /**
+ * @generated
+ */
+ public String getCompartmentName() {
+ return Messages.SequentialUnitSequentialUnitRefactoringUnitsCompartment4EditPart_title;
+ }
+
+ /**
+ * @generated
+ */
+ public IFigure createFigure() {
+ ResizableCompartmentFigure result = (ResizableCompartmentFigure) super
+ .createFigure();
+ result.setTitleVisibility(false);
+ return result;
+ }
+
+ /**
+ * @generated
+ */
+ protected void createDefaultEditPolicies() {
+ super.createDefaultEditPolicies();
+ installEditPolicy(EditPolicy.PRIMARY_DRAG_ROLE,
+ new ResizableCompartmentEditPolicy());
+ installEditPolicy(
+ EditPolicyRoles.SEMANTIC_ROLE,
+ new SequentialUnitSequentialUnitRefactoringUnitsCompartment4ItemSemanticEditPolicy());
+ installEditPolicy(EditPolicyRoles.CREATION_ROLE,
+ new CreationEditPolicy());
+ installEditPolicy(EditPolicyRoles.DRAG_DROP_ROLE,
+ new DragDropEditPolicy());
+ installEditPolicy(
+ EditPolicyRoles.CANONICAL_ROLE,
+ new SequentialUnitSequentialUnitRefactoringUnitsCompartment4CanonicalEditPolicy());
+ }
+
+ /**
+ * @generated
+ */
+ protected void setRatio(Double ratio) {
+ if (getFigure().getParent().getLayoutManager() instanceof ConstrainedToolbarLayout) {
+ super.setRatio(ratio);
+ }
+ }
+
+}
diff --git a/org.eclipse.emf.refactor.comrel.diagram/src/comrel/diagram/edit/parts/SequentialUnitSequentialUnitRefactoringUnitsCompartment5EditPart.java b/org.eclipse.emf.refactor.comrel.diagram/src/comrel/diagram/edit/parts/SequentialUnitSequentialUnitRefactoringUnitsCompartment5EditPart.java
new file mode 100644
index 0000000..d266466
--- /dev/null
+++ b/org.eclipse.emf.refactor.comrel.diagram/src/comrel/diagram/edit/parts/SequentialUnitSequentialUnitRefactoringUnitsCompartment5EditPart.java
@@ -0,0 +1,85 @@
+/*
+ *
+ */
+package comrel.diagram.edit.parts;
+
+import org.eclipse.draw2d.IFigure;
+import org.eclipse.gef.EditPolicy;
+import org.eclipse.gmf.runtime.diagram.ui.editparts.ShapeCompartmentEditPart;
+import org.eclipse.gmf.runtime.diagram.ui.editpolicies.CreationEditPolicy;
+import org.eclipse.gmf.runtime.diagram.ui.editpolicies.DragDropEditPolicy;
+import org.eclipse.gmf.runtime.diagram.ui.editpolicies.EditPolicyRoles;
+import org.eclipse.gmf.runtime.diagram.ui.editpolicies.ResizableCompartmentEditPolicy;
+import org.eclipse.gmf.runtime.diagram.ui.figures.ResizableCompartmentFigure;
+import org.eclipse.gmf.runtime.draw2d.ui.figures.ConstrainedToolbarLayout;
+import org.eclipse.gmf.runtime.notation.View;
+
+import comrel.diagram.edit.policies.SequentialUnitSequentialUnitRefactoringUnitsCompartment5CanonicalEditPolicy;
+import comrel.diagram.edit.policies.SequentialUnitSequentialUnitRefactoringUnitsCompartment5ItemSemanticEditPolicy;
+import comrel.diagram.part.Messages;
+
+/**
+ * @generated
+ */
+public class SequentialUnitSequentialUnitRefactoringUnitsCompartment5EditPart
+ extends ShapeCompartmentEditPart {
+
+ /**
+ * @generated
+ */
+ public static final int VISUAL_ID = 7060;
+
+ /**
+ * @generated
+ */
+ public SequentialUnitSequentialUnitRefactoringUnitsCompartment5EditPart(
+ View view) {
+ super(view);
+ }
+
+ /**
+ * @generated
+ */
+ public String getCompartmentName() {
+ return Messages.SequentialUnitSequentialUnitRefactoringUnitsCompartment5EditPart_title;
+ }
+
+ /**
+ * @generated
+ */
+ public IFigure createFigure() {
+ ResizableCompartmentFigure result = (ResizableCompartmentFigure) super
+ .createFigure();
+ result.setTitleVisibility(false);
+ return result;
+ }
+
+ /**
+ * @generated
+ */
+ protected void createDefaultEditPolicies() {
+ super.createDefaultEditPolicies();
+ installEditPolicy(EditPolicy.PRIMARY_DRAG_ROLE,
+ new ResizableCompartmentEditPolicy());
+ installEditPolicy(
+ EditPolicyRoles.SEMANTIC_ROLE,
+ new SequentialUnitSequentialUnitRefactoringUnitsCompartment5ItemSemanticEditPolicy());
+ installEditPolicy(EditPolicyRoles.CREATION_ROLE,
+ new CreationEditPolicy());
+ installEditPolicy(EditPolicyRoles.DRAG_DROP_ROLE,
+ new DragDropEditPolicy());
+ installEditPolicy(
+ EditPolicyRoles.CANONICAL_ROLE,
+ new SequentialUnitSequentialUnitRefactoringUnitsCompartment5CanonicalEditPolicy());
+ }
+
+ /**
+ * @generated
+ */
+ protected void setRatio(Double ratio) {
+ if (getFigure().getParent().getLayoutManager() instanceof ConstrainedToolbarLayout) {
+ super.setRatio(ratio);
+ }
+ }
+
+}
diff --git a/org.eclipse.emf.refactor.comrel.diagram/src/comrel/diagram/edit/parts/SequentialUnitSequentialUnitRefactoringUnitsCompartment6EditPart.java b/org.eclipse.emf.refactor.comrel.diagram/src/comrel/diagram/edit/parts/SequentialUnitSequentialUnitRefactoringUnitsCompartment6EditPart.java
new file mode 100644
index 0000000..db81165
--- /dev/null
+++ b/org.eclipse.emf.refactor.comrel.diagram/src/comrel/diagram/edit/parts/SequentialUnitSequentialUnitRefactoringUnitsCompartment6EditPart.java
@@ -0,0 +1,85 @@
+/*
+ *
+ */
+package comrel.diagram.edit.parts;
+
+import org.eclipse.draw2d.IFigure;
+import org.eclipse.gef.EditPolicy;
+import org.eclipse.gmf.runtime.diagram.ui.editparts.ShapeCompartmentEditPart;
+import org.eclipse.gmf.runtime.diagram.ui.editpolicies.CreationEditPolicy;
+import org.eclipse.gmf.runtime.diagram.ui.editpolicies.DragDropEditPolicy;
+import org.eclipse.gmf.runtime.diagram.ui.editpolicies.EditPolicyRoles;
+import org.eclipse.gmf.runtime.diagram.ui.editpolicies.ResizableCompartmentEditPolicy;
+import org.eclipse.gmf.runtime.diagram.ui.figures.ResizableCompartmentFigure;
+import org.eclipse.gmf.runtime.draw2d.ui.figures.ConstrainedToolbarLayout;
+import org.eclipse.gmf.runtime.notation.View;
+
+import comrel.diagram.edit.policies.SequentialUnitSequentialUnitRefactoringUnitsCompartment6CanonicalEditPolicy;
+import comrel.diagram.edit.policies.SequentialUnitSequentialUnitRefactoringUnitsCompartment6ItemSemanticEditPolicy;
+import comrel.diagram.part.Messages;
+
+/**
+ * @generated
+ */
+public class SequentialUnitSequentialUnitRefactoringUnitsCompartment6EditPart
+ extends ShapeCompartmentEditPart {
+
+ /**
+ * @generated
+ */
+ public static final int VISUAL_ID = 7070;
+
+ /**
+ * @generated
+ */
+ public SequentialUnitSequentialUnitRefactoringUnitsCompartment6EditPart(
+ View view) {
+ super(view);
+ }
+
+ /**
+ * @generated
+ */
+ public String getCompartmentName() {
+ return Messages.SequentialUnitSequentialUnitRefactoringUnitsCompartment6EditPart_title;
+ }
+
+ /**
+ * @generated
+ */
+ public IFigure createFigure() {
+ ResizableCompartmentFigure result = (ResizableCompartmentFigure) super
+ .createFigure();
+ result.setTitleVisibility(false);
+ return result;
+ }
+
+ /**
+ * @generated
+ */
+ protected void createDefaultEditPolicies() {
+ super.createDefaultEditPolicies();
+ installEditPolicy(EditPolicy.PRIMARY_DRAG_ROLE,
+ new ResizableCompartmentEditPolicy());
+ installEditPolicy(
+ EditPolicyRoles.SEMANTIC_ROLE,
+ new SequentialUnitSequentialUnitRefactoringUnitsCompartment6ItemSemanticEditPolicy());
+ installEditPolicy(EditPolicyRoles.CREATION_ROLE,
+ new CreationEditPolicy());
+ installEditPolicy(EditPolicyRoles.DRAG_DROP_ROLE,
+ new DragDropEditPolicy());
+ installEditPolicy(
+ EditPolicyRoles.CANONICAL_ROLE,
+ new SequentialUnitSequentialUnitRefactoringUnitsCompartment6CanonicalEditPolicy());
+ }
+
+ /**
+ * @generated
+ */
+ protected void setRatio(Double ratio) {
+ if (getFigure().getParent().getLayoutManager() instanceof ConstrainedToolbarLayout) {
+ super.setRatio(ratio);
+ }
+ }
+
+}
diff --git a/org.eclipse.emf.refactor.comrel.diagram/src/comrel/diagram/edit/parts/SequentialUnitSequentialUnitRefactoringUnitsCompartment7EditPart.java b/org.eclipse.emf.refactor.comrel.diagram/src/comrel/diagram/edit/parts/SequentialUnitSequentialUnitRefactoringUnitsCompartment7EditPart.java
new file mode 100644
index 0000000..85550c2
--- /dev/null
+++ b/org.eclipse.emf.refactor.comrel.diagram/src/comrel/diagram/edit/parts/SequentialUnitSequentialUnitRefactoringUnitsCompartment7EditPart.java
@@ -0,0 +1,85 @@
+/*
+ *
+ */
+package comrel.diagram.edit.parts;
+
+import org.eclipse.draw2d.IFigure;
+import org.eclipse.gef.EditPolicy;
+import org.eclipse.gmf.runtime.diagram.ui.editparts.ShapeCompartmentEditPart;
+import org.eclipse.gmf.runtime.diagram.ui.editpolicies.CreationEditPolicy;
+import org.eclipse.gmf.runtime.diagram.ui.editpolicies.DragDropEditPolicy;
+import org.eclipse.gmf.runtime.diagram.ui.editpolicies.EditPolicyRoles;
+import org.eclipse.gmf.runtime.diagram.ui.editpolicies.ResizableCompartmentEditPolicy;
+import org.eclipse.gmf.runtime.diagram.ui.figures.ResizableCompartmentFigure;
+import org.eclipse.gmf.runtime.draw2d.ui.figures.ConstrainedToolbarLayout;
+import org.eclipse.gmf.runtime.notation.View;
+
+import comrel.diagram.edit.policies.SequentialUnitSequentialUnitRefactoringUnitsCompartment7CanonicalEditPolicy;
+import comrel.diagram.edit.policies.SequentialUnitSequentialUnitRefactoringUnitsCompartment7ItemSemanticEditPolicy;
+import comrel.diagram.part.Messages;
+
+/**
+ * @generated
+ */
+public class SequentialUnitSequentialUnitRefactoringUnitsCompartment7EditPart
+ extends ShapeCompartmentEditPart {
+
+ /**
+ * @generated
+ */
+ public static final int VISUAL_ID = 7080;
+
+ /**
+ * @generated
+ */
+ public SequentialUnitSequentialUnitRefactoringUnitsCompartment7EditPart(
+ View view) {
+ super(view);
+ }
+
+ /**
+ * @generated
+ */
+ public String getCompartmentName() {
+ return Messages.SequentialUnitSequentialUnitRefactoringUnitsCompartment7EditPart_title;
+ }
+
+ /**
+ * @generated
+ */
+ public IFigure createFigure() {
+ ResizableCompartmentFigure result = (ResizableCompartmentFigure) super
+ .createFigure();
+ result.setTitleVisibility(false);
+ return result;
+ }
+
+ /**
+ * @generated
+ */
+ protected void createDefaultEditPolicies() {
+ super.createDefaultEditPolicies();
+ installEditPolicy(EditPolicy.PRIMARY_DRAG_ROLE,
+ new ResizableCompartmentEditPolicy());
+ installEditPolicy(
+ EditPolicyRoles.SEMANTIC_ROLE,
+ new SequentialUnitSequentialUnitRefactoringUnitsCompartment7ItemSemanticEditPolicy());
+ installEditPolicy(EditPolicyRoles.CREATION_ROLE,
+ new CreationEditPolicy());
+ installEditPolicy(EditPolicyRoles.DRAG_DROP_ROLE,
+ new DragDropEditPolicy());
+ installEditPolicy(
+ EditPolicyRoles.CANONICAL_ROLE,
+ new SequentialUnitSequentialUnitRefactoringUnitsCompartment7CanonicalEditPolicy());
+ }
+
+ /**
+ * @generated
+ */
+ protected void setRatio(Double ratio) {
+ if (getFigure().getParent().getLayoutManager() instanceof ConstrainedToolbarLayout) {
+ super.setRatio(ratio);
+ }
+ }
+
+}
diff --git a/org.eclipse.emf.refactor.comrel.diagram/src/comrel/diagram/edit/parts/SequentialUnitSequentialUnitRefactoringUnitsCompartmentEditPart.java b/org.eclipse.emf.refactor.comrel.diagram/src/comrel/diagram/edit/parts/SequentialUnitSequentialUnitRefactoringUnitsCompartmentEditPart.java
new file mode 100644
index 0000000..e612204
--- /dev/null
+++ b/org.eclipse.emf.refactor.comrel.diagram/src/comrel/diagram/edit/parts/SequentialUnitSequentialUnitRefactoringUnitsCompartmentEditPart.java
@@ -0,0 +1,85 @@
+/*
+ *
+ */
+package comrel.diagram.edit.parts;
+
+import org.eclipse.draw2d.IFigure;
+import org.eclipse.gef.EditPolicy;
+import org.eclipse.gmf.runtime.diagram.ui.editparts.ShapeCompartmentEditPart;
+import org.eclipse.gmf.runtime.diagram.ui.editpolicies.CreationEditPolicy;
+import org.eclipse.gmf.runtime.diagram.ui.editpolicies.DragDropEditPolicy;
+import org.eclipse.gmf.runtime.diagram.ui.editpolicies.EditPolicyRoles;
+import org.eclipse.gmf.runtime.diagram.ui.editpolicies.ResizableCompartmentEditPolicy;
+import org.eclipse.gmf.runtime.diagram.ui.figures.ResizableCompartmentFigure;
+import org.eclipse.gmf.runtime.draw2d.ui.figures.ConstrainedToolbarLayout;
+import org.eclipse.gmf.runtime.notation.View;
+
+import comrel.diagram.edit.policies.SequentialUnitSequentialUnitRefactoringUnitsCompartmentCanonicalEditPolicy;
+import comrel.diagram.edit.policies.SequentialUnitSequentialUnitRefactoringUnitsCompartmentItemSemanticEditPolicy;
+import comrel.diagram.part.Messages;
+
+/**
+ * @generated
+ */
+public class SequentialUnitSequentialUnitRefactoringUnitsCompartmentEditPart
+ extends ShapeCompartmentEditPart {
+
+ /**
+ * @generated
+ */
+ public static final int VISUAL_ID = 7014;
+
+ /**
+ * @generated
+ */
+ public SequentialUnitSequentialUnitRefactoringUnitsCompartmentEditPart(
+ View view) {
+ super(view);
+ }
+
+ /**
+ * @generated
+ */
+ public String getCompartmentName() {
+ return Messages.SequentialUnitSequentialUnitRefactoringUnitsCompartmentEditPart_title;
+ }
+
+ /**
+ * @generated
+ */
+ public IFigure createFigure() {
+ ResizableCompartmentFigure result = (ResizableCompartmentFigure) super
+ .createFigure();
+ result.setTitleVisibility(false);
+ return result;
+ }
+
+ /**
+ * @generated
+ */
+ protected void createDefaultEditPolicies() {
+ super.createDefaultEditPolicies();
+ installEditPolicy(EditPolicy.PRIMARY_DRAG_ROLE,
+ new ResizableCompartmentEditPolicy());
+ installEditPolicy(
+ EditPolicyRoles.SEMANTIC_ROLE,
+ new SequentialUnitSequentialUnitRefactoringUnitsCompartmentItemSemanticEditPolicy());
+ installEditPolicy(EditPolicyRoles.CREATION_ROLE,
+ new CreationEditPolicy());
+ installEditPolicy(EditPolicyRoles.DRAG_DROP_ROLE,
+ new DragDropEditPolicy());
+ installEditPolicy(
+ EditPolicyRoles.CANONICAL_ROLE,
+ new SequentialUnitSequentialUnitRefactoringUnitsCompartmentCanonicalEditPolicy());
+ }
+
+ /**
+ * @generated
+ */
+ protected void setRatio(Double ratio) {
+ if (getFigure().getParent().getLayoutManager() instanceof ConstrainedToolbarLayout) {
+ super.setRatio(ratio);
+ }
+ }
+
+}
diff --git a/org.eclipse.emf.refactor.comrel.diagram/src/comrel/diagram/edit/parts/SingleFeatureUnit2EditPart.java b/org.eclipse.emf.refactor.comrel.diagram/src/comrel/diagram/edit/parts/SingleFeatureUnit2EditPart.java
new file mode 100644
index 0000000..ec74784
--- /dev/null
+++ b/org.eclipse.emf.refactor.comrel.diagram/src/comrel/diagram/edit/parts/SingleFeatureUnit2EditPart.java
@@ -0,0 +1,366 @@
+/*
+ *
+ */
+package comrel.diagram.edit.parts;
+
+import org.eclipse.draw2d.IFigure;
+import org.eclipse.draw2d.MarginBorder;
+import org.eclipse.draw2d.PositionConstants;
+import org.eclipse.draw2d.RoundedRectangle;
+import org.eclipse.draw2d.Shape;
+import org.eclipse.draw2d.StackLayout;
+import org.eclipse.draw2d.geometry.Dimension;
+import org.eclipse.gef.EditPart;
+import org.eclipse.gef.EditPolicy;
+import org.eclipse.gef.Request;
+import org.eclipse.gef.commands.Command;
+import org.eclipse.gef.editpolicies.LayoutEditPolicy;
+import org.eclipse.gef.editpolicies.NonResizableEditPolicy;
+import org.eclipse.gef.requests.CreateRequest;
+import org.eclipse.gmf.runtime.diagram.ui.editparts.AbstractBorderedShapeEditPart;
+import org.eclipse.gmf.runtime.diagram.ui.editparts.IBorderItemEditPart;
+import org.eclipse.gmf.runtime.diagram.ui.editparts.IGraphicalEditPart;
+import org.eclipse.gmf.runtime.diagram.ui.editpolicies.BorderItemSelectionEditPolicy;
+import org.eclipse.gmf.runtime.diagram.ui.editpolicies.CreationEditPolicy;
+import org.eclipse.gmf.runtime.diagram.ui.editpolicies.DragDropEditPolicy;
+import org.eclipse.gmf.runtime.diagram.ui.editpolicies.EditPolicyRoles;
+import org.eclipse.gmf.runtime.diagram.ui.figures.BorderItemLocator;
+import org.eclipse.gmf.runtime.draw2d.ui.figures.ConstrainedToolbarLayout;
+import org.eclipse.gmf.runtime.draw2d.ui.figures.WrappingLabel;
+import org.eclipse.gmf.runtime.gef.ui.figures.DefaultSizeNodeFigure;
+import org.eclipse.gmf.runtime.gef.ui.figures.NodeFigure;
+import org.eclipse.gmf.runtime.notation.View;
+import org.eclipse.swt.graphics.Color;
+
+import comrel.diagram.edit.policies.SingleFeatureUnit2CanonicalEditPolicy;
+import comrel.diagram.edit.policies.SingleFeatureUnit2ItemSemanticEditPolicy;
+import comrel.diagram.part.ComrelVisualIDRegistry;
+
+/**
+ * @generated
+ */
+public class SingleFeatureUnit2EditPart extends AbstractBorderedShapeEditPart {
+
+ /**
+ * @generated
+ */
+ public static final int VISUAL_ID = 3038;
+
+ /**
+ * @generated
+ */
+ protected IFigure contentPane;
+
+ /**
+ * @generated
+ */
+ protected IFigure primaryShape;
+
+ /**
+ * @generated
+ */
+ public SingleFeatureUnit2EditPart(View view) {
+ super(view);
+ }
+
+ /**
+ * @generated
+ */
+ protected void createDefaultEditPolicies() {
+ installEditPolicy(EditPolicyRoles.CREATION_ROLE,
+ new CreationEditPolicy());
+ super.createDefaultEditPolicies();
+ installEditPolicy(EditPolicyRoles.SEMANTIC_ROLE,
+ new SingleFeatureUnit2ItemSemanticEditPolicy());
+ installEditPolicy(EditPolicyRoles.DRAG_DROP_ROLE,
+ new DragDropEditPolicy());
+ installEditPolicy(EditPolicyRoles.CANONICAL_ROLE,
+ new SingleFeatureUnit2CanonicalEditPolicy());
+ installEditPolicy(EditPolicy.LAYOUT_ROLE, createLayoutEditPolicy());
+ // XXX need an SCR to runtime to have another abstract superclass that would let children add reasonable editpolicies
+ // removeEditPolicy(org.eclipse.gmf.runtime.diagram.ui.editpolicies.EditPolicyRoles.CONNECTION_HANDLES_ROLE);
+ }
+
+ /**
+ * @generated
+ */
+ protected LayoutEditPolicy createLayoutEditPolicy() {
+ org.eclipse.gmf.runtime.diagram.ui.editpolicies.LayoutEditPolicy lep = new org.eclipse.gmf.runtime.diagram.ui.editpolicies.LayoutEditPolicy() {
+
+ protected EditPolicy createChildEditPolicy(EditPart child) {
+ View childView = (View) child.getModel();
+ switch (ComrelVisualIDRegistry.getVisualID(childView)) {
+ case SingleInputPort4EditPart.VISUAL_ID:
+ case MultiInputPort3EditPart.VISUAL_ID:
+ case SingleOutputPortEditPart.VISUAL_ID:
+ return new BorderItemSelectionEditPolicy();
+ }
+ EditPolicy result = child
+ .getEditPolicy(EditPolicy.PRIMARY_DRAG_ROLE);
+ if (result == null) {
+ result = new NonResizableEditPolicy();
+ }
+ return result;
+ }
+
+ protected Command getMoveChildrenCommand(Request request) {
+ return null;
+ }
+
+ protected Command getCreateCommand(CreateRequest request) {
+ return null;
+ }
+ };
+ return lep;
+ }
+
+ /**
+ * @generated
+ */
+ protected IFigure createNodeShape() {
+ return primaryShape = new SingleFeatureUnitFigure();
+ }
+
+ /**
+ * @generated
+ */
+ public SingleFeatureUnitFigure getPrimaryShape() {
+ return (SingleFeatureUnitFigure) primaryShape;
+ }
+
+ /**
+ * @generated NOT
+ */
+ protected boolean addFixedChild(EditPart childEditPart) {
+ if (childEditPart instanceof SingleFeatureUnitNameType2EditPart) {
+ ((SingleFeatureUnitNameType2EditPart) childEditPart)
+ .setLabel(getPrimaryShape()
+ .getFigureSingleFeatureUnitLabelFigure());
+ return true;
+ }
+ if (childEditPart instanceof SingleInputPort4EditPart) {
+ BorderItemLocator locator = new BorderItemLocator(getMainFigure(),
+ PositionConstants.NORTH);
+ locator.setCurrentSideOfParent(PositionConstants.NORTH); // Position des Ports
+ locator.setPreferredSideOfParent(PositionConstants.NORTH); // Position des Ports
+ getBorderedFigure().getBorderItemContainer().add(
+ ((SingleInputPort4EditPart) childEditPart).getFigure(),
+ locator);
+ return true;
+ }
+ if (childEditPart instanceof MultiInputPort3EditPart) {
+ BorderItemLocator locator = new BorderItemLocator(getMainFigure(),
+ PositionConstants.NORTH);
+ locator.setCurrentSideOfParent(PositionConstants.NORTH); // Position des Ports
+ locator.setPreferredSideOfParent(PositionConstants.NORTH); // Position des Ports
+ getBorderedFigure().getBorderItemContainer().add(
+ ((MultiInputPort3EditPart) childEditPart).getFigure(),
+ locator);
+ return true;
+ }
+ if (childEditPart instanceof SingleOutputPortEditPart) {
+ BorderItemLocator locator = new BorderItemLocator(getMainFigure(),
+ PositionConstants.SOUTH);
+ locator.setCurrentSideOfParent(PositionConstants.SOUTH); // Position des Ports
+ locator.setPreferredSideOfParent(PositionConstants.SOUTH); // Position des Ports
+ getBorderedFigure().getBorderItemContainer().add(
+ ((SingleOutputPortEditPart) childEditPart).getFigure(),
+ locator);
+ return true;
+ }
+ return false;
+ }
+
+ /**
+ * @generated NOT
+ */
+ protected boolean removeFixedChild(EditPart childEditPart) {
+ if (childEditPart instanceof SingleFeatureUnitNameType2EditPart) {
+ return true;
+ }
+ if (childEditPart instanceof SingleInputPort4EditPart) {
+ // getBorderedFigure().getBorderItemContainer().remove(
+ // ((SingleInputPort4EditPart) childEditPart).getFigure());
+ return true;
+ }
+ if (childEditPart instanceof MultiInputPort3EditPart) {
+ getBorderedFigure().getBorderItemContainer().remove(
+ ((MultiInputPort3EditPart) childEditPart).getFigure());
+ return true;
+ }
+ if (childEditPart instanceof SingleOutputPortEditPart) {
+ // getBorderedFigure().getBorderItemContainer().remove(
+ // ((SingleOutputPortEditPart) childEditPart).getFigure());
+ return true;
+ }
+ return false;
+ }
+
+ /**
+ * @generated
+ */
+ protected void addChildVisual(EditPart childEditPart, int index) {
+ if (addFixedChild(childEditPart)) {
+ return;
+ }
+ super.addChildVisual(childEditPart, -1);
+ }
+
+ /**
+ * @generated
+ */
+ protected void removeChildVisual(EditPart childEditPart) {
+ if (removeFixedChild(childEditPart)) {
+ return;
+ }
+ super.removeChildVisual(childEditPart);
+ }
+
+ /**
+ * @generated
+ */
+ protected IFigure getContentPaneFor(IGraphicalEditPart editPart) {
+ if (editPart instanceof IBorderItemEditPart) {
+ return getBorderedFigure().getBorderItemContainer();
+ }
+ return getContentPane();
+ }
+
+ /**
+ * @generated
+ */
+ protected NodeFigure createNodePlate() {
+ DefaultSizeNodeFigure result = new DefaultSizeNodeFigure(40, 40);
+ return result;
+ }
+
+ /**
+ * Creates figure for this edit part.
+ *
+ * Body of this method does not depend on settings in generation model
+ * so you may safely remove <i>generated</i> tag and modify it.
+ *
+ * @generated
+ */
+ protected NodeFigure createMainFigure() {
+ NodeFigure figure = createNodePlate();
+ figure.setLayoutManager(new StackLayout());
+ IFigure shape = createNodeShape();
+ figure.add(shape);
+ contentPane = setupContentPane(shape);
+ return figure;
+ }
+
+ /**
+ * Default implementation treats passed figure as content pane.
+ * Respects layout one may have set for generated figure.
+ * @param nodeShape instance of generated figure class
+ * @generated
+ */
+ protected IFigure setupContentPane(IFigure nodeShape) {
+ if (nodeShape.getLayoutManager() == null) {
+ ConstrainedToolbarLayout layout = new ConstrainedToolbarLayout();
+ layout.setSpacing(5);
+ nodeShape.setLayoutManager(layout);
+ }
+ return nodeShape; // use nodeShape itself as contentPane
+ }
+
+ /**
+ * @generated
+ */
+ public IFigure getContentPane() {
+ if (contentPane != null) {
+ return contentPane;
+ }
+ return super.getContentPane();
+ }
+
+ /**
+ * @generated
+ */
+ protected void setForegroundColor(Color color) {
+ if (primaryShape != null) {
+ primaryShape.setForegroundColor(color);
+ }
+ }
+
+ /**
+ * @generated
+ */
+ protected void setBackgroundColor(Color color) {
+ if (primaryShape != null) {
+ primaryShape.setBackgroundColor(color);
+ }
+ }
+
+ /**
+ * @generated
+ */
+ protected void setLineWidth(int width) {
+ if (primaryShape instanceof Shape) {
+ ((Shape) primaryShape).setLineWidth(width);
+ }
+ }
+
+ /**
+ * @generated
+ */
+ protected void setLineType(int style) {
+ if (primaryShape instanceof Shape) {
+ ((Shape) primaryShape).setLineStyle(style);
+ }
+ }
+
+ /**
+ * @generated
+ */
+ public EditPart getPrimaryChildEditPart() {
+ return getChildBySemanticHint(ComrelVisualIDRegistry
+ .getType(SingleFeatureUnitNameType2EditPart.VISUAL_ID));
+ }
+
+ /**
+ * @generated
+ */
+ public class SingleFeatureUnitFigure extends RoundedRectangle {
+
+ /**
+ * @generated
+ */
+ private WrappingLabel fFigureSingleFeatureUnitLabelFigure;
+
+ /**
+ * @generated
+ */
+ public SingleFeatureUnitFigure() {
+ this.setCornerDimensions(new Dimension(getMapMode().DPtoLP(8),
+ getMapMode().DPtoLP(8)));
+ this.setBorder(new MarginBorder(getMapMode().DPtoLP(5),
+ getMapMode().DPtoLP(5), getMapMode().DPtoLP(5),
+ getMapMode().DPtoLP(5)));
+ createContents();
+ }
+
+ /**
+ * @generated
+ */
+ private void createContents() {
+
+ fFigureSingleFeatureUnitLabelFigure = new WrappingLabel();
+ fFigureSingleFeatureUnitLabelFigure.setText("SingleFeatureUnit");
+
+ this.add(fFigureSingleFeatureUnitLabelFigure);
+
+ }
+
+ /**
+ * @generated
+ */
+ public WrappingLabel getFigureSingleFeatureUnitLabelFigure() {
+ return fFigureSingleFeatureUnitLabelFigure;
+ }
+
+ }
+
+}
diff --git a/org.eclipse.emf.refactor.comrel.diagram/src/comrel/diagram/edit/parts/SingleFeatureUnit3EditPart.java b/org.eclipse.emf.refactor.comrel.diagram/src/comrel/diagram/edit/parts/SingleFeatureUnit3EditPart.java
new file mode 100644
index 0000000..e114f37
--- /dev/null
+++ b/org.eclipse.emf.refactor.comrel.diagram/src/comrel/diagram/edit/parts/SingleFeatureUnit3EditPart.java
@@ -0,0 +1,366 @@
+/*
+ *
+ */
+package comrel.diagram.edit.parts;
+
+import org.eclipse.draw2d.IFigure;
+import org.eclipse.draw2d.MarginBorder;
+import org.eclipse.draw2d.PositionConstants;
+import org.eclipse.draw2d.RoundedRectangle;
+import org.eclipse.draw2d.Shape;
+import org.eclipse.draw2d.StackLayout;
+import org.eclipse.draw2d.geometry.Dimension;
+import org.eclipse.gef.EditPart;
+import org.eclipse.gef.EditPolicy;
+import org.eclipse.gef.Request;
+import org.eclipse.gef.commands.Command;
+import org.eclipse.gef.editpolicies.LayoutEditPolicy;
+import org.eclipse.gef.editpolicies.NonResizableEditPolicy;
+import org.eclipse.gef.requests.CreateRequest;
+import org.eclipse.gmf.runtime.diagram.ui.editparts.AbstractBorderedShapeEditPart;
+import org.eclipse.gmf.runtime.diagram.ui.editparts.IBorderItemEditPart;
+import org.eclipse.gmf.runtime.diagram.ui.editparts.IGraphicalEditPart;
+import org.eclipse.gmf.runtime.diagram.ui.editpolicies.BorderItemSelectionEditPolicy;
+import org.eclipse.gmf.runtime.diagram.ui.editpolicies.CreationEditPolicy;
+import org.eclipse.gmf.runtime.diagram.ui.editpolicies.DragDropEditPolicy;
+import org.eclipse.gmf.runtime.diagram.ui.editpolicies.EditPolicyRoles;
+import org.eclipse.gmf.runtime.diagram.ui.figures.BorderItemLocator;
+import org.eclipse.gmf.runtime.draw2d.ui.figures.ConstrainedToolbarLayout;
+import org.eclipse.gmf.runtime.draw2d.ui.figures.WrappingLabel;
+import org.eclipse.gmf.runtime.gef.ui.figures.DefaultSizeNodeFigure;
+import org.eclipse.gmf.runtime.gef.ui.figures.NodeFigure;
+import org.eclipse.gmf.runtime.notation.View;
+import org.eclipse.swt.graphics.Color;
+
+import comrel.diagram.edit.policies.SingleFeatureUnit3CanonicalEditPolicy;
+import comrel.diagram.edit.policies.SingleFeatureUnit3ItemSemanticEditPolicy;
+import comrel.diagram.part.ComrelVisualIDRegistry;
+
+/**
+ * @generated
+ */
+public class SingleFeatureUnit3EditPart extends AbstractBorderedShapeEditPart {
+
+ /**
+ * @generated
+ */
+ public static final int VISUAL_ID = 3050;
+
+ /**
+ * @generated
+ */
+ protected IFigure contentPane;
+
+ /**
+ * @generated
+ */
+ protected IFigure primaryShape;
+
+ /**
+ * @generated
+ */
+ public SingleFeatureUnit3EditPart(View view) {
+ super(view);
+ }
+
+ /**
+ * @generated
+ */
+ protected void createDefaultEditPolicies() {
+ installEditPolicy(EditPolicyRoles.CREATION_ROLE,
+ new CreationEditPolicy());
+ super.createDefaultEditPolicies();
+ installEditPolicy(EditPolicyRoles.SEMANTIC_ROLE,
+ new SingleFeatureUnit3ItemSemanticEditPolicy());
+ installEditPolicy(EditPolicyRoles.DRAG_DROP_ROLE,
+ new DragDropEditPolicy());
+ installEditPolicy(EditPolicyRoles.CANONICAL_ROLE,
+ new SingleFeatureUnit3CanonicalEditPolicy());
+ installEditPolicy(EditPolicy.LAYOUT_ROLE, createLayoutEditPolicy());
+ // XXX need an SCR to runtime to have another abstract superclass that would let children add reasonable editpolicies
+ // removeEditPolicy(org.eclipse.gmf.runtime.diagram.ui.editpolicies.EditPolicyRoles.CONNECTION_HANDLES_ROLE);
+ }
+
+ /**
+ * @generated
+ */
+ protected LayoutEditPolicy createLayoutEditPolicy() {
+ org.eclipse.gmf.runtime.diagram.ui.editpolicies.LayoutEditPolicy lep = new org.eclipse.gmf.runtime.diagram.ui.editpolicies.LayoutEditPolicy() {
+
+ protected EditPolicy createChildEditPolicy(EditPart child) {
+ View childView = (View) child.getModel();
+ switch (ComrelVisualIDRegistry.getVisualID(childView)) {
+ case SingleInputPort4EditPart.VISUAL_ID:
+ case MultiInputPort3EditPart.VISUAL_ID:
+ case SingleOutputPortEditPart.VISUAL_ID:
+ return new BorderItemSelectionEditPolicy();
+ }
+ EditPolicy result = child
+ .getEditPolicy(EditPolicy.PRIMARY_DRAG_ROLE);
+ if (result == null) {
+ result = new NonResizableEditPolicy();
+ }
+ return result;
+ }
+
+ protected Command getMoveChildrenCommand(Request request) {
+ return null;
+ }
+
+ protected Command getCreateCommand(CreateRequest request) {
+ return null;
+ }
+ };
+ return lep;
+ }
+
+ /**
+ * @generated
+ */
+ protected IFigure createNodeShape() {
+ return primaryShape = new SingleFeatureUnitFigure();
+ }
+
+ /**
+ * @generated
+ */
+ public SingleFeatureUnitFigure getPrimaryShape() {
+ return (SingleFeatureUnitFigure) primaryShape;
+ }
+
+ /**
+ * @generated NOT
+ */
+ protected boolean addFixedChild(EditPart childEditPart) {
+ if (childEditPart instanceof SingleFeatureUnitNameType3EditPart) {
+ ((SingleFeatureUnitNameType3EditPart) childEditPart)
+ .setLabel(getPrimaryShape()
+ .getFigureSingleFeatureUnitLabelFigure());
+ return true;
+ }
+ if (childEditPart instanceof SingleInputPort4EditPart) {
+ BorderItemLocator locator = new BorderItemLocator(getMainFigure(),
+ PositionConstants.NORTH);
+ locator.setCurrentSideOfParent(PositionConstants.NORTH); // Position des Ports
+ locator.setPreferredSideOfParent(PositionConstants.NORTH); // Position des Ports
+ getBorderedFigure().getBorderItemContainer().add(
+ ((SingleInputPort4EditPart) childEditPart).getFigure(),
+ locator);
+ return true;
+ }
+ if (childEditPart instanceof MultiInputPort3EditPart) {
+ BorderItemLocator locator = new BorderItemLocator(getMainFigure(),
+ PositionConstants.NORTH);
+ locator.setCurrentSideOfParent(PositionConstants.NORTH); // Position des Ports
+ locator.setPreferredSideOfParent(PositionConstants.NORTH); // Position des Ports
+ getBorderedFigure().getBorderItemContainer().add(
+ ((MultiInputPort3EditPart) childEditPart).getFigure(),
+ locator);
+ return true;
+ }
+ if (childEditPart instanceof SingleOutputPortEditPart) {
+ BorderItemLocator locator = new BorderItemLocator(getMainFigure(),
+ PositionConstants.SOUTH);
+ locator.setCurrentSideOfParent(PositionConstants.SOUTH); // Position des Ports
+ locator.setPreferredSideOfParent(PositionConstants.SOUTH); // Position des Ports
+ getBorderedFigure().getBorderItemContainer().add(
+ ((SingleOutputPortEditPart) childEditPart).getFigure(),
+ locator);
+ return true;
+ }
+ return false;
+ }
+
+ /**
+ * @generated NOT
+ */
+ protected boolean removeFixedChild(EditPart childEditPart) {
+ if (childEditPart instanceof SingleFeatureUnitNameType3EditPart) {
+ return true;
+ }
+ if (childEditPart instanceof SingleInputPort4EditPart) {
+ // getBorderedFigure().getBorderItemContainer().remove(
+ // ((SingleInputPort4EditPart) childEditPart).getFigure());
+ return true;
+ }
+ if (childEditPart instanceof MultiInputPort3EditPart) {
+ getBorderedFigure().getBorderItemContainer().remove(
+ ((MultiInputPort3EditPart) childEditPart).getFigure());
+ return true;
+ }
+ if (childEditPart instanceof SingleOutputPortEditPart) {
+ // getBorderedFigure().getBorderItemContainer().remove(
+ // ((SingleOutputPortEditPart) childEditPart).getFigure());
+ return true;
+ }
+ return false;
+ }
+
+ /**
+ * @generated
+ */
+ protected void addChildVisual(EditPart childEditPart, int index) {
+ if (addFixedChild(childEditPart)) {
+ return;
+ }
+ super.addChildVisual(childEditPart, -1);
+ }
+
+ /**
+ * @generated
+ */
+ protected void removeChildVisual(EditPart childEditPart) {
+ if (removeFixedChild(childEditPart)) {
+ return;
+ }
+ super.removeChildVisual(childEditPart);
+ }
+
+ /**
+ * @generated
+ */
+ protected IFigure getContentPaneFor(IGraphicalEditPart editPart) {
+ if (editPart instanceof IBorderItemEditPart) {
+ return getBorderedFigure().getBorderItemContainer();
+ }
+ return getContentPane();
+ }
+
+ /**
+ * @generated
+ */
+ protected NodeFigure createNodePlate() {
+ DefaultSizeNodeFigure result = new DefaultSizeNodeFigure(40, 40);
+ return result;
+ }
+
+ /**
+ * Creates figure for this edit part.
+ *
+ * Body of this method does not depend on settings in generation model
+ * so you may safely remove <i>generated</i> tag and modify it.
+ *
+ * @generated
+ */
+ protected NodeFigure createMainFigure() {
+ NodeFigure figure = createNodePlate();
+ figure.setLayoutManager(new StackLayout());
+ IFigure shape = createNodeShape();
+ figure.add(shape);
+ contentPane = setupContentPane(shape);
+ return figure;
+ }
+
+ /**
+ * Default implementation treats passed figure as content pane.
+ * Respects layout one may have set for generated figure.
+ * @param nodeShape instance of generated figure class
+ * @generated
+ */
+ protected IFigure setupContentPane(IFigure nodeShape) {
+ if (nodeShape.getLayoutManager() == null) {
+ ConstrainedToolbarLayout layout = new ConstrainedToolbarLayout();
+ layout.setSpacing(5);
+ nodeShape.setLayoutManager(layout);
+ }
+ return nodeShape; // use nodeShape itself as contentPane
+ }
+
+ /**
+ * @generated
+ */
+ public IFigure getContentPane() {
+ if (contentPane != null) {
+ return contentPane;
+ }
+ return super.getContentPane();
+ }
+
+ /**
+ * @generated
+ */
+ protected void setForegroundColor(Color color) {
+ if (primaryShape != null) {
+ primaryShape.setForegroundColor(color);
+ }
+ }
+
+ /**
+ * @generated
+ */
+ protected void setBackgroundColor(Color color) {
+ if (primaryShape != null) {
+ primaryShape.setBackgroundColor(color);
+ }
+ }
+
+ /**
+ * @generated
+ */
+ protected void setLineWidth(int width) {
+ if (primaryShape instanceof Shape) {
+ ((Shape) primaryShape).setLineWidth(width);
+ }
+ }
+
+ /**
+ * @generated
+ */
+ protected void setLineType(int style) {
+ if (primaryShape instanceof Shape) {
+ ((Shape) primaryShape).setLineStyle(style);
+ }
+ }
+
+ /**
+ * @generated
+ */
+ public EditPart getPrimaryChildEditPart() {
+ return getChildBySemanticHint(ComrelVisualIDRegistry
+ .getType(SingleFeatureUnitNameType3EditPart.VISUAL_ID));
+ }
+
+ /**
+ * @generated
+ */
+ public class SingleFeatureUnitFigure extends RoundedRectangle {
+
+ /**
+ * @generated
+ */
+ private WrappingLabel fFigureSingleFeatureUnitLabelFigure;
+
+ /**
+ * @generated
+ */
+ public SingleFeatureUnitFigure() {
+ this.setCornerDimensions(new Dimension(getMapMode().DPtoLP(8),
+ getMapMode().DPtoLP(8)));
+ this.setBorder(new MarginBorder(getMapMode().DPtoLP(5),
+ getMapMode().DPtoLP(5), getMapMode().DPtoLP(5),
+ getMapMode().DPtoLP(5)));
+ createContents();
+ }
+
+ /**
+ * @generated
+ */
+ private void createContents() {
+
+ fFigureSingleFeatureUnitLabelFigure = new WrappingLabel();
+ fFigureSingleFeatureUnitLabelFigure.setText("SingleFeatureUnit");
+
+ this.add(fFigureSingleFeatureUnitLabelFigure);
+
+ }
+
+ /**
+ * @generated
+ */
+ public WrappingLabel getFigureSingleFeatureUnitLabelFigure() {
+ return fFigureSingleFeatureUnitLabelFigure;
+ }
+
+ }
+
+}
diff --git a/org.eclipse.emf.refactor.comrel.diagram/src/comrel/diagram/edit/parts/SingleFeatureUnit4EditPart.java b/org.eclipse.emf.refactor.comrel.diagram/src/comrel/diagram/edit/parts/SingleFeatureUnit4EditPart.java
new file mode 100644
index 0000000..c5932be
--- /dev/null
+++ b/org.eclipse.emf.refactor.comrel.diagram/src/comrel/diagram/edit/parts/SingleFeatureUnit4EditPart.java
@@ -0,0 +1,366 @@
+/*
+ *
+ */
+package comrel.diagram.edit.parts;
+
+import org.eclipse.draw2d.IFigure;
+import org.eclipse.draw2d.MarginBorder;
+import org.eclipse.draw2d.PositionConstants;
+import org.eclipse.draw2d.RoundedRectangle;
+import org.eclipse.draw2d.Shape;
+import org.eclipse.draw2d.StackLayout;
+import org.eclipse.draw2d.geometry.Dimension;
+import org.eclipse.gef.EditPart;
+import org.eclipse.gef.EditPolicy;
+import org.eclipse.gef.Request;
+import org.eclipse.gef.commands.Command;
+import org.eclipse.gef.editpolicies.LayoutEditPolicy;
+import org.eclipse.gef.editpolicies.NonResizableEditPolicy;
+import org.eclipse.gef.requests.CreateRequest;
+import org.eclipse.gmf.runtime.diagram.ui.editparts.AbstractBorderedShapeEditPart;
+import org.eclipse.gmf.runtime.diagram.ui.editparts.IBorderItemEditPart;
+import org.eclipse.gmf.runtime.diagram.ui.editparts.IGraphicalEditPart;
+import org.eclipse.gmf.runtime.diagram.ui.editpolicies.BorderItemSelectionEditPolicy;
+import org.eclipse.gmf.runtime.diagram.ui.editpolicies.CreationEditPolicy;
+import org.eclipse.gmf.runtime.diagram.ui.editpolicies.DragDropEditPolicy;
+import org.eclipse.gmf.runtime.diagram.ui.editpolicies.EditPolicyRoles;
+import org.eclipse.gmf.runtime.diagram.ui.figures.BorderItemLocator;
+import org.eclipse.gmf.runtime.draw2d.ui.figures.ConstrainedToolbarLayout;
+import org.eclipse.gmf.runtime.draw2d.ui.figures.WrappingLabel;
+import org.eclipse.gmf.runtime.gef.ui.figures.DefaultSizeNodeFigure;
+import org.eclipse.gmf.runtime.gef.ui.figures.NodeFigure;
+import org.eclipse.gmf.runtime.notation.View;
+import org.eclipse.swt.graphics.Color;
+
+import comrel.diagram.edit.policies.SingleFeatureUnit4CanonicalEditPolicy;
+import comrel.diagram.edit.policies.SingleFeatureUnit4ItemSemanticEditPolicy;
+import comrel.diagram.part.ComrelVisualIDRegistry;
+
+/**
+ * @generated
+ */
+public class SingleFeatureUnit4EditPart extends AbstractBorderedShapeEditPart {
+
+ /**
+ * @generated
+ */
+ public static final int VISUAL_ID = 3055;
+
+ /**
+ * @generated
+ */
+ protected IFigure contentPane;
+
+ /**
+ * @generated
+ */
+ protected IFigure primaryShape;
+
+ /**
+ * @generated
+ */
+ public SingleFeatureUnit4EditPart(View view) {
+ super(view);
+ }
+
+ /**
+ * @generated
+ */
+ protected void createDefaultEditPolicies() {
+ installEditPolicy(EditPolicyRoles.CREATION_ROLE,
+ new CreationEditPolicy());
+ super.createDefaultEditPolicies();
+ installEditPolicy(EditPolicyRoles.SEMANTIC_ROLE,
+ new SingleFeatureUnit4ItemSemanticEditPolicy());
+ installEditPolicy(EditPolicyRoles.DRAG_DROP_ROLE,
+ new DragDropEditPolicy());
+ installEditPolicy(EditPolicyRoles.CANONICAL_ROLE,
+ new SingleFeatureUnit4CanonicalEditPolicy());
+ installEditPolicy(EditPolicy.LAYOUT_ROLE, createLayoutEditPolicy());
+ // XXX need an SCR to runtime to have another abstract superclass that would let children add reasonable editpolicies
+ // removeEditPolicy(org.eclipse.gmf.runtime.diagram.ui.editpolicies.EditPolicyRoles.CONNECTION_HANDLES_ROLE);
+ }
+
+ /**
+ * @generated
+ */
+ protected LayoutEditPolicy createLayoutEditPolicy() {
+ org.eclipse.gmf.runtime.diagram.ui.editpolicies.LayoutEditPolicy lep = new org.eclipse.gmf.runtime.diagram.ui.editpolicies.LayoutEditPolicy() {
+
+ protected EditPolicy createChildEditPolicy(EditPart child) {
+ View childView = (View) child.getModel();
+ switch (ComrelVisualIDRegistry.getVisualID(childView)) {
+ case SingleInputPort4EditPart.VISUAL_ID:
+ case MultiInputPort3EditPart.VISUAL_ID:
+ case SingleOutputPortEditPart.VISUAL_ID:
+ return new BorderItemSelectionEditPolicy();
+ }
+ EditPolicy result = child
+ .getEditPolicy(EditPolicy.PRIMARY_DRAG_ROLE);
+ if (result == null) {
+ result = new NonResizableEditPolicy();
+ }
+ return result;
+ }
+
+ protected Command getMoveChildrenCommand(Request request) {
+ return null;
+ }
+
+ protected Command getCreateCommand(CreateRequest request) {
+ return null;
+ }
+ };
+ return lep;
+ }
+
+ /**
+ * @generated
+ */
+ protected IFigure createNodeShape() {
+ return primaryShape = new SingleFeatureUnitFigure();
+ }
+
+ /**
+ * @generated
+ */
+ public SingleFeatureUnitFigure getPrimaryShape() {
+ return (SingleFeatureUnitFigure) primaryShape;
+ }
+
+ /**
+ * @generated NOT
+ */
+ protected boolean addFixedChild(EditPart childEditPart) {
+ if (childEditPart instanceof SingleFeatureUnitNameType4EditPart) {
+ ((SingleFeatureUnitNameType4EditPart) childEditPart)
+ .setLabel(getPrimaryShape()
+ .getFigureSingleFeatureUnitLabelFigure());
+ return true;
+ }
+ if (childEditPart instanceof SingleInputPort4EditPart) {
+ BorderItemLocator locator = new BorderItemLocator(getMainFigure(),
+ PositionConstants.NORTH);
+ locator.setCurrentSideOfParent(PositionConstants.NORTH); // Position des Ports
+ locator.setPreferredSideOfParent(PositionConstants.NORTH); // Position des Ports
+ getBorderedFigure().getBorderItemContainer().add(
+ ((SingleInputPort4EditPart) childEditPart).getFigure(),
+ locator);
+ return true;
+ }
+ if (childEditPart instanceof MultiInputPort3EditPart) {
+ BorderItemLocator locator = new BorderItemLocator(getMainFigure(),
+ PositionConstants.NORTH);
+ locator.setCurrentSideOfParent(PositionConstants.NORTH); // Position des Ports
+ locator.setPreferredSideOfParent(PositionConstants.NORTH); // Position des Ports
+ getBorderedFigure().getBorderItemContainer().add(
+ ((MultiInputPort3EditPart) childEditPart).getFigure(),
+ locator);
+ return true;
+ }
+ if (childEditPart instanceof SingleOutputPortEditPart) {
+ BorderItemLocator locator = new BorderItemLocator(getMainFigure(),
+ PositionConstants.SOUTH);
+ locator.setCurrentSideOfParent(PositionConstants.SOUTH); // Position des Ports
+ locator.setPreferredSideOfParent(PositionConstants.SOUTH); // Position des Ports
+ getBorderedFigure().getBorderItemContainer().add(
+ ((SingleOutputPortEditPart) childEditPart).getFigure(),
+ locator);
+ return true;
+ }
+ return false;
+ }
+
+ /**
+ * @generated NOT
+ */
+ protected boolean removeFixedChild(EditPart childEditPart) {
+ if (childEditPart instanceof SingleFeatureUnitNameType4EditPart) {
+ return true;
+ }
+ if (childEditPart instanceof SingleInputPort4EditPart) {
+ // getBorderedFigure().getBorderItemContainer().remove(
+ // ((SingleInputPort4EditPart) childEditPart).getFigure());
+ return true;
+ }
+ if (childEditPart instanceof MultiInputPort3EditPart) {
+ getBorderedFigure().getBorderItemContainer().remove(
+ ((MultiInputPort3EditPart) childEditPart).getFigure());
+ return true;
+ }
+ if (childEditPart instanceof SingleOutputPortEditPart) {
+ // getBorderedFigure().getBorderItemContainer().remove(
+ // ((SingleOutputPortEditPart) childEditPart).getFigure());
+ return true;
+ }
+ return false;
+ }
+
+ /**
+ * @generated
+ */
+ protected void addChildVisual(EditPart childEditPart, int index) {
+ if (addFixedChild(childEditPart)) {
+ return;
+ }
+ super.addChildVisual(childEditPart, -1);
+ }
+
+ /**
+ * @generated
+ */
+ protected void removeChildVisual(EditPart childEditPart) {
+ if (removeFixedChild(childEditPart)) {
+ return;
+ }
+ super.removeChildVisual(childEditPart);
+ }
+
+ /**
+ * @generated
+ */
+ protected IFigure getContentPaneFor(IGraphicalEditPart editPart) {
+ if (editPart instanceof IBorderItemEditPart) {
+ return getBorderedFigure().getBorderItemContainer();
+ }
+ return getContentPane();
+ }
+
+ /**
+ * @generated
+ */
+ protected NodeFigure createNodePlate() {
+ DefaultSizeNodeFigure result = new DefaultSizeNodeFigure(40, 40);
+ return result;
+ }
+
+ /**
+ * Creates figure for this edit part.
+ *
+ * Body of this method does not depend on settings in generation model
+ * so you may safely remove <i>generated</i> tag and modify it.
+ *
+ * @generated
+ */
+ protected NodeFigure createMainFigure() {
+ NodeFigure figure = createNodePlate();
+ figure.setLayoutManager(new StackLayout());
+ IFigure shape = createNodeShape();
+ figure.add(shape);
+ contentPane = setupContentPane(shape);
+ return figure;
+ }
+
+ /**
+ * Default implementation treats passed figure as content pane.
+ * Respects layout one may have set for generated figure.
+ * @param nodeShape instance of generated figure class
+ * @generated
+ */
+ protected IFigure setupContentPane(IFigure nodeShape) {
+ if (nodeShape.getLayoutManager() == null) {
+ ConstrainedToolbarLayout layout = new ConstrainedToolbarLayout();
+ layout.setSpacing(5);
+ nodeShape.setLayoutManager(layout);
+ }
+ return nodeShape; // use nodeShape itself as contentPane
+ }
+
+ /**
+ * @generated
+ */
+ public IFigure getContentPane() {
+ if (contentPane != null) {
+ return contentPane;
+ }
+ return super.getContentPane();
+ }
+
+ /**
+ * @generated
+ */
+ protected void setForegroundColor(Color color) {
+ if (primaryShape != null) {
+ primaryShape.setForegroundColor(color);
+ }
+ }
+
+ /**
+ * @generated
+ */
+ protected void setBackgroundColor(Color color) {
+ if (primaryShape != null) {
+ primaryShape.setBackgroundColor(color);
+ }
+ }
+
+ /**
+ * @generated
+ */
+ protected void setLineWidth(int width) {
+ if (primaryShape instanceof Shape) {
+ ((Shape) primaryShape).setLineWidth(width);
+ }
+ }
+
+ /**
+ * @generated
+ */
+ protected void setLineType(int style) {
+ if (primaryShape instanceof Shape) {
+ ((Shape) primaryShape).setLineStyle(style);
+ }
+ }
+
+ /**
+ * @generated
+ */
+ public EditPart getPrimaryChildEditPart() {
+ return getChildBySemanticHint(ComrelVisualIDRegistry
+ .getType(SingleFeatureUnitNameType4EditPart.VISUAL_ID));
+ }
+
+ /**
+ * @generated
+ */
+ public class SingleFeatureUnitFigure extends RoundedRectangle {
+
+ /**
+ * @generated
+ */
+ private WrappingLabel fFigureSingleFeatureUnitLabelFigure;
+
+ /**
+ * @generated
+ */
+ public SingleFeatureUnitFigure() {
+ this.setCornerDimensions(new Dimension(getMapMode().DPtoLP(8),
+ getMapMode().DPtoLP(8)));
+ this.setBorder(new MarginBorder(getMapMode().DPtoLP(5),
+ getMapMode().DPtoLP(5), getMapMode().DPtoLP(5),
+ getMapMode().DPtoLP(5)));
+ createContents();
+ }
+
+ /**
+ * @generated
+ */
+ private void createContents() {
+
+ fFigureSingleFeatureUnitLabelFigure = new WrappingLabel();
+ fFigureSingleFeatureUnitLabelFigure.setText("SingleFeatureUnit");
+
+ this.add(fFigureSingleFeatureUnitLabelFigure);
+
+ }
+
+ /**
+ * @generated
+ */
+ public WrappingLabel getFigureSingleFeatureUnitLabelFigure() {
+ return fFigureSingleFeatureUnitLabelFigure;
+ }
+
+ }
+
+}
diff --git a/org.eclipse.emf.refactor.comrel.diagram/src/comrel/diagram/edit/parts/SingleFeatureUnit5EditPart.java b/org.eclipse.emf.refactor.comrel.diagram/src/comrel/diagram/edit/parts/SingleFeatureUnit5EditPart.java
new file mode 100644
index 0000000..a08681f
--- /dev/null
+++ b/org.eclipse.emf.refactor.comrel.diagram/src/comrel/diagram/edit/parts/SingleFeatureUnit5EditPart.java
@@ -0,0 +1,366 @@
+/*
+ *
+ */
+package comrel.diagram.edit.parts;
+
+import org.eclipse.draw2d.IFigure;
+import org.eclipse.draw2d.MarginBorder;
+import org.eclipse.draw2d.PositionConstants;
+import org.eclipse.draw2d.RoundedRectangle;
+import org.eclipse.draw2d.Shape;
+import org.eclipse.draw2d.StackLayout;
+import org.eclipse.draw2d.geometry.Dimension;
+import org.eclipse.gef.EditPart;
+import org.eclipse.gef.EditPolicy;
+import org.eclipse.gef.Request;
+import org.eclipse.gef.commands.Command;
+import org.eclipse.gef.editpolicies.LayoutEditPolicy;
+import org.eclipse.gef.editpolicies.NonResizableEditPolicy;
+import org.eclipse.gef.requests.CreateRequest;
+import org.eclipse.gmf.runtime.diagram.ui.editparts.AbstractBorderedShapeEditPart;
+import org.eclipse.gmf.runtime.diagram.ui.editparts.IBorderItemEditPart;
+import org.eclipse.gmf.runtime.diagram.ui.editparts.IGraphicalEditPart;
+import org.eclipse.gmf.runtime.diagram.ui.editpolicies.BorderItemSelectionEditPolicy;
+import org.eclipse.gmf.runtime.diagram.ui.editpolicies.CreationEditPolicy;
+import org.eclipse.gmf.runtime.diagram.ui.editpolicies.DragDropEditPolicy;
+import org.eclipse.gmf.runtime.diagram.ui.editpolicies.EditPolicyRoles;
+import org.eclipse.gmf.runtime.diagram.ui.figures.BorderItemLocator;
+import org.eclipse.gmf.runtime.draw2d.ui.figures.ConstrainedToolbarLayout;
+import org.eclipse.gmf.runtime.draw2d.ui.figures.WrappingLabel;
+import org.eclipse.gmf.runtime.gef.ui.figures.DefaultSizeNodeFigure;
+import org.eclipse.gmf.runtime.gef.ui.figures.NodeFigure;
+import org.eclipse.gmf.runtime.notation.View;
+import org.eclipse.swt.graphics.Color;
+
+import comrel.diagram.edit.policies.SingleFeatureUnit5CanonicalEditPolicy;
+import comrel.diagram.edit.policies.SingleFeatureUnit5ItemSemanticEditPolicy;
+import comrel.diagram.part.ComrelVisualIDRegistry;
+
+/**
+ * @generated
+ */
+public class SingleFeatureUnit5EditPart extends AbstractBorderedShapeEditPart {
+
+ /**
+ * @generated
+ */
+ public static final int VISUAL_ID = 3061;
+
+ /**
+ * @generated
+ */
+ protected IFigure contentPane;
+
+ /**
+ * @generated
+ */
+ protected IFigure primaryShape;
+
+ /**
+ * @generated
+ */
+ public SingleFeatureUnit5EditPart(View view) {
+ super(view);
+ }
+
+ /**
+ * @generated
+ */
+ protected void createDefaultEditPolicies() {
+ installEditPolicy(EditPolicyRoles.CREATION_ROLE,
+ new CreationEditPolicy());
+ super.createDefaultEditPolicies();
+ installEditPolicy(EditPolicyRoles.SEMANTIC_ROLE,
+ new SingleFeatureUnit5ItemSemanticEditPolicy());
+ installEditPolicy(EditPolicyRoles.DRAG_DROP_ROLE,
+ new DragDropEditPolicy());
+ installEditPolicy(EditPolicyRoles.CANONICAL_ROLE,
+ new SingleFeatureUnit5CanonicalEditPolicy());
+ installEditPolicy(EditPolicy.LAYOUT_ROLE, createLayoutEditPolicy());
+ // XXX need an SCR to runtime to have another abstract superclass that would let children add reasonable editpolicies
+ // removeEditPolicy(org.eclipse.gmf.runtime.diagram.ui.editpolicies.EditPolicyRoles.CONNECTION_HANDLES_ROLE);
+ }
+
+ /**
+ * @generated
+ */
+ protected LayoutEditPolicy createLayoutEditPolicy() {
+ org.eclipse.gmf.runtime.diagram.ui.editpolicies.LayoutEditPolicy lep = new org.eclipse.gmf.runtime.diagram.ui.editpolicies.LayoutEditPolicy() {
+
+ protected EditPolicy createChildEditPolicy(EditPart child) {
+ View childView = (View) child.getModel();
+ switch (ComrelVisualIDRegistry.getVisualID(childView)) {
+ case SingleInputPort4EditPart.VISUAL_ID:
+ case MultiInputPort3EditPart.VISUAL_ID:
+ case SingleOutputPortEditPart.VISUAL_ID:
+ return new BorderItemSelectionEditPolicy();
+ }
+ EditPolicy result = child
+ .getEditPolicy(EditPolicy.PRIMARY_DRAG_ROLE);
+ if (result == null) {
+ result = new NonResizableEditPolicy();
+ }
+ return result;
+ }
+
+ protected Command getMoveChildrenCommand(Request request) {
+ return null;
+ }
+
+ protected Command getCreateCommand(CreateRequest request) {
+ return null;
+ }
+ };
+ return lep;
+ }
+
+ /**
+ * @generated
+ */
+ protected IFigure createNodeShape() {
+ return primaryShape = new SingleFeatureUnitFigure();
+ }
+
+ /**
+ * @generated
+ */
+ public SingleFeatureUnitFigure getPrimaryShape() {
+ return (SingleFeatureUnitFigure) primaryShape;
+ }
+
+ /**
+ * @generated NOT
+ */
+ protected boolean addFixedChild(EditPart childEditPart) {
+ if (childEditPart instanceof SingleFeatureUnitNameType5EditPart) {
+ ((SingleFeatureUnitNameType5EditPart) childEditPart)
+ .setLabel(getPrimaryShape()
+ .getFigureSingleFeatureUnitLabelFigure());
+ return true;
+ }
+ if (childEditPart instanceof SingleInputPort4EditPart) {
+ BorderItemLocator locator = new BorderItemLocator(getMainFigure(),
+ PositionConstants.NORTH);
+ locator.setCurrentSideOfParent(PositionConstants.NORTH); // Position des Ports
+ locator.setPreferredSideOfParent(PositionConstants.NORTH); // Position des Ports
+ getBorderedFigure().getBorderItemContainer().add(
+ ((SingleInputPort4EditPart) childEditPart).getFigure(),
+ locator);
+ return true;
+ }
+ if (childEditPart instanceof MultiInputPort3EditPart) {
+ BorderItemLocator locator = new BorderItemLocator(getMainFigure(),
+ PositionConstants.NORTH);
+ locator.setCurrentSideOfParent(PositionConstants.NORTH); // Position des Ports
+ locator.setPreferredSideOfParent(PositionConstants.NORTH); // Position des Ports
+ getBorderedFigure().getBorderItemContainer().add(
+ ((MultiInputPort3EditPart) childEditPart).getFigure(),
+ locator);
+ return true;
+ }
+ if (childEditPart instanceof SingleOutputPortEditPart) {
+ BorderItemLocator locator = new BorderItemLocator(getMainFigure(),
+ PositionConstants.SOUTH);
+ locator.setCurrentSideOfParent(PositionConstants.SOUTH); // Position des Ports
+ locator.setPreferredSideOfParent(PositionConstants.SOUTH); // Position des Ports
+ getBorderedFigure().getBorderItemContainer().add(
+ ((SingleOutputPortEditPart) childEditPart).getFigure(),
+ locator);
+ return true;
+ }
+ return false;
+ }
+
+ /**
+ * @generated NOT
+ */
+ protected boolean removeFixedChild(EditPart childEditPart) {
+ if (childEditPart instanceof SingleFeatureUnitNameType5EditPart) {
+ return true;
+ }
+ if (childEditPart instanceof SingleInputPort4EditPart) {
+ // getBorderedFigure().getBorderItemContainer().remove(
+ // ((SingleInputPort4EditPart) childEditPart).getFigure());
+ return true;
+ }
+ if (childEditPart instanceof MultiInputPort3EditPart) {
+ getBorderedFigure().getBorderItemContainer().remove(
+ ((MultiInputPort3EditPart) childEditPart).getFigure());
+ return true;
+ }
+ if (childEditPart instanceof SingleOutputPortEditPart) {
+ // getBorderedFigure().getBorderItemContainer().remove(
+ // ((SingleOutputPortEditPart) childEditPart).getFigure());
+ return true;
+ }
+ return false;
+ }
+
+ /**
+ * @generated
+ */
+ protected void addChildVisual(EditPart childEditPart, int index) {
+ if (addFixedChild(childEditPart)) {
+ return;
+ }
+ super.addChildVisual(childEditPart, -1);
+ }
+
+ /**
+ * @generated
+ */
+ protected void removeChildVisual(EditPart childEditPart) {
+ if (removeFixedChild(childEditPart)) {
+ return;
+ }
+ super.removeChildVisual(childEditPart);
+ }
+
+ /**
+ * @generated
+ */
+ protected IFigure getContentPaneFor(IGraphicalEditPart editPart) {
+ if (editPart instanceof IBorderItemEditPart) {
+ return getBorderedFigure().getBorderItemContainer();
+ }
+ return getContentPane();
+ }
+
+ /**
+ * @generated
+ */
+ protected NodeFigure createNodePlate() {
+ DefaultSizeNodeFigure result = new DefaultSizeNodeFigure(40, 40);
+ return result;
+ }
+
+ /**
+ * Creates figure for this edit part.
+ *
+ * Body of this method does not depend on settings in generation model
+ * so you may safely remove <i>generated</i> tag and modify it.
+ *
+ * @generated
+ */
+ protected NodeFigure createMainFigure() {
+ NodeFigure figure = createNodePlate();
+ figure.setLayoutManager(new StackLayout());
+ IFigure shape = createNodeShape();
+ figure.add(shape);
+ contentPane = setupContentPane(shape);
+ return figure;
+ }
+
+ /**
+ * Default implementation treats passed figure as content pane.
+ * Respects layout one may have set for generated figure.
+ * @param nodeShape instance of generated figure class
+ * @generated
+ */
+ protected IFigure setupContentPane(IFigure nodeShape) {
+ if (nodeShape.getLayoutManager() == null) {
+ ConstrainedToolbarLayout layout = new ConstrainedToolbarLayout();
+ layout.setSpacing(5);
+ nodeShape.setLayoutManager(layout);
+ }
+ return nodeShape; // use nodeShape itself as contentPane
+ }
+
+ /**
+ * @generated
+ */
+ public IFigure getContentPane() {
+ if (contentPane != null) {
+ return contentPane;
+ }
+ return super.getContentPane();
+ }
+
+ /**
+ * @generated
+ */
+ protected void setForegroundColor(Color color) {
+ if (primaryShape != null) {
+ primaryShape.setForegroundColor(color);
+ }
+ }
+
+ /**
+ * @generated
+ */
+ protected void setBackgroundColor(Color color) {
+ if (primaryShape != null) {
+ primaryShape.setBackgroundColor(color);
+ }
+ }
+
+ /**
+ * @generated
+ */
+ protected void setLineWidth(int width) {
+ if (primaryShape instanceof Shape) {
+ ((Shape) primaryShape).setLineWidth(width);
+ }
+ }
+
+ /**
+ * @generated
+ */
+ protected void setLineType(int style) {
+ if (primaryShape instanceof Shape) {
+ ((Shape) primaryShape).setLineStyle(style);
+ }
+ }
+
+ /**
+ * @generated
+ */
+ public EditPart getPrimaryChildEditPart() {
+ return getChildBySemanticHint(ComrelVisualIDRegistry
+ .getType(SingleFeatureUnitNameType5EditPart.VISUAL_ID));
+ }
+
+ /**
+ * @generated
+ */
+ public class SingleFeatureUnitFigure extends RoundedRectangle {
+
+ /**
+ * @generated
+ */
+ private WrappingLabel fFigureSingleFeatureUnitLabelFigure;
+
+ /**
+ * @generated
+ */
+ public SingleFeatureUnitFigure() {
+ this.setCornerDimensions(new Dimension(getMapMode().DPtoLP(8),
+ getMapMode().DPtoLP(8)));
+ this.setBorder(new MarginBorder(getMapMode().DPtoLP(5),
+ getMapMode().DPtoLP(5), getMapMode().DPtoLP(5),
+ getMapMode().DPtoLP(5)));
+ createContents();
+ }
+
+ /**
+ * @generated
+ */
+ private void createContents() {
+
+ fFigureSingleFeatureUnitLabelFigure = new WrappingLabel();
+ fFigureSingleFeatureUnitLabelFigure.setText("SingleFeatureUnit");
+
+ this.add(fFigureSingleFeatureUnitLabelFigure);
+
+ }
+
+ /**
+ * @generated
+ */
+ public WrappingLabel getFigureSingleFeatureUnitLabelFigure() {
+ return fFigureSingleFeatureUnitLabelFigure;
+ }
+
+ }
+
+}
diff --git a/org.eclipse.emf.refactor.comrel.diagram/src/comrel/diagram/edit/parts/SingleFeatureUnitEditPart.java b/org.eclipse.emf.refactor.comrel.diagram/src/comrel/diagram/edit/parts/SingleFeatureUnitEditPart.java
new file mode 100644
index 0000000..5f8273d
--- /dev/null
+++ b/org.eclipse.emf.refactor.comrel.diagram/src/comrel/diagram/edit/parts/SingleFeatureUnitEditPart.java
@@ -0,0 +1,366 @@
+/*
+ *
+ */
+package comrel.diagram.edit.parts;
+
+import org.eclipse.draw2d.IFigure;
+import org.eclipse.draw2d.MarginBorder;
+import org.eclipse.draw2d.PositionConstants;
+import org.eclipse.draw2d.RoundedRectangle;
+import org.eclipse.draw2d.Shape;
+import org.eclipse.draw2d.StackLayout;
+import org.eclipse.draw2d.geometry.Dimension;
+import org.eclipse.gef.EditPart;
+import org.eclipse.gef.EditPolicy;
+import org.eclipse.gef.Request;
+import org.eclipse.gef.commands.Command;
+import org.eclipse.gef.editpolicies.LayoutEditPolicy;
+import org.eclipse.gef.editpolicies.NonResizableEditPolicy;
+import org.eclipse.gef.requests.CreateRequest;
+import org.eclipse.gmf.runtime.diagram.ui.editparts.AbstractBorderedShapeEditPart;
+import org.eclipse.gmf.runtime.diagram.ui.editparts.IBorderItemEditPart;
+import org.eclipse.gmf.runtime.diagram.ui.editparts.IGraphicalEditPart;
+import org.eclipse.gmf.runtime.diagram.ui.editpolicies.BorderItemSelectionEditPolicy;
+import org.eclipse.gmf.runtime.diagram.ui.editpolicies.CreationEditPolicy;
+import org.eclipse.gmf.runtime.diagram.ui.editpolicies.DragDropEditPolicy;
+import org.eclipse.gmf.runtime.diagram.ui.editpolicies.EditPolicyRoles;
+import org.eclipse.gmf.runtime.diagram.ui.figures.BorderItemLocator;
+import org.eclipse.gmf.runtime.draw2d.ui.figures.ConstrainedToolbarLayout;
+import org.eclipse.gmf.runtime.draw2d.ui.figures.WrappingLabel;
+import org.eclipse.gmf.runtime.gef.ui.figures.DefaultSizeNodeFigure;
+import org.eclipse.gmf.runtime.gef.ui.figures.NodeFigure;
+import org.eclipse.gmf.runtime.notation.View;
+import org.eclipse.swt.graphics.Color;
+
+import comrel.diagram.edit.policies.SingleFeatureUnitCanonicalEditPolicy;
+import comrel.diagram.edit.policies.SingleFeatureUnitItemSemanticEditPolicy;
+import comrel.diagram.part.ComrelVisualIDRegistry;
+
+/**
+ * @generated
+ */
+public class SingleFeatureUnitEditPart extends AbstractBorderedShapeEditPart {
+
+ /**
+ * @generated
+ */
+ public static final int VISUAL_ID = 3008;
+
+ /**
+ * @generated
+ */
+ protected IFigure contentPane;
+
+ /**
+ * @generated
+ */
+ protected IFigure primaryShape;
+
+ /**
+ * @generated
+ */
+ public SingleFeatureUnitEditPart(View view) {
+ super(view);
+ }
+
+ /**
+ * @generated
+ */
+ protected void createDefaultEditPolicies() {
+ installEditPolicy(EditPolicyRoles.CREATION_ROLE,
+ new CreationEditPolicy());
+ super.createDefaultEditPolicies();
+ installEditPolicy(EditPolicyRoles.SEMANTIC_ROLE,
+ new SingleFeatureUnitItemSemanticEditPolicy());
+ installEditPolicy(EditPolicyRoles.DRAG_DROP_ROLE,
+ new DragDropEditPolicy());
+ installEditPolicy(EditPolicyRoles.CANONICAL_ROLE,
+ new SingleFeatureUnitCanonicalEditPolicy());
+ installEditPolicy(EditPolicy.LAYOUT_ROLE, createLayoutEditPolicy());
+ // XXX need an SCR to runtime to have another abstract superclass that would let children add reasonable editpolicies
+ // removeEditPolicy(org.eclipse.gmf.runtime.diagram.ui.editpolicies.EditPolicyRoles.CONNECTION_HANDLES_ROLE);
+ }
+
+ /**
+ * @generated
+ */
+ protected LayoutEditPolicy createLayoutEditPolicy() {
+ org.eclipse.gmf.runtime.diagram.ui.editpolicies.LayoutEditPolicy lep = new org.eclipse.gmf.runtime.diagram.ui.editpolicies.LayoutEditPolicy() {
+
+ protected EditPolicy createChildEditPolicy(EditPart child) {
+ View childView = (View) child.getModel();
+ switch (ComrelVisualIDRegistry.getVisualID(childView)) {
+ case SingleInputPort4EditPart.VISUAL_ID:
+ case MultiInputPort3EditPart.VISUAL_ID:
+ case SingleOutputPortEditPart.VISUAL_ID:
+ return new BorderItemSelectionEditPolicy();
+ }
+ EditPolicy result = child
+ .getEditPolicy(EditPolicy.PRIMARY_DRAG_ROLE);
+ if (result == null) {
+ result = new NonResizableEditPolicy();
+ }
+ return result;
+ }
+
+ protected Command getMoveChildrenCommand(Request request) {
+ return null;
+ }
+
+ protected Command getCreateCommand(CreateRequest request) {
+ return null;
+ }
+ };
+ return lep;
+ }
+
+ /**
+ * @generated
+ */
+ protected IFigure createNodeShape() {
+ return primaryShape = new SingleFeatureUnitFigure();
+ }
+
+ /**
+ * @generated
+ */
+ public SingleFeatureUnitFigure getPrimaryShape() {
+ return (SingleFeatureUnitFigure) primaryShape;
+ }
+
+ /**
+ * @generated NOT
+ */
+ protected boolean addFixedChild(EditPart childEditPart) {
+ if (childEditPart instanceof SingleFeatureUnitNameTypeEditPart) {
+ ((SingleFeatureUnitNameTypeEditPart) childEditPart)
+ .setLabel(getPrimaryShape()
+ .getFigureSingleFeatureUnitLabelFigure());
+ return true;
+ }
+ if (childEditPart instanceof SingleInputPort4EditPart) {
+ BorderItemLocator locator = new BorderItemLocator(getMainFigure(),
+ PositionConstants.NORTH);
+ locator.setCurrentSideOfParent(PositionConstants.NORTH); // Position des Ports
+ locator.setPreferredSideOfParent(PositionConstants.NORTH); // Position des Ports
+ getBorderedFigure().getBorderItemContainer().add(
+ ((SingleInputPort4EditPart) childEditPart).getFigure(),
+ locator);
+ return true;
+ }
+ if (childEditPart instanceof MultiInputPort3EditPart) {
+ BorderItemLocator locator = new BorderItemLocator(getMainFigure(),
+ PositionConstants.NORTH);
+ locator.setCurrentSideOfParent(PositionConstants.NORTH); // Position des Ports
+ locator.setPreferredSideOfParent(PositionConstants.NORTH); // Position des Ports
+ getBorderedFigure().getBorderItemContainer().add(
+ ((MultiInputPort3EditPart) childEditPart).getFigure(),
+ locator);
+ return true;
+ }
+ if (childEditPart instanceof SingleOutputPortEditPart) {
+ BorderItemLocator locator = new BorderItemLocator(getMainFigure(),
+ PositionConstants.SOUTH);
+ locator.setCurrentSideOfParent(PositionConstants.SOUTH); // Position des Ports
+ locator.setPreferredSideOfParent(PositionConstants.SOUTH); // Position des Ports
+ getBorderedFigure().getBorderItemContainer().add(
+ ((SingleOutputPortEditPart) childEditPart).getFigure(),
+ locator);
+ return true;
+ }
+ return false;
+ }
+
+ /**
+ * @generated NOT
+ */
+ protected boolean removeFixedChild(EditPart childEditPart) {
+ if (childEditPart instanceof SingleFeatureUnitNameTypeEditPart) {
+ return true;
+ }
+ if (childEditPart instanceof SingleInputPort4EditPart) {
+ // getBorderedFigure().getBorderItemContainer().remove(
+ // ((SingleInputPort4EditPart) childEditPart).getFigure());
+ return true;
+ }
+ if (childEditPart instanceof MultiInputPort3EditPart) {
+ getBorderedFigure().getBorderItemContainer().remove(
+ ((MultiInputPort3EditPart) childEditPart).getFigure());
+ return true;
+ }
+ if (childEditPart instanceof SingleOutputPortEditPart) {
+ // getBorderedFigure().getBorderItemContainer().remove(
+ // ((SingleOutputPortEditPart) childEditPart).getFigure());
+ return true;
+ }
+ return false;
+ }
+
+ /**
+ * @generated
+ */
+ protected void addChildVisual(EditPart childEditPart, int index) {
+ if (addFixedChild(childEditPart)) {
+ return;
+ }
+ super.addChildVisual(childEditPart, -1);
+ }
+
+ /**
+ * @generated
+ */
+ protected void removeChildVisual(EditPart childEditPart) {
+ if (removeFixedChild(childEditPart)) {
+ return;
+ }
+ super.removeChildVisual(childEditPart);
+ }
+
+ /**
+ * @generated
+ */
+ protected IFigure getContentPaneFor(IGraphicalEditPart editPart) {
+ if (editPart instanceof IBorderItemEditPart) {
+ return getBorderedFigure().getBorderItemContainer();
+ }
+ return getContentPane();
+ }
+
+ /**
+ * @generated
+ */
+ protected NodeFigure createNodePlate() {
+ DefaultSizeNodeFigure result = new DefaultSizeNodeFigure(40, 40);
+ return result;
+ }
+
+ /**
+ * Creates figure for this edit part.
+ *
+ * Body of this method does not depend on settings in generation model
+ * so you may safely remove <i>generated</i> tag and modify it.
+ *
+ * @generated
+ */
+ protected NodeFigure createMainFigure() {
+ NodeFigure figure = createNodePlate();
+ figure.setLayoutManager(new StackLayout());
+ IFigure shape = createNodeShape();
+ figure.add(shape);
+ contentPane = setupContentPane(shape);
+ return figure;
+ }
+
+ /**
+ * Default implementation treats passed figure as content pane.
+ * Respects layout one may have set for generated figure.
+ * @param nodeShape instance of generated figure class
+ * @generated
+ */
+ protected IFigure setupContentPane(IFigure nodeShape) {
+ if (nodeShape.getLayoutManager() == null) {
+ ConstrainedToolbarLayout layout = new ConstrainedToolbarLayout();
+ layout.setSpacing(5);
+ nodeShape.setLayoutManager(layout);
+ }
+ return nodeShape; // use nodeShape itself as contentPane
+ }
+
+ /**
+ * @generated
+ */
+ public IFigure getContentPane() {
+ if (contentPane != null) {
+ return contentPane;
+ }
+ return super.getContentPane();
+ }
+
+ /**
+ * @generated
+ */
+ protected void setForegroundColor(Color color) {
+ if (primaryShape != null) {
+ primaryShape.setForegroundColor(color);
+ }
+ }
+
+ /**
+ * @generated
+ */
+ protected void setBackgroundColor(Color color) {
+ if (primaryShape != null) {
+ primaryShape.setBackgroundColor(color);
+ }
+ }
+
+ /**
+ * @generated
+ */
+ protected void setLineWidth(int width) {
+ if (primaryShape instanceof Shape) {
+ ((Shape) primaryShape).setLineWidth(width);
+ }
+ }
+
+ /**
+ * @generated
+ */
+ protected void setLineType(int style) {
+ if (primaryShape instanceof Shape) {
+ ((Shape) primaryShape).setLineStyle(style);
+ }
+ }
+
+ /**
+ * @generated
+ */
+ public EditPart getPrimaryChildEditPart() {
+ return getChildBySemanticHint(ComrelVisualIDRegistry
+ .getType(SingleFeatureUnitNameTypeEditPart.VISUAL_ID));
+ }
+
+ /**
+ * @generated
+ */
+ public class SingleFeatureUnitFigure extends RoundedRectangle {
+
+ /**
+ * @generated
+ */
+ private WrappingLabel fFigureSingleFeatureUnitLabelFigure;
+
+ /**
+ * @generated
+ */
+ public SingleFeatureUnitFigure() {
+ this.setCornerDimensions(new Dimension(getMapMode().DPtoLP(8),
+ getMapMode().DPtoLP(8)));
+ this.setBorder(new MarginBorder(getMapMode().DPtoLP(5),
+ getMapMode().DPtoLP(5), getMapMode().DPtoLP(5),
+ getMapMode().DPtoLP(5)));
+ createContents();
+ }
+
+ /**
+ * @generated
+ */
+ private void createContents() {
+
+ fFigureSingleFeatureUnitLabelFigure = new WrappingLabel();
+ fFigureSingleFeatureUnitLabelFigure.setText("SingleFeatureUnit");
+
+ this.add(fFigureSingleFeatureUnitLabelFigure);
+
+ }
+
+ /**
+ * @generated
+ */
+ public WrappingLabel getFigureSingleFeatureUnitLabelFigure() {
+ return fFigureSingleFeatureUnitLabelFigure;
+ }
+
+ }
+
+}
diff --git a/org.eclipse.emf.refactor.comrel.diagram/src/comrel/diagram/edit/parts/SingleFeatureUnitNameType2EditPart.java b/org.eclipse.emf.refactor.comrel.diagram/src/comrel/diagram/edit/parts/SingleFeatureUnitNameType2EditPart.java
new file mode 100644
index 0000000..3de5f87
--- /dev/null
+++ b/org.eclipse.emf.refactor.comrel.diagram/src/comrel/diagram/edit/parts/SingleFeatureUnitNameType2EditPart.java
@@ -0,0 +1,576 @@
+/*
+ *
+ */
+package comrel.diagram.edit.parts;
+
+import java.util.Collections;
+import java.util.List;
+
+import org.eclipse.draw2d.IFigure;
+import org.eclipse.draw2d.Label;
+import org.eclipse.draw2d.geometry.Point;
+import org.eclipse.emf.common.notify.Notification;
+import org.eclipse.emf.ecore.EObject;
+import org.eclipse.emf.transaction.RunnableWithResult;
+import org.eclipse.gef.AccessibleEditPart;
+import org.eclipse.gef.EditPolicy;
+import org.eclipse.gef.Request;
+import org.eclipse.gef.requests.DirectEditRequest;
+import org.eclipse.gef.tools.DirectEditManager;
+import org.eclipse.gmf.runtime.common.ui.services.parser.IParser;
+import org.eclipse.gmf.runtime.common.ui.services.parser.IParserEditStatus;
+import org.eclipse.gmf.runtime.common.ui.services.parser.ParserEditStatus;
+import org.eclipse.gmf.runtime.common.ui.services.parser.ParserOptions;
+import org.eclipse.gmf.runtime.diagram.ui.editparts.CompartmentEditPart;
+import org.eclipse.gmf.runtime.diagram.ui.editparts.IGraphicalEditPart;
+import org.eclipse.gmf.runtime.diagram.ui.editparts.ITextAwareEditPart;
+import org.eclipse.gmf.runtime.diagram.ui.editpolicies.LabelDirectEditPolicy;
+import org.eclipse.gmf.runtime.diagram.ui.l10n.DiagramColorRegistry;
+import org.eclipse.gmf.runtime.diagram.ui.requests.RequestConstants;
+import org.eclipse.gmf.runtime.diagram.ui.tools.TextDirectEditManager;
+import org.eclipse.gmf.runtime.draw2d.ui.figures.WrappingLabel;
+import org.eclipse.gmf.runtime.emf.core.util.EObjectAdapter;
+import org.eclipse.gmf.runtime.emf.ui.services.parser.ISemanticParser;
+import org.eclipse.gmf.runtime.notation.FontStyle;
+import org.eclipse.gmf.runtime.notation.NotationPackage;
+import org.eclipse.gmf.runtime.notation.View;
+import org.eclipse.jface.text.contentassist.IContentAssistProcessor;
+import org.eclipse.jface.viewers.ICellEditorValidator;
+import org.eclipse.swt.SWT;
+import org.eclipse.swt.accessibility.AccessibleEvent;
+import org.eclipse.swt.graphics.Color;
+import org.eclipse.swt.graphics.FontData;
+import org.eclipse.swt.graphics.Image;
+
+import comrel.diagram.edit.policies.ComrelTextSelectionEditPolicy;
+import comrel.diagram.part.ComrelVisualIDRegistry;
+import comrel.diagram.providers.ComrelElementTypes;
+import comrel.diagram.providers.ComrelParserProvider;
+
+/**
+ * @generated
+ */
+public class SingleFeatureUnitNameType2EditPart extends CompartmentEditPart
+ implements ITextAwareEditPart {
+
+ /**
+ * @generated
+ */
+ public static final int VISUAL_ID = 5029;
+
+ /**
+ * @generated
+ */
+ private DirectEditManager manager;
+
+ /**
+ * @generated
+ */
+ private IParser parser;
+
+ /**
+ * @generated
+ */
+ private List<?> parserElements;
+
+ /**
+ * @generated
+ */
+ private String defaultText;
+
+ /**
+ * @generated
+ */
+ public SingleFeatureUnitNameType2EditPart(View view) {
+ super(view);
+ }
+
+ /**
+ * @generated
+ */
+ protected void createDefaultEditPolicies() {
+ super.createDefaultEditPolicies();
+ installEditPolicy(EditPolicy.SELECTION_FEEDBACK_ROLE,
+ new ComrelTextSelectionEditPolicy());
+ installEditPolicy(EditPolicy.DIRECT_EDIT_ROLE,
+ new LabelDirectEditPolicy());
+ installEditPolicy(EditPolicy.PRIMARY_DRAG_ROLE,
+ new CompositeRefactoringEditPart.NodeLabelDragPolicy());
+ }
+
+ /**
+ * @generated
+ */
+ protected String getLabelTextHelper(IFigure figure) {
+ if (figure instanceof WrappingLabel) {
+ return ((WrappingLabel) figure).getText();
+ } else {
+ return ((Label) figure).getText();
+ }
+ }
+
+ /**
+ * @generated
+ */
+ protected void setLabelTextHelper(IFigure figure, String text) {
+ if (figure instanceof WrappingLabel) {
+ ((WrappingLabel) figure).setText(text);
+ } else {
+ ((Label) figure).setText(text);
+ }
+ }
+
+ /**
+ * @generated
+ */
+ protected Image getLabelIconHelper(IFigure figure) {
+ if (figure instanceof WrappingLabel) {
+ return ((WrappingLabel) figure).getIcon();
+ } else {
+ return ((Label) figure).getIcon();
+ }
+ }
+
+ /**
+ * @generated
+ */
+ protected void setLabelIconHelper(IFigure figure, Image icon) {
+ if (figure instanceof WrappingLabel) {
+ ((WrappingLabel) figure).setIcon(icon);
+ } else {
+ ((Label) figure).setIcon(icon);
+ }
+ }
+
+ /**
+ * @generated
+ */
+ public void setLabel(WrappingLabel figure) {
+ unregisterVisuals();
+ setFigure(figure);
+ defaultText = getLabelTextHelper(figure);
+ registerVisuals();
+ refreshVisuals();
+ }
+
+ /**
+ * @generated
+ */
+ @SuppressWarnings("rawtypes")
+ protected List getModelChildren() {
+ return Collections.EMPTY_LIST;
+ }
+
+ /**
+ * @generated
+ */
+ public IGraphicalEditPart getChildBySemanticHint(String semanticHint) {
+ return null;
+ }
+
+ /**
+ * @generated
+ */
+ protected EObject getParserElement() {
+ return resolveSemanticElement();
+ }
+
+ /**
+ * @generated
+ */
+ protected Image getLabelIcon() {
+ return null;
+ }
+
+ /**
+ * @generated
+ */
+ protected String getLabelText() {
+ String text = null;
+ EObject parserElement = getParserElement();
+ if (parserElement != null && getParser() != null) {
+ text = getParser().getPrintString(
+ new EObjectAdapter(parserElement),
+ getParserOptions().intValue());
+ }
+ if (text == null || text.length() == 0) {
+ text = defaultText;
+ }
+ return text;
+ }
+
+ /**
+ * @generated
+ */
+ public void setLabelText(String text) {
+ setLabelTextHelper(getFigure(), text);
+ Object pdEditPolicy = getEditPolicy(EditPolicy.PRIMARY_DRAG_ROLE);
+ if (pdEditPolicy instanceof ComrelTextSelectionEditPolicy) {
+ ((ComrelTextSelectionEditPolicy) pdEditPolicy).refreshFeedback();
+ }
+ Object sfEditPolicy = getEditPolicy(EditPolicy.SELECTION_FEEDBACK_ROLE);
+ if (sfEditPolicy instanceof ComrelTextSelectionEditPolicy) {
+ ((ComrelTextSelectionEditPolicy) sfEditPolicy).refreshFeedback();
+ }
+ }
+
+ /**
+ * @generated
+ */
+ public String getEditText() {
+ if (getParserElement() == null || getParser() == null) {
+ return ""; //$NON-NLS-1$
+ }
+ return getParser().getEditString(
+ new EObjectAdapter(getParserElement()),
+ getParserOptions().intValue());
+ }
+
+ /**
+ * @generated
+ */
+ protected boolean isEditable() {
+ return getParser() != null;
+ }
+
+ /**
+ * @generated
+ */
+ public ICellEditorValidator getEditTextValidator() {
+ return new ICellEditorValidator() {
+
+ public String isValid(final Object value) {
+ if (value instanceof String) {
+ final EObject element = getParserElement();
+ final IParser parser = getParser();
+ try {
+ IParserEditStatus valid = (IParserEditStatus) getEditingDomain()
+ .runExclusive(
+ new RunnableWithResult.Impl<IParserEditStatus>() {
+
+ public void run() {
+ setResult(parser
+ .isValidEditString(
+ new EObjectAdapter(
+ element),
+ (String) value));
+ }
+ });
+ return valid.getCode() == ParserEditStatus.EDITABLE ? null
+ : valid.getMessage();
+ } catch (InterruptedException ie) {
+ ie.printStackTrace();
+ }
+ }
+
+ // shouldn't get here
+ return null;
+ }
+ };
+ }
+
+ /**
+ * @generated
+ */
+ public IContentAssistProcessor getCompletionProcessor() {
+ if (getParserElement() == null || getParser() == null) {
+ return null;
+ }
+ return getParser().getCompletionProcessor(
+ new EObjectAdapter(getParserElement()));
+ }
+
+ /**
+ * @generated
+ */
+ public ParserOptions getParserOptions() {
+ return ParserOptions.NONE;
+ }
+
+ /**
+ * @generated
+ */
+ public IParser getParser() {
+ if (parser == null) {
+ parser = ComrelParserProvider
+ .getParser(
+ ComrelElementTypes.SingleFeatureUnit_3038,
+ getParserElement(),
+ ComrelVisualIDRegistry
+ .getType(comrel.diagram.edit.parts.SingleFeatureUnitNameType2EditPart.VISUAL_ID));
+ }
+ return parser;
+ }
+
+ /**
+ * @generated
+ */
+ protected DirectEditManager getManager() {
+ if (manager == null) {
+ setManager(new TextDirectEditManager(this,
+ TextDirectEditManager.getTextCellEditorClass(this),
+ ComrelEditPartFactory.getTextCellEditorLocator(this)));
+ }
+ return manager;
+ }
+
+ /**
+ * @generated
+ */
+ protected void setManager(DirectEditManager manager) {
+ this.manager = manager;
+ }
+
+ /**
+ * @generated
+ */
+ protected void performDirectEdit() {
+ getManager().show();
+ }
+
+ /**
+ * @generated
+ */
+ protected void performDirectEdit(Point eventLocation) {
+ if (getManager().getClass() == TextDirectEditManager.class) {
+ ((TextDirectEditManager) getManager()).show(eventLocation
+ .getSWTPoint());
+ }
+ }
+
+ /**
+ * @generated
+ */
+ private void performDirectEdit(char initialCharacter) {
+ if (getManager() instanceof TextDirectEditManager) {
+ ((TextDirectEditManager) getManager()).show(initialCharacter);
+ } else {
+ performDirectEdit();
+ }
+ }
+
+ /**
+ * @generated
+ */
+ protected void performDirectEditRequest(Request request) {
+ final Request theRequest = request;
+ try {
+ getEditingDomain().runExclusive(new Runnable() {
+
+ public void run() {
+ if (isActive() && isEditable()) {
+ if (theRequest
+ .getExtendedData()
+ .get(RequestConstants.REQ_DIRECTEDIT_EXTENDEDDATA_INITIAL_CHAR) instanceof Character) {
+ Character initialChar = (Character) theRequest
+ .getExtendedData()
+ .get(RequestConstants.REQ_DIRECTEDIT_EXTENDEDDATA_INITIAL_CHAR);
+ performDirectEdit(initialChar.charValue());
+ } else if ((theRequest instanceof DirectEditRequest)
+ && (getEditText().equals(getLabelText()))) {
+ DirectEditRequest editRequest = (DirectEditRequest) theRequest;
+ performDirectEdit(editRequest.getLocation());
+ } else {
+ performDirectEdit();
+ }
+ }
+ }
+ });
+ } catch (InterruptedException e) {
+ e.printStackTrace();
+ }
+ }
+
+ /**
+ * @generated
+ */
+ protected void refreshVisuals() {
+ super.refreshVisuals();
+ refreshLabel();
+ refreshFont();
+ refreshFontColor();
+ refreshUnderline();
+ refreshStrikeThrough();
+ }
+
+ /**
+ * @generated
+ */
+ protected void refreshLabel() {
+ setLabelTextHelper(getFigure(), getLabelText());
+ setLabelIconHelper(getFigure(), getLabelIcon());
+ Object pdEditPolicy = getEditPolicy(EditPolicy.PRIMARY_DRAG_ROLE);
+ if (pdEditPolicy instanceof ComrelTextSelectionEditPolicy) {
+ ((ComrelTextSelectionEditPolicy) pdEditPolicy).refreshFeedback();
+ }
+ Object sfEditPolicy = getEditPolicy(EditPolicy.SELECTION_FEEDBACK_ROLE);
+ if (sfEditPolicy instanceof ComrelTextSelectionEditPolicy) {
+ ((ComrelTextSelectionEditPolicy) sfEditPolicy).refreshFeedback();
+ }
+ }
+
+ /**
+ * @generated
+ */
+ protected void refreshUnderline() {
+ FontStyle style = (FontStyle) getFontStyleOwnerView().getStyle(
+ NotationPackage.eINSTANCE.getFontStyle());
+ if (style != null && getFigure() instanceof WrappingLabel) {
+ ((WrappingLabel) getFigure()).setTextUnderline(style.isUnderline());
+ }
+ }
+
+ /**
+ * @generated
+ */
+ protected void refreshStrikeThrough() {
+ FontStyle style = (FontStyle) getFontStyleOwnerView().getStyle(
+ NotationPackage.eINSTANCE.getFontStyle());
+ if (style != null && getFigure() instanceof WrappingLabel) {
+ ((WrappingLabel) getFigure()).setTextStrikeThrough(style
+ .isStrikeThrough());
+ }
+ }
+
+ /**
+ * @generated
+ */
+ protected void refreshFont() {
+ FontStyle style = (FontStyle) getFontStyleOwnerView().getStyle(
+ NotationPackage.eINSTANCE.getFontStyle());
+ if (style != null) {
+ FontData fontData = new FontData(style.getFontName(),
+ style.getFontHeight(), (style.isBold() ? SWT.BOLD
+ : SWT.NORMAL)
+ | (style.isItalic() ? SWT.ITALIC : SWT.NORMAL));
+ setFont(fontData);
+ }
+ }
+
+ /**
+ * @generated
+ */
+ protected void setFontColor(Color color) {
+ getFigure().setForegroundColor(color);
+ }
+
+ /**
+ * @generated
+ */
+ protected void addSemanticListeners() {
+ if (getParser() instanceof ISemanticParser) {
+ EObject element = resolveSemanticElement();
+ parserElements = ((ISemanticParser) getParser())
+ .getSemanticElementsBeingParsed(element);
+ for (int i = 0; i < parserElements.size(); i++) {
+ addListenerFilter(
+ "SemanticModel" + i, this, (EObject) parserElements.get(i)); //$NON-NLS-1$
+ }
+ } else {
+ super.addSemanticListeners();
+ }
+ }
+
+ /**
+ * @generated
+ */
+ protected void removeSemanticListeners() {
+ if (parserElements != null) {
+ for (int i = 0; i < parserElements.size(); i++) {
+ removeListenerFilter("SemanticModel" + i); //$NON-NLS-1$
+ }
+ } else {
+ super.removeSemanticListeners();
+ }
+ }
+
+ /**
+ * @generated
+ */
+ protected AccessibleEditPart getAccessibleEditPart() {
+ if (accessibleEP == null) {
+ accessibleEP = new AccessibleGraphicalEditPart() {
+
+ public void getName(AccessibleEvent e) {
+ e.result = getLabelTextHelper(getFigure());
+ }
+ };
+ }
+ return accessibleEP;
+ }
+
+ /**
+ * @generated
+ */
+ private View getFontStyleOwnerView() {
+ return getPrimaryView();
+ }
+
+ /**
+ * @generated
+ */
+ protected void addNotationalListeners() {
+ super.addNotationalListeners();
+ addListenerFilter("PrimaryView", this, getPrimaryView()); //$NON-NLS-1$
+ }
+
+ /**
+ * @generated
+ */
+ protected void removeNotationalListeners() {
+ super.removeNotationalListeners();
+ removeListenerFilter("PrimaryView"); //$NON-NLS-1$
+ }
+
+ /**
+ * @generated
+ */
+ protected void handleNotificationEvent(Notification event) {
+ Object feature = event.getFeature();
+ if (NotationPackage.eINSTANCE.getFontStyle_FontColor().equals(feature)) {
+ Integer c = (Integer) event.getNewValue();
+ setFontColor(DiagramColorRegistry.getInstance().getColor(c));
+ } else if (NotationPackage.eINSTANCE.getFontStyle_Underline().equals(
+ feature)) {
+ refreshUnderline();
+ } else if (NotationPackage.eINSTANCE.getFontStyle_StrikeThrough()
+ .equals(feature)) {
+ refreshStrikeThrough();
+ } else if (NotationPackage.eINSTANCE.getFontStyle_FontHeight().equals(
+ feature)
+ || NotationPackage.eINSTANCE.getFontStyle_FontName().equals(
+ feature)
+ || NotationPackage.eINSTANCE.getFontStyle_Bold()
+ .equals(feature)
+ || NotationPackage.eINSTANCE.getFontStyle_Italic().equals(
+ feature)) {
+ refreshFont();
+ } else {
+ if (getParser() != null
+ && getParser().isAffectingEvent(event,
+ getParserOptions().intValue())) {
+ refreshLabel();
+ }
+ if (getParser() instanceof ISemanticParser) {
+ ISemanticParser modelParser = (ISemanticParser) getParser();
+ if (modelParser.areSemanticElementsAffected(null, event)) {
+ removeSemanticListeners();
+ if (resolveSemanticElement() != null) {
+ addSemanticListeners();
+ }
+ refreshLabel();
+ }
+ }
+ }
+ super.handleNotificationEvent(event);
+ }
+
+ /**
+ * @generated
+ */
+ protected IFigure createFigure() {
+ // Parent should assign one using setLabel() method
+ return null;
+ }
+
+}
diff --git a/org.eclipse.emf.refactor.comrel.diagram/src/comrel/diagram/edit/parts/SingleFeatureUnitNameType3EditPart.java b/org.eclipse.emf.refactor.comrel.diagram/src/comrel/diagram/edit/parts/SingleFeatureUnitNameType3EditPart.java
new file mode 100644
index 0000000..bdd24e1
--- /dev/null
+++ b/org.eclipse.emf.refactor.comrel.diagram/src/comrel/diagram/edit/parts/SingleFeatureUnitNameType3EditPart.java
@@ -0,0 +1,576 @@
+/*
+ *
+ */
+package comrel.diagram.edit.parts;
+
+import java.util.Collections;
+import java.util.List;
+
+import org.eclipse.draw2d.IFigure;
+import org.eclipse.draw2d.Label;
+import org.eclipse.draw2d.geometry.Point;
+import org.eclipse.emf.common.notify.Notification;
+import org.eclipse.emf.ecore.EObject;
+import org.eclipse.emf.transaction.RunnableWithResult;
+import org.eclipse.gef.AccessibleEditPart;
+import org.eclipse.gef.EditPolicy;
+import org.eclipse.gef.Request;
+import org.eclipse.gef.requests.DirectEditRequest;
+import org.eclipse.gef.tools.DirectEditManager;
+import org.eclipse.gmf.runtime.common.ui.services.parser.IParser;
+import org.eclipse.gmf.runtime.common.ui.services.parser.IParserEditStatus;
+import org.eclipse.gmf.runtime.common.ui.services.parser.ParserEditStatus;
+import org.eclipse.gmf.runtime.common.ui.services.parser.ParserOptions;
+import org.eclipse.gmf.runtime.diagram.ui.editparts.CompartmentEditPart;
+import org.eclipse.gmf.runtime.diagram.ui.editparts.IGraphicalEditPart;
+import org.eclipse.gmf.runtime.diagram.ui.editparts.ITextAwareEditPart;
+import org.eclipse.gmf.runtime.diagram.ui.editpolicies.LabelDirectEditPolicy;
+import org.eclipse.gmf.runtime.diagram.ui.l10n.DiagramColorRegistry;
+import org.eclipse.gmf.runtime.diagram.ui.requests.RequestConstants;
+import org.eclipse.gmf.runtime.diagram.ui.tools.TextDirectEditManager;
+import org.eclipse.gmf.runtime.draw2d.ui.figures.WrappingLabel;
+import org.eclipse.gmf.runtime.emf.core.util.EObjectAdapter;
+import org.eclipse.gmf.runtime.emf.ui.services.parser.ISemanticParser;
+import org.eclipse.gmf.runtime.notation.FontStyle;
+import org.eclipse.gmf.runtime.notation.NotationPackage;
+import org.eclipse.gmf.runtime.notation.View;
+import org.eclipse.jface.text.contentassist.IContentAssistProcessor;
+import org.eclipse.jface.viewers.ICellEditorValidator;
+import org.eclipse.swt.SWT;
+import org.eclipse.swt.accessibility.AccessibleEvent;
+import org.eclipse.swt.graphics.Color;
+import org.eclipse.swt.graphics.FontData;
+import org.eclipse.swt.graphics.Image;
+
+import comrel.diagram.edit.policies.ComrelTextSelectionEditPolicy;
+import comrel.diagram.part.ComrelVisualIDRegistry;
+import comrel.diagram.providers.ComrelElementTypes;
+import comrel.diagram.providers.ComrelParserProvider;
+
+/**
+ * @generated
+ */
+public class SingleFeatureUnitNameType3EditPart extends CompartmentEditPart
+ implements ITextAwareEditPart {
+
+ /**
+ * @generated
+ */
+ public static final int VISUAL_ID = 5036;
+
+ /**
+ * @generated
+ */
+ private DirectEditManager manager;
+
+ /**
+ * @generated
+ */
+ private IParser parser;
+
+ /**
+ * @generated
+ */
+ private List<?> parserElements;
+
+ /**
+ * @generated
+ */
+ private String defaultText;
+
+ /**
+ * @generated
+ */
+ public SingleFeatureUnitNameType3EditPart(View view) {
+ super(view);
+ }
+
+ /**
+ * @generated
+ */
+ protected void createDefaultEditPolicies() {
+ super.createDefaultEditPolicies();
+ installEditPolicy(EditPolicy.SELECTION_FEEDBACK_ROLE,
+ new ComrelTextSelectionEditPolicy());
+ installEditPolicy(EditPolicy.DIRECT_EDIT_ROLE,
+ new LabelDirectEditPolicy());
+ installEditPolicy(EditPolicy.PRIMARY_DRAG_ROLE,
+ new CompositeRefactoringEditPart.NodeLabelDragPolicy());
+ }
+
+ /**
+ * @generated
+ */
+ protected String getLabelTextHelper(IFigure figure) {
+ if (figure instanceof WrappingLabel) {
+ return ((WrappingLabel) figure).getText();
+ } else {
+ return ((Label) figure).getText();
+ }
+ }
+
+ /**
+ * @generated
+ */
+ protected void setLabelTextHelper(IFigure figure, String text) {
+ if (figure instanceof WrappingLabel) {
+ ((WrappingLabel) figure).setText(text);
+ } else {
+ ((Label) figure).setText(text);
+ }
+ }
+
+ /**
+ * @generated
+ */
+ protected Image getLabelIconHelper(IFigure figure) {
+ if (figure instanceof WrappingLabel) {
+ return ((WrappingLabel) figure).getIcon();
+ } else {
+ return ((Label) figure).getIcon();
+ }
+ }
+
+ /**
+ * @generated
+ */
+ protected void setLabelIconHelper(IFigure figure, Image icon) {
+ if (figure instanceof WrappingLabel) {
+ ((WrappingLabel) figure).setIcon(icon);
+ } else {
+ ((Label) figure).setIcon(icon);
+ }
+ }
+
+ /**
+ * @generated
+ */
+ public void setLabel(WrappingLabel figure) {
+ unregisterVisuals();
+ setFigure(figure);
+ defaultText = getLabelTextHelper(figure);
+ registerVisuals();
+ refreshVisuals();
+ }
+
+ /**
+ * @generated
+ */
+ @SuppressWarnings("rawtypes")
+ protected List getModelChildren() {
+ return Collections.EMPTY_LIST;
+ }
+
+ /**
+ * @generated
+ */
+ public IGraphicalEditPart getChildBySemanticHint(String semanticHint) {
+ return null;
+ }
+
+ /**
+ * @generated
+ */
+ protected EObject getParserElement() {
+ return resolveSemanticElement();
+ }
+
+ /**
+ * @generated
+ */
+ protected Image getLabelIcon() {
+ return null;
+ }
+
+ /**
+ * @generated
+ */
+ protected String getLabelText() {
+ String text = null;
+ EObject parserElement = getParserElement();
+ if (parserElement != null && getParser() != null) {
+ text = getParser().getPrintString(
+ new EObjectAdapter(parserElement),
+ getParserOptions().intValue());
+ }
+ if (text == null || text.length() == 0) {
+ text = defaultText;
+ }
+ return text;
+ }
+
+ /**
+ * @generated
+ */
+ public void setLabelText(String text) {
+ setLabelTextHelper(getFigure(), text);
+ Object pdEditPolicy = getEditPolicy(EditPolicy.PRIMARY_DRAG_ROLE);
+ if (pdEditPolicy instanceof ComrelTextSelectionEditPolicy) {
+ ((ComrelTextSelectionEditPolicy) pdEditPolicy).refreshFeedback();
+ }
+ Object sfEditPolicy = getEditPolicy(EditPolicy.SELECTION_FEEDBACK_ROLE);
+ if (sfEditPolicy instanceof ComrelTextSelectionEditPolicy) {
+ ((ComrelTextSelectionEditPolicy) sfEditPolicy).refreshFeedback();
+ }
+ }
+
+ /**
+ * @generated
+ */
+ public String getEditText() {
+ if (getParserElement() == null || getParser() == null) {
+ return ""; //$NON-NLS-1$
+ }
+ return getParser().getEditString(
+ new EObjectAdapter(getParserElement()),
+ getParserOptions().intValue());
+ }
+
+ /**
+ * @generated
+ */
+ protected boolean isEditable() {
+ return getParser() != null;
+ }
+
+ /**
+ * @generated
+ */
+ public ICellEditorValidator getEditTextValidator() {
+ return new ICellEditorValidator() {
+
+ public String isValid(final Object value) {
+ if (value instanceof String) {
+ final EObject element = getParserElement();
+ final IParser parser = getParser();
+ try {
+ IParserEditStatus valid = (IParserEditStatus) getEditingDomain()
+ .runExclusive(
+ new RunnableWithResult.Impl<IParserEditStatus>() {
+
+ public void run() {
+ setResult(parser
+ .isValidEditString(
+ new EObjectAdapter(
+ element),
+ (String) value));
+ }
+ });
+ return valid.getCode() == ParserEditStatus.EDITABLE ? null
+ : valid.getMessage();
+ } catch (InterruptedException ie) {
+ ie.printStackTrace();
+ }
+ }
+
+ // shouldn't get here
+ return null;
+ }
+ };
+ }
+
+ /**
+ * @generated
+ */
+ public IContentAssistProcessor getCompletionProcessor() {
+ if (getParserElement() == null || getParser() == null) {
+ return null;
+ }
+ return getParser().getCompletionProcessor(
+ new EObjectAdapter(getParserElement()));
+ }
+
+ /**
+ * @generated
+ */
+ public ParserOptions getParserOptions() {
+ return ParserOptions.NONE;
+ }
+
+ /**
+ * @generated
+ */
+ public IParser getParser() {
+ if (parser == null) {
+ parser = ComrelParserProvider
+ .getParser(
+ ComrelElementTypes.SingleFeatureUnit_3050,
+ getParserElement(),
+ ComrelVisualIDRegistry
+ .getType(comrel.diagram.edit.parts.SingleFeatureUnitNameType3EditPart.VISUAL_ID));
+ }
+ return parser;
+ }
+
+ /**
+ * @generated
+ */
+ protected DirectEditManager getManager() {
+ if (manager == null) {
+ setManager(new TextDirectEditManager(this,
+ TextDirectEditManager.getTextCellEditorClass(this),
+ ComrelEditPartFactory.getTextCellEditorLocator(this)));
+ }
+ return manager;
+ }
+
+ /**
+ * @generated
+ */
+ protected void setManager(DirectEditManager manager) {
+ this.manager = manager;
+ }
+
+ /**
+ * @generated
+ */
+ protected void performDirectEdit() {
+ getManager().show();
+ }
+
+ /**
+ * @generated
+ */
+ protected void performDirectEdit(Point eventLocation) {
+ if (getManager().getClass() == TextDirectEditManager.class) {
+ ((TextDirectEditManager) getManager()).show(eventLocation
+ .getSWTPoint());
+ }
+ }
+
+ /**
+ * @generated
+ */
+ private void performDirectEdit(char initialCharacter) {
+ if (getManager() instanceof TextDirectEditManager) {
+ ((TextDirectEditManager) getManager()).show(initialCharacter);
+ } else {
+ performDirectEdit();
+ }
+ }
+
+ /**
+ * @generated
+ */
+ protected void performDirectEditRequest(Request request) {
+ final Request theRequest = request;
+ try {
+ getEditingDomain().runExclusive(new Runnable() {
+
+ public void run() {
+ if (isActive() && isEditable()) {
+ if (theRequest
+ .getExtendedData()
+ .get(RequestConstants.REQ_DIRECTEDIT_EXTENDEDDATA_INITIAL_CHAR) instanceof Character) {
+ Character initialChar = (Character) theRequest
+ .getExtendedData()
+ .get(RequestConstants.REQ_DIRECTEDIT_EXTENDEDDATA_INITIAL_CHAR);
+ performDirectEdit(initialChar.charValue());
+ } else if ((theRequest instanceof DirectEditRequest)
+ && (getEditText().equals(getLabelText()))) {
+ DirectEditRequest editRequest = (DirectEditRequest) theRequest;
+ performDirectEdit(editRequest.getLocation());
+ } else {
+ performDirectEdit();
+ }
+ }
+ }
+ });
+ } catch (InterruptedException e) {
+ e.printStackTrace();
+ }
+ }
+
+ /**
+ * @generated
+ */
+ protected void refreshVisuals() {
+ super.refreshVisuals();
+ refreshLabel();
+ refreshFont();
+ refreshFontColor();
+ refreshUnderline();
+ refreshStrikeThrough();
+ }
+
+ /**
+ * @generated
+ */
+ protected void refreshLabel() {
+ setLabelTextHelper(getFigure(), getLabelText());
+ setLabelIconHelper(getFigure(), getLabelIcon());
+ Object pdEditPolicy = getEditPolicy(EditPolicy.PRIMARY_DRAG_ROLE);
+ if (pdEditPolicy instanceof ComrelTextSelectionEditPolicy) {
+ ((ComrelTextSelectionEditPolicy) pdEditPolicy).refreshFeedback();
+ }
+ Object sfEditPolicy = getEditPolicy(EditPolicy.SELECTION_FEEDBACK_ROLE);
+ if (sfEditPolicy instanceof ComrelTextSelectionEditPolicy) {
+ ((ComrelTextSelectionEditPolicy) sfEditPolicy).refreshFeedback();
+ }
+ }
+
+ /**
+ * @generated
+ */
+ protected void refreshUnderline() {
+ FontStyle style = (FontStyle) getFontStyleOwnerView().getStyle(
+ NotationPackage.eINSTANCE.getFontStyle());
+ if (style != null && getFigure() instanceof WrappingLabel) {
+ ((WrappingLabel) getFigure()).setTextUnderline(style.isUnderline());
+ }
+ }
+
+ /**
+ * @generated
+ */
+ protected void refreshStrikeThrough() {
+ FontStyle style = (FontStyle) getFontStyleOwnerView().getStyle(
+ NotationPackage.eINSTANCE.getFontStyle());
+ if (style != null && getFigure() instanceof WrappingLabel) {
+ ((WrappingLabel) getFigure()).setTextStrikeThrough(style
+ .isStrikeThrough());
+ }
+ }
+
+ /**
+ * @generated
+ */
+ protected void refreshFont() {
+ FontStyle style = (FontStyle) getFontStyleOwnerView().getStyle(
+ NotationPackage.eINSTANCE.getFontStyle());
+ if (style != null) {
+ FontData fontData = new FontData(style.getFontName(),
+ style.getFontHeight(), (style.isBold() ? SWT.BOLD
+ : SWT.NORMAL)
+ | (style.isItalic() ? SWT.ITALIC : SWT.NORMAL));
+ setFont(fontData);
+ }
+ }
+
+ /**
+ * @generated
+ */
+ protected void setFontColor(Color color) {
+ getFigure().setForegroundColor(color);
+ }
+
+ /**
+ * @generated
+ */
+ protected void addSemanticListeners() {
+ if (getParser() instanceof ISemanticParser) {
+ EObject element = resolveSemanticElement();
+ parserElements = ((ISemanticParser) getParser())
+ .getSemanticElementsBeingParsed(element);
+ for (int i = 0; i < parserElements.size(); i++) {
+ addListenerFilter(
+ "SemanticModel" + i, this, (EObject) parserElements.get(i)); //$NON-NLS-1$
+ }
+ } else {
+ super.addSemanticListeners();
+ }
+ }
+
+ /**
+ * @generated
+ */
+ protected void removeSemanticListeners() {
+ if (parserElements != null) {
+ for (int i = 0; i < parserElements.size(); i++) {
+ removeListenerFilter("SemanticModel" + i); //$NON-NLS-1$
+ }
+ } else {
+ super.removeSemanticListeners();
+ }
+ }
+
+ /**
+ * @generated
+ */
+ protected AccessibleEditPart getAccessibleEditPart() {
+ if (accessibleEP == null) {
+ accessibleEP = new AccessibleGraphicalEditPart() {
+
+ public void getName(AccessibleEvent e) {
+ e.result = getLabelTextHelper(getFigure());
+ }
+ };
+ }
+ return accessibleEP;
+ }
+
+ /**
+ * @generated
+ */
+ private View getFontStyleOwnerView() {
+ return getPrimaryView();
+ }
+
+ /**
+ * @generated
+ */
+ protected void addNotationalListeners() {
+ super.addNotationalListeners();
+ addListenerFilter("PrimaryView", this, getPrimaryView()); //$NON-NLS-1$
+ }
+
+ /**
+ * @generated
+ */
+ protected void removeNotationalListeners() {
+ super.removeNotationalListeners();
+ removeListenerFilter("PrimaryView"); //$NON-NLS-1$
+ }
+
+ /**
+ * @generated
+ */
+ protected void handleNotificationEvent(Notification event) {
+ Object feature = event.getFeature();
+ if (NotationPackage.eINSTANCE.getFontStyle_FontColor().equals(feature)) {
+ Integer c = (Integer) event.getNewValue();
+ setFontColor(DiagramColorRegistry.getInstance().getColor(c));
+ } else if (NotationPackage.eINSTANCE.getFontStyle_Underline().equals(
+ feature)) {
+ refreshUnderline();
+ } else if (NotationPackage.eINSTANCE.getFontStyle_StrikeThrough()
+ .equals(feature)) {
+ refreshStrikeThrough();
+ } else if (NotationPackage.eINSTANCE.getFontStyle_FontHeight().equals(
+ feature)
+ || NotationPackage.eINSTANCE.getFontStyle_FontName().equals(
+ feature)
+ || NotationPackage.eINSTANCE.getFontStyle_Bold()
+ .equals(feature)
+ || NotationPackage.eINSTANCE.getFontStyle_Italic().equals(
+ feature)) {
+ refreshFont();
+ } else {
+ if (getParser() != null
+ && getParser().isAffectingEvent(event,
+ getParserOptions().intValue())) {
+ refreshLabel();
+ }
+ if (getParser() instanceof ISemanticParser) {
+ ISemanticParser modelParser = (ISemanticParser) getParser();
+ if (modelParser.areSemanticElementsAffected(null, event)) {
+ removeSemanticListeners();
+ if (resolveSemanticElement() != null) {
+ addSemanticListeners();
+ }
+ refreshLabel();
+ }
+ }
+ }
+ super.handleNotificationEvent(event);
+ }
+
+ /**
+ * @generated
+ */
+ protected IFigure createFigure() {
+ // Parent should assign one using setLabel() method
+ return null;
+ }
+
+}
diff --git a/org.eclipse.emf.refactor.comrel.diagram/src/comrel/diagram/edit/parts/SingleFeatureUnitNameType4EditPart.java b/org.eclipse.emf.refactor.comrel.diagram/src/comrel/diagram/edit/parts/SingleFeatureUnitNameType4EditPart.java
new file mode 100644
index 0000000..1628cbe
--- /dev/null
+++ b/org.eclipse.emf.refactor.comrel.diagram/src/comrel/diagram/edit/parts/SingleFeatureUnitNameType4EditPart.java
@@ -0,0 +1,576 @@
+/*
+ *
+ */
+package comrel.diagram.edit.parts;
+
+import java.util.Collections;
+import java.util.List;
+
+import org.eclipse.draw2d.IFigure;
+import org.eclipse.draw2d.Label;
+import org.eclipse.draw2d.geometry.Point;
+import org.eclipse.emf.common.notify.Notification;
+import org.eclipse.emf.ecore.EObject;
+import org.eclipse.emf.transaction.RunnableWithResult;
+import org.eclipse.gef.AccessibleEditPart;
+import org.eclipse.gef.EditPolicy;
+import org.eclipse.gef.Request;
+import org.eclipse.gef.requests.DirectEditRequest;
+import org.eclipse.gef.tools.DirectEditManager;
+import org.eclipse.gmf.runtime.common.ui.services.parser.IParser;
+import org.eclipse.gmf.runtime.common.ui.services.parser.IParserEditStatus;
+import org.eclipse.gmf.runtime.common.ui.services.parser.ParserEditStatus;
+import org.eclipse.gmf.runtime.common.ui.services.parser.ParserOptions;
+import org.eclipse.gmf.runtime.diagram.ui.editparts.CompartmentEditPart;
+import org.eclipse.gmf.runtime.diagram.ui.editparts.IGraphicalEditPart;
+import org.eclipse.gmf.runtime.diagram.ui.editparts.ITextAwareEditPart;
+import org.eclipse.gmf.runtime.diagram.ui.editpolicies.LabelDirectEditPolicy;
+import org.eclipse.gmf.runtime.diagram.ui.l10n.DiagramColorRegistry;
+import org.eclipse.gmf.runtime.diagram.ui.requests.RequestConstants;
+import org.eclipse.gmf.runtime.diagram.ui.tools.TextDirectEditManager;
+import org.eclipse.gmf.runtime.draw2d.ui.figures.WrappingLabel;
+import org.eclipse.gmf.runtime.emf.core.util.EObjectAdapter;
+import org.eclipse.gmf.runtime.emf.ui.services.parser.ISemanticParser;
+import org.eclipse.gmf.runtime.notation.FontStyle;
+import org.eclipse.gmf.runtime.notation.NotationPackage;
+import org.eclipse.gmf.runtime.notation.View;
+import org.eclipse.jface.text.contentassist.IContentAssistProcessor;
+import org.eclipse.jface.viewers.ICellEditorValidator;
+import org.eclipse.swt.SWT;
+import org.eclipse.swt.accessibility.AccessibleEvent;
+import org.eclipse.swt.graphics.Color;
+import org.eclipse.swt.graphics.FontData;
+import org.eclipse.swt.graphics.Image;
+
+import comrel.diagram.edit.policies.ComrelTextSelectionEditPolicy;
+import comrel.diagram.part.ComrelVisualIDRegistry;
+import comrel.diagram.providers.ComrelElementTypes;
+import comrel.diagram.providers.ComrelParserProvider;
+
+/**
+ * @generated
+ */
+public class SingleFeatureUnitNameType4EditPart extends CompartmentEditPart
+ implements ITextAwareEditPart {
+
+ /**
+ * @generated
+ */
+ public static final int VISUAL_ID = 5040;
+
+ /**
+ * @generated
+ */
+ private DirectEditManager manager;
+
+ /**
+ * @generated
+ */
+ private IParser parser;
+
+ /**
+ * @generated
+ */
+ private List<?> parserElements;
+
+ /**
+ * @generated
+ */
+ private String defaultText;
+
+ /**
+ * @generated
+ */
+ public SingleFeatureUnitNameType4EditPart(View view) {
+ super(view);
+ }
+
+ /**
+ * @generated
+ */
+ protected void createDefaultEditPolicies() {
+ super.createDefaultEditPolicies();
+ installEditPolicy(EditPolicy.SELECTION_FEEDBACK_ROLE,
+ new ComrelTextSelectionEditPolicy());
+ installEditPolicy(EditPolicy.DIRECT_EDIT_ROLE,
+ new LabelDirectEditPolicy());
+ installEditPolicy(EditPolicy.PRIMARY_DRAG_ROLE,
+ new CompositeRefactoringEditPart.NodeLabelDragPolicy());
+ }
+
+ /**
+ * @generated
+ */
+ protected String getLabelTextHelper(IFigure figure) {
+ if (figure instanceof WrappingLabel) {
+ return ((WrappingLabel) figure).getText();
+ } else {
+ return ((Label) figure).getText();
+ }
+ }
+
+ /**
+ * @generated
+ */
+ protected void setLabelTextHelper(IFigure figure, String text) {
+ if (figure instanceof WrappingLabel) {
+ ((WrappingLabel) figure).setText(text);
+ } else {
+ ((Label) figure).setText(text);
+ }
+ }
+
+ /**
+ * @generated
+ */
+ protected Image getLabelIconHelper(IFigure figure) {
+ if (figure instanceof WrappingLabel) {
+ return ((WrappingLabel) figure).getIcon();
+ } else {
+ return ((Label) figure).getIcon();
+ }
+ }
+
+ /**
+ * @generated
+ */
+ protected void setLabelIconHelper(IFigure figure, Image icon) {
+ if (figure instanceof WrappingLabel) {
+ ((WrappingLabel) figure).setIcon(icon);
+ } else {
+ ((Label) figure).setIcon(icon);
+ }
+ }
+
+ /**
+ * @generated
+ */
+ public void setLabel(WrappingLabel figure) {
+ unregisterVisuals();
+ setFigure(figure);
+ defaultText = getLabelTextHelper(figure);
+ registerVisuals();
+ refreshVisuals();
+ }
+
+ /**
+ * @generated
+ */
+ @SuppressWarnings("rawtypes")
+ protected List getModelChildren() {
+ return Collections.EMPTY_LIST;
+ }
+
+ /**
+ * @generated
+ */
+ public IGraphicalEditPart getChildBySemanticHint(String semanticHint) {
+ return null;
+ }
+
+ /**
+ * @generated
+ */
+ protected EObject getParserElement() {
+ return resolveSemanticElement();
+ }
+
+ /**
+ * @generated
+ */
+ protected Image getLabelIcon() {
+ return null;
+ }
+
+ /**
+ * @generated
+ */
+ protected String getLabelText() {
+ String text = null;
+ EObject parserElement = getParserElement();
+ if (parserElement != null && getParser() != null) {
+ text = getParser().getPrintString(
+ new EObjectAdapter(parserElement),
+ getParserOptions().intValue());
+ }
+ if (text == null || text.length() == 0) {
+ text = defaultText;
+ }
+ return text;
+ }
+
+ /**
+ * @generated
+ */
+ public void setLabelText(String text) {
+ setLabelTextHelper(getFigure(), text);
+ Object pdEditPolicy = getEditPolicy(EditPolicy.PRIMARY_DRAG_ROLE);
+ if (pdEditPolicy instanceof ComrelTextSelectionEditPolicy) {
+ ((ComrelTextSelectionEditPolicy) pdEditPolicy).refreshFeedback();
+ }
+ Object sfEditPolicy = getEditPolicy(EditPolicy.SELECTION_FEEDBACK_ROLE);
+ if (sfEditPolicy instanceof ComrelTextSelectionEditPolicy) {
+ ((ComrelTextSelectionEditPolicy) sfEditPolicy).refreshFeedback();
+ }
+ }
+
+ /**
+ * @generated
+ */
+ public String getEditText() {
+ if (getParserElement() == null || getParser() == null) {
+ return ""; //$NON-NLS-1$
+ }
+ return getParser().getEditString(
+ new EObjectAdapter(getParserElement()),
+ getParserOptions().intValue());
+ }
+
+ /**
+ * @generated
+ */
+ protected boolean isEditable() {
+ return getParser() != null;
+ }
+
+ /**
+ * @generated
+ */
+ public ICellEditorValidator getEditTextValidator() {
+ return new ICellEditorValidator() {
+
+ public String isValid(final Object value) {
+ if (value instanceof String) {
+ final EObject element = getParserElement();
+ final IParser parser = getParser();
+ try {
+ IParserEditStatus valid = (IParserEditStatus) getEditingDomain()
+ .runExclusive(
+ new RunnableWithResult.Impl<IParserEditStatus>() {
+
+ public void run() {
+ setResult(parser
+ .isValidEditString(
+ new EObjectAdapter(
+ element),
+ (String) value));
+ }
+ });
+ return valid.getCode() == ParserEditStatus.EDITABLE ? null
+ : valid.getMessage();
+ } catch (InterruptedException ie) {
+ ie.printStackTrace();
+ }
+ }
+
+ // shouldn't get here
+ return null;
+ }
+ };
+ }
+
+ /**
+ * @generated
+ */
+ public IContentAssistProcessor getCompletionProcessor() {
+ if (getParserElement() == null || getParser() == null) {
+ return null;
+ }
+ return getParser().getCompletionProcessor(
+ new EObjectAdapter(getParserElement()));
+ }
+
+ /**
+ * @generated
+ */
+ public ParserOptions getParserOptions() {
+ return ParserOptions.NONE;
+ }
+
+ /**
+ * @generated
+ */
+ public IParser getParser() {
+ if (parser == null) {
+ parser = ComrelParserProvider
+ .getParser(
+ ComrelElementTypes.SingleFeatureUnit_3055,
+ getParserElement(),
+ ComrelVisualIDRegistry
+ .getType(comrel.diagram.edit.parts.SingleFeatureUnitNameType4EditPart.VISUAL_ID));
+ }
+ return parser;
+ }
+
+ /**
+ * @generated
+ */
+ protected DirectEditManager getManager() {
+ if (manager == null) {
+ setManager(new TextDirectEditManager(this,
+ TextDirectEditManager.getTextCellEditorClass(this),
+ ComrelEditPartFactory.getTextCellEditorLocator(this)));
+ }
+ return manager;
+ }
+
+ /**
+ * @generated
+ */
+ protected void setManager(DirectEditManager manager) {
+ this.manager = manager;
+ }
+
+ /**
+ * @generated
+ */
+ protected void performDirectEdit() {
+ getManager().show();
+ }
+
+ /**
+ * @generated
+ */
+ protected void performDirectEdit(Point eventLocation) {
+ if (getManager().getClass() == TextDirectEditManager.class) {
+ ((TextDirectEditManager) getManager()).show(eventLocation
+ .getSWTPoint());
+ }
+ }
+
+ /**
+ * @generated
+ */
+ private void performDirectEdit(char initialCharacter) {
+ if (getManager() instanceof TextDirectEditManager) {
+ ((TextDirectEditManager) getManager()).show(initialCharacter);
+ } else {
+ performDirectEdit();
+ }
+ }
+
+ /**
+ * @generated
+ */
+ protected void performDirectEditRequest(Request request) {
+ final Request theRequest = request;
+ try {
+ getEditingDomain().runExclusive(new Runnable() {
+
+ public void run() {
+ if (isActive() && isEditable()) {
+ if (theRequest
+ .getExtendedData()
+ .get(RequestConstants.REQ_DIRECTEDIT_EXTENDEDDATA_INITIAL_CHAR) instanceof Character) {
+ Character initialChar = (Character) theRequest
+ .getExtendedData()
+ .get(RequestConstants.REQ_DIRECTEDIT_EXTENDEDDATA_INITIAL_CHAR);
+ performDirectEdit(initialChar.charValue());
+ } else if ((theRequest instanceof DirectEditRequest)
+ && (getEditText().equals(getLabelText()))) {
+ DirectEditRequest editRequest = (DirectEditRequest) theRequest;
+ performDirectEdit(editRequest.getLocation());
+ } else {
+ performDirectEdit();
+ }
+ }
+ }
+ });
+ } catch (InterruptedException e) {
+ e.printStackTrace();
+ }
+ }
+
+ /**
+ * @generated
+ */
+ protected void refreshVisuals() {
+ super.refreshVisuals();
+ refreshLabel();
+ refreshFont();
+ refreshFontColor();
+ refreshUnderline();
+ refreshStrikeThrough();
+ }
+
+ /**
+ * @generated
+ */
+ protected void refreshLabel() {
+ setLabelTextHelper(getFigure(), getLabelText());
+ setLabelIconHelper(getFigure(), getLabelIcon());
+ Object pdEditPolicy = getEditPolicy(EditPolicy.PRIMARY_DRAG_ROLE);
+ if (pdEditPolicy instanceof ComrelTextSelectionEditPolicy) {
+ ((ComrelTextSelectionEditPolicy) pdEditPolicy).refreshFeedback();
+ }
+ Object sfEditPolicy = getEditPolicy(EditPolicy.SELECTION_FEEDBACK_ROLE);
+ if (sfEditPolicy instanceof ComrelTextSelectionEditPolicy) {
+ ((ComrelTextSelectionEditPolicy) sfEditPolicy).refreshFeedback();
+ }
+ }
+
+ /**
+ * @generated
+ */
+ protected void refreshUnderline() {
+ FontStyle style = (FontStyle) getFontStyleOwnerView().getStyle(
+ NotationPackage.eINSTANCE.getFontStyle());
+ if (style != null && getFigure() instanceof WrappingLabel) {
+ ((WrappingLabel) getFigure()).setTextUnderline(style.isUnderline());
+ }
+ }
+
+ /**
+ * @generated
+ */
+ protected void refreshStrikeThrough() {
+ FontStyle style = (FontStyle) getFontStyleOwnerView().getStyle(
+ NotationPackage.eINSTANCE.getFontStyle());
+ if (style != null && getFigure() instanceof WrappingLabel) {
+ ((WrappingLabel) getFigure()).setTextStrikeThrough(style
+ .isStrikeThrough());
+ }
+ }
+
+ /**
+ * @generated
+ */
+ protected void refreshFont() {
+ FontStyle style = (FontStyle) getFontStyleOwnerView().getStyle(
+ NotationPackage.eINSTANCE.getFontStyle());
+ if (style != null) {
+ FontData fontData = new FontData(style.getFontName(),
+ style.getFontHeight(), (style.isBold() ? SWT.BOLD
+ : SWT.NORMAL)
+ | (style.isItalic() ? SWT.ITALIC : SWT.NORMAL));
+ setFont(fontData);
+ }
+ }
+
+ /**
+ * @generated
+ */
+ protected void setFontColor(Color color) {
+ getFigure().setForegroundColor(color);
+ }
+
+ /**
+ * @generated
+ */
+ protected void addSemanticListeners() {
+ if (getParser() instanceof ISemanticParser) {
+ EObject element = resolveSemanticElement();
+ parserElements = ((ISemanticParser) getParser())
+ .getSemanticElementsBeingParsed(element);
+ for (int i = 0; i < parserElements.size(); i++) {
+ addListenerFilter(
+ "SemanticModel" + i, this, (EObject) parserElements.get(i)); //$NON-NLS-1$
+ }
+ } else {
+ super.addSemanticListeners();
+ }
+ }
+
+ /**
+ * @generated
+ */
+ protected void removeSemanticListeners() {
+ if (parserElements != null) {
+ for (int i = 0; i < parserElements.size(); i++) {
+ removeListenerFilter("SemanticModel" + i); //$NON-NLS-1$
+ }
+ } else {
+ super.removeSemanticListeners();
+ }
+ }
+
+ /**
+ * @generated
+ */
+ protected AccessibleEditPart getAccessibleEditPart() {
+ if (accessibleEP == null) {
+ accessibleEP = new AccessibleGraphicalEditPart() {
+
+ public void getName(AccessibleEvent e) {
+ e.result = getLabelTextHelper(getFigure());
+ }
+ };
+ }
+ return accessibleEP;
+ }
+
+ /**
+ * @generated
+ */
+ private View getFontStyleOwnerView() {
+ return getPrimaryView();
+ }
+
+ /**
+ * @generated
+ */
+ protected void addNotationalListeners() {
+ super.addNotationalListeners();
+ addListenerFilter("PrimaryView", this, getPrimaryView()); //$NON-NLS-1$
+ }
+
+ /**
+ * @generated
+ */
+ protected void removeNotationalListeners() {
+ super.removeNotationalListeners();
+ removeListenerFilter("PrimaryView"); //$NON-NLS-1$
+ }
+
+ /**
+ * @generated
+ */
+ protected void handleNotificationEvent(Notification event) {
+ Object feature = event.getFeature();
+ if (NotationPackage.eINSTANCE.getFontStyle_FontColor().equals(feature)) {
+ Integer c = (Integer) event.getNewValue();
+ setFontColor(DiagramColorRegistry.getInstance().getColor(c));
+ } else if (NotationPackage.eINSTANCE.getFontStyle_Underline().equals(
+ feature)) {
+ refreshUnderline();
+ } else if (NotationPackage.eINSTANCE.getFontStyle_StrikeThrough()
+ .equals(feature)) {
+ refreshStrikeThrough();
+ } else if (NotationPackage.eINSTANCE.getFontStyle_FontHeight().equals(
+ feature)
+ || NotationPackage.eINSTANCE.getFontStyle_FontName().equals(
+ feature)
+ || NotationPackage.eINSTANCE.getFontStyle_Bold()
+ .equals(feature)
+ || NotationPackage.eINSTANCE.getFontStyle_Italic().equals(
+ feature)) {
+ refreshFont();
+ } else {
+ if (getParser() != null
+ && getParser().isAffectingEvent(event,
+ getParserOptions().intValue())) {
+ refreshLabel();
+ }
+ if (getParser() instanceof ISemanticParser) {
+ ISemanticParser modelParser = (ISemanticParser) getParser();
+ if (modelParser.areSemanticElementsAffected(null, event)) {
+ removeSemanticListeners();
+ if (resolveSemanticElement() != null) {
+ addSemanticListeners();
+ }
+ refreshLabel();
+ }
+ }
+ }
+ super.handleNotificationEvent(event);
+ }
+
+ /**
+ * @generated
+ */
+ protected IFigure createFigure() {
+ // Parent should assign one using setLabel() method
+ return null;
+ }
+
+}
diff --git a/org.eclipse.emf.refactor.comrel.diagram/src/comrel/diagram/edit/parts/SingleFeatureUnitNameType5EditPart.java b/org.eclipse.emf.refactor.comrel.diagram/src/comrel/diagram/edit/parts/SingleFeatureUnitNameType5EditPart.java
new file mode 100644
index 0000000..bbff7ec
--- /dev/null
+++ b/org.eclipse.emf.refactor.comrel.diagram/src/comrel/diagram/edit/parts/SingleFeatureUnitNameType5EditPart.java
@@ -0,0 +1,576 @@
+/*
+ *
+ */
+package comrel.diagram.edit.parts;
+
+import java.util.Collections;
+import java.util.List;
+
+import org.eclipse.draw2d.IFigure;
+import org.eclipse.draw2d.Label;
+import org.eclipse.draw2d.geometry.Point;
+import org.eclipse.emf.common.notify.Notification;
+import org.eclipse.emf.ecore.EObject;
+import org.eclipse.emf.transaction.RunnableWithResult;
+import org.eclipse.gef.AccessibleEditPart;
+import org.eclipse.gef.EditPolicy;
+import org.eclipse.gef.Request;
+import org.eclipse.gef.requests.DirectEditRequest;
+import org.eclipse.gef.tools.DirectEditManager;
+import org.eclipse.gmf.runtime.common.ui.services.parser.IParser;
+import org.eclipse.gmf.runtime.common.ui.services.parser.IParserEditStatus;
+import org.eclipse.gmf.runtime.common.ui.services.parser.ParserEditStatus;
+import org.eclipse.gmf.runtime.common.ui.services.parser.ParserOptions;
+import org.eclipse.gmf.runtime.diagram.ui.editparts.CompartmentEditPart;
+import org.eclipse.gmf.runtime.diagram.ui.editparts.IGraphicalEditPart;
+import org.eclipse.gmf.runtime.diagram.ui.editparts.ITextAwareEditPart;
+import org.eclipse.gmf.runtime.diagram.ui.editpolicies.LabelDirectEditPolicy;
+import org.eclipse.gmf.runtime.diagram.ui.l10n.DiagramColorRegistry;
+import org.eclipse.gmf.runtime.diagram.ui.requests.RequestConstants;
+import org.eclipse.gmf.runtime.diagram.ui.tools.TextDirectEditManager;
+import org.eclipse.gmf.runtime.draw2d.ui.figures.WrappingLabel;
+import org.eclipse.gmf.runtime.emf.core.util.EObjectAdapter;
+import org.eclipse.gmf.runtime.emf.ui.services.parser.ISemanticParser;
+import org.eclipse.gmf.runtime.notation.FontStyle;
+import org.eclipse.gmf.runtime.notation.NotationPackage;
+import org.eclipse.gmf.runtime.notation.View;
+import org.eclipse.jface.text.contentassist.IContentAssistProcessor;
+import org.eclipse.jface.viewers.ICellEditorValidator;
+import org.eclipse.swt.SWT;
+import org.eclipse.swt.accessibility.AccessibleEvent;
+import org.eclipse.swt.graphics.Color;
+import org.eclipse.swt.graphics.FontData;
+import org.eclipse.swt.graphics.Image;
+
+import comrel.diagram.edit.policies.ComrelTextSelectionEditPolicy;
+import comrel.diagram.part.ComrelVisualIDRegistry;
+import comrel.diagram.providers.ComrelElementTypes;
+import comrel.diagram.providers.ComrelParserProvider;
+
+/**
+ * @generated
+ */
+public class SingleFeatureUnitNameType5EditPart extends CompartmentEditPart
+ implements ITextAwareEditPart {
+
+ /**
+ * @generated
+ */
+ public static final int VISUAL_ID = 5044;
+
+ /**
+ * @generated
+ */
+ private DirectEditManager manager;
+
+ /**
+ * @generated
+ */
+ private IParser parser;
+
+ /**
+ * @generated
+ */
+ private List<?> parserElements;
+
+ /**
+ * @generated
+ */
+ private String defaultText;
+
+ /**
+ * @generated
+ */
+ public SingleFeatureUnitNameType5EditPart(View view) {
+ super(view);
+ }
+
+ /**
+ * @generated
+ */
+ protected void createDefaultEditPolicies() {
+ super.createDefaultEditPolicies();
+ installEditPolicy(EditPolicy.SELECTION_FEEDBACK_ROLE,
+ new ComrelTextSelectionEditPolicy());
+ installEditPolicy(EditPolicy.DIRECT_EDIT_ROLE,
+ new LabelDirectEditPolicy());
+ installEditPolicy(EditPolicy.PRIMARY_DRAG_ROLE,
+ new CompositeRefactoringEditPart.NodeLabelDragPolicy());
+ }
+
+ /**
+ * @generated
+ */
+ protected String getLabelTextHelper(IFigure figure) {
+ if (figure instanceof WrappingLabel) {
+ return ((WrappingLabel) figure).getText();
+ } else {
+ return ((Label) figure).getText();
+ }
+ }
+
+ /**
+ * @generated
+ */
+ protected void setLabelTextHelper(IFigure figure, String text) {
+ if (figure instanceof WrappingLabel) {
+ ((WrappingLabel) figure).setText(text);
+ } else {
+ ((Label) figure).setText(text);
+ }
+ }
+
+ /**
+ * @generated
+ */
+ protected Image getLabelIconHelper(IFigure figure) {
+ if (figure instanceof WrappingLabel) {
+ return ((WrappingLabel) figure).getIcon();
+ } else {
+ return ((Label) figure).getIcon();
+ }
+ }
+
+ /**
+ * @generated
+ */
+ protected void setLabelIconHelper(IFigure figure, Image icon) {
+ if (figure instanceof WrappingLabel) {
+ ((WrappingLabel) figure).setIcon(icon);
+ } else {
+ ((Label) figure).setIcon(icon);
+ }
+ }
+
+ /**
+ * @generated
+ */
+ public void setLabel(WrappingLabel figure) {
+ unregisterVisuals();
+ setFigure(figure);
+ defaultText = getLabelTextHelper(figure);
+ registerVisuals();
+ refreshVisuals();
+ }
+
+ /**
+ * @generated
+ */
+ @SuppressWarnings("rawtypes")
+ protected List getModelChildren() {
+ return Collections.EMPTY_LIST;
+ }
+
+ /**
+ * @generated
+ */
+ public IGraphicalEditPart getChildBySemanticHint(String semanticHint) {
+ return null;
+ }
+
+ /**
+ * @generated
+ */
+ protected EObject getParserElement() {
+ return resolveSemanticElement();
+ }
+
+ /**
+ * @generated
+ */
+ protected Image getLabelIcon() {
+ return null;
+ }
+
+ /**
+ * @generated
+ */
+ protected String getLabelText() {
+ String text = null;
+ EObject parserElement = getParserElement();
+ if (parserElement != null && getParser() != null) {
+ text = getParser().getPrintString(
+ new EObjectAdapter(parserElement),
+ getParserOptions().intValue());
+ }
+ if (text == null || text.length() == 0) {
+ text = defaultText;
+ }
+ return text;
+ }
+
+ /**
+ * @generated
+ */
+ public void setLabelText(String text) {
+ setLabelTextHelper(getFigure(), text);
+ Object pdEditPolicy = getEditPolicy(EditPolicy.PRIMARY_DRAG_ROLE);
+ if (pdEditPolicy instanceof ComrelTextSelectionEditPolicy) {
+ ((ComrelTextSelectionEditPolicy) pdEditPolicy).refreshFeedback();
+ }
+ Object sfEditPolicy = getEditPolicy(EditPolicy.SELECTION_FEEDBACK_ROLE);
+ if (sfEditPolicy instanceof ComrelTextSelectionEditPolicy) {
+ ((ComrelTextSelectionEditPolicy) sfEditPolicy).refreshFeedback();
+ }
+ }
+
+ /**
+ * @generated
+ */
+ public String getEditText() {
+ if (getParserElement() == null || getParser() == null) {
+ return ""; //$NON-NLS-1$
+ }
+ return getParser().getEditString(
+ new EObjectAdapter(getParserElement()),
+ getParserOptions().intValue());
+ }
+
+ /**
+ * @generated
+ */
+ protected boolean isEditable() {
+ return getParser() != null;
+ }
+
+ /**
+ * @generated
+ */
+ public ICellEditorValidator getEditTextValidator() {
+ return new ICellEditorValidator() {
+
+ public String isValid(final Object value) {
+ if (value instanceof String) {
+ final EObject element = getParserElement();
+ final IParser parser = getParser();
+ try {
+ IParserEditStatus valid = (IParserEditStatus) getEditingDomain()
+ .runExclusive(
+ new RunnableWithResult.Impl<IParserEditStatus>() {
+
+ public void run() {
+ setResult(parser
+ .isValidEditString(
+ new EObjectAdapter(
+ element),
+ (String) value));
+ }
+ });
+ return valid.getCode() == ParserEditStatus.EDITABLE ? null
+ : valid.getMessage();
+ } catch (InterruptedException ie) {
+ ie.printStackTrace();
+ }
+ }
+
+ // shouldn't get here
+ return null;
+ }
+ };
+ }
+
+ /**
+ * @generated
+ */
+ public IContentAssistProcessor getCompletionProcessor() {
+ if (getParserElement() == null || getParser() == null) {
+ return null;
+ }
+ return getParser().getCompletionProcessor(
+ new EObjectAdapter(getParserElement()));
+ }
+
+ /**
+ * @generated
+ */
+ public ParserOptions getParserOptions() {
+ return ParserOptions.NONE;
+ }
+
+ /**
+ * @generated
+ */
+ public IParser getParser() {
+ if (parser == null) {
+ parser = ComrelParserProvider
+ .getParser(
+ ComrelElementTypes.SingleFeatureUnit_3061,
+ getParserElement(),
+ ComrelVisualIDRegistry
+ .getType(comrel.diagram.edit.parts.SingleFeatureUnitNameType5EditPart.VISUAL_ID));
+ }
+ return parser;
+ }
+
+ /**
+ * @generated
+ */
+ protected DirectEditManager getManager() {
+ if (manager == null) {
+ setManager(new TextDirectEditManager(this,
+ TextDirectEditManager.getTextCellEditorClass(this),
+ ComrelEditPartFactory.getTextCellEditorLocator(this)));
+ }
+ return manager;
+ }
+
+ /**
+ * @generated
+ */
+ protected void setManager(DirectEditManager manager) {
+ this.manager = manager;
+ }
+
+ /**
+ * @generated
+ */
+ protected void performDirectEdit() {
+ getManager().show();
+ }
+
+ /**
+ * @generated
+ */
+ protected void performDirectEdit(Point eventLocation) {
+ if (getManager().getClass() == TextDirectEditManager.class) {
+ ((TextDirectEditManager) getManager()).show(eventLocation
+ .getSWTPoint());
+ }
+ }
+
+ /**
+ * @generated
+ */
+ private void performDirectEdit(char initialCharacter) {
+ if (getManager() instanceof TextDirectEditManager) {
+ ((TextDirectEditManager) getManager()).show(initialCharacter);
+ } else {
+ performDirectEdit();
+ }
+ }
+
+ /**
+ * @generated
+ */
+ protected void performDirectEditRequest(Request request) {
+ final Request theRequest = request;
+ try {
+ getEditingDomain().runExclusive(new Runnable() {
+
+ public void run() {
+ if (isActive() && isEditable()) {
+ if (theRequest
+ .getExtendedData()
+ .get(RequestConstants.REQ_DIRECTEDIT_EXTENDEDDATA_INITIAL_CHAR) instanceof Character) {
+ Character initialChar = (Character) theRequest
+ .getExtendedData()
+ .get(RequestConstants.REQ_DIRECTEDIT_EXTENDEDDATA_INITIAL_CHAR);
+ performDirectEdit(initialChar.charValue());
+ } else if ((theRequest instanceof DirectEditRequest)
+ && (getEditText().equals(getLabelText()))) {
+ DirectEditRequest editRequest = (DirectEditRequest) theRequest;
+ performDirectEdit(editRequest.getLocation());
+ } else {
+ performDirectEdit();
+ }
+ }
+ }
+ });
+ } catch (InterruptedException e) {
+ e.printStackTrace();
+ }
+ }
+
+ /**
+ * @generated
+ */
+ protected void refreshVisuals() {
+ super.refreshVisuals();
+ refreshLabel();
+ refreshFont();
+ refreshFontColor();
+ refreshUnderline();
+ refreshStrikeThrough();
+ }
+
+ /**
+ * @generated
+ */
+ protected void refreshLabel() {
+ setLabelTextHelper(getFigure(), getLabelText());
+ setLabelIconHelper(getFigure(), getLabelIcon());
+ Object pdEditPolicy = getEditPolicy(EditPolicy.PRIMARY_DRAG_ROLE);
+ if (pdEditPolicy instanceof ComrelTextSelectionEditPolicy) {
+ ((ComrelTextSelectionEditPolicy) pdEditPolicy).refreshFeedback();
+ }
+ Object sfEditPolicy = getEditPolicy(EditPolicy.SELECTION_FEEDBACK_ROLE);
+ if (sfEditPolicy instanceof ComrelTextSelectionEditPolicy) {
+ ((ComrelTextSelectionEditPolicy) sfEditPolicy).refreshFeedback();
+ }
+ }
+
+ /**
+ * @generated
+ */
+ protected void refreshUnderline() {
+ FontStyle style = (FontStyle) getFontStyleOwnerView().getStyle(
+ NotationPackage.eINSTANCE.getFontStyle());
+ if (style != null && getFigure() instanceof WrappingLabel) {
+ ((WrappingLabel) getFigure()).setTextUnderline(style.isUnderline());
+ }
+ }
+
+ /**
+ * @generated
+ */
+ protected void refreshStrikeThrough() {
+ FontStyle style = (FontStyle) getFontStyleOwnerView().getStyle(
+ NotationPackage.eINSTANCE.getFontStyle());
+ if (style != null && getFigure() instanceof WrappingLabel) {
+ ((WrappingLabel) getFigure()).setTextStrikeThrough(style
+ .isStrikeThrough());
+ }
+ }
+
+ /**
+ * @generated
+ */
+ protected void refreshFont() {
+ FontStyle style = (FontStyle) getFontStyleOwnerView().getStyle(
+ NotationPackage.eINSTANCE.getFontStyle());
+ if (style != null) {
+ FontData fontData = new FontData(style.getFontName(),
+ style.getFontHeight(), (style.isBold() ? SWT.BOLD
+ : SWT.NORMAL)
+ | (style.isItalic() ? SWT.ITALIC : SWT.NORMAL));
+ setFont(fontData);
+ }
+ }
+
+ /**
+ * @generated
+ */
+ protected void setFontColor(Color color) {
+ getFigure().setForegroundColor(color);
+ }
+
+ /**
+ * @generated
+ */
+ protected void addSemanticListeners() {
+ if (getParser() instanceof ISemanticParser) {
+ EObject element = resolveSemanticElement();
+ parserElements = ((ISemanticParser) getParser())
+ .getSemanticElementsBeingParsed(element);
+ for (int i = 0; i < parserElements.size(); i++) {
+ addListenerFilter(
+ "SemanticModel" + i, this, (EObject) parserElements.get(i)); //$NON-NLS-1$
+ }
+ } else {
+ super.addSemanticListeners();
+ }
+ }
+
+ /**
+ * @generated
+ */
+ protected void removeSemanticListeners() {
+ if (parserElements != null) {
+ for (int i = 0; i < parserElements.size(); i++) {
+ removeListenerFilter("SemanticModel" + i); //$NON-NLS-1$
+ }
+ } else {
+ super.removeSemanticListeners();
+ }
+ }
+
+ /**
+ * @generated
+ */
+ protected AccessibleEditPart getAccessibleEditPart() {
+ if (accessibleEP == null) {
+ accessibleEP = new AccessibleGraphicalEditPart() {
+
+ public void getName(AccessibleEvent e) {
+ e.result = getLabelTextHelper(getFigure());
+ }
+ };
+ }
+ return accessibleEP;
+ }
+
+ /**
+ * @generated
+ */
+ private View getFontStyleOwnerView() {
+ return getPrimaryView();
+ }
+
+ /**
+ * @generated
+ */
+ protected void addNotationalListeners() {
+ super.addNotationalListeners();
+ addListenerFilter("PrimaryView", this, getPrimaryView()); //$NON-NLS-1$
+ }
+
+ /**
+ * @generated
+ */
+ protected void removeNotationalListeners() {
+ super.removeNotationalListeners();
+ removeListenerFilter("PrimaryView"); //$NON-NLS-1$
+ }
+
+ /**
+ * @generated
+ */
+ protected void handleNotificationEvent(Notification event) {
+ Object feature = event.getFeature();
+ if (NotationPackage.eINSTANCE.getFontStyle_FontColor().equals(feature)) {
+ Integer c = (Integer) event.getNewValue();
+ setFontColor(DiagramColorRegistry.getInstance().getColor(c));
+ } else if (NotationPackage.eINSTANCE.getFontStyle_Underline().equals(
+ feature)) {
+ refreshUnderline();
+ } else if (NotationPackage.eINSTANCE.getFontStyle_StrikeThrough()
+ .equals(feature)) {
+ refreshStrikeThrough();
+ } else if (NotationPackage.eINSTANCE.getFontStyle_FontHeight().equals(
+ feature)
+ || NotationPackage.eINSTANCE.getFontStyle_FontName().equals(
+ feature)
+ || NotationPackage.eINSTANCE.getFontStyle_Bold()
+ .equals(feature)
+ || NotationPackage.eINSTANCE.getFontStyle_Italic().equals(
+ feature)) {
+ refreshFont();
+ } else {
+ if (getParser() != null
+ && getParser().isAffectingEvent(event,
+ getParserOptions().intValue())) {
+ refreshLabel();
+ }
+ if (getParser() instanceof ISemanticParser) {
+ ISemanticParser modelParser = (ISemanticParser) getParser();
+ if (modelParser.areSemanticElementsAffected(null, event)) {
+ removeSemanticListeners();
+ if (resolveSemanticElement() != null) {
+ addSemanticListeners();
+ }
+ refreshLabel();
+ }
+ }
+ }
+ super.handleNotificationEvent(event);
+ }
+
+ /**
+ * @generated
+ */
+ protected IFigure createFigure() {
+ // Parent should assign one using setLabel() method
+ return null;
+ }
+
+}
diff --git a/org.eclipse.emf.refactor.comrel.diagram/src/comrel/diagram/edit/parts/SingleFeatureUnitNameTypeEditPart.java b/org.eclipse.emf.refactor.comrel.diagram/src/comrel/diagram/edit/parts/SingleFeatureUnitNameTypeEditPart.java
new file mode 100644
index 0000000..a4a344e
--- /dev/null
+++ b/org.eclipse.emf.refactor.comrel.diagram/src/comrel/diagram/edit/parts/SingleFeatureUnitNameTypeEditPart.java
@@ -0,0 +1,576 @@
+/*
+ *
+ */
+package comrel.diagram.edit.parts;
+
+import java.util.Collections;
+import java.util.List;
+
+import org.eclipse.draw2d.IFigure;
+import org.eclipse.draw2d.Label;
+import org.eclipse.draw2d.geometry.Point;
+import org.eclipse.emf.common.notify.Notification;
+import org.eclipse.emf.ecore.EObject;
+import org.eclipse.emf.transaction.RunnableWithResult;
+import org.eclipse.gef.AccessibleEditPart;
+import org.eclipse.gef.EditPolicy;
+import org.eclipse.gef.Request;
+import org.eclipse.gef.requests.DirectEditRequest;
+import org.eclipse.gef.tools.DirectEditManager;
+import org.eclipse.gmf.runtime.common.ui.services.parser.IParser;
+import org.eclipse.gmf.runtime.common.ui.services.parser.IParserEditStatus;
+import org.eclipse.gmf.runtime.common.ui.services.parser.ParserEditStatus;
+import org.eclipse.gmf.runtime.common.ui.services.parser.ParserOptions;
+import org.eclipse.gmf.runtime.diagram.ui.editparts.CompartmentEditPart;
+import org.eclipse.gmf.runtime.diagram.ui.editparts.IGraphicalEditPart;
+import org.eclipse.gmf.runtime.diagram.ui.editparts.ITextAwareEditPart;
+import org.eclipse.gmf.runtime.diagram.ui.editpolicies.LabelDirectEditPolicy;
+import org.eclipse.gmf.runtime.diagram.ui.l10n.DiagramColorRegistry;
+import org.eclipse.gmf.runtime.diagram.ui.requests.RequestConstants;
+import org.eclipse.gmf.runtime.diagram.ui.tools.TextDirectEditManager;
+import org.eclipse.gmf.runtime.draw2d.ui.figures.WrappingLabel;
+import org.eclipse.gmf.runtime.emf.core.util.EObjectAdapter;
+import org.eclipse.gmf.runtime.emf.ui.services.parser.ISemanticParser;
+import org.eclipse.gmf.runtime.notation.FontStyle;
+import org.eclipse.gmf.runtime.notation.NotationPackage;
+import org.eclipse.gmf.runtime.notation.View;
+import org.eclipse.jface.text.contentassist.IContentAssistProcessor;
+import org.eclipse.jface.viewers.ICellEditorValidator;
+import org.eclipse.swt.SWT;
+import org.eclipse.swt.accessibility.AccessibleEvent;
+import org.eclipse.swt.graphics.Color;
+import org.eclipse.swt.graphics.FontData;
+import org.eclipse.swt.graphics.Image;
+
+import comrel.diagram.edit.policies.ComrelTextSelectionEditPolicy;
+import comrel.diagram.part.ComrelVisualIDRegistry;
+import comrel.diagram.providers.ComrelElementTypes;
+import comrel.diagram.providers.ComrelParserProvider;
+
+/**
+ * @generated
+ */
+public class SingleFeatureUnitNameTypeEditPart extends CompartmentEditPart
+ implements ITextAwareEditPart {
+
+ /**
+ * @generated
+ */
+ public static final int VISUAL_ID = 5009;
+
+ /**
+ * @generated
+ */
+ private DirectEditManager manager;
+
+ /**
+ * @generated
+ */
+ private IParser parser;
+
+ /**
+ * @generated
+ */
+ private List<?> parserElements;
+
+ /**
+ * @generated
+ */
+ private String defaultText;
+
+ /**
+ * @generated
+ */
+ public SingleFeatureUnitNameTypeEditPart(View view) {
+ super(view);
+ }
+
+ /**
+ * @generated
+ */
+ protected void createDefaultEditPolicies() {
+ super.createDefaultEditPolicies();
+ installEditPolicy(EditPolicy.SELECTION_FEEDBACK_ROLE,
+ new ComrelTextSelectionEditPolicy());
+ installEditPolicy(EditPolicy.DIRECT_EDIT_ROLE,
+ new LabelDirectEditPolicy());
+ installEditPolicy(EditPolicy.PRIMARY_DRAG_ROLE,
+ new CompositeRefactoringEditPart.NodeLabelDragPolicy());
+ }
+
+ /**
+ * @generated
+ */
+ protected String getLabelTextHelper(IFigure figure) {
+ if (figure instanceof WrappingLabel) {
+ return ((WrappingLabel) figure).getText();
+ } else {
+ return ((Label) figure).getText();
+ }
+ }
+
+ /**
+ * @generated
+ */
+ protected void setLabelTextHelper(IFigure figure, String text) {
+ if (figure instanceof WrappingLabel) {
+ ((WrappingLabel) figure).setText(text);
+ } else {
+ ((Label) figure).setText(text);
+ }
+ }
+
+ /**
+ * @generated
+ */
+ protected Image getLabelIconHelper(IFigure figure) {
+ if (figure instanceof WrappingLabel) {
+ return ((WrappingLabel) figure).getIcon();
+ } else {
+ return ((Label) figure).getIcon();
+ }
+ }
+
+ /**
+ * @generated
+ */
+ protected void setLabelIconHelper(IFigure figure, Image icon) {
+ if (figure instanceof WrappingLabel) {
+ ((WrappingLabel) figure).setIcon(icon);
+ } else {
+ ((Label) figure).setIcon(icon);
+ }
+ }
+
+ /**
+ * @generated
+ */
+ public void setLabel(WrappingLabel figure) {
+ unregisterVisuals();
+ setFigure(figure);
+ defaultText = getLabelTextHelper(figure);
+ registerVisuals();
+ refreshVisuals();
+ }
+
+ /**
+ * @generated
+ */
+ @SuppressWarnings("rawtypes")
+ protected List getModelChildren() {
+ return Collections.EMPTY_LIST;
+ }
+
+ /**
+ * @generated
+ */
+ public IGraphicalEditPart getChildBySemanticHint(String semanticHint) {
+ return null;
+ }
+
+ /**
+ * @generated
+ */
+ protected EObject getParserElement() {
+ return resolveSemanticElement();
+ }
+
+ /**
+ * @generated
+ */
+ protected Image getLabelIcon() {
+ return null;
+ }
+
+ /**
+ * @generated
+ */
+ protected String getLabelText() {
+ String text = null;
+ EObject parserElement = getParserElement();
+ if (parserElement != null && getParser() != null) {
+ text = getParser().getPrintString(
+ new EObjectAdapter(parserElement),
+ getParserOptions().intValue());
+ }
+ if (text == null || text.length() == 0) {
+ text = defaultText;
+ }
+ return text;
+ }
+
+ /**
+ * @generated
+ */
+ public void setLabelText(String text) {
+ setLabelTextHelper(getFigure(), text);
+ Object pdEditPolicy = getEditPolicy(EditPolicy.PRIMARY_DRAG_ROLE);
+ if (pdEditPolicy instanceof ComrelTextSelectionEditPolicy) {
+ ((ComrelTextSelectionEditPolicy) pdEditPolicy).refreshFeedback();
+ }
+ Object sfEditPolicy = getEditPolicy(EditPolicy.SELECTION_FEEDBACK_ROLE);
+ if (sfEditPolicy instanceof ComrelTextSelectionEditPolicy) {
+ ((ComrelTextSelectionEditPolicy) sfEditPolicy).refreshFeedback();
+ }
+ }
+
+ /**
+ * @generated
+ */
+ public String getEditText() {
+ if (getParserElement() == null || getParser() == null) {
+ return ""; //$NON-NLS-1$
+ }
+ return getParser().getEditString(
+ new EObjectAdapter(getParserElement()),
+ getParserOptions().intValue());
+ }
+
+ /**
+ * @generated
+ */
+ protected boolean isEditable() {
+ return getParser() != null;
+ }
+
+ /**
+ * @generated
+ */
+ public ICellEditorValidator getEditTextValidator() {
+ return new ICellEditorValidator() {
+
+ public String isValid(final Object value) {
+ if (value instanceof String) {
+ final EObject element = getParserElement();
+ final IParser parser = getParser();
+ try {
+ IParserEditStatus valid = (IParserEditStatus) getEditingDomain()
+ .runExclusive(
+ new RunnableWithResult.Impl<IParserEditStatus>() {
+
+ public void run() {
+ setResult(parser
+ .isValidEditString(
+ new EObjectAdapter(
+ element),
+ (String) value));
+ }
+ });
+ return valid.getCode() == ParserEditStatus.EDITABLE ? null
+ : valid.getMessage();
+ } catch (InterruptedException ie) {
+ ie.printStackTrace();
+ }
+ }
+
+ // shouldn't get here
+ return null;
+ }
+ };
+ }
+
+ /**
+ * @generated
+ */
+ public IContentAssistProcessor getCompletionProcessor() {
+ if (getParserElement() == null || getParser() == null) {
+ return null;
+ }
+ return getParser().getCompletionProcessor(
+ new EObjectAdapter(getParserElement()));
+ }
+
+ /**
+ * @generated
+ */
+ public ParserOptions getParserOptions() {
+ return ParserOptions.NONE;
+ }
+
+ /**
+ * @generated
+ */
+ public IParser getParser() {
+ if (parser == null) {
+ parser = ComrelParserProvider
+ .getParser(
+ ComrelElementTypes.SingleFeatureUnit_3008,
+ getParserElement(),
+ ComrelVisualIDRegistry
+ .getType(comrel.diagram.edit.parts.SingleFeatureUnitNameTypeEditPart.VISUAL_ID));
+ }
+ return parser;
+ }
+
+ /**
+ * @generated
+ */
+ protected DirectEditManager getManager() {
+ if (manager == null) {
+ setManager(new TextDirectEditManager(this,
+ TextDirectEditManager.getTextCellEditorClass(this),
+ ComrelEditPartFactory.getTextCellEditorLocator(this)));
+ }
+ return manager;
+ }
+
+ /**
+ * @generated
+ */
+ protected void setManager(DirectEditManager manager) {
+ this.manager = manager;
+ }
+
+ /**
+ * @generated
+ */
+ protected void performDirectEdit() {
+ getManager().show();
+ }
+
+ /**
+ * @generated
+ */
+ protected void performDirectEdit(Point eventLocation) {
+ if (getManager().getClass() == TextDirectEditManager.class) {
+ ((TextDirectEditManager) getManager()).show(eventLocation
+ .getSWTPoint());
+ }
+ }
+
+ /**
+ * @generated
+ */
+ private void performDirectEdit(char initialCharacter) {
+ if (getManager() instanceof TextDirectEditManager) {
+ ((TextDirectEditManager) getManager()).show(initialCharacter);
+ } else {
+ performDirectEdit();
+ }
+ }
+
+ /**
+ * @generated
+ */
+ protected void performDirectEditRequest(Request request) {
+ final Request theRequest = request;
+ try {
+ getEditingDomain().runExclusive(new Runnable() {
+
+ public void run() {
+ if (isActive() && isEditable()) {
+ if (theRequest
+ .getExtendedData()
+ .get(RequestConstants.REQ_DIRECTEDIT_EXTENDEDDATA_INITIAL_CHAR) instanceof Character) {
+ Character initialChar = (Character) theRequest
+ .getExtendedData()
+ .get(RequestConstants.REQ_DIRECTEDIT_EXTENDEDDATA_INITIAL_CHAR);
+ performDirectEdit(initialChar.charValue());
+ } else if ((theRequest instanceof DirectEditRequest)
+ && (getEditText().equals(getLabelText()))) {
+ DirectEditRequest editRequest = (DirectEditRequest) theRequest;
+ performDirectEdit(editRequest.getLocation());
+ } else {
+ performDirectEdit();
+ }
+ }
+ }
+ });
+ } catch (InterruptedException e) {
+ e.printStackTrace();
+ }
+ }
+
+ /**
+ * @generated
+ */
+ protected void refreshVisuals() {
+ super.refreshVisuals();
+ refreshLabel();
+ refreshFont();
+ refreshFontColor();
+ refreshUnderline();
+ refreshStrikeThrough();
+ }
+
+ /**
+ * @generated
+ */
+ protected void refreshLabel() {
+ setLabelTextHelper(getFigure(), getLabelText());
+ setLabelIconHelper(getFigure(), getLabelIcon());
+ Object pdEditPolicy = getEditPolicy(EditPolicy.PRIMARY_DRAG_ROLE);
+ if (pdEditPolicy instanceof ComrelTextSelectionEditPolicy) {
+ ((ComrelTextSelectionEditPolicy) pdEditPolicy).refreshFeedback();
+ }
+ Object sfEditPolicy = getEditPolicy(EditPolicy.SELECTION_FEEDBACK_ROLE);
+ if (sfEditPolicy instanceof ComrelTextSelectionEditPolicy) {
+ ((ComrelTextSelectionEditPolicy) sfEditPolicy).refreshFeedback();
+ }
+ }
+
+ /**
+ * @generated
+ */
+ protected void refreshUnderline() {
+ FontStyle style = (FontStyle) getFontStyleOwnerView().getStyle(
+ NotationPackage.eINSTANCE.getFontStyle());
+ if (style != null && getFigure() instanceof WrappingLabel) {
+ ((WrappingLabel) getFigure()).setTextUnderline(style.isUnderline());
+ }
+ }
+
+ /**
+ * @generated
+ */
+ protected void refreshStrikeThrough() {
+ FontStyle style = (FontStyle) getFontStyleOwnerView().getStyle(
+ NotationPackage.eINSTANCE.getFontStyle());
+ if (style != null && getFigure() instanceof WrappingLabel) {
+ ((WrappingLabel) getFigure()).setTextStrikeThrough(style
+ .isStrikeThrough());
+ }
+ }
+
+ /**
+ * @generated
+ */
+ protected void refreshFont() {
+ FontStyle style = (FontStyle) getFontStyleOwnerView().getStyle(
+ NotationPackage.eINSTANCE.getFontStyle());
+ if (style != null) {
+ FontData fontData = new FontData(style.getFontName(),
+ style.getFontHeight(), (style.isBold() ? SWT.BOLD
+ : SWT.NORMAL)
+ | (style.isItalic() ? SWT.ITALIC : SWT.NORMAL));
+ setFont(fontData);
+ }
+ }
+
+ /**
+ * @generated
+ */
+ protected void setFontColor(Color color) {
+ getFigure().setForegroundColor(color);
+ }
+
+ /**
+ * @generated
+ */
+ protected void addSemanticListeners() {
+ if (getParser() instanceof ISemanticParser) {
+ EObject element = resolveSemanticElement();
+ parserElements = ((ISemanticParser) getParser())
+ .getSemanticElementsBeingParsed(element);
+ for (int i = 0; i < parserElements.size(); i++) {
+ addListenerFilter(
+ "SemanticModel" + i, this, (EObject) parserElements.get(i)); //$NON-NLS-1$
+ }
+ } else {
+ super.addSemanticListeners();
+ }
+ }
+
+ /**
+ * @generated
+ */
+ protected void removeSemanticListeners() {
+ if (parserElements != null) {
+ for (int i = 0; i < parserElements.size(); i++) {
+ removeListenerFilter("SemanticModel" + i); //$NON-NLS-1$
+ }
+ } else {
+ super.removeSemanticListeners();
+ }
+ }
+
+ /**
+ * @generated
+ */
+ protected AccessibleEditPart getAccessibleEditPart() {
+ if (accessibleEP == null) {
+ accessibleEP = new AccessibleGraphicalEditPart() {
+
+ public void getName(AccessibleEvent e) {
+ e.result = getLabelTextHelper(getFigure());
+ }
+ };
+ }
+ return accessibleEP;
+ }
+
+ /**
+ * @generated
+ */
+ private View getFontStyleOwnerView() {
+ return getPrimaryView();
+ }
+
+ /**
+ * @generated
+ */
+ protected void addNotationalListeners() {
+ super.addNotationalListeners();
+ addListenerFilter("PrimaryView", this, getPrimaryView()); //$NON-NLS-1$
+ }
+
+ /**
+ * @generated
+ */
+ protected void removeNotationalListeners() {
+ super.removeNotationalListeners();
+ removeListenerFilter("PrimaryView"); //$NON-NLS-1$
+ }
+
+ /**
+ * @generated
+ */
+ protected void handleNotificationEvent(Notification event) {
+ Object feature = event.getFeature();
+ if (NotationPackage.eINSTANCE.getFontStyle_FontColor().equals(feature)) {
+ Integer c = (Integer) event.getNewValue();
+ setFontColor(DiagramColorRegistry.getInstance().getColor(c));
+ } else if (NotationPackage.eINSTANCE.getFontStyle_Underline().equals(
+ feature)) {
+ refreshUnderline();
+ } else if (NotationPackage.eINSTANCE.getFontStyle_StrikeThrough()
+ .equals(feature)) {
+ refreshStrikeThrough();
+ } else if (NotationPackage.eINSTANCE.getFontStyle_FontHeight().equals(
+ feature)
+ || NotationPackage.eINSTANCE.getFontStyle_FontName().equals(
+ feature)
+ || NotationPackage.eINSTANCE.getFontStyle_Bold()
+ .equals(feature)
+ || NotationPackage.eINSTANCE.getFontStyle_Italic().equals(
+ feature)) {
+ refreshFont();
+ } else {
+ if (getParser() != null
+ && getParser().isAffectingEvent(event,
+ getParserOptions().intValue())) {
+ refreshLabel();
+ }
+ if (getParser() instanceof ISemanticParser) {
+ ISemanticParser modelParser = (ISemanticParser) getParser();
+ if (modelParser.areSemanticElementsAffected(null, event)) {
+ removeSemanticListeners();
+ if (resolveSemanticElement() != null) {
+ addSemanticListeners();
+ }
+ refreshLabel();
+ }
+ }
+ }
+ super.handleNotificationEvent(event);
+ }
+
+ /**
+ * @generated
+ */
+ protected IFigure createFigure() {
+ // Parent should assign one using setLabel() method
+ return null;
+ }
+
+}
diff --git a/org.eclipse.emf.refactor.comrel.diagram/src/comrel/diagram/edit/parts/SingleFilterUnit2EditPart.java b/org.eclipse.emf.refactor.comrel.diagram/src/comrel/diagram/edit/parts/SingleFilterUnit2EditPart.java
new file mode 100644
index 0000000..bd23d69
--- /dev/null
+++ b/org.eclipse.emf.refactor.comrel.diagram/src/comrel/diagram/edit/parts/SingleFilterUnit2EditPart.java
@@ -0,0 +1,350 @@
+/*
+ *
+ */
+package comrel.diagram.edit.parts;
+
+import org.eclipse.draw2d.IFigure;
+import org.eclipse.draw2d.MarginBorder;
+import org.eclipse.draw2d.PositionConstants;
+import org.eclipse.draw2d.RoundedRectangle;
+import org.eclipse.draw2d.Shape;
+import org.eclipse.draw2d.StackLayout;
+import org.eclipse.draw2d.geometry.Dimension;
+import org.eclipse.gef.EditPart;
+import org.eclipse.gef.EditPolicy;
+import org.eclipse.gef.Request;
+import org.eclipse.gef.commands.Command;
+import org.eclipse.gef.editpolicies.LayoutEditPolicy;
+import org.eclipse.gef.editpolicies.NonResizableEditPolicy;
+import org.eclipse.gef.requests.CreateRequest;
+import org.eclipse.gmf.runtime.diagram.ui.editparts.AbstractBorderedShapeEditPart;
+import org.eclipse.gmf.runtime.diagram.ui.editparts.IBorderItemEditPart;
+import org.eclipse.gmf.runtime.diagram.ui.editparts.IGraphicalEditPart;
+import org.eclipse.gmf.runtime.diagram.ui.editpolicies.BorderItemSelectionEditPolicy;
+import org.eclipse.gmf.runtime.diagram.ui.editpolicies.CreationEditPolicy;
+import org.eclipse.gmf.runtime.diagram.ui.editpolicies.DragDropEditPolicy;
+import org.eclipse.gmf.runtime.diagram.ui.editpolicies.EditPolicyRoles;
+import org.eclipse.gmf.runtime.diagram.ui.figures.BorderItemLocator;
+import org.eclipse.gmf.runtime.draw2d.ui.figures.ConstrainedToolbarLayout;
+import org.eclipse.gmf.runtime.draw2d.ui.figures.WrappingLabel;
+import org.eclipse.gmf.runtime.gef.ui.figures.DefaultSizeNodeFigure;
+import org.eclipse.gmf.runtime.gef.ui.figures.NodeFigure;
+import org.eclipse.gmf.runtime.notation.View;
+import org.eclipse.swt.graphics.Color;
+
+import comrel.diagram.edit.policies.SingleFilterUnit2CanonicalEditPolicy;
+import comrel.diagram.edit.policies.SingleFilterUnit2ItemSemanticEditPolicy;
+import comrel.diagram.part.ComrelVisualIDRegistry;
+
+/**
+ * @generated
+ */
+public class SingleFilterUnit2EditPart extends AbstractBorderedShapeEditPart {
+
+ /**
+ * @generated
+ */
+ public static final int VISUAL_ID = 3040;
+
+ /**
+ * @generated
+ */
+ protected IFigure contentPane;
+
+ /**
+ * @generated
+ */
+ protected IFigure primaryShape;
+
+ /**
+ * @generated
+ */
+ public SingleFilterUnit2EditPart(View view) {
+ super(view);
+ }
+
+ /**
+ * @generated
+ */
+ protected void createDefaultEditPolicies() {
+ installEditPolicy(EditPolicyRoles.CREATION_ROLE,
+ new CreationEditPolicy());
+ super.createDefaultEditPolicies();
+ installEditPolicy(EditPolicyRoles.SEMANTIC_ROLE,
+ new SingleFilterUnit2ItemSemanticEditPolicy());
+ installEditPolicy(EditPolicyRoles.DRAG_DROP_ROLE,
+ new DragDropEditPolicy());
+ installEditPolicy(EditPolicyRoles.CANONICAL_ROLE,
+ new SingleFilterUnit2CanonicalEditPolicy());
+ installEditPolicy(EditPolicy.LAYOUT_ROLE, createLayoutEditPolicy());
+ // XXX need an SCR to runtime to have another abstract superclass that would let children add reasonable editpolicies
+ // removeEditPolicy(org.eclipse.gmf.runtime.diagram.ui.editpolicies.EditPolicyRoles.CONNECTION_HANDLES_ROLE);
+ }
+
+ /**
+ * @generated
+ */
+ protected LayoutEditPolicy createLayoutEditPolicy() {
+ org.eclipse.gmf.runtime.diagram.ui.editpolicies.LayoutEditPolicy lep = new org.eclipse.gmf.runtime.diagram.ui.editpolicies.LayoutEditPolicy() {
+
+ protected EditPolicy createChildEditPolicy(EditPart child) {
+ View childView = (View) child.getModel();
+ switch (ComrelVisualIDRegistry.getVisualID(childView)) {
+ case MultiInputPort5EditPart.VISUAL_ID:
+ case SingleOutputPort2EditPart.VISUAL_ID:
+ return new BorderItemSelectionEditPolicy();
+ }
+ EditPolicy result = child
+ .getEditPolicy(EditPolicy.PRIMARY_DRAG_ROLE);
+ if (result == null) {
+ result = new NonResizableEditPolicy();
+ }
+ return result;
+ }
+
+ protected Command getMoveChildrenCommand(Request request) {
+ return null;
+ }
+
+ protected Command getCreateCommand(CreateRequest request) {
+ return null;
+ }
+ };
+ return lep;
+ }
+
+ /**
+ * @generated
+ */
+ protected IFigure createNodeShape() {
+ return primaryShape = new SingleFilterUnitFigure();
+ }
+
+ /**
+ * @generated
+ */
+ public SingleFilterUnitFigure getPrimaryShape() {
+ return (SingleFilterUnitFigure) primaryShape;
+ }
+
+ /**
+ * @generated NOT
+ */
+ protected boolean addFixedChild(EditPart childEditPart) {
+ if (childEditPart instanceof SingleFilterUnitNameType2EditPart) {
+ ((SingleFilterUnitNameType2EditPart) childEditPart)
+ .setLabel(getPrimaryShape()
+ .getFigureSingleFilterUnitLabelFigure());
+ return true;
+ }
+ if (childEditPart instanceof MultiInputPort5EditPart) {
+ BorderItemLocator locator = new BorderItemLocator(getMainFigure(),
+ PositionConstants.NORTH);
+ locator.setCurrentSideOfParent(PositionConstants.NORTH); // Position des Ports
+ locator.setPreferredSideOfParent(PositionConstants.NORTH); // Position des Ports
+ getBorderedFigure().getBorderItemContainer().add(
+ ((MultiInputPort5EditPart) childEditPart).getFigure(),
+ locator);
+ return true;
+ }
+ if (childEditPart instanceof SingleOutputPort2EditPart) {
+ BorderItemLocator locator = new BorderItemLocator(getMainFigure(),
+ PositionConstants.SOUTH);
+ locator.setCurrentSideOfParent(PositionConstants.SOUTH); // Position des Ports
+ locator.setPreferredSideOfParent(PositionConstants.SOUTH); // Position des Ports
+ getBorderedFigure().getBorderItemContainer().add(
+ ((SingleOutputPort2EditPart) childEditPart).getFigure(),
+ locator);
+ return true;
+ }
+ return false;
+ }
+
+ /**
+ * @generated NOT
+ */
+ protected boolean removeFixedChild(EditPart childEditPart) {
+ if (childEditPart instanceof SingleFilterUnitNameType2EditPart) {
+ return true;
+ }
+ if (childEditPart instanceof MultiInputPort5EditPart) {
+ // getBorderedFigure().getBorderItemContainer().remove(
+ // ((MultiInputPort5EditPart) childEditPart).getFigure());
+ return true;
+ }
+ if (childEditPart instanceof SingleOutputPort2EditPart) {
+ // getBorderedFigure().getBorderItemContainer().remove(
+ // ((SingleOutputPort2EditPart) childEditPart).getFigure());
+ return true;
+ }
+ return false;
+ }
+
+ /**
+ * @generated
+ */
+ protected void addChildVisual(EditPart childEditPart, int index) {
+ if (addFixedChild(childEditPart)) {
+ return;
+ }
+ super.addChildVisual(childEditPart, -1);
+ }
+
+ /**
+ * @generated
+ */
+ protected void removeChildVisual(EditPart childEditPart) {
+ if (removeFixedChild(childEditPart)) {
+ return;
+ }
+ super.removeChildVisual(childEditPart);
+ }
+
+ /**
+ * @generated
+ */
+ protected IFigure getContentPaneFor(IGraphicalEditPart editPart) {
+ if (editPart instanceof IBorderItemEditPart) {
+ return getBorderedFigure().getBorderItemContainer();
+ }
+ return getContentPane();
+ }
+
+ /**
+ * @generated
+ */
+ protected NodeFigure createNodePlate() {
+ DefaultSizeNodeFigure result = new DefaultSizeNodeFigure(40, 40);
+ return result;
+ }
+
+ /**
+ * Creates figure for this edit part.
+ *
+ * Body of this method does not depend on settings in generation model
+ * so you may safely remove <i>generated</i> tag and modify it.
+ *
+ * @generated
+ */
+ protected NodeFigure createMainFigure() {
+ NodeFigure figure = createNodePlate();
+ figure.setLayoutManager(new StackLayout());
+ IFigure shape = createNodeShape();
+ figure.add(shape);
+ contentPane = setupContentPane(shape);
+ return figure;
+ }
+
+ /**
+ * Default implementation treats passed figure as content pane.
+ * Respects layout one may have set for generated figure.
+ * @param nodeShape instance of generated figure class
+ * @generated
+ */
+ protected IFigure setupContentPane(IFigure nodeShape) {
+ if (nodeShape.getLayoutManager() == null) {
+ ConstrainedToolbarLayout layout = new ConstrainedToolbarLayout();
+ layout.setSpacing(5);
+ nodeShape.setLayoutManager(layout);
+ }
+ return nodeShape; // use nodeShape itself as contentPane
+ }
+
+ /**
+ * @generated
+ */
+ public IFigure getContentPane() {
+ if (contentPane != null) {
+ return contentPane;
+ }
+ return super.getContentPane();
+ }
+
+ /**
+ * @generated
+ */
+ protected void setForegroundColor(Color color) {
+ if (primaryShape != null) {
+ primaryShape.setForegroundColor(color);
+ }
+ }
+
+ /**
+ * @generated
+ */
+ protected void setBackgroundColor(Color color) {
+ if (primaryShape != null) {
+ primaryShape.setBackgroundColor(color);
+ }
+ }
+
+ /**
+ * @generated
+ */
+ protected void setLineWidth(int width) {
+ if (primaryShape instanceof Shape) {
+ ((Shape) primaryShape).setLineWidth(width);
+ }
+ }
+
+ /**
+ * @generated
+ */
+ protected void setLineType(int style) {
+ if (primaryShape instanceof Shape) {
+ ((Shape) primaryShape).setLineStyle(style);
+ }
+ }
+
+ /**
+ * @generated
+ */
+ public EditPart getPrimaryChildEditPart() {
+ return getChildBySemanticHint(ComrelVisualIDRegistry
+ .getType(SingleFilterUnitNameType2EditPart.VISUAL_ID));
+ }
+
+ /**
+ * @generated
+ */
+ public class SingleFilterUnitFigure extends RoundedRectangle {
+
+ /**
+ * @generated
+ */
+ private WrappingLabel fFigureSingleFilterUnitLabelFigure;
+
+ /**
+ * @generated
+ */
+ public SingleFilterUnitFigure() {
+ this.setCornerDimensions(new Dimension(getMapMode().DPtoLP(8),
+ getMapMode().DPtoLP(8)));
+ this.setBorder(new MarginBorder(getMapMode().DPtoLP(5),
+ getMapMode().DPtoLP(5), getMapMode().DPtoLP(5),
+ getMapMode().DPtoLP(5)));
+ createContents();
+ }
+
+ /**
+ * @generated
+ */
+ private void createContents() {
+
+ fFigureSingleFilterUnitLabelFigure = new WrappingLabel();
+ fFigureSingleFilterUnitLabelFigure.setText("SingleFilterUnit");
+
+ this.add(fFigureSingleFilterUnitLabelFigure);
+
+ }
+
+ /**
+ * @generated
+ */
+ public WrappingLabel getFigureSingleFilterUnitLabelFigure() {
+ return fFigureSingleFilterUnitLabelFigure;
+ }
+
+ }
+
+}
diff --git a/org.eclipse.emf.refactor.comrel.diagram/src/comrel/diagram/edit/parts/SingleFilterUnit3EditPart.java b/org.eclipse.emf.refactor.comrel.diagram/src/comrel/diagram/edit/parts/SingleFilterUnit3EditPart.java
new file mode 100644
index 0000000..2c5aaa3
--- /dev/null
+++ b/org.eclipse.emf.refactor.comrel.diagram/src/comrel/diagram/edit/parts/SingleFilterUnit3EditPart.java
@@ -0,0 +1,350 @@
+/*
+ *
+ */
+package comrel.diagram.edit.parts;
+
+import org.eclipse.draw2d.IFigure;
+import org.eclipse.draw2d.MarginBorder;
+import org.eclipse.draw2d.PositionConstants;
+import org.eclipse.draw2d.RoundedRectangle;
+import org.eclipse.draw2d.Shape;
+import org.eclipse.draw2d.StackLayout;
+import org.eclipse.draw2d.geometry.Dimension;
+import org.eclipse.gef.EditPart;
+import org.eclipse.gef.EditPolicy;
+import org.eclipse.gef.Request;
+import org.eclipse.gef.commands.Command;
+import org.eclipse.gef.editpolicies.LayoutEditPolicy;
+import org.eclipse.gef.editpolicies.NonResizableEditPolicy;
+import org.eclipse.gef.requests.CreateRequest;
+import org.eclipse.gmf.runtime.diagram.ui.editparts.AbstractBorderedShapeEditPart;
+import org.eclipse.gmf.runtime.diagram.ui.editparts.IBorderItemEditPart;
+import org.eclipse.gmf.runtime.diagram.ui.editparts.IGraphicalEditPart;
+import org.eclipse.gmf.runtime.diagram.ui.editpolicies.BorderItemSelectionEditPolicy;
+import org.eclipse.gmf.runtime.diagram.ui.editpolicies.CreationEditPolicy;
+import org.eclipse.gmf.runtime.diagram.ui.editpolicies.DragDropEditPolicy;
+import org.eclipse.gmf.runtime.diagram.ui.editpolicies.EditPolicyRoles;
+import org.eclipse.gmf.runtime.diagram.ui.figures.BorderItemLocator;
+import org.eclipse.gmf.runtime.draw2d.ui.figures.ConstrainedToolbarLayout;
+import org.eclipse.gmf.runtime.draw2d.ui.figures.WrappingLabel;
+import org.eclipse.gmf.runtime.gef.ui.figures.DefaultSizeNodeFigure;
+import org.eclipse.gmf.runtime.gef.ui.figures.NodeFigure;
+import org.eclipse.gmf.runtime.notation.View;
+import org.eclipse.swt.graphics.Color;
+
+import comrel.diagram.edit.policies.SingleFilterUnit3CanonicalEditPolicy;
+import comrel.diagram.edit.policies.SingleFilterUnit3ItemSemanticEditPolicy;
+import comrel.diagram.part.ComrelVisualIDRegistry;
+
+/**
+ * @generated
+ */
+public class SingleFilterUnit3EditPart extends AbstractBorderedShapeEditPart {
+
+ /**
+ * @generated
+ */
+ public static final int VISUAL_ID = 3052;
+
+ /**
+ * @generated
+ */
+ protected IFigure contentPane;
+
+ /**
+ * @generated
+ */
+ protected IFigure primaryShape;
+
+ /**
+ * @generated
+ */
+ public SingleFilterUnit3EditPart(View view) {
+ super(view);
+ }
+
+ /**
+ * @generated
+ */
+ protected void createDefaultEditPolicies() {
+ installEditPolicy(EditPolicyRoles.CREATION_ROLE,
+ new CreationEditPolicy());
+ super.createDefaultEditPolicies();
+ installEditPolicy(EditPolicyRoles.SEMANTIC_ROLE,
+ new SingleFilterUnit3ItemSemanticEditPolicy());
+ installEditPolicy(EditPolicyRoles.DRAG_DROP_ROLE,
+ new DragDropEditPolicy());
+ installEditPolicy(EditPolicyRoles.CANONICAL_ROLE,
+ new SingleFilterUnit3CanonicalEditPolicy());
+ installEditPolicy(EditPolicy.LAYOUT_ROLE, createLayoutEditPolicy());
+ // XXX need an SCR to runtime to have another abstract superclass that would let children add reasonable editpolicies
+ // removeEditPolicy(org.eclipse.gmf.runtime.diagram.ui.editpolicies.EditPolicyRoles.CONNECTION_HANDLES_ROLE);
+ }
+
+ /**
+ * @generated
+ */
+ protected LayoutEditPolicy createLayoutEditPolicy() {
+ org.eclipse.gmf.runtime.diagram.ui.editpolicies.LayoutEditPolicy lep = new org.eclipse.gmf.runtime.diagram.ui.editpolicies.LayoutEditPolicy() {
+
+ protected EditPolicy createChildEditPolicy(EditPart child) {
+ View childView = (View) child.getModel();
+ switch (ComrelVisualIDRegistry.getVisualID(childView)) {
+ case MultiInputPort5EditPart.VISUAL_ID:
+ case SingleOutputPort2EditPart.VISUAL_ID:
+ return new BorderItemSelectionEditPolicy();
+ }
+ EditPolicy result = child
+ .getEditPolicy(EditPolicy.PRIMARY_DRAG_ROLE);
+ if (result == null) {
+ result = new NonResizableEditPolicy();
+ }
+ return result;
+ }
+
+ protected Command getMoveChildrenCommand(Request request) {
+ return null;
+ }
+
+ protected Command getCreateCommand(CreateRequest request) {
+ return null;
+ }
+ };
+ return lep;
+ }
+
+ /**
+ * @generated
+ */
+ protected IFigure createNodeShape() {
+ return primaryShape = new SingleFilterUnitFigure();
+ }
+
+ /**
+ * @generated
+ */
+ public SingleFilterUnitFigure getPrimaryShape() {
+ return (SingleFilterUnitFigure) primaryShape;
+ }
+
+ /**
+ * @generated NOT
+ */
+ protected boolean addFixedChild(EditPart childEditPart) {
+ if (childEditPart instanceof SingleFilterUnitNameType3EditPart) {
+ ((SingleFilterUnitNameType3EditPart) childEditPart)
+ .setLabel(getPrimaryShape()
+ .getFigureSingleFilterUnitLabelFigure());
+ return true;
+ }
+ if (childEditPart instanceof MultiInputPort5EditPart) {
+ BorderItemLocator locator = new BorderItemLocator(getMainFigure(),
+ PositionConstants.NORTH);
+ locator.setCurrentSideOfParent(PositionConstants.NORTH); // Position des Ports
+ locator.setPreferredSideOfParent(PositionConstants.NORTH); // Position des Ports
+ getBorderedFigure().getBorderItemContainer().add(
+ ((MultiInputPort5EditPart) childEditPart).getFigure(),
+ locator);
+ return true;
+ }
+ if (childEditPart instanceof SingleOutputPort2EditPart) {
+ BorderItemLocator locator = new BorderItemLocator(getMainFigure(),
+ PositionConstants.SOUTH);
+ locator.setCurrentSideOfParent(PositionConstants.SOUTH); // Position des Ports
+ locator.setPreferredSideOfParent(PositionConstants.SOUTH); // Position des Ports
+ getBorderedFigure().getBorderItemContainer().add(
+ ((SingleOutputPort2EditPart) childEditPart).getFigure(),
+ locator);
+ return true;
+ }
+ return false;
+ }
+
+ /**
+ * @generated NOT
+ */
+ protected boolean removeFixedChild(EditPart childEditPart) {
+ if (childEditPart instanceof SingleFilterUnitNameType3EditPart) {
+ return true;
+ }
+ if (childEditPart instanceof MultiInputPort5EditPart) {
+ // getBorderedFigure().getBorderItemContainer().remove(
+ // ((MultiInputPort5EditPart) childEditPart).getFigure());
+ return true;
+ }
+ if (childEditPart instanceof SingleOutputPort2EditPart) {
+ // getBorderedFigure().getBorderItemContainer().remove(
+ // ((SingleOutputPort2EditPart) childEditPart).getFigure());
+ return true;
+ }
+ return false;
+ }
+
+ /**
+ * @generated
+ */
+ protected void addChildVisual(EditPart childEditPart, int index) {
+ if (addFixedChild(childEditPart)) {
+ return;
+ }
+ super.addChildVisual(childEditPart, -1);
+ }
+
+ /**
+ * @generated
+ */
+ protected void removeChildVisual(EditPart childEditPart) {
+ if (removeFixedChild(childEditPart)) {
+ return;
+ }
+ super.removeChildVisual(childEditPart);
+ }
+
+ /**
+ * @generated
+ */
+ protected IFigure getContentPaneFor(IGraphicalEditPart editPart) {
+ if (editPart instanceof IBorderItemEditPart) {
+ return getBorderedFigure().getBorderItemContainer();
+ }
+ return getContentPane();
+ }
+
+ /**
+ * @generated
+ */
+ protected NodeFigure createNodePlate() {
+ DefaultSizeNodeFigure result = new DefaultSizeNodeFigure(40, 40);
+ return result;
+ }
+
+ /**
+ * Creates figure for this edit part.
+ *
+ * Body of this method does not depend on settings in generation model
+ * so you may safely remove <i>generated</i> tag and modify it.
+ *
+ * @generated
+ */
+ protected NodeFigure createMainFigure() {
+ NodeFigure figure = createNodePlate();
+ figure.setLayoutManager(new StackLayout());
+ IFigure shape = createNodeShape();
+ figure.add(shape);
+ contentPane = setupContentPane(shape);
+ return figure;
+ }
+
+ /**
+ * Default implementation treats passed figure as content pane.
+ * Respects layout one may have set for generated figure.
+ * @param nodeShape instance of generated figure class
+ * @generated
+ */
+ protected IFigure setupContentPane(IFigure nodeShape) {
+ if (nodeShape.getLayoutManager() == null) {
+ ConstrainedToolbarLayout layout = new ConstrainedToolbarLayout();
+ layout.setSpacing(5);
+ nodeShape.setLayoutManager(layout);
+ }
+ return nodeShape; // use nodeShape itself as contentPane
+ }
+
+ /**
+ * @generated
+ */
+ public IFigure getContentPane() {
+ if (contentPane != null) {
+ return contentPane;
+ }
+ return super.getContentPane();
+ }
+
+ /**
+ * @generated
+ */
+ protected void setForegroundColor(Color color) {
+ if (primaryShape != null) {
+ primaryShape.setForegroundColor(color);
+ }
+ }
+
+ /**
+ * @generated
+ */
+ protected void setBackgroundColor(Color color) {
+ if (primaryShape != null) {
+ primaryShape.setBackgroundColor(color);
+ }
+ }
+
+ /**
+ * @generated
+ */
+ protected void setLineWidth(int width) {
+ if (primaryShape instanceof Shape) {
+ ((Shape) primaryShape).setLineWidth(width);
+ }
+ }
+
+ /**
+ * @generated
+ */
+ protected void setLineType(int style) {
+ if (primaryShape instanceof Shape) {
+ ((Shape) primaryShape).setLineStyle(style);
+ }
+ }
+
+ /**
+ * @generated
+ */
+ public EditPart getPrimaryChildEditPart() {
+ return getChildBySemanticHint(ComrelVisualIDRegistry
+ .getType(SingleFilterUnitNameType3EditPart.VISUAL_ID));
+ }
+
+ /**
+ * @generated
+ */
+ public class SingleFilterUnitFigure extends RoundedRectangle {
+
+ /**
+ * @generated
+ */
+ private WrappingLabel fFigureSingleFilterUnitLabelFigure;
+
+ /**
+ * @generated
+ */
+ public SingleFilterUnitFigure() {
+ this.setCornerDimensions(new Dimension(getMapMode().DPtoLP(8),
+ getMapMode().DPtoLP(8)));
+ this.setBorder(new MarginBorder(getMapMode().DPtoLP(5),
+ getMapMode().DPtoLP(5), getMapMode().DPtoLP(5),
+ getMapMode().DPtoLP(5)));
+ createContents();
+ }
+
+ /**
+ * @generated
+ */
+ private void createContents() {
+
+ fFigureSingleFilterUnitLabelFigure = new WrappingLabel();
+ fFigureSingleFilterUnitLabelFigure.setText("SingleFilterUnit");
+
+ this.add(fFigureSingleFilterUnitLabelFigure);
+
+ }
+
+ /**
+ * @generated
+ */
+ public WrappingLabel getFigureSingleFilterUnitLabelFigure() {
+ return fFigureSingleFilterUnitLabelFigure;
+ }
+
+ }
+
+}
diff --git a/org.eclipse.emf.refactor.comrel.diagram/src/comrel/diagram/edit/parts/SingleFilterUnit4EditPart.java b/org.eclipse.emf.refactor.comrel.diagram/src/comrel/diagram/edit/parts/SingleFilterUnit4EditPart.java
new file mode 100644
index 0000000..4b4b390
--- /dev/null
+++ b/org.eclipse.emf.refactor.comrel.diagram/src/comrel/diagram/edit/parts/SingleFilterUnit4EditPart.java
@@ -0,0 +1,350 @@
+/*
+ *
+ */
+package comrel.diagram.edit.parts;
+
+import org.eclipse.draw2d.IFigure;
+import org.eclipse.draw2d.MarginBorder;
+import org.eclipse.draw2d.PositionConstants;
+import org.eclipse.draw2d.RoundedRectangle;
+import org.eclipse.draw2d.Shape;
+import org.eclipse.draw2d.StackLayout;
+import org.eclipse.draw2d.geometry.Dimension;
+import org.eclipse.gef.EditPart;
+import org.eclipse.gef.EditPolicy;
+import org.eclipse.gef.Request;
+import org.eclipse.gef.commands.Command;
+import org.eclipse.gef.editpolicies.LayoutEditPolicy;
+import org.eclipse.gef.editpolicies.NonResizableEditPolicy;
+import org.eclipse.gef.requests.CreateRequest;
+import org.eclipse.gmf.runtime.diagram.ui.editparts.AbstractBorderedShapeEditPart;
+import org.eclipse.gmf.runtime.diagram.ui.editparts.IBorderItemEditPart;
+import org.eclipse.gmf.runtime.diagram.ui.editparts.IGraphicalEditPart;
+import org.eclipse.gmf.runtime.diagram.ui.editpolicies.BorderItemSelectionEditPolicy;
+import org.eclipse.gmf.runtime.diagram.ui.editpolicies.CreationEditPolicy;
+import org.eclipse.gmf.runtime.diagram.ui.editpolicies.DragDropEditPolicy;
+import org.eclipse.gmf.runtime.diagram.ui.editpolicies.EditPolicyRoles;
+import org.eclipse.gmf.runtime.diagram.ui.figures.BorderItemLocator;
+import org.eclipse.gmf.runtime.draw2d.ui.figures.ConstrainedToolbarLayout;
+import org.eclipse.gmf.runtime.draw2d.ui.figures.WrappingLabel;
+import org.eclipse.gmf.runtime.gef.ui.figures.DefaultSizeNodeFigure;
+import org.eclipse.gmf.runtime.gef.ui.figures.NodeFigure;
+import org.eclipse.gmf.runtime.notation.View;
+import org.eclipse.swt.graphics.Color;
+
+import comrel.diagram.edit.policies.SingleFilterUnit4CanonicalEditPolicy;
+import comrel.diagram.edit.policies.SingleFilterUnit4ItemSemanticEditPolicy;
+import comrel.diagram.part.ComrelVisualIDRegistry;
+
+/**
+ * @generated
+ */
+public class SingleFilterUnit4EditPart extends AbstractBorderedShapeEditPart {
+
+ /**
+ * @generated
+ */
+ public static final int VISUAL_ID = 3057;
+
+ /**
+ * @generated
+ */
+ protected IFigure contentPane;
+
+ /**
+ * @generated
+ */
+ protected IFigure primaryShape;
+
+ /**
+ * @generated
+ */
+ public SingleFilterUnit4EditPart(View view) {
+ super(view);
+ }
+
+ /**
+ * @generated
+ */
+ protected void createDefaultEditPolicies() {
+ installEditPolicy(EditPolicyRoles.CREATION_ROLE,
+ new CreationEditPolicy());
+ super.createDefaultEditPolicies();
+ installEditPolicy(EditPolicyRoles.SEMANTIC_ROLE,
+ new SingleFilterUnit4ItemSemanticEditPolicy());
+ installEditPolicy(EditPolicyRoles.DRAG_DROP_ROLE,
+ new DragDropEditPolicy());
+ installEditPolicy(EditPolicyRoles.CANONICAL_ROLE,
+ new SingleFilterUnit4CanonicalEditPolicy());
+ installEditPolicy(EditPolicy.LAYOUT_ROLE, createLayoutEditPolicy());
+ // XXX need an SCR to runtime to have another abstract superclass that would let children add reasonable editpolicies
+ // removeEditPolicy(org.eclipse.gmf.runtime.diagram.ui.editpolicies.EditPolicyRoles.CONNECTION_HANDLES_ROLE);
+ }
+
+ /**
+ * @generated
+ */
+ protected LayoutEditPolicy createLayoutEditPolicy() {
+ org.eclipse.gmf.runtime.diagram.ui.editpolicies.LayoutEditPolicy lep = new org.eclipse.gmf.runtime.diagram.ui.editpolicies.LayoutEditPolicy() {
+
+ protected EditPolicy createChildEditPolicy(EditPart child) {
+ View childView = (View) child.getModel();
+ switch (ComrelVisualIDRegistry.getVisualID(childView)) {
+ case MultiInputPort5EditPart.VISUAL_ID:
+ case SingleOutputPort2EditPart.VISUAL_ID:
+ return new BorderItemSelectionEditPolicy();
+ }
+ EditPolicy result = child
+ .getEditPolicy(EditPolicy.PRIMARY_DRAG_ROLE);
+ if (result == null) {
+ result = new NonResizableEditPolicy();
+ }
+ return result;
+ }
+
+ protected Command getMoveChildrenCommand(Request request) {
+ return null;
+ }
+
+ protected Command getCreateCommand(CreateRequest request) {
+ return null;
+ }
+ };
+ return lep;
+ }
+
+ /**
+ * @generated
+ */
+ protected IFigure createNodeShape() {
+ return primaryShape = new SingleFilterUnitFigure();
+ }
+
+ /**
+ * @generated
+ */
+ public SingleFilterUnitFigure getPrimaryShape() {
+ return (SingleFilterUnitFigure) primaryShape;
+ }
+
+ /**
+ * @generated NOT
+ */
+ protected boolean addFixedChild(EditPart childEditPart) {
+ if (childEditPart instanceof SingleFilterUnitNameType4EditPart) {
+ ((SingleFilterUnitNameType4EditPart) childEditPart)
+ .setLabel(getPrimaryShape()
+ .getFigureSingleFilterUnitLabelFigure());
+ return true;
+ }
+ if (childEditPart instanceof MultiInputPort5EditPart) {
+ BorderItemLocator locator = new BorderItemLocator(getMainFigure(),
+ PositionConstants.NORTH);
+ locator.setCurrentSideOfParent(PositionConstants.NORTH); // Position des Ports
+ locator.setPreferredSideOfParent(PositionConstants.NORTH); // Position des Ports
+ getBorderedFigure().getBorderItemContainer().add(
+ ((MultiInputPort5EditPart) childEditPart).getFigure(),
+ locator);
+ return true;
+ }
+ if (childEditPart instanceof SingleOutputPort2EditPart) {
+ BorderItemLocator locator = new BorderItemLocator(getMainFigure(),
+ PositionConstants.SOUTH);
+ locator.setCurrentSideOfParent(PositionConstants.SOUTH); // Position des Ports
+ locator.setPreferredSideOfParent(PositionConstants.SOUTH); // Position des Ports
+ getBorderedFigure().getBorderItemContainer().add(
+ ((SingleOutputPort2EditPart) childEditPart).getFigure(),
+ locator);
+ return true;
+ }
+ return false;
+ }
+
+ /**
+ * @generated NOt
+ */
+ protected boolean removeFixedChild(EditPart childEditPart) {
+ if (childEditPart instanceof SingleFilterUnitNameType4EditPart) {
+ return true;
+ }
+ if (childEditPart instanceof MultiInputPort5EditPart) {
+ // getBorderedFigure().getBorderItemContainer().remove(
+ // ((MultiInputPort5EditPart) childEditPart).getFigure());
+ return true;
+ }
+ if (childEditPart instanceof SingleOutputPort2EditPart) {
+ // getBorderedFigure().getBorderItemContainer().remove(
+ // ((SingleOutputPort2EditPart) childEditPart).getFigure());
+ return true;
+ }
+ return false;
+ }
+
+ /**
+ * @generated
+ */
+ protected void addChildVisual(EditPart childEditPart, int index) {
+ if (addFixedChild(childEditPart)) {
+ return;
+ }
+ super.addChildVisual(childEditPart, -1);
+ }
+
+ /**
+ * @generated
+ */
+ protected void removeChildVisual(EditPart childEditPart) {
+ if (removeFixedChild(childEditPart)) {
+ return;
+ }
+ super.removeChildVisual(childEditPart);
+ }
+
+ /**
+ * @generated
+ */
+ protected IFigure getContentPaneFor(IGraphicalEditPart editPart) {
+ if (editPart instanceof IBorderItemEditPart) {
+ return getBorderedFigure().getBorderItemContainer();
+ }
+ return getContentPane();
+ }
+
+ /**
+ * @generated
+ */
+ protected NodeFigure createNodePlate() {
+ DefaultSizeNodeFigure result = new DefaultSizeNodeFigure(40, 40);
+ return result;
+ }
+
+ /**
+ * Creates figure for this edit part.
+ *
+ * Body of this method does not depend on settings in generation model
+ * so you may safely remove <i>generated</i> tag and modify it.
+ *
+ * @generated
+ */
+ protected NodeFigure createMainFigure() {
+ NodeFigure figure = createNodePlate();
+ figure.setLayoutManager(new StackLayout());
+ IFigure shape = createNodeShape();
+ figure.add(shape);
+ contentPane = setupContentPane(shape);
+ return figure;
+ }
+
+ /**
+ * Default implementation treats passed figure as content pane.
+ * Respects layout one may have set for generated figure.
+ * @param nodeShape instance of generated figure class
+ * @generated
+ */
+ protected IFigure setupContentPane(IFigure nodeShape) {
+ if (nodeShape.getLayoutManager() == null) {
+ ConstrainedToolbarLayout layout = new ConstrainedToolbarLayout();
+ layout.setSpacing(5);
+ nodeShape.setLayoutManager(layout);
+ }
+ return nodeShape; // use nodeShape itself as contentPane
+ }
+
+ /**
+ * @generated
+ */
+ public IFigure getContentPane() {
+ if (contentPane != null) {
+ return contentPane;
+ }
+ return super.getContentPane();
+ }
+
+ /**
+ * @generated
+ */
+ protected void setForegroundColor(Color color) {
+ if (primaryShape != null) {
+ primaryShape.setForegroundColor(color);
+ }
+ }
+
+ /**
+ * @generated
+ */
+ protected void setBackgroundColor(Color color) {
+ if (primaryShape != null) {
+ primaryShape.setBackgroundColor(color);
+ }
+ }
+
+ /**
+ * @generated
+ */
+ protected void setLineWidth(int width) {
+ if (primaryShape instanceof Shape) {
+ ((Shape) primaryShape).setLineWidth(width);
+ }
+ }
+
+ /**
+ * @generated
+ */
+ protected void setLineType(int style) {
+ if (primaryShape instanceof Shape) {
+ ((Shape) primaryShape).setLineStyle(style);
+ }
+ }
+
+ /**
+ * @generated
+ */
+ public EditPart getPrimaryChildEditPart() {
+ return getChildBySemanticHint(ComrelVisualIDRegistry
+ .getType(SingleFilterUnitNameType4EditPart.VISUAL_ID));
+ }
+
+ /**
+ * @generated
+ */
+ public class SingleFilterUnitFigure extends RoundedRectangle {
+
+ /**
+ * @generated
+ */
+ private WrappingLabel fFigureSingleFilterUnitLabelFigure;
+
+ /**
+ * @generated
+ */
+ public SingleFilterUnitFigure() {
+ this.setCornerDimensions(new Dimension(getMapMode().DPtoLP(8),
+ getMapMode().DPtoLP(8)));
+ this.setBorder(new MarginBorder(getMapMode().DPtoLP(5),
+ getMapMode().DPtoLP(5), getMapMode().DPtoLP(5),
+ getMapMode().DPtoLP(5)));
+ createContents();
+ }
+
+ /**
+ * @generated
+ */
+ private void createContents() {
+
+ fFigureSingleFilterUnitLabelFigure = new WrappingLabel();
+ fFigureSingleFilterUnitLabelFigure.setText("SingleFilterUnit");
+
+ this.add(fFigureSingleFilterUnitLabelFigure);
+
+ }
+
+ /**
+ * @generated
+ */
+ public WrappingLabel getFigureSingleFilterUnitLabelFigure() {
+ return fFigureSingleFilterUnitLabelFigure;
+ }
+
+ }
+
+}
diff --git a/org.eclipse.emf.refactor.comrel.diagram/src/comrel/diagram/edit/parts/SingleFilterUnit5EditPart.java b/org.eclipse.emf.refactor.comrel.diagram/src/comrel/diagram/edit/parts/SingleFilterUnit5EditPart.java
new file mode 100644
index 0000000..f24a431
--- /dev/null
+++ b/org.eclipse.emf.refactor.comrel.diagram/src/comrel/diagram/edit/parts/SingleFilterUnit5EditPart.java
@@ -0,0 +1,350 @@
+/*
+ *
+ */
+package comrel.diagram.edit.parts;
+
+import org.eclipse.draw2d.IFigure;
+import org.eclipse.draw2d.MarginBorder;
+import org.eclipse.draw2d.PositionConstants;
+import org.eclipse.draw2d.RoundedRectangle;
+import org.eclipse.draw2d.Shape;
+import org.eclipse.draw2d.StackLayout;
+import org.eclipse.draw2d.geometry.Dimension;
+import org.eclipse.gef.EditPart;
+import org.eclipse.gef.EditPolicy;
+import org.eclipse.gef.Request;
+import org.eclipse.gef.commands.Command;
+import org.eclipse.gef.editpolicies.LayoutEditPolicy;
+import org.eclipse.gef.editpolicies.NonResizableEditPolicy;
+import org.eclipse.gef.requests.CreateRequest;
+import org.eclipse.gmf.runtime.diagram.ui.editparts.AbstractBorderedShapeEditPart;
+import org.eclipse.gmf.runtime.diagram.ui.editparts.IBorderItemEditPart;
+import org.eclipse.gmf.runtime.diagram.ui.editparts.IGraphicalEditPart;
+import org.eclipse.gmf.runtime.diagram.ui.editpolicies.BorderItemSelectionEditPolicy;
+import org.eclipse.gmf.runtime.diagram.ui.editpolicies.CreationEditPolicy;
+import org.eclipse.gmf.runtime.diagram.ui.editpolicies.DragDropEditPolicy;
+import org.eclipse.gmf.runtime.diagram.ui.editpolicies.EditPolicyRoles;
+import org.eclipse.gmf.runtime.diagram.ui.figures.BorderItemLocator;
+import org.eclipse.gmf.runtime.draw2d.ui.figures.ConstrainedToolbarLayout;
+import org.eclipse.gmf.runtime.draw2d.ui.figures.WrappingLabel;
+import org.eclipse.gmf.runtime.gef.ui.figures.DefaultSizeNodeFigure;
+import org.eclipse.gmf.runtime.gef.ui.figures.NodeFigure;
+import org.eclipse.gmf.runtime.notation.View;
+import org.eclipse.swt.graphics.Color;
+
+import comrel.diagram.edit.policies.SingleFilterUnit5CanonicalEditPolicy;
+import comrel.diagram.edit.policies.SingleFilterUnit5ItemSemanticEditPolicy;
+import comrel.diagram.part.ComrelVisualIDRegistry;
+
+/**
+ * @generated
+ */
+public class SingleFilterUnit5EditPart extends AbstractBorderedShapeEditPart {
+
+ /**
+ * @generated
+ */
+ public static final int VISUAL_ID = 3063;
+
+ /**
+ * @generated
+ */
+ protected IFigure contentPane;
+
+ /**
+ * @generated
+ */
+ protected IFigure primaryShape;
+
+ /**
+ * @generated
+ */
+ public SingleFilterUnit5EditPart(View view) {
+ super(view);
+ }
+
+ /**
+ * @generated
+ */
+ protected void createDefaultEditPolicies() {
+ installEditPolicy(EditPolicyRoles.CREATION_ROLE,
+ new CreationEditPolicy());
+ super.createDefaultEditPolicies();
+ installEditPolicy(EditPolicyRoles.SEMANTIC_ROLE,
+ new SingleFilterUnit5ItemSemanticEditPolicy());
+ installEditPolicy(EditPolicyRoles.DRAG_DROP_ROLE,
+ new DragDropEditPolicy());
+ installEditPolicy(EditPolicyRoles.CANONICAL_ROLE,
+ new SingleFilterUnit5CanonicalEditPolicy());
+ installEditPolicy(EditPolicy.LAYOUT_ROLE, createLayoutEditPolicy());
+ // XXX need an SCR to runtime to have another abstract superclass that would let children add reasonable editpolicies
+ // removeEditPolicy(org.eclipse.gmf.runtime.diagram.ui.editpolicies.EditPolicyRoles.CONNECTION_HANDLES_ROLE);
+ }
+
+ /**
+ * @generated
+ */
+ protected LayoutEditPolicy createLayoutEditPolicy() {
+ org.eclipse.gmf.runtime.diagram.ui.editpolicies.LayoutEditPolicy lep = new org.eclipse.gmf.runtime.diagram.ui.editpolicies.LayoutEditPolicy() {
+
+ protected EditPolicy createChildEditPolicy(EditPart child) {
+ View childView = (View) child.getModel();
+ switch (ComrelVisualIDRegistry.getVisualID(childView)) {
+ case MultiInputPort5EditPart.VISUAL_ID:
+ case SingleOutputPort2EditPart.VISUAL_ID:
+ return new BorderItemSelectionEditPolicy();
+ }
+ EditPolicy result = child
+ .getEditPolicy(EditPolicy.PRIMARY_DRAG_ROLE);
+ if (result == null) {
+ result = new NonResizableEditPolicy();
+ }
+ return result;
+ }
+
+ protected Command getMoveChildrenCommand(Request request) {
+ return null;
+ }
+
+ protected Command getCreateCommand(CreateRequest request) {
+ return null;
+ }
+ };
+ return lep;
+ }
+
+ /**
+ * @generated
+ */
+ protected IFigure createNodeShape() {
+ return primaryShape = new SingleFilterUnitFigure();
+ }
+
+ /**
+ * @generated
+ */
+ public SingleFilterUnitFigure getPrimaryShape() {
+ return (SingleFilterUnitFigure) primaryShape;
+ }
+
+ /**
+ * @generated NOT
+ */
+ protected boolean addFixedChild(EditPart childEditPart) {
+ if (childEditPart instanceof SingleFilterUnitNameType5EditPart) {
+ ((SingleFilterUnitNameType5EditPart) childEditPart)
+ .setLabel(getPrimaryShape()
+ .getFigureSingleFilterUnitLabelFigure());
+ return true;
+ }
+ if (childEditPart instanceof MultiInputPort5EditPart) {
+ BorderItemLocator locator = new BorderItemLocator(getMainFigure(),
+ PositionConstants.NORTH);
+ locator.setCurrentSideOfParent(PositionConstants.NORTH); // Position des Ports
+ locator.setPreferredSideOfParent(PositionConstants.NORTH); // Position des Ports
+ getBorderedFigure().getBorderItemContainer().add(
+ ((MultiInputPort5EditPart) childEditPart).getFigure(),
+ locator);
+ return true;
+ }
+ if (childEditPart instanceof SingleOutputPort2EditPart) {
+ BorderItemLocator locator = new BorderItemLocator(getMainFigure(),
+ PositionConstants.SOUTH);
+ locator.setCurrentSideOfParent(PositionConstants.SOUTH); // Position des Ports
+ locator.setPreferredSideOfParent(PositionConstants.SOUTH); // Position des Ports
+ getBorderedFigure().getBorderItemContainer().add(
+ ((SingleOutputPort2EditPart) childEditPart).getFigure(),
+ locator);
+ return true;
+ }
+ return false;
+ }
+
+ /**
+ * @generated NOT
+ */
+ protected boolean removeFixedChild(EditPart childEditPart) {
+ if (childEditPart instanceof SingleFilterUnitNameType5EditPart) {
+ return true;
+ }
+ if (childEditPart instanceof MultiInputPort5EditPart) {
+ // getBorderedFigure().getBorderItemContainer().remove(
+ // ((MultiInputPort5EditPart) childEditPart).getFigure());
+ return true;
+ }
+ if (childEditPart instanceof SingleOutputPort2EditPart) {
+ // getBorderedFigure().getBorderItemContainer().remove(
+ // ((SingleOutputPort2EditPart) childEditPart).getFigure());
+ return true;
+ }
+ return false;
+ }
+
+ /**
+ * @generated
+ */
+ protected void addChildVisual(EditPart childEditPart, int index) {
+ if (addFixedChild(childEditPart)) {
+ return;
+ }
+ super.addChildVisual(childEditPart, -1);
+ }
+
+ /**
+ * @generated
+ */
+ protected void removeChildVisual(EditPart childEditPart) {
+ if (removeFixedChild(childEditPart)) {
+ return;
+ }
+ super.removeChildVisual(childEditPart);
+ }
+
+ /**
+ * @generated
+ */
+ protected IFigure getContentPaneFor(IGraphicalEditPart editPart) {
+ if (editPart instanceof IBorderItemEditPart) {
+ return getBorderedFigure().getBorderItemContainer();
+ }
+ return getContentPane();
+ }
+
+ /**
+ * @generated
+ */
+ protected NodeFigure createNodePlate() {
+ DefaultSizeNodeFigure result = new DefaultSizeNodeFigure(40, 40);
+ return result;
+ }
+
+ /**
+ * Creates figure for this edit part.
+ *
+ * Body of this method does not depend on settings in generation model
+ * so you may safely remove <i>generated</i> tag and modify it.
+ *
+ * @generated
+ */
+ protected NodeFigure createMainFigure() {
+ NodeFigure figure = createNodePlate();
+ figure.setLayoutManager(new StackLayout());
+ IFigure shape = createNodeShape();
+ figure.add(shape);
+ contentPane = setupContentPane(shape);
+ return figure;
+ }
+
+ /**
+ * Default implementation treats passed figure as content pane.
+ * Respects layout one may have set for generated figure.
+ * @param nodeShape instance of generated figure class
+ * @generated
+ */
+ protected IFigure setupContentPane(IFigure nodeShape) {
+ if (nodeShape.getLayoutManager() == null) {
+ ConstrainedToolbarLayout layout = new ConstrainedToolbarLayout();
+ layout.setSpacing(5);
+ nodeShape.setLayoutManager(layout);
+ }
+ return nodeShape; // use nodeShape itself as contentPane
+ }
+
+ /**
+ * @generated
+ */
+ public IFigure getContentPane() {
+ if (contentPane != null) {
+ return contentPane;
+ }
+ return super.getContentPane();
+ }
+
+ /**
+ * @generated
+ */
+ protected void setForegroundColor(Color color) {
+ if (primaryShape != null) {
+ primaryShape.setForegroundColor(color);
+ }
+ }
+
+ /**
+ * @generated
+ */
+ protected void setBackgroundColor(Color color) {
+ if (primaryShape != null) {
+ primaryShape.setBackgroundColor(color);
+ }
+ }
+
+ /**
+ * @generated
+ */
+ protected void setLineWidth(int width) {
+ if (primaryShape instanceof Shape) {
+ ((Shape) primaryShape).setLineWidth(width);
+ }
+ }
+
+ /**
+ * @generated
+ */
+ protected void setLineType(int style) {
+ if (primaryShape instanceof Shape) {
+ ((Shape) primaryShape).setLineStyle(style);
+ }
+ }
+
+ /**
+ * @generated
+ */
+ public EditPart getPrimaryChildEditPart() {
+ return getChildBySemanticHint(ComrelVisualIDRegistry
+ .getType(SingleFilterUnitNameType5EditPart.VISUAL_ID));
+ }
+
+ /**
+ * @generated
+ */
+ public class SingleFilterUnitFigure extends RoundedRectangle {
+
+ /**
+ * @generated
+ */
+ private WrappingLabel fFigureSingleFilterUnitLabelFigure;
+
+ /**
+ * @generated
+ */
+ public SingleFilterUnitFigure() {
+ this.setCornerDimensions(new Dimension(getMapMode().DPtoLP(8),
+ getMapMode().DPtoLP(8)));
+ this.setBorder(new MarginBorder(getMapMode().DPtoLP(5),
+ getMapMode().DPtoLP(5), getMapMode().DPtoLP(5),
+ getMapMode().DPtoLP(5)));
+ createContents();
+ }
+
+ /**
+ * @generated
+ */
+ private void createContents() {
+
+ fFigureSingleFilterUnitLabelFigure = new WrappingLabel();
+ fFigureSingleFilterUnitLabelFigure.setText("SingleFilterUnit");
+
+ this.add(fFigureSingleFilterUnitLabelFigure);
+
+ }
+
+ /**
+ * @generated
+ */
+ public WrappingLabel getFigureSingleFilterUnitLabelFigure() {
+ return fFigureSingleFilterUnitLabelFigure;
+ }
+
+ }
+
+}
diff --git a/org.eclipse.emf.refactor.comrel.diagram/src/comrel/diagram/edit/parts/SingleFilterUnitEditPart.java b/org.eclipse.emf.refactor.comrel.diagram/src/comrel/diagram/edit/parts/SingleFilterUnitEditPart.java
new file mode 100644
index 0000000..8ff5c12
--- /dev/null
+++ b/org.eclipse.emf.refactor.comrel.diagram/src/comrel/diagram/edit/parts/SingleFilterUnitEditPart.java
@@ -0,0 +1,350 @@
+/*
+ *
+ */
+package comrel.diagram.edit.parts;
+
+import org.eclipse.draw2d.IFigure;
+import org.eclipse.draw2d.MarginBorder;
+import org.eclipse.draw2d.PositionConstants;
+import org.eclipse.draw2d.RoundedRectangle;
+import org.eclipse.draw2d.Shape;
+import org.eclipse.draw2d.StackLayout;
+import org.eclipse.draw2d.geometry.Dimension;
+import org.eclipse.gef.EditPart;
+import org.eclipse.gef.EditPolicy;
+import org.eclipse.gef.Request;
+import org.eclipse.gef.commands.Command;
+import org.eclipse.gef.editpolicies.LayoutEditPolicy;
+import org.eclipse.gef.editpolicies.NonResizableEditPolicy;
+import org.eclipse.gef.requests.CreateRequest;
+import org.eclipse.gmf.runtime.diagram.ui.editparts.AbstractBorderedShapeEditPart;
+import org.eclipse.gmf.runtime.diagram.ui.editparts.IBorderItemEditPart;
+import org.eclipse.gmf.runtime.diagram.ui.editparts.IGraphicalEditPart;
+import org.eclipse.gmf.runtime.diagram.ui.editpolicies.BorderItemSelectionEditPolicy;
+import org.eclipse.gmf.runtime.diagram.ui.editpolicies.CreationEditPolicy;
+import org.eclipse.gmf.runtime.diagram.ui.editpolicies.DragDropEditPolicy;
+import org.eclipse.gmf.runtime.diagram.ui.editpolicies.EditPolicyRoles;
+import org.eclipse.gmf.runtime.diagram.ui.figures.BorderItemLocator;
+import org.eclipse.gmf.runtime.draw2d.ui.figures.ConstrainedToolbarLayout;
+import org.eclipse.gmf.runtime.draw2d.ui.figures.WrappingLabel;
+import org.eclipse.gmf.runtime.gef.ui.figures.DefaultSizeNodeFigure;
+import org.eclipse.gmf.runtime.gef.ui.figures.NodeFigure;
+import org.eclipse.gmf.runtime.notation.View;
+import org.eclipse.swt.graphics.Color;
+
+import comrel.diagram.edit.policies.SingleFilterUnitCanonicalEditPolicy;
+import comrel.diagram.edit.policies.SingleFilterUnitItemSemanticEditPolicy;
+import comrel.diagram.part.ComrelVisualIDRegistry;
+
+/**
+ * @generated
+ */
+public class SingleFilterUnitEditPart extends AbstractBorderedShapeEditPart {
+
+ /**
+ * @generated
+ */
+ public static final int VISUAL_ID = 3016;
+
+ /**
+ * @generated
+ */
+ protected IFigure contentPane;
+
+ /**
+ * @generated
+ */
+ protected IFigure primaryShape;
+
+ /**
+ * @generated
+ */
+ public SingleFilterUnitEditPart(View view) {
+ super(view);
+ }
+
+ /**
+ * @generated
+ */
+ protected void createDefaultEditPolicies() {
+ installEditPolicy(EditPolicyRoles.CREATION_ROLE,
+ new CreationEditPolicy());
+ super.createDefaultEditPolicies();
+ installEditPolicy(EditPolicyRoles.SEMANTIC_ROLE,
+ new SingleFilterUnitItemSemanticEditPolicy());
+ installEditPolicy(EditPolicyRoles.DRAG_DROP_ROLE,
+ new DragDropEditPolicy());
+ installEditPolicy(EditPolicyRoles.CANONICAL_ROLE,
+ new SingleFilterUnitCanonicalEditPolicy());
+ installEditPolicy(EditPolicy.LAYOUT_ROLE, createLayoutEditPolicy());
+ // XXX need an SCR to runtime to have another abstract superclass that would let children add reasonable editpolicies
+ // removeEditPolicy(org.eclipse.gmf.runtime.diagram.ui.editpolicies.EditPolicyRoles.CONNECTION_HANDLES_ROLE);
+ }
+
+ /**
+ * @generated
+ */
+ protected LayoutEditPolicy createLayoutEditPolicy() {
+ org.eclipse.gmf.runtime.diagram.ui.editpolicies.LayoutEditPolicy lep = new org.eclipse.gmf.runtime.diagram.ui.editpolicies.LayoutEditPolicy() {
+
+ protected EditPolicy createChildEditPolicy(EditPart child) {
+ View childView = (View) child.getModel();
+ switch (ComrelVisualIDRegistry.getVisualID(childView)) {
+ case MultiInputPort5EditPart.VISUAL_ID:
+ case SingleOutputPort2EditPart.VISUAL_ID:
+ return new BorderItemSelectionEditPolicy();
+ }
+ EditPolicy result = child
+ .getEditPolicy(EditPolicy.PRIMARY_DRAG_ROLE);
+ if (result == null) {
+ result = new NonResizableEditPolicy();
+ }
+ return result;
+ }
+
+ protected Command getMoveChildrenCommand(Request request) {
+ return null;
+ }
+
+ protected Command getCreateCommand(CreateRequest request) {
+ return null;
+ }
+ };
+ return lep;
+ }
+
+ /**
+ * @generated
+ */
+ protected IFigure createNodeShape() {
+ return primaryShape = new SingleFilterUnitFigure();
+ }
+
+ /**
+ * @generated
+ */
+ public SingleFilterUnitFigure getPrimaryShape() {
+ return (SingleFilterUnitFigure) primaryShape;
+ }
+
+ /**
+ * @generated NOT
+ */
+ protected boolean addFixedChild(EditPart childEditPart) {
+ if (childEditPart instanceof SingleFilterUnitNameTypeEditPart) {
+ ((SingleFilterUnitNameTypeEditPart) childEditPart)
+ .setLabel(getPrimaryShape()
+ .getFigureSingleFilterUnitLabelFigure());
+ return true;
+ }
+ if (childEditPart instanceof MultiInputPort5EditPart) {
+ BorderItemLocator locator = new BorderItemLocator(getMainFigure(),
+ PositionConstants.NORTH);
+ locator.setCurrentSideOfParent(PositionConstants.NORTH); // Position des Ports
+ locator.setPreferredSideOfParent(PositionConstants.NORTH); // Position des Ports
+ getBorderedFigure().getBorderItemContainer().add(
+ ((MultiInputPort5EditPart) childEditPart).getFigure(),
+ locator);
+ return true;
+ }
+ if (childEditPart instanceof SingleOutputPort2EditPart) {
+ BorderItemLocator locator = new BorderItemLocator(getMainFigure(),
+ PositionConstants.SOUTH);
+ locator.setCurrentSideOfParent(PositionConstants.SOUTH); // Position des Ports
+ locator.setPreferredSideOfParent(PositionConstants.SOUTH); // Position des Ports
+ getBorderedFigure().getBorderItemContainer().add(
+ ((SingleOutputPort2EditPart) childEditPart).getFigure(),
+ locator);
+ return true;
+ }
+ return false;
+ }
+
+ /**
+ * @generated NOT
+ */
+ protected boolean removeFixedChild(EditPart childEditPart) {
+ if (childEditPart instanceof SingleFilterUnitNameTypeEditPart) {
+ return true;
+ }
+ if (childEditPart instanceof MultiInputPort5EditPart) {
+ // getBorderedFigure().getBorderItemContainer().remove(
+ // ((MultiInputPort5EditPart) childEditPart).getFigure());
+ return true;
+ }
+ if (childEditPart instanceof SingleOutputPort2EditPart) {
+ // getBorderedFigure().getBorderItemContainer().remove(
+ // ((SingleOutputPort2EditPart) childEditPart).getFigure());
+ return true;
+ }
+ return false;
+ }
+
+ /**
+ * @generated
+ */
+ protected void addChildVisual(EditPart childEditPart, int index) {
+ if (addFixedChild(childEditPart)) {
+ return;
+ }
+ super.addChildVisual(childEditPart, -1);
+ }
+
+ /**
+ * @generated
+ */
+ protected void removeChildVisual(EditPart childEditPart) {
+ if (removeFixedChild(childEditPart)) {
+ return;
+ }
+ super.removeChildVisual(childEditPart);
+ }
+
+ /**
+ * @generated
+ */
+ protected IFigure getContentPaneFor(IGraphicalEditPart editPart) {
+ if (editPart instanceof IBorderItemEditPart) {
+ return getBorderedFigure().getBorderItemContainer();
+ }
+ return getContentPane();
+ }
+
+ /**
+ * @generated
+ */
+ protected NodeFigure createNodePlate() {
+ DefaultSizeNodeFigure result = new DefaultSizeNodeFigure(40, 40);
+ return result;
+ }
+
+ /**
+ * Creates figure for this edit part.
+ *
+ * Body of this method does not depend on settings in generation model
+ * so you may safely remove <i>generated</i> tag and modify it.
+ *
+ * @generated
+ */
+ protected NodeFigure createMainFigure() {
+ NodeFigure figure = createNodePlate();
+ figure.setLayoutManager(new StackLayout());
+ IFigure shape = createNodeShape();
+ figure.add(shape);
+ contentPane = setupContentPane(shape);
+ return figure;
+ }
+
+ /**
+ * Default implementation treats passed figure as content pane.
+ * Respects layout one may have set for generated figure.
+ * @param nodeShape instance of generated figure class
+ * @generated
+ */
+ protected IFigure setupContentPane(IFigure nodeShape) {
+ if (nodeShape.getLayoutManager() == null) {
+ ConstrainedToolbarLayout layout = new ConstrainedToolbarLayout();
+ layout.setSpacing(5);
+ nodeShape.setLayoutManager(layout);
+ }
+ return nodeShape; // use nodeShape itself as contentPane
+ }
+
+ /**
+ * @generated
+ */
+ public IFigure getContentPane() {
+ if (contentPane != null) {
+ return contentPane;
+ }
+ return super.getContentPane();
+ }
+
+ /**
+ * @generated
+ */
+ protected void setForegroundColor(Color color) {
+ if (primaryShape != null) {
+ primaryShape.setForegroundColor(color);
+ }
+ }
+
+ /**
+ * @generated
+ */
+ protected void setBackgroundColor(Color color) {
+ if (primaryShape != null) {
+ primaryShape.setBackgroundColor(color);
+ }
+ }
+
+ /**
+ * @generated
+ */
+ protected void setLineWidth(int width) {
+ if (primaryShape instanceof Shape) {
+ ((Shape) primaryShape).setLineWidth(width);
+ }
+ }
+
+ /**
+ * @generated
+ */
+ protected void setLineType(int style) {
+ if (primaryShape instanceof Shape) {
+ ((Shape) primaryShape).setLineStyle(style);
+ }
+ }
+
+ /**
+ * @generated
+ */
+ public EditPart getPrimaryChildEditPart() {
+ return getChildBySemanticHint(ComrelVisualIDRegistry
+ .getType(SingleFilterUnitNameTypeEditPart.VISUAL_ID));
+ }
+
+ /**
+ * @generated
+ */
+ public class SingleFilterUnitFigure extends RoundedRectangle {
+
+ /**
+ * @generated
+ */
+ private WrappingLabel fFigureSingleFilterUnitLabelFigure;
+
+ /**
+ * @generated
+ */
+ public SingleFilterUnitFigure() {
+ this.setCornerDimensions(new Dimension(getMapMode().DPtoLP(8),
+ getMapMode().DPtoLP(8)));
+ this.setBorder(new MarginBorder(getMapMode().DPtoLP(5),
+ getMapMode().DPtoLP(5), getMapMode().DPtoLP(5),
+ getMapMode().DPtoLP(5)));
+ createContents();
+ }
+
+ /**
+ * @generated
+ */
+ private void createContents() {
+
+ fFigureSingleFilterUnitLabelFigure = new WrappingLabel();
+ fFigureSingleFilterUnitLabelFigure.setText("SingleFilterUnit");
+
+ this.add(fFigureSingleFilterUnitLabelFigure);
+
+ }
+
+ /**
+ * @generated
+ */
+ public WrappingLabel getFigureSingleFilterUnitLabelFigure() {
+ return fFigureSingleFilterUnitLabelFigure;
+ }
+
+ }
+
+}
diff --git a/org.eclipse.emf.refactor.comrel.diagram/src/comrel/diagram/edit/parts/SingleFilterUnitNameType2EditPart.java b/org.eclipse.emf.refactor.comrel.diagram/src/comrel/diagram/edit/parts/SingleFilterUnitNameType2EditPart.java
new file mode 100644
index 0000000..6c67a33
--- /dev/null
+++ b/org.eclipse.emf.refactor.comrel.diagram/src/comrel/diagram/edit/parts/SingleFilterUnitNameType2EditPart.java
@@ -0,0 +1,576 @@
+/*
+ *
+ */
+package comrel.diagram.edit.parts;
+
+import java.util.Collections;
+import java.util.List;
+
+import org.eclipse.draw2d.IFigure;
+import org.eclipse.draw2d.Label;
+import org.eclipse.draw2d.geometry.Point;
+import org.eclipse.emf.common.notify.Notification;
+import org.eclipse.emf.ecore.EObject;
+import org.eclipse.emf.transaction.RunnableWithResult;
+import org.eclipse.gef.AccessibleEditPart;
+import org.eclipse.gef.EditPolicy;
+import org.eclipse.gef.Request;
+import org.eclipse.gef.requests.DirectEditRequest;
+import org.eclipse.gef.tools.DirectEditManager;
+import org.eclipse.gmf.runtime.common.ui.services.parser.IParser;
+import org.eclipse.gmf.runtime.common.ui.services.parser.IParserEditStatus;
+import org.eclipse.gmf.runtime.common.ui.services.parser.ParserEditStatus;
+import org.eclipse.gmf.runtime.common.ui.services.parser.ParserOptions;
+import org.eclipse.gmf.runtime.diagram.ui.editparts.CompartmentEditPart;
+import org.eclipse.gmf.runtime.diagram.ui.editparts.IGraphicalEditPart;
+import org.eclipse.gmf.runtime.diagram.ui.editparts.ITextAwareEditPart;
+import org.eclipse.gmf.runtime.diagram.ui.editpolicies.LabelDirectEditPolicy;
+import org.eclipse.gmf.runtime.diagram.ui.l10n.DiagramColorRegistry;
+import org.eclipse.gmf.runtime.diagram.ui.requests.RequestConstants;
+import org.eclipse.gmf.runtime.diagram.ui.tools.TextDirectEditManager;
+import org.eclipse.gmf.runtime.draw2d.ui.figures.WrappingLabel;
+import org.eclipse.gmf.runtime.emf.core.util.EObjectAdapter;
+import org.eclipse.gmf.runtime.emf.ui.services.parser.ISemanticParser;
+import org.eclipse.gmf.runtime.notation.FontStyle;
+import org.eclipse.gmf.runtime.notation.NotationPackage;
+import org.eclipse.gmf.runtime.notation.View;
+import org.eclipse.jface.text.contentassist.IContentAssistProcessor;
+import org.eclipse.jface.viewers.ICellEditorValidator;
+import org.eclipse.swt.SWT;
+import org.eclipse.swt.accessibility.AccessibleEvent;
+import org.eclipse.swt.graphics.Color;
+import org.eclipse.swt.graphics.FontData;
+import org.eclipse.swt.graphics.Image;
+
+import comrel.diagram.edit.policies.ComrelTextSelectionEditPolicy;
+import comrel.diagram.part.ComrelVisualIDRegistry;
+import comrel.diagram.providers.ComrelElementTypes;
+import comrel.diagram.providers.ComrelParserProvider;
+
+/**
+ * @generated
+ */
+public class SingleFilterUnitNameType2EditPart extends CompartmentEditPart
+ implements ITextAwareEditPart {
+
+ /**
+ * @generated
+ */
+ public static final int VISUAL_ID = 5031;
+
+ /**
+ * @generated
+ */
+ private DirectEditManager manager;
+
+ /**
+ * @generated
+ */
+ private IParser parser;
+
+ /**
+ * @generated
+ */
+ private List<?> parserElements;
+
+ /**
+ * @generated
+ */
+ private String defaultText;
+
+ /**
+ * @generated
+ */
+ public SingleFilterUnitNameType2EditPart(View view) {
+ super(view);
+ }
+
+ /**
+ * @generated
+ */
+ protected void createDefaultEditPolicies() {
+ super.createDefaultEditPolicies();
+ installEditPolicy(EditPolicy.SELECTION_FEEDBACK_ROLE,
+ new ComrelTextSelectionEditPolicy());
+ installEditPolicy(EditPolicy.DIRECT_EDIT_ROLE,
+ new LabelDirectEditPolicy());
+ installEditPolicy(EditPolicy.PRIMARY_DRAG_ROLE,
+ new CompositeRefactoringEditPart.NodeLabelDragPolicy());
+ }
+
+ /**
+ * @generated
+ */
+ protected String getLabelTextHelper(IFigure figure) {
+ if (figure instanceof WrappingLabel) {
+ return ((WrappingLabel) figure).getText();
+ } else {
+ return ((Label) figure).getText();
+ }
+ }
+
+ /**
+ * @generated
+ */
+ protected void setLabelTextHelper(IFigure figure, String text) {
+ if (figure instanceof WrappingLabel) {
+ ((WrappingLabel) figure).setText(text);
+ } else {
+ ((Label) figure).setText(text);
+ }
+ }
+
+ /**
+ * @generated
+ */
+ protected Image getLabelIconHelper(IFigure figure) {
+ if (figure instanceof WrappingLabel) {
+ return ((WrappingLabel) figure).getIcon();
+ } else {
+ return ((Label) figure).getIcon();
+ }
+ }
+
+ /**
+ * @generated
+ */
+ protected void setLabelIconHelper(IFigure figure, Image icon) {
+ if (figure instanceof WrappingLabel) {
+ ((WrappingLabel) figure).setIcon(icon);
+ } else {
+ ((Label) figure).setIcon(icon);
+ }
+ }
+
+ /**
+ * @generated
+ */
+ public void setLabel(WrappingLabel figure) {
+ unregisterVisuals();
+ setFigure(figure);
+ defaultText = getLabelTextHelper(figure);
+ registerVisuals();
+ refreshVisuals();
+ }
+
+ /**
+ * @generated
+ */
+ @SuppressWarnings("rawtypes")
+ protected List getModelChildren() {
+ return Collections.EMPTY_LIST;
+ }
+
+ /**
+ * @generated
+ */
+ public IGraphicalEditPart getChildBySemanticHint(String semanticHint) {
+ return null;
+ }
+
+ /**
+ * @generated
+ */
+ protected EObject getParserElement() {
+ return resolveSemanticElement();
+ }
+
+ /**
+ * @generated
+ */
+ protected Image getLabelIcon() {
+ return null;
+ }
+
+ /**
+ * @generated
+ */
+ protected String getLabelText() {
+ String text = null;
+ EObject parserElement = getParserElement();
+ if (parserElement != null && getParser() != null) {
+ text = getParser().getPrintString(
+ new EObjectAdapter(parserElement),
+ getParserOptions().intValue());
+ }
+ if (text == null || text.length() == 0) {
+ text = defaultText;
+ }
+ return text;
+ }
+
+ /**
+ * @generated
+ */
+ public void setLabelText(String text) {
+ setLabelTextHelper(getFigure(), text);
+ Object pdEditPolicy = getEditPolicy(EditPolicy.PRIMARY_DRAG_ROLE);
+ if (pdEditPolicy instanceof ComrelTextSelectionEditPolicy) {
+ ((ComrelTextSelectionEditPolicy) pdEditPolicy).refreshFeedback();
+ }
+ Object sfEditPolicy = getEditPolicy(EditPolicy.SELECTION_FEEDBACK_ROLE);
+ if (sfEditPolicy instanceof ComrelTextSelectionEditPolicy) {
+ ((ComrelTextSelectionEditPolicy) sfEditPolicy).refreshFeedback();
+ }
+ }
+
+ /**
+ * @generated
+ */
+ public String getEditText() {
+ if (getParserElement() == null || getParser() == null) {
+ return ""; //$NON-NLS-1$
+ }
+ return getParser().getEditString(
+ new EObjectAdapter(getParserElement()),
+ getParserOptions().intValue());
+ }
+
+ /**
+ * @generated
+ */
+ protected boolean isEditable() {
+ return getParser() != null;
+ }
+
+ /**
+ * @generated
+ */
+ public ICellEditorValidator getEditTextValidator() {
+ return new ICellEditorValidator() {
+
+ public String isValid(final Object value) {
+ if (value instanceof String) {
+ final EObject element = getParserElement();
+ final IParser parser = getParser();
+ try {
+ IParserEditStatus valid = (IParserEditStatus) getEditingDomain()
+ .runExclusive(
+ new RunnableWithResult.Impl<IParserEditStatus>() {
+
+ public void run() {
+ setResult(parser
+ .isValidEditString(
+ new EObjectAdapter(
+ element),
+ (String) value));
+ }
+ });
+ return valid.getCode() == ParserEditStatus.EDITABLE ? null
+ : valid.getMessage();
+ } catch (InterruptedException ie) {
+ ie.printStackTrace();
+ }
+ }
+
+ // shouldn't get here
+ return null;
+ }
+ };
+ }
+
+ /**
+ * @generated
+ */
+ public IContentAssistProcessor getCompletionProcessor() {
+ if (getParserElement() == null || getParser() == null) {
+ return null;
+ }
+ return getParser().getCompletionProcessor(
+ new EObjectAdapter(getParserElement()));
+ }
+
+ /**
+ * @generated
+ */
+ public ParserOptions getParserOptions() {
+ return ParserOptions.NONE;
+ }
+
+ /**
+ * @generated
+ */
+ public IParser getParser() {
+ if (parser == null) {
+ parser = ComrelParserProvider
+ .getParser(
+ ComrelElementTypes.SingleFilterUnit_3040,
+ getParserElement(),
+ ComrelVisualIDRegistry
+ .getType(comrel.diagram.edit.parts.SingleFilterUnitNameType2EditPart.VISUAL_ID));
+ }
+ return parser;
+ }
+
+ /**
+ * @generated
+ */
+ protected DirectEditManager getManager() {
+ if (manager == null) {
+ setManager(new TextDirectEditManager(this,
+ TextDirectEditManager.getTextCellEditorClass(this),
+ ComrelEditPartFactory.getTextCellEditorLocator(this)));
+ }
+ return manager;
+ }
+
+ /**
+ * @generated
+ */
+ protected void setManager(DirectEditManager manager) {
+ this.manager = manager;
+ }
+
+ /**
+ * @generated
+ */
+ protected void performDirectEdit() {
+ getManager().show();
+ }
+
+ /**
+ * @generated
+ */
+ protected void performDirectEdit(Point eventLocation) {
+ if (getManager().getClass() == TextDirectEditManager.class) {
+ ((TextDirectEditManager) getManager()).show(eventLocation
+ .getSWTPoint());
+ }
+ }
+
+ /**
+ * @generated
+ */
+ private void performDirectEdit(char initialCharacter) {
+ if (getManager() instanceof TextDirectEditManager) {
+ ((TextDirectEditManager) getManager()).show(initialCharacter);
+ } else {
+ performDirectEdit();
+ }
+ }
+
+ /**
+ * @generated
+ */
+ protected void performDirectEditRequest(Request request) {
+ final Request theRequest = request;
+ try {
+ getEditingDomain().runExclusive(new Runnable() {
+
+ public void run() {
+ if (isActive() && isEditable()) {
+ if (theRequest
+ .getExtendedData()
+ .get(RequestConstants.REQ_DIRECTEDIT_EXTENDEDDATA_INITIAL_CHAR) instanceof Character) {
+ Character initialChar = (Character) theRequest
+ .getExtendedData()
+ .get(RequestConstants.REQ_DIRECTEDIT_EXTENDEDDATA_INITIAL_CHAR);
+ performDirectEdit(initialChar.charValue());
+ } else if ((theRequest instanceof DirectEditRequest)
+ && (getEditText().equals(getLabelText()))) {
+ DirectEditRequest editRequest = (DirectEditRequest) theRequest;
+ performDirectEdit(editRequest.getLocation());
+ } else {
+ performDirectEdit();
+ }
+ }
+ }
+ });
+ } catch (InterruptedException e) {
+ e.printStackTrace();
+ }
+ }
+
+ /**
+ * @generated
+ */
+ protected void refreshVisuals() {
+ super.refreshVisuals();
+ refreshLabel();
+ refreshFont();
+ refreshFontColor();
+ refreshUnderline();
+ refreshStrikeThrough();
+ }
+
+ /**
+ * @generated
+ */
+ protected void refreshLabel() {
+ setLabelTextHelper(getFigure(), getLabelText());
+ setLabelIconHelper(getFigure(), getLabelIcon());
+ Object pdEditPolicy = getEditPolicy(EditPolicy.PRIMARY_DRAG_ROLE);
+ if (pdEditPolicy instanceof ComrelTextSelectionEditPolicy) {
+ ((ComrelTextSelectionEditPolicy) pdEditPolicy).refreshFeedback();
+ }
+ Object sfEditPolicy = getEditPolicy(EditPolicy.SELECTION_FEEDBACK_ROLE);
+ if (sfEditPolicy instanceof ComrelTextSelectionEditPolicy) {
+ ((ComrelTextSelectionEditPolicy) sfEditPolicy).refreshFeedback();
+ }
+ }
+
+ /**
+ * @generated
+ */
+ protected void refreshUnderline() {
+ FontStyle style = (FontStyle) getFontStyleOwnerView().getStyle(
+ NotationPackage.eINSTANCE.getFontStyle());
+ if (style != null && getFigure() instanceof WrappingLabel) {
+ ((WrappingLabel) getFigure()).setTextUnderline(style.isUnderline());
+ }
+ }
+
+ /**
+ * @generated
+ */
+ protected void refreshStrikeThrough() {
+ FontStyle style = (FontStyle) getFontStyleOwnerView().getStyle(
+ NotationPackage.eINSTANCE.getFontStyle());
+ if (style != null && getFigure() instanceof WrappingLabel) {
+ ((WrappingLabel) getFigure()).setTextStrikeThrough(style
+ .isStrikeThrough());
+ }
+ }
+
+ /**
+ * @generated
+ */
+ protected void refreshFont() {
+ FontStyle style = (FontStyle) getFontStyleOwnerView().getStyle(
+ NotationPackage.eINSTANCE.getFontStyle());
+ if (style != null) {
+ FontData fontData = new FontData(style.getFontName(),
+ style.getFontHeight(), (style.isBold() ? SWT.BOLD
+ : SWT.NORMAL)
+ | (style.isItalic() ? SWT.ITALIC : SWT.NORMAL));
+ setFont(fontData);
+ }
+ }
+
+ /**
+ * @generated
+ */
+ protected void setFontColor(Color color) {
+ getFigure().setForegroundColor(color);
+ }
+
+ /**
+ * @generated
+ */
+ protected void addSemanticListeners() {
+ if (getParser() instanceof ISemanticParser) {
+ EObject element = resolveSemanticElement();
+ parserElements = ((ISemanticParser) getParser())
+ .getSemanticElementsBeingParsed(element);
+ for (int i = 0; i < parserElements.size(); i++) {
+ addListenerFilter(
+ "SemanticModel" + i, this, (EObject) parserElements.get(i)); //$NON-NLS-1$
+ }
+ } else {
+ super.addSemanticListeners();
+ }
+ }
+
+ /**
+ * @generated
+ */
+ protected void removeSemanticListeners() {
+ if (parserElements != null) {
+ for (int i = 0; i < parserElements.size(); i++) {
+ removeListenerFilter("SemanticModel" + i); //$NON-NLS-1$
+ }
+ } else {
+ super.removeSemanticListeners();
+ }
+ }
+
+ /**
+ * @generated
+ */
+ protected AccessibleEditPart getAccessibleEditPart() {
+ if (accessibleEP == null) {
+ accessibleEP = new AccessibleGraphicalEditPart() {
+
+ public void getName(AccessibleEvent e) {
+ e.result = getLabelTextHelper(getFigure());
+ }
+ };
+ }
+ return accessibleEP;
+ }
+
+ /**
+ * @generated
+ */
+ private View getFontStyleOwnerView() {
+ return getPrimaryView();
+ }
+
+ /**
+ * @generated
+ */
+ protected void addNotationalListeners() {
+ super.addNotationalListeners();
+ addListenerFilter("PrimaryView", this, getPrimaryView()); //$NON-NLS-1$
+ }
+
+ /**
+ * @generated
+ */
+ protected void removeNotationalListeners() {
+ super.removeNotationalListeners();
+ removeListenerFilter("PrimaryView"); //$NON-NLS-1$
+ }
+
+ /**
+ * @generated
+ */
+ protected void handleNotificationEvent(Notification event) {
+ Object feature = event.getFeature();
+ if (NotationPackage.eINSTANCE.getFontStyle_FontColor().equals(feature)) {
+ Integer c = (Integer) event.getNewValue();
+ setFontColor(DiagramColorRegistry.getInstance().getColor(c));
+ } else if (NotationPackage.eINSTANCE.getFontStyle_Underline().equals(
+ feature)) {
+ refreshUnderline();
+ } else if (NotationPackage.eINSTANCE.getFontStyle_StrikeThrough()
+ .equals(feature)) {
+ refreshStrikeThrough();
+ } else if (NotationPackage.eINSTANCE.getFontStyle_FontHeight().equals(
+ feature)
+ || NotationPackage.eINSTANCE.getFontStyle_FontName().equals(
+ feature)
+ || NotationPackage.eINSTANCE.getFontStyle_Bold()
+ .equals(feature)
+ || NotationPackage.eINSTANCE.getFontStyle_Italic().equals(
+ feature)) {
+ refreshFont();
+ } else {
+ if (getParser() != null
+ && getParser().isAffectingEvent(event,
+ getParserOptions().intValue())) {
+ refreshLabel();
+ }
+ if (getParser() instanceof ISemanticParser) {
+ ISemanticParser modelParser = (ISemanticParser) getParser();
+ if (modelParser.areSemanticElementsAffected(null, event)) {
+ removeSemanticListeners();
+ if (resolveSemanticElement() != null) {
+ addSemanticListeners();
+ }
+ refreshLabel();
+ }
+ }
+ }
+ super.handleNotificationEvent(event);
+ }
+
+ /**
+ * @generated
+ */
+ protected IFigure createFigure() {
+ // Parent should assign one using setLabel() method
+ return null;
+ }
+
+}
diff --git a/org.eclipse.emf.refactor.comrel.diagram/src/comrel/diagram/edit/parts/SingleFilterUnitNameType3EditPart.java b/org.eclipse.emf.refactor.comrel.diagram/src/comrel/diagram/edit/parts/SingleFilterUnitNameType3EditPart.java
new file mode 100644
index 0000000..7c21250
--- /dev/null
+++ b/org.eclipse.emf.refactor.comrel.diagram/src/comrel/diagram/edit/parts/SingleFilterUnitNameType3EditPart.java
@@ -0,0 +1,576 @@
+/*
+ *
+ */
+package comrel.diagram.edit.parts;
+
+import java.util.Collections;
+import java.util.List;
+
+import org.eclipse.draw2d.IFigure;
+import org.eclipse.draw2d.Label;
+import org.eclipse.draw2d.geometry.Point;
+import org.eclipse.emf.common.notify.Notification;
+import org.eclipse.emf.ecore.EObject;
+import org.eclipse.emf.transaction.RunnableWithResult;
+import org.eclipse.gef.AccessibleEditPart;
+import org.eclipse.gef.EditPolicy;
+import org.eclipse.gef.Request;
+import org.eclipse.gef.requests.DirectEditRequest;
+import org.eclipse.gef.tools.DirectEditManager;
+import org.eclipse.gmf.runtime.common.ui.services.parser.IParser;
+import org.eclipse.gmf.runtime.common.ui.services.parser.IParserEditStatus;
+import org.eclipse.gmf.runtime.common.ui.services.parser.ParserEditStatus;
+import org.eclipse.gmf.runtime.common.ui.services.parser.ParserOptions;
+import org.eclipse.gmf.runtime.diagram.ui.editparts.CompartmentEditPart;
+import org.eclipse.gmf.runtime.diagram.ui.editparts.IGraphicalEditPart;
+import org.eclipse.gmf.runtime.diagram.ui.editparts.ITextAwareEditPart;
+import org.eclipse.gmf.runtime.diagram.ui.editpolicies.LabelDirectEditPolicy;
+import org.eclipse.gmf.runtime.diagram.ui.l10n.DiagramColorRegistry;
+import org.eclipse.gmf.runtime.diagram.ui.requests.RequestConstants;
+import org.eclipse.gmf.runtime.diagram.ui.tools.TextDirectEditManager;
+import org.eclipse.gmf.runtime.draw2d.ui.figures.WrappingLabel;
+import org.eclipse.gmf.runtime.emf.core.util.EObjectAdapter;
+import org.eclipse.gmf.runtime.emf.ui.services.parser.ISemanticParser;
+import org.eclipse.gmf.runtime.notation.FontStyle;
+import org.eclipse.gmf.runtime.notation.NotationPackage;
+import org.eclipse.gmf.runtime.notation.View;
+import org.eclipse.jface.text.contentassist.IContentAssistProcessor;
+import org.eclipse.jface.viewers.ICellEditorValidator;
+import org.eclipse.swt.SWT;
+import org.eclipse.swt.accessibility.AccessibleEvent;
+import org.eclipse.swt.graphics.Color;
+import org.eclipse.swt.graphics.FontData;
+import org.eclipse.swt.graphics.Image;
+
+import comrel.diagram.edit.policies.ComrelTextSelectionEditPolicy;
+import comrel.diagram.part.ComrelVisualIDRegistry;
+import comrel.diagram.providers.ComrelElementTypes;
+import comrel.diagram.providers.ComrelParserProvider;
+
+/**
+ * @generated
+ */
+public class SingleFilterUnitNameType3EditPart extends CompartmentEditPart
+ implements ITextAwareEditPart {
+
+ /**
+ * @generated
+ */
+ public static final int VISUAL_ID = 5038;
+
+ /**
+ * @generated
+ */
+ private DirectEditManager manager;
+
+ /**
+ * @generated
+ */
+ private IParser parser;
+
+ /**
+ * @generated
+ */
+ private List<?> parserElements;
+
+ /**
+ * @generated
+ */
+ private String defaultText;
+
+ /**
+ * @generated
+ */
+ public SingleFilterUnitNameType3EditPart(View view) {
+ super(view);
+ }
+
+ /**
+ * @generated
+ */
+ protected void createDefaultEditPolicies() {
+ super.createDefaultEditPolicies();
+ installEditPolicy(EditPolicy.SELECTION_FEEDBACK_ROLE,
+ new ComrelTextSelectionEditPolicy());
+ installEditPolicy(EditPolicy.DIRECT_EDIT_ROLE,
+ new LabelDirectEditPolicy());
+ installEditPolicy(EditPolicy.PRIMARY_DRAG_ROLE,
+ new CompositeRefactoringEditPart.NodeLabelDragPolicy());
+ }
+
+ /**
+ * @generated
+ */
+ protected String getLabelTextHelper(IFigure figure) {
+ if (figure instanceof WrappingLabel) {
+ return ((WrappingLabel) figure).getText();
+ } else {
+ return ((Label) figure).getText();
+ }
+ }
+
+ /**
+ * @generated
+ */
+ protected void setLabelTextHelper(IFigure figure, String text) {
+ if (figure instanceof WrappingLabel) {
+ ((WrappingLabel) figure).setText(text);
+ } else {
+ ((Label) figure).setText(text);
+ }
+ }
+
+ /**
+ * @generated
+ */
+ protected Image getLabelIconHelper(IFigure figure) {
+ if (figure instanceof WrappingLabel) {
+ return ((WrappingLabel) figure).getIcon();
+ } else {
+ return ((Label) figure).getIcon();
+ }
+ }
+
+ /**
+ * @generated
+ */
+ protected void setLabelIconHelper(IFigure figure, Image icon) {
+ if (figure instanceof WrappingLabel) {
+ ((WrappingLabel) figure).setIcon(icon);
+ } else {
+ ((Label) figure).setIcon(icon);
+ }
+ }
+
+ /**
+ * @generated
+ */
+ public void setLabel(WrappingLabel figure) {
+ unregisterVisuals();
+ setFigure(figure);
+ defaultText = getLabelTextHelper(figure);
+ registerVisuals();
+ refreshVisuals();
+ }
+
+ /**
+ * @generated
+ */
+ @SuppressWarnings("rawtypes")
+ protected List getModelChildren() {
+ return Collections.EMPTY_LIST;
+ }
+
+ /**
+ * @generated
+ */
+ public IGraphicalEditPart getChildBySemanticHint(String semanticHint) {
+ return null;
+ }
+
+ /**
+ * @generated
+ */
+ protected EObject getParserElement() {
+ return resolveSemanticElement();
+ }
+
+ /**
+ * @generated
+ */
+ protected Image getLabelIcon() {
+ return null;
+ }
+
+ /**
+ * @generated
+ */
+ protected String getLabelText() {
+ String text = null;
+ EObject parserElement = getParserElement();
+ if (parserElement != null && getParser() != null) {
+ text = getParser().getPrintString(
+ new EObjectAdapter(parserElement),
+ getParserOptions().intValue());
+ }
+ if (text == null || text.length() == 0) {
+ text = defaultText;
+ }
+ return text;
+ }
+
+ /**
+ * @generated
+ */
+ public void setLabelText(String text) {
+ setLabelTextHelper(getFigure(), text);
+ Object pdEditPolicy = getEditPolicy(EditPolicy.PRIMARY_DRAG_ROLE);
+ if (pdEditPolicy instanceof ComrelTextSelectionEditPolicy) {
+ ((ComrelTextSelectionEditPolicy) pdEditPolicy).refreshFeedback();
+ }
+ Object sfEditPolicy = getEditPolicy(EditPolicy.SELECTION_FEEDBACK_ROLE);
+ if (sfEditPolicy instanceof ComrelTextSelectionEditPolicy) {
+ ((ComrelTextSelectionEditPolicy) sfEditPolicy).refreshFeedback();
+ }
+ }
+
+ /**
+ * @generated
+ */
+ public String getEditText() {
+ if (getParserElement() == null || getParser() == null) {
+ return ""; //$NON-NLS-1$
+ }
+ return getParser().getEditString(
+ new EObjectAdapter(getParserElement()),
+ getParserOptions().intValue());
+ }
+
+ /**
+ * @generated
+ */
+ protected boolean isEditable() {
+ return getParser() != null;
+ }
+
+ /**
+ * @generated
+ */
+ public ICellEditorValidator getEditTextValidator() {
+ return new ICellEditorValidator() {
+
+ public String isValid(final Object value) {
+ if (value instanceof String) {
+ final EObject element = getParserElement();
+ final IParser parser = getParser();
+ try {
+ IParserEditStatus valid = (IParserEditStatus) getEditingDomain()
+ .runExclusive(
+ new RunnableWithResult.Impl<IParserEditStatus>() {
+
+ public void run() {
+ setResult(parser
+ .isValidEditString(
+ new EObjectAdapter(
+ element),
+ (String) value));
+ }
+ });
+ return valid.getCode() == ParserEditStatus.EDITABLE ? null
+ : valid.getMessage();
+ } catch (InterruptedException ie) {
+ ie.printStackTrace();
+ }
+ }
+
+ // shouldn't get here
+ return null;
+ }
+ };
+ }
+
+ /**
+ * @generated
+ */
+ public IContentAssistProcessor getCompletionProcessor() {
+ if (getParserElement() == null || getParser() == null) {
+ return null;
+ }
+ return getParser().getCompletionProcessor(
+ new EObjectAdapter(getParserElement()));
+ }
+
+ /**
+ * @generated
+ */
+ public ParserOptions getParserOptions() {
+ return ParserOptions.NONE;
+ }
+
+ /**
+ * @generated
+ */
+ public IParser getParser() {
+ if (parser == null) {
+ parser = ComrelParserProvider
+ .getParser(
+ ComrelElementTypes.SingleFilterUnit_3052,
+ getParserElement(),
+ ComrelVisualIDRegistry
+ .getType(comrel.diagram.edit.parts.SingleFilterUnitNameType3EditPart.VISUAL_ID));
+ }
+ return parser;
+ }
+
+ /**
+ * @generated
+ */
+ protected DirectEditManager getManager() {
+ if (manager == null) {
+ setManager(new TextDirectEditManager(this,
+ TextDirectEditManager.getTextCellEditorClass(this),
+ ComrelEditPartFactory.getTextCellEditorLocator(this)));
+ }
+ return manager;
+ }
+
+ /**
+ * @generated
+ */
+ protected void setManager(DirectEditManager manager) {
+ this.manager = manager;
+ }
+
+ /**
+ * @generated
+ */
+ protected void performDirectEdit() {
+ getManager().show();
+ }
+
+ /**
+ * @generated
+ */
+ protected void performDirectEdit(Point eventLocation) {
+ if (getManager().getClass() == TextDirectEditManager.class) {
+ ((TextDirectEditManager) getManager()).show(eventLocation
+ .getSWTPoint());
+ }
+ }
+
+ /**
+ * @generated
+ */
+ private void performDirectEdit(char initialCharacter) {
+ if (getManager() instanceof TextDirectEditManager) {
+ ((TextDirectEditManager) getManager()).show(initialCharacter);
+ } else {
+ performDirectEdit();
+ }
+ }
+
+ /**
+ * @generated
+ */
+ protected void performDirectEditRequest(Request request) {
+ final Request theRequest = request;
+ try {
+ getEditingDomain().runExclusive(new Runnable() {
+
+ public void run() {
+ if (isActive() && isEditable()) {
+ if (theRequest
+ .getExtendedData()
+ .get(RequestConstants.REQ_DIRECTEDIT_EXTENDEDDATA_INITIAL_CHAR) instanceof Character) {
+ Character initialChar = (Character) theRequest
+ .getExtendedData()
+ .get(RequestConstants.REQ_DIRECTEDIT_EXTENDEDDATA_INITIAL_CHAR);
+ performDirectEdit(initialChar.charValue());
+ } else if ((theRequest instanceof DirectEditRequest)
+ && (getEditText().equals(getLabelText()))) {
+ DirectEditRequest editRequest = (DirectEditRequest) theRequest;
+ performDirectEdit(editRequest.getLocation());
+ } else {
+ performDirectEdit();
+ }
+ }
+ }
+ });
+ } catch (InterruptedException e) {
+ e.printStackTrace();
+ }
+ }
+
+ /**
+ * @generated
+ */
+ protected void refreshVisuals() {
+ super.refreshVisuals();
+ refreshLabel();
+ refreshFont();
+ refreshFontColor();
+ refreshUnderline();
+ refreshStrikeThrough();
+ }
+
+ /**
+ * @generated
+ */
+ protected void refreshLabel() {
+ setLabelTextHelper(getFigure(), getLabelText());
+ setLabelIconHelper(getFigure(), getLabelIcon());
+ Object pdEditPolicy = getEditPolicy(EditPolicy.PRIMARY_DRAG_ROLE);
+ if (pdEditPolicy instanceof ComrelTextSelectionEditPolicy) {
+ ((ComrelTextSelectionEditPolicy) pdEditPolicy).refreshFeedback();
+ }
+ Object sfEditPolicy = getEditPolicy(EditPolicy.SELECTION_FEEDBACK_ROLE);
+ if (sfEditPolicy instanceof ComrelTextSelectionEditPolicy) {
+ ((ComrelTextSelectionEditPolicy) sfEditPolicy).refreshFeedback();
+ }
+ }
+
+ /**
+ * @generated
+ */
+ protected void refreshUnderline() {
+ FontStyle style = (FontStyle) getFontStyleOwnerView().getStyle(
+ NotationPackage.eINSTANCE.getFontStyle());
+ if (style != null && getFigure() instanceof WrappingLabel) {
+ ((WrappingLabel) getFigure()).setTextUnderline(style.isUnderline());
+ }
+ }
+
+ /**
+ * @generated
+ */
+ protected void refreshStrikeThrough() {
+ FontStyle style = (FontStyle) getFontStyleOwnerView().getStyle(
+ NotationPackage.eINSTANCE.getFontStyle());
+ if (style != null && getFigure() instanceof WrappingLabel) {
+ ((WrappingLabel) getFigure()).setTextStrikeThrough(style
+ .isStrikeThrough());
+ }
+ }
+
+ /**
+ * @generated
+ */
+ protected void refreshFont() {
+ FontStyle style = (FontStyle) getFontStyleOwnerView().getStyle(
+ NotationPackage.eINSTANCE.getFontStyle());
+ if (style != null) {
+ FontData fontData = new FontData(style.getFontName(),
+ style.getFontHeight(), (style.isBold() ? SWT.BOLD
+ : SWT.NORMAL)
+ | (style.isItalic() ? SWT.ITALIC : SWT.NORMAL));
+ setFont(fontData);
+ }
+ }
+
+ /**
+ * @generated
+ */
+ protected void setFontColor(Color color) {
+ getFigure().setForegroundColor(color);
+ }
+
+ /**
+ * @generated
+ */
+ protected void addSemanticListeners() {
+ if (getParser() instanceof ISemanticParser) {
+ EObject element = resolveSemanticElement();
+ parserElements = ((ISemanticParser) getParser())
+ .getSemanticElementsBeingParsed(element);
+ for (int i = 0; i < parserElements.size(); i++) {
+ addListenerFilter(
+ "SemanticModel" + i, this, (EObject) parserElements.get(i)); //$NON-NLS-1$
+ }
+ } else {
+ super.addSemanticListeners();
+ }
+ }
+
+ /**
+ * @generated
+ */
+ protected void removeSemanticListeners() {
+ if (parserElements != null) {
+ for (int i = 0; i < parserElements.size(); i++) {
+ removeListenerFilter("SemanticModel" + i); //$NON-NLS-1$
+ }
+ } else {
+ super.removeSemanticListeners();
+ }
+ }
+
+ /**
+ * @generated
+ */
+ protected AccessibleEditPart getAccessibleEditPart() {
+ if (accessibleEP == null) {
+ accessibleEP = new AccessibleGraphicalEditPart() {
+
+ public void getName(AccessibleEvent e) {
+ e.result = getLabelTextHelper(getFigure());
+ }
+ };
+ }
+ return accessibleEP;
+ }
+
+ /**
+ * @generated
+ */
+ private View getFontStyleOwnerView() {
+ return getPrimaryView();
+ }
+
+ /**
+ * @generated
+ */
+ protected void addNotationalListeners() {
+ super.addNotationalListeners();
+ addListenerFilter("PrimaryView", this, getPrimaryView()); //$NON-NLS-1$
+ }
+
+ /**
+ * @generated
+ */
+ protected void removeNotationalListeners() {
+ super.removeNotationalListeners();
+ removeListenerFilter("PrimaryView"); //$NON-NLS-1$
+ }
+
+ /**
+ * @generated
+ */
+ protected void handleNotificationEvent(Notification event) {
+ Object feature = event.getFeature();
+ if (NotationPackage.eINSTANCE.getFontStyle_FontColor().equals(feature)) {
+ Integer c = (Integer) event.getNewValue();
+ setFontColor(DiagramColorRegistry.getInstance().getColor(c));
+ } else if (NotationPackage.eINSTANCE.getFontStyle_Underline().equals(
+ feature)) {
+ refreshUnderline();
+ } else if (NotationPackage.eINSTANCE.getFontStyle_StrikeThrough()
+ .equals(feature)) {
+ refreshStrikeThrough();
+ } else if (NotationPackage.eINSTANCE.getFontStyle_FontHeight().equals(
+ feature)
+ || NotationPackage.eINSTANCE.getFontStyle_FontName().equals(
+ feature)
+ || NotationPackage.eINSTANCE.getFontStyle_Bold()
+ .equals(feature)
+ || NotationPackage.eINSTANCE.getFontStyle_Italic().equals(
+ feature)) {
+ refreshFont();
+ } else {
+ if (getParser() != null
+ && getParser().isAffectingEvent(event,
+ getParserOptions().intValue())) {
+ refreshLabel();
+ }
+ if (getParser() instanceof ISemanticParser) {
+ ISemanticParser modelParser = (ISemanticParser) getParser();
+ if (modelParser.areSemanticElementsAffected(null, event)) {
+ removeSemanticListeners();
+ if (resolveSemanticElement() != null) {
+ addSemanticListeners();
+ }
+ refreshLabel();
+ }
+ }
+ }
+ super.handleNotificationEvent(event);
+ }
+
+ /**
+ * @generated
+ */
+ protected IFigure createFigure() {
+ // Parent should assign one using setLabel() method
+ return null;
+ }
+
+}
diff --git a/org.eclipse.emf.refactor.comrel.diagram/src/comrel/diagram/edit/parts/SingleFilterUnitNameType4EditPart.java b/org.eclipse.emf.refactor.comrel.diagram/src/comrel/diagram/edit/parts/SingleFilterUnitNameType4EditPart.java
new file mode 100644
index 0000000..294480a
--- /dev/null
+++ b/org.eclipse.emf.refactor.comrel.diagram/src/comrel/diagram/edit/parts/SingleFilterUnitNameType4EditPart.java
@@ -0,0 +1,576 @@
+/*
+ *
+ */
+package comrel.diagram.edit.parts;
+
+import java.util.Collections;
+import java.util.List;
+
+import org.eclipse.draw2d.IFigure;
+import org.eclipse.draw2d.Label;
+import org.eclipse.draw2d.geometry.Point;
+import org.eclipse.emf.common.notify.Notification;
+import org.eclipse.emf.ecore.EObject;
+import org.eclipse.emf.transaction.RunnableWithResult;
+import org.eclipse.gef.AccessibleEditPart;
+import org.eclipse.gef.EditPolicy;
+import org.eclipse.gef.Request;
+import org.eclipse.gef.requests.DirectEditRequest;
+import org.eclipse.gef.tools.DirectEditManager;
+import org.eclipse.gmf.runtime.common.ui.services.parser.IParser;
+import org.eclipse.gmf.runtime.common.ui.services.parser.IParserEditStatus;
+import org.eclipse.gmf.runtime.common.ui.services.parser.ParserEditStatus;
+import org.eclipse.gmf.runtime.common.ui.services.parser.ParserOptions;
+import org.eclipse.gmf.runtime.diagram.ui.editparts.CompartmentEditPart;
+import org.eclipse.gmf.runtime.diagram.ui.editparts.IGraphicalEditPart;
+import org.eclipse.gmf.runtime.diagram.ui.editparts.ITextAwareEditPart;
+import org.eclipse.gmf.runtime.diagram.ui.editpolicies.LabelDirectEditPolicy;
+import org.eclipse.gmf.runtime.diagram.ui.l10n.DiagramColorRegistry;
+import org.eclipse.gmf.runtime.diagram.ui.requests.RequestConstants;
+import org.eclipse.gmf.runtime.diagram.ui.tools.TextDirectEditManager;
+import org.eclipse.gmf.runtime.draw2d.ui.figures.WrappingLabel;
+import org.eclipse.gmf.runtime.emf.core.util.EObjectAdapter;
+import org.eclipse.gmf.runtime.emf.ui.services.parser.ISemanticParser;
+import org.eclipse.gmf.runtime.notation.FontStyle;
+import org.eclipse.gmf.runtime.notation.NotationPackage;
+import org.eclipse.gmf.runtime.notation.View;
+import org.eclipse.jface.text.contentassist.IContentAssistProcessor;
+import org.eclipse.jface.viewers.ICellEditorValidator;
+import org.eclipse.swt.SWT;
+import org.eclipse.swt.accessibility.AccessibleEvent;
+import org.eclipse.swt.graphics.Color;
+import org.eclipse.swt.graphics.FontData;
+import org.eclipse.swt.graphics.Image;
+
+import comrel.diagram.edit.policies.ComrelTextSelectionEditPolicy;
+import comrel.diagram.part.ComrelVisualIDRegistry;
+import comrel.diagram.providers.ComrelElementTypes;
+import comrel.diagram.providers.ComrelParserProvider;
+
+/**
+ * @generated
+ */
+public class SingleFilterUnitNameType4EditPart extends CompartmentEditPart
+ implements ITextAwareEditPart {
+
+ /**
+ * @generated
+ */
+ public static final int VISUAL_ID = 5042;
+
+ /**
+ * @generated
+ */
+ private DirectEditManager manager;
+
+ /**
+ * @generated
+ */
+ private IParser parser;
+
+ /**
+ * @generated
+ */
+ private List<?> parserElements;
+
+ /**
+ * @generated
+ */
+ private String defaultText;
+
+ /**
+ * @generated
+ */
+ public SingleFilterUnitNameType4EditPart(View view) {
+ super(view);
+ }
+
+ /**
+ * @generated
+ */
+ protected void createDefaultEditPolicies() {
+ super.createDefaultEditPolicies();
+ installEditPolicy(EditPolicy.SELECTION_FEEDBACK_ROLE,
+ new ComrelTextSelectionEditPolicy());
+ installEditPolicy(EditPolicy.DIRECT_EDIT_ROLE,
+ new LabelDirectEditPolicy());
+ installEditPolicy(EditPolicy.PRIMARY_DRAG_ROLE,
+ new CompositeRefactoringEditPart.NodeLabelDragPolicy());
+ }
+
+ /**
+ * @generated
+ */
+ protected String getLabelTextHelper(IFigure figure) {
+ if (figure instanceof WrappingLabel) {
+ return ((WrappingLabel) figure).getText();
+ } else {
+ return ((Label) figure).getText();
+ }
+ }
+
+ /**
+ * @generated
+ */
+ protected void setLabelTextHelper(IFigure figure, String text) {
+ if (figure instanceof WrappingLabel) {
+ ((WrappingLabel) figure).setText(text);
+ } else {
+ ((Label) figure).setText(text);
+ }
+ }
+
+ /**
+ * @generated
+ */
+ protected Image getLabelIconHelper(IFigure figure) {
+ if (figure instanceof WrappingLabel) {
+ return ((WrappingLabel) figure).getIcon();
+ } else {
+ return ((Label) figure).getIcon();
+ }
+ }
+
+ /**
+ * @generated
+ */
+ protected void setLabelIconHelper(IFigure figure, Image icon) {
+ if (figure instanceof WrappingLabel) {
+ ((WrappingLabel) figure).setIcon(icon);
+ } else {
+ ((Label) figure).setIcon(icon);
+ }
+ }
+
+ /**
+ * @generated
+ */
+ public void setLabel(WrappingLabel figure) {
+ unregisterVisuals();
+ setFigure(figure);
+ defaultText = getLabelTextHelper(figure);
+ registerVisuals();
+ refreshVisuals();
+ }
+
+ /**
+ * @generated
+ */
+ @SuppressWarnings("rawtypes")
+ protected List getModelChildren() {
+ return Collections.EMPTY_LIST;
+ }
+
+ /**
+ * @generated
+ */
+ public IGraphicalEditPart getChildBySemanticHint(String semanticHint) {
+ return null;
+ }
+
+ /**
+ * @generated
+ */
+ protected EObject getParserElement() {
+ return resolveSemanticElement();
+ }
+
+ /**
+ * @generated
+ */
+ protected Image getLabelIcon() {
+ return null;
+ }
+
+ /**
+ * @generated
+ */
+ protected String getLabelText() {
+ String text = null;
+ EObject parserElement = getParserElement();
+ if (parserElement != null && getParser() != null) {
+ text = getParser().getPrintString(
+ new EObjectAdapter(parserElement),
+ getParserOptions().intValue());
+ }
+ if (text == null || text.length() == 0) {
+ text = defaultText;
+ }
+ return text;
+ }
+
+ /**
+ * @generated
+ */
+ public void setLabelText(String text) {
+ setLabelTextHelper(getFigure(), text);
+ Object pdEditPolicy = getEditPolicy(EditPolicy.PRIMARY_DRAG_ROLE);
+ if (pdEditPolicy instanceof ComrelTextSelectionEditPolicy) {
+ ((ComrelTextSelectionEditPolicy) pdEditPolicy).refreshFeedback();
+ }
+ Object sfEditPolicy = getEditPolicy(EditPolicy.SELECTION_FEEDBACK_ROLE);
+ if (sfEditPolicy instanceof ComrelTextSelectionEditPolicy) {
+ ((ComrelTextSelectionEditPolicy) sfEditPolicy).refreshFeedback();
+ }
+ }
+
+ /**
+ * @generated
+ */
+ public String getEditText() {
+ if (getParserElement() == null || getParser() == null) {
+ return ""; //$NON-NLS-1$
+ }
+ return getParser().getEditString(
+ new EObjectAdapter(getParserElement()),
+ getParserOptions().intValue());
+ }
+
+ /**
+ * @generated
+ */
+ protected boolean isEditable() {
+ return getParser() != null;
+ }
+
+ /**
+ * @generated
+ */
+ public ICellEditorValidator getEditTextValidator() {
+ return new ICellEditorValidator() {
+
+ public String isValid(final Object value) {
+ if (value instanceof String) {
+ final EObject element = getParserElement();
+ final IParser parser = getParser();
+ try {
+ IParserEditStatus valid = (IParserEditStatus) getEditingDomain()
+ .runExclusive(
+ new RunnableWithResult.Impl<IParserEditStatus>() {
+
+ public void run() {
+ setResult(parser
+ .isValidEditString(
+ new EObjectAdapter(
+ element),
+ (String) value));
+ }
+ });
+ return valid.getCode() == ParserEditStatus.EDITABLE ? null
+ : valid.getMessage();
+ } catch (InterruptedException ie) {
+ ie.printStackTrace();
+ }
+ }
+
+ // shouldn't get here
+ return null;
+ }
+ };
+ }
+
+ /**
+ * @generated
+ */
+ public IContentAssistProcessor getCompletionProcessor() {
+ if (getParserElement() == null || getParser() == null) {
+ return null;
+ }
+ return getParser().getCompletionProcessor(
+ new EObjectAdapter(getParserElement()));
+ }
+
+ /**
+ * @generated
+ */
+ public ParserOptions getParserOptions() {
+ return ParserOptions.NONE;
+ }
+
+ /**
+ * @generated
+ */
+ public IParser getParser() {
+ if (parser == null) {
+ parser = ComrelParserProvider
+ .getParser(
+ ComrelElementTypes.SingleFilterUnit_3057,
+ getParserElement(),
+ ComrelVisualIDRegistry
+ .getType(comrel.diagram.edit.parts.SingleFilterUnitNameType4EditPart.VISUAL_ID));
+ }
+ return parser;
+ }
+
+ /**
+ * @generated
+ */
+ protected DirectEditManager getManager() {
+ if (manager == null) {
+ setManager(new TextDirectEditManager(this,
+ TextDirectEditManager.getTextCellEditorClass(this),
+ ComrelEditPartFactory.getTextCellEditorLocator(this)));
+ }
+ return manager;
+ }
+
+ /**
+ * @generated
+ */
+ protected void setManager(DirectEditManager manager) {
+ this.manager = manager;
+ }
+
+ /**
+ * @generated
+ */
+ protected void performDirectEdit() {
+ getManager().show();
+ }
+
+ /**
+ * @generated
+ */
+ protected void performDirectEdit(Point eventLocation) {
+ if (getManager().getClass() == TextDirectEditManager.class) {
+ ((TextDirectEditManager) getManager()).show(eventLocation
+ .getSWTPoint());
+ }
+ }
+
+ /**
+ * @generated
+ */
+ private void performDirectEdit(char initialCharacter) {
+ if (getManager() instanceof TextDirectEditManager) {
+ ((TextDirectEditManager) getManager()).show(initialCharacter);
+ } else {
+ performDirectEdit();
+ }
+ }
+
+ /**
+ * @generated
+ */
+ protected void performDirectEditRequest(Request request) {
+ final Request theRequest = request;
+ try {
+ getEditingDomain().runExclusive(new Runnable() {
+
+ public void run() {
+ if (isActive() && isEditable()) {
+ if (theRequest
+ .getExtendedData()
+ .get(RequestConstants.REQ_DIRECTEDIT_EXTENDEDDATA_INITIAL_CHAR) instanceof Character) {
+ Character initialChar = (Character) theRequest
+ .getExtendedData()
+ .get(RequestConstants.REQ_DIRECTEDIT_EXTENDEDDATA_INITIAL_CHAR);
+ performDirectEdit(initialChar.charValue());
+ } else if ((theRequest instanceof DirectEditRequest)
+ && (getEditText().equals(getLabelText()))) {
+ DirectEditRequest editRequest = (DirectEditRequest) theRequest;
+ performDirectEdit(editRequest.getLocation());
+ } else {
+ performDirectEdit();
+ }
+ }
+ }
+ });
+ } catch (InterruptedException e) {
+ e.printStackTrace();
+ }
+ }
+
+ /**
+ * @generated
+ */
+ protected void refreshVisuals() {
+ super.refreshVisuals();
+ refreshLabel();
+ refreshFont();
+ refreshFontColor();
+ refreshUnderline();
+ refreshStrikeThrough();
+ }
+
+ /**
+ * @generated
+ */
+ protected void refreshLabel() {
+ setLabelTextHelper(getFigure(), getLabelText());
+ setLabelIconHelper(getFigure(), getLabelIcon());
+ Object pdEditPolicy = getEditPolicy(EditPolicy.PRIMARY_DRAG_ROLE);
+ if (pdEditPolicy instanceof ComrelTextSelectionEditPolicy) {
+ ((ComrelTextSelectionEditPolicy) pdEditPolicy).refreshFeedback();
+ }
+ Object sfEditPolicy = getEditPolicy(EditPolicy.SELECTION_FEEDBACK_ROLE);
+ if (sfEditPolicy instanceof ComrelTextSelectionEditPolicy) {
+ ((ComrelTextSelectionEditPolicy) sfEditPolicy).refreshFeedback();
+ }
+ }
+
+ /**
+ * @generated
+ */
+ protected void refreshUnderline() {
+ FontStyle style = (FontStyle) getFontStyleOwnerView().getStyle(
+ NotationPackage.eINSTANCE.getFontStyle());
+ if (style != null && getFigure() instanceof WrappingLabel) {
+ ((WrappingLabel) getFigure()).setTextUnderline(style.isUnderline());
+ }
+ }
+
+ /**
+ * @generated
+ */
+ protected void refreshStrikeThrough() {
+ FontStyle style = (FontStyle) getFontStyleOwnerView().getStyle(
+ NotationPackage.eINSTANCE.getFontStyle());
+ if (style != null && getFigure() instanceof WrappingLabel) {
+ ((WrappingLabel) getFigure()).setTextStrikeThrough(style
+ .isStrikeThrough());
+ }
+ }
+
+ /**
+ * @generated
+ */
+ protected void refreshFont() {
+ FontStyle style = (FontStyle) getFontStyleOwnerView().getStyle(
+ NotationPackage.eINSTANCE.getFontStyle());
+ if (style != null) {
+ FontData fontData = new FontData(style.getFontName(),
+ style.getFontHeight(), (style.isBold() ? SWT.BOLD
+ : SWT.NORMAL)
+ | (style.isItalic() ? SWT.ITALIC : SWT.NORMAL));
+ setFont(fontData);
+ }
+ }
+
+ /**
+ * @generated
+ */
+ protected void setFontColor(Color color) {
+ getFigure().setForegroundColor(color);
+ }
+
+ /**
+ * @generated
+ */
+ protected void addSemanticListeners() {
+ if (getParser() instanceof ISemanticParser) {
+ EObject element = resolveSemanticElement();
+ parserElements = ((ISemanticParser) getParser())
+ .getSemanticElementsBeingParsed(element);
+ for (int i = 0; i < parserElements.size(); i++) {
+ addListenerFilter(
+ "SemanticModel" + i, this, (EObject) parserElements.get(i)); //$NON-NLS-1$
+ }
+ } else {
+ super.addSemanticListeners();
+ }
+ }
+
+ /**
+ * @generated
+ */
+ protected void removeSemanticListeners() {
+ if (parserElements != null) {
+ for (int i = 0; i < parserElements.size(); i++) {
+ removeListenerFilter("SemanticModel" + i); //$NON-NLS-1$
+ }
+ } else {
+ super.removeSemanticListeners();
+ }
+ }
+
+ /**
+ * @generated
+ */
+ protected AccessibleEditPart getAccessibleEditPart() {
+ if (accessibleEP == null) {
+ accessibleEP = new AccessibleGraphicalEditPart() {
+
+ public void getName(AccessibleEvent e) {
+ e.result = getLabelTextHelper(getFigure());
+ }
+ };
+ }
+ return accessibleEP;
+ }
+
+ /**
+ * @generated
+ */
+ private View getFontStyleOwnerView() {
+ return getPrimaryView();
+ }
+
+ /**
+ * @generated
+ */
+ protected void addNotationalListeners() {
+ super.addNotationalListeners();
+ addListenerFilter("PrimaryView", this, getPrimaryView()); //$NON-NLS-1$
+ }
+
+ /**
+ * @generated
+ */
+ protected void removeNotationalListeners() {
+ super.removeNotationalListeners();
+ removeListenerFilter("PrimaryView"); //$NON-NLS-1$
+ }
+
+ /**
+ * @generated
+ */
+ protected void handleNotificationEvent(Notification event) {
+ Object feature = event.getFeature();
+ if (NotationPackage.eINSTANCE.getFontStyle_FontColor().equals(feature)) {
+ Integer c = (Integer) event.getNewValue();
+ setFontColor(DiagramColorRegistry.getInstance().getColor(c));
+ } else if (NotationPackage.eINSTANCE.getFontStyle_Underline().equals(
+ feature)) {
+ refreshUnderline();
+ } else if (NotationPackage.eINSTANCE.getFontStyle_StrikeThrough()
+ .equals(feature)) {
+ refreshStrikeThrough();
+ } else if (NotationPackage.eINSTANCE.getFontStyle_FontHeight().equals(
+ feature)
+ || NotationPackage.eINSTANCE.getFontStyle_FontName().equals(
+ feature)
+ || NotationPackage.eINSTANCE.getFontStyle_Bold()
+ .equals(feature)
+ || NotationPackage.eINSTANCE.getFontStyle_Italic().equals(
+ feature)) {
+ refreshFont();
+ } else {
+ if (getParser() != null
+ && getParser().isAffectingEvent(event,
+ getParserOptions().intValue())) {
+ refreshLabel();
+ }
+ if (getParser() instanceof ISemanticParser) {
+ ISemanticParser modelParser = (ISemanticParser) getParser();
+ if (modelParser.areSemanticElementsAffected(null, event)) {
+ removeSemanticListeners();
+ if (resolveSemanticElement() != null) {
+ addSemanticListeners();
+ }
+ refreshLabel();
+ }
+ }
+ }
+ super.handleNotificationEvent(event);
+ }
+
+ /**
+ * @generated
+ */
+ protected IFigure createFigure() {
+ // Parent should assign one using setLabel() method
+ return null;
+ }
+
+}
diff --git a/org.eclipse.emf.refactor.comrel.diagram/src/comrel/diagram/edit/parts/SingleFilterUnitNameType5EditPart.java b/org.eclipse.emf.refactor.comrel.diagram/src/comrel/diagram/edit/parts/SingleFilterUnitNameType5EditPart.java
new file mode 100644
index 0000000..35e1f3a
--- /dev/null
+++ b/org.eclipse.emf.refactor.comrel.diagram/src/comrel/diagram/edit/parts/SingleFilterUnitNameType5EditPart.java
@@ -0,0 +1,576 @@
+/*
+ *
+ */
+package comrel.diagram.edit.parts;
+
+import java.util.Collections;
+import java.util.List;
+
+import org.eclipse.draw2d.IFigure;
+import org.eclipse.draw2d.Label;
+import org.eclipse.draw2d.geometry.Point;
+import org.eclipse.emf.common.notify.Notification;
+import org.eclipse.emf.ecore.EObject;
+import org.eclipse.emf.transaction.RunnableWithResult;
+import org.eclipse.gef.AccessibleEditPart;
+import org.eclipse.gef.EditPolicy;
+import org.eclipse.gef.Request;
+import org.eclipse.gef.requests.DirectEditRequest;
+import org.eclipse.gef.tools.DirectEditManager;
+import org.eclipse.gmf.runtime.common.ui.services.parser.IParser;
+import org.eclipse.gmf.runtime.common.ui.services.parser.IParserEditStatus;
+import org.eclipse.gmf.runtime.common.ui.services.parser.ParserEditStatus;
+import org.eclipse.gmf.runtime.common.ui.services.parser.ParserOptions;
+import org.eclipse.gmf.runtime.diagram.ui.editparts.CompartmentEditPart;
+import org.eclipse.gmf.runtime.diagram.ui.editparts.IGraphicalEditPart;
+import org.eclipse.gmf.runtime.diagram.ui.editparts.ITextAwareEditPart;
+import org.eclipse.gmf.runtime.diagram.ui.editpolicies.LabelDirectEditPolicy;
+import org.eclipse.gmf.runtime.diagram.ui.l10n.DiagramColorRegistry;
+import org.eclipse.gmf.runtime.diagram.ui.requests.RequestConstants;
+import org.eclipse.gmf.runtime.diagram.ui.tools.TextDirectEditManager;
+import org.eclipse.gmf.runtime.draw2d.ui.figures.WrappingLabel;
+import org.eclipse.gmf.runtime.emf.core.util.EObjectAdapter;
+import org.eclipse.gmf.runtime.emf.ui.services.parser.ISemanticParser;
+import org.eclipse.gmf.runtime.notation.FontStyle;
+import org.eclipse.gmf.runtime.notation.NotationPackage;
+import org.eclipse.gmf.runtime.notation.View;
+import org.eclipse.jface.text.contentassist.IContentAssistProcessor;
+import org.eclipse.jface.viewers.ICellEditorValidator;
+import org.eclipse.swt.SWT;
+import org.eclipse.swt.accessibility.AccessibleEvent;
+import org.eclipse.swt.graphics.Color;
+import org.eclipse.swt.graphics.FontData;
+import org.eclipse.swt.graphics.Image;
+
+import comrel.diagram.edit.policies.ComrelTextSelectionEditPolicy;
+import comrel.diagram.part.ComrelVisualIDRegistry;
+import comrel.diagram.providers.ComrelElementTypes;
+import comrel.diagram.providers.ComrelParserProvider;
+
+/**
+ * @generated
+ */
+public class SingleFilterUnitNameType5EditPart extends CompartmentEditPart
+ implements ITextAwareEditPart {
+
+ /**
+ * @generated
+ */
+ public static final int VISUAL_ID = 5046;
+
+ /**
+ * @generated
+ */
+ private DirectEditManager manager;
+
+ /**
+ * @generated
+ */
+ private IParser parser;
+
+ /**
+ * @generated
+ */
+ private List<?> parserElements;
+
+ /**
+ * @generated
+ */
+ private String defaultText;
+
+ /**
+ * @generated
+ */
+ public SingleFilterUnitNameType5EditPart(View view) {
+ super(view);
+ }
+
+ /**
+ * @generated
+ */
+ protected void createDefaultEditPolicies() {
+ super.createDefaultEditPolicies();
+ installEditPolicy(EditPolicy.SELECTION_FEEDBACK_ROLE,
+ new ComrelTextSelectionEditPolicy());
+ installEditPolicy(EditPolicy.DIRECT_EDIT_ROLE,
+ new LabelDirectEditPolicy());
+ installEditPolicy(EditPolicy.PRIMARY_DRAG_ROLE,
+ new CompositeRefactoringEditPart.NodeLabelDragPolicy());
+ }
+
+ /**
+ * @generated
+ */
+ protected String getLabelTextHelper(IFigure figure) {
+ if (figure instanceof WrappingLabel) {
+ return ((WrappingLabel) figure).getText();
+ } else {
+ return ((Label) figure).getText();
+ }
+ }
+
+ /**
+ * @generated
+ */
+ protected void setLabelTextHelper(IFigure figure, String text) {
+ if (figure instanceof WrappingLabel) {
+ ((WrappingLabel) figure).setText(text);
+ } else {
+ ((Label) figure).setText(text);
+ }
+ }
+
+ /**
+ * @generated
+ */
+ protected Image getLabelIconHelper(IFigure figure) {
+ if (figure instanceof WrappingLabel) {
+ return ((WrappingLabel) figure).getIcon();
+ } else {
+ return ((Label) figure).getIcon();
+ }
+ }
+
+ /**
+ * @generated
+ */
+ protected void setLabelIconHelper(IFigure figure, Image icon) {
+ if (figure instanceof WrappingLabel) {
+ ((WrappingLabel) figure).setIcon(icon);
+ } else {
+ ((Label) figure).setIcon(icon);
+ }
+ }
+
+ /**
+ * @generated
+ */
+ public void setLabel(WrappingLabel figure) {
+ unregisterVisuals();
+ setFigure(figure);
+ defaultText = getLabelTextHelper(figure);
+ registerVisuals();
+ refreshVisuals();
+ }
+
+ /**
+ * @generated
+ */
+ @SuppressWarnings("rawtypes")
+ protected List getModelChildren() {
+ return Collections.EMPTY_LIST;
+ }
+
+ /**
+ * @generated
+ */
+ public IGraphicalEditPart getChildBySemanticHint(String semanticHint) {
+ return null;
+ }
+
+ /**
+ * @generated
+ */
+ protected EObject getParserElement() {
+ return resolveSemanticElement();
+ }
+
+ /**
+ * @generated
+ */
+ protected Image getLabelIcon() {
+ return null;
+ }
+
+ /**
+ * @generated
+ */
+ protected String getLabelText() {
+ String text = null;
+ EObject parserElement = getParserElement();
+ if (parserElement != null && getParser() != null) {
+ text = getParser().getPrintString(
+ new EObjectAdapter(parserElement),
+ getParserOptions().intValue());
+ }
+ if (text == null || text.length() == 0) {
+ text = defaultText;
+ }
+ return text;
+ }
+
+ /**
+ * @generated
+ */
+ public void setLabelText(String text) {
+ setLabelTextHelper(getFigure(), text);
+ Object pdEditPolicy = getEditPolicy(EditPolicy.PRIMARY_DRAG_ROLE);
+ if (pdEditPolicy instanceof ComrelTextSelectionEditPolicy) {
+ ((ComrelTextSelectionEditPolicy) pdEditPolicy).refreshFeedback();
+ }
+ Object sfEditPolicy = getEditPolicy(EditPolicy.SELECTION_FEEDBACK_ROLE);
+ if (sfEditPolicy instanceof ComrelTextSelectionEditPolicy) {
+ ((ComrelTextSelectionEditPolicy) sfEditPolicy).refreshFeedback();
+ }
+ }
+
+ /**
+ * @generated
+ */
+ public String getEditText() {
+ if (getParserElement() == null || getParser() == null) {
+ return ""; //$NON-NLS-1$
+ }
+ return getParser().getEditString(
+ new EObjectAdapter(getParserElement()),
+ getParserOptions().intValue());
+ }
+
+ /**
+ * @generated
+ */
+ protected boolean isEditable() {
+ return getParser() != null;
+ }
+
+ /**
+ * @generated
+ */
+ public ICellEditorValidator getEditTextValidator() {
+ return new ICellEditorValidator() {
+
+ public String isValid(final Object value) {
+ if (value instanceof String) {
+ final EObject element = getParserElement();
+ final IParser parser = getParser();
+ try {
+ IParserEditStatus valid = (IParserEditStatus) getEditingDomain()
+ .runExclusive(
+ new RunnableWithResult.Impl<IParserEditStatus>() {
+
+ public void run() {
+ setResult(parser
+ .isValidEditString(
+ new EObjectAdapter(
+ element),
+ (String) value));
+ }
+ });
+ return valid.getCode() == ParserEditStatus.EDITABLE ? null
+ : valid.getMessage();
+ } catch (InterruptedException ie) {
+ ie.printStackTrace();
+ }
+ }
+
+ // shouldn't get here
+ return null;
+ }
+ };
+ }
+
+ /**
+ * @generated
+ */
+ public IContentAssistProcessor getCompletionProcessor() {
+ if (getParserElement() == null || getParser() == null) {
+ return null;
+ }
+ return getParser().getCompletionProcessor(
+ new EObjectAdapter(getParserElement()));
+ }
+
+ /**
+ * @generated
+ */
+ public ParserOptions getParserOptions() {
+ return ParserOptions.NONE;
+ }
+
+ /**
+ * @generated
+ */
+ public IParser getParser() {
+ if (parser == null) {
+ parser = ComrelParserProvider
+ .getParser(
+ ComrelElementTypes.SingleFilterUnit_3063,
+ getParserElement(),
+ ComrelVisualIDRegistry
+ .getType(comrel.diagram.edit.parts.SingleFilterUnitNameType5EditPart.VISUAL_ID));
+ }
+ return parser;
+ }
+
+ /**
+ * @generated
+ */
+ protected DirectEditManager getManager() {
+ if (manager == null) {
+ setManager(new TextDirectEditManager(this,
+ TextDirectEditManager.getTextCellEditorClass(this),
+ ComrelEditPartFactory.getTextCellEditorLocator(this)));
+ }
+ return manager;
+ }
+
+ /**
+ * @generated
+ */
+ protected void setManager(DirectEditManager manager) {
+ this.manager = manager;
+ }
+
+ /**
+ * @generated
+ */
+ protected void performDirectEdit() {
+ getManager().show();
+ }
+
+ /**
+ * @generated
+ */
+ protected void performDirectEdit(Point eventLocation) {
+ if (getManager().getClass() == TextDirectEditManager.class) {
+ ((TextDirectEditManager) getManager()).show(eventLocation
+ .getSWTPoint());
+ }
+ }
+
+ /**
+ * @generated
+ */
+ private void performDirectEdit(char initialCharacter) {
+ if (getManager() instanceof TextDirectEditManager) {
+ ((TextDirectEditManager) getManager()).show(initialCharacter);
+ } else {
+ performDirectEdit();
+ }
+ }
+
+ /**
+ * @generated
+ */
+ protected void performDirectEditRequest(Request request) {
+ final Request theRequest = request;
+ try {
+ getEditingDomain().runExclusive(new Runnable() {
+
+ public void run() {
+ if (isActive() && isEditable()) {
+ if (theRequest
+ .getExtendedData()
+ .get(RequestConstants.REQ_DIRECTEDIT_EXTENDEDDATA_INITIAL_CHAR) instanceof Character) {
+ Character initialChar = (Character) theRequest
+ .getExtendedData()
+ .get(RequestConstants.REQ_DIRECTEDIT_EXTENDEDDATA_INITIAL_CHAR);
+ performDirectEdit(initialChar.charValue());
+ } else if ((theRequest instanceof DirectEditRequest)
+ && (getEditText().equals(getLabelText()))) {
+ DirectEditRequest editRequest = (DirectEditRequest) theRequest;
+ performDirectEdit(editRequest.getLocation());
+ } else {
+ performDirectEdit();
+ }
+ }
+ }
+ });
+ } catch (InterruptedException e) {
+ e.printStackTrace();
+ }
+ }
+
+ /**
+ * @generated
+ */
+ protected void refreshVisuals() {
+ super.refreshVisuals();
+ refreshLabel();
+ refreshFont();
+ refreshFontColor();
+ refreshUnderline();
+ refreshStrikeThrough();
+ }
+
+ /**
+ * @generated
+ */
+ protected void refreshLabel() {
+ setLabelTextHelper(getFigure(), getLabelText());
+ setLabelIconHelper(getFigure(), getLabelIcon());
+ Object pdEditPolicy = getEditPolicy(EditPolicy.PRIMARY_DRAG_ROLE);
+ if (pdEditPolicy instanceof ComrelTextSelectionEditPolicy) {
+ ((ComrelTextSelectionEditPolicy) pdEditPolicy).refreshFeedback();
+ }
+ Object sfEditPolicy = getEditPolicy(EditPolicy.SELECTION_FEEDBACK_ROLE);
+ if (sfEditPolicy instanceof ComrelTextSelectionEditPolicy) {
+ ((ComrelTextSelectionEditPolicy) sfEditPolicy).refreshFeedback();
+ }
+ }
+
+ /**
+ * @generated
+ */
+ protected void refreshUnderline() {
+ FontStyle style = (FontStyle) getFontStyleOwnerView().getStyle(
+ NotationPackage.eINSTANCE.getFontStyle());
+ if (style != null && getFigure() instanceof WrappingLabel) {
+ ((WrappingLabel) getFigure()).setTextUnderline(style.isUnderline());
+ }
+ }
+
+ /**
+ * @generated
+ */
+ protected void refreshStrikeThrough() {
+ FontStyle style = (FontStyle) getFontStyleOwnerView().getStyle(
+ NotationPackage.eINSTANCE.getFontStyle());
+ if (style != null && getFigure() instanceof WrappingLabel) {
+ ((WrappingLabel) getFigure()).setTextStrikeThrough(style
+ .isStrikeThrough());
+ }
+ }
+
+ /**
+ * @generated
+ */
+ protected void refreshFont() {
+ FontStyle style = (FontStyle) getFontStyleOwnerView().getStyle(
+ NotationPackage.eINSTANCE.getFontStyle());
+ if (style != null) {
+ FontData fontData = new FontData(style.getFontName(),
+ style.getFontHeight(), (style.isBold() ? SWT.BOLD
+ : SWT.NORMAL)
+ | (style.isItalic() ? SWT.ITALIC : SWT.NORMAL));
+ setFont(fontData);
+ }
+ }
+
+ /**
+ * @generated
+ */
+ protected void setFontColor(Color color) {
+ getFigure().setForegroundColor(color);
+ }
+
+ /**
+ * @generated
+ */
+ protected void addSemanticListeners() {
+ if (getParser() instanceof ISemanticParser) {
+ EObject element = resolveSemanticElement();
+ parserElements = ((ISemanticParser) getParser())
+ .getSemanticElementsBeingParsed(element);
+ for (int i = 0; i < parserElements.size(); i++) {
+ addListenerFilter(
+ "SemanticModel" + i, this, (EObject) parserElements.get(i)); //$NON-NLS-1$
+ }
+ } else {
+ super.addSemanticListeners();
+ }
+ }
+
+ /**
+ * @generated
+ */
+ protected void removeSemanticListeners() {
+ if (parserElements != null) {
+ for (int i = 0; i < parserElements.size(); i++) {
+ removeListenerFilter("SemanticModel" + i); //$NON-NLS-1$
+ }
+ } else {
+ super.removeSemanticListeners();
+ }
+ }
+
+ /**
+ * @generated
+ */
+ protected AccessibleEditPart getAccessibleEditPart() {
+ if (accessibleEP == null) {
+ accessibleEP = new AccessibleGraphicalEditPart() {
+
+ public void getName(AccessibleEvent e) {
+ e.result = getLabelTextHelper(getFigure());
+ }
+ };
+ }
+ return accessibleEP;
+ }
+
+ /**
+ * @generated
+ */
+ private View getFontStyleOwnerView() {
+ return getPrimaryView();
+ }
+
+ /**
+ * @generated
+ */
+ protected void addNotationalListeners() {
+ super.addNotationalListeners();
+ addListenerFilter("PrimaryView", this, getPrimaryView()); //$NON-NLS-1$
+ }
+
+ /**
+ * @generated
+ */
+ protected void removeNotationalListeners() {
+ super.removeNotationalListeners();
+ removeListenerFilter("PrimaryView"); //$NON-NLS-1$
+ }
+
+ /**
+ * @generated
+ */
+ protected void handleNotificationEvent(Notification event) {
+ Object feature = event.getFeature();
+ if (NotationPackage.eINSTANCE.getFontStyle_FontColor().equals(feature)) {
+ Integer c = (Integer) event.getNewValue();
+ setFontColor(DiagramColorRegistry.getInstance().getColor(c));
+ } else if (NotationPackage.eINSTANCE.getFontStyle_Underline().equals(
+ feature)) {
+ refreshUnderline();
+ } else if (NotationPackage.eINSTANCE.getFontStyle_StrikeThrough()
+ .equals(feature)) {
+ refreshStrikeThrough();
+ } else if (NotationPackage.eINSTANCE.getFontStyle_FontHeight().equals(
+ feature)
+ || NotationPackage.eINSTANCE.getFontStyle_FontName().equals(
+ feature)
+ || NotationPackage.eINSTANCE.getFontStyle_Bold()
+ .equals(feature)
+ || NotationPackage.eINSTANCE.getFontStyle_Italic().equals(
+ feature)) {
+ refreshFont();
+ } else {
+ if (getParser() != null
+ && getParser().isAffectingEvent(event,
+ getParserOptions().intValue())) {
+ refreshLabel();
+ }
+ if (getParser() instanceof ISemanticParser) {
+ ISemanticParser modelParser = (ISemanticParser) getParser();
+ if (modelParser.areSemanticElementsAffected(null, event)) {
+ removeSemanticListeners();
+ if (resolveSemanticElement() != null) {
+ addSemanticListeners();
+ }
+ refreshLabel();
+ }
+ }
+ }
+ super.handleNotificationEvent(event);
+ }
+
+ /**
+ * @generated
+ */
+ protected IFigure createFigure() {
+ // Parent should assign one using setLabel() method
+ return null;
+ }
+
+}
diff --git a/org.eclipse.emf.refactor.comrel.diagram/src/comrel/diagram/edit/parts/SingleFilterUnitNameTypeEditPart.java b/org.eclipse.emf.refactor.comrel.diagram/src/comrel/diagram/edit/parts/SingleFilterUnitNameTypeEditPart.java
new file mode 100644
index 0000000..3a08fe9
--- /dev/null
+++ b/org.eclipse.emf.refactor.comrel.diagram/src/comrel/diagram/edit/parts/SingleFilterUnitNameTypeEditPart.java
@@ -0,0 +1,576 @@
+/*
+ *
+ */
+package comrel.diagram.edit.parts;
+
+import java.util.Collections;
+import java.util.List;
+
+import org.eclipse.draw2d.IFigure;
+import org.eclipse.draw2d.Label;
+import org.eclipse.draw2d.geometry.Point;
+import org.eclipse.emf.common.notify.Notification;
+import org.eclipse.emf.ecore.EObject;
+import org.eclipse.emf.transaction.RunnableWithResult;
+import org.eclipse.gef.AccessibleEditPart;
+import org.eclipse.gef.EditPolicy;
+import org.eclipse.gef.Request;
+import org.eclipse.gef.requests.DirectEditRequest;
+import org.eclipse.gef.tools.DirectEditManager;
+import org.eclipse.gmf.runtime.common.ui.services.parser.IParser;
+import org.eclipse.gmf.runtime.common.ui.services.parser.IParserEditStatus;
+import org.eclipse.gmf.runtime.common.ui.services.parser.ParserEditStatus;
+import org.eclipse.gmf.runtime.common.ui.services.parser.ParserOptions;
+import org.eclipse.gmf.runtime.diagram.ui.editparts.CompartmentEditPart;
+import org.eclipse.gmf.runtime.diagram.ui.editparts.IGraphicalEditPart;
+import org.eclipse.gmf.runtime.diagram.ui.editparts.ITextAwareEditPart;
+import org.eclipse.gmf.runtime.diagram.ui.editpolicies.LabelDirectEditPolicy;
+import org.eclipse.gmf.runtime.diagram.ui.l10n.DiagramColorRegistry;
+import org.eclipse.gmf.runtime.diagram.ui.requests.RequestConstants;
+import org.eclipse.gmf.runtime.diagram.ui.tools.TextDirectEditManager;
+import org.eclipse.gmf.runtime.draw2d.ui.figures.WrappingLabel;
+import org.eclipse.gmf.runtime.emf.core.util.EObjectAdapter;
+import org.eclipse.gmf.runtime.emf.ui.services.parser.ISemanticParser;
+import org.eclipse.gmf.runtime.notation.FontStyle;
+import org.eclipse.gmf.runtime.notation.NotationPackage;
+import org.eclipse.gmf.runtime.notation.View;
+import org.eclipse.jface.text.contentassist.IContentAssistProcessor;
+import org.eclipse.jface.viewers.ICellEditorValidator;
+import org.eclipse.swt.SWT;
+import org.eclipse.swt.accessibility.AccessibleEvent;
+import org.eclipse.swt.graphics.Color;
+import org.eclipse.swt.graphics.FontData;
+import org.eclipse.swt.graphics.Image;
+
+import comrel.diagram.edit.policies.ComrelTextSelectionEditPolicy;
+import comrel.diagram.part.ComrelVisualIDRegistry;
+import comrel.diagram.providers.ComrelElementTypes;
+import comrel.diagram.providers.ComrelParserProvider;
+
+/**
+ * @generated
+ */
+public class SingleFilterUnitNameTypeEditPart extends CompartmentEditPart
+ implements ITextAwareEditPart {
+
+ /**
+ * @generated
+ */
+ public static final int VISUAL_ID = 5016;
+
+ /**
+ * @generated
+ */
+ private DirectEditManager manager;
+
+ /**
+ * @generated
+ */
+ private IParser parser;
+
+ /**
+ * @generated
+ */
+ private List<?> parserElements;
+
+ /**
+ * @generated
+ */
+ private String defaultText;
+
+ /**
+ * @generated
+ */
+ public SingleFilterUnitNameTypeEditPart(View view) {
+ super(view);
+ }
+
+ /**
+ * @generated
+ */
+ protected void createDefaultEditPolicies() {
+ super.createDefaultEditPolicies();
+ installEditPolicy(EditPolicy.SELECTION_FEEDBACK_ROLE,
+ new ComrelTextSelectionEditPolicy());
+ installEditPolicy(EditPolicy.DIRECT_EDIT_ROLE,
+ new LabelDirectEditPolicy());
+ installEditPolicy(EditPolicy.PRIMARY_DRAG_ROLE,
+ new CompositeRefactoringEditPart.NodeLabelDragPolicy());
+ }
+
+ /**
+ * @generated
+ */
+ protected String getLabelTextHelper(IFigure figure) {
+ if (figure instanceof WrappingLabel) {
+ return ((WrappingLabel) figure).getText();
+ } else {
+ return ((Label) figure).getText();
+ }
+ }
+
+ /**
+ * @generated
+ */
+ protected void setLabelTextHelper(IFigure figure, String text) {
+ if (figure instanceof WrappingLabel) {
+ ((WrappingLabel) figure).setText(text);
+ } else {
+ ((Label) figure).setText(text);
+ }
+ }
+
+ /**
+ * @generated
+ */
+ protected Image getLabelIconHelper(IFigure figure) {
+ if (figure instanceof WrappingLabel) {
+ return ((WrappingLabel) figure).getIcon();
+ } else {
+ return ((Label) figure).getIcon();
+ }
+ }
+
+ /**
+ * @generated
+ */
+ protected void setLabelIconHelper(IFigure figure, Image icon) {
+ if (figure instanceof WrappingLabel) {
+ ((WrappingLabel) figure).setIcon(icon);
+ } else {
+ ((Label) figure).setIcon(icon);
+ }
+ }
+
+ /**
+ * @generated
+ */
+ public void setLabel(WrappingLabel figure) {
+ unregisterVisuals();
+ setFigure(figure);
+ defaultText = getLabelTextHelper(figure);
+ registerVisuals();
+ refreshVisuals();
+ }
+
+ /**
+ * @generated
+ */
+ @SuppressWarnings("rawtypes")
+ protected List getModelChildren() {
+ return Collections.EMPTY_LIST;
+ }
+
+ /**
+ * @generated
+ */
+ public IGraphicalEditPart getChildBySemanticHint(String semanticHint) {
+ return null;
+ }
+
+ /**
+ * @generated
+ */
+ protected EObject getParserElement() {
+ return resolveSemanticElement();
+ }
+
+ /**
+ * @generated
+ */
+ protected Image getLabelIcon() {
+ return null;
+ }
+
+ /**
+ * @generated
+ */
+ protected String getLabelText() {
+ String text = null;
+ EObject parserElement = getParserElement();
+ if (parserElement != null && getParser() != null) {
+ text = getParser().getPrintString(
+ new EObjectAdapter(parserElement),
+ getParserOptions().intValue());
+ }
+ if (text == null || text.length() == 0) {
+ text = defaultText;
+ }
+ return text;
+ }
+
+ /**
+ * @generated
+ */
+ public void setLabelText(String text) {
+ setLabelTextHelper(getFigure(), text);
+ Object pdEditPolicy = getEditPolicy(EditPolicy.PRIMARY_DRAG_ROLE);
+ if (pdEditPolicy instanceof ComrelTextSelectionEditPolicy) {
+ ((ComrelTextSelectionEditPolicy) pdEditPolicy).refreshFeedback();
+ }
+ Object sfEditPolicy = getEditPolicy(EditPolicy.SELECTION_FEEDBACK_ROLE);
+ if (sfEditPolicy instanceof ComrelTextSelectionEditPolicy) {
+ ((ComrelTextSelectionEditPolicy) sfEditPolicy).refreshFeedback();
+ }
+ }
+
+ /**
+ * @generated
+ */
+ public String getEditText() {
+ if (getParserElement() == null || getParser() == null) {
+ return ""; //$NON-NLS-1$
+ }
+ return getParser().getEditString(
+ new EObjectAdapter(getParserElement()),
+ getParserOptions().intValue());
+ }
+
+ /**
+ * @generated
+ */
+ protected boolean isEditable() {
+ return getParser() != null;
+ }
+
+ /**
+ * @generated
+ */
+ public ICellEditorValidator getEditTextValidator() {
+ return new ICellEditorValidator() {
+
+ public String isValid(final Object value) {
+ if (value instanceof String) {
+ final EObject element = getParserElement();
+ final IParser parser = getParser();
+ try {
+ IParserEditStatus valid = (IParserEditStatus) getEditingDomain()
+ .runExclusive(
+ new RunnableWithResult.Impl<IParserEditStatus>() {
+
+ public void run() {
+ setResult(parser
+ .isValidEditString(
+ new EObjectAdapter(
+ element),
+ (String) value));
+ }
+ });
+ return valid.getCode() == ParserEditStatus.EDITABLE ? null
+ : valid.getMessage();
+ } catch (InterruptedException ie) {
+ ie.printStackTrace();
+ }
+ }
+
+ // shouldn't get here
+ return null;
+ }
+ };
+ }
+
+ /**
+ * @generated
+ */
+ public IContentAssistProcessor getCompletionProcessor() {
+ if (getParserElement() == null || getParser() == null) {
+ return null;
+ }
+ return getParser().getCompletionProcessor(
+ new EObjectAdapter(getParserElement()));
+ }
+
+ /**
+ * @generated
+ */
+ public ParserOptions getParserOptions() {
+ return ParserOptions.NONE;
+ }
+
+ /**
+ * @generated
+ */
+ public IParser getParser() {
+ if (parser == null) {
+ parser = ComrelParserProvider
+ .getParser(
+ ComrelElementTypes.SingleFilterUnit_3016,
+ getParserElement(),
+ ComrelVisualIDRegistry
+ .getType(comrel.diagram.edit.parts.SingleFilterUnitNameTypeEditPart.VISUAL_ID));
+ }
+ return parser;
+ }
+
+ /**
+ * @generated
+ */
+ protected DirectEditManager getManager() {
+ if (manager == null) {
+ setManager(new TextDirectEditManager(this,
+ TextDirectEditManager.getTextCellEditorClass(this),
+ ComrelEditPartFactory.getTextCellEditorLocator(this)));
+ }
+ return manager;
+ }
+
+ /**
+ * @generated
+ */
+ protected void setManager(DirectEditManager manager) {
+ this.manager = manager;
+ }
+
+ /**
+ * @generated
+ */
+ protected void performDirectEdit() {
+ getManager().show();
+ }
+
+ /**
+ * @generated
+ */
+ protected void performDirectEdit(Point eventLocation) {
+ if (getManager().getClass() == TextDirectEditManager.class) {
+ ((TextDirectEditManager) getManager()).show(eventLocation
+ .getSWTPoint());
+ }
+ }
+
+ /**
+ * @generated
+ */
+ private void performDirectEdit(char initialCharacter) {
+ if (getManager() instanceof TextDirectEditManager) {
+ ((TextDirectEditManager) getManager()).show(initialCharacter);
+ } else {
+ performDirectEdit();
+ }
+ }
+
+ /**
+ * @generated
+ */
+ protected void performDirectEditRequest(Request request) {
+ final Request theRequest = request;
+ try {
+ getEditingDomain().runExclusive(new Runnable() {
+
+ public void run() {
+ if (isActive() && isEditable()) {
+ if (theRequest
+ .getExtendedData()
+ .get(RequestConstants.REQ_DIRECTEDIT_EXTENDEDDATA_INITIAL_CHAR) instanceof Character) {
+ Character initialChar = (Character) theRequest
+ .getExtendedData()
+ .get(RequestConstants.REQ_DIRECTEDIT_EXTENDEDDATA_INITIAL_CHAR);
+ performDirectEdit(initialChar.charValue());
+ } else if ((theRequest instanceof DirectEditRequest)
+ && (getEditText().equals(getLabelText()))) {
+ DirectEditRequest editRequest = (DirectEditRequest) theRequest;
+ performDirectEdit(editRequest.getLocation());
+ } else {
+ performDirectEdit();
+ }
+ }
+ }
+ });
+ } catch (InterruptedException e) {
+ e.printStackTrace();
+ }
+ }
+
+ /**
+ * @generated
+ */
+ protected void refreshVisuals() {
+ super.refreshVisuals();
+ refreshLabel();
+ refreshFont();
+ refreshFontColor();
+ refreshUnderline();
+ refreshStrikeThrough();
+ }
+
+ /**
+ * @generated
+ */
+ protected void refreshLabel() {
+ setLabelTextHelper(getFigure(), getLabelText());
+ setLabelIconHelper(getFigure(), getLabelIcon());
+ Object pdEditPolicy = getEditPolicy(EditPolicy.PRIMARY_DRAG_ROLE);
+ if (pdEditPolicy instanceof ComrelTextSelectionEditPolicy) {
+ ((ComrelTextSelectionEditPolicy) pdEditPolicy).refreshFeedback();
+ }
+ Object sfEditPolicy = getEditPolicy(EditPolicy.SELECTION_FEEDBACK_ROLE);
+ if (sfEditPolicy instanceof ComrelTextSelectionEditPolicy) {
+ ((ComrelTextSelectionEditPolicy) sfEditPolicy).refreshFeedback();
+ }
+ }
+
+ /**
+ * @generated
+ */
+ protected void refreshUnderline() {
+ FontStyle style = (FontStyle) getFontStyleOwnerView().getStyle(
+ NotationPackage.eINSTANCE.getFontStyle());
+ if (style != null && getFigure() instanceof WrappingLabel) {
+ ((WrappingLabel) getFigure()).setTextUnderline(style.isUnderline());
+ }
+ }
+
+ /**
+ * @generated
+ */
+ protected void refreshStrikeThrough() {
+ FontStyle style = (FontStyle) getFontStyleOwnerView().getStyle(
+ NotationPackage.eINSTANCE.getFontStyle());
+ if (style != null && getFigure() instanceof WrappingLabel) {
+ ((WrappingLabel) getFigure()).setTextStrikeThrough(style
+ .isStrikeThrough());
+ }
+ }
+
+ /**
+ * @generated
+ */
+ protected void refreshFont() {
+ FontStyle style = (FontStyle) getFontStyleOwnerView().getStyle(
+ NotationPackage.eINSTANCE.getFontStyle());
+ if (style != null) {
+ FontData fontData = new FontData(style.getFontName(),
+ style.getFontHeight(), (style.isBold() ? SWT.BOLD
+ : SWT.NORMAL)
+ | (style.isItalic() ? SWT.ITALIC : SWT.NORMAL));
+ setFont(fontData);
+ }
+ }
+
+ /**
+ * @generated
+ */
+ protected void setFontColor(Color color) {
+ getFigure().setForegroundColor(color);
+ }
+
+ /**
+ * @generated
+ */
+ protected void addSemanticListeners() {
+ if (getParser() instanceof ISemanticParser) {
+ EObject element = resolveSemanticElement();
+ parserElements = ((ISemanticParser) getParser())
+ .getSemanticElementsBeingParsed(element);
+ for (int i = 0; i < parserElements.size(); i++) {
+ addListenerFilter(
+ "SemanticModel" + i, this, (EObject) parserElements.get(i)); //$NON-NLS-1$
+ }
+ } else {
+ super.addSemanticListeners();
+ }
+ }
+
+ /**
+ * @generated
+ */
+ protected void removeSemanticListeners() {
+ if (parserElements != null) {
+ for (int i = 0; i < parserElements.size(); i++) {
+ removeListenerFilter("SemanticModel" + i); //$NON-NLS-1$
+ }
+ } else {
+ super.removeSemanticListeners();
+ }
+ }
+
+ /**
+ * @generated
+ */
+ protected AccessibleEditPart getAccessibleEditPart() {
+ if (accessibleEP == null) {
+ accessibleEP = new AccessibleGraphicalEditPart() {
+
+ public void getName(AccessibleEvent e) {
+ e.result = getLabelTextHelper(getFigure());
+ }
+ };
+ }
+ return accessibleEP;
+ }
+
+ /**
+ * @generated
+ */
+ private View getFontStyleOwnerView() {
+ return getPrimaryView();
+ }
+
+ /**
+ * @generated
+ */
+ protected void addNotationalListeners() {
+ super.addNotationalListeners();
+ addListenerFilter("PrimaryView", this, getPrimaryView()); //$NON-NLS-1$
+ }
+
+ /**
+ * @generated
+ */
+ protected void removeNotationalListeners() {
+ super.removeNotationalListeners();
+ removeListenerFilter("PrimaryView"); //$NON-NLS-1$
+ }
+
+ /**
+ * @generated
+ */
+ protected void handleNotificationEvent(Notification event) {
+ Object feature = event.getFeature();
+ if (NotationPackage.eINSTANCE.getFontStyle_FontColor().equals(feature)) {
+ Integer c = (Integer) event.getNewValue();
+ setFontColor(DiagramColorRegistry.getInstance().getColor(c));
+ } else if (NotationPackage.eINSTANCE.getFontStyle_Underline().equals(
+ feature)) {
+ refreshUnderline();
+ } else if (NotationPackage.eINSTANCE.getFontStyle_StrikeThrough()
+ .equals(feature)) {
+ refreshStrikeThrough();
+ } else if (NotationPackage.eINSTANCE.getFontStyle_FontHeight().equals(
+ feature)
+ || NotationPackage.eINSTANCE.getFontStyle_FontName().equals(
+ feature)
+ || NotationPackage.eINSTANCE.getFontStyle_Bold()
+ .equals(feature)
+ || NotationPackage.eINSTANCE.getFontStyle_Italic().equals(
+ feature)) {
+ refreshFont();
+ } else {
+ if (getParser() != null
+ && getParser().isAffectingEvent(event,
+ getParserOptions().intValue())) {
+ refreshLabel();
+ }
+ if (getParser() instanceof ISemanticParser) {
+ ISemanticParser modelParser = (ISemanticParser) getParser();
+ if (modelParser.areSemanticElementsAffected(null, event)) {
+ removeSemanticListeners();
+ if (resolveSemanticElement() != null) {
+ addSemanticListeners();
+ }
+ refreshLabel();
+ }
+ }
+ }
+ super.handleNotificationEvent(event);
+ }
+
+ /**
+ * @generated
+ */
+ protected IFigure createFigure() {
+ // Parent should assign one using setLabel() method
+ return null;
+ }
+
+}
diff --git a/org.eclipse.emf.refactor.comrel.diagram/src/comrel/diagram/edit/parts/SingleInputPort2EditPart.java b/org.eclipse.emf.refactor.comrel.diagram/src/comrel/diagram/edit/parts/SingleInputPort2EditPart.java
new file mode 100644
index 0000000..1088cc1
--- /dev/null
+++ b/org.eclipse.emf.refactor.comrel.diagram/src/comrel/diagram/edit/parts/SingleInputPort2EditPart.java
@@ -0,0 +1,394 @@
+/*
+ *
+ */
+package comrel.diagram.edit.parts;
+
+import java.util.ArrayList;
+import java.util.Collections;
+import java.util.LinkedList;
+import java.util.List;
+
+import org.eclipse.draw2d.IFigure;
+import org.eclipse.draw2d.MarginBorder;
+import org.eclipse.draw2d.PositionConstants;
+import org.eclipse.draw2d.RectangleFigure;
+import org.eclipse.draw2d.Shape;
+import org.eclipse.draw2d.StackLayout;
+import org.eclipse.draw2d.geometry.Dimension;
+import org.eclipse.gef.EditPart;
+import org.eclipse.gef.EditPolicy;
+import org.eclipse.gef.GraphicalEditPart;
+import org.eclipse.gef.Request;
+import org.eclipse.gef.commands.Command;
+import org.eclipse.gef.editpolicies.LayoutEditPolicy;
+import org.eclipse.gef.editpolicies.NonResizableEditPolicy;
+import org.eclipse.gef.handles.MoveHandle;
+import org.eclipse.gef.requests.CreateRequest;
+import org.eclipse.gmf.runtime.diagram.ui.editparts.BorderedBorderItemEditPart;
+import org.eclipse.gmf.runtime.diagram.ui.editparts.IBorderItemEditPart;
+import org.eclipse.gmf.runtime.diagram.ui.editparts.IGraphicalEditPart;
+import org.eclipse.gmf.runtime.diagram.ui.editpolicies.BorderItemSelectionEditPolicy;
+import org.eclipse.gmf.runtime.diagram.ui.editpolicies.EditPolicyRoles;
+import org.eclipse.gmf.runtime.diagram.ui.figures.BorderItemLocator;
+import org.eclipse.gmf.runtime.draw2d.ui.figures.WrappingLabel;
+import org.eclipse.gmf.runtime.emf.type.core.IElementType;
+import org.eclipse.gmf.runtime.gef.ui.figures.DefaultSizeNodeFigure;
+import org.eclipse.gmf.runtime.gef.ui.figures.NodeFigure;
+import org.eclipse.gmf.runtime.notation.View;
+import org.eclipse.swt.graphics.Color;
+
+import comrel.InputPort;
+import comrel.diagram.edit.parts.SingleInputPortEditPart.SingleInputPortFigure;
+import comrel.diagram.edit.policies.SingleInputPort2ItemSemanticEditPolicy;
+import comrel.diagram.part.ComrelVisualIDRegistry;
+import comrel.diagram.providers.ComrelElementTypes;
+import comrel.figures.InputPortFigure;
+
+/**
+ * @generated
+ */
+public class SingleInputPort2EditPart extends BorderedBorderItemEditPart {
+
+ /**
+ * @generated
+ */
+ public static final int VISUAL_ID = 3001;
+
+ /**
+ * @generated
+ */
+ protected IFigure contentPane;
+
+ /**
+ * @generated
+ */
+ protected IFigure primaryShape;
+
+ /**
+ * @generated
+ */
+ public SingleInputPort2EditPart(View view) {
+ super(view);
+ }
+
+ /**
+ * @generated
+ */
+ protected void createDefaultEditPolicies() {
+ super.createDefaultEditPolicies();
+ installEditPolicy(EditPolicy.PRIMARY_DRAG_ROLE,
+ getPrimaryDragEditPolicy());
+ installEditPolicy(EditPolicyRoles.SEMANTIC_ROLE,
+ new SingleInputPort2ItemSemanticEditPolicy());
+ installEditPolicy(EditPolicy.LAYOUT_ROLE, createLayoutEditPolicy());
+ // XXX need an SCR to runtime to have another abstract superclass that would let children add reasonable editpolicies
+ // removeEditPolicy(org.eclipse.gmf.runtime.diagram.ui.editpolicies.EditPolicyRoles.CONNECTION_HANDLES_ROLE);
+ }
+
+ /**
+ * @generated
+ */
+ protected LayoutEditPolicy createLayoutEditPolicy() {
+ org.eclipse.gmf.runtime.diagram.ui.editpolicies.LayoutEditPolicy lep = new org.eclipse.gmf.runtime.diagram.ui.editpolicies.LayoutEditPolicy() {
+
+ protected EditPolicy createChildEditPolicy(EditPart child) {
+ View childView = (View) child.getModel();
+ switch (ComrelVisualIDRegistry.getVisualID(childView)) {
+ case SingleInputPortNameType2EditPart.VISUAL_ID:
+ return new BorderItemSelectionEditPolicy() {
+
+ protected List createSelectionHandles() {
+ MoveHandle mh = new MoveHandle(
+ (GraphicalEditPart) getHost());
+ mh.setBorder(null);
+ return Collections.singletonList(mh);
+ }
+ };
+ }
+ EditPolicy result = child
+ .getEditPolicy(EditPolicy.PRIMARY_DRAG_ROLE);
+ if (result == null) {
+ result = new NonResizableEditPolicy();
+ }
+ return result;
+ }
+
+ protected Command getMoveChildrenCommand(Request request) {
+ return null;
+ }
+
+ protected Command getCreateCommand(CreateRequest request) {
+ return null;
+ }
+ };
+ return lep;
+ }
+
+ /**
+ * @generated NOT
+ */
+ protected IFigure createNodeShape() {
+ SingleInputPortFigure figure = new SingleInputPortFigure();
+ InputPort port = (InputPort) this.resolveSemanticElement();
+ figure.setPort(port);
+ return primaryShape = figure;
+ }
+
+ /**
+ * @generated
+ */
+ public SingleInputPortFigure getPrimaryShape() {
+ return (SingleInputPortFigure) primaryShape;
+ }
+
+ /**
+ * @generated
+ */
+ protected void addBorderItem(IFigure borderItemContainer,
+ IBorderItemEditPart borderItemEditPart) {
+ if (borderItemEditPart instanceof SingleInputPortNameType2EditPart) {
+ BorderItemLocator locator = new BorderItemLocator(getMainFigure(),
+ PositionConstants.SOUTH);
+ locator.setBorderItemOffset(new Dimension(-20, -20));
+ borderItemContainer.add(borderItemEditPart.getFigure(), locator);
+ } else {
+ super.addBorderItem(borderItemContainer, borderItemEditPart);
+ }
+ }
+
+ /**
+ * @generated
+ */
+ protected NodeFigure createNodePlate() {
+ DefaultSizeNodeFigure result = new DefaultSizeNodeFigure(20, 20);
+
+ //FIXME: workaround for #154536
+ result.getBounds().setSize(result.getPreferredSize());
+ return result;
+ }
+
+ /**
+ * Creates figure for this edit part.
+ *
+ * Body of this method does not depend on settings in generation model
+ * so you may safely remove <i>generated</i> tag and modify it.
+ *
+ * @generated
+ */
+ protected NodeFigure createMainFigure() {
+ NodeFigure figure = createNodePlate();
+ figure.setLayoutManager(new StackLayout());
+ IFigure shape = createNodeShape();
+ figure.add(shape);
+ contentPane = setupContentPane(shape);
+ return figure;
+ }
+
+ /**
+ * Default implementation treats passed figure as content pane.
+ * Respects layout one may have set for generated figure.
+ * @param nodeShape instance of generated figure class
+ * @generated
+ */
+ protected IFigure setupContentPane(IFigure nodeShape) {
+ return nodeShape; // use nodeShape itself as contentPane
+ }
+
+ /**
+ * @generated
+ */
+ public IFigure getContentPane() {
+ if (contentPane != null) {
+ return contentPane;
+ }
+ return super.getContentPane();
+ }
+
+ /**
+ * @generated
+ */
+ protected void setForegroundColor(Color color) {
+ if (primaryShape != null) {
+ primaryShape.setForegroundColor(color);
+ }
+ }
+
+ /**
+ * @generated
+ */
+ protected void setBackgroundColor(Color color) {
+ if (primaryShape != null) {
+ primaryShape.setBackgroundColor(color);
+ }
+ }
+
+ /**
+ * @generated
+ */
+ protected void setLineWidth(int width) {
+ if (primaryShape instanceof Shape) {
+ ((Shape) primaryShape).setLineWidth(width);
+ }
+ }
+
+ /**
+ * @generated
+ */
+ protected void setLineType(int style) {
+ if (primaryShape instanceof Shape) {
+ ((Shape) primaryShape).setLineStyle(style);
+ }
+ }
+
+ /**
+ * @generated
+ */
+ public EditPart getPrimaryChildEditPart() {
+ return getChildBySemanticHint(ComrelVisualIDRegistry
+ .getType(SingleInputPortNameType2EditPart.VISUAL_ID));
+ }
+
+ /**
+ * @generated
+ */
+ public List<IElementType> getMARelTypesOnSource() {
+ ArrayList<IElementType> types = new ArrayList<IElementType>(1);
+ types.add(ComrelElementTypes.SinglePortMapping_4001);
+ return types;
+ }
+
+ /**
+ * @generated
+ */
+ public List<IElementType> getMARelTypesOnSourceAndTarget(
+ IGraphicalEditPart targetEditPart) {
+ LinkedList<IElementType> types = new LinkedList<IElementType>();
+ if (targetEditPart instanceof SingleInputPortEditPart) {
+ types.add(ComrelElementTypes.SinglePortMapping_4001);
+ }
+ if (targetEditPart instanceof comrel.diagram.edit.parts.SingleInputPort2EditPart) {
+ types.add(ComrelElementTypes.SinglePortMapping_4001);
+ }
+ if (targetEditPart instanceof SingleInputPort3EditPart) {
+ types.add(ComrelElementTypes.SinglePortMapping_4001);
+ }
+ if (targetEditPart instanceof SingleInputPort4EditPart) {
+ types.add(ComrelElementTypes.SinglePortMapping_4001);
+ }
+ if (targetEditPart instanceof SingleInputPort5EditPart) {
+ types.add(ComrelElementTypes.SinglePortMapping_4001);
+ }
+ if (targetEditPart instanceof SingleInputPort6EditPart) {
+ types.add(ComrelElementTypes.SinglePortMapping_4001);
+ }
+ if (targetEditPart instanceof SingleInputPort7EditPart) {
+ types.add(ComrelElementTypes.SinglePortMapping_4001);
+ }
+ if (targetEditPart instanceof SingleInputPort8EditPart) {
+ types.add(ComrelElementTypes.SinglePortMapping_4001);
+ }
+ if (targetEditPart instanceof SingleInputPort9EditPart) {
+ types.add(ComrelElementTypes.SinglePortMapping_4001);
+ }
+ return types;
+ }
+
+ /**
+ * @generated
+ */
+ public List<IElementType> getMATypesForTarget(IElementType relationshipType) {
+ LinkedList<IElementType> types = new LinkedList<IElementType>();
+ if (relationshipType == ComrelElementTypes.SinglePortMapping_4001) {
+ types.add(ComrelElementTypes.SingleInputPort_2001);
+ types.add(ComrelElementTypes.SingleInputPort_3001);
+ types.add(ComrelElementTypes.SingleInputPort_3005);
+ types.add(ComrelElementTypes.SingleInputPort_3009);
+ types.add(ComrelElementTypes.SingleInputPort_3013);
+ types.add(ComrelElementTypes.SingleInputPort_3023);
+ types.add(ComrelElementTypes.SingleInputPort_3027);
+ types.add(ComrelElementTypes.SingleInputPort_3031);
+ types.add(ComrelElementTypes.SingleInputPort_3035);
+ }
+ return types;
+ }
+
+ /**
+ * @generated
+ */
+ public List<IElementType> getMARelTypesOnTarget() {
+ ArrayList<IElementType> types = new ArrayList<IElementType>(2);
+ types.add(ComrelElementTypes.SinglePortMapping_4001);
+ types.add(ComrelElementTypes.MultiSinglePortMapping_4003);
+ return types;
+ }
+
+ /**
+ * @generated
+ */
+ public List<IElementType> getMATypesForSource(IElementType relationshipType) {
+ LinkedList<IElementType> types = new LinkedList<IElementType>();
+ if (relationshipType == ComrelElementTypes.SinglePortMapping_4001) {
+ types.add(ComrelElementTypes.SingleInputPort_2001);
+ types.add(ComrelElementTypes.SingleInputPort_3001);
+ types.add(ComrelElementTypes.SingleInputPort_3005);
+ types.add(ComrelElementTypes.SingleInputPort_3009);
+ types.add(ComrelElementTypes.SingleOutputPort_3011);
+ types.add(ComrelElementTypes.SingleInputPort_3013);
+ types.add(ComrelElementTypes.SingleOutputPort_3018);
+ types.add(ComrelElementTypes.SingleInputPort_3023);
+ types.add(ComrelElementTypes.SingleInputPort_3027);
+ types.add(ComrelElementTypes.SingleInputPort_3031);
+ types.add(ComrelElementTypes.SingleInputPort_3035);
+ } else if (relationshipType == ComrelElementTypes.MultiSinglePortMapping_4003) {
+ types.add(ComrelElementTypes.MultiInputPort_3002);
+ types.add(ComrelElementTypes.MultiInputPort_3006);
+ types.add(ComrelElementTypes.MultiInputPort_3010);
+ types.add(ComrelElementTypes.MultiInputPort_3014);
+ types.add(ComrelElementTypes.MultiOutputPort_3015);
+ types.add(ComrelElementTypes.MultiInputPort_3017);
+ types.add(ComrelElementTypes.MultiInputPort_3020);
+ types.add(ComrelElementTypes.MultiOutputPort_3021);
+ types.add(ComrelElementTypes.MultiInputPort_3024);
+ types.add(ComrelElementTypes.MultiInputPort_3028);
+ types.add(ComrelElementTypes.MultiInputPort_3032);
+ }
+ return types;
+ }
+
+ // /**
+ // * @generated
+ // */
+ // public class SingleInputPortFigure extends RectangleFigure {
+ //
+ // /**
+ // * @generated
+ // */
+ // public SingleInputPortFigure() {
+ // this.setPreferredSize(new Dimension(getMapMode().DPtoLP(20),
+ // getMapMode().DPtoLP(20)));
+ // this.setBorder(new MarginBorder(getMapMode().DPtoLP(5),
+ // getMapMode().DPtoLP(5), getMapMode().DPtoLP(5),
+ // getMapMode().DPtoLP(5)));
+ // }
+ //
+ // }
+
+ /**
+ * @generated NOT
+ */
+ public class SingleInputPortFigure extends InputPortFigure {
+
+ /**
+ * @generated
+ */
+ public SingleInputPortFigure() {
+ this.setPreferredSize(new Dimension(getMapMode().DPtoLP(20),
+ getMapMode().DPtoLP(20)));
+ this.setBorder(new MarginBorder(getMapMode().DPtoLP(5),
+ getMapMode().DPtoLP(5), getMapMode().DPtoLP(5),
+ getMapMode().DPtoLP(5)));
+ }
+
+ }
+
+}
diff --git a/org.eclipse.emf.refactor.comrel.diagram/src/comrel/diagram/edit/parts/SingleInputPort3EditPart.java b/org.eclipse.emf.refactor.comrel.diagram/src/comrel/diagram/edit/parts/SingleInputPort3EditPart.java
new file mode 100644
index 0000000..7a91e6b
--- /dev/null
+++ b/org.eclipse.emf.refactor.comrel.diagram/src/comrel/diagram/edit/parts/SingleInputPort3EditPart.java
@@ -0,0 +1,394 @@
+/*
+ *
+ */
+package comrel.diagram.edit.parts;
+
+import java.util.ArrayList;
+import java.util.Collections;
+import java.util.LinkedList;
+import java.util.List;
+
+import org.eclipse.draw2d.IFigure;
+import org.eclipse.draw2d.MarginBorder;
+import org.eclipse.draw2d.PositionConstants;
+import org.eclipse.draw2d.RectangleFigure;
+import org.eclipse.draw2d.Shape;
+import org.eclipse.draw2d.StackLayout;
+import org.eclipse.draw2d.geometry.Dimension;
+import org.eclipse.gef.EditPart;
+import org.eclipse.gef.EditPolicy;
+import org.eclipse.gef.GraphicalEditPart;
+import org.eclipse.gef.Request;
+import org.eclipse.gef.commands.Command;
+import org.eclipse.gef.editpolicies.LayoutEditPolicy;
+import org.eclipse.gef.editpolicies.NonResizableEditPolicy;
+import org.eclipse.gef.handles.MoveHandle;
+import org.eclipse.gef.requests.CreateRequest;
+import org.eclipse.gmf.runtime.diagram.ui.editparts.BorderedBorderItemEditPart;
+import org.eclipse.gmf.runtime.diagram.ui.editparts.IBorderItemEditPart;
+import org.eclipse.gmf.runtime.diagram.ui.editparts.IGraphicalEditPart;
+import org.eclipse.gmf.runtime.diagram.ui.editpolicies.BorderItemSelectionEditPolicy;
+import org.eclipse.gmf.runtime.diagram.ui.editpolicies.EditPolicyRoles;
+import org.eclipse.gmf.runtime.diagram.ui.figures.BorderItemLocator;
+import org.eclipse.gmf.runtime.draw2d.ui.figures.WrappingLabel;
+import org.eclipse.gmf.runtime.emf.type.core.IElementType;
+import org.eclipse.gmf.runtime.gef.ui.figures.DefaultSizeNodeFigure;
+import org.eclipse.gmf.runtime.gef.ui.figures.NodeFigure;
+import org.eclipse.gmf.runtime.notation.View;
+import org.eclipse.swt.graphics.Color;
+
+import comrel.InputPort;
+import comrel.diagram.edit.parts.SingleInputPortEditPart.SingleInputPortFigure;
+import comrel.diagram.edit.policies.SingleInputPort3ItemSemanticEditPolicy;
+import comrel.diagram.part.ComrelVisualIDRegistry;
+import comrel.diagram.providers.ComrelElementTypes;
+import comrel.figures.InputPortFigure;
+
+/**
+ * @generated
+ */
+public class SingleInputPort3EditPart extends BorderedBorderItemEditPart {
+
+ /**
+ * @generated
+ */
+ public static final int VISUAL_ID = 3005;
+
+ /**
+ * @generated
+ */
+ protected IFigure contentPane;
+
+ /**
+ * @generated
+ */
+ protected IFigure primaryShape;
+
+ /**
+ * @generated
+ */
+ public SingleInputPort3EditPart(View view) {
+ super(view);
+ }
+
+ /**
+ * @generated
+ */
+ protected void createDefaultEditPolicies() {
+ super.createDefaultEditPolicies();
+ installEditPolicy(EditPolicy.PRIMARY_DRAG_ROLE,
+ getPrimaryDragEditPolicy());
+ installEditPolicy(EditPolicyRoles.SEMANTIC_ROLE,
+ new SingleInputPort3ItemSemanticEditPolicy());
+ installEditPolicy(EditPolicy.LAYOUT_ROLE, createLayoutEditPolicy());
+ // XXX need an SCR to runtime to have another abstract superclass that would let children add reasonable editpolicies
+ // removeEditPolicy(org.eclipse.gmf.runtime.diagram.ui.editpolicies.EditPolicyRoles.CONNECTION_HANDLES_ROLE);
+ }
+
+ /**
+ * @generated
+ */
+ protected LayoutEditPolicy createLayoutEditPolicy() {
+ org.eclipse.gmf.runtime.diagram.ui.editpolicies.LayoutEditPolicy lep = new org.eclipse.gmf.runtime.diagram.ui.editpolicies.LayoutEditPolicy() {
+
+ protected EditPolicy createChildEditPolicy(EditPart child) {
+ View childView = (View) child.getModel();
+ switch (ComrelVisualIDRegistry.getVisualID(childView)) {
+ case SingleInputPortNameType3EditPart.VISUAL_ID:
+ return new BorderItemSelectionEditPolicy() {
+
+ protected List createSelectionHandles() {
+ MoveHandle mh = new MoveHandle(
+ (GraphicalEditPart) getHost());
+ mh.setBorder(null);
+ return Collections.singletonList(mh);
+ }
+ };
+ }
+ EditPolicy result = child
+ .getEditPolicy(EditPolicy.PRIMARY_DRAG_ROLE);
+ if (result == null) {
+ result = new NonResizableEditPolicy();
+ }
+ return result;
+ }
+
+ protected Command getMoveChildrenCommand(Request request) {
+ return null;
+ }
+
+ protected Command getCreateCommand(CreateRequest request) {
+ return null;
+ }
+ };
+ return lep;
+ }
+
+ /**
+ * @generated NOT
+ */
+ protected IFigure createNodeShape() {
+ SingleInputPortFigure figure = new SingleInputPortFigure();
+ InputPort port = (InputPort) this.resolveSemanticElement();
+ figure.setPort(port);
+ return primaryShape = figure;
+ }
+
+ /**
+ * @generated
+ */
+ public SingleInputPortFigure getPrimaryShape() {
+ return (SingleInputPortFigure) primaryShape;
+ }
+
+ /**
+ * @generated
+ */
+ protected void addBorderItem(IFigure borderItemContainer,
+ IBorderItemEditPart borderItemEditPart) {
+ if (borderItemEditPart instanceof SingleInputPortNameType3EditPart) {
+ BorderItemLocator locator = new BorderItemLocator(getMainFigure(),
+ PositionConstants.SOUTH);
+ locator.setBorderItemOffset(new Dimension(-20, -20));
+ borderItemContainer.add(borderItemEditPart.getFigure(), locator);
+ } else {
+ super.addBorderItem(borderItemContainer, borderItemEditPart);
+ }
+ }
+
+ /**
+ * @generated
+ */
+ protected NodeFigure createNodePlate() {
+ DefaultSizeNodeFigure result = new DefaultSizeNodeFigure(20, 20);
+
+ //FIXME: workaround for #154536
+ result.getBounds().setSize(result.getPreferredSize());
+ return result;
+ }
+
+ /**
+ * Creates figure for this edit part.
+ *
+ * Body of this method does not depend on settings in generation model
+ * so you may safely remove <i>generated</i> tag and modify it.
+ *
+ * @generated
+ */
+ protected NodeFigure createMainFigure() {
+ NodeFigure figure = createNodePlate();
+ figure.setLayoutManager(new StackLayout());
+ IFigure shape = createNodeShape();
+ figure.add(shape);
+ contentPane = setupContentPane(shape);
+ return figure;
+ }
+
+ /**
+ * Default implementation treats passed figure as content pane.
+ * Respects layout one may have set for generated figure.
+ * @param nodeShape instance of generated figure class
+ * @generated
+ */
+ protected IFigure setupContentPane(IFigure nodeShape) {
+ return nodeShape; // use nodeShape itself as contentPane
+ }
+
+ /**
+ * @generated
+ */
+ public IFigure getContentPane() {
+ if (contentPane != null) {
+ return contentPane;
+ }
+ return super.getContentPane();
+ }
+
+ /**
+ * @generated
+ */
+ protected void setForegroundColor(Color color) {
+ if (primaryShape != null) {
+ primaryShape.setForegroundColor(color);
+ }
+ }
+
+ /**
+ * @generated
+ */
+ protected void setBackgroundColor(Color color) {
+ if (primaryShape != null) {
+ primaryShape.setBackgroundColor(color);
+ }
+ }
+
+ /**
+ * @generated
+ */
+ protected void setLineWidth(int width) {
+ if (primaryShape instanceof Shape) {
+ ((Shape) primaryShape).setLineWidth(width);
+ }
+ }
+
+ /**
+ * @generated
+ */
+ protected void setLineType(int style) {
+ if (primaryShape instanceof Shape) {
+ ((Shape) primaryShape).setLineStyle(style);
+ }
+ }
+
+ /**
+ * @generated
+ */
+ public EditPart getPrimaryChildEditPart() {
+ return getChildBySemanticHint(ComrelVisualIDRegistry
+ .getType(SingleInputPortNameType3EditPart.VISUAL_ID));
+ }
+
+ /**
+ * @generated
+ */
+ public List<IElementType> getMARelTypesOnSource() {
+ ArrayList<IElementType> types = new ArrayList<IElementType>(1);
+ types.add(ComrelElementTypes.SinglePortMapping_4001);
+ return types;
+ }
+
+ /**
+ * @generated
+ */
+ public List<IElementType> getMARelTypesOnSourceAndTarget(
+ IGraphicalEditPart targetEditPart) {
+ LinkedList<IElementType> types = new LinkedList<IElementType>();
+ if (targetEditPart instanceof SingleInputPortEditPart) {
+ types.add(ComrelElementTypes.SinglePortMapping_4001);
+ }
+ if (targetEditPart instanceof SingleInputPort2EditPart) {
+ types.add(ComrelElementTypes.SinglePortMapping_4001);
+ }
+ if (targetEditPart instanceof comrel.diagram.edit.parts.SingleInputPort3EditPart) {
+ types.add(ComrelElementTypes.SinglePortMapping_4001);
+ }
+ if (targetEditPart instanceof SingleInputPort4EditPart) {
+ types.add(ComrelElementTypes.SinglePortMapping_4001);
+ }
+ if (targetEditPart instanceof SingleInputPort5EditPart) {
+ types.add(ComrelElementTypes.SinglePortMapping_4001);
+ }
+ if (targetEditPart instanceof SingleInputPort6EditPart) {
+ types.add(ComrelElementTypes.SinglePortMapping_4001);
+ }
+ if (targetEditPart instanceof SingleInputPort7EditPart) {
+ types.add(ComrelElementTypes.SinglePortMapping_4001);
+ }
+ if (targetEditPart instanceof SingleInputPort8EditPart) {
+ types.add(ComrelElementTypes.SinglePortMapping_4001);
+ }
+ if (targetEditPart instanceof SingleInputPort9EditPart) {
+ types.add(ComrelElementTypes.SinglePortMapping_4001);
+ }
+ return types;
+ }
+
+ /**
+ * @generated
+ */
+ public List<IElementType> getMATypesForTarget(IElementType relationshipType) {
+ LinkedList<IElementType> types = new LinkedList<IElementType>();
+ if (relationshipType == ComrelElementTypes.SinglePortMapping_4001) {
+ types.add(ComrelElementTypes.SingleInputPort_2001);
+ types.add(ComrelElementTypes.SingleInputPort_3001);
+ types.add(ComrelElementTypes.SingleInputPort_3005);
+ types.add(ComrelElementTypes.SingleInputPort_3009);
+ types.add(ComrelElementTypes.SingleInputPort_3013);
+ types.add(ComrelElementTypes.SingleInputPort_3023);
+ types.add(ComrelElementTypes.SingleInputPort_3027);
+ types.add(ComrelElementTypes.SingleInputPort_3031);
+ types.add(ComrelElementTypes.SingleInputPort_3035);
+ }
+ return types;
+ }
+
+ /**
+ * @generated
+ */
+ public List<IElementType> getMARelTypesOnTarget() {
+ ArrayList<IElementType> types = new ArrayList<IElementType>(2);
+ types.add(ComrelElementTypes.SinglePortMapping_4001);
+ types.add(ComrelElementTypes.MultiSinglePortMapping_4003);
+ return types;
+ }
+
+ /**
+ * @generated
+ */
+ public List<IElementType> getMATypesForSource(IElementType relationshipType) {
+ LinkedList<IElementType> types = new LinkedList<IElementType>();
+ if (relationshipType == ComrelElementTypes.SinglePortMapping_4001) {
+ types.add(ComrelElementTypes.SingleInputPort_2001);
+ types.add(ComrelElementTypes.SingleInputPort_3001);
+ types.add(ComrelElementTypes.SingleInputPort_3005);
+ types.add(ComrelElementTypes.SingleInputPort_3009);
+ types.add(ComrelElementTypes.SingleOutputPort_3011);
+ types.add(ComrelElementTypes.SingleInputPort_3013);
+ types.add(ComrelElementTypes.SingleOutputPort_3018);
+ types.add(ComrelElementTypes.SingleInputPort_3023);
+ types.add(ComrelElementTypes.SingleInputPort_3027);
+ types.add(ComrelElementTypes.SingleInputPort_3031);
+ types.add(ComrelElementTypes.SingleInputPort_3035);
+ } else if (relationshipType == ComrelElementTypes.MultiSinglePortMapping_4003) {
+ types.add(ComrelElementTypes.MultiInputPort_3002);
+ types.add(ComrelElementTypes.MultiInputPort_3006);
+ types.add(ComrelElementTypes.MultiInputPort_3010);
+ types.add(ComrelElementTypes.MultiInputPort_3014);
+ types.add(ComrelElementTypes.MultiOutputPort_3015);
+ types.add(ComrelElementTypes.MultiInputPort_3017);
+ types.add(ComrelElementTypes.MultiInputPort_3020);
+ types.add(ComrelElementTypes.MultiOutputPort_3021);
+ types.add(ComrelElementTypes.MultiInputPort_3024);
+ types.add(ComrelElementTypes.MultiInputPort_3028);
+ types.add(ComrelElementTypes.MultiInputPort_3032);
+ }
+ return types;
+ }
+
+ // /**
+ // * @generated
+ // */
+ // public class SingleInputPortFigure extends RectangleFigure {
+ //
+ // /**
+ // * @generated
+ // */
+ // public SingleInputPortFigure() {
+ // this.setPreferredSize(new Dimension(getMapMode().DPtoLP(20),
+ // getMapMode().DPtoLP(20)));
+ // this.setBorder(new MarginBorder(getMapMode().DPtoLP(5),
+ // getMapMode().DPtoLP(5), getMapMode().DPtoLP(5),
+ // getMapMode().DPtoLP(5)));
+ // }
+ //
+ // }
+
+ /**
+ * @generated NOT
+ */
+ public class SingleInputPortFigure extends InputPortFigure {
+
+ /**
+ * @generated
+ */
+ public SingleInputPortFigure() {
+ this.setPreferredSize(new Dimension(getMapMode().DPtoLP(20),
+ getMapMode().DPtoLP(20)));
+ this.setBorder(new MarginBorder(getMapMode().DPtoLP(5),
+ getMapMode().DPtoLP(5), getMapMode().DPtoLP(5),
+ getMapMode().DPtoLP(5)));
+ }
+
+ }
+
+}
diff --git a/org.eclipse.emf.refactor.comrel.diagram/src/comrel/diagram/edit/parts/SingleInputPort4EditPart.java b/org.eclipse.emf.refactor.comrel.diagram/src/comrel/diagram/edit/parts/SingleInputPort4EditPart.java
new file mode 100644
index 0000000..4b92dd5
--- /dev/null
+++ b/org.eclipse.emf.refactor.comrel.diagram/src/comrel/diagram/edit/parts/SingleInputPort4EditPart.java
@@ -0,0 +1,394 @@
+/*
+ *
+ */
+package comrel.diagram.edit.parts;
+
+import java.util.ArrayList;
+import java.util.Collections;
+import java.util.LinkedList;
+import java.util.List;
+
+import org.eclipse.draw2d.IFigure;
+import org.eclipse.draw2d.MarginBorder;
+import org.eclipse.draw2d.PositionConstants;
+import org.eclipse.draw2d.RectangleFigure;
+import org.eclipse.draw2d.Shape;
+import org.eclipse.draw2d.StackLayout;
+import org.eclipse.draw2d.geometry.Dimension;
+import org.eclipse.gef.EditPart;
+import org.eclipse.gef.EditPolicy;
+import org.eclipse.gef.GraphicalEditPart;
+import org.eclipse.gef.Request;
+import org.eclipse.gef.commands.Command;
+import org.eclipse.gef.editpolicies.LayoutEditPolicy;
+import org.eclipse.gef.editpolicies.NonResizableEditPolicy;
+import org.eclipse.gef.handles.MoveHandle;
+import org.eclipse.gef.requests.CreateRequest;
+import org.eclipse.gmf.runtime.diagram.ui.editparts.BorderedBorderItemEditPart;
+import org.eclipse.gmf.runtime.diagram.ui.editparts.IBorderItemEditPart;
+import org.eclipse.gmf.runtime.diagram.ui.editparts.IGraphicalEditPart;
+import org.eclipse.gmf.runtime.diagram.ui.editpolicies.BorderItemSelectionEditPolicy;
+import org.eclipse.gmf.runtime.diagram.ui.editpolicies.EditPolicyRoles;
+import org.eclipse.gmf.runtime.diagram.ui.figures.BorderItemLocator;
+import org.eclipse.gmf.runtime.draw2d.ui.figures.WrappingLabel;
+import org.eclipse.gmf.runtime.emf.type.core.IElementType;
+import org.eclipse.gmf.runtime.gef.ui.figures.DefaultSizeNodeFigure;
+import org.eclipse.gmf.runtime.gef.ui.figures.NodeFigure;
+import org.eclipse.gmf.runtime.notation.View;
+import org.eclipse.swt.graphics.Color;
+
+import comrel.InputPort;
+import comrel.diagram.edit.parts.SingleInputPortEditPart.SingleInputPortFigure;
+import comrel.diagram.edit.policies.SingleInputPort4ItemSemanticEditPolicy;
+import comrel.diagram.part.ComrelVisualIDRegistry;
+import comrel.diagram.providers.ComrelElementTypes;
+import comrel.figures.InputPortFigure;
+
+/**
+ * @generated
+ */
+public class SingleInputPort4EditPart extends BorderedBorderItemEditPart {
+
+ /**
+ * @generated
+ */
+ public static final int VISUAL_ID = 3009;
+
+ /**
+ * @generated
+ */
+ protected IFigure contentPane;
+
+ /**
+ * @generated
+ */
+ protected IFigure primaryShape;
+
+ /**
+ * @generated
+ */
+ public SingleInputPort4EditPart(View view) {
+ super(view);
+ }
+
+ /**
+ * @generated
+ */
+ protected void createDefaultEditPolicies() {
+ super.createDefaultEditPolicies();
+ installEditPolicy(EditPolicy.PRIMARY_DRAG_ROLE,
+ getPrimaryDragEditPolicy());
+ installEditPolicy(EditPolicyRoles.SEMANTIC_ROLE,
+ new SingleInputPort4ItemSemanticEditPolicy());
+ installEditPolicy(EditPolicy.LAYOUT_ROLE, createLayoutEditPolicy());
+ // XXX need an SCR to runtime to have another abstract superclass that would let children add reasonable editpolicies
+ // removeEditPolicy(org.eclipse.gmf.runtime.diagram.ui.editpolicies.EditPolicyRoles.CONNECTION_HANDLES_ROLE);
+ }
+
+ /**
+ * @generated
+ */
+ protected LayoutEditPolicy createLayoutEditPolicy() {
+ org.eclipse.gmf.runtime.diagram.ui.editpolicies.LayoutEditPolicy lep = new org.eclipse.gmf.runtime.diagram.ui.editpolicies.LayoutEditPolicy() {
+
+ protected EditPolicy createChildEditPolicy(EditPart child) {
+ View childView = (View) child.getModel();
+ switch (ComrelVisualIDRegistry.getVisualID(childView)) {
+ case SingleInputPortNameType4EditPart.VISUAL_ID:
+ return new BorderItemSelectionEditPolicy() {
+
+ protected List createSelectionHandles() {
+ MoveHandle mh = new MoveHandle(
+ (GraphicalEditPart) getHost());
+ mh.setBorder(null);
+ return Collections.singletonList(mh);
+ }
+ };
+ }
+ EditPolicy result = child
+ .getEditPolicy(EditPolicy.PRIMARY_DRAG_ROLE);
+ if (result == null) {
+ result = new NonResizableEditPolicy();
+ }
+ return result;
+ }
+
+ protected Command getMoveChildrenCommand(Request request) {
+ return null;
+ }
+
+ protected Command getCreateCommand(CreateRequest request) {
+ return null;
+ }
+ };
+ return lep;
+ }
+
+ /**
+ * @generated NOT
+ */
+ protected IFigure createNodeShape() {
+ SingleInputPortFigure figure = new SingleInputPortFigure();
+ InputPort port = (InputPort) this.resolveSemanticElement();
+ figure.setPort(port);
+ return primaryShape = figure;
+ }
+
+ /**
+ * @generated
+ */
+ public SingleInputPortFigure getPrimaryShape() {
+ return (SingleInputPortFigure) primaryShape;
+ }
+
+ /**
+ * @generated
+ */
+ protected void addBorderItem(IFigure borderItemContainer,
+ IBorderItemEditPart borderItemEditPart) {
+ if (borderItemEditPart instanceof SingleInputPortNameType4EditPart) {
+ BorderItemLocator locator = new BorderItemLocator(getMainFigure(),
+ PositionConstants.SOUTH);
+ locator.setBorderItemOffset(new Dimension(-20, -20));
+ borderItemContainer.add(borderItemEditPart.getFigure(), locator);
+ } else {
+ super.addBorderItem(borderItemContainer, borderItemEditPart);
+ }
+ }
+
+ /**
+ * @generated
+ */
+ protected NodeFigure createNodePlate() {
+ DefaultSizeNodeFigure result = new DefaultSizeNodeFigure(20, 20);
+
+ //FIXME: workaround for #154536
+ result.getBounds().setSize(result.getPreferredSize());
+ return result;
+ }
+
+ /**
+ * Creates figure for this edit part.
+ *
+ * Body of this method does not depend on settings in generation model
+ * so you may safely remove <i>generated</i> tag and modify it.
+ *
+ * @generated
+ */
+ protected NodeFigure createMainFigure() {
+ NodeFigure figure = createNodePlate();
+ figure.setLayoutManager(new StackLayout());
+ IFigure shape = createNodeShape();
+ figure.add(shape);
+ contentPane = setupContentPane(shape);
+ return figure;
+ }
+
+ /**
+ * Default implementation treats passed figure as content pane.
+ * Respects layout one may have set for generated figure.
+ * @param nodeShape instance of generated figure class
+ * @generated
+ */
+ protected IFigure setupContentPane(IFigure nodeShape) {
+ return nodeShape; // use nodeShape itself as contentPane
+ }
+
+ /**
+ * @generated
+ */
+ public IFigure getContentPane() {
+ if (contentPane != null) {
+ return contentPane;
+ }
+ return super.getContentPane();
+ }
+
+ /**
+ * @generated
+ */
+ protected void setForegroundColor(Color color) {
+ if (primaryShape != null) {
+ primaryShape.setForegroundColor(color);
+ }
+ }
+
+ /**
+ * @generated
+ */
+ protected void setBackgroundColor(Color color) {
+ if (primaryShape != null) {
+ primaryShape.setBackgroundColor(color);
+ }
+ }
+
+ /**
+ * @generated
+ */
+ protected void setLineWidth(int width) {
+ if (primaryShape instanceof Shape) {
+ ((Shape) primaryShape).setLineWidth(width);
+ }
+ }
+
+ /**
+ * @generated
+ */
+ protected void setLineType(int style) {
+ if (primaryShape instanceof Shape) {
+ ((Shape) primaryShape).setLineStyle(style);
+ }
+ }
+
+ /**
+ * @generated
+ */
+ public EditPart getPrimaryChildEditPart() {
+ return getChildBySemanticHint(ComrelVisualIDRegistry
+ .getType(SingleInputPortNameType4EditPart.VISUAL_ID));
+ }
+
+ /**
+ * @generated
+ */
+ public List<IElementType> getMARelTypesOnSource() {
+ ArrayList<IElementType> types = new ArrayList<IElementType>(1);
+ types.add(ComrelElementTypes.SinglePortMapping_4001);
+ return types;
+ }
+
+ /**
+ * @generated
+ */
+ public List<IElementType> getMARelTypesOnSourceAndTarget(
+ IGraphicalEditPart targetEditPart) {
+ LinkedList<IElementType> types = new LinkedList<IElementType>();
+ if (targetEditPart instanceof SingleInputPortEditPart) {
+ types.add(ComrelElementTypes.SinglePortMapping_4001);
+ }
+ if (targetEditPart instanceof SingleInputPort2EditPart) {
+ types.add(ComrelElementTypes.SinglePortMapping_4001);
+ }
+ if (targetEditPart instanceof SingleInputPort3EditPart) {
+ types.add(ComrelElementTypes.SinglePortMapping_4001);
+ }
+ if (targetEditPart instanceof comrel.diagram.edit.parts.SingleInputPort4EditPart) {
+ types.add(ComrelElementTypes.SinglePortMapping_4001);
+ }
+ if (targetEditPart instanceof SingleInputPort5EditPart) {
+ types.add(ComrelElementTypes.SinglePortMapping_4001);
+ }
+ if (targetEditPart instanceof SingleInputPort6EditPart) {
+ types.add(ComrelElementTypes.SinglePortMapping_4001);
+ }
+ if (targetEditPart instanceof SingleInputPort7EditPart) {
+ types.add(ComrelElementTypes.SinglePortMapping_4001);
+ }
+ if (targetEditPart instanceof SingleInputPort8EditPart) {
+ types.add(ComrelElementTypes.SinglePortMapping_4001);
+ }
+ if (targetEditPart instanceof SingleInputPort9EditPart) {
+ types.add(ComrelElementTypes.SinglePortMapping_4001);
+ }
+ return types;
+ }
+
+ /**
+ * @generated
+ */
+ public List<IElementType> getMATypesForTarget(IElementType relationshipType) {
+ LinkedList<IElementType> types = new LinkedList<IElementType>();
+ if (relationshipType == ComrelElementTypes.SinglePortMapping_4001) {
+ types.add(ComrelElementTypes.SingleInputPort_2001);
+ types.add(ComrelElementTypes.SingleInputPort_3001);
+ types.add(ComrelElementTypes.SingleInputPort_3005);
+ types.add(ComrelElementTypes.SingleInputPort_3009);
+ types.add(ComrelElementTypes.SingleInputPort_3013);
+ types.add(ComrelElementTypes.SingleInputPort_3023);
+ types.add(ComrelElementTypes.SingleInputPort_3027);
+ types.add(ComrelElementTypes.SingleInputPort_3031);
+ types.add(ComrelElementTypes.SingleInputPort_3035);
+ }
+ return types;
+ }
+
+ /**
+ * @generated
+ */
+ public List<IElementType> getMARelTypesOnTarget() {
+ ArrayList<IElementType> types = new ArrayList<IElementType>(2);
+ types.add(ComrelElementTypes.SinglePortMapping_4001);
+ types.add(ComrelElementTypes.MultiSinglePortMapping_4003);
+ return types;
+ }
+
+ /**
+ * @generated
+ */
+ public List<IElementType> getMATypesForSource(IElementType relationshipType) {
+ LinkedList<IElementType> types = new LinkedList<IElementType>();
+ if (relationshipType == ComrelElementTypes.SinglePortMapping_4001) {
+ types.add(ComrelElementTypes.SingleInputPort_2001);
+ types.add(ComrelElementTypes.SingleInputPort_3001);
+ types.add(ComrelElementTypes.SingleInputPort_3005);
+ types.add(ComrelElementTypes.SingleInputPort_3009);
+ types.add(ComrelElementTypes.SingleOutputPort_3011);
+ types.add(ComrelElementTypes.SingleInputPort_3013);
+ types.add(ComrelElementTypes.SingleOutputPort_3018);
+ types.add(ComrelElementTypes.SingleInputPort_3023);
+ types.add(ComrelElementTypes.SingleInputPort_3027);
+ types.add(ComrelElementTypes.SingleInputPort_3031);
+ types.add(ComrelElementTypes.SingleInputPort_3035);
+ } else if (relationshipType == ComrelElementTypes.MultiSinglePortMapping_4003) {
+ types.add(ComrelElementTypes.MultiInputPort_3002);
+ types.add(ComrelElementTypes.MultiInputPort_3006);
+ types.add(ComrelElementTypes.MultiInputPort_3010);
+ types.add(ComrelElementTypes.MultiInputPort_3014);
+ types.add(ComrelElementTypes.MultiOutputPort_3015);
+ types.add(ComrelElementTypes.MultiInputPort_3017);
+ types.add(ComrelElementTypes.MultiInputPort_3020);
+ types.add(ComrelElementTypes.MultiOutputPort_3021);
+ types.add(ComrelElementTypes.MultiInputPort_3024);
+ types.add(ComrelElementTypes.MultiInputPort_3028);
+ types.add(ComrelElementTypes.MultiInputPort_3032);
+ }
+ return types;
+ }
+
+ // /**
+ // * @generated
+ // */
+ // public class SingleInputPortFigure extends RectangleFigure {
+ //
+ // /**
+ // * @generated
+ // */
+ // public SingleInputPortFigure() {
+ // this.setPreferredSize(new Dimension(getMapMode().DPtoLP(20),
+ // getMapMode().DPtoLP(20)));
+ // this.setBorder(new MarginBorder(getMapMode().DPtoLP(5),
+ // getMapMode().DPtoLP(5), getMapMode().DPtoLP(5),
+ // getMapMode().DPtoLP(5)));
+ // }
+ //
+ // }
+
+ /**
+ * @generated NOT
+ */
+ public class SingleInputPortFigure extends InputPortFigure {
+
+ /**
+ * @generated
+ */
+ public SingleInputPortFigure() {
+ this.setPreferredSize(new Dimension(getMapMode().DPtoLP(20),
+ getMapMode().DPtoLP(20)));
+ this.setBorder(new MarginBorder(getMapMode().DPtoLP(5),
+ getMapMode().DPtoLP(5), getMapMode().DPtoLP(5),
+ getMapMode().DPtoLP(5)));
+ }
+
+ }
+
+}
diff --git a/org.eclipse.emf.refactor.comrel.diagram/src/comrel/diagram/edit/parts/SingleInputPort5EditPart.java b/org.eclipse.emf.refactor.comrel.diagram/src/comrel/diagram/edit/parts/SingleInputPort5EditPart.java
new file mode 100644
index 0000000..1b3ccdc
--- /dev/null
+++ b/org.eclipse.emf.refactor.comrel.diagram/src/comrel/diagram/edit/parts/SingleInputPort5EditPart.java
@@ -0,0 +1,394 @@
+/*
+ *
+ */
+package comrel.diagram.edit.parts;
+
+import java.util.ArrayList;
+import java.util.Collections;
+import java.util.LinkedList;
+import java.util.List;
+
+import org.eclipse.draw2d.IFigure;
+import org.eclipse.draw2d.MarginBorder;
+import org.eclipse.draw2d.PositionConstants;
+import org.eclipse.draw2d.RectangleFigure;
+import org.eclipse.draw2d.Shape;
+import org.eclipse.draw2d.StackLayout;
+import org.eclipse.draw2d.geometry.Dimension;
+import org.eclipse.gef.EditPart;
+import org.eclipse.gef.EditPolicy;
+import org.eclipse.gef.GraphicalEditPart;
+import org.eclipse.gef.Request;
+import org.eclipse.gef.commands.Command;
+import org.eclipse.gef.editpolicies.LayoutEditPolicy;
+import org.eclipse.gef.editpolicies.NonResizableEditPolicy;
+import org.eclipse.gef.handles.MoveHandle;
+import org.eclipse.gef.requests.CreateRequest;
+import org.eclipse.gmf.runtime.diagram.ui.editparts.BorderedBorderItemEditPart;
+import org.eclipse.gmf.runtime.diagram.ui.editparts.IBorderItemEditPart;
+import org.eclipse.gmf.runtime.diagram.ui.editparts.IGraphicalEditPart;
+import org.eclipse.gmf.runtime.diagram.ui.editpolicies.BorderItemSelectionEditPolicy;
+import org.eclipse.gmf.runtime.diagram.ui.editpolicies.EditPolicyRoles;
+import org.eclipse.gmf.runtime.diagram.ui.figures.BorderItemLocator;
+import org.eclipse.gmf.runtime.draw2d.ui.figures.WrappingLabel;
+import org.eclipse.gmf.runtime.emf.type.core.IElementType;
+import org.eclipse.gmf.runtime.gef.ui.figures.DefaultSizeNodeFigure;
+import org.eclipse.gmf.runtime.gef.ui.figures.NodeFigure;
+import org.eclipse.gmf.runtime.notation.View;
+import org.eclipse.swt.graphics.Color;
+
+import comrel.InputPort;
+import comrel.diagram.edit.parts.SingleInputPortEditPart.SingleInputPortFigure;
+import comrel.diagram.edit.policies.SingleInputPort5ItemSemanticEditPolicy;
+import comrel.diagram.part.ComrelVisualIDRegistry;
+import comrel.diagram.providers.ComrelElementTypes;
+import comrel.figures.InputPortFigure;
+
+/**
+ * @generated
+ */
+public class SingleInputPort5EditPart extends BorderedBorderItemEditPart {
+
+ /**
+ * @generated
+ */
+ public static final int VISUAL_ID = 3013;
+
+ /**
+ * @generated
+ */
+ protected IFigure contentPane;
+
+ /**
+ * @generated
+ */
+ protected IFigure primaryShape;
+
+ /**
+ * @generated
+ */
+ public SingleInputPort5EditPart(View view) {
+ super(view);
+ }
+
+ /**
+ * @generated
+ */
+ protected void createDefaultEditPolicies() {
+ super.createDefaultEditPolicies();
+ installEditPolicy(EditPolicy.PRIMARY_DRAG_ROLE,
+ getPrimaryDragEditPolicy());
+ installEditPolicy(EditPolicyRoles.SEMANTIC_ROLE,
+ new SingleInputPort5ItemSemanticEditPolicy());
+ installEditPolicy(EditPolicy.LAYOUT_ROLE, createLayoutEditPolicy());
+ // XXX need an SCR to runtime to have another abstract superclass that would let children add reasonable editpolicies
+ // removeEditPolicy(org.eclipse.gmf.runtime.diagram.ui.editpolicies.EditPolicyRoles.CONNECTION_HANDLES_ROLE);
+ }
+
+ /**
+ * @generated
+ */
+ protected LayoutEditPolicy createLayoutEditPolicy() {
+ org.eclipse.gmf.runtime.diagram.ui.editpolicies.LayoutEditPolicy lep = new org.eclipse.gmf.runtime.diagram.ui.editpolicies.LayoutEditPolicy() {
+
+ protected EditPolicy createChildEditPolicy(EditPart child) {
+ View childView = (View) child.getModel();
+ switch (ComrelVisualIDRegistry.getVisualID(childView)) {
+ case SingleInputPortNameType5EditPart.VISUAL_ID:
+ return new BorderItemSelectionEditPolicy() {
+
+ protected List createSelectionHandles() {
+ MoveHandle mh = new MoveHandle(
+ (GraphicalEditPart) getHost());
+ mh.setBorder(null);
+ return Collections.singletonList(mh);
+ }
+ };
+ }
+ EditPolicy result = child
+ .getEditPolicy(EditPolicy.PRIMARY_DRAG_ROLE);
+ if (result == null) {
+ result = new NonResizableEditPolicy();
+ }
+ return result;
+ }
+
+ protected Command getMoveChildrenCommand(Request request) {
+ return null;
+ }
+
+ protected Command getCreateCommand(CreateRequest request) {
+ return null;
+ }
+ };
+ return lep;
+ }
+
+ /**
+ * @generated NOT
+ */
+ protected IFigure createNodeShape() {
+ SingleInputPortFigure figure = new SingleInputPortFigure();
+ InputPort port = (InputPort) this.resolveSemanticElement();
+ figure.setPort(port);
+ return primaryShape = figure;
+ }
+
+ /**
+ * @generated
+ */
+ public SingleInputPortFigure getPrimaryShape() {
+ return (SingleInputPortFigure) primaryShape;
+ }
+
+ /**
+ * @generated
+ */
+ protected void addBorderItem(IFigure borderItemContainer,
+ IBorderItemEditPart borderItemEditPart) {
+ if (borderItemEditPart instanceof SingleInputPortNameType5EditPart) {
+ BorderItemLocator locator = new BorderItemLocator(getMainFigure(),
+ PositionConstants.SOUTH);
+ locator.setBorderItemOffset(new Dimension(-20, -20));
+ borderItemContainer.add(borderItemEditPart.getFigure(), locator);
+ } else {
+ super.addBorderItem(borderItemContainer, borderItemEditPart);
+ }
+ }
+
+ /**
+ * @generated
+ */
+ protected NodeFigure createNodePlate() {
+ DefaultSizeNodeFigure result = new DefaultSizeNodeFigure(20, 20);
+
+ //FIXME: workaround for #154536
+ result.getBounds().setSize(result.getPreferredSize());
+ return result;
+ }
+
+ /**
+ * Creates figure for this edit part.
+ *
+ * Body of this method does not depend on settings in generation model
+ * so you may safely remove <i>generated</i> tag and modify it.
+ *
+ * @generated
+ */
+ protected NodeFigure createMainFigure() {
+ NodeFigure figure = createNodePlate();
+ figure.setLayoutManager(new StackLayout());
+ IFigure shape = createNodeShape();
+ figure.add(shape);
+ contentPane = setupContentPane(shape);
+ return figure;
+ }
+
+ /**
+ * Default implementation treats passed figure as content pane.
+ * Respects layout one may have set for generated figure.
+ * @param nodeShape instance of generated figure class
+ * @generated
+ */
+ protected IFigure setupContentPane(IFigure nodeShape) {
+ return nodeShape; // use nodeShape itself as contentPane
+ }
+
+ /**
+ * @generated
+ */
+ public IFigure getContentPane() {
+ if (contentPane != null) {
+ return contentPane;
+ }
+ return super.getContentPane();
+ }
+
+ /**
+ * @generated
+ */
+ protected void setForegroundColor(Color color) {
+ if (primaryShape != null) {
+ primaryShape.setForegroundColor(color);
+ }
+ }
+
+ /**
+ * @generated
+ */
+ protected void setBackgroundColor(Color color) {
+ if (primaryShape != null) {
+ primaryShape.setBackgroundColor(color);
+ }
+ }
+
+ /**
+ * @generated
+ */
+ protected void setLineWidth(int width) {
+ if (primaryShape instanceof Shape) {
+ ((Shape) primaryShape).setLineWidth(width);
+ }
+ }
+
+ /**
+ * @generated
+ */
+ protected void setLineType(int style) {
+ if (primaryShape instanceof Shape) {
+ ((Shape) primaryShape).setLineStyle(style);
+ }
+ }
+
+ /**
+ * @generated
+ */
+ public EditPart getPrimaryChildEditPart() {
+ return getChildBySemanticHint(ComrelVisualIDRegistry
+ .getType(SingleInputPortNameType5EditPart.VISUAL_ID));
+ }
+
+ /**
+ * @generated
+ */
+ public List<IElementType> getMARelTypesOnSource() {
+ ArrayList<IElementType> types = new ArrayList<IElementType>(1);
+ types.add(ComrelElementTypes.SinglePortMapping_4001);
+ return types;
+ }
+
+ /**
+ * @generated
+ */
+ public List<IElementType> getMARelTypesOnSourceAndTarget(
+ IGraphicalEditPart targetEditPart) {
+ LinkedList<IElementType> types = new LinkedList<IElementType>();
+ if (targetEditPart instanceof SingleInputPortEditPart) {
+ types.add(ComrelElementTypes.SinglePortMapping_4001);
+ }
+ if (targetEditPart instanceof SingleInputPort2EditPart) {
+ types.add(ComrelElementTypes.SinglePortMapping_4001);
+ }
+ if (targetEditPart instanceof SingleInputPort3EditPart) {
+ types.add(ComrelElementTypes.SinglePortMapping_4001);
+ }
+ if (targetEditPart instanceof SingleInputPort4EditPart) {
+ types.add(ComrelElementTypes.SinglePortMapping_4001);
+ }
+ if (targetEditPart instanceof comrel.diagram.edit.parts.SingleInputPort5EditPart) {
+ types.add(ComrelElementTypes.SinglePortMapping_4001);
+ }
+ if (targetEditPart instanceof SingleInputPort6EditPart) {
+ types.add(ComrelElementTypes.SinglePortMapping_4001);
+ }
+ if (targetEditPart instanceof SingleInputPort7EditPart) {
+ types.add(ComrelElementTypes.SinglePortMapping_4001);
+ }
+ if (targetEditPart instanceof SingleInputPort8EditPart) {
+ types.add(ComrelElementTypes.SinglePortMapping_4001);
+ }
+ if (targetEditPart instanceof SingleInputPort9EditPart) {
+ types.add(ComrelElementTypes.SinglePortMapping_4001);
+ }
+ return types;
+ }
+
+ /**
+ * @generated
+ */
+ public List<IElementType> getMATypesForTarget(IElementType relationshipType) {
+ LinkedList<IElementType> types = new LinkedList<IElementType>();
+ if (relationshipType == ComrelElementTypes.SinglePortMapping_4001) {
+ types.add(ComrelElementTypes.SingleInputPort_2001);
+ types.add(ComrelElementTypes.SingleInputPort_3001);
+ types.add(ComrelElementTypes.SingleInputPort_3005);
+ types.add(ComrelElementTypes.SingleInputPort_3009);
+ types.add(ComrelElementTypes.SingleInputPort_3013);
+ types.add(ComrelElementTypes.SingleInputPort_3023);
+ types.add(ComrelElementTypes.SingleInputPort_3027);
+ types.add(ComrelElementTypes.SingleInputPort_3031);
+ types.add(ComrelElementTypes.SingleInputPort_3035);
+ }
+ return types;
+ }
+
+ /**
+ * @generated
+ */
+ public List<IElementType> getMARelTypesOnTarget() {
+ ArrayList<IElementType> types = new ArrayList<IElementType>(2);
+ types.add(ComrelElementTypes.SinglePortMapping_4001);
+ types.add(ComrelElementTypes.MultiSinglePortMapping_4003);
+ return types;
+ }
+
+ /**
+ * @generated
+ */
+ public List<IElementType> getMATypesForSource(IElementType relationshipType) {
+ LinkedList<IElementType> types = new LinkedList<IElementType>();
+ if (relationshipType == ComrelElementTypes.SinglePortMapping_4001) {
+ types.add(ComrelElementTypes.SingleInputPort_2001);
+ types.add(ComrelElementTypes.SingleInputPort_3001);
+ types.add(ComrelElementTypes.SingleInputPort_3005);
+ types.add(ComrelElementTypes.SingleInputPort_3009);
+ types.add(ComrelElementTypes.SingleOutputPort_3011);
+ types.add(ComrelElementTypes.SingleInputPort_3013);
+ types.add(ComrelElementTypes.SingleOutputPort_3018);
+ types.add(ComrelElementTypes.SingleInputPort_3023);
+ types.add(ComrelElementTypes.SingleInputPort_3027);
+ types.add(ComrelElementTypes.SingleInputPort_3031);
+ types.add(ComrelElementTypes.SingleInputPort_3035);
+ } else if (relationshipType == ComrelElementTypes.MultiSinglePortMapping_4003) {
+ types.add(ComrelElementTypes.MultiInputPort_3002);
+ types.add(ComrelElementTypes.MultiInputPort_3006);
+ types.add(ComrelElementTypes.MultiInputPort_3010);
+ types.add(ComrelElementTypes.MultiInputPort_3014);
+ types.add(ComrelElementTypes.MultiOutputPort_3015);
+ types.add(ComrelElementTypes.MultiInputPort_3017);
+ types.add(ComrelElementTypes.MultiInputPort_3020);
+ types.add(ComrelElementTypes.MultiOutputPort_3021);
+ types.add(ComrelElementTypes.MultiInputPort_3024);
+ types.add(ComrelElementTypes.MultiInputPort_3028);
+ types.add(ComrelElementTypes.MultiInputPort_3032);
+ }
+ return types;
+ }
+
+ // /**
+ // * @generated
+ // */
+ // public class SingleInputPortFigure extends RectangleFigure {
+ //
+ // /**
+ // * @generated
+ // */
+ // public SingleInputPortFigure() {
+ // this.setPreferredSize(new Dimension(getMapMode().DPtoLP(20),
+ // getMapMode().DPtoLP(20)));
+ // this.setBorder(new MarginBorder(getMapMode().DPtoLP(5),
+ // getMapMode().DPtoLP(5), getMapMode().DPtoLP(5),
+ // getMapMode().DPtoLP(5)));
+ // }
+ //
+ // }
+
+ /**
+ * @generated NOT
+ */
+ public class SingleInputPortFigure extends InputPortFigure {
+
+ /**
+ * @generated
+ */
+ public SingleInputPortFigure() {
+ this.setPreferredSize(new Dimension(getMapMode().DPtoLP(20),
+ getMapMode().DPtoLP(20)));
+ this.setBorder(new MarginBorder(getMapMode().DPtoLP(5),
+ getMapMode().DPtoLP(5), getMapMode().DPtoLP(5),
+ getMapMode().DPtoLP(5)));
+ }
+
+ }
+
+}
diff --git a/org.eclipse.emf.refactor.comrel.diagram/src/comrel/diagram/edit/parts/SingleInputPort6EditPart.java b/org.eclipse.emf.refactor.comrel.diagram/src/comrel/diagram/edit/parts/SingleInputPort6EditPart.java
new file mode 100644
index 0000000..16ade48
--- /dev/null
+++ b/org.eclipse.emf.refactor.comrel.diagram/src/comrel/diagram/edit/parts/SingleInputPort6EditPart.java
@@ -0,0 +1,394 @@
+/*
+ *
+ */
+package comrel.diagram.edit.parts;
+
+import java.util.ArrayList;
+import java.util.Collections;
+import java.util.LinkedList;
+import java.util.List;
+
+import org.eclipse.draw2d.IFigure;
+import org.eclipse.draw2d.MarginBorder;
+import org.eclipse.draw2d.PositionConstants;
+import org.eclipse.draw2d.RectangleFigure;
+import org.eclipse.draw2d.Shape;
+import org.eclipse.draw2d.StackLayout;
+import org.eclipse.draw2d.geometry.Dimension;
+import org.eclipse.gef.EditPart;
+import org.eclipse.gef.EditPolicy;
+import org.eclipse.gef.GraphicalEditPart;
+import org.eclipse.gef.Request;
+import org.eclipse.gef.commands.Command;
+import org.eclipse.gef.editpolicies.LayoutEditPolicy;
+import org.eclipse.gef.editpolicies.NonResizableEditPolicy;
+import org.eclipse.gef.handles.MoveHandle;
+import org.eclipse.gef.requests.CreateRequest;
+import org.eclipse.gmf.runtime.diagram.ui.editparts.BorderedBorderItemEditPart;
+import org.eclipse.gmf.runtime.diagram.ui.editparts.IBorderItemEditPart;
+import org.eclipse.gmf.runtime.diagram.ui.editparts.IGraphicalEditPart;
+import org.eclipse.gmf.runtime.diagram.ui.editpolicies.BorderItemSelectionEditPolicy;
+import org.eclipse.gmf.runtime.diagram.ui.editpolicies.EditPolicyRoles;
+import org.eclipse.gmf.runtime.diagram.ui.figures.BorderItemLocator;
+import org.eclipse.gmf.runtime.draw2d.ui.figures.WrappingLabel;
+import org.eclipse.gmf.runtime.emf.type.core.IElementType;
+import org.eclipse.gmf.runtime.gef.ui.figures.DefaultSizeNodeFigure;
+import org.eclipse.gmf.runtime.gef.ui.figures.NodeFigure;
+import org.eclipse.gmf.runtime.notation.View;
+import org.eclipse.swt.graphics.Color;
+
+import comrel.InputPort;
+import comrel.diagram.edit.parts.SingleInputPortEditPart.SingleInputPortFigure;
+import comrel.diagram.edit.policies.SingleInputPort6ItemSemanticEditPolicy;
+import comrel.diagram.part.ComrelVisualIDRegistry;
+import comrel.diagram.providers.ComrelElementTypes;
+import comrel.figures.InputPortFigure;
+
+/**
+ * @generated
+ */
+public class SingleInputPort6EditPart extends BorderedBorderItemEditPart {
+
+ /**
+ * @generated
+ */
+ public static final int VISUAL_ID = 3023;
+
+ /**
+ * @generated
+ */
+ protected IFigure contentPane;
+
+ /**
+ * @generated
+ */
+ protected IFigure primaryShape;
+
+ /**
+ * @generated
+ */
+ public SingleInputPort6EditPart(View view) {
+ super(view);
+ }
+
+ /**
+ * @generated
+ */
+ protected void createDefaultEditPolicies() {
+ super.createDefaultEditPolicies();
+ installEditPolicy(EditPolicy.PRIMARY_DRAG_ROLE,
+ getPrimaryDragEditPolicy());
+ installEditPolicy(EditPolicyRoles.SEMANTIC_ROLE,
+ new SingleInputPort6ItemSemanticEditPolicy());
+ installEditPolicy(EditPolicy.LAYOUT_ROLE, createLayoutEditPolicy());
+ // XXX need an SCR to runtime to have another abstract superclass that would let children add reasonable editpolicies
+ // removeEditPolicy(org.eclipse.gmf.runtime.diagram.ui.editpolicies.EditPolicyRoles.CONNECTION_HANDLES_ROLE);
+ }
+
+ /**
+ * @generated
+ */
+ protected LayoutEditPolicy createLayoutEditPolicy() {
+ org.eclipse.gmf.runtime.diagram.ui.editpolicies.LayoutEditPolicy lep = new org.eclipse.gmf.runtime.diagram.ui.editpolicies.LayoutEditPolicy() {
+
+ protected EditPolicy createChildEditPolicy(EditPart child) {
+ View childView = (View) child.getModel();
+ switch (ComrelVisualIDRegistry.getVisualID(childView)) {
+ case SingleInputPortNameType6EditPart.VISUAL_ID:
+ return new BorderItemSelectionEditPolicy() {
+
+ protected List createSelectionHandles() {
+ MoveHandle mh = new MoveHandle(
+ (GraphicalEditPart) getHost());
+ mh.setBorder(null);
+ return Collections.singletonList(mh);
+ }
+ };
+ }
+ EditPolicy result = child
+ .getEditPolicy(EditPolicy.PRIMARY_DRAG_ROLE);
+ if (result == null) {
+ result = new NonResizableEditPolicy();
+ }
+ return result;
+ }
+
+ protected Command getMoveChildrenCommand(Request request) {
+ return null;
+ }
+
+ protected Command getCreateCommand(CreateRequest request) {
+ return null;
+ }
+ };
+ return lep;
+ }
+
+ /**
+ * @generated NOT
+ */
+ protected IFigure createNodeShape() {
+ SingleInputPortFigure figure = new SingleInputPortFigure();
+ InputPort port = (InputPort) this.resolveSemanticElement();
+ figure.setPort(port);
+ return primaryShape = figure;
+ }
+
+ /**
+ * @generated
+ */
+ public SingleInputPortFigure getPrimaryShape() {
+ return (SingleInputPortFigure) primaryShape;
+ }
+
+ /**
+ * @generated
+ */
+ protected void addBorderItem(IFigure borderItemContainer,
+ IBorderItemEditPart borderItemEditPart) {
+ if (borderItemEditPart instanceof SingleInputPortNameType6EditPart) {
+ BorderItemLocator locator = new BorderItemLocator(getMainFigure(),
+ PositionConstants.SOUTH);
+ locator.setBorderItemOffset(new Dimension(-20, -20));
+ borderItemContainer.add(borderItemEditPart.getFigure(), locator);
+ } else {
+ super.addBorderItem(borderItemContainer, borderItemEditPart);
+ }
+ }
+
+ /**
+ * @generated
+ */
+ protected NodeFigure createNodePlate() {
+ DefaultSizeNodeFigure result = new DefaultSizeNodeFigure(20, 20);
+
+ //FIXME: workaround for #154536
+ result.getBounds().setSize(result.getPreferredSize());
+ return result;
+ }
+
+ /**
+ * Creates figure for this edit part.
+ *
+ * Body of this method does not depend on settings in generation model
+ * so you may safely remove <i>generated</i> tag and modify it.
+ *
+ * @generated
+ */
+ protected NodeFigure createMainFigure() {
+ NodeFigure figure = createNodePlate();
+ figure.setLayoutManager(new StackLayout());
+ IFigure shape = createNodeShape();
+ figure.add(shape);
+ contentPane = setupContentPane(shape);
+ return figure;
+ }
+
+ /**
+ * Default implementation treats passed figure as content pane.
+ * Respects layout one may have set for generated figure.
+ * @param nodeShape instance of generated figure class
+ * @generated
+ */
+ protected IFigure setupContentPane(IFigure nodeShape) {
+ return nodeShape; // use nodeShape itself as contentPane
+ }
+
+ /**
+ * @generated
+ */
+ public IFigure getContentPane() {
+ if (contentPane != null) {
+ return contentPane;
+ }
+ return super.getContentPane();
+ }
+
+ /**
+ * @generated
+ */
+ protected void setForegroundColor(Color color) {
+ if (primaryShape != null) {
+ primaryShape.setForegroundColor(color);
+ }
+ }
+
+ /**
+ * @generated
+ */
+ protected void setBackgroundColor(Color color) {
+ if (primaryShape != null) {
+ primaryShape.setBackgroundColor(color);
+ }
+ }
+
+ /**
+ * @generated
+ */
+ protected void setLineWidth(int width) {
+ if (primaryShape instanceof Shape) {
+ ((Shape) primaryShape).setLineWidth(width);
+ }
+ }
+
+ /**
+ * @generated
+ */
+ protected void setLineType(int style) {
+ if (primaryShape instanceof Shape) {
+ ((Shape) primaryShape).setLineStyle(style);
+ }
+ }
+
+ /**
+ * @generated
+ */
+ public EditPart getPrimaryChildEditPart() {
+ return getChildBySemanticHint(ComrelVisualIDRegistry
+ .getType(SingleInputPortNameType6EditPart.VISUAL_ID));
+ }
+
+ /**
+ * @generated
+ */
+ public List<IElementType> getMARelTypesOnSource() {
+ ArrayList<IElementType> types = new ArrayList<IElementType>(1);
+ types.add(ComrelElementTypes.SinglePortMapping_4001);
+ return types;
+ }
+
+ /**
+ * @generated
+ */
+ public List<IElementType> getMARelTypesOnSourceAndTarget(
+ IGraphicalEditPart targetEditPart) {
+ LinkedList<IElementType> types = new LinkedList<IElementType>();
+ if (targetEditPart instanceof SingleInputPortEditPart) {
+ types.add(ComrelElementTypes.SinglePortMapping_4001);
+ }
+ if (targetEditPart instanceof SingleInputPort2EditPart) {
+ types.add(ComrelElementTypes.SinglePortMapping_4001);
+ }
+ if (targetEditPart instanceof SingleInputPort3EditPart) {
+ types.add(ComrelElementTypes.SinglePortMapping_4001);
+ }
+ if (targetEditPart instanceof SingleInputPort4EditPart) {
+ types.add(ComrelElementTypes.SinglePortMapping_4001);
+ }
+ if (targetEditPart instanceof SingleInputPort5EditPart) {
+ types.add(ComrelElementTypes.SinglePortMapping_4001);
+ }
+ if (targetEditPart instanceof comrel.diagram.edit.parts.SingleInputPort6EditPart) {
+ types.add(ComrelElementTypes.SinglePortMapping_4001);
+ }
+ if (targetEditPart instanceof SingleInputPort7EditPart) {
+ types.add(ComrelElementTypes.SinglePortMapping_4001);
+ }
+ if (targetEditPart instanceof SingleInputPort8EditPart) {
+ types.add(ComrelElementTypes.SinglePortMapping_4001);
+ }
+ if (targetEditPart instanceof SingleInputPort9EditPart) {
+ types.add(ComrelElementTypes.SinglePortMapping_4001);
+ }
+ return types;
+ }
+
+ /**
+ * @generated
+ */
+ public List<IElementType> getMATypesForTarget(IElementType relationshipType) {
+ LinkedList<IElementType> types = new LinkedList<IElementType>();
+ if (relationshipType == ComrelElementTypes.SinglePortMapping_4001) {
+ types.add(ComrelElementTypes.SingleInputPort_2001);
+ types.add(ComrelElementTypes.SingleInputPort_3001);
+ types.add(ComrelElementTypes.SingleInputPort_3005);
+ types.add(ComrelElementTypes.SingleInputPort_3009);
+ types.add(ComrelElementTypes.SingleInputPort_3013);
+ types.add(ComrelElementTypes.SingleInputPort_3023);
+ types.add(ComrelElementTypes.SingleInputPort_3027);
+ types.add(ComrelElementTypes.SingleInputPort_3031);
+ types.add(ComrelElementTypes.SingleInputPort_3035);
+ }
+ return types;
+ }
+
+ /**
+ * @generated
+ */
+ public List<IElementType> getMARelTypesOnTarget() {
+ ArrayList<IElementType> types = new ArrayList<IElementType>(2);
+ types.add(ComrelElementTypes.SinglePortMapping_4001);
+ types.add(ComrelElementTypes.MultiSinglePortMapping_4003);
+ return types;
+ }
+
+ /**
+ * @generated
+ */
+ public List<IElementType> getMATypesForSource(IElementType relationshipType) {
+ LinkedList<IElementType> types = new LinkedList<IElementType>();
+ if (relationshipType == ComrelElementTypes.SinglePortMapping_4001) {
+ types.add(ComrelElementTypes.SingleInputPort_2001);
+ types.add(ComrelElementTypes.SingleInputPort_3001);
+ types.add(ComrelElementTypes.SingleInputPort_3005);
+ types.add(ComrelElementTypes.SingleInputPort_3009);
+ types.add(ComrelElementTypes.SingleOutputPort_3011);
+ types.add(ComrelElementTypes.SingleInputPort_3013);
+ types.add(ComrelElementTypes.SingleOutputPort_3018);
+ types.add(ComrelElementTypes.SingleInputPort_3023);
+ types.add(ComrelElementTypes.SingleInputPort_3027);
+ types.add(ComrelElementTypes.SingleInputPort_3031);
+ types.add(ComrelElementTypes.SingleInputPort_3035);
+ } else if (relationshipType == ComrelElementTypes.MultiSinglePortMapping_4003) {
+ types.add(ComrelElementTypes.MultiInputPort_3002);
+ types.add(ComrelElementTypes.MultiInputPort_3006);
+ types.add(ComrelElementTypes.MultiInputPort_3010);
+ types.add(ComrelElementTypes.MultiInputPort_3014);
+ types.add(ComrelElementTypes.MultiOutputPort_3015);
+ types.add(ComrelElementTypes.MultiInputPort_3017);
+ types.add(ComrelElementTypes.MultiInputPort_3020);
+ types.add(ComrelElementTypes.MultiOutputPort_3021);
+ types.add(ComrelElementTypes.MultiInputPort_3024);
+ types.add(ComrelElementTypes.MultiInputPort_3028);
+ types.add(ComrelElementTypes.MultiInputPort_3032);
+ }
+ return types;
+ }
+
+ // /**
+ // * @generated
+ // */
+ // public class SingleInputPortFigure extends RectangleFigure {
+ //
+ // /**
+ // * @generated
+ // */
+ // public SingleInputPortFigure() {
+ // this.setPreferredSize(new Dimension(getMapMode().DPtoLP(20),
+ // getMapMode().DPtoLP(20)));
+ // this.setBorder(new MarginBorder(getMapMode().DPtoLP(5),
+ // getMapMode().DPtoLP(5), getMapMode().DPtoLP(5),
+ // getMapMode().DPtoLP(5)));
+ // }
+ //
+ // }
+
+ /**
+ * @generated NOT
+ */
+ public class SingleInputPortFigure extends InputPortFigure {
+
+ /**
+ * @generated
+ */
+ public SingleInputPortFigure() {
+ this.setPreferredSize(new Dimension(getMapMode().DPtoLP(20),
+ getMapMode().DPtoLP(20)));
+ this.setBorder(new MarginBorder(getMapMode().DPtoLP(5),
+ getMapMode().DPtoLP(5), getMapMode().DPtoLP(5),
+ getMapMode().DPtoLP(5)));
+ }
+
+ }
+
+}
diff --git a/org.eclipse.emf.refactor.comrel.diagram/src/comrel/diagram/edit/parts/SingleInputPort7EditPart.java b/org.eclipse.emf.refactor.comrel.diagram/src/comrel/diagram/edit/parts/SingleInputPort7EditPart.java
new file mode 100644
index 0000000..c45e59f
--- /dev/null
+++ b/org.eclipse.emf.refactor.comrel.diagram/src/comrel/diagram/edit/parts/SingleInputPort7EditPart.java
@@ -0,0 +1,394 @@
+/*
+ *
+ */
+package comrel.diagram.edit.parts;
+
+import java.util.ArrayList;
+import java.util.Collections;
+import java.util.LinkedList;
+import java.util.List;
+
+import org.eclipse.draw2d.IFigure;
+import org.eclipse.draw2d.MarginBorder;
+import org.eclipse.draw2d.PositionConstants;
+import org.eclipse.draw2d.RectangleFigure;
+import org.eclipse.draw2d.Shape;
+import org.eclipse.draw2d.StackLayout;
+import org.eclipse.draw2d.geometry.Dimension;
+import org.eclipse.gef.EditPart;
+import org.eclipse.gef.EditPolicy;
+import org.eclipse.gef.GraphicalEditPart;
+import org.eclipse.gef.Request;
+import org.eclipse.gef.commands.Command;
+import org.eclipse.gef.editpolicies.LayoutEditPolicy;
+import org.eclipse.gef.editpolicies.NonResizableEditPolicy;
+import org.eclipse.gef.handles.MoveHandle;
+import org.eclipse.gef.requests.CreateRequest;
+import org.eclipse.gmf.runtime.diagram.ui.editparts.BorderedBorderItemEditPart;
+import org.eclipse.gmf.runtime.diagram.ui.editparts.IBorderItemEditPart;
+import org.eclipse.gmf.runtime.diagram.ui.editparts.IGraphicalEditPart;
+import org.eclipse.gmf.runtime.diagram.ui.editpolicies.BorderItemSelectionEditPolicy;
+import org.eclipse.gmf.runtime.diagram.ui.editpolicies.EditPolicyRoles;
+import org.eclipse.gmf.runtime.diagram.ui.figures.BorderItemLocator;
+import org.eclipse.gmf.runtime.draw2d.ui.figures.WrappingLabel;
+import org.eclipse.gmf.runtime.emf.type.core.IElementType;
+import org.eclipse.gmf.runtime.gef.ui.figures.DefaultSizeNodeFigure;
+import org.eclipse.gmf.runtime.gef.ui.figures.NodeFigure;
+import org.eclipse.gmf.runtime.notation.View;
+import org.eclipse.swt.graphics.Color;
+
+import comrel.InputPort;
+import comrel.diagram.edit.parts.SingleInputPortEditPart.SingleInputPortFigure;
+import comrel.diagram.edit.policies.SingleInputPort7ItemSemanticEditPolicy;
+import comrel.diagram.part.ComrelVisualIDRegistry;
+import comrel.diagram.providers.ComrelElementTypes;
+import comrel.figures.InputPortFigure;
+
+/**
+ * @generated
+ */
+public class SingleInputPort7EditPart extends BorderedBorderItemEditPart {
+
+ /**
+ * @generated
+ */
+ public static final int VISUAL_ID = 3027;
+
+ /**
+ * @generated
+ */
+ protected IFigure contentPane;
+
+ /**
+ * @generated
+ */
+ protected IFigure primaryShape;
+
+ /**
+ * @generated
+ */
+ public SingleInputPort7EditPart(View view) {
+ super(view);
+ }
+
+ /**
+ * @generated
+ */
+ protected void createDefaultEditPolicies() {
+ super.createDefaultEditPolicies();
+ installEditPolicy(EditPolicy.PRIMARY_DRAG_ROLE,
+ getPrimaryDragEditPolicy());
+ installEditPolicy(EditPolicyRoles.SEMANTIC_ROLE,
+ new SingleInputPort7ItemSemanticEditPolicy());
+ installEditPolicy(EditPolicy.LAYOUT_ROLE, createLayoutEditPolicy());
+ // XXX need an SCR to runtime to have another abstract superclass that would let children add reasonable editpolicies
+ // removeEditPolicy(org.eclipse.gmf.runtime.diagram.ui.editpolicies.EditPolicyRoles.CONNECTION_HANDLES_ROLE);
+ }
+
+ /**
+ * @generated
+ */
+ protected LayoutEditPolicy createLayoutEditPolicy() {
+ org.eclipse.gmf.runtime.diagram.ui.editpolicies.LayoutEditPolicy lep = new org.eclipse.gmf.runtime.diagram.ui.editpolicies.LayoutEditPolicy() {
+
+ protected EditPolicy createChildEditPolicy(EditPart child) {
+ View childView = (View) child.getModel();
+ switch (ComrelVisualIDRegistry.getVisualID(childView)) {
+ case SingleInputPortNameType7EditPart.VISUAL_ID:
+ return new BorderItemSelectionEditPolicy() {
+
+ protected List createSelectionHandles() {
+ MoveHandle mh = new MoveHandle(
+ (GraphicalEditPart) getHost());
+ mh.setBorder(null);
+ return Collections.singletonList(mh);
+ }
+ };
+ }
+ EditPolicy result = child
+ .getEditPolicy(EditPolicy.PRIMARY_DRAG_ROLE);
+ if (result == null) {
+ result = new NonResizableEditPolicy();
+ }
+ return result;
+ }
+
+ protected Command getMoveChildrenCommand(Request request) {
+ return null;
+ }
+
+ protected Command getCreateCommand(CreateRequest request) {
+ return null;
+ }
+ };
+ return lep;
+ }
+
+ /**
+ * @generated NOT
+ */
+ protected IFigure createNodeShape() {
+ SingleInputPortFigure figure = new SingleInputPortFigure();
+ InputPort port = (InputPort) this.resolveSemanticElement();
+ figure.setPort(port);
+ return primaryShape = figure;
+ }
+
+ /**
+ * @generated
+ */
+ public SingleInputPortFigure getPrimaryShape() {
+ return (SingleInputPortFigure) primaryShape;
+ }
+
+ /**
+ * @generated
+ */
+ protected void addBorderItem(IFigure borderItemContainer,
+ IBorderItemEditPart borderItemEditPart) {
+ if (borderItemEditPart instanceof SingleInputPortNameType7EditPart) {
+ BorderItemLocator locator = new BorderItemLocator(getMainFigure(),
+ PositionConstants.SOUTH);
+ locator.setBorderItemOffset(new Dimension(-20, -20));
+ borderItemContainer.add(borderItemEditPart.getFigure(), locator);
+ } else {
+ super.addBorderItem(borderItemContainer, borderItemEditPart);
+ }
+ }
+
+ /**
+ * @generated
+ */
+ protected NodeFigure createNodePlate() {
+ DefaultSizeNodeFigure result = new DefaultSizeNodeFigure(20, 20);
+
+ //FIXME: workaround for #154536
+ result.getBounds().setSize(result.getPreferredSize());
+ return result;
+ }
+
+ /**
+ * Creates figure for this edit part.
+ *
+ * Body of this method does not depend on settings in generation model
+ * so you may safely remove <i>generated</i> tag and modify it.
+ *
+ * @generated
+ */
+ protected NodeFigure createMainFigure() {
+ NodeFigure figure = createNodePlate();
+ figure.setLayoutManager(new StackLayout());
+ IFigure shape = createNodeShape();
+ figure.add(shape);
+ contentPane = setupContentPane(shape);
+ return figure;
+ }
+
+ /**
+ * Default implementation treats passed figure as content pane.
+ * Respects layout one may have set for generated figure.
+ * @param nodeShape instance of generated figure class
+ * @generated
+ */
+ protected IFigure setupContentPane(IFigure nodeShape) {
+ return nodeShape; // use nodeShape itself as contentPane
+ }
+
+ /**
+ * @generated
+ */
+ public IFigure getContentPane() {
+ if (contentPane != null) {
+ return contentPane;
+ }
+ return super.getContentPane();
+ }
+
+ /**
+ * @generated
+ */
+ protected void setForegroundColor(Color color) {
+ if (primaryShape != null) {
+ primaryShape.setForegroundColor(color);
+ }
+ }
+
+ /**
+ * @generated
+ */
+ protected void setBackgroundColor(Color color) {
+ if (primaryShape != null) {
+ primaryShape.setBackgroundColor(color);
+ }
+ }
+
+ /**
+ * @generated
+ */
+ protected void setLineWidth(int width) {
+ if (primaryShape instanceof Shape) {
+ ((Shape) primaryShape).setLineWidth(width);
+ }
+ }
+
+ /**
+ * @generated
+ */
+ protected void setLineType(int style) {
+ if (primaryShape instanceof Shape) {
+ ((Shape) primaryShape).setLineStyle(style);
+ }
+ }
+
+ /**
+ * @generated
+ */
+ public EditPart getPrimaryChildEditPart() {
+ return getChildBySemanticHint(ComrelVisualIDRegistry
+ .getType(SingleInputPortNameType7EditPart.VISUAL_ID));
+ }
+
+ /**
+ * @generated
+ */
+ public List<IElementType> getMARelTypesOnSource() {
+ ArrayList<IElementType> types = new ArrayList<IElementType>(1);
+ types.add(ComrelElementTypes.SinglePortMapping_4001);
+ return types;
+ }
+
+ /**
+ * @generated
+ */
+ public List<IElementType> getMARelTypesOnSourceAndTarget(
+ IGraphicalEditPart targetEditPart) {
+ LinkedList<IElementType> types = new LinkedList<IElementType>();
+ if (targetEditPart instanceof SingleInputPortEditPart) {
+ types.add(ComrelElementTypes.SinglePortMapping_4001);
+ }
+ if (targetEditPart instanceof SingleInputPort2EditPart) {
+ types.add(ComrelElementTypes.SinglePortMapping_4001);
+ }
+ if (targetEditPart instanceof SingleInputPort3EditPart) {
+ types.add(ComrelElementTypes.SinglePortMapping_4001);
+ }
+ if (targetEditPart instanceof SingleInputPort4EditPart) {
+ types.add(ComrelElementTypes.SinglePortMapping_4001);
+ }
+ if (targetEditPart instanceof SingleInputPort5EditPart) {
+ types.add(ComrelElementTypes.SinglePortMapping_4001);
+ }
+ if (targetEditPart instanceof SingleInputPort6EditPart) {
+ types.add(ComrelElementTypes.SinglePortMapping_4001);
+ }
+ if (targetEditPart instanceof comrel.diagram.edit.parts.SingleInputPort7EditPart) {
+ types.add(ComrelElementTypes.SinglePortMapping_4001);
+ }
+ if (targetEditPart instanceof SingleInputPort8EditPart) {
+ types.add(ComrelElementTypes.SinglePortMapping_4001);
+ }
+ if (targetEditPart instanceof SingleInputPort9EditPart) {
+ types.add(ComrelElementTypes.SinglePortMapping_4001);
+ }
+ return types;
+ }
+
+ /**
+ * @generated
+ */
+ public List<IElementType> getMATypesForTarget(IElementType relationshipType) {
+ LinkedList<IElementType> types = new LinkedList<IElementType>();
+ if (relationshipType == ComrelElementTypes.SinglePortMapping_4001) {
+ types.add(ComrelElementTypes.SingleInputPort_2001);
+ types.add(ComrelElementTypes.SingleInputPort_3001);
+ types.add(ComrelElementTypes.SingleInputPort_3005);
+ types.add(ComrelElementTypes.SingleInputPort_3009);
+ types.add(ComrelElementTypes.SingleInputPort_3013);
+ types.add(ComrelElementTypes.SingleInputPort_3023);
+ types.add(ComrelElementTypes.SingleInputPort_3027);
+ types.add(ComrelElementTypes.SingleInputPort_3031);
+ types.add(ComrelElementTypes.SingleInputPort_3035);
+ }
+ return types;
+ }
+
+ /**
+ * @generated
+ */
+ public List<IElementType> getMARelTypesOnTarget() {
+ ArrayList<IElementType> types = new ArrayList<IElementType>(2);
+ types.add(ComrelElementTypes.SinglePortMapping_4001);
+ types.add(ComrelElementTypes.MultiSinglePortMapping_4003);
+ return types;
+ }
+
+ /**
+ * @generated
+ */
+ public List<IElementType> getMATypesForSource(IElementType relationshipType) {
+ LinkedList<IElementType> types = new LinkedList<IElementType>();
+ if (relationshipType == ComrelElementTypes.SinglePortMapping_4001) {
+ types.add(ComrelElementTypes.SingleInputPort_2001);
+ types.add(ComrelElementTypes.SingleInputPort_3001);
+ types.add(ComrelElementTypes.SingleInputPort_3005);
+ types.add(ComrelElementTypes.SingleInputPort_3009);
+ types.add(ComrelElementTypes.SingleOutputPort_3011);
+ types.add(ComrelElementTypes.SingleInputPort_3013);
+ types.add(ComrelElementTypes.SingleOutputPort_3018);
+ types.add(ComrelElementTypes.SingleInputPort_3023);
+ types.add(ComrelElementTypes.SingleInputPort_3027);
+ types.add(ComrelElementTypes.SingleInputPort_3031);
+ types.add(ComrelElementTypes.SingleInputPort_3035);
+ } else if (relationshipType == ComrelElementTypes.MultiSinglePortMapping_4003) {
+ types.add(ComrelElementTypes.MultiInputPort_3002);
+ types.add(ComrelElementTypes.MultiInputPort_3006);
+ types.add(ComrelElementTypes.MultiInputPort_3010);
+ types.add(ComrelElementTypes.MultiInputPort_3014);
+ types.add(ComrelElementTypes.MultiOutputPort_3015);
+ types.add(ComrelElementTypes.MultiInputPort_3017);
+ types.add(ComrelElementTypes.MultiInputPort_3020);
+ types.add(ComrelElementTypes.MultiOutputPort_3021);
+ types.add(ComrelElementTypes.MultiInputPort_3024);
+ types.add(ComrelElementTypes.MultiInputPort_3028);
+ types.add(ComrelElementTypes.MultiInputPort_3032);
+ }
+ return types;
+ }
+
+ // /**
+ // * @generated
+ // */
+ // public class SingleInputPortFigure extends RectangleFigure {
+ //
+ // /**
+ // * @generated
+ // */
+ // public SingleInputPortFigure() {
+ // this.setPreferredSize(new Dimension(getMapMode().DPtoLP(20),
+ // getMapMode().DPtoLP(20)));
+ // this.setBorder(new MarginBorder(getMapMode().DPtoLP(5),
+ // getMapMode().DPtoLP(5), getMapMode().DPtoLP(5),
+ // getMapMode().DPtoLP(5)));
+ // }
+ //
+ // }
+
+ /**
+ * @generated NOT
+ */
+ public class SingleInputPortFigure extends InputPortFigure {
+
+ /**
+ * @generated
+ */
+ public SingleInputPortFigure() {
+ this.setPreferredSize(new Dimension(getMapMode().DPtoLP(20),
+ getMapMode().DPtoLP(20)));
+ this.setBorder(new MarginBorder(getMapMode().DPtoLP(5),
+ getMapMode().DPtoLP(5), getMapMode().DPtoLP(5),
+ getMapMode().DPtoLP(5)));
+ }
+
+ }
+
+}
diff --git a/org.eclipse.emf.refactor.comrel.diagram/src/comrel/diagram/edit/parts/SingleInputPort8EditPart.java b/org.eclipse.emf.refactor.comrel.diagram/src/comrel/diagram/edit/parts/SingleInputPort8EditPart.java
new file mode 100644
index 0000000..be653a5
--- /dev/null
+++ b/org.eclipse.emf.refactor.comrel.diagram/src/comrel/diagram/edit/parts/SingleInputPort8EditPart.java
@@ -0,0 +1,394 @@
+/*
+ *
+ */
+package comrel.diagram.edit.parts;
+
+import java.util.ArrayList;
+import java.util.Collections;
+import java.util.LinkedList;
+import java.util.List;
+
+import org.eclipse.draw2d.IFigure;
+import org.eclipse.draw2d.MarginBorder;
+import org.eclipse.draw2d.PositionConstants;
+import org.eclipse.draw2d.RectangleFigure;
+import org.eclipse.draw2d.Shape;
+import org.eclipse.draw2d.StackLayout;
+import org.eclipse.draw2d.geometry.Dimension;
+import org.eclipse.gef.EditPart;
+import org.eclipse.gef.EditPolicy;
+import org.eclipse.gef.GraphicalEditPart;
+import org.eclipse.gef.Request;
+import org.eclipse.gef.commands.Command;
+import org.eclipse.gef.editpolicies.LayoutEditPolicy;
+import org.eclipse.gef.editpolicies.NonResizableEditPolicy;
+import org.eclipse.gef.handles.MoveHandle;
+import org.eclipse.gef.requests.CreateRequest;
+import org.eclipse.gmf.runtime.diagram.ui.editparts.BorderedBorderItemEditPart;
+import org.eclipse.gmf.runtime.diagram.ui.editparts.IBorderItemEditPart;
+import org.eclipse.gmf.runtime.diagram.ui.editparts.IGraphicalEditPart;
+import org.eclipse.gmf.runtime.diagram.ui.editpolicies.BorderItemSelectionEditPolicy;
+import org.eclipse.gmf.runtime.diagram.ui.editpolicies.EditPolicyRoles;
+import org.eclipse.gmf.runtime.diagram.ui.figures.BorderItemLocator;
+import org.eclipse.gmf.runtime.draw2d.ui.figures.WrappingLabel;
+import org.eclipse.gmf.runtime.emf.type.core.IElementType;
+import org.eclipse.gmf.runtime.gef.ui.figures.DefaultSizeNodeFigure;
+import org.eclipse.gmf.runtime.gef.ui.figures.NodeFigure;
+import org.eclipse.gmf.runtime.notation.View;
+import org.eclipse.swt.graphics.Color;
+
+import comrel.InputPort;
+import comrel.diagram.edit.parts.SingleInputPortEditPart.SingleInputPortFigure;
+import comrel.diagram.edit.policies.SingleInputPort8ItemSemanticEditPolicy;
+import comrel.diagram.part.ComrelVisualIDRegistry;
+import comrel.diagram.providers.ComrelElementTypes;
+import comrel.figures.InputPortFigure;
+
+/**
+ * @generated
+ */
+public class SingleInputPort8EditPart extends BorderedBorderItemEditPart {
+
+ /**
+ * @generated
+ */
+ public static final int VISUAL_ID = 3031;
+
+ /**
+ * @generated
+ */
+ protected IFigure contentPane;
+
+ /**
+ * @generated
+ */
+ protected IFigure primaryShape;
+
+ /**
+ * @generated
+ */
+ public SingleInputPort8EditPart(View view) {
+ super(view);
+ }
+
+ /**
+ * @generated
+ */
+ protected void createDefaultEditPolicies() {
+ super.createDefaultEditPolicies();
+ installEditPolicy(EditPolicy.PRIMARY_DRAG_ROLE,
+ getPrimaryDragEditPolicy());
+ installEditPolicy(EditPolicyRoles.SEMANTIC_ROLE,
+ new SingleInputPort8ItemSemanticEditPolicy());
+ installEditPolicy(EditPolicy.LAYOUT_ROLE, createLayoutEditPolicy());
+ // XXX need an SCR to runtime to have another abstract superclass that would let children add reasonable editpolicies
+ // removeEditPolicy(org.eclipse.gmf.runtime.diagram.ui.editpolicies.EditPolicyRoles.CONNECTION_HANDLES_ROLE);
+ }
+
+ /**
+ * @generated
+ */
+ protected LayoutEditPolicy createLayoutEditPolicy() {
+ org.eclipse.gmf.runtime.diagram.ui.editpolicies.LayoutEditPolicy lep = new org.eclipse.gmf.runtime.diagram.ui.editpolicies.LayoutEditPolicy() {
+
+ protected EditPolicy createChildEditPolicy(EditPart child) {
+ View childView = (View) child.getModel();
+ switch (ComrelVisualIDRegistry.getVisualID(childView)) {
+ case SingleInputPortNameType8EditPart.VISUAL_ID:
+ return new BorderItemSelectionEditPolicy() {
+
+ protected List createSelectionHandles() {
+ MoveHandle mh = new MoveHandle(
+ (GraphicalEditPart) getHost());
+ mh.setBorder(null);
+ return Collections.singletonList(mh);
+ }
+ };
+ }
+ EditPolicy result = child
+ .getEditPolicy(EditPolicy.PRIMARY_DRAG_ROLE);
+ if (result == null) {
+ result = new NonResizableEditPolicy();
+ }
+ return result;
+ }
+
+ protected Command getMoveChildrenCommand(Request request) {
+ return null;
+ }
+
+ protected Command getCreateCommand(CreateRequest request) {
+ return null;
+ }
+ };
+ return lep;
+ }
+
+ /**
+ * @generated NOT
+ */
+ protected IFigure createNodeShape() {
+ SingleInputPortFigure figure = new SingleInputPortFigure();
+ InputPort port = (InputPort) this.resolveSemanticElement();
+ figure.setPort(port);
+ return primaryShape = figure;
+ }
+
+ /**
+ * @generated
+ */
+ public SingleInputPortFigure getPrimaryShape() {
+ return (SingleInputPortFigure) primaryShape;
+ }
+
+ /**
+ * @generated
+ */
+ protected void addBorderItem(IFigure borderItemContainer,
+ IBorderItemEditPart borderItemEditPart) {
+ if (borderItemEditPart instanceof SingleInputPortNameType8EditPart) {
+ BorderItemLocator locator = new BorderItemLocator(getMainFigure(),
+ PositionConstants.SOUTH);
+ locator.setBorderItemOffset(new Dimension(-20, -20));
+ borderItemContainer.add(borderItemEditPart.getFigure(), locator);
+ } else {
+ super.addBorderItem(borderItemContainer, borderItemEditPart);
+ }
+ }
+
+ /**
+ * @generated
+ */
+ protected NodeFigure createNodePlate() {
+ DefaultSizeNodeFigure result = new DefaultSizeNodeFigure(20, 20);
+
+ //FIXME: workaround for #154536
+ result.getBounds().setSize(result.getPreferredSize());
+ return result;
+ }
+
+ /**
+ * Creates figure for this edit part.
+ *
+ * Body of this method does not depend on settings in generation model
+ * so you may safely remove <i>generated</i> tag and modify it.
+ *
+ * @generated
+ */
+ protected NodeFigure createMainFigure() {
+ NodeFigure figure = createNodePlate();
+ figure.setLayoutManager(new StackLayout());
+ IFigure shape = createNodeShape();
+ figure.add(shape);
+ contentPane = setupContentPane(shape);
+ return figure;
+ }
+
+ /**
+ * Default implementation treats passed figure as content pane.
+ * Respects layout one may have set for generated figure.
+ * @param nodeShape instance of generated figure class
+ * @generated
+ */
+ protected IFigure setupContentPane(IFigure nodeShape) {
+ return nodeShape; // use nodeShape itself as contentPane
+ }
+
+ /**
+ * @generated
+ */
+ public IFigure getContentPane() {
+ if (contentPane != null) {
+ return contentPane;
+ }
+ return super.getContentPane();
+ }
+
+ /**
+ * @generated
+ */
+ protected void setForegroundColor(Color color) {
+ if (primaryShape != null) {
+ primaryShape.setForegroundColor(color);
+ }
+ }
+
+ /**
+ * @generated
+ */
+ protected void setBackgroundColor(Color color) {
+ if (primaryShape != null) {
+ primaryShape.setBackgroundColor(color);
+ }
+ }
+
+ /**
+ * @generated
+ */
+ protected void setLineWidth(int width) {
+ if (primaryShape instanceof Shape) {
+ ((Shape) primaryShape).setLineWidth(width);
+ }
+ }
+
+ /**
+ * @generated
+ */
+ protected void setLineType(int style) {
+ if (primaryShape instanceof Shape) {
+ ((Shape) primaryShape).setLineStyle(style);
+ }
+ }
+
+ /**
+ * @generated
+ */
+ public EditPart getPrimaryChildEditPart() {
+ return getChildBySemanticHint(ComrelVisualIDRegistry
+ .getType(SingleInputPortNameType8EditPart.VISUAL_ID));
+ }
+
+ /**
+ * @generated
+ */
+ public List<IElementType> getMARelTypesOnSource() {
+ ArrayList<IElementType> types = new ArrayList<IElementType>(1);
+ types.add(ComrelElementTypes.SinglePortMapping_4001);
+ return types;
+ }
+
+ /**
+ * @generated
+ */
+ public List<IElementType> getMARelTypesOnSourceAndTarget(
+ IGraphicalEditPart targetEditPart) {
+ LinkedList<IElementType> types = new LinkedList<IElementType>();
+ if (targetEditPart instanceof SingleInputPortEditPart) {
+ types.add(ComrelElementTypes.SinglePortMapping_4001);
+ }
+ if (targetEditPart instanceof SingleInputPort2EditPart) {
+ types.add(ComrelElementTypes.SinglePortMapping_4001);
+ }
+ if (targetEditPart instanceof SingleInputPort3EditPart) {
+ types.add(ComrelElementTypes.SinglePortMapping_4001);
+ }
+ if (targetEditPart instanceof SingleInputPort4EditPart) {
+ types.add(ComrelElementTypes.SinglePortMapping_4001);
+ }
+ if (targetEditPart instanceof SingleInputPort5EditPart) {
+ types.add(ComrelElementTypes.SinglePortMapping_4001);
+ }
+ if (targetEditPart instanceof SingleInputPort6EditPart) {
+ types.add(ComrelElementTypes.SinglePortMapping_4001);
+ }
+ if (targetEditPart instanceof SingleInputPort7EditPart) {
+ types.add(ComrelElementTypes.SinglePortMapping_4001);
+ }
+ if (targetEditPart instanceof comrel.diagram.edit.parts.SingleInputPort8EditPart) {
+ types.add(ComrelElementTypes.SinglePortMapping_4001);
+ }
+ if (targetEditPart instanceof SingleInputPort9EditPart) {
+ types.add(ComrelElementTypes.SinglePortMapping_4001);
+ }
+ return types;
+ }
+
+ /**
+ * @generated
+ */
+ public List<IElementType> getMATypesForTarget(IElementType relationshipType) {
+ LinkedList<IElementType> types = new LinkedList<IElementType>();
+ if (relationshipType == ComrelElementTypes.SinglePortMapping_4001) {
+ types.add(ComrelElementTypes.SingleInputPort_2001);
+ types.add(ComrelElementTypes.SingleInputPort_3001);
+ types.add(ComrelElementTypes.SingleInputPort_3005);
+ types.add(ComrelElementTypes.SingleInputPort_3009);
+ types.add(ComrelElementTypes.SingleInputPort_3013);
+ types.add(ComrelElementTypes.SingleInputPort_3023);
+ types.add(ComrelElementTypes.SingleInputPort_3027);
+ types.add(ComrelElementTypes.SingleInputPort_3031);
+ types.add(ComrelElementTypes.SingleInputPort_3035);
+ }
+ return types;
+ }
+
+ /**
+ * @generated
+ */
+ public List<IElementType> getMARelTypesOnTarget() {
+ ArrayList<IElementType> types = new ArrayList<IElementType>(2);
+ types.add(ComrelElementTypes.SinglePortMapping_4001);
+ types.add(ComrelElementTypes.MultiSinglePortMapping_4003);
+ return types;
+ }
+
+ /**
+ * @generated
+ */
+ public List<IElementType> getMATypesForSource(IElementType relationshipType) {
+ LinkedList<IElementType> types = new LinkedList<IElementType>();
+ if (relationshipType == ComrelElementTypes.SinglePortMapping_4001) {
+ types.add(ComrelElementTypes.SingleInputPort_2001);
+ types.add(ComrelElementTypes.SingleInputPort_3001);
+ types.add(ComrelElementTypes.SingleInputPort_3005);
+ types.add(ComrelElementTypes.SingleInputPort_3009);
+ types.add(ComrelElementTypes.SingleOutputPort_3011);
+ types.add(ComrelElementTypes.SingleInputPort_3013);
+ types.add(ComrelElementTypes.SingleOutputPort_3018);
+ types.add(ComrelElementTypes.SingleInputPort_3023);
+ types.add(ComrelElementTypes.SingleInputPort_3027);
+ types.add(ComrelElementTypes.SingleInputPort_3031);
+ types.add(ComrelElementTypes.SingleInputPort_3035);
+ } else if (relationshipType == ComrelElementTypes.MultiSinglePortMapping_4003) {
+ types.add(ComrelElementTypes.MultiInputPort_3002);
+ types.add(ComrelElementTypes.MultiInputPort_3006);
+ types.add(ComrelElementTypes.MultiInputPort_3010);
+ types.add(ComrelElementTypes.MultiInputPort_3014);
+ types.add(ComrelElementTypes.MultiOutputPort_3015);
+ types.add(ComrelElementTypes.MultiInputPort_3017);
+ types.add(ComrelElementTypes.MultiInputPort_3020);
+ types.add(ComrelElementTypes.MultiOutputPort_3021);
+ types.add(ComrelElementTypes.MultiInputPort_3024);
+ types.add(ComrelElementTypes.MultiInputPort_3028);
+ types.add(ComrelElementTypes.MultiInputPort_3032);
+ }
+ return types;
+ }
+
+ // /**
+ // * @generated
+ // */
+ // public class SingleInputPortFigure extends RectangleFigure {
+ //
+ // /**
+ // * @generated
+ // */
+ // public SingleInputPortFigure() {
+ // this.setPreferredSize(new Dimension(getMapMode().DPtoLP(20),
+ // getMapMode().DPtoLP(20)));
+ // this.setBorder(new MarginBorder(getMapMode().DPtoLP(5),
+ // getMapMode().DPtoLP(5), getMapMode().DPtoLP(5),
+ // getMapMode().DPtoLP(5)));
+ // }
+ //
+ // }
+
+ /**
+ * @generated NOT
+ */
+ public class SingleInputPortFigure extends InputPortFigure {
+
+ /**
+ * @generated
+ */
+ public SingleInputPortFigure() {
+ this.setPreferredSize(new Dimension(getMapMode().DPtoLP(20),
+ getMapMode().DPtoLP(20)));
+ this.setBorder(new MarginBorder(getMapMode().DPtoLP(5),
+ getMapMode().DPtoLP(5), getMapMode().DPtoLP(5),
+ getMapMode().DPtoLP(5)));
+ }
+
+ }
+
+}
diff --git a/org.eclipse.emf.refactor.comrel.diagram/src/comrel/diagram/edit/parts/SingleInputPort9EditPart.java b/org.eclipse.emf.refactor.comrel.diagram/src/comrel/diagram/edit/parts/SingleInputPort9EditPart.java
new file mode 100644
index 0000000..68878e5
--- /dev/null
+++ b/org.eclipse.emf.refactor.comrel.diagram/src/comrel/diagram/edit/parts/SingleInputPort9EditPart.java
@@ -0,0 +1,394 @@
+/*
+ *
+ */
+package comrel.diagram.edit.parts;
+
+import java.util.ArrayList;
+import java.util.Collections;
+import java.util.LinkedList;
+import java.util.List;
+
+import org.eclipse.draw2d.IFigure;
+import org.eclipse.draw2d.MarginBorder;
+import org.eclipse.draw2d.PositionConstants;
+import org.eclipse.draw2d.RectangleFigure;
+import org.eclipse.draw2d.Shape;
+import org.eclipse.draw2d.StackLayout;
+import org.eclipse.draw2d.geometry.Dimension;
+import org.eclipse.gef.EditPart;
+import org.eclipse.gef.EditPolicy;
+import org.eclipse.gef.GraphicalEditPart;
+import org.eclipse.gef.Request;
+import org.eclipse.gef.commands.Command;
+import org.eclipse.gef.editpolicies.LayoutEditPolicy;
+import org.eclipse.gef.editpolicies.NonResizableEditPolicy;
+import org.eclipse.gef.handles.MoveHandle;
+import org.eclipse.gef.requests.CreateRequest;
+import org.eclipse.gmf.runtime.diagram.ui.editparts.BorderedBorderItemEditPart;
+import org.eclipse.gmf.runtime.diagram.ui.editparts.IBorderItemEditPart;
+import org.eclipse.gmf.runtime.diagram.ui.editparts.IGraphicalEditPart;
+import org.eclipse.gmf.runtime.diagram.ui.editpolicies.BorderItemSelectionEditPolicy;
+import org.eclipse.gmf.runtime.diagram.ui.editpolicies.EditPolicyRoles;
+import org.eclipse.gmf.runtime.diagram.ui.figures.BorderItemLocator;
+import org.eclipse.gmf.runtime.draw2d.ui.figures.WrappingLabel;
+import org.eclipse.gmf.runtime.emf.type.core.IElementType;
+import org.eclipse.gmf.runtime.gef.ui.figures.DefaultSizeNodeFigure;
+import org.eclipse.gmf.runtime.gef.ui.figures.NodeFigure;
+import org.eclipse.gmf.runtime.notation.View;
+import org.eclipse.swt.graphics.Color;
+
+import comrel.InputPort;
+import comrel.diagram.edit.parts.SingleInputPortEditPart.SingleInputPortFigure;
+import comrel.diagram.edit.policies.SingleInputPort9ItemSemanticEditPolicy;
+import comrel.diagram.part.ComrelVisualIDRegistry;
+import comrel.diagram.providers.ComrelElementTypes;
+import comrel.figures.InputPortFigure;
+
+/**
+ * @generated
+ */
+public class SingleInputPort9EditPart extends BorderedBorderItemEditPart {
+
+ /**
+ * @generated
+ */
+ public static final int VISUAL_ID = 3035;
+
+ /**
+ * @generated
+ */
+ protected IFigure contentPane;
+
+ /**
+ * @generated
+ */
+ protected IFigure primaryShape;
+
+ /**
+ * @generated
+ */
+ public SingleInputPort9EditPart(View view) {
+ super(view);
+ }
+
+ /**
+ * @generated
+ */
+ protected void createDefaultEditPolicies() {
+ super.createDefaultEditPolicies();
+ installEditPolicy(EditPolicy.PRIMARY_DRAG_ROLE,
+ getPrimaryDragEditPolicy());
+ installEditPolicy(EditPolicyRoles.SEMANTIC_ROLE,
+ new SingleInputPort9ItemSemanticEditPolicy());
+ installEditPolicy(EditPolicy.LAYOUT_ROLE, createLayoutEditPolicy());
+ // XXX need an SCR to runtime to have another abstract superclass that would let children add reasonable editpolicies
+ // removeEditPolicy(org.eclipse.gmf.runtime.diagram.ui.editpolicies.EditPolicyRoles.CONNECTION_HANDLES_ROLE);
+ }
+
+ /**
+ * @generated
+ */
+ protected LayoutEditPolicy createLayoutEditPolicy() {
+ org.eclipse.gmf.runtime.diagram.ui.editpolicies.LayoutEditPolicy lep = new org.eclipse.gmf.runtime.diagram.ui.editpolicies.LayoutEditPolicy() {
+
+ protected EditPolicy createChildEditPolicy(EditPart child) {
+ View childView = (View) child.getModel();
+ switch (ComrelVisualIDRegistry.getVisualID(childView)) {
+ case SingleInputPortNameType9EditPart.VISUAL_ID:
+ return new BorderItemSelectionEditPolicy() {
+
+ protected List createSelectionHandles() {
+ MoveHandle mh = new MoveHandle(
+ (GraphicalEditPart) getHost());
+ mh.setBorder(null);
+ return Collections.singletonList(mh);
+ }
+ };
+ }
+ EditPolicy result = child
+ .getEditPolicy(EditPolicy.PRIMARY_DRAG_ROLE);
+ if (result == null) {
+ result = new NonResizableEditPolicy();
+ }
+ return result;
+ }
+
+ protected Command getMoveChildrenCommand(Request request) {
+ return null;
+ }
+
+ protected Command getCreateCommand(CreateRequest request) {
+ return null;
+ }
+ };
+ return lep;
+ }
+
+ /**
+ * @generated NOT
+ */
+ protected IFigure createNodeShape() {
+ SingleInputPortFigure figure = new SingleInputPortFigure();
+ InputPort port = (InputPort) this.resolveSemanticElement();
+ figure.setPort(port);
+ return primaryShape = figure;
+ }
+
+ /**
+ * @generated
+ */
+ public SingleInputPortFigure getPrimaryShape() {
+ return (SingleInputPortFigure) primaryShape;
+ }
+
+ /**
+ * @generated
+ */
+ protected void addBorderItem(IFigure borderItemContainer,
+ IBorderItemEditPart borderItemEditPart) {
+ if (borderItemEditPart instanceof SingleInputPortNameType9EditPart) {
+ BorderItemLocator locator = new BorderItemLocator(getMainFigure(),
+ PositionConstants.SOUTH);
+ locator.setBorderItemOffset(new Dimension(-20, -20));
+ borderItemContainer.add(borderItemEditPart.getFigure(), locator);
+ } else {
+ super.addBorderItem(borderItemContainer, borderItemEditPart);
+ }
+ }
+
+ /**
+ * @generated
+ */
+ protected NodeFigure createNodePlate() {
+ DefaultSizeNodeFigure result = new DefaultSizeNodeFigure(20, 20);
+
+ //FIXME: workaround for #154536
+ result.getBounds().setSize(result.getPreferredSize());
+ return result;
+ }
+
+ /**
+ * Creates figure for this edit part.
+ *
+ * Body of this method does not depend on settings in generation model
+ * so you may safely remove <i>generated</i> tag and modify it.
+ *
+ * @generated
+ */
+ protected NodeFigure createMainFigure() {
+ NodeFigure figure = createNodePlate();
+ figure.setLayoutManager(new StackLayout());
+ IFigure shape = createNodeShape();
+ figure.add(shape);
+ contentPane = setupContentPane(shape);
+ return figure;
+ }
+
+ /**
+ * Default implementation treats passed figure as content pane.
+ * Respects layout one may have set for generated figure.
+ * @param nodeShape instance of generated figure class
+ * @generated
+ */
+ protected IFigure setupContentPane(IFigure nodeShape) {
+ return nodeShape; // use nodeShape itself as contentPane
+ }
+
+ /**
+ * @generated
+ */
+ public IFigure getContentPane() {
+ if (contentPane != null) {
+ return contentPane;
+ }
+ return super.getContentPane();
+ }
+
+ /**
+ * @generated
+ */
+ protected void setForegroundColor(Color color) {
+ if (primaryShape != null) {
+ primaryShape.setForegroundColor(color);
+ }
+ }
+
+ /**
+ * @generated
+ */
+ protected void setBackgroundColor(Color color) {
+ if (primaryShape != null) {
+ primaryShape.setBackgroundColor(color);
+ }
+ }
+
+ /**
+ * @generated
+ */
+ protected void setLineWidth(int width) {
+ if (primaryShape instanceof Shape) {
+ ((Shape) primaryShape).setLineWidth(width);
+ }
+ }
+
+ /**
+ * @generated
+ */
+ protected void setLineType(int style) {
+ if (primaryShape instanceof Shape) {
+ ((Shape) primaryShape).setLineStyle(style);
+ }
+ }
+
+ /**
+ * @generated
+ */
+ public EditPart getPrimaryChildEditPart() {
+ return getChildBySemanticHint(ComrelVisualIDRegistry
+ .getType(SingleInputPortNameType9EditPart.VISUAL_ID));
+ }
+
+ /**
+ * @generated
+ */
+ public List<IElementType> getMARelTypesOnSource() {
+ ArrayList<IElementType> types = new ArrayList<IElementType>(1);
+ types.add(ComrelElementTypes.SinglePortMapping_4001);
+ return types;
+ }
+
+ /**
+ * @generated
+ */
+ public List<IElementType> getMARelTypesOnSourceAndTarget(
+ IGraphicalEditPart targetEditPart) {
+ LinkedList<IElementType> types = new LinkedList<IElementType>();
+ if (targetEditPart instanceof SingleInputPortEditPart) {
+ types.add(ComrelElementTypes.SinglePortMapping_4001);
+ }
+ if (targetEditPart instanceof SingleInputPort2EditPart) {
+ types.add(ComrelElementTypes.SinglePortMapping_4001);
+ }
+ if (targetEditPart instanceof SingleInputPort3EditPart) {
+ types.add(ComrelElementTypes.SinglePortMapping_4001);
+ }
+ if (targetEditPart instanceof SingleInputPort4EditPart) {
+ types.add(ComrelElementTypes.SinglePortMapping_4001);
+ }
+ if (targetEditPart instanceof SingleInputPort5EditPart) {
+ types.add(ComrelElementTypes.SinglePortMapping_4001);
+ }
+ if (targetEditPart instanceof SingleInputPort6EditPart) {
+ types.add(ComrelElementTypes.SinglePortMapping_4001);
+ }
+ if (targetEditPart instanceof SingleInputPort7EditPart) {
+ types.add(ComrelElementTypes.SinglePortMapping_4001);
+ }
+ if (targetEditPart instanceof SingleInputPort8EditPart) {
+ types.add(ComrelElementTypes.SinglePortMapping_4001);
+ }
+ if (targetEditPart instanceof comrel.diagram.edit.parts.SingleInputPort9EditPart) {
+ types.add(ComrelElementTypes.SinglePortMapping_4001);
+ }
+ return types;
+ }
+
+ /**
+ * @generated
+ */
+ public List<IElementType> getMATypesForTarget(IElementType relationshipType) {
+ LinkedList<IElementType> types = new LinkedList<IElementType>();
+ if (relationshipType == ComrelElementTypes.SinglePortMapping_4001) {
+ types.add(ComrelElementTypes.SingleInputPort_2001);
+ types.add(ComrelElementTypes.SingleInputPort_3001);
+ types.add(ComrelElementTypes.SingleInputPort_3005);
+ types.add(ComrelElementTypes.SingleInputPort_3009);
+ types.add(ComrelElementTypes.SingleInputPort_3013);
+ types.add(ComrelElementTypes.SingleInputPort_3023);
+ types.add(ComrelElementTypes.SingleInputPort_3027);
+ types.add(ComrelElementTypes.SingleInputPort_3031);
+ types.add(ComrelElementTypes.SingleInputPort_3035);
+ }
+ return types;
+ }
+
+ /**
+ * @generated
+ */
+ public List<IElementType> getMARelTypesOnTarget() {
+ ArrayList<IElementType> types = new ArrayList<IElementType>(2);
+ types.add(ComrelElementTypes.SinglePortMapping_4001);
+ types.add(ComrelElementTypes.MultiSinglePortMapping_4003);
+ return types;
+ }
+
+ /**
+ * @generated
+ */
+ public List<IElementType> getMATypesForSource(IElementType relationshipType) {
+ LinkedList<IElementType> types = new LinkedList<IElementType>();
+ if (relationshipType == ComrelElementTypes.SinglePortMapping_4001) {
+ types.add(ComrelElementTypes.SingleInputPort_2001);
+ types.add(ComrelElementTypes.SingleInputPort_3001);
+ types.add(ComrelElementTypes.SingleInputPort_3005);
+ types.add(ComrelElementTypes.SingleInputPort_3009);
+ types.add(ComrelElementTypes.SingleOutputPort_3011);
+ types.add(ComrelElementTypes.SingleInputPort_3013);
+ types.add(ComrelElementTypes.SingleOutputPort_3018);
+ types.add(ComrelElementTypes.SingleInputPort_3023);
+ types.add(ComrelElementTypes.SingleInputPort_3027);
+ types.add(ComrelElementTypes.SingleInputPort_3031);
+ types.add(ComrelElementTypes.SingleInputPort_3035);
+ } else if (relationshipType == ComrelElementTypes.MultiSinglePortMapping_4003) {
+ types.add(ComrelElementTypes.MultiInputPort_3002);
+ types.add(ComrelElementTypes.MultiInputPort_3006);
+ types.add(ComrelElementTypes.MultiInputPort_3010);
+ types.add(ComrelElementTypes.MultiInputPort_3014);
+ types.add(ComrelElementTypes.MultiOutputPort_3015);
+ types.add(ComrelElementTypes.MultiInputPort_3017);
+ types.add(ComrelElementTypes.MultiInputPort_3020);
+ types.add(ComrelElementTypes.MultiOutputPort_3021);
+ types.add(ComrelElementTypes.MultiInputPort_3024);
+ types.add(ComrelElementTypes.MultiInputPort_3028);
+ types.add(ComrelElementTypes.MultiInputPort_3032);
+ }
+ return types;
+ }
+
+ // /**
+ // * @generated
+ // */
+ // public class SingleInputPortFigure extends RectangleFigure {
+ //
+ // /**
+ // * @generated
+ // */
+ // public SingleInputPortFigure() {
+ // this.setPreferredSize(new Dimension(getMapMode().DPtoLP(20),
+ // getMapMode().DPtoLP(20)));
+ // this.setBorder(new MarginBorder(getMapMode().DPtoLP(5),
+ // getMapMode().DPtoLP(5), getMapMode().DPtoLP(5),
+ // getMapMode().DPtoLP(5)));
+ // }
+ //
+ // }
+
+ /**
+ * @generated NOT
+ */
+ public class SingleInputPortFigure extends InputPortFigure {
+
+ /**
+ * @generated
+ */
+ public SingleInputPortFigure() {
+ this.setPreferredSize(new Dimension(getMapMode().DPtoLP(20),
+ getMapMode().DPtoLP(20)));
+ this.setBorder(new MarginBorder(getMapMode().DPtoLP(5),
+ getMapMode().DPtoLP(5), getMapMode().DPtoLP(5),
+ getMapMode().DPtoLP(5)));
+ }
+
+ }
+
+}
diff --git a/org.eclipse.emf.refactor.comrel.diagram/src/comrel/diagram/edit/parts/SingleInputPortEditPart.java b/org.eclipse.emf.refactor.comrel.diagram/src/comrel/diagram/edit/parts/SingleInputPortEditPart.java
new file mode 100644
index 0000000..b68f865
--- /dev/null
+++ b/org.eclipse.emf.refactor.comrel.diagram/src/comrel/diagram/edit/parts/SingleInputPortEditPart.java
@@ -0,0 +1,403 @@
+/*
+ *
+ */
+package comrel.diagram.edit.parts;
+
+import java.util.ArrayList;
+import java.util.Collections;
+import java.util.LinkedList;
+import java.util.List;
+
+import org.eclipse.draw2d.IFigure;
+import org.eclipse.draw2d.MarginBorder;
+import org.eclipse.draw2d.PositionConstants;
+import org.eclipse.draw2d.RectangleFigure;
+import org.eclipse.draw2d.Shape;
+import org.eclipse.draw2d.StackLayout;
+import org.eclipse.draw2d.geometry.Dimension;
+import org.eclipse.emf.common.notify.Notification;
+import org.eclipse.emf.ecore.EcorePackage;
+import org.eclipse.gef.EditPart;
+import org.eclipse.gef.EditPolicy;
+import org.eclipse.gef.GraphicalEditPart;
+import org.eclipse.gef.Request;
+import org.eclipse.gef.commands.Command;
+import org.eclipse.gef.editpolicies.LayoutEditPolicy;
+import org.eclipse.gef.editpolicies.NonResizableEditPolicy;
+import org.eclipse.gef.handles.MoveHandle;
+import org.eclipse.gef.requests.CreateRequest;
+import org.eclipse.gmf.runtime.diagram.ui.editparts.AbstractBorderedShapeEditPart;
+import org.eclipse.gmf.runtime.diagram.ui.editparts.IBorderItemEditPart;
+import org.eclipse.gmf.runtime.diagram.ui.editparts.IGraphicalEditPart;
+import org.eclipse.gmf.runtime.diagram.ui.editpolicies.BorderItemSelectionEditPolicy;
+import org.eclipse.gmf.runtime.diagram.ui.editpolicies.EditPolicyRoles;
+import org.eclipse.gmf.runtime.diagram.ui.figures.BorderItemLocator;
+import org.eclipse.gmf.runtime.draw2d.ui.figures.WrappingLabel;
+import org.eclipse.gmf.runtime.emf.type.core.IElementType;
+import org.eclipse.gmf.runtime.gef.ui.figures.DefaultSizeNodeFigure;
+import org.eclipse.gmf.runtime.gef.ui.figures.NodeFigure;
+import org.eclipse.gmf.runtime.notation.View;
+import org.eclipse.swt.graphics.Color;
+
+import comrel.InputPort;
+import comrel.diagram.edit.policies.SingleInputPortItemSemanticEditPolicy;
+import comrel.diagram.part.ComrelVisualIDRegistry;
+import comrel.diagram.providers.ComrelElementTypes;
+import comrel.figures.InputPortFigure;
+
+/**
+ * @generated
+ */
+public class SingleInputPortEditPart extends AbstractBorderedShapeEditPart {
+
+ /**
+ * @generated
+ */
+ public static final int VISUAL_ID = 2001;
+
+ /**
+ * @generated
+ */
+ protected IFigure contentPane;
+
+ /**
+ * @generated
+ */
+ protected IFigure primaryShape;
+
+ /**
+ * @generated
+ */
+ public SingleInputPortEditPart(View view) {
+ super(view);
+ }
+
+ /**
+ * @generated
+ */
+ protected void createDefaultEditPolicies() {
+ super.createDefaultEditPolicies();
+ installEditPolicy(EditPolicyRoles.SEMANTIC_ROLE,
+ new SingleInputPortItemSemanticEditPolicy());
+ installEditPolicy(EditPolicy.LAYOUT_ROLE, createLayoutEditPolicy());
+ // XXX need an SCR to runtime to have another abstract superclass that would let children add reasonable editpolicies
+ // removeEditPolicy(org.eclipse.gmf.runtime.diagram.ui.editpolicies.EditPolicyRoles.CONNECTION_HANDLES_ROLE);
+ }
+
+ /**
+ * @generated
+ */
+ protected LayoutEditPolicy createLayoutEditPolicy() {
+ org.eclipse.gmf.runtime.diagram.ui.editpolicies.LayoutEditPolicy lep = new org.eclipse.gmf.runtime.diagram.ui.editpolicies.LayoutEditPolicy() {
+
+ protected EditPolicy createChildEditPolicy(EditPart child) {
+ View childView = (View) child.getModel();
+ switch (ComrelVisualIDRegistry.getVisualID(childView)) {
+ case SingleInputPortNameTypeEditPart.VISUAL_ID:
+ return new BorderItemSelectionEditPolicy() {
+
+ protected List createSelectionHandles() {
+ MoveHandle mh = new MoveHandle(
+ (GraphicalEditPart) getHost());
+ mh.setBorder(null);
+ return Collections.singletonList(mh);
+ }
+ };
+ }
+ EditPolicy result = child
+ .getEditPolicy(EditPolicy.PRIMARY_DRAG_ROLE);
+ if (result == null) {
+ result = new NonResizableEditPolicy();
+ }
+ return result;
+ }
+
+ protected Command getMoveChildrenCommand(Request request) {
+ return null;
+ }
+
+ protected Command getCreateCommand(CreateRequest request) {
+ return null;
+ }
+ };
+ return lep;
+ }
+
+ /**
+ * @generated NOT
+ */
+ protected IFigure createNodeShape() {
+ SingleInputPortFigure figure = new SingleInputPortFigure();
+ InputPort port = (InputPort) this.resolveSemanticElement();
+ figure.setPort(port);
+ return primaryShape = figure;
+ }
+
+ /**
+ * @generated
+ */
+ public SingleInputPortFigure getPrimaryShape() {
+ return (SingleInputPortFigure) primaryShape;
+ }
+
+ /**
+ * @generated
+ */
+ protected void addBorderItem(IFigure borderItemContainer,
+ IBorderItemEditPart borderItemEditPart) {
+ if (borderItemEditPart instanceof SingleInputPortNameTypeEditPart) {
+ BorderItemLocator locator = new BorderItemLocator(getMainFigure(),
+ PositionConstants.SOUTH);
+ locator.setBorderItemOffset(new Dimension(-20, -20));
+ borderItemContainer.add(borderItemEditPart.getFigure(), locator);
+ } else {
+ super.addBorderItem(borderItemContainer, borderItemEditPart);
+ }
+ }
+
+ /**
+ * @generated
+ */
+ protected NodeFigure createNodePlate() {
+ DefaultSizeNodeFigure result = new DefaultSizeNodeFigure(20, 20);
+ return result;
+ }
+
+ /**
+ * Creates figure for this edit part.
+ *
+ * Body of this method does not depend on settings in generation model
+ * so you may safely remove <i>generated</i> tag and modify it.
+ *
+ * @generated
+ */
+ protected NodeFigure createMainFigure() {
+ NodeFigure figure = createNodePlate();
+ figure.setLayoutManager(new StackLayout());
+ IFigure shape = createNodeShape();
+ figure.add(shape);
+ contentPane = setupContentPane(shape);
+ return figure;
+ }
+
+ /**
+ * Default implementation treats passed figure as content pane.
+ * Respects layout one may have set for generated figure.
+ * @param nodeShape instance of generated figure class
+ * @generated
+ */
+ protected IFigure setupContentPane(IFigure nodeShape) {
+ return nodeShape; // use nodeShape itself as contentPane
+ }
+
+ /**
+ * @generated
+ */
+ public IFigure getContentPane() {
+ if (contentPane != null) {
+ return contentPane;
+ }
+ return super.getContentPane();
+ }
+
+ /**
+ * @generated
+ */
+ protected void setForegroundColor(Color color) {
+ if (primaryShape != null) {
+ primaryShape.setForegroundColor(color);
+ }
+ }
+
+ /**
+ * @generated
+ */
+ protected void setBackgroundColor(Color color) {
+ if (primaryShape != null) {
+ primaryShape.setBackgroundColor(color);
+ }
+ }
+
+ /**
+ * @generated
+ */
+ protected void setLineWidth(int width) {
+ if (primaryShape instanceof Shape) {
+ ((Shape) primaryShape).setLineWidth(width);
+ }
+ }
+
+ /**
+ * @generated
+ */
+ protected void setLineType(int style) {
+ if (primaryShape instanceof Shape) {
+ ((Shape) primaryShape).setLineStyle(style);
+ }
+ }
+
+ /**
+ * @generated
+ */
+ public EditPart getPrimaryChildEditPart() {
+ return getChildBySemanticHint(ComrelVisualIDRegistry
+ .getType(SingleInputPortNameTypeEditPart.VISUAL_ID));
+ }
+
+ /**
+ * @generated
+ */
+ public List<IElementType> getMARelTypesOnSource() {
+ ArrayList<IElementType> types = new ArrayList<IElementType>(1);
+ types.add(ComrelElementTypes.SinglePortMapping_4001);
+ return types;
+ }
+
+ /**
+ * @generated
+ */
+ public List<IElementType> getMARelTypesOnSourceAndTarget(
+ IGraphicalEditPart targetEditPart) {
+ LinkedList<IElementType> types = new LinkedList<IElementType>();
+ if (targetEditPart instanceof comrel.diagram.edit.parts.SingleInputPortEditPart) {
+ types.add(ComrelElementTypes.SinglePortMapping_4001);
+ }
+ if (targetEditPart instanceof SingleInputPort2EditPart) {
+ types.add(ComrelElementTypes.SinglePortMapping_4001);
+ }
+ if (targetEditPart instanceof SingleInputPort3EditPart) {
+ types.add(ComrelElementTypes.SinglePortMapping_4001);
+ }
+ if (targetEditPart instanceof SingleInputPort4EditPart) {
+ types.add(ComrelElementTypes.SinglePortMapping_4001);
+ }
+ if (targetEditPart instanceof SingleInputPort5EditPart) {
+ types.add(ComrelElementTypes.SinglePortMapping_4001);
+ }
+ if (targetEditPart instanceof SingleInputPort6EditPart) {
+ types.add(ComrelElementTypes.SinglePortMapping_4001);
+ }
+ if (targetEditPart instanceof SingleInputPort7EditPart) {
+ types.add(ComrelElementTypes.SinglePortMapping_4001);
+ }
+ if (targetEditPart instanceof SingleInputPort8EditPart) {
+ types.add(ComrelElementTypes.SinglePortMapping_4001);
+ }
+ if (targetEditPart instanceof SingleInputPort9EditPart) {
+ types.add(ComrelElementTypes.SinglePortMapping_4001);
+ }
+ return types;
+ }
+
+ /**
+ * @generated
+ */
+ public List<IElementType> getMATypesForTarget(IElementType relationshipType) {
+ LinkedList<IElementType> types = new LinkedList<IElementType>();
+ if (relationshipType == ComrelElementTypes.SinglePortMapping_4001) {
+ types.add(ComrelElementTypes.SingleInputPort_2001);
+ types.add(ComrelElementTypes.SingleInputPort_3001);
+ types.add(ComrelElementTypes.SingleInputPort_3005);
+ types.add(ComrelElementTypes.SingleInputPort_3009);
+ types.add(ComrelElementTypes.SingleInputPort_3013);
+ types.add(ComrelElementTypes.SingleInputPort_3023);
+ types.add(ComrelElementTypes.SingleInputPort_3027);
+ types.add(ComrelElementTypes.SingleInputPort_3031);
+ types.add(ComrelElementTypes.SingleInputPort_3035);
+ }
+ return types;
+ }
+
+ /**
+ * @generated
+ */
+ public List<IElementType> getMARelTypesOnTarget() {
+ ArrayList<IElementType> types = new ArrayList<IElementType>(2);
+ types.add(ComrelElementTypes.SinglePortMapping_4001);
+ types.add(ComrelElementTypes.MultiSinglePortMapping_4003);
+ return types;
+ }
+
+ /**
+ * @generated
+ */
+ public List<IElementType> getMATypesForSource(IElementType relationshipType) {
+ LinkedList<IElementType> types = new LinkedList<IElementType>();
+ if (relationshipType == ComrelElementTypes.SinglePortMapping_4001) {
+ types.add(ComrelElementTypes.SingleInputPort_2001);
+ types.add(ComrelElementTypes.SingleInputPort_3001);
+ types.add(ComrelElementTypes.SingleInputPort_3005);
+ types.add(ComrelElementTypes.SingleInputPort_3009);
+ types.add(ComrelElementTypes.SingleOutputPort_3011);
+ types.add(ComrelElementTypes.SingleInputPort_3013);
+ types.add(ComrelElementTypes.SingleOutputPort_3018);
+ types.add(ComrelElementTypes.SingleInputPort_3023);
+ types.add(ComrelElementTypes.SingleInputPort_3027);
+ types.add(ComrelElementTypes.SingleInputPort_3031);
+ types.add(ComrelElementTypes.SingleInputPort_3035);
+ } else if (relationshipType == ComrelElementTypes.MultiSinglePortMapping_4003) {
+ types.add(ComrelElementTypes.MultiInputPort_3002);
+ types.add(ComrelElementTypes.MultiInputPort_3006);
+ types.add(ComrelElementTypes.MultiInputPort_3010);
+ types.add(ComrelElementTypes.MultiInputPort_3014);
+ types.add(ComrelElementTypes.MultiOutputPort_3015);
+ types.add(ComrelElementTypes.MultiInputPort_3017);
+ types.add(ComrelElementTypes.MultiInputPort_3020);
+ types.add(ComrelElementTypes.MultiOutputPort_3021);
+ types.add(ComrelElementTypes.MultiInputPort_3024);
+ types.add(ComrelElementTypes.MultiInputPort_3028);
+ types.add(ComrelElementTypes.MultiInputPort_3032);
+ }
+ return types;
+ }
+
+ /**
+ * @generated
+ */
+ protected void handleNotificationEvent(Notification event) {
+ if (event.getNotifier() == getModel()
+ && EcorePackage.eINSTANCE.getEModelElement_EAnnotations()
+ .equals(event.getFeature())) {
+ handleMajorSemanticChange();
+ } else {
+ super.handleNotificationEvent(event);
+ }
+ }
+
+ // /**
+ // * @generated
+ // */
+ // public class SingleInputPortFigure extends RectangleFigure {
+ //
+ // /**
+ // * @generated
+ // */
+ // public SingleInputPortFigure() {
+ // this.setPreferredSize(new Dimension(getMapMode().DPtoLP(20),
+ // getMapMode().DPtoLP(20)));
+ // this.setBorder(new MarginBorder(getMapMode().DPtoLP(5),
+ // getMapMode().DPtoLP(5), getMapMode().DPtoLP(5),
+ // getMapMode().DPtoLP(5)));
+ // }
+ //
+ // }
+
+ /**
+ * @generated NOT
+ */
+ public class SingleInputPortFigure extends InputPortFigure {
+
+ /**
+ * @generated
+ */
+ public SingleInputPortFigure() {
+ this.setPreferredSize(new Dimension(getMapMode().DPtoLP(20),
+ getMapMode().DPtoLP(20)));
+ this.setBorder(new MarginBorder(getMapMode().DPtoLP(5),
+ getMapMode().DPtoLP(5), getMapMode().DPtoLP(5),
+ getMapMode().DPtoLP(5)));
+ }
+
+ }
+
+}
diff --git a/org.eclipse.emf.refactor.comrel.diagram/src/comrel/diagram/edit/parts/SingleInputPortNameType2EditPart.java b/org.eclipse.emf.refactor.comrel.diagram/src/comrel/diagram/edit/parts/SingleInputPortNameType2EditPart.java
new file mode 100644
index 0000000..0fea0f1
--- /dev/null
+++ b/org.eclipse.emf.refactor.comrel.diagram/src/comrel/diagram/edit/parts/SingleInputPortNameType2EditPart.java
@@ -0,0 +1,631 @@
+/*
+ *
+ */
+package comrel.diagram.edit.parts;
+
+import java.util.Collections;
+import java.util.List;
+
+import org.eclipse.draw2d.IFigure;
+import org.eclipse.draw2d.Label;
+import org.eclipse.draw2d.geometry.Point;
+import org.eclipse.draw2d.geometry.Rectangle;
+import org.eclipse.emf.common.notify.Notification;
+import org.eclipse.emf.ecore.EObject;
+import org.eclipse.emf.transaction.RunnableWithResult;
+import org.eclipse.gef.AccessibleEditPart;
+import org.eclipse.gef.EditPolicy;
+import org.eclipse.gef.Request;
+import org.eclipse.gef.requests.DirectEditRequest;
+import org.eclipse.gef.tools.DirectEditManager;
+import org.eclipse.gmf.runtime.common.ui.services.parser.IParser;
+import org.eclipse.gmf.runtime.common.ui.services.parser.IParserEditStatus;
+import org.eclipse.gmf.runtime.common.ui.services.parser.ParserEditStatus;
+import org.eclipse.gmf.runtime.common.ui.services.parser.ParserOptions;
+import org.eclipse.gmf.runtime.diagram.ui.editparts.IBorderItemEditPart;
+import org.eclipse.gmf.runtime.diagram.ui.editparts.IGraphicalEditPart;
+import org.eclipse.gmf.runtime.diagram.ui.editparts.ITextAwareEditPart;
+import org.eclipse.gmf.runtime.diagram.ui.editparts.LabelEditPart;
+import org.eclipse.gmf.runtime.diagram.ui.editpolicies.LabelDirectEditPolicy;
+import org.eclipse.gmf.runtime.diagram.ui.figures.IBorderItemLocator;
+import org.eclipse.gmf.runtime.diagram.ui.l10n.DiagramColorRegistry;
+import org.eclipse.gmf.runtime.diagram.ui.requests.RequestConstants;
+import org.eclipse.gmf.runtime.diagram.ui.tools.TextDirectEditManager;
+import org.eclipse.gmf.runtime.draw2d.ui.figures.WrappingLabel;
+import org.eclipse.gmf.runtime.emf.core.util.EObjectAdapter;
+import org.eclipse.gmf.runtime.emf.ui.services.parser.ISemanticParser;
+import org.eclipse.gmf.runtime.notation.FontStyle;
+import org.eclipse.gmf.runtime.notation.NotationPackage;
+import org.eclipse.gmf.runtime.notation.View;
+import org.eclipse.jface.text.contentassist.IContentAssistProcessor;
+import org.eclipse.jface.viewers.ICellEditorValidator;
+import org.eclipse.swt.SWT;
+import org.eclipse.swt.accessibility.AccessibleEvent;
+import org.eclipse.swt.graphics.Color;
+import org.eclipse.swt.graphics.FontData;
+import org.eclipse.swt.graphics.Image;
+
+import comrel.diagram.edit.policies.ComrelTextSelectionEditPolicy;
+import comrel.diagram.part.ComrelVisualIDRegistry;
+import comrel.diagram.providers.ComrelElementTypes;
+import comrel.diagram.providers.ComrelParserProvider;
+
+/**
+ * @generated
+ */
+public class SingleInputPortNameType2EditPart extends LabelEditPart implements
+ ITextAwareEditPart, IBorderItemEditPart {
+
+ /**
+ * @generated
+ */
+ public static final int VISUAL_ID = 5002;
+
+ /**
+ * @generated
+ */
+ private DirectEditManager manager;
+
+ /**
+ * @generated
+ */
+ private IParser parser;
+
+ /**
+ * @generated
+ */
+ private List<?> parserElements;
+
+ /**
+ * @generated
+ */
+ private String defaultText;
+
+ /**
+ * @generated
+ */
+ static {
+ registerSnapBackPosition(
+ ComrelVisualIDRegistry
+ .getType(comrel.diagram.edit.parts.SingleInputPortNameType2EditPart.VISUAL_ID),
+ new Point(0, 0));
+ }
+
+ /**
+ * @generated
+ */
+ public SingleInputPortNameType2EditPart(View view) {
+ super(view);
+ }
+
+ /**
+ * @generated
+ */
+ protected void createDefaultEditPolicies() {
+ super.createDefaultEditPolicies();
+ installEditPolicy(EditPolicy.DIRECT_EDIT_ROLE,
+ new LabelDirectEditPolicy());
+ installEditPolicy(EditPolicy.SELECTION_FEEDBACK_ROLE,
+ new ComrelTextSelectionEditPolicy());
+ }
+
+ /**
+ * @generated
+ */
+ public IBorderItemLocator getBorderItemLocator() {
+ IFigure parentFigure = getFigure().getParent();
+ if (parentFigure != null && parentFigure.getLayoutManager() != null) {
+ Object constraint = parentFigure.getLayoutManager().getConstraint(
+ getFigure());
+ return (IBorderItemLocator) constraint;
+ }
+ return null;
+ }
+
+ /**
+ * @generated
+ */
+ public void refreshBounds() {
+ int x = ((Integer) getStructuralFeatureValue(NotationPackage.eINSTANCE
+ .getLocation_X())).intValue();
+ int y = ((Integer) getStructuralFeatureValue(NotationPackage.eINSTANCE
+ .getLocation_Y())).intValue();
+ int width = ((Integer) getStructuralFeatureValue(NotationPackage.eINSTANCE
+ .getSize_Width())).intValue();
+ int height = ((Integer) getStructuralFeatureValue(NotationPackage.eINSTANCE
+ .getSize_Height())).intValue();
+ getBorderItemLocator()
+ .setConstraint(new Rectangle(x, y, width, height));
+ }
+
+ /**
+ * @generated
+ */
+ protected String getLabelTextHelper(IFigure figure) {
+ if (figure instanceof WrappingLabel) {
+ return ((WrappingLabel) figure).getText();
+ } else {
+ return ((Label) figure).getText();
+ }
+ }
+
+ /**
+ * @generated NOT
+ */
+ protected void setLabelTextHelper(IFigure figure, String text) {
+ int posDot = -1;
+ int posDouble = -1;
+ posDot = text.lastIndexOf(".");
+ posDouble = text.indexOf(":");
+ if (posDot > -1 && posDouble > -1) {
+ String first = text.substring(0, posDouble + 1);
+ String second = text.substring(posDot + 1);
+ text = first + second;
+ }
+ if (figure instanceof WrappingLabel) {
+ ((WrappingLabel) figure).setText(text);
+ } else {
+ ((Label) figure).setText(text);
+ }
+ }
+
+ /**
+ * @generated
+ */
+ protected Image getLabelIconHelper(IFigure figure) {
+ if (figure instanceof WrappingLabel) {
+ return ((WrappingLabel) figure).getIcon();
+ } else {
+ return ((Label) figure).getIcon();
+ }
+ }
+
+ /**
+ * @generated
+ */
+ protected void setLabelIconHelper(IFigure figure, Image icon) {
+ if (figure instanceof WrappingLabel) {
+ ((WrappingLabel) figure).setIcon(icon);
+ } else {
+ ((Label) figure).setIcon(icon);
+ }
+ }
+
+ /**
+ * @generated
+ */
+ public void setLabel(IFigure figure) {
+ unregisterVisuals();
+ setFigure(figure);
+ defaultText = getLabelTextHelper(figure);
+ registerVisuals();
+ refreshVisuals();
+ }
+
+ /**
+ * @generated
+ */
+ @SuppressWarnings("rawtypes")
+ protected List getModelChildren() {
+ return Collections.EMPTY_LIST;
+ }
+
+ /**
+ * @generated
+ */
+ public IGraphicalEditPart getChildBySemanticHint(String semanticHint) {
+ return null;
+ }
+
+ /**
+ * @generated
+ */
+ protected EObject getParserElement() {
+ return resolveSemanticElement();
+ }
+
+ /**
+ * @generated
+ */
+ protected Image getLabelIcon() {
+ return null;
+ }
+
+ /**
+ * @generated
+ */
+ protected String getLabelText() {
+ String text = null;
+ EObject parserElement = getParserElement();
+ if (parserElement != null && getParser() != null) {
+ text = getParser().getPrintString(
+ new EObjectAdapter(parserElement),
+ getParserOptions().intValue());
+ }
+ if (text == null || text.length() == 0) {
+ text = defaultText;
+ }
+ return text;
+ }
+
+ /**
+ * @generated
+ */
+ public void setLabelText(String text) {
+ setLabelTextHelper(getFigure(), text);
+ Object pdEditPolicy = getEditPolicy(EditPolicy.PRIMARY_DRAG_ROLE);
+ if (pdEditPolicy instanceof ComrelTextSelectionEditPolicy) {
+ ((ComrelTextSelectionEditPolicy) pdEditPolicy).refreshFeedback();
+ }
+ Object sfEditPolicy = getEditPolicy(EditPolicy.SELECTION_FEEDBACK_ROLE);
+ if (sfEditPolicy instanceof ComrelTextSelectionEditPolicy) {
+ ((ComrelTextSelectionEditPolicy) sfEditPolicy).refreshFeedback();
+ }
+ }
+
+ /**
+ * @generated
+ */
+ public String getEditText() {
+ if (getParserElement() == null || getParser() == null) {
+ return ""; //$NON-NLS-1$
+ }
+ return getParser().getEditString(
+ new EObjectAdapter(getParserElement()),
+ getParserOptions().intValue());
+ }
+
+ /**
+ * @generated
+ */
+ protected boolean isEditable() {
+ return getParser() != null;
+ }
+
+ /**
+ * @generated
+ */
+ public ICellEditorValidator getEditTextValidator() {
+ return new ICellEditorValidator() {
+
+ public String isValid(final Object value) {
+ if (value instanceof String) {
+ final EObject element = getParserElement();
+ final IParser parser = getParser();
+ try {
+ IParserEditStatus valid = (IParserEditStatus) getEditingDomain()
+ .runExclusive(
+ new RunnableWithResult.Impl<IParserEditStatus>() {
+
+ public void run() {
+ setResult(parser
+ .isValidEditString(
+ new EObjectAdapter(
+ element),
+ (String) value));
+ }
+ });
+ return valid.getCode() == ParserEditStatus.EDITABLE ? null
+ : valid.getMessage();
+ } catch (InterruptedException ie) {
+ ie.printStackTrace();
+ }
+ }
+
+ // shouldn't get here
+ return null;
+ }
+ };
+ }
+
+ /**
+ * @generated
+ */
+ public IContentAssistProcessor getCompletionProcessor() {
+ if (getParserElement() == null || getParser() == null) {
+ return null;
+ }
+ return getParser().getCompletionProcessor(
+ new EObjectAdapter(getParserElement()));
+ }
+
+ /**
+ * @generated
+ */
+ public ParserOptions getParserOptions() {
+ return ParserOptions.NONE;
+ }
+
+ /**
+ * @generated
+ */
+ public IParser getParser() {
+ if (parser == null) {
+ parser = ComrelParserProvider
+ .getParser(
+ ComrelElementTypes.SingleInputPort_3001,
+ getParserElement(),
+ ComrelVisualIDRegistry
+ .getType(comrel.diagram.edit.parts.SingleInputPortNameType2EditPart.VISUAL_ID));
+ }
+ return parser;
+ }
+
+ /**
+ * @generated
+ */
+ protected DirectEditManager getManager() {
+ if (manager == null) {
+ setManager(new TextDirectEditManager(this,
+ TextDirectEditManager.getTextCellEditorClass(this),
+ ComrelEditPartFactory.getTextCellEditorLocator(this)));
+ }
+ return manager;
+ }
+
+ /**
+ * @generated
+ */
+ protected void setManager(DirectEditManager manager) {
+ this.manager = manager;
+ }
+
+ /**
+ * @generated
+ */
+ protected void performDirectEdit() {
+ getManager().show();
+ }
+
+ /**
+ * @generated
+ */
+ protected void performDirectEdit(Point eventLocation) {
+ if (getManager().getClass() == TextDirectEditManager.class) {
+ ((TextDirectEditManager) getManager()).show(eventLocation
+ .getSWTPoint());
+ }
+ }
+
+ /**
+ * @generated
+ */
+ private void performDirectEdit(char initialCharacter) {
+ if (getManager() instanceof TextDirectEditManager) {
+ ((TextDirectEditManager) getManager()).show(initialCharacter);
+ } else {
+ performDirectEdit();
+ }
+ }
+
+ /**
+ * @generated
+ */
+ protected void performDirectEditRequest(Request request) {
+ final Request theRequest = request;
+ try {
+ getEditingDomain().runExclusive(new Runnable() {
+
+ public void run() {
+ if (isActive() && isEditable()) {
+ if (theRequest
+ .getExtendedData()
+ .get(RequestConstants.REQ_DIRECTEDIT_EXTENDEDDATA_INITIAL_CHAR) instanceof Character) {
+ Character initialChar = (Character) theRequest
+ .getExtendedData()
+ .get(RequestConstants.REQ_DIRECTEDIT_EXTENDEDDATA_INITIAL_CHAR);
+ performDirectEdit(initialChar.charValue());
+ } else if ((theRequest instanceof DirectEditRequest)
+ && (getEditText().equals(getLabelText()))) {
+ DirectEditRequest editRequest = (DirectEditRequest) theRequest;
+ performDirectEdit(editRequest.getLocation());
+ } else {
+ performDirectEdit();
+ }
+ }
+ }
+ });
+ } catch (InterruptedException e) {
+ e.printStackTrace();
+ }
+ }
+
+ /**
+ * @generated
+ */
+ protected void refreshVisuals() {
+ super.refreshVisuals();
+ refreshLabel();
+ refreshFont();
+ refreshFontColor();
+ refreshUnderline();
+ refreshStrikeThrough();
+ }
+
+ /**
+ * @generated
+ */
+ protected void refreshLabel() {
+ setLabelTextHelper(getFigure(), getLabelText());
+ setLabelIconHelper(getFigure(), getLabelIcon());
+ Object pdEditPolicy = getEditPolicy(EditPolicy.PRIMARY_DRAG_ROLE);
+ if (pdEditPolicy instanceof ComrelTextSelectionEditPolicy) {
+ ((ComrelTextSelectionEditPolicy) pdEditPolicy).refreshFeedback();
+ }
+ Object sfEditPolicy = getEditPolicy(EditPolicy.SELECTION_FEEDBACK_ROLE);
+ if (sfEditPolicy instanceof ComrelTextSelectionEditPolicy) {
+ ((ComrelTextSelectionEditPolicy) sfEditPolicy).refreshFeedback();
+ }
+ }
+
+ /**
+ * @generated
+ */
+ protected void refreshUnderline() {
+ FontStyle style = (FontStyle) getFontStyleOwnerView().getStyle(
+ NotationPackage.eINSTANCE.getFontStyle());
+ if (style != null && getFigure() instanceof WrappingLabel) {
+ ((WrappingLabel) getFigure()).setTextUnderline(style.isUnderline());
+ }
+ }
+
+ /**
+ * @generated
+ */
+ protected void refreshStrikeThrough() {
+ FontStyle style = (FontStyle) getFontStyleOwnerView().getStyle(
+ NotationPackage.eINSTANCE.getFontStyle());
+ if (style != null && getFigure() instanceof WrappingLabel) {
+ ((WrappingLabel) getFigure()).setTextStrikeThrough(style
+ .isStrikeThrough());
+ }
+ }
+
+ /**
+ * @generated
+ */
+ protected void refreshFont() {
+ FontStyle style = (FontStyle) getFontStyleOwnerView().getStyle(
+ NotationPackage.eINSTANCE.getFontStyle());
+ if (style != null) {
+ FontData fontData = new FontData(style.getFontName(),
+ style.getFontHeight(), (style.isBold() ? SWT.BOLD
+ : SWT.NORMAL)
+ | (style.isItalic() ? SWT.ITALIC : SWT.NORMAL));
+ setFont(fontData);
+ }
+ }
+
+ /**
+ * @generated
+ */
+ protected void setFontColor(Color color) {
+ getFigure().setForegroundColor(color);
+ }
+
+ /**
+ * @generated
+ */
+ protected void addSemanticListeners() {
+ if (getParser() instanceof ISemanticParser) {
+ EObject element = resolveSemanticElement();
+ parserElements = ((ISemanticParser) getParser())
+ .getSemanticElementsBeingParsed(element);
+ for (int i = 0; i < parserElements.size(); i++) {
+ addListenerFilter(
+ "SemanticModel" + i, this, (EObject) parserElements.get(i)); //$NON-NLS-1$
+ }
+ } else {
+ super.addSemanticListeners();
+ }
+ }
+
+ /**
+ * @generated
+ */
+ protected void removeSemanticListeners() {
+ if (parserElements != null) {
+ for (int i = 0; i < parserElements.size(); i++) {
+ removeListenerFilter("SemanticModel" + i); //$NON-NLS-1$
+ }
+ } else {
+ super.removeSemanticListeners();
+ }
+ }
+
+ /**
+ * @generated
+ */
+ protected AccessibleEditPart getAccessibleEditPart() {
+ if (accessibleEP == null) {
+ accessibleEP = new AccessibleGraphicalEditPart() {
+
+ public void getName(AccessibleEvent e) {
+ e.result = getLabelTextHelper(getFigure());
+ }
+ };
+ }
+ return accessibleEP;
+ }
+
+ /**
+ * @generated
+ */
+ private View getFontStyleOwnerView() {
+ return getPrimaryView();
+ }
+
+ /**
+ * @generated
+ */
+ protected void handleNotificationEvent(Notification event) {
+ Object feature = event.getFeature();
+ if (NotationPackage.eINSTANCE.getFontStyle_FontColor().equals(feature)) {
+ Integer c = (Integer) event.getNewValue();
+ setFontColor(DiagramColorRegistry.getInstance().getColor(c));
+ } else if (NotationPackage.eINSTANCE.getFontStyle_Underline().equals(
+ feature)) {
+ refreshUnderline();
+ } else if (NotationPackage.eINSTANCE.getFontStyle_StrikeThrough()
+ .equals(feature)) {
+ refreshStrikeThrough();
+ } else if (NotationPackage.eINSTANCE.getFontStyle_FontHeight().equals(
+ feature)
+ || NotationPackage.eINSTANCE.getFontStyle_FontName().equals(
+ feature)
+ || NotationPackage.eINSTANCE.getFontStyle_Bold()
+ .equals(feature)
+ || NotationPackage.eINSTANCE.getFontStyle_Italic().equals(
+ feature)) {
+ refreshFont();
+ } else {
+ if (getParser() != null
+ && getParser().isAffectingEvent(event,
+ getParserOptions().intValue())) {
+ refreshLabel();
+ }
+ if (getParser() instanceof ISemanticParser) {
+ ISemanticParser modelParser = (ISemanticParser) getParser();
+ if (modelParser.areSemanticElementsAffected(null, event)) {
+ removeSemanticListeners();
+ if (resolveSemanticElement() != null) {
+ addSemanticListeners();
+ }
+ refreshLabel();
+ }
+ }
+ }
+ super.handleNotificationEvent(event);
+ }
+
+ /**
+ * @generated
+ */
+ protected IFigure createFigure() {
+ IFigure label = createFigurePrim();
+ defaultText = getLabelTextHelper(label);
+ return label;
+ }
+
+ /**
+ * @generated
+ */
+ protected IFigure createFigurePrim() {
+ return new SingleInputPortLabelFigure();
+ }
+
+ /**
+ * @generated
+ */
+ public class SingleInputPortLabelFigure extends WrappingLabel {
+
+ /**
+ * @generated
+ */
+ public SingleInputPortLabelFigure() {
+ this.setText("SingleInputPort");
+ }
+
+ }
+
+}
diff --git a/org.eclipse.emf.refactor.comrel.diagram/src/comrel/diagram/edit/parts/SingleInputPortNameType3EditPart.java b/org.eclipse.emf.refactor.comrel.diagram/src/comrel/diagram/edit/parts/SingleInputPortNameType3EditPart.java
new file mode 100644
index 0000000..d188be9
--- /dev/null
+++ b/org.eclipse.emf.refactor.comrel.diagram/src/comrel/diagram/edit/parts/SingleInputPortNameType3EditPart.java
@@ -0,0 +1,631 @@
+/*
+ *
+ */
+package comrel.diagram.edit.parts;
+
+import java.util.Collections;
+import java.util.List;
+
+import org.eclipse.draw2d.IFigure;
+import org.eclipse.draw2d.Label;
+import org.eclipse.draw2d.geometry.Point;
+import org.eclipse.draw2d.geometry.Rectangle;
+import org.eclipse.emf.common.notify.Notification;
+import org.eclipse.emf.ecore.EObject;
+import org.eclipse.emf.transaction.RunnableWithResult;
+import org.eclipse.gef.AccessibleEditPart;
+import org.eclipse.gef.EditPolicy;
+import org.eclipse.gef.Request;
+import org.eclipse.gef.requests.DirectEditRequest;
+import org.eclipse.gef.tools.DirectEditManager;
+import org.eclipse.gmf.runtime.common.ui.services.parser.IParser;
+import org.eclipse.gmf.runtime.common.ui.services.parser.IParserEditStatus;
+import org.eclipse.gmf.runtime.common.ui.services.parser.ParserEditStatus;
+import org.eclipse.gmf.runtime.common.ui.services.parser.ParserOptions;
+import org.eclipse.gmf.runtime.diagram.ui.editparts.IBorderItemEditPart;
+import org.eclipse.gmf.runtime.diagram.ui.editparts.IGraphicalEditPart;
+import org.eclipse.gmf.runtime.diagram.ui.editparts.ITextAwareEditPart;
+import org.eclipse.gmf.runtime.diagram.ui.editparts.LabelEditPart;
+import org.eclipse.gmf.runtime.diagram.ui.editpolicies.LabelDirectEditPolicy;
+import org.eclipse.gmf.runtime.diagram.ui.figures.IBorderItemLocator;
+import org.eclipse.gmf.runtime.diagram.ui.l10n.DiagramColorRegistry;
+import org.eclipse.gmf.runtime.diagram.ui.requests.RequestConstants;
+import org.eclipse.gmf.runtime.diagram.ui.tools.TextDirectEditManager;
+import org.eclipse.gmf.runtime.draw2d.ui.figures.WrappingLabel;
+import org.eclipse.gmf.runtime.emf.core.util.EObjectAdapter;
+import org.eclipse.gmf.runtime.emf.ui.services.parser.ISemanticParser;
+import org.eclipse.gmf.runtime.notation.FontStyle;
+import org.eclipse.gmf.runtime.notation.NotationPackage;
+import org.eclipse.gmf.runtime.notation.View;
+import org.eclipse.jface.text.contentassist.IContentAssistProcessor;
+import org.eclipse.jface.viewers.ICellEditorValidator;
+import org.eclipse.swt.SWT;
+import org.eclipse.swt.accessibility.AccessibleEvent;
+import org.eclipse.swt.graphics.Color;
+import org.eclipse.swt.graphics.FontData;
+import org.eclipse.swt.graphics.Image;
+
+import comrel.diagram.edit.policies.ComrelTextSelectionEditPolicy;
+import comrel.diagram.part.ComrelVisualIDRegistry;
+import comrel.diagram.providers.ComrelElementTypes;
+import comrel.diagram.providers.ComrelParserProvider;
+
+/**
+ * @generated
+ */
+public class SingleInputPortNameType3EditPart extends LabelEditPart implements
+ ITextAwareEditPart, IBorderItemEditPart {
+
+ /**
+ * @generated
+ */
+ public static final int VISUAL_ID = 5004;
+
+ /**
+ * @generated
+ */
+ private DirectEditManager manager;
+
+ /**
+ * @generated
+ */
+ private IParser parser;
+
+ /**
+ * @generated
+ */
+ private List<?> parserElements;
+
+ /**
+ * @generated
+ */
+ private String defaultText;
+
+ /**
+ * @generated
+ */
+ static {
+ registerSnapBackPosition(
+ ComrelVisualIDRegistry
+ .getType(comrel.diagram.edit.parts.SingleInputPortNameType3EditPart.VISUAL_ID),
+ new Point(0, 0));
+ }
+
+ /**
+ * @generated
+ */
+ public SingleInputPortNameType3EditPart(View view) {
+ super(view);
+ }
+
+ /**
+ * @generated
+ */
+ protected void createDefaultEditPolicies() {
+ super.createDefaultEditPolicies();
+ installEditPolicy(EditPolicy.DIRECT_EDIT_ROLE,
+ new LabelDirectEditPolicy());
+ installEditPolicy(EditPolicy.SELECTION_FEEDBACK_ROLE,
+ new ComrelTextSelectionEditPolicy());
+ }
+
+ /**
+ * @generated
+ */
+ public IBorderItemLocator getBorderItemLocator() {
+ IFigure parentFigure = getFigure().getParent();
+ if (parentFigure != null && parentFigure.getLayoutManager() != null) {
+ Object constraint = parentFigure.getLayoutManager().getConstraint(
+ getFigure());
+ return (IBorderItemLocator) constraint;
+ }
+ return null;
+ }
+
+ /**
+ * @generated
+ */
+ public void refreshBounds() {
+ int x = ((Integer) getStructuralFeatureValue(NotationPackage.eINSTANCE
+ .getLocation_X())).intValue();
+ int y = ((Integer) getStructuralFeatureValue(NotationPackage.eINSTANCE
+ .getLocation_Y())).intValue();
+ int width = ((Integer) getStructuralFeatureValue(NotationPackage.eINSTANCE
+ .getSize_Width())).intValue();
+ int height = ((Integer) getStructuralFeatureValue(NotationPackage.eINSTANCE
+ .getSize_Height())).intValue();
+ getBorderItemLocator()
+ .setConstraint(new Rectangle(x, y, width, height));
+ }
+
+ /**
+ * @generated
+ */
+ protected String getLabelTextHelper(IFigure figure) {
+ if (figure instanceof WrappingLabel) {
+ return ((WrappingLabel) figure).getText();
+ } else {
+ return ((Label) figure).getText();
+ }
+ }
+
+ /**
+ * @generated NOT
+ */
+ protected void setLabelTextHelper(IFigure figure, String text) {
+ int posDot = -1;
+ int posDouble = -1;
+ posDot = text.lastIndexOf(".");
+ posDouble = text.indexOf(":");
+ if (posDot > -1 && posDouble > -1) {
+ String first = text.substring(0, posDouble + 1);
+ String second = text.substring(posDot + 1);
+ text = first + second;
+ }
+ if (figure instanceof WrappingLabel) {
+ ((WrappingLabel) figure).setText(text);
+ } else {
+ ((Label) figure).setText(text);
+ }
+ }
+
+ /**
+ * @generated
+ */
+ protected Image getLabelIconHelper(IFigure figure) {
+ if (figure instanceof WrappingLabel) {
+ return ((WrappingLabel) figure).getIcon();
+ } else {
+ return ((Label) figure).getIcon();
+ }
+ }
+
+ /**
+ * @generated
+ */
+ protected void setLabelIconHelper(IFigure figure, Image icon) {
+ if (figure instanceof WrappingLabel) {
+ ((WrappingLabel) figure).setIcon(icon);
+ } else {
+ ((Label) figure).setIcon(icon);
+ }
+ }
+
+ /**
+ * @generated
+ */
+ public void setLabel(IFigure figure) {
+ unregisterVisuals();
+ setFigure(figure);
+ defaultText = getLabelTextHelper(figure);
+ registerVisuals();
+ refreshVisuals();
+ }
+
+ /**
+ * @generated
+ */
+ @SuppressWarnings("rawtypes")
+ protected List getModelChildren() {
+ return Collections.EMPTY_LIST;
+ }
+
+ /**
+ * @generated
+ */
+ public IGraphicalEditPart getChildBySemanticHint(String semanticHint) {
+ return null;
+ }
+
+ /**
+ * @generated
+ */
+ protected EObject getParserElement() {
+ return resolveSemanticElement();
+ }
+
+ /**
+ * @generated
+ */
+ protected Image getLabelIcon() {
+ return null;
+ }
+
+ /**
+ * @generated
+ */
+ protected String getLabelText() {
+ String text = null;
+ EObject parserElement = getParserElement();
+ if (parserElement != null && getParser() != null) {
+ text = getParser().getPrintString(
+ new EObjectAdapter(parserElement),
+ getParserOptions().intValue());
+ }
+ if (text == null || text.length() == 0) {
+ text = defaultText;
+ }
+ return text;
+ }
+
+ /**
+ * @generated
+ */
+ public void setLabelText(String text) {
+ setLabelTextHelper(getFigure(), text);
+ Object pdEditPolicy = getEditPolicy(EditPolicy.PRIMARY_DRAG_ROLE);
+ if (pdEditPolicy instanceof ComrelTextSelectionEditPolicy) {
+ ((ComrelTextSelectionEditPolicy) pdEditPolicy).refreshFeedback();
+ }
+ Object sfEditPolicy = getEditPolicy(EditPolicy.SELECTION_FEEDBACK_ROLE);
+ if (sfEditPolicy instanceof ComrelTextSelectionEditPolicy) {
+ ((ComrelTextSelectionEditPolicy) sfEditPolicy).refreshFeedback();
+ }
+ }
+
+ /**
+ * @generated
+ */
+ public String getEditText() {
+ if (getParserElement() == null || getParser() == null) {
+ return ""; //$NON-NLS-1$
+ }
+ return getParser().getEditString(
+ new EObjectAdapter(getParserElement()),
+ getParserOptions().intValue());
+ }
+
+ /**
+ * @generated
+ */
+ protected boolean isEditable() {
+ return getParser() != null;
+ }
+
+ /**
+ * @generated
+ */
+ public ICellEditorValidator getEditTextValidator() {
+ return new ICellEditorValidator() {
+
+ public String isValid(final Object value) {
+ if (value instanceof String) {
+ final EObject element = getParserElement();
+ final IParser parser = getParser();
+ try {
+ IParserEditStatus valid = (IParserEditStatus) getEditingDomain()
+ .runExclusive(
+ new RunnableWithResult.Impl<IParserEditStatus>() {
+
+ public void run() {
+ setResult(parser
+ .isValidEditString(
+ new EObjectAdapter(
+ element),
+ (String) value));
+ }
+ });
+ return valid.getCode() == ParserEditStatus.EDITABLE ? null
+ : valid.getMessage();
+ } catch (InterruptedException ie) {
+ ie.printStackTrace();
+ }
+ }
+
+ // shouldn't get here
+ return null;
+ }
+ };
+ }
+
+ /**
+ * @generated
+ */
+ public IContentAssistProcessor getCompletionProcessor() {
+ if (getParserElement() == null || getParser() == null) {
+ return null;
+ }
+ return getParser().getCompletionProcessor(
+ new EObjectAdapter(getParserElement()));
+ }
+
+ /**
+ * @generated
+ */
+ public ParserOptions getParserOptions() {
+ return ParserOptions.NONE;
+ }
+
+ /**
+ * @generated
+ */
+ public IParser getParser() {
+ if (parser == null) {
+ parser = ComrelParserProvider
+ .getParser(
+ ComrelElementTypes.SingleInputPort_3005,
+ getParserElement(),
+ ComrelVisualIDRegistry
+ .getType(comrel.diagram.edit.parts.SingleInputPortNameType3EditPart.VISUAL_ID));
+ }
+ return parser;
+ }
+
+ /**
+ * @generated
+ */
+ protected DirectEditManager getManager() {
+ if (manager == null) {
+ setManager(new TextDirectEditManager(this,
+ TextDirectEditManager.getTextCellEditorClass(this),
+ ComrelEditPartFactory.getTextCellEditorLocator(this)));
+ }
+ return manager;
+ }
+
+ /**
+ * @generated
+ */
+ protected void setManager(DirectEditManager manager) {
+ this.manager = manager;
+ }
+
+ /**
+ * @generated
+ */
+ protected void performDirectEdit() {
+ getManager().show();
+ }
+
+ /**
+ * @generated
+ */
+ protected void performDirectEdit(Point eventLocation) {
+ if (getManager().getClass() == TextDirectEditManager.class) {
+ ((TextDirectEditManager) getManager()).show(eventLocation
+ .getSWTPoint());
+ }
+ }
+
+ /**
+ * @generated
+ */
+ private void performDirectEdit(char initialCharacter) {
+ if (getManager() instanceof TextDirectEditManager) {
+ ((TextDirectEditManager) getManager()).show(initialCharacter);
+ } else {
+ performDirectEdit();
+ }
+ }
+
+ /**
+ * @generated
+ */
+ protected void performDirectEditRequest(Request request) {
+ final Request theRequest = request;
+ try {
+ getEditingDomain().runExclusive(new Runnable() {
+
+ public void run() {
+ if (isActive() && isEditable()) {
+ if (theRequest
+ .getExtendedData()
+ .get(RequestConstants.REQ_DIRECTEDIT_EXTENDEDDATA_INITIAL_CHAR) instanceof Character) {
+ Character initialChar = (Character) theRequest
+ .getExtendedData()
+ .get(RequestConstants.REQ_DIRECTEDIT_EXTENDEDDATA_INITIAL_CHAR);
+ performDirectEdit(initialChar.charValue());
+ } else if ((theRequest instanceof DirectEditRequest)
+ && (getEditText().equals(getLabelText()))) {
+ DirectEditRequest editRequest = (DirectEditRequest) theRequest;
+ performDirectEdit(editRequest.getLocation());
+ } else {
+ performDirectEdit();
+ }
+ }
+ }
+ });
+ } catch (InterruptedException e) {
+ e.printStackTrace();
+ }
+ }
+
+ /**
+ * @generated
+ */
+ protected void refreshVisuals() {
+ super.refreshVisuals();
+ refreshLabel();
+ refreshFont();
+ refreshFontColor();
+ refreshUnderline();
+ refreshStrikeThrough();
+ }
+
+ /**
+ * @generated
+ */
+ protected void refreshLabel() {
+ setLabelTextHelper(getFigure(), getLabelText());
+ setLabelIconHelper(getFigure(), getLabelIcon());
+ Object pdEditPolicy = getEditPolicy(EditPolicy.PRIMARY_DRAG_ROLE);
+ if (pdEditPolicy instanceof ComrelTextSelectionEditPolicy) {
+ ((ComrelTextSelectionEditPolicy) pdEditPolicy).refreshFeedback();
+ }
+ Object sfEditPolicy = getEditPolicy(EditPolicy.SELECTION_FEEDBACK_ROLE);
+ if (sfEditPolicy instanceof ComrelTextSelectionEditPolicy) {
+ ((ComrelTextSelectionEditPolicy) sfEditPolicy).refreshFeedback();
+ }
+ }
+
+ /**
+ * @generated
+ */
+ protected void refreshUnderline() {
+ FontStyle style = (FontStyle) getFontStyleOwnerView().getStyle(
+ NotationPackage.eINSTANCE.getFontStyle());
+ if (style != null && getFigure() instanceof WrappingLabel) {
+ ((WrappingLabel) getFigure()).setTextUnderline(style.isUnderline());
+ }
+ }
+
+ /**
+ * @generated
+ */
+ protected void refreshStrikeThrough() {
+ FontStyle style = (FontStyle) getFontStyleOwnerView().getStyle(
+ NotationPackage.eINSTANCE.getFontStyle());
+ if (style != null && getFigure() instanceof WrappingLabel) {
+ ((WrappingLabel) getFigure()).setTextStrikeThrough(style
+ .isStrikeThrough());
+ }
+ }
+
+ /**
+ * @generated
+ */
+ protected void refreshFont() {
+ FontStyle style = (FontStyle) getFontStyleOwnerView().getStyle(
+ NotationPackage.eINSTANCE.getFontStyle());
+ if (style != null) {
+ FontData fontData = new FontData(style.getFontName(),
+ style.getFontHeight(), (style.isBold() ? SWT.BOLD
+ : SWT.NORMAL)
+ | (style.isItalic() ? SWT.ITALIC : SWT.NORMAL));
+ setFont(fontData);
+ }
+ }
+
+ /**
+ * @generated
+ */
+ protected void setFontColor(Color color) {
+ getFigure().setForegroundColor(color);
+ }
+
+ /**
+ * @generated
+ */
+ protected void addSemanticListeners() {
+ if (getParser() instanceof ISemanticParser) {
+ EObject element = resolveSemanticElement();
+ parserElements = ((ISemanticParser) getParser())
+ .getSemanticElementsBeingParsed(element);
+ for (int i = 0; i < parserElements.size(); i++) {
+ addListenerFilter(
+ "SemanticModel" + i, this, (EObject) parserElements.get(i)); //$NON-NLS-1$
+ }
+ } else {
+ super.addSemanticListeners();
+ }
+ }
+
+ /**
+ * @generated
+ */
+ protected void removeSemanticListeners() {
+ if (parserElements != null) {
+ for (int i = 0; i < parserElements.size(); i++) {
+ removeListenerFilter("SemanticModel" + i); //$NON-NLS-1$
+ }
+ } else {
+ super.removeSemanticListeners();
+ }
+ }
+
+ /**
+ * @generated
+ */
+ protected AccessibleEditPart getAccessibleEditPart() {
+ if (accessibleEP == null) {
+ accessibleEP = new AccessibleGraphicalEditPart() {
+
+ public void getName(AccessibleEvent e) {
+ e.result = getLabelTextHelper(getFigure());
+ }
+ };
+ }
+ return accessibleEP;
+ }
+
+ /**
+ * @generated
+ */
+ private View getFontStyleOwnerView() {
+ return getPrimaryView();
+ }
+
+ /**
+ * @generated
+ */
+ protected void handleNotificationEvent(Notification event) {
+ Object feature = event.getFeature();
+ if (NotationPackage.eINSTANCE.getFontStyle_FontColor().equals(feature)) {
+ Integer c = (Integer) event.getNewValue();
+ setFontColor(DiagramColorRegistry.getInstance().getColor(c));
+ } else if (NotationPackage.eINSTANCE.getFontStyle_Underline().equals(
+ feature)) {
+ refreshUnderline();
+ } else if (NotationPackage.eINSTANCE.getFontStyle_StrikeThrough()
+ .equals(feature)) {
+ refreshStrikeThrough();
+ } else if (NotationPackage.eINSTANCE.getFontStyle_FontHeight().equals(
+ feature)
+ || NotationPackage.eINSTANCE.getFontStyle_FontName().equals(
+ feature)
+ || NotationPackage.eINSTANCE.getFontStyle_Bold()
+ .equals(feature)
+ || NotationPackage.eINSTANCE.getFontStyle_Italic().equals(
+ feature)) {
+ refreshFont();
+ } else {
+ if (getParser() != null
+ && getParser().isAffectingEvent(event,
+ getParserOptions().intValue())) {
+ refreshLabel();
+ }
+ if (getParser() instanceof ISemanticParser) {
+ ISemanticParser modelParser = (ISemanticParser) getParser();
+ if (modelParser.areSemanticElementsAffected(null, event)) {
+ removeSemanticListeners();
+ if (resolveSemanticElement() != null) {
+ addSemanticListeners();
+ }
+ refreshLabel();
+ }
+ }
+ }
+ super.handleNotificationEvent(event);
+ }
+
+ /**
+ * @generated
+ */
+ protected IFigure createFigure() {
+ IFigure label = createFigurePrim();
+ defaultText = getLabelTextHelper(label);
+ return label;
+ }
+
+ /**
+ * @generated
+ */
+ protected IFigure createFigurePrim() {
+ return new SingleInputPortLabelFigure();
+ }
+
+ /**
+ * @generated
+ */
+ public class SingleInputPortLabelFigure extends WrappingLabel {
+
+ /**
+ * @generated
+ */
+ public SingleInputPortLabelFigure() {
+ this.setText("SingleInputPort");
+ }
+
+ }
+
+}
diff --git a/org.eclipse.emf.refactor.comrel.diagram/src/comrel/diagram/edit/parts/SingleInputPortNameType4EditPart.java b/org.eclipse.emf.refactor.comrel.diagram/src/comrel/diagram/edit/parts/SingleInputPortNameType4EditPart.java
new file mode 100644
index 0000000..774b0a4
--- /dev/null
+++ b/org.eclipse.emf.refactor.comrel.diagram/src/comrel/diagram/edit/parts/SingleInputPortNameType4EditPart.java
@@ -0,0 +1,631 @@
+/*
+ *
+ */
+package comrel.diagram.edit.parts;
+
+import java.util.Collections;
+import java.util.List;
+
+import org.eclipse.draw2d.IFigure;
+import org.eclipse.draw2d.Label;
+import org.eclipse.draw2d.geometry.Point;
+import org.eclipse.draw2d.geometry.Rectangle;
+import org.eclipse.emf.common.notify.Notification;
+import org.eclipse.emf.ecore.EObject;
+import org.eclipse.emf.transaction.RunnableWithResult;
+import org.eclipse.gef.AccessibleEditPart;
+import org.eclipse.gef.EditPolicy;
+import org.eclipse.gef.Request;
+import org.eclipse.gef.requests.DirectEditRequest;
+import org.eclipse.gef.tools.DirectEditManager;
+import org.eclipse.gmf.runtime.common.ui.services.parser.IParser;
+import org.eclipse.gmf.runtime.common.ui.services.parser.IParserEditStatus;
+import org.eclipse.gmf.runtime.common.ui.services.parser.ParserEditStatus;
+import org.eclipse.gmf.runtime.common.ui.services.parser.ParserOptions;
+import org.eclipse.gmf.runtime.diagram.ui.editparts.IBorderItemEditPart;
+import org.eclipse.gmf.runtime.diagram.ui.editparts.IGraphicalEditPart;
+import org.eclipse.gmf.runtime.diagram.ui.editparts.ITextAwareEditPart;
+import org.eclipse.gmf.runtime.diagram.ui.editparts.LabelEditPart;
+import org.eclipse.gmf.runtime.diagram.ui.editpolicies.LabelDirectEditPolicy;
+import org.eclipse.gmf.runtime.diagram.ui.figures.IBorderItemLocator;
+import org.eclipse.gmf.runtime.diagram.ui.l10n.DiagramColorRegistry;
+import org.eclipse.gmf.runtime.diagram.ui.requests.RequestConstants;
+import org.eclipse.gmf.runtime.diagram.ui.tools.TextDirectEditManager;
+import org.eclipse.gmf.runtime.draw2d.ui.figures.WrappingLabel;
+import org.eclipse.gmf.runtime.emf.core.util.EObjectAdapter;
+import org.eclipse.gmf.runtime.emf.ui.services.parser.ISemanticParser;
+import org.eclipse.gmf.runtime.notation.FontStyle;
+import org.eclipse.gmf.runtime.notation.NotationPackage;
+import org.eclipse.gmf.runtime.notation.View;
+import org.eclipse.jface.text.contentassist.IContentAssistProcessor;
+import org.eclipse.jface.viewers.ICellEditorValidator;
+import org.eclipse.swt.SWT;
+import org.eclipse.swt.accessibility.AccessibleEvent;
+import org.eclipse.swt.graphics.Color;
+import org.eclipse.swt.graphics.FontData;
+import org.eclipse.swt.graphics.Image;
+
+import comrel.diagram.edit.policies.ComrelTextSelectionEditPolicy;
+import comrel.diagram.part.ComrelVisualIDRegistry;
+import comrel.diagram.providers.ComrelElementTypes;
+import comrel.diagram.providers.ComrelParserProvider;
+
+/**
+ * @generated
+ */
+public class SingleInputPortNameType4EditPart extends LabelEditPart implements
+ ITextAwareEditPart, IBorderItemEditPart {
+
+ /**
+ * @generated
+ */
+ public static final int VISUAL_ID = 5006;
+
+ /**
+ * @generated
+ */
+ private DirectEditManager manager;
+
+ /**
+ * @generated
+ */
+ private IParser parser;
+
+ /**
+ * @generated
+ */
+ private List<?> parserElements;
+
+ /**
+ * @generated
+ */
+ private String defaultText;
+
+ /**
+ * @generated
+ */
+ static {
+ registerSnapBackPosition(
+ ComrelVisualIDRegistry
+ .getType(comrel.diagram.edit.parts.SingleInputPortNameType4EditPart.VISUAL_ID),
+ new Point(0, 0));
+ }
+
+ /**
+ * @generated
+ */
+ public SingleInputPortNameType4EditPart(View view) {
+ super(view);
+ }
+
+ /**
+ * @generated
+ */
+ protected void createDefaultEditPolicies() {
+ super.createDefaultEditPolicies();
+ installEditPolicy(EditPolicy.DIRECT_EDIT_ROLE,
+ new LabelDirectEditPolicy());
+ installEditPolicy(EditPolicy.SELECTION_FEEDBACK_ROLE,
+ new ComrelTextSelectionEditPolicy());
+ }
+
+ /**
+ * @generated
+ */
+ public IBorderItemLocator getBorderItemLocator() {
+ IFigure parentFigure = getFigure().getParent();
+ if (parentFigure != null && parentFigure.getLayoutManager() != null) {
+ Object constraint = parentFigure.getLayoutManager().getConstraint(
+ getFigure());
+ return (IBorderItemLocator) constraint;
+ }
+ return null;
+ }
+
+ /**
+ * @generated
+ */
+ public void refreshBounds() {
+ int x = ((Integer) getStructuralFeatureValue(NotationPackage.eINSTANCE
+ .getLocation_X())).intValue();
+ int y = ((Integer) getStructuralFeatureValue(NotationPackage.eINSTANCE
+ .getLocation_Y())).intValue();
+ int width = ((Integer) getStructuralFeatureValue(NotationPackage.eINSTANCE
+ .getSize_Width())).intValue();
+ int height = ((Integer) getStructuralFeatureValue(NotationPackage.eINSTANCE
+ .getSize_Height())).intValue();
+ getBorderItemLocator()
+ .setConstraint(new Rectangle(x, y, width, height));
+ }
+
+ /**
+ * @generated
+ */
+ protected String getLabelTextHelper(IFigure figure) {
+ if (figure instanceof WrappingLabel) {
+ return ((WrappingLabel) figure).getText();
+ } else {
+ return ((Label) figure).getText();
+ }
+ }
+
+ /**
+ * @generated NOT
+ */
+ protected void setLabelTextHelper(IFigure figure, String text) {
+ int posDot = -1;
+ int posDouble = -1;
+ posDot = text.lastIndexOf(".");
+ posDouble = text.indexOf(":");
+ if (posDot > -1 && posDouble > -1) {
+ String first = text.substring(0, posDouble + 1);
+ String second = text.substring(posDot + 1);
+ text = first + second;
+ }
+ if (figure instanceof WrappingLabel) {
+ ((WrappingLabel) figure).setText(text);
+ } else {
+ ((Label) figure).setText(text);
+ }
+ }
+
+ /**
+ * @generated
+ */
+ protected Image getLabelIconHelper(IFigure figure) {
+ if (figure instanceof WrappingLabel) {
+ return ((WrappingLabel) figure).getIcon();
+ } else {
+ return ((Label) figure).getIcon();
+ }
+ }
+
+ /**
+ * @generated
+ */
+ protected void setLabelIconHelper(IFigure figure, Image icon) {
+ if (figure instanceof WrappingLabel) {
+ ((WrappingLabel) figure).setIcon(icon);
+ } else {
+ ((Label) figure).setIcon(icon);
+ }
+ }
+
+ /**
+ * @generated
+ */
+ public void setLabel(IFigure figure) {
+ unregisterVisuals();
+ setFigure(figure);
+ defaultText = getLabelTextHelper(figure);
+ registerVisuals();
+ refreshVisuals();
+ }
+
+ /**
+ * @generated
+ */
+ @SuppressWarnings("rawtypes")
+ protected List getModelChildren() {
+ return Collections.EMPTY_LIST;
+ }
+
+ /**
+ * @generated
+ */
+ public IGraphicalEditPart getChildBySemanticHint(String semanticHint) {
+ return null;
+ }
+
+ /**
+ * @generated
+ */
+ protected EObject getParserElement() {
+ return resolveSemanticElement();
+ }
+
+ /**
+ * @generated
+ */
+ protected Image getLabelIcon() {
+ return null;
+ }
+
+ /**
+ * @generated
+ */
+ protected String getLabelText() {
+ String text = null;
+ EObject parserElement = getParserElement();
+ if (parserElement != null && getParser() != null) {
+ text = getParser().getPrintString(
+ new EObjectAdapter(parserElement),
+ getParserOptions().intValue());
+ }
+ if (text == null || text.length() == 0) {
+ text = defaultText;
+ }
+ return text;
+ }
+
+ /**
+ * @generated
+ */
+ public void setLabelText(String text) {
+ setLabelTextHelper(getFigure(), text);
+ Object pdEditPolicy = getEditPolicy(EditPolicy.PRIMARY_DRAG_ROLE);
+ if (pdEditPolicy instanceof ComrelTextSelectionEditPolicy) {
+ ((ComrelTextSelectionEditPolicy) pdEditPolicy).refreshFeedback();
+ }
+ Object sfEditPolicy = getEditPolicy(EditPolicy.SELECTION_FEEDBACK_ROLE);
+ if (sfEditPolicy instanceof ComrelTextSelectionEditPolicy) {
+ ((ComrelTextSelectionEditPolicy) sfEditPolicy).refreshFeedback();
+ }
+ }
+
+ /**
+ * @generated
+ */
+ public String getEditText() {
+ if (getParserElement() == null || getParser() == null) {
+ return ""; //$NON-NLS-1$
+ }
+ return getParser().getEditString(
+ new EObjectAdapter(getParserElement()),
+ getParserOptions().intValue());
+ }
+
+ /**
+ * @generated
+ */
+ protected boolean isEditable() {
+ return getParser() != null;
+ }
+
+ /**
+ * @generated
+ */
+ public ICellEditorValidator getEditTextValidator() {
+ return new ICellEditorValidator() {
+
+ public String isValid(final Object value) {
+ if (value instanceof String) {
+ final EObject element = getParserElement();
+ final IParser parser = getParser();
+ try {
+ IParserEditStatus valid = (IParserEditStatus) getEditingDomain()
+ .runExclusive(
+ new RunnableWithResult.Impl<IParserEditStatus>() {
+
+ public void run() {
+ setResult(parser
+ .isValidEditString(
+ new EObjectAdapter(
+ element),
+ (String) value));
+ }
+ });
+ return valid.getCode() == ParserEditStatus.EDITABLE ? null
+ : valid.getMessage();
+ } catch (InterruptedException ie) {
+ ie.printStackTrace();
+ }
+ }
+
+ // shouldn't get here
+ return null;
+ }
+ };
+ }
+
+ /**
+ * @generated
+ */
+ public IContentAssistProcessor getCompletionProcessor() {
+ if (getParserElement() == null || getParser() == null) {
+ return null;
+ }
+ return getParser().getCompletionProcessor(
+ new EObjectAdapter(getParserElement()));
+ }
+
+ /**
+ * @generated
+ */
+ public ParserOptions getParserOptions() {
+ return ParserOptions.NONE;
+ }
+
+ /**
+ * @generated
+ */
+ public IParser getParser() {
+ if (parser == null) {
+ parser = ComrelParserProvider
+ .getParser(
+ ComrelElementTypes.SingleInputPort_3009,
+ getParserElement(),
+ ComrelVisualIDRegistry
+ .getType(comrel.diagram.edit.parts.SingleInputPortNameType4EditPart.VISUAL_ID));
+ }
+ return parser;
+ }
+
+ /**
+ * @generated
+ */
+ protected DirectEditManager getManager() {
+ if (manager == null) {
+ setManager(new TextDirectEditManager(this,
+ TextDirectEditManager.getTextCellEditorClass(this),
+ ComrelEditPartFactory.getTextCellEditorLocator(this)));
+ }
+ return manager;
+ }
+
+ /**
+ * @generated
+ */
+ protected void setManager(DirectEditManager manager) {
+ this.manager = manager;
+ }
+
+ /**
+ * @generated
+ */
+ protected void performDirectEdit() {
+ getManager().show();
+ }
+
+ /**
+ * @generated
+ */
+ protected void performDirectEdit(Point eventLocation) {
+ if (getManager().getClass() == TextDirectEditManager.class) {
+ ((TextDirectEditManager) getManager()).show(eventLocation
+ .getSWTPoint());
+ }
+ }
+
+ /**
+ * @generated
+ */
+ private void performDirectEdit(char initialCharacter) {
+ if (getManager() instanceof TextDirectEditManager) {
+ ((TextDirectEditManager) getManager()).show(initialCharacter);
+ } else {
+ performDirectEdit();
+ }
+ }
+
+ /**
+ * @generated
+ */
+ protected void performDirectEditRequest(Request request) {
+ final Request theRequest = request;
+ try {
+ getEditingDomain().runExclusive(new Runnable() {
+
+ public void run() {
+ if (isActive() && isEditable()) {
+ if (theRequest
+ .getExtendedData()
+ .get(RequestConstants.REQ_DIRECTEDIT_EXTENDEDDATA_INITIAL_CHAR) instanceof Character) {
+ Character initialChar = (Character) theRequest
+ .getExtendedData()
+ .get(RequestConstants.REQ_DIRECTEDIT_EXTENDEDDATA_INITIAL_CHAR);
+ performDirectEdit(initialChar.charValue());
+ } else if ((theRequest instanceof DirectEditRequest)
+ && (getEditText().equals(getLabelText()))) {
+ DirectEditRequest editRequest = (DirectEditRequest) theRequest;
+ performDirectEdit(editRequest.getLocation());
+ } else {
+ performDirectEdit();
+ }
+ }
+ }
+ });
+ } catch (InterruptedException e) {
+ e.printStackTrace();
+ }
+ }
+
+ /**
+ * @generated
+ */
+ protected void refreshVisuals() {
+ super.refreshVisuals();
+ refreshLabel();
+ refreshFont();
+ refreshFontColor();
+ refreshUnderline();
+ refreshStrikeThrough();
+ }
+
+ /**
+ * @generated
+ */
+ protected void refreshLabel() {
+ setLabelTextHelper(getFigure(), getLabelText());
+ setLabelIconHelper(getFigure(), getLabelIcon());
+ Object pdEditPolicy = getEditPolicy(EditPolicy.PRIMARY_DRAG_ROLE);
+ if (pdEditPolicy instanceof ComrelTextSelectionEditPolicy) {
+ ((ComrelTextSelectionEditPolicy) pdEditPolicy).refreshFeedback();
+ }
+ Object sfEditPolicy = getEditPolicy(EditPolicy.SELECTION_FEEDBACK_ROLE);
+ if (sfEditPolicy instanceof ComrelTextSelectionEditPolicy) {
+ ((ComrelTextSelectionEditPolicy) sfEditPolicy).refreshFeedback();
+ }
+ }
+
+ /**
+ * @generated
+ */
+ protected void refreshUnderline() {
+ FontStyle style = (FontStyle) getFontStyleOwnerView().getStyle(
+ NotationPackage.eINSTANCE.getFontStyle());
+ if (style != null && getFigure() instanceof WrappingLabel) {
+ ((WrappingLabel) getFigure()).setTextUnderline(style.isUnderline());
+ }
+ }
+
+ /**
+ * @generated
+ */
+ protected void refreshStrikeThrough() {
+ FontStyle style = (FontStyle) getFontStyleOwnerView().getStyle(
+ NotationPackage.eINSTANCE.getFontStyle());
+ if (style != null && getFigure() instanceof WrappingLabel) {
+ ((WrappingLabel) getFigure()).setTextStrikeThrough(style
+ .isStrikeThrough());
+ }
+ }
+
+ /**
+ * @generated
+ */
+ protected void refreshFont() {
+ FontStyle style = (FontStyle) getFontStyleOwnerView().getStyle(
+ NotationPackage.eINSTANCE.getFontStyle());
+ if (style != null) {
+ FontData fontData = new FontData(style.getFontName(),
+ style.getFontHeight(), (style.isBold() ? SWT.BOLD
+ : SWT.NORMAL)
+ | (style.isItalic() ? SWT.ITALIC : SWT.NORMAL));
+ setFont(fontData);
+ }
+ }
+
+ /**
+ * @generated
+ */
+ protected void setFontColor(Color color) {
+ getFigure().setForegroundColor(color);
+ }
+
+ /**
+ * @generated
+ */
+ protected void addSemanticListeners() {
+ if (getParser() instanceof ISemanticParser) {
+ EObject element = resolveSemanticElement();
+ parserElements = ((ISemanticParser) getParser())
+ .getSemanticElementsBeingParsed(element);
+ for (int i = 0; i < parserElements.size(); i++) {
+ addListenerFilter(
+ "SemanticModel" + i, this, (EObject) parserElements.get(i)); //$NON-NLS-1$
+ }
+ } else {
+ super.addSemanticListeners();
+ }
+ }
+
+ /**
+ * @generated
+ */
+ protected void removeSemanticListeners() {
+ if (parserElements != null) {
+ for (int i = 0; i < parserElements.size(); i++) {
+ removeListenerFilter("SemanticModel" + i); //$NON-NLS-1$
+ }
+ } else {
+ super.removeSemanticListeners();
+ }
+ }
+
+ /**
+ * @generated
+ */
+ protected AccessibleEditPart getAccessibleEditPart() {
+ if (accessibleEP == null) {
+ accessibleEP = new AccessibleGraphicalEditPart() {
+
+ public void getName(AccessibleEvent e) {
+ e.result = getLabelTextHelper(getFigure());
+ }
+ };
+ }
+ return accessibleEP;
+ }
+
+ /**
+ * @generated
+ */
+ private View getFontStyleOwnerView() {
+ return getPrimaryView();
+ }
+
+ /**
+ * @generated
+ */
+ protected void handleNotificationEvent(Notification event) {
+ Object feature = event.getFeature();
+ if (NotationPackage.eINSTANCE.getFontStyle_FontColor().equals(feature)) {
+ Integer c = (Integer) event.getNewValue();
+ setFontColor(DiagramColorRegistry.getInstance().getColor(c));
+ } else if (NotationPackage.eINSTANCE.getFontStyle_Underline().equals(
+ feature)) {
+ refreshUnderline();
+ } else if (NotationPackage.eINSTANCE.getFontStyle_StrikeThrough()
+ .equals(feature)) {
+ refreshStrikeThrough();
+ } else if (NotationPackage.eINSTANCE.getFontStyle_FontHeight().equals(
+ feature)
+ || NotationPackage.eINSTANCE.getFontStyle_FontName().equals(
+ feature)
+ || NotationPackage.eINSTANCE.getFontStyle_Bold()
+ .equals(feature)
+ || NotationPackage.eINSTANCE.getFontStyle_Italic().equals(
+ feature)) {
+ refreshFont();
+ } else {
+ if (getParser() != null
+ && getParser().isAffectingEvent(event,
+ getParserOptions().intValue())) {
+ refreshLabel();
+ }
+ if (getParser() instanceof ISemanticParser) {
+ ISemanticParser modelParser = (ISemanticParser) getParser();
+ if (modelParser.areSemanticElementsAffected(null, event)) {
+ removeSemanticListeners();
+ if (resolveSemanticElement() != null) {
+ addSemanticListeners();
+ }
+ refreshLabel();
+ }
+ }
+ }
+ super.handleNotificationEvent(event);
+ }
+
+ /**
+ * @generated
+ */
+ protected IFigure createFigure() {
+ IFigure label = createFigurePrim();
+ defaultText = getLabelTextHelper(label);
+ return label;
+ }
+
+ /**
+ * @generated
+ */
+ protected IFigure createFigurePrim() {
+ return new SingleInputPortLabelFigure();
+ }
+
+ /**
+ * @generated
+ */
+ public class SingleInputPortLabelFigure extends WrappingLabel {
+
+ /**
+ * @generated
+ */
+ public SingleInputPortLabelFigure() {
+ this.setText("SingleInputPort");
+ }
+
+ }
+
+}
diff --git a/org.eclipse.emf.refactor.comrel.diagram/src/comrel/diagram/edit/parts/SingleInputPortNameType5EditPart.java b/org.eclipse.emf.refactor.comrel.diagram/src/comrel/diagram/edit/parts/SingleInputPortNameType5EditPart.java
new file mode 100644
index 0000000..0387113
--- /dev/null
+++ b/org.eclipse.emf.refactor.comrel.diagram/src/comrel/diagram/edit/parts/SingleInputPortNameType5EditPart.java
@@ -0,0 +1,631 @@
+/*
+ *
+ */
+package comrel.diagram.edit.parts;
+
+import java.util.Collections;
+import java.util.List;
+
+import org.eclipse.draw2d.IFigure;
+import org.eclipse.draw2d.Label;
+import org.eclipse.draw2d.geometry.Point;
+import org.eclipse.draw2d.geometry.Rectangle;
+import org.eclipse.emf.common.notify.Notification;
+import org.eclipse.emf.ecore.EObject;
+import org.eclipse.emf.transaction.RunnableWithResult;
+import org.eclipse.gef.AccessibleEditPart;
+import org.eclipse.gef.EditPolicy;
+import org.eclipse.gef.Request;
+import org.eclipse.gef.requests.DirectEditRequest;
+import org.eclipse.gef.tools.DirectEditManager;
+import org.eclipse.gmf.runtime.common.ui.services.parser.IParser;
+import org.eclipse.gmf.runtime.common.ui.services.parser.IParserEditStatus;
+import org.eclipse.gmf.runtime.common.ui.services.parser.ParserEditStatus;
+import org.eclipse.gmf.runtime.common.ui.services.parser.ParserOptions;
+import org.eclipse.gmf.runtime.diagram.ui.editparts.IBorderItemEditPart;
+import org.eclipse.gmf.runtime.diagram.ui.editparts.IGraphicalEditPart;
+import org.eclipse.gmf.runtime.diagram.ui.editparts.ITextAwareEditPart;
+import org.eclipse.gmf.runtime.diagram.ui.editparts.LabelEditPart;
+import org.eclipse.gmf.runtime.diagram.ui.editpolicies.LabelDirectEditPolicy;
+import org.eclipse.gmf.runtime.diagram.ui.figures.IBorderItemLocator;
+import org.eclipse.gmf.runtime.diagram.ui.l10n.DiagramColorRegistry;
+import org.eclipse.gmf.runtime.diagram.ui.requests.RequestConstants;
+import org.eclipse.gmf.runtime.diagram.ui.tools.TextDirectEditManager;
+import org.eclipse.gmf.runtime.draw2d.ui.figures.WrappingLabel;
+import org.eclipse.gmf.runtime.emf.core.util.EObjectAdapter;
+import org.eclipse.gmf.runtime.emf.ui.services.parser.ISemanticParser;
+import org.eclipse.gmf.runtime.notation.FontStyle;
+import org.eclipse.gmf.runtime.notation.NotationPackage;
+import org.eclipse.gmf.runtime.notation.View;
+import org.eclipse.jface.text.contentassist.IContentAssistProcessor;
+import org.eclipse.jface.viewers.ICellEditorValidator;
+import org.eclipse.swt.SWT;
+import org.eclipse.swt.accessibility.AccessibleEvent;
+import org.eclipse.swt.graphics.Color;
+import org.eclipse.swt.graphics.FontData;
+import org.eclipse.swt.graphics.Image;
+
+import comrel.diagram.edit.policies.ComrelTextSelectionEditPolicy;
+import comrel.diagram.part.ComrelVisualIDRegistry;
+import comrel.diagram.providers.ComrelElementTypes;
+import comrel.diagram.providers.ComrelParserProvider;
+
+/**
+ * @generated
+ */
+public class SingleInputPortNameType5EditPart extends LabelEditPart implements
+ ITextAwareEditPart, IBorderItemEditPart {
+
+ /**
+ * @generated
+ */
+ public static final int VISUAL_ID = 5010;
+
+ /**
+ * @generated
+ */
+ private DirectEditManager manager;
+
+ /**
+ * @generated
+ */
+ private IParser parser;
+
+ /**
+ * @generated
+ */
+ private List<?> parserElements;
+
+ /**
+ * @generated
+ */
+ private String defaultText;
+
+ /**
+ * @generated
+ */
+ static {
+ registerSnapBackPosition(
+ ComrelVisualIDRegistry
+ .getType(comrel.diagram.edit.parts.SingleInputPortNameType5EditPart.VISUAL_ID),
+ new Point(0, 0));
+ }
+
+ /**
+ * @generated
+ */
+ public SingleInputPortNameType5EditPart(View view) {
+ super(view);
+ }
+
+ /**
+ * @generated
+ */
+ protected void createDefaultEditPolicies() {
+ super.createDefaultEditPolicies();
+ installEditPolicy(EditPolicy.DIRECT_EDIT_ROLE,
+ new LabelDirectEditPolicy());
+ installEditPolicy(EditPolicy.SELECTION_FEEDBACK_ROLE,
+ new ComrelTextSelectionEditPolicy());
+ }
+
+ /**
+ * @generated
+ */
+ public IBorderItemLocator getBorderItemLocator() {
+ IFigure parentFigure = getFigure().getParent();
+ if (parentFigure != null && parentFigure.getLayoutManager() != null) {
+ Object constraint = parentFigure.getLayoutManager().getConstraint(
+ getFigure());
+ return (IBorderItemLocator) constraint;
+ }
+ return null;
+ }
+
+ /**
+ * @generated
+ */
+ public void refreshBounds() {
+ int x = ((Integer) getStructuralFeatureValue(NotationPackage.eINSTANCE
+ .getLocation_X())).intValue();
+ int y = ((Integer) getStructuralFeatureValue(NotationPackage.eINSTANCE
+ .getLocation_Y())).intValue();
+ int width = ((Integer) getStructuralFeatureValue(NotationPackage.eINSTANCE
+ .getSize_Width())).intValue();
+ int height = ((Integer) getStructuralFeatureValue(NotationPackage.eINSTANCE
+ .getSize_Height())).intValue();
+ getBorderItemLocator()
+ .setConstraint(new Rectangle(x, y, width, height));
+ }
+
+ /**
+ * @generated
+ */
+ protected String getLabelTextHelper(IFigure figure) {
+ if (figure instanceof WrappingLabel) {
+ return ((WrappingLabel) figure).getText();
+ } else {
+ return ((Label) figure).getText();
+ }
+ }
+
+ /**
+ * @generated NOT
+ */
+ protected void setLabelTextHelper(IFigure figure, String text) {
+ int posDot = -1;
+ int posDouble = -1;
+ posDot = text.lastIndexOf(".");
+ posDouble = text.indexOf(":");
+ if (posDot > -1 && posDouble > -1) {
+ String first = text.substring(0, posDouble + 1);
+ String second = text.substring(posDot + 1);
+ text = first + second;
+ }
+ if (figure instanceof WrappingLabel) {
+ ((WrappingLabel) figure).setText(text);
+ } else {
+ ((Label) figure).setText(text);
+ }
+ }
+
+ /**
+ * @generated
+ */
+ protected Image getLabelIconHelper(IFigure figure) {
+ if (figure instanceof WrappingLabel) {
+ return ((WrappingLabel) figure).getIcon();
+ } else {
+ return ((Label) figure).getIcon();
+ }
+ }
+
+ /**
+ * @generated
+ */
+ protected void setLabelIconHelper(IFigure figure, Image icon) {
+ if (figure instanceof WrappingLabel) {
+ ((WrappingLabel) figure).setIcon(icon);
+ } else {
+ ((Label) figure).setIcon(icon);
+ }
+ }
+
+ /**
+ * @generated
+ */
+ public void setLabel(IFigure figure) {
+ unregisterVisuals();
+ setFigure(figure);
+ defaultText = getLabelTextHelper(figure);
+ registerVisuals();
+ refreshVisuals();
+ }
+
+ /**
+ * @generated
+ */
+ @SuppressWarnings("rawtypes")
+ protected List getModelChildren() {
+ return Collections.EMPTY_LIST;
+ }
+
+ /**
+ * @generated
+ */
+ public IGraphicalEditPart getChildBySemanticHint(String semanticHint) {
+ return null;
+ }
+
+ /**
+ * @generated
+ */
+ protected EObject getParserElement() {
+ return resolveSemanticElement();
+ }
+
+ /**
+ * @generated
+ */
+ protected Image getLabelIcon() {
+ return null;
+ }
+
+ /**
+ * @generated
+ */
+ protected String getLabelText() {
+ String text = null;
+ EObject parserElement = getParserElement();
+ if (parserElement != null && getParser() != null) {
+ text = getParser().getPrintString(
+ new EObjectAdapter(parserElement),
+ getParserOptions().intValue());
+ }
+ if (text == null || text.length() == 0) {
+ text = defaultText;
+ }
+ return text;
+ }
+
+ /**
+ * @generated
+ */
+ public void setLabelText(String text) {
+ setLabelTextHelper(getFigure(), text);
+ Object pdEditPolicy = getEditPolicy(EditPolicy.PRIMARY_DRAG_ROLE);
+ if (pdEditPolicy instanceof ComrelTextSelectionEditPolicy) {
+ ((ComrelTextSelectionEditPolicy) pdEditPolicy).refreshFeedback();
+ }
+ Object sfEditPolicy = getEditPolicy(EditPolicy.SELECTION_FEEDBACK_ROLE);
+ if (sfEditPolicy instanceof ComrelTextSelectionEditPolicy) {
+ ((ComrelTextSelectionEditPolicy) sfEditPolicy).refreshFeedback();
+ }
+ }
+
+ /**
+ * @generated
+ */
+ public String getEditText() {
+ if (getParserElement() == null || getParser() == null) {
+ return ""; //$NON-NLS-1$
+ }
+ return getParser().getEditString(
+ new EObjectAdapter(getParserElement()),
+ getParserOptions().intValue());
+ }
+
+ /**
+ * @generated
+ */
+ protected boolean isEditable() {
+ return getParser() != null;
+ }
+
+ /**
+ * @generated
+ */
+ public ICellEditorValidator getEditTextValidator() {
+ return new ICellEditorValidator() {
+
+ public String isValid(final Object value) {
+ if (value instanceof String) {
+ final EObject element = getParserElement();
+ final IParser parser = getParser();
+ try {
+ IParserEditStatus valid = (IParserEditStatus) getEditingDomain()
+ .runExclusive(
+ new RunnableWithResult.Impl<IParserEditStatus>() {
+
+ public void run() {
+ setResult(parser
+ .isValidEditString(
+ new EObjectAdapter(
+ element),
+ (String) value));
+ }
+ });
+ return valid.getCode() == ParserEditStatus.EDITABLE ? null
+ : valid.getMessage();
+ } catch (InterruptedException ie) {
+ ie.printStackTrace();
+ }
+ }
+
+ // shouldn't get here
+ return null;
+ }
+ };
+ }
+
+ /**
+ * @generated
+ */
+ public IContentAssistProcessor getCompletionProcessor() {
+ if (getParserElement() == null || getParser() == null) {
+ return null;
+ }
+ return getParser().getCompletionProcessor(
+ new EObjectAdapter(getParserElement()));
+ }
+
+ /**
+ * @generated
+ */
+ public ParserOptions getParserOptions() {
+ return ParserOptions.NONE;
+ }
+
+ /**
+ * @generated
+ */
+ public IParser getParser() {
+ if (parser == null) {
+ parser = ComrelParserProvider
+ .getParser(
+ ComrelElementTypes.SingleInputPort_3013,
+ getParserElement(),
+ ComrelVisualIDRegistry
+ .getType(comrel.diagram.edit.parts.SingleInputPortNameType5EditPart.VISUAL_ID));
+ }
+ return parser;
+ }
+
+ /**
+ * @generated
+ */
+ protected DirectEditManager getManager() {
+ if (manager == null) {
+ setManager(new TextDirectEditManager(this,
+ TextDirectEditManager.getTextCellEditorClass(this),
+ ComrelEditPartFactory.getTextCellEditorLocator(this)));
+ }
+ return manager;
+ }
+
+ /**
+ * @generated
+ */
+ protected void setManager(DirectEditManager manager) {
+ this.manager = manager;
+ }
+
+ /**
+ * @generated
+ */
+ protected void performDirectEdit() {
+ getManager().show();
+ }
+
+ /**
+ * @generated
+ */
+ protected void performDirectEdit(Point eventLocation) {
+ if (getManager().getClass() == TextDirectEditManager.class) {
+ ((TextDirectEditManager) getManager()).show(eventLocation
+ .getSWTPoint());
+ }
+ }
+
+ /**
+ * @generated
+ */
+ private void performDirectEdit(char initialCharacter) {
+ if (getManager() instanceof TextDirectEditManager) {
+ ((TextDirectEditManager) getManager()).show(initialCharacter);
+ } else {
+ performDirectEdit();
+ }
+ }
+
+ /**
+ * @generated
+ */
+ protected void performDirectEditRequest(Request request) {
+ final Request theRequest = request;
+ try {
+ getEditingDomain().runExclusive(new Runnable() {
+
+ public void run() {
+ if (isActive() && isEditable()) {
+ if (theRequest
+ .getExtendedData()
+ .get(RequestConstants.REQ_DIRECTEDIT_EXTENDEDDATA_INITIAL_CHAR) instanceof Character) {
+ Character initialChar = (Character) theRequest
+ .getExtendedData()
+ .get(RequestConstants.REQ_DIRECTEDIT_EXTENDEDDATA_INITIAL_CHAR);
+ performDirectEdit(initialChar.charValue());
+ } else if ((theRequest instanceof DirectEditRequest)
+ && (getEditText().equals(getLabelText()))) {
+ DirectEditRequest editRequest = (DirectEditRequest) theRequest;
+ performDirectEdit(editRequest.getLocation());
+ } else {
+ performDirectEdit();
+ }
+ }
+ }
+ });
+ } catch (InterruptedException e) {
+ e.printStackTrace();
+ }
+ }
+
+ /**
+ * @generated
+ */
+ protected void refreshVisuals() {
+ super.refreshVisuals();
+ refreshLabel();
+ refreshFont();
+ refreshFontColor();
+ refreshUnderline();
+ refreshStrikeThrough();
+ }
+
+ /**
+ * @generated
+ */
+ protected void refreshLabel() {
+ setLabelTextHelper(getFigure(), getLabelText());
+ setLabelIconHelper(getFigure(), getLabelIcon());
+ Object pdEditPolicy = getEditPolicy(EditPolicy.PRIMARY_DRAG_ROLE);
+ if (pdEditPolicy instanceof ComrelTextSelectionEditPolicy) {
+ ((ComrelTextSelectionEditPolicy) pdEditPolicy).refreshFeedback();
+ }
+ Object sfEditPolicy = getEditPolicy(EditPolicy.SELECTION_FEEDBACK_ROLE);
+ if (sfEditPolicy instanceof ComrelTextSelectionEditPolicy) {
+ ((ComrelTextSelectionEditPolicy) sfEditPolicy).refreshFeedback();
+ }
+ }
+
+ /**
+ * @generated
+ */
+ protected void refreshUnderline() {
+ FontStyle style = (FontStyle) getFontStyleOwnerView().getStyle(
+ NotationPackage.eINSTANCE.getFontStyle());
+ if (style != null && getFigure() instanceof WrappingLabel) {
+ ((WrappingLabel) getFigure()).setTextUnderline(style.isUnderline());
+ }
+ }
+
+ /**
+ * @generated
+ */
+ protected void refreshStrikeThrough() {
+ FontStyle style = (FontStyle) getFontStyleOwnerView().getStyle(
+ NotationPackage.eINSTANCE.getFontStyle());
+ if (style != null && getFigure() instanceof WrappingLabel) {
+ ((WrappingLabel) getFigure()).setTextStrikeThrough(style
+ .isStrikeThrough());
+ }
+ }
+
+ /**
+ * @generated
+ */
+ protected void refreshFont() {
+ FontStyle style = (FontStyle) getFontStyleOwnerView().getStyle(
+ NotationPackage.eINSTANCE.getFontStyle());
+ if (style != null) {
+ FontData fontData = new FontData(style.getFontName(),
+ style.getFontHeight(), (style.isBold() ? SWT.BOLD
+ : SWT.NORMAL)
+ | (style.isItalic() ? SWT.ITALIC : SWT.NORMAL));
+ setFont(fontData);
+ }
+ }
+
+ /**
+ * @generated
+ */
+ protected void setFontColor(Color color) {
+ getFigure().setForegroundColor(color);
+ }
+
+ /**
+ * @generated
+ */
+ protected void addSemanticListeners() {
+ if (getParser() instanceof ISemanticParser) {
+ EObject element = resolveSemanticElement();
+ parserElements = ((ISemanticParser) getParser())
+ .getSemanticElementsBeingParsed(element);
+ for (int i = 0; i < parserElements.size(); i++) {
+ addListenerFilter(
+ "SemanticModel" + i, this, (EObject) parserElements.get(i)); //$NON-NLS-1$
+ }
+ } else {
+ super.addSemanticListeners();
+ }
+ }
+
+ /**
+ * @generated
+ */
+ protected void removeSemanticListeners() {
+ if (parserElements != null) {
+ for (int i = 0; i < parserElements.size(); i++) {
+ removeListenerFilter("SemanticModel" + i); //$NON-NLS-1$
+ }
+ } else {
+ super.removeSemanticListeners();
+ }
+ }
+
+ /**
+ * @generated
+ */
+ protected AccessibleEditPart getAccessibleEditPart() {
+ if (accessibleEP == null) {
+ accessibleEP = new AccessibleGraphicalEditPart() {
+
+ public void getName(AccessibleEvent e) {
+ e.result = getLabelTextHelper(getFigure());
+ }
+ };
+ }
+ return accessibleEP;
+ }
+
+ /**
+ * @generated
+ */
+ private View getFontStyleOwnerView() {
+ return getPrimaryView();
+ }
+
+ /**
+ * @generated
+ */
+ protected void handleNotificationEvent(Notification event) {
+ Object feature = event.getFeature();
+ if (NotationPackage.eINSTANCE.getFontStyle_FontColor().equals(feature)) {
+ Integer c = (Integer) event.getNewValue();
+ setFontColor(DiagramColorRegistry.getInstance().getColor(c));
+ } else if (NotationPackage.eINSTANCE.getFontStyle_Underline().equals(
+ feature)) {
+ refreshUnderline();
+ } else if (NotationPackage.eINSTANCE.getFontStyle_StrikeThrough()
+ .equals(feature)) {
+ refreshStrikeThrough();
+ } else if (NotationPackage.eINSTANCE.getFontStyle_FontHeight().equals(
+ feature)
+ || NotationPackage.eINSTANCE.getFontStyle_FontName().equals(
+ feature)
+ || NotationPackage.eINSTANCE.getFontStyle_Bold()
+ .equals(feature)
+ || NotationPackage.eINSTANCE.getFontStyle_Italic().equals(
+ feature)) {
+ refreshFont();
+ } else {
+ if (getParser() != null
+ && getParser().isAffectingEvent(event,
+ getParserOptions().intValue())) {
+ refreshLabel();
+ }
+ if (getParser() instanceof ISemanticParser) {
+ ISemanticParser modelParser = (ISemanticParser) getParser();
+ if (modelParser.areSemanticElementsAffected(null, event)) {
+ removeSemanticListeners();
+ if (resolveSemanticElement() != null) {
+ addSemanticListeners();
+ }
+ refreshLabel();
+ }
+ }
+ }
+ super.handleNotificationEvent(event);
+ }
+
+ /**
+ * @generated
+ */
+ protected IFigure createFigure() {
+ IFigure label = createFigurePrim();
+ defaultText = getLabelTextHelper(label);
+ return label;
+ }
+
+ /**
+ * @generated
+ */
+ protected IFigure createFigurePrim() {
+ return new SingleInputPortLabelFigure();
+ }
+
+ /**
+ * @generated
+ */
+ public class SingleInputPortLabelFigure extends WrappingLabel {
+
+ /**
+ * @generated
+ */
+ public SingleInputPortLabelFigure() {
+ this.setText("SingleInputPort");
+ }
+
+ }
+
+}
diff --git a/org.eclipse.emf.refactor.comrel.diagram/src/comrel/diagram/edit/parts/SingleInputPortNameType6EditPart.java b/org.eclipse.emf.refactor.comrel.diagram/src/comrel/diagram/edit/parts/SingleInputPortNameType6EditPart.java
new file mode 100644
index 0000000..7eb00d4
--- /dev/null
+++ b/org.eclipse.emf.refactor.comrel.diagram/src/comrel/diagram/edit/parts/SingleInputPortNameType6EditPart.java
@@ -0,0 +1,631 @@
+/*
+ *
+ */
+package comrel.diagram.edit.parts;
+
+import java.util.Collections;
+import java.util.List;
+
+import org.eclipse.draw2d.IFigure;
+import org.eclipse.draw2d.Label;
+import org.eclipse.draw2d.geometry.Point;
+import org.eclipse.draw2d.geometry.Rectangle;
+import org.eclipse.emf.common.notify.Notification;
+import org.eclipse.emf.ecore.EObject;
+import org.eclipse.emf.transaction.RunnableWithResult;
+import org.eclipse.gef.AccessibleEditPart;
+import org.eclipse.gef.EditPolicy;
+import org.eclipse.gef.Request;
+import org.eclipse.gef.requests.DirectEditRequest;
+import org.eclipse.gef.tools.DirectEditManager;
+import org.eclipse.gmf.runtime.common.ui.services.parser.IParser;
+import org.eclipse.gmf.runtime.common.ui.services.parser.IParserEditStatus;
+import org.eclipse.gmf.runtime.common.ui.services.parser.ParserEditStatus;
+import org.eclipse.gmf.runtime.common.ui.services.parser.ParserOptions;
+import org.eclipse.gmf.runtime.diagram.ui.editparts.IBorderItemEditPart;
+import org.eclipse.gmf.runtime.diagram.ui.editparts.IGraphicalEditPart;
+import org.eclipse.gmf.runtime.diagram.ui.editparts.ITextAwareEditPart;
+import org.eclipse.gmf.runtime.diagram.ui.editparts.LabelEditPart;
+import org.eclipse.gmf.runtime.diagram.ui.editpolicies.LabelDirectEditPolicy;
+import org.eclipse.gmf.runtime.diagram.ui.figures.IBorderItemLocator;
+import org.eclipse.gmf.runtime.diagram.ui.l10n.DiagramColorRegistry;
+import org.eclipse.gmf.runtime.diagram.ui.requests.RequestConstants;
+import org.eclipse.gmf.runtime.diagram.ui.tools.TextDirectEditManager;
+import org.eclipse.gmf.runtime.draw2d.ui.figures.WrappingLabel;
+import org.eclipse.gmf.runtime.emf.core.util.EObjectAdapter;
+import org.eclipse.gmf.runtime.emf.ui.services.parser.ISemanticParser;
+import org.eclipse.gmf.runtime.notation.FontStyle;
+import org.eclipse.gmf.runtime.notation.NotationPackage;
+import org.eclipse.gmf.runtime.notation.View;
+import org.eclipse.jface.text.contentassist.IContentAssistProcessor;
+import org.eclipse.jface.viewers.ICellEditorValidator;
+import org.eclipse.swt.SWT;
+import org.eclipse.swt.accessibility.AccessibleEvent;
+import org.eclipse.swt.graphics.Color;
+import org.eclipse.swt.graphics.FontData;
+import org.eclipse.swt.graphics.Image;
+
+import comrel.diagram.edit.policies.ComrelTextSelectionEditPolicy;
+import comrel.diagram.part.ComrelVisualIDRegistry;
+import comrel.diagram.providers.ComrelElementTypes;
+import comrel.diagram.providers.ComrelParserProvider;
+
+/**
+ * @generated
+ */
+public class SingleInputPortNameType6EditPart extends LabelEditPart implements
+ ITextAwareEditPart, IBorderItemEditPart {
+
+ /**
+ * @generated
+ */
+ public static final int VISUAL_ID = 5020;
+
+ /**
+ * @generated
+ */
+ private DirectEditManager manager;
+
+ /**
+ * @generated
+ */
+ private IParser parser;
+
+ /**
+ * @generated
+ */
+ private List<?> parserElements;
+
+ /**
+ * @generated
+ */
+ private String defaultText;
+
+ /**
+ * @generated
+ */
+ static {
+ registerSnapBackPosition(
+ ComrelVisualIDRegistry
+ .getType(comrel.diagram.edit.parts.SingleInputPortNameType6EditPart.VISUAL_ID),
+ new Point(0, 0));
+ }
+
+ /**
+ * @generated
+ */
+ public SingleInputPortNameType6EditPart(View view) {
+ super(view);
+ }
+
+ /**
+ * @generated
+ */
+ protected void createDefaultEditPolicies() {
+ super.createDefaultEditPolicies();
+ installEditPolicy(EditPolicy.DIRECT_EDIT_ROLE,
+ new LabelDirectEditPolicy());
+ installEditPolicy(EditPolicy.SELECTION_FEEDBACK_ROLE,
+ new ComrelTextSelectionEditPolicy());
+ }
+
+ /**
+ * @generated
+ */
+ public IBorderItemLocator getBorderItemLocator() {
+ IFigure parentFigure = getFigure().getParent();
+ if (parentFigure != null && parentFigure.getLayoutManager() != null) {
+ Object constraint = parentFigure.getLayoutManager().getConstraint(
+ getFigure());
+ return (IBorderItemLocator) constraint;
+ }
+ return null;
+ }
+
+ /**
+ * @generated
+ */
+ public void refreshBounds() {
+ int x = ((Integer) getStructuralFeatureValue(NotationPackage.eINSTANCE
+ .getLocation_X())).intValue();
+ int y = ((Integer) getStructuralFeatureValue(NotationPackage.eINSTANCE
+ .getLocation_Y())).intValue();
+ int width = ((Integer) getStructuralFeatureValue(NotationPackage.eINSTANCE
+ .getSize_Width())).intValue();
+ int height = ((Integer) getStructuralFeatureValue(NotationPackage.eINSTANCE
+ .getSize_Height())).intValue();
+ getBorderItemLocator()
+ .setConstraint(new Rectangle(x, y, width, height));
+ }
+
+ /**
+ * @generated
+ */
+ protected String getLabelTextHelper(IFigure figure) {
+ if (figure instanceof WrappingLabel) {
+ return ((WrappingLabel) figure).getText();
+ } else {
+ return ((Label) figure).getText();
+ }
+ }
+
+ /**
+ * @generated NOT
+ */
+ protected void setLabelTextHelper(IFigure figure, String text) {
+ int posDot = -1;
+ int posDouble = -1;
+ posDot = text.lastIndexOf(".");
+ posDouble = text.indexOf(":");
+ if (posDot > -1 && posDouble > -1) {
+ String first = text.substring(0, posDouble + 1);
+ String second = text.substring(posDot + 1);
+ text = first + second;
+ }
+ if (figure instanceof WrappingLabel) {
+ ((WrappingLabel) figure).setText(text);
+ } else {
+ ((Label) figure).setText(text);
+ }
+ }
+
+ /**
+ * @generated
+ */
+ protected Image getLabelIconHelper(IFigure figure) {
+ if (figure instanceof WrappingLabel) {
+ return ((WrappingLabel) figure).getIcon();
+ } else {
+ return ((Label) figure).getIcon();
+ }
+ }
+
+ /**
+ * @generated
+ */
+ protected void setLabelIconHelper(IFigure figure, Image icon) {
+ if (figure instanceof WrappingLabel) {
+ ((WrappingLabel) figure).setIcon(icon);
+ } else {
+ ((Label) figure).setIcon(icon);
+ }
+ }
+
+ /**
+ * @generated
+ */
+ public void setLabel(IFigure figure) {
+ unregisterVisuals();
+ setFigure(figure);
+ defaultText = getLabelTextHelper(figure);
+ registerVisuals();
+ refreshVisuals();
+ }
+
+ /**
+ * @generated
+ */
+ @SuppressWarnings("rawtypes")
+ protected List getModelChildren() {
+ return Collections.EMPTY_LIST;
+ }
+
+ /**
+ * @generated
+ */
+ public IGraphicalEditPart getChildBySemanticHint(String semanticHint) {
+ return null;
+ }
+
+ /**
+ * @generated
+ */
+ protected EObject getParserElement() {
+ return resolveSemanticElement();
+ }
+
+ /**
+ * @generated
+ */
+ protected Image getLabelIcon() {
+ return null;
+ }
+
+ /**
+ * @generated
+ */
+ protected String getLabelText() {
+ String text = null;
+ EObject parserElement = getParserElement();
+ if (parserElement != null && getParser() != null) {
+ text = getParser().getPrintString(
+ new EObjectAdapter(parserElement),
+ getParserOptions().intValue());
+ }
+ if (text == null || text.length() == 0) {
+ text = defaultText;
+ }
+ return text;
+ }
+
+ /**
+ * @generated
+ */
+ public void setLabelText(String text) {
+ setLabelTextHelper(getFigure(), text);
+ Object pdEditPolicy = getEditPolicy(EditPolicy.PRIMARY_DRAG_ROLE);
+ if (pdEditPolicy instanceof ComrelTextSelectionEditPolicy) {
+ ((ComrelTextSelectionEditPolicy) pdEditPolicy).refreshFeedback();
+ }
+ Object sfEditPolicy = getEditPolicy(EditPolicy.SELECTION_FEEDBACK_ROLE);
+ if (sfEditPolicy instanceof ComrelTextSelectionEditPolicy) {
+ ((ComrelTextSelectionEditPolicy) sfEditPolicy).refreshFeedback();
+ }
+ }
+
+ /**
+ * @generated
+ */
+ public String getEditText() {
+ if (getParserElement() == null || getParser() == null) {
+ return ""; //$NON-NLS-1$
+ }
+ return getParser().getEditString(
+ new EObjectAdapter(getParserElement()),
+ getParserOptions().intValue());
+ }
+
+ /**
+ * @generated
+ */
+ protected boolean isEditable() {
+ return getParser() != null;
+ }
+
+ /**
+ * @generated
+ */
+ public ICellEditorValidator getEditTextValidator() {
+ return new ICellEditorValidator() {
+
+ public String isValid(final Object value) {
+ if (value instanceof String) {
+ final EObject element = getParserElement();
+ final IParser parser = getParser();
+ try {
+ IParserEditStatus valid = (IParserEditStatus) getEditingDomain()
+ .runExclusive(
+ new RunnableWithResult.Impl<IParserEditStatus>() {
+
+ public void run() {
+ setResult(parser
+ .isValidEditString(
+ new EObjectAdapter(
+ element),
+ (String) value));
+ }
+ });
+ return valid.getCode() == ParserEditStatus.EDITABLE ? null
+ : valid.getMessage();
+ } catch (InterruptedException ie) {
+ ie.printStackTrace();
+ }
+ }
+
+ // shouldn't get here
+ return null;
+ }
+ };
+ }
+
+ /**
+ * @generated
+ */
+ public IContentAssistProcessor getCompletionProcessor() {
+ if (getParserElement() == null || getParser() == null) {
+ return null;
+ }
+ return getParser().getCompletionProcessor(
+ new EObjectAdapter(getParserElement()));
+ }
+
+ /**
+ * @generated
+ */
+ public ParserOptions getParserOptions() {
+ return ParserOptions.NONE;
+ }
+
+ /**
+ * @generated
+ */
+ public IParser getParser() {
+ if (parser == null) {
+ parser = ComrelParserProvider
+ .getParser(
+ ComrelElementTypes.SingleInputPort_3023,
+ getParserElement(),
+ ComrelVisualIDRegistry
+ .getType(comrel.diagram.edit.parts.SingleInputPortNameType6EditPart.VISUAL_ID));
+ }
+ return parser;
+ }
+
+ /**
+ * @generated
+ */
+ protected DirectEditManager getManager() {
+ if (manager == null) {
+ setManager(new TextDirectEditManager(this,
+ TextDirectEditManager.getTextCellEditorClass(this),
+ ComrelEditPartFactory.getTextCellEditorLocator(this)));
+ }
+ return manager;
+ }
+
+ /**
+ * @generated
+ */
+ protected void setManager(DirectEditManager manager) {
+ this.manager = manager;
+ }
+
+ /**
+ * @generated
+ */
+ protected void performDirectEdit() {
+ getManager().show();
+ }
+
+ /**
+ * @generated
+ */
+ protected void performDirectEdit(Point eventLocation) {
+ if (getManager().getClass() == TextDirectEditManager.class) {
+ ((TextDirectEditManager) getManager()).show(eventLocation
+ .getSWTPoint());
+ }
+ }
+
+ /**
+ * @generated
+ */
+ private void performDirectEdit(char initialCharacter) {
+ if (getManager() instanceof TextDirectEditManager) {
+ ((TextDirectEditManager) getManager()).show(initialCharacter);
+ } else {
+ performDirectEdit();
+ }
+ }
+
+ /**
+ * @generated
+ */
+ protected void performDirectEditRequest(Request request) {
+ final Request theRequest = request;
+ try {
+ getEditingDomain().runExclusive(new Runnable() {
+
+ public void run() {
+ if (isActive() && isEditable()) {
+ if (theRequest
+ .getExtendedData()
+ .get(RequestConstants.REQ_DIRECTEDIT_EXTENDEDDATA_INITIAL_CHAR) instanceof Character) {
+ Character initialChar = (Character) theRequest
+ .getExtendedData()
+ .get(RequestConstants.REQ_DIRECTEDIT_EXTENDEDDATA_INITIAL_CHAR);
+ performDirectEdit(initialChar.charValue());
+ } else if ((theRequest instanceof DirectEditRequest)
+ && (getEditText().equals(getLabelText()))) {
+ DirectEditRequest editRequest = (DirectEditRequest) theRequest;
+ performDirectEdit(editRequest.getLocation());
+ } else {
+ performDirectEdit();
+ }
+ }
+ }
+ });
+ } catch (InterruptedException e) {
+ e.printStackTrace();
+ }
+ }
+
+ /**
+ * @generated
+ */
+ protected void refreshVisuals() {
+ super.refreshVisuals();
+ refreshLabel();
+ refreshFont();
+ refreshFontColor();
+ refreshUnderline();
+ refreshStrikeThrough();
+ }
+
+ /**
+ * @generated
+ */
+ protected void refreshLabel() {
+ setLabelTextHelper(getFigure(), getLabelText());
+ setLabelIconHelper(getFigure(), getLabelIcon());
+ Object pdEditPolicy = getEditPolicy(EditPolicy.PRIMARY_DRAG_ROLE);
+ if (pdEditPolicy instanceof ComrelTextSelectionEditPolicy) {
+ ((ComrelTextSelectionEditPolicy) pdEditPolicy).refreshFeedback();
+ }
+ Object sfEditPolicy = getEditPolicy(EditPolicy.SELECTION_FEEDBACK_ROLE);
+ if (sfEditPolicy instanceof ComrelTextSelectionEditPolicy) {
+ ((ComrelTextSelectionEditPolicy) sfEditPolicy).refreshFeedback();
+ }
+ }
+
+ /**
+ * @generated
+ */
+ protected void refreshUnderline() {
+ FontStyle style = (FontStyle) getFontStyleOwnerView().getStyle(
+ NotationPackage.eINSTANCE.getFontStyle());
+ if (style != null && getFigure() instanceof WrappingLabel) {
+ ((WrappingLabel) getFigure()).setTextUnderline(style.isUnderline());
+ }
+ }
+
+ /**
+ * @generated
+ */
+ protected void refreshStrikeThrough() {
+ FontStyle style = (FontStyle) getFontStyleOwnerView().getStyle(
+ NotationPackage.eINSTANCE.getFontStyle());
+ if (style != null && getFigure() instanceof WrappingLabel) {
+ ((WrappingLabel) getFigure()).setTextStrikeThrough(style
+ .isStrikeThrough());
+ }
+ }
+
+ /**
+ * @generated
+ */
+ protected void refreshFont() {
+ FontStyle style = (FontStyle) getFontStyleOwnerView().getStyle(
+ NotationPackage.eINSTANCE.getFontStyle());
+ if (style != null) {
+ FontData fontData = new FontData(style.getFontName(),
+ style.getFontHeight(), (style.isBold() ? SWT.BOLD
+ : SWT.NORMAL)
+ | (style.isItalic() ? SWT.ITALIC : SWT.NORMAL));
+ setFont(fontData);
+ }
+ }
+
+ /**
+ * @generated
+ */
+ protected void setFontColor(Color color) {
+ getFigure().setForegroundColor(color);
+ }
+
+ /**
+ * @generated
+ */
+ protected void addSemanticListeners() {
+ if (getParser() instanceof ISemanticParser) {
+ EObject element = resolveSemanticElement();
+ parserElements = ((ISemanticParser) getParser())
+ .getSemanticElementsBeingParsed(element);
+ for (int i = 0; i < parserElements.size(); i++) {
+ addListenerFilter(
+ "SemanticModel" + i, this, (EObject) parserElements.get(i)); //$NON-NLS-1$
+ }
+ } else {
+ super.addSemanticListeners();
+ }
+ }
+
+ /**
+ * @generated
+ */
+ protected void removeSemanticListeners() {
+ if (parserElements != null) {
+ for (int i = 0; i < parserElements.size(); i++) {
+ removeListenerFilter("SemanticModel" + i); //$NON-NLS-1$
+ }
+ } else {
+ super.removeSemanticListeners();
+ }
+ }
+
+ /**
+ * @generated
+ */
+ protected AccessibleEditPart getAccessibleEditPart() {
+ if (accessibleEP == null) {
+ accessibleEP = new AccessibleGraphicalEditPart() {
+
+ public void getName(AccessibleEvent e) {
+ e.result = getLabelTextHelper(getFigure());
+ }
+ };
+ }
+ return accessibleEP;
+ }
+
+ /**
+ * @generated
+ */
+ private View getFontStyleOwnerView() {
+ return getPrimaryView();
+ }
+
+ /**
+ * @generated
+ */
+ protected void handleNotificationEvent(Notification event) {
+ Object feature = event.getFeature();
+ if (NotationPackage.eINSTANCE.getFontStyle_FontColor().equals(feature)) {
+ Integer c = (Integer) event.getNewValue();
+ setFontColor(DiagramColorRegistry.getInstance().getColor(c));
+ } else if (NotationPackage.eINSTANCE.getFontStyle_Underline().equals(
+ feature)) {
+ refreshUnderline();
+ } else if (NotationPackage.eINSTANCE.getFontStyle_StrikeThrough()
+ .equals(feature)) {
+ refreshStrikeThrough();
+ } else if (NotationPackage.eINSTANCE.getFontStyle_FontHeight().equals(
+ feature)
+ || NotationPackage.eINSTANCE.getFontStyle_FontName().equals(
+ feature)
+ || NotationPackage.eINSTANCE.getFontStyle_Bold()
+ .equals(feature)
+ || NotationPackage.eINSTANCE.getFontStyle_Italic().equals(
+ feature)) {
+ refreshFont();
+ } else {
+ if (getParser() != null
+ && getParser().isAffectingEvent(event,
+ getParserOptions().intValue())) {
+ refreshLabel();
+ }
+ if (getParser() instanceof ISemanticParser) {
+ ISemanticParser modelParser = (ISemanticParser) getParser();
+ if (modelParser.areSemanticElementsAffected(null, event)) {
+ removeSemanticListeners();
+ if (resolveSemanticElement() != null) {
+ addSemanticListeners();
+ }
+ refreshLabel();
+ }
+ }
+ }
+ super.handleNotificationEvent(event);
+ }
+
+ /**
+ * @generated
+ */
+ protected IFigure createFigure() {
+ IFigure label = createFigurePrim();
+ defaultText = getLabelTextHelper(label);
+ return label;
+ }
+
+ /**
+ * @generated
+ */
+ protected IFigure createFigurePrim() {
+ return new SingleInputPortLabelFigure();
+ }
+
+ /**
+ * @generated
+ */
+ public class SingleInputPortLabelFigure extends WrappingLabel {
+
+ /**
+ * @generated
+ */
+ public SingleInputPortLabelFigure() {
+ this.setText("SingleInputPort");
+ }
+
+ }
+
+}
diff --git a/org.eclipse.emf.refactor.comrel.diagram/src/comrel/diagram/edit/parts/SingleInputPortNameType7EditPart.java b/org.eclipse.emf.refactor.comrel.diagram/src/comrel/diagram/edit/parts/SingleInputPortNameType7EditPart.java
new file mode 100644
index 0000000..067f8ad
--- /dev/null
+++ b/org.eclipse.emf.refactor.comrel.diagram/src/comrel/diagram/edit/parts/SingleInputPortNameType7EditPart.java
@@ -0,0 +1,631 @@
+/*
+ *
+ */
+package comrel.diagram.edit.parts;
+
+import java.util.Collections;
+import java.util.List;
+
+import org.eclipse.draw2d.IFigure;
+import org.eclipse.draw2d.Label;
+import org.eclipse.draw2d.geometry.Point;
+import org.eclipse.draw2d.geometry.Rectangle;
+import org.eclipse.emf.common.notify.Notification;
+import org.eclipse.emf.ecore.EObject;
+import org.eclipse.emf.transaction.RunnableWithResult;
+import org.eclipse.gef.AccessibleEditPart;
+import org.eclipse.gef.EditPolicy;
+import org.eclipse.gef.Request;
+import org.eclipse.gef.requests.DirectEditRequest;
+import org.eclipse.gef.tools.DirectEditManager;
+import org.eclipse.gmf.runtime.common.ui.services.parser.IParser;
+import org.eclipse.gmf.runtime.common.ui.services.parser.IParserEditStatus;
+import org.eclipse.gmf.runtime.common.ui.services.parser.ParserEditStatus;
+import org.eclipse.gmf.runtime.common.ui.services.parser.ParserOptions;
+import org.eclipse.gmf.runtime.diagram.ui.editparts.IBorderItemEditPart;
+import org.eclipse.gmf.runtime.diagram.ui.editparts.IGraphicalEditPart;
+import org.eclipse.gmf.runtime.diagram.ui.editparts.ITextAwareEditPart;
+import org.eclipse.gmf.runtime.diagram.ui.editparts.LabelEditPart;
+import org.eclipse.gmf.runtime.diagram.ui.editpolicies.LabelDirectEditPolicy;
+import org.eclipse.gmf.runtime.diagram.ui.figures.IBorderItemLocator;
+import org.eclipse.gmf.runtime.diagram.ui.l10n.DiagramColorRegistry;
+import org.eclipse.gmf.runtime.diagram.ui.requests.RequestConstants;
+import org.eclipse.gmf.runtime.diagram.ui.tools.TextDirectEditManager;
+import org.eclipse.gmf.runtime.draw2d.ui.figures.WrappingLabel;
+import org.eclipse.gmf.runtime.emf.core.util.EObjectAdapter;
+import org.eclipse.gmf.runtime.emf.ui.services.parser.ISemanticParser;
+import org.eclipse.gmf.runtime.notation.FontStyle;
+import org.eclipse.gmf.runtime.notation.NotationPackage;
+import org.eclipse.gmf.runtime.notation.View;
+import org.eclipse.jface.text.contentassist.IContentAssistProcessor;
+import org.eclipse.jface.viewers.ICellEditorValidator;
+import org.eclipse.swt.SWT;
+import org.eclipse.swt.accessibility.AccessibleEvent;
+import org.eclipse.swt.graphics.Color;
+import org.eclipse.swt.graphics.FontData;
+import org.eclipse.swt.graphics.Image;
+
+import comrel.diagram.edit.policies.ComrelTextSelectionEditPolicy;
+import comrel.diagram.part.ComrelVisualIDRegistry;
+import comrel.diagram.providers.ComrelElementTypes;
+import comrel.diagram.providers.ComrelParserProvider;
+
+/**
+ * @generated
+ */
+public class SingleInputPortNameType7EditPart extends LabelEditPart implements
+ ITextAwareEditPart, IBorderItemEditPart {
+
+ /**
+ * @generated
+ */
+ public static final int VISUAL_ID = 5022;
+
+ /**
+ * @generated
+ */
+ private DirectEditManager manager;
+
+ /**
+ * @generated
+ */
+ private IParser parser;
+
+ /**
+ * @generated
+ */
+ private List<?> parserElements;
+
+ /**
+ * @generated
+ */
+ private String defaultText;
+
+ /**
+ * @generated
+ */
+ static {
+ registerSnapBackPosition(
+ ComrelVisualIDRegistry
+ .getType(comrel.diagram.edit.parts.SingleInputPortNameType7EditPart.VISUAL_ID),
+ new Point(0, 0));
+ }
+
+ /**
+ * @generated
+ */
+ public SingleInputPortNameType7EditPart(View view) {
+ super(view);
+ }
+
+ /**
+ * @generated
+ */
+ protected void createDefaultEditPolicies() {
+ super.createDefaultEditPolicies();
+ installEditPolicy(EditPolicy.DIRECT_EDIT_ROLE,
+ new LabelDirectEditPolicy());
+ installEditPolicy(EditPolicy.SELECTION_FEEDBACK_ROLE,
+ new ComrelTextSelectionEditPolicy());
+ }
+
+ /**
+ * @generated
+ */
+ public IBorderItemLocator getBorderItemLocator() {
+ IFigure parentFigure = getFigure().getParent();
+ if (parentFigure != null && parentFigure.getLayoutManager() != null) {
+ Object constraint = parentFigure.getLayoutManager().getConstraint(
+ getFigure());
+ return (IBorderItemLocator) constraint;
+ }
+ return null;
+ }
+
+ /**
+ * @generated
+ */
+ public void refreshBounds() {
+ int x = ((Integer) getStructuralFeatureValue(NotationPackage.eINSTANCE
+ .getLocation_X())).intValue();
+ int y = ((Integer) getStructuralFeatureValue(NotationPackage.eINSTANCE
+ .getLocation_Y())).intValue();
+ int width = ((Integer) getStructuralFeatureValue(NotationPackage.eINSTANCE
+ .getSize_Width())).intValue();
+ int height = ((Integer) getStructuralFeatureValue(NotationPackage.eINSTANCE
+ .getSize_Height())).intValue();
+ getBorderItemLocator()
+ .setConstraint(new Rectangle(x, y, width, height));
+ }
+
+ /**
+ * @generated
+ */
+ protected String getLabelTextHelper(IFigure figure) {
+ if (figure instanceof WrappingLabel) {
+ return ((WrappingLabel) figure).getText();
+ } else {
+ return ((Label) figure).getText();
+ }
+ }
+
+ /**
+ * @generated NOT
+ */
+ protected void setLabelTextHelper(IFigure figure, String text) {
+ int posDot = -1;
+ int posDouble = -1;
+ posDot = text.lastIndexOf(".");
+ posDouble = text.indexOf(":");
+ if (posDot > -1 && posDouble > -1) {
+ String first = text.substring(0, posDouble + 1);
+ String second = text.substring(posDot + 1);
+ text = first + second;
+ }
+ if (figure instanceof WrappingLabel) {
+ ((WrappingLabel) figure).setText(text);
+ } else {
+ ((Label) figure).setText(text);
+ }
+ }
+
+ /**
+ * @generated
+ */
+ protected Image getLabelIconHelper(IFigure figure) {
+ if (figure instanceof WrappingLabel) {
+ return ((WrappingLabel) figure).getIcon();
+ } else {
+ return ((Label) figure).getIcon();
+ }
+ }
+
+ /**
+ * @generated
+ */
+ protected void setLabelIconHelper(IFigure figure, Image icon) {
+ if (figure instanceof WrappingLabel) {
+ ((WrappingLabel) figure).setIcon(icon);
+ } else {
+ ((Label) figure).setIcon(icon);
+ }
+ }
+
+ /**
+ * @generated
+ */
+ public void setLabel(IFigure figure) {
+ unregisterVisuals();
+ setFigure(figure);
+ defaultText = getLabelTextHelper(figure);
+ registerVisuals();
+ refreshVisuals();
+ }
+
+ /**
+ * @generated
+ */
+ @SuppressWarnings("rawtypes")
+ protected List getModelChildren() {
+ return Collections.EMPTY_LIST;
+ }
+
+ /**
+ * @generated
+ */
+ public IGraphicalEditPart getChildBySemanticHint(String semanticHint) {
+ return null;
+ }
+
+ /**
+ * @generated
+ */
+ protected EObject getParserElement() {
+ return resolveSemanticElement();
+ }
+
+ /**
+ * @generated
+ */
+ protected Image getLabelIcon() {
+ return null;
+ }
+
+ /**
+ * @generated
+ */
+ protected String getLabelText() {
+ String text = null;
+ EObject parserElement = getParserElement();
+ if (parserElement != null && getParser() != null) {
+ text = getParser().getPrintString(
+ new EObjectAdapter(parserElement),
+ getParserOptions().intValue());
+ }
+ if (text == null || text.length() == 0) {
+ text = defaultText;
+ }
+ return text;
+ }
+
+ /**
+ * @generated
+ */
+ public void setLabelText(String text) {
+ setLabelTextHelper(getFigure(), text);
+ Object pdEditPolicy = getEditPolicy(EditPolicy.PRIMARY_DRAG_ROLE);
+ if (pdEditPolicy instanceof ComrelTextSelectionEditPolicy) {
+ ((ComrelTextSelectionEditPolicy) pdEditPolicy).refreshFeedback();
+ }
+ Object sfEditPolicy = getEditPolicy(EditPolicy.SELECTION_FEEDBACK_ROLE);
+ if (sfEditPolicy instanceof ComrelTextSelectionEditPolicy) {
+ ((ComrelTextSelectionEditPolicy) sfEditPolicy).refreshFeedback();
+ }
+ }
+
+ /**
+ * @generated
+ */
+ public String getEditText() {
+ if (getParserElement() == null || getParser() == null) {
+ return ""; //$NON-NLS-1$
+ }
+ return getParser().getEditString(
+ new EObjectAdapter(getParserElement()),
+ getParserOptions().intValue());
+ }
+
+ /**
+ * @generated
+ */
+ protected boolean isEditable() {
+ return getParser() != null;
+ }
+
+ /**
+ * @generated
+ */
+ public ICellEditorValidator getEditTextValidator() {
+ return new ICellEditorValidator() {
+
+ public String isValid(final Object value) {
+ if (value instanceof String) {
+ final EObject element = getParserElement();
+ final IParser parser = getParser();
+ try {
+ IParserEditStatus valid = (IParserEditStatus) getEditingDomain()
+ .runExclusive(
+ new RunnableWithResult.Impl<IParserEditStatus>() {
+
+ public void run() {
+ setResult(parser
+ .isValidEditString(
+ new EObjectAdapter(
+ element),
+ (String) value));
+ }
+ });
+ return valid.getCode() == ParserEditStatus.EDITABLE ? null
+ : valid.getMessage();
+ } catch (InterruptedException ie) {
+ ie.printStackTrace();
+ }
+ }
+
+ // shouldn't get here
+ return null;
+ }
+ };
+ }
+
+ /**
+ * @generated
+ */
+ public IContentAssistProcessor getCompletionProcessor() {
+ if (getParserElement() == null || getParser() == null) {
+ return null;
+ }
+ return getParser().getCompletionProcessor(
+ new EObjectAdapter(getParserElement()));
+ }
+
+ /**
+ * @generated
+ */
+ public ParserOptions getParserOptions() {
+ return ParserOptions.NONE;
+ }
+
+ /**
+ * @generated
+ */
+ public IParser getParser() {
+ if (parser == null) {
+ parser = ComrelParserProvider
+ .getParser(
+ ComrelElementTypes.SingleInputPort_3027,
+ getParserElement(),
+ ComrelVisualIDRegistry
+ .getType(comrel.diagram.edit.parts.SingleInputPortNameType7EditPart.VISUAL_ID));
+ }
+ return parser;
+ }
+
+ /**
+ * @generated
+ */
+ protected DirectEditManager getManager() {
+ if (manager == null) {
+ setManager(new TextDirectEditManager(this,
+ TextDirectEditManager.getTextCellEditorClass(this),
+ ComrelEditPartFactory.getTextCellEditorLocator(this)));
+ }
+ return manager;
+ }
+
+ /**
+ * @generated
+ */
+ protected void setManager(DirectEditManager manager) {
+ this.manager = manager;
+ }
+
+ /**
+ * @generated
+ */
+ protected void performDirectEdit() {
+ getManager().show();
+ }
+
+ /**
+ * @generated
+ */
+ protected void performDirectEdit(Point eventLocation) {
+ if (getManager().getClass() == TextDirectEditManager.class) {
+ ((TextDirectEditManager) getManager()).show(eventLocation
+ .getSWTPoint());
+ }
+ }
+
+ /**
+ * @generated
+ */
+ private void performDirectEdit(char initialCharacter) {
+ if (getManager() instanceof TextDirectEditManager) {
+ ((TextDirectEditManager) getManager()).show(initialCharacter);
+ } else {
+ performDirectEdit();
+ }
+ }
+
+ /**
+ * @generated
+ */
+ protected void performDirectEditRequest(Request request) {
+ final Request theRequest = request;
+ try {
+ getEditingDomain().runExclusive(new Runnable() {
+
+ public void run() {
+ if (isActive() && isEditable()) {
+ if (theRequest
+ .getExtendedData()
+ .get(RequestConstants.REQ_DIRECTEDIT_EXTENDEDDATA_INITIAL_CHAR) instanceof Character) {
+ Character initialChar = (Character) theRequest
+ .getExtendedData()
+ .get(RequestConstants.REQ_DIRECTEDIT_EXTENDEDDATA_INITIAL_CHAR);
+ performDirectEdit(initialChar.charValue());
+ } else if ((theRequest instanceof DirectEditRequest)
+ && (getEditText().equals(getLabelText()))) {
+ DirectEditRequest editRequest = (DirectEditRequest) theRequest;
+ performDirectEdit(editRequest.getLocation());
+ } else {
+ performDirectEdit();
+ }
+ }
+ }
+ });
+ } catch (InterruptedException e) {
+ e.printStackTrace();
+ }
+ }
+
+ /**
+ * @generated
+ */
+ protected void refreshVisuals() {
+ super.refreshVisuals();
+ refreshLabel();
+ refreshFont();
+ refreshFontColor();
+ refreshUnderline();
+ refreshStrikeThrough();
+ }
+
+ /**
+ * @generated
+ */
+ protected void refreshLabel() {
+ setLabelTextHelper(getFigure(), getLabelText());
+ setLabelIconHelper(getFigure(), getLabelIcon());
+ Object pdEditPolicy = getEditPolicy(EditPolicy.PRIMARY_DRAG_ROLE);
+ if (pdEditPolicy instanceof ComrelTextSelectionEditPolicy) {
+ ((ComrelTextSelectionEditPolicy) pdEditPolicy).refreshFeedback();
+ }
+ Object sfEditPolicy = getEditPolicy(EditPolicy.SELECTION_FEEDBACK_ROLE);
+ if (sfEditPolicy instanceof ComrelTextSelectionEditPolicy) {
+ ((ComrelTextSelectionEditPolicy) sfEditPolicy).refreshFeedback();
+ }
+ }
+
+ /**
+ * @generated
+ */
+ protected void refreshUnderline() {
+ FontStyle style = (FontStyle) getFontStyleOwnerView().getStyle(
+ NotationPackage.eINSTANCE.getFontStyle());
+ if (style != null && getFigure() instanceof WrappingLabel) {
+ ((WrappingLabel) getFigure()).setTextUnderline(style.isUnderline());
+ }
+ }
+
+ /**
+ * @generated
+ */
+ protected void refreshStrikeThrough() {
+ FontStyle style = (FontStyle) getFontStyleOwnerView().getStyle(
+ NotationPackage.eINSTANCE.getFontStyle());
+ if (style != null && getFigure() instanceof WrappingLabel) {
+ ((WrappingLabel) getFigure()).setTextStrikeThrough(style
+ .isStrikeThrough());
+ }
+ }
+
+ /**
+ * @generated
+ */
+ protected void refreshFont() {
+ FontStyle style = (FontStyle) getFontStyleOwnerView().getStyle(
+ NotationPackage.eINSTANCE.getFontStyle());
+ if (style != null) {
+ FontData fontData = new FontData(style.getFontName(),
+ style.getFontHeight(), (style.isBold() ? SWT.BOLD
+ : SWT.NORMAL)
+ | (style.isItalic() ? SWT.ITALIC : SWT.NORMAL));
+ setFont(fontData);
+ }
+ }
+
+ /**
+ * @generated
+ */
+ protected void setFontColor(Color color) {
+ getFigure().setForegroundColor(color);
+ }
+
+ /**
+ * @generated
+ */
+ protected void addSemanticListeners() {
+ if (getParser() instanceof ISemanticParser) {
+ EObject element = resolveSemanticElement();
+ parserElements = ((ISemanticParser) getParser())
+ .getSemanticElementsBeingParsed(element);
+ for (int i = 0; i < parserElements.size(); i++) {
+ addListenerFilter(
+ "SemanticModel" + i, this, (EObject) parserElements.get(i)); //$NON-NLS-1$
+ }
+ } else {
+ super.addSemanticListeners();
+ }
+ }
+
+ /**
+ * @generated
+ */
+ protected void removeSemanticListeners() {
+ if (parserElements != null) {
+ for (int i = 0; i < parserElements.size(); i++) {
+ removeListenerFilter("SemanticModel" + i); //$NON-NLS-1$
+ }
+ } else {
+ super.removeSemanticListeners();
+ }
+ }
+
+ /**
+ * @generated
+ */
+ protected AccessibleEditPart getAccessibleEditPart() {
+ if (accessibleEP == null) {
+ accessibleEP = new AccessibleGraphicalEditPart() {
+
+ public void getName(AccessibleEvent e) {
+ e.result = getLabelTextHelper(getFigure());
+ }
+ };
+ }
+ return accessibleEP;
+ }
+
+ /**
+ * @generated
+ */
+ private View getFontStyleOwnerView() {
+ return getPrimaryView();
+ }
+
+ /**
+ * @generated
+ */
+ protected void handleNotificationEvent(Notification event) {
+ Object feature = event.getFeature();
+ if (NotationPackage.eINSTANCE.getFontStyle_FontColor().equals(feature)) {
+ Integer c = (Integer) event.getNewValue();
+ setFontColor(DiagramColorRegistry.getInstance().getColor(c));
+ } else if (NotationPackage.eINSTANCE.getFontStyle_Underline().equals(
+ feature)) {
+ refreshUnderline();
+ } else if (NotationPackage.eINSTANCE.getFontStyle_StrikeThrough()
+ .equals(feature)) {
+ refreshStrikeThrough();
+ } else if (NotationPackage.eINSTANCE.getFontStyle_FontHeight().equals(
+ feature)
+ || NotationPackage.eINSTANCE.getFontStyle_FontName().equals(
+ feature)
+ || NotationPackage.eINSTANCE.getFontStyle_Bold()
+ .equals(feature)
+ || NotationPackage.eINSTANCE.getFontStyle_Italic().equals(
+ feature)) {
+ refreshFont();
+ } else {
+ if (getParser() != null
+ && getParser().isAffectingEvent(event,
+ getParserOptions().intValue())) {
+ refreshLabel();
+ }
+ if (getParser() instanceof ISemanticParser) {
+ ISemanticParser modelParser = (ISemanticParser) getParser();
+ if (modelParser.areSemanticElementsAffected(null, event)) {
+ removeSemanticListeners();
+ if (resolveSemanticElement() != null) {
+ addSemanticListeners();
+ }
+ refreshLabel();
+ }
+ }
+ }
+ super.handleNotificationEvent(event);
+ }
+
+ /**
+ * @generated
+ */
+ protected IFigure createFigure() {
+ IFigure label = createFigurePrim();
+ defaultText = getLabelTextHelper(label);
+ return label;
+ }
+
+ /**
+ * @generated
+ */
+ protected IFigure createFigurePrim() {
+ return new SingleInputPortLabelFigure();
+ }
+
+ /**
+ * @generated
+ */
+ public class SingleInputPortLabelFigure extends WrappingLabel {
+
+ /**
+ * @generated
+ */
+ public SingleInputPortLabelFigure() {
+ this.setText("SingleInputPort");
+ }
+
+ }
+
+}
diff --git a/org.eclipse.emf.refactor.comrel.diagram/src/comrel/diagram/edit/parts/SingleInputPortNameType8EditPart.java b/org.eclipse.emf.refactor.comrel.diagram/src/comrel/diagram/edit/parts/SingleInputPortNameType8EditPart.java
new file mode 100644
index 0000000..42ed0cb
--- /dev/null
+++ b/org.eclipse.emf.refactor.comrel.diagram/src/comrel/diagram/edit/parts/SingleInputPortNameType8EditPart.java
@@ -0,0 +1,631 @@
+/*
+ *
+ */
+package comrel.diagram.edit.parts;
+
+import java.util.Collections;
+import java.util.List;
+
+import org.eclipse.draw2d.IFigure;
+import org.eclipse.draw2d.Label;
+import org.eclipse.draw2d.geometry.Point;
+import org.eclipse.draw2d.geometry.Rectangle;
+import org.eclipse.emf.common.notify.Notification;
+import org.eclipse.emf.ecore.EObject;
+import org.eclipse.emf.transaction.RunnableWithResult;
+import org.eclipse.gef.AccessibleEditPart;
+import org.eclipse.gef.EditPolicy;
+import org.eclipse.gef.Request;
+import org.eclipse.gef.requests.DirectEditRequest;
+import org.eclipse.gef.tools.DirectEditManager;
+import org.eclipse.gmf.runtime.common.ui.services.parser.IParser;
+import org.eclipse.gmf.runtime.common.ui.services.parser.IParserEditStatus;
+import org.eclipse.gmf.runtime.common.ui.services.parser.ParserEditStatus;
+import org.eclipse.gmf.runtime.common.ui.services.parser.ParserOptions;
+import org.eclipse.gmf.runtime.diagram.ui.editparts.IBorderItemEditPart;
+import org.eclipse.gmf.runtime.diagram.ui.editparts.IGraphicalEditPart;
+import org.eclipse.gmf.runtime.diagram.ui.editparts.ITextAwareEditPart;
+import org.eclipse.gmf.runtime.diagram.ui.editparts.LabelEditPart;
+import org.eclipse.gmf.runtime.diagram.ui.editpolicies.LabelDirectEditPolicy;
+import org.eclipse.gmf.runtime.diagram.ui.figures.IBorderItemLocator;
+import org.eclipse.gmf.runtime.diagram.ui.l10n.DiagramColorRegistry;
+import org.eclipse.gmf.runtime.diagram.ui.requests.RequestConstants;
+import org.eclipse.gmf.runtime.diagram.ui.tools.TextDirectEditManager;
+import org.eclipse.gmf.runtime.draw2d.ui.figures.WrappingLabel;
+import org.eclipse.gmf.runtime.emf.core.util.EObjectAdapter;
+import org.eclipse.gmf.runtime.emf.ui.services.parser.ISemanticParser;
+import org.eclipse.gmf.runtime.notation.FontStyle;
+import org.eclipse.gmf.runtime.notation.NotationPackage;
+import org.eclipse.gmf.runtime.notation.View;
+import org.eclipse.jface.text.contentassist.IContentAssistProcessor;
+import org.eclipse.jface.viewers.ICellEditorValidator;
+import org.eclipse.swt.SWT;
+import org.eclipse.swt.accessibility.AccessibleEvent;
+import org.eclipse.swt.graphics.Color;
+import org.eclipse.swt.graphics.FontData;
+import org.eclipse.swt.graphics.Image;
+
+import comrel.diagram.edit.policies.ComrelTextSelectionEditPolicy;
+import comrel.diagram.part.ComrelVisualIDRegistry;
+import comrel.diagram.providers.ComrelElementTypes;
+import comrel.diagram.providers.ComrelParserProvider;
+
+/**
+ * @generated
+ */
+public class SingleInputPortNameType8EditPart extends LabelEditPart implements
+ ITextAwareEditPart, IBorderItemEditPart {
+
+ /**
+ * @generated
+ */
+ public static final int VISUAL_ID = 5024;
+
+ /**
+ * @generated
+ */
+ private DirectEditManager manager;
+
+ /**
+ * @generated
+ */
+ private IParser parser;
+
+ /**
+ * @generated
+ */
+ private List<?> parserElements;
+
+ /**
+ * @generated
+ */
+ private String defaultText;
+
+ /**
+ * @generated
+ */
+ static {
+ registerSnapBackPosition(
+ ComrelVisualIDRegistry
+ .getType(comrel.diagram.edit.parts.SingleInputPortNameType8EditPart.VISUAL_ID),
+ new Point(0, 0));
+ }
+
+ /**
+ * @generated
+ */
+ public SingleInputPortNameType8EditPart(View view) {
+ super(view);
+ }
+
+ /**
+ * @generated
+ */
+ protected void createDefaultEditPolicies() {
+ super.createDefaultEditPolicies();
+ installEditPolicy(EditPolicy.DIRECT_EDIT_ROLE,
+ new LabelDirectEditPolicy());
+ installEditPolicy(EditPolicy.SELECTION_FEEDBACK_ROLE,
+ new ComrelTextSelectionEditPolicy());
+ }
+
+ /**
+ * @generated
+ */
+ public IBorderItemLocator getBorderItemLocator() {
+ IFigure parentFigure = getFigure().getParent();
+ if (parentFigure != null && parentFigure.getLayoutManager() != null) {
+ Object constraint = parentFigure.getLayoutManager().getConstraint(
+ getFigure());
+ return (IBorderItemLocator) constraint;
+ }
+ return null;
+ }
+
+ /**
+ * @generated
+ */
+ public void refreshBounds() {
+ int x = ((Integer) getStructuralFeatureValue(NotationPackage.eINSTANCE
+ .getLocation_X())).intValue();
+ int y = ((Integer) getStructuralFeatureValue(NotationPackage.eINSTANCE
+ .getLocation_Y())).intValue();
+ int width = ((Integer) getStructuralFeatureValue(NotationPackage.eINSTANCE
+ .getSize_Width())).intValue();
+ int height = ((Integer) getStructuralFeatureValue(NotationPackage.eINSTANCE
+ .getSize_Height())).intValue();
+ getBorderItemLocator()
+ .setConstraint(new Rectangle(x, y, width, height));
+ }
+
+ /**
+ * @generated
+ */
+ protected String getLabelTextHelper(IFigure figure) {
+ if (figure instanceof WrappingLabel) {
+ return ((WrappingLabel) figure).getText();
+ } else {
+ return ((Label) figure).getText();
+ }
+ }
+
+ /**
+ * @generated NOT
+ */
+ protected void setLabelTextHelper(IFigure figure, String text) {
+ int posDot = -1;
+ int posDouble = -1;
+ posDot = text.lastIndexOf(".");
+ posDouble = text.indexOf(":");
+ if (posDot > -1 && posDouble > -1) {
+ String first = text.substring(0, posDouble + 1);
+ String second = text.substring(posDot + 1);
+ text = first + second;
+ }
+ if (figure instanceof WrappingLabel) {
+ ((WrappingLabel) figure).setText(text);
+ } else {
+ ((Label) figure).setText(text);
+ }
+ }
+
+ /**
+ * @generated
+ */
+ protected Image getLabelIconHelper(IFigure figure) {
+ if (figure instanceof WrappingLabel) {
+ return ((WrappingLabel) figure).getIcon();
+ } else {
+ return ((Label) figure).getIcon();
+ }
+ }
+
+ /**
+ * @generated
+ */
+ protected void setLabelIconHelper(IFigure figure, Image icon) {
+ if (figure instanceof WrappingLabel) {
+ ((WrappingLabel) figure).setIcon(icon);
+ } else {
+ ((Label) figure).setIcon(icon);
+ }
+ }
+
+ /**
+ * @generated
+ */
+ public void setLabel(IFigure figure) {
+ unregisterVisuals();
+ setFigure(figure);
+ defaultText = getLabelTextHelper(figure);
+ registerVisuals();
+ refreshVisuals();
+ }
+
+ /**
+ * @generated
+ */
+ @SuppressWarnings("rawtypes")
+ protected List getModelChildren() {
+ return Collections.EMPTY_LIST;
+ }
+
+ /**
+ * @generated
+ */
+ public IGraphicalEditPart getChildBySemanticHint(String semanticHint) {
+ return null;
+ }
+
+ /**
+ * @generated
+ */
+ protected EObject getParserElement() {
+ return resolveSemanticElement();
+ }
+
+ /**
+ * @generated
+ */
+ protected Image getLabelIcon() {
+ return null;
+ }
+
+ /**
+ * @generated
+ */
+ protected String getLabelText() {
+ String text = null;
+ EObject parserElement = getParserElement();
+ if (parserElement != null && getParser() != null) {
+ text = getParser().getPrintString(
+ new EObjectAdapter(parserElement),
+ getParserOptions().intValue());
+ }
+ if (text == null || text.length() == 0) {
+ text = defaultText;
+ }
+ return text;
+ }
+
+ /**
+ * @generated
+ */
+ public void setLabelText(String text) {
+ setLabelTextHelper(getFigure(), text);
+ Object pdEditPolicy = getEditPolicy(EditPolicy.PRIMARY_DRAG_ROLE);
+ if (pdEditPolicy instanceof ComrelTextSelectionEditPolicy) {
+ ((ComrelTextSelectionEditPolicy) pdEditPolicy).refreshFeedback();
+ }
+ Object sfEditPolicy = getEditPolicy(EditPolicy.SELECTION_FEEDBACK_ROLE);
+ if (sfEditPolicy instanceof ComrelTextSelectionEditPolicy) {
+ ((ComrelTextSelectionEditPolicy) sfEditPolicy).refreshFeedback();
+ }
+ }
+
+ /**
+ * @generated
+ */
+ public String getEditText() {
+ if (getParserElement() == null || getParser() == null) {
+ return ""; //$NON-NLS-1$
+ }
+ return getParser().getEditString(
+ new EObjectAdapter(getParserElement()),
+ getParserOptions().intValue());
+ }
+
+ /**
+ * @generated
+ */
+ protected boolean isEditable() {
+ return getParser() != null;
+ }
+
+ /**
+ * @generated
+ */
+ public ICellEditorValidator getEditTextValidator() {
+ return new ICellEditorValidator() {
+
+ public String isValid(final Object value) {
+ if (value instanceof String) {
+ final EObject element = getParserElement();
+ final IParser parser = getParser();
+ try {
+ IParserEditStatus valid = (IParserEditStatus) getEditingDomain()
+ .runExclusive(
+ new RunnableWithResult.Impl<IParserEditStatus>() {
+
+ public void run() {
+ setResult(parser
+ .isValidEditString(
+ new EObjectAdapter(
+ element),
+ (String) value));
+ }
+ });
+ return valid.getCode() == ParserEditStatus.EDITABLE ? null
+ : valid.getMessage();
+ } catch (InterruptedException ie) {
+ ie.printStackTrace();
+ }
+ }
+
+ // shouldn't get here
+ return null;
+ }
+ };
+ }
+
+ /**
+ * @generated
+ */
+ public IContentAssistProcessor getCompletionProcessor() {
+ if (getParserElement() == null || getParser() == null) {
+ return null;
+ }
+ return getParser().getCompletionProcessor(
+ new EObjectAdapter(getParserElement()));
+ }
+
+ /**
+ * @generated
+ */
+ public ParserOptions getParserOptions() {
+ return ParserOptions.NONE;
+ }
+
+ /**
+ * @generated
+ */
+ public IParser getParser() {
+ if (parser == null) {
+ parser = ComrelParserProvider
+ .getParser(
+ ComrelElementTypes.SingleInputPort_3031,
+ getParserElement(),
+ ComrelVisualIDRegistry
+ .getType(comrel.diagram.edit.parts.SingleInputPortNameType8EditPart.VISUAL_ID));
+ }
+ return parser;
+ }
+
+ /**
+ * @generated
+ */
+ protected DirectEditManager getManager() {
+ if (manager == null) {
+ setManager(new TextDirectEditManager(this,
+ TextDirectEditManager.getTextCellEditorClass(this),
+ ComrelEditPartFactory.getTextCellEditorLocator(this)));
+ }
+ return manager;
+ }
+
+ /**
+ * @generated
+ */
+ protected void setManager(DirectEditManager manager) {
+ this.manager = manager;
+ }
+
+ /**
+ * @generated
+ */
+ protected void performDirectEdit() {
+ getManager().show();
+ }
+
+ /**
+ * @generated
+ */
+ protected void performDirectEdit(Point eventLocation) {
+ if (getManager().getClass() == TextDirectEditManager.class) {
+ ((TextDirectEditManager) getManager()).show(eventLocation
+ .getSWTPoint());
+ }
+ }
+
+ /**
+ * @generated
+ */
+ private void performDirectEdit(char initialCharacter) {
+ if (getManager() instanceof TextDirectEditManager) {
+ ((TextDirectEditManager) getManager()).show(initialCharacter);
+ } else {
+ performDirectEdit();
+ }
+ }
+
+ /**
+ * @generated
+ */
+ protected void performDirectEditRequest(Request request) {
+ final Request theRequest = request;
+ try {
+ getEditingDomain().runExclusive(new Runnable() {
+
+ public void run() {
+ if (isActive() && isEditable()) {
+ if (theRequest
+ .getExtendedData()
+ .get(RequestConstants.REQ_DIRECTEDIT_EXTENDEDDATA_INITIAL_CHAR) instanceof Character) {
+ Character initialChar = (Character) theRequest
+ .getExtendedData()
+ .get(RequestConstants.REQ_DIRECTEDIT_EXTENDEDDATA_INITIAL_CHAR);
+ performDirectEdit(initialChar.charValue());
+ } else if ((theRequest instanceof DirectEditRequest)
+ && (getEditText().equals(getLabelText()))) {
+ DirectEditRequest editRequest = (DirectEditRequest) theRequest;
+ performDirectEdit(editRequest.getLocation());
+ } else {
+ performDirectEdit();
+ }
+ }
+ }
+ });
+ } catch (InterruptedException e) {
+ e.printStackTrace();
+ }
+ }
+
+ /**
+ * @generated
+ */
+ protected void refreshVisuals() {
+ super.refreshVisuals();
+ refreshLabel();
+ refreshFont();
+ refreshFontColor();
+ refreshUnderline();
+ refreshStrikeThrough();
+ }
+
+ /**
+ * @generated
+ */
+ protected void refreshLabel() {
+ setLabelTextHelper(getFigure(), getLabelText());
+ setLabelIconHelper(getFigure(), getLabelIcon());
+ Object pdEditPolicy = getEditPolicy(EditPolicy.PRIMARY_DRAG_ROLE);
+ if (pdEditPolicy instanceof ComrelTextSelectionEditPolicy) {
+ ((ComrelTextSelectionEditPolicy) pdEditPolicy).refreshFeedback();
+ }
+ Object sfEditPolicy = getEditPolicy(EditPolicy.SELECTION_FEEDBACK_ROLE);
+ if (sfEditPolicy instanceof ComrelTextSelectionEditPolicy) {
+ ((ComrelTextSelectionEditPolicy) sfEditPolicy).refreshFeedback();
+ }
+ }
+
+ /**
+ * @generated
+ */
+ protected void refreshUnderline() {
+ FontStyle style = (FontStyle) getFontStyleOwnerView().getStyle(
+ NotationPackage.eINSTANCE.getFontStyle());
+ if (style != null && getFigure() instanceof WrappingLabel) {
+ ((WrappingLabel) getFigure()).setTextUnderline(style.isUnderline());
+ }
+ }
+
+ /**
+ * @generated
+ */
+ protected void refreshStrikeThrough() {
+ FontStyle style = (FontStyle) getFontStyleOwnerView().getStyle(
+ NotationPackage.eINSTANCE.getFontStyle());
+ if (style != null && getFigure() instanceof WrappingLabel) {
+ ((WrappingLabel) getFigure()).setTextStrikeThrough(style
+ .isStrikeThrough());
+ }
+ }
+
+ /**
+ * @generated
+ */
+ protected void refreshFont() {
+ FontStyle style = (FontStyle) getFontStyleOwnerView().getStyle(
+ NotationPackage.eINSTANCE.getFontStyle());
+ if (style != null) {
+ FontData fontData = new FontData(style.getFontName(),
+ style.getFontHeight(), (style.isBold() ? SWT.BOLD
+ : SWT.NORMAL)
+ | (style.isItalic() ? SWT.ITALIC : SWT.NORMAL));
+ setFont(fontData);
+ }
+ }
+
+ /**
+ * @generated
+ */
+ protected void setFontColor(Color color) {
+ getFigure().setForegroundColor(color);
+ }
+
+ /**
+ * @generated
+ */
+ protected void addSemanticListeners() {
+ if (getParser() instanceof ISemanticParser) {
+ EObject element = resolveSemanticElement();
+ parserElements = ((ISemanticParser) getParser())
+ .getSemanticElementsBeingParsed(element);
+ for (int i = 0; i < parserElements.size(); i++) {
+ addListenerFilter(
+ "SemanticModel" + i, this, (EObject) parserElements.get(i)); //$NON-NLS-1$
+ }
+ } else {
+ super.addSemanticListeners();
+ }
+ }
+
+ /**
+ * @generated
+ */
+ protected void removeSemanticListeners() {
+ if (parserElements != null) {
+ for (int i = 0; i < parserElements.size(); i++) {
+ removeListenerFilter("SemanticModel" + i); //$NON-NLS-1$
+ }
+ } else {
+ super.removeSemanticListeners();
+ }
+ }
+
+ /**
+ * @generated
+ */
+ protected AccessibleEditPart getAccessibleEditPart() {
+ if (accessibleEP == null) {
+ accessibleEP = new AccessibleGraphicalEditPart() {
+
+ public void getName(AccessibleEvent e) {
+ e.result = getLabelTextHelper(getFigure());
+ }
+ };
+ }
+ return accessibleEP;
+ }
+
+ /**
+ * @generated
+ */
+ private View getFontStyleOwnerView() {
+ return getPrimaryView();
+ }
+
+ /**
+ * @generated
+ */
+ protected void handleNotificationEvent(Notification event) {
+ Object feature = event.getFeature();
+ if (NotationPackage.eINSTANCE.getFontStyle_FontColor().equals(feature)) {
+ Integer c = (Integer) event.getNewValue();
+ setFontColor(DiagramColorRegistry.getInstance().getColor(c));
+ } else if (NotationPackage.eINSTANCE.getFontStyle_Underline().equals(
+ feature)) {
+ refreshUnderline();
+ } else if (NotationPackage.eINSTANCE.getFontStyle_StrikeThrough()
+ .equals(feature)) {
+ refreshStrikeThrough();
+ } else if (NotationPackage.eINSTANCE.getFontStyle_FontHeight().equals(
+ feature)
+ || NotationPackage.eINSTANCE.getFontStyle_FontName().equals(
+ feature)
+ || NotationPackage.eINSTANCE.getFontStyle_Bold()
+ .equals(feature)
+ || NotationPackage.eINSTANCE.getFontStyle_Italic().equals(
+ feature)) {
+ refreshFont();
+ } else {
+ if (getParser() != null
+ && getParser().isAffectingEvent(event,
+ getParserOptions().intValue())) {
+ refreshLabel();
+ }
+ if (getParser() instanceof ISemanticParser) {
+ ISemanticParser modelParser = (ISemanticParser) getParser();
+ if (modelParser.areSemanticElementsAffected(null, event)) {
+ removeSemanticListeners();
+ if (resolveSemanticElement() != null) {
+ addSemanticListeners();
+ }
+ refreshLabel();
+ }
+ }
+ }
+ super.handleNotificationEvent(event);
+ }
+
+ /**
+ * @generated
+ */
+ protected IFigure createFigure() {
+ IFigure label = createFigurePrim();
+ defaultText = getLabelTextHelper(label);
+ return label;
+ }
+
+ /**
+ * @generated
+ */
+ protected IFigure createFigurePrim() {
+ return new SingleInputPortLabelFigure();
+ }
+
+ /**
+ * @generated
+ */
+ public class SingleInputPortLabelFigure extends WrappingLabel {
+
+ /**
+ * @generated
+ */
+ public SingleInputPortLabelFigure() {
+ this.setText("SingleInputPort");
+ }
+
+ }
+
+}
diff --git a/org.eclipse.emf.refactor.comrel.diagram/src/comrel/diagram/edit/parts/SingleInputPortNameType9EditPart.java b/org.eclipse.emf.refactor.comrel.diagram/src/comrel/diagram/edit/parts/SingleInputPortNameType9EditPart.java
new file mode 100644
index 0000000..2a2a5e3
--- /dev/null
+++ b/org.eclipse.emf.refactor.comrel.diagram/src/comrel/diagram/edit/parts/SingleInputPortNameType9EditPart.java
@@ -0,0 +1,631 @@
+/*
+ *
+ */
+package comrel.diagram.edit.parts;
+
+import java.util.Collections;
+import java.util.List;
+
+import org.eclipse.draw2d.IFigure;
+import org.eclipse.draw2d.Label;
+import org.eclipse.draw2d.geometry.Point;
+import org.eclipse.draw2d.geometry.Rectangle;
+import org.eclipse.emf.common.notify.Notification;
+import org.eclipse.emf.ecore.EObject;
+import org.eclipse.emf.transaction.RunnableWithResult;
+import org.eclipse.gef.AccessibleEditPart;
+import org.eclipse.gef.EditPolicy;
+import org.eclipse.gef.Request;
+import org.eclipse.gef.requests.DirectEditRequest;
+import org.eclipse.gef.tools.DirectEditManager;
+import org.eclipse.gmf.runtime.common.ui.services.parser.IParser;
+import org.eclipse.gmf.runtime.common.ui.services.parser.IParserEditStatus;
+import org.eclipse.gmf.runtime.common.ui.services.parser.ParserEditStatus;
+import org.eclipse.gmf.runtime.common.ui.services.parser.ParserOptions;
+import org.eclipse.gmf.runtime.diagram.ui.editparts.IBorderItemEditPart;
+import org.eclipse.gmf.runtime.diagram.ui.editparts.IGraphicalEditPart;
+import org.eclipse.gmf.runtime.diagram.ui.editparts.ITextAwareEditPart;
+import org.eclipse.gmf.runtime.diagram.ui.editparts.LabelEditPart;
+import org.eclipse.gmf.runtime.diagram.ui.editpolicies.LabelDirectEditPolicy;
+import org.eclipse.gmf.runtime.diagram.ui.figures.IBorderItemLocator;
+import org.eclipse.gmf.runtime.diagram.ui.l10n.DiagramColorRegistry;
+import org.eclipse.gmf.runtime.diagram.ui.requests.RequestConstants;
+import org.eclipse.gmf.runtime.diagram.ui.tools.TextDirectEditManager;
+import org.eclipse.gmf.runtime.draw2d.ui.figures.WrappingLabel;
+import org.eclipse.gmf.runtime.emf.core.util.EObjectAdapter;
+import org.eclipse.gmf.runtime.emf.ui.services.parser.ISemanticParser;
+import org.eclipse.gmf.runtime.notation.FontStyle;
+import org.eclipse.gmf.runtime.notation.NotationPackage;
+import org.eclipse.gmf.runtime.notation.View;
+import org.eclipse.jface.text.contentassist.IContentAssistProcessor;
+import org.eclipse.jface.viewers.ICellEditorValidator;
+import org.eclipse.swt.SWT;
+import org.eclipse.swt.accessibility.AccessibleEvent;
+import org.eclipse.swt.graphics.Color;
+import org.eclipse.swt.graphics.FontData;
+import org.eclipse.swt.graphics.Image;
+
+import comrel.diagram.edit.policies.ComrelTextSelectionEditPolicy;
+import comrel.diagram.part.ComrelVisualIDRegistry;
+import comrel.diagram.providers.ComrelElementTypes;
+import comrel.diagram.providers.ComrelParserProvider;
+
+/**
+ * @generated
+ */
+public class SingleInputPortNameType9EditPart extends LabelEditPart implements
+ ITextAwareEditPart, IBorderItemEditPart {
+
+ /**
+ * @generated
+ */
+ public static final int VISUAL_ID = 5026;
+
+ /**
+ * @generated
+ */
+ private DirectEditManager manager;
+
+ /**
+ * @generated
+ */
+ private IParser parser;
+
+ /**
+ * @generated
+ */
+ private List<?> parserElements;
+
+ /**
+ * @generated
+ */
+ private String defaultText;
+
+ /**
+ * @generated
+ */
+ static {
+ registerSnapBackPosition(
+ ComrelVisualIDRegistry
+ .getType(comrel.diagram.edit.parts.SingleInputPortNameType9EditPart.VISUAL_ID),
+ new Point(0, 0));
+ }
+
+ /**
+ * @generated
+ */
+ public SingleInputPortNameType9EditPart(View view) {
+ super(view);
+ }
+
+ /**
+ * @generated
+ */
+ protected void createDefaultEditPolicies() {
+ super.createDefaultEditPolicies();
+ installEditPolicy(EditPolicy.DIRECT_EDIT_ROLE,
+ new LabelDirectEditPolicy());
+ installEditPolicy(EditPolicy.SELECTION_FEEDBACK_ROLE,
+ new ComrelTextSelectionEditPolicy());
+ }
+
+ /**
+ * @generated
+ */
+ public IBorderItemLocator getBorderItemLocator() {
+ IFigure parentFigure = getFigure().getParent();
+ if (parentFigure != null && parentFigure.getLayoutManager() != null) {
+ Object constraint = parentFigure.getLayoutManager().getConstraint(
+ getFigure());
+ return (IBorderItemLocator) constraint;
+ }
+ return null;
+ }
+
+ /**
+ * @generated
+ */
+ public void refreshBounds() {
+ int x = ((Integer) getStructuralFeatureValue(NotationPackage.eINSTANCE
+ .getLocation_X())).intValue();
+ int y = ((Integer) getStructuralFeatureValue(NotationPackage.eINSTANCE
+ .getLocation_Y())).intValue();
+ int width = ((Integer) getStructuralFeatureValue(NotationPackage.eINSTANCE
+ .getSize_Width())).intValue();
+ int height = ((Integer) getStructuralFeatureValue(NotationPackage.eINSTANCE
+ .getSize_Height())).intValue();
+ getBorderItemLocator()
+ .setConstraint(new Rectangle(x, y, width, height));
+ }
+
+ /**
+ * @generated
+ */
+ protected String getLabelTextHelper(IFigure figure) {
+ if (figure instanceof WrappingLabel) {
+ return ((WrappingLabel) figure).getText();
+ } else {
+ return ((Label) figure).getText();
+ }
+ }
+
+ /**
+ * @generated NOT
+ */
+ protected void setLabelTextHelper(IFigure figure, String text) {
+ int posDot = -1;
+ int posDouble = -1;
+ posDot = text.lastIndexOf(".");
+ posDouble = text.indexOf(":");
+ if (posDot > -1 && posDouble > -1) {
+ String first = text.substring(0, posDouble + 1);
+ String second = text.substring(posDot + 1);
+ text = first + second;
+ }
+ if (figure instanceof WrappingLabel) {
+ ((WrappingLabel) figure).setText(text);
+ } else {
+ ((Label) figure).setText(text);
+ }
+ }
+
+ /**
+ * @generated
+ */
+ protected Image getLabelIconHelper(IFigure figure) {
+ if (figure instanceof WrappingLabel) {
+ return ((WrappingLabel) figure).getIcon();
+ } else {
+ return ((Label) figure).getIcon();
+ }
+ }
+
+ /**
+ * @generated
+ */
+ protected void setLabelIconHelper(IFigure figure, Image icon) {
+ if (figure instanceof WrappingLabel) {
+ ((WrappingLabel) figure).setIcon(icon);
+ } else {
+ ((Label) figure).setIcon(icon);
+ }
+ }
+
+ /**
+ * @generated
+ */
+ public void setLabel(IFigure figure) {
+ unregisterVisuals();
+ setFigure(figure);
+ defaultText = getLabelTextHelper(figure);
+ registerVisuals();
+ refreshVisuals();
+ }
+
+ /**
+ * @generated
+ */
+ @SuppressWarnings("rawtypes")
+ protected List getModelChildren() {
+ return Collections.EMPTY_LIST;
+ }
+
+ /**
+ * @generated
+ */
+ public IGraphicalEditPart getChildBySemanticHint(String semanticHint) {
+ return null;
+ }
+
+ /**
+ * @generated
+ */
+ protected EObject getParserElement() {
+ return resolveSemanticElement();
+ }
+
+ /**
+ * @generated
+ */
+ protected Image getLabelIcon() {
+ return null;
+ }
+
+ /**
+ * @generated
+ */
+ protected String getLabelText() {
+ String text = null;
+ EObject parserElement = getParserElement();
+ if (parserElement != null && getParser() != null) {
+ text = getParser().getPrintString(
+ new EObjectAdapter(parserElement),
+ getParserOptions().intValue());
+ }
+ if (text == null || text.length() == 0) {
+ text = defaultText;
+ }
+ return text;
+ }
+
+ /**
+ * @generated
+ */
+ public void setLabelText(String text) {
+ setLabelTextHelper(getFigure(), text);
+ Object pdEditPolicy = getEditPolicy(EditPolicy.PRIMARY_DRAG_ROLE);
+ if (pdEditPolicy instanceof ComrelTextSelectionEditPolicy) {
+ ((ComrelTextSelectionEditPolicy) pdEditPolicy).refreshFeedback();
+ }
+ Object sfEditPolicy = getEditPolicy(EditPolicy.SELECTION_FEEDBACK_ROLE);
+ if (sfEditPolicy instanceof ComrelTextSelectionEditPolicy) {
+ ((ComrelTextSelectionEditPolicy) sfEditPolicy).refreshFeedback();
+ }
+ }
+
+ /**
+ * @generated
+ */
+ public String getEditText() {
+ if (getParserElement() == null || getParser() == null) {
+ return ""; //$NON-NLS-1$
+ }
+ return getParser().getEditString(
+ new EObjectAdapter(getParserElement()),
+ getParserOptions().intValue());
+ }
+
+ /**
+ * @generated
+ */
+ protected boolean isEditable() {
+ return getParser() != null;
+ }
+
+ /**
+ * @generated
+ */
+ public ICellEditorValidator getEditTextValidator() {
+ return new ICellEditorValidator() {
+
+ public String isValid(final Object value) {
+ if (value instanceof String) {
+ final EObject element = getParserElement();
+ final IParser parser = getParser();
+ try {
+ IParserEditStatus valid = (IParserEditStatus) getEditingDomain()
+ .runExclusive(
+ new RunnableWithResult.Impl<IParserEditStatus>() {
+
+ public void run() {
+ setResult(parser
+ .isValidEditString(
+ new EObjectAdapter(
+ element),
+ (String) value));
+ }
+ });
+ return valid.getCode() == ParserEditStatus.EDITABLE ? null
+ : valid.getMessage();
+ } catch (InterruptedException ie) {
+ ie.printStackTrace();
+ }
+ }
+
+ // shouldn't get here
+ return null;
+ }
+ };
+ }
+
+ /**
+ * @generated
+ */
+ public IContentAssistProcessor getCompletionProcessor() {
+ if (getParserElement() == null || getParser() == null) {
+ return null;
+ }
+ return getParser().getCompletionProcessor(
+ new EObjectAdapter(getParserElement()));
+ }
+
+ /**
+ * @generated
+ */
+ public ParserOptions getParserOptions() {
+ return ParserOptions.NONE;
+ }
+
+ /**
+ * @generated
+ */
+ public IParser getParser() {
+ if (parser == null) {
+ parser = ComrelParserProvider
+ .getParser(
+ ComrelElementTypes.SingleInputPort_3035,
+ getParserElement(),
+ ComrelVisualIDRegistry
+ .getType(comrel.diagram.edit.parts.SingleInputPortNameType9EditPart.VISUAL_ID));
+ }
+ return parser;
+ }
+
+ /**
+ * @generated
+ */
+ protected DirectEditManager getManager() {
+ if (manager == null) {
+ setManager(new TextDirectEditManager(this,
+ TextDirectEditManager.getTextCellEditorClass(this),
+ ComrelEditPartFactory.getTextCellEditorLocator(this)));
+ }
+ return manager;
+ }
+
+ /**
+ * @generated
+ */
+ protected void setManager(DirectEditManager manager) {
+ this.manager = manager;
+ }
+
+ /**
+ * @generated
+ */
+ protected void performDirectEdit() {
+ getManager().show();
+ }
+
+ /**
+ * @generated
+ */
+ protected void performDirectEdit(Point eventLocation) {
+ if (getManager().getClass() == TextDirectEditManager.class) {
+ ((TextDirectEditManager) getManager()).show(eventLocation
+ .getSWTPoint());
+ }
+ }
+
+ /**
+ * @generated
+ */
+ private void performDirectEdit(char initialCharacter) {
+ if (getManager() instanceof TextDirectEditManager) {
+ ((TextDirectEditManager) getManager()).show(initialCharacter);
+ } else {
+ performDirectEdit();
+ }
+ }
+
+ /**
+ * @generated
+ */
+ protected void performDirectEditRequest(Request request) {
+ final Request theRequest = request;
+ try {
+ getEditingDomain().runExclusive(new Runnable() {
+
+ public void run() {
+ if (isActive() && isEditable()) {
+ if (theRequest
+ .getExtendedData()
+ .get(RequestConstants.REQ_DIRECTEDIT_EXTENDEDDATA_INITIAL_CHAR) instanceof Character) {
+ Character initialChar = (Character) theRequest
+ .getExtendedData()
+ .get(RequestConstants.REQ_DIRECTEDIT_EXTENDEDDATA_INITIAL_CHAR);
+ performDirectEdit(initialChar.charValue());
+ } else if ((theRequest instanceof DirectEditRequest)
+ && (getEditText().equals(getLabelText()))) {
+ DirectEditRequest editRequest = (DirectEditRequest) theRequest;
+ performDirectEdit(editRequest.getLocation());
+ } else {
+ performDirectEdit();
+ }
+ }
+ }
+ });
+ } catch (InterruptedException e) {
+ e.printStackTrace();
+ }
+ }
+
+ /**
+ * @generated
+ */
+ protected void refreshVisuals() {
+ super.refreshVisuals();
+ refreshLabel();
+ refreshFont();
+ refreshFontColor();
+ refreshUnderline();
+ refreshStrikeThrough();
+ }
+
+ /**
+ * @generated
+ */
+ protected void refreshLabel() {
+ setLabelTextHelper(getFigure(), getLabelText());
+ setLabelIconHelper(getFigure(), getLabelIcon());
+ Object pdEditPolicy = getEditPolicy(EditPolicy.PRIMARY_DRAG_ROLE);
+ if (pdEditPolicy instanceof ComrelTextSelectionEditPolicy) {
+ ((ComrelTextSelectionEditPolicy) pdEditPolicy).refreshFeedback();
+ }
+ Object sfEditPolicy = getEditPolicy(EditPolicy.SELECTION_FEEDBACK_ROLE);
+ if (sfEditPolicy instanceof ComrelTextSelectionEditPolicy) {
+ ((ComrelTextSelectionEditPolicy) sfEditPolicy).refreshFeedback();
+ }
+ }
+
+ /**
+ * @generated
+ */
+ protected void refreshUnderline() {
+ FontStyle style = (FontStyle) getFontStyleOwnerView().getStyle(
+ NotationPackage.eINSTANCE.getFontStyle());
+ if (style != null && getFigure() instanceof WrappingLabel) {
+ ((WrappingLabel) getFigure()).setTextUnderline(style.isUnderline());
+ }
+ }
+
+ /**
+ * @generated
+ */
+ protected void refreshStrikeThrough() {
+ FontStyle style = (FontStyle) getFontStyleOwnerView().getStyle(
+ NotationPackage.eINSTANCE.getFontStyle());
+ if (style != null && getFigure() instanceof WrappingLabel) {
+ ((WrappingLabel) getFigure()).setTextStrikeThrough(style
+ .isStrikeThrough());
+ }
+ }
+
+ /**
+ * @generated
+ */
+ protected void refreshFont() {
+ FontStyle style = (FontStyle) getFontStyleOwnerView().getStyle(
+ NotationPackage.eINSTANCE.getFontStyle());
+ if (style != null) {
+ FontData fontData = new FontData(style.getFontName(),
+ style.getFontHeight(), (style.isBold() ? SWT.BOLD
+ : SWT.NORMAL)
+ | (style.isItalic() ? SWT.ITALIC : SWT.NORMAL));
+ setFont(fontData);
+ }
+ }
+
+ /**
+ * @generated
+ */
+ protected void setFontColor(Color color) {
+ getFigure().setForegroundColor(color);
+ }
+
+ /**
+ * @generated
+ */
+ protected void addSemanticListeners() {
+ if (getParser() instanceof ISemanticParser) {
+ EObject element = resolveSemanticElement();
+ parserElements = ((ISemanticParser) getParser())
+ .getSemanticElementsBeingParsed(element);
+ for (int i = 0; i < parserElements.size(); i++) {
+ addListenerFilter(
+ "SemanticModel" + i, this, (EObject) parserElements.get(i)); //$NON-NLS-1$
+ }
+ } else {
+ super.addSemanticListeners();
+ }
+ }
+
+ /**
+ * @generated
+ */
+ protected void removeSemanticListeners() {
+ if (parserElements != null) {
+ for (int i = 0; i < parserElements.size(); i++) {
+ removeListenerFilter("SemanticModel" + i); //$NON-NLS-1$
+ }
+ } else {
+ super.removeSemanticListeners();
+ }
+ }
+
+ /**
+ * @generated
+ */
+ protected AccessibleEditPart getAccessibleEditPart() {
+ if (accessibleEP == null) {
+ accessibleEP = new AccessibleGraphicalEditPart() {
+
+ public void getName(AccessibleEvent e) {
+ e.result = getLabelTextHelper(getFigure());
+ }
+ };
+ }
+ return accessibleEP;
+ }
+
+ /**
+ * @generated
+ */
+ private View getFontStyleOwnerView() {
+ return getPrimaryView();
+ }
+
+ /**
+ * @generated
+ */
+ protected void handleNotificationEvent(Notification event) {
+ Object feature = event.getFeature();
+ if (NotationPackage.eINSTANCE.getFontStyle_FontColor().equals(feature)) {
+ Integer c = (Integer) event.getNewValue();
+ setFontColor(DiagramColorRegistry.getInstance().getColor(c));
+ } else if (NotationPackage.eINSTANCE.getFontStyle_Underline().equals(
+ feature)) {
+ refreshUnderline();
+ } else if (NotationPackage.eINSTANCE.getFontStyle_StrikeThrough()
+ .equals(feature)) {
+ refreshStrikeThrough();
+ } else if (NotationPackage.eINSTANCE.getFontStyle_FontHeight().equals(
+ feature)
+ || NotationPackage.eINSTANCE.getFontStyle_FontName().equals(
+ feature)
+ || NotationPackage.eINSTANCE.getFontStyle_Bold()
+ .equals(feature)
+ || NotationPackage.eINSTANCE.getFontStyle_Italic().equals(
+ feature)) {
+ refreshFont();
+ } else {
+ if (getParser() != null
+ && getParser().isAffectingEvent(event,
+ getParserOptions().intValue())) {
+ refreshLabel();
+ }
+ if (getParser() instanceof ISemanticParser) {
+ ISemanticParser modelParser = (ISemanticParser) getParser();
+ if (modelParser.areSemanticElementsAffected(null, event)) {
+ removeSemanticListeners();
+ if (resolveSemanticElement() != null) {
+ addSemanticListeners();
+ }
+ refreshLabel();
+ }
+ }
+ }
+ super.handleNotificationEvent(event);
+ }
+
+ /**
+ * @generated
+ */
+ protected IFigure createFigure() {
+ IFigure label = createFigurePrim();
+ defaultText = getLabelTextHelper(label);
+ return label;
+ }
+
+ /**
+ * @generated
+ */
+ protected IFigure createFigurePrim() {
+ return new SingleInputPortLabelFigure();
+ }
+
+ /**
+ * @generated
+ */
+ public class SingleInputPortLabelFigure extends WrappingLabel {
+
+ /**
+ * @generated
+ */
+ public SingleInputPortLabelFigure() {
+ this.setText("SingleInputPort");
+ }
+
+ }
+
+}
diff --git a/org.eclipse.emf.refactor.comrel.diagram/src/comrel/diagram/edit/parts/SingleInputPortNameTypeEditPart.java b/org.eclipse.emf.refactor.comrel.diagram/src/comrel/diagram/edit/parts/SingleInputPortNameTypeEditPart.java
new file mode 100644
index 0000000..f92473b
--- /dev/null
+++ b/org.eclipse.emf.refactor.comrel.diagram/src/comrel/diagram/edit/parts/SingleInputPortNameTypeEditPart.java
@@ -0,0 +1,631 @@
+/*
+ *
+ */
+package comrel.diagram.edit.parts;
+
+import java.util.Collections;
+import java.util.List;
+
+import org.eclipse.draw2d.IFigure;
+import org.eclipse.draw2d.Label;
+import org.eclipse.draw2d.geometry.Point;
+import org.eclipse.draw2d.geometry.Rectangle;
+import org.eclipse.emf.common.notify.Notification;
+import org.eclipse.emf.ecore.EObject;
+import org.eclipse.emf.transaction.RunnableWithResult;
+import org.eclipse.gef.AccessibleEditPart;
+import org.eclipse.gef.EditPolicy;
+import org.eclipse.gef.Request;
+import org.eclipse.gef.requests.DirectEditRequest;
+import org.eclipse.gef.tools.DirectEditManager;
+import org.eclipse.gmf.runtime.common.ui.services.parser.IParser;
+import org.eclipse.gmf.runtime.common.ui.services.parser.IParserEditStatus;
+import org.eclipse.gmf.runtime.common.ui.services.parser.ParserEditStatus;
+import org.eclipse.gmf.runtime.common.ui.services.parser.ParserOptions;
+import org.eclipse.gmf.runtime.diagram.ui.editparts.IBorderItemEditPart;
+import org.eclipse.gmf.runtime.diagram.ui.editparts.IGraphicalEditPart;
+import org.eclipse.gmf.runtime.diagram.ui.editparts.ITextAwareEditPart;
+import org.eclipse.gmf.runtime.diagram.ui.editparts.LabelEditPart;
+import org.eclipse.gmf.runtime.diagram.ui.editpolicies.LabelDirectEditPolicy;
+import org.eclipse.gmf.runtime.diagram.ui.figures.IBorderItemLocator;
+import org.eclipse.gmf.runtime.diagram.ui.l10n.DiagramColorRegistry;
+import org.eclipse.gmf.runtime.diagram.ui.requests.RequestConstants;
+import org.eclipse.gmf.runtime.diagram.ui.tools.TextDirectEditManager;
+import org.eclipse.gmf.runtime.draw2d.ui.figures.WrappingLabel;
+import org.eclipse.gmf.runtime.emf.core.util.EObjectAdapter;
+import org.eclipse.gmf.runtime.emf.ui.services.parser.ISemanticParser;
+import org.eclipse.gmf.runtime.notation.FontStyle;
+import org.eclipse.gmf.runtime.notation.NotationPackage;
+import org.eclipse.gmf.runtime.notation.View;
+import org.eclipse.jface.text.contentassist.IContentAssistProcessor;
+import org.eclipse.jface.viewers.ICellEditorValidator;
+import org.eclipse.swt.SWT;
+import org.eclipse.swt.accessibility.AccessibleEvent;
+import org.eclipse.swt.graphics.Color;
+import org.eclipse.swt.graphics.FontData;
+import org.eclipse.swt.graphics.Image;
+
+import comrel.diagram.edit.policies.ComrelTextSelectionEditPolicy;
+import comrel.diagram.part.ComrelVisualIDRegistry;
+import comrel.diagram.providers.ComrelElementTypes;
+import comrel.diagram.providers.ComrelParserProvider;
+
+/**
+ * @generated
+ */
+public class SingleInputPortNameTypeEditPart extends LabelEditPart implements
+ ITextAwareEditPart, IBorderItemEditPart {
+
+ /**
+ * @generated
+ */
+ public static final int VISUAL_ID = 5001;
+
+ /**
+ * @generated
+ */
+ private DirectEditManager manager;
+
+ /**
+ * @generated
+ */
+ private IParser parser;
+
+ /**
+ * @generated
+ */
+ private List<?> parserElements;
+
+ /**
+ * @generated
+ */
+ private String defaultText;
+
+ /**
+ * @generated
+ */
+ static {
+ registerSnapBackPosition(
+ ComrelVisualIDRegistry
+ .getType(comrel.diagram.edit.parts.SingleInputPortNameTypeEditPart.VISUAL_ID),
+ new Point(0, 0));
+ }
+
+ /**
+ * @generated
+ */
+ public SingleInputPortNameTypeEditPart(View view) {
+ super(view);
+ }
+
+ /**
+ * @generated
+ */
+ protected void createDefaultEditPolicies() {
+ super.createDefaultEditPolicies();
+ installEditPolicy(EditPolicy.DIRECT_EDIT_ROLE,
+ new LabelDirectEditPolicy());
+ installEditPolicy(EditPolicy.SELECTION_FEEDBACK_ROLE,
+ new ComrelTextSelectionEditPolicy());
+ }
+
+ /**
+ * @generated
+ */
+ public IBorderItemLocator getBorderItemLocator() {
+ IFigure parentFigure = getFigure().getParent();
+ if (parentFigure != null && parentFigure.getLayoutManager() != null) {
+ Object constraint = parentFigure.getLayoutManager().getConstraint(
+ getFigure());
+ return (IBorderItemLocator) constraint;
+ }
+ return null;
+ }
+
+ /**
+ * @generated
+ */
+ public void refreshBounds() {
+ int x = ((Integer) getStructuralFeatureValue(NotationPackage.eINSTANCE
+ .getLocation_X())).intValue();
+ int y = ((Integer) getStructuralFeatureValue(NotationPackage.eINSTANCE
+ .getLocation_Y())).intValue();
+ int width = ((Integer) getStructuralFeatureValue(NotationPackage.eINSTANCE
+ .getSize_Width())).intValue();
+ int height = ((Integer) getStructuralFeatureValue(NotationPackage.eINSTANCE
+ .getSize_Height())).intValue();
+ getBorderItemLocator()
+ .setConstraint(new Rectangle(x, y, width, height));
+ }
+
+ /**
+ * @generated
+ */
+ protected String getLabelTextHelper(IFigure figure) {
+ if (figure instanceof WrappingLabel) {
+ return ((WrappingLabel) figure).getText();
+ } else {
+ return ((Label) figure).getText();
+ }
+ }
+
+ /**
+ * @generated NOT
+ */
+ protected void setLabelTextHelper(IFigure figure, String text) {
+ int posDot = -1;
+ int posDouble = -1;
+ posDot = text.lastIndexOf(".");
+ posDouble = text.indexOf(":");
+ if (posDot > -1 && posDouble > -1) {
+ String first = text.substring(0, posDouble + 1);
+ String second = text.substring(posDot + 1);
+ text = first + second;
+ }
+ if (figure instanceof WrappingLabel) {
+ ((WrappingLabel) figure).setText(text);
+ } else {
+ ((Label) figure).setText(text);
+ }
+ }
+
+ /**
+ * @generated
+ */
+ protected Image getLabelIconHelper(IFigure figure) {
+ if (figure instanceof WrappingLabel) {
+ return ((WrappingLabel) figure).getIcon();
+ } else {
+ return ((Label) figure).getIcon();
+ }
+ }
+
+ /**
+ * @generated
+ */
+ protected void setLabelIconHelper(IFigure figure, Image icon) {
+ if (figure instanceof WrappingLabel) {
+ ((WrappingLabel) figure).setIcon(icon);
+ } else {
+ ((Label) figure).setIcon(icon);
+ }
+ }
+
+ /**
+ * @generated
+ */
+ public void setLabel(IFigure figure) {
+ unregisterVisuals();
+ setFigure(figure);
+ defaultText = getLabelTextHelper(figure);
+ registerVisuals();
+ refreshVisuals();
+ }
+
+ /**
+ * @generated
+ */
+ @SuppressWarnings("rawtypes")
+ protected List getModelChildren() {
+ return Collections.EMPTY_LIST;
+ }
+
+ /**
+ * @generated
+ */
+ public IGraphicalEditPart getChildBySemanticHint(String semanticHint) {
+ return null;
+ }
+
+ /**
+ * @generated
+ */
+ protected EObject getParserElement() {
+ return resolveSemanticElement();
+ }
+
+ /**
+ * @generated
+ */
+ protected Image getLabelIcon() {
+ return null;
+ }
+
+ /**
+ * @generated
+ */
+ protected String getLabelText() {
+ String text = null;
+ EObject parserElement = getParserElement();
+ if (parserElement != null && getParser() != null) {
+ text = getParser().getPrintString(
+ new EObjectAdapter(parserElement),
+ getParserOptions().intValue());
+ }
+ if (text == null || text.length() == 0) {
+ text = defaultText;
+ }
+ return text;
+ }
+
+ /**
+ * @generated
+ */
+ public void setLabelText(String text) {
+ setLabelTextHelper(getFigure(), text);
+ Object pdEditPolicy = getEditPolicy(EditPolicy.PRIMARY_DRAG_ROLE);
+ if (pdEditPolicy instanceof ComrelTextSelectionEditPolicy) {
+ ((ComrelTextSelectionEditPolicy) pdEditPolicy).refreshFeedback();
+ }
+ Object sfEditPolicy = getEditPolicy(EditPolicy.SELECTION_FEEDBACK_ROLE);
+ if (sfEditPolicy instanceof ComrelTextSelectionEditPolicy) {
+ ((ComrelTextSelectionEditPolicy) sfEditPolicy).refreshFeedback();
+ }
+ }
+
+ /**
+ * @generated
+ */
+ public String getEditText() {
+ if (getParserElement() == null || getParser() == null) {
+ return ""; //$NON-NLS-1$
+ }
+ return getParser().getEditString(
+ new EObjectAdapter(getParserElement()),
+ getParserOptions().intValue());
+ }
+
+ /**
+ * @generated
+ */
+ protected boolean isEditable() {
+ return getParser() != null;
+ }
+
+ /**
+ * @generated
+ */
+ public ICellEditorValidator getEditTextValidator() {
+ return new ICellEditorValidator() {
+
+ public String isValid(final Object value) {
+ if (value instanceof String) {
+ final EObject element = getParserElement();
+ final IParser parser = getParser();
+ try {
+ IParserEditStatus valid = (IParserEditStatus) getEditingDomain()
+ .runExclusive(
+ new RunnableWithResult.Impl<IParserEditStatus>() {
+
+ public void run() {
+ setResult(parser
+ .isValidEditString(
+ new EObjectAdapter(
+ element),
+ (String) value));
+ }
+ });
+ return valid.getCode() == ParserEditStatus.EDITABLE ? null
+ : valid.getMessage();
+ } catch (InterruptedException ie) {
+ ie.printStackTrace();
+ }
+ }
+
+ // shouldn't get here
+ return null;
+ }
+ };
+ }
+
+ /**
+ * @generated
+ */
+ public IContentAssistProcessor getCompletionProcessor() {
+ if (getParserElement() == null || getParser() == null) {
+ return null;
+ }
+ return getParser().getCompletionProcessor(
+ new EObjectAdapter(getParserElement()));
+ }
+
+ /**
+ * @generated
+ */
+ public ParserOptions getParserOptions() {
+ return ParserOptions.NONE;
+ }
+
+ /**
+ * @generated
+ */
+ public IParser getParser() {
+ if (parser == null) {
+ parser = ComrelParserProvider
+ .getParser(
+ ComrelElementTypes.SingleInputPort_2001,
+ getParserElement(),
+ ComrelVisualIDRegistry
+ .getType(comrel.diagram.edit.parts.SingleInputPortNameTypeEditPart.VISUAL_ID));
+ }
+ return parser;
+ }
+
+ /**
+ * @generated
+ */
+ protected DirectEditManager getManager() {
+ if (manager == null) {
+ setManager(new TextDirectEditManager(this,
+ TextDirectEditManager.getTextCellEditorClass(this),
+ ComrelEditPartFactory.getTextCellEditorLocator(this)));
+ }
+ return manager;
+ }
+
+ /**
+ * @generated
+ */
+ protected void setManager(DirectEditManager manager) {
+ this.manager = manager;
+ }
+
+ /**
+ * @generated
+ */
+ protected void performDirectEdit() {
+ getManager().show();
+ }
+
+ /**
+ * @generated
+ */
+ protected void performDirectEdit(Point eventLocation) {
+ if (getManager().getClass() == TextDirectEditManager.class) {
+ ((TextDirectEditManager) getManager()).show(eventLocation
+ .getSWTPoint());
+ }
+ }
+
+ /**
+ * @generated
+ */
+ private void performDirectEdit(char initialCharacter) {
+ if (getManager() instanceof TextDirectEditManager) {
+ ((TextDirectEditManager) getManager()).show(initialCharacter);
+ } else {
+ performDirectEdit();
+ }
+ }
+
+ /**
+ * @generated
+ */
+ protected void performDirectEditRequest(Request request) {
+ final Request theRequest = request;
+ try {
+ getEditingDomain().runExclusive(new Runnable() {
+
+ public void run() {
+ if (isActive() && isEditable()) {
+ if (theRequest
+ .getExtendedData()
+ .get(RequestConstants.REQ_DIRECTEDIT_EXTENDEDDATA_INITIAL_CHAR) instanceof Character) {
+ Character initialChar = (Character) theRequest
+ .getExtendedData()
+ .get(RequestConstants.REQ_DIRECTEDIT_EXTENDEDDATA_INITIAL_CHAR);
+ performDirectEdit(initialChar.charValue());
+ } else if ((theRequest instanceof DirectEditRequest)
+ && (getEditText().equals(getLabelText()))) {
+ DirectEditRequest editRequest = (DirectEditRequest) theRequest;
+ performDirectEdit(editRequest.getLocation());
+ } else {
+ performDirectEdit();
+ }
+ }
+ }
+ });
+ } catch (InterruptedException e) {
+ e.printStackTrace();
+ }
+ }
+
+ /**
+ * @generated
+ */
+ protected void refreshVisuals() {
+ super.refreshVisuals();
+ refreshLabel();
+ refreshFont();
+ refreshFontColor();
+ refreshUnderline();
+ refreshStrikeThrough();
+ }
+
+ /**
+ * @generated
+ */
+ protected void refreshLabel() {
+ setLabelTextHelper(getFigure(), getLabelText());
+ setLabelIconHelper(getFigure(), getLabelIcon());
+ Object pdEditPolicy = getEditPolicy(EditPolicy.PRIMARY_DRAG_ROLE);
+ if (pdEditPolicy instanceof ComrelTextSelectionEditPolicy) {
+ ((ComrelTextSelectionEditPolicy) pdEditPolicy).refreshFeedback();
+ }
+ Object sfEditPolicy = getEditPolicy(EditPolicy.SELECTION_FEEDBACK_ROLE);
+ if (sfEditPolicy instanceof ComrelTextSelectionEditPolicy) {
+ ((ComrelTextSelectionEditPolicy) sfEditPolicy).refreshFeedback();
+ }
+ }
+
+ /**
+ * @generated
+ */
+ protected void refreshUnderline() {
+ FontStyle style = (FontStyle) getFontStyleOwnerView().getStyle(
+ NotationPackage.eINSTANCE.getFontStyle());
+ if (style != null && getFigure() instanceof WrappingLabel) {
+ ((WrappingLabel) getFigure()).setTextUnderline(style.isUnderline());
+ }
+ }
+
+ /**
+ * @generated
+ */
+ protected void refreshStrikeThrough() {
+ FontStyle style = (FontStyle) getFontStyleOwnerView().getStyle(
+ NotationPackage.eINSTANCE.getFontStyle());
+ if (style != null && getFigure() instanceof WrappingLabel) {
+ ((WrappingLabel) getFigure()).setTextStrikeThrough(style
+ .isStrikeThrough());
+ }
+ }
+
+ /**
+ * @generated
+ */
+ protected void refreshFont() {
+ FontStyle style = (FontStyle) getFontStyleOwnerView().getStyle(
+ NotationPackage.eINSTANCE.getFontStyle());
+ if (style != null) {
+ FontData fontData = new FontData(style.getFontName(),
+ style.getFontHeight(), (style.isBold() ? SWT.BOLD
+ : SWT.NORMAL)
+ | (style.isItalic() ? SWT.ITALIC : SWT.NORMAL));
+ setFont(fontData);
+ }
+ }
+
+ /**
+ * @generated
+ */
+ protected void setFontColor(Color color) {
+ getFigure().setForegroundColor(color);
+ }
+
+ /**
+ * @generated
+ */
+ protected void addSemanticListeners() {
+ if (getParser() instanceof ISemanticParser) {
+ EObject element = resolveSemanticElement();
+ parserElements = ((ISemanticParser) getParser())
+ .getSemanticElementsBeingParsed(element);
+ for (int i = 0; i < parserElements.size(); i++) {
+ addListenerFilter(
+ "SemanticModel" + i, this, (EObject) parserElements.get(i)); //$NON-NLS-1$
+ }
+ } else {
+ super.addSemanticListeners();
+ }
+ }
+
+ /**
+ * @generated
+ */
+ protected void removeSemanticListeners() {
+ if (parserElements != null) {
+ for (int i = 0; i < parserElements.size(); i++) {
+ removeListenerFilter("SemanticModel" + i); //$NON-NLS-1$
+ }
+ } else {
+ super.removeSemanticListeners();
+ }
+ }
+
+ /**
+ * @generated
+ */
+ protected AccessibleEditPart getAccessibleEditPart() {
+ if (accessibleEP == null) {
+ accessibleEP = new AccessibleGraphicalEditPart() {
+
+ public void getName(AccessibleEvent e) {
+ e.result = getLabelTextHelper(getFigure());
+ }
+ };
+ }
+ return accessibleEP;
+ }
+
+ /**
+ * @generated
+ */
+ private View getFontStyleOwnerView() {
+ return getPrimaryView();
+ }
+
+ /**
+ * @generated
+ */
+ protected void handleNotificationEvent(Notification event) {
+ Object feature = event.getFeature();
+ if (NotationPackage.eINSTANCE.getFontStyle_FontColor().equals(feature)) {
+ Integer c = (Integer) event.getNewValue();
+ setFontColor(DiagramColorRegistry.getInstance().getColor(c));
+ } else if (NotationPackage.eINSTANCE.getFontStyle_Underline().equals(
+ feature)) {
+ refreshUnderline();
+ } else if (NotationPackage.eINSTANCE.getFontStyle_StrikeThrough()
+ .equals(feature)) {
+ refreshStrikeThrough();
+ } else if (NotationPackage.eINSTANCE.getFontStyle_FontHeight().equals(
+ feature)
+ || NotationPackage.eINSTANCE.getFontStyle_FontName().equals(
+ feature)
+ || NotationPackage.eINSTANCE.getFontStyle_Bold()
+ .equals(feature)
+ || NotationPackage.eINSTANCE.getFontStyle_Italic().equals(
+ feature)) {
+ refreshFont();
+ } else {
+ if (getParser() != null
+ && getParser().isAffectingEvent(event,
+ getParserOptions().intValue())) {
+ refreshLabel();
+ }
+ if (getParser() instanceof ISemanticParser) {
+ ISemanticParser modelParser = (ISemanticParser) getParser();
+ if (modelParser.areSemanticElementsAffected(null, event)) {
+ removeSemanticListeners();
+ if (resolveSemanticElement() != null) {
+ addSemanticListeners();
+ }
+ refreshLabel();
+ }
+ }
+ }
+ super.handleNotificationEvent(event);
+ }
+
+ /**
+ * @generated
+ */
+ protected IFigure createFigure() {
+ IFigure label = createFigurePrim();
+ defaultText = getLabelTextHelper(label);
+ return label;
+ }
+
+ /**
+ * @generated
+ */
+ protected IFigure createFigurePrim() {
+ return new SingleInputPortLabelFigure();
+ }
+
+ /**
+ * @generated
+ */
+ public class SingleInputPortLabelFigure extends WrappingLabel {
+
+ /**
+ * @generated
+ */
+ public SingleInputPortLabelFigure() {
+ this.setText("SingleInputPort");
+ }
+
+ }
+
+}
diff --git a/org.eclipse.emf.refactor.comrel.diagram/src/comrel/diagram/edit/parts/SingleOutputPort2EditPart.java b/org.eclipse.emf.refactor.comrel.diagram/src/comrel/diagram/edit/parts/SingleOutputPort2EditPart.java
new file mode 100644
index 0000000..1b3f21b
--- /dev/null
+++ b/org.eclipse.emf.refactor.comrel.diagram/src/comrel/diagram/edit/parts/SingleOutputPort2EditPart.java
@@ -0,0 +1,332 @@
+/*
+ *
+ */
+package comrel.diagram.edit.parts;
+
+import java.util.ArrayList;
+import java.util.Collections;
+import java.util.LinkedList;
+import java.util.List;
+
+import org.eclipse.draw2d.Ellipse;
+import org.eclipse.draw2d.IFigure;
+import org.eclipse.draw2d.MarginBorder;
+import org.eclipse.draw2d.PositionConstants;
+import org.eclipse.draw2d.Shape;
+import org.eclipse.draw2d.StackLayout;
+import org.eclipse.draw2d.geometry.Dimension;
+import org.eclipse.gef.EditPart;
+import org.eclipse.gef.EditPolicy;
+import org.eclipse.gef.GraphicalEditPart;
+import org.eclipse.gef.Request;
+import org.eclipse.gef.commands.Command;
+import org.eclipse.gef.editpolicies.LayoutEditPolicy;
+import org.eclipse.gef.editpolicies.NonResizableEditPolicy;
+import org.eclipse.gef.handles.MoveHandle;
+import org.eclipse.gef.requests.CreateRequest;
+import org.eclipse.gmf.runtime.diagram.ui.editparts.BorderedBorderItemEditPart;
+import org.eclipse.gmf.runtime.diagram.ui.editparts.IBorderItemEditPart;
+import org.eclipse.gmf.runtime.diagram.ui.editparts.IGraphicalEditPart;
+import org.eclipse.gmf.runtime.diagram.ui.editpolicies.BorderItemSelectionEditPolicy;
+import org.eclipse.gmf.runtime.diagram.ui.editpolicies.EditPolicyRoles;
+import org.eclipse.gmf.runtime.diagram.ui.figures.BorderItemLocator;
+import org.eclipse.gmf.runtime.draw2d.ui.figures.WrappingLabel;
+import org.eclipse.gmf.runtime.emf.type.core.IElementType;
+import org.eclipse.gmf.runtime.gef.ui.figures.DefaultSizeNodeFigure;
+import org.eclipse.gmf.runtime.gef.ui.figures.NodeFigure;
+import org.eclipse.gmf.runtime.notation.View;
+import org.eclipse.swt.graphics.Color;
+
+import comrel.OutputPort;
+import comrel.diagram.edit.policies.SingleOutputPort2ItemSemanticEditPolicy;
+import comrel.diagram.part.ComrelVisualIDRegistry;
+import comrel.diagram.providers.ComrelElementTypes;
+import comrel.figures.OutputPortFigure;
+
+/**
+ * @generated
+ */
+public class SingleOutputPort2EditPart extends BorderedBorderItemEditPart {
+
+ /**
+ * @generated
+ */
+ public static final int VISUAL_ID = 3018;
+
+ /**
+ * @generated
+ */
+ protected IFigure contentPane;
+
+ /**
+ * @generated
+ */
+ protected IFigure primaryShape;
+
+ /**
+ * @generated
+ */
+ public SingleOutputPort2EditPart(View view) {
+ super(view);
+ }
+
+ /**
+ * @generated
+ */
+ protected void createDefaultEditPolicies() {
+ super.createDefaultEditPolicies();
+ installEditPolicy(EditPolicy.PRIMARY_DRAG_ROLE,
+ getPrimaryDragEditPolicy());
+ installEditPolicy(EditPolicyRoles.SEMANTIC_ROLE,
+ new SingleOutputPort2ItemSemanticEditPolicy());
+ installEditPolicy(EditPolicy.LAYOUT_ROLE, createLayoutEditPolicy());
+ // XXX need an SCR to runtime to have another abstract superclass that would let children add reasonable editpolicies
+ // removeEditPolicy(org.eclipse.gmf.runtime.diagram.ui.editpolicies.EditPolicyRoles.CONNECTION_HANDLES_ROLE);
+ }
+
+ /**
+ * @generated
+ */
+ protected LayoutEditPolicy createLayoutEditPolicy() {
+ org.eclipse.gmf.runtime.diagram.ui.editpolicies.LayoutEditPolicy lep = new org.eclipse.gmf.runtime.diagram.ui.editpolicies.LayoutEditPolicy() {
+
+ protected EditPolicy createChildEditPolicy(EditPart child) {
+ View childView = (View) child.getModel();
+ switch (ComrelVisualIDRegistry.getVisualID(childView)) {
+ case SingleOutputPortNameType2EditPart.VISUAL_ID:
+ return new BorderItemSelectionEditPolicy() {
+
+ protected List createSelectionHandles() {
+ MoveHandle mh = new MoveHandle(
+ (GraphicalEditPart) getHost());
+ mh.setBorder(null);
+ return Collections.singletonList(mh);
+ }
+ };
+ }
+ EditPolicy result = child
+ .getEditPolicy(EditPolicy.PRIMARY_DRAG_ROLE);
+ if (result == null) {
+ result = new NonResizableEditPolicy();
+ }
+ return result;
+ }
+
+ protected Command getMoveChildrenCommand(Request request) {
+ return null;
+ }
+
+ protected Command getCreateCommand(CreateRequest request) {
+ return null;
+ }
+ };
+ return lep;
+ }
+
+ /**
+ * @generated NOT
+ */
+ protected IFigure createNodeShape() {
+ SingleOutputPortFigure figure = new SingleOutputPortFigure();
+ OutputPort port = (OutputPort) this.resolveSemanticElement();
+ figure.setPort(port);
+ return primaryShape = figure;
+ }
+
+ /**
+ * @generated
+ */
+ public SingleOutputPortFigure getPrimaryShape() {
+ return (SingleOutputPortFigure) primaryShape;
+ }
+
+ /**
+ * @generated
+ */
+ protected void addBorderItem(IFigure borderItemContainer,
+ IBorderItemEditPart borderItemEditPart) {
+ if (borderItemEditPart instanceof SingleOutputPortNameType2EditPart) {
+ BorderItemLocator locator = new BorderItemLocator(getMainFigure(),
+ PositionConstants.SOUTH);
+ locator.setBorderItemOffset(new Dimension(-20, -20));
+ borderItemContainer.add(borderItemEditPart.getFigure(), locator);
+ } else {
+ super.addBorderItem(borderItemContainer, borderItemEditPart);
+ }
+ }
+
+ /**
+ * @generated
+ */
+ protected NodeFigure createNodePlate() {
+ DefaultSizeNodeFigure result = new DefaultSizeNodeFigure(20, 20);
+
+ //FIXME: workaround for #154536
+ result.getBounds().setSize(result.getPreferredSize());
+ return result;
+ }
+
+ /**
+ * Creates figure for this edit part.
+ *
+ * Body of this method does not depend on settings in generation model
+ * so you may safely remove <i>generated</i> tag and modify it.
+ *
+ * @generated
+ */
+ protected NodeFigure createMainFigure() {
+ NodeFigure figure = createNodePlate();
+ figure.setLayoutManager(new StackLayout());
+ IFigure shape = createNodeShape();
+ figure.add(shape);
+ contentPane = setupContentPane(shape);
+ return figure;
+ }
+
+ /**
+ * Default implementation treats passed figure as content pane.
+ * Respects layout one may have set for generated figure.
+ * @param nodeShape instance of generated figure class
+ * @generated
+ */
+ protected IFigure setupContentPane(IFigure nodeShape) {
+ return nodeShape; // use nodeShape itself as contentPane
+ }
+
+ /**
+ * @generated
+ */
+ public IFigure getContentPane() {
+ if (contentPane != null) {
+ return contentPane;
+ }
+ return super.getContentPane();
+ }
+
+ /**
+ * @generated
+ */
+ protected void setForegroundColor(Color color) {
+ if (primaryShape != null) {
+ primaryShape.setForegroundColor(color);
+ }
+ }
+
+ /**
+ * @generated
+ */
+ protected void setBackgroundColor(Color color) {
+ if (primaryShape != null) {
+ primaryShape.setBackgroundColor(color);
+ }
+ }
+
+ /**
+ * @generated
+ */
+ protected void setLineWidth(int width) {
+ if (primaryShape instanceof Shape) {
+ ((Shape) primaryShape).setLineWidth(width);
+ }
+ }
+
+ /**
+ * @generated
+ */
+ protected void setLineType(int style) {
+ if (primaryShape instanceof Shape) {
+ ((Shape) primaryShape).setLineStyle(style);
+ }
+ }
+
+ /**
+ * @generated
+ */
+ public EditPart getPrimaryChildEditPart() {
+ return getChildBySemanticHint(ComrelVisualIDRegistry
+ .getType(SingleOutputPortNameType2EditPart.VISUAL_ID));
+ }
+
+ /**
+ * @generated
+ */
+ public List<IElementType> getMARelTypesOnSource() {
+ ArrayList<IElementType> types = new ArrayList<IElementType>(1);
+ types.add(ComrelElementTypes.SinglePortMapping_4001);
+ return types;
+ }
+
+ /**
+ * @generated
+ */
+ public List<IElementType> getMARelTypesOnSourceAndTarget(
+ IGraphicalEditPart targetEditPart) {
+ LinkedList<IElementType> types = new LinkedList<IElementType>();
+ if (targetEditPart instanceof SingleInputPortEditPart) {
+ types.add(ComrelElementTypes.SinglePortMapping_4001);
+ }
+ if (targetEditPart instanceof SingleInputPort2EditPart) {
+ types.add(ComrelElementTypes.SinglePortMapping_4001);
+ }
+ if (targetEditPart instanceof SingleInputPort3EditPart) {
+ types.add(ComrelElementTypes.SinglePortMapping_4001);
+ }
+ if (targetEditPart instanceof SingleInputPort4EditPart) {
+ types.add(ComrelElementTypes.SinglePortMapping_4001);
+ }
+ if (targetEditPart instanceof SingleInputPort5EditPart) {
+ types.add(ComrelElementTypes.SinglePortMapping_4001);
+ }
+ if (targetEditPart instanceof SingleInputPort6EditPart) {
+ types.add(ComrelElementTypes.SinglePortMapping_4001);
+ }
+ if (targetEditPart instanceof SingleInputPort7EditPart) {
+ types.add(ComrelElementTypes.SinglePortMapping_4001);
+ }
+ if (targetEditPart instanceof SingleInputPort8EditPart) {
+ types.add(ComrelElementTypes.SinglePortMapping_4001);
+ }
+ if (targetEditPart instanceof SingleInputPort9EditPart) {
+ types.add(ComrelElementTypes.SinglePortMapping_4001);
+ }
+ return types;
+ }
+
+ /**
+ * @generated
+ */
+ public List<IElementType> getMATypesForTarget(IElementType relationshipType) {
+ LinkedList<IElementType> types = new LinkedList<IElementType>();
+ if (relationshipType == ComrelElementTypes.SinglePortMapping_4001) {
+ types.add(ComrelElementTypes.SingleInputPort_2001);
+ types.add(ComrelElementTypes.SingleInputPort_3001);
+ types.add(ComrelElementTypes.SingleInputPort_3005);
+ types.add(ComrelElementTypes.SingleInputPort_3009);
+ types.add(ComrelElementTypes.SingleInputPort_3013);
+ types.add(ComrelElementTypes.SingleInputPort_3023);
+ types.add(ComrelElementTypes.SingleInputPort_3027);
+ types.add(ComrelElementTypes.SingleInputPort_3031);
+ types.add(ComrelElementTypes.SingleInputPort_3035);
+ }
+ return types;
+ }
+
+ /**
+ * @generated NOT
+ */
+ public class SingleOutputPortFigure extends OutputPortFigure {
+
+ /**
+ * @generated
+ */
+ public SingleOutputPortFigure() {
+ this.setPreferredSize(new Dimension(getMapMode().DPtoLP(20),
+ getMapMode().DPtoLP(20)));
+ this.setBorder(new MarginBorder(getMapMode().DPtoLP(5),
+ getMapMode().DPtoLP(5), getMapMode().DPtoLP(5),
+ getMapMode().DPtoLP(5)));
+ }
+
+ }
+
+}
diff --git a/org.eclipse.emf.refactor.comrel.diagram/src/comrel/diagram/edit/parts/SingleOutputPortEditPart.java b/org.eclipse.emf.refactor.comrel.diagram/src/comrel/diagram/edit/parts/SingleOutputPortEditPart.java
new file mode 100644
index 0000000..e56b5f7
--- /dev/null
+++ b/org.eclipse.emf.refactor.comrel.diagram/src/comrel/diagram/edit/parts/SingleOutputPortEditPart.java
@@ -0,0 +1,332 @@
+/*
+ *
+ */
+package comrel.diagram.edit.parts;
+
+import java.util.ArrayList;
+import java.util.Collections;
+import java.util.LinkedList;
+import java.util.List;
+
+import org.eclipse.draw2d.Ellipse;
+import org.eclipse.draw2d.IFigure;
+import org.eclipse.draw2d.MarginBorder;
+import org.eclipse.draw2d.PositionConstants;
+import org.eclipse.draw2d.Shape;
+import org.eclipse.draw2d.StackLayout;
+import org.eclipse.draw2d.geometry.Dimension;
+import org.eclipse.gef.EditPart;
+import org.eclipse.gef.EditPolicy;
+import org.eclipse.gef.GraphicalEditPart;
+import org.eclipse.gef.Request;
+import org.eclipse.gef.commands.Command;
+import org.eclipse.gef.editpolicies.LayoutEditPolicy;
+import org.eclipse.gef.editpolicies.NonResizableEditPolicy;
+import org.eclipse.gef.handles.MoveHandle;
+import org.eclipse.gef.requests.CreateRequest;
+import org.eclipse.gmf.runtime.diagram.ui.editparts.BorderedBorderItemEditPart;
+import org.eclipse.gmf.runtime.diagram.ui.editparts.IBorderItemEditPart;
+import org.eclipse.gmf.runtime.diagram.ui.editparts.IGraphicalEditPart;
+import org.eclipse.gmf.runtime.diagram.ui.editpolicies.BorderItemSelectionEditPolicy;
+import org.eclipse.gmf.runtime.diagram.ui.editpolicies.EditPolicyRoles;
+import org.eclipse.gmf.runtime.diagram.ui.figures.BorderItemLocator;
+import org.eclipse.gmf.runtime.draw2d.ui.figures.WrappingLabel;
+import org.eclipse.gmf.runtime.emf.type.core.IElementType;
+import org.eclipse.gmf.runtime.gef.ui.figures.DefaultSizeNodeFigure;
+import org.eclipse.gmf.runtime.gef.ui.figures.NodeFigure;
+import org.eclipse.gmf.runtime.notation.View;
+import org.eclipse.swt.graphics.Color;
+
+import comrel.OutputPort;
+import comrel.diagram.edit.policies.SingleOutputPortItemSemanticEditPolicy;
+import comrel.diagram.part.ComrelVisualIDRegistry;
+import comrel.diagram.providers.ComrelElementTypes;
+import comrel.figures.OutputPortFigure;
+
+/**
+ * @generated
+ */
+public class SingleOutputPortEditPart extends BorderedBorderItemEditPart {
+
+ /**
+ * @generated
+ */
+ public static final int VISUAL_ID = 3011;
+
+ /**
+ * @generated
+ */
+ protected IFigure contentPane;
+
+ /**
+ * @generated
+ */
+ protected IFigure primaryShape;
+
+ /**
+ * @generated
+ */
+ public SingleOutputPortEditPart(View view) {
+ super(view);
+ }
+
+ /**
+ * @generated
+ */
+ protected void createDefaultEditPolicies() {
+ super.createDefaultEditPolicies();
+ installEditPolicy(EditPolicy.PRIMARY_DRAG_ROLE,
+ getPrimaryDragEditPolicy());
+ installEditPolicy(EditPolicyRoles.SEMANTIC_ROLE,
+ new SingleOutputPortItemSemanticEditPolicy());
+ installEditPolicy(EditPolicy.LAYOUT_ROLE, createLayoutEditPolicy());
+ // XXX need an SCR to runtime to have another abstract superclass that would let children add reasonable editpolicies
+ // removeEditPolicy(org.eclipse.gmf.runtime.diagram.ui.editpolicies.EditPolicyRoles.CONNECTION_HANDLES_ROLE);
+ }
+
+ /**
+ * @generated
+ */
+ protected LayoutEditPolicy createLayoutEditPolicy() {
+ org.eclipse.gmf.runtime.diagram.ui.editpolicies.LayoutEditPolicy lep = new org.eclipse.gmf.runtime.diagram.ui.editpolicies.LayoutEditPolicy() {
+
+ protected EditPolicy createChildEditPolicy(EditPart child) {
+ View childView = (View) child.getModel();
+ switch (ComrelVisualIDRegistry.getVisualID(childView)) {
+ case SingleOutputPortNameTypeEditPart.VISUAL_ID:
+ return new BorderItemSelectionEditPolicy() {
+
+ protected List createSelectionHandles() {
+ MoveHandle mh = new MoveHandle(
+ (GraphicalEditPart) getHost());
+ mh.setBorder(null);
+ return Collections.singletonList(mh);
+ }
+ };
+ }
+ EditPolicy result = child
+ .getEditPolicy(EditPolicy.PRIMARY_DRAG_ROLE);
+ if (result == null) {
+ result = new NonResizableEditPolicy();
+ }
+ return result;
+ }
+
+ protected Command getMoveChildrenCommand(Request request) {
+ return null;
+ }
+
+ protected Command getCreateCommand(CreateRequest request) {
+ return null;
+ }
+ };
+ return lep;
+ }
+
+ /**
+ * @generated NOT
+ */
+ protected IFigure createNodeShape() {
+ SingleOutputPortFigure figure = new SingleOutputPortFigure();
+ OutputPort port = (OutputPort) this.resolveSemanticElement();
+ figure.setPort(port);
+ return primaryShape = figure;
+ }
+
+ /**
+ * @generated
+ */
+ public SingleOutputPortFigure getPrimaryShape() {
+ return (SingleOutputPortFigure) primaryShape;
+ }
+
+ /**
+ * @generated
+ */
+ protected void addBorderItem(IFigure borderItemContainer,
+ IBorderItemEditPart borderItemEditPart) {
+ if (borderItemEditPart instanceof SingleOutputPortNameTypeEditPart) {
+ BorderItemLocator locator = new BorderItemLocator(getMainFigure(),
+ PositionConstants.SOUTH);
+ locator.setBorderItemOffset(new Dimension(-20, -20));
+ borderItemContainer.add(borderItemEditPart.getFigure(), locator);
+ } else {
+ super.addBorderItem(borderItemContainer, borderItemEditPart);
+ }
+ }
+
+ /**
+ * @generated
+ */
+ protected NodeFigure createNodePlate() {
+ DefaultSizeNodeFigure result = new DefaultSizeNodeFigure(20, 20);
+
+ //FIXME: workaround for #154536
+ result.getBounds().setSize(result.getPreferredSize());
+ return result;
+ }
+
+ /**
+ * Creates figure for this edit part.
+ *
+ * Body of this method does not depend on settings in generation model
+ * so you may safely remove <i>generated</i> tag and modify it.
+ *
+ * @generated
+ */
+ protected NodeFigure createMainFigure() {
+ NodeFigure figure = createNodePlate();
+ figure.setLayoutManager(new StackLayout());
+ IFigure shape = createNodeShape();
+ figure.add(shape);
+ contentPane = setupContentPane(shape);
+ return figure;
+ }
+
+ /**
+ * Default implementation treats passed figure as content pane.
+ * Respects layout one may have set for generated figure.
+ * @param nodeShape instance of generated figure class
+ * @generated
+ */
+ protected IFigure setupContentPane(IFigure nodeShape) {
+ return nodeShape; // use nodeShape itself as contentPane
+ }
+
+ /**
+ * @generated
+ */
+ public IFigure getContentPane() {
+ if (contentPane != null) {
+ return contentPane;
+ }
+ return super.getContentPane();
+ }
+
+ /**
+ * @generated
+ */
+ protected void setForegroundColor(Color color) {
+ if (primaryShape != null) {
+ primaryShape.setForegroundColor(color);
+ }
+ }
+
+ /**
+ * @generated
+ */
+ protected void setBackgroundColor(Color color) {
+ if (primaryShape != null) {
+ primaryShape.setBackgroundColor(color);
+ }
+ }
+
+ /**
+ * @generated
+ */
+ protected void setLineWidth(int width) {
+ if (primaryShape instanceof Shape) {
+ ((Shape) primaryShape).setLineWidth(width);
+ }
+ }
+
+ /**
+ * @generated
+ */
+ protected void setLineType(int style) {
+ if (primaryShape instanceof Shape) {
+ ((Shape) primaryShape).setLineStyle(style);
+ }
+ }
+
+ /**
+ * @generated
+ */
+ public EditPart getPrimaryChildEditPart() {
+ return getChildBySemanticHint(ComrelVisualIDRegistry
+ .getType(SingleOutputPortNameTypeEditPart.VISUAL_ID));
+ }
+
+ /**
+ * @generated
+ */
+ public List<IElementType> getMARelTypesOnSource() {
+ ArrayList<IElementType> types = new ArrayList<IElementType>(1);
+ types.add(ComrelElementTypes.SinglePortMapping_4001);
+ return types;
+ }
+
+ /**
+ * @generated
+ */
+ public List<IElementType> getMARelTypesOnSourceAndTarget(
+ IGraphicalEditPart targetEditPart) {
+ LinkedList<IElementType> types = new LinkedList<IElementType>();
+ if (targetEditPart instanceof SingleInputPortEditPart) {
+ types.add(ComrelElementTypes.SinglePortMapping_4001);
+ }
+ if (targetEditPart instanceof SingleInputPort2EditPart) {
+ types.add(ComrelElementTypes.SinglePortMapping_4001);
+ }
+ if (targetEditPart instanceof SingleInputPort3EditPart) {
+ types.add(ComrelElementTypes.SinglePortMapping_4001);
+ }
+ if (targetEditPart instanceof SingleInputPort4EditPart) {
+ types.add(ComrelElementTypes.SinglePortMapping_4001);
+ }
+ if (targetEditPart instanceof SingleInputPort5EditPart) {
+ types.add(ComrelElementTypes.SinglePortMapping_4001);
+ }
+ if (targetEditPart instanceof SingleInputPort6EditPart) {
+ types.add(ComrelElementTypes.SinglePortMapping_4001);
+ }
+ if (targetEditPart instanceof SingleInputPort7EditPart) {
+ types.add(ComrelElementTypes.SinglePortMapping_4001);
+ }
+ if (targetEditPart instanceof SingleInputPort8EditPart) {
+ types.add(ComrelElementTypes.SinglePortMapping_4001);
+ }
+ if (targetEditPart instanceof SingleInputPort9EditPart) {
+ types.add(ComrelElementTypes.SinglePortMapping_4001);
+ }
+ return types;
+ }
+
+ /**
+ * @generated
+ */
+ public List<IElementType> getMATypesForTarget(IElementType relationshipType) {
+ LinkedList<IElementType> types = new LinkedList<IElementType>();
+ if (relationshipType == ComrelElementTypes.SinglePortMapping_4001) {
+ types.add(ComrelElementTypes.SingleInputPort_2001);
+ types.add(ComrelElementTypes.SingleInputPort_3001);
+ types.add(ComrelElementTypes.SingleInputPort_3005);
+ types.add(ComrelElementTypes.SingleInputPort_3009);
+ types.add(ComrelElementTypes.SingleInputPort_3013);
+ types.add(ComrelElementTypes.SingleInputPort_3023);
+ types.add(ComrelElementTypes.SingleInputPort_3027);
+ types.add(ComrelElementTypes.SingleInputPort_3031);
+ types.add(ComrelElementTypes.SingleInputPort_3035);
+ }
+ return types;
+ }
+
+ /**
+ * @generated NOT
+ */
+ public class SingleOutputPortFigure extends OutputPortFigure {
+
+ /**
+ * @generated
+ */
+ public SingleOutputPortFigure() {
+ this.setPreferredSize(new Dimension(getMapMode().DPtoLP(20),
+ getMapMode().DPtoLP(20)));
+ this.setBorder(new MarginBorder(getMapMode().DPtoLP(5),
+ getMapMode().DPtoLP(5), getMapMode().DPtoLP(5),
+ getMapMode().DPtoLP(5)));
+ }
+
+ }
+
+}
diff --git a/org.eclipse.emf.refactor.comrel.diagram/src/comrel/diagram/edit/parts/SingleOutputPortNameType2EditPart.java b/org.eclipse.emf.refactor.comrel.diagram/src/comrel/diagram/edit/parts/SingleOutputPortNameType2EditPart.java
new file mode 100644
index 0000000..2f91209
--- /dev/null
+++ b/org.eclipse.emf.refactor.comrel.diagram/src/comrel/diagram/edit/parts/SingleOutputPortNameType2EditPart.java
@@ -0,0 +1,631 @@
+/*
+ *
+ */
+package comrel.diagram.edit.parts;
+
+import java.util.Collections;
+import java.util.List;
+
+import org.eclipse.draw2d.IFigure;
+import org.eclipse.draw2d.Label;
+import org.eclipse.draw2d.geometry.Point;
+import org.eclipse.draw2d.geometry.Rectangle;
+import org.eclipse.emf.common.notify.Notification;
+import org.eclipse.emf.ecore.EObject;
+import org.eclipse.emf.transaction.RunnableWithResult;
+import org.eclipse.gef.AccessibleEditPart;
+import org.eclipse.gef.EditPolicy;
+import org.eclipse.gef.Request;
+import org.eclipse.gef.requests.DirectEditRequest;
+import org.eclipse.gef.tools.DirectEditManager;
+import org.eclipse.gmf.runtime.common.ui.services.parser.IParser;
+import org.eclipse.gmf.runtime.common.ui.services.parser.IParserEditStatus;
+import org.eclipse.gmf.runtime.common.ui.services.parser.ParserEditStatus;
+import org.eclipse.gmf.runtime.common.ui.services.parser.ParserOptions;
+import org.eclipse.gmf.runtime.diagram.ui.editparts.IBorderItemEditPart;
+import org.eclipse.gmf.runtime.diagram.ui.editparts.IGraphicalEditPart;
+import org.eclipse.gmf.runtime.diagram.ui.editparts.ITextAwareEditPart;
+import org.eclipse.gmf.runtime.diagram.ui.editparts.LabelEditPart;
+import org.eclipse.gmf.runtime.diagram.ui.editpolicies.LabelDirectEditPolicy;
+import org.eclipse.gmf.runtime.diagram.ui.figures.IBorderItemLocator;
+import org.eclipse.gmf.runtime.diagram.ui.l10n.DiagramColorRegistry;
+import org.eclipse.gmf.runtime.diagram.ui.requests.RequestConstants;
+import org.eclipse.gmf.runtime.diagram.ui.tools.TextDirectEditManager;
+import org.eclipse.gmf.runtime.draw2d.ui.figures.WrappingLabel;
+import org.eclipse.gmf.runtime.emf.core.util.EObjectAdapter;
+import org.eclipse.gmf.runtime.emf.ui.services.parser.ISemanticParser;
+import org.eclipse.gmf.runtime.notation.FontStyle;
+import org.eclipse.gmf.runtime.notation.NotationPackage;
+import org.eclipse.gmf.runtime.notation.View;
+import org.eclipse.jface.text.contentassist.IContentAssistProcessor;
+import org.eclipse.jface.viewers.ICellEditorValidator;
+import org.eclipse.swt.SWT;
+import org.eclipse.swt.accessibility.AccessibleEvent;
+import org.eclipse.swt.graphics.Color;
+import org.eclipse.swt.graphics.FontData;
+import org.eclipse.swt.graphics.Image;
+
+import comrel.diagram.edit.policies.ComrelTextSelectionEditPolicy;
+import comrel.diagram.part.ComrelVisualIDRegistry;
+import comrel.diagram.providers.ComrelElementTypes;
+import comrel.diagram.providers.ComrelParserProvider;
+
+/**
+ * @generated
+ */
+public class SingleOutputPortNameType2EditPart extends LabelEditPart implements
+ ITextAwareEditPart, IBorderItemEditPart {
+
+ /**
+ * @generated
+ */
+ public static final int VISUAL_ID = 5015;
+
+ /**
+ * @generated
+ */
+ private DirectEditManager manager;
+
+ /**
+ * @generated
+ */
+ private IParser parser;
+
+ /**
+ * @generated
+ */
+ private List<?> parserElements;
+
+ /**
+ * @generated
+ */
+ private String defaultText;
+
+ /**
+ * @generated
+ */
+ static {
+ registerSnapBackPosition(
+ ComrelVisualIDRegistry
+ .getType(comrel.diagram.edit.parts.SingleOutputPortNameType2EditPart.VISUAL_ID),
+ new Point(0, 0));
+ }
+
+ /**
+ * @generated
+ */
+ public SingleOutputPortNameType2EditPart(View view) {
+ super(view);
+ }
+
+ /**
+ * @generated
+ */
+ protected void createDefaultEditPolicies() {
+ super.createDefaultEditPolicies();
+ installEditPolicy(EditPolicy.DIRECT_EDIT_ROLE,
+ new LabelDirectEditPolicy());
+ installEditPolicy(EditPolicy.SELECTION_FEEDBACK_ROLE,
+ new ComrelTextSelectionEditPolicy());
+ }
+
+ /**
+ * @generated
+ */
+ public IBorderItemLocator getBorderItemLocator() {
+ IFigure parentFigure = getFigure().getParent();
+ if (parentFigure != null && parentFigure.getLayoutManager() != null) {
+ Object constraint = parentFigure.getLayoutManager().getConstraint(
+ getFigure());
+ return (IBorderItemLocator) constraint;
+ }
+ return null;
+ }
+
+ /**
+ * @generated
+ */
+ public void refreshBounds() {
+ int x = ((Integer) getStructuralFeatureValue(NotationPackage.eINSTANCE
+ .getLocation_X())).intValue();
+ int y = ((Integer) getStructuralFeatureValue(NotationPackage.eINSTANCE
+ .getLocation_Y())).intValue();
+ int width = ((Integer) getStructuralFeatureValue(NotationPackage.eINSTANCE
+ .getSize_Width())).intValue();
+ int height = ((Integer) getStructuralFeatureValue(NotationPackage.eINSTANCE
+ .getSize_Height())).intValue();
+ getBorderItemLocator()
+ .setConstraint(new Rectangle(x, y, width, height));
+ }
+
+ /**
+ * @generated
+ */
+ protected String getLabelTextHelper(IFigure figure) {
+ if (figure instanceof WrappingLabel) {
+ return ((WrappingLabel) figure).getText();
+ } else {
+ return ((Label) figure).getText();
+ }
+ }
+
+ /**
+ * @generated NOT
+ */
+ protected void setLabelTextHelper(IFigure figure, String text) {
+ int posDot = -1;
+ int posDouble = -1;
+ posDot = text.lastIndexOf(".");
+ posDouble = text.indexOf(":");
+ if (posDot > -1 && posDouble > -1) {
+ String first = text.substring(0, posDouble + 1);
+ String second = text.substring(posDot + 1);
+ text = first + second;
+ }
+ if (figure instanceof WrappingLabel) {
+ ((WrappingLabel) figure).setText(text);
+ } else {
+ ((Label) figure).setText(text);
+ }
+ }
+
+ /**
+ * @generated
+ */
+ protected Image getLabelIconHelper(IFigure figure) {
+ if (figure instanceof WrappingLabel) {
+ return ((WrappingLabel) figure).getIcon();
+ } else {
+ return ((Label) figure).getIcon();
+ }
+ }
+
+ /**
+ * @generated
+ */
+ protected void setLabelIconHelper(IFigure figure, Image icon) {
+ if (figure instanceof WrappingLabel) {
+ ((WrappingLabel) figure).setIcon(icon);
+ } else {
+ ((Label) figure).setIcon(icon);
+ }
+ }
+
+ /**
+ * @generated
+ */
+ public void setLabel(IFigure figure) {
+ unregisterVisuals();
+ setFigure(figure);
+ defaultText = getLabelTextHelper(figure);
+ registerVisuals();
+ refreshVisuals();
+ }
+
+ /**
+ * @generated
+ */
+ @SuppressWarnings("rawtypes")
+ protected List getModelChildren() {
+ return Collections.EMPTY_LIST;
+ }
+
+ /**
+ * @generated
+ */
+ public IGraphicalEditPart getChildBySemanticHint(String semanticHint) {
+ return null;
+ }
+
+ /**
+ * @generated
+ */
+ protected EObject getParserElement() {
+ return resolveSemanticElement();
+ }
+
+ /**
+ * @generated
+ */
+ protected Image getLabelIcon() {
+ return null;
+ }
+
+ /**
+ * @generated
+ */
+ protected String getLabelText() {
+ String text = null;
+ EObject parserElement = getParserElement();
+ if (parserElement != null && getParser() != null) {
+ text = getParser().getPrintString(
+ new EObjectAdapter(parserElement),
+ getParserOptions().intValue());
+ }
+ if (text == null || text.length() == 0) {
+ text = defaultText;
+ }
+ return text;
+ }
+
+ /**
+ * @generated
+ */
+ public void setLabelText(String text) {
+ setLabelTextHelper(getFigure(), text);
+ Object pdEditPolicy = getEditPolicy(EditPolicy.PRIMARY_DRAG_ROLE);
+ if (pdEditPolicy instanceof ComrelTextSelectionEditPolicy) {
+ ((ComrelTextSelectionEditPolicy) pdEditPolicy).refreshFeedback();
+ }
+ Object sfEditPolicy = getEditPolicy(EditPolicy.SELECTION_FEEDBACK_ROLE);
+ if (sfEditPolicy instanceof ComrelTextSelectionEditPolicy) {
+ ((ComrelTextSelectionEditPolicy) sfEditPolicy).refreshFeedback();
+ }
+ }
+
+ /**
+ * @generated
+ */
+ public String getEditText() {
+ if (getParserElement() == null || getParser() == null) {
+ return ""; //$NON-NLS-1$
+ }
+ return getParser().getEditString(
+ new EObjectAdapter(getParserElement()),
+ getParserOptions().intValue());
+ }
+
+ /**
+ * @generated
+ */
+ protected boolean isEditable() {
+ return getParser() != null;
+ }
+
+ /**
+ * @generated
+ */
+ public ICellEditorValidator getEditTextValidator() {
+ return new ICellEditorValidator() {
+
+ public String isValid(final Object value) {
+ if (value instanceof String) {
+ final EObject element = getParserElement();
+ final IParser parser = getParser();
+ try {
+ IParserEditStatus valid = (IParserEditStatus) getEditingDomain()
+ .runExclusive(
+ new RunnableWithResult.Impl<IParserEditStatus>() {
+
+ public void run() {
+ setResult(parser
+ .isValidEditString(
+ new EObjectAdapter(
+ element),
+ (String) value));
+ }
+ });
+ return valid.getCode() == ParserEditStatus.EDITABLE ? null
+ : valid.getMessage();
+ } catch (InterruptedException ie) {
+ ie.printStackTrace();
+ }
+ }
+
+ // shouldn't get here
+ return null;
+ }
+ };
+ }
+
+ /**
+ * @generated
+ */
+ public IContentAssistProcessor getCompletionProcessor() {
+ if (getParserElement() == null || getParser() == null) {
+ return null;
+ }
+ return getParser().getCompletionProcessor(
+ new EObjectAdapter(getParserElement()));
+ }
+
+ /**
+ * @generated
+ */
+ public ParserOptions getParserOptions() {
+ return ParserOptions.NONE;
+ }
+
+ /**
+ * @generated
+ */
+ public IParser getParser() {
+ if (parser == null) {
+ parser = ComrelParserProvider
+ .getParser(
+ ComrelElementTypes.SingleOutputPort_3018,
+ getParserElement(),
+ ComrelVisualIDRegistry
+ .getType(comrel.diagram.edit.parts.SingleOutputPortNameType2EditPart.VISUAL_ID));
+ }
+ return parser;
+ }
+
+ /**
+ * @generated
+ */
+ protected DirectEditManager getManager() {
+ if (manager == null) {
+ setManager(new TextDirectEditManager(this,
+ TextDirectEditManager.getTextCellEditorClass(this),
+ ComrelEditPartFactory.getTextCellEditorLocator(this)));
+ }
+ return manager;
+ }
+
+ /**
+ * @generated
+ */
+ protected void setManager(DirectEditManager manager) {
+ this.manager = manager;
+ }
+
+ /**
+ * @generated
+ */
+ protected void performDirectEdit() {
+ getManager().show();
+ }
+
+ /**
+ * @generated
+ */
+ protected void performDirectEdit(Point eventLocation) {
+ if (getManager().getClass() == TextDirectEditManager.class) {
+ ((TextDirectEditManager) getManager()).show(eventLocation
+ .getSWTPoint());
+ }
+ }
+
+ /**
+ * @generated
+ */
+ private void performDirectEdit(char initialCharacter) {
+ if (getManager() instanceof TextDirectEditManager) {
+ ((TextDirectEditManager) getManager()).show(initialCharacter);
+ } else {
+ performDirectEdit();
+ }
+ }
+
+ /**
+ * @generated
+ */
+ protected void performDirectEditRequest(Request request) {
+ final Request theRequest = request;
+ try {
+ getEditingDomain().runExclusive(new Runnable() {
+
+ public void run() {
+ if (isActive() && isEditable()) {
+ if (theRequest
+ .getExtendedData()
+ .get(RequestConstants.REQ_DIRECTEDIT_EXTENDEDDATA_INITIAL_CHAR) instanceof Character) {
+ Character initialChar = (Character) theRequest
+ .getExtendedData()
+ .get(RequestConstants.REQ_DIRECTEDIT_EXTENDEDDATA_INITIAL_CHAR);
+ performDirectEdit(initialChar.charValue());
+ } else if ((theRequest instanceof DirectEditRequest)
+ && (getEditText().equals(getLabelText()))) {
+ DirectEditRequest editRequest = (DirectEditRequest) theRequest;
+ performDirectEdit(editRequest.getLocation());
+ } else {
+ performDirectEdit();
+ }
+ }
+ }
+ });
+ } catch (InterruptedException e) {
+ e.printStackTrace();
+ }
+ }
+
+ /**
+ * @generated
+ */
+ protected void refreshVisuals() {
+ super.refreshVisuals();
+ refreshLabel();
+ refreshFont();
+ refreshFontColor();
+ refreshUnderline();
+ refreshStrikeThrough();
+ }
+
+ /**
+ * @generated
+ */
+ protected void refreshLabel() {
+ setLabelTextHelper(getFigure(), getLabelText());
+ setLabelIconHelper(getFigure(), getLabelIcon());
+ Object pdEditPolicy = getEditPolicy(EditPolicy.PRIMARY_DRAG_ROLE);
+ if (pdEditPolicy instanceof ComrelTextSelectionEditPolicy) {
+ ((ComrelTextSelectionEditPolicy) pdEditPolicy).refreshFeedback();
+ }
+ Object sfEditPolicy = getEditPolicy(EditPolicy.SELECTION_FEEDBACK_ROLE);
+ if (sfEditPolicy instanceof ComrelTextSelectionEditPolicy) {
+ ((ComrelTextSelectionEditPolicy) sfEditPolicy).refreshFeedback();
+ }
+ }
+
+ /**
+ * @generated
+ */
+ protected void refreshUnderline() {
+ FontStyle style = (FontStyle) getFontStyleOwnerView().getStyle(
+ NotationPackage.eINSTANCE.getFontStyle());
+ if (style != null && getFigure() instanceof WrappingLabel) {
+ ((WrappingLabel) getFigure()).setTextUnderline(style.isUnderline());
+ }
+ }
+
+ /**
+ * @generated
+ */
+ protected void refreshStrikeThrough() {
+ FontStyle style = (FontStyle) getFontStyleOwnerView().getStyle(
+ NotationPackage.eINSTANCE.getFontStyle());
+ if (style != null && getFigure() instanceof WrappingLabel) {
+ ((WrappingLabel) getFigure()).setTextStrikeThrough(style
+ .isStrikeThrough());
+ }
+ }
+
+ /**
+ * @generated
+ */
+ protected void refreshFont() {
+ FontStyle style = (FontStyle) getFontStyleOwnerView().getStyle(
+ NotationPackage.eINSTANCE.getFontStyle());
+ if (style != null) {
+ FontData fontData = new FontData(style.getFontName(),
+ style.getFontHeight(), (style.isBold() ? SWT.BOLD
+ : SWT.NORMAL)
+ | (style.isItalic() ? SWT.ITALIC : SWT.NORMAL));
+ setFont(fontData);
+ }
+ }
+
+ /**
+ * @generated
+ */
+ protected void setFontColor(Color color) {
+ getFigure().setForegroundColor(color);
+ }
+
+ /**
+ * @generated
+ */
+ protected void addSemanticListeners() {
+ if (getParser() instanceof ISemanticParser) {
+ EObject element = resolveSemanticElement();
+ parserElements = ((ISemanticParser) getParser())
+ .getSemanticElementsBeingParsed(element);
+ for (int i = 0; i < parserElements.size(); i++) {
+ addListenerFilter(
+ "SemanticModel" + i, this, (EObject) parserElements.get(i)); //$NON-NLS-1$
+ }
+ } else {
+ super.addSemanticListeners();
+ }
+ }
+
+ /**
+ * @generated
+ */
+ protected void removeSemanticListeners() {
+ if (parserElements != null) {
+ for (int i = 0; i < parserElements.size(); i++) {
+ removeListenerFilter("SemanticModel" + i); //$NON-NLS-1$
+ }
+ } else {
+ super.removeSemanticListeners();
+ }
+ }
+
+ /**
+ * @generated
+ */
+ protected AccessibleEditPart getAccessibleEditPart() {
+ if (accessibleEP == null) {
+ accessibleEP = new AccessibleGraphicalEditPart() {
+
+ public void getName(AccessibleEvent e) {
+ e.result = getLabelTextHelper(getFigure());
+ }
+ };
+ }
+ return accessibleEP;
+ }
+
+ /**
+ * @generated
+ */
+ private View getFontStyleOwnerView() {
+ return getPrimaryView();
+ }
+
+ /**
+ * @generated
+ */
+ protected void handleNotificationEvent(Notification event) {
+ Object feature = event.getFeature();
+ if (NotationPackage.eINSTANCE.getFontStyle_FontColor().equals(feature)) {
+ Integer c = (Integer) event.getNewValue();
+ setFontColor(DiagramColorRegistry.getInstance().getColor(c));
+ } else if (NotationPackage.eINSTANCE.getFontStyle_Underline().equals(
+ feature)) {
+ refreshUnderline();
+ } else if (NotationPackage.eINSTANCE.getFontStyle_StrikeThrough()
+ .equals(feature)) {
+ refreshStrikeThrough();
+ } else if (NotationPackage.eINSTANCE.getFontStyle_FontHeight().equals(
+ feature)
+ || NotationPackage.eINSTANCE.getFontStyle_FontName().equals(
+ feature)
+ || NotationPackage.eINSTANCE.getFontStyle_Bold()
+ .equals(feature)
+ || NotationPackage.eINSTANCE.getFontStyle_Italic().equals(
+ feature)) {
+ refreshFont();
+ } else {
+ if (getParser() != null
+ && getParser().isAffectingEvent(event,
+ getParserOptions().intValue())) {
+ refreshLabel();
+ }
+ if (getParser() instanceof ISemanticParser) {
+ ISemanticParser modelParser = (ISemanticParser) getParser();
+ if (modelParser.areSemanticElementsAffected(null, event)) {
+ removeSemanticListeners();
+ if (resolveSemanticElement() != null) {
+ addSemanticListeners();
+ }
+ refreshLabel();
+ }
+ }
+ }
+ super.handleNotificationEvent(event);
+ }
+
+ /**
+ * @generated
+ */
+ protected IFigure createFigure() {
+ IFigure label = createFigurePrim();
+ defaultText = getLabelTextHelper(label);
+ return label;
+ }
+
+ /**
+ * @generated
+ */
+ protected IFigure createFigurePrim() {
+ return new SingleOutputPortLabelFigure();
+ }
+
+ /**
+ * @generated
+ */
+ public class SingleOutputPortLabelFigure extends WrappingLabel {
+
+ /**
+ * @generated
+ */
+ public SingleOutputPortLabelFigure() {
+ this.setText("SingleOutputPort");
+ }
+
+ }
+
+}
diff --git a/org.eclipse.emf.refactor.comrel.diagram/src/comrel/diagram/edit/parts/SingleOutputPortNameTypeEditPart.java b/org.eclipse.emf.refactor.comrel.diagram/src/comrel/diagram/edit/parts/SingleOutputPortNameTypeEditPart.java
new file mode 100644
index 0000000..8eb5a41
--- /dev/null
+++ b/org.eclipse.emf.refactor.comrel.diagram/src/comrel/diagram/edit/parts/SingleOutputPortNameTypeEditPart.java
@@ -0,0 +1,631 @@
+/*
+ *
+ */
+package comrel.diagram.edit.parts;
+
+import java.util.Collections;
+import java.util.List;
+
+import org.eclipse.draw2d.IFigure;
+import org.eclipse.draw2d.Label;
+import org.eclipse.draw2d.geometry.Point;
+import org.eclipse.draw2d.geometry.Rectangle;
+import org.eclipse.emf.common.notify.Notification;
+import org.eclipse.emf.ecore.EObject;
+import org.eclipse.emf.transaction.RunnableWithResult;
+import org.eclipse.gef.AccessibleEditPart;
+import org.eclipse.gef.EditPolicy;
+import org.eclipse.gef.Request;
+import org.eclipse.gef.requests.DirectEditRequest;
+import org.eclipse.gef.tools.DirectEditManager;
+import org.eclipse.gmf.runtime.common.ui.services.parser.IParser;
+import org.eclipse.gmf.runtime.common.ui.services.parser.IParserEditStatus;
+import org.eclipse.gmf.runtime.common.ui.services.parser.ParserEditStatus;
+import org.eclipse.gmf.runtime.common.ui.services.parser.ParserOptions;
+import org.eclipse.gmf.runtime.diagram.ui.editparts.IBorderItemEditPart;
+import org.eclipse.gmf.runtime.diagram.ui.editparts.IGraphicalEditPart;
+import org.eclipse.gmf.runtime.diagram.ui.editparts.ITextAwareEditPart;
+import org.eclipse.gmf.runtime.diagram.ui.editparts.LabelEditPart;
+import org.eclipse.gmf.runtime.diagram.ui.editpolicies.LabelDirectEditPolicy;
+import org.eclipse.gmf.runtime.diagram.ui.figures.IBorderItemLocator;
+import org.eclipse.gmf.runtime.diagram.ui.l10n.DiagramColorRegistry;
+import org.eclipse.gmf.runtime.diagram.ui.requests.RequestConstants;
+import org.eclipse.gmf.runtime.diagram.ui.tools.TextDirectEditManager;
+import org.eclipse.gmf.runtime.draw2d.ui.figures.WrappingLabel;
+import org.eclipse.gmf.runtime.emf.core.util.EObjectAdapter;
+import org.eclipse.gmf.runtime.emf.ui.services.parser.ISemanticParser;
+import org.eclipse.gmf.runtime.notation.FontStyle;
+import org.eclipse.gmf.runtime.notation.NotationPackage;
+import org.eclipse.gmf.runtime.notation.View;
+import org.eclipse.jface.text.contentassist.IContentAssistProcessor;
+import org.eclipse.jface.viewers.ICellEditorValidator;
+import org.eclipse.swt.SWT;
+import org.eclipse.swt.accessibility.AccessibleEvent;
+import org.eclipse.swt.graphics.Color;
+import org.eclipse.swt.graphics.FontData;
+import org.eclipse.swt.graphics.Image;
+
+import comrel.diagram.edit.policies.ComrelTextSelectionEditPolicy;
+import comrel.diagram.part.ComrelVisualIDRegistry;
+import comrel.diagram.providers.ComrelElementTypes;
+import comrel.diagram.providers.ComrelParserProvider;
+
+/**
+ * @generated
+ */
+public class SingleOutputPortNameTypeEditPart extends LabelEditPart implements
+ ITextAwareEditPart, IBorderItemEditPart {
+
+ /**
+ * @generated
+ */
+ public static final int VISUAL_ID = 5008;
+
+ /**
+ * @generated
+ */
+ private DirectEditManager manager;
+
+ /**
+ * @generated
+ */
+ private IParser parser;
+
+ /**
+ * @generated
+ */
+ private List<?> parserElements;
+
+ /**
+ * @generated
+ */
+ private String defaultText;
+
+ /**
+ * @generated
+ */
+ static {
+ registerSnapBackPosition(
+ ComrelVisualIDRegistry
+ .getType(comrel.diagram.edit.parts.SingleOutputPortNameTypeEditPart.VISUAL_ID),
+ new Point(0, 0));
+ }
+
+ /**
+ * @generated
+ */
+ public SingleOutputPortNameTypeEditPart(View view) {
+ super(view);
+ }
+
+ /**
+ * @generated
+ */
+ protected void createDefaultEditPolicies() {
+ super.createDefaultEditPolicies();
+ installEditPolicy(EditPolicy.DIRECT_EDIT_ROLE,
+ new LabelDirectEditPolicy());
+ installEditPolicy(EditPolicy.SELECTION_FEEDBACK_ROLE,
+ new ComrelTextSelectionEditPolicy());
+ }
+
+ /**
+ * @generated
+ */
+ public IBorderItemLocator getBorderItemLocator() {
+ IFigure parentFigure = getFigure().getParent();
+ if (parentFigure != null && parentFigure.getLayoutManager() != null) {
+ Object constraint = parentFigure.getLayoutManager().getConstraint(
+ getFigure());
+ return (IBorderItemLocator) constraint;
+ }
+ return null;
+ }
+
+ /**
+ * @generated
+ */
+ public void refreshBounds() {
+ int x = ((Integer) getStructuralFeatureValue(NotationPackage.eINSTANCE
+ .getLocation_X())).intValue();
+ int y = ((Integer) getStructuralFeatureValue(NotationPackage.eINSTANCE
+ .getLocation_Y())).intValue();
+ int width = ((Integer) getStructuralFeatureValue(NotationPackage.eINSTANCE
+ .getSize_Width())).intValue();
+ int height = ((Integer) getStructuralFeatureValue(NotationPackage.eINSTANCE
+ .getSize_Height())).intValue();
+ getBorderItemLocator()
+ .setConstraint(new Rectangle(x, y, width, height));
+ }
+
+ /**
+ * @generated
+ */
+ protected String getLabelTextHelper(IFigure figure) {
+ if (figure instanceof WrappingLabel) {
+ return ((WrappingLabel) figure).getText();
+ } else {
+ return ((Label) figure).getText();
+ }
+ }
+
+ /**
+ * @generated NOT
+ */
+ protected void setLabelTextHelper(IFigure figure, String text) {
+ int posDot = -1;
+ int posDouble = -1;
+ posDot = text.lastIndexOf(".");
+ posDouble = text.indexOf(":");
+ if (posDot > -1 && posDouble > -1) {
+ String first = text.substring(0, posDouble + 1);
+ String second = text.substring(posDot + 1);
+ text = first + second;
+ }
+ if (figure instanceof WrappingLabel) {
+ ((WrappingLabel) figure).setText(text);
+ } else {
+ ((Label) figure).setText(text);
+ }
+ }
+
+ /**
+ * @generated
+ */
+ protected Image getLabelIconHelper(IFigure figure) {
+ if (figure instanceof WrappingLabel) {
+ return ((WrappingLabel) figure).getIcon();
+ } else {
+ return ((Label) figure).getIcon();
+ }
+ }
+
+ /**
+ * @generated
+ */
+ protected void setLabelIconHelper(IFigure figure, Image icon) {
+ if (figure instanceof WrappingLabel) {
+ ((WrappingLabel) figure).setIcon(icon);
+ } else {
+ ((Label) figure).setIcon(icon);
+ }
+ }
+
+ /**
+ * @generated
+ */
+ public void setLabel(IFigure figure) {
+ unregisterVisuals();
+ setFigure(figure);
+ defaultText = getLabelTextHelper(figure);
+ registerVisuals();
+ refreshVisuals();
+ }
+
+ /**
+ * @generated
+ */
+ @SuppressWarnings("rawtypes")
+ protected List getModelChildren() {
+ return Collections.EMPTY_LIST;
+ }
+
+ /**
+ * @generated
+ */
+ public IGraphicalEditPart getChildBySemanticHint(String semanticHint) {
+ return null;
+ }
+
+ /**
+ * @generated
+ */
+ protected EObject getParserElement() {
+ return resolveSemanticElement();
+ }
+
+ /**
+ * @generated
+ */
+ protected Image getLabelIcon() {
+ return null;
+ }
+
+ /**
+ * @generated
+ */
+ protected String getLabelText() {
+ String text = null;
+ EObject parserElement = getParserElement();
+ if (parserElement != null && getParser() != null) {
+ text = getParser().getPrintString(
+ new EObjectAdapter(parserElement),
+ getParserOptions().intValue());
+ }
+ if (text == null || text.length() == 0) {
+ text = defaultText;
+ }
+ return text;
+ }
+
+ /**
+ * @generated
+ */
+ public void setLabelText(String text) {
+ setLabelTextHelper(getFigure(), text);
+ Object pdEditPolicy = getEditPolicy(EditPolicy.PRIMARY_DRAG_ROLE);
+ if (pdEditPolicy instanceof ComrelTextSelectionEditPolicy) {
+ ((ComrelTextSelectionEditPolicy) pdEditPolicy).refreshFeedback();
+ }
+ Object sfEditPolicy = getEditPolicy(EditPolicy.SELECTION_FEEDBACK_ROLE);
+ if (sfEditPolicy instanceof ComrelTextSelectionEditPolicy) {
+ ((ComrelTextSelectionEditPolicy) sfEditPolicy).refreshFeedback();
+ }
+ }
+
+ /**
+ * @generated
+ */
+ public String getEditText() {
+ if (getParserElement() == null || getParser() == null) {
+ return ""; //$NON-NLS-1$
+ }
+ return getParser().getEditString(
+ new EObjectAdapter(getParserElement()),
+ getParserOptions().intValue());
+ }
+
+ /**
+ * @generated
+ */
+ protected boolean isEditable() {
+ return getParser() != null;
+ }
+
+ /**
+ * @generated
+ */
+ public ICellEditorValidator getEditTextValidator() {
+ return new ICellEditorValidator() {
+
+ public String isValid(final Object value) {
+ if (value instanceof String) {
+ final EObject element = getParserElement();
+ final IParser parser = getParser();
+ try {
+ IParserEditStatus valid = (IParserEditStatus) getEditingDomain()
+ .runExclusive(
+ new RunnableWithResult.Impl<IParserEditStatus>() {
+
+ public void run() {
+ setResult(parser
+ .isValidEditString(
+ new EObjectAdapter(
+ element),
+ (String) value));
+ }
+ });
+ return valid.getCode() == ParserEditStatus.EDITABLE ? null
+ : valid.getMessage();
+ } catch (InterruptedException ie) {
+ ie.printStackTrace();
+ }
+ }
+
+ // shouldn't get here
+ return null;
+ }
+ };
+ }
+
+ /**
+ * @generated
+ */
+ public IContentAssistProcessor getCompletionProcessor() {
+ if (getParserElement() == null || getParser() == null) {
+ return null;
+ }
+ return getParser().getCompletionProcessor(
+ new EObjectAdapter(getParserElement()));
+ }
+
+ /**
+ * @generated
+ */
+ public ParserOptions getParserOptions() {
+ return ParserOptions.NONE;
+ }
+
+ /**
+ * @generated
+ */
+ public IParser getParser() {
+ if (parser == null) {
+ parser = ComrelParserProvider
+ .getParser(
+ ComrelElementTypes.SingleOutputPort_3011,
+ getParserElement(),
+ ComrelVisualIDRegistry
+ .getType(comrel.diagram.edit.parts.SingleOutputPortNameTypeEditPart.VISUAL_ID));
+ }
+ return parser;
+ }
+
+ /**
+ * @generated
+ */
+ protected DirectEditManager getManager() {
+ if (manager == null) {
+ setManager(new TextDirectEditManager(this,
+ TextDirectEditManager.getTextCellEditorClass(this),
+ ComrelEditPartFactory.getTextCellEditorLocator(this)));
+ }
+ return manager;
+ }
+
+ /**
+ * @generated
+ */
+ protected void setManager(DirectEditManager manager) {
+ this.manager = manager;
+ }
+
+ /**
+ * @generated
+ */
+ protected void performDirectEdit() {
+ getManager().show();
+ }
+
+ /**
+ * @generated
+ */
+ protected void performDirectEdit(Point eventLocation) {
+ if (getManager().getClass() == TextDirectEditManager.class) {
+ ((TextDirectEditManager) getManager()).show(eventLocation
+ .getSWTPoint());
+ }
+ }
+
+ /**
+ * @generated
+ */
+ private void performDirectEdit(char initialCharacter) {
+ if (getManager() instanceof TextDirectEditManager) {
+ ((TextDirectEditManager) getManager()).show(initialCharacter);
+ } else {
+ performDirectEdit();
+ }
+ }
+
+ /**
+ * @generated
+ */
+ protected void performDirectEditRequest(Request request) {
+ final Request theRequest = request;
+ try {
+ getEditingDomain().runExclusive(new Runnable() {
+
+ public void run() {
+ if (isActive() && isEditable()) {
+ if (theRequest
+ .getExtendedData()
+ .get(RequestConstants.REQ_DIRECTEDIT_EXTENDEDDATA_INITIAL_CHAR) instanceof Character) {
+ Character initialChar = (Character) theRequest
+ .getExtendedData()
+ .get(RequestConstants.REQ_DIRECTEDIT_EXTENDEDDATA_INITIAL_CHAR);
+ performDirectEdit(initialChar.charValue());
+ } else if ((theRequest instanceof DirectEditRequest)
+ && (getEditText().equals(getLabelText()))) {
+ DirectEditRequest editRequest = (DirectEditRequest) theRequest;
+ performDirectEdit(editRequest.getLocation());
+ } else {
+ performDirectEdit();
+ }
+ }
+ }
+ });
+ } catch (InterruptedException e) {
+ e.printStackTrace();
+ }
+ }
+
+ /**
+ * @generated
+ */
+ protected void refreshVisuals() {
+ super.refreshVisuals();
+ refreshLabel();
+ refreshFont();
+ refreshFontColor();
+ refreshUnderline();
+ refreshStrikeThrough();
+ }
+
+ /**
+ * @generated
+ */
+ protected void refreshLabel() {
+ setLabelTextHelper(getFigure(), getLabelText());
+ setLabelIconHelper(getFigure(), getLabelIcon());
+ Object pdEditPolicy = getEditPolicy(EditPolicy.PRIMARY_DRAG_ROLE);
+ if (pdEditPolicy instanceof ComrelTextSelectionEditPolicy) {
+ ((ComrelTextSelectionEditPolicy) pdEditPolicy).refreshFeedback();
+ }
+ Object sfEditPolicy = getEditPolicy(EditPolicy.SELECTION_FEEDBACK_ROLE);
+ if (sfEditPolicy instanceof ComrelTextSelectionEditPolicy) {
+ ((ComrelTextSelectionEditPolicy) sfEditPolicy).refreshFeedback();
+ }
+ }
+
+ /**
+ * @generated
+ */
+ protected void refreshUnderline() {
+ FontStyle style = (FontStyle) getFontStyleOwnerView().getStyle(
+ NotationPackage.eINSTANCE.getFontStyle());
+ if (style != null && getFigure() instanceof WrappingLabel) {
+ ((WrappingLabel) getFigure()).setTextUnderline(style.isUnderline());
+ }
+ }
+
+ /**
+ * @generated
+ */
+ protected void refreshStrikeThrough() {
+ FontStyle style = (FontStyle) getFontStyleOwnerView().getStyle(
+ NotationPackage.eINSTANCE.getFontStyle());
+ if (style != null && getFigure() instanceof WrappingLabel) {
+ ((WrappingLabel) getFigure()).setTextStrikeThrough(style
+ .isStrikeThrough());
+ }
+ }
+
+ /**
+ * @generated
+ */
+ protected void refreshFont() {
+ FontStyle style = (FontStyle) getFontStyleOwnerView().getStyle(
+ NotationPackage.eINSTANCE.getFontStyle());
+ if (style != null) {
+ FontData fontData = new FontData(style.getFontName(),
+ style.getFontHeight(), (style.isBold() ? SWT.BOLD
+ : SWT.NORMAL)
+ | (style.isItalic() ? SWT.ITALIC : SWT.NORMAL));
+ setFont(fontData);
+ }
+ }
+
+ /**
+ * @generated
+ */
+ protected void setFontColor(Color color) {
+ getFigure().setForegroundColor(color);
+ }
+
+ /**
+ * @generated
+ */
+ protected void addSemanticListeners() {
+ if (getParser() instanceof ISemanticParser) {
+ EObject element = resolveSemanticElement();
+ parserElements = ((ISemanticParser) getParser())
+ .getSemanticElementsBeingParsed(element);
+ for (int i = 0; i < parserElements.size(); i++) {
+ addListenerFilter(
+ "SemanticModel" + i, this, (EObject) parserElements.get(i)); //$NON-NLS-1$
+ }
+ } else {
+ super.addSemanticListeners();
+ }
+ }
+
+ /**
+ * @generated
+ */
+ protected void removeSemanticListeners() {
+ if (parserElements != null) {
+ for (int i = 0; i < parserElements.size(); i++) {
+ removeListenerFilter("SemanticModel" + i); //$NON-NLS-1$
+ }
+ } else {
+ super.removeSemanticListeners();
+ }
+ }
+
+ /**
+ * @generated
+ */
+ protected AccessibleEditPart getAccessibleEditPart() {
+ if (accessibleEP == null) {
+ accessibleEP = new AccessibleGraphicalEditPart() {
+
+ public void getName(AccessibleEvent e) {
+ e.result = getLabelTextHelper(getFigure());
+ }
+ };
+ }
+ return accessibleEP;
+ }
+
+ /**
+ * @generated
+ */
+ private View getFontStyleOwnerView() {
+ return getPrimaryView();
+ }
+
+ /**
+ * @generated
+ */
+ protected void handleNotificationEvent(Notification event) {
+ Object feature = event.getFeature();
+ if (NotationPackage.eINSTANCE.getFontStyle_FontColor().equals(feature)) {
+ Integer c = (Integer) event.getNewValue();
+ setFontColor(DiagramColorRegistry.getInstance().getColor(c));
+ } else if (NotationPackage.eINSTANCE.getFontStyle_Underline().equals(
+ feature)) {
+ refreshUnderline();
+ } else if (NotationPackage.eINSTANCE.getFontStyle_StrikeThrough()
+ .equals(feature)) {
+ refreshStrikeThrough();
+ } else if (NotationPackage.eINSTANCE.getFontStyle_FontHeight().equals(
+ feature)
+ || NotationPackage.eINSTANCE.getFontStyle_FontName().equals(
+ feature)
+ || NotationPackage.eINSTANCE.getFontStyle_Bold()
+ .equals(feature)
+ || NotationPackage.eINSTANCE.getFontStyle_Italic().equals(
+ feature)) {
+ refreshFont();
+ } else {
+ if (getParser() != null
+ && getParser().isAffectingEvent(event,
+ getParserOptions().intValue())) {
+ refreshLabel();
+ }
+ if (getParser() instanceof ISemanticParser) {
+ ISemanticParser modelParser = (ISemanticParser) getParser();
+ if (modelParser.areSemanticElementsAffected(null, event)) {
+ removeSemanticListeners();
+ if (resolveSemanticElement() != null) {
+ addSemanticListeners();
+ }
+ refreshLabel();
+ }
+ }
+ }
+ super.handleNotificationEvent(event);
+ }
+
+ /**
+ * @generated
+ */
+ protected IFigure createFigure() {
+ IFigure label = createFigurePrim();
+ defaultText = getLabelTextHelper(label);
+ return label;
+ }
+
+ /**
+ * @generated
+ */
+ protected IFigure createFigurePrim() {
+ return new SingleOutputPortLabelFigure();
+ }
+
+ /**
+ * @generated
+ */
+ public class SingleOutputPortLabelFigure extends WrappingLabel {
+
+ /**
+ * @generated
+ */
+ public SingleOutputPortLabelFigure() {
+ this.setText("SingleOutputPort");
+ }
+
+ }
+
+}
diff --git a/org.eclipse.emf.refactor.comrel.diagram/src/comrel/diagram/edit/parts/SinglePortMappingEditPart.java b/org.eclipse.emf.refactor.comrel.diagram/src/comrel/diagram/edit/parts/SinglePortMappingEditPart.java
new file mode 100644
index 0000000..df7a1a0
--- /dev/null
+++ b/org.eclipse.emf.refactor.comrel.diagram/src/comrel/diagram/edit/parts/SinglePortMappingEditPart.java
@@ -0,0 +1,98 @@
+/*
+ *
+ */
+package comrel.diagram.edit.parts;
+
+import org.eclipse.draw2d.Connection;
+import org.eclipse.draw2d.Graphics;
+import org.eclipse.draw2d.PolylineDecoration;
+import org.eclipse.draw2d.RotatableDecoration;
+import org.eclipse.gmf.runtime.diagram.ui.editparts.ConnectionNodeEditPart;
+import org.eclipse.gmf.runtime.diagram.ui.editparts.ITreeBranchEditPart;
+import org.eclipse.gmf.runtime.diagram.ui.editpolicies.EditPolicyRoles;
+import org.eclipse.gmf.runtime.draw2d.ui.figures.PolylineConnectionEx;
+import org.eclipse.gmf.runtime.notation.View;
+
+import comrel.PortMapping;
+import comrel.SinglePortMapping;
+import comrel.diagram.edit.policies.SinglePortMappingItemSemanticEditPolicy;
+import comrel.figures.PortMappingFigure;
+
+/**
+ * @generated
+ */
+public class SinglePortMappingEditPart extends ConnectionNodeEditPart implements
+ ITreeBranchEditPart {
+
+ /**
+ * @generated
+ */
+ public static final int VISUAL_ID = 4001;
+
+ /**
+ * @generated
+ */
+ public SinglePortMappingEditPart(View view) {
+ super(view);
+ }
+
+ /**
+ * @generated
+ */
+ protected void createDefaultEditPolicies() {
+ super.createDefaultEditPolicies();
+ installEditPolicy(EditPolicyRoles.SEMANTIC_ROLE,
+ new SinglePortMappingItemSemanticEditPolicy());
+ }
+
+ /**
+ * Creates figure for this edit part.
+ *
+ * Body of this method does not depend on settings in generation model
+ * so you may safely remove <i>generated</i> tag and modify it.
+ *
+ * @generated NOT
+ */
+
+ protected Connection createConnectionFigure() {
+ PortMapping mapping = (PortMapping) this.resolveSemanticElement();
+ SinglePortMappingFigure figure = new SinglePortMappingFigure();
+ figure.setMapping(mapping);
+ return figure;
+ }
+
+ /**
+ * @generated
+ */
+ public SinglePortMappingFigure getPrimaryShape() {
+ return (SinglePortMappingFigure) getFigure();
+ }
+
+ /**
+ * @generated NOT
+ */
+ public class SinglePortMappingFigure extends PortMappingFigure {
+
+ SinglePortMapping mapping;
+
+ /**
+ * @generated
+ */
+ public SinglePortMappingFigure() {
+ this.setLineWidth(2);
+ this.setLineStyle(Graphics.LINE_DOT);
+
+ setTargetDecoration(createTargetDecoration());
+ }
+
+ /**
+ * @generated
+ */
+ private RotatableDecoration createTargetDecoration() {
+ PolylineDecoration df = new PolylineDecoration();
+ return df;
+ }
+
+ }
+
+}
diff --git a/org.eclipse.emf.refactor.comrel.diagram/src/comrel/diagram/edit/parts/SingleQueuedUnit2EditPart.java b/org.eclipse.emf.refactor.comrel.diagram/src/comrel/diagram/edit/parts/SingleQueuedUnit2EditPart.java
new file mode 100644
index 0000000..974fb47
--- /dev/null
+++ b/org.eclipse.emf.refactor.comrel.diagram/src/comrel/diagram/edit/parts/SingleQueuedUnit2EditPart.java
@@ -0,0 +1,437 @@
+/*
+ *
+ */
+package comrel.diagram.edit.parts;
+
+import org.eclipse.draw2d.IFigure;
+import org.eclipse.draw2d.MarginBorder;
+import org.eclipse.draw2d.PositionConstants;
+import org.eclipse.draw2d.RectangleFigure;
+import org.eclipse.draw2d.RoundedRectangle;
+import org.eclipse.draw2d.Shape;
+import org.eclipse.draw2d.StackLayout;
+import org.eclipse.draw2d.geometry.Dimension;
+import org.eclipse.gef.EditPart;
+import org.eclipse.gef.EditPolicy;
+import org.eclipse.gef.Request;
+import org.eclipse.gef.commands.Command;
+import org.eclipse.gef.editpolicies.LayoutEditPolicy;
+import org.eclipse.gef.editpolicies.NonResizableEditPolicy;
+import org.eclipse.gef.requests.CreateRequest;
+import org.eclipse.gmf.runtime.diagram.ui.editparts.AbstractBorderedShapeEditPart;
+import org.eclipse.gmf.runtime.diagram.ui.editparts.IBorderItemEditPart;
+import org.eclipse.gmf.runtime.diagram.ui.editparts.IGraphicalEditPart;
+import org.eclipse.gmf.runtime.diagram.ui.editpolicies.BorderItemSelectionEditPolicy;
+import org.eclipse.gmf.runtime.diagram.ui.editpolicies.CreationEditPolicy;
+import org.eclipse.gmf.runtime.diagram.ui.editpolicies.DragDropEditPolicy;
+import org.eclipse.gmf.runtime.diagram.ui.editpolicies.EditPolicyRoles;
+import org.eclipse.gmf.runtime.diagram.ui.figures.BorderItemLocator;
+import org.eclipse.gmf.runtime.draw2d.ui.figures.ConstrainedToolbarLayout;
+import org.eclipse.gmf.runtime.draw2d.ui.figures.WrappingLabel;
+import org.eclipse.gmf.runtime.gef.ui.figures.DefaultSizeNodeFigure;
+import org.eclipse.gmf.runtime.gef.ui.figures.NodeFigure;
+import org.eclipse.gmf.runtime.notation.View;
+import org.eclipse.swt.graphics.Color;
+
+import comrel.diagram.edit.parts.SingleQueuedUnit7EditPart.SingleQueuedUnitFigure;
+import comrel.diagram.edit.parts.custom.Labels;
+import comrel.diagram.edit.policies.OpenDiagramEditPolicy;
+import comrel.diagram.edit.policies.SingleQueuedUnit2CanonicalEditPolicy;
+import comrel.diagram.edit.policies.SingleQueuedUnit2ItemSemanticEditPolicy;
+import comrel.diagram.part.ComrelVisualIDRegistry;
+
+/**
+ * @generated
+ */
+public class SingleQueuedUnit2EditPart extends AbstractBorderedShapeEditPart {
+
+ /**
+ * @generated
+ */
+ public static final int VISUAL_ID = 3022;
+
+ /**
+ * @generated
+ */
+ protected IFigure contentPane;
+
+ /**
+ * @generated
+ */
+ protected IFigure primaryShape;
+
+ /**
+ * @generated
+ */
+ public SingleQueuedUnit2EditPart(View view) {
+ super(view);
+ }
+
+ /**
+ * @generated
+ */
+ protected void createDefaultEditPolicies() {
+ installEditPolicy(EditPolicyRoles.CREATION_ROLE,
+ new CreationEditPolicy());
+ super.createDefaultEditPolicies();
+ installEditPolicy(EditPolicyRoles.SEMANTIC_ROLE,
+ new SingleQueuedUnit2ItemSemanticEditPolicy());
+ installEditPolicy(EditPolicyRoles.DRAG_DROP_ROLE,
+ new DragDropEditPolicy());
+ installEditPolicy(EditPolicyRoles.CANONICAL_ROLE,
+ new SingleQueuedUnit2CanonicalEditPolicy());
+ installEditPolicy(EditPolicy.LAYOUT_ROLE, createLayoutEditPolicy());
+ installEditPolicy(EditPolicyRoles.OPEN_ROLE,
+ new OpenDiagramEditPolicy());
+ // XXX need an SCR to runtime to have another abstract superclass that would let children add reasonable editpolicies
+ // removeEditPolicy(org.eclipse.gmf.runtime.diagram.ui.editpolicies.EditPolicyRoles.CONNECTION_HANDLES_ROLE);
+ }
+
+ /**
+ * @generated
+ */
+ protected LayoutEditPolicy createLayoutEditPolicy() {
+ org.eclipse.gmf.runtime.diagram.ui.editpolicies.LayoutEditPolicy lep = new org.eclipse.gmf.runtime.diagram.ui.editpolicies.LayoutEditPolicy() {
+
+ protected EditPolicy createChildEditPolicy(EditPart child) {
+ View childView = (View) child.getModel();
+ switch (ComrelVisualIDRegistry.getVisualID(childView)) {
+ case SingleInputPort6EditPart.VISUAL_ID:
+ case MultiInputPort7EditPart.VISUAL_ID:
+ return new BorderItemSelectionEditPolicy();
+ }
+ EditPolicy result = child
+ .getEditPolicy(EditPolicy.PRIMARY_DRAG_ROLE);
+ if (result == null) {
+ result = new NonResizableEditPolicy();
+ }
+ return result;
+ }
+
+ protected Command getMoveChildrenCommand(Request request) {
+ return null;
+ }
+
+ protected Command getCreateCommand(CreateRequest request) {
+ return null;
+ }
+ };
+ return lep;
+ }
+
+ /**
+ * @generated NOT
+ */
+ protected IFigure createNodeShape() {
+ SingleQueuedUnitFigure figure = new SingleQueuedUnitFigure();
+ RectangleFigure compHelper = (RectangleFigure) figure.getChildren()
+ .get(1);
+ RectangleFigure compRef = (RectangleFigure) figure.getChildren().get(2);
+ Labels.setLabels(compHelper, compRef, true);
+ // RefactoringUnit unit = (RefactoringUnit) this.resolveSemanticElement();
+ // unit.setFigure(figure);
+ return primaryShape = figure;
+ }
+
+ /**
+ * @generated
+ */
+ public SingleQueuedUnitFigure getPrimaryShape() {
+ return (SingleQueuedUnitFigure) primaryShape;
+ }
+
+ /**
+ * @generated NOT
+ */
+ protected boolean addFixedChild(EditPart childEditPart) {
+ if (childEditPart instanceof SingleQueuedUnitNameTypeLblStrict2EditPart) {
+ ((SingleQueuedUnitNameTypeLblStrict2EditPart) childEditPart)
+ .setLabel(getPrimaryShape()
+ .getFigureSingleQueuedUnitLabelFigure());
+ return true;
+ }
+ if (childEditPart instanceof SingleQueuedUnitSingleQueuedUnitHelperUnitsCompartmentEditPart) {
+ IFigure pane = getPrimaryShape()
+ .getSingleQueuedUnitHelperUnitsCompartmentFigure();
+ setupContentPane(pane); // FIXME each comparment should handle his content pane in his own way
+ pane.add(((SingleQueuedUnitSingleQueuedUnitHelperUnitsCompartmentEditPart) childEditPart)
+ .getFigure());
+ return true;
+ }
+ if (childEditPart instanceof SingleQueuedUnitSingleQueuedUnitRefactoringUnitCompartmentEditPart) {
+ IFigure pane = getPrimaryShape()
+ .getSingleQueuedUnitRefactoringUnitCompartmentFigure();
+ setupContentPane(pane); // FIXME each comparment should handle his content pane in his own way
+ pane.add(((SingleQueuedUnitSingleQueuedUnitRefactoringUnitCompartmentEditPart) childEditPart)
+ .getFigure());
+ return true;
+ }
+ if (childEditPart instanceof SingleInputPort6EditPart) {
+ BorderItemLocator locator = new BorderItemLocator(getMainFigure(),
+ PositionConstants.NORTH);
+ locator.setCurrentSideOfParent(PositionConstants.NORTH); // Position des Ports
+ locator.setPreferredSideOfParent(PositionConstants.NORTH); // Position des Ports
+ getBorderedFigure().getBorderItemContainer().add(
+ ((SingleInputPort6EditPart) childEditPart).getFigure(),
+ locator);
+ return true;
+ }
+ if (childEditPart instanceof MultiInputPort7EditPart) {
+ BorderItemLocator locator = new BorderItemLocator(getMainFigure(),
+ PositionConstants.NORTH);
+ locator.setCurrentSideOfParent(PositionConstants.NORTH); // Position des Ports
+ locator.setPreferredSideOfParent(PositionConstants.NORTH); // Position des Ports
+ getBorderedFigure().getBorderItemContainer().add(
+ ((MultiInputPort7EditPart) childEditPart).getFigure(),
+ locator);
+ return true;
+ }
+ return false;
+ }
+
+ /**
+ * @generated NOT
+ */
+ protected boolean removeFixedChild(EditPart childEditPart) {
+ if (childEditPart instanceof SingleQueuedUnitNameTypeLblStrict2EditPart) {
+ return true;
+ }
+ if (childEditPart instanceof SingleQueuedUnitSingleQueuedUnitHelperUnitsCompartmentEditPart) {
+ IFigure pane = getPrimaryShape()
+ .getSingleQueuedUnitHelperUnitsCompartmentFigure();
+ setupContentPane(pane); // FIXME each comparment should handle his content pane in his own way
+ pane.remove(((SingleQueuedUnitSingleQueuedUnitHelperUnitsCompartmentEditPart) childEditPart)
+ .getFigure());
+ return true;
+ }
+ if (childEditPart instanceof SingleQueuedUnitSingleQueuedUnitRefactoringUnitCompartmentEditPart) {
+ IFigure pane = getPrimaryShape()
+ .getSingleQueuedUnitRefactoringUnitCompartmentFigure();
+ setupContentPane(pane); // FIXME each comparment should handle his content pane in his own way
+ pane.remove(((SingleQueuedUnitSingleQueuedUnitRefactoringUnitCompartmentEditPart) childEditPart)
+ .getFigure());
+ return true;
+ }
+ if (childEditPart instanceof SingleInputPort6EditPart) {
+ getBorderedFigure().getBorderItemContainer().remove(
+ ((SingleInputPort6EditPart) childEditPart).getFigure());
+ return true;
+ }
+ if (childEditPart instanceof MultiInputPort7EditPart) {
+ // getBorderedFigure().getBorderItemContainer().remove(
+ // ((MultiInputPort7EditPart) childEditPart).getFigure());
+ return true;
+ }
+ return false;
+ }
+
+ /**
+ * @generated
+ */
+ protected void addChildVisual(EditPart childEditPart, int index) {
+ if (addFixedChild(childEditPart)) {
+ return;
+ }
+ super.addChildVisual(childEditPart, -1);
+ }
+
+ /**
+ * @generated
+ */
+ protected void removeChildVisual(EditPart childEditPart) {
+ if (removeFixedChild(childEditPart)) {
+ return;
+ }
+ super.removeChildVisual(childEditPart);
+ }
+
+ /**
+ * @generated
+ */
+ protected IFigure getContentPaneFor(IGraphicalEditPart editPart) {
+ if (editPart instanceof SingleQueuedUnitSingleQueuedUnitHelperUnitsCompartmentEditPart) {
+ return getPrimaryShape()
+ .getSingleQueuedUnitHelperUnitsCompartmentFigure();
+ }
+ if (editPart instanceof SingleQueuedUnitSingleQueuedUnitRefactoringUnitCompartmentEditPart) {
+ return getPrimaryShape()
+ .getSingleQueuedUnitRefactoringUnitCompartmentFigure();
+ }
+ if (editPart instanceof IBorderItemEditPart) {
+ return getBorderedFigure().getBorderItemContainer();
+ }
+ return getContentPane();
+ }
+
+ /**
+ * @generated
+ */
+ protected NodeFigure createNodePlate() {
+ DefaultSizeNodeFigure result = new DefaultSizeNodeFigure(40, 40);
+ return result;
+ }
+
+ /**
+ * Creates figure for this edit part.
+ *
+ * Body of this method does not depend on settings in generation model
+ * so you may safely remove <i>generated</i> tag and modify it.
+ *
+ * @generated
+ */
+ protected NodeFigure createMainFigure() {
+ NodeFigure figure = createNodePlate();
+ figure.setLayoutManager(new StackLayout());
+ IFigure shape = createNodeShape();
+ figure.add(shape);
+ contentPane = setupContentPane(shape);
+ return figure;
+ }
+
+ /**
+ * Default implementation treats passed figure as content pane.
+ * Respects layout one may have set for generated figure.
+ * @param nodeShape instance of generated figure class
+ * @generated
+ */
+ protected IFigure setupContentPane(IFigure nodeShape) {
+ if (nodeShape.getLayoutManager() == null) {
+ ConstrainedToolbarLayout layout = new ConstrainedToolbarLayout();
+ layout.setSpacing(5);
+ nodeShape.setLayoutManager(layout);
+ }
+ return nodeShape; // use nodeShape itself as contentPane
+ }
+
+ /**
+ * @generated
+ */
+ public IFigure getContentPane() {
+ if (contentPane != null) {
+ return contentPane;
+ }
+ return super.getContentPane();
+ }
+
+ /**
+ * @generated
+ */
+ protected void setForegroundColor(Color color) {
+ if (primaryShape != null) {
+ primaryShape.setForegroundColor(color);
+ }
+ }
+
+ /**
+ * @generated
+ */
+ protected void setBackgroundColor(Color color) {
+ if (primaryShape != null) {
+ primaryShape.setBackgroundColor(color);
+ }
+ }
+
+ /**
+ * @generated
+ */
+ protected void setLineWidth(int width) {
+ if (primaryShape instanceof Shape) {
+ ((Shape) primaryShape).setLineWidth(width);
+ }
+ }
+
+ /**
+ * @generated
+ */
+ protected void setLineType(int style) {
+ if (primaryShape instanceof Shape) {
+ ((Shape) primaryShape).setLineStyle(style);
+ }
+ }
+
+ /**
+ * @generated
+ */
+ public EditPart getPrimaryChildEditPart() {
+ return getChildBySemanticHint(ComrelVisualIDRegistry
+ .getType(SingleQueuedUnitNameTypeLblStrict2EditPart.VISUAL_ID));
+ }
+
+ /**
+ * @generated
+ */
+ public class SingleQueuedUnitFigure extends RoundedRectangle {
+
+ /**
+ * @generated
+ */
+ private WrappingLabel fFigureSingleQueuedUnitLabelFigure;
+ /**
+ * @generated
+ */
+ private RectangleFigure fSingleQueuedUnitHelperUnitsCompartmentFigure;
+ /**
+ * @generated
+ */
+ private RectangleFigure fSingleQueuedUnitRefactoringUnitCompartmentFigure;
+
+ /**
+ * @generated
+ */
+ public SingleQueuedUnitFigure() {
+ this.setCornerDimensions(new Dimension(getMapMode().DPtoLP(8),
+ getMapMode().DPtoLP(8)));
+ this.setBorder(new MarginBorder(getMapMode().DPtoLP(5),
+ getMapMode().DPtoLP(5), getMapMode().DPtoLP(5),
+ getMapMode().DPtoLP(5)));
+ createContents();
+ }
+
+ /**
+ * @generated
+ */
+ private void createContents() {
+
+ fFigureSingleQueuedUnitLabelFigure = new WrappingLabel();
+ fFigureSingleQueuedUnitLabelFigure.setText("SingleQueuedUnit");
+ fFigureSingleQueuedUnitLabelFigure.setMaximumSize(new Dimension(
+ getMapMode().DPtoLP(10000), getMapMode().DPtoLP(50)));
+
+ this.add(fFigureSingleQueuedUnitLabelFigure);
+
+ fSingleQueuedUnitHelperUnitsCompartmentFigure = new RectangleFigure();
+ fSingleQueuedUnitHelperUnitsCompartmentFigure.setOutline(false);
+
+ this.add(fSingleQueuedUnitHelperUnitsCompartmentFigure);
+
+ fSingleQueuedUnitRefactoringUnitCompartmentFigure = new RectangleFigure();
+ fSingleQueuedUnitRefactoringUnitCompartmentFigure.setOutline(false);
+
+ this.add(fSingleQueuedUnitRefactoringUnitCompartmentFigure);
+
+ }
+
+ /**
+ * @generated
+ */
+ public WrappingLabel getFigureSingleQueuedUnitLabelFigure() {
+ return fFigureSingleQueuedUnitLabelFigure;
+ }
+
+ /**
+ * @generated
+ */
+ public RectangleFigure getSingleQueuedUnitHelperUnitsCompartmentFigure() {
+ return fSingleQueuedUnitHelperUnitsCompartmentFigure;
+ }
+
+ /**
+ * @generated
+ */
+ public RectangleFigure getSingleQueuedUnitRefactoringUnitCompartmentFigure() {
+ return fSingleQueuedUnitRefactoringUnitCompartmentFigure;
+ }
+
+ }
+
+}
diff --git a/org.eclipse.emf.refactor.comrel.diagram/src/comrel/diagram/edit/parts/SingleQueuedUnit3EditPart.java b/org.eclipse.emf.refactor.comrel.diagram/src/comrel/diagram/edit/parts/SingleQueuedUnit3EditPart.java
new file mode 100644
index 0000000..1b24290
--- /dev/null
+++ b/org.eclipse.emf.refactor.comrel.diagram/src/comrel/diagram/edit/parts/SingleQueuedUnit3EditPart.java
@@ -0,0 +1,437 @@
+/*
+ *
+ */
+package comrel.diagram.edit.parts;
+
+import org.eclipse.draw2d.IFigure;
+import org.eclipse.draw2d.MarginBorder;
+import org.eclipse.draw2d.PositionConstants;
+import org.eclipse.draw2d.RectangleFigure;
+import org.eclipse.draw2d.RoundedRectangle;
+import org.eclipse.draw2d.Shape;
+import org.eclipse.draw2d.StackLayout;
+import org.eclipse.draw2d.geometry.Dimension;
+import org.eclipse.gef.EditPart;
+import org.eclipse.gef.EditPolicy;
+import org.eclipse.gef.Request;
+import org.eclipse.gef.commands.Command;
+import org.eclipse.gef.editpolicies.LayoutEditPolicy;
+import org.eclipse.gef.editpolicies.NonResizableEditPolicy;
+import org.eclipse.gef.requests.CreateRequest;
+import org.eclipse.gmf.runtime.diagram.ui.editparts.AbstractBorderedShapeEditPart;
+import org.eclipse.gmf.runtime.diagram.ui.editparts.IBorderItemEditPart;
+import org.eclipse.gmf.runtime.diagram.ui.editparts.IGraphicalEditPart;
+import org.eclipse.gmf.runtime.diagram.ui.editpolicies.BorderItemSelectionEditPolicy;
+import org.eclipse.gmf.runtime.diagram.ui.editpolicies.CreationEditPolicy;
+import org.eclipse.gmf.runtime.diagram.ui.editpolicies.DragDropEditPolicy;
+import org.eclipse.gmf.runtime.diagram.ui.editpolicies.EditPolicyRoles;
+import org.eclipse.gmf.runtime.diagram.ui.figures.BorderItemLocator;
+import org.eclipse.gmf.runtime.draw2d.ui.figures.ConstrainedToolbarLayout;
+import org.eclipse.gmf.runtime.draw2d.ui.figures.WrappingLabel;
+import org.eclipse.gmf.runtime.gef.ui.figures.DefaultSizeNodeFigure;
+import org.eclipse.gmf.runtime.gef.ui.figures.NodeFigure;
+import org.eclipse.gmf.runtime.notation.View;
+import org.eclipse.swt.graphics.Color;
+
+import comrel.diagram.edit.parts.SingleQueuedUnit7EditPart.SingleQueuedUnitFigure;
+import comrel.diagram.edit.parts.custom.Labels;
+import comrel.diagram.edit.policies.OpenDiagramEditPolicy;
+import comrel.diagram.edit.policies.SingleQueuedUnit3CanonicalEditPolicy;
+import comrel.diagram.edit.policies.SingleQueuedUnit3ItemSemanticEditPolicy;
+import comrel.diagram.part.ComrelVisualIDRegistry;
+
+/**
+ * @generated
+ */
+public class SingleQueuedUnit3EditPart extends AbstractBorderedShapeEditPart {
+
+ /**
+ * @generated
+ */
+ public static final int VISUAL_ID = 3042;
+
+ /**
+ * @generated
+ */
+ protected IFigure contentPane;
+
+ /**
+ * @generated
+ */
+ protected IFigure primaryShape;
+
+ /**
+ * @generated
+ */
+ public SingleQueuedUnit3EditPart(View view) {
+ super(view);
+ }
+
+ /**
+ * @generated
+ */
+ protected void createDefaultEditPolicies() {
+ installEditPolicy(EditPolicyRoles.CREATION_ROLE,
+ new CreationEditPolicy());
+ super.createDefaultEditPolicies();
+ installEditPolicy(EditPolicyRoles.SEMANTIC_ROLE,
+ new SingleQueuedUnit3ItemSemanticEditPolicy());
+ installEditPolicy(EditPolicyRoles.DRAG_DROP_ROLE,
+ new DragDropEditPolicy());
+ installEditPolicy(EditPolicyRoles.CANONICAL_ROLE,
+ new SingleQueuedUnit3CanonicalEditPolicy());
+ installEditPolicy(EditPolicy.LAYOUT_ROLE, createLayoutEditPolicy());
+ installEditPolicy(EditPolicyRoles.OPEN_ROLE,
+ new OpenDiagramEditPolicy());
+ // XXX need an SCR to runtime to have another abstract superclass that would let children add reasonable editpolicies
+ // removeEditPolicy(org.eclipse.gmf.runtime.diagram.ui.editpolicies.EditPolicyRoles.CONNECTION_HANDLES_ROLE);
+ }
+
+ /**
+ * @generated
+ */
+ protected LayoutEditPolicy createLayoutEditPolicy() {
+ org.eclipse.gmf.runtime.diagram.ui.editpolicies.LayoutEditPolicy lep = new org.eclipse.gmf.runtime.diagram.ui.editpolicies.LayoutEditPolicy() {
+
+ protected EditPolicy createChildEditPolicy(EditPart child) {
+ View childView = (View) child.getModel();
+ switch (ComrelVisualIDRegistry.getVisualID(childView)) {
+ case SingleInputPort6EditPart.VISUAL_ID:
+ case MultiInputPort7EditPart.VISUAL_ID:
+ return new BorderItemSelectionEditPolicy();
+ }
+ EditPolicy result = child
+ .getEditPolicy(EditPolicy.PRIMARY_DRAG_ROLE);
+ if (result == null) {
+ result = new NonResizableEditPolicy();
+ }
+ return result;
+ }
+
+ protected Command getMoveChildrenCommand(Request request) {
+ return null;
+ }
+
+ protected Command getCreateCommand(CreateRequest request) {
+ return null;
+ }
+ };
+ return lep;
+ }
+
+ /**
+ * @generated NOT
+ */
+ protected IFigure createNodeShape() {
+ SingleQueuedUnitFigure figure = new SingleQueuedUnitFigure();
+ RectangleFigure compHelper = (RectangleFigure) figure.getChildren()
+ .get(1);
+ RectangleFigure compRef = (RectangleFigure) figure.getChildren().get(2);
+ Labels.setLabels(compHelper, compRef, true);
+ // RefactoringUnit unit = (RefactoringUnit) this.resolveSemanticElement();
+ // unit.setFigure(figure);
+ return primaryShape = figure;
+ }
+
+ /**
+ * @generated
+ */
+ public SingleQueuedUnitFigure getPrimaryShape() {
+ return (SingleQueuedUnitFigure) primaryShape;
+ }
+
+ /**
+ * @generated NOT
+ */
+ protected boolean addFixedChild(EditPart childEditPart) {
+ if (childEditPart instanceof SingleQueuedUnitNameTypeLblStrict3EditPart) {
+ ((SingleQueuedUnitNameTypeLblStrict3EditPart) childEditPart)
+ .setLabel(getPrimaryShape()
+ .getFigureSingleQueuedUnitLabelFigure());
+ return true;
+ }
+ if (childEditPart instanceof SingleQueuedUnitSingleQueuedUnitHelperUnitsCompartment2EditPart) {
+ IFigure pane = getPrimaryShape()
+ .getSingleQueuedUnitHelperUnitsCompartmentFigure();
+ setupContentPane(pane); // FIXME each comparment should handle his content pane in his own way
+ pane.add(((SingleQueuedUnitSingleQueuedUnitHelperUnitsCompartment2EditPart) childEditPart)
+ .getFigure());
+ return true;
+ }
+ if (childEditPart instanceof SingleQueuedUnitSingleQueuedUnitRefactoringUnitCompartment2EditPart) {
+ IFigure pane = getPrimaryShape()
+ .getSingleQueuedUnitRefactoringUnitCompartmentFigure();
+ setupContentPane(pane); // FIXME each comparment should handle his content pane in his own way
+ pane.add(((SingleQueuedUnitSingleQueuedUnitRefactoringUnitCompartment2EditPart) childEditPart)
+ .getFigure());
+ return true;
+ }
+ if (childEditPart instanceof SingleInputPort6EditPart) {
+ BorderItemLocator locator = new BorderItemLocator(getMainFigure(),
+ PositionConstants.NORTH);
+ locator.setCurrentSideOfParent(PositionConstants.NORTH); // Position des Ports
+ locator.setPreferredSideOfParent(PositionConstants.NORTH); // Position des Ports
+ getBorderedFigure().getBorderItemContainer().add(
+ ((SingleInputPort6EditPart) childEditPart).getFigure(),
+ locator);
+ return true;
+ }
+ if (childEditPart instanceof MultiInputPort7EditPart) {
+ BorderItemLocator locator = new BorderItemLocator(getMainFigure(),
+ PositionConstants.NORTH);
+ locator.setCurrentSideOfParent(PositionConstants.NORTH); // Position des Ports
+ locator.setPreferredSideOfParent(PositionConstants.NORTH); // Position des Ports
+ getBorderedFigure().getBorderItemContainer().add(
+ ((MultiInputPort7EditPart) childEditPart).getFigure(),
+ locator);
+ return true;
+ }
+ return false;
+ }
+
+ /**
+ * @generated NOT
+ */
+ protected boolean removeFixedChild(EditPart childEditPart) {
+ if (childEditPart instanceof SingleQueuedUnitNameTypeLblStrict3EditPart) {
+ return true;
+ }
+ if (childEditPart instanceof SingleQueuedUnitSingleQueuedUnitHelperUnitsCompartment2EditPart) {
+ IFigure pane = getPrimaryShape()
+ .getSingleQueuedUnitHelperUnitsCompartmentFigure();
+ setupContentPane(pane); // FIXME each comparment should handle his content pane in his own way
+ pane.remove(((SingleQueuedUnitSingleQueuedUnitHelperUnitsCompartment2EditPart) childEditPart)
+ .getFigure());
+ return true;
+ }
+ if (childEditPart instanceof SingleQueuedUnitSingleQueuedUnitRefactoringUnitCompartment2EditPart) {
+ IFigure pane = getPrimaryShape()
+ .getSingleQueuedUnitRefactoringUnitCompartmentFigure();
+ setupContentPane(pane); // FIXME each comparment should handle his content pane in his own way
+ pane.remove(((SingleQueuedUnitSingleQueuedUnitRefactoringUnitCompartment2EditPart) childEditPart)
+ .getFigure());
+ return true;
+ }
+ if (childEditPart instanceof SingleInputPort6EditPart) {
+ getBorderedFigure().getBorderItemContainer().remove(
+ ((SingleInputPort6EditPart) childEditPart).getFigure());
+ return true;
+ }
+ if (childEditPart instanceof MultiInputPort7EditPart) {
+ // getBorderedFigure().getBorderItemContainer().remove(
+ // ((MultiInputPort7EditPart) childEditPart).getFigure());
+ return true;
+ }
+ return false;
+ }
+
+ /**
+ * @generated
+ */
+ protected void addChildVisual(EditPart childEditPart, int index) {
+ if (addFixedChild(childEditPart)) {
+ return;
+ }
+ super.addChildVisual(childEditPart, -1);
+ }
+
+ /**
+ * @generated
+ */
+ protected void removeChildVisual(EditPart childEditPart) {
+ if (removeFixedChild(childEditPart)) {
+ return;
+ }
+ super.removeChildVisual(childEditPart);
+ }
+
+ /**
+ * @generated
+ */
+ protected IFigure getContentPaneFor(IGraphicalEditPart editPart) {
+ if (editPart instanceof SingleQueuedUnitSingleQueuedUnitHelperUnitsCompartment2EditPart) {
+ return getPrimaryShape()
+ .getSingleQueuedUnitHelperUnitsCompartmentFigure();
+ }
+ if (editPart instanceof SingleQueuedUnitSingleQueuedUnitRefactoringUnitCompartment2EditPart) {
+ return getPrimaryShape()
+ .getSingleQueuedUnitRefactoringUnitCompartmentFigure();
+ }
+ if (editPart instanceof IBorderItemEditPart) {
+ return getBorderedFigure().getBorderItemContainer();
+ }
+ return getContentPane();
+ }
+
+ /**
+ * @generated
+ */
+ protected NodeFigure createNodePlate() {
+ DefaultSizeNodeFigure result = new DefaultSizeNodeFigure(40, 40);
+ return result;
+ }
+
+ /**
+ * Creates figure for this edit part.
+ *
+ * Body of this method does not depend on settings in generation model
+ * so you may safely remove <i>generated</i> tag and modify it.
+ *
+ * @generated
+ */
+ protected NodeFigure createMainFigure() {
+ NodeFigure figure = createNodePlate();
+ figure.setLayoutManager(new StackLayout());
+ IFigure shape = createNodeShape();
+ figure.add(shape);
+ contentPane = setupContentPane(shape);
+ return figure;
+ }
+
+ /**
+ * Default implementation treats passed figure as content pane.
+ * Respects layout one may have set for generated figure.
+ * @param nodeShape instance of generated figure class
+ * @generated
+ */
+ protected IFigure setupContentPane(IFigure nodeShape) {
+ if (nodeShape.getLayoutManager() == null) {
+ ConstrainedToolbarLayout layout = new ConstrainedToolbarLayout();
+ layout.setSpacing(5);
+ nodeShape.setLayoutManager(layout);
+ }
+ return nodeShape; // use nodeShape itself as contentPane
+ }
+
+ /**
+ * @generated
+ */
+ public IFigure getContentPane() {
+ if (contentPane != null) {
+ return contentPane;
+ }
+ return super.getContentPane();
+ }
+
+ /**
+ * @generated
+ */
+ protected void setForegroundColor(Color color) {
+ if (primaryShape != null) {
+ primaryShape.setForegroundColor(color);
+ }
+ }
+
+ /**
+ * @generated
+ */
+ protected void setBackgroundColor(Color color) {
+ if (primaryShape != null) {
+ primaryShape.setBackgroundColor(color);
+ }
+ }
+
+ /**
+ * @generated
+ */
+ protected void setLineWidth(int width) {
+ if (primaryShape instanceof Shape) {
+ ((Shape) primaryShape).setLineWidth(width);
+ }
+ }
+
+ /**
+ * @generated
+ */
+ protected void setLineType(int style) {
+ if (primaryShape instanceof Shape) {
+ ((Shape) primaryShape).setLineStyle(style);
+ }
+ }
+
+ /**
+ * @generated
+ */
+ public EditPart getPrimaryChildEditPart() {
+ return getChildBySemanticHint(ComrelVisualIDRegistry
+ .getType(SingleQueuedUnitNameTypeLblStrict3EditPart.VISUAL_ID));
+ }
+
+ /**
+ * @generated
+ */
+ public class SingleQueuedUnitFigure extends RoundedRectangle {
+
+ /**
+ * @generated
+ */
+ private WrappingLabel fFigureSingleQueuedUnitLabelFigure;
+ /**
+ * @generated
+ */
+ private RectangleFigure fSingleQueuedUnitHelperUnitsCompartmentFigure;
+ /**
+ * @generated
+ */
+ private RectangleFigure fSingleQueuedUnitRefactoringUnitCompartmentFigure;
+
+ /**
+ * @generated
+ */
+ public SingleQueuedUnitFigure() {
+ this.setCornerDimensions(new Dimension(getMapMode().DPtoLP(8),
+ getMapMode().DPtoLP(8)));
+ this.setBorder(new MarginBorder(getMapMode().DPtoLP(5),
+ getMapMode().DPtoLP(5), getMapMode().DPtoLP(5),
+ getMapMode().DPtoLP(5)));
+ createContents();
+ }
+
+ /**
+ * @generated
+ */
+ private void createContents() {
+
+ fFigureSingleQueuedUnitLabelFigure = new WrappingLabel();
+ fFigureSingleQueuedUnitLabelFigure.setText("SingleQueuedUnit");
+ fFigureSingleQueuedUnitLabelFigure.setMaximumSize(new Dimension(
+ getMapMode().DPtoLP(10000), getMapMode().DPtoLP(50)));
+
+ this.add(fFigureSingleQueuedUnitLabelFigure);
+
+ fSingleQueuedUnitHelperUnitsCompartmentFigure = new RectangleFigure();
+ fSingleQueuedUnitHelperUnitsCompartmentFigure.setOutline(false);
+
+ this.add(fSingleQueuedUnitHelperUnitsCompartmentFigure);
+
+ fSingleQueuedUnitRefactoringUnitCompartmentFigure = new RectangleFigure();
+ fSingleQueuedUnitRefactoringUnitCompartmentFigure.setOutline(false);
+
+ this.add(fSingleQueuedUnitRefactoringUnitCompartmentFigure);
+
+ }
+
+ /**
+ * @generated
+ */
+ public WrappingLabel getFigureSingleQueuedUnitLabelFigure() {
+ return fFigureSingleQueuedUnitLabelFigure;
+ }
+
+ /**
+ * @generated
+ */
+ public RectangleFigure getSingleQueuedUnitHelperUnitsCompartmentFigure() {
+ return fSingleQueuedUnitHelperUnitsCompartmentFigure;
+ }
+
+ /**
+ * @generated
+ */
+ public RectangleFigure getSingleQueuedUnitRefactoringUnitCompartmentFigure() {
+ return fSingleQueuedUnitRefactoringUnitCompartmentFigure;
+ }
+
+ }
+
+}
diff --git a/org.eclipse.emf.refactor.comrel.diagram/src/comrel/diagram/edit/parts/SingleQueuedUnit4EditPart.java b/org.eclipse.emf.refactor.comrel.diagram/src/comrel/diagram/edit/parts/SingleQueuedUnit4EditPart.java
new file mode 100644
index 0000000..34ee0ae
--- /dev/null
+++ b/org.eclipse.emf.refactor.comrel.diagram/src/comrel/diagram/edit/parts/SingleQueuedUnit4EditPart.java
@@ -0,0 +1,437 @@
+/*
+ *
+ */
+package comrel.diagram.edit.parts;
+
+import org.eclipse.draw2d.IFigure;
+import org.eclipse.draw2d.MarginBorder;
+import org.eclipse.draw2d.PositionConstants;
+import org.eclipse.draw2d.RectangleFigure;
+import org.eclipse.draw2d.RoundedRectangle;
+import org.eclipse.draw2d.Shape;
+import org.eclipse.draw2d.StackLayout;
+import org.eclipse.draw2d.geometry.Dimension;
+import org.eclipse.gef.EditPart;
+import org.eclipse.gef.EditPolicy;
+import org.eclipse.gef.Request;
+import org.eclipse.gef.commands.Command;
+import org.eclipse.gef.editpolicies.LayoutEditPolicy;
+import org.eclipse.gef.editpolicies.NonResizableEditPolicy;
+import org.eclipse.gef.requests.CreateRequest;
+import org.eclipse.gmf.runtime.diagram.ui.editparts.AbstractBorderedShapeEditPart;
+import org.eclipse.gmf.runtime.diagram.ui.editparts.IBorderItemEditPart;
+import org.eclipse.gmf.runtime.diagram.ui.editparts.IGraphicalEditPart;
+import org.eclipse.gmf.runtime.diagram.ui.editpolicies.BorderItemSelectionEditPolicy;
+import org.eclipse.gmf.runtime.diagram.ui.editpolicies.CreationEditPolicy;
+import org.eclipse.gmf.runtime.diagram.ui.editpolicies.DragDropEditPolicy;
+import org.eclipse.gmf.runtime.diagram.ui.editpolicies.EditPolicyRoles;
+import org.eclipse.gmf.runtime.diagram.ui.figures.BorderItemLocator;
+import org.eclipse.gmf.runtime.draw2d.ui.figures.ConstrainedToolbarLayout;
+import org.eclipse.gmf.runtime.draw2d.ui.figures.WrappingLabel;
+import org.eclipse.gmf.runtime.gef.ui.figures.DefaultSizeNodeFigure;
+import org.eclipse.gmf.runtime.gef.ui.figures.NodeFigure;
+import org.eclipse.gmf.runtime.notation.View;
+import org.eclipse.swt.graphics.Color;
+
+import comrel.diagram.edit.parts.SingleQueuedUnit7EditPart.SingleQueuedUnitFigure;
+import comrel.diagram.edit.parts.custom.Labels;
+import comrel.diagram.edit.policies.OpenDiagramEditPolicy;
+import comrel.diagram.edit.policies.SingleQueuedUnit4CanonicalEditPolicy;
+import comrel.diagram.edit.policies.SingleQueuedUnit4ItemSemanticEditPolicy;
+import comrel.diagram.part.ComrelVisualIDRegistry;
+
+/**
+ * @generated
+ */
+public class SingleQueuedUnit4EditPart extends AbstractBorderedShapeEditPart {
+
+ /**
+ * @generated
+ */
+ public static final int VISUAL_ID = 3054;
+
+ /**
+ * @generated
+ */
+ protected IFigure contentPane;
+
+ /**
+ * @generated
+ */
+ protected IFigure primaryShape;
+
+ /**
+ * @generated
+ */
+ public SingleQueuedUnit4EditPart(View view) {
+ super(view);
+ }
+
+ /**
+ * @generated
+ */
+ protected void createDefaultEditPolicies() {
+ installEditPolicy(EditPolicyRoles.CREATION_ROLE,
+ new CreationEditPolicy());
+ super.createDefaultEditPolicies();
+ installEditPolicy(EditPolicyRoles.SEMANTIC_ROLE,
+ new SingleQueuedUnit4ItemSemanticEditPolicy());
+ installEditPolicy(EditPolicyRoles.DRAG_DROP_ROLE,
+ new DragDropEditPolicy());
+ installEditPolicy(EditPolicyRoles.CANONICAL_ROLE,
+ new SingleQueuedUnit4CanonicalEditPolicy());
+ installEditPolicy(EditPolicy.LAYOUT_ROLE, createLayoutEditPolicy());
+ installEditPolicy(EditPolicyRoles.OPEN_ROLE,
+ new OpenDiagramEditPolicy());
+ // XXX need an SCR to runtime to have another abstract superclass that would let children add reasonable editpolicies
+ // removeEditPolicy(org.eclipse.gmf.runtime.diagram.ui.editpolicies.EditPolicyRoles.CONNECTION_HANDLES_ROLE);
+ }
+
+ /**
+ * @generated
+ */
+ protected LayoutEditPolicy createLayoutEditPolicy() {
+ org.eclipse.gmf.runtime.diagram.ui.editpolicies.LayoutEditPolicy lep = new org.eclipse.gmf.runtime.diagram.ui.editpolicies.LayoutEditPolicy() {
+
+ protected EditPolicy createChildEditPolicy(EditPart child) {
+ View childView = (View) child.getModel();
+ switch (ComrelVisualIDRegistry.getVisualID(childView)) {
+ case SingleInputPort6EditPart.VISUAL_ID:
+ case MultiInputPort7EditPart.VISUAL_ID:
+ return new BorderItemSelectionEditPolicy();
+ }
+ EditPolicy result = child
+ .getEditPolicy(EditPolicy.PRIMARY_DRAG_ROLE);
+ if (result == null) {
+ result = new NonResizableEditPolicy();
+ }
+ return result;
+ }
+
+ protected Command getMoveChildrenCommand(Request request) {
+ return null;
+ }
+
+ protected Command getCreateCommand(CreateRequest request) {
+ return null;
+ }
+ };
+ return lep;
+ }
+
+ /**
+ * @generated NOT
+ */
+ protected IFigure createNodeShape() {
+ SingleQueuedUnitFigure figure = new SingleQueuedUnitFigure();
+ RectangleFigure compHelper = (RectangleFigure) figure.getChildren()
+ .get(1);
+ RectangleFigure compRef = (RectangleFigure) figure.getChildren().get(2);
+ Labels.setLabels(compHelper, compRef, true);
+ // RefactoringUnit unit = (RefactoringUnit) this.resolveSemanticElement();
+ // unit.setFigure(figure);
+ return primaryShape = figure;
+ }
+
+ /**
+ * @generated
+ */
+ public SingleQueuedUnitFigure getPrimaryShape() {
+ return (SingleQueuedUnitFigure) primaryShape;
+ }
+
+ /**
+ * @generated NOT
+ */
+ protected boolean addFixedChild(EditPart childEditPart) {
+ if (childEditPart instanceof SingleQueuedUnitNameTypeLblStrict4EditPart) {
+ ((SingleQueuedUnitNameTypeLblStrict4EditPart) childEditPart)
+ .setLabel(getPrimaryShape()
+ .getFigureSingleQueuedUnitLabelFigure());
+ return true;
+ }
+ if (childEditPart instanceof SingleQueuedUnitSingleQueuedUnitHelperUnitsCompartment3EditPart) {
+ IFigure pane = getPrimaryShape()
+ .getSingleQueuedUnitHelperUnitsCompartmentFigure();
+ setupContentPane(pane); // FIXME each comparment should handle his content pane in his own way
+ pane.add(((SingleQueuedUnitSingleQueuedUnitHelperUnitsCompartment3EditPart) childEditPart)
+ .getFigure());
+ return true;
+ }
+ if (childEditPart instanceof SingleQueuedUnitSingleQueuedUnitRefactoringUnitCompartment3EditPart) {
+ IFigure pane = getPrimaryShape()
+ .getSingleQueuedUnitRefactoringUnitCompartmentFigure();
+ setupContentPane(pane); // FIXME each comparment should handle his content pane in his own way
+ pane.add(((SingleQueuedUnitSingleQueuedUnitRefactoringUnitCompartment3EditPart) childEditPart)
+ .getFigure());
+ return true;
+ }
+ if (childEditPart instanceof SingleInputPort6EditPart) {
+ BorderItemLocator locator = new BorderItemLocator(getMainFigure(),
+ PositionConstants.NORTH);
+ locator.setCurrentSideOfParent(PositionConstants.NORTH); // Position des Ports
+ locator.setPreferredSideOfParent(PositionConstants.NORTH); // Position des Ports
+ getBorderedFigure().getBorderItemContainer().add(
+ ((SingleInputPort6EditPart) childEditPart).getFigure(),
+ locator);
+ return true;
+ }
+ if (childEditPart instanceof MultiInputPort7EditPart) {
+ BorderItemLocator locator = new BorderItemLocator(getMainFigure(),
+ PositionConstants.NORTH);
+ locator.setCurrentSideOfParent(PositionConstants.NORTH); // Position des Ports
+ locator.setPreferredSideOfParent(PositionConstants.NORTH); // Position des Ports
+ getBorderedFigure().getBorderItemContainer().add(
+ ((MultiInputPort7EditPart) childEditPart).getFigure(),
+ locator);
+ return true;
+ }
+ return false;
+ }
+
+ /**
+ * @generated NOT
+ */
+ protected boolean removeFixedChild(EditPart childEditPart) {
+ if (childEditPart instanceof SingleQueuedUnitNameTypeLblStrict4EditPart) {
+ return true;
+ }
+ if (childEditPart instanceof SingleQueuedUnitSingleQueuedUnitHelperUnitsCompartment3EditPart) {
+ IFigure pane = getPrimaryShape()
+ .getSingleQueuedUnitHelperUnitsCompartmentFigure();
+ setupContentPane(pane); // FIXME each comparment should handle his content pane in his own way
+ pane.remove(((SingleQueuedUnitSingleQueuedUnitHelperUnitsCompartment3EditPart) childEditPart)
+ .getFigure());
+ return true;
+ }
+ if (childEditPart instanceof SingleQueuedUnitSingleQueuedUnitRefactoringUnitCompartment3EditPart) {
+ IFigure pane = getPrimaryShape()
+ .getSingleQueuedUnitRefactoringUnitCompartmentFigure();
+ setupContentPane(pane); // FIXME each comparment should handle his content pane in his own way
+ pane.remove(((SingleQueuedUnitSingleQueuedUnitRefactoringUnitCompartment3EditPart) childEditPart)
+ .getFigure());
+ return true;
+ }
+ if (childEditPart instanceof SingleInputPort6EditPart) {
+ getBorderedFigure().getBorderItemContainer().remove(
+ ((SingleInputPort6EditPart) childEditPart).getFigure());
+ return true;
+ }
+ if (childEditPart instanceof MultiInputPort7EditPart) {
+ // getBorderedFigure().getBorderItemContainer().remove(
+ // ((MultiInputPort7EditPart) childEditPart).getFigure());
+ return true;
+ }
+ return false;
+ }
+
+ /**
+ * @generated
+ */
+ protected void addChildVisual(EditPart childEditPart, int index) {
+ if (addFixedChild(childEditPart)) {
+ return;
+ }
+ super.addChildVisual(childEditPart, -1);
+ }
+
+ /**
+ * @generated
+ */
+ protected void removeChildVisual(EditPart childEditPart) {
+ if (removeFixedChild(childEditPart)) {
+ return;
+ }
+ super.removeChildVisual(childEditPart);
+ }
+
+ /**
+ * @generated
+ */
+ protected IFigure getContentPaneFor(IGraphicalEditPart editPart) {
+ if (editPart instanceof SingleQueuedUnitSingleQueuedUnitHelperUnitsCompartment3EditPart) {
+ return getPrimaryShape()
+ .getSingleQueuedUnitHelperUnitsCompartmentFigure();
+ }
+ if (editPart instanceof SingleQueuedUnitSingleQueuedUnitRefactoringUnitCompartment3EditPart) {
+ return getPrimaryShape()
+ .getSingleQueuedUnitRefactoringUnitCompartmentFigure();
+ }
+ if (editPart instanceof IBorderItemEditPart) {
+ return getBorderedFigure().getBorderItemContainer();
+ }
+ return getContentPane();
+ }
+
+ /**
+ * @generated
+ */
+ protected NodeFigure createNodePlate() {
+ DefaultSizeNodeFigure result = new DefaultSizeNodeFigure(40, 40);
+ return result;
+ }
+
+ /**
+ * Creates figure for this edit part.
+ *
+ * Body of this method does not depend on settings in generation model
+ * so you may safely remove <i>generated</i> tag and modify it.
+ *
+ * @generated
+ */
+ protected NodeFigure createMainFigure() {
+ NodeFigure figure = createNodePlate();
+ figure.setLayoutManager(new StackLayout());
+ IFigure shape = createNodeShape();
+ figure.add(shape);
+ contentPane = setupContentPane(shape);
+ return figure;
+ }
+
+ /**
+ * Default implementation treats passed figure as content pane.
+ * Respects layout one may have set for generated figure.
+ * @param nodeShape instance of generated figure class
+ * @generated
+ */
+ protected IFigure setupContentPane(IFigure nodeShape) {
+ if (nodeShape.getLayoutManager() == null) {
+ ConstrainedToolbarLayout layout = new ConstrainedToolbarLayout();
+ layout.setSpacing(5);
+ nodeShape.setLayoutManager(layout);
+ }
+ return nodeShape; // use nodeShape itself as contentPane
+ }
+
+ /**
+ * @generated
+ */
+ public IFigure getContentPane() {
+ if (contentPane != null) {
+ return contentPane;
+ }
+ return super.getContentPane();
+ }
+
+ /**
+ * @generated
+ */
+ protected void setForegroundColor(Color color) {
+ if (primaryShape != null) {
+ primaryShape.setForegroundColor(color);
+ }
+ }
+
+ /**
+ * @generated
+ */
+ protected void setBackgroundColor(Color color) {
+ if (primaryShape != null) {
+ primaryShape.setBackgroundColor(color);
+ }
+ }
+
+ /**
+ * @generated
+ */
+ protected void setLineWidth(int width) {
+ if (primaryShape instanceof Shape) {
+ ((Shape) primaryShape).setLineWidth(width);
+ }
+ }
+
+ /**
+ * @generated
+ */
+ protected void setLineType(int style) {
+ if (primaryShape instanceof Shape) {
+ ((Shape) primaryShape).setLineStyle(style);
+ }
+ }
+
+ /**
+ * @generated
+ */
+ public EditPart getPrimaryChildEditPart() {
+ return getChildBySemanticHint(ComrelVisualIDRegistry
+ .getType(SingleQueuedUnitNameTypeLblStrict4EditPart.VISUAL_ID));
+ }
+
+ /**
+ * @generated
+ */
+ public class SingleQueuedUnitFigure extends RoundedRectangle {
+
+ /**
+ * @generated
+ */
+ private WrappingLabel fFigureSingleQueuedUnitLabelFigure;
+ /**
+ * @generated
+ */
+ private RectangleFigure fSingleQueuedUnitHelperUnitsCompartmentFigure;
+ /**
+ * @generated
+ */
+ private RectangleFigure fSingleQueuedUnitRefactoringUnitCompartmentFigure;
+
+ /**
+ * @generated
+ */
+ public SingleQueuedUnitFigure() {
+ this.setCornerDimensions(new Dimension(getMapMode().DPtoLP(8),
+ getMapMode().DPtoLP(8)));
+ this.setBorder(new MarginBorder(getMapMode().DPtoLP(5),
+ getMapMode().DPtoLP(5), getMapMode().DPtoLP(5),
+ getMapMode().DPtoLP(5)));
+ createContents();
+ }
+
+ /**
+ * @generated
+ */
+ private void createContents() {
+
+ fFigureSingleQueuedUnitLabelFigure = new WrappingLabel();
+ fFigureSingleQueuedUnitLabelFigure.setText("SingleQueuedUnit");
+ fFigureSingleQueuedUnitLabelFigure.setMaximumSize(new Dimension(
+ getMapMode().DPtoLP(10000), getMapMode().DPtoLP(50)));
+
+ this.add(fFigureSingleQueuedUnitLabelFigure);
+
+ fSingleQueuedUnitHelperUnitsCompartmentFigure = new RectangleFigure();
+ fSingleQueuedUnitHelperUnitsCompartmentFigure.setOutline(false);
+
+ this.add(fSingleQueuedUnitHelperUnitsCompartmentFigure);
+
+ fSingleQueuedUnitRefactoringUnitCompartmentFigure = new RectangleFigure();
+ fSingleQueuedUnitRefactoringUnitCompartmentFigure.setOutline(false);
+
+ this.add(fSingleQueuedUnitRefactoringUnitCompartmentFigure);
+
+ }
+
+ /**
+ * @generated
+ */
+ public WrappingLabel getFigureSingleQueuedUnitLabelFigure() {
+ return fFigureSingleQueuedUnitLabelFigure;
+ }
+
+ /**
+ * @generated
+ */
+ public RectangleFigure getSingleQueuedUnitHelperUnitsCompartmentFigure() {
+ return fSingleQueuedUnitHelperUnitsCompartmentFigure;
+ }
+
+ /**
+ * @generated
+ */
+ public RectangleFigure getSingleQueuedUnitRefactoringUnitCompartmentFigure() {
+ return fSingleQueuedUnitRefactoringUnitCompartmentFigure;
+ }
+
+ }
+
+}
diff --git a/org.eclipse.emf.refactor.comrel.diagram/src/comrel/diagram/edit/parts/SingleQueuedUnit5EditPart.java b/org.eclipse.emf.refactor.comrel.diagram/src/comrel/diagram/edit/parts/SingleQueuedUnit5EditPart.java
new file mode 100644
index 0000000..97f7c8f
--- /dev/null
+++ b/org.eclipse.emf.refactor.comrel.diagram/src/comrel/diagram/edit/parts/SingleQueuedUnit5EditPart.java
@@ -0,0 +1,437 @@
+/*
+ *
+ */
+package comrel.diagram.edit.parts;
+
+import org.eclipse.draw2d.IFigure;
+import org.eclipse.draw2d.MarginBorder;
+import org.eclipse.draw2d.PositionConstants;
+import org.eclipse.draw2d.RectangleFigure;
+import org.eclipse.draw2d.RoundedRectangle;
+import org.eclipse.draw2d.Shape;
+import org.eclipse.draw2d.StackLayout;
+import org.eclipse.draw2d.geometry.Dimension;
+import org.eclipse.gef.EditPart;
+import org.eclipse.gef.EditPolicy;
+import org.eclipse.gef.Request;
+import org.eclipse.gef.commands.Command;
+import org.eclipse.gef.editpolicies.LayoutEditPolicy;
+import org.eclipse.gef.editpolicies.NonResizableEditPolicy;
+import org.eclipse.gef.requests.CreateRequest;
+import org.eclipse.gmf.runtime.diagram.ui.editparts.AbstractBorderedShapeEditPart;
+import org.eclipse.gmf.runtime.diagram.ui.editparts.IBorderItemEditPart;
+import org.eclipse.gmf.runtime.diagram.ui.editparts.IGraphicalEditPart;
+import org.eclipse.gmf.runtime.diagram.ui.editpolicies.BorderItemSelectionEditPolicy;
+import org.eclipse.gmf.runtime.diagram.ui.editpolicies.CreationEditPolicy;
+import org.eclipse.gmf.runtime.diagram.ui.editpolicies.DragDropEditPolicy;
+import org.eclipse.gmf.runtime.diagram.ui.editpolicies.EditPolicyRoles;
+import org.eclipse.gmf.runtime.diagram.ui.figures.BorderItemLocator;
+import org.eclipse.gmf.runtime.draw2d.ui.figures.ConstrainedToolbarLayout;
+import org.eclipse.gmf.runtime.draw2d.ui.figures.WrappingLabel;
+import org.eclipse.gmf.runtime.gef.ui.figures.DefaultSizeNodeFigure;
+import org.eclipse.gmf.runtime.gef.ui.figures.NodeFigure;
+import org.eclipse.gmf.runtime.notation.View;
+import org.eclipse.swt.graphics.Color;
+
+import comrel.diagram.edit.parts.SingleQueuedUnit7EditPart.SingleQueuedUnitFigure;
+import comrel.diagram.edit.parts.custom.Labels;
+import comrel.diagram.edit.policies.OpenDiagramEditPolicy;
+import comrel.diagram.edit.policies.SingleQueuedUnit5CanonicalEditPolicy;
+import comrel.diagram.edit.policies.SingleQueuedUnit5ItemSemanticEditPolicy;
+import comrel.diagram.part.ComrelVisualIDRegistry;
+
+/**
+ * @generated
+ */
+public class SingleQueuedUnit5EditPart extends AbstractBorderedShapeEditPart {
+
+ /**
+ * @generated
+ */
+ public static final int VISUAL_ID = 3059;
+
+ /**
+ * @generated
+ */
+ protected IFigure contentPane;
+
+ /**
+ * @generated
+ */
+ protected IFigure primaryShape;
+
+ /**
+ * @generated
+ */
+ public SingleQueuedUnit5EditPart(View view) {
+ super(view);
+ }
+
+ /**
+ * @generated
+ */
+ protected void createDefaultEditPolicies() {
+ installEditPolicy(EditPolicyRoles.CREATION_ROLE,
+ new CreationEditPolicy());
+ super.createDefaultEditPolicies();
+ installEditPolicy(EditPolicyRoles.SEMANTIC_ROLE,
+ new SingleQueuedUnit5ItemSemanticEditPolicy());
+ installEditPolicy(EditPolicyRoles.DRAG_DROP_ROLE,
+ new DragDropEditPolicy());
+ installEditPolicy(EditPolicyRoles.CANONICAL_ROLE,
+ new SingleQueuedUnit5CanonicalEditPolicy());
+ installEditPolicy(EditPolicy.LAYOUT_ROLE, createLayoutEditPolicy());
+ installEditPolicy(EditPolicyRoles.OPEN_ROLE,
+ new OpenDiagramEditPolicy());
+ // XXX need an SCR to runtime to have another abstract superclass that would let children add reasonable editpolicies
+ // removeEditPolicy(org.eclipse.gmf.runtime.diagram.ui.editpolicies.EditPolicyRoles.CONNECTION_HANDLES_ROLE);
+ }
+
+ /**
+ * @generated
+ */
+ protected LayoutEditPolicy createLayoutEditPolicy() {
+ org.eclipse.gmf.runtime.diagram.ui.editpolicies.LayoutEditPolicy lep = new org.eclipse.gmf.runtime.diagram.ui.editpolicies.LayoutEditPolicy() {
+
+ protected EditPolicy createChildEditPolicy(EditPart child) {
+ View childView = (View) child.getModel();
+ switch (ComrelVisualIDRegistry.getVisualID(childView)) {
+ case SingleInputPort6EditPart.VISUAL_ID:
+ case MultiInputPort7EditPart.VISUAL_ID:
+ return new BorderItemSelectionEditPolicy();
+ }
+ EditPolicy result = child
+ .getEditPolicy(EditPolicy.PRIMARY_DRAG_ROLE);
+ if (result == null) {
+ result = new NonResizableEditPolicy();
+ }
+ return result;
+ }
+
+ protected Command getMoveChildrenCommand(Request request) {
+ return null;
+ }
+
+ protected Command getCreateCommand(CreateRequest request) {
+ return null;
+ }
+ };
+ return lep;
+ }
+
+ /**
+ * @generated NOT
+ */
+ protected IFigure createNodeShape() {
+ SingleQueuedUnitFigure figure = new SingleQueuedUnitFigure();
+ RectangleFigure compHelper = (RectangleFigure) figure.getChildren()
+ .get(1);
+ RectangleFigure compRef = (RectangleFigure) figure.getChildren().get(2);
+ Labels.setLabels(compHelper, compRef, true);
+ // RefactoringUnit unit = (RefactoringUnit) this.resolveSemanticElement();
+ // unit.setFigure(figure);
+ return primaryShape = figure;
+ }
+
+ /**
+ * @generated
+ */
+ public SingleQueuedUnitFigure getPrimaryShape() {
+ return (SingleQueuedUnitFigure) primaryShape;
+ }
+
+ /**
+ * @generated NOT
+ */
+ protected boolean addFixedChild(EditPart childEditPart) {
+ if (childEditPart instanceof SingleQueuedUnitNameTypeLblStrict5EditPart) {
+ ((SingleQueuedUnitNameTypeLblStrict5EditPart) childEditPart)
+ .setLabel(getPrimaryShape()
+ .getFigureSingleQueuedUnitLabelFigure());
+ return true;
+ }
+ if (childEditPart instanceof SingleQueuedUnitSingleQueuedUnitHelperUnitsCompartment4EditPart) {
+ IFigure pane = getPrimaryShape()
+ .getSingleQueuedUnitHelperUnitsCompartmentFigure();
+ setupContentPane(pane); // FIXME each comparment should handle his content pane in his own way
+ pane.add(((SingleQueuedUnitSingleQueuedUnitHelperUnitsCompartment4EditPart) childEditPart)
+ .getFigure());
+ return true;
+ }
+ if (childEditPart instanceof SingleQueuedUnitSingleQueuedUnitRefactoringUnitCompartment4EditPart) {
+ IFigure pane = getPrimaryShape()
+ .getSingleQueuedUnitRefactoringUnitCompartmentFigure();
+ setupContentPane(pane); // FIXME each comparment should handle his content pane in his own way
+ pane.add(((SingleQueuedUnitSingleQueuedUnitRefactoringUnitCompartment4EditPart) childEditPart)
+ .getFigure());
+ return true;
+ }
+ if (childEditPart instanceof SingleInputPort6EditPart) {
+ BorderItemLocator locator = new BorderItemLocator(getMainFigure(),
+ PositionConstants.NORTH);
+ locator.setCurrentSideOfParent(PositionConstants.NORTH); // Position des Ports
+ locator.setPreferredSideOfParent(PositionConstants.NORTH); // Position des Ports
+ getBorderedFigure().getBorderItemContainer().add(
+ ((SingleInputPort6EditPart) childEditPart).getFigure(),
+ locator);
+ return true;
+ }
+ if (childEditPart instanceof MultiInputPort7EditPart) {
+ BorderItemLocator locator = new BorderItemLocator(getMainFigure(),
+ PositionConstants.NORTH);
+ locator.setCurrentSideOfParent(PositionConstants.NORTH); // Position des Ports
+ locator.setPreferredSideOfParent(PositionConstants.NORTH); // Position des Ports
+ getBorderedFigure().getBorderItemContainer().add(
+ ((MultiInputPort7EditPart) childEditPart).getFigure(),
+ locator);
+ return true;
+ }
+ return false;
+ }
+
+ /**
+ * @generated NOT
+ */
+ protected boolean removeFixedChild(EditPart childEditPart) {
+ if (childEditPart instanceof SingleQueuedUnitNameTypeLblStrict5EditPart) {
+ return true;
+ }
+ if (childEditPart instanceof SingleQueuedUnitSingleQueuedUnitHelperUnitsCompartment4EditPart) {
+ IFigure pane = getPrimaryShape()
+ .getSingleQueuedUnitHelperUnitsCompartmentFigure();
+ setupContentPane(pane); // FIXME each comparment should handle his content pane in his own way
+ pane.remove(((SingleQueuedUnitSingleQueuedUnitHelperUnitsCompartment4EditPart) childEditPart)
+ .getFigure());
+ return true;
+ }
+ if (childEditPart instanceof SingleQueuedUnitSingleQueuedUnitRefactoringUnitCompartment4EditPart) {
+ IFigure pane = getPrimaryShape()
+ .getSingleQueuedUnitRefactoringUnitCompartmentFigure();
+ setupContentPane(pane); // FIXME each comparment should handle his content pane in his own way
+ pane.remove(((SingleQueuedUnitSingleQueuedUnitRefactoringUnitCompartment4EditPart) childEditPart)
+ .getFigure());
+ return true;
+ }
+ if (childEditPart instanceof SingleInputPort6EditPart) {
+ getBorderedFigure().getBorderItemContainer().remove(
+ ((SingleInputPort6EditPart) childEditPart).getFigure());
+ return true;
+ }
+ if (childEditPart instanceof MultiInputPort7EditPart) {
+ // getBorderedFigure().getBorderItemContainer().remove(
+ // ((MultiInputPort7EditPart) childEditPart).getFigure());
+ return true;
+ }
+ return false;
+ }
+
+ /**
+ * @generated
+ */
+ protected void addChildVisual(EditPart childEditPart, int index) {
+ if (addFixedChild(childEditPart)) {
+ return;
+ }
+ super.addChildVisual(childEditPart, -1);
+ }
+
+ /**
+ * @generated
+ */
+ protected void removeChildVisual(EditPart childEditPart) {
+ if (removeFixedChild(childEditPart)) {
+ return;
+ }
+ super.removeChildVisual(childEditPart);
+ }
+
+ /**
+ * @generated
+ */
+ protected IFigure getContentPaneFor(IGraphicalEditPart editPart) {
+ if (editPart instanceof SingleQueuedUnitSingleQueuedUnitHelperUnitsCompartment4EditPart) {
+ return getPrimaryShape()
+ .getSingleQueuedUnitHelperUnitsCompartmentFigure();
+ }
+ if (editPart instanceof SingleQueuedUnitSingleQueuedUnitRefactoringUnitCompartment4EditPart) {
+ return getPrimaryShape()
+ .getSingleQueuedUnitRefactoringUnitCompartmentFigure();
+ }
+ if (editPart instanceof IBorderItemEditPart) {
+ return getBorderedFigure().getBorderItemContainer();
+ }
+ return getContentPane();
+ }
+
+ /**
+ * @generated
+ */
+ protected NodeFigure createNodePlate() {
+ DefaultSizeNodeFigure result = new DefaultSizeNodeFigure(40, 40);
+ return result;
+ }
+
+ /**
+ * Creates figure for this edit part.
+ *
+ * Body of this method does not depend on settings in generation model
+ * so you may safely remove <i>generated</i> tag and modify it.
+ *
+ * @generated
+ */
+ protected NodeFigure createMainFigure() {
+ NodeFigure figure = createNodePlate();
+ figure.setLayoutManager(new StackLayout());
+ IFigure shape = createNodeShape();
+ figure.add(shape);
+ contentPane = setupContentPane(shape);
+ return figure;
+ }
+
+ /**
+ * Default implementation treats passed figure as content pane.
+ * Respects layout one may have set for generated figure.
+ * @param nodeShape instance of generated figure class
+ * @generated
+ */
+ protected IFigure setupContentPane(IFigure nodeShape) {
+ if (nodeShape.getLayoutManager() == null) {
+ ConstrainedToolbarLayout layout = new ConstrainedToolbarLayout();
+ layout.setSpacing(5);
+ nodeShape.setLayoutManager(layout);
+ }
+ return nodeShape; // use nodeShape itself as contentPane
+ }
+
+ /**
+ * @generated
+ */
+ public IFigure getContentPane() {
+ if (contentPane != null) {
+ return contentPane;
+ }
+ return super.getContentPane();
+ }
+
+ /**
+ * @generated
+ */
+ protected void setForegroundColor(Color color) {
+ if (primaryShape != null) {
+ primaryShape.setForegroundColor(color);
+ }
+ }
+
+ /**
+ * @generated
+ */
+ protected void setBackgroundColor(Color color) {
+ if (primaryShape != null) {
+ primaryShape.setBackgroundColor(color);
+ }
+ }
+
+ /**
+ * @generated
+ */
+ protected void setLineWidth(int width) {
+ if (primaryShape instanceof Shape) {
+ ((Shape) primaryShape).setLineWidth(width);
+ }
+ }
+
+ /**
+ * @generated
+ */
+ protected void setLineType(int style) {
+ if (primaryShape instanceof Shape) {
+ ((Shape) primaryShape).setLineStyle(style);
+ }
+ }
+
+ /**
+ * @generated
+ */
+ public EditPart getPrimaryChildEditPart() {
+ return getChildBySemanticHint(ComrelVisualIDRegistry
+ .getType(SingleQueuedUnitNameTypeLblStrict5EditPart.VISUAL_ID));
+ }
+
+ /**
+ * @generated
+ */
+ public class SingleQueuedUnitFigure extends RoundedRectangle {
+
+ /**
+ * @generated
+ */
+ private WrappingLabel fFigureSingleQueuedUnitLabelFigure;
+ /**
+ * @generated
+ */
+ private RectangleFigure fSingleQueuedUnitHelperUnitsCompartmentFigure;
+ /**
+ * @generated
+ */
+ private RectangleFigure fSingleQueuedUnitRefactoringUnitCompartmentFigure;
+
+ /**
+ * @generated
+ */
+ public SingleQueuedUnitFigure() {
+ this.setCornerDimensions(new Dimension(getMapMode().DPtoLP(8),
+ getMapMode().DPtoLP(8)));
+ this.setBorder(new MarginBorder(getMapMode().DPtoLP(5),
+ getMapMode().DPtoLP(5), getMapMode().DPtoLP(5),
+ getMapMode().DPtoLP(5)));
+ createContents();
+ }
+
+ /**
+ * @generated
+ */
+ private void createContents() {
+
+ fFigureSingleQueuedUnitLabelFigure = new WrappingLabel();
+ fFigureSingleQueuedUnitLabelFigure.setText("SingleQueuedUnit");
+ fFigureSingleQueuedUnitLabelFigure.setMaximumSize(new Dimension(
+ getMapMode().DPtoLP(10000), getMapMode().DPtoLP(50)));
+
+ this.add(fFigureSingleQueuedUnitLabelFigure);
+
+ fSingleQueuedUnitHelperUnitsCompartmentFigure = new RectangleFigure();
+ fSingleQueuedUnitHelperUnitsCompartmentFigure.setOutline(false);
+
+ this.add(fSingleQueuedUnitHelperUnitsCompartmentFigure);
+
+ fSingleQueuedUnitRefactoringUnitCompartmentFigure = new RectangleFigure();
+ fSingleQueuedUnitRefactoringUnitCompartmentFigure.setOutline(false);
+
+ this.add(fSingleQueuedUnitRefactoringUnitCompartmentFigure);
+
+ }
+
+ /**
+ * @generated
+ */
+ public WrappingLabel getFigureSingleQueuedUnitLabelFigure() {
+ return fFigureSingleQueuedUnitLabelFigure;
+ }
+
+ /**
+ * @generated
+ */
+ public RectangleFigure getSingleQueuedUnitHelperUnitsCompartmentFigure() {
+ return fSingleQueuedUnitHelperUnitsCompartmentFigure;
+ }
+
+ /**
+ * @generated
+ */
+ public RectangleFigure getSingleQueuedUnitRefactoringUnitCompartmentFigure() {
+ return fSingleQueuedUnitRefactoringUnitCompartmentFigure;
+ }
+
+ }
+
+}
diff --git a/org.eclipse.emf.refactor.comrel.diagram/src/comrel/diagram/edit/parts/SingleQueuedUnit6EditPart.java b/org.eclipse.emf.refactor.comrel.diagram/src/comrel/diagram/edit/parts/SingleQueuedUnit6EditPart.java
new file mode 100644
index 0000000..83b7266
--- /dev/null
+++ b/org.eclipse.emf.refactor.comrel.diagram/src/comrel/diagram/edit/parts/SingleQueuedUnit6EditPart.java
@@ -0,0 +1,437 @@
+/*
+ *
+ */
+package comrel.diagram.edit.parts;
+
+import org.eclipse.draw2d.IFigure;
+import org.eclipse.draw2d.MarginBorder;
+import org.eclipse.draw2d.PositionConstants;
+import org.eclipse.draw2d.RectangleFigure;
+import org.eclipse.draw2d.RoundedRectangle;
+import org.eclipse.draw2d.Shape;
+import org.eclipse.draw2d.StackLayout;
+import org.eclipse.draw2d.geometry.Dimension;
+import org.eclipse.gef.EditPart;
+import org.eclipse.gef.EditPolicy;
+import org.eclipse.gef.Request;
+import org.eclipse.gef.commands.Command;
+import org.eclipse.gef.editpolicies.LayoutEditPolicy;
+import org.eclipse.gef.editpolicies.NonResizableEditPolicy;
+import org.eclipse.gef.requests.CreateRequest;
+import org.eclipse.gmf.runtime.diagram.ui.editparts.AbstractBorderedShapeEditPart;
+import org.eclipse.gmf.runtime.diagram.ui.editparts.IBorderItemEditPart;
+import org.eclipse.gmf.runtime.diagram.ui.editparts.IGraphicalEditPart;
+import org.eclipse.gmf.runtime.diagram.ui.editpolicies.BorderItemSelectionEditPolicy;
+import org.eclipse.gmf.runtime.diagram.ui.editpolicies.CreationEditPolicy;
+import org.eclipse.gmf.runtime.diagram.ui.editpolicies.DragDropEditPolicy;
+import org.eclipse.gmf.runtime.diagram.ui.editpolicies.EditPolicyRoles;
+import org.eclipse.gmf.runtime.diagram.ui.figures.BorderItemLocator;
+import org.eclipse.gmf.runtime.draw2d.ui.figures.ConstrainedToolbarLayout;
+import org.eclipse.gmf.runtime.draw2d.ui.figures.WrappingLabel;
+import org.eclipse.gmf.runtime.gef.ui.figures.DefaultSizeNodeFigure;
+import org.eclipse.gmf.runtime.gef.ui.figures.NodeFigure;
+import org.eclipse.gmf.runtime.notation.View;
+import org.eclipse.swt.graphics.Color;
+
+import comrel.diagram.edit.parts.SingleQueuedUnit7EditPart.SingleQueuedUnitFigure;
+import comrel.diagram.edit.parts.custom.Labels;
+import comrel.diagram.edit.policies.OpenDiagramEditPolicy;
+import comrel.diagram.edit.policies.SingleQueuedUnit6CanonicalEditPolicy;
+import comrel.diagram.edit.policies.SingleQueuedUnit6ItemSemanticEditPolicy;
+import comrel.diagram.part.ComrelVisualIDRegistry;
+
+/**
+ * @generated
+ */
+public class SingleQueuedUnit6EditPart extends AbstractBorderedShapeEditPart {
+
+ /**
+ * @generated
+ */
+ public static final int VISUAL_ID = 3065;
+
+ /**
+ * @generated
+ */
+ protected IFigure contentPane;
+
+ /**
+ * @generated
+ */
+ protected IFigure primaryShape;
+
+ /**
+ * @generated
+ */
+ public SingleQueuedUnit6EditPart(View view) {
+ super(view);
+ }
+
+ /**
+ * @generated
+ */
+ protected void createDefaultEditPolicies() {
+ installEditPolicy(EditPolicyRoles.CREATION_ROLE,
+ new CreationEditPolicy());
+ super.createDefaultEditPolicies();
+ installEditPolicy(EditPolicyRoles.SEMANTIC_ROLE,
+ new SingleQueuedUnit6ItemSemanticEditPolicy());
+ installEditPolicy(EditPolicyRoles.DRAG_DROP_ROLE,
+ new DragDropEditPolicy());
+ installEditPolicy(EditPolicyRoles.CANONICAL_ROLE,
+ new SingleQueuedUnit6CanonicalEditPolicy());
+ installEditPolicy(EditPolicy.LAYOUT_ROLE, createLayoutEditPolicy());
+ installEditPolicy(EditPolicyRoles.OPEN_ROLE,
+ new OpenDiagramEditPolicy());
+ // XXX need an SCR to runtime to have another abstract superclass that would let children add reasonable editpolicies
+ // removeEditPolicy(org.eclipse.gmf.runtime.diagram.ui.editpolicies.EditPolicyRoles.CONNECTION_HANDLES_ROLE);
+ }
+
+ /**
+ * @generated
+ */
+ protected LayoutEditPolicy createLayoutEditPolicy() {
+ org.eclipse.gmf.runtime.diagram.ui.editpolicies.LayoutEditPolicy lep = new org.eclipse.gmf.runtime.diagram.ui.editpolicies.LayoutEditPolicy() {
+
+ protected EditPolicy createChildEditPolicy(EditPart child) {
+ View childView = (View) child.getModel();
+ switch (ComrelVisualIDRegistry.getVisualID(childView)) {
+ case SingleInputPort6EditPart.VISUAL_ID:
+ case MultiInputPort7EditPart.VISUAL_ID:
+ return new BorderItemSelectionEditPolicy();
+ }
+ EditPolicy result = child
+ .getEditPolicy(EditPolicy.PRIMARY_DRAG_ROLE);
+ if (result == null) {
+ result = new NonResizableEditPolicy();
+ }
+ return result;
+ }
+
+ protected Command getMoveChildrenCommand(Request request) {
+ return null;
+ }
+
+ protected Command getCreateCommand(CreateRequest request) {
+ return null;
+ }
+ };
+ return lep;
+ }
+
+ /**
+ * @generated NOT
+ */
+ protected IFigure createNodeShape() {
+ SingleQueuedUnitFigure figure = new SingleQueuedUnitFigure();
+ RectangleFigure compHelper = (RectangleFigure) figure.getChildren()
+ .get(1);
+ RectangleFigure compRef = (RectangleFigure) figure.getChildren().get(2);
+ Labels.setLabels(compHelper, compRef, true);
+ // RefactoringUnit unit = (RefactoringUnit) this.resolveSemanticElement();
+ // unit.setFigure(figure);
+ return primaryShape = figure;
+ }
+
+ /**
+ * @generated
+ */
+ public SingleQueuedUnitFigure getPrimaryShape() {
+ return (SingleQueuedUnitFigure) primaryShape;
+ }
+
+ /**
+ * @generated NOT
+ */
+ protected boolean addFixedChild(EditPart childEditPart) {
+ if (childEditPart instanceof SingleQueuedUnitNameTypeLblStrict6EditPart) {
+ ((SingleQueuedUnitNameTypeLblStrict6EditPart) childEditPart)
+ .setLabel(getPrimaryShape()
+ .getFigureSingleQueuedUnitLabelFigure());
+ return true;
+ }
+ if (childEditPart instanceof SingleQueuedUnitSingleQueuedUnitHelperUnitsCompartment5EditPart) {
+ IFigure pane = getPrimaryShape()
+ .getSingleQueuedUnitHelperUnitsCompartmentFigure();
+ setupContentPane(pane); // FIXME each comparment should handle his content pane in his own way
+ pane.add(((SingleQueuedUnitSingleQueuedUnitHelperUnitsCompartment5EditPart) childEditPart)
+ .getFigure());
+ return true;
+ }
+ if (childEditPart instanceof SingleQueuedUnitSingleQueuedUnitRefactoringUnitCompartment5EditPart) {
+ IFigure pane = getPrimaryShape()
+ .getSingleQueuedUnitRefactoringUnitCompartmentFigure();
+ setupContentPane(pane); // FIXME each comparment should handle his content pane in his own way
+ pane.add(((SingleQueuedUnitSingleQueuedUnitRefactoringUnitCompartment5EditPart) childEditPart)
+ .getFigure());
+ return true;
+ }
+ if (childEditPart instanceof SingleInputPort6EditPart) {
+ BorderItemLocator locator = new BorderItemLocator(getMainFigure(),
+ PositionConstants.NORTH);
+ locator.setCurrentSideOfParent(PositionConstants.NORTH); // Position des Ports
+ locator.setPreferredSideOfParent(PositionConstants.NORTH); // Position des Ports
+ getBorderedFigure().getBorderItemContainer().add(
+ ((SingleInputPort6EditPart) childEditPart).getFigure(),
+ locator);
+ return true;
+ }
+ if (childEditPart instanceof MultiInputPort7EditPart) {
+ BorderItemLocator locator = new BorderItemLocator(getMainFigure(),
+ PositionConstants.NORTH);
+ locator.setCurrentSideOfParent(PositionConstants.NORTH); // Position des Ports
+ locator.setPreferredSideOfParent(PositionConstants.NORTH); // Position des Ports
+ getBorderedFigure().getBorderItemContainer().add(
+ ((MultiInputPort7EditPart) childEditPart).getFigure(),
+ locator);
+ return true;
+ }
+ return false;
+ }
+
+ /**
+ * @generated NOT
+ */
+ protected boolean removeFixedChild(EditPart childEditPart) {
+ if (childEditPart instanceof SingleQueuedUnitNameTypeLblStrict6EditPart) {
+ return true;
+ }
+ if (childEditPart instanceof SingleQueuedUnitSingleQueuedUnitHelperUnitsCompartment5EditPart) {
+ IFigure pane = getPrimaryShape()
+ .getSingleQueuedUnitHelperUnitsCompartmentFigure();
+ setupContentPane(pane); // FIXME each comparment should handle his content pane in his own way
+ pane.remove(((SingleQueuedUnitSingleQueuedUnitHelperUnitsCompartment5EditPart) childEditPart)
+ .getFigure());
+ return true;
+ }
+ if (childEditPart instanceof SingleQueuedUnitSingleQueuedUnitRefactoringUnitCompartment5EditPart) {
+ IFigure pane = getPrimaryShape()
+ .getSingleQueuedUnitRefactoringUnitCompartmentFigure();
+ setupContentPane(pane); // FIXME each comparment should handle his content pane in his own way
+ pane.remove(((SingleQueuedUnitSingleQueuedUnitRefactoringUnitCompartment5EditPart) childEditPart)
+ .getFigure());
+ return true;
+ }
+ if (childEditPart instanceof SingleInputPort6EditPart) {
+ getBorderedFigure().getBorderItemContainer().remove(
+ ((SingleInputPort6EditPart) childEditPart).getFigure());
+ return true;
+ }
+ if (childEditPart instanceof MultiInputPort7EditPart) {
+ // getBorderedFigure().getBorderItemContainer().remove(
+ // ((MultiInputPort7EditPart) childEditPart).getFigure());
+ return true;
+ }
+ return false;
+ }
+
+ /**
+ * @generated
+ */
+ protected void addChildVisual(EditPart childEditPart, int index) {
+ if (addFixedChild(childEditPart)) {
+ return;
+ }
+ super.addChildVisual(childEditPart, -1);
+ }
+
+ /**
+ * @generated
+ */
+ protected void removeChildVisual(EditPart childEditPart) {
+ if (removeFixedChild(childEditPart)) {
+ return;
+ }
+ super.removeChildVisual(childEditPart);
+ }
+
+ /**
+ * @generated
+ */
+ protected IFigure getContentPaneFor(IGraphicalEditPart editPart) {
+ if (editPart instanceof SingleQueuedUnitSingleQueuedUnitHelperUnitsCompartment5EditPart) {
+ return getPrimaryShape()
+ .getSingleQueuedUnitHelperUnitsCompartmentFigure();
+ }
+ if (editPart instanceof SingleQueuedUnitSingleQueuedUnitRefactoringUnitCompartment5EditPart) {
+ return getPrimaryShape()
+ .getSingleQueuedUnitRefactoringUnitCompartmentFigure();
+ }
+ if (editPart instanceof IBorderItemEditPart) {
+ return getBorderedFigure().getBorderItemContainer();
+ }
+ return getContentPane();
+ }
+
+ /**
+ * @generated
+ */
+ protected NodeFigure createNodePlate() {
+ DefaultSizeNodeFigure result = new DefaultSizeNodeFigure(40, 40);
+ return result;
+ }
+
+ /**
+ * Creates figure for this edit part.
+ *
+ * Body of this method does not depend on settings in generation model
+ * so you may safely remove <i>generated</i> tag and modify it.
+ *
+ * @generated
+ */
+ protected NodeFigure createMainFigure() {
+ NodeFigure figure = createNodePlate();
+ figure.setLayoutManager(new StackLayout());
+ IFigure shape = createNodeShape();
+ figure.add(shape);
+ contentPane = setupContentPane(shape);
+ return figure;
+ }
+
+ /**
+ * Default implementation treats passed figure as content pane.
+ * Respects layout one may have set for generated figure.
+ * @param nodeShape instance of generated figure class
+ * @generated
+ */
+ protected IFigure setupContentPane(IFigure nodeShape) {
+ if (nodeShape.getLayoutManager() == null) {
+ ConstrainedToolbarLayout layout = new ConstrainedToolbarLayout();
+ layout.setSpacing(5);
+ nodeShape.setLayoutManager(layout);
+ }
+ return nodeShape; // use nodeShape itself as contentPane
+ }
+
+ /**
+ * @generated
+ */
+ public IFigure getContentPane() {
+ if (contentPane != null) {
+ return contentPane;
+ }
+ return super.getContentPane();
+ }
+
+ /**
+ * @generated
+ */
+ protected void setForegroundColor(Color color) {
+ if (primaryShape != null) {
+ primaryShape.setForegroundColor(color);
+ }
+ }
+
+ /**
+ * @generated
+ */
+ protected void setBackgroundColor(Color color) {
+ if (primaryShape != null) {
+ primaryShape.setBackgroundColor(color);
+ }
+ }
+
+ /**
+ * @generated
+ */
+ protected void setLineWidth(int width) {
+ if (primaryShape instanceof Shape) {
+ ((Shape) primaryShape).setLineWidth(width);
+ }
+ }
+
+ /**
+ * @generated
+ */
+ protected void setLineType(int style) {
+ if (primaryShape instanceof Shape) {
+ ((Shape) primaryShape).setLineStyle(style);
+ }
+ }
+
+ /**
+ * @generated
+ */
+ public EditPart getPrimaryChildEditPart() {
+ return getChildBySemanticHint(ComrelVisualIDRegistry
+ .getType(SingleQueuedUnitNameTypeLblStrict6EditPart.VISUAL_ID));
+ }
+
+ /**
+ * @generated
+ */
+ public class SingleQueuedUnitFigure extends RoundedRectangle {
+
+ /**
+ * @generated
+ */
+ private WrappingLabel fFigureSingleQueuedUnitLabelFigure;
+ /**
+ * @generated
+ */
+ private RectangleFigure fSingleQueuedUnitHelperUnitsCompartmentFigure;
+ /**
+ * @generated
+ */
+ private RectangleFigure fSingleQueuedUnitRefactoringUnitCompartmentFigure;
+
+ /**
+ * @generated
+ */
+ public SingleQueuedUnitFigure() {
+ this.setCornerDimensions(new Dimension(getMapMode().DPtoLP(8),
+ getMapMode().DPtoLP(8)));
+ this.setBorder(new MarginBorder(getMapMode().DPtoLP(5),
+ getMapMode().DPtoLP(5), getMapMode().DPtoLP(5),
+ getMapMode().DPtoLP(5)));
+ createContents();
+ }
+
+ /**
+ * @generated
+ */
+ private void createContents() {
+
+ fFigureSingleQueuedUnitLabelFigure = new WrappingLabel();
+ fFigureSingleQueuedUnitLabelFigure.setText("SingleQueuedUnit");
+ fFigureSingleQueuedUnitLabelFigure.setMaximumSize(new Dimension(
+ getMapMode().DPtoLP(10000), getMapMode().DPtoLP(50)));
+
+ this.add(fFigureSingleQueuedUnitLabelFigure);
+
+ fSingleQueuedUnitHelperUnitsCompartmentFigure = new RectangleFigure();
+ fSingleQueuedUnitHelperUnitsCompartmentFigure.setOutline(false);
+
+ this.add(fSingleQueuedUnitHelperUnitsCompartmentFigure);
+
+ fSingleQueuedUnitRefactoringUnitCompartmentFigure = new RectangleFigure();
+ fSingleQueuedUnitRefactoringUnitCompartmentFigure.setOutline(false);
+
+ this.add(fSingleQueuedUnitRefactoringUnitCompartmentFigure);
+
+ }
+
+ /**
+ * @generated
+ */
+ public WrappingLabel getFigureSingleQueuedUnitLabelFigure() {
+ return fFigureSingleQueuedUnitLabelFigure;
+ }
+
+ /**
+ * @generated
+ */
+ public RectangleFigure getSingleQueuedUnitHelperUnitsCompartmentFigure() {
+ return fSingleQueuedUnitHelperUnitsCompartmentFigure;
+ }
+
+ /**
+ * @generated
+ */
+ public RectangleFigure getSingleQueuedUnitRefactoringUnitCompartmentFigure() {
+ return fSingleQueuedUnitRefactoringUnitCompartmentFigure;
+ }
+
+ }
+
+}
diff --git a/org.eclipse.emf.refactor.comrel.diagram/src/comrel/diagram/edit/parts/SingleQueuedUnit7EditPart.java b/org.eclipse.emf.refactor.comrel.diagram/src/comrel/diagram/edit/parts/SingleQueuedUnit7EditPart.java
new file mode 100644
index 0000000..9684e87
--- /dev/null
+++ b/org.eclipse.emf.refactor.comrel.diagram/src/comrel/diagram/edit/parts/SingleQueuedUnit7EditPart.java
@@ -0,0 +1,437 @@
+/*
+ *
+ */
+package comrel.diagram.edit.parts;
+
+import org.eclipse.draw2d.IFigure;
+import org.eclipse.draw2d.MarginBorder;
+import org.eclipse.draw2d.PositionConstants;
+import org.eclipse.draw2d.RectangleFigure;
+import org.eclipse.draw2d.RoundedRectangle;
+import org.eclipse.draw2d.Shape;
+import org.eclipse.draw2d.StackLayout;
+import org.eclipse.draw2d.geometry.Dimension;
+import org.eclipse.gef.EditPart;
+import org.eclipse.gef.EditPolicy;
+import org.eclipse.gef.Request;
+import org.eclipse.gef.commands.Command;
+import org.eclipse.gef.editpolicies.LayoutEditPolicy;
+import org.eclipse.gef.editpolicies.NonResizableEditPolicy;
+import org.eclipse.gef.requests.CreateRequest;
+import org.eclipse.gmf.runtime.diagram.ui.editparts.AbstractBorderedShapeEditPart;
+import org.eclipse.gmf.runtime.diagram.ui.editparts.IBorderItemEditPart;
+import org.eclipse.gmf.runtime.diagram.ui.editparts.IGraphicalEditPart;
+import org.eclipse.gmf.runtime.diagram.ui.editpolicies.BorderItemSelectionEditPolicy;
+import org.eclipse.gmf.runtime.diagram.ui.editpolicies.CreationEditPolicy;
+import org.eclipse.gmf.runtime.diagram.ui.editpolicies.DragDropEditPolicy;
+import org.eclipse.gmf.runtime.diagram.ui.editpolicies.EditPolicyRoles;
+import org.eclipse.gmf.runtime.diagram.ui.figures.BorderItemLocator;
+import org.eclipse.gmf.runtime.draw2d.ui.figures.ConstrainedToolbarLayout;
+import org.eclipse.gmf.runtime.draw2d.ui.figures.WrappingLabel;
+import org.eclipse.gmf.runtime.gef.ui.figures.DefaultSizeNodeFigure;
+import org.eclipse.gmf.runtime.gef.ui.figures.NodeFigure;
+import org.eclipse.gmf.runtime.notation.View;
+import org.eclipse.swt.graphics.Color;
+
+import comrel.RefactoringUnit;
+import comrel.diagram.edit.parts.custom.Labels;
+import comrel.diagram.edit.policies.OpenDiagramEditPolicy;
+import comrel.diagram.edit.policies.SingleQueuedUnit7CanonicalEditPolicy;
+import comrel.diagram.edit.policies.SingleQueuedUnit7ItemSemanticEditPolicy;
+import comrel.diagram.part.ComrelVisualIDRegistry;
+
+/**
+ * @generated
+ */
+public class SingleQueuedUnit7EditPart extends AbstractBorderedShapeEditPart {
+
+ /**
+ * @generated
+ */
+ public static final int VISUAL_ID = 3067;
+
+ /**
+ * @generated
+ */
+ protected IFigure contentPane;
+
+ /**
+ * @generated
+ */
+ protected IFigure primaryShape;
+
+ /**
+ * @generated
+ */
+ public SingleQueuedUnit7EditPart(View view) {
+ super(view);
+ }
+
+ /**
+ * @generated
+ */
+ protected void createDefaultEditPolicies() {
+ installEditPolicy(EditPolicyRoles.CREATION_ROLE,
+ new CreationEditPolicy());
+ super.createDefaultEditPolicies();
+ installEditPolicy(EditPolicyRoles.SEMANTIC_ROLE,
+ new SingleQueuedUnit7ItemSemanticEditPolicy());
+ installEditPolicy(EditPolicyRoles.DRAG_DROP_ROLE,
+ new DragDropEditPolicy());
+ installEditPolicy(EditPolicyRoles.CANONICAL_ROLE,
+ new SingleQueuedUnit7CanonicalEditPolicy());
+ installEditPolicy(EditPolicy.LAYOUT_ROLE, createLayoutEditPolicy());
+ installEditPolicy(EditPolicyRoles.OPEN_ROLE,
+ new OpenDiagramEditPolicy());
+ // XXX need an SCR to runtime to have another abstract superclass that would let children add reasonable editpolicies
+ // removeEditPolicy(org.eclipse.gmf.runtime.diagram.ui.editpolicies.EditPolicyRoles.CONNECTION_HANDLES_ROLE);
+ }
+
+ /**
+ * @generated
+ */
+ protected LayoutEditPolicy createLayoutEditPolicy() {
+ org.eclipse.gmf.runtime.diagram.ui.editpolicies.LayoutEditPolicy lep = new org.eclipse.gmf.runtime.diagram.ui.editpolicies.LayoutEditPolicy() {
+
+ protected EditPolicy createChildEditPolicy(EditPart child) {
+ View childView = (View) child.getModel();
+ switch (ComrelVisualIDRegistry.getVisualID(childView)) {
+ case SingleInputPort6EditPart.VISUAL_ID:
+ case MultiInputPort7EditPart.VISUAL_ID:
+ return new BorderItemSelectionEditPolicy();
+ }
+ EditPolicy result = child
+ .getEditPolicy(EditPolicy.PRIMARY_DRAG_ROLE);
+ if (result == null) {
+ result = new NonResizableEditPolicy();
+ }
+ return result;
+ }
+
+ protected Command getMoveChildrenCommand(Request request) {
+ return null;
+ }
+
+ protected Command getCreateCommand(CreateRequest request) {
+ return null;
+ }
+ };
+ return lep;
+ }
+
+ /**
+ * @generated NOT
+ */
+ protected IFigure createNodeShape() {
+ SingleQueuedUnitFigure figure = new SingleQueuedUnitFigure();
+ RectangleFigure compHelper = (RectangleFigure) figure.getChildren()
+ .get(1);
+ RectangleFigure compRef = (RectangleFigure) figure.getChildren().get(2);
+ Labels.setLabels(compHelper, compRef, true);
+ RefactoringUnit unit = (RefactoringUnit) this.resolveSemanticElement();
+ unit.setFigure(figure);
+ return primaryShape = figure;
+ }
+
+ /**
+ * @generated
+ */
+ public SingleQueuedUnitFigure getPrimaryShape() {
+ return (SingleQueuedUnitFigure) primaryShape;
+ }
+
+ /**
+ * @generated NOT
+ */
+ protected boolean addFixedChild(EditPart childEditPart) {
+ if (childEditPart instanceof SingleQueuedUnitNameTypeLblStrict7EditPart) {
+ ((SingleQueuedUnitNameTypeLblStrict7EditPart) childEditPart)
+ .setLabel(getPrimaryShape()
+ .getFigureSingleQueuedUnitLabelFigure());
+ return true;
+ }
+ if (childEditPart instanceof SingleQueuedUnitSingleQueuedUnitHelperUnitsCompartment6EditPart) {
+ IFigure pane = getPrimaryShape()
+ .getSingleQueuedUnitHelperUnitsCompartmentFigure();
+ setupContentPane(pane); // FIXME each comparment should handle his content pane in his own way
+ pane.add(((SingleQueuedUnitSingleQueuedUnitHelperUnitsCompartment6EditPart) childEditPart)
+ .getFigure());
+ return true;
+ }
+ if (childEditPart instanceof SingleQueuedUnitSingleQueuedUnitRefactoringUnitCompartment6EditPart) {
+ IFigure pane = getPrimaryShape()
+ .getSingleQueuedUnitRefactoringUnitCompartmentFigure();
+ setupContentPane(pane); // FIXME each comparment should handle his content pane in his own way
+ pane.add(((SingleQueuedUnitSingleQueuedUnitRefactoringUnitCompartment6EditPart) childEditPart)
+ .getFigure());
+ return true;
+ }
+ if (childEditPart instanceof SingleInputPort6EditPart) {
+ BorderItemLocator locator = new BorderItemLocator(getMainFigure(),
+ PositionConstants.NORTH);
+ locator.setCurrentSideOfParent(PositionConstants.NORTH); // Position des Ports
+ locator.setPreferredSideOfParent(PositionConstants.NORTH); // Position des Ports
+ getBorderedFigure().getBorderItemContainer().add(
+ ((SingleInputPort6EditPart) childEditPart).getFigure(),
+ locator);
+ return true;
+ }
+ if (childEditPart instanceof MultiInputPort7EditPart) {
+ BorderItemLocator locator = new BorderItemLocator(getMainFigure(),
+ PositionConstants.NORTH);
+ locator.setCurrentSideOfParent(PositionConstants.NORTH); // Position des Ports
+ locator.setPreferredSideOfParent(PositionConstants.NORTH); // Position des Ports
+ getBorderedFigure().getBorderItemContainer().add(
+ ((MultiInputPort7EditPart) childEditPart).getFigure(),
+ locator);
+ return true;
+ }
+ return false;
+ }
+
+ /**
+ * @generated NOT
+ */
+ protected boolean removeFixedChild(EditPart childEditPart) {
+ if (childEditPart instanceof SingleQueuedUnitNameTypeLblStrict7EditPart) {
+ return true;
+ }
+ if (childEditPart instanceof SingleQueuedUnitSingleQueuedUnitHelperUnitsCompartment6EditPart) {
+ IFigure pane = getPrimaryShape()
+ .getSingleQueuedUnitHelperUnitsCompartmentFigure();
+ setupContentPane(pane); // FIXME each comparment should handle his content pane in his own way
+ pane.remove(((SingleQueuedUnitSingleQueuedUnitHelperUnitsCompartment6EditPart) childEditPart)
+ .getFigure());
+ return true;
+ }
+ if (childEditPart instanceof SingleQueuedUnitSingleQueuedUnitRefactoringUnitCompartment6EditPart) {
+ IFigure pane = getPrimaryShape()
+ .getSingleQueuedUnitRefactoringUnitCompartmentFigure();
+ setupContentPane(pane); // FIXME each comparment should handle his content pane in his own way
+ pane.remove(((SingleQueuedUnitSingleQueuedUnitRefactoringUnitCompartment6EditPart) childEditPart)
+ .getFigure());
+ return true;
+ }
+ if (childEditPart instanceof SingleInputPort6EditPart) {
+ getBorderedFigure().getBorderItemContainer().remove(
+ ((SingleInputPort6EditPart) childEditPart).getFigure());
+ return true;
+ }
+ if (childEditPart instanceof MultiInputPort7EditPart) {
+ // getBorderedFigure().getBorderItemContainer().remove(
+ // ((MultiInputPort7EditPart) childEditPart).getFigure());
+ return true;
+ }
+ return false;
+ }
+
+ /**
+ * @generated
+ */
+ protected void addChildVisual(EditPart childEditPart, int index) {
+ if (addFixedChild(childEditPart)) {
+ return;
+ }
+ super.addChildVisual(childEditPart, -1);
+ }
+
+ /**
+ * @generated
+ */
+ protected void removeChildVisual(EditPart childEditPart) {
+ if (removeFixedChild(childEditPart)) {
+ return;
+ }
+ super.removeChildVisual(childEditPart);
+ }
+
+ /**
+ * @generated
+ */
+ protected IFigure getContentPaneFor(IGraphicalEditPart editPart) {
+ if (editPart instanceof SingleQueuedUnitSingleQueuedUnitHelperUnitsCompartment6EditPart) {
+ return getPrimaryShape()
+ .getSingleQueuedUnitHelperUnitsCompartmentFigure();
+ }
+ if (editPart instanceof SingleQueuedUnitSingleQueuedUnitRefactoringUnitCompartment6EditPart) {
+ return getPrimaryShape()
+ .getSingleQueuedUnitRefactoringUnitCompartmentFigure();
+ }
+ if (editPart instanceof IBorderItemEditPart) {
+ return getBorderedFigure().getBorderItemContainer();
+ }
+ return getContentPane();
+ }
+
+ /**
+ * @generated
+ */
+ protected NodeFigure createNodePlate() {
+ DefaultSizeNodeFigure result = new DefaultSizeNodeFigure(40, 40);
+ return result;
+ }
+
+ /**
+ * Creates figure for this edit part.
+ *
+ * Body of this method does not depend on settings in generation model
+ * so you may safely remove <i>generated</i> tag and modify it.
+ *
+ * @generated
+ */
+ protected NodeFigure createMainFigure() {
+ NodeFigure figure = createNodePlate();
+ figure.setLayoutManager(new StackLayout());
+ IFigure shape = createNodeShape();
+ figure.add(shape);
+ contentPane = setupContentPane(shape);
+ return figure;
+ }
+
+ /**
+ * Default implementation treats passed figure as content pane.
+ * Respects layout one may have set for generated figure.
+ * @param nodeShape instance of generated figure class
+ * @generated
+ */
+ protected IFigure setupContentPane(IFigure nodeShape) {
+ if (nodeShape.getLayoutManager() == null) {
+ ConstrainedToolbarLayout layout = new ConstrainedToolbarLayout();
+ layout.setSpacing(5);
+ nodeShape.setLayoutManager(layout);
+ }
+ return nodeShape; // use nodeShape itself as contentPane
+ }
+
+ /**
+ * @generated
+ */
+ public IFigure getContentPane() {
+ if (contentPane != null) {
+ return contentPane;
+ }
+ return super.getContentPane();
+ }
+
+ /**
+ * @generated
+ */
+ protected void setForegroundColor(Color color) {
+ if (primaryShape != null) {
+ primaryShape.setForegroundColor(color);
+ }
+ }
+
+ /**
+ * @generated
+ */
+ protected void setBackgroundColor(Color color) {
+ if (primaryShape != null) {
+ primaryShape.setBackgroundColor(color);
+ }
+ }
+
+ /**
+ * @generated
+ */
+ protected void setLineWidth(int width) {
+ if (primaryShape instanceof Shape) {
+ ((Shape) primaryShape).setLineWidth(width);
+ }
+ }
+
+ /**
+ * @generated
+ */
+ protected void setLineType(int style) {
+ if (primaryShape instanceof Shape) {
+ ((Shape) primaryShape).setLineStyle(style);
+ }
+ }
+
+ /**
+ * @generated
+ */
+ public EditPart getPrimaryChildEditPart() {
+ return getChildBySemanticHint(ComrelVisualIDRegistry
+ .getType(SingleQueuedUnitNameTypeLblStrict7EditPart.VISUAL_ID));
+ }
+
+ /**
+ * @generated
+ */
+ public class SingleQueuedUnitFigure extends RoundedRectangle {
+
+ /**
+ * @generated
+ */
+ private WrappingLabel fFigureSingleQueuedUnitLabelFigure;
+ /**
+ * @generated
+ */
+ private RectangleFigure fSingleQueuedUnitHelperUnitsCompartmentFigure;
+ /**
+ * @generated
+ */
+ private RectangleFigure fSingleQueuedUnitRefactoringUnitCompartmentFigure;
+
+ /**
+ * @generated
+ */
+ public SingleQueuedUnitFigure() {
+ this.setCornerDimensions(new Dimension(getMapMode().DPtoLP(8),
+ getMapMode().DPtoLP(8)));
+ this.setBorder(new MarginBorder(getMapMode().DPtoLP(5),
+ getMapMode().DPtoLP(5), getMapMode().DPtoLP(5),
+ getMapMode().DPtoLP(5)));
+ createContents();
+ }
+
+ /**
+ * @generated
+ */
+ private void createContents() {
+
+ fFigureSingleQueuedUnitLabelFigure = new WrappingLabel();
+ fFigureSingleQueuedUnitLabelFigure.setText("SingleQueuedUnit");
+ fFigureSingleQueuedUnitLabelFigure.setMaximumSize(new Dimension(
+ getMapMode().DPtoLP(10000), getMapMode().DPtoLP(50)));
+
+ this.add(fFigureSingleQueuedUnitLabelFigure);
+
+ fSingleQueuedUnitHelperUnitsCompartmentFigure = new RectangleFigure();
+ fSingleQueuedUnitHelperUnitsCompartmentFigure.setOutline(false);
+
+ this.add(fSingleQueuedUnitHelperUnitsCompartmentFigure);
+
+ fSingleQueuedUnitRefactoringUnitCompartmentFigure = new RectangleFigure();
+ fSingleQueuedUnitRefactoringUnitCompartmentFigure.setOutline(false);
+
+ this.add(fSingleQueuedUnitRefactoringUnitCompartmentFigure);
+
+ }
+
+ /**
+ * @generated
+ */
+ public WrappingLabel getFigureSingleQueuedUnitLabelFigure() {
+ return fFigureSingleQueuedUnitLabelFigure;
+ }
+
+ /**
+ * @generated
+ */
+ public RectangleFigure getSingleQueuedUnitHelperUnitsCompartmentFigure() {
+ return fSingleQueuedUnitHelperUnitsCompartmentFigure;
+ }
+
+ /**
+ * @generated
+ */
+ public RectangleFigure getSingleQueuedUnitRefactoringUnitCompartmentFigure() {
+ return fSingleQueuedUnitRefactoringUnitCompartmentFigure;
+ }
+
+ }
+
+}
diff --git a/org.eclipse.emf.refactor.comrel.diagram/src/comrel/diagram/edit/parts/SingleQueuedUnitEditPart.java b/org.eclipse.emf.refactor.comrel.diagram/src/comrel/diagram/edit/parts/SingleQueuedUnitEditPart.java
new file mode 100644
index 0000000..5e98ffe
--- /dev/null
+++ b/org.eclipse.emf.refactor.comrel.diagram/src/comrel/diagram/edit/parts/SingleQueuedUnitEditPart.java
@@ -0,0 +1,452 @@
+/*
+ *
+ */
+package comrel.diagram.edit.parts;
+
+import org.eclipse.draw2d.IFigure;
+import org.eclipse.draw2d.MarginBorder;
+import org.eclipse.draw2d.PositionConstants;
+import org.eclipse.draw2d.RectangleFigure;
+import org.eclipse.draw2d.RoundedRectangle;
+import org.eclipse.draw2d.Shape;
+import org.eclipse.draw2d.StackLayout;
+import org.eclipse.draw2d.geometry.Dimension;
+import org.eclipse.emf.common.notify.Notification;
+import org.eclipse.emf.ecore.EcorePackage;
+import org.eclipse.gef.EditPart;
+import org.eclipse.gef.EditPolicy;
+import org.eclipse.gef.Request;
+import org.eclipse.gef.commands.Command;
+import org.eclipse.gef.editpolicies.LayoutEditPolicy;
+import org.eclipse.gef.editpolicies.NonResizableEditPolicy;
+import org.eclipse.gef.requests.CreateRequest;
+import org.eclipse.gmf.runtime.diagram.ui.editparts.AbstractBorderedShapeEditPart;
+import org.eclipse.gmf.runtime.diagram.ui.editparts.IBorderItemEditPart;
+import org.eclipse.gmf.runtime.diagram.ui.editparts.IGraphicalEditPart;
+import org.eclipse.gmf.runtime.diagram.ui.editpolicies.BorderItemSelectionEditPolicy;
+import org.eclipse.gmf.runtime.diagram.ui.editpolicies.CreationEditPolicy;
+import org.eclipse.gmf.runtime.diagram.ui.editpolicies.DragDropEditPolicy;
+import org.eclipse.gmf.runtime.diagram.ui.editpolicies.EditPolicyRoles;
+import org.eclipse.gmf.runtime.diagram.ui.figures.BorderItemLocator;
+import org.eclipse.gmf.runtime.draw2d.ui.figures.ConstrainedToolbarLayout;
+import org.eclipse.gmf.runtime.draw2d.ui.figures.WrappingLabel;
+import org.eclipse.gmf.runtime.gef.ui.figures.DefaultSizeNodeFigure;
+import org.eclipse.gmf.runtime.gef.ui.figures.NodeFigure;
+import org.eclipse.gmf.runtime.notation.View;
+import org.eclipse.swt.graphics.Color;
+
+import comrel.diagram.edit.parts.SingleQueuedUnit7EditPart.SingleQueuedUnitFigure;
+import comrel.diagram.edit.parts.custom.Labels;
+import comrel.diagram.edit.policies.OpenDiagramEditPolicy;
+import comrel.diagram.edit.policies.SingleQueuedUnitCanonicalEditPolicy;
+import comrel.diagram.edit.policies.SingleQueuedUnitItemSemanticEditPolicy;
+import comrel.diagram.part.ComrelVisualIDRegistry;
+
+/**
+ * @generated
+ */
+public class SingleQueuedUnitEditPart extends AbstractBorderedShapeEditPart {
+
+ /**
+ * @generated
+ */
+ public static final int VISUAL_ID = 2004;
+
+ /**
+ * @generated
+ */
+ protected IFigure contentPane;
+
+ /**
+ * @generated
+ */
+ protected IFigure primaryShape;
+
+ /**
+ * @generated
+ */
+ public SingleQueuedUnitEditPart(View view) {
+ super(view);
+ }
+
+ /**
+ * @generated
+ */
+ protected void createDefaultEditPolicies() {
+ installEditPolicy(EditPolicyRoles.CREATION_ROLE,
+ new CreationEditPolicy());
+ super.createDefaultEditPolicies();
+ installEditPolicy(EditPolicyRoles.SEMANTIC_ROLE,
+ new SingleQueuedUnitItemSemanticEditPolicy());
+ installEditPolicy(EditPolicyRoles.DRAG_DROP_ROLE,
+ new DragDropEditPolicy());
+ installEditPolicy(EditPolicyRoles.CANONICAL_ROLE,
+ new SingleQueuedUnitCanonicalEditPolicy());
+ installEditPolicy(EditPolicy.LAYOUT_ROLE, createLayoutEditPolicy());
+ installEditPolicy(EditPolicyRoles.OPEN_ROLE,
+ new OpenDiagramEditPolicy());
+ // XXX need an SCR to runtime to have another abstract superclass that would let children add reasonable editpolicies
+ // removeEditPolicy(org.eclipse.gmf.runtime.diagram.ui.editpolicies.EditPolicyRoles.CONNECTION_HANDLES_ROLE);
+ }
+
+ /**
+ * @generated
+ */
+ protected LayoutEditPolicy createLayoutEditPolicy() {
+ org.eclipse.gmf.runtime.diagram.ui.editpolicies.LayoutEditPolicy lep = new org.eclipse.gmf.runtime.diagram.ui.editpolicies.LayoutEditPolicy() {
+
+ protected EditPolicy createChildEditPolicy(EditPart child) {
+ View childView = (View) child.getModel();
+ switch (ComrelVisualIDRegistry.getVisualID(childView)) {
+ case SingleInputPort6EditPart.VISUAL_ID:
+ case MultiInputPort7EditPart.VISUAL_ID:
+ return new BorderItemSelectionEditPolicy();
+ }
+ EditPolicy result = child
+ .getEditPolicy(EditPolicy.PRIMARY_DRAG_ROLE);
+ if (result == null) {
+ result = new NonResizableEditPolicy();
+ }
+ return result;
+ }
+
+ protected Command getMoveChildrenCommand(Request request) {
+ return null;
+ }
+
+ protected Command getCreateCommand(CreateRequest request) {
+ return null;
+ }
+ };
+ return lep;
+ }
+
+ /**
+ * @generated NOT
+ */
+ protected IFigure createNodeShape() {
+ SingleQueuedUnitFigure figure = new SingleQueuedUnitFigure();
+ RectangleFigure compHelper = (RectangleFigure) figure.getChildren()
+ .get(1);
+ RectangleFigure compRef = (RectangleFigure) figure.getChildren().get(2);
+ Labels.setLabels(compHelper, compRef, true);
+ // RefactoringUnit unit = (RefactoringUnit) this.resolveSemanticElement();
+ // unit.setFigure(figure);
+ return primaryShape = figure;
+ }
+
+ /**
+ * @generated
+ */
+ public SingleQueuedUnitFigure getPrimaryShape() {
+ return (SingleQueuedUnitFigure) primaryShape;
+ }
+
+ /**
+ * @generated NOT
+ */
+ protected boolean addFixedChild(EditPart childEditPart) {
+ if (childEditPart instanceof SingleQueuedUnitNameTypeLblStrictEditPart) {
+ ((SingleQueuedUnitNameTypeLblStrictEditPart) childEditPart)
+ .setLabel(getPrimaryShape()
+ .getFigureSingleQueuedUnitLabelFigure());
+ return true;
+ }
+ if (childEditPart instanceof SingleQueuedUnitSingleQueuedUnitHelperUnitsCompartment7EditPart) {
+ IFigure pane = getPrimaryShape()
+ .getSingleQueuedUnitHelperUnitsCompartmentFigure();
+ setupContentPane(pane); // FIXME each comparment should handle his content pane in his own way
+ pane.add(((SingleQueuedUnitSingleQueuedUnitHelperUnitsCompartment7EditPart) childEditPart)
+ .getFigure());
+ return true;
+ }
+ if (childEditPart instanceof SingleQueuedUnitSingleQueuedUnitRefactoringUnitCompartment7EditPart) {
+ IFigure pane = getPrimaryShape()
+ .getSingleQueuedUnitRefactoringUnitCompartmentFigure();
+ setupContentPane(pane); // FIXME each comparment should handle his content pane in his own way
+ pane.add(((SingleQueuedUnitSingleQueuedUnitRefactoringUnitCompartment7EditPart) childEditPart)
+ .getFigure());
+ return true;
+ }
+ if (childEditPart instanceof SingleInputPort6EditPart) {
+ BorderItemLocator locator = new BorderItemLocator(getMainFigure(),
+ PositionConstants.NORTH);
+ locator.setCurrentSideOfParent(PositionConstants.NORTH); // Position des Ports
+ locator.setPreferredSideOfParent(PositionConstants.NORTH); // Position des Ports
+ getBorderedFigure().getBorderItemContainer().add(
+ ((SingleInputPort6EditPart) childEditPart).getFigure(),
+ locator);
+ return true;
+ }
+ if (childEditPart instanceof MultiInputPort7EditPart) {
+ BorderItemLocator locator = new BorderItemLocator(getMainFigure(),
+ PositionConstants.NORTH);
+ locator.setCurrentSideOfParent(PositionConstants.NORTH); // Position des Ports
+ locator.setPreferredSideOfParent(PositionConstants.NORTH); // Position des Ports
+ getBorderedFigure().getBorderItemContainer().add(
+ ((MultiInputPort7EditPart) childEditPart).getFigure(),
+ locator);
+ return true;
+ }
+ return false;
+ }
+
+ /**
+ * @generated NOT
+ */
+ protected boolean removeFixedChild(EditPart childEditPart) {
+ if (childEditPart instanceof SingleQueuedUnitNameTypeLblStrictEditPart) {
+ return true;
+ }
+ if (childEditPart instanceof SingleQueuedUnitSingleQueuedUnitHelperUnitsCompartment7EditPart) {
+ IFigure pane = getPrimaryShape()
+ .getSingleQueuedUnitHelperUnitsCompartmentFigure();
+ setupContentPane(pane); // FIXME each comparment should handle his content pane in his own way
+ pane.remove(((SingleQueuedUnitSingleQueuedUnitHelperUnitsCompartment7EditPart) childEditPart)
+ .getFigure());
+ return true;
+ }
+ if (childEditPart instanceof SingleQueuedUnitSingleQueuedUnitRefactoringUnitCompartment7EditPart) {
+ IFigure pane = getPrimaryShape()
+ .getSingleQueuedUnitRefactoringUnitCompartmentFigure();
+ setupContentPane(pane); // FIXME each comparment should handle his content pane in his own way
+ pane.remove(((SingleQueuedUnitSingleQueuedUnitRefactoringUnitCompartment7EditPart) childEditPart)
+ .getFigure());
+ return true;
+ }
+ if (childEditPart instanceof SingleInputPort6EditPart) {
+ getBorderedFigure().getBorderItemContainer().remove(
+ ((SingleInputPort6EditPart) childEditPart).getFigure());
+ return true;
+ }
+ if (childEditPart instanceof MultiInputPort7EditPart) {
+ // getBorderedFigure().getBorderItemContainer().remove(
+ // ((MultiInputPort7EditPart) childEditPart).getFigure());
+ return true;
+ }
+ return false;
+ }
+
+ /**
+ * @generated
+ */
+ protected void addChildVisual(EditPart childEditPart, int index) {
+ if (addFixedChild(childEditPart)) {
+ return;
+ }
+ super.addChildVisual(childEditPart, -1);
+ }
+
+ /**
+ * @generated
+ */
+ protected void removeChildVisual(EditPart childEditPart) {
+ if (removeFixedChild(childEditPart)) {
+ return;
+ }
+ super.removeChildVisual(childEditPart);
+ }
+
+ /**
+ * @generated
+ */
+ protected IFigure getContentPaneFor(IGraphicalEditPart editPart) {
+ if (editPart instanceof SingleQueuedUnitSingleQueuedUnitHelperUnitsCompartment7EditPart) {
+ return getPrimaryShape()
+ .getSingleQueuedUnitHelperUnitsCompartmentFigure();
+ }
+ if (editPart instanceof SingleQueuedUnitSingleQueuedUnitRefactoringUnitCompartment7EditPart) {
+ return getPrimaryShape()
+ .getSingleQueuedUnitRefactoringUnitCompartmentFigure();
+ }
+ if (editPart instanceof IBorderItemEditPart) {
+ return getBorderedFigure().getBorderItemContainer();
+ }
+ return getContentPane();
+ }
+
+ /**
+ * @generated
+ */
+ protected NodeFigure createNodePlate() {
+ DefaultSizeNodeFigure result = new DefaultSizeNodeFigure(40, 40);
+ return result;
+ }
+
+ /**
+ * Creates figure for this edit part.
+ *
+ * Body of this method does not depend on settings in generation model
+ * so you may safely remove <i>generated</i> tag and modify it.
+ *
+ * @generated
+ */
+ protected NodeFigure createMainFigure() {
+ NodeFigure figure = createNodePlate();
+ figure.setLayoutManager(new StackLayout());
+ IFigure shape = createNodeShape();
+ figure.add(shape);
+ contentPane = setupContentPane(shape);
+ return figure;
+ }
+
+ /**
+ * Default implementation treats passed figure as content pane.
+ * Respects layout one may have set for generated figure.
+ * @param nodeShape instance of generated figure class
+ * @generated
+ */
+ protected IFigure setupContentPane(IFigure nodeShape) {
+ if (nodeShape.getLayoutManager() == null) {
+ ConstrainedToolbarLayout layout = new ConstrainedToolbarLayout();
+ layout.setSpacing(5);
+ nodeShape.setLayoutManager(layout);
+ }
+ return nodeShape; // use nodeShape itself as contentPane
+ }
+
+ /**
+ * @generated
+ */
+ public IFigure getContentPane() {
+ if (contentPane != null) {
+ return contentPane;
+ }
+ return super.getContentPane();
+ }
+
+ /**
+ * @generated
+ */
+ protected void setForegroundColor(Color color) {
+ if (primaryShape != null) {
+ primaryShape.setForegroundColor(color);
+ }
+ }
+
+ /**
+ * @generated
+ */
+ protected void setBackgroundColor(Color color) {
+ if (primaryShape != null) {
+ primaryShape.setBackgroundColor(color);
+ }
+ }
+
+ /**
+ * @generated
+ */
+ protected void setLineWidth(int width) {
+ if (primaryShape instanceof Shape) {
+ ((Shape) primaryShape).setLineWidth(width);
+ }
+ }
+
+ /**
+ * @generated
+ */
+ protected void setLineType(int style) {
+ if (primaryShape instanceof Shape) {
+ ((Shape) primaryShape).setLineStyle(style);
+ }
+ }
+
+ /**
+ * @generated
+ */
+ public EditPart getPrimaryChildEditPart() {
+ return getChildBySemanticHint(ComrelVisualIDRegistry
+ .getType(SingleQueuedUnitNameTypeLblStrictEditPart.VISUAL_ID));
+ }
+
+ /**
+ * @generated
+ */
+ protected void handleNotificationEvent(Notification event) {
+ if (event.getNotifier() == getModel()
+ && EcorePackage.eINSTANCE.getEModelElement_EAnnotations()
+ .equals(event.getFeature())) {
+ handleMajorSemanticChange();
+ } else {
+ super.handleNotificationEvent(event);
+ }
+ }
+
+ /**
+ * @generated
+ */
+ public class SingleQueuedUnitFigure extends RoundedRectangle {
+
+ /**
+ * @generated
+ */
+ private WrappingLabel fFigureSingleQueuedUnitLabelFigure;
+ /**
+ * @generated
+ */
+ private RectangleFigure fSingleQueuedUnitHelperUnitsCompartmentFigure;
+ /**
+ * @generated
+ */
+ private RectangleFigure fSingleQueuedUnitRefactoringUnitCompartmentFigure;
+
+ /**
+ * @generated
+ */
+ public SingleQueuedUnitFigure() {
+ this.setCornerDimensions(new Dimension(getMapMode().DPtoLP(8),
+ getMapMode().DPtoLP(8)));
+ this.setBorder(new MarginBorder(getMapMode().DPtoLP(5),
+ getMapMode().DPtoLP(5), getMapMode().DPtoLP(5),
+ getMapMode().DPtoLP(5)));
+ createContents();
+ }
+
+ /**
+ * @generated
+ */
+ private void createContents() {
+
+ fFigureSingleQueuedUnitLabelFigure = new WrappingLabel();
+ fFigureSingleQueuedUnitLabelFigure.setText("SingleQueuedUnit");
+ fFigureSingleQueuedUnitLabelFigure.setMaximumSize(new Dimension(
+ getMapMode().DPtoLP(10000), getMapMode().DPtoLP(50)));
+
+ this.add(fFigureSingleQueuedUnitLabelFigure);
+
+ fSingleQueuedUnitHelperUnitsCompartmentFigure = new RectangleFigure();
+ fSingleQueuedUnitHelperUnitsCompartmentFigure.setOutline(false);
+
+ this.add(fSingleQueuedUnitHelperUnitsCompartmentFigure);
+
+ fSingleQueuedUnitRefactoringUnitCompartmentFigure = new RectangleFigure();
+ fSingleQueuedUnitRefactoringUnitCompartmentFigure.setOutline(false);
+
+ this.add(fSingleQueuedUnitRefactoringUnitCompartmentFigure);
+
+ }
+
+ /**
+ * @generated
+ */
+ public WrappingLabel getFigureSingleQueuedUnitLabelFigure() {
+ return fFigureSingleQueuedUnitLabelFigure;
+ }
+
+ /**
+ * @generated
+ */
+ public RectangleFigure getSingleQueuedUnitHelperUnitsCompartmentFigure() {
+ return fSingleQueuedUnitHelperUnitsCompartmentFigure;
+ }
+
+ /**
+ * @generated
+ */
+ public RectangleFigure getSingleQueuedUnitRefactoringUnitCompartmentFigure() {
+ return fSingleQueuedUnitRefactoringUnitCompartmentFigure;
+ }
+
+ }
+
+}
diff --git a/org.eclipse.emf.refactor.comrel.diagram/src/comrel/diagram/edit/parts/SingleQueuedUnitNameTypeLblStrict2EditPart.java b/org.eclipse.emf.refactor.comrel.diagram/src/comrel/diagram/edit/parts/SingleQueuedUnitNameTypeLblStrict2EditPart.java
new file mode 100644
index 0000000..00d46a1
--- /dev/null
+++ b/org.eclipse.emf.refactor.comrel.diagram/src/comrel/diagram/edit/parts/SingleQueuedUnitNameTypeLblStrict2EditPart.java
@@ -0,0 +1,576 @@
+/*
+ *
+ */
+package comrel.diagram.edit.parts;
+
+import java.util.Collections;
+import java.util.List;
+
+import org.eclipse.draw2d.IFigure;
+import org.eclipse.draw2d.Label;
+import org.eclipse.draw2d.geometry.Point;
+import org.eclipse.emf.common.notify.Notification;
+import org.eclipse.emf.ecore.EObject;
+import org.eclipse.emf.transaction.RunnableWithResult;
+import org.eclipse.gef.AccessibleEditPart;
+import org.eclipse.gef.EditPolicy;
+import org.eclipse.gef.Request;
+import org.eclipse.gef.requests.DirectEditRequest;
+import org.eclipse.gef.tools.DirectEditManager;
+import org.eclipse.gmf.runtime.common.ui.services.parser.IParser;
+import org.eclipse.gmf.runtime.common.ui.services.parser.IParserEditStatus;
+import org.eclipse.gmf.runtime.common.ui.services.parser.ParserEditStatus;
+import org.eclipse.gmf.runtime.common.ui.services.parser.ParserOptions;
+import org.eclipse.gmf.runtime.diagram.ui.editparts.CompartmentEditPart;
+import org.eclipse.gmf.runtime.diagram.ui.editparts.IGraphicalEditPart;
+import org.eclipse.gmf.runtime.diagram.ui.editparts.ITextAwareEditPart;
+import org.eclipse.gmf.runtime.diagram.ui.editpolicies.LabelDirectEditPolicy;
+import org.eclipse.gmf.runtime.diagram.ui.l10n.DiagramColorRegistry;
+import org.eclipse.gmf.runtime.diagram.ui.requests.RequestConstants;
+import org.eclipse.gmf.runtime.diagram.ui.tools.TextDirectEditManager;
+import org.eclipse.gmf.runtime.draw2d.ui.figures.WrappingLabel;
+import org.eclipse.gmf.runtime.emf.core.util.EObjectAdapter;
+import org.eclipse.gmf.runtime.emf.ui.services.parser.ISemanticParser;
+import org.eclipse.gmf.runtime.notation.FontStyle;
+import org.eclipse.gmf.runtime.notation.NotationPackage;
+import org.eclipse.gmf.runtime.notation.View;
+import org.eclipse.jface.text.contentassist.IContentAssistProcessor;
+import org.eclipse.jface.viewers.ICellEditorValidator;
+import org.eclipse.swt.SWT;
+import org.eclipse.swt.accessibility.AccessibleEvent;
+import org.eclipse.swt.graphics.Color;
+import org.eclipse.swt.graphics.FontData;
+import org.eclipse.swt.graphics.Image;
+
+import comrel.diagram.edit.policies.ComrelTextSelectionEditPolicy;
+import comrel.diagram.part.ComrelVisualIDRegistry;
+import comrel.diagram.providers.ComrelElementTypes;
+import comrel.diagram.providers.ComrelParserProvider;
+
+/**
+ * @generated
+ */
+public class SingleQueuedUnitNameTypeLblStrict2EditPart extends
+ CompartmentEditPart implements ITextAwareEditPart {
+
+ /**
+ * @generated
+ */
+ public static final int VISUAL_ID = 5076;
+
+ /**
+ * @generated
+ */
+ private DirectEditManager manager;
+
+ /**
+ * @generated
+ */
+ private IParser parser;
+
+ /**
+ * @generated
+ */
+ private List<?> parserElements;
+
+ /**
+ * @generated
+ */
+ private String defaultText;
+
+ /**
+ * @generated
+ */
+ public SingleQueuedUnitNameTypeLblStrict2EditPart(View view) {
+ super(view);
+ }
+
+ /**
+ * @generated
+ */
+ protected void createDefaultEditPolicies() {
+ super.createDefaultEditPolicies();
+ installEditPolicy(EditPolicy.SELECTION_FEEDBACK_ROLE,
+ new ComrelTextSelectionEditPolicy());
+ installEditPolicy(EditPolicy.DIRECT_EDIT_ROLE,
+ new LabelDirectEditPolicy());
+ installEditPolicy(EditPolicy.PRIMARY_DRAG_ROLE,
+ new CompositeRefactoringEditPart.NodeLabelDragPolicy());
+ }
+
+ /**
+ * @generated
+ */
+ protected String getLabelTextHelper(IFigure figure) {
+ if (figure instanceof WrappingLabel) {
+ return ((WrappingLabel) figure).getText();
+ } else {
+ return ((Label) figure).getText();
+ }
+ }
+
+ /**
+ * @generated
+ */
+ protected void setLabelTextHelper(IFigure figure, String text) {
+ if (figure instanceof WrappingLabel) {
+ ((WrappingLabel) figure).setText(text);
+ } else {
+ ((Label) figure).setText(text);
+ }
+ }
+
+ /**
+ * @generated
+ */
+ protected Image getLabelIconHelper(IFigure figure) {
+ if (figure instanceof WrappingLabel) {
+ return ((WrappingLabel) figure).getIcon();
+ } else {
+ return ((Label) figure).getIcon();
+ }
+ }
+
+ /**
+ * @generated
+ */
+ protected void setLabelIconHelper(IFigure figure, Image icon) {
+ if (figure instanceof WrappingLabel) {
+ ((WrappingLabel) figure).setIcon(icon);
+ } else {
+ ((Label) figure).setIcon(icon);
+ }
+ }
+
+ /**
+ * @generated
+ */
+ public void setLabel(WrappingLabel figure) {
+ unregisterVisuals();
+ setFigure(figure);
+ defaultText = getLabelTextHelper(figure);
+ registerVisuals();
+ refreshVisuals();
+ }
+
+ /**
+ * @generated
+ */
+ @SuppressWarnings("rawtypes")
+ protected List getModelChildren() {
+ return Collections.EMPTY_LIST;
+ }
+
+ /**
+ * @generated
+ */
+ public IGraphicalEditPart getChildBySemanticHint(String semanticHint) {
+ return null;
+ }
+
+ /**
+ * @generated
+ */
+ protected EObject getParserElement() {
+ return resolveSemanticElement();
+ }
+
+ /**
+ * @generated
+ */
+ protected Image getLabelIcon() {
+ return null;
+ }
+
+ /**
+ * @generated
+ */
+ protected String getLabelText() {
+ String text = null;
+ EObject parserElement = getParserElement();
+ if (parserElement != null && getParser() != null) {
+ text = getParser().getPrintString(
+ new EObjectAdapter(parserElement),
+ getParserOptions().intValue());
+ }
+ if (text == null || text.length() == 0) {
+ text = defaultText;
+ }
+ return text;
+ }
+
+ /**
+ * @generated
+ */
+ public void setLabelText(String text) {
+ setLabelTextHelper(getFigure(), text);
+ Object pdEditPolicy = getEditPolicy(EditPolicy.PRIMARY_DRAG_ROLE);
+ if (pdEditPolicy instanceof ComrelTextSelectionEditPolicy) {
+ ((ComrelTextSelectionEditPolicy) pdEditPolicy).refreshFeedback();
+ }
+ Object sfEditPolicy = getEditPolicy(EditPolicy.SELECTION_FEEDBACK_ROLE);
+ if (sfEditPolicy instanceof ComrelTextSelectionEditPolicy) {
+ ((ComrelTextSelectionEditPolicy) sfEditPolicy).refreshFeedback();
+ }
+ }
+
+ /**
+ * @generated
+ */
+ public String getEditText() {
+ if (getParserElement() == null || getParser() == null) {
+ return ""; //$NON-NLS-1$
+ }
+ return getParser().getEditString(
+ new EObjectAdapter(getParserElement()),
+ getParserOptions().intValue());
+ }
+
+ /**
+ * @generated
+ */
+ protected boolean isEditable() {
+ return getParser() != null;
+ }
+
+ /**
+ * @generated
+ */
+ public ICellEditorValidator getEditTextValidator() {
+ return new ICellEditorValidator() {
+
+ public String isValid(final Object value) {
+ if (value instanceof String) {
+ final EObject element = getParserElement();
+ final IParser parser = getParser();
+ try {
+ IParserEditStatus valid = (IParserEditStatus) getEditingDomain()
+ .runExclusive(
+ new RunnableWithResult.Impl<IParserEditStatus>() {
+
+ public void run() {
+ setResult(parser
+ .isValidEditString(
+ new EObjectAdapter(
+ element),
+ (String) value));
+ }
+ });
+ return valid.getCode() == ParserEditStatus.EDITABLE ? null
+ : valid.getMessage();
+ } catch (InterruptedException ie) {
+ ie.printStackTrace();
+ }
+ }
+
+ // shouldn't get here
+ return null;
+ }
+ };
+ }
+
+ /**
+ * @generated
+ */
+ public IContentAssistProcessor getCompletionProcessor() {
+ if (getParserElement() == null || getParser() == null) {
+ return null;
+ }
+ return getParser().getCompletionProcessor(
+ new EObjectAdapter(getParserElement()));
+ }
+
+ /**
+ * @generated
+ */
+ public ParserOptions getParserOptions() {
+ return ParserOptions.NONE;
+ }
+
+ /**
+ * @generated
+ */
+ public IParser getParser() {
+ if (parser == null) {
+ parser = ComrelParserProvider
+ .getParser(
+ ComrelElementTypes.SingleQueuedUnit_3022,
+ getParserElement(),
+ ComrelVisualIDRegistry
+ .getType(comrel.diagram.edit.parts.SingleQueuedUnitNameTypeLblStrict2EditPart.VISUAL_ID));
+ }
+ return parser;
+ }
+
+ /**
+ * @generated
+ */
+ protected DirectEditManager getManager() {
+ if (manager == null) {
+ setManager(new TextDirectEditManager(this,
+ TextDirectEditManager.getTextCellEditorClass(this),
+ ComrelEditPartFactory.getTextCellEditorLocator(this)));
+ }
+ return manager;
+ }
+
+ /**
+ * @generated
+ */
+ protected void setManager(DirectEditManager manager) {
+ this.manager = manager;
+ }
+
+ /**
+ * @generated
+ */
+ protected void performDirectEdit() {
+ getManager().show();
+ }
+
+ /**
+ * @generated
+ */
+ protected void performDirectEdit(Point eventLocation) {
+ if (getManager().getClass() == TextDirectEditManager.class) {
+ ((TextDirectEditManager) getManager()).show(eventLocation
+ .getSWTPoint());
+ }
+ }
+
+ /**
+ * @generated
+ */
+ private void performDirectEdit(char initialCharacter) {
+ if (getManager() instanceof TextDirectEditManager) {
+ ((TextDirectEditManager) getManager()).show(initialCharacter);
+ } else {
+ performDirectEdit();
+ }
+ }
+
+ /**
+ * @generated
+ */
+ protected void performDirectEditRequest(Request request) {
+ final Request theRequest = request;
+ try {
+ getEditingDomain().runExclusive(new Runnable() {
+
+ public void run() {
+ if (isActive() && isEditable()) {
+ if (theRequest
+ .getExtendedData()
+ .get(RequestConstants.REQ_DIRECTEDIT_EXTENDEDDATA_INITIAL_CHAR) instanceof Character) {
+ Character initialChar = (Character) theRequest
+ .getExtendedData()
+ .get(RequestConstants.REQ_DIRECTEDIT_EXTENDEDDATA_INITIAL_CHAR);
+ performDirectEdit(initialChar.charValue());
+ } else if ((theRequest instanceof DirectEditRequest)
+ && (getEditText().equals(getLabelText()))) {
+ DirectEditRequest editRequest = (DirectEditRequest) theRequest;
+ performDirectEdit(editRequest.getLocation());
+ } else {
+ performDirectEdit();
+ }
+ }
+ }
+ });
+ } catch (InterruptedException e) {
+ e.printStackTrace();
+ }
+ }
+
+ /**
+ * @generated
+ */
+ protected void refreshVisuals() {
+ super.refreshVisuals();
+ refreshLabel();
+ refreshFont();
+ refreshFontColor();
+ refreshUnderline();
+ refreshStrikeThrough();
+ }
+
+ /**
+ * @generated
+ */
+ protected void refreshLabel() {
+ setLabelTextHelper(getFigure(), getLabelText());
+ setLabelIconHelper(getFigure(), getLabelIcon());
+ Object pdEditPolicy = getEditPolicy(EditPolicy.PRIMARY_DRAG_ROLE);
+ if (pdEditPolicy instanceof ComrelTextSelectionEditPolicy) {
+ ((ComrelTextSelectionEditPolicy) pdEditPolicy).refreshFeedback();
+ }
+ Object sfEditPolicy = getEditPolicy(EditPolicy.SELECTION_FEEDBACK_ROLE);
+ if (sfEditPolicy instanceof ComrelTextSelectionEditPolicy) {
+ ((ComrelTextSelectionEditPolicy) sfEditPolicy).refreshFeedback();
+ }
+ }
+
+ /**
+ * @generated
+ */
+ protected void refreshUnderline() {
+ FontStyle style = (FontStyle) getFontStyleOwnerView().getStyle(
+ NotationPackage.eINSTANCE.getFontStyle());
+ if (style != null && getFigure() instanceof WrappingLabel) {
+ ((WrappingLabel) getFigure()).setTextUnderline(style.isUnderline());
+ }
+ }
+
+ /**
+ * @generated
+ */
+ protected void refreshStrikeThrough() {
+ FontStyle style = (FontStyle) getFontStyleOwnerView().getStyle(
+ NotationPackage.eINSTANCE.getFontStyle());
+ if (style != null && getFigure() instanceof WrappingLabel) {
+ ((WrappingLabel) getFigure()).setTextStrikeThrough(style
+ .isStrikeThrough());
+ }
+ }
+
+ /**
+ * @generated
+ */
+ protected void refreshFont() {
+ FontStyle style = (FontStyle) getFontStyleOwnerView().getStyle(
+ NotationPackage.eINSTANCE.getFontStyle());
+ if (style != null) {
+ FontData fontData = new FontData(style.getFontName(),
+ style.getFontHeight(), (style.isBold() ? SWT.BOLD
+ : SWT.NORMAL)
+ | (style.isItalic() ? SWT.ITALIC : SWT.NORMAL));
+ setFont(fontData);
+ }
+ }
+
+ /**
+ * @generated
+ */
+ protected void setFontColor(Color color) {
+ getFigure().setForegroundColor(color);
+ }
+
+ /**
+ * @generated
+ */
+ protected void addSemanticListeners() {
+ if (getParser() instanceof ISemanticParser) {
+ EObject element = resolveSemanticElement();
+ parserElements = ((ISemanticParser) getParser())
+ .getSemanticElementsBeingParsed(element);
+ for (int i = 0; i < parserElements.size(); i++) {
+ addListenerFilter(
+ "SemanticModel" + i, this, (EObject) parserElements.get(i)); //$NON-NLS-1$
+ }
+ } else {
+ super.addSemanticListeners();
+ }
+ }
+
+ /**
+ * @generated
+ */
+ protected void removeSemanticListeners() {
+ if (parserElements != null) {
+ for (int i = 0; i < parserElements.size(); i++) {
+ removeListenerFilter("SemanticModel" + i); //$NON-NLS-1$
+ }
+ } else {
+ super.removeSemanticListeners();
+ }
+ }
+
+ /**
+ * @generated
+ */
+ protected AccessibleEditPart getAccessibleEditPart() {
+ if (accessibleEP == null) {
+ accessibleEP = new AccessibleGraphicalEditPart() {
+
+ public void getName(AccessibleEvent e) {
+ e.result = getLabelTextHelper(getFigure());
+ }
+ };
+ }
+ return accessibleEP;
+ }
+
+ /**
+ * @generated
+ */
+ private View getFontStyleOwnerView() {
+ return getPrimaryView();
+ }
+
+ /**
+ * @generated
+ */
+ protected void addNotationalListeners() {
+ super.addNotationalListeners();
+ addListenerFilter("PrimaryView", this, getPrimaryView()); //$NON-NLS-1$
+ }
+
+ /**
+ * @generated
+ */
+ protected void removeNotationalListeners() {
+ super.removeNotationalListeners();
+ removeListenerFilter("PrimaryView"); //$NON-NLS-1$
+ }
+
+ /**
+ * @generated
+ */
+ protected void handleNotificationEvent(Notification event) {
+ Object feature = event.getFeature();
+ if (NotationPackage.eINSTANCE.getFontStyle_FontColor().equals(feature)) {
+ Integer c = (Integer) event.getNewValue();
+ setFontColor(DiagramColorRegistry.getInstance().getColor(c));
+ } else if (NotationPackage.eINSTANCE.getFontStyle_Underline().equals(
+ feature)) {
+ refreshUnderline();
+ } else if (NotationPackage.eINSTANCE.getFontStyle_StrikeThrough()
+ .equals(feature)) {
+ refreshStrikeThrough();
+ } else if (NotationPackage.eINSTANCE.getFontStyle_FontHeight().equals(
+ feature)
+ || NotationPackage.eINSTANCE.getFontStyle_FontName().equals(
+ feature)
+ || NotationPackage.eINSTANCE.getFontStyle_Bold()
+ .equals(feature)
+ || NotationPackage.eINSTANCE.getFontStyle_Italic().equals(
+ feature)) {
+ refreshFont();
+ } else {
+ if (getParser() != null
+ && getParser().isAffectingEvent(event,
+ getParserOptions().intValue())) {
+ refreshLabel();
+ }
+ if (getParser() instanceof ISemanticParser) {
+ ISemanticParser modelParser = (ISemanticParser) getParser();
+ if (modelParser.areSemanticElementsAffected(null, event)) {
+ removeSemanticListeners();
+ if (resolveSemanticElement() != null) {
+ addSemanticListeners();
+ }
+ refreshLabel();
+ }
+ }
+ }
+ super.handleNotificationEvent(event);
+ }
+
+ /**
+ * @generated
+ */
+ protected IFigure createFigure() {
+ // Parent should assign one using setLabel() method
+ return null;
+ }
+
+}
diff --git a/org.eclipse.emf.refactor.comrel.diagram/src/comrel/diagram/edit/parts/SingleQueuedUnitNameTypeLblStrict3EditPart.java b/org.eclipse.emf.refactor.comrel.diagram/src/comrel/diagram/edit/parts/SingleQueuedUnitNameTypeLblStrict3EditPart.java
new file mode 100644
index 0000000..5278048
--- /dev/null
+++ b/org.eclipse.emf.refactor.comrel.diagram/src/comrel/diagram/edit/parts/SingleQueuedUnitNameTypeLblStrict3EditPart.java
@@ -0,0 +1,576 @@
+/*
+ *
+ */
+package comrel.diagram.edit.parts;
+
+import java.util.Collections;
+import java.util.List;
+
+import org.eclipse.draw2d.IFigure;
+import org.eclipse.draw2d.Label;
+import org.eclipse.draw2d.geometry.Point;
+import org.eclipse.emf.common.notify.Notification;
+import org.eclipse.emf.ecore.EObject;
+import org.eclipse.emf.transaction.RunnableWithResult;
+import org.eclipse.gef.AccessibleEditPart;
+import org.eclipse.gef.EditPolicy;
+import org.eclipse.gef.Request;
+import org.eclipse.gef.requests.DirectEditRequest;
+import org.eclipse.gef.tools.DirectEditManager;
+import org.eclipse.gmf.runtime.common.ui.services.parser.IParser;
+import org.eclipse.gmf.runtime.common.ui.services.parser.IParserEditStatus;
+import org.eclipse.gmf.runtime.common.ui.services.parser.ParserEditStatus;
+import org.eclipse.gmf.runtime.common.ui.services.parser.ParserOptions;
+import org.eclipse.gmf.runtime.diagram.ui.editparts.CompartmentEditPart;
+import org.eclipse.gmf.runtime.diagram.ui.editparts.IGraphicalEditPart;
+import org.eclipse.gmf.runtime.diagram.ui.editparts.ITextAwareEditPart;
+import org.eclipse.gmf.runtime.diagram.ui.editpolicies.LabelDirectEditPolicy;
+import org.eclipse.gmf.runtime.diagram.ui.l10n.DiagramColorRegistry;
+import org.eclipse.gmf.runtime.diagram.ui.requests.RequestConstants;
+import org.eclipse.gmf.runtime.diagram.ui.tools.TextDirectEditManager;
+import org.eclipse.gmf.runtime.draw2d.ui.figures.WrappingLabel;
+import org.eclipse.gmf.runtime.emf.core.util.EObjectAdapter;
+import org.eclipse.gmf.runtime.emf.ui.services.parser.ISemanticParser;
+import org.eclipse.gmf.runtime.notation.FontStyle;
+import org.eclipse.gmf.runtime.notation.NotationPackage;
+import org.eclipse.gmf.runtime.notation.View;
+import org.eclipse.jface.text.contentassist.IContentAssistProcessor;
+import org.eclipse.jface.viewers.ICellEditorValidator;
+import org.eclipse.swt.SWT;
+import org.eclipse.swt.accessibility.AccessibleEvent;
+import org.eclipse.swt.graphics.Color;
+import org.eclipse.swt.graphics.FontData;
+import org.eclipse.swt.graphics.Image;
+
+import comrel.diagram.edit.policies.ComrelTextSelectionEditPolicy;
+import comrel.diagram.part.ComrelVisualIDRegistry;
+import comrel.diagram.providers.ComrelElementTypes;
+import comrel.diagram.providers.ComrelParserProvider;
+
+/**
+ * @generated
+ */
+public class SingleQueuedUnitNameTypeLblStrict3EditPart extends
+ CompartmentEditPart implements ITextAwareEditPart {
+
+ /**
+ * @generated
+ */
+ public static final int VISUAL_ID = 5069;
+
+ /**
+ * @generated
+ */
+ private DirectEditManager manager;
+
+ /**
+ * @generated
+ */
+ private IParser parser;
+
+ /**
+ * @generated
+ */
+ private List<?> parserElements;
+
+ /**
+ * @generated
+ */
+ private String defaultText;
+
+ /**
+ * @generated
+ */
+ public SingleQueuedUnitNameTypeLblStrict3EditPart(View view) {
+ super(view);
+ }
+
+ /**
+ * @generated
+ */
+ protected void createDefaultEditPolicies() {
+ super.createDefaultEditPolicies();
+ installEditPolicy(EditPolicy.SELECTION_FEEDBACK_ROLE,
+ new ComrelTextSelectionEditPolicy());
+ installEditPolicy(EditPolicy.DIRECT_EDIT_ROLE,
+ new LabelDirectEditPolicy());
+ installEditPolicy(EditPolicy.PRIMARY_DRAG_ROLE,
+ new CompositeRefactoringEditPart.NodeLabelDragPolicy());
+ }
+
+ /**
+ * @generated
+ */
+ protected String getLabelTextHelper(IFigure figure) {
+ if (figure instanceof WrappingLabel) {
+ return ((WrappingLabel) figure).getText();
+ } else {
+ return ((Label) figure).getText();
+ }
+ }
+
+ /**
+ * @generated
+ */
+ protected void setLabelTextHelper(IFigure figure, String text) {
+ if (figure instanceof WrappingLabel) {
+ ((WrappingLabel) figure).setText(text);
+ } else {
+ ((Label) figure).setText(text);
+ }
+ }
+
+ /**
+ * @generated
+ */
+ protected Image getLabelIconHelper(IFigure figure) {
+ if (figure instanceof WrappingLabel) {
+ return ((WrappingLabel) figure).getIcon();
+ } else {
+ return ((Label) figure).getIcon();
+ }
+ }
+
+ /**
+ * @generated
+ */
+ protected void setLabelIconHelper(IFigure figure, Image icon) {
+ if (figure instanceof WrappingLabel) {
+ ((WrappingLabel) figure).setIcon(icon);
+ } else {
+ ((Label) figure).setIcon(icon);
+ }
+ }
+
+ /**
+ * @generated
+ */
+ public void setLabel(WrappingLabel figure) {
+ unregisterVisuals();
+ setFigure(figure);
+ defaultText = getLabelTextHelper(figure);
+ registerVisuals();
+ refreshVisuals();
+ }
+
+ /**
+ * @generated
+ */
+ @SuppressWarnings("rawtypes")
+ protected List getModelChildren() {
+ return Collections.EMPTY_LIST;
+ }
+
+ /**
+ * @generated
+ */
+ public IGraphicalEditPart getChildBySemanticHint(String semanticHint) {
+ return null;
+ }
+
+ /**
+ * @generated
+ */
+ protected EObject getParserElement() {
+ return resolveSemanticElement();
+ }
+
+ /**
+ * @generated
+ */
+ protected Image getLabelIcon() {
+ return null;
+ }
+
+ /**
+ * @generated
+ */
+ protected String getLabelText() {
+ String text = null;
+ EObject parserElement = getParserElement();
+ if (parserElement != null && getParser() != null) {
+ text = getParser().getPrintString(
+ new EObjectAdapter(parserElement),
+ getParserOptions().intValue());
+ }
+ if (text == null || text.length() == 0) {
+ text = defaultText;
+ }
+ return text;
+ }
+
+ /**
+ * @generated
+ */
+ public void setLabelText(String text) {
+ setLabelTextHelper(getFigure(), text);
+ Object pdEditPolicy = getEditPolicy(EditPolicy.PRIMARY_DRAG_ROLE);
+ if (pdEditPolicy instanceof ComrelTextSelectionEditPolicy) {
+ ((ComrelTextSelectionEditPolicy) pdEditPolicy).refreshFeedback();
+ }
+ Object sfEditPolicy = getEditPolicy(EditPolicy.SELECTION_FEEDBACK_ROLE);
+ if (sfEditPolicy instanceof ComrelTextSelectionEditPolicy) {
+ ((ComrelTextSelectionEditPolicy) sfEditPolicy).refreshFeedback();
+ }
+ }
+
+ /**
+ * @generated
+ */
+ public String getEditText() {
+ if (getParserElement() == null || getParser() == null) {
+ return ""; //$NON-NLS-1$
+ }
+ return getParser().getEditString(
+ new EObjectAdapter(getParserElement()),
+ getParserOptions().intValue());
+ }
+
+ /**
+ * @generated
+ */
+ protected boolean isEditable() {
+ return getParser() != null;
+ }
+
+ /**
+ * @generated
+ */
+ public ICellEditorValidator getEditTextValidator() {
+ return new ICellEditorValidator() {
+
+ public String isValid(final Object value) {
+ if (value instanceof String) {
+ final EObject element = getParserElement();
+ final IParser parser = getParser();
+ try {
+ IParserEditStatus valid = (IParserEditStatus) getEditingDomain()
+ .runExclusive(
+ new RunnableWithResult.Impl<IParserEditStatus>() {
+
+ public void run() {
+ setResult(parser
+ .isValidEditString(
+ new EObjectAdapter(
+ element),
+ (String) value));
+ }
+ });
+ return valid.getCode() == ParserEditStatus.EDITABLE ? null
+ : valid.getMessage();
+ } catch (InterruptedException ie) {
+ ie.printStackTrace();
+ }
+ }
+
+ // shouldn't get here
+ return null;
+ }
+ };
+ }
+
+ /**
+ * @generated
+ */
+ public IContentAssistProcessor getCompletionProcessor() {
+ if (getParserElement() == null || getParser() == null) {
+ return null;
+ }
+ return getParser().getCompletionProcessor(
+ new EObjectAdapter(getParserElement()));
+ }
+
+ /**
+ * @generated
+ */
+ public ParserOptions getParserOptions() {
+ return ParserOptions.NONE;
+ }
+
+ /**
+ * @generated
+ */
+ public IParser getParser() {
+ if (parser == null) {
+ parser = ComrelParserProvider
+ .getParser(
+ ComrelElementTypes.SingleQueuedUnit_3042,
+ getParserElement(),
+ ComrelVisualIDRegistry
+ .getType(comrel.diagram.edit.parts.SingleQueuedUnitNameTypeLblStrict3EditPart.VISUAL_ID));
+ }
+ return parser;
+ }
+
+ /**
+ * @generated
+ */
+ protected DirectEditManager getManager() {
+ if (manager == null) {
+ setManager(new TextDirectEditManager(this,
+ TextDirectEditManager.getTextCellEditorClass(this),
+ ComrelEditPartFactory.getTextCellEditorLocator(this)));
+ }
+ return manager;
+ }
+
+ /**
+ * @generated
+ */
+ protected void setManager(DirectEditManager manager) {
+ this.manager = manager;
+ }
+
+ /**
+ * @generated
+ */
+ protected void performDirectEdit() {
+ getManager().show();
+ }
+
+ /**
+ * @generated
+ */
+ protected void performDirectEdit(Point eventLocation) {
+ if (getManager().getClass() == TextDirectEditManager.class) {
+ ((TextDirectEditManager) getManager()).show(eventLocation
+ .getSWTPoint());
+ }
+ }
+
+ /**
+ * @generated
+ */
+ private void performDirectEdit(char initialCharacter) {
+ if (getManager() instanceof TextDirectEditManager) {
+ ((TextDirectEditManager) getManager()).show(initialCharacter);
+ } else {
+ performDirectEdit();
+ }
+ }
+
+ /**
+ * @generated
+ */
+ protected void performDirectEditRequest(Request request) {
+ final Request theRequest = request;
+ try {
+ getEditingDomain().runExclusive(new Runnable() {
+
+ public void run() {
+ if (isActive() && isEditable()) {
+ if (theRequest
+ .getExtendedData()
+ .get(RequestConstants.REQ_DIRECTEDIT_EXTENDEDDATA_INITIAL_CHAR) instanceof Character) {
+ Character initialChar = (Character) theRequest
+ .getExtendedData()
+ .get(RequestConstants.REQ_DIRECTEDIT_EXTENDEDDATA_INITIAL_CHAR);
+ performDirectEdit(initialChar.charValue());
+ } else if ((theRequest instanceof DirectEditRequest)
+ && (getEditText().equals(getLabelText()))) {
+ DirectEditRequest editRequest = (DirectEditRequest) theRequest;
+ performDirectEdit(editRequest.getLocation());
+ } else {
+ performDirectEdit();
+ }
+ }
+ }
+ });
+ } catch (InterruptedException e) {
+ e.printStackTrace();
+ }
+ }
+
+ /**
+ * @generated
+ */
+ protected void refreshVisuals() {
+ super.refreshVisuals();
+ refreshLabel();
+ refreshFont();
+ refreshFontColor();
+ refreshUnderline();
+ refreshStrikeThrough();
+ }
+
+ /**
+ * @generated
+ */
+ protected void refreshLabel() {
+ setLabelTextHelper(getFigure(), getLabelText());
+ setLabelIconHelper(getFigure(), getLabelIcon());
+ Object pdEditPolicy = getEditPolicy(EditPolicy.PRIMARY_DRAG_ROLE);
+ if (pdEditPolicy instanceof ComrelTextSelectionEditPolicy) {
+ ((ComrelTextSelectionEditPolicy) pdEditPolicy).refreshFeedback();
+ }
+ Object sfEditPolicy = getEditPolicy(EditPolicy.SELECTION_FEEDBACK_ROLE);
+ if (sfEditPolicy instanceof ComrelTextSelectionEditPolicy) {
+ ((ComrelTextSelectionEditPolicy) sfEditPolicy).refreshFeedback();
+ }
+ }
+
+ /**
+ * @generated
+ */
+ protected void refreshUnderline() {
+ FontStyle style = (FontStyle) getFontStyleOwnerView().getStyle(
+ NotationPackage.eINSTANCE.getFontStyle());
+ if (style != null && getFigure() instanceof WrappingLabel) {
+ ((WrappingLabel) getFigure()).setTextUnderline(style.isUnderline());
+ }
+ }
+
+ /**
+ * @generated
+ */
+ protected void refreshStrikeThrough() {
+ FontStyle style = (FontStyle) getFontStyleOwnerView().getStyle(
+ NotationPackage.eINSTANCE.getFontStyle());
+ if (style != null && getFigure() instanceof WrappingLabel) {
+ ((WrappingLabel) getFigure()).setTextStrikeThrough(style
+ .isStrikeThrough());
+ }
+ }
+
+ /**
+ * @generated
+ */
+ protected void refreshFont() {
+ FontStyle style = (FontStyle) getFontStyleOwnerView().getStyle(
+ NotationPackage.eINSTANCE.getFontStyle());
+ if (style != null) {
+ FontData fontData = new FontData(style.getFontName(),
+ style.getFontHeight(), (style.isBold() ? SWT.BOLD
+ : SWT.NORMAL)
+ | (style.isItalic() ? SWT.ITALIC : SWT.NORMAL));
+ setFont(fontData);
+ }
+ }
+
+ /**
+ * @generated
+ */
+ protected void setFontColor(Color color) {
+ getFigure().setForegroundColor(color);
+ }
+
+ /**
+ * @generated
+ */
+ protected void addSemanticListeners() {
+ if (getParser() instanceof ISemanticParser) {
+ EObject element = resolveSemanticElement();
+ parserElements = ((ISemanticParser) getParser())
+ .getSemanticElementsBeingParsed(element);
+ for (int i = 0; i < parserElements.size(); i++) {
+ addListenerFilter(
+ "SemanticModel" + i, this, (EObject) parserElements.get(i)); //$NON-NLS-1$
+ }
+ } else {
+ super.addSemanticListeners();
+ }
+ }
+
+ /**
+ * @generated
+ */
+ protected void removeSemanticListeners() {
+ if (parserElements != null) {
+ for (int i = 0; i < parserElements.size(); i++) {
+ removeListenerFilter("SemanticModel" + i); //$NON-NLS-1$
+ }
+ } else {
+ super.removeSemanticListeners();
+ }
+ }
+
+ /**
+ * @generated
+ */
+ protected AccessibleEditPart getAccessibleEditPart() {
+ if (accessibleEP == null) {
+ accessibleEP = new AccessibleGraphicalEditPart() {
+
+ public void getName(AccessibleEvent e) {
+ e.result = getLabelTextHelper(getFigure());
+ }
+ };
+ }
+ return accessibleEP;
+ }
+
+ /**
+ * @generated
+ */
+ private View getFontStyleOwnerView() {
+ return getPrimaryView();
+ }
+
+ /**
+ * @generated
+ */
+ protected void addNotationalListeners() {
+ super.addNotationalListeners();
+ addListenerFilter("PrimaryView", this, getPrimaryView()); //$NON-NLS-1$
+ }
+
+ /**
+ * @generated
+ */
+ protected void removeNotationalListeners() {
+ super.removeNotationalListeners();
+ removeListenerFilter("PrimaryView"); //$NON-NLS-1$
+ }
+
+ /**
+ * @generated
+ */
+ protected void handleNotificationEvent(Notification event) {
+ Object feature = event.getFeature();
+ if (NotationPackage.eINSTANCE.getFontStyle_FontColor().equals(feature)) {
+ Integer c = (Integer) event.getNewValue();
+ setFontColor(DiagramColorRegistry.getInstance().getColor(c));
+ } else if (NotationPackage.eINSTANCE.getFontStyle_Underline().equals(
+ feature)) {
+ refreshUnderline();
+ } else if (NotationPackage.eINSTANCE.getFontStyle_StrikeThrough()
+ .equals(feature)) {
+ refreshStrikeThrough();
+ } else if (NotationPackage.eINSTANCE.getFontStyle_FontHeight().equals(
+ feature)
+ || NotationPackage.eINSTANCE.getFontStyle_FontName().equals(
+ feature)
+ || NotationPackage.eINSTANCE.getFontStyle_Bold()
+ .equals(feature)
+ || NotationPackage.eINSTANCE.getFontStyle_Italic().equals(
+ feature)) {
+ refreshFont();
+ } else {
+ if (getParser() != null
+ && getParser().isAffectingEvent(event,
+ getParserOptions().intValue())) {
+ refreshLabel();
+ }
+ if (getParser() instanceof ISemanticParser) {
+ ISemanticParser modelParser = (ISemanticParser) getParser();
+ if (modelParser.areSemanticElementsAffected(null, event)) {
+ removeSemanticListeners();
+ if (resolveSemanticElement() != null) {
+ addSemanticListeners();
+ }
+ refreshLabel();
+ }
+ }
+ }
+ super.handleNotificationEvent(event);
+ }
+
+ /**
+ * @generated
+ */
+ protected IFigure createFigure() {
+ // Parent should assign one using setLabel() method
+ return null;
+ }
+
+}
diff --git a/org.eclipse.emf.refactor.comrel.diagram/src/comrel/diagram/edit/parts/SingleQueuedUnitNameTypeLblStrict4EditPart.java b/org.eclipse.emf.refactor.comrel.diagram/src/comrel/diagram/edit/parts/SingleQueuedUnitNameTypeLblStrict4EditPart.java
new file mode 100644
index 0000000..d5bfe9d
--- /dev/null
+++ b/org.eclipse.emf.refactor.comrel.diagram/src/comrel/diagram/edit/parts/SingleQueuedUnitNameTypeLblStrict4EditPart.java
@@ -0,0 +1,576 @@
+/*
+ *
+ */
+package comrel.diagram.edit.parts;
+
+import java.util.Collections;
+import java.util.List;
+
+import org.eclipse.draw2d.IFigure;
+import org.eclipse.draw2d.Label;
+import org.eclipse.draw2d.geometry.Point;
+import org.eclipse.emf.common.notify.Notification;
+import org.eclipse.emf.ecore.EObject;
+import org.eclipse.emf.transaction.RunnableWithResult;
+import org.eclipse.gef.AccessibleEditPart;
+import org.eclipse.gef.EditPolicy;
+import org.eclipse.gef.Request;
+import org.eclipse.gef.requests.DirectEditRequest;
+import org.eclipse.gef.tools.DirectEditManager;
+import org.eclipse.gmf.runtime.common.ui.services.parser.IParser;
+import org.eclipse.gmf.runtime.common.ui.services.parser.IParserEditStatus;
+import org.eclipse.gmf.runtime.common.ui.services.parser.ParserEditStatus;
+import org.eclipse.gmf.runtime.common.ui.services.parser.ParserOptions;
+import org.eclipse.gmf.runtime.diagram.ui.editparts.CompartmentEditPart;
+import org.eclipse.gmf.runtime.diagram.ui.editparts.IGraphicalEditPart;
+import org.eclipse.gmf.runtime.diagram.ui.editparts.ITextAwareEditPart;
+import org.eclipse.gmf.runtime.diagram.ui.editpolicies.LabelDirectEditPolicy;
+import org.eclipse.gmf.runtime.diagram.ui.l10n.DiagramColorRegistry;
+import org.eclipse.gmf.runtime.diagram.ui.requests.RequestConstants;
+import org.eclipse.gmf.runtime.diagram.ui.tools.TextDirectEditManager;
+import org.eclipse.gmf.runtime.draw2d.ui.figures.WrappingLabel;
+import org.eclipse.gmf.runtime.emf.core.util.EObjectAdapter;
+import org.eclipse.gmf.runtime.emf.ui.services.parser.ISemanticParser;
+import org.eclipse.gmf.runtime.notation.FontStyle;
+import org.eclipse.gmf.runtime.notation.NotationPackage;
+import org.eclipse.gmf.runtime.notation.View;
+import org.eclipse.jface.text.contentassist.IContentAssistProcessor;
+import org.eclipse.jface.viewers.ICellEditorValidator;
+import org.eclipse.swt.SWT;
+import org.eclipse.swt.accessibility.AccessibleEvent;
+import org.eclipse.swt.graphics.Color;
+import org.eclipse.swt.graphics.FontData;
+import org.eclipse.swt.graphics.Image;
+
+import comrel.diagram.edit.policies.ComrelTextSelectionEditPolicy;
+import comrel.diagram.part.ComrelVisualIDRegistry;
+import comrel.diagram.providers.ComrelElementTypes;
+import comrel.diagram.providers.ComrelParserProvider;
+
+/**
+ * @generated
+ */
+public class SingleQueuedUnitNameTypeLblStrict4EditPart extends
+ CompartmentEditPart implements ITextAwareEditPart {
+
+ /**
+ * @generated
+ */
+ public static final int VISUAL_ID = 5064;
+
+ /**
+ * @generated
+ */
+ private DirectEditManager manager;
+
+ /**
+ * @generated
+ */
+ private IParser parser;
+
+ /**
+ * @generated
+ */
+ private List<?> parserElements;
+
+ /**
+ * @generated
+ */
+ private String defaultText;
+
+ /**
+ * @generated
+ */
+ public SingleQueuedUnitNameTypeLblStrict4EditPart(View view) {
+ super(view);
+ }
+
+ /**
+ * @generated
+ */
+ protected void createDefaultEditPolicies() {
+ super.createDefaultEditPolicies();
+ installEditPolicy(EditPolicy.SELECTION_FEEDBACK_ROLE,
+ new ComrelTextSelectionEditPolicy());
+ installEditPolicy(EditPolicy.DIRECT_EDIT_ROLE,
+ new LabelDirectEditPolicy());
+ installEditPolicy(EditPolicy.PRIMARY_DRAG_ROLE,
+ new CompositeRefactoringEditPart.NodeLabelDragPolicy());
+ }
+
+ /**
+ * @generated
+ */
+ protected String getLabelTextHelper(IFigure figure) {
+ if (figure instanceof WrappingLabel) {
+ return ((WrappingLabel) figure).getText();
+ } else {
+ return ((Label) figure).getText();
+ }
+ }
+
+ /**
+ * @generated
+ */
+ protected void setLabelTextHelper(IFigure figure, String text) {
+ if (figure instanceof WrappingLabel) {
+ ((WrappingLabel) figure).setText(text);
+ } else {
+ ((Label) figure).setText(text);
+ }
+ }
+
+ /**
+ * @generated
+ */
+ protected Image getLabelIconHelper(IFigure figure) {
+ if (figure instanceof WrappingLabel) {
+ return ((WrappingLabel) figure).getIcon();
+ } else {
+ return ((Label) figure).getIcon();
+ }
+ }
+
+ /**
+ * @generated
+ */
+ protected void setLabelIconHelper(IFigure figure, Image icon) {
+ if (figure instanceof WrappingLabel) {
+ ((WrappingLabel) figure).setIcon(icon);
+ } else {
+ ((Label) figure).setIcon(icon);
+ }
+ }
+
+ /**
+ * @generated
+ */
+ public void setLabel(WrappingLabel figure) {
+ unregisterVisuals();
+ setFigure(figure);
+ defaultText = getLabelTextHelper(figure);
+ registerVisuals();
+ refreshVisuals();
+ }
+
+ /**
+ * @generated
+ */
+ @SuppressWarnings("rawtypes")
+ protected List getModelChildren() {
+ return Collections.EMPTY_LIST;
+ }
+
+ /**
+ * @generated
+ */
+ public IGraphicalEditPart getChildBySemanticHint(String semanticHint) {
+ return null;
+ }
+
+ /**
+ * @generated
+ */
+ protected EObject getParserElement() {
+ return resolveSemanticElement();
+ }
+
+ /**
+ * @generated
+ */
+ protected Image getLabelIcon() {
+ return null;
+ }
+
+ /**
+ * @generated
+ */
+ protected String getLabelText() {
+ String text = null;
+ EObject parserElement = getParserElement();
+ if (parserElement != null && getParser() != null) {
+ text = getParser().getPrintString(
+ new EObjectAdapter(parserElement),
+ getParserOptions().intValue());
+ }
+ if (text == null || text.length() == 0) {
+ text = defaultText;
+ }
+ return text;
+ }
+
+ /**
+ * @generated
+ */
+ public void setLabelText(String text) {
+ setLabelTextHelper(getFigure(), text);
+ Object pdEditPolicy = getEditPolicy(EditPolicy.PRIMARY_DRAG_ROLE);
+ if (pdEditPolicy instanceof ComrelTextSelectionEditPolicy) {
+ ((ComrelTextSelectionEditPolicy) pdEditPolicy).refreshFeedback();
+ }
+ Object sfEditPolicy = getEditPolicy(EditPolicy.SELECTION_FEEDBACK_ROLE);
+ if (sfEditPolicy instanceof ComrelTextSelectionEditPolicy) {
+ ((ComrelTextSelectionEditPolicy) sfEditPolicy).refreshFeedback();
+ }
+ }
+
+ /**
+ * @generated
+ */
+ public String getEditText() {
+ if (getParserElement() == null || getParser() == null) {
+ return ""; //$NON-NLS-1$
+ }
+ return getParser().getEditString(
+ new EObjectAdapter(getParserElement()),
+ getParserOptions().intValue());
+ }
+
+ /**
+ * @generated
+ */
+ protected boolean isEditable() {
+ return getParser() != null;
+ }
+
+ /**
+ * @generated
+ */
+ public ICellEditorValidator getEditTextValidator() {
+ return new ICellEditorValidator() {
+
+ public String isValid(final Object value) {
+ if (value instanceof String) {
+ final EObject element = getParserElement();
+ final IParser parser = getParser();
+ try {
+ IParserEditStatus valid = (IParserEditStatus) getEditingDomain()
+ .runExclusive(
+ new RunnableWithResult.Impl<IParserEditStatus>() {
+
+ public void run() {
+ setResult(parser
+ .isValidEditString(
+ new EObjectAdapter(
+ element),
+ (String) value));
+ }
+ });
+ return valid.getCode() == ParserEditStatus.EDITABLE ? null
+ : valid.getMessage();
+ } catch (InterruptedException ie) {
+ ie.printStackTrace();
+ }
+ }
+
+ // shouldn't get here
+ return null;
+ }
+ };
+ }
+
+ /**
+ * @generated
+ */
+ public IContentAssistProcessor getCompletionProcessor() {
+ if (getParserElement() == null || getParser() == null) {
+ return null;
+ }
+ return getParser().getCompletionProcessor(
+ new EObjectAdapter(getParserElement()));
+ }
+
+ /**
+ * @generated
+ */
+ public ParserOptions getParserOptions() {
+ return ParserOptions.NONE;
+ }
+
+ /**
+ * @generated
+ */
+ public IParser getParser() {
+ if (parser == null) {
+ parser = ComrelParserProvider
+ .getParser(
+ ComrelElementTypes.SingleQueuedUnit_3054,
+ getParserElement(),
+ ComrelVisualIDRegistry
+ .getType(comrel.diagram.edit.parts.SingleQueuedUnitNameTypeLblStrict4EditPart.VISUAL_ID));
+ }
+ return parser;
+ }
+
+ /**
+ * @generated
+ */
+ protected DirectEditManager getManager() {
+ if (manager == null) {
+ setManager(new TextDirectEditManager(this,
+ TextDirectEditManager.getTextCellEditorClass(this),
+ ComrelEditPartFactory.getTextCellEditorLocator(this)));
+ }
+ return manager;
+ }
+
+ /**
+ * @generated
+ */
+ protected void setManager(DirectEditManager manager) {
+ this.manager = manager;
+ }
+
+ /**
+ * @generated
+ */
+ protected void performDirectEdit() {
+ getManager().show();
+ }
+
+ /**
+ * @generated
+ */
+ protected void performDirectEdit(Point eventLocation) {
+ if (getManager().getClass() == TextDirectEditManager.class) {
+ ((TextDirectEditManager) getManager()).show(eventLocation
+ .getSWTPoint());
+ }
+ }
+
+ /**
+ * @generated
+ */
+ private void performDirectEdit(char initialCharacter) {
+ if (getManager() instanceof TextDirectEditManager) {
+ ((TextDirectEditManager) getManager()).show(initialCharacter);
+ } else {
+ performDirectEdit();
+ }
+ }
+
+ /**
+ * @generated
+ */
+ protected void performDirectEditRequest(Request request) {
+ final Request theRequest = request;
+ try {
+ getEditingDomain().runExclusive(new Runnable() {
+
+ public void run() {
+ if (isActive() && isEditable()) {
+ if (theRequest
+ .getExtendedData()
+ .get(RequestConstants.REQ_DIRECTEDIT_EXTENDEDDATA_INITIAL_CHAR) instanceof Character) {
+ Character initialChar = (Character) theRequest
+ .getExtendedData()
+ .get(RequestConstants.REQ_DIRECTEDIT_EXTENDEDDATA_INITIAL_CHAR);
+ performDirectEdit(initialChar.charValue());
+ } else if ((theRequest instanceof DirectEditRequest)
+ && (getEditText().equals(getLabelText()))) {
+ DirectEditRequest editRequest = (DirectEditRequest) theRequest;
+ performDirectEdit(editRequest.getLocation());
+ } else {
+ performDirectEdit();
+ }
+ }
+ }
+ });
+ } catch (InterruptedException e) {
+ e.printStackTrace();
+ }
+ }
+
+ /**
+ * @generated
+ */
+ protected void refreshVisuals() {
+ super.refreshVisuals();
+ refreshLabel();
+ refreshFont();
+ refreshFontColor();
+ refreshUnderline();
+ refreshStrikeThrough();
+ }
+
+ /**
+ * @generated
+ */
+ protected void refreshLabel() {
+ setLabelTextHelper(getFigure(), getLabelText());
+ setLabelIconHelper(getFigure(), getLabelIcon());
+ Object pdEditPolicy = getEditPolicy(EditPolicy.PRIMARY_DRAG_ROLE);
+ if (pdEditPolicy instanceof ComrelTextSelectionEditPolicy) {
+ ((ComrelTextSelectionEditPolicy) pdEditPolicy).refreshFeedback();
+ }
+ Object sfEditPolicy = getEditPolicy(EditPolicy.SELECTION_FEEDBACK_ROLE);
+ if (sfEditPolicy instanceof ComrelTextSelectionEditPolicy) {
+ ((ComrelTextSelectionEditPolicy) sfEditPolicy).refreshFeedback();
+ }
+ }
+
+ /**
+ * @generated
+ */
+ protected void refreshUnderline() {
+ FontStyle style = (FontStyle) getFontStyleOwnerView().getStyle(
+ NotationPackage.eINSTANCE.getFontStyle());
+ if (style != null && getFigure() instanceof WrappingLabel) {
+ ((WrappingLabel) getFigure()).setTextUnderline(style.isUnderline());
+ }
+ }
+
+ /**
+ * @generated
+ */
+ protected void refreshStrikeThrough() {
+ FontStyle style = (FontStyle) getFontStyleOwnerView().getStyle(
+ NotationPackage.eINSTANCE.getFontStyle());
+ if (style != null && getFigure() instanceof WrappingLabel) {
+ ((WrappingLabel) getFigure()).setTextStrikeThrough(style
+ .isStrikeThrough());
+ }
+ }
+
+ /**
+ * @generated
+ */
+ protected void refreshFont() {
+ FontStyle style = (FontStyle) getFontStyleOwnerView().getStyle(
+ NotationPackage.eINSTANCE.getFontStyle());
+ if (style != null) {
+ FontData fontData = new FontData(style.getFontName(),
+ style.getFontHeight(), (style.isBold() ? SWT.BOLD
+ : SWT.NORMAL)
+ | (style.isItalic() ? SWT.ITALIC : SWT.NORMAL));
+ setFont(fontData);
+ }
+ }
+
+ /**
+ * @generated
+ */
+ protected void setFontColor(Color color) {
+ getFigure().setForegroundColor(color);
+ }
+
+ /**
+ * @generated
+ */
+ protected void addSemanticListeners() {
+ if (getParser() instanceof ISemanticParser) {
+ EObject element = resolveSemanticElement();
+ parserElements = ((ISemanticParser) getParser())
+ .getSemanticElementsBeingParsed(element);
+ for (int i = 0; i < parserElements.size(); i++) {
+ addListenerFilter(
+ "SemanticModel" + i, this, (EObject) parserElements.get(i)); //$NON-NLS-1$
+ }
+ } else {
+ super.addSemanticListeners();
+ }
+ }
+
+ /**
+ * @generated
+ */
+ protected void removeSemanticListeners() {
+ if (parserElements != null) {
+ for (int i = 0; i < parserElements.size(); i++) {
+ removeListenerFilter("SemanticModel" + i); //$NON-NLS-1$
+ }
+ } else {
+ super.removeSemanticListeners();
+ }
+ }
+
+ /**
+ * @generated
+ */
+ protected AccessibleEditPart getAccessibleEditPart() {
+ if (accessibleEP == null) {
+ accessibleEP = new AccessibleGraphicalEditPart() {
+
+ public void getName(AccessibleEvent e) {
+ e.result = getLabelTextHelper(getFigure());
+ }
+ };
+ }
+ return accessibleEP;
+ }
+
+ /**
+ * @generated
+ */
+ private View getFontStyleOwnerView() {
+ return getPrimaryView();
+ }
+
+ /**
+ * @generated
+ */
+ protected void addNotationalListeners() {
+ super.addNotationalListeners();
+ addListenerFilter("PrimaryView", this, getPrimaryView()); //$NON-NLS-1$
+ }
+
+ /**
+ * @generated
+ */
+ protected void removeNotationalListeners() {
+ super.removeNotationalListeners();
+ removeListenerFilter("PrimaryView"); //$NON-NLS-1$
+ }
+
+ /**
+ * @generated
+ */
+ protected void handleNotificationEvent(Notification event) {
+ Object feature = event.getFeature();
+ if (NotationPackage.eINSTANCE.getFontStyle_FontColor().equals(feature)) {
+ Integer c = (Integer) event.getNewValue();
+ setFontColor(DiagramColorRegistry.getInstance().getColor(c));
+ } else if (NotationPackage.eINSTANCE.getFontStyle_Underline().equals(
+ feature)) {
+ refreshUnderline();
+ } else if (NotationPackage.eINSTANCE.getFontStyle_StrikeThrough()
+ .equals(feature)) {
+ refreshStrikeThrough();
+ } else if (NotationPackage.eINSTANCE.getFontStyle_FontHeight().equals(
+ feature)
+ || NotationPackage.eINSTANCE.getFontStyle_FontName().equals(
+ feature)
+ || NotationPackage.eINSTANCE.getFontStyle_Bold()
+ .equals(feature)
+ || NotationPackage.eINSTANCE.getFontStyle_Italic().equals(
+ feature)) {
+ refreshFont();
+ } else {
+ if (getParser() != null
+ && getParser().isAffectingEvent(event,
+ getParserOptions().intValue())) {
+ refreshLabel();
+ }
+ if (getParser() instanceof ISemanticParser) {
+ ISemanticParser modelParser = (ISemanticParser) getParser();
+ if (modelParser.areSemanticElementsAffected(null, event)) {
+ removeSemanticListeners();
+ if (resolveSemanticElement() != null) {
+ addSemanticListeners();
+ }
+ refreshLabel();
+ }
+ }
+ }
+ super.handleNotificationEvent(event);
+ }
+
+ /**
+ * @generated
+ */
+ protected IFigure createFigure() {
+ // Parent should assign one using setLabel() method
+ return null;
+ }
+
+}
diff --git a/org.eclipse.emf.refactor.comrel.diagram/src/comrel/diagram/edit/parts/SingleQueuedUnitNameTypeLblStrict5EditPart.java b/org.eclipse.emf.refactor.comrel.diagram/src/comrel/diagram/edit/parts/SingleQueuedUnitNameTypeLblStrict5EditPart.java
new file mode 100644
index 0000000..b5942f2
--- /dev/null
+++ b/org.eclipse.emf.refactor.comrel.diagram/src/comrel/diagram/edit/parts/SingleQueuedUnitNameTypeLblStrict5EditPart.java
@@ -0,0 +1,576 @@
+/*
+ *
+ */
+package comrel.diagram.edit.parts;
+
+import java.util.Collections;
+import java.util.List;
+
+import org.eclipse.draw2d.IFigure;
+import org.eclipse.draw2d.Label;
+import org.eclipse.draw2d.geometry.Point;
+import org.eclipse.emf.common.notify.Notification;
+import org.eclipse.emf.ecore.EObject;
+import org.eclipse.emf.transaction.RunnableWithResult;
+import org.eclipse.gef.AccessibleEditPart;
+import org.eclipse.gef.EditPolicy;
+import org.eclipse.gef.Request;
+import org.eclipse.gef.requests.DirectEditRequest;
+import org.eclipse.gef.tools.DirectEditManager;
+import org.eclipse.gmf.runtime.common.ui.services.parser.IParser;
+import org.eclipse.gmf.runtime.common.ui.services.parser.IParserEditStatus;
+import org.eclipse.gmf.runtime.common.ui.services.parser.ParserEditStatus;
+import org.eclipse.gmf.runtime.common.ui.services.parser.ParserOptions;
+import org.eclipse.gmf.runtime.diagram.ui.editparts.CompartmentEditPart;
+import org.eclipse.gmf.runtime.diagram.ui.editparts.IGraphicalEditPart;
+import org.eclipse.gmf.runtime.diagram.ui.editparts.ITextAwareEditPart;
+import org.eclipse.gmf.runtime.diagram.ui.editpolicies.LabelDirectEditPolicy;
+import org.eclipse.gmf.runtime.diagram.ui.l10n.DiagramColorRegistry;
+import org.eclipse.gmf.runtime.diagram.ui.requests.RequestConstants;
+import org.eclipse.gmf.runtime.diagram.ui.tools.TextDirectEditManager;
+import org.eclipse.gmf.runtime.draw2d.ui.figures.WrappingLabel;
+import org.eclipse.gmf.runtime.emf.core.util.EObjectAdapter;
+import org.eclipse.gmf.runtime.emf.ui.services.parser.ISemanticParser;
+import org.eclipse.gmf.runtime.notation.FontStyle;
+import org.eclipse.gmf.runtime.notation.NotationPackage;
+import org.eclipse.gmf.runtime.notation.View;
+import org.eclipse.jface.text.contentassist.IContentAssistProcessor;
+import org.eclipse.jface.viewers.ICellEditorValidator;
+import org.eclipse.swt.SWT;
+import org.eclipse.swt.accessibility.AccessibleEvent;
+import org.eclipse.swt.graphics.Color;
+import org.eclipse.swt.graphics.FontData;
+import org.eclipse.swt.graphics.Image;
+
+import comrel.diagram.edit.policies.ComrelTextSelectionEditPolicy;
+import comrel.diagram.part.ComrelVisualIDRegistry;
+import comrel.diagram.providers.ComrelElementTypes;
+import comrel.diagram.providers.ComrelParserProvider;
+
+/**
+ * @generated
+ */
+public class SingleQueuedUnitNameTypeLblStrict5EditPart extends
+ CompartmentEditPart implements ITextAwareEditPart {
+
+ /**
+ * @generated
+ */
+ public static final int VISUAL_ID = 5063;
+
+ /**
+ * @generated
+ */
+ private DirectEditManager manager;
+
+ /**
+ * @generated
+ */
+ private IParser parser;
+
+ /**
+ * @generated
+ */
+ private List<?> parserElements;
+
+ /**
+ * @generated
+ */
+ private String defaultText;
+
+ /**
+ * @generated
+ */
+ public SingleQueuedUnitNameTypeLblStrict5EditPart(View view) {
+ super(view);
+ }
+
+ /**
+ * @generated
+ */
+ protected void createDefaultEditPolicies() {
+ super.createDefaultEditPolicies();
+ installEditPolicy(EditPolicy.SELECTION_FEEDBACK_ROLE,
+ new ComrelTextSelectionEditPolicy());
+ installEditPolicy(EditPolicy.DIRECT_EDIT_ROLE,
+ new LabelDirectEditPolicy());
+ installEditPolicy(EditPolicy.PRIMARY_DRAG_ROLE,
+ new CompositeRefactoringEditPart.NodeLabelDragPolicy());
+ }
+
+ /**
+ * @generated
+ */
+ protected String getLabelTextHelper(IFigure figure) {
+ if (figure instanceof WrappingLabel) {
+ return ((WrappingLabel) figure).getText();
+ } else {
+ return ((Label) figure).getText();
+ }
+ }
+
+ /**
+ * @generated
+ */
+ protected void setLabelTextHelper(IFigure figure, String text) {
+ if (figure instanceof WrappingLabel) {
+ ((WrappingLabel) figure).setText(text);
+ } else {
+ ((Label) figure).setText(text);
+ }
+ }
+
+ /**
+ * @generated
+ */
+ protected Image getLabelIconHelper(IFigure figure) {
+ if (figure instanceof WrappingLabel) {
+ return ((WrappingLabel) figure).getIcon();
+ } else {
+ return ((Label) figure).getIcon();
+ }
+ }
+
+ /**
+ * @generated
+ */
+ protected void setLabelIconHelper(IFigure figure, Image icon) {
+ if (figure instanceof WrappingLabel) {
+ ((WrappingLabel) figure).setIcon(icon);
+ } else {
+ ((Label) figure).setIcon(icon);
+ }
+ }
+
+ /**
+ * @generated
+ */
+ public void setLabel(WrappingLabel figure) {
+ unregisterVisuals();
+ setFigure(figure);
+ defaultText = getLabelTextHelper(figure);
+ registerVisuals();
+ refreshVisuals();
+ }
+
+ /**
+ * @generated
+ */
+ @SuppressWarnings("rawtypes")
+ protected List getModelChildren() {
+ return Collections.EMPTY_LIST;
+ }
+
+ /**
+ * @generated
+ */
+ public IGraphicalEditPart getChildBySemanticHint(String semanticHint) {
+ return null;
+ }
+
+ /**
+ * @generated
+ */
+ protected EObject getParserElement() {
+ return resolveSemanticElement();
+ }
+
+ /**
+ * @generated
+ */
+ protected Image getLabelIcon() {
+ return null;
+ }
+
+ /**
+ * @generated
+ */
+ protected String getLabelText() {
+ String text = null;
+ EObject parserElement = getParserElement();
+ if (parserElement != null && getParser() != null) {
+ text = getParser().getPrintString(
+ new EObjectAdapter(parserElement),
+ getParserOptions().intValue());
+ }
+ if (text == null || text.length() == 0) {
+ text = defaultText;
+ }
+ return text;
+ }
+
+ /**
+ * @generated
+ */
+ public void setLabelText(String text) {
+ setLabelTextHelper(getFigure(), text);
+ Object pdEditPolicy = getEditPolicy(EditPolicy.PRIMARY_DRAG_ROLE);
+ if (pdEditPolicy instanceof ComrelTextSelectionEditPolicy) {
+ ((ComrelTextSelectionEditPolicy) pdEditPolicy).refreshFeedback();
+ }
+ Object sfEditPolicy = getEditPolicy(EditPolicy.SELECTION_FEEDBACK_ROLE);
+ if (sfEditPolicy instanceof ComrelTextSelectionEditPolicy) {
+ ((ComrelTextSelectionEditPolicy) sfEditPolicy).refreshFeedback();
+ }
+ }
+
+ /**
+ * @generated
+ */
+ public String getEditText() {
+ if (getParserElement() == null || getParser() == null) {
+ return ""; //$NON-NLS-1$
+ }
+ return getParser().getEditString(
+ new EObjectAdapter(getParserElement()),
+ getParserOptions().intValue());
+ }
+
+ /**
+ * @generated
+ */
+ protected boolean isEditable() {
+ return getParser() != null;
+ }
+
+ /**
+ * @generated
+ */
+ public ICellEditorValidator getEditTextValidator() {
+ return new ICellEditorValidator() {
+
+ public String isValid(final Object value) {
+ if (value instanceof String) {
+ final EObject element = getParserElement();
+ final IParser parser = getParser();
+ try {
+ IParserEditStatus valid = (IParserEditStatus) getEditingDomain()
+ .runExclusive(
+ new RunnableWithResult.Impl<IParserEditStatus>() {
+
+ public void run() {
+ setResult(parser
+ .isValidEditString(
+ new EObjectAdapter(
+ element),
+ (String) value));
+ }
+ });
+ return valid.getCode() == ParserEditStatus.EDITABLE ? null
+ : valid.getMessage();
+ } catch (InterruptedException ie) {
+ ie.printStackTrace();
+ }
+ }
+
+ // shouldn't get here
+ return null;
+ }
+ };
+ }
+
+ /**
+ * @generated
+ */
+ public IContentAssistProcessor getCompletionProcessor() {
+ if (getParserElement() == null || getParser() == null) {
+ return null;
+ }
+ return getParser().getCompletionProcessor(
+ new EObjectAdapter(getParserElement()));
+ }
+
+ /**
+ * @generated
+ */
+ public ParserOptions getParserOptions() {
+ return ParserOptions.NONE;
+ }
+
+ /**
+ * @generated
+ */
+ public IParser getParser() {
+ if (parser == null) {
+ parser = ComrelParserProvider
+ .getParser(
+ ComrelElementTypes.SingleQueuedUnit_3059,
+ getParserElement(),
+ ComrelVisualIDRegistry
+ .getType(comrel.diagram.edit.parts.SingleQueuedUnitNameTypeLblStrict5EditPart.VISUAL_ID));
+ }
+ return parser;
+ }
+
+ /**
+ * @generated
+ */
+ protected DirectEditManager getManager() {
+ if (manager == null) {
+ setManager(new TextDirectEditManager(this,
+ TextDirectEditManager.getTextCellEditorClass(this),
+ ComrelEditPartFactory.getTextCellEditorLocator(this)));
+ }
+ return manager;
+ }
+
+ /**
+ * @generated
+ */
+ protected void setManager(DirectEditManager manager) {
+ this.manager = manager;
+ }
+
+ /**
+ * @generated
+ */
+ protected void performDirectEdit() {
+ getManager().show();
+ }
+
+ /**
+ * @generated
+ */
+ protected void performDirectEdit(Point eventLocation) {
+ if (getManager().getClass() == TextDirectEditManager.class) {
+ ((TextDirectEditManager) getManager()).show(eventLocation
+ .getSWTPoint());
+ }
+ }
+
+ /**
+ * @generated
+ */
+ private void performDirectEdit(char initialCharacter) {
+ if (getManager() instanceof TextDirectEditManager) {
+ ((TextDirectEditManager) getManager()).show(initialCharacter);
+ } else {
+ performDirectEdit();
+ }
+ }
+
+ /**
+ * @generated
+ */
+ protected void performDirectEditRequest(Request request) {
+ final Request theRequest = request;
+ try {
+ getEditingDomain().runExclusive(new Runnable() {
+
+ public void run() {
+ if (isActive() && isEditable()) {
+ if (theRequest
+ .getExtendedData()
+ .get(RequestConstants.REQ_DIRECTEDIT_EXTENDEDDATA_INITIAL_CHAR) instanceof Character) {
+ Character initialChar = (Character) theRequest
+ .getExtendedData()
+ .get(RequestConstants.REQ_DIRECTEDIT_EXTENDEDDATA_INITIAL_CHAR);
+ performDirectEdit(initialChar.charValue());
+ } else if ((theRequest instanceof DirectEditRequest)
+ && (getEditText().equals(getLabelText()))) {
+ DirectEditRequest editRequest = (DirectEditRequest) theRequest;
+ performDirectEdit(editRequest.getLocation());
+ } else {
+ performDirectEdit();
+ }
+ }
+ }
+ });
+ } catch (InterruptedException e) {
+ e.printStackTrace();
+ }
+ }
+
+ /**
+ * @generated
+ */
+ protected void refreshVisuals() {
+ super.refreshVisuals();
+ refreshLabel();
+ refreshFont();
+ refreshFontColor();
+ refreshUnderline();
+ refreshStrikeThrough();
+ }
+
+ /**
+ * @generated
+ */
+ protected void refreshLabel() {
+ setLabelTextHelper(getFigure(), getLabelText());
+ setLabelIconHelper(getFigure(), getLabelIcon());
+ Object pdEditPolicy = getEditPolicy(EditPolicy.PRIMARY_DRAG_ROLE);
+ if (pdEditPolicy instanceof ComrelTextSelectionEditPolicy) {
+ ((ComrelTextSelectionEditPolicy) pdEditPolicy).refreshFeedback();
+ }
+ Object sfEditPolicy = getEditPolicy(EditPolicy.SELECTION_FEEDBACK_ROLE);
+ if (sfEditPolicy instanceof ComrelTextSelectionEditPolicy) {
+ ((ComrelTextSelectionEditPolicy) sfEditPolicy).refreshFeedback();
+ }
+ }
+
+ /**
+ * @generated
+ */
+ protected void refreshUnderline() {
+ FontStyle style = (FontStyle) getFontStyleOwnerView().getStyle(
+ NotationPackage.eINSTANCE.getFontStyle());
+ if (style != null && getFigure() instanceof WrappingLabel) {
+ ((WrappingLabel) getFigure()).setTextUnderline(style.isUnderline());
+ }
+ }
+
+ /**
+ * @generated
+ */
+ protected void refreshStrikeThrough() {
+ FontStyle style = (FontStyle) getFontStyleOwnerView().getStyle(
+ NotationPackage.eINSTANCE.getFontStyle());
+ if (style != null && getFigure() instanceof WrappingLabel) {
+ ((WrappingLabel) getFigure()).setTextStrikeThrough(style
+ .isStrikeThrough());
+ }
+ }
+
+ /**
+ * @generated
+ */
+ protected void refreshFont() {
+ FontStyle style = (FontStyle) getFontStyleOwnerView().getStyle(
+ NotationPackage.eINSTANCE.getFontStyle());
+ if (style != null) {
+ FontData fontData = new FontData(style.getFontName(),
+ style.getFontHeight(), (style.isBold() ? SWT.BOLD
+ : SWT.NORMAL)
+ | (style.isItalic() ? SWT.ITALIC : SWT.NORMAL));
+ setFont(fontData);
+ }
+ }
+
+ /**
+ * @generated
+ */
+ protected void setFontColor(Color color) {
+ getFigure().setForegroundColor(color);
+ }
+
+ /**
+ * @generated
+ */
+ protected void addSemanticListeners() {
+ if (getParser() instanceof ISemanticParser) {
+ EObject element = resolveSemanticElement();
+ parserElements = ((ISemanticParser) getParser())
+ .getSemanticElementsBeingParsed(element);
+ for (int i = 0; i < parserElements.size(); i++) {
+ addListenerFilter(
+ "SemanticModel" + i, this, (EObject) parserElements.get(i)); //$NON-NLS-1$
+ }
+ } else {
+ super.addSemanticListeners();
+ }
+ }
+
+ /**
+ * @generated
+ */
+ protected void removeSemanticListeners() {
+ if (parserElements != null) {
+ for (int i = 0; i < parserElements.size(); i++) {
+ removeListenerFilter("SemanticModel" + i); //$NON-NLS-1$
+ }
+ } else {
+ super.removeSemanticListeners();
+ }
+ }
+
+ /**
+ * @generated
+ */
+ protected AccessibleEditPart getAccessibleEditPart() {
+ if (accessibleEP == null) {
+ accessibleEP = new AccessibleGraphicalEditPart() {
+
+ public void getName(AccessibleEvent e) {
+ e.result = getLabelTextHelper(getFigure());
+ }
+ };
+ }
+ return accessibleEP;
+ }
+
+ /**
+ * @generated
+ */
+ private View getFontStyleOwnerView() {
+ return getPrimaryView();
+ }
+
+ /**
+ * @generated
+ */
+ protected void addNotationalListeners() {
+ super.addNotationalListeners();
+ addListenerFilter("PrimaryView", this, getPrimaryView()); //$NON-NLS-1$
+ }
+
+ /**
+ * @generated
+ */
+ protected void removeNotationalListeners() {
+ super.removeNotationalListeners();
+ removeListenerFilter("PrimaryView"); //$NON-NLS-1$
+ }
+
+ /**
+ * @generated
+ */
+ protected void handleNotificationEvent(Notification event) {
+ Object feature = event.getFeature();
+ if (NotationPackage.eINSTANCE.getFontStyle_FontColor().equals(feature)) {
+ Integer c = (Integer) event.getNewValue();
+ setFontColor(DiagramColorRegistry.getInstance().getColor(c));
+ } else if (NotationPackage.eINSTANCE.getFontStyle_Underline().equals(
+ feature)) {
+ refreshUnderline();
+ } else if (NotationPackage.eINSTANCE.getFontStyle_StrikeThrough()
+ .equals(feature)) {
+ refreshStrikeThrough();
+ } else if (NotationPackage.eINSTANCE.getFontStyle_FontHeight().equals(
+ feature)
+ || NotationPackage.eINSTANCE.getFontStyle_FontName().equals(
+ feature)
+ || NotationPackage.eINSTANCE.getFontStyle_Bold()
+ .equals(feature)
+ || NotationPackage.eINSTANCE.getFontStyle_Italic().equals(
+ feature)) {
+ refreshFont();
+ } else {
+ if (getParser() != null
+ && getParser().isAffectingEvent(event,
+ getParserOptions().intValue())) {
+ refreshLabel();
+ }
+ if (getParser() instanceof ISemanticParser) {
+ ISemanticParser modelParser = (ISemanticParser) getParser();
+ if (modelParser.areSemanticElementsAffected(null, event)) {
+ removeSemanticListeners();
+ if (resolveSemanticElement() != null) {
+ addSemanticListeners();
+ }
+ refreshLabel();
+ }
+ }
+ }
+ super.handleNotificationEvent(event);
+ }
+
+ /**
+ * @generated
+ */
+ protected IFigure createFigure() {
+ // Parent should assign one using setLabel() method
+ return null;
+ }
+
+}
diff --git a/org.eclipse.emf.refactor.comrel.diagram/src/comrel/diagram/edit/parts/SingleQueuedUnitNameTypeLblStrict6EditPart.java b/org.eclipse.emf.refactor.comrel.diagram/src/comrel/diagram/edit/parts/SingleQueuedUnitNameTypeLblStrict6EditPart.java
new file mode 100644
index 0000000..d394f93
--- /dev/null
+++ b/org.eclipse.emf.refactor.comrel.diagram/src/comrel/diagram/edit/parts/SingleQueuedUnitNameTypeLblStrict6EditPart.java
@@ -0,0 +1,576 @@
+/*
+ *
+ */
+package comrel.diagram.edit.parts;
+
+import java.util.Collections;
+import java.util.List;
+
+import org.eclipse.draw2d.IFigure;
+import org.eclipse.draw2d.Label;
+import org.eclipse.draw2d.geometry.Point;
+import org.eclipse.emf.common.notify.Notification;
+import org.eclipse.emf.ecore.EObject;
+import org.eclipse.emf.transaction.RunnableWithResult;
+import org.eclipse.gef.AccessibleEditPart;
+import org.eclipse.gef.EditPolicy;
+import org.eclipse.gef.Request;
+import org.eclipse.gef.requests.DirectEditRequest;
+import org.eclipse.gef.tools.DirectEditManager;
+import org.eclipse.gmf.runtime.common.ui.services.parser.IParser;
+import org.eclipse.gmf.runtime.common.ui.services.parser.IParserEditStatus;
+import org.eclipse.gmf.runtime.common.ui.services.parser.ParserEditStatus;
+import org.eclipse.gmf.runtime.common.ui.services.parser.ParserOptions;
+import org.eclipse.gmf.runtime.diagram.ui.editparts.CompartmentEditPart;
+import org.eclipse.gmf.runtime.diagram.ui.editparts.IGraphicalEditPart;
+import org.eclipse.gmf.runtime.diagram.ui.editparts.ITextAwareEditPart;
+import org.eclipse.gmf.runtime.diagram.ui.editpolicies.LabelDirectEditPolicy;
+import org.eclipse.gmf.runtime.diagram.ui.l10n.DiagramColorRegistry;
+import org.eclipse.gmf.runtime.diagram.ui.requests.RequestConstants;
+import org.eclipse.gmf.runtime.diagram.ui.tools.TextDirectEditManager;
+import org.eclipse.gmf.runtime.draw2d.ui.figures.WrappingLabel;
+import org.eclipse.gmf.runtime.emf.core.util.EObjectAdapter;
+import org.eclipse.gmf.runtime.emf.ui.services.parser.ISemanticParser;
+import org.eclipse.gmf.runtime.notation.FontStyle;
+import org.eclipse.gmf.runtime.notation.NotationPackage;
+import org.eclipse.gmf.runtime.notation.View;
+import org.eclipse.jface.text.contentassist.IContentAssistProcessor;
+import org.eclipse.jface.viewers.ICellEditorValidator;
+import org.eclipse.swt.SWT;
+import org.eclipse.swt.accessibility.AccessibleEvent;
+import org.eclipse.swt.graphics.Color;
+import org.eclipse.swt.graphics.FontData;
+import org.eclipse.swt.graphics.Image;
+
+import comrel.diagram.edit.policies.ComrelTextSelectionEditPolicy;
+import comrel.diagram.part.ComrelVisualIDRegistry;
+import comrel.diagram.providers.ComrelElementTypes;
+import comrel.diagram.providers.ComrelParserProvider;
+
+/**
+ * @generated
+ */
+public class SingleQueuedUnitNameTypeLblStrict6EditPart extends
+ CompartmentEditPart implements ITextAwareEditPart {
+
+ /**
+ * @generated
+ */
+ public static final int VISUAL_ID = 5061;
+
+ /**
+ * @generated
+ */
+ private DirectEditManager manager;
+
+ /**
+ * @generated
+ */
+ private IParser parser;
+
+ /**
+ * @generated
+ */
+ private List<?> parserElements;
+
+ /**
+ * @generated
+ */
+ private String defaultText;
+
+ /**
+ * @generated
+ */
+ public SingleQueuedUnitNameTypeLblStrict6EditPart(View view) {
+ super(view);
+ }
+
+ /**
+ * @generated
+ */
+ protected void createDefaultEditPolicies() {
+ super.createDefaultEditPolicies();
+ installEditPolicy(EditPolicy.SELECTION_FEEDBACK_ROLE,
+ new ComrelTextSelectionEditPolicy());
+ installEditPolicy(EditPolicy.DIRECT_EDIT_ROLE,
+ new LabelDirectEditPolicy());
+ installEditPolicy(EditPolicy.PRIMARY_DRAG_ROLE,
+ new CompositeRefactoringEditPart.NodeLabelDragPolicy());
+ }
+
+ /**
+ * @generated
+ */
+ protected String getLabelTextHelper(IFigure figure) {
+ if (figure instanceof WrappingLabel) {
+ return ((WrappingLabel) figure).getText();
+ } else {
+ return ((Label) figure).getText();
+ }
+ }
+
+ /**
+ * @generated
+ */
+ protected void setLabelTextHelper(IFigure figure, String text) {
+ if (figure instanceof WrappingLabel) {
+ ((WrappingLabel) figure).setText(text);
+ } else {
+ ((Label) figure).setText(text);
+ }
+ }
+
+ /**
+ * @generated
+ */
+ protected Image getLabelIconHelper(IFigure figure) {
+ if (figure instanceof WrappingLabel) {
+ return ((WrappingLabel) figure).getIcon();
+ } else {
+ return ((Label) figure).getIcon();
+ }
+ }
+
+ /**
+ * @generated
+ */
+ protected void setLabelIconHelper(IFigure figure, Image icon) {
+ if (figure instanceof WrappingLabel) {
+ ((WrappingLabel) figure).setIcon(icon);
+ } else {
+ ((Label) figure).setIcon(icon);
+ }
+ }
+
+ /**
+ * @generated
+ */
+ public void setLabel(WrappingLabel figure) {
+ unregisterVisuals();
+ setFigure(figure);
+ defaultText = getLabelTextHelper(figure);
+ registerVisuals();
+ refreshVisuals();
+ }
+
+ /**
+ * @generated
+ */
+ @SuppressWarnings("rawtypes")
+ protected List getModelChildren() {
+ return Collections.EMPTY_LIST;
+ }
+
+ /**
+ * @generated
+ */
+ public IGraphicalEditPart getChildBySemanticHint(String semanticHint) {
+ return null;
+ }
+
+ /**
+ * @generated
+ */
+ protected EObject getParserElement() {
+ return resolveSemanticElement();
+ }
+
+ /**
+ * @generated
+ */
+ protected Image getLabelIcon() {
+ return null;
+ }
+
+ /**
+ * @generated
+ */
+ protected String getLabelText() {
+ String text = null;
+ EObject parserElement = getParserElement();
+ if (parserElement != null && getParser() != null) {
+ text = getParser().getPrintString(
+ new EObjectAdapter(parserElement),
+ getParserOptions().intValue());
+ }
+ if (text == null || text.length() == 0) {
+ text = defaultText;
+ }
+ return text;
+ }
+
+ /**
+ * @generated
+ */
+ public void setLabelText(String text) {
+ setLabelTextHelper(getFigure(), text);
+ Object pdEditPolicy = getEditPolicy(EditPolicy.PRIMARY_DRAG_ROLE);
+ if (pdEditPolicy instanceof ComrelTextSelectionEditPolicy) {
+ ((ComrelTextSelectionEditPolicy) pdEditPolicy).refreshFeedback();
+ }
+ Object sfEditPolicy = getEditPolicy(EditPolicy.SELECTION_FEEDBACK_ROLE);
+ if (sfEditPolicy instanceof ComrelTextSelectionEditPolicy) {
+ ((ComrelTextSelectionEditPolicy) sfEditPolicy).refreshFeedback();
+ }
+ }
+
+ /**
+ * @generated
+ */
+ public String getEditText() {
+ if (getParserElement() == null || getParser() == null) {
+ return ""; //$NON-NLS-1$
+ }
+ return getParser().getEditString(
+ new EObjectAdapter(getParserElement()),
+ getParserOptions().intValue());
+ }
+
+ /**
+ * @generated
+ */
+ protected boolean isEditable() {
+ return getParser() != null;
+ }
+
+ /**
+ * @generated
+ */
+ public ICellEditorValidator getEditTextValidator() {
+ return new ICellEditorValidator() {
+
+ public String isValid(final Object value) {
+ if (value instanceof String) {
+ final EObject element = getParserElement();
+ final IParser parser = getParser();
+ try {
+ IParserEditStatus valid = (IParserEditStatus) getEditingDomain()
+ .runExclusive(
+ new RunnableWithResult.Impl<IParserEditStatus>() {
+
+ public void run() {
+ setResult(parser
+ .isValidEditString(
+ new EObjectAdapter(
+ element),
+ (String) value));
+ }
+ });
+ return valid.getCode() == ParserEditStatus.EDITABLE ? null
+ : valid.getMessage();
+ } catch (InterruptedException ie) {
+ ie.printStackTrace();
+ }
+ }
+
+ // shouldn't get here
+ return null;
+ }
+ };
+ }
+
+ /**
+ * @generated
+ */
+ public IContentAssistProcessor getCompletionProcessor() {
+ if (getParserElement() == null || getParser() == null) {
+ return null;
+ }
+ return getParser().getCompletionProcessor(
+ new EObjectAdapter(getParserElement()));
+ }
+
+ /**
+ * @generated
+ */
+ public ParserOptions getParserOptions() {
+ return ParserOptions.NONE;
+ }
+
+ /**
+ * @generated
+ */
+ public IParser getParser() {
+ if (parser == null) {
+ parser = ComrelParserProvider
+ .getParser(
+ ComrelElementTypes.SingleQueuedUnit_3065,
+ getParserElement(),
+ ComrelVisualIDRegistry
+ .getType(comrel.diagram.edit.parts.SingleQueuedUnitNameTypeLblStrict6EditPart.VISUAL_ID));
+ }
+ return parser;
+ }
+
+ /**
+ * @generated
+ */
+ protected DirectEditManager getManager() {
+ if (manager == null) {
+ setManager(new TextDirectEditManager(this,
+ TextDirectEditManager.getTextCellEditorClass(this),
+ ComrelEditPartFactory.getTextCellEditorLocator(this)));
+ }
+ return manager;
+ }
+
+ /**
+ * @generated
+ */
+ protected void setManager(DirectEditManager manager) {
+ this.manager = manager;
+ }
+
+ /**
+ * @generated
+ */
+ protected void performDirectEdit() {
+ getManager().show();
+ }
+
+ /**
+ * @generated
+ */
+ protected void performDirectEdit(Point eventLocation) {
+ if (getManager().getClass() == TextDirectEditManager.class) {
+ ((TextDirectEditManager) getManager()).show(eventLocation
+ .getSWTPoint());
+ }
+ }
+
+ /**
+ * @generated
+ */
+ private void performDirectEdit(char initialCharacter) {
+ if (getManager() instanceof TextDirectEditManager) {
+ ((TextDirectEditManager) getManager()).show(initialCharacter);
+ } else {
+ performDirectEdit();
+ }
+ }
+
+ /**
+ * @generated
+ */
+ protected void performDirectEditRequest(Request request) {
+ final Request theRequest = request;
+ try {
+ getEditingDomain().runExclusive(new Runnable() {
+
+ public void run() {
+ if (isActive() && isEditable()) {
+ if (theRequest
+ .getExtendedData()
+ .get(RequestConstants.REQ_DIRECTEDIT_EXTENDEDDATA_INITIAL_CHAR) instanceof Character) {
+ Character initialChar = (Character) theRequest
+ .getExtendedData()
+ .get(RequestConstants.REQ_DIRECTEDIT_EXTENDEDDATA_INITIAL_CHAR);
+ performDirectEdit(initialChar.charValue());
+ } else if ((theRequest instanceof DirectEditRequest)
+ && (getEditText().equals(getLabelText()))) {
+ DirectEditRequest editRequest = (DirectEditRequest) theRequest;
+ performDirectEdit(editRequest.getLocation());
+ } else {
+ performDirectEdit();
+ }
+ }
+ }
+ });
+ } catch (InterruptedException e) {
+ e.printStackTrace();
+ }
+ }
+
+ /**
+ * @generated
+ */
+ protected void refreshVisuals() {
+ super.refreshVisuals();
+ refreshLabel();
+ refreshFont();
+ refreshFontColor();
+ refreshUnderline();
+ refreshStrikeThrough();
+ }
+
+ /**
+ * @generated
+ */
+ protected void refreshLabel() {
+ setLabelTextHelper(getFigure(), getLabelText());
+ setLabelIconHelper(getFigure(), getLabelIcon());
+ Object pdEditPolicy = getEditPolicy(EditPolicy.PRIMARY_DRAG_ROLE);
+ if (pdEditPolicy instanceof ComrelTextSelectionEditPolicy) {
+ ((ComrelTextSelectionEditPolicy) pdEditPolicy).refreshFeedback();
+ }
+ Object sfEditPolicy = getEditPolicy(EditPolicy.SELECTION_FEEDBACK_ROLE);
+ if (sfEditPolicy instanceof ComrelTextSelectionEditPolicy) {
+ ((ComrelTextSelectionEditPolicy) sfEditPolicy).refreshFeedback();
+ }
+ }
+
+ /**
+ * @generated
+ */
+ protected void refreshUnderline() {
+ FontStyle style = (FontStyle) getFontStyleOwnerView().getStyle(
+ NotationPackage.eINSTANCE.getFontStyle());
+ if (style != null && getFigure() instanceof WrappingLabel) {
+ ((WrappingLabel) getFigure()).setTextUnderline(style.isUnderline());
+ }
+ }
+
+ /**
+ * @generated
+ */
+ protected void refreshStrikeThrough() {
+ FontStyle style = (FontStyle) getFontStyleOwnerView().getStyle(
+ NotationPackage.eINSTANCE.getFontStyle());
+ if (style != null && getFigure() instanceof WrappingLabel) {
+ ((WrappingLabel) getFigure()).setTextStrikeThrough(style
+ .isStrikeThrough());
+ }
+ }
+
+ /**
+ * @generated
+ */
+ protected void refreshFont() {
+ FontStyle style = (FontStyle) getFontStyleOwnerView().getStyle(
+ NotationPackage.eINSTANCE.getFontStyle());
+ if (style != null) {
+ FontData fontData = new FontData(style.getFontName(),
+ style.getFontHeight(), (style.isBold() ? SWT.BOLD
+ : SWT.NORMAL)
+ | (style.isItalic() ? SWT.ITALIC : SWT.NORMAL));
+ setFont(fontData);
+ }
+ }
+
+ /**
+ * @generated
+ */
+ protected void setFontColor(Color color) {
+ getFigure().setForegroundColor(color);
+ }
+
+ /**
+ * @generated
+ */
+ protected void addSemanticListeners() {
+ if (getParser() instanceof ISemanticParser) {
+ EObject element = resolveSemanticElement();
+ parserElements = ((ISemanticParser) getParser())
+ .getSemanticElementsBeingParsed(element);
+ for (int i = 0; i < parserElements.size(); i++) {
+ addListenerFilter(
+ "SemanticModel" + i, this, (EObject) parserElements.get(i)); //$NON-NLS-1$
+ }
+ } else {
+ super.addSemanticListeners();
+ }
+ }
+
+ /**
+ * @generated
+ */
+ protected void removeSemanticListeners() {
+ if (parserElements != null) {
+ for (int i = 0; i < parserElements.size(); i++) {
+ removeListenerFilter("SemanticModel" + i); //$NON-NLS-1$
+ }
+ } else {
+ super.removeSemanticListeners();
+ }
+ }
+
+ /**
+ * @generated
+ */
+ protected AccessibleEditPart getAccessibleEditPart() {
+ if (accessibleEP == null) {
+ accessibleEP = new AccessibleGraphicalEditPart() {
+
+ public void getName(AccessibleEvent e) {
+ e.result = getLabelTextHelper(getFigure());
+ }
+ };
+ }
+ return accessibleEP;
+ }
+
+ /**
+ * @generated
+ */
+ private View getFontStyleOwnerView() {
+ return getPrimaryView();
+ }
+
+ /**
+ * @generated
+ */
+ protected void addNotationalListeners() {
+ super.addNotationalListeners();
+ addListenerFilter("PrimaryView", this, getPrimaryView()); //$NON-NLS-1$
+ }
+
+ /**
+ * @generated
+ */
+ protected void removeNotationalListeners() {
+ super.removeNotationalListeners();
+ removeListenerFilter("PrimaryView"); //$NON-NLS-1$
+ }
+
+ /**
+ * @generated
+ */
+ protected void handleNotificationEvent(Notification event) {
+ Object feature = event.getFeature();
+ if (NotationPackage.eINSTANCE.getFontStyle_FontColor().equals(feature)) {
+ Integer c = (Integer) event.getNewValue();
+ setFontColor(DiagramColorRegistry.getInstance().getColor(c));
+ } else if (NotationPackage.eINSTANCE.getFontStyle_Underline().equals(
+ feature)) {
+ refreshUnderline();
+ } else if (NotationPackage.eINSTANCE.getFontStyle_StrikeThrough()
+ .equals(feature)) {
+ refreshStrikeThrough();
+ } else if (NotationPackage.eINSTANCE.getFontStyle_FontHeight().equals(
+ feature)
+ || NotationPackage.eINSTANCE.getFontStyle_FontName().equals(
+ feature)
+ || NotationPackage.eINSTANCE.getFontStyle_Bold()
+ .equals(feature)
+ || NotationPackage.eINSTANCE.getFontStyle_Italic().equals(
+ feature)) {
+ refreshFont();
+ } else {
+ if (getParser() != null
+ && getParser().isAffectingEvent(event,
+ getParserOptions().intValue())) {
+ refreshLabel();
+ }
+ if (getParser() instanceof ISemanticParser) {
+ ISemanticParser modelParser = (ISemanticParser) getParser();
+ if (modelParser.areSemanticElementsAffected(null, event)) {
+ removeSemanticListeners();
+ if (resolveSemanticElement() != null) {
+ addSemanticListeners();
+ }
+ refreshLabel();
+ }
+ }
+ }
+ super.handleNotificationEvent(event);
+ }
+
+ /**
+ * @generated
+ */
+ protected IFigure createFigure() {
+ // Parent should assign one using setLabel() method
+ return null;
+ }
+
+}
diff --git a/org.eclipse.emf.refactor.comrel.diagram/src/comrel/diagram/edit/parts/SingleQueuedUnitNameTypeLblStrict7EditPart.java b/org.eclipse.emf.refactor.comrel.diagram/src/comrel/diagram/edit/parts/SingleQueuedUnitNameTypeLblStrict7EditPart.java
new file mode 100644
index 0000000..77e2a41
--- /dev/null
+++ b/org.eclipse.emf.refactor.comrel.diagram/src/comrel/diagram/edit/parts/SingleQueuedUnitNameTypeLblStrict7EditPart.java
@@ -0,0 +1,576 @@
+/*
+ *
+ */
+package comrel.diagram.edit.parts;
+
+import java.util.Collections;
+import java.util.List;
+
+import org.eclipse.draw2d.IFigure;
+import org.eclipse.draw2d.Label;
+import org.eclipse.draw2d.geometry.Point;
+import org.eclipse.emf.common.notify.Notification;
+import org.eclipse.emf.ecore.EObject;
+import org.eclipse.emf.transaction.RunnableWithResult;
+import org.eclipse.gef.AccessibleEditPart;
+import org.eclipse.gef.EditPolicy;
+import org.eclipse.gef.Request;
+import org.eclipse.gef.requests.DirectEditRequest;
+import org.eclipse.gef.tools.DirectEditManager;
+import org.eclipse.gmf.runtime.common.ui.services.parser.IParser;
+import org.eclipse.gmf.runtime.common.ui.services.parser.IParserEditStatus;
+import org.eclipse.gmf.runtime.common.ui.services.parser.ParserEditStatus;
+import org.eclipse.gmf.runtime.common.ui.services.parser.ParserOptions;
+import org.eclipse.gmf.runtime.diagram.ui.editparts.CompartmentEditPart;
+import org.eclipse.gmf.runtime.diagram.ui.editparts.IGraphicalEditPart;
+import org.eclipse.gmf.runtime.diagram.ui.editparts.ITextAwareEditPart;
+import org.eclipse.gmf.runtime.diagram.ui.editpolicies.LabelDirectEditPolicy;
+import org.eclipse.gmf.runtime.diagram.ui.l10n.DiagramColorRegistry;
+import org.eclipse.gmf.runtime.diagram.ui.requests.RequestConstants;
+import org.eclipse.gmf.runtime.diagram.ui.tools.TextDirectEditManager;
+import org.eclipse.gmf.runtime.draw2d.ui.figures.WrappingLabel;
+import org.eclipse.gmf.runtime.emf.core.util.EObjectAdapter;
+import org.eclipse.gmf.runtime.emf.ui.services.parser.ISemanticParser;
+import org.eclipse.gmf.runtime.notation.FontStyle;
+import org.eclipse.gmf.runtime.notation.NotationPackage;
+import org.eclipse.gmf.runtime.notation.View;
+import org.eclipse.jface.text.contentassist.IContentAssistProcessor;
+import org.eclipse.jface.viewers.ICellEditorValidator;
+import org.eclipse.swt.SWT;
+import org.eclipse.swt.accessibility.AccessibleEvent;
+import org.eclipse.swt.graphics.Color;
+import org.eclipse.swt.graphics.FontData;
+import org.eclipse.swt.graphics.Image;
+
+import comrel.diagram.edit.policies.ComrelTextSelectionEditPolicy;
+import comrel.diagram.part.ComrelVisualIDRegistry;
+import comrel.diagram.providers.ComrelElementTypes;
+import comrel.diagram.providers.ComrelParserProvider;
+
+/**
+ * @generated
+ */
+public class SingleQueuedUnitNameTypeLblStrict7EditPart extends
+ CompartmentEditPart implements ITextAwareEditPart {
+
+ /**
+ * @generated
+ */
+ public static final int VISUAL_ID = 5049;
+
+ /**
+ * @generated
+ */
+ private DirectEditManager manager;
+
+ /**
+ * @generated
+ */
+ private IParser parser;
+
+ /**
+ * @generated
+ */
+ private List<?> parserElements;
+
+ /**
+ * @generated
+ */
+ private String defaultText;
+
+ /**
+ * @generated
+ */
+ public SingleQueuedUnitNameTypeLblStrict7EditPart(View view) {
+ super(view);
+ }
+
+ /**
+ * @generated
+ */
+ protected void createDefaultEditPolicies() {
+ super.createDefaultEditPolicies();
+ installEditPolicy(EditPolicy.SELECTION_FEEDBACK_ROLE,
+ new ComrelTextSelectionEditPolicy());
+ installEditPolicy(EditPolicy.DIRECT_EDIT_ROLE,
+ new LabelDirectEditPolicy());
+ installEditPolicy(EditPolicy.PRIMARY_DRAG_ROLE,
+ new CompositeRefactoringEditPart.NodeLabelDragPolicy());
+ }
+
+ /**
+ * @generated
+ */
+ protected String getLabelTextHelper(IFigure figure) {
+ if (figure instanceof WrappingLabel) {
+ return ((WrappingLabel) figure).getText();
+ } else {
+ return ((Label) figure).getText();
+ }
+ }
+
+ /**
+ * @generated
+ */
+ protected void setLabelTextHelper(IFigure figure, String text) {
+ if (figure instanceof WrappingLabel) {
+ ((WrappingLabel) figure).setText(text);
+ } else {
+ ((Label) figure).setText(text);
+ }
+ }
+
+ /**
+ * @generated
+ */
+ protected Image getLabelIconHelper(IFigure figure) {
+ if (figure instanceof WrappingLabel) {
+ return ((WrappingLabel) figure).getIcon();
+ } else {
+ return ((Label) figure).getIcon();
+ }
+ }
+
+ /**
+ * @generated
+ */
+ protected void setLabelIconHelper(IFigure figure, Image icon) {
+ if (figure instanceof WrappingLabel) {
+ ((WrappingLabel) figure).setIcon(icon);
+ } else {
+ ((Label) figure).setIcon(icon);
+ }
+ }
+
+ /**
+ * @generated
+ */
+ public void setLabel(WrappingLabel figure) {
+ unregisterVisuals();
+ setFigure(figure);
+ defaultText = getLabelTextHelper(figure);
+ registerVisuals();
+ refreshVisuals();
+ }
+
+ /**
+ * @generated
+ */
+ @SuppressWarnings("rawtypes")
+ protected List getModelChildren() {
+ return Collections.EMPTY_LIST;
+ }
+
+ /**
+ * @generated
+ */
+ public IGraphicalEditPart getChildBySemanticHint(String semanticHint) {
+ return null;
+ }
+
+ /**
+ * @generated
+ */
+ protected EObject getParserElement() {
+ return resolveSemanticElement();
+ }
+
+ /**
+ * @generated
+ */
+ protected Image getLabelIcon() {
+ return null;
+ }
+
+ /**
+ * @generated
+ */
+ protected String getLabelText() {
+ String text = null;
+ EObject parserElement = getParserElement();
+ if (parserElement != null && getParser() != null) {
+ text = getParser().getPrintString(
+ new EObjectAdapter(parserElement),
+ getParserOptions().intValue());
+ }
+ if (text == null || text.length() == 0) {
+ text = defaultText;
+ }
+ return text;
+ }
+
+ /**
+ * @generated
+ */
+ public void setLabelText(String text) {
+ setLabelTextHelper(getFigure(), text);
+ Object pdEditPolicy = getEditPolicy(EditPolicy.PRIMARY_DRAG_ROLE);
+ if (pdEditPolicy instanceof ComrelTextSelectionEditPolicy) {
+ ((ComrelTextSelectionEditPolicy) pdEditPolicy).refreshFeedback();
+ }
+ Object sfEditPolicy = getEditPolicy(EditPolicy.SELECTION_FEEDBACK_ROLE);
+ if (sfEditPolicy instanceof ComrelTextSelectionEditPolicy) {
+ ((ComrelTextSelectionEditPolicy) sfEditPolicy).refreshFeedback();
+ }
+ }
+
+ /**
+ * @generated
+ */
+ public String getEditText() {
+ if (getParserElement() == null || getParser() == null) {
+ return ""; //$NON-NLS-1$
+ }
+ return getParser().getEditString(
+ new EObjectAdapter(getParserElement()),
+ getParserOptions().intValue());
+ }
+
+ /**
+ * @generated
+ */
+ protected boolean isEditable() {
+ return getParser() != null;
+ }
+
+ /**
+ * @generated
+ */
+ public ICellEditorValidator getEditTextValidator() {
+ return new ICellEditorValidator() {
+
+ public String isValid(final Object value) {
+ if (value instanceof String) {
+ final EObject element = getParserElement();
+ final IParser parser = getParser();
+ try {
+ IParserEditStatus valid = (IParserEditStatus) getEditingDomain()
+ .runExclusive(
+ new RunnableWithResult.Impl<IParserEditStatus>() {
+
+ public void run() {
+ setResult(parser
+ .isValidEditString(
+ new EObjectAdapter(
+ element),
+ (String) value));
+ }
+ });
+ return valid.getCode() == ParserEditStatus.EDITABLE ? null
+ : valid.getMessage();
+ } catch (InterruptedException ie) {
+ ie.printStackTrace();
+ }
+ }
+
+ // shouldn't get here
+ return null;
+ }
+ };
+ }
+
+ /**
+ * @generated
+ */
+ public IContentAssistProcessor getCompletionProcessor() {
+ if (getParserElement() == null || getParser() == null) {
+ return null;
+ }
+ return getParser().getCompletionProcessor(
+ new EObjectAdapter(getParserElement()));
+ }
+
+ /**
+ * @generated
+ */
+ public ParserOptions getParserOptions() {
+ return ParserOptions.NONE;
+ }
+
+ /**
+ * @generated
+ */
+ public IParser getParser() {
+ if (parser == null) {
+ parser = ComrelParserProvider
+ .getParser(
+ ComrelElementTypes.SingleQueuedUnit_3067,
+ getParserElement(),
+ ComrelVisualIDRegistry
+ .getType(comrel.diagram.edit.parts.SingleQueuedUnitNameTypeLblStrict7EditPart.VISUAL_ID));
+ }
+ return parser;
+ }
+
+ /**
+ * @generated
+ */
+ protected DirectEditManager getManager() {
+ if (manager == null) {
+ setManager(new TextDirectEditManager(this,
+ TextDirectEditManager.getTextCellEditorClass(this),
+ ComrelEditPartFactory.getTextCellEditorLocator(this)));
+ }
+ return manager;
+ }
+
+ /**
+ * @generated
+ */
+ protected void setManager(DirectEditManager manager) {
+ this.manager = manager;
+ }
+
+ /**
+ * @generated
+ */
+ protected void performDirectEdit() {
+ getManager().show();
+ }
+
+ /**
+ * @generated
+ */
+ protected void performDirectEdit(Point eventLocation) {
+ if (getManager().getClass() == TextDirectEditManager.class) {
+ ((TextDirectEditManager) getManager()).show(eventLocation
+ .getSWTPoint());
+ }
+ }
+
+ /**
+ * @generated
+ */
+ private void performDirectEdit(char initialCharacter) {
+ if (getManager() instanceof TextDirectEditManager) {
+ ((TextDirectEditManager) getManager()).show(initialCharacter);
+ } else {
+ performDirectEdit();
+ }
+ }
+
+ /**
+ * @generated
+ */
+ protected void performDirectEditRequest(Request request) {
+ final Request theRequest = request;
+ try {
+ getEditingDomain().runExclusive(new Runnable() {
+
+ public void run() {
+ if (isActive() && isEditable()) {
+ if (theRequest
+ .getExtendedData()
+ .get(RequestConstants.REQ_DIRECTEDIT_EXTENDEDDATA_INITIAL_CHAR) instanceof Character) {
+ Character initialChar = (Character) theRequest
+ .getExtendedData()
+ .get(RequestConstants.REQ_DIRECTEDIT_EXTENDEDDATA_INITIAL_CHAR);
+ performDirectEdit(initialChar.charValue());
+ } else if ((theRequest instanceof DirectEditRequest)
+ && (getEditText().equals(getLabelText()))) {
+ DirectEditRequest editRequest = (DirectEditRequest) theRequest;
+ performDirectEdit(editRequest.getLocation());
+ } else {
+ performDirectEdit();
+ }
+ }
+ }
+ });
+ } catch (InterruptedException e) {
+ e.printStackTrace();
+ }
+ }
+
+ /**
+ * @generated
+ */
+ protected void refreshVisuals() {
+ super.refreshVisuals();
+ refreshLabel();
+ refreshFont();
+ refreshFontColor();
+ refreshUnderline();
+ refreshStrikeThrough();
+ }
+
+ /**
+ * @generated
+ */
+ protected void refreshLabel() {
+ setLabelTextHelper(getFigure(), getLabelText());
+ setLabelIconHelper(getFigure(), getLabelIcon());
+ Object pdEditPolicy = getEditPolicy(EditPolicy.PRIMARY_DRAG_ROLE);
+ if (pdEditPolicy instanceof ComrelTextSelectionEditPolicy) {
+ ((ComrelTextSelectionEditPolicy) pdEditPolicy).refreshFeedback();
+ }
+ Object sfEditPolicy = getEditPolicy(EditPolicy.SELECTION_FEEDBACK_ROLE);
+ if (sfEditPolicy instanceof ComrelTextSelectionEditPolicy) {
+ ((ComrelTextSelectionEditPolicy) sfEditPolicy).refreshFeedback();
+ }
+ }
+
+ /**
+ * @generated
+ */
+ protected void refreshUnderline() {
+ FontStyle style = (FontStyle) getFontStyleOwnerView().getStyle(
+ NotationPackage.eINSTANCE.getFontStyle());
+ if (style != null && getFigure() instanceof WrappingLabel) {
+ ((WrappingLabel) getFigure()).setTextUnderline(style.isUnderline());
+ }
+ }
+
+ /**
+ * @generated
+ */
+ protected void refreshStrikeThrough() {
+ FontStyle style = (FontStyle) getFontStyleOwnerView().getStyle(
+ NotationPackage.eINSTANCE.getFontStyle());
+ if (style != null && getFigure() instanceof WrappingLabel) {
+ ((WrappingLabel) getFigure()).setTextStrikeThrough(style
+ .isStrikeThrough());
+ }
+ }
+
+ /**
+ * @generated
+ */
+ protected void refreshFont() {
+ FontStyle style = (FontStyle) getFontStyleOwnerView().getStyle(
+ NotationPackage.eINSTANCE.getFontStyle());
+ if (style != null) {
+ FontData fontData = new FontData(style.getFontName(),
+ style.getFontHeight(), (style.isBold() ? SWT.BOLD
+ : SWT.NORMAL)
+ | (style.isItalic() ? SWT.ITALIC : SWT.NORMAL));
+ setFont(fontData);
+ }
+ }
+
+ /**
+ * @generated
+ */
+ protected void setFontColor(Color color) {
+ getFigure().setForegroundColor(color);
+ }
+
+ /**
+ * @generated
+ */
+ protected void addSemanticListeners() {
+ if (getParser() instanceof ISemanticParser) {
+ EObject element = resolveSemanticElement();
+ parserElements = ((ISemanticParser) getParser())
+ .getSemanticElementsBeingParsed(element);
+ for (int i = 0; i < parserElements.size(); i++) {
+ addListenerFilter(
+ "SemanticModel" + i, this, (EObject) parserElements.get(i)); //$NON-NLS-1$
+ }
+ } else {
+ super.addSemanticListeners();
+ }
+ }
+
+ /**
+ * @generated
+ */
+ protected void removeSemanticListeners() {
+ if (parserElements != null) {
+ for (int i = 0; i < parserElements.size(); i++) {
+ removeListenerFilter("SemanticModel" + i); //$NON-NLS-1$
+ }
+ } else {
+ super.removeSemanticListeners();
+ }
+ }
+
+ /**
+ * @generated
+ */
+ protected AccessibleEditPart getAccessibleEditPart() {
+ if (accessibleEP == null) {
+ accessibleEP = new AccessibleGraphicalEditPart() {
+
+ public void getName(AccessibleEvent e) {
+ e.result = getLabelTextHelper(getFigure());
+ }
+ };
+ }
+ return accessibleEP;
+ }
+
+ /**
+ * @generated
+ */
+ private View getFontStyleOwnerView() {
+ return getPrimaryView();
+ }
+
+ /**
+ * @generated
+ */
+ protected void addNotationalListeners() {
+ super.addNotationalListeners();
+ addListenerFilter("PrimaryView", this, getPrimaryView()); //$NON-NLS-1$
+ }
+
+ /**
+ * @generated
+ */
+ protected void removeNotationalListeners() {
+ super.removeNotationalListeners();
+ removeListenerFilter("PrimaryView"); //$NON-NLS-1$
+ }
+
+ /**
+ * @generated
+ */
+ protected void handleNotificationEvent(Notification event) {
+ Object feature = event.getFeature();
+ if (NotationPackage.eINSTANCE.getFontStyle_FontColor().equals(feature)) {
+ Integer c = (Integer) event.getNewValue();
+ setFontColor(DiagramColorRegistry.getInstance().getColor(c));
+ } else if (NotationPackage.eINSTANCE.getFontStyle_Underline().equals(
+ feature)) {
+ refreshUnderline();
+ } else if (NotationPackage.eINSTANCE.getFontStyle_StrikeThrough()
+ .equals(feature)) {
+ refreshStrikeThrough();
+ } else if (NotationPackage.eINSTANCE.getFontStyle_FontHeight().equals(
+ feature)
+ || NotationPackage.eINSTANCE.getFontStyle_FontName().equals(
+ feature)
+ || NotationPackage.eINSTANCE.getFontStyle_Bold()
+ .equals(feature)
+ || NotationPackage.eINSTANCE.getFontStyle_Italic().equals(
+ feature)) {
+ refreshFont();
+ } else {
+ if (getParser() != null
+ && getParser().isAffectingEvent(event,
+ getParserOptions().intValue())) {
+ refreshLabel();
+ }
+ if (getParser() instanceof ISemanticParser) {
+ ISemanticParser modelParser = (ISemanticParser) getParser();
+ if (modelParser.areSemanticElementsAffected(null, event)) {
+ removeSemanticListeners();
+ if (resolveSemanticElement() != null) {
+ addSemanticListeners();
+ }
+ refreshLabel();
+ }
+ }
+ }
+ super.handleNotificationEvent(event);
+ }
+
+ /**
+ * @generated
+ */
+ protected IFigure createFigure() {
+ // Parent should assign one using setLabel() method
+ return null;
+ }
+
+}
diff --git a/org.eclipse.emf.refactor.comrel.diagram/src/comrel/diagram/edit/parts/SingleQueuedUnitNameTypeLblStrictEditPart.java b/org.eclipse.emf.refactor.comrel.diagram/src/comrel/diagram/edit/parts/SingleQueuedUnitNameTypeLblStrictEditPart.java
new file mode 100644
index 0000000..80e6a96
--- /dev/null
+++ b/org.eclipse.emf.refactor.comrel.diagram/src/comrel/diagram/edit/parts/SingleQueuedUnitNameTypeLblStrictEditPart.java
@@ -0,0 +1,576 @@
+/*
+ *
+ */
+package comrel.diagram.edit.parts;
+
+import java.util.Collections;
+import java.util.List;
+
+import org.eclipse.draw2d.IFigure;
+import org.eclipse.draw2d.Label;
+import org.eclipse.draw2d.geometry.Point;
+import org.eclipse.emf.common.notify.Notification;
+import org.eclipse.emf.ecore.EObject;
+import org.eclipse.emf.transaction.RunnableWithResult;
+import org.eclipse.gef.AccessibleEditPart;
+import org.eclipse.gef.EditPolicy;
+import org.eclipse.gef.Request;
+import org.eclipse.gef.requests.DirectEditRequest;
+import org.eclipse.gef.tools.DirectEditManager;
+import org.eclipse.gmf.runtime.common.ui.services.parser.IParser;
+import org.eclipse.gmf.runtime.common.ui.services.parser.IParserEditStatus;
+import org.eclipse.gmf.runtime.common.ui.services.parser.ParserEditStatus;
+import org.eclipse.gmf.runtime.common.ui.services.parser.ParserOptions;
+import org.eclipse.gmf.runtime.diagram.ui.editparts.CompartmentEditPart;
+import org.eclipse.gmf.runtime.diagram.ui.editparts.IGraphicalEditPart;
+import org.eclipse.gmf.runtime.diagram.ui.editparts.ITextAwareEditPart;
+import org.eclipse.gmf.runtime.diagram.ui.editpolicies.LabelDirectEditPolicy;
+import org.eclipse.gmf.runtime.diagram.ui.l10n.DiagramColorRegistry;
+import org.eclipse.gmf.runtime.diagram.ui.requests.RequestConstants;
+import org.eclipse.gmf.runtime.diagram.ui.tools.TextDirectEditManager;
+import org.eclipse.gmf.runtime.draw2d.ui.figures.WrappingLabel;
+import org.eclipse.gmf.runtime.emf.core.util.EObjectAdapter;
+import org.eclipse.gmf.runtime.emf.ui.services.parser.ISemanticParser;
+import org.eclipse.gmf.runtime.notation.FontStyle;
+import org.eclipse.gmf.runtime.notation.NotationPackage;
+import org.eclipse.gmf.runtime.notation.View;
+import org.eclipse.jface.text.contentassist.IContentAssistProcessor;
+import org.eclipse.jface.viewers.ICellEditorValidator;
+import org.eclipse.swt.SWT;
+import org.eclipse.swt.accessibility.AccessibleEvent;
+import org.eclipse.swt.graphics.Color;
+import org.eclipse.swt.graphics.FontData;
+import org.eclipse.swt.graphics.Image;
+
+import comrel.diagram.edit.policies.ComrelTextSelectionEditPolicy;
+import comrel.diagram.part.ComrelVisualIDRegistry;
+import comrel.diagram.providers.ComrelElementTypes;
+import comrel.diagram.providers.ComrelParserProvider;
+
+/**
+ * @generated
+ */
+public class SingleQueuedUnitNameTypeLblStrictEditPart extends
+ CompartmentEditPart implements ITextAwareEditPart {
+
+ /**
+ * @generated
+ */
+ public static final int VISUAL_ID = 5082;
+
+ /**
+ * @generated
+ */
+ private DirectEditManager manager;
+
+ /**
+ * @generated
+ */
+ private IParser parser;
+
+ /**
+ * @generated
+ */
+ private List<?> parserElements;
+
+ /**
+ * @generated
+ */
+ private String defaultText;
+
+ /**
+ * @generated
+ */
+ public SingleQueuedUnitNameTypeLblStrictEditPart(View view) {
+ super(view);
+ }
+
+ /**
+ * @generated
+ */
+ protected void createDefaultEditPolicies() {
+ super.createDefaultEditPolicies();
+ installEditPolicy(EditPolicy.SELECTION_FEEDBACK_ROLE,
+ new ComrelTextSelectionEditPolicy());
+ installEditPolicy(EditPolicy.DIRECT_EDIT_ROLE,
+ new LabelDirectEditPolicy());
+ installEditPolicy(EditPolicy.PRIMARY_DRAG_ROLE,
+ new CompositeRefactoringEditPart.NodeLabelDragPolicy());
+ }
+
+ /**
+ * @generated
+ */
+ protected String getLabelTextHelper(IFigure figure) {
+ if (figure instanceof WrappingLabel) {
+ return ((WrappingLabel) figure).getText();
+ } else {
+ return ((Label) figure).getText();
+ }
+ }
+
+ /**
+ * @generated
+ */
+ protected void setLabelTextHelper(IFigure figure, String text) {
+ if (figure instanceof WrappingLabel) {
+ ((WrappingLabel) figure).setText(text);
+ } else {
+ ((Label) figure).setText(text);
+ }
+ }
+
+ /**
+ * @generated
+ */
+ protected Image getLabelIconHelper(IFigure figure) {
+ if (figure instanceof WrappingLabel) {
+ return ((WrappingLabel) figure).getIcon();
+ } else {
+ return ((Label) figure).getIcon();
+ }
+ }
+
+ /**
+ * @generated
+ */
+ protected void setLabelIconHelper(IFigure figure, Image icon) {
+ if (figure instanceof WrappingLabel) {
+ ((WrappingLabel) figure).setIcon(icon);
+ } else {
+ ((Label) figure).setIcon(icon);
+ }
+ }
+
+ /**
+ * @generated
+ */
+ public void setLabel(WrappingLabel figure) {
+ unregisterVisuals();
+ setFigure(figure);
+ defaultText = getLabelTextHelper(figure);
+ registerVisuals();
+ refreshVisuals();
+ }
+
+ /**
+ * @generated
+ */
+ @SuppressWarnings("rawtypes")
+ protected List getModelChildren() {
+ return Collections.EMPTY_LIST;
+ }
+
+ /**
+ * @generated
+ */
+ public IGraphicalEditPart getChildBySemanticHint(String semanticHint) {
+ return null;
+ }
+
+ /**
+ * @generated
+ */
+ protected EObject getParserElement() {
+ return resolveSemanticElement();
+ }
+
+ /**
+ * @generated
+ */
+ protected Image getLabelIcon() {
+ return null;
+ }
+
+ /**
+ * @generated
+ */
+ protected String getLabelText() {
+ String text = null;
+ EObject parserElement = getParserElement();
+ if (parserElement != null && getParser() != null) {
+ text = getParser().getPrintString(
+ new EObjectAdapter(parserElement),
+ getParserOptions().intValue());
+ }
+ if (text == null || text.length() == 0) {
+ text = defaultText;
+ }
+ return text;
+ }
+
+ /**
+ * @generated
+ */
+ public void setLabelText(String text) {
+ setLabelTextHelper(getFigure(), text);
+ Object pdEditPolicy = getEditPolicy(EditPolicy.PRIMARY_DRAG_ROLE);
+ if (pdEditPolicy instanceof ComrelTextSelectionEditPolicy) {
+ ((ComrelTextSelectionEditPolicy) pdEditPolicy).refreshFeedback();
+ }
+ Object sfEditPolicy = getEditPolicy(EditPolicy.SELECTION_FEEDBACK_ROLE);
+ if (sfEditPolicy instanceof ComrelTextSelectionEditPolicy) {
+ ((ComrelTextSelectionEditPolicy) sfEditPolicy).refreshFeedback();
+ }
+ }
+
+ /**
+ * @generated
+ */
+ public String getEditText() {
+ if (getParserElement() == null || getParser() == null) {
+ return ""; //$NON-NLS-1$
+ }
+ return getParser().getEditString(
+ new EObjectAdapter(getParserElement()),
+ getParserOptions().intValue());
+ }
+
+ /**
+ * @generated
+ */
+ protected boolean isEditable() {
+ return getParser() != null;
+ }
+
+ /**
+ * @generated
+ */
+ public ICellEditorValidator getEditTextValidator() {
+ return new ICellEditorValidator() {
+
+ public String isValid(final Object value) {
+ if (value instanceof String) {
+ final EObject element = getParserElement();
+ final IParser parser = getParser();
+ try {
+ IParserEditStatus valid = (IParserEditStatus) getEditingDomain()
+ .runExclusive(
+ new RunnableWithResult.Impl<IParserEditStatus>() {
+
+ public void run() {
+ setResult(parser
+ .isValidEditString(
+ new EObjectAdapter(
+ element),
+ (String) value));
+ }
+ });
+ return valid.getCode() == ParserEditStatus.EDITABLE ? null
+ : valid.getMessage();
+ } catch (InterruptedException ie) {
+ ie.printStackTrace();
+ }
+ }
+
+ // shouldn't get here
+ return null;
+ }
+ };
+ }
+
+ /**
+ * @generated
+ */
+ public IContentAssistProcessor getCompletionProcessor() {
+ if (getParserElement() == null || getParser() == null) {
+ return null;
+ }
+ return getParser().getCompletionProcessor(
+ new EObjectAdapter(getParserElement()));
+ }
+
+ /**
+ * @generated
+ */
+ public ParserOptions getParserOptions() {
+ return ParserOptions.NONE;
+ }
+
+ /**
+ * @generated
+ */
+ public IParser getParser() {
+ if (parser == null) {
+ parser = ComrelParserProvider
+ .getParser(
+ ComrelElementTypes.SingleQueuedUnit_2004,
+ getParserElement(),
+ ComrelVisualIDRegistry
+ .getType(comrel.diagram.edit.parts.SingleQueuedUnitNameTypeLblStrictEditPart.VISUAL_ID));
+ }
+ return parser;
+ }
+
+ /**
+ * @generated
+ */
+ protected DirectEditManager getManager() {
+ if (manager == null) {
+ setManager(new TextDirectEditManager(this,
+ TextDirectEditManager.getTextCellEditorClass(this),
+ ComrelEditPartFactory.getTextCellEditorLocator(this)));
+ }
+ return manager;
+ }
+
+ /**
+ * @generated
+ */
+ protected void setManager(DirectEditManager manager) {
+ this.manager = manager;
+ }
+
+ /**
+ * @generated
+ */
+ protected void performDirectEdit() {
+ getManager().show();
+ }
+
+ /**
+ * @generated
+ */
+ protected void performDirectEdit(Point eventLocation) {
+ if (getManager().getClass() == TextDirectEditManager.class) {
+ ((TextDirectEditManager) getManager()).show(eventLocation
+ .getSWTPoint());
+ }
+ }
+
+ /**
+ * @generated
+ */
+ private void performDirectEdit(char initialCharacter) {
+ if (getManager() instanceof TextDirectEditManager) {
+ ((TextDirectEditManager) getManager()).show(initialCharacter);
+ } else {
+ performDirectEdit();
+ }
+ }
+
+ /**
+ * @generated
+ */
+ protected void performDirectEditRequest(Request request) {
+ final Request theRequest = request;
+ try {
+ getEditingDomain().runExclusive(new Runnable() {
+
+ public void run() {
+ if (isActive() && isEditable()) {
+ if (theRequest
+ .getExtendedData()
+ .get(RequestConstants.REQ_DIRECTEDIT_EXTENDEDDATA_INITIAL_CHAR) instanceof Character) {
+ Character initialChar = (Character) theRequest
+ .getExtendedData()
+ .get(RequestConstants.REQ_DIRECTEDIT_EXTENDEDDATA_INITIAL_CHAR);
+ performDirectEdit(initialChar.charValue());
+ } else if ((theRequest instanceof DirectEditRequest)
+ && (getEditText().equals(getLabelText()))) {
+ DirectEditRequest editRequest = (DirectEditRequest) theRequest;
+ performDirectEdit(editRequest.getLocation());
+ } else {
+ performDirectEdit();
+ }
+ }
+ }
+ });
+ } catch (InterruptedException e) {
+ e.printStackTrace();
+ }
+ }
+
+ /**
+ * @generated
+ */
+ protected void refreshVisuals() {
+ super.refreshVisuals();
+ refreshLabel();
+ refreshFont();
+ refreshFontColor();
+ refreshUnderline();
+ refreshStrikeThrough();
+ }
+
+ /**
+ * @generated
+ */
+ protected void refreshLabel() {
+ setLabelTextHelper(getFigure(), getLabelText());
+ setLabelIconHelper(getFigure(), getLabelIcon());
+ Object pdEditPolicy = getEditPolicy(EditPolicy.PRIMARY_DRAG_ROLE);
+ if (pdEditPolicy instanceof ComrelTextSelectionEditPolicy) {
+ ((ComrelTextSelectionEditPolicy) pdEditPolicy).refreshFeedback();
+ }
+ Object sfEditPolicy = getEditPolicy(EditPolicy.SELECTION_FEEDBACK_ROLE);
+ if (sfEditPolicy instanceof ComrelTextSelectionEditPolicy) {
+ ((ComrelTextSelectionEditPolicy) sfEditPolicy).refreshFeedback();
+ }
+ }
+
+ /**
+ * @generated
+ */
+ protected void refreshUnderline() {
+ FontStyle style = (FontStyle) getFontStyleOwnerView().getStyle(
+ NotationPackage.eINSTANCE.getFontStyle());
+ if (style != null && getFigure() instanceof WrappingLabel) {
+ ((WrappingLabel) getFigure()).setTextUnderline(style.isUnderline());
+ }
+ }
+
+ /**
+ * @generated
+ */
+ protected void refreshStrikeThrough() {
+ FontStyle style = (FontStyle) getFontStyleOwnerView().getStyle(
+ NotationPackage.eINSTANCE.getFontStyle());
+ if (style != null && getFigure() instanceof WrappingLabel) {
+ ((WrappingLabel) getFigure()).setTextStrikeThrough(style
+ .isStrikeThrough());
+ }
+ }
+
+ /**
+ * @generated
+ */
+ protected void refreshFont() {
+ FontStyle style = (FontStyle) getFontStyleOwnerView().getStyle(
+ NotationPackage.eINSTANCE.getFontStyle());
+ if (style != null) {
+ FontData fontData = new FontData(style.getFontName(),
+ style.getFontHeight(), (style.isBold() ? SWT.BOLD
+ : SWT.NORMAL)
+ | (style.isItalic() ? SWT.ITALIC : SWT.NORMAL));
+ setFont(fontData);
+ }
+ }
+
+ /**
+ * @generated
+ */
+ protected void setFontColor(Color color) {
+ getFigure().setForegroundColor(color);
+ }
+
+ /**
+ * @generated
+ */
+ protected void addSemanticListeners() {
+ if (getParser() instanceof ISemanticParser) {
+ EObject element = resolveSemanticElement();
+ parserElements = ((ISemanticParser) getParser())
+ .getSemanticElementsBeingParsed(element);
+ for (int i = 0; i < parserElements.size(); i++) {
+ addListenerFilter(
+ "SemanticModel" + i, this, (EObject) parserElements.get(i)); //$NON-NLS-1$
+ }
+ } else {
+ super.addSemanticListeners();
+ }
+ }
+
+ /**
+ * @generated
+ */
+ protected void removeSemanticListeners() {
+ if (parserElements != null) {
+ for (int i = 0; i < parserElements.size(); i++) {
+ removeListenerFilter("SemanticModel" + i); //$NON-NLS-1$
+ }
+ } else {
+ super.removeSemanticListeners();
+ }
+ }
+
+ /**
+ * @generated
+ */
+ protected AccessibleEditPart getAccessibleEditPart() {
+ if (accessibleEP == null) {
+ accessibleEP = new AccessibleGraphicalEditPart() {
+
+ public void getName(AccessibleEvent e) {
+ e.result = getLabelTextHelper(getFigure());
+ }
+ };
+ }
+ return accessibleEP;
+ }
+
+ /**
+ * @generated
+ */
+ private View getFontStyleOwnerView() {
+ return getPrimaryView();
+ }
+
+ /**
+ * @generated
+ */
+ protected void addNotationalListeners() {
+ super.addNotationalListeners();
+ addListenerFilter("PrimaryView", this, getPrimaryView()); //$NON-NLS-1$
+ }
+
+ /**
+ * @generated
+ */
+ protected void removeNotationalListeners() {
+ super.removeNotationalListeners();
+ removeListenerFilter("PrimaryView"); //$NON-NLS-1$
+ }
+
+ /**
+ * @generated
+ */
+ protected void handleNotificationEvent(Notification event) {
+ Object feature = event.getFeature();
+ if (NotationPackage.eINSTANCE.getFontStyle_FontColor().equals(feature)) {
+ Integer c = (Integer) event.getNewValue();
+ setFontColor(DiagramColorRegistry.getInstance().getColor(c));
+ } else if (NotationPackage.eINSTANCE.getFontStyle_Underline().equals(
+ feature)) {
+ refreshUnderline();
+ } else if (NotationPackage.eINSTANCE.getFontStyle_StrikeThrough()
+ .equals(feature)) {
+ refreshStrikeThrough();
+ } else if (NotationPackage.eINSTANCE.getFontStyle_FontHeight().equals(
+ feature)
+ || NotationPackage.eINSTANCE.getFontStyle_FontName().equals(
+ feature)
+ || NotationPackage.eINSTANCE.getFontStyle_Bold()
+ .equals(feature)
+ || NotationPackage.eINSTANCE.getFontStyle_Italic().equals(
+ feature)) {
+ refreshFont();
+ } else {
+ if (getParser() != null
+ && getParser().isAffectingEvent(event,
+ getParserOptions().intValue())) {
+ refreshLabel();
+ }
+ if (getParser() instanceof ISemanticParser) {
+ ISemanticParser modelParser = (ISemanticParser) getParser();
+ if (modelParser.areSemanticElementsAffected(null, event)) {
+ removeSemanticListeners();
+ if (resolveSemanticElement() != null) {
+ addSemanticListeners();
+ }
+ refreshLabel();
+ }
+ }
+ }
+ super.handleNotificationEvent(event);
+ }
+
+ /**
+ * @generated
+ */
+ protected IFigure createFigure() {
+ // Parent should assign one using setLabel() method
+ return null;
+ }
+
+}
diff --git a/org.eclipse.emf.refactor.comrel.diagram/src/comrel/diagram/edit/parts/SingleQueuedUnitSingleQueuedUnitHelperUnitsCompartment2EditPart.java b/org.eclipse.emf.refactor.comrel.diagram/src/comrel/diagram/edit/parts/SingleQueuedUnitSingleQueuedUnitHelperUnitsCompartment2EditPart.java
new file mode 100644
index 0000000..16ceb2f
--- /dev/null
+++ b/org.eclipse.emf.refactor.comrel.diagram/src/comrel/diagram/edit/parts/SingleQueuedUnitSingleQueuedUnitHelperUnitsCompartment2EditPart.java
@@ -0,0 +1,85 @@
+/*
+ *
+ */
+package comrel.diagram.edit.parts;
+
+import org.eclipse.draw2d.IFigure;
+import org.eclipse.gef.EditPolicy;
+import org.eclipse.gmf.runtime.diagram.ui.editparts.ShapeCompartmentEditPart;
+import org.eclipse.gmf.runtime.diagram.ui.editpolicies.CreationEditPolicy;
+import org.eclipse.gmf.runtime.diagram.ui.editpolicies.DragDropEditPolicy;
+import org.eclipse.gmf.runtime.diagram.ui.editpolicies.EditPolicyRoles;
+import org.eclipse.gmf.runtime.diagram.ui.editpolicies.ResizableCompartmentEditPolicy;
+import org.eclipse.gmf.runtime.diagram.ui.figures.ResizableCompartmentFigure;
+import org.eclipse.gmf.runtime.draw2d.ui.figures.ConstrainedToolbarLayout;
+import org.eclipse.gmf.runtime.notation.View;
+
+import comrel.diagram.edit.policies.SingleQueuedUnitSingleQueuedUnitHelperUnitsCompartment2CanonicalEditPolicy;
+import comrel.diagram.edit.policies.SingleQueuedUnitSingleQueuedUnitHelperUnitsCompartment2ItemSemanticEditPolicy;
+import comrel.diagram.part.Messages;
+
+/**
+ * @generated
+ */
+public class SingleQueuedUnitSingleQueuedUnitHelperUnitsCompartment2EditPart
+ extends ShapeCompartmentEditPart {
+
+ /**
+ * @generated
+ */
+ public static final int VISUAL_ID = 7027;
+
+ /**
+ * @generated
+ */
+ public SingleQueuedUnitSingleQueuedUnitHelperUnitsCompartment2EditPart(
+ View view) {
+ super(view);
+ }
+
+ /**
+ * @generated
+ */
+ public String getCompartmentName() {
+ return Messages.SingleQueuedUnitSingleQueuedUnitHelperUnitsCompartment2EditPart_title;
+ }
+
+ /**
+ * @generated
+ */
+ public IFigure createFigure() {
+ ResizableCompartmentFigure result = (ResizableCompartmentFigure) super
+ .createFigure();
+ result.setTitleVisibility(false);
+ return result;
+ }
+
+ /**
+ * @generated
+ */
+ protected void createDefaultEditPolicies() {
+ super.createDefaultEditPolicies();
+ installEditPolicy(EditPolicy.PRIMARY_DRAG_ROLE,
+ new ResizableCompartmentEditPolicy());
+ installEditPolicy(
+ EditPolicyRoles.SEMANTIC_ROLE,
+ new SingleQueuedUnitSingleQueuedUnitHelperUnitsCompartment2ItemSemanticEditPolicy());
+ installEditPolicy(EditPolicyRoles.CREATION_ROLE,
+ new CreationEditPolicy());
+ installEditPolicy(EditPolicyRoles.DRAG_DROP_ROLE,
+ new DragDropEditPolicy());
+ installEditPolicy(
+ EditPolicyRoles.CANONICAL_ROLE,
+ new SingleQueuedUnitSingleQueuedUnitHelperUnitsCompartment2CanonicalEditPolicy());
+ }
+
+ /**
+ * @generated
+ */
+ protected void setRatio(Double ratio) {
+ if (getFigure().getParent().getLayoutManager() instanceof ConstrainedToolbarLayout) {
+ super.setRatio(ratio);
+ }
+ }
+
+}
diff --git a/org.eclipse.emf.refactor.comrel.diagram/src/comrel/diagram/edit/parts/SingleQueuedUnitSingleQueuedUnitHelperUnitsCompartment3EditPart.java b/org.eclipse.emf.refactor.comrel.diagram/src/comrel/diagram/edit/parts/SingleQueuedUnitSingleQueuedUnitHelperUnitsCompartment3EditPart.java
new file mode 100644
index 0000000..45864b5
--- /dev/null
+++ b/org.eclipse.emf.refactor.comrel.diagram/src/comrel/diagram/edit/parts/SingleQueuedUnitSingleQueuedUnitHelperUnitsCompartment3EditPart.java
@@ -0,0 +1,85 @@
+/*
+ *
+ */
+package comrel.diagram.edit.parts;
+
+import org.eclipse.draw2d.IFigure;
+import org.eclipse.gef.EditPolicy;
+import org.eclipse.gmf.runtime.diagram.ui.editparts.ShapeCompartmentEditPart;
+import org.eclipse.gmf.runtime.diagram.ui.editpolicies.CreationEditPolicy;
+import org.eclipse.gmf.runtime.diagram.ui.editpolicies.DragDropEditPolicy;
+import org.eclipse.gmf.runtime.diagram.ui.editpolicies.EditPolicyRoles;
+import org.eclipse.gmf.runtime.diagram.ui.editpolicies.ResizableCompartmentEditPolicy;
+import org.eclipse.gmf.runtime.diagram.ui.figures.ResizableCompartmentFigure;
+import org.eclipse.gmf.runtime.draw2d.ui.figures.ConstrainedToolbarLayout;
+import org.eclipse.gmf.runtime.notation.View;
+
+import comrel.diagram.edit.policies.SingleQueuedUnitSingleQueuedUnitHelperUnitsCompartment3CanonicalEditPolicy;
+import comrel.diagram.edit.policies.SingleQueuedUnitSingleQueuedUnitHelperUnitsCompartment3ItemSemanticEditPolicy;
+import comrel.diagram.part.Messages;
+
+/**
+ * @generated
+ */
+public class SingleQueuedUnitSingleQueuedUnitHelperUnitsCompartment3EditPart
+ extends ShapeCompartmentEditPart {
+
+ /**
+ * @generated
+ */
+ public static final int VISUAL_ID = 7043;
+
+ /**
+ * @generated
+ */
+ public SingleQueuedUnitSingleQueuedUnitHelperUnitsCompartment3EditPart(
+ View view) {
+ super(view);
+ }
+
+ /**
+ * @generated
+ */
+ public String getCompartmentName() {
+ return Messages.SingleQueuedUnitSingleQueuedUnitHelperUnitsCompartment3EditPart_title;
+ }
+
+ /**
+ * @generated
+ */
+ public IFigure createFigure() {
+ ResizableCompartmentFigure result = (ResizableCompartmentFigure) super
+ .createFigure();
+ result.setTitleVisibility(false);
+ return result;
+ }
+
+ /**
+ * @generated
+ */
+ protected void createDefaultEditPolicies() {
+ super.createDefaultEditPolicies();
+ installEditPolicy(EditPolicy.PRIMARY_DRAG_ROLE,
+ new ResizableCompartmentEditPolicy());
+ installEditPolicy(
+ EditPolicyRoles.SEMANTIC_ROLE,
+ new SingleQueuedUnitSingleQueuedUnitHelperUnitsCompartment3ItemSemanticEditPolicy());
+ installEditPolicy(EditPolicyRoles.CREATION_ROLE,
+ new CreationEditPolicy());
+ installEditPolicy(EditPolicyRoles.DRAG_DROP_ROLE,
+ new DragDropEditPolicy());
+ installEditPolicy(
+ EditPolicyRoles.CANONICAL_ROLE,
+ new SingleQueuedUnitSingleQueuedUnitHelperUnitsCompartment3CanonicalEditPolicy());
+ }
+
+ /**
+ * @generated
+ */
+ protected void setRatio(Double ratio) {
+ if (getFigure().getParent().getLayoutManager() instanceof ConstrainedToolbarLayout) {
+ super.setRatio(ratio);
+ }
+ }
+
+}
diff --git a/org.eclipse.emf.refactor.comrel.diagram/src/comrel/diagram/edit/parts/SingleQueuedUnitSingleQueuedUnitHelperUnitsCompartment4EditPart.java b/org.eclipse.emf.refactor.comrel.diagram/src/comrel/diagram/edit/parts/SingleQueuedUnitSingleQueuedUnitHelperUnitsCompartment4EditPart.java
new file mode 100644
index 0000000..f677401
--- /dev/null
+++ b/org.eclipse.emf.refactor.comrel.diagram/src/comrel/diagram/edit/parts/SingleQueuedUnitSingleQueuedUnitHelperUnitsCompartment4EditPart.java
@@ -0,0 +1,85 @@
+/*
+ *
+ */
+package comrel.diagram.edit.parts;
+
+import org.eclipse.draw2d.IFigure;
+import org.eclipse.gef.EditPolicy;
+import org.eclipse.gmf.runtime.diagram.ui.editparts.ShapeCompartmentEditPart;
+import org.eclipse.gmf.runtime.diagram.ui.editpolicies.CreationEditPolicy;
+import org.eclipse.gmf.runtime.diagram.ui.editpolicies.DragDropEditPolicy;
+import org.eclipse.gmf.runtime.diagram.ui.editpolicies.EditPolicyRoles;
+import org.eclipse.gmf.runtime.diagram.ui.editpolicies.ResizableCompartmentEditPolicy;
+import org.eclipse.gmf.runtime.diagram.ui.figures.ResizableCompartmentFigure;
+import org.eclipse.gmf.runtime.draw2d.ui.figures.ConstrainedToolbarLayout;
+import org.eclipse.gmf.runtime.notation.View;
+
+import comrel.diagram.edit.policies.SingleQueuedUnitSingleQueuedUnitHelperUnitsCompartment4CanonicalEditPolicy;
+import comrel.diagram.edit.policies.SingleQueuedUnitSingleQueuedUnitHelperUnitsCompartment4ItemSemanticEditPolicy;
+import comrel.diagram.part.Messages;
+
+/**
+ * @generated
+ */
+public class SingleQueuedUnitSingleQueuedUnitHelperUnitsCompartment4EditPart
+ extends ShapeCompartmentEditPart {
+
+ /**
+ * @generated
+ */
+ public static final int VISUAL_ID = 7045;
+
+ /**
+ * @generated
+ */
+ public SingleQueuedUnitSingleQueuedUnitHelperUnitsCompartment4EditPart(
+ View view) {
+ super(view);
+ }
+
+ /**
+ * @generated
+ */
+ public String getCompartmentName() {
+ return Messages.SingleQueuedUnitSingleQueuedUnitHelperUnitsCompartment4EditPart_title;
+ }
+
+ /**
+ * @generated
+ */
+ public IFigure createFigure() {
+ ResizableCompartmentFigure result = (ResizableCompartmentFigure) super
+ .createFigure();
+ result.setTitleVisibility(false);
+ return result;
+ }
+
+ /**
+ * @generated
+ */
+ protected void createDefaultEditPolicies() {
+ super.createDefaultEditPolicies();
+ installEditPolicy(EditPolicy.PRIMARY_DRAG_ROLE,
+ new ResizableCompartmentEditPolicy());
+ installEditPolicy(
+ EditPolicyRoles.SEMANTIC_ROLE,
+ new SingleQueuedUnitSingleQueuedUnitHelperUnitsCompartment4ItemSemanticEditPolicy());
+ installEditPolicy(EditPolicyRoles.CREATION_ROLE,
+ new CreationEditPolicy());
+ installEditPolicy(EditPolicyRoles.DRAG_DROP_ROLE,
+ new DragDropEditPolicy());
+ installEditPolicy(
+ EditPolicyRoles.CANONICAL_ROLE,
+ new SingleQueuedUnitSingleQueuedUnitHelperUnitsCompartment4CanonicalEditPolicy());
+ }
+
+ /**
+ * @generated
+ */
+ protected void setRatio(Double ratio) {
+ if (getFigure().getParent().getLayoutManager() instanceof ConstrainedToolbarLayout) {
+ super.setRatio(ratio);
+ }
+ }
+
+}
diff --git a/org.eclipse.emf.refactor.comrel.diagram/src/comrel/diagram/edit/parts/SingleQueuedUnitSingleQueuedUnitHelperUnitsCompartment5EditPart.java b/org.eclipse.emf.refactor.comrel.diagram/src/comrel/diagram/edit/parts/SingleQueuedUnitSingleQueuedUnitHelperUnitsCompartment5EditPart.java
new file mode 100644
index 0000000..07267bb
--- /dev/null
+++ b/org.eclipse.emf.refactor.comrel.diagram/src/comrel/diagram/edit/parts/SingleQueuedUnitSingleQueuedUnitHelperUnitsCompartment5EditPart.java
@@ -0,0 +1,85 @@
+/*
+ *
+ */
+package comrel.diagram.edit.parts;
+
+import org.eclipse.draw2d.IFigure;
+import org.eclipse.gef.EditPolicy;
+import org.eclipse.gmf.runtime.diagram.ui.editparts.ShapeCompartmentEditPart;
+import org.eclipse.gmf.runtime.diagram.ui.editpolicies.CreationEditPolicy;
+import org.eclipse.gmf.runtime.diagram.ui.editpolicies.DragDropEditPolicy;
+import org.eclipse.gmf.runtime.diagram.ui.editpolicies.EditPolicyRoles;
+import org.eclipse.gmf.runtime.diagram.ui.editpolicies.ResizableCompartmentEditPolicy;
+import org.eclipse.gmf.runtime.diagram.ui.figures.ResizableCompartmentFigure;
+import org.eclipse.gmf.runtime.draw2d.ui.figures.ConstrainedToolbarLayout;
+import org.eclipse.gmf.runtime.notation.View;
+
+import comrel.diagram.edit.policies.SingleQueuedUnitSingleQueuedUnitHelperUnitsCompartment5CanonicalEditPolicy;
+import comrel.diagram.edit.policies.SingleQueuedUnitSingleQueuedUnitHelperUnitsCompartment5ItemSemanticEditPolicy;
+import comrel.diagram.part.Messages;
+
+/**
+ * @generated
+ */
+public class SingleQueuedUnitSingleQueuedUnitHelperUnitsCompartment5EditPart
+ extends ShapeCompartmentEditPart {
+
+ /**
+ * @generated
+ */
+ public static final int VISUAL_ID = 7049;
+
+ /**
+ * @generated
+ */
+ public SingleQueuedUnitSingleQueuedUnitHelperUnitsCompartment5EditPart(
+ View view) {
+ super(view);
+ }
+
+ /**
+ * @generated
+ */
+ public String getCompartmentName() {
+ return Messages.SingleQueuedUnitSingleQueuedUnitHelperUnitsCompartment5EditPart_title;
+ }
+
+ /**
+ * @generated
+ */
+ public IFigure createFigure() {
+ ResizableCompartmentFigure result = (ResizableCompartmentFigure) super
+ .createFigure();
+ result.setTitleVisibility(false);
+ return result;
+ }
+
+ /**
+ * @generated
+ */
+ protected void createDefaultEditPolicies() {
+ super.createDefaultEditPolicies();
+ installEditPolicy(EditPolicy.PRIMARY_DRAG_ROLE,
+ new ResizableCompartmentEditPolicy());
+ installEditPolicy(
+ EditPolicyRoles.SEMANTIC_ROLE,
+ new SingleQueuedUnitSingleQueuedUnitHelperUnitsCompartment5ItemSemanticEditPolicy());
+ installEditPolicy(EditPolicyRoles.CREATION_ROLE,
+ new CreationEditPolicy());
+ installEditPolicy(EditPolicyRoles.DRAG_DROP_ROLE,
+ new DragDropEditPolicy());
+ installEditPolicy(
+ EditPolicyRoles.CANONICAL_ROLE,
+ new SingleQueuedUnitSingleQueuedUnitHelperUnitsCompartment5CanonicalEditPolicy());
+ }
+
+ /**
+ * @generated
+ */
+ protected void setRatio(Double ratio) {
+ if (getFigure().getParent().getLayoutManager() instanceof ConstrainedToolbarLayout) {
+ super.setRatio(ratio);
+ }
+ }
+
+}
diff --git a/org.eclipse.emf.refactor.comrel.diagram/src/comrel/diagram/edit/parts/SingleQueuedUnitSingleQueuedUnitHelperUnitsCompartment6EditPart.java b/org.eclipse.emf.refactor.comrel.diagram/src/comrel/diagram/edit/parts/SingleQueuedUnitSingleQueuedUnitHelperUnitsCompartment6EditPart.java
new file mode 100644
index 0000000..9c4ffd3
--- /dev/null
+++ b/org.eclipse.emf.refactor.comrel.diagram/src/comrel/diagram/edit/parts/SingleQueuedUnitSingleQueuedUnitHelperUnitsCompartment6EditPart.java
@@ -0,0 +1,85 @@
+/*
+ *
+ */
+package comrel.diagram.edit.parts;
+
+import org.eclipse.draw2d.IFigure;
+import org.eclipse.gef.EditPolicy;
+import org.eclipse.gmf.runtime.diagram.ui.editparts.ShapeCompartmentEditPart;
+import org.eclipse.gmf.runtime.diagram.ui.editpolicies.CreationEditPolicy;
+import org.eclipse.gmf.runtime.diagram.ui.editpolicies.DragDropEditPolicy;
+import org.eclipse.gmf.runtime.diagram.ui.editpolicies.EditPolicyRoles;
+import org.eclipse.gmf.runtime.diagram.ui.editpolicies.ResizableCompartmentEditPolicy;
+import org.eclipse.gmf.runtime.diagram.ui.figures.ResizableCompartmentFigure;
+import org.eclipse.gmf.runtime.draw2d.ui.figures.ConstrainedToolbarLayout;
+import org.eclipse.gmf.runtime.notation.View;
+
+import comrel.diagram.edit.policies.SingleQueuedUnitSingleQueuedUnitHelperUnitsCompartment6CanonicalEditPolicy;
+import comrel.diagram.edit.policies.SingleQueuedUnitSingleQueuedUnitHelperUnitsCompartment6ItemSemanticEditPolicy;
+import comrel.diagram.part.Messages;
+
+/**
+ * @generated
+ */
+public class SingleQueuedUnitSingleQueuedUnitHelperUnitsCompartment6EditPart
+ extends ShapeCompartmentEditPart {
+
+ /**
+ * @generated
+ */
+ public static final int VISUAL_ID = 7055;
+
+ /**
+ * @generated
+ */
+ public SingleQueuedUnitSingleQueuedUnitHelperUnitsCompartment6EditPart(
+ View view) {
+ super(view);
+ }
+
+ /**
+ * @generated
+ */
+ public String getCompartmentName() {
+ return Messages.SingleQueuedUnitSingleQueuedUnitHelperUnitsCompartment6EditPart_title;
+ }
+
+ /**
+ * @generated
+ */
+ public IFigure createFigure() {
+ ResizableCompartmentFigure result = (ResizableCompartmentFigure) super
+ .createFigure();
+ result.setTitleVisibility(false);
+ return result;
+ }
+
+ /**
+ * @generated
+ */
+ protected void createDefaultEditPolicies() {
+ super.createDefaultEditPolicies();
+ installEditPolicy(EditPolicy.PRIMARY_DRAG_ROLE,
+ new ResizableCompartmentEditPolicy());
+ installEditPolicy(
+ EditPolicyRoles.SEMANTIC_ROLE,
+ new SingleQueuedUnitSingleQueuedUnitHelperUnitsCompartment6ItemSemanticEditPolicy());
+ installEditPolicy(EditPolicyRoles.CREATION_ROLE,
+ new CreationEditPolicy());
+ installEditPolicy(EditPolicyRoles.DRAG_DROP_ROLE,
+ new DragDropEditPolicy());
+ installEditPolicy(
+ EditPolicyRoles.CANONICAL_ROLE,
+ new SingleQueuedUnitSingleQueuedUnitHelperUnitsCompartment6CanonicalEditPolicy());
+ }
+
+ /**
+ * @generated
+ */
+ protected void setRatio(Double ratio) {
+ if (getFigure().getParent().getLayoutManager() instanceof ConstrainedToolbarLayout) {
+ super.setRatio(ratio);
+ }
+ }
+
+}
diff --git a/org.eclipse.emf.refactor.comrel.diagram/src/comrel/diagram/edit/parts/SingleQueuedUnitSingleQueuedUnitHelperUnitsCompartment7EditPart.java b/org.eclipse.emf.refactor.comrel.diagram/src/comrel/diagram/edit/parts/SingleQueuedUnitSingleQueuedUnitHelperUnitsCompartment7EditPart.java
new file mode 100644
index 0000000..d8abf6b
--- /dev/null
+++ b/org.eclipse.emf.refactor.comrel.diagram/src/comrel/diagram/edit/parts/SingleQueuedUnitSingleQueuedUnitHelperUnitsCompartment7EditPart.java
@@ -0,0 +1,85 @@
+/*
+ *
+ */
+package comrel.diagram.edit.parts;
+
+import org.eclipse.draw2d.IFigure;
+import org.eclipse.gef.EditPolicy;
+import org.eclipse.gmf.runtime.diagram.ui.editparts.ShapeCompartmentEditPart;
+import org.eclipse.gmf.runtime.diagram.ui.editpolicies.CreationEditPolicy;
+import org.eclipse.gmf.runtime.diagram.ui.editpolicies.DragDropEditPolicy;
+import org.eclipse.gmf.runtime.diagram.ui.editpolicies.EditPolicyRoles;
+import org.eclipse.gmf.runtime.diagram.ui.editpolicies.ResizableCompartmentEditPolicy;
+import org.eclipse.gmf.runtime.diagram.ui.figures.ResizableCompartmentFigure;
+import org.eclipse.gmf.runtime.draw2d.ui.figures.ConstrainedToolbarLayout;
+import org.eclipse.gmf.runtime.notation.View;
+
+import comrel.diagram.edit.policies.SingleQueuedUnitSingleQueuedUnitHelperUnitsCompartment7CanonicalEditPolicy;
+import comrel.diagram.edit.policies.SingleQueuedUnitSingleQueuedUnitHelperUnitsCompartment7ItemSemanticEditPolicy;
+import comrel.diagram.part.Messages;
+
+/**
+ * @generated
+ */
+public class SingleQueuedUnitSingleQueuedUnitHelperUnitsCompartment7EditPart
+ extends ShapeCompartmentEditPart {
+
+ /**
+ * @generated
+ */
+ public static final int VISUAL_ID = 7077;
+
+ /**
+ * @generated
+ */
+ public SingleQueuedUnitSingleQueuedUnitHelperUnitsCompartment7EditPart(
+ View view) {
+ super(view);
+ }
+
+ /**
+ * @generated
+ */
+ public String getCompartmentName() {
+ return Messages.SingleQueuedUnitSingleQueuedUnitHelperUnitsCompartment7EditPart_title;
+ }
+
+ /**
+ * @generated
+ */
+ public IFigure createFigure() {
+ ResizableCompartmentFigure result = (ResizableCompartmentFigure) super
+ .createFigure();
+ result.setTitleVisibility(false);
+ return result;
+ }
+
+ /**
+ * @generated
+ */
+ protected void createDefaultEditPolicies() {
+ super.createDefaultEditPolicies();
+ installEditPolicy(EditPolicy.PRIMARY_DRAG_ROLE,
+ new ResizableCompartmentEditPolicy());
+ installEditPolicy(
+ EditPolicyRoles.SEMANTIC_ROLE,
+ new SingleQueuedUnitSingleQueuedUnitHelperUnitsCompartment7ItemSemanticEditPolicy());
+ installEditPolicy(EditPolicyRoles.CREATION_ROLE,
+ new CreationEditPolicy());
+ installEditPolicy(EditPolicyRoles.DRAG_DROP_ROLE,
+ new DragDropEditPolicy());
+ installEditPolicy(
+ EditPolicyRoles.CANONICAL_ROLE,
+ new SingleQueuedUnitSingleQueuedUnitHelperUnitsCompartment7CanonicalEditPolicy());
+ }
+
+ /**
+ * @generated
+ */
+ protected void setRatio(Double ratio) {
+ if (getFigure().getParent().getLayoutManager() instanceof ConstrainedToolbarLayout) {
+ super.setRatio(ratio);
+ }
+ }
+
+}
diff --git a/org.eclipse.emf.refactor.comrel.diagram/src/comrel/diagram/edit/parts/SingleQueuedUnitSingleQueuedUnitHelperUnitsCompartmentEditPart.java b/org.eclipse.emf.refactor.comrel.diagram/src/comrel/diagram/edit/parts/SingleQueuedUnitSingleQueuedUnitHelperUnitsCompartmentEditPart.java
new file mode 100644
index 0000000..5fdfee5
--- /dev/null
+++ b/org.eclipse.emf.refactor.comrel.diagram/src/comrel/diagram/edit/parts/SingleQueuedUnitSingleQueuedUnitHelperUnitsCompartmentEditPart.java
@@ -0,0 +1,85 @@
+/*
+ *
+ */
+package comrel.diagram.edit.parts;
+
+import org.eclipse.draw2d.IFigure;
+import org.eclipse.gef.EditPolicy;
+import org.eclipse.gmf.runtime.diagram.ui.editparts.ShapeCompartmentEditPart;
+import org.eclipse.gmf.runtime.diagram.ui.editpolicies.CreationEditPolicy;
+import org.eclipse.gmf.runtime.diagram.ui.editpolicies.DragDropEditPolicy;
+import org.eclipse.gmf.runtime.diagram.ui.editpolicies.EditPolicyRoles;
+import org.eclipse.gmf.runtime.diagram.ui.editpolicies.ResizableCompartmentEditPolicy;
+import org.eclipse.gmf.runtime.diagram.ui.figures.ResizableCompartmentFigure;
+import org.eclipse.gmf.runtime.draw2d.ui.figures.ConstrainedToolbarLayout;
+import org.eclipse.gmf.runtime.notation.View;
+
+import comrel.diagram.edit.policies.SingleQueuedUnitSingleQueuedUnitHelperUnitsCompartmentCanonicalEditPolicy;
+import comrel.diagram.edit.policies.SingleQueuedUnitSingleQueuedUnitHelperUnitsCompartmentItemSemanticEditPolicy;
+import comrel.diagram.part.Messages;
+
+/**
+ * @generated
+ */
+public class SingleQueuedUnitSingleQueuedUnitHelperUnitsCompartmentEditPart
+ extends ShapeCompartmentEditPart {
+
+ /**
+ * @generated
+ */
+ public static final int VISUAL_ID = 7009;
+
+ /**
+ * @generated
+ */
+ public SingleQueuedUnitSingleQueuedUnitHelperUnitsCompartmentEditPart(
+ View view) {
+ super(view);
+ }
+
+ /**
+ * @generated
+ */
+ public String getCompartmentName() {
+ return Messages.SingleQueuedUnitSingleQueuedUnitHelperUnitsCompartmentEditPart_title;
+ }
+
+ /**
+ * @generated
+ */
+ public IFigure createFigure() {
+ ResizableCompartmentFigure result = (ResizableCompartmentFigure) super
+ .createFigure();
+ result.setTitleVisibility(false);
+ return result;
+ }
+
+ /**
+ * @generated
+ */
+ protected void createDefaultEditPolicies() {
+ super.createDefaultEditPolicies();
+ installEditPolicy(EditPolicy.PRIMARY_DRAG_ROLE,
+ new ResizableCompartmentEditPolicy());
+ installEditPolicy(
+ EditPolicyRoles.SEMANTIC_ROLE,
+ new SingleQueuedUnitSingleQueuedUnitHelperUnitsCompartmentItemSemanticEditPolicy());
+ installEditPolicy(EditPolicyRoles.CREATION_ROLE,
+ new CreationEditPolicy());
+ installEditPolicy(EditPolicyRoles.DRAG_DROP_ROLE,
+ new DragDropEditPolicy());
+ installEditPolicy(
+ EditPolicyRoles.CANONICAL_ROLE,
+ new SingleQueuedUnitSingleQueuedUnitHelperUnitsCompartmentCanonicalEditPolicy());
+ }
+
+ /**
+ * @generated
+ */
+ protected void setRatio(Double ratio) {
+ if (getFigure().getParent().getLayoutManager() instanceof ConstrainedToolbarLayout) {
+ super.setRatio(ratio);
+ }
+ }
+
+}
diff --git a/org.eclipse.emf.refactor.comrel.diagram/src/comrel/diagram/edit/parts/SingleQueuedUnitSingleQueuedUnitRefactoringUnitCompartment2EditPart.java b/org.eclipse.emf.refactor.comrel.diagram/src/comrel/diagram/edit/parts/SingleQueuedUnitSingleQueuedUnitRefactoringUnitCompartment2EditPart.java
new file mode 100644
index 0000000..aedbcbd
--- /dev/null
+++ b/org.eclipse.emf.refactor.comrel.diagram/src/comrel/diagram/edit/parts/SingleQueuedUnitSingleQueuedUnitRefactoringUnitCompartment2EditPart.java
@@ -0,0 +1,85 @@
+/*
+ *
+ */
+package comrel.diagram.edit.parts;
+
+import org.eclipse.draw2d.IFigure;
+import org.eclipse.gef.EditPolicy;
+import org.eclipse.gmf.runtime.diagram.ui.editparts.ShapeCompartmentEditPart;
+import org.eclipse.gmf.runtime.diagram.ui.editpolicies.CreationEditPolicy;
+import org.eclipse.gmf.runtime.diagram.ui.editpolicies.DragDropEditPolicy;
+import org.eclipse.gmf.runtime.diagram.ui.editpolicies.EditPolicyRoles;
+import org.eclipse.gmf.runtime.diagram.ui.editpolicies.ResizableCompartmentEditPolicy;
+import org.eclipse.gmf.runtime.diagram.ui.figures.ResizableCompartmentFigure;
+import org.eclipse.gmf.runtime.draw2d.ui.figures.ConstrainedToolbarLayout;
+import org.eclipse.gmf.runtime.notation.View;
+
+import comrel.diagram.edit.policies.SingleQueuedUnitSingleQueuedUnitRefactoringUnitCompartment2CanonicalEditPolicy;
+import comrel.diagram.edit.policies.SingleQueuedUnitSingleQueuedUnitRefactoringUnitCompartment2ItemSemanticEditPolicy;
+import comrel.diagram.part.Messages;
+
+/**
+ * @generated
+ */
+public class SingleQueuedUnitSingleQueuedUnitRefactoringUnitCompartment2EditPart
+ extends ShapeCompartmentEditPart {
+
+ /**
+ * @generated
+ */
+ public static final int VISUAL_ID = 7028;
+
+ /**
+ * @generated
+ */
+ public SingleQueuedUnitSingleQueuedUnitRefactoringUnitCompartment2EditPart(
+ View view) {
+ super(view);
+ }
+
+ /**
+ * @generated
+ */
+ public String getCompartmentName() {
+ return Messages.SingleQueuedUnitSingleQueuedUnitRefactoringUnitCompartment2EditPart_title;
+ }
+
+ /**
+ * @generated
+ */
+ public IFigure createFigure() {
+ ResizableCompartmentFigure result = (ResizableCompartmentFigure) super
+ .createFigure();
+ result.setTitleVisibility(false);
+ return result;
+ }
+
+ /**
+ * @generated
+ */
+ protected void createDefaultEditPolicies() {
+ super.createDefaultEditPolicies();
+ installEditPolicy(EditPolicy.PRIMARY_DRAG_ROLE,
+ new ResizableCompartmentEditPolicy());
+ installEditPolicy(
+ EditPolicyRoles.SEMANTIC_ROLE,
+ new SingleQueuedUnitSingleQueuedUnitRefactoringUnitCompartment2ItemSemanticEditPolicy());
+ installEditPolicy(EditPolicyRoles.CREATION_ROLE,
+ new CreationEditPolicy());
+ installEditPolicy(EditPolicyRoles.DRAG_DROP_ROLE,
+ new DragDropEditPolicy());
+ installEditPolicy(
+ EditPolicyRoles.CANONICAL_ROLE,
+ new SingleQueuedUnitSingleQueuedUnitRefactoringUnitCompartment2CanonicalEditPolicy());
+ }
+
+ /**
+ * @generated
+ */
+ protected void setRatio(Double ratio) {
+ if (getFigure().getParent().getLayoutManager() instanceof ConstrainedToolbarLayout) {
+ super.setRatio(ratio);
+ }
+ }
+
+}
diff --git a/org.eclipse.emf.refactor.comrel.diagram/src/comrel/diagram/edit/parts/SingleQueuedUnitSingleQueuedUnitRefactoringUnitCompartment3EditPart.java b/org.eclipse.emf.refactor.comrel.diagram/src/comrel/diagram/edit/parts/SingleQueuedUnitSingleQueuedUnitRefactoringUnitCompartment3EditPart.java
new file mode 100644
index 0000000..a4bdb67
--- /dev/null
+++ b/org.eclipse.emf.refactor.comrel.diagram/src/comrel/diagram/edit/parts/SingleQueuedUnitSingleQueuedUnitRefactoringUnitCompartment3EditPart.java
@@ -0,0 +1,85 @@
+/*
+ *
+ */
+package comrel.diagram.edit.parts;
+
+import org.eclipse.draw2d.IFigure;
+import org.eclipse.gef.EditPolicy;
+import org.eclipse.gmf.runtime.diagram.ui.editparts.ShapeCompartmentEditPart;
+import org.eclipse.gmf.runtime.diagram.ui.editpolicies.CreationEditPolicy;
+import org.eclipse.gmf.runtime.diagram.ui.editpolicies.DragDropEditPolicy;
+import org.eclipse.gmf.runtime.diagram.ui.editpolicies.EditPolicyRoles;
+import org.eclipse.gmf.runtime.diagram.ui.editpolicies.ResizableCompartmentEditPolicy;
+import org.eclipse.gmf.runtime.diagram.ui.figures.ResizableCompartmentFigure;
+import org.eclipse.gmf.runtime.draw2d.ui.figures.ConstrainedToolbarLayout;
+import org.eclipse.gmf.runtime.notation.View;
+
+import comrel.diagram.edit.policies.SingleQueuedUnitSingleQueuedUnitRefactoringUnitCompartment3CanonicalEditPolicy;
+import comrel.diagram.edit.policies.SingleQueuedUnitSingleQueuedUnitRefactoringUnitCompartment3ItemSemanticEditPolicy;
+import comrel.diagram.part.Messages;
+
+/**
+ * @generated
+ */
+public class SingleQueuedUnitSingleQueuedUnitRefactoringUnitCompartment3EditPart
+ extends ShapeCompartmentEditPart {
+
+ /**
+ * @generated
+ */
+ public static final int VISUAL_ID = 7044;
+
+ /**
+ * @generated
+ */
+ public SingleQueuedUnitSingleQueuedUnitRefactoringUnitCompartment3EditPart(
+ View view) {
+ super(view);
+ }
+
+ /**
+ * @generated
+ */
+ public String getCompartmentName() {
+ return Messages.SingleQueuedUnitSingleQueuedUnitRefactoringUnitCompartment3EditPart_title;
+ }
+
+ /**
+ * @generated
+ */
+ public IFigure createFigure() {
+ ResizableCompartmentFigure result = (ResizableCompartmentFigure) super
+ .createFigure();
+ result.setTitleVisibility(false);
+ return result;
+ }
+
+ /**
+ * @generated
+ */
+ protected void createDefaultEditPolicies() {
+ super.createDefaultEditPolicies();
+ installEditPolicy(EditPolicy.PRIMARY_DRAG_ROLE,
+ new ResizableCompartmentEditPolicy());
+ installEditPolicy(
+ EditPolicyRoles.SEMANTIC_ROLE,
+ new SingleQueuedUnitSingleQueuedUnitRefactoringUnitCompartment3ItemSemanticEditPolicy());
+ installEditPolicy(EditPolicyRoles.CREATION_ROLE,
+ new CreationEditPolicy());
+ installEditPolicy(EditPolicyRoles.DRAG_DROP_ROLE,
+ new DragDropEditPolicy());
+ installEditPolicy(
+ EditPolicyRoles.CANONICAL_ROLE,
+ new SingleQueuedUnitSingleQueuedUnitRefactoringUnitCompartment3CanonicalEditPolicy());
+ }
+
+ /**
+ * @generated
+ */
+ protected void setRatio(Double ratio) {
+ if (getFigure().getParent().getLayoutManager() instanceof ConstrainedToolbarLayout) {
+ super.setRatio(ratio);
+ }
+ }
+
+}
diff --git a/org.eclipse.emf.refactor.comrel.diagram/src/comrel/diagram/edit/parts/SingleQueuedUnitSingleQueuedUnitRefactoringUnitCompartment4EditPart.java b/org.eclipse.emf.refactor.comrel.diagram/src/comrel/diagram/edit/parts/SingleQueuedUnitSingleQueuedUnitRefactoringUnitCompartment4EditPart.java
new file mode 100644
index 0000000..3e69606
--- /dev/null
+++ b/org.eclipse.emf.refactor.comrel.diagram/src/comrel/diagram/edit/parts/SingleQueuedUnitSingleQueuedUnitRefactoringUnitCompartment4EditPart.java
@@ -0,0 +1,85 @@
+/*
+ *
+ */
+package comrel.diagram.edit.parts;
+
+import org.eclipse.draw2d.IFigure;
+import org.eclipse.gef.EditPolicy;
+import org.eclipse.gmf.runtime.diagram.ui.editparts.ShapeCompartmentEditPart;
+import org.eclipse.gmf.runtime.diagram.ui.editpolicies.CreationEditPolicy;
+import org.eclipse.gmf.runtime.diagram.ui.editpolicies.DragDropEditPolicy;
+import org.eclipse.gmf.runtime.diagram.ui.editpolicies.EditPolicyRoles;
+import org.eclipse.gmf.runtime.diagram.ui.editpolicies.ResizableCompartmentEditPolicy;
+import org.eclipse.gmf.runtime.diagram.ui.figures.ResizableCompartmentFigure;
+import org.eclipse.gmf.runtime.draw2d.ui.figures.ConstrainedToolbarLayout;
+import org.eclipse.gmf.runtime.notation.View;
+
+import comrel.diagram.edit.policies.SingleQueuedUnitSingleQueuedUnitRefactoringUnitCompartment4CanonicalEditPolicy;
+import comrel.diagram.edit.policies.SingleQueuedUnitSingleQueuedUnitRefactoringUnitCompartment4ItemSemanticEditPolicy;
+import comrel.diagram.part.Messages;
+
+/**
+ * @generated
+ */
+public class SingleQueuedUnitSingleQueuedUnitRefactoringUnitCompartment4EditPart
+ extends ShapeCompartmentEditPart {
+
+ /**
+ * @generated
+ */
+ public static final int VISUAL_ID = 7046;
+
+ /**
+ * @generated
+ */
+ public SingleQueuedUnitSingleQueuedUnitRefactoringUnitCompartment4EditPart(
+ View view) {
+ super(view);
+ }
+
+ /**
+ * @generated
+ */
+ public String getCompartmentName() {
+ return Messages.SingleQueuedUnitSingleQueuedUnitRefactoringUnitCompartment4EditPart_title;
+ }
+
+ /**
+ * @generated
+ */
+ public IFigure createFigure() {
+ ResizableCompartmentFigure result = (ResizableCompartmentFigure) super
+ .createFigure();
+ result.setTitleVisibility(false);
+ return result;
+ }
+
+ /**
+ * @generated
+ */
+ protected void createDefaultEditPolicies() {
+ super.createDefaultEditPolicies();
+ installEditPolicy(EditPolicy.PRIMARY_DRAG_ROLE,
+ new ResizableCompartmentEditPolicy());
+ installEditPolicy(
+ EditPolicyRoles.SEMANTIC_ROLE,
+ new SingleQueuedUnitSingleQueuedUnitRefactoringUnitCompartment4ItemSemanticEditPolicy());
+ installEditPolicy(EditPolicyRoles.CREATION_ROLE,
+ new CreationEditPolicy());
+ installEditPolicy(EditPolicyRoles.DRAG_DROP_ROLE,
+ new DragDropEditPolicy());
+ installEditPolicy(
+ EditPolicyRoles.CANONICAL_ROLE,
+ new SingleQueuedUnitSingleQueuedUnitRefactoringUnitCompartment4CanonicalEditPolicy());
+ }
+
+ /**
+ * @generated
+ */
+ protected void setRatio(Double ratio) {
+ if (getFigure().getParent().getLayoutManager() instanceof ConstrainedToolbarLayout) {
+ super.setRatio(ratio);
+ }
+ }
+
+}
diff --git a/org.eclipse.emf.refactor.comrel.diagram/src/comrel/diagram/edit/parts/SingleQueuedUnitSingleQueuedUnitRefactoringUnitCompartment5EditPart.java b/org.eclipse.emf.refactor.comrel.diagram/src/comrel/diagram/edit/parts/SingleQueuedUnitSingleQueuedUnitRefactoringUnitCompartment5EditPart.java
new file mode 100644
index 0000000..d5a009d
--- /dev/null
+++ b/org.eclipse.emf.refactor.comrel.diagram/src/comrel/diagram/edit/parts/SingleQueuedUnitSingleQueuedUnitRefactoringUnitCompartment5EditPart.java
@@ -0,0 +1,85 @@
+/*
+ *
+ */
+package comrel.diagram.edit.parts;
+
+import org.eclipse.draw2d.IFigure;
+import org.eclipse.gef.EditPolicy;
+import org.eclipse.gmf.runtime.diagram.ui.editparts.ShapeCompartmentEditPart;
+import org.eclipse.gmf.runtime.diagram.ui.editpolicies.CreationEditPolicy;
+import org.eclipse.gmf.runtime.diagram.ui.editpolicies.DragDropEditPolicy;
+import org.eclipse.gmf.runtime.diagram.ui.editpolicies.EditPolicyRoles;
+import org.eclipse.gmf.runtime.diagram.ui.editpolicies.ResizableCompartmentEditPolicy;
+import org.eclipse.gmf.runtime.diagram.ui.figures.ResizableCompartmentFigure;
+import org.eclipse.gmf.runtime.draw2d.ui.figures.ConstrainedToolbarLayout;
+import org.eclipse.gmf.runtime.notation.View;
+
+import comrel.diagram.edit.policies.SingleQueuedUnitSingleQueuedUnitRefactoringUnitCompartment5CanonicalEditPolicy;
+import comrel.diagram.edit.policies.SingleQueuedUnitSingleQueuedUnitRefactoringUnitCompartment5ItemSemanticEditPolicy;
+import comrel.diagram.part.Messages;
+
+/**
+ * @generated
+ */
+public class SingleQueuedUnitSingleQueuedUnitRefactoringUnitCompartment5EditPart
+ extends ShapeCompartmentEditPart {
+
+ /**
+ * @generated
+ */
+ public static final int VISUAL_ID = 7050;
+
+ /**
+ * @generated
+ */
+ public SingleQueuedUnitSingleQueuedUnitRefactoringUnitCompartment5EditPart(
+ View view) {
+ super(view);
+ }
+
+ /**
+ * @generated
+ */
+ public String getCompartmentName() {
+ return Messages.SingleQueuedUnitSingleQueuedUnitRefactoringUnitCompartment5EditPart_title;
+ }
+
+ /**
+ * @generated
+ */
+ public IFigure createFigure() {
+ ResizableCompartmentFigure result = (ResizableCompartmentFigure) super
+ .createFigure();
+ result.setTitleVisibility(false);
+ return result;
+ }
+
+ /**
+ * @generated
+ */
+ protected void createDefaultEditPolicies() {
+ super.createDefaultEditPolicies();
+ installEditPolicy(EditPolicy.PRIMARY_DRAG_ROLE,
+ new ResizableCompartmentEditPolicy());
+ installEditPolicy(
+ EditPolicyRoles.SEMANTIC_ROLE,
+ new SingleQueuedUnitSingleQueuedUnitRefactoringUnitCompartment5ItemSemanticEditPolicy());
+ installEditPolicy(EditPolicyRoles.CREATION_ROLE,
+ new CreationEditPolicy());
+ installEditPolicy(EditPolicyRoles.DRAG_DROP_ROLE,
+ new DragDropEditPolicy());
+ installEditPolicy(
+ EditPolicyRoles.CANONICAL_ROLE,
+ new SingleQueuedUnitSingleQueuedUnitRefactoringUnitCompartment5CanonicalEditPolicy());
+ }
+
+ /**
+ * @generated
+ */
+ protected void setRatio(Double ratio) {
+ if (getFigure().getParent().getLayoutManager() instanceof ConstrainedToolbarLayout) {
+ super.setRatio(ratio);
+ }
+ }
+
+}
diff --git a/org.eclipse.emf.refactor.comrel.diagram/src/comrel/diagram/edit/parts/SingleQueuedUnitSingleQueuedUnitRefactoringUnitCompartment6EditPart.java b/org.eclipse.emf.refactor.comrel.diagram/src/comrel/diagram/edit/parts/SingleQueuedUnitSingleQueuedUnitRefactoringUnitCompartment6EditPart.java
new file mode 100644
index 0000000..0e89c78
--- /dev/null
+++ b/org.eclipse.emf.refactor.comrel.diagram/src/comrel/diagram/edit/parts/SingleQueuedUnitSingleQueuedUnitRefactoringUnitCompartment6EditPart.java
@@ -0,0 +1,85 @@
+/*
+ *
+ */
+package comrel.diagram.edit.parts;
+
+import org.eclipse.draw2d.IFigure;
+import org.eclipse.gef.EditPolicy;
+import org.eclipse.gmf.runtime.diagram.ui.editparts.ShapeCompartmentEditPart;
+import org.eclipse.gmf.runtime.diagram.ui.editpolicies.CreationEditPolicy;
+import org.eclipse.gmf.runtime.diagram.ui.editpolicies.DragDropEditPolicy;
+import org.eclipse.gmf.runtime.diagram.ui.editpolicies.EditPolicyRoles;
+import org.eclipse.gmf.runtime.diagram.ui.editpolicies.ResizableCompartmentEditPolicy;
+import org.eclipse.gmf.runtime.diagram.ui.figures.ResizableCompartmentFigure;
+import org.eclipse.gmf.runtime.draw2d.ui.figures.ConstrainedToolbarLayout;
+import org.eclipse.gmf.runtime.notation.View;
+
+import comrel.diagram.edit.policies.SingleQueuedUnitSingleQueuedUnitRefactoringUnitCompartment6CanonicalEditPolicy;
+import comrel.diagram.edit.policies.SingleQueuedUnitSingleQueuedUnitRefactoringUnitCompartment6ItemSemanticEditPolicy;
+import comrel.diagram.part.Messages;
+
+/**
+ * @generated
+ */
+public class SingleQueuedUnitSingleQueuedUnitRefactoringUnitCompartment6EditPart
+ extends ShapeCompartmentEditPart {
+
+ /**
+ * @generated
+ */
+ public static final int VISUAL_ID = 7056;
+
+ /**
+ * @generated
+ */
+ public SingleQueuedUnitSingleQueuedUnitRefactoringUnitCompartment6EditPart(
+ View view) {
+ super(view);
+ }
+
+ /**
+ * @generated
+ */
+ public String getCompartmentName() {
+ return Messages.SingleQueuedUnitSingleQueuedUnitRefactoringUnitCompartment6EditPart_title;
+ }
+
+ /**
+ * @generated
+ */
+ public IFigure createFigure() {
+ ResizableCompartmentFigure result = (ResizableCompartmentFigure) super
+ .createFigure();
+ result.setTitleVisibility(false);
+ return result;
+ }
+
+ /**
+ * @generated
+ */
+ protected void createDefaultEditPolicies() {
+ super.createDefaultEditPolicies();
+ installEditPolicy(EditPolicy.PRIMARY_DRAG_ROLE,
+ new ResizableCompartmentEditPolicy());
+ installEditPolicy(
+ EditPolicyRoles.SEMANTIC_ROLE,
+ new SingleQueuedUnitSingleQueuedUnitRefactoringUnitCompartment6ItemSemanticEditPolicy());
+ installEditPolicy(EditPolicyRoles.CREATION_ROLE,
+ new CreationEditPolicy());
+ installEditPolicy(EditPolicyRoles.DRAG_DROP_ROLE,
+ new DragDropEditPolicy());
+ installEditPolicy(
+ EditPolicyRoles.CANONICAL_ROLE,
+ new SingleQueuedUnitSingleQueuedUnitRefactoringUnitCompartment6CanonicalEditPolicy());
+ }
+
+ /**
+ * @generated
+ */
+ protected void setRatio(Double ratio) {
+ if (getFigure().getParent().getLayoutManager() instanceof ConstrainedToolbarLayout) {
+ super.setRatio(ratio);
+ }
+ }
+
+}
diff --git a/org.eclipse.emf.refactor.comrel.diagram/src/comrel/diagram/edit/parts/SingleQueuedUnitSingleQueuedUnitRefactoringUnitCompartment7EditPart.java b/org.eclipse.emf.refactor.comrel.diagram/src/comrel/diagram/edit/parts/SingleQueuedUnitSingleQueuedUnitRefactoringUnitCompartment7EditPart.java
new file mode 100644
index 0000000..81db4d7
--- /dev/null
+++ b/org.eclipse.emf.refactor.comrel.diagram/src/comrel/diagram/edit/parts/SingleQueuedUnitSingleQueuedUnitRefactoringUnitCompartment7EditPart.java
@@ -0,0 +1,85 @@
+/*
+ *
+ */
+package comrel.diagram.edit.parts;
+
+import org.eclipse.draw2d.IFigure;
+import org.eclipse.gef.EditPolicy;
+import org.eclipse.gmf.runtime.diagram.ui.editparts.ShapeCompartmentEditPart;
+import org.eclipse.gmf.runtime.diagram.ui.editpolicies.CreationEditPolicy;
+import org.eclipse.gmf.runtime.diagram.ui.editpolicies.DragDropEditPolicy;
+import org.eclipse.gmf.runtime.diagram.ui.editpolicies.EditPolicyRoles;
+import org.eclipse.gmf.runtime.diagram.ui.editpolicies.ResizableCompartmentEditPolicy;
+import org.eclipse.gmf.runtime.diagram.ui.figures.ResizableCompartmentFigure;
+import org.eclipse.gmf.runtime.draw2d.ui.figures.ConstrainedToolbarLayout;
+import org.eclipse.gmf.runtime.notation.View;
+
+import comrel.diagram.edit.policies.SingleQueuedUnitSingleQueuedUnitRefactoringUnitCompartment7CanonicalEditPolicy;
+import comrel.diagram.edit.policies.SingleQueuedUnitSingleQueuedUnitRefactoringUnitCompartment7ItemSemanticEditPolicy;
+import comrel.diagram.part.Messages;
+
+/**
+ * @generated
+ */
+public class SingleQueuedUnitSingleQueuedUnitRefactoringUnitCompartment7EditPart
+ extends ShapeCompartmentEditPart {
+
+ /**
+ * @generated
+ */
+ public static final int VISUAL_ID = 7078;
+
+ /**
+ * @generated
+ */
+ public SingleQueuedUnitSingleQueuedUnitRefactoringUnitCompartment7EditPart(
+ View view) {
+ super(view);
+ }
+
+ /**
+ * @generated
+ */
+ public String getCompartmentName() {
+ return Messages.SingleQueuedUnitSingleQueuedUnitRefactoringUnitCompartment7EditPart_title;
+ }
+
+ /**
+ * @generated
+ */
+ public IFigure createFigure() {
+ ResizableCompartmentFigure result = (ResizableCompartmentFigure) super
+ .createFigure();
+ result.setTitleVisibility(false);
+ return result;
+ }
+
+ /**
+ * @generated
+ */
+ protected void createDefaultEditPolicies() {
+ super.createDefaultEditPolicies();
+ installEditPolicy(EditPolicy.PRIMARY_DRAG_ROLE,
+ new ResizableCompartmentEditPolicy());
+ installEditPolicy(
+ EditPolicyRoles.SEMANTIC_ROLE,
+ new SingleQueuedUnitSingleQueuedUnitRefactoringUnitCompartment7ItemSemanticEditPolicy());
+ installEditPolicy(EditPolicyRoles.CREATION_ROLE,
+ new CreationEditPolicy());
+ installEditPolicy(EditPolicyRoles.DRAG_DROP_ROLE,
+ new DragDropEditPolicy());
+ installEditPolicy(
+ EditPolicyRoles.CANONICAL_ROLE,
+ new SingleQueuedUnitSingleQueuedUnitRefactoringUnitCompartment7CanonicalEditPolicy());
+ }
+
+ /**
+ * @generated
+ */
+ protected void setRatio(Double ratio) {
+ if (getFigure().getParent().getLayoutManager() instanceof ConstrainedToolbarLayout) {
+ super.setRatio(ratio);
+ }
+ }
+
+}
diff --git a/org.eclipse.emf.refactor.comrel.diagram/src/comrel/diagram/edit/parts/SingleQueuedUnitSingleQueuedUnitRefactoringUnitCompartmentEditPart.java b/org.eclipse.emf.refactor.comrel.diagram/src/comrel/diagram/edit/parts/SingleQueuedUnitSingleQueuedUnitRefactoringUnitCompartmentEditPart.java
new file mode 100644
index 0000000..ccf2747
--- /dev/null
+++ b/org.eclipse.emf.refactor.comrel.diagram/src/comrel/diagram/edit/parts/SingleQueuedUnitSingleQueuedUnitRefactoringUnitCompartmentEditPart.java
@@ -0,0 +1,85 @@
+/*
+ *
+ */
+package comrel.diagram.edit.parts;
+
+import org.eclipse.draw2d.IFigure;
+import org.eclipse.gef.EditPolicy;
+import org.eclipse.gmf.runtime.diagram.ui.editparts.ShapeCompartmentEditPart;
+import org.eclipse.gmf.runtime.diagram.ui.editpolicies.CreationEditPolicy;
+import org.eclipse.gmf.runtime.diagram.ui.editpolicies.DragDropEditPolicy;
+import org.eclipse.gmf.runtime.diagram.ui.editpolicies.EditPolicyRoles;
+import org.eclipse.gmf.runtime.diagram.ui.editpolicies.ResizableCompartmentEditPolicy;
+import org.eclipse.gmf.runtime.diagram.ui.figures.ResizableCompartmentFigure;
+import org.eclipse.gmf.runtime.draw2d.ui.figures.ConstrainedToolbarLayout;
+import org.eclipse.gmf.runtime.notation.View;
+
+import comrel.diagram.edit.policies.SingleQueuedUnitSingleQueuedUnitRefactoringUnitCompartmentCanonicalEditPolicy;
+import comrel.diagram.edit.policies.SingleQueuedUnitSingleQueuedUnitRefactoringUnitCompartmentItemSemanticEditPolicy;
+import comrel.diagram.part.Messages;
+
+/**
+ * @generated
+ */
+public class SingleQueuedUnitSingleQueuedUnitRefactoringUnitCompartmentEditPart
+ extends ShapeCompartmentEditPart {
+
+ /**
+ * @generated
+ */
+ public static final int VISUAL_ID = 7010;
+
+ /**
+ * @generated
+ */
+ public SingleQueuedUnitSingleQueuedUnitRefactoringUnitCompartmentEditPart(
+ View view) {
+ super(view);
+ }
+
+ /**
+ * @generated
+ */
+ public String getCompartmentName() {
+ return Messages.SingleQueuedUnitSingleQueuedUnitRefactoringUnitCompartmentEditPart_title;
+ }
+
+ /**
+ * @generated
+ */
+ public IFigure createFigure() {
+ ResizableCompartmentFigure result = (ResizableCompartmentFigure) super
+ .createFigure();
+ result.setTitleVisibility(false);
+ return result;
+ }
+
+ /**
+ * @generated
+ */
+ protected void createDefaultEditPolicies() {
+ super.createDefaultEditPolicies();
+ installEditPolicy(EditPolicy.PRIMARY_DRAG_ROLE,
+ new ResizableCompartmentEditPolicy());
+ installEditPolicy(
+ EditPolicyRoles.SEMANTIC_ROLE,
+ new SingleQueuedUnitSingleQueuedUnitRefactoringUnitCompartmentItemSemanticEditPolicy());
+ installEditPolicy(EditPolicyRoles.CREATION_ROLE,
+ new CreationEditPolicy());
+ installEditPolicy(EditPolicyRoles.DRAG_DROP_ROLE,
+ new DragDropEditPolicy());
+ installEditPolicy(
+ EditPolicyRoles.CANONICAL_ROLE,
+ new SingleQueuedUnitSingleQueuedUnitRefactoringUnitCompartmentCanonicalEditPolicy());
+ }
+
+ /**
+ * @generated
+ */
+ protected void setRatio(Double ratio) {
+ if (getFigure().getParent().getLayoutManager() instanceof ConstrainedToolbarLayout) {
+ super.setRatio(ratio);
+ }
+ }
+
+}
diff --git a/org.eclipse.emf.refactor.comrel.diagram/src/comrel/diagram/edit/parts/changes.txt b/org.eclipse.emf.refactor.comrel.diagram/src/comrel/diagram/edit/parts/changes.txt
new file mode 100644
index 0000000..a74e7f6
--- /dev/null
+++ b/org.eclipse.emf.refactor.comrel.diagram/src/comrel/diagram/edit/parts/changes.txt
@@ -0,0 +1,43 @@
+----------------------
+createNodeShape (rest)
+----------------------
+
+MultiInputPortFigure figure = new MultiInputPortFigure();
+InputPort port = (InputPort) this.resolveSemanticElement();
+figure.setPort(port);
+return primaryShape = figure;
+
+
+----------------------
+createNodeShape (last)
+----------------------
+
+SingleQueuedUnitFigure figure = new SingleQueuedUnitFigure();
+RectangleFigure compHelper = (RectangleFigure) figure.getChildren().get(1);
+RectangleFigure compRef = (RectangleFigure) figure.getChildren().get(2);
+Labels.setLabels(compHelper, compRef, true);
+RefactoringUnit unit = (RefactoringUnit) this.resolveSemanticElement();
+unit.setFigure(figure);
+return primaryShape = figure;
+
+
+----------------
+addFixedChildren
+----------------
+
+-> bei InputPorts
+
+PositionConstants.NORTH);
+locator.setCurrentSideOfParent(PositionConstants.NORTH); // Position des Ports
+locator.setPreferredSideOfParent(PositionConstants.NORTH); // Position des Ports
+
+
+----------------
+removeFixedChild
+----------------
+
+-> bei MULTI-InputPorts
+
+komplett auskommentieren
+
+
diff --git a/org.eclipse.emf.refactor.comrel.diagram/src/comrel/diagram/edit/parts/custom/Labels.java b/org.eclipse.emf.refactor.comrel.diagram/src/comrel/diagram/edit/parts/custom/Labels.java
new file mode 100644
index 0000000..eedf530
--- /dev/null
+++ b/org.eclipse.emf.refactor.comrel.diagram/src/comrel/diagram/edit/parts/custom/Labels.java
@@ -0,0 +1,46 @@
+package comrel.diagram.edit.parts.custom;
+
+import org.eclipse.draw2d.Label;
+import org.eclipse.draw2d.RectangleFigure;
+import org.eclipse.draw2d.geometry.Dimension;
+
+/**
+ * Selbstdefinierte Labels
+ * @author Gerrit
+ *
+ */
+public class Labels {
+
+ public static Label getHelperLabel(){
+ Label l = new Label();
+ l.setText("Helper Units");
+ return l;
+ }
+
+ public static Label getRefactoringUnitLabel(boolean singular){
+ String text = "Refactoring Unit";
+ if(!singular) {
+ text += "s";
+ }
+ Label l = new Label();
+ l.setText(text);
+ return l;
+ }
+
+
+ public static void setLabels(RectangleFigure compHelper, RectangleFigure compRef,boolean singular) {
+ Dimension maximumSize = new Dimension();
+ maximumSize.height = 15;
+ maximumSize.width = compHelper.getMaximumSize().width;
+
+ Label helperLabel = getHelperLabel();
+ helperLabel.setMaximumSize(maximumSize);
+ compHelper.add(helperLabel);
+ compHelper.setToolTip(getHelperLabel());
+ Label refLabel = getRefactoringUnitLabel(singular);
+ refLabel.setMaximumSize(maximumSize);
+
+ compRef.add(refLabel);
+ compRef.setToolTip(getRefactoringUnitLabel(singular));
+ }
+}
diff --git a/org.eclipse.emf.refactor.comrel.diagram/src/comrel/diagram/edit/policies/AtomicUnit2CanonicalEditPolicy.java b/org.eclipse.emf.refactor.comrel.diagram/src/comrel/diagram/edit/policies/AtomicUnit2CanonicalEditPolicy.java
new file mode 100644
index 0000000..72e1239
--- /dev/null
+++ b/org.eclipse.emf.refactor.comrel.diagram/src/comrel/diagram/edit/policies/AtomicUnit2CanonicalEditPolicy.java
@@ -0,0 +1,161 @@
+/*
+ *
+ */
+package comrel.diagram.edit.policies;
+
+import java.util.ArrayList;
+import java.util.Collection;
+import java.util.Iterator;
+import java.util.LinkedList;
+import java.util.List;
+
+import org.eclipse.core.runtime.IAdaptable;
+import org.eclipse.emf.ecore.EObject;
+import org.eclipse.emf.ecore.EStructuralFeature;
+import org.eclipse.gef.commands.Command;
+import org.eclipse.gmf.runtime.diagram.core.util.ViewUtil;
+import org.eclipse.gmf.runtime.diagram.ui.commands.DeferredLayoutCommand;
+import org.eclipse.gmf.runtime.diagram.ui.commands.ICommandProxy;
+import org.eclipse.gmf.runtime.diagram.ui.commands.SetViewMutabilityCommand;
+import org.eclipse.gmf.runtime.diagram.ui.editpolicies.CanonicalEditPolicy;
+import org.eclipse.gmf.runtime.diagram.ui.requests.CreateViewRequest;
+import org.eclipse.gmf.runtime.emf.core.util.EObjectAdapter;
+import org.eclipse.gmf.runtime.notation.Node;
+import org.eclipse.gmf.runtime.notation.View;
+
+import comrel.ComrelPackage;
+import comrel.diagram.edit.parts.SingleInputPort9EditPart;
+import comrel.diagram.part.ComrelDiagramUpdater;
+import comrel.diagram.part.ComrelNodeDescriptor;
+import comrel.diagram.part.ComrelVisualIDRegistry;
+
+/**
+ * @generated
+ */
+public class AtomicUnit2CanonicalEditPolicy extends CanonicalEditPolicy {
+
+ /**
+ * @generated
+ */
+ protected EStructuralFeature getFeatureToSynchronize() {
+ return ComrelPackage.eINSTANCE.getAtomicUnit_InputPorts();
+ }
+
+ /**
+ * @generated
+ */
+ @SuppressWarnings("rawtypes")
+ protected List getSemanticChildrenList() {
+ View viewObject = (View) getHost().getModel();
+ LinkedList<EObject> result = new LinkedList<EObject>();
+ List<ComrelNodeDescriptor> childDescriptors = ComrelDiagramUpdater
+ .getAtomicUnit_3034SemanticChildren(viewObject);
+ for (ComrelNodeDescriptor d : childDescriptors) {
+ result.add(d.getModelElement());
+ }
+ return result;
+ }
+
+ /**
+ * @generated
+ */
+ protected boolean isOrphaned(Collection<EObject> semanticChildren,
+ final View view) {
+ return isMyDiagramElement(view)
+ && !semanticChildren.contains(view.getElement());
+ }
+
+ /**
+ * @generated
+ */
+ private boolean isMyDiagramElement(View view) {
+ return SingleInputPort9EditPart.VISUAL_ID == ComrelVisualIDRegistry
+ .getVisualID(view);
+ }
+
+ /**
+ * @generated
+ */
+ protected void refreshSemantic() {
+ if (resolveSemanticElement() == null) {
+ return;
+ }
+ LinkedList<IAdaptable> createdViews = new LinkedList<IAdaptable>();
+ List<ComrelNodeDescriptor> childDescriptors = ComrelDiagramUpdater
+ .getAtomicUnit_3034SemanticChildren((View) getHost().getModel());
+ LinkedList<View> orphaned = new LinkedList<View>();
+ // we care to check only views we recognize as ours
+ LinkedList<View> knownViewChildren = new LinkedList<View>();
+ for (View v : getViewChildren()) {
+ if (isMyDiagramElement(v)) {
+ knownViewChildren.add(v);
+ }
+ }
+ // alternative to #cleanCanonicalSemanticChildren(getViewChildren(), semanticChildren)
+ //
+ // iteration happens over list of desired semantic elements, trying to find best matching View, while original CEP
+ // iterates views, potentially losing view (size/bounds) information - i.e. if there are few views to reference same EObject, only last one
+ // to answer isOrphaned == true will be used for the domain element representation, see #cleanCanonicalSemanticChildren()
+ for (Iterator<ComrelNodeDescriptor> descriptorsIterator = childDescriptors
+ .iterator(); descriptorsIterator.hasNext();) {
+ ComrelNodeDescriptor next = descriptorsIterator.next();
+ String hint = ComrelVisualIDRegistry.getType(next.getVisualID());
+ LinkedList<View> perfectMatch = new LinkedList<View>(); // both semanticElement and hint match that of NodeDescriptor
+ for (View childView : getViewChildren()) {
+ EObject semanticElement = childView.getElement();
+ if (next.getModelElement().equals(semanticElement)) {
+ if (hint.equals(childView.getType())) {
+ perfectMatch.add(childView);
+ // actually, can stop iteration over view children here, but
+ // may want to use not the first view but last one as a 'real' match (the way original CEP does
+ // with its trick with viewToSemanticMap inside #cleanCanonicalSemanticChildren
+ }
+ }
+ }
+ if (perfectMatch.size() > 0) {
+ descriptorsIterator.remove(); // precise match found no need to create anything for the NodeDescriptor
+ // use only one view (first or last?), keep rest as orphaned for further consideration
+ knownViewChildren.remove(perfectMatch.getFirst());
+ }
+ }
+ // those left in knownViewChildren are subject to removal - they are our diagram elements we didn't find match to,
+ // or those we have potential matches to, and thus need to be recreated, preserving size/location information.
+ orphaned.addAll(knownViewChildren);
+ //
+ ArrayList<CreateViewRequest.ViewDescriptor> viewDescriptors = new ArrayList<CreateViewRequest.ViewDescriptor>(
+ childDescriptors.size());
+ for (ComrelNodeDescriptor next : childDescriptors) {
+ String hint = ComrelVisualIDRegistry.getType(next.getVisualID());
+ IAdaptable elementAdapter = new CanonicalElementAdapter(
+ next.getModelElement(), hint);
+ CreateViewRequest.ViewDescriptor descriptor = new CreateViewRequest.ViewDescriptor(
+ elementAdapter, Node.class, hint, ViewUtil.APPEND, false,
+ host().getDiagramPreferencesHint());
+ viewDescriptors.add(descriptor);
+ }
+
+ boolean changed = deleteViews(orphaned.iterator());
+ //
+ CreateViewRequest request = getCreateViewRequest(viewDescriptors);
+ Command cmd = getCreateViewCommand(request);
+ if (cmd != null && cmd.canExecute()) {
+ SetViewMutabilityCommand.makeMutable(
+ new EObjectAdapter(host().getNotationView())).execute();
+ executeCommand(cmd);
+ @SuppressWarnings("unchecked")
+ List<IAdaptable> nl = (List<IAdaptable>) request.getNewObject();
+ createdViews.addAll(nl);
+ }
+ if (changed || createdViews.size() > 0) {
+ postProcessRefreshSemantic(createdViews);
+ }
+ if (createdViews.size() > 1) {
+ // perform a layout of the container
+ DeferredLayoutCommand layoutCmd = new DeferredLayoutCommand(host()
+ .getEditingDomain(), createdViews, host());
+ executeCommand(new ICommandProxy(layoutCmd));
+ }
+
+ makeViewsImmutable(createdViews);
+ }
+}
diff --git a/org.eclipse.emf.refactor.comrel.diagram/src/comrel/diagram/edit/policies/AtomicUnit2ItemSemanticEditPolicy.java b/org.eclipse.emf.refactor.comrel.diagram/src/comrel/diagram/edit/policies/AtomicUnit2ItemSemanticEditPolicy.java
new file mode 100644
index 0000000..a8fb3d6
--- /dev/null
+++ b/org.eclipse.emf.refactor.comrel.diagram/src/comrel/diagram/edit/policies/AtomicUnit2ItemSemanticEditPolicy.java
@@ -0,0 +1,121 @@
+/*
+ *
+ */
+package comrel.diagram.edit.policies;
+
+import java.util.Iterator;
+
+import org.eclipse.emf.ecore.EAnnotation;
+import org.eclipse.gef.commands.Command;
+import org.eclipse.gmf.runtime.common.core.command.ICompositeCommand;
+import org.eclipse.gmf.runtime.diagram.core.commands.DeleteCommand;
+import org.eclipse.gmf.runtime.emf.commands.core.command.CompositeTransactionalCommand;
+import org.eclipse.gmf.runtime.emf.type.core.commands.DestroyElementCommand;
+import org.eclipse.gmf.runtime.emf.type.core.requests.CreateElementRequest;
+import org.eclipse.gmf.runtime.emf.type.core.requests.DestroyElementRequest;
+import org.eclipse.gmf.runtime.notation.Edge;
+import org.eclipse.gmf.runtime.notation.Node;
+import org.eclipse.gmf.runtime.notation.View;
+
+import comrel.diagram.edit.commands.SingleInputPort9CreateCommand;
+import comrel.diagram.edit.parts.MultiSinglePortMappingEditPart;
+import comrel.diagram.edit.parts.SingleInputPort9EditPart;
+import comrel.diagram.edit.parts.SinglePortMappingEditPart;
+import comrel.diagram.part.ComrelVisualIDRegistry;
+import comrel.diagram.providers.ComrelElementTypes;
+
+/**
+ * @generated
+ */
+public class AtomicUnit2ItemSemanticEditPolicy extends
+ ComrelBaseItemSemanticEditPolicy {
+
+ /**
+ * @generated
+ */
+ public AtomicUnit2ItemSemanticEditPolicy() {
+ super(ComrelElementTypes.AtomicUnit_3034);
+ }
+
+ /**
+ * @generated
+ */
+ protected Command getCreateCommand(CreateElementRequest req) {
+ if (ComrelElementTypes.SingleInputPort_3035 == req.getElementType()) {
+ return getGEFWrapper(new SingleInputPort9CreateCommand(req));
+ }
+ return super.getCreateCommand(req);
+ }
+
+ /**
+ * @generated
+ */
+ protected Command getDestroyElementCommand(DestroyElementRequest req) {
+ View view = (View) getHost().getModel();
+ CompositeTransactionalCommand cmd = new CompositeTransactionalCommand(
+ getEditingDomain(), null);
+ cmd.setTransactionNestingEnabled(false);
+ EAnnotation annotation = view.getEAnnotation("Shortcut"); //$NON-NLS-1$
+ if (annotation == null) {
+ // there are indirectly referenced children, need extra commands: false
+ addDestroyChildNodesCommand(cmd);
+ addDestroyShortcutsCommand(cmd, view);
+ // delete host element
+ cmd.add(new DestroyElementCommand(req));
+ } else {
+ cmd.add(new DeleteCommand(getEditingDomain(), view));
+ }
+ return getGEFWrapper(cmd.reduce());
+ }
+
+ /**
+ * @generated
+ */
+ private void addDestroyChildNodesCommand(ICompositeCommand cmd) {
+ View view = (View) getHost().getModel();
+ for (Iterator<?> nit = view.getChildren().iterator(); nit.hasNext();) {
+ Node node = (Node) nit.next();
+ switch (ComrelVisualIDRegistry.getVisualID(node)) {
+ case SingleInputPort9EditPart.VISUAL_ID:
+ for (Iterator<?> it = node.getTargetEdges().iterator(); it
+ .hasNext();) {
+ Edge incomingLink = (Edge) it.next();
+ if (ComrelVisualIDRegistry.getVisualID(incomingLink) == SinglePortMappingEditPart.VISUAL_ID) {
+ DestroyElementRequest r = new DestroyElementRequest(
+ incomingLink.getElement(), false);
+ cmd.add(new DestroyElementCommand(r));
+ cmd.add(new DeleteCommand(getEditingDomain(),
+ incomingLink));
+ continue;
+ }
+ if (ComrelVisualIDRegistry.getVisualID(incomingLink) == MultiSinglePortMappingEditPart.VISUAL_ID) {
+ DestroyElementRequest r = new DestroyElementRequest(
+ incomingLink.getElement(), false);
+ cmd.add(new DestroyElementCommand(r));
+ cmd.add(new DeleteCommand(getEditingDomain(),
+ incomingLink));
+ continue;
+ }
+ }
+ for (Iterator<?> it = node.getSourceEdges().iterator(); it
+ .hasNext();) {
+ Edge outgoingLink = (Edge) it.next();
+ if (ComrelVisualIDRegistry.getVisualID(outgoingLink) == SinglePortMappingEditPart.VISUAL_ID) {
+ DestroyElementRequest r = new DestroyElementRequest(
+ outgoingLink.getElement(), false);
+ cmd.add(new DestroyElementCommand(r));
+ cmd.add(new DeleteCommand(getEditingDomain(),
+ outgoingLink));
+ continue;
+ }
+ }
+ cmd.add(new DestroyElementCommand(new DestroyElementRequest(
+ getEditingDomain(), node.getElement(), false))); // directlyOwned: true
+ // don't need explicit deletion of node as parent's view deletion would clean child views as well
+ // cmd.add(new org.eclipse.gmf.runtime.diagram.core.commands.DeleteCommand(getEditingDomain(), node));
+ break;
+ }
+ }
+ }
+
+}
diff --git a/org.eclipse.emf.refactor.comrel.diagram/src/comrel/diagram/edit/policies/AtomicUnit3CanonicalEditPolicy.java b/org.eclipse.emf.refactor.comrel.diagram/src/comrel/diagram/edit/policies/AtomicUnit3CanonicalEditPolicy.java
new file mode 100644
index 0000000..285cd7e
--- /dev/null
+++ b/org.eclipse.emf.refactor.comrel.diagram/src/comrel/diagram/edit/policies/AtomicUnit3CanonicalEditPolicy.java
@@ -0,0 +1,161 @@
+/*
+ *
+ */
+package comrel.diagram.edit.policies;
+
+import java.util.ArrayList;
+import java.util.Collection;
+import java.util.Iterator;
+import java.util.LinkedList;
+import java.util.List;
+
+import org.eclipse.core.runtime.IAdaptable;
+import org.eclipse.emf.ecore.EObject;
+import org.eclipse.emf.ecore.EStructuralFeature;
+import org.eclipse.gef.commands.Command;
+import org.eclipse.gmf.runtime.diagram.core.util.ViewUtil;
+import org.eclipse.gmf.runtime.diagram.ui.commands.DeferredLayoutCommand;
+import org.eclipse.gmf.runtime.diagram.ui.commands.ICommandProxy;
+import org.eclipse.gmf.runtime.diagram.ui.commands.SetViewMutabilityCommand;
+import org.eclipse.gmf.runtime.diagram.ui.editpolicies.CanonicalEditPolicy;
+import org.eclipse.gmf.runtime.diagram.ui.requests.CreateViewRequest;
+import org.eclipse.gmf.runtime.emf.core.util.EObjectAdapter;
+import org.eclipse.gmf.runtime.notation.Node;
+import org.eclipse.gmf.runtime.notation.View;
+
+import comrel.ComrelPackage;
+import comrel.diagram.edit.parts.SingleInputPort9EditPart;
+import comrel.diagram.part.ComrelDiagramUpdater;
+import comrel.diagram.part.ComrelNodeDescriptor;
+import comrel.diagram.part.ComrelVisualIDRegistry;
+
+/**
+ * @generated
+ */
+public class AtomicUnit3CanonicalEditPolicy extends CanonicalEditPolicy {
+
+ /**
+ * @generated
+ */
+ protected EStructuralFeature getFeatureToSynchronize() {
+ return ComrelPackage.eINSTANCE.getAtomicUnit_InputPorts();
+ }
+
+ /**
+ * @generated
+ */
+ @SuppressWarnings("rawtypes")
+ protected List getSemanticChildrenList() {
+ View viewObject = (View) getHost().getModel();
+ LinkedList<EObject> result = new LinkedList<EObject>();
+ List<ComrelNodeDescriptor> childDescriptors = ComrelDiagramUpdater
+ .getAtomicUnit_3049SemanticChildren(viewObject);
+ for (ComrelNodeDescriptor d : childDescriptors) {
+ result.add(d.getModelElement());
+ }
+ return result;
+ }
+
+ /**
+ * @generated
+ */
+ protected boolean isOrphaned(Collection<EObject> semanticChildren,
+ final View view) {
+ return isMyDiagramElement(view)
+ && !semanticChildren.contains(view.getElement());
+ }
+
+ /**
+ * @generated
+ */
+ private boolean isMyDiagramElement(View view) {
+ return SingleInputPort9EditPart.VISUAL_ID == ComrelVisualIDRegistry
+ .getVisualID(view);
+ }
+
+ /**
+ * @generated
+ */
+ protected void refreshSemantic() {
+ if (resolveSemanticElement() == null) {
+ return;
+ }
+ LinkedList<IAdaptable> createdViews = new LinkedList<IAdaptable>();
+ List<ComrelNodeDescriptor> childDescriptors = ComrelDiagramUpdater
+ .getAtomicUnit_3049SemanticChildren((View) getHost().getModel());
+ LinkedList<View> orphaned = new LinkedList<View>();
+ // we care to check only views we recognize as ours
+ LinkedList<View> knownViewChildren = new LinkedList<View>();
+ for (View v : getViewChildren()) {
+ if (isMyDiagramElement(v)) {
+ knownViewChildren.add(v);
+ }
+ }
+ // alternative to #cleanCanonicalSemanticChildren(getViewChildren(), semanticChildren)
+ //
+ // iteration happens over list of desired semantic elements, trying to find best matching View, while original CEP
+ // iterates views, potentially losing view (size/bounds) information - i.e. if there are few views to reference same EObject, only last one
+ // to answer isOrphaned == true will be used for the domain element representation, see #cleanCanonicalSemanticChildren()
+ for (Iterator<ComrelNodeDescriptor> descriptorsIterator = childDescriptors
+ .iterator(); descriptorsIterator.hasNext();) {
+ ComrelNodeDescriptor next = descriptorsIterator.next();
+ String hint = ComrelVisualIDRegistry.getType(next.getVisualID());
+ LinkedList<View> perfectMatch = new LinkedList<View>(); // both semanticElement and hint match that of NodeDescriptor
+ for (View childView : getViewChildren()) {
+ EObject semanticElement = childView.getElement();
+ if (next.getModelElement().equals(semanticElement)) {
+ if (hint.equals(childView.getType())) {
+ perfectMatch.add(childView);
+ // actually, can stop iteration over view children here, but
+ // may want to use not the first view but last one as a 'real' match (the way original CEP does
+ // with its trick with viewToSemanticMap inside #cleanCanonicalSemanticChildren
+ }
+ }
+ }
+ if (perfectMatch.size() > 0) {
+ descriptorsIterator.remove(); // precise match found no need to create anything for the NodeDescriptor
+ // use only one view (first or last?), keep rest as orphaned for further consideration
+ knownViewChildren.remove(perfectMatch.getFirst());
+ }
+ }
+ // those left in knownViewChildren are subject to removal - they are our diagram elements we didn't find match to,
+ // or those we have potential matches to, and thus need to be recreated, preserving size/location information.
+ orphaned.addAll(knownViewChildren);
+ //
+ ArrayList<CreateViewRequest.ViewDescriptor> viewDescriptors = new ArrayList<CreateViewRequest.ViewDescriptor>(
+ childDescriptors.size());
+ for (ComrelNodeDescriptor next : childDescriptors) {
+ String hint = ComrelVisualIDRegistry.getType(next.getVisualID());
+ IAdaptable elementAdapter = new CanonicalElementAdapter(
+ next.getModelElement(), hint);
+ CreateViewRequest.ViewDescriptor descriptor = new CreateViewRequest.ViewDescriptor(
+ elementAdapter, Node.class, hint, ViewUtil.APPEND, false,
+ host().getDiagramPreferencesHint());
+ viewDescriptors.add(descriptor);
+ }
+
+ boolean changed = deleteViews(orphaned.iterator());
+ //
+ CreateViewRequest request = getCreateViewRequest(viewDescriptors);
+ Command cmd = getCreateViewCommand(request);
+ if (cmd != null && cmd.canExecute()) {
+ SetViewMutabilityCommand.makeMutable(
+ new EObjectAdapter(host().getNotationView())).execute();
+ executeCommand(cmd);
+ @SuppressWarnings("unchecked")
+ List<IAdaptable> nl = (List<IAdaptable>) request.getNewObject();
+ createdViews.addAll(nl);
+ }
+ if (changed || createdViews.size() > 0) {
+ postProcessRefreshSemantic(createdViews);
+ }
+ if (createdViews.size() > 1) {
+ // perform a layout of the container
+ DeferredLayoutCommand layoutCmd = new DeferredLayoutCommand(host()
+ .getEditingDomain(), createdViews, host());
+ executeCommand(new ICommandProxy(layoutCmd));
+ }
+
+ makeViewsImmutable(createdViews);
+ }
+}
diff --git a/org.eclipse.emf.refactor.comrel.diagram/src/comrel/diagram/edit/policies/AtomicUnit3ItemSemanticEditPolicy.java b/org.eclipse.emf.refactor.comrel.diagram/src/comrel/diagram/edit/policies/AtomicUnit3ItemSemanticEditPolicy.java
new file mode 100644
index 0000000..7f0fc18
--- /dev/null
+++ b/org.eclipse.emf.refactor.comrel.diagram/src/comrel/diagram/edit/policies/AtomicUnit3ItemSemanticEditPolicy.java
@@ -0,0 +1,121 @@
+/*
+ *
+ */
+package comrel.diagram.edit.policies;
+
+import java.util.Iterator;
+
+import org.eclipse.emf.ecore.EAnnotation;
+import org.eclipse.gef.commands.Command;
+import org.eclipse.gmf.runtime.common.core.command.ICompositeCommand;
+import org.eclipse.gmf.runtime.diagram.core.commands.DeleteCommand;
+import org.eclipse.gmf.runtime.emf.commands.core.command.CompositeTransactionalCommand;
+import org.eclipse.gmf.runtime.emf.type.core.commands.DestroyElementCommand;
+import org.eclipse.gmf.runtime.emf.type.core.requests.CreateElementRequest;
+import org.eclipse.gmf.runtime.emf.type.core.requests.DestroyElementRequest;
+import org.eclipse.gmf.runtime.notation.Edge;
+import org.eclipse.gmf.runtime.notation.Node;
+import org.eclipse.gmf.runtime.notation.View;
+
+import comrel.diagram.edit.commands.SingleInputPort9CreateCommand;
+import comrel.diagram.edit.parts.MultiSinglePortMappingEditPart;
+import comrel.diagram.edit.parts.SingleInputPort9EditPart;
+import comrel.diagram.edit.parts.SinglePortMappingEditPart;
+import comrel.diagram.part.ComrelVisualIDRegistry;
+import comrel.diagram.providers.ComrelElementTypes;
+
+/**
+ * @generated
+ */
+public class AtomicUnit3ItemSemanticEditPolicy extends
+ ComrelBaseItemSemanticEditPolicy {
+
+ /**
+ * @generated
+ */
+ public AtomicUnit3ItemSemanticEditPolicy() {
+ super(ComrelElementTypes.AtomicUnit_3049);
+ }
+
+ /**
+ * @generated
+ */
+ protected Command getCreateCommand(CreateElementRequest req) {
+ if (ComrelElementTypes.SingleInputPort_3035 == req.getElementType()) {
+ return getGEFWrapper(new SingleInputPort9CreateCommand(req));
+ }
+ return super.getCreateCommand(req);
+ }
+
+ /**
+ * @generated
+ */
+ protected Command getDestroyElementCommand(DestroyElementRequest req) {
+ View view = (View) getHost().getModel();
+ CompositeTransactionalCommand cmd = new CompositeTransactionalCommand(
+ getEditingDomain(), null);
+ cmd.setTransactionNestingEnabled(false);
+ EAnnotation annotation = view.getEAnnotation("Shortcut"); //$NON-NLS-1$
+ if (annotation == null) {
+ // there are indirectly referenced children, need extra commands: false
+ addDestroyChildNodesCommand(cmd);
+ addDestroyShortcutsCommand(cmd, view);
+ // delete host element
+ cmd.add(new DestroyElementCommand(req));
+ } else {
+ cmd.add(new DeleteCommand(getEditingDomain(), view));
+ }
+ return getGEFWrapper(cmd.reduce());
+ }
+
+ /**
+ * @generated
+ */
+ private void addDestroyChildNodesCommand(ICompositeCommand cmd) {
+ View view = (View) getHost().getModel();
+ for (Iterator<?> nit = view.getChildren().iterator(); nit.hasNext();) {
+ Node node = (Node) nit.next();
+ switch (ComrelVisualIDRegistry.getVisualID(node)) {
+ case SingleInputPort9EditPart.VISUAL_ID:
+ for (Iterator<?> it = node.getTargetEdges().iterator(); it
+ .hasNext();) {
+ Edge incomingLink = (Edge) it.next();
+ if (ComrelVisualIDRegistry.getVisualID(incomingLink) == SinglePortMappingEditPart.VISUAL_ID) {
+ DestroyElementRequest r = new DestroyElementRequest(
+ incomingLink.getElement(), false);
+ cmd.add(new DestroyElementCommand(r));
+ cmd.add(new DeleteCommand(getEditingDomain(),
+ incomingLink));
+ continue;
+ }
+ if (ComrelVisualIDRegistry.getVisualID(incomingLink) == MultiSinglePortMappingEditPart.VISUAL_ID) {
+ DestroyElementRequest r = new DestroyElementRequest(
+ incomingLink.getElement(), false);
+ cmd.add(new DestroyElementCommand(r));
+ cmd.add(new DeleteCommand(getEditingDomain(),
+ incomingLink));
+ continue;
+ }
+ }
+ for (Iterator<?> it = node.getSourceEdges().iterator(); it
+ .hasNext();) {
+ Edge outgoingLink = (Edge) it.next();
+ if (ComrelVisualIDRegistry.getVisualID(outgoingLink) == SinglePortMappingEditPart.VISUAL_ID) {
+ DestroyElementRequest r = new DestroyElementRequest(
+ outgoingLink.getElement(), false);
+ cmd.add(new DestroyElementCommand(r));
+ cmd.add(new DeleteCommand(getEditingDomain(),
+ outgoingLink));
+ continue;
+ }
+ }
+ cmd.add(new DestroyElementCommand(new DestroyElementRequest(
+ getEditingDomain(), node.getElement(), false))); // directlyOwned: true
+ // don't need explicit deletion of node as parent's view deletion would clean child views as well
+ // cmd.add(new org.eclipse.gmf.runtime.diagram.core.commands.DeleteCommand(getEditingDomain(), node));
+ break;
+ }
+ }
+ }
+
+}
diff --git a/org.eclipse.emf.refactor.comrel.diagram/src/comrel/diagram/edit/policies/AtomicUnit4CanonicalEditPolicy.java b/org.eclipse.emf.refactor.comrel.diagram/src/comrel/diagram/edit/policies/AtomicUnit4CanonicalEditPolicy.java
new file mode 100644
index 0000000..e168963
--- /dev/null
+++ b/org.eclipse.emf.refactor.comrel.diagram/src/comrel/diagram/edit/policies/AtomicUnit4CanonicalEditPolicy.java
@@ -0,0 +1,161 @@
+/*
+ *
+ */
+package comrel.diagram.edit.policies;
+
+import java.util.ArrayList;
+import java.util.Collection;
+import java.util.Iterator;
+import java.util.LinkedList;
+import java.util.List;
+
+import org.eclipse.core.runtime.IAdaptable;
+import org.eclipse.emf.ecore.EObject;
+import org.eclipse.emf.ecore.EStructuralFeature;
+import org.eclipse.gef.commands.Command;
+import org.eclipse.gmf.runtime.diagram.core.util.ViewUtil;
+import org.eclipse.gmf.runtime.diagram.ui.commands.DeferredLayoutCommand;
+import org.eclipse.gmf.runtime.diagram.ui.commands.ICommandProxy;
+import org.eclipse.gmf.runtime.diagram.ui.commands.SetViewMutabilityCommand;
+import org.eclipse.gmf.runtime.diagram.ui.editpolicies.CanonicalEditPolicy;
+import org.eclipse.gmf.runtime.diagram.ui.requests.CreateViewRequest;
+import org.eclipse.gmf.runtime.emf.core.util.EObjectAdapter;
+import org.eclipse.gmf.runtime.notation.Node;
+import org.eclipse.gmf.runtime.notation.View;
+
+import comrel.ComrelPackage;
+import comrel.diagram.edit.parts.SingleInputPort9EditPart;
+import comrel.diagram.part.ComrelDiagramUpdater;
+import comrel.diagram.part.ComrelNodeDescriptor;
+import comrel.diagram.part.ComrelVisualIDRegistry;
+
+/**
+ * @generated
+ */
+public class AtomicUnit4CanonicalEditPolicy extends CanonicalEditPolicy {
+
+ /**
+ * @generated
+ */
+ protected EStructuralFeature getFeatureToSynchronize() {
+ return ComrelPackage.eINSTANCE.getAtomicUnit_InputPorts();
+ }
+
+ /**
+ * @generated
+ */
+ @SuppressWarnings("rawtypes")
+ protected List getSemanticChildrenList() {
+ View viewObject = (View) getHost().getModel();
+ LinkedList<EObject> result = new LinkedList<EObject>();
+ List<ComrelNodeDescriptor> childDescriptors = ComrelDiagramUpdater
+ .getAtomicUnit_3068SemanticChildren(viewObject);
+ for (ComrelNodeDescriptor d : childDescriptors) {
+ result.add(d.getModelElement());
+ }
+ return result;
+ }
+
+ /**
+ * @generated
+ */
+ protected boolean isOrphaned(Collection<EObject> semanticChildren,
+ final View view) {
+ return isMyDiagramElement(view)
+ && !semanticChildren.contains(view.getElement());
+ }
+
+ /**
+ * @generated
+ */
+ private boolean isMyDiagramElement(View view) {
+ return SingleInputPort9EditPart.VISUAL_ID == ComrelVisualIDRegistry
+ .getVisualID(view);
+ }
+
+ /**
+ * @generated
+ */
+ protected void refreshSemantic() {
+ if (resolveSemanticElement() == null) {
+ return;
+ }
+ LinkedList<IAdaptable> createdViews = new LinkedList<IAdaptable>();
+ List<ComrelNodeDescriptor> childDescriptors = ComrelDiagramUpdater
+ .getAtomicUnit_3068SemanticChildren((View) getHost().getModel());
+ LinkedList<View> orphaned = new LinkedList<View>();
+ // we care to check only views we recognize as ours
+ LinkedList<View> knownViewChildren = new LinkedList<View>();
+ for (View v : getViewChildren()) {
+ if (isMyDiagramElement(v)) {
+ knownViewChildren.add(v);
+ }
+ }
+ // alternative to #cleanCanonicalSemanticChildren(getViewChildren(), semanticChildren)
+ //
+ // iteration happens over list of desired semantic elements, trying to find best matching View, while original CEP
+ // iterates views, potentially losing view (size/bounds) information - i.e. if there are few views to reference same EObject, only last one
+ // to answer isOrphaned == true will be used for the domain element representation, see #cleanCanonicalSemanticChildren()
+ for (Iterator<ComrelNodeDescriptor> descriptorsIterator = childDescriptors
+ .iterator(); descriptorsIterator.hasNext();) {
+ ComrelNodeDescriptor next = descriptorsIterator.next();
+ String hint = ComrelVisualIDRegistry.getType(next.getVisualID());
+ LinkedList<View> perfectMatch = new LinkedList<View>(); // both semanticElement and hint match that of NodeDescriptor
+ for (View childView : getViewChildren()) {
+ EObject semanticElement = childView.getElement();
+ if (next.getModelElement().equals(semanticElement)) {
+ if (hint.equals(childView.getType())) {
+ perfectMatch.add(childView);
+ // actually, can stop iteration over view children here, but
+ // may want to use not the first view but last one as a 'real' match (the way original CEP does
+ // with its trick with viewToSemanticMap inside #cleanCanonicalSemanticChildren
+ }
+ }
+ }
+ if (perfectMatch.size() > 0) {
+ descriptorsIterator.remove(); // precise match found no need to create anything for the NodeDescriptor
+ // use only one view (first or last?), keep rest as orphaned for further consideration
+ knownViewChildren.remove(perfectMatch.getFirst());
+ }
+ }
+ // those left in knownViewChildren are subject to removal - they are our diagram elements we didn't find match to,
+ // or those we have potential matches to, and thus need to be recreated, preserving size/location information.
+ orphaned.addAll(knownViewChildren);
+ //
+ ArrayList<CreateViewRequest.ViewDescriptor> viewDescriptors = new ArrayList<CreateViewRequest.ViewDescriptor>(
+ childDescriptors.size());
+ for (ComrelNodeDescriptor next : childDescriptors) {
+ String hint = ComrelVisualIDRegistry.getType(next.getVisualID());
+ IAdaptable elementAdapter = new CanonicalElementAdapter(
+ next.getModelElement(), hint);
+ CreateViewRequest.ViewDescriptor descriptor = new CreateViewRequest.ViewDescriptor(
+ elementAdapter, Node.class, hint, ViewUtil.APPEND, false,
+ host().getDiagramPreferencesHint());
+ viewDescriptors.add(descriptor);
+ }
+
+ boolean changed = deleteViews(orphaned.iterator());
+ //
+ CreateViewRequest request = getCreateViewRequest(viewDescriptors);
+ Command cmd = getCreateViewCommand(request);
+ if (cmd != null && cmd.canExecute()) {
+ SetViewMutabilityCommand.makeMutable(
+ new EObjectAdapter(host().getNotationView())).execute();
+ executeCommand(cmd);
+ @SuppressWarnings("unchecked")
+ List<IAdaptable> nl = (List<IAdaptable>) request.getNewObject();
+ createdViews.addAll(nl);
+ }
+ if (changed || createdViews.size() > 0) {
+ postProcessRefreshSemantic(createdViews);
+ }
+ if (createdViews.size() > 1) {
+ // perform a layout of the container
+ DeferredLayoutCommand layoutCmd = new DeferredLayoutCommand(host()
+ .getEditingDomain(), createdViews, host());
+ executeCommand(new ICommandProxy(layoutCmd));
+ }
+
+ makeViewsImmutable(createdViews);
+ }
+}
diff --git a/org.eclipse.emf.refactor.comrel.diagram/src/comrel/diagram/edit/policies/AtomicUnit4ItemSemanticEditPolicy.java b/org.eclipse.emf.refactor.comrel.diagram/src/comrel/diagram/edit/policies/AtomicUnit4ItemSemanticEditPolicy.java
new file mode 100644
index 0000000..8131f79
--- /dev/null
+++ b/org.eclipse.emf.refactor.comrel.diagram/src/comrel/diagram/edit/policies/AtomicUnit4ItemSemanticEditPolicy.java
@@ -0,0 +1,121 @@
+/*
+ *
+ */
+package comrel.diagram.edit.policies;
+
+import java.util.Iterator;
+
+import org.eclipse.emf.ecore.EAnnotation;
+import org.eclipse.gef.commands.Command;
+import org.eclipse.gmf.runtime.common.core.command.ICompositeCommand;
+import org.eclipse.gmf.runtime.diagram.core.commands.DeleteCommand;
+import org.eclipse.gmf.runtime.emf.commands.core.command.CompositeTransactionalCommand;
+import org.eclipse.gmf.runtime.emf.type.core.commands.DestroyElementCommand;
+import org.eclipse.gmf.runtime.emf.type.core.requests.CreateElementRequest;
+import org.eclipse.gmf.runtime.emf.type.core.requests.DestroyElementRequest;
+import org.eclipse.gmf.runtime.notation.Edge;
+import org.eclipse.gmf.runtime.notation.Node;
+import org.eclipse.gmf.runtime.notation.View;
+
+import comrel.diagram.edit.commands.SingleInputPort9CreateCommand;
+import comrel.diagram.edit.parts.MultiSinglePortMappingEditPart;
+import comrel.diagram.edit.parts.SingleInputPort9EditPart;
+import comrel.diagram.edit.parts.SinglePortMappingEditPart;
+import comrel.diagram.part.ComrelVisualIDRegistry;
+import comrel.diagram.providers.ComrelElementTypes;
+
+/**
+ * @generated
+ */
+public class AtomicUnit4ItemSemanticEditPolicy extends
+ ComrelBaseItemSemanticEditPolicy {
+
+ /**
+ * @generated
+ */
+ public AtomicUnit4ItemSemanticEditPolicy() {
+ super(ComrelElementTypes.AtomicUnit_3068);
+ }
+
+ /**
+ * @generated
+ */
+ protected Command getCreateCommand(CreateElementRequest req) {
+ if (ComrelElementTypes.SingleInputPort_3035 == req.getElementType()) {
+ return getGEFWrapper(new SingleInputPort9CreateCommand(req));
+ }
+ return super.getCreateCommand(req);
+ }
+
+ /**
+ * @generated
+ */
+ protected Command getDestroyElementCommand(DestroyElementRequest req) {
+ View view = (View) getHost().getModel();
+ CompositeTransactionalCommand cmd = new CompositeTransactionalCommand(
+ getEditingDomain(), null);
+ cmd.setTransactionNestingEnabled(false);
+ EAnnotation annotation = view.getEAnnotation("Shortcut"); //$NON-NLS-1$
+ if (annotation == null) {
+ // there are indirectly referenced children, need extra commands: false
+ addDestroyChildNodesCommand(cmd);
+ addDestroyShortcutsCommand(cmd, view);
+ // delete host element
+ cmd.add(new DestroyElementCommand(req));
+ } else {
+ cmd.add(new DeleteCommand(getEditingDomain(), view));
+ }
+ return getGEFWrapper(cmd.reduce());
+ }
+
+ /**
+ * @generated
+ */
+ private void addDestroyChildNodesCommand(ICompositeCommand cmd) {
+ View view = (View) getHost().getModel();
+ for (Iterator<?> nit = view.getChildren().iterator(); nit.hasNext();) {
+ Node node = (Node) nit.next();
+ switch (ComrelVisualIDRegistry.getVisualID(node)) {
+ case SingleInputPort9EditPart.VISUAL_ID:
+ for (Iterator<?> it = node.getTargetEdges().iterator(); it
+ .hasNext();) {
+ Edge incomingLink = (Edge) it.next();
+ if (ComrelVisualIDRegistry.getVisualID(incomingLink) == SinglePortMappingEditPart.VISUAL_ID) {
+ DestroyElementRequest r = new DestroyElementRequest(
+ incomingLink.getElement(), false);
+ cmd.add(new DestroyElementCommand(r));
+ cmd.add(new DeleteCommand(getEditingDomain(),
+ incomingLink));
+ continue;
+ }
+ if (ComrelVisualIDRegistry.getVisualID(incomingLink) == MultiSinglePortMappingEditPart.VISUAL_ID) {
+ DestroyElementRequest r = new DestroyElementRequest(
+ incomingLink.getElement(), false);
+ cmd.add(new DestroyElementCommand(r));
+ cmd.add(new DeleteCommand(getEditingDomain(),
+ incomingLink));
+ continue;
+ }
+ }
+ for (Iterator<?> it = node.getSourceEdges().iterator(); it
+ .hasNext();) {
+ Edge outgoingLink = (Edge) it.next();
+ if (ComrelVisualIDRegistry.getVisualID(outgoingLink) == SinglePortMappingEditPart.VISUAL_ID) {
+ DestroyElementRequest r = new DestroyElementRequest(
+ outgoingLink.getElement(), false);
+ cmd.add(new DestroyElementCommand(r));
+ cmd.add(new DeleteCommand(getEditingDomain(),
+ outgoingLink));
+ continue;
+ }
+ }
+ cmd.add(new DestroyElementCommand(new DestroyElementRequest(
+ getEditingDomain(), node.getElement(), false))); // directlyOwned: true
+ // don't need explicit deletion of node as parent's view deletion would clean child views as well
+ // cmd.add(new org.eclipse.gmf.runtime.diagram.core.commands.DeleteCommand(getEditingDomain(), node));
+ break;
+ }
+ }
+ }
+
+}
diff --git a/org.eclipse.emf.refactor.comrel.diagram/src/comrel/diagram/edit/policies/AtomicUnit5CanonicalEditPolicy.java b/org.eclipse.emf.refactor.comrel.diagram/src/comrel/diagram/edit/policies/AtomicUnit5CanonicalEditPolicy.java
new file mode 100644
index 0000000..30753e1
--- /dev/null
+++ b/org.eclipse.emf.refactor.comrel.diagram/src/comrel/diagram/edit/policies/AtomicUnit5CanonicalEditPolicy.java
@@ -0,0 +1,161 @@
+/*
+ *
+ */
+package comrel.diagram.edit.policies;
+
+import java.util.ArrayList;
+import java.util.Collection;
+import java.util.Iterator;
+import java.util.LinkedList;
+import java.util.List;
+
+import org.eclipse.core.runtime.IAdaptable;
+import org.eclipse.emf.ecore.EObject;
+import org.eclipse.emf.ecore.EStructuralFeature;
+import org.eclipse.gef.commands.Command;
+import org.eclipse.gmf.runtime.diagram.core.util.ViewUtil;
+import org.eclipse.gmf.runtime.diagram.ui.commands.DeferredLayoutCommand;
+import org.eclipse.gmf.runtime.diagram.ui.commands.ICommandProxy;
+import org.eclipse.gmf.runtime.diagram.ui.commands.SetViewMutabilityCommand;
+import org.eclipse.gmf.runtime.diagram.ui.editpolicies.CanonicalEditPolicy;
+import org.eclipse.gmf.runtime.diagram.ui.requests.CreateViewRequest;
+import org.eclipse.gmf.runtime.emf.core.util.EObjectAdapter;
+import org.eclipse.gmf.runtime.notation.Node;
+import org.eclipse.gmf.runtime.notation.View;
+
+import comrel.ComrelPackage;
+import comrel.diagram.edit.parts.SingleInputPort9EditPart;
+import comrel.diagram.part.ComrelDiagramUpdater;
+import comrel.diagram.part.ComrelNodeDescriptor;
+import comrel.diagram.part.ComrelVisualIDRegistry;
+
+/**
+ * @generated
+ */
+public class AtomicUnit5CanonicalEditPolicy extends CanonicalEditPolicy {
+
+ /**
+ * @generated
+ */
+ protected EStructuralFeature getFeatureToSynchronize() {
+ return ComrelPackage.eINSTANCE.getAtomicUnit_InputPorts();
+ }
+
+ /**
+ * @generated
+ */
+ @SuppressWarnings("rawtypes")
+ protected List getSemanticChildrenList() {
+ View viewObject = (View) getHost().getModel();
+ LinkedList<EObject> result = new LinkedList<EObject>();
+ List<ComrelNodeDescriptor> childDescriptors = ComrelDiagramUpdater
+ .getAtomicUnit_3074SemanticChildren(viewObject);
+ for (ComrelNodeDescriptor d : childDescriptors) {
+ result.add(d.getModelElement());
+ }
+ return result;
+ }
+
+ /**
+ * @generated
+ */
+ protected boolean isOrphaned(Collection<EObject> semanticChildren,
+ final View view) {
+ return isMyDiagramElement(view)
+ && !semanticChildren.contains(view.getElement());
+ }
+
+ /**
+ * @generated
+ */
+ private boolean isMyDiagramElement(View view) {
+ return SingleInputPort9EditPart.VISUAL_ID == ComrelVisualIDRegistry
+ .getVisualID(view);
+ }
+
+ /**
+ * @generated
+ */
+ protected void refreshSemantic() {
+ if (resolveSemanticElement() == null) {
+ return;
+ }
+ LinkedList<IAdaptable> createdViews = new LinkedList<IAdaptable>();
+ List<ComrelNodeDescriptor> childDescriptors = ComrelDiagramUpdater
+ .getAtomicUnit_3074SemanticChildren((View) getHost().getModel());
+ LinkedList<View> orphaned = new LinkedList<View>();
+ // we care to check only views we recognize as ours
+ LinkedList<View> knownViewChildren = new LinkedList<View>();
+ for (View v : getViewChildren()) {
+ if (isMyDiagramElement(v)) {
+ knownViewChildren.add(v);
+ }
+ }
+ // alternative to #cleanCanonicalSemanticChildren(getViewChildren(), semanticChildren)
+ //
+ // iteration happens over list of desired semantic elements, trying to find best matching View, while original CEP
+ // iterates views, potentially losing view (size/bounds) information - i.e. if there are few views to reference same EObject, only last one
+ // to answer isOrphaned == true will be used for the domain element representation, see #cleanCanonicalSemanticChildren()
+ for (Iterator<ComrelNodeDescriptor> descriptorsIterator = childDescriptors
+ .iterator(); descriptorsIterator.hasNext();) {
+ ComrelNodeDescriptor next = descriptorsIterator.next();
+ String hint = ComrelVisualIDRegistry.getType(next.getVisualID());
+ LinkedList<View> perfectMatch = new LinkedList<View>(); // both semanticElement and hint match that of NodeDescriptor
+ for (View childView : getViewChildren()) {
+ EObject semanticElement = childView.getElement();
+ if (next.getModelElement().equals(semanticElement)) {
+ if (hint.equals(childView.getType())) {
+ perfectMatch.add(childView);
+ // actually, can stop iteration over view children here, but
+ // may want to use not the first view but last one as a 'real' match (the way original CEP does
+ // with its trick with viewToSemanticMap inside #cleanCanonicalSemanticChildren
+ }
+ }
+ }
+ if (perfectMatch.size() > 0) {
+ descriptorsIterator.remove(); // precise match found no need to create anything for the NodeDescriptor
+ // use only one view (first or last?), keep rest as orphaned for further consideration
+ knownViewChildren.remove(perfectMatch.getFirst());
+ }
+ }
+ // those left in knownViewChildren are subject to removal - they are our diagram elements we didn't find match to,
+ // or those we have potential matches to, and thus need to be recreated, preserving size/location information.
+ orphaned.addAll(knownViewChildren);
+ //
+ ArrayList<CreateViewRequest.ViewDescriptor> viewDescriptors = new ArrayList<CreateViewRequest.ViewDescriptor>(
+ childDescriptors.size());
+ for (ComrelNodeDescriptor next : childDescriptors) {
+ String hint = ComrelVisualIDRegistry.getType(next.getVisualID());
+ IAdaptable elementAdapter = new CanonicalElementAdapter(
+ next.getModelElement(), hint);
+ CreateViewRequest.ViewDescriptor descriptor = new CreateViewRequest.ViewDescriptor(
+ elementAdapter, Node.class, hint, ViewUtil.APPEND, false,
+ host().getDiagramPreferencesHint());
+ viewDescriptors.add(descriptor);
+ }
+
+ boolean changed = deleteViews(orphaned.iterator());
+ //
+ CreateViewRequest request = getCreateViewRequest(viewDescriptors);
+ Command cmd = getCreateViewCommand(request);
+ if (cmd != null && cmd.canExecute()) {
+ SetViewMutabilityCommand.makeMutable(
+ new EObjectAdapter(host().getNotationView())).execute();
+ executeCommand(cmd);
+ @SuppressWarnings("unchecked")
+ List<IAdaptable> nl = (List<IAdaptable>) request.getNewObject();
+ createdViews.addAll(nl);
+ }
+ if (changed || createdViews.size() > 0) {
+ postProcessRefreshSemantic(createdViews);
+ }
+ if (createdViews.size() > 1) {
+ // perform a layout of the container
+ DeferredLayoutCommand layoutCmd = new DeferredLayoutCommand(host()
+ .getEditingDomain(), createdViews, host());
+ executeCommand(new ICommandProxy(layoutCmd));
+ }
+
+ makeViewsImmutable(createdViews);
+ }
+}
diff --git a/org.eclipse.emf.refactor.comrel.diagram/src/comrel/diagram/edit/policies/AtomicUnit5ItemSemanticEditPolicy.java b/org.eclipse.emf.refactor.comrel.diagram/src/comrel/diagram/edit/policies/AtomicUnit5ItemSemanticEditPolicy.java
new file mode 100644
index 0000000..6c2dc0f
--- /dev/null
+++ b/org.eclipse.emf.refactor.comrel.diagram/src/comrel/diagram/edit/policies/AtomicUnit5ItemSemanticEditPolicy.java
@@ -0,0 +1,121 @@
+/*
+ *
+ */
+package comrel.diagram.edit.policies;
+
+import java.util.Iterator;
+
+import org.eclipse.emf.ecore.EAnnotation;
+import org.eclipse.gef.commands.Command;
+import org.eclipse.gmf.runtime.common.core.command.ICompositeCommand;
+import org.eclipse.gmf.runtime.diagram.core.commands.DeleteCommand;
+import org.eclipse.gmf.runtime.emf.commands.core.command.CompositeTransactionalCommand;
+import org.eclipse.gmf.runtime.emf.type.core.commands.DestroyElementCommand;
+import org.eclipse.gmf.runtime.emf.type.core.requests.CreateElementRequest;
+import org.eclipse.gmf.runtime.emf.type.core.requests.DestroyElementRequest;
+import org.eclipse.gmf.runtime.notation.Edge;
+import org.eclipse.gmf.runtime.notation.Node;
+import org.eclipse.gmf.runtime.notation.View;
+
+import comrel.diagram.edit.commands.SingleInputPort9CreateCommand;
+import comrel.diagram.edit.parts.MultiSinglePortMappingEditPart;
+import comrel.diagram.edit.parts.SingleInputPort9EditPart;
+import comrel.diagram.edit.parts.SinglePortMappingEditPart;
+import comrel.diagram.part.ComrelVisualIDRegistry;
+import comrel.diagram.providers.ComrelElementTypes;
+
+/**
+ * @generated
+ */
+public class AtomicUnit5ItemSemanticEditPolicy extends
+ ComrelBaseItemSemanticEditPolicy {
+
+ /**
+ * @generated
+ */
+ public AtomicUnit5ItemSemanticEditPolicy() {
+ super(ComrelElementTypes.AtomicUnit_3074);
+ }
+
+ /**
+ * @generated
+ */
+ protected Command getCreateCommand(CreateElementRequest req) {
+ if (ComrelElementTypes.SingleInputPort_3035 == req.getElementType()) {
+ return getGEFWrapper(new SingleInputPort9CreateCommand(req));
+ }
+ return super.getCreateCommand(req);
+ }
+
+ /**
+ * @generated
+ */
+ protected Command getDestroyElementCommand(DestroyElementRequest req) {
+ View view = (View) getHost().getModel();
+ CompositeTransactionalCommand cmd = new CompositeTransactionalCommand(
+ getEditingDomain(), null);
+ cmd.setTransactionNestingEnabled(false);
+ EAnnotation annotation = view.getEAnnotation("Shortcut"); //$NON-NLS-1$
+ if (annotation == null) {
+ // there are indirectly referenced children, need extra commands: false
+ addDestroyChildNodesCommand(cmd);
+ addDestroyShortcutsCommand(cmd, view);
+ // delete host element
+ cmd.add(new DestroyElementCommand(req));
+ } else {
+ cmd.add(new DeleteCommand(getEditingDomain(), view));
+ }
+ return getGEFWrapper(cmd.reduce());
+ }
+
+ /**
+ * @generated
+ */
+ private void addDestroyChildNodesCommand(ICompositeCommand cmd) {
+ View view = (View) getHost().getModel();
+ for (Iterator<?> nit = view.getChildren().iterator(); nit.hasNext();) {
+ Node node = (Node) nit.next();
+ switch (ComrelVisualIDRegistry.getVisualID(node)) {
+ case SingleInputPort9EditPart.VISUAL_ID:
+ for (Iterator<?> it = node.getTargetEdges().iterator(); it
+ .hasNext();) {
+ Edge incomingLink = (Edge) it.next();
+ if (ComrelVisualIDRegistry.getVisualID(incomingLink) == SinglePortMappingEditPart.VISUAL_ID) {
+ DestroyElementRequest r = new DestroyElementRequest(
+ incomingLink.getElement(), false);
+ cmd.add(new DestroyElementCommand(r));
+ cmd.add(new DeleteCommand(getEditingDomain(),
+ incomingLink));
+ continue;
+ }
+ if (ComrelVisualIDRegistry.getVisualID(incomingLink) == MultiSinglePortMappingEditPart.VISUAL_ID) {
+ DestroyElementRequest r = new DestroyElementRequest(
+ incomingLink.getElement(), false);
+ cmd.add(new DestroyElementCommand(r));
+ cmd.add(new DeleteCommand(getEditingDomain(),
+ incomingLink));
+ continue;
+ }
+ }
+ for (Iterator<?> it = node.getSourceEdges().iterator(); it
+ .hasNext();) {
+ Edge outgoingLink = (Edge) it.next();
+ if (ComrelVisualIDRegistry.getVisualID(outgoingLink) == SinglePortMappingEditPart.VISUAL_ID) {
+ DestroyElementRequest r = new DestroyElementRequest(
+ outgoingLink.getElement(), false);
+ cmd.add(new DestroyElementCommand(r));
+ cmd.add(new DeleteCommand(getEditingDomain(),
+ outgoingLink));
+ continue;
+ }
+ }
+ cmd.add(new DestroyElementCommand(new DestroyElementRequest(
+ getEditingDomain(), node.getElement(), false))); // directlyOwned: true
+ // don't need explicit deletion of node as parent's view deletion would clean child views as well
+ // cmd.add(new org.eclipse.gmf.runtime.diagram.core.commands.DeleteCommand(getEditingDomain(), node));
+ break;
+ }
+ }
+ }
+
+}
diff --git a/org.eclipse.emf.refactor.comrel.diagram/src/comrel/diagram/edit/policies/AtomicUnit6CanonicalEditPolicy.java b/org.eclipse.emf.refactor.comrel.diagram/src/comrel/diagram/edit/policies/AtomicUnit6CanonicalEditPolicy.java
new file mode 100644
index 0000000..a5a7760
--- /dev/null
+++ b/org.eclipse.emf.refactor.comrel.diagram/src/comrel/diagram/edit/policies/AtomicUnit6CanonicalEditPolicy.java
@@ -0,0 +1,161 @@
+/*
+ *
+ */
+package comrel.diagram.edit.policies;
+
+import java.util.ArrayList;
+import java.util.Collection;
+import java.util.Iterator;
+import java.util.LinkedList;
+import java.util.List;
+
+import org.eclipse.core.runtime.IAdaptable;
+import org.eclipse.emf.ecore.EObject;
+import org.eclipse.emf.ecore.EStructuralFeature;
+import org.eclipse.gef.commands.Command;
+import org.eclipse.gmf.runtime.diagram.core.util.ViewUtil;
+import org.eclipse.gmf.runtime.diagram.ui.commands.DeferredLayoutCommand;
+import org.eclipse.gmf.runtime.diagram.ui.commands.ICommandProxy;
+import org.eclipse.gmf.runtime.diagram.ui.commands.SetViewMutabilityCommand;
+import org.eclipse.gmf.runtime.diagram.ui.editpolicies.CanonicalEditPolicy;
+import org.eclipse.gmf.runtime.diagram.ui.requests.CreateViewRequest;
+import org.eclipse.gmf.runtime.emf.core.util.EObjectAdapter;
+import org.eclipse.gmf.runtime.notation.Node;
+import org.eclipse.gmf.runtime.notation.View;
+
+import comrel.ComrelPackage;
+import comrel.diagram.edit.parts.SingleInputPort9EditPart;
+import comrel.diagram.part.ComrelDiagramUpdater;
+import comrel.diagram.part.ComrelNodeDescriptor;
+import comrel.diagram.part.ComrelVisualIDRegistry;
+
+/**
+ * @generated
+ */
+public class AtomicUnit6CanonicalEditPolicy extends CanonicalEditPolicy {
+
+ /**
+ * @generated
+ */
+ protected EStructuralFeature getFeatureToSynchronize() {
+ return ComrelPackage.eINSTANCE.getAtomicUnit_InputPorts();
+ }
+
+ /**
+ * @generated
+ */
+ @SuppressWarnings("rawtypes")
+ protected List getSemanticChildrenList() {
+ View viewObject = (View) getHost().getModel();
+ LinkedList<EObject> result = new LinkedList<EObject>();
+ List<ComrelNodeDescriptor> childDescriptors = ComrelDiagramUpdater
+ .getAtomicUnit_3077SemanticChildren(viewObject);
+ for (ComrelNodeDescriptor d : childDescriptors) {
+ result.add(d.getModelElement());
+ }
+ return result;
+ }
+
+ /**
+ * @generated
+ */
+ protected boolean isOrphaned(Collection<EObject> semanticChildren,
+ final View view) {
+ return isMyDiagramElement(view)
+ && !semanticChildren.contains(view.getElement());
+ }
+
+ /**
+ * @generated
+ */
+ private boolean isMyDiagramElement(View view) {
+ return SingleInputPort9EditPart.VISUAL_ID == ComrelVisualIDRegistry
+ .getVisualID(view);
+ }
+
+ /**
+ * @generated
+ */
+ protected void refreshSemantic() {
+ if (resolveSemanticElement() == null) {
+ return;
+ }
+ LinkedList<IAdaptable> createdViews = new LinkedList<IAdaptable>();
+ List<ComrelNodeDescriptor> childDescriptors = ComrelDiagramUpdater
+ .getAtomicUnit_3077SemanticChildren((View) getHost().getModel());
+ LinkedList<View> orphaned = new LinkedList<View>();
+ // we care to check only views we recognize as ours
+ LinkedList<View> knownViewChildren = new LinkedList<View>();
+ for (View v : getViewChildren()) {
+ if (isMyDiagramElement(v)) {
+ knownViewChildren.add(v);
+ }
+ }
+ // alternative to #cleanCanonicalSemanticChildren(getViewChildren(), semanticChildren)
+ //
+ // iteration happens over list of desired semantic elements, trying to find best matching View, while original CEP
+ // iterates views, potentially losing view (size/bounds) information - i.e. if there are few views to reference same EObject, only last one
+ // to answer isOrphaned == true will be used for the domain element representation, see #cleanCanonicalSemanticChildren()
+ for (Iterator<ComrelNodeDescriptor> descriptorsIterator = childDescriptors
+ .iterator(); descriptorsIterator.hasNext();) {
+ ComrelNodeDescriptor next = descriptorsIterator.next();
+ String hint = ComrelVisualIDRegistry.getType(next.getVisualID());
+ LinkedList<View> perfectMatch = new LinkedList<View>(); // both semanticElement and hint match that of NodeDescriptor
+ for (View childView : getViewChildren()) {
+ EObject semanticElement = childView.getElement();
+ if (next.getModelElement().equals(semanticElement)) {
+ if (hint.equals(childView.getType())) {
+ perfectMatch.add(childView);
+ // actually, can stop iteration over view children here, but
+ // may want to use not the first view but last one as a 'real' match (the way original CEP does
+ // with its trick with viewToSemanticMap inside #cleanCanonicalSemanticChildren
+ }
+ }
+ }
+ if (perfectMatch.size() > 0) {
+ descriptorsIterator.remove(); // precise match found no need to create anything for the NodeDescriptor
+ // use only one view (first or last?), keep rest as orphaned for further consideration
+ knownViewChildren.remove(perfectMatch.getFirst());
+ }
+ }
+ // those left in knownViewChildren are subject to removal - they are our diagram elements we didn't find match to,
+ // or those we have potential matches to, and thus need to be recreated, preserving size/location information.
+ orphaned.addAll(knownViewChildren);
+ //
+ ArrayList<CreateViewRequest.ViewDescriptor> viewDescriptors = new ArrayList<CreateViewRequest.ViewDescriptor>(
+ childDescriptors.size());
+ for (ComrelNodeDescriptor next : childDescriptors) {
+ String hint = ComrelVisualIDRegistry.getType(next.getVisualID());
+ IAdaptable elementAdapter = new CanonicalElementAdapter(
+ next.getModelElement(), hint);
+ CreateViewRequest.ViewDescriptor descriptor = new CreateViewRequest.ViewDescriptor(
+ elementAdapter, Node.class, hint, ViewUtil.APPEND, false,
+ host().getDiagramPreferencesHint());
+ viewDescriptors.add(descriptor);
+ }
+
+ boolean changed = deleteViews(orphaned.iterator());
+ //
+ CreateViewRequest request = getCreateViewRequest(viewDescriptors);
+ Command cmd = getCreateViewCommand(request);
+ if (cmd != null && cmd.canExecute()) {
+ SetViewMutabilityCommand.makeMutable(
+ new EObjectAdapter(host().getNotationView())).execute();
+ executeCommand(cmd);
+ @SuppressWarnings("unchecked")
+ List<IAdaptable> nl = (List<IAdaptable>) request.getNewObject();
+ createdViews.addAll(nl);
+ }
+ if (changed || createdViews.size() > 0) {
+ postProcessRefreshSemantic(createdViews);
+ }
+ if (createdViews.size() > 1) {
+ // perform a layout of the container
+ DeferredLayoutCommand layoutCmd = new DeferredLayoutCommand(host()
+ .getEditingDomain(), createdViews, host());
+ executeCommand(new ICommandProxy(layoutCmd));
+ }
+
+ makeViewsImmutable(createdViews);
+ }
+}
diff --git a/org.eclipse.emf.refactor.comrel.diagram/src/comrel/diagram/edit/policies/AtomicUnit6ItemSemanticEditPolicy.java b/org.eclipse.emf.refactor.comrel.diagram/src/comrel/diagram/edit/policies/AtomicUnit6ItemSemanticEditPolicy.java
new file mode 100644
index 0000000..faf8f99
--- /dev/null
+++ b/org.eclipse.emf.refactor.comrel.diagram/src/comrel/diagram/edit/policies/AtomicUnit6ItemSemanticEditPolicy.java
@@ -0,0 +1,121 @@
+/*
+ *
+ */
+package comrel.diagram.edit.policies;
+
+import java.util.Iterator;
+
+import org.eclipse.emf.ecore.EAnnotation;
+import org.eclipse.gef.commands.Command;
+import org.eclipse.gmf.runtime.common.core.command.ICompositeCommand;
+import org.eclipse.gmf.runtime.diagram.core.commands.DeleteCommand;
+import org.eclipse.gmf.runtime.emf.commands.core.command.CompositeTransactionalCommand;
+import org.eclipse.gmf.runtime.emf.type.core.commands.DestroyElementCommand;
+import org.eclipse.gmf.runtime.emf.type.core.requests.CreateElementRequest;
+import org.eclipse.gmf.runtime.emf.type.core.requests.DestroyElementRequest;
+import org.eclipse.gmf.runtime.notation.Edge;
+import org.eclipse.gmf.runtime.notation.Node;
+import org.eclipse.gmf.runtime.notation.View;
+
+import comrel.diagram.edit.commands.SingleInputPort9CreateCommand;
+import comrel.diagram.edit.parts.MultiSinglePortMappingEditPart;
+import comrel.diagram.edit.parts.SingleInputPort9EditPart;
+import comrel.diagram.edit.parts.SinglePortMappingEditPart;
+import comrel.diagram.part.ComrelVisualIDRegistry;
+import comrel.diagram.providers.ComrelElementTypes;
+
+/**
+ * @generated
+ */
+public class AtomicUnit6ItemSemanticEditPolicy extends
+ ComrelBaseItemSemanticEditPolicy {
+
+ /**
+ * @generated
+ */
+ public AtomicUnit6ItemSemanticEditPolicy() {
+ super(ComrelElementTypes.AtomicUnit_3077);
+ }
+
+ /**
+ * @generated
+ */
+ protected Command getCreateCommand(CreateElementRequest req) {
+ if (ComrelElementTypes.SingleInputPort_3035 == req.getElementType()) {
+ return getGEFWrapper(new SingleInputPort9CreateCommand(req));
+ }
+ return super.getCreateCommand(req);
+ }
+
+ /**
+ * @generated
+ */
+ protected Command getDestroyElementCommand(DestroyElementRequest req) {
+ View view = (View) getHost().getModel();
+ CompositeTransactionalCommand cmd = new CompositeTransactionalCommand(
+ getEditingDomain(), null);
+ cmd.setTransactionNestingEnabled(false);
+ EAnnotation annotation = view.getEAnnotation("Shortcut"); //$NON-NLS-1$
+ if (annotation == null) {
+ // there are indirectly referenced children, need extra commands: false
+ addDestroyChildNodesCommand(cmd);
+ addDestroyShortcutsCommand(cmd, view);
+ // delete host element
+ cmd.add(new DestroyElementCommand(req));
+ } else {
+ cmd.add(new DeleteCommand(getEditingDomain(), view));
+ }
+ return getGEFWrapper(cmd.reduce());
+ }
+
+ /**
+ * @generated
+ */
+ private void addDestroyChildNodesCommand(ICompositeCommand cmd) {
+ View view = (View) getHost().getModel();
+ for (Iterator<?> nit = view.getChildren().iterator(); nit.hasNext();) {
+ Node node = (Node) nit.next();
+ switch (ComrelVisualIDRegistry.getVisualID(node)) {
+ case SingleInputPort9EditPart.VISUAL_ID:
+ for (Iterator<?> it = node.getTargetEdges().iterator(); it
+ .hasNext();) {
+ Edge incomingLink = (Edge) it.next();
+ if (ComrelVisualIDRegistry.getVisualID(incomingLink) == SinglePortMappingEditPart.VISUAL_ID) {
+ DestroyElementRequest r = new DestroyElementRequest(
+ incomingLink.getElement(), false);
+ cmd.add(new DestroyElementCommand(r));
+ cmd.add(new DeleteCommand(getEditingDomain(),
+ incomingLink));
+ continue;
+ }
+ if (ComrelVisualIDRegistry.getVisualID(incomingLink) == MultiSinglePortMappingEditPart.VISUAL_ID) {
+ DestroyElementRequest r = new DestroyElementRequest(
+ incomingLink.getElement(), false);
+ cmd.add(new DestroyElementCommand(r));
+ cmd.add(new DeleteCommand(getEditingDomain(),
+ incomingLink));
+ continue;
+ }
+ }
+ for (Iterator<?> it = node.getSourceEdges().iterator(); it
+ .hasNext();) {
+ Edge outgoingLink = (Edge) it.next();
+ if (ComrelVisualIDRegistry.getVisualID(outgoingLink) == SinglePortMappingEditPart.VISUAL_ID) {
+ DestroyElementRequest r = new DestroyElementRequest(
+ outgoingLink.getElement(), false);
+ cmd.add(new DestroyElementCommand(r));
+ cmd.add(new DeleteCommand(getEditingDomain(),
+ outgoingLink));
+ continue;
+ }
+ }
+ cmd.add(new DestroyElementCommand(new DestroyElementRequest(
+ getEditingDomain(), node.getElement(), false))); // directlyOwned: true
+ // don't need explicit deletion of node as parent's view deletion would clean child views as well
+ // cmd.add(new org.eclipse.gmf.runtime.diagram.core.commands.DeleteCommand(getEditingDomain(), node));
+ break;
+ }
+ }
+ }
+
+}
diff --git a/org.eclipse.emf.refactor.comrel.diagram/src/comrel/diagram/edit/policies/AtomicUnit7CanonicalEditPolicy.java b/org.eclipse.emf.refactor.comrel.diagram/src/comrel/diagram/edit/policies/AtomicUnit7CanonicalEditPolicy.java
new file mode 100644
index 0000000..f33392b
--- /dev/null
+++ b/org.eclipse.emf.refactor.comrel.diagram/src/comrel/diagram/edit/policies/AtomicUnit7CanonicalEditPolicy.java
@@ -0,0 +1,161 @@
+/*
+ *
+ */
+package comrel.diagram.edit.policies;
+
+import java.util.ArrayList;
+import java.util.Collection;
+import java.util.Iterator;
+import java.util.LinkedList;
+import java.util.List;
+
+import org.eclipse.core.runtime.IAdaptable;
+import org.eclipse.emf.ecore.EObject;
+import org.eclipse.emf.ecore.EStructuralFeature;
+import org.eclipse.gef.commands.Command;
+import org.eclipse.gmf.runtime.diagram.core.util.ViewUtil;
+import org.eclipse.gmf.runtime.diagram.ui.commands.DeferredLayoutCommand;
+import org.eclipse.gmf.runtime.diagram.ui.commands.ICommandProxy;
+import org.eclipse.gmf.runtime.diagram.ui.commands.SetViewMutabilityCommand;
+import org.eclipse.gmf.runtime.diagram.ui.editpolicies.CanonicalEditPolicy;
+import org.eclipse.gmf.runtime.diagram.ui.requests.CreateViewRequest;
+import org.eclipse.gmf.runtime.emf.core.util.EObjectAdapter;
+import org.eclipse.gmf.runtime.notation.Node;
+import org.eclipse.gmf.runtime.notation.View;
+
+import comrel.ComrelPackage;
+import comrel.diagram.edit.parts.SingleInputPort9EditPart;
+import comrel.diagram.part.ComrelDiagramUpdater;
+import comrel.diagram.part.ComrelNodeDescriptor;
+import comrel.diagram.part.ComrelVisualIDRegistry;
+
+/**
+ * @generated
+ */
+public class AtomicUnit7CanonicalEditPolicy extends CanonicalEditPolicy {
+
+ /**
+ * @generated
+ */
+ protected EStructuralFeature getFeatureToSynchronize() {
+ return ComrelPackage.eINSTANCE.getAtomicUnit_InputPorts();
+ }
+
+ /**
+ * @generated
+ */
+ @SuppressWarnings("rawtypes")
+ protected List getSemanticChildrenList() {
+ View viewObject = (View) getHost().getModel();
+ LinkedList<EObject> result = new LinkedList<EObject>();
+ List<ComrelNodeDescriptor> childDescriptors = ComrelDiagramUpdater
+ .getAtomicUnit_3078SemanticChildren(viewObject);
+ for (ComrelNodeDescriptor d : childDescriptors) {
+ result.add(d.getModelElement());
+ }
+ return result;
+ }
+
+ /**
+ * @generated
+ */
+ protected boolean isOrphaned(Collection<EObject> semanticChildren,
+ final View view) {
+ return isMyDiagramElement(view)
+ && !semanticChildren.contains(view.getElement());
+ }
+
+ /**
+ * @generated
+ */
+ private boolean isMyDiagramElement(View view) {
+ return SingleInputPort9EditPart.VISUAL_ID == ComrelVisualIDRegistry
+ .getVisualID(view);
+ }
+
+ /**
+ * @generated
+ */
+ protected void refreshSemantic() {
+ if (resolveSemanticElement() == null) {
+ return;
+ }
+ LinkedList<IAdaptable> createdViews = new LinkedList<IAdaptable>();
+ List<ComrelNodeDescriptor> childDescriptors = ComrelDiagramUpdater
+ .getAtomicUnit_3078SemanticChildren((View) getHost().getModel());
+ LinkedList<View> orphaned = new LinkedList<View>();
+ // we care to check only views we recognize as ours
+ LinkedList<View> knownViewChildren = new LinkedList<View>();
+ for (View v : getViewChildren()) {
+ if (isMyDiagramElement(v)) {
+ knownViewChildren.add(v);
+ }
+ }
+ // alternative to #cleanCanonicalSemanticChildren(getViewChildren(), semanticChildren)
+ //
+ // iteration happens over list of desired semantic elements, trying to find best matching View, while original CEP
+ // iterates views, potentially losing view (size/bounds) information - i.e. if there are few views to reference same EObject, only last one
+ // to answer isOrphaned == true will be used for the domain element representation, see #cleanCanonicalSemanticChildren()
+ for (Iterator<ComrelNodeDescriptor> descriptorsIterator = childDescriptors
+ .iterator(); descriptorsIterator.hasNext();) {
+ ComrelNodeDescriptor next = descriptorsIterator.next();
+ String hint = ComrelVisualIDRegistry.getType(next.getVisualID());
+ LinkedList<View> perfectMatch = new LinkedList<View>(); // both semanticElement and hint match that of NodeDescriptor
+ for (View childView : getViewChildren()) {
+ EObject semanticElement = childView.getElement();
+ if (next.getModelElement().equals(semanticElement)) {
+ if (hint.equals(childView.getType())) {
+ perfectMatch.add(childView);
+ // actually, can stop iteration over view children here, but
+ // may want to use not the first view but last one as a 'real' match (the way original CEP does
+ // with its trick with viewToSemanticMap inside #cleanCanonicalSemanticChildren
+ }
+ }
+ }
+ if (perfectMatch.size() > 0) {
+ descriptorsIterator.remove(); // precise match found no need to create anything for the NodeDescriptor
+ // use only one view (first or last?), keep rest as orphaned for further consideration
+ knownViewChildren.remove(perfectMatch.getFirst());
+ }
+ }
+ // those left in knownViewChildren are subject to removal - they are our diagram elements we didn't find match to,
+ // or those we have potential matches to, and thus need to be recreated, preserving size/location information.
+ orphaned.addAll(knownViewChildren);
+ //
+ ArrayList<CreateViewRequest.ViewDescriptor> viewDescriptors = new ArrayList<CreateViewRequest.ViewDescriptor>(
+ childDescriptors.size());
+ for (ComrelNodeDescriptor next : childDescriptors) {
+ String hint = ComrelVisualIDRegistry.getType(next.getVisualID());
+ IAdaptable elementAdapter = new CanonicalElementAdapter(
+ next.getModelElement(), hint);
+ CreateViewRequest.ViewDescriptor descriptor = new CreateViewRequest.ViewDescriptor(
+ elementAdapter, Node.class, hint, ViewUtil.APPEND, false,
+ host().getDiagramPreferencesHint());
+ viewDescriptors.add(descriptor);
+ }
+
+ boolean changed = deleteViews(orphaned.iterator());
+ //
+ CreateViewRequest request = getCreateViewRequest(viewDescriptors);
+ Command cmd = getCreateViewCommand(request);
+ if (cmd != null && cmd.canExecute()) {
+ SetViewMutabilityCommand.makeMutable(
+ new EObjectAdapter(host().getNotationView())).execute();
+ executeCommand(cmd);
+ @SuppressWarnings("unchecked")
+ List<IAdaptable> nl = (List<IAdaptable>) request.getNewObject();
+ createdViews.addAll(nl);
+ }
+ if (changed || createdViews.size() > 0) {
+ postProcessRefreshSemantic(createdViews);
+ }
+ if (createdViews.size() > 1) {
+ // perform a layout of the container
+ DeferredLayoutCommand layoutCmd = new DeferredLayoutCommand(host()
+ .getEditingDomain(), createdViews, host());
+ executeCommand(new ICommandProxy(layoutCmd));
+ }
+
+ makeViewsImmutable(createdViews);
+ }
+}
diff --git a/org.eclipse.emf.refactor.comrel.diagram/src/comrel/diagram/edit/policies/AtomicUnit7ItemSemanticEditPolicy.java b/org.eclipse.emf.refactor.comrel.diagram/src/comrel/diagram/edit/policies/AtomicUnit7ItemSemanticEditPolicy.java
new file mode 100644
index 0000000..4778387
--- /dev/null
+++ b/org.eclipse.emf.refactor.comrel.diagram/src/comrel/diagram/edit/policies/AtomicUnit7ItemSemanticEditPolicy.java
@@ -0,0 +1,121 @@
+/*
+ *
+ */
+package comrel.diagram.edit.policies;
+
+import java.util.Iterator;
+
+import org.eclipse.emf.ecore.EAnnotation;
+import org.eclipse.gef.commands.Command;
+import org.eclipse.gmf.runtime.common.core.command.ICompositeCommand;
+import org.eclipse.gmf.runtime.diagram.core.commands.DeleteCommand;
+import org.eclipse.gmf.runtime.emf.commands.core.command.CompositeTransactionalCommand;
+import org.eclipse.gmf.runtime.emf.type.core.commands.DestroyElementCommand;
+import org.eclipse.gmf.runtime.emf.type.core.requests.CreateElementRequest;
+import org.eclipse.gmf.runtime.emf.type.core.requests.DestroyElementRequest;
+import org.eclipse.gmf.runtime.notation.Edge;
+import org.eclipse.gmf.runtime.notation.Node;
+import org.eclipse.gmf.runtime.notation.View;
+
+import comrel.diagram.edit.commands.SingleInputPort9CreateCommand;
+import comrel.diagram.edit.parts.MultiSinglePortMappingEditPart;
+import comrel.diagram.edit.parts.SingleInputPort9EditPart;
+import comrel.diagram.edit.parts.SinglePortMappingEditPart;
+import comrel.diagram.part.ComrelVisualIDRegistry;
+import comrel.diagram.providers.ComrelElementTypes;
+
+/**
+ * @generated
+ */
+public class AtomicUnit7ItemSemanticEditPolicy extends
+ ComrelBaseItemSemanticEditPolicy {
+
+ /**
+ * @generated
+ */
+ public AtomicUnit7ItemSemanticEditPolicy() {
+ super(ComrelElementTypes.AtomicUnit_3078);
+ }
+
+ /**
+ * @generated
+ */
+ protected Command getCreateCommand(CreateElementRequest req) {
+ if (ComrelElementTypes.SingleInputPort_3035 == req.getElementType()) {
+ return getGEFWrapper(new SingleInputPort9CreateCommand(req));
+ }
+ return super.getCreateCommand(req);
+ }
+
+ /**
+ * @generated
+ */
+ protected Command getDestroyElementCommand(DestroyElementRequest req) {
+ View view = (View) getHost().getModel();
+ CompositeTransactionalCommand cmd = new CompositeTransactionalCommand(
+ getEditingDomain(), null);
+ cmd.setTransactionNestingEnabled(false);
+ EAnnotation annotation = view.getEAnnotation("Shortcut"); //$NON-NLS-1$
+ if (annotation == null) {
+ // there are indirectly referenced children, need extra commands: false
+ addDestroyChildNodesCommand(cmd);
+ addDestroyShortcutsCommand(cmd, view);
+ // delete host element
+ cmd.add(new DestroyElementCommand(req));
+ } else {
+ cmd.add(new DeleteCommand(getEditingDomain(), view));
+ }
+ return getGEFWrapper(cmd.reduce());
+ }
+
+ /**
+ * @generated
+ */
+ private void addDestroyChildNodesCommand(ICompositeCommand cmd) {
+ View view = (View) getHost().getModel();
+ for (Iterator<?> nit = view.getChildren().iterator(); nit.hasNext();) {
+ Node node = (Node) nit.next();
+ switch (ComrelVisualIDRegistry.getVisualID(node)) {
+ case SingleInputPort9EditPart.VISUAL_ID:
+ for (Iterator<?> it = node.getTargetEdges().iterator(); it
+ .hasNext();) {
+ Edge incomingLink = (Edge) it.next();
+ if (ComrelVisualIDRegistry.getVisualID(incomingLink) == SinglePortMappingEditPart.VISUAL_ID) {
+ DestroyElementRequest r = new DestroyElementRequest(
+ incomingLink.getElement(), false);
+ cmd.add(new DestroyElementCommand(r));
+ cmd.add(new DeleteCommand(getEditingDomain(),
+ incomingLink));
+ continue;
+ }
+ if (ComrelVisualIDRegistry.getVisualID(incomingLink) == MultiSinglePortMappingEditPart.VISUAL_ID) {
+ DestroyElementRequest r = new DestroyElementRequest(
+ incomingLink.getElement(), false);
+ cmd.add(new DestroyElementCommand(r));
+ cmd.add(new DeleteCommand(getEditingDomain(),
+ incomingLink));
+ continue;
+ }
+ }
+ for (Iterator<?> it = node.getSourceEdges().iterator(); it
+ .hasNext();) {
+ Edge outgoingLink = (Edge) it.next();
+ if (ComrelVisualIDRegistry.getVisualID(outgoingLink) == SinglePortMappingEditPart.VISUAL_ID) {
+ DestroyElementRequest r = new DestroyElementRequest(
+ outgoingLink.getElement(), false);
+ cmd.add(new DestroyElementCommand(r));
+ cmd.add(new DeleteCommand(getEditingDomain(),
+ outgoingLink));
+ continue;
+ }
+ }
+ cmd.add(new DestroyElementCommand(new DestroyElementRequest(
+ getEditingDomain(), node.getElement(), false))); // directlyOwned: true
+ // don't need explicit deletion of node as parent's view deletion would clean child views as well
+ // cmd.add(new org.eclipse.gmf.runtime.diagram.core.commands.DeleteCommand(getEditingDomain(), node));
+ break;
+ }
+ }
+ }
+
+}
diff --git a/org.eclipse.emf.refactor.comrel.diagram/src/comrel/diagram/edit/policies/AtomicUnitCanonicalEditPolicy.java b/org.eclipse.emf.refactor.comrel.diagram/src/comrel/diagram/edit/policies/AtomicUnitCanonicalEditPolicy.java
new file mode 100644
index 0000000..1dd32b7
--- /dev/null
+++ b/org.eclipse.emf.refactor.comrel.diagram/src/comrel/diagram/edit/policies/AtomicUnitCanonicalEditPolicy.java
@@ -0,0 +1,161 @@
+/*
+ *
+ */
+package comrel.diagram.edit.policies;
+
+import java.util.ArrayList;
+import java.util.Collection;
+import java.util.Iterator;
+import java.util.LinkedList;
+import java.util.List;
+
+import org.eclipse.core.runtime.IAdaptable;
+import org.eclipse.emf.ecore.EObject;
+import org.eclipse.emf.ecore.EStructuralFeature;
+import org.eclipse.gef.commands.Command;
+import org.eclipse.gmf.runtime.diagram.core.util.ViewUtil;
+import org.eclipse.gmf.runtime.diagram.ui.commands.DeferredLayoutCommand;
+import org.eclipse.gmf.runtime.diagram.ui.commands.ICommandProxy;
+import org.eclipse.gmf.runtime.diagram.ui.commands.SetViewMutabilityCommand;
+import org.eclipse.gmf.runtime.diagram.ui.editpolicies.CanonicalEditPolicy;
+import org.eclipse.gmf.runtime.diagram.ui.requests.CreateViewRequest;
+import org.eclipse.gmf.runtime.emf.core.util.EObjectAdapter;
+import org.eclipse.gmf.runtime.notation.Node;
+import org.eclipse.gmf.runtime.notation.View;
+
+import comrel.ComrelPackage;
+import comrel.diagram.edit.parts.SingleInputPort9EditPart;
+import comrel.diagram.part.ComrelDiagramUpdater;
+import comrel.diagram.part.ComrelNodeDescriptor;
+import comrel.diagram.part.ComrelVisualIDRegistry;
+
+/**
+ * @generated
+ */
+public class AtomicUnitCanonicalEditPolicy extends CanonicalEditPolicy {
+
+ /**
+ * @generated
+ */
+ protected EStructuralFeature getFeatureToSynchronize() {
+ return ComrelPackage.eINSTANCE.getAtomicUnit_InputPorts();
+ }
+
+ /**
+ * @generated
+ */
+ @SuppressWarnings("rawtypes")
+ protected List getSemanticChildrenList() {
+ View viewObject = (View) getHost().getModel();
+ LinkedList<EObject> result = new LinkedList<EObject>();
+ List<ComrelNodeDescriptor> childDescriptors = ComrelDiagramUpdater
+ .getAtomicUnit_2007SemanticChildren(viewObject);
+ for (ComrelNodeDescriptor d : childDescriptors) {
+ result.add(d.getModelElement());
+ }
+ return result;
+ }
+
+ /**
+ * @generated
+ */
+ protected boolean isOrphaned(Collection<EObject> semanticChildren,
+ final View view) {
+ return isMyDiagramElement(view)
+ && !semanticChildren.contains(view.getElement());
+ }
+
+ /**
+ * @generated
+ */
+ private boolean isMyDiagramElement(View view) {
+ return SingleInputPort9EditPart.VISUAL_ID == ComrelVisualIDRegistry
+ .getVisualID(view);
+ }
+
+ /**
+ * @generated
+ */
+ protected void refreshSemantic() {
+ if (resolveSemanticElement() == null) {
+ return;
+ }
+ LinkedList<IAdaptable> createdViews = new LinkedList<IAdaptable>();
+ List<ComrelNodeDescriptor> childDescriptors = ComrelDiagramUpdater
+ .getAtomicUnit_2007SemanticChildren((View) getHost().getModel());
+ LinkedList<View> orphaned = new LinkedList<View>();
+ // we care to check only views we recognize as ours
+ LinkedList<View> knownViewChildren = new LinkedList<View>();
+ for (View v : getViewChildren()) {
+ if (isMyDiagramElement(v)) {
+ knownViewChildren.add(v);
+ }
+ }
+ // alternative to #cleanCanonicalSemanticChildren(getViewChildren(), semanticChildren)
+ //
+ // iteration happens over list of desired semantic elements, trying to find best matching View, while original CEP
+ // iterates views, potentially losing view (size/bounds) information - i.e. if there are few views to reference same EObject, only last one
+ // to answer isOrphaned == true will be used for the domain element representation, see #cleanCanonicalSemanticChildren()
+ for (Iterator<ComrelNodeDescriptor> descriptorsIterator = childDescriptors
+ .iterator(); descriptorsIterator.hasNext();) {
+ ComrelNodeDescriptor next = descriptorsIterator.next();
+ String hint = ComrelVisualIDRegistry.getType(next.getVisualID());
+ LinkedList<View> perfectMatch = new LinkedList<View>(); // both semanticElement and hint match that of NodeDescriptor
+ for (View childView : getViewChildren()) {
+ EObject semanticElement = childView.getElement();
+ if (next.getModelElement().equals(semanticElement)) {
+ if (hint.equals(childView.getType())) {
+ perfectMatch.add(childView);
+ // actually, can stop iteration over view children here, but
+ // may want to use not the first view but last one as a 'real' match (the way original CEP does
+ // with its trick with viewToSemanticMap inside #cleanCanonicalSemanticChildren
+ }
+ }
+ }
+ if (perfectMatch.size() > 0) {
+ descriptorsIterator.remove(); // precise match found no need to create anything for the NodeDescriptor
+ // use only one view (first or last?), keep rest as orphaned for further consideration
+ knownViewChildren.remove(perfectMatch.getFirst());
+ }
+ }
+ // those left in knownViewChildren are subject to removal - they are our diagram elements we didn't find match to,
+ // or those we have potential matches to, and thus need to be recreated, preserving size/location information.
+ orphaned.addAll(knownViewChildren);
+ //
+ ArrayList<CreateViewRequest.ViewDescriptor> viewDescriptors = new ArrayList<CreateViewRequest.ViewDescriptor>(
+ childDescriptors.size());
+ for (ComrelNodeDescriptor next : childDescriptors) {
+ String hint = ComrelVisualIDRegistry.getType(next.getVisualID());
+ IAdaptable elementAdapter = new CanonicalElementAdapter(
+ next.getModelElement(), hint);
+ CreateViewRequest.ViewDescriptor descriptor = new CreateViewRequest.ViewDescriptor(
+ elementAdapter, Node.class, hint, ViewUtil.APPEND, false,
+ host().getDiagramPreferencesHint());
+ viewDescriptors.add(descriptor);
+ }
+
+ boolean changed = deleteViews(orphaned.iterator());
+ //
+ CreateViewRequest request = getCreateViewRequest(viewDescriptors);
+ Command cmd = getCreateViewCommand(request);
+ if (cmd != null && cmd.canExecute()) {
+ SetViewMutabilityCommand.makeMutable(
+ new EObjectAdapter(host().getNotationView())).execute();
+ executeCommand(cmd);
+ @SuppressWarnings("unchecked")
+ List<IAdaptable> nl = (List<IAdaptable>) request.getNewObject();
+ createdViews.addAll(nl);
+ }
+ if (changed || createdViews.size() > 0) {
+ postProcessRefreshSemantic(createdViews);
+ }
+ if (createdViews.size() > 1) {
+ // perform a layout of the container
+ DeferredLayoutCommand layoutCmd = new DeferredLayoutCommand(host()
+ .getEditingDomain(), createdViews, host());
+ executeCommand(new ICommandProxy(layoutCmd));
+ }
+
+ makeViewsImmutable(createdViews);
+ }
+}
diff --git a/org.eclipse.emf.refactor.comrel.diagram/src/comrel/diagram/edit/policies/AtomicUnitItemSemanticEditPolicy.java b/org.eclipse.emf.refactor.comrel.diagram/src/comrel/diagram/edit/policies/AtomicUnitItemSemanticEditPolicy.java
new file mode 100644
index 0000000..8f01f39
--- /dev/null
+++ b/org.eclipse.emf.refactor.comrel.diagram/src/comrel/diagram/edit/policies/AtomicUnitItemSemanticEditPolicy.java
@@ -0,0 +1,121 @@
+/*
+ *
+ */
+package comrel.diagram.edit.policies;
+
+import java.util.Iterator;
+
+import org.eclipse.emf.ecore.EAnnotation;
+import org.eclipse.gef.commands.Command;
+import org.eclipse.gmf.runtime.common.core.command.ICompositeCommand;
+import org.eclipse.gmf.runtime.diagram.core.commands.DeleteCommand;
+import org.eclipse.gmf.runtime.emf.commands.core.command.CompositeTransactionalCommand;
+import org.eclipse.gmf.runtime.emf.type.core.commands.DestroyElementCommand;
+import org.eclipse.gmf.runtime.emf.type.core.requests.CreateElementRequest;
+import org.eclipse.gmf.runtime.emf.type.core.requests.DestroyElementRequest;
+import org.eclipse.gmf.runtime.notation.Edge;
+import org.eclipse.gmf.runtime.notation.Node;
+import org.eclipse.gmf.runtime.notation.View;
+
+import comrel.diagram.edit.commands.SingleInputPort9CreateCommand;
+import comrel.diagram.edit.parts.MultiSinglePortMappingEditPart;
+import comrel.diagram.edit.parts.SingleInputPort9EditPart;
+import comrel.diagram.edit.parts.SinglePortMappingEditPart;
+import comrel.diagram.part.ComrelVisualIDRegistry;
+import comrel.diagram.providers.ComrelElementTypes;
+
+/**
+ * @generated
+ */
+public class AtomicUnitItemSemanticEditPolicy extends
+ ComrelBaseItemSemanticEditPolicy {
+
+ /**
+ * @generated
+ */
+ public AtomicUnitItemSemanticEditPolicy() {
+ super(ComrelElementTypes.AtomicUnit_2007);
+ }
+
+ /**
+ * @generated
+ */
+ protected Command getCreateCommand(CreateElementRequest req) {
+ if (ComrelElementTypes.SingleInputPort_3035 == req.getElementType()) {
+ return getGEFWrapper(new SingleInputPort9CreateCommand(req));
+ }
+ return super.getCreateCommand(req);
+ }
+
+ /**
+ * @generated
+ */
+ protected Command getDestroyElementCommand(DestroyElementRequest req) {
+ View view = (View) getHost().getModel();
+ CompositeTransactionalCommand cmd = new CompositeTransactionalCommand(
+ getEditingDomain(), null);
+ cmd.setTransactionNestingEnabled(false);
+ EAnnotation annotation = view.getEAnnotation("Shortcut"); //$NON-NLS-1$
+ if (annotation == null) {
+ // there are indirectly referenced children, need extra commands: false
+ addDestroyChildNodesCommand(cmd);
+ addDestroyShortcutsCommand(cmd, view);
+ // delete host element
+ cmd.add(new DestroyElementCommand(req));
+ } else {
+ cmd.add(new DeleteCommand(getEditingDomain(), view));
+ }
+ return getGEFWrapper(cmd.reduce());
+ }
+
+ /**
+ * @generated
+ */
+ private void addDestroyChildNodesCommand(ICompositeCommand cmd) {
+ View view = (View) getHost().getModel();
+ for (Iterator<?> nit = view.getChildren().iterator(); nit.hasNext();) {
+ Node node = (Node) nit.next();
+ switch (ComrelVisualIDRegistry.getVisualID(node)) {
+ case SingleInputPort9EditPart.VISUAL_ID:
+ for (Iterator<?> it = node.getTargetEdges().iterator(); it
+ .hasNext();) {
+ Edge incomingLink = (Edge) it.next();
+ if (ComrelVisualIDRegistry.getVisualID(incomingLink) == SinglePortMappingEditPart.VISUAL_ID) {
+ DestroyElementRequest r = new DestroyElementRequest(
+ incomingLink.getElement(), false);
+ cmd.add(new DestroyElementCommand(r));
+ cmd.add(new DeleteCommand(getEditingDomain(),
+ incomingLink));
+ continue;
+ }
+ if (ComrelVisualIDRegistry.getVisualID(incomingLink) == MultiSinglePortMappingEditPart.VISUAL_ID) {
+ DestroyElementRequest r = new DestroyElementRequest(
+ incomingLink.getElement(), false);
+ cmd.add(new DestroyElementCommand(r));
+ cmd.add(new DeleteCommand(getEditingDomain(),
+ incomingLink));
+ continue;
+ }
+ }
+ for (Iterator<?> it = node.getSourceEdges().iterator(); it
+ .hasNext();) {
+ Edge outgoingLink = (Edge) it.next();
+ if (ComrelVisualIDRegistry.getVisualID(outgoingLink) == SinglePortMappingEditPart.VISUAL_ID) {
+ DestroyElementRequest r = new DestroyElementRequest(
+ outgoingLink.getElement(), false);
+ cmd.add(new DestroyElementCommand(r));
+ cmd.add(new DeleteCommand(getEditingDomain(),
+ outgoingLink));
+ continue;
+ }
+ }
+ cmd.add(new DestroyElementCommand(new DestroyElementRequest(
+ getEditingDomain(), node.getElement(), false))); // directlyOwned: true
+ // don't need explicit deletion of node as parent's view deletion would clean child views as well
+ // cmd.add(new org.eclipse.gmf.runtime.diagram.core.commands.DeleteCommand(getEditingDomain(), node));
+ break;
+ }
+ }
+ }
+
+}
diff --git a/org.eclipse.emf.refactor.comrel.diagram/src/comrel/diagram/edit/policies/CartesianQueuedUnit2CanonicalEditPolicy.java b/org.eclipse.emf.refactor.comrel.diagram/src/comrel/diagram/edit/policies/CartesianQueuedUnit2CanonicalEditPolicy.java
new file mode 100644
index 0000000..e9011e3
--- /dev/null
+++ b/org.eclipse.emf.refactor.comrel.diagram/src/comrel/diagram/edit/policies/CartesianQueuedUnit2CanonicalEditPolicy.java
@@ -0,0 +1,179 @@
+/*
+ *
+ */
+package comrel.diagram.edit.policies;
+
+import java.util.ArrayList;
+import java.util.Collection;
+import java.util.HashSet;
+import java.util.Iterator;
+import java.util.LinkedList;
+import java.util.List;
+import java.util.Set;
+
+import org.eclipse.core.runtime.IAdaptable;
+import org.eclipse.emf.ecore.EObject;
+import org.eclipse.emf.ecore.EStructuralFeature;
+import org.eclipse.gef.commands.Command;
+import org.eclipse.gmf.runtime.diagram.core.util.ViewUtil;
+import org.eclipse.gmf.runtime.diagram.ui.commands.DeferredLayoutCommand;
+import org.eclipse.gmf.runtime.diagram.ui.commands.ICommandProxy;
+import org.eclipse.gmf.runtime.diagram.ui.commands.SetViewMutabilityCommand;
+import org.eclipse.gmf.runtime.diagram.ui.editpolicies.CanonicalEditPolicy;
+import org.eclipse.gmf.runtime.diagram.ui.requests.CreateViewRequest;
+import org.eclipse.gmf.runtime.emf.core.util.EObjectAdapter;
+import org.eclipse.gmf.runtime.notation.Node;
+import org.eclipse.gmf.runtime.notation.View;
+
+import comrel.ComrelPackage;
+import comrel.diagram.edit.parts.MultiInputPortEditPart;
+import comrel.diagram.edit.parts.SingleInputPort2EditPart;
+import comrel.diagram.part.ComrelDiagramUpdater;
+import comrel.diagram.part.ComrelNodeDescriptor;
+import comrel.diagram.part.ComrelVisualIDRegistry;
+
+/**
+ * @generated
+ */
+public class CartesianQueuedUnit2CanonicalEditPolicy extends
+ CanonicalEditPolicy {
+
+ /**
+ * @generated
+ */
+ private Set<EStructuralFeature> myFeaturesToSynchronize;
+
+ /**
+ * @generated
+ */
+ protected Set getFeaturesToSynchronize() {
+ if (myFeaturesToSynchronize == null) {
+ myFeaturesToSynchronize = new HashSet<EStructuralFeature>();
+ myFeaturesToSynchronize.add(ComrelPackage.eINSTANCE
+ .getCartesianQueuedUnit_SingleInputPorts());
+ myFeaturesToSynchronize.add(ComrelPackage.eINSTANCE
+ .getCartesianQueuedUnit_MultiInputPorts());
+ }
+ return myFeaturesToSynchronize;
+ }
+
+ /**
+ * @generated
+ */
+ @SuppressWarnings("rawtypes")
+ protected List getSemanticChildrenList() {
+ View viewObject = (View) getHost().getModel();
+ LinkedList<EObject> result = new LinkedList<EObject>();
+ List<ComrelNodeDescriptor> childDescriptors = ComrelDiagramUpdater
+ .getCartesianQueuedUnit_3003SemanticChildren(viewObject);
+ for (ComrelNodeDescriptor d : childDescriptors) {
+ result.add(d.getModelElement());
+ }
+ return result;
+ }
+
+ /**
+ * @generated
+ */
+ protected boolean isOrphaned(Collection<EObject> semanticChildren,
+ final View view) {
+ return isMyDiagramElement(view)
+ && !semanticChildren.contains(view.getElement());
+ }
+
+ /**
+ * @generated
+ */
+ private boolean isMyDiagramElement(View view) {
+ int visualID = ComrelVisualIDRegistry.getVisualID(view);
+ return visualID == SingleInputPort2EditPart.VISUAL_ID
+ || visualID == MultiInputPortEditPart.VISUAL_ID;
+ }
+
+ /**
+ * @generated
+ */
+ protected void refreshSemantic() {
+ if (resolveSemanticElement() == null) {
+ return;
+ }
+ LinkedList<IAdaptable> createdViews = new LinkedList<IAdaptable>();
+ List<ComrelNodeDescriptor> childDescriptors = ComrelDiagramUpdater
+ .getCartesianQueuedUnit_3003SemanticChildren((View) getHost()
+ .getModel());
+ LinkedList<View> orphaned = new LinkedList<View>();
+ // we care to check only views we recognize as ours
+ LinkedList<View> knownViewChildren = new LinkedList<View>();
+ for (View v : getViewChildren()) {
+ if (isMyDiagramElement(v)) {
+ knownViewChildren.add(v);
+ }
+ }
+ // alternative to #cleanCanonicalSemanticChildren(getViewChildren(), semanticChildren)
+ //
+ // iteration happens over list of desired semantic elements, trying to find best matching View, while original CEP
+ // iterates views, potentially losing view (size/bounds) information - i.e. if there are few views to reference same EObject, only last one
+ // to answer isOrphaned == true will be used for the domain element representation, see #cleanCanonicalSemanticChildren()
+ for (Iterator<ComrelNodeDescriptor> descriptorsIterator = childDescriptors
+ .iterator(); descriptorsIterator.hasNext();) {
+ ComrelNodeDescriptor next = descriptorsIterator.next();
+ String hint = ComrelVisualIDRegistry.getType(next.getVisualID());
+ LinkedList<View> perfectMatch = new LinkedList<View>(); // both semanticElement and hint match that of NodeDescriptor
+ for (View childView : getViewChildren()) {
+ EObject semanticElement = childView.getElement();
+ if (next.getModelElement().equals(semanticElement)) {
+ if (hint.equals(childView.getType())) {
+ perfectMatch.add(childView);
+ // actually, can stop iteration over view children here, but
+ // may want to use not the first view but last one as a 'real' match (the way original CEP does
+ // with its trick with viewToSemanticMap inside #cleanCanonicalSemanticChildren
+ }
+ }
+ }
+ if (perfectMatch.size() > 0) {
+ descriptorsIterator.remove(); // precise match found no need to create anything for the NodeDescriptor
+ // use only one view (first or last?), keep rest as orphaned for further consideration
+ knownViewChildren.remove(perfectMatch.getFirst());
+ }
+ }
+ // those left in knownViewChildren are subject to removal - they are our diagram elements we didn't find match to,
+ // or those we have potential matches to, and thus need to be recreated, preserving size/location information.
+ orphaned.addAll(knownViewChildren);
+ //
+ ArrayList<CreateViewRequest.ViewDescriptor> viewDescriptors = new ArrayList<CreateViewRequest.ViewDescriptor>(
+ childDescriptors.size());
+ for (ComrelNodeDescriptor next : childDescriptors) {
+ String hint = ComrelVisualIDRegistry.getType(next.getVisualID());
+ IAdaptable elementAdapter = new CanonicalElementAdapter(
+ next.getModelElement(), hint);
+ CreateViewRequest.ViewDescriptor descriptor = new CreateViewRequest.ViewDescriptor(
+ elementAdapter, Node.class, hint, ViewUtil.APPEND, false,
+ host().getDiagramPreferencesHint());
+ viewDescriptors.add(descriptor);
+ }
+
+ boolean changed = deleteViews(orphaned.iterator());
+ //
+ CreateViewRequest request = getCreateViewRequest(viewDescriptors);
+ Command cmd = getCreateViewCommand(request);
+ if (cmd != null && cmd.canExecute()) {
+ SetViewMutabilityCommand.makeMutable(
+ new EObjectAdapter(host().getNotationView())).execute();
+ executeCommand(cmd);
+ @SuppressWarnings("unchecked")
+ List<IAdaptable> nl = (List<IAdaptable>) request.getNewObject();
+ createdViews.addAll(nl);
+ }
+ if (changed || createdViews.size() > 0) {
+ postProcessRefreshSemantic(createdViews);
+ }
+ if (createdViews.size() > 1) {
+ // perform a layout of the container
+ DeferredLayoutCommand layoutCmd = new DeferredLayoutCommand(host()
+ .getEditingDomain(), createdViews, host());
+ executeCommand(new ICommandProxy(layoutCmd));
+ }
+
+ makeViewsImmutable(createdViews);
+ }
+}
diff --git a/org.eclipse.emf.refactor.comrel.diagram/src/comrel/diagram/edit/policies/CartesianQueuedUnit2ItemSemanticEditPolicy.java b/org.eclipse.emf.refactor.comrel.diagram/src/comrel/diagram/edit/policies/CartesianQueuedUnit2ItemSemanticEditPolicy.java
new file mode 100644
index 0000000..9bf8852
--- /dev/null
+++ b/org.eclipse.emf.refactor.comrel.diagram/src/comrel/diagram/edit/policies/CartesianQueuedUnit2ItemSemanticEditPolicy.java
@@ -0,0 +1,263 @@
+/*
+ *
+ */
+package comrel.diagram.edit.policies;
+
+import java.util.Iterator;
+
+import org.eclipse.emf.ecore.EAnnotation;
+import org.eclipse.gef.commands.Command;
+import org.eclipse.gmf.runtime.common.core.command.ICompositeCommand;
+import org.eclipse.gmf.runtime.diagram.core.commands.DeleteCommand;
+import org.eclipse.gmf.runtime.emf.commands.core.command.CompositeTransactionalCommand;
+import org.eclipse.gmf.runtime.emf.type.core.commands.DestroyElementCommand;
+import org.eclipse.gmf.runtime.emf.type.core.requests.CreateElementRequest;
+import org.eclipse.gmf.runtime.emf.type.core.requests.DestroyElementRequest;
+import org.eclipse.gmf.runtime.notation.Edge;
+import org.eclipse.gmf.runtime.notation.Node;
+import org.eclipse.gmf.runtime.notation.View;
+
+import comrel.diagram.edit.commands.MultiInputPortCreateCommand;
+import comrel.diagram.edit.commands.SingleInputPort2CreateCommand;
+import comrel.diagram.edit.parts.AtomicUnit2EditPart;
+import comrel.diagram.edit.parts.CartesianQueuedUnit2EditPart;
+import comrel.diagram.edit.parts.CartesianQueuedUnitCartesianQueuedUnitHelperUnitsCompartment2EditPart;
+import comrel.diagram.edit.parts.CartesianQueuedUnitCartesianQueuedUnitRefactoringUnitCompartment2EditPart;
+import comrel.diagram.edit.parts.ConditionalUnit2EditPart;
+import comrel.diagram.edit.parts.MultiFeatureUnitEditPart;
+import comrel.diagram.edit.parts.MultiFilterUnitEditPart;
+import comrel.diagram.edit.parts.MultiInputPortEditPart;
+import comrel.diagram.edit.parts.MultiPortMappingEditPart;
+import comrel.diagram.edit.parts.MultiSinglePortMappingEditPart;
+import comrel.diagram.edit.parts.ParallelQueuedUnit2EditPart;
+import comrel.diagram.edit.parts.SequentialUnit2EditPart;
+import comrel.diagram.edit.parts.SingleFeatureUnitEditPart;
+import comrel.diagram.edit.parts.SingleFilterUnitEditPart;
+import comrel.diagram.edit.parts.SingleInputPort2EditPart;
+import comrel.diagram.edit.parts.SinglePortMappingEditPart;
+import comrel.diagram.edit.parts.SingleQueuedUnit2EditPart;
+import comrel.diagram.part.ComrelVisualIDRegistry;
+import comrel.diagram.providers.ComrelElementTypes;
+
+/**
+ * @generated
+ */
+public class CartesianQueuedUnit2ItemSemanticEditPolicy extends
+ ComrelBaseItemSemanticEditPolicy {
+
+ /**
+ * @generated
+ */
+ public CartesianQueuedUnit2ItemSemanticEditPolicy() {
+ super(ComrelElementTypes.CartesianQueuedUnit_3003);
+ }
+
+ /**
+ * @generated
+ */
+ protected Command getCreateCommand(CreateElementRequest req) {
+ if (ComrelElementTypes.SingleInputPort_3001 == req.getElementType()) {
+ return getGEFWrapper(new SingleInputPort2CreateCommand(req));
+ }
+ if (ComrelElementTypes.MultiInputPort_3002 == req.getElementType()) {
+ return getGEFWrapper(new MultiInputPortCreateCommand(req));
+ }
+ return super.getCreateCommand(req);
+ }
+
+ /**
+ * @generated
+ */
+ protected Command getDestroyElementCommand(DestroyElementRequest req) {
+ View view = (View) getHost().getModel();
+ CompositeTransactionalCommand cmd = new CompositeTransactionalCommand(
+ getEditingDomain(), null);
+ cmd.setTransactionNestingEnabled(false);
+ EAnnotation annotation = view.getEAnnotation("Shortcut"); //$NON-NLS-1$
+ if (annotation == null) {
+ // there are indirectly referenced children, need extra commands: false
+ addDestroyChildNodesCommand(cmd);
+ addDestroyShortcutsCommand(cmd, view);
+ // delete host element
+ cmd.add(new DestroyElementCommand(req));
+ } else {
+ cmd.add(new DeleteCommand(getEditingDomain(), view));
+ }
+ return getGEFWrapper(cmd.reduce());
+ }
+
+ /**
+ * @generated
+ */
+ private void addDestroyChildNodesCommand(ICompositeCommand cmd) {
+ View view = (View) getHost().getModel();
+ for (Iterator<?> nit = view.getChildren().iterator(); nit.hasNext();) {
+ Node node = (Node) nit.next();
+ switch (ComrelVisualIDRegistry.getVisualID(node)) {
+ case SingleInputPort2EditPart.VISUAL_ID:
+ for (Iterator<?> it = node.getTargetEdges().iterator(); it
+ .hasNext();) {
+ Edge incomingLink = (Edge) it.next();
+ if (ComrelVisualIDRegistry.getVisualID(incomingLink) == SinglePortMappingEditPart.VISUAL_ID) {
+ DestroyElementRequest r = new DestroyElementRequest(
+ incomingLink.getElement(), false);
+ cmd.add(new DestroyElementCommand(r));
+ cmd.add(new DeleteCommand(getEditingDomain(),
+ incomingLink));
+ continue;
+ }
+ if (ComrelVisualIDRegistry.getVisualID(incomingLink) == MultiSinglePortMappingEditPart.VISUAL_ID) {
+ DestroyElementRequest r = new DestroyElementRequest(
+ incomingLink.getElement(), false);
+ cmd.add(new DestroyElementCommand(r));
+ cmd.add(new DeleteCommand(getEditingDomain(),
+ incomingLink));
+ continue;
+ }
+ }
+ for (Iterator<?> it = node.getSourceEdges().iterator(); it
+ .hasNext();) {
+ Edge outgoingLink = (Edge) it.next();
+ if (ComrelVisualIDRegistry.getVisualID(outgoingLink) == SinglePortMappingEditPart.VISUAL_ID) {
+ DestroyElementRequest r = new DestroyElementRequest(
+ outgoingLink.getElement(), false);
+ cmd.add(new DestroyElementCommand(r));
+ cmd.add(new DeleteCommand(getEditingDomain(),
+ outgoingLink));
+ continue;
+ }
+ }
+ cmd.add(new DestroyElementCommand(new DestroyElementRequest(
+ getEditingDomain(), node.getElement(), false))); // directlyOwned: true
+ // don't need explicit deletion of node as parent's view deletion would clean child views as well
+ // cmd.add(new org.eclipse.gmf.runtime.diagram.core.commands.DeleteCommand(getEditingDomain(), node));
+ break;
+ case MultiInputPortEditPart.VISUAL_ID:
+ for (Iterator<?> it = node.getTargetEdges().iterator(); it
+ .hasNext();) {
+ Edge incomingLink = (Edge) it.next();
+ if (ComrelVisualIDRegistry.getVisualID(incomingLink) == MultiPortMappingEditPart.VISUAL_ID) {
+ DestroyElementRequest r = new DestroyElementRequest(
+ incomingLink.getElement(), false);
+ cmd.add(new DestroyElementCommand(r));
+ cmd.add(new DeleteCommand(getEditingDomain(),
+ incomingLink));
+ continue;
+ }
+ }
+ for (Iterator<?> it = node.getSourceEdges().iterator(); it
+ .hasNext();) {
+ Edge outgoingLink = (Edge) it.next();
+ if (ComrelVisualIDRegistry.getVisualID(outgoingLink) == MultiPortMappingEditPart.VISUAL_ID) {
+ DestroyElementRequest r = new DestroyElementRequest(
+ outgoingLink.getElement(), false);
+ cmd.add(new DestroyElementCommand(r));
+ cmd.add(new DeleteCommand(getEditingDomain(),
+ outgoingLink));
+ continue;
+ }
+ if (ComrelVisualIDRegistry.getVisualID(outgoingLink) == MultiSinglePortMappingEditPart.VISUAL_ID) {
+ DestroyElementRequest r = new DestroyElementRequest(
+ outgoingLink.getElement(), false);
+ cmd.add(new DestroyElementCommand(r));
+ cmd.add(new DeleteCommand(getEditingDomain(),
+ outgoingLink));
+ continue;
+ }
+ }
+ cmd.add(new DestroyElementCommand(new DestroyElementRequest(
+ getEditingDomain(), node.getElement(), false))); // directlyOwned: true
+ // don't need explicit deletion of node as parent's view deletion would clean child views as well
+ // cmd.add(new org.eclipse.gmf.runtime.diagram.core.commands.DeleteCommand(getEditingDomain(), node));
+ break;
+ case CartesianQueuedUnitCartesianQueuedUnitHelperUnitsCompartment2EditPart.VISUAL_ID:
+ for (Iterator<?> cit = node.getChildren().iterator(); cit
+ .hasNext();) {
+ Node cnode = (Node) cit.next();
+ switch (ComrelVisualIDRegistry.getVisualID(cnode)) {
+ case SingleFeatureUnitEditPart.VISUAL_ID:
+ cmd.add(new DestroyElementCommand(
+ new DestroyElementRequest(getEditingDomain(),
+ cnode.getElement(), false))); // directlyOwned: true
+ // don't need explicit deletion of cnode as parent's view deletion would clean child views as well
+ // cmd.add(new org.eclipse.gmf.runtime.diagram.core.commands.DeleteCommand(getEditingDomain(), cnode));
+ break;
+ case MultiFeatureUnitEditPart.VISUAL_ID:
+ cmd.add(new DestroyElementCommand(
+ new DestroyElementRequest(getEditingDomain(),
+ cnode.getElement(), false))); // directlyOwned: true
+ // don't need explicit deletion of cnode as parent's view deletion would clean child views as well
+ // cmd.add(new org.eclipse.gmf.runtime.diagram.core.commands.DeleteCommand(getEditingDomain(), cnode));
+ break;
+ case SingleFilterUnitEditPart.VISUAL_ID:
+ cmd.add(new DestroyElementCommand(
+ new DestroyElementRequest(getEditingDomain(),
+ cnode.getElement(), false))); // directlyOwned: true
+ // don't need explicit deletion of cnode as parent's view deletion would clean child views as well
+ // cmd.add(new org.eclipse.gmf.runtime.diagram.core.commands.DeleteCommand(getEditingDomain(), cnode));
+ break;
+ case MultiFilterUnitEditPart.VISUAL_ID:
+ cmd.add(new DestroyElementCommand(
+ new DestroyElementRequest(getEditingDomain(),
+ cnode.getElement(), false))); // directlyOwned: true
+ // don't need explicit deletion of cnode as parent's view deletion would clean child views as well
+ // cmd.add(new org.eclipse.gmf.runtime.diagram.core.commands.DeleteCommand(getEditingDomain(), cnode));
+ break;
+ }
+ }
+ break;
+ case CartesianQueuedUnitCartesianQueuedUnitRefactoringUnitCompartment2EditPart.VISUAL_ID:
+ for (Iterator<?> cit = node.getChildren().iterator(); cit
+ .hasNext();) {
+ Node cnode = (Node) cit.next();
+ switch (ComrelVisualIDRegistry.getVisualID(cnode)) {
+ case CartesianQueuedUnit2EditPart.VISUAL_ID:
+ cmd.add(new DestroyElementCommand(
+ new DestroyElementRequest(getEditingDomain(),
+ cnode.getElement(), false))); // directlyOwned: true
+ // don't need explicit deletion of cnode as parent's view deletion would clean child views as well
+ // cmd.add(new org.eclipse.gmf.runtime.diagram.core.commands.DeleteCommand(getEditingDomain(), cnode));
+ break;
+ case ParallelQueuedUnit2EditPart.VISUAL_ID:
+ cmd.add(new DestroyElementCommand(
+ new DestroyElementRequest(getEditingDomain(),
+ cnode.getElement(), false))); // directlyOwned: true
+ // don't need explicit deletion of cnode as parent's view deletion would clean child views as well
+ // cmd.add(new org.eclipse.gmf.runtime.diagram.core.commands.DeleteCommand(getEditingDomain(), cnode));
+ break;
+ case SingleQueuedUnit2EditPart.VISUAL_ID:
+ cmd.add(new DestroyElementCommand(
+ new DestroyElementRequest(getEditingDomain(),
+ cnode.getElement(), false))); // directlyOwned: true
+ // don't need explicit deletion of cnode as parent's view deletion would clean child views as well
+ // cmd.add(new org.eclipse.gmf.runtime.diagram.core.commands.DeleteCommand(getEditingDomain(), cnode));
+ break;
+ case SequentialUnit2EditPart.VISUAL_ID:
+ cmd.add(new DestroyElementCommand(
+ new DestroyElementRequest(getEditingDomain(),
+ cnode.getElement(), false))); // directlyOwned: true
+ // don't need explicit deletion of cnode as parent's view deletion would clean child views as well
+ // cmd.add(new org.eclipse.gmf.runtime.diagram.core.commands.DeleteCommand(getEditingDomain(), cnode));
+ break;
+ case ConditionalUnit2EditPart.VISUAL_ID:
+ cmd.add(new DestroyElementCommand(
+ new DestroyElementRequest(getEditingDomain(),
+ cnode.getElement(), false))); // directlyOwned: true
+ // don't need explicit deletion of cnode as parent's view deletion would clean child views as well
+ // cmd.add(new org.eclipse.gmf.runtime.diagram.core.commands.DeleteCommand(getEditingDomain(), cnode));
+ break;
+ case AtomicUnit2EditPart.VISUAL_ID:
+ cmd.add(new DestroyElementCommand(
+ new DestroyElementRequest(getEditingDomain(),
+ cnode.getElement(), false))); // directlyOwned: true
+ // don't need explicit deletion of cnode as parent's view deletion would clean child views as well
+ // cmd.add(new org.eclipse.gmf.runtime.diagram.core.commands.DeleteCommand(getEditingDomain(), cnode));
+ break;
+ }
+ }
+ break;
+ }
+ }
+ }
+
+}
diff --git a/org.eclipse.emf.refactor.comrel.diagram/src/comrel/diagram/edit/policies/CartesianQueuedUnit3CanonicalEditPolicy.java b/org.eclipse.emf.refactor.comrel.diagram/src/comrel/diagram/edit/policies/CartesianQueuedUnit3CanonicalEditPolicy.java
new file mode 100644
index 0000000..fc3415f
--- /dev/null
+++ b/org.eclipse.emf.refactor.comrel.diagram/src/comrel/diagram/edit/policies/CartesianQueuedUnit3CanonicalEditPolicy.java
@@ -0,0 +1,179 @@
+/*
+ *
+ */
+package comrel.diagram.edit.policies;
+
+import java.util.ArrayList;
+import java.util.Collection;
+import java.util.HashSet;
+import java.util.Iterator;
+import java.util.LinkedList;
+import java.util.List;
+import java.util.Set;
+
+import org.eclipse.core.runtime.IAdaptable;
+import org.eclipse.emf.ecore.EObject;
+import org.eclipse.emf.ecore.EStructuralFeature;
+import org.eclipse.gef.commands.Command;
+import org.eclipse.gmf.runtime.diagram.core.util.ViewUtil;
+import org.eclipse.gmf.runtime.diagram.ui.commands.DeferredLayoutCommand;
+import org.eclipse.gmf.runtime.diagram.ui.commands.ICommandProxy;
+import org.eclipse.gmf.runtime.diagram.ui.commands.SetViewMutabilityCommand;
+import org.eclipse.gmf.runtime.diagram.ui.editpolicies.CanonicalEditPolicy;
+import org.eclipse.gmf.runtime.diagram.ui.requests.CreateViewRequest;
+import org.eclipse.gmf.runtime.emf.core.util.EObjectAdapter;
+import org.eclipse.gmf.runtime.notation.Node;
+import org.eclipse.gmf.runtime.notation.View;
+
+import comrel.ComrelPackage;
+import comrel.diagram.edit.parts.MultiInputPortEditPart;
+import comrel.diagram.edit.parts.SingleInputPort2EditPart;
+import comrel.diagram.part.ComrelDiagramUpdater;
+import comrel.diagram.part.ComrelNodeDescriptor;
+import comrel.diagram.part.ComrelVisualIDRegistry;
+
+/**
+ * @generated
+ */
+public class CartesianQueuedUnit3CanonicalEditPolicy extends
+ CanonicalEditPolicy {
+
+ /**
+ * @generated
+ */
+ private Set<EStructuralFeature> myFeaturesToSynchronize;
+
+ /**
+ * @generated
+ */
+ protected Set getFeaturesToSynchronize() {
+ if (myFeaturesToSynchronize == null) {
+ myFeaturesToSynchronize = new HashSet<EStructuralFeature>();
+ myFeaturesToSynchronize.add(ComrelPackage.eINSTANCE
+ .getCartesianQueuedUnit_SingleInputPorts());
+ myFeaturesToSynchronize.add(ComrelPackage.eINSTANCE
+ .getCartesianQueuedUnit_MultiInputPorts());
+ }
+ return myFeaturesToSynchronize;
+ }
+
+ /**
+ * @generated
+ */
+ @SuppressWarnings("rawtypes")
+ protected List getSemanticChildrenList() {
+ View viewObject = (View) getHost().getModel();
+ LinkedList<EObject> result = new LinkedList<EObject>();
+ List<ComrelNodeDescriptor> childDescriptors = ComrelDiagramUpdater
+ .getCartesianQueuedUnit_3007SemanticChildren(viewObject);
+ for (ComrelNodeDescriptor d : childDescriptors) {
+ result.add(d.getModelElement());
+ }
+ return result;
+ }
+
+ /**
+ * @generated
+ */
+ protected boolean isOrphaned(Collection<EObject> semanticChildren,
+ final View view) {
+ return isMyDiagramElement(view)
+ && !semanticChildren.contains(view.getElement());
+ }
+
+ /**
+ * @generated
+ */
+ private boolean isMyDiagramElement(View view) {
+ int visualID = ComrelVisualIDRegistry.getVisualID(view);
+ return visualID == SingleInputPort2EditPart.VISUAL_ID
+ || visualID == MultiInputPortEditPart.VISUAL_ID;
+ }
+
+ /**
+ * @generated
+ */
+ protected void refreshSemantic() {
+ if (resolveSemanticElement() == null) {
+ return;
+ }
+ LinkedList<IAdaptable> createdViews = new LinkedList<IAdaptable>();
+ List<ComrelNodeDescriptor> childDescriptors = ComrelDiagramUpdater
+ .getCartesianQueuedUnit_3007SemanticChildren((View) getHost()
+ .getModel());
+ LinkedList<View> orphaned = new LinkedList<View>();
+ // we care to check only views we recognize as ours
+ LinkedList<View> knownViewChildren = new LinkedList<View>();
+ for (View v : getViewChildren()) {
+ if (isMyDiagramElement(v)) {
+ knownViewChildren.add(v);
+ }
+ }
+ // alternative to #cleanCanonicalSemanticChildren(getViewChildren(), semanticChildren)
+ //
+ // iteration happens over list of desired semantic elements, trying to find best matching View, while original CEP
+ // iterates views, potentially losing view (size/bounds) information - i.e. if there are few views to reference same EObject, only last one
+ // to answer isOrphaned == true will be used for the domain element representation, see #cleanCanonicalSemanticChildren()
+ for (Iterator<ComrelNodeDescriptor> descriptorsIterator = childDescriptors
+ .iterator(); descriptorsIterator.hasNext();) {
+ ComrelNodeDescriptor next = descriptorsIterator.next();
+ String hint = ComrelVisualIDRegistry.getType(next.getVisualID());
+ LinkedList<View> perfectMatch = new LinkedList<View>(); // both semanticElement and hint match that of NodeDescriptor
+ for (View childView : getViewChildren()) {
+ EObject semanticElement = childView.getElement();
+ if (next.getModelElement().equals(semanticElement)) {
+ if (hint.equals(childView.getType())) {
+ perfectMatch.add(childView);
+ // actually, can stop iteration over view children here, but
+ // may want to use not the first view but last one as a 'real' match (the way original CEP does
+ // with its trick with viewToSemanticMap inside #cleanCanonicalSemanticChildren
+ }
+ }
+ }
+ if (perfectMatch.size() > 0) {
+ descriptorsIterator.remove(); // precise match found no need to create anything for the NodeDescriptor
+ // use only one view (first or last?), keep rest as orphaned for further consideration
+ knownViewChildren.remove(perfectMatch.getFirst());
+ }
+ }
+ // those left in knownViewChildren are subject to removal - they are our diagram elements we didn't find match to,
+ // or those we have potential matches to, and thus need to be recreated, preserving size/location information.
+ orphaned.addAll(knownViewChildren);
+ //
+ ArrayList<CreateViewRequest.ViewDescriptor> viewDescriptors = new ArrayList<CreateViewRequest.ViewDescriptor>(
+ childDescriptors.size());
+ for (ComrelNodeDescriptor next : childDescriptors) {
+ String hint = ComrelVisualIDRegistry.getType(next.getVisualID());
+ IAdaptable elementAdapter = new CanonicalElementAdapter(
+ next.getModelElement(), hint);
+ CreateViewRequest.ViewDescriptor descriptor = new CreateViewRequest.ViewDescriptor(
+ elementAdapter, Node.class, hint, ViewUtil.APPEND, false,
+ host().getDiagramPreferencesHint());
+ viewDescriptors.add(descriptor);
+ }
+
+ boolean changed = deleteViews(orphaned.iterator());
+ //
+ CreateViewRequest request = getCreateViewRequest(viewDescriptors);
+ Command cmd = getCreateViewCommand(request);
+ if (cmd != null && cmd.canExecute()) {
+ SetViewMutabilityCommand.makeMutable(
+ new EObjectAdapter(host().getNotationView())).execute();
+ executeCommand(cmd);
+ @SuppressWarnings("unchecked")
+ List<IAdaptable> nl = (List<IAdaptable>) request.getNewObject();
+ createdViews.addAll(nl);
+ }
+ if (changed || createdViews.size() > 0) {
+ postProcessRefreshSemantic(createdViews);
+ }
+ if (createdViews.size() > 1) {
+ // perform a layout of the container
+ DeferredLayoutCommand layoutCmd = new DeferredLayoutCommand(host()
+ .getEditingDomain(), createdViews, host());
+ executeCommand(new ICommandProxy(layoutCmd));
+ }
+
+ makeViewsImmutable(createdViews);
+ }
+}
diff --git a/org.eclipse.emf.refactor.comrel.diagram/src/comrel/diagram/edit/policies/CartesianQueuedUnit3ItemSemanticEditPolicy.java b/org.eclipse.emf.refactor.comrel.diagram/src/comrel/diagram/edit/policies/CartesianQueuedUnit3ItemSemanticEditPolicy.java
new file mode 100644
index 0000000..45ef38b
--- /dev/null
+++ b/org.eclipse.emf.refactor.comrel.diagram/src/comrel/diagram/edit/policies/CartesianQueuedUnit3ItemSemanticEditPolicy.java
@@ -0,0 +1,263 @@
+/*
+ *
+ */
+package comrel.diagram.edit.policies;
+
+import java.util.Iterator;
+
+import org.eclipse.emf.ecore.EAnnotation;
+import org.eclipse.gef.commands.Command;
+import org.eclipse.gmf.runtime.common.core.command.ICompositeCommand;
+import org.eclipse.gmf.runtime.diagram.core.commands.DeleteCommand;
+import org.eclipse.gmf.runtime.emf.commands.core.command.CompositeTransactionalCommand;
+import org.eclipse.gmf.runtime.emf.type.core.commands.DestroyElementCommand;
+import org.eclipse.gmf.runtime.emf.type.core.requests.CreateElementRequest;
+import org.eclipse.gmf.runtime.emf.type.core.requests.DestroyElementRequest;
+import org.eclipse.gmf.runtime.notation.Edge;
+import org.eclipse.gmf.runtime.notation.Node;
+import org.eclipse.gmf.runtime.notation.View;
+
+import comrel.diagram.edit.commands.MultiInputPortCreateCommand;
+import comrel.diagram.edit.commands.SingleInputPort2CreateCommand;
+import comrel.diagram.edit.parts.AtomicUnit2EditPart;
+import comrel.diagram.edit.parts.CartesianQueuedUnit2EditPart;
+import comrel.diagram.edit.parts.CartesianQueuedUnitCartesianQueuedUnitHelperUnitsCompartment3EditPart;
+import comrel.diagram.edit.parts.CartesianQueuedUnitCartesianQueuedUnitRefactoringUnitCompartment3EditPart;
+import comrel.diagram.edit.parts.ConditionalUnit2EditPart;
+import comrel.diagram.edit.parts.MultiFeatureUnitEditPart;
+import comrel.diagram.edit.parts.MultiFilterUnitEditPart;
+import comrel.diagram.edit.parts.MultiInputPortEditPart;
+import comrel.diagram.edit.parts.MultiPortMappingEditPart;
+import comrel.diagram.edit.parts.MultiSinglePortMappingEditPart;
+import comrel.diagram.edit.parts.ParallelQueuedUnit2EditPart;
+import comrel.diagram.edit.parts.SequentialUnit2EditPart;
+import comrel.diagram.edit.parts.SingleFeatureUnitEditPart;
+import comrel.diagram.edit.parts.SingleFilterUnitEditPart;
+import comrel.diagram.edit.parts.SingleInputPort2EditPart;
+import comrel.diagram.edit.parts.SinglePortMappingEditPart;
+import comrel.diagram.edit.parts.SingleQueuedUnit2EditPart;
+import comrel.diagram.part.ComrelVisualIDRegistry;
+import comrel.diagram.providers.ComrelElementTypes;
+
+/**
+ * @generated
+ */
+public class CartesianQueuedUnit3ItemSemanticEditPolicy extends
+ ComrelBaseItemSemanticEditPolicy {
+
+ /**
+ * @generated
+ */
+ public CartesianQueuedUnit3ItemSemanticEditPolicy() {
+ super(ComrelElementTypes.CartesianQueuedUnit_3007);
+ }
+
+ /**
+ * @generated
+ */
+ protected Command getCreateCommand(CreateElementRequest req) {
+ if (ComrelElementTypes.SingleInputPort_3001 == req.getElementType()) {
+ return getGEFWrapper(new SingleInputPort2CreateCommand(req));
+ }
+ if (ComrelElementTypes.MultiInputPort_3002 == req.getElementType()) {
+ return getGEFWrapper(new MultiInputPortCreateCommand(req));
+ }
+ return super.getCreateCommand(req);
+ }
+
+ /**
+ * @generated
+ */
+ protected Command getDestroyElementCommand(DestroyElementRequest req) {
+ View view = (View) getHost().getModel();
+ CompositeTransactionalCommand cmd = new CompositeTransactionalCommand(
+ getEditingDomain(), null);
+ cmd.setTransactionNestingEnabled(false);
+ EAnnotation annotation = view.getEAnnotation("Shortcut"); //$NON-NLS-1$
+ if (annotation == null) {
+ // there are indirectly referenced children, need extra commands: false
+ addDestroyChildNodesCommand(cmd);
+ addDestroyShortcutsCommand(cmd, view);
+ // delete host element
+ cmd.add(new DestroyElementCommand(req));
+ } else {
+ cmd.add(new DeleteCommand(getEditingDomain(), view));
+ }
+ return getGEFWrapper(cmd.reduce());
+ }
+
+ /**
+ * @generated
+ */
+ private void addDestroyChildNodesCommand(ICompositeCommand cmd) {
+ View view = (View) getHost().getModel();
+ for (Iterator<?> nit = view.getChildren().iterator(); nit.hasNext();) {
+ Node node = (Node) nit.next();
+ switch (ComrelVisualIDRegistry.getVisualID(node)) {
+ case SingleInputPort2EditPart.VISUAL_ID:
+ for (Iterator<?> it = node.getTargetEdges().iterator(); it
+ .hasNext();) {
+ Edge incomingLink = (Edge) it.next();
+ if (ComrelVisualIDRegistry.getVisualID(incomingLink) == SinglePortMappingEditPart.VISUAL_ID) {
+ DestroyElementRequest r = new DestroyElementRequest(
+ incomingLink.getElement(), false);
+ cmd.add(new DestroyElementCommand(r));
+ cmd.add(new DeleteCommand(getEditingDomain(),
+ incomingLink));
+ continue;
+ }
+ if (ComrelVisualIDRegistry.getVisualID(incomingLink) == MultiSinglePortMappingEditPart.VISUAL_ID) {
+ DestroyElementRequest r = new DestroyElementRequest(
+ incomingLink.getElement(), false);
+ cmd.add(new DestroyElementCommand(r));
+ cmd.add(new DeleteCommand(getEditingDomain(),
+ incomingLink));
+ continue;
+ }
+ }
+ for (Iterator<?> it = node.getSourceEdges().iterator(); it
+ .hasNext();) {
+ Edge outgoingLink = (Edge) it.next();
+ if (ComrelVisualIDRegistry.getVisualID(outgoingLink) == SinglePortMappingEditPart.VISUAL_ID) {
+ DestroyElementRequest r = new DestroyElementRequest(
+ outgoingLink.getElement(), false);
+ cmd.add(new DestroyElementCommand(r));
+ cmd.add(new DeleteCommand(getEditingDomain(),
+ outgoingLink));
+ continue;
+ }
+ }
+ cmd.add(new DestroyElementCommand(new DestroyElementRequest(
+ getEditingDomain(), node.getElement(), false))); // directlyOwned: true
+ // don't need explicit deletion of node as parent's view deletion would clean child views as well
+ // cmd.add(new org.eclipse.gmf.runtime.diagram.core.commands.DeleteCommand(getEditingDomain(), node));
+ break;
+ case MultiInputPortEditPart.VISUAL_ID:
+ for (Iterator<?> it = node.getTargetEdges().iterator(); it
+ .hasNext();) {
+ Edge incomingLink = (Edge) it.next();
+ if (ComrelVisualIDRegistry.getVisualID(incomingLink) == MultiPortMappingEditPart.VISUAL_ID) {
+ DestroyElementRequest r = new DestroyElementRequest(
+ incomingLink.getElement(), false);
+ cmd.add(new DestroyElementCommand(r));
+ cmd.add(new DeleteCommand(getEditingDomain(),
+ incomingLink));
+ continue;
+ }
+ }
+ for (Iterator<?> it = node.getSourceEdges().iterator(); it
+ .hasNext();) {
+ Edge outgoingLink = (Edge) it.next();
+ if (ComrelVisualIDRegistry.getVisualID(outgoingLink) == MultiPortMappingEditPart.VISUAL_ID) {
+ DestroyElementRequest r = new DestroyElementRequest(
+ outgoingLink.getElement(), false);
+ cmd.add(new DestroyElementCommand(r));
+ cmd.add(new DeleteCommand(getEditingDomain(),
+ outgoingLink));
+ continue;
+ }
+ if (ComrelVisualIDRegistry.getVisualID(outgoingLink) == MultiSinglePortMappingEditPart.VISUAL_ID) {
+ DestroyElementRequest r = new DestroyElementRequest(
+ outgoingLink.getElement(), false);
+ cmd.add(new DestroyElementCommand(r));
+ cmd.add(new DeleteCommand(getEditingDomain(),
+ outgoingLink));
+ continue;
+ }
+ }
+ cmd.add(new DestroyElementCommand(new DestroyElementRequest(
+ getEditingDomain(), node.getElement(), false))); // directlyOwned: true
+ // don't need explicit deletion of node as parent's view deletion would clean child views as well
+ // cmd.add(new org.eclipse.gmf.runtime.diagram.core.commands.DeleteCommand(getEditingDomain(), node));
+ break;
+ case CartesianQueuedUnitCartesianQueuedUnitHelperUnitsCompartment3EditPart.VISUAL_ID:
+ for (Iterator<?> cit = node.getChildren().iterator(); cit
+ .hasNext();) {
+ Node cnode = (Node) cit.next();
+ switch (ComrelVisualIDRegistry.getVisualID(cnode)) {
+ case SingleFeatureUnitEditPart.VISUAL_ID:
+ cmd.add(new DestroyElementCommand(
+ new DestroyElementRequest(getEditingDomain(),
+ cnode.getElement(), false))); // directlyOwned: true
+ // don't need explicit deletion of cnode as parent's view deletion would clean child views as well
+ // cmd.add(new org.eclipse.gmf.runtime.diagram.core.commands.DeleteCommand(getEditingDomain(), cnode));
+ break;
+ case MultiFeatureUnitEditPart.VISUAL_ID:
+ cmd.add(new DestroyElementCommand(
+ new DestroyElementRequest(getEditingDomain(),
+ cnode.getElement(), false))); // directlyOwned: true
+ // don't need explicit deletion of cnode as parent's view deletion would clean child views as well
+ // cmd.add(new org.eclipse.gmf.runtime.diagram.core.commands.DeleteCommand(getEditingDomain(), cnode));
+ break;
+ case SingleFilterUnitEditPart.VISUAL_ID:
+ cmd.add(new DestroyElementCommand(
+ new DestroyElementRequest(getEditingDomain(),
+ cnode.getElement(), false))); // directlyOwned: true
+ // don't need explicit deletion of cnode as parent's view deletion would clean child views as well
+ // cmd.add(new org.eclipse.gmf.runtime.diagram.core.commands.DeleteCommand(getEditingDomain(), cnode));
+ break;
+ case MultiFilterUnitEditPart.VISUAL_ID:
+ cmd.add(new DestroyElementCommand(
+ new DestroyElementRequest(getEditingDomain(),
+ cnode.getElement(), false))); // directlyOwned: true
+ // don't need explicit deletion of cnode as parent's view deletion would clean child views as well
+ // cmd.add(new org.eclipse.gmf.runtime.diagram.core.commands.DeleteCommand(getEditingDomain(), cnode));
+ break;
+ }
+ }
+ break;
+ case CartesianQueuedUnitCartesianQueuedUnitRefactoringUnitCompartment3EditPart.VISUAL_ID:
+ for (Iterator<?> cit = node.getChildren().iterator(); cit
+ .hasNext();) {
+ Node cnode = (Node) cit.next();
+ switch (ComrelVisualIDRegistry.getVisualID(cnode)) {
+ case CartesianQueuedUnit2EditPart.VISUAL_ID:
+ cmd.add(new DestroyElementCommand(
+ new DestroyElementRequest(getEditingDomain(),
+ cnode.getElement(), false))); // directlyOwned: true
+ // don't need explicit deletion of cnode as parent's view deletion would clean child views as well
+ // cmd.add(new org.eclipse.gmf.runtime.diagram.core.commands.DeleteCommand(getEditingDomain(), cnode));
+ break;
+ case ParallelQueuedUnit2EditPart.VISUAL_ID:
+ cmd.add(new DestroyElementCommand(
+ new DestroyElementRequest(getEditingDomain(),
+ cnode.getElement(), false))); // directlyOwned: true
+ // don't need explicit deletion of cnode as parent's view deletion would clean child views as well
+ // cmd.add(new org.eclipse.gmf.runtime.diagram.core.commands.DeleteCommand(getEditingDomain(), cnode));
+ break;
+ case SingleQueuedUnit2EditPart.VISUAL_ID:
+ cmd.add(new DestroyElementCommand(
+ new DestroyElementRequest(getEditingDomain(),
+ cnode.getElement(), false))); // directlyOwned: true
+ // don't need explicit deletion of cnode as parent's view deletion would clean child views as well
+ // cmd.add(new org.eclipse.gmf.runtime.diagram.core.commands.DeleteCommand(getEditingDomain(), cnode));
+ break;
+ case SequentialUnit2EditPart.VISUAL_ID:
+ cmd.add(new DestroyElementCommand(
+ new DestroyElementRequest(getEditingDomain(),
+ cnode.getElement(), false))); // directlyOwned: true
+ // don't need explicit deletion of cnode as parent's view deletion would clean child views as well
+ // cmd.add(new org.eclipse.gmf.runtime.diagram.core.commands.DeleteCommand(getEditingDomain(), cnode));
+ break;
+ case ConditionalUnit2EditPart.VISUAL_ID:
+ cmd.add(new DestroyElementCommand(
+ new DestroyElementRequest(getEditingDomain(),
+ cnode.getElement(), false))); // directlyOwned: true
+ // don't need explicit deletion of cnode as parent's view deletion would clean child views as well
+ // cmd.add(new org.eclipse.gmf.runtime.diagram.core.commands.DeleteCommand(getEditingDomain(), cnode));
+ break;
+ case AtomicUnit2EditPart.VISUAL_ID:
+ cmd.add(new DestroyElementCommand(
+ new DestroyElementRequest(getEditingDomain(),
+ cnode.getElement(), false))); // directlyOwned: true
+ // don't need explicit deletion of cnode as parent's view deletion would clean child views as well
+ // cmd.add(new org.eclipse.gmf.runtime.diagram.core.commands.DeleteCommand(getEditingDomain(), cnode));
+ break;
+ }
+ }
+ break;
+ }
+ }
+ }
+
+}
diff --git a/org.eclipse.emf.refactor.comrel.diagram/src/comrel/diagram/edit/policies/CartesianQueuedUnit4CanonicalEditPolicy.java b/org.eclipse.emf.refactor.comrel.diagram/src/comrel/diagram/edit/policies/CartesianQueuedUnit4CanonicalEditPolicy.java
new file mode 100644
index 0000000..967ac63
--- /dev/null
+++ b/org.eclipse.emf.refactor.comrel.diagram/src/comrel/diagram/edit/policies/CartesianQueuedUnit4CanonicalEditPolicy.java
@@ -0,0 +1,179 @@
+/*
+ *
+ */
+package comrel.diagram.edit.policies;
+
+import java.util.ArrayList;
+import java.util.Collection;
+import java.util.HashSet;
+import java.util.Iterator;
+import java.util.LinkedList;
+import java.util.List;
+import java.util.Set;
+
+import org.eclipse.core.runtime.IAdaptable;
+import org.eclipse.emf.ecore.EObject;
+import org.eclipse.emf.ecore.EStructuralFeature;
+import org.eclipse.gef.commands.Command;
+import org.eclipse.gmf.runtime.diagram.core.util.ViewUtil;
+import org.eclipse.gmf.runtime.diagram.ui.commands.DeferredLayoutCommand;
+import org.eclipse.gmf.runtime.diagram.ui.commands.ICommandProxy;
+import org.eclipse.gmf.runtime.diagram.ui.commands.SetViewMutabilityCommand;
+import org.eclipse.gmf.runtime.diagram.ui.editpolicies.CanonicalEditPolicy;
+import org.eclipse.gmf.runtime.diagram.ui.requests.CreateViewRequest;
+import org.eclipse.gmf.runtime.emf.core.util.EObjectAdapter;
+import org.eclipse.gmf.runtime.notation.Node;
+import org.eclipse.gmf.runtime.notation.View;
+
+import comrel.ComrelPackage;
+import comrel.diagram.edit.parts.MultiInputPortEditPart;
+import comrel.diagram.edit.parts.SingleInputPort2EditPart;
+import comrel.diagram.part.ComrelDiagramUpdater;
+import comrel.diagram.part.ComrelNodeDescriptor;
+import comrel.diagram.part.ComrelVisualIDRegistry;
+
+/**
+ * @generated
+ */
+public class CartesianQueuedUnit4CanonicalEditPolicy extends
+ CanonicalEditPolicy {
+
+ /**
+ * @generated
+ */
+ private Set<EStructuralFeature> myFeaturesToSynchronize;
+
+ /**
+ * @generated
+ */
+ protected Set getFeaturesToSynchronize() {
+ if (myFeaturesToSynchronize == null) {
+ myFeaturesToSynchronize = new HashSet<EStructuralFeature>();
+ myFeaturesToSynchronize.add(ComrelPackage.eINSTANCE
+ .getCartesianQueuedUnit_SingleInputPorts());
+ myFeaturesToSynchronize.add(ComrelPackage.eINSTANCE
+ .getCartesianQueuedUnit_MultiInputPorts());
+ }
+ return myFeaturesToSynchronize;
+ }
+
+ /**
+ * @generated
+ */
+ @SuppressWarnings("rawtypes")
+ protected List getSemanticChildrenList() {
+ View viewObject = (View) getHost().getModel();
+ LinkedList<EObject> result = new LinkedList<EObject>();
+ List<ComrelNodeDescriptor> childDescriptors = ComrelDiagramUpdater
+ .getCartesianQueuedUnit_3025SemanticChildren(viewObject);
+ for (ComrelNodeDescriptor d : childDescriptors) {
+ result.add(d.getModelElement());
+ }
+ return result;
+ }
+
+ /**
+ * @generated
+ */
+ protected boolean isOrphaned(Collection<EObject> semanticChildren,
+ final View view) {
+ return isMyDiagramElement(view)
+ && !semanticChildren.contains(view.getElement());
+ }
+
+ /**
+ * @generated
+ */
+ private boolean isMyDiagramElement(View view) {
+ int visualID = ComrelVisualIDRegistry.getVisualID(view);
+ return visualID == SingleInputPort2EditPart.VISUAL_ID
+ || visualID == MultiInputPortEditPart.VISUAL_ID;
+ }
+
+ /**
+ * @generated
+ */
+ protected void refreshSemantic() {
+ if (resolveSemanticElement() == null) {
+ return;
+ }
+ LinkedList<IAdaptable> createdViews = new LinkedList<IAdaptable>();
+ List<ComrelNodeDescriptor> childDescriptors = ComrelDiagramUpdater
+ .getCartesianQueuedUnit_3025SemanticChildren((View) getHost()
+ .getModel());
+ LinkedList<View> orphaned = new LinkedList<View>();
+ // we care to check only views we recognize as ours
+ LinkedList<View> knownViewChildren = new LinkedList<View>();
+ for (View v : getViewChildren()) {
+ if (isMyDiagramElement(v)) {
+ knownViewChildren.add(v);
+ }
+ }
+ // alternative to #cleanCanonicalSemanticChildren(getViewChildren(), semanticChildren)
+ //
+ // iteration happens over list of desired semantic elements, trying to find best matching View, while original CEP
+ // iterates views, potentially losing view (size/bounds) information - i.e. if there are few views to reference same EObject, only last one
+ // to answer isOrphaned == true will be used for the domain element representation, see #cleanCanonicalSemanticChildren()
+ for (Iterator<ComrelNodeDescriptor> descriptorsIterator = childDescriptors
+ .iterator(); descriptorsIterator.hasNext();) {
+ ComrelNodeDescriptor next = descriptorsIterator.next();
+ String hint = ComrelVisualIDRegistry.getType(next.getVisualID());
+ LinkedList<View> perfectMatch = new LinkedList<View>(); // both semanticElement and hint match that of NodeDescriptor
+ for (View childView : getViewChildren()) {
+ EObject semanticElement = childView.getElement();
+ if (next.getModelElement().equals(semanticElement)) {
+ if (hint.equals(childView.getType())) {
+ perfectMatch.add(childView);
+ // actually, can stop iteration over view children here, but
+ // may want to use not the first view but last one as a 'real' match (the way original CEP does
+ // with its trick with viewToSemanticMap inside #cleanCanonicalSemanticChildren
+ }
+ }
+ }
+ if (perfectMatch.size() > 0) {
+ descriptorsIterator.remove(); // precise match found no need to create anything for the NodeDescriptor
+ // use only one view (first or last?), keep rest as orphaned for further consideration
+ knownViewChildren.remove(perfectMatch.getFirst());
+ }
+ }
+ // those left in knownViewChildren are subject to removal - they are our diagram elements we didn't find match to,
+ // or those we have potential matches to, and thus need to be recreated, preserving size/location information.
+ orphaned.addAll(knownViewChildren);
+ //
+ ArrayList<CreateViewRequest.ViewDescriptor> viewDescriptors = new ArrayList<CreateViewRequest.ViewDescriptor>(
+ childDescriptors.size());
+ for (ComrelNodeDescriptor next : childDescriptors) {
+ String hint = ComrelVisualIDRegistry.getType(next.getVisualID());
+ IAdaptable elementAdapter = new CanonicalElementAdapter(
+ next.getModelElement(), hint);
+ CreateViewRequest.ViewDescriptor descriptor = new CreateViewRequest.ViewDescriptor(
+ elementAdapter, Node.class, hint, ViewUtil.APPEND, false,
+ host().getDiagramPreferencesHint());
+ viewDescriptors.add(descriptor);
+ }
+
+ boolean changed = deleteViews(orphaned.iterator());
+ //
+ CreateViewRequest request = getCreateViewRequest(viewDescriptors);
+ Command cmd = getCreateViewCommand(request);
+ if (cmd != null && cmd.canExecute()) {
+ SetViewMutabilityCommand.makeMutable(
+ new EObjectAdapter(host().getNotationView())).execute();
+ executeCommand(cmd);
+ @SuppressWarnings("unchecked")
+ List<IAdaptable> nl = (List<IAdaptable>) request.getNewObject();
+ createdViews.addAll(nl);
+ }
+ if (changed || createdViews.size() > 0) {
+ postProcessRefreshSemantic(createdViews);
+ }
+ if (createdViews.size() > 1) {
+ // perform a layout of the container
+ DeferredLayoutCommand layoutCmd = new DeferredLayoutCommand(host()
+ .getEditingDomain(), createdViews, host());
+ executeCommand(new ICommandProxy(layoutCmd));
+ }
+
+ makeViewsImmutable(createdViews);
+ }
+}
diff --git a/org.eclipse.emf.refactor.comrel.diagram/src/comrel/diagram/edit/policies/CartesianQueuedUnit4ItemSemanticEditPolicy.java b/org.eclipse.emf.refactor.comrel.diagram/src/comrel/diagram/edit/policies/CartesianQueuedUnit4ItemSemanticEditPolicy.java
new file mode 100644
index 0000000..1fc6b4e
--- /dev/null
+++ b/org.eclipse.emf.refactor.comrel.diagram/src/comrel/diagram/edit/policies/CartesianQueuedUnit4ItemSemanticEditPolicy.java
@@ -0,0 +1,263 @@
+/*
+ *
+ */
+package comrel.diagram.edit.policies;
+
+import java.util.Iterator;
+
+import org.eclipse.emf.ecore.EAnnotation;
+import org.eclipse.gef.commands.Command;
+import org.eclipse.gmf.runtime.common.core.command.ICompositeCommand;
+import org.eclipse.gmf.runtime.diagram.core.commands.DeleteCommand;
+import org.eclipse.gmf.runtime.emf.commands.core.command.CompositeTransactionalCommand;
+import org.eclipse.gmf.runtime.emf.type.core.commands.DestroyElementCommand;
+import org.eclipse.gmf.runtime.emf.type.core.requests.CreateElementRequest;
+import org.eclipse.gmf.runtime.emf.type.core.requests.DestroyElementRequest;
+import org.eclipse.gmf.runtime.notation.Edge;
+import org.eclipse.gmf.runtime.notation.Node;
+import org.eclipse.gmf.runtime.notation.View;
+
+import comrel.diagram.edit.commands.MultiInputPortCreateCommand;
+import comrel.diagram.edit.commands.SingleInputPort2CreateCommand;
+import comrel.diagram.edit.parts.AtomicUnit2EditPart;
+import comrel.diagram.edit.parts.CartesianQueuedUnit2EditPart;
+import comrel.diagram.edit.parts.CartesianQueuedUnitCartesianQueuedUnitHelperUnitsCompartment4EditPart;
+import comrel.diagram.edit.parts.CartesianQueuedUnitCartesianQueuedUnitRefactoringUnitCompartment4EditPart;
+import comrel.diagram.edit.parts.ConditionalUnit2EditPart;
+import comrel.diagram.edit.parts.MultiFeatureUnitEditPart;
+import comrel.diagram.edit.parts.MultiFilterUnitEditPart;
+import comrel.diagram.edit.parts.MultiInputPortEditPart;
+import comrel.diagram.edit.parts.MultiPortMappingEditPart;
+import comrel.diagram.edit.parts.MultiSinglePortMappingEditPart;
+import comrel.diagram.edit.parts.ParallelQueuedUnit2EditPart;
+import comrel.diagram.edit.parts.SequentialUnit2EditPart;
+import comrel.diagram.edit.parts.SingleFeatureUnitEditPart;
+import comrel.diagram.edit.parts.SingleFilterUnitEditPart;
+import comrel.diagram.edit.parts.SingleInputPort2EditPart;
+import comrel.diagram.edit.parts.SinglePortMappingEditPart;
+import comrel.diagram.edit.parts.SingleQueuedUnit2EditPart;
+import comrel.diagram.part.ComrelVisualIDRegistry;
+import comrel.diagram.providers.ComrelElementTypes;
+
+/**
+ * @generated
+ */
+public class CartesianQueuedUnit4ItemSemanticEditPolicy extends
+ ComrelBaseItemSemanticEditPolicy {
+
+ /**
+ * @generated
+ */
+ public CartesianQueuedUnit4ItemSemanticEditPolicy() {
+ super(ComrelElementTypes.CartesianQueuedUnit_3025);
+ }
+
+ /**
+ * @generated
+ */
+ protected Command getCreateCommand(CreateElementRequest req) {
+ if (ComrelElementTypes.SingleInputPort_3001 == req.getElementType()) {
+ return getGEFWrapper(new SingleInputPort2CreateCommand(req));
+ }
+ if (ComrelElementTypes.MultiInputPort_3002 == req.getElementType()) {
+ return getGEFWrapper(new MultiInputPortCreateCommand(req));
+ }
+ return super.getCreateCommand(req);
+ }
+
+ /**
+ * @generated
+ */
+ protected Command getDestroyElementCommand(DestroyElementRequest req) {
+ View view = (View) getHost().getModel();
+ CompositeTransactionalCommand cmd = new CompositeTransactionalCommand(
+ getEditingDomain(), null);
+ cmd.setTransactionNestingEnabled(false);
+ EAnnotation annotation = view.getEAnnotation("Shortcut"); //$NON-NLS-1$
+ if (annotation == null) {
+ // there are indirectly referenced children, need extra commands: false
+ addDestroyChildNodesCommand(cmd);
+ addDestroyShortcutsCommand(cmd, view);
+ // delete host element
+ cmd.add(new DestroyElementCommand(req));
+ } else {
+ cmd.add(new DeleteCommand(getEditingDomain(), view));
+ }
+ return getGEFWrapper(cmd.reduce());
+ }
+
+ /**
+ * @generated
+ */
+ private void addDestroyChildNodesCommand(ICompositeCommand cmd) {
+ View view = (View) getHost().getModel();
+ for (Iterator<?> nit = view.getChildren().iterator(); nit.hasNext();) {
+ Node node = (Node) nit.next();
+ switch (ComrelVisualIDRegistry.getVisualID(node)) {
+ case SingleInputPort2EditPart.VISUAL_ID:
+ for (Iterator<?> it = node.getTargetEdges().iterator(); it
+ .hasNext();) {
+ Edge incomingLink = (Edge) it.next();
+ if (ComrelVisualIDRegistry.getVisualID(incomingLink) == SinglePortMappingEditPart.VISUAL_ID) {
+ DestroyElementRequest r = new DestroyElementRequest(
+ incomingLink.getElement(), false);
+ cmd.add(new DestroyElementCommand(r));
+ cmd.add(new DeleteCommand(getEditingDomain(),
+ incomingLink));
+ continue;
+ }
+ if (ComrelVisualIDRegistry.getVisualID(incomingLink) == MultiSinglePortMappingEditPart.VISUAL_ID) {
+ DestroyElementRequest r = new DestroyElementRequest(
+ incomingLink.getElement(), false);
+ cmd.add(new DestroyElementCommand(r));
+ cmd.add(new DeleteCommand(getEditingDomain(),
+ incomingLink));
+ continue;
+ }
+ }
+ for (Iterator<?> it = node.getSourceEdges().iterator(); it
+ .hasNext();) {
+ Edge outgoingLink = (Edge) it.next();
+ if (ComrelVisualIDRegistry.getVisualID(outgoingLink) == SinglePortMappingEditPart.VISUAL_ID) {
+ DestroyElementRequest r = new DestroyElementRequest(
+ outgoingLink.getElement(), false);
+ cmd.add(new DestroyElementCommand(r));
+ cmd.add(new DeleteCommand(getEditingDomain(),
+ outgoingLink));
+ continue;
+ }
+ }
+ cmd.add(new DestroyElementCommand(new DestroyElementRequest(
+ getEditingDomain(), node.getElement(), false))); // directlyOwned: true
+ // don't need explicit deletion of node as parent's view deletion would clean child views as well
+ // cmd.add(new org.eclipse.gmf.runtime.diagram.core.commands.DeleteCommand(getEditingDomain(), node));
+ break;
+ case MultiInputPortEditPart.VISUAL_ID:
+ for (Iterator<?> it = node.getTargetEdges().iterator(); it
+ .hasNext();) {
+ Edge incomingLink = (Edge) it.next();
+ if (ComrelVisualIDRegistry.getVisualID(incomingLink) == MultiPortMappingEditPart.VISUAL_ID) {
+ DestroyElementRequest r = new DestroyElementRequest(
+ incomingLink.getElement(), false);
+ cmd.add(new DestroyElementCommand(r));
+ cmd.add(new DeleteCommand(getEditingDomain(),
+ incomingLink));
+ continue;
+ }
+ }
+ for (Iterator<?> it = node.getSourceEdges().iterator(); it
+ .hasNext();) {
+ Edge outgoingLink = (Edge) it.next();
+ if (ComrelVisualIDRegistry.getVisualID(outgoingLink) == MultiPortMappingEditPart.VISUAL_ID) {
+ DestroyElementRequest r = new DestroyElementRequest(
+ outgoingLink.getElement(), false);
+ cmd.add(new DestroyElementCommand(r));
+ cmd.add(new DeleteCommand(getEditingDomain(),
+ outgoingLink));
+ continue;
+ }
+ if (ComrelVisualIDRegistry.getVisualID(outgoingLink) == MultiSinglePortMappingEditPart.VISUAL_ID) {
+ DestroyElementRequest r = new DestroyElementRequest(
+ outgoingLink.getElement(), false);
+ cmd.add(new DestroyElementCommand(r));
+ cmd.add(new DeleteCommand(getEditingDomain(),
+ outgoingLink));
+ continue;
+ }
+ }
+ cmd.add(new DestroyElementCommand(new DestroyElementRequest(
+ getEditingDomain(), node.getElement(), false))); // directlyOwned: true
+ // don't need explicit deletion of node as parent's view deletion would clean child views as well
+ // cmd.add(new org.eclipse.gmf.runtime.diagram.core.commands.DeleteCommand(getEditingDomain(), node));
+ break;
+ case CartesianQueuedUnitCartesianQueuedUnitHelperUnitsCompartment4EditPart.VISUAL_ID:
+ for (Iterator<?> cit = node.getChildren().iterator(); cit
+ .hasNext();) {
+ Node cnode = (Node) cit.next();
+ switch (ComrelVisualIDRegistry.getVisualID(cnode)) {
+ case SingleFeatureUnitEditPart.VISUAL_ID:
+ cmd.add(new DestroyElementCommand(
+ new DestroyElementRequest(getEditingDomain(),
+ cnode.getElement(), false))); // directlyOwned: true
+ // don't need explicit deletion of cnode as parent's view deletion would clean child views as well
+ // cmd.add(new org.eclipse.gmf.runtime.diagram.core.commands.DeleteCommand(getEditingDomain(), cnode));
+ break;
+ case MultiFeatureUnitEditPart.VISUAL_ID:
+ cmd.add(new DestroyElementCommand(
+ new DestroyElementRequest(getEditingDomain(),
+ cnode.getElement(), false))); // directlyOwned: true
+ // don't need explicit deletion of cnode as parent's view deletion would clean child views as well
+ // cmd.add(new org.eclipse.gmf.runtime.diagram.core.commands.DeleteCommand(getEditingDomain(), cnode));
+ break;
+ case SingleFilterUnitEditPart.VISUAL_ID:
+ cmd.add(new DestroyElementCommand(
+ new DestroyElementRequest(getEditingDomain(),
+ cnode.getElement(), false))); // directlyOwned: true
+ // don't need explicit deletion of cnode as parent's view deletion would clean child views as well
+ // cmd.add(new org.eclipse.gmf.runtime.diagram.core.commands.DeleteCommand(getEditingDomain(), cnode));
+ break;
+ case MultiFilterUnitEditPart.VISUAL_ID:
+ cmd.add(new DestroyElementCommand(
+ new DestroyElementRequest(getEditingDomain(),
+ cnode.getElement(), false))); // directlyOwned: true
+ // don't need explicit deletion of cnode as parent's view deletion would clean child views as well
+ // cmd.add(new org.eclipse.gmf.runtime.diagram.core.commands.DeleteCommand(getEditingDomain(), cnode));
+ break;
+ }
+ }
+ break;
+ case CartesianQueuedUnitCartesianQueuedUnitRefactoringUnitCompartment4EditPart.VISUAL_ID:
+ for (Iterator<?> cit = node.getChildren().iterator(); cit
+ .hasNext();) {
+ Node cnode = (Node) cit.next();
+ switch (ComrelVisualIDRegistry.getVisualID(cnode)) {
+ case CartesianQueuedUnit2EditPart.VISUAL_ID:
+ cmd.add(new DestroyElementCommand(
+ new DestroyElementRequest(getEditingDomain(),
+ cnode.getElement(), false))); // directlyOwned: true
+ // don't need explicit deletion of cnode as parent's view deletion would clean child views as well
+ // cmd.add(new org.eclipse.gmf.runtime.diagram.core.commands.DeleteCommand(getEditingDomain(), cnode));
+ break;
+ case ParallelQueuedUnit2EditPart.VISUAL_ID:
+ cmd.add(new DestroyElementCommand(
+ new DestroyElementRequest(getEditingDomain(),
+ cnode.getElement(), false))); // directlyOwned: true
+ // don't need explicit deletion of cnode as parent's view deletion would clean child views as well
+ // cmd.add(new org.eclipse.gmf.runtime.diagram.core.commands.DeleteCommand(getEditingDomain(), cnode));
+ break;
+ case SingleQueuedUnit2EditPart.VISUAL_ID:
+ cmd.add(new DestroyElementCommand(
+ new DestroyElementRequest(getEditingDomain(),
+ cnode.getElement(), false))); // directlyOwned: true
+ // don't need explicit deletion of cnode as parent's view deletion would clean child views as well
+ // cmd.add(new org.eclipse.gmf.runtime.diagram.core.commands.DeleteCommand(getEditingDomain(), cnode));
+ break;
+ case SequentialUnit2EditPart.VISUAL_ID:
+ cmd.add(new DestroyElementCommand(
+ new DestroyElementRequest(getEditingDomain(),
+ cnode.getElement(), false))); // directlyOwned: true
+ // don't need explicit deletion of cnode as parent's view deletion would clean child views as well
+ // cmd.add(new org.eclipse.gmf.runtime.diagram.core.commands.DeleteCommand(getEditingDomain(), cnode));
+ break;
+ case ConditionalUnit2EditPart.VISUAL_ID:
+ cmd.add(new DestroyElementCommand(
+ new DestroyElementRequest(getEditingDomain(),
+ cnode.getElement(), false))); // directlyOwned: true
+ // don't need explicit deletion of cnode as parent's view deletion would clean child views as well
+ // cmd.add(new org.eclipse.gmf.runtime.diagram.core.commands.DeleteCommand(getEditingDomain(), cnode));
+ break;
+ case AtomicUnit2EditPart.VISUAL_ID:
+ cmd.add(new DestroyElementCommand(
+ new DestroyElementRequest(getEditingDomain(),
+ cnode.getElement(), false))); // directlyOwned: true
+ // don't need explicit deletion of cnode as parent's view deletion would clean child views as well
+ // cmd.add(new org.eclipse.gmf.runtime.diagram.core.commands.DeleteCommand(getEditingDomain(), cnode));
+ break;
+ }
+ }
+ break;
+ }
+ }
+ }
+
+}
diff --git a/org.eclipse.emf.refactor.comrel.diagram/src/comrel/diagram/edit/policies/CartesianQueuedUnit5CanonicalEditPolicy.java b/org.eclipse.emf.refactor.comrel.diagram/src/comrel/diagram/edit/policies/CartesianQueuedUnit5CanonicalEditPolicy.java
new file mode 100644
index 0000000..3709caf
--- /dev/null
+++ b/org.eclipse.emf.refactor.comrel.diagram/src/comrel/diagram/edit/policies/CartesianQueuedUnit5CanonicalEditPolicy.java
@@ -0,0 +1,179 @@
+/*
+ *
+ */
+package comrel.diagram.edit.policies;
+
+import java.util.ArrayList;
+import java.util.Collection;
+import java.util.HashSet;
+import java.util.Iterator;
+import java.util.LinkedList;
+import java.util.List;
+import java.util.Set;
+
+import org.eclipse.core.runtime.IAdaptable;
+import org.eclipse.emf.ecore.EObject;
+import org.eclipse.emf.ecore.EStructuralFeature;
+import org.eclipse.gef.commands.Command;
+import org.eclipse.gmf.runtime.diagram.core.util.ViewUtil;
+import org.eclipse.gmf.runtime.diagram.ui.commands.DeferredLayoutCommand;
+import org.eclipse.gmf.runtime.diagram.ui.commands.ICommandProxy;
+import org.eclipse.gmf.runtime.diagram.ui.commands.SetViewMutabilityCommand;
+import org.eclipse.gmf.runtime.diagram.ui.editpolicies.CanonicalEditPolicy;
+import org.eclipse.gmf.runtime.diagram.ui.requests.CreateViewRequest;
+import org.eclipse.gmf.runtime.emf.core.util.EObjectAdapter;
+import org.eclipse.gmf.runtime.notation.Node;
+import org.eclipse.gmf.runtime.notation.View;
+
+import comrel.ComrelPackage;
+import comrel.diagram.edit.parts.MultiInputPortEditPart;
+import comrel.diagram.edit.parts.SingleInputPort2EditPart;
+import comrel.diagram.part.ComrelDiagramUpdater;
+import comrel.diagram.part.ComrelNodeDescriptor;
+import comrel.diagram.part.ComrelVisualIDRegistry;
+
+/**
+ * @generated
+ */
+public class CartesianQueuedUnit5CanonicalEditPolicy extends
+ CanonicalEditPolicy {
+
+ /**
+ * @generated
+ */
+ private Set<EStructuralFeature> myFeaturesToSynchronize;
+
+ /**
+ * @generated
+ */
+ protected Set getFeaturesToSynchronize() {
+ if (myFeaturesToSynchronize == null) {
+ myFeaturesToSynchronize = new HashSet<EStructuralFeature>();
+ myFeaturesToSynchronize.add(ComrelPackage.eINSTANCE
+ .getCartesianQueuedUnit_SingleInputPorts());
+ myFeaturesToSynchronize.add(ComrelPackage.eINSTANCE
+ .getCartesianQueuedUnit_MultiInputPorts());
+ }
+ return myFeaturesToSynchronize;
+ }
+
+ /**
+ * @generated
+ */
+ @SuppressWarnings("rawtypes")
+ protected List getSemanticChildrenList() {
+ View viewObject = (View) getHost().getModel();
+ LinkedList<EObject> result = new LinkedList<EObject>();
+ List<ComrelNodeDescriptor> childDescriptors = ComrelDiagramUpdater
+ .getCartesianQueuedUnit_3029SemanticChildren(viewObject);
+ for (ComrelNodeDescriptor d : childDescriptors) {
+ result.add(d.getModelElement());
+ }
+ return result;
+ }
+
+ /**
+ * @generated
+ */
+ protected boolean isOrphaned(Collection<EObject> semanticChildren,
+ final View view) {
+ return isMyDiagramElement(view)
+ && !semanticChildren.contains(view.getElement());
+ }
+
+ /**
+ * @generated
+ */
+ private boolean isMyDiagramElement(View view) {
+ int visualID = ComrelVisualIDRegistry.getVisualID(view);
+ return visualID == SingleInputPort2EditPart.VISUAL_ID
+ || visualID == MultiInputPortEditPart.VISUAL_ID;
+ }
+
+ /**
+ * @generated
+ */
+ protected void refreshSemantic() {
+ if (resolveSemanticElement() == null) {
+ return;
+ }
+ LinkedList<IAdaptable> createdViews = new LinkedList<IAdaptable>();
+ List<ComrelNodeDescriptor> childDescriptors = ComrelDiagramUpdater
+ .getCartesianQueuedUnit_3029SemanticChildren((View) getHost()
+ .getModel());
+ LinkedList<View> orphaned = new LinkedList<View>();
+ // we care to check only views we recognize as ours
+ LinkedList<View> knownViewChildren = new LinkedList<View>();
+ for (View v : getViewChildren()) {
+ if (isMyDiagramElement(v)) {
+ knownViewChildren.add(v);
+ }
+ }
+ // alternative to #cleanCanonicalSemanticChildren(getViewChildren(), semanticChildren)
+ //
+ // iteration happens over list of desired semantic elements, trying to find best matching View, while original CEP
+ // iterates views, potentially losing view (size/bounds) information - i.e. if there are few views to reference same EObject, only last one
+ // to answer isOrphaned == true will be used for the domain element representation, see #cleanCanonicalSemanticChildren()
+ for (Iterator<ComrelNodeDescriptor> descriptorsIterator = childDescriptors
+ .iterator(); descriptorsIterator.hasNext();) {
+ ComrelNodeDescriptor next = descriptorsIterator.next();
+ String hint = ComrelVisualIDRegistry.getType(next.getVisualID());
+ LinkedList<View> perfectMatch = new LinkedList<View>(); // both semanticElement and hint match that of NodeDescriptor
+ for (View childView : getViewChildren()) {
+ EObject semanticElement = childView.getElement();
+ if (next.getModelElement().equals(semanticElement)) {
+ if (hint.equals(childView.getType())) {
+ perfectMatch.add(childView);
+ // actually, can stop iteration over view children here, but
+ // may want to use not the first view but last one as a 'real' match (the way original CEP does
+ // with its trick with viewToSemanticMap inside #cleanCanonicalSemanticChildren
+ }
+ }
+ }
+ if (perfectMatch.size() > 0) {
+ descriptorsIterator.remove(); // precise match found no need to create anything for the NodeDescriptor
+ // use only one view (first or last?), keep rest as orphaned for further consideration
+ knownViewChildren.remove(perfectMatch.getFirst());
+ }
+ }
+ // those left in knownViewChildren are subject to removal - they are our diagram elements we didn't find match to,
+ // or those we have potential matches to, and thus need to be recreated, preserving size/location information.
+ orphaned.addAll(knownViewChildren);
+ //
+ ArrayList<CreateViewRequest.ViewDescriptor> viewDescriptors = new ArrayList<CreateViewRequest.ViewDescriptor>(
+ childDescriptors.size());
+ for (ComrelNodeDescriptor next : childDescriptors) {
+ String hint = ComrelVisualIDRegistry.getType(next.getVisualID());
+ IAdaptable elementAdapter = new CanonicalElementAdapter(
+ next.getModelElement(), hint);
+ CreateViewRequest.ViewDescriptor descriptor = new CreateViewRequest.ViewDescriptor(
+ elementAdapter, Node.class, hint, ViewUtil.APPEND, false,
+ host().getDiagramPreferencesHint());
+ viewDescriptors.add(descriptor);
+ }
+
+ boolean changed = deleteViews(orphaned.iterator());
+ //
+ CreateViewRequest request = getCreateViewRequest(viewDescriptors);
+ Command cmd = getCreateViewCommand(request);
+ if (cmd != null && cmd.canExecute()) {
+ SetViewMutabilityCommand.makeMutable(
+ new EObjectAdapter(host().getNotationView())).execute();
+ executeCommand(cmd);
+ @SuppressWarnings("unchecked")
+ List<IAdaptable> nl = (List<IAdaptable>) request.getNewObject();
+ createdViews.addAll(nl);
+ }
+ if (changed || createdViews.size() > 0) {
+ postProcessRefreshSemantic(createdViews);
+ }
+ if (createdViews.size() > 1) {
+ // perform a layout of the container
+ DeferredLayoutCommand layoutCmd = new DeferredLayoutCommand(host()
+ .getEditingDomain(), createdViews, host());
+ executeCommand(new ICommandProxy(layoutCmd));
+ }
+
+ makeViewsImmutable(createdViews);
+ }
+}
diff --git a/org.eclipse.emf.refactor.comrel.diagram/src/comrel/diagram/edit/policies/CartesianQueuedUnit5ItemSemanticEditPolicy.java b/org.eclipse.emf.refactor.comrel.diagram/src/comrel/diagram/edit/policies/CartesianQueuedUnit5ItemSemanticEditPolicy.java
new file mode 100644
index 0000000..be748f7
--- /dev/null
+++ b/org.eclipse.emf.refactor.comrel.diagram/src/comrel/diagram/edit/policies/CartesianQueuedUnit5ItemSemanticEditPolicy.java
@@ -0,0 +1,263 @@
+/*
+ *
+ */
+package comrel.diagram.edit.policies;
+
+import java.util.Iterator;
+
+import org.eclipse.emf.ecore.EAnnotation;
+import org.eclipse.gef.commands.Command;
+import org.eclipse.gmf.runtime.common.core.command.ICompositeCommand;
+import org.eclipse.gmf.runtime.diagram.core.commands.DeleteCommand;
+import org.eclipse.gmf.runtime.emf.commands.core.command.CompositeTransactionalCommand;
+import org.eclipse.gmf.runtime.emf.type.core.commands.DestroyElementCommand;
+import org.eclipse.gmf.runtime.emf.type.core.requests.CreateElementRequest;
+import org.eclipse.gmf.runtime.emf.type.core.requests.DestroyElementRequest;
+import org.eclipse.gmf.runtime.notation.Edge;
+import org.eclipse.gmf.runtime.notation.Node;
+import org.eclipse.gmf.runtime.notation.View;
+
+import comrel.diagram.edit.commands.MultiInputPortCreateCommand;
+import comrel.diagram.edit.commands.SingleInputPort2CreateCommand;
+import comrel.diagram.edit.parts.AtomicUnit2EditPart;
+import comrel.diagram.edit.parts.CartesianQueuedUnit2EditPart;
+import comrel.diagram.edit.parts.CartesianQueuedUnitCartesianQueuedUnitHelperUnitsCompartment5EditPart;
+import comrel.diagram.edit.parts.CartesianQueuedUnitCartesianQueuedUnitRefactoringUnitCompartment5EditPart;
+import comrel.diagram.edit.parts.ConditionalUnit2EditPart;
+import comrel.diagram.edit.parts.MultiFeatureUnitEditPart;
+import comrel.diagram.edit.parts.MultiFilterUnitEditPart;
+import comrel.diagram.edit.parts.MultiInputPortEditPart;
+import comrel.diagram.edit.parts.MultiPortMappingEditPart;
+import comrel.diagram.edit.parts.MultiSinglePortMappingEditPart;
+import comrel.diagram.edit.parts.ParallelQueuedUnit2EditPart;
+import comrel.diagram.edit.parts.SequentialUnit2EditPart;
+import comrel.diagram.edit.parts.SingleFeatureUnitEditPart;
+import comrel.diagram.edit.parts.SingleFilterUnitEditPart;
+import comrel.diagram.edit.parts.SingleInputPort2EditPart;
+import comrel.diagram.edit.parts.SinglePortMappingEditPart;
+import comrel.diagram.edit.parts.SingleQueuedUnit2EditPart;
+import comrel.diagram.part.ComrelVisualIDRegistry;
+import comrel.diagram.providers.ComrelElementTypes;
+
+/**
+ * @generated
+ */
+public class CartesianQueuedUnit5ItemSemanticEditPolicy extends
+ ComrelBaseItemSemanticEditPolicy {
+
+ /**
+ * @generated
+ */
+ public CartesianQueuedUnit5ItemSemanticEditPolicy() {
+ super(ComrelElementTypes.CartesianQueuedUnit_3029);
+ }
+
+ /**
+ * @generated
+ */
+ protected Command getCreateCommand(CreateElementRequest req) {
+ if (ComrelElementTypes.SingleInputPort_3001 == req.getElementType()) {
+ return getGEFWrapper(new SingleInputPort2CreateCommand(req));
+ }
+ if (ComrelElementTypes.MultiInputPort_3002 == req.getElementType()) {
+ return getGEFWrapper(new MultiInputPortCreateCommand(req));
+ }
+ return super.getCreateCommand(req);
+ }
+
+ /**
+ * @generated
+ */
+ protected Command getDestroyElementCommand(DestroyElementRequest req) {
+ View view = (View) getHost().getModel();
+ CompositeTransactionalCommand cmd = new CompositeTransactionalCommand(
+ getEditingDomain(), null);
+ cmd.setTransactionNestingEnabled(false);
+ EAnnotation annotation = view.getEAnnotation("Shortcut"); //$NON-NLS-1$
+ if (annotation == null) {
+ // there are indirectly referenced children, need extra commands: false
+ addDestroyChildNodesCommand(cmd);
+ addDestroyShortcutsCommand(cmd, view);
+ // delete host element
+ cmd.add(new DestroyElementCommand(req));
+ } else {
+ cmd.add(new DeleteCommand(getEditingDomain(), view));
+ }
+ return getGEFWrapper(cmd.reduce());
+ }
+
+ /**
+ * @generated
+ */
+ private void addDestroyChildNodesCommand(ICompositeCommand cmd) {
+ View view = (View) getHost().getModel();
+ for (Iterator<?> nit = view.getChildren().iterator(); nit.hasNext();) {
+ Node node = (Node) nit.next();
+ switch (ComrelVisualIDRegistry.getVisualID(node)) {
+ case SingleInputPort2EditPart.VISUAL_ID:
+ for (Iterator<?> it = node.getTargetEdges().iterator(); it
+ .hasNext();) {
+ Edge incomingLink = (Edge) it.next();
+ if (ComrelVisualIDRegistry.getVisualID(incomingLink) == SinglePortMappingEditPart.VISUAL_ID) {
+ DestroyElementRequest r = new DestroyElementRequest(
+ incomingLink.getElement(), false);
+ cmd.add(new DestroyElementCommand(r));
+ cmd.add(new DeleteCommand(getEditingDomain(),
+ incomingLink));
+ continue;
+ }
+ if (ComrelVisualIDRegistry.getVisualID(incomingLink) == MultiSinglePortMappingEditPart.VISUAL_ID) {
+ DestroyElementRequest r = new DestroyElementRequest(
+ incomingLink.getElement(), false);
+ cmd.add(new DestroyElementCommand(r));
+ cmd.add(new DeleteCommand(getEditingDomain(),
+ incomingLink));
+ continue;
+ }
+ }
+ for (Iterator<?> it = node.getSourceEdges().iterator(); it
+ .hasNext();) {
+ Edge outgoingLink = (Edge) it.next();
+ if (ComrelVisualIDRegistry.getVisualID(outgoingLink) == SinglePortMappingEditPart.VISUAL_ID) {
+ DestroyElementRequest r = new DestroyElementRequest(
+ outgoingLink.getElement(), false);
+ cmd.add(new DestroyElementCommand(r));
+ cmd.add(new DeleteCommand(getEditingDomain(),
+ outgoingLink));
+ continue;
+ }
+ }
+ cmd.add(new DestroyElementCommand(new DestroyElementRequest(
+ getEditingDomain(), node.getElement(), false))); // directlyOwned: true
+ // don't need explicit deletion of node as parent's view deletion would clean child views as well
+ // cmd.add(new org.eclipse.gmf.runtime.diagram.core.commands.DeleteCommand(getEditingDomain(), node));
+ break;
+ case MultiInputPortEditPart.VISUAL_ID:
+ for (Iterator<?> it = node.getTargetEdges().iterator(); it
+ .hasNext();) {
+ Edge incomingLink = (Edge) it.next();
+ if (ComrelVisualIDRegistry.getVisualID(incomingLink) == MultiPortMappingEditPart.VISUAL_ID) {
+ DestroyElementRequest r = new DestroyElementRequest(
+ incomingLink.getElement(), false);
+ cmd.add(new DestroyElementCommand(r));
+ cmd.add(new DeleteCommand(getEditingDomain(),
+ incomingLink));
+ continue;
+ }
+ }
+ for (Iterator<?> it = node.getSourceEdges().iterator(); it
+ .hasNext();) {
+ Edge outgoingLink = (Edge) it.next();
+ if (ComrelVisualIDRegistry.getVisualID(outgoingLink) == MultiPortMappingEditPart.VISUAL_ID) {
+ DestroyElementRequest r = new DestroyElementRequest(
+ outgoingLink.getElement(), false);
+ cmd.add(new DestroyElementCommand(r));
+ cmd.add(new DeleteCommand(getEditingDomain(),
+ outgoingLink));
+ continue;
+ }
+ if (ComrelVisualIDRegistry.getVisualID(outgoingLink) == MultiSinglePortMappingEditPart.VISUAL_ID) {
+ DestroyElementRequest r = new DestroyElementRequest(
+ outgoingLink.getElement(), false);
+ cmd.add(new DestroyElementCommand(r));
+ cmd.add(new DeleteCommand(getEditingDomain(),
+ outgoingLink));
+ continue;
+ }
+ }
+ cmd.add(new DestroyElementCommand(new DestroyElementRequest(
+ getEditingDomain(), node.getElement(), false))); // directlyOwned: true
+ // don't need explicit deletion of node as parent's view deletion would clean child views as well
+ // cmd.add(new org.eclipse.gmf.runtime.diagram.core.commands.DeleteCommand(getEditingDomain(), node));
+ break;
+ case CartesianQueuedUnitCartesianQueuedUnitHelperUnitsCompartment5EditPart.VISUAL_ID:
+ for (Iterator<?> cit = node.getChildren().iterator(); cit
+ .hasNext();) {
+ Node cnode = (Node) cit.next();
+ switch (ComrelVisualIDRegistry.getVisualID(cnode)) {
+ case SingleFeatureUnitEditPart.VISUAL_ID:
+ cmd.add(new DestroyElementCommand(
+ new DestroyElementRequest(getEditingDomain(),
+ cnode.getElement(), false))); // directlyOwned: true
+ // don't need explicit deletion of cnode as parent's view deletion would clean child views as well
+ // cmd.add(new org.eclipse.gmf.runtime.diagram.core.commands.DeleteCommand(getEditingDomain(), cnode));
+ break;
+ case MultiFeatureUnitEditPart.VISUAL_ID:
+ cmd.add(new DestroyElementCommand(
+ new DestroyElementRequest(getEditingDomain(),
+ cnode.getElement(), false))); // directlyOwned: true
+ // don't need explicit deletion of cnode as parent's view deletion would clean child views as well
+ // cmd.add(new org.eclipse.gmf.runtime.diagram.core.commands.DeleteCommand(getEditingDomain(), cnode));
+ break;
+ case SingleFilterUnitEditPart.VISUAL_ID:
+ cmd.add(new DestroyElementCommand(
+ new DestroyElementRequest(getEditingDomain(),
+ cnode.getElement(), false))); // directlyOwned: true
+ // don't need explicit deletion of cnode as parent's view deletion would clean child views as well
+ // cmd.add(new org.eclipse.gmf.runtime.diagram.core.commands.DeleteCommand(getEditingDomain(), cnode));
+ break;
+ case MultiFilterUnitEditPart.VISUAL_ID:
+ cmd.add(new DestroyElementCommand(
+ new DestroyElementRequest(getEditingDomain(),
+ cnode.getElement(), false))); // directlyOwned: true
+ // don't need explicit deletion of cnode as parent's view deletion would clean child views as well
+ // cmd.add(new org.eclipse.gmf.runtime.diagram.core.commands.DeleteCommand(getEditingDomain(), cnode));
+ break;
+ }
+ }
+ break;
+ case CartesianQueuedUnitCartesianQueuedUnitRefactoringUnitCompartment5EditPart.VISUAL_ID:
+ for (Iterator<?> cit = node.getChildren().iterator(); cit
+ .hasNext();) {
+ Node cnode = (Node) cit.next();
+ switch (ComrelVisualIDRegistry.getVisualID(cnode)) {
+ case CartesianQueuedUnit2EditPart.VISUAL_ID:
+ cmd.add(new DestroyElementCommand(
+ new DestroyElementRequest(getEditingDomain(),
+ cnode.getElement(), false))); // directlyOwned: true
+ // don't need explicit deletion of cnode as parent's view deletion would clean child views as well
+ // cmd.add(new org.eclipse.gmf.runtime.diagram.core.commands.DeleteCommand(getEditingDomain(), cnode));
+ break;
+ case ParallelQueuedUnit2EditPart.VISUAL_ID:
+ cmd.add(new DestroyElementCommand(
+ new DestroyElementRequest(getEditingDomain(),
+ cnode.getElement(), false))); // directlyOwned: true
+ // don't need explicit deletion of cnode as parent's view deletion would clean child views as well
+ // cmd.add(new org.eclipse.gmf.runtime.diagram.core.commands.DeleteCommand(getEditingDomain(), cnode));
+ break;
+ case SingleQueuedUnit2EditPart.VISUAL_ID:
+ cmd.add(new DestroyElementCommand(
+ new DestroyElementRequest(getEditingDomain(),
+ cnode.getElement(), false))); // directlyOwned: true
+ // don't need explicit deletion of cnode as parent's view deletion would clean child views as well
+ // cmd.add(new org.eclipse.gmf.runtime.diagram.core.commands.DeleteCommand(getEditingDomain(), cnode));
+ break;
+ case SequentialUnit2EditPart.VISUAL_ID:
+ cmd.add(new DestroyElementCommand(
+ new DestroyElementRequest(getEditingDomain(),
+ cnode.getElement(), false))); // directlyOwned: true
+ // don't need explicit deletion of cnode as parent's view deletion would clean child views as well
+ // cmd.add(new org.eclipse.gmf.runtime.diagram.core.commands.DeleteCommand(getEditingDomain(), cnode));
+ break;
+ case ConditionalUnit2EditPart.VISUAL_ID:
+ cmd.add(new DestroyElementCommand(
+ new DestroyElementRequest(getEditingDomain(),
+ cnode.getElement(), false))); // directlyOwned: true
+ // don't need explicit deletion of cnode as parent's view deletion would clean child views as well
+ // cmd.add(new org.eclipse.gmf.runtime.diagram.core.commands.DeleteCommand(getEditingDomain(), cnode));
+ break;
+ case AtomicUnit2EditPart.VISUAL_ID:
+ cmd.add(new DestroyElementCommand(
+ new DestroyElementRequest(getEditingDomain(),
+ cnode.getElement(), false))); // directlyOwned: true
+ // don't need explicit deletion of cnode as parent's view deletion would clean child views as well
+ // cmd.add(new org.eclipse.gmf.runtime.diagram.core.commands.DeleteCommand(getEditingDomain(), cnode));
+ break;
+ }
+ }
+ break;
+ }
+ }
+ }
+
+}
diff --git a/org.eclipse.emf.refactor.comrel.diagram/src/comrel/diagram/edit/policies/CartesianQueuedUnit6CanonicalEditPolicy.java b/org.eclipse.emf.refactor.comrel.diagram/src/comrel/diagram/edit/policies/CartesianQueuedUnit6CanonicalEditPolicy.java
new file mode 100644
index 0000000..910d9a4
--- /dev/null
+++ b/org.eclipse.emf.refactor.comrel.diagram/src/comrel/diagram/edit/policies/CartesianQueuedUnit6CanonicalEditPolicy.java
@@ -0,0 +1,179 @@
+/*
+ *
+ */
+package comrel.diagram.edit.policies;
+
+import java.util.ArrayList;
+import java.util.Collection;
+import java.util.HashSet;
+import java.util.Iterator;
+import java.util.LinkedList;
+import java.util.List;
+import java.util.Set;
+
+import org.eclipse.core.runtime.IAdaptable;
+import org.eclipse.emf.ecore.EObject;
+import org.eclipse.emf.ecore.EStructuralFeature;
+import org.eclipse.gef.commands.Command;
+import org.eclipse.gmf.runtime.diagram.core.util.ViewUtil;
+import org.eclipse.gmf.runtime.diagram.ui.commands.DeferredLayoutCommand;
+import org.eclipse.gmf.runtime.diagram.ui.commands.ICommandProxy;
+import org.eclipse.gmf.runtime.diagram.ui.commands.SetViewMutabilityCommand;
+import org.eclipse.gmf.runtime.diagram.ui.editpolicies.CanonicalEditPolicy;
+import org.eclipse.gmf.runtime.diagram.ui.requests.CreateViewRequest;
+import org.eclipse.gmf.runtime.emf.core.util.EObjectAdapter;
+import org.eclipse.gmf.runtime.notation.Node;
+import org.eclipse.gmf.runtime.notation.View;
+
+import comrel.ComrelPackage;
+import comrel.diagram.edit.parts.MultiInputPortEditPart;
+import comrel.diagram.edit.parts.SingleInputPort2EditPart;
+import comrel.diagram.part.ComrelDiagramUpdater;
+import comrel.diagram.part.ComrelNodeDescriptor;
+import comrel.diagram.part.ComrelVisualIDRegistry;
+
+/**
+ * @generated
+ */
+public class CartesianQueuedUnit6CanonicalEditPolicy extends
+ CanonicalEditPolicy {
+
+ /**
+ * @generated
+ */
+ private Set<EStructuralFeature> myFeaturesToSynchronize;
+
+ /**
+ * @generated
+ */
+ protected Set getFeaturesToSynchronize() {
+ if (myFeaturesToSynchronize == null) {
+ myFeaturesToSynchronize = new HashSet<EStructuralFeature>();
+ myFeaturesToSynchronize.add(ComrelPackage.eINSTANCE
+ .getCartesianQueuedUnit_SingleInputPorts());
+ myFeaturesToSynchronize.add(ComrelPackage.eINSTANCE
+ .getCartesianQueuedUnit_MultiInputPorts());
+ }
+ return myFeaturesToSynchronize;
+ }
+
+ /**
+ * @generated
+ */
+ @SuppressWarnings("rawtypes")
+ protected List getSemanticChildrenList() {
+ View viewObject = (View) getHost().getModel();
+ LinkedList<EObject> result = new LinkedList<EObject>();
+ List<ComrelNodeDescriptor> childDescriptors = ComrelDiagramUpdater
+ .getCartesianQueuedUnit_3033SemanticChildren(viewObject);
+ for (ComrelNodeDescriptor d : childDescriptors) {
+ result.add(d.getModelElement());
+ }
+ return result;
+ }
+
+ /**
+ * @generated
+ */
+ protected boolean isOrphaned(Collection<EObject> semanticChildren,
+ final View view) {
+ return isMyDiagramElement(view)
+ && !semanticChildren.contains(view.getElement());
+ }
+
+ /**
+ * @generated
+ */
+ private boolean isMyDiagramElement(View view) {
+ int visualID = ComrelVisualIDRegistry.getVisualID(view);
+ return visualID == SingleInputPort2EditPart.VISUAL_ID
+ || visualID == MultiInputPortEditPart.VISUAL_ID;
+ }
+
+ /**
+ * @generated
+ */
+ protected void refreshSemantic() {
+ if (resolveSemanticElement() == null) {
+ return;
+ }
+ LinkedList<IAdaptable> createdViews = new LinkedList<IAdaptable>();
+ List<ComrelNodeDescriptor> childDescriptors = ComrelDiagramUpdater
+ .getCartesianQueuedUnit_3033SemanticChildren((View) getHost()
+ .getModel());
+ LinkedList<View> orphaned = new LinkedList<View>();
+ // we care to check only views we recognize as ours
+ LinkedList<View> knownViewChildren = new LinkedList<View>();
+ for (View v : getViewChildren()) {
+ if (isMyDiagramElement(v)) {
+ knownViewChildren.add(v);
+ }
+ }
+ // alternative to #cleanCanonicalSemanticChildren(getViewChildren(), semanticChildren)
+ //
+ // iteration happens over list of desired semantic elements, trying to find best matching View, while original CEP
+ // iterates views, potentially losing view (size/bounds) information - i.e. if there are few views to reference same EObject, only last one
+ // to answer isOrphaned == true will be used for the domain element representation, see #cleanCanonicalSemanticChildren()
+ for (Iterator<ComrelNodeDescriptor> descriptorsIterator = childDescriptors
+ .iterator(); descriptorsIterator.hasNext();) {
+ ComrelNodeDescriptor next = descriptorsIterator.next();
+ String hint = ComrelVisualIDRegistry.getType(next.getVisualID());
+ LinkedList<View> perfectMatch = new LinkedList<View>(); // both semanticElement and hint match that of NodeDescriptor
+ for (View childView : getViewChildren()) {
+ EObject semanticElement = childView.getElement();
+ if (next.getModelElement().equals(semanticElement)) {
+ if (hint.equals(childView.getType())) {
+ perfectMatch.add(childView);
+ // actually, can stop iteration over view children here, but
+ // may want to use not the first view but last one as a 'real' match (the way original CEP does
+ // with its trick with viewToSemanticMap inside #cleanCanonicalSemanticChildren
+ }
+ }
+ }
+ if (perfectMatch.size() > 0) {
+ descriptorsIterator.remove(); // precise match found no need to create anything for the NodeDescriptor
+ // use only one view (first or last?), keep rest as orphaned for further consideration
+ knownViewChildren.remove(perfectMatch.getFirst());
+ }
+ }
+ // those left in knownViewChildren are subject to removal - they are our diagram elements we didn't find match to,
+ // or those we have potential matches to, and thus need to be recreated, preserving size/location information.
+ orphaned.addAll(knownViewChildren);
+ //
+ ArrayList<CreateViewRequest.ViewDescriptor> viewDescriptors = new ArrayList<CreateViewRequest.ViewDescriptor>(
+ childDescriptors.size());
+ for (ComrelNodeDescriptor next : childDescriptors) {
+ String hint = ComrelVisualIDRegistry.getType(next.getVisualID());
+ IAdaptable elementAdapter = new CanonicalElementAdapter(
+ next.getModelElement(), hint);
+ CreateViewRequest.ViewDescriptor descriptor = new CreateViewRequest.ViewDescriptor(
+ elementAdapter, Node.class, hint, ViewUtil.APPEND, false,
+ host().getDiagramPreferencesHint());
+ viewDescriptors.add(descriptor);
+ }
+
+ boolean changed = deleteViews(orphaned.iterator());
+ //
+ CreateViewRequest request = getCreateViewRequest(viewDescriptors);
+ Command cmd = getCreateViewCommand(request);
+ if (cmd != null && cmd.canExecute()) {
+ SetViewMutabilityCommand.makeMutable(
+ new EObjectAdapter(host().getNotationView())).execute();
+ executeCommand(cmd);
+ @SuppressWarnings("unchecked")
+ List<IAdaptable> nl = (List<IAdaptable>) request.getNewObject();
+ createdViews.addAll(nl);
+ }
+ if (changed || createdViews.size() > 0) {
+ postProcessRefreshSemantic(createdViews);
+ }
+ if (createdViews.size() > 1) {
+ // perform a layout of the container
+ DeferredLayoutCommand layoutCmd = new DeferredLayoutCommand(host()
+ .getEditingDomain(), createdViews, host());
+ executeCommand(new ICommandProxy(layoutCmd));
+ }
+
+ makeViewsImmutable(createdViews);
+ }
+}
diff --git a/org.eclipse.emf.refactor.comrel.diagram/src/comrel/diagram/edit/policies/CartesianQueuedUnit6ItemSemanticEditPolicy.java b/org.eclipse.emf.refactor.comrel.diagram/src/comrel/diagram/edit/policies/CartesianQueuedUnit6ItemSemanticEditPolicy.java
new file mode 100644
index 0000000..d86d4af
--- /dev/null
+++ b/org.eclipse.emf.refactor.comrel.diagram/src/comrel/diagram/edit/policies/CartesianQueuedUnit6ItemSemanticEditPolicy.java
@@ -0,0 +1,263 @@
+/*
+ *
+ */
+package comrel.diagram.edit.policies;
+
+import java.util.Iterator;
+
+import org.eclipse.emf.ecore.EAnnotation;
+import org.eclipse.gef.commands.Command;
+import org.eclipse.gmf.runtime.common.core.command.ICompositeCommand;
+import org.eclipse.gmf.runtime.diagram.core.commands.DeleteCommand;
+import org.eclipse.gmf.runtime.emf.commands.core.command.CompositeTransactionalCommand;
+import org.eclipse.gmf.runtime.emf.type.core.commands.DestroyElementCommand;
+import org.eclipse.gmf.runtime.emf.type.core.requests.CreateElementRequest;
+import org.eclipse.gmf.runtime.emf.type.core.requests.DestroyElementRequest;
+import org.eclipse.gmf.runtime.notation.Edge;
+import org.eclipse.gmf.runtime.notation.Node;
+import org.eclipse.gmf.runtime.notation.View;
+
+import comrel.diagram.edit.commands.MultiInputPortCreateCommand;
+import comrel.diagram.edit.commands.SingleInputPort2CreateCommand;
+import comrel.diagram.edit.parts.AtomicUnit2EditPart;
+import comrel.diagram.edit.parts.CartesianQueuedUnit2EditPart;
+import comrel.diagram.edit.parts.CartesianQueuedUnitCartesianQueuedUnitHelperUnitsCompartment6EditPart;
+import comrel.diagram.edit.parts.CartesianQueuedUnitCartesianQueuedUnitRefactoringUnitCompartment6EditPart;
+import comrel.diagram.edit.parts.ConditionalUnit2EditPart;
+import comrel.diagram.edit.parts.MultiFeatureUnitEditPart;
+import comrel.diagram.edit.parts.MultiFilterUnitEditPart;
+import comrel.diagram.edit.parts.MultiInputPortEditPart;
+import comrel.diagram.edit.parts.MultiPortMappingEditPart;
+import comrel.diagram.edit.parts.MultiSinglePortMappingEditPart;
+import comrel.diagram.edit.parts.ParallelQueuedUnit2EditPart;
+import comrel.diagram.edit.parts.SequentialUnit2EditPart;
+import comrel.diagram.edit.parts.SingleFeatureUnitEditPart;
+import comrel.diagram.edit.parts.SingleFilterUnitEditPart;
+import comrel.diagram.edit.parts.SingleInputPort2EditPart;
+import comrel.diagram.edit.parts.SinglePortMappingEditPart;
+import comrel.diagram.edit.parts.SingleQueuedUnit2EditPart;
+import comrel.diagram.part.ComrelVisualIDRegistry;
+import comrel.diagram.providers.ComrelElementTypes;
+
+/**
+ * @generated
+ */
+public class CartesianQueuedUnit6ItemSemanticEditPolicy extends
+ ComrelBaseItemSemanticEditPolicy {
+
+ /**
+ * @generated
+ */
+ public CartesianQueuedUnit6ItemSemanticEditPolicy() {
+ super(ComrelElementTypes.CartesianQueuedUnit_3033);
+ }
+
+ /**
+ * @generated
+ */
+ protected Command getCreateCommand(CreateElementRequest req) {
+ if (ComrelElementTypes.SingleInputPort_3001 == req.getElementType()) {
+ return getGEFWrapper(new SingleInputPort2CreateCommand(req));
+ }
+ if (ComrelElementTypes.MultiInputPort_3002 == req.getElementType()) {
+ return getGEFWrapper(new MultiInputPortCreateCommand(req));
+ }
+ return super.getCreateCommand(req);
+ }
+
+ /**
+ * @generated
+ */
+ protected Command getDestroyElementCommand(DestroyElementRequest req) {
+ View view = (View) getHost().getModel();
+ CompositeTransactionalCommand cmd = new CompositeTransactionalCommand(
+ getEditingDomain(), null);
+ cmd.setTransactionNestingEnabled(false);
+ EAnnotation annotation = view.getEAnnotation("Shortcut"); //$NON-NLS-1$
+ if (annotation == null) {
+ // there are indirectly referenced children, need extra commands: false
+ addDestroyChildNodesCommand(cmd);
+ addDestroyShortcutsCommand(cmd, view);
+ // delete host element
+ cmd.add(new DestroyElementCommand(req));
+ } else {
+ cmd.add(new DeleteCommand(getEditingDomain(), view));
+ }
+ return getGEFWrapper(cmd.reduce());
+ }
+
+ /**
+ * @generated
+ */
+ private void addDestroyChildNodesCommand(ICompositeCommand cmd) {
+ View view = (View) getHost().getModel();
+ for (Iterator<?> nit = view.getChildren().iterator(); nit.hasNext();) {
+ Node node = (Node) nit.next();
+ switch (ComrelVisualIDRegistry.getVisualID(node)) {
+ case SingleInputPort2EditPart.VISUAL_ID:
+ for (Iterator<?> it = node.getTargetEdges().iterator(); it
+ .hasNext();) {
+ Edge incomingLink = (Edge) it.next();
+ if (ComrelVisualIDRegistry.getVisualID(incomingLink) == SinglePortMappingEditPart.VISUAL_ID) {
+ DestroyElementRequest r = new DestroyElementRequest(
+ incomingLink.getElement(), false);
+ cmd.add(new DestroyElementCommand(r));
+ cmd.add(new DeleteCommand(getEditingDomain(),
+ incomingLink));
+ continue;
+ }
+ if (ComrelVisualIDRegistry.getVisualID(incomingLink) == MultiSinglePortMappingEditPart.VISUAL_ID) {
+ DestroyElementRequest r = new DestroyElementRequest(
+ incomingLink.getElement(), false);
+ cmd.add(new DestroyElementCommand(r));
+ cmd.add(new DeleteCommand(getEditingDomain(),
+ incomingLink));
+ continue;
+ }
+ }
+ for (Iterator<?> it = node.getSourceEdges().iterator(); it
+ .hasNext();) {
+ Edge outgoingLink = (Edge) it.next();
+ if (ComrelVisualIDRegistry.getVisualID(outgoingLink) == SinglePortMappingEditPart.VISUAL_ID) {
+ DestroyElementRequest r = new DestroyElementRequest(
+ outgoingLink.getElement(), false);
+ cmd.add(new DestroyElementCommand(r));
+ cmd.add(new DeleteCommand(getEditingDomain(),
+ outgoingLink));
+ continue;
+ }
+ }
+ cmd.add(new DestroyElementCommand(new DestroyElementRequest(
+ getEditingDomain(), node.getElement(), false))); // directlyOwned: true
+ // don't need explicit deletion of node as parent's view deletion would clean child views as well
+ // cmd.add(new org.eclipse.gmf.runtime.diagram.core.commands.DeleteCommand(getEditingDomain(), node));
+ break;
+ case MultiInputPortEditPart.VISUAL_ID:
+ for (Iterator<?> it = node.getTargetEdges().iterator(); it
+ .hasNext();) {
+ Edge incomingLink = (Edge) it.next();
+ if (ComrelVisualIDRegistry.getVisualID(incomingLink) == MultiPortMappingEditPart.VISUAL_ID) {
+ DestroyElementRequest r = new DestroyElementRequest(
+ incomingLink.getElement(), false);
+ cmd.add(new DestroyElementCommand(r));
+ cmd.add(new DeleteCommand(getEditingDomain(),
+ incomingLink));
+ continue;
+ }
+ }
+ for (Iterator<?> it = node.getSourceEdges().iterator(); it
+ .hasNext();) {
+ Edge outgoingLink = (Edge) it.next();
+ if (ComrelVisualIDRegistry.getVisualID(outgoingLink) == MultiPortMappingEditPart.VISUAL_ID) {
+ DestroyElementRequest r = new DestroyElementRequest(
+ outgoingLink.getElement(), false);
+ cmd.add(new DestroyElementCommand(r));
+ cmd.add(new DeleteCommand(getEditingDomain(),
+ outgoingLink));
+ continue;
+ }
+ if (ComrelVisualIDRegistry.getVisualID(outgoingLink) == MultiSinglePortMappingEditPart.VISUAL_ID) {
+ DestroyElementRequest r = new DestroyElementRequest(
+ outgoingLink.getElement(), false);
+ cmd.add(new DestroyElementCommand(r));
+ cmd.add(new DeleteCommand(getEditingDomain(),
+ outgoingLink));
+ continue;
+ }
+ }
+ cmd.add(new DestroyElementCommand(new DestroyElementRequest(
+ getEditingDomain(), node.getElement(), false))); // directlyOwned: true
+ // don't need explicit deletion of node as parent's view deletion would clean child views as well
+ // cmd.add(new org.eclipse.gmf.runtime.diagram.core.commands.DeleteCommand(getEditingDomain(), node));
+ break;
+ case CartesianQueuedUnitCartesianQueuedUnitHelperUnitsCompartment6EditPart.VISUAL_ID:
+ for (Iterator<?> cit = node.getChildren().iterator(); cit
+ .hasNext();) {
+ Node cnode = (Node) cit.next();
+ switch (ComrelVisualIDRegistry.getVisualID(cnode)) {
+ case SingleFeatureUnitEditPart.VISUAL_ID:
+ cmd.add(new DestroyElementCommand(
+ new DestroyElementRequest(getEditingDomain(),
+ cnode.getElement(), false))); // directlyOwned: true
+ // don't need explicit deletion of cnode as parent's view deletion would clean child views as well
+ // cmd.add(new org.eclipse.gmf.runtime.diagram.core.commands.DeleteCommand(getEditingDomain(), cnode));
+ break;
+ case MultiFeatureUnitEditPart.VISUAL_ID:
+ cmd.add(new DestroyElementCommand(
+ new DestroyElementRequest(getEditingDomain(),
+ cnode.getElement(), false))); // directlyOwned: true
+ // don't need explicit deletion of cnode as parent's view deletion would clean child views as well
+ // cmd.add(new org.eclipse.gmf.runtime.diagram.core.commands.DeleteCommand(getEditingDomain(), cnode));
+ break;
+ case SingleFilterUnitEditPart.VISUAL_ID:
+ cmd.add(new DestroyElementCommand(
+ new DestroyElementRequest(getEditingDomain(),
+ cnode.getElement(), false))); // directlyOwned: true
+ // don't need explicit deletion of cnode as parent's view deletion would clean child views as well
+ // cmd.add(new org.eclipse.gmf.runtime.diagram.core.commands.DeleteCommand(getEditingDomain(), cnode));
+ break;
+ case MultiFilterUnitEditPart.VISUAL_ID:
+ cmd.add(new DestroyElementCommand(
+ new DestroyElementRequest(getEditingDomain(),
+ cnode.getElement(), false))); // directlyOwned: true
+ // don't need explicit deletion of cnode as parent's view deletion would clean child views as well
+ // cmd.add(new org.eclipse.gmf.runtime.diagram.core.commands.DeleteCommand(getEditingDomain(), cnode));
+ break;
+ }
+ }
+ break;
+ case CartesianQueuedUnitCartesianQueuedUnitRefactoringUnitCompartment6EditPart.VISUAL_ID:
+ for (Iterator<?> cit = node.getChildren().iterator(); cit
+ .hasNext();) {
+ Node cnode = (Node) cit.next();
+ switch (ComrelVisualIDRegistry.getVisualID(cnode)) {
+ case CartesianQueuedUnit2EditPart.VISUAL_ID:
+ cmd.add(new DestroyElementCommand(
+ new DestroyElementRequest(getEditingDomain(),
+ cnode.getElement(), false))); // directlyOwned: true
+ // don't need explicit deletion of cnode as parent's view deletion would clean child views as well
+ // cmd.add(new org.eclipse.gmf.runtime.diagram.core.commands.DeleteCommand(getEditingDomain(), cnode));
+ break;
+ case ParallelQueuedUnit2EditPart.VISUAL_ID:
+ cmd.add(new DestroyElementCommand(
+ new DestroyElementRequest(getEditingDomain(),
+ cnode.getElement(), false))); // directlyOwned: true
+ // don't need explicit deletion of cnode as parent's view deletion would clean child views as well
+ // cmd.add(new org.eclipse.gmf.runtime.diagram.core.commands.DeleteCommand(getEditingDomain(), cnode));
+ break;
+ case SingleQueuedUnit2EditPart.VISUAL_ID:
+ cmd.add(new DestroyElementCommand(
+ new DestroyElementRequest(getEditingDomain(),
+ cnode.getElement(), false))); // directlyOwned: true
+ // don't need explicit deletion of cnode as parent's view deletion would clean child views as well
+ // cmd.add(new org.eclipse.gmf.runtime.diagram.core.commands.DeleteCommand(getEditingDomain(), cnode));
+ break;
+ case SequentialUnit2EditPart.VISUAL_ID:
+ cmd.add(new DestroyElementCommand(
+ new DestroyElementRequest(getEditingDomain(),
+ cnode.getElement(), false))); // directlyOwned: true
+ // don't need explicit deletion of cnode as parent's view deletion would clean child views as well
+ // cmd.add(new org.eclipse.gmf.runtime.diagram.core.commands.DeleteCommand(getEditingDomain(), cnode));
+ break;
+ case ConditionalUnit2EditPart.VISUAL_ID:
+ cmd.add(new DestroyElementCommand(
+ new DestroyElementRequest(getEditingDomain(),
+ cnode.getElement(), false))); // directlyOwned: true
+ // don't need explicit deletion of cnode as parent's view deletion would clean child views as well
+ // cmd.add(new org.eclipse.gmf.runtime.diagram.core.commands.DeleteCommand(getEditingDomain(), cnode));
+ break;
+ case AtomicUnit2EditPart.VISUAL_ID:
+ cmd.add(new DestroyElementCommand(
+ new DestroyElementRequest(getEditingDomain(),
+ cnode.getElement(), false))); // directlyOwned: true
+ // don't need explicit deletion of cnode as parent's view deletion would clean child views as well
+ // cmd.add(new org.eclipse.gmf.runtime.diagram.core.commands.DeleteCommand(getEditingDomain(), cnode));
+ break;
+ }
+ }
+ break;
+ }
+ }
+ }
+
+}
diff --git a/org.eclipse.emf.refactor.comrel.diagram/src/comrel/diagram/edit/policies/CartesianQueuedUnit7CanonicalEditPolicy.java b/org.eclipse.emf.refactor.comrel.diagram/src/comrel/diagram/edit/policies/CartesianQueuedUnit7CanonicalEditPolicy.java
new file mode 100644
index 0000000..e09d849
--- /dev/null
+++ b/org.eclipse.emf.refactor.comrel.diagram/src/comrel/diagram/edit/policies/CartesianQueuedUnit7CanonicalEditPolicy.java
@@ -0,0 +1,179 @@
+/*
+ *
+ */
+package comrel.diagram.edit.policies;
+
+import java.util.ArrayList;
+import java.util.Collection;
+import java.util.HashSet;
+import java.util.Iterator;
+import java.util.LinkedList;
+import java.util.List;
+import java.util.Set;
+
+import org.eclipse.core.runtime.IAdaptable;
+import org.eclipse.emf.ecore.EObject;
+import org.eclipse.emf.ecore.EStructuralFeature;
+import org.eclipse.gef.commands.Command;
+import org.eclipse.gmf.runtime.diagram.core.util.ViewUtil;
+import org.eclipse.gmf.runtime.diagram.ui.commands.DeferredLayoutCommand;
+import org.eclipse.gmf.runtime.diagram.ui.commands.ICommandProxy;
+import org.eclipse.gmf.runtime.diagram.ui.commands.SetViewMutabilityCommand;
+import org.eclipse.gmf.runtime.diagram.ui.editpolicies.CanonicalEditPolicy;
+import org.eclipse.gmf.runtime.diagram.ui.requests.CreateViewRequest;
+import org.eclipse.gmf.runtime.emf.core.util.EObjectAdapter;
+import org.eclipse.gmf.runtime.notation.Node;
+import org.eclipse.gmf.runtime.notation.View;
+
+import comrel.ComrelPackage;
+import comrel.diagram.edit.parts.MultiInputPortEditPart;
+import comrel.diagram.edit.parts.SingleInputPort2EditPart;
+import comrel.diagram.part.ComrelDiagramUpdater;
+import comrel.diagram.part.ComrelNodeDescriptor;
+import comrel.diagram.part.ComrelVisualIDRegistry;
+
+/**
+ * @generated
+ */
+public class CartesianQueuedUnit7CanonicalEditPolicy extends
+ CanonicalEditPolicy {
+
+ /**
+ * @generated
+ */
+ private Set<EStructuralFeature> myFeaturesToSynchronize;
+
+ /**
+ * @generated
+ */
+ protected Set getFeaturesToSynchronize() {
+ if (myFeaturesToSynchronize == null) {
+ myFeaturesToSynchronize = new HashSet<EStructuralFeature>();
+ myFeaturesToSynchronize.add(ComrelPackage.eINSTANCE
+ .getCartesianQueuedUnit_SingleInputPorts());
+ myFeaturesToSynchronize.add(ComrelPackage.eINSTANCE
+ .getCartesianQueuedUnit_MultiInputPorts());
+ }
+ return myFeaturesToSynchronize;
+ }
+
+ /**
+ * @generated
+ */
+ @SuppressWarnings("rawtypes")
+ protected List getSemanticChildrenList() {
+ View viewObject = (View) getHost().getModel();
+ LinkedList<EObject> result = new LinkedList<EObject>();
+ List<ComrelNodeDescriptor> childDescriptors = ComrelDiagramUpdater
+ .getCartesianQueuedUnit_3047SemanticChildren(viewObject);
+ for (ComrelNodeDescriptor d : childDescriptors) {
+ result.add(d.getModelElement());
+ }
+ return result;
+ }
+
+ /**
+ * @generated
+ */
+ protected boolean isOrphaned(Collection<EObject> semanticChildren,
+ final View view) {
+ return isMyDiagramElement(view)
+ && !semanticChildren.contains(view.getElement());
+ }
+
+ /**
+ * @generated
+ */
+ private boolean isMyDiagramElement(View view) {
+ int visualID = ComrelVisualIDRegistry.getVisualID(view);
+ return visualID == SingleInputPort2EditPart.VISUAL_ID
+ || visualID == MultiInputPortEditPart.VISUAL_ID;
+ }
+
+ /**
+ * @generated
+ */
+ protected void refreshSemantic() {
+ if (resolveSemanticElement() == null) {
+ return;
+ }
+ LinkedList<IAdaptable> createdViews = new LinkedList<IAdaptable>();
+ List<ComrelNodeDescriptor> childDescriptors = ComrelDiagramUpdater
+ .getCartesianQueuedUnit_3047SemanticChildren((View) getHost()
+ .getModel());
+ LinkedList<View> orphaned = new LinkedList<View>();
+ // we care to check only views we recognize as ours
+ LinkedList<View> knownViewChildren = new LinkedList<View>();
+ for (View v : getViewChildren()) {
+ if (isMyDiagramElement(v)) {
+ knownViewChildren.add(v);
+ }
+ }
+ // alternative to #cleanCanonicalSemanticChildren(getViewChildren(), semanticChildren)
+ //
+ // iteration happens over list of desired semantic elements, trying to find best matching View, while original CEP
+ // iterates views, potentially losing view (size/bounds) information - i.e. if there are few views to reference same EObject, only last one
+ // to answer isOrphaned == true will be used for the domain element representation, see #cleanCanonicalSemanticChildren()
+ for (Iterator<ComrelNodeDescriptor> descriptorsIterator = childDescriptors
+ .iterator(); descriptorsIterator.hasNext();) {
+ ComrelNodeDescriptor next = descriptorsIterator.next();
+ String hint = ComrelVisualIDRegistry.getType(next.getVisualID());
+ LinkedList<View> perfectMatch = new LinkedList<View>(); // both semanticElement and hint match that of NodeDescriptor
+ for (View childView : getViewChildren()) {
+ EObject semanticElement = childView.getElement();
+ if (next.getModelElement().equals(semanticElement)) {
+ if (hint.equals(childView.getType())) {
+ perfectMatch.add(childView);
+ // actually, can stop iteration over view children here, but
+ // may want to use not the first view but last one as a 'real' match (the way original CEP does
+ // with its trick with viewToSemanticMap inside #cleanCanonicalSemanticChildren
+ }
+ }
+ }
+ if (perfectMatch.size() > 0) {
+ descriptorsIterator.remove(); // precise match found no need to create anything for the NodeDescriptor
+ // use only one view (first or last?), keep rest as orphaned for further consideration
+ knownViewChildren.remove(perfectMatch.getFirst());
+ }
+ }
+ // those left in knownViewChildren are subject to removal - they are our diagram elements we didn't find match to,
+ // or those we have potential matches to, and thus need to be recreated, preserving size/location information.
+ orphaned.addAll(knownViewChildren);
+ //
+ ArrayList<CreateViewRequest.ViewDescriptor> viewDescriptors = new ArrayList<CreateViewRequest.ViewDescriptor>(
+ childDescriptors.size());
+ for (ComrelNodeDescriptor next : childDescriptors) {
+ String hint = ComrelVisualIDRegistry.getType(next.getVisualID());
+ IAdaptable elementAdapter = new CanonicalElementAdapter(
+ next.getModelElement(), hint);
+ CreateViewRequest.ViewDescriptor descriptor = new CreateViewRequest.ViewDescriptor(
+ elementAdapter, Node.class, hint, ViewUtil.APPEND, false,
+ host().getDiagramPreferencesHint());
+ viewDescriptors.add(descriptor);
+ }
+
+ boolean changed = deleteViews(orphaned.iterator());
+ //
+ CreateViewRequest request = getCreateViewRequest(viewDescriptors);
+ Command cmd = getCreateViewCommand(request);
+ if (cmd != null && cmd.canExecute()) {
+ SetViewMutabilityCommand.makeMutable(
+ new EObjectAdapter(host().getNotationView())).execute();
+ executeCommand(cmd);
+ @SuppressWarnings("unchecked")
+ List<IAdaptable> nl = (List<IAdaptable>) request.getNewObject();
+ createdViews.addAll(nl);
+ }
+ if (changed || createdViews.size() > 0) {
+ postProcessRefreshSemantic(createdViews);
+ }
+ if (createdViews.size() > 1) {
+ // perform a layout of the container
+ DeferredLayoutCommand layoutCmd = new DeferredLayoutCommand(host()
+ .getEditingDomain(), createdViews, host());
+ executeCommand(new ICommandProxy(layoutCmd));
+ }
+
+ makeViewsImmutable(createdViews);
+ }
+}
diff --git a/org.eclipse.emf.refactor.comrel.diagram/src/comrel/diagram/edit/policies/CartesianQueuedUnit7ItemSemanticEditPolicy.java b/org.eclipse.emf.refactor.comrel.diagram/src/comrel/diagram/edit/policies/CartesianQueuedUnit7ItemSemanticEditPolicy.java
new file mode 100644
index 0000000..2d5b6e3
--- /dev/null
+++ b/org.eclipse.emf.refactor.comrel.diagram/src/comrel/diagram/edit/policies/CartesianQueuedUnit7ItemSemanticEditPolicy.java
@@ -0,0 +1,263 @@
+/*
+ *
+ */
+package comrel.diagram.edit.policies;
+
+import java.util.Iterator;
+
+import org.eclipse.emf.ecore.EAnnotation;
+import org.eclipse.gef.commands.Command;
+import org.eclipse.gmf.runtime.common.core.command.ICompositeCommand;
+import org.eclipse.gmf.runtime.diagram.core.commands.DeleteCommand;
+import org.eclipse.gmf.runtime.emf.commands.core.command.CompositeTransactionalCommand;
+import org.eclipse.gmf.runtime.emf.type.core.commands.DestroyElementCommand;
+import org.eclipse.gmf.runtime.emf.type.core.requests.CreateElementRequest;
+import org.eclipse.gmf.runtime.emf.type.core.requests.DestroyElementRequest;
+import org.eclipse.gmf.runtime.notation.Edge;
+import org.eclipse.gmf.runtime.notation.Node;
+import org.eclipse.gmf.runtime.notation.View;
+
+import comrel.diagram.edit.commands.MultiInputPortCreateCommand;
+import comrel.diagram.edit.commands.SingleInputPort2CreateCommand;
+import comrel.diagram.edit.parts.AtomicUnit2EditPart;
+import comrel.diagram.edit.parts.CartesianQueuedUnit2EditPart;
+import comrel.diagram.edit.parts.CartesianQueuedUnitCartesianQueuedUnitHelperUnitsCompartment7EditPart;
+import comrel.diagram.edit.parts.CartesianQueuedUnitCartesianQueuedUnitRefactoringUnitCompartment7EditPart;
+import comrel.diagram.edit.parts.ConditionalUnit2EditPart;
+import comrel.diagram.edit.parts.MultiFeatureUnitEditPart;
+import comrel.diagram.edit.parts.MultiFilterUnitEditPart;
+import comrel.diagram.edit.parts.MultiInputPortEditPart;
+import comrel.diagram.edit.parts.MultiPortMappingEditPart;
+import comrel.diagram.edit.parts.MultiSinglePortMappingEditPart;
+import comrel.diagram.edit.parts.ParallelQueuedUnit2EditPart;
+import comrel.diagram.edit.parts.SequentialUnit2EditPart;
+import comrel.diagram.edit.parts.SingleFeatureUnitEditPart;
+import comrel.diagram.edit.parts.SingleFilterUnitEditPart;
+import comrel.diagram.edit.parts.SingleInputPort2EditPart;
+import comrel.diagram.edit.parts.SinglePortMappingEditPart;
+import comrel.diagram.edit.parts.SingleQueuedUnit2EditPart;
+import comrel.diagram.part.ComrelVisualIDRegistry;
+import comrel.diagram.providers.ComrelElementTypes;
+
+/**
+ * @generated
+ */
+public class CartesianQueuedUnit7ItemSemanticEditPolicy extends
+ ComrelBaseItemSemanticEditPolicy {
+
+ /**
+ * @generated
+ */
+ public CartesianQueuedUnit7ItemSemanticEditPolicy() {
+ super(ComrelElementTypes.CartesianQueuedUnit_3047);
+ }
+
+ /**
+ * @generated
+ */
+ protected Command getCreateCommand(CreateElementRequest req) {
+ if (ComrelElementTypes.SingleInputPort_3001 == req.getElementType()) {
+ return getGEFWrapper(new SingleInputPort2CreateCommand(req));
+ }
+ if (ComrelElementTypes.MultiInputPort_3002 == req.getElementType()) {
+ return getGEFWrapper(new MultiInputPortCreateCommand(req));
+ }
+ return super.getCreateCommand(req);
+ }
+
+ /**
+ * @generated
+ */
+ protected Command getDestroyElementCommand(DestroyElementRequest req) {
+ View view = (View) getHost().getModel();
+ CompositeTransactionalCommand cmd = new CompositeTransactionalCommand(
+ getEditingDomain(), null);
+ cmd.setTransactionNestingEnabled(false);
+ EAnnotation annotation = view.getEAnnotation("Shortcut"); //$NON-NLS-1$
+ if (annotation == null) {
+ // there are indirectly referenced children, need extra commands: false
+ addDestroyChildNodesCommand(cmd);
+ addDestroyShortcutsCommand(cmd, view);
+ // delete host element
+ cmd.add(new DestroyElementCommand(req));
+ } else {
+ cmd.add(new DeleteCommand(getEditingDomain(), view));
+ }
+ return getGEFWrapper(cmd.reduce());
+ }
+
+ /**
+ * @generated
+ */
+ private void addDestroyChildNodesCommand(ICompositeCommand cmd) {
+ View view = (View) getHost().getModel();
+ for (Iterator<?> nit = view.getChildren().iterator(); nit.hasNext();) {
+ Node node = (Node) nit.next();
+ switch (ComrelVisualIDRegistry.getVisualID(node)) {
+ case SingleInputPort2EditPart.VISUAL_ID:
+ for (Iterator<?> it = node.getTargetEdges().iterator(); it
+ .hasNext();) {
+ Edge incomingLink = (Edge) it.next();
+ if (ComrelVisualIDRegistry.getVisualID(incomingLink) == SinglePortMappingEditPart.VISUAL_ID) {
+ DestroyElementRequest r = new DestroyElementRequest(
+ incomingLink.getElement(), false);
+ cmd.add(new DestroyElementCommand(r));
+ cmd.add(new DeleteCommand(getEditingDomain(),
+ incomingLink));
+ continue;
+ }
+ if (ComrelVisualIDRegistry.getVisualID(incomingLink) == MultiSinglePortMappingEditPart.VISUAL_ID) {
+ DestroyElementRequest r = new DestroyElementRequest(
+ incomingLink.getElement(), false);
+ cmd.add(new DestroyElementCommand(r));
+ cmd.add(new DeleteCommand(getEditingDomain(),
+ incomingLink));
+ continue;
+ }
+ }
+ for (Iterator<?> it = node.getSourceEdges().iterator(); it
+ .hasNext();) {
+ Edge outgoingLink = (Edge) it.next();
+ if (ComrelVisualIDRegistry.getVisualID(outgoingLink) == SinglePortMappingEditPart.VISUAL_ID) {
+ DestroyElementRequest r = new DestroyElementRequest(
+ outgoingLink.getElement(), false);
+ cmd.add(new DestroyElementCommand(r));
+ cmd.add(new DeleteCommand(getEditingDomain(),
+ outgoingLink));
+ continue;
+ }
+ }
+ cmd.add(new DestroyElementCommand(new DestroyElementRequest(
+ getEditingDomain(), node.getElement(), false))); // directlyOwned: true
+ // don't need explicit deletion of node as parent's view deletion would clean child views as well
+ // cmd.add(new org.eclipse.gmf.runtime.diagram.core.commands.DeleteCommand(getEditingDomain(), node));
+ break;
+ case MultiInputPortEditPart.VISUAL_ID:
+ for (Iterator<?> it = node.getTargetEdges().iterator(); it
+ .hasNext();) {
+ Edge incomingLink = (Edge) it.next();
+ if (ComrelVisualIDRegistry.getVisualID(incomingLink) == MultiPortMappingEditPart.VISUAL_ID) {
+ DestroyElementRequest r = new DestroyElementRequest(
+ incomingLink.getElement(), false);
+ cmd.add(new DestroyElementCommand(r));
+ cmd.add(new DeleteCommand(getEditingDomain(),
+ incomingLink));
+ continue;
+ }
+ }
+ for (Iterator<?> it = node.getSourceEdges().iterator(); it
+ .hasNext();) {
+ Edge outgoingLink = (Edge) it.next();
+ if (ComrelVisualIDRegistry.getVisualID(outgoingLink) == MultiPortMappingEditPart.VISUAL_ID) {
+ DestroyElementRequest r = new DestroyElementRequest(
+ outgoingLink.getElement(), false);
+ cmd.add(new DestroyElementCommand(r));
+ cmd.add(new DeleteCommand(getEditingDomain(),
+ outgoingLink));
+ continue;
+ }
+ if (ComrelVisualIDRegistry.getVisualID(outgoingLink) == MultiSinglePortMappingEditPart.VISUAL_ID) {
+ DestroyElementRequest r = new DestroyElementRequest(
+ outgoingLink.getElement(), false);
+ cmd.add(new DestroyElementCommand(r));
+ cmd.add(new DeleteCommand(getEditingDomain(),
+ outgoingLink));
+ continue;
+ }
+ }
+ cmd.add(new DestroyElementCommand(new DestroyElementRequest(
+ getEditingDomain(), node.getElement(), false))); // directlyOwned: true
+ // don't need explicit deletion of node as parent's view deletion would clean child views as well
+ // cmd.add(new org.eclipse.gmf.runtime.diagram.core.commands.DeleteCommand(getEditingDomain(), node));
+ break;
+ case CartesianQueuedUnitCartesianQueuedUnitHelperUnitsCompartment7EditPart.VISUAL_ID:
+ for (Iterator<?> cit = node.getChildren().iterator(); cit
+ .hasNext();) {
+ Node cnode = (Node) cit.next();
+ switch (ComrelVisualIDRegistry.getVisualID(cnode)) {
+ case SingleFeatureUnitEditPart.VISUAL_ID:
+ cmd.add(new DestroyElementCommand(
+ new DestroyElementRequest(getEditingDomain(),
+ cnode.getElement(), false))); // directlyOwned: true
+ // don't need explicit deletion of cnode as parent's view deletion would clean child views as well
+ // cmd.add(new org.eclipse.gmf.runtime.diagram.core.commands.DeleteCommand(getEditingDomain(), cnode));
+ break;
+ case MultiFeatureUnitEditPart.VISUAL_ID:
+ cmd.add(new DestroyElementCommand(
+ new DestroyElementRequest(getEditingDomain(),
+ cnode.getElement(), false))); // directlyOwned: true
+ // don't need explicit deletion of cnode as parent's view deletion would clean child views as well
+ // cmd.add(new org.eclipse.gmf.runtime.diagram.core.commands.DeleteCommand(getEditingDomain(), cnode));
+ break;
+ case SingleFilterUnitEditPart.VISUAL_ID:
+ cmd.add(new DestroyElementCommand(
+ new DestroyElementRequest(getEditingDomain(),
+ cnode.getElement(), false))); // directlyOwned: true
+ // don't need explicit deletion of cnode as parent's view deletion would clean child views as well
+ // cmd.add(new org.eclipse.gmf.runtime.diagram.core.commands.DeleteCommand(getEditingDomain(), cnode));
+ break;
+ case MultiFilterUnitEditPart.VISUAL_ID:
+ cmd.add(new DestroyElementCommand(
+ new DestroyElementRequest(getEditingDomain(),
+ cnode.getElement(), false))); // directlyOwned: true
+ // don't need explicit deletion of cnode as parent's view deletion would clean child views as well
+ // cmd.add(new org.eclipse.gmf.runtime.diagram.core.commands.DeleteCommand(getEditingDomain(), cnode));
+ break;
+ }
+ }
+ break;
+ case CartesianQueuedUnitCartesianQueuedUnitRefactoringUnitCompartment7EditPart.VISUAL_ID:
+ for (Iterator<?> cit = node.getChildren().iterator(); cit
+ .hasNext();) {
+ Node cnode = (Node) cit.next();
+ switch (ComrelVisualIDRegistry.getVisualID(cnode)) {
+ case CartesianQueuedUnit2EditPart.VISUAL_ID:
+ cmd.add(new DestroyElementCommand(
+ new DestroyElementRequest(getEditingDomain(),
+ cnode.getElement(), false))); // directlyOwned: true
+ // don't need explicit deletion of cnode as parent's view deletion would clean child views as well
+ // cmd.add(new org.eclipse.gmf.runtime.diagram.core.commands.DeleteCommand(getEditingDomain(), cnode));
+ break;
+ case ParallelQueuedUnit2EditPart.VISUAL_ID:
+ cmd.add(new DestroyElementCommand(
+ new DestroyElementRequest(getEditingDomain(),
+ cnode.getElement(), false))); // directlyOwned: true
+ // don't need explicit deletion of cnode as parent's view deletion would clean child views as well
+ // cmd.add(new org.eclipse.gmf.runtime.diagram.core.commands.DeleteCommand(getEditingDomain(), cnode));
+ break;
+ case SingleQueuedUnit2EditPart.VISUAL_ID:
+ cmd.add(new DestroyElementCommand(
+ new DestroyElementRequest(getEditingDomain(),
+ cnode.getElement(), false))); // directlyOwned: true
+ // don't need explicit deletion of cnode as parent's view deletion would clean child views as well
+ // cmd.add(new org.eclipse.gmf.runtime.diagram.core.commands.DeleteCommand(getEditingDomain(), cnode));
+ break;
+ case SequentialUnit2EditPart.VISUAL_ID:
+ cmd.add(new DestroyElementCommand(
+ new DestroyElementRequest(getEditingDomain(),
+ cnode.getElement(), false))); // directlyOwned: true
+ // don't need explicit deletion of cnode as parent's view deletion would clean child views as well
+ // cmd.add(new org.eclipse.gmf.runtime.diagram.core.commands.DeleteCommand(getEditingDomain(), cnode));
+ break;
+ case ConditionalUnit2EditPart.VISUAL_ID:
+ cmd.add(new DestroyElementCommand(
+ new DestroyElementRequest(getEditingDomain(),
+ cnode.getElement(), false))); // directlyOwned: true
+ // don't need explicit deletion of cnode as parent's view deletion would clean child views as well
+ // cmd.add(new org.eclipse.gmf.runtime.diagram.core.commands.DeleteCommand(getEditingDomain(), cnode));
+ break;
+ case AtomicUnit2EditPart.VISUAL_ID:
+ cmd.add(new DestroyElementCommand(
+ new DestroyElementRequest(getEditingDomain(),
+ cnode.getElement(), false))); // directlyOwned: true
+ // don't need explicit deletion of cnode as parent's view deletion would clean child views as well
+ // cmd.add(new org.eclipse.gmf.runtime.diagram.core.commands.DeleteCommand(getEditingDomain(), cnode));
+ break;
+ }
+ }
+ break;
+ }
+ }
+ }
+
+}
diff --git a/org.eclipse.emf.refactor.comrel.diagram/src/comrel/diagram/edit/policies/CartesianQueuedUnitCanonicalEditPolicy.java b/org.eclipse.emf.refactor.comrel.diagram/src/comrel/diagram/edit/policies/CartesianQueuedUnitCanonicalEditPolicy.java
new file mode 100644
index 0000000..5a9d565
--- /dev/null
+++ b/org.eclipse.emf.refactor.comrel.diagram/src/comrel/diagram/edit/policies/CartesianQueuedUnitCanonicalEditPolicy.java
@@ -0,0 +1,178 @@
+/*
+ *
+ */
+package comrel.diagram.edit.policies;
+
+import java.util.ArrayList;
+import java.util.Collection;
+import java.util.HashSet;
+import java.util.Iterator;
+import java.util.LinkedList;
+import java.util.List;
+import java.util.Set;
+
+import org.eclipse.core.runtime.IAdaptable;
+import org.eclipse.emf.ecore.EObject;
+import org.eclipse.emf.ecore.EStructuralFeature;
+import org.eclipse.gef.commands.Command;
+import org.eclipse.gmf.runtime.diagram.core.util.ViewUtil;
+import org.eclipse.gmf.runtime.diagram.ui.commands.DeferredLayoutCommand;
+import org.eclipse.gmf.runtime.diagram.ui.commands.ICommandProxy;
+import org.eclipse.gmf.runtime.diagram.ui.commands.SetViewMutabilityCommand;
+import org.eclipse.gmf.runtime.diagram.ui.editpolicies.CanonicalEditPolicy;
+import org.eclipse.gmf.runtime.diagram.ui.requests.CreateViewRequest;
+import org.eclipse.gmf.runtime.emf.core.util.EObjectAdapter;
+import org.eclipse.gmf.runtime.notation.Node;
+import org.eclipse.gmf.runtime.notation.View;
+
+import comrel.ComrelPackage;
+import comrel.diagram.edit.parts.MultiInputPortEditPart;
+import comrel.diagram.edit.parts.SingleInputPort2EditPart;
+import comrel.diagram.part.ComrelDiagramUpdater;
+import comrel.diagram.part.ComrelNodeDescriptor;
+import comrel.diagram.part.ComrelVisualIDRegistry;
+
+/**
+ * @generated
+ */
+public class CartesianQueuedUnitCanonicalEditPolicy extends CanonicalEditPolicy {
+
+ /**
+ * @generated
+ */
+ private Set<EStructuralFeature> myFeaturesToSynchronize;
+
+ /**
+ * @generated
+ */
+ protected Set getFeaturesToSynchronize() {
+ if (myFeaturesToSynchronize == null) {
+ myFeaturesToSynchronize = new HashSet<EStructuralFeature>();
+ myFeaturesToSynchronize.add(ComrelPackage.eINSTANCE
+ .getCartesianQueuedUnit_SingleInputPorts());
+ myFeaturesToSynchronize.add(ComrelPackage.eINSTANCE
+ .getCartesianQueuedUnit_MultiInputPorts());
+ }
+ return myFeaturesToSynchronize;
+ }
+
+ /**
+ * @generated
+ */
+ @SuppressWarnings("rawtypes")
+ protected List getSemanticChildrenList() {
+ View viewObject = (View) getHost().getModel();
+ LinkedList<EObject> result = new LinkedList<EObject>();
+ List<ComrelNodeDescriptor> childDescriptors = ComrelDiagramUpdater
+ .getCartesianQueuedUnit_2002SemanticChildren(viewObject);
+ for (ComrelNodeDescriptor d : childDescriptors) {
+ result.add(d.getModelElement());
+ }
+ return result;
+ }
+
+ /**
+ * @generated
+ */
+ protected boolean isOrphaned(Collection<EObject> semanticChildren,
+ final View view) {
+ return isMyDiagramElement(view)
+ && !semanticChildren.contains(view.getElement());
+ }
+
+ /**
+ * @generated
+ */
+ private boolean isMyDiagramElement(View view) {
+ int visualID = ComrelVisualIDRegistry.getVisualID(view);
+ return visualID == SingleInputPort2EditPart.VISUAL_ID
+ || visualID == MultiInputPortEditPart.VISUAL_ID;
+ }
+
+ /**
+ * @generated
+ */
+ protected void refreshSemantic() {
+ if (resolveSemanticElement() == null) {
+ return;
+ }
+ LinkedList<IAdaptable> createdViews = new LinkedList<IAdaptable>();
+ List<ComrelNodeDescriptor> childDescriptors = ComrelDiagramUpdater
+ .getCartesianQueuedUnit_2002SemanticChildren((View) getHost()
+ .getModel());
+ LinkedList<View> orphaned = new LinkedList<View>();
+ // we care to check only views we recognize as ours
+ LinkedList<View> knownViewChildren = new LinkedList<View>();
+ for (View v : getViewChildren()) {
+ if (isMyDiagramElement(v)) {
+ knownViewChildren.add(v);
+ }
+ }
+ // alternative to #cleanCanonicalSemanticChildren(getViewChildren(), semanticChildren)
+ //
+ // iteration happens over list of desired semantic elements, trying to find best matching View, while original CEP
+ // iterates views, potentially losing view (size/bounds) information - i.e. if there are few views to reference same EObject, only last one
+ // to answer isOrphaned == true will be used for the domain element representation, see #cleanCanonicalSemanticChildren()
+ for (Iterator<ComrelNodeDescriptor> descriptorsIterator = childDescriptors
+ .iterator(); descriptorsIterator.hasNext();) {
+ ComrelNodeDescriptor next = descriptorsIterator.next();
+ String hint = ComrelVisualIDRegistry.getType(next.getVisualID());
+ LinkedList<View> perfectMatch = new LinkedList<View>(); // both semanticElement and hint match that of NodeDescriptor
+ for (View childView : getViewChildren()) {
+ EObject semanticElement = childView.getElement();
+ if (next.getModelElement().equals(semanticElement)) {
+ if (hint.equals(childView.getType())) {
+ perfectMatch.add(childView);
+ // actually, can stop iteration over view children here, but
+ // may want to use not the first view but last one as a 'real' match (the way original CEP does
+ // with its trick with viewToSemanticMap inside #cleanCanonicalSemanticChildren
+ }
+ }
+ }
+ if (perfectMatch.size() > 0) {
+ descriptorsIterator.remove(); // precise match found no need to create anything for the NodeDescriptor
+ // use only one view (first or last?), keep rest as orphaned for further consideration
+ knownViewChildren.remove(perfectMatch.getFirst());
+ }
+ }
+ // those left in knownViewChildren are subject to removal - they are our diagram elements we didn't find match to,
+ // or those we have potential matches to, and thus need to be recreated, preserving size/location information.
+ orphaned.addAll(knownViewChildren);
+ //
+ ArrayList<CreateViewRequest.ViewDescriptor> viewDescriptors = new ArrayList<CreateViewRequest.ViewDescriptor>(
+ childDescriptors.size());
+ for (ComrelNodeDescriptor next : childDescriptors) {
+ String hint = ComrelVisualIDRegistry.getType(next.getVisualID());
+ IAdaptable elementAdapter = new CanonicalElementAdapter(
+ next.getModelElement(), hint);
+ CreateViewRequest.ViewDescriptor descriptor = new CreateViewRequest.ViewDescriptor(
+ elementAdapter, Node.class, hint, ViewUtil.APPEND, false,
+ host().getDiagramPreferencesHint());
+ viewDescriptors.add(descriptor);
+ }
+
+ boolean changed = deleteViews(orphaned.iterator());
+ //
+ CreateViewRequest request = getCreateViewRequest(viewDescriptors);
+ Command cmd = getCreateViewCommand(request);
+ if (cmd != null && cmd.canExecute()) {
+ SetViewMutabilityCommand.makeMutable(
+ new EObjectAdapter(host().getNotationView())).execute();
+ executeCommand(cmd);
+ @SuppressWarnings("unchecked")
+ List<IAdaptable> nl = (List<IAdaptable>) request.getNewObject();
+ createdViews.addAll(nl);
+ }
+ if (changed || createdViews.size() > 0) {
+ postProcessRefreshSemantic(createdViews);
+ }
+ if (createdViews.size() > 1) {
+ // perform a layout of the container
+ DeferredLayoutCommand layoutCmd = new DeferredLayoutCommand(host()
+ .getEditingDomain(), createdViews, host());
+ executeCommand(new ICommandProxy(layoutCmd));
+ }
+
+ makeViewsImmutable(createdViews);
+ }
+}
diff --git a/org.eclipse.emf.refactor.comrel.diagram/src/comrel/diagram/edit/policies/CartesianQueuedUnitCartesianQueuedUnitHelperUnitsCompartment2CanonicalEditPolicy.java b/org.eclipse.emf.refactor.comrel.diagram/src/comrel/diagram/edit/policies/CartesianQueuedUnitCartesianQueuedUnitHelperUnitsCompartment2CanonicalEditPolicy.java
new file mode 100644
index 0000000..bfd28d1
--- /dev/null
+++ b/org.eclipse.emf.refactor.comrel.diagram/src/comrel/diagram/edit/policies/CartesianQueuedUnitCartesianQueuedUnitHelperUnitsCompartment2CanonicalEditPolicy.java
@@ -0,0 +1,173 @@
+/*
+ *
+ */
+package comrel.diagram.edit.policies;
+
+import java.util.ArrayList;
+import java.util.Collection;
+import java.util.Iterator;
+import java.util.LinkedList;
+import java.util.List;
+
+import org.eclipse.core.runtime.IAdaptable;
+import org.eclipse.emf.ecore.EObject;
+import org.eclipse.emf.ecore.EStructuralFeature;
+import org.eclipse.gef.commands.Command;
+import org.eclipse.gmf.runtime.diagram.core.util.ViewUtil;
+import org.eclipse.gmf.runtime.diagram.ui.commands.DeferredLayoutCommand;
+import org.eclipse.gmf.runtime.diagram.ui.commands.ICommandProxy;
+import org.eclipse.gmf.runtime.diagram.ui.commands.SetViewMutabilityCommand;
+import org.eclipse.gmf.runtime.diagram.ui.editpolicies.CanonicalEditPolicy;
+import org.eclipse.gmf.runtime.diagram.ui.requests.CreateViewRequest;
+import org.eclipse.gmf.runtime.emf.core.util.EObjectAdapter;
+import org.eclipse.gmf.runtime.notation.Node;
+import org.eclipse.gmf.runtime.notation.View;
+
+import comrel.ComrelPackage;
+import comrel.diagram.edit.parts.MultiFeatureUnitEditPart;
+import comrel.diagram.edit.parts.MultiFilterUnitEditPart;
+import comrel.diagram.edit.parts.SingleFeatureUnitEditPart;
+import comrel.diagram.edit.parts.SingleFilterUnitEditPart;
+import comrel.diagram.part.ComrelDiagramUpdater;
+import comrel.diagram.part.ComrelNodeDescriptor;
+import comrel.diagram.part.ComrelVisualIDRegistry;
+
+/**
+ * @generated
+ */
+public class CartesianQueuedUnitCartesianQueuedUnitHelperUnitsCompartment2CanonicalEditPolicy
+ extends CanonicalEditPolicy {
+
+ /**
+ * @generated
+ */
+ protected EStructuralFeature getFeatureToSynchronize() {
+ return ComrelPackage.eINSTANCE.getCartesianQueuedUnit_HelperUnits();
+ }
+
+ /**
+ * @generated
+ */
+ @SuppressWarnings("rawtypes")
+ protected List getSemanticChildrenList() {
+ View viewObject = (View) getHost().getModel();
+ LinkedList<EObject> result = new LinkedList<EObject>();
+ List<ComrelNodeDescriptor> childDescriptors = ComrelDiagramUpdater
+ .getCartesianQueuedUnitCartesianQueuedUnitHelperUnitsCompartment_7003SemanticChildren(viewObject);
+ for (ComrelNodeDescriptor d : childDescriptors) {
+ result.add(d.getModelElement());
+ }
+ return result;
+ }
+
+ /**
+ * @generated
+ */
+ protected boolean isOrphaned(Collection<EObject> semanticChildren,
+ final View view) {
+ return isMyDiagramElement(view)
+ && !semanticChildren.contains(view.getElement());
+ }
+
+ /**
+ * @generated
+ */
+ private boolean isMyDiagramElement(View view) {
+ int visualID = ComrelVisualIDRegistry.getVisualID(view);
+ switch (visualID) {
+ case SingleFeatureUnitEditPart.VISUAL_ID:
+ case MultiFeatureUnitEditPart.VISUAL_ID:
+ case SingleFilterUnitEditPart.VISUAL_ID:
+ case MultiFilterUnitEditPart.VISUAL_ID:
+ return true;
+ }
+ return false;
+ }
+
+ /**
+ * @generated
+ */
+ protected void refreshSemantic() {
+ if (resolveSemanticElement() == null) {
+ return;
+ }
+ LinkedList<IAdaptable> createdViews = new LinkedList<IAdaptable>();
+ List<ComrelNodeDescriptor> childDescriptors = ComrelDiagramUpdater
+ .getCartesianQueuedUnitCartesianQueuedUnitHelperUnitsCompartment_7003SemanticChildren((View) getHost()
+ .getModel());
+ LinkedList<View> orphaned = new LinkedList<View>();
+ // we care to check only views we recognize as ours
+ LinkedList<View> knownViewChildren = new LinkedList<View>();
+ for (View v : getViewChildren()) {
+ if (isMyDiagramElement(v)) {
+ knownViewChildren.add(v);
+ }
+ }
+ // alternative to #cleanCanonicalSemanticChildren(getViewChildren(), semanticChildren)
+ //
+ // iteration happens over list of desired semantic elements, trying to find best matching View, while original CEP
+ // iterates views, potentially losing view (size/bounds) information - i.e. if there are few views to reference same EObject, only last one
+ // to answer isOrphaned == true will be used for the domain element representation, see #cleanCanonicalSemanticChildren()
+ for (Iterator<ComrelNodeDescriptor> descriptorsIterator = childDescriptors
+ .iterator(); descriptorsIterator.hasNext();) {
+ ComrelNodeDescriptor next = descriptorsIterator.next();
+ String hint = ComrelVisualIDRegistry.getType(next.getVisualID());
+ LinkedList<View> perfectMatch = new LinkedList<View>(); // both semanticElement and hint match that of NodeDescriptor
+ for (View childView : getViewChildren()) {
+ EObject semanticElement = childView.getElement();
+ if (next.getModelElement().equals(semanticElement)) {
+ if (hint.equals(childView.getType())) {
+ perfectMatch.add(childView);
+ // actually, can stop iteration over view children here, but
+ // may want to use not the first view but last one as a 'real' match (the way original CEP does
+ // with its trick with viewToSemanticMap inside #cleanCanonicalSemanticChildren
+ }
+ }
+ }
+ if (perfectMatch.size() > 0) {
+ descriptorsIterator.remove(); // precise match found no need to create anything for the NodeDescriptor
+ // use only one view (first or last?), keep rest as orphaned for further consideration
+ knownViewChildren.remove(perfectMatch.getFirst());
+ }
+ }
+ // those left in knownViewChildren are subject to removal - they are our diagram elements we didn't find match to,
+ // or those we have potential matches to, and thus need to be recreated, preserving size/location information.
+ orphaned.addAll(knownViewChildren);
+ //
+ ArrayList<CreateViewRequest.ViewDescriptor> viewDescriptors = new ArrayList<CreateViewRequest.ViewDescriptor>(
+ childDescriptors.size());
+ for (ComrelNodeDescriptor next : childDescriptors) {
+ String hint = ComrelVisualIDRegistry.getType(next.getVisualID());
+ IAdaptable elementAdapter = new CanonicalElementAdapter(
+ next.getModelElement(), hint);
+ CreateViewRequest.ViewDescriptor descriptor = new CreateViewRequest.ViewDescriptor(
+ elementAdapter, Node.class, hint, ViewUtil.APPEND, false,
+ host().getDiagramPreferencesHint());
+ viewDescriptors.add(descriptor);
+ }
+
+ boolean changed = deleteViews(orphaned.iterator());
+ //
+ CreateViewRequest request = getCreateViewRequest(viewDescriptors);
+ Command cmd = getCreateViewCommand(request);
+ if (cmd != null && cmd.canExecute()) {
+ SetViewMutabilityCommand.makeMutable(
+ new EObjectAdapter(host().getNotationView())).execute();
+ executeCommand(cmd);
+ @SuppressWarnings("unchecked")
+ List<IAdaptable> nl = (List<IAdaptable>) request.getNewObject();
+ createdViews.addAll(nl);
+ }
+ if (changed || createdViews.size() > 0) {
+ postProcessRefreshSemantic(createdViews);
+ }
+ if (createdViews.size() > 1) {
+ // perform a layout of the container
+ DeferredLayoutCommand layoutCmd = new DeferredLayoutCommand(host()
+ .getEditingDomain(), createdViews, host());
+ executeCommand(new ICommandProxy(layoutCmd));
+ }
+
+ makeViewsImmutable(createdViews);
+ }
+}
diff --git a/org.eclipse.emf.refactor.comrel.diagram/src/comrel/diagram/edit/policies/CartesianQueuedUnitCartesianQueuedUnitHelperUnitsCompartment2ItemSemanticEditPolicy.java b/org.eclipse.emf.refactor.comrel.diagram/src/comrel/diagram/edit/policies/CartesianQueuedUnitCartesianQueuedUnitHelperUnitsCompartment2ItemSemanticEditPolicy.java
new file mode 100644
index 0000000..b83134d
--- /dev/null
+++ b/org.eclipse.emf.refactor.comrel.diagram/src/comrel/diagram/edit/policies/CartesianQueuedUnitCartesianQueuedUnitHelperUnitsCompartment2ItemSemanticEditPolicy.java
@@ -0,0 +1,47 @@
+/*
+ *
+ */
+package comrel.diagram.edit.policies;
+
+import org.eclipse.gef.commands.Command;
+import org.eclipse.gmf.runtime.emf.type.core.requests.CreateElementRequest;
+
+import comrel.diagram.edit.commands.MultiFeatureUnitCreateCommand;
+import comrel.diagram.edit.commands.MultiFilterUnitCreateCommand;
+import comrel.diagram.edit.commands.SingleFeatureUnitCreateCommand;
+import comrel.diagram.edit.commands.SingleFilterUnitCreateCommand;
+import comrel.diagram.providers.ComrelElementTypes;
+
+/**
+ * @generated
+ */
+public class CartesianQueuedUnitCartesianQueuedUnitHelperUnitsCompartment2ItemSemanticEditPolicy
+ extends ComrelBaseItemSemanticEditPolicy {
+
+ /**
+ * @generated
+ */
+ public CartesianQueuedUnitCartesianQueuedUnitHelperUnitsCompartment2ItemSemanticEditPolicy() {
+ super(ComrelElementTypes.CartesianQueuedUnit_3003);
+ }
+
+ /**
+ * @generated
+ */
+ protected Command getCreateCommand(CreateElementRequest req) {
+ if (ComrelElementTypes.SingleFeatureUnit_3008 == req.getElementType()) {
+ return getGEFWrapper(new SingleFeatureUnitCreateCommand(req));
+ }
+ if (ComrelElementTypes.MultiFeatureUnit_3012 == req.getElementType()) {
+ return getGEFWrapper(new MultiFeatureUnitCreateCommand(req));
+ }
+ if (ComrelElementTypes.SingleFilterUnit_3016 == req.getElementType()) {
+ return getGEFWrapper(new SingleFilterUnitCreateCommand(req));
+ }
+ if (ComrelElementTypes.MultiFilterUnit_3019 == req.getElementType()) {
+ return getGEFWrapper(new MultiFilterUnitCreateCommand(req));
+ }
+ return super.getCreateCommand(req);
+ }
+
+}
diff --git a/org.eclipse.emf.refactor.comrel.diagram/src/comrel/diagram/edit/policies/CartesianQueuedUnitCartesianQueuedUnitHelperUnitsCompartment3CanonicalEditPolicy.java b/org.eclipse.emf.refactor.comrel.diagram/src/comrel/diagram/edit/policies/CartesianQueuedUnitCartesianQueuedUnitHelperUnitsCompartment3CanonicalEditPolicy.java
new file mode 100644
index 0000000..53dbe90
--- /dev/null
+++ b/org.eclipse.emf.refactor.comrel.diagram/src/comrel/diagram/edit/policies/CartesianQueuedUnitCartesianQueuedUnitHelperUnitsCompartment3CanonicalEditPolicy.java
@@ -0,0 +1,173 @@
+/*
+ *
+ */
+package comrel.diagram.edit.policies;
+
+import java.util.ArrayList;
+import java.util.Collection;
+import java.util.Iterator;
+import java.util.LinkedList;
+import java.util.List;
+
+import org.eclipse.core.runtime.IAdaptable;
+import org.eclipse.emf.ecore.EObject;
+import org.eclipse.emf.ecore.EStructuralFeature;
+import org.eclipse.gef.commands.Command;
+import org.eclipse.gmf.runtime.diagram.core.util.ViewUtil;
+import org.eclipse.gmf.runtime.diagram.ui.commands.DeferredLayoutCommand;
+import org.eclipse.gmf.runtime.diagram.ui.commands.ICommandProxy;
+import org.eclipse.gmf.runtime.diagram.ui.commands.SetViewMutabilityCommand;
+import org.eclipse.gmf.runtime.diagram.ui.editpolicies.CanonicalEditPolicy;
+import org.eclipse.gmf.runtime.diagram.ui.requests.CreateViewRequest;
+import org.eclipse.gmf.runtime.emf.core.util.EObjectAdapter;
+import org.eclipse.gmf.runtime.notation.Node;
+import org.eclipse.gmf.runtime.notation.View;
+
+import comrel.ComrelPackage;
+import comrel.diagram.edit.parts.MultiFeatureUnitEditPart;
+import comrel.diagram.edit.parts.MultiFilterUnitEditPart;
+import comrel.diagram.edit.parts.SingleFeatureUnitEditPart;
+import comrel.diagram.edit.parts.SingleFilterUnitEditPart;
+import comrel.diagram.part.ComrelDiagramUpdater;
+import comrel.diagram.part.ComrelNodeDescriptor;
+import comrel.diagram.part.ComrelVisualIDRegistry;
+
+/**
+ * @generated
+ */
+public class CartesianQueuedUnitCartesianQueuedUnitHelperUnitsCompartment3CanonicalEditPolicy
+ extends CanonicalEditPolicy {
+
+ /**
+ * @generated
+ */
+ protected EStructuralFeature getFeatureToSynchronize() {
+ return ComrelPackage.eINSTANCE.getCartesianQueuedUnit_HelperUnits();
+ }
+
+ /**
+ * @generated
+ */
+ @SuppressWarnings("rawtypes")
+ protected List getSemanticChildrenList() {
+ View viewObject = (View) getHost().getModel();
+ LinkedList<EObject> result = new LinkedList<EObject>();
+ List<ComrelNodeDescriptor> childDescriptors = ComrelDiagramUpdater
+ .getCartesianQueuedUnitCartesianQueuedUnitHelperUnitsCompartment_7007SemanticChildren(viewObject);
+ for (ComrelNodeDescriptor d : childDescriptors) {
+ result.add(d.getModelElement());
+ }
+ return result;
+ }
+
+ /**
+ * @generated
+ */
+ protected boolean isOrphaned(Collection<EObject> semanticChildren,
+ final View view) {
+ return isMyDiagramElement(view)
+ && !semanticChildren.contains(view.getElement());
+ }
+
+ /**
+ * @generated
+ */
+ private boolean isMyDiagramElement(View view) {
+ int visualID = ComrelVisualIDRegistry.getVisualID(view);
+ switch (visualID) {
+ case SingleFeatureUnitEditPart.VISUAL_ID:
+ case MultiFeatureUnitEditPart.VISUAL_ID:
+ case SingleFilterUnitEditPart.VISUAL_ID:
+ case MultiFilterUnitEditPart.VISUAL_ID:
+ return true;
+ }
+ return false;
+ }
+
+ /**
+ * @generated
+ */
+ protected void refreshSemantic() {
+ if (resolveSemanticElement() == null) {
+ return;
+ }
+ LinkedList<IAdaptable> createdViews = new LinkedList<IAdaptable>();
+ List<ComrelNodeDescriptor> childDescriptors = ComrelDiagramUpdater
+ .getCartesianQueuedUnitCartesianQueuedUnitHelperUnitsCompartment_7007SemanticChildren((View) getHost()
+ .getModel());
+ LinkedList<View> orphaned = new LinkedList<View>();
+ // we care to check only views we recognize as ours
+ LinkedList<View> knownViewChildren = new LinkedList<View>();
+ for (View v : getViewChildren()) {
+ if (isMyDiagramElement(v)) {
+ knownViewChildren.add(v);
+ }
+ }
+ // alternative to #cleanCanonicalSemanticChildren(getViewChildren(), semanticChildren)
+ //
+ // iteration happens over list of desired semantic elements, trying to find best matching View, while original CEP
+ // iterates views, potentially losing view (size/bounds) information - i.e. if there are few views to reference same EObject, only last one
+ // to answer isOrphaned == true will be used for the domain element representation, see #cleanCanonicalSemanticChildren()
+ for (Iterator<ComrelNodeDescriptor> descriptorsIterator = childDescriptors
+ .iterator(); descriptorsIterator.hasNext();) {
+ ComrelNodeDescriptor next = descriptorsIterator.next();
+ String hint = ComrelVisualIDRegistry.getType(next.getVisualID());
+ LinkedList<View> perfectMatch = new LinkedList<View>(); // both semanticElement and hint match that of NodeDescriptor
+ for (View childView : getViewChildren()) {
+ EObject semanticElement = childView.getElement();
+ if (next.getModelElement().equals(semanticElement)) {
+ if (hint.equals(childView.getType())) {
+ perfectMatch.add(childView);
+ // actually, can stop iteration over view children here, but
+ // may want to use not the first view but last one as a 'real' match (the way original CEP does
+ // with its trick with viewToSemanticMap inside #cleanCanonicalSemanticChildren
+ }
+ }
+ }
+ if (perfectMatch.size() > 0) {
+ descriptorsIterator.remove(); // precise match found no need to create anything for the NodeDescriptor
+ // use only one view (first or last?), keep rest as orphaned for further consideration
+ knownViewChildren.remove(perfectMatch.getFirst());
+ }
+ }
+ // those left in knownViewChildren are subject to removal - they are our diagram elements we didn't find match to,
+ // or those we have potential matches to, and thus need to be recreated, preserving size/location information.
+ orphaned.addAll(knownViewChildren);
+ //
+ ArrayList<CreateViewRequest.ViewDescriptor> viewDescriptors = new ArrayList<CreateViewRequest.ViewDescriptor>(
+ childDescriptors.size());
+ for (ComrelNodeDescriptor next : childDescriptors) {
+ String hint = ComrelVisualIDRegistry.getType(next.getVisualID());
+ IAdaptable elementAdapter = new CanonicalElementAdapter(
+ next.getModelElement(), hint);
+ CreateViewRequest.ViewDescriptor descriptor = new CreateViewRequest.ViewDescriptor(
+ elementAdapter, Node.class, hint, ViewUtil.APPEND, false,
+ host().getDiagramPreferencesHint());
+ viewDescriptors.add(descriptor);
+ }
+
+ boolean changed = deleteViews(orphaned.iterator());
+ //
+ CreateViewRequest request = getCreateViewRequest(viewDescriptors);
+ Command cmd = getCreateViewCommand(request);
+ if (cmd != null && cmd.canExecute()) {
+ SetViewMutabilityCommand.makeMutable(
+ new EObjectAdapter(host().getNotationView())).execute();
+ executeCommand(cmd);
+ @SuppressWarnings("unchecked")
+ List<IAdaptable> nl = (List<IAdaptable>) request.getNewObject();
+ createdViews.addAll(nl);
+ }
+ if (changed || createdViews.size() > 0) {
+ postProcessRefreshSemantic(createdViews);
+ }
+ if (createdViews.size() > 1) {
+ // perform a layout of the container
+ DeferredLayoutCommand layoutCmd = new DeferredLayoutCommand(host()
+ .getEditingDomain(), createdViews, host());
+ executeCommand(new ICommandProxy(layoutCmd));
+ }
+
+ makeViewsImmutable(createdViews);
+ }
+}
diff --git a/org.eclipse.emf.refactor.comrel.diagram/src/comrel/diagram/edit/policies/CartesianQueuedUnitCartesianQueuedUnitHelperUnitsCompartment3ItemSemanticEditPolicy.java b/org.eclipse.emf.refactor.comrel.diagram/src/comrel/diagram/edit/policies/CartesianQueuedUnitCartesianQueuedUnitHelperUnitsCompartment3ItemSemanticEditPolicy.java
new file mode 100644
index 0000000..b09ffb6
--- /dev/null
+++ b/org.eclipse.emf.refactor.comrel.diagram/src/comrel/diagram/edit/policies/CartesianQueuedUnitCartesianQueuedUnitHelperUnitsCompartment3ItemSemanticEditPolicy.java
@@ -0,0 +1,47 @@
+/*
+ *
+ */
+package comrel.diagram.edit.policies;
+
+import org.eclipse.gef.commands.Command;
+import org.eclipse.gmf.runtime.emf.type.core.requests.CreateElementRequest;
+
+import comrel.diagram.edit.commands.MultiFeatureUnitCreateCommand;
+import comrel.diagram.edit.commands.MultiFilterUnitCreateCommand;
+import comrel.diagram.edit.commands.SingleFeatureUnitCreateCommand;
+import comrel.diagram.edit.commands.SingleFilterUnitCreateCommand;
+import comrel.diagram.providers.ComrelElementTypes;
+
+/**
+ * @generated
+ */
+public class CartesianQueuedUnitCartesianQueuedUnitHelperUnitsCompartment3ItemSemanticEditPolicy
+ extends ComrelBaseItemSemanticEditPolicy {
+
+ /**
+ * @generated
+ */
+ public CartesianQueuedUnitCartesianQueuedUnitHelperUnitsCompartment3ItemSemanticEditPolicy() {
+ super(ComrelElementTypes.CartesianQueuedUnit_3007);
+ }
+
+ /**
+ * @generated
+ */
+ protected Command getCreateCommand(CreateElementRequest req) {
+ if (ComrelElementTypes.SingleFeatureUnit_3008 == req.getElementType()) {
+ return getGEFWrapper(new SingleFeatureUnitCreateCommand(req));
+ }
+ if (ComrelElementTypes.MultiFeatureUnit_3012 == req.getElementType()) {
+ return getGEFWrapper(new MultiFeatureUnitCreateCommand(req));
+ }
+ if (ComrelElementTypes.SingleFilterUnit_3016 == req.getElementType()) {
+ return getGEFWrapper(new SingleFilterUnitCreateCommand(req));
+ }
+ if (ComrelElementTypes.MultiFilterUnit_3019 == req.getElementType()) {
+ return getGEFWrapper(new MultiFilterUnitCreateCommand(req));
+ }
+ return super.getCreateCommand(req);
+ }
+
+}
diff --git a/org.eclipse.emf.refactor.comrel.diagram/src/comrel/diagram/edit/policies/CartesianQueuedUnitCartesianQueuedUnitHelperUnitsCompartment4CanonicalEditPolicy.java b/org.eclipse.emf.refactor.comrel.diagram/src/comrel/diagram/edit/policies/CartesianQueuedUnitCartesianQueuedUnitHelperUnitsCompartment4CanonicalEditPolicy.java
new file mode 100644
index 0000000..9a0cf91
--- /dev/null
+++ b/org.eclipse.emf.refactor.comrel.diagram/src/comrel/diagram/edit/policies/CartesianQueuedUnitCartesianQueuedUnitHelperUnitsCompartment4CanonicalEditPolicy.java
@@ -0,0 +1,173 @@
+/*
+ *
+ */
+package comrel.diagram.edit.policies;
+
+import java.util.ArrayList;
+import java.util.Collection;
+import java.util.Iterator;
+import java.util.LinkedList;
+import java.util.List;
+
+import org.eclipse.core.runtime.IAdaptable;
+import org.eclipse.emf.ecore.EObject;
+import org.eclipse.emf.ecore.EStructuralFeature;
+import org.eclipse.gef.commands.Command;
+import org.eclipse.gmf.runtime.diagram.core.util.ViewUtil;
+import org.eclipse.gmf.runtime.diagram.ui.commands.DeferredLayoutCommand;
+import org.eclipse.gmf.runtime.diagram.ui.commands.ICommandProxy;
+import org.eclipse.gmf.runtime.diagram.ui.commands.SetViewMutabilityCommand;
+import org.eclipse.gmf.runtime.diagram.ui.editpolicies.CanonicalEditPolicy;
+import org.eclipse.gmf.runtime.diagram.ui.requests.CreateViewRequest;
+import org.eclipse.gmf.runtime.emf.core.util.EObjectAdapter;
+import org.eclipse.gmf.runtime.notation.Node;
+import org.eclipse.gmf.runtime.notation.View;
+
+import comrel.ComrelPackage;
+import comrel.diagram.edit.parts.MultiFeatureUnitEditPart;
+import comrel.diagram.edit.parts.MultiFilterUnitEditPart;
+import comrel.diagram.edit.parts.SingleFeatureUnitEditPart;
+import comrel.diagram.edit.parts.SingleFilterUnitEditPart;
+import comrel.diagram.part.ComrelDiagramUpdater;
+import comrel.diagram.part.ComrelNodeDescriptor;
+import comrel.diagram.part.ComrelVisualIDRegistry;
+
+/**
+ * @generated
+ */
+public class CartesianQueuedUnitCartesianQueuedUnitHelperUnitsCompartment4CanonicalEditPolicy
+ extends CanonicalEditPolicy {
+
+ /**
+ * @generated
+ */
+ protected EStructuralFeature getFeatureToSynchronize() {
+ return ComrelPackage.eINSTANCE.getCartesianQueuedUnit_HelperUnits();
+ }
+
+ /**
+ * @generated
+ */
+ @SuppressWarnings("rawtypes")
+ protected List getSemanticChildrenList() {
+ View viewObject = (View) getHost().getModel();
+ LinkedList<EObject> result = new LinkedList<EObject>();
+ List<ComrelNodeDescriptor> childDescriptors = ComrelDiagramUpdater
+ .getCartesianQueuedUnitCartesianQueuedUnitHelperUnitsCompartment_7011SemanticChildren(viewObject);
+ for (ComrelNodeDescriptor d : childDescriptors) {
+ result.add(d.getModelElement());
+ }
+ return result;
+ }
+
+ /**
+ * @generated
+ */
+ protected boolean isOrphaned(Collection<EObject> semanticChildren,
+ final View view) {
+ return isMyDiagramElement(view)
+ && !semanticChildren.contains(view.getElement());
+ }
+
+ /**
+ * @generated
+ */
+ private boolean isMyDiagramElement(View view) {
+ int visualID = ComrelVisualIDRegistry.getVisualID(view);
+ switch (visualID) {
+ case SingleFeatureUnitEditPart.VISUAL_ID:
+ case MultiFeatureUnitEditPart.VISUAL_ID:
+ case SingleFilterUnitEditPart.VISUAL_ID:
+ case MultiFilterUnitEditPart.VISUAL_ID:
+ return true;
+ }
+ return false;
+ }
+
+ /**
+ * @generated
+ */
+ protected void refreshSemantic() {
+ if (resolveSemanticElement() == null) {
+ return;
+ }
+ LinkedList<IAdaptable> createdViews = new LinkedList<IAdaptable>();
+ List<ComrelNodeDescriptor> childDescriptors = ComrelDiagramUpdater
+ .getCartesianQueuedUnitCartesianQueuedUnitHelperUnitsCompartment_7011SemanticChildren((View) getHost()
+ .getModel());
+ LinkedList<View> orphaned = new LinkedList<View>();
+ // we care to check only views we recognize as ours
+ LinkedList<View> knownViewChildren = new LinkedList<View>();
+ for (View v : getViewChildren()) {
+ if (isMyDiagramElement(v)) {
+ knownViewChildren.add(v);
+ }
+ }
+ // alternative to #cleanCanonicalSemanticChildren(getViewChildren(), semanticChildren)
+ //
+ // iteration happens over list of desired semantic elements, trying to find best matching View, while original CEP
+ // iterates views, potentially losing view (size/bounds) information - i.e. if there are few views to reference same EObject, only last one
+ // to answer isOrphaned == true will be used for the domain element representation, see #cleanCanonicalSemanticChildren()
+ for (Iterator<ComrelNodeDescriptor> descriptorsIterator = childDescriptors
+ .iterator(); descriptorsIterator.hasNext();) {
+ ComrelNodeDescriptor next = descriptorsIterator.next();
+ String hint = ComrelVisualIDRegistry.getType(next.getVisualID());
+ LinkedList<View> perfectMatch = new LinkedList<View>(); // both semanticElement and hint match that of NodeDescriptor
+ for (View childView : getViewChildren()) {
+ EObject semanticElement = childView.getElement();
+ if (next.getModelElement().equals(semanticElement)) {
+ if (hint.equals(childView.getType())) {
+ perfectMatch.add(childView);
+ // actually, can stop iteration over view children here, but
+ // may want to use not the first view but last one as a 'real' match (the way original CEP does
+ // with its trick with viewToSemanticMap inside #cleanCanonicalSemanticChildren
+ }
+ }
+ }
+ if (perfectMatch.size() > 0) {
+ descriptorsIterator.remove(); // precise match found no need to create anything for the NodeDescriptor
+ // use only one view (first or last?), keep rest as orphaned for further consideration
+ knownViewChildren.remove(perfectMatch.getFirst());
+ }
+ }
+ // those left in knownViewChildren are subject to removal - they are our diagram elements we didn't find match to,
+ // or those we have potential matches to, and thus need to be recreated, preserving size/location information.
+ orphaned.addAll(knownViewChildren);
+ //
+ ArrayList<CreateViewRequest.ViewDescriptor> viewDescriptors = new ArrayList<CreateViewRequest.ViewDescriptor>(
+ childDescriptors.size());
+ for (ComrelNodeDescriptor next : childDescriptors) {
+ String hint = ComrelVisualIDRegistry.getType(next.getVisualID());
+ IAdaptable elementAdapter = new CanonicalElementAdapter(
+ next.getModelElement(), hint);
+ CreateViewRequest.ViewDescriptor descriptor = new CreateViewRequest.ViewDescriptor(
+ elementAdapter, Node.class, hint, ViewUtil.APPEND, false,
+ host().getDiagramPreferencesHint());
+ viewDescriptors.add(descriptor);
+ }
+
+ boolean changed = deleteViews(orphaned.iterator());
+ //
+ CreateViewRequest request = getCreateViewRequest(viewDescriptors);
+ Command cmd = getCreateViewCommand(request);
+ if (cmd != null && cmd.canExecute()) {
+ SetViewMutabilityCommand.makeMutable(
+ new EObjectAdapter(host().getNotationView())).execute();
+ executeCommand(cmd);
+ @SuppressWarnings("unchecked")
+ List<IAdaptable> nl = (List<IAdaptable>) request.getNewObject();
+ createdViews.addAll(nl);
+ }
+ if (changed || createdViews.size() > 0) {
+ postProcessRefreshSemantic(createdViews);
+ }
+ if (createdViews.size() > 1) {
+ // perform a layout of the container
+ DeferredLayoutCommand layoutCmd = new DeferredLayoutCommand(host()
+ .getEditingDomain(), createdViews, host());
+ executeCommand(new ICommandProxy(layoutCmd));
+ }
+
+ makeViewsImmutable(createdViews);
+ }
+}
diff --git a/org.eclipse.emf.refactor.comrel.diagram/src/comrel/diagram/edit/policies/CartesianQueuedUnitCartesianQueuedUnitHelperUnitsCompartment4ItemSemanticEditPolicy.java b/org.eclipse.emf.refactor.comrel.diagram/src/comrel/diagram/edit/policies/CartesianQueuedUnitCartesianQueuedUnitHelperUnitsCompartment4ItemSemanticEditPolicy.java
new file mode 100644
index 0000000..c1a5480
--- /dev/null
+++ b/org.eclipse.emf.refactor.comrel.diagram/src/comrel/diagram/edit/policies/CartesianQueuedUnitCartesianQueuedUnitHelperUnitsCompartment4ItemSemanticEditPolicy.java
@@ -0,0 +1,47 @@
+/*
+ *
+ */
+package comrel.diagram.edit.policies;
+
+import org.eclipse.gef.commands.Command;
+import org.eclipse.gmf.runtime.emf.type.core.requests.CreateElementRequest;
+
+import comrel.diagram.edit.commands.MultiFeatureUnitCreateCommand;
+import comrel.diagram.edit.commands.MultiFilterUnitCreateCommand;
+import comrel.diagram.edit.commands.SingleFeatureUnitCreateCommand;
+import comrel.diagram.edit.commands.SingleFilterUnitCreateCommand;
+import comrel.diagram.providers.ComrelElementTypes;
+
+/**
+ * @generated
+ */
+public class CartesianQueuedUnitCartesianQueuedUnitHelperUnitsCompartment4ItemSemanticEditPolicy
+ extends ComrelBaseItemSemanticEditPolicy {
+
+ /**
+ * @generated
+ */
+ public CartesianQueuedUnitCartesianQueuedUnitHelperUnitsCompartment4ItemSemanticEditPolicy() {
+ super(ComrelElementTypes.CartesianQueuedUnit_3025);
+ }
+
+ /**
+ * @generated
+ */
+ protected Command getCreateCommand(CreateElementRequest req) {
+ if (ComrelElementTypes.SingleFeatureUnit_3008 == req.getElementType()) {
+ return getGEFWrapper(new SingleFeatureUnitCreateCommand(req));
+ }
+ if (ComrelElementTypes.MultiFeatureUnit_3012 == req.getElementType()) {
+ return getGEFWrapper(new MultiFeatureUnitCreateCommand(req));
+ }
+ if (ComrelElementTypes.SingleFilterUnit_3016 == req.getElementType()) {
+ return getGEFWrapper(new SingleFilterUnitCreateCommand(req));
+ }
+ if (ComrelElementTypes.MultiFilterUnit_3019 == req.getElementType()) {
+ return getGEFWrapper(new MultiFilterUnitCreateCommand(req));
+ }
+ return super.getCreateCommand(req);
+ }
+
+}
diff --git a/org.eclipse.emf.refactor.comrel.diagram/src/comrel/diagram/edit/policies/CartesianQueuedUnitCartesianQueuedUnitHelperUnitsCompartment5CanonicalEditPolicy.java b/org.eclipse.emf.refactor.comrel.diagram/src/comrel/diagram/edit/policies/CartesianQueuedUnitCartesianQueuedUnitHelperUnitsCompartment5CanonicalEditPolicy.java
new file mode 100644
index 0000000..6f0c428
--- /dev/null
+++ b/org.eclipse.emf.refactor.comrel.diagram/src/comrel/diagram/edit/policies/CartesianQueuedUnitCartesianQueuedUnitHelperUnitsCompartment5CanonicalEditPolicy.java
@@ -0,0 +1,173 @@
+/*
+ *
+ */
+package comrel.diagram.edit.policies;
+
+import java.util.ArrayList;
+import java.util.Collection;
+import java.util.Iterator;
+import java.util.LinkedList;
+import java.util.List;
+
+import org.eclipse.core.runtime.IAdaptable;
+import org.eclipse.emf.ecore.EObject;
+import org.eclipse.emf.ecore.EStructuralFeature;
+import org.eclipse.gef.commands.Command;
+import org.eclipse.gmf.runtime.diagram.core.util.ViewUtil;
+import org.eclipse.gmf.runtime.diagram.ui.commands.DeferredLayoutCommand;
+import org.eclipse.gmf.runtime.diagram.ui.commands.ICommandProxy;
+import org.eclipse.gmf.runtime.diagram.ui.commands.SetViewMutabilityCommand;
+import org.eclipse.gmf.runtime.diagram.ui.editpolicies.CanonicalEditPolicy;
+import org.eclipse.gmf.runtime.diagram.ui.requests.CreateViewRequest;
+import org.eclipse.gmf.runtime.emf.core.util.EObjectAdapter;
+import org.eclipse.gmf.runtime.notation.Node;
+import org.eclipse.gmf.runtime.notation.View;
+
+import comrel.ComrelPackage;
+import comrel.diagram.edit.parts.MultiFeatureUnitEditPart;
+import comrel.diagram.edit.parts.MultiFilterUnitEditPart;
+import comrel.diagram.edit.parts.SingleFeatureUnitEditPart;
+import comrel.diagram.edit.parts.SingleFilterUnitEditPart;
+import comrel.diagram.part.ComrelDiagramUpdater;
+import comrel.diagram.part.ComrelNodeDescriptor;
+import comrel.diagram.part.ComrelVisualIDRegistry;
+
+/**
+ * @generated
+ */
+public class CartesianQueuedUnitCartesianQueuedUnitHelperUnitsCompartment5CanonicalEditPolicy
+ extends CanonicalEditPolicy {
+
+ /**
+ * @generated
+ */
+ protected EStructuralFeature getFeatureToSynchronize() {
+ return ComrelPackage.eINSTANCE.getCartesianQueuedUnit_HelperUnits();
+ }
+
+ /**
+ * @generated
+ */
+ @SuppressWarnings("rawtypes")
+ protected List getSemanticChildrenList() {
+ View viewObject = (View) getHost().getModel();
+ LinkedList<EObject> result = new LinkedList<EObject>();
+ List<ComrelNodeDescriptor> childDescriptors = ComrelDiagramUpdater
+ .getCartesianQueuedUnitCartesianQueuedUnitHelperUnitsCompartment_7015SemanticChildren(viewObject);
+ for (ComrelNodeDescriptor d : childDescriptors) {
+ result.add(d.getModelElement());
+ }
+ return result;
+ }
+
+ /**
+ * @generated
+ */
+ protected boolean isOrphaned(Collection<EObject> semanticChildren,
+ final View view) {
+ return isMyDiagramElement(view)
+ && !semanticChildren.contains(view.getElement());
+ }
+
+ /**
+ * @generated
+ */
+ private boolean isMyDiagramElement(View view) {
+ int visualID = ComrelVisualIDRegistry.getVisualID(view);
+ switch (visualID) {
+ case SingleFeatureUnitEditPart.VISUAL_ID:
+ case MultiFeatureUnitEditPart.VISUAL_ID:
+ case SingleFilterUnitEditPart.VISUAL_ID:
+ case MultiFilterUnitEditPart.VISUAL_ID:
+ return true;
+ }
+ return false;
+ }
+
+ /**
+ * @generated
+ */
+ protected void refreshSemantic() {
+ if (resolveSemanticElement() == null) {
+ return;
+ }
+ LinkedList<IAdaptable> createdViews = new LinkedList<IAdaptable>();
+ List<ComrelNodeDescriptor> childDescriptors = ComrelDiagramUpdater
+ .getCartesianQueuedUnitCartesianQueuedUnitHelperUnitsCompartment_7015SemanticChildren((View) getHost()
+ .getModel());
+ LinkedList<View> orphaned = new LinkedList<View>();
+ // we care to check only views we recognize as ours
+ LinkedList<View> knownViewChildren = new LinkedList<View>();
+ for (View v : getViewChildren()) {
+ if (isMyDiagramElement(v)) {
+ knownViewChildren.add(v);
+ }
+ }
+ // alternative to #cleanCanonicalSemanticChildren(getViewChildren(), semanticChildren)
+ //
+ // iteration happens over list of desired semantic elements, trying to find best matching View, while original CEP
+ // iterates views, potentially losing view (size/bounds) information - i.e. if there are few views to reference same EObject, only last one
+ // to answer isOrphaned == true will be used for the domain element representation, see #cleanCanonicalSemanticChildren()
+ for (Iterator<ComrelNodeDescriptor> descriptorsIterator = childDescriptors
+ .iterator(); descriptorsIterator.hasNext();) {
+ ComrelNodeDescriptor next = descriptorsIterator.next();
+ String hint = ComrelVisualIDRegistry.getType(next.getVisualID());
+ LinkedList<View> perfectMatch = new LinkedList<View>(); // both semanticElement and hint match that of NodeDescriptor
+ for (View childView : getViewChildren()) {
+ EObject semanticElement = childView.getElement();
+ if (next.getModelElement().equals(semanticElement)) {
+ if (hint.equals(childView.getType())) {
+ perfectMatch.add(childView);
+ // actually, can stop iteration over view children here, but
+ // may want to use not the first view but last one as a 'real' match (the way original CEP does
+ // with its trick with viewToSemanticMap inside #cleanCanonicalSemanticChildren
+ }
+ }
+ }
+ if (perfectMatch.size() > 0) {
+ descriptorsIterator.remove(); // precise match found no need to create anything for the NodeDescriptor
+ // use only one view (first or last?), keep rest as orphaned for further consideration
+ knownViewChildren.remove(perfectMatch.getFirst());
+ }
+ }
+ // those left in knownViewChildren are subject to removal - they are our diagram elements we didn't find match to,
+ // or those we have potential matches to, and thus need to be recreated, preserving size/location information.
+ orphaned.addAll(knownViewChildren);
+ //
+ ArrayList<CreateViewRequest.ViewDescriptor> viewDescriptors = new ArrayList<CreateViewRequest.ViewDescriptor>(
+ childDescriptors.size());
+ for (ComrelNodeDescriptor next : childDescriptors) {
+ String hint = ComrelVisualIDRegistry.getType(next.getVisualID());
+ IAdaptable elementAdapter = new CanonicalElementAdapter(
+ next.getModelElement(), hint);
+ CreateViewRequest.ViewDescriptor descriptor = new CreateViewRequest.ViewDescriptor(
+ elementAdapter, Node.class, hint, ViewUtil.APPEND, false,
+ host().getDiagramPreferencesHint());
+ viewDescriptors.add(descriptor);
+ }
+
+ boolean changed = deleteViews(orphaned.iterator());
+ //
+ CreateViewRequest request = getCreateViewRequest(viewDescriptors);
+ Command cmd = getCreateViewCommand(request);
+ if (cmd != null && cmd.canExecute()) {
+ SetViewMutabilityCommand.makeMutable(
+ new EObjectAdapter(host().getNotationView())).execute();
+ executeCommand(cmd);
+ @SuppressWarnings("unchecked")
+ List<IAdaptable> nl = (List<IAdaptable>) request.getNewObject();
+ createdViews.addAll(nl);
+ }
+ if (changed || createdViews.size() > 0) {
+ postProcessRefreshSemantic(createdViews);
+ }
+ if (createdViews.size() > 1) {
+ // perform a layout of the container
+ DeferredLayoutCommand layoutCmd = new DeferredLayoutCommand(host()
+ .getEditingDomain(), createdViews, host());
+ executeCommand(new ICommandProxy(layoutCmd));
+ }
+
+ makeViewsImmutable(createdViews);
+ }
+}
diff --git a/org.eclipse.emf.refactor.comrel.diagram/src/comrel/diagram/edit/policies/CartesianQueuedUnitCartesianQueuedUnitHelperUnitsCompartment5ItemSemanticEditPolicy.java b/org.eclipse.emf.refactor.comrel.diagram/src/comrel/diagram/edit/policies/CartesianQueuedUnitCartesianQueuedUnitHelperUnitsCompartment5ItemSemanticEditPolicy.java
new file mode 100644
index 0000000..b32cac5
--- /dev/null
+++ b/org.eclipse.emf.refactor.comrel.diagram/src/comrel/diagram/edit/policies/CartesianQueuedUnitCartesianQueuedUnitHelperUnitsCompartment5ItemSemanticEditPolicy.java
@@ -0,0 +1,47 @@
+/*
+ *
+ */
+package comrel.diagram.edit.policies;
+
+import org.eclipse.gef.commands.Command;
+import org.eclipse.gmf.runtime.emf.type.core.requests.CreateElementRequest;
+
+import comrel.diagram.edit.commands.MultiFeatureUnitCreateCommand;
+import comrel.diagram.edit.commands.MultiFilterUnitCreateCommand;
+import comrel.diagram.edit.commands.SingleFeatureUnitCreateCommand;
+import comrel.diagram.edit.commands.SingleFilterUnitCreateCommand;
+import comrel.diagram.providers.ComrelElementTypes;
+
+/**
+ * @generated
+ */
+public class CartesianQueuedUnitCartesianQueuedUnitHelperUnitsCompartment5ItemSemanticEditPolicy
+ extends ComrelBaseItemSemanticEditPolicy {
+
+ /**
+ * @generated
+ */
+ public CartesianQueuedUnitCartesianQueuedUnitHelperUnitsCompartment5ItemSemanticEditPolicy() {
+ super(ComrelElementTypes.CartesianQueuedUnit_3029);
+ }
+
+ /**
+ * @generated
+ */
+ protected Command getCreateCommand(CreateElementRequest req) {
+ if (ComrelElementTypes.SingleFeatureUnit_3008 == req.getElementType()) {
+ return getGEFWrapper(new SingleFeatureUnitCreateCommand(req));
+ }
+ if (ComrelElementTypes.MultiFeatureUnit_3012 == req.getElementType()) {
+ return getGEFWrapper(new MultiFeatureUnitCreateCommand(req));
+ }
+ if (ComrelElementTypes.SingleFilterUnit_3016 == req.getElementType()) {
+ return getGEFWrapper(new SingleFilterUnitCreateCommand(req));
+ }
+ if (ComrelElementTypes.MultiFilterUnit_3019 == req.getElementType()) {
+ return getGEFWrapper(new MultiFilterUnitCreateCommand(req));
+ }
+ return super.getCreateCommand(req);
+ }
+
+}
diff --git a/org.eclipse.emf.refactor.comrel.diagram/src/comrel/diagram/edit/policies/CartesianQueuedUnitCartesianQueuedUnitHelperUnitsCompartment6CanonicalEditPolicy.java b/org.eclipse.emf.refactor.comrel.diagram/src/comrel/diagram/edit/policies/CartesianQueuedUnitCartesianQueuedUnitHelperUnitsCompartment6CanonicalEditPolicy.java
new file mode 100644
index 0000000..43031e2
--- /dev/null
+++ b/org.eclipse.emf.refactor.comrel.diagram/src/comrel/diagram/edit/policies/CartesianQueuedUnitCartesianQueuedUnitHelperUnitsCompartment6CanonicalEditPolicy.java
@@ -0,0 +1,173 @@
+/*
+ *
+ */
+package comrel.diagram.edit.policies;
+
+import java.util.ArrayList;
+import java.util.Collection;
+import java.util.Iterator;
+import java.util.LinkedList;
+import java.util.List;
+
+import org.eclipse.core.runtime.IAdaptable;
+import org.eclipse.emf.ecore.EObject;
+import org.eclipse.emf.ecore.EStructuralFeature;
+import org.eclipse.gef.commands.Command;
+import org.eclipse.gmf.runtime.diagram.core.util.ViewUtil;
+import org.eclipse.gmf.runtime.diagram.ui.commands.DeferredLayoutCommand;
+import org.eclipse.gmf.runtime.diagram.ui.commands.ICommandProxy;
+import org.eclipse.gmf.runtime.diagram.ui.commands.SetViewMutabilityCommand;
+import org.eclipse.gmf.runtime.diagram.ui.editpolicies.CanonicalEditPolicy;
+import org.eclipse.gmf.runtime.diagram.ui.requests.CreateViewRequest;
+import org.eclipse.gmf.runtime.emf.core.util.EObjectAdapter;
+import org.eclipse.gmf.runtime.notation.Node;
+import org.eclipse.gmf.runtime.notation.View;
+
+import comrel.ComrelPackage;
+import comrel.diagram.edit.parts.MultiFeatureUnitEditPart;
+import comrel.diagram.edit.parts.MultiFilterUnitEditPart;
+import comrel.diagram.edit.parts.SingleFeatureUnitEditPart;
+import comrel.diagram.edit.parts.SingleFilterUnitEditPart;
+import comrel.diagram.part.ComrelDiagramUpdater;
+import comrel.diagram.part.ComrelNodeDescriptor;
+import comrel.diagram.part.ComrelVisualIDRegistry;
+
+/**
+ * @generated
+ */
+public class CartesianQueuedUnitCartesianQueuedUnitHelperUnitsCompartment6CanonicalEditPolicy
+ extends CanonicalEditPolicy {
+
+ /**
+ * @generated
+ */
+ protected EStructuralFeature getFeatureToSynchronize() {
+ return ComrelPackage.eINSTANCE.getCartesianQueuedUnit_HelperUnits();
+ }
+
+ /**
+ * @generated
+ */
+ @SuppressWarnings("rawtypes")
+ protected List getSemanticChildrenList() {
+ View viewObject = (View) getHost().getModel();
+ LinkedList<EObject> result = new LinkedList<EObject>();
+ List<ComrelNodeDescriptor> childDescriptors = ComrelDiagramUpdater
+ .getCartesianQueuedUnitCartesianQueuedUnitHelperUnitsCompartment_7021SemanticChildren(viewObject);
+ for (ComrelNodeDescriptor d : childDescriptors) {
+ result.add(d.getModelElement());
+ }
+ return result;
+ }
+
+ /**
+ * @generated
+ */
+ protected boolean isOrphaned(Collection<EObject> semanticChildren,
+ final View view) {
+ return isMyDiagramElement(view)
+ && !semanticChildren.contains(view.getElement());
+ }
+
+ /**
+ * @generated
+ */
+ private boolean isMyDiagramElement(View view) {
+ int visualID = ComrelVisualIDRegistry.getVisualID(view);
+ switch (visualID) {
+ case SingleFeatureUnitEditPart.VISUAL_ID:
+ case MultiFeatureUnitEditPart.VISUAL_ID:
+ case SingleFilterUnitEditPart.VISUAL_ID:
+ case MultiFilterUnitEditPart.VISUAL_ID:
+ return true;
+ }
+ return false;
+ }
+
+ /**
+ * @generated
+ */
+ protected void refreshSemantic() {
+ if (resolveSemanticElement() == null) {
+ return;
+ }
+ LinkedList<IAdaptable> createdViews = new LinkedList<IAdaptable>();
+ List<ComrelNodeDescriptor> childDescriptors = ComrelDiagramUpdater
+ .getCartesianQueuedUnitCartesianQueuedUnitHelperUnitsCompartment_7021SemanticChildren((View) getHost()
+ .getModel());
+ LinkedList<View> orphaned = new LinkedList<View>();
+ // we care to check only views we recognize as ours
+ LinkedList<View> knownViewChildren = new LinkedList<View>();
+ for (View v : getViewChildren()) {
+ if (isMyDiagramElement(v)) {
+ knownViewChildren.add(v);
+ }
+ }
+ // alternative to #cleanCanonicalSemanticChildren(getViewChildren(), semanticChildren)
+ //
+ // iteration happens over list of desired semantic elements, trying to find best matching View, while original CEP
+ // iterates views, potentially losing view (size/bounds) information - i.e. if there are few views to reference same EObject, only last one
+ // to answer isOrphaned == true will be used for the domain element representation, see #cleanCanonicalSemanticChildren()
+ for (Iterator<ComrelNodeDescriptor> descriptorsIterator = childDescriptors
+ .iterator(); descriptorsIterator.hasNext();) {
+ ComrelNodeDescriptor next = descriptorsIterator.next();
+ String hint = ComrelVisualIDRegistry.getType(next.getVisualID());
+ LinkedList<View> perfectMatch = new LinkedList<View>(); // both semanticElement and hint match that of NodeDescriptor
+ for (View childView : getViewChildren()) {
+ EObject semanticElement = childView.getElement();
+ if (next.getModelElement().equals(semanticElement)) {
+ if (hint.equals(childView.getType())) {
+ perfectMatch.add(childView);
+ // actually, can stop iteration over view children here, but
+ // may want to use not the first view but last one as a 'real' match (the way original CEP does
+ // with its trick with viewToSemanticMap inside #cleanCanonicalSemanticChildren
+ }
+ }
+ }
+ if (perfectMatch.size() > 0) {
+ descriptorsIterator.remove(); // precise match found no need to create anything for the NodeDescriptor
+ // use only one view (first or last?), keep rest as orphaned for further consideration
+ knownViewChildren.remove(perfectMatch.getFirst());
+ }
+ }
+ // those left in knownViewChildren are subject to removal - they are our diagram elements we didn't find match to,
+ // or those we have potential matches to, and thus need to be recreated, preserving size/location information.
+ orphaned.addAll(knownViewChildren);
+ //
+ ArrayList<CreateViewRequest.ViewDescriptor> viewDescriptors = new ArrayList<CreateViewRequest.ViewDescriptor>(
+ childDescriptors.size());
+ for (ComrelNodeDescriptor next : childDescriptors) {
+ String hint = ComrelVisualIDRegistry.getType(next.getVisualID());
+ IAdaptable elementAdapter = new CanonicalElementAdapter(
+ next.getModelElement(), hint);
+ CreateViewRequest.ViewDescriptor descriptor = new CreateViewRequest.ViewDescriptor(
+ elementAdapter, Node.class, hint, ViewUtil.APPEND, false,
+ host().getDiagramPreferencesHint());
+ viewDescriptors.add(descriptor);
+ }
+
+ boolean changed = deleteViews(orphaned.iterator());
+ //
+ CreateViewRequest request = getCreateViewRequest(viewDescriptors);
+ Command cmd = getCreateViewCommand(request);
+ if (cmd != null && cmd.canExecute()) {
+ SetViewMutabilityCommand.makeMutable(
+ new EObjectAdapter(host().getNotationView())).execute();
+ executeCommand(cmd);
+ @SuppressWarnings("unchecked")
+ List<IAdaptable> nl = (List<IAdaptable>) request.getNewObject();
+ createdViews.addAll(nl);
+ }
+ if (changed || createdViews.size() > 0) {
+ postProcessRefreshSemantic(createdViews);
+ }
+ if (createdViews.size() > 1) {
+ // perform a layout of the container
+ DeferredLayoutCommand layoutCmd = new DeferredLayoutCommand(host()
+ .getEditingDomain(), createdViews, host());
+ executeCommand(new ICommandProxy(layoutCmd));
+ }
+
+ makeViewsImmutable(createdViews);
+ }
+}
diff --git a/org.eclipse.emf.refactor.comrel.diagram/src/comrel/diagram/edit/policies/CartesianQueuedUnitCartesianQueuedUnitHelperUnitsCompartment6ItemSemanticEditPolicy.java b/org.eclipse.emf.refactor.comrel.diagram/src/comrel/diagram/edit/policies/CartesianQueuedUnitCartesianQueuedUnitHelperUnitsCompartment6ItemSemanticEditPolicy.java
new file mode 100644
index 0000000..3169a37
--- /dev/null
+++ b/org.eclipse.emf.refactor.comrel.diagram/src/comrel/diagram/edit/policies/CartesianQueuedUnitCartesianQueuedUnitHelperUnitsCompartment6ItemSemanticEditPolicy.java
@@ -0,0 +1,47 @@
+/*
+ *
+ */
+package comrel.diagram.edit.policies;
+
+import org.eclipse.gef.commands.Command;
+import org.eclipse.gmf.runtime.emf.type.core.requests.CreateElementRequest;
+
+import comrel.diagram.edit.commands.MultiFeatureUnitCreateCommand;
+import comrel.diagram.edit.commands.MultiFilterUnitCreateCommand;
+import comrel.diagram.edit.commands.SingleFeatureUnitCreateCommand;
+import comrel.diagram.edit.commands.SingleFilterUnitCreateCommand;
+import comrel.diagram.providers.ComrelElementTypes;
+
+/**
+ * @generated
+ */
+public class CartesianQueuedUnitCartesianQueuedUnitHelperUnitsCompartment6ItemSemanticEditPolicy
+ extends ComrelBaseItemSemanticEditPolicy {
+
+ /**
+ * @generated
+ */
+ public CartesianQueuedUnitCartesianQueuedUnitHelperUnitsCompartment6ItemSemanticEditPolicy() {
+ super(ComrelElementTypes.CartesianQueuedUnit_3033);
+ }
+
+ /**
+ * @generated
+ */
+ protected Command getCreateCommand(CreateElementRequest req) {
+ if (ComrelElementTypes.SingleFeatureUnit_3008 == req.getElementType()) {
+ return getGEFWrapper(new SingleFeatureUnitCreateCommand(req));
+ }
+ if (ComrelElementTypes.MultiFeatureUnit_3012 == req.getElementType()) {
+ return getGEFWrapper(new MultiFeatureUnitCreateCommand(req));
+ }
+ if (ComrelElementTypes.SingleFilterUnit_3016 == req.getElementType()) {
+ return getGEFWrapper(new SingleFilterUnitCreateCommand(req));
+ }
+ if (ComrelElementTypes.MultiFilterUnit_3019 == req.getElementType()) {
+ return getGEFWrapper(new MultiFilterUnitCreateCommand(req));
+ }
+ return super.getCreateCommand(req);
+ }
+
+}
diff --git a/org.eclipse.emf.refactor.comrel.diagram/src/comrel/diagram/edit/policies/CartesianQueuedUnitCartesianQueuedUnitHelperUnitsCompartment7CanonicalEditPolicy.java b/org.eclipse.emf.refactor.comrel.diagram/src/comrel/diagram/edit/policies/CartesianQueuedUnitCartesianQueuedUnitHelperUnitsCompartment7CanonicalEditPolicy.java
new file mode 100644
index 0000000..3289ad3
--- /dev/null
+++ b/org.eclipse.emf.refactor.comrel.diagram/src/comrel/diagram/edit/policies/CartesianQueuedUnitCartesianQueuedUnitHelperUnitsCompartment7CanonicalEditPolicy.java
@@ -0,0 +1,173 @@
+/*
+ *
+ */
+package comrel.diagram.edit.policies;
+
+import java.util.ArrayList;
+import java.util.Collection;
+import java.util.Iterator;
+import java.util.LinkedList;
+import java.util.List;
+
+import org.eclipse.core.runtime.IAdaptable;
+import org.eclipse.emf.ecore.EObject;
+import org.eclipse.emf.ecore.EStructuralFeature;
+import org.eclipse.gef.commands.Command;
+import org.eclipse.gmf.runtime.diagram.core.util.ViewUtil;
+import org.eclipse.gmf.runtime.diagram.ui.commands.DeferredLayoutCommand;
+import org.eclipse.gmf.runtime.diagram.ui.commands.ICommandProxy;
+import org.eclipse.gmf.runtime.diagram.ui.commands.SetViewMutabilityCommand;
+import org.eclipse.gmf.runtime.diagram.ui.editpolicies.CanonicalEditPolicy;
+import org.eclipse.gmf.runtime.diagram.ui.requests.CreateViewRequest;
+import org.eclipse.gmf.runtime.emf.core.util.EObjectAdapter;
+import org.eclipse.gmf.runtime.notation.Node;
+import org.eclipse.gmf.runtime.notation.View;
+
+import comrel.ComrelPackage;
+import comrel.diagram.edit.parts.MultiFeatureUnitEditPart;
+import comrel.diagram.edit.parts.MultiFilterUnitEditPart;
+import comrel.diagram.edit.parts.SingleFeatureUnitEditPart;
+import comrel.diagram.edit.parts.SingleFilterUnitEditPart;
+import comrel.diagram.part.ComrelDiagramUpdater;
+import comrel.diagram.part.ComrelNodeDescriptor;
+import comrel.diagram.part.ComrelVisualIDRegistry;
+
+/**
+ * @generated
+ */
+public class CartesianQueuedUnitCartesianQueuedUnitHelperUnitsCompartment7CanonicalEditPolicy
+ extends CanonicalEditPolicy {
+
+ /**
+ * @generated
+ */
+ protected EStructuralFeature getFeatureToSynchronize() {
+ return ComrelPackage.eINSTANCE.getCartesianQueuedUnit_HelperUnits();
+ }
+
+ /**
+ * @generated
+ */
+ @SuppressWarnings("rawtypes")
+ protected List getSemanticChildrenList() {
+ View viewObject = (View) getHost().getModel();
+ LinkedList<EObject> result = new LinkedList<EObject>();
+ List<ComrelNodeDescriptor> childDescriptors = ComrelDiagramUpdater
+ .getCartesianQueuedUnitCartesianQueuedUnitHelperUnitsCompartment_7039SemanticChildren(viewObject);
+ for (ComrelNodeDescriptor d : childDescriptors) {
+ result.add(d.getModelElement());
+ }
+ return result;
+ }
+
+ /**
+ * @generated
+ */
+ protected boolean isOrphaned(Collection<EObject> semanticChildren,
+ final View view) {
+ return isMyDiagramElement(view)
+ && !semanticChildren.contains(view.getElement());
+ }
+
+ /**
+ * @generated
+ */
+ private boolean isMyDiagramElement(View view) {
+ int visualID = ComrelVisualIDRegistry.getVisualID(view);
+ switch (visualID) {
+ case SingleFeatureUnitEditPart.VISUAL_ID:
+ case MultiFeatureUnitEditPart.VISUAL_ID:
+ case SingleFilterUnitEditPart.VISUAL_ID:
+ case MultiFilterUnitEditPart.VISUAL_ID:
+ return true;
+ }
+ return false;
+ }
+
+ /**
+ * @generated
+ */
+ protected void refreshSemantic() {
+ if (resolveSemanticElement() == null) {
+ return;
+ }
+ LinkedList<IAdaptable> createdViews = new LinkedList<IAdaptable>();
+ List<ComrelNodeDescriptor> childDescriptors = ComrelDiagramUpdater
+ .getCartesianQueuedUnitCartesianQueuedUnitHelperUnitsCompartment_7039SemanticChildren((View) getHost()
+ .getModel());
+ LinkedList<View> orphaned = new LinkedList<View>();
+ // we care to check only views we recognize as ours
+ LinkedList<View> knownViewChildren = new LinkedList<View>();
+ for (View v : getViewChildren()) {
+ if (isMyDiagramElement(v)) {
+ knownViewChildren.add(v);
+ }
+ }
+ // alternative to #cleanCanonicalSemanticChildren(getViewChildren(), semanticChildren)
+ //
+ // iteration happens over list of desired semantic elements, trying to find best matching View, while original CEP
+ // iterates views, potentially losing view (size/bounds) information - i.e. if there are few views to reference same EObject, only last one
+ // to answer isOrphaned == true will be used for the domain element representation, see #cleanCanonicalSemanticChildren()
+ for (Iterator<ComrelNodeDescriptor> descriptorsIterator = childDescriptors
+ .iterator(); descriptorsIterator.hasNext();) {
+ ComrelNodeDescriptor next = descriptorsIterator.next();
+ String hint = ComrelVisualIDRegistry.getType(next.getVisualID());
+ LinkedList<View> perfectMatch = new LinkedList<View>(); // both semanticElement and hint match that of NodeDescriptor
+ for (View childView : getViewChildren()) {
+ EObject semanticElement = childView.getElement();
+ if (next.getModelElement().equals(semanticElement)) {
+ if (hint.equals(childView.getType())) {
+ perfectMatch.add(childView);
+ // actually, can stop iteration over view children here, but
+ // may want to use not the first view but last one as a 'real' match (the way original CEP does
+ // with its trick with viewToSemanticMap inside #cleanCanonicalSemanticChildren
+ }
+ }
+ }
+ if (perfectMatch.size() > 0) {
+ descriptorsIterator.remove(); // precise match found no need to create anything for the NodeDescriptor
+ // use only one view (first or last?), keep rest as orphaned for further consideration
+ knownViewChildren.remove(perfectMatch.getFirst());
+ }
+ }
+ // those left in knownViewChildren are subject to removal - they are our diagram elements we didn't find match to,
+ // or those we have potential matches to, and thus need to be recreated, preserving size/location information.
+ orphaned.addAll(knownViewChildren);
+ //
+ ArrayList<CreateViewRequest.ViewDescriptor> viewDescriptors = new ArrayList<CreateViewRequest.ViewDescriptor>(
+ childDescriptors.size());
+ for (ComrelNodeDescriptor next : childDescriptors) {
+ String hint = ComrelVisualIDRegistry.getType(next.getVisualID());
+ IAdaptable elementAdapter = new CanonicalElementAdapter(
+ next.getModelElement(), hint);
+ CreateViewRequest.ViewDescriptor descriptor = new CreateViewRequest.ViewDescriptor(
+ elementAdapter, Node.class, hint, ViewUtil.APPEND, false,
+ host().getDiagramPreferencesHint());
+ viewDescriptors.add(descriptor);
+ }
+
+ boolean changed = deleteViews(orphaned.iterator());
+ //
+ CreateViewRequest request = getCreateViewRequest(viewDescriptors);
+ Command cmd = getCreateViewCommand(request);
+ if (cmd != null && cmd.canExecute()) {
+ SetViewMutabilityCommand.makeMutable(
+ new EObjectAdapter(host().getNotationView())).execute();
+ executeCommand(cmd);
+ @SuppressWarnings("unchecked")
+ List<IAdaptable> nl = (List<IAdaptable>) request.getNewObject();
+ createdViews.addAll(nl);
+ }
+ if (changed || createdViews.size() > 0) {
+ postProcessRefreshSemantic(createdViews);
+ }
+ if (createdViews.size() > 1) {
+ // perform a layout of the container
+ DeferredLayoutCommand layoutCmd = new DeferredLayoutCommand(host()
+ .getEditingDomain(), createdViews, host());
+ executeCommand(new ICommandProxy(layoutCmd));
+ }
+
+ makeViewsImmutable(createdViews);
+ }
+}
diff --git a/org.eclipse.emf.refactor.comrel.diagram/src/comrel/diagram/edit/policies/CartesianQueuedUnitCartesianQueuedUnitHelperUnitsCompartment7ItemSemanticEditPolicy.java b/org.eclipse.emf.refactor.comrel.diagram/src/comrel/diagram/edit/policies/CartesianQueuedUnitCartesianQueuedUnitHelperUnitsCompartment7ItemSemanticEditPolicy.java
new file mode 100644
index 0000000..ebf2776
--- /dev/null
+++ b/org.eclipse.emf.refactor.comrel.diagram/src/comrel/diagram/edit/policies/CartesianQueuedUnitCartesianQueuedUnitHelperUnitsCompartment7ItemSemanticEditPolicy.java
@@ -0,0 +1,47 @@
+/*
+ *
+ */
+package comrel.diagram.edit.policies;
+
+import org.eclipse.gef.commands.Command;
+import org.eclipse.gmf.runtime.emf.type.core.requests.CreateElementRequest;
+
+import comrel.diagram.edit.commands.MultiFeatureUnitCreateCommand;
+import comrel.diagram.edit.commands.MultiFilterUnitCreateCommand;
+import comrel.diagram.edit.commands.SingleFeatureUnitCreateCommand;
+import comrel.diagram.edit.commands.SingleFilterUnitCreateCommand;
+import comrel.diagram.providers.ComrelElementTypes;
+
+/**
+ * @generated
+ */
+public class CartesianQueuedUnitCartesianQueuedUnitHelperUnitsCompartment7ItemSemanticEditPolicy
+ extends ComrelBaseItemSemanticEditPolicy {
+
+ /**
+ * @generated
+ */
+ public CartesianQueuedUnitCartesianQueuedUnitHelperUnitsCompartment7ItemSemanticEditPolicy() {
+ super(ComrelElementTypes.CartesianQueuedUnit_3047);
+ }
+
+ /**
+ * @generated
+ */
+ protected Command getCreateCommand(CreateElementRequest req) {
+ if (ComrelElementTypes.SingleFeatureUnit_3008 == req.getElementType()) {
+ return getGEFWrapper(new SingleFeatureUnitCreateCommand(req));
+ }
+ if (ComrelElementTypes.MultiFeatureUnit_3012 == req.getElementType()) {
+ return getGEFWrapper(new MultiFeatureUnitCreateCommand(req));
+ }
+ if (ComrelElementTypes.SingleFilterUnit_3016 == req.getElementType()) {
+ return getGEFWrapper(new SingleFilterUnitCreateCommand(req));
+ }
+ if (ComrelElementTypes.MultiFilterUnit_3019 == req.getElementType()) {
+ return getGEFWrapper(new MultiFilterUnitCreateCommand(req));
+ }
+ return super.getCreateCommand(req);
+ }
+
+}
diff --git a/org.eclipse.emf.refactor.comrel.diagram/src/comrel/diagram/edit/policies/CartesianQueuedUnitCartesianQueuedUnitHelperUnitsCompartmentCanonicalEditPolicy.java b/org.eclipse.emf.refactor.comrel.diagram/src/comrel/diagram/edit/policies/CartesianQueuedUnitCartesianQueuedUnitHelperUnitsCompartmentCanonicalEditPolicy.java
new file mode 100644
index 0000000..17409fb
--- /dev/null
+++ b/org.eclipse.emf.refactor.comrel.diagram/src/comrel/diagram/edit/policies/CartesianQueuedUnitCartesianQueuedUnitHelperUnitsCompartmentCanonicalEditPolicy.java
@@ -0,0 +1,173 @@
+/*
+ *
+ */
+package comrel.diagram.edit.policies;
+
+import java.util.ArrayList;
+import java.util.Collection;
+import java.util.Iterator;
+import java.util.LinkedList;
+import java.util.List;
+
+import org.eclipse.core.runtime.IAdaptable;
+import org.eclipse.emf.ecore.EObject;
+import org.eclipse.emf.ecore.EStructuralFeature;
+import org.eclipse.gef.commands.Command;
+import org.eclipse.gmf.runtime.diagram.core.util.ViewUtil;
+import org.eclipse.gmf.runtime.diagram.ui.commands.DeferredLayoutCommand;
+import org.eclipse.gmf.runtime.diagram.ui.commands.ICommandProxy;
+import org.eclipse.gmf.runtime.diagram.ui.commands.SetViewMutabilityCommand;
+import org.eclipse.gmf.runtime.diagram.ui.editpolicies.CanonicalEditPolicy;
+import org.eclipse.gmf.runtime.diagram.ui.requests.CreateViewRequest;
+import org.eclipse.gmf.runtime.emf.core.util.EObjectAdapter;
+import org.eclipse.gmf.runtime.notation.Node;
+import org.eclipse.gmf.runtime.notation.View;
+
+import comrel.ComrelPackage;
+import comrel.diagram.edit.parts.MultiFeatureUnitEditPart;
+import comrel.diagram.edit.parts.MultiFilterUnitEditPart;
+import comrel.diagram.edit.parts.SingleFeatureUnitEditPart;
+import comrel.diagram.edit.parts.SingleFilterUnitEditPart;
+import comrel.diagram.part.ComrelDiagramUpdater;
+import comrel.diagram.part.ComrelNodeDescriptor;
+import comrel.diagram.part.ComrelVisualIDRegistry;
+
+/**
+ * @generated
+ */
+public class CartesianQueuedUnitCartesianQueuedUnitHelperUnitsCompartmentCanonicalEditPolicy
+ extends CanonicalEditPolicy {
+
+ /**
+ * @generated
+ */
+ protected EStructuralFeature getFeatureToSynchronize() {
+ return ComrelPackage.eINSTANCE.getCartesianQueuedUnit_HelperUnits();
+ }
+
+ /**
+ * @generated
+ */
+ @SuppressWarnings("rawtypes")
+ protected List getSemanticChildrenList() {
+ View viewObject = (View) getHost().getModel();
+ LinkedList<EObject> result = new LinkedList<EObject>();
+ List<ComrelNodeDescriptor> childDescriptors = ComrelDiagramUpdater
+ .getCartesianQueuedUnitCartesianQueuedUnitHelperUnitsCompartment_7001SemanticChildren(viewObject);
+ for (ComrelNodeDescriptor d : childDescriptors) {
+ result.add(d.getModelElement());
+ }
+ return result;
+ }
+
+ /**
+ * @generated
+ */
+ protected boolean isOrphaned(Collection<EObject> semanticChildren,
+ final View view) {
+ return isMyDiagramElement(view)
+ && !semanticChildren.contains(view.getElement());
+ }
+
+ /**
+ * @generated
+ */
+ private boolean isMyDiagramElement(View view) {
+ int visualID = ComrelVisualIDRegistry.getVisualID(view);
+ switch (visualID) {
+ case SingleFeatureUnitEditPart.VISUAL_ID:
+ case MultiFeatureUnitEditPart.VISUAL_ID:
+ case SingleFilterUnitEditPart.VISUAL_ID:
+ case MultiFilterUnitEditPart.VISUAL_ID:
+ return true;
+ }
+ return false;
+ }
+
+ /**
+ * @generated
+ */
+ protected void refreshSemantic() {
+ if (resolveSemanticElement() == null) {
+ return;
+ }
+ LinkedList<IAdaptable> createdViews = new LinkedList<IAdaptable>();
+ List<ComrelNodeDescriptor> childDescriptors = ComrelDiagramUpdater
+ .getCartesianQueuedUnitCartesianQueuedUnitHelperUnitsCompartment_7001SemanticChildren((View) getHost()
+ .getModel());
+ LinkedList<View> orphaned = new LinkedList<View>();
+ // we care to check only views we recognize as ours
+ LinkedList<View> knownViewChildren = new LinkedList<View>();
+ for (View v : getViewChildren()) {
+ if (isMyDiagramElement(v)) {
+ knownViewChildren.add(v);
+ }
+ }
+ // alternative to #cleanCanonicalSemanticChildren(getViewChildren(), semanticChildren)
+ //
+ // iteration happens over list of desired semantic elements, trying to find best matching View, while original CEP
+ // iterates views, potentially losing view (size/bounds) information - i.e. if there are few views to reference same EObject, only last one
+ // to answer isOrphaned == true will be used for the domain element representation, see #cleanCanonicalSemanticChildren()
+ for (Iterator<ComrelNodeDescriptor> descriptorsIterator = childDescriptors
+ .iterator(); descriptorsIterator.hasNext();) {
+ ComrelNodeDescriptor next = descriptorsIterator.next();
+ String hint = ComrelVisualIDRegistry.getType(next.getVisualID());
+ LinkedList<View> perfectMatch = new LinkedList<View>(); // both semanticElement and hint match that of NodeDescriptor
+ for (View childView : getViewChildren()) {
+ EObject semanticElement = childView.getElement();
+ if (next.getModelElement().equals(semanticElement)) {
+ if (hint.equals(childView.getType())) {
+ perfectMatch.add(childView);
+ // actually, can stop iteration over view children here, but
+ // may want to use not the first view but last one as a 'real' match (the way original CEP does
+ // with its trick with viewToSemanticMap inside #cleanCanonicalSemanticChildren
+ }
+ }
+ }
+ if (perfectMatch.size() > 0) {
+ descriptorsIterator.remove(); // precise match found no need to create anything for the NodeDescriptor
+ // use only one view (first or last?), keep rest as orphaned for further consideration
+ knownViewChildren.remove(perfectMatch.getFirst());
+ }
+ }
+ // those left in knownViewChildren are subject to removal - they are our diagram elements we didn't find match to,
+ // or those we have potential matches to, and thus need to be recreated, preserving size/location information.
+ orphaned.addAll(knownViewChildren);
+ //
+ ArrayList<CreateViewRequest.ViewDescriptor> viewDescriptors = new ArrayList<CreateViewRequest.ViewDescriptor>(
+ childDescriptors.size());
+ for (ComrelNodeDescriptor next : childDescriptors) {
+ String hint = ComrelVisualIDRegistry.getType(next.getVisualID());
+ IAdaptable elementAdapter = new CanonicalElementAdapter(
+ next.getModelElement(), hint);
+ CreateViewRequest.ViewDescriptor descriptor = new CreateViewRequest.ViewDescriptor(
+ elementAdapter, Node.class, hint, ViewUtil.APPEND, false,
+ host().getDiagramPreferencesHint());
+ viewDescriptors.add(descriptor);
+ }
+
+ boolean changed = deleteViews(orphaned.iterator());
+ //
+ CreateViewRequest request = getCreateViewRequest(viewDescriptors);
+ Command cmd = getCreateViewCommand(request);
+ if (cmd != null && cmd.canExecute()) {
+ SetViewMutabilityCommand.makeMutable(
+ new EObjectAdapter(host().getNotationView())).execute();
+ executeCommand(cmd);
+ @SuppressWarnings("unchecked")
+ List<IAdaptable> nl = (List<IAdaptable>) request.getNewObject();
+ createdViews.addAll(nl);
+ }
+ if (changed || createdViews.size() > 0) {
+ postProcessRefreshSemantic(createdViews);
+ }
+ if (createdViews.size() > 1) {
+ // perform a layout of the container
+ DeferredLayoutCommand layoutCmd = new DeferredLayoutCommand(host()
+ .getEditingDomain(), createdViews, host());
+ executeCommand(new ICommandProxy(layoutCmd));
+ }
+
+ makeViewsImmutable(createdViews);
+ }
+}
diff --git a/org.eclipse.emf.refactor.comrel.diagram/src/comrel/diagram/edit/policies/CartesianQueuedUnitCartesianQueuedUnitHelperUnitsCompartmentItemSemanticEditPolicy.java b/org.eclipse.emf.refactor.comrel.diagram/src/comrel/diagram/edit/policies/CartesianQueuedUnitCartesianQueuedUnitHelperUnitsCompartmentItemSemanticEditPolicy.java
new file mode 100644
index 0000000..1242152
--- /dev/null
+++ b/org.eclipse.emf.refactor.comrel.diagram/src/comrel/diagram/edit/policies/CartesianQueuedUnitCartesianQueuedUnitHelperUnitsCompartmentItemSemanticEditPolicy.java
@@ -0,0 +1,47 @@
+/*
+ *
+ */
+package comrel.diagram.edit.policies;
+
+import org.eclipse.gef.commands.Command;
+import org.eclipse.gmf.runtime.emf.type.core.requests.CreateElementRequest;
+
+import comrel.diagram.edit.commands.MultiFeatureUnitCreateCommand;
+import comrel.diagram.edit.commands.MultiFilterUnitCreateCommand;
+import comrel.diagram.edit.commands.SingleFeatureUnitCreateCommand;
+import comrel.diagram.edit.commands.SingleFilterUnitCreateCommand;
+import comrel.diagram.providers.ComrelElementTypes;
+
+/**
+ * @generated
+ */
+public class CartesianQueuedUnitCartesianQueuedUnitHelperUnitsCompartmentItemSemanticEditPolicy
+ extends ComrelBaseItemSemanticEditPolicy {
+
+ /**
+ * @generated
+ */
+ public CartesianQueuedUnitCartesianQueuedUnitHelperUnitsCompartmentItemSemanticEditPolicy() {
+ super(ComrelElementTypes.CartesianQueuedUnit_2002);
+ }
+
+ /**
+ * @generated
+ */
+ protected Command getCreateCommand(CreateElementRequest req) {
+ if (ComrelElementTypes.SingleFeatureUnit_3008 == req.getElementType()) {
+ return getGEFWrapper(new SingleFeatureUnitCreateCommand(req));
+ }
+ if (ComrelElementTypes.MultiFeatureUnit_3012 == req.getElementType()) {
+ return getGEFWrapper(new MultiFeatureUnitCreateCommand(req));
+ }
+ if (ComrelElementTypes.SingleFilterUnit_3016 == req.getElementType()) {
+ return getGEFWrapper(new SingleFilterUnitCreateCommand(req));
+ }
+ if (ComrelElementTypes.MultiFilterUnit_3019 == req.getElementType()) {
+ return getGEFWrapper(new MultiFilterUnitCreateCommand(req));
+ }
+ return super.getCreateCommand(req);
+ }
+
+}
diff --git a/org.eclipse.emf.refactor.comrel.diagram/src/comrel/diagram/edit/policies/CartesianQueuedUnitCartesianQueuedUnitRefactoringUnitCompartment2CanonicalEditPolicy.java b/org.eclipse.emf.refactor.comrel.diagram/src/comrel/diagram/edit/policies/CartesianQueuedUnitCartesianQueuedUnitRefactoringUnitCompartment2CanonicalEditPolicy.java
new file mode 100644
index 0000000..5b08273
--- /dev/null
+++ b/org.eclipse.emf.refactor.comrel.diagram/src/comrel/diagram/edit/policies/CartesianQueuedUnitCartesianQueuedUnitRefactoringUnitCompartment2CanonicalEditPolicy.java
@@ -0,0 +1,177 @@
+/*
+ *
+ */
+package comrel.diagram.edit.policies;
+
+import java.util.ArrayList;
+import java.util.Collection;
+import java.util.Iterator;
+import java.util.LinkedList;
+import java.util.List;
+
+import org.eclipse.core.runtime.IAdaptable;
+import org.eclipse.emf.ecore.EObject;
+import org.eclipse.emf.ecore.EStructuralFeature;
+import org.eclipse.gef.commands.Command;
+import org.eclipse.gmf.runtime.diagram.core.util.ViewUtil;
+import org.eclipse.gmf.runtime.diagram.ui.commands.DeferredLayoutCommand;
+import org.eclipse.gmf.runtime.diagram.ui.commands.ICommandProxy;
+import org.eclipse.gmf.runtime.diagram.ui.commands.SetViewMutabilityCommand;
+import org.eclipse.gmf.runtime.diagram.ui.editpolicies.CanonicalEditPolicy;
+import org.eclipse.gmf.runtime.diagram.ui.requests.CreateViewRequest;
+import org.eclipse.gmf.runtime.emf.core.util.EObjectAdapter;
+import org.eclipse.gmf.runtime.notation.Node;
+import org.eclipse.gmf.runtime.notation.View;
+
+import comrel.ComrelPackage;
+import comrel.diagram.edit.parts.AtomicUnit2EditPart;
+import comrel.diagram.edit.parts.CartesianQueuedUnit2EditPart;
+import comrel.diagram.edit.parts.ConditionalUnit2EditPart;
+import comrel.diagram.edit.parts.ParallelQueuedUnit2EditPart;
+import comrel.diagram.edit.parts.SequentialUnit2EditPart;
+import comrel.diagram.edit.parts.SingleQueuedUnit2EditPart;
+import comrel.diagram.part.ComrelDiagramUpdater;
+import comrel.diagram.part.ComrelNodeDescriptor;
+import comrel.diagram.part.ComrelVisualIDRegistry;
+
+/**
+ * @generated
+ */
+public class CartesianQueuedUnitCartesianQueuedUnitRefactoringUnitCompartment2CanonicalEditPolicy
+ extends CanonicalEditPolicy {
+
+ /**
+ * @generated
+ */
+ protected EStructuralFeature getFeatureToSynchronize() {
+ return ComrelPackage.eINSTANCE.getCartesianQueuedUnit_RefactoringUnit();
+ }
+
+ /**
+ * @generated
+ */
+ @SuppressWarnings("rawtypes")
+ protected List getSemanticChildrenList() {
+ View viewObject = (View) getHost().getModel();
+ LinkedList<EObject> result = new LinkedList<EObject>();
+ List<ComrelNodeDescriptor> childDescriptors = ComrelDiagramUpdater
+ .getCartesianQueuedUnitCartesianQueuedUnitRefactoringUnitCompartment_7004SemanticChildren(viewObject);
+ for (ComrelNodeDescriptor d : childDescriptors) {
+ result.add(d.getModelElement());
+ }
+ return result;
+ }
+
+ /**
+ * @generated
+ */
+ protected boolean isOrphaned(Collection<EObject> semanticChildren,
+ final View view) {
+ return isMyDiagramElement(view)
+ && !semanticChildren.contains(view.getElement());
+ }
+
+ /**
+ * @generated
+ */
+ private boolean isMyDiagramElement(View view) {
+ int visualID = ComrelVisualIDRegistry.getVisualID(view);
+ switch (visualID) {
+ case CartesianQueuedUnit2EditPart.VISUAL_ID:
+ case ParallelQueuedUnit2EditPart.VISUAL_ID:
+ case SingleQueuedUnit2EditPart.VISUAL_ID:
+ case SequentialUnit2EditPart.VISUAL_ID:
+ case ConditionalUnit2EditPart.VISUAL_ID:
+ case AtomicUnit2EditPart.VISUAL_ID:
+ return true;
+ }
+ return false;
+ }
+
+ /**
+ * @generated
+ */
+ protected void refreshSemantic() {
+ if (resolveSemanticElement() == null) {
+ return;
+ }
+ LinkedList<IAdaptable> createdViews = new LinkedList<IAdaptable>();
+ List<ComrelNodeDescriptor> childDescriptors = ComrelDiagramUpdater
+ .getCartesianQueuedUnitCartesianQueuedUnitRefactoringUnitCompartment_7004SemanticChildren((View) getHost()
+ .getModel());
+ LinkedList<View> orphaned = new LinkedList<View>();
+ // we care to check only views we recognize as ours
+ LinkedList<View> knownViewChildren = new LinkedList<View>();
+ for (View v : getViewChildren()) {
+ if (isMyDiagramElement(v)) {
+ knownViewChildren.add(v);
+ }
+ }
+ // alternative to #cleanCanonicalSemanticChildren(getViewChildren(), semanticChildren)
+ //
+ // iteration happens over list of desired semantic elements, trying to find best matching View, while original CEP
+ // iterates views, potentially losing view (size/bounds) information - i.e. if there are few views to reference same EObject, only last one
+ // to answer isOrphaned == true will be used for the domain element representation, see #cleanCanonicalSemanticChildren()
+ for (Iterator<ComrelNodeDescriptor> descriptorsIterator = childDescriptors
+ .iterator(); descriptorsIterator.hasNext();) {
+ ComrelNodeDescriptor next = descriptorsIterator.next();
+ String hint = ComrelVisualIDRegistry.getType(next.getVisualID());
+ LinkedList<View> perfectMatch = new LinkedList<View>(); // both semanticElement and hint match that of NodeDescriptor
+ for (View childView : getViewChildren()) {
+ EObject semanticElement = childView.getElement();
+ if (next.getModelElement().equals(semanticElement)) {
+ if (hint.equals(childView.getType())) {
+ perfectMatch.add(childView);
+ // actually, can stop iteration over view children here, but
+ // may want to use not the first view but last one as a 'real' match (the way original CEP does
+ // with its trick with viewToSemanticMap inside #cleanCanonicalSemanticChildren
+ }
+ }
+ }
+ if (perfectMatch.size() > 0) {
+ descriptorsIterator.remove(); // precise match found no need to create anything for the NodeDescriptor
+ // use only one view (first or last?), keep rest as orphaned for further consideration
+ knownViewChildren.remove(perfectMatch.getFirst());
+ }
+ }
+ // those left in knownViewChildren are subject to removal - they are our diagram elements we didn't find match to,
+ // or those we have potential matches to, and thus need to be recreated, preserving size/location information.
+ orphaned.addAll(knownViewChildren);
+ //
+ ArrayList<CreateViewRequest.ViewDescriptor> viewDescriptors = new ArrayList<CreateViewRequest.ViewDescriptor>(
+ childDescriptors.size());
+ for (ComrelNodeDescriptor next : childDescriptors) {
+ String hint = ComrelVisualIDRegistry.getType(next.getVisualID());
+ IAdaptable elementAdapter = new CanonicalElementAdapter(
+ next.getModelElement(), hint);
+ CreateViewRequest.ViewDescriptor descriptor = new CreateViewRequest.ViewDescriptor(
+ elementAdapter, Node.class, hint, ViewUtil.APPEND, false,
+ host().getDiagramPreferencesHint());
+ viewDescriptors.add(descriptor);
+ }
+
+ boolean changed = deleteViews(orphaned.iterator());
+ //
+ CreateViewRequest request = getCreateViewRequest(viewDescriptors);
+ Command cmd = getCreateViewCommand(request);
+ if (cmd != null && cmd.canExecute()) {
+ SetViewMutabilityCommand.makeMutable(
+ new EObjectAdapter(host().getNotationView())).execute();
+ executeCommand(cmd);
+ @SuppressWarnings("unchecked")
+ List<IAdaptable> nl = (List<IAdaptable>) request.getNewObject();
+ createdViews.addAll(nl);
+ }
+ if (changed || createdViews.size() > 0) {
+ postProcessRefreshSemantic(createdViews);
+ }
+ if (createdViews.size() > 1) {
+ // perform a layout of the container
+ DeferredLayoutCommand layoutCmd = new DeferredLayoutCommand(host()
+ .getEditingDomain(), createdViews, host());
+ executeCommand(new ICommandProxy(layoutCmd));
+ }
+
+ makeViewsImmutable(createdViews);
+ }
+}
diff --git a/org.eclipse.emf.refactor.comrel.diagram/src/comrel/diagram/edit/policies/CartesianQueuedUnitCartesianQueuedUnitRefactoringUnitCompartment2ItemSemanticEditPolicy.java b/org.eclipse.emf.refactor.comrel.diagram/src/comrel/diagram/edit/policies/CartesianQueuedUnitCartesianQueuedUnitRefactoringUnitCompartment2ItemSemanticEditPolicy.java
new file mode 100644
index 0000000..206c2d9
--- /dev/null
+++ b/org.eclipse.emf.refactor.comrel.diagram/src/comrel/diagram/edit/policies/CartesianQueuedUnitCartesianQueuedUnitRefactoringUnitCompartment2ItemSemanticEditPolicy.java
@@ -0,0 +1,55 @@
+/*
+ *
+ */
+package comrel.diagram.edit.policies;
+
+import org.eclipse.gef.commands.Command;
+import org.eclipse.gmf.runtime.emf.type.core.requests.CreateElementRequest;
+
+import comrel.diagram.edit.commands.AtomicUnit2CreateCommand;
+import comrel.diagram.edit.commands.CartesianQueuedUnit2CreateCommand;
+import comrel.diagram.edit.commands.ConditionalUnit2CreateCommand;
+import comrel.diagram.edit.commands.ParallelQueuedUnit2CreateCommand;
+import comrel.diagram.edit.commands.SequentialUnit2CreateCommand;
+import comrel.diagram.edit.commands.SingleQueuedUnit2CreateCommand;
+import comrel.diagram.providers.ComrelElementTypes;
+
+/**
+ * @generated
+ */
+public class CartesianQueuedUnitCartesianQueuedUnitRefactoringUnitCompartment2ItemSemanticEditPolicy
+ extends ComrelBaseItemSemanticEditPolicy {
+
+ /**
+ * @generated
+ */
+ public CartesianQueuedUnitCartesianQueuedUnitRefactoringUnitCompartment2ItemSemanticEditPolicy() {
+ super(ComrelElementTypes.CartesianQueuedUnit_3003);
+ }
+
+ /**
+ * @generated
+ */
+ protected Command getCreateCommand(CreateElementRequest req) {
+ if (ComrelElementTypes.CartesianQueuedUnit_3003 == req.getElementType()) {
+ return getGEFWrapper(new CartesianQueuedUnit2CreateCommand(req));
+ }
+ if (ComrelElementTypes.ParallelQueuedUnit_3004 == req.getElementType()) {
+ return getGEFWrapper(new ParallelQueuedUnit2CreateCommand(req));
+ }
+ if (ComrelElementTypes.SingleQueuedUnit_3022 == req.getElementType()) {
+ return getGEFWrapper(new SingleQueuedUnit2CreateCommand(req));
+ }
+ if (ComrelElementTypes.SequentialUnit_3026 == req.getElementType()) {
+ return getGEFWrapper(new SequentialUnit2CreateCommand(req));
+ }
+ if (ComrelElementTypes.ConditionalUnit_3030 == req.getElementType()) {
+ return getGEFWrapper(new ConditionalUnit2CreateCommand(req));
+ }
+ if (ComrelElementTypes.AtomicUnit_3034 == req.getElementType()) {
+ return getGEFWrapper(new AtomicUnit2CreateCommand(req));
+ }
+ return super.getCreateCommand(req);
+ }
+
+}
diff --git a/org.eclipse.emf.refactor.comrel.diagram/src/comrel/diagram/edit/policies/CartesianQueuedUnitCartesianQueuedUnitRefactoringUnitCompartment3CanonicalEditPolicy.java b/org.eclipse.emf.refactor.comrel.diagram/src/comrel/diagram/edit/policies/CartesianQueuedUnitCartesianQueuedUnitRefactoringUnitCompartment3CanonicalEditPolicy.java
new file mode 100644
index 0000000..252cbfd
--- /dev/null
+++ b/org.eclipse.emf.refactor.comrel.diagram/src/comrel/diagram/edit/policies/CartesianQueuedUnitCartesianQueuedUnitRefactoringUnitCompartment3CanonicalEditPolicy.java
@@ -0,0 +1,177 @@
+/*
+ *
+ */
+package comrel.diagram.edit.policies;
+
+import java.util.ArrayList;
+import java.util.Collection;
+import java.util.Iterator;
+import java.util.LinkedList;
+import java.util.List;
+
+import org.eclipse.core.runtime.IAdaptable;
+import org.eclipse.emf.ecore.EObject;
+import org.eclipse.emf.ecore.EStructuralFeature;
+import org.eclipse.gef.commands.Command;
+import org.eclipse.gmf.runtime.diagram.core.util.ViewUtil;
+import org.eclipse.gmf.runtime.diagram.ui.commands.DeferredLayoutCommand;
+import org.eclipse.gmf.runtime.diagram.ui.commands.ICommandProxy;
+import org.eclipse.gmf.runtime.diagram.ui.commands.SetViewMutabilityCommand;
+import org.eclipse.gmf.runtime.diagram.ui.editpolicies.CanonicalEditPolicy;
+import org.eclipse.gmf.runtime.diagram.ui.requests.CreateViewRequest;
+import org.eclipse.gmf.runtime.emf.core.util.EObjectAdapter;
+import org.eclipse.gmf.runtime.notation.Node;
+import org.eclipse.gmf.runtime.notation.View;
+
+import comrel.ComrelPackage;
+import comrel.diagram.edit.parts.AtomicUnit2EditPart;
+import comrel.diagram.edit.parts.CartesianQueuedUnit2EditPart;
+import comrel.diagram.edit.parts.ConditionalUnit2EditPart;
+import comrel.diagram.edit.parts.ParallelQueuedUnit2EditPart;
+import comrel.diagram.edit.parts.SequentialUnit2EditPart;
+import comrel.diagram.edit.parts.SingleQueuedUnit2EditPart;
+import comrel.diagram.part.ComrelDiagramUpdater;
+import comrel.diagram.part.ComrelNodeDescriptor;
+import comrel.diagram.part.ComrelVisualIDRegistry;
+
+/**
+ * @generated
+ */
+public class CartesianQueuedUnitCartesianQueuedUnitRefactoringUnitCompartment3CanonicalEditPolicy
+ extends CanonicalEditPolicy {
+
+ /**
+ * @generated
+ */
+ protected EStructuralFeature getFeatureToSynchronize() {
+ return ComrelPackage.eINSTANCE.getCartesianQueuedUnit_RefactoringUnit();
+ }
+
+ /**
+ * @generated
+ */
+ @SuppressWarnings("rawtypes")
+ protected List getSemanticChildrenList() {
+ View viewObject = (View) getHost().getModel();
+ LinkedList<EObject> result = new LinkedList<EObject>();
+ List<ComrelNodeDescriptor> childDescriptors = ComrelDiagramUpdater
+ .getCartesianQueuedUnitCartesianQueuedUnitRefactoringUnitCompartment_7008SemanticChildren(viewObject);
+ for (ComrelNodeDescriptor d : childDescriptors) {
+ result.add(d.getModelElement());
+ }
+ return result;
+ }
+
+ /**
+ * @generated
+ */
+ protected boolean isOrphaned(Collection<EObject> semanticChildren,
+ final View view) {
+ return isMyDiagramElement(view)
+ && !semanticChildren.contains(view.getElement());
+ }
+
+ /**
+ * @generated
+ */
+ private boolean isMyDiagramElement(View view) {
+ int visualID = ComrelVisualIDRegistry.getVisualID(view);
+ switch (visualID) {
+ case CartesianQueuedUnit2EditPart.VISUAL_ID:
+ case ParallelQueuedUnit2EditPart.VISUAL_ID:
+ case SingleQueuedUnit2EditPart.VISUAL_ID:
+ case SequentialUnit2EditPart.VISUAL_ID:
+ case ConditionalUnit2EditPart.VISUAL_ID:
+ case AtomicUnit2EditPart.VISUAL_ID:
+ return true;
+ }
+ return false;
+ }
+
+ /**
+ * @generated
+ */
+ protected void refreshSemantic() {
+ if (resolveSemanticElement() == null) {
+ return;
+ }
+ LinkedList<IAdaptable> createdViews = new LinkedList<IAdaptable>();
+ List<ComrelNodeDescriptor> childDescriptors = ComrelDiagramUpdater
+ .getCartesianQueuedUnitCartesianQueuedUnitRefactoringUnitCompartment_7008SemanticChildren((View) getHost()
+ .getModel());
+ LinkedList<View> orphaned = new LinkedList<View>();
+ // we care to check only views we recognize as ours
+ LinkedList<View> knownViewChildren = new LinkedList<View>();
+ for (View v : getViewChildren()) {
+ if (isMyDiagramElement(v)) {
+ knownViewChildren.add(v);
+ }
+ }
+ // alternative to #cleanCanonicalSemanticChildren(getViewChildren(), semanticChildren)
+ //
+ // iteration happens over list of desired semantic elements, trying to find best matching View, while original CEP
+ // iterates views, potentially losing view (size/bounds) information - i.e. if there are few views to reference same EObject, only last one
+ // to answer isOrphaned == true will be used for the domain element representation, see #cleanCanonicalSemanticChildren()
+ for (Iterator<ComrelNodeDescriptor> descriptorsIterator = childDescriptors
+ .iterator(); descriptorsIterator.hasNext();) {
+ ComrelNodeDescriptor next = descriptorsIterator.next();
+ String hint = ComrelVisualIDRegistry.getType(next.getVisualID());
+ LinkedList<View> perfectMatch = new LinkedList<View>(); // both semanticElement and hint match that of NodeDescriptor
+ for (View childView : getViewChildren()) {
+ EObject semanticElement = childView.getElement();
+ if (next.getModelElement().equals(semanticElement)) {
+ if (hint.equals(childView.getType())) {
+ perfectMatch.add(childView);
+ // actually, can stop iteration over view children here, but
+ // may want to use not the first view but last one as a 'real' match (the way original CEP does
+ // with its trick with viewToSemanticMap inside #cleanCanonicalSemanticChildren
+ }
+ }
+ }
+ if (perfectMatch.size() > 0) {
+ descriptorsIterator.remove(); // precise match found no need to create anything for the NodeDescriptor
+ // use only one view (first or last?), keep rest as orphaned for further consideration
+ knownViewChildren.remove(perfectMatch.getFirst());
+ }
+ }
+ // those left in knownViewChildren are subject to removal - they are our diagram elements we didn't find match to,
+ // or those we have potential matches to, and thus need to be recreated, preserving size/location information.
+ orphaned.addAll(knownViewChildren);
+ //
+ ArrayList<CreateViewRequest.ViewDescriptor> viewDescriptors = new ArrayList<CreateViewRequest.ViewDescriptor>(
+ childDescriptors.size());
+ for (ComrelNodeDescriptor next : childDescriptors) {
+ String hint = ComrelVisualIDRegistry.getType(next.getVisualID());
+ IAdaptable elementAdapter = new CanonicalElementAdapter(
+ next.getModelElement(), hint);
+ CreateViewRequest.ViewDescriptor descriptor = new CreateViewRequest.ViewDescriptor(
+ elementAdapter, Node.class, hint, ViewUtil.APPEND, false,
+ host().getDiagramPreferencesHint());
+ viewDescriptors.add(descriptor);
+ }
+
+ boolean changed = deleteViews(orphaned.iterator());
+ //
+ CreateViewRequest request = getCreateViewRequest(viewDescriptors);
+ Command cmd = getCreateViewCommand(request);
+ if (cmd != null && cmd.canExecute()) {
+ SetViewMutabilityCommand.makeMutable(
+ new EObjectAdapter(host().getNotationView())).execute();
+ executeCommand(cmd);
+ @SuppressWarnings("unchecked")
+ List<IAdaptable> nl = (List<IAdaptable>) request.getNewObject();
+ createdViews.addAll(nl);
+ }
+ if (changed || createdViews.size() > 0) {
+ postProcessRefreshSemantic(createdViews);
+ }
+ if (createdViews.size() > 1) {
+ // perform a layout of the container
+ DeferredLayoutCommand layoutCmd = new DeferredLayoutCommand(host()
+ .getEditingDomain(), createdViews, host());
+ executeCommand(new ICommandProxy(layoutCmd));
+ }
+
+ makeViewsImmutable(createdViews);
+ }
+}
diff --git a/org.eclipse.emf.refactor.comrel.diagram/src/comrel/diagram/edit/policies/CartesianQueuedUnitCartesianQueuedUnitRefactoringUnitCompartment3ItemSemanticEditPolicy.java b/org.eclipse.emf.refactor.comrel.diagram/src/comrel/diagram/edit/policies/CartesianQueuedUnitCartesianQueuedUnitRefactoringUnitCompartment3ItemSemanticEditPolicy.java
new file mode 100644
index 0000000..ff08a3b
--- /dev/null
+++ b/org.eclipse.emf.refactor.comrel.diagram/src/comrel/diagram/edit/policies/CartesianQueuedUnitCartesianQueuedUnitRefactoringUnitCompartment3ItemSemanticEditPolicy.java
@@ -0,0 +1,55 @@
+/*
+ *
+ */
+package comrel.diagram.edit.policies;
+
+import org.eclipse.gef.commands.Command;
+import org.eclipse.gmf.runtime.emf.type.core.requests.CreateElementRequest;
+
+import comrel.diagram.edit.commands.AtomicUnit2CreateCommand;
+import comrel.diagram.edit.commands.CartesianQueuedUnit2CreateCommand;
+import comrel.diagram.edit.commands.ConditionalUnit2CreateCommand;
+import comrel.diagram.edit.commands.ParallelQueuedUnit2CreateCommand;
+import comrel.diagram.edit.commands.SequentialUnit2CreateCommand;
+import comrel.diagram.edit.commands.SingleQueuedUnit2CreateCommand;
+import comrel.diagram.providers.ComrelElementTypes;
+
+/**
+ * @generated
+ */
+public class CartesianQueuedUnitCartesianQueuedUnitRefactoringUnitCompartment3ItemSemanticEditPolicy
+ extends ComrelBaseItemSemanticEditPolicy {
+
+ /**
+ * @generated
+ */
+ public CartesianQueuedUnitCartesianQueuedUnitRefactoringUnitCompartment3ItemSemanticEditPolicy() {
+ super(ComrelElementTypes.CartesianQueuedUnit_3007);
+ }
+
+ /**
+ * @generated
+ */
+ protected Command getCreateCommand(CreateElementRequest req) {
+ if (ComrelElementTypes.CartesianQueuedUnit_3003 == req.getElementType()) {
+ return getGEFWrapper(new CartesianQueuedUnit2CreateCommand(req));
+ }
+ if (ComrelElementTypes.ParallelQueuedUnit_3004 == req.getElementType()) {
+ return getGEFWrapper(new ParallelQueuedUnit2CreateCommand(req));
+ }
+ if (ComrelElementTypes.SingleQueuedUnit_3022 == req.getElementType()) {
+ return getGEFWrapper(new SingleQueuedUnit2CreateCommand(req));
+ }
+ if (ComrelElementTypes.SequentialUnit_3026 == req.getElementType()) {
+ return getGEFWrapper(new SequentialUnit2CreateCommand(req));
+ }
+ if (ComrelElementTypes.ConditionalUnit_3030 == req.getElementType()) {
+ return getGEFWrapper(new ConditionalUnit2CreateCommand(req));
+ }
+ if (ComrelElementTypes.AtomicUnit_3034 == req.getElementType()) {
+ return getGEFWrapper(new AtomicUnit2CreateCommand(req));
+ }
+ return super.getCreateCommand(req);
+ }
+
+}
diff --git a/org.eclipse.emf.refactor.comrel.diagram/src/comrel/diagram/edit/policies/CartesianQueuedUnitCartesianQueuedUnitRefactoringUnitCompartment4CanonicalEditPolicy.java b/org.eclipse.emf.refactor.comrel.diagram/src/comrel/diagram/edit/policies/CartesianQueuedUnitCartesianQueuedUnitRefactoringUnitCompartment4CanonicalEditPolicy.java
new file mode 100644
index 0000000..5c3a9ef
--- /dev/null
+++ b/org.eclipse.emf.refactor.comrel.diagram/src/comrel/diagram/edit/policies/CartesianQueuedUnitCartesianQueuedUnitRefactoringUnitCompartment4CanonicalEditPolicy.java
@@ -0,0 +1,177 @@
+/*
+ *
+ */
+package comrel.diagram.edit.policies;
+
+import java.util.ArrayList;
+import java.util.Collection;
+import java.util.Iterator;
+import java.util.LinkedList;
+import java.util.List;
+
+import org.eclipse.core.runtime.IAdaptable;
+import org.eclipse.emf.ecore.EObject;
+import org.eclipse.emf.ecore.EStructuralFeature;
+import org.eclipse.gef.commands.Command;
+import org.eclipse.gmf.runtime.diagram.core.util.ViewUtil;
+import org.eclipse.gmf.runtime.diagram.ui.commands.DeferredLayoutCommand;
+import org.eclipse.gmf.runtime.diagram.ui.commands.ICommandProxy;
+import org.eclipse.gmf.runtime.diagram.ui.commands.SetViewMutabilityCommand;
+import org.eclipse.gmf.runtime.diagram.ui.editpolicies.CanonicalEditPolicy;
+import org.eclipse.gmf.runtime.diagram.ui.requests.CreateViewRequest;
+import org.eclipse.gmf.runtime.emf.core.util.EObjectAdapter;
+import org.eclipse.gmf.runtime.notation.Node;
+import org.eclipse.gmf.runtime.notation.View;
+
+import comrel.ComrelPackage;
+import comrel.diagram.edit.parts.AtomicUnit2EditPart;
+import comrel.diagram.edit.parts.CartesianQueuedUnit2EditPart;
+import comrel.diagram.edit.parts.ConditionalUnit2EditPart;
+import comrel.diagram.edit.parts.ParallelQueuedUnit2EditPart;
+import comrel.diagram.edit.parts.SequentialUnit2EditPart;
+import comrel.diagram.edit.parts.SingleQueuedUnit2EditPart;
+import comrel.diagram.part.ComrelDiagramUpdater;
+import comrel.diagram.part.ComrelNodeDescriptor;
+import comrel.diagram.part.ComrelVisualIDRegistry;
+
+/**
+ * @generated
+ */
+public class CartesianQueuedUnitCartesianQueuedUnitRefactoringUnitCompartment4CanonicalEditPolicy
+ extends CanonicalEditPolicy {
+
+ /**
+ * @generated
+ */
+ protected EStructuralFeature getFeatureToSynchronize() {
+ return ComrelPackage.eINSTANCE.getCartesianQueuedUnit_RefactoringUnit();
+ }
+
+ /**
+ * @generated
+ */
+ @SuppressWarnings("rawtypes")
+ protected List getSemanticChildrenList() {
+ View viewObject = (View) getHost().getModel();
+ LinkedList<EObject> result = new LinkedList<EObject>();
+ List<ComrelNodeDescriptor> childDescriptors = ComrelDiagramUpdater
+ .getCartesianQueuedUnitCartesianQueuedUnitRefactoringUnitCompartment_7012SemanticChildren(viewObject);
+ for (ComrelNodeDescriptor d : childDescriptors) {
+ result.add(d.getModelElement());
+ }
+ return result;
+ }
+
+ /**
+ * @generated
+ */
+ protected boolean isOrphaned(Collection<EObject> semanticChildren,
+ final View view) {
+ return isMyDiagramElement(view)
+ && !semanticChildren.contains(view.getElement());
+ }
+
+ /**
+ * @generated
+ */
+ private boolean isMyDiagramElement(View view) {
+ int visualID = ComrelVisualIDRegistry.getVisualID(view);
+ switch (visualID) {
+ case CartesianQueuedUnit2EditPart.VISUAL_ID:
+ case ParallelQueuedUnit2EditPart.VISUAL_ID:
+ case SingleQueuedUnit2EditPart.VISUAL_ID:
+ case SequentialUnit2EditPart.VISUAL_ID:
+ case ConditionalUnit2EditPart.VISUAL_ID:
+ case AtomicUnit2EditPart.VISUAL_ID:
+ return true;
+ }
+ return false;
+ }
+
+ /**
+ * @generated
+ */
+ protected void refreshSemantic() {
+ if (resolveSemanticElement() == null) {
+ return;
+ }
+ LinkedList<IAdaptable> createdViews = new LinkedList<IAdaptable>();
+ List<ComrelNodeDescriptor> childDescriptors = ComrelDiagramUpdater
+ .getCartesianQueuedUnitCartesianQueuedUnitRefactoringUnitCompartment_7012SemanticChildren((View) getHost()
+ .getModel());
+ LinkedList<View> orphaned = new LinkedList<View>();
+ // we care to check only views we recognize as ours
+ LinkedList<View> knownViewChildren = new LinkedList<View>();
+ for (View v : getViewChildren()) {
+ if (isMyDiagramElement(v)) {
+ knownViewChildren.add(v);
+ }
+ }
+ // alternative to #cleanCanonicalSemanticChildren(getViewChildren(), semanticChildren)
+ //
+ // iteration happens over list of desired semantic elements, trying to find best matching View, while original CEP
+ // iterates views, potentially losing view (size/bounds) information - i.e. if there are few views to reference same EObject, only last one
+ // to answer isOrphaned == true will be used for the domain element representation, see #cleanCanonicalSemanticChildren()
+ for (Iterator<ComrelNodeDescriptor> descriptorsIterator = childDescriptors
+ .iterator(); descriptorsIterator.hasNext();) {
+ ComrelNodeDescriptor next = descriptorsIterator.next();
+ String hint = ComrelVisualIDRegistry.getType(next.getVisualID());
+ LinkedList<View> perfectMatch = new LinkedList<View>(); // both semanticElement and hint match that of NodeDescriptor
+ for (View childView : getViewChildren()) {
+ EObject semanticElement = childView.getElement();
+ if (next.getModelElement().equals(semanticElement)) {
+ if (hint.equals(childView.getType())) {
+ perfectMatch.add(childView);
+ // actually, can stop iteration over view children here, but
+ // may want to use not the first view but last one as a 'real' match (the way original CEP does
+ // with its trick with viewToSemanticMap inside #cleanCanonicalSemanticChildren
+ }
+ }
+ }
+ if (perfectMatch.size() > 0) {
+ descriptorsIterator.remove(); // precise match found no need to create anything for the NodeDescriptor
+ // use only one view (first or last?), keep rest as orphaned for further consideration
+ knownViewChildren.remove(perfectMatch.getFirst());
+ }
+ }
+ // those left in knownViewChildren are subject to removal - they are our diagram elements we didn't find match to,
+ // or those we have potential matches to, and thus need to be recreated, preserving size/location information.
+ orphaned.addAll(knownViewChildren);
+ //
+ ArrayList<CreateViewRequest.ViewDescriptor> viewDescriptors = new ArrayList<CreateViewRequest.ViewDescriptor>(
+ childDescriptors.size());
+ for (ComrelNodeDescriptor next : childDescriptors) {
+ String hint = ComrelVisualIDRegistry.getType(next.getVisualID());
+ IAdaptable elementAdapter = new CanonicalElementAdapter(
+ next.getModelElement(), hint);
+ CreateViewRequest.ViewDescriptor descriptor = new CreateViewRequest.ViewDescriptor(
+ elementAdapter, Node.class, hint, ViewUtil.APPEND, false,
+ host().getDiagramPreferencesHint());
+ viewDescriptors.add(descriptor);
+ }
+
+ boolean changed = deleteViews(orphaned.iterator());
+ //
+ CreateViewRequest request = getCreateViewRequest(viewDescriptors);
+ Command cmd = getCreateViewCommand(request);
+ if (cmd != null && cmd.canExecute()) {
+ SetViewMutabilityCommand.makeMutable(
+ new EObjectAdapter(host().getNotationView())).execute();
+ executeCommand(cmd);
+ @SuppressWarnings("unchecked")
+ List<IAdaptable> nl = (List<IAdaptable>) request.getNewObject();
+ createdViews.addAll(nl);
+ }
+ if (changed || createdViews.size() > 0) {
+ postProcessRefreshSemantic(createdViews);
+ }
+ if (createdViews.size() > 1) {
+ // perform a layout of the container
+ DeferredLayoutCommand layoutCmd = new DeferredLayoutCommand(host()
+ .getEditingDomain(), createdViews, host());
+ executeCommand(new ICommandProxy(layoutCmd));
+ }
+
+ makeViewsImmutable(createdViews);
+ }
+}
diff --git a/org.eclipse.emf.refactor.comrel.diagram/src/comrel/diagram/edit/policies/CartesianQueuedUnitCartesianQueuedUnitRefactoringUnitCompartment4ItemSemanticEditPolicy.java b/org.eclipse.emf.refactor.comrel.diagram/src/comrel/diagram/edit/policies/CartesianQueuedUnitCartesianQueuedUnitRefactoringUnitCompartment4ItemSemanticEditPolicy.java
new file mode 100644
index 0000000..7f1e506
--- /dev/null
+++ b/org.eclipse.emf.refactor.comrel.diagram/src/comrel/diagram/edit/policies/CartesianQueuedUnitCartesianQueuedUnitRefactoringUnitCompartment4ItemSemanticEditPolicy.java
@@ -0,0 +1,55 @@
+/*
+ *
+ */
+package comrel.diagram.edit.policies;
+
+import org.eclipse.gef.commands.Command;
+import org.eclipse.gmf.runtime.emf.type.core.requests.CreateElementRequest;
+
+import comrel.diagram.edit.commands.AtomicUnit2CreateCommand;
+import comrel.diagram.edit.commands.CartesianQueuedUnit2CreateCommand;
+import comrel.diagram.edit.commands.ConditionalUnit2CreateCommand;
+import comrel.diagram.edit.commands.ParallelQueuedUnit2CreateCommand;
+import comrel.diagram.edit.commands.SequentialUnit2CreateCommand;
+import comrel.diagram.edit.commands.SingleQueuedUnit2CreateCommand;
+import comrel.diagram.providers.ComrelElementTypes;
+
+/**
+ * @generated
+ */
+public class CartesianQueuedUnitCartesianQueuedUnitRefactoringUnitCompartment4ItemSemanticEditPolicy
+ extends ComrelBaseItemSemanticEditPolicy {
+
+ /**
+ * @generated
+ */
+ public CartesianQueuedUnitCartesianQueuedUnitRefactoringUnitCompartment4ItemSemanticEditPolicy() {
+ super(ComrelElementTypes.CartesianQueuedUnit_3025);
+ }
+
+ /**
+ * @generated
+ */
+ protected Command getCreateCommand(CreateElementRequest req) {
+ if (ComrelElementTypes.CartesianQueuedUnit_3003 == req.getElementType()) {
+ return getGEFWrapper(new CartesianQueuedUnit2CreateCommand(req));
+ }
+ if (ComrelElementTypes.ParallelQueuedUnit_3004 == req.getElementType()) {
+ return getGEFWrapper(new ParallelQueuedUnit2CreateCommand(req));
+ }
+ if (ComrelElementTypes.SingleQueuedUnit_3022 == req.getElementType()) {
+ return getGEFWrapper(new SingleQueuedUnit2CreateCommand(req));
+ }
+ if (ComrelElementTypes.SequentialUnit_3026 == req.getElementType()) {
+ return getGEFWrapper(new SequentialUnit2CreateCommand(req));
+ }
+ if (ComrelElementTypes.ConditionalUnit_3030 == req.getElementType()) {
+ return getGEFWrapper(new ConditionalUnit2CreateCommand(req));
+ }
+ if (ComrelElementTypes.AtomicUnit_3034 == req.getElementType()) {
+ return getGEFWrapper(new AtomicUnit2CreateCommand(req));
+ }
+ return super.getCreateCommand(req);
+ }
+
+}
diff --git a/org.eclipse.emf.refactor.comrel.diagram/src/comrel/diagram/edit/policies/CartesianQueuedUnitCartesianQueuedUnitRefactoringUnitCompartment5CanonicalEditPolicy.java b/org.eclipse.emf.refactor.comrel.diagram/src/comrel/diagram/edit/policies/CartesianQueuedUnitCartesianQueuedUnitRefactoringUnitCompartment5CanonicalEditPolicy.java
new file mode 100644
index 0000000..78cf230
--- /dev/null
+++ b/org.eclipse.emf.refactor.comrel.diagram/src/comrel/diagram/edit/policies/CartesianQueuedUnitCartesianQueuedUnitRefactoringUnitCompartment5CanonicalEditPolicy.java
@@ -0,0 +1,177 @@
+/*
+ *
+ */
+package comrel.diagram.edit.policies;
+
+import java.util.ArrayList;
+import java.util.Collection;
+import java.util.Iterator;
+import java.util.LinkedList;
+import java.util.List;
+
+import org.eclipse.core.runtime.IAdaptable;
+import org.eclipse.emf.ecore.EObject;
+import org.eclipse.emf.ecore.EStructuralFeature;
+import org.eclipse.gef.commands.Command;
+import org.eclipse.gmf.runtime.diagram.core.util.ViewUtil;
+import org.eclipse.gmf.runtime.diagram.ui.commands.DeferredLayoutCommand;
+import org.eclipse.gmf.runtime.diagram.ui.commands.ICommandProxy;
+import org.eclipse.gmf.runtime.diagram.ui.commands.SetViewMutabilityCommand;
+import org.eclipse.gmf.runtime.diagram.ui.editpolicies.CanonicalEditPolicy;
+import org.eclipse.gmf.runtime.diagram.ui.requests.CreateViewRequest;
+import org.eclipse.gmf.runtime.emf.core.util.EObjectAdapter;
+import org.eclipse.gmf.runtime.notation.Node;
+import org.eclipse.gmf.runtime.notation.View;
+
+import comrel.ComrelPackage;
+import comrel.diagram.edit.parts.AtomicUnit2EditPart;
+import comrel.diagram.edit.parts.CartesianQueuedUnit2EditPart;
+import comrel.diagram.edit.parts.ConditionalUnit2EditPart;
+import comrel.diagram.edit.parts.ParallelQueuedUnit2EditPart;
+import comrel.diagram.edit.parts.SequentialUnit2EditPart;
+import comrel.diagram.edit.parts.SingleQueuedUnit2EditPart;
+import comrel.diagram.part.ComrelDiagramUpdater;
+import comrel.diagram.part.ComrelNodeDescriptor;
+import comrel.diagram.part.ComrelVisualIDRegistry;
+
+/**
+ * @generated
+ */
+public class CartesianQueuedUnitCartesianQueuedUnitRefactoringUnitCompartment5CanonicalEditPolicy
+ extends CanonicalEditPolicy {
+
+ /**
+ * @generated
+ */
+ protected EStructuralFeature getFeatureToSynchronize() {
+ return ComrelPackage.eINSTANCE.getCartesianQueuedUnit_RefactoringUnit();
+ }
+
+ /**
+ * @generated
+ */
+ @SuppressWarnings("rawtypes")
+ protected List getSemanticChildrenList() {
+ View viewObject = (View) getHost().getModel();
+ LinkedList<EObject> result = new LinkedList<EObject>();
+ List<ComrelNodeDescriptor> childDescriptors = ComrelDiagramUpdater
+ .getCartesianQueuedUnitCartesianQueuedUnitRefactoringUnitCompartment_7016SemanticChildren(viewObject);
+ for (ComrelNodeDescriptor d : childDescriptors) {
+ result.add(d.getModelElement());
+ }
+ return result;
+ }
+
+ /**
+ * @generated
+ */
+ protected boolean isOrphaned(Collection<EObject> semanticChildren,
+ final View view) {
+ return isMyDiagramElement(view)
+ && !semanticChildren.contains(view.getElement());
+ }
+
+ /**
+ * @generated
+ */
+ private boolean isMyDiagramElement(View view) {
+ int visualID = ComrelVisualIDRegistry.getVisualID(view);
+ switch (visualID) {
+ case CartesianQueuedUnit2EditPart.VISUAL_ID:
+ case ParallelQueuedUnit2EditPart.VISUAL_ID:
+ case SingleQueuedUnit2EditPart.VISUAL_ID:
+ case SequentialUnit2EditPart.VISUAL_ID:
+ case ConditionalUnit2EditPart.VISUAL_ID:
+ case AtomicUnit2EditPart.VISUAL_ID:
+ return true;
+ }
+ return false;
+ }
+
+ /**
+ * @generated
+ */
+ protected void refreshSemantic() {
+ if (resolveSemanticElement() == null) {
+ return;
+ }
+ LinkedList<IAdaptable> createdViews = new LinkedList<IAdaptable>();
+ List<ComrelNodeDescriptor> childDescriptors = ComrelDiagramUpdater
+ .getCartesianQueuedUnitCartesianQueuedUnitRefactoringUnitCompartment_7016SemanticChildren((View) getHost()
+ .getModel());
+ LinkedList<View> orphaned = new LinkedList<View>();
+ // we care to check only views we recognize as ours
+ LinkedList<View> knownViewChildren = new LinkedList<View>();
+ for (View v : getViewChildren()) {
+ if (isMyDiagramElement(v)) {
+ knownViewChildren.add(v);
+ }
+ }
+ // alternative to #cleanCanonicalSemanticChildren(getViewChildren(), semanticChildren)
+ //
+ // iteration happens over list of desired semantic elements, trying to find best matching View, while original CEP
+ // iterates views, potentially losing view (size/bounds) information - i.e. if there are few views to reference same EObject, only last one
+ // to answer isOrphaned == true will be used for the domain element representation, see #cleanCanonicalSemanticChildren()
+ for (Iterator<ComrelNodeDescriptor> descriptorsIterator = childDescriptors
+ .iterator(); descriptorsIterator.hasNext();) {
+ ComrelNodeDescriptor next = descriptorsIterator.next();
+ String hint = ComrelVisualIDRegistry.getType(next.getVisualID());
+ LinkedList<View> perfectMatch = new LinkedList<View>(); // both semanticElement and hint match that of NodeDescriptor
+ for (View childView : getViewChildren()) {
+ EObject semanticElement = childView.getElement();
+ if (next.getModelElement().equals(semanticElement)) {
+ if (hint.equals(childView.getType())) {
+ perfectMatch.add(childView);
+ // actually, can stop iteration over view children here, but
+ // may want to use not the first view but last one as a 'real' match (the way original CEP does
+ // with its trick with viewToSemanticMap inside #cleanCanonicalSemanticChildren
+ }
+ }
+ }
+ if (perfectMatch.size() > 0) {
+ descriptorsIterator.remove(); // precise match found no need to create anything for the NodeDescriptor
+ // use only one view (first or last?), keep rest as orphaned for further consideration
+ knownViewChildren.remove(perfectMatch.getFirst());
+ }
+ }
+ // those left in knownViewChildren are subject to removal - they are our diagram elements we didn't find match to,
+ // or those we have potential matches to, and thus need to be recreated, preserving size/location information.
+ orphaned.addAll(knownViewChildren);
+ //
+ ArrayList<CreateViewRequest.ViewDescriptor> viewDescriptors = new ArrayList<CreateViewRequest.ViewDescriptor>(
+ childDescriptors.size());
+ for (ComrelNodeDescriptor next : childDescriptors) {
+ String hint = ComrelVisualIDRegistry.getType(next.getVisualID());
+ IAdaptable elementAdapter = new CanonicalElementAdapter(
+ next.getModelElement(), hint);
+ CreateViewRequest.ViewDescriptor descriptor = new CreateViewRequest.ViewDescriptor(
+ elementAdapter, Node.class, hint, ViewUtil.APPEND, false,
+ host().getDiagramPreferencesHint());
+ viewDescriptors.add(descriptor);
+ }
+
+ boolean changed = deleteViews(orphaned.iterator());
+ //
+ CreateViewRequest request = getCreateViewRequest(viewDescriptors);
+ Command cmd = getCreateViewCommand(request);
+ if (cmd != null && cmd.canExecute()) {
+ SetViewMutabilityCommand.makeMutable(
+ new EObjectAdapter(host().getNotationView())).execute();
+ executeCommand(cmd);
+ @SuppressWarnings("unchecked")
+ List<IAdaptable> nl = (List<IAdaptable>) request.getNewObject();
+ createdViews.addAll(nl);
+ }
+ if (changed || createdViews.size() > 0) {
+ postProcessRefreshSemantic(createdViews);
+ }
+ if (createdViews.size() > 1) {
+ // perform a layout of the container
+ DeferredLayoutCommand layoutCmd = new DeferredLayoutCommand(host()
+ .getEditingDomain(), createdViews, host());
+ executeCommand(new ICommandProxy(layoutCmd));
+ }
+
+ makeViewsImmutable(createdViews);
+ }
+}
diff --git a/org.eclipse.emf.refactor.comrel.diagram/src/comrel/diagram/edit/policies/CartesianQueuedUnitCartesianQueuedUnitRefactoringUnitCompartment5ItemSemanticEditPolicy.java b/org.eclipse.emf.refactor.comrel.diagram/src/comrel/diagram/edit/policies/CartesianQueuedUnitCartesianQueuedUnitRefactoringUnitCompartment5ItemSemanticEditPolicy.java
new file mode 100644
index 0000000..44ba2ab
--- /dev/null
+++ b/org.eclipse.emf.refactor.comrel.diagram/src/comrel/diagram/edit/policies/CartesianQueuedUnitCartesianQueuedUnitRefactoringUnitCompartment5ItemSemanticEditPolicy.java
@@ -0,0 +1,55 @@
+/*
+ *
+ */
+package comrel.diagram.edit.policies;
+
+import org.eclipse.gef.commands.Command;
+import org.eclipse.gmf.runtime.emf.type.core.requests.CreateElementRequest;
+
+import comrel.diagram.edit.commands.AtomicUnit2CreateCommand;
+import comrel.diagram.edit.commands.CartesianQueuedUnit2CreateCommand;
+import comrel.diagram.edit.commands.ConditionalUnit2CreateCommand;
+import comrel.diagram.edit.commands.ParallelQueuedUnit2CreateCommand;
+import comrel.diagram.edit.commands.SequentialUnit2CreateCommand;
+import comrel.diagram.edit.commands.SingleQueuedUnit2CreateCommand;
+import comrel.diagram.providers.ComrelElementTypes;
+
+/**
+ * @generated
+ */
+public class CartesianQueuedUnitCartesianQueuedUnitRefactoringUnitCompartment5ItemSemanticEditPolicy
+ extends ComrelBaseItemSemanticEditPolicy {
+
+ /**
+ * @generated
+ */
+ public CartesianQueuedUnitCartesianQueuedUnitRefactoringUnitCompartment5ItemSemanticEditPolicy() {
+ super(ComrelElementTypes.CartesianQueuedUnit_3029);
+ }
+
+ /**
+ * @generated
+ */
+ protected Command getCreateCommand(CreateElementRequest req) {
+ if (ComrelElementTypes.CartesianQueuedUnit_3003 == req.getElementType()) {
+ return getGEFWrapper(new CartesianQueuedUnit2CreateCommand(req));
+ }
+ if (ComrelElementTypes.ParallelQueuedUnit_3004 == req.getElementType()) {
+ return getGEFWrapper(new ParallelQueuedUnit2CreateCommand(req));
+ }
+ if (ComrelElementTypes.SingleQueuedUnit_3022 == req.getElementType()) {
+ return getGEFWrapper(new SingleQueuedUnit2CreateCommand(req));
+ }
+ if (ComrelElementTypes.SequentialUnit_3026 == req.getElementType()) {
+ return getGEFWrapper(new SequentialUnit2CreateCommand(req));
+ }
+ if (ComrelElementTypes.ConditionalUnit_3030 == req.getElementType()) {
+ return getGEFWrapper(new ConditionalUnit2CreateCommand(req));
+ }
+ if (ComrelElementTypes.AtomicUnit_3034 == req.getElementType()) {
+ return getGEFWrapper(new AtomicUnit2CreateCommand(req));
+ }
+ return super.getCreateCommand(req);
+ }
+
+}
diff --git a/org.eclipse.emf.refactor.comrel.diagram/src/comrel/diagram/edit/policies/CartesianQueuedUnitCartesianQueuedUnitRefactoringUnitCompartment6CanonicalEditPolicy.java b/org.eclipse.emf.refactor.comrel.diagram/src/comrel/diagram/edit/policies/CartesianQueuedUnitCartesianQueuedUnitRefactoringUnitCompartment6CanonicalEditPolicy.java
new file mode 100644
index 0000000..3b1b22a
--- /dev/null
+++ b/org.eclipse.emf.refactor.comrel.diagram/src/comrel/diagram/edit/policies/CartesianQueuedUnitCartesianQueuedUnitRefactoringUnitCompartment6CanonicalEditPolicy.java
@@ -0,0 +1,177 @@
+/*
+ *
+ */
+package comrel.diagram.edit.policies;
+
+import java.util.ArrayList;
+import java.util.Collection;
+import java.util.Iterator;
+import java.util.LinkedList;
+import java.util.List;
+
+import org.eclipse.core.runtime.IAdaptable;
+import org.eclipse.emf.ecore.EObject;
+import org.eclipse.emf.ecore.EStructuralFeature;
+import org.eclipse.gef.commands.Command;
+import org.eclipse.gmf.runtime.diagram.core.util.ViewUtil;
+import org.eclipse.gmf.runtime.diagram.ui.commands.DeferredLayoutCommand;
+import org.eclipse.gmf.runtime.diagram.ui.commands.ICommandProxy;
+import org.eclipse.gmf.runtime.diagram.ui.commands.SetViewMutabilityCommand;
+import org.eclipse.gmf.runtime.diagram.ui.editpolicies.CanonicalEditPolicy;
+import org.eclipse.gmf.runtime.diagram.ui.requests.CreateViewRequest;
+import org.eclipse.gmf.runtime.emf.core.util.EObjectAdapter;
+import org.eclipse.gmf.runtime.notation.Node;
+import org.eclipse.gmf.runtime.notation.View;
+
+import comrel.ComrelPackage;
+import comrel.diagram.edit.parts.AtomicUnit2EditPart;
+import comrel.diagram.edit.parts.CartesianQueuedUnit2EditPart;
+import comrel.diagram.edit.parts.ConditionalUnit2EditPart;
+import comrel.diagram.edit.parts.ParallelQueuedUnit2EditPart;
+import comrel.diagram.edit.parts.SequentialUnit2EditPart;
+import comrel.diagram.edit.parts.SingleQueuedUnit2EditPart;
+import comrel.diagram.part.ComrelDiagramUpdater;
+import comrel.diagram.part.ComrelNodeDescriptor;
+import comrel.diagram.part.ComrelVisualIDRegistry;
+
+/**
+ * @generated
+ */
+public class CartesianQueuedUnitCartesianQueuedUnitRefactoringUnitCompartment6CanonicalEditPolicy
+ extends CanonicalEditPolicy {
+
+ /**
+ * @generated
+ */
+ protected EStructuralFeature getFeatureToSynchronize() {
+ return ComrelPackage.eINSTANCE.getCartesianQueuedUnit_RefactoringUnit();
+ }
+
+ /**
+ * @generated
+ */
+ @SuppressWarnings("rawtypes")
+ protected List getSemanticChildrenList() {
+ View viewObject = (View) getHost().getModel();
+ LinkedList<EObject> result = new LinkedList<EObject>();
+ List<ComrelNodeDescriptor> childDescriptors = ComrelDiagramUpdater
+ .getCartesianQueuedUnitCartesianQueuedUnitRefactoringUnitCompartment_7022SemanticChildren(viewObject);
+ for (ComrelNodeDescriptor d : childDescriptors) {
+ result.add(d.getModelElement());
+ }
+ return result;
+ }
+
+ /**
+ * @generated
+ */
+ protected boolean isOrphaned(Collection<EObject> semanticChildren,
+ final View view) {
+ return isMyDiagramElement(view)
+ && !semanticChildren.contains(view.getElement());
+ }
+
+ /**
+ * @generated
+ */
+ private boolean isMyDiagramElement(View view) {
+ int visualID = ComrelVisualIDRegistry.getVisualID(view);
+ switch (visualID) {
+ case CartesianQueuedUnit2EditPart.VISUAL_ID:
+ case ParallelQueuedUnit2EditPart.VISUAL_ID:
+ case SingleQueuedUnit2EditPart.VISUAL_ID:
+ case SequentialUnit2EditPart.VISUAL_ID:
+ case ConditionalUnit2EditPart.VISUAL_ID:
+ case AtomicUnit2EditPart.VISUAL_ID:
+ return true;
+ }
+ return false;
+ }
+
+ /**
+ * @generated
+ */
+ protected void refreshSemantic() {
+ if (resolveSemanticElement() == null) {
+ return;
+ }
+ LinkedList<IAdaptable> createdViews = new LinkedList<IAdaptable>();
+ List<ComrelNodeDescriptor> childDescriptors = ComrelDiagramUpdater
+ .getCartesianQueuedUnitCartesianQueuedUnitRefactoringUnitCompartment_7022SemanticChildren((View) getHost()
+ .getModel());
+ LinkedList<View> orphaned = new LinkedList<View>();
+ // we care to check only views we recognize as ours
+ LinkedList<View> knownViewChildren = new LinkedList<View>();
+ for (View v : getViewChildren()) {
+ if (isMyDiagramElement(v)) {
+ knownViewChildren.add(v);
+ }
+ }
+ // alternative to #cleanCanonicalSemanticChildren(getViewChildren(), semanticChildren)
+ //
+ // iteration happens over list of desired semantic elements, trying to find best matching View, while original CEP
+ // iterates views, potentially losing view (size/bounds) information - i.e. if there are few views to reference same EObject, only last one
+ // to answer isOrphaned == true will be used for the domain element representation, see #cleanCanonicalSemanticChildren()
+ for (Iterator<ComrelNodeDescriptor> descriptorsIterator = childDescriptors
+ .iterator(); descriptorsIterator.hasNext();) {
+ ComrelNodeDescriptor next = descriptorsIterator.next();
+ String hint = ComrelVisualIDRegistry.getType(next.getVisualID());
+ LinkedList<View> perfectMatch = new LinkedList<View>(); // both semanticElement and hint match that of NodeDescriptor
+ for (View childView : getViewChildren()) {
+ EObject semanticElement = childView.getElement();
+ if (next.getModelElement().equals(semanticElement)) {
+ if (hint.equals(childView.getType())) {
+ perfectMatch.add(childView);
+ // actually, can stop iteration over view children here, but
+ // may want to use not the first view but last one as a 'real' match (the way original CEP does
+ // with its trick with viewToSemanticMap inside #cleanCanonicalSemanticChildren
+ }
+ }
+ }
+ if (perfectMatch.size() > 0) {
+ descriptorsIterator.remove(); // precise match found no need to create anything for the NodeDescriptor
+ // use only one view (first or last?), keep rest as orphaned for further consideration
+ knownViewChildren.remove(perfectMatch.getFirst());
+ }
+ }
+ // those left in knownViewChildren are subject to removal - they are our diagram elements we didn't find match to,
+ // or those we have potential matches to, and thus need to be recreated, preserving size/location information.
+ orphaned.addAll(knownViewChildren);
+ //
+ ArrayList<CreateViewRequest.ViewDescriptor> viewDescriptors = new ArrayList<CreateViewRequest.ViewDescriptor>(
+ childDescriptors.size());
+ for (ComrelNodeDescriptor next : childDescriptors) {
+ String hint = ComrelVisualIDRegistry.getType(next.getVisualID());
+ IAdaptable elementAdapter = new CanonicalElementAdapter(
+ next.getModelElement(), hint);
+ CreateViewRequest.ViewDescriptor descriptor = new CreateViewRequest.ViewDescriptor(
+ elementAdapter, Node.class, hint, ViewUtil.APPEND, false,
+ host().getDiagramPreferencesHint());
+ viewDescriptors.add(descriptor);
+ }
+
+ boolean changed = deleteViews(orphaned.iterator());
+ //
+ CreateViewRequest request = getCreateViewRequest(viewDescriptors);
+ Command cmd = getCreateViewCommand(request);
+ if (cmd != null && cmd.canExecute()) {
+ SetViewMutabilityCommand.makeMutable(
+ new EObjectAdapter(host().getNotationView())).execute();
+ executeCommand(cmd);
+ @SuppressWarnings("unchecked")
+ List<IAdaptable> nl = (List<IAdaptable>) request.getNewObject();
+ createdViews.addAll(nl);
+ }
+ if (changed || createdViews.size() > 0) {
+ postProcessRefreshSemantic(createdViews);
+ }
+ if (createdViews.size() > 1) {
+ // perform a layout of the container
+ DeferredLayoutCommand layoutCmd = new DeferredLayoutCommand(host()
+ .getEditingDomain(), createdViews, host());
+ executeCommand(new ICommandProxy(layoutCmd));
+ }
+
+ makeViewsImmutable(createdViews);
+ }
+}
diff --git a/org.eclipse.emf.refactor.comrel.diagram/src/comrel/diagram/edit/policies/CartesianQueuedUnitCartesianQueuedUnitRefactoringUnitCompartment6ItemSemanticEditPolicy.java b/org.eclipse.emf.refactor.comrel.diagram/src/comrel/diagram/edit/policies/CartesianQueuedUnitCartesianQueuedUnitRefactoringUnitCompartment6ItemSemanticEditPolicy.java
new file mode 100644
index 0000000..f789470
--- /dev/null
+++ b/org.eclipse.emf.refactor.comrel.diagram/src/comrel/diagram/edit/policies/CartesianQueuedUnitCartesianQueuedUnitRefactoringUnitCompartment6ItemSemanticEditPolicy.java
@@ -0,0 +1,55 @@
+/*
+ *
+ */
+package comrel.diagram.edit.policies;
+
+import org.eclipse.gef.commands.Command;
+import org.eclipse.gmf.runtime.emf.type.core.requests.CreateElementRequest;
+
+import comrel.diagram.edit.commands.AtomicUnit2CreateCommand;
+import comrel.diagram.edit.commands.CartesianQueuedUnit2CreateCommand;
+import comrel.diagram.edit.commands.ConditionalUnit2CreateCommand;
+import comrel.diagram.edit.commands.ParallelQueuedUnit2CreateCommand;
+import comrel.diagram.edit.commands.SequentialUnit2CreateCommand;
+import comrel.diagram.edit.commands.SingleQueuedUnit2CreateCommand;
+import comrel.diagram.providers.ComrelElementTypes;
+
+/**
+ * @generated
+ */
+public class CartesianQueuedUnitCartesianQueuedUnitRefactoringUnitCompartment6ItemSemanticEditPolicy
+ extends ComrelBaseItemSemanticEditPolicy {
+
+ /**
+ * @generated
+ */
+ public CartesianQueuedUnitCartesianQueuedUnitRefactoringUnitCompartment6ItemSemanticEditPolicy() {
+ super(ComrelElementTypes.CartesianQueuedUnit_3033);
+ }
+
+ /**
+ * @generated
+ */
+ protected Command getCreateCommand(CreateElementRequest req) {
+ if (ComrelElementTypes.CartesianQueuedUnit_3003 == req.getElementType()) {
+ return getGEFWrapper(new CartesianQueuedUnit2CreateCommand(req));
+ }
+ if (ComrelElementTypes.ParallelQueuedUnit_3004 == req.getElementType()) {
+ return getGEFWrapper(new ParallelQueuedUnit2CreateCommand(req));
+ }
+ if (ComrelElementTypes.SingleQueuedUnit_3022 == req.getElementType()) {
+ return getGEFWrapper(new SingleQueuedUnit2CreateCommand(req));
+ }
+ if (ComrelElementTypes.SequentialUnit_3026 == req.getElementType()) {
+ return getGEFWrapper(new SequentialUnit2CreateCommand(req));
+ }
+ if (ComrelElementTypes.ConditionalUnit_3030 == req.getElementType()) {
+ return getGEFWrapper(new ConditionalUnit2CreateCommand(req));
+ }
+ if (ComrelElementTypes.AtomicUnit_3034 == req.getElementType()) {
+ return getGEFWrapper(new AtomicUnit2CreateCommand(req));
+ }
+ return super.getCreateCommand(req);
+ }
+
+}
diff --git a/org.eclipse.emf.refactor.comrel.diagram/src/comrel/diagram/edit/policies/CartesianQueuedUnitCartesianQueuedUnitRefactoringUnitCompartment7CanonicalEditPolicy.java b/org.eclipse.emf.refactor.comrel.diagram/src/comrel/diagram/edit/policies/CartesianQueuedUnitCartesianQueuedUnitRefactoringUnitCompartment7CanonicalEditPolicy.java
new file mode 100644
index 0000000..90d7e1e
--- /dev/null
+++ b/org.eclipse.emf.refactor.comrel.diagram/src/comrel/diagram/edit/policies/CartesianQueuedUnitCartesianQueuedUnitRefactoringUnitCompartment7CanonicalEditPolicy.java
@@ -0,0 +1,177 @@
+/*
+ *
+ */
+package comrel.diagram.edit.policies;
+
+import java.util.ArrayList;
+import java.util.Collection;
+import java.util.Iterator;
+import java.util.LinkedList;
+import java.util.List;
+
+import org.eclipse.core.runtime.IAdaptable;
+import org.eclipse.emf.ecore.EObject;
+import org.eclipse.emf.ecore.EStructuralFeature;
+import org.eclipse.gef.commands.Command;
+import org.eclipse.gmf.runtime.diagram.core.util.ViewUtil;
+import org.eclipse.gmf.runtime.diagram.ui.commands.DeferredLayoutCommand;
+import org.eclipse.gmf.runtime.diagram.ui.commands.ICommandProxy;
+import org.eclipse.gmf.runtime.diagram.ui.commands.SetViewMutabilityCommand;
+import org.eclipse.gmf.runtime.diagram.ui.editpolicies.CanonicalEditPolicy;
+import org.eclipse.gmf.runtime.diagram.ui.requests.CreateViewRequest;
+import org.eclipse.gmf.runtime.emf.core.util.EObjectAdapter;
+import org.eclipse.gmf.runtime.notation.Node;
+import org.eclipse.gmf.runtime.notation.View;
+
+import comrel.ComrelPackage;
+import comrel.diagram.edit.parts.AtomicUnit2EditPart;
+import comrel.diagram.edit.parts.CartesianQueuedUnit2EditPart;
+import comrel.diagram.edit.parts.ConditionalUnit2EditPart;
+import comrel.diagram.edit.parts.ParallelQueuedUnit2EditPart;
+import comrel.diagram.edit.parts.SequentialUnit2EditPart;
+import comrel.diagram.edit.parts.SingleQueuedUnit2EditPart;
+import comrel.diagram.part.ComrelDiagramUpdater;
+import comrel.diagram.part.ComrelNodeDescriptor;
+import comrel.diagram.part.ComrelVisualIDRegistry;
+
+/**
+ * @generated
+ */
+public class CartesianQueuedUnitCartesianQueuedUnitRefactoringUnitCompartment7CanonicalEditPolicy
+ extends CanonicalEditPolicy {
+
+ /**
+ * @generated
+ */
+ protected EStructuralFeature getFeatureToSynchronize() {
+ return ComrelPackage.eINSTANCE.getCartesianQueuedUnit_RefactoringUnit();
+ }
+
+ /**
+ * @generated
+ */
+ @SuppressWarnings("rawtypes")
+ protected List getSemanticChildrenList() {
+ View viewObject = (View) getHost().getModel();
+ LinkedList<EObject> result = new LinkedList<EObject>();
+ List<ComrelNodeDescriptor> childDescriptors = ComrelDiagramUpdater
+ .getCartesianQueuedUnitCartesianQueuedUnitRefactoringUnitCompartment_7040SemanticChildren(viewObject);
+ for (ComrelNodeDescriptor d : childDescriptors) {
+ result.add(d.getModelElement());
+ }
+ return result;
+ }
+
+ /**
+ * @generated
+ */
+ protected boolean isOrphaned(Collection<EObject> semanticChildren,
+ final View view) {
+ return isMyDiagramElement(view)
+ && !semanticChildren.contains(view.getElement());
+ }
+
+ /**
+ * @generated
+ */
+ private boolean isMyDiagramElement(View view) {
+ int visualID = ComrelVisualIDRegistry.getVisualID(view);
+ switch (visualID) {
+ case CartesianQueuedUnit2EditPart.VISUAL_ID:
+ case ParallelQueuedUnit2EditPart.VISUAL_ID:
+ case SingleQueuedUnit2EditPart.VISUAL_ID:
+ case SequentialUnit2EditPart.VISUAL_ID:
+ case ConditionalUnit2EditPart.VISUAL_ID:
+ case AtomicUnit2EditPart.VISUAL_ID:
+ return true;
+ }
+ return false;
+ }
+
+ /**
+ * @generated
+ */
+ protected void refreshSemantic() {
+ if (resolveSemanticElement() == null) {
+ return;
+ }
+ LinkedList<IAdaptable> createdViews = new LinkedList<IAdaptable>();
+ List<ComrelNodeDescriptor> childDescriptors = ComrelDiagramUpdater
+ .getCartesianQueuedUnitCartesianQueuedUnitRefactoringUnitCompartment_7040SemanticChildren((View) getHost()
+ .getModel());
+ LinkedList<View> orphaned = new LinkedList<View>();
+ // we care to check only views we recognize as ours
+ LinkedList<View> knownViewChildren = new LinkedList<View>();
+ for (View v : getViewChildren()) {
+ if (isMyDiagramElement(v)) {
+ knownViewChildren.add(v);
+ }
+ }
+ // alternative to #cleanCanonicalSemanticChildren(getViewChildren(), semanticChildren)
+ //
+ // iteration happens over list of desired semantic elements, trying to find best matching View, while original CEP
+ // iterates views, potentially losing view (size/bounds) information - i.e. if there are few views to reference same EObject, only last one
+ // to answer isOrphaned == true will be used for the domain element representation, see #cleanCanonicalSemanticChildren()
+ for (Iterator<ComrelNodeDescriptor> descriptorsIterator = childDescriptors
+ .iterator(); descriptorsIterator.hasNext();) {
+ ComrelNodeDescriptor next = descriptorsIterator.next();
+ String hint = ComrelVisualIDRegistry.getType(next.getVisualID());
+ LinkedList<View> perfectMatch = new LinkedList<View>(); // both semanticElement and hint match that of NodeDescriptor
+ for (View childView : getViewChildren()) {
+ EObject semanticElement = childView.getElement();
+ if (next.getModelElement().equals(semanticElement)) {
+ if (hint.equals(childView.getType())) {
+ perfectMatch.add(childView);
+ // actually, can stop iteration over view children here, but
+ // may want to use not the first view but last one as a 'real' match (the way original CEP does
+ // with its trick with viewToSemanticMap inside #cleanCanonicalSemanticChildren
+ }
+ }
+ }
+ if (perfectMatch.size() > 0) {
+ descriptorsIterator.remove(); // precise match found no need to create anything for the NodeDescriptor
+ // use only one view (first or last?), keep rest as orphaned for further consideration
+ knownViewChildren.remove(perfectMatch.getFirst());
+ }
+ }
+ // those left in knownViewChildren are subject to removal - they are our diagram elements we didn't find match to,
+ // or those we have potential matches to, and thus need to be recreated, preserving size/location information.
+ orphaned.addAll(knownViewChildren);
+ //
+ ArrayList<CreateViewRequest.ViewDescriptor> viewDescriptors = new ArrayList<CreateViewRequest.ViewDescriptor>(
+ childDescriptors.size());
+ for (ComrelNodeDescriptor next : childDescriptors) {
+ String hint = ComrelVisualIDRegistry.getType(next.getVisualID());
+ IAdaptable elementAdapter = new CanonicalElementAdapter(
+ next.getModelElement(), hint);
+ CreateViewRequest.ViewDescriptor descriptor = new CreateViewRequest.ViewDescriptor(
+ elementAdapter, Node.class, hint, ViewUtil.APPEND, false,
+ host().getDiagramPreferencesHint());
+ viewDescriptors.add(descriptor);
+ }
+
+ boolean changed = deleteViews(orphaned.iterator());
+ //
+ CreateViewRequest request = getCreateViewRequest(viewDescriptors);
+ Command cmd = getCreateViewCommand(request);
+ if (cmd != null && cmd.canExecute()) {
+ SetViewMutabilityCommand.makeMutable(
+ new EObjectAdapter(host().getNotationView())).execute();
+ executeCommand(cmd);
+ @SuppressWarnings("unchecked")
+ List<IAdaptable> nl = (List<IAdaptable>) request.getNewObject();
+ createdViews.addAll(nl);
+ }
+ if (changed || createdViews.size() > 0) {
+ postProcessRefreshSemantic(createdViews);
+ }
+ if (createdViews.size() > 1) {
+ // perform a layout of the container
+ DeferredLayoutCommand layoutCmd = new DeferredLayoutCommand(host()
+ .getEditingDomain(), createdViews, host());
+ executeCommand(new ICommandProxy(layoutCmd));
+ }
+
+ makeViewsImmutable(createdViews);
+ }
+}
diff --git a/org.eclipse.emf.refactor.comrel.diagram/src/comrel/diagram/edit/policies/CartesianQueuedUnitCartesianQueuedUnitRefactoringUnitCompartment7ItemSemanticEditPolicy.java b/org.eclipse.emf.refactor.comrel.diagram/src/comrel/diagram/edit/policies/CartesianQueuedUnitCartesianQueuedUnitRefactoringUnitCompartment7ItemSemanticEditPolicy.java
new file mode 100644
index 0000000..db05e99
--- /dev/null
+++ b/org.eclipse.emf.refactor.comrel.diagram/src/comrel/diagram/edit/policies/CartesianQueuedUnitCartesianQueuedUnitRefactoringUnitCompartment7ItemSemanticEditPolicy.java
@@ -0,0 +1,55 @@
+/*
+ *
+ */
+package comrel.diagram.edit.policies;
+
+import org.eclipse.gef.commands.Command;
+import org.eclipse.gmf.runtime.emf.type.core.requests.CreateElementRequest;
+
+import comrel.diagram.edit.commands.AtomicUnit2CreateCommand;
+import comrel.diagram.edit.commands.CartesianQueuedUnit2CreateCommand;
+import comrel.diagram.edit.commands.ConditionalUnit2CreateCommand;
+import comrel.diagram.edit.commands.ParallelQueuedUnit2CreateCommand;
+import comrel.diagram.edit.commands.SequentialUnit2CreateCommand;
+import comrel.diagram.edit.commands.SingleQueuedUnit2CreateCommand;
+import comrel.diagram.providers.ComrelElementTypes;
+
+/**
+ * @generated
+ */
+public class CartesianQueuedUnitCartesianQueuedUnitRefactoringUnitCompartment7ItemSemanticEditPolicy
+ extends ComrelBaseItemSemanticEditPolicy {
+
+ /**
+ * @generated
+ */
+ public CartesianQueuedUnitCartesianQueuedUnitRefactoringUnitCompartment7ItemSemanticEditPolicy() {
+ super(ComrelElementTypes.CartesianQueuedUnit_3047);
+ }
+
+ /**
+ * @generated
+ */
+ protected Command getCreateCommand(CreateElementRequest req) {
+ if (ComrelElementTypes.CartesianQueuedUnit_3003 == req.getElementType()) {
+ return getGEFWrapper(new CartesianQueuedUnit2CreateCommand(req));
+ }
+ if (ComrelElementTypes.ParallelQueuedUnit_3004 == req.getElementType()) {
+ return getGEFWrapper(new ParallelQueuedUnit2CreateCommand(req));
+ }
+ if (ComrelElementTypes.SingleQueuedUnit_3022 == req.getElementType()) {
+ return getGEFWrapper(new SingleQueuedUnit2CreateCommand(req));
+ }
+ if (ComrelElementTypes.SequentialUnit_3026 == req.getElementType()) {
+ return getGEFWrapper(new SequentialUnit2CreateCommand(req));
+ }
+ if (ComrelElementTypes.ConditionalUnit_3030 == req.getElementType()) {
+ return getGEFWrapper(new ConditionalUnit2CreateCommand(req));
+ }
+ if (ComrelElementTypes.AtomicUnit_3034 == req.getElementType()) {
+ return getGEFWrapper(new AtomicUnit2CreateCommand(req));
+ }
+ return super.getCreateCommand(req);
+ }
+
+}
diff --git a/org.eclipse.emf.refactor.comrel.diagram/src/comrel/diagram/edit/policies/CartesianQueuedUnitCartesianQueuedUnitRefactoringUnitCompartmentCanonicalEditPolicy.java b/org.eclipse.emf.refactor.comrel.diagram/src/comrel/diagram/edit/policies/CartesianQueuedUnitCartesianQueuedUnitRefactoringUnitCompartmentCanonicalEditPolicy.java
new file mode 100644
index 0000000..12c816c
--- /dev/null
+++ b/org.eclipse.emf.refactor.comrel.diagram/src/comrel/diagram/edit/policies/CartesianQueuedUnitCartesianQueuedUnitRefactoringUnitCompartmentCanonicalEditPolicy.java
@@ -0,0 +1,177 @@
+/*
+ *
+ */
+package comrel.diagram.edit.policies;
+
+import java.util.ArrayList;
+import java.util.Collection;
+import java.util.Iterator;
+import java.util.LinkedList;
+import java.util.List;
+
+import org.eclipse.core.runtime.IAdaptable;
+import org.eclipse.emf.ecore.EObject;
+import org.eclipse.emf.ecore.EStructuralFeature;
+import org.eclipse.gef.commands.Command;
+import org.eclipse.gmf.runtime.diagram.core.util.ViewUtil;
+import org.eclipse.gmf.runtime.diagram.ui.commands.DeferredLayoutCommand;
+import org.eclipse.gmf.runtime.diagram.ui.commands.ICommandProxy;
+import org.eclipse.gmf.runtime.diagram.ui.commands.SetViewMutabilityCommand;
+import org.eclipse.gmf.runtime.diagram.ui.editpolicies.CanonicalEditPolicy;
+import org.eclipse.gmf.runtime.diagram.ui.requests.CreateViewRequest;
+import org.eclipse.gmf.runtime.emf.core.util.EObjectAdapter;
+import org.eclipse.gmf.runtime.notation.Node;
+import org.eclipse.gmf.runtime.notation.View;
+
+import comrel.ComrelPackage;
+import comrel.diagram.edit.parts.AtomicUnit2EditPart;
+import comrel.diagram.edit.parts.CartesianQueuedUnit2EditPart;
+import comrel.diagram.edit.parts.ConditionalUnit2EditPart;
+import comrel.diagram.edit.parts.ParallelQueuedUnit2EditPart;
+import comrel.diagram.edit.parts.SequentialUnit2EditPart;
+import comrel.diagram.edit.parts.SingleQueuedUnit2EditPart;
+import comrel.diagram.part.ComrelDiagramUpdater;
+import comrel.diagram.part.ComrelNodeDescriptor;
+import comrel.diagram.part.ComrelVisualIDRegistry;
+
+/**
+ * @generated
+ */
+public class CartesianQueuedUnitCartesianQueuedUnitRefactoringUnitCompartmentCanonicalEditPolicy
+ extends CanonicalEditPolicy {
+
+ /**
+ * @generated
+ */
+ protected EStructuralFeature getFeatureToSynchronize() {
+ return ComrelPackage.eINSTANCE.getCartesianQueuedUnit_RefactoringUnit();
+ }
+
+ /**
+ * @generated
+ */
+ @SuppressWarnings("rawtypes")
+ protected List getSemanticChildrenList() {
+ View viewObject = (View) getHost().getModel();
+ LinkedList<EObject> result = new LinkedList<EObject>();
+ List<ComrelNodeDescriptor> childDescriptors = ComrelDiagramUpdater
+ .getCartesianQueuedUnitCartesianQueuedUnitRefactoringUnitCompartment_7002SemanticChildren(viewObject);
+ for (ComrelNodeDescriptor d : childDescriptors) {
+ result.add(d.getModelElement());
+ }
+ return result;
+ }
+
+ /**
+ * @generated
+ */
+ protected boolean isOrphaned(Collection<EObject> semanticChildren,
+ final View view) {
+ return isMyDiagramElement(view)
+ && !semanticChildren.contains(view.getElement());
+ }
+
+ /**
+ * @generated
+ */
+ private boolean isMyDiagramElement(View view) {
+ int visualID = ComrelVisualIDRegistry.getVisualID(view);
+ switch (visualID) {
+ case CartesianQueuedUnit2EditPart.VISUAL_ID:
+ case ParallelQueuedUnit2EditPart.VISUAL_ID:
+ case SingleQueuedUnit2EditPart.VISUAL_ID:
+ case SequentialUnit2EditPart.VISUAL_ID:
+ case ConditionalUnit2EditPart.VISUAL_ID:
+ case AtomicUnit2EditPart.VISUAL_ID:
+ return true;
+ }
+ return false;
+ }
+
+ /**
+ * @generated
+ */
+ protected void refreshSemantic() {
+ if (resolveSemanticElement() == null) {
+ return;
+ }
+ LinkedList<IAdaptable> createdViews = new LinkedList<IAdaptable>();
+ List<ComrelNodeDescriptor> childDescriptors = ComrelDiagramUpdater
+ .getCartesianQueuedUnitCartesianQueuedUnitRefactoringUnitCompartment_7002SemanticChildren((View) getHost()
+ .getModel());
+ LinkedList<View> orphaned = new LinkedList<View>();
+ // we care to check only views we recognize as ours
+ LinkedList<View> knownViewChildren = new LinkedList<View>();
+ for (View v : getViewChildren()) {
+ if (isMyDiagramElement(v)) {
+ knownViewChildren.add(v);
+ }
+ }
+ // alternative to #cleanCanonicalSemanticChildren(getViewChildren(), semanticChildren)
+ //
+ // iteration happens over list of desired semantic elements, trying to find best matching View, while original CEP
+ // iterates views, potentially losing view (size/bounds) information - i.e. if there are few views to reference same EObject, only last one
+ // to answer isOrphaned == true will be used for the domain element representation, see #cleanCanonicalSemanticChildren()
+ for (Iterator<ComrelNodeDescriptor> descriptorsIterator = childDescriptors
+ .iterator(); descriptorsIterator.hasNext();) {
+ ComrelNodeDescriptor next = descriptorsIterator.next();
+ String hint = ComrelVisualIDRegistry.getType(next.getVisualID());
+ LinkedList<View> perfectMatch = new LinkedList<View>(); // both semanticElement and hint match that of NodeDescriptor
+ for (View childView : getViewChildren()) {
+ EObject semanticElement = childView.getElement();
+ if (next.getModelElement().equals(semanticElement)) {
+ if (hint.equals(childView.getType())) {
+ perfectMatch.add(childView);
+ // actually, can stop iteration over view children here, but
+ // may want to use not the first view but last one as a 'real' match (the way original CEP does
+ // with its trick with viewToSemanticMap inside #cleanCanonicalSemanticChildren
+ }
+ }
+ }
+ if (perfectMatch.size() > 0) {
+ descriptorsIterator.remove(); // precise match found no need to create anything for the NodeDescriptor
+ // use only one view (first or last?), keep rest as orphaned for further consideration
+ knownViewChildren.remove(perfectMatch.getFirst());
+ }
+ }
+ // those left in knownViewChildren are subject to removal - they are our diagram elements we didn't find match to,
+ // or those we have potential matches to, and thus need to be recreated, preserving size/location information.
+ orphaned.addAll(knownViewChildren);
+ //
+ ArrayList<CreateViewRequest.ViewDescriptor> viewDescriptors = new ArrayList<CreateViewRequest.ViewDescriptor>(
+ childDescriptors.size());
+ for (ComrelNodeDescriptor next : childDescriptors) {
+ String hint = ComrelVisualIDRegistry.getType(next.getVisualID());
+ IAdaptable elementAdapter = new CanonicalElementAdapter(
+ next.getModelElement(), hint);
+ CreateViewRequest.ViewDescriptor descriptor = new CreateViewRequest.ViewDescriptor(
+ elementAdapter, Node.class, hint, ViewUtil.APPEND, false,
+ host().getDiagramPreferencesHint());
+ viewDescriptors.add(descriptor);
+ }
+
+ boolean changed = deleteViews(orphaned.iterator());
+ //
+ CreateViewRequest request = getCreateViewRequest(viewDescriptors);
+ Command cmd = getCreateViewCommand(request);
+ if (cmd != null && cmd.canExecute()) {
+ SetViewMutabilityCommand.makeMutable(
+ new EObjectAdapter(host().getNotationView())).execute();
+ executeCommand(cmd);
+ @SuppressWarnings("unchecked")
+ List<IAdaptable> nl = (List<IAdaptable>) request.getNewObject();
+ createdViews.addAll(nl);
+ }
+ if (changed || createdViews.size() > 0) {
+ postProcessRefreshSemantic(createdViews);
+ }
+ if (createdViews.size() > 1) {
+ // perform a layout of the container
+ DeferredLayoutCommand layoutCmd = new DeferredLayoutCommand(host()
+ .getEditingDomain(), createdViews, host());
+ executeCommand(new ICommandProxy(layoutCmd));
+ }
+
+ makeViewsImmutable(createdViews);
+ }
+}
diff --git a/org.eclipse.emf.refactor.comrel.diagram/src/comrel/diagram/edit/policies/CartesianQueuedUnitCartesianQueuedUnitRefactoringUnitCompartmentItemSemanticEditPolicy.java b/org.eclipse.emf.refactor.comrel.diagram/src/comrel/diagram/edit/policies/CartesianQueuedUnitCartesianQueuedUnitRefactoringUnitCompartmentItemSemanticEditPolicy.java
new file mode 100644
index 0000000..fd82b00
--- /dev/null
+++ b/org.eclipse.emf.refactor.comrel.diagram/src/comrel/diagram/edit/policies/CartesianQueuedUnitCartesianQueuedUnitRefactoringUnitCompartmentItemSemanticEditPolicy.java
@@ -0,0 +1,55 @@
+/*
+ *
+ */
+package comrel.diagram.edit.policies;
+
+import org.eclipse.gef.commands.Command;
+import org.eclipse.gmf.runtime.emf.type.core.requests.CreateElementRequest;
+
+import comrel.diagram.edit.commands.AtomicUnit2CreateCommand;
+import comrel.diagram.edit.commands.CartesianQueuedUnit2CreateCommand;
+import comrel.diagram.edit.commands.ConditionalUnit2CreateCommand;
+import comrel.diagram.edit.commands.ParallelQueuedUnit2CreateCommand;
+import comrel.diagram.edit.commands.SequentialUnit2CreateCommand;
+import comrel.diagram.edit.commands.SingleQueuedUnit2CreateCommand;
+import comrel.diagram.providers.ComrelElementTypes;
+
+/**
+ * @generated
+ */
+public class CartesianQueuedUnitCartesianQueuedUnitRefactoringUnitCompartmentItemSemanticEditPolicy
+ extends ComrelBaseItemSemanticEditPolicy {
+
+ /**
+ * @generated
+ */
+ public CartesianQueuedUnitCartesianQueuedUnitRefactoringUnitCompartmentItemSemanticEditPolicy() {
+ super(ComrelElementTypes.CartesianQueuedUnit_2002);
+ }
+
+ /**
+ * @generated
+ */
+ protected Command getCreateCommand(CreateElementRequest req) {
+ if (ComrelElementTypes.CartesianQueuedUnit_3003 == req.getElementType()) {
+ return getGEFWrapper(new CartesianQueuedUnit2CreateCommand(req));
+ }
+ if (ComrelElementTypes.ParallelQueuedUnit_3004 == req.getElementType()) {
+ return getGEFWrapper(new ParallelQueuedUnit2CreateCommand(req));
+ }
+ if (ComrelElementTypes.SingleQueuedUnit_3022 == req.getElementType()) {
+ return getGEFWrapper(new SingleQueuedUnit2CreateCommand(req));
+ }
+ if (ComrelElementTypes.SequentialUnit_3026 == req.getElementType()) {
+ return getGEFWrapper(new SequentialUnit2CreateCommand(req));
+ }
+ if (ComrelElementTypes.ConditionalUnit_3030 == req.getElementType()) {
+ return getGEFWrapper(new ConditionalUnit2CreateCommand(req));
+ }
+ if (ComrelElementTypes.AtomicUnit_3034 == req.getElementType()) {
+ return getGEFWrapper(new AtomicUnit2CreateCommand(req));
+ }
+ return super.getCreateCommand(req);
+ }
+
+}
diff --git a/org.eclipse.emf.refactor.comrel.diagram/src/comrel/diagram/edit/policies/CartesianQueuedUnitItemSemanticEditPolicy.java b/org.eclipse.emf.refactor.comrel.diagram/src/comrel/diagram/edit/policies/CartesianQueuedUnitItemSemanticEditPolicy.java
new file mode 100644
index 0000000..4d79cb6
--- /dev/null
+++ b/org.eclipse.emf.refactor.comrel.diagram/src/comrel/diagram/edit/policies/CartesianQueuedUnitItemSemanticEditPolicy.java
@@ -0,0 +1,263 @@
+/*
+ *
+ */
+package comrel.diagram.edit.policies;
+
+import java.util.Iterator;
+
+import org.eclipse.emf.ecore.EAnnotation;
+import org.eclipse.gef.commands.Command;
+import org.eclipse.gmf.runtime.common.core.command.ICompositeCommand;
+import org.eclipse.gmf.runtime.diagram.core.commands.DeleteCommand;
+import org.eclipse.gmf.runtime.emf.commands.core.command.CompositeTransactionalCommand;
+import org.eclipse.gmf.runtime.emf.type.core.commands.DestroyElementCommand;
+import org.eclipse.gmf.runtime.emf.type.core.requests.CreateElementRequest;
+import org.eclipse.gmf.runtime.emf.type.core.requests.DestroyElementRequest;
+import org.eclipse.gmf.runtime.notation.Edge;
+import org.eclipse.gmf.runtime.notation.Node;
+import org.eclipse.gmf.runtime.notation.View;
+
+import comrel.diagram.edit.commands.MultiInputPortCreateCommand;
+import comrel.diagram.edit.commands.SingleInputPort2CreateCommand;
+import comrel.diagram.edit.parts.AtomicUnit2EditPart;
+import comrel.diagram.edit.parts.CartesianQueuedUnit2EditPart;
+import comrel.diagram.edit.parts.CartesianQueuedUnitCartesianQueuedUnitHelperUnitsCompartmentEditPart;
+import comrel.diagram.edit.parts.CartesianQueuedUnitCartesianQueuedUnitRefactoringUnitCompartmentEditPart;
+import comrel.diagram.edit.parts.ConditionalUnit2EditPart;
+import comrel.diagram.edit.parts.MultiFeatureUnitEditPart;
+import comrel.diagram.edit.parts.MultiFilterUnitEditPart;
+import comrel.diagram.edit.parts.MultiInputPortEditPart;
+import comrel.diagram.edit.parts.MultiPortMappingEditPart;
+import comrel.diagram.edit.parts.MultiSinglePortMappingEditPart;
+import comrel.diagram.edit.parts.ParallelQueuedUnit2EditPart;
+import comrel.diagram.edit.parts.SequentialUnit2EditPart;
+import comrel.diagram.edit.parts.SingleFeatureUnitEditPart;
+import comrel.diagram.edit.parts.SingleFilterUnitEditPart;
+import comrel.diagram.edit.parts.SingleInputPort2EditPart;
+import comrel.diagram.edit.parts.SinglePortMappingEditPart;
+import comrel.diagram.edit.parts.SingleQueuedUnit2EditPart;
+import comrel.diagram.part.ComrelVisualIDRegistry;
+import comrel.diagram.providers.ComrelElementTypes;
+
+/**
+ * @generated
+ */
+public class CartesianQueuedUnitItemSemanticEditPolicy extends
+ ComrelBaseItemSemanticEditPolicy {
+
+ /**
+ * @generated
+ */
+ public CartesianQueuedUnitItemSemanticEditPolicy() {
+ super(ComrelElementTypes.CartesianQueuedUnit_2002);
+ }
+
+ /**
+ * @generated
+ */
+ protected Command getCreateCommand(CreateElementRequest req) {
+ if (ComrelElementTypes.SingleInputPort_3001 == req.getElementType()) {
+ return getGEFWrapper(new SingleInputPort2CreateCommand(req));
+ }
+ if (ComrelElementTypes.MultiInputPort_3002 == req.getElementType()) {
+ return getGEFWrapper(new MultiInputPortCreateCommand(req));
+ }
+ return super.getCreateCommand(req);
+ }
+
+ /**
+ * @generated
+ */
+ protected Command getDestroyElementCommand(DestroyElementRequest req) {
+ View view = (View) getHost().getModel();
+ CompositeTransactionalCommand cmd = new CompositeTransactionalCommand(
+ getEditingDomain(), null);
+ cmd.setTransactionNestingEnabled(false);
+ EAnnotation annotation = view.getEAnnotation("Shortcut"); //$NON-NLS-1$
+ if (annotation == null) {
+ // there are indirectly referenced children, need extra commands: false
+ addDestroyChildNodesCommand(cmd);
+ addDestroyShortcutsCommand(cmd, view);
+ // delete host element
+ cmd.add(new DestroyElementCommand(req));
+ } else {
+ cmd.add(new DeleteCommand(getEditingDomain(), view));
+ }
+ return getGEFWrapper(cmd.reduce());
+ }
+
+ /**
+ * @generated
+ */
+ private void addDestroyChildNodesCommand(ICompositeCommand cmd) {
+ View view = (View) getHost().getModel();
+ for (Iterator<?> nit = view.getChildren().iterator(); nit.hasNext();) {
+ Node node = (Node) nit.next();
+ switch (ComrelVisualIDRegistry.getVisualID(node)) {
+ case SingleInputPort2EditPart.VISUAL_ID:
+ for (Iterator<?> it = node.getTargetEdges().iterator(); it
+ .hasNext();) {
+ Edge incomingLink = (Edge) it.next();
+ if (ComrelVisualIDRegistry.getVisualID(incomingLink) == SinglePortMappingEditPart.VISUAL_ID) {
+ DestroyElementRequest r = new DestroyElementRequest(
+ incomingLink.getElement(), false);
+ cmd.add(new DestroyElementCommand(r));
+ cmd.add(new DeleteCommand(getEditingDomain(),
+ incomingLink));
+ continue;
+ }
+ if (ComrelVisualIDRegistry.getVisualID(incomingLink) == MultiSinglePortMappingEditPart.VISUAL_ID) {
+ DestroyElementRequest r = new DestroyElementRequest(
+ incomingLink.getElement(), false);
+ cmd.add(new DestroyElementCommand(r));
+ cmd.add(new DeleteCommand(getEditingDomain(),
+ incomingLink));
+ continue;
+ }
+ }
+ for (Iterator<?> it = node.getSourceEdges().iterator(); it
+ .hasNext();) {
+ Edge outgoingLink = (Edge) it.next();
+ if (ComrelVisualIDRegistry.getVisualID(outgoingLink) == SinglePortMappingEditPart.VISUAL_ID) {
+ DestroyElementRequest r = new DestroyElementRequest(
+ outgoingLink.getElement(), false);
+ cmd.add(new DestroyElementCommand(r));
+ cmd.add(new DeleteCommand(getEditingDomain(),
+ outgoingLink));
+ continue;
+ }
+ }
+ cmd.add(new DestroyElementCommand(new DestroyElementRequest(
+ getEditingDomain(), node.getElement(), false))); // directlyOwned: true
+ // don't need explicit deletion of node as parent's view deletion would clean child views as well
+ // cmd.add(new org.eclipse.gmf.runtime.diagram.core.commands.DeleteCommand(getEditingDomain(), node));
+ break;
+ case MultiInputPortEditPart.VISUAL_ID:
+ for (Iterator<?> it = node.getTargetEdges().iterator(); it
+ .hasNext();) {
+ Edge incomingLink = (Edge) it.next();
+ if (ComrelVisualIDRegistry.getVisualID(incomingLink) == MultiPortMappingEditPart.VISUAL_ID) {
+ DestroyElementRequest r = new DestroyElementRequest(
+ incomingLink.getElement(), false);
+ cmd.add(new DestroyElementCommand(r));
+ cmd.add(new DeleteCommand(getEditingDomain(),
+ incomingLink));
+ continue;
+ }
+ }
+ for (Iterator<?> it = node.getSourceEdges().iterator(); it
+ .hasNext();) {
+ Edge outgoingLink = (Edge) it.next();
+ if (ComrelVisualIDRegistry.getVisualID(outgoingLink) == MultiPortMappingEditPart.VISUAL_ID) {
+ DestroyElementRequest r = new DestroyElementRequest(
+ outgoingLink.getElement(), false);
+ cmd.add(new DestroyElementCommand(r));
+ cmd.add(new DeleteCommand(getEditingDomain(),
+ outgoingLink));
+ continue;
+ }
+ if (ComrelVisualIDRegistry.getVisualID(outgoingLink) == MultiSinglePortMappingEditPart.VISUAL_ID) {
+ DestroyElementRequest r = new DestroyElementRequest(
+ outgoingLink.getElement(), false);
+ cmd.add(new DestroyElementCommand(r));
+ cmd.add(new DeleteCommand(getEditingDomain(),
+ outgoingLink));
+ continue;
+ }
+ }
+ cmd.add(new DestroyElementCommand(new DestroyElementRequest(
+ getEditingDomain(), node.getElement(), false))); // directlyOwned: true
+ // don't need explicit deletion of node as parent's view deletion would clean child views as well
+ // cmd.add(new org.eclipse.gmf.runtime.diagram.core.commands.DeleteCommand(getEditingDomain(), node));
+ break;
+ case CartesianQueuedUnitCartesianQueuedUnitHelperUnitsCompartmentEditPart.VISUAL_ID:
+ for (Iterator<?> cit = node.getChildren().iterator(); cit
+ .hasNext();) {
+ Node cnode = (Node) cit.next();
+ switch (ComrelVisualIDRegistry.getVisualID(cnode)) {
+ case SingleFeatureUnitEditPart.VISUAL_ID:
+ cmd.add(new DestroyElementCommand(
+ new DestroyElementRequest(getEditingDomain(),
+ cnode.getElement(), false))); // directlyOwned: true
+ // don't need explicit deletion of cnode as parent's view deletion would clean child views as well
+ // cmd.add(new org.eclipse.gmf.runtime.diagram.core.commands.DeleteCommand(getEditingDomain(), cnode));
+ break;
+ case MultiFeatureUnitEditPart.VISUAL_ID:
+ cmd.add(new DestroyElementCommand(
+ new DestroyElementRequest(getEditingDomain(),
+ cnode.getElement(), false))); // directlyOwned: true
+ // don't need explicit deletion of cnode as parent's view deletion would clean child views as well
+ // cmd.add(new org.eclipse.gmf.runtime.diagram.core.commands.DeleteCommand(getEditingDomain(), cnode));
+ break;
+ case SingleFilterUnitEditPart.VISUAL_ID:
+ cmd.add(new DestroyElementCommand(
+ new DestroyElementRequest(getEditingDomain(),
+ cnode.getElement(), false))); // directlyOwned: true
+ // don't need explicit deletion of cnode as parent's view deletion would clean child views as well
+ // cmd.add(new org.eclipse.gmf.runtime.diagram.core.commands.DeleteCommand(getEditingDomain(), cnode));
+ break;
+ case MultiFilterUnitEditPart.VISUAL_ID:
+ cmd.add(new DestroyElementCommand(
+ new DestroyElementRequest(getEditingDomain(),
+ cnode.getElement(), false))); // directlyOwned: true
+ // don't need explicit deletion of cnode as parent's view deletion would clean child views as well
+ // cmd.add(new org.eclipse.gmf.runtime.diagram.core.commands.DeleteCommand(getEditingDomain(), cnode));
+ break;
+ }
+ }
+ break;
+ case CartesianQueuedUnitCartesianQueuedUnitRefactoringUnitCompartmentEditPart.VISUAL_ID:
+ for (Iterator<?> cit = node.getChildren().iterator(); cit
+ .hasNext();) {
+ Node cnode = (Node) cit.next();
+ switch (ComrelVisualIDRegistry.getVisualID(cnode)) {
+ case CartesianQueuedUnit2EditPart.VISUAL_ID:
+ cmd.add(new DestroyElementCommand(
+ new DestroyElementRequest(getEditingDomain(),
+ cnode.getElement(), false))); // directlyOwned: true
+ // don't need explicit deletion of cnode as parent's view deletion would clean child views as well
+ // cmd.add(new org.eclipse.gmf.runtime.diagram.core.commands.DeleteCommand(getEditingDomain(), cnode));
+ break;
+ case ParallelQueuedUnit2EditPart.VISUAL_ID:
+ cmd.add(new DestroyElementCommand(
+ new DestroyElementRequest(getEditingDomain(),
+ cnode.getElement(), false))); // directlyOwned: true
+ // don't need explicit deletion of cnode as parent's view deletion would clean child views as well
+ // cmd.add(new org.eclipse.gmf.runtime.diagram.core.commands.DeleteCommand(getEditingDomain(), cnode));
+ break;
+ case SingleQueuedUnit2EditPart.VISUAL_ID:
+ cmd.add(new DestroyElementCommand(
+ new DestroyElementRequest(getEditingDomain(),
+ cnode.getElement(), false))); // directlyOwned: true
+ // don't need explicit deletion of cnode as parent's view deletion would clean child views as well
+ // cmd.add(new org.eclipse.gmf.runtime.diagram.core.commands.DeleteCommand(getEditingDomain(), cnode));
+ break;
+ case SequentialUnit2EditPart.VISUAL_ID:
+ cmd.add(new DestroyElementCommand(
+ new DestroyElementRequest(getEditingDomain(),
+ cnode.getElement(), false))); // directlyOwned: true
+ // don't need explicit deletion of cnode as parent's view deletion would clean child views as well
+ // cmd.add(new org.eclipse.gmf.runtime.diagram.core.commands.DeleteCommand(getEditingDomain(), cnode));
+ break;
+ case ConditionalUnit2EditPart.VISUAL_ID:
+ cmd.add(new DestroyElementCommand(
+ new DestroyElementRequest(getEditingDomain(),
+ cnode.getElement(), false))); // directlyOwned: true
+ // don't need explicit deletion of cnode as parent's view deletion would clean child views as well
+ // cmd.add(new org.eclipse.gmf.runtime.diagram.core.commands.DeleteCommand(getEditingDomain(), cnode));
+ break;
+ case AtomicUnit2EditPart.VISUAL_ID:
+ cmd.add(new DestroyElementCommand(
+ new DestroyElementRequest(getEditingDomain(),
+ cnode.getElement(), false))); // directlyOwned: true
+ // don't need explicit deletion of cnode as parent's view deletion would clean child views as well
+ // cmd.add(new org.eclipse.gmf.runtime.diagram.core.commands.DeleteCommand(getEditingDomain(), cnode));
+ break;
+ }
+ }
+ break;
+ }
+ }
+ }
+
+}
diff --git a/org.eclipse.emf.refactor.comrel.diagram/src/comrel/diagram/edit/policies/CompositeRefactoringCanonicalEditPolicy.java b/org.eclipse.emf.refactor.comrel.diagram/src/comrel/diagram/edit/policies/CompositeRefactoringCanonicalEditPolicy.java
new file mode 100644
index 0000000..f954d7a
--- /dev/null
+++ b/org.eclipse.emf.refactor.comrel.diagram/src/comrel/diagram/edit/policies/CompositeRefactoringCanonicalEditPolicy.java
@@ -0,0 +1,1402 @@
+/*
+ *
+ */
+package comrel.diagram.edit.policies;
+
+import java.util.ArrayList;
+import java.util.Collection;
+import java.util.Collections;
+import java.util.HashMap;
+import java.util.HashSet;
+import java.util.Iterator;
+import java.util.LinkedList;
+import java.util.List;
+import java.util.Map;
+import java.util.Set;
+
+import org.eclipse.core.runtime.IAdaptable;
+import org.eclipse.emf.ecore.EObject;
+import org.eclipse.emf.ecore.EStructuralFeature;
+import org.eclipse.gef.EditPart;
+import org.eclipse.gef.commands.Command;
+import org.eclipse.gmf.runtime.diagram.core.util.ViewUtil;
+import org.eclipse.gmf.runtime.diagram.ui.commands.DeferredLayoutCommand;
+import org.eclipse.gmf.runtime.diagram.ui.commands.ICommandProxy;
+import org.eclipse.gmf.runtime.diagram.ui.commands.SetViewMutabilityCommand;
+import org.eclipse.gmf.runtime.diagram.ui.editparts.IGraphicalEditPart;
+import org.eclipse.gmf.runtime.diagram.ui.editpolicies.CanonicalEditPolicy;
+import org.eclipse.gmf.runtime.diagram.ui.requests.CreateConnectionViewRequest;
+import org.eclipse.gmf.runtime.diagram.ui.requests.CreateViewRequest;
+import org.eclipse.gmf.runtime.diagram.ui.requests.RequestConstants;
+import org.eclipse.gmf.runtime.emf.core.util.EObjectAdapter;
+import org.eclipse.gmf.runtime.notation.Diagram;
+import org.eclipse.gmf.runtime.notation.Edge;
+import org.eclipse.gmf.runtime.notation.Node;
+import org.eclipse.gmf.runtime.notation.View;
+
+import comrel.ComrelPackage;
+import comrel.diagram.edit.parts.AtomicUnit2EditPart;
+import comrel.diagram.edit.parts.AtomicUnit3EditPart;
+import comrel.diagram.edit.parts.AtomicUnit4EditPart;
+import comrel.diagram.edit.parts.AtomicUnit5EditPart;
+import comrel.diagram.edit.parts.AtomicUnit6EditPart;
+import comrel.diagram.edit.parts.AtomicUnit7EditPart;
+import comrel.diagram.edit.parts.AtomicUnitEditPart;
+import comrel.diagram.edit.parts.CartesianQueuedUnit2EditPart;
+import comrel.diagram.edit.parts.CartesianQueuedUnit3EditPart;
+import comrel.diagram.edit.parts.CartesianQueuedUnit4EditPart;
+import comrel.diagram.edit.parts.CartesianQueuedUnit5EditPart;
+import comrel.diagram.edit.parts.CartesianQueuedUnit6EditPart;
+import comrel.diagram.edit.parts.CartesianQueuedUnit7EditPart;
+import comrel.diagram.edit.parts.CartesianQueuedUnitEditPart;
+import comrel.diagram.edit.parts.CompositeRefactoringEditPart;
+import comrel.diagram.edit.parts.ConditionCheckEditPart;
+import comrel.diagram.edit.parts.ConditionalUnit2EditPart;
+import comrel.diagram.edit.parts.ConditionalUnit3EditPart;
+import comrel.diagram.edit.parts.ConditionalUnit4EditPart;
+import comrel.diagram.edit.parts.ConditionalUnit5EditPart;
+import comrel.diagram.edit.parts.ConditionalUnit6EditPart;
+import comrel.diagram.edit.parts.ConditionalUnit7EditPart;
+import comrel.diagram.edit.parts.ConditionalUnitEditPart;
+import comrel.diagram.edit.parts.MultiFeatureUnit2EditPart;
+import comrel.diagram.edit.parts.MultiFeatureUnit3EditPart;
+import comrel.diagram.edit.parts.MultiFeatureUnit4EditPart;
+import comrel.diagram.edit.parts.MultiFeatureUnit5EditPart;
+import comrel.diagram.edit.parts.MultiFeatureUnitEditPart;
+import comrel.diagram.edit.parts.MultiFilterUnit2EditPart;
+import comrel.diagram.edit.parts.MultiFilterUnit3EditPart;
+import comrel.diagram.edit.parts.MultiFilterUnit4EditPart;
+import comrel.diagram.edit.parts.MultiFilterUnit5EditPart;
+import comrel.diagram.edit.parts.MultiFilterUnitEditPart;
+import comrel.diagram.edit.parts.MultiInputPort2EditPart;
+import comrel.diagram.edit.parts.MultiInputPort3EditPart;
+import comrel.diagram.edit.parts.MultiInputPort4EditPart;
+import comrel.diagram.edit.parts.MultiInputPort5EditPart;
+import comrel.diagram.edit.parts.MultiInputPort6EditPart;
+import comrel.diagram.edit.parts.MultiInputPort7EditPart;
+import comrel.diagram.edit.parts.MultiInputPort8EditPart;
+import comrel.diagram.edit.parts.MultiInputPort9EditPart;
+import comrel.diagram.edit.parts.MultiInputPortEditPart;
+import comrel.diagram.edit.parts.MultiOutputPort2EditPart;
+import comrel.diagram.edit.parts.MultiOutputPortEditPart;
+import comrel.diagram.edit.parts.MultiPortMappingEditPart;
+import comrel.diagram.edit.parts.MultiSinglePortMappingEditPart;
+import comrel.diagram.edit.parts.ParallelQueuedUnit2EditPart;
+import comrel.diagram.edit.parts.ParallelQueuedUnit3EditPart;
+import comrel.diagram.edit.parts.ParallelQueuedUnit4EditPart;
+import comrel.diagram.edit.parts.ParallelQueuedUnit5EditPart;
+import comrel.diagram.edit.parts.ParallelQueuedUnit6EditPart;
+import comrel.diagram.edit.parts.ParallelQueuedUnit7EditPart;
+import comrel.diagram.edit.parts.ParallelQueuedUnitEditPart;
+import comrel.diagram.edit.parts.SequentialUnit2EditPart;
+import comrel.diagram.edit.parts.SequentialUnit3EditPart;
+import comrel.diagram.edit.parts.SequentialUnit4EditPart;
+import comrel.diagram.edit.parts.SequentialUnit5EditPart;
+import comrel.diagram.edit.parts.SequentialUnit6EditPart;
+import comrel.diagram.edit.parts.SequentialUnit7EditPart;
+import comrel.diagram.edit.parts.SequentialUnitEditPart;
+import comrel.diagram.edit.parts.SingleFeatureUnit2EditPart;
+import comrel.diagram.edit.parts.SingleFeatureUnit3EditPart;
+import comrel.diagram.edit.parts.SingleFeatureUnit4EditPart;
+import comrel.diagram.edit.parts.SingleFeatureUnit5EditPart;
+import comrel.diagram.edit.parts.SingleFeatureUnitEditPart;
+import comrel.diagram.edit.parts.SingleFilterUnit2EditPart;
+import comrel.diagram.edit.parts.SingleFilterUnit3EditPart;
+import comrel.diagram.edit.parts.SingleFilterUnit4EditPart;
+import comrel.diagram.edit.parts.SingleFilterUnit5EditPart;
+import comrel.diagram.edit.parts.SingleFilterUnitEditPart;
+import comrel.diagram.edit.parts.SingleInputPort2EditPart;
+import comrel.diagram.edit.parts.SingleInputPort3EditPart;
+import comrel.diagram.edit.parts.SingleInputPort4EditPart;
+import comrel.diagram.edit.parts.SingleInputPort5EditPart;
+import comrel.diagram.edit.parts.SingleInputPort6EditPart;
+import comrel.diagram.edit.parts.SingleInputPort7EditPart;
+import comrel.diagram.edit.parts.SingleInputPort8EditPart;
+import comrel.diagram.edit.parts.SingleInputPort9EditPart;
+import comrel.diagram.edit.parts.SingleInputPortEditPart;
+import comrel.diagram.edit.parts.SingleOutputPort2EditPart;
+import comrel.diagram.edit.parts.SingleOutputPortEditPart;
+import comrel.diagram.edit.parts.SinglePortMappingEditPart;
+import comrel.diagram.edit.parts.SingleQueuedUnit2EditPart;
+import comrel.diagram.edit.parts.SingleQueuedUnit3EditPart;
+import comrel.diagram.edit.parts.SingleQueuedUnit4EditPart;
+import comrel.diagram.edit.parts.SingleQueuedUnit5EditPart;
+import comrel.diagram.edit.parts.SingleQueuedUnit6EditPart;
+import comrel.diagram.edit.parts.SingleQueuedUnit7EditPart;
+import comrel.diagram.edit.parts.SingleQueuedUnitEditPart;
+import comrel.diagram.part.ComrelDiagramUpdater;
+import comrel.diagram.part.ComrelLinkDescriptor;
+import comrel.diagram.part.ComrelNodeDescriptor;
+import comrel.diagram.part.ComrelVisualIDRegistry;
+
+/**
+ * @generated
+ */
+public class CompositeRefactoringCanonicalEditPolicy extends
+ CanonicalEditPolicy {
+
+ /**
+ * @generated
+ */
+ private Set<EStructuralFeature> myFeaturesToSynchronize;
+
+ /**
+ * @generated
+ */
+ protected Set getFeaturesToSynchronize() {
+ if (myFeaturesToSynchronize == null) {
+ myFeaturesToSynchronize = new HashSet<EStructuralFeature>();
+ myFeaturesToSynchronize.add(ComrelPackage.eINSTANCE
+ .getModelRefactoring_InputPorts());
+ myFeaturesToSynchronize.add(ComrelPackage.eINSTANCE
+ .getCompositeRefactoring_MainRefactoringUnit());
+ }
+ return myFeaturesToSynchronize;
+ }
+
+ /**
+ * @generated
+ */
+ @SuppressWarnings("rawtypes")
+ protected List getSemanticChildrenList() {
+ View viewObject = (View) getHost().getModel();
+ LinkedList<EObject> result = new LinkedList<EObject>();
+ List<ComrelNodeDescriptor> childDescriptors = ComrelDiagramUpdater
+ .getCompositeRefactoring_1000SemanticChildren(viewObject);
+ for (ComrelNodeDescriptor d : childDescriptors) {
+ result.add(d.getModelElement());
+ }
+ return result;
+ }
+
+ /**
+ * @generated
+ */
+ protected boolean isOrphaned(Collection<EObject> semanticChildren,
+ final View view) {
+ if (view.getEAnnotation("Shortcut") != null) { //$NON-NLS-1$
+ return ComrelDiagramUpdater.isShortcutOrphaned(view);
+ }
+ return isMyDiagramElement(view)
+ && !semanticChildren.contains(view.getElement());
+ }
+
+ /**
+ * @generated
+ */
+ private boolean isMyDiagramElement(View view) {
+ int visualID = ComrelVisualIDRegistry.getVisualID(view);
+ switch (visualID) {
+ case SingleInputPortEditPart.VISUAL_ID:
+ case CartesianQueuedUnitEditPart.VISUAL_ID:
+ case ParallelQueuedUnitEditPart.VISUAL_ID:
+ case SingleQueuedUnitEditPart.VISUAL_ID:
+ case SequentialUnitEditPart.VISUAL_ID:
+ case ConditionalUnitEditPart.VISUAL_ID:
+ case AtomicUnitEditPart.VISUAL_ID:
+ return true;
+ }
+ return false;
+ }
+
+ /**
+ * @generated
+ */
+ protected void refreshSemantic() {
+ if (resolveSemanticElement() == null) {
+ return;
+ }
+ LinkedList<IAdaptable> createdViews = new LinkedList<IAdaptable>();
+ List<ComrelNodeDescriptor> childDescriptors = ComrelDiagramUpdater
+ .getCompositeRefactoring_1000SemanticChildren((View) getHost()
+ .getModel());
+ LinkedList<View> orphaned = new LinkedList<View>();
+ // we care to check only views we recognize as ours
+ LinkedList<View> knownViewChildren = new LinkedList<View>();
+ for (View v : getViewChildren()) {
+ if (isMyDiagramElement(v)) {
+ knownViewChildren.add(v);
+ }
+ if (v.getEAnnotation("Shortcut") != null && ComrelDiagramUpdater.isShortcutOrphaned(v)) { //$NON-NLS-1$
+ orphaned.add(v);
+ }
+ }
+ // alternative to #cleanCanonicalSemanticChildren(getViewChildren(), semanticChildren)
+ //
+ // iteration happens over list of desired semantic elements, trying to find best matching View, while original CEP
+ // iterates views, potentially losing view (size/bounds) information - i.e. if there are few views to reference same EObject, only last one
+ // to answer isOrphaned == true will be used for the domain element representation, see #cleanCanonicalSemanticChildren()
+ for (Iterator<ComrelNodeDescriptor> descriptorsIterator = childDescriptors
+ .iterator(); descriptorsIterator.hasNext();) {
+ ComrelNodeDescriptor next = descriptorsIterator.next();
+ String hint = ComrelVisualIDRegistry.getType(next.getVisualID());
+ LinkedList<View> perfectMatch = new LinkedList<View>(); // both semanticElement and hint match that of NodeDescriptor
+ for (View childView : getViewChildren()) {
+ EObject semanticElement = childView.getElement();
+ if (next.getModelElement().equals(semanticElement)) {
+ if (hint.equals(childView.getType())) {
+ perfectMatch.add(childView);
+ // actually, can stop iteration over view children here, but
+ // may want to use not the first view but last one as a 'real' match (the way original CEP does
+ // with its trick with viewToSemanticMap inside #cleanCanonicalSemanticChildren
+ }
+ }
+ }
+ if (perfectMatch.size() > 0) {
+ descriptorsIterator.remove(); // precise match found no need to create anything for the NodeDescriptor
+ // use only one view (first or last?), keep rest as orphaned for further consideration
+ knownViewChildren.remove(perfectMatch.getFirst());
+ }
+ }
+ // those left in knownViewChildren are subject to removal - they are our diagram elements we didn't find match to,
+ // or those we have potential matches to, and thus need to be recreated, preserving size/location information.
+ orphaned.addAll(knownViewChildren);
+ //
+ ArrayList<CreateViewRequest.ViewDescriptor> viewDescriptors = new ArrayList<CreateViewRequest.ViewDescriptor>(
+ childDescriptors.size());
+ for (ComrelNodeDescriptor next : childDescriptors) {
+ String hint = ComrelVisualIDRegistry.getType(next.getVisualID());
+ IAdaptable elementAdapter = new CanonicalElementAdapter(
+ next.getModelElement(), hint);
+ CreateViewRequest.ViewDescriptor descriptor = new CreateViewRequest.ViewDescriptor(
+ elementAdapter, Node.class, hint, ViewUtil.APPEND, false,
+ host().getDiagramPreferencesHint());
+ viewDescriptors.add(descriptor);
+ }
+
+ boolean changed = deleteViews(orphaned.iterator());
+ //
+ CreateViewRequest request = getCreateViewRequest(viewDescriptors);
+ Command cmd = getCreateViewCommand(request);
+ if (cmd != null && cmd.canExecute()) {
+ SetViewMutabilityCommand.makeMutable(
+ new EObjectAdapter(host().getNotationView())).execute();
+ executeCommand(cmd);
+ @SuppressWarnings("unchecked")
+ List<IAdaptable> nl = (List<IAdaptable>) request.getNewObject();
+ createdViews.addAll(nl);
+ }
+ if (changed || createdViews.size() > 0) {
+ postProcessRefreshSemantic(createdViews);
+ }
+
+ Collection<IAdaptable> createdConnectionViews = refreshConnections();
+
+ if (createdViews.size() > 1) {
+ // perform a layout of the container
+ DeferredLayoutCommand layoutCmd = new DeferredLayoutCommand(host()
+ .getEditingDomain(), createdViews, host());
+ executeCommand(new ICommandProxy(layoutCmd));
+ }
+
+ createdViews.addAll(createdConnectionViews);
+
+ makeViewsImmutable(createdViews);
+ }
+
+ /**
+ * @generated
+ */
+ private Collection<IAdaptable> refreshConnections() {
+ Map<EObject, View> domain2NotationMap = new HashMap<EObject, View>();
+ Collection<ComrelLinkDescriptor> linkDescriptors = collectAllLinks(
+ getDiagram(), domain2NotationMap);
+ Collection existingLinks = new LinkedList(getDiagram().getEdges());
+ for (Iterator linksIterator = existingLinks.iterator(); linksIterator
+ .hasNext();) {
+ Edge nextDiagramLink = (Edge) linksIterator.next();
+ int diagramLinkVisualID = ComrelVisualIDRegistry
+ .getVisualID(nextDiagramLink);
+ if (diagramLinkVisualID == -1) {
+ if (nextDiagramLink.getSource() != null
+ && nextDiagramLink.getTarget() != null) {
+ linksIterator.remove();
+ }
+ continue;
+ }
+ EObject diagramLinkObject = nextDiagramLink.getElement();
+ EObject diagramLinkSrc = nextDiagramLink.getSource().getElement();
+ EObject diagramLinkDst = nextDiagramLink.getTarget().getElement();
+ for (Iterator<ComrelLinkDescriptor> linkDescriptorsIterator = linkDescriptors
+ .iterator(); linkDescriptorsIterator.hasNext();) {
+ ComrelLinkDescriptor nextLinkDescriptor = linkDescriptorsIterator
+ .next();
+ if (diagramLinkObject == nextLinkDescriptor.getModelElement()
+ && diagramLinkSrc == nextLinkDescriptor.getSource()
+ && diagramLinkDst == nextLinkDescriptor
+ .getDestination()
+ && diagramLinkVisualID == nextLinkDescriptor
+ .getVisualID()) {
+ linksIterator.remove();
+ linkDescriptorsIterator.remove();
+ break;
+ }
+ }
+ }
+ deleteViews(existingLinks.iterator());
+ return createConnections(linkDescriptors, domain2NotationMap);
+ }
+
+ /**
+ * @generated
+ */
+ private Collection<ComrelLinkDescriptor> collectAllLinks(View view,
+ Map<EObject, View> domain2NotationMap) {
+ if (!CompositeRefactoringEditPart.MODEL_ID
+ .equals(ComrelVisualIDRegistry.getModelID(view))) {
+ return Collections.emptyList();
+ }
+ LinkedList<ComrelLinkDescriptor> result = new LinkedList<ComrelLinkDescriptor>();
+ switch (ComrelVisualIDRegistry.getVisualID(view)) {
+ case CompositeRefactoringEditPart.VISUAL_ID: {
+ if (!domain2NotationMap.containsKey(view.getElement())) {
+ result.addAll(ComrelDiagramUpdater
+ .getCompositeRefactoring_1000ContainedLinks(view));
+ }
+ if (!domain2NotationMap.containsKey(view.getElement())
+ || view.getEAnnotation("Shortcut") == null) { //$NON-NLS-1$
+ domain2NotationMap.put(view.getElement(), view);
+ }
+ break;
+ }
+ case SingleInputPortEditPart.VISUAL_ID: {
+ if (!domain2NotationMap.containsKey(view.getElement())) {
+ result.addAll(ComrelDiagramUpdater
+ .getSingleInputPort_2001ContainedLinks(view));
+ }
+ if (!domain2NotationMap.containsKey(view.getElement())
+ || view.getEAnnotation("Shortcut") == null) { //$NON-NLS-1$
+ domain2NotationMap.put(view.getElement(), view);
+ }
+ break;
+ }
+ case CartesianQueuedUnitEditPart.VISUAL_ID: {
+ if (!domain2NotationMap.containsKey(view.getElement())) {
+ result.addAll(ComrelDiagramUpdater
+ .getCartesianQueuedUnit_2002ContainedLinks(view));
+ }
+ if (!domain2NotationMap.containsKey(view.getElement())
+ || view.getEAnnotation("Shortcut") == null) { //$NON-NLS-1$
+ domain2NotationMap.put(view.getElement(), view);
+ }
+ break;
+ }
+ case ParallelQueuedUnitEditPart.VISUAL_ID: {
+ if (!domain2NotationMap.containsKey(view.getElement())) {
+ result.addAll(ComrelDiagramUpdater
+ .getParallelQueuedUnit_2003ContainedLinks(view));
+ }
+ if (!domain2NotationMap.containsKey(view.getElement())
+ || view.getEAnnotation("Shortcut") == null) { //$NON-NLS-1$
+ domain2NotationMap.put(view.getElement(), view);
+ }
+ break;
+ }
+ case SingleQueuedUnitEditPart.VISUAL_ID: {
+ if (!domain2NotationMap.containsKey(view.getElement())) {
+ result.addAll(ComrelDiagramUpdater
+ .getSingleQueuedUnit_2004ContainedLinks(view));
+ }
+ if (!domain2NotationMap.containsKey(view.getElement())
+ || view.getEAnnotation("Shortcut") == null) { //$NON-NLS-1$
+ domain2NotationMap.put(view.getElement(), view);
+ }
+ break;
+ }
+ case SequentialUnitEditPart.VISUAL_ID: {
+ if (!domain2NotationMap.containsKey(view.getElement())) {
+ result.addAll(ComrelDiagramUpdater
+ .getSequentialUnit_2005ContainedLinks(view));
+ }
+ if (!domain2NotationMap.containsKey(view.getElement())
+ || view.getEAnnotation("Shortcut") == null) { //$NON-NLS-1$
+ domain2NotationMap.put(view.getElement(), view);
+ }
+ break;
+ }
+ case ConditionalUnitEditPart.VISUAL_ID: {
+ if (!domain2NotationMap.containsKey(view.getElement())) {
+ result.addAll(ComrelDiagramUpdater
+ .getConditionalUnit_2006ContainedLinks(view));
+ }
+ if (!domain2NotationMap.containsKey(view.getElement())
+ || view.getEAnnotation("Shortcut") == null) { //$NON-NLS-1$
+ domain2NotationMap.put(view.getElement(), view);
+ }
+ break;
+ }
+ case AtomicUnitEditPart.VISUAL_ID: {
+ if (!domain2NotationMap.containsKey(view.getElement())) {
+ result.addAll(ComrelDiagramUpdater
+ .getAtomicUnit_2007ContainedLinks(view));
+ }
+ if (!domain2NotationMap.containsKey(view.getElement())
+ || view.getEAnnotation("Shortcut") == null) { //$NON-NLS-1$
+ domain2NotationMap.put(view.getElement(), view);
+ }
+ break;
+ }
+ case SingleInputPort2EditPart.VISUAL_ID: {
+ if (!domain2NotationMap.containsKey(view.getElement())) {
+ result.addAll(ComrelDiagramUpdater
+ .getSingleInputPort_3001ContainedLinks(view));
+ }
+ if (!domain2NotationMap.containsKey(view.getElement())
+ || view.getEAnnotation("Shortcut") == null) { //$NON-NLS-1$
+ domain2NotationMap.put(view.getElement(), view);
+ }
+ break;
+ }
+ case MultiInputPortEditPart.VISUAL_ID: {
+ if (!domain2NotationMap.containsKey(view.getElement())) {
+ result.addAll(ComrelDiagramUpdater
+ .getMultiInputPort_3002ContainedLinks(view));
+ }
+ if (!domain2NotationMap.containsKey(view.getElement())
+ || view.getEAnnotation("Shortcut") == null) { //$NON-NLS-1$
+ domain2NotationMap.put(view.getElement(), view);
+ }
+ break;
+ }
+ case CartesianQueuedUnit2EditPart.VISUAL_ID: {
+ if (!domain2NotationMap.containsKey(view.getElement())) {
+ result.addAll(ComrelDiagramUpdater
+ .getCartesianQueuedUnit_3003ContainedLinks(view));
+ }
+ if (!domain2NotationMap.containsKey(view.getElement())
+ || view.getEAnnotation("Shortcut") == null) { //$NON-NLS-1$
+ domain2NotationMap.put(view.getElement(), view);
+ }
+ break;
+ }
+ case ParallelQueuedUnit2EditPart.VISUAL_ID: {
+ if (!domain2NotationMap.containsKey(view.getElement())) {
+ result.addAll(ComrelDiagramUpdater
+ .getParallelQueuedUnit_3004ContainedLinks(view));
+ }
+ if (!domain2NotationMap.containsKey(view.getElement())
+ || view.getEAnnotation("Shortcut") == null) { //$NON-NLS-1$
+ domain2NotationMap.put(view.getElement(), view);
+ }
+ break;
+ }
+ case SingleInputPort3EditPart.VISUAL_ID: {
+ if (!domain2NotationMap.containsKey(view.getElement())) {
+ result.addAll(ComrelDiagramUpdater
+ .getSingleInputPort_3005ContainedLinks(view));
+ }
+ if (!domain2NotationMap.containsKey(view.getElement())
+ || view.getEAnnotation("Shortcut") == null) { //$NON-NLS-1$
+ domain2NotationMap.put(view.getElement(), view);
+ }
+ break;
+ }
+ case MultiInputPort2EditPart.VISUAL_ID: {
+ if (!domain2NotationMap.containsKey(view.getElement())) {
+ result.addAll(ComrelDiagramUpdater
+ .getMultiInputPort_3006ContainedLinks(view));
+ }
+ if (!domain2NotationMap.containsKey(view.getElement())
+ || view.getEAnnotation("Shortcut") == null) { //$NON-NLS-1$
+ domain2NotationMap.put(view.getElement(), view);
+ }
+ break;
+ }
+ case CartesianQueuedUnit3EditPart.VISUAL_ID: {
+ if (!domain2NotationMap.containsKey(view.getElement())) {
+ result.addAll(ComrelDiagramUpdater
+ .getCartesianQueuedUnit_3007ContainedLinks(view));
+ }
+ if (!domain2NotationMap.containsKey(view.getElement())
+ || view.getEAnnotation("Shortcut") == null) { //$NON-NLS-1$
+ domain2NotationMap.put(view.getElement(), view);
+ }
+ break;
+ }
+ case SingleFeatureUnitEditPart.VISUAL_ID: {
+ if (!domain2NotationMap.containsKey(view.getElement())) {
+ result.addAll(ComrelDiagramUpdater
+ .getSingleFeatureUnit_3008ContainedLinks(view));
+ }
+ if (!domain2NotationMap.containsKey(view.getElement())
+ || view.getEAnnotation("Shortcut") == null) { //$NON-NLS-1$
+ domain2NotationMap.put(view.getElement(), view);
+ }
+ break;
+ }
+ case SingleInputPort4EditPart.VISUAL_ID: {
+ if (!domain2NotationMap.containsKey(view.getElement())) {
+ result.addAll(ComrelDiagramUpdater
+ .getSingleInputPort_3009ContainedLinks(view));
+ }
+ if (!domain2NotationMap.containsKey(view.getElement())
+ || view.getEAnnotation("Shortcut") == null) { //$NON-NLS-1$
+ domain2NotationMap.put(view.getElement(), view);
+ }
+ break;
+ }
+ case MultiInputPort3EditPart.VISUAL_ID: {
+ if (!domain2NotationMap.containsKey(view.getElement())) {
+ result.addAll(ComrelDiagramUpdater
+ .getMultiInputPort_3010ContainedLinks(view));
+ }
+ if (!domain2NotationMap.containsKey(view.getElement())
+ || view.getEAnnotation("Shortcut") == null) { //$NON-NLS-1$
+ domain2NotationMap.put(view.getElement(), view);
+ }
+ break;
+ }
+ case SingleOutputPortEditPart.VISUAL_ID: {
+ if (!domain2NotationMap.containsKey(view.getElement())) {
+ result.addAll(ComrelDiagramUpdater
+ .getSingleOutputPort_3011ContainedLinks(view));
+ }
+ if (!domain2NotationMap.containsKey(view.getElement())
+ || view.getEAnnotation("Shortcut") == null) { //$NON-NLS-1$
+ domain2NotationMap.put(view.getElement(), view);
+ }
+ break;
+ }
+ case MultiFeatureUnitEditPart.VISUAL_ID: {
+ if (!domain2NotationMap.containsKey(view.getElement())) {
+ result.addAll(ComrelDiagramUpdater
+ .getMultiFeatureUnit_3012ContainedLinks(view));
+ }
+ if (!domain2NotationMap.containsKey(view.getElement())
+ || view.getEAnnotation("Shortcut") == null) { //$NON-NLS-1$
+ domain2NotationMap.put(view.getElement(), view);
+ }
+ break;
+ }
+ case SingleInputPort5EditPart.VISUAL_ID: {
+ if (!domain2NotationMap.containsKey(view.getElement())) {
+ result.addAll(ComrelDiagramUpdater
+ .getSingleInputPort_3013ContainedLinks(view));
+ }
+ if (!domain2NotationMap.containsKey(view.getElement())
+ || view.getEAnnotation("Shortcut") == null) { //$NON-NLS-1$
+ domain2NotationMap.put(view.getElement(), view);
+ }
+ break;
+ }
+ case MultiInputPort4EditPart.VISUAL_ID: {
+ if (!domain2NotationMap.containsKey(view.getElement())) {
+ result.addAll(ComrelDiagramUpdater
+ .getMultiInputPort_3014ContainedLinks(view));
+ }
+ if (!domain2NotationMap.containsKey(view.getElement())
+ || view.getEAnnotation("Shortcut") == null) { //$NON-NLS-1$
+ domain2NotationMap.put(view.getElement(), view);
+ }
+ break;
+ }
+ case MultiOutputPortEditPart.VISUAL_ID: {
+ if (!domain2NotationMap.containsKey(view.getElement())) {
+ result.addAll(ComrelDiagramUpdater
+ .getMultiOutputPort_3015ContainedLinks(view));
+ }
+ if (!domain2NotationMap.containsKey(view.getElement())
+ || view.getEAnnotation("Shortcut") == null) { //$NON-NLS-1$
+ domain2NotationMap.put(view.getElement(), view);
+ }
+ break;
+ }
+ case SingleFilterUnitEditPart.VISUAL_ID: {
+ if (!domain2NotationMap.containsKey(view.getElement())) {
+ result.addAll(ComrelDiagramUpdater
+ .getSingleFilterUnit_3016ContainedLinks(view));
+ }
+ if (!domain2NotationMap.containsKey(view.getElement())
+ || view.getEAnnotation("Shortcut") == null) { //$NON-NLS-1$
+ domain2NotationMap.put(view.getElement(), view);
+ }
+ break;
+ }
+ case MultiInputPort5EditPart.VISUAL_ID: {
+ if (!domain2NotationMap.containsKey(view.getElement())) {
+ result.addAll(ComrelDiagramUpdater
+ .getMultiInputPort_3017ContainedLinks(view));
+ }
+ if (!domain2NotationMap.containsKey(view.getElement())
+ || view.getEAnnotation("Shortcut") == null) { //$NON-NLS-1$
+ domain2NotationMap.put(view.getElement(), view);
+ }
+ break;
+ }
+ case SingleOutputPort2EditPart.VISUAL_ID: {
+ if (!domain2NotationMap.containsKey(view.getElement())) {
+ result.addAll(ComrelDiagramUpdater
+ .getSingleOutputPort_3018ContainedLinks(view));
+ }
+ if (!domain2NotationMap.containsKey(view.getElement())
+ || view.getEAnnotation("Shortcut") == null) { //$NON-NLS-1$
+ domain2NotationMap.put(view.getElement(), view);
+ }
+ break;
+ }
+ case MultiFilterUnitEditPart.VISUAL_ID: {
+ if (!domain2NotationMap.containsKey(view.getElement())) {
+ result.addAll(ComrelDiagramUpdater
+ .getMultiFilterUnit_3019ContainedLinks(view));
+ }
+ if (!domain2NotationMap.containsKey(view.getElement())
+ || view.getEAnnotation("Shortcut") == null) { //$NON-NLS-1$
+ domain2NotationMap.put(view.getElement(), view);
+ }
+ break;
+ }
+ case MultiInputPort6EditPart.VISUAL_ID: {
+ if (!domain2NotationMap.containsKey(view.getElement())) {
+ result.addAll(ComrelDiagramUpdater
+ .getMultiInputPort_3020ContainedLinks(view));
+ }
+ if (!domain2NotationMap.containsKey(view.getElement())
+ || view.getEAnnotation("Shortcut") == null) { //$NON-NLS-1$
+ domain2NotationMap.put(view.getElement(), view);
+ }
+ break;
+ }
+ case MultiOutputPort2EditPart.VISUAL_ID: {
+ if (!domain2NotationMap.containsKey(view.getElement())) {
+ result.addAll(ComrelDiagramUpdater
+ .getMultiOutputPort_3021ContainedLinks(view));
+ }
+ if (!domain2NotationMap.containsKey(view.getElement())
+ || view.getEAnnotation("Shortcut") == null) { //$NON-NLS-1$
+ domain2NotationMap.put(view.getElement(), view);
+ }
+ break;
+ }
+ case SingleQueuedUnit2EditPart.VISUAL_ID: {
+ if (!domain2NotationMap.containsKey(view.getElement())) {
+ result.addAll(ComrelDiagramUpdater
+ .getSingleQueuedUnit_3022ContainedLinks(view));
+ }
+ if (!domain2NotationMap.containsKey(view.getElement())
+ || view.getEAnnotation("Shortcut") == null) { //$NON-NLS-1$
+ domain2NotationMap.put(view.getElement(), view);
+ }
+ break;
+ }
+ case SingleInputPort6EditPart.VISUAL_ID: {
+ if (!domain2NotationMap.containsKey(view.getElement())) {
+ result.addAll(ComrelDiagramUpdater
+ .getSingleInputPort_3023ContainedLinks(view));
+ }
+ if (!domain2NotationMap.containsKey(view.getElement())
+ || view.getEAnnotation("Shortcut") == null) { //$NON-NLS-1$
+ domain2NotationMap.put(view.getElement(), view);
+ }
+ break;
+ }
+ case MultiInputPort7EditPart.VISUAL_ID: {
+ if (!domain2NotationMap.containsKey(view.getElement())) {
+ result.addAll(ComrelDiagramUpdater
+ .getMultiInputPort_3024ContainedLinks(view));
+ }
+ if (!domain2NotationMap.containsKey(view.getElement())
+ || view.getEAnnotation("Shortcut") == null) { //$NON-NLS-1$
+ domain2NotationMap.put(view.getElement(), view);
+ }
+ break;
+ }
+ case CartesianQueuedUnit4EditPart.VISUAL_ID: {
+ if (!domain2NotationMap.containsKey(view.getElement())) {
+ result.addAll(ComrelDiagramUpdater
+ .getCartesianQueuedUnit_3025ContainedLinks(view));
+ }
+ if (!domain2NotationMap.containsKey(view.getElement())
+ || view.getEAnnotation("Shortcut") == null) { //$NON-NLS-1$
+ domain2NotationMap.put(view.getElement(), view);
+ }
+ break;
+ }
+ case SequentialUnit2EditPart.VISUAL_ID: {
+ if (!domain2NotationMap.containsKey(view.getElement())) {
+ result.addAll(ComrelDiagramUpdater
+ .getSequentialUnit_3026ContainedLinks(view));
+ }
+ if (!domain2NotationMap.containsKey(view.getElement())
+ || view.getEAnnotation("Shortcut") == null) { //$NON-NLS-1$
+ domain2NotationMap.put(view.getElement(), view);
+ }
+ break;
+ }
+ case SingleInputPort7EditPart.VISUAL_ID: {
+ if (!domain2NotationMap.containsKey(view.getElement())) {
+ result.addAll(ComrelDiagramUpdater
+ .getSingleInputPort_3027ContainedLinks(view));
+ }
+ if (!domain2NotationMap.containsKey(view.getElement())
+ || view.getEAnnotation("Shortcut") == null) { //$NON-NLS-1$
+ domain2NotationMap.put(view.getElement(), view);
+ }
+ break;
+ }
+ case MultiInputPort8EditPart.VISUAL_ID: {
+ if (!domain2NotationMap.containsKey(view.getElement())) {
+ result.addAll(ComrelDiagramUpdater
+ .getMultiInputPort_3028ContainedLinks(view));
+ }
+ if (!domain2NotationMap.containsKey(view.getElement())
+ || view.getEAnnotation("Shortcut") == null) { //$NON-NLS-1$
+ domain2NotationMap.put(view.getElement(), view);
+ }
+ break;
+ }
+ case CartesianQueuedUnit5EditPart.VISUAL_ID: {
+ if (!domain2NotationMap.containsKey(view.getElement())) {
+ result.addAll(ComrelDiagramUpdater
+ .getCartesianQueuedUnit_3029ContainedLinks(view));
+ }
+ if (!domain2NotationMap.containsKey(view.getElement())
+ || view.getEAnnotation("Shortcut") == null) { //$NON-NLS-1$
+ domain2NotationMap.put(view.getElement(), view);
+ }
+ break;
+ }
+ case ConditionalUnit2EditPart.VISUAL_ID: {
+ if (!domain2NotationMap.containsKey(view.getElement())) {
+ result.addAll(ComrelDiagramUpdater
+ .getConditionalUnit_3030ContainedLinks(view));
+ }
+ if (!domain2NotationMap.containsKey(view.getElement())
+ || view.getEAnnotation("Shortcut") == null) { //$NON-NLS-1$
+ domain2NotationMap.put(view.getElement(), view);
+ }
+ break;
+ }
+ case SingleInputPort8EditPart.VISUAL_ID: {
+ if (!domain2NotationMap.containsKey(view.getElement())) {
+ result.addAll(ComrelDiagramUpdater
+ .getSingleInputPort_3031ContainedLinks(view));
+ }
+ if (!domain2NotationMap.containsKey(view.getElement())
+ || view.getEAnnotation("Shortcut") == null) { //$NON-NLS-1$
+ domain2NotationMap.put(view.getElement(), view);
+ }
+ break;
+ }
+ case MultiInputPort9EditPart.VISUAL_ID: {
+ if (!domain2NotationMap.containsKey(view.getElement())) {
+ result.addAll(ComrelDiagramUpdater
+ .getMultiInputPort_3032ContainedLinks(view));
+ }
+ if (!domain2NotationMap.containsKey(view.getElement())
+ || view.getEAnnotation("Shortcut") == null) { //$NON-NLS-1$
+ domain2NotationMap.put(view.getElement(), view);
+ }
+ break;
+ }
+ case CartesianQueuedUnit6EditPart.VISUAL_ID: {
+ if (!domain2NotationMap.containsKey(view.getElement())) {
+ result.addAll(ComrelDiagramUpdater
+ .getCartesianQueuedUnit_3033ContainedLinks(view));
+ }
+ if (!domain2NotationMap.containsKey(view.getElement())
+ || view.getEAnnotation("Shortcut") == null) { //$NON-NLS-1$
+ domain2NotationMap.put(view.getElement(), view);
+ }
+ break;
+ }
+ case AtomicUnit2EditPart.VISUAL_ID: {
+ if (!domain2NotationMap.containsKey(view.getElement())) {
+ result.addAll(ComrelDiagramUpdater
+ .getAtomicUnit_3034ContainedLinks(view));
+ }
+ if (!domain2NotationMap.containsKey(view.getElement())
+ || view.getEAnnotation("Shortcut") == null) { //$NON-NLS-1$
+ domain2NotationMap.put(view.getElement(), view);
+ }
+ break;
+ }
+ case SingleInputPort9EditPart.VISUAL_ID: {
+ if (!domain2NotationMap.containsKey(view.getElement())) {
+ result.addAll(ComrelDiagramUpdater
+ .getSingleInputPort_3035ContainedLinks(view));
+ }
+ if (!domain2NotationMap.containsKey(view.getElement())
+ || view.getEAnnotation("Shortcut") == null) { //$NON-NLS-1$
+ domain2NotationMap.put(view.getElement(), view);
+ }
+ break;
+ }
+ case ParallelQueuedUnit3EditPart.VISUAL_ID: {
+ if (!domain2NotationMap.containsKey(view.getElement())) {
+ result.addAll(ComrelDiagramUpdater
+ .getParallelQueuedUnit_3036ContainedLinks(view));
+ }
+ if (!domain2NotationMap.containsKey(view.getElement())
+ || view.getEAnnotation("Shortcut") == null) { //$NON-NLS-1$
+ domain2NotationMap.put(view.getElement(), view);
+ }
+ break;
+ }
+ case ParallelQueuedUnit4EditPart.VISUAL_ID: {
+ if (!domain2NotationMap.containsKey(view.getElement())) {
+ result.addAll(ComrelDiagramUpdater
+ .getParallelQueuedUnit_3037ContainedLinks(view));
+ }
+ if (!domain2NotationMap.containsKey(view.getElement())
+ || view.getEAnnotation("Shortcut") == null) { //$NON-NLS-1$
+ domain2NotationMap.put(view.getElement(), view);
+ }
+ break;
+ }
+ case SingleFeatureUnit2EditPart.VISUAL_ID: {
+ if (!domain2NotationMap.containsKey(view.getElement())) {
+ result.addAll(ComrelDiagramUpdater
+ .getSingleFeatureUnit_3038ContainedLinks(view));
+ }
+ if (!domain2NotationMap.containsKey(view.getElement())
+ || view.getEAnnotation("Shortcut") == null) { //$NON-NLS-1$
+ domain2NotationMap.put(view.getElement(), view);
+ }
+ break;
+ }
+ case MultiFeatureUnit2EditPart.VISUAL_ID: {
+ if (!domain2NotationMap.containsKey(view.getElement())) {
+ result.addAll(ComrelDiagramUpdater
+ .getMultiFeatureUnit_3039ContainedLinks(view));
+ }
+ if (!domain2NotationMap.containsKey(view.getElement())
+ || view.getEAnnotation("Shortcut") == null) { //$NON-NLS-1$
+ domain2NotationMap.put(view.getElement(), view);
+ }
+ break;
+ }
+ case SingleFilterUnit2EditPart.VISUAL_ID: {
+ if (!domain2NotationMap.containsKey(view.getElement())) {
+ result.addAll(ComrelDiagramUpdater
+ .getSingleFilterUnit_3040ContainedLinks(view));
+ }
+ if (!domain2NotationMap.containsKey(view.getElement())
+ || view.getEAnnotation("Shortcut") == null) { //$NON-NLS-1$
+ domain2NotationMap.put(view.getElement(), view);
+ }
+ break;
+ }
+ case MultiFilterUnit2EditPart.VISUAL_ID: {
+ if (!domain2NotationMap.containsKey(view.getElement())) {
+ result.addAll(ComrelDiagramUpdater
+ .getMultiFilterUnit_3041ContainedLinks(view));
+ }
+ if (!domain2NotationMap.containsKey(view.getElement())
+ || view.getEAnnotation("Shortcut") == null) { //$NON-NLS-1$
+ domain2NotationMap.put(view.getElement(), view);
+ }
+ break;
+ }
+ case SingleQueuedUnit3EditPart.VISUAL_ID: {
+ if (!domain2NotationMap.containsKey(view.getElement())) {
+ result.addAll(ComrelDiagramUpdater
+ .getSingleQueuedUnit_3042ContainedLinks(view));
+ }
+ if (!domain2NotationMap.containsKey(view.getElement())
+ || view.getEAnnotation("Shortcut") == null) { //$NON-NLS-1$
+ domain2NotationMap.put(view.getElement(), view);
+ }
+ break;
+ }
+ case ParallelQueuedUnit5EditPart.VISUAL_ID: {
+ if (!domain2NotationMap.containsKey(view.getElement())) {
+ result.addAll(ComrelDiagramUpdater
+ .getParallelQueuedUnit_3043ContainedLinks(view));
+ }
+ if (!domain2NotationMap.containsKey(view.getElement())
+ || view.getEAnnotation("Shortcut") == null) { //$NON-NLS-1$
+ domain2NotationMap.put(view.getElement(), view);
+ }
+ break;
+ }
+ case SequentialUnit3EditPart.VISUAL_ID: {
+ if (!domain2NotationMap.containsKey(view.getElement())) {
+ result.addAll(ComrelDiagramUpdater
+ .getSequentialUnit_3044ContainedLinks(view));
+ }
+ if (!domain2NotationMap.containsKey(view.getElement())
+ || view.getEAnnotation("Shortcut") == null) { //$NON-NLS-1$
+ domain2NotationMap.put(view.getElement(), view);
+ }
+ break;
+ }
+ case ParallelQueuedUnit6EditPart.VISUAL_ID: {
+ if (!domain2NotationMap.containsKey(view.getElement())) {
+ result.addAll(ComrelDiagramUpdater
+ .getParallelQueuedUnit_3045ContainedLinks(view));
+ }
+ if (!domain2NotationMap.containsKey(view.getElement())
+ || view.getEAnnotation("Shortcut") == null) { //$NON-NLS-1$
+ domain2NotationMap.put(view.getElement(), view);
+ }
+ break;
+ }
+ case ConditionalUnit3EditPart.VISUAL_ID: {
+ if (!domain2NotationMap.containsKey(view.getElement())) {
+ result.addAll(ComrelDiagramUpdater
+ .getConditionalUnit_3046ContainedLinks(view));
+ }
+ if (!domain2NotationMap.containsKey(view.getElement())
+ || view.getEAnnotation("Shortcut") == null) { //$NON-NLS-1$
+ domain2NotationMap.put(view.getElement(), view);
+ }
+ break;
+ }
+ case CartesianQueuedUnit7EditPart.VISUAL_ID: {
+ if (!domain2NotationMap.containsKey(view.getElement())) {
+ result.addAll(ComrelDiagramUpdater
+ .getCartesianQueuedUnit_3047ContainedLinks(view));
+ }
+ if (!domain2NotationMap.containsKey(view.getElement())
+ || view.getEAnnotation("Shortcut") == null) { //$NON-NLS-1$
+ domain2NotationMap.put(view.getElement(), view);
+ }
+ break;
+ }
+ case ParallelQueuedUnit7EditPart.VISUAL_ID: {
+ if (!domain2NotationMap.containsKey(view.getElement())) {
+ result.addAll(ComrelDiagramUpdater
+ .getParallelQueuedUnit_3048ContainedLinks(view));
+ }
+ if (!domain2NotationMap.containsKey(view.getElement())
+ || view.getEAnnotation("Shortcut") == null) { //$NON-NLS-1$
+ domain2NotationMap.put(view.getElement(), view);
+ }
+ break;
+ }
+ case AtomicUnit3EditPart.VISUAL_ID: {
+ if (!domain2NotationMap.containsKey(view.getElement())) {
+ result.addAll(ComrelDiagramUpdater
+ .getAtomicUnit_3049ContainedLinks(view));
+ }
+ if (!domain2NotationMap.containsKey(view.getElement())
+ || view.getEAnnotation("Shortcut") == null) { //$NON-NLS-1$
+ domain2NotationMap.put(view.getElement(), view);
+ }
+ break;
+ }
+ case SingleFeatureUnit3EditPart.VISUAL_ID: {
+ if (!domain2NotationMap.containsKey(view.getElement())) {
+ result.addAll(ComrelDiagramUpdater
+ .getSingleFeatureUnit_3050ContainedLinks(view));
+ }
+ if (!domain2NotationMap.containsKey(view.getElement())
+ || view.getEAnnotation("Shortcut") == null) { //$NON-NLS-1$
+ domain2NotationMap.put(view.getElement(), view);
+ }
+ break;
+ }
+ case MultiFeatureUnit3EditPart.VISUAL_ID: {
+ if (!domain2NotationMap.containsKey(view.getElement())) {
+ result.addAll(ComrelDiagramUpdater
+ .getMultiFeatureUnit_3051ContainedLinks(view));
+ }
+ if (!domain2NotationMap.containsKey(view.getElement())
+ || view.getEAnnotation("Shortcut") == null) { //$NON-NLS-1$
+ domain2NotationMap.put(view.getElement(), view);
+ }
+ break;
+ }
+ case SingleFilterUnit3EditPart.VISUAL_ID: {
+ if (!domain2NotationMap.containsKey(view.getElement())) {
+ result.addAll(ComrelDiagramUpdater
+ .getSingleFilterUnit_3052ContainedLinks(view));
+ }
+ if (!domain2NotationMap.containsKey(view.getElement())
+ || view.getEAnnotation("Shortcut") == null) { //$NON-NLS-1$
+ domain2NotationMap.put(view.getElement(), view);
+ }
+ break;
+ }
+ case MultiFilterUnit3EditPart.VISUAL_ID: {
+ if (!domain2NotationMap.containsKey(view.getElement())) {
+ result.addAll(ComrelDiagramUpdater
+ .getMultiFilterUnit_3053ContainedLinks(view));
+ }
+ if (!domain2NotationMap.containsKey(view.getElement())
+ || view.getEAnnotation("Shortcut") == null) { //$NON-NLS-1$
+ domain2NotationMap.put(view.getElement(), view);
+ }
+ break;
+ }
+ case SingleQueuedUnit4EditPart.VISUAL_ID: {
+ if (!domain2NotationMap.containsKey(view.getElement())) {
+ result.addAll(ComrelDiagramUpdater
+ .getSingleQueuedUnit_3054ContainedLinks(view));
+ }
+ if (!domain2NotationMap.containsKey(view.getElement())
+ || view.getEAnnotation("Shortcut") == null) { //$NON-NLS-1$
+ domain2NotationMap.put(view.getElement(), view);
+ }
+ break;
+ }
+ case SingleFeatureUnit4EditPart.VISUAL_ID: {
+ if (!domain2NotationMap.containsKey(view.getElement())) {
+ result.addAll(ComrelDiagramUpdater
+ .getSingleFeatureUnit_3055ContainedLinks(view));
+ }
+ if (!domain2NotationMap.containsKey(view.getElement())
+ || view.getEAnnotation("Shortcut") == null) { //$NON-NLS-1$
+ domain2NotationMap.put(view.getElement(), view);
+ }
+ break;
+ }
+ case MultiFeatureUnit4EditPart.VISUAL_ID: {
+ if (!domain2NotationMap.containsKey(view.getElement())) {
+ result.addAll(ComrelDiagramUpdater
+ .getMultiFeatureUnit_3056ContainedLinks(view));
+ }
+ if (!domain2NotationMap.containsKey(view.getElement())
+ || view.getEAnnotation("Shortcut") == null) { //$NON-NLS-1$
+ domain2NotationMap.put(view.getElement(), view);
+ }
+ break;
+ }
+ case SingleFilterUnit4EditPart.VISUAL_ID: {
+ if (!domain2NotationMap.containsKey(view.getElement())) {
+ result.addAll(ComrelDiagramUpdater
+ .getSingleFilterUnit_3057ContainedLinks(view));
+ }
+ if (!domain2NotationMap.containsKey(view.getElement())
+ || view.getEAnnotation("Shortcut") == null) { //$NON-NLS-1$
+ domain2NotationMap.put(view.getElement(), view);
+ }
+ break;
+ }
+ case MultiFilterUnit4EditPart.VISUAL_ID: {
+ if (!domain2NotationMap.containsKey(view.getElement())) {
+ result.addAll(ComrelDiagramUpdater
+ .getMultiFilterUnit_3058ContainedLinks(view));
+ }
+ if (!domain2NotationMap.containsKey(view.getElement())
+ || view.getEAnnotation("Shortcut") == null) { //$NON-NLS-1$
+ domain2NotationMap.put(view.getElement(), view);
+ }
+ break;
+ }
+ case SingleQueuedUnit5EditPart.VISUAL_ID: {
+ if (!domain2NotationMap.containsKey(view.getElement())) {
+ result.addAll(ComrelDiagramUpdater
+ .getSingleQueuedUnit_3059ContainedLinks(view));
+ }
+ if (!domain2NotationMap.containsKey(view.getElement())
+ || view.getEAnnotation("Shortcut") == null) { //$NON-NLS-1$
+ domain2NotationMap.put(view.getElement(), view);
+ }
+ break;
+ }
+ case SequentialUnit4EditPart.VISUAL_ID: {
+ if (!domain2NotationMap.containsKey(view.getElement())) {
+ result.addAll(ComrelDiagramUpdater
+ .getSequentialUnit_3060ContainedLinks(view));
+ }
+ if (!domain2NotationMap.containsKey(view.getElement())
+ || view.getEAnnotation("Shortcut") == null) { //$NON-NLS-1$
+ domain2NotationMap.put(view.getElement(), view);
+ }
+ break;
+ }
+ case SingleFeatureUnit5EditPart.VISUAL_ID: {
+ if (!domain2NotationMap.containsKey(view.getElement())) {
+ result.addAll(ComrelDiagramUpdater
+ .getSingleFeatureUnit_3061ContainedLinks(view));
+ }
+ if (!domain2NotationMap.containsKey(view.getElement())
+ || view.getEAnnotation("Shortcut") == null) { //$NON-NLS-1$
+ domain2NotationMap.put(view.getElement(), view);
+ }
+ break;
+ }
+ case MultiFeatureUnit5EditPart.VISUAL_ID: {
+ if (!domain2NotationMap.containsKey(view.getElement())) {
+ result.addAll(ComrelDiagramUpdater
+ .getMultiFeatureUnit_3062ContainedLinks(view));
+ }
+ if (!domain2NotationMap.containsKey(view.getElement())
+ || view.getEAnnotation("Shortcut") == null) { //$NON-NLS-1$
+ domain2NotationMap.put(view.getElement(), view);
+ }
+ break;
+ }
+ case SingleFilterUnit5EditPart.VISUAL_ID: {
+ if (!domain2NotationMap.containsKey(view.getElement())) {
+ result.addAll(ComrelDiagramUpdater
+ .getSingleFilterUnit_3063ContainedLinks(view));
+ }
+ if (!domain2NotationMap.containsKey(view.getElement())
+ || view.getEAnnotation("Shortcut") == null) { //$NON-NLS-1$
+ domain2NotationMap.put(view.getElement(), view);
+ }
+ break;
+ }
+ case MultiFilterUnit5EditPart.VISUAL_ID: {
+ if (!domain2NotationMap.containsKey(view.getElement())) {
+ result.addAll(ComrelDiagramUpdater
+ .getMultiFilterUnit_3064ContainedLinks(view));
+ }
+ if (!domain2NotationMap.containsKey(view.getElement())
+ || view.getEAnnotation("Shortcut") == null) { //$NON-NLS-1$
+ domain2NotationMap.put(view.getElement(), view);
+ }
+ break;
+ }
+ case SingleQueuedUnit6EditPart.VISUAL_ID: {
+ if (!domain2NotationMap.containsKey(view.getElement())) {
+ result.addAll(ComrelDiagramUpdater
+ .getSingleQueuedUnit_3065ContainedLinks(view));
+ }
+ if (!domain2NotationMap.containsKey(view.getElement())
+ || view.getEAnnotation("Shortcut") == null) { //$NON-NLS-1$
+ domain2NotationMap.put(view.getElement(), view);
+ }
+ break;
+ }
+ case ConditionalUnit4EditPart.VISUAL_ID: {
+ if (!domain2NotationMap.containsKey(view.getElement())) {
+ result.addAll(ComrelDiagramUpdater
+ .getConditionalUnit_3066ContainedLinks(view));
+ }
+ if (!domain2NotationMap.containsKey(view.getElement())
+ || view.getEAnnotation("Shortcut") == null) { //$NON-NLS-1$
+ domain2NotationMap.put(view.getElement(), view);
+ }
+ break;
+ }
+ case SingleQueuedUnit7EditPart.VISUAL_ID: {
+ if (!domain2NotationMap.containsKey(view.getElement())) {
+ result.addAll(ComrelDiagramUpdater
+ .getSingleQueuedUnit_3067ContainedLinks(view));
+ }
+ if (!domain2NotationMap.containsKey(view.getElement())
+ || view.getEAnnotation("Shortcut") == null) { //$NON-NLS-1$
+ domain2NotationMap.put(view.getElement(), view);
+ }
+ break;
+ }
+ case AtomicUnit4EditPart.VISUAL_ID: {
+ if (!domain2NotationMap.containsKey(view.getElement())) {
+ result.addAll(ComrelDiagramUpdater
+ .getAtomicUnit_3068ContainedLinks(view));
+ }
+ if (!domain2NotationMap.containsKey(view.getElement())
+ || view.getEAnnotation("Shortcut") == null) { //$NON-NLS-1$
+ domain2NotationMap.put(view.getElement(), view);
+ }
+ break;
+ }
+ case SequentialUnit5EditPart.VISUAL_ID: {
+ if (!domain2NotationMap.containsKey(view.getElement())) {
+ result.addAll(ComrelDiagramUpdater
+ .getSequentialUnit_3069ContainedLinks(view));
+ }
+ if (!domain2NotationMap.containsKey(view.getElement())
+ || view.getEAnnotation("Shortcut") == null) { //$NON-NLS-1$
+ domain2NotationMap.put(view.getElement(), view);
+ }
+ break;
+ }
+ case SequentialUnit6EditPart.VISUAL_ID: {
+ if (!domain2NotationMap.containsKey(view.getElement())) {
+ result.addAll(ComrelDiagramUpdater
+ .getSequentialUnit_3070ContainedLinks(view));
+ }
+ if (!domain2NotationMap.containsKey(view.getElement())
+ || view.getEAnnotation("Shortcut") == null) { //$NON-NLS-1$
+ domain2NotationMap.put(view.getElement(), view);
+ }
+ break;
+ }
+ case ConditionalUnit5EditPart.VISUAL_ID: {
+ if (!domain2NotationMap.containsKey(view.getElement())) {
+ result.addAll(ComrelDiagramUpdater
+ .getConditionalUnit_3071ContainedLinks(view));
+ }
+ if (!domain2NotationMap.containsKey(view.getElement())
+ || view.getEAnnotation("Shortcut") == null) { //$NON-NLS-1$
+ domain2NotationMap.put(view.getElement(), view);
+ }
+ break;
+ }
+ case ConditionalUnit6EditPart.VISUAL_ID: {
+ if (!domain2NotationMap.containsKey(view.getElement())) {
+ result.addAll(ComrelDiagramUpdater
+ .getConditionalUnit_3072ContainedLinks(view));
+ }
+ if (!domain2NotationMap.containsKey(view.getElement())
+ || view.getEAnnotation("Shortcut") == null) { //$NON-NLS-1$
+ domain2NotationMap.put(view.getElement(), view);
+ }
+ break;
+ }
+ case SequentialUnit7EditPart.VISUAL_ID: {
+ if (!domain2NotationMap.containsKey(view.getElement())) {
+ result.addAll(ComrelDiagramUpdater
+ .getSequentialUnit_3073ContainedLinks(view));
+ }
+ if (!domain2NotationMap.containsKey(view.getElement())
+ || view.getEAnnotation("Shortcut") == null) { //$NON-NLS-1$
+ domain2NotationMap.put(view.getElement(), view);
+ }
+ break;
+ }
+ case AtomicUnit5EditPart.VISUAL_ID: {
+ if (!domain2NotationMap.containsKey(view.getElement())) {
+ result.addAll(ComrelDiagramUpdater
+ .getAtomicUnit_3074ContainedLinks(view));
+ }
+ if (!domain2NotationMap.containsKey(view.getElement())
+ || view.getEAnnotation("Shortcut") == null) { //$NON-NLS-1$
+ domain2NotationMap.put(view.getElement(), view);
+ }
+ break;
+ }
+ case ConditionalUnit7EditPart.VISUAL_ID: {
+ if (!domain2NotationMap.containsKey(view.getElement())) {
+ result.addAll(ComrelDiagramUpdater
+ .getConditionalUnit_3075ContainedLinks(view));
+ }
+ if (!domain2NotationMap.containsKey(view.getElement())
+ || view.getEAnnotation("Shortcut") == null) { //$NON-NLS-1$
+ domain2NotationMap.put(view.getElement(), view);
+ }
+ break;
+ }
+ case ConditionCheckEditPart.VISUAL_ID: {
+ if (!domain2NotationMap.containsKey(view.getElement())) {
+ result.addAll(ComrelDiagramUpdater
+ .getConditionCheck_3076ContainedLinks(view));
+ }
+ if (!domain2NotationMap.containsKey(view.getElement())
+ || view.getEAnnotation("Shortcut") == null) { //$NON-NLS-1$
+ domain2NotationMap.put(view.getElement(), view);
+ }
+ break;
+ }
+ case AtomicUnit6EditPart.VISUAL_ID: {
+ if (!domain2NotationMap.containsKey(view.getElement())) {
+ result.addAll(ComrelDiagramUpdater
+ .getAtomicUnit_3077ContainedLinks(view));
+ }
+ if (!domain2NotationMap.containsKey(view.getElement())
+ || view.getEAnnotation("Shortcut") == null) { //$NON-NLS-1$
+ domain2NotationMap.put(view.getElement(), view);
+ }
+ break;
+ }
+ case AtomicUnit7EditPart.VISUAL_ID: {
+ if (!domain2NotationMap.containsKey(view.getElement())) {
+ result.addAll(ComrelDiagramUpdater
+ .getAtomicUnit_3078ContainedLinks(view));
+ }
+ if (!domain2NotationMap.containsKey(view.getElement())
+ || view.getEAnnotation("Shortcut") == null) { //$NON-NLS-1$
+ domain2NotationMap.put(view.getElement(), view);
+ }
+ break;
+ }
+ case SinglePortMappingEditPart.VISUAL_ID: {
+ if (!domain2NotationMap.containsKey(view.getElement())) {
+ result.addAll(ComrelDiagramUpdater
+ .getSinglePortMapping_4001ContainedLinks(view));
+ }
+ if (!domain2NotationMap.containsKey(view.getElement())
+ || view.getEAnnotation("Shortcut") == null) { //$NON-NLS-1$
+ domain2NotationMap.put(view.getElement(), view);
+ }
+ break;
+ }
+ case MultiPortMappingEditPart.VISUAL_ID: {
+ if (!domain2NotationMap.containsKey(view.getElement())) {
+ result.addAll(ComrelDiagramUpdater
+ .getMultiPortMapping_4002ContainedLinks(view));
+ }
+ if (!domain2NotationMap.containsKey(view.getElement())
+ || view.getEAnnotation("Shortcut") == null) { //$NON-NLS-1$
+ domain2NotationMap.put(view.getElement(), view);
+ }
+ break;
+ }
+ case MultiSinglePortMappingEditPart.VISUAL_ID: {
+ if (!domain2NotationMap.containsKey(view.getElement())) {
+ result.addAll(ComrelDiagramUpdater
+ .getMultiSinglePortMapping_4003ContainedLinks(view));
+ }
+ if (!domain2NotationMap.containsKey(view.getElement())
+ || view.getEAnnotation("Shortcut") == null) { //$NON-NLS-1$
+ domain2NotationMap.put(view.getElement(), view);
+ }
+ break;
+ }
+ }
+ for (Iterator children = view.getChildren().iterator(); children
+ .hasNext();) {
+ result.addAll(collectAllLinks((View) children.next(),
+ domain2NotationMap));
+ }
+ for (Iterator edges = view.getSourceEdges().iterator(); edges.hasNext();) {
+ result.addAll(collectAllLinks((View) edges.next(),
+ domain2NotationMap));
+ }
+ return result;
+ }
+
+ /**
+ * @generated
+ */
+ private Collection<IAdaptable> createConnections(
+ Collection<ComrelLinkDescriptor> linkDescriptors,
+ Map<EObject, View> domain2NotationMap) {
+ LinkedList<IAdaptable> adapters = new LinkedList<IAdaptable>();
+ for (ComrelLinkDescriptor nextLinkDescriptor : linkDescriptors) {
+ EditPart sourceEditPart = getEditPart(
+ nextLinkDescriptor.getSource(), domain2NotationMap);
+ EditPart targetEditPart = getEditPart(
+ nextLinkDescriptor.getDestination(), domain2NotationMap);
+ if (sourceEditPart == null || targetEditPart == null) {
+ continue;
+ }
+ CreateConnectionViewRequest.ConnectionViewDescriptor descriptor = new CreateConnectionViewRequest.ConnectionViewDescriptor(
+ nextLinkDescriptor.getSemanticAdapter(),
+ ComrelVisualIDRegistry.getType(nextLinkDescriptor
+ .getVisualID()), ViewUtil.APPEND, false,
+ ((IGraphicalEditPart) getHost())
+ .getDiagramPreferencesHint());
+ CreateConnectionViewRequest ccr = new CreateConnectionViewRequest(
+ descriptor);
+ ccr.setType(RequestConstants.REQ_CONNECTION_START);
+ ccr.setSourceEditPart(sourceEditPart);
+ sourceEditPart.getCommand(ccr);
+ ccr.setTargetEditPart(targetEditPart);
+ ccr.setType(RequestConstants.REQ_CONNECTION_END);
+ Command cmd = targetEditPart.getCommand(ccr);
+ if (cmd != null && cmd.canExecute()) {
+ executeCommand(cmd);
+ IAdaptable viewAdapter = (IAdaptable) ccr.getNewObject();
+ if (viewAdapter != null) {
+ adapters.add(viewAdapter);
+ }
+ }
+ }
+ return adapters;
+ }
+
+ /**
+ * @generated
+ */
+ private EditPart getEditPart(EObject domainModelElement,
+ Map<EObject, View> domain2NotationMap) {
+ View view = (View) domain2NotationMap.get(domainModelElement);
+ if (view != null) {
+ return (EditPart) getHost().getViewer().getEditPartRegistry()
+ .get(view);
+ }
+ return null;
+ }
+
+ /**
+ * @generated
+ */
+ private Diagram getDiagram() {
+ return ((View) getHost().getModel()).getDiagram();
+ }
+}
diff --git a/org.eclipse.emf.refactor.comrel.diagram/src/comrel/diagram/edit/policies/CompositeRefactoringItemSemanticEditPolicy.java b/org.eclipse.emf.refactor.comrel.diagram/src/comrel/diagram/edit/policies/CompositeRefactoringItemSemanticEditPolicy.java
new file mode 100644
index 0000000..1d7ed72
--- /dev/null
+++ b/org.eclipse.emf.refactor.comrel.diagram/src/comrel/diagram/edit/policies/CompositeRefactoringItemSemanticEditPolicy.java
@@ -0,0 +1,91 @@
+/*
+ *
+ */
+package comrel.diagram.edit.policies;
+
+import org.eclipse.emf.transaction.TransactionalEditingDomain;
+import org.eclipse.gef.commands.Command;
+import org.eclipse.gmf.runtime.diagram.ui.editparts.IGraphicalEditPart;
+import org.eclipse.gmf.runtime.emf.commands.core.commands.DuplicateEObjectsCommand;
+import org.eclipse.gmf.runtime.emf.type.core.requests.CreateElementRequest;
+import org.eclipse.gmf.runtime.emf.type.core.requests.DuplicateElementsRequest;
+
+import comrel.diagram.edit.commands.AtomicUnitCreateCommand;
+import comrel.diagram.edit.commands.CartesianQueuedUnitCreateCommand;
+import comrel.diagram.edit.commands.ConditionalUnitCreateCommand;
+import comrel.diagram.edit.commands.ParallelQueuedUnitCreateCommand;
+import comrel.diagram.edit.commands.SequentialUnitCreateCommand;
+import comrel.diagram.edit.commands.SingleInputPortCreateCommand;
+import comrel.diagram.edit.commands.SingleQueuedUnitCreateCommand;
+import comrel.diagram.providers.ComrelElementTypes;
+
+/**
+ * @generated
+ */
+public class CompositeRefactoringItemSemanticEditPolicy extends
+ ComrelBaseItemSemanticEditPolicy {
+
+ /**
+ * @generated
+ */
+ public CompositeRefactoringItemSemanticEditPolicy() {
+ super(ComrelElementTypes.CompositeRefactoring_1000);
+ }
+
+ /**
+ * @generated
+ */
+ protected Command getCreateCommand(CreateElementRequest req) {
+ if (ComrelElementTypes.SingleInputPort_2001 == req.getElementType()) {
+ return getGEFWrapper(new SingleInputPortCreateCommand(req));
+ }
+ if (ComrelElementTypes.CartesianQueuedUnit_2002 == req.getElementType()) {
+ return getGEFWrapper(new CartesianQueuedUnitCreateCommand(req));
+ }
+ if (ComrelElementTypes.ParallelQueuedUnit_2003 == req.getElementType()) {
+ return getGEFWrapper(new ParallelQueuedUnitCreateCommand(req));
+ }
+ if (ComrelElementTypes.SingleQueuedUnit_2004 == req.getElementType()) {
+ return getGEFWrapper(new SingleQueuedUnitCreateCommand(req));
+ }
+ if (ComrelElementTypes.SequentialUnit_2005 == req.getElementType()) {
+ return getGEFWrapper(new SequentialUnitCreateCommand(req));
+ }
+ if (ComrelElementTypes.ConditionalUnit_2006 == req.getElementType()) {
+ return getGEFWrapper(new ConditionalUnitCreateCommand(req));
+ }
+ if (ComrelElementTypes.AtomicUnit_2007 == req.getElementType()) {
+ return getGEFWrapper(new AtomicUnitCreateCommand(req));
+ }
+ return super.getCreateCommand(req);
+ }
+
+ /**
+ * @generated
+ */
+ protected Command getDuplicateCommand(DuplicateElementsRequest req) {
+ TransactionalEditingDomain editingDomain = ((IGraphicalEditPart) getHost())
+ .getEditingDomain();
+ return getGEFWrapper(new DuplicateAnythingCommand(editingDomain, req));
+ }
+
+ /**
+ * @generated
+ */
+ private static class DuplicateAnythingCommand extends
+ DuplicateEObjectsCommand {
+
+ /**
+ * @generated
+ */
+ public DuplicateAnythingCommand(
+ TransactionalEditingDomain editingDomain,
+ DuplicateElementsRequest req) {
+ super(editingDomain, req.getLabel(), req
+ .getElementsToBeDuplicated(), req
+ .getAllDuplicatedElementsMap());
+ }
+
+ }
+
+}
diff --git a/org.eclipse.emf.refactor.comrel.diagram/src/comrel/diagram/edit/policies/ComrelBaseItemSemanticEditPolicy.java b/org.eclipse.emf.refactor.comrel.diagram/src/comrel/diagram/edit/policies/ComrelBaseItemSemanticEditPolicy.java
new file mode 100644
index 0000000..7a4e5bb
--- /dev/null
+++ b/org.eclipse.emf.refactor.comrel.diagram/src/comrel/diagram/edit/policies/ComrelBaseItemSemanticEditPolicy.java
@@ -0,0 +1,607 @@
+/*
+ *
+ */
+package comrel.diagram.edit.policies;
+
+import java.util.ArrayList;
+import java.util.Collections;
+import java.util.Iterator;
+import java.util.List;
+import java.util.Map;
+
+import org.eclipse.emf.ecore.EClassifier;
+import org.eclipse.emf.ecore.EObject;
+import org.eclipse.emf.transaction.TransactionalEditingDomain;
+import org.eclipse.gef.Request;
+import org.eclipse.gef.commands.Command;
+import org.eclipse.gef.commands.UnexecutableCommand;
+import org.eclipse.gef.requests.ReconnectRequest;
+import org.eclipse.gmf.runtime.common.core.command.ICommand;
+import org.eclipse.gmf.runtime.common.core.command.ICompositeCommand;
+import org.eclipse.gmf.runtime.diagram.core.commands.DeleteCommand;
+import org.eclipse.gmf.runtime.diagram.ui.commands.CommandProxy;
+import org.eclipse.gmf.runtime.diagram.ui.commands.ICommandProxy;
+import org.eclipse.gmf.runtime.diagram.ui.editparts.IGraphicalEditPart;
+import org.eclipse.gmf.runtime.diagram.ui.editpolicies.SemanticEditPolicy;
+import org.eclipse.gmf.runtime.emf.commands.core.command.CompositeTransactionalCommand;
+import org.eclipse.gmf.runtime.emf.type.core.IElementType;
+import org.eclipse.gmf.runtime.emf.type.core.requests.ConfigureRequest;
+import org.eclipse.gmf.runtime.emf.type.core.requests.CreateElementRequest;
+import org.eclipse.gmf.runtime.emf.type.core.requests.CreateRelationshipRequest;
+import org.eclipse.gmf.runtime.emf.type.core.requests.DestroyElementRequest;
+import org.eclipse.gmf.runtime.emf.type.core.requests.DestroyReferenceRequest;
+import org.eclipse.gmf.runtime.emf.type.core.requests.DestroyRequest;
+import org.eclipse.gmf.runtime.emf.type.core.requests.DuplicateElementsRequest;
+import org.eclipse.gmf.runtime.emf.type.core.requests.GetEditContextRequest;
+import org.eclipse.gmf.runtime.emf.type.core.requests.IEditCommandRequest;
+import org.eclipse.gmf.runtime.emf.type.core.requests.MoveRequest;
+import org.eclipse.gmf.runtime.emf.type.core.requests.ReorientReferenceRelationshipRequest;
+import org.eclipse.gmf.runtime.emf.type.core.requests.ReorientRelationshipRequest;
+import org.eclipse.gmf.runtime.emf.type.core.requests.SetRequest;
+import org.eclipse.gmf.runtime.notation.View;
+
+import comrel.AtomicUnit;
+import comrel.CompositeRefactoring;
+import comrel.CompositeUnit;
+import comrel.ComrelPackage;
+import comrel.HelperUnit;
+import comrel.InputPort;
+import comrel.MultiInputPort;
+import comrel.MultiPort;
+import comrel.MultiPortMapping;
+import comrel.MultiSinglePortMapping;
+import comrel.OutputPort;
+import comrel.PortMapping;
+import comrel.QueuedUnit;
+import comrel.RefactoringUnit;
+import comrel.SingleInputPort;
+import comrel.SinglePort;
+import comrel.SinglePortMapping;
+import comrel.diagram.edit.helpers.ComrelBaseEditHelper;
+import comrel.diagram.expressions.ComrelOCLFactory;
+import comrel.diagram.part.ComrelDiagramEditorPlugin;
+import comrel.diagram.part.ComrelVisualIDRegistry;
+import comrel.diagram.providers.ComrelElementTypes;
+
+/**
+ * @generated
+ */
+public class ComrelBaseItemSemanticEditPolicy extends SemanticEditPolicy {
+
+ /**
+ * Extended request data key to hold editpart visual id.
+ * @generated
+ */
+ public static final String VISUAL_ID_KEY = "visual_id"; //$NON-NLS-1$
+
+ /**
+ * @generated
+ */
+ private final IElementType myElementType;
+
+ /**
+ * @generated
+ */
+ protected ComrelBaseItemSemanticEditPolicy(IElementType elementType) {
+ myElementType = elementType;
+ }
+
+ /**
+ * Extended request data key to hold editpart visual id.
+ * Add visual id of edited editpart to extended data of the request
+ * so command switch can decide what kind of diagram element is being edited.
+ * It is done in those cases when it's not possible to deduce diagram
+ * element kind from domain element.
+ *
+ * @generated
+ */
+ public Command getCommand(Request request) {
+ if (request instanceof ReconnectRequest) {
+ Object view = ((ReconnectRequest) request).getConnectionEditPart()
+ .getModel();
+ if (view instanceof View) {
+ Integer id = new Integer(
+ ComrelVisualIDRegistry.getVisualID((View) view));
+ request.getExtendedData().put(VISUAL_ID_KEY, id);
+ }
+ }
+ return super.getCommand(request);
+ }
+
+ /**
+ * Returns visual id from request parameters.
+ * @generated
+ */
+ protected int getVisualID(IEditCommandRequest request) {
+ Object id = request.getParameter(VISUAL_ID_KEY);
+ return id instanceof Integer ? ((Integer) id).intValue() : -1;
+ }
+
+ /**
+ * @generated
+ */
+ protected Command getSemanticCommand(IEditCommandRequest request) {
+ IEditCommandRequest completedRequest = completeRequest(request);
+ Command semanticCommand = getSemanticCommandSwitch(completedRequest);
+ semanticCommand = getEditHelperCommand(completedRequest,
+ semanticCommand);
+ if (completedRequest instanceof DestroyRequest) {
+ DestroyRequest destroyRequest = (DestroyRequest) completedRequest;
+ return shouldProceed(destroyRequest) ? addDeleteViewCommand(
+ semanticCommand, destroyRequest) : null;
+ }
+ return semanticCommand;
+ }
+
+ /**
+ * @generated
+ */
+ protected Command addDeleteViewCommand(Command mainCommand,
+ DestroyRequest completedRequest) {
+ Command deleteViewCommand = getGEFWrapper(new DeleteCommand(
+ getEditingDomain(), (View) getHost().getModel()));
+ return mainCommand == null ? deleteViewCommand : mainCommand
+ .chain(deleteViewCommand);
+ }
+
+ /**
+ * @generated
+ */
+ private Command getEditHelperCommand(IEditCommandRequest request,
+ Command editPolicyCommand) {
+ if (editPolicyCommand != null) {
+ ICommand command = editPolicyCommand instanceof ICommandProxy ? ((ICommandProxy) editPolicyCommand)
+ .getICommand() : new CommandProxy(editPolicyCommand);
+ request.setParameter(ComrelBaseEditHelper.EDIT_POLICY_COMMAND,
+ command);
+ }
+ IElementType requestContextElementType = getContextElementType(request);
+ request.setParameter(ComrelBaseEditHelper.CONTEXT_ELEMENT_TYPE,
+ requestContextElementType);
+ ICommand command = requestContextElementType.getEditCommand(request);
+ request.setParameter(ComrelBaseEditHelper.EDIT_POLICY_COMMAND, null);
+ request.setParameter(ComrelBaseEditHelper.CONTEXT_ELEMENT_TYPE, null);
+ if (command != null) {
+ if (!(command instanceof CompositeTransactionalCommand)) {
+ command = new CompositeTransactionalCommand(getEditingDomain(),
+ command.getLabel()).compose(command);
+ }
+ return new ICommandProxy(command);
+ }
+ return editPolicyCommand;
+ }
+
+ /**
+ * @generated
+ */
+ private IElementType getContextElementType(IEditCommandRequest request) {
+ IElementType requestContextElementType = ComrelElementTypes
+ .getElementType(getVisualID(request));
+ return requestContextElementType != null ? requestContextElementType
+ : myElementType;
+ }
+
+ /**
+ * @generated
+ */
+ protected Command getSemanticCommandSwitch(IEditCommandRequest req) {
+ if (req instanceof CreateRelationshipRequest) {
+ return getCreateRelationshipCommand((CreateRelationshipRequest) req);
+ } else if (req instanceof CreateElementRequest) {
+ return getCreateCommand((CreateElementRequest) req);
+ } else if (req instanceof ConfigureRequest) {
+ return getConfigureCommand((ConfigureRequest) req);
+ } else if (req instanceof DestroyElementRequest) {
+ return getDestroyElementCommand((DestroyElementRequest) req);
+ } else if (req instanceof DestroyReferenceRequest) {
+ return getDestroyReferenceCommand((DestroyReferenceRequest) req);
+ } else if (req instanceof DuplicateElementsRequest) {
+ return getDuplicateCommand((DuplicateElementsRequest) req);
+ } else if (req instanceof GetEditContextRequest) {
+ return getEditContextCommand((GetEditContextRequest) req);
+ } else if (req instanceof MoveRequest) {
+ return getMoveCommand((MoveRequest) req);
+ } else if (req instanceof ReorientReferenceRelationshipRequest) {
+ return getReorientReferenceRelationshipCommand((ReorientReferenceRelationshipRequest) req);
+ } else if (req instanceof ReorientRelationshipRequest) {
+ return getReorientRelationshipCommand((ReorientRelationshipRequest) req);
+ } else if (req instanceof SetRequest) {
+ return getSetCommand((SetRequest) req);
+ }
+ return null;
+ }
+
+ /**
+ * @generated
+ */
+ protected Command getConfigureCommand(ConfigureRequest req) {
+ return null;
+ }
+
+ /**
+ * @generated
+ */
+ protected Command getCreateRelationshipCommand(CreateRelationshipRequest req) {
+ return null;
+ }
+
+ /**
+ * @generated
+ */
+ protected Command getCreateCommand(CreateElementRequest req) {
+ return null;
+ }
+
+ /**
+ * @generated
+ */
+ protected Command getSetCommand(SetRequest req) {
+ return null;
+ }
+
+ /**
+ * @generated
+ */
+ protected Command getEditContextCommand(GetEditContextRequest req) {
+ return null;
+ }
+
+ /**
+ * @generated
+ */
+ protected Command getDestroyElementCommand(DestroyElementRequest req) {
+ return null;
+ }
+
+ /**
+ * @generated
+ */
+ protected Command getDestroyReferenceCommand(DestroyReferenceRequest req) {
+ return null;
+ }
+
+ /**
+ * @generated
+ */
+ protected Command getDuplicateCommand(DuplicateElementsRequest req) {
+ return null;
+ }
+
+ /**
+ * @generated
+ */
+ protected Command getMoveCommand(MoveRequest req) {
+ return null;
+ }
+
+ /**
+ * @generated
+ */
+ protected Command getReorientReferenceRelationshipCommand(
+ ReorientReferenceRelationshipRequest req) {
+ return UnexecutableCommand.INSTANCE;
+ }
+
+ /**
+ * @generated
+ */
+ protected Command getReorientRelationshipCommand(
+ ReorientRelationshipRequest req) {
+ return UnexecutableCommand.INSTANCE;
+ }
+
+ /**
+ * @generated
+ */
+ protected final Command getGEFWrapper(ICommand cmd) {
+ return new ICommandProxy(cmd);
+ }
+
+ /**
+ * Returns editing domain from the host edit part.
+ * @generated
+ */
+ protected TransactionalEditingDomain getEditingDomain() {
+ return ((IGraphicalEditPart) getHost()).getEditingDomain();
+ }
+
+ /**
+ * Clean all shortcuts to the host element from the same diagram
+ * @generated
+ */
+ protected void addDestroyShortcutsCommand(ICompositeCommand cmd, View view) {
+ assert view.getEAnnotation("Shortcut") == null; //$NON-NLS-1$
+ for (Iterator it = view.getDiagram().getChildren().iterator(); it
+ .hasNext();) {
+ View nextView = (View) it.next();
+ if (nextView.getEAnnotation("Shortcut") == null || !nextView.isSetElement() || nextView.getElement() != view.getElement()) { //$NON-NLS-1$
+ continue;
+ }
+ cmd.add(new DeleteCommand(getEditingDomain(), nextView));
+ }
+ }
+
+ /**
+ * @generated
+ */
+ public static LinkConstraints getLinkConstraints() {
+ LinkConstraints cached = ComrelDiagramEditorPlugin.getInstance()
+ .getLinkConstraints();
+ if (cached == null) {
+ ComrelDiagramEditorPlugin.getInstance().setLinkConstraints(
+ cached = new LinkConstraints());
+ }
+ return cached;
+ }
+
+ /**
+ * @generated
+ */
+ public static class LinkConstraints {
+
+ /**
+ * @generated
+ */
+ LinkConstraints() {
+ // use static method #getLinkConstraints() to access instance
+ }
+
+ /**
+ * @generated
+ */
+ public boolean canCreateSinglePortMapping_4001(
+ CompositeRefactoring container, SinglePort source,
+ SingleInputPort target) {
+ return canExistSinglePortMapping_4001(container, null, source,
+ target);
+ }
+
+ /**
+ * @generated
+ */
+ public boolean canCreateMultiPortMapping_4002(
+ CompositeRefactoring container, MultiPort source,
+ MultiInputPort target) {
+ return canExistMultiPortMapping_4002(container, null, source,
+ target);
+ }
+
+ /**
+ * @generated
+ */
+ public boolean canCreateMultiSinglePortMapping_4003(
+ CompositeRefactoring container, MultiPort source,
+ SingleInputPort target) {
+ return canExistMultiSinglePortMapping_4003(container, null, source,
+ target);
+ }
+
+ /**
+ * @generated NOT
+ */
+ public boolean canExistSinglePortMapping_4001(
+ CompositeRefactoring container, SinglePortMapping linkInstance,
+ SinglePort source, SingleInputPort target) {
+ try {
+ if (source == null) {
+ return true;
+ } else if (!singlePortMappingRules(container, source, target)) {
+ return false;
+ }
+
+ else {
+ Map<String, EClassifier> env = Collections
+ .<String, EClassifier> singletonMap(
+ "oppositeEnd", ComrelPackage.eINSTANCE.getSingleInputPort()); //$NON-NLS-1$
+ Object sourceVal = ComrelOCLFactory.getExpression(0,
+ ComrelPackage.eINSTANCE.getSinglePort(), env)
+ .evaluate(
+ source,
+ Collections.singletonMap(
+ "oppositeEnd", target)); //$NON-NLS-1$
+ if (false == sourceVal instanceof Boolean
+ || !((Boolean) sourceVal).booleanValue()) {
+ return false;
+ } // else fall-through
+ }
+ return true;
+ } catch (Exception e) {
+ ComrelDiagramEditorPlugin.getInstance().logError(
+ "Link constraint evaluation error", e); //$NON-NLS-1$
+ return false;
+ }
+ }
+
+ /**
+ * @generated NOT
+ */
+ public boolean canExistMultiPortMapping_4002(
+ CompositeRefactoring container, MultiPortMapping linkInstance,
+ MultiPort source, MultiInputPort target) {
+ try {
+ if (source == null) {
+ return true;
+ } else if (!multiPortMappingRules(container, source, target)) {
+ return false;
+ }
+
+ else {
+ Map<String, EClassifier> env = Collections
+ .<String, EClassifier> singletonMap(
+ "oppositeEnd", ComrelPackage.eINSTANCE.getMultiInputPort()); //$NON-NLS-1$
+ Object sourceVal = ComrelOCLFactory.getExpression(1,
+ ComrelPackage.eINSTANCE.getMultiPort(), env)
+ .evaluate(
+ source,
+ Collections.singletonMap(
+ "oppositeEnd", target)); //$NON-NLS-1$
+ if (false == sourceVal instanceof Boolean
+ || !((Boolean) sourceVal).booleanValue()) {
+ return false;
+ } // else fall-through
+ }
+ return true;
+ } catch (Exception e) {
+ ComrelDiagramEditorPlugin.getInstance().logError(
+ "Link constraint evaluation error", e); //$NON-NLS-1$
+ return false;
+ }
+ }
+
+ /**
+ * @generated NOT
+ */
+ public boolean canExistMultiSinglePortMapping_4003(
+ CompositeRefactoring container,
+ MultiSinglePortMapping linkInstance, MultiPort source,
+ SingleInputPort target) {
+ try {
+ if (source == null) {
+ return true;
+ } else if (!multiSinglePortMappingRules(container, source,
+ target)) {
+ return false;
+ }
+
+ else {
+ Map<String, EClassifier> env = Collections
+ .<String, EClassifier> singletonMap(
+ "oppositeEnd", ComrelPackage.eINSTANCE.getSingleInputPort()); //$NON-NLS-1$
+ Object sourceVal = ComrelOCLFactory.getExpression(2,
+ ComrelPackage.eINSTANCE.getMultiPort(), env)
+ .evaluate(
+ source,
+ Collections.singletonMap(
+ "oppositeEnd", target)); //$NON-NLS-1$
+ if (false == sourceVal instanceof Boolean
+ || !((Boolean) sourceVal).booleanValue()) {
+ return false;
+ } // else fall-through
+ }
+ return true;
+ } catch (Exception e) {
+ ComrelDiagramEditorPlugin.getInstance().logError(
+ "Link constraint evaluation error", e); //$NON-NLS-1$
+ return false;
+ }
+ }
+
+ private static boolean singlePortMappingRules(
+ comrel.CompositeRefactoring container, comrel.Port source,
+ comrel.InputPort target) {
+ boolean result = true;
+ result &= sameType(container, source, target);
+ result &= rightEbene(container, source, target);
+ result &= onlyOneInput(container, source, target);
+ return result;
+ }
+
+ private static boolean multiPortMappingRules(
+ comrel.CompositeRefactoring container, comrel.Port source,
+ comrel.InputPort target) {
+ boolean result = true;
+ result &= sameType(container, source, target);
+ result &= rightEbene(container, source, target);
+ result &= onlyOneInput(container, source, target);
+ return result;
+ }
+
+ private static boolean multiSinglePortMappingRules(
+ comrel.CompositeRefactoring container, comrel.Port source,
+ comrel.InputPort target) {
+ boolean result = true;
+ result &= rightSourceTargetType(container, source, target);
+ result &= rightEbene(container, source, target);
+ result &= onlyOneInput(container, source, target);
+ result &= sameType(container, source, target);
+ return result;
+ }
+
+ private static boolean rightSourceTargetType(
+ comrel.CompositeRefactoring container, comrel.Port source,
+ comrel.InputPort target) {
+ boolean result = true;
+ if (source != null) {
+ result &= (source instanceof InputPort);
+ result &= (source.eContainer() instanceof QueuedUnit);
+ }
+ return result;
+ }
+
+ private static boolean sameType(comrel.CompositeRefactoring container,
+ comrel.Port source, comrel.InputPort target) {
+ boolean result = true;
+ if (source != null && target != null) {
+ if (source.getType() != null && target.getType() != null) {
+ result = source.getType().equals(target.getType());
+ } else {
+ result = true;
+ }
+ }
+ return result;
+ }
+
+ }
+
+ private static boolean rightEbene(comrel.CompositeRefactoring container,
+ comrel.Port source, comrel.InputPort target) {
+ boolean result = true;
+ if (source != null) {
+ if (source.eContainer() instanceof HelperUnit)
+ result &= (source instanceof OutputPort);
+ if (source.eContainer() instanceof AtomicUnit) {
+ result = false;
+ }
+ if (target != null) {
+ if (source.eContainer() instanceof CompositeUnit) {
+ result &= source.eContainer() == target.eContainer()
+ .eContainer();
+
+ }
+ if (source.eContainer() instanceof HelperUnit) {
+ if (target.eContainer() instanceof HelperUnit) {
+ result &= source.eContainer() != target.eContainer();
+ }
+ result &= (source.eContainer().eContainer() == target
+ .eContainer().eContainer());
+ }
+ }
+
+ }
+ return result;
+ }
+
+ private static boolean onlyOneInput(comrel.CompositeRefactoring container,
+ comrel.Port source, comrel.InputPort target) {
+ boolean result = true;
+ if (target != null) {
+ List<InputPort> ports = new ArrayList<InputPort>();
+ EObject portContainer = target.eContainer();
+ if (portContainer instanceof RefactoringUnit) {
+ RefactoringUnit refUnit = (RefactoringUnit) portContainer;
+ ports.addAll(refUnit.getAllInputPorts());
+ }
+ if (portContainer instanceof HelperUnit) {
+ HelperUnit helperUnit = (HelperUnit) portContainer;
+ ports.add(helperUnit.getInputPort());
+ }
+ InputPort p = null;
+ for (InputPort in : ports) {
+ if (target == in) {
+ p = in;
+ break;
+ }
+ }
+ if (p != null) {
+ List<PortMapping> mappings = container.getPortMappings();
+ for (PortMapping mapping : mappings) {
+ if (mapping.getTarget() == p) {
+ return false;
+ }
+ }
+ }
+ }
+ return result;
+ }
+
+}
diff --git a/org.eclipse.emf.refactor.comrel.diagram/src/comrel/diagram/edit/policies/ComrelTextNonResizableEditPolicy.java b/org.eclipse.emf.refactor.comrel.diagram/src/comrel/diagram/edit/policies/ComrelTextNonResizableEditPolicy.java
new file mode 100644
index 0000000..3236d8d
--- /dev/null
+++ b/org.eclipse.emf.refactor.comrel.diagram/src/comrel/diagram/edit/policies/ComrelTextNonResizableEditPolicy.java
@@ -0,0 +1,228 @@
+/*
+ *
+ */
+package comrel.diagram.edit.policies;
+
+import java.util.Collections;
+import java.util.List;
+
+import org.eclipse.draw2d.ColorConstants;
+import org.eclipse.draw2d.Figure;
+import org.eclipse.draw2d.FigureListener;
+import org.eclipse.draw2d.Graphics;
+import org.eclipse.draw2d.IFigure;
+import org.eclipse.draw2d.Label;
+import org.eclipse.draw2d.RectangleFigure;
+import org.eclipse.draw2d.geometry.Rectangle;
+import org.eclipse.gef.GraphicalEditPart;
+import org.eclipse.gef.handles.MoveHandle;
+import org.eclipse.gmf.runtime.diagram.ui.editpolicies.NonResizableEditPolicyEx;
+import org.eclipse.gmf.runtime.diagram.ui.tools.DragEditPartsTrackerEx;
+import org.eclipse.gmf.runtime.draw2d.ui.figures.WrappingLabel;
+
+/**
+ * @generated
+ */
+public class ComrelTextNonResizableEditPolicy extends NonResizableEditPolicyEx {
+
+ /**
+ * @generated
+ */
+ private IFigure selectionFeedbackFigure;
+
+ /**
+ * @generated
+ */
+ private IFigure focusFeedbackFigure;
+
+ /**
+ * @generated
+ */
+ private FigureListener hostPositionListener;
+
+ /**
+ * @generated
+ */
+ protected void showPrimarySelection() {
+ if (getHostFigure() instanceof WrappingLabel) {
+ ((WrappingLabel) getHostFigure()).setSelected(true);
+ ((WrappingLabel) getHostFigure()).setFocus(true);
+ } else {
+ showSelection();
+ showFocus();
+ }
+ }
+
+ /**
+ * @generated
+ */
+ protected void showSelection() {
+ if (getHostFigure() instanceof WrappingLabel) {
+ ((WrappingLabel) getHostFigure()).setSelected(true);
+ ((WrappingLabel) getHostFigure()).setFocus(false);
+ } else {
+ hideSelection();
+ addFeedback(selectionFeedbackFigure = createSelectionFeedbackFigure());
+ getHostFigure().addFigureListener(getHostPositionListener());
+ refreshSelectionFeedback();
+ hideFocus();
+ }
+ }
+
+ /**
+ * @generated
+ */
+ protected void hideSelection() {
+ if (getHostFigure() instanceof WrappingLabel) {
+ ((WrappingLabel) getHostFigure()).setSelected(false);
+ ((WrappingLabel) getHostFigure()).setFocus(false);
+ } else {
+ if (selectionFeedbackFigure != null) {
+ removeFeedback(selectionFeedbackFigure);
+ getHostFigure().removeFigureListener(getHostPositionListener());
+ selectionFeedbackFigure = null;
+ }
+ hideFocus();
+ }
+ }
+
+ /**
+ * @generated
+ */
+ protected void showFocus() {
+ if (getHostFigure() instanceof WrappingLabel) {
+ ((WrappingLabel) getHostFigure()).setFocus(true);
+ } else {
+ hideFocus();
+ addFeedback(focusFeedbackFigure = createFocusFeedbackFigure());
+ refreshFocusFeedback();
+ }
+ }
+
+ /**
+ * @generated
+ */
+ protected void hideFocus() {
+ if (getHostFigure() instanceof WrappingLabel) {
+ ((WrappingLabel) getHostFigure()).setFocus(false);
+ } else {
+ if (focusFeedbackFigure != null) {
+ removeFeedback(focusFeedbackFigure);
+ focusFeedbackFigure = null;
+ }
+ }
+ }
+
+ /**
+ * @generated
+ */
+ protected Rectangle getFeedbackBounds() {
+ Rectangle bounds;
+ if (getHostFigure() instanceof Label) {
+ bounds = ((Label) getHostFigure()).getTextBounds();
+ bounds.intersect(getHostFigure().getBounds());
+ } else {
+ bounds = getHostFigure().getBounds().getCopy();
+ }
+ getHostFigure().getParent().translateToAbsolute(bounds);
+ getFeedbackLayer().translateToRelative(bounds);
+ return bounds;
+ }
+
+ /**
+ * @generated
+ */
+ protected IFigure createSelectionFeedbackFigure() {
+ if (getHostFigure() instanceof Label) {
+ Label feedbackFigure = new Label();
+ feedbackFigure.setOpaque(true);
+ feedbackFigure
+ .setBackgroundColor(ColorConstants.menuBackgroundSelected);
+ feedbackFigure
+ .setForegroundColor(ColorConstants.menuForegroundSelected);
+ return feedbackFigure;
+ } else {
+ RectangleFigure feedbackFigure = new RectangleFigure();
+ feedbackFigure.setFill(false);
+ return feedbackFigure;
+ }
+ }
+
+ /**
+ * @generated
+ */
+ protected IFigure createFocusFeedbackFigure() {
+ return new Figure() {
+
+ protected void paintFigure(Graphics graphics) {
+ graphics.drawFocus(getBounds().getResized(-1, -1));
+ }
+ };
+ }
+
+ /**
+ * @generated
+ */
+ protected void updateLabel(Label target) {
+ Label source = (Label) getHostFigure();
+ target.setText(source.getText());
+ target.setTextAlignment(source.getTextAlignment());
+ target.setFont(source.getFont());
+ }
+
+ /**
+ * @generated
+ */
+ protected void refreshSelectionFeedback() {
+ if (selectionFeedbackFigure != null) {
+ if (selectionFeedbackFigure instanceof Label) {
+ updateLabel((Label) selectionFeedbackFigure);
+ selectionFeedbackFigure.setBounds(getFeedbackBounds());
+ } else {
+ selectionFeedbackFigure.setBounds(getFeedbackBounds().expand(5,
+ 5));
+ }
+ }
+ }
+
+ /**
+ * @generated
+ */
+ protected void refreshFocusFeedback() {
+ if (focusFeedbackFigure != null) {
+ focusFeedbackFigure.setBounds(getFeedbackBounds());
+ }
+ }
+
+ /**
+ * @generated
+ */
+ public void refreshFeedback() {
+ refreshSelectionFeedback();
+ refreshFocusFeedback();
+ }
+
+ /**
+ * @generated
+ */
+ private FigureListener getHostPositionListener() {
+ if (hostPositionListener == null) {
+ hostPositionListener = new FigureListener() {
+ public void figureMoved(IFigure source) {
+ refreshFeedback();
+ }
+ };
+ }
+ return hostPositionListener;
+ }
+
+ /**
+ * @generated
+ */
+ protected List createSelectionHandles() {
+ MoveHandle moveHandle = new MoveHandle((GraphicalEditPart) getHost());
+ moveHandle.setBorder(null);
+ moveHandle.setDragTracker(new DragEditPartsTrackerEx(getHost()));
+ return Collections.singletonList(moveHandle);
+ }
+}
diff --git a/org.eclipse.emf.refactor.comrel.diagram/src/comrel/diagram/edit/policies/ComrelTextSelectionEditPolicy.java b/org.eclipse.emf.refactor.comrel.diagram/src/comrel/diagram/edit/policies/ComrelTextSelectionEditPolicy.java
new file mode 100644
index 0000000..3487cc7
--- /dev/null
+++ b/org.eclipse.emf.refactor.comrel.diagram/src/comrel/diagram/edit/policies/ComrelTextSelectionEditPolicy.java
@@ -0,0 +1,212 @@
+/*
+ *
+ */
+package comrel.diagram.edit.policies;
+
+import org.eclipse.draw2d.ColorConstants;
+import org.eclipse.draw2d.Figure;
+import org.eclipse.draw2d.FigureListener;
+import org.eclipse.draw2d.Graphics;
+import org.eclipse.draw2d.IFigure;
+import org.eclipse.draw2d.Label;
+import org.eclipse.draw2d.RectangleFigure;
+import org.eclipse.draw2d.geometry.Rectangle;
+import org.eclipse.gef.editpolicies.SelectionEditPolicy;
+import org.eclipse.gmf.runtime.draw2d.ui.figures.WrappingLabel;
+
+/**
+ * @generated
+ */
+public class ComrelTextSelectionEditPolicy extends SelectionEditPolicy {
+
+ /**
+ * @generated
+ */
+ private IFigure selectionFeedbackFigure;
+
+ /**
+ * @generated
+ */
+ private IFigure focusFeedbackFigure;
+
+ /**
+ * @generated
+ */
+ private FigureListener hostPositionListener;
+
+ /**
+ * @generated
+ */
+ protected void showPrimarySelection() {
+ if (getHostFigure() instanceof WrappingLabel) {
+ ((WrappingLabel) getHostFigure()).setSelected(true);
+ ((WrappingLabel) getHostFigure()).setFocus(true);
+ } else {
+ showSelection();
+ showFocus();
+ }
+ }
+
+ /**
+ * @generated
+ */
+ protected void showSelection() {
+ if (getHostFigure() instanceof WrappingLabel) {
+ ((WrappingLabel) getHostFigure()).setSelected(true);
+ ((WrappingLabel) getHostFigure()).setFocus(false);
+ } else {
+ hideSelection();
+ addFeedback(selectionFeedbackFigure = createSelectionFeedbackFigure());
+ getHostFigure().addFigureListener(getHostPositionListener());
+ refreshSelectionFeedback();
+ hideFocus();
+ }
+ }
+
+ /**
+ * @generated
+ */
+ protected void hideSelection() {
+ if (getHostFigure() instanceof WrappingLabel) {
+ ((WrappingLabel) getHostFigure()).setSelected(false);
+ ((WrappingLabel) getHostFigure()).setFocus(false);
+ } else {
+ if (selectionFeedbackFigure != null) {
+ removeFeedback(selectionFeedbackFigure);
+ getHostFigure().removeFigureListener(getHostPositionListener());
+ selectionFeedbackFigure = null;
+ }
+ hideFocus();
+ }
+ }
+
+ /**
+ * @generated
+ */
+ protected void showFocus() {
+ if (getHostFigure() instanceof WrappingLabel) {
+ ((WrappingLabel) getHostFigure()).setFocus(true);
+ } else {
+ hideFocus();
+ addFeedback(focusFeedbackFigure = createFocusFeedbackFigure());
+ refreshFocusFeedback();
+ }
+ }
+
+ /**
+ * @generated
+ */
+ protected void hideFocus() {
+ if (getHostFigure() instanceof WrappingLabel) {
+ ((WrappingLabel) getHostFigure()).setFocus(false);
+ } else {
+ if (focusFeedbackFigure != null) {
+ removeFeedback(focusFeedbackFigure);
+ focusFeedbackFigure = null;
+ }
+ }
+ }
+
+ /**
+ * @generated
+ */
+ protected Rectangle getFeedbackBounds() {
+ Rectangle bounds;
+ if (getHostFigure() instanceof Label) {
+ bounds = ((Label) getHostFigure()).getTextBounds();
+ bounds.intersect(getHostFigure().getBounds());
+ } else {
+ bounds = getHostFigure().getBounds().getCopy();
+ }
+ getHostFigure().getParent().translateToAbsolute(bounds);
+ getFeedbackLayer().translateToRelative(bounds);
+ return bounds;
+ }
+
+ /**
+ * @generated
+ */
+ protected IFigure createSelectionFeedbackFigure() {
+ if (getHostFigure() instanceof Label) {
+ Label feedbackFigure = new Label();
+ feedbackFigure.setOpaque(true);
+ feedbackFigure
+ .setBackgroundColor(ColorConstants.menuBackgroundSelected);
+ feedbackFigure
+ .setForegroundColor(ColorConstants.menuForegroundSelected);
+ return feedbackFigure;
+ } else {
+ RectangleFigure feedbackFigure = new RectangleFigure();
+ feedbackFigure.setFill(false);
+ return feedbackFigure;
+ }
+ }
+
+ /**
+ * @generated
+ */
+ protected IFigure createFocusFeedbackFigure() {
+ return new Figure() {
+
+ protected void paintFigure(Graphics graphics) {
+ graphics.drawFocus(getBounds().getResized(-1, -1));
+ }
+ };
+ }
+
+ /**
+ * @generated
+ */
+ protected void updateLabel(Label target) {
+ Label source = (Label) getHostFigure();
+ target.setText(source.getText());
+ target.setTextAlignment(source.getTextAlignment());
+ target.setFont(source.getFont());
+ }
+
+ /**
+ * @generated
+ */
+ protected void refreshSelectionFeedback() {
+ if (selectionFeedbackFigure != null) {
+ if (selectionFeedbackFigure instanceof Label) {
+ updateLabel((Label) selectionFeedbackFigure);
+ selectionFeedbackFigure.setBounds(getFeedbackBounds());
+ } else {
+ selectionFeedbackFigure.setBounds(getFeedbackBounds().expand(5,
+ 5));
+ }
+ }
+ }
+
+ /**
+ * @generated
+ */
+ protected void refreshFocusFeedback() {
+ if (focusFeedbackFigure != null) {
+ focusFeedbackFigure.setBounds(getFeedbackBounds());
+ }
+ }
+
+ /**
+ * @generated
+ */
+ public void refreshFeedback() {
+ refreshSelectionFeedback();
+ refreshFocusFeedback();
+ }
+
+ /**
+ * @generated
+ */
+ private FigureListener getHostPositionListener() {
+ if (hostPositionListener == null) {
+ hostPositionListener = new FigureListener() {
+ public void figureMoved(IFigure source) {
+ refreshFeedback();
+ }
+ };
+ }
+ return hostPositionListener;
+ }
+}
diff --git a/org.eclipse.emf.refactor.comrel.diagram/src/comrel/diagram/edit/policies/ConditionCheckItemSemanticEditPolicy.java b/org.eclipse.emf.refactor.comrel.diagram/src/comrel/diagram/edit/policies/ConditionCheckItemSemanticEditPolicy.java
new file mode 100644
index 0000000..9c1db5b
--- /dev/null
+++ b/org.eclipse.emf.refactor.comrel.diagram/src/comrel/diagram/edit/policies/ConditionCheckItemSemanticEditPolicy.java
@@ -0,0 +1,49 @@
+/*
+ *
+ */
+package comrel.diagram.edit.policies;
+
+import org.eclipse.emf.ecore.EAnnotation;
+import org.eclipse.gef.commands.Command;
+import org.eclipse.gmf.runtime.diagram.core.commands.DeleteCommand;
+import org.eclipse.gmf.runtime.emf.commands.core.command.CompositeTransactionalCommand;
+import org.eclipse.gmf.runtime.emf.type.core.commands.DestroyElementCommand;
+import org.eclipse.gmf.runtime.emf.type.core.requests.DestroyElementRequest;
+import org.eclipse.gmf.runtime.notation.View;
+
+import comrel.diagram.providers.ComrelElementTypes;
+
+/**
+ * @generated
+ */
+public class ConditionCheckItemSemanticEditPolicy extends
+ ComrelBaseItemSemanticEditPolicy {
+
+ /**
+ * @generated
+ */
+ public ConditionCheckItemSemanticEditPolicy() {
+ super(ComrelElementTypes.ConditionCheck_3076);
+ }
+
+ /**
+ * @generated
+ */
+ protected Command getDestroyElementCommand(DestroyElementRequest req) {
+ View view = (View) getHost().getModel();
+ CompositeTransactionalCommand cmd = new CompositeTransactionalCommand(
+ getEditingDomain(), null);
+ cmd.setTransactionNestingEnabled(false);
+ EAnnotation annotation = view.getEAnnotation("Shortcut"); //$NON-NLS-1$
+ if (annotation == null) {
+ // there are indirectly referenced children, need extra commands: false
+ addDestroyShortcutsCommand(cmd, view);
+ // delete host element
+ cmd.add(new DestroyElementCommand(req));
+ } else {
+ cmd.add(new DeleteCommand(getEditingDomain(), view));
+ }
+ return getGEFWrapper(cmd.reduce());
+ }
+
+}
diff --git a/org.eclipse.emf.refactor.comrel.diagram/src/comrel/diagram/edit/policies/ConditionalUnit2CanonicalEditPolicy.java b/org.eclipse.emf.refactor.comrel.diagram/src/comrel/diagram/edit/policies/ConditionalUnit2CanonicalEditPolicy.java
new file mode 100644
index 0000000..3037a1a
--- /dev/null
+++ b/org.eclipse.emf.refactor.comrel.diagram/src/comrel/diagram/edit/policies/ConditionalUnit2CanonicalEditPolicy.java
@@ -0,0 +1,164 @@
+/*
+ *
+ */
+package comrel.diagram.edit.policies;
+
+import java.util.ArrayList;
+import java.util.Collection;
+import java.util.Iterator;
+import java.util.LinkedList;
+import java.util.List;
+
+import org.eclipse.core.runtime.IAdaptable;
+import org.eclipse.emf.ecore.EObject;
+import org.eclipse.emf.ecore.EStructuralFeature;
+import org.eclipse.gef.commands.Command;
+import org.eclipse.gmf.runtime.diagram.core.util.ViewUtil;
+import org.eclipse.gmf.runtime.diagram.ui.commands.DeferredLayoutCommand;
+import org.eclipse.gmf.runtime.diagram.ui.commands.ICommandProxy;
+import org.eclipse.gmf.runtime.diagram.ui.commands.SetViewMutabilityCommand;
+import org.eclipse.gmf.runtime.diagram.ui.editpolicies.CanonicalEditPolicy;
+import org.eclipse.gmf.runtime.diagram.ui.requests.CreateViewRequest;
+import org.eclipse.gmf.runtime.emf.core.util.EObjectAdapter;
+import org.eclipse.gmf.runtime.notation.Node;
+import org.eclipse.gmf.runtime.notation.View;
+
+import comrel.ComrelPackage;
+import comrel.diagram.edit.parts.MultiInputPort9EditPart;
+import comrel.diagram.edit.parts.SingleInputPort8EditPart;
+import comrel.diagram.part.ComrelDiagramUpdater;
+import comrel.diagram.part.ComrelNodeDescriptor;
+import comrel.diagram.part.ComrelVisualIDRegistry;
+
+/**
+ * @generated
+ */
+public class ConditionalUnit2CanonicalEditPolicy extends CanonicalEditPolicy {
+
+ /**
+ * @generated
+ */
+ protected EStructuralFeature getFeatureToSynchronize() {
+ return ComrelPackage.eINSTANCE.getConditionalUnit_InputPorts();
+ }
+
+ /**
+ * @generated
+ */
+ @SuppressWarnings("rawtypes")
+ protected List getSemanticChildrenList() {
+ View viewObject = (View) getHost().getModel();
+ LinkedList<EObject> result = new LinkedList<EObject>();
+ List<ComrelNodeDescriptor> childDescriptors = ComrelDiagramUpdater
+ .getConditionalUnit_3030SemanticChildren(viewObject);
+ for (ComrelNodeDescriptor d : childDescriptors) {
+ result.add(d.getModelElement());
+ }
+ return result;
+ }
+
+ /**
+ * @generated
+ */
+ protected boolean isOrphaned(Collection<EObject> semanticChildren,
+ final View view) {
+ return isMyDiagramElement(view)
+ && !semanticChildren.contains(view.getElement());
+ }
+
+ /**
+ * @generated
+ */
+ private boolean isMyDiagramElement(View view) {
+ int visualID = ComrelVisualIDRegistry.getVisualID(view);
+ return visualID == SingleInputPort8EditPart.VISUAL_ID
+ || visualID == MultiInputPort9EditPart.VISUAL_ID;
+ }
+
+ /**
+ * @generated
+ */
+ protected void refreshSemantic() {
+ if (resolveSemanticElement() == null) {
+ return;
+ }
+ LinkedList<IAdaptable> createdViews = new LinkedList<IAdaptable>();
+ List<ComrelNodeDescriptor> childDescriptors = ComrelDiagramUpdater
+ .getConditionalUnit_3030SemanticChildren((View) getHost()
+ .getModel());
+ LinkedList<View> orphaned = new LinkedList<View>();
+ // we care to check only views we recognize as ours
+ LinkedList<View> knownViewChildren = new LinkedList<View>();
+ for (View v : getViewChildren()) {
+ if (isMyDiagramElement(v)) {
+ knownViewChildren.add(v);
+ }
+ }
+ // alternative to #cleanCanonicalSemanticChildren(getViewChildren(), semanticChildren)
+ //
+ // iteration happens over list of desired semantic elements, trying to find best matching View, while original CEP
+ // iterates views, potentially losing view (size/bounds) information - i.e. if there are few views to reference same EObject, only last one
+ // to answer isOrphaned == true will be used for the domain element representation, see #cleanCanonicalSemanticChildren()
+ for (Iterator<ComrelNodeDescriptor> descriptorsIterator = childDescriptors
+ .iterator(); descriptorsIterator.hasNext();) {
+ ComrelNodeDescriptor next = descriptorsIterator.next();
+ String hint = ComrelVisualIDRegistry.getType(next.getVisualID());
+ LinkedList<View> perfectMatch = new LinkedList<View>(); // both semanticElement and hint match that of NodeDescriptor
+ for (View childView : getViewChildren()) {
+ EObject semanticElement = childView.getElement();
+ if (next.getModelElement().equals(semanticElement)) {
+ if (hint.equals(childView.getType())) {
+ perfectMatch.add(childView);
+ // actually, can stop iteration over view children here, but
+ // may want to use not the first view but last one as a 'real' match (the way original CEP does
+ // with its trick with viewToSemanticMap inside #cleanCanonicalSemanticChildren
+ }
+ }
+ }
+ if (perfectMatch.size() > 0) {
+ descriptorsIterator.remove(); // precise match found no need to create anything for the NodeDescriptor
+ // use only one view (first or last?), keep rest as orphaned for further consideration
+ knownViewChildren.remove(perfectMatch.getFirst());
+ }
+ }
+ // those left in knownViewChildren are subject to removal - they are our diagram elements we didn't find match to,
+ // or those we have potential matches to, and thus need to be recreated, preserving size/location information.
+ orphaned.addAll(knownViewChildren);
+ //
+ ArrayList<CreateViewRequest.ViewDescriptor> viewDescriptors = new ArrayList<CreateViewRequest.ViewDescriptor>(
+ childDescriptors.size());
+ for (ComrelNodeDescriptor next : childDescriptors) {
+ String hint = ComrelVisualIDRegistry.getType(next.getVisualID());
+ IAdaptable elementAdapter = new CanonicalElementAdapter(
+ next.getModelElement(), hint);
+ CreateViewRequest.ViewDescriptor descriptor = new CreateViewRequest.ViewDescriptor(
+ elementAdapter, Node.class, hint, ViewUtil.APPEND, false,
+ host().getDiagramPreferencesHint());
+ viewDescriptors.add(descriptor);
+ }
+
+ boolean changed = deleteViews(orphaned.iterator());
+ //
+ CreateViewRequest request = getCreateViewRequest(viewDescriptors);
+ Command cmd = getCreateViewCommand(request);
+ if (cmd != null && cmd.canExecute()) {
+ SetViewMutabilityCommand.makeMutable(
+ new EObjectAdapter(host().getNotationView())).execute();
+ executeCommand(cmd);
+ @SuppressWarnings("unchecked")
+ List<IAdaptable> nl = (List<IAdaptable>) request.getNewObject();
+ createdViews.addAll(nl);
+ }
+ if (changed || createdViews.size() > 0) {
+ postProcessRefreshSemantic(createdViews);
+ }
+ if (createdViews.size() > 1) {
+ // perform a layout of the container
+ DeferredLayoutCommand layoutCmd = new DeferredLayoutCommand(host()
+ .getEditingDomain(), createdViews, host());
+ executeCommand(new ICommandProxy(layoutCmd));
+ }
+
+ makeViewsImmutable(createdViews);
+ }
+}
diff --git a/org.eclipse.emf.refactor.comrel.diagram/src/comrel/diagram/edit/policies/ConditionalUnit2ItemSemanticEditPolicy.java b/org.eclipse.emf.refactor.comrel.diagram/src/comrel/diagram/edit/policies/ConditionalUnit2ItemSemanticEditPolicy.java
new file mode 100644
index 0000000..3508ee7
--- /dev/null
+++ b/org.eclipse.emf.refactor.comrel.diagram/src/comrel/diagram/edit/policies/ConditionalUnit2ItemSemanticEditPolicy.java
@@ -0,0 +1,337 @@
+/*
+ *
+ */
+package comrel.diagram.edit.policies;
+
+import java.util.Iterator;
+
+import org.eclipse.emf.ecore.EAnnotation;
+import org.eclipse.gef.commands.Command;
+import org.eclipse.gmf.runtime.common.core.command.ICompositeCommand;
+import org.eclipse.gmf.runtime.diagram.core.commands.DeleteCommand;
+import org.eclipse.gmf.runtime.emf.commands.core.command.CompositeTransactionalCommand;
+import org.eclipse.gmf.runtime.emf.type.core.commands.DestroyElementCommand;
+import org.eclipse.gmf.runtime.emf.type.core.requests.CreateElementRequest;
+import org.eclipse.gmf.runtime.emf.type.core.requests.DestroyElementRequest;
+import org.eclipse.gmf.runtime.notation.Edge;
+import org.eclipse.gmf.runtime.notation.Node;
+import org.eclipse.gmf.runtime.notation.View;
+
+import comrel.diagram.edit.commands.MultiInputPort9CreateCommand;
+import comrel.diagram.edit.commands.SingleInputPort8CreateCommand;
+import comrel.diagram.edit.parts.AtomicUnit6EditPart;
+import comrel.diagram.edit.parts.AtomicUnit7EditPart;
+import comrel.diagram.edit.parts.CartesianQueuedUnit6EditPart;
+import comrel.diagram.edit.parts.CartesianQueuedUnit7EditPart;
+import comrel.diagram.edit.parts.ConditionCheckEditPart;
+import comrel.diagram.edit.parts.ConditionalUnit6EditPart;
+import comrel.diagram.edit.parts.ConditionalUnit7EditPart;
+import comrel.diagram.edit.parts.ConditionalUnitConditionalUnitElseCompartmentEditPart;
+import comrel.diagram.edit.parts.ConditionalUnitConditionalUnitHelperUnitsCompartmentEditPart;
+import comrel.diagram.edit.parts.ConditionalUnitConditionalUnitIfCompartmentEditPart;
+import comrel.diagram.edit.parts.ConditionalUnitConditionalUnitThenCompartmentEditPart;
+import comrel.diagram.edit.parts.MultiFeatureUnit3EditPart;
+import comrel.diagram.edit.parts.MultiFilterUnit3EditPart;
+import comrel.diagram.edit.parts.MultiInputPort9EditPart;
+import comrel.diagram.edit.parts.MultiPortMappingEditPart;
+import comrel.diagram.edit.parts.MultiSinglePortMappingEditPart;
+import comrel.diagram.edit.parts.ParallelQueuedUnit3EditPart;
+import comrel.diagram.edit.parts.ParallelQueuedUnit7EditPart;
+import comrel.diagram.edit.parts.SequentialUnit5EditPart;
+import comrel.diagram.edit.parts.SequentialUnit7EditPart;
+import comrel.diagram.edit.parts.SingleFeatureUnit3EditPart;
+import comrel.diagram.edit.parts.SingleFilterUnit3EditPart;
+import comrel.diagram.edit.parts.SingleInputPort8EditPart;
+import comrel.diagram.edit.parts.SinglePortMappingEditPart;
+import comrel.diagram.edit.parts.SingleQueuedUnit4EditPart;
+import comrel.diagram.edit.parts.SingleQueuedUnit7EditPart;
+import comrel.diagram.part.ComrelVisualIDRegistry;
+import comrel.diagram.providers.ComrelElementTypes;
+
+/**
+ * @generated
+ */
+public class ConditionalUnit2ItemSemanticEditPolicy extends
+ ComrelBaseItemSemanticEditPolicy {
+
+ /**
+ * @generated
+ */
+ public ConditionalUnit2ItemSemanticEditPolicy() {
+ super(ComrelElementTypes.ConditionalUnit_3030);
+ }
+
+ /**
+ * @generated
+ */
+ protected Command getCreateCommand(CreateElementRequest req) {
+ if (ComrelElementTypes.SingleInputPort_3031 == req.getElementType()) {
+ return getGEFWrapper(new SingleInputPort8CreateCommand(req));
+ }
+ if (ComrelElementTypes.MultiInputPort_3032 == req.getElementType()) {
+ return getGEFWrapper(new MultiInputPort9CreateCommand(req));
+ }
+ return super.getCreateCommand(req);
+ }
+
+ /**
+ * @generated
+ */
+ protected Command getDestroyElementCommand(DestroyElementRequest req) {
+ View view = (View) getHost().getModel();
+ CompositeTransactionalCommand cmd = new CompositeTransactionalCommand(
+ getEditingDomain(), null);
+ cmd.setTransactionNestingEnabled(false);
+ EAnnotation annotation = view.getEAnnotation("Shortcut"); //$NON-NLS-1$
+ if (annotation == null) {
+ // there are indirectly referenced children, need extra commands: false
+ addDestroyChildNodesCommand(cmd);
+ addDestroyShortcutsCommand(cmd, view);
+ // delete host element
+ cmd.add(new DestroyElementCommand(req));
+ } else {
+ cmd.add(new DeleteCommand(getEditingDomain(), view));
+ }
+ return getGEFWrapper(cmd.reduce());
+ }
+
+ /**
+ * @generated
+ */
+ private void addDestroyChildNodesCommand(ICompositeCommand cmd) {
+ View view = (View) getHost().getModel();
+ for (Iterator<?> nit = view.getChildren().iterator(); nit.hasNext();) {
+ Node node = (Node) nit.next();
+ switch (ComrelVisualIDRegistry.getVisualID(node)) {
+ case SingleInputPort8EditPart.VISUAL_ID:
+ for (Iterator<?> it = node.getTargetEdges().iterator(); it
+ .hasNext();) {
+ Edge incomingLink = (Edge) it.next();
+ if (ComrelVisualIDRegistry.getVisualID(incomingLink) == SinglePortMappingEditPart.VISUAL_ID) {
+ DestroyElementRequest r = new DestroyElementRequest(
+ incomingLink.getElement(), false);
+ cmd.add(new DestroyElementCommand(r));
+ cmd.add(new DeleteCommand(getEditingDomain(),
+ incomingLink));
+ continue;
+ }
+ if (ComrelVisualIDRegistry.getVisualID(incomingLink) == MultiSinglePortMappingEditPart.VISUAL_ID) {
+ DestroyElementRequest r = new DestroyElementRequest(
+ incomingLink.getElement(), false);
+ cmd.add(new DestroyElementCommand(r));
+ cmd.add(new DeleteCommand(getEditingDomain(),
+ incomingLink));
+ continue;
+ }
+ }
+ for (Iterator<?> it = node.getSourceEdges().iterator(); it
+ .hasNext();) {
+ Edge outgoingLink = (Edge) it.next();
+ if (ComrelVisualIDRegistry.getVisualID(outgoingLink) == SinglePortMappingEditPart.VISUAL_ID) {
+ DestroyElementRequest r = new DestroyElementRequest(
+ outgoingLink.getElement(), false);
+ cmd.add(new DestroyElementCommand(r));
+ cmd.add(new DeleteCommand(getEditingDomain(),
+ outgoingLink));
+ continue;
+ }
+ }
+ cmd.add(new DestroyElementCommand(new DestroyElementRequest(
+ getEditingDomain(), node.getElement(), false))); // directlyOwned: true
+ // don't need explicit deletion of node as parent's view deletion would clean child views as well
+ // cmd.add(new org.eclipse.gmf.runtime.diagram.core.commands.DeleteCommand(getEditingDomain(), node));
+ break;
+ case MultiInputPort9EditPart.VISUAL_ID:
+ for (Iterator<?> it = node.getTargetEdges().iterator(); it
+ .hasNext();) {
+ Edge incomingLink = (Edge) it.next();
+ if (ComrelVisualIDRegistry.getVisualID(incomingLink) == MultiPortMappingEditPart.VISUAL_ID) {
+ DestroyElementRequest r = new DestroyElementRequest(
+ incomingLink.getElement(), false);
+ cmd.add(new DestroyElementCommand(r));
+ cmd.add(new DeleteCommand(getEditingDomain(),
+ incomingLink));
+ continue;
+ }
+ }
+ for (Iterator<?> it = node.getSourceEdges().iterator(); it
+ .hasNext();) {
+ Edge outgoingLink = (Edge) it.next();
+ if (ComrelVisualIDRegistry.getVisualID(outgoingLink) == MultiPortMappingEditPart.VISUAL_ID) {
+ DestroyElementRequest r = new DestroyElementRequest(
+ outgoingLink.getElement(), false);
+ cmd.add(new DestroyElementCommand(r));
+ cmd.add(new DeleteCommand(getEditingDomain(),
+ outgoingLink));
+ continue;
+ }
+ if (ComrelVisualIDRegistry.getVisualID(outgoingLink) == MultiSinglePortMappingEditPart.VISUAL_ID) {
+ DestroyElementRequest r = new DestroyElementRequest(
+ outgoingLink.getElement(), false);
+ cmd.add(new DestroyElementCommand(r));
+ cmd.add(new DeleteCommand(getEditingDomain(),
+ outgoingLink));
+ continue;
+ }
+ }
+ cmd.add(new DestroyElementCommand(new DestroyElementRequest(
+ getEditingDomain(), node.getElement(), false))); // directlyOwned: true
+ // don't need explicit deletion of node as parent's view deletion would clean child views as well
+ // cmd.add(new org.eclipse.gmf.runtime.diagram.core.commands.DeleteCommand(getEditingDomain(), node));
+ break;
+ case ConditionalUnitConditionalUnitIfCompartmentEditPart.VISUAL_ID:
+ for (Iterator<?> cit = node.getChildren().iterator(); cit
+ .hasNext();) {
+ Node cnode = (Node) cit.next();
+ switch (ComrelVisualIDRegistry.getVisualID(cnode)) {
+ case ConditionCheckEditPart.VISUAL_ID:
+ cmd.add(new DestroyElementCommand(
+ new DestroyElementRequest(getEditingDomain(),
+ cnode.getElement(), false))); // directlyOwned: true
+ // don't need explicit deletion of cnode as parent's view deletion would clean child views as well
+ // cmd.add(new org.eclipse.gmf.runtime.diagram.core.commands.DeleteCommand(getEditingDomain(), cnode));
+ break;
+ }
+ }
+ break;
+ case ConditionalUnitConditionalUnitHelperUnitsCompartmentEditPart.VISUAL_ID:
+ for (Iterator<?> cit = node.getChildren().iterator(); cit
+ .hasNext();) {
+ Node cnode = (Node) cit.next();
+ switch (ComrelVisualIDRegistry.getVisualID(cnode)) {
+ case SingleFeatureUnit3EditPart.VISUAL_ID:
+ cmd.add(new DestroyElementCommand(
+ new DestroyElementRequest(getEditingDomain(),
+ cnode.getElement(), false))); // directlyOwned: true
+ // don't need explicit deletion of cnode as parent's view deletion would clean child views as well
+ // cmd.add(new org.eclipse.gmf.runtime.diagram.core.commands.DeleteCommand(getEditingDomain(), cnode));
+ break;
+ case MultiFeatureUnit3EditPart.VISUAL_ID:
+ cmd.add(new DestroyElementCommand(
+ new DestroyElementRequest(getEditingDomain(),
+ cnode.getElement(), false))); // directlyOwned: true
+ // don't need explicit deletion of cnode as parent's view deletion would clean child views as well
+ // cmd.add(new org.eclipse.gmf.runtime.diagram.core.commands.DeleteCommand(getEditingDomain(), cnode));
+ break;
+ case SingleFilterUnit3EditPart.VISUAL_ID:
+ cmd.add(new DestroyElementCommand(
+ new DestroyElementRequest(getEditingDomain(),
+ cnode.getElement(), false))); // directlyOwned: true
+ // don't need explicit deletion of cnode as parent's view deletion would clean child views as well
+ // cmd.add(new org.eclipse.gmf.runtime.diagram.core.commands.DeleteCommand(getEditingDomain(), cnode));
+ break;
+ case MultiFilterUnit3EditPart.VISUAL_ID:
+ cmd.add(new DestroyElementCommand(
+ new DestroyElementRequest(getEditingDomain(),
+ cnode.getElement(), false))); // directlyOwned: true
+ // don't need explicit deletion of cnode as parent's view deletion would clean child views as well
+ // cmd.add(new org.eclipse.gmf.runtime.diagram.core.commands.DeleteCommand(getEditingDomain(), cnode));
+ break;
+ }
+ }
+ break;
+ case ConditionalUnitConditionalUnitThenCompartmentEditPart.VISUAL_ID:
+ for (Iterator<?> cit = node.getChildren().iterator(); cit
+ .hasNext();) {
+ Node cnode = (Node) cit.next();
+ switch (ComrelVisualIDRegistry.getVisualID(cnode)) {
+ case CartesianQueuedUnit6EditPart.VISUAL_ID:
+ cmd.add(new DestroyElementCommand(
+ new DestroyElementRequest(getEditingDomain(),
+ cnode.getElement(), false))); // directlyOwned: true
+ // don't need explicit deletion of cnode as parent's view deletion would clean child views as well
+ // cmd.add(new org.eclipse.gmf.runtime.diagram.core.commands.DeleteCommand(getEditingDomain(), cnode));
+ break;
+ case ParallelQueuedUnit3EditPart.VISUAL_ID:
+ cmd.add(new DestroyElementCommand(
+ new DestroyElementRequest(getEditingDomain(),
+ cnode.getElement(), false))); // directlyOwned: true
+ // don't need explicit deletion of cnode as parent's view deletion would clean child views as well
+ // cmd.add(new org.eclipse.gmf.runtime.diagram.core.commands.DeleteCommand(getEditingDomain(), cnode));
+ break;
+ case SingleQueuedUnit4EditPart.VISUAL_ID:
+ cmd.add(new DestroyElementCommand(
+ new DestroyElementRequest(getEditingDomain(),
+ cnode.getElement(), false))); // directlyOwned: true
+ // don't need explicit deletion of cnode as parent's view deletion would clean child views as well
+ // cmd.add(new org.eclipse.gmf.runtime.diagram.core.commands.DeleteCommand(getEditingDomain(), cnode));
+ break;
+ case SequentialUnit5EditPart.VISUAL_ID:
+ cmd.add(new DestroyElementCommand(
+ new DestroyElementRequest(getEditingDomain(),
+ cnode.getElement(), false))); // directlyOwned: true
+ // don't need explicit deletion of cnode as parent's view deletion would clean child views as well
+ // cmd.add(new org.eclipse.gmf.runtime.diagram.core.commands.DeleteCommand(getEditingDomain(), cnode));
+ break;
+ case ConditionalUnit6EditPart.VISUAL_ID:
+ cmd.add(new DestroyElementCommand(
+ new DestroyElementRequest(getEditingDomain(),
+ cnode.getElement(), false))); // directlyOwned: true
+ // don't need explicit deletion of cnode as parent's view deletion would clean child views as well
+ // cmd.add(new org.eclipse.gmf.runtime.diagram.core.commands.DeleteCommand(getEditingDomain(), cnode));
+ break;
+ case AtomicUnit6EditPart.VISUAL_ID:
+ cmd.add(new DestroyElementCommand(
+ new DestroyElementRequest(getEditingDomain(),
+ cnode.getElement(), false))); // directlyOwned: true
+ // don't need explicit deletion of cnode as parent's view deletion would clean child views as well
+ // cmd.add(new org.eclipse.gmf.runtime.diagram.core.commands.DeleteCommand(getEditingDomain(), cnode));
+ break;
+ }
+ }
+ break;
+ case ConditionalUnitConditionalUnitElseCompartmentEditPart.VISUAL_ID:
+ for (Iterator<?> cit = node.getChildren().iterator(); cit
+ .hasNext();) {
+ Node cnode = (Node) cit.next();
+ switch (ComrelVisualIDRegistry.getVisualID(cnode)) {
+ case CartesianQueuedUnit7EditPart.VISUAL_ID:
+ cmd.add(new DestroyElementCommand(
+ new DestroyElementRequest(getEditingDomain(),
+ cnode.getElement(), false))); // directlyOwned: true
+ // don't need explicit deletion of cnode as parent's view deletion would clean child views as well
+ // cmd.add(new org.eclipse.gmf.runtime.diagram.core.commands.DeleteCommand(getEditingDomain(), cnode));
+ break;
+ case ParallelQueuedUnit7EditPart.VISUAL_ID:
+ cmd.add(new DestroyElementCommand(
+ new DestroyElementRequest(getEditingDomain(),
+ cnode.getElement(), false))); // directlyOwned: true
+ // don't need explicit deletion of cnode as parent's view deletion would clean child views as well
+ // cmd.add(new org.eclipse.gmf.runtime.diagram.core.commands.DeleteCommand(getEditingDomain(), cnode));
+ break;
+ case SingleQueuedUnit7EditPart.VISUAL_ID:
+ cmd.add(new DestroyElementCommand(
+ new DestroyElementRequest(getEditingDomain(),
+ cnode.getElement(), false))); // directlyOwned: true
+ // don't need explicit deletion of cnode as parent's view deletion would clean child views as well
+ // cmd.add(new org.eclipse.gmf.runtime.diagram.core.commands.DeleteCommand(getEditingDomain(), cnode));
+ break;
+ case SequentialUnit7EditPart.VISUAL_ID:
+ cmd.add(new DestroyElementCommand(
+ new DestroyElementRequest(getEditingDomain(),
+ cnode.getElement(), false))); // directlyOwned: true
+ // don't need explicit deletion of cnode as parent's view deletion would clean child views as well
+ // cmd.add(new org.eclipse.gmf.runtime.diagram.core.commands.DeleteCommand(getEditingDomain(), cnode));
+ break;
+ case ConditionalUnit7EditPart.VISUAL_ID:
+ cmd.add(new DestroyElementCommand(
+ new DestroyElementRequest(getEditingDomain(),
+ cnode.getElement(), false))); // directlyOwned: true
+ // don't need explicit deletion of cnode as parent's view deletion would clean child views as well
+ // cmd.add(new org.eclipse.gmf.runtime.diagram.core.commands.DeleteCommand(getEditingDomain(), cnode));
+ break;
+ case AtomicUnit7EditPart.VISUAL_ID:
+ cmd.add(new DestroyElementCommand(
+ new DestroyElementRequest(getEditingDomain(),
+ cnode.getElement(), false))); // directlyOwned: true
+ // don't need explicit deletion of cnode as parent's view deletion would clean child views as well
+ // cmd.add(new org.eclipse.gmf.runtime.diagram.core.commands.DeleteCommand(getEditingDomain(), cnode));
+ break;
+ }
+ }
+ break;
+ }
+ }
+ }
+
+}
diff --git a/org.eclipse.emf.refactor.comrel.diagram/src/comrel/diagram/edit/policies/ConditionalUnit3CanonicalEditPolicy.java b/org.eclipse.emf.refactor.comrel.diagram/src/comrel/diagram/edit/policies/ConditionalUnit3CanonicalEditPolicy.java
new file mode 100644
index 0000000..a32ee71
--- /dev/null
+++ b/org.eclipse.emf.refactor.comrel.diagram/src/comrel/diagram/edit/policies/ConditionalUnit3CanonicalEditPolicy.java
@@ -0,0 +1,164 @@
+/*
+ *
+ */
+package comrel.diagram.edit.policies;
+
+import java.util.ArrayList;
+import java.util.Collection;
+import java.util.Iterator;
+import java.util.LinkedList;
+import java.util.List;
+
+import org.eclipse.core.runtime.IAdaptable;
+import org.eclipse.emf.ecore.EObject;
+import org.eclipse.emf.ecore.EStructuralFeature;
+import org.eclipse.gef.commands.Command;
+import org.eclipse.gmf.runtime.diagram.core.util.ViewUtil;
+import org.eclipse.gmf.runtime.diagram.ui.commands.DeferredLayoutCommand;
+import org.eclipse.gmf.runtime.diagram.ui.commands.ICommandProxy;
+import org.eclipse.gmf.runtime.diagram.ui.commands.SetViewMutabilityCommand;
+import org.eclipse.gmf.runtime.diagram.ui.editpolicies.CanonicalEditPolicy;
+import org.eclipse.gmf.runtime.diagram.ui.requests.CreateViewRequest;
+import org.eclipse.gmf.runtime.emf.core.util.EObjectAdapter;
+import org.eclipse.gmf.runtime.notation.Node;
+import org.eclipse.gmf.runtime.notation.View;
+
+import comrel.ComrelPackage;
+import comrel.diagram.edit.parts.MultiInputPort9EditPart;
+import comrel.diagram.edit.parts.SingleInputPort8EditPart;
+import comrel.diagram.part.ComrelDiagramUpdater;
+import comrel.diagram.part.ComrelNodeDescriptor;
+import comrel.diagram.part.ComrelVisualIDRegistry;
+
+/**
+ * @generated
+ */
+public class ConditionalUnit3CanonicalEditPolicy extends CanonicalEditPolicy {
+
+ /**
+ * @generated
+ */
+ protected EStructuralFeature getFeatureToSynchronize() {
+ return ComrelPackage.eINSTANCE.getConditionalUnit_InputPorts();
+ }
+
+ /**
+ * @generated
+ */
+ @SuppressWarnings("rawtypes")
+ protected List getSemanticChildrenList() {
+ View viewObject = (View) getHost().getModel();
+ LinkedList<EObject> result = new LinkedList<EObject>();
+ List<ComrelNodeDescriptor> childDescriptors = ComrelDiagramUpdater
+ .getConditionalUnit_3046SemanticChildren(viewObject);
+ for (ComrelNodeDescriptor d : childDescriptors) {
+ result.add(d.getModelElement());
+ }
+ return result;
+ }
+
+ /**
+ * @generated
+ */
+ protected boolean isOrphaned(Collection<EObject> semanticChildren,
+ final View view) {
+ return isMyDiagramElement(view)
+ && !semanticChildren.contains(view.getElement());
+ }
+
+ /**
+ * @generated
+ */
+ private boolean isMyDiagramElement(View view) {
+ int visualID = ComrelVisualIDRegistry.getVisualID(view);
+ return visualID == SingleInputPort8EditPart.VISUAL_ID
+ || visualID == MultiInputPort9EditPart.VISUAL_ID;
+ }
+
+ /**
+ * @generated
+ */
+ protected void refreshSemantic() {
+ if (resolveSemanticElement() == null) {
+ return;
+ }
+ LinkedList<IAdaptable> createdViews = new LinkedList<IAdaptable>();
+ List<ComrelNodeDescriptor> childDescriptors = ComrelDiagramUpdater
+ .getConditionalUnit_3046SemanticChildren((View) getHost()
+ .getModel());
+ LinkedList<View> orphaned = new LinkedList<View>();
+ // we care to check only views we recognize as ours
+ LinkedList<View> knownViewChildren = new LinkedList<View>();
+ for (View v : getViewChildren()) {
+ if (isMyDiagramElement(v)) {
+ knownViewChildren.add(v);
+ }
+ }
+ // alternative to #cleanCanonicalSemanticChildren(getViewChildren(), semanticChildren)
+ //
+ // iteration happens over list of desired semantic elements, trying to find best matching View, while original CEP
+ // iterates views, potentially losing view (size/bounds) information - i.e. if there are few views to reference same EObject, only last one
+ // to answer isOrphaned == true will be used for the domain element representation, see #cleanCanonicalSemanticChildren()
+ for (Iterator<ComrelNodeDescriptor> descriptorsIterator = childDescriptors
+ .iterator(); descriptorsIterator.hasNext();) {
+ ComrelNodeDescriptor next = descriptorsIterator.next();
+ String hint = ComrelVisualIDRegistry.getType(next.getVisualID());
+ LinkedList<View> perfectMatch = new LinkedList<View>(); // both semanticElement and hint match that of NodeDescriptor
+ for (View childView : getViewChildren()) {
+ EObject semanticElement = childView.getElement();
+ if (next.getModelElement().equals(semanticElement)) {
+ if (hint.equals(childView.getType())) {
+ perfectMatch.add(childView);
+ // actually, can stop iteration over view children here, but
+ // may want to use not the first view but last one as a 'real' match (the way original CEP does
+ // with its trick with viewToSemanticMap inside #cleanCanonicalSemanticChildren
+ }
+ }
+ }
+ if (perfectMatch.size() > 0) {
+ descriptorsIterator.remove(); // precise match found no need to create anything for the NodeDescriptor
+ // use only one view (first or last?), keep rest as orphaned for further consideration
+ knownViewChildren.remove(perfectMatch.getFirst());
+ }
+ }
+ // those left in knownViewChildren are subject to removal - they are our diagram elements we didn't find match to,
+ // or those we have potential matches to, and thus need to be recreated, preserving size/location information.
+ orphaned.addAll(knownViewChildren);
+ //
+ ArrayList<CreateViewRequest.ViewDescriptor> viewDescriptors = new ArrayList<CreateViewRequest.ViewDescriptor>(
+ childDescriptors.size());
+ for (ComrelNodeDescriptor next : childDescriptors) {
+ String hint = ComrelVisualIDRegistry.getType(next.getVisualID());
+ IAdaptable elementAdapter = new CanonicalElementAdapter(
+ next.getModelElement(), hint);
+ CreateViewRequest.ViewDescriptor descriptor = new CreateViewRequest.ViewDescriptor(
+ elementAdapter, Node.class, hint, ViewUtil.APPEND, false,
+ host().getDiagramPreferencesHint());
+ viewDescriptors.add(descriptor);
+ }
+
+ boolean changed = deleteViews(orphaned.iterator());
+ //
+ CreateViewRequest request = getCreateViewRequest(viewDescriptors);
+ Command cmd = getCreateViewCommand(request);
+ if (cmd != null && cmd.canExecute()) {
+ SetViewMutabilityCommand.makeMutable(
+ new EObjectAdapter(host().getNotationView())).execute();
+ executeCommand(cmd);
+ @SuppressWarnings("unchecked")
+ List<IAdaptable> nl = (List<IAdaptable>) request.getNewObject();
+ createdViews.addAll(nl);
+ }
+ if (changed || createdViews.size() > 0) {
+ postProcessRefreshSemantic(createdViews);
+ }
+ if (createdViews.size() > 1) {
+ // perform a layout of the container
+ DeferredLayoutCommand layoutCmd = new DeferredLayoutCommand(host()
+ .getEditingDomain(), createdViews, host());
+ executeCommand(new ICommandProxy(layoutCmd));
+ }
+
+ makeViewsImmutable(createdViews);
+ }
+}
diff --git a/org.eclipse.emf.refactor.comrel.diagram/src/comrel/diagram/edit/policies/ConditionalUnit3ItemSemanticEditPolicy.java b/org.eclipse.emf.refactor.comrel.diagram/src/comrel/diagram/edit/policies/ConditionalUnit3ItemSemanticEditPolicy.java
new file mode 100644
index 0000000..0ffd6eb
--- /dev/null
+++ b/org.eclipse.emf.refactor.comrel.diagram/src/comrel/diagram/edit/policies/ConditionalUnit3ItemSemanticEditPolicy.java
@@ -0,0 +1,337 @@
+/*
+ *
+ */
+package comrel.diagram.edit.policies;
+
+import java.util.Iterator;
+
+import org.eclipse.emf.ecore.EAnnotation;
+import org.eclipse.gef.commands.Command;
+import org.eclipse.gmf.runtime.common.core.command.ICompositeCommand;
+import org.eclipse.gmf.runtime.diagram.core.commands.DeleteCommand;
+import org.eclipse.gmf.runtime.emf.commands.core.command.CompositeTransactionalCommand;
+import org.eclipse.gmf.runtime.emf.type.core.commands.DestroyElementCommand;
+import org.eclipse.gmf.runtime.emf.type.core.requests.CreateElementRequest;
+import org.eclipse.gmf.runtime.emf.type.core.requests.DestroyElementRequest;
+import org.eclipse.gmf.runtime.notation.Edge;
+import org.eclipse.gmf.runtime.notation.Node;
+import org.eclipse.gmf.runtime.notation.View;
+
+import comrel.diagram.edit.commands.MultiInputPort9CreateCommand;
+import comrel.diagram.edit.commands.SingleInputPort8CreateCommand;
+import comrel.diagram.edit.parts.AtomicUnit6EditPart;
+import comrel.diagram.edit.parts.AtomicUnit7EditPart;
+import comrel.diagram.edit.parts.CartesianQueuedUnit6EditPart;
+import comrel.diagram.edit.parts.CartesianQueuedUnit7EditPart;
+import comrel.diagram.edit.parts.ConditionCheckEditPart;
+import comrel.diagram.edit.parts.ConditionalUnit6EditPart;
+import comrel.diagram.edit.parts.ConditionalUnit7EditPart;
+import comrel.diagram.edit.parts.ConditionalUnitConditionalUnitElseCompartment2EditPart;
+import comrel.diagram.edit.parts.ConditionalUnitConditionalUnitHelperUnitsCompartment2EditPart;
+import comrel.diagram.edit.parts.ConditionalUnitConditionalUnitIfCompartment2EditPart;
+import comrel.diagram.edit.parts.ConditionalUnitConditionalUnitThenCompartment2EditPart;
+import comrel.diagram.edit.parts.MultiFeatureUnit3EditPart;
+import comrel.diagram.edit.parts.MultiFilterUnit3EditPart;
+import comrel.diagram.edit.parts.MultiInputPort9EditPart;
+import comrel.diagram.edit.parts.MultiPortMappingEditPart;
+import comrel.diagram.edit.parts.MultiSinglePortMappingEditPart;
+import comrel.diagram.edit.parts.ParallelQueuedUnit3EditPart;
+import comrel.diagram.edit.parts.ParallelQueuedUnit7EditPart;
+import comrel.diagram.edit.parts.SequentialUnit5EditPart;
+import comrel.diagram.edit.parts.SequentialUnit7EditPart;
+import comrel.diagram.edit.parts.SingleFeatureUnit3EditPart;
+import comrel.diagram.edit.parts.SingleFilterUnit3EditPart;
+import comrel.diagram.edit.parts.SingleInputPort8EditPart;
+import comrel.diagram.edit.parts.SinglePortMappingEditPart;
+import comrel.diagram.edit.parts.SingleQueuedUnit4EditPart;
+import comrel.diagram.edit.parts.SingleQueuedUnit7EditPart;
+import comrel.diagram.part.ComrelVisualIDRegistry;
+import comrel.diagram.providers.ComrelElementTypes;
+
+/**
+ * @generated
+ */
+public class ConditionalUnit3ItemSemanticEditPolicy extends
+ ComrelBaseItemSemanticEditPolicy {
+
+ /**
+ * @generated
+ */
+ public ConditionalUnit3ItemSemanticEditPolicy() {
+ super(ComrelElementTypes.ConditionalUnit_3046);
+ }
+
+ /**
+ * @generated
+ */
+ protected Command getCreateCommand(CreateElementRequest req) {
+ if (ComrelElementTypes.SingleInputPort_3031 == req.getElementType()) {
+ return getGEFWrapper(new SingleInputPort8CreateCommand(req));
+ }
+ if (ComrelElementTypes.MultiInputPort_3032 == req.getElementType()) {
+ return getGEFWrapper(new MultiInputPort9CreateCommand(req));
+ }
+ return super.getCreateCommand(req);
+ }
+
+ /**
+ * @generated
+ */
+ protected Command getDestroyElementCommand(DestroyElementRequest req) {
+ View view = (View) getHost().getModel();
+ CompositeTransactionalCommand cmd = new CompositeTransactionalCommand(
+ getEditingDomain(), null);
+ cmd.setTransactionNestingEnabled(false);
+ EAnnotation annotation = view.getEAnnotation("Shortcut"); //$NON-NLS-1$
+ if (annotation == null) {
+ // there are indirectly referenced children, need extra commands: false
+ addDestroyChildNodesCommand(cmd);
+ addDestroyShortcutsCommand(cmd, view);
+ // delete host element
+ cmd.add(new DestroyElementCommand(req));
+ } else {
+ cmd.add(new DeleteCommand(getEditingDomain(), view));
+ }
+ return getGEFWrapper(cmd.reduce());
+ }
+
+ /**
+ * @generated
+ */
+ private void addDestroyChildNodesCommand(ICompositeCommand cmd) {
+ View view = (View) getHost().getModel();
+ for (Iterator<?> nit = view.getChildren().iterator(); nit.hasNext();) {
+ Node node = (Node) nit.next();
+ switch (ComrelVisualIDRegistry.getVisualID(node)) {
+ case SingleInputPort8EditPart.VISUAL_ID:
+ for (Iterator<?> it = node.getTargetEdges().iterator(); it
+ .hasNext();) {
+ Edge incomingLink = (Edge) it.next();
+ if (ComrelVisualIDRegistry.getVisualID(incomingLink) == SinglePortMappingEditPart.VISUAL_ID) {
+ DestroyElementRequest r = new DestroyElementRequest(
+ incomingLink.getElement(), false);
+ cmd.add(new DestroyElementCommand(r));
+ cmd.add(new DeleteCommand(getEditingDomain(),
+ incomingLink));
+ continue;
+ }
+ if (ComrelVisualIDRegistry.getVisualID(incomingLink) == MultiSinglePortMappingEditPart.VISUAL_ID) {
+ DestroyElementRequest r = new DestroyElementRequest(
+ incomingLink.getElement(), false);
+ cmd.add(new DestroyElementCommand(r));
+ cmd.add(new DeleteCommand(getEditingDomain(),
+ incomingLink));
+ continue;
+ }
+ }
+ for (Iterator<?> it = node.getSourceEdges().iterator(); it
+ .hasNext();) {
+ Edge outgoingLink = (Edge) it.next();
+ if (ComrelVisualIDRegistry.getVisualID(outgoingLink) == SinglePortMappingEditPart.VISUAL_ID) {
+ DestroyElementRequest r = new DestroyElementRequest(
+ outgoingLink.getElement(), false);
+ cmd.add(new DestroyElementCommand(r));
+ cmd.add(new DeleteCommand(getEditingDomain(),
+ outgoingLink));
+ continue;
+ }
+ }
+ cmd.add(new DestroyElementCommand(new DestroyElementRequest(
+ getEditingDomain(), node.getElement(), false))); // directlyOwned: true
+ // don't need explicit deletion of node as parent's view deletion would clean child views as well
+ // cmd.add(new org.eclipse.gmf.runtime.diagram.core.commands.DeleteCommand(getEditingDomain(), node));
+ break;
+ case MultiInputPort9EditPart.VISUAL_ID:
+ for (Iterator<?> it = node.getTargetEdges().iterator(); it
+ .hasNext();) {
+ Edge incomingLink = (Edge) it.next();
+ if (ComrelVisualIDRegistry.getVisualID(incomingLink) == MultiPortMappingEditPart.VISUAL_ID) {
+ DestroyElementRequest r = new DestroyElementRequest(
+ incomingLink.getElement(), false);
+ cmd.add(new DestroyElementCommand(r));
+ cmd.add(new DeleteCommand(getEditingDomain(),
+ incomingLink));
+ continue;
+ }
+ }
+ for (Iterator<?> it = node.getSourceEdges().iterator(); it
+ .hasNext();) {
+ Edge outgoingLink = (Edge) it.next();
+ if (ComrelVisualIDRegistry.getVisualID(outgoingLink) == MultiPortMappingEditPart.VISUAL_ID) {
+ DestroyElementRequest r = new DestroyElementRequest(
+ outgoingLink.getElement(), false);
+ cmd.add(new DestroyElementCommand(r));
+ cmd.add(new DeleteCommand(getEditingDomain(),
+ outgoingLink));
+ continue;
+ }
+ if (ComrelVisualIDRegistry.getVisualID(outgoingLink) == MultiSinglePortMappingEditPart.VISUAL_ID) {
+ DestroyElementRequest r = new DestroyElementRequest(
+ outgoingLink.getElement(), false);
+ cmd.add(new DestroyElementCommand(r));
+ cmd.add(new DeleteCommand(getEditingDomain(),
+ outgoingLink));
+ continue;
+ }
+ }
+ cmd.add(new DestroyElementCommand(new DestroyElementRequest(
+ getEditingDomain(), node.getElement(), false))); // directlyOwned: true
+ // don't need explicit deletion of node as parent's view deletion would clean child views as well
+ // cmd.add(new org.eclipse.gmf.runtime.diagram.core.commands.DeleteCommand(getEditingDomain(), node));
+ break;
+ case ConditionalUnitConditionalUnitIfCompartment2EditPart.VISUAL_ID:
+ for (Iterator<?> cit = node.getChildren().iterator(); cit
+ .hasNext();) {
+ Node cnode = (Node) cit.next();
+ switch (ComrelVisualIDRegistry.getVisualID(cnode)) {
+ case ConditionCheckEditPart.VISUAL_ID:
+ cmd.add(new DestroyElementCommand(
+ new DestroyElementRequest(getEditingDomain(),
+ cnode.getElement(), false))); // directlyOwned: true
+ // don't need explicit deletion of cnode as parent's view deletion would clean child views as well
+ // cmd.add(new org.eclipse.gmf.runtime.diagram.core.commands.DeleteCommand(getEditingDomain(), cnode));
+ break;
+ }
+ }
+ break;
+ case ConditionalUnitConditionalUnitHelperUnitsCompartment2EditPart.VISUAL_ID:
+ for (Iterator<?> cit = node.getChildren().iterator(); cit
+ .hasNext();) {
+ Node cnode = (Node) cit.next();
+ switch (ComrelVisualIDRegistry.getVisualID(cnode)) {
+ case SingleFeatureUnit3EditPart.VISUAL_ID:
+ cmd.add(new DestroyElementCommand(
+ new DestroyElementRequest(getEditingDomain(),
+ cnode.getElement(), false))); // directlyOwned: true
+ // don't need explicit deletion of cnode as parent's view deletion would clean child views as well
+ // cmd.add(new org.eclipse.gmf.runtime.diagram.core.commands.DeleteCommand(getEditingDomain(), cnode));
+ break;
+ case MultiFeatureUnit3EditPart.VISUAL_ID:
+ cmd.add(new DestroyElementCommand(
+ new DestroyElementRequest(getEditingDomain(),
+ cnode.getElement(), false))); // directlyOwned: true
+ // don't need explicit deletion of cnode as parent's view deletion would clean child views as well
+ // cmd.add(new org.eclipse.gmf.runtime.diagram.core.commands.DeleteCommand(getEditingDomain(), cnode));
+ break;
+ case SingleFilterUnit3EditPart.VISUAL_ID:
+ cmd.add(new DestroyElementCommand(
+ new DestroyElementRequest(getEditingDomain(),
+ cnode.getElement(), false))); // directlyOwned: true
+ // don't need explicit deletion of cnode as parent's view deletion would clean child views as well
+ // cmd.add(new org.eclipse.gmf.runtime.diagram.core.commands.DeleteCommand(getEditingDomain(), cnode));
+ break;
+ case MultiFilterUnit3EditPart.VISUAL_ID:
+ cmd.add(new DestroyElementCommand(
+ new DestroyElementRequest(getEditingDomain(),
+ cnode.getElement(), false))); // directlyOwned: true
+ // don't need explicit deletion of cnode as parent's view deletion would clean child views as well
+ // cmd.add(new org.eclipse.gmf.runtime.diagram.core.commands.DeleteCommand(getEditingDomain(), cnode));
+ break;
+ }
+ }
+ break;
+ case ConditionalUnitConditionalUnitThenCompartment2EditPart.VISUAL_ID:
+ for (Iterator<?> cit = node.getChildren().iterator(); cit
+ .hasNext();) {
+ Node cnode = (Node) cit.next();
+ switch (ComrelVisualIDRegistry.getVisualID(cnode)) {
+ case CartesianQueuedUnit6EditPart.VISUAL_ID:
+ cmd.add(new DestroyElementCommand(
+ new DestroyElementRequest(getEditingDomain(),
+ cnode.getElement(), false))); // directlyOwned: true
+ // don't need explicit deletion of cnode as parent's view deletion would clean child views as well
+ // cmd.add(new org.eclipse.gmf.runtime.diagram.core.commands.DeleteCommand(getEditingDomain(), cnode));
+ break;
+ case ParallelQueuedUnit3EditPart.VISUAL_ID:
+ cmd.add(new DestroyElementCommand(
+ new DestroyElementRequest(getEditingDomain(),
+ cnode.getElement(), false))); // directlyOwned: true
+ // don't need explicit deletion of cnode as parent's view deletion would clean child views as well
+ // cmd.add(new org.eclipse.gmf.runtime.diagram.core.commands.DeleteCommand(getEditingDomain(), cnode));
+ break;
+ case SingleQueuedUnit4EditPart.VISUAL_ID:
+ cmd.add(new DestroyElementCommand(
+ new DestroyElementRequest(getEditingDomain(),
+ cnode.getElement(), false))); // directlyOwned: true
+ // don't need explicit deletion of cnode as parent's view deletion would clean child views as well
+ // cmd.add(new org.eclipse.gmf.runtime.diagram.core.commands.DeleteCommand(getEditingDomain(), cnode));
+ break;
+ case SequentialUnit5EditPart.VISUAL_ID:
+ cmd.add(new DestroyElementCommand(
+ new DestroyElementRequest(getEditingDomain(),
+ cnode.getElement(), false))); // directlyOwned: true
+ // don't need explicit deletion of cnode as parent's view deletion would clean child views as well
+ // cmd.add(new org.eclipse.gmf.runtime.diagram.core.commands.DeleteCommand(getEditingDomain(), cnode));
+ break;
+ case ConditionalUnit6EditPart.VISUAL_ID:
+ cmd.add(new DestroyElementCommand(
+ new DestroyElementRequest(getEditingDomain(),
+ cnode.getElement(), false))); // directlyOwned: true
+ // don't need explicit deletion of cnode as parent's view deletion would clean child views as well
+ // cmd.add(new org.eclipse.gmf.runtime.diagram.core.commands.DeleteCommand(getEditingDomain(), cnode));
+ break;
+ case AtomicUnit6EditPart.VISUAL_ID:
+ cmd.add(new DestroyElementCommand(
+ new DestroyElementRequest(getEditingDomain(),
+ cnode.getElement(), false))); // directlyOwned: true
+ // don't need explicit deletion of cnode as parent's view deletion would clean child views as well
+ // cmd.add(new org.eclipse.gmf.runtime.diagram.core.commands.DeleteCommand(getEditingDomain(), cnode));
+ break;
+ }
+ }
+ break;
+ case ConditionalUnitConditionalUnitElseCompartment2EditPart.VISUAL_ID:
+ for (Iterator<?> cit = node.getChildren().iterator(); cit
+ .hasNext();) {
+ Node cnode = (Node) cit.next();
+ switch (ComrelVisualIDRegistry.getVisualID(cnode)) {
+ case CartesianQueuedUnit7EditPart.VISUAL_ID:
+ cmd.add(new DestroyElementCommand(
+ new DestroyElementRequest(getEditingDomain(),
+ cnode.getElement(), false))); // directlyOwned: true
+ // don't need explicit deletion of cnode as parent's view deletion would clean child views as well
+ // cmd.add(new org.eclipse.gmf.runtime.diagram.core.commands.DeleteCommand(getEditingDomain(), cnode));
+ break;
+ case ParallelQueuedUnit7EditPart.VISUAL_ID:
+ cmd.add(new DestroyElementCommand(
+ new DestroyElementRequest(getEditingDomain(),
+ cnode.getElement(), false))); // directlyOwned: true
+ // don't need explicit deletion of cnode as parent's view deletion would clean child views as well
+ // cmd.add(new org.eclipse.gmf.runtime.diagram.core.commands.DeleteCommand(getEditingDomain(), cnode));
+ break;
+ case SingleQueuedUnit7EditPart.VISUAL_ID:
+ cmd.add(new DestroyElementCommand(
+ new DestroyElementRequest(getEditingDomain(),
+ cnode.getElement(), false))); // directlyOwned: true
+ // don't need explicit deletion of cnode as parent's view deletion would clean child views as well
+ // cmd.add(new org.eclipse.gmf.runtime.diagram.core.commands.DeleteCommand(getEditingDomain(), cnode));
+ break;
+ case SequentialUnit7EditPart.VISUAL_ID:
+ cmd.add(new DestroyElementCommand(
+ new DestroyElementRequest(getEditingDomain(),
+ cnode.getElement(), false))); // directlyOwned: true
+ // don't need explicit deletion of cnode as parent's view deletion would clean child views as well
+ // cmd.add(new org.eclipse.gmf.runtime.diagram.core.commands.DeleteCommand(getEditingDomain(), cnode));
+ break;
+ case ConditionalUnit7EditPart.VISUAL_ID:
+ cmd.add(new DestroyElementCommand(
+ new DestroyElementRequest(getEditingDomain(),
+ cnode.getElement(), false))); // directlyOwned: true
+ // don't need explicit deletion of cnode as parent's view deletion would clean child views as well
+ // cmd.add(new org.eclipse.gmf.runtime.diagram.core.commands.DeleteCommand(getEditingDomain(), cnode));
+ break;
+ case AtomicUnit7EditPart.VISUAL_ID:
+ cmd.add(new DestroyElementCommand(
+ new DestroyElementRequest(getEditingDomain(),
+ cnode.getElement(), false))); // directlyOwned: true
+ // don't need explicit deletion of cnode as parent's view deletion would clean child views as well
+ // cmd.add(new org.eclipse.gmf.runtime.diagram.core.commands.DeleteCommand(getEditingDomain(), cnode));
+ break;
+ }
+ }
+ break;
+ }
+ }
+ }
+
+}
diff --git a/org.eclipse.emf.refactor.comrel.diagram/src/comrel/diagram/edit/policies/ConditionalUnit4CanonicalEditPolicy.java b/org.eclipse.emf.refactor.comrel.diagram/src/comrel/diagram/edit/policies/ConditionalUnit4CanonicalEditPolicy.java
new file mode 100644
index 0000000..2d5e8e6
--- /dev/null
+++ b/org.eclipse.emf.refactor.comrel.diagram/src/comrel/diagram/edit/policies/ConditionalUnit4CanonicalEditPolicy.java
@@ -0,0 +1,164 @@
+/*
+ *
+ */
+package comrel.diagram.edit.policies;
+
+import java.util.ArrayList;
+import java.util.Collection;
+import java.util.Iterator;
+import java.util.LinkedList;
+import java.util.List;
+
+import org.eclipse.core.runtime.IAdaptable;
+import org.eclipse.emf.ecore.EObject;
+import org.eclipse.emf.ecore.EStructuralFeature;
+import org.eclipse.gef.commands.Command;
+import org.eclipse.gmf.runtime.diagram.core.util.ViewUtil;
+import org.eclipse.gmf.runtime.diagram.ui.commands.DeferredLayoutCommand;
+import org.eclipse.gmf.runtime.diagram.ui.commands.ICommandProxy;
+import org.eclipse.gmf.runtime.diagram.ui.commands.SetViewMutabilityCommand;
+import org.eclipse.gmf.runtime.diagram.ui.editpolicies.CanonicalEditPolicy;
+import org.eclipse.gmf.runtime.diagram.ui.requests.CreateViewRequest;
+import org.eclipse.gmf.runtime.emf.core.util.EObjectAdapter;
+import org.eclipse.gmf.runtime.notation.Node;
+import org.eclipse.gmf.runtime.notation.View;
+
+import comrel.ComrelPackage;
+import comrel.diagram.edit.parts.MultiInputPort9EditPart;
+import comrel.diagram.edit.parts.SingleInputPort8EditPart;
+import comrel.diagram.part.ComrelDiagramUpdater;
+import comrel.diagram.part.ComrelNodeDescriptor;
+import comrel.diagram.part.ComrelVisualIDRegistry;
+
+/**
+ * @generated
+ */
+public class ConditionalUnit4CanonicalEditPolicy extends CanonicalEditPolicy {
+
+ /**
+ * @generated
+ */
+ protected EStructuralFeature getFeatureToSynchronize() {
+ return ComrelPackage.eINSTANCE.getConditionalUnit_InputPorts();
+ }
+
+ /**
+ * @generated
+ */
+ @SuppressWarnings("rawtypes")
+ protected List getSemanticChildrenList() {
+ View viewObject = (View) getHost().getModel();
+ LinkedList<EObject> result = new LinkedList<EObject>();
+ List<ComrelNodeDescriptor> childDescriptors = ComrelDiagramUpdater
+ .getConditionalUnit_3066SemanticChildren(viewObject);
+ for (ComrelNodeDescriptor d : childDescriptors) {
+ result.add(d.getModelElement());
+ }
+ return result;
+ }
+
+ /**
+ * @generated
+ */
+ protected boolean isOrphaned(Collection<EObject> semanticChildren,
+ final View view) {
+ return isMyDiagramElement(view)
+ && !semanticChildren.contains(view.getElement());
+ }
+
+ /**
+ * @generated
+ */
+ private boolean isMyDiagramElement(View view) {
+ int visualID = ComrelVisualIDRegistry.getVisualID(view);
+ return visualID == SingleInputPort8EditPart.VISUAL_ID
+ || visualID == MultiInputPort9EditPart.VISUAL_ID;
+ }
+
+ /**
+ * @generated
+ */
+ protected void refreshSemantic() {
+ if (resolveSemanticElement() == null) {
+ return;
+ }
+ LinkedList<IAdaptable> createdViews = new LinkedList<IAdaptable>();
+ List<ComrelNodeDescriptor> childDescriptors = ComrelDiagramUpdater
+ .getConditionalUnit_3066SemanticChildren((View) getHost()
+ .getModel());
+ LinkedList<View> orphaned = new LinkedList<View>();
+ // we care to check only views we recognize as ours
+ LinkedList<View> knownViewChildren = new LinkedList<View>();
+ for (View v : getViewChildren()) {
+ if (isMyDiagramElement(v)) {
+ knownViewChildren.add(v);
+ }
+ }
+ // alternative to #cleanCanonicalSemanticChildren(getViewChildren(), semanticChildren)
+ //
+ // iteration happens over list of desired semantic elements, trying to find best matching View, while original CEP
+ // iterates views, potentially losing view (size/bounds) information - i.e. if there are few views to reference same EObject, only last one
+ // to answer isOrphaned == true will be used for the domain element representation, see #cleanCanonicalSemanticChildren()
+ for (Iterator<ComrelNodeDescriptor> descriptorsIterator = childDescriptors
+ .iterator(); descriptorsIterator.hasNext();) {
+ ComrelNodeDescriptor next = descriptorsIterator.next();
+ String hint = ComrelVisualIDRegistry.getType(next.getVisualID());
+ LinkedList<View> perfectMatch = new LinkedList<View>(); // both semanticElement and hint match that of NodeDescriptor
+ for (View childView : getViewChildren()) {
+ EObject semanticElement = childView.getElement();
+ if (next.getModelElement().equals(semanticElement)) {
+ if (hint.equals(childView.getType())) {
+ perfectMatch.add(childView);
+ // actually, can stop iteration over view children here, but
+ // may want to use not the first view but last one as a 'real' match (the way original CEP does
+ // with its trick with viewToSemanticMap inside #cleanCanonicalSemanticChildren
+ }
+ }
+ }
+ if (perfectMatch.size() > 0) {
+ descriptorsIterator.remove(); // precise match found no need to create anything for the NodeDescriptor
+ // use only one view (first or last?), keep rest as orphaned for further consideration
+ knownViewChildren.remove(perfectMatch.getFirst());
+ }
+ }
+ // those left in knownViewChildren are subject to removal - they are our diagram elements we didn't find match to,
+ // or those we have potential matches to, and thus need to be recreated, preserving size/location information.
+ orphaned.addAll(knownViewChildren);
+ //
+ ArrayList<CreateViewRequest.ViewDescriptor> viewDescriptors = new ArrayList<CreateViewRequest.ViewDescriptor>(
+ childDescriptors.size());
+ for (ComrelNodeDescriptor next : childDescriptors) {
+ String hint = ComrelVisualIDRegistry.getType(next.getVisualID());
+ IAdaptable elementAdapter = new CanonicalElementAdapter(
+ next.getModelElement(), hint);
+ CreateViewRequest.ViewDescriptor descriptor = new CreateViewRequest.ViewDescriptor(
+ elementAdapter, Node.class, hint, ViewUtil.APPEND, false,
+ host().getDiagramPreferencesHint());
+ viewDescriptors.add(descriptor);
+ }
+
+ boolean changed = deleteViews(orphaned.iterator());
+ //
+ CreateViewRequest request = getCreateViewRequest(viewDescriptors);
+ Command cmd = getCreateViewCommand(request);
+ if (cmd != null && cmd.canExecute()) {
+ SetViewMutabilityCommand.makeMutable(
+ new EObjectAdapter(host().getNotationView())).execute();
+ executeCommand(cmd);
+ @SuppressWarnings("unchecked")
+ List<IAdaptable> nl = (List<IAdaptable>) request.getNewObject();
+ createdViews.addAll(nl);
+ }
+ if (changed || createdViews.size() > 0) {
+ postProcessRefreshSemantic(createdViews);
+ }
+ if (createdViews.size() > 1) {
+ // perform a layout of the container
+ DeferredLayoutCommand layoutCmd = new DeferredLayoutCommand(host()
+ .getEditingDomain(), createdViews, host());
+ executeCommand(new ICommandProxy(layoutCmd));
+ }
+
+ makeViewsImmutable(createdViews);
+ }
+}
diff --git a/org.eclipse.emf.refactor.comrel.diagram/src/comrel/diagram/edit/policies/ConditionalUnit4ItemSemanticEditPolicy.java b/org.eclipse.emf.refactor.comrel.diagram/src/comrel/diagram/edit/policies/ConditionalUnit4ItemSemanticEditPolicy.java
new file mode 100644
index 0000000..c4e7730
--- /dev/null
+++ b/org.eclipse.emf.refactor.comrel.diagram/src/comrel/diagram/edit/policies/ConditionalUnit4ItemSemanticEditPolicy.java
@@ -0,0 +1,337 @@
+/*
+ *
+ */
+package comrel.diagram.edit.policies;
+
+import java.util.Iterator;
+
+import org.eclipse.emf.ecore.EAnnotation;
+import org.eclipse.gef.commands.Command;
+import org.eclipse.gmf.runtime.common.core.command.ICompositeCommand;
+import org.eclipse.gmf.runtime.diagram.core.commands.DeleteCommand;
+import org.eclipse.gmf.runtime.emf.commands.core.command.CompositeTransactionalCommand;
+import org.eclipse.gmf.runtime.emf.type.core.commands.DestroyElementCommand;
+import org.eclipse.gmf.runtime.emf.type.core.requests.CreateElementRequest;
+import org.eclipse.gmf.runtime.emf.type.core.requests.DestroyElementRequest;
+import org.eclipse.gmf.runtime.notation.Edge;
+import org.eclipse.gmf.runtime.notation.Node;
+import org.eclipse.gmf.runtime.notation.View;
+
+import comrel.diagram.edit.commands.MultiInputPort9CreateCommand;
+import comrel.diagram.edit.commands.SingleInputPort8CreateCommand;
+import comrel.diagram.edit.parts.AtomicUnit6EditPart;
+import comrel.diagram.edit.parts.AtomicUnit7EditPart;
+import comrel.diagram.edit.parts.CartesianQueuedUnit6EditPart;
+import comrel.diagram.edit.parts.CartesianQueuedUnit7EditPart;
+import comrel.diagram.edit.parts.ConditionCheckEditPart;
+import comrel.diagram.edit.parts.ConditionalUnit6EditPart;
+import comrel.diagram.edit.parts.ConditionalUnit7EditPart;
+import comrel.diagram.edit.parts.ConditionalUnitConditionalUnitElseCompartment3EditPart;
+import comrel.diagram.edit.parts.ConditionalUnitConditionalUnitHelperUnitsCompartment3EditPart;
+import comrel.diagram.edit.parts.ConditionalUnitConditionalUnitIfCompartment3EditPart;
+import comrel.diagram.edit.parts.ConditionalUnitConditionalUnitThenCompartment3EditPart;
+import comrel.diagram.edit.parts.MultiFeatureUnit3EditPart;
+import comrel.diagram.edit.parts.MultiFilterUnit3EditPart;
+import comrel.diagram.edit.parts.MultiInputPort9EditPart;
+import comrel.diagram.edit.parts.MultiPortMappingEditPart;
+import comrel.diagram.edit.parts.MultiSinglePortMappingEditPart;
+import comrel.diagram.edit.parts.ParallelQueuedUnit3EditPart;
+import comrel.diagram.edit.parts.ParallelQueuedUnit7EditPart;
+import comrel.diagram.edit.parts.SequentialUnit5EditPart;
+import comrel.diagram.edit.parts.SequentialUnit7EditPart;
+import comrel.diagram.edit.parts.SingleFeatureUnit3EditPart;
+import comrel.diagram.edit.parts.SingleFilterUnit3EditPart;
+import comrel.diagram.edit.parts.SingleInputPort8EditPart;
+import comrel.diagram.edit.parts.SinglePortMappingEditPart;
+import comrel.diagram.edit.parts.SingleQueuedUnit4EditPart;
+import comrel.diagram.edit.parts.SingleQueuedUnit7EditPart;
+import comrel.diagram.part.ComrelVisualIDRegistry;
+import comrel.diagram.providers.ComrelElementTypes;
+
+/**
+ * @generated
+ */
+public class ConditionalUnit4ItemSemanticEditPolicy extends
+ ComrelBaseItemSemanticEditPolicy {
+
+ /**
+ * @generated
+ */
+ public ConditionalUnit4ItemSemanticEditPolicy() {
+ super(ComrelElementTypes.ConditionalUnit_3066);
+ }
+
+ /**
+ * @generated
+ */
+ protected Command getCreateCommand(CreateElementRequest req) {
+ if (ComrelElementTypes.SingleInputPort_3031 == req.getElementType()) {
+ return getGEFWrapper(new SingleInputPort8CreateCommand(req));
+ }
+ if (ComrelElementTypes.MultiInputPort_3032 == req.getElementType()) {
+ return getGEFWrapper(new MultiInputPort9CreateCommand(req));
+ }
+ return super.getCreateCommand(req);
+ }
+
+ /**
+ * @generated
+ */
+ protected Command getDestroyElementCommand(DestroyElementRequest req) {
+ View view = (View) getHost().getModel();
+ CompositeTransactionalCommand cmd = new CompositeTransactionalCommand(
+ getEditingDomain(), null);
+ cmd.setTransactionNestingEnabled(false);
+ EAnnotation annotation = view.getEAnnotation("Shortcut"); //$NON-NLS-1$
+ if (annotation == null) {
+ // there are indirectly referenced children, need extra commands: false
+ addDestroyChildNodesCommand(cmd);
+ addDestroyShortcutsCommand(cmd, view);
+ // delete host element
+ cmd.add(new DestroyElementCommand(req));
+ } else {
+ cmd.add(new DeleteCommand(getEditingDomain(), view));
+ }
+ return getGEFWrapper(cmd.reduce());
+ }
+
+ /**
+ * @generated
+ */
+ private void addDestroyChildNodesCommand(ICompositeCommand cmd) {
+ View view = (View) getHost().getModel();
+ for (Iterator<?> nit = view.getChildren().iterator(); nit.hasNext();) {
+ Node node = (Node) nit.next();
+ switch (ComrelVisualIDRegistry.getVisualID(node)) {
+ case SingleInputPort8EditPart.VISUAL_ID:
+ for (Iterator<?> it = node.getTargetEdges().iterator(); it
+ .hasNext();) {
+ Edge incomingLink = (Edge) it.next();
+ if (ComrelVisualIDRegistry.getVisualID(incomingLink) == SinglePortMappingEditPart.VISUAL_ID) {
+ DestroyElementRequest r = new DestroyElementRequest(
+ incomingLink.getElement(), false);
+ cmd.add(new DestroyElementCommand(r));
+ cmd.add(new DeleteCommand(getEditingDomain(),
+ incomingLink));
+ continue;
+ }
+ if (ComrelVisualIDRegistry.getVisualID(incomingLink) == MultiSinglePortMappingEditPart.VISUAL_ID) {
+ DestroyElementRequest r = new DestroyElementRequest(
+ incomingLink.getElement(), false);
+ cmd.add(new DestroyElementCommand(r));
+ cmd.add(new DeleteCommand(getEditingDomain(),
+ incomingLink));
+ continue;
+ }
+ }
+ for (Iterator<?> it = node.getSourceEdges().iterator(); it
+ .hasNext();) {
+ Edge outgoingLink = (Edge) it.next();
+ if (ComrelVisualIDRegistry.getVisualID(outgoingLink) == SinglePortMappingEditPart.VISUAL_ID) {
+ DestroyElementRequest r = new DestroyElementRequest(
+ outgoingLink.getElement(), false);
+ cmd.add(new DestroyElementCommand(r));
+ cmd.add(new DeleteCommand(getEditingDomain(),
+ outgoingLink));
+ continue;
+ }
+ }
+ cmd.add(new DestroyElementCommand(new DestroyElementRequest(
+ getEditingDomain(), node.getElement(), false))); // directlyOwned: true
+ // don't need explicit deletion of node as parent's view deletion would clean child views as well
+ // cmd.add(new org.eclipse.gmf.runtime.diagram.core.commands.DeleteCommand(getEditingDomain(), node));
+ break;
+ case MultiInputPort9EditPart.VISUAL_ID:
+ for (Iterator<?> it = node.getTargetEdges().iterator(); it
+ .hasNext();) {
+ Edge incomingLink = (Edge) it.next();
+ if (ComrelVisualIDRegistry.getVisualID(incomingLink) == MultiPortMappingEditPart.VISUAL_ID) {
+ DestroyElementRequest r = new DestroyElementRequest(
+ incomingLink.getElement(), false);
+ cmd.add(new DestroyElementCommand(r));
+ cmd.add(new DeleteCommand(getEditingDomain(),
+ incomingLink));
+ continue;
+ }
+ }
+ for (Iterator<?> it = node.getSourceEdges().iterator(); it
+ .hasNext();) {
+ Edge outgoingLink = (Edge) it.next();
+ if (ComrelVisualIDRegistry.getVisualID(outgoingLink) == MultiPortMappingEditPart.VISUAL_ID) {
+ DestroyElementRequest r = new DestroyElementRequest(
+ outgoingLink.getElement(), false);
+ cmd.add(new DestroyElementCommand(r));
+ cmd.add(new DeleteCommand(getEditingDomain(),
+ outgoingLink));
+ continue;
+ }
+ if (ComrelVisualIDRegistry.getVisualID(outgoingLink) == MultiSinglePortMappingEditPart.VISUAL_ID) {
+ DestroyElementRequest r = new DestroyElementRequest(
+ outgoingLink.getElement(), false);
+ cmd.add(new DestroyElementCommand(r));
+ cmd.add(new DeleteCommand(getEditingDomain(),
+ outgoingLink));
+ continue;
+ }
+ }
+ cmd.add(new DestroyElementCommand(new DestroyElementRequest(
+ getEditingDomain(), node.getElement(), false))); // directlyOwned: true
+ // don't need explicit deletion of node as parent's view deletion would clean child views as well
+ // cmd.add(new org.eclipse.gmf.runtime.diagram.core.commands.DeleteCommand(getEditingDomain(), node));
+ break;
+ case ConditionalUnitConditionalUnitIfCompartment3EditPart.VISUAL_ID:
+ for (Iterator<?> cit = node.getChildren().iterator(); cit
+ .hasNext();) {
+ Node cnode = (Node) cit.next();
+ switch (ComrelVisualIDRegistry.getVisualID(cnode)) {
+ case ConditionCheckEditPart.VISUAL_ID:
+ cmd.add(new DestroyElementCommand(
+ new DestroyElementRequest(getEditingDomain(),
+ cnode.getElement(), false))); // directlyOwned: true
+ // don't need explicit deletion of cnode as parent's view deletion would clean child views as well
+ // cmd.add(new org.eclipse.gmf.runtime.diagram.core.commands.DeleteCommand(getEditingDomain(), cnode));
+ break;
+ }
+ }
+ break;
+ case ConditionalUnitConditionalUnitHelperUnitsCompartment3EditPart.VISUAL_ID:
+ for (Iterator<?> cit = node.getChildren().iterator(); cit
+ .hasNext();) {
+ Node cnode = (Node) cit.next();
+ switch (ComrelVisualIDRegistry.getVisualID(cnode)) {
+ case SingleFeatureUnit3EditPart.VISUAL_ID:
+ cmd.add(new DestroyElementCommand(
+ new DestroyElementRequest(getEditingDomain(),
+ cnode.getElement(), false))); // directlyOwned: true
+ // don't need explicit deletion of cnode as parent's view deletion would clean child views as well
+ // cmd.add(new org.eclipse.gmf.runtime.diagram.core.commands.DeleteCommand(getEditingDomain(), cnode));
+ break;
+ case MultiFeatureUnit3EditPart.VISUAL_ID:
+ cmd.add(new DestroyElementCommand(
+ new DestroyElementRequest(getEditingDomain(),
+ cnode.getElement(), false))); // directlyOwned: true
+ // don't need explicit deletion of cnode as parent's view deletion would clean child views as well
+ // cmd.add(new org.eclipse.gmf.runtime.diagram.core.commands.DeleteCommand(getEditingDomain(), cnode));
+ break;
+ case SingleFilterUnit3EditPart.VISUAL_ID:
+ cmd.add(new DestroyElementCommand(
+ new DestroyElementRequest(getEditingDomain(),
+ cnode.getElement(), false))); // directlyOwned: true
+ // don't need explicit deletion of cnode as parent's view deletion would clean child views as well
+ // cmd.add(new org.eclipse.gmf.runtime.diagram.core.commands.DeleteCommand(getEditingDomain(), cnode));
+ break;
+ case MultiFilterUnit3EditPart.VISUAL_ID:
+ cmd.add(new DestroyElementCommand(
+ new DestroyElementRequest(getEditingDomain(),
+ cnode.getElement(), false))); // directlyOwned: true
+ // don't need explicit deletion of cnode as parent's view deletion would clean child views as well
+ // cmd.add(new org.eclipse.gmf.runtime.diagram.core.commands.DeleteCommand(getEditingDomain(), cnode));
+ break;
+ }
+ }
+ break;
+ case ConditionalUnitConditionalUnitThenCompartment3EditPart.VISUAL_ID:
+ for (Iterator<?> cit = node.getChildren().iterator(); cit
+ .hasNext();) {
+ Node cnode = (Node) cit.next();
+ switch (ComrelVisualIDRegistry.getVisualID(cnode)) {
+ case CartesianQueuedUnit6EditPart.VISUAL_ID:
+ cmd.add(new DestroyElementCommand(
+ new DestroyElementRequest(getEditingDomain(),
+ cnode.getElement(), false))); // directlyOwned: true
+ // don't need explicit deletion of cnode as parent's view deletion would clean child views as well
+ // cmd.add(new org.eclipse.gmf.runtime.diagram.core.commands.DeleteCommand(getEditingDomain(), cnode));
+ break;
+ case ParallelQueuedUnit3EditPart.VISUAL_ID:
+ cmd.add(new DestroyElementCommand(
+ new DestroyElementRequest(getEditingDomain(),
+ cnode.getElement(), false))); // directlyOwned: true
+ // don't need explicit deletion of cnode as parent's view deletion would clean child views as well
+ // cmd.add(new org.eclipse.gmf.runtime.diagram.core.commands.DeleteCommand(getEditingDomain(), cnode));
+ break;
+ case SingleQueuedUnit4EditPart.VISUAL_ID:
+ cmd.add(new DestroyElementCommand(
+ new DestroyElementRequest(getEditingDomain(),
+ cnode.getElement(), false))); // directlyOwned: true
+ // don't need explicit deletion of cnode as parent's view deletion would clean child views as well
+ // cmd.add(new org.eclipse.gmf.runtime.diagram.core.commands.DeleteCommand(getEditingDomain(), cnode));
+ break;
+ case SequentialUnit5EditPart.VISUAL_ID:
+ cmd.add(new DestroyElementCommand(
+ new DestroyElementRequest(getEditingDomain(),
+ cnode.getElement(), false))); // directlyOwned: true
+ // don't need explicit deletion of cnode as parent's view deletion would clean child views as well
+ // cmd.add(new org.eclipse.gmf.runtime.diagram.core.commands.DeleteCommand(getEditingDomain(), cnode));
+ break;
+ case ConditionalUnit6EditPart.VISUAL_ID:
+ cmd.add(new DestroyElementCommand(
+ new DestroyElementRequest(getEditingDomain(),
+ cnode.getElement(), false))); // directlyOwned: true
+ // don't need explicit deletion of cnode as parent's view deletion would clean child views as well
+ // cmd.add(new org.eclipse.gmf.runtime.diagram.core.commands.DeleteCommand(getEditingDomain(), cnode));
+ break;
+ case AtomicUnit6EditPart.VISUAL_ID:
+ cmd.add(new DestroyElementCommand(
+ new DestroyElementRequest(getEditingDomain(),
+ cnode.getElement(), false))); // directlyOwned: true
+ // don't need explicit deletion of cnode as parent's view deletion would clean child views as well
+ // cmd.add(new org.eclipse.gmf.runtime.diagram.core.commands.DeleteCommand(getEditingDomain(), cnode));
+ break;
+ }
+ }
+ break;
+ case ConditionalUnitConditionalUnitElseCompartment3EditPart.VISUAL_ID:
+ for (Iterator<?> cit = node.getChildren().iterator(); cit
+ .hasNext();) {
+ Node cnode = (Node) cit.next();
+ switch (ComrelVisualIDRegistry.getVisualID(cnode)) {
+ case CartesianQueuedUnit7EditPart.VISUAL_ID:
+ cmd.add(new DestroyElementCommand(
+ new DestroyElementRequest(getEditingDomain(),
+ cnode.getElement(), false))); // directlyOwned: true
+ // don't need explicit deletion of cnode as parent's view deletion would clean child views as well
+ // cmd.add(new org.eclipse.gmf.runtime.diagram.core.commands.DeleteCommand(getEditingDomain(), cnode));
+ break;
+ case ParallelQueuedUnit7EditPart.VISUAL_ID:
+ cmd.add(new DestroyElementCommand(
+ new DestroyElementRequest(getEditingDomain(),
+ cnode.getElement(), false))); // directlyOwned: true
+ // don't need explicit deletion of cnode as parent's view deletion would clean child views as well
+ // cmd.add(new org.eclipse.gmf.runtime.diagram.core.commands.DeleteCommand(getEditingDomain(), cnode));
+ break;
+ case SingleQueuedUnit7EditPart.VISUAL_ID:
+ cmd.add(new DestroyElementCommand(
+ new DestroyElementRequest(getEditingDomain(),
+ cnode.getElement(), false))); // directlyOwned: true
+ // don't need explicit deletion of cnode as parent's view deletion would clean child views as well
+ // cmd.add(new org.eclipse.gmf.runtime.diagram.core.commands.DeleteCommand(getEditingDomain(), cnode));
+ break;
+ case SequentialUnit7EditPart.VISUAL_ID:
+ cmd.add(new DestroyElementCommand(
+ new DestroyElementRequest(getEditingDomain(),
+ cnode.getElement(), false))); // directlyOwned: true
+ // don't need explicit deletion of cnode as parent's view deletion would clean child views as well
+ // cmd.add(new org.eclipse.gmf.runtime.diagram.core.commands.DeleteCommand(getEditingDomain(), cnode));
+ break;
+ case ConditionalUnit7EditPart.VISUAL_ID:
+ cmd.add(new DestroyElementCommand(
+ new DestroyElementRequest(getEditingDomain(),
+ cnode.getElement(), false))); // directlyOwned: true
+ // don't need explicit deletion of cnode as parent's view deletion would clean child views as well
+ // cmd.add(new org.eclipse.gmf.runtime.diagram.core.commands.DeleteCommand(getEditingDomain(), cnode));
+ break;
+ case AtomicUnit7EditPart.VISUAL_ID:
+ cmd.add(new DestroyElementCommand(
+ new DestroyElementRequest(getEditingDomain(),
+ cnode.getElement(), false))); // directlyOwned: true
+ // don't need explicit deletion of cnode as parent's view deletion would clean child views as well
+ // cmd.add(new org.eclipse.gmf.runtime.diagram.core.commands.DeleteCommand(getEditingDomain(), cnode));
+ break;
+ }
+ }
+ break;
+ }
+ }
+ }
+
+}
diff --git a/org.eclipse.emf.refactor.comrel.diagram/src/comrel/diagram/edit/policies/ConditionalUnit5CanonicalEditPolicy.java b/org.eclipse.emf.refactor.comrel.diagram/src/comrel/diagram/edit/policies/ConditionalUnit5CanonicalEditPolicy.java
new file mode 100644
index 0000000..0d09f7a
--- /dev/null
+++ b/org.eclipse.emf.refactor.comrel.diagram/src/comrel/diagram/edit/policies/ConditionalUnit5CanonicalEditPolicy.java
@@ -0,0 +1,164 @@
+/*
+ *
+ */
+package comrel.diagram.edit.policies;
+
+import java.util.ArrayList;
+import java.util.Collection;
+import java.util.Iterator;
+import java.util.LinkedList;
+import java.util.List;
+
+import org.eclipse.core.runtime.IAdaptable;
+import org.eclipse.emf.ecore.EObject;
+import org.eclipse.emf.ecore.EStructuralFeature;
+import org.eclipse.gef.commands.Command;
+import org.eclipse.gmf.runtime.diagram.core.util.ViewUtil;
+import org.eclipse.gmf.runtime.diagram.ui.commands.DeferredLayoutCommand;
+import org.eclipse.gmf.runtime.diagram.ui.commands.ICommandProxy;
+import org.eclipse.gmf.runtime.diagram.ui.commands.SetViewMutabilityCommand;
+import org.eclipse.gmf.runtime.diagram.ui.editpolicies.CanonicalEditPolicy;
+import org.eclipse.gmf.runtime.diagram.ui.requests.CreateViewRequest;
+import org.eclipse.gmf.runtime.emf.core.util.EObjectAdapter;
+import org.eclipse.gmf.runtime.notation.Node;
+import org.eclipse.gmf.runtime.notation.View;
+
+import comrel.ComrelPackage;
+import comrel.diagram.edit.parts.MultiInputPort9EditPart;
+import comrel.diagram.edit.parts.SingleInputPort8EditPart;
+import comrel.diagram.part.ComrelDiagramUpdater;
+import comrel.diagram.part.ComrelNodeDescriptor;
+import comrel.diagram.part.ComrelVisualIDRegistry;
+
+/**
+ * @generated
+ */
+public class ConditionalUnit5CanonicalEditPolicy extends CanonicalEditPolicy {
+
+ /**
+ * @generated
+ */
+ protected EStructuralFeature getFeatureToSynchronize() {
+ return ComrelPackage.eINSTANCE.getConditionalUnit_InputPorts();
+ }
+
+ /**
+ * @generated
+ */
+ @SuppressWarnings("rawtypes")
+ protected List getSemanticChildrenList() {
+ View viewObject = (View) getHost().getModel();
+ LinkedList<EObject> result = new LinkedList<EObject>();
+ List<ComrelNodeDescriptor> childDescriptors = ComrelDiagramUpdater
+ .getConditionalUnit_3071SemanticChildren(viewObject);
+ for (ComrelNodeDescriptor d : childDescriptors) {
+ result.add(d.getModelElement());
+ }
+ return result;
+ }
+
+ /**
+ * @generated
+ */
+ protected boolean isOrphaned(Collection<EObject> semanticChildren,
+ final View view) {
+ return isMyDiagramElement(view)
+ && !semanticChildren.contains(view.getElement());
+ }
+
+ /**
+ * @generated
+ */
+ private boolean isMyDiagramElement(View view) {
+ int visualID = ComrelVisualIDRegistry.getVisualID(view);
+ return visualID == SingleInputPort8EditPart.VISUAL_ID
+ || visualID == MultiInputPort9EditPart.VISUAL_ID;
+ }
+
+ /**
+ * @generated
+ */
+ protected void refreshSemantic() {
+ if (resolveSemanticElement() == null) {
+ return;
+ }
+ LinkedList<IAdaptable> createdViews = new LinkedList<IAdaptable>();
+ List<ComrelNodeDescriptor> childDescriptors = ComrelDiagramUpdater
+ .getConditionalUnit_3071SemanticChildren((View) getHost()
+ .getModel());
+ LinkedList<View> orphaned = new LinkedList<View>();
+ // we care to check only views we recognize as ours
+ LinkedList<View> knownViewChildren = new LinkedList<View>();
+ for (View v : getViewChildren()) {
+ if (isMyDiagramElement(v)) {
+ knownViewChildren.add(v);
+ }
+ }
+ // alternative to #cleanCanonicalSemanticChildren(getViewChildren(), semanticChildren)
+ //
+ // iteration happens over list of desired semantic elements, trying to find best matching View, while original CEP
+ // iterates views, potentially losing view (size/bounds) information - i.e. if there are few views to reference same EObject, only last one
+ // to answer isOrphaned == true will be used for the domain element representation, see #cleanCanonicalSemanticChildren()
+ for (Iterator<ComrelNodeDescriptor> descriptorsIterator = childDescriptors
+ .iterator(); descriptorsIterator.hasNext();) {
+ ComrelNodeDescriptor next = descriptorsIterator.next();
+ String hint = ComrelVisualIDRegistry.getType(next.getVisualID());
+ LinkedList<View> perfectMatch = new LinkedList<View>(); // both semanticElement and hint match that of NodeDescriptor
+ for (View childView : getViewChildren()) {
+ EObject semanticElement = childView.getElement();
+ if (next.getModelElement().equals(semanticElement)) {
+ if (hint.equals(childView.getType())) {
+ perfectMatch.add(childView);
+ // actually, can stop iteration over view children here, but
+ // may want to use not the first view but last one as a 'real' match (the way original CEP does
+ // with its trick with viewToSemanticMap inside #cleanCanonicalSemanticChildren
+ }
+ }
+ }
+ if (perfectMatch.size() > 0) {
+ descriptorsIterator.remove(); // precise match found no need to create anything for the NodeDescriptor
+ // use only one view (first or last?), keep rest as orphaned for further consideration
+ knownViewChildren.remove(perfectMatch.getFirst());
+ }
+ }
+ // those left in knownViewChildren are subject to removal - they are our diagram elements we didn't find match to,
+ // or those we have potential matches to, and thus need to be recreated, preserving size/location information.
+ orphaned.addAll(knownViewChildren);
+ //
+ ArrayList<CreateViewRequest.ViewDescriptor> viewDescriptors = new ArrayList<CreateViewRequest.ViewDescriptor>(
+ childDescriptors.size());
+ for (ComrelNodeDescriptor next : childDescriptors) {
+ String hint = ComrelVisualIDRegistry.getType(next.getVisualID());
+ IAdaptable elementAdapter = new CanonicalElementAdapter(
+ next.getModelElement(), hint);
+ CreateViewRequest.ViewDescriptor descriptor = new CreateViewRequest.ViewDescriptor(
+ elementAdapter, Node.class, hint, ViewUtil.APPEND, false,
+ host().getDiagramPreferencesHint());
+ viewDescriptors.add(descriptor);
+ }
+
+ boolean changed = deleteViews(orphaned.iterator());
+ //
+ CreateViewRequest request = getCreateViewRequest(viewDescriptors);
+ Command cmd = getCreateViewCommand(request);
+ if (cmd != null && cmd.canExecute()) {
+ SetViewMutabilityCommand.makeMutable(
+ new EObjectAdapter(host().getNotationView())).execute();
+ executeCommand(cmd);
+ @SuppressWarnings("unchecked")
+ List<IAdaptable> nl = (List<IAdaptable>) request.getNewObject();
+ createdViews.addAll(nl);
+ }
+ if (changed || createdViews.size() > 0) {
+ postProcessRefreshSemantic(createdViews);
+ }
+ if (createdViews.size() > 1) {
+ // perform a layout of the container
+ DeferredLayoutCommand layoutCmd = new DeferredLayoutCommand(host()
+ .getEditingDomain(), createdViews, host());
+ executeCommand(new ICommandProxy(layoutCmd));
+ }
+
+ makeViewsImmutable(createdViews);
+ }
+}
diff --git a/org.eclipse.emf.refactor.comrel.diagram/src/comrel/diagram/edit/policies/ConditionalUnit5ItemSemanticEditPolicy.java b/org.eclipse.emf.refactor.comrel.diagram/src/comrel/diagram/edit/policies/ConditionalUnit5ItemSemanticEditPolicy.java
new file mode 100644
index 0000000..a50d73f
--- /dev/null
+++ b/org.eclipse.emf.refactor.comrel.diagram/src/comrel/diagram/edit/policies/ConditionalUnit5ItemSemanticEditPolicy.java
@@ -0,0 +1,337 @@
+/*
+ *
+ */
+package comrel.diagram.edit.policies;
+
+import java.util.Iterator;
+
+import org.eclipse.emf.ecore.EAnnotation;
+import org.eclipse.gef.commands.Command;
+import org.eclipse.gmf.runtime.common.core.command.ICompositeCommand;
+import org.eclipse.gmf.runtime.diagram.core.commands.DeleteCommand;
+import org.eclipse.gmf.runtime.emf.commands.core.command.CompositeTransactionalCommand;
+import org.eclipse.gmf.runtime.emf.type.core.commands.DestroyElementCommand;
+import org.eclipse.gmf.runtime.emf.type.core.requests.CreateElementRequest;
+import org.eclipse.gmf.runtime.emf.type.core.requests.DestroyElementRequest;
+import org.eclipse.gmf.runtime.notation.Edge;
+import org.eclipse.gmf.runtime.notation.Node;
+import org.eclipse.gmf.runtime.notation.View;
+
+import comrel.diagram.edit.commands.MultiInputPort9CreateCommand;
+import comrel.diagram.edit.commands.SingleInputPort8CreateCommand;
+import comrel.diagram.edit.parts.AtomicUnit6EditPart;
+import comrel.diagram.edit.parts.AtomicUnit7EditPart;
+import comrel.diagram.edit.parts.CartesianQueuedUnit6EditPart;
+import comrel.diagram.edit.parts.CartesianQueuedUnit7EditPart;
+import comrel.diagram.edit.parts.ConditionCheckEditPart;
+import comrel.diagram.edit.parts.ConditionalUnit6EditPart;
+import comrel.diagram.edit.parts.ConditionalUnit7EditPart;
+import comrel.diagram.edit.parts.ConditionalUnitConditionalUnitElseCompartment4EditPart;
+import comrel.diagram.edit.parts.ConditionalUnitConditionalUnitHelperUnitsCompartment4EditPart;
+import comrel.diagram.edit.parts.ConditionalUnitConditionalUnitIfCompartment4EditPart;
+import comrel.diagram.edit.parts.ConditionalUnitConditionalUnitThenCompartment4EditPart;
+import comrel.diagram.edit.parts.MultiFeatureUnit3EditPart;
+import comrel.diagram.edit.parts.MultiFilterUnit3EditPart;
+import comrel.diagram.edit.parts.MultiInputPort9EditPart;
+import comrel.diagram.edit.parts.MultiPortMappingEditPart;
+import comrel.diagram.edit.parts.MultiSinglePortMappingEditPart;
+import comrel.diagram.edit.parts.ParallelQueuedUnit3EditPart;
+import comrel.diagram.edit.parts.ParallelQueuedUnit7EditPart;
+import comrel.diagram.edit.parts.SequentialUnit5EditPart;
+import comrel.diagram.edit.parts.SequentialUnit7EditPart;
+import comrel.diagram.edit.parts.SingleFeatureUnit3EditPart;
+import comrel.diagram.edit.parts.SingleFilterUnit3EditPart;
+import comrel.diagram.edit.parts.SingleInputPort8EditPart;
+import comrel.diagram.edit.parts.SinglePortMappingEditPart;
+import comrel.diagram.edit.parts.SingleQueuedUnit4EditPart;
+import comrel.diagram.edit.parts.SingleQueuedUnit7EditPart;
+import comrel.diagram.part.ComrelVisualIDRegistry;
+import comrel.diagram.providers.ComrelElementTypes;
+
+/**
+ * @generated
+ */
+public class ConditionalUnit5ItemSemanticEditPolicy extends
+ ComrelBaseItemSemanticEditPolicy {
+
+ /**
+ * @generated
+ */
+ public ConditionalUnit5ItemSemanticEditPolicy() {
+ super(ComrelElementTypes.ConditionalUnit_3071);
+ }
+
+ /**
+ * @generated
+ */
+ protected Command getCreateCommand(CreateElementRequest req) {
+ if (ComrelElementTypes.SingleInputPort_3031 == req.getElementType()) {
+ return getGEFWrapper(new SingleInputPort8CreateCommand(req));
+ }
+ if (ComrelElementTypes.MultiInputPort_3032 == req.getElementType()) {
+ return getGEFWrapper(new MultiInputPort9CreateCommand(req));
+ }
+ return super.getCreateCommand(req);
+ }
+
+ /**
+ * @generated
+ */
+ protected Command getDestroyElementCommand(DestroyElementRequest req) {
+ View view = (View) getHost().getModel();
+ CompositeTransactionalCommand cmd = new CompositeTransactionalCommand(
+ getEditingDomain(), null);
+ cmd.setTransactionNestingEnabled(false);
+ EAnnotation annotation = view.getEAnnotation("Shortcut"); //$NON-NLS-1$
+ if (annotation == null) {
+ // there are indirectly referenced children, need extra commands: false
+ addDestroyChildNodesCommand(cmd);
+ addDestroyShortcutsCommand(cmd, view);
+ // delete host element
+ cmd.add(new DestroyElementCommand(req));
+ } else {
+ cmd.add(new DeleteCommand(getEditingDomain(), view));
+ }
+ return getGEFWrapper(cmd.reduce());
+ }
+
+ /**
+ * @generated
+ */
+ private void addDestroyChildNodesCommand(ICompositeCommand cmd) {
+ View view = (View) getHost().getModel();
+ for (Iterator<?> nit = view.getChildren().iterator(); nit.hasNext();) {
+ Node node = (Node) nit.next();
+ switch (ComrelVisualIDRegistry.getVisualID(node)) {
+ case SingleInputPort8EditPart.VISUAL_ID:
+ for (Iterator<?> it = node.getTargetEdges().iterator(); it
+ .hasNext();) {
+ Edge incomingLink = (Edge) it.next();
+ if (ComrelVisualIDRegistry.getVisualID(incomingLink) == SinglePortMappingEditPart.VISUAL_ID) {
+ DestroyElementRequest r = new DestroyElementRequest(
+ incomingLink.getElement(), false);
+ cmd.add(new DestroyElementCommand(r));
+ cmd.add(new DeleteCommand(getEditingDomain(),
+ incomingLink));
+ continue;
+ }
+ if (ComrelVisualIDRegistry.getVisualID(incomingLink) == MultiSinglePortMappingEditPart.VISUAL_ID) {
+ DestroyElementRequest r = new DestroyElementRequest(
+ incomingLink.getElement(), false);
+ cmd.add(new DestroyElementCommand(r));
+ cmd.add(new DeleteCommand(getEditingDomain(),
+ incomingLink));
+ continue;
+ }
+ }
+ for (Iterator<?> it = node.getSourceEdges().iterator(); it
+ .hasNext();) {
+ Edge outgoingLink = (Edge) it.next();
+ if (ComrelVisualIDRegistry.getVisualID(outgoingLink) == SinglePortMappingEditPart.VISUAL_ID) {
+ DestroyElementRequest r = new DestroyElementRequest(
+ outgoingLink.getElement(), false);
+ cmd.add(new DestroyElementCommand(r));
+ cmd.add(new DeleteCommand(getEditingDomain(),
+ outgoingLink));
+ continue;
+ }
+ }
+ cmd.add(new DestroyElementCommand(new DestroyElementRequest(
+ getEditingDomain(), node.getElement(), false))); // directlyOwned: true
+ // don't need explicit deletion of node as parent's view deletion would clean child views as well
+ // cmd.add(new org.eclipse.gmf.runtime.diagram.core.commands.DeleteCommand(getEditingDomain(), node));
+ break;
+ case MultiInputPort9EditPart.VISUAL_ID:
+ for (Iterator<?> it = node.getTargetEdges().iterator(); it
+ .hasNext();) {
+ Edge incomingLink = (Edge) it.next();
+ if (ComrelVisualIDRegistry.getVisualID(incomingLink) == MultiPortMappingEditPart.VISUAL_ID) {
+ DestroyElementRequest r = new DestroyElementRequest(
+ incomingLink.getElement(), false);
+ cmd.add(new DestroyElementCommand(r));
+ cmd.add(new DeleteCommand(getEditingDomain(),
+ incomingLink));
+ continue;
+ }
+ }
+ for (Iterator<?> it = node.getSourceEdges().iterator(); it
+ .hasNext();) {
+ Edge outgoingLink = (Edge) it.next();
+ if (ComrelVisualIDRegistry.getVisualID(outgoingLink) == MultiPortMappingEditPart.VISUAL_ID) {
+ DestroyElementRequest r = new DestroyElementRequest(
+ outgoingLink.getElement(), false);
+ cmd.add(new DestroyElementCommand(r));
+ cmd.add(new DeleteCommand(getEditingDomain(),
+ outgoingLink));
+ continue;
+ }
+ if (ComrelVisualIDRegistry.getVisualID(outgoingLink) == MultiSinglePortMappingEditPart.VISUAL_ID) {
+ DestroyElementRequest r = new DestroyElementRequest(
+ outgoingLink.getElement(), false);
+ cmd.add(new DestroyElementCommand(r));
+ cmd.add(new DeleteCommand(getEditingDomain(),
+ outgoingLink));
+ continue;
+ }
+ }
+ cmd.add(new DestroyElementCommand(new DestroyElementRequest(
+ getEditingDomain(), node.getElement(), false))); // directlyOwned: true
+ // don't need explicit deletion of node as parent's view deletion would clean child views as well
+ // cmd.add(new org.eclipse.gmf.runtime.diagram.core.commands.DeleteCommand(getEditingDomain(), node));
+ break;
+ case ConditionalUnitConditionalUnitIfCompartment4EditPart.VISUAL_ID:
+ for (Iterator<?> cit = node.getChildren().iterator(); cit
+ .hasNext();) {
+ Node cnode = (Node) cit.next();
+ switch (ComrelVisualIDRegistry.getVisualID(cnode)) {
+ case ConditionCheckEditPart.VISUAL_ID:
+ cmd.add(new DestroyElementCommand(
+ new DestroyElementRequest(getEditingDomain(),
+ cnode.getElement(), false))); // directlyOwned: true
+ // don't need explicit deletion of cnode as parent's view deletion would clean child views as well
+ // cmd.add(new org.eclipse.gmf.runtime.diagram.core.commands.DeleteCommand(getEditingDomain(), cnode));
+ break;
+ }
+ }
+ break;
+ case ConditionalUnitConditionalUnitHelperUnitsCompartment4EditPart.VISUAL_ID:
+ for (Iterator<?> cit = node.getChildren().iterator(); cit
+ .hasNext();) {
+ Node cnode = (Node) cit.next();
+ switch (ComrelVisualIDRegistry.getVisualID(cnode)) {
+ case SingleFeatureUnit3EditPart.VISUAL_ID:
+ cmd.add(new DestroyElementCommand(
+ new DestroyElementRequest(getEditingDomain(),
+ cnode.getElement(), false))); // directlyOwned: true
+ // don't need explicit deletion of cnode as parent's view deletion would clean child views as well
+ // cmd.add(new org.eclipse.gmf.runtime.diagram.core.commands.DeleteCommand(getEditingDomain(), cnode));
+ break;
+ case MultiFeatureUnit3EditPart.VISUAL_ID:
+ cmd.add(new DestroyElementCommand(
+ new DestroyElementRequest(getEditingDomain(),
+ cnode.getElement(), false))); // directlyOwned: true
+ // don't need explicit deletion of cnode as parent's view deletion would clean child views as well
+ // cmd.add(new org.eclipse.gmf.runtime.diagram.core.commands.DeleteCommand(getEditingDomain(), cnode));
+ break;
+ case SingleFilterUnit3EditPart.VISUAL_ID:
+ cmd.add(new DestroyElementCommand(
+ new DestroyElementRequest(getEditingDomain(),
+ cnode.getElement(), false))); // directlyOwned: true
+ // don't need explicit deletion of cnode as parent's view deletion would clean child views as well
+ // cmd.add(new org.eclipse.gmf.runtime.diagram.core.commands.DeleteCommand(getEditingDomain(), cnode));
+ break;
+ case MultiFilterUnit3EditPart.VISUAL_ID:
+ cmd.add(new DestroyElementCommand(
+ new DestroyElementRequest(getEditingDomain(),
+ cnode.getElement(), false))); // directlyOwned: true
+ // don't need explicit deletion of cnode as parent's view deletion would clean child views as well
+ // cmd.add(new org.eclipse.gmf.runtime.diagram.core.commands.DeleteCommand(getEditingDomain(), cnode));
+ break;
+ }
+ }
+ break;
+ case ConditionalUnitConditionalUnitThenCompartment4EditPart.VISUAL_ID:
+ for (Iterator<?> cit = node.getChildren().iterator(); cit
+ .hasNext();) {
+ Node cnode = (Node) cit.next();
+ switch (ComrelVisualIDRegistry.getVisualID(cnode)) {
+ case CartesianQueuedUnit6EditPart.VISUAL_ID:
+ cmd.add(new DestroyElementCommand(
+ new DestroyElementRequest(getEditingDomain(),
+ cnode.getElement(), false))); // directlyOwned: true
+ // don't need explicit deletion of cnode as parent's view deletion would clean child views as well
+ // cmd.add(new org.eclipse.gmf.runtime.diagram.core.commands.DeleteCommand(getEditingDomain(), cnode));
+ break;
+ case ParallelQueuedUnit3EditPart.VISUAL_ID:
+ cmd.add(new DestroyElementCommand(
+ new DestroyElementRequest(getEditingDomain(),
+ cnode.getElement(), false))); // directlyOwned: true
+ // don't need explicit deletion of cnode as parent's view deletion would clean child views as well
+ // cmd.add(new org.eclipse.gmf.runtime.diagram.core.commands.DeleteCommand(getEditingDomain(), cnode));
+ break;
+ case SingleQueuedUnit4EditPart.VISUAL_ID:
+ cmd.add(new DestroyElementCommand(
+ new DestroyElementRequest(getEditingDomain(),
+ cnode.getElement(), false))); // directlyOwned: true
+ // don't need explicit deletion of cnode as parent's view deletion would clean child views as well
+ // cmd.add(new org.eclipse.gmf.runtime.diagram.core.commands.DeleteCommand(getEditingDomain(), cnode));
+ break;
+ case SequentialUnit5EditPart.VISUAL_ID:
+ cmd.add(new DestroyElementCommand(
+ new DestroyElementRequest(getEditingDomain(),
+ cnode.getElement(), false))); // directlyOwned: true
+ // don't need explicit deletion of cnode as parent's view deletion would clean child views as well
+ // cmd.add(new org.eclipse.gmf.runtime.diagram.core.commands.DeleteCommand(getEditingDomain(), cnode));
+ break;
+ case ConditionalUnit6EditPart.VISUAL_ID:
+ cmd.add(new DestroyElementCommand(
+ new DestroyElementRequest(getEditingDomain(),
+ cnode.getElement(), false))); // directlyOwned: true
+ // don't need explicit deletion of cnode as parent's view deletion would clean child views as well
+ // cmd.add(new org.eclipse.gmf.runtime.diagram.core.commands.DeleteCommand(getEditingDomain(), cnode));
+ break;
+ case AtomicUnit6EditPart.VISUAL_ID:
+ cmd.add(new DestroyElementCommand(
+ new DestroyElementRequest(getEditingDomain(),
+ cnode.getElement(), false))); // directlyOwned: true
+ // don't need explicit deletion of cnode as parent's view deletion would clean child views as well
+ // cmd.add(new org.eclipse.gmf.runtime.diagram.core.commands.DeleteCommand(getEditingDomain(), cnode));
+ break;
+ }
+ }
+ break;
+ case ConditionalUnitConditionalUnitElseCompartment4EditPart.VISUAL_ID:
+ for (Iterator<?> cit = node.getChildren().iterator(); cit
+ .hasNext();) {
+ Node cnode = (Node) cit.next();
+ switch (ComrelVisualIDRegistry.getVisualID(cnode)) {
+ case CartesianQueuedUnit7EditPart.VISUAL_ID:
+ cmd.add(new DestroyElementCommand(
+ new DestroyElementRequest(getEditingDomain(),
+ cnode.getElement(), false))); // directlyOwned: true
+ // don't need explicit deletion of cnode as parent's view deletion would clean child views as well
+ // cmd.add(new org.eclipse.gmf.runtime.diagram.core.commands.DeleteCommand(getEditingDomain(), cnode));
+ break;
+ case ParallelQueuedUnit7EditPart.VISUAL_ID:
+ cmd.add(new DestroyElementCommand(
+ new DestroyElementRequest(getEditingDomain(),
+ cnode.getElement(), false))); // directlyOwned: true
+ // don't need explicit deletion of cnode as parent's view deletion would clean child views as well
+ // cmd.add(new org.eclipse.gmf.runtime.diagram.core.commands.DeleteCommand(getEditingDomain(), cnode));
+ break;
+ case SingleQueuedUnit7EditPart.VISUAL_ID:
+ cmd.add(new DestroyElementCommand(
+ new DestroyElementRequest(getEditingDomain(),
+ cnode.getElement(), false))); // directlyOwned: true
+ // don't need explicit deletion of cnode as parent's view deletion would clean child views as well
+ // cmd.add(new org.eclipse.gmf.runtime.diagram.core.commands.DeleteCommand(getEditingDomain(), cnode));
+ break;
+ case SequentialUnit7EditPart.VISUAL_ID:
+ cmd.add(new DestroyElementCommand(
+ new DestroyElementRequest(getEditingDomain(),
+ cnode.getElement(), false))); // directlyOwned: true
+ // don't need explicit deletion of cnode as parent's view deletion would clean child views as well
+ // cmd.add(new org.eclipse.gmf.runtime.diagram.core.commands.DeleteCommand(getEditingDomain(), cnode));
+ break;
+ case ConditionalUnit7EditPart.VISUAL_ID:
+ cmd.add(new DestroyElementCommand(
+ new DestroyElementRequest(getEditingDomain(),
+ cnode.getElement(), false))); // directlyOwned: true
+ // don't need explicit deletion of cnode as parent's view deletion would clean child views as well
+ // cmd.add(new org.eclipse.gmf.runtime.diagram.core.commands.DeleteCommand(getEditingDomain(), cnode));
+ break;
+ case AtomicUnit7EditPart.VISUAL_ID:
+ cmd.add(new DestroyElementCommand(
+ new DestroyElementRequest(getEditingDomain(),
+ cnode.getElement(), false))); // directlyOwned: true
+ // don't need explicit deletion of cnode as parent's view deletion would clean child views as well
+ // cmd.add(new org.eclipse.gmf.runtime.diagram.core.commands.DeleteCommand(getEditingDomain(), cnode));
+ break;
+ }
+ }
+ break;
+ }
+ }
+ }
+
+}
diff --git a/org.eclipse.emf.refactor.comrel.diagram/src/comrel/diagram/edit/policies/ConditionalUnit6CanonicalEditPolicy.java b/org.eclipse.emf.refactor.comrel.diagram/src/comrel/diagram/edit/policies/ConditionalUnit6CanonicalEditPolicy.java
new file mode 100644
index 0000000..27bac95
--- /dev/null
+++ b/org.eclipse.emf.refactor.comrel.diagram/src/comrel/diagram/edit/policies/ConditionalUnit6CanonicalEditPolicy.java
@@ -0,0 +1,164 @@
+/*
+ *
+ */
+package comrel.diagram.edit.policies;
+
+import java.util.ArrayList;
+import java.util.Collection;
+import java.util.Iterator;
+import java.util.LinkedList;
+import java.util.List;
+
+import org.eclipse.core.runtime.IAdaptable;
+import org.eclipse.emf.ecore.EObject;
+import org.eclipse.emf.ecore.EStructuralFeature;
+import org.eclipse.gef.commands.Command;
+import org.eclipse.gmf.runtime.diagram.core.util.ViewUtil;
+import org.eclipse.gmf.runtime.diagram.ui.commands.DeferredLayoutCommand;
+import org.eclipse.gmf.runtime.diagram.ui.commands.ICommandProxy;
+import org.eclipse.gmf.runtime.diagram.ui.commands.SetViewMutabilityCommand;
+import org.eclipse.gmf.runtime.diagram.ui.editpolicies.CanonicalEditPolicy;
+import org.eclipse.gmf.runtime.diagram.ui.requests.CreateViewRequest;
+import org.eclipse.gmf.runtime.emf.core.util.EObjectAdapter;
+import org.eclipse.gmf.runtime.notation.Node;
+import org.eclipse.gmf.runtime.notation.View;
+
+import comrel.ComrelPackage;
+import comrel.diagram.edit.parts.MultiInputPort9EditPart;
+import comrel.diagram.edit.parts.SingleInputPort8EditPart;
+import comrel.diagram.part.ComrelDiagramUpdater;
+import comrel.diagram.part.ComrelNodeDescriptor;
+import comrel.diagram.part.ComrelVisualIDRegistry;
+
+/**
+ * @generated
+ */
+public class ConditionalUnit6CanonicalEditPolicy extends CanonicalEditPolicy {
+
+ /**
+ * @generated
+ */
+ protected EStructuralFeature getFeatureToSynchronize() {
+ return ComrelPackage.eINSTANCE.getConditionalUnit_InputPorts();
+ }
+
+ /**
+ * @generated
+ */
+ @SuppressWarnings("rawtypes")
+ protected List getSemanticChildrenList() {
+ View viewObject = (View) getHost().getModel();
+ LinkedList<EObject> result = new LinkedList<EObject>();
+ List<ComrelNodeDescriptor> childDescriptors = ComrelDiagramUpdater
+ .getConditionalUnit_3072SemanticChildren(viewObject);
+ for (ComrelNodeDescriptor d : childDescriptors) {
+ result.add(d.getModelElement());
+ }
+ return result;
+ }
+
+ /**
+ * @generated
+ */
+ protected boolean isOrphaned(Collection<EObject> semanticChildren,
+ final View view) {
+ return isMyDiagramElement(view)
+ && !semanticChildren.contains(view.getElement());
+ }
+
+ /**
+ * @generated
+ */
+ private boolean isMyDiagramElement(View view) {
+ int visualID = ComrelVisualIDRegistry.getVisualID(view);
+ return visualID == SingleInputPort8EditPart.VISUAL_ID
+ || visualID == MultiInputPort9EditPart.VISUAL_ID;
+ }
+
+ /**
+ * @generated
+ */
+ protected void refreshSemantic() {
+ if (resolveSemanticElement() == null) {
+ return;
+ }
+ LinkedList<IAdaptable> createdViews = new LinkedList<IAdaptable>();
+ List<ComrelNodeDescriptor> childDescriptors = ComrelDiagramUpdater
+ .getConditionalUnit_3072SemanticChildren((View) getHost()
+ .getModel());
+ LinkedList<View> orphaned = new LinkedList<View>();
+ // we care to check only views we recognize as ours
+ LinkedList<View> knownViewChildren = new LinkedList<View>();
+ for (View v : getViewChildren()) {
+ if (isMyDiagramElement(v)) {
+ knownViewChildren.add(v);
+ }
+ }
+ // alternative to #cleanCanonicalSemanticChildren(getViewChildren(), semanticChildren)
+ //
+ // iteration happens over list of desired semantic elements, trying to find best matching View, while original CEP
+ // iterates views, potentially losing view (size/bounds) information - i.e. if there are few views to reference same EObject, only last one
+ // to answer isOrphaned == true will be used for the domain element representation, see #cleanCanonicalSemanticChildren()
+ for (Iterator<ComrelNodeDescriptor> descriptorsIterator = childDescriptors
+ .iterator(); descriptorsIterator.hasNext();) {
+ ComrelNodeDescriptor next = descriptorsIterator.next();
+ String hint = ComrelVisualIDRegistry.getType(next.getVisualID());
+ LinkedList<View> perfectMatch = new LinkedList<View>(); // both semanticElement and hint match that of NodeDescriptor
+ for (View childView : getViewChildren()) {
+ EObject semanticElement = childView.getElement();
+ if (next.getModelElement().equals(semanticElement)) {
+ if (hint.equals(childView.getType())) {
+ perfectMatch.add(childView);
+ // actually, can stop iteration over view children here, but
+ // may want to use not the first view but last one as a 'real' match (the way original CEP does
+ // with its trick with viewToSemanticMap inside #cleanCanonicalSemanticChildren
+ }
+ }
+ }
+ if (perfectMatch.size() > 0) {
+ descriptorsIterator.remove(); // precise match found no need to create anything for the NodeDescriptor
+ // use only one view (first or last?), keep rest as orphaned for further consideration
+ knownViewChildren.remove(perfectMatch.getFirst());
+ }
+ }
+ // those left in knownViewChildren are subject to removal - they are our diagram elements we didn't find match to,
+ // or those we have potential matches to, and thus need to be recreated, preserving size/location information.
+ orphaned.addAll(knownViewChildren);
+ //
+ ArrayList<CreateViewRequest.ViewDescriptor> viewDescriptors = new ArrayList<CreateViewRequest.ViewDescriptor>(
+ childDescriptors.size());
+ for (ComrelNodeDescriptor next : childDescriptors) {
+ String hint = ComrelVisualIDRegistry.getType(next.getVisualID());
+ IAdaptable elementAdapter = new CanonicalElementAdapter(
+ next.getModelElement(), hint);
+ CreateViewRequest.ViewDescriptor descriptor = new CreateViewRequest.ViewDescriptor(
+ elementAdapter, Node.class, hint, ViewUtil.APPEND, false,
+ host().getDiagramPreferencesHint());
+ viewDescriptors.add(descriptor);
+ }
+
+ boolean changed = deleteViews(orphaned.iterator());
+ //
+ CreateViewRequest request = getCreateViewRequest(viewDescriptors);
+ Command cmd = getCreateViewCommand(request);
+ if (cmd != null && cmd.canExecute()) {
+ SetViewMutabilityCommand.makeMutable(
+ new EObjectAdapter(host().getNotationView())).execute();
+ executeCommand(cmd);
+ @SuppressWarnings("unchecked")
+ List<IAdaptable> nl = (List<IAdaptable>) request.getNewObject();
+ createdViews.addAll(nl);
+ }
+ if (changed || createdViews.size() > 0) {
+ postProcessRefreshSemantic(createdViews);
+ }
+ if (createdViews.size() > 1) {
+ // perform a layout of the container
+ DeferredLayoutCommand layoutCmd = new DeferredLayoutCommand(host()
+ .getEditingDomain(), createdViews, host());
+ executeCommand(new ICommandProxy(layoutCmd));
+ }
+
+ makeViewsImmutable(createdViews);
+ }
+}
diff --git a/org.eclipse.emf.refactor.comrel.diagram/src/comrel/diagram/edit/policies/ConditionalUnit6ItemSemanticEditPolicy.java b/org.eclipse.emf.refactor.comrel.diagram/src/comrel/diagram/edit/policies/ConditionalUnit6ItemSemanticEditPolicy.java
new file mode 100644
index 0000000..c007e67
--- /dev/null
+++ b/org.eclipse.emf.refactor.comrel.diagram/src/comrel/diagram/edit/policies/ConditionalUnit6ItemSemanticEditPolicy.java
@@ -0,0 +1,337 @@
+/*
+ *
+ */
+package comrel.diagram.edit.policies;
+
+import java.util.Iterator;
+
+import org.eclipse.emf.ecore.EAnnotation;
+import org.eclipse.gef.commands.Command;
+import org.eclipse.gmf.runtime.common.core.command.ICompositeCommand;
+import org.eclipse.gmf.runtime.diagram.core.commands.DeleteCommand;
+import org.eclipse.gmf.runtime.emf.commands.core.command.CompositeTransactionalCommand;
+import org.eclipse.gmf.runtime.emf.type.core.commands.DestroyElementCommand;
+import org.eclipse.gmf.runtime.emf.type.core.requests.CreateElementRequest;
+import org.eclipse.gmf.runtime.emf.type.core.requests.DestroyElementRequest;
+import org.eclipse.gmf.runtime.notation.Edge;
+import org.eclipse.gmf.runtime.notation.Node;
+import org.eclipse.gmf.runtime.notation.View;
+
+import comrel.diagram.edit.commands.MultiInputPort9CreateCommand;
+import comrel.diagram.edit.commands.SingleInputPort8CreateCommand;
+import comrel.diagram.edit.parts.AtomicUnit6EditPart;
+import comrel.diagram.edit.parts.AtomicUnit7EditPart;
+import comrel.diagram.edit.parts.CartesianQueuedUnit6EditPart;
+import comrel.diagram.edit.parts.CartesianQueuedUnit7EditPart;
+import comrel.diagram.edit.parts.ConditionCheckEditPart;
+import comrel.diagram.edit.parts.ConditionalUnit6EditPart;
+import comrel.diagram.edit.parts.ConditionalUnit7EditPart;
+import comrel.diagram.edit.parts.ConditionalUnitConditionalUnitElseCompartment5EditPart;
+import comrel.diagram.edit.parts.ConditionalUnitConditionalUnitHelperUnitsCompartment5EditPart;
+import comrel.diagram.edit.parts.ConditionalUnitConditionalUnitIfCompartment5EditPart;
+import comrel.diagram.edit.parts.ConditionalUnitConditionalUnitThenCompartment5EditPart;
+import comrel.diagram.edit.parts.MultiFeatureUnit3EditPart;
+import comrel.diagram.edit.parts.MultiFilterUnit3EditPart;
+import comrel.diagram.edit.parts.MultiInputPort9EditPart;
+import comrel.diagram.edit.parts.MultiPortMappingEditPart;
+import comrel.diagram.edit.parts.MultiSinglePortMappingEditPart;
+import comrel.diagram.edit.parts.ParallelQueuedUnit3EditPart;
+import comrel.diagram.edit.parts.ParallelQueuedUnit7EditPart;
+import comrel.diagram.edit.parts.SequentialUnit5EditPart;
+import comrel.diagram.edit.parts.SequentialUnit7EditPart;
+import comrel.diagram.edit.parts.SingleFeatureUnit3EditPart;
+import comrel.diagram.edit.parts.SingleFilterUnit3EditPart;
+import comrel.diagram.edit.parts.SingleInputPort8EditPart;
+import comrel.diagram.edit.parts.SinglePortMappingEditPart;
+import comrel.diagram.edit.parts.SingleQueuedUnit4EditPart;
+import comrel.diagram.edit.parts.SingleQueuedUnit7EditPart;
+import comrel.diagram.part.ComrelVisualIDRegistry;
+import comrel.diagram.providers.ComrelElementTypes;
+
+/**
+ * @generated
+ */
+public class ConditionalUnit6ItemSemanticEditPolicy extends
+ ComrelBaseItemSemanticEditPolicy {
+
+ /**
+ * @generated
+ */
+ public ConditionalUnit6ItemSemanticEditPolicy() {
+ super(ComrelElementTypes.ConditionalUnit_3072);
+ }
+
+ /**
+ * @generated
+ */
+ protected Command getCreateCommand(CreateElementRequest req) {
+ if (ComrelElementTypes.SingleInputPort_3031 == req.getElementType()) {
+ return getGEFWrapper(new SingleInputPort8CreateCommand(req));
+ }
+ if (ComrelElementTypes.MultiInputPort_3032 == req.getElementType()) {
+ return getGEFWrapper(new MultiInputPort9CreateCommand(req));
+ }
+ return super.getCreateCommand(req);
+ }
+
+ /**
+ * @generated
+ */
+ protected Command getDestroyElementCommand(DestroyElementRequest req) {
+ View view = (View) getHost().getModel();
+ CompositeTransactionalCommand cmd = new CompositeTransactionalCommand(
+ getEditingDomain(), null);
+ cmd.setTransactionNestingEnabled(false);
+ EAnnotation annotation = view.getEAnnotation("Shortcut"); //$NON-NLS-1$
+ if (annotation == null) {
+ // there are indirectly referenced children, need extra commands: false
+ addDestroyChildNodesCommand(cmd);
+ addDestroyShortcutsCommand(cmd, view);
+ // delete host element
+ cmd.add(new DestroyElementCommand(req));
+ } else {
+ cmd.add(new DeleteCommand(getEditingDomain(), view));
+ }
+ return getGEFWrapper(cmd.reduce());
+ }
+
+ /**
+ * @generated
+ */
+ private void addDestroyChildNodesCommand(ICompositeCommand cmd) {
+ View view = (View) getHost().getModel();
+ for (Iterator<?> nit = view.getChildren().iterator(); nit.hasNext();) {
+ Node node = (Node) nit.next();
+ switch (ComrelVisualIDRegistry.getVisualID(node)) {
+ case SingleInputPort8EditPart.VISUAL_ID:
+ for (Iterator<?> it = node.getTargetEdges().iterator(); it
+ .hasNext();) {
+ Edge incomingLink = (Edge) it.next();
+ if (ComrelVisualIDRegistry.getVisualID(incomingLink) == SinglePortMappingEditPart.VISUAL_ID) {
+ DestroyElementRequest r = new DestroyElementRequest(
+ incomingLink.getElement(), false);
+ cmd.add(new DestroyElementCommand(r));
+ cmd.add(new DeleteCommand(getEditingDomain(),
+ incomingLink));
+ continue;
+ }
+ if (ComrelVisualIDRegistry.getVisualID(incomingLink) == MultiSinglePortMappingEditPart.VISUAL_ID) {
+ DestroyElementRequest r = new DestroyElementRequest(
+ incomingLink.getElement(), false);
+ cmd.add(new DestroyElementCommand(r));
+ cmd.add(new DeleteCommand(getEditingDomain(),
+ incomingLink));
+ continue;
+ }
+ }
+ for (Iterator<?> it = node.getSourceEdges().iterator(); it
+ .hasNext();) {
+ Edge outgoingLink = (Edge) it.next();
+ if (ComrelVisualIDRegistry.getVisualID(outgoingLink) == SinglePortMappingEditPart.VISUAL_ID) {
+ DestroyElementRequest r = new DestroyElementRequest(
+ outgoingLink.getElement(), false);
+ cmd.add(new DestroyElementCommand(r));
+ cmd.add(new DeleteCommand(getEditingDomain(),
+ outgoingLink));
+ continue;
+ }
+ }
+ cmd.add(new DestroyElementCommand(new DestroyElementRequest(
+ getEditingDomain(), node.getElement(), false))); // directlyOwned: true
+ // don't need explicit deletion of node as parent's view deletion would clean child views as well
+ // cmd.add(new org.eclipse.gmf.runtime.diagram.core.commands.DeleteCommand(getEditingDomain(), node));
+ break;
+ case MultiInputPort9EditPart.VISUAL_ID:
+ for (Iterator<?> it = node.getTargetEdges().iterator(); it
+ .hasNext();) {
+ Edge incomingLink = (Edge) it.next();
+ if (ComrelVisualIDRegistry.getVisualID(incomingLink) == MultiPortMappingEditPart.VISUAL_ID) {
+ DestroyElementRequest r = new DestroyElementRequest(
+ incomingLink.getElement(), false);
+ cmd.add(new DestroyElementCommand(r));
+ cmd.add(new DeleteCommand(getEditingDomain(),
+ incomingLink));
+ continue;
+ }
+ }
+ for (Iterator<?> it = node.getSourceEdges().iterator(); it
+ .hasNext();) {
+ Edge outgoingLink = (Edge) it.next();
+ if (ComrelVisualIDRegistry.getVisualID(outgoingLink) == MultiPortMappingEditPart.VISUAL_ID) {
+ DestroyElementRequest r = new DestroyElementRequest(
+ outgoingLink.getElement(), false);
+ cmd.add(new DestroyElementCommand(r));
+ cmd.add(new DeleteCommand(getEditingDomain(),
+ outgoingLink));
+ continue;
+ }
+ if (ComrelVisualIDRegistry.getVisualID(outgoingLink) == MultiSinglePortMappingEditPart.VISUAL_ID) {
+ DestroyElementRequest r = new DestroyElementRequest(
+ outgoingLink.getElement(), false);
+ cmd.add(new DestroyElementCommand(r));
+ cmd.add(new DeleteCommand(getEditingDomain(),
+ outgoingLink));
+ continue;
+ }
+ }
+ cmd.add(new DestroyElementCommand(new DestroyElementRequest(
+ getEditingDomain(), node.getElement(), false))); // directlyOwned: true
+ // don't need explicit deletion of node as parent's view deletion would clean child views as well
+ // cmd.add(new org.eclipse.gmf.runtime.diagram.core.commands.DeleteCommand(getEditingDomain(), node));
+ break;
+ case ConditionalUnitConditionalUnitIfCompartment5EditPart.VISUAL_ID:
+ for (Iterator<?> cit = node.getChildren().iterator(); cit
+ .hasNext();) {
+ Node cnode = (Node) cit.next();
+ switch (ComrelVisualIDRegistry.getVisualID(cnode)) {
+ case ConditionCheckEditPart.VISUAL_ID:
+ cmd.add(new DestroyElementCommand(
+ new DestroyElementRequest(getEditingDomain(),
+ cnode.getElement(), false))); // directlyOwned: true
+ // don't need explicit deletion of cnode as parent's view deletion would clean child views as well
+ // cmd.add(new org.eclipse.gmf.runtime.diagram.core.commands.DeleteCommand(getEditingDomain(), cnode));
+ break;
+ }
+ }
+ break;
+ case ConditionalUnitConditionalUnitHelperUnitsCompartment5EditPart.VISUAL_ID:
+ for (Iterator<?> cit = node.getChildren().iterator(); cit
+ .hasNext();) {
+ Node cnode = (Node) cit.next();
+ switch (ComrelVisualIDRegistry.getVisualID(cnode)) {
+ case SingleFeatureUnit3EditPart.VISUAL_ID:
+ cmd.add(new DestroyElementCommand(
+ new DestroyElementRequest(getEditingDomain(),
+ cnode.getElement(), false))); // directlyOwned: true
+ // don't need explicit deletion of cnode as parent's view deletion would clean child views as well
+ // cmd.add(new org.eclipse.gmf.runtime.diagram.core.commands.DeleteCommand(getEditingDomain(), cnode));
+ break;
+ case MultiFeatureUnit3EditPart.VISUAL_ID:
+ cmd.add(new DestroyElementCommand(
+ new DestroyElementRequest(getEditingDomain(),
+ cnode.getElement(), false))); // directlyOwned: true
+ // don't need explicit deletion of cnode as parent's view deletion would clean child views as well
+ // cmd.add(new org.eclipse.gmf.runtime.diagram.core.commands.DeleteCommand(getEditingDomain(), cnode));
+ break;
+ case SingleFilterUnit3EditPart.VISUAL_ID:
+ cmd.add(new DestroyElementCommand(
+ new DestroyElementRequest(getEditingDomain(),
+ cnode.getElement(), false))); // directlyOwned: true
+ // don't need explicit deletion of cnode as parent's view deletion would clean child views as well
+ // cmd.add(new org.eclipse.gmf.runtime.diagram.core.commands.DeleteCommand(getEditingDomain(), cnode));
+ break;
+ case MultiFilterUnit3EditPart.VISUAL_ID:
+ cmd.add(new DestroyElementCommand(
+ new DestroyElementRequest(getEditingDomain(),
+ cnode.getElement(), false))); // directlyOwned: true
+ // don't need explicit deletion of cnode as parent's view deletion would clean child views as well
+ // cmd.add(new org.eclipse.gmf.runtime.diagram.core.commands.DeleteCommand(getEditingDomain(), cnode));
+ break;
+ }
+ }
+ break;
+ case ConditionalUnitConditionalUnitThenCompartment5EditPart.VISUAL_ID:
+ for (Iterator<?> cit = node.getChildren().iterator(); cit
+ .hasNext();) {
+ Node cnode = (Node) cit.next();
+ switch (ComrelVisualIDRegistry.getVisualID(cnode)) {
+ case CartesianQueuedUnit6EditPart.VISUAL_ID:
+ cmd.add(new DestroyElementCommand(
+ new DestroyElementRequest(getEditingDomain(),
+ cnode.getElement(), false))); // directlyOwned: true
+ // don't need explicit deletion of cnode as parent's view deletion would clean child views as well
+ // cmd.add(new org.eclipse.gmf.runtime.diagram.core.commands.DeleteCommand(getEditingDomain(), cnode));
+ break;
+ case ParallelQueuedUnit3EditPart.VISUAL_ID:
+ cmd.add(new DestroyElementCommand(
+ new DestroyElementRequest(getEditingDomain(),
+ cnode.getElement(), false))); // directlyOwned: true
+ // don't need explicit deletion of cnode as parent's view deletion would clean child views as well
+ // cmd.add(new org.eclipse.gmf.runtime.diagram.core.commands.DeleteCommand(getEditingDomain(), cnode));
+ break;
+ case SingleQueuedUnit4EditPart.VISUAL_ID:
+ cmd.add(new DestroyElementCommand(
+ new DestroyElementRequest(getEditingDomain(),
+ cnode.getElement(), false))); // directlyOwned: true
+ // don't need explicit deletion of cnode as parent's view deletion would clean child views as well
+ // cmd.add(new org.eclipse.gmf.runtime.diagram.core.commands.DeleteCommand(getEditingDomain(), cnode));
+ break;
+ case SequentialUnit5EditPart.VISUAL_ID:
+ cmd.add(new DestroyElementCommand(
+ new DestroyElementRequest(getEditingDomain(),
+ cnode.getElement(), false))); // directlyOwned: true
+ // don't need explicit deletion of cnode as parent's view deletion would clean child views as well
+ // cmd.add(new org.eclipse.gmf.runtime.diagram.core.commands.DeleteCommand(getEditingDomain(), cnode));
+ break;
+ case ConditionalUnit6EditPart.VISUAL_ID:
+ cmd.add(new DestroyElementCommand(
+ new DestroyElementRequest(getEditingDomain(),
+ cnode.getElement(), false))); // directlyOwned: true
+ // don't need explicit deletion of cnode as parent's view deletion would clean child views as well
+ // cmd.add(new org.eclipse.gmf.runtime.diagram.core.commands.DeleteCommand(getEditingDomain(), cnode));
+ break;
+ case AtomicUnit6EditPart.VISUAL_ID:
+ cmd.add(new DestroyElementCommand(
+ new DestroyElementRequest(getEditingDomain(),
+ cnode.getElement(), false))); // directlyOwned: true
+ // don't need explicit deletion of cnode as parent's view deletion would clean child views as well
+ // cmd.add(new org.eclipse.gmf.runtime.diagram.core.commands.DeleteCommand(getEditingDomain(), cnode));
+ break;
+ }
+ }
+ break;
+ case ConditionalUnitConditionalUnitElseCompartment5EditPart.VISUAL_ID:
+ for (Iterator<?> cit = node.getChildren().iterator(); cit
+ .hasNext();) {
+ Node cnode = (Node) cit.next();
+ switch (ComrelVisualIDRegistry.getVisualID(cnode)) {
+ case CartesianQueuedUnit7EditPart.VISUAL_ID:
+ cmd.add(new DestroyElementCommand(
+ new DestroyElementRequest(getEditingDomain(),
+ cnode.getElement(), false))); // directlyOwned: true
+ // don't need explicit deletion of cnode as parent's view deletion would clean child views as well
+ // cmd.add(new org.eclipse.gmf.runtime.diagram.core.commands.DeleteCommand(getEditingDomain(), cnode));
+ break;
+ case ParallelQueuedUnit7EditPart.VISUAL_ID:
+ cmd.add(new DestroyElementCommand(
+ new DestroyElementRequest(getEditingDomain(),
+ cnode.getElement(), false))); // directlyOwned: true
+ // don't need explicit deletion of cnode as parent's view deletion would clean child views as well
+ // cmd.add(new org.eclipse.gmf.runtime.diagram.core.commands.DeleteCommand(getEditingDomain(), cnode));
+ break;
+ case SingleQueuedUnit7EditPart.VISUAL_ID:
+ cmd.add(new DestroyElementCommand(
+ new DestroyElementRequest(getEditingDomain(),
+ cnode.getElement(), false))); // directlyOwned: true
+ // don't need explicit deletion of cnode as parent's view deletion would clean child views as well
+ // cmd.add(new org.eclipse.gmf.runtime.diagram.core.commands.DeleteCommand(getEditingDomain(), cnode));
+ break;
+ case SequentialUnit7EditPart.VISUAL_ID:
+ cmd.add(new DestroyElementCommand(
+ new DestroyElementRequest(getEditingDomain(),
+ cnode.getElement(), false))); // directlyOwned: true
+ // don't need explicit deletion of cnode as parent's view deletion would clean child views as well
+ // cmd.add(new org.eclipse.gmf.runtime.diagram.core.commands.DeleteCommand(getEditingDomain(), cnode));
+ break;
+ case ConditionalUnit7EditPart.VISUAL_ID:
+ cmd.add(new DestroyElementCommand(
+ new DestroyElementRequest(getEditingDomain(),
+ cnode.getElement(), false))); // directlyOwned: true
+ // don't need explicit deletion of cnode as parent's view deletion would clean child views as well
+ // cmd.add(new org.eclipse.gmf.runtime.diagram.core.commands.DeleteCommand(getEditingDomain(), cnode));
+ break;
+ case AtomicUnit7EditPart.VISUAL_ID:
+ cmd.add(new DestroyElementCommand(
+ new DestroyElementRequest(getEditingDomain(),
+ cnode.getElement(), false))); // directlyOwned: true
+ // don't need explicit deletion of cnode as parent's view deletion would clean child views as well
+ // cmd.add(new org.eclipse.gmf.runtime.diagram.core.commands.DeleteCommand(getEditingDomain(), cnode));
+ break;
+ }
+ }
+ break;
+ }
+ }
+ }
+
+}
diff --git a/org.eclipse.emf.refactor.comrel.diagram/src/comrel/diagram/edit/policies/ConditionalUnit7CanonicalEditPolicy.java b/org.eclipse.emf.refactor.comrel.diagram/src/comrel/diagram/edit/policies/ConditionalUnit7CanonicalEditPolicy.java
new file mode 100644
index 0000000..4ae856c
--- /dev/null
+++ b/org.eclipse.emf.refactor.comrel.diagram/src/comrel/diagram/edit/policies/ConditionalUnit7CanonicalEditPolicy.java
@@ -0,0 +1,164 @@
+/*
+ *
+ */
+package comrel.diagram.edit.policies;
+
+import java.util.ArrayList;
+import java.util.Collection;
+import java.util.Iterator;
+import java.util.LinkedList;
+import java.util.List;
+
+import org.eclipse.core.runtime.IAdaptable;
+import org.eclipse.emf.ecore.EObject;
+import org.eclipse.emf.ecore.EStructuralFeature;
+import org.eclipse.gef.commands.Command;
+import org.eclipse.gmf.runtime.diagram.core.util.ViewUtil;
+import org.eclipse.gmf.runtime.diagram.ui.commands.DeferredLayoutCommand;
+import org.eclipse.gmf.runtime.diagram.ui.commands.ICommandProxy;
+import org.eclipse.gmf.runtime.diagram.ui.commands.SetViewMutabilityCommand;
+import org.eclipse.gmf.runtime.diagram.ui.editpolicies.CanonicalEditPolicy;
+import org.eclipse.gmf.runtime.diagram.ui.requests.CreateViewRequest;
+import org.eclipse.gmf.runtime.emf.core.util.EObjectAdapter;
+import org.eclipse.gmf.runtime.notation.Node;
+import org.eclipse.gmf.runtime.notation.View;
+
+import comrel.ComrelPackage;
+import comrel.diagram.edit.parts.MultiInputPort9EditPart;
+import comrel.diagram.edit.parts.SingleInputPort8EditPart;
+import comrel.diagram.part.ComrelDiagramUpdater;
+import comrel.diagram.part.ComrelNodeDescriptor;
+import comrel.diagram.part.ComrelVisualIDRegistry;
+
+/**
+ * @generated
+ */
+public class ConditionalUnit7CanonicalEditPolicy extends CanonicalEditPolicy {
+
+ /**
+ * @generated
+ */
+ protected EStructuralFeature getFeatureToSynchronize() {
+ return ComrelPackage.eINSTANCE.getConditionalUnit_InputPorts();
+ }
+
+ /**
+ * @generated
+ */
+ @SuppressWarnings("rawtypes")
+ protected List getSemanticChildrenList() {
+ View viewObject = (View) getHost().getModel();
+ LinkedList<EObject> result = new LinkedList<EObject>();
+ List<ComrelNodeDescriptor> childDescriptors = ComrelDiagramUpdater
+ .getConditionalUnit_3075SemanticChildren(viewObject);
+ for (ComrelNodeDescriptor d : childDescriptors) {
+ result.add(d.getModelElement());
+ }
+ return result;
+ }
+
+ /**
+ * @generated
+ */
+ protected boolean isOrphaned(Collection<EObject> semanticChildren,
+ final View view) {
+ return isMyDiagramElement(view)
+ && !semanticChildren.contains(view.getElement());
+ }
+
+ /**
+ * @generated
+ */
+ private boolean isMyDiagramElement(View view) {
+ int visualID = ComrelVisualIDRegistry.getVisualID(view);
+ return visualID == SingleInputPort8EditPart.VISUAL_ID
+ || visualID == MultiInputPort9EditPart.VISUAL_ID;
+ }
+
+ /**
+ * @generated
+ */
+ protected void refreshSemantic() {
+ if (resolveSemanticElement() == null) {
+ return;
+ }
+ LinkedList<IAdaptable> createdViews = new LinkedList<IAdaptable>();
+ List<ComrelNodeDescriptor> childDescriptors = ComrelDiagramUpdater
+ .getConditionalUnit_3075SemanticChildren((View) getHost()
+ .getModel());
+ LinkedList<View> orphaned = new LinkedList<View>();
+ // we care to check only views we recognize as ours
+ LinkedList<View> knownViewChildren = new LinkedList<View>();
+ for (View v : getViewChildren()) {
+ if (isMyDiagramElement(v)) {
+ knownViewChildren.add(v);
+ }
+ }
+ // alternative to #cleanCanonicalSemanticChildren(getViewChildren(), semanticChildren)
+ //
+ // iteration happens over list of desired semantic elements, trying to find best matching View, while original CEP
+ // iterates views, potentially losing view (size/bounds) information - i.e. if there are few views to reference same EObject, only last one
+ // to answer isOrphaned == true will be used for the domain element representation, see #cleanCanonicalSemanticChildren()
+ for (Iterator<ComrelNodeDescriptor> descriptorsIterator = childDescriptors
+ .iterator(); descriptorsIterator.hasNext();) {
+ ComrelNodeDescriptor next = descriptorsIterator.next();
+ String hint = ComrelVisualIDRegistry.getType(next.getVisualID());
+ LinkedList<View> perfectMatch = new LinkedList<View>(); // both semanticElement and hint match that of NodeDescriptor
+ for (View childView : getViewChildren()) {
+ EObject semanticElement = childView.getElement();
+ if (next.getModelElement().equals(semanticElement)) {
+ if (hint.equals(childView.getType())) {
+ perfectMatch.add(childView);
+ // actually, can stop iteration over view children here, but
+ // may want to use not the first view but last one as a 'real' match (the way original CEP does
+ // with its trick with viewToSemanticMap inside #cleanCanonicalSemanticChildren
+ }
+ }
+ }
+ if (perfectMatch.size() > 0) {
+ descriptorsIterator.remove(); // precise match found no need to create anything for the NodeDescriptor
+ // use only one view (first or last?), keep rest as orphaned for further consideration
+ knownViewChildren.remove(perfectMatch.getFirst());
+ }
+ }
+ // those left in knownViewChildren are subject to removal - they are our diagram elements we didn't find match to,
+ // or those we have potential matches to, and thus need to be recreated, preserving size/location information.
+ orphaned.addAll(knownViewChildren);
+ //
+ ArrayList<CreateViewRequest.ViewDescriptor> viewDescriptors = new ArrayList<CreateViewRequest.ViewDescriptor>(
+ childDescriptors.size());
+ for (ComrelNodeDescriptor next : childDescriptors) {
+ String hint = ComrelVisualIDRegistry.getType(next.getVisualID());
+ IAdaptable elementAdapter = new CanonicalElementAdapter(
+ next.getModelElement(), hint);
+ CreateViewRequest.ViewDescriptor descriptor = new CreateViewRequest.ViewDescriptor(
+ elementAdapter, Node.class, hint, ViewUtil.APPEND, false,
+ host().getDiagramPreferencesHint());
+ viewDescriptors.add(descriptor);
+ }
+
+ boolean changed = deleteViews(orphaned.iterator());
+ //
+ CreateViewRequest request = getCreateViewRequest(viewDescriptors);
+ Command cmd = getCreateViewCommand(request);
+ if (cmd != null && cmd.canExecute()) {
+ SetViewMutabilityCommand.makeMutable(
+ new EObjectAdapter(host().getNotationView())).execute();
+ executeCommand(cmd);
+ @SuppressWarnings("unchecked")
+ List<IAdaptable> nl = (List<IAdaptable>) request.getNewObject();
+ createdViews.addAll(nl);
+ }
+ if (changed || createdViews.size() > 0) {
+ postProcessRefreshSemantic(createdViews);
+ }
+ if (createdViews.size() > 1) {
+ // perform a layout of the container
+ DeferredLayoutCommand layoutCmd = new DeferredLayoutCommand(host()
+ .getEditingDomain(), createdViews, host());
+ executeCommand(new ICommandProxy(layoutCmd));
+ }
+
+ makeViewsImmutable(createdViews);
+ }
+}
diff --git a/org.eclipse.emf.refactor.comrel.diagram/src/comrel/diagram/edit/policies/ConditionalUnit7ItemSemanticEditPolicy.java b/org.eclipse.emf.refactor.comrel.diagram/src/comrel/diagram/edit/policies/ConditionalUnit7ItemSemanticEditPolicy.java
new file mode 100644
index 0000000..776b0ad
--- /dev/null
+++ b/org.eclipse.emf.refactor.comrel.diagram/src/comrel/diagram/edit/policies/ConditionalUnit7ItemSemanticEditPolicy.java
@@ -0,0 +1,337 @@
+/*
+ *
+ */
+package comrel.diagram.edit.policies;
+
+import java.util.Iterator;
+
+import org.eclipse.emf.ecore.EAnnotation;
+import org.eclipse.gef.commands.Command;
+import org.eclipse.gmf.runtime.common.core.command.ICompositeCommand;
+import org.eclipse.gmf.runtime.diagram.core.commands.DeleteCommand;
+import org.eclipse.gmf.runtime.emf.commands.core.command.CompositeTransactionalCommand;
+import org.eclipse.gmf.runtime.emf.type.core.commands.DestroyElementCommand;
+import org.eclipse.gmf.runtime.emf.type.core.requests.CreateElementRequest;
+import org.eclipse.gmf.runtime.emf.type.core.requests.DestroyElementRequest;
+import org.eclipse.gmf.runtime.notation.Edge;
+import org.eclipse.gmf.runtime.notation.Node;
+import org.eclipse.gmf.runtime.notation.View;
+
+import comrel.diagram.edit.commands.MultiInputPort9CreateCommand;
+import comrel.diagram.edit.commands.SingleInputPort8CreateCommand;
+import comrel.diagram.edit.parts.AtomicUnit6EditPart;
+import comrel.diagram.edit.parts.AtomicUnit7EditPart;
+import comrel.diagram.edit.parts.CartesianQueuedUnit6EditPart;
+import comrel.diagram.edit.parts.CartesianQueuedUnit7EditPart;
+import comrel.diagram.edit.parts.ConditionCheckEditPart;
+import comrel.diagram.edit.parts.ConditionalUnit6EditPart;
+import comrel.diagram.edit.parts.ConditionalUnit7EditPart;
+import comrel.diagram.edit.parts.ConditionalUnitConditionalUnitElseCompartment6EditPart;
+import comrel.diagram.edit.parts.ConditionalUnitConditionalUnitHelperUnitsCompartment6EditPart;
+import comrel.diagram.edit.parts.ConditionalUnitConditionalUnitIfCompartment6EditPart;
+import comrel.diagram.edit.parts.ConditionalUnitConditionalUnitThenCompartment6EditPart;
+import comrel.diagram.edit.parts.MultiFeatureUnit3EditPart;
+import comrel.diagram.edit.parts.MultiFilterUnit3EditPart;
+import comrel.diagram.edit.parts.MultiInputPort9EditPart;
+import comrel.diagram.edit.parts.MultiPortMappingEditPart;
+import comrel.diagram.edit.parts.MultiSinglePortMappingEditPart;
+import comrel.diagram.edit.parts.ParallelQueuedUnit3EditPart;
+import comrel.diagram.edit.parts.ParallelQueuedUnit7EditPart;
+import comrel.diagram.edit.parts.SequentialUnit5EditPart;
+import comrel.diagram.edit.parts.SequentialUnit7EditPart;
+import comrel.diagram.edit.parts.SingleFeatureUnit3EditPart;
+import comrel.diagram.edit.parts.SingleFilterUnit3EditPart;
+import comrel.diagram.edit.parts.SingleInputPort8EditPart;
+import comrel.diagram.edit.parts.SinglePortMappingEditPart;
+import comrel.diagram.edit.parts.SingleQueuedUnit4EditPart;
+import comrel.diagram.edit.parts.SingleQueuedUnit7EditPart;
+import comrel.diagram.part.ComrelVisualIDRegistry;
+import comrel.diagram.providers.ComrelElementTypes;
+
+/**
+ * @generated
+ */
+public class ConditionalUnit7ItemSemanticEditPolicy extends
+ ComrelBaseItemSemanticEditPolicy {
+
+ /**
+ * @generated
+ */
+ public ConditionalUnit7ItemSemanticEditPolicy() {
+ super(ComrelElementTypes.ConditionalUnit_3075);
+ }
+
+ /**
+ * @generated
+ */
+ protected Command getCreateCommand(CreateElementRequest req) {
+ if (ComrelElementTypes.SingleInputPort_3031 == req.getElementType()) {
+ return getGEFWrapper(new SingleInputPort8CreateCommand(req));
+ }
+ if (ComrelElementTypes.MultiInputPort_3032 == req.getElementType()) {
+ return getGEFWrapper(new MultiInputPort9CreateCommand(req));
+ }
+ return super.getCreateCommand(req);
+ }
+
+ /**
+ * @generated
+ */
+ protected Command getDestroyElementCommand(DestroyElementRequest req) {
+ View view = (View) getHost().getModel();
+ CompositeTransactionalCommand cmd = new CompositeTransactionalCommand(
+ getEditingDomain(), null);
+ cmd.setTransactionNestingEnabled(false);
+ EAnnotation annotation = view.getEAnnotation("Shortcut"); //$NON-NLS-1$
+ if (annotation == null) {
+ // there are indirectly referenced children, need extra commands: false
+ addDestroyChildNodesCommand(cmd);
+ addDestroyShortcutsCommand(cmd, view);
+ // delete host element
+ cmd.add(new DestroyElementCommand(req));
+ } else {
+ cmd.add(new DeleteCommand(getEditingDomain(), view));
+ }
+ return getGEFWrapper(cmd.reduce());
+ }
+
+ /**
+ * @generated
+ */
+ private void addDestroyChildNodesCommand(ICompositeCommand cmd) {
+ View view = (View) getHost().getModel();
+ for (Iterator<?> nit = view.getChildren().iterator(); nit.hasNext();) {
+ Node node = (Node) nit.next();
+ switch (ComrelVisualIDRegistry.getVisualID(node)) {
+ case SingleInputPort8EditPart.VISUAL_ID:
+ for (Iterator<?> it = node.getTargetEdges().iterator(); it
+ .hasNext();) {
+ Edge incomingLink = (Edge) it.next();
+ if (ComrelVisualIDRegistry.getVisualID(incomingLink) == SinglePortMappingEditPart.VISUAL_ID) {
+ DestroyElementRequest r = new DestroyElementRequest(
+ incomingLink.getElement(), false);
+ cmd.add(new DestroyElementCommand(r));
+ cmd.add(new DeleteCommand(getEditingDomain(),
+ incomingLink));
+ continue;
+ }
+ if (ComrelVisualIDRegistry.getVisualID(incomingLink) == MultiSinglePortMappingEditPart.VISUAL_ID) {
+ DestroyElementRequest r = new DestroyElementRequest(
+ incomingLink.getElement(), false);
+ cmd.add(new DestroyElementCommand(r));
+ cmd.add(new DeleteCommand(getEditingDomain(),
+ incomingLink));
+ continue;
+ }
+ }
+ for (Iterator<?> it = node.getSourceEdges().iterator(); it
+ .hasNext();) {
+ Edge outgoingLink = (Edge) it.next();
+ if (ComrelVisualIDRegistry.getVisualID(outgoingLink) == SinglePortMappingEditPart.VISUAL_ID) {
+ DestroyElementRequest r = new DestroyElementRequest(
+ outgoingLink.getElement(), false);
+ cmd.add(new DestroyElementCommand(r));
+ cmd.add(new DeleteCommand(getEditingDomain(),
+ outgoingLink));
+ continue;
+ }
+ }
+ cmd.add(new DestroyElementCommand(new DestroyElementRequest(
+ getEditingDomain(), node.getElement(), false))); // directlyOwned: true
+ // don't need explicit deletion of node as parent's view deletion would clean child views as well
+ // cmd.add(new org.eclipse.gmf.runtime.diagram.core.commands.DeleteCommand(getEditingDomain(), node));
+ break;
+ case MultiInputPort9EditPart.VISUAL_ID:
+ for (Iterator<?> it = node.getTargetEdges().iterator(); it
+ .hasNext();) {
+ Edge incomingLink = (Edge) it.next();
+ if (ComrelVisualIDRegistry.getVisualID(incomingLink) == MultiPortMappingEditPart.VISUAL_ID) {
+ DestroyElementRequest r = new DestroyElementRequest(
+ incomingLink.getElement(), false);
+ cmd.add(new DestroyElementCommand(r));
+ cmd.add(new DeleteCommand(getEditingDomain(),
+ incomingLink));
+ continue;
+ }
+ }
+ for (Iterator<?> it = node.getSourceEdges().iterator(); it
+ .hasNext();) {
+ Edge outgoingLink = (Edge) it.next();
+ if (ComrelVisualIDRegistry.getVisualID(outgoingLink) == MultiPortMappingEditPart.VISUAL_ID) {
+ DestroyElementRequest r = new DestroyElementRequest(
+ outgoingLink.getElement(), false);
+ cmd.add(new DestroyElementCommand(r));
+ cmd.add(new DeleteCommand(getEditingDomain(),
+ outgoingLink));
+ continue;
+ }
+ if (ComrelVisualIDRegistry.getVisualID(outgoingLink) == MultiSinglePortMappingEditPart.VISUAL_ID) {
+ DestroyElementRequest r = new DestroyElementRequest(
+ outgoingLink.getElement(), false);
+ cmd.add(new DestroyElementCommand(r));
+ cmd.add(new DeleteCommand(getEditingDomain(),
+ outgoingLink));
+ continue;
+ }
+ }
+ cmd.add(new DestroyElementCommand(new DestroyElementRequest(
+ getEditingDomain(), node.getElement(), false))); // directlyOwned: true
+ // don't need explicit deletion of node as parent's view deletion would clean child views as well
+ // cmd.add(new org.eclipse.gmf.runtime.diagram.core.commands.DeleteCommand(getEditingDomain(), node));
+ break;
+ case ConditionalUnitConditionalUnitIfCompartment6EditPart.VISUAL_ID:
+ for (Iterator<?> cit = node.getChildren().iterator(); cit
+ .hasNext();) {
+ Node cnode = (Node) cit.next();
+ switch (ComrelVisualIDRegistry.getVisualID(cnode)) {
+ case ConditionCheckEditPart.VISUAL_ID:
+ cmd.add(new DestroyElementCommand(
+ new DestroyElementRequest(getEditingDomain(),
+ cnode.getElement(), false))); // directlyOwned: true
+ // don't need explicit deletion of cnode as parent's view deletion would clean child views as well
+ // cmd.add(new org.eclipse.gmf.runtime.diagram.core.commands.DeleteCommand(getEditingDomain(), cnode));
+ break;
+ }
+ }
+ break;
+ case ConditionalUnitConditionalUnitHelperUnitsCompartment6EditPart.VISUAL_ID:
+ for (Iterator<?> cit = node.getChildren().iterator(); cit
+ .hasNext();) {
+ Node cnode = (Node) cit.next();
+ switch (ComrelVisualIDRegistry.getVisualID(cnode)) {
+ case SingleFeatureUnit3EditPart.VISUAL_ID:
+ cmd.add(new DestroyElementCommand(
+ new DestroyElementRequest(getEditingDomain(),
+ cnode.getElement(), false))); // directlyOwned: true
+ // don't need explicit deletion of cnode as parent's view deletion would clean child views as well
+ // cmd.add(new org.eclipse.gmf.runtime.diagram.core.commands.DeleteCommand(getEditingDomain(), cnode));
+ break;
+ case MultiFeatureUnit3EditPart.VISUAL_ID:
+ cmd.add(new DestroyElementCommand(
+ new DestroyElementRequest(getEditingDomain(),
+ cnode.getElement(), false))); // directlyOwned: true
+ // don't need explicit deletion of cnode as parent's view deletion would clean child views as well
+ // cmd.add(new org.eclipse.gmf.runtime.diagram.core.commands.DeleteCommand(getEditingDomain(), cnode));
+ break;
+ case SingleFilterUnit3EditPart.VISUAL_ID:
+ cmd.add(new DestroyElementCommand(
+ new DestroyElementRequest(getEditingDomain(),
+ cnode.getElement(), false))); // directlyOwned: true
+ // don't need explicit deletion of cnode as parent's view deletion would clean child views as well
+ // cmd.add(new org.eclipse.gmf.runtime.diagram.core.commands.DeleteCommand(getEditingDomain(), cnode));
+ break;
+ case MultiFilterUnit3EditPart.VISUAL_ID:
+ cmd.add(new DestroyElementCommand(
+ new DestroyElementRequest(getEditingDomain(),
+ cnode.getElement(), false))); // directlyOwned: true
+ // don't need explicit deletion of cnode as parent's view deletion would clean child views as well
+ // cmd.add(new org.eclipse.gmf.runtime.diagram.core.commands.DeleteCommand(getEditingDomain(), cnode));
+ break;
+ }
+ }
+ break;
+ case ConditionalUnitConditionalUnitThenCompartment6EditPart.VISUAL_ID:
+ for (Iterator<?> cit = node.getChildren().iterator(); cit
+ .hasNext();) {
+ Node cnode = (Node) cit.next();
+ switch (ComrelVisualIDRegistry.getVisualID(cnode)) {
+ case CartesianQueuedUnit6EditPart.VISUAL_ID:
+ cmd.add(new DestroyElementCommand(
+ new DestroyElementRequest(getEditingDomain(),
+ cnode.getElement(), false))); // directlyOwned: true
+ // don't need explicit deletion of cnode as parent's view deletion would clean child views as well
+ // cmd.add(new org.eclipse.gmf.runtime.diagram.core.commands.DeleteCommand(getEditingDomain(), cnode));
+ break;
+ case ParallelQueuedUnit3EditPart.VISUAL_ID:
+ cmd.add(new DestroyElementCommand(
+ new DestroyElementRequest(getEditingDomain(),
+ cnode.getElement(), false))); // directlyOwned: true
+ // don't need explicit deletion of cnode as parent's view deletion would clean child views as well
+ // cmd.add(new org.eclipse.gmf.runtime.diagram.core.commands.DeleteCommand(getEditingDomain(), cnode));
+ break;
+ case SingleQueuedUnit4EditPart.VISUAL_ID:
+ cmd.add(new DestroyElementCommand(
+ new DestroyElementRequest(getEditingDomain(),
+ cnode.getElement(), false))); // directlyOwned: true
+ // don't need explicit deletion of cnode as parent's view deletion would clean child views as well
+ // cmd.add(new org.eclipse.gmf.runtime.diagram.core.commands.DeleteCommand(getEditingDomain(), cnode));
+ break;
+ case SequentialUnit5EditPart.VISUAL_ID:
+ cmd.add(new DestroyElementCommand(
+ new DestroyElementRequest(getEditingDomain(),
+ cnode.getElement(), false))); // directlyOwned: true
+ // don't need explicit deletion of cnode as parent's view deletion would clean child views as well
+ // cmd.add(new org.eclipse.gmf.runtime.diagram.core.commands.DeleteCommand(getEditingDomain(), cnode));
+ break;
+ case ConditionalUnit6EditPart.VISUAL_ID:
+ cmd.add(new DestroyElementCommand(
+ new DestroyElementRequest(getEditingDomain(),
+ cnode.getElement(), false))); // directlyOwned: true
+ // don't need explicit deletion of cnode as parent's view deletion would clean child views as well
+ // cmd.add(new org.eclipse.gmf.runtime.diagram.core.commands.DeleteCommand(getEditingDomain(), cnode));
+ break;
+ case AtomicUnit6EditPart.VISUAL_ID:
+ cmd.add(new DestroyElementCommand(
+ new DestroyElementRequest(getEditingDomain(),
+ cnode.getElement(), false))); // directlyOwned: true
+ // don't need explicit deletion of cnode as parent's view deletion would clean child views as well
+ // cmd.add(new org.eclipse.gmf.runtime.diagram.core.commands.DeleteCommand(getEditingDomain(), cnode));
+ break;
+ }
+ }
+ break;
+ case ConditionalUnitConditionalUnitElseCompartment6EditPart.VISUAL_ID:
+ for (Iterator<?> cit = node.getChildren().iterator(); cit
+ .hasNext();) {
+ Node cnode = (Node) cit.next();
+ switch (ComrelVisualIDRegistry.getVisualID(cnode)) {
+ case CartesianQueuedUnit7EditPart.VISUAL_ID:
+ cmd.add(new DestroyElementCommand(
+ new DestroyElementRequest(getEditingDomain(),
+ cnode.getElement(), false))); // directlyOwned: true
+ // don't need explicit deletion of cnode as parent's view deletion would clean child views as well
+ // cmd.add(new org.eclipse.gmf.runtime.diagram.core.commands.DeleteCommand(getEditingDomain(), cnode));
+ break;
+ case ParallelQueuedUnit7EditPart.VISUAL_ID:
+ cmd.add(new DestroyElementCommand(
+ new DestroyElementRequest(getEditingDomain(),
+ cnode.getElement(), false))); // directlyOwned: true
+ // don't need explicit deletion of cnode as parent's view deletion would clean child views as well
+ // cmd.add(new org.eclipse.gmf.runtime.diagram.core.commands.DeleteCommand(getEditingDomain(), cnode));
+ break;
+ case SingleQueuedUnit7EditPart.VISUAL_ID:
+ cmd.add(new DestroyElementCommand(
+ new DestroyElementRequest(getEditingDomain(),
+ cnode.getElement(), false))); // directlyOwned: true
+ // don't need explicit deletion of cnode as parent's view deletion would clean child views as well
+ // cmd.add(new org.eclipse.gmf.runtime.diagram.core.commands.DeleteCommand(getEditingDomain(), cnode));
+ break;
+ case SequentialUnit7EditPart.VISUAL_ID:
+ cmd.add(new DestroyElementCommand(
+ new DestroyElementRequest(getEditingDomain(),
+ cnode.getElement(), false))); // directlyOwned: true
+ // don't need explicit deletion of cnode as parent's view deletion would clean child views as well
+ // cmd.add(new org.eclipse.gmf.runtime.diagram.core.commands.DeleteCommand(getEditingDomain(), cnode));
+ break;
+ case ConditionalUnit7EditPart.VISUAL_ID:
+ cmd.add(new DestroyElementCommand(
+ new DestroyElementRequest(getEditingDomain(),
+ cnode.getElement(), false))); // directlyOwned: true
+ // don't need explicit deletion of cnode as parent's view deletion would clean child views as well
+ // cmd.add(new org.eclipse.gmf.runtime.diagram.core.commands.DeleteCommand(getEditingDomain(), cnode));
+ break;
+ case AtomicUnit7EditPart.VISUAL_ID:
+ cmd.add(new DestroyElementCommand(
+ new DestroyElementRequest(getEditingDomain(),
+ cnode.getElement(), false))); // directlyOwned: true
+ // don't need explicit deletion of cnode as parent's view deletion would clean child views as well
+ // cmd.add(new org.eclipse.gmf.runtime.diagram.core.commands.DeleteCommand(getEditingDomain(), cnode));
+ break;
+ }
+ }
+ break;
+ }
+ }
+ }
+
+}
diff --git a/org.eclipse.emf.refactor.comrel.diagram/src/comrel/diagram/edit/policies/ConditionalUnitCanonicalEditPolicy.java b/org.eclipse.emf.refactor.comrel.diagram/src/comrel/diagram/edit/policies/ConditionalUnitCanonicalEditPolicy.java
new file mode 100644
index 0000000..37c5050
--- /dev/null
+++ b/org.eclipse.emf.refactor.comrel.diagram/src/comrel/diagram/edit/policies/ConditionalUnitCanonicalEditPolicy.java
@@ -0,0 +1,164 @@
+/*
+ *
+ */
+package comrel.diagram.edit.policies;
+
+import java.util.ArrayList;
+import java.util.Collection;
+import java.util.Iterator;
+import java.util.LinkedList;
+import java.util.List;
+
+import org.eclipse.core.runtime.IAdaptable;
+import org.eclipse.emf.ecore.EObject;
+import org.eclipse.emf.ecore.EStructuralFeature;
+import org.eclipse.gef.commands.Command;
+import org.eclipse.gmf.runtime.diagram.core.util.ViewUtil;
+import org.eclipse.gmf.runtime.diagram.ui.commands.DeferredLayoutCommand;
+import org.eclipse.gmf.runtime.diagram.ui.commands.ICommandProxy;
+import org.eclipse.gmf.runtime.diagram.ui.commands.SetViewMutabilityCommand;
+import org.eclipse.gmf.runtime.diagram.ui.editpolicies.CanonicalEditPolicy;
+import org.eclipse.gmf.runtime.diagram.ui.requests.CreateViewRequest;
+import org.eclipse.gmf.runtime.emf.core.util.EObjectAdapter;
+import org.eclipse.gmf.runtime.notation.Node;
+import org.eclipse.gmf.runtime.notation.View;
+
+import comrel.ComrelPackage;
+import comrel.diagram.edit.parts.MultiInputPort9EditPart;
+import comrel.diagram.edit.parts.SingleInputPort8EditPart;
+import comrel.diagram.part.ComrelDiagramUpdater;
+import comrel.diagram.part.ComrelNodeDescriptor;
+import comrel.diagram.part.ComrelVisualIDRegistry;
+
+/**
+ * @generated
+ */
+public class ConditionalUnitCanonicalEditPolicy extends CanonicalEditPolicy {
+
+ /**
+ * @generated
+ */
+ protected EStructuralFeature getFeatureToSynchronize() {
+ return ComrelPackage.eINSTANCE.getConditionalUnit_InputPorts();
+ }
+
+ /**
+ * @generated
+ */
+ @SuppressWarnings("rawtypes")
+ protected List getSemanticChildrenList() {
+ View viewObject = (View) getHost().getModel();
+ LinkedList<EObject> result = new LinkedList<EObject>();
+ List<ComrelNodeDescriptor> childDescriptors = ComrelDiagramUpdater
+ .getConditionalUnit_2006SemanticChildren(viewObject);
+ for (ComrelNodeDescriptor d : childDescriptors) {
+ result.add(d.getModelElement());
+ }
+ return result;
+ }
+
+ /**
+ * @generated
+ */
+ protected boolean isOrphaned(Collection<EObject> semanticChildren,
+ final View view) {
+ return isMyDiagramElement(view)
+ && !semanticChildren.contains(view.getElement());
+ }
+
+ /**
+ * @generated
+ */
+ private boolean isMyDiagramElement(View view) {
+ int visualID = ComrelVisualIDRegistry.getVisualID(view);
+ return visualID == SingleInputPort8EditPart.VISUAL_ID
+ || visualID == MultiInputPort9EditPart.VISUAL_ID;
+ }
+
+ /**
+ * @generated
+ */
+ protected void refreshSemantic() {
+ if (resolveSemanticElement() == null) {
+ return;
+ }
+ LinkedList<IAdaptable> createdViews = new LinkedList<IAdaptable>();
+ List<ComrelNodeDescriptor> childDescriptors = ComrelDiagramUpdater
+ .getConditionalUnit_2006SemanticChildren((View) getHost()
+ .getModel());
+ LinkedList<View> orphaned = new LinkedList<View>();
+ // we care to check only views we recognize as ours
+ LinkedList<View> knownViewChildren = new LinkedList<View>();
+ for (View v : getViewChildren()) {
+ if (isMyDiagramElement(v)) {
+ knownViewChildren.add(v);
+ }
+ }
+ // alternative to #cleanCanonicalSemanticChildren(getViewChildren(), semanticChildren)
+ //
+ // iteration happens over list of desired semantic elements, trying to find best matching View, while original CEP
+ // iterates views, potentially losing view (size/bounds) information - i.e. if there are few views to reference same EObject, only last one
+ // to answer isOrphaned == true will be used for the domain element representation, see #cleanCanonicalSemanticChildren()
+ for (Iterator<ComrelNodeDescriptor> descriptorsIterator = childDescriptors
+ .iterator(); descriptorsIterator.hasNext();) {
+ ComrelNodeDescriptor next = descriptorsIterator.next();
+ String hint = ComrelVisualIDRegistry.getType(next.getVisualID());
+ LinkedList<View> perfectMatch = new LinkedList<View>(); // both semanticElement and hint match that of NodeDescriptor
+ for (View childView : getViewChildren()) {
+ EObject semanticElement = childView.getElement();
+ if (next.getModelElement().equals(semanticElement)) {
+ if (hint.equals(childView.getType())) {
+ perfectMatch.add(childView);
+ // actually, can stop iteration over view children here, but
+ // may want to use not the first view but last one as a 'real' match (the way original CEP does
+ // with its trick with viewToSemanticMap inside #cleanCanonicalSemanticChildren
+ }
+ }
+ }
+ if (perfectMatch.size() > 0) {
+ descriptorsIterator.remove(); // precise match found no need to create anything for the NodeDescriptor
+ // use only one view (first or last?), keep rest as orphaned for further consideration
+ knownViewChildren.remove(perfectMatch.getFirst());
+ }
+ }
+ // those left in knownViewChildren are subject to removal - they are our diagram elements we didn't find match to,
+ // or those we have potential matches to, and thus need to be recreated, preserving size/location information.
+ orphaned.addAll(knownViewChildren);
+ //
+ ArrayList<CreateViewRequest.ViewDescriptor> viewDescriptors = new ArrayList<CreateViewRequest.ViewDescriptor>(
+ childDescriptors.size());
+ for (ComrelNodeDescriptor next : childDescriptors) {
+ String hint = ComrelVisualIDRegistry.getType(next.getVisualID());
+ IAdaptable elementAdapter = new CanonicalElementAdapter(
+ next.getModelElement(), hint);
+ CreateViewRequest.ViewDescriptor descriptor = new CreateViewRequest.ViewDescriptor(
+ elementAdapter, Node.class, hint, ViewUtil.APPEND, false,
+ host().getDiagramPreferencesHint());
+ viewDescriptors.add(descriptor);
+ }
+
+ boolean changed = deleteViews(orphaned.iterator());
+ //
+ CreateViewRequest request = getCreateViewRequest(viewDescriptors);
+ Command cmd = getCreateViewCommand(request);
+ if (cmd != null && cmd.canExecute()) {
+ SetViewMutabilityCommand.makeMutable(
+ new EObjectAdapter(host().getNotationView())).execute();
+ executeCommand(cmd);
+ @SuppressWarnings("unchecked")
+ List<IAdaptable> nl = (List<IAdaptable>) request.getNewObject();
+ createdViews.addAll(nl);
+ }
+ if (changed || createdViews.size() > 0) {
+ postProcessRefreshSemantic(createdViews);
+ }
+ if (createdViews.size() > 1) {
+ // perform a layout of the container
+ DeferredLayoutCommand layoutCmd = new DeferredLayoutCommand(host()
+ .getEditingDomain(), createdViews, host());
+ executeCommand(new ICommandProxy(layoutCmd));
+ }
+
+ makeViewsImmutable(createdViews);
+ }
+}
diff --git a/org.eclipse.emf.refactor.comrel.diagram/src/comrel/diagram/edit/policies/ConditionalUnitConditionalUnitElseCompartment2CanonicalEditPolicy.java b/org.eclipse.emf.refactor.comrel.diagram/src/comrel/diagram/edit/policies/ConditionalUnitConditionalUnitElseCompartment2CanonicalEditPolicy.java
new file mode 100644
index 0000000..b9072c1
--- /dev/null
+++ b/org.eclipse.emf.refactor.comrel.diagram/src/comrel/diagram/edit/policies/ConditionalUnitConditionalUnitElseCompartment2CanonicalEditPolicy.java
@@ -0,0 +1,177 @@
+/*
+ *
+ */
+package comrel.diagram.edit.policies;
+
+import java.util.ArrayList;
+import java.util.Collection;
+import java.util.Iterator;
+import java.util.LinkedList;
+import java.util.List;
+
+import org.eclipse.core.runtime.IAdaptable;
+import org.eclipse.emf.ecore.EObject;
+import org.eclipse.emf.ecore.EStructuralFeature;
+import org.eclipse.gef.commands.Command;
+import org.eclipse.gmf.runtime.diagram.core.util.ViewUtil;
+import org.eclipse.gmf.runtime.diagram.ui.commands.DeferredLayoutCommand;
+import org.eclipse.gmf.runtime.diagram.ui.commands.ICommandProxy;
+import org.eclipse.gmf.runtime.diagram.ui.commands.SetViewMutabilityCommand;
+import org.eclipse.gmf.runtime.diagram.ui.editpolicies.CanonicalEditPolicy;
+import org.eclipse.gmf.runtime.diagram.ui.requests.CreateViewRequest;
+import org.eclipse.gmf.runtime.emf.core.util.EObjectAdapter;
+import org.eclipse.gmf.runtime.notation.Node;
+import org.eclipse.gmf.runtime.notation.View;
+
+import comrel.ComrelPackage;
+import comrel.diagram.edit.parts.AtomicUnit7EditPart;
+import comrel.diagram.edit.parts.CartesianQueuedUnit7EditPart;
+import comrel.diagram.edit.parts.ConditionalUnit7EditPart;
+import comrel.diagram.edit.parts.ParallelQueuedUnit7EditPart;
+import comrel.diagram.edit.parts.SequentialUnit7EditPart;
+import comrel.diagram.edit.parts.SingleQueuedUnit7EditPart;
+import comrel.diagram.part.ComrelDiagramUpdater;
+import comrel.diagram.part.ComrelNodeDescriptor;
+import comrel.diagram.part.ComrelVisualIDRegistry;
+
+/**
+ * @generated
+ */
+public class ConditionalUnitConditionalUnitElseCompartment2CanonicalEditPolicy
+ extends CanonicalEditPolicy {
+
+ /**
+ * @generated
+ */
+ protected EStructuralFeature getFeatureToSynchronize() {
+ return ComrelPackage.eINSTANCE.getConditionalUnit_Else();
+ }
+
+ /**
+ * @generated
+ */
+ @SuppressWarnings("rawtypes")
+ protected List getSemanticChildrenList() {
+ View viewObject = (View) getHost().getModel();
+ LinkedList<EObject> result = new LinkedList<EObject>();
+ List<ComrelNodeDescriptor> childDescriptors = ComrelDiagramUpdater
+ .getConditionalUnitConditionalUnitElseCompartment_7038SemanticChildren(viewObject);
+ for (ComrelNodeDescriptor d : childDescriptors) {
+ result.add(d.getModelElement());
+ }
+ return result;
+ }
+
+ /**
+ * @generated
+ */
+ protected boolean isOrphaned(Collection<EObject> semanticChildren,
+ final View view) {
+ return isMyDiagramElement(view)
+ && !semanticChildren.contains(view.getElement());
+ }
+
+ /**
+ * @generated
+ */
+ private boolean isMyDiagramElement(View view) {
+ int visualID = ComrelVisualIDRegistry.getVisualID(view);
+ switch (visualID) {
+ case CartesianQueuedUnit7EditPart.VISUAL_ID:
+ case ParallelQueuedUnit7EditPart.VISUAL_ID:
+ case SingleQueuedUnit7EditPart.VISUAL_ID:
+ case SequentialUnit7EditPart.VISUAL_ID:
+ case ConditionalUnit7EditPart.VISUAL_ID:
+ case AtomicUnit7EditPart.VISUAL_ID:
+ return true;
+ }
+ return false;
+ }
+
+ /**
+ * @generated
+ */
+ protected void refreshSemantic() {
+ if (resolveSemanticElement() == null) {
+ return;
+ }
+ LinkedList<IAdaptable> createdViews = new LinkedList<IAdaptable>();
+ List<ComrelNodeDescriptor> childDescriptors = ComrelDiagramUpdater
+ .getConditionalUnitConditionalUnitElseCompartment_7038SemanticChildren((View) getHost()
+ .getModel());
+ LinkedList<View> orphaned = new LinkedList<View>();
+ // we care to check only views we recognize as ours
+ LinkedList<View> knownViewChildren = new LinkedList<View>();
+ for (View v : getViewChildren()) {
+ if (isMyDiagramElement(v)) {
+ knownViewChildren.add(v);
+ }
+ }
+ // alternative to #cleanCanonicalSemanticChildren(getViewChildren(), semanticChildren)
+ //
+ // iteration happens over list of desired semantic elements, trying to find best matching View, while original CEP
+ // iterates views, potentially losing view (size/bounds) information - i.e. if there are few views to reference same EObject, only last one
+ // to answer isOrphaned == true will be used for the domain element representation, see #cleanCanonicalSemanticChildren()
+ for (Iterator<ComrelNodeDescriptor> descriptorsIterator = childDescriptors
+ .iterator(); descriptorsIterator.hasNext();) {
+ ComrelNodeDescriptor next = descriptorsIterator.next();
+ String hint = ComrelVisualIDRegistry.getType(next.getVisualID());
+ LinkedList<View> perfectMatch = new LinkedList<View>(); // both semanticElement and hint match that of NodeDescriptor
+ for (View childView : getViewChildren()) {
+ EObject semanticElement = childView.getElement();
+ if (next.getModelElement().equals(semanticElement)) {
+ if (hint.equals(childView.getType())) {
+ perfectMatch.add(childView);
+ // actually, can stop iteration over view children here, but
+ // may want to use not the first view but last one as a 'real' match (the way original CEP does
+ // with its trick with viewToSemanticMap inside #cleanCanonicalSemanticChildren
+ }
+ }
+ }
+ if (perfectMatch.size() > 0) {
+ descriptorsIterator.remove(); // precise match found no need to create anything for the NodeDescriptor
+ // use only one view (first or last?), keep rest as orphaned for further consideration
+ knownViewChildren.remove(perfectMatch.getFirst());
+ }
+ }
+ // those left in knownViewChildren are subject to removal - they are our diagram elements we didn't find match to,
+ // or those we have potential matches to, and thus need to be recreated, preserving size/location information.
+ orphaned.addAll(knownViewChildren);
+ //
+ ArrayList<CreateViewRequest.ViewDescriptor> viewDescriptors = new ArrayList<CreateViewRequest.ViewDescriptor>(
+ childDescriptors.size());
+ for (ComrelNodeDescriptor next : childDescriptors) {
+ String hint = ComrelVisualIDRegistry.getType(next.getVisualID());
+ IAdaptable elementAdapter = new CanonicalElementAdapter(
+ next.getModelElement(), hint);
+ CreateViewRequest.ViewDescriptor descriptor = new CreateViewRequest.ViewDescriptor(
+ elementAdapter, Node.class, hint, ViewUtil.APPEND, false,
+ host().getDiagramPreferencesHint());
+ viewDescriptors.add(descriptor);
+ }
+
+ boolean changed = deleteViews(orphaned.iterator());
+ //
+ CreateViewRequest request = getCreateViewRequest(viewDescriptors);
+ Command cmd = getCreateViewCommand(request);
+ if (cmd != null && cmd.canExecute()) {
+ SetViewMutabilityCommand.makeMutable(
+ new EObjectAdapter(host().getNotationView())).execute();
+ executeCommand(cmd);
+ @SuppressWarnings("unchecked")
+ List<IAdaptable> nl = (List<IAdaptable>) request.getNewObject();
+ createdViews.addAll(nl);
+ }
+ if (changed || createdViews.size() > 0) {
+ postProcessRefreshSemantic(createdViews);
+ }
+ if (createdViews.size() > 1) {
+ // perform a layout of the container
+ DeferredLayoutCommand layoutCmd = new DeferredLayoutCommand(host()
+ .getEditingDomain(), createdViews, host());
+ executeCommand(new ICommandProxy(layoutCmd));
+ }
+
+ makeViewsImmutable(createdViews);
+ }
+}
diff --git a/org.eclipse.emf.refactor.comrel.diagram/src/comrel/diagram/edit/policies/ConditionalUnitConditionalUnitElseCompartment2ItemSemanticEditPolicy.java b/org.eclipse.emf.refactor.comrel.diagram/src/comrel/diagram/edit/policies/ConditionalUnitConditionalUnitElseCompartment2ItemSemanticEditPolicy.java
new file mode 100644
index 0000000..b6069b6
--- /dev/null
+++ b/org.eclipse.emf.refactor.comrel.diagram/src/comrel/diagram/edit/policies/ConditionalUnitConditionalUnitElseCompartment2ItemSemanticEditPolicy.java
@@ -0,0 +1,55 @@
+/*
+ *
+ */
+package comrel.diagram.edit.policies;
+
+import org.eclipse.gef.commands.Command;
+import org.eclipse.gmf.runtime.emf.type.core.requests.CreateElementRequest;
+
+import comrel.diagram.edit.commands.AtomicUnit7CreateCommand;
+import comrel.diagram.edit.commands.CartesianQueuedUnit7CreateCommand;
+import comrel.diagram.edit.commands.ConditionalUnit7CreateCommand;
+import comrel.diagram.edit.commands.ParallelQueuedUnit7CreateCommand;
+import comrel.diagram.edit.commands.SequentialUnit7CreateCommand;
+import comrel.diagram.edit.commands.SingleQueuedUnit7CreateCommand;
+import comrel.diagram.providers.ComrelElementTypes;
+
+/**
+ * @generated
+ */
+public class ConditionalUnitConditionalUnitElseCompartment2ItemSemanticEditPolicy
+ extends ComrelBaseItemSemanticEditPolicy {
+
+ /**
+ * @generated
+ */
+ public ConditionalUnitConditionalUnitElseCompartment2ItemSemanticEditPolicy() {
+ super(ComrelElementTypes.ConditionalUnit_3046);
+ }
+
+ /**
+ * @generated
+ */
+ protected Command getCreateCommand(CreateElementRequest req) {
+ if (ComrelElementTypes.CartesianQueuedUnit_3047 == req.getElementType()) {
+ return getGEFWrapper(new CartesianQueuedUnit7CreateCommand(req));
+ }
+ if (ComrelElementTypes.ParallelQueuedUnit_3048 == req.getElementType()) {
+ return getGEFWrapper(new ParallelQueuedUnit7CreateCommand(req));
+ }
+ if (ComrelElementTypes.SingleQueuedUnit_3067 == req.getElementType()) {
+ return getGEFWrapper(new SingleQueuedUnit7CreateCommand(req));
+ }
+ if (ComrelElementTypes.SequentialUnit_3073 == req.getElementType()) {
+ return getGEFWrapper(new SequentialUnit7CreateCommand(req));
+ }
+ if (ComrelElementTypes.ConditionalUnit_3075 == req.getElementType()) {
+ return getGEFWrapper(new ConditionalUnit7CreateCommand(req));
+ }
+ if (ComrelElementTypes.AtomicUnit_3078 == req.getElementType()) {
+ return getGEFWrapper(new AtomicUnit7CreateCommand(req));
+ }
+ return super.getCreateCommand(req);
+ }
+
+}
diff --git a/org.eclipse.emf.refactor.comrel.diagram/src/comrel/diagram/edit/policies/ConditionalUnitConditionalUnitElseCompartment3CanonicalEditPolicy.java b/org.eclipse.emf.refactor.comrel.diagram/src/comrel/diagram/edit/policies/ConditionalUnitConditionalUnitElseCompartment3CanonicalEditPolicy.java
new file mode 100644
index 0000000..72f96d6
--- /dev/null
+++ b/org.eclipse.emf.refactor.comrel.diagram/src/comrel/diagram/edit/policies/ConditionalUnitConditionalUnitElseCompartment3CanonicalEditPolicy.java
@@ -0,0 +1,177 @@
+/*
+ *
+ */
+package comrel.diagram.edit.policies;
+
+import java.util.ArrayList;
+import java.util.Collection;
+import java.util.Iterator;
+import java.util.LinkedList;
+import java.util.List;
+
+import org.eclipse.core.runtime.IAdaptable;
+import org.eclipse.emf.ecore.EObject;
+import org.eclipse.emf.ecore.EStructuralFeature;
+import org.eclipse.gef.commands.Command;
+import org.eclipse.gmf.runtime.diagram.core.util.ViewUtil;
+import org.eclipse.gmf.runtime.diagram.ui.commands.DeferredLayoutCommand;
+import org.eclipse.gmf.runtime.diagram.ui.commands.ICommandProxy;
+import org.eclipse.gmf.runtime.diagram.ui.commands.SetViewMutabilityCommand;
+import org.eclipse.gmf.runtime.diagram.ui.editpolicies.CanonicalEditPolicy;
+import org.eclipse.gmf.runtime.diagram.ui.requests.CreateViewRequest;
+import org.eclipse.gmf.runtime.emf.core.util.EObjectAdapter;
+import org.eclipse.gmf.runtime.notation.Node;
+import org.eclipse.gmf.runtime.notation.View;
+
+import comrel.ComrelPackage;
+import comrel.diagram.edit.parts.AtomicUnit7EditPart;
+import comrel.diagram.edit.parts.CartesianQueuedUnit7EditPart;
+import comrel.diagram.edit.parts.ConditionalUnit7EditPart;
+import comrel.diagram.edit.parts.ParallelQueuedUnit7EditPart;
+import comrel.diagram.edit.parts.SequentialUnit7EditPart;
+import comrel.diagram.edit.parts.SingleQueuedUnit7EditPart;
+import comrel.diagram.part.ComrelDiagramUpdater;
+import comrel.diagram.part.ComrelNodeDescriptor;
+import comrel.diagram.part.ComrelVisualIDRegistry;
+
+/**
+ * @generated
+ */
+public class ConditionalUnitConditionalUnitElseCompartment3CanonicalEditPolicy
+ extends CanonicalEditPolicy {
+
+ /**
+ * @generated
+ */
+ protected EStructuralFeature getFeatureToSynchronize() {
+ return ComrelPackage.eINSTANCE.getConditionalUnit_Else();
+ }
+
+ /**
+ * @generated
+ */
+ @SuppressWarnings("rawtypes")
+ protected List getSemanticChildrenList() {
+ View viewObject = (View) getHost().getModel();
+ LinkedList<EObject> result = new LinkedList<EObject>();
+ List<ComrelNodeDescriptor> childDescriptors = ComrelDiagramUpdater
+ .getConditionalUnitConditionalUnitElseCompartment_7054SemanticChildren(viewObject);
+ for (ComrelNodeDescriptor d : childDescriptors) {
+ result.add(d.getModelElement());
+ }
+ return result;
+ }
+
+ /**
+ * @generated
+ */
+ protected boolean isOrphaned(Collection<EObject> semanticChildren,
+ final View view) {
+ return isMyDiagramElement(view)
+ && !semanticChildren.contains(view.getElement());
+ }
+
+ /**
+ * @generated
+ */
+ private boolean isMyDiagramElement(View view) {
+ int visualID = ComrelVisualIDRegistry.getVisualID(view);
+ switch (visualID) {
+ case CartesianQueuedUnit7EditPart.VISUAL_ID:
+ case ParallelQueuedUnit7EditPart.VISUAL_ID:
+ case SingleQueuedUnit7EditPart.VISUAL_ID:
+ case SequentialUnit7EditPart.VISUAL_ID:
+ case ConditionalUnit7EditPart.VISUAL_ID:
+ case AtomicUnit7EditPart.VISUAL_ID:
+ return true;
+ }
+ return false;
+ }
+
+ /**
+ * @generated
+ */
+ protected void refreshSemantic() {
+ if (resolveSemanticElement() == null) {
+ return;
+ }
+ LinkedList<IAdaptable> createdViews = new LinkedList<IAdaptable>();
+ List<ComrelNodeDescriptor> childDescriptors = ComrelDiagramUpdater
+ .getConditionalUnitConditionalUnitElseCompartment_7054SemanticChildren((View) getHost()
+ .getModel());
+ LinkedList<View> orphaned = new LinkedList<View>();
+ // we care to check only views we recognize as ours
+ LinkedList<View> knownViewChildren = new LinkedList<View>();
+ for (View v : getViewChildren()) {
+ if (isMyDiagramElement(v)) {
+ knownViewChildren.add(v);
+ }
+ }
+ // alternative to #cleanCanonicalSemanticChildren(getViewChildren(), semanticChildren)
+ //
+ // iteration happens over list of desired semantic elements, trying to find best matching View, while original CEP
+ // iterates views, potentially losing view (size/bounds) information - i.e. if there are few views to reference same EObject, only last one
+ // to answer isOrphaned == true will be used for the domain element representation, see #cleanCanonicalSemanticChildren()
+ for (Iterator<ComrelNodeDescriptor> descriptorsIterator = childDescriptors
+ .iterator(); descriptorsIterator.hasNext();) {
+ ComrelNodeDescriptor next = descriptorsIterator.next();
+ String hint = ComrelVisualIDRegistry.getType(next.getVisualID());
+ LinkedList<View> perfectMatch = new LinkedList<View>(); // both semanticElement and hint match that of NodeDescriptor
+ for (View childView : getViewChildren()) {
+ EObject semanticElement = childView.getElement();
+ if (next.getModelElement().equals(semanticElement)) {
+ if (hint.equals(childView.getType())) {
+ perfectMatch.add(childView);
+ // actually, can stop iteration over view children here, but
+ // may want to use not the first view but last one as a 'real' match (the way original CEP does
+ // with its trick with viewToSemanticMap inside #cleanCanonicalSemanticChildren
+ }
+ }
+ }
+ if (perfectMatch.size() > 0) {
+ descriptorsIterator.remove(); // precise match found no need to create anything for the NodeDescriptor
+ // use only one view (first or last?), keep rest as orphaned for further consideration
+ knownViewChildren.remove(perfectMatch.getFirst());
+ }
+ }
+ // those left in knownViewChildren are subject to removal - they are our diagram elements we didn't find match to,
+ // or those we have potential matches to, and thus need to be recreated, preserving size/location information.
+ orphaned.addAll(knownViewChildren);
+ //
+ ArrayList<CreateViewRequest.ViewDescriptor> viewDescriptors = new ArrayList<CreateViewRequest.ViewDescriptor>(
+ childDescriptors.size());
+ for (ComrelNodeDescriptor next : childDescriptors) {
+ String hint = ComrelVisualIDRegistry.getType(next.getVisualID());
+ IAdaptable elementAdapter = new CanonicalElementAdapter(
+ next.getModelElement(), hint);
+ CreateViewRequest.ViewDescriptor descriptor = new CreateViewRequest.ViewDescriptor(
+ elementAdapter, Node.class, hint, ViewUtil.APPEND, false,
+ host().getDiagramPreferencesHint());
+ viewDescriptors.add(descriptor);
+ }
+
+ boolean changed = deleteViews(orphaned.iterator());
+ //
+ CreateViewRequest request = getCreateViewRequest(viewDescriptors);
+ Command cmd = getCreateViewCommand(request);
+ if (cmd != null && cmd.canExecute()) {
+ SetViewMutabilityCommand.makeMutable(
+ new EObjectAdapter(host().getNotationView())).execute();
+ executeCommand(cmd);
+ @SuppressWarnings("unchecked")
+ List<IAdaptable> nl = (List<IAdaptable>) request.getNewObject();
+ createdViews.addAll(nl);
+ }
+ if (changed || createdViews.size() > 0) {
+ postProcessRefreshSemantic(createdViews);
+ }
+ if (createdViews.size() > 1) {
+ // perform a layout of the container
+ DeferredLayoutCommand layoutCmd = new DeferredLayoutCommand(host()
+ .getEditingDomain(), createdViews, host());
+ executeCommand(new ICommandProxy(layoutCmd));
+ }
+
+ makeViewsImmutable(createdViews);
+ }
+}
diff --git a/org.eclipse.emf.refactor.comrel.diagram/src/comrel/diagram/edit/policies/ConditionalUnitConditionalUnitElseCompartment3ItemSemanticEditPolicy.java b/org.eclipse.emf.refactor.comrel.diagram/src/comrel/diagram/edit/policies/ConditionalUnitConditionalUnitElseCompartment3ItemSemanticEditPolicy.java
new file mode 100644
index 0000000..64bb6ec
--- /dev/null
+++ b/org.eclipse.emf.refactor.comrel.diagram/src/comrel/diagram/edit/policies/ConditionalUnitConditionalUnitElseCompartment3ItemSemanticEditPolicy.java
@@ -0,0 +1,55 @@
+/*
+ *
+ */
+package comrel.diagram.edit.policies;
+
+import org.eclipse.gef.commands.Command;
+import org.eclipse.gmf.runtime.emf.type.core.requests.CreateElementRequest;
+
+import comrel.diagram.edit.commands.AtomicUnit7CreateCommand;
+import comrel.diagram.edit.commands.CartesianQueuedUnit7CreateCommand;
+import comrel.diagram.edit.commands.ConditionalUnit7CreateCommand;
+import comrel.diagram.edit.commands.ParallelQueuedUnit7CreateCommand;
+import comrel.diagram.edit.commands.SequentialUnit7CreateCommand;
+import comrel.diagram.edit.commands.SingleQueuedUnit7CreateCommand;
+import comrel.diagram.providers.ComrelElementTypes;
+
+/**
+ * @generated
+ */
+public class ConditionalUnitConditionalUnitElseCompartment3ItemSemanticEditPolicy
+ extends ComrelBaseItemSemanticEditPolicy {
+
+ /**
+ * @generated
+ */
+ public ConditionalUnitConditionalUnitElseCompartment3ItemSemanticEditPolicy() {
+ super(ComrelElementTypes.ConditionalUnit_3066);
+ }
+
+ /**
+ * @generated
+ */
+ protected Command getCreateCommand(CreateElementRequest req) {
+ if (ComrelElementTypes.CartesianQueuedUnit_3047 == req.getElementType()) {
+ return getGEFWrapper(new CartesianQueuedUnit7CreateCommand(req));
+ }
+ if (ComrelElementTypes.ParallelQueuedUnit_3048 == req.getElementType()) {
+ return getGEFWrapper(new ParallelQueuedUnit7CreateCommand(req));
+ }
+ if (ComrelElementTypes.SingleQueuedUnit_3067 == req.getElementType()) {
+ return getGEFWrapper(new SingleQueuedUnit7CreateCommand(req));
+ }
+ if (ComrelElementTypes.SequentialUnit_3073 == req.getElementType()) {
+ return getGEFWrapper(new SequentialUnit7CreateCommand(req));
+ }
+ if (ComrelElementTypes.ConditionalUnit_3075 == req.getElementType()) {
+ return getGEFWrapper(new ConditionalUnit7CreateCommand(req));
+ }
+ if (ComrelElementTypes.AtomicUnit_3078 == req.getElementType()) {
+ return getGEFWrapper(new AtomicUnit7CreateCommand(req));
+ }
+ return super.getCreateCommand(req);
+ }
+
+}
diff --git a/org.eclipse.emf.refactor.comrel.diagram/src/comrel/diagram/edit/policies/ConditionalUnitConditionalUnitElseCompartment4CanonicalEditPolicy.java b/org.eclipse.emf.refactor.comrel.diagram/src/comrel/diagram/edit/policies/ConditionalUnitConditionalUnitElseCompartment4CanonicalEditPolicy.java
new file mode 100644
index 0000000..5fa5764
--- /dev/null
+++ b/org.eclipse.emf.refactor.comrel.diagram/src/comrel/diagram/edit/policies/ConditionalUnitConditionalUnitElseCompartment4CanonicalEditPolicy.java
@@ -0,0 +1,177 @@
+/*
+ *
+ */
+package comrel.diagram.edit.policies;
+
+import java.util.ArrayList;
+import java.util.Collection;
+import java.util.Iterator;
+import java.util.LinkedList;
+import java.util.List;
+
+import org.eclipse.core.runtime.IAdaptable;
+import org.eclipse.emf.ecore.EObject;
+import org.eclipse.emf.ecore.EStructuralFeature;
+import org.eclipse.gef.commands.Command;
+import org.eclipse.gmf.runtime.diagram.core.util.ViewUtil;
+import org.eclipse.gmf.runtime.diagram.ui.commands.DeferredLayoutCommand;
+import org.eclipse.gmf.runtime.diagram.ui.commands.ICommandProxy;
+import org.eclipse.gmf.runtime.diagram.ui.commands.SetViewMutabilityCommand;
+import org.eclipse.gmf.runtime.diagram.ui.editpolicies.CanonicalEditPolicy;
+import org.eclipse.gmf.runtime.diagram.ui.requests.CreateViewRequest;
+import org.eclipse.gmf.runtime.emf.core.util.EObjectAdapter;
+import org.eclipse.gmf.runtime.notation.Node;
+import org.eclipse.gmf.runtime.notation.View;
+
+import comrel.ComrelPackage;
+import comrel.diagram.edit.parts.AtomicUnit7EditPart;
+import comrel.diagram.edit.parts.CartesianQueuedUnit7EditPart;
+import comrel.diagram.edit.parts.ConditionalUnit7EditPart;
+import comrel.diagram.edit.parts.ParallelQueuedUnit7EditPart;
+import comrel.diagram.edit.parts.SequentialUnit7EditPart;
+import comrel.diagram.edit.parts.SingleQueuedUnit7EditPart;
+import comrel.diagram.part.ComrelDiagramUpdater;
+import comrel.diagram.part.ComrelNodeDescriptor;
+import comrel.diagram.part.ComrelVisualIDRegistry;
+
+/**
+ * @generated
+ */
+public class ConditionalUnitConditionalUnitElseCompartment4CanonicalEditPolicy
+ extends CanonicalEditPolicy {
+
+ /**
+ * @generated
+ */
+ protected EStructuralFeature getFeatureToSynchronize() {
+ return ComrelPackage.eINSTANCE.getConditionalUnit_Else();
+ }
+
+ /**
+ * @generated
+ */
+ @SuppressWarnings("rawtypes")
+ protected List getSemanticChildrenList() {
+ View viewObject = (View) getHost().getModel();
+ LinkedList<EObject> result = new LinkedList<EObject>();
+ List<ComrelNodeDescriptor> childDescriptors = ComrelDiagramUpdater
+ .getConditionalUnitConditionalUnitElseCompartment_7064SemanticChildren(viewObject);
+ for (ComrelNodeDescriptor d : childDescriptors) {
+ result.add(d.getModelElement());
+ }
+ return result;
+ }
+
+ /**
+ * @generated
+ */
+ protected boolean isOrphaned(Collection<EObject> semanticChildren,
+ final View view) {
+ return isMyDiagramElement(view)
+ && !semanticChildren.contains(view.getElement());
+ }
+
+ /**
+ * @generated
+ */
+ private boolean isMyDiagramElement(View view) {
+ int visualID = ComrelVisualIDRegistry.getVisualID(view);
+ switch (visualID) {
+ case CartesianQueuedUnit7EditPart.VISUAL_ID:
+ case ParallelQueuedUnit7EditPart.VISUAL_ID:
+ case SingleQueuedUnit7EditPart.VISUAL_ID:
+ case SequentialUnit7EditPart.VISUAL_ID:
+ case ConditionalUnit7EditPart.VISUAL_ID:
+ case AtomicUnit7EditPart.VISUAL_ID:
+ return true;
+ }
+ return false;
+ }
+
+ /**
+ * @generated
+ */
+ protected void refreshSemantic() {
+ if (resolveSemanticElement() == null) {
+ return;
+ }
+ LinkedList<IAdaptable> createdViews = new LinkedList<IAdaptable>();
+ List<ComrelNodeDescriptor> childDescriptors = ComrelDiagramUpdater
+ .getConditionalUnitConditionalUnitElseCompartment_7064SemanticChildren((View) getHost()
+ .getModel());
+ LinkedList<View> orphaned = new LinkedList<View>();
+ // we care to check only views we recognize as ours
+ LinkedList<View> knownViewChildren = new LinkedList<View>();
+ for (View v : getViewChildren()) {
+ if (isMyDiagramElement(v)) {
+ knownViewChildren.add(v);
+ }
+ }
+ // alternative to #cleanCanonicalSemanticChildren(getViewChildren(), semanticChildren)
+ //
+ // iteration happens over list of desired semantic elements, trying to find best matching View, while original CEP
+ // iterates views, potentially losing view (size/bounds) information - i.e. if there are few views to reference same EObject, only last one
+ // to answer isOrphaned == true will be used for the domain element representation, see #cleanCanonicalSemanticChildren()
+ for (Iterator<ComrelNodeDescriptor> descriptorsIterator = childDescriptors
+ .iterator(); descriptorsIterator.hasNext();) {
+ ComrelNodeDescriptor next = descriptorsIterator.next();
+ String hint = ComrelVisualIDRegistry.getType(next.getVisualID());
+ LinkedList<View> perfectMatch = new LinkedList<View>(); // both semanticElement and hint match that of NodeDescriptor
+ for (View childView : getViewChildren()) {
+ EObject semanticElement = childView.getElement();
+ if (next.getModelElement().equals(semanticElement)) {
+ if (hint.equals(childView.getType())) {
+ perfectMatch.add(childView);
+ // actually, can stop iteration over view children here, but
+ // may want to use not the first view but last one as a 'real' match (the way original CEP does
+ // with its trick with viewToSemanticMap inside #cleanCanonicalSemanticChildren
+ }
+ }
+ }
+ if (perfectMatch.size() > 0) {
+ descriptorsIterator.remove(); // precise match found no need to create anything for the NodeDescriptor
+ // use only one view (first or last?), keep rest as orphaned for further consideration
+ knownViewChildren.remove(perfectMatch.getFirst());
+ }
+ }
+ // those left in knownViewChildren are subject to removal - they are our diagram elements we didn't find match to,
+ // or those we have potential matches to, and thus need to be recreated, preserving size/location information.
+ orphaned.addAll(knownViewChildren);
+ //
+ ArrayList<CreateViewRequest.ViewDescriptor> viewDescriptors = new ArrayList<CreateViewRequest.ViewDescriptor>(
+ childDescriptors.size());
+ for (ComrelNodeDescriptor next : childDescriptors) {
+ String hint = ComrelVisualIDRegistry.getType(next.getVisualID());
+ IAdaptable elementAdapter = new CanonicalElementAdapter(
+ next.getModelElement(), hint);
+ CreateViewRequest.ViewDescriptor descriptor = new CreateViewRequest.ViewDescriptor(
+ elementAdapter, Node.class, hint, ViewUtil.APPEND, false,
+ host().getDiagramPreferencesHint());
+ viewDescriptors.add(descriptor);
+ }
+
+ boolean changed = deleteViews(orphaned.iterator());
+ //
+ CreateViewRequest request = getCreateViewRequest(viewDescriptors);
+ Command cmd = getCreateViewCommand(request);
+ if (cmd != null && cmd.canExecute()) {
+ SetViewMutabilityCommand.makeMutable(
+ new EObjectAdapter(host().getNotationView())).execute();
+ executeCommand(cmd);
+ @SuppressWarnings("unchecked")
+ List<IAdaptable> nl = (List<IAdaptable>) request.getNewObject();
+ createdViews.addAll(nl);
+ }
+ if (changed || createdViews.size() > 0) {
+ postProcessRefreshSemantic(createdViews);
+ }
+ if (createdViews.size() > 1) {
+ // perform a layout of the container
+ DeferredLayoutCommand layoutCmd = new DeferredLayoutCommand(host()
+ .getEditingDomain(), createdViews, host());
+ executeCommand(new ICommandProxy(layoutCmd));
+ }
+
+ makeViewsImmutable(createdViews);
+ }
+}
diff --git a/org.eclipse.emf.refactor.comrel.diagram/src/comrel/diagram/edit/policies/ConditionalUnitConditionalUnitElseCompartment4ItemSemanticEditPolicy.java b/org.eclipse.emf.refactor.comrel.diagram/src/comrel/diagram/edit/policies/ConditionalUnitConditionalUnitElseCompartment4ItemSemanticEditPolicy.java
new file mode 100644
index 0000000..756c5b2
--- /dev/null
+++ b/org.eclipse.emf.refactor.comrel.diagram/src/comrel/diagram/edit/policies/ConditionalUnitConditionalUnitElseCompartment4ItemSemanticEditPolicy.java
@@ -0,0 +1,55 @@
+/*
+ *
+ */
+package comrel.diagram.edit.policies;
+
+import org.eclipse.gef.commands.Command;
+import org.eclipse.gmf.runtime.emf.type.core.requests.CreateElementRequest;
+
+import comrel.diagram.edit.commands.AtomicUnit7CreateCommand;
+import comrel.diagram.edit.commands.CartesianQueuedUnit7CreateCommand;
+import comrel.diagram.edit.commands.ConditionalUnit7CreateCommand;
+import comrel.diagram.edit.commands.ParallelQueuedUnit7CreateCommand;
+import comrel.diagram.edit.commands.SequentialUnit7CreateCommand;
+import comrel.diagram.edit.commands.SingleQueuedUnit7CreateCommand;
+import comrel.diagram.providers.ComrelElementTypes;
+
+/**
+ * @generated
+ */
+public class ConditionalUnitConditionalUnitElseCompartment4ItemSemanticEditPolicy
+ extends ComrelBaseItemSemanticEditPolicy {
+
+ /**
+ * @generated
+ */
+ public ConditionalUnitConditionalUnitElseCompartment4ItemSemanticEditPolicy() {
+ super(ComrelElementTypes.ConditionalUnit_3071);
+ }
+
+ /**
+ * @generated
+ */
+ protected Command getCreateCommand(CreateElementRequest req) {
+ if (ComrelElementTypes.CartesianQueuedUnit_3047 == req.getElementType()) {
+ return getGEFWrapper(new CartesianQueuedUnit7CreateCommand(req));
+ }
+ if (ComrelElementTypes.ParallelQueuedUnit_3048 == req.getElementType()) {
+ return getGEFWrapper(new ParallelQueuedUnit7CreateCommand(req));
+ }
+ if (ComrelElementTypes.SingleQueuedUnit_3067 == req.getElementType()) {
+ return getGEFWrapper(new SingleQueuedUnit7CreateCommand(req));
+ }
+ if (ComrelElementTypes.SequentialUnit_3073 == req.getElementType()) {
+ return getGEFWrapper(new SequentialUnit7CreateCommand(req));
+ }
+ if (ComrelElementTypes.ConditionalUnit_3075 == req.getElementType()) {
+ return getGEFWrapper(new ConditionalUnit7CreateCommand(req));
+ }
+ if (ComrelElementTypes.AtomicUnit_3078 == req.getElementType()) {
+ return getGEFWrapper(new AtomicUnit7CreateCommand(req));
+ }
+ return super.getCreateCommand(req);
+ }
+
+}
diff --git a/org.eclipse.emf.refactor.comrel.diagram/src/comrel/diagram/edit/policies/ConditionalUnitConditionalUnitElseCompartment5CanonicalEditPolicy.java b/org.eclipse.emf.refactor.comrel.diagram/src/comrel/diagram/edit/policies/ConditionalUnitConditionalUnitElseCompartment5CanonicalEditPolicy.java
new file mode 100644
index 0000000..d18ccfb
--- /dev/null
+++ b/org.eclipse.emf.refactor.comrel.diagram/src/comrel/diagram/edit/policies/ConditionalUnitConditionalUnitElseCompartment5CanonicalEditPolicy.java
@@ -0,0 +1,177 @@
+/*
+ *
+ */
+package comrel.diagram.edit.policies;
+
+import java.util.ArrayList;
+import java.util.Collection;
+import java.util.Iterator;
+import java.util.LinkedList;
+import java.util.List;
+
+import org.eclipse.core.runtime.IAdaptable;
+import org.eclipse.emf.ecore.EObject;
+import org.eclipse.emf.ecore.EStructuralFeature;
+import org.eclipse.gef.commands.Command;
+import org.eclipse.gmf.runtime.diagram.core.util.ViewUtil;
+import org.eclipse.gmf.runtime.diagram.ui.commands.DeferredLayoutCommand;
+import org.eclipse.gmf.runtime.diagram.ui.commands.ICommandProxy;
+import org.eclipse.gmf.runtime.diagram.ui.commands.SetViewMutabilityCommand;
+import org.eclipse.gmf.runtime.diagram.ui.editpolicies.CanonicalEditPolicy;
+import org.eclipse.gmf.runtime.diagram.ui.requests.CreateViewRequest;
+import org.eclipse.gmf.runtime.emf.core.util.EObjectAdapter;
+import org.eclipse.gmf.runtime.notation.Node;
+import org.eclipse.gmf.runtime.notation.View;
+
+import comrel.ComrelPackage;
+import comrel.diagram.edit.parts.AtomicUnit7EditPart;
+import comrel.diagram.edit.parts.CartesianQueuedUnit7EditPart;
+import comrel.diagram.edit.parts.ConditionalUnit7EditPart;
+import comrel.diagram.edit.parts.ParallelQueuedUnit7EditPart;
+import comrel.diagram.edit.parts.SequentialUnit7EditPart;
+import comrel.diagram.edit.parts.SingleQueuedUnit7EditPart;
+import comrel.diagram.part.ComrelDiagramUpdater;
+import comrel.diagram.part.ComrelNodeDescriptor;
+import comrel.diagram.part.ComrelVisualIDRegistry;
+
+/**
+ * @generated
+ */
+public class ConditionalUnitConditionalUnitElseCompartment5CanonicalEditPolicy
+ extends CanonicalEditPolicy {
+
+ /**
+ * @generated
+ */
+ protected EStructuralFeature getFeatureToSynchronize() {
+ return ComrelPackage.eINSTANCE.getConditionalUnit_Else();
+ }
+
+ /**
+ * @generated
+ */
+ @SuppressWarnings("rawtypes")
+ protected List getSemanticChildrenList() {
+ View viewObject = (View) getHost().getModel();
+ LinkedList<EObject> result = new LinkedList<EObject>();
+ List<ComrelNodeDescriptor> childDescriptors = ComrelDiagramUpdater
+ .getConditionalUnitConditionalUnitElseCompartment_7068SemanticChildren(viewObject);
+ for (ComrelNodeDescriptor d : childDescriptors) {
+ result.add(d.getModelElement());
+ }
+ return result;
+ }
+
+ /**
+ * @generated
+ */
+ protected boolean isOrphaned(Collection<EObject> semanticChildren,
+ final View view) {
+ return isMyDiagramElement(view)
+ && !semanticChildren.contains(view.getElement());
+ }
+
+ /**
+ * @generated
+ */
+ private boolean isMyDiagramElement(View view) {
+ int visualID = ComrelVisualIDRegistry.getVisualID(view);
+ switch (visualID) {
+ case CartesianQueuedUnit7EditPart.VISUAL_ID:
+ case ParallelQueuedUnit7EditPart.VISUAL_ID:
+ case SingleQueuedUnit7EditPart.VISUAL_ID:
+ case SequentialUnit7EditPart.VISUAL_ID:
+ case ConditionalUnit7EditPart.VISUAL_ID:
+ case AtomicUnit7EditPart.VISUAL_ID:
+ return true;
+ }
+ return false;
+ }
+
+ /**
+ * @generated
+ */
+ protected void refreshSemantic() {
+ if (resolveSemanticElement() == null) {
+ return;
+ }
+ LinkedList<IAdaptable> createdViews = new LinkedList<IAdaptable>();
+ List<ComrelNodeDescriptor> childDescriptors = ComrelDiagramUpdater
+ .getConditionalUnitConditionalUnitElseCompartment_7068SemanticChildren((View) getHost()
+ .getModel());
+ LinkedList<View> orphaned = new LinkedList<View>();
+ // we care to check only views we recognize as ours
+ LinkedList<View> knownViewChildren = new LinkedList<View>();
+ for (View v : getViewChildren()) {
+ if (isMyDiagramElement(v)) {
+ knownViewChildren.add(v);
+ }
+ }
+ // alternative to #cleanCanonicalSemanticChildren(getViewChildren(), semanticChildren)
+ //
+ // iteration happens over list of desired semantic elements, trying to find best matching View, while original CEP
+ // iterates views, potentially losing view (size/bounds) information - i.e. if there are few views to reference same EObject, only last one
+ // to answer isOrphaned == true will be used for the domain element representation, see #cleanCanonicalSemanticChildren()
+ for (Iterator<ComrelNodeDescriptor> descriptorsIterator = childDescriptors
+ .iterator(); descriptorsIterator.hasNext();) {
+ ComrelNodeDescriptor next = descriptorsIterator.next();
+ String hint = ComrelVisualIDRegistry.getType(next.getVisualID());
+ LinkedList<View> perfectMatch = new LinkedList<View>(); // both semanticElement and hint match that of NodeDescriptor
+ for (View childView : getViewChildren()) {
+ EObject semanticElement = childView.getElement();
+ if (next.getModelElement().equals(semanticElement)) {
+ if (hint.equals(childView.getType())) {
+ perfectMatch.add(childView);
+ // actually, can stop iteration over view children here, but
+ // may want to use not the first view but last one as a 'real' match (the way original CEP does
+ // with its trick with viewToSemanticMap inside #cleanCanonicalSemanticChildren
+ }
+ }
+ }
+ if (perfectMatch.size() > 0) {
+ descriptorsIterator.remove(); // precise match found no need to create anything for the NodeDescriptor
+ // use only one view (first or last?), keep rest as orphaned for further consideration
+ knownViewChildren.remove(perfectMatch.getFirst());
+ }
+ }
+ // those left in knownViewChildren are subject to removal - they are our diagram elements we didn't find match to,
+ // or those we have potential matches to, and thus need to be recreated, preserving size/location information.
+ orphaned.addAll(knownViewChildren);
+ //
+ ArrayList<CreateViewRequest.ViewDescriptor> viewDescriptors = new ArrayList<CreateViewRequest.ViewDescriptor>(
+ childDescriptors.size());
+ for (ComrelNodeDescriptor next : childDescriptors) {
+ String hint = ComrelVisualIDRegistry.getType(next.getVisualID());
+ IAdaptable elementAdapter = new CanonicalElementAdapter(
+ next.getModelElement(), hint);
+ CreateViewRequest.ViewDescriptor descriptor = new CreateViewRequest.ViewDescriptor(
+ elementAdapter, Node.class, hint, ViewUtil.APPEND, false,
+ host().getDiagramPreferencesHint());
+ viewDescriptors.add(descriptor);
+ }
+
+ boolean changed = deleteViews(orphaned.iterator());
+ //
+ CreateViewRequest request = getCreateViewRequest(viewDescriptors);
+ Command cmd = getCreateViewCommand(request);
+ if (cmd != null && cmd.canExecute()) {
+ SetViewMutabilityCommand.makeMutable(
+ new EObjectAdapter(host().getNotationView())).execute();
+ executeCommand(cmd);
+ @SuppressWarnings("unchecked")
+ List<IAdaptable> nl = (List<IAdaptable>) request.getNewObject();
+ createdViews.addAll(nl);
+ }
+ if (changed || createdViews.size() > 0) {
+ postProcessRefreshSemantic(createdViews);
+ }
+ if (createdViews.size() > 1) {
+ // perform a layout of the container
+ DeferredLayoutCommand layoutCmd = new DeferredLayoutCommand(host()
+ .getEditingDomain(), createdViews, host());
+ executeCommand(new ICommandProxy(layoutCmd));
+ }
+
+ makeViewsImmutable(createdViews);
+ }
+}
diff --git a/org.eclipse.emf.refactor.comrel.diagram/src/comrel/diagram/edit/policies/ConditionalUnitConditionalUnitElseCompartment5ItemSemanticEditPolicy.java b/org.eclipse.emf.refactor.comrel.diagram/src/comrel/diagram/edit/policies/ConditionalUnitConditionalUnitElseCompartment5ItemSemanticEditPolicy.java
new file mode 100644
index 0000000..4a60d6e
--- /dev/null
+++ b/org.eclipse.emf.refactor.comrel.diagram/src/comrel/diagram/edit/policies/ConditionalUnitConditionalUnitElseCompartment5ItemSemanticEditPolicy.java
@@ -0,0 +1,55 @@
+/*
+ *
+ */
+package comrel.diagram.edit.policies;
+
+import org.eclipse.gef.commands.Command;
+import org.eclipse.gmf.runtime.emf.type.core.requests.CreateElementRequest;
+
+import comrel.diagram.edit.commands.AtomicUnit7CreateCommand;
+import comrel.diagram.edit.commands.CartesianQueuedUnit7CreateCommand;
+import comrel.diagram.edit.commands.ConditionalUnit7CreateCommand;
+import comrel.diagram.edit.commands.ParallelQueuedUnit7CreateCommand;
+import comrel.diagram.edit.commands.SequentialUnit7CreateCommand;
+import comrel.diagram.edit.commands.SingleQueuedUnit7CreateCommand;
+import comrel.diagram.providers.ComrelElementTypes;
+
+/**
+ * @generated
+ */
+public class ConditionalUnitConditionalUnitElseCompartment5ItemSemanticEditPolicy
+ extends ComrelBaseItemSemanticEditPolicy {
+
+ /**
+ * @generated
+ */
+ public ConditionalUnitConditionalUnitElseCompartment5ItemSemanticEditPolicy() {
+ super(ComrelElementTypes.ConditionalUnit_3072);
+ }
+
+ /**
+ * @generated
+ */
+ protected Command getCreateCommand(CreateElementRequest req) {
+ if (ComrelElementTypes.CartesianQueuedUnit_3047 == req.getElementType()) {
+ return getGEFWrapper(new CartesianQueuedUnit7CreateCommand(req));
+ }
+ if (ComrelElementTypes.ParallelQueuedUnit_3048 == req.getElementType()) {
+ return getGEFWrapper(new ParallelQueuedUnit7CreateCommand(req));
+ }
+ if (ComrelElementTypes.SingleQueuedUnit_3067 == req.getElementType()) {
+ return getGEFWrapper(new SingleQueuedUnit7CreateCommand(req));
+ }
+ if (ComrelElementTypes.SequentialUnit_3073 == req.getElementType()) {
+ return getGEFWrapper(new SequentialUnit7CreateCommand(req));
+ }
+ if (ComrelElementTypes.ConditionalUnit_3075 == req.getElementType()) {
+ return getGEFWrapper(new ConditionalUnit7CreateCommand(req));
+ }
+ if (ComrelElementTypes.AtomicUnit_3078 == req.getElementType()) {
+ return getGEFWrapper(new AtomicUnit7CreateCommand(req));
+ }
+ return super.getCreateCommand(req);
+ }
+
+}
diff --git a/org.eclipse.emf.refactor.comrel.diagram/src/comrel/diagram/edit/policies/ConditionalUnitConditionalUnitElseCompartment6CanonicalEditPolicy.java b/org.eclipse.emf.refactor.comrel.diagram/src/comrel/diagram/edit/policies/ConditionalUnitConditionalUnitElseCompartment6CanonicalEditPolicy.java
new file mode 100644
index 0000000..18ff0f6
--- /dev/null
+++ b/org.eclipse.emf.refactor.comrel.diagram/src/comrel/diagram/edit/policies/ConditionalUnitConditionalUnitElseCompartment6CanonicalEditPolicy.java
@@ -0,0 +1,177 @@
+/*
+ *
+ */
+package comrel.diagram.edit.policies;
+
+import java.util.ArrayList;
+import java.util.Collection;
+import java.util.Iterator;
+import java.util.LinkedList;
+import java.util.List;
+
+import org.eclipse.core.runtime.IAdaptable;
+import org.eclipse.emf.ecore.EObject;
+import org.eclipse.emf.ecore.EStructuralFeature;
+import org.eclipse.gef.commands.Command;
+import org.eclipse.gmf.runtime.diagram.core.util.ViewUtil;
+import org.eclipse.gmf.runtime.diagram.ui.commands.DeferredLayoutCommand;
+import org.eclipse.gmf.runtime.diagram.ui.commands.ICommandProxy;
+import org.eclipse.gmf.runtime.diagram.ui.commands.SetViewMutabilityCommand;
+import org.eclipse.gmf.runtime.diagram.ui.editpolicies.CanonicalEditPolicy;
+import org.eclipse.gmf.runtime.diagram.ui.requests.CreateViewRequest;
+import org.eclipse.gmf.runtime.emf.core.util.EObjectAdapter;
+import org.eclipse.gmf.runtime.notation.Node;
+import org.eclipse.gmf.runtime.notation.View;
+
+import comrel.ComrelPackage;
+import comrel.diagram.edit.parts.AtomicUnit7EditPart;
+import comrel.diagram.edit.parts.CartesianQueuedUnit7EditPart;
+import comrel.diagram.edit.parts.ConditionalUnit7EditPart;
+import comrel.diagram.edit.parts.ParallelQueuedUnit7EditPart;
+import comrel.diagram.edit.parts.SequentialUnit7EditPart;
+import comrel.diagram.edit.parts.SingleQueuedUnit7EditPart;
+import comrel.diagram.part.ComrelDiagramUpdater;
+import comrel.diagram.part.ComrelNodeDescriptor;
+import comrel.diagram.part.ComrelVisualIDRegistry;
+
+/**
+ * @generated
+ */
+public class ConditionalUnitConditionalUnitElseCompartment6CanonicalEditPolicy
+ extends CanonicalEditPolicy {
+
+ /**
+ * @generated
+ */
+ protected EStructuralFeature getFeatureToSynchronize() {
+ return ComrelPackage.eINSTANCE.getConditionalUnit_Else();
+ }
+
+ /**
+ * @generated
+ */
+ @SuppressWarnings("rawtypes")
+ protected List getSemanticChildrenList() {
+ View viewObject = (View) getHost().getModel();
+ LinkedList<EObject> result = new LinkedList<EObject>();
+ List<ComrelNodeDescriptor> childDescriptors = ComrelDiagramUpdater
+ .getConditionalUnitConditionalUnitElseCompartment_7074SemanticChildren(viewObject);
+ for (ComrelNodeDescriptor d : childDescriptors) {
+ result.add(d.getModelElement());
+ }
+ return result;
+ }
+
+ /**
+ * @generated
+ */
+ protected boolean isOrphaned(Collection<EObject> semanticChildren,
+ final View view) {
+ return isMyDiagramElement(view)
+ && !semanticChildren.contains(view.getElement());
+ }
+
+ /**
+ * @generated
+ */
+ private boolean isMyDiagramElement(View view) {
+ int visualID = ComrelVisualIDRegistry.getVisualID(view);
+ switch (visualID) {
+ case CartesianQueuedUnit7EditPart.VISUAL_ID:
+ case ParallelQueuedUnit7EditPart.VISUAL_ID:
+ case SingleQueuedUnit7EditPart.VISUAL_ID:
+ case SequentialUnit7EditPart.VISUAL_ID:
+ case ConditionalUnit7EditPart.VISUAL_ID:
+ case AtomicUnit7EditPart.VISUAL_ID:
+ return true;
+ }
+ return false;
+ }
+
+ /**
+ * @generated
+ */
+ protected void refreshSemantic() {
+ if (resolveSemanticElement() == null) {
+ return;
+ }
+ LinkedList<IAdaptable> createdViews = new LinkedList<IAdaptable>();
+ List<ComrelNodeDescriptor> childDescriptors = ComrelDiagramUpdater
+ .getConditionalUnitConditionalUnitElseCompartment_7074SemanticChildren((View) getHost()
+ .getModel());
+ LinkedList<View> orphaned = new LinkedList<View>();
+ // we care to check only views we recognize as ours
+ LinkedList<View> knownViewChildren = new LinkedList<View>();
+ for (View v : getViewChildren()) {
+ if (isMyDiagramElement(v)) {
+ knownViewChildren.add(v);
+ }
+ }
+ // alternative to #cleanCanonicalSemanticChildren(getViewChildren(), semanticChildren)
+ //
+ // iteration happens over list of desired semantic elements, trying to find best matching View, while original CEP
+ // iterates views, potentially losing view (size/bounds) information - i.e. if there are few views to reference same EObject, only last one
+ // to answer isOrphaned == true will be used for the domain element representation, see #cleanCanonicalSemanticChildren()
+ for (Iterator<ComrelNodeDescriptor> descriptorsIterator = childDescriptors
+ .iterator(); descriptorsIterator.hasNext();) {
+ ComrelNodeDescriptor next = descriptorsIterator.next();
+ String hint = ComrelVisualIDRegistry.getType(next.getVisualID());
+ LinkedList<View> perfectMatch = new LinkedList<View>(); // both semanticElement and hint match that of NodeDescriptor
+ for (View childView : getViewChildren()) {
+ EObject semanticElement = childView.getElement();
+ if (next.getModelElement().equals(semanticElement)) {
+ if (hint.equals(childView.getType())) {
+ perfectMatch.add(childView);
+ // actually, can stop iteration over view children here, but
+ // may want to use not the first view but last one as a 'real' match (the way original CEP does
+ // with its trick with viewToSemanticMap inside #cleanCanonicalSemanticChildren
+ }
+ }
+ }
+ if (perfectMatch.size() > 0) {
+ descriptorsIterator.remove(); // precise match found no need to create anything for the NodeDescriptor
+ // use only one view (first or last?), keep rest as orphaned for further consideration
+ knownViewChildren.remove(perfectMatch.getFirst());
+ }
+ }
+ // those left in knownViewChildren are subject to removal - they are our diagram elements we didn't find match to,
+ // or those we have potential matches to, and thus need to be recreated, preserving size/location information.
+ orphaned.addAll(knownViewChildren);
+ //
+ ArrayList<CreateViewRequest.ViewDescriptor> viewDescriptors = new ArrayList<CreateViewRequest.ViewDescriptor>(
+ childDescriptors.size());
+ for (ComrelNodeDescriptor next : childDescriptors) {
+ String hint = ComrelVisualIDRegistry.getType(next.getVisualID());
+ IAdaptable elementAdapter = new CanonicalElementAdapter(
+ next.getModelElement(), hint);
+ CreateViewRequest.ViewDescriptor descriptor = new CreateViewRequest.ViewDescriptor(
+ elementAdapter, Node.class, hint, ViewUtil.APPEND, false,
+ host().getDiagramPreferencesHint());
+ viewDescriptors.add(descriptor);
+ }
+
+ boolean changed = deleteViews(orphaned.iterator());
+ //
+ CreateViewRequest request = getCreateViewRequest(viewDescriptors);
+ Command cmd = getCreateViewCommand(request);
+ if (cmd != null && cmd.canExecute()) {
+ SetViewMutabilityCommand.makeMutable(
+ new EObjectAdapter(host().getNotationView())).execute();
+ executeCommand(cmd);
+ @SuppressWarnings("unchecked")
+ List<IAdaptable> nl = (List<IAdaptable>) request.getNewObject();
+ createdViews.addAll(nl);
+ }
+ if (changed || createdViews.size() > 0) {
+ postProcessRefreshSemantic(createdViews);
+ }
+ if (createdViews.size() > 1) {
+ // perform a layout of the container
+ DeferredLayoutCommand layoutCmd = new DeferredLayoutCommand(host()
+ .getEditingDomain(), createdViews, host());
+ executeCommand(new ICommandProxy(layoutCmd));
+ }
+
+ makeViewsImmutable(createdViews);
+ }
+}
diff --git a/org.eclipse.emf.refactor.comrel.diagram/src/comrel/diagram/edit/policies/ConditionalUnitConditionalUnitElseCompartment6ItemSemanticEditPolicy.java b/org.eclipse.emf.refactor.comrel.diagram/src/comrel/diagram/edit/policies/ConditionalUnitConditionalUnitElseCompartment6ItemSemanticEditPolicy.java
new file mode 100644
index 0000000..4815533
--- /dev/null
+++ b/org.eclipse.emf.refactor.comrel.diagram/src/comrel/diagram/edit/policies/ConditionalUnitConditionalUnitElseCompartment6ItemSemanticEditPolicy.java
@@ -0,0 +1,55 @@
+/*
+ *
+ */
+package comrel.diagram.edit.policies;
+
+import org.eclipse.gef.commands.Command;
+import org.eclipse.gmf.runtime.emf.type.core.requests.CreateElementRequest;
+
+import comrel.diagram.edit.commands.AtomicUnit7CreateCommand;
+import comrel.diagram.edit.commands.CartesianQueuedUnit7CreateCommand;
+import comrel.diagram.edit.commands.ConditionalUnit7CreateCommand;
+import comrel.diagram.edit.commands.ParallelQueuedUnit7CreateCommand;
+import comrel.diagram.edit.commands.SequentialUnit7CreateCommand;
+import comrel.diagram.edit.commands.SingleQueuedUnit7CreateCommand;
+import comrel.diagram.providers.ComrelElementTypes;
+
+/**
+ * @generated
+ */
+public class ConditionalUnitConditionalUnitElseCompartment6ItemSemanticEditPolicy
+ extends ComrelBaseItemSemanticEditPolicy {
+
+ /**
+ * @generated
+ */
+ public ConditionalUnitConditionalUnitElseCompartment6ItemSemanticEditPolicy() {
+ super(ComrelElementTypes.ConditionalUnit_3075);
+ }
+
+ /**
+ * @generated
+ */
+ protected Command getCreateCommand(CreateElementRequest req) {
+ if (ComrelElementTypes.CartesianQueuedUnit_3047 == req.getElementType()) {
+ return getGEFWrapper(new CartesianQueuedUnit7CreateCommand(req));
+ }
+ if (ComrelElementTypes.ParallelQueuedUnit_3048 == req.getElementType()) {
+ return getGEFWrapper(new ParallelQueuedUnit7CreateCommand(req));
+ }
+ if (ComrelElementTypes.SingleQueuedUnit_3067 == req.getElementType()) {
+ return getGEFWrapper(new SingleQueuedUnit7CreateCommand(req));
+ }
+ if (ComrelElementTypes.SequentialUnit_3073 == req.getElementType()) {
+ return getGEFWrapper(new SequentialUnit7CreateCommand(req));
+ }
+ if (ComrelElementTypes.ConditionalUnit_3075 == req.getElementType()) {
+ return getGEFWrapper(new ConditionalUnit7CreateCommand(req));
+ }
+ if (ComrelElementTypes.AtomicUnit_3078 == req.getElementType()) {
+ return getGEFWrapper(new AtomicUnit7CreateCommand(req));
+ }
+ return super.getCreateCommand(req);
+ }
+
+}
diff --git a/org.eclipse.emf.refactor.comrel.diagram/src/comrel/diagram/edit/policies/ConditionalUnitConditionalUnitElseCompartment7CanonicalEditPolicy.java b/org.eclipse.emf.refactor.comrel.diagram/src/comrel/diagram/edit/policies/ConditionalUnitConditionalUnitElseCompartment7CanonicalEditPolicy.java
new file mode 100644
index 0000000..7b1cd85
--- /dev/null
+++ b/org.eclipse.emf.refactor.comrel.diagram/src/comrel/diagram/edit/policies/ConditionalUnitConditionalUnitElseCompartment7CanonicalEditPolicy.java
@@ -0,0 +1,177 @@
+/*
+ *
+ */
+package comrel.diagram.edit.policies;
+
+import java.util.ArrayList;
+import java.util.Collection;
+import java.util.Iterator;
+import java.util.LinkedList;
+import java.util.List;
+
+import org.eclipse.core.runtime.IAdaptable;
+import org.eclipse.emf.ecore.EObject;
+import org.eclipse.emf.ecore.EStructuralFeature;
+import org.eclipse.gef.commands.Command;
+import org.eclipse.gmf.runtime.diagram.core.util.ViewUtil;
+import org.eclipse.gmf.runtime.diagram.ui.commands.DeferredLayoutCommand;
+import org.eclipse.gmf.runtime.diagram.ui.commands.ICommandProxy;
+import org.eclipse.gmf.runtime.diagram.ui.commands.SetViewMutabilityCommand;
+import org.eclipse.gmf.runtime.diagram.ui.editpolicies.CanonicalEditPolicy;
+import org.eclipse.gmf.runtime.diagram.ui.requests.CreateViewRequest;
+import org.eclipse.gmf.runtime.emf.core.util.EObjectAdapter;
+import org.eclipse.gmf.runtime.notation.Node;
+import org.eclipse.gmf.runtime.notation.View;
+
+import comrel.ComrelPackage;
+import comrel.diagram.edit.parts.AtomicUnit7EditPart;
+import comrel.diagram.edit.parts.CartesianQueuedUnit7EditPart;
+import comrel.diagram.edit.parts.ConditionalUnit7EditPart;
+import comrel.diagram.edit.parts.ParallelQueuedUnit7EditPart;
+import comrel.diagram.edit.parts.SequentialUnit7EditPart;
+import comrel.diagram.edit.parts.SingleQueuedUnit7EditPart;
+import comrel.diagram.part.ComrelDiagramUpdater;
+import comrel.diagram.part.ComrelNodeDescriptor;
+import comrel.diagram.part.ComrelVisualIDRegistry;
+
+/**
+ * @generated
+ */
+public class ConditionalUnitConditionalUnitElseCompartment7CanonicalEditPolicy
+ extends CanonicalEditPolicy {
+
+ /**
+ * @generated
+ */
+ protected EStructuralFeature getFeatureToSynchronize() {
+ return ComrelPackage.eINSTANCE.getConditionalUnit_Else();
+ }
+
+ /**
+ * @generated
+ */
+ @SuppressWarnings("rawtypes")
+ protected List getSemanticChildrenList() {
+ View viewObject = (View) getHost().getModel();
+ LinkedList<EObject> result = new LinkedList<EObject>();
+ List<ComrelNodeDescriptor> childDescriptors = ComrelDiagramUpdater
+ .getConditionalUnitConditionalUnitElseCompartment_7084SemanticChildren(viewObject);
+ for (ComrelNodeDescriptor d : childDescriptors) {
+ result.add(d.getModelElement());
+ }
+ return result;
+ }
+
+ /**
+ * @generated
+ */
+ protected boolean isOrphaned(Collection<EObject> semanticChildren,
+ final View view) {
+ return isMyDiagramElement(view)
+ && !semanticChildren.contains(view.getElement());
+ }
+
+ /**
+ * @generated
+ */
+ private boolean isMyDiagramElement(View view) {
+ int visualID = ComrelVisualIDRegistry.getVisualID(view);
+ switch (visualID) {
+ case CartesianQueuedUnit7EditPart.VISUAL_ID:
+ case ParallelQueuedUnit7EditPart.VISUAL_ID:
+ case SingleQueuedUnit7EditPart.VISUAL_ID:
+ case SequentialUnit7EditPart.VISUAL_ID:
+ case ConditionalUnit7EditPart.VISUAL_ID:
+ case AtomicUnit7EditPart.VISUAL_ID:
+ return true;
+ }
+ return false;
+ }
+
+ /**
+ * @generated
+ */
+ protected void refreshSemantic() {
+ if (resolveSemanticElement() == null) {
+ return;
+ }
+ LinkedList<IAdaptable> createdViews = new LinkedList<IAdaptable>();
+ List<ComrelNodeDescriptor> childDescriptors = ComrelDiagramUpdater
+ .getConditionalUnitConditionalUnitElseCompartment_7084SemanticChildren((View) getHost()
+ .getModel());
+ LinkedList<View> orphaned = new LinkedList<View>();
+ // we care to check only views we recognize as ours
+ LinkedList<View> knownViewChildren = new LinkedList<View>();
+ for (View v : getViewChildren()) {
+ if (isMyDiagramElement(v)) {
+ knownViewChildren.add(v);
+ }
+ }
+ // alternative to #cleanCanonicalSemanticChildren(getViewChildren(), semanticChildren)
+ //
+ // iteration happens over list of desired semantic elements, trying to find best matching View, while original CEP
+ // iterates views, potentially losing view (size/bounds) information - i.e. if there are few views to reference same EObject, only last one
+ // to answer isOrphaned == true will be used for the domain element representation, see #cleanCanonicalSemanticChildren()
+ for (Iterator<ComrelNodeDescriptor> descriptorsIterator = childDescriptors
+ .iterator(); descriptorsIterator.hasNext();) {
+ ComrelNodeDescriptor next = descriptorsIterator.next();
+ String hint = ComrelVisualIDRegistry.getType(next.getVisualID());
+ LinkedList<View> perfectMatch = new LinkedList<View>(); // both semanticElement and hint match that of NodeDescriptor
+ for (View childView : getViewChildren()) {
+ EObject semanticElement = childView.getElement();
+ if (next.getModelElement().equals(semanticElement)) {
+ if (hint.equals(childView.getType())) {
+ perfectMatch.add(childView);
+ // actually, can stop iteration over view children here, but
+ // may want to use not the first view but last one as a 'real' match (the way original CEP does
+ // with its trick with viewToSemanticMap inside #cleanCanonicalSemanticChildren
+ }
+ }
+ }
+ if (perfectMatch.size() > 0) {
+ descriptorsIterator.remove(); // precise match found no need to create anything for the NodeDescriptor
+ // use only one view (first or last?), keep rest as orphaned for further consideration
+ knownViewChildren.remove(perfectMatch.getFirst());
+ }
+ }
+ // those left in knownViewChildren are subject to removal - they are our diagram elements we didn't find match to,
+ // or those we have potential matches to, and thus need to be recreated, preserving size/location information.
+ orphaned.addAll(knownViewChildren);
+ //
+ ArrayList<CreateViewRequest.ViewDescriptor> viewDescriptors = new ArrayList<CreateViewRequest.ViewDescriptor>(
+ childDescriptors.size());
+ for (ComrelNodeDescriptor next : childDescriptors) {
+ String hint = ComrelVisualIDRegistry.getType(next.getVisualID());
+ IAdaptable elementAdapter = new CanonicalElementAdapter(
+ next.getModelElement(), hint);
+ CreateViewRequest.ViewDescriptor descriptor = new CreateViewRequest.ViewDescriptor(
+ elementAdapter, Node.class, hint, ViewUtil.APPEND, false,
+ host().getDiagramPreferencesHint());
+ viewDescriptors.add(descriptor);
+ }
+
+ boolean changed = deleteViews(orphaned.iterator());
+ //
+ CreateViewRequest request = getCreateViewRequest(viewDescriptors);
+ Command cmd = getCreateViewCommand(request);
+ if (cmd != null && cmd.canExecute()) {
+ SetViewMutabilityCommand.makeMutable(
+ new EObjectAdapter(host().getNotationView())).execute();
+ executeCommand(cmd);
+ @SuppressWarnings("unchecked")
+ List<IAdaptable> nl = (List<IAdaptable>) request.getNewObject();
+ createdViews.addAll(nl);
+ }
+ if (changed || createdViews.size() > 0) {
+ postProcessRefreshSemantic(createdViews);
+ }
+ if (createdViews.size() > 1) {
+ // perform a layout of the container
+ DeferredLayoutCommand layoutCmd = new DeferredLayoutCommand(host()
+ .getEditingDomain(), createdViews, host());
+ executeCommand(new ICommandProxy(layoutCmd));
+ }
+
+ makeViewsImmutable(createdViews);
+ }
+}
diff --git a/org.eclipse.emf.refactor.comrel.diagram/src/comrel/diagram/edit/policies/ConditionalUnitConditionalUnitElseCompartment7ItemSemanticEditPolicy.java b/org.eclipse.emf.refactor.comrel.diagram/src/comrel/diagram/edit/policies/ConditionalUnitConditionalUnitElseCompartment7ItemSemanticEditPolicy.java
new file mode 100644
index 0000000..a50404e
--- /dev/null
+++ b/org.eclipse.emf.refactor.comrel.diagram/src/comrel/diagram/edit/policies/ConditionalUnitConditionalUnitElseCompartment7ItemSemanticEditPolicy.java
@@ -0,0 +1,55 @@
+/*
+ *
+ */
+package comrel.diagram.edit.policies;
+
+import org.eclipse.gef.commands.Command;
+import org.eclipse.gmf.runtime.emf.type.core.requests.CreateElementRequest;
+
+import comrel.diagram.edit.commands.AtomicUnit7CreateCommand;
+import comrel.diagram.edit.commands.CartesianQueuedUnit7CreateCommand;
+import comrel.diagram.edit.commands.ConditionalUnit7CreateCommand;
+import comrel.diagram.edit.commands.ParallelQueuedUnit7CreateCommand;
+import comrel.diagram.edit.commands.SequentialUnit7CreateCommand;
+import comrel.diagram.edit.commands.SingleQueuedUnit7CreateCommand;
+import comrel.diagram.providers.ComrelElementTypes;
+
+/**
+ * @generated
+ */
+public class ConditionalUnitConditionalUnitElseCompartment7ItemSemanticEditPolicy
+ extends ComrelBaseItemSemanticEditPolicy {
+
+ /**
+ * @generated
+ */
+ public ConditionalUnitConditionalUnitElseCompartment7ItemSemanticEditPolicy() {
+ super(ComrelElementTypes.ConditionalUnit_2006);
+ }
+
+ /**
+ * @generated
+ */
+ protected Command getCreateCommand(CreateElementRequest req) {
+ if (ComrelElementTypes.CartesianQueuedUnit_3047 == req.getElementType()) {
+ return getGEFWrapper(new CartesianQueuedUnit7CreateCommand(req));
+ }
+ if (ComrelElementTypes.ParallelQueuedUnit_3048 == req.getElementType()) {
+ return getGEFWrapper(new ParallelQueuedUnit7CreateCommand(req));
+ }
+ if (ComrelElementTypes.SingleQueuedUnit_3067 == req.getElementType()) {
+ return getGEFWrapper(new SingleQueuedUnit7CreateCommand(req));
+ }
+ if (ComrelElementTypes.SequentialUnit_3073 == req.getElementType()) {
+ return getGEFWrapper(new SequentialUnit7CreateCommand(req));
+ }
+ if (ComrelElementTypes.ConditionalUnit_3075 == req.getElementType()) {
+ return getGEFWrapper(new ConditionalUnit7CreateCommand(req));
+ }
+ if (ComrelElementTypes.AtomicUnit_3078 == req.getElementType()) {
+ return getGEFWrapper(new AtomicUnit7CreateCommand(req));
+ }
+ return super.getCreateCommand(req);
+ }
+
+}
diff --git a/org.eclipse.emf.refactor.comrel.diagram/src/comrel/diagram/edit/policies/ConditionalUnitConditionalUnitElseCompartmentCanonicalEditPolicy.java b/org.eclipse.emf.refactor.comrel.diagram/src/comrel/diagram/edit/policies/ConditionalUnitConditionalUnitElseCompartmentCanonicalEditPolicy.java
new file mode 100644
index 0000000..a8e3119
--- /dev/null
+++ b/org.eclipse.emf.refactor.comrel.diagram/src/comrel/diagram/edit/policies/ConditionalUnitConditionalUnitElseCompartmentCanonicalEditPolicy.java
@@ -0,0 +1,177 @@
+/*
+ *
+ */
+package comrel.diagram.edit.policies;
+
+import java.util.ArrayList;
+import java.util.Collection;
+import java.util.Iterator;
+import java.util.LinkedList;
+import java.util.List;
+
+import org.eclipse.core.runtime.IAdaptable;
+import org.eclipse.emf.ecore.EObject;
+import org.eclipse.emf.ecore.EStructuralFeature;
+import org.eclipse.gef.commands.Command;
+import org.eclipse.gmf.runtime.diagram.core.util.ViewUtil;
+import org.eclipse.gmf.runtime.diagram.ui.commands.DeferredLayoutCommand;
+import org.eclipse.gmf.runtime.diagram.ui.commands.ICommandProxy;
+import org.eclipse.gmf.runtime.diagram.ui.commands.SetViewMutabilityCommand;
+import org.eclipse.gmf.runtime.diagram.ui.editpolicies.CanonicalEditPolicy;
+import org.eclipse.gmf.runtime.diagram.ui.requests.CreateViewRequest;
+import org.eclipse.gmf.runtime.emf.core.util.EObjectAdapter;
+import org.eclipse.gmf.runtime.notation.Node;
+import org.eclipse.gmf.runtime.notation.View;
+
+import comrel.ComrelPackage;
+import comrel.diagram.edit.parts.AtomicUnit7EditPart;
+import comrel.diagram.edit.parts.CartesianQueuedUnit7EditPart;
+import comrel.diagram.edit.parts.ConditionalUnit7EditPart;
+import comrel.diagram.edit.parts.ParallelQueuedUnit7EditPart;
+import comrel.diagram.edit.parts.SequentialUnit7EditPart;
+import comrel.diagram.edit.parts.SingleQueuedUnit7EditPart;
+import comrel.diagram.part.ComrelDiagramUpdater;
+import comrel.diagram.part.ComrelNodeDescriptor;
+import comrel.diagram.part.ComrelVisualIDRegistry;
+
+/**
+ * @generated
+ */
+public class ConditionalUnitConditionalUnitElseCompartmentCanonicalEditPolicy
+ extends CanonicalEditPolicy {
+
+ /**
+ * @generated
+ */
+ protected EStructuralFeature getFeatureToSynchronize() {
+ return ComrelPackage.eINSTANCE.getConditionalUnit_Else();
+ }
+
+ /**
+ * @generated
+ */
+ @SuppressWarnings("rawtypes")
+ protected List getSemanticChildrenList() {
+ View viewObject = (View) getHost().getModel();
+ LinkedList<EObject> result = new LinkedList<EObject>();
+ List<ComrelNodeDescriptor> childDescriptors = ComrelDiagramUpdater
+ .getConditionalUnitConditionalUnitElseCompartment_7020SemanticChildren(viewObject);
+ for (ComrelNodeDescriptor d : childDescriptors) {
+ result.add(d.getModelElement());
+ }
+ return result;
+ }
+
+ /**
+ * @generated
+ */
+ protected boolean isOrphaned(Collection<EObject> semanticChildren,
+ final View view) {
+ return isMyDiagramElement(view)
+ && !semanticChildren.contains(view.getElement());
+ }
+
+ /**
+ * @generated
+ */
+ private boolean isMyDiagramElement(View view) {
+ int visualID = ComrelVisualIDRegistry.getVisualID(view);
+ switch (visualID) {
+ case CartesianQueuedUnit7EditPart.VISUAL_ID:
+ case ParallelQueuedUnit7EditPart.VISUAL_ID:
+ case SingleQueuedUnit7EditPart.VISUAL_ID:
+ case SequentialUnit7EditPart.VISUAL_ID:
+ case ConditionalUnit7EditPart.VISUAL_ID:
+ case AtomicUnit7EditPart.VISUAL_ID:
+ return true;
+ }
+ return false;
+ }
+
+ /**
+ * @generated
+ */
+ protected void refreshSemantic() {
+ if (resolveSemanticElement() == null) {
+ return;
+ }
+ LinkedList<IAdaptable> createdViews = new LinkedList<IAdaptable>();
+ List<ComrelNodeDescriptor> childDescriptors = ComrelDiagramUpdater
+ .getConditionalUnitConditionalUnitElseCompartment_7020SemanticChildren((View) getHost()
+ .getModel());
+ LinkedList<View> orphaned = new LinkedList<View>();
+ // we care to check only views we recognize as ours
+ LinkedList<View> knownViewChildren = new LinkedList<View>();
+ for (View v : getViewChildren()) {
+ if (isMyDiagramElement(v)) {
+ knownViewChildren.add(v);
+ }
+ }
+ // alternative to #cleanCanonicalSemanticChildren(getViewChildren(), semanticChildren)
+ //
+ // iteration happens over list of desired semantic elements, trying to find best matching View, while original CEP
+ // iterates views, potentially losing view (size/bounds) information - i.e. if there are few views to reference same EObject, only last one
+ // to answer isOrphaned == true will be used for the domain element representation, see #cleanCanonicalSemanticChildren()
+ for (Iterator<ComrelNodeDescriptor> descriptorsIterator = childDescriptors
+ .iterator(); descriptorsIterator.hasNext();) {
+ ComrelNodeDescriptor next = descriptorsIterator.next();
+ String hint = ComrelVisualIDRegistry.getType(next.getVisualID());
+ LinkedList<View> perfectMatch = new LinkedList<View>(); // both semanticElement and hint match that of NodeDescriptor
+ for (View childView : getViewChildren()) {
+ EObject semanticElement = childView.getElement();
+ if (next.getModelElement().equals(semanticElement)) {
+ if (hint.equals(childView.getType())) {
+ perfectMatch.add(childView);
+ // actually, can stop iteration over view children here, but
+ // may want to use not the first view but last one as a 'real' match (the way original CEP does
+ // with its trick with viewToSemanticMap inside #cleanCanonicalSemanticChildren
+ }
+ }
+ }
+ if (perfectMatch.size() > 0) {
+ descriptorsIterator.remove(); // precise match found no need to create anything for the NodeDescriptor
+ // use only one view (first or last?), keep rest as orphaned for further consideration
+ knownViewChildren.remove(perfectMatch.getFirst());
+ }
+ }
+ // those left in knownViewChildren are subject to removal - they are our diagram elements we didn't find match to,
+ // or those we have potential matches to, and thus need to be recreated, preserving size/location information.
+ orphaned.addAll(knownViewChildren);
+ //
+ ArrayList<CreateViewRequest.ViewDescriptor> viewDescriptors = new ArrayList<CreateViewRequest.ViewDescriptor>(
+ childDescriptors.size());
+ for (ComrelNodeDescriptor next : childDescriptors) {
+ String hint = ComrelVisualIDRegistry.getType(next.getVisualID());
+ IAdaptable elementAdapter = new CanonicalElementAdapter(
+ next.getModelElement(), hint);
+ CreateViewRequest.ViewDescriptor descriptor = new CreateViewRequest.ViewDescriptor(
+ elementAdapter, Node.class, hint, ViewUtil.APPEND, false,
+ host().getDiagramPreferencesHint());
+ viewDescriptors.add(descriptor);
+ }
+
+ boolean changed = deleteViews(orphaned.iterator());
+ //
+ CreateViewRequest request = getCreateViewRequest(viewDescriptors);
+ Command cmd = getCreateViewCommand(request);
+ if (cmd != null && cmd.canExecute()) {
+ SetViewMutabilityCommand.makeMutable(
+ new EObjectAdapter(host().getNotationView())).execute();
+ executeCommand(cmd);
+ @SuppressWarnings("unchecked")
+ List<IAdaptable> nl = (List<IAdaptable>) request.getNewObject();
+ createdViews.addAll(nl);
+ }
+ if (changed || createdViews.size() > 0) {
+ postProcessRefreshSemantic(createdViews);
+ }
+ if (createdViews.size() > 1) {
+ // perform a layout of the container
+ DeferredLayoutCommand layoutCmd = new DeferredLayoutCommand(host()
+ .getEditingDomain(), createdViews, host());
+ executeCommand(new ICommandProxy(layoutCmd));
+ }
+
+ makeViewsImmutable(createdViews);
+ }
+}
diff --git a/org.eclipse.emf.refactor.comrel.diagram/src/comrel/diagram/edit/policies/ConditionalUnitConditionalUnitElseCompartmentItemSemanticEditPolicy.java b/org.eclipse.emf.refactor.comrel.diagram/src/comrel/diagram/edit/policies/ConditionalUnitConditionalUnitElseCompartmentItemSemanticEditPolicy.java
new file mode 100644
index 0000000..001e732
--- /dev/null
+++ b/org.eclipse.emf.refactor.comrel.diagram/src/comrel/diagram/edit/policies/ConditionalUnitConditionalUnitElseCompartmentItemSemanticEditPolicy.java
@@ -0,0 +1,55 @@
+/*
+ *
+ */
+package comrel.diagram.edit.policies;
+
+import org.eclipse.gef.commands.Command;
+import org.eclipse.gmf.runtime.emf.type.core.requests.CreateElementRequest;
+
+import comrel.diagram.edit.commands.AtomicUnit7CreateCommand;
+import comrel.diagram.edit.commands.CartesianQueuedUnit7CreateCommand;
+import comrel.diagram.edit.commands.ConditionalUnit7CreateCommand;
+import comrel.diagram.edit.commands.ParallelQueuedUnit7CreateCommand;
+import comrel.diagram.edit.commands.SequentialUnit7CreateCommand;
+import comrel.diagram.edit.commands.SingleQueuedUnit7CreateCommand;
+import comrel.diagram.providers.ComrelElementTypes;
+
+/**
+ * @generated
+ */
+public class ConditionalUnitConditionalUnitElseCompartmentItemSemanticEditPolicy
+ extends ComrelBaseItemSemanticEditPolicy {
+
+ /**
+ * @generated
+ */
+ public ConditionalUnitConditionalUnitElseCompartmentItemSemanticEditPolicy() {
+ super(ComrelElementTypes.ConditionalUnit_3030);
+ }
+
+ /**
+ * @generated
+ */
+ protected Command getCreateCommand(CreateElementRequest req) {
+ if (ComrelElementTypes.CartesianQueuedUnit_3047 == req.getElementType()) {
+ return getGEFWrapper(new CartesianQueuedUnit7CreateCommand(req));
+ }
+ if (ComrelElementTypes.ParallelQueuedUnit_3048 == req.getElementType()) {
+ return getGEFWrapper(new ParallelQueuedUnit7CreateCommand(req));
+ }
+ if (ComrelElementTypes.SingleQueuedUnit_3067 == req.getElementType()) {
+ return getGEFWrapper(new SingleQueuedUnit7CreateCommand(req));
+ }
+ if (ComrelElementTypes.SequentialUnit_3073 == req.getElementType()) {
+ return getGEFWrapper(new SequentialUnit7CreateCommand(req));
+ }
+ if (ComrelElementTypes.ConditionalUnit_3075 == req.getElementType()) {
+ return getGEFWrapper(new ConditionalUnit7CreateCommand(req));
+ }
+ if (ComrelElementTypes.AtomicUnit_3078 == req.getElementType()) {
+ return getGEFWrapper(new AtomicUnit7CreateCommand(req));
+ }
+ return super.getCreateCommand(req);
+ }
+
+}
diff --git a/org.eclipse.emf.refactor.comrel.diagram/src/comrel/diagram/edit/policies/ConditionalUnitConditionalUnitHelperUnitsCompartment2CanonicalEditPolicy.java b/org.eclipse.emf.refactor.comrel.diagram/src/comrel/diagram/edit/policies/ConditionalUnitConditionalUnitHelperUnitsCompartment2CanonicalEditPolicy.java
new file mode 100644
index 0000000..1490299
--- /dev/null
+++ b/org.eclipse.emf.refactor.comrel.diagram/src/comrel/diagram/edit/policies/ConditionalUnitConditionalUnitHelperUnitsCompartment2CanonicalEditPolicy.java
@@ -0,0 +1,173 @@
+/*
+ *
+ */
+package comrel.diagram.edit.policies;
+
+import java.util.ArrayList;
+import java.util.Collection;
+import java.util.Iterator;
+import java.util.LinkedList;
+import java.util.List;
+
+import org.eclipse.core.runtime.IAdaptable;
+import org.eclipse.emf.ecore.EObject;
+import org.eclipse.emf.ecore.EStructuralFeature;
+import org.eclipse.gef.commands.Command;
+import org.eclipse.gmf.runtime.diagram.core.util.ViewUtil;
+import org.eclipse.gmf.runtime.diagram.ui.commands.DeferredLayoutCommand;
+import org.eclipse.gmf.runtime.diagram.ui.commands.ICommandProxy;
+import org.eclipse.gmf.runtime.diagram.ui.commands.SetViewMutabilityCommand;
+import org.eclipse.gmf.runtime.diagram.ui.editpolicies.CanonicalEditPolicy;
+import org.eclipse.gmf.runtime.diagram.ui.requests.CreateViewRequest;
+import org.eclipse.gmf.runtime.emf.core.util.EObjectAdapter;
+import org.eclipse.gmf.runtime.notation.Node;
+import org.eclipse.gmf.runtime.notation.View;
+
+import comrel.ComrelPackage;
+import comrel.diagram.edit.parts.MultiFeatureUnit3EditPart;
+import comrel.diagram.edit.parts.MultiFilterUnit3EditPart;
+import comrel.diagram.edit.parts.SingleFeatureUnit3EditPart;
+import comrel.diagram.edit.parts.SingleFilterUnit3EditPart;
+import comrel.diagram.part.ComrelDiagramUpdater;
+import comrel.diagram.part.ComrelNodeDescriptor;
+import comrel.diagram.part.ComrelVisualIDRegistry;
+
+/**
+ * @generated
+ */
+public class ConditionalUnitConditionalUnitHelperUnitsCompartment2CanonicalEditPolicy
+ extends CanonicalEditPolicy {
+
+ /**
+ * @generated
+ */
+ protected EStructuralFeature getFeatureToSynchronize() {
+ return ComrelPackage.eINSTANCE.getConditionalUnit_HelperUnits();
+ }
+
+ /**
+ * @generated
+ */
+ @SuppressWarnings("rawtypes")
+ protected List getSemanticChildrenList() {
+ View viewObject = (View) getHost().getModel();
+ LinkedList<EObject> result = new LinkedList<EObject>();
+ List<ComrelNodeDescriptor> childDescriptors = ComrelDiagramUpdater
+ .getConditionalUnitConditionalUnitHelperUnitsCompartment_7036SemanticChildren(viewObject);
+ for (ComrelNodeDescriptor d : childDescriptors) {
+ result.add(d.getModelElement());
+ }
+ return result;
+ }
+
+ /**
+ * @generated
+ */
+ protected boolean isOrphaned(Collection<EObject> semanticChildren,
+ final View view) {
+ return isMyDiagramElement(view)
+ && !semanticChildren.contains(view.getElement());
+ }
+
+ /**
+ * @generated
+ */
+ private boolean isMyDiagramElement(View view) {
+ int visualID = ComrelVisualIDRegistry.getVisualID(view);
+ switch (visualID) {
+ case SingleFeatureUnit3EditPart.VISUAL_ID:
+ case MultiFeatureUnit3EditPart.VISUAL_ID:
+ case SingleFilterUnit3EditPart.VISUAL_ID:
+ case MultiFilterUnit3EditPart.VISUAL_ID:
+ return true;
+ }
+ return false;
+ }
+
+ /**
+ * @generated
+ */
+ protected void refreshSemantic() {
+ if (resolveSemanticElement() == null) {
+ return;
+ }
+ LinkedList<IAdaptable> createdViews = new LinkedList<IAdaptable>();
+ List<ComrelNodeDescriptor> childDescriptors = ComrelDiagramUpdater
+ .getConditionalUnitConditionalUnitHelperUnitsCompartment_7036SemanticChildren((View) getHost()
+ .getModel());
+ LinkedList<View> orphaned = new LinkedList<View>();
+ // we care to check only views we recognize as ours
+ LinkedList<View> knownViewChildren = new LinkedList<View>();
+ for (View v : getViewChildren()) {
+ if (isMyDiagramElement(v)) {
+ knownViewChildren.add(v);
+ }
+ }
+ // alternative to #cleanCanonicalSemanticChildren(getViewChildren(), semanticChildren)
+ //
+ // iteration happens over list of desired semantic elements, trying to find best matching View, while original CEP
+ // iterates views, potentially losing view (size/bounds) information - i.e. if there are few views to reference same EObject, only last one
+ // to answer isOrphaned == true will be used for the domain element representation, see #cleanCanonicalSemanticChildren()
+ for (Iterator<ComrelNodeDescriptor> descriptorsIterator = childDescriptors
+ .iterator(); descriptorsIterator.hasNext();) {
+ ComrelNodeDescriptor next = descriptorsIterator.next();
+ String hint = ComrelVisualIDRegistry.getType(next.getVisualID());
+ LinkedList<View> perfectMatch = new LinkedList<View>(); // both semanticElement and hint match that of NodeDescriptor
+ for (View childView : getViewChildren()) {
+ EObject semanticElement = childView.getElement();
+ if (next.getModelElement().equals(semanticElement)) {
+ if (hint.equals(childView.getType())) {
+ perfectMatch.add(childView);
+ // actually, can stop iteration over view children here, but
+ // may want to use not the first view but last one as a 'real' match (the way original CEP does
+ // with its trick with viewToSemanticMap inside #cleanCanonicalSemanticChildren
+ }
+ }
+ }
+ if (perfectMatch.size() > 0) {
+ descriptorsIterator.remove(); // precise match found no need to create anything for the NodeDescriptor
+ // use only one view (first or last?), keep rest as orphaned for further consideration
+ knownViewChildren.remove(perfectMatch.getFirst());
+ }
+ }
+ // those left in knownViewChildren are subject to removal - they are our diagram elements we didn't find match to,
+ // or those we have potential matches to, and thus need to be recreated, preserving size/location information.
+ orphaned.addAll(knownViewChildren);
+ //
+ ArrayList<CreateViewRequest.ViewDescriptor> viewDescriptors = new ArrayList<CreateViewRequest.ViewDescriptor>(
+ childDescriptors.size());
+ for (ComrelNodeDescriptor next : childDescriptors) {
+ String hint = ComrelVisualIDRegistry.getType(next.getVisualID());
+ IAdaptable elementAdapter = new CanonicalElementAdapter(
+ next.getModelElement(), hint);
+ CreateViewRequest.ViewDescriptor descriptor = new CreateViewRequest.ViewDescriptor(
+ elementAdapter, Node.class, hint, ViewUtil.APPEND, false,
+ host().getDiagramPreferencesHint());
+ viewDescriptors.add(descriptor);
+ }
+
+ boolean changed = deleteViews(orphaned.iterator());
+ //
+ CreateViewRequest request = getCreateViewRequest(viewDescriptors);
+ Command cmd = getCreateViewCommand(request);
+ if (cmd != null && cmd.canExecute()) {
+ SetViewMutabilityCommand.makeMutable(
+ new EObjectAdapter(host().getNotationView())).execute();
+ executeCommand(cmd);
+ @SuppressWarnings("unchecked")
+ List<IAdaptable> nl = (List<IAdaptable>) request.getNewObject();
+ createdViews.addAll(nl);
+ }
+ if (changed || createdViews.size() > 0) {
+ postProcessRefreshSemantic(createdViews);
+ }
+ if (createdViews.size() > 1) {
+ // perform a layout of the container
+ DeferredLayoutCommand layoutCmd = new DeferredLayoutCommand(host()
+ .getEditingDomain(), createdViews, host());
+ executeCommand(new ICommandProxy(layoutCmd));
+ }
+
+ makeViewsImmutable(createdViews);
+ }
+}
diff --git a/org.eclipse.emf.refactor.comrel.diagram/src/comrel/diagram/edit/policies/ConditionalUnitConditionalUnitHelperUnitsCompartment2ItemSemanticEditPolicy.java b/org.eclipse.emf.refactor.comrel.diagram/src/comrel/diagram/edit/policies/ConditionalUnitConditionalUnitHelperUnitsCompartment2ItemSemanticEditPolicy.java
new file mode 100644
index 0000000..b040aa4
--- /dev/null
+++ b/org.eclipse.emf.refactor.comrel.diagram/src/comrel/diagram/edit/policies/ConditionalUnitConditionalUnitHelperUnitsCompartment2ItemSemanticEditPolicy.java
@@ -0,0 +1,47 @@
+/*
+ *
+ */
+package comrel.diagram.edit.policies;
+
+import org.eclipse.gef.commands.Command;
+import org.eclipse.gmf.runtime.emf.type.core.requests.CreateElementRequest;
+
+import comrel.diagram.edit.commands.MultiFeatureUnit3CreateCommand;
+import comrel.diagram.edit.commands.MultiFilterUnit3CreateCommand;
+import comrel.diagram.edit.commands.SingleFeatureUnit3CreateCommand;
+import comrel.diagram.edit.commands.SingleFilterUnit3CreateCommand;
+import comrel.diagram.providers.ComrelElementTypes;
+
+/**
+ * @generated
+ */
+public class ConditionalUnitConditionalUnitHelperUnitsCompartment2ItemSemanticEditPolicy
+ extends ComrelBaseItemSemanticEditPolicy {
+
+ /**
+ * @generated
+ */
+ public ConditionalUnitConditionalUnitHelperUnitsCompartment2ItemSemanticEditPolicy() {
+ super(ComrelElementTypes.ConditionalUnit_3046);
+ }
+
+ /**
+ * @generated
+ */
+ protected Command getCreateCommand(CreateElementRequest req) {
+ if (ComrelElementTypes.SingleFeatureUnit_3050 == req.getElementType()) {
+ return getGEFWrapper(new SingleFeatureUnit3CreateCommand(req));
+ }
+ if (ComrelElementTypes.MultiFeatureUnit_3051 == req.getElementType()) {
+ return getGEFWrapper(new MultiFeatureUnit3CreateCommand(req));
+ }
+ if (ComrelElementTypes.SingleFilterUnit_3052 == req.getElementType()) {
+ return getGEFWrapper(new SingleFilterUnit3CreateCommand(req));
+ }
+ if (ComrelElementTypes.MultiFilterUnit_3053 == req.getElementType()) {
+ return getGEFWrapper(new MultiFilterUnit3CreateCommand(req));
+ }
+ return super.getCreateCommand(req);
+ }
+
+}
diff --git a/org.eclipse.emf.refactor.comrel.diagram/src/comrel/diagram/edit/policies/ConditionalUnitConditionalUnitHelperUnitsCompartment3CanonicalEditPolicy.java b/org.eclipse.emf.refactor.comrel.diagram/src/comrel/diagram/edit/policies/ConditionalUnitConditionalUnitHelperUnitsCompartment3CanonicalEditPolicy.java
new file mode 100644
index 0000000..01b9af5
--- /dev/null
+++ b/org.eclipse.emf.refactor.comrel.diagram/src/comrel/diagram/edit/policies/ConditionalUnitConditionalUnitHelperUnitsCompartment3CanonicalEditPolicy.java
@@ -0,0 +1,173 @@
+/*
+ *
+ */
+package comrel.diagram.edit.policies;
+
+import java.util.ArrayList;
+import java.util.Collection;
+import java.util.Iterator;
+import java.util.LinkedList;
+import java.util.List;
+
+import org.eclipse.core.runtime.IAdaptable;
+import org.eclipse.emf.ecore.EObject;
+import org.eclipse.emf.ecore.EStructuralFeature;
+import org.eclipse.gef.commands.Command;
+import org.eclipse.gmf.runtime.diagram.core.util.ViewUtil;
+import org.eclipse.gmf.runtime.diagram.ui.commands.DeferredLayoutCommand;
+import org.eclipse.gmf.runtime.diagram.ui.commands.ICommandProxy;
+import org.eclipse.gmf.runtime.diagram.ui.commands.SetViewMutabilityCommand;
+import org.eclipse.gmf.runtime.diagram.ui.editpolicies.CanonicalEditPolicy;
+import org.eclipse.gmf.runtime.diagram.ui.requests.CreateViewRequest;
+import org.eclipse.gmf.runtime.emf.core.util.EObjectAdapter;
+import org.eclipse.gmf.runtime.notation.Node;
+import org.eclipse.gmf.runtime.notation.View;
+
+import comrel.ComrelPackage;
+import comrel.diagram.edit.parts.MultiFeatureUnit3EditPart;
+import comrel.diagram.edit.parts.MultiFilterUnit3EditPart;
+import comrel.diagram.edit.parts.SingleFeatureUnit3EditPart;
+import comrel.diagram.edit.parts.SingleFilterUnit3EditPart;
+import comrel.diagram.part.ComrelDiagramUpdater;
+import comrel.diagram.part.ComrelNodeDescriptor;
+import comrel.diagram.part.ComrelVisualIDRegistry;
+
+/**
+ * @generated
+ */
+public class ConditionalUnitConditionalUnitHelperUnitsCompartment3CanonicalEditPolicy
+ extends CanonicalEditPolicy {
+
+ /**
+ * @generated
+ */
+ protected EStructuralFeature getFeatureToSynchronize() {
+ return ComrelPackage.eINSTANCE.getConditionalUnit_HelperUnits();
+ }
+
+ /**
+ * @generated
+ */
+ @SuppressWarnings("rawtypes")
+ protected List getSemanticChildrenList() {
+ View viewObject = (View) getHost().getModel();
+ LinkedList<EObject> result = new LinkedList<EObject>();
+ List<ComrelNodeDescriptor> childDescriptors = ComrelDiagramUpdater
+ .getConditionalUnitConditionalUnitHelperUnitsCompartment_7052SemanticChildren(viewObject);
+ for (ComrelNodeDescriptor d : childDescriptors) {
+ result.add(d.getModelElement());
+ }
+ return result;
+ }
+
+ /**
+ * @generated
+ */
+ protected boolean isOrphaned(Collection<EObject> semanticChildren,
+ final View view) {
+ return isMyDiagramElement(view)
+ && !semanticChildren.contains(view.getElement());
+ }
+
+ /**
+ * @generated
+ */
+ private boolean isMyDiagramElement(View view) {
+ int visualID = ComrelVisualIDRegistry.getVisualID(view);
+ switch (visualID) {
+ case SingleFeatureUnit3EditPart.VISUAL_ID:
+ case MultiFeatureUnit3EditPart.VISUAL_ID:
+ case SingleFilterUnit3EditPart.VISUAL_ID:
+ case MultiFilterUnit3EditPart.VISUAL_ID:
+ return true;
+ }
+ return false;
+ }
+
+ /**
+ * @generated
+ */
+ protected void refreshSemantic() {
+ if (resolveSemanticElement() == null) {
+ return;
+ }
+ LinkedList<IAdaptable> createdViews = new LinkedList<IAdaptable>();
+ List<ComrelNodeDescriptor> childDescriptors = ComrelDiagramUpdater
+ .getConditionalUnitConditionalUnitHelperUnitsCompartment_7052SemanticChildren((View) getHost()
+ .getModel());
+ LinkedList<View> orphaned = new LinkedList<View>();
+ // we care to check only views we recognize as ours
+ LinkedList<View> knownViewChildren = new LinkedList<View>();
+ for (View v : getViewChildren()) {
+ if (isMyDiagramElement(v)) {
+ knownViewChildren.add(v);
+ }
+ }
+ // alternative to #cleanCanonicalSemanticChildren(getViewChildren(), semanticChildren)
+ //
+ // iteration happens over list of desired semantic elements, trying to find best matching View, while original CEP
+ // iterates views, potentially losing view (size/bounds) information - i.e. if there are few views to reference same EObject, only last one
+ // to answer isOrphaned == true will be used for the domain element representation, see #cleanCanonicalSemanticChildren()
+ for (Iterator<ComrelNodeDescriptor> descriptorsIterator = childDescriptors
+ .iterator(); descriptorsIterator.hasNext();) {
+ ComrelNodeDescriptor next = descriptorsIterator.next();
+ String hint = ComrelVisualIDRegistry.getType(next.getVisualID());
+ LinkedList<View> perfectMatch = new LinkedList<View>(); // both semanticElement and hint match that of NodeDescriptor
+ for (View childView : getViewChildren()) {
+ EObject semanticElement = childView.getElement();
+ if (next.getModelElement().equals(semanticElement)) {
+ if (hint.equals(childView.getType())) {
+ perfectMatch.add(childView);
+ // actually, can stop iteration over view children here, but
+ // may want to use not the first view but last one as a 'real' match (the way original CEP does
+ // with its trick with viewToSemanticMap inside #cleanCanonicalSemanticChildren
+ }
+ }
+ }
+ if (perfectMatch.size() > 0) {
+ descriptorsIterator.remove(); // precise match found no need to create anything for the NodeDescriptor
+ // use only one view (first or last?), keep rest as orphaned for further consideration
+ knownViewChildren.remove(perfectMatch.getFirst());
+ }
+ }
+ // those left in knownViewChildren are subject to removal - they are our diagram elements we didn't find match to,
+ // or those we have potential matches to, and thus need to be recreated, preserving size/location information.
+ orphaned.addAll(knownViewChildren);
+ //
+ ArrayList<CreateViewRequest.ViewDescriptor> viewDescriptors = new ArrayList<CreateViewRequest.ViewDescriptor>(
+ childDescriptors.size());
+ for (ComrelNodeDescriptor next : childDescriptors) {
+ String hint = ComrelVisualIDRegistry.getType(next.getVisualID());
+ IAdaptable elementAdapter = new CanonicalElementAdapter(
+ next.getModelElement(), hint);
+ CreateViewRequest.ViewDescriptor descriptor = new CreateViewRequest.ViewDescriptor(
+ elementAdapter, Node.class, hint, ViewUtil.APPEND, false,
+ host().getDiagramPreferencesHint());
+ viewDescriptors.add(descriptor);
+ }
+
+ boolean changed = deleteViews(orphaned.iterator());
+ //
+ CreateViewRequest request = getCreateViewRequest(viewDescriptors);
+ Command cmd = getCreateViewCommand(request);
+ if (cmd != null && cmd.canExecute()) {
+ SetViewMutabilityCommand.makeMutable(
+ new EObjectAdapter(host().getNotationView())).execute();
+ executeCommand(cmd);
+ @SuppressWarnings("unchecked")
+ List<IAdaptable> nl = (List<IAdaptable>) request.getNewObject();
+ createdViews.addAll(nl);
+ }
+ if (changed || createdViews.size() > 0) {
+ postProcessRefreshSemantic(createdViews);
+ }
+ if (createdViews.size() > 1) {
+ // perform a layout of the container
+ DeferredLayoutCommand layoutCmd = new DeferredLayoutCommand(host()
+ .getEditingDomain(), createdViews, host());
+ executeCommand(new ICommandProxy(layoutCmd));
+ }
+
+ makeViewsImmutable(createdViews);
+ }
+}
diff --git a/org.eclipse.emf.refactor.comrel.diagram/src/comrel/diagram/edit/policies/ConditionalUnitConditionalUnitHelperUnitsCompartment3ItemSemanticEditPolicy.java b/org.eclipse.emf.refactor.comrel.diagram/src/comrel/diagram/edit/policies/ConditionalUnitConditionalUnitHelperUnitsCompartment3ItemSemanticEditPolicy.java
new file mode 100644
index 0000000..77b5b46
--- /dev/null
+++ b/org.eclipse.emf.refactor.comrel.diagram/src/comrel/diagram/edit/policies/ConditionalUnitConditionalUnitHelperUnitsCompartment3ItemSemanticEditPolicy.java
@@ -0,0 +1,47 @@
+/*
+ *
+ */
+package comrel.diagram.edit.policies;
+
+import org.eclipse.gef.commands.Command;
+import org.eclipse.gmf.runtime.emf.type.core.requests.CreateElementRequest;
+
+import comrel.diagram.edit.commands.MultiFeatureUnit3CreateCommand;
+import comrel.diagram.edit.commands.MultiFilterUnit3CreateCommand;
+import comrel.diagram.edit.commands.SingleFeatureUnit3CreateCommand;
+import comrel.diagram.edit.commands.SingleFilterUnit3CreateCommand;
+import comrel.diagram.providers.ComrelElementTypes;
+
+/**
+ * @generated
+ */
+public class ConditionalUnitConditionalUnitHelperUnitsCompartment3ItemSemanticEditPolicy
+ extends ComrelBaseItemSemanticEditPolicy {
+
+ /**
+ * @generated
+ */
+ public ConditionalUnitConditionalUnitHelperUnitsCompartment3ItemSemanticEditPolicy() {
+ super(ComrelElementTypes.ConditionalUnit_3066);
+ }
+
+ /**
+ * @generated
+ */
+ protected Command getCreateCommand(CreateElementRequest req) {
+ if (ComrelElementTypes.SingleFeatureUnit_3050 == req.getElementType()) {
+ return getGEFWrapper(new SingleFeatureUnit3CreateCommand(req));
+ }
+ if (ComrelElementTypes.MultiFeatureUnit_3051 == req.getElementType()) {
+ return getGEFWrapper(new MultiFeatureUnit3CreateCommand(req));
+ }
+ if (ComrelElementTypes.SingleFilterUnit_3052 == req.getElementType()) {
+ return getGEFWrapper(new SingleFilterUnit3CreateCommand(req));
+ }
+ if (ComrelElementTypes.MultiFilterUnit_3053 == req.getElementType()) {
+ return getGEFWrapper(new MultiFilterUnit3CreateCommand(req));
+ }
+ return super.getCreateCommand(req);
+ }
+
+}
diff --git a/org.eclipse.emf.refactor.comrel.diagram/src/comrel/diagram/edit/policies/ConditionalUnitConditionalUnitHelperUnitsCompartment4CanonicalEditPolicy.java b/org.eclipse.emf.refactor.comrel.diagram/src/comrel/diagram/edit/policies/ConditionalUnitConditionalUnitHelperUnitsCompartment4CanonicalEditPolicy.java
new file mode 100644
index 0000000..03337cb
--- /dev/null
+++ b/org.eclipse.emf.refactor.comrel.diagram/src/comrel/diagram/edit/policies/ConditionalUnitConditionalUnitHelperUnitsCompartment4CanonicalEditPolicy.java
@@ -0,0 +1,173 @@
+/*
+ *
+ */
+package comrel.diagram.edit.policies;
+
+import java.util.ArrayList;
+import java.util.Collection;
+import java.util.Iterator;
+import java.util.LinkedList;
+import java.util.List;
+
+import org.eclipse.core.runtime.IAdaptable;
+import org.eclipse.emf.ecore.EObject;
+import org.eclipse.emf.ecore.EStructuralFeature;
+import org.eclipse.gef.commands.Command;
+import org.eclipse.gmf.runtime.diagram.core.util.ViewUtil;
+import org.eclipse.gmf.runtime.diagram.ui.commands.DeferredLayoutCommand;
+import org.eclipse.gmf.runtime.diagram.ui.commands.ICommandProxy;
+import org.eclipse.gmf.runtime.diagram.ui.commands.SetViewMutabilityCommand;
+import org.eclipse.gmf.runtime.diagram.ui.editpolicies.CanonicalEditPolicy;
+import org.eclipse.gmf.runtime.diagram.ui.requests.CreateViewRequest;
+import org.eclipse.gmf.runtime.emf.core.util.EObjectAdapter;
+import org.eclipse.gmf.runtime.notation.Node;
+import org.eclipse.gmf.runtime.notation.View;
+
+import comrel.ComrelPackage;
+import comrel.diagram.edit.parts.MultiFeatureUnit3EditPart;
+import comrel.diagram.edit.parts.MultiFilterUnit3EditPart;
+import comrel.diagram.edit.parts.SingleFeatureUnit3EditPart;
+import comrel.diagram.edit.parts.SingleFilterUnit3EditPart;
+import comrel.diagram.part.ComrelDiagramUpdater;
+import comrel.diagram.part.ComrelNodeDescriptor;
+import comrel.diagram.part.ComrelVisualIDRegistry;
+
+/**
+ * @generated
+ */
+public class ConditionalUnitConditionalUnitHelperUnitsCompartment4CanonicalEditPolicy
+ extends CanonicalEditPolicy {
+
+ /**
+ * @generated
+ */
+ protected EStructuralFeature getFeatureToSynchronize() {
+ return ComrelPackage.eINSTANCE.getConditionalUnit_HelperUnits();
+ }
+
+ /**
+ * @generated
+ */
+ @SuppressWarnings("rawtypes")
+ protected List getSemanticChildrenList() {
+ View viewObject = (View) getHost().getModel();
+ LinkedList<EObject> result = new LinkedList<EObject>();
+ List<ComrelNodeDescriptor> childDescriptors = ComrelDiagramUpdater
+ .getConditionalUnitConditionalUnitHelperUnitsCompartment_7062SemanticChildren(viewObject);
+ for (ComrelNodeDescriptor d : childDescriptors) {
+ result.add(d.getModelElement());
+ }
+ return result;
+ }
+
+ /**
+ * @generated
+ */
+ protected boolean isOrphaned(Collection<EObject> semanticChildren,
+ final View view) {
+ return isMyDiagramElement(view)
+ && !semanticChildren.contains(view.getElement());
+ }
+
+ /**
+ * @generated
+ */
+ private boolean isMyDiagramElement(View view) {
+ int visualID = ComrelVisualIDRegistry.getVisualID(view);
+ switch (visualID) {
+ case SingleFeatureUnit3EditPart.VISUAL_ID:
+ case MultiFeatureUnit3EditPart.VISUAL_ID:
+ case SingleFilterUnit3EditPart.VISUAL_ID:
+ case MultiFilterUnit3EditPart.VISUAL_ID:
+ return true;
+ }
+ return false;
+ }
+
+ /**
+ * @generated
+ */
+ protected void refreshSemantic() {
+ if (resolveSemanticElement() == null) {
+ return;
+ }
+ LinkedList<IAdaptable> createdViews = new LinkedList<IAdaptable>();
+ List<ComrelNodeDescriptor> childDescriptors = ComrelDiagramUpdater
+ .getConditionalUnitConditionalUnitHelperUnitsCompartment_7062SemanticChildren((View) getHost()
+ .getModel());
+ LinkedList<View> orphaned = new LinkedList<View>();
+ // we care to check only views we recognize as ours
+ LinkedList<View> knownViewChildren = new LinkedList<View>();
+ for (View v : getViewChildren()) {
+ if (isMyDiagramElement(v)) {
+ knownViewChildren.add(v);
+ }
+ }
+ // alternative to #cleanCanonicalSemanticChildren(getViewChildren(), semanticChildren)
+ //
+ // iteration happens over list of desired semantic elements, trying to find best matching View, while original CEP
+ // iterates views, potentially losing view (size/bounds) information - i.e. if there are few views to reference same EObject, only last one
+ // to answer isOrphaned == true will be used for the domain element representation, see #cleanCanonicalSemanticChildren()
+ for (Iterator<ComrelNodeDescriptor> descriptorsIterator = childDescriptors
+ .iterator(); descriptorsIterator.hasNext();) {
+ ComrelNodeDescriptor next = descriptorsIterator.next();
+ String hint = ComrelVisualIDRegistry.getType(next.getVisualID());
+ LinkedList<View> perfectMatch = new LinkedList<View>(); // both semanticElement and hint match that of NodeDescriptor
+ for (View childView : getViewChildren()) {
+ EObject semanticElement = childView.getElement();
+ if (next.getModelElement().equals(semanticElement)) {
+ if (hint.equals(childView.getType())) {
+ perfectMatch.add(childView);
+ // actually, can stop iteration over view children here, but
+ // may want to use not the first view but last one as a 'real' match (the way original CEP does
+ // with its trick with viewToSemanticMap inside #cleanCanonicalSemanticChildren
+ }
+ }
+ }
+ if (perfectMatch.size() > 0) {
+ descriptorsIterator.remove(); // precise match found no need to create anything for the NodeDescriptor
+ // use only one view (first or last?), keep rest as orphaned for further consideration
+ knownViewChildren.remove(perfectMatch.getFirst());
+ }
+ }
+ // those left in knownViewChildren are subject to removal - they are our diagram elements we didn't find match to,
+ // or those we have potential matches to, and thus need to be recreated, preserving size/location information.
+ orphaned.addAll(knownViewChildren);
+ //
+ ArrayList<CreateViewRequest.ViewDescriptor> viewDescriptors = new ArrayList<CreateViewRequest.ViewDescriptor>(
+ childDescriptors.size());
+ for (ComrelNodeDescriptor next : childDescriptors) {
+ String hint = ComrelVisualIDRegistry.getType(next.getVisualID());
+ IAdaptable elementAdapter = new CanonicalElementAdapter(
+ next.getModelElement(), hint);
+ CreateViewRequest.ViewDescriptor descriptor = new CreateViewRequest.ViewDescriptor(
+ elementAdapter, Node.class, hint, ViewUtil.APPEND, false,
+ host().getDiagramPreferencesHint());
+ viewDescriptors.add(descriptor);
+ }
+
+ boolean changed = deleteViews(orphaned.iterator());
+ //
+ CreateViewRequest request = getCreateViewRequest(viewDescriptors);
+ Command cmd = getCreateViewCommand(request);
+ if (cmd != null && cmd.canExecute()) {
+ SetViewMutabilityCommand.makeMutable(
+ new EObjectAdapter(host().getNotationView())).execute();
+ executeCommand(cmd);
+ @SuppressWarnings("unchecked")
+ List<IAdaptable> nl = (List<IAdaptable>) request.getNewObject();
+ createdViews.addAll(nl);
+ }
+ if (changed || createdViews.size() > 0) {
+ postProcessRefreshSemantic(createdViews);
+ }
+ if (createdViews.size() > 1) {
+ // perform a layout of the container
+ DeferredLayoutCommand layoutCmd = new DeferredLayoutCommand(host()
+ .getEditingDomain(), createdViews, host());
+ executeCommand(new ICommandProxy(layoutCmd));
+ }
+
+ makeViewsImmutable(createdViews);
+ }
+}
diff --git a/org.eclipse.emf.refactor.comrel.diagram/src/comrel/diagram/edit/policies/ConditionalUnitConditionalUnitHelperUnitsCompartment4ItemSemanticEditPolicy.java b/org.eclipse.emf.refactor.comrel.diagram/src/comrel/diagram/edit/policies/ConditionalUnitConditionalUnitHelperUnitsCompartment4ItemSemanticEditPolicy.java
new file mode 100644
index 0000000..db7ede1
--- /dev/null
+++ b/org.eclipse.emf.refactor.comrel.diagram/src/comrel/diagram/edit/policies/ConditionalUnitConditionalUnitHelperUnitsCompartment4ItemSemanticEditPolicy.java
@@ -0,0 +1,47 @@
+/*
+ *
+ */
+package comrel.diagram.edit.policies;
+
+import org.eclipse.gef.commands.Command;
+import org.eclipse.gmf.runtime.emf.type.core.requests.CreateElementRequest;
+
+import comrel.diagram.edit.commands.MultiFeatureUnit3CreateCommand;
+import comrel.diagram.edit.commands.MultiFilterUnit3CreateCommand;
+import comrel.diagram.edit.commands.SingleFeatureUnit3CreateCommand;
+import comrel.diagram.edit.commands.SingleFilterUnit3CreateCommand;
+import comrel.diagram.providers.ComrelElementTypes;
+
+/**
+ * @generated
+ */
+public class ConditionalUnitConditionalUnitHelperUnitsCompartment4ItemSemanticEditPolicy
+ extends ComrelBaseItemSemanticEditPolicy {
+
+ /**
+ * @generated
+ */
+ public ConditionalUnitConditionalUnitHelperUnitsCompartment4ItemSemanticEditPolicy() {
+ super(ComrelElementTypes.ConditionalUnit_3071);
+ }
+
+ /**
+ * @generated
+ */
+ protected Command getCreateCommand(CreateElementRequest req) {
+ if (ComrelElementTypes.SingleFeatureUnit_3050 == req.getElementType()) {
+ return getGEFWrapper(new SingleFeatureUnit3CreateCommand(req));
+ }
+ if (ComrelElementTypes.MultiFeatureUnit_3051 == req.getElementType()) {
+ return getGEFWrapper(new MultiFeatureUnit3CreateCommand(req));
+ }
+ if (ComrelElementTypes.SingleFilterUnit_3052 == req.getElementType()) {
+ return getGEFWrapper(new SingleFilterUnit3CreateCommand(req));
+ }
+ if (ComrelElementTypes.MultiFilterUnit_3053 == req.getElementType()) {
+ return getGEFWrapper(new MultiFilterUnit3CreateCommand(req));
+ }
+ return super.getCreateCommand(req);
+ }
+
+}
diff --git a/org.eclipse.emf.refactor.comrel.diagram/src/comrel/diagram/edit/policies/ConditionalUnitConditionalUnitHelperUnitsCompartment5CanonicalEditPolicy.java b/org.eclipse.emf.refactor.comrel.diagram/src/comrel/diagram/edit/policies/ConditionalUnitConditionalUnitHelperUnitsCompartment5CanonicalEditPolicy.java
new file mode 100644
index 0000000..1dfc9e2
--- /dev/null
+++ b/org.eclipse.emf.refactor.comrel.diagram/src/comrel/diagram/edit/policies/ConditionalUnitConditionalUnitHelperUnitsCompartment5CanonicalEditPolicy.java
@@ -0,0 +1,173 @@
+/*
+ *
+ */
+package comrel.diagram.edit.policies;
+
+import java.util.ArrayList;
+import java.util.Collection;
+import java.util.Iterator;
+import java.util.LinkedList;
+import java.util.List;
+
+import org.eclipse.core.runtime.IAdaptable;
+import org.eclipse.emf.ecore.EObject;
+import org.eclipse.emf.ecore.EStructuralFeature;
+import org.eclipse.gef.commands.Command;
+import org.eclipse.gmf.runtime.diagram.core.util.ViewUtil;
+import org.eclipse.gmf.runtime.diagram.ui.commands.DeferredLayoutCommand;
+import org.eclipse.gmf.runtime.diagram.ui.commands.ICommandProxy;
+import org.eclipse.gmf.runtime.diagram.ui.commands.SetViewMutabilityCommand;
+import org.eclipse.gmf.runtime.diagram.ui.editpolicies.CanonicalEditPolicy;
+import org.eclipse.gmf.runtime.diagram.ui.requests.CreateViewRequest;
+import org.eclipse.gmf.runtime.emf.core.util.EObjectAdapter;
+import org.eclipse.gmf.runtime.notation.Node;
+import org.eclipse.gmf.runtime.notation.View;
+
+import comrel.ComrelPackage;
+import comrel.diagram.edit.parts.MultiFeatureUnit3EditPart;
+import comrel.diagram.edit.parts.MultiFilterUnit3EditPart;
+import comrel.diagram.edit.parts.SingleFeatureUnit3EditPart;
+import comrel.diagram.edit.parts.SingleFilterUnit3EditPart;
+import comrel.diagram.part.ComrelDiagramUpdater;
+import comrel.diagram.part.ComrelNodeDescriptor;
+import comrel.diagram.part.ComrelVisualIDRegistry;
+
+/**
+ * @generated
+ */
+public class ConditionalUnitConditionalUnitHelperUnitsCompartment5CanonicalEditPolicy
+ extends CanonicalEditPolicy {
+
+ /**
+ * @generated
+ */
+ protected EStructuralFeature getFeatureToSynchronize() {
+ return ComrelPackage.eINSTANCE.getConditionalUnit_HelperUnits();
+ }
+
+ /**
+ * @generated
+ */
+ @SuppressWarnings("rawtypes")
+ protected List getSemanticChildrenList() {
+ View viewObject = (View) getHost().getModel();
+ LinkedList<EObject> result = new LinkedList<EObject>();
+ List<ComrelNodeDescriptor> childDescriptors = ComrelDiagramUpdater
+ .getConditionalUnitConditionalUnitHelperUnitsCompartment_7066SemanticChildren(viewObject);
+ for (ComrelNodeDescriptor d : childDescriptors) {
+ result.add(d.getModelElement());
+ }
+ return result;
+ }
+
+ /**
+ * @generated
+ */
+ protected boolean isOrphaned(Collection<EObject> semanticChildren,
+ final View view) {
+ return isMyDiagramElement(view)
+ && !semanticChildren.contains(view.getElement());
+ }
+
+ /**
+ * @generated
+ */
+ private boolean isMyDiagramElement(View view) {
+ int visualID = ComrelVisualIDRegistry.getVisualID(view);
+ switch (visualID) {
+ case SingleFeatureUnit3EditPart.VISUAL_ID:
+ case MultiFeatureUnit3EditPart.VISUAL_ID:
+ case SingleFilterUnit3EditPart.VISUAL_ID:
+ case MultiFilterUnit3EditPart.VISUAL_ID:
+ return true;
+ }
+ return false;
+ }
+
+ /**
+ * @generated
+ */
+ protected void refreshSemantic() {
+ if (resolveSemanticElement() == null) {
+ return;
+ }
+ LinkedList<IAdaptable> createdViews = new LinkedList<IAdaptable>();
+ List<ComrelNodeDescriptor> childDescriptors = ComrelDiagramUpdater
+ .getConditionalUnitConditionalUnitHelperUnitsCompartment_7066SemanticChildren((View) getHost()
+ .getModel());
+ LinkedList<View> orphaned = new LinkedList<View>();
+ // we care to check only views we recognize as ours
+ LinkedList<View> knownViewChildren = new LinkedList<View>();
+ for (View v : getViewChildren()) {
+ if (isMyDiagramElement(v)) {
+ knownViewChildren.add(v);
+ }
+ }
+ // alternative to #cleanCanonicalSemanticChildren(getViewChildren(), semanticChildren)
+ //
+ // iteration happens over list of desired semantic elements, trying to find best matching View, while original CEP
+ // iterates views, potentially losing view (size/bounds) information - i.e. if there are few views to reference same EObject, only last one
+ // to answer isOrphaned == true will be used for the domain element representation, see #cleanCanonicalSemanticChildren()
+ for (Iterator<ComrelNodeDescriptor> descriptorsIterator = childDescriptors
+ .iterator(); descriptorsIterator.hasNext();) {
+ ComrelNodeDescriptor next = descriptorsIterator.next();
+ String hint = ComrelVisualIDRegistry.getType(next.getVisualID());
+ LinkedList<View> perfectMatch = new LinkedList<View>(); // both semanticElement and hint match that of NodeDescriptor
+ for (View childView : getViewChildren()) {
+ EObject semanticElement = childView.getElement();
+ if (next.getModelElement().equals(semanticElement)) {
+ if (hint.equals(childView.getType())) {
+ perfectMatch.add(childView);
+ // actually, can stop iteration over view children here, but
+ // may want to use not the first view but last one as a 'real' match (the way original CEP does
+ // with its trick with viewToSemanticMap inside #cleanCanonicalSemanticChildren
+ }
+ }
+ }
+ if (perfectMatch.size() > 0) {
+ descriptorsIterator.remove(); // precise match found no need to create anything for the NodeDescriptor
+ // use only one view (first or last?), keep rest as orphaned for further consideration
+ knownViewChildren.remove(perfectMatch.getFirst());
+ }
+ }
+ // those left in knownViewChildren are subject to removal - they are our diagram elements we didn't find match to,
+ // or those we have potential matches to, and thus need to be recreated, preserving size/location information.
+ orphaned.addAll(knownViewChildren);
+ //
+ ArrayList<CreateViewRequest.ViewDescriptor> viewDescriptors = new ArrayList<CreateViewRequest.ViewDescriptor>(
+ childDescriptors.size());
+ for (ComrelNodeDescriptor next : childDescriptors) {
+ String hint = ComrelVisualIDRegistry.getType(next.getVisualID());
+ IAdaptable elementAdapter = new CanonicalElementAdapter(
+ next.getModelElement(), hint);
+ CreateViewRequest.ViewDescriptor descriptor = new CreateViewRequest.ViewDescriptor(
+ elementAdapter, Node.class, hint, ViewUtil.APPEND, false,
+ host().getDiagramPreferencesHint());
+ viewDescriptors.add(descriptor);
+ }
+
+ boolean changed = deleteViews(orphaned.iterator());
+ //
+ CreateViewRequest request = getCreateViewRequest(viewDescriptors);
+ Command cmd = getCreateViewCommand(request);
+ if (cmd != null && cmd.canExecute()) {
+ SetViewMutabilityCommand.makeMutable(
+ new EObjectAdapter(host().getNotationView())).execute();
+ executeCommand(cmd);
+ @SuppressWarnings("unchecked")
+ List<IAdaptable> nl = (List<IAdaptable>) request.getNewObject();
+ createdViews.addAll(nl);
+ }
+ if (changed || createdViews.size() > 0) {
+ postProcessRefreshSemantic(createdViews);
+ }
+ if (createdViews.size() > 1) {
+ // perform a layout of the container
+ DeferredLayoutCommand layoutCmd = new DeferredLayoutCommand(host()
+ .getEditingDomain(), createdViews, host());
+ executeCommand(new ICommandProxy(layoutCmd));
+ }
+
+ makeViewsImmutable(createdViews);
+ }
+}
diff --git a/org.eclipse.emf.refactor.comrel.diagram/src/comrel/diagram/edit/policies/ConditionalUnitConditionalUnitHelperUnitsCompartment5ItemSemanticEditPolicy.java b/org.eclipse.emf.refactor.comrel.diagram/src/comrel/diagram/edit/policies/ConditionalUnitConditionalUnitHelperUnitsCompartment5ItemSemanticEditPolicy.java
new file mode 100644
index 0000000..f8e9e65
--- /dev/null
+++ b/org.eclipse.emf.refactor.comrel.diagram/src/comrel/diagram/edit/policies/ConditionalUnitConditionalUnitHelperUnitsCompartment5ItemSemanticEditPolicy.java
@@ -0,0 +1,47 @@
+/*
+ *
+ */
+package comrel.diagram.edit.policies;
+
+import org.eclipse.gef.commands.Command;
+import org.eclipse.gmf.runtime.emf.type.core.requests.CreateElementRequest;
+
+import comrel.diagram.edit.commands.MultiFeatureUnit3CreateCommand;
+import comrel.diagram.edit.commands.MultiFilterUnit3CreateCommand;
+import comrel.diagram.edit.commands.SingleFeatureUnit3CreateCommand;
+import comrel.diagram.edit.commands.SingleFilterUnit3CreateCommand;
+import comrel.diagram.providers.ComrelElementTypes;
+
+/**
+ * @generated
+ */
+public class ConditionalUnitConditionalUnitHelperUnitsCompartment5ItemSemanticEditPolicy
+ extends ComrelBaseItemSemanticEditPolicy {
+
+ /**
+ * @generated
+ */
+ public ConditionalUnitConditionalUnitHelperUnitsCompartment5ItemSemanticEditPolicy() {
+ super(ComrelElementTypes.ConditionalUnit_3072);
+ }
+
+ /**
+ * @generated
+ */
+ protected Command getCreateCommand(CreateElementRequest req) {
+ if (ComrelElementTypes.SingleFeatureUnit_3050 == req.getElementType()) {
+ return getGEFWrapper(new SingleFeatureUnit3CreateCommand(req));
+ }
+ if (ComrelElementTypes.MultiFeatureUnit_3051 == req.getElementType()) {
+ return getGEFWrapper(new MultiFeatureUnit3CreateCommand(req));
+ }
+ if (ComrelElementTypes.SingleFilterUnit_3052 == req.getElementType()) {
+ return getGEFWrapper(new SingleFilterUnit3CreateCommand(req));
+ }
+ if (ComrelElementTypes.MultiFilterUnit_3053 == req.getElementType()) {
+ return getGEFWrapper(new MultiFilterUnit3CreateCommand(req));
+ }
+ return super.getCreateCommand(req);
+ }
+
+}
diff --git a/org.eclipse.emf.refactor.comrel.diagram/src/comrel/diagram/edit/policies/ConditionalUnitConditionalUnitHelperUnitsCompartment6CanonicalEditPolicy.java b/org.eclipse.emf.refactor.comrel.diagram/src/comrel/diagram/edit/policies/ConditionalUnitConditionalUnitHelperUnitsCompartment6CanonicalEditPolicy.java
new file mode 100644
index 0000000..b5ea562
--- /dev/null
+++ b/org.eclipse.emf.refactor.comrel.diagram/src/comrel/diagram/edit/policies/ConditionalUnitConditionalUnitHelperUnitsCompartment6CanonicalEditPolicy.java
@@ -0,0 +1,173 @@
+/*
+ *
+ */
+package comrel.diagram.edit.policies;
+
+import java.util.ArrayList;
+import java.util.Collection;
+import java.util.Iterator;
+import java.util.LinkedList;
+import java.util.List;
+
+import org.eclipse.core.runtime.IAdaptable;
+import org.eclipse.emf.ecore.EObject;
+import org.eclipse.emf.ecore.EStructuralFeature;
+import org.eclipse.gef.commands.Command;
+import org.eclipse.gmf.runtime.diagram.core.util.ViewUtil;
+import org.eclipse.gmf.runtime.diagram.ui.commands.DeferredLayoutCommand;
+import org.eclipse.gmf.runtime.diagram.ui.commands.ICommandProxy;
+import org.eclipse.gmf.runtime.diagram.ui.commands.SetViewMutabilityCommand;
+import org.eclipse.gmf.runtime.diagram.ui.editpolicies.CanonicalEditPolicy;
+import org.eclipse.gmf.runtime.diagram.ui.requests.CreateViewRequest;
+import org.eclipse.gmf.runtime.emf.core.util.EObjectAdapter;
+import org.eclipse.gmf.runtime.notation.Node;
+import org.eclipse.gmf.runtime.notation.View;
+
+import comrel.ComrelPackage;
+import comrel.diagram.edit.parts.MultiFeatureUnit3EditPart;
+import comrel.diagram.edit.parts.MultiFilterUnit3EditPart;
+import comrel.diagram.edit.parts.SingleFeatureUnit3EditPart;
+import comrel.diagram.edit.parts.SingleFilterUnit3EditPart;
+import comrel.diagram.part.ComrelDiagramUpdater;
+import comrel.diagram.part.ComrelNodeDescriptor;
+import comrel.diagram.part.ComrelVisualIDRegistry;
+
+/**
+ * @generated
+ */
+public class ConditionalUnitConditionalUnitHelperUnitsCompartment6CanonicalEditPolicy
+ extends CanonicalEditPolicy {
+
+ /**
+ * @generated
+ */
+ protected EStructuralFeature getFeatureToSynchronize() {
+ return ComrelPackage.eINSTANCE.getConditionalUnit_HelperUnits();
+ }
+
+ /**
+ * @generated
+ */
+ @SuppressWarnings("rawtypes")
+ protected List getSemanticChildrenList() {
+ View viewObject = (View) getHost().getModel();
+ LinkedList<EObject> result = new LinkedList<EObject>();
+ List<ComrelNodeDescriptor> childDescriptors = ComrelDiagramUpdater
+ .getConditionalUnitConditionalUnitHelperUnitsCompartment_7072SemanticChildren(viewObject);
+ for (ComrelNodeDescriptor d : childDescriptors) {
+ result.add(d.getModelElement());
+ }
+ return result;
+ }
+
+ /**
+ * @generated
+ */
+ protected boolean isOrphaned(Collection<EObject> semanticChildren,
+ final View view) {
+ return isMyDiagramElement(view)
+ && !semanticChildren.contains(view.getElement());
+ }
+
+ /**
+ * @generated
+ */
+ private boolean isMyDiagramElement(View view) {
+ int visualID = ComrelVisualIDRegistry.getVisualID(view);
+ switch (visualID) {
+ case SingleFeatureUnit3EditPart.VISUAL_ID:
+ case MultiFeatureUnit3EditPart.VISUAL_ID:
+ case SingleFilterUnit3EditPart.VISUAL_ID:
+ case MultiFilterUnit3EditPart.VISUAL_ID:
+ return true;
+ }
+ return false;
+ }
+
+ /**
+ * @generated
+ */
+ protected void refreshSemantic() {
+ if (resolveSemanticElement() == null) {
+ return;
+ }
+ LinkedList<IAdaptable> createdViews = new LinkedList<IAdaptable>();
+ List<ComrelNodeDescriptor> childDescriptors = ComrelDiagramUpdater
+ .getConditionalUnitConditionalUnitHelperUnitsCompartment_7072SemanticChildren((View) getHost()
+ .getModel());
+ LinkedList<View> orphaned = new LinkedList<View>();
+ // we care to check only views we recognize as ours
+ LinkedList<View> knownViewChildren = new LinkedList<View>();
+ for (View v : getViewChildren()) {
+ if (isMyDiagramElement(v)) {
+ knownViewChildren.add(v);
+ }
+ }
+ // alternative to #cleanCanonicalSemanticChildren(getViewChildren(), semanticChildren)
+ //
+ // iteration happens over list of desired semantic elements, trying to find best matching View, while original CEP
+ // iterates views, potentially losing view (size/bounds) information - i.e. if there are few views to reference same EObject, only last one
+ // to answer isOrphaned == true will be used for the domain element representation, see #cleanCanonicalSemanticChildren()
+ for (Iterator<ComrelNodeDescriptor> descriptorsIterator = childDescriptors
+ .iterator(); descriptorsIterator.hasNext();) {
+ ComrelNodeDescriptor next = descriptorsIterator.next();
+ String hint = ComrelVisualIDRegistry.getType(next.getVisualID());
+ LinkedList<View> perfectMatch = new LinkedList<View>(); // both semanticElement and hint match that of NodeDescriptor
+ for (View childView : getViewChildren()) {
+ EObject semanticElement = childView.getElement();
+ if (next.getModelElement().equals(semanticElement)) {
+ if (hint.equals(childView.getType())) {
+ perfectMatch.add(childView);
+ // actually, can stop iteration over view children here, but
+ // may want to use not the first view but last one as a 'real' match (the way original CEP does
+ // with its trick with viewToSemanticMap inside #cleanCanonicalSemanticChildren
+ }
+ }
+ }
+ if (perfectMatch.size() > 0) {
+ descriptorsIterator.remove(); // precise match found no need to create anything for the NodeDescriptor
+ // use only one view (first or last?), keep rest as orphaned for further consideration
+ knownViewChildren.remove(perfectMatch.getFirst());
+ }
+ }
+ // those left in knownViewChildren are subject to removal - they are our diagram elements we didn't find match to,
+ // or those we have potential matches to, and thus need to be recreated, preserving size/location information.
+ orphaned.addAll(knownViewChildren);
+ //
+ ArrayList<CreateViewRequest.ViewDescriptor> viewDescriptors = new ArrayList<CreateViewRequest.ViewDescriptor>(
+ childDescriptors.size());
+ for (ComrelNodeDescriptor next : childDescriptors) {
+ String hint = ComrelVisualIDRegistry.getType(next.getVisualID());
+ IAdaptable elementAdapter = new CanonicalElementAdapter(
+ next.getModelElement(), hint);
+ CreateViewRequest.ViewDescriptor descriptor = new CreateViewRequest.ViewDescriptor(
+ elementAdapter, Node.class, hint, ViewUtil.APPEND, false,
+ host().getDiagramPreferencesHint());
+ viewDescriptors.add(descriptor);
+ }
+
+ boolean changed = deleteViews(orphaned.iterator());
+ //
+ CreateViewRequest request = getCreateViewRequest(viewDescriptors);
+ Command cmd = getCreateViewCommand(request);
+ if (cmd != null && cmd.canExecute()) {
+ SetViewMutabilityCommand.makeMutable(
+ new EObjectAdapter(host().getNotationView())).execute();
+ executeCommand(cmd);
+ @SuppressWarnings("unchecked")
+ List<IAdaptable> nl = (List<IAdaptable>) request.getNewObject();
+ createdViews.addAll(nl);
+ }
+ if (changed || createdViews.size() > 0) {
+ postProcessRefreshSemantic(createdViews);
+ }
+ if (createdViews.size() > 1) {
+ // perform a layout of the container
+ DeferredLayoutCommand layoutCmd = new DeferredLayoutCommand(host()
+ .getEditingDomain(), createdViews, host());
+ executeCommand(new ICommandProxy(layoutCmd));
+ }
+
+ makeViewsImmutable(createdViews);
+ }
+}
diff --git a/org.eclipse.emf.refactor.comrel.diagram/src/comrel/diagram/edit/policies/ConditionalUnitConditionalUnitHelperUnitsCompartment6ItemSemanticEditPolicy.java b/org.eclipse.emf.refactor.comrel.diagram/src/comrel/diagram/edit/policies/ConditionalUnitConditionalUnitHelperUnitsCompartment6ItemSemanticEditPolicy.java
new file mode 100644
index 0000000..b855fe7
--- /dev/null
+++ b/org.eclipse.emf.refactor.comrel.diagram/src/comrel/diagram/edit/policies/ConditionalUnitConditionalUnitHelperUnitsCompartment6ItemSemanticEditPolicy.java
@@ -0,0 +1,47 @@
+/*
+ *
+ */
+package comrel.diagram.edit.policies;
+
+import org.eclipse.gef.commands.Command;
+import org.eclipse.gmf.runtime.emf.type.core.requests.CreateElementRequest;
+
+import comrel.diagram.edit.commands.MultiFeatureUnit3CreateCommand;
+import comrel.diagram.edit.commands.MultiFilterUnit3CreateCommand;
+import comrel.diagram.edit.commands.SingleFeatureUnit3CreateCommand;
+import comrel.diagram.edit.commands.SingleFilterUnit3CreateCommand;
+import comrel.diagram.providers.ComrelElementTypes;
+
+/**
+ * @generated
+ */
+public class ConditionalUnitConditionalUnitHelperUnitsCompartment6ItemSemanticEditPolicy
+ extends ComrelBaseItemSemanticEditPolicy {
+
+ /**
+ * @generated
+ */
+ public ConditionalUnitConditionalUnitHelperUnitsCompartment6ItemSemanticEditPolicy() {
+ super(ComrelElementTypes.ConditionalUnit_3075);
+ }
+
+ /**
+ * @generated
+ */
+ protected Command getCreateCommand(CreateElementRequest req) {
+ if (ComrelElementTypes.SingleFeatureUnit_3050 == req.getElementType()) {
+ return getGEFWrapper(new SingleFeatureUnit3CreateCommand(req));
+ }
+ if (ComrelElementTypes.MultiFeatureUnit_3051 == req.getElementType()) {
+ return getGEFWrapper(new MultiFeatureUnit3CreateCommand(req));
+ }
+ if (ComrelElementTypes.SingleFilterUnit_3052 == req.getElementType()) {
+ return getGEFWrapper(new SingleFilterUnit3CreateCommand(req));
+ }
+ if (ComrelElementTypes.MultiFilterUnit_3053 == req.getElementType()) {
+ return getGEFWrapper(new MultiFilterUnit3CreateCommand(req));
+ }
+ return super.getCreateCommand(req);
+ }
+
+}
diff --git a/org.eclipse.emf.refactor.comrel.diagram/src/comrel/diagram/edit/policies/ConditionalUnitConditionalUnitHelperUnitsCompartment7CanonicalEditPolicy.java b/org.eclipse.emf.refactor.comrel.diagram/src/comrel/diagram/edit/policies/ConditionalUnitConditionalUnitHelperUnitsCompartment7CanonicalEditPolicy.java
new file mode 100644
index 0000000..b824de8
--- /dev/null
+++ b/org.eclipse.emf.refactor.comrel.diagram/src/comrel/diagram/edit/policies/ConditionalUnitConditionalUnitHelperUnitsCompartment7CanonicalEditPolicy.java
@@ -0,0 +1,173 @@
+/*
+ *
+ */
+package comrel.diagram.edit.policies;
+
+import java.util.ArrayList;
+import java.util.Collection;
+import java.util.Iterator;
+import java.util.LinkedList;
+import java.util.List;
+
+import org.eclipse.core.runtime.IAdaptable;
+import org.eclipse.emf.ecore.EObject;
+import org.eclipse.emf.ecore.EStructuralFeature;
+import org.eclipse.gef.commands.Command;
+import org.eclipse.gmf.runtime.diagram.core.util.ViewUtil;
+import org.eclipse.gmf.runtime.diagram.ui.commands.DeferredLayoutCommand;
+import org.eclipse.gmf.runtime.diagram.ui.commands.ICommandProxy;
+import org.eclipse.gmf.runtime.diagram.ui.commands.SetViewMutabilityCommand;
+import org.eclipse.gmf.runtime.diagram.ui.editpolicies.CanonicalEditPolicy;
+import org.eclipse.gmf.runtime.diagram.ui.requests.CreateViewRequest;
+import org.eclipse.gmf.runtime.emf.core.util.EObjectAdapter;
+import org.eclipse.gmf.runtime.notation.Node;
+import org.eclipse.gmf.runtime.notation.View;
+
+import comrel.ComrelPackage;
+import comrel.diagram.edit.parts.MultiFeatureUnit3EditPart;
+import comrel.diagram.edit.parts.MultiFilterUnit3EditPart;
+import comrel.diagram.edit.parts.SingleFeatureUnit3EditPart;
+import comrel.diagram.edit.parts.SingleFilterUnit3EditPart;
+import comrel.diagram.part.ComrelDiagramUpdater;
+import comrel.diagram.part.ComrelNodeDescriptor;
+import comrel.diagram.part.ComrelVisualIDRegistry;
+
+/**
+ * @generated
+ */
+public class ConditionalUnitConditionalUnitHelperUnitsCompartment7CanonicalEditPolicy
+ extends CanonicalEditPolicy {
+
+ /**
+ * @generated
+ */
+ protected EStructuralFeature getFeatureToSynchronize() {
+ return ComrelPackage.eINSTANCE.getConditionalUnit_HelperUnits();
+ }
+
+ /**
+ * @generated
+ */
+ @SuppressWarnings("rawtypes")
+ protected List getSemanticChildrenList() {
+ View viewObject = (View) getHost().getModel();
+ LinkedList<EObject> result = new LinkedList<EObject>();
+ List<ComrelNodeDescriptor> childDescriptors = ComrelDiagramUpdater
+ .getConditionalUnitConditionalUnitHelperUnitsCompartment_7082SemanticChildren(viewObject);
+ for (ComrelNodeDescriptor d : childDescriptors) {
+ result.add(d.getModelElement());
+ }
+ return result;
+ }
+
+ /**
+ * @generated
+ */
+ protected boolean isOrphaned(Collection<EObject> semanticChildren,
+ final View view) {
+ return isMyDiagramElement(view)
+ && !semanticChildren.contains(view.getElement());
+ }
+
+ /**
+ * @generated
+ */
+ private boolean isMyDiagramElement(View view) {
+ int visualID = ComrelVisualIDRegistry.getVisualID(view);
+ switch (visualID) {
+ case SingleFeatureUnit3EditPart.VISUAL_ID:
+ case MultiFeatureUnit3EditPart.VISUAL_ID:
+ case SingleFilterUnit3EditPart.VISUAL_ID:
+ case MultiFilterUnit3EditPart.VISUAL_ID:
+ return true;
+ }
+ return false;
+ }
+
+ /**
+ * @generated
+ */
+ protected void refreshSemantic() {
+ if (resolveSemanticElement() == null) {
+ return;
+ }
+ LinkedList<IAdaptable> createdViews = new LinkedList<IAdaptable>();
+ List<ComrelNodeDescriptor> childDescriptors = ComrelDiagramUpdater
+ .getConditionalUnitConditionalUnitHelperUnitsCompartment_7082SemanticChildren((View) getHost()
+ .getModel());
+ LinkedList<View> orphaned = new LinkedList<View>();
+ // we care to check only views we recognize as ours
+ LinkedList<View> knownViewChildren = new LinkedList<View>();
+ for (View v : getViewChildren()) {
+ if (isMyDiagramElement(v)) {
+ knownViewChildren.add(v);
+ }
+ }
+ // alternative to #cleanCanonicalSemanticChildren(getViewChildren(), semanticChildren)
+ //
+ // iteration happens over list of desired semantic elements, trying to find best matching View, while original CEP
+ // iterates views, potentially losing view (size/bounds) information - i.e. if there are few views to reference same EObject, only last one
+ // to answer isOrphaned == true will be used for the domain element representation, see #cleanCanonicalSemanticChildren()
+ for (Iterator<ComrelNodeDescriptor> descriptorsIterator = childDescriptors
+ .iterator(); descriptorsIterator.hasNext();) {
+ ComrelNodeDescriptor next = descriptorsIterator.next();
+ String hint = ComrelVisualIDRegistry.getType(next.getVisualID());
+ LinkedList<View> perfectMatch = new LinkedList<View>(); // both semanticElement and hint match that of NodeDescriptor
+ for (View childView : getViewChildren()) {
+ EObject semanticElement = childView.getElement();
+ if (next.getModelElement().equals(semanticElement)) {
+ if (hint.equals(childView.getType())) {
+ perfectMatch.add(childView);
+ // actually, can stop iteration over view children here, but
+ // may want to use not the first view but last one as a 'real' match (the way original CEP does
+ // with its trick with viewToSemanticMap inside #cleanCanonicalSemanticChildren
+ }
+ }
+ }
+ if (perfectMatch.size() > 0) {
+ descriptorsIterator.remove(); // precise match found no need to create anything for the NodeDescriptor
+ // use only one view (first or last?), keep rest as orphaned for further consideration
+ knownViewChildren.remove(perfectMatch.getFirst());
+ }
+ }
+ // those left in knownViewChildren are subject to removal - they are our diagram elements we didn't find match to,
+ // or those we have potential matches to, and thus need to be recreated, preserving size/location information.
+ orphaned.addAll(knownViewChildren);
+ //
+ ArrayList<CreateViewRequest.ViewDescriptor> viewDescriptors = new ArrayList<CreateViewRequest.ViewDescriptor>(
+ childDescriptors.size());
+ for (ComrelNodeDescriptor next : childDescriptors) {
+ String hint = ComrelVisualIDRegistry.getType(next.getVisualID());
+ IAdaptable elementAdapter = new CanonicalElementAdapter(
+ next.getModelElement(), hint);
+ CreateViewRequest.ViewDescriptor descriptor = new CreateViewRequest.ViewDescriptor(
+ elementAdapter, Node.class, hint, ViewUtil.APPEND, false,
+ host().getDiagramPreferencesHint());
+ viewDescriptors.add(descriptor);
+ }
+
+ boolean changed = deleteViews(orphaned.iterator());
+ //
+ CreateViewRequest request = getCreateViewRequest(viewDescriptors);
+ Command cmd = getCreateViewCommand(request);
+ if (cmd != null && cmd.canExecute()) {
+ SetViewMutabilityCommand.makeMutable(
+ new EObjectAdapter(host().getNotationView())).execute();
+ executeCommand(cmd);
+ @SuppressWarnings("unchecked")
+ List<IAdaptable> nl = (List<IAdaptable>) request.getNewObject();
+ createdViews.addAll(nl);
+ }
+ if (changed || createdViews.size() > 0) {
+ postProcessRefreshSemantic(createdViews);
+ }
+ if (createdViews.size() > 1) {
+ // perform a layout of the container
+ DeferredLayoutCommand layoutCmd = new DeferredLayoutCommand(host()
+ .getEditingDomain(), createdViews, host());
+ executeCommand(new ICommandProxy(layoutCmd));
+ }
+
+ makeViewsImmutable(createdViews);
+ }
+}
diff --git a/org.eclipse.emf.refactor.comrel.diagram/src/comrel/diagram/edit/policies/ConditionalUnitConditionalUnitHelperUnitsCompartment7ItemSemanticEditPolicy.java b/org.eclipse.emf.refactor.comrel.diagram/src/comrel/diagram/edit/policies/ConditionalUnitConditionalUnitHelperUnitsCompartment7ItemSemanticEditPolicy.java
new file mode 100644
index 0000000..f565c6f
--- /dev/null
+++ b/org.eclipse.emf.refactor.comrel.diagram/src/comrel/diagram/edit/policies/ConditionalUnitConditionalUnitHelperUnitsCompartment7ItemSemanticEditPolicy.java
@@ -0,0 +1,47 @@
+/*
+ *
+ */
+package comrel.diagram.edit.policies;
+
+import org.eclipse.gef.commands.Command;
+import org.eclipse.gmf.runtime.emf.type.core.requests.CreateElementRequest;
+
+import comrel.diagram.edit.commands.MultiFeatureUnit3CreateCommand;
+import comrel.diagram.edit.commands.MultiFilterUnit3CreateCommand;
+import comrel.diagram.edit.commands.SingleFeatureUnit3CreateCommand;
+import comrel.diagram.edit.commands.SingleFilterUnit3CreateCommand;
+import comrel.diagram.providers.ComrelElementTypes;
+
+/**
+ * @generated
+ */
+public class ConditionalUnitConditionalUnitHelperUnitsCompartment7ItemSemanticEditPolicy
+ extends ComrelBaseItemSemanticEditPolicy {
+
+ /**
+ * @generated
+ */
+ public ConditionalUnitConditionalUnitHelperUnitsCompartment7ItemSemanticEditPolicy() {
+ super(ComrelElementTypes.ConditionalUnit_2006);
+ }
+
+ /**
+ * @generated
+ */
+ protected Command getCreateCommand(CreateElementRequest req) {
+ if (ComrelElementTypes.SingleFeatureUnit_3050 == req.getElementType()) {
+ return getGEFWrapper(new SingleFeatureUnit3CreateCommand(req));
+ }
+ if (ComrelElementTypes.MultiFeatureUnit_3051 == req.getElementType()) {
+ return getGEFWrapper(new MultiFeatureUnit3CreateCommand(req));
+ }
+ if (ComrelElementTypes.SingleFilterUnit_3052 == req.getElementType()) {
+ return getGEFWrapper(new SingleFilterUnit3CreateCommand(req));
+ }
+ if (ComrelElementTypes.MultiFilterUnit_3053 == req.getElementType()) {
+ return getGEFWrapper(new MultiFilterUnit3CreateCommand(req));
+ }
+ return super.getCreateCommand(req);
+ }
+
+}
diff --git a/org.eclipse.emf.refactor.comrel.diagram/src/comrel/diagram/edit/policies/ConditionalUnitConditionalUnitHelperUnitsCompartmentCanonicalEditPolicy.java b/org.eclipse.emf.refactor.comrel.diagram/src/comrel/diagram/edit/policies/ConditionalUnitConditionalUnitHelperUnitsCompartmentCanonicalEditPolicy.java
new file mode 100644
index 0000000..eba6680
--- /dev/null
+++ b/org.eclipse.emf.refactor.comrel.diagram/src/comrel/diagram/edit/policies/ConditionalUnitConditionalUnitHelperUnitsCompartmentCanonicalEditPolicy.java
@@ -0,0 +1,173 @@
+/*
+ *
+ */
+package comrel.diagram.edit.policies;
+
+import java.util.ArrayList;
+import java.util.Collection;
+import java.util.Iterator;
+import java.util.LinkedList;
+import java.util.List;
+
+import org.eclipse.core.runtime.IAdaptable;
+import org.eclipse.emf.ecore.EObject;
+import org.eclipse.emf.ecore.EStructuralFeature;
+import org.eclipse.gef.commands.Command;
+import org.eclipse.gmf.runtime.diagram.core.util.ViewUtil;
+import org.eclipse.gmf.runtime.diagram.ui.commands.DeferredLayoutCommand;
+import org.eclipse.gmf.runtime.diagram.ui.commands.ICommandProxy;
+import org.eclipse.gmf.runtime.diagram.ui.commands.SetViewMutabilityCommand;
+import org.eclipse.gmf.runtime.diagram.ui.editpolicies.CanonicalEditPolicy;
+import org.eclipse.gmf.runtime.diagram.ui.requests.CreateViewRequest;
+import org.eclipse.gmf.runtime.emf.core.util.EObjectAdapter;
+import org.eclipse.gmf.runtime.notation.Node;
+import org.eclipse.gmf.runtime.notation.View;
+
+import comrel.ComrelPackage;
+import comrel.diagram.edit.parts.MultiFeatureUnit3EditPart;
+import comrel.diagram.edit.parts.MultiFilterUnit3EditPart;
+import comrel.diagram.edit.parts.SingleFeatureUnit3EditPart;
+import comrel.diagram.edit.parts.SingleFilterUnit3EditPart;
+import comrel.diagram.part.ComrelDiagramUpdater;
+import comrel.diagram.part.ComrelNodeDescriptor;
+import comrel.diagram.part.ComrelVisualIDRegistry;
+
+/**
+ * @generated
+ */
+public class ConditionalUnitConditionalUnitHelperUnitsCompartmentCanonicalEditPolicy
+ extends CanonicalEditPolicy {
+
+ /**
+ * @generated
+ */
+ protected EStructuralFeature getFeatureToSynchronize() {
+ return ComrelPackage.eINSTANCE.getConditionalUnit_HelperUnits();
+ }
+
+ /**
+ * @generated
+ */
+ @SuppressWarnings("rawtypes")
+ protected List getSemanticChildrenList() {
+ View viewObject = (View) getHost().getModel();
+ LinkedList<EObject> result = new LinkedList<EObject>();
+ List<ComrelNodeDescriptor> childDescriptors = ComrelDiagramUpdater
+ .getConditionalUnitConditionalUnitHelperUnitsCompartment_7018SemanticChildren(viewObject);
+ for (ComrelNodeDescriptor d : childDescriptors) {
+ result.add(d.getModelElement());
+ }
+ return result;
+ }
+
+ /**
+ * @generated
+ */
+ protected boolean isOrphaned(Collection<EObject> semanticChildren,
+ final View view) {
+ return isMyDiagramElement(view)
+ && !semanticChildren.contains(view.getElement());
+ }
+
+ /**
+ * @generated
+ */
+ private boolean isMyDiagramElement(View view) {
+ int visualID = ComrelVisualIDRegistry.getVisualID(view);
+ switch (visualID) {
+ case SingleFeatureUnit3EditPart.VISUAL_ID:
+ case MultiFeatureUnit3EditPart.VISUAL_ID:
+ case SingleFilterUnit3EditPart.VISUAL_ID:
+ case MultiFilterUnit3EditPart.VISUAL_ID:
+ return true;
+ }
+ return false;
+ }
+
+ /**
+ * @generated
+ */
+ protected void refreshSemantic() {
+ if (resolveSemanticElement() == null) {
+ return;
+ }
+ LinkedList<IAdaptable> createdViews = new LinkedList<IAdaptable>();
+ List<ComrelNodeDescriptor> childDescriptors = ComrelDiagramUpdater
+ .getConditionalUnitConditionalUnitHelperUnitsCompartment_7018SemanticChildren((View) getHost()
+ .getModel());
+ LinkedList<View> orphaned = new LinkedList<View>();
+ // we care to check only views we recognize as ours
+ LinkedList<View> knownViewChildren = new LinkedList<View>();
+ for (View v : getViewChildren()) {
+ if (isMyDiagramElement(v)) {
+ knownViewChildren.add(v);
+ }
+ }
+ // alternative to #cleanCanonicalSemanticChildren(getViewChildren(), semanticChildren)
+ //
+ // iteration happens over list of desired semantic elements, trying to find best matching View, while original CEP
+ // iterates views, potentially losing view (size/bounds) information - i.e. if there are few views to reference same EObject, only last one
+ // to answer isOrphaned == true will be used for the domain element representation, see #cleanCanonicalSemanticChildren()
+ for (Iterator<ComrelNodeDescriptor> descriptorsIterator = childDescriptors
+ .iterator(); descriptorsIterator.hasNext();) {
+ ComrelNodeDescriptor next = descriptorsIterator.next();
+ String hint = ComrelVisualIDRegistry.getType(next.getVisualID());
+ LinkedList<View> perfectMatch = new LinkedList<View>(); // both semanticElement and hint match that of NodeDescriptor
+ for (View childView : getViewChildren()) {
+ EObject semanticElement = childView.getElement();
+ if (next.getModelElement().equals(semanticElement)) {
+ if (hint.equals(childView.getType())) {
+ perfectMatch.add(childView);
+ // actually, can stop iteration over view children here, but
+ // may want to use not the first view but last one as a 'real' match (the way original CEP does
+ // with its trick with viewToSemanticMap inside #cleanCanonicalSemanticChildren
+ }
+ }
+ }
+ if (perfectMatch.size() > 0) {
+ descriptorsIterator.remove(); // precise match found no need to create anything for the NodeDescriptor
+ // use only one view (first or last?), keep rest as orphaned for further consideration
+ knownViewChildren.remove(perfectMatch.getFirst());
+ }
+ }
+ // those left in knownViewChildren are subject to removal - they are our diagram elements we didn't find match to,
+ // or those we have potential matches to, and thus need to be recreated, preserving size/location information.
+ orphaned.addAll(knownViewChildren);
+ //
+ ArrayList<CreateViewRequest.ViewDescriptor> viewDescriptors = new ArrayList<CreateViewRequest.ViewDescriptor>(
+ childDescriptors.size());
+ for (ComrelNodeDescriptor next : childDescriptors) {
+ String hint = ComrelVisualIDRegistry.getType(next.getVisualID());
+ IAdaptable elementAdapter = new CanonicalElementAdapter(
+ next.getModelElement(), hint);
+ CreateViewRequest.ViewDescriptor descriptor = new CreateViewRequest.ViewDescriptor(
+ elementAdapter, Node.class, hint, ViewUtil.APPEND, false,
+ host().getDiagramPreferencesHint());
+ viewDescriptors.add(descriptor);
+ }
+
+ boolean changed = deleteViews(orphaned.iterator());
+ //
+ CreateViewRequest request = getCreateViewRequest(viewDescriptors);
+ Command cmd = getCreateViewCommand(request);
+ if (cmd != null && cmd.canExecute()) {
+ SetViewMutabilityCommand.makeMutable(
+ new EObjectAdapter(host().getNotationView())).execute();
+ executeCommand(cmd);
+ @SuppressWarnings("unchecked")
+ List<IAdaptable> nl = (List<IAdaptable>) request.getNewObject();
+ createdViews.addAll(nl);
+ }
+ if (changed || createdViews.size() > 0) {
+ postProcessRefreshSemantic(createdViews);
+ }
+ if (createdViews.size() > 1) {
+ // perform a layout of the container
+ DeferredLayoutCommand layoutCmd = new DeferredLayoutCommand(host()
+ .getEditingDomain(), createdViews, host());
+ executeCommand(new ICommandProxy(layoutCmd));
+ }
+
+ makeViewsImmutable(createdViews);
+ }
+}
diff --git a/org.eclipse.emf.refactor.comrel.diagram/src/comrel/diagram/edit/policies/ConditionalUnitConditionalUnitHelperUnitsCompartmentItemSemanticEditPolicy.java b/org.eclipse.emf.refactor.comrel.diagram/src/comrel/diagram/edit/policies/ConditionalUnitConditionalUnitHelperUnitsCompartmentItemSemanticEditPolicy.java
new file mode 100644
index 0000000..a1e7f56
--- /dev/null
+++ b/org.eclipse.emf.refactor.comrel.diagram/src/comrel/diagram/edit/policies/ConditionalUnitConditionalUnitHelperUnitsCompartmentItemSemanticEditPolicy.java
@@ -0,0 +1,47 @@
+/*
+ *
+ */
+package comrel.diagram.edit.policies;
+
+import org.eclipse.gef.commands.Command;
+import org.eclipse.gmf.runtime.emf.type.core.requests.CreateElementRequest;
+
+import comrel.diagram.edit.commands.MultiFeatureUnit3CreateCommand;
+import comrel.diagram.edit.commands.MultiFilterUnit3CreateCommand;
+import comrel.diagram.edit.commands.SingleFeatureUnit3CreateCommand;
+import comrel.diagram.edit.commands.SingleFilterUnit3CreateCommand;
+import comrel.diagram.providers.ComrelElementTypes;
+
+/**
+ * @generated
+ */
+public class ConditionalUnitConditionalUnitHelperUnitsCompartmentItemSemanticEditPolicy
+ extends ComrelBaseItemSemanticEditPolicy {
+
+ /**
+ * @generated
+ */
+ public ConditionalUnitConditionalUnitHelperUnitsCompartmentItemSemanticEditPolicy() {
+ super(ComrelElementTypes.ConditionalUnit_3030);
+ }
+
+ /**
+ * @generated
+ */
+ protected Command getCreateCommand(CreateElementRequest req) {
+ if (ComrelElementTypes.SingleFeatureUnit_3050 == req.getElementType()) {
+ return getGEFWrapper(new SingleFeatureUnit3CreateCommand(req));
+ }
+ if (ComrelElementTypes.MultiFeatureUnit_3051 == req.getElementType()) {
+ return getGEFWrapper(new MultiFeatureUnit3CreateCommand(req));
+ }
+ if (ComrelElementTypes.SingleFilterUnit_3052 == req.getElementType()) {
+ return getGEFWrapper(new SingleFilterUnit3CreateCommand(req));
+ }
+ if (ComrelElementTypes.MultiFilterUnit_3053 == req.getElementType()) {
+ return getGEFWrapper(new MultiFilterUnit3CreateCommand(req));
+ }
+ return super.getCreateCommand(req);
+ }
+
+}
diff --git a/org.eclipse.emf.refactor.comrel.diagram/src/comrel/diagram/edit/policies/ConditionalUnitConditionalUnitIfCompartment2CanonicalEditPolicy.java b/org.eclipse.emf.refactor.comrel.diagram/src/comrel/diagram/edit/policies/ConditionalUnitConditionalUnitIfCompartment2CanonicalEditPolicy.java
new file mode 100644
index 0000000..ae7096a
--- /dev/null
+++ b/org.eclipse.emf.refactor.comrel.diagram/src/comrel/diagram/edit/policies/ConditionalUnitConditionalUnitIfCompartment2CanonicalEditPolicy.java
@@ -0,0 +1,163 @@
+/*
+ *
+ */
+package comrel.diagram.edit.policies;
+
+import java.util.ArrayList;
+import java.util.Collection;
+import java.util.Iterator;
+import java.util.LinkedList;
+import java.util.List;
+
+import org.eclipse.core.runtime.IAdaptable;
+import org.eclipse.emf.ecore.EObject;
+import org.eclipse.emf.ecore.EStructuralFeature;
+import org.eclipse.gef.commands.Command;
+import org.eclipse.gmf.runtime.diagram.core.util.ViewUtil;
+import org.eclipse.gmf.runtime.diagram.ui.commands.DeferredLayoutCommand;
+import org.eclipse.gmf.runtime.diagram.ui.commands.ICommandProxy;
+import org.eclipse.gmf.runtime.diagram.ui.commands.SetViewMutabilityCommand;
+import org.eclipse.gmf.runtime.diagram.ui.editpolicies.CanonicalEditPolicy;
+import org.eclipse.gmf.runtime.diagram.ui.requests.CreateViewRequest;
+import org.eclipse.gmf.runtime.emf.core.util.EObjectAdapter;
+import org.eclipse.gmf.runtime.notation.Node;
+import org.eclipse.gmf.runtime.notation.View;
+
+import comrel.ComrelPackage;
+import comrel.diagram.edit.parts.ConditionCheckEditPart;
+import comrel.diagram.part.ComrelDiagramUpdater;
+import comrel.diagram.part.ComrelNodeDescriptor;
+import comrel.diagram.part.ComrelVisualIDRegistry;
+
+/**
+ * @generated
+ */
+public class ConditionalUnitConditionalUnitIfCompartment2CanonicalEditPolicy
+ extends CanonicalEditPolicy {
+
+ /**
+ * @generated
+ */
+ protected EStructuralFeature getFeatureToSynchronize() {
+ return ComrelPackage.eINSTANCE.getConditionalUnit_If();
+ }
+
+ /**
+ * @generated
+ */
+ @SuppressWarnings("rawtypes")
+ protected List getSemanticChildrenList() {
+ View viewObject = (View) getHost().getModel();
+ LinkedList<EObject> result = new LinkedList<EObject>();
+ List<ComrelNodeDescriptor> childDescriptors = ComrelDiagramUpdater
+ .getConditionalUnitConditionalUnitIfCompartment_7035SemanticChildren(viewObject);
+ for (ComrelNodeDescriptor d : childDescriptors) {
+ result.add(d.getModelElement());
+ }
+ return result;
+ }
+
+ /**
+ * @generated
+ */
+ protected boolean isOrphaned(Collection<EObject> semanticChildren,
+ final View view) {
+ return isMyDiagramElement(view)
+ && !semanticChildren.contains(view.getElement());
+ }
+
+ /**
+ * @generated
+ */
+ private boolean isMyDiagramElement(View view) {
+ return ConditionCheckEditPart.VISUAL_ID == ComrelVisualIDRegistry
+ .getVisualID(view);
+ }
+
+ /**
+ * @generated
+ */
+ protected void refreshSemantic() {
+ if (resolveSemanticElement() == null) {
+ return;
+ }
+ LinkedList<IAdaptable> createdViews = new LinkedList<IAdaptable>();
+ List<ComrelNodeDescriptor> childDescriptors = ComrelDiagramUpdater
+ .getConditionalUnitConditionalUnitIfCompartment_7035SemanticChildren((View) getHost()
+ .getModel());
+ LinkedList<View> orphaned = new LinkedList<View>();
+ // we care to check only views we recognize as ours
+ LinkedList<View> knownViewChildren = new LinkedList<View>();
+ for (View v : getViewChildren()) {
+ if (isMyDiagramElement(v)) {
+ knownViewChildren.add(v);
+ }
+ }
+ // alternative to #cleanCanonicalSemanticChildren(getViewChildren(), semanticChildren)
+ //
+ // iteration happens over list of desired semantic elements, trying to find best matching View, while original CEP
+ // iterates views, potentially losing view (size/bounds) information - i.e. if there are few views to reference same EObject, only last one
+ // to answer isOrphaned == true will be used for the domain element representation, see #cleanCanonicalSemanticChildren()
+ for (Iterator<ComrelNodeDescriptor> descriptorsIterator = childDescriptors
+ .iterator(); descriptorsIterator.hasNext();) {
+ ComrelNodeDescriptor next = descriptorsIterator.next();
+ String hint = ComrelVisualIDRegistry.getType(next.getVisualID());
+ LinkedList<View> perfectMatch = new LinkedList<View>(); // both semanticElement and hint match that of NodeDescriptor
+ for (View childView : getViewChildren()) {
+ EObject semanticElement = childView.getElement();
+ if (next.getModelElement().equals(semanticElement)) {
+ if (hint.equals(childView.getType())) {
+ perfectMatch.add(childView);
+ // actually, can stop iteration over view children here, but
+ // may want to use not the first view but last one as a 'real' match (the way original CEP does
+ // with its trick with viewToSemanticMap inside #cleanCanonicalSemanticChildren
+ }
+ }
+ }
+ if (perfectMatch.size() > 0) {
+ descriptorsIterator.remove(); // precise match found no need to create anything for the NodeDescriptor
+ // use only one view (first or last?), keep rest as orphaned for further consideration
+ knownViewChildren.remove(perfectMatch.getFirst());
+ }
+ }
+ // those left in knownViewChildren are subject to removal - they are our diagram elements we didn't find match to,
+ // or those we have potential matches to, and thus need to be recreated, preserving size/location information.
+ orphaned.addAll(knownViewChildren);
+ //
+ ArrayList<CreateViewRequest.ViewDescriptor> viewDescriptors = new ArrayList<CreateViewRequest.ViewDescriptor>(
+ childDescriptors.size());
+ for (ComrelNodeDescriptor next : childDescriptors) {
+ String hint = ComrelVisualIDRegistry.getType(next.getVisualID());
+ IAdaptable elementAdapter = new CanonicalElementAdapter(
+ next.getModelElement(), hint);
+ CreateViewRequest.ViewDescriptor descriptor = new CreateViewRequest.ViewDescriptor(
+ elementAdapter, Node.class, hint, ViewUtil.APPEND, false,
+ host().getDiagramPreferencesHint());
+ viewDescriptors.add(descriptor);
+ }
+
+ boolean changed = deleteViews(orphaned.iterator());
+ //
+ CreateViewRequest request = getCreateViewRequest(viewDescriptors);
+ Command cmd = getCreateViewCommand(request);
+ if (cmd != null && cmd.canExecute()) {
+ SetViewMutabilityCommand.makeMutable(
+ new EObjectAdapter(host().getNotationView())).execute();
+ executeCommand(cmd);
+ @SuppressWarnings("unchecked")
+ List<IAdaptable> nl = (List<IAdaptable>) request.getNewObject();
+ createdViews.addAll(nl);
+ }
+ if (changed || createdViews.size() > 0) {
+ postProcessRefreshSemantic(createdViews);
+ }
+ if (createdViews.size() > 1) {
+ // perform a layout of the container
+ DeferredLayoutCommand layoutCmd = new DeferredLayoutCommand(host()
+ .getEditingDomain(), createdViews, host());
+ executeCommand(new ICommandProxy(layoutCmd));
+ }
+
+ makeViewsImmutable(createdViews);
+ }
+}
diff --git a/org.eclipse.emf.refactor.comrel.diagram/src/comrel/diagram/edit/policies/ConditionalUnitConditionalUnitIfCompartment2ItemSemanticEditPolicy.java b/org.eclipse.emf.refactor.comrel.diagram/src/comrel/diagram/edit/policies/ConditionalUnitConditionalUnitIfCompartment2ItemSemanticEditPolicy.java
new file mode 100644
index 0000000..ce9b642
--- /dev/null
+++ b/org.eclipse.emf.refactor.comrel.diagram/src/comrel/diagram/edit/policies/ConditionalUnitConditionalUnitIfCompartment2ItemSemanticEditPolicy.java
@@ -0,0 +1,35 @@
+/*
+ *
+ */
+package comrel.diagram.edit.policies;
+
+import org.eclipse.gef.commands.Command;
+import org.eclipse.gmf.runtime.emf.type.core.requests.CreateElementRequest;
+
+import comrel.diagram.edit.commands.ConditionCheckCreateCommand;
+import comrel.diagram.providers.ComrelElementTypes;
+
+/**
+ * @generated
+ */
+public class ConditionalUnitConditionalUnitIfCompartment2ItemSemanticEditPolicy
+ extends ComrelBaseItemSemanticEditPolicy {
+
+ /**
+ * @generated
+ */
+ public ConditionalUnitConditionalUnitIfCompartment2ItemSemanticEditPolicy() {
+ super(ComrelElementTypes.ConditionalUnit_3046);
+ }
+
+ /**
+ * @generated
+ */
+ protected Command getCreateCommand(CreateElementRequest req) {
+ if (ComrelElementTypes.ConditionCheck_3076 == req.getElementType()) {
+ return getGEFWrapper(new ConditionCheckCreateCommand(req));
+ }
+ return super.getCreateCommand(req);
+ }
+
+}
diff --git a/org.eclipse.emf.refactor.comrel.diagram/src/comrel/diagram/edit/policies/ConditionalUnitConditionalUnitIfCompartment3CanonicalEditPolicy.java b/org.eclipse.emf.refactor.comrel.diagram/src/comrel/diagram/edit/policies/ConditionalUnitConditionalUnitIfCompartment3CanonicalEditPolicy.java
new file mode 100644
index 0000000..f57feef
--- /dev/null
+++ b/org.eclipse.emf.refactor.comrel.diagram/src/comrel/diagram/edit/policies/ConditionalUnitConditionalUnitIfCompartment3CanonicalEditPolicy.java
@@ -0,0 +1,163 @@
+/*
+ *
+ */
+package comrel.diagram.edit.policies;
+
+import java.util.ArrayList;
+import java.util.Collection;
+import java.util.Iterator;
+import java.util.LinkedList;
+import java.util.List;
+
+import org.eclipse.core.runtime.IAdaptable;
+import org.eclipse.emf.ecore.EObject;
+import org.eclipse.emf.ecore.EStructuralFeature;
+import org.eclipse.gef.commands.Command;
+import org.eclipse.gmf.runtime.diagram.core.util.ViewUtil;
+import org.eclipse.gmf.runtime.diagram.ui.commands.DeferredLayoutCommand;
+import org.eclipse.gmf.runtime.diagram.ui.commands.ICommandProxy;
+import org.eclipse.gmf.runtime.diagram.ui.commands.SetViewMutabilityCommand;
+import org.eclipse.gmf.runtime.diagram.ui.editpolicies.CanonicalEditPolicy;
+import org.eclipse.gmf.runtime.diagram.ui.requests.CreateViewRequest;
+import org.eclipse.gmf.runtime.emf.core.util.EObjectAdapter;
+import org.eclipse.gmf.runtime.notation.Node;
+import org.eclipse.gmf.runtime.notation.View;
+
+import comrel.ComrelPackage;
+import comrel.diagram.edit.parts.ConditionCheckEditPart;
+import comrel.diagram.part.ComrelDiagramUpdater;
+import comrel.diagram.part.ComrelNodeDescriptor;
+import comrel.diagram.part.ComrelVisualIDRegistry;
+
+/**
+ * @generated
+ */
+public class ConditionalUnitConditionalUnitIfCompartment3CanonicalEditPolicy
+ extends CanonicalEditPolicy {
+
+ /**
+ * @generated
+ */
+ protected EStructuralFeature getFeatureToSynchronize() {
+ return ComrelPackage.eINSTANCE.getConditionalUnit_If();
+ }
+
+ /**
+ * @generated
+ */
+ @SuppressWarnings("rawtypes")
+ protected List getSemanticChildrenList() {
+ View viewObject = (View) getHost().getModel();
+ LinkedList<EObject> result = new LinkedList<EObject>();
+ List<ComrelNodeDescriptor> childDescriptors = ComrelDiagramUpdater
+ .getConditionalUnitConditionalUnitIfCompartment_7051SemanticChildren(viewObject);
+ for (ComrelNodeDescriptor d : childDescriptors) {
+ result.add(d.getModelElement());
+ }
+ return result;
+ }
+
+ /**
+ * @generated
+ */
+ protected boolean isOrphaned(Collection<EObject> semanticChildren,
+ final View view) {
+ return isMyDiagramElement(view)
+ && !semanticChildren.contains(view.getElement());
+ }
+
+ /**
+ * @generated
+ */
+ private boolean isMyDiagramElement(View view) {
+ return ConditionCheckEditPart.VISUAL_ID == ComrelVisualIDRegistry
+ .getVisualID(view);
+ }
+
+ /**
+ * @generated
+ */
+ protected void refreshSemantic() {
+ if (resolveSemanticElement() == null) {
+ return;
+ }
+ LinkedList<IAdaptable> createdViews = new LinkedList<IAdaptable>();
+ List<ComrelNodeDescriptor> childDescriptors = ComrelDiagramUpdater
+ .getConditionalUnitConditionalUnitIfCompartment_7051SemanticChildren((View) getHost()
+ .getModel());
+ LinkedList<View> orphaned = new LinkedList<View>();
+ // we care to check only views we recognize as ours
+ LinkedList<View> knownViewChildren = new LinkedList<View>();
+ for (View v : getViewChildren()) {
+ if (isMyDiagramElement(v)) {
+ knownViewChildren.add(v);
+ }
+ }
+ // alternative to #cleanCanonicalSemanticChildren(getViewChildren(), semanticChildren)
+ //
+ // iteration happens over list of desired semantic elements, trying to find best matching View, while original CEP
+ // iterates views, potentially losing view (size/bounds) information - i.e. if there are few views to reference same EObject, only last one
+ // to answer isOrphaned == true will be used for the domain element representation, see #cleanCanonicalSemanticChildren()
+ for (Iterator<ComrelNodeDescriptor> descriptorsIterator = childDescriptors
+ .iterator(); descriptorsIterator.hasNext();) {
+ ComrelNodeDescriptor next = descriptorsIterator.next();
+ String hint = ComrelVisualIDRegistry.getType(next.getVisualID());
+ LinkedList<View> perfectMatch = new LinkedList<View>(); // both semanticElement and hint match that of NodeDescriptor
+ for (View childView : getViewChildren()) {
+ EObject semanticElement = childView.getElement();
+ if (next.getModelElement().equals(semanticElement)) {
+ if (hint.equals(childView.getType())) {
+ perfectMatch.add(childView);
+ // actually, can stop iteration over view children here, but
+ // may want to use not the first view but last one as a 'real' match (the way original CEP does
+ // with its trick with viewToSemanticMap inside #cleanCanonicalSemanticChildren
+ }
+ }
+ }
+ if (perfectMatch.size() > 0) {
+ descriptorsIterator.remove(); // precise match found no need to create anything for the NodeDescriptor
+ // use only one view (first or last?), keep rest as orphaned for further consideration
+ knownViewChildren.remove(perfectMatch.getFirst());
+ }
+ }
+ // those left in knownViewChildren are subject to removal - they are our diagram elements we didn't find match to,
+ // or those we have potential matches to, and thus need to be recreated, preserving size/location information.
+ orphaned.addAll(knownViewChildren);
+ //
+ ArrayList<CreateViewRequest.ViewDescriptor> viewDescriptors = new ArrayList<CreateViewRequest.ViewDescriptor>(
+ childDescriptors.size());
+ for (ComrelNodeDescriptor next : childDescriptors) {
+ String hint = ComrelVisualIDRegistry.getType(next.getVisualID());
+ IAdaptable elementAdapter = new CanonicalElementAdapter(
+ next.getModelElement(), hint);
+ CreateViewRequest.ViewDescriptor descriptor = new CreateViewRequest.ViewDescriptor(
+ elementAdapter, Node.class, hint, ViewUtil.APPEND, false,
+ host().getDiagramPreferencesHint());
+ viewDescriptors.add(descriptor);
+ }
+
+ boolean changed = deleteViews(orphaned.iterator());
+ //
+ CreateViewRequest request = getCreateViewRequest(viewDescriptors);
+ Command cmd = getCreateViewCommand(request);
+ if (cmd != null && cmd.canExecute()) {
+ SetViewMutabilityCommand.makeMutable(
+ new EObjectAdapter(host().getNotationView())).execute();
+ executeCommand(cmd);
+ @SuppressWarnings("unchecked")
+ List<IAdaptable> nl = (List<IAdaptable>) request.getNewObject();
+ createdViews.addAll(nl);
+ }
+ if (changed || createdViews.size() > 0) {
+ postProcessRefreshSemantic(createdViews);
+ }
+ if (createdViews.size() > 1) {
+ // perform a layout of the container
+ DeferredLayoutCommand layoutCmd = new DeferredLayoutCommand(host()
+ .getEditingDomain(), createdViews, host());
+ executeCommand(new ICommandProxy(layoutCmd));
+ }
+
+ makeViewsImmutable(createdViews);
+ }
+}
diff --git a/org.eclipse.emf.refactor.comrel.diagram/src/comrel/diagram/edit/policies/ConditionalUnitConditionalUnitIfCompartment3ItemSemanticEditPolicy.java b/org.eclipse.emf.refactor.comrel.diagram/src/comrel/diagram/edit/policies/ConditionalUnitConditionalUnitIfCompartment3ItemSemanticEditPolicy.java
new file mode 100644
index 0000000..4806b7c
--- /dev/null
+++ b/org.eclipse.emf.refactor.comrel.diagram/src/comrel/diagram/edit/policies/ConditionalUnitConditionalUnitIfCompartment3ItemSemanticEditPolicy.java
@@ -0,0 +1,35 @@
+/*
+ *
+ */
+package comrel.diagram.edit.policies;
+
+import org.eclipse.gef.commands.Command;
+import org.eclipse.gmf.runtime.emf.type.core.requests.CreateElementRequest;
+
+import comrel.diagram.edit.commands.ConditionCheckCreateCommand;
+import comrel.diagram.providers.ComrelElementTypes;
+
+/**
+ * @generated
+ */
+public class ConditionalUnitConditionalUnitIfCompartment3ItemSemanticEditPolicy
+ extends ComrelBaseItemSemanticEditPolicy {
+
+ /**
+ * @generated
+ */
+ public ConditionalUnitConditionalUnitIfCompartment3ItemSemanticEditPolicy() {
+ super(ComrelElementTypes.ConditionalUnit_3066);
+ }
+
+ /**
+ * @generated
+ */
+ protected Command getCreateCommand(CreateElementRequest req) {
+ if (ComrelElementTypes.ConditionCheck_3076 == req.getElementType()) {
+ return getGEFWrapper(new ConditionCheckCreateCommand(req));
+ }
+ return super.getCreateCommand(req);
+ }
+
+}
diff --git a/org.eclipse.emf.refactor.comrel.diagram/src/comrel/diagram/edit/policies/ConditionalUnitConditionalUnitIfCompartment4CanonicalEditPolicy.java b/org.eclipse.emf.refactor.comrel.diagram/src/comrel/diagram/edit/policies/ConditionalUnitConditionalUnitIfCompartment4CanonicalEditPolicy.java
new file mode 100644
index 0000000..076c16f
--- /dev/null
+++ b/org.eclipse.emf.refactor.comrel.diagram/src/comrel/diagram/edit/policies/ConditionalUnitConditionalUnitIfCompartment4CanonicalEditPolicy.java
@@ -0,0 +1,163 @@
+/*
+ *
+ */
+package comrel.diagram.edit.policies;
+
+import java.util.ArrayList;
+import java.util.Collection;
+import java.util.Iterator;
+import java.util.LinkedList;
+import java.util.List;
+
+import org.eclipse.core.runtime.IAdaptable;
+import org.eclipse.emf.ecore.EObject;
+import org.eclipse.emf.ecore.EStructuralFeature;
+import org.eclipse.gef.commands.Command;
+import org.eclipse.gmf.runtime.diagram.core.util.ViewUtil;
+import org.eclipse.gmf.runtime.diagram.ui.commands.DeferredLayoutCommand;
+import org.eclipse.gmf.runtime.diagram.ui.commands.ICommandProxy;
+import org.eclipse.gmf.runtime.diagram.ui.commands.SetViewMutabilityCommand;
+import org.eclipse.gmf.runtime.diagram.ui.editpolicies.CanonicalEditPolicy;
+import org.eclipse.gmf.runtime.diagram.ui.requests.CreateViewRequest;
+import org.eclipse.gmf.runtime.emf.core.util.EObjectAdapter;
+import org.eclipse.gmf.runtime.notation.Node;
+import org.eclipse.gmf.runtime.notation.View;
+
+import comrel.ComrelPackage;
+import comrel.diagram.edit.parts.ConditionCheckEditPart;
+import comrel.diagram.part.ComrelDiagramUpdater;
+import comrel.diagram.part.ComrelNodeDescriptor;
+import comrel.diagram.part.ComrelVisualIDRegistry;
+
+/**
+ * @generated
+ */
+public class ConditionalUnitConditionalUnitIfCompartment4CanonicalEditPolicy
+ extends CanonicalEditPolicy {
+
+ /**
+ * @generated
+ */
+ protected EStructuralFeature getFeatureToSynchronize() {
+ return ComrelPackage.eINSTANCE.getConditionalUnit_If();
+ }
+
+ /**
+ * @generated
+ */
+ @SuppressWarnings("rawtypes")
+ protected List getSemanticChildrenList() {
+ View viewObject = (View) getHost().getModel();
+ LinkedList<EObject> result = new LinkedList<EObject>();
+ List<ComrelNodeDescriptor> childDescriptors = ComrelDiagramUpdater
+ .getConditionalUnitConditionalUnitIfCompartment_7061SemanticChildren(viewObject);
+ for (ComrelNodeDescriptor d : childDescriptors) {
+ result.add(d.getModelElement());
+ }
+ return result;
+ }
+
+ /**
+ * @generated
+ */
+ protected boolean isOrphaned(Collection<EObject> semanticChildren,
+ final View view) {
+ return isMyDiagramElement(view)
+ && !semanticChildren.contains(view.getElement());
+ }
+
+ /**
+ * @generated
+ */
+ private boolean isMyDiagramElement(View view) {
+ return ConditionCheckEditPart.VISUAL_ID == ComrelVisualIDRegistry
+ .getVisualID(view);
+ }
+
+ /**
+ * @generated
+ */
+ protected void refreshSemantic() {
+ if (resolveSemanticElement() == null) {
+ return;
+ }
+ LinkedList<IAdaptable> createdViews = new LinkedList<IAdaptable>();
+ List<ComrelNodeDescriptor> childDescriptors = ComrelDiagramUpdater
+ .getConditionalUnitConditionalUnitIfCompartment_7061SemanticChildren((View) getHost()
+ .getModel());
+ LinkedList<View> orphaned = new LinkedList<View>();
+ // we care to check only views we recognize as ours
+ LinkedList<View> knownViewChildren = new LinkedList<View>();
+ for (View v : getViewChildren()) {
+ if (isMyDiagramElement(v)) {
+ knownViewChildren.add(v);
+ }
+ }
+ // alternative to #cleanCanonicalSemanticChildren(getViewChildren(), semanticChildren)
+ //
+ // iteration happens over list of desired semantic elements, trying to find best matching View, while original CEP
+ // iterates views, potentially losing view (size/bounds) information - i.e. if there are few views to reference same EObject, only last one
+ // to answer isOrphaned == true will be used for the domain element representation, see #cleanCanonicalSemanticChildren()
+ for (Iterator<ComrelNodeDescriptor> descriptorsIterator = childDescriptors
+ .iterator(); descriptorsIterator.hasNext();) {
+ ComrelNodeDescriptor next = descriptorsIterator.next();
+ String hint = ComrelVisualIDRegistry.getType(next.getVisualID());
+ LinkedList<View> perfectMatch = new LinkedList<View>(); // both semanticElement and hint match that of NodeDescriptor
+ for (View childView : getViewChildren()) {
+ EObject semanticElement = childView.getElement();
+ if (next.getModelElement().equals(semanticElement)) {
+ if (hint.equals(childView.getType())) {
+ perfectMatch.add(childView);
+ // actually, can stop iteration over view children here, but
+ // may want to use not the first view but last one as a 'real' match (the way original CEP does
+ // with its trick with viewToSemanticMap inside #cleanCanonicalSemanticChildren
+ }
+ }
+ }
+ if (perfectMatch.size() > 0) {
+ descriptorsIterator.remove(); // precise match found no need to create anything for the NodeDescriptor
+ // use only one view (first or last?), keep rest as orphaned for further consideration
+ knownViewChildren.remove(perfectMatch.getFirst());
+ }
+ }
+ // those left in knownViewChildren are subject to removal - they are our diagram elements we didn't find match to,
+ // or those we have potential matches to, and thus need to be recreated, preserving size/location information.
+ orphaned.addAll(knownViewChildren);
+ //
+ ArrayList<CreateViewRequest.ViewDescriptor> viewDescriptors = new ArrayList<CreateViewRequest.ViewDescriptor>(
+ childDescriptors.size());
+ for (ComrelNodeDescriptor next : childDescriptors) {
+ String hint = ComrelVisualIDRegistry.getType(next.getVisualID());
+ IAdaptable elementAdapter = new CanonicalElementAdapter(
+ next.getModelElement(), hint);
+ CreateViewRequest.ViewDescriptor descriptor = new CreateViewRequest.ViewDescriptor(
+ elementAdapter, Node.class, hint, ViewUtil.APPEND, false,
+ host().getDiagramPreferencesHint());
+ viewDescriptors.add(descriptor);
+ }
+
+ boolean changed = deleteViews(orphaned.iterator());
+ //
+ CreateViewRequest request = getCreateViewRequest(viewDescriptors);
+ Command cmd = getCreateViewCommand(request);
+ if (cmd != null && cmd.canExecute()) {
+ SetViewMutabilityCommand.makeMutable(
+ new EObjectAdapter(host().getNotationView())).execute();
+ executeCommand(cmd);
+ @SuppressWarnings("unchecked")
+ List<IAdaptable> nl = (List<IAdaptable>) request.getNewObject();
+ createdViews.addAll(nl);
+ }
+ if (changed || createdViews.size() > 0) {
+ postProcessRefreshSemantic(createdViews);
+ }
+ if (createdViews.size() > 1) {
+ // perform a layout of the container
+ DeferredLayoutCommand layoutCmd = new DeferredLayoutCommand(host()
+ .getEditingDomain(), createdViews, host());
+ executeCommand(new ICommandProxy(layoutCmd));
+ }
+
+ makeViewsImmutable(createdViews);
+ }
+}
diff --git a/org.eclipse.emf.refactor.comrel.diagram/src/comrel/diagram/edit/policies/ConditionalUnitConditionalUnitIfCompartment4ItemSemanticEditPolicy.java b/org.eclipse.emf.refactor.comrel.diagram/src/comrel/diagram/edit/policies/ConditionalUnitConditionalUnitIfCompartment4ItemSemanticEditPolicy.java
new file mode 100644
index 0000000..30c1a81
--- /dev/null
+++ b/org.eclipse.emf.refactor.comrel.diagram/src/comrel/diagram/edit/policies/ConditionalUnitConditionalUnitIfCompartment4ItemSemanticEditPolicy.java
@@ -0,0 +1,35 @@
+/*
+ *
+ */
+package comrel.diagram.edit.policies;
+
+import org.eclipse.gef.commands.Command;
+import org.eclipse.gmf.runtime.emf.type.core.requests.CreateElementRequest;
+
+import comrel.diagram.edit.commands.ConditionCheckCreateCommand;
+import comrel.diagram.providers.ComrelElementTypes;
+
+/**
+ * @generated
+ */
+public class ConditionalUnitConditionalUnitIfCompartment4ItemSemanticEditPolicy
+ extends ComrelBaseItemSemanticEditPolicy {
+
+ /**
+ * @generated
+ */
+ public ConditionalUnitConditionalUnitIfCompartment4ItemSemanticEditPolicy() {
+ super(ComrelElementTypes.ConditionalUnit_3071);
+ }
+
+ /**
+ * @generated
+ */
+ protected Command getCreateCommand(CreateElementRequest req) {
+ if (ComrelElementTypes.ConditionCheck_3076 == req.getElementType()) {
+ return getGEFWrapper(new ConditionCheckCreateCommand(req));
+ }
+ return super.getCreateCommand(req);
+ }
+
+}
diff --git a/org.eclipse.emf.refactor.comrel.diagram/src/comrel/diagram/edit/policies/ConditionalUnitConditionalUnitIfCompartment5CanonicalEditPolicy.java b/org.eclipse.emf.refactor.comrel.diagram/src/comrel/diagram/edit/policies/ConditionalUnitConditionalUnitIfCompartment5CanonicalEditPolicy.java
new file mode 100644
index 0000000..f7d6893
--- /dev/null
+++ b/org.eclipse.emf.refactor.comrel.diagram/src/comrel/diagram/edit/policies/ConditionalUnitConditionalUnitIfCompartment5CanonicalEditPolicy.java
@@ -0,0 +1,163 @@
+/*
+ *
+ */
+package comrel.diagram.edit.policies;
+
+import java.util.ArrayList;
+import java.util.Collection;
+import java.util.Iterator;
+import java.util.LinkedList;
+import java.util.List;
+
+import org.eclipse.core.runtime.IAdaptable;
+import org.eclipse.emf.ecore.EObject;
+import org.eclipse.emf.ecore.EStructuralFeature;
+import org.eclipse.gef.commands.Command;
+import org.eclipse.gmf.runtime.diagram.core.util.ViewUtil;
+import org.eclipse.gmf.runtime.diagram.ui.commands.DeferredLayoutCommand;
+import org.eclipse.gmf.runtime.diagram.ui.commands.ICommandProxy;
+import org.eclipse.gmf.runtime.diagram.ui.commands.SetViewMutabilityCommand;
+import org.eclipse.gmf.runtime.diagram.ui.editpolicies.CanonicalEditPolicy;
+import org.eclipse.gmf.runtime.diagram.ui.requests.CreateViewRequest;
+import org.eclipse.gmf.runtime.emf.core.util.EObjectAdapter;
+import org.eclipse.gmf.runtime.notation.Node;
+import org.eclipse.gmf.runtime.notation.View;
+
+import comrel.ComrelPackage;
+import comrel.diagram.edit.parts.ConditionCheckEditPart;
+import comrel.diagram.part.ComrelDiagramUpdater;
+import comrel.diagram.part.ComrelNodeDescriptor;
+import comrel.diagram.part.ComrelVisualIDRegistry;
+
+/**
+ * @generated
+ */
+public class ConditionalUnitConditionalUnitIfCompartment5CanonicalEditPolicy
+ extends CanonicalEditPolicy {
+
+ /**
+ * @generated
+ */
+ protected EStructuralFeature getFeatureToSynchronize() {
+ return ComrelPackage.eINSTANCE.getConditionalUnit_If();
+ }
+
+ /**
+ * @generated
+ */
+ @SuppressWarnings("rawtypes")
+ protected List getSemanticChildrenList() {
+ View viewObject = (View) getHost().getModel();
+ LinkedList<EObject> result = new LinkedList<EObject>();
+ List<ComrelNodeDescriptor> childDescriptors = ComrelDiagramUpdater
+ .getConditionalUnitConditionalUnitIfCompartment_7065SemanticChildren(viewObject);
+ for (ComrelNodeDescriptor d : childDescriptors) {
+ result.add(d.getModelElement());
+ }
+ return result;
+ }
+
+ /**
+ * @generated
+ */
+ protected boolean isOrphaned(Collection<EObject> semanticChildren,
+ final View view) {
+ return isMyDiagramElement(view)
+ && !semanticChildren.contains(view.getElement());
+ }
+
+ /**
+ * @generated
+ */
+ private boolean isMyDiagramElement(View view) {
+ return ConditionCheckEditPart.VISUAL_ID == ComrelVisualIDRegistry
+ .getVisualID(view);
+ }
+
+ /**
+ * @generated
+ */
+ protected void refreshSemantic() {
+ if (resolveSemanticElement() == null) {
+ return;
+ }
+ LinkedList<IAdaptable> createdViews = new LinkedList<IAdaptable>();
+ List<ComrelNodeDescriptor> childDescriptors = ComrelDiagramUpdater
+ .getConditionalUnitConditionalUnitIfCompartment_7065SemanticChildren((View) getHost()
+ .getModel());
+ LinkedList<View> orphaned = new LinkedList<View>();
+ // we care to check only views we recognize as ours
+ LinkedList<View> knownViewChildren = new LinkedList<View>();
+ for (View v : getViewChildren()) {
+ if (isMyDiagramElement(v)) {
+ knownViewChildren.add(v);
+ }
+ }
+ // alternative to #cleanCanonicalSemanticChildren(getViewChildren(), semanticChildren)
+ //
+ // iteration happens over list of desired semantic elements, trying to find best matching View, while original CEP
+ // iterates views, potentially losing view (size/bounds) information - i.e. if there are few views to reference same EObject, only last one
+ // to answer isOrphaned == true will be used for the domain element representation, see #cleanCanonicalSemanticChildren()
+ for (Iterator<ComrelNodeDescriptor> descriptorsIterator = childDescriptors
+ .iterator(); descriptorsIterator.hasNext();) {
+ ComrelNodeDescriptor next = descriptorsIterator.next();
+ String hint = ComrelVisualIDRegistry.getType(next.getVisualID());
+ LinkedList<View> perfectMatch = new LinkedList<View>(); // both semanticElement and hint match that of NodeDescriptor
+ for (View childView : getViewChildren()) {
+ EObject semanticElement = childView.getElement();
+ if (next.getModelElement().equals(semanticElement)) {
+ if (hint.equals(childView.getType())) {
+ perfectMatch.add(childView);
+ // actually, can stop iteration over view children here, but
+ // may want to use not the first view but last one as a 'real' match (the way original CEP does
+ // with its trick with viewToSemanticMap inside #cleanCanonicalSemanticChildren
+ }
+ }
+ }
+ if (perfectMatch.size() > 0) {
+ descriptorsIterator.remove(); // precise match found no need to create anything for the NodeDescriptor
+ // use only one view (first or last?), keep rest as orphaned for further consideration
+ knownViewChildren.remove(perfectMatch.getFirst());
+ }
+ }
+ // those left in knownViewChildren are subject to removal - they are our diagram elements we didn't find match to,
+ // or those we have potential matches to, and thus need to be recreated, preserving size/location information.
+ orphaned.addAll(knownViewChildren);
+ //
+ ArrayList<CreateViewRequest.ViewDescriptor> viewDescriptors = new ArrayList<CreateViewRequest.ViewDescriptor>(
+ childDescriptors.size());
+ for (ComrelNodeDescriptor next : childDescriptors) {
+ String hint = ComrelVisualIDRegistry.getType(next.getVisualID());
+ IAdaptable elementAdapter = new CanonicalElementAdapter(
+ next.getModelElement(), hint);
+ CreateViewRequest.ViewDescriptor descriptor = new CreateViewRequest.ViewDescriptor(
+ elementAdapter, Node.class, hint, ViewUtil.APPEND, false,
+ host().getDiagramPreferencesHint());
+ viewDescriptors.add(descriptor);
+ }
+
+ boolean changed = deleteViews(orphaned.iterator());
+ //
+ CreateViewRequest request = getCreateViewRequest(viewDescriptors);
+ Command cmd = getCreateViewCommand(request);
+ if (cmd != null && cmd.canExecute()) {
+ SetViewMutabilityCommand.makeMutable(
+ new EObjectAdapter(host().getNotationView())).execute();
+ executeCommand(cmd);
+ @SuppressWarnings("unchecked")
+ List<IAdaptable> nl = (List<IAdaptable>) request.getNewObject();
+ createdViews.addAll(nl);
+ }
+ if (changed || createdViews.size() > 0) {
+ postProcessRefreshSemantic(createdViews);
+ }
+ if (createdViews.size() > 1) {
+ // perform a layout of the container
+ DeferredLayoutCommand layoutCmd = new DeferredLayoutCommand(host()
+ .getEditingDomain(), createdViews, host());
+ executeCommand(new ICommandProxy(layoutCmd));
+ }
+
+ makeViewsImmutable(createdViews);
+ }
+}
diff --git a/org.eclipse.emf.refactor.comrel.diagram/src/comrel/diagram/edit/policies/ConditionalUnitConditionalUnitIfCompartment5ItemSemanticEditPolicy.java b/org.eclipse.emf.refactor.comrel.diagram/src/comrel/diagram/edit/policies/ConditionalUnitConditionalUnitIfCompartment5ItemSemanticEditPolicy.java
new file mode 100644
index 0000000..f261fe6
--- /dev/null
+++ b/org.eclipse.emf.refactor.comrel.diagram/src/comrel/diagram/edit/policies/ConditionalUnitConditionalUnitIfCompartment5ItemSemanticEditPolicy.java
@@ -0,0 +1,35 @@
+/*
+ *
+ */
+package comrel.diagram.edit.policies;
+
+import org.eclipse.gef.commands.Command;
+import org.eclipse.gmf.runtime.emf.type.core.requests.CreateElementRequest;
+
+import comrel.diagram.edit.commands.ConditionCheckCreateCommand;
+import comrel.diagram.providers.ComrelElementTypes;
+
+/**
+ * @generated
+ */
+public class ConditionalUnitConditionalUnitIfCompartment5ItemSemanticEditPolicy
+ extends ComrelBaseItemSemanticEditPolicy {
+
+ /**
+ * @generated
+ */
+ public ConditionalUnitConditionalUnitIfCompartment5ItemSemanticEditPolicy() {
+ super(ComrelElementTypes.ConditionalUnit_3072);
+ }
+
+ /**
+ * @generated
+ */
+ protected Command getCreateCommand(CreateElementRequest req) {
+ if (ComrelElementTypes.ConditionCheck_3076 == req.getElementType()) {
+ return getGEFWrapper(new ConditionCheckCreateCommand(req));
+ }
+ return super.getCreateCommand(req);
+ }
+
+}
diff --git a/org.eclipse.emf.refactor.comrel.diagram/src/comrel/diagram/edit/policies/ConditionalUnitConditionalUnitIfCompartment6CanonicalEditPolicy.java b/org.eclipse.emf.refactor.comrel.diagram/src/comrel/diagram/edit/policies/ConditionalUnitConditionalUnitIfCompartment6CanonicalEditPolicy.java
new file mode 100644
index 0000000..e21423b
--- /dev/null
+++ b/org.eclipse.emf.refactor.comrel.diagram/src/comrel/diagram/edit/policies/ConditionalUnitConditionalUnitIfCompartment6CanonicalEditPolicy.java
@@ -0,0 +1,163 @@
+/*
+ *
+ */
+package comrel.diagram.edit.policies;
+
+import java.util.ArrayList;
+import java.util.Collection;
+import java.util.Iterator;
+import java.util.LinkedList;
+import java.util.List;
+
+import org.eclipse.core.runtime.IAdaptable;
+import org.eclipse.emf.ecore.EObject;
+import org.eclipse.emf.ecore.EStructuralFeature;
+import org.eclipse.gef.commands.Command;
+import org.eclipse.gmf.runtime.diagram.core.util.ViewUtil;
+import org.eclipse.gmf.runtime.diagram.ui.commands.DeferredLayoutCommand;
+import org.eclipse.gmf.runtime.diagram.ui.commands.ICommandProxy;
+import org.eclipse.gmf.runtime.diagram.ui.commands.SetViewMutabilityCommand;
+import org.eclipse.gmf.runtime.diagram.ui.editpolicies.CanonicalEditPolicy;
+import org.eclipse.gmf.runtime.diagram.ui.requests.CreateViewRequest;
+import org.eclipse.gmf.runtime.emf.core.util.EObjectAdapter;
+import org.eclipse.gmf.runtime.notation.Node;
+import org.eclipse.gmf.runtime.notation.View;
+
+import comrel.ComrelPackage;
+import comrel.diagram.edit.parts.ConditionCheckEditPart;
+import comrel.diagram.part.ComrelDiagramUpdater;
+import comrel.diagram.part.ComrelNodeDescriptor;
+import comrel.diagram.part.ComrelVisualIDRegistry;
+
+/**
+ * @generated
+ */
+public class ConditionalUnitConditionalUnitIfCompartment6CanonicalEditPolicy
+ extends CanonicalEditPolicy {
+
+ /**
+ * @generated
+ */
+ protected EStructuralFeature getFeatureToSynchronize() {
+ return ComrelPackage.eINSTANCE.getConditionalUnit_If();
+ }
+
+ /**
+ * @generated
+ */
+ @SuppressWarnings("rawtypes")
+ protected List getSemanticChildrenList() {
+ View viewObject = (View) getHost().getModel();
+ LinkedList<EObject> result = new LinkedList<EObject>();
+ List<ComrelNodeDescriptor> childDescriptors = ComrelDiagramUpdater
+ .getConditionalUnitConditionalUnitIfCompartment_7071SemanticChildren(viewObject);
+ for (ComrelNodeDescriptor d : childDescriptors) {
+ result.add(d.getModelElement());
+ }
+ return result;
+ }
+
+ /**
+ * @generated
+ */
+ protected boolean isOrphaned(Collection<EObject> semanticChildren,
+ final View view) {
+ return isMyDiagramElement(view)
+ && !semanticChildren.contains(view.getElement());
+ }
+
+ /**
+ * @generated
+ */
+ private boolean isMyDiagramElement(View view) {
+ return ConditionCheckEditPart.VISUAL_ID == ComrelVisualIDRegistry
+ .getVisualID(view);
+ }
+
+ /**
+ * @generated
+ */
+ protected void refreshSemantic() {
+ if (resolveSemanticElement() == null) {
+ return;
+ }
+ LinkedList<IAdaptable> createdViews = new LinkedList<IAdaptable>();
+ List<ComrelNodeDescriptor> childDescriptors = ComrelDiagramUpdater
+ .getConditionalUnitConditionalUnitIfCompartment_7071SemanticChildren((View) getHost()
+ .getModel());
+ LinkedList<View> orphaned = new LinkedList<View>();
+ // we care to check only views we recognize as ours
+ LinkedList<View> knownViewChildren = new LinkedList<View>();
+ for (View v : getViewChildren()) {
+ if (isMyDiagramElement(v)) {
+ knownViewChildren.add(v);
+ }
+ }
+ // alternative to #cleanCanonicalSemanticChildren(getViewChildren(), semanticChildren)
+ //
+ // iteration happens over list of desired semantic elements, trying to find best matching View, while original CEP
+ // iterates views, potentially losing view (size/bounds) information - i.e. if there are few views to reference same EObject, only last one
+ // to answer isOrphaned == true will be used for the domain element representation, see #cleanCanonicalSemanticChildren()
+ for (Iterator<ComrelNodeDescriptor> descriptorsIterator = childDescriptors
+ .iterator(); descriptorsIterator.hasNext();) {
+ ComrelNodeDescriptor next = descriptorsIterator.next();
+ String hint = ComrelVisualIDRegistry.getType(next.getVisualID());
+ LinkedList<View> perfectMatch = new LinkedList<View>(); // both semanticElement and hint match that of NodeDescriptor
+ for (View childView : getViewChildren()) {
+ EObject semanticElement = childView.getElement();
+ if (next.getModelElement().equals(semanticElement)) {
+ if (hint.equals(childView.getType())) {
+ perfectMatch.add(childView);
+ // actually, can stop iteration over view children here, but
+ // may want to use not the first view but last one as a 'real' match (the way original CEP does
+ // with its trick with viewToSemanticMap inside #cleanCanonicalSemanticChildren
+ }
+ }
+ }
+ if (perfectMatch.size() > 0) {
+ descriptorsIterator.remove(); // precise match found no need to create anything for the NodeDescriptor
+ // use only one view (first or last?), keep rest as orphaned for further consideration
+ knownViewChildren.remove(perfectMatch.getFirst());
+ }
+ }
+ // those left in knownViewChildren are subject to removal - they are our diagram elements we didn't find match to,
+ // or those we have potential matches to, and thus need to be recreated, preserving size/location information.
+ orphaned.addAll(knownViewChildren);
+ //
+ ArrayList<CreateViewRequest.ViewDescriptor> viewDescriptors = new ArrayList<CreateViewRequest.ViewDescriptor>(
+ childDescriptors.size());
+ for (ComrelNodeDescriptor next : childDescriptors) {
+ String hint = ComrelVisualIDRegistry.getType(next.getVisualID());
+ IAdaptable elementAdapter = new CanonicalElementAdapter(
+ next.getModelElement(), hint);
+ CreateViewRequest.ViewDescriptor descriptor = new CreateViewRequest.ViewDescriptor(
+ elementAdapter, Node.class, hint, ViewUtil.APPEND, false,
+ host().getDiagramPreferencesHint());
+ viewDescriptors.add(descriptor);
+ }
+
+ boolean changed = deleteViews(orphaned.iterator());
+ //
+ CreateViewRequest request = getCreateViewRequest(viewDescriptors);
+ Command cmd = getCreateViewCommand(request);
+ if (cmd != null && cmd.canExecute()) {
+ SetViewMutabilityCommand.makeMutable(
+ new EObjectAdapter(host().getNotationView())).execute();
+ executeCommand(cmd);
+ @SuppressWarnings("unchecked")
+ List<IAdaptable> nl = (List<IAdaptable>) request.getNewObject();
+ createdViews.addAll(nl);
+ }
+ if (changed || createdViews.size() > 0) {
+ postProcessRefreshSemantic(createdViews);
+ }
+ if (createdViews.size() > 1) {
+ // perform a layout of the container
+ DeferredLayoutCommand layoutCmd = new DeferredLayoutCommand(host()
+ .getEditingDomain(), createdViews, host());
+ executeCommand(new ICommandProxy(layoutCmd));
+ }
+
+ makeViewsImmutable(createdViews);
+ }
+}
diff --git a/org.eclipse.emf.refactor.comrel.diagram/src/comrel/diagram/edit/policies/ConditionalUnitConditionalUnitIfCompartment6ItemSemanticEditPolicy.java b/org.eclipse.emf.refactor.comrel.diagram/src/comrel/diagram/edit/policies/ConditionalUnitConditionalUnitIfCompartment6ItemSemanticEditPolicy.java
new file mode 100644
index 0000000..0f0d38b
--- /dev/null
+++ b/org.eclipse.emf.refactor.comrel.diagram/src/comrel/diagram/edit/policies/ConditionalUnitConditionalUnitIfCompartment6ItemSemanticEditPolicy.java
@@ -0,0 +1,35 @@
+/*
+ *
+ */
+package comrel.diagram.edit.policies;
+
+import org.eclipse.gef.commands.Command;
+import org.eclipse.gmf.runtime.emf.type.core.requests.CreateElementRequest;
+
+import comrel.diagram.edit.commands.ConditionCheckCreateCommand;
+import comrel.diagram.providers.ComrelElementTypes;
+
+/**
+ * @generated
+ */
+public class ConditionalUnitConditionalUnitIfCompartment6ItemSemanticEditPolicy
+ extends ComrelBaseItemSemanticEditPolicy {
+
+ /**
+ * @generated
+ */
+ public ConditionalUnitConditionalUnitIfCompartment6ItemSemanticEditPolicy() {
+ super(ComrelElementTypes.ConditionalUnit_3075);
+ }
+
+ /**
+ * @generated
+ */
+ protected Command getCreateCommand(CreateElementRequest req) {
+ if (ComrelElementTypes.ConditionCheck_3076 == req.getElementType()) {
+ return getGEFWrapper(new ConditionCheckCreateCommand(req));
+ }
+ return super.getCreateCommand(req);
+ }
+
+}
diff --git a/org.eclipse.emf.refactor.comrel.diagram/src/comrel/diagram/edit/policies/ConditionalUnitConditionalUnitIfCompartment7CanonicalEditPolicy.java b/org.eclipse.emf.refactor.comrel.diagram/src/comrel/diagram/edit/policies/ConditionalUnitConditionalUnitIfCompartment7CanonicalEditPolicy.java
new file mode 100644
index 0000000..69f54c8
--- /dev/null
+++ b/org.eclipse.emf.refactor.comrel.diagram/src/comrel/diagram/edit/policies/ConditionalUnitConditionalUnitIfCompartment7CanonicalEditPolicy.java
@@ -0,0 +1,163 @@
+/*
+ *
+ */
+package comrel.diagram.edit.policies;
+
+import java.util.ArrayList;
+import java.util.Collection;
+import java.util.Iterator;
+import java.util.LinkedList;
+import java.util.List;
+
+import org.eclipse.core.runtime.IAdaptable;
+import org.eclipse.emf.ecore.EObject;
+import org.eclipse.emf.ecore.EStructuralFeature;
+import org.eclipse.gef.commands.Command;
+import org.eclipse.gmf.runtime.diagram.core.util.ViewUtil;
+import org.eclipse.gmf.runtime.diagram.ui.commands.DeferredLayoutCommand;
+import org.eclipse.gmf.runtime.diagram.ui.commands.ICommandProxy;
+import org.eclipse.gmf.runtime.diagram.ui.commands.SetViewMutabilityCommand;
+import org.eclipse.gmf.runtime.diagram.ui.editpolicies.CanonicalEditPolicy;
+import org.eclipse.gmf.runtime.diagram.ui.requests.CreateViewRequest;
+import org.eclipse.gmf.runtime.emf.core.util.EObjectAdapter;
+import org.eclipse.gmf.runtime.notation.Node;
+import org.eclipse.gmf.runtime.notation.View;
+
+import comrel.ComrelPackage;
+import comrel.diagram.edit.parts.ConditionCheckEditPart;
+import comrel.diagram.part.ComrelDiagramUpdater;
+import comrel.diagram.part.ComrelNodeDescriptor;
+import comrel.diagram.part.ComrelVisualIDRegistry;
+
+/**
+ * @generated
+ */
+public class ConditionalUnitConditionalUnitIfCompartment7CanonicalEditPolicy
+ extends CanonicalEditPolicy {
+
+ /**
+ * @generated
+ */
+ protected EStructuralFeature getFeatureToSynchronize() {
+ return ComrelPackage.eINSTANCE.getConditionalUnit_If();
+ }
+
+ /**
+ * @generated
+ */
+ @SuppressWarnings("rawtypes")
+ protected List getSemanticChildrenList() {
+ View viewObject = (View) getHost().getModel();
+ LinkedList<EObject> result = new LinkedList<EObject>();
+ List<ComrelNodeDescriptor> childDescriptors = ComrelDiagramUpdater
+ .getConditionalUnitConditionalUnitIfCompartment_7081SemanticChildren(viewObject);
+ for (ComrelNodeDescriptor d : childDescriptors) {
+ result.add(d.getModelElement());
+ }
+ return result;
+ }
+
+ /**
+ * @generated
+ */
+ protected boolean isOrphaned(Collection<EObject> semanticChildren,
+ final View view) {
+ return isMyDiagramElement(view)
+ && !semanticChildren.contains(view.getElement());
+ }
+
+ /**
+ * @generated
+ */
+ private boolean isMyDiagramElement(View view) {
+ return ConditionCheckEditPart.VISUAL_ID == ComrelVisualIDRegistry
+ .getVisualID(view);
+ }
+
+ /**
+ * @generated
+ */
+ protected void refreshSemantic() {
+ if (resolveSemanticElement() == null) {
+ return;
+ }
+ LinkedList<IAdaptable> createdViews = new LinkedList<IAdaptable>();
+ List<ComrelNodeDescriptor> childDescriptors = ComrelDiagramUpdater
+ .getConditionalUnitConditionalUnitIfCompartment_7081SemanticChildren((View) getHost()
+ .getModel());
+ LinkedList<View> orphaned = new LinkedList<View>();
+ // we care to check only views we recognize as ours
+ LinkedList<View> knownViewChildren = new LinkedList<View>();
+ for (View v : getViewChildren()) {
+ if (isMyDiagramElement(v)) {
+ knownViewChildren.add(v);
+ }
+ }
+ // alternative to #cleanCanonicalSemanticChildren(getViewChildren(), semanticChildren)
+ //
+ // iteration happens over list of desired semantic elements, trying to find best matching View, while original CEP
+ // iterates views, potentially losing view (size/bounds) information - i.e. if there are few views to reference same EObject, only last one
+ // to answer isOrphaned == true will be used for the domain element representation, see #cleanCanonicalSemanticChildren()
+ for (Iterator<ComrelNodeDescriptor> descriptorsIterator = childDescriptors
+ .iterator(); descriptorsIterator.hasNext();) {
+ ComrelNodeDescriptor next = descriptorsIterator.next();
+ String hint = ComrelVisualIDRegistry.getType(next.getVisualID());
+ LinkedList<View> perfectMatch = new LinkedList<View>(); // both semanticElement and hint match that of NodeDescriptor
+ for (View childView : getViewChildren()) {
+ EObject semanticElement = childView.getElement();
+ if (next.getModelElement().equals(semanticElement)) {
+ if (hint.equals(childView.getType())) {
+ perfectMatch.add(childView);
+ // actually, can stop iteration over view children here, but
+ // may want to use not the first view but last one as a 'real' match (the way original CEP does
+ // with its trick with viewToSemanticMap inside #cleanCanonicalSemanticChildren
+ }
+ }
+ }
+ if (perfectMatch.size() > 0) {
+ descriptorsIterator.remove(); // precise match found no need to create anything for the NodeDescriptor
+ // use only one view (first or last?), keep rest as orphaned for further consideration
+ knownViewChildren.remove(perfectMatch.getFirst());
+ }
+ }
+ // those left in knownViewChildren are subject to removal - they are our diagram elements we didn't find match to,
+ // or those we have potential matches to, and thus need to be recreated, preserving size/location information.
+ orphaned.addAll(knownViewChildren);
+ //
+ ArrayList<CreateViewRequest.ViewDescriptor> viewDescriptors = new ArrayList<CreateViewRequest.ViewDescriptor>(
+ childDescriptors.size());
+ for (ComrelNodeDescriptor next : childDescriptors) {
+ String hint = ComrelVisualIDRegistry.getType(next.getVisualID());
+ IAdaptable elementAdapter = new CanonicalElementAdapter(
+ next.getModelElement(), hint);
+ CreateViewRequest.ViewDescriptor descriptor = new CreateViewRequest.ViewDescriptor(
+ elementAdapter, Node.class, hint, ViewUtil.APPEND, false,
+ host().getDiagramPreferencesHint());
+ viewDescriptors.add(descriptor);
+ }
+
+ boolean changed = deleteViews(orphaned.iterator());
+ //
+ CreateViewRequest request = getCreateViewRequest(viewDescriptors);
+ Command cmd = getCreateViewCommand(request);
+ if (cmd != null && cmd.canExecute()) {
+ SetViewMutabilityCommand.makeMutable(
+ new EObjectAdapter(host().getNotationView())).execute();
+ executeCommand(cmd);
+ @SuppressWarnings("unchecked")
+ List<IAdaptable> nl = (List<IAdaptable>) request.getNewObject();
+ createdViews.addAll(nl);
+ }
+ if (changed || createdViews.size() > 0) {
+ postProcessRefreshSemantic(createdViews);
+ }
+ if (createdViews.size() > 1) {
+ // perform a layout of the container
+ DeferredLayoutCommand layoutCmd = new DeferredLayoutCommand(host()
+ .getEditingDomain(), createdViews, host());
+ executeCommand(new ICommandProxy(layoutCmd));
+ }
+
+ makeViewsImmutable(createdViews);
+ }
+}
diff --git a/org.eclipse.emf.refactor.comrel.diagram/src/comrel/diagram/edit/policies/ConditionalUnitConditionalUnitIfCompartment7ItemSemanticEditPolicy.java b/org.eclipse.emf.refactor.comrel.diagram/src/comrel/diagram/edit/policies/ConditionalUnitConditionalUnitIfCompartment7ItemSemanticEditPolicy.java
new file mode 100644
index 0000000..89458ce
--- /dev/null
+++ b/org.eclipse.emf.refactor.comrel.diagram/src/comrel/diagram/edit/policies/ConditionalUnitConditionalUnitIfCompartment7ItemSemanticEditPolicy.java
@@ -0,0 +1,35 @@
+/*
+ *
+ */
+package comrel.diagram.edit.policies;
+
+import org.eclipse.gef.commands.Command;
+import org.eclipse.gmf.runtime.emf.type.core.requests.CreateElementRequest;
+
+import comrel.diagram.edit.commands.ConditionCheckCreateCommand;
+import comrel.diagram.providers.ComrelElementTypes;
+
+/**
+ * @generated
+ */
+public class ConditionalUnitConditionalUnitIfCompartment7ItemSemanticEditPolicy
+ extends ComrelBaseItemSemanticEditPolicy {
+
+ /**
+ * @generated
+ */
+ public ConditionalUnitConditionalUnitIfCompartment7ItemSemanticEditPolicy() {
+ super(ComrelElementTypes.ConditionalUnit_2006);
+ }
+
+ /**
+ * @generated
+ */
+ protected Command getCreateCommand(CreateElementRequest req) {
+ if (ComrelElementTypes.ConditionCheck_3076 == req.getElementType()) {
+ return getGEFWrapper(new ConditionCheckCreateCommand(req));
+ }
+ return super.getCreateCommand(req);
+ }
+
+}
diff --git a/org.eclipse.emf.refactor.comrel.diagram/src/comrel/diagram/edit/policies/ConditionalUnitConditionalUnitIfCompartmentCanonicalEditPolicy.java b/org.eclipse.emf.refactor.comrel.diagram/src/comrel/diagram/edit/policies/ConditionalUnitConditionalUnitIfCompartmentCanonicalEditPolicy.java
new file mode 100644
index 0000000..444ecac
--- /dev/null
+++ b/org.eclipse.emf.refactor.comrel.diagram/src/comrel/diagram/edit/policies/ConditionalUnitConditionalUnitIfCompartmentCanonicalEditPolicy.java
@@ -0,0 +1,163 @@
+/*
+ *
+ */
+package comrel.diagram.edit.policies;
+
+import java.util.ArrayList;
+import java.util.Collection;
+import java.util.Iterator;
+import java.util.LinkedList;
+import java.util.List;
+
+import org.eclipse.core.runtime.IAdaptable;
+import org.eclipse.emf.ecore.EObject;
+import org.eclipse.emf.ecore.EStructuralFeature;
+import org.eclipse.gef.commands.Command;
+import org.eclipse.gmf.runtime.diagram.core.util.ViewUtil;
+import org.eclipse.gmf.runtime.diagram.ui.commands.DeferredLayoutCommand;
+import org.eclipse.gmf.runtime.diagram.ui.commands.ICommandProxy;
+import org.eclipse.gmf.runtime.diagram.ui.commands.SetViewMutabilityCommand;
+import org.eclipse.gmf.runtime.diagram.ui.editpolicies.CanonicalEditPolicy;
+import org.eclipse.gmf.runtime.diagram.ui.requests.CreateViewRequest;
+import org.eclipse.gmf.runtime.emf.core.util.EObjectAdapter;
+import org.eclipse.gmf.runtime.notation.Node;
+import org.eclipse.gmf.runtime.notation.View;
+
+import comrel.ComrelPackage;
+import comrel.diagram.edit.parts.ConditionCheckEditPart;
+import comrel.diagram.part.ComrelDiagramUpdater;
+import comrel.diagram.part.ComrelNodeDescriptor;
+import comrel.diagram.part.ComrelVisualIDRegistry;
+
+/**
+ * @generated
+ */
+public class ConditionalUnitConditionalUnitIfCompartmentCanonicalEditPolicy
+ extends CanonicalEditPolicy {
+
+ /**
+ * @generated
+ */
+ protected EStructuralFeature getFeatureToSynchronize() {
+ return ComrelPackage.eINSTANCE.getConditionalUnit_If();
+ }
+
+ /**
+ * @generated
+ */
+ @SuppressWarnings("rawtypes")
+ protected List getSemanticChildrenList() {
+ View viewObject = (View) getHost().getModel();
+ LinkedList<EObject> result = new LinkedList<EObject>();
+ List<ComrelNodeDescriptor> childDescriptors = ComrelDiagramUpdater
+ .getConditionalUnitConditionalUnitIfCompartment_7017SemanticChildren(viewObject);
+ for (ComrelNodeDescriptor d : childDescriptors) {
+ result.add(d.getModelElement());
+ }
+ return result;
+ }
+
+ /**
+ * @generated
+ */
+ protected boolean isOrphaned(Collection<EObject> semanticChildren,
+ final View view) {
+ return isMyDiagramElement(view)
+ && !semanticChildren.contains(view.getElement());
+ }
+
+ /**
+ * @generated
+ */
+ private boolean isMyDiagramElement(View view) {
+ return ConditionCheckEditPart.VISUAL_ID == ComrelVisualIDRegistry
+ .getVisualID(view);
+ }
+
+ /**
+ * @generated
+ */
+ protected void refreshSemantic() {
+ if (resolveSemanticElement() == null) {
+ return;
+ }
+ LinkedList<IAdaptable> createdViews = new LinkedList<IAdaptable>();
+ List<ComrelNodeDescriptor> childDescriptors = ComrelDiagramUpdater
+ .getConditionalUnitConditionalUnitIfCompartment_7017SemanticChildren((View) getHost()
+ .getModel());
+ LinkedList<View> orphaned = new LinkedList<View>();
+ // we care to check only views we recognize as ours
+ LinkedList<View> knownViewChildren = new LinkedList<View>();
+ for (View v : getViewChildren()) {
+ if (isMyDiagramElement(v)) {
+ knownViewChildren.add(v);
+ }
+ }
+ // alternative to #cleanCanonicalSemanticChildren(getViewChildren(), semanticChildren)
+ //
+ // iteration happens over list of desired semantic elements, trying to find best matching View, while original CEP
+ // iterates views, potentially losing view (size/bounds) information - i.e. if there are few views to reference same EObject, only last one
+ // to answer isOrphaned == true will be used for the domain element representation, see #cleanCanonicalSemanticChildren()
+ for (Iterator<ComrelNodeDescriptor> descriptorsIterator = childDescriptors
+ .iterator(); descriptorsIterator.hasNext();) {
+ ComrelNodeDescriptor next = descriptorsIterator.next();
+ String hint = ComrelVisualIDRegistry.getType(next.getVisualID());
+ LinkedList<View> perfectMatch = new LinkedList<View>(); // both semanticElement and hint match that of NodeDescriptor
+ for (View childView : getViewChildren()) {
+ EObject semanticElement = childView.getElement();
+ if (next.getModelElement().equals(semanticElement)) {
+ if (hint.equals(childView.getType())) {
+ perfectMatch.add(childView);
+ // actually, can stop iteration over view children here, but
+ // may want to use not the first view but last one as a 'real' match (the way original CEP does
+ // with its trick with viewToSemanticMap inside #cleanCanonicalSemanticChildren
+ }
+ }
+ }
+ if (perfectMatch.size() > 0) {
+ descriptorsIterator.remove(); // precise match found no need to create anything for the NodeDescriptor
+ // use only one view (first or last?), keep rest as orphaned for further consideration
+ knownViewChildren.remove(perfectMatch.getFirst());
+ }
+ }
+ // those left in knownViewChildren are subject to removal - they are our diagram elements we didn't find match to,
+ // or those we have potential matches to, and thus need to be recreated, preserving size/location information.
+ orphaned.addAll(knownViewChildren);
+ //
+ ArrayList<CreateViewRequest.ViewDescriptor> viewDescriptors = new ArrayList<CreateViewRequest.ViewDescriptor>(
+ childDescriptors.size());
+ for (ComrelNodeDescriptor next : childDescriptors) {
+ String hint = ComrelVisualIDRegistry.getType(next.getVisualID());
+ IAdaptable elementAdapter = new CanonicalElementAdapter(
+ next.getModelElement(), hint);
+ CreateViewRequest.ViewDescriptor descriptor = new CreateViewRequest.ViewDescriptor(
+ elementAdapter, Node.class, hint, ViewUtil.APPEND, false,
+ host().getDiagramPreferencesHint());
+ viewDescriptors.add(descriptor);
+ }
+
+ boolean changed = deleteViews(orphaned.iterator());
+ //
+ CreateViewRequest request = getCreateViewRequest(viewDescriptors);
+ Command cmd = getCreateViewCommand(request);
+ if (cmd != null && cmd.canExecute()) {
+ SetViewMutabilityCommand.makeMutable(
+ new EObjectAdapter(host().getNotationView())).execute();
+ executeCommand(cmd);
+ @SuppressWarnings("unchecked")
+ List<IAdaptable> nl = (List<IAdaptable>) request.getNewObject();
+ createdViews.addAll(nl);
+ }
+ if (changed || createdViews.size() > 0) {
+ postProcessRefreshSemantic(createdViews);
+ }
+ if (createdViews.size() > 1) {
+ // perform a layout of the container
+ DeferredLayoutCommand layoutCmd = new DeferredLayoutCommand(host()
+ .getEditingDomain(), createdViews, host());
+ executeCommand(new ICommandProxy(layoutCmd));
+ }
+
+ makeViewsImmutable(createdViews);
+ }
+}
diff --git a/org.eclipse.emf.refactor.comrel.diagram/src/comrel/diagram/edit/policies/ConditionalUnitConditionalUnitIfCompartmentItemSemanticEditPolicy.java b/org.eclipse.emf.refactor.comrel.diagram/src/comrel/diagram/edit/policies/ConditionalUnitConditionalUnitIfCompartmentItemSemanticEditPolicy.java
new file mode 100644
index 0000000..5c7fd48
--- /dev/null
+++ b/org.eclipse.emf.refactor.comrel.diagram/src/comrel/diagram/edit/policies/ConditionalUnitConditionalUnitIfCompartmentItemSemanticEditPolicy.java
@@ -0,0 +1,35 @@
+/*
+ *
+ */
+package comrel.diagram.edit.policies;
+
+import org.eclipse.gef.commands.Command;
+import org.eclipse.gmf.runtime.emf.type.core.requests.CreateElementRequest;
+
+import comrel.diagram.edit.commands.ConditionCheckCreateCommand;
+import comrel.diagram.providers.ComrelElementTypes;
+
+/**
+ * @generated
+ */
+public class ConditionalUnitConditionalUnitIfCompartmentItemSemanticEditPolicy
+ extends ComrelBaseItemSemanticEditPolicy {
+
+ /**
+ * @generated
+ */
+ public ConditionalUnitConditionalUnitIfCompartmentItemSemanticEditPolicy() {
+ super(ComrelElementTypes.ConditionalUnit_3030);
+ }
+
+ /**
+ * @generated
+ */
+ protected Command getCreateCommand(CreateElementRequest req) {
+ if (ComrelElementTypes.ConditionCheck_3076 == req.getElementType()) {
+ return getGEFWrapper(new ConditionCheckCreateCommand(req));
+ }
+ return super.getCreateCommand(req);
+ }
+
+}
diff --git a/org.eclipse.emf.refactor.comrel.diagram/src/comrel/diagram/edit/policies/ConditionalUnitConditionalUnitThenCompartment2CanonicalEditPolicy.java b/org.eclipse.emf.refactor.comrel.diagram/src/comrel/diagram/edit/policies/ConditionalUnitConditionalUnitThenCompartment2CanonicalEditPolicy.java
new file mode 100644
index 0000000..28e9ddc
--- /dev/null
+++ b/org.eclipse.emf.refactor.comrel.diagram/src/comrel/diagram/edit/policies/ConditionalUnitConditionalUnitThenCompartment2CanonicalEditPolicy.java
@@ -0,0 +1,177 @@
+/*
+ *
+ */
+package comrel.diagram.edit.policies;
+
+import java.util.ArrayList;
+import java.util.Collection;
+import java.util.Iterator;
+import java.util.LinkedList;
+import java.util.List;
+
+import org.eclipse.core.runtime.IAdaptable;
+import org.eclipse.emf.ecore.EObject;
+import org.eclipse.emf.ecore.EStructuralFeature;
+import org.eclipse.gef.commands.Command;
+import org.eclipse.gmf.runtime.diagram.core.util.ViewUtil;
+import org.eclipse.gmf.runtime.diagram.ui.commands.DeferredLayoutCommand;
+import org.eclipse.gmf.runtime.diagram.ui.commands.ICommandProxy;
+import org.eclipse.gmf.runtime.diagram.ui.commands.SetViewMutabilityCommand;
+import org.eclipse.gmf.runtime.diagram.ui.editpolicies.CanonicalEditPolicy;
+import org.eclipse.gmf.runtime.diagram.ui.requests.CreateViewRequest;
+import org.eclipse.gmf.runtime.emf.core.util.EObjectAdapter;
+import org.eclipse.gmf.runtime.notation.Node;
+import org.eclipse.gmf.runtime.notation.View;
+
+import comrel.ComrelPackage;
+import comrel.diagram.edit.parts.AtomicUnit6EditPart;
+import comrel.diagram.edit.parts.CartesianQueuedUnit6EditPart;
+import comrel.diagram.edit.parts.ConditionalUnit6EditPart;
+import comrel.diagram.edit.parts.ParallelQueuedUnit3EditPart;
+import comrel.diagram.edit.parts.SequentialUnit5EditPart;
+import comrel.diagram.edit.parts.SingleQueuedUnit4EditPart;
+import comrel.diagram.part.ComrelDiagramUpdater;
+import comrel.diagram.part.ComrelNodeDescriptor;
+import comrel.diagram.part.ComrelVisualIDRegistry;
+
+/**
+ * @generated
+ */
+public class ConditionalUnitConditionalUnitThenCompartment2CanonicalEditPolicy
+ extends CanonicalEditPolicy {
+
+ /**
+ * @generated
+ */
+ protected EStructuralFeature getFeatureToSynchronize() {
+ return ComrelPackage.eINSTANCE.getConditionalUnit_Then();
+ }
+
+ /**
+ * @generated
+ */
+ @SuppressWarnings("rawtypes")
+ protected List getSemanticChildrenList() {
+ View viewObject = (View) getHost().getModel();
+ LinkedList<EObject> result = new LinkedList<EObject>();
+ List<ComrelNodeDescriptor> childDescriptors = ComrelDiagramUpdater
+ .getConditionalUnitConditionalUnitThenCompartment_7037SemanticChildren(viewObject);
+ for (ComrelNodeDescriptor d : childDescriptors) {
+ result.add(d.getModelElement());
+ }
+ return result;
+ }
+
+ /**
+ * @generated
+ */
+ protected boolean isOrphaned(Collection<EObject> semanticChildren,
+ final View view) {
+ return isMyDiagramElement(view)
+ && !semanticChildren.contains(view.getElement());
+ }
+
+ /**
+ * @generated
+ */
+ private boolean isMyDiagramElement(View view) {
+ int visualID = ComrelVisualIDRegistry.getVisualID(view);
+ switch (visualID) {
+ case CartesianQueuedUnit6EditPart.VISUAL_ID:
+ case ParallelQueuedUnit3EditPart.VISUAL_ID:
+ case SingleQueuedUnit4EditPart.VISUAL_ID:
+ case SequentialUnit5EditPart.VISUAL_ID:
+ case ConditionalUnit6EditPart.VISUAL_ID:
+ case AtomicUnit6EditPart.VISUAL_ID:
+ return true;
+ }
+ return false;
+ }
+
+ /**
+ * @generated
+ */
+ protected void refreshSemantic() {
+ if (resolveSemanticElement() == null) {
+ return;
+ }
+ LinkedList<IAdaptable> createdViews = new LinkedList<IAdaptable>();
+ List<ComrelNodeDescriptor> childDescriptors = ComrelDiagramUpdater
+ .getConditionalUnitConditionalUnitThenCompartment_7037SemanticChildren((View) getHost()
+ .getModel());
+ LinkedList<View> orphaned = new LinkedList<View>();
+ // we care to check only views we recognize as ours
+ LinkedList<View> knownViewChildren = new LinkedList<View>();
+ for (View v : getViewChildren()) {
+ if (isMyDiagramElement(v)) {
+ knownViewChildren.add(v);
+ }
+ }
+ // alternative to #cleanCanonicalSemanticChildren(getViewChildren(), semanticChildren)
+ //
+ // iteration happens over list of desired semantic elements, trying to find best matching View, while original CEP
+ // iterates views, potentially losing view (size/bounds) information - i.e. if there are few views to reference same EObject, only last one
+ // to answer isOrphaned == true will be used for the domain element representation, see #cleanCanonicalSemanticChildren()
+ for (Iterator<ComrelNodeDescriptor> descriptorsIterator = childDescriptors
+ .iterator(); descriptorsIterator.hasNext();) {
+ ComrelNodeDescriptor next = descriptorsIterator.next();
+ String hint = ComrelVisualIDRegistry.getType(next.getVisualID());
+ LinkedList<View> perfectMatch = new LinkedList<View>(); // both semanticElement and hint match that of NodeDescriptor
+ for (View childView : getViewChildren()) {
+ EObject semanticElement = childView.getElement();
+ if (next.getModelElement().equals(semanticElement)) {
+ if (hint.equals(childView.getType())) {
+ perfectMatch.add(childView);
+ // actually, can stop iteration over view children here, but
+ // may want to use not the first view but last one as a 'real' match (the way original CEP does
+ // with its trick with viewToSemanticMap inside #cleanCanonicalSemanticChildren
+ }
+ }
+ }
+ if (perfectMatch.size() > 0) {
+ descriptorsIterator.remove(); // precise match found no need to create anything for the NodeDescriptor
+ // use only one view (first or last?), keep rest as orphaned for further consideration
+ knownViewChildren.remove(perfectMatch.getFirst());
+ }
+ }
+ // those left in knownViewChildren are subject to removal - they are our diagram elements we didn't find match to,
+ // or those we have potential matches to, and thus need to be recreated, preserving size/location information.
+ orphaned.addAll(knownViewChildren);
+ //
+ ArrayList<CreateViewRequest.ViewDescriptor> viewDescriptors = new ArrayList<CreateViewRequest.ViewDescriptor>(
+ childDescriptors.size());
+ for (ComrelNodeDescriptor next : childDescriptors) {
+ String hint = ComrelVisualIDRegistry.getType(next.getVisualID());
+ IAdaptable elementAdapter = new CanonicalElementAdapter(
+ next.getModelElement(), hint);
+ CreateViewRequest.ViewDescriptor descriptor = new CreateViewRequest.ViewDescriptor(
+ elementAdapter, Node.class, hint, ViewUtil.APPEND, false,
+ host().getDiagramPreferencesHint());
+ viewDescriptors.add(descriptor);
+ }
+
+ boolean changed = deleteViews(orphaned.iterator());
+ //
+ CreateViewRequest request = getCreateViewRequest(viewDescriptors);
+ Command cmd = getCreateViewCommand(request);
+ if (cmd != null && cmd.canExecute()) {
+ SetViewMutabilityCommand.makeMutable(
+ new EObjectAdapter(host().getNotationView())).execute();
+ executeCommand(cmd);
+ @SuppressWarnings("unchecked")
+ List<IAdaptable> nl = (List<IAdaptable>) request.getNewObject();
+ createdViews.addAll(nl);
+ }
+ if (changed || createdViews.size() > 0) {
+ postProcessRefreshSemantic(createdViews);
+ }
+ if (createdViews.size() > 1) {
+ // perform a layout of the container
+ DeferredLayoutCommand layoutCmd = new DeferredLayoutCommand(host()
+ .getEditingDomain(), createdViews, host());
+ executeCommand(new ICommandProxy(layoutCmd));
+ }
+
+ makeViewsImmutable(createdViews);
+ }
+}
diff --git a/org.eclipse.emf.refactor.comrel.diagram/src/comrel/diagram/edit/policies/ConditionalUnitConditionalUnitThenCompartment2ItemSemanticEditPolicy.java b/org.eclipse.emf.refactor.comrel.diagram/src/comrel/diagram/edit/policies/ConditionalUnitConditionalUnitThenCompartment2ItemSemanticEditPolicy.java
new file mode 100644
index 0000000..827cb41
--- /dev/null
+++ b/org.eclipse.emf.refactor.comrel.diagram/src/comrel/diagram/edit/policies/ConditionalUnitConditionalUnitThenCompartment2ItemSemanticEditPolicy.java
@@ -0,0 +1,55 @@
+/*
+ *
+ */
+package comrel.diagram.edit.policies;
+
+import org.eclipse.gef.commands.Command;
+import org.eclipse.gmf.runtime.emf.type.core.requests.CreateElementRequest;
+
+import comrel.diagram.edit.commands.AtomicUnit6CreateCommand;
+import comrel.diagram.edit.commands.CartesianQueuedUnit6CreateCommand;
+import comrel.diagram.edit.commands.ConditionalUnit6CreateCommand;
+import comrel.diagram.edit.commands.ParallelQueuedUnit3CreateCommand;
+import comrel.diagram.edit.commands.SequentialUnit5CreateCommand;
+import comrel.diagram.edit.commands.SingleQueuedUnit4CreateCommand;
+import comrel.diagram.providers.ComrelElementTypes;
+
+/**
+ * @generated
+ */
+public class ConditionalUnitConditionalUnitThenCompartment2ItemSemanticEditPolicy
+ extends ComrelBaseItemSemanticEditPolicy {
+
+ /**
+ * @generated
+ */
+ public ConditionalUnitConditionalUnitThenCompartment2ItemSemanticEditPolicy() {
+ super(ComrelElementTypes.ConditionalUnit_3046);
+ }
+
+ /**
+ * @generated
+ */
+ protected Command getCreateCommand(CreateElementRequest req) {
+ if (ComrelElementTypes.CartesianQueuedUnit_3033 == req.getElementType()) {
+ return getGEFWrapper(new CartesianQueuedUnit6CreateCommand(req));
+ }
+ if (ComrelElementTypes.ParallelQueuedUnit_3036 == req.getElementType()) {
+ return getGEFWrapper(new ParallelQueuedUnit3CreateCommand(req));
+ }
+ if (ComrelElementTypes.SingleQueuedUnit_3054 == req.getElementType()) {
+ return getGEFWrapper(new SingleQueuedUnit4CreateCommand(req));
+ }
+ if (ComrelElementTypes.SequentialUnit_3069 == req.getElementType()) {
+ return getGEFWrapper(new SequentialUnit5CreateCommand(req));
+ }
+ if (ComrelElementTypes.ConditionalUnit_3072 == req.getElementType()) {
+ return getGEFWrapper(new ConditionalUnit6CreateCommand(req));
+ }
+ if (ComrelElementTypes.AtomicUnit_3077 == req.getElementType()) {
+ return getGEFWrapper(new AtomicUnit6CreateCommand(req));
+ }
+ return super.getCreateCommand(req);
+ }
+
+}
diff --git a/org.eclipse.emf.refactor.comrel.diagram/src/comrel/diagram/edit/policies/ConditionalUnitConditionalUnitThenCompartment3CanonicalEditPolicy.java b/org.eclipse.emf.refactor.comrel.diagram/src/comrel/diagram/edit/policies/ConditionalUnitConditionalUnitThenCompartment3CanonicalEditPolicy.java
new file mode 100644
index 0000000..a7ceb68
--- /dev/null
+++ b/org.eclipse.emf.refactor.comrel.diagram/src/comrel/diagram/edit/policies/ConditionalUnitConditionalUnitThenCompartment3CanonicalEditPolicy.java
@@ -0,0 +1,177 @@
+/*
+ *
+ */
+package comrel.diagram.edit.policies;
+
+import java.util.ArrayList;
+import java.util.Collection;
+import java.util.Iterator;
+import java.util.LinkedList;
+import java.util.List;
+
+import org.eclipse.core.runtime.IAdaptable;
+import org.eclipse.emf.ecore.EObject;
+import org.eclipse.emf.ecore.EStructuralFeature;
+import org.eclipse.gef.commands.Command;
+import org.eclipse.gmf.runtime.diagram.core.util.ViewUtil;
+import org.eclipse.gmf.runtime.diagram.ui.commands.DeferredLayoutCommand;
+import org.eclipse.gmf.runtime.diagram.ui.commands.ICommandProxy;
+import org.eclipse.gmf.runtime.diagram.ui.commands.SetViewMutabilityCommand;
+import org.eclipse.gmf.runtime.diagram.ui.editpolicies.CanonicalEditPolicy;
+import org.eclipse.gmf.runtime.diagram.ui.requests.CreateViewRequest;
+import org.eclipse.gmf.runtime.emf.core.util.EObjectAdapter;
+import org.eclipse.gmf.runtime.notation.Node;
+import org.eclipse.gmf.runtime.notation.View;
+
+import comrel.ComrelPackage;
+import comrel.diagram.edit.parts.AtomicUnit6EditPart;
+import comrel.diagram.edit.parts.CartesianQueuedUnit6EditPart;
+import comrel.diagram.edit.parts.ConditionalUnit6EditPart;
+import comrel.diagram.edit.parts.ParallelQueuedUnit3EditPart;
+import comrel.diagram.edit.parts.SequentialUnit5EditPart;
+import comrel.diagram.edit.parts.SingleQueuedUnit4EditPart;
+import comrel.diagram.part.ComrelDiagramUpdater;
+import comrel.diagram.part.ComrelNodeDescriptor;
+import comrel.diagram.part.ComrelVisualIDRegistry;
+
+/**
+ * @generated
+ */
+public class ConditionalUnitConditionalUnitThenCompartment3CanonicalEditPolicy
+ extends CanonicalEditPolicy {
+
+ /**
+ * @generated
+ */
+ protected EStructuralFeature getFeatureToSynchronize() {
+ return ComrelPackage.eINSTANCE.getConditionalUnit_Then();
+ }
+
+ /**
+ * @generated
+ */
+ @SuppressWarnings("rawtypes")
+ protected List getSemanticChildrenList() {
+ View viewObject = (View) getHost().getModel();
+ LinkedList<EObject> result = new LinkedList<EObject>();
+ List<ComrelNodeDescriptor> childDescriptors = ComrelDiagramUpdater
+ .getConditionalUnitConditionalUnitThenCompartment_7053SemanticChildren(viewObject);
+ for (ComrelNodeDescriptor d : childDescriptors) {
+ result.add(d.getModelElement());
+ }
+ return result;
+ }
+
+ /**
+ * @generated
+ */
+ protected boolean isOrphaned(Collection<EObject> semanticChildren,
+ final View view) {
+ return isMyDiagramElement(view)
+ && !semanticChildren.contains(view.getElement());
+ }
+
+ /**
+ * @generated
+ */
+ private boolean isMyDiagramElement(View view) {
+ int visualID = ComrelVisualIDRegistry.getVisualID(view);
+ switch (visualID) {
+ case CartesianQueuedUnit6EditPart.VISUAL_ID:
+ case ParallelQueuedUnit3EditPart.VISUAL_ID:
+ case SingleQueuedUnit4EditPart.VISUAL_ID:
+ case SequentialUnit5EditPart.VISUAL_ID:
+ case ConditionalUnit6EditPart.VISUAL_ID:
+ case AtomicUnit6EditPart.VISUAL_ID:
+ return true;
+ }
+ return false;
+ }
+
+ /**
+ * @generated
+ */
+ protected void refreshSemantic() {
+ if (resolveSemanticElement() == null) {
+ return;
+ }
+ LinkedList<IAdaptable> createdViews = new LinkedList<IAdaptable>();
+ List<ComrelNodeDescriptor> childDescriptors = ComrelDiagramUpdater
+ .getConditionalUnitConditionalUnitThenCompartment_7053SemanticChildren((View) getHost()
+ .getModel());
+ LinkedList<View> orphaned = new LinkedList<View>();
+ // we care to check only views we recognize as ours
+ LinkedList<View> knownViewChildren = new LinkedList<View>();
+ for (View v : getViewChildren()) {
+ if (isMyDiagramElement(v)) {
+ knownViewChildren.add(v);
+ }
+ }
+ // alternative to #cleanCanonicalSemanticChildren(getViewChildren(), semanticChildren)
+ //
+ // iteration happens over list of desired semantic elements, trying to find best matching View, while original CEP
+ // iterates views, potentially losing view (size/bounds) information - i.e. if there are few views to reference same EObject, only last one
+ // to answer isOrphaned == true will be used for the domain element representation, see #cleanCanonicalSemanticChildren()
+ for (Iterator<ComrelNodeDescriptor> descriptorsIterator = childDescriptors
+ .iterator(); descriptorsIterator.hasNext();) {
+ ComrelNodeDescriptor next = descriptorsIterator.next();
+ String hint = ComrelVisualIDRegistry.getType(next.getVisualID());
+ LinkedList<View> perfectMatch = new LinkedList<View>(); // both semanticElement and hint match that of NodeDescriptor
+ for (View childView : getViewChildren()) {
+ EObject semanticElement = childView.getElement();
+ if (next.getModelElement().equals(semanticElement)) {
+ if (hint.equals(childView.getType())) {
+ perfectMatch.add(childView);
+ // actually, can stop iteration over view children here, but
+ // may want to use not the first view but last one as a 'real' match (the way original CEP does
+ // with its trick with viewToSemanticMap inside #cleanCanonicalSemanticChildren
+ }
+ }
+ }
+ if (perfectMatch.size() > 0) {
+ descriptorsIterator.remove(); // precise match found no need to create anything for the NodeDescriptor
+ // use only one view (first or last?), keep rest as orphaned for further consideration
+ knownViewChildren.remove(perfectMatch.getFirst());
+ }
+ }
+ // those left in knownViewChildren are subject to removal - they are our diagram elements we didn't find match to,
+ // or those we have potential matches to, and thus need to be recreated, preserving size/location information.
+ orphaned.addAll(knownViewChildren);
+ //
+ ArrayList<CreateViewRequest.ViewDescriptor> viewDescriptors = new ArrayList<CreateViewRequest.ViewDescriptor>(
+ childDescriptors.size());
+ for (ComrelNodeDescriptor next : childDescriptors) {
+ String hint = ComrelVisualIDRegistry.getType(next.getVisualID());
+ IAdaptable elementAdapter = new CanonicalElementAdapter(
+ next.getModelElement(), hint);
+ CreateViewRequest.ViewDescriptor descriptor = new CreateViewRequest.ViewDescriptor(
+ elementAdapter, Node.class, hint, ViewUtil.APPEND, false,
+ host().getDiagramPreferencesHint());
+ viewDescriptors.add(descriptor);
+ }
+
+ boolean changed = deleteViews(orphaned.iterator());
+ //
+ CreateViewRequest request = getCreateViewRequest(viewDescriptors);
+ Command cmd = getCreateViewCommand(request);
+ if (cmd != null && cmd.canExecute()) {
+ SetViewMutabilityCommand.makeMutable(
+ new EObjectAdapter(host().getNotationView())).execute();
+ executeCommand(cmd);
+ @SuppressWarnings("unchecked")
+ List<IAdaptable> nl = (List<IAdaptable>) request.getNewObject();
+ createdViews.addAll(nl);
+ }
+ if (changed || createdViews.size() > 0) {
+ postProcessRefreshSemantic(createdViews);
+ }
+ if (createdViews.size() > 1) {
+ // perform a layout of the container
+ DeferredLayoutCommand layoutCmd = new DeferredLayoutCommand(host()
+ .getEditingDomain(), createdViews, host());
+ executeCommand(new ICommandProxy(layoutCmd));
+ }
+
+ makeViewsImmutable(createdViews);
+ }
+}
diff --git a/org.eclipse.emf.refactor.comrel.diagram/src/comrel/diagram/edit/policies/ConditionalUnitConditionalUnitThenCompartment3ItemSemanticEditPolicy.java b/org.eclipse.emf.refactor.comrel.diagram/src/comrel/diagram/edit/policies/ConditionalUnitConditionalUnitThenCompartment3ItemSemanticEditPolicy.java
new file mode 100644
index 0000000..36d65f3
--- /dev/null
+++ b/org.eclipse.emf.refactor.comrel.diagram/src/comrel/diagram/edit/policies/ConditionalUnitConditionalUnitThenCompartment3ItemSemanticEditPolicy.java
@@ -0,0 +1,55 @@
+/*
+ *
+ */
+package comrel.diagram.edit.policies;
+
+import org.eclipse.gef.commands.Command;
+import org.eclipse.gmf.runtime.emf.type.core.requests.CreateElementRequest;
+
+import comrel.diagram.edit.commands.AtomicUnit6CreateCommand;
+import comrel.diagram.edit.commands.CartesianQueuedUnit6CreateCommand;
+import comrel.diagram.edit.commands.ConditionalUnit6CreateCommand;
+import comrel.diagram.edit.commands.ParallelQueuedUnit3CreateCommand;
+import comrel.diagram.edit.commands.SequentialUnit5CreateCommand;
+import comrel.diagram.edit.commands.SingleQueuedUnit4CreateCommand;
+import comrel.diagram.providers.ComrelElementTypes;
+
+/**
+ * @generated
+ */
+public class ConditionalUnitConditionalUnitThenCompartment3ItemSemanticEditPolicy
+ extends ComrelBaseItemSemanticEditPolicy {
+
+ /**
+ * @generated
+ */
+ public ConditionalUnitConditionalUnitThenCompartment3ItemSemanticEditPolicy() {
+ super(ComrelElementTypes.ConditionalUnit_3066);
+ }
+
+ /**
+ * @generated
+ */
+ protected Command getCreateCommand(CreateElementRequest req) {
+ if (ComrelElementTypes.CartesianQueuedUnit_3033 == req.getElementType()) {
+ return getGEFWrapper(new CartesianQueuedUnit6CreateCommand(req));
+ }
+ if (ComrelElementTypes.ParallelQueuedUnit_3036 == req.getElementType()) {
+ return getGEFWrapper(new ParallelQueuedUnit3CreateCommand(req));
+ }
+ if (ComrelElementTypes.SingleQueuedUnit_3054 == req.getElementType()) {
+ return getGEFWrapper(new SingleQueuedUnit4CreateCommand(req));
+ }
+ if (ComrelElementTypes.SequentialUnit_3069 == req.getElementType()) {
+ return getGEFWrapper(new SequentialUnit5CreateCommand(req));
+ }
+ if (ComrelElementTypes.ConditionalUnit_3072 == req.getElementType()) {
+ return getGEFWrapper(new ConditionalUnit6CreateCommand(req));
+ }
+ if (ComrelElementTypes.AtomicUnit_3077 == req.getElementType()) {
+ return getGEFWrapper(new AtomicUnit6CreateCommand(req));
+ }
+ return super.getCreateCommand(req);
+ }
+
+}
diff --git a/org.eclipse.emf.refactor.comrel.diagram/src/comrel/diagram/edit/policies/ConditionalUnitConditionalUnitThenCompartment4CanonicalEditPolicy.java b/org.eclipse.emf.refactor.comrel.diagram/src/comrel/diagram/edit/policies/ConditionalUnitConditionalUnitThenCompartment4CanonicalEditPolicy.java
new file mode 100644
index 0000000..0edff4b
--- /dev/null
+++ b/org.eclipse.emf.refactor.comrel.diagram/src/comrel/diagram/edit/policies/ConditionalUnitConditionalUnitThenCompartment4CanonicalEditPolicy.java
@@ -0,0 +1,177 @@
+/*
+ *
+ */
+package comrel.diagram.edit.policies;
+
+import java.util.ArrayList;
+import java.util.Collection;
+import java.util.Iterator;
+import java.util.LinkedList;
+import java.util.List;
+
+import org.eclipse.core.runtime.IAdaptable;
+import org.eclipse.emf.ecore.EObject;
+import org.eclipse.emf.ecore.EStructuralFeature;
+import org.eclipse.gef.commands.Command;
+import org.eclipse.gmf.runtime.diagram.core.util.ViewUtil;
+import org.eclipse.gmf.runtime.diagram.ui.commands.DeferredLayoutCommand;
+import org.eclipse.gmf.runtime.diagram.ui.commands.ICommandProxy;
+import org.eclipse.gmf.runtime.diagram.ui.commands.SetViewMutabilityCommand;
+import org.eclipse.gmf.runtime.diagram.ui.editpolicies.CanonicalEditPolicy;
+import org.eclipse.gmf.runtime.diagram.ui.requests.CreateViewRequest;
+import org.eclipse.gmf.runtime.emf.core.util.EObjectAdapter;
+import org.eclipse.gmf.runtime.notation.Node;
+import org.eclipse.gmf.runtime.notation.View;
+
+import comrel.ComrelPackage;
+import comrel.diagram.edit.parts.AtomicUnit6EditPart;
+import comrel.diagram.edit.parts.CartesianQueuedUnit6EditPart;
+import comrel.diagram.edit.parts.ConditionalUnit6EditPart;
+import comrel.diagram.edit.parts.ParallelQueuedUnit3EditPart;
+import comrel.diagram.edit.parts.SequentialUnit5EditPart;
+import comrel.diagram.edit.parts.SingleQueuedUnit4EditPart;
+import comrel.diagram.part.ComrelDiagramUpdater;
+import comrel.diagram.part.ComrelNodeDescriptor;
+import comrel.diagram.part.ComrelVisualIDRegistry;
+
+/**
+ * @generated
+ */
+public class ConditionalUnitConditionalUnitThenCompartment4CanonicalEditPolicy
+ extends CanonicalEditPolicy {
+
+ /**
+ * @generated
+ */
+ protected EStructuralFeature getFeatureToSynchronize() {
+ return ComrelPackage.eINSTANCE.getConditionalUnit_Then();
+ }
+
+ /**
+ * @generated
+ */
+ @SuppressWarnings("rawtypes")
+ protected List getSemanticChildrenList() {
+ View viewObject = (View) getHost().getModel();
+ LinkedList<EObject> result = new LinkedList<EObject>();
+ List<ComrelNodeDescriptor> childDescriptors = ComrelDiagramUpdater
+ .getConditionalUnitConditionalUnitThenCompartment_7063SemanticChildren(viewObject);
+ for (ComrelNodeDescriptor d : childDescriptors) {
+ result.add(d.getModelElement());
+ }
+ return result;
+ }
+
+ /**
+ * @generated
+ */
+ protected boolean isOrphaned(Collection<EObject> semanticChildren,
+ final View view) {
+ return isMyDiagramElement(view)
+ && !semanticChildren.contains(view.getElement());
+ }
+
+ /**
+ * @generated
+ */
+ private boolean isMyDiagramElement(View view) {
+ int visualID = ComrelVisualIDRegistry.getVisualID(view);
+ switch (visualID) {
+ case CartesianQueuedUnit6EditPart.VISUAL_ID:
+ case ParallelQueuedUnit3EditPart.VISUAL_ID:
+ case SingleQueuedUnit4EditPart.VISUAL_ID:
+ case SequentialUnit5EditPart.VISUAL_ID:
+ case ConditionalUnit6EditPart.VISUAL_ID:
+ case AtomicUnit6EditPart.VISUAL_ID:
+ return true;
+ }
+ return false;
+ }
+
+ /**
+ * @generated
+ */
+ protected void refreshSemantic() {
+ if (resolveSemanticElement() == null) {
+ return;
+ }
+ LinkedList<IAdaptable> createdViews = new LinkedList<IAdaptable>();
+ List<ComrelNodeDescriptor> childDescriptors = ComrelDiagramUpdater
+ .getConditionalUnitConditionalUnitThenCompartment_7063SemanticChildren((View) getHost()
+ .getModel());
+ LinkedList<View> orphaned = new LinkedList<View>();
+ // we care to check only views we recognize as ours
+ LinkedList<View> knownViewChildren = new LinkedList<View>();
+ for (View v : getViewChildren()) {
+ if (isMyDiagramElement(v)) {
+ knownViewChildren.add(v);
+ }
+ }
+ // alternative to #cleanCanonicalSemanticChildren(getViewChildren(), semanticChildren)
+ //
+ // iteration happens over list of desired semantic elements, trying to find best matching View, while original CEP
+ // iterates views, potentially losing view (size/bounds) information - i.e. if there are few views to reference same EObject, only last one
+ // to answer isOrphaned == true will be used for the domain element representation, see #cleanCanonicalSemanticChildren()
+ for (Iterator<ComrelNodeDescriptor> descriptorsIterator = childDescriptors
+ .iterator(); descriptorsIterator.hasNext();) {
+ ComrelNodeDescriptor next = descriptorsIterator.next();
+ String hint = ComrelVisualIDRegistry.getType(next.getVisualID());
+ LinkedList<View> perfectMatch = new LinkedList<View>(); // both semanticElement and hint match that of NodeDescriptor
+ for (View childView : getViewChildren()) {
+ EObject semanticElement = childView.getElement();
+ if (next.getModelElement().equals(semanticElement)) {
+ if (hint.equals(childView.getType())) {
+ perfectMatch.add(childView);
+ // actually, can stop iteration over view children here, but
+ // may want to use not the first view but last one as a 'real' match (the way original CEP does
+ // with its trick with viewToSemanticMap inside #cleanCanonicalSemanticChildren
+ }
+ }
+ }
+ if (perfectMatch.size() > 0) {
+ descriptorsIterator.remove(); // precise match found no need to create anything for the NodeDescriptor
+ // use only one view (first or last?), keep rest as orphaned for further consideration
+ knownViewChildren.remove(perfectMatch.getFirst());
+ }
+ }
+ // those left in knownViewChildren are subject to removal - they are our diagram elements we didn't find match to,
+ // or those we have potential matches to, and thus need to be recreated, preserving size/location information.
+ orphaned.addAll(knownViewChildren);
+ //
+ ArrayList<CreateViewRequest.ViewDescriptor> viewDescriptors = new ArrayList<CreateViewRequest.ViewDescriptor>(
+ childDescriptors.size());
+ for (ComrelNodeDescriptor next : childDescriptors) {
+ String hint = ComrelVisualIDRegistry.getType(next.getVisualID());
+ IAdaptable elementAdapter = new CanonicalElementAdapter(
+ next.getModelElement(), hint);
+ CreateViewRequest.ViewDescriptor descriptor = new CreateViewRequest.ViewDescriptor(
+ elementAdapter, Node.class, hint, ViewUtil.APPEND, false,
+ host().getDiagramPreferencesHint());
+ viewDescriptors.add(descriptor);
+ }
+
+ boolean changed = deleteViews(orphaned.iterator());
+ //
+ CreateViewRequest request = getCreateViewRequest(viewDescriptors);
+ Command cmd = getCreateViewCommand(request);
+ if (cmd != null && cmd.canExecute()) {
+ SetViewMutabilityCommand.makeMutable(
+ new EObjectAdapter(host().getNotationView())).execute();
+ executeCommand(cmd);
+ @SuppressWarnings("unchecked")
+ List<IAdaptable> nl = (List<IAdaptable>) request.getNewObject();
+ createdViews.addAll(nl);
+ }
+ if (changed || createdViews.size() > 0) {
+ postProcessRefreshSemantic(createdViews);
+ }
+ if (createdViews.size() > 1) {
+ // perform a layout of the container
+ DeferredLayoutCommand layoutCmd = new DeferredLayoutCommand(host()
+ .getEditingDomain(), createdViews, host());
+ executeCommand(new ICommandProxy(layoutCmd));
+ }
+
+ makeViewsImmutable(createdViews);
+ }
+}
diff --git a/org.eclipse.emf.refactor.comrel.diagram/src/comrel/diagram/edit/policies/ConditionalUnitConditionalUnitThenCompartment4ItemSemanticEditPolicy.java b/org.eclipse.emf.refactor.comrel.diagram/src/comrel/diagram/edit/policies/ConditionalUnitConditionalUnitThenCompartment4ItemSemanticEditPolicy.java
new file mode 100644
index 0000000..11b29a5
--- /dev/null
+++ b/org.eclipse.emf.refactor.comrel.diagram/src/comrel/diagram/edit/policies/ConditionalUnitConditionalUnitThenCompartment4ItemSemanticEditPolicy.java
@@ -0,0 +1,55 @@
+/*
+ *
+ */
+package comrel.diagram.edit.policies;
+
+import org.eclipse.gef.commands.Command;
+import org.eclipse.gmf.runtime.emf.type.core.requests.CreateElementRequest;
+
+import comrel.diagram.edit.commands.AtomicUnit6CreateCommand;
+import comrel.diagram.edit.commands.CartesianQueuedUnit6CreateCommand;
+import comrel.diagram.edit.commands.ConditionalUnit6CreateCommand;
+import comrel.diagram.edit.commands.ParallelQueuedUnit3CreateCommand;
+import comrel.diagram.edit.commands.SequentialUnit5CreateCommand;
+import comrel.diagram.edit.commands.SingleQueuedUnit4CreateCommand;
+import comrel.diagram.providers.ComrelElementTypes;
+
+/**
+ * @generated
+ */
+public class ConditionalUnitConditionalUnitThenCompartment4ItemSemanticEditPolicy
+ extends ComrelBaseItemSemanticEditPolicy {
+
+ /**
+ * @generated
+ */
+ public ConditionalUnitConditionalUnitThenCompartment4ItemSemanticEditPolicy() {
+ super(ComrelElementTypes.ConditionalUnit_3071);
+ }
+
+ /**
+ * @generated
+ */
+ protected Command getCreateCommand(CreateElementRequest req) {
+ if (ComrelElementTypes.CartesianQueuedUnit_3033 == req.getElementType()) {
+ return getGEFWrapper(new CartesianQueuedUnit6CreateCommand(req));
+ }
+ if (ComrelElementTypes.ParallelQueuedUnit_3036 == req.getElementType()) {
+ return getGEFWrapper(new ParallelQueuedUnit3CreateCommand(req));
+ }
+ if (ComrelElementTypes.SingleQueuedUnit_3054 == req.getElementType()) {
+ return getGEFWrapper(new SingleQueuedUnit4CreateCommand(req));
+ }
+ if (ComrelElementTypes.SequentialUnit_3069 == req.getElementType()) {
+ return getGEFWrapper(new SequentialUnit5CreateCommand(req));
+ }
+ if (ComrelElementTypes.ConditionalUnit_3072 == req.getElementType()) {
+ return getGEFWrapper(new ConditionalUnit6CreateCommand(req));
+ }
+ if (ComrelElementTypes.AtomicUnit_3077 == req.getElementType()) {
+ return getGEFWrapper(new AtomicUnit6CreateCommand(req));
+ }
+ return super.getCreateCommand(req);
+ }
+
+}
diff --git a/org.eclipse.emf.refactor.comrel.diagram/src/comrel/diagram/edit/policies/ConditionalUnitConditionalUnitThenCompartment5CanonicalEditPolicy.java b/org.eclipse.emf.refactor.comrel.diagram/src/comrel/diagram/edit/policies/ConditionalUnitConditionalUnitThenCompartment5CanonicalEditPolicy.java
new file mode 100644
index 0000000..27254c1
--- /dev/null
+++ b/org.eclipse.emf.refactor.comrel.diagram/src/comrel/diagram/edit/policies/ConditionalUnitConditionalUnitThenCompartment5CanonicalEditPolicy.java
@@ -0,0 +1,177 @@
+/*
+ *
+ */
+package comrel.diagram.edit.policies;
+
+import java.util.ArrayList;
+import java.util.Collection;
+import java.util.Iterator;
+import java.util.LinkedList;
+import java.util.List;
+
+import org.eclipse.core.runtime.IAdaptable;
+import org.eclipse.emf.ecore.EObject;
+import org.eclipse.emf.ecore.EStructuralFeature;
+import org.eclipse.gef.commands.Command;
+import org.eclipse.gmf.runtime.diagram.core.util.ViewUtil;
+import org.eclipse.gmf.runtime.diagram.ui.commands.DeferredLayoutCommand;
+import org.eclipse.gmf.runtime.diagram.ui.commands.ICommandProxy;
+import org.eclipse.gmf.runtime.diagram.ui.commands.SetViewMutabilityCommand;
+import org.eclipse.gmf.runtime.diagram.ui.editpolicies.CanonicalEditPolicy;
+import org.eclipse.gmf.runtime.diagram.ui.requests.CreateViewRequest;
+import org.eclipse.gmf.runtime.emf.core.util.EObjectAdapter;
+import org.eclipse.gmf.runtime.notation.Node;
+import org.eclipse.gmf.runtime.notation.View;
+
+import comrel.ComrelPackage;
+import comrel.diagram.edit.parts.AtomicUnit6EditPart;
+import comrel.diagram.edit.parts.CartesianQueuedUnit6EditPart;
+import comrel.diagram.edit.parts.ConditionalUnit6EditPart;
+import comrel.diagram.edit.parts.ParallelQueuedUnit3EditPart;
+import comrel.diagram.edit.parts.SequentialUnit5EditPart;
+import comrel.diagram.edit.parts.SingleQueuedUnit4EditPart;
+import comrel.diagram.part.ComrelDiagramUpdater;
+import comrel.diagram.part.ComrelNodeDescriptor;
+import comrel.diagram.part.ComrelVisualIDRegistry;
+
+/**
+ * @generated
+ */
+public class ConditionalUnitConditionalUnitThenCompartment5CanonicalEditPolicy
+ extends CanonicalEditPolicy {
+
+ /**
+ * @generated
+ */
+ protected EStructuralFeature getFeatureToSynchronize() {
+ return ComrelPackage.eINSTANCE.getConditionalUnit_Then();
+ }
+
+ /**
+ * @generated
+ */
+ @SuppressWarnings("rawtypes")
+ protected List getSemanticChildrenList() {
+ View viewObject = (View) getHost().getModel();
+ LinkedList<EObject> result = new LinkedList<EObject>();
+ List<ComrelNodeDescriptor> childDescriptors = ComrelDiagramUpdater
+ .getConditionalUnitConditionalUnitThenCompartment_7067SemanticChildren(viewObject);
+ for (ComrelNodeDescriptor d : childDescriptors) {
+ result.add(d.getModelElement());
+ }
+ return result;
+ }
+
+ /**
+ * @generated
+ */
+ protected boolean isOrphaned(Collection<EObject> semanticChildren,
+ final View view) {
+ return isMyDiagramElement(view)
+ && !semanticChildren.contains(view.getElement());
+ }
+
+ /**
+ * @generated
+ */
+ private boolean isMyDiagramElement(View view) {
+ int visualID = ComrelVisualIDRegistry.getVisualID(view);
+ switch (visualID) {
+ case CartesianQueuedUnit6EditPart.VISUAL_ID:
+ case ParallelQueuedUnit3EditPart.VISUAL_ID:
+ case SingleQueuedUnit4EditPart.VISUAL_ID:
+ case SequentialUnit5EditPart.VISUAL_ID:
+ case ConditionalUnit6EditPart.VISUAL_ID:
+ case AtomicUnit6EditPart.VISUAL_ID:
+ return true;
+ }
+ return false;
+ }
+
+ /**
+ * @generated
+ */
+ protected void refreshSemantic() {
+ if (resolveSemanticElement() == null) {
+ return;
+ }
+ LinkedList<IAdaptable> createdViews = new LinkedList<IAdaptable>();
+ List<ComrelNodeDescriptor> childDescriptors = ComrelDiagramUpdater
+ .getConditionalUnitConditionalUnitThenCompartment_7067SemanticChildren((View) getHost()
+ .getModel());
+ LinkedList<View> orphaned = new LinkedList<View>();
+ // we care to check only views we recognize as ours
+ LinkedList<View> knownViewChildren = new LinkedList<View>();
+ for (View v : getViewChildren()) {
+ if (isMyDiagramElement(v)) {
+ knownViewChildren.add(v);
+ }
+ }
+ // alternative to #cleanCanonicalSemanticChildren(getViewChildren(), semanticChildren)
+ //
+ // iteration happens over list of desired semantic elements, trying to find best matching View, while original CEP
+ // iterates views, potentially losing view (size/bounds) information - i.e. if there are few views to reference same EObject, only last one
+ // to answer isOrphaned == true will be used for the domain element representation, see #cleanCanonicalSemanticChildren()
+ for (Iterator<ComrelNodeDescriptor> descriptorsIterator = childDescriptors
+ .iterator(); descriptorsIterator.hasNext();) {
+ ComrelNodeDescriptor next = descriptorsIterator.next();
+ String hint = ComrelVisualIDRegistry.getType(next.getVisualID());
+ LinkedList<View> perfectMatch = new LinkedList<View>(); // both semanticElement and hint match that of NodeDescriptor
+ for (View childView : getViewChildren()) {
+ EObject semanticElement = childView.getElement();
+ if (next.getModelElement().equals(semanticElement)) {
+ if (hint.equals(childView.getType())) {
+ perfectMatch.add(childView);
+ // actually, can stop iteration over view children here, but
+ // may want to use not the first view but last one as a 'real' match (the way original CEP does
+ // with its trick with viewToSemanticMap inside #cleanCanonicalSemanticChildren
+ }
+ }
+ }
+ if (perfectMatch.size() > 0) {
+ descriptorsIterator.remove(); // precise match found no need to create anything for the NodeDescriptor
+ // use only one view (first or last?), keep rest as orphaned for further consideration
+ knownViewChildren.remove(perfectMatch.getFirst());
+ }
+ }
+ // those left in knownViewChildren are subject to removal - they are our diagram elements we didn't find match to,
+ // or those we have potential matches to, and thus need to be recreated, preserving size/location information.
+ orphaned.addAll(knownViewChildren);
+ //
+ ArrayList<CreateViewRequest.ViewDescriptor> viewDescriptors = new ArrayList<CreateViewRequest.ViewDescriptor>(
+ childDescriptors.size());
+ for (ComrelNodeDescriptor next : childDescriptors) {
+ String hint = ComrelVisualIDRegistry.getType(next.getVisualID());
+ IAdaptable elementAdapter = new CanonicalElementAdapter(
+ next.getModelElement(), hint);
+ CreateViewRequest.ViewDescriptor descriptor = new CreateViewRequest.ViewDescriptor(
+ elementAdapter, Node.class, hint, ViewUtil.APPEND, false,
+ host().getDiagramPreferencesHint());
+ viewDescriptors.add(descriptor);
+ }
+
+ boolean changed = deleteViews(orphaned.iterator());
+ //
+ CreateViewRequest request = getCreateViewRequest(viewDescriptors);
+ Command cmd = getCreateViewCommand(request);
+ if (cmd != null && cmd.canExecute()) {
+ SetViewMutabilityCommand.makeMutable(
+ new EObjectAdapter(host().getNotationView())).execute();
+ executeCommand(cmd);
+ @SuppressWarnings("unchecked")
+ List<IAdaptable> nl = (List<IAdaptable>) request.getNewObject();
+ createdViews.addAll(nl);
+ }
+ if (changed || createdViews.size() > 0) {
+ postProcessRefreshSemantic(createdViews);
+ }
+ if (createdViews.size() > 1) {
+ // perform a layout of the container
+ DeferredLayoutCommand layoutCmd = new DeferredLayoutCommand(host()
+ .getEditingDomain(), createdViews, host());
+ executeCommand(new ICommandProxy(layoutCmd));
+ }
+
+ makeViewsImmutable(createdViews);
+ }
+}
diff --git a/org.eclipse.emf.refactor.comrel.diagram/src/comrel/diagram/edit/policies/ConditionalUnitConditionalUnitThenCompartment5ItemSemanticEditPolicy.java b/org.eclipse.emf.refactor.comrel.diagram/src/comrel/diagram/edit/policies/ConditionalUnitConditionalUnitThenCompartment5ItemSemanticEditPolicy.java
new file mode 100644
index 0000000..0ebda23
--- /dev/null
+++ b/org.eclipse.emf.refactor.comrel.diagram/src/comrel/diagram/edit/policies/ConditionalUnitConditionalUnitThenCompartment5ItemSemanticEditPolicy.java
@@ -0,0 +1,55 @@
+/*
+ *
+ */
+package comrel.diagram.edit.policies;
+
+import org.eclipse.gef.commands.Command;
+import org.eclipse.gmf.runtime.emf.type.core.requests.CreateElementRequest;
+
+import comrel.diagram.edit.commands.AtomicUnit6CreateCommand;
+import comrel.diagram.edit.commands.CartesianQueuedUnit6CreateCommand;
+import comrel.diagram.edit.commands.ConditionalUnit6CreateCommand;
+import comrel.diagram.edit.commands.ParallelQueuedUnit3CreateCommand;
+import comrel.diagram.edit.commands.SequentialUnit5CreateCommand;
+import comrel.diagram.edit.commands.SingleQueuedUnit4CreateCommand;
+import comrel.diagram.providers.ComrelElementTypes;
+
+/**
+ * @generated
+ */
+public class ConditionalUnitConditionalUnitThenCompartment5ItemSemanticEditPolicy
+ extends ComrelBaseItemSemanticEditPolicy {
+
+ /**
+ * @generated
+ */
+ public ConditionalUnitConditionalUnitThenCompartment5ItemSemanticEditPolicy() {
+ super(ComrelElementTypes.ConditionalUnit_3072);
+ }
+
+ /**
+ * @generated
+ */
+ protected Command getCreateCommand(CreateElementRequest req) {
+ if (ComrelElementTypes.CartesianQueuedUnit_3033 == req.getElementType()) {
+ return getGEFWrapper(new CartesianQueuedUnit6CreateCommand(req));
+ }
+ if (ComrelElementTypes.ParallelQueuedUnit_3036 == req.getElementType()) {
+ return getGEFWrapper(new ParallelQueuedUnit3CreateCommand(req));
+ }
+ if (ComrelElementTypes.SingleQueuedUnit_3054 == req.getElementType()) {
+ return getGEFWrapper(new SingleQueuedUnit4CreateCommand(req));
+ }
+ if (ComrelElementTypes.SequentialUnit_3069 == req.getElementType()) {
+ return getGEFWrapper(new SequentialUnit5CreateCommand(req));
+ }
+ if (ComrelElementTypes.ConditionalUnit_3072 == req.getElementType()) {
+ return getGEFWrapper(new ConditionalUnit6CreateCommand(req));
+ }
+ if (ComrelElementTypes.AtomicUnit_3077 == req.getElementType()) {
+ return getGEFWrapper(new AtomicUnit6CreateCommand(req));
+ }
+ return super.getCreateCommand(req);
+ }
+
+}
diff --git a/org.eclipse.emf.refactor.comrel.diagram/src/comrel/diagram/edit/policies/ConditionalUnitConditionalUnitThenCompartment6CanonicalEditPolicy.java b/org.eclipse.emf.refactor.comrel.diagram/src/comrel/diagram/edit/policies/ConditionalUnitConditionalUnitThenCompartment6CanonicalEditPolicy.java
new file mode 100644
index 0000000..25268f4
--- /dev/null
+++ b/org.eclipse.emf.refactor.comrel.diagram/src/comrel/diagram/edit/policies/ConditionalUnitConditionalUnitThenCompartment6CanonicalEditPolicy.java
@@ -0,0 +1,177 @@
+/*
+ *
+ */
+package comrel.diagram.edit.policies;
+
+import java.util.ArrayList;
+import java.util.Collection;
+import java.util.Iterator;
+import java.util.LinkedList;
+import java.util.List;
+
+import org.eclipse.core.runtime.IAdaptable;
+import org.eclipse.emf.ecore.EObject;
+import org.eclipse.emf.ecore.EStructuralFeature;
+import org.eclipse.gef.commands.Command;
+import org.eclipse.gmf.runtime.diagram.core.util.ViewUtil;
+import org.eclipse.gmf.runtime.diagram.ui.commands.DeferredLayoutCommand;
+import org.eclipse.gmf.runtime.diagram.ui.commands.ICommandProxy;
+import org.eclipse.gmf.runtime.diagram.ui.commands.SetViewMutabilityCommand;
+import org.eclipse.gmf.runtime.diagram.ui.editpolicies.CanonicalEditPolicy;
+import org.eclipse.gmf.runtime.diagram.ui.requests.CreateViewRequest;
+import org.eclipse.gmf.runtime.emf.core.util.EObjectAdapter;
+import org.eclipse.gmf.runtime.notation.Node;
+import org.eclipse.gmf.runtime.notation.View;
+
+import comrel.ComrelPackage;
+import comrel.diagram.edit.parts.AtomicUnit6EditPart;
+import comrel.diagram.edit.parts.CartesianQueuedUnit6EditPart;
+import comrel.diagram.edit.parts.ConditionalUnit6EditPart;
+import comrel.diagram.edit.parts.ParallelQueuedUnit3EditPart;
+import comrel.diagram.edit.parts.SequentialUnit5EditPart;
+import comrel.diagram.edit.parts.SingleQueuedUnit4EditPart;
+import comrel.diagram.part.ComrelDiagramUpdater;
+import comrel.diagram.part.ComrelNodeDescriptor;
+import comrel.diagram.part.ComrelVisualIDRegistry;
+
+/**
+ * @generated
+ */
+public class ConditionalUnitConditionalUnitThenCompartment6CanonicalEditPolicy
+ extends CanonicalEditPolicy {
+
+ /**
+ * @generated
+ */
+ protected EStructuralFeature getFeatureToSynchronize() {
+ return ComrelPackage.eINSTANCE.getConditionalUnit_Then();
+ }
+
+ /**
+ * @generated
+ */
+ @SuppressWarnings("rawtypes")
+ protected List getSemanticChildrenList() {
+ View viewObject = (View) getHost().getModel();
+ LinkedList<EObject> result = new LinkedList<EObject>();
+ List<ComrelNodeDescriptor> childDescriptors = ComrelDiagramUpdater
+ .getConditionalUnitConditionalUnitThenCompartment_7073SemanticChildren(viewObject);
+ for (ComrelNodeDescriptor d : childDescriptors) {
+ result.add(d.getModelElement());
+ }
+ return result;
+ }
+
+ /**
+ * @generated
+ */
+ protected boolean isOrphaned(Collection<EObject> semanticChildren,
+ final View view) {
+ return isMyDiagramElement(view)
+ && !semanticChildren.contains(view.getElement());
+ }
+
+ /**
+ * @generated
+ */
+ private boolean isMyDiagramElement(View view) {
+ int visualID = ComrelVisualIDRegistry.getVisualID(view);
+ switch (visualID) {
+ case CartesianQueuedUnit6EditPart.VISUAL_ID:
+ case ParallelQueuedUnit3EditPart.VISUAL_ID:
+ case SingleQueuedUnit4EditPart.VISUAL_ID:
+ case SequentialUnit5EditPart.VISUAL_ID:
+ case ConditionalUnit6EditPart.VISUAL_ID:
+ case AtomicUnit6EditPart.VISUAL_ID:
+ return true;
+ }
+ return false;
+ }
+
+ /**
+ * @generated
+ */
+ protected void refreshSemantic() {
+ if (resolveSemanticElement() == null) {
+ return;
+ }
+ LinkedList<IAdaptable> createdViews = new LinkedList<IAdaptable>();
+ List<ComrelNodeDescriptor> childDescriptors = ComrelDiagramUpdater
+ .getConditionalUnitConditionalUnitThenCompartment_7073SemanticChildren((View) getHost()
+ .getModel());
+ LinkedList<View> orphaned = new LinkedList<View>();
+ // we care to check only views we recognize as ours
+ LinkedList<View> knownViewChildren = new LinkedList<View>();
+ for (View v : getViewChildren()) {
+ if (isMyDiagramElement(v)) {
+ knownViewChildren.add(v);
+ }
+ }
+ // alternative to #cleanCanonicalSemanticChildren(getViewChildren(), semanticChildren)
+ //
+ // iteration happens over list of desired semantic elements, trying to find best matching View, while original CEP
+ // iterates views, potentially losing view (size/bounds) information - i.e. if there are few views to reference same EObject, only last one
+ // to answer isOrphaned == true will be used for the domain element representation, see #cleanCanonicalSemanticChildren()
+ for (Iterator<ComrelNodeDescriptor> descriptorsIterator = childDescriptors
+ .iterator(); descriptorsIterator.hasNext();) {
+ ComrelNodeDescriptor next = descriptorsIterator.next();
+ String hint = ComrelVisualIDRegistry.getType(next.getVisualID());
+ LinkedList<View> perfectMatch = new LinkedList<View>(); // both semanticElement and hint match that of NodeDescriptor
+ for (View childView : getViewChildren()) {
+ EObject semanticElement = childView.getElement();
+ if (next.getModelElement().equals(semanticElement)) {
+ if (hint.equals(childView.getType())) {
+ perfectMatch.add(childView);
+ // actually, can stop iteration over view children here, but
+ // may want to use not the first view but last one as a 'real' match (the way original CEP does
+ // with its trick with viewToSemanticMap inside #cleanCanonicalSemanticChildren
+ }
+ }
+ }
+ if (perfectMatch.size() > 0) {
+ descriptorsIterator.remove(); // precise match found no need to create anything for the NodeDescriptor
+ // use only one view (first or last?), keep rest as orphaned for further consideration
+ knownViewChildren.remove(perfectMatch.getFirst());
+ }
+ }
+ // those left in knownViewChildren are subject to removal - they are our diagram elements we didn't find match to,
+ // or those we have potential matches to, and thus need to be recreated, preserving size/location information.
+ orphaned.addAll(knownViewChildren);
+ //
+ ArrayList<CreateViewRequest.ViewDescriptor> viewDescriptors = new ArrayList<CreateViewRequest.ViewDescriptor>(
+ childDescriptors.size());
+ for (ComrelNodeDescriptor next : childDescriptors) {
+ String hint = ComrelVisualIDRegistry.getType(next.getVisualID());
+ IAdaptable elementAdapter = new CanonicalElementAdapter(
+ next.getModelElement(), hint);
+ CreateViewRequest.ViewDescriptor descriptor = new CreateViewRequest.ViewDescriptor(
+ elementAdapter, Node.class, hint, ViewUtil.APPEND, false,
+ host().getDiagramPreferencesHint());
+ viewDescriptors.add(descriptor);
+ }
+
+ boolean changed = deleteViews(orphaned.iterator());
+ //
+ CreateViewRequest request = getCreateViewRequest(viewDescriptors);
+ Command cmd = getCreateViewCommand(request);
+ if (cmd != null && cmd.canExecute()) {
+ SetViewMutabilityCommand.makeMutable(
+ new EObjectAdapter(host().getNotationView())).execute();
+ executeCommand(cmd);
+ @SuppressWarnings("unchecked")
+ List<IAdaptable> nl = (List<IAdaptable>) request.getNewObject();
+ createdViews.addAll(nl);
+ }
+ if (changed || createdViews.size() > 0) {
+ postProcessRefreshSemantic(createdViews);
+ }
+ if (createdViews.size() > 1) {
+ // perform a layout of the container
+ DeferredLayoutCommand layoutCmd = new DeferredLayoutCommand(host()
+ .getEditingDomain(), createdViews, host());
+ executeCommand(new ICommandProxy(layoutCmd));
+ }
+
+ makeViewsImmutable(createdViews);
+ }
+}
diff --git a/org.eclipse.emf.refactor.comrel.diagram/src/comrel/diagram/edit/policies/ConditionalUnitConditionalUnitThenCompartment6ItemSemanticEditPolicy.java b/org.eclipse.emf.refactor.comrel.diagram/src/comrel/diagram/edit/policies/ConditionalUnitConditionalUnitThenCompartment6ItemSemanticEditPolicy.java
new file mode 100644
index 0000000..ba973c8
--- /dev/null
+++ b/org.eclipse.emf.refactor.comrel.diagram/src/comrel/diagram/edit/policies/ConditionalUnitConditionalUnitThenCompartment6ItemSemanticEditPolicy.java
@@ -0,0 +1,55 @@
+/*
+ *
+ */
+package comrel.diagram.edit.policies;
+
+import org.eclipse.gef.commands.Command;
+import org.eclipse.gmf.runtime.emf.type.core.requests.CreateElementRequest;
+
+import comrel.diagram.edit.commands.AtomicUnit6CreateCommand;
+import comrel.diagram.edit.commands.CartesianQueuedUnit6CreateCommand;
+import comrel.diagram.edit.commands.ConditionalUnit6CreateCommand;
+import comrel.diagram.edit.commands.ParallelQueuedUnit3CreateCommand;
+import comrel.diagram.edit.commands.SequentialUnit5CreateCommand;
+import comrel.diagram.edit.commands.SingleQueuedUnit4CreateCommand;
+import comrel.diagram.providers.ComrelElementTypes;
+
+/**
+ * @generated
+ */
+public class ConditionalUnitConditionalUnitThenCompartment6ItemSemanticEditPolicy
+ extends ComrelBaseItemSemanticEditPolicy {
+
+ /**
+ * @generated
+ */
+ public ConditionalUnitConditionalUnitThenCompartment6ItemSemanticEditPolicy() {
+ super(ComrelElementTypes.ConditionalUnit_3075);
+ }
+
+ /**
+ * @generated
+ */
+ protected Command getCreateCommand(CreateElementRequest req) {
+ if (ComrelElementTypes.CartesianQueuedUnit_3033 == req.getElementType()) {
+ return getGEFWrapper(new CartesianQueuedUnit6CreateCommand(req));
+ }
+ if (ComrelElementTypes.ParallelQueuedUnit_3036 == req.getElementType()) {
+ return getGEFWrapper(new ParallelQueuedUnit3CreateCommand(req));
+ }
+ if (ComrelElementTypes.SingleQueuedUnit_3054 == req.getElementType()) {
+ return getGEFWrapper(new SingleQueuedUnit4CreateCommand(req));
+ }
+ if (ComrelElementTypes.SequentialUnit_3069 == req.getElementType()) {
+ return getGEFWrapper(new SequentialUnit5CreateCommand(req));
+ }
+ if (ComrelElementTypes.ConditionalUnit_3072 == req.getElementType()) {
+ return getGEFWrapper(new ConditionalUnit6CreateCommand(req));
+ }
+ if (ComrelElementTypes.AtomicUnit_3077 == req.getElementType()) {
+ return getGEFWrapper(new AtomicUnit6CreateCommand(req));
+ }
+ return super.getCreateCommand(req);
+ }
+
+}
diff --git a/org.eclipse.emf.refactor.comrel.diagram/src/comrel/diagram/edit/policies/ConditionalUnitConditionalUnitThenCompartment7CanonicalEditPolicy.java b/org.eclipse.emf.refactor.comrel.diagram/src/comrel/diagram/edit/policies/ConditionalUnitConditionalUnitThenCompartment7CanonicalEditPolicy.java
new file mode 100644
index 0000000..47e768c
--- /dev/null
+++ b/org.eclipse.emf.refactor.comrel.diagram/src/comrel/diagram/edit/policies/ConditionalUnitConditionalUnitThenCompartment7CanonicalEditPolicy.java
@@ -0,0 +1,177 @@
+/*
+ *
+ */
+package comrel.diagram.edit.policies;
+
+import java.util.ArrayList;
+import java.util.Collection;
+import java.util.Iterator;
+import java.util.LinkedList;
+import java.util.List;
+
+import org.eclipse.core.runtime.IAdaptable;
+import org.eclipse.emf.ecore.EObject;
+import org.eclipse.emf.ecore.EStructuralFeature;
+import org.eclipse.gef.commands.Command;
+import org.eclipse.gmf.runtime.diagram.core.util.ViewUtil;
+import org.eclipse.gmf.runtime.diagram.ui.commands.DeferredLayoutCommand;
+import org.eclipse.gmf.runtime.diagram.ui.commands.ICommandProxy;
+import org.eclipse.gmf.runtime.diagram.ui.commands.SetViewMutabilityCommand;
+import org.eclipse.gmf.runtime.diagram.ui.editpolicies.CanonicalEditPolicy;
+import org.eclipse.gmf.runtime.diagram.ui.requests.CreateViewRequest;
+import org.eclipse.gmf.runtime.emf.core.util.EObjectAdapter;
+import org.eclipse.gmf.runtime.notation.Node;
+import org.eclipse.gmf.runtime.notation.View;
+
+import comrel.ComrelPackage;
+import comrel.diagram.edit.parts.AtomicUnit6EditPart;
+import comrel.diagram.edit.parts.CartesianQueuedUnit6EditPart;
+import comrel.diagram.edit.parts.ConditionalUnit6EditPart;
+import comrel.diagram.edit.parts.ParallelQueuedUnit3EditPart;
+import comrel.diagram.edit.parts.SequentialUnit5EditPart;
+import comrel.diagram.edit.parts.SingleQueuedUnit4EditPart;
+import comrel.diagram.part.ComrelDiagramUpdater;
+import comrel.diagram.part.ComrelNodeDescriptor;
+import comrel.diagram.part.ComrelVisualIDRegistry;
+
+/**
+ * @generated
+ */
+public class ConditionalUnitConditionalUnitThenCompartment7CanonicalEditPolicy
+ extends CanonicalEditPolicy {
+
+ /**
+ * @generated
+ */
+ protected EStructuralFeature getFeatureToSynchronize() {
+ return ComrelPackage.eINSTANCE.getConditionalUnit_Then();
+ }
+
+ /**
+ * @generated
+ */
+ @SuppressWarnings("rawtypes")
+ protected List getSemanticChildrenList() {
+ View viewObject = (View) getHost().getModel();
+ LinkedList<EObject> result = new LinkedList<EObject>();
+ List<ComrelNodeDescriptor> childDescriptors = ComrelDiagramUpdater
+ .getConditionalUnitConditionalUnitThenCompartment_7083SemanticChildren(viewObject);
+ for (ComrelNodeDescriptor d : childDescriptors) {
+ result.add(d.getModelElement());
+ }
+ return result;
+ }
+
+ /**
+ * @generated
+ */
+ protected boolean isOrphaned(Collection<EObject> semanticChildren,
+ final View view) {
+ return isMyDiagramElement(view)
+ && !semanticChildren.contains(view.getElement());
+ }
+
+ /**
+ * @generated
+ */
+ private boolean isMyDiagramElement(View view) {
+ int visualID = ComrelVisualIDRegistry.getVisualID(view);
+ switch (visualID) {
+ case CartesianQueuedUnit6EditPart.VISUAL_ID:
+ case ParallelQueuedUnit3EditPart.VISUAL_ID:
+ case SingleQueuedUnit4EditPart.VISUAL_ID:
+ case SequentialUnit5EditPart.VISUAL_ID:
+ case ConditionalUnit6EditPart.VISUAL_ID:
+ case AtomicUnit6EditPart.VISUAL_ID:
+ return true;
+ }
+ return false;
+ }
+
+ /**
+ * @generated
+ */
+ protected void refreshSemantic() {
+ if (resolveSemanticElement() == null) {
+ return;
+ }
+ LinkedList<IAdaptable> createdViews = new LinkedList<IAdaptable>();
+ List<ComrelNodeDescriptor> childDescriptors = ComrelDiagramUpdater
+ .getConditionalUnitConditionalUnitThenCompartment_7083SemanticChildren((View) getHost()
+ .getModel());
+ LinkedList<View> orphaned = new LinkedList<View>();
+ // we care to check only views we recognize as ours
+ LinkedList<View> knownViewChildren = new LinkedList<View>();
+ for (View v : getViewChildren()) {
+ if (isMyDiagramElement(v)) {
+ knownViewChildren.add(v);
+ }
+ }
+ // alternative to #cleanCanonicalSemanticChildren(getViewChildren(), semanticChildren)
+ //
+ // iteration happens over list of desired semantic elements, trying to find best matching View, while original CEP
+ // iterates views, potentially losing view (size/bounds) information - i.e. if there are few views to reference same EObject, only last one
+ // to answer isOrphaned == true will be used for the domain element representation, see #cleanCanonicalSemanticChildren()
+ for (Iterator<ComrelNodeDescriptor> descriptorsIterator = childDescriptors
+ .iterator(); descriptorsIterator.hasNext();) {
+ ComrelNodeDescriptor next = descriptorsIterator.next();
+ String hint = ComrelVisualIDRegistry.getType(next.getVisualID());
+ LinkedList<View> perfectMatch = new LinkedList<View>(); // both semanticElement and hint match that of NodeDescriptor
+ for (View childView : getViewChildren()) {
+ EObject semanticElement = childView.getElement();
+ if (next.getModelElement().equals(semanticElement)) {
+ if (hint.equals(childView.getType())) {
+ perfectMatch.add(childView);
+ // actually, can stop iteration over view children here, but
+ // may want to use not the first view but last one as a 'real' match (the way original CEP does
+ // with its trick with viewToSemanticMap inside #cleanCanonicalSemanticChildren
+ }
+ }
+ }
+ if (perfectMatch.size() > 0) {
+ descriptorsIterator.remove(); // precise match found no need to create anything for the NodeDescriptor
+ // use only one view (first or last?), keep rest as orphaned for further consideration
+ knownViewChildren.remove(perfectMatch.getFirst());
+ }
+ }
+ // those left in knownViewChildren are subject to removal - they are our diagram elements we didn't find match to,
+ // or those we have potential matches to, and thus need to be recreated, preserving size/location information.
+ orphaned.addAll(knownViewChildren);
+ //
+ ArrayList<CreateViewRequest.ViewDescriptor> viewDescriptors = new ArrayList<CreateViewRequest.ViewDescriptor>(
+ childDescriptors.size());
+ for (ComrelNodeDescriptor next : childDescriptors) {
+ String hint = ComrelVisualIDRegistry.getType(next.getVisualID());
+ IAdaptable elementAdapter = new CanonicalElementAdapter(
+ next.getModelElement(), hint);
+ CreateViewRequest.ViewDescriptor descriptor = new CreateViewRequest.ViewDescriptor(
+ elementAdapter, Node.class, hint, ViewUtil.APPEND, false,
+ host().getDiagramPreferencesHint());
+ viewDescriptors.add(descriptor);
+ }
+
+ boolean changed = deleteViews(orphaned.iterator());
+ //
+ CreateViewRequest request = getCreateViewRequest(viewDescriptors);
+ Command cmd = getCreateViewCommand(request);
+ if (cmd != null && cmd.canExecute()) {
+ SetViewMutabilityCommand.makeMutable(
+ new EObjectAdapter(host().getNotationView())).execute();
+ executeCommand(cmd);
+ @SuppressWarnings("unchecked")
+ List<IAdaptable> nl = (List<IAdaptable>) request.getNewObject();
+ createdViews.addAll(nl);
+ }
+ if (changed || createdViews.size() > 0) {
+ postProcessRefreshSemantic(createdViews);
+ }
+ if (createdViews.size() > 1) {
+ // perform a layout of the container
+ DeferredLayoutCommand layoutCmd = new DeferredLayoutCommand(host()
+ .getEditingDomain(), createdViews, host());
+ executeCommand(new ICommandProxy(layoutCmd));
+ }
+
+ makeViewsImmutable(createdViews);
+ }
+}
diff --git a/org.eclipse.emf.refactor.comrel.diagram/src/comrel/diagram/edit/policies/ConditionalUnitConditionalUnitThenCompartment7ItemSemanticEditPolicy.java b/org.eclipse.emf.refactor.comrel.diagram/src/comrel/diagram/edit/policies/ConditionalUnitConditionalUnitThenCompartment7ItemSemanticEditPolicy.java
new file mode 100644
index 0000000..aafa917
--- /dev/null
+++ b/org.eclipse.emf.refactor.comrel.diagram/src/comrel/diagram/edit/policies/ConditionalUnitConditionalUnitThenCompartment7ItemSemanticEditPolicy.java
@@ -0,0 +1,55 @@
+/*
+ *
+ */
+package comrel.diagram.edit.policies;
+
+import org.eclipse.gef.commands.Command;
+import org.eclipse.gmf.runtime.emf.type.core.requests.CreateElementRequest;
+
+import comrel.diagram.edit.commands.AtomicUnit6CreateCommand;
+import comrel.diagram.edit.commands.CartesianQueuedUnit6CreateCommand;
+import comrel.diagram.edit.commands.ConditionalUnit6CreateCommand;
+import comrel.diagram.edit.commands.ParallelQueuedUnit3CreateCommand;
+import comrel.diagram.edit.commands.SequentialUnit5CreateCommand;
+import comrel.diagram.edit.commands.SingleQueuedUnit4CreateCommand;
+import comrel.diagram.providers.ComrelElementTypes;
+
+/**
+ * @generated
+ */
+public class ConditionalUnitConditionalUnitThenCompartment7ItemSemanticEditPolicy
+ extends ComrelBaseItemSemanticEditPolicy {
+
+ /**
+ * @generated
+ */
+ public ConditionalUnitConditionalUnitThenCompartment7ItemSemanticEditPolicy() {
+ super(ComrelElementTypes.ConditionalUnit_2006);
+ }
+
+ /**
+ * @generated
+ */
+ protected Command getCreateCommand(CreateElementRequest req) {
+ if (ComrelElementTypes.CartesianQueuedUnit_3033 == req.getElementType()) {
+ return getGEFWrapper(new CartesianQueuedUnit6CreateCommand(req));
+ }
+ if (ComrelElementTypes.ParallelQueuedUnit_3036 == req.getElementType()) {
+ return getGEFWrapper(new ParallelQueuedUnit3CreateCommand(req));
+ }
+ if (ComrelElementTypes.SingleQueuedUnit_3054 == req.getElementType()) {
+ return getGEFWrapper(new SingleQueuedUnit4CreateCommand(req));
+ }
+ if (ComrelElementTypes.SequentialUnit_3069 == req.getElementType()) {
+ return getGEFWrapper(new SequentialUnit5CreateCommand(req));
+ }
+ if (ComrelElementTypes.ConditionalUnit_3072 == req.getElementType()) {
+ return getGEFWrapper(new ConditionalUnit6CreateCommand(req));
+ }
+ if (ComrelElementTypes.AtomicUnit_3077 == req.getElementType()) {
+ return getGEFWrapper(new AtomicUnit6CreateCommand(req));
+ }
+ return super.getCreateCommand(req);
+ }
+
+}
diff --git a/org.eclipse.emf.refactor.comrel.diagram/src/comrel/diagram/edit/policies/ConditionalUnitConditionalUnitThenCompartmentCanonicalEditPolicy.java b/org.eclipse.emf.refactor.comrel.diagram/src/comrel/diagram/edit/policies/ConditionalUnitConditionalUnitThenCompartmentCanonicalEditPolicy.java
new file mode 100644
index 0000000..4de5f03
--- /dev/null
+++ b/org.eclipse.emf.refactor.comrel.diagram/src/comrel/diagram/edit/policies/ConditionalUnitConditionalUnitThenCompartmentCanonicalEditPolicy.java
@@ -0,0 +1,177 @@
+/*
+ *
+ */
+package comrel.diagram.edit.policies;
+
+import java.util.ArrayList;
+import java.util.Collection;
+import java.util.Iterator;
+import java.util.LinkedList;
+import java.util.List;
+
+import org.eclipse.core.runtime.IAdaptable;
+import org.eclipse.emf.ecore.EObject;
+import org.eclipse.emf.ecore.EStructuralFeature;
+import org.eclipse.gef.commands.Command;
+import org.eclipse.gmf.runtime.diagram.core.util.ViewUtil;
+import org.eclipse.gmf.runtime.diagram.ui.commands.DeferredLayoutCommand;
+import org.eclipse.gmf.runtime.diagram.ui.commands.ICommandProxy;
+import org.eclipse.gmf.runtime.diagram.ui.commands.SetViewMutabilityCommand;
+import org.eclipse.gmf.runtime.diagram.ui.editpolicies.CanonicalEditPolicy;
+import org.eclipse.gmf.runtime.diagram.ui.requests.CreateViewRequest;
+import org.eclipse.gmf.runtime.emf.core.util.EObjectAdapter;
+import org.eclipse.gmf.runtime.notation.Node;
+import org.eclipse.gmf.runtime.notation.View;
+
+import comrel.ComrelPackage;
+import comrel.diagram.edit.parts.AtomicUnit6EditPart;
+import comrel.diagram.edit.parts.CartesianQueuedUnit6EditPart;
+import comrel.diagram.edit.parts.ConditionalUnit6EditPart;
+import comrel.diagram.edit.parts.ParallelQueuedUnit3EditPart;
+import comrel.diagram.edit.parts.SequentialUnit5EditPart;
+import comrel.diagram.edit.parts.SingleQueuedUnit4EditPart;
+import comrel.diagram.part.ComrelDiagramUpdater;
+import comrel.diagram.part.ComrelNodeDescriptor;
+import comrel.diagram.part.ComrelVisualIDRegistry;
+
+/**
+ * @generated
+ */
+public class ConditionalUnitConditionalUnitThenCompartmentCanonicalEditPolicy
+ extends CanonicalEditPolicy {
+
+ /**
+ * @generated
+ */
+ protected EStructuralFeature getFeatureToSynchronize() {
+ return ComrelPackage.eINSTANCE.getConditionalUnit_Then();
+ }
+
+ /**
+ * @generated
+ */
+ @SuppressWarnings("rawtypes")
+ protected List getSemanticChildrenList() {
+ View viewObject = (View) getHost().getModel();
+ LinkedList<EObject> result = new LinkedList<EObject>();
+ List<ComrelNodeDescriptor> childDescriptors = ComrelDiagramUpdater
+ .getConditionalUnitConditionalUnitThenCompartment_7019SemanticChildren(viewObject);
+ for (ComrelNodeDescriptor d : childDescriptors) {
+ result.add(d.getModelElement());
+ }
+ return result;
+ }
+
+ /**
+ * @generated
+ */
+ protected boolean isOrphaned(Collection<EObject> semanticChildren,
+ final View view) {
+ return isMyDiagramElement(view)
+ && !semanticChildren.contains(view.getElement());
+ }
+
+ /**
+ * @generated
+ */
+ private boolean isMyDiagramElement(View view) {
+ int visualID = ComrelVisualIDRegistry.getVisualID(view);
+ switch (visualID) {
+ case CartesianQueuedUnit6EditPart.VISUAL_ID:
+ case ParallelQueuedUnit3EditPart.VISUAL_ID:
+ case SingleQueuedUnit4EditPart.VISUAL_ID:
+ case SequentialUnit5EditPart.VISUAL_ID:
+ case ConditionalUnit6EditPart.VISUAL_ID:
+ case AtomicUnit6EditPart.VISUAL_ID:
+ return true;
+ }
+ return false;
+ }
+
+ /**
+ * @generated
+ */
+ protected void refreshSemantic() {
+ if (resolveSemanticElement() == null) {
+ return;
+ }
+ LinkedList<IAdaptable> createdViews = new LinkedList<IAdaptable>();
+ List<ComrelNodeDescriptor> childDescriptors = ComrelDiagramUpdater
+ .getConditionalUnitConditionalUnitThenCompartment_7019SemanticChildren((View) getHost()
+ .getModel());
+ LinkedList<View> orphaned = new LinkedList<View>();
+ // we care to check only views we recognize as ours
+ LinkedList<View> knownViewChildren = new LinkedList<View>();
+ for (View v : getViewChildren()) {
+ if (isMyDiagramElement(v)) {
+ knownViewChildren.add(v);
+ }
+ }
+ // alternative to #cleanCanonicalSemanticChildren(getViewChildren(), semanticChildren)
+ //
+ // iteration happens over list of desired semantic elements, trying to find best matching View, while original CEP
+ // iterates views, potentially losing view (size/bounds) information - i.e. if there are few views to reference same EObject, only last one
+ // to answer isOrphaned == true will be used for the domain element representation, see #cleanCanonicalSemanticChildren()
+ for (Iterator<ComrelNodeDescriptor> descriptorsIterator = childDescriptors
+ .iterator(); descriptorsIterator.hasNext();) {
+ ComrelNodeDescriptor next = descriptorsIterator.next();
+ String hint = ComrelVisualIDRegistry.getType(next.getVisualID());
+ LinkedList<View> perfectMatch = new LinkedList<View>(); // both semanticElement and hint match that of NodeDescriptor
+ for (View childView : getViewChildren()) {
+ EObject semanticElement = childView.getElement();
+ if (next.getModelElement().equals(semanticElement)) {
+ if (hint.equals(childView.getType())) {
+ perfectMatch.add(childView);
+ // actually, can stop iteration over view children here, but
+ // may want to use not the first view but last one as a 'real' match (the way original CEP does
+ // with its trick with viewToSemanticMap inside #cleanCanonicalSemanticChildren
+ }
+ }
+ }
+ if (perfectMatch.size() > 0) {
+ descriptorsIterator.remove(); // precise match found no need to create anything for the NodeDescriptor
+ // use only one view (first or last?), keep rest as orphaned for further consideration
+ knownViewChildren.remove(perfectMatch.getFirst());
+ }
+ }
+ // those left in knownViewChildren are subject to removal - they are our diagram elements we didn't find match to,
+ // or those we have potential matches to, and thus need to be recreated, preserving size/location information.
+ orphaned.addAll(knownViewChildren);
+ //
+ ArrayList<CreateViewRequest.ViewDescriptor> viewDescriptors = new ArrayList<CreateViewRequest.ViewDescriptor>(
+ childDescriptors.size());
+ for (ComrelNodeDescriptor next : childDescriptors) {
+ String hint = ComrelVisualIDRegistry.getType(next.getVisualID());
+ IAdaptable elementAdapter = new CanonicalElementAdapter(
+ next.getModelElement(), hint);
+ CreateViewRequest.ViewDescriptor descriptor = new CreateViewRequest.ViewDescriptor(
+ elementAdapter, Node.class, hint, ViewUtil.APPEND, false,
+ host().getDiagramPreferencesHint());
+ viewDescriptors.add(descriptor);
+ }
+
+ boolean changed = deleteViews(orphaned.iterator());
+ //
+ CreateViewRequest request = getCreateViewRequest(viewDescriptors);
+ Command cmd = getCreateViewCommand(request);
+ if (cmd != null && cmd.canExecute()) {
+ SetViewMutabilityCommand.makeMutable(
+ new EObjectAdapter(host().getNotationView())).execute();
+ executeCommand(cmd);
+ @SuppressWarnings("unchecked")
+ List<IAdaptable> nl = (List<IAdaptable>) request.getNewObject();
+ createdViews.addAll(nl);
+ }
+ if (changed || createdViews.size() > 0) {
+ postProcessRefreshSemantic(createdViews);
+ }
+ if (createdViews.size() > 1) {
+ // perform a layout of the container
+ DeferredLayoutCommand layoutCmd = new DeferredLayoutCommand(host()
+ .getEditingDomain(), createdViews, host());
+ executeCommand(new ICommandProxy(layoutCmd));
+ }
+
+ makeViewsImmutable(createdViews);
+ }
+}
diff --git a/org.eclipse.emf.refactor.comrel.diagram/src/comrel/diagram/edit/policies/ConditionalUnitConditionalUnitThenCompartmentItemSemanticEditPolicy.java b/org.eclipse.emf.refactor.comrel.diagram/src/comrel/diagram/edit/policies/ConditionalUnitConditionalUnitThenCompartmentItemSemanticEditPolicy.java
new file mode 100644
index 0000000..00233df
--- /dev/null
+++ b/org.eclipse.emf.refactor.comrel.diagram/src/comrel/diagram/edit/policies/ConditionalUnitConditionalUnitThenCompartmentItemSemanticEditPolicy.java
@@ -0,0 +1,55 @@
+/*
+ *
+ */
+package comrel.diagram.edit.policies;
+
+import org.eclipse.gef.commands.Command;
+import org.eclipse.gmf.runtime.emf.type.core.requests.CreateElementRequest;
+
+import comrel.diagram.edit.commands.AtomicUnit6CreateCommand;
+import comrel.diagram.edit.commands.CartesianQueuedUnit6CreateCommand;
+import comrel.diagram.edit.commands.ConditionalUnit6CreateCommand;
+import comrel.diagram.edit.commands.ParallelQueuedUnit3CreateCommand;
+import comrel.diagram.edit.commands.SequentialUnit5CreateCommand;
+import comrel.diagram.edit.commands.SingleQueuedUnit4CreateCommand;
+import comrel.diagram.providers.ComrelElementTypes;
+
+/**
+ * @generated
+ */
+public class ConditionalUnitConditionalUnitThenCompartmentItemSemanticEditPolicy
+ extends ComrelBaseItemSemanticEditPolicy {
+
+ /**
+ * @generated
+ */
+ public ConditionalUnitConditionalUnitThenCompartmentItemSemanticEditPolicy() {
+ super(ComrelElementTypes.ConditionalUnit_3030);
+ }
+
+ /**
+ * @generated
+ */
+ protected Command getCreateCommand(CreateElementRequest req) {
+ if (ComrelElementTypes.CartesianQueuedUnit_3033 == req.getElementType()) {
+ return getGEFWrapper(new CartesianQueuedUnit6CreateCommand(req));
+ }
+ if (ComrelElementTypes.ParallelQueuedUnit_3036 == req.getElementType()) {
+ return getGEFWrapper(new ParallelQueuedUnit3CreateCommand(req));
+ }
+ if (ComrelElementTypes.SingleQueuedUnit_3054 == req.getElementType()) {
+ return getGEFWrapper(new SingleQueuedUnit4CreateCommand(req));
+ }
+ if (ComrelElementTypes.SequentialUnit_3069 == req.getElementType()) {
+ return getGEFWrapper(new SequentialUnit5CreateCommand(req));
+ }
+ if (ComrelElementTypes.ConditionalUnit_3072 == req.getElementType()) {
+ return getGEFWrapper(new ConditionalUnit6CreateCommand(req));
+ }
+ if (ComrelElementTypes.AtomicUnit_3077 == req.getElementType()) {
+ return getGEFWrapper(new AtomicUnit6CreateCommand(req));
+ }
+ return super.getCreateCommand(req);
+ }
+
+}
diff --git a/org.eclipse.emf.refactor.comrel.diagram/src/comrel/diagram/edit/policies/ConditionalUnitItemSemanticEditPolicy.java b/org.eclipse.emf.refactor.comrel.diagram/src/comrel/diagram/edit/policies/ConditionalUnitItemSemanticEditPolicy.java
new file mode 100644
index 0000000..ef30e72
--- /dev/null
+++ b/org.eclipse.emf.refactor.comrel.diagram/src/comrel/diagram/edit/policies/ConditionalUnitItemSemanticEditPolicy.java
@@ -0,0 +1,337 @@
+/*
+ *
+ */
+package comrel.diagram.edit.policies;
+
+import java.util.Iterator;
+
+import org.eclipse.emf.ecore.EAnnotation;
+import org.eclipse.gef.commands.Command;
+import org.eclipse.gmf.runtime.common.core.command.ICompositeCommand;
+import org.eclipse.gmf.runtime.diagram.core.commands.DeleteCommand;
+import org.eclipse.gmf.runtime.emf.commands.core.command.CompositeTransactionalCommand;
+import org.eclipse.gmf.runtime.emf.type.core.commands.DestroyElementCommand;
+import org.eclipse.gmf.runtime.emf.type.core.requests.CreateElementRequest;
+import org.eclipse.gmf.runtime.emf.type.core.requests.DestroyElementRequest;
+import org.eclipse.gmf.runtime.notation.Edge;
+import org.eclipse.gmf.runtime.notation.Node;
+import org.eclipse.gmf.runtime.notation.View;
+
+import comrel.diagram.edit.commands.MultiInputPort9CreateCommand;
+import comrel.diagram.edit.commands.SingleInputPort8CreateCommand;
+import comrel.diagram.edit.parts.AtomicUnit6EditPart;
+import comrel.diagram.edit.parts.AtomicUnit7EditPart;
+import comrel.diagram.edit.parts.CartesianQueuedUnit6EditPart;
+import comrel.diagram.edit.parts.CartesianQueuedUnit7EditPart;
+import comrel.diagram.edit.parts.ConditionCheckEditPart;
+import comrel.diagram.edit.parts.ConditionalUnit6EditPart;
+import comrel.diagram.edit.parts.ConditionalUnit7EditPart;
+import comrel.diagram.edit.parts.ConditionalUnitConditionalUnitElseCompartment7EditPart;
+import comrel.diagram.edit.parts.ConditionalUnitConditionalUnitHelperUnitsCompartment7EditPart;
+import comrel.diagram.edit.parts.ConditionalUnitConditionalUnitIfCompartment7EditPart;
+import comrel.diagram.edit.parts.ConditionalUnitConditionalUnitThenCompartment7EditPart;
+import comrel.diagram.edit.parts.MultiFeatureUnit3EditPart;
+import comrel.diagram.edit.parts.MultiFilterUnit3EditPart;
+import comrel.diagram.edit.parts.MultiInputPort9EditPart;
+import comrel.diagram.edit.parts.MultiPortMappingEditPart;
+import comrel.diagram.edit.parts.MultiSinglePortMappingEditPart;
+import comrel.diagram.edit.parts.ParallelQueuedUnit3EditPart;
+import comrel.diagram.edit.parts.ParallelQueuedUnit7EditPart;
+import comrel.diagram.edit.parts.SequentialUnit5EditPart;
+import comrel.diagram.edit.parts.SequentialUnit7EditPart;
+import comrel.diagram.edit.parts.SingleFeatureUnit3EditPart;
+import comrel.diagram.edit.parts.SingleFilterUnit3EditPart;
+import comrel.diagram.edit.parts.SingleInputPort8EditPart;
+import comrel.diagram.edit.parts.SinglePortMappingEditPart;
+import comrel.diagram.edit.parts.SingleQueuedUnit4EditPart;
+import comrel.diagram.edit.parts.SingleQueuedUnit7EditPart;
+import comrel.diagram.part.ComrelVisualIDRegistry;
+import comrel.diagram.providers.ComrelElementTypes;
+
+/**
+ * @generated
+ */
+public class ConditionalUnitItemSemanticEditPolicy extends
+ ComrelBaseItemSemanticEditPolicy {
+
+ /**
+ * @generated
+ */
+ public ConditionalUnitItemSemanticEditPolicy() {
+ super(ComrelElementTypes.ConditionalUnit_2006);
+ }
+
+ /**
+ * @generated
+ */
+ protected Command getCreateCommand(CreateElementRequest req) {
+ if (ComrelElementTypes.SingleInputPort_3031 == req.getElementType()) {
+ return getGEFWrapper(new SingleInputPort8CreateCommand(req));
+ }
+ if (ComrelElementTypes.MultiInputPort_3032 == req.getElementType()) {
+ return getGEFWrapper(new MultiInputPort9CreateCommand(req));
+ }
+ return super.getCreateCommand(req);
+ }
+
+ /**
+ * @generated
+ */
+ protected Command getDestroyElementCommand(DestroyElementRequest req) {
+ View view = (View) getHost().getModel();
+ CompositeTransactionalCommand cmd = new CompositeTransactionalCommand(
+ getEditingDomain(), null);
+ cmd.setTransactionNestingEnabled(false);
+ EAnnotation annotation = view.getEAnnotation("Shortcut"); //$NON-NLS-1$
+ if (annotation == null) {
+ // there are indirectly referenced children, need extra commands: false
+ addDestroyChildNodesCommand(cmd);
+ addDestroyShortcutsCommand(cmd, view);
+ // delete host element
+ cmd.add(new DestroyElementCommand(req));
+ } else {
+ cmd.add(new DeleteCommand(getEditingDomain(), view));
+ }
+ return getGEFWrapper(cmd.reduce());
+ }
+
+ /**
+ * @generated
+ */
+ private void addDestroyChildNodesCommand(ICompositeCommand cmd) {
+ View view = (View) getHost().getModel();
+ for (Iterator<?> nit = view.getChildren().iterator(); nit.hasNext();) {
+ Node node = (Node) nit.next();
+ switch (ComrelVisualIDRegistry.getVisualID(node)) {
+ case SingleInputPort8EditPart.VISUAL_ID:
+ for (Iterator<?> it = node.getTargetEdges().iterator(); it
+ .hasNext();) {
+ Edge incomingLink = (Edge) it.next();
+ if (ComrelVisualIDRegistry.getVisualID(incomingLink) == SinglePortMappingEditPart.VISUAL_ID) {
+ DestroyElementRequest r = new DestroyElementRequest(
+ incomingLink.getElement(), false);
+ cmd.add(new DestroyElementCommand(r));
+ cmd.add(new DeleteCommand(getEditingDomain(),
+ incomingLink));
+ continue;
+ }
+ if (ComrelVisualIDRegistry.getVisualID(incomingLink) == MultiSinglePortMappingEditPart.VISUAL_ID) {
+ DestroyElementRequest r = new DestroyElementRequest(
+ incomingLink.getElement(), false);
+ cmd.add(new DestroyElementCommand(r));
+ cmd.add(new DeleteCommand(getEditingDomain(),
+ incomingLink));
+ continue;
+ }
+ }
+ for (Iterator<?> it = node.getSourceEdges().iterator(); it
+ .hasNext();) {
+ Edge outgoingLink = (Edge) it.next();
+ if (ComrelVisualIDRegistry.getVisualID(outgoingLink) == SinglePortMappingEditPart.VISUAL_ID) {
+ DestroyElementRequest r = new DestroyElementRequest(
+ outgoingLink.getElement(), false);
+ cmd.add(new DestroyElementCommand(r));
+ cmd.add(new DeleteCommand(getEditingDomain(),
+ outgoingLink));
+ continue;
+ }
+ }
+ cmd.add(new DestroyElementCommand(new DestroyElementRequest(
+ getEditingDomain(), node.getElement(), false))); // directlyOwned: true
+ // don't need explicit deletion of node as parent's view deletion would clean child views as well
+ // cmd.add(new org.eclipse.gmf.runtime.diagram.core.commands.DeleteCommand(getEditingDomain(), node));
+ break;
+ case MultiInputPort9EditPart.VISUAL_ID:
+ for (Iterator<?> it = node.getTargetEdges().iterator(); it
+ .hasNext();) {
+ Edge incomingLink = (Edge) it.next();
+ if (ComrelVisualIDRegistry.getVisualID(incomingLink) == MultiPortMappingEditPart.VISUAL_ID) {
+ DestroyElementRequest r = new DestroyElementRequest(
+ incomingLink.getElement(), false);
+ cmd.add(new DestroyElementCommand(r));
+ cmd.add(new DeleteCommand(getEditingDomain(),
+ incomingLink));
+ continue;
+ }
+ }
+ for (Iterator<?> it = node.getSourceEdges().iterator(); it
+ .hasNext();) {
+ Edge outgoingLink = (Edge) it.next();
+ if (ComrelVisualIDRegistry.getVisualID(outgoingLink) == MultiPortMappingEditPart.VISUAL_ID) {
+ DestroyElementRequest r = new DestroyElementRequest(
+ outgoingLink.getElement(), false);
+ cmd.add(new DestroyElementCommand(r));
+ cmd.add(new DeleteCommand(getEditingDomain(),
+ outgoingLink));
+ continue;
+ }
+ if (ComrelVisualIDRegistry.getVisualID(outgoingLink) == MultiSinglePortMappingEditPart.VISUAL_ID) {
+ DestroyElementRequest r = new DestroyElementRequest(
+ outgoingLink.getElement(), false);
+ cmd.add(new DestroyElementCommand(r));
+ cmd.add(new DeleteCommand(getEditingDomain(),
+ outgoingLink));
+ continue;
+ }
+ }
+ cmd.add(new DestroyElementCommand(new DestroyElementRequest(
+ getEditingDomain(), node.getElement(), false))); // directlyOwned: true
+ // don't need explicit deletion of node as parent's view deletion would clean child views as well
+ // cmd.add(new org.eclipse.gmf.runtime.diagram.core.commands.DeleteCommand(getEditingDomain(), node));
+ break;
+ case ConditionalUnitConditionalUnitIfCompartment7EditPart.VISUAL_ID:
+ for (Iterator<?> cit = node.getChildren().iterator(); cit
+ .hasNext();) {
+ Node cnode = (Node) cit.next();
+ switch (ComrelVisualIDRegistry.getVisualID(cnode)) {
+ case ConditionCheckEditPart.VISUAL_ID:
+ cmd.add(new DestroyElementCommand(
+ new DestroyElementRequest(getEditingDomain(),
+ cnode.getElement(), false))); // directlyOwned: true
+ // don't need explicit deletion of cnode as parent's view deletion would clean child views as well
+ // cmd.add(new org.eclipse.gmf.runtime.diagram.core.commands.DeleteCommand(getEditingDomain(), cnode));
+ break;
+ }
+ }
+ break;
+ case ConditionalUnitConditionalUnitHelperUnitsCompartment7EditPart.VISUAL_ID:
+ for (Iterator<?> cit = node.getChildren().iterator(); cit
+ .hasNext();) {
+ Node cnode = (Node) cit.next();
+ switch (ComrelVisualIDRegistry.getVisualID(cnode)) {
+ case SingleFeatureUnit3EditPart.VISUAL_ID:
+ cmd.add(new DestroyElementCommand(
+ new DestroyElementRequest(getEditingDomain(),
+ cnode.getElement(), false))); // directlyOwned: true
+ // don't need explicit deletion of cnode as parent's view deletion would clean child views as well
+ // cmd.add(new org.eclipse.gmf.runtime.diagram.core.commands.DeleteCommand(getEditingDomain(), cnode));
+ break;
+ case MultiFeatureUnit3EditPart.VISUAL_ID:
+ cmd.add(new DestroyElementCommand(
+ new DestroyElementRequest(getEditingDomain(),
+ cnode.getElement(), false))); // directlyOwned: true
+ // don't need explicit deletion of cnode as parent's view deletion would clean child views as well
+ // cmd.add(new org.eclipse.gmf.runtime.diagram.core.commands.DeleteCommand(getEditingDomain(), cnode));
+ break;
+ case SingleFilterUnit3EditPart.VISUAL_ID:
+ cmd.add(new DestroyElementCommand(
+ new DestroyElementRequest(getEditingDomain(),
+ cnode.getElement(), false))); // directlyOwned: true
+ // don't need explicit deletion of cnode as parent's view deletion would clean child views as well
+ // cmd.add(new org.eclipse.gmf.runtime.diagram.core.commands.DeleteCommand(getEditingDomain(), cnode));
+ break;
+ case MultiFilterUnit3EditPart.VISUAL_ID:
+ cmd.add(new DestroyElementCommand(
+ new DestroyElementRequest(getEditingDomain(),
+ cnode.getElement(), false))); // directlyOwned: true
+ // don't need explicit deletion of cnode as parent's view deletion would clean child views as well
+ // cmd.add(new org.eclipse.gmf.runtime.diagram.core.commands.DeleteCommand(getEditingDomain(), cnode));
+ break;
+ }
+ }
+ break;
+ case ConditionalUnitConditionalUnitThenCompartment7EditPart.VISUAL_ID:
+ for (Iterator<?> cit = node.getChildren().iterator(); cit
+ .hasNext();) {
+ Node cnode = (Node) cit.next();
+ switch (ComrelVisualIDRegistry.getVisualID(cnode)) {
+ case CartesianQueuedUnit6EditPart.VISUAL_ID:
+ cmd.add(new DestroyElementCommand(
+ new DestroyElementRequest(getEditingDomain(),
+ cnode.getElement(), false))); // directlyOwned: true
+ // don't need explicit deletion of cnode as parent's view deletion would clean child views as well
+ // cmd.add(new org.eclipse.gmf.runtime.diagram.core.commands.DeleteCommand(getEditingDomain(), cnode));
+ break;
+ case ParallelQueuedUnit3EditPart.VISUAL_ID:
+ cmd.add(new DestroyElementCommand(
+ new DestroyElementRequest(getEditingDomain(),
+ cnode.getElement(), false))); // directlyOwned: true
+ // don't need explicit deletion of cnode as parent's view deletion would clean child views as well
+ // cmd.add(new org.eclipse.gmf.runtime.diagram.core.commands.DeleteCommand(getEditingDomain(), cnode));
+ break;
+ case SingleQueuedUnit4EditPart.VISUAL_ID:
+ cmd.add(new DestroyElementCommand(
+ new DestroyElementRequest(getEditingDomain(),
+ cnode.getElement(), false))); // directlyOwned: true
+ // don't need explicit deletion of cnode as parent's view deletion would clean child views as well
+ // cmd.add(new org.eclipse.gmf.runtime.diagram.core.commands.DeleteCommand(getEditingDomain(), cnode));
+ break;
+ case SequentialUnit5EditPart.VISUAL_ID:
+ cmd.add(new DestroyElementCommand(
+ new DestroyElementRequest(getEditingDomain(),
+ cnode.getElement(), false))); // directlyOwned: true
+ // don't need explicit deletion of cnode as parent's view deletion would clean child views as well
+ // cmd.add(new org.eclipse.gmf.runtime.diagram.core.commands.DeleteCommand(getEditingDomain(), cnode));
+ break;
+ case ConditionalUnit6EditPart.VISUAL_ID:
+ cmd.add(new DestroyElementCommand(
+ new DestroyElementRequest(getEditingDomain(),
+ cnode.getElement(), false))); // directlyOwned: true
+ // don't need explicit deletion of cnode as parent's view deletion would clean child views as well
+ // cmd.add(new org.eclipse.gmf.runtime.diagram.core.commands.DeleteCommand(getEditingDomain(), cnode));
+ break;
+ case AtomicUnit6EditPart.VISUAL_ID:
+ cmd.add(new DestroyElementCommand(
+ new DestroyElementRequest(getEditingDomain(),
+ cnode.getElement(), false))); // directlyOwned: true
+ // don't need explicit deletion of cnode as parent's view deletion would clean child views as well
+ // cmd.add(new org.eclipse.gmf.runtime.diagram.core.commands.DeleteCommand(getEditingDomain(), cnode));
+ break;
+ }
+ }
+ break;
+ case ConditionalUnitConditionalUnitElseCompartment7EditPart.VISUAL_ID:
+ for (Iterator<?> cit = node.getChildren().iterator(); cit
+ .hasNext();) {
+ Node cnode = (Node) cit.next();
+ switch (ComrelVisualIDRegistry.getVisualID(cnode)) {
+ case CartesianQueuedUnit7EditPart.VISUAL_ID:
+ cmd.add(new DestroyElementCommand(
+ new DestroyElementRequest(getEditingDomain(),
+ cnode.getElement(), false))); // directlyOwned: true
+ // don't need explicit deletion of cnode as parent's view deletion would clean child views as well
+ // cmd.add(new org.eclipse.gmf.runtime.diagram.core.commands.DeleteCommand(getEditingDomain(), cnode));
+ break;
+ case ParallelQueuedUnit7EditPart.VISUAL_ID:
+ cmd.add(new DestroyElementCommand(
+ new DestroyElementRequest(getEditingDomain(),
+ cnode.getElement(), false))); // directlyOwned: true
+ // don't need explicit deletion of cnode as parent's view deletion would clean child views as well
+ // cmd.add(new org.eclipse.gmf.runtime.diagram.core.commands.DeleteCommand(getEditingDomain(), cnode));
+ break;
+ case SingleQueuedUnit7EditPart.VISUAL_ID:
+ cmd.add(new DestroyElementCommand(
+ new DestroyElementRequest(getEditingDomain(),
+ cnode.getElement(), false))); // directlyOwned: true
+ // don't need explicit deletion of cnode as parent's view deletion would clean child views as well
+ // cmd.add(new org.eclipse.gmf.runtime.diagram.core.commands.DeleteCommand(getEditingDomain(), cnode));
+ break;
+ case SequentialUnit7EditPart.VISUAL_ID:
+ cmd.add(new DestroyElementCommand(
+ new DestroyElementRequest(getEditingDomain(),
+ cnode.getElement(), false))); // directlyOwned: true
+ // don't need explicit deletion of cnode as parent's view deletion would clean child views as well
+ // cmd.add(new org.eclipse.gmf.runtime.diagram.core.commands.DeleteCommand(getEditingDomain(), cnode));
+ break;
+ case ConditionalUnit7EditPart.VISUAL_ID:
+ cmd.add(new DestroyElementCommand(
+ new DestroyElementRequest(getEditingDomain(),
+ cnode.getElement(), false))); // directlyOwned: true
+ // don't need explicit deletion of cnode as parent's view deletion would clean child views as well
+ // cmd.add(new org.eclipse.gmf.runtime.diagram.core.commands.DeleteCommand(getEditingDomain(), cnode));
+ break;
+ case AtomicUnit7EditPart.VISUAL_ID:
+ cmd.add(new DestroyElementCommand(
+ new DestroyElementRequest(getEditingDomain(),
+ cnode.getElement(), false))); // directlyOwned: true
+ // don't need explicit deletion of cnode as parent's view deletion would clean child views as well
+ // cmd.add(new org.eclipse.gmf.runtime.diagram.core.commands.DeleteCommand(getEditingDomain(), cnode));
+ break;
+ }
+ }
+ break;
+ }
+ }
+ }
+
+}
diff --git a/org.eclipse.emf.refactor.comrel.diagram/src/comrel/diagram/edit/policies/MultiFeatureUnit2CanonicalEditPolicy.java b/org.eclipse.emf.refactor.comrel.diagram/src/comrel/diagram/edit/policies/MultiFeatureUnit2CanonicalEditPolicy.java
new file mode 100644
index 0000000..b5d9ec1
--- /dev/null
+++ b/org.eclipse.emf.refactor.comrel.diagram/src/comrel/diagram/edit/policies/MultiFeatureUnit2CanonicalEditPolicy.java
@@ -0,0 +1,182 @@
+/*
+ *
+ */
+package comrel.diagram.edit.policies;
+
+import java.util.ArrayList;
+import java.util.Collection;
+import java.util.HashSet;
+import java.util.Iterator;
+import java.util.LinkedList;
+import java.util.List;
+import java.util.Set;
+
+import org.eclipse.core.runtime.IAdaptable;
+import org.eclipse.emf.ecore.EObject;
+import org.eclipse.emf.ecore.EStructuralFeature;
+import org.eclipse.gef.commands.Command;
+import org.eclipse.gmf.runtime.diagram.core.util.ViewUtil;
+import org.eclipse.gmf.runtime.diagram.ui.commands.DeferredLayoutCommand;
+import org.eclipse.gmf.runtime.diagram.ui.commands.ICommandProxy;
+import org.eclipse.gmf.runtime.diagram.ui.commands.SetViewMutabilityCommand;
+import org.eclipse.gmf.runtime.diagram.ui.editpolicies.CanonicalEditPolicy;
+import org.eclipse.gmf.runtime.diagram.ui.requests.CreateViewRequest;
+import org.eclipse.gmf.runtime.emf.core.util.EObjectAdapter;
+import org.eclipse.gmf.runtime.notation.Node;
+import org.eclipse.gmf.runtime.notation.View;
+
+import comrel.ComrelPackage;
+import comrel.diagram.edit.parts.MultiInputPort4EditPart;
+import comrel.diagram.edit.parts.MultiOutputPortEditPart;
+import comrel.diagram.edit.parts.SingleInputPort5EditPart;
+import comrel.diagram.part.ComrelDiagramUpdater;
+import comrel.diagram.part.ComrelNodeDescriptor;
+import comrel.diagram.part.ComrelVisualIDRegistry;
+
+/**
+ * @generated
+ */
+public class MultiFeatureUnit2CanonicalEditPolicy extends CanonicalEditPolicy {
+
+ /**
+ * @generated
+ */
+ private Set<EStructuralFeature> myFeaturesToSynchronize;
+
+ /**
+ * @generated
+ */
+ protected Set getFeaturesToSynchronize() {
+ if (myFeaturesToSynchronize == null) {
+ myFeaturesToSynchronize = new HashSet<EStructuralFeature>();
+ myFeaturesToSynchronize.add(ComrelPackage.eINSTANCE
+ .getMultiFeatureUnit_InputPort());
+ myFeaturesToSynchronize.add(ComrelPackage.eINSTANCE
+ .getMultiFeatureUnit_SecondaryInputPorts());
+ myFeaturesToSynchronize.add(ComrelPackage.eINSTANCE
+ .getMultiFeatureUnit_OutputPort());
+ }
+ return myFeaturesToSynchronize;
+ }
+
+ /**
+ * @generated
+ */
+ @SuppressWarnings("rawtypes")
+ protected List getSemanticChildrenList() {
+ View viewObject = (View) getHost().getModel();
+ LinkedList<EObject> result = new LinkedList<EObject>();
+ List<ComrelNodeDescriptor> childDescriptors = ComrelDiagramUpdater
+ .getMultiFeatureUnit_3039SemanticChildren(viewObject);
+ for (ComrelNodeDescriptor d : childDescriptors) {
+ result.add(d.getModelElement());
+ }
+ return result;
+ }
+
+ /**
+ * @generated
+ */
+ protected boolean isOrphaned(Collection<EObject> semanticChildren,
+ final View view) {
+ return isMyDiagramElement(view)
+ && !semanticChildren.contains(view.getElement());
+ }
+
+ /**
+ * @generated
+ */
+ private boolean isMyDiagramElement(View view) {
+ int visualID = ComrelVisualIDRegistry.getVisualID(view);
+ return visualID == SingleInputPort5EditPart.VISUAL_ID
+ || visualID == MultiInputPort4EditPart.VISUAL_ID
+ || visualID == MultiOutputPortEditPart.VISUAL_ID;
+ }
+
+ /**
+ * @generated
+ */
+ protected void refreshSemantic() {
+ if (resolveSemanticElement() == null) {
+ return;
+ }
+ LinkedList<IAdaptable> createdViews = new LinkedList<IAdaptable>();
+ List<ComrelNodeDescriptor> childDescriptors = ComrelDiagramUpdater
+ .getMultiFeatureUnit_3039SemanticChildren((View) getHost()
+ .getModel());
+ LinkedList<View> orphaned = new LinkedList<View>();
+ // we care to check only views we recognize as ours
+ LinkedList<View> knownViewChildren = new LinkedList<View>();
+ for (View v : getViewChildren()) {
+ if (isMyDiagramElement(v)) {
+ knownViewChildren.add(v);
+ }
+ }
+ // alternative to #cleanCanonicalSemanticChildren(getViewChildren(), semanticChildren)
+ //
+ // iteration happens over list of desired semantic elements, trying to find best matching View, while original CEP
+ // iterates views, potentially losing view (size/bounds) information - i.e. if there are few views to reference same EObject, only last one
+ // to answer isOrphaned == true will be used for the domain element representation, see #cleanCanonicalSemanticChildren()
+ for (Iterator<ComrelNodeDescriptor> descriptorsIterator = childDescriptors
+ .iterator(); descriptorsIterator.hasNext();) {
+ ComrelNodeDescriptor next = descriptorsIterator.next();
+ String hint = ComrelVisualIDRegistry.getType(next.getVisualID());
+ LinkedList<View> perfectMatch = new LinkedList<View>(); // both semanticElement and hint match that of NodeDescriptor
+ for (View childView : getViewChildren()) {
+ EObject semanticElement = childView.getElement();
+ if (next.getModelElement().equals(semanticElement)) {
+ if (hint.equals(childView.getType())) {
+ perfectMatch.add(childView);
+ // actually, can stop iteration over view children here, but
+ // may want to use not the first view but last one as a 'real' match (the way original CEP does
+ // with its trick with viewToSemanticMap inside #cleanCanonicalSemanticChildren
+ }
+ }
+ }
+ if (perfectMatch.size() > 0) {
+ descriptorsIterator.remove(); // precise match found no need to create anything for the NodeDescriptor
+ // use only one view (first or last?), keep rest as orphaned for further consideration
+ knownViewChildren.remove(perfectMatch.getFirst());
+ }
+ }
+ // those left in knownViewChildren are subject to removal - they are our diagram elements we didn't find match to,
+ // or those we have potential matches to, and thus need to be recreated, preserving size/location information.
+ orphaned.addAll(knownViewChildren);
+ //
+ ArrayList<CreateViewRequest.ViewDescriptor> viewDescriptors = new ArrayList<CreateViewRequest.ViewDescriptor>(
+ childDescriptors.size());
+ for (ComrelNodeDescriptor next : childDescriptors) {
+ String hint = ComrelVisualIDRegistry.getType(next.getVisualID());
+ IAdaptable elementAdapter = new CanonicalElementAdapter(
+ next.getModelElement(), hint);
+ CreateViewRequest.ViewDescriptor descriptor = new CreateViewRequest.ViewDescriptor(
+ elementAdapter, Node.class, hint, ViewUtil.APPEND, false,
+ host().getDiagramPreferencesHint());
+ viewDescriptors.add(descriptor);
+ }
+
+ boolean changed = deleteViews(orphaned.iterator());
+ //
+ CreateViewRequest request = getCreateViewRequest(viewDescriptors);
+ Command cmd = getCreateViewCommand(request);
+ if (cmd != null && cmd.canExecute()) {
+ SetViewMutabilityCommand.makeMutable(
+ new EObjectAdapter(host().getNotationView())).execute();
+ executeCommand(cmd);
+ @SuppressWarnings("unchecked")
+ List<IAdaptable> nl = (List<IAdaptable>) request.getNewObject();
+ createdViews.addAll(nl);
+ }
+ if (changed || createdViews.size() > 0) {
+ postProcessRefreshSemantic(createdViews);
+ }
+ if (createdViews.size() > 1) {
+ // perform a layout of the container
+ DeferredLayoutCommand layoutCmd = new DeferredLayoutCommand(host()
+ .getEditingDomain(), createdViews, host());
+ executeCommand(new ICommandProxy(layoutCmd));
+ }
+
+ makeViewsImmutable(createdViews);
+ }
+}
diff --git a/org.eclipse.emf.refactor.comrel.diagram/src/comrel/diagram/edit/policies/MultiFeatureUnit2ItemSemanticEditPolicy.java b/org.eclipse.emf.refactor.comrel.diagram/src/comrel/diagram/edit/policies/MultiFeatureUnit2ItemSemanticEditPolicy.java
new file mode 100644
index 0000000..7e48125
--- /dev/null
+++ b/org.eclipse.emf.refactor.comrel.diagram/src/comrel/diagram/edit/policies/MultiFeatureUnit2ItemSemanticEditPolicy.java
@@ -0,0 +1,196 @@
+/*
+ *
+ */
+package comrel.diagram.edit.policies;
+
+import java.util.Iterator;
+
+import org.eclipse.emf.ecore.EAnnotation;
+import org.eclipse.gef.commands.Command;
+import org.eclipse.gmf.runtime.common.core.command.ICompositeCommand;
+import org.eclipse.gmf.runtime.diagram.core.commands.DeleteCommand;
+import org.eclipse.gmf.runtime.emf.commands.core.command.CompositeTransactionalCommand;
+import org.eclipse.gmf.runtime.emf.type.core.commands.DestroyElementCommand;
+import org.eclipse.gmf.runtime.emf.type.core.requests.CreateElementRequest;
+import org.eclipse.gmf.runtime.emf.type.core.requests.DestroyElementRequest;
+import org.eclipse.gmf.runtime.notation.Edge;
+import org.eclipse.gmf.runtime.notation.Node;
+import org.eclipse.gmf.runtime.notation.View;
+
+import comrel.diagram.edit.commands.MultiInputPort4CreateCommand;
+import comrel.diagram.edit.commands.MultiOutputPortCreateCommand;
+import comrel.diagram.edit.commands.SingleInputPort5CreateCommand;
+import comrel.diagram.edit.parts.MultiInputPort4EditPart;
+import comrel.diagram.edit.parts.MultiOutputPortEditPart;
+import comrel.diagram.edit.parts.MultiPortMappingEditPart;
+import comrel.diagram.edit.parts.MultiSinglePortMappingEditPart;
+import comrel.diagram.edit.parts.SingleInputPort5EditPart;
+import comrel.diagram.edit.parts.SinglePortMappingEditPart;
+import comrel.diagram.part.ComrelVisualIDRegistry;
+import comrel.diagram.providers.ComrelElementTypes;
+
+/**
+ * @generated
+ */
+public class MultiFeatureUnit2ItemSemanticEditPolicy extends
+ ComrelBaseItemSemanticEditPolicy {
+
+ /**
+ * @generated
+ */
+ public MultiFeatureUnit2ItemSemanticEditPolicy() {
+ super(ComrelElementTypes.MultiFeatureUnit_3039);
+ }
+
+ /**
+ * @generated
+ */
+ protected Command getCreateCommand(CreateElementRequest req) {
+ if (ComrelElementTypes.SingleInputPort_3013 == req.getElementType()) {
+ return getGEFWrapper(new SingleInputPort5CreateCommand(req));
+ }
+ if (ComrelElementTypes.MultiInputPort_3014 == req.getElementType()) {
+ return getGEFWrapper(new MultiInputPort4CreateCommand(req));
+ }
+ if (ComrelElementTypes.MultiOutputPort_3015 == req.getElementType()) {
+ return getGEFWrapper(new MultiOutputPortCreateCommand(req));
+ }
+ return super.getCreateCommand(req);
+ }
+
+ /**
+ * @generated
+ */
+ protected Command getDestroyElementCommand(DestroyElementRequest req) {
+ View view = (View) getHost().getModel();
+ CompositeTransactionalCommand cmd = new CompositeTransactionalCommand(
+ getEditingDomain(), null);
+ cmd.setTransactionNestingEnabled(false);
+ EAnnotation annotation = view.getEAnnotation("Shortcut"); //$NON-NLS-1$
+ if (annotation == null) {
+ // there are indirectly referenced children, need extra commands: false
+ addDestroyChildNodesCommand(cmd);
+ addDestroyShortcutsCommand(cmd, view);
+ // delete host element
+ cmd.add(new DestroyElementCommand(req));
+ } else {
+ cmd.add(new DeleteCommand(getEditingDomain(), view));
+ }
+ return getGEFWrapper(cmd.reduce());
+ }
+
+ /**
+ * @generated
+ */
+ private void addDestroyChildNodesCommand(ICompositeCommand cmd) {
+ View view = (View) getHost().getModel();
+ for (Iterator<?> nit = view.getChildren().iterator(); nit.hasNext();) {
+ Node node = (Node) nit.next();
+ switch (ComrelVisualIDRegistry.getVisualID(node)) {
+ case SingleInputPort5EditPart.VISUAL_ID:
+ for (Iterator<?> it = node.getTargetEdges().iterator(); it
+ .hasNext();) {
+ Edge incomingLink = (Edge) it.next();
+ if (ComrelVisualIDRegistry.getVisualID(incomingLink) == SinglePortMappingEditPart.VISUAL_ID) {
+ DestroyElementRequest r = new DestroyElementRequest(
+ incomingLink.getElement(), false);
+ cmd.add(new DestroyElementCommand(r));
+ cmd.add(new DeleteCommand(getEditingDomain(),
+ incomingLink));
+ continue;
+ }
+ if (ComrelVisualIDRegistry.getVisualID(incomingLink) == MultiSinglePortMappingEditPart.VISUAL_ID) {
+ DestroyElementRequest r = new DestroyElementRequest(
+ incomingLink.getElement(), false);
+ cmd.add(new DestroyElementCommand(r));
+ cmd.add(new DeleteCommand(getEditingDomain(),
+ incomingLink));
+ continue;
+ }
+ }
+ for (Iterator<?> it = node.getSourceEdges().iterator(); it
+ .hasNext();) {
+ Edge outgoingLink = (Edge) it.next();
+ if (ComrelVisualIDRegistry.getVisualID(outgoingLink) == SinglePortMappingEditPart.VISUAL_ID) {
+ DestroyElementRequest r = new DestroyElementRequest(
+ outgoingLink.getElement(), false);
+ cmd.add(new DestroyElementCommand(r));
+ cmd.add(new DeleteCommand(getEditingDomain(),
+ outgoingLink));
+ continue;
+ }
+ }
+ cmd.add(new DestroyElementCommand(new DestroyElementRequest(
+ getEditingDomain(), node.getElement(), false))); // directlyOwned: true
+ // don't need explicit deletion of node as parent's view deletion would clean child views as well
+ // cmd.add(new org.eclipse.gmf.runtime.diagram.core.commands.DeleteCommand(getEditingDomain(), node));
+ break;
+ case MultiInputPort4EditPart.VISUAL_ID:
+ for (Iterator<?> it = node.getTargetEdges().iterator(); it
+ .hasNext();) {
+ Edge incomingLink = (Edge) it.next();
+ if (ComrelVisualIDRegistry.getVisualID(incomingLink) == MultiPortMappingEditPart.VISUAL_ID) {
+ DestroyElementRequest r = new DestroyElementRequest(
+ incomingLink.getElement(), false);
+ cmd.add(new DestroyElementCommand(r));
+ cmd.add(new DeleteCommand(getEditingDomain(),
+ incomingLink));
+ continue;
+ }
+ }
+ for (Iterator<?> it = node.getSourceEdges().iterator(); it
+ .hasNext();) {
+ Edge outgoingLink = (Edge) it.next();
+ if (ComrelVisualIDRegistry.getVisualID(outgoingLink) == MultiPortMappingEditPart.VISUAL_ID) {
+ DestroyElementRequest r = new DestroyElementRequest(
+ outgoingLink.getElement(), false);
+ cmd.add(new DestroyElementCommand(r));
+ cmd.add(new DeleteCommand(getEditingDomain(),
+ outgoingLink));
+ continue;
+ }
+ if (ComrelVisualIDRegistry.getVisualID(outgoingLink) == MultiSinglePortMappingEditPart.VISUAL_ID) {
+ DestroyElementRequest r = new DestroyElementRequest(
+ outgoingLink.getElement(), false);
+ cmd.add(new DestroyElementCommand(r));
+ cmd.add(new DeleteCommand(getEditingDomain(),
+ outgoingLink));
+ continue;
+ }
+ }
+ cmd.add(new DestroyElementCommand(new DestroyElementRequest(
+ getEditingDomain(), node.getElement(), false))); // directlyOwned: true
+ // don't need explicit deletion of node as parent's view deletion would clean child views as well
+ // cmd.add(new org.eclipse.gmf.runtime.diagram.core.commands.DeleteCommand(getEditingDomain(), node));
+ break;
+ case MultiOutputPortEditPart.VISUAL_ID:
+ for (Iterator<?> it = node.getSourceEdges().iterator(); it
+ .hasNext();) {
+ Edge outgoingLink = (Edge) it.next();
+ if (ComrelVisualIDRegistry.getVisualID(outgoingLink) == MultiPortMappingEditPart.VISUAL_ID) {
+ DestroyElementRequest r = new DestroyElementRequest(
+ outgoingLink.getElement(), false);
+ cmd.add(new DestroyElementCommand(r));
+ cmd.add(new DeleteCommand(getEditingDomain(),
+ outgoingLink));
+ continue;
+ }
+ if (ComrelVisualIDRegistry.getVisualID(outgoingLink) == MultiSinglePortMappingEditPart.VISUAL_ID) {
+ DestroyElementRequest r = new DestroyElementRequest(
+ outgoingLink.getElement(), false);
+ cmd.add(new DestroyElementCommand(r));
+ cmd.add(new DeleteCommand(getEditingDomain(),
+ outgoingLink));
+ continue;
+ }
+ }
+ cmd.add(new DestroyElementCommand(new DestroyElementRequest(
+ getEditingDomain(), node.getElement(), false))); // directlyOwned: true
+ // don't need explicit deletion of node as parent's view deletion would clean child views as well
+ // cmd.add(new org.eclipse.gmf.runtime.diagram.core.commands.DeleteCommand(getEditingDomain(), node));
+ break;
+ }
+ }
+ }
+
+}
diff --git a/org.eclipse.emf.refactor.comrel.diagram/src/comrel/diagram/edit/policies/MultiFeatureUnit3CanonicalEditPolicy.java b/org.eclipse.emf.refactor.comrel.diagram/src/comrel/diagram/edit/policies/MultiFeatureUnit3CanonicalEditPolicy.java
new file mode 100644
index 0000000..1a8c6b9
--- /dev/null
+++ b/org.eclipse.emf.refactor.comrel.diagram/src/comrel/diagram/edit/policies/MultiFeatureUnit3CanonicalEditPolicy.java
@@ -0,0 +1,182 @@
+/*
+ *
+ */
+package comrel.diagram.edit.policies;
+
+import java.util.ArrayList;
+import java.util.Collection;
+import java.util.HashSet;
+import java.util.Iterator;
+import java.util.LinkedList;
+import java.util.List;
+import java.util.Set;
+
+import org.eclipse.core.runtime.IAdaptable;
+import org.eclipse.emf.ecore.EObject;
+import org.eclipse.emf.ecore.EStructuralFeature;
+import org.eclipse.gef.commands.Command;
+import org.eclipse.gmf.runtime.diagram.core.util.ViewUtil;
+import org.eclipse.gmf.runtime.diagram.ui.commands.DeferredLayoutCommand;
+import org.eclipse.gmf.runtime.diagram.ui.commands.ICommandProxy;
+import org.eclipse.gmf.runtime.diagram.ui.commands.SetViewMutabilityCommand;
+import org.eclipse.gmf.runtime.diagram.ui.editpolicies.CanonicalEditPolicy;
+import org.eclipse.gmf.runtime.diagram.ui.requests.CreateViewRequest;
+import org.eclipse.gmf.runtime.emf.core.util.EObjectAdapter;
+import org.eclipse.gmf.runtime.notation.Node;
+import org.eclipse.gmf.runtime.notation.View;
+
+import comrel.ComrelPackage;
+import comrel.diagram.edit.parts.MultiInputPort4EditPart;
+import comrel.diagram.edit.parts.MultiOutputPortEditPart;
+import comrel.diagram.edit.parts.SingleInputPort5EditPart;
+import comrel.diagram.part.ComrelDiagramUpdater;
+import comrel.diagram.part.ComrelNodeDescriptor;
+import comrel.diagram.part.ComrelVisualIDRegistry;
+
+/**
+ * @generated
+ */
+public class MultiFeatureUnit3CanonicalEditPolicy extends CanonicalEditPolicy {
+
+ /**
+ * @generated
+ */
+ private Set<EStructuralFeature> myFeaturesToSynchronize;
+
+ /**
+ * @generated
+ */
+ protected Set getFeaturesToSynchronize() {
+ if (myFeaturesToSynchronize == null) {
+ myFeaturesToSynchronize = new HashSet<EStructuralFeature>();
+ myFeaturesToSynchronize.add(ComrelPackage.eINSTANCE
+ .getMultiFeatureUnit_InputPort());
+ myFeaturesToSynchronize.add(ComrelPackage.eINSTANCE
+ .getMultiFeatureUnit_SecondaryInputPorts());
+ myFeaturesToSynchronize.add(ComrelPackage.eINSTANCE
+ .getMultiFeatureUnit_OutputPort());
+ }
+ return myFeaturesToSynchronize;
+ }
+
+ /**
+ * @generated
+ */
+ @SuppressWarnings("rawtypes")
+ protected List getSemanticChildrenList() {
+ View viewObject = (View) getHost().getModel();
+ LinkedList<EObject> result = new LinkedList<EObject>();
+ List<ComrelNodeDescriptor> childDescriptors = ComrelDiagramUpdater
+ .getMultiFeatureUnit_3051SemanticChildren(viewObject);
+ for (ComrelNodeDescriptor d : childDescriptors) {
+ result.add(d.getModelElement());
+ }
+ return result;
+ }
+
+ /**
+ * @generated
+ */
+ protected boolean isOrphaned(Collection<EObject> semanticChildren,
+ final View view) {
+ return isMyDiagramElement(view)
+ && !semanticChildren.contains(view.getElement());
+ }
+
+ /**
+ * @generated
+ */
+ private boolean isMyDiagramElement(View view) {
+ int visualID = ComrelVisualIDRegistry.getVisualID(view);
+ return visualID == SingleInputPort5EditPart.VISUAL_ID
+ || visualID == MultiInputPort4EditPart.VISUAL_ID
+ || visualID == MultiOutputPortEditPart.VISUAL_ID;
+ }
+
+ /**
+ * @generated
+ */
+ protected void refreshSemantic() {
+ if (resolveSemanticElement() == null) {
+ return;
+ }
+ LinkedList<IAdaptable> createdViews = new LinkedList<IAdaptable>();
+ List<ComrelNodeDescriptor> childDescriptors = ComrelDiagramUpdater
+ .getMultiFeatureUnit_3051SemanticChildren((View) getHost()
+ .getModel());
+ LinkedList<View> orphaned = new LinkedList<View>();
+ // we care to check only views we recognize as ours
+ LinkedList<View> knownViewChildren = new LinkedList<View>();
+ for (View v : getViewChildren()) {
+ if (isMyDiagramElement(v)) {
+ knownViewChildren.add(v);
+ }
+ }
+ // alternative to #cleanCanonicalSemanticChildren(getViewChildren(), semanticChildren)
+ //
+ // iteration happens over list of desired semantic elements, trying to find best matching View, while original CEP
+ // iterates views, potentially losing view (size/bounds) information - i.e. if there are few views to reference same EObject, only last one
+ // to answer isOrphaned == true will be used for the domain element representation, see #cleanCanonicalSemanticChildren()
+ for (Iterator<ComrelNodeDescriptor> descriptorsIterator = childDescriptors
+ .iterator(); descriptorsIterator.hasNext();) {
+ ComrelNodeDescriptor next = descriptorsIterator.next();
+ String hint = ComrelVisualIDRegistry.getType(next.getVisualID());
+ LinkedList<View> perfectMatch = new LinkedList<View>(); // both semanticElement and hint match that of NodeDescriptor
+ for (View childView : getViewChildren()) {
+ EObject semanticElement = childView.getElement();
+ if (next.getModelElement().equals(semanticElement)) {
+ if (hint.equals(childView.getType())) {
+ perfectMatch.add(childView);
+ // actually, can stop iteration over view children here, but
+ // may want to use not the first view but last one as a 'real' match (the way original CEP does
+ // with its trick with viewToSemanticMap inside #cleanCanonicalSemanticChildren
+ }
+ }
+ }
+ if (perfectMatch.size() > 0) {
+ descriptorsIterator.remove(); // precise match found no need to create anything for the NodeDescriptor
+ // use only one view (first or last?), keep rest as orphaned for further consideration
+ knownViewChildren.remove(perfectMatch.getFirst());
+ }
+ }
+ // those left in knownViewChildren are subject to removal - they are our diagram elements we didn't find match to,
+ // or those we have potential matches to, and thus need to be recreated, preserving size/location information.
+ orphaned.addAll(knownViewChildren);
+ //
+ ArrayList<CreateViewRequest.ViewDescriptor> viewDescriptors = new ArrayList<CreateViewRequest.ViewDescriptor>(
+ childDescriptors.size());
+ for (ComrelNodeDescriptor next : childDescriptors) {
+ String hint = ComrelVisualIDRegistry.getType(next.getVisualID());
+ IAdaptable elementAdapter = new CanonicalElementAdapter(
+ next.getModelElement(), hint);
+ CreateViewRequest.ViewDescriptor descriptor = new CreateViewRequest.ViewDescriptor(
+ elementAdapter, Node.class, hint, ViewUtil.APPEND, false,
+ host().getDiagramPreferencesHint());
+ viewDescriptors.add(descriptor);
+ }
+
+ boolean changed = deleteViews(orphaned.iterator());
+ //
+ CreateViewRequest request = getCreateViewRequest(viewDescriptors);
+ Command cmd = getCreateViewCommand(request);
+ if (cmd != null && cmd.canExecute()) {
+ SetViewMutabilityCommand.makeMutable(
+ new EObjectAdapter(host().getNotationView())).execute();
+ executeCommand(cmd);
+ @SuppressWarnings("unchecked")
+ List<IAdaptable> nl = (List<IAdaptable>) request.getNewObject();
+ createdViews.addAll(nl);
+ }
+ if (changed || createdViews.size() > 0) {
+ postProcessRefreshSemantic(createdViews);
+ }
+ if (createdViews.size() > 1) {
+ // perform a layout of the container
+ DeferredLayoutCommand layoutCmd = new DeferredLayoutCommand(host()
+ .getEditingDomain(), createdViews, host());
+ executeCommand(new ICommandProxy(layoutCmd));
+ }
+
+ makeViewsImmutable(createdViews);
+ }
+}
diff --git a/org.eclipse.emf.refactor.comrel.diagram/src/comrel/diagram/edit/policies/MultiFeatureUnit3ItemSemanticEditPolicy.java b/org.eclipse.emf.refactor.comrel.diagram/src/comrel/diagram/edit/policies/MultiFeatureUnit3ItemSemanticEditPolicy.java
new file mode 100644
index 0000000..1495a3c
--- /dev/null
+++ b/org.eclipse.emf.refactor.comrel.diagram/src/comrel/diagram/edit/policies/MultiFeatureUnit3ItemSemanticEditPolicy.java
@@ -0,0 +1,196 @@
+/*
+ *
+ */
+package comrel.diagram.edit.policies;
+
+import java.util.Iterator;
+
+import org.eclipse.emf.ecore.EAnnotation;
+import org.eclipse.gef.commands.Command;
+import org.eclipse.gmf.runtime.common.core.command.ICompositeCommand;
+import org.eclipse.gmf.runtime.diagram.core.commands.DeleteCommand;
+import org.eclipse.gmf.runtime.emf.commands.core.command.CompositeTransactionalCommand;
+import org.eclipse.gmf.runtime.emf.type.core.commands.DestroyElementCommand;
+import org.eclipse.gmf.runtime.emf.type.core.requests.CreateElementRequest;
+import org.eclipse.gmf.runtime.emf.type.core.requests.DestroyElementRequest;
+import org.eclipse.gmf.runtime.notation.Edge;
+import org.eclipse.gmf.runtime.notation.Node;
+import org.eclipse.gmf.runtime.notation.View;
+
+import comrel.diagram.edit.commands.MultiInputPort4CreateCommand;
+import comrel.diagram.edit.commands.MultiOutputPortCreateCommand;
+import comrel.diagram.edit.commands.SingleInputPort5CreateCommand;
+import comrel.diagram.edit.parts.MultiInputPort4EditPart;
+import comrel.diagram.edit.parts.MultiOutputPortEditPart;
+import comrel.diagram.edit.parts.MultiPortMappingEditPart;
+import comrel.diagram.edit.parts.MultiSinglePortMappingEditPart;
+import comrel.diagram.edit.parts.SingleInputPort5EditPart;
+import comrel.diagram.edit.parts.SinglePortMappingEditPart;
+import comrel.diagram.part.ComrelVisualIDRegistry;
+import comrel.diagram.providers.ComrelElementTypes;
+
+/**
+ * @generated
+ */
+public class MultiFeatureUnit3ItemSemanticEditPolicy extends
+ ComrelBaseItemSemanticEditPolicy {
+
+ /**
+ * @generated
+ */
+ public MultiFeatureUnit3ItemSemanticEditPolicy() {
+ super(ComrelElementTypes.MultiFeatureUnit_3051);
+ }
+
+ /**
+ * @generated
+ */
+ protected Command getCreateCommand(CreateElementRequest req) {
+ if (ComrelElementTypes.SingleInputPort_3013 == req.getElementType()) {
+ return getGEFWrapper(new SingleInputPort5CreateCommand(req));
+ }
+ if (ComrelElementTypes.MultiInputPort_3014 == req.getElementType()) {
+ return getGEFWrapper(new MultiInputPort4CreateCommand(req));
+ }
+ if (ComrelElementTypes.MultiOutputPort_3015 == req.getElementType()) {
+ return getGEFWrapper(new MultiOutputPortCreateCommand(req));
+ }
+ return super.getCreateCommand(req);
+ }
+
+ /**
+ * @generated
+ */
+ protected Command getDestroyElementCommand(DestroyElementRequest req) {
+ View view = (View) getHost().getModel();
+ CompositeTransactionalCommand cmd = new CompositeTransactionalCommand(
+ getEditingDomain(), null);
+ cmd.setTransactionNestingEnabled(false);
+ EAnnotation annotation = view.getEAnnotation("Shortcut"); //$NON-NLS-1$
+ if (annotation == null) {
+ // there are indirectly referenced children, need extra commands: false
+ addDestroyChildNodesCommand(cmd);
+ addDestroyShortcutsCommand(cmd, view);
+ // delete host element
+ cmd.add(new DestroyElementCommand(req));
+ } else {
+ cmd.add(new DeleteCommand(getEditingDomain(), view));
+ }
+ return getGEFWrapper(cmd.reduce());
+ }
+
+ /**
+ * @generated
+ */
+ private void addDestroyChildNodesCommand(ICompositeCommand cmd) {
+ View view = (View) getHost().getModel();
+ for (Iterator<?> nit = view.getChildren().iterator(); nit.hasNext();) {
+ Node node = (Node) nit.next();
+ switch (ComrelVisualIDRegistry.getVisualID(node)) {
+ case SingleInputPort5EditPart.VISUAL_ID:
+ for (Iterator<?> it = node.getTargetEdges().iterator(); it
+ .hasNext();) {
+ Edge incomingLink = (Edge) it.next();
+ if (ComrelVisualIDRegistry.getVisualID(incomingLink) == SinglePortMappingEditPart.VISUAL_ID) {
+ DestroyElementRequest r = new DestroyElementRequest(
+ incomingLink.getElement(), false);
+ cmd.add(new DestroyElementCommand(r));
+ cmd.add(new DeleteCommand(getEditingDomain(),
+ incomingLink));
+ continue;
+ }
+ if (ComrelVisualIDRegistry.getVisualID(incomingLink) == MultiSinglePortMappingEditPart.VISUAL_ID) {
+ DestroyElementRequest r = new DestroyElementRequest(
+ incomingLink.getElement(), false);
+ cmd.add(new DestroyElementCommand(r));
+ cmd.add(new DeleteCommand(getEditingDomain(),
+ incomingLink));
+ continue;
+ }
+ }
+ for (Iterator<?> it = node.getSourceEdges().iterator(); it
+ .hasNext();) {
+ Edge outgoingLink = (Edge) it.next();
+ if (ComrelVisualIDRegistry.getVisualID(outgoingLink) == SinglePortMappingEditPart.VISUAL_ID) {
+ DestroyElementRequest r = new DestroyElementRequest(
+ outgoingLink.getElement(), false);
+ cmd.add(new DestroyElementCommand(r));
+ cmd.add(new DeleteCommand(getEditingDomain(),
+ outgoingLink));
+ continue;
+ }
+ }
+ cmd.add(new DestroyElementCommand(new DestroyElementRequest(
+ getEditingDomain(), node.getElement(), false))); // directlyOwned: true
+ // don't need explicit deletion of node as parent's view deletion would clean child views as well
+ // cmd.add(new org.eclipse.gmf.runtime.diagram.core.commands.DeleteCommand(getEditingDomain(), node));
+ break;
+ case MultiInputPort4EditPart.VISUAL_ID:
+ for (Iterator<?> it = node.getTargetEdges().iterator(); it
+ .hasNext();) {
+ Edge incomingLink = (Edge) it.next();
+ if (ComrelVisualIDRegistry.getVisualID(incomingLink) == MultiPortMappingEditPart.VISUAL_ID) {
+ DestroyElementRequest r = new DestroyElementRequest(
+ incomingLink.getElement(), false);
+ cmd.add(new DestroyElementCommand(r));
+ cmd.add(new DeleteCommand(getEditingDomain(),
+ incomingLink));
+ continue;
+ }
+ }
+ for (Iterator<?> it = node.getSourceEdges().iterator(); it
+ .hasNext();) {
+ Edge outgoingLink = (Edge) it.next();
+ if (ComrelVisualIDRegistry.getVisualID(outgoingLink) == MultiPortMappingEditPart.VISUAL_ID) {
+ DestroyElementRequest r = new DestroyElementRequest(
+ outgoingLink.getElement(), false);
+ cmd.add(new DestroyElementCommand(r));
+ cmd.add(new DeleteCommand(getEditingDomain(),
+ outgoingLink));
+ continue;
+ }
+ if (ComrelVisualIDRegistry.getVisualID(outgoingLink) == MultiSinglePortMappingEditPart.VISUAL_ID) {
+ DestroyElementRequest r = new DestroyElementRequest(
+ outgoingLink.getElement(), false);
+ cmd.add(new DestroyElementCommand(r));
+ cmd.add(new DeleteCommand(getEditingDomain(),
+ outgoingLink));
+ continue;
+ }
+ }
+ cmd.add(new DestroyElementCommand(new DestroyElementRequest(
+ getEditingDomain(), node.getElement(), false))); // directlyOwned: true
+ // don't need explicit deletion of node as parent's view deletion would clean child views as well
+ // cmd.add(new org.eclipse.gmf.runtime.diagram.core.commands.DeleteCommand(getEditingDomain(), node));
+ break;
+ case MultiOutputPortEditPart.VISUAL_ID:
+ for (Iterator<?> it = node.getSourceEdges().iterator(); it
+ .hasNext();) {
+ Edge outgoingLink = (Edge) it.next();
+ if (ComrelVisualIDRegistry.getVisualID(outgoingLink) == MultiPortMappingEditPart.VISUAL_ID) {
+ DestroyElementRequest r = new DestroyElementRequest(
+ outgoingLink.getElement(), false);
+ cmd.add(new DestroyElementCommand(r));
+ cmd.add(new DeleteCommand(getEditingDomain(),
+ outgoingLink));
+ continue;
+ }
+ if (ComrelVisualIDRegistry.getVisualID(outgoingLink) == MultiSinglePortMappingEditPart.VISUAL_ID) {
+ DestroyElementRequest r = new DestroyElementRequest(
+ outgoingLink.getElement(), false);
+ cmd.add(new DestroyElementCommand(r));
+ cmd.add(new DeleteCommand(getEditingDomain(),
+ outgoingLink));
+ continue;
+ }
+ }
+ cmd.add(new DestroyElementCommand(new DestroyElementRequest(
+ getEditingDomain(), node.getElement(), false))); // directlyOwned: true
+ // don't need explicit deletion of node as parent's view deletion would clean child views as well
+ // cmd.add(new org.eclipse.gmf.runtime.diagram.core.commands.DeleteCommand(getEditingDomain(), node));
+ break;
+ }
+ }
+ }
+
+}
diff --git a/org.eclipse.emf.refactor.comrel.diagram/src/comrel/diagram/edit/policies/MultiFeatureUnit4CanonicalEditPolicy.java b/org.eclipse.emf.refactor.comrel.diagram/src/comrel/diagram/edit/policies/MultiFeatureUnit4CanonicalEditPolicy.java
new file mode 100644
index 0000000..fe106bc
--- /dev/null
+++ b/org.eclipse.emf.refactor.comrel.diagram/src/comrel/diagram/edit/policies/MultiFeatureUnit4CanonicalEditPolicy.java
@@ -0,0 +1,182 @@
+/*
+ *
+ */
+package comrel.diagram.edit.policies;
+
+import java.util.ArrayList;
+import java.util.Collection;
+import java.util.HashSet;
+import java.util.Iterator;
+import java.util.LinkedList;
+import java.util.List;
+import java.util.Set;
+
+import org.eclipse.core.runtime.IAdaptable;
+import org.eclipse.emf.ecore.EObject;
+import org.eclipse.emf.ecore.EStructuralFeature;
+import org.eclipse.gef.commands.Command;
+import org.eclipse.gmf.runtime.diagram.core.util.ViewUtil;
+import org.eclipse.gmf.runtime.diagram.ui.commands.DeferredLayoutCommand;
+import org.eclipse.gmf.runtime.diagram.ui.commands.ICommandProxy;
+import org.eclipse.gmf.runtime.diagram.ui.commands.SetViewMutabilityCommand;
+import org.eclipse.gmf.runtime.diagram.ui.editpolicies.CanonicalEditPolicy;
+import org.eclipse.gmf.runtime.diagram.ui.requests.CreateViewRequest;
+import org.eclipse.gmf.runtime.emf.core.util.EObjectAdapter;
+import org.eclipse.gmf.runtime.notation.Node;
+import org.eclipse.gmf.runtime.notation.View;
+
+import comrel.ComrelPackage;
+import comrel.diagram.edit.parts.MultiInputPort4EditPart;
+import comrel.diagram.edit.parts.MultiOutputPortEditPart;
+import comrel.diagram.edit.parts.SingleInputPort5EditPart;
+import comrel.diagram.part.ComrelDiagramUpdater;
+import comrel.diagram.part.ComrelNodeDescriptor;
+import comrel.diagram.part.ComrelVisualIDRegistry;
+
+/**
+ * @generated
+ */
+public class MultiFeatureUnit4CanonicalEditPolicy extends CanonicalEditPolicy {
+
+ /**
+ * @generated
+ */
+ private Set<EStructuralFeature> myFeaturesToSynchronize;
+
+ /**
+ * @generated
+ */
+ protected Set getFeaturesToSynchronize() {
+ if (myFeaturesToSynchronize == null) {
+ myFeaturesToSynchronize = new HashSet<EStructuralFeature>();
+ myFeaturesToSynchronize.add(ComrelPackage.eINSTANCE
+ .getMultiFeatureUnit_InputPort());
+ myFeaturesToSynchronize.add(ComrelPackage.eINSTANCE
+ .getMultiFeatureUnit_SecondaryInputPorts());
+ myFeaturesToSynchronize.add(ComrelPackage.eINSTANCE
+ .getMultiFeatureUnit_OutputPort());
+ }
+ return myFeaturesToSynchronize;
+ }
+
+ /**
+ * @generated
+ */
+ @SuppressWarnings("rawtypes")
+ protected List getSemanticChildrenList() {
+ View viewObject = (View) getHost().getModel();
+ LinkedList<EObject> result = new LinkedList<EObject>();
+ List<ComrelNodeDescriptor> childDescriptors = ComrelDiagramUpdater
+ .getMultiFeatureUnit_3056SemanticChildren(viewObject);
+ for (ComrelNodeDescriptor d : childDescriptors) {
+ result.add(d.getModelElement());
+ }
+ return result;
+ }
+
+ /**
+ * @generated
+ */
+ protected boolean isOrphaned(Collection<EObject> semanticChildren,
+ final View view) {
+ return isMyDiagramElement(view)
+ && !semanticChildren.contains(view.getElement());
+ }
+
+ /**
+ * @generated
+ */
+ private boolean isMyDiagramElement(View view) {
+ int visualID = ComrelVisualIDRegistry.getVisualID(view);
+ return visualID == SingleInputPort5EditPart.VISUAL_ID
+ || visualID == MultiInputPort4EditPart.VISUAL_ID
+ || visualID == MultiOutputPortEditPart.VISUAL_ID;
+ }
+
+ /**
+ * @generated
+ */
+ protected void refreshSemantic() {
+ if (resolveSemanticElement() == null) {
+ return;
+ }
+ LinkedList<IAdaptable> createdViews = new LinkedList<IAdaptable>();
+ List<ComrelNodeDescriptor> childDescriptors = ComrelDiagramUpdater
+ .getMultiFeatureUnit_3056SemanticChildren((View) getHost()
+ .getModel());
+ LinkedList<View> orphaned = new LinkedList<View>();
+ // we care to check only views we recognize as ours
+ LinkedList<View> knownViewChildren = new LinkedList<View>();
+ for (View v : getViewChildren()) {
+ if (isMyDiagramElement(v)) {
+ knownViewChildren.add(v);
+ }
+ }
+ // alternative to #cleanCanonicalSemanticChildren(getViewChildren(), semanticChildren)
+ //
+ // iteration happens over list of desired semantic elements, trying to find best matching View, while original CEP
+ // iterates views, potentially losing view (size/bounds) information - i.e. if there are few views to reference same EObject, only last one
+ // to answer isOrphaned == true will be used for the domain element representation, see #cleanCanonicalSemanticChildren()
+ for (Iterator<ComrelNodeDescriptor> descriptorsIterator = childDescriptors
+ .iterator(); descriptorsIterator.hasNext();) {
+ ComrelNodeDescriptor next = descriptorsIterator.next();
+ String hint = ComrelVisualIDRegistry.getType(next.getVisualID());
+ LinkedList<View> perfectMatch = new LinkedList<View>(); // both semanticElement and hint match that of NodeDescriptor
+ for (View childView : getViewChildren()) {
+ EObject semanticElement = childView.getElement();
+ if (next.getModelElement().equals(semanticElement)) {
+ if (hint.equals(childView.getType())) {
+ perfectMatch.add(childView);
+ // actually, can stop iteration over view children here, but
+ // may want to use not the first view but last one as a 'real' match (the way original CEP does
+ // with its trick with viewToSemanticMap inside #cleanCanonicalSemanticChildren
+ }
+ }
+ }
+ if (perfectMatch.size() > 0) {
+ descriptorsIterator.remove(); // precise match found no need to create anything for the NodeDescriptor
+ // use only one view (first or last?), keep rest as orphaned for further consideration
+ knownViewChildren.remove(perfectMatch.getFirst());
+ }
+ }
+ // those left in knownViewChildren are subject to removal - they are our diagram elements we didn't find match to,
+ // or those we have potential matches to, and thus need to be recreated, preserving size/location information.
+ orphaned.addAll(knownViewChildren);
+ //
+ ArrayList<CreateViewRequest.ViewDescriptor> viewDescriptors = new ArrayList<CreateViewRequest.ViewDescriptor>(
+ childDescriptors.size());
+ for (ComrelNodeDescriptor next : childDescriptors) {
+ String hint = ComrelVisualIDRegistry.getType(next.getVisualID());
+ IAdaptable elementAdapter = new CanonicalElementAdapter(
+ next.getModelElement(), hint);
+ CreateViewRequest.ViewDescriptor descriptor = new CreateViewRequest.ViewDescriptor(
+ elementAdapter, Node.class, hint, ViewUtil.APPEND, false,
+ host().getDiagramPreferencesHint());
+ viewDescriptors.add(descriptor);
+ }
+
+ boolean changed = deleteViews(orphaned.iterator());
+ //
+ CreateViewRequest request = getCreateViewRequest(viewDescriptors);
+ Command cmd = getCreateViewCommand(request);
+ if (cmd != null && cmd.canExecute()) {
+ SetViewMutabilityCommand.makeMutable(
+ new EObjectAdapter(host().getNotationView())).execute();
+ executeCommand(cmd);
+ @SuppressWarnings("unchecked")
+ List<IAdaptable> nl = (List<IAdaptable>) request.getNewObject();
+ createdViews.addAll(nl);
+ }
+ if (changed || createdViews.size() > 0) {
+ postProcessRefreshSemantic(createdViews);
+ }
+ if (createdViews.size() > 1) {
+ // perform a layout of the container
+ DeferredLayoutCommand layoutCmd = new DeferredLayoutCommand(host()
+ .getEditingDomain(), createdViews, host());
+ executeCommand(new ICommandProxy(layoutCmd));
+ }
+
+ makeViewsImmutable(createdViews);
+ }
+}
diff --git a/org.eclipse.emf.refactor.comrel.diagram/src/comrel/diagram/edit/policies/MultiFeatureUnit4ItemSemanticEditPolicy.java b/org.eclipse.emf.refactor.comrel.diagram/src/comrel/diagram/edit/policies/MultiFeatureUnit4ItemSemanticEditPolicy.java
new file mode 100644
index 0000000..55f2de7
--- /dev/null
+++ b/org.eclipse.emf.refactor.comrel.diagram/src/comrel/diagram/edit/policies/MultiFeatureUnit4ItemSemanticEditPolicy.java
@@ -0,0 +1,196 @@
+/*
+ *
+ */
+package comrel.diagram.edit.policies;
+
+import java.util.Iterator;
+
+import org.eclipse.emf.ecore.EAnnotation;
+import org.eclipse.gef.commands.Command;
+import org.eclipse.gmf.runtime.common.core.command.ICompositeCommand;
+import org.eclipse.gmf.runtime.diagram.core.commands.DeleteCommand;
+import org.eclipse.gmf.runtime.emf.commands.core.command.CompositeTransactionalCommand;
+import org.eclipse.gmf.runtime.emf.type.core.commands.DestroyElementCommand;
+import org.eclipse.gmf.runtime.emf.type.core.requests.CreateElementRequest;
+import org.eclipse.gmf.runtime.emf.type.core.requests.DestroyElementRequest;
+import org.eclipse.gmf.runtime.notation.Edge;
+import org.eclipse.gmf.runtime.notation.Node;
+import org.eclipse.gmf.runtime.notation.View;
+
+import comrel.diagram.edit.commands.MultiInputPort4CreateCommand;
+import comrel.diagram.edit.commands.MultiOutputPortCreateCommand;
+import comrel.diagram.edit.commands.SingleInputPort5CreateCommand;
+import comrel.diagram.edit.parts.MultiInputPort4EditPart;
+import comrel.diagram.edit.parts.MultiOutputPortEditPart;
+import comrel.diagram.edit.parts.MultiPortMappingEditPart;
+import comrel.diagram.edit.parts.MultiSinglePortMappingEditPart;
+import comrel.diagram.edit.parts.SingleInputPort5EditPart;
+import comrel.diagram.edit.parts.SinglePortMappingEditPart;
+import comrel.diagram.part.ComrelVisualIDRegistry;
+import comrel.diagram.providers.ComrelElementTypes;
+
+/**
+ * @generated
+ */
+public class MultiFeatureUnit4ItemSemanticEditPolicy extends
+ ComrelBaseItemSemanticEditPolicy {
+
+ /**
+ * @generated
+ */
+ public MultiFeatureUnit4ItemSemanticEditPolicy() {
+ super(ComrelElementTypes.MultiFeatureUnit_3056);
+ }
+
+ /**
+ * @generated
+ */
+ protected Command getCreateCommand(CreateElementRequest req) {
+ if (ComrelElementTypes.SingleInputPort_3013 == req.getElementType()) {
+ return getGEFWrapper(new SingleInputPort5CreateCommand(req));
+ }
+ if (ComrelElementTypes.MultiInputPort_3014 == req.getElementType()) {
+ return getGEFWrapper(new MultiInputPort4CreateCommand(req));
+ }
+ if (ComrelElementTypes.MultiOutputPort_3015 == req.getElementType()) {
+ return getGEFWrapper(new MultiOutputPortCreateCommand(req));
+ }
+ return super.getCreateCommand(req);
+ }
+
+ /**
+ * @generated
+ */
+ protected Command getDestroyElementCommand(DestroyElementRequest req) {
+ View view = (View) getHost().getModel();
+ CompositeTransactionalCommand cmd = new CompositeTransactionalCommand(
+ getEditingDomain(), null);
+ cmd.setTransactionNestingEnabled(false);
+ EAnnotation annotation = view.getEAnnotation("Shortcut"); //$NON-NLS-1$
+ if (annotation == null) {
+ // there are indirectly referenced children, need extra commands: false
+ addDestroyChildNodesCommand(cmd);
+ addDestroyShortcutsCommand(cmd, view);
+ // delete host element
+ cmd.add(new DestroyElementCommand(req));
+ } else {
+ cmd.add(new DeleteCommand(getEditingDomain(), view));
+ }
+ return getGEFWrapper(cmd.reduce());
+ }
+
+ /**
+ * @generated
+ */
+ private void addDestroyChildNodesCommand(ICompositeCommand cmd) {
+ View view = (View) getHost().getModel();
+ for (Iterator<?> nit = view.getChildren().iterator(); nit.hasNext();) {
+ Node node = (Node) nit.next();
+ switch (ComrelVisualIDRegistry.getVisualID(node)) {
+ case SingleInputPort5EditPart.VISUAL_ID:
+ for (Iterator<?> it = node.getTargetEdges().iterator(); it
+ .hasNext();) {
+ Edge incomingLink = (Edge) it.next();
+ if (ComrelVisualIDRegistry.getVisualID(incomingLink) == SinglePortMappingEditPart.VISUAL_ID) {
+ DestroyElementRequest r = new DestroyElementRequest(
+ incomingLink.getElement(), false);
+ cmd.add(new DestroyElementCommand(r));
+ cmd.add(new DeleteCommand(getEditingDomain(),
+ incomingLink));
+ continue;
+ }
+ if (ComrelVisualIDRegistry.getVisualID(incomingLink) == MultiSinglePortMappingEditPart.VISUAL_ID) {
+ DestroyElementRequest r = new DestroyElementRequest(
+ incomingLink.getElement(), false);
+ cmd.add(new DestroyElementCommand(r));
+ cmd.add(new DeleteCommand(getEditingDomain(),
+ incomingLink));
+ continue;
+ }
+ }
+ for (Iterator<?> it = node.getSourceEdges().iterator(); it
+ .hasNext();) {
+ Edge outgoingLink = (Edge) it.next();
+ if (ComrelVisualIDRegistry.getVisualID(outgoingLink) == SinglePortMappingEditPart.VISUAL_ID) {
+ DestroyElementRequest r = new DestroyElementRequest(
+ outgoingLink.getElement(), false);
+ cmd.add(new DestroyElementCommand(r));
+ cmd.add(new DeleteCommand(getEditingDomain(),
+ outgoingLink));
+ continue;
+ }
+ }
+ cmd.add(new DestroyElementCommand(new DestroyElementRequest(
+ getEditingDomain(), node.getElement(), false))); // directlyOwned: true
+ // don't need explicit deletion of node as parent's view deletion would clean child views as well
+ // cmd.add(new org.eclipse.gmf.runtime.diagram.core.commands.DeleteCommand(getEditingDomain(), node));
+ break;
+ case MultiInputPort4EditPart.VISUAL_ID:
+ for (Iterator<?> it = node.getTargetEdges().iterator(); it
+ .hasNext();) {
+ Edge incomingLink = (Edge) it.next();
+ if (ComrelVisualIDRegistry.getVisualID(incomingLink) == MultiPortMappingEditPart.VISUAL_ID) {
+ DestroyElementRequest r = new DestroyElementRequest(
+ incomingLink.getElement(), false);
+ cmd.add(new DestroyElementCommand(r));
+ cmd.add(new DeleteCommand(getEditingDomain(),
+ incomingLink));
+ continue;
+ }
+ }
+ for (Iterator<?> it = node.getSourceEdges().iterator(); it
+ .hasNext();) {
+ Edge outgoingLink = (Edge) it.next();
+ if (ComrelVisualIDRegistry.getVisualID(outgoingLink) == MultiPortMappingEditPart.VISUAL_ID) {
+ DestroyElementRequest r = new DestroyElementRequest(
+ outgoingLink.getElement(), false);
+ cmd.add(new DestroyElementCommand(r));
+ cmd.add(new DeleteCommand(getEditingDomain(),
+ outgoingLink));
+ continue;
+ }
+ if (ComrelVisualIDRegistry.getVisualID(outgoingLink) == MultiSinglePortMappingEditPart.VISUAL_ID) {
+ DestroyElementRequest r = new DestroyElementRequest(
+ outgoingLink.getElement(), false);
+ cmd.add(new DestroyElementCommand(r));
+ cmd.add(new DeleteCommand(getEditingDomain(),
+ outgoingLink));
+ continue;
+ }
+ }
+ cmd.add(new DestroyElementCommand(new DestroyElementRequest(
+ getEditingDomain(), node.getElement(), false))); // directlyOwned: true
+ // don't need explicit deletion of node as parent's view deletion would clean child views as well
+ // cmd.add(new org.eclipse.gmf.runtime.diagram.core.commands.DeleteCommand(getEditingDomain(), node));
+ break;
+ case MultiOutputPortEditPart.VISUAL_ID:
+ for (Iterator<?> it = node.getSourceEdges().iterator(); it
+ .hasNext();) {
+ Edge outgoingLink = (Edge) it.next();
+ if (ComrelVisualIDRegistry.getVisualID(outgoingLink) == MultiPortMappingEditPart.VISUAL_ID) {
+ DestroyElementRequest r = new DestroyElementRequest(
+ outgoingLink.getElement(), false);
+ cmd.add(new DestroyElementCommand(r));
+ cmd.add(new DeleteCommand(getEditingDomain(),
+ outgoingLink));
+ continue;
+ }
+ if (ComrelVisualIDRegistry.getVisualID(outgoingLink) == MultiSinglePortMappingEditPart.VISUAL_ID) {
+ DestroyElementRequest r = new DestroyElementRequest(
+ outgoingLink.getElement(), false);
+ cmd.add(new DestroyElementCommand(r));
+ cmd.add(new DeleteCommand(getEditingDomain(),
+ outgoingLink));
+ continue;
+ }
+ }
+ cmd.add(new DestroyElementCommand(new DestroyElementRequest(
+ getEditingDomain(), node.getElement(), false))); // directlyOwned: true
+ // don't need explicit deletion of node as parent's view deletion would clean child views as well
+ // cmd.add(new org.eclipse.gmf.runtime.diagram.core.commands.DeleteCommand(getEditingDomain(), node));
+ break;
+ }
+ }
+ }
+
+}
diff --git a/org.eclipse.emf.refactor.comrel.diagram/src/comrel/diagram/edit/policies/MultiFeatureUnit5CanonicalEditPolicy.java b/org.eclipse.emf.refactor.comrel.diagram/src/comrel/diagram/edit/policies/MultiFeatureUnit5CanonicalEditPolicy.java
new file mode 100644
index 0000000..4b24cde
--- /dev/null
+++ b/org.eclipse.emf.refactor.comrel.diagram/src/comrel/diagram/edit/policies/MultiFeatureUnit5CanonicalEditPolicy.java
@@ -0,0 +1,182 @@
+/*
+ *
+ */
+package comrel.diagram.edit.policies;
+
+import java.util.ArrayList;
+import java.util.Collection;
+import java.util.HashSet;
+import java.util.Iterator;
+import java.util.LinkedList;
+import java.util.List;
+import java.util.Set;
+
+import org.eclipse.core.runtime.IAdaptable;
+import org.eclipse.emf.ecore.EObject;
+import org.eclipse.emf.ecore.EStructuralFeature;
+import org.eclipse.gef.commands.Command;
+import org.eclipse.gmf.runtime.diagram.core.util.ViewUtil;
+import org.eclipse.gmf.runtime.diagram.ui.commands.DeferredLayoutCommand;
+import org.eclipse.gmf.runtime.diagram.ui.commands.ICommandProxy;
+import org.eclipse.gmf.runtime.diagram.ui.commands.SetViewMutabilityCommand;
+import org.eclipse.gmf.runtime.diagram.ui.editpolicies.CanonicalEditPolicy;
+import org.eclipse.gmf.runtime.diagram.ui.requests.CreateViewRequest;
+import org.eclipse.gmf.runtime.emf.core.util.EObjectAdapter;
+import org.eclipse.gmf.runtime.notation.Node;
+import org.eclipse.gmf.runtime.notation.View;
+
+import comrel.ComrelPackage;
+import comrel.diagram.edit.parts.MultiInputPort4EditPart;
+import comrel.diagram.edit.parts.MultiOutputPortEditPart;
+import comrel.diagram.edit.parts.SingleInputPort5EditPart;
+import comrel.diagram.part.ComrelDiagramUpdater;
+import comrel.diagram.part.ComrelNodeDescriptor;
+import comrel.diagram.part.ComrelVisualIDRegistry;
+
+/**
+ * @generated
+ */
+public class MultiFeatureUnit5CanonicalEditPolicy extends CanonicalEditPolicy {
+
+ /**
+ * @generated
+ */
+ private Set<EStructuralFeature> myFeaturesToSynchronize;
+
+ /**
+ * @generated
+ */
+ protected Set getFeaturesToSynchronize() {
+ if (myFeaturesToSynchronize == null) {
+ myFeaturesToSynchronize = new HashSet<EStructuralFeature>();
+ myFeaturesToSynchronize.add(ComrelPackage.eINSTANCE
+ .getMultiFeatureUnit_InputPort());
+ myFeaturesToSynchronize.add(ComrelPackage.eINSTANCE
+ .getMultiFeatureUnit_SecondaryInputPorts());
+ myFeaturesToSynchronize.add(ComrelPackage.eINSTANCE
+ .getMultiFeatureUnit_OutputPort());
+ }
+ return myFeaturesToSynchronize;
+ }
+
+ /**
+ * @generated
+ */
+ @SuppressWarnings("rawtypes")
+ protected List getSemanticChildrenList() {
+ View viewObject = (View) getHost().getModel();
+ LinkedList<EObject> result = new LinkedList<EObject>();
+ List<ComrelNodeDescriptor> childDescriptors = ComrelDiagramUpdater
+ .getMultiFeatureUnit_3062SemanticChildren(viewObject);
+ for (ComrelNodeDescriptor d : childDescriptors) {
+ result.add(d.getModelElement());
+ }
+ return result;
+ }
+
+ /**
+ * @generated
+ */
+ protected boolean isOrphaned(Collection<EObject> semanticChildren,
+ final View view) {
+ return isMyDiagramElement(view)
+ && !semanticChildren.contains(view.getElement());
+ }
+
+ /**
+ * @generated
+ */
+ private boolean isMyDiagramElement(View view) {
+ int visualID = ComrelVisualIDRegistry.getVisualID(view);
+ return visualID == SingleInputPort5EditPart.VISUAL_ID
+ || visualID == MultiInputPort4EditPart.VISUAL_ID
+ || visualID == MultiOutputPortEditPart.VISUAL_ID;
+ }
+
+ /**
+ * @generated
+ */
+ protected void refreshSemantic() {
+ if (resolveSemanticElement() == null) {
+ return;
+ }
+ LinkedList<IAdaptable> createdViews = new LinkedList<IAdaptable>();
+ List<ComrelNodeDescriptor> childDescriptors = ComrelDiagramUpdater
+ .getMultiFeatureUnit_3062SemanticChildren((View) getHost()
+ .getModel());
+ LinkedList<View> orphaned = new LinkedList<View>();
+ // we care to check only views we recognize as ours
+ LinkedList<View> knownViewChildren = new LinkedList<View>();
+ for (View v : getViewChildren()) {
+ if (isMyDiagramElement(v)) {
+ knownViewChildren.add(v);
+ }
+ }
+ // alternative to #cleanCanonicalSemanticChildren(getViewChildren(), semanticChildren)
+ //
+ // iteration happens over list of desired semantic elements, trying to find best matching View, while original CEP
+ // iterates views, potentially losing view (size/bounds) information - i.e. if there are few views to reference same EObject, only last one
+ // to answer isOrphaned == true will be used for the domain element representation, see #cleanCanonicalSemanticChildren()
+ for (Iterator<ComrelNodeDescriptor> descriptorsIterator = childDescriptors
+ .iterator(); descriptorsIterator.hasNext();) {
+ ComrelNodeDescriptor next = descriptorsIterator.next();
+ String hint = ComrelVisualIDRegistry.getType(next.getVisualID());
+ LinkedList<View> perfectMatch = new LinkedList<View>(); // both semanticElement and hint match that of NodeDescriptor
+ for (View childView : getViewChildren()) {
+ EObject semanticElement = childView.getElement();
+ if (next.getModelElement().equals(semanticElement)) {
+ if (hint.equals(childView.getType())) {
+ perfectMatch.add(childView);
+ // actually, can stop iteration over view children here, but
+ // may want to use not the first view but last one as a 'real' match (the way original CEP does
+ // with its trick with viewToSemanticMap inside #cleanCanonicalSemanticChildren
+ }
+ }
+ }
+ if (perfectMatch.size() > 0) {
+ descriptorsIterator.remove(); // precise match found no need to create anything for the NodeDescriptor
+ // use only one view (first or last?), keep rest as orphaned for further consideration
+ knownViewChildren.remove(perfectMatch.getFirst());
+ }
+ }
+ // those left in knownViewChildren are subject to removal - they are our diagram elements we didn't find match to,
+ // or those we have potential matches to, and thus need to be recreated, preserving size/location information.
+ orphaned.addAll(knownViewChildren);
+ //
+ ArrayList<CreateViewRequest.ViewDescriptor> viewDescriptors = new ArrayList<CreateViewRequest.ViewDescriptor>(
+ childDescriptors.size());
+ for (ComrelNodeDescriptor next : childDescriptors) {
+ String hint = ComrelVisualIDRegistry.getType(next.getVisualID());
+ IAdaptable elementAdapter = new CanonicalElementAdapter(
+ next.getModelElement(), hint);
+ CreateViewRequest.ViewDescriptor descriptor = new CreateViewRequest.ViewDescriptor(
+ elementAdapter, Node.class, hint, ViewUtil.APPEND, false,
+ host().getDiagramPreferencesHint());
+ viewDescriptors.add(descriptor);
+ }
+
+ boolean changed = deleteViews(orphaned.iterator());
+ //
+ CreateViewRequest request = getCreateViewRequest(viewDescriptors);
+ Command cmd = getCreateViewCommand(request);
+ if (cmd != null && cmd.canExecute()) {
+ SetViewMutabilityCommand.makeMutable(
+ new EObjectAdapter(host().getNotationView())).execute();
+ executeCommand(cmd);
+ @SuppressWarnings("unchecked")
+ List<IAdaptable> nl = (List<IAdaptable>) request.getNewObject();
+ createdViews.addAll(nl);
+ }
+ if (changed || createdViews.size() > 0) {
+ postProcessRefreshSemantic(createdViews);
+ }
+ if (createdViews.size() > 1) {
+ // perform a layout of the container
+ DeferredLayoutCommand layoutCmd = new DeferredLayoutCommand(host()
+ .getEditingDomain(), createdViews, host());
+ executeCommand(new ICommandProxy(layoutCmd));
+ }
+
+ makeViewsImmutable(createdViews);
+ }
+}
diff --git a/org.eclipse.emf.refactor.comrel.diagram/src/comrel/diagram/edit/policies/MultiFeatureUnit5ItemSemanticEditPolicy.java b/org.eclipse.emf.refactor.comrel.diagram/src/comrel/diagram/edit/policies/MultiFeatureUnit5ItemSemanticEditPolicy.java
new file mode 100644
index 0000000..0cd3a42
--- /dev/null
+++ b/org.eclipse.emf.refactor.comrel.diagram/src/comrel/diagram/edit/policies/MultiFeatureUnit5ItemSemanticEditPolicy.java
@@ -0,0 +1,196 @@
+/*
+ *
+ */
+package comrel.diagram.edit.policies;
+
+import java.util.Iterator;
+
+import org.eclipse.emf.ecore.EAnnotation;
+import org.eclipse.gef.commands.Command;
+import org.eclipse.gmf.runtime.common.core.command.ICompositeCommand;
+import org.eclipse.gmf.runtime.diagram.core.commands.DeleteCommand;
+import org.eclipse.gmf.runtime.emf.commands.core.command.CompositeTransactionalCommand;
+import org.eclipse.gmf.runtime.emf.type.core.commands.DestroyElementCommand;
+import org.eclipse.gmf.runtime.emf.type.core.requests.CreateElementRequest;
+import org.eclipse.gmf.runtime.emf.type.core.requests.DestroyElementRequest;
+import org.eclipse.gmf.runtime.notation.Edge;
+import org.eclipse.gmf.runtime.notation.Node;
+import org.eclipse.gmf.runtime.notation.View;
+
+import comrel.diagram.edit.commands.MultiInputPort4CreateCommand;
+import comrel.diagram.edit.commands.MultiOutputPortCreateCommand;
+import comrel.diagram.edit.commands.SingleInputPort5CreateCommand;
+import comrel.diagram.edit.parts.MultiInputPort4EditPart;
+import comrel.diagram.edit.parts.MultiOutputPortEditPart;
+import comrel.diagram.edit.parts.MultiPortMappingEditPart;
+import comrel.diagram.edit.parts.MultiSinglePortMappingEditPart;
+import comrel.diagram.edit.parts.SingleInputPort5EditPart;
+import comrel.diagram.edit.parts.SinglePortMappingEditPart;
+import comrel.diagram.part.ComrelVisualIDRegistry;
+import comrel.diagram.providers.ComrelElementTypes;
+
+/**
+ * @generated
+ */
+public class MultiFeatureUnit5ItemSemanticEditPolicy extends
+ ComrelBaseItemSemanticEditPolicy {
+
+ /**
+ * @generated
+ */
+ public MultiFeatureUnit5ItemSemanticEditPolicy() {
+ super(ComrelElementTypes.MultiFeatureUnit_3062);
+ }
+
+ /**
+ * @generated
+ */
+ protected Command getCreateCommand(CreateElementRequest req) {
+ if (ComrelElementTypes.SingleInputPort_3013 == req.getElementType()) {
+ return getGEFWrapper(new SingleInputPort5CreateCommand(req));
+ }
+ if (ComrelElementTypes.MultiInputPort_3014 == req.getElementType()) {
+ return getGEFWrapper(new MultiInputPort4CreateCommand(req));
+ }
+ if (ComrelElementTypes.MultiOutputPort_3015 == req.getElementType()) {
+ return getGEFWrapper(new MultiOutputPortCreateCommand(req));
+ }
+ return super.getCreateCommand(req);
+ }
+
+ /**
+ * @generated
+ */
+ protected Command getDestroyElementCommand(DestroyElementRequest req) {
+ View view = (View) getHost().getModel();
+ CompositeTransactionalCommand cmd = new CompositeTransactionalCommand(
+ getEditingDomain(), null);
+ cmd.setTransactionNestingEnabled(false);
+ EAnnotation annotation = view.getEAnnotation("Shortcut"); //$NON-NLS-1$
+ if (annotation == null) {
+ // there are indirectly referenced children, need extra commands: false
+ addDestroyChildNodesCommand(cmd);
+ addDestroyShortcutsCommand(cmd, view);
+ // delete host element
+ cmd.add(new DestroyElementCommand(req));
+ } else {
+ cmd.add(new DeleteCommand(getEditingDomain(), view));
+ }
+ return getGEFWrapper(cmd.reduce());
+ }
+
+ /**
+ * @generated
+ */
+ private void addDestroyChildNodesCommand(ICompositeCommand cmd) {
+ View view = (View) getHost().getModel();
+ for (Iterator<?> nit = view.getChildren().iterator(); nit.hasNext();) {
+ Node node = (Node) nit.next();
+ switch (ComrelVisualIDRegistry.getVisualID(node)) {
+ case SingleInputPort5EditPart.VISUAL_ID:
+ for (Iterator<?> it = node.getTargetEdges().iterator(); it
+ .hasNext();) {
+ Edge incomingLink = (Edge) it.next();
+ if (ComrelVisualIDRegistry.getVisualID(incomingLink) == SinglePortMappingEditPart.VISUAL_ID) {
+ DestroyElementRequest r = new DestroyElementRequest(
+ incomingLink.getElement(), false);
+ cmd.add(new DestroyElementCommand(r));
+ cmd.add(new DeleteCommand(getEditingDomain(),
+ incomingLink));
+ continue;
+ }
+ if (ComrelVisualIDRegistry.getVisualID(incomingLink) == MultiSinglePortMappingEditPart.VISUAL_ID) {
+ DestroyElementRequest r = new DestroyElementRequest(
+ incomingLink.getElement(), false);
+ cmd.add(new DestroyElementCommand(r));
+ cmd.add(new DeleteCommand(getEditingDomain(),
+ incomingLink));
+ continue;
+ }
+ }
+ for (Iterator<?> it = node.getSourceEdges().iterator(); it
+ .hasNext();) {
+ Edge outgoingLink = (Edge) it.next();
+ if (ComrelVisualIDRegistry.getVisualID(outgoingLink) == SinglePortMappingEditPart.VISUAL_ID) {
+ DestroyElementRequest r = new DestroyElementRequest(
+ outgoingLink.getElement(), false);
+ cmd.add(new DestroyElementCommand(r));
+ cmd.add(new DeleteCommand(getEditingDomain(),
+ outgoingLink));
+ continue;
+ }
+ }
+ cmd.add(new DestroyElementCommand(new DestroyElementRequest(
+ getEditingDomain(), node.getElement(), false))); // directlyOwned: true
+ // don't need explicit deletion of node as parent's view deletion would clean child views as well
+ // cmd.add(new org.eclipse.gmf.runtime.diagram.core.commands.DeleteCommand(getEditingDomain(), node));
+ break;
+ case MultiInputPort4EditPart.VISUAL_ID:
+ for (Iterator<?> it = node.getTargetEdges().iterator(); it
+ .hasNext();) {
+ Edge incomingLink = (Edge) it.next();
+ if (ComrelVisualIDRegistry.getVisualID(incomingLink) == MultiPortMappingEditPart.VISUAL_ID) {
+ DestroyElementRequest r = new DestroyElementRequest(
+ incomingLink.getElement(), false);
+ cmd.add(new DestroyElementCommand(r));
+ cmd.add(new DeleteCommand(getEditingDomain(),
+ incomingLink));
+ continue;
+ }
+ }
+ for (Iterator<?> it = node.getSourceEdges().iterator(); it
+ .hasNext();) {
+ Edge outgoingLink = (Edge) it.next();
+ if (ComrelVisualIDRegistry.getVisualID(outgoingLink) == MultiPortMappingEditPart.VISUAL_ID) {
+ DestroyElementRequest r = new DestroyElementRequest(
+ outgoingLink.getElement(), false);
+ cmd.add(new DestroyElementCommand(r));
+ cmd.add(new DeleteCommand(getEditingDomain(),
+ outgoingLink));
+ continue;
+ }
+ if (ComrelVisualIDRegistry.getVisualID(outgoingLink) == MultiSinglePortMappingEditPart.VISUAL_ID) {
+ DestroyElementRequest r = new DestroyElementRequest(
+ outgoingLink.getElement(), false);
+ cmd.add(new DestroyElementCommand(r));
+ cmd.add(new DeleteCommand(getEditingDomain(),
+ outgoingLink));
+ continue;
+ }
+ }
+ cmd.add(new DestroyElementCommand(new DestroyElementRequest(
+ getEditingDomain(), node.getElement(), false))); // directlyOwned: true
+ // don't need explicit deletion of node as parent's view deletion would clean child views as well
+ // cmd.add(new org.eclipse.gmf.runtime.diagram.core.commands.DeleteCommand(getEditingDomain(), node));
+ break;
+ case MultiOutputPortEditPart.VISUAL_ID:
+ for (Iterator<?> it = node.getSourceEdges().iterator(); it
+ .hasNext();) {
+ Edge outgoingLink = (Edge) it.next();
+ if (ComrelVisualIDRegistry.getVisualID(outgoingLink) == MultiPortMappingEditPart.VISUAL_ID) {
+ DestroyElementRequest r = new DestroyElementRequest(
+ outgoingLink.getElement(), false);
+ cmd.add(new DestroyElementCommand(r));
+ cmd.add(new DeleteCommand(getEditingDomain(),
+ outgoingLink));
+ continue;
+ }
+ if (ComrelVisualIDRegistry.getVisualID(outgoingLink) == MultiSinglePortMappingEditPart.VISUAL_ID) {
+ DestroyElementRequest r = new DestroyElementRequest(
+ outgoingLink.getElement(), false);
+ cmd.add(new DestroyElementCommand(r));
+ cmd.add(new DeleteCommand(getEditingDomain(),
+ outgoingLink));
+ continue;
+ }
+ }
+ cmd.add(new DestroyElementCommand(new DestroyElementRequest(
+ getEditingDomain(), node.getElement(), false))); // directlyOwned: true
+ // don't need explicit deletion of node as parent's view deletion would clean child views as well
+ // cmd.add(new org.eclipse.gmf.runtime.diagram.core.commands.DeleteCommand(getEditingDomain(), node));
+ break;
+ }
+ }
+ }
+
+}
diff --git a/org.eclipse.emf.refactor.comrel.diagram/src/comrel/diagram/edit/policies/MultiFeatureUnitCanonicalEditPolicy.java b/org.eclipse.emf.refactor.comrel.diagram/src/comrel/diagram/edit/policies/MultiFeatureUnitCanonicalEditPolicy.java
new file mode 100644
index 0000000..d99c3aa
--- /dev/null
+++ b/org.eclipse.emf.refactor.comrel.diagram/src/comrel/diagram/edit/policies/MultiFeatureUnitCanonicalEditPolicy.java
@@ -0,0 +1,182 @@
+/*
+ *
+ */
+package comrel.diagram.edit.policies;
+
+import java.util.ArrayList;
+import java.util.Collection;
+import java.util.HashSet;
+import java.util.Iterator;
+import java.util.LinkedList;
+import java.util.List;
+import java.util.Set;
+
+import org.eclipse.core.runtime.IAdaptable;
+import org.eclipse.emf.ecore.EObject;
+import org.eclipse.emf.ecore.EStructuralFeature;
+import org.eclipse.gef.commands.Command;
+import org.eclipse.gmf.runtime.diagram.core.util.ViewUtil;
+import org.eclipse.gmf.runtime.diagram.ui.commands.DeferredLayoutCommand;
+import org.eclipse.gmf.runtime.diagram.ui.commands.ICommandProxy;
+import org.eclipse.gmf.runtime.diagram.ui.commands.SetViewMutabilityCommand;
+import org.eclipse.gmf.runtime.diagram.ui.editpolicies.CanonicalEditPolicy;
+import org.eclipse.gmf.runtime.diagram.ui.requests.CreateViewRequest;
+import org.eclipse.gmf.runtime.emf.core.util.EObjectAdapter;
+import org.eclipse.gmf.runtime.notation.Node;
+import org.eclipse.gmf.runtime.notation.View;
+
+import comrel.ComrelPackage;
+import comrel.diagram.edit.parts.MultiInputPort4EditPart;
+import comrel.diagram.edit.parts.MultiOutputPortEditPart;
+import comrel.diagram.edit.parts.SingleInputPort5EditPart;
+import comrel.diagram.part.ComrelDiagramUpdater;
+import comrel.diagram.part.ComrelNodeDescriptor;
+import comrel.diagram.part.ComrelVisualIDRegistry;
+
+/**
+ * @generated
+ */
+public class MultiFeatureUnitCanonicalEditPolicy extends CanonicalEditPolicy {
+
+ /**
+ * @generated
+ */
+ private Set<EStructuralFeature> myFeaturesToSynchronize;
+
+ /**
+ * @generated
+ */
+ protected Set getFeaturesToSynchronize() {
+ if (myFeaturesToSynchronize == null) {
+ myFeaturesToSynchronize = new HashSet<EStructuralFeature>();
+ myFeaturesToSynchronize.add(ComrelPackage.eINSTANCE
+ .getMultiFeatureUnit_InputPort());
+ myFeaturesToSynchronize.add(ComrelPackage.eINSTANCE
+ .getMultiFeatureUnit_SecondaryInputPorts());
+ myFeaturesToSynchronize.add(ComrelPackage.eINSTANCE
+ .getMultiFeatureUnit_OutputPort());
+ }
+ return myFeaturesToSynchronize;
+ }
+
+ /**
+ * @generated
+ */
+ @SuppressWarnings("rawtypes")
+ protected List getSemanticChildrenList() {
+ View viewObject = (View) getHost().getModel();
+ LinkedList<EObject> result = new LinkedList<EObject>();
+ List<ComrelNodeDescriptor> childDescriptors = ComrelDiagramUpdater
+ .getMultiFeatureUnit_3012SemanticChildren(viewObject);
+ for (ComrelNodeDescriptor d : childDescriptors) {
+ result.add(d.getModelElement());
+ }
+ return result;
+ }
+
+ /**
+ * @generated
+ */
+ protected boolean isOrphaned(Collection<EObject> semanticChildren,
+ final View view) {
+ return isMyDiagramElement(view)
+ && !semanticChildren.contains(view.getElement());
+ }
+
+ /**
+ * @generated
+ */
+ private boolean isMyDiagramElement(View view) {
+ int visualID = ComrelVisualIDRegistry.getVisualID(view);
+ return visualID == SingleInputPort5EditPart.VISUAL_ID
+ || visualID == MultiInputPort4EditPart.VISUAL_ID
+ || visualID == MultiOutputPortEditPart.VISUAL_ID;
+ }
+
+ /**
+ * @generated
+ */
+ protected void refreshSemantic() {
+ if (resolveSemanticElement() == null) {
+ return;
+ }
+ LinkedList<IAdaptable> createdViews = new LinkedList<IAdaptable>();
+ List<ComrelNodeDescriptor> childDescriptors = ComrelDiagramUpdater
+ .getMultiFeatureUnit_3012SemanticChildren((View) getHost()
+ .getModel());
+ LinkedList<View> orphaned = new LinkedList<View>();
+ // we care to check only views we recognize as ours
+ LinkedList<View> knownViewChildren = new LinkedList<View>();
+ for (View v : getViewChildren()) {
+ if (isMyDiagramElement(v)) {
+ knownViewChildren.add(v);
+ }
+ }
+ // alternative to #cleanCanonicalSemanticChildren(getViewChildren(), semanticChildren)
+ //
+ // iteration happens over list of desired semantic elements, trying to find best matching View, while original CEP
+ // iterates views, potentially losing view (size/bounds) information - i.e. if there are few views to reference same EObject, only last one
+ // to answer isOrphaned == true will be used for the domain element representation, see #cleanCanonicalSemanticChildren()
+ for (Iterator<ComrelNodeDescriptor> descriptorsIterator = childDescriptors
+ .iterator(); descriptorsIterator.hasNext();) {
+ ComrelNodeDescriptor next = descriptorsIterator.next();
+ String hint = ComrelVisualIDRegistry.getType(next.getVisualID());
+ LinkedList<View> perfectMatch = new LinkedList<View>(); // both semanticElement and hint match that of NodeDescriptor
+ for (View childView : getViewChildren()) {
+ EObject semanticElement = childView.getElement();
+ if (next.getModelElement().equals(semanticElement)) {
+ if (hint.equals(childView.getType())) {
+ perfectMatch.add(childView);
+ // actually, can stop iteration over view children here, but
+ // may want to use not the first view but last one as a 'real' match (the way original CEP does
+ // with its trick with viewToSemanticMap inside #cleanCanonicalSemanticChildren
+ }
+ }
+ }
+ if (perfectMatch.size() > 0) {
+ descriptorsIterator.remove(); // precise match found no need to create anything for the NodeDescriptor
+ // use only one view (first or last?), keep rest as orphaned for further consideration
+ knownViewChildren.remove(perfectMatch.getFirst());
+ }
+ }
+ // those left in knownViewChildren are subject to removal - they are our diagram elements we didn't find match to,
+ // or those we have potential matches to, and thus need to be recreated, preserving size/location information.
+ orphaned.addAll(knownViewChildren);
+ //
+ ArrayList<CreateViewRequest.ViewDescriptor> viewDescriptors = new ArrayList<CreateViewRequest.ViewDescriptor>(
+ childDescriptors.size());
+ for (ComrelNodeDescriptor next : childDescriptors) {
+ String hint = ComrelVisualIDRegistry.getType(next.getVisualID());
+ IAdaptable elementAdapter = new CanonicalElementAdapter(
+ next.getModelElement(), hint);
+ CreateViewRequest.ViewDescriptor descriptor = new CreateViewRequest.ViewDescriptor(
+ elementAdapter, Node.class, hint, ViewUtil.APPEND, false,
+ host().getDiagramPreferencesHint());
+ viewDescriptors.add(descriptor);
+ }
+
+ boolean changed = deleteViews(orphaned.iterator());
+ //
+ CreateViewRequest request = getCreateViewRequest(viewDescriptors);
+ Command cmd = getCreateViewCommand(request);
+ if (cmd != null && cmd.canExecute()) {
+ SetViewMutabilityCommand.makeMutable(
+ new EObjectAdapter(host().getNotationView())).execute();
+ executeCommand(cmd);
+ @SuppressWarnings("unchecked")
+ List<IAdaptable> nl = (List<IAdaptable>) request.getNewObject();
+ createdViews.addAll(nl);
+ }
+ if (changed || createdViews.size() > 0) {
+ postProcessRefreshSemantic(createdViews);
+ }
+ if (createdViews.size() > 1) {
+ // perform a layout of the container
+ DeferredLayoutCommand layoutCmd = new DeferredLayoutCommand(host()
+ .getEditingDomain(), createdViews, host());
+ executeCommand(new ICommandProxy(layoutCmd));
+ }
+
+ makeViewsImmutable(createdViews);
+ }
+}
diff --git a/org.eclipse.emf.refactor.comrel.diagram/src/comrel/diagram/edit/policies/MultiFeatureUnitItemSemanticEditPolicy.java b/org.eclipse.emf.refactor.comrel.diagram/src/comrel/diagram/edit/policies/MultiFeatureUnitItemSemanticEditPolicy.java
new file mode 100644
index 0000000..6ced61c
--- /dev/null
+++ b/org.eclipse.emf.refactor.comrel.diagram/src/comrel/diagram/edit/policies/MultiFeatureUnitItemSemanticEditPolicy.java
@@ -0,0 +1,196 @@
+/*
+ *
+ */
+package comrel.diagram.edit.policies;
+
+import java.util.Iterator;
+
+import org.eclipse.emf.ecore.EAnnotation;
+import org.eclipse.gef.commands.Command;
+import org.eclipse.gmf.runtime.common.core.command.ICompositeCommand;
+import org.eclipse.gmf.runtime.diagram.core.commands.DeleteCommand;
+import org.eclipse.gmf.runtime.emf.commands.core.command.CompositeTransactionalCommand;
+import org.eclipse.gmf.runtime.emf.type.core.commands.DestroyElementCommand;
+import org.eclipse.gmf.runtime.emf.type.core.requests.CreateElementRequest;
+import org.eclipse.gmf.runtime.emf.type.core.requests.DestroyElementRequest;
+import org.eclipse.gmf.runtime.notation.Edge;
+import org.eclipse.gmf.runtime.notation.Node;
+import org.eclipse.gmf.runtime.notation.View;
+
+import comrel.diagram.edit.commands.MultiInputPort4CreateCommand;
+import comrel.diagram.edit.commands.MultiOutputPortCreateCommand;
+import comrel.diagram.edit.commands.SingleInputPort5CreateCommand;
+import comrel.diagram.edit.parts.MultiInputPort4EditPart;
+import comrel.diagram.edit.parts.MultiOutputPortEditPart;
+import comrel.diagram.edit.parts.MultiPortMappingEditPart;
+import comrel.diagram.edit.parts.MultiSinglePortMappingEditPart;
+import comrel.diagram.edit.parts.SingleInputPort5EditPart;
+import comrel.diagram.edit.parts.SinglePortMappingEditPart;
+import comrel.diagram.part.ComrelVisualIDRegistry;
+import comrel.diagram.providers.ComrelElementTypes;
+
+/**
+ * @generated
+ */
+public class MultiFeatureUnitItemSemanticEditPolicy extends
+ ComrelBaseItemSemanticEditPolicy {
+
+ /**
+ * @generated
+ */
+ public MultiFeatureUnitItemSemanticEditPolicy() {
+ super(ComrelElementTypes.MultiFeatureUnit_3012);
+ }
+
+ /**
+ * @generated
+ */
+ protected Command getCreateCommand(CreateElementRequest req) {
+ if (ComrelElementTypes.SingleInputPort_3013 == req.getElementType()) {
+ return getGEFWrapper(new SingleInputPort5CreateCommand(req));
+ }
+ if (ComrelElementTypes.MultiInputPort_3014 == req.getElementType()) {
+ return getGEFWrapper(new MultiInputPort4CreateCommand(req));
+ }
+ if (ComrelElementTypes.MultiOutputPort_3015 == req.getElementType()) {
+ return getGEFWrapper(new MultiOutputPortCreateCommand(req));
+ }
+ return super.getCreateCommand(req);
+ }
+
+ /**
+ * @generated
+ */
+ protected Command getDestroyElementCommand(DestroyElementRequest req) {
+ View view = (View) getHost().getModel();
+ CompositeTransactionalCommand cmd = new CompositeTransactionalCommand(
+ getEditingDomain(), null);
+ cmd.setTransactionNestingEnabled(false);
+ EAnnotation annotation = view.getEAnnotation("Shortcut"); //$NON-NLS-1$
+ if (annotation == null) {
+ // there are indirectly referenced children, need extra commands: false
+ addDestroyChildNodesCommand(cmd);
+ addDestroyShortcutsCommand(cmd, view);
+ // delete host element
+ cmd.add(new DestroyElementCommand(req));
+ } else {
+ cmd.add(new DeleteCommand(getEditingDomain(), view));
+ }
+ return getGEFWrapper(cmd.reduce());
+ }
+
+ /**
+ * @generated
+ */
+ private void addDestroyChildNodesCommand(ICompositeCommand cmd) {
+ View view = (View) getHost().getModel();
+ for (Iterator<?> nit = view.getChildren().iterator(); nit.hasNext();) {
+ Node node = (Node) nit.next();
+ switch (ComrelVisualIDRegistry.getVisualID(node)) {
+ case SingleInputPort5EditPart.VISUAL_ID:
+ for (Iterator<?> it = node.getTargetEdges().iterator(); it
+ .hasNext();) {
+ Edge incomingLink = (Edge) it.next();
+ if (ComrelVisualIDRegistry.getVisualID(incomingLink) == SinglePortMappingEditPart.VISUAL_ID) {
+ DestroyElementRequest r = new DestroyElementRequest(
+ incomingLink.getElement(), false);
+ cmd.add(new DestroyElementCommand(r));
+ cmd.add(new DeleteCommand(getEditingDomain(),
+ incomingLink));
+ continue;
+ }
+ if (ComrelVisualIDRegistry.getVisualID(incomingLink) == MultiSinglePortMappingEditPart.VISUAL_ID) {
+ DestroyElementRequest r = new DestroyElementRequest(
+ incomingLink.getElement(), false);
+ cmd.add(new DestroyElementCommand(r));
+ cmd.add(new DeleteCommand(getEditingDomain(),
+ incomingLink));
+ continue;
+ }
+ }
+ for (Iterator<?> it = node.getSourceEdges().iterator(); it
+ .hasNext();) {
+ Edge outgoingLink = (Edge) it.next();
+ if (ComrelVisualIDRegistry.getVisualID(outgoingLink) == SinglePortMappingEditPart.VISUAL_ID) {
+ DestroyElementRequest r = new DestroyElementRequest(
+ outgoingLink.getElement(), false);
+ cmd.add(new DestroyElementCommand(r));
+ cmd.add(new DeleteCommand(getEditingDomain(),
+ outgoingLink));
+ continue;
+ }
+ }
+ cmd.add(new DestroyElementCommand(new DestroyElementRequest(
+ getEditingDomain(), node.getElement(), false))); // directlyOwned: true
+ // don't need explicit deletion of node as parent's view deletion would clean child views as well
+ // cmd.add(new org.eclipse.gmf.runtime.diagram.core.commands.DeleteCommand(getEditingDomain(), node));
+ break;
+ case MultiInputPort4EditPart.VISUAL_ID:
+ for (Iterator<?> it = node.getTargetEdges().iterator(); it
+ .hasNext();) {
+ Edge incomingLink = (Edge) it.next();
+ if (ComrelVisualIDRegistry.getVisualID(incomingLink) == MultiPortMappingEditPart.VISUAL_ID) {
+ DestroyElementRequest r = new DestroyElementRequest(
+ incomingLink.getElement(), false);
+ cmd.add(new DestroyElementCommand(r));
+ cmd.add(new DeleteCommand(getEditingDomain(),
+ incomingLink));
+ continue;
+ }
+ }
+ for (Iterator<?> it = node.getSourceEdges().iterator(); it
+ .hasNext();) {
+ Edge outgoingLink = (Edge) it.next();
+ if (ComrelVisualIDRegistry.getVisualID(outgoingLink) == MultiPortMappingEditPart.VISUAL_ID) {
+ DestroyElementRequest r = new DestroyElementRequest(
+ outgoingLink.getElement(), false);
+ cmd.add(new DestroyElementCommand(r));
+ cmd.add(new DeleteCommand(getEditingDomain(),
+ outgoingLink));
+ continue;
+ }
+ if (ComrelVisualIDRegistry.getVisualID(outgoingLink) == MultiSinglePortMappingEditPart.VISUAL_ID) {
+ DestroyElementRequest r = new DestroyElementRequest(
+ outgoingLink.getElement(), false);
+ cmd.add(new DestroyElementCommand(r));
+ cmd.add(new DeleteCommand(getEditingDomain(),
+ outgoingLink));
+ continue;
+ }
+ }
+ cmd.add(new DestroyElementCommand(new DestroyElementRequest(
+ getEditingDomain(), node.getElement(), false))); // directlyOwned: true
+ // don't need explicit deletion of node as parent's view deletion would clean child views as well
+ // cmd.add(new org.eclipse.gmf.runtime.diagram.core.commands.DeleteCommand(getEditingDomain(), node));
+ break;
+ case MultiOutputPortEditPart.VISUAL_ID:
+ for (Iterator<?> it = node.getSourceEdges().iterator(); it
+ .hasNext();) {
+ Edge outgoingLink = (Edge) it.next();
+ if (ComrelVisualIDRegistry.getVisualID(outgoingLink) == MultiPortMappingEditPart.VISUAL_ID) {
+ DestroyElementRequest r = new DestroyElementRequest(
+ outgoingLink.getElement(), false);
+ cmd.add(new DestroyElementCommand(r));
+ cmd.add(new DeleteCommand(getEditingDomain(),
+ outgoingLink));
+ continue;
+ }
+ if (ComrelVisualIDRegistry.getVisualID(outgoingLink) == MultiSinglePortMappingEditPart.VISUAL_ID) {
+ DestroyElementRequest r = new DestroyElementRequest(
+ outgoingLink.getElement(), false);
+ cmd.add(new DestroyElementCommand(r));
+ cmd.add(new DeleteCommand(getEditingDomain(),
+ outgoingLink));
+ continue;
+ }
+ }
+ cmd.add(new DestroyElementCommand(new DestroyElementRequest(
+ getEditingDomain(), node.getElement(), false))); // directlyOwned: true
+ // don't need explicit deletion of node as parent's view deletion would clean child views as well
+ // cmd.add(new org.eclipse.gmf.runtime.diagram.core.commands.DeleteCommand(getEditingDomain(), node));
+ break;
+ }
+ }
+ }
+
+}
diff --git a/org.eclipse.emf.refactor.comrel.diagram/src/comrel/diagram/edit/policies/MultiFilterUnit2CanonicalEditPolicy.java b/org.eclipse.emf.refactor.comrel.diagram/src/comrel/diagram/edit/policies/MultiFilterUnit2CanonicalEditPolicy.java
new file mode 100644
index 0000000..822998f
--- /dev/null
+++ b/org.eclipse.emf.refactor.comrel.diagram/src/comrel/diagram/edit/policies/MultiFilterUnit2CanonicalEditPolicy.java
@@ -0,0 +1,178 @@
+/*
+ *
+ */
+package comrel.diagram.edit.policies;
+
+import java.util.ArrayList;
+import java.util.Collection;
+import java.util.HashSet;
+import java.util.Iterator;
+import java.util.LinkedList;
+import java.util.List;
+import java.util.Set;
+
+import org.eclipse.core.runtime.IAdaptable;
+import org.eclipse.emf.ecore.EObject;
+import org.eclipse.emf.ecore.EStructuralFeature;
+import org.eclipse.gef.commands.Command;
+import org.eclipse.gmf.runtime.diagram.core.util.ViewUtil;
+import org.eclipse.gmf.runtime.diagram.ui.commands.DeferredLayoutCommand;
+import org.eclipse.gmf.runtime.diagram.ui.commands.ICommandProxy;
+import org.eclipse.gmf.runtime.diagram.ui.commands.SetViewMutabilityCommand;
+import org.eclipse.gmf.runtime.diagram.ui.editpolicies.CanonicalEditPolicy;
+import org.eclipse.gmf.runtime.diagram.ui.requests.CreateViewRequest;
+import org.eclipse.gmf.runtime.emf.core.util.EObjectAdapter;
+import org.eclipse.gmf.runtime.notation.Node;
+import org.eclipse.gmf.runtime.notation.View;
+
+import comrel.ComrelPackage;
+import comrel.diagram.edit.parts.MultiInputPort6EditPart;
+import comrel.diagram.edit.parts.MultiOutputPort2EditPart;
+import comrel.diagram.part.ComrelDiagramUpdater;
+import comrel.diagram.part.ComrelNodeDescriptor;
+import comrel.diagram.part.ComrelVisualIDRegistry;
+
+/**
+ * @generated
+ */
+public class MultiFilterUnit2CanonicalEditPolicy extends CanonicalEditPolicy {
+
+ /**
+ * @generated
+ */
+ private Set<EStructuralFeature> myFeaturesToSynchronize;
+
+ /**
+ * @generated
+ */
+ protected Set getFeaturesToSynchronize() {
+ if (myFeaturesToSynchronize == null) {
+ myFeaturesToSynchronize = new HashSet<EStructuralFeature>();
+ myFeaturesToSynchronize.add(ComrelPackage.eINSTANCE
+ .getMultiFilterUnit_InputPort());
+ myFeaturesToSynchronize.add(ComrelPackage.eINSTANCE
+ .getMultiFilterUnit_OutputPort());
+ }
+ return myFeaturesToSynchronize;
+ }
+
+ /**
+ * @generated
+ */
+ @SuppressWarnings("rawtypes")
+ protected List getSemanticChildrenList() {
+ View viewObject = (View) getHost().getModel();
+ LinkedList<EObject> result = new LinkedList<EObject>();
+ List<ComrelNodeDescriptor> childDescriptors = ComrelDiagramUpdater
+ .getMultiFilterUnit_3041SemanticChildren(viewObject);
+ for (ComrelNodeDescriptor d : childDescriptors) {
+ result.add(d.getModelElement());
+ }
+ return result;
+ }
+
+ /**
+ * @generated
+ */
+ protected boolean isOrphaned(Collection<EObject> semanticChildren,
+ final View view) {
+ return isMyDiagramElement(view)
+ && !semanticChildren.contains(view.getElement());
+ }
+
+ /**
+ * @generated
+ */
+ private boolean isMyDiagramElement(View view) {
+ int visualID = ComrelVisualIDRegistry.getVisualID(view);
+ return visualID == MultiInputPort6EditPart.VISUAL_ID
+ || visualID == MultiOutputPort2EditPart.VISUAL_ID;
+ }
+
+ /**
+ * @generated
+ */
+ protected void refreshSemantic() {
+ if (resolveSemanticElement() == null) {
+ return;
+ }
+ LinkedList<IAdaptable> createdViews = new LinkedList<IAdaptable>();
+ List<ComrelNodeDescriptor> childDescriptors = ComrelDiagramUpdater
+ .getMultiFilterUnit_3041SemanticChildren((View) getHost()
+ .getModel());
+ LinkedList<View> orphaned = new LinkedList<View>();
+ // we care to check only views we recognize as ours
+ LinkedList<View> knownViewChildren = new LinkedList<View>();
+ for (View v : getViewChildren()) {
+ if (isMyDiagramElement(v)) {
+ knownViewChildren.add(v);
+ }
+ }
+ // alternative to #cleanCanonicalSemanticChildren(getViewChildren(), semanticChildren)
+ //
+ // iteration happens over list of desired semantic elements, trying to find best matching View, while original CEP
+ // iterates views, potentially losing view (size/bounds) information - i.e. if there are few views to reference same EObject, only last one
+ // to answer isOrphaned == true will be used for the domain element representation, see #cleanCanonicalSemanticChildren()
+ for (Iterator<ComrelNodeDescriptor> descriptorsIterator = childDescriptors
+ .iterator(); descriptorsIterator.hasNext();) {
+ ComrelNodeDescriptor next = descriptorsIterator.next();
+ String hint = ComrelVisualIDRegistry.getType(next.getVisualID());
+ LinkedList<View> perfectMatch = new LinkedList<View>(); // both semanticElement and hint match that of NodeDescriptor
+ for (View childView : getViewChildren()) {
+ EObject semanticElement = childView.getElement();
+ if (next.getModelElement().equals(semanticElement)) {
+ if (hint.equals(childView.getType())) {
+ perfectMatch.add(childView);
+ // actually, can stop iteration over view children here, but
+ // may want to use not the first view but last one as a 'real' match (the way original CEP does
+ // with its trick with viewToSemanticMap inside #cleanCanonicalSemanticChildren
+ }
+ }
+ }
+ if (perfectMatch.size() > 0) {
+ descriptorsIterator.remove(); // precise match found no need to create anything for the NodeDescriptor
+ // use only one view (first or last?), keep rest as orphaned for further consideration
+ knownViewChildren.remove(perfectMatch.getFirst());
+ }
+ }
+ // those left in knownViewChildren are subject to removal - they are our diagram elements we didn't find match to,
+ // or those we have potential matches to, and thus need to be recreated, preserving size/location information.
+ orphaned.addAll(knownViewChildren);
+ //
+ ArrayList<CreateViewRequest.ViewDescriptor> viewDescriptors = new ArrayList<CreateViewRequest.ViewDescriptor>(
+ childDescriptors.size());
+ for (ComrelNodeDescriptor next : childDescriptors) {
+ String hint = ComrelVisualIDRegistry.getType(next.getVisualID());
+ IAdaptable elementAdapter = new CanonicalElementAdapter(
+ next.getModelElement(), hint);
+ CreateViewRequest.ViewDescriptor descriptor = new CreateViewRequest.ViewDescriptor(
+ elementAdapter, Node.class, hint, ViewUtil.APPEND, false,
+ host().getDiagramPreferencesHint());
+ viewDescriptors.add(descriptor);
+ }
+
+ boolean changed = deleteViews(orphaned.iterator());
+ //
+ CreateViewRequest request = getCreateViewRequest(viewDescriptors);
+ Command cmd = getCreateViewCommand(request);
+ if (cmd != null && cmd.canExecute()) {
+ SetViewMutabilityCommand.makeMutable(
+ new EObjectAdapter(host().getNotationView())).execute();
+ executeCommand(cmd);
+ @SuppressWarnings("unchecked")
+ List<IAdaptable> nl = (List<IAdaptable>) request.getNewObject();
+ createdViews.addAll(nl);
+ }
+ if (changed || createdViews.size() > 0) {
+ postProcessRefreshSemantic(createdViews);
+ }
+ if (createdViews.size() > 1) {
+ // perform a layout of the container
+ DeferredLayoutCommand layoutCmd = new DeferredLayoutCommand(host()
+ .getEditingDomain(), createdViews, host());
+ executeCommand(new ICommandProxy(layoutCmd));
+ }
+
+ makeViewsImmutable(createdViews);
+ }
+}
diff --git a/org.eclipse.emf.refactor.comrel.diagram/src/comrel/diagram/edit/policies/MultiFilterUnit2ItemSemanticEditPolicy.java b/org.eclipse.emf.refactor.comrel.diagram/src/comrel/diagram/edit/policies/MultiFilterUnit2ItemSemanticEditPolicy.java
new file mode 100644
index 0000000..c7836ea
--- /dev/null
+++ b/org.eclipse.emf.refactor.comrel.diagram/src/comrel/diagram/edit/policies/MultiFilterUnit2ItemSemanticEditPolicy.java
@@ -0,0 +1,152 @@
+/*
+ *
+ */
+package comrel.diagram.edit.policies;
+
+import java.util.Iterator;
+
+import org.eclipse.emf.ecore.EAnnotation;
+import org.eclipse.gef.commands.Command;
+import org.eclipse.gmf.runtime.common.core.command.ICompositeCommand;
+import org.eclipse.gmf.runtime.diagram.core.commands.DeleteCommand;
+import org.eclipse.gmf.runtime.emf.commands.core.command.CompositeTransactionalCommand;
+import org.eclipse.gmf.runtime.emf.type.core.commands.DestroyElementCommand;
+import org.eclipse.gmf.runtime.emf.type.core.requests.CreateElementRequest;
+import org.eclipse.gmf.runtime.emf.type.core.requests.DestroyElementRequest;
+import org.eclipse.gmf.runtime.notation.Edge;
+import org.eclipse.gmf.runtime.notation.Node;
+import org.eclipse.gmf.runtime.notation.View;
+
+import comrel.diagram.edit.commands.MultiInputPort6CreateCommand;
+import comrel.diagram.edit.commands.MultiOutputPort2CreateCommand;
+import comrel.diagram.edit.parts.MultiInputPort6EditPart;
+import comrel.diagram.edit.parts.MultiOutputPort2EditPart;
+import comrel.diagram.edit.parts.MultiPortMappingEditPart;
+import comrel.diagram.edit.parts.MultiSinglePortMappingEditPart;
+import comrel.diagram.part.ComrelVisualIDRegistry;
+import comrel.diagram.providers.ComrelElementTypes;
+
+/**
+ * @generated
+ */
+public class MultiFilterUnit2ItemSemanticEditPolicy extends
+ ComrelBaseItemSemanticEditPolicy {
+
+ /**
+ * @generated
+ */
+ public MultiFilterUnit2ItemSemanticEditPolicy() {
+ super(ComrelElementTypes.MultiFilterUnit_3041);
+ }
+
+ /**
+ * @generated
+ */
+ protected Command getCreateCommand(CreateElementRequest req) {
+ if (ComrelElementTypes.MultiInputPort_3020 == req.getElementType()) {
+ return getGEFWrapper(new MultiInputPort6CreateCommand(req));
+ }
+ if (ComrelElementTypes.MultiOutputPort_3021 == req.getElementType()) {
+ return getGEFWrapper(new MultiOutputPort2CreateCommand(req));
+ }
+ return super.getCreateCommand(req);
+ }
+
+ /**
+ * @generated
+ */
+ protected Command getDestroyElementCommand(DestroyElementRequest req) {
+ View view = (View) getHost().getModel();
+ CompositeTransactionalCommand cmd = new CompositeTransactionalCommand(
+ getEditingDomain(), null);
+ cmd.setTransactionNestingEnabled(false);
+ EAnnotation annotation = view.getEAnnotation("Shortcut"); //$NON-NLS-1$
+ if (annotation == null) {
+ // there are indirectly referenced children, need extra commands: false
+ addDestroyChildNodesCommand(cmd);
+ addDestroyShortcutsCommand(cmd, view);
+ // delete host element
+ cmd.add(new DestroyElementCommand(req));
+ } else {
+ cmd.add(new DeleteCommand(getEditingDomain(), view));
+ }
+ return getGEFWrapper(cmd.reduce());
+ }
+
+ /**
+ * @generated
+ */
+ private void addDestroyChildNodesCommand(ICompositeCommand cmd) {
+ View view = (View) getHost().getModel();
+ for (Iterator<?> nit = view.getChildren().iterator(); nit.hasNext();) {
+ Node node = (Node) nit.next();
+ switch (ComrelVisualIDRegistry.getVisualID(node)) {
+ case MultiInputPort6EditPart.VISUAL_ID:
+ for (Iterator<?> it = node.getTargetEdges().iterator(); it
+ .hasNext();) {
+ Edge incomingLink = (Edge) it.next();
+ if (ComrelVisualIDRegistry.getVisualID(incomingLink) == MultiPortMappingEditPart.VISUAL_ID) {
+ DestroyElementRequest r = new DestroyElementRequest(
+ incomingLink.getElement(), false);
+ cmd.add(new DestroyElementCommand(r));
+ cmd.add(new DeleteCommand(getEditingDomain(),
+ incomingLink));
+ continue;
+ }
+ }
+ for (Iterator<?> it = node.getSourceEdges().iterator(); it
+ .hasNext();) {
+ Edge outgoingLink = (Edge) it.next();
+ if (ComrelVisualIDRegistry.getVisualID(outgoingLink) == MultiPortMappingEditPart.VISUAL_ID) {
+ DestroyElementRequest r = new DestroyElementRequest(
+ outgoingLink.getElement(), false);
+ cmd.add(new DestroyElementCommand(r));
+ cmd.add(new DeleteCommand(getEditingDomain(),
+ outgoingLink));
+ continue;
+ }
+ if (ComrelVisualIDRegistry.getVisualID(outgoingLink) == MultiSinglePortMappingEditPart.VISUAL_ID) {
+ DestroyElementRequest r = new DestroyElementRequest(
+ outgoingLink.getElement(), false);
+ cmd.add(new DestroyElementCommand(r));
+ cmd.add(new DeleteCommand(getEditingDomain(),
+ outgoingLink));
+ continue;
+ }
+ }
+ cmd.add(new DestroyElementCommand(new DestroyElementRequest(
+ getEditingDomain(), node.getElement(), false))); // directlyOwned: true
+ // don't need explicit deletion of node as parent's view deletion would clean child views as well
+ // cmd.add(new org.eclipse.gmf.runtime.diagram.core.commands.DeleteCommand(getEditingDomain(), node));
+ break;
+ case MultiOutputPort2EditPart.VISUAL_ID:
+ for (Iterator<?> it = node.getSourceEdges().iterator(); it
+ .hasNext();) {
+ Edge outgoingLink = (Edge) it.next();
+ if (ComrelVisualIDRegistry.getVisualID(outgoingLink) == MultiPortMappingEditPart.VISUAL_ID) {
+ DestroyElementRequest r = new DestroyElementRequest(
+ outgoingLink.getElement(), false);
+ cmd.add(new DestroyElementCommand(r));
+ cmd.add(new DeleteCommand(getEditingDomain(),
+ outgoingLink));
+ continue;
+ }
+ if (ComrelVisualIDRegistry.getVisualID(outgoingLink) == MultiSinglePortMappingEditPart.VISUAL_ID) {
+ DestroyElementRequest r = new DestroyElementRequest(
+ outgoingLink.getElement(), false);
+ cmd.add(new DestroyElementCommand(r));
+ cmd.add(new DeleteCommand(getEditingDomain(),
+ outgoingLink));
+ continue;
+ }
+ }
+ cmd.add(new DestroyElementCommand(new DestroyElementRequest(
+ getEditingDomain(), node.getElement(), false))); // directlyOwned: true
+ // don't need explicit deletion of node as parent's view deletion would clean child views as well
+ // cmd.add(new org.eclipse.gmf.runtime.diagram.core.commands.DeleteCommand(getEditingDomain(), node));
+ break;
+ }
+ }
+ }
+
+}
diff --git a/org.eclipse.emf.refactor.comrel.diagram/src/comrel/diagram/edit/policies/MultiFilterUnit3CanonicalEditPolicy.java b/org.eclipse.emf.refactor.comrel.diagram/src/comrel/diagram/edit/policies/MultiFilterUnit3CanonicalEditPolicy.java
new file mode 100644
index 0000000..f10b01f
--- /dev/null
+++ b/org.eclipse.emf.refactor.comrel.diagram/src/comrel/diagram/edit/policies/MultiFilterUnit3CanonicalEditPolicy.java
@@ -0,0 +1,178 @@
+/*
+ *
+ */
+package comrel.diagram.edit.policies;
+
+import java.util.ArrayList;
+import java.util.Collection;
+import java.util.HashSet;
+import java.util.Iterator;
+import java.util.LinkedList;
+import java.util.List;
+import java.util.Set;
+
+import org.eclipse.core.runtime.IAdaptable;
+import org.eclipse.emf.ecore.EObject;
+import org.eclipse.emf.ecore.EStructuralFeature;
+import org.eclipse.gef.commands.Command;
+import org.eclipse.gmf.runtime.diagram.core.util.ViewUtil;
+import org.eclipse.gmf.runtime.diagram.ui.commands.DeferredLayoutCommand;
+import org.eclipse.gmf.runtime.diagram.ui.commands.ICommandProxy;
+import org.eclipse.gmf.runtime.diagram.ui.commands.SetViewMutabilityCommand;
+import org.eclipse.gmf.runtime.diagram.ui.editpolicies.CanonicalEditPolicy;
+import org.eclipse.gmf.runtime.diagram.ui.requests.CreateViewRequest;
+import org.eclipse.gmf.runtime.emf.core.util.EObjectAdapter;
+import org.eclipse.gmf.runtime.notation.Node;
+import org.eclipse.gmf.runtime.notation.View;
+
+import comrel.ComrelPackage;
+import comrel.diagram.edit.parts.MultiInputPort6EditPart;
+import comrel.diagram.edit.parts.MultiOutputPort2EditPart;
+import comrel.diagram.part.ComrelDiagramUpdater;
+import comrel.diagram.part.ComrelNodeDescriptor;
+import comrel.diagram.part.ComrelVisualIDRegistry;
+
+/**
+ * @generated
+ */
+public class MultiFilterUnit3CanonicalEditPolicy extends CanonicalEditPolicy {
+
+ /**
+ * @generated
+ */
+ private Set<EStructuralFeature> myFeaturesToSynchronize;
+
+ /**
+ * @generated
+ */
+ protected Set getFeaturesToSynchronize() {
+ if (myFeaturesToSynchronize == null) {
+ myFeaturesToSynchronize = new HashSet<EStructuralFeature>();
+ myFeaturesToSynchronize.add(ComrelPackage.eINSTANCE
+ .getMultiFilterUnit_InputPort());
+ myFeaturesToSynchronize.add(ComrelPackage.eINSTANCE
+ .getMultiFilterUnit_OutputPort());
+ }
+ return myFeaturesToSynchronize;
+ }
+
+ /**
+ * @generated
+ */
+ @SuppressWarnings("rawtypes")
+ protected List getSemanticChildrenList() {
+ View viewObject = (View) getHost().getModel();
+ LinkedList<EObject> result = new LinkedList<EObject>();
+ List<ComrelNodeDescriptor> childDescriptors = ComrelDiagramUpdater
+ .getMultiFilterUnit_3053SemanticChildren(viewObject);
+ for (ComrelNodeDescriptor d : childDescriptors) {
+ result.add(d.getModelElement());
+ }
+ return result;
+ }
+
+ /**
+ * @generated
+ */
+ protected boolean isOrphaned(Collection<EObject> semanticChildren,
+ final View view) {
+ return isMyDiagramElement(view)
+ && !semanticChildren.contains(view.getElement());
+ }
+
+ /**
+ * @generated
+ */
+ private boolean isMyDiagramElement(View view) {
+ int visualID = ComrelVisualIDRegistry.getVisualID(view);
+ return visualID == MultiInputPort6EditPart.VISUAL_ID
+ || visualID == MultiOutputPort2EditPart.VISUAL_ID;
+ }
+
+ /**
+ * @generated
+ */
+ protected void refreshSemantic() {
+ if (resolveSemanticElement() == null) {
+ return;
+ }
+ LinkedList<IAdaptable> createdViews = new LinkedList<IAdaptable>();
+ List<ComrelNodeDescriptor> childDescriptors = ComrelDiagramUpdater
+ .getMultiFilterUnit_3053SemanticChildren((View) getHost()
+ .getModel());
+ LinkedList<View> orphaned = new LinkedList<View>();
+ // we care to check only views we recognize as ours
+ LinkedList<View> knownViewChildren = new LinkedList<View>();
+ for (View v : getViewChildren()) {
+ if (isMyDiagramElement(v)) {
+ knownViewChildren.add(v);
+ }
+ }
+ // alternative to #cleanCanonicalSemanticChildren(getViewChildren(), semanticChildren)
+ //
+ // iteration happens over list of desired semantic elements, trying to find best matching View, while original CEP
+ // iterates views, potentially losing view (size/bounds) information - i.e. if there are few views to reference same EObject, only last one
+ // to answer isOrphaned == true will be used for the domain element representation, see #cleanCanonicalSemanticChildren()
+ for (Iterator<ComrelNodeDescriptor> descriptorsIterator = childDescriptors
+ .iterator(); descriptorsIterator.hasNext();) {
+ ComrelNodeDescriptor next = descriptorsIterator.next();
+ String hint = ComrelVisualIDRegistry.getType(next.getVisualID());
+ LinkedList<View> perfectMatch = new LinkedList<View>(); // both semanticElement and hint match that of NodeDescriptor
+ for (View childView : getViewChildren()) {
+ EObject semanticElement = childView.getElement();
+ if (next.getModelElement().equals(semanticElement)) {
+ if (hint.equals(childView.getType())) {
+ perfectMatch.add(childView);
+ // actually, can stop iteration over view children here, but
+ // may want to use not the first view but last one as a 'real' match (the way original CEP does
+ // with its trick with viewToSemanticMap inside #cleanCanonicalSemanticChildren
+ }
+ }
+ }
+ if (perfectMatch.size() > 0) {
+ descriptorsIterator.remove(); // precise match found no need to create anything for the NodeDescriptor
+ // use only one view (first or last?), keep rest as orphaned for further consideration
+ knownViewChildren.remove(perfectMatch.getFirst());
+ }
+ }
+ // those left in knownViewChildren are subject to removal - they are our diagram elements we didn't find match to,
+ // or those we have potential matches to, and thus need to be recreated, preserving size/location information.
+ orphaned.addAll(knownViewChildren);
+ //
+ ArrayList<CreateViewRequest.ViewDescriptor> viewDescriptors = new ArrayList<CreateViewRequest.ViewDescriptor>(
+ childDescriptors.size());
+ for (ComrelNodeDescriptor next : childDescriptors) {
+ String hint = ComrelVisualIDRegistry.getType(next.getVisualID());
+ IAdaptable elementAdapter = new CanonicalElementAdapter(
+ next.getModelElement(), hint);
+ CreateViewRequest.ViewDescriptor descriptor = new CreateViewRequest.ViewDescriptor(
+ elementAdapter, Node.class, hint, ViewUtil.APPEND, false,
+ host().getDiagramPreferencesHint());
+ viewDescriptors.add(descriptor);
+ }
+
+ boolean changed = deleteViews(orphaned.iterator());
+ //
+ CreateViewRequest request = getCreateViewRequest(viewDescriptors);
+ Command cmd = getCreateViewCommand(request);
+ if (cmd != null && cmd.canExecute()) {
+ SetViewMutabilityCommand.makeMutable(
+ new EObjectAdapter(host().getNotationView())).execute();
+ executeCommand(cmd);
+ @SuppressWarnings("unchecked")
+ List<IAdaptable> nl = (List<IAdaptable>) request.getNewObject();
+ createdViews.addAll(nl);
+ }
+ if (changed || createdViews.size() > 0) {
+ postProcessRefreshSemantic(createdViews);
+ }
+ if (createdViews.size() > 1) {
+ // perform a layout of the container
+ DeferredLayoutCommand layoutCmd = new DeferredLayoutCommand(host()
+ .getEditingDomain(), createdViews, host());
+ executeCommand(new ICommandProxy(layoutCmd));
+ }
+
+ makeViewsImmutable(createdViews);
+ }
+}
diff --git a/org.eclipse.emf.refactor.comrel.diagram/src/comrel/diagram/edit/policies/MultiFilterUnit3ItemSemanticEditPolicy.java b/org.eclipse.emf.refactor.comrel.diagram/src/comrel/diagram/edit/policies/MultiFilterUnit3ItemSemanticEditPolicy.java
new file mode 100644
index 0000000..daf2f4a
--- /dev/null
+++ b/org.eclipse.emf.refactor.comrel.diagram/src/comrel/diagram/edit/policies/MultiFilterUnit3ItemSemanticEditPolicy.java
@@ -0,0 +1,152 @@
+/*
+ *
+ */
+package comrel.diagram.edit.policies;
+
+import java.util.Iterator;
+
+import org.eclipse.emf.ecore.EAnnotation;
+import org.eclipse.gef.commands.Command;
+import org.eclipse.gmf.runtime.common.core.command.ICompositeCommand;
+import org.eclipse.gmf.runtime.diagram.core.commands.DeleteCommand;
+import org.eclipse.gmf.runtime.emf.commands.core.command.CompositeTransactionalCommand;
+import org.eclipse.gmf.runtime.emf.type.core.commands.DestroyElementCommand;
+import org.eclipse.gmf.runtime.emf.type.core.requests.CreateElementRequest;
+import org.eclipse.gmf.runtime.emf.type.core.requests.DestroyElementRequest;
+import org.eclipse.gmf.runtime.notation.Edge;
+import org.eclipse.gmf.runtime.notation.Node;
+import org.eclipse.gmf.runtime.notation.View;
+
+import comrel.diagram.edit.commands.MultiInputPort6CreateCommand;
+import comrel.diagram.edit.commands.MultiOutputPort2CreateCommand;
+import comrel.diagram.edit.parts.MultiInputPort6EditPart;
+import comrel.diagram.edit.parts.MultiOutputPort2EditPart;
+import comrel.diagram.edit.parts.MultiPortMappingEditPart;
+import comrel.diagram.edit.parts.MultiSinglePortMappingEditPart;
+import comrel.diagram.part.ComrelVisualIDRegistry;
+import comrel.diagram.providers.ComrelElementTypes;
+
+/**
+ * @generated
+ */
+public class MultiFilterUnit3ItemSemanticEditPolicy extends
+ ComrelBaseItemSemanticEditPolicy {
+
+ /**
+ * @generated
+ */
+ public MultiFilterUnit3ItemSemanticEditPolicy() {
+ super(ComrelElementTypes.MultiFilterUnit_3053);
+ }
+
+ /**
+ * @generated
+ */
+ protected Command getCreateCommand(CreateElementRequest req) {
+ if (ComrelElementTypes.MultiInputPort_3020 == req.getElementType()) {
+ return getGEFWrapper(new MultiInputPort6CreateCommand(req));
+ }
+ if (ComrelElementTypes.MultiOutputPort_3021 == req.getElementType()) {
+ return getGEFWrapper(new MultiOutputPort2CreateCommand(req));
+ }
+ return super.getCreateCommand(req);
+ }
+
+ /**
+ * @generated
+ */
+ protected Command getDestroyElementCommand(DestroyElementRequest req) {
+ View view = (View) getHost().getModel();
+ CompositeTransactionalCommand cmd = new CompositeTransactionalCommand(
+ getEditingDomain(), null);
+ cmd.setTransactionNestingEnabled(false);
+ EAnnotation annotation = view.getEAnnotation("Shortcut"); //$NON-NLS-1$
+ if (annotation == null) {
+ // there are indirectly referenced children, need extra commands: false
+ addDestroyChildNodesCommand(cmd);
+ addDestroyShortcutsCommand(cmd, view);
+ // delete host element
+ cmd.add(new DestroyElementCommand(req));
+ } else {
+ cmd.add(new DeleteCommand(getEditingDomain(), view));
+ }
+ return getGEFWrapper(cmd.reduce());
+ }
+
+ /**
+ * @generated
+ */
+ private void addDestroyChildNodesCommand(ICompositeCommand cmd) {
+ View view = (View) getHost().getModel();
+ for (Iterator<?> nit = view.getChildren().iterator(); nit.hasNext();) {
+ Node node = (Node) nit.next();
+ switch (ComrelVisualIDRegistry.getVisualID(node)) {
+ case MultiInputPort6EditPart.VISUAL_ID:
+ for (Iterator<?> it = node.getTargetEdges().iterator(); it
+ .hasNext();) {
+ Edge incomingLink = (Edge) it.next();
+ if (ComrelVisualIDRegistry.getVisualID(incomingLink) == MultiPortMappingEditPart.VISUAL_ID) {
+ DestroyElementRequest r = new DestroyElementRequest(
+ incomingLink.getElement(), false);
+ cmd.add(new DestroyElementCommand(r));
+ cmd.add(new DeleteCommand(getEditingDomain(),
+ incomingLink));
+ continue;
+ }
+ }
+ for (Iterator<?> it = node.getSourceEdges().iterator(); it
+ .hasNext();) {
+ Edge outgoingLink = (Edge) it.next();
+ if (ComrelVisualIDRegistry.getVisualID(outgoingLink) == MultiPortMappingEditPart.VISUAL_ID) {
+ DestroyElementRequest r = new DestroyElementRequest(
+ outgoingLink.getElement(), false);
+ cmd.add(new DestroyElementCommand(r));
+ cmd.add(new DeleteCommand(getEditingDomain(),
+ outgoingLink));
+ continue;
+ }
+ if (ComrelVisualIDRegistry.getVisualID(outgoingLink) == MultiSinglePortMappingEditPart.VISUAL_ID) {
+ DestroyElementRequest r = new DestroyElementRequest(
+ outgoingLink.getElement(), false);
+ cmd.add(new DestroyElementCommand(r));
+ cmd.add(new DeleteCommand(getEditingDomain(),
+ outgoingLink));
+ continue;
+ }
+ }
+ cmd.add(new DestroyElementCommand(new DestroyElementRequest(
+ getEditingDomain(), node.getElement(), false))); // directlyOwned: true
+ // don't need explicit deletion of node as parent's view deletion would clean child views as well
+ // cmd.add(new org.eclipse.gmf.runtime.diagram.core.commands.DeleteCommand(getEditingDomain(), node));
+ break;
+ case MultiOutputPort2EditPart.VISUAL_ID:
+ for (Iterator<?> it = node.getSourceEdges().iterator(); it
+ .hasNext();) {
+ Edge outgoingLink = (Edge) it.next();
+ if (ComrelVisualIDRegistry.getVisualID(outgoingLink) == MultiPortMappingEditPart.VISUAL_ID) {
+ DestroyElementRequest r = new DestroyElementRequest(
+ outgoingLink.getElement(), false);
+ cmd.add(new DestroyElementCommand(r));
+ cmd.add(new DeleteCommand(getEditingDomain(),
+ outgoingLink));
+ continue;
+ }
+ if (ComrelVisualIDRegistry.getVisualID(outgoingLink) == MultiSinglePortMappingEditPart.VISUAL_ID) {
+ DestroyElementRequest r = new DestroyElementRequest(
+ outgoingLink.getElement(), false);
+ cmd.add(new DestroyElementCommand(r));
+ cmd.add(new DeleteCommand(getEditingDomain(),
+ outgoingLink));
+ continue;
+ }
+ }
+ cmd.add(new DestroyElementCommand(new DestroyElementRequest(
+ getEditingDomain(), node.getElement(), false))); // directlyOwned: true
+ // don't need explicit deletion of node as parent's view deletion would clean child views as well
+ // cmd.add(new org.eclipse.gmf.runtime.diagram.core.commands.DeleteCommand(getEditingDomain(), node));
+ break;
+ }
+ }
+ }
+
+}
diff --git a/org.eclipse.emf.refactor.comrel.diagram/src/comrel/diagram/edit/policies/MultiFilterUnit4CanonicalEditPolicy.java b/org.eclipse.emf.refactor.comrel.diagram/src/comrel/diagram/edit/policies/MultiFilterUnit4CanonicalEditPolicy.java
new file mode 100644
index 0000000..712af78
--- /dev/null
+++ b/org.eclipse.emf.refactor.comrel.diagram/src/comrel/diagram/edit/policies/MultiFilterUnit4CanonicalEditPolicy.java
@@ -0,0 +1,178 @@
+/*
+ *
+ */
+package comrel.diagram.edit.policies;
+
+import java.util.ArrayList;
+import java.util.Collection;
+import java.util.HashSet;
+import java.util.Iterator;
+import java.util.LinkedList;
+import java.util.List;
+import java.util.Set;
+
+import org.eclipse.core.runtime.IAdaptable;
+import org.eclipse.emf.ecore.EObject;
+import org.eclipse.emf.ecore.EStructuralFeature;
+import org.eclipse.gef.commands.Command;
+import org.eclipse.gmf.runtime.diagram.core.util.ViewUtil;
+import org.eclipse.gmf.runtime.diagram.ui.commands.DeferredLayoutCommand;
+import org.eclipse.gmf.runtime.diagram.ui.commands.ICommandProxy;
+import org.eclipse.gmf.runtime.diagram.ui.commands.SetViewMutabilityCommand;
+import org.eclipse.gmf.runtime.diagram.ui.editpolicies.CanonicalEditPolicy;
+import org.eclipse.gmf.runtime.diagram.ui.requests.CreateViewRequest;
+import org.eclipse.gmf.runtime.emf.core.util.EObjectAdapter;
+import org.eclipse.gmf.runtime.notation.Node;
+import org.eclipse.gmf.runtime.notation.View;
+
+import comrel.ComrelPackage;
+import comrel.diagram.edit.parts.MultiInputPort6EditPart;
+import comrel.diagram.edit.parts.MultiOutputPort2EditPart;
+import comrel.diagram.part.ComrelDiagramUpdater;
+import comrel.diagram.part.ComrelNodeDescriptor;
+import comrel.diagram.part.ComrelVisualIDRegistry;
+
+/**
+ * @generated
+ */
+public class MultiFilterUnit4CanonicalEditPolicy extends CanonicalEditPolicy {
+
+ /**
+ * @generated
+ */
+ private Set<EStructuralFeature> myFeaturesToSynchronize;
+
+ /**
+ * @generated
+ */
+ protected Set getFeaturesToSynchronize() {
+ if (myFeaturesToSynchronize == null) {
+ myFeaturesToSynchronize = new HashSet<EStructuralFeature>();
+ myFeaturesToSynchronize.add(ComrelPackage.eINSTANCE
+ .getMultiFilterUnit_InputPort());
+ myFeaturesToSynchronize.add(ComrelPackage.eINSTANCE
+ .getMultiFilterUnit_OutputPort());
+ }
+ return myFeaturesToSynchronize;
+ }
+
+ /**
+ * @generated
+ */
+ @SuppressWarnings("rawtypes")
+ protected List getSemanticChildrenList() {
+ View viewObject = (View) getHost().getModel();
+ LinkedList<EObject> result = new LinkedList<EObject>();
+ List<ComrelNodeDescriptor> childDescriptors = ComrelDiagramUpdater
+ .getMultiFilterUnit_3058SemanticChildren(viewObject);
+ for (ComrelNodeDescriptor d : childDescriptors) {
+ result.add(d.getModelElement());
+ }
+ return result;
+ }
+
+ /**
+ * @generated
+ */
+ protected boolean isOrphaned(Collection<EObject> semanticChildren,
+ final View view) {
+ return isMyDiagramElement(view)
+ && !semanticChildren.contains(view.getElement());
+ }
+
+ /**
+ * @generated
+ */
+ private boolean isMyDiagramElement(View view) {
+ int visualID = ComrelVisualIDRegistry.getVisualID(view);
+ return visualID == MultiInputPort6EditPart.VISUAL_ID
+ || visualID == MultiOutputPort2EditPart.VISUAL_ID;
+ }
+
+ /**
+ * @generated
+ */
+ protected void refreshSemantic() {
+ if (resolveSemanticElement() == null) {
+ return;
+ }
+ LinkedList<IAdaptable> createdViews = new LinkedList<IAdaptable>();
+ List<ComrelNodeDescriptor> childDescriptors = ComrelDiagramUpdater
+ .getMultiFilterUnit_3058SemanticChildren((View) getHost()
+ .getModel());
+ LinkedList<View> orphaned = new LinkedList<View>();
+ // we care to check only views we recognize as ours
+ LinkedList<View> knownViewChildren = new LinkedList<View>();
+ for (View v : getViewChildren()) {
+ if (isMyDiagramElement(v)) {
+ knownViewChildren.add(v);
+ }
+ }
+ // alternative to #cleanCanonicalSemanticChildren(getViewChildren(), semanticChildren)
+ //
+ // iteration happens over list of desired semantic elements, trying to find best matching View, while original CEP
+ // iterates views, potentially losing view (size/bounds) information - i.e. if there are few views to reference same EObject, only last one
+ // to answer isOrphaned == true will be used for the domain element representation, see #cleanCanonicalSemanticChildren()
+ for (Iterator<ComrelNodeDescriptor> descriptorsIterator = childDescriptors
+ .iterator(); descriptorsIterator.hasNext();) {
+ ComrelNodeDescriptor next = descriptorsIterator.next();
+ String hint = ComrelVisualIDRegistry.getType(next.getVisualID());
+ LinkedList<View> perfectMatch = new LinkedList<View>(); // both semanticElement and hint match that of NodeDescriptor
+ for (View childView : getViewChildren()) {
+ EObject semanticElement = childView.getElement();
+ if (next.getModelElement().equals(semanticElement)) {
+ if (hint.equals(childView.getType())) {
+ perfectMatch.add(childView);
+ // actually, can stop iteration over view children here, but
+ // may want to use not the first view but last one as a 'real' match (the way original CEP does
+ // with its trick with viewToSemanticMap inside #cleanCanonicalSemanticChildren
+ }
+ }
+ }
+ if (perfectMatch.size() > 0) {
+ descriptorsIterator.remove(); // precise match found no need to create anything for the NodeDescriptor
+ // use only one view (first or last?), keep rest as orphaned for further consideration
+ knownViewChildren.remove(perfectMatch.getFirst());
+ }
+ }
+ // those left in knownViewChildren are subject to removal - they are our diagram elements we didn't find match to,
+ // or those we have potential matches to, and thus need to be recreated, preserving size/location information.
+ orphaned.addAll(knownViewChildren);
+ //
+ ArrayList<CreateViewRequest.ViewDescriptor> viewDescriptors = new ArrayList<CreateViewRequest.ViewDescriptor>(
+ childDescriptors.size());
+ for (ComrelNodeDescriptor next : childDescriptors) {
+ String hint = ComrelVisualIDRegistry.getType(next.getVisualID());
+ IAdaptable elementAdapter = new CanonicalElementAdapter(
+ next.getModelElement(), hint);
+ CreateViewRequest.ViewDescriptor descriptor = new CreateViewRequest.ViewDescriptor(
+ elementAdapter, Node.class, hint, ViewUtil.APPEND, false,
+ host().getDiagramPreferencesHint());
+ viewDescriptors.add(descriptor);
+ }
+
+ boolean changed = deleteViews(orphaned.iterator());
+ //
+ CreateViewRequest request = getCreateViewRequest(viewDescriptors);
+ Command cmd = getCreateViewCommand(request);
+ if (cmd != null && cmd.canExecute()) {
+ SetViewMutabilityCommand.makeMutable(
+ new EObjectAdapter(host().getNotationView())).execute();
+ executeCommand(cmd);
+ @SuppressWarnings("unchecked")
+ List<IAdaptable> nl = (List<IAdaptable>) request.getNewObject();
+ createdViews.addAll(nl);
+ }
+ if (changed || createdViews.size() > 0) {
+ postProcessRefreshSemantic(createdViews);
+ }
+ if (createdViews.size() > 1) {
+ // perform a layout of the container
+ DeferredLayoutCommand layoutCmd = new DeferredLayoutCommand(host()
+ .getEditingDomain(), createdViews, host());
+ executeCommand(new ICommandProxy(layoutCmd));
+ }
+
+ makeViewsImmutable(createdViews);
+ }
+}
diff --git a/org.eclipse.emf.refactor.comrel.diagram/src/comrel/diagram/edit/policies/MultiFilterUnit4ItemSemanticEditPolicy.java b/org.eclipse.emf.refactor.comrel.diagram/src/comrel/diagram/edit/policies/MultiFilterUnit4ItemSemanticEditPolicy.java
new file mode 100644
index 0000000..f314582
--- /dev/null
+++ b/org.eclipse.emf.refactor.comrel.diagram/src/comrel/diagram/edit/policies/MultiFilterUnit4ItemSemanticEditPolicy.java
@@ -0,0 +1,152 @@
+/*
+ *
+ */
+package comrel.diagram.edit.policies;
+
+import java.util.Iterator;
+
+import org.eclipse.emf.ecore.EAnnotation;
+import org.eclipse.gef.commands.Command;
+import org.eclipse.gmf.runtime.common.core.command.ICompositeCommand;
+import org.eclipse.gmf.runtime.diagram.core.commands.DeleteCommand;
+import org.eclipse.gmf.runtime.emf.commands.core.command.CompositeTransactionalCommand;
+import org.eclipse.gmf.runtime.emf.type.core.commands.DestroyElementCommand;
+import org.eclipse.gmf.runtime.emf.type.core.requests.CreateElementRequest;
+import org.eclipse.gmf.runtime.emf.type.core.requests.DestroyElementRequest;
+import org.eclipse.gmf.runtime.notation.Edge;
+import org.eclipse.gmf.runtime.notation.Node;
+import org.eclipse.gmf.runtime.notation.View;
+
+import comrel.diagram.edit.commands.MultiInputPort6CreateCommand;
+import comrel.diagram.edit.commands.MultiOutputPort2CreateCommand;
+import comrel.diagram.edit.parts.MultiInputPort6EditPart;
+import comrel.diagram.edit.parts.MultiOutputPort2EditPart;
+import comrel.diagram.edit.parts.MultiPortMappingEditPart;
+import comrel.diagram.edit.parts.MultiSinglePortMappingEditPart;
+import comrel.diagram.part.ComrelVisualIDRegistry;
+import comrel.diagram.providers.ComrelElementTypes;
+
+/**
+ * @generated
+ */
+public class MultiFilterUnit4ItemSemanticEditPolicy extends
+ ComrelBaseItemSemanticEditPolicy {
+
+ /**
+ * @generated
+ */
+ public MultiFilterUnit4ItemSemanticEditPolicy() {
+ super(ComrelElementTypes.MultiFilterUnit_3058);
+ }
+
+ /**
+ * @generated
+ */
+ protected Command getCreateCommand(CreateElementRequest req) {
+ if (ComrelElementTypes.MultiInputPort_3020 == req.getElementType()) {
+ return getGEFWrapper(new MultiInputPort6CreateCommand(req));
+ }
+ if (ComrelElementTypes.MultiOutputPort_3021 == req.getElementType()) {
+ return getGEFWrapper(new MultiOutputPort2CreateCommand(req));
+ }
+ return super.getCreateCommand(req);
+ }
+
+ /**
+ * @generated
+ */
+ protected Command getDestroyElementCommand(DestroyElementRequest req) {
+ View view = (View) getHost().getModel();
+ CompositeTransactionalCommand cmd = new CompositeTransactionalCommand(
+ getEditingDomain(), null);
+ cmd.setTransactionNestingEnabled(false);
+ EAnnotation annotation = view.getEAnnotation("Shortcut"); //$NON-NLS-1$
+ if (annotation == null) {
+ // there are indirectly referenced children, need extra commands: false
+ addDestroyChildNodesCommand(cmd);
+ addDestroyShortcutsCommand(cmd, view);
+ // delete host element
+ cmd.add(new DestroyElementCommand(req));
+ } else {
+ cmd.add(new DeleteCommand(getEditingDomain(), view));
+ }
+ return getGEFWrapper(cmd.reduce());
+ }
+
+ /**
+ * @generated
+ */
+ private void addDestroyChildNodesCommand(ICompositeCommand cmd) {
+ View view = (View) getHost().getModel();
+ for (Iterator<?> nit = view.getChildren().iterator(); nit.hasNext();) {
+ Node node = (Node) nit.next();
+ switch (ComrelVisualIDRegistry.getVisualID(node)) {
+ case MultiInputPort6EditPart.VISUAL_ID:
+ for (Iterator<?> it = node.getTargetEdges().iterator(); it
+ .hasNext();) {
+ Edge incomingLink = (Edge) it.next();
+ if (ComrelVisualIDRegistry.getVisualID(incomingLink) == MultiPortMappingEditPart.VISUAL_ID) {
+ DestroyElementRequest r = new DestroyElementRequest(
+ incomingLink.getElement(), false);
+ cmd.add(new DestroyElementCommand(r));
+ cmd.add(new DeleteCommand(getEditingDomain(),
+ incomingLink));
+ continue;
+ }
+ }
+ for (Iterator<?> it = node.getSourceEdges().iterator(); it
+ .hasNext();) {
+ Edge outgoingLink = (Edge) it.next();
+ if (ComrelVisualIDRegistry.getVisualID(outgoingLink) == MultiPortMappingEditPart.VISUAL_ID) {
+ DestroyElementRequest r = new DestroyElementRequest(
+ outgoingLink.getElement(), false);
+ cmd.add(new DestroyElementCommand(r));
+ cmd.add(new DeleteCommand(getEditingDomain(),
+ outgoingLink));
+ continue;
+ }
+ if (ComrelVisualIDRegistry.getVisualID(outgoingLink) == MultiSinglePortMappingEditPart.VISUAL_ID) {
+ DestroyElementRequest r = new DestroyElementRequest(
+ outgoingLink.getElement(), false);
+ cmd.add(new DestroyElementCommand(r));
+ cmd.add(new DeleteCommand(getEditingDomain(),
+ outgoingLink));
+ continue;
+ }
+ }
+ cmd.add(new DestroyElementCommand(new DestroyElementRequest(
+ getEditingDomain(), node.getElement(), false))); // directlyOwned: true
+ // don't need explicit deletion of node as parent's view deletion would clean child views as well
+ // cmd.add(new org.eclipse.gmf.runtime.diagram.core.commands.DeleteCommand(getEditingDomain(), node));
+ break;
+ case MultiOutputPort2EditPart.VISUAL_ID:
+ for (Iterator<?> it = node.getSourceEdges().iterator(); it
+ .hasNext();) {
+ Edge outgoingLink = (Edge) it.next();
+ if (ComrelVisualIDRegistry.getVisualID(outgoingLink) == MultiPortMappingEditPart.VISUAL_ID) {
+ DestroyElementRequest r = new DestroyElementRequest(
+ outgoingLink.getElement(), false);
+ cmd.add(new DestroyElementCommand(r));
+ cmd.add(new DeleteCommand(getEditingDomain(),
+ outgoingLink));
+ continue;
+ }
+ if (ComrelVisualIDRegistry.getVisualID(outgoingLink) == MultiSinglePortMappingEditPart.VISUAL_ID) {
+ DestroyElementRequest r = new DestroyElementRequest(
+ outgoingLink.getElement(), false);
+ cmd.add(new DestroyElementCommand(r));
+ cmd.add(new DeleteCommand(getEditingDomain(),
+ outgoingLink));
+ continue;
+ }
+ }
+ cmd.add(new DestroyElementCommand(new DestroyElementRequest(
+ getEditingDomain(), node.getElement(), false))); // directlyOwned: true
+ // don't need explicit deletion of node as parent's view deletion would clean child views as well
+ // cmd.add(new org.eclipse.gmf.runtime.diagram.core.commands.DeleteCommand(getEditingDomain(), node));
+ break;
+ }
+ }
+ }
+
+}
diff --git a/org.eclipse.emf.refactor.comrel.diagram/src/comrel/diagram/edit/policies/MultiFilterUnit5CanonicalEditPolicy.java b/org.eclipse.emf.refactor.comrel.diagram/src/comrel/diagram/edit/policies/MultiFilterUnit5CanonicalEditPolicy.java
new file mode 100644
index 0000000..e1974c3
--- /dev/null
+++ b/org.eclipse.emf.refactor.comrel.diagram/src/comrel/diagram/edit/policies/MultiFilterUnit5CanonicalEditPolicy.java
@@ -0,0 +1,178 @@
+/*
+ *
+ */
+package comrel.diagram.edit.policies;
+
+import java.util.ArrayList;
+import java.util.Collection;
+import java.util.HashSet;
+import java.util.Iterator;
+import java.util.LinkedList;
+import java.util.List;
+import java.util.Set;
+
+import org.eclipse.core.runtime.IAdaptable;
+import org.eclipse.emf.ecore.EObject;
+import org.eclipse.emf.ecore.EStructuralFeature;
+import org.eclipse.gef.commands.Command;
+import org.eclipse.gmf.runtime.diagram.core.util.ViewUtil;
+import org.eclipse.gmf.runtime.diagram.ui.commands.DeferredLayoutCommand;
+import org.eclipse.gmf.runtime.diagram.ui.commands.ICommandProxy;
+import org.eclipse.gmf.runtime.diagram.ui.commands.SetViewMutabilityCommand;
+import org.eclipse.gmf.runtime.diagram.ui.editpolicies.CanonicalEditPolicy;
+import org.eclipse.gmf.runtime.diagram.ui.requests.CreateViewRequest;
+import org.eclipse.gmf.runtime.emf.core.util.EObjectAdapter;
+import org.eclipse.gmf.runtime.notation.Node;
+import org.eclipse.gmf.runtime.notation.View;
+
+import comrel.ComrelPackage;
+import comrel.diagram.edit.parts.MultiInputPort6EditPart;
+import comrel.diagram.edit.parts.MultiOutputPort2EditPart;
+import comrel.diagram.part.ComrelDiagramUpdater;
+import comrel.diagram.part.ComrelNodeDescriptor;
+import comrel.diagram.part.ComrelVisualIDRegistry;
+
+/**
+ * @generated
+ */
+public class MultiFilterUnit5CanonicalEditPolicy extends CanonicalEditPolicy {
+
+ /**
+ * @generated
+ */
+ private Set<EStructuralFeature> myFeaturesToSynchronize;
+
+ /**
+ * @generated
+ */
+ protected Set getFeaturesToSynchronize() {
+ if (myFeaturesToSynchronize == null) {
+ myFeaturesToSynchronize = new HashSet<EStructuralFeature>();
+ myFeaturesToSynchronize.add(ComrelPackage.eINSTANCE
+ .getMultiFilterUnit_InputPort());
+ myFeaturesToSynchronize.add(ComrelPackage.eINSTANCE
+ .getMultiFilterUnit_OutputPort());
+ }
+ return myFeaturesToSynchronize;
+ }
+
+ /**
+ * @generated
+ */
+ @SuppressWarnings("rawtypes")
+ protected List getSemanticChildrenList() {
+ View viewObject = (View) getHost().getModel();
+ LinkedList<EObject> result = new LinkedList<EObject>();
+ List<ComrelNodeDescriptor> childDescriptors = ComrelDiagramUpdater
+ .getMultiFilterUnit_3064SemanticChildren(viewObject);
+ for (ComrelNodeDescriptor d : childDescriptors) {
+ result.add(d.getModelElement());
+ }
+ return result;
+ }
+
+ /**
+ * @generated
+ */
+ protected boolean isOrphaned(Collection<EObject> semanticChildren,
+ final View view) {
+ return isMyDiagramElement(view)
+ && !semanticChildren.contains(view.getElement());
+ }
+
+ /**
+ * @generated
+ */
+ private boolean isMyDiagramElement(View view) {
+ int visualID = ComrelVisualIDRegistry.getVisualID(view);
+ return visualID == MultiInputPort6EditPart.VISUAL_ID
+ || visualID == MultiOutputPort2EditPart.VISUAL_ID;
+ }
+
+ /**
+ * @generated
+ */
+ protected void refreshSemantic() {
+ if (resolveSemanticElement() == null) {
+ return;
+ }
+ LinkedList<IAdaptable> createdViews = new LinkedList<IAdaptable>();
+ List<ComrelNodeDescriptor> childDescriptors = ComrelDiagramUpdater
+ .getMultiFilterUnit_3064SemanticChildren((View) getHost()
+ .getModel());
+ LinkedList<View> orphaned = new LinkedList<View>();
+ // we care to check only views we recognize as ours
+ LinkedList<View> knownViewChildren = new LinkedList<View>();
+ for (View v : getViewChildren()) {
+ if (isMyDiagramElement(v)) {
+ knownViewChildren.add(v);
+ }
+ }
+ // alternative to #cleanCanonicalSemanticChildren(getViewChildren(), semanticChildren)
+ //
+ // iteration happens over list of desired semantic elements, trying to find best matching View, while original CEP
+ // iterates views, potentially losing view (size/bounds) information - i.e. if there are few views to reference same EObject, only last one
+ // to answer isOrphaned == true will be used for the domain element representation, see #cleanCanonicalSemanticChildren()
+ for (Iterator<ComrelNodeDescriptor> descriptorsIterator = childDescriptors
+ .iterator(); descriptorsIterator.hasNext();) {
+ ComrelNodeDescriptor next = descriptorsIterator.next();
+ String hint = ComrelVisualIDRegistry.getType(next.getVisualID());
+ LinkedList<View> perfectMatch = new LinkedList<View>(); // both semanticElement and hint match that of NodeDescriptor
+ for (View childView : getViewChildren()) {
+ EObject semanticElement = childView.getElement();
+ if (next.getModelElement().equals(semanticElement)) {
+ if (hint.equals(childView.getType())) {
+ perfectMatch.add(childView);
+ // actually, can stop iteration over view children here, but
+ // may want to use not the first view but last one as a 'real' match (the way original CEP does
+ // with its trick with viewToSemanticMap inside #cleanCanonicalSemanticChildren
+ }
+ }
+ }
+ if (perfectMatch.size() > 0) {
+ descriptorsIterator.remove(); // precise match found no need to create anything for the NodeDescriptor
+ // use only one view (first or last?), keep rest as orphaned for further consideration
+ knownViewChildren.remove(perfectMatch.getFirst());
+ }
+ }
+ // those left in knownViewChildren are subject to removal - they are our diagram elements we didn't find match to,
+ // or those we have potential matches to, and thus need to be recreated, preserving size/location information.
+ orphaned.addAll(knownViewChildren);
+ //
+ ArrayList<CreateViewRequest.ViewDescriptor> viewDescriptors = new ArrayList<CreateViewRequest.ViewDescriptor>(
+ childDescriptors.size());
+ for (ComrelNodeDescriptor next : childDescriptors) {
+ String hint = ComrelVisualIDRegistry.getType(next.getVisualID());
+ IAdaptable elementAdapter = new CanonicalElementAdapter(
+ next.getModelElement(), hint);
+ CreateViewRequest.ViewDescriptor descriptor = new CreateViewRequest.ViewDescriptor(
+ elementAdapter, Node.class, hint, ViewUtil.APPEND, false,
+ host().getDiagramPreferencesHint());
+ viewDescriptors.add(descriptor);
+ }
+
+ boolean changed = deleteViews(orphaned.iterator());
+ //
+ CreateViewRequest request = getCreateViewRequest(viewDescriptors);
+ Command cmd = getCreateViewCommand(request);
+ if (cmd != null && cmd.canExecute()) {
+ SetViewMutabilityCommand.makeMutable(
+ new EObjectAdapter(host().getNotationView())).execute();
+ executeCommand(cmd);
+ @SuppressWarnings("unchecked")
+ List<IAdaptable> nl = (List<IAdaptable>) request.getNewObject();
+ createdViews.addAll(nl);
+ }
+ if (changed || createdViews.size() > 0) {
+ postProcessRefreshSemantic(createdViews);
+ }
+ if (createdViews.size() > 1) {
+ // perform a layout of the container
+ DeferredLayoutCommand layoutCmd = new DeferredLayoutCommand(host()
+ .getEditingDomain(), createdViews, host());
+ executeCommand(new ICommandProxy(layoutCmd));
+ }
+
+ makeViewsImmutable(createdViews);
+ }
+}
diff --git a/org.eclipse.emf.refactor.comrel.diagram/src/comrel/diagram/edit/policies/MultiFilterUnit5ItemSemanticEditPolicy.java b/org.eclipse.emf.refactor.comrel.diagram/src/comrel/diagram/edit/policies/MultiFilterUnit5ItemSemanticEditPolicy.java
new file mode 100644
index 0000000..726e6f7
--- /dev/null
+++ b/org.eclipse.emf.refactor.comrel.diagram/src/comrel/diagram/edit/policies/MultiFilterUnit5ItemSemanticEditPolicy.java
@@ -0,0 +1,152 @@
+/*
+ *
+ */
+package comrel.diagram.edit.policies;
+
+import java.util.Iterator;
+
+import org.eclipse.emf.ecore.EAnnotation;
+import org.eclipse.gef.commands.Command;
+import org.eclipse.gmf.runtime.common.core.command.ICompositeCommand;
+import org.eclipse.gmf.runtime.diagram.core.commands.DeleteCommand;
+import org.eclipse.gmf.runtime.emf.commands.core.command.CompositeTransactionalCommand;
+import org.eclipse.gmf.runtime.emf.type.core.commands.DestroyElementCommand;
+import org.eclipse.gmf.runtime.emf.type.core.requests.CreateElementRequest;
+import org.eclipse.gmf.runtime.emf.type.core.requests.DestroyElementRequest;
+import org.eclipse.gmf.runtime.notation.Edge;
+import org.eclipse.gmf.runtime.notation.Node;
+import org.eclipse.gmf.runtime.notation.View;
+
+import comrel.diagram.edit.commands.MultiInputPort6CreateCommand;
+import comrel.diagram.edit.commands.MultiOutputPort2CreateCommand;
+import comrel.diagram.edit.parts.MultiInputPort6EditPart;
+import comrel.diagram.edit.parts.MultiOutputPort2EditPart;
+import comrel.diagram.edit.parts.MultiPortMappingEditPart;
+import comrel.diagram.edit.parts.MultiSinglePortMappingEditPart;
+import comrel.diagram.part.ComrelVisualIDRegistry;
+import comrel.diagram.providers.ComrelElementTypes;
+
+/**
+ * @generated
+ */
+public class MultiFilterUnit5ItemSemanticEditPolicy extends
+ ComrelBaseItemSemanticEditPolicy {
+
+ /**
+ * @generated
+ */
+ public MultiFilterUnit5ItemSemanticEditPolicy() {
+ super(ComrelElementTypes.MultiFilterUnit_3064);
+ }
+
+ /**
+ * @generated
+ */
+ protected Command getCreateCommand(CreateElementRequest req) {
+ if (ComrelElementTypes.MultiInputPort_3020 == req.getElementType()) {
+ return getGEFWrapper(new MultiInputPort6CreateCommand(req));
+ }
+ if (ComrelElementTypes.MultiOutputPort_3021 == req.getElementType()) {
+ return getGEFWrapper(new MultiOutputPort2CreateCommand(req));
+ }
+ return super.getCreateCommand(req);
+ }
+
+ /**
+ * @generated
+ */
+ protected Command getDestroyElementCommand(DestroyElementRequest req) {
+ View view = (View) getHost().getModel();
+ CompositeTransactionalCommand cmd = new CompositeTransactionalCommand(
+ getEditingDomain(), null);
+ cmd.setTransactionNestingEnabled(false);
+ EAnnotation annotation = view.getEAnnotation("Shortcut"); //$NON-NLS-1$
+ if (annotation == null) {
+ // there are indirectly referenced children, need extra commands: false
+ addDestroyChildNodesCommand(cmd);
+ addDestroyShortcutsCommand(cmd, view);
+ // delete host element
+ cmd.add(new DestroyElementCommand(req));
+ } else {
+ cmd.add(new DeleteCommand(getEditingDomain(), view));
+ }
+ return getGEFWrapper(cmd.reduce());
+ }
+
+ /**
+ * @generated
+ */
+ private void addDestroyChildNodesCommand(ICompositeCommand cmd) {
+ View view = (View) getHost().getModel();
+ for (Iterator<?> nit = view.getChildren().iterator(); nit.hasNext();) {
+ Node node = (Node) nit.next();
+ switch (ComrelVisualIDRegistry.getVisualID(node)) {
+ case MultiInputPort6EditPart.VISUAL_ID:
+ for (Iterator<?> it = node.getTargetEdges().iterator(); it
+ .hasNext();) {
+ Edge incomingLink = (Edge) it.next();
+ if (ComrelVisualIDRegistry.getVisualID(incomingLink) == MultiPortMappingEditPart.VISUAL_ID) {
+ DestroyElementRequest r = new DestroyElementRequest(
+ incomingLink.getElement(), false);
+ cmd.add(new DestroyElementCommand(r));
+ cmd.add(new DeleteCommand(getEditingDomain(),
+ incomingLink));
+ continue;
+ }
+ }
+ for (Iterator<?> it = node.getSourceEdges().iterator(); it
+ .hasNext();) {
+ Edge outgoingLink = (Edge) it.next();
+ if (ComrelVisualIDRegistry.getVisualID(outgoingLink) == MultiPortMappingEditPart.VISUAL_ID) {
+ DestroyElementRequest r = new DestroyElementRequest(
+ outgoingLink.getElement(), false);
+ cmd.add(new DestroyElementCommand(r));
+ cmd.add(new DeleteCommand(getEditingDomain(),
+ outgoingLink));
+ continue;
+ }
+ if (ComrelVisualIDRegistry.getVisualID(outgoingLink) == MultiSinglePortMappingEditPart.VISUAL_ID) {
+ DestroyElementRequest r = new DestroyElementRequest(
+ outgoingLink.getElement(), false);
+ cmd.add(new DestroyElementCommand(r));
+ cmd.add(new DeleteCommand(getEditingDomain(),
+ outgoingLink));
+ continue;
+ }
+ }
+ cmd.add(new DestroyElementCommand(new DestroyElementRequest(
+ getEditingDomain(), node.getElement(), false))); // directlyOwned: true
+ // don't need explicit deletion of node as parent's view deletion would clean child views as well
+ // cmd.add(new org.eclipse.gmf.runtime.diagram.core.commands.DeleteCommand(getEditingDomain(), node));
+ break;
+ case MultiOutputPort2EditPart.VISUAL_ID:
+ for (Iterator<?> it = node.getSourceEdges().iterator(); it
+ .hasNext();) {
+ Edge outgoingLink = (Edge) it.next();
+ if (ComrelVisualIDRegistry.getVisualID(outgoingLink) == MultiPortMappingEditPart.VISUAL_ID) {
+ DestroyElementRequest r = new DestroyElementRequest(
+ outgoingLink.getElement(), false);
+ cmd.add(new DestroyElementCommand(r));
+ cmd.add(new DeleteCommand(getEditingDomain(),
+ outgoingLink));
+ continue;
+ }
+ if (ComrelVisualIDRegistry.getVisualID(outgoingLink) == MultiSinglePortMappingEditPart.VISUAL_ID) {
+ DestroyElementRequest r = new DestroyElementRequest(
+ outgoingLink.getElement(), false);
+ cmd.add(new DestroyElementCommand(r));
+ cmd.add(new DeleteCommand(getEditingDomain(),
+ outgoingLink));
+ continue;
+ }
+ }
+ cmd.add(new DestroyElementCommand(new DestroyElementRequest(
+ getEditingDomain(), node.getElement(), false))); // directlyOwned: true
+ // don't need explicit deletion of node as parent's view deletion would clean child views as well
+ // cmd.add(new org.eclipse.gmf.runtime.diagram.core.commands.DeleteCommand(getEditingDomain(), node));
+ break;
+ }
+ }
+ }
+
+}
diff --git a/org.eclipse.emf.refactor.comrel.diagram/src/comrel/diagram/edit/policies/MultiFilterUnitCanonicalEditPolicy.java b/org.eclipse.emf.refactor.comrel.diagram/src/comrel/diagram/edit/policies/MultiFilterUnitCanonicalEditPolicy.java
new file mode 100644
index 0000000..55ec48c
--- /dev/null
+++ b/org.eclipse.emf.refactor.comrel.diagram/src/comrel/diagram/edit/policies/MultiFilterUnitCanonicalEditPolicy.java
@@ -0,0 +1,178 @@
+/*
+ *
+ */
+package comrel.diagram.edit.policies;
+
+import java.util.ArrayList;
+import java.util.Collection;
+import java.util.HashSet;
+import java.util.Iterator;
+import java.util.LinkedList;
+import java.util.List;
+import java.util.Set;
+
+import org.eclipse.core.runtime.IAdaptable;
+import org.eclipse.emf.ecore.EObject;
+import org.eclipse.emf.ecore.EStructuralFeature;
+import org.eclipse.gef.commands.Command;
+import org.eclipse.gmf.runtime.diagram.core.util.ViewUtil;
+import org.eclipse.gmf.runtime.diagram.ui.commands.DeferredLayoutCommand;
+import org.eclipse.gmf.runtime.diagram.ui.commands.ICommandProxy;
+import org.eclipse.gmf.runtime.diagram.ui.commands.SetViewMutabilityCommand;
+import org.eclipse.gmf.runtime.diagram.ui.editpolicies.CanonicalEditPolicy;
+import org.eclipse.gmf.runtime.diagram.ui.requests.CreateViewRequest;
+import org.eclipse.gmf.runtime.emf.core.util.EObjectAdapter;
+import org.eclipse.gmf.runtime.notation.Node;
+import org.eclipse.gmf.runtime.notation.View;
+
+import comrel.ComrelPackage;
+import comrel.diagram.edit.parts.MultiInputPort6EditPart;
+import comrel.diagram.edit.parts.MultiOutputPort2EditPart;
+import comrel.diagram.part.ComrelDiagramUpdater;
+import comrel.diagram.part.ComrelNodeDescriptor;
+import comrel.diagram.part.ComrelVisualIDRegistry;
+
+/**
+ * @generated
+ */
+public class MultiFilterUnitCanonicalEditPolicy extends CanonicalEditPolicy {
+
+ /**
+ * @generated
+ */
+ private Set<EStructuralFeature> myFeaturesToSynchronize;
+
+ /**
+ * @generated
+ */
+ protected Set getFeaturesToSynchronize() {
+ if (myFeaturesToSynchronize == null) {
+ myFeaturesToSynchronize = new HashSet<EStructuralFeature>();
+ myFeaturesToSynchronize.add(ComrelPackage.eINSTANCE
+ .getMultiFilterUnit_InputPort());
+ myFeaturesToSynchronize.add(ComrelPackage.eINSTANCE
+ .getMultiFilterUnit_OutputPort());
+ }
+ return myFeaturesToSynchronize;
+ }
+
+ /**
+ * @generated
+ */
+ @SuppressWarnings("rawtypes")
+ protected List getSemanticChildrenList() {
+ View viewObject = (View) getHost().getModel();
+ LinkedList<EObject> result = new LinkedList<EObject>();
+ List<ComrelNodeDescriptor> childDescriptors = ComrelDiagramUpdater
+ .getMultiFilterUnit_3019SemanticChildren(viewObject);
+ for (ComrelNodeDescriptor d : childDescriptors) {
+ result.add(d.getModelElement());
+ }
+ return result;
+ }
+
+ /**
+ * @generated
+ */
+ protected boolean isOrphaned(Collection<EObject> semanticChildren,
+ final View view) {
+ return isMyDiagramElement(view)
+ && !semanticChildren.contains(view.getElement());
+ }
+
+ /**
+ * @generated
+ */
+ private boolean isMyDiagramElement(View view) {
+ int visualID = ComrelVisualIDRegistry.getVisualID(view);
+ return visualID == MultiInputPort6EditPart.VISUAL_ID
+ || visualID == MultiOutputPort2EditPart.VISUAL_ID;
+ }
+
+ /**
+ * @generated
+ */
+ protected void refreshSemantic() {
+ if (resolveSemanticElement() == null) {
+ return;
+ }
+ LinkedList<IAdaptable> createdViews = new LinkedList<IAdaptable>();
+ List<ComrelNodeDescriptor> childDescriptors = ComrelDiagramUpdater
+ .getMultiFilterUnit_3019SemanticChildren((View) getHost()
+ .getModel());
+ LinkedList<View> orphaned = new LinkedList<View>();
+ // we care to check only views we recognize as ours
+ LinkedList<View> knownViewChildren = new LinkedList<View>();
+ for (View v : getViewChildren()) {
+ if (isMyDiagramElement(v)) {
+ knownViewChildren.add(v);
+ }
+ }
+ // alternative to #cleanCanonicalSemanticChildren(getViewChildren(), semanticChildren)
+ //
+ // iteration happens over list of desired semantic elements, trying to find best matching View, while original CEP
+ // iterates views, potentially losing view (size/bounds) information - i.e. if there are few views to reference same EObject, only last one
+ // to answer isOrphaned == true will be used for the domain element representation, see #cleanCanonicalSemanticChildren()
+ for (Iterator<ComrelNodeDescriptor> descriptorsIterator = childDescriptors
+ .iterator(); descriptorsIterator.hasNext();) {
+ ComrelNodeDescriptor next = descriptorsIterator.next();
+ String hint = ComrelVisualIDRegistry.getType(next.getVisualID());
+ LinkedList<View> perfectMatch = new LinkedList<View>(); // both semanticElement and hint match that of NodeDescriptor
+ for (View childView : getViewChildren()) {
+ EObject semanticElement = childView.getElement();
+ if (next.getModelElement().equals(semanticElement)) {
+ if (hint.equals(childView.getType())) {
+ perfectMatch.add(childView);
+ // actually, can stop iteration over view children here, but
+ // may want to use not the first view but last one as a 'real' match (the way original CEP does
+ // with its trick with viewToSemanticMap inside #cleanCanonicalSemanticChildren
+ }
+ }
+ }
+ if (perfectMatch.size() > 0) {
+ descriptorsIterator.remove(); // precise match found no need to create anything for the NodeDescriptor
+ // use only one view (first or last?), keep rest as orphaned for further consideration
+ knownViewChildren.remove(perfectMatch.getFirst());
+ }
+ }
+ // those left in knownViewChildren are subject to removal - they are our diagram elements we didn't find match to,
+ // or those we have potential matches to, and thus need to be recreated, preserving size/location information.
+ orphaned.addAll(knownViewChildren);
+ //
+ ArrayList<CreateViewRequest.ViewDescriptor> viewDescriptors = new ArrayList<CreateViewRequest.ViewDescriptor>(
+ childDescriptors.size());
+ for (ComrelNodeDescriptor next : childDescriptors) {
+ String hint = ComrelVisualIDRegistry.getType(next.getVisualID());
+ IAdaptable elementAdapter = new CanonicalElementAdapter(
+ next.getModelElement(), hint);
+ CreateViewRequest.ViewDescriptor descriptor = new CreateViewRequest.ViewDescriptor(
+ elementAdapter, Node.class, hint, ViewUtil.APPEND, false,
+ host().getDiagramPreferencesHint());
+ viewDescriptors.add(descriptor);
+ }
+
+ boolean changed = deleteViews(orphaned.iterator());
+ //
+ CreateViewRequest request = getCreateViewRequest(viewDescriptors);
+ Command cmd = getCreateViewCommand(request);
+ if (cmd != null && cmd.canExecute()) {
+ SetViewMutabilityCommand.makeMutable(
+ new EObjectAdapter(host().getNotationView())).execute();
+ executeCommand(cmd);
+ @SuppressWarnings("unchecked")
+ List<IAdaptable> nl = (List<IAdaptable>) request.getNewObject();
+ createdViews.addAll(nl);
+ }
+ if (changed || createdViews.size() > 0) {
+ postProcessRefreshSemantic(createdViews);
+ }
+ if (createdViews.size() > 1) {
+ // perform a layout of the container
+ DeferredLayoutCommand layoutCmd = new DeferredLayoutCommand(host()
+ .getEditingDomain(), createdViews, host());
+ executeCommand(new ICommandProxy(layoutCmd));
+ }
+
+ makeViewsImmutable(createdViews);
+ }
+}
diff --git a/org.eclipse.emf.refactor.comrel.diagram/src/comrel/diagram/edit/policies/MultiFilterUnitItemSemanticEditPolicy.java b/org.eclipse.emf.refactor.comrel.diagram/src/comrel/diagram/edit/policies/MultiFilterUnitItemSemanticEditPolicy.java
new file mode 100644
index 0000000..b285fa9
--- /dev/null
+++ b/org.eclipse.emf.refactor.comrel.diagram/src/comrel/diagram/edit/policies/MultiFilterUnitItemSemanticEditPolicy.java
@@ -0,0 +1,152 @@
+/*
+ *
+ */
+package comrel.diagram.edit.policies;
+
+import java.util.Iterator;
+
+import org.eclipse.emf.ecore.EAnnotation;
+import org.eclipse.gef.commands.Command;
+import org.eclipse.gmf.runtime.common.core.command.ICompositeCommand;
+import org.eclipse.gmf.runtime.diagram.core.commands.DeleteCommand;
+import org.eclipse.gmf.runtime.emf.commands.core.command.CompositeTransactionalCommand;
+import org.eclipse.gmf.runtime.emf.type.core.commands.DestroyElementCommand;
+import org.eclipse.gmf.runtime.emf.type.core.requests.CreateElementRequest;
+import org.eclipse.gmf.runtime.emf.type.core.requests.DestroyElementRequest;
+import org.eclipse.gmf.runtime.notation.Edge;
+import org.eclipse.gmf.runtime.notation.Node;
+import org.eclipse.gmf.runtime.notation.View;
+
+import comrel.diagram.edit.commands.MultiInputPort6CreateCommand;
+import comrel.diagram.edit.commands.MultiOutputPort2CreateCommand;
+import comrel.diagram.edit.parts.MultiInputPort6EditPart;
+import comrel.diagram.edit.parts.MultiOutputPort2EditPart;
+import comrel.diagram.edit.parts.MultiPortMappingEditPart;
+import comrel.diagram.edit.parts.MultiSinglePortMappingEditPart;
+import comrel.diagram.part.ComrelVisualIDRegistry;
+import comrel.diagram.providers.ComrelElementTypes;
+
+/**
+ * @generated
+ */
+public class MultiFilterUnitItemSemanticEditPolicy extends
+ ComrelBaseItemSemanticEditPolicy {
+
+ /**
+ * @generated
+ */
+ public MultiFilterUnitItemSemanticEditPolicy() {
+ super(ComrelElementTypes.MultiFilterUnit_3019);
+ }
+
+ /**
+ * @generated
+ */
+ protected Command getCreateCommand(CreateElementRequest req) {
+ if (ComrelElementTypes.MultiInputPort_3020 == req.getElementType()) {
+ return getGEFWrapper(new MultiInputPort6CreateCommand(req));
+ }
+ if (ComrelElementTypes.MultiOutputPort_3021 == req.getElementType()) {
+ return getGEFWrapper(new MultiOutputPort2CreateCommand(req));
+ }
+ return super.getCreateCommand(req);
+ }
+
+ /**
+ * @generated
+ */
+ protected Command getDestroyElementCommand(DestroyElementRequest req) {
+ View view = (View) getHost().getModel();
+ CompositeTransactionalCommand cmd = new CompositeTransactionalCommand(
+ getEditingDomain(), null);
+ cmd.setTransactionNestingEnabled(false);
+ EAnnotation annotation = view.getEAnnotation("Shortcut"); //$NON-NLS-1$
+ if (annotation == null) {
+ // there are indirectly referenced children, need extra commands: false
+ addDestroyChildNodesCommand(cmd);
+ addDestroyShortcutsCommand(cmd, view);
+ // delete host element
+ cmd.add(new DestroyElementCommand(req));
+ } else {
+ cmd.add(new DeleteCommand(getEditingDomain(), view));
+ }
+ return getGEFWrapper(cmd.reduce());
+ }
+
+ /**
+ * @generated
+ */
+ private void addDestroyChildNodesCommand(ICompositeCommand cmd) {
+ View view = (View) getHost().getModel();
+ for (Iterator<?> nit = view.getChildren().iterator(); nit.hasNext();) {
+ Node node = (Node) nit.next();
+ switch (ComrelVisualIDRegistry.getVisualID(node)) {
+ case MultiInputPort6EditPart.VISUAL_ID:
+ for (Iterator<?> it = node.getTargetEdges().iterator(); it
+ .hasNext();) {
+ Edge incomingLink = (Edge) it.next();
+ if (ComrelVisualIDRegistry.getVisualID(incomingLink) == MultiPortMappingEditPart.VISUAL_ID) {
+ DestroyElementRequest r = new DestroyElementRequest(
+ incomingLink.getElement(), false);
+ cmd.add(new DestroyElementCommand(r));
+ cmd.add(new DeleteCommand(getEditingDomain(),
+ incomingLink));
+ continue;
+ }
+ }
+ for (Iterator<?> it = node.getSourceEdges().iterator(); it
+ .hasNext();) {
+ Edge outgoingLink = (Edge) it.next();
+ if (ComrelVisualIDRegistry.getVisualID(outgoingLink) == MultiPortMappingEditPart.VISUAL_ID) {
+ DestroyElementRequest r = new DestroyElementRequest(
+ outgoingLink.getElement(), false);
+ cmd.add(new DestroyElementCommand(r));
+ cmd.add(new DeleteCommand(getEditingDomain(),
+ outgoingLink));
+ continue;
+ }
+ if (ComrelVisualIDRegistry.getVisualID(outgoingLink) == MultiSinglePortMappingEditPart.VISUAL_ID) {
+ DestroyElementRequest r = new DestroyElementRequest(
+ outgoingLink.getElement(), false);
+ cmd.add(new DestroyElementCommand(r));
+ cmd.add(new DeleteCommand(getEditingDomain(),
+ outgoingLink));
+ continue;
+ }
+ }
+ cmd.add(new DestroyElementCommand(new DestroyElementRequest(
+ getEditingDomain(), node.getElement(), false))); // directlyOwned: true
+ // don't need explicit deletion of node as parent's view deletion would clean child views as well
+ // cmd.add(new org.eclipse.gmf.runtime.diagram.core.commands.DeleteCommand(getEditingDomain(), node));
+ break;
+ case MultiOutputPort2EditPart.VISUAL_ID:
+ for (Iterator<?> it = node.getSourceEdges().iterator(); it
+ .hasNext();) {
+ Edge outgoingLink = (Edge) it.next();
+ if (ComrelVisualIDRegistry.getVisualID(outgoingLink) == MultiPortMappingEditPart.VISUAL_ID) {
+ DestroyElementRequest r = new DestroyElementRequest(
+ outgoingLink.getElement(), false);
+ cmd.add(new DestroyElementCommand(r));
+ cmd.add(new DeleteCommand(getEditingDomain(),
+ outgoingLink));
+ continue;
+ }
+ if (ComrelVisualIDRegistry.getVisualID(outgoingLink) == MultiSinglePortMappingEditPart.VISUAL_ID) {
+ DestroyElementRequest r = new DestroyElementRequest(
+ outgoingLink.getElement(), false);
+ cmd.add(new DestroyElementCommand(r));
+ cmd.add(new DeleteCommand(getEditingDomain(),
+ outgoingLink));
+ continue;
+ }
+ }
+ cmd.add(new DestroyElementCommand(new DestroyElementRequest(
+ getEditingDomain(), node.getElement(), false))); // directlyOwned: true
+ // don't need explicit deletion of node as parent's view deletion would clean child views as well
+ // cmd.add(new org.eclipse.gmf.runtime.diagram.core.commands.DeleteCommand(getEditingDomain(), node));
+ break;
+ }
+ }
+ }
+
+}
diff --git a/org.eclipse.emf.refactor.comrel.diagram/src/comrel/diagram/edit/policies/MultiInputPort2ItemSemanticEditPolicy.java b/org.eclipse.emf.refactor.comrel.diagram/src/comrel/diagram/edit/policies/MultiInputPort2ItemSemanticEditPolicy.java
new file mode 100644
index 0000000..6b97356
--- /dev/null
+++ b/org.eclipse.emf.refactor.comrel.diagram/src/comrel/diagram/edit/policies/MultiInputPort2ItemSemanticEditPolicy.java
@@ -0,0 +1,148 @@
+/*
+ *
+ */
+package comrel.diagram.edit.policies;
+
+import java.util.Iterator;
+
+import org.eclipse.emf.ecore.EAnnotation;
+import org.eclipse.gef.commands.Command;
+import org.eclipse.gmf.runtime.diagram.core.commands.DeleteCommand;
+import org.eclipse.gmf.runtime.emf.commands.core.command.CompositeTransactionalCommand;
+import org.eclipse.gmf.runtime.emf.type.core.commands.DestroyElementCommand;
+import org.eclipse.gmf.runtime.emf.type.core.requests.CreateRelationshipRequest;
+import org.eclipse.gmf.runtime.emf.type.core.requests.DestroyElementRequest;
+import org.eclipse.gmf.runtime.emf.type.core.requests.ReorientRelationshipRequest;
+import org.eclipse.gmf.runtime.notation.Edge;
+import org.eclipse.gmf.runtime.notation.View;
+
+import comrel.diagram.edit.commands.MultiPortMappingCreateCommand;
+import comrel.diagram.edit.commands.MultiPortMappingReorientCommand;
+import comrel.diagram.edit.commands.MultiSinglePortMappingCreateCommand;
+import comrel.diagram.edit.commands.MultiSinglePortMappingReorientCommand;
+import comrel.diagram.edit.parts.MultiPortMappingEditPart;
+import comrel.diagram.edit.parts.MultiSinglePortMappingEditPart;
+import comrel.diagram.part.ComrelVisualIDRegistry;
+import comrel.diagram.providers.ComrelElementTypes;
+
+/**
+ * @generated
+ */
+public class MultiInputPort2ItemSemanticEditPolicy extends
+ ComrelBaseItemSemanticEditPolicy {
+
+ /**
+ * @generated
+ */
+ public MultiInputPort2ItemSemanticEditPolicy() {
+ super(ComrelElementTypes.MultiInputPort_3006);
+ }
+
+ /**
+ * @generated
+ */
+ protected Command getDestroyElementCommand(DestroyElementRequest req) {
+ View view = (View) getHost().getModel();
+ CompositeTransactionalCommand cmd = new CompositeTransactionalCommand(
+ getEditingDomain(), null);
+ cmd.setTransactionNestingEnabled(false);
+ for (Iterator<?> it = view.getTargetEdges().iterator(); it.hasNext();) {
+ Edge incomingLink = (Edge) it.next();
+ if (ComrelVisualIDRegistry.getVisualID(incomingLink) == MultiPortMappingEditPart.VISUAL_ID) {
+ DestroyElementRequest r = new DestroyElementRequest(
+ incomingLink.getElement(), false);
+ cmd.add(new DestroyElementCommand(r));
+ cmd.add(new DeleteCommand(getEditingDomain(), incomingLink));
+ continue;
+ }
+ }
+ for (Iterator<?> it = view.getSourceEdges().iterator(); it.hasNext();) {
+ Edge outgoingLink = (Edge) it.next();
+ if (ComrelVisualIDRegistry.getVisualID(outgoingLink) == MultiPortMappingEditPart.VISUAL_ID) {
+ DestroyElementRequest r = new DestroyElementRequest(
+ outgoingLink.getElement(), false);
+ cmd.add(new DestroyElementCommand(r));
+ cmd.add(new DeleteCommand(getEditingDomain(), outgoingLink));
+ continue;
+ }
+ if (ComrelVisualIDRegistry.getVisualID(outgoingLink) == MultiSinglePortMappingEditPart.VISUAL_ID) {
+ DestroyElementRequest r = new DestroyElementRequest(
+ outgoingLink.getElement(), false);
+ cmd.add(new DestroyElementCommand(r));
+ cmd.add(new DeleteCommand(getEditingDomain(), outgoingLink));
+ continue;
+ }
+ }
+ EAnnotation annotation = view.getEAnnotation("Shortcut"); //$NON-NLS-1$
+ if (annotation == null) {
+ // there are indirectly referenced children, need extra commands: false
+ addDestroyShortcutsCommand(cmd, view);
+ // delete host element
+ cmd.add(new DestroyElementCommand(req));
+ } else {
+ cmd.add(new DeleteCommand(getEditingDomain(), view));
+ }
+ return getGEFWrapper(cmd.reduce());
+ }
+
+ /**
+ * @generated
+ */
+ protected Command getCreateRelationshipCommand(CreateRelationshipRequest req) {
+ Command command = req.getTarget() == null ? getStartCreateRelationshipCommand(req)
+ : getCompleteCreateRelationshipCommand(req);
+ return command != null ? command : super
+ .getCreateRelationshipCommand(req);
+ }
+
+ /**
+ * @generated
+ */
+ protected Command getStartCreateRelationshipCommand(
+ CreateRelationshipRequest req) {
+ if (ComrelElementTypes.MultiPortMapping_4002 == req.getElementType()) {
+ return getGEFWrapper(new MultiPortMappingCreateCommand(req,
+ req.getSource(), req.getTarget()));
+ }
+ if (ComrelElementTypes.MultiSinglePortMapping_4003 == req
+ .getElementType()) {
+ return getGEFWrapper(new MultiSinglePortMappingCreateCommand(req,
+ req.getSource(), req.getTarget()));
+ }
+ return null;
+ }
+
+ /**
+ * @generated
+ */
+ protected Command getCompleteCreateRelationshipCommand(
+ CreateRelationshipRequest req) {
+ if (ComrelElementTypes.MultiPortMapping_4002 == req.getElementType()) {
+ return getGEFWrapper(new MultiPortMappingCreateCommand(req,
+ req.getSource(), req.getTarget()));
+ }
+ if (ComrelElementTypes.MultiSinglePortMapping_4003 == req
+ .getElementType()) {
+ return null;
+ }
+ return null;
+ }
+
+ /**
+ * Returns command to reorient EClass based link. New link target or source
+ * should be the domain model element associated with this node.
+ *
+ * @generated
+ */
+ protected Command getReorientRelationshipCommand(
+ ReorientRelationshipRequest req) {
+ switch (getVisualID(req)) {
+ case MultiPortMappingEditPart.VISUAL_ID:
+ return getGEFWrapper(new MultiPortMappingReorientCommand(req));
+ case MultiSinglePortMappingEditPart.VISUAL_ID:
+ return getGEFWrapper(new MultiSinglePortMappingReorientCommand(req));
+ }
+ return super.getReorientRelationshipCommand(req);
+ }
+
+}
diff --git a/org.eclipse.emf.refactor.comrel.diagram/src/comrel/diagram/edit/policies/MultiInputPort3ItemSemanticEditPolicy.java b/org.eclipse.emf.refactor.comrel.diagram/src/comrel/diagram/edit/policies/MultiInputPort3ItemSemanticEditPolicy.java
new file mode 100644
index 0000000..7e7d3e2
--- /dev/null
+++ b/org.eclipse.emf.refactor.comrel.diagram/src/comrel/diagram/edit/policies/MultiInputPort3ItemSemanticEditPolicy.java
@@ -0,0 +1,148 @@
+/*
+ *
+ */
+package comrel.diagram.edit.policies;
+
+import java.util.Iterator;
+
+import org.eclipse.emf.ecore.EAnnotation;
+import org.eclipse.gef.commands.Command;
+import org.eclipse.gmf.runtime.diagram.core.commands.DeleteCommand;
+import org.eclipse.gmf.runtime.emf.commands.core.command.CompositeTransactionalCommand;
+import org.eclipse.gmf.runtime.emf.type.core.commands.DestroyElementCommand;
+import org.eclipse.gmf.runtime.emf.type.core.requests.CreateRelationshipRequest;
+import org.eclipse.gmf.runtime.emf.type.core.requests.DestroyElementRequest;
+import org.eclipse.gmf.runtime.emf.type.core.requests.ReorientRelationshipRequest;
+import org.eclipse.gmf.runtime.notation.Edge;
+import org.eclipse.gmf.runtime.notation.View;
+
+import comrel.diagram.edit.commands.MultiPortMappingCreateCommand;
+import comrel.diagram.edit.commands.MultiPortMappingReorientCommand;
+import comrel.diagram.edit.commands.MultiSinglePortMappingCreateCommand;
+import comrel.diagram.edit.commands.MultiSinglePortMappingReorientCommand;
+import comrel.diagram.edit.parts.MultiPortMappingEditPart;
+import comrel.diagram.edit.parts.MultiSinglePortMappingEditPart;
+import comrel.diagram.part.ComrelVisualIDRegistry;
+import comrel.diagram.providers.ComrelElementTypes;
+
+/**
+ * @generated
+ */
+public class MultiInputPort3ItemSemanticEditPolicy extends
+ ComrelBaseItemSemanticEditPolicy {
+
+ /**
+ * @generated
+ */
+ public MultiInputPort3ItemSemanticEditPolicy() {
+ super(ComrelElementTypes.MultiInputPort_3010);
+ }
+
+ /**
+ * @generated
+ */
+ protected Command getDestroyElementCommand(DestroyElementRequest req) {
+ View view = (View) getHost().getModel();
+ CompositeTransactionalCommand cmd = new CompositeTransactionalCommand(
+ getEditingDomain(), null);
+ cmd.setTransactionNestingEnabled(false);
+ for (Iterator<?> it = view.getTargetEdges().iterator(); it.hasNext();) {
+ Edge incomingLink = (Edge) it.next();
+ if (ComrelVisualIDRegistry.getVisualID(incomingLink) == MultiPortMappingEditPart.VISUAL_ID) {
+ DestroyElementRequest r = new DestroyElementRequest(
+ incomingLink.getElement(), false);
+ cmd.add(new DestroyElementCommand(r));
+ cmd.add(new DeleteCommand(getEditingDomain(), incomingLink));
+ continue;
+ }
+ }
+ for (Iterator<?> it = view.getSourceEdges().iterator(); it.hasNext();) {
+ Edge outgoingLink = (Edge) it.next();
+ if (ComrelVisualIDRegistry.getVisualID(outgoingLink) == MultiPortMappingEditPart.VISUAL_ID) {
+ DestroyElementRequest r = new DestroyElementRequest(
+ outgoingLink.getElement(), false);
+ cmd.add(new DestroyElementCommand(r));
+ cmd.add(new DeleteCommand(getEditingDomain(), outgoingLink));
+ continue;
+ }
+ if (ComrelVisualIDRegistry.getVisualID(outgoingLink) == MultiSinglePortMappingEditPart.VISUAL_ID) {
+ DestroyElementRequest r = new DestroyElementRequest(
+ outgoingLink.getElement(), false);
+ cmd.add(new DestroyElementCommand(r));
+ cmd.add(new DeleteCommand(getEditingDomain(), outgoingLink));
+ continue;
+ }
+ }
+ EAnnotation annotation = view.getEAnnotation("Shortcut"); //$NON-NLS-1$
+ if (annotation == null) {
+ // there are indirectly referenced children, need extra commands: false
+ addDestroyShortcutsCommand(cmd, view);
+ // delete host element
+ cmd.add(new DestroyElementCommand(req));
+ } else {
+ cmd.add(new DeleteCommand(getEditingDomain(), view));
+ }
+ return getGEFWrapper(cmd.reduce());
+ }
+
+ /**
+ * @generated
+ */
+ protected Command getCreateRelationshipCommand(CreateRelationshipRequest req) {
+ Command command = req.getTarget() == null ? getStartCreateRelationshipCommand(req)
+ : getCompleteCreateRelationshipCommand(req);
+ return command != null ? command : super
+ .getCreateRelationshipCommand(req);
+ }
+
+ /**
+ * @generated
+ */
+ protected Command getStartCreateRelationshipCommand(
+ CreateRelationshipRequest req) {
+ if (ComrelElementTypes.MultiPortMapping_4002 == req.getElementType()) {
+ return getGEFWrapper(new MultiPortMappingCreateCommand(req,
+ req.getSource(), req.getTarget()));
+ }
+ if (ComrelElementTypes.MultiSinglePortMapping_4003 == req
+ .getElementType()) {
+ return getGEFWrapper(new MultiSinglePortMappingCreateCommand(req,
+ req.getSource(), req.getTarget()));
+ }
+ return null;
+ }
+
+ /**
+ * @generated
+ */
+ protected Command getCompleteCreateRelationshipCommand(
+ CreateRelationshipRequest req) {
+ if (ComrelElementTypes.MultiPortMapping_4002 == req.getElementType()) {
+ return getGEFWrapper(new MultiPortMappingCreateCommand(req,
+ req.getSource(), req.getTarget()));
+ }
+ if (ComrelElementTypes.MultiSinglePortMapping_4003 == req
+ .getElementType()) {
+ return null;
+ }
+ return null;
+ }
+
+ /**
+ * Returns command to reorient EClass based link. New link target or source
+ * should be the domain model element associated with this node.
+ *
+ * @generated
+ */
+ protected Command getReorientRelationshipCommand(
+ ReorientRelationshipRequest req) {
+ switch (getVisualID(req)) {
+ case MultiPortMappingEditPart.VISUAL_ID:
+ return getGEFWrapper(new MultiPortMappingReorientCommand(req));
+ case MultiSinglePortMappingEditPart.VISUAL_ID:
+ return getGEFWrapper(new MultiSinglePortMappingReorientCommand(req));
+ }
+ return super.getReorientRelationshipCommand(req);
+ }
+
+}
diff --git a/org.eclipse.emf.refactor.comrel.diagram/src/comrel/diagram/edit/policies/MultiInputPort4ItemSemanticEditPolicy.java b/org.eclipse.emf.refactor.comrel.diagram/src/comrel/diagram/edit/policies/MultiInputPort4ItemSemanticEditPolicy.java
new file mode 100644
index 0000000..0f6c2f4
--- /dev/null
+++ b/org.eclipse.emf.refactor.comrel.diagram/src/comrel/diagram/edit/policies/MultiInputPort4ItemSemanticEditPolicy.java
@@ -0,0 +1,148 @@
+/*
+ *
+ */
+package comrel.diagram.edit.policies;
+
+import java.util.Iterator;
+
+import org.eclipse.emf.ecore.EAnnotation;
+import org.eclipse.gef.commands.Command;
+import org.eclipse.gmf.runtime.diagram.core.commands.DeleteCommand;
+import org.eclipse.gmf.runtime.emf.commands.core.command.CompositeTransactionalCommand;
+import org.eclipse.gmf.runtime.emf.type.core.commands.DestroyElementCommand;
+import org.eclipse.gmf.runtime.emf.type.core.requests.CreateRelationshipRequest;
+import org.eclipse.gmf.runtime.emf.type.core.requests.DestroyElementRequest;
+import org.eclipse.gmf.runtime.emf.type.core.requests.ReorientRelationshipRequest;
+import org.eclipse.gmf.runtime.notation.Edge;
+import org.eclipse.gmf.runtime.notation.View;
+
+import comrel.diagram.edit.commands.MultiPortMappingCreateCommand;
+import comrel.diagram.edit.commands.MultiPortMappingReorientCommand;
+import comrel.diagram.edit.commands.MultiSinglePortMappingCreateCommand;
+import comrel.diagram.edit.commands.MultiSinglePortMappingReorientCommand;
+import comrel.diagram.edit.parts.MultiPortMappingEditPart;
+import comrel.diagram.edit.parts.MultiSinglePortMappingEditPart;
+import comrel.diagram.part.ComrelVisualIDRegistry;
+import comrel.diagram.providers.ComrelElementTypes;
+
+/**
+ * @generated
+ */
+public class MultiInputPort4ItemSemanticEditPolicy extends
+ ComrelBaseItemSemanticEditPolicy {
+
+ /**
+ * @generated
+ */
+ public MultiInputPort4ItemSemanticEditPolicy() {
+ super(ComrelElementTypes.MultiInputPort_3014);
+ }
+
+ /**
+ * @generated
+ */
+ protected Command getDestroyElementCommand(DestroyElementRequest req) {
+ View view = (View) getHost().getModel();
+ CompositeTransactionalCommand cmd = new CompositeTransactionalCommand(
+ getEditingDomain(), null);
+ cmd.setTransactionNestingEnabled(false);
+ for (Iterator<?> it = view.getTargetEdges().iterator(); it.hasNext();) {
+ Edge incomingLink = (Edge) it.next();
+ if (ComrelVisualIDRegistry.getVisualID(incomingLink) == MultiPortMappingEditPart.VISUAL_ID) {
+ DestroyElementRequest r = new DestroyElementRequest(
+ incomingLink.getElement(), false);
+ cmd.add(new DestroyElementCommand(r));
+ cmd.add(new DeleteCommand(getEditingDomain(), incomingLink));
+ continue;
+ }
+ }
+ for (Iterator<?> it = view.getSourceEdges().iterator(); it.hasNext();) {
+ Edge outgoingLink = (Edge) it.next();
+ if (ComrelVisualIDRegistry.getVisualID(outgoingLink) == MultiPortMappingEditPart.VISUAL_ID) {
+ DestroyElementRequest r = new DestroyElementRequest(
+ outgoingLink.getElement(), false);
+ cmd.add(new DestroyElementCommand(r));
+ cmd.add(new DeleteCommand(getEditingDomain(), outgoingLink));
+ continue;
+ }
+ if (ComrelVisualIDRegistry.getVisualID(outgoingLink) == MultiSinglePortMappingEditPart.VISUAL_ID) {
+ DestroyElementRequest r = new DestroyElementRequest(
+ outgoingLink.getElement(), false);
+ cmd.add(new DestroyElementCommand(r));
+ cmd.add(new DeleteCommand(getEditingDomain(), outgoingLink));
+ continue;
+ }
+ }
+ EAnnotation annotation = view.getEAnnotation("Shortcut"); //$NON-NLS-1$
+ if (annotation == null) {
+ // there are indirectly referenced children, need extra commands: false
+ addDestroyShortcutsCommand(cmd, view);
+ // delete host element
+ cmd.add(new DestroyElementCommand(req));
+ } else {
+ cmd.add(new DeleteCommand(getEditingDomain(), view));
+ }
+ return getGEFWrapper(cmd.reduce());
+ }
+
+ /**
+ * @generated
+ */
+ protected Command getCreateRelationshipCommand(CreateRelationshipRequest req) {
+ Command command = req.getTarget() == null ? getStartCreateRelationshipCommand(req)
+ : getCompleteCreateRelationshipCommand(req);
+ return command != null ? command : super
+ .getCreateRelationshipCommand(req);
+ }
+
+ /**
+ * @generated
+ */
+ protected Command getStartCreateRelationshipCommand(
+ CreateRelationshipRequest req) {
+ if (ComrelElementTypes.MultiPortMapping_4002 == req.getElementType()) {
+ return getGEFWrapper(new MultiPortMappingCreateCommand(req,
+ req.getSource(), req.getTarget()));
+ }
+ if (ComrelElementTypes.MultiSinglePortMapping_4003 == req
+ .getElementType()) {
+ return getGEFWrapper(new MultiSinglePortMappingCreateCommand(req,
+ req.getSource(), req.getTarget()));
+ }
+ return null;
+ }
+
+ /**
+ * @generated
+ */
+ protected Command getCompleteCreateRelationshipCommand(
+ CreateRelationshipRequest req) {
+ if (ComrelElementTypes.MultiPortMapping_4002 == req.getElementType()) {
+ return getGEFWrapper(new MultiPortMappingCreateCommand(req,
+ req.getSource(), req.getTarget()));
+ }
+ if (ComrelElementTypes.MultiSinglePortMapping_4003 == req
+ .getElementType()) {
+ return null;
+ }
+ return null;
+ }
+
+ /**
+ * Returns command to reorient EClass based link. New link target or source
+ * should be the domain model element associated with this node.
+ *
+ * @generated
+ */
+ protected Command getReorientRelationshipCommand(
+ ReorientRelationshipRequest req) {
+ switch (getVisualID(req)) {
+ case MultiPortMappingEditPart.VISUAL_ID:
+ return getGEFWrapper(new MultiPortMappingReorientCommand(req));
+ case MultiSinglePortMappingEditPart.VISUAL_ID:
+ return getGEFWrapper(new MultiSinglePortMappingReorientCommand(req));
+ }
+ return super.getReorientRelationshipCommand(req);
+ }
+
+}
diff --git a/org.eclipse.emf.refactor.comrel.diagram/src/comrel/diagram/edit/policies/MultiInputPort5ItemSemanticEditPolicy.java b/org.eclipse.emf.refactor.comrel.diagram/src/comrel/diagram/edit/policies/MultiInputPort5ItemSemanticEditPolicy.java
new file mode 100644
index 0000000..cf79f49
--- /dev/null
+++ b/org.eclipse.emf.refactor.comrel.diagram/src/comrel/diagram/edit/policies/MultiInputPort5ItemSemanticEditPolicy.java
@@ -0,0 +1,148 @@
+/*
+ *
+ */
+package comrel.diagram.edit.policies;
+
+import java.util.Iterator;
+
+import org.eclipse.emf.ecore.EAnnotation;
+import org.eclipse.gef.commands.Command;
+import org.eclipse.gmf.runtime.diagram.core.commands.DeleteCommand;
+import org.eclipse.gmf.runtime.emf.commands.core.command.CompositeTransactionalCommand;
+import org.eclipse.gmf.runtime.emf.type.core.commands.DestroyElementCommand;
+import org.eclipse.gmf.runtime.emf.type.core.requests.CreateRelationshipRequest;
+import org.eclipse.gmf.runtime.emf.type.core.requests.DestroyElementRequest;
+import org.eclipse.gmf.runtime.emf.type.core.requests.ReorientRelationshipRequest;
+import org.eclipse.gmf.runtime.notation.Edge;
+import org.eclipse.gmf.runtime.notation.View;
+
+import comrel.diagram.edit.commands.MultiPortMappingCreateCommand;
+import comrel.diagram.edit.commands.MultiPortMappingReorientCommand;
+import comrel.diagram.edit.commands.MultiSinglePortMappingCreateCommand;
+import comrel.diagram.edit.commands.MultiSinglePortMappingReorientCommand;
+import comrel.diagram.edit.parts.MultiPortMappingEditPart;
+import comrel.diagram.edit.parts.MultiSinglePortMappingEditPart;
+import comrel.diagram.part.ComrelVisualIDRegistry;
+import comrel.diagram.providers.ComrelElementTypes;
+
+/**
+ * @generated
+ */
+public class MultiInputPort5ItemSemanticEditPolicy extends
+ ComrelBaseItemSemanticEditPolicy {
+
+ /**
+ * @generated
+ */
+ public MultiInputPort5ItemSemanticEditPolicy() {
+ super(ComrelElementTypes.MultiInputPort_3017);
+ }
+
+ /**
+ * @generated
+ */
+ protected Command getDestroyElementCommand(DestroyElementRequest req) {
+ View view = (View) getHost().getModel();
+ CompositeTransactionalCommand cmd = new CompositeTransactionalCommand(
+ getEditingDomain(), null);
+ cmd.setTransactionNestingEnabled(false);
+ for (Iterator<?> it = view.getTargetEdges().iterator(); it.hasNext();) {
+ Edge incomingLink = (Edge) it.next();
+ if (ComrelVisualIDRegistry.getVisualID(incomingLink) == MultiPortMappingEditPart.VISUAL_ID) {
+ DestroyElementRequest r = new DestroyElementRequest(
+ incomingLink.getElement(), false);
+ cmd.add(new DestroyElementCommand(r));
+ cmd.add(new DeleteCommand(getEditingDomain(), incomingLink));
+ continue;
+ }
+ }
+ for (Iterator<?> it = view.getSourceEdges().iterator(); it.hasNext();) {
+ Edge outgoingLink = (Edge) it.next();
+ if (ComrelVisualIDRegistry.getVisualID(outgoingLink) == MultiPortMappingEditPart.VISUAL_ID) {
+ DestroyElementRequest r = new DestroyElementRequest(
+ outgoingLink.getElement(), false);
+ cmd.add(new DestroyElementCommand(r));
+ cmd.add(new DeleteCommand(getEditingDomain(), outgoingLink));
+ continue;
+ }
+ if (ComrelVisualIDRegistry.getVisualID(outgoingLink) == MultiSinglePortMappingEditPart.VISUAL_ID) {
+ DestroyElementRequest r = new DestroyElementRequest(
+ outgoingLink.getElement(), false);
+ cmd.add(new DestroyElementCommand(r));
+ cmd.add(new DeleteCommand(getEditingDomain(), outgoingLink));
+ continue;
+ }
+ }
+ EAnnotation annotation = view.getEAnnotation("Shortcut"); //$NON-NLS-1$
+ if (annotation == null) {
+ // there are indirectly referenced children, need extra commands: false
+ addDestroyShortcutsCommand(cmd, view);
+ // delete host element
+ cmd.add(new DestroyElementCommand(req));
+ } else {
+ cmd.add(new DeleteCommand(getEditingDomain(), view));
+ }
+ return getGEFWrapper(cmd.reduce());
+ }
+
+ /**
+ * @generated
+ */
+ protected Command getCreateRelationshipCommand(CreateRelationshipRequest req) {
+ Command command = req.getTarget() == null ? getStartCreateRelationshipCommand(req)
+ : getCompleteCreateRelationshipCommand(req);
+ return command != null ? command : super
+ .getCreateRelationshipCommand(req);
+ }
+
+ /**
+ * @generated
+ */
+ protected Command getStartCreateRelationshipCommand(
+ CreateRelationshipRequest req) {
+ if (ComrelElementTypes.MultiPortMapping_4002 == req.getElementType()) {
+ return getGEFWrapper(new MultiPortMappingCreateCommand(req,
+ req.getSource(), req.getTarget()));
+ }
+ if (ComrelElementTypes.MultiSinglePortMapping_4003 == req
+ .getElementType()) {
+ return getGEFWrapper(new MultiSinglePortMappingCreateCommand(req,
+ req.getSource(), req.getTarget()));
+ }
+ return null;
+ }
+
+ /**
+ * @generated
+ */
+ protected Command getCompleteCreateRelationshipCommand(
+ CreateRelationshipRequest req) {
+ if (ComrelElementTypes.MultiPortMapping_4002 == req.getElementType()) {
+ return getGEFWrapper(new MultiPortMappingCreateCommand(req,
+ req.getSource(), req.getTarget()));
+ }
+ if (ComrelElementTypes.MultiSinglePortMapping_4003 == req
+ .getElementType()) {
+ return null;
+ }
+ return null;
+ }
+
+ /**
+ * Returns command to reorient EClass based link. New link target or source
+ * should be the domain model element associated with this node.
+ *
+ * @generated
+ */
+ protected Command getReorientRelationshipCommand(
+ ReorientRelationshipRequest req) {
+ switch (getVisualID(req)) {
+ case MultiPortMappingEditPart.VISUAL_ID:
+ return getGEFWrapper(new MultiPortMappingReorientCommand(req));
+ case MultiSinglePortMappingEditPart.VISUAL_ID:
+ return getGEFWrapper(new MultiSinglePortMappingReorientCommand(req));
+ }
+ return super.getReorientRelationshipCommand(req);
+ }
+
+}
diff --git a/org.eclipse.emf.refactor.comrel.diagram/src/comrel/diagram/edit/policies/MultiInputPort6ItemSemanticEditPolicy.java b/org.eclipse.emf.refactor.comrel.diagram/src/comrel/diagram/edit/policies/MultiInputPort6ItemSemanticEditPolicy.java
new file mode 100644
index 0000000..4dbd5a1
--- /dev/null
+++ b/org.eclipse.emf.refactor.comrel.diagram/src/comrel/diagram/edit/policies/MultiInputPort6ItemSemanticEditPolicy.java
@@ -0,0 +1,148 @@
+/*
+ *
+ */
+package comrel.diagram.edit.policies;
+
+import java.util.Iterator;
+
+import org.eclipse.emf.ecore.EAnnotation;
+import org.eclipse.gef.commands.Command;
+import org.eclipse.gmf.runtime.diagram.core.commands.DeleteCommand;
+import org.eclipse.gmf.runtime.emf.commands.core.command.CompositeTransactionalCommand;
+import org.eclipse.gmf.runtime.emf.type.core.commands.DestroyElementCommand;
+import org.eclipse.gmf.runtime.emf.type.core.requests.CreateRelationshipRequest;
+import org.eclipse.gmf.runtime.emf.type.core.requests.DestroyElementRequest;
+import org.eclipse.gmf.runtime.emf.type.core.requests.ReorientRelationshipRequest;
+import org.eclipse.gmf.runtime.notation.Edge;
+import org.eclipse.gmf.runtime.notation.View;
+
+import comrel.diagram.edit.commands.MultiPortMappingCreateCommand;
+import comrel.diagram.edit.commands.MultiPortMappingReorientCommand;
+import comrel.diagram.edit.commands.MultiSinglePortMappingCreateCommand;
+import comrel.diagram.edit.commands.MultiSinglePortMappingReorientCommand;
+import comrel.diagram.edit.parts.MultiPortMappingEditPart;
+import comrel.diagram.edit.parts.MultiSinglePortMappingEditPart;
+import comrel.diagram.part.ComrelVisualIDRegistry;
+import comrel.diagram.providers.ComrelElementTypes;
+
+/**
+ * @generated
+ */
+public class MultiInputPort6ItemSemanticEditPolicy extends
+ ComrelBaseItemSemanticEditPolicy {
+
+ /**
+ * @generated
+ */
+ public MultiInputPort6ItemSemanticEditPolicy() {
+ super(ComrelElementTypes.MultiInputPort_3020);
+ }
+
+ /**
+ * @generated
+ */
+ protected Command getDestroyElementCommand(DestroyElementRequest req) {
+ View view = (View) getHost().getModel();
+ CompositeTransactionalCommand cmd = new CompositeTransactionalCommand(
+ getEditingDomain(), null);
+ cmd.setTransactionNestingEnabled(false);
+ for (Iterator<?> it = view.getTargetEdges().iterator(); it.hasNext();) {
+ Edge incomingLink = (Edge) it.next();
+ if (ComrelVisualIDRegistry.getVisualID(incomingLink) == MultiPortMappingEditPart.VISUAL_ID) {
+ DestroyElementRequest r = new DestroyElementRequest(
+ incomingLink.getElement(), false);
+ cmd.add(new DestroyElementCommand(r));
+ cmd.add(new DeleteCommand(getEditingDomain(), incomingLink));
+ continue;
+ }
+ }
+ for (Iterator<?> it = view.getSourceEdges().iterator(); it.hasNext();) {
+ Edge outgoingLink = (Edge) it.next();
+ if (ComrelVisualIDRegistry.getVisualID(outgoingLink) == MultiPortMappingEditPart.VISUAL_ID) {
+ DestroyElementRequest r = new DestroyElementRequest(
+ outgoingLink.getElement(), false);
+ cmd.add(new DestroyElementCommand(r));
+ cmd.add(new DeleteCommand(getEditingDomain(), outgoingLink));
+ continue;
+ }
+ if (ComrelVisualIDRegistry.getVisualID(outgoingLink) == MultiSinglePortMappingEditPart.VISUAL_ID) {
+ DestroyElementRequest r = new DestroyElementRequest(
+ outgoingLink.getElement(), false);
+ cmd.add(new DestroyElementCommand(r));
+ cmd.add(new DeleteCommand(getEditingDomain(), outgoingLink));
+ continue;
+ }
+ }
+ EAnnotation annotation = view.getEAnnotation("Shortcut"); //$NON-NLS-1$
+ if (annotation == null) {
+ // there are indirectly referenced children, need extra commands: false
+ addDestroyShortcutsCommand(cmd, view);
+ // delete host element
+ cmd.add(new DestroyElementCommand(req));
+ } else {
+ cmd.add(new DeleteCommand(getEditingDomain(), view));
+ }
+ return getGEFWrapper(cmd.reduce());
+ }
+
+ /**
+ * @generated
+ */
+ protected Command getCreateRelationshipCommand(CreateRelationshipRequest req) {
+ Command command = req.getTarget() == null ? getStartCreateRelationshipCommand(req)
+ : getCompleteCreateRelationshipCommand(req);
+ return command != null ? command : super
+ .getCreateRelationshipCommand(req);
+ }
+
+ /**
+ * @generated
+ */
+ protected Command getStartCreateRelationshipCommand(
+ CreateRelationshipRequest req) {
+ if (ComrelElementTypes.MultiPortMapping_4002 == req.getElementType()) {
+ return getGEFWrapper(new MultiPortMappingCreateCommand(req,
+ req.getSource(), req.getTarget()));
+ }
+ if (ComrelElementTypes.MultiSinglePortMapping_4003 == req
+ .getElementType()) {
+ return getGEFWrapper(new MultiSinglePortMappingCreateCommand(req,
+ req.getSource(), req.getTarget()));
+ }
+ return null;
+ }
+
+ /**
+ * @generated
+ */
+ protected Command getCompleteCreateRelationshipCommand(
+ CreateRelationshipRequest req) {
+ if (ComrelElementTypes.MultiPortMapping_4002 == req.getElementType()) {
+ return getGEFWrapper(new MultiPortMappingCreateCommand(req,
+ req.getSource(), req.getTarget()));
+ }
+ if (ComrelElementTypes.MultiSinglePortMapping_4003 == req
+ .getElementType()) {
+ return null;
+ }
+ return null;
+ }
+
+ /**
+ * Returns command to reorient EClass based link. New link target or source
+ * should be the domain model element associated with this node.
+ *
+ * @generated
+ */
+ protected Command getReorientRelationshipCommand(
+ ReorientRelationshipRequest req) {
+ switch (getVisualID(req)) {
+ case MultiPortMappingEditPart.VISUAL_ID:
+ return getGEFWrapper(new MultiPortMappingReorientCommand(req));
+ case MultiSinglePortMappingEditPart.VISUAL_ID:
+ return getGEFWrapper(new MultiSinglePortMappingReorientCommand(req));
+ }
+ return super.getReorientRelationshipCommand(req);
+ }
+
+}
diff --git a/org.eclipse.emf.refactor.comrel.diagram/src/comrel/diagram/edit/policies/MultiInputPort7ItemSemanticEditPolicy.java b/org.eclipse.emf.refactor.comrel.diagram/src/comrel/diagram/edit/policies/MultiInputPort7ItemSemanticEditPolicy.java
new file mode 100644
index 0000000..f0d39fc
--- /dev/null
+++ b/org.eclipse.emf.refactor.comrel.diagram/src/comrel/diagram/edit/policies/MultiInputPort7ItemSemanticEditPolicy.java
@@ -0,0 +1,148 @@
+/*
+ *
+ */
+package comrel.diagram.edit.policies;
+
+import java.util.Iterator;
+
+import org.eclipse.emf.ecore.EAnnotation;
+import org.eclipse.gef.commands.Command;
+import org.eclipse.gmf.runtime.diagram.core.commands.DeleteCommand;
+import org.eclipse.gmf.runtime.emf.commands.core.command.CompositeTransactionalCommand;
+import org.eclipse.gmf.runtime.emf.type.core.commands.DestroyElementCommand;
+import org.eclipse.gmf.runtime.emf.type.core.requests.CreateRelationshipRequest;
+import org.eclipse.gmf.runtime.emf.type.core.requests.DestroyElementRequest;
+import org.eclipse.gmf.runtime.emf.type.core.requests.ReorientRelationshipRequest;
+import org.eclipse.gmf.runtime.notation.Edge;
+import org.eclipse.gmf.runtime.notation.View;
+
+import comrel.diagram.edit.commands.MultiPortMappingCreateCommand;
+import comrel.diagram.edit.commands.MultiPortMappingReorientCommand;
+import comrel.diagram.edit.commands.MultiSinglePortMappingCreateCommand;
+import comrel.diagram.edit.commands.MultiSinglePortMappingReorientCommand;
+import comrel.diagram.edit.parts.MultiPortMappingEditPart;
+import comrel.diagram.edit.parts.MultiSinglePortMappingEditPart;
+import comrel.diagram.part.ComrelVisualIDRegistry;
+import comrel.diagram.providers.ComrelElementTypes;
+
+/**
+ * @generated
+ */
+public class MultiInputPort7ItemSemanticEditPolicy extends
+ ComrelBaseItemSemanticEditPolicy {
+
+ /**
+ * @generated
+ */
+ public MultiInputPort7ItemSemanticEditPolicy() {
+ super(ComrelElementTypes.MultiInputPort_3024);
+ }
+
+ /**
+ * @generated
+ */
+ protected Command getDestroyElementCommand(DestroyElementRequest req) {
+ View view = (View) getHost().getModel();
+ CompositeTransactionalCommand cmd = new CompositeTransactionalCommand(
+ getEditingDomain(), null);
+ cmd.setTransactionNestingEnabled(false);
+ for (Iterator<?> it = view.getTargetEdges().iterator(); it.hasNext();) {
+ Edge incomingLink = (Edge) it.next();
+ if (ComrelVisualIDRegistry.getVisualID(incomingLink) == MultiPortMappingEditPart.VISUAL_ID) {
+ DestroyElementRequest r = new DestroyElementRequest(
+ incomingLink.getElement(), false);
+ cmd.add(new DestroyElementCommand(r));
+ cmd.add(new DeleteCommand(getEditingDomain(), incomingLink));
+ continue;
+ }
+ }
+ for (Iterator<?> it = view.getSourceEdges().iterator(); it.hasNext();) {
+ Edge outgoingLink = (Edge) it.next();
+ if (ComrelVisualIDRegistry.getVisualID(outgoingLink) == MultiPortMappingEditPart.VISUAL_ID) {
+ DestroyElementRequest r = new DestroyElementRequest(
+ outgoingLink.getElement(), false);
+ cmd.add(new DestroyElementCommand(r));
+ cmd.add(new DeleteCommand(getEditingDomain(), outgoingLink));
+ continue;
+ }
+ if (ComrelVisualIDRegistry.getVisualID(outgoingLink) == MultiSinglePortMappingEditPart.VISUAL_ID) {
+ DestroyElementRequest r = new DestroyElementRequest(
+ outgoingLink.getElement(), false);
+ cmd.add(new DestroyElementCommand(r));
+ cmd.add(new DeleteCommand(getEditingDomain(), outgoingLink));
+ continue;
+ }
+ }
+ EAnnotation annotation = view.getEAnnotation("Shortcut"); //$NON-NLS-1$
+ if (annotation == null) {
+ // there are indirectly referenced children, need extra commands: false
+ addDestroyShortcutsCommand(cmd, view);
+ // delete host element
+ cmd.add(new DestroyElementCommand(req));
+ } else {
+ cmd.add(new DeleteCommand(getEditingDomain(), view));
+ }
+ return getGEFWrapper(cmd.reduce());
+ }
+
+ /**
+ * @generated
+ */
+ protected Command getCreateRelationshipCommand(CreateRelationshipRequest req) {
+ Command command = req.getTarget() == null ? getStartCreateRelationshipCommand(req)
+ : getCompleteCreateRelationshipCommand(req);
+ return command != null ? command : super
+ .getCreateRelationshipCommand(req);
+ }
+
+ /**
+ * @generated
+ */
+ protected Command getStartCreateRelationshipCommand(
+ CreateRelationshipRequest req) {
+ if (ComrelElementTypes.MultiPortMapping_4002 == req.getElementType()) {
+ return getGEFWrapper(new MultiPortMappingCreateCommand(req,
+ req.getSource(), req.getTarget()));
+ }
+ if (ComrelElementTypes.MultiSinglePortMapping_4003 == req
+ .getElementType()) {
+ return getGEFWrapper(new MultiSinglePortMappingCreateCommand(req,
+ req.getSource(), req.getTarget()));
+ }
+ return null;
+ }
+
+ /**
+ * @generated
+ */
+ protected Command getCompleteCreateRelationshipCommand(
+ CreateRelationshipRequest req) {
+ if (ComrelElementTypes.MultiPortMapping_4002 == req.getElementType()) {
+ return getGEFWrapper(new MultiPortMappingCreateCommand(req,
+ req.getSource(), req.getTarget()));
+ }
+ if (ComrelElementTypes.MultiSinglePortMapping_4003 == req
+ .getElementType()) {
+ return null;
+ }
+ return null;
+ }
+
+ /**
+ * Returns command to reorient EClass based link. New link target or source
+ * should be the domain model element associated with this node.
+ *
+ * @generated
+ */
+ protected Command getReorientRelationshipCommand(
+ ReorientRelationshipRequest req) {
+ switch (getVisualID(req)) {
+ case MultiPortMappingEditPart.VISUAL_ID:
+ return getGEFWrapper(new MultiPortMappingReorientCommand(req));
+ case MultiSinglePortMappingEditPart.VISUAL_ID:
+ return getGEFWrapper(new MultiSinglePortMappingReorientCommand(req));
+ }
+ return super.getReorientRelationshipCommand(req);
+ }
+
+}
diff --git a/org.eclipse.emf.refactor.comrel.diagram/src/comrel/diagram/edit/policies/MultiInputPort8ItemSemanticEditPolicy.java b/org.eclipse.emf.refactor.comrel.diagram/src/comrel/diagram/edit/policies/MultiInputPort8ItemSemanticEditPolicy.java
new file mode 100644
index 0000000..6e832e6
--- /dev/null
+++ b/org.eclipse.emf.refactor.comrel.diagram/src/comrel/diagram/edit/policies/MultiInputPort8ItemSemanticEditPolicy.java
@@ -0,0 +1,148 @@
+/*
+ *
+ */
+package comrel.diagram.edit.policies;
+
+import java.util.Iterator;
+
+import org.eclipse.emf.ecore.EAnnotation;
+import org.eclipse.gef.commands.Command;
+import org.eclipse.gmf.runtime.diagram.core.commands.DeleteCommand;
+import org.eclipse.gmf.runtime.emf.commands.core.command.CompositeTransactionalCommand;
+import org.eclipse.gmf.runtime.emf.type.core.commands.DestroyElementCommand;
+import org.eclipse.gmf.runtime.emf.type.core.requests.CreateRelationshipRequest;
+import org.eclipse.gmf.runtime.emf.type.core.requests.DestroyElementRequest;
+import org.eclipse.gmf.runtime.emf.type.core.requests.ReorientRelationshipRequest;
+import org.eclipse.gmf.runtime.notation.Edge;
+import org.eclipse.gmf.runtime.notation.View;
+
+import comrel.diagram.edit.commands.MultiPortMappingCreateCommand;
+import comrel.diagram.edit.commands.MultiPortMappingReorientCommand;
+import comrel.diagram.edit.commands.MultiSinglePortMappingCreateCommand;
+import comrel.diagram.edit.commands.MultiSinglePortMappingReorientCommand;
+import comrel.diagram.edit.parts.MultiPortMappingEditPart;
+import comrel.diagram.edit.parts.MultiSinglePortMappingEditPart;
+import comrel.diagram.part.ComrelVisualIDRegistry;
+import comrel.diagram.providers.ComrelElementTypes;
+
+/**
+ * @generated
+ */
+public class MultiInputPort8ItemSemanticEditPolicy extends
+ ComrelBaseItemSemanticEditPolicy {
+
+ /**
+ * @generated
+ */
+ public MultiInputPort8ItemSemanticEditPolicy() {
+ super(ComrelElementTypes.MultiInputPort_3028);
+ }
+
+ /**
+ * @generated
+ */
+ protected Command getDestroyElementCommand(DestroyElementRequest req) {
+ View view = (View) getHost().getModel();
+ CompositeTransactionalCommand cmd = new CompositeTransactionalCommand(
+ getEditingDomain(), null);
+ cmd.setTransactionNestingEnabled(false);
+ for (Iterator<?> it = view.getTargetEdges().iterator(); it.hasNext();) {
+ Edge incomingLink = (Edge) it.next();
+ if (ComrelVisualIDRegistry.getVisualID(incomingLink) == MultiPortMappingEditPart.VISUAL_ID) {
+ DestroyElementRequest r = new DestroyElementRequest(
+ incomingLink.getElement(), false);
+ cmd.add(new DestroyElementCommand(r));
+ cmd.add(new DeleteCommand(getEditingDomain(), incomingLink));
+ continue;
+ }
+ }
+ for (Iterator<?> it = view.getSourceEdges().iterator(); it.hasNext();) {
+ Edge outgoingLink = (Edge) it.next();
+ if (ComrelVisualIDRegistry.getVisualID(outgoingLink) == MultiPortMappingEditPart.VISUAL_ID) {
+ DestroyElementRequest r = new DestroyElementRequest(
+ outgoingLink.getElement(), false);
+ cmd.add(new DestroyElementCommand(r));
+ cmd.add(new DeleteCommand(getEditingDomain(), outgoingLink));
+ continue;
+ }
+ if (ComrelVisualIDRegistry.getVisualID(outgoingLink) == MultiSinglePortMappingEditPart.VISUAL_ID) {
+ DestroyElementRequest r = new DestroyElementRequest(
+ outgoingLink.getElement(), false);
+ cmd.add(new DestroyElementCommand(r));
+ cmd.add(new DeleteCommand(getEditingDomain(), outgoingLink));
+ continue;
+ }
+ }
+ EAnnotation annotation = view.getEAnnotation("Shortcut"); //$NON-NLS-1$
+ if (annotation == null) {
+ // there are indirectly referenced children, need extra commands: false
+ addDestroyShortcutsCommand(cmd, view);
+ // delete host element
+ cmd.add(new DestroyElementCommand(req));
+ } else {
+ cmd.add(new DeleteCommand(getEditingDomain(), view));
+ }
+ return getGEFWrapper(cmd.reduce());
+ }
+
+ /**
+ * @generated
+ */
+ protected Command getCreateRelationshipCommand(CreateRelationshipRequest req) {
+ Command command = req.getTarget() == null ? getStartCreateRelationshipCommand(req)
+ : getCompleteCreateRelationshipCommand(req);
+ return command != null ? command : super
+ .getCreateRelationshipCommand(req);
+ }
+
+ /**
+ * @generated
+ */
+ protected Command getStartCreateRelationshipCommand(
+ CreateRelationshipRequest req) {
+ if (ComrelElementTypes.MultiPortMapping_4002 == req.getElementType()) {
+ return getGEFWrapper(new MultiPortMappingCreateCommand(req,
+ req.getSource(), req.getTarget()));
+ }
+ if (ComrelElementTypes.MultiSinglePortMapping_4003 == req
+ .getElementType()) {
+ return getGEFWrapper(new MultiSinglePortMappingCreateCommand(req,
+ req.getSource(), req.getTarget()));
+ }
+ return null;
+ }
+
+ /**
+ * @generated
+ */
+ protected Command getCompleteCreateRelationshipCommand(
+ CreateRelationshipRequest req) {
+ if (ComrelElementTypes.MultiPortMapping_4002 == req.getElementType()) {
+ return getGEFWrapper(new MultiPortMappingCreateCommand(req,
+ req.getSource(), req.getTarget()));
+ }
+ if (ComrelElementTypes.MultiSinglePortMapping_4003 == req
+ .getElementType()) {
+ return null;
+ }
+ return null;
+ }
+
+ /**
+ * Returns command to reorient EClass based link. New link target or source
+ * should be the domain model element associated with this node.
+ *
+ * @generated
+ */
+ protected Command getReorientRelationshipCommand(
+ ReorientRelationshipRequest req) {
+ switch (getVisualID(req)) {
+ case MultiPortMappingEditPart.VISUAL_ID:
+ return getGEFWrapper(new MultiPortMappingReorientCommand(req));
+ case MultiSinglePortMappingEditPart.VISUAL_ID:
+ return getGEFWrapper(new MultiSinglePortMappingReorientCommand(req));
+ }
+ return super.getReorientRelationshipCommand(req);
+ }
+
+}
diff --git a/org.eclipse.emf.refactor.comrel.diagram/src/comrel/diagram/edit/policies/MultiInputPort9ItemSemanticEditPolicy.java b/org.eclipse.emf.refactor.comrel.diagram/src/comrel/diagram/edit/policies/MultiInputPort9ItemSemanticEditPolicy.java
new file mode 100644
index 0000000..831b527
--- /dev/null
+++ b/org.eclipse.emf.refactor.comrel.diagram/src/comrel/diagram/edit/policies/MultiInputPort9ItemSemanticEditPolicy.java
@@ -0,0 +1,148 @@
+/*
+ *
+ */
+package comrel.diagram.edit.policies;
+
+import java.util.Iterator;
+
+import org.eclipse.emf.ecore.EAnnotation;
+import org.eclipse.gef.commands.Command;
+import org.eclipse.gmf.runtime.diagram.core.commands.DeleteCommand;
+import org.eclipse.gmf.runtime.emf.commands.core.command.CompositeTransactionalCommand;
+import org.eclipse.gmf.runtime.emf.type.core.commands.DestroyElementCommand;
+import org.eclipse.gmf.runtime.emf.type.core.requests.CreateRelationshipRequest;
+import org.eclipse.gmf.runtime.emf.type.core.requests.DestroyElementRequest;
+import org.eclipse.gmf.runtime.emf.type.core.requests.ReorientRelationshipRequest;
+import org.eclipse.gmf.runtime.notation.Edge;
+import org.eclipse.gmf.runtime.notation.View;
+
+import comrel.diagram.edit.commands.MultiPortMappingCreateCommand;
+import comrel.diagram.edit.commands.MultiPortMappingReorientCommand;
+import comrel.diagram.edit.commands.MultiSinglePortMappingCreateCommand;
+import comrel.diagram.edit.commands.MultiSinglePortMappingReorientCommand;
+import comrel.diagram.edit.parts.MultiPortMappingEditPart;
+import comrel.diagram.edit.parts.MultiSinglePortMappingEditPart;
+import comrel.diagram.part.ComrelVisualIDRegistry;
+import comrel.diagram.providers.ComrelElementTypes;
+
+/**
+ * @generated
+ */
+public class MultiInputPort9ItemSemanticEditPolicy extends
+ ComrelBaseItemSemanticEditPolicy {
+
+ /**
+ * @generated
+ */
+ public MultiInputPort9ItemSemanticEditPolicy() {
+ super(ComrelElementTypes.MultiInputPort_3032);
+ }
+
+ /**
+ * @generated
+ */
+ protected Command getDestroyElementCommand(DestroyElementRequest req) {
+ View view = (View) getHost().getModel();
+ CompositeTransactionalCommand cmd = new CompositeTransactionalCommand(
+ getEditingDomain(), null);
+ cmd.setTransactionNestingEnabled(false);
+ for (Iterator<?> it = view.getTargetEdges().iterator(); it.hasNext();) {
+ Edge incomingLink = (Edge) it.next();
+ if (ComrelVisualIDRegistry.getVisualID(incomingLink) == MultiPortMappingEditPart.VISUAL_ID) {
+ DestroyElementRequest r = new DestroyElementRequest(
+ incomingLink.getElement(), false);
+ cmd.add(new DestroyElementCommand(r));
+ cmd.add(new DeleteCommand(getEditingDomain(), incomingLink));
+ continue;
+ }
+ }
+ for (Iterator<?> it = view.getSourceEdges().iterator(); it.hasNext();) {
+ Edge outgoingLink = (Edge) it.next();
+ if (ComrelVisualIDRegistry.getVisualID(outgoingLink) == MultiPortMappingEditPart.VISUAL_ID) {
+ DestroyElementRequest r = new DestroyElementRequest(
+ outgoingLink.getElement(), false);
+ cmd.add(new DestroyElementCommand(r));
+ cmd.add(new DeleteCommand(getEditingDomain(), outgoingLink));
+ continue;
+ }
+ if (ComrelVisualIDRegistry.getVisualID(outgoingLink) == MultiSinglePortMappingEditPart.VISUAL_ID) {
+ DestroyElementRequest r = new DestroyElementRequest(
+ outgoingLink.getElement(), false);
+ cmd.add(new DestroyElementCommand(r));
+ cmd.add(new DeleteCommand(getEditingDomain(), outgoingLink));
+ continue;
+ }
+ }
+ EAnnotation annotation = view.getEAnnotation("Shortcut"); //$NON-NLS-1$
+ if (annotation == null) {
+ // there are indirectly referenced children, need extra commands: false
+ addDestroyShortcutsCommand(cmd, view);
+ // delete host element
+ cmd.add(new DestroyElementCommand(req));
+ } else {
+ cmd.add(new DeleteCommand(getEditingDomain(), view));
+ }
+ return getGEFWrapper(cmd.reduce());
+ }
+
+ /**
+ * @generated
+ */
+ protected Command getCreateRelationshipCommand(CreateRelationshipRequest req) {
+ Command command = req.getTarget() == null ? getStartCreateRelationshipCommand(req)
+ : getCompleteCreateRelationshipCommand(req);
+ return command != null ? command : super
+ .getCreateRelationshipCommand(req);
+ }
+
+ /**
+ * @generated
+ */
+ protected Command getStartCreateRelationshipCommand(
+ CreateRelationshipRequest req) {
+ if (ComrelElementTypes.MultiPortMapping_4002 == req.getElementType()) {
+ return getGEFWrapper(new MultiPortMappingCreateCommand(req,
+ req.getSource(), req.getTarget()));
+ }
+ if (ComrelElementTypes.MultiSinglePortMapping_4003 == req
+ .getElementType()) {
+ return getGEFWrapper(new MultiSinglePortMappingCreateCommand(req,
+ req.getSource(), req.getTarget()));
+ }
+ return null;
+ }
+
+ /**
+ * @generated
+ */
+ protected Command getCompleteCreateRelationshipCommand(
+ CreateRelationshipRequest req) {
+ if (ComrelElementTypes.MultiPortMapping_4002 == req.getElementType()) {
+ return getGEFWrapper(new MultiPortMappingCreateCommand(req,
+ req.getSource(), req.getTarget()));
+ }
+ if (ComrelElementTypes.MultiSinglePortMapping_4003 == req
+ .getElementType()) {
+ return null;
+ }
+ return null;
+ }
+
+ /**
+ * Returns command to reorient EClass based link. New link target or source
+ * should be the domain model element associated with this node.
+ *
+ * @generated
+ */
+ protected Command getReorientRelationshipCommand(
+ ReorientRelationshipRequest req) {
+ switch (getVisualID(req)) {
+ case MultiPortMappingEditPart.VISUAL_ID:
+ return getGEFWrapper(new MultiPortMappingReorientCommand(req));
+ case MultiSinglePortMappingEditPart.VISUAL_ID:
+ return getGEFWrapper(new MultiSinglePortMappingReorientCommand(req));
+ }
+ return super.getReorientRelationshipCommand(req);
+ }
+
+}
diff --git a/org.eclipse.emf.refactor.comrel.diagram/src/comrel/diagram/edit/policies/MultiInputPortItemSemanticEditPolicy.java b/org.eclipse.emf.refactor.comrel.diagram/src/comrel/diagram/edit/policies/MultiInputPortItemSemanticEditPolicy.java
new file mode 100644
index 0000000..496f37a
--- /dev/null
+++ b/org.eclipse.emf.refactor.comrel.diagram/src/comrel/diagram/edit/policies/MultiInputPortItemSemanticEditPolicy.java
@@ -0,0 +1,148 @@
+/*
+ *
+ */
+package comrel.diagram.edit.policies;
+
+import java.util.Iterator;
+
+import org.eclipse.emf.ecore.EAnnotation;
+import org.eclipse.gef.commands.Command;
+import org.eclipse.gmf.runtime.diagram.core.commands.DeleteCommand;
+import org.eclipse.gmf.runtime.emf.commands.core.command.CompositeTransactionalCommand;
+import org.eclipse.gmf.runtime.emf.type.core.commands.DestroyElementCommand;
+import org.eclipse.gmf.runtime.emf.type.core.requests.CreateRelationshipRequest;
+import org.eclipse.gmf.runtime.emf.type.core.requests.DestroyElementRequest;
+import org.eclipse.gmf.runtime.emf.type.core.requests.ReorientRelationshipRequest;
+import org.eclipse.gmf.runtime.notation.Edge;
+import org.eclipse.gmf.runtime.notation.View;
+
+import comrel.diagram.edit.commands.MultiPortMappingCreateCommand;
+import comrel.diagram.edit.commands.MultiPortMappingReorientCommand;
+import comrel.diagram.edit.commands.MultiSinglePortMappingCreateCommand;
+import comrel.diagram.edit.commands.MultiSinglePortMappingReorientCommand;
+import comrel.diagram.edit.parts.MultiPortMappingEditPart;
+import comrel.diagram.edit.parts.MultiSinglePortMappingEditPart;
+import comrel.diagram.part.ComrelVisualIDRegistry;
+import comrel.diagram.providers.ComrelElementTypes;
+
+/**
+ * @generated
+ */
+public class MultiInputPortItemSemanticEditPolicy extends
+ ComrelBaseItemSemanticEditPolicy {
+
+ /**
+ * @generated
+ */
+ public MultiInputPortItemSemanticEditPolicy() {
+ super(ComrelElementTypes.MultiInputPort_3002);
+ }
+
+ /**
+ * @generated
+ */
+ protected Command getDestroyElementCommand(DestroyElementRequest req) {
+ View view = (View) getHost().getModel();
+ CompositeTransactionalCommand cmd = new CompositeTransactionalCommand(
+ getEditingDomain(), null);
+ cmd.setTransactionNestingEnabled(false);
+ for (Iterator<?> it = view.getTargetEdges().iterator(); it.hasNext();) {
+ Edge incomingLink = (Edge) it.next();
+ if (ComrelVisualIDRegistry.getVisualID(incomingLink) == MultiPortMappingEditPart.VISUAL_ID) {
+ DestroyElementRequest r = new DestroyElementRequest(
+ incomingLink.getElement(), false);
+ cmd.add(new DestroyElementCommand(r));
+ cmd.add(new DeleteCommand(getEditingDomain(), incomingLink));
+ continue;
+ }
+ }
+ for (Iterator<?> it = view.getSourceEdges().iterator(); it.hasNext();) {
+ Edge outgoingLink = (Edge) it.next();
+ if (ComrelVisualIDRegistry.getVisualID(outgoingLink) == MultiPortMappingEditPart.VISUAL_ID) {
+ DestroyElementRequest r = new DestroyElementRequest(
+ outgoingLink.getElement(), false);
+ cmd.add(new DestroyElementCommand(r));
+ cmd.add(new DeleteCommand(getEditingDomain(), outgoingLink));
+ continue;
+ }
+ if (ComrelVisualIDRegistry.getVisualID(outgoingLink) == MultiSinglePortMappingEditPart.VISUAL_ID) {
+ DestroyElementRequest r = new DestroyElementRequest(
+ outgoingLink.getElement(), false);
+ cmd.add(new DestroyElementCommand(r));
+ cmd.add(new DeleteCommand(getEditingDomain(), outgoingLink));
+ continue;
+ }
+ }
+ EAnnotation annotation = view.getEAnnotation("Shortcut"); //$NON-NLS-1$
+ if (annotation == null) {
+ // there are indirectly referenced children, need extra commands: false
+ addDestroyShortcutsCommand(cmd, view);
+ // delete host element
+ cmd.add(new DestroyElementCommand(req));
+ } else {
+ cmd.add(new DeleteCommand(getEditingDomain(), view));
+ }
+ return getGEFWrapper(cmd.reduce());
+ }
+
+ /**
+ * @generated
+ */
+ protected Command getCreateRelationshipCommand(CreateRelationshipRequest req) {
+ Command command = req.getTarget() == null ? getStartCreateRelationshipCommand(req)
+ : getCompleteCreateRelationshipCommand(req);
+ return command != null ? command : super
+ .getCreateRelationshipCommand(req);
+ }
+
+ /**
+ * @generated
+ */
+ protected Command getStartCreateRelationshipCommand(
+ CreateRelationshipRequest req) {
+ if (ComrelElementTypes.MultiPortMapping_4002 == req.getElementType()) {
+ return getGEFWrapper(new MultiPortMappingCreateCommand(req,
+ req.getSource(), req.getTarget()));
+ }
+ if (ComrelElementTypes.MultiSinglePortMapping_4003 == req
+ .getElementType()) {
+ return getGEFWrapper(new MultiSinglePortMappingCreateCommand(req,
+ req.getSource(), req.getTarget()));
+ }
+ return null;
+ }
+
+ /**
+ * @generated
+ */
+ protected Command getCompleteCreateRelationshipCommand(
+ CreateRelationshipRequest req) {
+ if (ComrelElementTypes.MultiPortMapping_4002 == req.getElementType()) {
+ return getGEFWrapper(new MultiPortMappingCreateCommand(req,
+ req.getSource(), req.getTarget()));
+ }
+ if (ComrelElementTypes.MultiSinglePortMapping_4003 == req
+ .getElementType()) {
+ return null;
+ }
+ return null;
+ }
+
+ /**
+ * Returns command to reorient EClass based link. New link target or source
+ * should be the domain model element associated with this node.
+ *
+ * @generated
+ */
+ protected Command getReorientRelationshipCommand(
+ ReorientRelationshipRequest req) {
+ switch (getVisualID(req)) {
+ case MultiPortMappingEditPart.VISUAL_ID:
+ return getGEFWrapper(new MultiPortMappingReorientCommand(req));
+ case MultiSinglePortMappingEditPart.VISUAL_ID:
+ return getGEFWrapper(new MultiSinglePortMappingReorientCommand(req));
+ }
+ return super.getReorientRelationshipCommand(req);
+ }
+
+}
diff --git a/org.eclipse.emf.refactor.comrel.diagram/src/comrel/diagram/edit/policies/MultiOutputPort2ItemSemanticEditPolicy.java b/org.eclipse.emf.refactor.comrel.diagram/src/comrel/diagram/edit/policies/MultiOutputPort2ItemSemanticEditPolicy.java
new file mode 100644
index 0000000..4cf9799
--- /dev/null
+++ b/org.eclipse.emf.refactor.comrel.diagram/src/comrel/diagram/edit/policies/MultiOutputPort2ItemSemanticEditPolicy.java
@@ -0,0 +1,137 @@
+/*
+ *
+ */
+package comrel.diagram.edit.policies;
+
+import java.util.Iterator;
+
+import org.eclipse.emf.ecore.EAnnotation;
+import org.eclipse.gef.commands.Command;
+import org.eclipse.gmf.runtime.diagram.core.commands.DeleteCommand;
+import org.eclipse.gmf.runtime.emf.commands.core.command.CompositeTransactionalCommand;
+import org.eclipse.gmf.runtime.emf.type.core.commands.DestroyElementCommand;
+import org.eclipse.gmf.runtime.emf.type.core.requests.CreateRelationshipRequest;
+import org.eclipse.gmf.runtime.emf.type.core.requests.DestroyElementRequest;
+import org.eclipse.gmf.runtime.emf.type.core.requests.ReorientRelationshipRequest;
+import org.eclipse.gmf.runtime.notation.Edge;
+import org.eclipse.gmf.runtime.notation.View;
+
+import comrel.diagram.edit.commands.MultiPortMappingCreateCommand;
+import comrel.diagram.edit.commands.MultiPortMappingReorientCommand;
+import comrel.diagram.edit.commands.MultiSinglePortMappingCreateCommand;
+import comrel.diagram.edit.commands.MultiSinglePortMappingReorientCommand;
+import comrel.diagram.edit.parts.MultiPortMappingEditPart;
+import comrel.diagram.edit.parts.MultiSinglePortMappingEditPart;
+import comrel.diagram.part.ComrelVisualIDRegistry;
+import comrel.diagram.providers.ComrelElementTypes;
+
+/**
+ * @generated
+ */
+public class MultiOutputPort2ItemSemanticEditPolicy extends
+ ComrelBaseItemSemanticEditPolicy {
+
+ /**
+ * @generated
+ */
+ public MultiOutputPort2ItemSemanticEditPolicy() {
+ super(ComrelElementTypes.MultiOutputPort_3021);
+ }
+
+ /**
+ * @generated
+ */
+ protected Command getDestroyElementCommand(DestroyElementRequest req) {
+ View view = (View) getHost().getModel();
+ CompositeTransactionalCommand cmd = new CompositeTransactionalCommand(
+ getEditingDomain(), null);
+ cmd.setTransactionNestingEnabled(false);
+ for (Iterator<?> it = view.getSourceEdges().iterator(); it.hasNext();) {
+ Edge outgoingLink = (Edge) it.next();
+ if (ComrelVisualIDRegistry.getVisualID(outgoingLink) == MultiPortMappingEditPart.VISUAL_ID) {
+ DestroyElementRequest r = new DestroyElementRequest(
+ outgoingLink.getElement(), false);
+ cmd.add(new DestroyElementCommand(r));
+ cmd.add(new DeleteCommand(getEditingDomain(), outgoingLink));
+ continue;
+ }
+ if (ComrelVisualIDRegistry.getVisualID(outgoingLink) == MultiSinglePortMappingEditPart.VISUAL_ID) {
+ DestroyElementRequest r = new DestroyElementRequest(
+ outgoingLink.getElement(), false);
+ cmd.add(new DestroyElementCommand(r));
+ cmd.add(new DeleteCommand(getEditingDomain(), outgoingLink));
+ continue;
+ }
+ }
+ EAnnotation annotation = view.getEAnnotation("Shortcut"); //$NON-NLS-1$
+ if (annotation == null) {
+ // there are indirectly referenced children, need extra commands: false
+ addDestroyShortcutsCommand(cmd, view);
+ // delete host element
+ cmd.add(new DestroyElementCommand(req));
+ } else {
+ cmd.add(new DeleteCommand(getEditingDomain(), view));
+ }
+ return getGEFWrapper(cmd.reduce());
+ }
+
+ /**
+ * @generated
+ */
+ protected Command getCreateRelationshipCommand(CreateRelationshipRequest req) {
+ Command command = req.getTarget() == null ? getStartCreateRelationshipCommand(req)
+ : getCompleteCreateRelationshipCommand(req);
+ return command != null ? command : super
+ .getCreateRelationshipCommand(req);
+ }
+
+ /**
+ * @generated
+ */
+ protected Command getStartCreateRelationshipCommand(
+ CreateRelationshipRequest req) {
+ if (ComrelElementTypes.MultiPortMapping_4002 == req.getElementType()) {
+ return getGEFWrapper(new MultiPortMappingCreateCommand(req,
+ req.getSource(), req.getTarget()));
+ }
+ if (ComrelElementTypes.MultiSinglePortMapping_4003 == req
+ .getElementType()) {
+ return getGEFWrapper(new MultiSinglePortMappingCreateCommand(req,
+ req.getSource(), req.getTarget()));
+ }
+ return null;
+ }
+
+ /**
+ * @generated
+ */
+ protected Command getCompleteCreateRelationshipCommand(
+ CreateRelationshipRequest req) {
+ if (ComrelElementTypes.MultiPortMapping_4002 == req.getElementType()) {
+ return null;
+ }
+ if (ComrelElementTypes.MultiSinglePortMapping_4003 == req
+ .getElementType()) {
+ return null;
+ }
+ return null;
+ }
+
+ /**
+ * Returns command to reorient EClass based link. New link target or source
+ * should be the domain model element associated with this node.
+ *
+ * @generated
+ */
+ protected Command getReorientRelationshipCommand(
+ ReorientRelationshipRequest req) {
+ switch (getVisualID(req)) {
+ case MultiPortMappingEditPart.VISUAL_ID:
+ return getGEFWrapper(new MultiPortMappingReorientCommand(req));
+ case MultiSinglePortMappingEditPart.VISUAL_ID:
+ return getGEFWrapper(new MultiSinglePortMappingReorientCommand(req));
+ }
+ return super.getReorientRelationshipCommand(req);
+ }
+
+}
diff --git a/org.eclipse.emf.refactor.comrel.diagram/src/comrel/diagram/edit/policies/MultiOutputPortItemSemanticEditPolicy.java b/org.eclipse.emf.refactor.comrel.diagram/src/comrel/diagram/edit/policies/MultiOutputPortItemSemanticEditPolicy.java
new file mode 100644
index 0000000..47e5f66
--- /dev/null
+++ b/org.eclipse.emf.refactor.comrel.diagram/src/comrel/diagram/edit/policies/MultiOutputPortItemSemanticEditPolicy.java
@@ -0,0 +1,137 @@
+/*
+ *
+ */
+package comrel.diagram.edit.policies;
+
+import java.util.Iterator;
+
+import org.eclipse.emf.ecore.EAnnotation;
+import org.eclipse.gef.commands.Command;
+import org.eclipse.gmf.runtime.diagram.core.commands.DeleteCommand;
+import org.eclipse.gmf.runtime.emf.commands.core.command.CompositeTransactionalCommand;
+import org.eclipse.gmf.runtime.emf.type.core.commands.DestroyElementCommand;
+import org.eclipse.gmf.runtime.emf.type.core.requests.CreateRelationshipRequest;
+import org.eclipse.gmf.runtime.emf.type.core.requests.DestroyElementRequest;
+import org.eclipse.gmf.runtime.emf.type.core.requests.ReorientRelationshipRequest;
+import org.eclipse.gmf.runtime.notation.Edge;
+import org.eclipse.gmf.runtime.notation.View;
+
+import comrel.diagram.edit.commands.MultiPortMappingCreateCommand;
+import comrel.diagram.edit.commands.MultiPortMappingReorientCommand;
+import comrel.diagram.edit.commands.MultiSinglePortMappingCreateCommand;
+import comrel.diagram.edit.commands.MultiSinglePortMappingReorientCommand;
+import comrel.diagram.edit.parts.MultiPortMappingEditPart;
+import comrel.diagram.edit.parts.MultiSinglePortMappingEditPart;
+import comrel.diagram.part.ComrelVisualIDRegistry;
+import comrel.diagram.providers.ComrelElementTypes;
+
+/**
+ * @generated
+ */
+public class MultiOutputPortItemSemanticEditPolicy extends
+ ComrelBaseItemSemanticEditPolicy {
+
+ /**
+ * @generated
+ */
+ public MultiOutputPortItemSemanticEditPolicy() {
+ super(ComrelElementTypes.MultiOutputPort_3015);
+ }
+
+ /**
+ * @generated
+ */
+ protected Command getDestroyElementCommand(DestroyElementRequest req) {
+ View view = (View) getHost().getModel();
+ CompositeTransactionalCommand cmd = new CompositeTransactionalCommand(
+ getEditingDomain(), null);
+ cmd.setTransactionNestingEnabled(false);
+ for (Iterator<?> it = view.getSourceEdges().iterator(); it.hasNext();) {
+ Edge outgoingLink = (Edge) it.next();
+ if (ComrelVisualIDRegistry.getVisualID(outgoingLink) == MultiPortMappingEditPart.VISUAL_ID) {
+ DestroyElementRequest r = new DestroyElementRequest(
+ outgoingLink.getElement(), false);
+ cmd.add(new DestroyElementCommand(r));
+ cmd.add(new DeleteCommand(getEditingDomain(), outgoingLink));
+ continue;
+ }
+ if (ComrelVisualIDRegistry.getVisualID(outgoingLink) == MultiSinglePortMappingEditPart.VISUAL_ID) {
+ DestroyElementRequest r = new DestroyElementRequest(
+ outgoingLink.getElement(), false);
+ cmd.add(new DestroyElementCommand(r));
+ cmd.add(new DeleteCommand(getEditingDomain(), outgoingLink));
+ continue;
+ }
+ }
+ EAnnotation annotation = view.getEAnnotation("Shortcut"); //$NON-NLS-1$
+ if (annotation == null) {
+ // there are indirectly referenced children, need extra commands: false
+ addDestroyShortcutsCommand(cmd, view);
+ // delete host element
+ cmd.add(new DestroyElementCommand(req));
+ } else {
+ cmd.add(new DeleteCommand(getEditingDomain(), view));
+ }
+ return getGEFWrapper(cmd.reduce());
+ }
+
+ /**
+ * @generated
+ */
+ protected Command getCreateRelationshipCommand(CreateRelationshipRequest req) {
+ Command command = req.getTarget() == null ? getStartCreateRelationshipCommand(req)
+ : getCompleteCreateRelationshipCommand(req);
+ return command != null ? command : super
+ .getCreateRelationshipCommand(req);
+ }
+
+ /**
+ * @generated
+ */
+ protected Command getStartCreateRelationshipCommand(
+ CreateRelationshipRequest req) {
+ if (ComrelElementTypes.MultiPortMapping_4002 == req.getElementType()) {
+ return getGEFWrapper(new MultiPortMappingCreateCommand(req,
+ req.getSource(), req.getTarget()));
+ }
+ if (ComrelElementTypes.MultiSinglePortMapping_4003 == req
+ .getElementType()) {
+ return getGEFWrapper(new MultiSinglePortMappingCreateCommand(req,
+ req.getSource(), req.getTarget()));
+ }
+ return null;
+ }
+
+ /**
+ * @generated
+ */
+ protected Command getCompleteCreateRelationshipCommand(
+ CreateRelationshipRequest req) {
+ if (ComrelElementTypes.MultiPortMapping_4002 == req.getElementType()) {
+ return null;
+ }
+ if (ComrelElementTypes.MultiSinglePortMapping_4003 == req
+ .getElementType()) {
+ return null;
+ }
+ return null;
+ }
+
+ /**
+ * Returns command to reorient EClass based link. New link target or source
+ * should be the domain model element associated with this node.
+ *
+ * @generated
+ */
+ protected Command getReorientRelationshipCommand(
+ ReorientRelationshipRequest req) {
+ switch (getVisualID(req)) {
+ case MultiPortMappingEditPart.VISUAL_ID:
+ return getGEFWrapper(new MultiPortMappingReorientCommand(req));
+ case MultiSinglePortMappingEditPart.VISUAL_ID:
+ return getGEFWrapper(new MultiSinglePortMappingReorientCommand(req));
+ }
+ return super.getReorientRelationshipCommand(req);
+ }
+
+}
diff --git a/org.eclipse.emf.refactor.comrel.diagram/src/comrel/diagram/edit/policies/MultiPortMappingItemSemanticEditPolicy.java b/org.eclipse.emf.refactor.comrel.diagram/src/comrel/diagram/edit/policies/MultiPortMappingItemSemanticEditPolicy.java
new file mode 100644
index 0000000..ea6019a
--- /dev/null
+++ b/org.eclipse.emf.refactor.comrel.diagram/src/comrel/diagram/edit/policies/MultiPortMappingItemSemanticEditPolicy.java
@@ -0,0 +1,32 @@
+/*
+ *
+ */
+package comrel.diagram.edit.policies;
+
+import org.eclipse.gef.commands.Command;
+import org.eclipse.gmf.runtime.emf.type.core.commands.DestroyElementCommand;
+import org.eclipse.gmf.runtime.emf.type.core.requests.DestroyElementRequest;
+
+import comrel.diagram.providers.ComrelElementTypes;
+
+/**
+ * @generated
+ */
+public class MultiPortMappingItemSemanticEditPolicy extends
+ ComrelBaseItemSemanticEditPolicy {
+
+ /**
+ * @generated
+ */
+ public MultiPortMappingItemSemanticEditPolicy() {
+ super(ComrelElementTypes.MultiPortMapping_4002);
+ }
+
+ /**
+ * @generated
+ */
+ protected Command getDestroyElementCommand(DestroyElementRequest req) {
+ return getGEFWrapper(new DestroyElementCommand(req));
+ }
+
+}
diff --git a/org.eclipse.emf.refactor.comrel.diagram/src/comrel/diagram/edit/policies/MultiSinglePortMappingItemSemanticEditPolicy.java b/org.eclipse.emf.refactor.comrel.diagram/src/comrel/diagram/edit/policies/MultiSinglePortMappingItemSemanticEditPolicy.java
new file mode 100644
index 0000000..9e54def
--- /dev/null
+++ b/org.eclipse.emf.refactor.comrel.diagram/src/comrel/diagram/edit/policies/MultiSinglePortMappingItemSemanticEditPolicy.java
@@ -0,0 +1,32 @@
+/*
+ *
+ */
+package comrel.diagram.edit.policies;
+
+import org.eclipse.gef.commands.Command;
+import org.eclipse.gmf.runtime.emf.type.core.commands.DestroyElementCommand;
+import org.eclipse.gmf.runtime.emf.type.core.requests.DestroyElementRequest;
+
+import comrel.diagram.providers.ComrelElementTypes;
+
+/**
+ * @generated
+ */
+public class MultiSinglePortMappingItemSemanticEditPolicy extends
+ ComrelBaseItemSemanticEditPolicy {
+
+ /**
+ * @generated
+ */
+ public MultiSinglePortMappingItemSemanticEditPolicy() {
+ super(ComrelElementTypes.MultiSinglePortMapping_4003);
+ }
+
+ /**
+ * @generated
+ */
+ protected Command getDestroyElementCommand(DestroyElementRequest req) {
+ return getGEFWrapper(new DestroyElementCommand(req));
+ }
+
+}
diff --git a/org.eclipse.emf.refactor.comrel.diagram/src/comrel/diagram/edit/policies/OpenDiagramEditPolicy.java b/org.eclipse.emf.refactor.comrel.diagram/src/comrel/diagram/edit/policies/OpenDiagramEditPolicy.java
new file mode 100644
index 0000000..a055020
--- /dev/null
+++ b/org.eclipse.emf.refactor.comrel.diagram/src/comrel/diagram/edit/policies/OpenDiagramEditPolicy.java
@@ -0,0 +1,204 @@
+/*
+ *
+ */
+package comrel.diagram.edit.policies;
+
+import java.io.IOException;
+import java.lang.reflect.InvocationTargetException;
+import java.util.Iterator;
+
+import org.eclipse.core.commands.ExecutionException;
+import org.eclipse.core.runtime.CoreException;
+import org.eclipse.core.runtime.IAdaptable;
+import org.eclipse.core.runtime.IProgressMonitor;
+import org.eclipse.emf.common.ui.URIEditorInput;
+import org.eclipse.emf.common.util.URI;
+import org.eclipse.emf.ecore.EObject;
+import org.eclipse.emf.ecore.resource.Resource;
+import org.eclipse.emf.ecore.util.EcoreUtil;
+import org.eclipse.emf.transaction.util.TransactionUtil;
+import org.eclipse.gef.EditPart;
+import org.eclipse.gef.Request;
+import org.eclipse.gef.commands.Command;
+import org.eclipse.gmf.runtime.common.core.command.CommandResult;
+import org.eclipse.gmf.runtime.diagram.core.preferences.PreferencesHint;
+import org.eclipse.gmf.runtime.diagram.core.services.ViewService;
+import org.eclipse.gmf.runtime.diagram.ui.commands.ICommandProxy;
+import org.eclipse.gmf.runtime.diagram.ui.editpolicies.OpenEditPolicy;
+import org.eclipse.gmf.runtime.emf.commands.core.command.AbstractTransactionalCommand;
+import org.eclipse.gmf.runtime.notation.Diagram;
+import org.eclipse.gmf.runtime.notation.HintedDiagramLinkStyle;
+import org.eclipse.gmf.runtime.notation.NotationPackage;
+import org.eclipse.gmf.runtime.notation.Style;
+import org.eclipse.gmf.runtime.notation.View;
+import org.eclipse.ui.IEditorInput;
+import org.eclipse.ui.IWorkbenchPage;
+import org.eclipse.ui.PlatformUI;
+import org.eclipse.ui.actions.WorkspaceModifyOperation;
+
+import comrel.diagram.edit.parts.CompositeRefactoringEditPart;
+import comrel.diagram.part.ComrelDiagramEditor;
+import comrel.diagram.part.ComrelDiagramEditorPlugin;
+import comrel.diagram.part.ComrelDiagramEditorUtil;
+import comrel.diagram.part.Messages;
+
+/**
+ * @generated
+ */
+public class OpenDiagramEditPolicy extends OpenEditPolicy {
+
+ /**
+ * @generated
+ */
+ protected Command getOpenCommand(Request request) {
+ EditPart targetEditPart = getTargetEditPart(request);
+ if (false == targetEditPart.getModel() instanceof View) {
+ return null;
+ }
+ View view = (View) targetEditPart.getModel();
+ Style link = view.getStyle(NotationPackage.eINSTANCE
+ .getHintedDiagramLinkStyle());
+ if (false == link instanceof HintedDiagramLinkStyle) {
+ return null;
+ }
+ return new ICommandProxy(new OpenDiagramCommand(
+ (HintedDiagramLinkStyle) link));
+ }
+
+ /**
+ * @generated
+ */
+ private static class OpenDiagramCommand extends
+ AbstractTransactionalCommand {
+
+ /**
+ * @generated
+ */
+ private final HintedDiagramLinkStyle diagramFacet;
+
+ /**
+ * @generated
+ */
+ OpenDiagramCommand(HintedDiagramLinkStyle linkStyle) {
+ // editing domain is taken for original diagram,
+ // if we open diagram from another file, we should use another editing domain
+ super(TransactionUtil.getEditingDomain(linkStyle),
+ Messages.CommandName_OpenDiagram, null);
+ diagramFacet = linkStyle;
+ }
+
+ // FIXME canExecute if !(readOnly && getDiagramToOpen == null), i.e. open works on ro diagrams only when there's associated diagram already
+
+ /**
+ * @generated
+ */
+ protected CommandResult doExecuteWithResult(IProgressMonitor monitor,
+ IAdaptable info) throws ExecutionException {
+ try {
+ Diagram diagram = getDiagramToOpen();
+ if (diagram == null) {
+ diagram = intializeNewDiagram();
+ }
+ URI uri = EcoreUtil.getURI(diagram);
+ String editorName = uri.lastSegment() + '#'
+ + diagram.eResource().getContents().indexOf(diagram);
+ IEditorInput editorInput = new URIEditorInput(uri, editorName);
+ IWorkbenchPage page = PlatformUI.getWorkbench()
+ .getActiveWorkbenchWindow().getActivePage();
+ page.openEditor(editorInput, getEditorID());
+ return CommandResult.newOKCommandResult();
+ } catch (Exception ex) {
+ throw new ExecutionException("Can't open diagram", ex);
+ }
+ }
+
+ /**
+ * @generated
+ */
+ protected Diagram getDiagramToOpen() {
+ return diagramFacet.getDiagramLink();
+ }
+
+ /**
+ * @generated
+ */
+ protected Diagram intializeNewDiagram() throws ExecutionException {
+ Diagram d = ViewService.createDiagram(getDiagramDomainElement(),
+ getDiagramKind(), getPreferencesHint());
+ if (d == null) {
+ throw new ExecutionException("Can't create diagram of '"
+ + getDiagramKind() + "' kind");
+ }
+ diagramFacet.setDiagramLink(d);
+ assert diagramFacet.eResource() != null;
+ diagramFacet.eResource().getContents().add(d);
+ EObject container = diagramFacet.eContainer();
+ while (container instanceof View) {
+ ((View) container).persist();
+ container = container.eContainer();
+ }
+ try {
+ new WorkspaceModifyOperation() {
+ protected void execute(IProgressMonitor monitor)
+ throws CoreException, InvocationTargetException,
+ InterruptedException {
+ try {
+ for (Iterator it = diagramFacet.eResource()
+ .getResourceSet().getResources().iterator(); it
+ .hasNext();) {
+ Resource nextResource = (Resource) it.next();
+ if (nextResource.isLoaded()
+ && !getEditingDomain().isReadOnly(
+ nextResource)) {
+ nextResource.save(ComrelDiagramEditorUtil
+ .getSaveOptions());
+ }
+ }
+ } catch (IOException ex) {
+ throw new InvocationTargetException(ex,
+ "Save operation failed");
+ }
+ }
+ }.run(null);
+ } catch (InvocationTargetException e) {
+ throw new ExecutionException("Can't create diagram of '"
+ + getDiagramKind() + "' kind", e);
+ } catch (InterruptedException e) {
+ throw new ExecutionException("Can't create diagram of '"
+ + getDiagramKind() + "' kind", e);
+ }
+ return d;
+ }
+
+ /**
+ * @generated
+ */
+ protected EObject getDiagramDomainElement() {
+ // use same element as associated with EP
+ return ((View) diagramFacet.eContainer()).getElement();
+ }
+
+ /**
+ * @generated
+ */
+ protected PreferencesHint getPreferencesHint() {
+ // XXX prefhint from target diagram's editor?
+ return ComrelDiagramEditorPlugin.DIAGRAM_PREFERENCES_HINT;
+ }
+
+ /**
+ * @generated
+ */
+ protected String getDiagramKind() {
+ return CompositeRefactoringEditPart.MODEL_ID;
+ }
+
+ /**
+ * @generated
+ */
+ protected String getEditorID() {
+ return ComrelDiagramEditor.ID;
+ }
+ }
+
+}
diff --git a/org.eclipse.emf.refactor.comrel.diagram/src/comrel/diagram/edit/policies/ParallelQueuedUnit2CanonicalEditPolicy.java b/org.eclipse.emf.refactor.comrel.diagram/src/comrel/diagram/edit/policies/ParallelQueuedUnit2CanonicalEditPolicy.java
new file mode 100644
index 0000000..7004e7d
--- /dev/null
+++ b/org.eclipse.emf.refactor.comrel.diagram/src/comrel/diagram/edit/policies/ParallelQueuedUnit2CanonicalEditPolicy.java
@@ -0,0 +1,178 @@
+/*
+ *
+ */
+package comrel.diagram.edit.policies;
+
+import java.util.ArrayList;
+import java.util.Collection;
+import java.util.HashSet;
+import java.util.Iterator;
+import java.util.LinkedList;
+import java.util.List;
+import java.util.Set;
+
+import org.eclipse.core.runtime.IAdaptable;
+import org.eclipse.emf.ecore.EObject;
+import org.eclipse.emf.ecore.EStructuralFeature;
+import org.eclipse.gef.commands.Command;
+import org.eclipse.gmf.runtime.diagram.core.util.ViewUtil;
+import org.eclipse.gmf.runtime.diagram.ui.commands.DeferredLayoutCommand;
+import org.eclipse.gmf.runtime.diagram.ui.commands.ICommandProxy;
+import org.eclipse.gmf.runtime.diagram.ui.commands.SetViewMutabilityCommand;
+import org.eclipse.gmf.runtime.diagram.ui.editpolicies.CanonicalEditPolicy;
+import org.eclipse.gmf.runtime.diagram.ui.requests.CreateViewRequest;
+import org.eclipse.gmf.runtime.emf.core.util.EObjectAdapter;
+import org.eclipse.gmf.runtime.notation.Node;
+import org.eclipse.gmf.runtime.notation.View;
+
+import comrel.ComrelPackage;
+import comrel.diagram.edit.parts.MultiInputPort2EditPart;
+import comrel.diagram.edit.parts.SingleInputPort3EditPart;
+import comrel.diagram.part.ComrelDiagramUpdater;
+import comrel.diagram.part.ComrelNodeDescriptor;
+import comrel.diagram.part.ComrelVisualIDRegistry;
+
+/**
+ * @generated
+ */
+public class ParallelQueuedUnit2CanonicalEditPolicy extends CanonicalEditPolicy {
+
+ /**
+ * @generated
+ */
+ private Set<EStructuralFeature> myFeaturesToSynchronize;
+
+ /**
+ * @generated
+ */
+ protected Set getFeaturesToSynchronize() {
+ if (myFeaturesToSynchronize == null) {
+ myFeaturesToSynchronize = new HashSet<EStructuralFeature>();
+ myFeaturesToSynchronize.add(ComrelPackage.eINSTANCE
+ .getParallelQueuedUnit_SingleInputPorts());
+ myFeaturesToSynchronize.add(ComrelPackage.eINSTANCE
+ .getParallelQueuedUnit_MultiInputPorts());
+ }
+ return myFeaturesToSynchronize;
+ }
+
+ /**
+ * @generated
+ */
+ @SuppressWarnings("rawtypes")
+ protected List getSemanticChildrenList() {
+ View viewObject = (View) getHost().getModel();
+ LinkedList<EObject> result = new LinkedList<EObject>();
+ List<ComrelNodeDescriptor> childDescriptors = ComrelDiagramUpdater
+ .getParallelQueuedUnit_3004SemanticChildren(viewObject);
+ for (ComrelNodeDescriptor d : childDescriptors) {
+ result.add(d.getModelElement());
+ }
+ return result;
+ }
+
+ /**
+ * @generated
+ */
+ protected boolean isOrphaned(Collection<EObject> semanticChildren,
+ final View view) {
+ return isMyDiagramElement(view)
+ && !semanticChildren.contains(view.getElement());
+ }
+
+ /**
+ * @generated
+ */
+ private boolean isMyDiagramElement(View view) {
+ int visualID = ComrelVisualIDRegistry.getVisualID(view);
+ return visualID == SingleInputPort3EditPart.VISUAL_ID
+ || visualID == MultiInputPort2EditPart.VISUAL_ID;
+ }
+
+ /**
+ * @generated
+ */
+ protected void refreshSemantic() {
+ if (resolveSemanticElement() == null) {
+ return;
+ }
+ LinkedList<IAdaptable> createdViews = new LinkedList<IAdaptable>();
+ List<ComrelNodeDescriptor> childDescriptors = ComrelDiagramUpdater
+ .getParallelQueuedUnit_3004SemanticChildren((View) getHost()
+ .getModel());
+ LinkedList<View> orphaned = new LinkedList<View>();
+ // we care to check only views we recognize as ours
+ LinkedList<View> knownViewChildren = new LinkedList<View>();
+ for (View v : getViewChildren()) {
+ if (isMyDiagramElement(v)) {
+ knownViewChildren.add(v);
+ }
+ }
+ // alternative to #cleanCanonicalSemanticChildren(getViewChildren(), semanticChildren)
+ //
+ // iteration happens over list of desired semantic elements, trying to find best matching View, while original CEP
+ // iterates views, potentially losing view (size/bounds) information - i.e. if there are few views to reference same EObject, only last one
+ // to answer isOrphaned == true will be used for the domain element representation, see #cleanCanonicalSemanticChildren()
+ for (Iterator<ComrelNodeDescriptor> descriptorsIterator = childDescriptors
+ .iterator(); descriptorsIterator.hasNext();) {
+ ComrelNodeDescriptor next = descriptorsIterator.next();
+ String hint = ComrelVisualIDRegistry.getType(next.getVisualID());
+ LinkedList<View> perfectMatch = new LinkedList<View>(); // both semanticElement and hint match that of NodeDescriptor
+ for (View childView : getViewChildren()) {
+ EObject semanticElement = childView.getElement();
+ if (next.getModelElement().equals(semanticElement)) {
+ if (hint.equals(childView.getType())) {
+ perfectMatch.add(childView);
+ // actually, can stop iteration over view children here, but
+ // may want to use not the first view but last one as a 'real' match (the way original CEP does
+ // with its trick with viewToSemanticMap inside #cleanCanonicalSemanticChildren
+ }
+ }
+ }
+ if (perfectMatch.size() > 0) {
+ descriptorsIterator.remove(); // precise match found no need to create anything for the NodeDescriptor
+ // use only one view (first or last?), keep rest as orphaned for further consideration
+ knownViewChildren.remove(perfectMatch.getFirst());
+ }
+ }
+ // those left in knownViewChildren are subject to removal - they are our diagram elements we didn't find match to,
+ // or those we have potential matches to, and thus need to be recreated, preserving size/location information.
+ orphaned.addAll(knownViewChildren);
+ //
+ ArrayList<CreateViewRequest.ViewDescriptor> viewDescriptors = new ArrayList<CreateViewRequest.ViewDescriptor>(
+ childDescriptors.size());
+ for (ComrelNodeDescriptor next : childDescriptors) {
+ String hint = ComrelVisualIDRegistry.getType(next.getVisualID());
+ IAdaptable elementAdapter = new CanonicalElementAdapter(
+ next.getModelElement(), hint);
+ CreateViewRequest.ViewDescriptor descriptor = new CreateViewRequest.ViewDescriptor(
+ elementAdapter, Node.class, hint, ViewUtil.APPEND, false,
+ host().getDiagramPreferencesHint());
+ viewDescriptors.add(descriptor);
+ }
+
+ boolean changed = deleteViews(orphaned.iterator());
+ //
+ CreateViewRequest request = getCreateViewRequest(viewDescriptors);
+ Command cmd = getCreateViewCommand(request);
+ if (cmd != null && cmd.canExecute()) {
+ SetViewMutabilityCommand.makeMutable(
+ new EObjectAdapter(host().getNotationView())).execute();
+ executeCommand(cmd);
+ @SuppressWarnings("unchecked")
+ List<IAdaptable> nl = (List<IAdaptable>) request.getNewObject();
+ createdViews.addAll(nl);
+ }
+ if (changed || createdViews.size() > 0) {
+ postProcessRefreshSemantic(createdViews);
+ }
+ if (createdViews.size() > 1) {
+ // perform a layout of the container
+ DeferredLayoutCommand layoutCmd = new DeferredLayoutCommand(host()
+ .getEditingDomain(), createdViews, host());
+ executeCommand(new ICommandProxy(layoutCmd));
+ }
+
+ makeViewsImmutable(createdViews);
+ }
+}
diff --git a/org.eclipse.emf.refactor.comrel.diagram/src/comrel/diagram/edit/policies/ParallelQueuedUnit2ItemSemanticEditPolicy.java b/org.eclipse.emf.refactor.comrel.diagram/src/comrel/diagram/edit/policies/ParallelQueuedUnit2ItemSemanticEditPolicy.java
new file mode 100644
index 0000000..ff2e522
--- /dev/null
+++ b/org.eclipse.emf.refactor.comrel.diagram/src/comrel/diagram/edit/policies/ParallelQueuedUnit2ItemSemanticEditPolicy.java
@@ -0,0 +1,263 @@
+/*
+ *
+ */
+package comrel.diagram.edit.policies;
+
+import java.util.Iterator;
+
+import org.eclipse.emf.ecore.EAnnotation;
+import org.eclipse.gef.commands.Command;
+import org.eclipse.gmf.runtime.common.core.command.ICompositeCommand;
+import org.eclipse.gmf.runtime.diagram.core.commands.DeleteCommand;
+import org.eclipse.gmf.runtime.emf.commands.core.command.CompositeTransactionalCommand;
+import org.eclipse.gmf.runtime.emf.type.core.commands.DestroyElementCommand;
+import org.eclipse.gmf.runtime.emf.type.core.requests.CreateElementRequest;
+import org.eclipse.gmf.runtime.emf.type.core.requests.DestroyElementRequest;
+import org.eclipse.gmf.runtime.notation.Edge;
+import org.eclipse.gmf.runtime.notation.Node;
+import org.eclipse.gmf.runtime.notation.View;
+
+import comrel.diagram.edit.commands.MultiInputPort2CreateCommand;
+import comrel.diagram.edit.commands.SingleInputPort3CreateCommand;
+import comrel.diagram.edit.parts.AtomicUnit3EditPart;
+import comrel.diagram.edit.parts.CartesianQueuedUnit3EditPart;
+import comrel.diagram.edit.parts.ConditionalUnit3EditPart;
+import comrel.diagram.edit.parts.MultiFeatureUnit2EditPart;
+import comrel.diagram.edit.parts.MultiFilterUnit2EditPart;
+import comrel.diagram.edit.parts.MultiInputPort2EditPart;
+import comrel.diagram.edit.parts.MultiPortMappingEditPart;
+import comrel.diagram.edit.parts.MultiSinglePortMappingEditPart;
+import comrel.diagram.edit.parts.ParallelQueuedUnit4EditPart;
+import comrel.diagram.edit.parts.ParallelQueuedUnitParallelQueuedUnitHelperUnitsCompartmentEditPart;
+import comrel.diagram.edit.parts.ParallelQueuedUnitParallelQueuedUnitRefactoringUnitsCompartmentEditPart;
+import comrel.diagram.edit.parts.SequentialUnit3EditPart;
+import comrel.diagram.edit.parts.SingleFeatureUnit2EditPart;
+import comrel.diagram.edit.parts.SingleFilterUnit2EditPart;
+import comrel.diagram.edit.parts.SingleInputPort3EditPart;
+import comrel.diagram.edit.parts.SinglePortMappingEditPart;
+import comrel.diagram.edit.parts.SingleQueuedUnit3EditPart;
+import comrel.diagram.part.ComrelVisualIDRegistry;
+import comrel.diagram.providers.ComrelElementTypes;
+
+/**
+ * @generated
+ */
+public class ParallelQueuedUnit2ItemSemanticEditPolicy extends
+ ComrelBaseItemSemanticEditPolicy {
+
+ /**
+ * @generated
+ */
+ public ParallelQueuedUnit2ItemSemanticEditPolicy() {
+ super(ComrelElementTypes.ParallelQueuedUnit_3004);
+ }
+
+ /**
+ * @generated
+ */
+ protected Command getCreateCommand(CreateElementRequest req) {
+ if (ComrelElementTypes.SingleInputPort_3005 == req.getElementType()) {
+ return getGEFWrapper(new SingleInputPort3CreateCommand(req));
+ }
+ if (ComrelElementTypes.MultiInputPort_3006 == req.getElementType()) {
+ return getGEFWrapper(new MultiInputPort2CreateCommand(req));
+ }
+ return super.getCreateCommand(req);
+ }
+
+ /**
+ * @generated
+ */
+ protected Command getDestroyElementCommand(DestroyElementRequest req) {
+ View view = (View) getHost().getModel();
+ CompositeTransactionalCommand cmd = new CompositeTransactionalCommand(
+ getEditingDomain(), null);
+ cmd.setTransactionNestingEnabled(false);
+ EAnnotation annotation = view.getEAnnotation("Shortcut"); //$NON-NLS-1$
+ if (annotation == null) {
+ // there are indirectly referenced children, need extra commands: false
+ addDestroyChildNodesCommand(cmd);
+ addDestroyShortcutsCommand(cmd, view);
+ // delete host element
+ cmd.add(new DestroyElementCommand(req));
+ } else {
+ cmd.add(new DeleteCommand(getEditingDomain(), view));
+ }
+ return getGEFWrapper(cmd.reduce());
+ }
+
+ /**
+ * @generated
+ */
+ private void addDestroyChildNodesCommand(ICompositeCommand cmd) {
+ View view = (View) getHost().getModel();
+ for (Iterator<?> nit = view.getChildren().iterator(); nit.hasNext();) {
+ Node node = (Node) nit.next();
+ switch (ComrelVisualIDRegistry.getVisualID(node)) {
+ case SingleInputPort3EditPart.VISUAL_ID:
+ for (Iterator<?> it = node.getTargetEdges().iterator(); it
+ .hasNext();) {
+ Edge incomingLink = (Edge) it.next();
+ if (ComrelVisualIDRegistry.getVisualID(incomingLink) == SinglePortMappingEditPart.VISUAL_ID) {
+ DestroyElementRequest r = new DestroyElementRequest(
+ incomingLink.getElement(), false);
+ cmd.add(new DestroyElementCommand(r));
+ cmd.add(new DeleteCommand(getEditingDomain(),
+ incomingLink));
+ continue;
+ }
+ if (ComrelVisualIDRegistry.getVisualID(incomingLink) == MultiSinglePortMappingEditPart.VISUAL_ID) {
+ DestroyElementRequest r = new DestroyElementRequest(
+ incomingLink.getElement(), false);
+ cmd.add(new DestroyElementCommand(r));
+ cmd.add(new DeleteCommand(getEditingDomain(),
+ incomingLink));
+ continue;
+ }
+ }
+ for (Iterator<?> it = node.getSourceEdges().iterator(); it
+ .hasNext();) {
+ Edge outgoingLink = (Edge) it.next();
+ if (ComrelVisualIDRegistry.getVisualID(outgoingLink) == SinglePortMappingEditPart.VISUAL_ID) {
+ DestroyElementRequest r = new DestroyElementRequest(
+ outgoingLink.getElement(), false);
+ cmd.add(new DestroyElementCommand(r));
+ cmd.add(new DeleteCommand(getEditingDomain(),
+ outgoingLink));
+ continue;
+ }
+ }
+ cmd.add(new DestroyElementCommand(new DestroyElementRequest(
+ getEditingDomain(), node.getElement(), false))); // directlyOwned: true
+ // don't need explicit deletion of node as parent's view deletion would clean child views as well
+ // cmd.add(new org.eclipse.gmf.runtime.diagram.core.commands.DeleteCommand(getEditingDomain(), node));
+ break;
+ case MultiInputPort2EditPart.VISUAL_ID:
+ for (Iterator<?> it = node.getTargetEdges().iterator(); it
+ .hasNext();) {
+ Edge incomingLink = (Edge) it.next();
+ if (ComrelVisualIDRegistry.getVisualID(incomingLink) == MultiPortMappingEditPart.VISUAL_ID) {
+ DestroyElementRequest r = new DestroyElementRequest(
+ incomingLink.getElement(), false);
+ cmd.add(new DestroyElementCommand(r));
+ cmd.add(new DeleteCommand(getEditingDomain(),
+ incomingLink));
+ continue;
+ }
+ }
+ for (Iterator<?> it = node.getSourceEdges().iterator(); it
+ .hasNext();) {
+ Edge outgoingLink = (Edge) it.next();
+ if (ComrelVisualIDRegistry.getVisualID(outgoingLink) == MultiPortMappingEditPart.VISUAL_ID) {
+ DestroyElementRequest r = new DestroyElementRequest(
+ outgoingLink.getElement(), false);
+ cmd.add(new DestroyElementCommand(r));
+ cmd.add(new DeleteCommand(getEditingDomain(),
+ outgoingLink));
+ continue;
+ }
+ if (ComrelVisualIDRegistry.getVisualID(outgoingLink) == MultiSinglePortMappingEditPart.VISUAL_ID) {
+ DestroyElementRequest r = new DestroyElementRequest(
+ outgoingLink.getElement(), false);
+ cmd.add(new DestroyElementCommand(r));
+ cmd.add(new DeleteCommand(getEditingDomain(),
+ outgoingLink));
+ continue;
+ }
+ }
+ cmd.add(new DestroyElementCommand(new DestroyElementRequest(
+ getEditingDomain(), node.getElement(), false))); // directlyOwned: true
+ // don't need explicit deletion of node as parent's view deletion would clean child views as well
+ // cmd.add(new org.eclipse.gmf.runtime.diagram.core.commands.DeleteCommand(getEditingDomain(), node));
+ break;
+ case ParallelQueuedUnitParallelQueuedUnitHelperUnitsCompartmentEditPart.VISUAL_ID:
+ for (Iterator<?> cit = node.getChildren().iterator(); cit
+ .hasNext();) {
+ Node cnode = (Node) cit.next();
+ switch (ComrelVisualIDRegistry.getVisualID(cnode)) {
+ case SingleFeatureUnit2EditPart.VISUAL_ID:
+ cmd.add(new DestroyElementCommand(
+ new DestroyElementRequest(getEditingDomain(),
+ cnode.getElement(), false))); // directlyOwned: true
+ // don't need explicit deletion of cnode as parent's view deletion would clean child views as well
+ // cmd.add(new org.eclipse.gmf.runtime.diagram.core.commands.DeleteCommand(getEditingDomain(), cnode));
+ break;
+ case MultiFeatureUnit2EditPart.VISUAL_ID:
+ cmd.add(new DestroyElementCommand(
+ new DestroyElementRequest(getEditingDomain(),
+ cnode.getElement(), false))); // directlyOwned: true
+ // don't need explicit deletion of cnode as parent's view deletion would clean child views as well
+ // cmd.add(new org.eclipse.gmf.runtime.diagram.core.commands.DeleteCommand(getEditingDomain(), cnode));
+ break;
+ case SingleFilterUnit2EditPart.VISUAL_ID:
+ cmd.add(new DestroyElementCommand(
+ new DestroyElementRequest(getEditingDomain(),
+ cnode.getElement(), false))); // directlyOwned: true
+ // don't need explicit deletion of cnode as parent's view deletion would clean child views as well
+ // cmd.add(new org.eclipse.gmf.runtime.diagram.core.commands.DeleteCommand(getEditingDomain(), cnode));
+ break;
+ case MultiFilterUnit2EditPart.VISUAL_ID:
+ cmd.add(new DestroyElementCommand(
+ new DestroyElementRequest(getEditingDomain(),
+ cnode.getElement(), false))); // directlyOwned: true
+ // don't need explicit deletion of cnode as parent's view deletion would clean child views as well
+ // cmd.add(new org.eclipse.gmf.runtime.diagram.core.commands.DeleteCommand(getEditingDomain(), cnode));
+ break;
+ }
+ }
+ break;
+ case ParallelQueuedUnitParallelQueuedUnitRefactoringUnitsCompartmentEditPart.VISUAL_ID:
+ for (Iterator<?> cit = node.getChildren().iterator(); cit
+ .hasNext();) {
+ Node cnode = (Node) cit.next();
+ switch (ComrelVisualIDRegistry.getVisualID(cnode)) {
+ case CartesianQueuedUnit3EditPart.VISUAL_ID:
+ cmd.add(new DestroyElementCommand(
+ new DestroyElementRequest(getEditingDomain(),
+ cnode.getElement(), false))); // directlyOwned: true
+ // don't need explicit deletion of cnode as parent's view deletion would clean child views as well
+ // cmd.add(new org.eclipse.gmf.runtime.diagram.core.commands.DeleteCommand(getEditingDomain(), cnode));
+ break;
+ case ParallelQueuedUnit4EditPart.VISUAL_ID:
+ cmd.add(new DestroyElementCommand(
+ new DestroyElementRequest(getEditingDomain(),
+ cnode.getElement(), false))); // directlyOwned: true
+ // don't need explicit deletion of cnode as parent's view deletion would clean child views as well
+ // cmd.add(new org.eclipse.gmf.runtime.diagram.core.commands.DeleteCommand(getEditingDomain(), cnode));
+ break;
+ case SingleQueuedUnit3EditPart.VISUAL_ID:
+ cmd.add(new DestroyElementCommand(
+ new DestroyElementRequest(getEditingDomain(),
+ cnode.getElement(), false))); // directlyOwned: true
+ // don't need explicit deletion of cnode as parent's view deletion would clean child views as well
+ // cmd.add(new org.eclipse.gmf.runtime.diagram.core.commands.DeleteCommand(getEditingDomain(), cnode));
+ break;
+ case SequentialUnit3EditPart.VISUAL_ID:
+ cmd.add(new DestroyElementCommand(
+ new DestroyElementRequest(getEditingDomain(),
+ cnode.getElement(), false))); // directlyOwned: true
+ // don't need explicit deletion of cnode as parent's view deletion would clean child views as well
+ // cmd.add(new org.eclipse.gmf.runtime.diagram.core.commands.DeleteCommand(getEditingDomain(), cnode));
+ break;
+ case ConditionalUnit3EditPart.VISUAL_ID:
+ cmd.add(new DestroyElementCommand(
+ new DestroyElementRequest(getEditingDomain(),
+ cnode.getElement(), false))); // directlyOwned: true
+ // don't need explicit deletion of cnode as parent's view deletion would clean child views as well
+ // cmd.add(new org.eclipse.gmf.runtime.diagram.core.commands.DeleteCommand(getEditingDomain(), cnode));
+ break;
+ case AtomicUnit3EditPart.VISUAL_ID:
+ cmd.add(new DestroyElementCommand(
+ new DestroyElementRequest(getEditingDomain(),
+ cnode.getElement(), false))); // directlyOwned: true
+ // don't need explicit deletion of cnode as parent's view deletion would clean child views as well
+ // cmd.add(new org.eclipse.gmf.runtime.diagram.core.commands.DeleteCommand(getEditingDomain(), cnode));
+ break;
+ }
+ }
+ break;
+ }
+ }
+ }
+
+}
diff --git a/org.eclipse.emf.refactor.comrel.diagram/src/comrel/diagram/edit/policies/ParallelQueuedUnit3CanonicalEditPolicy.java b/org.eclipse.emf.refactor.comrel.diagram/src/comrel/diagram/edit/policies/ParallelQueuedUnit3CanonicalEditPolicy.java
new file mode 100644
index 0000000..c11cbb5
--- /dev/null
+++ b/org.eclipse.emf.refactor.comrel.diagram/src/comrel/diagram/edit/policies/ParallelQueuedUnit3CanonicalEditPolicy.java
@@ -0,0 +1,178 @@
+/*
+ *
+ */
+package comrel.diagram.edit.policies;
+
+import java.util.ArrayList;
+import java.util.Collection;
+import java.util.HashSet;
+import java.util.Iterator;
+import java.util.LinkedList;
+import java.util.List;
+import java.util.Set;
+
+import org.eclipse.core.runtime.IAdaptable;
+import org.eclipse.emf.ecore.EObject;
+import org.eclipse.emf.ecore.EStructuralFeature;
+import org.eclipse.gef.commands.Command;
+import org.eclipse.gmf.runtime.diagram.core.util.ViewUtil;
+import org.eclipse.gmf.runtime.diagram.ui.commands.DeferredLayoutCommand;
+import org.eclipse.gmf.runtime.diagram.ui.commands.ICommandProxy;
+import org.eclipse.gmf.runtime.diagram.ui.commands.SetViewMutabilityCommand;
+import org.eclipse.gmf.runtime.diagram.ui.editpolicies.CanonicalEditPolicy;
+import org.eclipse.gmf.runtime.diagram.ui.requests.CreateViewRequest;
+import org.eclipse.gmf.runtime.emf.core.util.EObjectAdapter;
+import org.eclipse.gmf.runtime.notation.Node;
+import org.eclipse.gmf.runtime.notation.View;
+
+import comrel.ComrelPackage;
+import comrel.diagram.edit.parts.MultiInputPort2EditPart;
+import comrel.diagram.edit.parts.SingleInputPort3EditPart;
+import comrel.diagram.part.ComrelDiagramUpdater;
+import comrel.diagram.part.ComrelNodeDescriptor;
+import comrel.diagram.part.ComrelVisualIDRegistry;
+
+/**
+ * @generated
+ */
+public class ParallelQueuedUnit3CanonicalEditPolicy extends CanonicalEditPolicy {
+
+ /**
+ * @generated
+ */
+ private Set<EStructuralFeature> myFeaturesToSynchronize;
+
+ /**
+ * @generated
+ */
+ protected Set getFeaturesToSynchronize() {
+ if (myFeaturesToSynchronize == null) {
+ myFeaturesToSynchronize = new HashSet<EStructuralFeature>();
+ myFeaturesToSynchronize.add(ComrelPackage.eINSTANCE
+ .getParallelQueuedUnit_SingleInputPorts());
+ myFeaturesToSynchronize.add(ComrelPackage.eINSTANCE
+ .getParallelQueuedUnit_MultiInputPorts());
+ }
+ return myFeaturesToSynchronize;
+ }
+
+ /**
+ * @generated
+ */
+ @SuppressWarnings("rawtypes")
+ protected List getSemanticChildrenList() {
+ View viewObject = (View) getHost().getModel();
+ LinkedList<EObject> result = new LinkedList<EObject>();
+ List<ComrelNodeDescriptor> childDescriptors = ComrelDiagramUpdater
+ .getParallelQueuedUnit_3036SemanticChildren(viewObject);
+ for (ComrelNodeDescriptor d : childDescriptors) {
+ result.add(d.getModelElement());
+ }
+ return result;
+ }
+
+ /**
+ * @generated
+ */
+ protected boolean isOrphaned(Collection<EObject> semanticChildren,
+ final View view) {
+ return isMyDiagramElement(view)
+ && !semanticChildren.contains(view.getElement());
+ }
+
+ /**
+ * @generated
+ */
+ private boolean isMyDiagramElement(View view) {
+ int visualID = ComrelVisualIDRegistry.getVisualID(view);
+ return visualID == SingleInputPort3EditPart.VISUAL_ID
+ || visualID == MultiInputPort2EditPart.VISUAL_ID;
+ }
+
+ /**
+ * @generated
+ */
+ protected void refreshSemantic() {
+ if (resolveSemanticElement() == null) {
+ return;
+ }
+ LinkedList<IAdaptable> createdViews = new LinkedList<IAdaptable>();
+ List<ComrelNodeDescriptor> childDescriptors = ComrelDiagramUpdater
+ .getParallelQueuedUnit_3036SemanticChildren((View) getHost()
+ .getModel());
+ LinkedList<View> orphaned = new LinkedList<View>();
+ // we care to check only views we recognize as ours
+ LinkedList<View> knownViewChildren = new LinkedList<View>();
+ for (View v : getViewChildren()) {
+ if (isMyDiagramElement(v)) {
+ knownViewChildren.add(v);
+ }
+ }
+ // alternative to #cleanCanonicalSemanticChildren(getViewChildren(), semanticChildren)
+ //
+ // iteration happens over list of desired semantic elements, trying to find best matching View, while original CEP
+ // iterates views, potentially losing view (size/bounds) information - i.e. if there are few views to reference same EObject, only last one
+ // to answer isOrphaned == true will be used for the domain element representation, see #cleanCanonicalSemanticChildren()
+ for (Iterator<ComrelNodeDescriptor> descriptorsIterator = childDescriptors
+ .iterator(); descriptorsIterator.hasNext();) {
+ ComrelNodeDescriptor next = descriptorsIterator.next();
+ String hint = ComrelVisualIDRegistry.getType(next.getVisualID());
+ LinkedList<View> perfectMatch = new LinkedList<View>(); // both semanticElement and hint match that of NodeDescriptor
+ for (View childView : getViewChildren()) {
+ EObject semanticElement = childView.getElement();
+ if (next.getModelElement().equals(semanticElement)) {
+ if (hint.equals(childView.getType())) {
+ perfectMatch.add(childView);
+ // actually, can stop iteration over view children here, but
+ // may want to use not the first view but last one as a 'real' match (the way original CEP does
+ // with its trick with viewToSemanticMap inside #cleanCanonicalSemanticChildren
+ }
+ }
+ }
+ if (perfectMatch.size() > 0) {
+ descriptorsIterator.remove(); // precise match found no need to create anything for the NodeDescriptor
+ // use only one view (first or last?), keep rest as orphaned for further consideration
+ knownViewChildren.remove(perfectMatch.getFirst());
+ }
+ }
+ // those left in knownViewChildren are subject to removal - they are our diagram elements we didn't find match to,
+ // or those we have potential matches to, and thus need to be recreated, preserving size/location information.
+ orphaned.addAll(knownViewChildren);
+ //
+ ArrayList<CreateViewRequest.ViewDescriptor> viewDescriptors = new ArrayList<CreateViewRequest.ViewDescriptor>(
+ childDescriptors.size());
+ for (ComrelNodeDescriptor next : childDescriptors) {
+ String hint = ComrelVisualIDRegistry.getType(next.getVisualID());
+ IAdaptable elementAdapter = new CanonicalElementAdapter(
+ next.getModelElement(), hint);
+ CreateViewRequest.ViewDescriptor descriptor = new CreateViewRequest.ViewDescriptor(
+ elementAdapter, Node.class, hint, ViewUtil.APPEND, false,
+ host().getDiagramPreferencesHint());
+ viewDescriptors.add(descriptor);
+ }
+
+ boolean changed = deleteViews(orphaned.iterator());
+ //
+ CreateViewRequest request = getCreateViewRequest(viewDescriptors);
+ Command cmd = getCreateViewCommand(request);
+ if (cmd != null && cmd.canExecute()) {
+ SetViewMutabilityCommand.makeMutable(
+ new EObjectAdapter(host().getNotationView())).execute();
+ executeCommand(cmd);
+ @SuppressWarnings("unchecked")
+ List<IAdaptable> nl = (List<IAdaptable>) request.getNewObject();
+ createdViews.addAll(nl);
+ }
+ if (changed || createdViews.size() > 0) {
+ postProcessRefreshSemantic(createdViews);
+ }
+ if (createdViews.size() > 1) {
+ // perform a layout of the container
+ DeferredLayoutCommand layoutCmd = new DeferredLayoutCommand(host()
+ .getEditingDomain(), createdViews, host());
+ executeCommand(new ICommandProxy(layoutCmd));
+ }
+
+ makeViewsImmutable(createdViews);
+ }
+}
diff --git a/org.eclipse.emf.refactor.comrel.diagram/src/comrel/diagram/edit/policies/ParallelQueuedUnit3ItemSemanticEditPolicy.java b/org.eclipse.emf.refactor.comrel.diagram/src/comrel/diagram/edit/policies/ParallelQueuedUnit3ItemSemanticEditPolicy.java
new file mode 100644
index 0000000..5a48016
--- /dev/null
+++ b/org.eclipse.emf.refactor.comrel.diagram/src/comrel/diagram/edit/policies/ParallelQueuedUnit3ItemSemanticEditPolicy.java
@@ -0,0 +1,263 @@
+/*
+ *
+ */
+package comrel.diagram.edit.policies;
+
+import java.util.Iterator;
+
+import org.eclipse.emf.ecore.EAnnotation;
+import org.eclipse.gef.commands.Command;
+import org.eclipse.gmf.runtime.common.core.command.ICompositeCommand;
+import org.eclipse.gmf.runtime.diagram.core.commands.DeleteCommand;
+import org.eclipse.gmf.runtime.emf.commands.core.command.CompositeTransactionalCommand;
+import org.eclipse.gmf.runtime.emf.type.core.commands.DestroyElementCommand;
+import org.eclipse.gmf.runtime.emf.type.core.requests.CreateElementRequest;
+import org.eclipse.gmf.runtime.emf.type.core.requests.DestroyElementRequest;
+import org.eclipse.gmf.runtime.notation.Edge;
+import org.eclipse.gmf.runtime.notation.Node;
+import org.eclipse.gmf.runtime.notation.View;
+
+import comrel.diagram.edit.commands.MultiInputPort2CreateCommand;
+import comrel.diagram.edit.commands.SingleInputPort3CreateCommand;
+import comrel.diagram.edit.parts.AtomicUnit3EditPart;
+import comrel.diagram.edit.parts.CartesianQueuedUnit3EditPart;
+import comrel.diagram.edit.parts.ConditionalUnit3EditPart;
+import comrel.diagram.edit.parts.MultiFeatureUnit2EditPart;
+import comrel.diagram.edit.parts.MultiFilterUnit2EditPart;
+import comrel.diagram.edit.parts.MultiInputPort2EditPart;
+import comrel.diagram.edit.parts.MultiPortMappingEditPart;
+import comrel.diagram.edit.parts.MultiSinglePortMappingEditPart;
+import comrel.diagram.edit.parts.ParallelQueuedUnit4EditPart;
+import comrel.diagram.edit.parts.ParallelQueuedUnitParallelQueuedUnitHelperUnitsCompartment2EditPart;
+import comrel.diagram.edit.parts.ParallelQueuedUnitParallelQueuedUnitRefactoringUnitsCompartment2EditPart;
+import comrel.diagram.edit.parts.SequentialUnit3EditPart;
+import comrel.diagram.edit.parts.SingleFeatureUnit2EditPart;
+import comrel.diagram.edit.parts.SingleFilterUnit2EditPart;
+import comrel.diagram.edit.parts.SingleInputPort3EditPart;
+import comrel.diagram.edit.parts.SinglePortMappingEditPart;
+import comrel.diagram.edit.parts.SingleQueuedUnit3EditPart;
+import comrel.diagram.part.ComrelVisualIDRegistry;
+import comrel.diagram.providers.ComrelElementTypes;
+
+/**
+ * @generated
+ */
+public class ParallelQueuedUnit3ItemSemanticEditPolicy extends
+ ComrelBaseItemSemanticEditPolicy {
+
+ /**
+ * @generated
+ */
+ public ParallelQueuedUnit3ItemSemanticEditPolicy() {
+ super(ComrelElementTypes.ParallelQueuedUnit_3036);
+ }
+
+ /**
+ * @generated
+ */
+ protected Command getCreateCommand(CreateElementRequest req) {
+ if (ComrelElementTypes.SingleInputPort_3005 == req.getElementType()) {
+ return getGEFWrapper(new SingleInputPort3CreateCommand(req));
+ }
+ if (ComrelElementTypes.MultiInputPort_3006 == req.getElementType()) {
+ return getGEFWrapper(new MultiInputPort2CreateCommand(req));
+ }
+ return super.getCreateCommand(req);
+ }
+
+ /**
+ * @generated
+ */
+ protected Command getDestroyElementCommand(DestroyElementRequest req) {
+ View view = (View) getHost().getModel();
+ CompositeTransactionalCommand cmd = new CompositeTransactionalCommand(
+ getEditingDomain(), null);
+ cmd.setTransactionNestingEnabled(false);
+ EAnnotation annotation = view.getEAnnotation("Shortcut"); //$NON-NLS-1$
+ if (annotation == null) {
+ // there are indirectly referenced children, need extra commands: false
+ addDestroyChildNodesCommand(cmd);
+ addDestroyShortcutsCommand(cmd, view);
+ // delete host element
+ cmd.add(new DestroyElementCommand(req));
+ } else {
+ cmd.add(new DeleteCommand(getEditingDomain(), view));
+ }
+ return getGEFWrapper(cmd.reduce());
+ }
+
+ /**
+ * @generated
+ */
+ private void addDestroyChildNodesCommand(ICompositeCommand cmd) {
+ View view = (View) getHost().getModel();
+ for (Iterator<?> nit = view.getChildren().iterator(); nit.hasNext();) {
+ Node node = (Node) nit.next();
+ switch (ComrelVisualIDRegistry.getVisualID(node)) {
+ case SingleInputPort3EditPart.VISUAL_ID:
+ for (Iterator<?> it = node.getTargetEdges().iterator(); it
+ .hasNext();) {
+ Edge incomingLink = (Edge) it.next();
+ if (ComrelVisualIDRegistry.getVisualID(incomingLink) == SinglePortMappingEditPart.VISUAL_ID) {
+ DestroyElementRequest r = new DestroyElementRequest(
+ incomingLink.getElement(), false);
+ cmd.add(new DestroyElementCommand(r));
+ cmd.add(new DeleteCommand(getEditingDomain(),
+ incomingLink));
+ continue;
+ }
+ if (ComrelVisualIDRegistry.getVisualID(incomingLink) == MultiSinglePortMappingEditPart.VISUAL_ID) {
+ DestroyElementRequest r = new DestroyElementRequest(
+ incomingLink.getElement(), false);
+ cmd.add(new DestroyElementCommand(r));
+ cmd.add(new DeleteCommand(getEditingDomain(),
+ incomingLink));
+ continue;
+ }
+ }
+ for (Iterator<?> it = node.getSourceEdges().iterator(); it
+ .hasNext();) {
+ Edge outgoingLink = (Edge) it.next();
+ if (ComrelVisualIDRegistry.getVisualID(outgoingLink) == SinglePortMappingEditPart.VISUAL_ID) {
+ DestroyElementRequest r = new DestroyElementRequest(
+ outgoingLink.getElement(), false);
+ cmd.add(new DestroyElementCommand(r));
+ cmd.add(new DeleteCommand(getEditingDomain(),
+ outgoingLink));
+ continue;
+ }
+ }
+ cmd.add(new DestroyElementCommand(new DestroyElementRequest(
+ getEditingDomain(), node.getElement(), false))); // directlyOwned: true
+ // don't need explicit deletion of node as parent's view deletion would clean child views as well
+ // cmd.add(new org.eclipse.gmf.runtime.diagram.core.commands.DeleteCommand(getEditingDomain(), node));
+ break;
+ case MultiInputPort2EditPart.VISUAL_ID:
+ for (Iterator<?> it = node.getTargetEdges().iterator(); it
+ .hasNext();) {
+ Edge incomingLink = (Edge) it.next();
+ if (ComrelVisualIDRegistry.getVisualID(incomingLink) == MultiPortMappingEditPart.VISUAL_ID) {
+ DestroyElementRequest r = new DestroyElementRequest(
+ incomingLink.getElement(), false);
+ cmd.add(new DestroyElementCommand(r));
+ cmd.add(new DeleteCommand(getEditingDomain(),
+ incomingLink));
+ continue;
+ }
+ }
+ for (Iterator<?> it = node.getSourceEdges().iterator(); it
+ .hasNext();) {
+ Edge outgoingLink = (Edge) it.next();
+ if (ComrelVisualIDRegistry.getVisualID(outgoingLink) == MultiPortMappingEditPart.VISUAL_ID) {
+ DestroyElementRequest r = new DestroyElementRequest(
+ outgoingLink.getElement(), false);
+ cmd.add(new DestroyElementCommand(r));
+ cmd.add(new DeleteCommand(getEditingDomain(),
+ outgoingLink));
+ continue;
+ }
+ if (ComrelVisualIDRegistry.getVisualID(outgoingLink) == MultiSinglePortMappingEditPart.VISUAL_ID) {
+ DestroyElementRequest r = new DestroyElementRequest(
+ outgoingLink.getElement(), false);
+ cmd.add(new DestroyElementCommand(r));
+ cmd.add(new DeleteCommand(getEditingDomain(),
+ outgoingLink));
+ continue;
+ }
+ }
+ cmd.add(new DestroyElementCommand(new DestroyElementRequest(
+ getEditingDomain(), node.getElement(), false))); // directlyOwned: true
+ // don't need explicit deletion of node as parent's view deletion would clean child views as well
+ // cmd.add(new org.eclipse.gmf.runtime.diagram.core.commands.DeleteCommand(getEditingDomain(), node));
+ break;
+ case ParallelQueuedUnitParallelQueuedUnitHelperUnitsCompartment2EditPart.VISUAL_ID:
+ for (Iterator<?> cit = node.getChildren().iterator(); cit
+ .hasNext();) {
+ Node cnode = (Node) cit.next();
+ switch (ComrelVisualIDRegistry.getVisualID(cnode)) {
+ case SingleFeatureUnit2EditPart.VISUAL_ID:
+ cmd.add(new DestroyElementCommand(
+ new DestroyElementRequest(getEditingDomain(),
+ cnode.getElement(), false))); // directlyOwned: true
+ // don't need explicit deletion of cnode as parent's view deletion would clean child views as well
+ // cmd.add(new org.eclipse.gmf.runtime.diagram.core.commands.DeleteCommand(getEditingDomain(), cnode));
+ break;
+ case MultiFeatureUnit2EditPart.VISUAL_ID:
+ cmd.add(new DestroyElementCommand(
+ new DestroyElementRequest(getEditingDomain(),
+ cnode.getElement(), false))); // directlyOwned: true
+ // don't need explicit deletion of cnode as parent's view deletion would clean child views as well
+ // cmd.add(new org.eclipse.gmf.runtime.diagram.core.commands.DeleteCommand(getEditingDomain(), cnode));
+ break;
+ case SingleFilterUnit2EditPart.VISUAL_ID:
+ cmd.add(new DestroyElementCommand(
+ new DestroyElementRequest(getEditingDomain(),
+ cnode.getElement(), false))); // directlyOwned: true
+ // don't need explicit deletion of cnode as parent's view deletion would clean child views as well
+ // cmd.add(new org.eclipse.gmf.runtime.diagram.core.commands.DeleteCommand(getEditingDomain(), cnode));
+ break;
+ case MultiFilterUnit2EditPart.VISUAL_ID:
+ cmd.add(new DestroyElementCommand(
+ new DestroyElementRequest(getEditingDomain(),
+ cnode.getElement(), false))); // directlyOwned: true
+ // don't need explicit deletion of cnode as parent's view deletion would clean child views as well
+ // cmd.add(new org.eclipse.gmf.runtime.diagram.core.commands.DeleteCommand(getEditingDomain(), cnode));
+ break;
+ }
+ }
+ break;
+ case ParallelQueuedUnitParallelQueuedUnitRefactoringUnitsCompartment2EditPart.VISUAL_ID:
+ for (Iterator<?> cit = node.getChildren().iterator(); cit
+ .hasNext();) {
+ Node cnode = (Node) cit.next();
+ switch (ComrelVisualIDRegistry.getVisualID(cnode)) {
+ case CartesianQueuedUnit3EditPart.VISUAL_ID:
+ cmd.add(new DestroyElementCommand(
+ new DestroyElementRequest(getEditingDomain(),
+ cnode.getElement(), false))); // directlyOwned: true
+ // don't need explicit deletion of cnode as parent's view deletion would clean child views as well
+ // cmd.add(new org.eclipse.gmf.runtime.diagram.core.commands.DeleteCommand(getEditingDomain(), cnode));
+ break;
+ case ParallelQueuedUnit4EditPart.VISUAL_ID:
+ cmd.add(new DestroyElementCommand(
+ new DestroyElementRequest(getEditingDomain(),
+ cnode.getElement(), false))); // directlyOwned: true
+ // don't need explicit deletion of cnode as parent's view deletion would clean child views as well
+ // cmd.add(new org.eclipse.gmf.runtime.diagram.core.commands.DeleteCommand(getEditingDomain(), cnode));
+ break;
+ case SingleQueuedUnit3EditPart.VISUAL_ID:
+ cmd.add(new DestroyElementCommand(
+ new DestroyElementRequest(getEditingDomain(),
+ cnode.getElement(), false))); // directlyOwned: true
+ // don't need explicit deletion of cnode as parent's view deletion would clean child views as well
+ // cmd.add(new org.eclipse.gmf.runtime.diagram.core.commands.DeleteCommand(getEditingDomain(), cnode));
+ break;
+ case SequentialUnit3EditPart.VISUAL_ID:
+ cmd.add(new DestroyElementCommand(
+ new DestroyElementRequest(getEditingDomain(),
+ cnode.getElement(), false))); // directlyOwned: true
+ // don't need explicit deletion of cnode as parent's view deletion would clean child views as well
+ // cmd.add(new org.eclipse.gmf.runtime.diagram.core.commands.DeleteCommand(getEditingDomain(), cnode));
+ break;
+ case ConditionalUnit3EditPart.VISUAL_ID:
+ cmd.add(new DestroyElementCommand(
+ new DestroyElementRequest(getEditingDomain(),
+ cnode.getElement(), false))); // directlyOwned: true
+ // don't need explicit deletion of cnode as parent's view deletion would clean child views as well
+ // cmd.add(new org.eclipse.gmf.runtime.diagram.core.commands.DeleteCommand(getEditingDomain(), cnode));
+ break;
+ case AtomicUnit3EditPart.VISUAL_ID:
+ cmd.add(new DestroyElementCommand(
+ new DestroyElementRequest(getEditingDomain(),
+ cnode.getElement(), false))); // directlyOwned: true
+ // don't need explicit deletion of cnode as parent's view deletion would clean child views as well
+ // cmd.add(new org.eclipse.gmf.runtime.diagram.core.commands.DeleteCommand(getEditingDomain(), cnode));
+ break;
+ }
+ }
+ break;
+ }
+ }
+ }
+
+}
diff --git a/org.eclipse.emf.refactor.comrel.diagram/src/comrel/diagram/edit/policies/ParallelQueuedUnit4CanonicalEditPolicy.java b/org.eclipse.emf.refactor.comrel.diagram/src/comrel/diagram/edit/policies/ParallelQueuedUnit4CanonicalEditPolicy.java
new file mode 100644
index 0000000..a2120d1
--- /dev/null
+++ b/org.eclipse.emf.refactor.comrel.diagram/src/comrel/diagram/edit/policies/ParallelQueuedUnit4CanonicalEditPolicy.java
@@ -0,0 +1,178 @@
+/*
+ *
+ */
+package comrel.diagram.edit.policies;
+
+import java.util.ArrayList;
+import java.util.Collection;
+import java.util.HashSet;
+import java.util.Iterator;
+import java.util.LinkedList;
+import java.util.List;
+import java.util.Set;
+
+import org.eclipse.core.runtime.IAdaptable;
+import org.eclipse.emf.ecore.EObject;
+import org.eclipse.emf.ecore.EStructuralFeature;
+import org.eclipse.gef.commands.Command;
+import org.eclipse.gmf.runtime.diagram.core.util.ViewUtil;
+import org.eclipse.gmf.runtime.diagram.ui.commands.DeferredLayoutCommand;
+import org.eclipse.gmf.runtime.diagram.ui.commands.ICommandProxy;
+import org.eclipse.gmf.runtime.diagram.ui.commands.SetViewMutabilityCommand;
+import org.eclipse.gmf.runtime.diagram.ui.editpolicies.CanonicalEditPolicy;
+import org.eclipse.gmf.runtime.diagram.ui.requests.CreateViewRequest;
+import org.eclipse.gmf.runtime.emf.core.util.EObjectAdapter;
+import org.eclipse.gmf.runtime.notation.Node;
+import org.eclipse.gmf.runtime.notation.View;
+
+import comrel.ComrelPackage;
+import comrel.diagram.edit.parts.MultiInputPort2EditPart;
+import comrel.diagram.edit.parts.SingleInputPort3EditPart;
+import comrel.diagram.part.ComrelDiagramUpdater;
+import comrel.diagram.part.ComrelNodeDescriptor;
+import comrel.diagram.part.ComrelVisualIDRegistry;
+
+/**
+ * @generated
+ */
+public class ParallelQueuedUnit4CanonicalEditPolicy extends CanonicalEditPolicy {
+
+ /**
+ * @generated
+ */
+ private Set<EStructuralFeature> myFeaturesToSynchronize;
+
+ /**
+ * @generated
+ */
+ protected Set getFeaturesToSynchronize() {
+ if (myFeaturesToSynchronize == null) {
+ myFeaturesToSynchronize = new HashSet<EStructuralFeature>();
+ myFeaturesToSynchronize.add(ComrelPackage.eINSTANCE
+ .getParallelQueuedUnit_SingleInputPorts());
+ myFeaturesToSynchronize.add(ComrelPackage.eINSTANCE
+ .getParallelQueuedUnit_MultiInputPorts());
+ }
+ return myFeaturesToSynchronize;
+ }
+
+ /**
+ * @generated
+ */
+ @SuppressWarnings("rawtypes")
+ protected List getSemanticChildrenList() {
+ View viewObject = (View) getHost().getModel();
+ LinkedList<EObject> result = new LinkedList<EObject>();
+ List<ComrelNodeDescriptor> childDescriptors = ComrelDiagramUpdater
+ .getParallelQueuedUnit_3037SemanticChildren(viewObject);
+ for (ComrelNodeDescriptor d : childDescriptors) {
+ result.add(d.getModelElement());
+ }
+ return result;
+ }
+
+ /**
+ * @generated
+ */
+ protected boolean isOrphaned(Collection<EObject> semanticChildren,
+ final View view) {
+ return isMyDiagramElement(view)
+ && !semanticChildren.contains(view.getElement());
+ }
+
+ /**
+ * @generated
+ */
+ private boolean isMyDiagramElement(View view) {
+ int visualID = ComrelVisualIDRegistry.getVisualID(view);
+ return visualID == SingleInputPort3EditPart.VISUAL_ID
+ || visualID == MultiInputPort2EditPart.VISUAL_ID;
+ }
+
+ /**
+ * @generated
+ */
+ protected void refreshSemantic() {
+ if (resolveSemanticElement() == null) {
+ return;
+ }
+ LinkedList<IAdaptable> createdViews = new LinkedList<IAdaptable>();
+ List<ComrelNodeDescriptor> childDescriptors = ComrelDiagramUpdater
+ .getParallelQueuedUnit_3037SemanticChildren((View) getHost()
+ .getModel());
+ LinkedList<View> orphaned = new LinkedList<View>();
+ // we care to check only views we recognize as ours
+ LinkedList<View> knownViewChildren = new LinkedList<View>();
+ for (View v : getViewChildren()) {
+ if (isMyDiagramElement(v)) {
+ knownViewChildren.add(v);
+ }
+ }
+ // alternative to #cleanCanonicalSemanticChildren(getViewChildren(), semanticChildren)
+ //
+ // iteration happens over list of desired semantic elements, trying to find best matching View, while original CEP
+ // iterates views, potentially losing view (size/bounds) information - i.e. if there are few views to reference same EObject, only last one
+ // to answer isOrphaned == true will be used for the domain element representation, see #cleanCanonicalSemanticChildren()
+ for (Iterator<ComrelNodeDescriptor> descriptorsIterator = childDescriptors
+ .iterator(); descriptorsIterator.hasNext();) {
+ ComrelNodeDescriptor next = descriptorsIterator.next();
+ String hint = ComrelVisualIDRegistry.getType(next.getVisualID());
+ LinkedList<View> perfectMatch = new LinkedList<View>(); // both semanticElement and hint match that of NodeDescriptor
+ for (View childView : getViewChildren()) {
+ EObject semanticElement = childView.getElement();
+ if (next.getModelElement().equals(semanticElement)) {
+ if (hint.equals(childView.getType())) {
+ perfectMatch.add(childView);
+ // actually, can stop iteration over view children here, but
+ // may want to use not the first view but last one as a 'real' match (the way original CEP does
+ // with its trick with viewToSemanticMap inside #cleanCanonicalSemanticChildren
+ }
+ }
+ }
+ if (perfectMatch.size() > 0) {
+ descriptorsIterator.remove(); // precise match found no need to create anything for the NodeDescriptor
+ // use only one view (first or last?), keep rest as orphaned for further consideration
+ knownViewChildren.remove(perfectMatch.getFirst());
+ }
+ }
+ // those left in knownViewChildren are subject to removal - they are our diagram elements we didn't find match to,
+ // or those we have potential matches to, and thus need to be recreated, preserving size/location information.
+ orphaned.addAll(knownViewChildren);
+ //
+ ArrayList<CreateViewRequest.ViewDescriptor> viewDescriptors = new ArrayList<CreateViewRequest.ViewDescriptor>(
+ childDescriptors.size());
+ for (ComrelNodeDescriptor next : childDescriptors) {
+ String hint = ComrelVisualIDRegistry.getType(next.getVisualID());
+ IAdaptable elementAdapter = new CanonicalElementAdapter(
+ next.getModelElement(), hint);
+ CreateViewRequest.ViewDescriptor descriptor = new CreateViewRequest.ViewDescriptor(
+ elementAdapter, Node.class, hint, ViewUtil.APPEND, false,
+ host().getDiagramPreferencesHint());
+ viewDescriptors.add(descriptor);
+ }
+
+ boolean changed = deleteViews(orphaned.iterator());
+ //
+ CreateViewRequest request = getCreateViewRequest(viewDescriptors);
+ Command cmd = getCreateViewCommand(request);
+ if (cmd != null && cmd.canExecute()) {
+ SetViewMutabilityCommand.makeMutable(
+ new EObjectAdapter(host().getNotationView())).execute();
+ executeCommand(cmd);
+ @SuppressWarnings("unchecked")
+ List<IAdaptable> nl = (List<IAdaptable>) request.getNewObject();
+ createdViews.addAll(nl);
+ }
+ if (changed || createdViews.size() > 0) {
+ postProcessRefreshSemantic(createdViews);
+ }
+ if (createdViews.size() > 1) {
+ // perform a layout of the container
+ DeferredLayoutCommand layoutCmd = new DeferredLayoutCommand(host()
+ .getEditingDomain(), createdViews, host());
+ executeCommand(new ICommandProxy(layoutCmd));
+ }
+
+ makeViewsImmutable(createdViews);
+ }
+}
diff --git a/org.eclipse.emf.refactor.comrel.diagram/src/comrel/diagram/edit/policies/ParallelQueuedUnit4ItemSemanticEditPolicy.java b/org.eclipse.emf.refactor.comrel.diagram/src/comrel/diagram/edit/policies/ParallelQueuedUnit4ItemSemanticEditPolicy.java
new file mode 100644
index 0000000..c114bec
--- /dev/null
+++ b/org.eclipse.emf.refactor.comrel.diagram/src/comrel/diagram/edit/policies/ParallelQueuedUnit4ItemSemanticEditPolicy.java
@@ -0,0 +1,263 @@
+/*
+ *
+ */
+package comrel.diagram.edit.policies;
+
+import java.util.Iterator;
+
+import org.eclipse.emf.ecore.EAnnotation;
+import org.eclipse.gef.commands.Command;
+import org.eclipse.gmf.runtime.common.core.command.ICompositeCommand;
+import org.eclipse.gmf.runtime.diagram.core.commands.DeleteCommand;
+import org.eclipse.gmf.runtime.emf.commands.core.command.CompositeTransactionalCommand;
+import org.eclipse.gmf.runtime.emf.type.core.commands.DestroyElementCommand;
+import org.eclipse.gmf.runtime.emf.type.core.requests.CreateElementRequest;
+import org.eclipse.gmf.runtime.emf.type.core.requests.DestroyElementRequest;
+import org.eclipse.gmf.runtime.notation.Edge;
+import org.eclipse.gmf.runtime.notation.Node;
+import org.eclipse.gmf.runtime.notation.View;
+
+import comrel.diagram.edit.commands.MultiInputPort2CreateCommand;
+import comrel.diagram.edit.commands.SingleInputPort3CreateCommand;
+import comrel.diagram.edit.parts.AtomicUnit3EditPart;
+import comrel.diagram.edit.parts.CartesianQueuedUnit3EditPart;
+import comrel.diagram.edit.parts.ConditionalUnit3EditPart;
+import comrel.diagram.edit.parts.MultiFeatureUnit2EditPart;
+import comrel.diagram.edit.parts.MultiFilterUnit2EditPart;
+import comrel.diagram.edit.parts.MultiInputPort2EditPart;
+import comrel.diagram.edit.parts.MultiPortMappingEditPart;
+import comrel.diagram.edit.parts.MultiSinglePortMappingEditPart;
+import comrel.diagram.edit.parts.ParallelQueuedUnit4EditPart;
+import comrel.diagram.edit.parts.ParallelQueuedUnitParallelQueuedUnitHelperUnitsCompartment3EditPart;
+import comrel.diagram.edit.parts.ParallelQueuedUnitParallelQueuedUnitRefactoringUnitsCompartment3EditPart;
+import comrel.diagram.edit.parts.SequentialUnit3EditPart;
+import comrel.diagram.edit.parts.SingleFeatureUnit2EditPart;
+import comrel.diagram.edit.parts.SingleFilterUnit2EditPart;
+import comrel.diagram.edit.parts.SingleInputPort3EditPart;
+import comrel.diagram.edit.parts.SinglePortMappingEditPart;
+import comrel.diagram.edit.parts.SingleQueuedUnit3EditPart;
+import comrel.diagram.part.ComrelVisualIDRegistry;
+import comrel.diagram.providers.ComrelElementTypes;
+
+/**
+ * @generated
+ */
+public class ParallelQueuedUnit4ItemSemanticEditPolicy extends
+ ComrelBaseItemSemanticEditPolicy {
+
+ /**
+ * @generated
+ */
+ public ParallelQueuedUnit4ItemSemanticEditPolicy() {
+ super(ComrelElementTypes.ParallelQueuedUnit_3037);
+ }
+
+ /**
+ * @generated
+ */
+ protected Command getCreateCommand(CreateElementRequest req) {
+ if (ComrelElementTypes.SingleInputPort_3005 == req.getElementType()) {
+ return getGEFWrapper(new SingleInputPort3CreateCommand(req));
+ }
+ if (ComrelElementTypes.MultiInputPort_3006 == req.getElementType()) {
+ return getGEFWrapper(new MultiInputPort2CreateCommand(req));
+ }
+ return super.getCreateCommand(req);
+ }
+
+ /**
+ * @generated
+ */
+ protected Command getDestroyElementCommand(DestroyElementRequest req) {
+ View view = (View) getHost().getModel();
+ CompositeTransactionalCommand cmd = new CompositeTransactionalCommand(
+ getEditingDomain(), null);
+ cmd.setTransactionNestingEnabled(false);
+ EAnnotation annotation = view.getEAnnotation("Shortcut"); //$NON-NLS-1$
+ if (annotation == null) {
+ // there are indirectly referenced children, need extra commands: false
+ addDestroyChildNodesCommand(cmd);
+ addDestroyShortcutsCommand(cmd, view);
+ // delete host element
+ cmd.add(new DestroyElementCommand(req));
+ } else {
+ cmd.add(new DeleteCommand(getEditingDomain(), view));
+ }
+ return getGEFWrapper(cmd.reduce());
+ }
+
+ /**
+ * @generated
+ */
+ private void addDestroyChildNodesCommand(ICompositeCommand cmd) {
+ View view = (View) getHost().getModel();
+ for (Iterator<?> nit = view.getChildren().iterator(); nit.hasNext();) {
+ Node node = (Node) nit.next();
+ switch (ComrelVisualIDRegistry.getVisualID(node)) {
+ case SingleInputPort3EditPart.VISUAL_ID:
+ for (Iterator<?> it = node.getTargetEdges().iterator(); it
+ .hasNext();) {
+ Edge incomingLink = (Edge) it.next();
+ if (ComrelVisualIDRegistry.getVisualID(incomingLink) == SinglePortMappingEditPart.VISUAL_ID) {
+ DestroyElementRequest r = new DestroyElementRequest(
+ incomingLink.getElement(), false);
+ cmd.add(new DestroyElementCommand(r));
+ cmd.add(new DeleteCommand(getEditingDomain(),
+ incomingLink));
+ continue;
+ }
+ if (ComrelVisualIDRegistry.getVisualID(incomingLink) == MultiSinglePortMappingEditPart.VISUAL_ID) {
+ DestroyElementRequest r = new DestroyElementRequest(
+ incomingLink.getElement(), false);
+ cmd.add(new DestroyElementCommand(r));
+ cmd.add(new DeleteCommand(getEditingDomain(),
+ incomingLink));
+ continue;
+ }
+ }
+ for (Iterator<?> it = node.getSourceEdges().iterator(); it
+ .hasNext();) {
+ Edge outgoingLink = (Edge) it.next();
+ if (ComrelVisualIDRegistry.getVisualID(outgoingLink) == SinglePortMappingEditPart.VISUAL_ID) {
+ DestroyElementRequest r = new DestroyElementRequest(
+ outgoingLink.getElement(), false);
+ cmd.add(new DestroyElementCommand(r));
+ cmd.add(new DeleteCommand(getEditingDomain(),
+ outgoingLink));
+ continue;
+ }
+ }
+ cmd.add(new DestroyElementCommand(new DestroyElementRequest(
+ getEditingDomain(), node.getElement(), false))); // directlyOwned: true
+ // don't need explicit deletion of node as parent's view deletion would clean child views as well
+ // cmd.add(new org.eclipse.gmf.runtime.diagram.core.commands.DeleteCommand(getEditingDomain(), node));
+ break;
+ case MultiInputPort2EditPart.VISUAL_ID:
+ for (Iterator<?> it = node.getTargetEdges().iterator(); it
+ .hasNext();) {
+ Edge incomingLink = (Edge) it.next();
+ if (ComrelVisualIDRegistry.getVisualID(incomingLink) == MultiPortMappingEditPart.VISUAL_ID) {
+ DestroyElementRequest r = new DestroyElementRequest(
+ incomingLink.getElement(), false);
+ cmd.add(new DestroyElementCommand(r));
+ cmd.add(new DeleteCommand(getEditingDomain(),
+ incomingLink));
+ continue;
+ }
+ }
+ for (Iterator<?> it = node.getSourceEdges().iterator(); it
+ .hasNext();) {
+ Edge outgoingLink = (Edge) it.next();
+ if (ComrelVisualIDRegistry.getVisualID(outgoingLink) == MultiPortMappingEditPart.VISUAL_ID) {
+ DestroyElementRequest r = new DestroyElementRequest(
+ outgoingLink.getElement(), false);
+ cmd.add(new DestroyElementCommand(r));
+ cmd.add(new DeleteCommand(getEditingDomain(),
+ outgoingLink));
+ continue;
+ }
+ if (ComrelVisualIDRegistry.getVisualID(outgoingLink) == MultiSinglePortMappingEditPart.VISUAL_ID) {
+ DestroyElementRequest r = new DestroyElementRequest(
+ outgoingLink.getElement(), false);
+ cmd.add(new DestroyElementCommand(r));
+ cmd.add(new DeleteCommand(getEditingDomain(),
+ outgoingLink));
+ continue;
+ }
+ }
+ cmd.add(new DestroyElementCommand(new DestroyElementRequest(
+ getEditingDomain(), node.getElement(), false))); // directlyOwned: true
+ // don't need explicit deletion of node as parent's view deletion would clean child views as well
+ // cmd.add(new org.eclipse.gmf.runtime.diagram.core.commands.DeleteCommand(getEditingDomain(), node));
+ break;
+ case ParallelQueuedUnitParallelQueuedUnitHelperUnitsCompartment3EditPart.VISUAL_ID:
+ for (Iterator<?> cit = node.getChildren().iterator(); cit
+ .hasNext();) {
+ Node cnode = (Node) cit.next();
+ switch (ComrelVisualIDRegistry.getVisualID(cnode)) {
+ case SingleFeatureUnit2EditPart.VISUAL_ID:
+ cmd.add(new DestroyElementCommand(
+ new DestroyElementRequest(getEditingDomain(),
+ cnode.getElement(), false))); // directlyOwned: true
+ // don't need explicit deletion of cnode as parent's view deletion would clean child views as well
+ // cmd.add(new org.eclipse.gmf.runtime.diagram.core.commands.DeleteCommand(getEditingDomain(), cnode));
+ break;
+ case MultiFeatureUnit2EditPart.VISUAL_ID:
+ cmd.add(new DestroyElementCommand(
+ new DestroyElementRequest(getEditingDomain(),
+ cnode.getElement(), false))); // directlyOwned: true
+ // don't need explicit deletion of cnode as parent's view deletion would clean child views as well
+ // cmd.add(new org.eclipse.gmf.runtime.diagram.core.commands.DeleteCommand(getEditingDomain(), cnode));
+ break;
+ case SingleFilterUnit2EditPart.VISUAL_ID:
+ cmd.add(new DestroyElementCommand(
+ new DestroyElementRequest(getEditingDomain(),
+ cnode.getElement(), false))); // directlyOwned: true
+ // don't need explicit deletion of cnode as parent's view deletion would clean child views as well
+ // cmd.add(new org.eclipse.gmf.runtime.diagram.core.commands.DeleteCommand(getEditingDomain(), cnode));
+ break;
+ case MultiFilterUnit2EditPart.VISUAL_ID:
+ cmd.add(new DestroyElementCommand(
+ new DestroyElementRequest(getEditingDomain(),
+ cnode.getElement(), false))); // directlyOwned: true
+ // don't need explicit deletion of cnode as parent's view deletion would clean child views as well
+ // cmd.add(new org.eclipse.gmf.runtime.diagram.core.commands.DeleteCommand(getEditingDomain(), cnode));
+ break;
+ }
+ }
+ break;
+ case ParallelQueuedUnitParallelQueuedUnitRefactoringUnitsCompartment3EditPart.VISUAL_ID:
+ for (Iterator<?> cit = node.getChildren().iterator(); cit
+ .hasNext();) {
+ Node cnode = (Node) cit.next();
+ switch (ComrelVisualIDRegistry.getVisualID(cnode)) {
+ case CartesianQueuedUnit3EditPart.VISUAL_ID:
+ cmd.add(new DestroyElementCommand(
+ new DestroyElementRequest(getEditingDomain(),
+ cnode.getElement(), false))); // directlyOwned: true
+ // don't need explicit deletion of cnode as parent's view deletion would clean child views as well
+ // cmd.add(new org.eclipse.gmf.runtime.diagram.core.commands.DeleteCommand(getEditingDomain(), cnode));
+ break;
+ case ParallelQueuedUnit4EditPart.VISUAL_ID:
+ cmd.add(new DestroyElementCommand(
+ new DestroyElementRequest(getEditingDomain(),
+ cnode.getElement(), false))); // directlyOwned: true
+ // don't need explicit deletion of cnode as parent's view deletion would clean child views as well
+ // cmd.add(new org.eclipse.gmf.runtime.diagram.core.commands.DeleteCommand(getEditingDomain(), cnode));
+ break;
+ case SingleQueuedUnit3EditPart.VISUAL_ID:
+ cmd.add(new DestroyElementCommand(
+ new DestroyElementRequest(getEditingDomain(),
+ cnode.getElement(), false))); // directlyOwned: true
+ // don't need explicit deletion of cnode as parent's view deletion would clean child views as well
+ // cmd.add(new org.eclipse.gmf.runtime.diagram.core.commands.DeleteCommand(getEditingDomain(), cnode));
+ break;
+ case SequentialUnit3EditPart.VISUAL_ID:
+ cmd.add(new DestroyElementCommand(
+ new DestroyElementRequest(getEditingDomain(),
+ cnode.getElement(), false))); // directlyOwned: true
+ // don't need explicit deletion of cnode as parent's view deletion would clean child views as well
+ // cmd.add(new org.eclipse.gmf.runtime.diagram.core.commands.DeleteCommand(getEditingDomain(), cnode));
+ break;
+ case ConditionalUnit3EditPart.VISUAL_ID:
+ cmd.add(new DestroyElementCommand(
+ new DestroyElementRequest(getEditingDomain(),
+ cnode.getElement(), false))); // directlyOwned: true
+ // don't need explicit deletion of cnode as parent's view deletion would clean child views as well
+ // cmd.add(new org.eclipse.gmf.runtime.diagram.core.commands.DeleteCommand(getEditingDomain(), cnode));
+ break;
+ case AtomicUnit3EditPart.VISUAL_ID:
+ cmd.add(new DestroyElementCommand(
+ new DestroyElementRequest(getEditingDomain(),
+ cnode.getElement(), false))); // directlyOwned: true
+ // don't need explicit deletion of cnode as parent's view deletion would clean child views as well
+ // cmd.add(new org.eclipse.gmf.runtime.diagram.core.commands.DeleteCommand(getEditingDomain(), cnode));
+ break;
+ }
+ }
+ break;
+ }
+ }
+ }
+
+}
diff --git a/org.eclipse.emf.refactor.comrel.diagram/src/comrel/diagram/edit/policies/ParallelQueuedUnit5CanonicalEditPolicy.java b/org.eclipse.emf.refactor.comrel.diagram/src/comrel/diagram/edit/policies/ParallelQueuedUnit5CanonicalEditPolicy.java
new file mode 100644
index 0000000..8249316
--- /dev/null
+++ b/org.eclipse.emf.refactor.comrel.diagram/src/comrel/diagram/edit/policies/ParallelQueuedUnit5CanonicalEditPolicy.java
@@ -0,0 +1,178 @@
+/*
+ *
+ */
+package comrel.diagram.edit.policies;
+
+import java.util.ArrayList;
+import java.util.Collection;
+import java.util.HashSet;
+import java.util.Iterator;
+import java.util.LinkedList;
+import java.util.List;
+import java.util.Set;
+
+import org.eclipse.core.runtime.IAdaptable;
+import org.eclipse.emf.ecore.EObject;
+import org.eclipse.emf.ecore.EStructuralFeature;
+import org.eclipse.gef.commands.Command;
+import org.eclipse.gmf.runtime.diagram.core.util.ViewUtil;
+import org.eclipse.gmf.runtime.diagram.ui.commands.DeferredLayoutCommand;
+import org.eclipse.gmf.runtime.diagram.ui.commands.ICommandProxy;
+import org.eclipse.gmf.runtime.diagram.ui.commands.SetViewMutabilityCommand;
+import org.eclipse.gmf.runtime.diagram.ui.editpolicies.CanonicalEditPolicy;
+import org.eclipse.gmf.runtime.diagram.ui.requests.CreateViewRequest;
+import org.eclipse.gmf.runtime.emf.core.util.EObjectAdapter;
+import org.eclipse.gmf.runtime.notation.Node;
+import org.eclipse.gmf.runtime.notation.View;
+
+import comrel.ComrelPackage;
+import comrel.diagram.edit.parts.MultiInputPort2EditPart;
+import comrel.diagram.edit.parts.SingleInputPort3EditPart;
+import comrel.diagram.part.ComrelDiagramUpdater;
+import comrel.diagram.part.ComrelNodeDescriptor;
+import comrel.diagram.part.ComrelVisualIDRegistry;
+
+/**
+ * @generated
+ */
+public class ParallelQueuedUnit5CanonicalEditPolicy extends CanonicalEditPolicy {
+
+ /**
+ * @generated
+ */
+ private Set<EStructuralFeature> myFeaturesToSynchronize;
+
+ /**
+ * @generated
+ */
+ protected Set getFeaturesToSynchronize() {
+ if (myFeaturesToSynchronize == null) {
+ myFeaturesToSynchronize = new HashSet<EStructuralFeature>();
+ myFeaturesToSynchronize.add(ComrelPackage.eINSTANCE
+ .getParallelQueuedUnit_SingleInputPorts());
+ myFeaturesToSynchronize.add(ComrelPackage.eINSTANCE
+ .getParallelQueuedUnit_MultiInputPorts());
+ }
+ return myFeaturesToSynchronize;
+ }
+
+ /**
+ * @generated
+ */
+ @SuppressWarnings("rawtypes")
+ protected List getSemanticChildrenList() {
+ View viewObject = (View) getHost().getModel();
+ LinkedList<EObject> result = new LinkedList<EObject>();
+ List<ComrelNodeDescriptor> childDescriptors = ComrelDiagramUpdater
+ .getParallelQueuedUnit_3043SemanticChildren(viewObject);
+ for (ComrelNodeDescriptor d : childDescriptors) {
+ result.add(d.getModelElement());
+ }
+ return result;
+ }
+
+ /**
+ * @generated
+ */
+ protected boolean isOrphaned(Collection<EObject> semanticChildren,
+ final View view) {
+ return isMyDiagramElement(view)
+ && !semanticChildren.contains(view.getElement());
+ }
+
+ /**
+ * @generated
+ */
+ private boolean isMyDiagramElement(View view) {
+ int visualID = ComrelVisualIDRegistry.getVisualID(view);
+ return visualID == SingleInputPort3EditPart.VISUAL_ID
+ || visualID == MultiInputPort2EditPart.VISUAL_ID;
+ }
+
+ /**
+ * @generated
+ */
+ protected void refreshSemantic() {
+ if (resolveSemanticElement() == null) {
+ return;
+ }
+ LinkedList<IAdaptable> createdViews = new LinkedList<IAdaptable>();
+ List<ComrelNodeDescriptor> childDescriptors = ComrelDiagramUpdater
+ .getParallelQueuedUnit_3043SemanticChildren((View) getHost()
+ .getModel());
+ LinkedList<View> orphaned = new LinkedList<View>();
+ // we care to check only views we recognize as ours
+ LinkedList<View> knownViewChildren = new LinkedList<View>();
+ for (View v : getViewChildren()) {
+ if (isMyDiagramElement(v)) {
+ knownViewChildren.add(v);
+ }
+ }
+ // alternative to #cleanCanonicalSemanticChildren(getViewChildren(), semanticChildren)
+ //
+ // iteration happens over list of desired semantic elements, trying to find best matching View, while original CEP
+ // iterates views, potentially losing view (size/bounds) information - i.e. if there are few views to reference same EObject, only last one
+ // to answer isOrphaned == true will be used for the domain element representation, see #cleanCanonicalSemanticChildren()
+ for (Iterator<ComrelNodeDescriptor> descriptorsIterator = childDescriptors
+ .iterator(); descriptorsIterator.hasNext();) {
+ ComrelNodeDescriptor next = descriptorsIterator.next();
+ String hint = ComrelVisualIDRegistry.getType(next.getVisualID());
+ LinkedList<View> perfectMatch = new LinkedList<View>(); // both semanticElement and hint match that of NodeDescriptor
+ for (View childView : getViewChildren()) {
+ EObject semanticElement = childView.getElement();
+ if (next.getModelElement().equals(semanticElement)) {
+ if (hint.equals(childView.getType())) {
+ perfectMatch.add(childView);
+ // actually, can stop iteration over view children here, but
+ // may want to use not the first view but last one as a 'real' match (the way original CEP does
+ // with its trick with viewToSemanticMap inside #cleanCanonicalSemanticChildren
+ }
+ }
+ }
+ if (perfectMatch.size() > 0) {
+ descriptorsIterator.remove(); // precise match found no need to create anything for the NodeDescriptor
+ // use only one view (first or last?), keep rest as orphaned for further consideration
+ knownViewChildren.remove(perfectMatch.getFirst());
+ }
+ }
+ // those left in knownViewChildren are subject to removal - they are our diagram elements we didn't find match to,
+ // or those we have potential matches to, and thus need to be recreated, preserving size/location information.
+ orphaned.addAll(knownViewChildren);
+ //
+ ArrayList<CreateViewRequest.ViewDescriptor> viewDescriptors = new ArrayList<CreateViewRequest.ViewDescriptor>(
+ childDescriptors.size());
+ for (ComrelNodeDescriptor next : childDescriptors) {
+ String hint = ComrelVisualIDRegistry.getType(next.getVisualID());
+ IAdaptable elementAdapter = new CanonicalElementAdapter(
+ next.getModelElement(), hint);
+ CreateViewRequest.ViewDescriptor descriptor = new CreateViewRequest.ViewDescriptor(
+ elementAdapter, Node.class, hint, ViewUtil.APPEND, false,
+ host().getDiagramPreferencesHint());
+ viewDescriptors.add(descriptor);
+ }
+
+ boolean changed = deleteViews(orphaned.iterator());
+ //
+ CreateViewRequest request = getCreateViewRequest(viewDescriptors);
+ Command cmd = getCreateViewCommand(request);
+ if (cmd != null && cmd.canExecute()) {
+ SetViewMutabilityCommand.makeMutable(
+ new EObjectAdapter(host().getNotationView())).execute();
+ executeCommand(cmd);
+ @SuppressWarnings("unchecked")
+ List<IAdaptable> nl = (List<IAdaptable>) request.getNewObject();
+ createdViews.addAll(nl);
+ }
+ if (changed || createdViews.size() > 0) {
+ postProcessRefreshSemantic(createdViews);
+ }
+ if (createdViews.size() > 1) {
+ // perform a layout of the container
+ DeferredLayoutCommand layoutCmd = new DeferredLayoutCommand(host()
+ .getEditingDomain(), createdViews, host());
+ executeCommand(new ICommandProxy(layoutCmd));
+ }
+
+ makeViewsImmutable(createdViews);
+ }
+}
diff --git a/org.eclipse.emf.refactor.comrel.diagram/src/comrel/diagram/edit/policies/ParallelQueuedUnit5ItemSemanticEditPolicy.java b/org.eclipse.emf.refactor.comrel.diagram/src/comrel/diagram/edit/policies/ParallelQueuedUnit5ItemSemanticEditPolicy.java
new file mode 100644
index 0000000..b0f7f6a
--- /dev/null
+++ b/org.eclipse.emf.refactor.comrel.diagram/src/comrel/diagram/edit/policies/ParallelQueuedUnit5ItemSemanticEditPolicy.java
@@ -0,0 +1,263 @@
+/*
+ *
+ */
+package comrel.diagram.edit.policies;
+
+import java.util.Iterator;
+
+import org.eclipse.emf.ecore.EAnnotation;
+import org.eclipse.gef.commands.Command;
+import org.eclipse.gmf.runtime.common.core.command.ICompositeCommand;
+import org.eclipse.gmf.runtime.diagram.core.commands.DeleteCommand;
+import org.eclipse.gmf.runtime.emf.commands.core.command.CompositeTransactionalCommand;
+import org.eclipse.gmf.runtime.emf.type.core.commands.DestroyElementCommand;
+import org.eclipse.gmf.runtime.emf.type.core.requests.CreateElementRequest;
+import org.eclipse.gmf.runtime.emf.type.core.requests.DestroyElementRequest;
+import org.eclipse.gmf.runtime.notation.Edge;
+import org.eclipse.gmf.runtime.notation.Node;
+import org.eclipse.gmf.runtime.notation.View;
+
+import comrel.diagram.edit.commands.MultiInputPort2CreateCommand;
+import comrel.diagram.edit.commands.SingleInputPort3CreateCommand;
+import comrel.diagram.edit.parts.AtomicUnit3EditPart;
+import comrel.diagram.edit.parts.CartesianQueuedUnit3EditPart;
+import comrel.diagram.edit.parts.ConditionalUnit3EditPart;
+import comrel.diagram.edit.parts.MultiFeatureUnit2EditPart;
+import comrel.diagram.edit.parts.MultiFilterUnit2EditPart;
+import comrel.diagram.edit.parts.MultiInputPort2EditPart;
+import comrel.diagram.edit.parts.MultiPortMappingEditPart;
+import comrel.diagram.edit.parts.MultiSinglePortMappingEditPart;
+import comrel.diagram.edit.parts.ParallelQueuedUnit4EditPart;
+import comrel.diagram.edit.parts.ParallelQueuedUnitParallelQueuedUnitHelperUnitsCompartment4EditPart;
+import comrel.diagram.edit.parts.ParallelQueuedUnitParallelQueuedUnitRefactoringUnitsCompartment4EditPart;
+import comrel.diagram.edit.parts.SequentialUnit3EditPart;
+import comrel.diagram.edit.parts.SingleFeatureUnit2EditPart;
+import comrel.diagram.edit.parts.SingleFilterUnit2EditPart;
+import comrel.diagram.edit.parts.SingleInputPort3EditPart;
+import comrel.diagram.edit.parts.SinglePortMappingEditPart;
+import comrel.diagram.edit.parts.SingleQueuedUnit3EditPart;
+import comrel.diagram.part.ComrelVisualIDRegistry;
+import comrel.diagram.providers.ComrelElementTypes;
+
+/**
+ * @generated
+ */
+public class ParallelQueuedUnit5ItemSemanticEditPolicy extends
+ ComrelBaseItemSemanticEditPolicy {
+
+ /**
+ * @generated
+ */
+ public ParallelQueuedUnit5ItemSemanticEditPolicy() {
+ super(ComrelElementTypes.ParallelQueuedUnit_3043);
+ }
+
+ /**
+ * @generated
+ */
+ protected Command getCreateCommand(CreateElementRequest req) {
+ if (ComrelElementTypes.SingleInputPort_3005 == req.getElementType()) {
+ return getGEFWrapper(new SingleInputPort3CreateCommand(req));
+ }
+ if (ComrelElementTypes.MultiInputPort_3006 == req.getElementType()) {
+ return getGEFWrapper(new MultiInputPort2CreateCommand(req));
+ }
+ return super.getCreateCommand(req);
+ }
+
+ /**
+ * @generated
+ */
+ protected Command getDestroyElementCommand(DestroyElementRequest req) {
+ View view = (View) getHost().getModel();
+ CompositeTransactionalCommand cmd = new CompositeTransactionalCommand(
+ getEditingDomain(), null);
+ cmd.setTransactionNestingEnabled(false);
+ EAnnotation annotation = view.getEAnnotation("Shortcut"); //$NON-NLS-1$
+ if (annotation == null) {
+ // there are indirectly referenced children, need extra commands: false
+ addDestroyChildNodesCommand(cmd);
+ addDestroyShortcutsCommand(cmd, view);
+ // delete host element
+ cmd.add(new DestroyElementCommand(req));
+ } else {
+ cmd.add(new DeleteCommand(getEditingDomain(), view));
+ }
+ return getGEFWrapper(cmd.reduce());
+ }
+
+ /**
+ * @generated
+ */
+ private void addDestroyChildNodesCommand(ICompositeCommand cmd) {
+ View view = (View) getHost().getModel();
+ for (Iterator<?> nit = view.getChildren().iterator(); nit.hasNext();) {
+ Node node = (Node) nit.next();
+ switch (ComrelVisualIDRegistry.getVisualID(node)) {
+ case SingleInputPort3EditPart.VISUAL_ID:
+ for (Iterator<?> it = node.getTargetEdges().iterator(); it
+ .hasNext();) {
+ Edge incomingLink = (Edge) it.next();
+ if (ComrelVisualIDRegistry.getVisualID(incomingLink) == SinglePortMappingEditPart.VISUAL_ID) {
+ DestroyElementRequest r = new DestroyElementRequest(
+ incomingLink.getElement(), false);
+ cmd.add(new DestroyElementCommand(r));
+ cmd.add(new DeleteCommand(getEditingDomain(),
+ incomingLink));
+ continue;
+ }
+ if (ComrelVisualIDRegistry.getVisualID(incomingLink) == MultiSinglePortMappingEditPart.VISUAL_ID) {
+ DestroyElementRequest r = new DestroyElementRequest(
+ incomingLink.getElement(), false);
+ cmd.add(new DestroyElementCommand(r));
+ cmd.add(new DeleteCommand(getEditingDomain(),
+ incomingLink));
+ continue;
+ }
+ }
+ for (Iterator<?> it = node.getSourceEdges().iterator(); it
+ .hasNext();) {
+ Edge outgoingLink = (Edge) it.next();
+ if (ComrelVisualIDRegistry.getVisualID(outgoingLink) == SinglePortMappingEditPart.VISUAL_ID) {
+ DestroyElementRequest r = new DestroyElementRequest(
+ outgoingLink.getElement(), false);
+ cmd.add(new DestroyElementCommand(r));
+ cmd.add(new DeleteCommand(getEditingDomain(),
+ outgoingLink));
+ continue;
+ }
+ }
+ cmd.add(new DestroyElementCommand(new DestroyElementRequest(
+ getEditingDomain(), node.getElement(), false))); // directlyOwned: true
+ // don't need explicit deletion of node as parent's view deletion would clean child views as well
+ // cmd.add(new org.eclipse.gmf.runtime.diagram.core.commands.DeleteCommand(getEditingDomain(), node));
+ break;
+ case MultiInputPort2EditPart.VISUAL_ID:
+ for (Iterator<?> it = node.getTargetEdges().iterator(); it
+ .hasNext();) {
+ Edge incomingLink = (Edge) it.next();
+ if (ComrelVisualIDRegistry.getVisualID(incomingLink) == MultiPortMappingEditPart.VISUAL_ID) {
+ DestroyElementRequest r = new DestroyElementRequest(
+ incomingLink.getElement(), false);
+ cmd.add(new DestroyElementCommand(r));
+ cmd.add(new DeleteCommand(getEditingDomain(),
+ incomingLink));
+ continue;
+ }
+ }
+ for (Iterator<?> it = node.getSourceEdges().iterator(); it
+ .hasNext();) {
+ Edge outgoingLink = (Edge) it.next();
+ if (ComrelVisualIDRegistry.getVisualID(outgoingLink) == MultiPortMappingEditPart.VISUAL_ID) {
+ DestroyElementRequest r = new DestroyElementRequest(
+ outgoingLink.getElement(), false);
+ cmd.add(new DestroyElementCommand(r));
+ cmd.add(new DeleteCommand(getEditingDomain(),
+ outgoingLink));
+ continue;
+ }
+ if (ComrelVisualIDRegistry.getVisualID(outgoingLink) == MultiSinglePortMappingEditPart.VISUAL_ID) {
+ DestroyElementRequest r = new DestroyElementRequest(
+ outgoingLink.getElement(), false);
+ cmd.add(new DestroyElementCommand(r));
+ cmd.add(new DeleteCommand(getEditingDomain(),
+ outgoingLink));
+ continue;
+ }
+ }
+ cmd.add(new DestroyElementCommand(new DestroyElementRequest(
+ getEditingDomain(), node.getElement(), false))); // directlyOwned: true
+ // don't need explicit deletion of node as parent's view deletion would clean child views as well
+ // cmd.add(new org.eclipse.gmf.runtime.diagram.core.commands.DeleteCommand(getEditingDomain(), node));
+ break;
+ case ParallelQueuedUnitParallelQueuedUnitHelperUnitsCompartment4EditPart.VISUAL_ID:
+ for (Iterator<?> cit = node.getChildren().iterator(); cit
+ .hasNext();) {
+ Node cnode = (Node) cit.next();
+ switch (ComrelVisualIDRegistry.getVisualID(cnode)) {
+ case SingleFeatureUnit2EditPart.VISUAL_ID:
+ cmd.add(new DestroyElementCommand(
+ new DestroyElementRequest(getEditingDomain(),
+ cnode.getElement(), false))); // directlyOwned: true
+ // don't need explicit deletion of cnode as parent's view deletion would clean child views as well
+ // cmd.add(new org.eclipse.gmf.runtime.diagram.core.commands.DeleteCommand(getEditingDomain(), cnode));
+ break;
+ case MultiFeatureUnit2EditPart.VISUAL_ID:
+ cmd.add(new DestroyElementCommand(
+ new DestroyElementRequest(getEditingDomain(),
+ cnode.getElement(), false))); // directlyOwned: true
+ // don't need explicit deletion of cnode as parent's view deletion would clean child views as well
+ // cmd.add(new org.eclipse.gmf.runtime.diagram.core.commands.DeleteCommand(getEditingDomain(), cnode));
+ break;
+ case SingleFilterUnit2EditPart.VISUAL_ID:
+ cmd.add(new DestroyElementCommand(
+ new DestroyElementRequest(getEditingDomain(),
+ cnode.getElement(), false))); // directlyOwned: true
+ // don't need explicit deletion of cnode as parent's view deletion would clean child views as well
+ // cmd.add(new org.eclipse.gmf.runtime.diagram.core.commands.DeleteCommand(getEditingDomain(), cnode));
+ break;
+ case MultiFilterUnit2EditPart.VISUAL_ID:
+ cmd.add(new DestroyElementCommand(
+ new DestroyElementRequest(getEditingDomain(),
+ cnode.getElement(), false))); // directlyOwned: true
+ // don't need explicit deletion of cnode as parent's view deletion would clean child views as well
+ // cmd.add(new org.eclipse.gmf.runtime.diagram.core.commands.DeleteCommand(getEditingDomain(), cnode));
+ break;
+ }
+ }
+ break;
+ case ParallelQueuedUnitParallelQueuedUnitRefactoringUnitsCompartment4EditPart.VISUAL_ID:
+ for (Iterator<?> cit = node.getChildren().iterator(); cit
+ .hasNext();) {
+ Node cnode = (Node) cit.next();
+ switch (ComrelVisualIDRegistry.getVisualID(cnode)) {
+ case CartesianQueuedUnit3EditPart.VISUAL_ID:
+ cmd.add(new DestroyElementCommand(
+ new DestroyElementRequest(getEditingDomain(),
+ cnode.getElement(), false))); // directlyOwned: true
+ // don't need explicit deletion of cnode as parent's view deletion would clean child views as well
+ // cmd.add(new org.eclipse.gmf.runtime.diagram.core.commands.DeleteCommand(getEditingDomain(), cnode));
+ break;
+ case ParallelQueuedUnit4EditPart.VISUAL_ID:
+ cmd.add(new DestroyElementCommand(
+ new DestroyElementRequest(getEditingDomain(),
+ cnode.getElement(), false))); // directlyOwned: true
+ // don't need explicit deletion of cnode as parent's view deletion would clean child views as well
+ // cmd.add(new org.eclipse.gmf.runtime.diagram.core.commands.DeleteCommand(getEditingDomain(), cnode));
+ break;
+ case SingleQueuedUnit3EditPart.VISUAL_ID:
+ cmd.add(new DestroyElementCommand(
+ new DestroyElementRequest(getEditingDomain(),
+ cnode.getElement(), false))); // directlyOwned: true
+ // don't need explicit deletion of cnode as parent's view deletion would clean child views as well
+ // cmd.add(new org.eclipse.gmf.runtime.diagram.core.commands.DeleteCommand(getEditingDomain(), cnode));
+ break;
+ case SequentialUnit3EditPart.VISUAL_ID:
+ cmd.add(new DestroyElementCommand(
+ new DestroyElementRequest(getEditingDomain(),
+ cnode.getElement(), false))); // directlyOwned: true
+ // don't need explicit deletion of cnode as parent's view deletion would clean child views as well
+ // cmd.add(new org.eclipse.gmf.runtime.diagram.core.commands.DeleteCommand(getEditingDomain(), cnode));
+ break;
+ case ConditionalUnit3EditPart.VISUAL_ID:
+ cmd.add(new DestroyElementCommand(
+ new DestroyElementRequest(getEditingDomain(),
+ cnode.getElement(), false))); // directlyOwned: true
+ // don't need explicit deletion of cnode as parent's view deletion would clean child views as well
+ // cmd.add(new org.eclipse.gmf.runtime.diagram.core.commands.DeleteCommand(getEditingDomain(), cnode));
+ break;
+ case AtomicUnit3EditPart.VISUAL_ID:
+ cmd.add(new DestroyElementCommand(
+ new DestroyElementRequest(getEditingDomain(),
+ cnode.getElement(), false))); // directlyOwned: true
+ // don't need explicit deletion of cnode as parent's view deletion would clean child views as well
+ // cmd.add(new org.eclipse.gmf.runtime.diagram.core.commands.DeleteCommand(getEditingDomain(), cnode));
+ break;
+ }
+ }
+ break;
+ }
+ }
+ }
+
+}
diff --git a/org.eclipse.emf.refactor.comrel.diagram/src/comrel/diagram/edit/policies/ParallelQueuedUnit6CanonicalEditPolicy.java b/org.eclipse.emf.refactor.comrel.diagram/src/comrel/diagram/edit/policies/ParallelQueuedUnit6CanonicalEditPolicy.java
new file mode 100644
index 0000000..65a94f2
--- /dev/null
+++ b/org.eclipse.emf.refactor.comrel.diagram/src/comrel/diagram/edit/policies/ParallelQueuedUnit6CanonicalEditPolicy.java
@@ -0,0 +1,178 @@
+/*
+ *
+ */
+package comrel.diagram.edit.policies;
+
+import java.util.ArrayList;
+import java.util.Collection;
+import java.util.HashSet;
+import java.util.Iterator;
+import java.util.LinkedList;
+import java.util.List;
+import java.util.Set;
+
+import org.eclipse.core.runtime.IAdaptable;
+import org.eclipse.emf.ecore.EObject;
+import org.eclipse.emf.ecore.EStructuralFeature;
+import org.eclipse.gef.commands.Command;
+import org.eclipse.gmf.runtime.diagram.core.util.ViewUtil;
+import org.eclipse.gmf.runtime.diagram.ui.commands.DeferredLayoutCommand;
+import org.eclipse.gmf.runtime.diagram.ui.commands.ICommandProxy;
+import org.eclipse.gmf.runtime.diagram.ui.commands.SetViewMutabilityCommand;
+import org.eclipse.gmf.runtime.diagram.ui.editpolicies.CanonicalEditPolicy;
+import org.eclipse.gmf.runtime.diagram.ui.requests.CreateViewRequest;
+import org.eclipse.gmf.runtime.emf.core.util.EObjectAdapter;
+import org.eclipse.gmf.runtime.notation.Node;
+import org.eclipse.gmf.runtime.notation.View;
+
+import comrel.ComrelPackage;
+import comrel.diagram.edit.parts.MultiInputPort2EditPart;
+import comrel.diagram.edit.parts.SingleInputPort3EditPart;
+import comrel.diagram.part.ComrelDiagramUpdater;
+import comrel.diagram.part.ComrelNodeDescriptor;
+import comrel.diagram.part.ComrelVisualIDRegistry;
+
+/**
+ * @generated
+ */
+public class ParallelQueuedUnit6CanonicalEditPolicy extends CanonicalEditPolicy {
+
+ /**
+ * @generated
+ */
+ private Set<EStructuralFeature> myFeaturesToSynchronize;
+
+ /**
+ * @generated
+ */
+ protected Set getFeaturesToSynchronize() {
+ if (myFeaturesToSynchronize == null) {
+ myFeaturesToSynchronize = new HashSet<EStructuralFeature>();
+ myFeaturesToSynchronize.add(ComrelPackage.eINSTANCE
+ .getParallelQueuedUnit_SingleInputPorts());
+ myFeaturesToSynchronize.add(ComrelPackage.eINSTANCE
+ .getParallelQueuedUnit_MultiInputPorts());
+ }
+ return myFeaturesToSynchronize;
+ }
+
+ /**
+ * @generated
+ */
+ @SuppressWarnings("rawtypes")
+ protected List getSemanticChildrenList() {
+ View viewObject = (View) getHost().getModel();
+ LinkedList<EObject> result = new LinkedList<EObject>();
+ List<ComrelNodeDescriptor> childDescriptors = ComrelDiagramUpdater
+ .getParallelQueuedUnit_3045SemanticChildren(viewObject);
+ for (ComrelNodeDescriptor d : childDescriptors) {
+ result.add(d.getModelElement());
+ }
+ return result;
+ }
+
+ /**
+ * @generated
+ */
+ protected boolean isOrphaned(Collection<EObject> semanticChildren,
+ final View view) {
+ return isMyDiagramElement(view)
+ && !semanticChildren.contains(view.getElement());
+ }
+
+ /**
+ * @generated
+ */
+ private boolean isMyDiagramElement(View view) {
+ int visualID = ComrelVisualIDRegistry.getVisualID(view);
+ return visualID == SingleInputPort3EditPart.VISUAL_ID
+ || visualID == MultiInputPort2EditPart.VISUAL_ID;
+ }
+
+ /**
+ * @generated
+ */
+ protected void refreshSemantic() {
+ if (resolveSemanticElement() == null) {
+ return;
+ }
+ LinkedList<IAdaptable> createdViews = new LinkedList<IAdaptable>();
+ List<ComrelNodeDescriptor> childDescriptors = ComrelDiagramUpdater
+ .getParallelQueuedUnit_3045SemanticChildren((View) getHost()
+ .getModel());
+ LinkedList<View> orphaned = new LinkedList<View>();
+ // we care to check only views we recognize as ours
+ LinkedList<View> knownViewChildren = new LinkedList<View>();
+ for (View v : getViewChildren()) {
+ if (isMyDiagramElement(v)) {
+ knownViewChildren.add(v);
+ }
+ }
+ // alternative to #cleanCanonicalSemanticChildren(getViewChildren(), semanticChildren)
+ //
+ // iteration happens over list of desired semantic elements, trying to find best matching View, while original CEP
+ // iterates views, potentially losing view (size/bounds) information - i.e. if there are few views to reference same EObject, only last one
+ // to answer isOrphaned == true will be used for the domain element representation, see #cleanCanonicalSemanticChildren()
+ for (Iterator<ComrelNodeDescriptor> descriptorsIterator = childDescriptors
+ .iterator(); descriptorsIterator.hasNext();) {
+ ComrelNodeDescriptor next = descriptorsIterator.next();
+ String hint = ComrelVisualIDRegistry.getType(next.getVisualID());
+ LinkedList<View> perfectMatch = new LinkedList<View>(); // both semanticElement and hint match that of NodeDescriptor
+ for (View childView : getViewChildren()) {
+ EObject semanticElement = childView.getElement();
+ if (next.getModelElement().equals(semanticElement)) {
+ if (hint.equals(childView.getType())) {
+ perfectMatch.add(childView);
+ // actually, can stop iteration over view children here, but
+ // may want to use not the first view but last one as a 'real' match (the way original CEP does
+ // with its trick with viewToSemanticMap inside #cleanCanonicalSemanticChildren
+ }
+ }
+ }
+ if (perfectMatch.size() > 0) {
+ descriptorsIterator.remove(); // precise match found no need to create anything for the NodeDescriptor
+ // use only one view (first or last?), keep rest as orphaned for further consideration
+ knownViewChildren.remove(perfectMatch.getFirst());
+ }
+ }
+ // those left in knownViewChildren are subject to removal - they are our diagram elements we didn't find match to,
+ // or those we have potential matches to, and thus need to be recreated, preserving size/location information.
+ orphaned.addAll(knownViewChildren);
+ //
+ ArrayList<CreateViewRequest.ViewDescriptor> viewDescriptors = new ArrayList<CreateViewRequest.ViewDescriptor>(
+ childDescriptors.size());
+ for (ComrelNodeDescriptor next : childDescriptors) {
+ String hint = ComrelVisualIDRegistry.getType(next.getVisualID());
+ IAdaptable elementAdapter = new CanonicalElementAdapter(
+ next.getModelElement(), hint);
+ CreateViewRequest.ViewDescriptor descriptor = new CreateViewRequest.ViewDescriptor(
+ elementAdapter, Node.class, hint, ViewUtil.APPEND, false,
+ host().getDiagramPreferencesHint());
+ viewDescriptors.add(descriptor);
+ }
+
+ boolean changed = deleteViews(orphaned.iterator());
+ //
+ CreateViewRequest request = getCreateViewRequest(viewDescriptors);
+ Command cmd = getCreateViewCommand(request);
+ if (cmd != null && cmd.canExecute()) {
+ SetViewMutabilityCommand.makeMutable(
+ new EObjectAdapter(host().getNotationView())).execute();
+ executeCommand(cmd);
+ @SuppressWarnings("unchecked")
+ List<IAdaptable> nl = (List<IAdaptable>) request.getNewObject();
+ createdViews.addAll(nl);
+ }
+ if (changed || createdViews.size() > 0) {
+ postProcessRefreshSemantic(createdViews);
+ }
+ if (createdViews.size() > 1) {
+ // perform a layout of the container
+ DeferredLayoutCommand layoutCmd = new DeferredLayoutCommand(host()
+ .getEditingDomain(), createdViews, host());
+ executeCommand(new ICommandProxy(layoutCmd));
+ }
+
+ makeViewsImmutable(createdViews);
+ }
+}
diff --git a/org.eclipse.emf.refactor.comrel.diagram/src/comrel/diagram/edit/policies/ParallelQueuedUnit6ItemSemanticEditPolicy.java b/org.eclipse.emf.refactor.comrel.diagram/src/comrel/diagram/edit/policies/ParallelQueuedUnit6ItemSemanticEditPolicy.java
new file mode 100644
index 0000000..06db209
--- /dev/null
+++ b/org.eclipse.emf.refactor.comrel.diagram/src/comrel/diagram/edit/policies/ParallelQueuedUnit6ItemSemanticEditPolicy.java
@@ -0,0 +1,263 @@
+/*
+ *
+ */
+package comrel.diagram.edit.policies;
+
+import java.util.Iterator;
+
+import org.eclipse.emf.ecore.EAnnotation;
+import org.eclipse.gef.commands.Command;
+import org.eclipse.gmf.runtime.common.core.command.ICompositeCommand;
+import org.eclipse.gmf.runtime.diagram.core.commands.DeleteCommand;
+import org.eclipse.gmf.runtime.emf.commands.core.command.CompositeTransactionalCommand;
+import org.eclipse.gmf.runtime.emf.type.core.commands.DestroyElementCommand;
+import org.eclipse.gmf.runtime.emf.type.core.requests.CreateElementRequest;
+import org.eclipse.gmf.runtime.emf.type.core.requests.DestroyElementRequest;
+import org.eclipse.gmf.runtime.notation.Edge;
+import org.eclipse.gmf.runtime.notation.Node;
+import org.eclipse.gmf.runtime.notation.View;
+
+import comrel.diagram.edit.commands.MultiInputPort2CreateCommand;
+import comrel.diagram.edit.commands.SingleInputPort3CreateCommand;
+import comrel.diagram.edit.parts.AtomicUnit3EditPart;
+import comrel.diagram.edit.parts.CartesianQueuedUnit3EditPart;
+import comrel.diagram.edit.parts.ConditionalUnit3EditPart;
+import comrel.diagram.edit.parts.MultiFeatureUnit2EditPart;
+import comrel.diagram.edit.parts.MultiFilterUnit2EditPart;
+import comrel.diagram.edit.parts.MultiInputPort2EditPart;
+import comrel.diagram.edit.parts.MultiPortMappingEditPart;
+import comrel.diagram.edit.parts.MultiSinglePortMappingEditPart;
+import comrel.diagram.edit.parts.ParallelQueuedUnit4EditPart;
+import comrel.diagram.edit.parts.ParallelQueuedUnitParallelQueuedUnitHelperUnitsCompartment5EditPart;
+import comrel.diagram.edit.parts.ParallelQueuedUnitParallelQueuedUnitRefactoringUnitsCompartment5EditPart;
+import comrel.diagram.edit.parts.SequentialUnit3EditPart;
+import comrel.diagram.edit.parts.SingleFeatureUnit2EditPart;
+import comrel.diagram.edit.parts.SingleFilterUnit2EditPart;
+import comrel.diagram.edit.parts.SingleInputPort3EditPart;
+import comrel.diagram.edit.parts.SinglePortMappingEditPart;
+import comrel.diagram.edit.parts.SingleQueuedUnit3EditPart;
+import comrel.diagram.part.ComrelVisualIDRegistry;
+import comrel.diagram.providers.ComrelElementTypes;
+
+/**
+ * @generated
+ */
+public class ParallelQueuedUnit6ItemSemanticEditPolicy extends
+ ComrelBaseItemSemanticEditPolicy {
+
+ /**
+ * @generated
+ */
+ public ParallelQueuedUnit6ItemSemanticEditPolicy() {
+ super(ComrelElementTypes.ParallelQueuedUnit_3045);
+ }
+
+ /**
+ * @generated
+ */
+ protected Command getCreateCommand(CreateElementRequest req) {
+ if (ComrelElementTypes.SingleInputPort_3005 == req.getElementType()) {
+ return getGEFWrapper(new SingleInputPort3CreateCommand(req));
+ }
+ if (ComrelElementTypes.MultiInputPort_3006 == req.getElementType()) {
+ return getGEFWrapper(new MultiInputPort2CreateCommand(req));
+ }
+ return super.getCreateCommand(req);
+ }
+
+ /**
+ * @generated
+ */
+ protected Command getDestroyElementCommand(DestroyElementRequest req) {
+ View view = (View) getHost().getModel();
+ CompositeTransactionalCommand cmd = new CompositeTransactionalCommand(
+ getEditingDomain(), null);
+ cmd.setTransactionNestingEnabled(false);
+ EAnnotation annotation = view.getEAnnotation("Shortcut"); //$NON-NLS-1$
+ if (annotation == null) {
+ // there are indirectly referenced children, need extra commands: false
+ addDestroyChildNodesCommand(cmd);
+ addDestroyShortcutsCommand(cmd, view);
+ // delete host element
+ cmd.add(new DestroyElementCommand(req));
+ } else {
+ cmd.add(new DeleteCommand(getEditingDomain(), view));
+ }
+ return getGEFWrapper(cmd.reduce());
+ }
+
+ /**
+ * @generated
+ */
+ private void addDestroyChildNodesCommand(ICompositeCommand cmd) {
+ View view = (View) getHost().getModel();
+ for (Iterator<?> nit = view.getChildren().iterator(); nit.hasNext();) {
+ Node node = (Node) nit.next();
+ switch (ComrelVisualIDRegistry.getVisualID(node)) {
+ case SingleInputPort3EditPart.VISUAL_ID:
+ for (Iterator<?> it = node.getTargetEdges().iterator(); it
+ .hasNext();) {
+ Edge incomingLink = (Edge) it.next();
+ if (ComrelVisualIDRegistry.getVisualID(incomingLink) == SinglePortMappingEditPart.VISUAL_ID) {
+ DestroyElementRequest r = new DestroyElementRequest(
+ incomingLink.getElement(), false);
+ cmd.add(new DestroyElementCommand(r));
+ cmd.add(new DeleteCommand(getEditingDomain(),
+ incomingLink));
+ continue;
+ }
+ if (ComrelVisualIDRegistry.getVisualID(incomingLink) == MultiSinglePortMappingEditPart.VISUAL_ID) {
+ DestroyElementRequest r = new DestroyElementRequest(
+ incomingLink.getElement(), false);
+ cmd.add(new DestroyElementCommand(r));
+ cmd.add(new DeleteCommand(getEditingDomain(),
+ incomingLink));
+ continue;
+ }
+ }
+ for (Iterator<?> it = node.getSourceEdges().iterator(); it
+ .hasNext();) {
+ Edge outgoingLink = (Edge) it.next();
+ if (ComrelVisualIDRegistry.getVisualID(outgoingLink) == SinglePortMappingEditPart.VISUAL_ID) {
+ DestroyElementRequest r = new DestroyElementRequest(
+ outgoingLink.getElement(), false);
+ cmd.add(new DestroyElementCommand(r));
+ cmd.add(new DeleteCommand(getEditingDomain(),
+ outgoingLink));
+ continue;
+ }
+ }
+ cmd.add(new DestroyElementCommand(new DestroyElementRequest(
+ getEditingDomain(), node.getElement(), false))); // directlyOwned: true
+ // don't need explicit deletion of node as parent's view deletion would clean child views as well
+ // cmd.add(new org.eclipse.gmf.runtime.diagram.core.commands.DeleteCommand(getEditingDomain(), node));
+ break;
+ case MultiInputPort2EditPart.VISUAL_ID:
+ for (Iterator<?> it = node.getTargetEdges().iterator(); it
+ .hasNext();) {
+ Edge incomingLink = (Edge) it.next();
+ if (ComrelVisualIDRegistry.getVisualID(incomingLink) == MultiPortMappingEditPart.VISUAL_ID) {
+ DestroyElementRequest r = new DestroyElementRequest(
+ incomingLink.getElement(), false);
+ cmd.add(new DestroyElementCommand(r));
+ cmd.add(new DeleteCommand(getEditingDomain(),
+ incomingLink));
+ continue;
+ }
+ }
+ for (Iterator<?> it = node.getSourceEdges().iterator(); it
+ .hasNext();) {
+ Edge outgoingLink = (Edge) it.next();
+ if (ComrelVisualIDRegistry.getVisualID(outgoingLink) == MultiPortMappingEditPart.VISUAL_ID) {
+ DestroyElementRequest r = new DestroyElementRequest(
+ outgoingLink.getElement(), false);
+ cmd.add(new DestroyElementCommand(r));
+ cmd.add(new DeleteCommand(getEditingDomain(),
+ outgoingLink));
+ continue;
+ }
+ if (ComrelVisualIDRegistry.getVisualID(outgoingLink) == MultiSinglePortMappingEditPart.VISUAL_ID) {
+ DestroyElementRequest r = new DestroyElementRequest(
+ outgoingLink.getElement(), false);
+ cmd.add(new DestroyElementCommand(r));
+ cmd.add(new DeleteCommand(getEditingDomain(),
+ outgoingLink));
+ continue;
+ }
+ }
+ cmd.add(new DestroyElementCommand(new DestroyElementRequest(
+ getEditingDomain(), node.getElement(), false))); // directlyOwned: true
+ // don't need explicit deletion of node as parent's view deletion would clean child views as well
+ // cmd.add(new org.eclipse.gmf.runtime.diagram.core.commands.DeleteCommand(getEditingDomain(), node));
+ break;
+ case ParallelQueuedUnitParallelQueuedUnitHelperUnitsCompartment5EditPart.VISUAL_ID:
+ for (Iterator<?> cit = node.getChildren().iterator(); cit
+ .hasNext();) {
+ Node cnode = (Node) cit.next();
+ switch (ComrelVisualIDRegistry.getVisualID(cnode)) {
+ case SingleFeatureUnit2EditPart.VISUAL_ID:
+ cmd.add(new DestroyElementCommand(
+ new DestroyElementRequest(getEditingDomain(),
+ cnode.getElement(), false))); // directlyOwned: true
+ // don't need explicit deletion of cnode as parent's view deletion would clean child views as well
+ // cmd.add(new org.eclipse.gmf.runtime.diagram.core.commands.DeleteCommand(getEditingDomain(), cnode));
+ break;
+ case MultiFeatureUnit2EditPart.VISUAL_ID:
+ cmd.add(new DestroyElementCommand(
+ new DestroyElementRequest(getEditingDomain(),
+ cnode.getElement(), false))); // directlyOwned: true
+ // don't need explicit deletion of cnode as parent's view deletion would clean child views as well
+ // cmd.add(new org.eclipse.gmf.runtime.diagram.core.commands.DeleteCommand(getEditingDomain(), cnode));
+ break;
+ case SingleFilterUnit2EditPart.VISUAL_ID:
+ cmd.add(new DestroyElementCommand(
+ new DestroyElementRequest(getEditingDomain(),
+ cnode.getElement(), false))); // directlyOwned: true
+ // don't need explicit deletion of cnode as parent's view deletion would clean child views as well
+ // cmd.add(new org.eclipse.gmf.runtime.diagram.core.commands.DeleteCommand(getEditingDomain(), cnode));
+ break;
+ case MultiFilterUnit2EditPart.VISUAL_ID:
+ cmd.add(new DestroyElementCommand(
+ new DestroyElementRequest(getEditingDomain(),
+ cnode.getElement(), false))); // directlyOwned: true
+ // don't need explicit deletion of cnode as parent's view deletion would clean child views as well
+ // cmd.add(new org.eclipse.gmf.runtime.diagram.core.commands.DeleteCommand(getEditingDomain(), cnode));
+ break;
+ }
+ }
+ break;
+ case ParallelQueuedUnitParallelQueuedUnitRefactoringUnitsCompartment5EditPart.VISUAL_ID:
+ for (Iterator<?> cit = node.getChildren().iterator(); cit
+ .hasNext();) {
+ Node cnode = (Node) cit.next();
+ switch (ComrelVisualIDRegistry.getVisualID(cnode)) {
+ case CartesianQueuedUnit3EditPart.VISUAL_ID:
+ cmd.add(new DestroyElementCommand(
+ new DestroyElementRequest(getEditingDomain(),
+ cnode.getElement(), false))); // directlyOwned: true
+ // don't need explicit deletion of cnode as parent's view deletion would clean child views as well
+ // cmd.add(new org.eclipse.gmf.runtime.diagram.core.commands.DeleteCommand(getEditingDomain(), cnode));
+ break;
+ case ParallelQueuedUnit4EditPart.VISUAL_ID:
+ cmd.add(new DestroyElementCommand(
+ new DestroyElementRequest(getEditingDomain(),
+ cnode.getElement(), false))); // directlyOwned: true
+ // don't need explicit deletion of cnode as parent's view deletion would clean child views as well
+ // cmd.add(new org.eclipse.gmf.runtime.diagram.core.commands.DeleteCommand(getEditingDomain(), cnode));
+ break;
+ case SingleQueuedUnit3EditPart.VISUAL_ID:
+ cmd.add(new DestroyElementCommand(
+ new DestroyElementRequest(getEditingDomain(),
+ cnode.getElement(), false))); // directlyOwned: true
+ // don't need explicit deletion of cnode as parent's view deletion would clean child views as well
+ // cmd.add(new org.eclipse.gmf.runtime.diagram.core.commands.DeleteCommand(getEditingDomain(), cnode));
+ break;
+ case SequentialUnit3EditPart.VISUAL_ID:
+ cmd.add(new DestroyElementCommand(
+ new DestroyElementRequest(getEditingDomain(),
+ cnode.getElement(), false))); // directlyOwned: true
+ // don't need explicit deletion of cnode as parent's view deletion would clean child views as well
+ // cmd.add(new org.eclipse.gmf.runtime.diagram.core.commands.DeleteCommand(getEditingDomain(), cnode));
+ break;
+ case ConditionalUnit3EditPart.VISUAL_ID:
+ cmd.add(new DestroyElementCommand(
+ new DestroyElementRequest(getEditingDomain(),
+ cnode.getElement(), false))); // directlyOwned: true
+ // don't need explicit deletion of cnode as parent's view deletion would clean child views as well
+ // cmd.add(new org.eclipse.gmf.runtime.diagram.core.commands.DeleteCommand(getEditingDomain(), cnode));
+ break;
+ case AtomicUnit3EditPart.VISUAL_ID:
+ cmd.add(new DestroyElementCommand(
+ new DestroyElementRequest(getEditingDomain(),
+ cnode.getElement(), false))); // directlyOwned: true
+ // don't need explicit deletion of cnode as parent's view deletion would clean child views as well
+ // cmd.add(new org.eclipse.gmf.runtime.diagram.core.commands.DeleteCommand(getEditingDomain(), cnode));
+ break;
+ }
+ }
+ break;
+ }
+ }
+ }
+
+}
diff --git a/org.eclipse.emf.refactor.comrel.diagram/src/comrel/diagram/edit/policies/ParallelQueuedUnit7CanonicalEditPolicy.java b/org.eclipse.emf.refactor.comrel.diagram/src/comrel/diagram/edit/policies/ParallelQueuedUnit7CanonicalEditPolicy.java
new file mode 100644
index 0000000..2762389
--- /dev/null
+++ b/org.eclipse.emf.refactor.comrel.diagram/src/comrel/diagram/edit/policies/ParallelQueuedUnit7CanonicalEditPolicy.java
@@ -0,0 +1,178 @@
+/*
+ *
+ */
+package comrel.diagram.edit.policies;
+
+import java.util.ArrayList;
+import java.util.Collection;
+import java.util.HashSet;
+import java.util.Iterator;
+import java.util.LinkedList;
+import java.util.List;
+import java.util.Set;
+
+import org.eclipse.core.runtime.IAdaptable;
+import org.eclipse.emf.ecore.EObject;
+import org.eclipse.emf.ecore.EStructuralFeature;
+import org.eclipse.gef.commands.Command;
+import org.eclipse.gmf.runtime.diagram.core.util.ViewUtil;
+import org.eclipse.gmf.runtime.diagram.ui.commands.DeferredLayoutCommand;
+import org.eclipse.gmf.runtime.diagram.ui.commands.ICommandProxy;
+import org.eclipse.gmf.runtime.diagram.ui.commands.SetViewMutabilityCommand;
+import org.eclipse.gmf.runtime.diagram.ui.editpolicies.CanonicalEditPolicy;
+import org.eclipse.gmf.runtime.diagram.ui.requests.CreateViewRequest;
+import org.eclipse.gmf.runtime.emf.core.util.EObjectAdapter;
+import org.eclipse.gmf.runtime.notation.Node;
+import org.eclipse.gmf.runtime.notation.View;
+
+import comrel.ComrelPackage;
+import comrel.diagram.edit.parts.MultiInputPort2EditPart;
+import comrel.diagram.edit.parts.SingleInputPort3EditPart;
+import comrel.diagram.part.ComrelDiagramUpdater;
+import comrel.diagram.part.ComrelNodeDescriptor;
+import comrel.diagram.part.ComrelVisualIDRegistry;
+
+/**
+ * @generated
+ */
+public class ParallelQueuedUnit7CanonicalEditPolicy extends CanonicalEditPolicy {
+
+ /**
+ * @generated
+ */
+ private Set<EStructuralFeature> myFeaturesToSynchronize;
+
+ /**
+ * @generated
+ */
+ protected Set getFeaturesToSynchronize() {
+ if (myFeaturesToSynchronize == null) {
+ myFeaturesToSynchronize = new HashSet<EStructuralFeature>();
+ myFeaturesToSynchronize.add(ComrelPackage.eINSTANCE
+ .getParallelQueuedUnit_SingleInputPorts());
+ myFeaturesToSynchronize.add(ComrelPackage.eINSTANCE
+ .getParallelQueuedUnit_MultiInputPorts());
+ }
+ return myFeaturesToSynchronize;
+ }
+
+ /**
+ * @generated
+ */
+ @SuppressWarnings("rawtypes")
+ protected List getSemanticChildrenList() {
+ View viewObject = (View) getHost().getModel();
+ LinkedList<EObject> result = new LinkedList<EObject>();
+ List<ComrelNodeDescriptor> childDescriptors = ComrelDiagramUpdater
+ .getParallelQueuedUnit_3048SemanticChildren(viewObject);
+ for (ComrelNodeDescriptor d : childDescriptors) {
+ result.add(d.getModelElement());
+ }
+ return result;
+ }
+
+ /**
+ * @generated
+ */
+ protected boolean isOrphaned(Collection<EObject> semanticChildren,
+ final View view) {
+ return isMyDiagramElement(view)
+ && !semanticChildren.contains(view.getElement());
+ }
+
+ /**
+ * @generated
+ */
+ private boolean isMyDiagramElement(View view) {
+ int visualID = ComrelVisualIDRegistry.getVisualID(view);
+ return visualID == SingleInputPort3EditPart.VISUAL_ID
+ || visualID == MultiInputPort2EditPart.VISUAL_ID;
+ }
+
+ /**
+ * @generated
+ */
+ protected void refreshSemantic() {
+ if (resolveSemanticElement() == null) {
+ return;
+ }
+ LinkedList<IAdaptable> createdViews = new LinkedList<IAdaptable>();
+ List<ComrelNodeDescriptor> childDescriptors = ComrelDiagramUpdater
+ .getParallelQueuedUnit_3048SemanticChildren((View) getHost()
+ .getModel());
+ LinkedList<View> orphaned = new LinkedList<View>();
+ // we care to check only views we recognize as ours
+ LinkedList<View> knownViewChildren = new LinkedList<View>();
+ for (View v : getViewChildren()) {
+ if (isMyDiagramElement(v)) {
+ knownViewChildren.add(v);
+ }
+ }
+ // alternative to #cleanCanonicalSemanticChildren(getViewChildren(), semanticChildren)
+ //
+ // iteration happens over list of desired semantic elements, trying to find best matching View, while original CEP
+ // iterates views, potentially losing view (size/bounds) information - i.e. if there are few views to reference same EObject, only last one
+ // to answer isOrphaned == true will be used for the domain element representation, see #cleanCanonicalSemanticChildren()
+ for (Iterator<ComrelNodeDescriptor> descriptorsIterator = childDescriptors
+ .iterator(); descriptorsIterator.hasNext();) {
+ ComrelNodeDescriptor next = descriptorsIterator.next();
+ String hint = ComrelVisualIDRegistry.getType(next.getVisualID());
+ LinkedList<View> perfectMatch = new LinkedList<View>(); // both semanticElement and hint match that of NodeDescriptor
+ for (View childView : getViewChildren()) {
+ EObject semanticElement = childView.getElement();
+ if (next.getModelElement().equals(semanticElement)) {
+ if (hint.equals(childView.getType())) {
+ perfectMatch.add(childView);
+ // actually, can stop iteration over view children here, but
+ // may want to use not the first view but last one as a 'real' match (the way original CEP does
+ // with its trick with viewToSemanticMap inside #cleanCanonicalSemanticChildren
+ }
+ }
+ }
+ if (perfectMatch.size() > 0) {
+ descriptorsIterator.remove(); // precise match found no need to create anything for the NodeDescriptor
+ // use only one view (first or last?), keep rest as orphaned for further consideration
+ knownViewChildren.remove(perfectMatch.getFirst());
+ }
+ }
+ // those left in knownViewChildren are subject to removal - they are our diagram elements we didn't find match to,
+ // or those we have potential matches to, and thus need to be recreated, preserving size/location information.
+ orphaned.addAll(knownViewChildren);
+ //
+ ArrayList<CreateViewRequest.ViewDescriptor> viewDescriptors = new ArrayList<CreateViewRequest.ViewDescriptor>(
+ childDescriptors.size());
+ for (ComrelNodeDescriptor next : childDescriptors) {
+ String hint = ComrelVisualIDRegistry.getType(next.getVisualID());
+ IAdaptable elementAdapter = new CanonicalElementAdapter(
+ next.getModelElement(), hint);
+ CreateViewRequest.ViewDescriptor descriptor = new CreateViewRequest.ViewDescriptor(
+ elementAdapter, Node.class, hint, ViewUtil.APPEND, false,
+ host().getDiagramPreferencesHint());
+ viewDescriptors.add(descriptor);
+ }
+
+ boolean changed = deleteViews(orphaned.iterator());
+ //
+ CreateViewRequest request = getCreateViewRequest(viewDescriptors);
+ Command cmd = getCreateViewCommand(request);
+ if (cmd != null && cmd.canExecute()) {
+ SetViewMutabilityCommand.makeMutable(
+ new EObjectAdapter(host().getNotationView())).execute();
+ executeCommand(cmd);
+ @SuppressWarnings("unchecked")
+ List<IAdaptable> nl = (List<IAdaptable>) request.getNewObject();
+ createdViews.addAll(nl);
+ }
+ if (changed || createdViews.size() > 0) {
+ postProcessRefreshSemantic(createdViews);
+ }
+ if (createdViews.size() > 1) {
+ // perform a layout of the container
+ DeferredLayoutCommand layoutCmd = new DeferredLayoutCommand(host()
+ .getEditingDomain(), createdViews, host());
+ executeCommand(new ICommandProxy(layoutCmd));
+ }
+
+ makeViewsImmutable(createdViews);
+ }
+}
diff --git a/org.eclipse.emf.refactor.comrel.diagram/src/comrel/diagram/edit/policies/ParallelQueuedUnit7ItemSemanticEditPolicy.java b/org.eclipse.emf.refactor.comrel.diagram/src/comrel/diagram/edit/policies/ParallelQueuedUnit7ItemSemanticEditPolicy.java
new file mode 100644
index 0000000..1814b3c
--- /dev/null
+++ b/org.eclipse.emf.refactor.comrel.diagram/src/comrel/diagram/edit/policies/ParallelQueuedUnit7ItemSemanticEditPolicy.java
@@ -0,0 +1,263 @@
+/*
+ *
+ */
+package comrel.diagram.edit.policies;
+
+import java.util.Iterator;
+
+import org.eclipse.emf.ecore.EAnnotation;
+import org.eclipse.gef.commands.Command;
+import org.eclipse.gmf.runtime.common.core.command.ICompositeCommand;
+import org.eclipse.gmf.runtime.diagram.core.commands.DeleteCommand;
+import org.eclipse.gmf.runtime.emf.commands.core.command.CompositeTransactionalCommand;
+import org.eclipse.gmf.runtime.emf.type.core.commands.DestroyElementCommand;
+import org.eclipse.gmf.runtime.emf.type.core.requests.CreateElementRequest;
+import org.eclipse.gmf.runtime.emf.type.core.requests.DestroyElementRequest;
+import org.eclipse.gmf.runtime.notation.Edge;
+import org.eclipse.gmf.runtime.notation.Node;
+import org.eclipse.gmf.runtime.notation.View;
+
+import comrel.diagram.edit.commands.MultiInputPort2CreateCommand;
+import comrel.diagram.edit.commands.SingleInputPort3CreateCommand;
+import comrel.diagram.edit.parts.AtomicUnit3EditPart;
+import comrel.diagram.edit.parts.CartesianQueuedUnit3EditPart;
+import comrel.diagram.edit.parts.ConditionalUnit3EditPart;
+import comrel.diagram.edit.parts.MultiFeatureUnit2EditPart;
+import comrel.diagram.edit.parts.MultiFilterUnit2EditPart;
+import comrel.diagram.edit.parts.MultiInputPort2EditPart;
+import comrel.diagram.edit.parts.MultiPortMappingEditPart;
+import comrel.diagram.edit.parts.MultiSinglePortMappingEditPart;
+import comrel.diagram.edit.parts.ParallelQueuedUnit4EditPart;
+import comrel.diagram.edit.parts.ParallelQueuedUnitParallelQueuedUnitHelperUnitsCompartment6EditPart;
+import comrel.diagram.edit.parts.ParallelQueuedUnitParallelQueuedUnitRefactoringUnitsCompartment6EditPart;
+import comrel.diagram.edit.parts.SequentialUnit3EditPart;
+import comrel.diagram.edit.parts.SingleFeatureUnit2EditPart;
+import comrel.diagram.edit.parts.SingleFilterUnit2EditPart;
+import comrel.diagram.edit.parts.SingleInputPort3EditPart;
+import comrel.diagram.edit.parts.SinglePortMappingEditPart;
+import comrel.diagram.edit.parts.SingleQueuedUnit3EditPart;
+import comrel.diagram.part.ComrelVisualIDRegistry;
+import comrel.diagram.providers.ComrelElementTypes;
+
+/**
+ * @generated
+ */
+public class ParallelQueuedUnit7ItemSemanticEditPolicy extends
+ ComrelBaseItemSemanticEditPolicy {
+
+ /**
+ * @generated
+ */
+ public ParallelQueuedUnit7ItemSemanticEditPolicy() {
+ super(ComrelElementTypes.ParallelQueuedUnit_3048);
+ }
+
+ /**
+ * @generated
+ */
+ protected Command getCreateCommand(CreateElementRequest req) {
+ if (ComrelElementTypes.SingleInputPort_3005 == req.getElementType()) {
+ return getGEFWrapper(new SingleInputPort3CreateCommand(req));
+ }
+ if (ComrelElementTypes.MultiInputPort_3006 == req.getElementType()) {
+ return getGEFWrapper(new MultiInputPort2CreateCommand(req));
+ }
+ return super.getCreateCommand(req);
+ }
+
+ /**
+ * @generated
+ */
+ protected Command getDestroyElementCommand(DestroyElementRequest req) {
+ View view = (View) getHost().getModel();
+ CompositeTransactionalCommand cmd = new CompositeTransactionalCommand(
+ getEditingDomain(), null);
+ cmd.setTransactionNestingEnabled(false);
+ EAnnotation annotation = view.getEAnnotation("Shortcut"); //$NON-NLS-1$
+ if (annotation == null) {
+ // there are indirectly referenced children, need extra commands: false
+ addDestroyChildNodesCommand(cmd);
+ addDestroyShortcutsCommand(cmd, view);
+ // delete host element
+ cmd.add(new DestroyElementCommand(req));
+ } else {
+ cmd.add(new DeleteCommand(getEditingDomain(), view));
+ }
+ return getGEFWrapper(cmd.reduce());
+ }
+
+ /**
+ * @generated
+ */
+ private void addDestroyChildNodesCommand(ICompositeCommand cmd) {
+ View view = (View) getHost().getModel();
+ for (Iterator<?> nit = view.getChildren().iterator(); nit.hasNext();) {
+ Node node = (Node) nit.next();
+ switch (ComrelVisualIDRegistry.getVisualID(node)) {
+ case SingleInputPort3EditPart.VISUAL_ID:
+ for (Iterator<?> it = node.getTargetEdges().iterator(); it
+ .hasNext();) {
+ Edge incomingLink = (Edge) it.next();
+ if (ComrelVisualIDRegistry.getVisualID(incomingLink) == SinglePortMappingEditPart.VISUAL_ID) {
+ DestroyElementRequest r = new DestroyElementRequest(
+ incomingLink.getElement(), false);
+ cmd.add(new DestroyElementCommand(r));
+ cmd.add(new DeleteCommand(getEditingDomain(),
+ incomingLink));
+ continue;
+ }
+ if (ComrelVisualIDRegistry.getVisualID(incomingLink) == MultiSinglePortMappingEditPart.VISUAL_ID) {
+ DestroyElementRequest r = new DestroyElementRequest(
+ incomingLink.getElement(), false);
+ cmd.add(new DestroyElementCommand(r));
+ cmd.add(new DeleteCommand(getEditingDomain(),
+ incomingLink));
+ continue;
+ }
+ }
+ for (Iterator<?> it = node.getSourceEdges().iterator(); it
+ .hasNext();) {
+ Edge outgoingLink = (Edge) it.next();
+ if (ComrelVisualIDRegistry.getVisualID(outgoingLink) == SinglePortMappingEditPart.VISUAL_ID) {
+ DestroyElementRequest r = new DestroyElementRequest(
+ outgoingLink.getElement(), false);
+ cmd.add(new DestroyElementCommand(r));
+ cmd.add(new DeleteCommand(getEditingDomain(),
+ outgoingLink));
+ continue;
+ }
+ }
+ cmd.add(new DestroyElementCommand(new DestroyElementRequest(
+ getEditingDomain(), node.getElement(), false))); // directlyOwned: true
+ // don't need explicit deletion of node as parent's view deletion would clean child views as well
+ // cmd.add(new org.eclipse.gmf.runtime.diagram.core.commands.DeleteCommand(getEditingDomain(), node));
+ break;
+ case MultiInputPort2EditPart.VISUAL_ID:
+ for (Iterator<?> it = node.getTargetEdges().iterator(); it
+ .hasNext();) {
+ Edge incomingLink = (Edge) it.next();
+ if (ComrelVisualIDRegistry.getVisualID(incomingLink) == MultiPortMappingEditPart.VISUAL_ID) {
+ DestroyElementRequest r = new DestroyElementRequest(
+ incomingLink.getElement(), false);
+ cmd.add(new DestroyElementCommand(r));
+ cmd.add(new DeleteCommand(getEditingDomain(),
+ incomingLink));
+ continue;
+ }
+ }
+ for (Iterator<?> it = node.getSourceEdges().iterator(); it
+ .hasNext();) {
+ Edge outgoingLink = (Edge) it.next();
+ if (ComrelVisualIDRegistry.getVisualID(outgoingLink) == MultiPortMappingEditPart.VISUAL_ID) {
+ DestroyElementRequest r = new DestroyElementRequest(
+ outgoingLink.getElement(), false);
+ cmd.add(new DestroyElementCommand(r));
+ cmd.add(new DeleteCommand(getEditingDomain(),
+ outgoingLink));
+ continue;
+ }
+ if (ComrelVisualIDRegistry.getVisualID(outgoingLink) == MultiSinglePortMappingEditPart.VISUAL_ID) {
+ DestroyElementRequest r = new DestroyElementRequest(
+ outgoingLink.getElement(), false);
+ cmd.add(new DestroyElementCommand(r));
+ cmd.add(new DeleteCommand(getEditingDomain(),
+ outgoingLink));
+ continue;
+ }
+ }
+ cmd.add(new DestroyElementCommand(new DestroyElementRequest(
+ getEditingDomain(), node.getElement(), false))); // directlyOwned: true
+ // don't need explicit deletion of node as parent's view deletion would clean child views as well
+ // cmd.add(new org.eclipse.gmf.runtime.diagram.core.commands.DeleteCommand(getEditingDomain(), node));
+ break;
+ case ParallelQueuedUnitParallelQueuedUnitHelperUnitsCompartment6EditPart.VISUAL_ID:
+ for (Iterator<?> cit = node.getChildren().iterator(); cit
+ .hasNext();) {
+ Node cnode = (Node) cit.next();
+ switch (ComrelVisualIDRegistry.getVisualID(cnode)) {
+ case SingleFeatureUnit2EditPart.VISUAL_ID:
+ cmd.add(new DestroyElementCommand(
+ new DestroyElementRequest(getEditingDomain(),
+ cnode.getElement(), false))); // directlyOwned: true
+ // don't need explicit deletion of cnode as parent's view deletion would clean child views as well
+ // cmd.add(new org.eclipse.gmf.runtime.diagram.core.commands.DeleteCommand(getEditingDomain(), cnode));
+ break;
+ case MultiFeatureUnit2EditPart.VISUAL_ID:
+ cmd.add(new DestroyElementCommand(
+ new DestroyElementRequest(getEditingDomain(),
+ cnode.getElement(), false))); // directlyOwned: true
+ // don't need explicit deletion of cnode as parent's view deletion would clean child views as well
+ // cmd.add(new org.eclipse.gmf.runtime.diagram.core.commands.DeleteCommand(getEditingDomain(), cnode));
+ break;
+ case SingleFilterUnit2EditPart.VISUAL_ID:
+ cmd.add(new DestroyElementCommand(
+ new DestroyElementRequest(getEditingDomain(),
+ cnode.getElement(), false))); // directlyOwned: true
+ // don't need explicit deletion of cnode as parent's view deletion would clean child views as well
+ // cmd.add(new org.eclipse.gmf.runtime.diagram.core.commands.DeleteCommand(getEditingDomain(), cnode));
+ break;
+ case MultiFilterUnit2EditPart.VISUAL_ID:
+ cmd.add(new DestroyElementCommand(
+ new DestroyElementRequest(getEditingDomain(),
+ cnode.getElement(), false))); // directlyOwned: true
+ // don't need explicit deletion of cnode as parent's view deletion would clean child views as well
+ // cmd.add(new org.eclipse.gmf.runtime.diagram.core.commands.DeleteCommand(getEditingDomain(), cnode));
+ break;
+ }
+ }
+ break;
+ case ParallelQueuedUnitParallelQueuedUnitRefactoringUnitsCompartment6EditPart.VISUAL_ID:
+ for (Iterator<?> cit = node.getChildren().iterator(); cit
+ .hasNext();) {
+ Node cnode = (Node) cit.next();
+ switch (ComrelVisualIDRegistry.getVisualID(cnode)) {
+ case CartesianQueuedUnit3EditPart.VISUAL_ID:
+ cmd.add(new DestroyElementCommand(
+ new DestroyElementRequest(getEditingDomain(),
+ cnode.getElement(), false))); // directlyOwned: true
+ // don't need explicit deletion of cnode as parent's view deletion would clean child views as well
+ // cmd.add(new org.eclipse.gmf.runtime.diagram.core.commands.DeleteCommand(getEditingDomain(), cnode));
+ break;
+ case ParallelQueuedUnit4EditPart.VISUAL_ID:
+ cmd.add(new DestroyElementCommand(
+ new DestroyElementRequest(getEditingDomain(),
+ cnode.getElement(), false))); // directlyOwned: true
+ // don't need explicit deletion of cnode as parent's view deletion would clean child views as well
+ // cmd.add(new org.eclipse.gmf.runtime.diagram.core.commands.DeleteCommand(getEditingDomain(), cnode));
+ break;
+ case SingleQueuedUnit3EditPart.VISUAL_ID:
+ cmd.add(new DestroyElementCommand(
+ new DestroyElementRequest(getEditingDomain(),
+ cnode.getElement(), false))); // directlyOwned: true
+ // don't need explicit deletion of cnode as parent's view deletion would clean child views as well
+ // cmd.add(new org.eclipse.gmf.runtime.diagram.core.commands.DeleteCommand(getEditingDomain(), cnode));
+ break;
+ case SequentialUnit3EditPart.VISUAL_ID:
+ cmd.add(new DestroyElementCommand(
+ new DestroyElementRequest(getEditingDomain(),
+ cnode.getElement(), false))); // directlyOwned: true
+ // don't need explicit deletion of cnode as parent's view deletion would clean child views as well
+ // cmd.add(new org.eclipse.gmf.runtime.diagram.core.commands.DeleteCommand(getEditingDomain(), cnode));
+ break;
+ case ConditionalUnit3EditPart.VISUAL_ID:
+ cmd.add(new DestroyElementCommand(
+ new DestroyElementRequest(getEditingDomain(),
+ cnode.getElement(), false))); // directlyOwned: true
+ // don't need explicit deletion of cnode as parent's view deletion would clean child views as well
+ // cmd.add(new org.eclipse.gmf.runtime.diagram.core.commands.DeleteCommand(getEditingDomain(), cnode));
+ break;
+ case AtomicUnit3EditPart.VISUAL_ID:
+ cmd.add(new DestroyElementCommand(
+ new DestroyElementRequest(getEditingDomain(),
+ cnode.getElement(), false))); // directlyOwned: true
+ // don't need explicit deletion of cnode as parent's view deletion would clean child views as well
+ // cmd.add(new org.eclipse.gmf.runtime.diagram.core.commands.DeleteCommand(getEditingDomain(), cnode));
+ break;
+ }
+ }
+ break;
+ }
+ }
+ }
+
+}
diff --git a/org.eclipse.emf.refactor.comrel.diagram/src/comrel/diagram/edit/policies/ParallelQueuedUnitCanonicalEditPolicy.java b/org.eclipse.emf.refactor.comrel.diagram/src/comrel/diagram/edit/policies/ParallelQueuedUnitCanonicalEditPolicy.java
new file mode 100644
index 0000000..ee39ed8
--- /dev/null
+++ b/org.eclipse.emf.refactor.comrel.diagram/src/comrel/diagram/edit/policies/ParallelQueuedUnitCanonicalEditPolicy.java
@@ -0,0 +1,178 @@
+/*
+ *
+ */
+package comrel.diagram.edit.policies;
+
+import java.util.ArrayList;
+import java.util.Collection;
+import java.util.HashSet;
+import java.util.Iterator;
+import java.util.LinkedList;
+import java.util.List;
+import java.util.Set;
+
+import org.eclipse.core.runtime.IAdaptable;
+import org.eclipse.emf.ecore.EObject;
+import org.eclipse.emf.ecore.EStructuralFeature;
+import org.eclipse.gef.commands.Command;
+import org.eclipse.gmf.runtime.diagram.core.util.ViewUtil;
+import org.eclipse.gmf.runtime.diagram.ui.commands.DeferredLayoutCommand;
+import org.eclipse.gmf.runtime.diagram.ui.commands.ICommandProxy;
+import org.eclipse.gmf.runtime.diagram.ui.commands.SetViewMutabilityCommand;
+import org.eclipse.gmf.runtime.diagram.ui.editpolicies.CanonicalEditPolicy;
+import org.eclipse.gmf.runtime.diagram.ui.requests.CreateViewRequest;
+import org.eclipse.gmf.runtime.emf.core.util.EObjectAdapter;
+import org.eclipse.gmf.runtime.notation.Node;
+import org.eclipse.gmf.runtime.notation.View;
+
+import comrel.ComrelPackage;
+import comrel.diagram.edit.parts.MultiInputPort2EditPart;
+import comrel.diagram.edit.parts.SingleInputPort3EditPart;
+import comrel.diagram.part.ComrelDiagramUpdater;
+import comrel.diagram.part.ComrelNodeDescriptor;
+import comrel.diagram.part.ComrelVisualIDRegistry;
+
+/**
+ * @generated
+ */
+public class ParallelQueuedUnitCanonicalEditPolicy extends CanonicalEditPolicy {
+
+ /**
+ * @generated
+ */
+ private Set<EStructuralFeature> myFeaturesToSynchronize;
+
+ /**
+ * @generated
+ */
+ protected Set getFeaturesToSynchronize() {
+ if (myFeaturesToSynchronize == null) {
+ myFeaturesToSynchronize = new HashSet<EStructuralFeature>();
+ myFeaturesToSynchronize.add(ComrelPackage.eINSTANCE
+ .getParallelQueuedUnit_SingleInputPorts());
+ myFeaturesToSynchronize.add(ComrelPackage.eINSTANCE
+ .getParallelQueuedUnit_MultiInputPorts());
+ }
+ return myFeaturesToSynchronize;
+ }
+
+ /**
+ * @generated
+ */
+ @SuppressWarnings("rawtypes")
+ protected List getSemanticChildrenList() {
+ View viewObject = (View) getHost().getModel();
+ LinkedList<EObject> result = new LinkedList<EObject>();
+ List<ComrelNodeDescriptor> childDescriptors = ComrelDiagramUpdater
+ .getParallelQueuedUnit_2003SemanticChildren(viewObject);
+ for (ComrelNodeDescriptor d : childDescriptors) {
+ result.add(d.getModelElement());
+ }
+ return result;
+ }
+
+ /**
+ * @generated
+ */
+ protected boolean isOrphaned(Collection<EObject> semanticChildren,
+ final View view) {
+ return isMyDiagramElement(view)
+ && !semanticChildren.contains(view.getElement());
+ }
+
+ /**
+ * @generated
+ */
+ private boolean isMyDiagramElement(View view) {
+ int visualID = ComrelVisualIDRegistry.getVisualID(view);
+ return visualID == SingleInputPort3EditPart.VISUAL_ID
+ || visualID == MultiInputPort2EditPart.VISUAL_ID;
+ }
+
+ /**
+ * @generated
+ */
+ protected void refreshSemantic() {
+ if (resolveSemanticElement() == null) {
+ return;
+ }
+ LinkedList<IAdaptable> createdViews = new LinkedList<IAdaptable>();
+ List<ComrelNodeDescriptor> childDescriptors = ComrelDiagramUpdater
+ .getParallelQueuedUnit_2003SemanticChildren((View) getHost()
+ .getModel());
+ LinkedList<View> orphaned = new LinkedList<View>();
+ // we care to check only views we recognize as ours
+ LinkedList<View> knownViewChildren = new LinkedList<View>();
+ for (View v : getViewChildren()) {
+ if (isMyDiagramElement(v)) {
+ knownViewChildren.add(v);
+ }
+ }
+ // alternative to #cleanCanonicalSemanticChildren(getViewChildren(), semanticChildren)
+ //
+ // iteration happens over list of desired semantic elements, trying to find best matching View, while original CEP
+ // iterates views, potentially losing view (size/bounds) information - i.e. if there are few views to reference same EObject, only last one
+ // to answer isOrphaned == true will be used for the domain element representation, see #cleanCanonicalSemanticChildren()
+ for (Iterator<ComrelNodeDescriptor> descriptorsIterator = childDescriptors
+ .iterator(); descriptorsIterator.hasNext();) {
+ ComrelNodeDescriptor next = descriptorsIterator.next();
+ String hint = ComrelVisualIDRegistry.getType(next.getVisualID());
+ LinkedList<View> perfectMatch = new LinkedList<View>(); // both semanticElement and hint match that of NodeDescriptor
+ for (View childView : getViewChildren()) {
+ EObject semanticElement = childView.getElement();
+ if (next.getModelElement().equals(semanticElement)) {
+ if (hint.equals(childView.getType())) {
+ perfectMatch.add(childView);
+ // actually, can stop iteration over view children here, but
+ // may want to use not the first view but last one as a 'real' match (the way original CEP does
+ // with its trick with viewToSemanticMap inside #cleanCanonicalSemanticChildren
+ }
+ }
+ }
+ if (perfectMatch.size() > 0) {
+ descriptorsIterator.remove(); // precise match found no need to create anything for the NodeDescriptor
+ // use only one view (first or last?), keep rest as orphaned for further consideration
+ knownViewChildren.remove(perfectMatch.getFirst());
+ }
+ }
+ // those left in knownViewChildren are subject to removal - they are our diagram elements we didn't find match to,
+ // or those we have potential matches to, and thus need to be recreated, preserving size/location information.
+ orphaned.addAll(knownViewChildren);
+ //
+ ArrayList<CreateViewRequest.ViewDescriptor> viewDescriptors = new ArrayList<CreateViewRequest.ViewDescriptor>(
+ childDescriptors.size());
+ for (ComrelNodeDescriptor next : childDescriptors) {
+ String hint = ComrelVisualIDRegistry.getType(next.getVisualID());
+ IAdaptable elementAdapter = new CanonicalElementAdapter(
+ next.getModelElement(), hint);
+ CreateViewRequest.ViewDescriptor descriptor = new CreateViewRequest.ViewDescriptor(
+ elementAdapter, Node.class, hint, ViewUtil.APPEND, false,
+ host().getDiagramPreferencesHint());
+ viewDescriptors.add(descriptor);
+ }
+
+ boolean changed = deleteViews(orphaned.iterator());
+ //
+ CreateViewRequest request = getCreateViewRequest(viewDescriptors);
+ Command cmd = getCreateViewCommand(request);
+ if (cmd != null && cmd.canExecute()) {
+ SetViewMutabilityCommand.makeMutable(
+ new EObjectAdapter(host().getNotationView())).execute();
+ executeCommand(cmd);
+ @SuppressWarnings("unchecked")
+ List<IAdaptable> nl = (List<IAdaptable>) request.getNewObject();
+ createdViews.addAll(nl);
+ }
+ if (changed || createdViews.size() > 0) {
+ postProcessRefreshSemantic(createdViews);
+ }
+ if (createdViews.size() > 1) {
+ // perform a layout of the container
+ DeferredLayoutCommand layoutCmd = new DeferredLayoutCommand(host()
+ .getEditingDomain(), createdViews, host());
+ executeCommand(new ICommandProxy(layoutCmd));
+ }
+
+ makeViewsImmutable(createdViews);
+ }
+}
diff --git a/org.eclipse.emf.refactor.comrel.diagram/src/comrel/diagram/edit/policies/ParallelQueuedUnitItemSemanticEditPolicy.java b/org.eclipse.emf.refactor.comrel.diagram/src/comrel/diagram/edit/policies/ParallelQueuedUnitItemSemanticEditPolicy.java
new file mode 100644
index 0000000..f7e25bb
--- /dev/null
+++ b/org.eclipse.emf.refactor.comrel.diagram/src/comrel/diagram/edit/policies/ParallelQueuedUnitItemSemanticEditPolicy.java
@@ -0,0 +1,263 @@
+/*
+ *
+ */
+package comrel.diagram.edit.policies;
+
+import java.util.Iterator;
+
+import org.eclipse.emf.ecore.EAnnotation;
+import org.eclipse.gef.commands.Command;
+import org.eclipse.gmf.runtime.common.core.command.ICompositeCommand;
+import org.eclipse.gmf.runtime.diagram.core.commands.DeleteCommand;
+import org.eclipse.gmf.runtime.emf.commands.core.command.CompositeTransactionalCommand;
+import org.eclipse.gmf.runtime.emf.type.core.commands.DestroyElementCommand;
+import org.eclipse.gmf.runtime.emf.type.core.requests.CreateElementRequest;
+import org.eclipse.gmf.runtime.emf.type.core.requests.DestroyElementRequest;
+import org.eclipse.gmf.runtime.notation.Edge;
+import org.eclipse.gmf.runtime.notation.Node;
+import org.eclipse.gmf.runtime.notation.View;
+
+import comrel.diagram.edit.commands.MultiInputPort2CreateCommand;
+import comrel.diagram.edit.commands.SingleInputPort3CreateCommand;
+import comrel.diagram.edit.parts.AtomicUnit3EditPart;
+import comrel.diagram.edit.parts.CartesianQueuedUnit3EditPart;
+import comrel.diagram.edit.parts.ConditionalUnit3EditPart;
+import comrel.diagram.edit.parts.MultiFeatureUnit2EditPart;
+import comrel.diagram.edit.parts.MultiFilterUnit2EditPart;
+import comrel.diagram.edit.parts.MultiInputPort2EditPart;
+import comrel.diagram.edit.parts.MultiPortMappingEditPart;
+import comrel.diagram.edit.parts.MultiSinglePortMappingEditPart;
+import comrel.diagram.edit.parts.ParallelQueuedUnit4EditPart;
+import comrel.diagram.edit.parts.ParallelQueuedUnitParallelQueuedUnitHelperUnitsCompartment7EditPart;
+import comrel.diagram.edit.parts.ParallelQueuedUnitParallelQueuedUnitRefactoringUnitsCompartment7EditPart;
+import comrel.diagram.edit.parts.SequentialUnit3EditPart;
+import comrel.diagram.edit.parts.SingleFeatureUnit2EditPart;
+import comrel.diagram.edit.parts.SingleFilterUnit2EditPart;
+import comrel.diagram.edit.parts.SingleInputPort3EditPart;
+import comrel.diagram.edit.parts.SinglePortMappingEditPart;
+import comrel.diagram.edit.parts.SingleQueuedUnit3EditPart;
+import comrel.diagram.part.ComrelVisualIDRegistry;
+import comrel.diagram.providers.ComrelElementTypes;
+
+/**
+ * @generated
+ */
+public class ParallelQueuedUnitItemSemanticEditPolicy extends
+ ComrelBaseItemSemanticEditPolicy {
+
+ /**
+ * @generated
+ */
+ public ParallelQueuedUnitItemSemanticEditPolicy() {
+ super(ComrelElementTypes.ParallelQueuedUnit_2003);
+ }
+
+ /**
+ * @generated
+ */
+ protected Command getCreateCommand(CreateElementRequest req) {
+ if (ComrelElementTypes.SingleInputPort_3005 == req.getElementType()) {
+ return getGEFWrapper(new SingleInputPort3CreateCommand(req));
+ }
+ if (ComrelElementTypes.MultiInputPort_3006 == req.getElementType()) {
+ return getGEFWrapper(new MultiInputPort2CreateCommand(req));
+ }
+ return super.getCreateCommand(req);
+ }
+
+ /**
+ * @generated
+ */
+ protected Command getDestroyElementCommand(DestroyElementRequest req) {
+ View view = (View) getHost().getModel();
+ CompositeTransactionalCommand cmd = new CompositeTransactionalCommand(
+ getEditingDomain(), null);
+ cmd.setTransactionNestingEnabled(false);
+ EAnnotation annotation = view.getEAnnotation("Shortcut"); //$NON-NLS-1$
+ if (annotation == null) {
+ // there are indirectly referenced children, need extra commands: false
+ addDestroyChildNodesCommand(cmd);
+ addDestroyShortcutsCommand(cmd, view);
+ // delete host element
+ cmd.add(new DestroyElementCommand(req));
+ } else {
+ cmd.add(new DeleteCommand(getEditingDomain(), view));
+ }
+ return getGEFWrapper(cmd.reduce());
+ }
+
+ /**
+ * @generated
+ */
+ private void addDestroyChildNodesCommand(ICompositeCommand cmd) {
+ View view = (View) getHost().getModel();
+ for (Iterator<?> nit = view.getChildren().iterator(); nit.hasNext();) {
+ Node node = (Node) nit.next();
+ switch (ComrelVisualIDRegistry.getVisualID(node)) {
+ case SingleInputPort3EditPart.VISUAL_ID:
+ for (Iterator<?> it = node.getTargetEdges().iterator(); it
+ .hasNext();) {
+ Edge incomingLink = (Edge) it.next();
+ if (ComrelVisualIDRegistry.getVisualID(incomingLink) == SinglePortMappingEditPart.VISUAL_ID) {
+ DestroyElementRequest r = new DestroyElementRequest(
+ incomingLink.getElement(), false);
+ cmd.add(new DestroyElementCommand(r));
+ cmd.add(new DeleteCommand(getEditingDomain(),
+ incomingLink));
+ continue;
+ }
+ if (ComrelVisualIDRegistry.getVisualID(incomingLink) == MultiSinglePortMappingEditPart.VISUAL_ID) {
+ DestroyElementRequest r = new DestroyElementRequest(
+ incomingLink.getElement(), false);
+ cmd.add(new DestroyElementCommand(r));
+ cmd.add(new DeleteCommand(getEditingDomain(),
+ incomingLink));
+ continue;
+ }
+ }
+ for (Iterator<?> it = node.getSourceEdges().iterator(); it
+ .hasNext();) {
+ Edge outgoingLink = (Edge) it.next();
+ if (ComrelVisualIDRegistry.getVisualID(outgoingLink) == SinglePortMappingEditPart.VISUAL_ID) {
+ DestroyElementRequest r = new DestroyElementRequest(
+ outgoingLink.getElement(), false);
+ cmd.add(new DestroyElementCommand(r));
+ cmd.add(new DeleteCommand(getEditingDomain(),
+ outgoingLink));
+ continue;
+ }
+ }
+ cmd.add(new DestroyElementCommand(new DestroyElementRequest(
+ getEditingDomain(), node.getElement(), false))); // directlyOwned: true
+ // don't need explicit deletion of node as parent's view deletion would clean child views as well
+ // cmd.add(new org.eclipse.gmf.runtime.diagram.core.commands.DeleteCommand(getEditingDomain(), node));
+ break;
+ case MultiInputPort2EditPart.VISUAL_ID:
+ for (Iterator<?> it = node.getTargetEdges().iterator(); it
+ .hasNext();) {
+ Edge incomingLink = (Edge) it.next();
+ if (ComrelVisualIDRegistry.getVisualID(incomingLink) == MultiPortMappingEditPart.VISUAL_ID) {
+ DestroyElementRequest r = new DestroyElementRequest(
+ incomingLink.getElement(), false);
+ cmd.add(new DestroyElementCommand(r));
+ cmd.add(new DeleteCommand(getEditingDomain(),
+ incomingLink));
+ continue;
+ }
+ }
+ for (Iterator<?> it = node.getSourceEdges().iterator(); it
+ .hasNext();) {
+ Edge outgoingLink = (Edge) it.next();
+ if (ComrelVisualIDRegistry.getVisualID(outgoingLink) == MultiPortMappingEditPart.VISUAL_ID) {
+ DestroyElementRequest r = new DestroyElementRequest(
+ outgoingLink.getElement(), false);
+ cmd.add(new DestroyElementCommand(r));
+ cmd.add(new DeleteCommand(getEditingDomain(),
+ outgoingLink));
+ continue;
+ }
+ if (ComrelVisualIDRegistry.getVisualID(outgoingLink) == MultiSinglePortMappingEditPart.VISUAL_ID) {
+ DestroyElementRequest r = new DestroyElementRequest(
+ outgoingLink.getElement(), false);
+ cmd.add(new DestroyElementCommand(r));
+ cmd.add(new DeleteCommand(getEditingDomain(),
+ outgoingLink));
+ continue;
+ }
+ }
+ cmd.add(new DestroyElementCommand(new DestroyElementRequest(
+ getEditingDomain(), node.getElement(), false))); // directlyOwned: true
+ // don't need explicit deletion of node as parent's view deletion would clean child views as well
+ // cmd.add(new org.eclipse.gmf.runtime.diagram.core.commands.DeleteCommand(getEditingDomain(), node));
+ break;
+ case ParallelQueuedUnitParallelQueuedUnitHelperUnitsCompartment7EditPart.VISUAL_ID:
+ for (Iterator<?> cit = node.getChildren().iterator(); cit
+ .hasNext();) {
+ Node cnode = (Node) cit.next();
+ switch (ComrelVisualIDRegistry.getVisualID(cnode)) {
+ case SingleFeatureUnit2EditPart.VISUAL_ID:
+ cmd.add(new DestroyElementCommand(
+ new DestroyElementRequest(getEditingDomain(),
+ cnode.getElement(), false))); // directlyOwned: true
+ // don't need explicit deletion of cnode as parent's view deletion would clean child views as well
+ // cmd.add(new org.eclipse.gmf.runtime.diagram.core.commands.DeleteCommand(getEditingDomain(), cnode));
+ break;
+ case MultiFeatureUnit2EditPart.VISUAL_ID:
+ cmd.add(new DestroyElementCommand(
+ new DestroyElementRequest(getEditingDomain(),
+ cnode.getElement(), false))); // directlyOwned: true
+ // don't need explicit deletion of cnode as parent's view deletion would clean child views as well
+ // cmd.add(new org.eclipse.gmf.runtime.diagram.core.commands.DeleteCommand(getEditingDomain(), cnode));
+ break;
+ case SingleFilterUnit2EditPart.VISUAL_ID:
+ cmd.add(new DestroyElementCommand(
+ new DestroyElementRequest(getEditingDomain(),
+ cnode.getElement(), false))); // directlyOwned: true
+ // don't need explicit deletion of cnode as parent's view deletion would clean child views as well
+ // cmd.add(new org.eclipse.gmf.runtime.diagram.core.commands.DeleteCommand(getEditingDomain(), cnode));
+ break;
+ case MultiFilterUnit2EditPart.VISUAL_ID:
+ cmd.add(new DestroyElementCommand(
+ new DestroyElementRequest(getEditingDomain(),
+ cnode.getElement(), false))); // directlyOwned: true
+ // don't need explicit deletion of cnode as parent's view deletion would clean child views as well
+ // cmd.add(new org.eclipse.gmf.runtime.diagram.core.commands.DeleteCommand(getEditingDomain(), cnode));
+ break;
+ }
+ }
+ break;
+ case ParallelQueuedUnitParallelQueuedUnitRefactoringUnitsCompartment7EditPart.VISUAL_ID:
+ for (Iterator<?> cit = node.getChildren().iterator(); cit
+ .hasNext();) {
+ Node cnode = (Node) cit.next();
+ switch (ComrelVisualIDRegistry.getVisualID(cnode)) {
+ case CartesianQueuedUnit3EditPart.VISUAL_ID:
+ cmd.add(new DestroyElementCommand(
+ new DestroyElementRequest(getEditingDomain(),
+ cnode.getElement(), false))); // directlyOwned: true
+ // don't need explicit deletion of cnode as parent's view deletion would clean child views as well
+ // cmd.add(new org.eclipse.gmf.runtime.diagram.core.commands.DeleteCommand(getEditingDomain(), cnode));
+ break;
+ case ParallelQueuedUnit4EditPart.VISUAL_ID:
+ cmd.add(new DestroyElementCommand(
+ new DestroyElementRequest(getEditingDomain(),
+ cnode.getElement(), false))); // directlyOwned: true
+ // don't need explicit deletion of cnode as parent's view deletion would clean child views as well
+ // cmd.add(new org.eclipse.gmf.runtime.diagram.core.commands.DeleteCommand(getEditingDomain(), cnode));
+ break;
+ case SingleQueuedUnit3EditPart.VISUAL_ID:
+ cmd.add(new DestroyElementCommand(
+ new DestroyElementRequest(getEditingDomain(),
+ cnode.getElement(), false))); // directlyOwned: true
+ // don't need explicit deletion of cnode as parent's view deletion would clean child views as well
+ // cmd.add(new org.eclipse.gmf.runtime.diagram.core.commands.DeleteCommand(getEditingDomain(), cnode));
+ break;
+ case SequentialUnit3EditPart.VISUAL_ID:
+ cmd.add(new DestroyElementCommand(
+ new DestroyElementRequest(getEditingDomain(),
+ cnode.getElement(), false))); // directlyOwned: true
+ // don't need explicit deletion of cnode as parent's view deletion would clean child views as well
+ // cmd.add(new org.eclipse.gmf.runtime.diagram.core.commands.DeleteCommand(getEditingDomain(), cnode));
+ break;
+ case ConditionalUnit3EditPart.VISUAL_ID:
+ cmd.add(new DestroyElementCommand(
+ new DestroyElementRequest(getEditingDomain(),
+ cnode.getElement(), false))); // directlyOwned: true
+ // don't need explicit deletion of cnode as parent's view deletion would clean child views as well
+ // cmd.add(new org.eclipse.gmf.runtime.diagram.core.commands.DeleteCommand(getEditingDomain(), cnode));
+ break;
+ case AtomicUnit3EditPart.VISUAL_ID:
+ cmd.add(new DestroyElementCommand(
+ new DestroyElementRequest(getEditingDomain(),
+ cnode.getElement(), false))); // directlyOwned: true
+ // don't need explicit deletion of cnode as parent's view deletion would clean child views as well
+ // cmd.add(new org.eclipse.gmf.runtime.diagram.core.commands.DeleteCommand(getEditingDomain(), cnode));
+ break;
+ }
+ }
+ break;
+ }
+ }
+ }
+
+}
diff --git a/org.eclipse.emf.refactor.comrel.diagram/src/comrel/diagram/edit/policies/ParallelQueuedUnitParallelQueuedUnitHelperUnitsCompartment2CanonicalEditPolicy.java b/org.eclipse.emf.refactor.comrel.diagram/src/comrel/diagram/edit/policies/ParallelQueuedUnitParallelQueuedUnitHelperUnitsCompartment2CanonicalEditPolicy.java
new file mode 100644
index 0000000..3e2ff32
--- /dev/null
+++ b/org.eclipse.emf.refactor.comrel.diagram/src/comrel/diagram/edit/policies/ParallelQueuedUnitParallelQueuedUnitHelperUnitsCompartment2CanonicalEditPolicy.java
@@ -0,0 +1,173 @@
+/*
+ *
+ */
+package comrel.diagram.edit.policies;
+
+import java.util.ArrayList;
+import java.util.Collection;
+import java.util.Iterator;
+import java.util.LinkedList;
+import java.util.List;
+
+import org.eclipse.core.runtime.IAdaptable;
+import org.eclipse.emf.ecore.EObject;
+import org.eclipse.emf.ecore.EStructuralFeature;
+import org.eclipse.gef.commands.Command;
+import org.eclipse.gmf.runtime.diagram.core.util.ViewUtil;
+import org.eclipse.gmf.runtime.diagram.ui.commands.DeferredLayoutCommand;
+import org.eclipse.gmf.runtime.diagram.ui.commands.ICommandProxy;
+import org.eclipse.gmf.runtime.diagram.ui.commands.SetViewMutabilityCommand;
+import org.eclipse.gmf.runtime.diagram.ui.editpolicies.CanonicalEditPolicy;
+import org.eclipse.gmf.runtime.diagram.ui.requests.CreateViewRequest;
+import org.eclipse.gmf.runtime.emf.core.util.EObjectAdapter;
+import org.eclipse.gmf.runtime.notation.Node;
+import org.eclipse.gmf.runtime.notation.View;
+
+import comrel.ComrelPackage;
+import comrel.diagram.edit.parts.MultiFeatureUnit2EditPart;
+import comrel.diagram.edit.parts.MultiFilterUnit2EditPart;
+import comrel.diagram.edit.parts.SingleFeatureUnit2EditPart;
+import comrel.diagram.edit.parts.SingleFilterUnit2EditPart;
+import comrel.diagram.part.ComrelDiagramUpdater;
+import comrel.diagram.part.ComrelNodeDescriptor;
+import comrel.diagram.part.ComrelVisualIDRegistry;
+
+/**
+ * @generated
+ */
+public class ParallelQueuedUnitParallelQueuedUnitHelperUnitsCompartment2CanonicalEditPolicy
+ extends CanonicalEditPolicy {
+
+ /**
+ * @generated
+ */
+ protected EStructuralFeature getFeatureToSynchronize() {
+ return ComrelPackage.eINSTANCE.getParallelQueuedUnit_HelperUnits();
+ }
+
+ /**
+ * @generated
+ */
+ @SuppressWarnings("rawtypes")
+ protected List getSemanticChildrenList() {
+ View viewObject = (View) getHost().getModel();
+ LinkedList<EObject> result = new LinkedList<EObject>();
+ List<ComrelNodeDescriptor> childDescriptors = ComrelDiagramUpdater
+ .getParallelQueuedUnitParallelQueuedUnitHelperUnitsCompartment_7023SemanticChildren(viewObject);
+ for (ComrelNodeDescriptor d : childDescriptors) {
+ result.add(d.getModelElement());
+ }
+ return result;
+ }
+
+ /**
+ * @generated
+ */
+ protected boolean isOrphaned(Collection<EObject> semanticChildren,
+ final View view) {
+ return isMyDiagramElement(view)
+ && !semanticChildren.contains(view.getElement());
+ }
+
+ /**
+ * @generated
+ */
+ private boolean isMyDiagramElement(View view) {
+ int visualID = ComrelVisualIDRegistry.getVisualID(view);
+ switch (visualID) {
+ case SingleFeatureUnit2EditPart.VISUAL_ID:
+ case MultiFeatureUnit2EditPart.VISUAL_ID:
+ case SingleFilterUnit2EditPart.VISUAL_ID:
+ case MultiFilterUnit2EditPart.VISUAL_ID:
+ return true;
+ }
+ return false;
+ }
+
+ /**
+ * @generated
+ */
+ protected void refreshSemantic() {
+ if (resolveSemanticElement() == null) {
+ return;
+ }
+ LinkedList<IAdaptable> createdViews = new LinkedList<IAdaptable>();
+ List<ComrelNodeDescriptor> childDescriptors = ComrelDiagramUpdater
+ .getParallelQueuedUnitParallelQueuedUnitHelperUnitsCompartment_7023SemanticChildren((View) getHost()
+ .getModel());
+ LinkedList<View> orphaned = new LinkedList<View>();
+ // we care to check only views we recognize as ours
+ LinkedList<View> knownViewChildren = new LinkedList<View>();
+ for (View v : getViewChildren()) {
+ if (isMyDiagramElement(v)) {
+ knownViewChildren.add(v);
+ }
+ }
+ // alternative to #cleanCanonicalSemanticChildren(getViewChildren(), semanticChildren)
+ //
+ // iteration happens over list of desired semantic elements, trying to find best matching View, while original CEP
+ // iterates views, potentially losing view (size/bounds) information - i.e. if there are few views to reference same EObject, only last one
+ // to answer isOrphaned == true will be used for the domain element representation, see #cleanCanonicalSemanticChildren()
+ for (Iterator<ComrelNodeDescriptor> descriptorsIterator = childDescriptors
+ .iterator(); descriptorsIterator.hasNext();) {
+ ComrelNodeDescriptor next = descriptorsIterator.next();
+ String hint = ComrelVisualIDRegistry.getType(next.getVisualID());
+ LinkedList<View> perfectMatch = new LinkedList<View>(); // both semanticElement and hint match that of NodeDescriptor
+ for (View childView : getViewChildren()) {
+ EObject semanticElement = childView.getElement();
+ if (next.getModelElement().equals(semanticElement)) {
+ if (hint.equals(childView.getType())) {
+ perfectMatch.add(childView);
+ // actually, can stop iteration over view children here, but
+ // may want to use not the first view but last one as a 'real' match (the way original CEP does
+ // with its trick with viewToSemanticMap inside #cleanCanonicalSemanticChildren
+ }
+ }
+ }
+ if (perfectMatch.size() > 0) {
+ descriptorsIterator.remove(); // precise match found no need to create anything for the NodeDescriptor
+ // use only one view (first or last?), keep rest as orphaned for further consideration
+ knownViewChildren.remove(perfectMatch.getFirst());
+ }
+ }
+ // those left in knownViewChildren are subject to removal - they are our diagram elements we didn't find match to,
+ // or those we have potential matches to, and thus need to be recreated, preserving size/location information.
+ orphaned.addAll(knownViewChildren);
+ //
+ ArrayList<CreateViewRequest.ViewDescriptor> viewDescriptors = new ArrayList<CreateViewRequest.ViewDescriptor>(
+ childDescriptors.size());
+ for (ComrelNodeDescriptor next : childDescriptors) {
+ String hint = ComrelVisualIDRegistry.getType(next.getVisualID());
+ IAdaptable elementAdapter = new CanonicalElementAdapter(
+ next.getModelElement(), hint);
+ CreateViewRequest.ViewDescriptor descriptor = new CreateViewRequest.ViewDescriptor(
+ elementAdapter, Node.class, hint, ViewUtil.APPEND, false,
+ host().getDiagramPreferencesHint());
+ viewDescriptors.add(descriptor);
+ }
+
+ boolean changed = deleteViews(orphaned.iterator());
+ //
+ CreateViewRequest request = getCreateViewRequest(viewDescriptors);
+ Command cmd = getCreateViewCommand(request);
+ if (cmd != null && cmd.canExecute()) {
+ SetViewMutabilityCommand.makeMutable(
+ new EObjectAdapter(host().getNotationView())).execute();
+ executeCommand(cmd);
+ @SuppressWarnings("unchecked")
+ List<IAdaptable> nl = (List<IAdaptable>) request.getNewObject();
+ createdViews.addAll(nl);
+ }
+ if (changed || createdViews.size() > 0) {
+ postProcessRefreshSemantic(createdViews);
+ }
+ if (createdViews.size() > 1) {
+ // perform a layout of the container
+ DeferredLayoutCommand layoutCmd = new DeferredLayoutCommand(host()
+ .getEditingDomain(), createdViews, host());
+ executeCommand(new ICommandProxy(layoutCmd));
+ }
+
+ makeViewsImmutable(createdViews);
+ }
+}
diff --git a/org.eclipse.emf.refactor.comrel.diagram/src/comrel/diagram/edit/policies/ParallelQueuedUnitParallelQueuedUnitHelperUnitsCompartment2ItemSemanticEditPolicy.java b/org.eclipse.emf.refactor.comrel.diagram/src/comrel/diagram/edit/policies/ParallelQueuedUnitParallelQueuedUnitHelperUnitsCompartment2ItemSemanticEditPolicy.java
new file mode 100644
index 0000000..a2e4df7
--- /dev/null
+++ b/org.eclipse.emf.refactor.comrel.diagram/src/comrel/diagram/edit/policies/ParallelQueuedUnitParallelQueuedUnitHelperUnitsCompartment2ItemSemanticEditPolicy.java
@@ -0,0 +1,47 @@
+/*
+ *
+ */
+package comrel.diagram.edit.policies;
+
+import org.eclipse.gef.commands.Command;
+import org.eclipse.gmf.runtime.emf.type.core.requests.CreateElementRequest;
+
+import comrel.diagram.edit.commands.MultiFeatureUnit2CreateCommand;
+import comrel.diagram.edit.commands.MultiFilterUnit2CreateCommand;
+import comrel.diagram.edit.commands.SingleFeatureUnit2CreateCommand;
+import comrel.diagram.edit.commands.SingleFilterUnit2CreateCommand;
+import comrel.diagram.providers.ComrelElementTypes;
+
+/**
+ * @generated
+ */
+public class ParallelQueuedUnitParallelQueuedUnitHelperUnitsCompartment2ItemSemanticEditPolicy
+ extends ComrelBaseItemSemanticEditPolicy {
+
+ /**
+ * @generated
+ */
+ public ParallelQueuedUnitParallelQueuedUnitHelperUnitsCompartment2ItemSemanticEditPolicy() {
+ super(ComrelElementTypes.ParallelQueuedUnit_3036);
+ }
+
+ /**
+ * @generated
+ */
+ protected Command getCreateCommand(CreateElementRequest req) {
+ if (ComrelElementTypes.SingleFeatureUnit_3038 == req.getElementType()) {
+ return getGEFWrapper(new SingleFeatureUnit2CreateCommand(req));
+ }
+ if (ComrelElementTypes.MultiFeatureUnit_3039 == req.getElementType()) {
+ return getGEFWrapper(new MultiFeatureUnit2CreateCommand(req));
+ }
+ if (ComrelElementTypes.SingleFilterUnit_3040 == req.getElementType()) {
+ return getGEFWrapper(new SingleFilterUnit2CreateCommand(req));
+ }
+ if (ComrelElementTypes.MultiFilterUnit_3041 == req.getElementType()) {
+ return getGEFWrapper(new MultiFilterUnit2CreateCommand(req));
+ }
+ return super.getCreateCommand(req);
+ }
+
+}
diff --git a/org.eclipse.emf.refactor.comrel.diagram/src/comrel/diagram/edit/policies/ParallelQueuedUnitParallelQueuedUnitHelperUnitsCompartment3CanonicalEditPolicy.java b/org.eclipse.emf.refactor.comrel.diagram/src/comrel/diagram/edit/policies/ParallelQueuedUnitParallelQueuedUnitHelperUnitsCompartment3CanonicalEditPolicy.java
new file mode 100644
index 0000000..a1994bf
--- /dev/null
+++ b/org.eclipse.emf.refactor.comrel.diagram/src/comrel/diagram/edit/policies/ParallelQueuedUnitParallelQueuedUnitHelperUnitsCompartment3CanonicalEditPolicy.java
@@ -0,0 +1,173 @@
+/*
+ *
+ */
+package comrel.diagram.edit.policies;
+
+import java.util.ArrayList;
+import java.util.Collection;
+import java.util.Iterator;
+import java.util.LinkedList;
+import java.util.List;
+
+import org.eclipse.core.runtime.IAdaptable;
+import org.eclipse.emf.ecore.EObject;
+import org.eclipse.emf.ecore.EStructuralFeature;
+import org.eclipse.gef.commands.Command;
+import org.eclipse.gmf.runtime.diagram.core.util.ViewUtil;
+import org.eclipse.gmf.runtime.diagram.ui.commands.DeferredLayoutCommand;
+import org.eclipse.gmf.runtime.diagram.ui.commands.ICommandProxy;
+import org.eclipse.gmf.runtime.diagram.ui.commands.SetViewMutabilityCommand;
+import org.eclipse.gmf.runtime.diagram.ui.editpolicies.CanonicalEditPolicy;
+import org.eclipse.gmf.runtime.diagram.ui.requests.CreateViewRequest;
+import org.eclipse.gmf.runtime.emf.core.util.EObjectAdapter;
+import org.eclipse.gmf.runtime.notation.Node;
+import org.eclipse.gmf.runtime.notation.View;
+
+import comrel.ComrelPackage;
+import comrel.diagram.edit.parts.MultiFeatureUnit2EditPart;
+import comrel.diagram.edit.parts.MultiFilterUnit2EditPart;
+import comrel.diagram.edit.parts.SingleFeatureUnit2EditPart;
+import comrel.diagram.edit.parts.SingleFilterUnit2EditPart;
+import comrel.diagram.part.ComrelDiagramUpdater;
+import comrel.diagram.part.ComrelNodeDescriptor;
+import comrel.diagram.part.ComrelVisualIDRegistry;
+
+/**
+ * @generated
+ */
+public class ParallelQueuedUnitParallelQueuedUnitHelperUnitsCompartment3CanonicalEditPolicy
+ extends CanonicalEditPolicy {
+
+ /**
+ * @generated
+ */
+ protected EStructuralFeature getFeatureToSynchronize() {
+ return ComrelPackage.eINSTANCE.getParallelQueuedUnit_HelperUnits();
+ }
+
+ /**
+ * @generated
+ */
+ @SuppressWarnings("rawtypes")
+ protected List getSemanticChildrenList() {
+ View viewObject = (View) getHost().getModel();
+ LinkedList<EObject> result = new LinkedList<EObject>();
+ List<ComrelNodeDescriptor> childDescriptors = ComrelDiagramUpdater
+ .getParallelQueuedUnitParallelQueuedUnitHelperUnitsCompartment_7025SemanticChildren(viewObject);
+ for (ComrelNodeDescriptor d : childDescriptors) {
+ result.add(d.getModelElement());
+ }
+ return result;
+ }
+
+ /**
+ * @generated
+ */
+ protected boolean isOrphaned(Collection<EObject> semanticChildren,
+ final View view) {
+ return isMyDiagramElement(view)
+ && !semanticChildren.contains(view.getElement());
+ }
+
+ /**
+ * @generated
+ */
+ private boolean isMyDiagramElement(View view) {
+ int visualID = ComrelVisualIDRegistry.getVisualID(view);
+ switch (visualID) {
+ case SingleFeatureUnit2EditPart.VISUAL_ID:
+ case MultiFeatureUnit2EditPart.VISUAL_ID:
+ case SingleFilterUnit2EditPart.VISUAL_ID:
+ case MultiFilterUnit2EditPart.VISUAL_ID:
+ return true;
+ }
+ return false;
+ }
+
+ /**
+ * @generated
+ */
+ protected void refreshSemantic() {
+ if (resolveSemanticElement() == null) {
+ return;
+ }
+ LinkedList<IAdaptable> createdViews = new LinkedList<IAdaptable>();
+ List<ComrelNodeDescriptor> childDescriptors = ComrelDiagramUpdater
+ .getParallelQueuedUnitParallelQueuedUnitHelperUnitsCompartment_7025SemanticChildren((View) getHost()
+ .getModel());
+ LinkedList<View> orphaned = new LinkedList<View>();
+ // we care to check only views we recognize as ours
+ LinkedList<View> knownViewChildren = new LinkedList<View>();
+ for (View v : getViewChildren()) {
+ if (isMyDiagramElement(v)) {
+ knownViewChildren.add(v);
+ }
+ }
+ // alternative to #cleanCanonicalSemanticChildren(getViewChildren(), semanticChildren)
+ //
+ // iteration happens over list of desired semantic elements, trying to find best matching View, while original CEP
+ // iterates views, potentially losing view (size/bounds) information - i.e. if there are few views to reference same EObject, only last one
+ // to answer isOrphaned == true will be used for the domain element representation, see #cleanCanonicalSemanticChildren()
+ for (Iterator<ComrelNodeDescriptor> descriptorsIterator = childDescriptors
+ .iterator(); descriptorsIterator.hasNext();) {
+ ComrelNodeDescriptor next = descriptorsIterator.next();
+ String hint = ComrelVisualIDRegistry.getType(next.getVisualID());
+ LinkedList<View> perfectMatch = new LinkedList<View>(); // both semanticElement and hint match that of NodeDescriptor
+ for (View childView : getViewChildren()) {
+ EObject semanticElement = childView.getElement();
+ if (next.getModelElement().equals(semanticElement)) {
+ if (hint.equals(childView.getType())) {
+ perfectMatch.add(childView);
+ // actually, can stop iteration over view children here, but
+ // may want to use not the first view but last one as a 'real' match (the way original CEP does
+ // with its trick with viewToSemanticMap inside #cleanCanonicalSemanticChildren
+ }
+ }
+ }
+ if (perfectMatch.size() > 0) {
+ descriptorsIterator.remove(); // precise match found no need to create anything for the NodeDescriptor
+ // use only one view (first or last?), keep rest as orphaned for further consideration
+ knownViewChildren.remove(perfectMatch.getFirst());
+ }
+ }
+ // those left in knownViewChildren are subject to removal - they are our diagram elements we didn't find match to,
+ // or those we have potential matches to, and thus need to be recreated, preserving size/location information.
+ orphaned.addAll(knownViewChildren);
+ //
+ ArrayList<CreateViewRequest.ViewDescriptor> viewDescriptors = new ArrayList<CreateViewRequest.ViewDescriptor>(
+ childDescriptors.size());
+ for (ComrelNodeDescriptor next : childDescriptors) {
+ String hint = ComrelVisualIDRegistry.getType(next.getVisualID());
+ IAdaptable elementAdapter = new CanonicalElementAdapter(
+ next.getModelElement(), hint);
+ CreateViewRequest.ViewDescriptor descriptor = new CreateViewRequest.ViewDescriptor(
+ elementAdapter, Node.class, hint, ViewUtil.APPEND, false,
+ host().getDiagramPreferencesHint());
+ viewDescriptors.add(descriptor);
+ }
+
+ boolean changed = deleteViews(orphaned.iterator());
+ //
+ CreateViewRequest request = getCreateViewRequest(viewDescriptors);
+ Command cmd = getCreateViewCommand(request);
+ if (cmd != null && cmd.canExecute()) {
+ SetViewMutabilityCommand.makeMutable(
+ new EObjectAdapter(host().getNotationView())).execute();
+ executeCommand(cmd);
+ @SuppressWarnings("unchecked")
+ List<IAdaptable> nl = (List<IAdaptable>) request.getNewObject();
+ createdViews.addAll(nl);
+ }
+ if (changed || createdViews.size() > 0) {
+ postProcessRefreshSemantic(createdViews);
+ }
+ if (createdViews.size() > 1) {
+ // perform a layout of the container
+ DeferredLayoutCommand layoutCmd = new DeferredLayoutCommand(host()
+ .getEditingDomain(), createdViews, host());
+ executeCommand(new ICommandProxy(layoutCmd));
+ }
+
+ makeViewsImmutable(createdViews);
+ }
+}
diff --git a/org.eclipse.emf.refactor.comrel.diagram/src/comrel/diagram/edit/policies/ParallelQueuedUnitParallelQueuedUnitHelperUnitsCompartment3ItemSemanticEditPolicy.java b/org.eclipse.emf.refactor.comrel.diagram/src/comrel/diagram/edit/policies/ParallelQueuedUnitParallelQueuedUnitHelperUnitsCompartment3ItemSemanticEditPolicy.java
new file mode 100644
index 0000000..46103ad
--- /dev/null
+++ b/org.eclipse.emf.refactor.comrel.diagram/src/comrel/diagram/edit/policies/ParallelQueuedUnitParallelQueuedUnitHelperUnitsCompartment3ItemSemanticEditPolicy.java
@@ -0,0 +1,47 @@
+/*
+ *
+ */
+package comrel.diagram.edit.policies;
+
+import org.eclipse.gef.commands.Command;
+import org.eclipse.gmf.runtime.emf.type.core.requests.CreateElementRequest;
+
+import comrel.diagram.edit.commands.MultiFeatureUnit2CreateCommand;
+import comrel.diagram.edit.commands.MultiFilterUnit2CreateCommand;
+import comrel.diagram.edit.commands.SingleFeatureUnit2CreateCommand;
+import comrel.diagram.edit.commands.SingleFilterUnit2CreateCommand;
+import comrel.diagram.providers.ComrelElementTypes;
+
+/**
+ * @generated
+ */
+public class ParallelQueuedUnitParallelQueuedUnitHelperUnitsCompartment3ItemSemanticEditPolicy
+ extends ComrelBaseItemSemanticEditPolicy {
+
+ /**
+ * @generated
+ */
+ public ParallelQueuedUnitParallelQueuedUnitHelperUnitsCompartment3ItemSemanticEditPolicy() {
+ super(ComrelElementTypes.ParallelQueuedUnit_3037);
+ }
+
+ /**
+ * @generated
+ */
+ protected Command getCreateCommand(CreateElementRequest req) {
+ if (ComrelElementTypes.SingleFeatureUnit_3038 == req.getElementType()) {
+ return getGEFWrapper(new SingleFeatureUnit2CreateCommand(req));
+ }
+ if (ComrelElementTypes.MultiFeatureUnit_3039 == req.getElementType()) {
+ return getGEFWrapper(new MultiFeatureUnit2CreateCommand(req));
+ }
+ if (ComrelElementTypes.SingleFilterUnit_3040 == req.getElementType()) {
+ return getGEFWrapper(new SingleFilterUnit2CreateCommand(req));
+ }
+ if (ComrelElementTypes.MultiFilterUnit_3041 == req.getElementType()) {
+ return getGEFWrapper(new MultiFilterUnit2CreateCommand(req));
+ }
+ return super.getCreateCommand(req);
+ }
+
+}
diff --git a/org.eclipse.emf.refactor.comrel.diagram/src/comrel/diagram/edit/policies/ParallelQueuedUnitParallelQueuedUnitHelperUnitsCompartment4CanonicalEditPolicy.java b/org.eclipse.emf.refactor.comrel.diagram/src/comrel/diagram/edit/policies/ParallelQueuedUnitParallelQueuedUnitHelperUnitsCompartment4CanonicalEditPolicy.java
new file mode 100644
index 0000000..ed1f9c8
--- /dev/null
+++ b/org.eclipse.emf.refactor.comrel.diagram/src/comrel/diagram/edit/policies/ParallelQueuedUnitParallelQueuedUnitHelperUnitsCompartment4CanonicalEditPolicy.java
@@ -0,0 +1,173 @@
+/*
+ *
+ */
+package comrel.diagram.edit.policies;
+
+import java.util.ArrayList;
+import java.util.Collection;
+import java.util.Iterator;
+import java.util.LinkedList;
+import java.util.List;
+
+import org.eclipse.core.runtime.IAdaptable;
+import org.eclipse.emf.ecore.EObject;
+import org.eclipse.emf.ecore.EStructuralFeature;
+import org.eclipse.gef.commands.Command;
+import org.eclipse.gmf.runtime.diagram.core.util.ViewUtil;
+import org.eclipse.gmf.runtime.diagram.ui.commands.DeferredLayoutCommand;
+import org.eclipse.gmf.runtime.diagram.ui.commands.ICommandProxy;
+import org.eclipse.gmf.runtime.diagram.ui.commands.SetViewMutabilityCommand;
+import org.eclipse.gmf.runtime.diagram.ui.editpolicies.CanonicalEditPolicy;
+import org.eclipse.gmf.runtime.diagram.ui.requests.CreateViewRequest;
+import org.eclipse.gmf.runtime.emf.core.util.EObjectAdapter;
+import org.eclipse.gmf.runtime.notation.Node;
+import org.eclipse.gmf.runtime.notation.View;
+
+import comrel.ComrelPackage;
+import comrel.diagram.edit.parts.MultiFeatureUnit2EditPart;
+import comrel.diagram.edit.parts.MultiFilterUnit2EditPart;
+import comrel.diagram.edit.parts.SingleFeatureUnit2EditPart;
+import comrel.diagram.edit.parts.SingleFilterUnit2EditPart;
+import comrel.diagram.part.ComrelDiagramUpdater;
+import comrel.diagram.part.ComrelNodeDescriptor;
+import comrel.diagram.part.ComrelVisualIDRegistry;
+
+/**
+ * @generated
+ */
+public class ParallelQueuedUnitParallelQueuedUnitHelperUnitsCompartment4CanonicalEditPolicy
+ extends CanonicalEditPolicy {
+
+ /**
+ * @generated
+ */
+ protected EStructuralFeature getFeatureToSynchronize() {
+ return ComrelPackage.eINSTANCE.getParallelQueuedUnit_HelperUnits();
+ }
+
+ /**
+ * @generated
+ */
+ @SuppressWarnings("rawtypes")
+ protected List getSemanticChildrenList() {
+ View viewObject = (View) getHost().getModel();
+ LinkedList<EObject> result = new LinkedList<EObject>();
+ List<ComrelNodeDescriptor> childDescriptors = ComrelDiagramUpdater
+ .getParallelQueuedUnitParallelQueuedUnitHelperUnitsCompartment_7029SemanticChildren(viewObject);
+ for (ComrelNodeDescriptor d : childDescriptors) {
+ result.add(d.getModelElement());
+ }
+ return result;
+ }
+
+ /**
+ * @generated
+ */
+ protected boolean isOrphaned(Collection<EObject> semanticChildren,
+ final View view) {
+ return isMyDiagramElement(view)
+ && !semanticChildren.contains(view.getElement());
+ }
+
+ /**
+ * @generated
+ */
+ private boolean isMyDiagramElement(View view) {
+ int visualID = ComrelVisualIDRegistry.getVisualID(view);
+ switch (visualID) {
+ case SingleFeatureUnit2EditPart.VISUAL_ID:
+ case MultiFeatureUnit2EditPart.VISUAL_ID:
+ case SingleFilterUnit2EditPart.VISUAL_ID:
+ case MultiFilterUnit2EditPart.VISUAL_ID:
+ return true;
+ }
+ return false;
+ }
+
+ /**
+ * @generated
+ */
+ protected void refreshSemantic() {
+ if (resolveSemanticElement() == null) {
+ return;
+ }
+ LinkedList<IAdaptable> createdViews = new LinkedList<IAdaptable>();
+ List<ComrelNodeDescriptor> childDescriptors = ComrelDiagramUpdater
+ .getParallelQueuedUnitParallelQueuedUnitHelperUnitsCompartment_7029SemanticChildren((View) getHost()
+ .getModel());
+ LinkedList<View> orphaned = new LinkedList<View>();
+ // we care to check only views we recognize as ours
+ LinkedList<View> knownViewChildren = new LinkedList<View>();
+ for (View v : getViewChildren()) {
+ if (isMyDiagramElement(v)) {
+ knownViewChildren.add(v);
+ }
+ }
+ // alternative to #cleanCanonicalSemanticChildren(getViewChildren(), semanticChildren)
+ //
+ // iteration happens over list of desired semantic elements, trying to find best matching View, while original CEP
+ // iterates views, potentially losing view (size/bounds) information - i.e. if there are few views to reference same EObject, only last one
+ // to answer isOrphaned == true will be used for the domain element representation, see #cleanCanonicalSemanticChildren()
+ for (Iterator<ComrelNodeDescriptor> descriptorsIterator = childDescriptors
+ .iterator(); descriptorsIterator.hasNext();) {
+ ComrelNodeDescriptor next = descriptorsIterator.next();
+ String hint = ComrelVisualIDRegistry.getType(next.getVisualID());
+ LinkedList<View> perfectMatch = new LinkedList<View>(); // both semanticElement and hint match that of NodeDescriptor
+ for (View childView : getViewChildren()) {
+ EObject semanticElement = childView.getElement();
+ if (next.getModelElement().equals(semanticElement)) {
+ if (hint.equals(childView.getType())) {
+ perfectMatch.add(childView);
+ // actually, can stop iteration over view children here, but
+ // may want to use not the first view but last one as a 'real' match (the way original CEP does
+ // with its trick with viewToSemanticMap inside #cleanCanonicalSemanticChildren
+ }
+ }
+ }
+ if (perfectMatch.size() > 0) {
+ descriptorsIterator.remove(); // precise match found no need to create anything for the NodeDescriptor
+ // use only one view (first or last?), keep rest as orphaned for further consideration
+ knownViewChildren.remove(perfectMatch.getFirst());
+ }
+ }
+ // those left in knownViewChildren are subject to removal - they are our diagram elements we didn't find match to,
+ // or those we have potential matches to, and thus need to be recreated, preserving size/location information.
+ orphaned.addAll(knownViewChildren);
+ //
+ ArrayList<CreateViewRequest.ViewDescriptor> viewDescriptors = new ArrayList<CreateViewRequest.ViewDescriptor>(
+ childDescriptors.size());
+ for (ComrelNodeDescriptor next : childDescriptors) {
+ String hint = ComrelVisualIDRegistry.getType(next.getVisualID());
+ IAdaptable elementAdapter = new CanonicalElementAdapter(
+ next.getModelElement(), hint);
+ CreateViewRequest.ViewDescriptor descriptor = new CreateViewRequest.ViewDescriptor(
+ elementAdapter, Node.class, hint, ViewUtil.APPEND, false,
+ host().getDiagramPreferencesHint());
+ viewDescriptors.add(descriptor);
+ }
+
+ boolean changed = deleteViews(orphaned.iterator());
+ //
+ CreateViewRequest request = getCreateViewRequest(viewDescriptors);
+ Command cmd = getCreateViewCommand(request);
+ if (cmd != null && cmd.canExecute()) {
+ SetViewMutabilityCommand.makeMutable(
+ new EObjectAdapter(host().getNotationView())).execute();
+ executeCommand(cmd);
+ @SuppressWarnings("unchecked")
+ List<IAdaptable> nl = (List<IAdaptable>) request.getNewObject();
+ createdViews.addAll(nl);
+ }
+ if (changed || createdViews.size() > 0) {
+ postProcessRefreshSemantic(createdViews);
+ }
+ if (createdViews.size() > 1) {
+ // perform a layout of the container
+ DeferredLayoutCommand layoutCmd = new DeferredLayoutCommand(host()
+ .getEditingDomain(), createdViews, host());
+ executeCommand(new ICommandProxy(layoutCmd));
+ }
+
+ makeViewsImmutable(createdViews);
+ }
+}
diff --git a/org.eclipse.emf.refactor.comrel.diagram/src/comrel/diagram/edit/policies/ParallelQueuedUnitParallelQueuedUnitHelperUnitsCompartment4ItemSemanticEditPolicy.java b/org.eclipse.emf.refactor.comrel.diagram/src/comrel/diagram/edit/policies/ParallelQueuedUnitParallelQueuedUnitHelperUnitsCompartment4ItemSemanticEditPolicy.java
new file mode 100644
index 0000000..37727a4
--- /dev/null
+++ b/org.eclipse.emf.refactor.comrel.diagram/src/comrel/diagram/edit/policies/ParallelQueuedUnitParallelQueuedUnitHelperUnitsCompartment4ItemSemanticEditPolicy.java
@@ -0,0 +1,47 @@
+/*
+ *
+ */
+package comrel.diagram.edit.policies;
+
+import org.eclipse.gef.commands.Command;
+import org.eclipse.gmf.runtime.emf.type.core.requests.CreateElementRequest;
+
+import comrel.diagram.edit.commands.MultiFeatureUnit2CreateCommand;
+import comrel.diagram.edit.commands.MultiFilterUnit2CreateCommand;
+import comrel.diagram.edit.commands.SingleFeatureUnit2CreateCommand;
+import comrel.diagram.edit.commands.SingleFilterUnit2CreateCommand;
+import comrel.diagram.providers.ComrelElementTypes;
+
+/**
+ * @generated
+ */
+public class ParallelQueuedUnitParallelQueuedUnitHelperUnitsCompartment4ItemSemanticEditPolicy
+ extends ComrelBaseItemSemanticEditPolicy {
+
+ /**
+ * @generated
+ */
+ public ParallelQueuedUnitParallelQueuedUnitHelperUnitsCompartment4ItemSemanticEditPolicy() {
+ super(ComrelElementTypes.ParallelQueuedUnit_3043);
+ }
+
+ /**
+ * @generated
+ */
+ protected Command getCreateCommand(CreateElementRequest req) {
+ if (ComrelElementTypes.SingleFeatureUnit_3038 == req.getElementType()) {
+ return getGEFWrapper(new SingleFeatureUnit2CreateCommand(req));
+ }
+ if (ComrelElementTypes.MultiFeatureUnit_3039 == req.getElementType()) {
+ return getGEFWrapper(new MultiFeatureUnit2CreateCommand(req));
+ }
+ if (ComrelElementTypes.SingleFilterUnit_3040 == req.getElementType()) {
+ return getGEFWrapper(new SingleFilterUnit2CreateCommand(req));
+ }
+ if (ComrelElementTypes.MultiFilterUnit_3041 == req.getElementType()) {
+ return getGEFWrapper(new MultiFilterUnit2CreateCommand(req));
+ }
+ return super.getCreateCommand(req);
+ }
+
+}
diff --git a/org.eclipse.emf.refactor.comrel.diagram/src/comrel/diagram/edit/policies/ParallelQueuedUnitParallelQueuedUnitHelperUnitsCompartment5CanonicalEditPolicy.java b/org.eclipse.emf.refactor.comrel.diagram/src/comrel/diagram/edit/policies/ParallelQueuedUnitParallelQueuedUnitHelperUnitsCompartment5CanonicalEditPolicy.java
new file mode 100644
index 0000000..5b80f6f
--- /dev/null
+++ b/org.eclipse.emf.refactor.comrel.diagram/src/comrel/diagram/edit/policies/ParallelQueuedUnitParallelQueuedUnitHelperUnitsCompartment5CanonicalEditPolicy.java
@@ -0,0 +1,173 @@
+/*
+ *
+ */
+package comrel.diagram.edit.policies;
+
+import java.util.ArrayList;
+import java.util.Collection;
+import java.util.Iterator;
+import java.util.LinkedList;
+import java.util.List;
+
+import org.eclipse.core.runtime.IAdaptable;
+import org.eclipse.emf.ecore.EObject;
+import org.eclipse.emf.ecore.EStructuralFeature;
+import org.eclipse.gef.commands.Command;
+import org.eclipse.gmf.runtime.diagram.core.util.ViewUtil;
+import org.eclipse.gmf.runtime.diagram.ui.commands.DeferredLayoutCommand;
+import org.eclipse.gmf.runtime.diagram.ui.commands.ICommandProxy;
+import org.eclipse.gmf.runtime.diagram.ui.commands.SetViewMutabilityCommand;
+import org.eclipse.gmf.runtime.diagram.ui.editpolicies.CanonicalEditPolicy;
+import org.eclipse.gmf.runtime.diagram.ui.requests.CreateViewRequest;
+import org.eclipse.gmf.runtime.emf.core.util.EObjectAdapter;
+import org.eclipse.gmf.runtime.notation.Node;
+import org.eclipse.gmf.runtime.notation.View;
+
+import comrel.ComrelPackage;
+import comrel.diagram.edit.parts.MultiFeatureUnit2EditPart;
+import comrel.diagram.edit.parts.MultiFilterUnit2EditPart;
+import comrel.diagram.edit.parts.SingleFeatureUnit2EditPart;
+import comrel.diagram.edit.parts.SingleFilterUnit2EditPart;
+import comrel.diagram.part.ComrelDiagramUpdater;
+import comrel.diagram.part.ComrelNodeDescriptor;
+import comrel.diagram.part.ComrelVisualIDRegistry;
+
+/**
+ * @generated
+ */
+public class ParallelQueuedUnitParallelQueuedUnitHelperUnitsCompartment5CanonicalEditPolicy
+ extends CanonicalEditPolicy {
+
+ /**
+ * @generated
+ */
+ protected EStructuralFeature getFeatureToSynchronize() {
+ return ComrelPackage.eINSTANCE.getParallelQueuedUnit_HelperUnits();
+ }
+
+ /**
+ * @generated
+ */
+ @SuppressWarnings("rawtypes")
+ protected List getSemanticChildrenList() {
+ View viewObject = (View) getHost().getModel();
+ LinkedList<EObject> result = new LinkedList<EObject>();
+ List<ComrelNodeDescriptor> childDescriptors = ComrelDiagramUpdater
+ .getParallelQueuedUnitParallelQueuedUnitHelperUnitsCompartment_7033SemanticChildren(viewObject);
+ for (ComrelNodeDescriptor d : childDescriptors) {
+ result.add(d.getModelElement());
+ }
+ return result;
+ }
+
+ /**
+ * @generated
+ */
+ protected boolean isOrphaned(Collection<EObject> semanticChildren,
+ final View view) {
+ return isMyDiagramElement(view)
+ && !semanticChildren.contains(view.getElement());
+ }
+
+ /**
+ * @generated
+ */
+ private boolean isMyDiagramElement(View view) {
+ int visualID = ComrelVisualIDRegistry.getVisualID(view);
+ switch (visualID) {
+ case SingleFeatureUnit2EditPart.VISUAL_ID:
+ case MultiFeatureUnit2EditPart.VISUAL_ID:
+ case SingleFilterUnit2EditPart.VISUAL_ID:
+ case MultiFilterUnit2EditPart.VISUAL_ID:
+ return true;
+ }
+ return false;
+ }
+
+ /**
+ * @generated
+ */
+ protected void refreshSemantic() {
+ if (resolveSemanticElement() == null) {
+ return;
+ }
+ LinkedList<IAdaptable> createdViews = new LinkedList<IAdaptable>();
+ List<ComrelNodeDescriptor> childDescriptors = ComrelDiagramUpdater
+ .getParallelQueuedUnitParallelQueuedUnitHelperUnitsCompartment_7033SemanticChildren((View) getHost()
+ .getModel());
+ LinkedList<View> orphaned = new LinkedList<View>();
+ // we care to check only views we recognize as ours
+ LinkedList<View> knownViewChildren = new LinkedList<View>();
+ for (View v : getViewChildren()) {
+ if (isMyDiagramElement(v)) {
+ knownViewChildren.add(v);
+ }
+ }
+ // alternative to #cleanCanonicalSemanticChildren(getViewChildren(), semanticChildren)
+ //
+ // iteration happens over list of desired semantic elements, trying to find best matching View, while original CEP
+ // iterates views, potentially losing view (size/bounds) information - i.e. if there are few views to reference same EObject, only last one
+ // to answer isOrphaned == true will be used for the domain element representation, see #cleanCanonicalSemanticChildren()
+ for (Iterator<ComrelNodeDescriptor> descriptorsIterator = childDescriptors
+ .iterator(); descriptorsIterator.hasNext();) {
+ ComrelNodeDescriptor next = descriptorsIterator.next();
+ String hint = ComrelVisualIDRegistry.getType(next.getVisualID());
+ LinkedList<View> perfectMatch = new LinkedList<View>(); // both semanticElement and hint match that of NodeDescriptor
+ for (View childView : getViewChildren()) {
+ EObject semanticElement = childView.getElement();
+ if (next.getModelElement().equals(semanticElement)) {
+ if (hint.equals(childView.getType())) {
+ perfectMatch.add(childView);
+ // actually, can stop iteration over view children here, but
+ // may want to use not the first view but last one as a 'real' match (the way original CEP does
+ // with its trick with viewToSemanticMap inside #cleanCanonicalSemanticChildren
+ }
+ }
+ }
+ if (perfectMatch.size() > 0) {
+ descriptorsIterator.remove(); // precise match found no need to create anything for the NodeDescriptor
+ // use only one view (first or last?), keep rest as orphaned for further consideration
+ knownViewChildren.remove(perfectMatch.getFirst());
+ }
+ }
+ // those left in knownViewChildren are subject to removal - they are our diagram elements we didn't find match to,
+ // or those we have potential matches to, and thus need to be recreated, preserving size/location information.
+ orphaned.addAll(knownViewChildren);
+ //
+ ArrayList<CreateViewRequest.ViewDescriptor> viewDescriptors = new ArrayList<CreateViewRequest.ViewDescriptor>(
+ childDescriptors.size());
+ for (ComrelNodeDescriptor next : childDescriptors) {
+ String hint = ComrelVisualIDRegistry.getType(next.getVisualID());
+ IAdaptable elementAdapter = new CanonicalElementAdapter(
+ next.getModelElement(), hint);
+ CreateViewRequest.ViewDescriptor descriptor = new CreateViewRequest.ViewDescriptor(
+ elementAdapter, Node.class, hint, ViewUtil.APPEND, false,
+ host().getDiagramPreferencesHint());
+ viewDescriptors.add(descriptor);
+ }
+
+ boolean changed = deleteViews(orphaned.iterator());
+ //
+ CreateViewRequest request = getCreateViewRequest(viewDescriptors);
+ Command cmd = getCreateViewCommand(request);
+ if (cmd != null && cmd.canExecute()) {
+ SetViewMutabilityCommand.makeMutable(
+ new EObjectAdapter(host().getNotationView())).execute();
+ executeCommand(cmd);
+ @SuppressWarnings("unchecked")
+ List<IAdaptable> nl = (List<IAdaptable>) request.getNewObject();
+ createdViews.addAll(nl);
+ }
+ if (changed || createdViews.size() > 0) {
+ postProcessRefreshSemantic(createdViews);
+ }
+ if (createdViews.size() > 1) {
+ // perform a layout of the container
+ DeferredLayoutCommand layoutCmd = new DeferredLayoutCommand(host()
+ .getEditingDomain(), createdViews, host());
+ executeCommand(new ICommandProxy(layoutCmd));
+ }
+
+ makeViewsImmutable(createdViews);
+ }
+}
diff --git a/org.eclipse.emf.refactor.comrel.diagram/src/comrel/diagram/edit/policies/ParallelQueuedUnitParallelQueuedUnitHelperUnitsCompartment5ItemSemanticEditPolicy.java b/org.eclipse.emf.refactor.comrel.diagram/src/comrel/diagram/edit/policies/ParallelQueuedUnitParallelQueuedUnitHelperUnitsCompartment5ItemSemanticEditPolicy.java
new file mode 100644
index 0000000..69d6aac
--- /dev/null
+++ b/org.eclipse.emf.refactor.comrel.diagram/src/comrel/diagram/edit/policies/ParallelQueuedUnitParallelQueuedUnitHelperUnitsCompartment5ItemSemanticEditPolicy.java
@@ -0,0 +1,47 @@
+/*
+ *
+ */
+package comrel.diagram.edit.policies;
+
+import org.eclipse.gef.commands.Command;
+import org.eclipse.gmf.runtime.emf.type.core.requests.CreateElementRequest;
+
+import comrel.diagram.edit.commands.MultiFeatureUnit2CreateCommand;
+import comrel.diagram.edit.commands.MultiFilterUnit2CreateCommand;
+import comrel.diagram.edit.commands.SingleFeatureUnit2CreateCommand;
+import comrel.diagram.edit.commands.SingleFilterUnit2CreateCommand;
+import comrel.diagram.providers.ComrelElementTypes;
+
+/**
+ * @generated
+ */
+public class ParallelQueuedUnitParallelQueuedUnitHelperUnitsCompartment5ItemSemanticEditPolicy
+ extends ComrelBaseItemSemanticEditPolicy {
+
+ /**
+ * @generated
+ */
+ public ParallelQueuedUnitParallelQueuedUnitHelperUnitsCompartment5ItemSemanticEditPolicy() {
+ super(ComrelElementTypes.ParallelQueuedUnit_3045);
+ }
+
+ /**
+ * @generated
+ */
+ protected Command getCreateCommand(CreateElementRequest req) {
+ if (ComrelElementTypes.SingleFeatureUnit_3038 == req.getElementType()) {
+ return getGEFWrapper(new SingleFeatureUnit2CreateCommand(req));
+ }
+ if (ComrelElementTypes.MultiFeatureUnit_3039 == req.getElementType()) {
+ return getGEFWrapper(new MultiFeatureUnit2CreateCommand(req));
+ }
+ if (ComrelElementTypes.SingleFilterUnit_3040 == req.getElementType()) {
+ return getGEFWrapper(new SingleFilterUnit2CreateCommand(req));
+ }
+ if (ComrelElementTypes.MultiFilterUnit_3041 == req.getElementType()) {
+ return getGEFWrapper(new MultiFilterUnit2CreateCommand(req));
+ }
+ return super.getCreateCommand(req);
+ }
+
+}
diff --git a/org.eclipse.emf.refactor.comrel.diagram/src/comrel/diagram/edit/policies/ParallelQueuedUnitParallelQueuedUnitHelperUnitsCompartment6CanonicalEditPolicy.java b/org.eclipse.emf.refactor.comrel.diagram/src/comrel/diagram/edit/policies/ParallelQueuedUnitParallelQueuedUnitHelperUnitsCompartment6CanonicalEditPolicy.java
new file mode 100644
index 0000000..eab2dd8
--- /dev/null
+++ b/org.eclipse.emf.refactor.comrel.diagram/src/comrel/diagram/edit/policies/ParallelQueuedUnitParallelQueuedUnitHelperUnitsCompartment6CanonicalEditPolicy.java
@@ -0,0 +1,173 @@
+/*
+ *
+ */
+package comrel.diagram.edit.policies;
+
+import java.util.ArrayList;
+import java.util.Collection;
+import java.util.Iterator;
+import java.util.LinkedList;
+import java.util.List;
+
+import org.eclipse.core.runtime.IAdaptable;
+import org.eclipse.emf.ecore.EObject;
+import org.eclipse.emf.ecore.EStructuralFeature;
+import org.eclipse.gef.commands.Command;
+import org.eclipse.gmf.runtime.diagram.core.util.ViewUtil;
+import org.eclipse.gmf.runtime.diagram.ui.commands.DeferredLayoutCommand;
+import org.eclipse.gmf.runtime.diagram.ui.commands.ICommandProxy;
+import org.eclipse.gmf.runtime.diagram.ui.commands.SetViewMutabilityCommand;
+import org.eclipse.gmf.runtime.diagram.ui.editpolicies.CanonicalEditPolicy;
+import org.eclipse.gmf.runtime.diagram.ui.requests.CreateViewRequest;
+import org.eclipse.gmf.runtime.emf.core.util.EObjectAdapter;
+import org.eclipse.gmf.runtime.notation.Node;
+import org.eclipse.gmf.runtime.notation.View;
+
+import comrel.ComrelPackage;
+import comrel.diagram.edit.parts.MultiFeatureUnit2EditPart;
+import comrel.diagram.edit.parts.MultiFilterUnit2EditPart;
+import comrel.diagram.edit.parts.SingleFeatureUnit2EditPart;
+import comrel.diagram.edit.parts.SingleFilterUnit2EditPart;
+import comrel.diagram.part.ComrelDiagramUpdater;
+import comrel.diagram.part.ComrelNodeDescriptor;
+import comrel.diagram.part.ComrelVisualIDRegistry;
+
+/**
+ * @generated
+ */
+public class ParallelQueuedUnitParallelQueuedUnitHelperUnitsCompartment6CanonicalEditPolicy
+ extends CanonicalEditPolicy {
+
+ /**
+ * @generated
+ */
+ protected EStructuralFeature getFeatureToSynchronize() {
+ return ComrelPackage.eINSTANCE.getParallelQueuedUnit_HelperUnits();
+ }
+
+ /**
+ * @generated
+ */
+ @SuppressWarnings("rawtypes")
+ protected List getSemanticChildrenList() {
+ View viewObject = (View) getHost().getModel();
+ LinkedList<EObject> result = new LinkedList<EObject>();
+ List<ComrelNodeDescriptor> childDescriptors = ComrelDiagramUpdater
+ .getParallelQueuedUnitParallelQueuedUnitHelperUnitsCompartment_7041SemanticChildren(viewObject);
+ for (ComrelNodeDescriptor d : childDescriptors) {
+ result.add(d.getModelElement());
+ }
+ return result;
+ }
+
+ /**
+ * @generated
+ */
+ protected boolean isOrphaned(Collection<EObject> semanticChildren,
+ final View view) {
+ return isMyDiagramElement(view)
+ && !semanticChildren.contains(view.getElement());
+ }
+
+ /**
+ * @generated
+ */
+ private boolean isMyDiagramElement(View view) {
+ int visualID = ComrelVisualIDRegistry.getVisualID(view);
+ switch (visualID) {
+ case SingleFeatureUnit2EditPart.VISUAL_ID:
+ case MultiFeatureUnit2EditPart.VISUAL_ID:
+ case SingleFilterUnit2EditPart.VISUAL_ID:
+ case MultiFilterUnit2EditPart.VISUAL_ID:
+ return true;
+ }
+ return false;
+ }
+
+ /**
+ * @generated
+ */
+ protected void refreshSemantic() {
+ if (resolveSemanticElement() == null) {
+ return;
+ }
+ LinkedList<IAdaptable> createdViews = new LinkedList<IAdaptable>();
+ List<ComrelNodeDescriptor> childDescriptors = ComrelDiagramUpdater
+ .getParallelQueuedUnitParallelQueuedUnitHelperUnitsCompartment_7041SemanticChildren((View) getHost()
+ .getModel());
+ LinkedList<View> orphaned = new LinkedList<View>();
+ // we care to check only views we recognize as ours
+ LinkedList<View> knownViewChildren = new LinkedList<View>();
+ for (View v : getViewChildren()) {
+ if (isMyDiagramElement(v)) {
+ knownViewChildren.add(v);
+ }
+ }
+ // alternative to #cleanCanonicalSemanticChildren(getViewChildren(), semanticChildren)
+ //
+ // iteration happens over list of desired semantic elements, trying to find best matching View, while original CEP
+ // iterates views, potentially losing view (size/bounds) information - i.e. if there are few views to reference same EObject, only last one
+ // to answer isOrphaned == true will be used for the domain element representation, see #cleanCanonicalSemanticChildren()
+ for (Iterator<ComrelNodeDescriptor> descriptorsIterator = childDescriptors
+ .iterator(); descriptorsIterator.hasNext();) {
+ ComrelNodeDescriptor next = descriptorsIterator.next();
+ String hint = ComrelVisualIDRegistry.getType(next.getVisualID());
+ LinkedList<View> perfectMatch = new LinkedList<View>(); // both semanticElement and hint match that of NodeDescriptor
+ for (View childView : getViewChildren()) {
+ EObject semanticElement = childView.getElement();
+ if (next.getModelElement().equals(semanticElement)) {
+ if (hint.equals(childView.getType())) {
+ perfectMatch.add(childView);
+ // actually, can stop iteration over view children here, but
+ // may want to use not the first view but last one as a 'real' match (the way original CEP does
+ // with its trick with viewToSemanticMap inside #cleanCanonicalSemanticChildren
+ }
+ }
+ }
+ if (perfectMatch.size() > 0) {
+ descriptorsIterator.remove(); // precise match found no need to create anything for the NodeDescriptor
+ // use only one view (first or last?), keep rest as orphaned for further consideration
+ knownViewChildren.remove(perfectMatch.getFirst());
+ }
+ }
+ // those left in knownViewChildren are subject to removal - they are our diagram elements we didn't find match to,
+ // or those we have potential matches to, and thus need to be recreated, preserving size/location information.
+ orphaned.addAll(knownViewChildren);
+ //
+ ArrayList<CreateViewRequest.ViewDescriptor> viewDescriptors = new ArrayList<CreateViewRequest.ViewDescriptor>(
+ childDescriptors.size());
+ for (ComrelNodeDescriptor next : childDescriptors) {
+ String hint = ComrelVisualIDRegistry.getType(next.getVisualID());
+ IAdaptable elementAdapter = new CanonicalElementAdapter(
+ next.getModelElement(), hint);
+ CreateViewRequest.ViewDescriptor descriptor = new CreateViewRequest.ViewDescriptor(
+ elementAdapter, Node.class, hint, ViewUtil.APPEND, false,
+ host().getDiagramPreferencesHint());
+ viewDescriptors.add(descriptor);
+ }
+
+ boolean changed = deleteViews(orphaned.iterator());
+ //
+ CreateViewRequest request = getCreateViewRequest(viewDescriptors);
+ Command cmd = getCreateViewCommand(request);
+ if (cmd != null && cmd.canExecute()) {
+ SetViewMutabilityCommand.makeMutable(
+ new EObjectAdapter(host().getNotationView())).execute();
+ executeCommand(cmd);
+ @SuppressWarnings("unchecked")
+ List<IAdaptable> nl = (List<IAdaptable>) request.getNewObject();
+ createdViews.addAll(nl);
+ }
+ if (changed || createdViews.size() > 0) {
+ postProcessRefreshSemantic(createdViews);
+ }
+ if (createdViews.size() > 1) {
+ // perform a layout of the container
+ DeferredLayoutCommand layoutCmd = new DeferredLayoutCommand(host()
+ .getEditingDomain(), createdViews, host());
+ executeCommand(new ICommandProxy(layoutCmd));
+ }
+
+ makeViewsImmutable(createdViews);
+ }
+}
diff --git a/org.eclipse.emf.refactor.comrel.diagram/src/comrel/diagram/edit/policies/ParallelQueuedUnitParallelQueuedUnitHelperUnitsCompartment6ItemSemanticEditPolicy.java b/org.eclipse.emf.refactor.comrel.diagram/src/comrel/diagram/edit/policies/ParallelQueuedUnitParallelQueuedUnitHelperUnitsCompartment6ItemSemanticEditPolicy.java
new file mode 100644
index 0000000..667407f
--- /dev/null
+++ b/org.eclipse.emf.refactor.comrel.diagram/src/comrel/diagram/edit/policies/ParallelQueuedUnitParallelQueuedUnitHelperUnitsCompartment6ItemSemanticEditPolicy.java
@@ -0,0 +1,47 @@
+/*
+ *
+ */
+package comrel.diagram.edit.policies;
+
+import org.eclipse.gef.commands.Command;
+import org.eclipse.gmf.runtime.emf.type.core.requests.CreateElementRequest;
+
+import comrel.diagram.edit.commands.MultiFeatureUnit2CreateCommand;
+import comrel.diagram.edit.commands.MultiFilterUnit2CreateCommand;
+import comrel.diagram.edit.commands.SingleFeatureUnit2CreateCommand;
+import comrel.diagram.edit.commands.SingleFilterUnit2CreateCommand;
+import comrel.diagram.providers.ComrelElementTypes;
+
+/**
+ * @generated
+ */
+public class ParallelQueuedUnitParallelQueuedUnitHelperUnitsCompartment6ItemSemanticEditPolicy
+ extends ComrelBaseItemSemanticEditPolicy {
+
+ /**
+ * @generated
+ */
+ public ParallelQueuedUnitParallelQueuedUnitHelperUnitsCompartment6ItemSemanticEditPolicy() {
+ super(ComrelElementTypes.ParallelQueuedUnit_3048);
+ }
+
+ /**
+ * @generated
+ */
+ protected Command getCreateCommand(CreateElementRequest req) {
+ if (ComrelElementTypes.SingleFeatureUnit_3038 == req.getElementType()) {
+ return getGEFWrapper(new SingleFeatureUnit2CreateCommand(req));
+ }
+ if (ComrelElementTypes.MultiFeatureUnit_3039 == req.getElementType()) {
+ return getGEFWrapper(new MultiFeatureUnit2CreateCommand(req));
+ }
+ if (ComrelElementTypes.SingleFilterUnit_3040 == req.getElementType()) {
+ return getGEFWrapper(new SingleFilterUnit2CreateCommand(req));
+ }
+ if (ComrelElementTypes.MultiFilterUnit_3041 == req.getElementType()) {
+ return getGEFWrapper(new MultiFilterUnit2CreateCommand(req));
+ }
+ return super.getCreateCommand(req);
+ }
+
+}
diff --git a/org.eclipse.emf.refactor.comrel.diagram/src/comrel/diagram/edit/policies/ParallelQueuedUnitParallelQueuedUnitHelperUnitsCompartment7CanonicalEditPolicy.java b/org.eclipse.emf.refactor.comrel.diagram/src/comrel/diagram/edit/policies/ParallelQueuedUnitParallelQueuedUnitHelperUnitsCompartment7CanonicalEditPolicy.java
new file mode 100644
index 0000000..5d2c0eb
--- /dev/null
+++ b/org.eclipse.emf.refactor.comrel.diagram/src/comrel/diagram/edit/policies/ParallelQueuedUnitParallelQueuedUnitHelperUnitsCompartment7CanonicalEditPolicy.java
@@ -0,0 +1,173 @@
+/*
+ *
+ */
+package comrel.diagram.edit.policies;
+
+import java.util.ArrayList;
+import java.util.Collection;
+import java.util.Iterator;
+import java.util.LinkedList;
+import java.util.List;
+
+import org.eclipse.core.runtime.IAdaptable;
+import org.eclipse.emf.ecore.EObject;
+import org.eclipse.emf.ecore.EStructuralFeature;
+import org.eclipse.gef.commands.Command;
+import org.eclipse.gmf.runtime.diagram.core.util.ViewUtil;
+import org.eclipse.gmf.runtime.diagram.ui.commands.DeferredLayoutCommand;
+import org.eclipse.gmf.runtime.diagram.ui.commands.ICommandProxy;
+import org.eclipse.gmf.runtime.diagram.ui.commands.SetViewMutabilityCommand;
+import org.eclipse.gmf.runtime.diagram.ui.editpolicies.CanonicalEditPolicy;
+import org.eclipse.gmf.runtime.diagram.ui.requests.CreateViewRequest;
+import org.eclipse.gmf.runtime.emf.core.util.EObjectAdapter;
+import org.eclipse.gmf.runtime.notation.Node;
+import org.eclipse.gmf.runtime.notation.View;
+
+import comrel.ComrelPackage;
+import comrel.diagram.edit.parts.MultiFeatureUnit2EditPart;
+import comrel.diagram.edit.parts.MultiFilterUnit2EditPart;
+import comrel.diagram.edit.parts.SingleFeatureUnit2EditPart;
+import comrel.diagram.edit.parts.SingleFilterUnit2EditPart;
+import comrel.diagram.part.ComrelDiagramUpdater;
+import comrel.diagram.part.ComrelNodeDescriptor;
+import comrel.diagram.part.ComrelVisualIDRegistry;
+
+/**
+ * @generated
+ */
+public class ParallelQueuedUnitParallelQueuedUnitHelperUnitsCompartment7CanonicalEditPolicy
+ extends CanonicalEditPolicy {
+
+ /**
+ * @generated
+ */
+ protected EStructuralFeature getFeatureToSynchronize() {
+ return ComrelPackage.eINSTANCE.getParallelQueuedUnit_HelperUnits();
+ }
+
+ /**
+ * @generated
+ */
+ @SuppressWarnings("rawtypes")
+ protected List getSemanticChildrenList() {
+ View viewObject = (View) getHost().getModel();
+ LinkedList<EObject> result = new LinkedList<EObject>();
+ List<ComrelNodeDescriptor> childDescriptors = ComrelDiagramUpdater
+ .getParallelQueuedUnitParallelQueuedUnitHelperUnitsCompartment_7075SemanticChildren(viewObject);
+ for (ComrelNodeDescriptor d : childDescriptors) {
+ result.add(d.getModelElement());
+ }
+ return result;
+ }
+
+ /**
+ * @generated
+ */
+ protected boolean isOrphaned(Collection<EObject> semanticChildren,
+ final View view) {
+ return isMyDiagramElement(view)
+ && !semanticChildren.contains(view.getElement());
+ }
+
+ /**
+ * @generated
+ */
+ private boolean isMyDiagramElement(View view) {
+ int visualID = ComrelVisualIDRegistry.getVisualID(view);
+ switch (visualID) {
+ case SingleFeatureUnit2EditPart.VISUAL_ID:
+ case MultiFeatureUnit2EditPart.VISUAL_ID:
+ case SingleFilterUnit2EditPart.VISUAL_ID:
+ case MultiFilterUnit2EditPart.VISUAL_ID:
+ return true;
+ }
+ return false;
+ }
+
+ /**
+ * @generated
+ */
+ protected void refreshSemantic() {
+ if (resolveSemanticElement() == null) {
+ return;
+ }
+ LinkedList<IAdaptable> createdViews = new LinkedList<IAdaptable>();
+ List<ComrelNodeDescriptor> childDescriptors = ComrelDiagramUpdater
+ .getParallelQueuedUnitParallelQueuedUnitHelperUnitsCompartment_7075SemanticChildren((View) getHost()
+ .getModel());
+ LinkedList<View> orphaned = new LinkedList<View>();
+ // we care to check only views we recognize as ours
+ LinkedList<View> knownViewChildren = new LinkedList<View>();
+ for (View v : getViewChildren()) {
+ if (isMyDiagramElement(v)) {
+ knownViewChildren.add(v);
+ }
+ }
+ // alternative to #cleanCanonicalSemanticChildren(getViewChildren(), semanticChildren)
+ //
+ // iteration happens over list of desired semantic elements, trying to find best matching View, while original CEP
+ // iterates views, potentially losing view (size/bounds) information - i.e. if there are few views to reference same EObject, only last one
+ // to answer isOrphaned == true will be used for the domain element representation, see #cleanCanonicalSemanticChildren()
+ for (Iterator<ComrelNodeDescriptor> descriptorsIterator = childDescriptors
+ .iterator(); descriptorsIterator.hasNext();) {
+ ComrelNodeDescriptor next = descriptorsIterator.next();
+ String hint = ComrelVisualIDRegistry.getType(next.getVisualID());
+ LinkedList<View> perfectMatch = new LinkedList<View>(); // both semanticElement and hint match that of NodeDescriptor
+ for (View childView : getViewChildren()) {
+ EObject semanticElement = childView.getElement();
+ if (next.getModelElement().equals(semanticElement)) {
+ if (hint.equals(childView.getType())) {
+ perfectMatch.add(childView);
+ // actually, can stop iteration over view children here, but
+ // may want to use not the first view but last one as a 'real' match (the way original CEP does
+ // with its trick with viewToSemanticMap inside #cleanCanonicalSemanticChildren
+ }
+ }
+ }
+ if (perfectMatch.size() > 0) {
+ descriptorsIterator.remove(); // precise match found no need to create anything for the NodeDescriptor
+ // use only one view (first or last?), keep rest as orphaned for further consideration
+ knownViewChildren.remove(perfectMatch.getFirst());
+ }
+ }
+ // those left in knownViewChildren are subject to removal - they are our diagram elements we didn't find match to,
+ // or those we have potential matches to, and thus need to be recreated, preserving size/location information.
+ orphaned.addAll(knownViewChildren);
+ //
+ ArrayList<CreateViewRequest.ViewDescriptor> viewDescriptors = new ArrayList<CreateViewRequest.ViewDescriptor>(
+ childDescriptors.size());
+ for (ComrelNodeDescriptor next : childDescriptors) {
+ String hint = ComrelVisualIDRegistry.getType(next.getVisualID());
+ IAdaptable elementAdapter = new CanonicalElementAdapter(
+ next.getModelElement(), hint);
+ CreateViewRequest.ViewDescriptor descriptor = new CreateViewRequest.ViewDescriptor(
+ elementAdapter, Node.class, hint, ViewUtil.APPEND, false,
+ host().getDiagramPreferencesHint());
+ viewDescriptors.add(descriptor);
+ }
+
+ boolean changed = deleteViews(orphaned.iterator());
+ //
+ CreateViewRequest request = getCreateViewRequest(viewDescriptors);
+ Command cmd = getCreateViewCommand(request);
+ if (cmd != null && cmd.canExecute()) {
+ SetViewMutabilityCommand.makeMutable(
+ new EObjectAdapter(host().getNotationView())).execute();
+ executeCommand(cmd);
+ @SuppressWarnings("unchecked")
+ List<IAdaptable> nl = (List<IAdaptable>) request.getNewObject();
+ createdViews.addAll(nl);
+ }
+ if (changed || createdViews.size() > 0) {
+ postProcessRefreshSemantic(createdViews);
+ }
+ if (createdViews.size() > 1) {
+ // perform a layout of the container
+ DeferredLayoutCommand layoutCmd = new DeferredLayoutCommand(host()
+ .getEditingDomain(), createdViews, host());
+ executeCommand(new ICommandProxy(layoutCmd));
+ }
+
+ makeViewsImmutable(createdViews);
+ }
+}
diff --git a/org.eclipse.emf.refactor.comrel.diagram/src/comrel/diagram/edit/policies/ParallelQueuedUnitParallelQueuedUnitHelperUnitsCompartment7ItemSemanticEditPolicy.java b/org.eclipse.emf.refactor.comrel.diagram/src/comrel/diagram/edit/policies/ParallelQueuedUnitParallelQueuedUnitHelperUnitsCompartment7ItemSemanticEditPolicy.java
new file mode 100644
index 0000000..ade6088
--- /dev/null
+++ b/org.eclipse.emf.refactor.comrel.diagram/src/comrel/diagram/edit/policies/ParallelQueuedUnitParallelQueuedUnitHelperUnitsCompartment7ItemSemanticEditPolicy.java
@@ -0,0 +1,47 @@
+/*
+ *
+ */
+package comrel.diagram.edit.policies;
+
+import org.eclipse.gef.commands.Command;
+import org.eclipse.gmf.runtime.emf.type.core.requests.CreateElementRequest;
+
+import comrel.diagram.edit.commands.MultiFeatureUnit2CreateCommand;
+import comrel.diagram.edit.commands.MultiFilterUnit2CreateCommand;
+import comrel.diagram.edit.commands.SingleFeatureUnit2CreateCommand;
+import comrel.diagram.edit.commands.SingleFilterUnit2CreateCommand;
+import comrel.diagram.providers.ComrelElementTypes;
+
+/**
+ * @generated
+ */
+public class ParallelQueuedUnitParallelQueuedUnitHelperUnitsCompartment7ItemSemanticEditPolicy
+ extends ComrelBaseItemSemanticEditPolicy {
+
+ /**
+ * @generated
+ */
+ public ParallelQueuedUnitParallelQueuedUnitHelperUnitsCompartment7ItemSemanticEditPolicy() {
+ super(ComrelElementTypes.ParallelQueuedUnit_2003);
+ }
+
+ /**
+ * @generated
+ */
+ protected Command getCreateCommand(CreateElementRequest req) {
+ if (ComrelElementTypes.SingleFeatureUnit_3038 == req.getElementType()) {
+ return getGEFWrapper(new SingleFeatureUnit2CreateCommand(req));
+ }
+ if (ComrelElementTypes.MultiFeatureUnit_3039 == req.getElementType()) {
+ return getGEFWrapper(new MultiFeatureUnit2CreateCommand(req));
+ }
+ if (ComrelElementTypes.SingleFilterUnit_3040 == req.getElementType()) {
+ return getGEFWrapper(new SingleFilterUnit2CreateCommand(req));
+ }
+ if (ComrelElementTypes.MultiFilterUnit_3041 == req.getElementType()) {
+ return getGEFWrapper(new MultiFilterUnit2CreateCommand(req));
+ }
+ return super.getCreateCommand(req);
+ }
+
+}
diff --git a/org.eclipse.emf.refactor.comrel.diagram/src/comrel/diagram/edit/policies/ParallelQueuedUnitParallelQueuedUnitHelperUnitsCompartmentCanonicalEditPolicy.java b/org.eclipse.emf.refactor.comrel.diagram/src/comrel/diagram/edit/policies/ParallelQueuedUnitParallelQueuedUnitHelperUnitsCompartmentCanonicalEditPolicy.java
new file mode 100644
index 0000000..885792f
--- /dev/null
+++ b/org.eclipse.emf.refactor.comrel.diagram/src/comrel/diagram/edit/policies/ParallelQueuedUnitParallelQueuedUnitHelperUnitsCompartmentCanonicalEditPolicy.java
@@ -0,0 +1,173 @@
+/*
+ *
+ */
+package comrel.diagram.edit.policies;
+
+import java.util.ArrayList;
+import java.util.Collection;
+import java.util.Iterator;
+import java.util.LinkedList;
+import java.util.List;
+
+import org.eclipse.core.runtime.IAdaptable;
+import org.eclipse.emf.ecore.EObject;
+import org.eclipse.emf.ecore.EStructuralFeature;
+import org.eclipse.gef.commands.Command;
+import org.eclipse.gmf.runtime.diagram.core.util.ViewUtil;
+import org.eclipse.gmf.runtime.diagram.ui.commands.DeferredLayoutCommand;
+import org.eclipse.gmf.runtime.diagram.ui.commands.ICommandProxy;
+import org.eclipse.gmf.runtime.diagram.ui.commands.SetViewMutabilityCommand;
+import org.eclipse.gmf.runtime.diagram.ui.editpolicies.CanonicalEditPolicy;
+import org.eclipse.gmf.runtime.diagram.ui.requests.CreateViewRequest;
+import org.eclipse.gmf.runtime.emf.core.util.EObjectAdapter;
+import org.eclipse.gmf.runtime.notation.Node;
+import org.eclipse.gmf.runtime.notation.View;
+
+import comrel.ComrelPackage;
+import comrel.diagram.edit.parts.MultiFeatureUnit2EditPart;
+import comrel.diagram.edit.parts.MultiFilterUnit2EditPart;
+import comrel.diagram.edit.parts.SingleFeatureUnit2EditPart;
+import comrel.diagram.edit.parts.SingleFilterUnit2EditPart;
+import comrel.diagram.part.ComrelDiagramUpdater;
+import comrel.diagram.part.ComrelNodeDescriptor;
+import comrel.diagram.part.ComrelVisualIDRegistry;
+
+/**
+ * @generated
+ */
+public class ParallelQueuedUnitParallelQueuedUnitHelperUnitsCompartmentCanonicalEditPolicy
+ extends CanonicalEditPolicy {
+
+ /**
+ * @generated
+ */
+ protected EStructuralFeature getFeatureToSynchronize() {
+ return ComrelPackage.eINSTANCE.getParallelQueuedUnit_HelperUnits();
+ }
+
+ /**
+ * @generated
+ */
+ @SuppressWarnings("rawtypes")
+ protected List getSemanticChildrenList() {
+ View viewObject = (View) getHost().getModel();
+ LinkedList<EObject> result = new LinkedList<EObject>();
+ List<ComrelNodeDescriptor> childDescriptors = ComrelDiagramUpdater
+ .getParallelQueuedUnitParallelQueuedUnitHelperUnitsCompartment_7005SemanticChildren(viewObject);
+ for (ComrelNodeDescriptor d : childDescriptors) {
+ result.add(d.getModelElement());
+ }
+ return result;
+ }
+
+ /**
+ * @generated
+ */
+ protected boolean isOrphaned(Collection<EObject> semanticChildren,
+ final View view) {
+ return isMyDiagramElement(view)
+ && !semanticChildren.contains(view.getElement());
+ }
+
+ /**
+ * @generated
+ */
+ private boolean isMyDiagramElement(View view) {
+ int visualID = ComrelVisualIDRegistry.getVisualID(view);
+ switch (visualID) {
+ case SingleFeatureUnit2EditPart.VISUAL_ID:
+ case MultiFeatureUnit2EditPart.VISUAL_ID:
+ case SingleFilterUnit2EditPart.VISUAL_ID:
+ case MultiFilterUnit2EditPart.VISUAL_ID:
+ return true;
+ }
+ return false;
+ }
+
+ /**
+ * @generated
+ */
+ protected void refreshSemantic() {
+ if (resolveSemanticElement() == null) {
+ return;
+ }
+ LinkedList<IAdaptable> createdViews = new LinkedList<IAdaptable>();
+ List<ComrelNodeDescriptor> childDescriptors = ComrelDiagramUpdater
+ .getParallelQueuedUnitParallelQueuedUnitHelperUnitsCompartment_7005SemanticChildren((View) getHost()
+ .getModel());
+ LinkedList<View> orphaned = new LinkedList<View>();
+ // we care to check only views we recognize as ours
+ LinkedList<View> knownViewChildren = new LinkedList<View>();
+ for (View v : getViewChildren()) {
+ if (isMyDiagramElement(v)) {
+ knownViewChildren.add(v);
+ }
+ }
+ // alternative to #cleanCanonicalSemanticChildren(getViewChildren(), semanticChildren)
+ //
+ // iteration happens over list of desired semantic elements, trying to find best matching View, while original CEP
+ // iterates views, potentially losing view (size/bounds) information - i.e. if there are few views to reference same EObject, only last one
+ // to answer isOrphaned == true will be used for the domain element representation, see #cleanCanonicalSemanticChildren()
+ for (Iterator<ComrelNodeDescriptor> descriptorsIterator = childDescriptors
+ .iterator(); descriptorsIterator.hasNext();) {
+ ComrelNodeDescriptor next = descriptorsIterator.next();
+ String hint = ComrelVisualIDRegistry.getType(next.getVisualID());
+ LinkedList<View> perfectMatch = new LinkedList<View>(); // both semanticElement and hint match that of NodeDescriptor
+ for (View childView : getViewChildren()) {
+ EObject semanticElement = childView.getElement();
+ if (next.getModelElement().equals(semanticElement)) {
+ if (hint.equals(childView.getType())) {
+ perfectMatch.add(childView);
+ // actually, can stop iteration over view children here, but
+ // may want to use not the first view but last one as a 'real' match (the way original CEP does
+ // with its trick with viewToSemanticMap inside #cleanCanonicalSemanticChildren
+ }
+ }
+ }
+ if (perfectMatch.size() > 0) {
+ descriptorsIterator.remove(); // precise match found no need to create anything for the NodeDescriptor
+ // use only one view (first or last?), keep rest as orphaned for further consideration
+ knownViewChildren.remove(perfectMatch.getFirst());
+ }
+ }
+ // those left in knownViewChildren are subject to removal - they are our diagram elements we didn't find match to,
+ // or those we have potential matches to, and thus need to be recreated, preserving size/location information.
+ orphaned.addAll(knownViewChildren);
+ //
+ ArrayList<CreateViewRequest.ViewDescriptor> viewDescriptors = new ArrayList<CreateViewRequest.ViewDescriptor>(
+ childDescriptors.size());
+ for (ComrelNodeDescriptor next : childDescriptors) {
+ String hint = ComrelVisualIDRegistry.getType(next.getVisualID());
+ IAdaptable elementAdapter = new CanonicalElementAdapter(
+ next.getModelElement(), hint);
+ CreateViewRequest.ViewDescriptor descriptor = new CreateViewRequest.ViewDescriptor(
+ elementAdapter, Node.class, hint, ViewUtil.APPEND, false,
+ host().getDiagramPreferencesHint());
+ viewDescriptors.add(descriptor);
+ }
+
+ boolean changed = deleteViews(orphaned.iterator());
+ //
+ CreateViewRequest request = getCreateViewRequest(viewDescriptors);
+ Command cmd = getCreateViewCommand(request);
+ if (cmd != null && cmd.canExecute()) {
+ SetViewMutabilityCommand.makeMutable(
+ new EObjectAdapter(host().getNotationView())).execute();
+ executeCommand(cmd);
+ @SuppressWarnings("unchecked")
+ List<IAdaptable> nl = (List<IAdaptable>) request.getNewObject();
+ createdViews.addAll(nl);
+ }
+ if (changed || createdViews.size() > 0) {
+ postProcessRefreshSemantic(createdViews);
+ }
+ if (createdViews.size() > 1) {
+ // perform a layout of the container
+ DeferredLayoutCommand layoutCmd = new DeferredLayoutCommand(host()
+ .getEditingDomain(), createdViews, host());
+ executeCommand(new ICommandProxy(layoutCmd));
+ }
+
+ makeViewsImmutable(createdViews);
+ }
+}
diff --git a/org.eclipse.emf.refactor.comrel.diagram/src/comrel/diagram/edit/policies/ParallelQueuedUnitParallelQueuedUnitHelperUnitsCompartmentItemSemanticEditPolicy.java b/org.eclipse.emf.refactor.comrel.diagram/src/comrel/diagram/edit/policies/ParallelQueuedUnitParallelQueuedUnitHelperUnitsCompartmentItemSemanticEditPolicy.java
new file mode 100644
index 0000000..eb5a5e6
--- /dev/null
+++ b/org.eclipse.emf.refactor.comrel.diagram/src/comrel/diagram/edit/policies/ParallelQueuedUnitParallelQueuedUnitHelperUnitsCompartmentItemSemanticEditPolicy.java
@@ -0,0 +1,47 @@
+/*
+ *
+ */
+package comrel.diagram.edit.policies;
+
+import org.eclipse.gef.commands.Command;
+import org.eclipse.gmf.runtime.emf.type.core.requests.CreateElementRequest;
+
+import comrel.diagram.edit.commands.MultiFeatureUnit2CreateCommand;
+import comrel.diagram.edit.commands.MultiFilterUnit2CreateCommand;
+import comrel.diagram.edit.commands.SingleFeatureUnit2CreateCommand;
+import comrel.diagram.edit.commands.SingleFilterUnit2CreateCommand;
+import comrel.diagram.providers.ComrelElementTypes;
+
+/**
+ * @generated
+ */
+public class ParallelQueuedUnitParallelQueuedUnitHelperUnitsCompartmentItemSemanticEditPolicy
+ extends ComrelBaseItemSemanticEditPolicy {
+
+ /**
+ * @generated
+ */
+ public ParallelQueuedUnitParallelQueuedUnitHelperUnitsCompartmentItemSemanticEditPolicy() {
+ super(ComrelElementTypes.ParallelQueuedUnit_3004);
+ }
+
+ /**
+ * @generated
+ */
+ protected Command getCreateCommand(CreateElementRequest req) {
+ if (ComrelElementTypes.SingleFeatureUnit_3038 == req.getElementType()) {
+ return getGEFWrapper(new SingleFeatureUnit2CreateCommand(req));
+ }
+ if (ComrelElementTypes.MultiFeatureUnit_3039 == req.getElementType()) {
+ return getGEFWrapper(new MultiFeatureUnit2CreateCommand(req));
+ }
+ if (ComrelElementTypes.SingleFilterUnit_3040 == req.getElementType()) {
+ return getGEFWrapper(new SingleFilterUnit2CreateCommand(req));
+ }
+ if (ComrelElementTypes.MultiFilterUnit_3041 == req.getElementType()) {
+ return getGEFWrapper(new MultiFilterUnit2CreateCommand(req));
+ }
+ return super.getCreateCommand(req);
+ }
+
+}
diff --git a/org.eclipse.emf.refactor.comrel.diagram/src/comrel/diagram/edit/policies/ParallelQueuedUnitParallelQueuedUnitRefactoringUnitsCompartment2CanonicalEditPolicy.java b/org.eclipse.emf.refactor.comrel.diagram/src/comrel/diagram/edit/policies/ParallelQueuedUnitParallelQueuedUnitRefactoringUnitsCompartment2CanonicalEditPolicy.java
new file mode 100644
index 0000000..6de5d0f
--- /dev/null
+++ b/org.eclipse.emf.refactor.comrel.diagram/src/comrel/diagram/edit/policies/ParallelQueuedUnitParallelQueuedUnitRefactoringUnitsCompartment2CanonicalEditPolicy.java
@@ -0,0 +1,177 @@
+/*
+ *
+ */
+package comrel.diagram.edit.policies;
+
+import java.util.ArrayList;
+import java.util.Collection;
+import java.util.Iterator;
+import java.util.LinkedList;
+import java.util.List;
+
+import org.eclipse.core.runtime.IAdaptable;
+import org.eclipse.emf.ecore.EObject;
+import org.eclipse.emf.ecore.EStructuralFeature;
+import org.eclipse.gef.commands.Command;
+import org.eclipse.gmf.runtime.diagram.core.util.ViewUtil;
+import org.eclipse.gmf.runtime.diagram.ui.commands.DeferredLayoutCommand;
+import org.eclipse.gmf.runtime.diagram.ui.commands.ICommandProxy;
+import org.eclipse.gmf.runtime.diagram.ui.commands.SetViewMutabilityCommand;
+import org.eclipse.gmf.runtime.diagram.ui.editpolicies.CanonicalEditPolicy;
+import org.eclipse.gmf.runtime.diagram.ui.requests.CreateViewRequest;
+import org.eclipse.gmf.runtime.emf.core.util.EObjectAdapter;
+import org.eclipse.gmf.runtime.notation.Node;
+import org.eclipse.gmf.runtime.notation.View;
+
+import comrel.ComrelPackage;
+import comrel.diagram.edit.parts.AtomicUnit3EditPart;
+import comrel.diagram.edit.parts.CartesianQueuedUnit3EditPart;
+import comrel.diagram.edit.parts.ConditionalUnit3EditPart;
+import comrel.diagram.edit.parts.ParallelQueuedUnit4EditPart;
+import comrel.diagram.edit.parts.SequentialUnit3EditPart;
+import comrel.diagram.edit.parts.SingleQueuedUnit3EditPart;
+import comrel.diagram.part.ComrelDiagramUpdater;
+import comrel.diagram.part.ComrelNodeDescriptor;
+import comrel.diagram.part.ComrelVisualIDRegistry;
+
+/**
+ * @generated
+ */
+public class ParallelQueuedUnitParallelQueuedUnitRefactoringUnitsCompartment2CanonicalEditPolicy
+ extends CanonicalEditPolicy {
+
+ /**
+ * @generated
+ */
+ protected EStructuralFeature getFeatureToSynchronize() {
+ return ComrelPackage.eINSTANCE.getParallelQueuedUnit_RefactoringUnits();
+ }
+
+ /**
+ * @generated
+ */
+ @SuppressWarnings("rawtypes")
+ protected List getSemanticChildrenList() {
+ View viewObject = (View) getHost().getModel();
+ LinkedList<EObject> result = new LinkedList<EObject>();
+ List<ComrelNodeDescriptor> childDescriptors = ComrelDiagramUpdater
+ .getParallelQueuedUnitParallelQueuedUnitRefactoringUnitsCompartment_7024SemanticChildren(viewObject);
+ for (ComrelNodeDescriptor d : childDescriptors) {
+ result.add(d.getModelElement());
+ }
+ return result;
+ }
+
+ /**
+ * @generated
+ */
+ protected boolean isOrphaned(Collection<EObject> semanticChildren,
+ final View view) {
+ return isMyDiagramElement(view)
+ && !semanticChildren.contains(view.getElement());
+ }
+
+ /**
+ * @generated
+ */
+ private boolean isMyDiagramElement(View view) {
+ int visualID = ComrelVisualIDRegistry.getVisualID(view);
+ switch (visualID) {
+ case CartesianQueuedUnit3EditPart.VISUAL_ID:
+ case ParallelQueuedUnit4EditPart.VISUAL_ID:
+ case SingleQueuedUnit3EditPart.VISUAL_ID:
+ case SequentialUnit3EditPart.VISUAL_ID:
+ case ConditionalUnit3EditPart.VISUAL_ID:
+ case AtomicUnit3EditPart.VISUAL_ID:
+ return true;
+ }
+ return false;
+ }
+
+ /**
+ * @generated
+ */
+ protected void refreshSemantic() {
+ if (resolveSemanticElement() == null) {
+ return;
+ }
+ LinkedList<IAdaptable> createdViews = new LinkedList<IAdaptable>();
+ List<ComrelNodeDescriptor> childDescriptors = ComrelDiagramUpdater
+ .getParallelQueuedUnitParallelQueuedUnitRefactoringUnitsCompartment_7024SemanticChildren((View) getHost()
+ .getModel());
+ LinkedList<View> orphaned = new LinkedList<View>();
+ // we care to check only views we recognize as ours
+ LinkedList<View> knownViewChildren = new LinkedList<View>();
+ for (View v : getViewChildren()) {
+ if (isMyDiagramElement(v)) {
+ knownViewChildren.add(v);
+ }
+ }
+ // alternative to #cleanCanonicalSemanticChildren(getViewChildren(), semanticChildren)
+ //
+ // iteration happens over list of desired semantic elements, trying to find best matching View, while original CEP
+ // iterates views, potentially losing view (size/bounds) information - i.e. if there are few views to reference same EObject, only last one
+ // to answer isOrphaned == true will be used for the domain element representation, see #cleanCanonicalSemanticChildren()
+ for (Iterator<ComrelNodeDescriptor> descriptorsIterator = childDescriptors
+ .iterator(); descriptorsIterator.hasNext();) {
+ ComrelNodeDescriptor next = descriptorsIterator.next();
+ String hint = ComrelVisualIDRegistry.getType(next.getVisualID());
+ LinkedList<View> perfectMatch = new LinkedList<View>(); // both semanticElement and hint match that of NodeDescriptor
+ for (View childView : getViewChildren()) {
+ EObject semanticElement = childView.getElement();
+ if (next.getModelElement().equals(semanticElement)) {
+ if (hint.equals(childView.getType())) {
+ perfectMatch.add(childView);
+ // actually, can stop iteration over view children here, but
+ // may want to use not the first view but last one as a 'real' match (the way original CEP does
+ // with its trick with viewToSemanticMap inside #cleanCanonicalSemanticChildren
+ }
+ }
+ }
+ if (perfectMatch.size() > 0) {
+ descriptorsIterator.remove(); // precise match found no need to create anything for the NodeDescriptor
+ // use only one view (first or last?), keep rest as orphaned for further consideration
+ knownViewChildren.remove(perfectMatch.getFirst());
+ }
+ }
+ // those left in knownViewChildren are subject to removal - they are our diagram elements we didn't find match to,
+ // or those we have potential matches to, and thus need to be recreated, preserving size/location information.
+ orphaned.addAll(knownViewChildren);
+ //
+ ArrayList<CreateViewRequest.ViewDescriptor> viewDescriptors = new ArrayList<CreateViewRequest.ViewDescriptor>(
+ childDescriptors.size());
+ for (ComrelNodeDescriptor next : childDescriptors) {
+ String hint = ComrelVisualIDRegistry.getType(next.getVisualID());
+ IAdaptable elementAdapter = new CanonicalElementAdapter(
+ next.getModelElement(), hint);
+ CreateViewRequest.ViewDescriptor descriptor = new CreateViewRequest.ViewDescriptor(
+ elementAdapter, Node.class, hint, ViewUtil.APPEND, false,
+ host().getDiagramPreferencesHint());
+ viewDescriptors.add(descriptor);
+ }
+
+ boolean changed = deleteViews(orphaned.iterator());
+ //
+ CreateViewRequest request = getCreateViewRequest(viewDescriptors);
+ Command cmd = getCreateViewCommand(request);
+ if (cmd != null && cmd.canExecute()) {
+ SetViewMutabilityCommand.makeMutable(
+ new EObjectAdapter(host().getNotationView())).execute();
+ executeCommand(cmd);
+ @SuppressWarnings("unchecked")
+ List<IAdaptable> nl = (List<IAdaptable>) request.getNewObject();
+ createdViews.addAll(nl);
+ }
+ if (changed || createdViews.size() > 0) {
+ postProcessRefreshSemantic(createdViews);
+ }
+ if (createdViews.size() > 1) {
+ // perform a layout of the container
+ DeferredLayoutCommand layoutCmd = new DeferredLayoutCommand(host()
+ .getEditingDomain(), createdViews, host());
+ executeCommand(new ICommandProxy(layoutCmd));
+ }
+
+ makeViewsImmutable(createdViews);
+ }
+}
diff --git a/org.eclipse.emf.refactor.comrel.diagram/src/comrel/diagram/edit/policies/ParallelQueuedUnitParallelQueuedUnitRefactoringUnitsCompartment2ItemSemanticEditPolicy.java b/org.eclipse.emf.refactor.comrel.diagram/src/comrel/diagram/edit/policies/ParallelQueuedUnitParallelQueuedUnitRefactoringUnitsCompartment2ItemSemanticEditPolicy.java
new file mode 100644
index 0000000..18f5079
--- /dev/null
+++ b/org.eclipse.emf.refactor.comrel.diagram/src/comrel/diagram/edit/policies/ParallelQueuedUnitParallelQueuedUnitRefactoringUnitsCompartment2ItemSemanticEditPolicy.java
@@ -0,0 +1,55 @@
+/*
+ *
+ */
+package comrel.diagram.edit.policies;
+
+import org.eclipse.gef.commands.Command;
+import org.eclipse.gmf.runtime.emf.type.core.requests.CreateElementRequest;
+
+import comrel.diagram.edit.commands.AtomicUnit3CreateCommand;
+import comrel.diagram.edit.commands.CartesianQueuedUnit3CreateCommand;
+import comrel.diagram.edit.commands.ConditionalUnit3CreateCommand;
+import comrel.diagram.edit.commands.ParallelQueuedUnit4CreateCommand;
+import comrel.diagram.edit.commands.SequentialUnit3CreateCommand;
+import comrel.diagram.edit.commands.SingleQueuedUnit3CreateCommand;
+import comrel.diagram.providers.ComrelElementTypes;
+
+/**
+ * @generated
+ */
+public class ParallelQueuedUnitParallelQueuedUnitRefactoringUnitsCompartment2ItemSemanticEditPolicy
+ extends ComrelBaseItemSemanticEditPolicy {
+
+ /**
+ * @generated
+ */
+ public ParallelQueuedUnitParallelQueuedUnitRefactoringUnitsCompartment2ItemSemanticEditPolicy() {
+ super(ComrelElementTypes.ParallelQueuedUnit_3036);
+ }
+
+ /**
+ * @generated
+ */
+ protected Command getCreateCommand(CreateElementRequest req) {
+ if (ComrelElementTypes.CartesianQueuedUnit_3007 == req.getElementType()) {
+ return getGEFWrapper(new CartesianQueuedUnit3CreateCommand(req));
+ }
+ if (ComrelElementTypes.ParallelQueuedUnit_3037 == req.getElementType()) {
+ return getGEFWrapper(new ParallelQueuedUnit4CreateCommand(req));
+ }
+ if (ComrelElementTypes.SingleQueuedUnit_3042 == req.getElementType()) {
+ return getGEFWrapper(new SingleQueuedUnit3CreateCommand(req));
+ }
+ if (ComrelElementTypes.SequentialUnit_3044 == req.getElementType()) {
+ return getGEFWrapper(new SequentialUnit3CreateCommand(req));
+ }
+ if (ComrelElementTypes.ConditionalUnit_3046 == req.getElementType()) {
+ return getGEFWrapper(new ConditionalUnit3CreateCommand(req));
+ }
+ if (ComrelElementTypes.AtomicUnit_3049 == req.getElementType()) {
+ return getGEFWrapper(new AtomicUnit3CreateCommand(req));
+ }
+ return super.getCreateCommand(req);
+ }
+
+}
diff --git a/org.eclipse.emf.refactor.comrel.diagram/src/comrel/diagram/edit/policies/ParallelQueuedUnitParallelQueuedUnitRefactoringUnitsCompartment3CanonicalEditPolicy.java b/org.eclipse.emf.refactor.comrel.diagram/src/comrel/diagram/edit/policies/ParallelQueuedUnitParallelQueuedUnitRefactoringUnitsCompartment3CanonicalEditPolicy.java
new file mode 100644
index 0000000..20ebbd4
--- /dev/null
+++ b/org.eclipse.emf.refactor.comrel.diagram/src/comrel/diagram/edit/policies/ParallelQueuedUnitParallelQueuedUnitRefactoringUnitsCompartment3CanonicalEditPolicy.java
@@ -0,0 +1,177 @@
+/*
+ *
+ */
+package comrel.diagram.edit.policies;
+
+import java.util.ArrayList;
+import java.util.Collection;
+import java.util.Iterator;
+import java.util.LinkedList;
+import java.util.List;
+
+import org.eclipse.core.runtime.IAdaptable;
+import org.eclipse.emf.ecore.EObject;
+import org.eclipse.emf.ecore.EStructuralFeature;
+import org.eclipse.gef.commands.Command;
+import org.eclipse.gmf.runtime.diagram.core.util.ViewUtil;
+import org.eclipse.gmf.runtime.diagram.ui.commands.DeferredLayoutCommand;
+import org.eclipse.gmf.runtime.diagram.ui.commands.ICommandProxy;
+import org.eclipse.gmf.runtime.diagram.ui.commands.SetViewMutabilityCommand;
+import org.eclipse.gmf.runtime.diagram.ui.editpolicies.CanonicalEditPolicy;
+import org.eclipse.gmf.runtime.diagram.ui.requests.CreateViewRequest;
+import org.eclipse.gmf.runtime.emf.core.util.EObjectAdapter;
+import org.eclipse.gmf.runtime.notation.Node;
+import org.eclipse.gmf.runtime.notation.View;
+
+import comrel.ComrelPackage;
+import comrel.diagram.edit.parts.AtomicUnit3EditPart;
+import comrel.diagram.edit.parts.CartesianQueuedUnit3EditPart;
+import comrel.diagram.edit.parts.ConditionalUnit3EditPart;
+import comrel.diagram.edit.parts.ParallelQueuedUnit4EditPart;
+import comrel.diagram.edit.parts.SequentialUnit3EditPart;
+import comrel.diagram.edit.parts.SingleQueuedUnit3EditPart;
+import comrel.diagram.part.ComrelDiagramUpdater;
+import comrel.diagram.part.ComrelNodeDescriptor;
+import comrel.diagram.part.ComrelVisualIDRegistry;
+
+/**
+ * @generated
+ */
+public class ParallelQueuedUnitParallelQueuedUnitRefactoringUnitsCompartment3CanonicalEditPolicy
+ extends CanonicalEditPolicy {
+
+ /**
+ * @generated
+ */
+ protected EStructuralFeature getFeatureToSynchronize() {
+ return ComrelPackage.eINSTANCE.getParallelQueuedUnit_RefactoringUnits();
+ }
+
+ /**
+ * @generated
+ */
+ @SuppressWarnings("rawtypes")
+ protected List getSemanticChildrenList() {
+ View viewObject = (View) getHost().getModel();
+ LinkedList<EObject> result = new LinkedList<EObject>();
+ List<ComrelNodeDescriptor> childDescriptors = ComrelDiagramUpdater
+ .getParallelQueuedUnitParallelQueuedUnitRefactoringUnitsCompartment_7026SemanticChildren(viewObject);
+ for (ComrelNodeDescriptor d : childDescriptors) {
+ result.add(d.getModelElement());
+ }
+ return result;
+ }
+
+ /**
+ * @generated
+ */
+ protected boolean isOrphaned(Collection<EObject> semanticChildren,
+ final View view) {
+ return isMyDiagramElement(view)
+ && !semanticChildren.contains(view.getElement());
+ }
+
+ /**
+ * @generated
+ */
+ private boolean isMyDiagramElement(View view) {
+ int visualID = ComrelVisualIDRegistry.getVisualID(view);
+ switch (visualID) {
+ case CartesianQueuedUnit3EditPart.VISUAL_ID:
+ case ParallelQueuedUnit4EditPart.VISUAL_ID:
+ case SingleQueuedUnit3EditPart.VISUAL_ID:
+ case SequentialUnit3EditPart.VISUAL_ID:
+ case ConditionalUnit3EditPart.VISUAL_ID:
+ case AtomicUnit3EditPart.VISUAL_ID:
+ return true;
+ }
+ return false;
+ }
+
+ /**
+ * @generated
+ */
+ protected void refreshSemantic() {
+ if (resolveSemanticElement() == null) {
+ return;
+ }
+ LinkedList<IAdaptable> createdViews = new LinkedList<IAdaptable>();
+ List<ComrelNodeDescriptor> childDescriptors = ComrelDiagramUpdater
+ .getParallelQueuedUnitParallelQueuedUnitRefactoringUnitsCompartment_7026SemanticChildren((View) getHost()
+ .getModel());
+ LinkedList<View> orphaned = new LinkedList<View>();
+ // we care to check only views we recognize as ours
+ LinkedList<View> knownViewChildren = new LinkedList<View>();
+ for (View v : getViewChildren()) {
+ if (isMyDiagramElement(v)) {
+ knownViewChildren.add(v);
+ }
+ }
+ // alternative to #cleanCanonicalSemanticChildren(getViewChildren(), semanticChildren)
+ //
+ // iteration happens over list of desired semantic elements, trying to find best matching View, while original CEP
+ // iterates views, potentially losing view (size/bounds) information - i.e. if there are few views to reference same EObject, only last one
+ // to answer isOrphaned == true will be used for the domain element representation, see #cleanCanonicalSemanticChildren()
+ for (Iterator<ComrelNodeDescriptor> descriptorsIterator = childDescriptors
+ .iterator(); descriptorsIterator.hasNext();) {
+ ComrelNodeDescriptor next = descriptorsIterator.next();
+ String hint = ComrelVisualIDRegistry.getType(next.getVisualID());
+ LinkedList<View> perfectMatch = new LinkedList<View>(); // both semanticElement and hint match that of NodeDescriptor
+ for (View childView : getViewChildren()) {
+ EObject semanticElement = childView.getElement();
+ if (next.getModelElement().equals(semanticElement)) {
+ if (hint.equals(childView.getType())) {
+ perfectMatch.add(childView);
+ // actually, can stop iteration over view children here, but
+ // may want to use not the first view but last one as a 'real' match (the way original CEP does
+ // with its trick with viewToSemanticMap inside #cleanCanonicalSemanticChildren
+ }
+ }
+ }
+ if (perfectMatch.size() > 0) {
+ descriptorsIterator.remove(); // precise match found no need to create anything for the NodeDescriptor
+ // use only one view (first or last?), keep rest as orphaned for further consideration
+ knownViewChildren.remove(perfectMatch.getFirst());
+ }
+ }
+ // those left in knownViewChildren are subject to removal - they are our diagram elements we didn't find match to,
+ // or those we have potential matches to, and thus need to be recreated, preserving size/location information.
+ orphaned.addAll(knownViewChildren);
+ //
+ ArrayList<CreateViewRequest.ViewDescriptor> viewDescriptors = new ArrayList<CreateViewRequest.ViewDescriptor>(
+ childDescriptors.size());
+ for (ComrelNodeDescriptor next : childDescriptors) {
+ String hint = ComrelVisualIDRegistry.getType(next.getVisualID());
+ IAdaptable elementAdapter = new CanonicalElementAdapter(
+ next.getModelElement(), hint);
+ CreateViewRequest.ViewDescriptor descriptor = new CreateViewRequest.ViewDescriptor(
+ elementAdapter, Node.class, hint, ViewUtil.APPEND, false,
+ host().getDiagramPreferencesHint());
+ viewDescriptors.add(descriptor);
+ }
+
+ boolean changed = deleteViews(orphaned.iterator());
+ //
+ CreateViewRequest request = getCreateViewRequest(viewDescriptors);
+ Command cmd = getCreateViewCommand(request);
+ if (cmd != null && cmd.canExecute()) {
+ SetViewMutabilityCommand.makeMutable(
+ new EObjectAdapter(host().getNotationView())).execute();
+ executeCommand(cmd);
+ @SuppressWarnings("unchecked")
+ List<IAdaptable> nl = (List<IAdaptable>) request.getNewObject();
+ createdViews.addAll(nl);
+ }
+ if (changed || createdViews.size() > 0) {
+ postProcessRefreshSemantic(createdViews);
+ }
+ if (createdViews.size() > 1) {
+ // perform a layout of the container
+ DeferredLayoutCommand layoutCmd = new DeferredLayoutCommand(host()
+ .getEditingDomain(), createdViews, host());
+ executeCommand(new ICommandProxy(layoutCmd));
+ }
+
+ makeViewsImmutable(createdViews);
+ }
+}
diff --git a/org.eclipse.emf.refactor.comrel.diagram/src/comrel/diagram/edit/policies/ParallelQueuedUnitParallelQueuedUnitRefactoringUnitsCompartment3ItemSemanticEditPolicy.java b/org.eclipse.emf.refactor.comrel.diagram/src/comrel/diagram/edit/policies/ParallelQueuedUnitParallelQueuedUnitRefactoringUnitsCompartment3ItemSemanticEditPolicy.java
new file mode 100644
index 0000000..d2ac1bb
--- /dev/null
+++ b/org.eclipse.emf.refactor.comrel.diagram/src/comrel/diagram/edit/policies/ParallelQueuedUnitParallelQueuedUnitRefactoringUnitsCompartment3ItemSemanticEditPolicy.java
@@ -0,0 +1,55 @@
+/*
+ *
+ */
+package comrel.diagram.edit.policies;
+
+import org.eclipse.gef.commands.Command;
+import org.eclipse.gmf.runtime.emf.type.core.requests.CreateElementRequest;
+
+import comrel.diagram.edit.commands.AtomicUnit3CreateCommand;
+import comrel.diagram.edit.commands.CartesianQueuedUnit3CreateCommand;
+import comrel.diagram.edit.commands.ConditionalUnit3CreateCommand;
+import comrel.diagram.edit.commands.ParallelQueuedUnit4CreateCommand;
+import comrel.diagram.edit.commands.SequentialUnit3CreateCommand;
+import comrel.diagram.edit.commands.SingleQueuedUnit3CreateCommand;
+import comrel.diagram.providers.ComrelElementTypes;
+
+/**
+ * @generated
+ */
+public class ParallelQueuedUnitParallelQueuedUnitRefactoringUnitsCompartment3ItemSemanticEditPolicy
+ extends ComrelBaseItemSemanticEditPolicy {
+
+ /**
+ * @generated
+ */
+ public ParallelQueuedUnitParallelQueuedUnitRefactoringUnitsCompartment3ItemSemanticEditPolicy() {
+ super(ComrelElementTypes.ParallelQueuedUnit_3037);
+ }
+
+ /**
+ * @generated
+ */
+ protected Command getCreateCommand(CreateElementRequest req) {
+ if (ComrelElementTypes.CartesianQueuedUnit_3007 == req.getElementType()) {
+ return getGEFWrapper(new CartesianQueuedUnit3CreateCommand(req));
+ }
+ if (ComrelElementTypes.ParallelQueuedUnit_3037 == req.getElementType()) {
+ return getGEFWrapper(new ParallelQueuedUnit4CreateCommand(req));
+ }
+ if (ComrelElementTypes.SingleQueuedUnit_3042 == req.getElementType()) {
+ return getGEFWrapper(new SingleQueuedUnit3CreateCommand(req));
+ }
+ if (ComrelElementTypes.SequentialUnit_3044 == req.getElementType()) {
+ return getGEFWrapper(new SequentialUnit3CreateCommand(req));
+ }
+ if (ComrelElementTypes.ConditionalUnit_3046 == req.getElementType()) {
+ return getGEFWrapper(new ConditionalUnit3CreateCommand(req));
+ }
+ if (ComrelElementTypes.AtomicUnit_3049 == req.getElementType()) {
+ return getGEFWrapper(new AtomicUnit3CreateCommand(req));
+ }
+ return super.getCreateCommand(req);
+ }
+
+}
diff --git a/org.eclipse.emf.refactor.comrel.diagram/src/comrel/diagram/edit/policies/ParallelQueuedUnitParallelQueuedUnitRefactoringUnitsCompartment4CanonicalEditPolicy.java b/org.eclipse.emf.refactor.comrel.diagram/src/comrel/diagram/edit/policies/ParallelQueuedUnitParallelQueuedUnitRefactoringUnitsCompartment4CanonicalEditPolicy.java
new file mode 100644
index 0000000..068a1ec
--- /dev/null
+++ b/org.eclipse.emf.refactor.comrel.diagram/src/comrel/diagram/edit/policies/ParallelQueuedUnitParallelQueuedUnitRefactoringUnitsCompartment4CanonicalEditPolicy.java
@@ -0,0 +1,177 @@
+/*
+ *
+ */
+package comrel.diagram.edit.policies;
+
+import java.util.ArrayList;
+import java.util.Collection;
+import java.util.Iterator;
+import java.util.LinkedList;
+import java.util.List;
+
+import org.eclipse.core.runtime.IAdaptable;
+import org.eclipse.emf.ecore.EObject;
+import org.eclipse.emf.ecore.EStructuralFeature;
+import org.eclipse.gef.commands.Command;
+import org.eclipse.gmf.runtime.diagram.core.util.ViewUtil;
+import org.eclipse.gmf.runtime.diagram.ui.commands.DeferredLayoutCommand;
+import org.eclipse.gmf.runtime.diagram.ui.commands.ICommandProxy;
+import org.eclipse.gmf.runtime.diagram.ui.commands.SetViewMutabilityCommand;
+import org.eclipse.gmf.runtime.diagram.ui.editpolicies.CanonicalEditPolicy;
+import org.eclipse.gmf.runtime.diagram.ui.requests.CreateViewRequest;
+import org.eclipse.gmf.runtime.emf.core.util.EObjectAdapter;
+import org.eclipse.gmf.runtime.notation.Node;
+import org.eclipse.gmf.runtime.notation.View;
+
+import comrel.ComrelPackage;
+import comrel.diagram.edit.parts.AtomicUnit3EditPart;
+import comrel.diagram.edit.parts.CartesianQueuedUnit3EditPart;
+import comrel.diagram.edit.parts.ConditionalUnit3EditPart;
+import comrel.diagram.edit.parts.ParallelQueuedUnit4EditPart;
+import comrel.diagram.edit.parts.SequentialUnit3EditPart;
+import comrel.diagram.edit.parts.SingleQueuedUnit3EditPart;
+import comrel.diagram.part.ComrelDiagramUpdater;
+import comrel.diagram.part.ComrelNodeDescriptor;
+import comrel.diagram.part.ComrelVisualIDRegistry;
+
+/**
+ * @generated
+ */
+public class ParallelQueuedUnitParallelQueuedUnitRefactoringUnitsCompartment4CanonicalEditPolicy
+ extends CanonicalEditPolicy {
+
+ /**
+ * @generated
+ */
+ protected EStructuralFeature getFeatureToSynchronize() {
+ return ComrelPackage.eINSTANCE.getParallelQueuedUnit_RefactoringUnits();
+ }
+
+ /**
+ * @generated
+ */
+ @SuppressWarnings("rawtypes")
+ protected List getSemanticChildrenList() {
+ View viewObject = (View) getHost().getModel();
+ LinkedList<EObject> result = new LinkedList<EObject>();
+ List<ComrelNodeDescriptor> childDescriptors = ComrelDiagramUpdater
+ .getParallelQueuedUnitParallelQueuedUnitRefactoringUnitsCompartment_7030SemanticChildren(viewObject);
+ for (ComrelNodeDescriptor d : childDescriptors) {
+ result.add(d.getModelElement());
+ }
+ return result;
+ }
+
+ /**
+ * @generated
+ */
+ protected boolean isOrphaned(Collection<EObject> semanticChildren,
+ final View view) {
+ return isMyDiagramElement(view)
+ && !semanticChildren.contains(view.getElement());
+ }
+
+ /**
+ * @generated
+ */
+ private boolean isMyDiagramElement(View view) {
+ int visualID = ComrelVisualIDRegistry.getVisualID(view);
+ switch (visualID) {
+ case CartesianQueuedUnit3EditPart.VISUAL_ID:
+ case ParallelQueuedUnit4EditPart.VISUAL_ID:
+ case SingleQueuedUnit3EditPart.VISUAL_ID:
+ case SequentialUnit3EditPart.VISUAL_ID:
+ case ConditionalUnit3EditPart.VISUAL_ID:
+ case AtomicUnit3EditPart.VISUAL_ID:
+ return true;
+ }
+ return false;
+ }
+
+ /**
+ * @generated
+ */
+ protected void refreshSemantic() {
+ if (resolveSemanticElement() == null) {
+ return;
+ }
+ LinkedList<IAdaptable> createdViews = new LinkedList<IAdaptable>();
+ List<ComrelNodeDescriptor> childDescriptors = ComrelDiagramUpdater
+ .getParallelQueuedUnitParallelQueuedUnitRefactoringUnitsCompartment_7030SemanticChildren((View) getHost()
+ .getModel());
+ LinkedList<View> orphaned = new LinkedList<View>();
+ // we care to check only views we recognize as ours
+ LinkedList<View> knownViewChildren = new LinkedList<View>();
+ for (View v : getViewChildren()) {
+ if (isMyDiagramElement(v)) {
+ knownViewChildren.add(v);
+ }
+ }
+ // alternative to #cleanCanonicalSemanticChildren(getViewChildren(), semanticChildren)
+ //
+ // iteration happens over list of desired semantic elements, trying to find best matching View, while original CEP
+ // iterates views, potentially losing view (size/bounds) information - i.e. if there are few views to reference same EObject, only last one
+ // to answer isOrphaned == true will be used for the domain element representation, see #cleanCanonicalSemanticChildren()
+ for (Iterator<ComrelNodeDescriptor> descriptorsIterator = childDescriptors
+ .iterator(); descriptorsIterator.hasNext();) {
+ ComrelNodeDescriptor next = descriptorsIterator.next();
+ String hint = ComrelVisualIDRegistry.getType(next.getVisualID());
+ LinkedList<View> perfectMatch = new LinkedList<View>(); // both semanticElement and hint match that of NodeDescriptor
+ for (View childView : getViewChildren()) {
+ EObject semanticElement = childView.getElement();
+ if (next.getModelElement().equals(semanticElement)) {
+ if (hint.equals(childView.getType())) {
+ perfectMatch.add(childView);
+ // actually, can stop iteration over view children here, but
+ // may want to use not the first view but last one as a 'real' match (the way original CEP does
+ // with its trick with viewToSemanticMap inside #cleanCanonicalSemanticChildren
+ }
+ }
+ }
+ if (perfectMatch.size() > 0) {
+ descriptorsIterator.remove(); // precise match found no need to create anything for the NodeDescriptor
+ // use only one view (first or last?), keep rest as orphaned for further consideration
+ knownViewChildren.remove(perfectMatch.getFirst());
+ }
+ }
+ // those left in knownViewChildren are subject to removal - they are our diagram elements we didn't find match to,
+ // or those we have potential matches to, and thus need to be recreated, preserving size/location information.
+ orphaned.addAll(knownViewChildren);
+ //
+ ArrayList<CreateViewRequest.ViewDescriptor> viewDescriptors = new ArrayList<CreateViewRequest.ViewDescriptor>(
+ childDescriptors.size());
+ for (ComrelNodeDescriptor next : childDescriptors) {
+ String hint = ComrelVisualIDRegistry.getType(next.getVisualID());
+ IAdaptable elementAdapter = new CanonicalElementAdapter(
+ next.getModelElement(), hint);
+ CreateViewRequest.ViewDescriptor descriptor = new CreateViewRequest.ViewDescriptor(
+ elementAdapter, Node.class, hint, ViewUtil.APPEND, false,
+ host().getDiagramPreferencesHint());
+ viewDescriptors.add(descriptor);
+ }
+
+ boolean changed = deleteViews(orphaned.iterator());
+ //
+ CreateViewRequest request = getCreateViewRequest(viewDescriptors);
+ Command cmd = getCreateViewCommand(request);
+ if (cmd != null && cmd.canExecute()) {
+ SetViewMutabilityCommand.makeMutable(
+ new EObjectAdapter(host().getNotationView())).execute();
+ executeCommand(cmd);
+ @SuppressWarnings("unchecked")
+ List<IAdaptable> nl = (List<IAdaptable>) request.getNewObject();
+ createdViews.addAll(nl);
+ }
+ if (changed || createdViews.size() > 0) {
+ postProcessRefreshSemantic(createdViews);
+ }
+ if (createdViews.size() > 1) {
+ // perform a layout of the container
+ DeferredLayoutCommand layoutCmd = new DeferredLayoutCommand(host()
+ .getEditingDomain(), createdViews, host());
+ executeCommand(new ICommandProxy(layoutCmd));
+ }
+
+ makeViewsImmutable(createdViews);
+ }
+}
diff --git a/org.eclipse.emf.refactor.comrel.diagram/src/comrel/diagram/edit/policies/ParallelQueuedUnitParallelQueuedUnitRefactoringUnitsCompartment4ItemSemanticEditPolicy.java b/org.eclipse.emf.refactor.comrel.diagram/src/comrel/diagram/edit/policies/ParallelQueuedUnitParallelQueuedUnitRefactoringUnitsCompartment4ItemSemanticEditPolicy.java
new file mode 100644
index 0000000..5d20d87
--- /dev/null
+++ b/org.eclipse.emf.refactor.comrel.diagram/src/comrel/diagram/edit/policies/ParallelQueuedUnitParallelQueuedUnitRefactoringUnitsCompartment4ItemSemanticEditPolicy.java
@@ -0,0 +1,55 @@
+/*
+ *
+ */
+package comrel.diagram.edit.policies;
+
+import org.eclipse.gef.commands.Command;
+import org.eclipse.gmf.runtime.emf.type.core.requests.CreateElementRequest;
+
+import comrel.diagram.edit.commands.AtomicUnit3CreateCommand;
+import comrel.diagram.edit.commands.CartesianQueuedUnit3CreateCommand;
+import comrel.diagram.edit.commands.ConditionalUnit3CreateCommand;
+import comrel.diagram.edit.commands.ParallelQueuedUnit4CreateCommand;
+import comrel.diagram.edit.commands.SequentialUnit3CreateCommand;
+import comrel.diagram.edit.commands.SingleQueuedUnit3CreateCommand;
+import comrel.diagram.providers.ComrelElementTypes;
+
+/**
+ * @generated
+ */
+public class ParallelQueuedUnitParallelQueuedUnitRefactoringUnitsCompartment4ItemSemanticEditPolicy
+ extends ComrelBaseItemSemanticEditPolicy {
+
+ /**
+ * @generated
+ */
+ public ParallelQueuedUnitParallelQueuedUnitRefactoringUnitsCompartment4ItemSemanticEditPolicy() {
+ super(ComrelElementTypes.ParallelQueuedUnit_3043);
+ }
+
+ /**
+ * @generated
+ */
+ protected Command getCreateCommand(CreateElementRequest req) {
+ if (ComrelElementTypes.CartesianQueuedUnit_3007 == req.getElementType()) {
+ return getGEFWrapper(new CartesianQueuedUnit3CreateCommand(req));
+ }
+ if (ComrelElementTypes.ParallelQueuedUnit_3037 == req.getElementType()) {
+ return getGEFWrapper(new ParallelQueuedUnit4CreateCommand(req));
+ }
+ if (ComrelElementTypes.SingleQueuedUnit_3042 == req.getElementType()) {
+ return getGEFWrapper(new SingleQueuedUnit3CreateCommand(req));
+ }
+ if (ComrelElementTypes.SequentialUnit_3044 == req.getElementType()) {
+ return getGEFWrapper(new SequentialUnit3CreateCommand(req));
+ }
+ if (ComrelElementTypes.ConditionalUnit_3046 == req.getElementType()) {
+ return getGEFWrapper(new ConditionalUnit3CreateCommand(req));
+ }
+ if (ComrelElementTypes.AtomicUnit_3049 == req.getElementType()) {
+ return getGEFWrapper(new AtomicUnit3CreateCommand(req));
+ }
+ return super.getCreateCommand(req);
+ }
+
+}
diff --git a/org.eclipse.emf.refactor.comrel.diagram/src/comrel/diagram/edit/policies/ParallelQueuedUnitParallelQueuedUnitRefactoringUnitsCompartment5CanonicalEditPolicy.java b/org.eclipse.emf.refactor.comrel.diagram/src/comrel/diagram/edit/policies/ParallelQueuedUnitParallelQueuedUnitRefactoringUnitsCompartment5CanonicalEditPolicy.java
new file mode 100644
index 0000000..279b919
--- /dev/null
+++ b/org.eclipse.emf.refactor.comrel.diagram/src/comrel/diagram/edit/policies/ParallelQueuedUnitParallelQueuedUnitRefactoringUnitsCompartment5CanonicalEditPolicy.java
@@ -0,0 +1,177 @@
+/*
+ *
+ */
+package comrel.diagram.edit.policies;
+
+import java.util.ArrayList;
+import java.util.Collection;
+import java.util.Iterator;
+import java.util.LinkedList;
+import java.util.List;
+
+import org.eclipse.core.runtime.IAdaptable;
+import org.eclipse.emf.ecore.EObject;
+import org.eclipse.emf.ecore.EStructuralFeature;
+import org.eclipse.gef.commands.Command;
+import org.eclipse.gmf.runtime.diagram.core.util.ViewUtil;
+import org.eclipse.gmf.runtime.diagram.ui.commands.DeferredLayoutCommand;
+import org.eclipse.gmf.runtime.diagram.ui.commands.ICommandProxy;
+import org.eclipse.gmf.runtime.diagram.ui.commands.SetViewMutabilityCommand;
+import org.eclipse.gmf.runtime.diagram.ui.editpolicies.CanonicalEditPolicy;
+import org.eclipse.gmf.runtime.diagram.ui.requests.CreateViewRequest;
+import org.eclipse.gmf.runtime.emf.core.util.EObjectAdapter;
+import org.eclipse.gmf.runtime.notation.Node;
+import org.eclipse.gmf.runtime.notation.View;
+
+import comrel.ComrelPackage;
+import comrel.diagram.edit.parts.AtomicUnit3EditPart;
+import comrel.diagram.edit.parts.CartesianQueuedUnit3EditPart;
+import comrel.diagram.edit.parts.ConditionalUnit3EditPart;
+import comrel.diagram.edit.parts.ParallelQueuedUnit4EditPart;
+import comrel.diagram.edit.parts.SequentialUnit3EditPart;
+import comrel.diagram.edit.parts.SingleQueuedUnit3EditPart;
+import comrel.diagram.part.ComrelDiagramUpdater;
+import comrel.diagram.part.ComrelNodeDescriptor;
+import comrel.diagram.part.ComrelVisualIDRegistry;
+
+/**
+ * @generated
+ */
+public class ParallelQueuedUnitParallelQueuedUnitRefactoringUnitsCompartment5CanonicalEditPolicy
+ extends CanonicalEditPolicy {
+
+ /**
+ * @generated
+ */
+ protected EStructuralFeature getFeatureToSynchronize() {
+ return ComrelPackage.eINSTANCE.getParallelQueuedUnit_RefactoringUnits();
+ }
+
+ /**
+ * @generated
+ */
+ @SuppressWarnings("rawtypes")
+ protected List getSemanticChildrenList() {
+ View viewObject = (View) getHost().getModel();
+ LinkedList<EObject> result = new LinkedList<EObject>();
+ List<ComrelNodeDescriptor> childDescriptors = ComrelDiagramUpdater
+ .getParallelQueuedUnitParallelQueuedUnitRefactoringUnitsCompartment_7034SemanticChildren(viewObject);
+ for (ComrelNodeDescriptor d : childDescriptors) {
+ result.add(d.getModelElement());
+ }
+ return result;
+ }
+
+ /**
+ * @generated
+ */
+ protected boolean isOrphaned(Collection<EObject> semanticChildren,
+ final View view) {
+ return isMyDiagramElement(view)
+ && !semanticChildren.contains(view.getElement());
+ }
+
+ /**
+ * @generated
+ */
+ private boolean isMyDiagramElement(View view) {
+ int visualID = ComrelVisualIDRegistry.getVisualID(view);
+ switch (visualID) {
+ case CartesianQueuedUnit3EditPart.VISUAL_ID:
+ case ParallelQueuedUnit4EditPart.VISUAL_ID:
+ case SingleQueuedUnit3EditPart.VISUAL_ID:
+ case SequentialUnit3EditPart.VISUAL_ID:
+ case ConditionalUnit3EditPart.VISUAL_ID:
+ case AtomicUnit3EditPart.VISUAL_ID:
+ return true;
+ }
+ return false;
+ }
+
+ /**
+ * @generated
+ */
+ protected void refreshSemantic() {
+ if (resolveSemanticElement() == null) {
+ return;
+ }
+ LinkedList<IAdaptable> createdViews = new LinkedList<IAdaptable>();
+ List<ComrelNodeDescriptor> childDescriptors = ComrelDiagramUpdater
+ .getParallelQueuedUnitParallelQueuedUnitRefactoringUnitsCompartment_7034SemanticChildren((View) getHost()
+ .getModel());
+ LinkedList<View> orphaned = new LinkedList<View>();
+ // we care to check only views we recognize as ours
+ LinkedList<View> knownViewChildren = new LinkedList<View>();
+ for (View v : getViewChildren()) {
+ if (isMyDiagramElement(v)) {
+ knownViewChildren.add(v);
+ }
+ }
+ // alternative to #cleanCanonicalSemanticChildren(getViewChildren(), semanticChildren)
+ //
+ // iteration happens over list of desired semantic elements, trying to find best matching View, while original CEP
+ // iterates views, potentially losing view (size/bounds) information - i.e. if there are few views to reference same EObject, only last one
+ // to answer isOrphaned == true will be used for the domain element representation, see #cleanCanonicalSemanticChildren()
+ for (Iterator<ComrelNodeDescriptor> descriptorsIterator = childDescriptors
+ .iterator(); descriptorsIterator.hasNext();) {
+ ComrelNodeDescriptor next = descriptorsIterator.next();
+ String hint = ComrelVisualIDRegistry.getType(next.getVisualID());
+ LinkedList<View> perfectMatch = new LinkedList<View>(); // both semanticElement and hint match that of NodeDescriptor
+ for (View childView : getViewChildren()) {
+ EObject semanticElement = childView.getElement();
+ if (next.getModelElement().equals(semanticElement)) {
+ if (hint.equals(childView.getType())) {
+ perfectMatch.add(childView);
+ // actually, can stop iteration over view children here, but
+ // may want to use not the first view but last one as a 'real' match (the way original CEP does
+ // with its trick with viewToSemanticMap inside #cleanCanonicalSemanticChildren
+ }
+ }
+ }
+ if (perfectMatch.size() > 0) {
+ descriptorsIterator.remove(); // precise match found no need to create anything for the NodeDescriptor
+ // use only one view (first or last?), keep rest as orphaned for further consideration
+ knownViewChildren.remove(perfectMatch.getFirst());
+ }
+ }
+ // those left in knownViewChildren are subject to removal - they are our diagram elements we didn't find match to,
+ // or those we have potential matches to, and thus need to be recreated, preserving size/location information.
+ orphaned.addAll(knownViewChildren);
+ //
+ ArrayList<CreateViewRequest.ViewDescriptor> viewDescriptors = new ArrayList<CreateViewRequest.ViewDescriptor>(
+ childDescriptors.size());
+ for (ComrelNodeDescriptor next : childDescriptors) {
+ String hint = ComrelVisualIDRegistry.getType(next.getVisualID());
+ IAdaptable elementAdapter = new CanonicalElementAdapter(
+ next.getModelElement(), hint);
+ CreateViewRequest.ViewDescriptor descriptor = new CreateViewRequest.ViewDescriptor(
+ elementAdapter, Node.class, hint, ViewUtil.APPEND, false,
+ host().getDiagramPreferencesHint());
+ viewDescriptors.add(descriptor);
+ }
+
+ boolean changed = deleteViews(orphaned.iterator());
+ //
+ CreateViewRequest request = getCreateViewRequest(viewDescriptors);
+ Command cmd = getCreateViewCommand(request);
+ if (cmd != null && cmd.canExecute()) {
+ SetViewMutabilityCommand.makeMutable(
+ new EObjectAdapter(host().getNotationView())).execute();
+ executeCommand(cmd);
+ @SuppressWarnings("unchecked")
+ List<IAdaptable> nl = (List<IAdaptable>) request.getNewObject();
+ createdViews.addAll(nl);
+ }
+ if (changed || createdViews.size() > 0) {
+ postProcessRefreshSemantic(createdViews);
+ }
+ if (createdViews.size() > 1) {
+ // perform a layout of the container
+ DeferredLayoutCommand layoutCmd = new DeferredLayoutCommand(host()
+ .getEditingDomain(), createdViews, host());
+ executeCommand(new ICommandProxy(layoutCmd));
+ }
+
+ makeViewsImmutable(createdViews);
+ }
+}
diff --git a/org.eclipse.emf.refactor.comrel.diagram/src/comrel/diagram/edit/policies/ParallelQueuedUnitParallelQueuedUnitRefactoringUnitsCompartment5ItemSemanticEditPolicy.java b/org.eclipse.emf.refactor.comrel.diagram/src/comrel/diagram/edit/policies/ParallelQueuedUnitParallelQueuedUnitRefactoringUnitsCompartment5ItemSemanticEditPolicy.java
new file mode 100644
index 0000000..a22a109
--- /dev/null
+++ b/org.eclipse.emf.refactor.comrel.diagram/src/comrel/diagram/edit/policies/ParallelQueuedUnitParallelQueuedUnitRefactoringUnitsCompartment5ItemSemanticEditPolicy.java
@@ -0,0 +1,55 @@
+/*
+ *
+ */
+package comrel.diagram.edit.policies;
+
+import org.eclipse.gef.commands.Command;
+import org.eclipse.gmf.runtime.emf.type.core.requests.CreateElementRequest;
+
+import comrel.diagram.edit.commands.AtomicUnit3CreateCommand;
+import comrel.diagram.edit.commands.CartesianQueuedUnit3CreateCommand;
+import comrel.diagram.edit.commands.ConditionalUnit3CreateCommand;
+import comrel.diagram.edit.commands.ParallelQueuedUnit4CreateCommand;
+import comrel.diagram.edit.commands.SequentialUnit3CreateCommand;
+import comrel.diagram.edit.commands.SingleQueuedUnit3CreateCommand;
+import comrel.diagram.providers.ComrelElementTypes;
+
+/**
+ * @generated
+ */
+public class ParallelQueuedUnitParallelQueuedUnitRefactoringUnitsCompartment5ItemSemanticEditPolicy
+ extends ComrelBaseItemSemanticEditPolicy {
+
+ /**
+ * @generated
+ */
+ public ParallelQueuedUnitParallelQueuedUnitRefactoringUnitsCompartment5ItemSemanticEditPolicy() {
+ super(ComrelElementTypes.ParallelQueuedUnit_3045);
+ }
+
+ /**
+ * @generated
+ */
+ protected Command getCreateCommand(CreateElementRequest req) {
+ if (ComrelElementTypes.CartesianQueuedUnit_3007 == req.getElementType()) {
+ return getGEFWrapper(new CartesianQueuedUnit3CreateCommand(req));
+ }
+ if (ComrelElementTypes.ParallelQueuedUnit_3037 == req.getElementType()) {
+ return getGEFWrapper(new ParallelQueuedUnit4CreateCommand(req));
+ }
+ if (ComrelElementTypes.SingleQueuedUnit_3042 == req.getElementType()) {
+ return getGEFWrapper(new SingleQueuedUnit3CreateCommand(req));
+ }
+ if (ComrelElementTypes.SequentialUnit_3044 == req.getElementType()) {
+ return getGEFWrapper(new SequentialUnit3CreateCommand(req));
+ }
+ if (ComrelElementTypes.ConditionalUnit_3046 == req.getElementType()) {
+ return getGEFWrapper(new ConditionalUnit3CreateCommand(req));
+ }
+ if (ComrelElementTypes.AtomicUnit_3049 == req.getElementType()) {
+ return getGEFWrapper(new AtomicUnit3CreateCommand(req));
+ }
+ return super.getCreateCommand(req);
+ }
+
+}
diff --git a/org.eclipse.emf.refactor.comrel.diagram/src/comrel/diagram/edit/policies/ParallelQueuedUnitParallelQueuedUnitRefactoringUnitsCompartment6CanonicalEditPolicy.java b/org.eclipse.emf.refactor.comrel.diagram/src/comrel/diagram/edit/policies/ParallelQueuedUnitParallelQueuedUnitRefactoringUnitsCompartment6CanonicalEditPolicy.java
new file mode 100644
index 0000000..e747678
--- /dev/null
+++ b/org.eclipse.emf.refactor.comrel.diagram/src/comrel/diagram/edit/policies/ParallelQueuedUnitParallelQueuedUnitRefactoringUnitsCompartment6CanonicalEditPolicy.java
@@ -0,0 +1,177 @@
+/*
+ *
+ */
+package comrel.diagram.edit.policies;
+
+import java.util.ArrayList;
+import java.util.Collection;
+import java.util.Iterator;
+import java.util.LinkedList;
+import java.util.List;
+
+import org.eclipse.core.runtime.IAdaptable;
+import org.eclipse.emf.ecore.EObject;
+import org.eclipse.emf.ecore.EStructuralFeature;
+import org.eclipse.gef.commands.Command;
+import org.eclipse.gmf.runtime.diagram.core.util.ViewUtil;
+import org.eclipse.gmf.runtime.diagram.ui.commands.DeferredLayoutCommand;
+import org.eclipse.gmf.runtime.diagram.ui.commands.ICommandProxy;
+import org.eclipse.gmf.runtime.diagram.ui.commands.SetViewMutabilityCommand;
+import org.eclipse.gmf.runtime.diagram.ui.editpolicies.CanonicalEditPolicy;
+import org.eclipse.gmf.runtime.diagram.ui.requests.CreateViewRequest;
+import org.eclipse.gmf.runtime.emf.core.util.EObjectAdapter;
+import org.eclipse.gmf.runtime.notation.Node;
+import org.eclipse.gmf.runtime.notation.View;
+
+import comrel.ComrelPackage;
+import comrel.diagram.edit.parts.AtomicUnit3EditPart;
+import comrel.diagram.edit.parts.CartesianQueuedUnit3EditPart;
+import comrel.diagram.edit.parts.ConditionalUnit3EditPart;
+import comrel.diagram.edit.parts.ParallelQueuedUnit4EditPart;
+import comrel.diagram.edit.parts.SequentialUnit3EditPart;
+import comrel.diagram.edit.parts.SingleQueuedUnit3EditPart;
+import comrel.diagram.part.ComrelDiagramUpdater;
+import comrel.diagram.part.ComrelNodeDescriptor;
+import comrel.diagram.part.ComrelVisualIDRegistry;
+
+/**
+ * @generated
+ */
+public class ParallelQueuedUnitParallelQueuedUnitRefactoringUnitsCompartment6CanonicalEditPolicy
+ extends CanonicalEditPolicy {
+
+ /**
+ * @generated
+ */
+ protected EStructuralFeature getFeatureToSynchronize() {
+ return ComrelPackage.eINSTANCE.getParallelQueuedUnit_RefactoringUnits();
+ }
+
+ /**
+ * @generated
+ */
+ @SuppressWarnings("rawtypes")
+ protected List getSemanticChildrenList() {
+ View viewObject = (View) getHost().getModel();
+ LinkedList<EObject> result = new LinkedList<EObject>();
+ List<ComrelNodeDescriptor> childDescriptors = ComrelDiagramUpdater
+ .getParallelQueuedUnitParallelQueuedUnitRefactoringUnitsCompartment_7042SemanticChildren(viewObject);
+ for (ComrelNodeDescriptor d : childDescriptors) {
+ result.add(d.getModelElement());
+ }
+ return result;
+ }
+
+ /**
+ * @generated
+ */
+ protected boolean isOrphaned(Collection<EObject> semanticChildren,
+ final View view) {
+ return isMyDiagramElement(view)
+ && !semanticChildren.contains(view.getElement());
+ }
+
+ /**
+ * @generated
+ */
+ private boolean isMyDiagramElement(View view) {
+ int visualID = ComrelVisualIDRegistry.getVisualID(view);
+ switch (visualID) {
+ case CartesianQueuedUnit3EditPart.VISUAL_ID:
+ case ParallelQueuedUnit4EditPart.VISUAL_ID:
+ case SingleQueuedUnit3EditPart.VISUAL_ID:
+ case SequentialUnit3EditPart.VISUAL_ID:
+ case ConditionalUnit3EditPart.VISUAL_ID:
+ case AtomicUnit3EditPart.VISUAL_ID:
+ return true;
+ }
+ return false;
+ }
+
+ /**
+ * @generated
+ */
+ protected void refreshSemantic() {
+ if (resolveSemanticElement() == null) {
+ return;
+ }
+ LinkedList<IAdaptable> createdViews = new LinkedList<IAdaptable>();
+ List<ComrelNodeDescriptor> childDescriptors = ComrelDiagramUpdater
+ .getParallelQueuedUnitParallelQueuedUnitRefactoringUnitsCompartment_7042SemanticChildren((View) getHost()
+ .getModel());
+ LinkedList<View> orphaned = new LinkedList<View>();
+ // we care to check only views we recognize as ours
+ LinkedList<View> knownViewChildren = new LinkedList<View>();
+ for (View v : getViewChildren()) {
+ if (isMyDiagramElement(v)) {
+ knownViewChildren.add(v);
+ }
+ }
+ // alternative to #cleanCanonicalSemanticChildren(getViewChildren(), semanticChildren)
+ //
+ // iteration happens over list of desired semantic elements, trying to find best matching View, while original CEP
+ // iterates views, potentially losing view (size/bounds) information - i.e. if there are few views to reference same EObject, only last one
+ // to answer isOrphaned == true will be used for the domain element representation, see #cleanCanonicalSemanticChildren()
+ for (Iterator<ComrelNodeDescriptor> descriptorsIterator = childDescriptors
+ .iterator(); descriptorsIterator.hasNext();) {
+ ComrelNodeDescriptor next = descriptorsIterator.next();
+ String hint = ComrelVisualIDRegistry.getType(next.getVisualID());
+ LinkedList<View> perfectMatch = new LinkedList<View>(); // both semanticElement and hint match that of NodeDescriptor
+ for (View childView : getViewChildren()) {
+ EObject semanticElement = childView.getElement();
+ if (next.getModelElement().equals(semanticElement)) {
+ if (hint.equals(childView.getType())) {
+ perfectMatch.add(childView);
+ // actually, can stop iteration over view children here, but
+ // may want to use not the first view but last one as a 'real' match (the way original CEP does
+ // with its trick with viewToSemanticMap inside #cleanCanonicalSemanticChildren
+ }
+ }
+ }
+ if (perfectMatch.size() > 0) {
+ descriptorsIterator.remove(); // precise match found no need to create anything for the NodeDescriptor
+ // use only one view (first or last?), keep rest as orphaned for further consideration
+ knownViewChildren.remove(perfectMatch.getFirst());
+ }
+ }
+ // those left in knownViewChildren are subject to removal - they are our diagram elements we didn't find match to,
+ // or those we have potential matches to, and thus need to be recreated, preserving size/location information.
+ orphaned.addAll(knownViewChildren);
+ //
+ ArrayList<CreateViewRequest.ViewDescriptor> viewDescriptors = new ArrayList<CreateViewRequest.ViewDescriptor>(
+ childDescriptors.size());
+ for (ComrelNodeDescriptor next : childDescriptors) {
+ String hint = ComrelVisualIDRegistry.getType(next.getVisualID());
+ IAdaptable elementAdapter = new CanonicalElementAdapter(
+ next.getModelElement(), hint);
+ CreateViewRequest.ViewDescriptor descriptor = new CreateViewRequest.ViewDescriptor(
+ elementAdapter, Node.class, hint, ViewUtil.APPEND, false,
+ host().getDiagramPreferencesHint());
+ viewDescriptors.add(descriptor);
+ }
+
+ boolean changed = deleteViews(orphaned.iterator());
+ //
+ CreateViewRequest request = getCreateViewRequest(viewDescriptors);
+ Command cmd = getCreateViewCommand(request);
+ if (cmd != null && cmd.canExecute()) {
+ SetViewMutabilityCommand.makeMutable(
+ new EObjectAdapter(host().getNotationView())).execute();
+ executeCommand(cmd);
+ @SuppressWarnings("unchecked")
+ List<IAdaptable> nl = (List<IAdaptable>) request.getNewObject();
+ createdViews.addAll(nl);
+ }
+ if (changed || createdViews.size() > 0) {
+ postProcessRefreshSemantic(createdViews);
+ }
+ if (createdViews.size() > 1) {
+ // perform a layout of the container
+ DeferredLayoutCommand layoutCmd = new DeferredLayoutCommand(host()
+ .getEditingDomain(), createdViews, host());
+ executeCommand(new ICommandProxy(layoutCmd));
+ }
+
+ makeViewsImmutable(createdViews);
+ }
+}
diff --git a/org.eclipse.emf.refactor.comrel.diagram/src/comrel/diagram/edit/policies/ParallelQueuedUnitParallelQueuedUnitRefactoringUnitsCompartment6ItemSemanticEditPolicy.java b/org.eclipse.emf.refactor.comrel.diagram/src/comrel/diagram/edit/policies/ParallelQueuedUnitParallelQueuedUnitRefactoringUnitsCompartment6ItemSemanticEditPolicy.java
new file mode 100644
index 0000000..8c1b8f8
--- /dev/null
+++ b/org.eclipse.emf.refactor.comrel.diagram/src/comrel/diagram/edit/policies/ParallelQueuedUnitParallelQueuedUnitRefactoringUnitsCompartment6ItemSemanticEditPolicy.java
@@ -0,0 +1,55 @@
+/*
+ *
+ */
+package comrel.diagram.edit.policies;
+
+import org.eclipse.gef.commands.Command;
+import org.eclipse.gmf.runtime.emf.type.core.requests.CreateElementRequest;
+
+import comrel.diagram.edit.commands.AtomicUnit3CreateCommand;
+import comrel.diagram.edit.commands.CartesianQueuedUnit3CreateCommand;
+import comrel.diagram.edit.commands.ConditionalUnit3CreateCommand;
+import comrel.diagram.edit.commands.ParallelQueuedUnit4CreateCommand;
+import comrel.diagram.edit.commands.SequentialUnit3CreateCommand;
+import comrel.diagram.edit.commands.SingleQueuedUnit3CreateCommand;
+import comrel.diagram.providers.ComrelElementTypes;
+
+/**
+ * @generated
+ */
+public class ParallelQueuedUnitParallelQueuedUnitRefactoringUnitsCompartment6ItemSemanticEditPolicy
+ extends ComrelBaseItemSemanticEditPolicy {
+
+ /**
+ * @generated
+ */
+ public ParallelQueuedUnitParallelQueuedUnitRefactoringUnitsCompartment6ItemSemanticEditPolicy() {
+ super(ComrelElementTypes.ParallelQueuedUnit_3048);
+ }
+
+ /**
+ * @generated
+ */
+ protected Command getCreateCommand(CreateElementRequest req) {
+ if (ComrelElementTypes.CartesianQueuedUnit_3007 == req.getElementType()) {
+ return getGEFWrapper(new CartesianQueuedUnit3CreateCommand(req));
+ }
+ if (ComrelElementTypes.ParallelQueuedUnit_3037 == req.getElementType()) {
+ return getGEFWrapper(new ParallelQueuedUnit4CreateCommand(req));
+ }
+ if (ComrelElementTypes.SingleQueuedUnit_3042 == req.getElementType()) {
+ return getGEFWrapper(new SingleQueuedUnit3CreateCommand(req));
+ }
+ if (ComrelElementTypes.SequentialUnit_3044 == req.getElementType()) {
+ return getGEFWrapper(new SequentialUnit3CreateCommand(req));
+ }
+ if (ComrelElementTypes.ConditionalUnit_3046 == req.getElementType()) {
+ return getGEFWrapper(new ConditionalUnit3CreateCommand(req));
+ }
+ if (ComrelElementTypes.AtomicUnit_3049 == req.getElementType()) {
+ return getGEFWrapper(new AtomicUnit3CreateCommand(req));
+ }
+ return super.getCreateCommand(req);
+ }
+
+}
diff --git a/org.eclipse.emf.refactor.comrel.diagram/src/comrel/diagram/edit/policies/ParallelQueuedUnitParallelQueuedUnitRefactoringUnitsCompartment7CanonicalEditPolicy.java b/org.eclipse.emf.refactor.comrel.diagram/src/comrel/diagram/edit/policies/ParallelQueuedUnitParallelQueuedUnitRefactoringUnitsCompartment7CanonicalEditPolicy.java
new file mode 100644
index 0000000..170dce9
--- /dev/null
+++ b/org.eclipse.emf.refactor.comrel.diagram/src/comrel/diagram/edit/policies/ParallelQueuedUnitParallelQueuedUnitRefactoringUnitsCompartment7CanonicalEditPolicy.java
@@ -0,0 +1,177 @@
+/*
+ *
+ */
+package comrel.diagram.edit.policies;
+
+import java.util.ArrayList;
+import java.util.Collection;
+import java.util.Iterator;
+import java.util.LinkedList;
+import java.util.List;
+
+import org.eclipse.core.runtime.IAdaptable;
+import org.eclipse.emf.ecore.EObject;
+import org.eclipse.emf.ecore.EStructuralFeature;
+import org.eclipse.gef.commands.Command;
+import org.eclipse.gmf.runtime.diagram.core.util.ViewUtil;
+import org.eclipse.gmf.runtime.diagram.ui.commands.DeferredLayoutCommand;
+import org.eclipse.gmf.runtime.diagram.ui.commands.ICommandProxy;
+import org.eclipse.gmf.runtime.diagram.ui.commands.SetViewMutabilityCommand;
+import org.eclipse.gmf.runtime.diagram.ui.editpolicies.CanonicalEditPolicy;
+import org.eclipse.gmf.runtime.diagram.ui.requests.CreateViewRequest;
+import org.eclipse.gmf.runtime.emf.core.util.EObjectAdapter;
+import org.eclipse.gmf.runtime.notation.Node;
+import org.eclipse.gmf.runtime.notation.View;
+
+import comrel.ComrelPackage;
+import comrel.diagram.edit.parts.AtomicUnit3EditPart;
+import comrel.diagram.edit.parts.CartesianQueuedUnit3EditPart;
+import comrel.diagram.edit.parts.ConditionalUnit3EditPart;
+import comrel.diagram.edit.parts.ParallelQueuedUnit4EditPart;
+import comrel.diagram.edit.parts.SequentialUnit3EditPart;
+import comrel.diagram.edit.parts.SingleQueuedUnit3EditPart;
+import comrel.diagram.part.ComrelDiagramUpdater;
+import comrel.diagram.part.ComrelNodeDescriptor;
+import comrel.diagram.part.ComrelVisualIDRegistry;
+
+/**
+ * @generated
+ */
+public class ParallelQueuedUnitParallelQueuedUnitRefactoringUnitsCompartment7CanonicalEditPolicy
+ extends CanonicalEditPolicy {
+
+ /**
+ * @generated
+ */
+ protected EStructuralFeature getFeatureToSynchronize() {
+ return ComrelPackage.eINSTANCE.getParallelQueuedUnit_RefactoringUnits();
+ }
+
+ /**
+ * @generated
+ */
+ @SuppressWarnings("rawtypes")
+ protected List getSemanticChildrenList() {
+ View viewObject = (View) getHost().getModel();
+ LinkedList<EObject> result = new LinkedList<EObject>();
+ List<ComrelNodeDescriptor> childDescriptors = ComrelDiagramUpdater
+ .getParallelQueuedUnitParallelQueuedUnitRefactoringUnitsCompartment_7076SemanticChildren(viewObject);
+ for (ComrelNodeDescriptor d : childDescriptors) {
+ result.add(d.getModelElement());
+ }
+ return result;
+ }
+
+ /**
+ * @generated
+ */
+ protected boolean isOrphaned(Collection<EObject> semanticChildren,
+ final View view) {
+ return isMyDiagramElement(view)
+ && !semanticChildren.contains(view.getElement());
+ }
+
+ /**
+ * @generated
+ */
+ private boolean isMyDiagramElement(View view) {
+ int visualID = ComrelVisualIDRegistry.getVisualID(view);
+ switch (visualID) {
+ case CartesianQueuedUnit3EditPart.VISUAL_ID:
+ case ParallelQueuedUnit4EditPart.VISUAL_ID:
+ case SingleQueuedUnit3EditPart.VISUAL_ID:
+ case SequentialUnit3EditPart.VISUAL_ID:
+ case ConditionalUnit3EditPart.VISUAL_ID:
+ case AtomicUnit3EditPart.VISUAL_ID:
+ return true;
+ }
+ return false;
+ }
+
+ /**
+ * @generated
+ */
+ protected void refreshSemantic() {
+ if (resolveSemanticElement() == null) {
+ return;
+ }
+ LinkedList<IAdaptable> createdViews = new LinkedList<IAdaptable>();
+ List<ComrelNodeDescriptor> childDescriptors = ComrelDiagramUpdater
+ .getParallelQueuedUnitParallelQueuedUnitRefactoringUnitsCompartment_7076SemanticChildren((View) getHost()
+ .getModel());
+ LinkedList<View> orphaned = new LinkedList<View>();
+ // we care to check only views we recognize as ours
+ LinkedList<View> knownViewChildren = new LinkedList<View>();
+ for (View v : getViewChildren()) {
+ if (isMyDiagramElement(v)) {
+ knownViewChildren.add(v);
+ }
+ }
+ // alternative to #cleanCanonicalSemanticChildren(getViewChildren(), semanticChildren)
+ //
+ // iteration happens over list of desired semantic elements, trying to find best matching View, while original CEP
+ // iterates views, potentially losing view (size/bounds) information - i.e. if there are few views to reference same EObject, only last one
+ // to answer isOrphaned == true will be used for the domain element representation, see #cleanCanonicalSemanticChildren()
+ for (Iterator<ComrelNodeDescriptor> descriptorsIterator = childDescriptors
+ .iterator(); descriptorsIterator.hasNext();) {
+ ComrelNodeDescriptor next = descriptorsIterator.next();
+ String hint = ComrelVisualIDRegistry.getType(next.getVisualID());
+ LinkedList<View> perfectMatch = new LinkedList<View>(); // both semanticElement and hint match that of NodeDescriptor
+ for (View childView : getViewChildren()) {
+ EObject semanticElement = childView.getElement();
+ if (next.getModelElement().equals(semanticElement)) {
+ if (hint.equals(childView.getType())) {
+ perfectMatch.add(childView);
+ // actually, can stop iteration over view children here, but
+ // may want to use not the first view but last one as a 'real' match (the way original CEP does
+ // with its trick with viewToSemanticMap inside #cleanCanonicalSemanticChildren
+ }
+ }
+ }
+ if (perfectMatch.size() > 0) {
+ descriptorsIterator.remove(); // precise match found no need to create anything for the NodeDescriptor
+ // use only one view (first or last?), keep rest as orphaned for further consideration
+ knownViewChildren.remove(perfectMatch.getFirst());
+ }
+ }
+ // those left in knownViewChildren are subject to removal - they are our diagram elements we didn't find match to,
+ // or those we have potential matches to, and thus need to be recreated, preserving size/location information.
+ orphaned.addAll(knownViewChildren);
+ //
+ ArrayList<CreateViewRequest.ViewDescriptor> viewDescriptors = new ArrayList<CreateViewRequest.ViewDescriptor>(
+ childDescriptors.size());
+ for (ComrelNodeDescriptor next : childDescriptors) {
+ String hint = ComrelVisualIDRegistry.getType(next.getVisualID());
+ IAdaptable elementAdapter = new CanonicalElementAdapter(
+ next.getModelElement(), hint);
+ CreateViewRequest.ViewDescriptor descriptor = new CreateViewRequest.ViewDescriptor(
+ elementAdapter, Node.class, hint, ViewUtil.APPEND, false,
+ host().getDiagramPreferencesHint());
+ viewDescriptors.add(descriptor);
+ }
+
+ boolean changed = deleteViews(orphaned.iterator());
+ //
+ CreateViewRequest request = getCreateViewRequest(viewDescriptors);
+ Command cmd = getCreateViewCommand(request);
+ if (cmd != null && cmd.canExecute()) {
+ SetViewMutabilityCommand.makeMutable(
+ new EObjectAdapter(host().getNotationView())).execute();
+ executeCommand(cmd);
+ @SuppressWarnings("unchecked")
+ List<IAdaptable> nl = (List<IAdaptable>) request.getNewObject();
+ createdViews.addAll(nl);
+ }
+ if (changed || createdViews.size() > 0) {
+ postProcessRefreshSemantic(createdViews);
+ }
+ if (createdViews.size() > 1) {
+ // perform a layout of the container
+ DeferredLayoutCommand layoutCmd = new DeferredLayoutCommand(host()
+ .getEditingDomain(), createdViews, host());
+ executeCommand(new ICommandProxy(layoutCmd));
+ }
+
+ makeViewsImmutable(createdViews);
+ }
+}
diff --git a/org.eclipse.emf.refactor.comrel.diagram/src/comrel/diagram/edit/policies/ParallelQueuedUnitParallelQueuedUnitRefactoringUnitsCompartment7ItemSemanticEditPolicy.java b/org.eclipse.emf.refactor.comrel.diagram/src/comrel/diagram/edit/policies/ParallelQueuedUnitParallelQueuedUnitRefactoringUnitsCompartment7ItemSemanticEditPolicy.java
new file mode 100644
index 0000000..b812fb1
--- /dev/null
+++ b/org.eclipse.emf.refactor.comrel.diagram/src/comrel/diagram/edit/policies/ParallelQueuedUnitParallelQueuedUnitRefactoringUnitsCompartment7ItemSemanticEditPolicy.java
@@ -0,0 +1,55 @@
+/*
+ *
+ */
+package comrel.diagram.edit.policies;
+
+import org.eclipse.gef.commands.Command;
+import org.eclipse.gmf.runtime.emf.type.core.requests.CreateElementRequest;
+
+import comrel.diagram.edit.commands.AtomicUnit3CreateCommand;
+import comrel.diagram.edit.commands.CartesianQueuedUnit3CreateCommand;
+import comrel.diagram.edit.commands.ConditionalUnit3CreateCommand;
+import comrel.diagram.edit.commands.ParallelQueuedUnit4CreateCommand;
+import comrel.diagram.edit.commands.SequentialUnit3CreateCommand;
+import comrel.diagram.edit.commands.SingleQueuedUnit3CreateCommand;
+import comrel.diagram.providers.ComrelElementTypes;
+
+/**
+ * @generated
+ */
+public class ParallelQueuedUnitParallelQueuedUnitRefactoringUnitsCompartment7ItemSemanticEditPolicy
+ extends ComrelBaseItemSemanticEditPolicy {
+
+ /**
+ * @generated
+ */
+ public ParallelQueuedUnitParallelQueuedUnitRefactoringUnitsCompartment7ItemSemanticEditPolicy() {
+ super(ComrelElementTypes.ParallelQueuedUnit_2003);
+ }
+
+ /**
+ * @generated
+ */
+ protected Command getCreateCommand(CreateElementRequest req) {
+ if (ComrelElementTypes.CartesianQueuedUnit_3007 == req.getElementType()) {
+ return getGEFWrapper(new CartesianQueuedUnit3CreateCommand(req));
+ }
+ if (ComrelElementTypes.ParallelQueuedUnit_3037 == req.getElementType()) {
+ return getGEFWrapper(new ParallelQueuedUnit4CreateCommand(req));
+ }
+ if (ComrelElementTypes.SingleQueuedUnit_3042 == req.getElementType()) {
+ return getGEFWrapper(new SingleQueuedUnit3CreateCommand(req));
+ }
+ if (ComrelElementTypes.SequentialUnit_3044 == req.getElementType()) {
+ return getGEFWrapper(new SequentialUnit3CreateCommand(req));
+ }
+ if (ComrelElementTypes.ConditionalUnit_3046 == req.getElementType()) {
+ return getGEFWrapper(new ConditionalUnit3CreateCommand(req));
+ }
+ if (ComrelElementTypes.AtomicUnit_3049 == req.getElementType()) {
+ return getGEFWrapper(new AtomicUnit3CreateCommand(req));
+ }
+ return super.getCreateCommand(req);
+ }
+
+}
diff --git a/org.eclipse.emf.refactor.comrel.diagram/src/comrel/diagram/edit/policies/ParallelQueuedUnitParallelQueuedUnitRefactoringUnitsCompartmentCanonicalEditPolicy.java b/org.eclipse.emf.refactor.comrel.diagram/src/comrel/diagram/edit/policies/ParallelQueuedUnitParallelQueuedUnitRefactoringUnitsCompartmentCanonicalEditPolicy.java
new file mode 100644
index 0000000..2f888a2
--- /dev/null
+++ b/org.eclipse.emf.refactor.comrel.diagram/src/comrel/diagram/edit/policies/ParallelQueuedUnitParallelQueuedUnitRefactoringUnitsCompartmentCanonicalEditPolicy.java
@@ -0,0 +1,177 @@
+/*
+ *
+ */
+package comrel.diagram.edit.policies;
+
+import java.util.ArrayList;
+import java.util.Collection;
+import java.util.Iterator;
+import java.util.LinkedList;
+import java.util.List;
+
+import org.eclipse.core.runtime.IAdaptable;
+import org.eclipse.emf.ecore.EObject;
+import org.eclipse.emf.ecore.EStructuralFeature;
+import org.eclipse.gef.commands.Command;
+import org.eclipse.gmf.runtime.diagram.core.util.ViewUtil;
+import org.eclipse.gmf.runtime.diagram.ui.commands.DeferredLayoutCommand;
+import org.eclipse.gmf.runtime.diagram.ui.commands.ICommandProxy;
+import org.eclipse.gmf.runtime.diagram.ui.commands.SetViewMutabilityCommand;
+import org.eclipse.gmf.runtime.diagram.ui.editpolicies.CanonicalEditPolicy;
+import org.eclipse.gmf.runtime.diagram.ui.requests.CreateViewRequest;
+import org.eclipse.gmf.runtime.emf.core.util.EObjectAdapter;
+import org.eclipse.gmf.runtime.notation.Node;
+import org.eclipse.gmf.runtime.notation.View;
+
+import comrel.ComrelPackage;
+import comrel.diagram.edit.parts.AtomicUnit3EditPart;
+import comrel.diagram.edit.parts.CartesianQueuedUnit3EditPart;
+import comrel.diagram.edit.parts.ConditionalUnit3EditPart;
+import comrel.diagram.edit.parts.ParallelQueuedUnit4EditPart;
+import comrel.diagram.edit.parts.SequentialUnit3EditPart;
+import comrel.diagram.edit.parts.SingleQueuedUnit3EditPart;
+import comrel.diagram.part.ComrelDiagramUpdater;
+import comrel.diagram.part.ComrelNodeDescriptor;
+import comrel.diagram.part.ComrelVisualIDRegistry;
+
+/**
+ * @generated
+ */
+public class ParallelQueuedUnitParallelQueuedUnitRefactoringUnitsCompartmentCanonicalEditPolicy
+ extends CanonicalEditPolicy {
+
+ /**
+ * @generated
+ */
+ protected EStructuralFeature getFeatureToSynchronize() {
+ return ComrelPackage.eINSTANCE.getParallelQueuedUnit_RefactoringUnits();
+ }
+
+ /**
+ * @generated
+ */
+ @SuppressWarnings("rawtypes")
+ protected List getSemanticChildrenList() {
+ View viewObject = (View) getHost().getModel();
+ LinkedList<EObject> result = new LinkedList<EObject>();
+ List<ComrelNodeDescriptor> childDescriptors = ComrelDiagramUpdater
+ .getParallelQueuedUnitParallelQueuedUnitRefactoringUnitsCompartment_7006SemanticChildren(viewObject);
+ for (ComrelNodeDescriptor d : childDescriptors) {
+ result.add(d.getModelElement());
+ }
+ return result;
+ }
+
+ /**
+ * @generated
+ */
+ protected boolean isOrphaned(Collection<EObject> semanticChildren,
+ final View view) {
+ return isMyDiagramElement(view)
+ && !semanticChildren.contains(view.getElement());
+ }
+
+ /**
+ * @generated
+ */
+ private boolean isMyDiagramElement(View view) {
+ int visualID = ComrelVisualIDRegistry.getVisualID(view);
+ switch (visualID) {
+ case CartesianQueuedUnit3EditPart.VISUAL_ID:
+ case ParallelQueuedUnit4EditPart.VISUAL_ID:
+ case SingleQueuedUnit3EditPart.VISUAL_ID:
+ case SequentialUnit3EditPart.VISUAL_ID:
+ case ConditionalUnit3EditPart.VISUAL_ID:
+ case AtomicUnit3EditPart.VISUAL_ID:
+ return true;
+ }
+ return false;
+ }
+
+ /**
+ * @generated
+ */
+ protected void refreshSemantic() {
+ if (resolveSemanticElement() == null) {
+ return;
+ }
+ LinkedList<IAdaptable> createdViews = new LinkedList<IAdaptable>();
+ List<ComrelNodeDescriptor> childDescriptors = ComrelDiagramUpdater
+ .getParallelQueuedUnitParallelQueuedUnitRefactoringUnitsCompartment_7006SemanticChildren((View) getHost()
+ .getModel());
+ LinkedList<View> orphaned = new LinkedList<View>();
+ // we care to check only views we recognize as ours
+ LinkedList<View> knownViewChildren = new LinkedList<View>();
+ for (View v : getViewChildren()) {
+ if (isMyDiagramElement(v)) {
+ knownViewChildren.add(v);
+ }
+ }
+ // alternative to #cleanCanonicalSemanticChildren(getViewChildren(), semanticChildren)
+ //
+ // iteration happens over list of desired semantic elements, trying to find best matching View, while original CEP
+ // iterates views, potentially losing view (size/bounds) information - i.e. if there are few views to reference same EObject, only last one
+ // to answer isOrphaned == true will be used for the domain element representation, see #cleanCanonicalSemanticChildren()
+ for (Iterator<ComrelNodeDescriptor> descriptorsIterator = childDescriptors
+ .iterator(); descriptorsIterator.hasNext();) {
+ ComrelNodeDescriptor next = descriptorsIterator.next();
+ String hint = ComrelVisualIDRegistry.getType(next.getVisualID());
+ LinkedList<View> perfectMatch = new LinkedList<View>(); // both semanticElement and hint match that of NodeDescriptor
+ for (View childView : getViewChildren()) {
+ EObject semanticElement = childView.getElement();
+ if (next.getModelElement().equals(semanticElement)) {
+ if (hint.equals(childView.getType())) {
+ perfectMatch.add(childView);
+ // actually, can stop iteration over view children here, but
+ // may want to use not the first view but last one as a 'real' match (the way original CEP does
+ // with its trick with viewToSemanticMap inside #cleanCanonicalSemanticChildren
+ }
+ }
+ }
+ if (perfectMatch.size() > 0) {
+ descriptorsIterator.remove(); // precise match found no need to create anything for the NodeDescriptor
+ // use only one view (first or last?), keep rest as orphaned for further consideration
+ knownViewChildren.remove(perfectMatch.getFirst());
+ }
+ }
+ // those left in knownViewChildren are subject to removal - they are our diagram elements we didn't find match to,
+ // or those we have potential matches to, and thus need to be recreated, preserving size/location information.
+ orphaned.addAll(knownViewChildren);
+ //
+ ArrayList<CreateViewRequest.ViewDescriptor> viewDescriptors = new ArrayList<CreateViewRequest.ViewDescriptor>(
+ childDescriptors.size());
+ for (ComrelNodeDescriptor next : childDescriptors) {
+ String hint = ComrelVisualIDRegistry.getType(next.getVisualID());
+ IAdaptable elementAdapter = new CanonicalElementAdapter(
+ next.getModelElement(), hint);
+ CreateViewRequest.ViewDescriptor descriptor = new CreateViewRequest.ViewDescriptor(
+ elementAdapter, Node.class, hint, ViewUtil.APPEND, false,
+ host().getDiagramPreferencesHint());
+ viewDescriptors.add(descriptor);
+ }
+
+ boolean changed = deleteViews(orphaned.iterator());
+ //
+ CreateViewRequest request = getCreateViewRequest(viewDescriptors);
+ Command cmd = getCreateViewCommand(request);
+ if (cmd != null && cmd.canExecute()) {
+ SetViewMutabilityCommand.makeMutable(
+ new EObjectAdapter(host().getNotationView())).execute();
+ executeCommand(cmd);
+ @SuppressWarnings("unchecked")
+ List<IAdaptable> nl = (List<IAdaptable>) request.getNewObject();
+ createdViews.addAll(nl);
+ }
+ if (changed || createdViews.size() > 0) {
+ postProcessRefreshSemantic(createdViews);
+ }
+ if (createdViews.size() > 1) {
+ // perform a layout of the container
+ DeferredLayoutCommand layoutCmd = new DeferredLayoutCommand(host()
+ .getEditingDomain(), createdViews, host());
+ executeCommand(new ICommandProxy(layoutCmd));
+ }
+
+ makeViewsImmutable(createdViews);
+ }
+}
diff --git a/org.eclipse.emf.refactor.comrel.diagram/src/comrel/diagram/edit/policies/ParallelQueuedUnitParallelQueuedUnitRefactoringUnitsCompartmentItemSemanticEditPolicy.java b/org.eclipse.emf.refactor.comrel.diagram/src/comrel/diagram/edit/policies/ParallelQueuedUnitParallelQueuedUnitRefactoringUnitsCompartmentItemSemanticEditPolicy.java
new file mode 100644
index 0000000..9953bc3
--- /dev/null
+++ b/org.eclipse.emf.refactor.comrel.diagram/src/comrel/diagram/edit/policies/ParallelQueuedUnitParallelQueuedUnitRefactoringUnitsCompartmentItemSemanticEditPolicy.java
@@ -0,0 +1,55 @@
+/*
+ *
+ */
+package comrel.diagram.edit.policies;
+
+import org.eclipse.gef.commands.Command;
+import org.eclipse.gmf.runtime.emf.type.core.requests.CreateElementRequest;
+
+import comrel.diagram.edit.commands.AtomicUnit3CreateCommand;
+import comrel.diagram.edit.commands.CartesianQueuedUnit3CreateCommand;
+import comrel.diagram.edit.commands.ConditionalUnit3CreateCommand;
+import comrel.diagram.edit.commands.ParallelQueuedUnit4CreateCommand;
+import comrel.diagram.edit.commands.SequentialUnit3CreateCommand;
+import comrel.diagram.edit.commands.SingleQueuedUnit3CreateCommand;
+import comrel.diagram.providers.ComrelElementTypes;
+
+/**
+ * @generated
+ */
+public class ParallelQueuedUnitParallelQueuedUnitRefactoringUnitsCompartmentItemSemanticEditPolicy
+ extends ComrelBaseItemSemanticEditPolicy {
+
+ /**
+ * @generated
+ */
+ public ParallelQueuedUnitParallelQueuedUnitRefactoringUnitsCompartmentItemSemanticEditPolicy() {
+ super(ComrelElementTypes.ParallelQueuedUnit_3004);
+ }
+
+ /**
+ * @generated
+ */
+ protected Command getCreateCommand(CreateElementRequest req) {
+ if (ComrelElementTypes.CartesianQueuedUnit_3007 == req.getElementType()) {
+ return getGEFWrapper(new CartesianQueuedUnit3CreateCommand(req));
+ }
+ if (ComrelElementTypes.ParallelQueuedUnit_3037 == req.getElementType()) {
+ return getGEFWrapper(new ParallelQueuedUnit4CreateCommand(req));
+ }
+ if (ComrelElementTypes.SingleQueuedUnit_3042 == req.getElementType()) {
+ return getGEFWrapper(new SingleQueuedUnit3CreateCommand(req));
+ }
+ if (ComrelElementTypes.SequentialUnit_3044 == req.getElementType()) {
+ return getGEFWrapper(new SequentialUnit3CreateCommand(req));
+ }
+ if (ComrelElementTypes.ConditionalUnit_3046 == req.getElementType()) {
+ return getGEFWrapper(new ConditionalUnit3CreateCommand(req));
+ }
+ if (ComrelElementTypes.AtomicUnit_3049 == req.getElementType()) {
+ return getGEFWrapper(new AtomicUnit3CreateCommand(req));
+ }
+ return super.getCreateCommand(req);
+ }
+
+}
diff --git a/org.eclipse.emf.refactor.comrel.diagram/src/comrel/diagram/edit/policies/SequentialUnit2CanonicalEditPolicy.java b/org.eclipse.emf.refactor.comrel.diagram/src/comrel/diagram/edit/policies/SequentialUnit2CanonicalEditPolicy.java
new file mode 100644
index 0000000..50993b1
--- /dev/null
+++ b/org.eclipse.emf.refactor.comrel.diagram/src/comrel/diagram/edit/policies/SequentialUnit2CanonicalEditPolicy.java
@@ -0,0 +1,164 @@
+/*
+ *
+ */
+package comrel.diagram.edit.policies;
+
+import java.util.ArrayList;
+import java.util.Collection;
+import java.util.Iterator;
+import java.util.LinkedList;
+import java.util.List;
+
+import org.eclipse.core.runtime.IAdaptable;
+import org.eclipse.emf.ecore.EObject;
+import org.eclipse.emf.ecore.EStructuralFeature;
+import org.eclipse.gef.commands.Command;
+import org.eclipse.gmf.runtime.diagram.core.util.ViewUtil;
+import org.eclipse.gmf.runtime.diagram.ui.commands.DeferredLayoutCommand;
+import org.eclipse.gmf.runtime.diagram.ui.commands.ICommandProxy;
+import org.eclipse.gmf.runtime.diagram.ui.commands.SetViewMutabilityCommand;
+import org.eclipse.gmf.runtime.diagram.ui.editpolicies.CanonicalEditPolicy;
+import org.eclipse.gmf.runtime.diagram.ui.requests.CreateViewRequest;
+import org.eclipse.gmf.runtime.emf.core.util.EObjectAdapter;
+import org.eclipse.gmf.runtime.notation.Node;
+import org.eclipse.gmf.runtime.notation.View;
+
+import comrel.ComrelPackage;
+import comrel.diagram.edit.parts.MultiInputPort8EditPart;
+import comrel.diagram.edit.parts.SingleInputPort7EditPart;
+import comrel.diagram.part.ComrelDiagramUpdater;
+import comrel.diagram.part.ComrelNodeDescriptor;
+import comrel.diagram.part.ComrelVisualIDRegistry;
+
+/**
+ * @generated
+ */
+public class SequentialUnit2CanonicalEditPolicy extends CanonicalEditPolicy {
+
+ /**
+ * @generated
+ */
+ protected EStructuralFeature getFeatureToSynchronize() {
+ return ComrelPackage.eINSTANCE.getSequentialUnit_InputPorts();
+ }
+
+ /**
+ * @generated
+ */
+ @SuppressWarnings("rawtypes")
+ protected List getSemanticChildrenList() {
+ View viewObject = (View) getHost().getModel();
+ LinkedList<EObject> result = new LinkedList<EObject>();
+ List<ComrelNodeDescriptor> childDescriptors = ComrelDiagramUpdater
+ .getSequentialUnit_3026SemanticChildren(viewObject);
+ for (ComrelNodeDescriptor d : childDescriptors) {
+ result.add(d.getModelElement());
+ }
+ return result;
+ }
+
+ /**
+ * @generated
+ */
+ protected boolean isOrphaned(Collection<EObject> semanticChildren,
+ final View view) {
+ return isMyDiagramElement(view)
+ && !semanticChildren.contains(view.getElement());
+ }
+
+ /**
+ * @generated
+ */
+ private boolean isMyDiagramElement(View view) {
+ int visualID = ComrelVisualIDRegistry.getVisualID(view);
+ return visualID == SingleInputPort7EditPart.VISUAL_ID
+ || visualID == MultiInputPort8EditPart.VISUAL_ID;
+ }
+
+ /**
+ * @generated
+ */
+ protected void refreshSemantic() {
+ if (resolveSemanticElement() == null) {
+ return;
+ }
+ LinkedList<IAdaptable> createdViews = new LinkedList<IAdaptable>();
+ List<ComrelNodeDescriptor> childDescriptors = ComrelDiagramUpdater
+ .getSequentialUnit_3026SemanticChildren((View) getHost()
+ .getModel());
+ LinkedList<View> orphaned = new LinkedList<View>();
+ // we care to check only views we recognize as ours
+ LinkedList<View> knownViewChildren = new LinkedList<View>();
+ for (View v : getViewChildren()) {
+ if (isMyDiagramElement(v)) {
+ knownViewChildren.add(v);
+ }
+ }
+ // alternative to #cleanCanonicalSemanticChildren(getViewChildren(), semanticChildren)
+ //
+ // iteration happens over list of desired semantic elements, trying to find best matching View, while original CEP
+ // iterates views, potentially losing view (size/bounds) information - i.e. if there are few views to reference same EObject, only last one
+ // to answer isOrphaned == true will be used for the domain element representation, see #cleanCanonicalSemanticChildren()
+ for (Iterator<ComrelNodeDescriptor> descriptorsIterator = childDescriptors
+ .iterator(); descriptorsIterator.hasNext();) {
+ ComrelNodeDescriptor next = descriptorsIterator.next();
+ String hint = ComrelVisualIDRegistry.getType(next.getVisualID());
+ LinkedList<View> perfectMatch = new LinkedList<View>(); // both semanticElement and hint match that of NodeDescriptor
+ for (View childView : getViewChildren()) {
+ EObject semanticElement = childView.getElement();
+ if (next.getModelElement().equals(semanticElement)) {
+ if (hint.equals(childView.getType())) {
+ perfectMatch.add(childView);
+ // actually, can stop iteration over view children here, but
+ // may want to use not the first view but last one as a 'real' match (the way original CEP does
+ // with its trick with viewToSemanticMap inside #cleanCanonicalSemanticChildren
+ }
+ }
+ }
+ if (perfectMatch.size() > 0) {
+ descriptorsIterator.remove(); // precise match found no need to create anything for the NodeDescriptor
+ // use only one view (first or last?), keep rest as orphaned for further consideration
+ knownViewChildren.remove(perfectMatch.getFirst());
+ }
+ }
+ // those left in knownViewChildren are subject to removal - they are our diagram elements we didn't find match to,
+ // or those we have potential matches to, and thus need to be recreated, preserving size/location information.
+ orphaned.addAll(knownViewChildren);
+ //
+ ArrayList<CreateViewRequest.ViewDescriptor> viewDescriptors = new ArrayList<CreateViewRequest.ViewDescriptor>(
+ childDescriptors.size());
+ for (ComrelNodeDescriptor next : childDescriptors) {
+ String hint = ComrelVisualIDRegistry.getType(next.getVisualID());
+ IAdaptable elementAdapter = new CanonicalElementAdapter(
+ next.getModelElement(), hint);
+ CreateViewRequest.ViewDescriptor descriptor = new CreateViewRequest.ViewDescriptor(
+ elementAdapter, Node.class, hint, ViewUtil.APPEND, false,
+ host().getDiagramPreferencesHint());
+ viewDescriptors.add(descriptor);
+ }
+
+ boolean changed = deleteViews(orphaned.iterator());
+ //
+ CreateViewRequest request = getCreateViewRequest(viewDescriptors);
+ Command cmd = getCreateViewCommand(request);
+ if (cmd != null && cmd.canExecute()) {
+ SetViewMutabilityCommand.makeMutable(
+ new EObjectAdapter(host().getNotationView())).execute();
+ executeCommand(cmd);
+ @SuppressWarnings("unchecked")
+ List<IAdaptable> nl = (List<IAdaptable>) request.getNewObject();
+ createdViews.addAll(nl);
+ }
+ if (changed || createdViews.size() > 0) {
+ postProcessRefreshSemantic(createdViews);
+ }
+ if (createdViews.size() > 1) {
+ // perform a layout of the container
+ DeferredLayoutCommand layoutCmd = new DeferredLayoutCommand(host()
+ .getEditingDomain(), createdViews, host());
+ executeCommand(new ICommandProxy(layoutCmd));
+ }
+
+ makeViewsImmutable(createdViews);
+ }
+}
diff --git a/org.eclipse.emf.refactor.comrel.diagram/src/comrel/diagram/edit/policies/SequentialUnit2ItemSemanticEditPolicy.java b/org.eclipse.emf.refactor.comrel.diagram/src/comrel/diagram/edit/policies/SequentialUnit2ItemSemanticEditPolicy.java
new file mode 100644
index 0000000..8a09c46
--- /dev/null
+++ b/org.eclipse.emf.refactor.comrel.diagram/src/comrel/diagram/edit/policies/SequentialUnit2ItemSemanticEditPolicy.java
@@ -0,0 +1,263 @@
+/*
+ *
+ */
+package comrel.diagram.edit.policies;
+
+import java.util.Iterator;
+
+import org.eclipse.emf.ecore.EAnnotation;
+import org.eclipse.gef.commands.Command;
+import org.eclipse.gmf.runtime.common.core.command.ICompositeCommand;
+import org.eclipse.gmf.runtime.diagram.core.commands.DeleteCommand;
+import org.eclipse.gmf.runtime.emf.commands.core.command.CompositeTransactionalCommand;
+import org.eclipse.gmf.runtime.emf.type.core.commands.DestroyElementCommand;
+import org.eclipse.gmf.runtime.emf.type.core.requests.CreateElementRequest;
+import org.eclipse.gmf.runtime.emf.type.core.requests.DestroyElementRequest;
+import org.eclipse.gmf.runtime.notation.Edge;
+import org.eclipse.gmf.runtime.notation.Node;
+import org.eclipse.gmf.runtime.notation.View;
+
+import comrel.diagram.edit.commands.MultiInputPort8CreateCommand;
+import comrel.diagram.edit.commands.SingleInputPort7CreateCommand;
+import comrel.diagram.edit.parts.AtomicUnit5EditPart;
+import comrel.diagram.edit.parts.CartesianQueuedUnit5EditPart;
+import comrel.diagram.edit.parts.ConditionalUnit5EditPart;
+import comrel.diagram.edit.parts.MultiFeatureUnit5EditPart;
+import comrel.diagram.edit.parts.MultiFilterUnit5EditPart;
+import comrel.diagram.edit.parts.MultiInputPort8EditPart;
+import comrel.diagram.edit.parts.MultiPortMappingEditPart;
+import comrel.diagram.edit.parts.MultiSinglePortMappingEditPart;
+import comrel.diagram.edit.parts.ParallelQueuedUnit6EditPart;
+import comrel.diagram.edit.parts.SequentialUnit6EditPart;
+import comrel.diagram.edit.parts.SequentialUnitSequentialUnitHelperUnitsCompartmentEditPart;
+import comrel.diagram.edit.parts.SequentialUnitSequentialUnitRefactoringUnitsCompartmentEditPart;
+import comrel.diagram.edit.parts.SingleFeatureUnit5EditPart;
+import comrel.diagram.edit.parts.SingleFilterUnit5EditPart;
+import comrel.diagram.edit.parts.SingleInputPort7EditPart;
+import comrel.diagram.edit.parts.SinglePortMappingEditPart;
+import comrel.diagram.edit.parts.SingleQueuedUnit6EditPart;
+import comrel.diagram.part.ComrelVisualIDRegistry;
+import comrel.diagram.providers.ComrelElementTypes;
+
+/**
+ * @generated
+ */
+public class SequentialUnit2ItemSemanticEditPolicy extends
+ ComrelBaseItemSemanticEditPolicy {
+
+ /**
+ * @generated
+ */
+ public SequentialUnit2ItemSemanticEditPolicy() {
+ super(ComrelElementTypes.SequentialUnit_3026);
+ }
+
+ /**
+ * @generated
+ */
+ protected Command getCreateCommand(CreateElementRequest req) {
+ if (ComrelElementTypes.SingleInputPort_3027 == req.getElementType()) {
+ return getGEFWrapper(new SingleInputPort7CreateCommand(req));
+ }
+ if (ComrelElementTypes.MultiInputPort_3028 == req.getElementType()) {
+ return getGEFWrapper(new MultiInputPort8CreateCommand(req));
+ }
+ return super.getCreateCommand(req);
+ }
+
+ /**
+ * @generated
+ */
+ protected Command getDestroyElementCommand(DestroyElementRequest req) {
+ View view = (View) getHost().getModel();
+ CompositeTransactionalCommand cmd = new CompositeTransactionalCommand(
+ getEditingDomain(), null);
+ cmd.setTransactionNestingEnabled(false);
+ EAnnotation annotation = view.getEAnnotation("Shortcut"); //$NON-NLS-1$
+ if (annotation == null) {
+ // there are indirectly referenced children, need extra commands: false
+ addDestroyChildNodesCommand(cmd);
+ addDestroyShortcutsCommand(cmd, view);
+ // delete host element
+ cmd.add(new DestroyElementCommand(req));
+ } else {
+ cmd.add(new DeleteCommand(getEditingDomain(), view));
+ }
+ return getGEFWrapper(cmd.reduce());
+ }
+
+ /**
+ * @generated
+ */
+ private void addDestroyChildNodesCommand(ICompositeCommand cmd) {
+ View view = (View) getHost().getModel();
+ for (Iterator<?> nit = view.getChildren().iterator(); nit.hasNext();) {
+ Node node = (Node) nit.next();
+ switch (ComrelVisualIDRegistry.getVisualID(node)) {
+ case SingleInputPort7EditPart.VISUAL_ID:
+ for (Iterator<?> it = node.getTargetEdges().iterator(); it
+ .hasNext();) {
+ Edge incomingLink = (Edge) it.next();
+ if (ComrelVisualIDRegistry.getVisualID(incomingLink) == SinglePortMappingEditPart.VISUAL_ID) {
+ DestroyElementRequest r = new DestroyElementRequest(
+ incomingLink.getElement(), false);
+ cmd.add(new DestroyElementCommand(r));
+ cmd.add(new DeleteCommand(getEditingDomain(),
+ incomingLink));
+ continue;
+ }
+ if (ComrelVisualIDRegistry.getVisualID(incomingLink) == MultiSinglePortMappingEditPart.VISUAL_ID) {
+ DestroyElementRequest r = new DestroyElementRequest(
+ incomingLink.getElement(), false);
+ cmd.add(new DestroyElementCommand(r));
+ cmd.add(new DeleteCommand(getEditingDomain(),
+ incomingLink));
+ continue;
+ }
+ }
+ for (Iterator<?> it = node.getSourceEdges().iterator(); it
+ .hasNext();) {
+ Edge outgoingLink = (Edge) it.next();
+ if (ComrelVisualIDRegistry.getVisualID(outgoingLink) == SinglePortMappingEditPart.VISUAL_ID) {
+ DestroyElementRequest r = new DestroyElementRequest(
+ outgoingLink.getElement(), false);
+ cmd.add(new DestroyElementCommand(r));
+ cmd.add(new DeleteCommand(getEditingDomain(),
+ outgoingLink));
+ continue;
+ }
+ }
+ cmd.add(new DestroyElementCommand(new DestroyElementRequest(
+ getEditingDomain(), node.getElement(), false))); // directlyOwned: true
+ // don't need explicit deletion of node as parent's view deletion would clean child views as well
+ // cmd.add(new org.eclipse.gmf.runtime.diagram.core.commands.DeleteCommand(getEditingDomain(), node));
+ break;
+ case MultiInputPort8EditPart.VISUAL_ID:
+ for (Iterator<?> it = node.getTargetEdges().iterator(); it
+ .hasNext();) {
+ Edge incomingLink = (Edge) it.next();
+ if (ComrelVisualIDRegistry.getVisualID(incomingLink) == MultiPortMappingEditPart.VISUAL_ID) {
+ DestroyElementRequest r = new DestroyElementRequest(
+ incomingLink.getElement(), false);
+ cmd.add(new DestroyElementCommand(r));
+ cmd.add(new DeleteCommand(getEditingDomain(),
+ incomingLink));
+ continue;
+ }
+ }
+ for (Iterator<?> it = node.getSourceEdges().iterator(); it
+ .hasNext();) {
+ Edge outgoingLink = (Edge) it.next();
+ if (ComrelVisualIDRegistry.getVisualID(outgoingLink) == MultiPortMappingEditPart.VISUAL_ID) {
+ DestroyElementRequest r = new DestroyElementRequest(
+ outgoingLink.getElement(), false);
+ cmd.add(new DestroyElementCommand(r));
+ cmd.add(new DeleteCommand(getEditingDomain(),
+ outgoingLink));
+ continue;
+ }
+ if (ComrelVisualIDRegistry.getVisualID(outgoingLink) == MultiSinglePortMappingEditPart.VISUAL_ID) {
+ DestroyElementRequest r = new DestroyElementRequest(
+ outgoingLink.getElement(), false);
+ cmd.add(new DestroyElementCommand(r));
+ cmd.add(new DeleteCommand(getEditingDomain(),
+ outgoingLink));
+ continue;
+ }
+ }
+ cmd.add(new DestroyElementCommand(new DestroyElementRequest(
+ getEditingDomain(), node.getElement(), false))); // directlyOwned: true
+ // don't need explicit deletion of node as parent's view deletion would clean child views as well
+ // cmd.add(new org.eclipse.gmf.runtime.diagram.core.commands.DeleteCommand(getEditingDomain(), node));
+ break;
+ case SequentialUnitSequentialUnitHelperUnitsCompartmentEditPart.VISUAL_ID:
+ for (Iterator<?> cit = node.getChildren().iterator(); cit
+ .hasNext();) {
+ Node cnode = (Node) cit.next();
+ switch (ComrelVisualIDRegistry.getVisualID(cnode)) {
+ case SingleFeatureUnit5EditPart.VISUAL_ID:
+ cmd.add(new DestroyElementCommand(
+ new DestroyElementRequest(getEditingDomain(),
+ cnode.getElement(), false))); // directlyOwned: true
+ // don't need explicit deletion of cnode as parent's view deletion would clean child views as well
+ // cmd.add(new org.eclipse.gmf.runtime.diagram.core.commands.DeleteCommand(getEditingDomain(), cnode));
+ break;
+ case MultiFeatureUnit5EditPart.VISUAL_ID:
+ cmd.add(new DestroyElementCommand(
+ new DestroyElementRequest(getEditingDomain(),
+ cnode.getElement(), false))); // directlyOwned: true
+ // don't need explicit deletion of cnode as parent's view deletion would clean child views as well
+ // cmd.add(new org.eclipse.gmf.runtime.diagram.core.commands.DeleteCommand(getEditingDomain(), cnode));
+ break;
+ case SingleFilterUnit5EditPart.VISUAL_ID:
+ cmd.add(new DestroyElementCommand(
+ new DestroyElementRequest(getEditingDomain(),
+ cnode.getElement(), false))); // directlyOwned: true
+ // don't need explicit deletion of cnode as parent's view deletion would clean child views as well
+ // cmd.add(new org.eclipse.gmf.runtime.diagram.core.commands.DeleteCommand(getEditingDomain(), cnode));
+ break;
+ case MultiFilterUnit5EditPart.VISUAL_ID:
+ cmd.add(new DestroyElementCommand(
+ new DestroyElementRequest(getEditingDomain(),
+ cnode.getElement(), false))); // directlyOwned: true
+ // don't need explicit deletion of cnode as parent's view deletion would clean child views as well
+ // cmd.add(new org.eclipse.gmf.runtime.diagram.core.commands.DeleteCommand(getEditingDomain(), cnode));
+ break;
+ }
+ }
+ break;
+ case SequentialUnitSequentialUnitRefactoringUnitsCompartmentEditPart.VISUAL_ID:
+ for (Iterator<?> cit = node.getChildren().iterator(); cit
+ .hasNext();) {
+ Node cnode = (Node) cit.next();
+ switch (ComrelVisualIDRegistry.getVisualID(cnode)) {
+ case CartesianQueuedUnit5EditPart.VISUAL_ID:
+ cmd.add(new DestroyElementCommand(
+ new DestroyElementRequest(getEditingDomain(),
+ cnode.getElement(), false))); // directlyOwned: true
+ // don't need explicit deletion of cnode as parent's view deletion would clean child views as well
+ // cmd.add(new org.eclipse.gmf.runtime.diagram.core.commands.DeleteCommand(getEditingDomain(), cnode));
+ break;
+ case ParallelQueuedUnit6EditPart.VISUAL_ID:
+ cmd.add(new DestroyElementCommand(
+ new DestroyElementRequest(getEditingDomain(),
+ cnode.getElement(), false))); // directlyOwned: true
+ // don't need explicit deletion of cnode as parent's view deletion would clean child views as well
+ // cmd.add(new org.eclipse.gmf.runtime.diagram.core.commands.DeleteCommand(getEditingDomain(), cnode));
+ break;
+ case SingleQueuedUnit6EditPart.VISUAL_ID:
+ cmd.add(new DestroyElementCommand(
+ new DestroyElementRequest(getEditingDomain(),
+ cnode.getElement(), false))); // directlyOwned: true
+ // don't need explicit deletion of cnode as parent's view deletion would clean child views as well
+ // cmd.add(new org.eclipse.gmf.runtime.diagram.core.commands.DeleteCommand(getEditingDomain(), cnode));
+ break;
+ case SequentialUnit6EditPart.VISUAL_ID:
+ cmd.add(new DestroyElementCommand(
+ new DestroyElementRequest(getEditingDomain(),
+ cnode.getElement(), false))); // directlyOwned: true
+ // don't need explicit deletion of cnode as parent's view deletion would clean child views as well
+ // cmd.add(new org.eclipse.gmf.runtime.diagram.core.commands.DeleteCommand(getEditingDomain(), cnode));
+ break;
+ case ConditionalUnit5EditPart.VISUAL_ID:
+ cmd.add(new DestroyElementCommand(
+ new DestroyElementRequest(getEditingDomain(),
+ cnode.getElement(), false))); // directlyOwned: true
+ // don't need explicit deletion of cnode as parent's view deletion would clean child views as well
+ // cmd.add(new org.eclipse.gmf.runtime.diagram.core.commands.DeleteCommand(getEditingDomain(), cnode));
+ break;
+ case AtomicUnit5EditPart.VISUAL_ID:
+ cmd.add(new DestroyElementCommand(
+ new DestroyElementRequest(getEditingDomain(),
+ cnode.getElement(), false))); // directlyOwned: true
+ // don't need explicit deletion of cnode as parent's view deletion would clean child views as well
+ // cmd.add(new org.eclipse.gmf.runtime.diagram.core.commands.DeleteCommand(getEditingDomain(), cnode));
+ break;
+ }
+ }
+ break;
+ }
+ }
+ }
+
+}
diff --git a/org.eclipse.emf.refactor.comrel.diagram/src/comrel/diagram/edit/policies/SequentialUnit3CanonicalEditPolicy.java b/org.eclipse.emf.refactor.comrel.diagram/src/comrel/diagram/edit/policies/SequentialUnit3CanonicalEditPolicy.java
new file mode 100644
index 0000000..f468e5a
--- /dev/null
+++ b/org.eclipse.emf.refactor.comrel.diagram/src/comrel/diagram/edit/policies/SequentialUnit3CanonicalEditPolicy.java
@@ -0,0 +1,164 @@
+/*
+ *
+ */
+package comrel.diagram.edit.policies;
+
+import java.util.ArrayList;
+import java.util.Collection;
+import java.util.Iterator;
+import java.util.LinkedList;
+import java.util.List;
+
+import org.eclipse.core.runtime.IAdaptable;
+import org.eclipse.emf.ecore.EObject;
+import org.eclipse.emf.ecore.EStructuralFeature;
+import org.eclipse.gef.commands.Command;
+import org.eclipse.gmf.runtime.diagram.core.util.ViewUtil;
+import org.eclipse.gmf.runtime.diagram.ui.commands.DeferredLayoutCommand;
+import org.eclipse.gmf.runtime.diagram.ui.commands.ICommandProxy;
+import org.eclipse.gmf.runtime.diagram.ui.commands.SetViewMutabilityCommand;
+import org.eclipse.gmf.runtime.diagram.ui.editpolicies.CanonicalEditPolicy;
+import org.eclipse.gmf.runtime.diagram.ui.requests.CreateViewRequest;
+import org.eclipse.gmf.runtime.emf.core.util.EObjectAdapter;
+import org.eclipse.gmf.runtime.notation.Node;
+import org.eclipse.gmf.runtime.notation.View;
+
+import comrel.ComrelPackage;
+import comrel.diagram.edit.parts.MultiInputPort8EditPart;
+import comrel.diagram.edit.parts.SingleInputPort7EditPart;
+import comrel.diagram.part.ComrelDiagramUpdater;
+import comrel.diagram.part.ComrelNodeDescriptor;
+import comrel.diagram.part.ComrelVisualIDRegistry;
+
+/**
+ * @generated
+ */
+public class SequentialUnit3CanonicalEditPolicy extends CanonicalEditPolicy {
+
+ /**
+ * @generated
+ */
+ protected EStructuralFeature getFeatureToSynchronize() {
+ return ComrelPackage.eINSTANCE.getSequentialUnit_InputPorts();
+ }
+
+ /**
+ * @generated
+ */
+ @SuppressWarnings("rawtypes")
+ protected List getSemanticChildrenList() {
+ View viewObject = (View) getHost().getModel();
+ LinkedList<EObject> result = new LinkedList<EObject>();
+ List<ComrelNodeDescriptor> childDescriptors = ComrelDiagramUpdater
+ .getSequentialUnit_3044SemanticChildren(viewObject);
+ for (ComrelNodeDescriptor d : childDescriptors) {
+ result.add(d.getModelElement());
+ }
+ return result;
+ }
+
+ /**
+ * @generated
+ */
+ protected boolean isOrphaned(Collection<EObject> semanticChildren,
+ final View view) {
+ return isMyDiagramElement(view)
+ && !semanticChildren.contains(view.getElement());
+ }
+
+ /**
+ * @generated
+ */
+ private boolean isMyDiagramElement(View view) {
+ int visualID = ComrelVisualIDRegistry.getVisualID(view);
+ return visualID == SingleInputPort7EditPart.VISUAL_ID
+ || visualID == MultiInputPort8EditPart.VISUAL_ID;
+ }
+
+ /**
+ * @generated
+ */
+ protected void refreshSemantic() {
+ if (resolveSemanticElement() == null) {
+ return;
+ }
+ LinkedList<IAdaptable> createdViews = new LinkedList<IAdaptable>();
+ List<ComrelNodeDescriptor> childDescriptors = ComrelDiagramUpdater
+ .getSequentialUnit_3044SemanticChildren((View) getHost()
+ .getModel());
+ LinkedList<View> orphaned = new LinkedList<View>();
+ // we care to check only views we recognize as ours
+ LinkedList<View> knownViewChildren = new LinkedList<View>();
+ for (View v : getViewChildren()) {
+ if (isMyDiagramElement(v)) {
+ knownViewChildren.add(v);
+ }
+ }
+ // alternative to #cleanCanonicalSemanticChildren(getViewChildren(), semanticChildren)
+ //
+ // iteration happens over list of desired semantic elements, trying to find best matching View, while original CEP
+ // iterates views, potentially losing view (size/bounds) information - i.e. if there are few views to reference same EObject, only last one
+ // to answer isOrphaned == true will be used for the domain element representation, see #cleanCanonicalSemanticChildren()
+ for (Iterator<ComrelNodeDescriptor> descriptorsIterator = childDescriptors
+ .iterator(); descriptorsIterator.hasNext();) {
+ ComrelNodeDescriptor next = descriptorsIterator.next();
+ String hint = ComrelVisualIDRegistry.getType(next.getVisualID());
+ LinkedList<View> perfectMatch = new LinkedList<View>(); // both semanticElement and hint match that of NodeDescriptor
+ for (View childView : getViewChildren()) {
+ EObject semanticElement = childView.getElement();
+ if (next.getModelElement().equals(semanticElement)) {
+ if (hint.equals(childView.getType())) {
+ perfectMatch.add(childView);
+ // actually, can stop iteration over view children here, but
+ // may want to use not the first view but last one as a 'real' match (the way original CEP does
+ // with its trick with viewToSemanticMap inside #cleanCanonicalSemanticChildren
+ }
+ }
+ }
+ if (perfectMatch.size() > 0) {
+ descriptorsIterator.remove(); // precise match found no need to create anything for the NodeDescriptor
+ // use only one view (first or last?), keep rest as orphaned for further consideration
+ knownViewChildren.remove(perfectMatch.getFirst());
+ }
+ }
+ // those left in knownViewChildren are subject to removal - they are our diagram elements we didn't find match to,
+ // or those we have potential matches to, and thus need to be recreated, preserving size/location information.
+ orphaned.addAll(knownViewChildren);
+ //
+ ArrayList<CreateViewRequest.ViewDescriptor> viewDescriptors = new ArrayList<CreateViewRequest.ViewDescriptor>(
+ childDescriptors.size());
+ for (ComrelNodeDescriptor next : childDescriptors) {
+ String hint = ComrelVisualIDRegistry.getType(next.getVisualID());
+ IAdaptable elementAdapter = new CanonicalElementAdapter(
+ next.getModelElement(), hint);
+ CreateViewRequest.ViewDescriptor descriptor = new CreateViewRequest.ViewDescriptor(
+ elementAdapter, Node.class, hint, ViewUtil.APPEND, false,
+ host().getDiagramPreferencesHint());
+ viewDescriptors.add(descriptor);
+ }
+
+ boolean changed = deleteViews(orphaned.iterator());
+ //
+ CreateViewRequest request = getCreateViewRequest(viewDescriptors);
+ Command cmd = getCreateViewCommand(request);
+ if (cmd != null && cmd.canExecute()) {
+ SetViewMutabilityCommand.makeMutable(
+ new EObjectAdapter(host().getNotationView())).execute();
+ executeCommand(cmd);
+ @SuppressWarnings("unchecked")
+ List<IAdaptable> nl = (List<IAdaptable>) request.getNewObject();
+ createdViews.addAll(nl);
+ }
+ if (changed || createdViews.size() > 0) {
+ postProcessRefreshSemantic(createdViews);
+ }
+ if (createdViews.size() > 1) {
+ // perform a layout of the container
+ DeferredLayoutCommand layoutCmd = new DeferredLayoutCommand(host()
+ .getEditingDomain(), createdViews, host());
+ executeCommand(new ICommandProxy(layoutCmd));
+ }
+
+ makeViewsImmutable(createdViews);
+ }
+}
diff --git a/org.eclipse.emf.refactor.comrel.diagram/src/comrel/diagram/edit/policies/SequentialUnit3ItemSemanticEditPolicy.java b/org.eclipse.emf.refactor.comrel.diagram/src/comrel/diagram/edit/policies/SequentialUnit3ItemSemanticEditPolicy.java
new file mode 100644
index 0000000..69f4050
--- /dev/null
+++ b/org.eclipse.emf.refactor.comrel.diagram/src/comrel/diagram/edit/policies/SequentialUnit3ItemSemanticEditPolicy.java
@@ -0,0 +1,263 @@
+/*
+ *
+ */
+package comrel.diagram.edit.policies;
+
+import java.util.Iterator;
+
+import org.eclipse.emf.ecore.EAnnotation;
+import org.eclipse.gef.commands.Command;
+import org.eclipse.gmf.runtime.common.core.command.ICompositeCommand;
+import org.eclipse.gmf.runtime.diagram.core.commands.DeleteCommand;
+import org.eclipse.gmf.runtime.emf.commands.core.command.CompositeTransactionalCommand;
+import org.eclipse.gmf.runtime.emf.type.core.commands.DestroyElementCommand;
+import org.eclipse.gmf.runtime.emf.type.core.requests.CreateElementRequest;
+import org.eclipse.gmf.runtime.emf.type.core.requests.DestroyElementRequest;
+import org.eclipse.gmf.runtime.notation.Edge;
+import org.eclipse.gmf.runtime.notation.Node;
+import org.eclipse.gmf.runtime.notation.View;
+
+import comrel.diagram.edit.commands.MultiInputPort8CreateCommand;
+import comrel.diagram.edit.commands.SingleInputPort7CreateCommand;
+import comrel.diagram.edit.parts.AtomicUnit5EditPart;
+import comrel.diagram.edit.parts.CartesianQueuedUnit5EditPart;
+import comrel.diagram.edit.parts.ConditionalUnit5EditPart;
+import comrel.diagram.edit.parts.MultiFeatureUnit5EditPart;
+import comrel.diagram.edit.parts.MultiFilterUnit5EditPart;
+import comrel.diagram.edit.parts.MultiInputPort8EditPart;
+import comrel.diagram.edit.parts.MultiPortMappingEditPart;
+import comrel.diagram.edit.parts.MultiSinglePortMappingEditPart;
+import comrel.diagram.edit.parts.ParallelQueuedUnit6EditPart;
+import comrel.diagram.edit.parts.SequentialUnit6EditPart;
+import comrel.diagram.edit.parts.SequentialUnitSequentialUnitHelperUnitsCompartment2EditPart;
+import comrel.diagram.edit.parts.SequentialUnitSequentialUnitRefactoringUnitsCompartment2EditPart;
+import comrel.diagram.edit.parts.SingleFeatureUnit5EditPart;
+import comrel.diagram.edit.parts.SingleFilterUnit5EditPart;
+import comrel.diagram.edit.parts.SingleInputPort7EditPart;
+import comrel.diagram.edit.parts.SinglePortMappingEditPart;
+import comrel.diagram.edit.parts.SingleQueuedUnit6EditPart;
+import comrel.diagram.part.ComrelVisualIDRegistry;
+import comrel.diagram.providers.ComrelElementTypes;
+
+/**
+ * @generated
+ */
+public class SequentialUnit3ItemSemanticEditPolicy extends
+ ComrelBaseItemSemanticEditPolicy {
+
+ /**
+ * @generated
+ */
+ public SequentialUnit3ItemSemanticEditPolicy() {
+ super(ComrelElementTypes.SequentialUnit_3044);
+ }
+
+ /**
+ * @generated
+ */
+ protected Command getCreateCommand(CreateElementRequest req) {
+ if (ComrelElementTypes.SingleInputPort_3027 == req.getElementType()) {
+ return getGEFWrapper(new SingleInputPort7CreateCommand(req));
+ }
+ if (ComrelElementTypes.MultiInputPort_3028 == req.getElementType()) {
+ return getGEFWrapper(new MultiInputPort8CreateCommand(req));
+ }
+ return super.getCreateCommand(req);
+ }
+
+ /**
+ * @generated
+ */
+ protected Command getDestroyElementCommand(DestroyElementRequest req) {
+ View view = (View) getHost().getModel();
+ CompositeTransactionalCommand cmd = new CompositeTransactionalCommand(
+ getEditingDomain(), null);
+ cmd.setTransactionNestingEnabled(false);
+ EAnnotation annotation = view.getEAnnotation("Shortcut"); //$NON-NLS-1$
+ if (annotation == null) {
+ // there are indirectly referenced children, need extra commands: false
+ addDestroyChildNodesCommand(cmd);
+ addDestroyShortcutsCommand(cmd, view);
+ // delete host element
+ cmd.add(new DestroyElementCommand(req));
+ } else {
+ cmd.add(new DeleteCommand(getEditingDomain(), view));
+ }
+ return getGEFWrapper(cmd.reduce());
+ }
+
+ /**
+ * @generated
+ */
+ private void addDestroyChildNodesCommand(ICompositeCommand cmd) {
+ View view = (View) getHost().getModel();
+ for (Iterator<?> nit = view.getChildren().iterator(); nit.hasNext();) {
+ Node node = (Node) nit.next();
+ switch (ComrelVisualIDRegistry.getVisualID(node)) {
+ case SingleInputPort7EditPart.VISUAL_ID:
+ for (Iterator<?> it = node.getTargetEdges().iterator(); it
+ .hasNext();) {
+ Edge incomingLink = (Edge) it.next();
+ if (ComrelVisualIDRegistry.getVisualID(incomingLink) == SinglePortMappingEditPart.VISUAL_ID) {
+ DestroyElementRequest r = new DestroyElementRequest(
+ incomingLink.getElement(), false);
+ cmd.add(new DestroyElementCommand(r));
+ cmd.add(new DeleteCommand(getEditingDomain(),
+ incomingLink));
+ continue;
+ }
+ if (ComrelVisualIDRegistry.getVisualID(incomingLink) == MultiSinglePortMappingEditPart.VISUAL_ID) {
+ DestroyElementRequest r = new DestroyElementRequest(
+ incomingLink.getElement(), false);
+ cmd.add(new DestroyElementCommand(r));
+ cmd.add(new DeleteCommand(getEditingDomain(),
+ incomingLink));
+ continue;
+ }
+ }
+ for (Iterator<?> it = node.getSourceEdges().iterator(); it
+ .hasNext();) {
+ Edge outgoingLink = (Edge) it.next();
+ if (ComrelVisualIDRegistry.getVisualID(outgoingLink) == SinglePortMappingEditPart.VISUAL_ID) {
+ DestroyElementRequest r = new DestroyElementRequest(
+ outgoingLink.getElement(), false);
+ cmd.add(new DestroyElementCommand(r));
+ cmd.add(new DeleteCommand(getEditingDomain(),
+ outgoingLink));
+ continue;
+ }
+ }
+ cmd.add(new DestroyElementCommand(new DestroyElementRequest(
+ getEditingDomain(), node.getElement(), false))); // directlyOwned: true
+ // don't need explicit deletion of node as parent's view deletion would clean child views as well
+ // cmd.add(new org.eclipse.gmf.runtime.diagram.core.commands.DeleteCommand(getEditingDomain(), node));
+ break;
+ case MultiInputPort8EditPart.VISUAL_ID:
+ for (Iterator<?> it = node.getTargetEdges().iterator(); it
+ .hasNext();) {
+ Edge incomingLink = (Edge) it.next();
+ if (ComrelVisualIDRegistry.getVisualID(incomingLink) == MultiPortMappingEditPart.VISUAL_ID) {
+ DestroyElementRequest r = new DestroyElementRequest(
+ incomingLink.getElement(), false);
+ cmd.add(new DestroyElementCommand(r));
+ cmd.add(new DeleteCommand(getEditingDomain(),
+ incomingLink));
+ continue;
+ }
+ }
+ for (Iterator<?> it = node.getSourceEdges().iterator(); it
+ .hasNext();) {
+ Edge outgoingLink = (Edge) it.next();
+ if (ComrelVisualIDRegistry.getVisualID(outgoingLink) == MultiPortMappingEditPart.VISUAL_ID) {
+ DestroyElementRequest r = new DestroyElementRequest(
+ outgoingLink.getElement(), false);
+ cmd.add(new DestroyElementCommand(r));
+ cmd.add(new DeleteCommand(getEditingDomain(),
+ outgoingLink));
+ continue;
+ }
+ if (ComrelVisualIDRegistry.getVisualID(outgoingLink) == MultiSinglePortMappingEditPart.VISUAL_ID) {
+ DestroyElementRequest r = new DestroyElementRequest(
+ outgoingLink.getElement(), false);
+ cmd.add(new DestroyElementCommand(r));
+ cmd.add(new DeleteCommand(getEditingDomain(),
+ outgoingLink));
+ continue;
+ }
+ }
+ cmd.add(new DestroyElementCommand(new DestroyElementRequest(
+ getEditingDomain(), node.getElement(), false))); // directlyOwned: true
+ // don't need explicit deletion of node as parent's view deletion would clean child views as well
+ // cmd.add(new org.eclipse.gmf.runtime.diagram.core.commands.DeleteCommand(getEditingDomain(), node));
+ break;
+ case SequentialUnitSequentialUnitHelperUnitsCompartment2EditPart.VISUAL_ID:
+ for (Iterator<?> cit = node.getChildren().iterator(); cit
+ .hasNext();) {
+ Node cnode = (Node) cit.next();
+ switch (ComrelVisualIDRegistry.getVisualID(cnode)) {
+ case SingleFeatureUnit5EditPart.VISUAL_ID:
+ cmd.add(new DestroyElementCommand(
+ new DestroyElementRequest(getEditingDomain(),
+ cnode.getElement(), false))); // directlyOwned: true
+ // don't need explicit deletion of cnode as parent's view deletion would clean child views as well
+ // cmd.add(new org.eclipse.gmf.runtime.diagram.core.commands.DeleteCommand(getEditingDomain(), cnode));
+ break;
+ case MultiFeatureUnit5EditPart.VISUAL_ID:
+ cmd.add(new DestroyElementCommand(
+ new DestroyElementRequest(getEditingDomain(),
+ cnode.getElement(), false))); // directlyOwned: true
+ // don't need explicit deletion of cnode as parent's view deletion would clean child views as well
+ // cmd.add(new org.eclipse.gmf.runtime.diagram.core.commands.DeleteCommand(getEditingDomain(), cnode));
+ break;
+ case SingleFilterUnit5EditPart.VISUAL_ID:
+ cmd.add(new DestroyElementCommand(
+ new DestroyElementRequest(getEditingDomain(),
+ cnode.getElement(), false))); // directlyOwned: true
+ // don't need explicit deletion of cnode as parent's view deletion would clean child views as well
+ // cmd.add(new org.eclipse.gmf.runtime.diagram.core.commands.DeleteCommand(getEditingDomain(), cnode));
+ break;
+ case MultiFilterUnit5EditPart.VISUAL_ID:
+ cmd.add(new DestroyElementCommand(
+ new DestroyElementRequest(getEditingDomain(),
+ cnode.getElement(), false))); // directlyOwned: true
+ // don't need explicit deletion of cnode as parent's view deletion would clean child views as well
+ // cmd.add(new org.eclipse.gmf.runtime.diagram.core.commands.DeleteCommand(getEditingDomain(), cnode));
+ break;
+ }
+ }
+ break;
+ case SequentialUnitSequentialUnitRefactoringUnitsCompartment2EditPart.VISUAL_ID:
+ for (Iterator<?> cit = node.getChildren().iterator(); cit
+ .hasNext();) {
+ Node cnode = (Node) cit.next();
+ switch (ComrelVisualIDRegistry.getVisualID(cnode)) {
+ case CartesianQueuedUnit5EditPart.VISUAL_ID:
+ cmd.add(new DestroyElementCommand(
+ new DestroyElementRequest(getEditingDomain(),
+ cnode.getElement(), false))); // directlyOwned: true
+ // don't need explicit deletion of cnode as parent's view deletion would clean child views as well
+ // cmd.add(new org.eclipse.gmf.runtime.diagram.core.commands.DeleteCommand(getEditingDomain(), cnode));
+ break;
+ case ParallelQueuedUnit6EditPart.VISUAL_ID:
+ cmd.add(new DestroyElementCommand(
+ new DestroyElementRequest(getEditingDomain(),
+ cnode.getElement(), false))); // directlyOwned: true
+ // don't need explicit deletion of cnode as parent's view deletion would clean child views as well
+ // cmd.add(new org.eclipse.gmf.runtime.diagram.core.commands.DeleteCommand(getEditingDomain(), cnode));
+ break;
+ case SingleQueuedUnit6EditPart.VISUAL_ID:
+ cmd.add(new DestroyElementCommand(
+ new DestroyElementRequest(getEditingDomain(),
+ cnode.getElement(), false))); // directlyOwned: true
+ // don't need explicit deletion of cnode as parent's view deletion would clean child views as well
+ // cmd.add(new org.eclipse.gmf.runtime.diagram.core.commands.DeleteCommand(getEditingDomain(), cnode));
+ break;
+ case SequentialUnit6EditPart.VISUAL_ID:
+ cmd.add(new DestroyElementCommand(
+ new DestroyElementRequest(getEditingDomain(),
+ cnode.getElement(), false))); // directlyOwned: true
+ // don't need explicit deletion of cnode as parent's view deletion would clean child views as well
+ // cmd.add(new org.eclipse.gmf.runtime.diagram.core.commands.DeleteCommand(getEditingDomain(), cnode));
+ break;
+ case ConditionalUnit5EditPart.VISUAL_ID:
+ cmd.add(new DestroyElementCommand(
+ new DestroyElementRequest(getEditingDomain(),
+ cnode.getElement(), false))); // directlyOwned: true
+ // don't need explicit deletion of cnode as parent's view deletion would clean child views as well
+ // cmd.add(new org.eclipse.gmf.runtime.diagram.core.commands.DeleteCommand(getEditingDomain(), cnode));
+ break;
+ case AtomicUnit5EditPart.VISUAL_ID:
+ cmd.add(new DestroyElementCommand(
+ new DestroyElementRequest(getEditingDomain(),
+ cnode.getElement(), false))); // directlyOwned: true
+ // don't need explicit deletion of cnode as parent's view deletion would clean child views as well
+ // cmd.add(new org.eclipse.gmf.runtime.diagram.core.commands.DeleteCommand(getEditingDomain(), cnode));
+ break;
+ }
+ }
+ break;
+ }
+ }
+ }
+
+}
diff --git a/org.eclipse.emf.refactor.comrel.diagram/src/comrel/diagram/edit/policies/SequentialUnit4CanonicalEditPolicy.java b/org.eclipse.emf.refactor.comrel.diagram/src/comrel/diagram/edit/policies/SequentialUnit4CanonicalEditPolicy.java
new file mode 100644
index 0000000..74abb67
--- /dev/null
+++ b/org.eclipse.emf.refactor.comrel.diagram/src/comrel/diagram/edit/policies/SequentialUnit4CanonicalEditPolicy.java
@@ -0,0 +1,164 @@
+/*
+ *
+ */
+package comrel.diagram.edit.policies;
+
+import java.util.ArrayList;
+import java.util.Collection;
+import java.util.Iterator;
+import java.util.LinkedList;
+import java.util.List;
+
+import org.eclipse.core.runtime.IAdaptable;
+import org.eclipse.emf.ecore.EObject;
+import org.eclipse.emf.ecore.EStructuralFeature;
+import org.eclipse.gef.commands.Command;
+import org.eclipse.gmf.runtime.diagram.core.util.ViewUtil;
+import org.eclipse.gmf.runtime.diagram.ui.commands.DeferredLayoutCommand;
+import org.eclipse.gmf.runtime.diagram.ui.commands.ICommandProxy;
+import org.eclipse.gmf.runtime.diagram.ui.commands.SetViewMutabilityCommand;
+import org.eclipse.gmf.runtime.diagram.ui.editpolicies.CanonicalEditPolicy;
+import org.eclipse.gmf.runtime.diagram.ui.requests.CreateViewRequest;
+import org.eclipse.gmf.runtime.emf.core.util.EObjectAdapter;
+import org.eclipse.gmf.runtime.notation.Node;
+import org.eclipse.gmf.runtime.notation.View;
+
+import comrel.ComrelPackage;
+import comrel.diagram.edit.parts.MultiInputPort8EditPart;
+import comrel.diagram.edit.parts.SingleInputPort7EditPart;
+import comrel.diagram.part.ComrelDiagramUpdater;
+import comrel.diagram.part.ComrelNodeDescriptor;
+import comrel.diagram.part.ComrelVisualIDRegistry;
+
+/**
+ * @generated
+ */
+public class SequentialUnit4CanonicalEditPolicy extends CanonicalEditPolicy {
+
+ /**
+ * @generated
+ */
+ protected EStructuralFeature getFeatureToSynchronize() {
+ return ComrelPackage.eINSTANCE.getSequentialUnit_InputPorts();
+ }
+
+ /**
+ * @generated
+ */
+ @SuppressWarnings("rawtypes")
+ protected List getSemanticChildrenList() {
+ View viewObject = (View) getHost().getModel();
+ LinkedList<EObject> result = new LinkedList<EObject>();
+ List<ComrelNodeDescriptor> childDescriptors = ComrelDiagramUpdater
+ .getSequentialUnit_3060SemanticChildren(viewObject);
+ for (ComrelNodeDescriptor d : childDescriptors) {
+ result.add(d.getModelElement());
+ }
+ return result;
+ }
+
+ /**
+ * @generated
+ */
+ protected boolean isOrphaned(Collection<EObject> semanticChildren,
+ final View view) {
+ return isMyDiagramElement(view)
+ && !semanticChildren.contains(view.getElement());
+ }
+
+ /**
+ * @generated
+ */
+ private boolean isMyDiagramElement(View view) {
+ int visualID = ComrelVisualIDRegistry.getVisualID(view);
+ return visualID == SingleInputPort7EditPart.VISUAL_ID
+ || visualID == MultiInputPort8EditPart.VISUAL_ID;
+ }
+
+ /**
+ * @generated
+ */
+ protected void refreshSemantic() {
+ if (resolveSemanticElement() == null) {
+ return;
+ }
+ LinkedList<IAdaptable> createdViews = new LinkedList<IAdaptable>();
+ List<ComrelNodeDescriptor> childDescriptors = ComrelDiagramUpdater
+ .getSequentialUnit_3060SemanticChildren((View) getHost()
+ .getModel());
+ LinkedList<View> orphaned = new LinkedList<View>();
+ // we care to check only views we recognize as ours
+ LinkedList<View> knownViewChildren = new LinkedList<View>();
+ for (View v : getViewChildren()) {
+ if (isMyDiagramElement(v)) {
+ knownViewChildren.add(v);
+ }
+ }
+ // alternative to #cleanCanonicalSemanticChildren(getViewChildren(), semanticChildren)
+ //
+ // iteration happens over list of desired semantic elements, trying to find best matching View, while original CEP
+ // iterates views, potentially losing view (size/bounds) information - i.e. if there are few views to reference same EObject, only last one
+ // to answer isOrphaned == true will be used for the domain element representation, see #cleanCanonicalSemanticChildren()
+ for (Iterator<ComrelNodeDescriptor> descriptorsIterator = childDescriptors
+ .iterator(); descriptorsIterator.hasNext();) {
+ ComrelNodeDescriptor next = descriptorsIterator.next();
+ String hint = ComrelVisualIDRegistry.getType(next.getVisualID());
+ LinkedList<View> perfectMatch = new LinkedList<View>(); // both semanticElement and hint match that of NodeDescriptor
+ for (View childView : getViewChildren()) {
+ EObject semanticElement = childView.getElement();
+ if (next.getModelElement().equals(semanticElement)) {
+ if (hint.equals(childView.getType())) {
+ perfectMatch.add(childView);
+ // actually, can stop iteration over view children here, but
+ // may want to use not the first view but last one as a 'real' match (the way original CEP does
+ // with its trick with viewToSemanticMap inside #cleanCanonicalSemanticChildren
+ }
+ }
+ }
+ if (perfectMatch.size() > 0) {
+ descriptorsIterator.remove(); // precise match found no need to create anything for the NodeDescriptor
+ // use only one view (first or last?), keep rest as orphaned for further consideration
+ knownViewChildren.remove(perfectMatch.getFirst());
+ }
+ }
+ // those left in knownViewChildren are subject to removal - they are our diagram elements we didn't find match to,
+ // or those we have potential matches to, and thus need to be recreated, preserving size/location information.
+ orphaned.addAll(knownViewChildren);
+ //
+ ArrayList<CreateViewRequest.ViewDescriptor> viewDescriptors = new ArrayList<CreateViewRequest.ViewDescriptor>(
+ childDescriptors.size());
+ for (ComrelNodeDescriptor next : childDescriptors) {
+ String hint = ComrelVisualIDRegistry.getType(next.getVisualID());
+ IAdaptable elementAdapter = new CanonicalElementAdapter(
+ next.getModelElement(), hint);
+ CreateViewRequest.ViewDescriptor descriptor = new CreateViewRequest.ViewDescriptor(
+ elementAdapter, Node.class, hint, ViewUtil.APPEND, false,
+ host().getDiagramPreferencesHint());
+ viewDescriptors.add(descriptor);
+ }
+
+ boolean changed = deleteViews(orphaned.iterator());
+ //
+ CreateViewRequest request = getCreateViewRequest(viewDescriptors);
+ Command cmd = getCreateViewCommand(request);
+ if (cmd != null && cmd.canExecute()) {
+ SetViewMutabilityCommand.makeMutable(
+ new EObjectAdapter(host().getNotationView())).execute();
+ executeCommand(cmd);
+ @SuppressWarnings("unchecked")
+ List<IAdaptable> nl = (List<IAdaptable>) request.getNewObject();
+ createdViews.addAll(nl);
+ }
+ if (changed || createdViews.size() > 0) {
+ postProcessRefreshSemantic(createdViews);
+ }
+ if (createdViews.size() > 1) {
+ // perform a layout of the container
+ DeferredLayoutCommand layoutCmd = new DeferredLayoutCommand(host()
+ .getEditingDomain(), createdViews, host());
+ executeCommand(new ICommandProxy(layoutCmd));
+ }
+
+ makeViewsImmutable(createdViews);
+ }
+}
diff --git a/org.eclipse.emf.refactor.comrel.diagram/src/comrel/diagram/edit/policies/SequentialUnit4ItemSemanticEditPolicy.java b/org.eclipse.emf.refactor.comrel.diagram/src/comrel/diagram/edit/policies/SequentialUnit4ItemSemanticEditPolicy.java
new file mode 100644
index 0000000..19d7c44
--- /dev/null
+++ b/org.eclipse.emf.refactor.comrel.diagram/src/comrel/diagram/edit/policies/SequentialUnit4ItemSemanticEditPolicy.java
@@ -0,0 +1,263 @@
+/*
+ *
+ */
+package comrel.diagram.edit.policies;
+
+import java.util.Iterator;
+
+import org.eclipse.emf.ecore.EAnnotation;
+import org.eclipse.gef.commands.Command;
+import org.eclipse.gmf.runtime.common.core.command.ICompositeCommand;
+import org.eclipse.gmf.runtime.diagram.core.commands.DeleteCommand;
+import org.eclipse.gmf.runtime.emf.commands.core.command.CompositeTransactionalCommand;
+import org.eclipse.gmf.runtime.emf.type.core.commands.DestroyElementCommand;
+import org.eclipse.gmf.runtime.emf.type.core.requests.CreateElementRequest;
+import org.eclipse.gmf.runtime.emf.type.core.requests.DestroyElementRequest;
+import org.eclipse.gmf.runtime.notation.Edge;
+import org.eclipse.gmf.runtime.notation.Node;
+import org.eclipse.gmf.runtime.notation.View;
+
+import comrel.diagram.edit.commands.MultiInputPort8CreateCommand;
+import comrel.diagram.edit.commands.SingleInputPort7CreateCommand;
+import comrel.diagram.edit.parts.AtomicUnit5EditPart;
+import comrel.diagram.edit.parts.CartesianQueuedUnit5EditPart;
+import comrel.diagram.edit.parts.ConditionalUnit5EditPart;
+import comrel.diagram.edit.parts.MultiFeatureUnit5EditPart;
+import comrel.diagram.edit.parts.MultiFilterUnit5EditPart;
+import comrel.diagram.edit.parts.MultiInputPort8EditPart;
+import comrel.diagram.edit.parts.MultiPortMappingEditPart;
+import comrel.diagram.edit.parts.MultiSinglePortMappingEditPart;
+import comrel.diagram.edit.parts.ParallelQueuedUnit6EditPart;
+import comrel.diagram.edit.parts.SequentialUnit6EditPart;
+import comrel.diagram.edit.parts.SequentialUnitSequentialUnitHelperUnitsCompartment3EditPart;
+import comrel.diagram.edit.parts.SequentialUnitSequentialUnitRefactoringUnitsCompartment3EditPart;
+import comrel.diagram.edit.parts.SingleFeatureUnit5EditPart;
+import comrel.diagram.edit.parts.SingleFilterUnit5EditPart;
+import comrel.diagram.edit.parts.SingleInputPort7EditPart;
+import comrel.diagram.edit.parts.SinglePortMappingEditPart;
+import comrel.diagram.edit.parts.SingleQueuedUnit6EditPart;
+import comrel.diagram.part.ComrelVisualIDRegistry;
+import comrel.diagram.providers.ComrelElementTypes;
+
+/**
+ * @generated
+ */
+public class SequentialUnit4ItemSemanticEditPolicy extends
+ ComrelBaseItemSemanticEditPolicy {
+
+ /**
+ * @generated
+ */
+ public SequentialUnit4ItemSemanticEditPolicy() {
+ super(ComrelElementTypes.SequentialUnit_3060);
+ }
+
+ /**
+ * @generated
+ */
+ protected Command getCreateCommand(CreateElementRequest req) {
+ if (ComrelElementTypes.SingleInputPort_3027 == req.getElementType()) {
+ return getGEFWrapper(new SingleInputPort7CreateCommand(req));
+ }
+ if (ComrelElementTypes.MultiInputPort_3028 == req.getElementType()) {
+ return getGEFWrapper(new MultiInputPort8CreateCommand(req));
+ }
+ return super.getCreateCommand(req);
+ }
+
+ /**
+ * @generated
+ */
+ protected Command getDestroyElementCommand(DestroyElementRequest req) {
+ View view = (View) getHost().getModel();
+ CompositeTransactionalCommand cmd = new CompositeTransactionalCommand(
+ getEditingDomain(), null);
+ cmd.setTransactionNestingEnabled(false);
+ EAnnotation annotation = view.getEAnnotation("Shortcut"); //$NON-NLS-1$
+ if (annotation == null) {
+ // there are indirectly referenced children, need extra commands: false
+ addDestroyChildNodesCommand(cmd);
+ addDestroyShortcutsCommand(cmd, view);
+ // delete host element
+ cmd.add(new DestroyElementCommand(req));
+ } else {
+ cmd.add(new DeleteCommand(getEditingDomain(), view));
+ }
+ return getGEFWrapper(cmd.reduce());
+ }
+
+ /**
+ * @generated
+ */
+ private void addDestroyChildNodesCommand(ICompositeCommand cmd) {
+ View view = (View) getHost().getModel();
+ for (Iterator<?> nit = view.getChildren().iterator(); nit.hasNext();) {
+ Node node = (Node) nit.next();
+ switch (ComrelVisualIDRegistry.getVisualID(node)) {
+ case SingleInputPort7EditPart.VISUAL_ID:
+ for (Iterator<?> it = node.getTargetEdges().iterator(); it
+ .hasNext();) {
+ Edge incomingLink = (Edge) it.next();
+ if (ComrelVisualIDRegistry.getVisualID(incomingLink) == SinglePortMappingEditPart.VISUAL_ID) {
+ DestroyElementRequest r = new DestroyElementRequest(
+ incomingLink.getElement(), false);
+ cmd.add(new DestroyElementCommand(r));
+ cmd.add(new DeleteCommand(getEditingDomain(),
+ incomingLink));
+ continue;
+ }
+ if (ComrelVisualIDRegistry.getVisualID(incomingLink) == MultiSinglePortMappingEditPart.VISUAL_ID) {
+ DestroyElementRequest r = new DestroyElementRequest(
+ incomingLink.getElement(), false);
+ cmd.add(new DestroyElementCommand(r));
+ cmd.add(new DeleteCommand(getEditingDomain(),
+ incomingLink));
+ continue;
+ }
+ }
+ for (Iterator<?> it = node.getSourceEdges().iterator(); it
+ .hasNext();) {
+ Edge outgoingLink = (Edge) it.next();
+ if (ComrelVisualIDRegistry.getVisualID(outgoingLink) == SinglePortMappingEditPart.VISUAL_ID) {
+ DestroyElementRequest r = new DestroyElementRequest(
+ outgoingLink.getElement(), false);
+ cmd.add(new DestroyElementCommand(r));
+ cmd.add(new DeleteCommand(getEditingDomain(),
+ outgoingLink));
+ continue;
+ }
+ }
+ cmd.add(new DestroyElementCommand(new DestroyElementRequest(
+ getEditingDomain(), node.getElement(), false))); // directlyOwned: true
+ // don't need explicit deletion of node as parent's view deletion would clean child views as well
+ // cmd.add(new org.eclipse.gmf.runtime.diagram.core.commands.DeleteCommand(getEditingDomain(), node));
+ break;
+ case MultiInputPort8EditPart.VISUAL_ID:
+ for (Iterator<?> it = node.getTargetEdges().iterator(); it
+ .hasNext();) {
+ Edge incomingLink = (Edge) it.next();
+ if (ComrelVisualIDRegistry.getVisualID(incomingLink) == MultiPortMappingEditPart.VISUAL_ID) {
+ DestroyElementRequest r = new DestroyElementRequest(
+ incomingLink.getElement(), false);
+ cmd.add(new DestroyElementCommand(r));
+ cmd.add(new DeleteCommand(getEditingDomain(),
+ incomingLink));
+ continue;
+ }
+ }
+ for (Iterator<?> it = node.getSourceEdges().iterator(); it
+ .hasNext();) {
+ Edge outgoingLink = (Edge) it.next();
+ if (ComrelVisualIDRegistry.getVisualID(outgoingLink) == MultiPortMappingEditPart.VISUAL_ID) {
+ DestroyElementRequest r = new DestroyElementRequest(
+ outgoingLink.getElement(), false);
+ cmd.add(new DestroyElementCommand(r));
+ cmd.add(new DeleteCommand(getEditingDomain(),
+ outgoingLink));
+ continue;
+ }
+ if (ComrelVisualIDRegistry.getVisualID(outgoingLink) == MultiSinglePortMappingEditPart.VISUAL_ID) {
+ DestroyElementRequest r = new DestroyElementRequest(
+ outgoingLink.getElement(), false);
+ cmd.add(new DestroyElementCommand(r));
+ cmd.add(new DeleteCommand(getEditingDomain(),
+ outgoingLink));
+ continue;
+ }
+ }
+ cmd.add(new DestroyElementCommand(new DestroyElementRequest(
+ getEditingDomain(), node.getElement(), false))); // directlyOwned: true
+ // don't need explicit deletion of node as parent's view deletion would clean child views as well
+ // cmd.add(new org.eclipse.gmf.runtime.diagram.core.commands.DeleteCommand(getEditingDomain(), node));
+ break;
+ case SequentialUnitSequentialUnitHelperUnitsCompartment3EditPart.VISUAL_ID:
+ for (Iterator<?> cit = node.getChildren().iterator(); cit
+ .hasNext();) {
+ Node cnode = (Node) cit.next();
+ switch (ComrelVisualIDRegistry.getVisualID(cnode)) {
+ case SingleFeatureUnit5EditPart.VISUAL_ID:
+ cmd.add(new DestroyElementCommand(
+ new DestroyElementRequest(getEditingDomain(),
+ cnode.getElement(), false))); // directlyOwned: true
+ // don't need explicit deletion of cnode as parent's view deletion would clean child views as well
+ // cmd.add(new org.eclipse.gmf.runtime.diagram.core.commands.DeleteCommand(getEditingDomain(), cnode));
+ break;
+ case MultiFeatureUnit5EditPart.VISUAL_ID:
+ cmd.add(new DestroyElementCommand(
+ new DestroyElementRequest(getEditingDomain(),
+ cnode.getElement(), false))); // directlyOwned: true
+ // don't need explicit deletion of cnode as parent's view deletion would clean child views as well
+ // cmd.add(new org.eclipse.gmf.runtime.diagram.core.commands.DeleteCommand(getEditingDomain(), cnode));
+ break;
+ case SingleFilterUnit5EditPart.VISUAL_ID:
+ cmd.add(new DestroyElementCommand(
+ new DestroyElementRequest(getEditingDomain(),
+ cnode.getElement(), false))); // directlyOwned: true
+ // don't need explicit deletion of cnode as parent's view deletion would clean child views as well
+ // cmd.add(new org.eclipse.gmf.runtime.diagram.core.commands.DeleteCommand(getEditingDomain(), cnode));
+ break;
+ case MultiFilterUnit5EditPart.VISUAL_ID:
+ cmd.add(new DestroyElementCommand(
+ new DestroyElementRequest(getEditingDomain(),
+ cnode.getElement(), false))); // directlyOwned: true
+ // don't need explicit deletion of cnode as parent's view deletion would clean child views as well
+ // cmd.add(new org.eclipse.gmf.runtime.diagram.core.commands.DeleteCommand(getEditingDomain(), cnode));
+ break;
+ }
+ }
+ break;
+ case SequentialUnitSequentialUnitRefactoringUnitsCompartment3EditPart.VISUAL_ID:
+ for (Iterator<?> cit = node.getChildren().iterator(); cit
+ .hasNext();) {
+ Node cnode = (Node) cit.next();
+ switch (ComrelVisualIDRegistry.getVisualID(cnode)) {
+ case CartesianQueuedUnit5EditPart.VISUAL_ID:
+ cmd.add(new DestroyElementCommand(
+ new DestroyElementRequest(getEditingDomain(),
+ cnode.getElement(), false))); // directlyOwned: true
+ // don't need explicit deletion of cnode as parent's view deletion would clean child views as well
+ // cmd.add(new org.eclipse.gmf.runtime.diagram.core.commands.DeleteCommand(getEditingDomain(), cnode));
+ break;
+ case ParallelQueuedUnit6EditPart.VISUAL_ID:
+ cmd.add(new DestroyElementCommand(
+ new DestroyElementRequest(getEditingDomain(),
+ cnode.getElement(), false))); // directlyOwned: true
+ // don't need explicit deletion of cnode as parent's view deletion would clean child views as well
+ // cmd.add(new org.eclipse.gmf.runtime.diagram.core.commands.DeleteCommand(getEditingDomain(), cnode));
+ break;
+ case SingleQueuedUnit6EditPart.VISUAL_ID:
+ cmd.add(new DestroyElementCommand(
+ new DestroyElementRequest(getEditingDomain(),
+ cnode.getElement(), false))); // directlyOwned: true
+ // don't need explicit deletion of cnode as parent's view deletion would clean child views as well
+ // cmd.add(new org.eclipse.gmf.runtime.diagram.core.commands.DeleteCommand(getEditingDomain(), cnode));
+ break;
+ case SequentialUnit6EditPart.VISUAL_ID:
+ cmd.add(new DestroyElementCommand(
+ new DestroyElementRequest(getEditingDomain(),
+ cnode.getElement(), false))); // directlyOwned: true
+ // don't need explicit deletion of cnode as parent's view deletion would clean child views as well
+ // cmd.add(new org.eclipse.gmf.runtime.diagram.core.commands.DeleteCommand(getEditingDomain(), cnode));
+ break;
+ case ConditionalUnit5EditPart.VISUAL_ID:
+ cmd.add(new DestroyElementCommand(
+ new DestroyElementRequest(getEditingDomain(),
+ cnode.getElement(), false))); // directlyOwned: true
+ // don't need explicit deletion of cnode as parent's view deletion would clean child views as well
+ // cmd.add(new org.eclipse.gmf.runtime.diagram.core.commands.DeleteCommand(getEditingDomain(), cnode));
+ break;
+ case AtomicUnit5EditPart.VISUAL_ID:
+ cmd.add(new DestroyElementCommand(
+ new DestroyElementRequest(getEditingDomain(),
+ cnode.getElement(), false))); // directlyOwned: true
+ // don't need explicit deletion of cnode as parent's view deletion would clean child views as well
+ // cmd.add(new org.eclipse.gmf.runtime.diagram.core.commands.DeleteCommand(getEditingDomain(), cnode));
+ break;
+ }
+ }
+ break;
+ }
+ }
+ }
+
+}
diff --git a/org.eclipse.emf.refactor.comrel.diagram/src/comrel/diagram/edit/policies/SequentialUnit5CanonicalEditPolicy.java b/org.eclipse.emf.refactor.comrel.diagram/src/comrel/diagram/edit/policies/SequentialUnit5CanonicalEditPolicy.java
new file mode 100644
index 0000000..4b15f52
--- /dev/null
+++ b/org.eclipse.emf.refactor.comrel.diagram/src/comrel/diagram/edit/policies/SequentialUnit5CanonicalEditPolicy.java
@@ -0,0 +1,164 @@
+/*
+ *
+ */
+package comrel.diagram.edit.policies;
+
+import java.util.ArrayList;
+import java.util.Collection;
+import java.util.Iterator;
+import java.util.LinkedList;
+import java.util.List;
+
+import org.eclipse.core.runtime.IAdaptable;
+import org.eclipse.emf.ecore.EObject;
+import org.eclipse.emf.ecore.EStructuralFeature;
+import org.eclipse.gef.commands.Command;
+import org.eclipse.gmf.runtime.diagram.core.util.ViewUtil;
+import org.eclipse.gmf.runtime.diagram.ui.commands.DeferredLayoutCommand;
+import org.eclipse.gmf.runtime.diagram.ui.commands.ICommandProxy;
+import org.eclipse.gmf.runtime.diagram.ui.commands.SetViewMutabilityCommand;
+import org.eclipse.gmf.runtime.diagram.ui.editpolicies.CanonicalEditPolicy;
+import org.eclipse.gmf.runtime.diagram.ui.requests.CreateViewRequest;
+import org.eclipse.gmf.runtime.emf.core.util.EObjectAdapter;
+import org.eclipse.gmf.runtime.notation.Node;
+import org.eclipse.gmf.runtime.notation.View;
+
+import comrel.ComrelPackage;
+import comrel.diagram.edit.parts.MultiInputPort8EditPart;
+import comrel.diagram.edit.parts.SingleInputPort7EditPart;
+import comrel.diagram.part.ComrelDiagramUpdater;
+import comrel.diagram.part.ComrelNodeDescriptor;
+import comrel.diagram.part.ComrelVisualIDRegistry;
+
+/**
+ * @generated
+ */
+public class SequentialUnit5CanonicalEditPolicy extends CanonicalEditPolicy {
+
+ /**
+ * @generated
+ */
+ protected EStructuralFeature getFeatureToSynchronize() {
+ return ComrelPackage.eINSTANCE.getSequentialUnit_InputPorts();
+ }
+
+ /**
+ * @generated
+ */
+ @SuppressWarnings("rawtypes")
+ protected List getSemanticChildrenList() {
+ View viewObject = (View) getHost().getModel();
+ LinkedList<EObject> result = new LinkedList<EObject>();
+ List<ComrelNodeDescriptor> childDescriptors = ComrelDiagramUpdater
+ .getSequentialUnit_3069SemanticChildren(viewObject);
+ for (ComrelNodeDescriptor d : childDescriptors) {
+ result.add(d.getModelElement());
+ }
+ return result;
+ }
+
+ /**
+ * @generated
+ */
+ protected boolean isOrphaned(Collection<EObject> semanticChildren,
+ final View view) {
+ return isMyDiagramElement(view)
+ && !semanticChildren.contains(view.getElement());
+ }
+
+ /**
+ * @generated
+ */
+ private boolean isMyDiagramElement(View view) {
+ int visualID = ComrelVisualIDRegistry.getVisualID(view);
+ return visualID == SingleInputPort7EditPart.VISUAL_ID
+ || visualID == MultiInputPort8EditPart.VISUAL_ID;
+ }
+
+ /**
+ * @generated
+ */
+ protected void refreshSemantic() {
+ if (resolveSemanticElement() == null) {
+ return;
+ }
+ LinkedList<IAdaptable> createdViews = new LinkedList<IAdaptable>();
+ List<ComrelNodeDescriptor> childDescriptors = ComrelDiagramUpdater
+ .getSequentialUnit_3069SemanticChildren((View) getHost()
+ .getModel());
+ LinkedList<View> orphaned = new LinkedList<View>();
+ // we care to check only views we recognize as ours
+ LinkedList<View> knownViewChildren = new LinkedList<View>();
+ for (View v : getViewChildren()) {
+ if (isMyDiagramElement(v)) {
+ knownViewChildren.add(v);
+ }
+ }
+ // alternative to #cleanCanonicalSemanticChildren(getViewChildren(), semanticChildren)
+ //
+ // iteration happens over list of desired semantic elements, trying to find best matching View, while original CEP
+ // iterates views, potentially losing view (size/bounds) information - i.e. if there are few views to reference same EObject, only last one
+ // to answer isOrphaned == true will be used for the domain element representation, see #cleanCanonicalSemanticChildren()
+ for (Iterator<ComrelNodeDescriptor> descriptorsIterator = childDescriptors
+ .iterator(); descriptorsIterator.hasNext();) {
+ ComrelNodeDescriptor next = descriptorsIterator.next();
+ String hint = ComrelVisualIDRegistry.getType(next.getVisualID());
+ LinkedList<View> perfectMatch = new LinkedList<View>(); // both semanticElement and hint match that of NodeDescriptor
+ for (View childView : getViewChildren()) {
+ EObject semanticElement = childView.getElement();
+ if (next.getModelElement().equals(semanticElement)) {
+ if (hint.equals(childView.getType())) {
+ perfectMatch.add(childView);
+ // actually, can stop iteration over view children here, but
+ // may want to use not the first view but last one as a 'real' match (the way original CEP does
+ // with its trick with viewToSemanticMap inside #cleanCanonicalSemanticChildren
+ }
+ }
+ }
+ if (perfectMatch.size() > 0) {
+ descriptorsIterator.remove(); // precise match found no need to create anything for the NodeDescriptor
+ // use only one view (first or last?), keep rest as orphaned for further consideration
+ knownViewChildren.remove(perfectMatch.getFirst());
+ }
+ }
+ // those left in knownViewChildren are subject to removal - they are our diagram elements we didn't find match to,
+ // or those we have potential matches to, and thus need to be recreated, preserving size/location information.
+ orphaned.addAll(knownViewChildren);
+ //
+ ArrayList<CreateViewRequest.ViewDescriptor> viewDescriptors = new ArrayList<CreateViewRequest.ViewDescriptor>(
+ childDescriptors.size());
+ for (ComrelNodeDescriptor next : childDescriptors) {
+ String hint = ComrelVisualIDRegistry.getType(next.getVisualID());
+ IAdaptable elementAdapter = new CanonicalElementAdapter(
+ next.getModelElement(), hint);
+ CreateViewRequest.ViewDescriptor descriptor = new CreateViewRequest.ViewDescriptor(
+ elementAdapter, Node.class, hint, ViewUtil.APPEND, false,
+ host().getDiagramPreferencesHint());
+ viewDescriptors.add(descriptor);
+ }
+
+ boolean changed = deleteViews(orphaned.iterator());
+ //
+ CreateViewRequest request = getCreateViewRequest(viewDescriptors);
+ Command cmd = getCreateViewCommand(request);
+ if (cmd != null && cmd.canExecute()) {
+ SetViewMutabilityCommand.makeMutable(
+ new EObjectAdapter(host().getNotationView())).execute();
+ executeCommand(cmd);
+ @SuppressWarnings("unchecked")
+ List<IAdaptable> nl = (List<IAdaptable>) request.getNewObject();
+ createdViews.addAll(nl);
+ }
+ if (changed || createdViews.size() > 0) {
+ postProcessRefreshSemantic(createdViews);
+ }
+ if (createdViews.size() > 1) {
+ // perform a layout of the container
+ DeferredLayoutCommand layoutCmd = new DeferredLayoutCommand(host()
+ .getEditingDomain(), createdViews, host());
+ executeCommand(new ICommandProxy(layoutCmd));
+ }
+
+ makeViewsImmutable(createdViews);
+ }
+}
diff --git a/org.eclipse.emf.refactor.comrel.diagram/src/comrel/diagram/edit/policies/SequentialUnit5ItemSemanticEditPolicy.java b/org.eclipse.emf.refactor.comrel.diagram/src/comrel/diagram/edit/policies/SequentialUnit5ItemSemanticEditPolicy.java
new file mode 100644
index 0000000..c97b33e
--- /dev/null
+++ b/org.eclipse.emf.refactor.comrel.diagram/src/comrel/diagram/edit/policies/SequentialUnit5ItemSemanticEditPolicy.java
@@ -0,0 +1,263 @@
+/*
+ *
+ */
+package comrel.diagram.edit.policies;
+
+import java.util.Iterator;
+
+import org.eclipse.emf.ecore.EAnnotation;
+import org.eclipse.gef.commands.Command;
+import org.eclipse.gmf.runtime.common.core.command.ICompositeCommand;
+import org.eclipse.gmf.runtime.diagram.core.commands.DeleteCommand;
+import org.eclipse.gmf.runtime.emf.commands.core.command.CompositeTransactionalCommand;
+import org.eclipse.gmf.runtime.emf.type.core.commands.DestroyElementCommand;
+import org.eclipse.gmf.runtime.emf.type.core.requests.CreateElementRequest;
+import org.eclipse.gmf.runtime.emf.type.core.requests.DestroyElementRequest;
+import org.eclipse.gmf.runtime.notation.Edge;
+import org.eclipse.gmf.runtime.notation.Node;
+import org.eclipse.gmf.runtime.notation.View;
+
+import comrel.diagram.edit.commands.MultiInputPort8CreateCommand;
+import comrel.diagram.edit.commands.SingleInputPort7CreateCommand;
+import comrel.diagram.edit.parts.AtomicUnit5EditPart;
+import comrel.diagram.edit.parts.CartesianQueuedUnit5EditPart;
+import comrel.diagram.edit.parts.ConditionalUnit5EditPart;
+import comrel.diagram.edit.parts.MultiFeatureUnit5EditPart;
+import comrel.diagram.edit.parts.MultiFilterUnit5EditPart;
+import comrel.diagram.edit.parts.MultiInputPort8EditPart;
+import comrel.diagram.edit.parts.MultiPortMappingEditPart;
+import comrel.diagram.edit.parts.MultiSinglePortMappingEditPart;
+import comrel.diagram.edit.parts.ParallelQueuedUnit6EditPart;
+import comrel.diagram.edit.parts.SequentialUnit6EditPart;
+import comrel.diagram.edit.parts.SequentialUnitSequentialUnitHelperUnitsCompartment4EditPart;
+import comrel.diagram.edit.parts.SequentialUnitSequentialUnitRefactoringUnitsCompartment4EditPart;
+import comrel.diagram.edit.parts.SingleFeatureUnit5EditPart;
+import comrel.diagram.edit.parts.SingleFilterUnit5EditPart;
+import comrel.diagram.edit.parts.SingleInputPort7EditPart;
+import comrel.diagram.edit.parts.SinglePortMappingEditPart;
+import comrel.diagram.edit.parts.SingleQueuedUnit6EditPart;
+import comrel.diagram.part.ComrelVisualIDRegistry;
+import comrel.diagram.providers.ComrelElementTypes;
+
+/**
+ * @generated
+ */
+public class SequentialUnit5ItemSemanticEditPolicy extends
+ ComrelBaseItemSemanticEditPolicy {
+
+ /**
+ * @generated
+ */
+ public SequentialUnit5ItemSemanticEditPolicy() {
+ super(ComrelElementTypes.SequentialUnit_3069);
+ }
+
+ /**
+ * @generated
+ */
+ protected Command getCreateCommand(CreateElementRequest req) {
+ if (ComrelElementTypes.SingleInputPort_3027 == req.getElementType()) {
+ return getGEFWrapper(new SingleInputPort7CreateCommand(req));
+ }
+ if (ComrelElementTypes.MultiInputPort_3028 == req.getElementType()) {
+ return getGEFWrapper(new MultiInputPort8CreateCommand(req));
+ }
+ return super.getCreateCommand(req);
+ }
+
+ /**
+ * @generated
+ */
+ protected Command getDestroyElementCommand(DestroyElementRequest req) {
+ View view = (View) getHost().getModel();
+ CompositeTransactionalCommand cmd = new CompositeTransactionalCommand(
+ getEditingDomain(), null);
+ cmd.setTransactionNestingEnabled(false);
+ EAnnotation annotation = view.getEAnnotation("Shortcut"); //$NON-NLS-1$
+ if (annotation == null) {
+ // there are indirectly referenced children, need extra commands: false
+ addDestroyChildNodesCommand(cmd);
+ addDestroyShortcutsCommand(cmd, view);
+ // delete host element
+ cmd.add(new DestroyElementCommand(req));
+ } else {
+ cmd.add(new DeleteCommand(getEditingDomain(), view));
+ }
+ return getGEFWrapper(cmd.reduce());
+ }
+
+ /**
+ * @generated
+ */
+ private void addDestroyChildNodesCommand(ICompositeCommand cmd) {
+ View view = (View) getHost().getModel();
+ for (Iterator<?> nit = view.getChildren().iterator(); nit.hasNext();) {
+ Node node = (Node) nit.next();
+ switch (ComrelVisualIDRegistry.getVisualID(node)) {
+ case SingleInputPort7EditPart.VISUAL_ID:
+ for (Iterator<?> it = node.getTargetEdges().iterator(); it
+ .hasNext();) {
+ Edge incomingLink = (Edge) it.next();
+ if (ComrelVisualIDRegistry.getVisualID(incomingLink) == SinglePortMappingEditPart.VISUAL_ID) {
+ DestroyElementRequest r = new DestroyElementRequest(
+ incomingLink.getElement(), false);
+ cmd.add(new DestroyElementCommand(r));
+ cmd.add(new DeleteCommand(getEditingDomain(),
+ incomingLink));
+ continue;
+ }
+ if (ComrelVisualIDRegistry.getVisualID(incomingLink) == MultiSinglePortMappingEditPart.VISUAL_ID) {
+ DestroyElementRequest r = new DestroyElementRequest(
+ incomingLink.getElement(), false);
+ cmd.add(new DestroyElementCommand(r));
+ cmd.add(new DeleteCommand(getEditingDomain(),
+ incomingLink));
+ continue;
+ }
+ }
+ for (Iterator<?> it = node.getSourceEdges().iterator(); it
+ .hasNext();) {
+ Edge outgoingLink = (Edge) it.next();
+ if (ComrelVisualIDRegistry.getVisualID(outgoingLink) == SinglePortMappingEditPart.VISUAL_ID) {
+ DestroyElementRequest r = new DestroyElementRequest(
+ outgoingLink.getElement(), false);
+ cmd.add(new DestroyElementCommand(r));
+ cmd.add(new DeleteCommand(getEditingDomain(),
+ outgoingLink));
+ continue;
+ }
+ }
+ cmd.add(new DestroyElementCommand(new DestroyElementRequest(
+ getEditingDomain(), node.getElement(), false))); // directlyOwned: true
+ // don't need explicit deletion of node as parent's view deletion would clean child views as well
+ // cmd.add(new org.eclipse.gmf.runtime.diagram.core.commands.DeleteCommand(getEditingDomain(), node));
+ break;
+ case MultiInputPort8EditPart.VISUAL_ID:
+ for (Iterator<?> it = node.getTargetEdges().iterator(); it
+ .hasNext();) {
+ Edge incomingLink = (Edge) it.next();
+ if (ComrelVisualIDRegistry.getVisualID(incomingLink) == MultiPortMappingEditPart.VISUAL_ID) {
+ DestroyElementRequest r = new DestroyElementRequest(
+ incomingLink.getElement(), false);
+ cmd.add(new DestroyElementCommand(r));
+ cmd.add(new DeleteCommand(getEditingDomain(),
+ incomingLink));
+ continue;
+ }
+ }
+ for (Iterator<?> it = node.getSourceEdges().iterator(); it
+ .hasNext();) {
+ Edge outgoingLink = (Edge) it.next();
+ if (ComrelVisualIDRegistry.getVisualID(outgoingLink) == MultiPortMappingEditPart.VISUAL_ID) {
+ DestroyElementRequest r = new DestroyElementRequest(
+ outgoingLink.getElement(), false);
+ cmd.add(new DestroyElementCommand(r));
+ cmd.add(new DeleteCommand(getEditingDomain(),
+ outgoingLink));
+ continue;
+ }
+ if (ComrelVisualIDRegistry.getVisualID(outgoingLink) == MultiSinglePortMappingEditPart.VISUAL_ID) {
+ DestroyElementRequest r = new DestroyElementRequest(
+ outgoingLink.getElement(), false);
+ cmd.add(new DestroyElementCommand(r));
+ cmd.add(new DeleteCommand(getEditingDomain(),
+ outgoingLink));
+ continue;
+ }
+ }
+ cmd.add(new DestroyElementCommand(new DestroyElementRequest(
+ getEditingDomain(), node.getElement(), false))); // directlyOwned: true
+ // don't need explicit deletion of node as parent's view deletion would clean child views as well
+ // cmd.add(new org.eclipse.gmf.runtime.diagram.core.commands.DeleteCommand(getEditingDomain(), node));
+ break;
+ case SequentialUnitSequentialUnitHelperUnitsCompartment4EditPart.VISUAL_ID:
+ for (Iterator<?> cit = node.getChildren().iterator(); cit
+ .hasNext();) {
+ Node cnode = (Node) cit.next();
+ switch (ComrelVisualIDRegistry.getVisualID(cnode)) {
+ case SingleFeatureUnit5EditPart.VISUAL_ID:
+ cmd.add(new DestroyElementCommand(
+ new DestroyElementRequest(getEditingDomain(),
+ cnode.getElement(), false))); // directlyOwned: true
+ // don't need explicit deletion of cnode as parent's view deletion would clean child views as well
+ // cmd.add(new org.eclipse.gmf.runtime.diagram.core.commands.DeleteCommand(getEditingDomain(), cnode));
+ break;
+ case MultiFeatureUnit5EditPart.VISUAL_ID:
+ cmd.add(new DestroyElementCommand(
+ new DestroyElementRequest(getEditingDomain(),
+ cnode.getElement(), false))); // directlyOwned: true
+ // don't need explicit deletion of cnode as parent's view deletion would clean child views as well
+ // cmd.add(new org.eclipse.gmf.runtime.diagram.core.commands.DeleteCommand(getEditingDomain(), cnode));
+ break;
+ case SingleFilterUnit5EditPart.VISUAL_ID:
+ cmd.add(new DestroyElementCommand(
+ new DestroyElementRequest(getEditingDomain(),
+ cnode.getElement(), false))); // directlyOwned: true
+ // don't need explicit deletion of cnode as parent's view deletion would clean child views as well
+ // cmd.add(new org.eclipse.gmf.runtime.diagram.core.commands.DeleteCommand(getEditingDomain(), cnode));
+ break;
+ case MultiFilterUnit5EditPart.VISUAL_ID:
+ cmd.add(new DestroyElementCommand(
+ new DestroyElementRequest(getEditingDomain(),
+ cnode.getElement(), false))); // directlyOwned: true
+ // don't need explicit deletion of cnode as parent's view deletion would clean child views as well
+ // cmd.add(new org.eclipse.gmf.runtime.diagram.core.commands.DeleteCommand(getEditingDomain(), cnode));
+ break;
+ }
+ }
+ break;
+ case SequentialUnitSequentialUnitRefactoringUnitsCompartment4EditPart.VISUAL_ID:
+ for (Iterator<?> cit = node.getChildren().iterator(); cit
+ .hasNext();) {
+ Node cnode = (Node) cit.next();
+ switch (ComrelVisualIDRegistry.getVisualID(cnode)) {
+ case CartesianQueuedUnit5EditPart.VISUAL_ID:
+ cmd.add(new DestroyElementCommand(
+ new DestroyElementRequest(getEditingDomain(),
+ cnode.getElement(), false))); // directlyOwned: true
+ // don't need explicit deletion of cnode as parent's view deletion would clean child views as well
+ // cmd.add(new org.eclipse.gmf.runtime.diagram.core.commands.DeleteCommand(getEditingDomain(), cnode));
+ break;
+ case ParallelQueuedUnit6EditPart.VISUAL_ID:
+ cmd.add(new DestroyElementCommand(
+ new DestroyElementRequest(getEditingDomain(),
+ cnode.getElement(), false))); // directlyOwned: true
+ // don't need explicit deletion of cnode as parent's view deletion would clean child views as well
+ // cmd.add(new org.eclipse.gmf.runtime.diagram.core.commands.DeleteCommand(getEditingDomain(), cnode));
+ break;
+ case SingleQueuedUnit6EditPart.VISUAL_ID:
+ cmd.add(new DestroyElementCommand(
+ new DestroyElementRequest(getEditingDomain(),
+ cnode.getElement(), false))); // directlyOwned: true
+ // don't need explicit deletion of cnode as parent's view deletion would clean child views as well
+ // cmd.add(new org.eclipse.gmf.runtime.diagram.core.commands.DeleteCommand(getEditingDomain(), cnode));
+ break;
+ case SequentialUnit6EditPart.VISUAL_ID:
+ cmd.add(new DestroyElementCommand(
+ new DestroyElementRequest(getEditingDomain(),
+ cnode.getElement(), false))); // directlyOwned: true
+ // don't need explicit deletion of cnode as parent's view deletion would clean child views as well
+ // cmd.add(new org.eclipse.gmf.runtime.diagram.core.commands.DeleteCommand(getEditingDomain(), cnode));
+ break;
+ case ConditionalUnit5EditPart.VISUAL_ID:
+ cmd.add(new DestroyElementCommand(
+ new DestroyElementRequest(getEditingDomain(),
+ cnode.getElement(), false))); // directlyOwned: true
+ // don't need explicit deletion of cnode as parent's view deletion would clean child views as well
+ // cmd.add(new org.eclipse.gmf.runtime.diagram.core.commands.DeleteCommand(getEditingDomain(), cnode));
+ break;
+ case AtomicUnit5EditPart.VISUAL_ID:
+ cmd.add(new DestroyElementCommand(
+ new DestroyElementRequest(getEditingDomain(),
+ cnode.getElement(), false))); // directlyOwned: true
+ // don't need explicit deletion of cnode as parent's view deletion would clean child views as well
+ // cmd.add(new org.eclipse.gmf.runtime.diagram.core.commands.DeleteCommand(getEditingDomain(), cnode));
+ break;
+ }
+ }
+ break;
+ }
+ }
+ }
+
+}
diff --git a/org.eclipse.emf.refactor.comrel.diagram/src/comrel/diagram/edit/policies/SequentialUnit6CanonicalEditPolicy.java b/org.eclipse.emf.refactor.comrel.diagram/src/comrel/diagram/edit/policies/SequentialUnit6CanonicalEditPolicy.java
new file mode 100644
index 0000000..ab6edab
--- /dev/null
+++ b/org.eclipse.emf.refactor.comrel.diagram/src/comrel/diagram/edit/policies/SequentialUnit6CanonicalEditPolicy.java
@@ -0,0 +1,164 @@
+/*
+ *
+ */
+package comrel.diagram.edit.policies;
+
+import java.util.ArrayList;
+import java.util.Collection;
+import java.util.Iterator;
+import java.util.LinkedList;
+import java.util.List;
+
+import org.eclipse.core.runtime.IAdaptable;
+import org.eclipse.emf.ecore.EObject;
+import org.eclipse.emf.ecore.EStructuralFeature;
+import org.eclipse.gef.commands.Command;
+import org.eclipse.gmf.runtime.diagram.core.util.ViewUtil;
+import org.eclipse.gmf.runtime.diagram.ui.commands.DeferredLayoutCommand;
+import org.eclipse.gmf.runtime.diagram.ui.commands.ICommandProxy;
+import org.eclipse.gmf.runtime.diagram.ui.commands.SetViewMutabilityCommand;
+import org.eclipse.gmf.runtime.diagram.ui.editpolicies.CanonicalEditPolicy;
+import org.eclipse.gmf.runtime.diagram.ui.requests.CreateViewRequest;
+import org.eclipse.gmf.runtime.emf.core.util.EObjectAdapter;
+import org.eclipse.gmf.runtime.notation.Node;
+import org.eclipse.gmf.runtime.notation.View;
+
+import comrel.ComrelPackage;
+import comrel.diagram.edit.parts.MultiInputPort8EditPart;
+import comrel.diagram.edit.parts.SingleInputPort7EditPart;
+import comrel.diagram.part.ComrelDiagramUpdater;
+import comrel.diagram.part.ComrelNodeDescriptor;
+import comrel.diagram.part.ComrelVisualIDRegistry;
+
+/**
+ * @generated
+ */
+public class SequentialUnit6CanonicalEditPolicy extends CanonicalEditPolicy {
+
+ /**
+ * @generated
+ */
+ protected EStructuralFeature getFeatureToSynchronize() {
+ return ComrelPackage.eINSTANCE.getSequentialUnit_InputPorts();
+ }
+
+ /**
+ * @generated
+ */
+ @SuppressWarnings("rawtypes")
+ protected List getSemanticChildrenList() {
+ View viewObject = (View) getHost().getModel();
+ LinkedList<EObject> result = new LinkedList<EObject>();
+ List<ComrelNodeDescriptor> childDescriptors = ComrelDiagramUpdater
+ .getSequentialUnit_3070SemanticChildren(viewObject);
+ for (ComrelNodeDescriptor d : childDescriptors) {
+ result.add(d.getModelElement());
+ }
+ return result;
+ }
+
+ /**
+ * @generated
+ */
+ protected boolean isOrphaned(Collection<EObject> semanticChildren,
+ final View view) {
+ return isMyDiagramElement(view)
+ && !semanticChildren.contains(view.getElement());
+ }
+
+ /**
+ * @generated
+ */
+ private boolean isMyDiagramElement(View view) {
+ int visualID = ComrelVisualIDRegistry.getVisualID(view);
+ return visualID == SingleInputPort7EditPart.VISUAL_ID
+ || visualID == MultiInputPort8EditPart.VISUAL_ID;
+ }
+
+ /**
+ * @generated
+ */
+ protected void refreshSemantic() {
+ if (resolveSemanticElement() == null) {
+ return;
+ }
+ LinkedList<IAdaptable> createdViews = new LinkedList<IAdaptable>();
+ List<ComrelNodeDescriptor> childDescriptors = ComrelDiagramUpdater
+ .getSequentialUnit_3070SemanticChildren((View) getHost()
+ .getModel());
+ LinkedList<View> orphaned = new LinkedList<View>();
+ // we care to check only views we recognize as ours
+ LinkedList<View> knownViewChildren = new LinkedList<View>();
+ for (View v : getViewChildren()) {
+ if (isMyDiagramElement(v)) {
+ knownViewChildren.add(v);
+ }
+ }
+ // alternative to #cleanCanonicalSemanticChildren(getViewChildren(), semanticChildren)
+ //
+ // iteration happens over list of desired semantic elements, trying to find best matching View, while original CEP
+ // iterates views, potentially losing view (size/bounds) information - i.e. if there are few views to reference same EObject, only last one
+ // to answer isOrphaned == true will be used for the domain element representation, see #cleanCanonicalSemanticChildren()
+ for (Iterator<ComrelNodeDescriptor> descriptorsIterator = childDescriptors
+ .iterator(); descriptorsIterator.hasNext();) {
+ ComrelNodeDescriptor next = descriptorsIterator.next();
+ String hint = ComrelVisualIDRegistry.getType(next.getVisualID());
+ LinkedList<View> perfectMatch = new LinkedList<View>(); // both semanticElement and hint match that of NodeDescriptor
+ for (View childView : getViewChildren()) {
+ EObject semanticElement = childView.getElement();
+ if (next.getModelElement().equals(semanticElement)) {
+ if (hint.equals(childView.getType())) {
+ perfectMatch.add(childView);
+ // actually, can stop iteration over view children here, but
+ // may want to use not the first view but last one as a 'real' match (the way original CEP does
+ // with its trick with viewToSemanticMap inside #cleanCanonicalSemanticChildren
+ }
+ }
+ }
+ if (perfectMatch.size() > 0) {
+ descriptorsIterator.remove(); // precise match found no need to create anything for the NodeDescriptor
+ // use only one view (first or last?), keep rest as orphaned for further consideration
+ knownViewChildren.remove(perfectMatch.getFirst());
+ }
+ }
+ // those left in knownViewChildren are subject to removal - they are our diagram elements we didn't find match to,
+ // or those we have potential matches to, and thus need to be recreated, preserving size/location information.
+ orphaned.addAll(knownViewChildren);
+ //
+ ArrayList<CreateViewRequest.ViewDescriptor> viewDescriptors = new ArrayList<CreateViewRequest.ViewDescriptor>(
+ childDescriptors.size());
+ for (ComrelNodeDescriptor next : childDescriptors) {
+ String hint = ComrelVisualIDRegistry.getType(next.getVisualID());
+ IAdaptable elementAdapter = new CanonicalElementAdapter(
+ next.getModelElement(), hint);
+ CreateViewRequest.ViewDescriptor descriptor = new CreateViewRequest.ViewDescriptor(
+ elementAdapter, Node.class, hint, ViewUtil.APPEND, false,
+ host().getDiagramPreferencesHint());
+ viewDescriptors.add(descriptor);
+ }
+
+ boolean changed = deleteViews(orphaned.iterator());
+ //
+ CreateViewRequest request = getCreateViewRequest(viewDescriptors);
+ Command cmd = getCreateViewCommand(request);
+ if (cmd != null && cmd.canExecute()) {
+ SetViewMutabilityCommand.makeMutable(
+ new EObjectAdapter(host().getNotationView())).execute();
+ executeCommand(cmd);
+ @SuppressWarnings("unchecked")
+ List<IAdaptable> nl = (List<IAdaptable>) request.getNewObject();
+ createdViews.addAll(nl);
+ }
+ if (changed || createdViews.size() > 0) {
+ postProcessRefreshSemantic(createdViews);
+ }
+ if (createdViews.size() > 1) {
+ // perform a layout of the container
+ DeferredLayoutCommand layoutCmd = new DeferredLayoutCommand(host()
+ .getEditingDomain(), createdViews, host());
+ executeCommand(new ICommandProxy(layoutCmd));
+ }
+
+ makeViewsImmutable(createdViews);
+ }
+}
diff --git a/org.eclipse.emf.refactor.comrel.diagram/src/comrel/diagram/edit/policies/SequentialUnit6ItemSemanticEditPolicy.java b/org.eclipse.emf.refactor.comrel.diagram/src/comrel/diagram/edit/policies/SequentialUnit6ItemSemanticEditPolicy.java
new file mode 100644
index 0000000..1fd4707
--- /dev/null
+++ b/org.eclipse.emf.refactor.comrel.diagram/src/comrel/diagram/edit/policies/SequentialUnit6ItemSemanticEditPolicy.java
@@ -0,0 +1,263 @@
+/*
+ *
+ */
+package comrel.diagram.edit.policies;
+
+import java.util.Iterator;
+
+import org.eclipse.emf.ecore.EAnnotation;
+import org.eclipse.gef.commands.Command;
+import org.eclipse.gmf.runtime.common.core.command.ICompositeCommand;
+import org.eclipse.gmf.runtime.diagram.core.commands.DeleteCommand;
+import org.eclipse.gmf.runtime.emf.commands.core.command.CompositeTransactionalCommand;
+import org.eclipse.gmf.runtime.emf.type.core.commands.DestroyElementCommand;
+import org.eclipse.gmf.runtime.emf.type.core.requests.CreateElementRequest;
+import org.eclipse.gmf.runtime.emf.type.core.requests.DestroyElementRequest;
+import org.eclipse.gmf.runtime.notation.Edge;
+import org.eclipse.gmf.runtime.notation.Node;
+import org.eclipse.gmf.runtime.notation.View;
+
+import comrel.diagram.edit.commands.MultiInputPort8CreateCommand;
+import comrel.diagram.edit.commands.SingleInputPort7CreateCommand;
+import comrel.diagram.edit.parts.AtomicUnit5EditPart;
+import comrel.diagram.edit.parts.CartesianQueuedUnit5EditPart;
+import comrel.diagram.edit.parts.ConditionalUnit5EditPart;
+import comrel.diagram.edit.parts.MultiFeatureUnit5EditPart;
+import comrel.diagram.edit.parts.MultiFilterUnit5EditPart;
+import comrel.diagram.edit.parts.MultiInputPort8EditPart;
+import comrel.diagram.edit.parts.MultiPortMappingEditPart;
+import comrel.diagram.edit.parts.MultiSinglePortMappingEditPart;
+import comrel.diagram.edit.parts.ParallelQueuedUnit6EditPart;
+import comrel.diagram.edit.parts.SequentialUnit6EditPart;
+import comrel.diagram.edit.parts.SequentialUnitSequentialUnitHelperUnitsCompartment5EditPart;
+import comrel.diagram.edit.parts.SequentialUnitSequentialUnitRefactoringUnitsCompartment5EditPart;
+import comrel.diagram.edit.parts.SingleFeatureUnit5EditPart;
+import comrel.diagram.edit.parts.SingleFilterUnit5EditPart;
+import comrel.diagram.edit.parts.SingleInputPort7EditPart;
+import comrel.diagram.edit.parts.SinglePortMappingEditPart;
+import comrel.diagram.edit.parts.SingleQueuedUnit6EditPart;
+import comrel.diagram.part.ComrelVisualIDRegistry;
+import comrel.diagram.providers.ComrelElementTypes;
+
+/**
+ * @generated
+ */
+public class SequentialUnit6ItemSemanticEditPolicy extends
+ ComrelBaseItemSemanticEditPolicy {
+
+ /**
+ * @generated
+ */
+ public SequentialUnit6ItemSemanticEditPolicy() {
+ super(ComrelElementTypes.SequentialUnit_3070);
+ }
+
+ /**
+ * @generated
+ */
+ protected Command getCreateCommand(CreateElementRequest req) {
+ if (ComrelElementTypes.SingleInputPort_3027 == req.getElementType()) {
+ return getGEFWrapper(new SingleInputPort7CreateCommand(req));
+ }
+ if (ComrelElementTypes.MultiInputPort_3028 == req.getElementType()) {
+ return getGEFWrapper(new MultiInputPort8CreateCommand(req));
+ }
+ return super.getCreateCommand(req);
+ }
+
+ /**
+ * @generated
+ */
+ protected Command getDestroyElementCommand(DestroyElementRequest req) {
+ View view = (View) getHost().getModel();
+ CompositeTransactionalCommand cmd = new CompositeTransactionalCommand(
+ getEditingDomain(), null);
+ cmd.setTransactionNestingEnabled(false);
+ EAnnotation annotation = view.getEAnnotation("Shortcut"); //$NON-NLS-1$
+ if (annotation == null) {
+ // there are indirectly referenced children, need extra commands: false
+ addDestroyChildNodesCommand(cmd);
+ addDestroyShortcutsCommand(cmd, view);
+ // delete host element
+ cmd.add(new DestroyElementCommand(req));
+ } else {
+ cmd.add(new DeleteCommand(getEditingDomain(), view));
+ }
+ return getGEFWrapper(cmd.reduce());
+ }
+
+ /**
+ * @generated
+ */
+ private void addDestroyChildNodesCommand(ICompositeCommand cmd) {
+ View view = (View) getHost().getModel();
+ for (Iterator<?> nit = view.getChildren().iterator(); nit.hasNext();) {
+ Node node = (Node) nit.next();
+ switch (ComrelVisualIDRegistry.getVisualID(node)) {
+ case SingleInputPort7EditPart.VISUAL_ID:
+ for (Iterator<?> it = node.getTargetEdges().iterator(); it
+ .hasNext();) {
+ Edge incomingLink = (Edge) it.next();
+ if (ComrelVisualIDRegistry.getVisualID(incomingLink) == SinglePortMappingEditPart.VISUAL_ID) {
+ DestroyElementRequest r = new DestroyElementRequest(
+ incomingLink.getElement(), false);
+ cmd.add(new DestroyElementCommand(r));
+ cmd.add(new DeleteCommand(getEditingDomain(),
+ incomingLink));
+ continue;
+ }
+ if (ComrelVisualIDRegistry.getVisualID(incomingLink) == MultiSinglePortMappingEditPart.VISUAL_ID) {
+ DestroyElementRequest r = new DestroyElementRequest(
+ incomingLink.getElement(), false);
+ cmd.add(new DestroyElementCommand(r));
+ cmd.add(new DeleteCommand(getEditingDomain(),
+ incomingLink));
+ continue;
+ }
+ }
+ for (Iterator<?> it = node.getSourceEdges().iterator(); it
+ .hasNext();) {
+ Edge outgoingLink = (Edge) it.next();
+ if (ComrelVisualIDRegistry.getVisualID(outgoingLink) == SinglePortMappingEditPart.VISUAL_ID) {
+ DestroyElementRequest r = new DestroyElementRequest(
+ outgoingLink.getElement(), false);
+ cmd.add(new DestroyElementCommand(r));
+ cmd.add(new DeleteCommand(getEditingDomain(),
+ outgoingLink));
+ continue;
+ }
+ }
+ cmd.add(new DestroyElementCommand(new DestroyElementRequest(
+ getEditingDomain(), node.getElement(), false))); // directlyOwned: true
+ // don't need explicit deletion of node as parent's view deletion would clean child views as well
+ // cmd.add(new org.eclipse.gmf.runtime.diagram.core.commands.DeleteCommand(getEditingDomain(), node));
+ break;
+ case MultiInputPort8EditPart.VISUAL_ID:
+ for (Iterator<?> it = node.getTargetEdges().iterator(); it
+ .hasNext();) {
+ Edge incomingLink = (Edge) it.next();
+ if (ComrelVisualIDRegistry.getVisualID(incomingLink) == MultiPortMappingEditPart.VISUAL_ID) {
+ DestroyElementRequest r = new DestroyElementRequest(
+ incomingLink.getElement(), false);
+ cmd.add(new DestroyElementCommand(r));
+ cmd.add(new DeleteCommand(getEditingDomain(),
+ incomingLink));
+ continue;
+ }
+ }
+ for (Iterator<?> it = node.getSourceEdges().iterator(); it
+ .hasNext();) {
+ Edge outgoingLink = (Edge) it.next();
+ if (ComrelVisualIDRegistry.getVisualID(outgoingLink) == MultiPortMappingEditPart.VISUAL_ID) {
+ DestroyElementRequest r = new DestroyElementRequest(
+ outgoingLink.getElement(), false);
+ cmd.add(new DestroyElementCommand(r));
+ cmd.add(new DeleteCommand(getEditingDomain(),
+ outgoingLink));
+ continue;
+ }
+ if (ComrelVisualIDRegistry.getVisualID(outgoingLink) == MultiSinglePortMappingEditPart.VISUAL_ID) {
+ DestroyElementRequest r = new DestroyElementRequest(
+ outgoingLink.getElement(), false);
+ cmd.add(new DestroyElementCommand(r));
+ cmd.add(new DeleteCommand(getEditingDomain(),
+ outgoingLink));
+ continue;
+ }
+ }
+ cmd.add(new DestroyElementCommand(new DestroyElementRequest(
+ getEditingDomain(), node.getElement(), false))); // directlyOwned: true
+ // don't need explicit deletion of node as parent's view deletion would clean child views as well
+ // cmd.add(new org.eclipse.gmf.runtime.diagram.core.commands.DeleteCommand(getEditingDomain(), node));
+ break;
+ case SequentialUnitSequentialUnitHelperUnitsCompartment5EditPart.VISUAL_ID:
+ for (Iterator<?> cit = node.getChildren().iterator(); cit
+ .hasNext();) {
+ Node cnode = (Node) cit.next();
+ switch (ComrelVisualIDRegistry.getVisualID(cnode)) {
+ case SingleFeatureUnit5EditPart.VISUAL_ID:
+ cmd.add(new DestroyElementCommand(
+ new DestroyElementRequest(getEditingDomain(),
+ cnode.getElement(), false))); // directlyOwned: true
+ // don't need explicit deletion of cnode as parent's view deletion would clean child views as well
+ // cmd.add(new org.eclipse.gmf.runtime.diagram.core.commands.DeleteCommand(getEditingDomain(), cnode));
+ break;
+ case MultiFeatureUnit5EditPart.VISUAL_ID:
+ cmd.add(new DestroyElementCommand(
+ new DestroyElementRequest(getEditingDomain(),
+ cnode.getElement(), false))); // directlyOwned: true
+ // don't need explicit deletion of cnode as parent's view deletion would clean child views as well
+ // cmd.add(new org.eclipse.gmf.runtime.diagram.core.commands.DeleteCommand(getEditingDomain(), cnode));
+ break;
+ case SingleFilterUnit5EditPart.VISUAL_ID:
+ cmd.add(new DestroyElementCommand(
+ new DestroyElementRequest(getEditingDomain(),
+ cnode.getElement(), false))); // directlyOwned: true
+ // don't need explicit deletion of cnode as parent's view deletion would clean child views as well
+ // cmd.add(new org.eclipse.gmf.runtime.diagram.core.commands.DeleteCommand(getEditingDomain(), cnode));
+ break;
+ case MultiFilterUnit5EditPart.VISUAL_ID:
+ cmd.add(new DestroyElementCommand(
+ new DestroyElementRequest(getEditingDomain(),
+ cnode.getElement(), false))); // directlyOwned: true
+ // don't need explicit deletion of cnode as parent's view deletion would clean child views as well
+ // cmd.add(new org.eclipse.gmf.runtime.diagram.core.commands.DeleteCommand(getEditingDomain(), cnode));
+ break;
+ }
+ }
+ break;
+ case SequentialUnitSequentialUnitRefactoringUnitsCompartment5EditPart.VISUAL_ID:
+ for (Iterator<?> cit = node.getChildren().iterator(); cit
+ .hasNext();) {
+ Node cnode = (Node) cit.next();
+ switch (ComrelVisualIDRegistry.getVisualID(cnode)) {
+ case CartesianQueuedUnit5EditPart.VISUAL_ID:
+ cmd.add(new DestroyElementCommand(
+ new DestroyElementRequest(getEditingDomain(),
+ cnode.getElement(), false))); // directlyOwned: true
+ // don't need explicit deletion of cnode as parent's view deletion would clean child views as well
+ // cmd.add(new org.eclipse.gmf.runtime.diagram.core.commands.DeleteCommand(getEditingDomain(), cnode));
+ break;
+ case ParallelQueuedUnit6EditPart.VISUAL_ID:
+ cmd.add(new DestroyElementCommand(
+ new DestroyElementRequest(getEditingDomain(),
+ cnode.getElement(), false))); // directlyOwned: true
+ // don't need explicit deletion of cnode as parent's view deletion would clean child views as well
+ // cmd.add(new org.eclipse.gmf.runtime.diagram.core.commands.DeleteCommand(getEditingDomain(), cnode));
+ break;
+ case SingleQueuedUnit6EditPart.VISUAL_ID:
+ cmd.add(new DestroyElementCommand(
+ new DestroyElementRequest(getEditingDomain(),
+ cnode.getElement(), false))); // directlyOwned: true
+ // don't need explicit deletion of cnode as parent's view deletion would clean child views as well
+ // cmd.add(new org.eclipse.gmf.runtime.diagram.core.commands.DeleteCommand(getEditingDomain(), cnode));
+ break;
+ case SequentialUnit6EditPart.VISUAL_ID:
+ cmd.add(new DestroyElementCommand(
+ new DestroyElementRequest(getEditingDomain(),
+ cnode.getElement(), false))); // directlyOwned: true
+ // don't need explicit deletion of cnode as parent's view deletion would clean child views as well
+ // cmd.add(new org.eclipse.gmf.runtime.diagram.core.commands.DeleteCommand(getEditingDomain(), cnode));
+ break;
+ case ConditionalUnit5EditPart.VISUAL_ID:
+ cmd.add(new DestroyElementCommand(
+ new DestroyElementRequest(getEditingDomain(),
+ cnode.getElement(), false))); // directlyOwned: true
+ // don't need explicit deletion of cnode as parent's view deletion would clean child views as well
+ // cmd.add(new org.eclipse.gmf.runtime.diagram.core.commands.DeleteCommand(getEditingDomain(), cnode));
+ break;
+ case AtomicUnit5EditPart.VISUAL_ID:
+ cmd.add(new DestroyElementCommand(
+ new DestroyElementRequest(getEditingDomain(),
+ cnode.getElement(), false))); // directlyOwned: true
+ // don't need explicit deletion of cnode as parent's view deletion would clean child views as well
+ // cmd.add(new org.eclipse.gmf.runtime.diagram.core.commands.DeleteCommand(getEditingDomain(), cnode));
+ break;
+ }
+ }
+ break;
+ }
+ }
+ }
+
+}
diff --git a/org.eclipse.emf.refactor.comrel.diagram/src/comrel/diagram/edit/policies/SequentialUnit7CanonicalEditPolicy.java b/org.eclipse.emf.refactor.comrel.diagram/src/comrel/diagram/edit/policies/SequentialUnit7CanonicalEditPolicy.java
new file mode 100644
index 0000000..9678873
--- /dev/null
+++ b/org.eclipse.emf.refactor.comrel.diagram/src/comrel/diagram/edit/policies/SequentialUnit7CanonicalEditPolicy.java
@@ -0,0 +1,164 @@
+/*
+ *
+ */
+package comrel.diagram.edit.policies;
+
+import java.util.ArrayList;
+import java.util.Collection;
+import java.util.Iterator;
+import java.util.LinkedList;
+import java.util.List;
+
+import org.eclipse.core.runtime.IAdaptable;
+import org.eclipse.emf.ecore.EObject;
+import org.eclipse.emf.ecore.EStructuralFeature;
+import org.eclipse.gef.commands.Command;
+import org.eclipse.gmf.runtime.diagram.core.util.ViewUtil;
+import org.eclipse.gmf.runtime.diagram.ui.commands.DeferredLayoutCommand;
+import org.eclipse.gmf.runtime.diagram.ui.commands.ICommandProxy;
+import org.eclipse.gmf.runtime.diagram.ui.commands.SetViewMutabilityCommand;
+import org.eclipse.gmf.runtime.diagram.ui.editpolicies.CanonicalEditPolicy;
+import org.eclipse.gmf.runtime.diagram.ui.requests.CreateViewRequest;
+import org.eclipse.gmf.runtime.emf.core.util.EObjectAdapter;
+import org.eclipse.gmf.runtime.notation.Node;
+import org.eclipse.gmf.runtime.notation.View;
+
+import comrel.ComrelPackage;
+import comrel.diagram.edit.parts.MultiInputPort8EditPart;
+import comrel.diagram.edit.parts.SingleInputPort7EditPart;
+import comrel.diagram.part.ComrelDiagramUpdater;
+import comrel.diagram.part.ComrelNodeDescriptor;
+import comrel.diagram.part.ComrelVisualIDRegistry;
+
+/**
+ * @generated
+ */
+public class SequentialUnit7CanonicalEditPolicy extends CanonicalEditPolicy {
+
+ /**
+ * @generated
+ */
+ protected EStructuralFeature getFeatureToSynchronize() {
+ return ComrelPackage.eINSTANCE.getSequentialUnit_InputPorts();
+ }
+
+ /**
+ * @generated
+ */
+ @SuppressWarnings("rawtypes")
+ protected List getSemanticChildrenList() {
+ View viewObject = (View) getHost().getModel();
+ LinkedList<EObject> result = new LinkedList<EObject>();
+ List<ComrelNodeDescriptor> childDescriptors = ComrelDiagramUpdater
+ .getSequentialUnit_3073SemanticChildren(viewObject);
+ for (ComrelNodeDescriptor d : childDescriptors) {
+ result.add(d.getModelElement());
+ }
+ return result;
+ }
+
+ /**
+ * @generated
+ */
+ protected boolean isOrphaned(Collection<EObject> semanticChildren,
+ final View view) {
+ return isMyDiagramElement(view)
+ && !semanticChildren.contains(view.getElement());
+ }
+
+ /**
+ * @generated
+ */
+ private boolean isMyDiagramElement(View view) {
+ int visualID = ComrelVisualIDRegistry.getVisualID(view);
+ return visualID == SingleInputPort7EditPart.VISUAL_ID
+ || visualID == MultiInputPort8EditPart.VISUAL_ID;
+ }
+
+ /**
+ * @generated
+ */
+ protected void refreshSemantic() {
+ if (resolveSemanticElement() == null) {
+ return;
+ }
+ LinkedList<IAdaptable> createdViews = new LinkedList<IAdaptable>();
+ List<ComrelNodeDescriptor> childDescriptors = ComrelDiagramUpdater
+ .getSequentialUnit_3073SemanticChildren((View) getHost()
+ .getModel());
+ LinkedList<View> orphaned = new LinkedList<View>();
+ // we care to check only views we recognize as ours
+ LinkedList<View> knownViewChildren = new LinkedList<View>();
+ for (View v : getViewChildren()) {
+ if (isMyDiagramElement(v)) {
+ knownViewChildren.add(v);
+ }
+ }
+ // alternative to #cleanCanonicalSemanticChildren(getViewChildren(), semanticChildren)
+ //
+ // iteration happens over list of desired semantic elements, trying to find best matching View, while original CEP
+ // iterates views, potentially losing view (size/bounds) information - i.e. if there are few views to reference same EObject, only last one
+ // to answer isOrphaned == true will be used for the domain element representation, see #cleanCanonicalSemanticChildren()
+ for (Iterator<ComrelNodeDescriptor> descriptorsIterator = childDescriptors
+ .iterator(); descriptorsIterator.hasNext();) {
+ ComrelNodeDescriptor next = descriptorsIterator.next();
+ String hint = ComrelVisualIDRegistry.getType(next.getVisualID());
+ LinkedList<View> perfectMatch = new LinkedList<View>(); // both semanticElement and hint match that of NodeDescriptor
+ for (View childView : getViewChildren()) {
+ EObject semanticElement = childView.getElement();
+ if (next.getModelElement().equals(semanticElement)) {
+ if (hint.equals(childView.getType())) {
+ perfectMatch.add(childView);
+ // actually, can stop iteration over view children here, but
+ // may want to use not the first view but last one as a 'real' match (the way original CEP does
+ // with its trick with viewToSemanticMap inside #cleanCanonicalSemanticChildren
+ }
+ }
+ }
+ if (perfectMatch.size() > 0) {
+ descriptorsIterator.remove(); // precise match found no need to create anything for the NodeDescriptor
+ // use only one view (first or last?), keep rest as orphaned for further consideration
+ knownViewChildren.remove(perfectMatch.getFirst());
+ }
+ }
+ // those left in knownViewChildren are subject to removal - they are our diagram elements we didn't find match to,
+ // or those we have potential matches to, and thus need to be recreated, preserving size/location information.
+ orphaned.addAll(knownViewChildren);
+ //
+ ArrayList<CreateViewRequest.ViewDescriptor> viewDescriptors = new ArrayList<CreateViewRequest.ViewDescriptor>(
+ childDescriptors.size());
+ for (ComrelNodeDescriptor next : childDescriptors) {
+ String hint = ComrelVisualIDRegistry.getType(next.getVisualID());
+ IAdaptable elementAdapter = new CanonicalElementAdapter(
+ next.getModelElement(), hint);
+ CreateViewRequest.ViewDescriptor descriptor = new CreateViewRequest.ViewDescriptor(
+ elementAdapter, Node.class, hint, ViewUtil.APPEND, false,
+ host().getDiagramPreferencesHint());
+ viewDescriptors.add(descriptor);
+ }
+
+ boolean changed = deleteViews(orphaned.iterator());
+ //
+ CreateViewRequest request = getCreateViewRequest(viewDescriptors);
+ Command cmd = getCreateViewCommand(request);
+ if (cmd != null && cmd.canExecute()) {
+ SetViewMutabilityCommand.makeMutable(
+ new EObjectAdapter(host().getNotationView())).execute();
+ executeCommand(cmd);
+ @SuppressWarnings("unchecked")
+ List<IAdaptable> nl = (List<IAdaptable>) request.getNewObject();
+ createdViews.addAll(nl);
+ }
+ if (changed || createdViews.size() > 0) {
+ postProcessRefreshSemantic(createdViews);
+ }
+ if (createdViews.size() > 1) {
+ // perform a layout of the container
+ DeferredLayoutCommand layoutCmd = new DeferredLayoutCommand(host()
+ .getEditingDomain(), createdViews, host());
+ executeCommand(new ICommandProxy(layoutCmd));
+ }
+
+ makeViewsImmutable(createdViews);
+ }
+}
diff --git a/org.eclipse.emf.refactor.comrel.diagram/src/comrel/diagram/edit/policies/SequentialUnit7ItemSemanticEditPolicy.java b/org.eclipse.emf.refactor.comrel.diagram/src/comrel/diagram/edit/policies/SequentialUnit7ItemSemanticEditPolicy.java
new file mode 100644
index 0000000..0db2451
--- /dev/null
+++ b/org.eclipse.emf.refactor.comrel.diagram/src/comrel/diagram/edit/policies/SequentialUnit7ItemSemanticEditPolicy.java
@@ -0,0 +1,263 @@
+/*
+ *
+ */
+package comrel.diagram.edit.policies;
+
+import java.util.Iterator;
+
+import org.eclipse.emf.ecore.EAnnotation;
+import org.eclipse.gef.commands.Command;
+import org.eclipse.gmf.runtime.common.core.command.ICompositeCommand;
+import org.eclipse.gmf.runtime.diagram.core.commands.DeleteCommand;
+import org.eclipse.gmf.runtime.emf.commands.core.command.CompositeTransactionalCommand;
+import org.eclipse.gmf.runtime.emf.type.core.commands.DestroyElementCommand;
+import org.eclipse.gmf.runtime.emf.type.core.requests.CreateElementRequest;
+import org.eclipse.gmf.runtime.emf.type.core.requests.DestroyElementRequest;
+import org.eclipse.gmf.runtime.notation.Edge;
+import org.eclipse.gmf.runtime.notation.Node;
+import org.eclipse.gmf.runtime.notation.View;
+
+import comrel.diagram.edit.commands.MultiInputPort8CreateCommand;
+import comrel.diagram.edit.commands.SingleInputPort7CreateCommand;
+import comrel.diagram.edit.parts.AtomicUnit5EditPart;
+import comrel.diagram.edit.parts.CartesianQueuedUnit5EditPart;
+import comrel.diagram.edit.parts.ConditionalUnit5EditPart;
+import comrel.diagram.edit.parts.MultiFeatureUnit5EditPart;
+import comrel.diagram.edit.parts.MultiFilterUnit5EditPart;
+import comrel.diagram.edit.parts.MultiInputPort8EditPart;
+import comrel.diagram.edit.parts.MultiPortMappingEditPart;
+import comrel.diagram.edit.parts.MultiSinglePortMappingEditPart;
+import comrel.diagram.edit.parts.ParallelQueuedUnit6EditPart;
+import comrel.diagram.edit.parts.SequentialUnit6EditPart;
+import comrel.diagram.edit.parts.SequentialUnitSequentialUnitHelperUnitsCompartment6EditPart;
+import comrel.diagram.edit.parts.SequentialUnitSequentialUnitRefactoringUnitsCompartment6EditPart;
+import comrel.diagram.edit.parts.SingleFeatureUnit5EditPart;
+import comrel.diagram.edit.parts.SingleFilterUnit5EditPart;
+import comrel.diagram.edit.parts.SingleInputPort7EditPart;
+import comrel.diagram.edit.parts.SinglePortMappingEditPart;
+import comrel.diagram.edit.parts.SingleQueuedUnit6EditPart;
+import comrel.diagram.part.ComrelVisualIDRegistry;
+import comrel.diagram.providers.ComrelElementTypes;
+
+/**
+ * @generated
+ */
+public class SequentialUnit7ItemSemanticEditPolicy extends
+ ComrelBaseItemSemanticEditPolicy {
+
+ /**
+ * @generated
+ */
+ public SequentialUnit7ItemSemanticEditPolicy() {
+ super(ComrelElementTypes.SequentialUnit_3073);
+ }
+
+ /**
+ * @generated
+ */
+ protected Command getCreateCommand(CreateElementRequest req) {
+ if (ComrelElementTypes.SingleInputPort_3027 == req.getElementType()) {
+ return getGEFWrapper(new SingleInputPort7CreateCommand(req));
+ }
+ if (ComrelElementTypes.MultiInputPort_3028 == req.getElementType()) {
+ return getGEFWrapper(new MultiInputPort8CreateCommand(req));
+ }
+ return super.getCreateCommand(req);
+ }
+
+ /**
+ * @generated
+ */
+ protected Command getDestroyElementCommand(DestroyElementRequest req) {
+ View view = (View) getHost().getModel();
+ CompositeTransactionalCommand cmd = new CompositeTransactionalCommand(
+ getEditingDomain(), null);
+ cmd.setTransactionNestingEnabled(false);
+ EAnnotation annotation = view.getEAnnotation("Shortcut"); //$NON-NLS-1$
+ if (annotation == null) {
+ // there are indirectly referenced children, need extra commands: false
+ addDestroyChildNodesCommand(cmd);
+ addDestroyShortcutsCommand(cmd, view);
+ // delete host element
+ cmd.add(new DestroyElementCommand(req));
+ } else {
+ cmd.add(new DeleteCommand(getEditingDomain(), view));
+ }
+ return getGEFWrapper(cmd.reduce());
+ }
+
+ /**
+ * @generated
+ */
+ private void addDestroyChildNodesCommand(ICompositeCommand cmd) {
+ View view = (View) getHost().getModel();
+ for (Iterator<?> nit = view.getChildren().iterator(); nit.hasNext();) {
+ Node node = (Node) nit.next();
+ switch (ComrelVisualIDRegistry.getVisualID(node)) {
+ case SingleInputPort7EditPart.VISUAL_ID:
+ for (Iterator<?> it = node.getTargetEdges().iterator(); it
+ .hasNext();) {
+ Edge incomingLink = (Edge) it.next();
+ if (ComrelVisualIDRegistry.getVisualID(incomingLink) == SinglePortMappingEditPart.VISUAL_ID) {
+ DestroyElementRequest r = new DestroyElementRequest(
+ incomingLink.getElement(), false);
+ cmd.add(new DestroyElementCommand(r));
+ cmd.add(new DeleteCommand(getEditingDomain(),
+ incomingLink));
+ continue;
+ }
+ if (ComrelVisualIDRegistry.getVisualID(incomingLink) == MultiSinglePortMappingEditPart.VISUAL_ID) {
+ DestroyElementRequest r = new DestroyElementRequest(
+ incomingLink.getElement(), false);
+ cmd.add(new DestroyElementCommand(r));
+ cmd.add(new DeleteCommand(getEditingDomain(),
+ incomingLink));
+ continue;
+ }
+ }
+ for (Iterator<?> it = node.getSourceEdges().iterator(); it
+ .hasNext();) {
+ Edge outgoingLink = (Edge) it.next();
+ if (ComrelVisualIDRegistry.getVisualID(outgoingLink) == SinglePortMappingEditPart.VISUAL_ID) {
+ DestroyElementRequest r = new DestroyElementRequest(
+ outgoingLink.getElement(), false);
+ cmd.add(new DestroyElementCommand(r));
+ cmd.add(new DeleteCommand(getEditingDomain(),
+ outgoingLink));
+ continue;
+ }
+ }
+ cmd.add(new DestroyElementCommand(new DestroyElementRequest(
+ getEditingDomain(), node.getElement(), false))); // directlyOwned: true
+ // don't need explicit deletion of node as parent's view deletion would clean child views as well
+ // cmd.add(new org.eclipse.gmf.runtime.diagram.core.commands.DeleteCommand(getEditingDomain(), node));
+ break;
+ case MultiInputPort8EditPart.VISUAL_ID:
+ for (Iterator<?> it = node.getTargetEdges().iterator(); it
+ .hasNext();) {
+ Edge incomingLink = (Edge) it.next();
+ if (ComrelVisualIDRegistry.getVisualID(incomingLink) == MultiPortMappingEditPart.VISUAL_ID) {
+ DestroyElementRequest r = new DestroyElementRequest(
+ incomingLink.getElement(), false);
+ cmd.add(new DestroyElementCommand(r));
+ cmd.add(new DeleteCommand(getEditingDomain(),
+ incomingLink));
+ continue;
+ }
+ }
+ for (Iterator<?> it = node.getSourceEdges().iterator(); it
+ .hasNext();) {
+ Edge outgoingLink = (Edge) it.next();
+ if (ComrelVisualIDRegistry.getVisualID(outgoingLink) == MultiPortMappingEditPart.VISUAL_ID) {
+ DestroyElementRequest r = new DestroyElementRequest(
+ outgoingLink.getElement(), false);
+ cmd.add(new DestroyElementCommand(r));
+ cmd.add(new DeleteCommand(getEditingDomain(),
+ outgoingLink));
+ continue;
+ }
+ if (ComrelVisualIDRegistry.getVisualID(outgoingLink) == MultiSinglePortMappingEditPart.VISUAL_ID) {
+ DestroyElementRequest r = new DestroyElementRequest(
+ outgoingLink.getElement(), false);
+ cmd.add(new DestroyElementCommand(r));
+ cmd.add(new DeleteCommand(getEditingDomain(),
+ outgoingLink));
+ continue;
+ }
+ }
+ cmd.add(new DestroyElementCommand(new DestroyElementRequest(
+ getEditingDomain(), node.getElement(), false))); // directlyOwned: true
+ // don't need explicit deletion of node as parent's view deletion would clean child views as well
+ // cmd.add(new org.eclipse.gmf.runtime.diagram.core.commands.DeleteCommand(getEditingDomain(), node));
+ break;
+ case SequentialUnitSequentialUnitHelperUnitsCompartment6EditPart.VISUAL_ID:
+ for (Iterator<?> cit = node.getChildren().iterator(); cit
+ .hasNext();) {
+ Node cnode = (Node) cit.next();
+ switch (ComrelVisualIDRegistry.getVisualID(cnode)) {
+ case SingleFeatureUnit5EditPart.VISUAL_ID:
+ cmd.add(new DestroyElementCommand(
+ new DestroyElementRequest(getEditingDomain(),
+ cnode.getElement(), false))); // directlyOwned: true
+ // don't need explicit deletion of cnode as parent's view deletion would clean child views as well
+ // cmd.add(new org.eclipse.gmf.runtime.diagram.core.commands.DeleteCommand(getEditingDomain(), cnode));
+ break;
+ case MultiFeatureUnit5EditPart.VISUAL_ID:
+ cmd.add(new DestroyElementCommand(
+ new DestroyElementRequest(getEditingDomain(),
+ cnode.getElement(), false))); // directlyOwned: true
+ // don't need explicit deletion of cnode as parent's view deletion would clean child views as well
+ // cmd.add(new org.eclipse.gmf.runtime.diagram.core.commands.DeleteCommand(getEditingDomain(), cnode));
+ break;
+ case SingleFilterUnit5EditPart.VISUAL_ID:
+ cmd.add(new DestroyElementCommand(
+ new DestroyElementRequest(getEditingDomain(),
+ cnode.getElement(), false))); // directlyOwned: true
+ // don't need explicit deletion of cnode as parent's view deletion would clean child views as well
+ // cmd.add(new org.eclipse.gmf.runtime.diagram.core.commands.DeleteCommand(getEditingDomain(), cnode));
+ break;
+ case MultiFilterUnit5EditPart.VISUAL_ID:
+ cmd.add(new DestroyElementCommand(
+ new DestroyElementRequest(getEditingDomain(),
+ cnode.getElement(), false))); // directlyOwned: true
+ // don't need explicit deletion of cnode as parent's view deletion would clean child views as well
+ // cmd.add(new org.eclipse.gmf.runtime.diagram.core.commands.DeleteCommand(getEditingDomain(), cnode));
+ break;
+ }
+ }
+ break;
+ case SequentialUnitSequentialUnitRefactoringUnitsCompartment6EditPart.VISUAL_ID:
+ for (Iterator<?> cit = node.getChildren().iterator(); cit
+ .hasNext();) {
+ Node cnode = (Node) cit.next();
+ switch (ComrelVisualIDRegistry.getVisualID(cnode)) {
+ case CartesianQueuedUnit5EditPart.VISUAL_ID:
+ cmd.add(new DestroyElementCommand(
+ new DestroyElementRequest(getEditingDomain(),
+ cnode.getElement(), false))); // directlyOwned: true
+ // don't need explicit deletion of cnode as parent's view deletion would clean child views as well
+ // cmd.add(new org.eclipse.gmf.runtime.diagram.core.commands.DeleteCommand(getEditingDomain(), cnode));
+ break;
+ case ParallelQueuedUnit6EditPart.VISUAL_ID:
+ cmd.add(new DestroyElementCommand(
+ new DestroyElementRequest(getEditingDomain(),
+ cnode.getElement(), false))); // directlyOwned: true
+ // don't need explicit deletion of cnode as parent's view deletion would clean child views as well
+ // cmd.add(new org.eclipse.gmf.runtime.diagram.core.commands.DeleteCommand(getEditingDomain(), cnode));
+ break;
+ case SingleQueuedUnit6EditPart.VISUAL_ID:
+ cmd.add(new DestroyElementCommand(
+ new DestroyElementRequest(getEditingDomain(),
+ cnode.getElement(), false))); // directlyOwned: true
+ // don't need explicit deletion of cnode as parent's view deletion would clean child views as well
+ // cmd.add(new org.eclipse.gmf.runtime.diagram.core.commands.DeleteCommand(getEditingDomain(), cnode));
+ break;
+ case SequentialUnit6EditPart.VISUAL_ID:
+ cmd.add(new DestroyElementCommand(
+ new DestroyElementRequest(getEditingDomain(),
+ cnode.getElement(), false))); // directlyOwned: true
+ // don't need explicit deletion of cnode as parent's view deletion would clean child views as well
+ // cmd.add(new org.eclipse.gmf.runtime.diagram.core.commands.DeleteCommand(getEditingDomain(), cnode));
+ break;
+ case ConditionalUnit5EditPart.VISUAL_ID:
+ cmd.add(new DestroyElementCommand(
+ new DestroyElementRequest(getEditingDomain(),
+ cnode.getElement(), false))); // directlyOwned: true
+ // don't need explicit deletion of cnode as parent's view deletion would clean child views as well
+ // cmd.add(new org.eclipse.gmf.runtime.diagram.core.commands.DeleteCommand(getEditingDomain(), cnode));
+ break;
+ case AtomicUnit5EditPart.VISUAL_ID:
+ cmd.add(new DestroyElementCommand(
+ new DestroyElementRequest(getEditingDomain(),
+ cnode.getElement(), false))); // directlyOwned: true
+ // don't need explicit deletion of cnode as parent's view deletion would clean child views as well
+ // cmd.add(new org.eclipse.gmf.runtime.diagram.core.commands.DeleteCommand(getEditingDomain(), cnode));
+ break;
+ }
+ }
+ break;
+ }
+ }
+ }
+
+}
diff --git a/org.eclipse.emf.refactor.comrel.diagram/src/comrel/diagram/edit/policies/SequentialUnitCanonicalEditPolicy.java b/org.eclipse.emf.refactor.comrel.diagram/src/comrel/diagram/edit/policies/SequentialUnitCanonicalEditPolicy.java
new file mode 100644
index 0000000..f3e3536
--- /dev/null
+++ b/org.eclipse.emf.refactor.comrel.diagram/src/comrel/diagram/edit/policies/SequentialUnitCanonicalEditPolicy.java
@@ -0,0 +1,164 @@
+/*
+ *
+ */
+package comrel.diagram.edit.policies;
+
+import java.util.ArrayList;
+import java.util.Collection;
+import java.util.Iterator;
+import java.util.LinkedList;
+import java.util.List;
+
+import org.eclipse.core.runtime.IAdaptable;
+import org.eclipse.emf.ecore.EObject;
+import org.eclipse.emf.ecore.EStructuralFeature;
+import org.eclipse.gef.commands.Command;
+import org.eclipse.gmf.runtime.diagram.core.util.ViewUtil;
+import org.eclipse.gmf.runtime.diagram.ui.commands.DeferredLayoutCommand;
+import org.eclipse.gmf.runtime.diagram.ui.commands.ICommandProxy;
+import org.eclipse.gmf.runtime.diagram.ui.commands.SetViewMutabilityCommand;
+import org.eclipse.gmf.runtime.diagram.ui.editpolicies.CanonicalEditPolicy;
+import org.eclipse.gmf.runtime.diagram.ui.requests.CreateViewRequest;
+import org.eclipse.gmf.runtime.emf.core.util.EObjectAdapter;
+import org.eclipse.gmf.runtime.notation.Node;
+import org.eclipse.gmf.runtime.notation.View;
+
+import comrel.ComrelPackage;
+import comrel.diagram.edit.parts.MultiInputPort8EditPart;
+import comrel.diagram.edit.parts.SingleInputPort7EditPart;
+import comrel.diagram.part.ComrelDiagramUpdater;
+import comrel.diagram.part.ComrelNodeDescriptor;
+import comrel.diagram.part.ComrelVisualIDRegistry;
+
+/**
+ * @generated
+ */
+public class SequentialUnitCanonicalEditPolicy extends CanonicalEditPolicy {
+
+ /**
+ * @generated
+ */
+ protected EStructuralFeature getFeatureToSynchronize() {
+ return ComrelPackage.eINSTANCE.getSequentialUnit_InputPorts();
+ }
+
+ /**
+ * @generated
+ */
+ @SuppressWarnings("rawtypes")
+ protected List getSemanticChildrenList() {
+ View viewObject = (View) getHost().getModel();
+ LinkedList<EObject> result = new LinkedList<EObject>();
+ List<ComrelNodeDescriptor> childDescriptors = ComrelDiagramUpdater
+ .getSequentialUnit_2005SemanticChildren(viewObject);
+ for (ComrelNodeDescriptor d : childDescriptors) {
+ result.add(d.getModelElement());
+ }
+ return result;
+ }
+
+ /**
+ * @generated
+ */
+ protected boolean isOrphaned(Collection<EObject> semanticChildren,
+ final View view) {
+ return isMyDiagramElement(view)
+ && !semanticChildren.contains(view.getElement());
+ }
+
+ /**
+ * @generated
+ */
+ private boolean isMyDiagramElement(View view) {
+ int visualID = ComrelVisualIDRegistry.getVisualID(view);
+ return visualID == SingleInputPort7EditPart.VISUAL_ID
+ || visualID == MultiInputPort8EditPart.VISUAL_ID;
+ }
+
+ /**
+ * @generated
+ */
+ protected void refreshSemantic() {
+ if (resolveSemanticElement() == null) {
+ return;
+ }
+ LinkedList<IAdaptable> createdViews = new LinkedList<IAdaptable>();
+ List<ComrelNodeDescriptor> childDescriptors = ComrelDiagramUpdater
+ .getSequentialUnit_2005SemanticChildren((View) getHost()
+ .getModel());
+ LinkedList<View> orphaned = new LinkedList<View>();
+ // we care to check only views we recognize as ours
+ LinkedList<View> knownViewChildren = new LinkedList<View>();
+ for (View v : getViewChildren()) {
+ if (isMyDiagramElement(v)) {
+ knownViewChildren.add(v);
+ }
+ }
+ // alternative to #cleanCanonicalSemanticChildren(getViewChildren(), semanticChildren)
+ //
+ // iteration happens over list of desired semantic elements, trying to find best matching View, while original CEP
+ // iterates views, potentially losing view (size/bounds) information - i.e. if there are few views to reference same EObject, only last one
+ // to answer isOrphaned == true will be used for the domain element representation, see #cleanCanonicalSemanticChildren()
+ for (Iterator<ComrelNodeDescriptor> descriptorsIterator = childDescriptors
+ .iterator(); descriptorsIterator.hasNext();) {
+ ComrelNodeDescriptor next = descriptorsIterator.next();
+ String hint = ComrelVisualIDRegistry.getType(next.getVisualID());
+ LinkedList<View> perfectMatch = new LinkedList<View>(); // both semanticElement and hint match that of NodeDescriptor
+ for (View childView : getViewChildren()) {
+ EObject semanticElement = childView.getElement();
+ if (next.getModelElement().equals(semanticElement)) {
+ if (hint.equals(childView.getType())) {
+ perfectMatch.add(childView);
+ // actually, can stop iteration over view children here, but
+ // may want to use not the first view but last one as a 'real' match (the way original CEP does
+ // with its trick with viewToSemanticMap inside #cleanCanonicalSemanticChildren
+ }
+ }
+ }
+ if (perfectMatch.size() > 0) {
+ descriptorsIterator.remove(); // precise match found no need to create anything for the NodeDescriptor
+ // use only one view (first or last?), keep rest as orphaned for further consideration
+ knownViewChildren.remove(perfectMatch.getFirst());
+ }
+ }
+ // those left in knownViewChildren are subject to removal - they are our diagram elements we didn't find match to,
+ // or those we have potential matches to, and thus need to be recreated, preserving size/location information.
+ orphaned.addAll(knownViewChildren);
+ //
+ ArrayList<CreateViewRequest.ViewDescriptor> viewDescriptors = new ArrayList<CreateViewRequest.ViewDescriptor>(
+ childDescriptors.size());
+ for (ComrelNodeDescriptor next : childDescriptors) {
+ String hint = ComrelVisualIDRegistry.getType(next.getVisualID());
+ IAdaptable elementAdapter = new CanonicalElementAdapter(
+ next.getModelElement(), hint);
+ CreateViewRequest.ViewDescriptor descriptor = new CreateViewRequest.ViewDescriptor(
+ elementAdapter, Node.class, hint, ViewUtil.APPEND, false,
+ host().getDiagramPreferencesHint());
+ viewDescriptors.add(descriptor);
+ }
+
+ boolean changed = deleteViews(orphaned.iterator());
+ //
+ CreateViewRequest request = getCreateViewRequest(viewDescriptors);
+ Command cmd = getCreateViewCommand(request);
+ if (cmd != null && cmd.canExecute()) {
+ SetViewMutabilityCommand.makeMutable(
+ new EObjectAdapter(host().getNotationView())).execute();
+ executeCommand(cmd);
+ @SuppressWarnings("unchecked")
+ List<IAdaptable> nl = (List<IAdaptable>) request.getNewObject();
+ createdViews.addAll(nl);
+ }
+ if (changed || createdViews.size() > 0) {
+ postProcessRefreshSemantic(createdViews);
+ }
+ if (createdViews.size() > 1) {
+ // perform a layout of the container
+ DeferredLayoutCommand layoutCmd = new DeferredLayoutCommand(host()
+ .getEditingDomain(), createdViews, host());
+ executeCommand(new ICommandProxy(layoutCmd));
+ }
+
+ makeViewsImmutable(createdViews);
+ }
+}
diff --git a/org.eclipse.emf.refactor.comrel.diagram/src/comrel/diagram/edit/policies/SequentialUnitItemSemanticEditPolicy.java b/org.eclipse.emf.refactor.comrel.diagram/src/comrel/diagram/edit/policies/SequentialUnitItemSemanticEditPolicy.java
new file mode 100644
index 0000000..a19b6f4
--- /dev/null
+++ b/org.eclipse.emf.refactor.comrel.diagram/src/comrel/diagram/edit/policies/SequentialUnitItemSemanticEditPolicy.java
@@ -0,0 +1,263 @@
+/*
+ *
+ */
+package comrel.diagram.edit.policies;
+
+import java.util.Iterator;
+
+import org.eclipse.emf.ecore.EAnnotation;
+import org.eclipse.gef.commands.Command;
+import org.eclipse.gmf.runtime.common.core.command.ICompositeCommand;
+import org.eclipse.gmf.runtime.diagram.core.commands.DeleteCommand;
+import org.eclipse.gmf.runtime.emf.commands.core.command.CompositeTransactionalCommand;
+import org.eclipse.gmf.runtime.emf.type.core.commands.DestroyElementCommand;
+import org.eclipse.gmf.runtime.emf.type.core.requests.CreateElementRequest;
+import org.eclipse.gmf.runtime.emf.type.core.requests.DestroyElementRequest;
+import org.eclipse.gmf.runtime.notation.Edge;
+import org.eclipse.gmf.runtime.notation.Node;
+import org.eclipse.gmf.runtime.notation.View;
+
+import comrel.diagram.edit.commands.MultiInputPort8CreateCommand;
+import comrel.diagram.edit.commands.SingleInputPort7CreateCommand;
+import comrel.diagram.edit.parts.AtomicUnit5EditPart;
+import comrel.diagram.edit.parts.CartesianQueuedUnit5EditPart;
+import comrel.diagram.edit.parts.ConditionalUnit5EditPart;
+import comrel.diagram.edit.parts.MultiFeatureUnit5EditPart;
+import comrel.diagram.edit.parts.MultiFilterUnit5EditPart;
+import comrel.diagram.edit.parts.MultiInputPort8EditPart;
+import comrel.diagram.edit.parts.MultiPortMappingEditPart;
+import comrel.diagram.edit.parts.MultiSinglePortMappingEditPart;
+import comrel.diagram.edit.parts.ParallelQueuedUnit6EditPart;
+import comrel.diagram.edit.parts.SequentialUnit6EditPart;
+import comrel.diagram.edit.parts.SequentialUnitSequentialUnitHelperUnitsCompartment7EditPart;
+import comrel.diagram.edit.parts.SequentialUnitSequentialUnitRefactoringUnitsCompartment7EditPart;
+import comrel.diagram.edit.parts.SingleFeatureUnit5EditPart;
+import comrel.diagram.edit.parts.SingleFilterUnit5EditPart;
+import comrel.diagram.edit.parts.SingleInputPort7EditPart;
+import comrel.diagram.edit.parts.SinglePortMappingEditPart;
+import comrel.diagram.edit.parts.SingleQueuedUnit6EditPart;
+import comrel.diagram.part.ComrelVisualIDRegistry;
+import comrel.diagram.providers.ComrelElementTypes;
+
+/**
+ * @generated
+ */
+public class SequentialUnitItemSemanticEditPolicy extends
+ ComrelBaseItemSemanticEditPolicy {
+
+ /**
+ * @generated
+ */
+ public SequentialUnitItemSemanticEditPolicy() {
+ super(ComrelElementTypes.SequentialUnit_2005);
+ }
+
+ /**
+ * @generated
+ */
+ protected Command getCreateCommand(CreateElementRequest req) {
+ if (ComrelElementTypes.SingleInputPort_3027 == req.getElementType()) {
+ return getGEFWrapper(new SingleInputPort7CreateCommand(req));
+ }
+ if (ComrelElementTypes.MultiInputPort_3028 == req.getElementType()) {
+ return getGEFWrapper(new MultiInputPort8CreateCommand(req));
+ }
+ return super.getCreateCommand(req);
+ }
+
+ /**
+ * @generated
+ */
+ protected Command getDestroyElementCommand(DestroyElementRequest req) {
+ View view = (View) getHost().getModel();
+ CompositeTransactionalCommand cmd = new CompositeTransactionalCommand(
+ getEditingDomain(), null);
+ cmd.setTransactionNestingEnabled(false);
+ EAnnotation annotation = view.getEAnnotation("Shortcut"); //$NON-NLS-1$
+ if (annotation == null) {
+ // there are indirectly referenced children, need extra commands: false
+ addDestroyChildNodesCommand(cmd);
+ addDestroyShortcutsCommand(cmd, view);
+ // delete host element
+ cmd.add(new DestroyElementCommand(req));
+ } else {
+ cmd.add(new DeleteCommand(getEditingDomain(), view));
+ }
+ return getGEFWrapper(cmd.reduce());
+ }
+
+ /**
+ * @generated
+ */
+ private void addDestroyChildNodesCommand(ICompositeCommand cmd) {
+ View view = (View) getHost().getModel();
+ for (Iterator<?> nit = view.getChildren().iterator(); nit.hasNext();) {
+ Node node = (Node) nit.next();
+ switch (ComrelVisualIDRegistry.getVisualID(node)) {
+ case SingleInputPort7EditPart.VISUAL_ID:
+ for (Iterator<?> it = node.getTargetEdges().iterator(); it
+ .hasNext();) {
+ Edge incomingLink = (Edge) it.next();
+ if (ComrelVisualIDRegistry.getVisualID(incomingLink) == SinglePortMappingEditPart.VISUAL_ID) {
+ DestroyElementRequest r = new DestroyElementRequest(
+ incomingLink.getElement(), false);
+ cmd.add(new DestroyElementCommand(r));
+ cmd.add(new DeleteCommand(getEditingDomain(),
+ incomingLink));
+ continue;
+ }
+ if (ComrelVisualIDRegistry.getVisualID(incomingLink) == MultiSinglePortMappingEditPart.VISUAL_ID) {
+ DestroyElementRequest r = new DestroyElementRequest(
+ incomingLink.getElement(), false);
+ cmd.add(new DestroyElementCommand(r));
+ cmd.add(new DeleteCommand(getEditingDomain(),
+ incomingLink));
+ continue;
+ }
+ }
+ for (Iterator<?> it = node.getSourceEdges().iterator(); it
+ .hasNext();) {
+ Edge outgoingLink = (Edge) it.next();
+ if (ComrelVisualIDRegistry.getVisualID(outgoingLink) == SinglePortMappingEditPart.VISUAL_ID) {
+ DestroyElementRequest r = new DestroyElementRequest(
+ outgoingLink.getElement(), false);
+ cmd.add(new DestroyElementCommand(r));
+ cmd.add(new DeleteCommand(getEditingDomain(),
+ outgoingLink));
+ continue;
+ }
+ }
+ cmd.add(new DestroyElementCommand(new DestroyElementRequest(
+ getEditingDomain(), node.getElement(), false))); // directlyOwned: true
+ // don't need explicit deletion of node as parent's view deletion would clean child views as well
+ // cmd.add(new org.eclipse.gmf.runtime.diagram.core.commands.DeleteCommand(getEditingDomain(), node));
+ break;
+ case MultiInputPort8EditPart.VISUAL_ID:
+ for (Iterator<?> it = node.getTargetEdges().iterator(); it
+ .hasNext();) {
+ Edge incomingLink = (Edge) it.next();
+ if (ComrelVisualIDRegistry.getVisualID(incomingLink) == MultiPortMappingEditPart.VISUAL_ID) {
+ DestroyElementRequest r = new DestroyElementRequest(
+ incomingLink.getElement(), false);
+ cmd.add(new DestroyElementCommand(r));
+ cmd.add(new DeleteCommand(getEditingDomain(),
+ incomingLink));
+ continue;
+ }
+ }
+ for (Iterator<?> it = node.getSourceEdges().iterator(); it
+ .hasNext();) {
+ Edge outgoingLink = (Edge) it.next();
+ if (ComrelVisualIDRegistry.getVisualID(outgoingLink) == MultiPortMappingEditPart.VISUAL_ID) {
+ DestroyElementRequest r = new DestroyElementRequest(
+ outgoingLink.getElement(), false);
+ cmd.add(new DestroyElementCommand(r));
+ cmd.add(new DeleteCommand(getEditingDomain(),
+ outgoingLink));
+ continue;
+ }
+ if (ComrelVisualIDRegistry.getVisualID(outgoingLink) == MultiSinglePortMappingEditPart.VISUAL_ID) {
+ DestroyElementRequest r = new DestroyElementRequest(
+ outgoingLink.getElement(), false);
+ cmd.add(new DestroyElementCommand(r));
+ cmd.add(new DeleteCommand(getEditingDomain(),
+ outgoingLink));
+ continue;
+ }
+ }
+ cmd.add(new DestroyElementCommand(new DestroyElementRequest(
+ getEditingDomain(), node.getElement(), false))); // directlyOwned: true
+ // don't need explicit deletion of node as parent's view deletion would clean child views as well
+ // cmd.add(new org.eclipse.gmf.runtime.diagram.core.commands.DeleteCommand(getEditingDomain(), node));
+ break;
+ case SequentialUnitSequentialUnitHelperUnitsCompartment7EditPart.VISUAL_ID:
+ for (Iterator<?> cit = node.getChildren().iterator(); cit
+ .hasNext();) {
+ Node cnode = (Node) cit.next();
+ switch (ComrelVisualIDRegistry.getVisualID(cnode)) {
+ case SingleFeatureUnit5EditPart.VISUAL_ID:
+ cmd.add(new DestroyElementCommand(
+ new DestroyElementRequest(getEditingDomain(),
+ cnode.getElement(), false))); // directlyOwned: true
+ // don't need explicit deletion of cnode as parent's view deletion would clean child views as well
+ // cmd.add(new org.eclipse.gmf.runtime.diagram.core.commands.DeleteCommand(getEditingDomain(), cnode));
+ break;
+ case MultiFeatureUnit5EditPart.VISUAL_ID:
+ cmd.add(new DestroyElementCommand(
+ new DestroyElementRequest(getEditingDomain(),
+ cnode.getElement(), false))); // directlyOwned: true
+ // don't need explicit deletion of cnode as parent's view deletion would clean child views as well
+ // cmd.add(new org.eclipse.gmf.runtime.diagram.core.commands.DeleteCommand(getEditingDomain(), cnode));
+ break;
+ case SingleFilterUnit5EditPart.VISUAL_ID:
+ cmd.add(new DestroyElementCommand(
+ new DestroyElementRequest(getEditingDomain(),
+ cnode.getElement(), false))); // directlyOwned: true
+ // don't need explicit deletion of cnode as parent's view deletion would clean child views as well
+ // cmd.add(new org.eclipse.gmf.runtime.diagram.core.commands.DeleteCommand(getEditingDomain(), cnode));
+ break;
+ case MultiFilterUnit5EditPart.VISUAL_ID:
+ cmd.add(new DestroyElementCommand(
+ new DestroyElementRequest(getEditingDomain(),
+ cnode.getElement(), false))); // directlyOwned: true
+ // don't need explicit deletion of cnode as parent's view deletion would clean child views as well
+ // cmd.add(new org.eclipse.gmf.runtime.diagram.core.commands.DeleteCommand(getEditingDomain(), cnode));
+ break;
+ }
+ }
+ break;
+ case SequentialUnitSequentialUnitRefactoringUnitsCompartment7EditPart.VISUAL_ID:
+ for (Iterator<?> cit = node.getChildren().iterator(); cit
+ .hasNext();) {
+ Node cnode = (Node) cit.next();
+ switch (ComrelVisualIDRegistry.getVisualID(cnode)) {
+ case CartesianQueuedUnit5EditPart.VISUAL_ID:
+ cmd.add(new DestroyElementCommand(
+ new DestroyElementRequest(getEditingDomain(),
+ cnode.getElement(), false))); // directlyOwned: true
+ // don't need explicit deletion of cnode as parent's view deletion would clean child views as well
+ // cmd.add(new org.eclipse.gmf.runtime.diagram.core.commands.DeleteCommand(getEditingDomain(), cnode));
+ break;
+ case ParallelQueuedUnit6EditPart.VISUAL_ID:
+ cmd.add(new DestroyElementCommand(
+ new DestroyElementRequest(getEditingDomain(),
+ cnode.getElement(), false))); // directlyOwned: true
+ // don't need explicit deletion of cnode as parent's view deletion would clean child views as well
+ // cmd.add(new org.eclipse.gmf.runtime.diagram.core.commands.DeleteCommand(getEditingDomain(), cnode));
+ break;
+ case SingleQueuedUnit6EditPart.VISUAL_ID:
+ cmd.add(new DestroyElementCommand(
+ new DestroyElementRequest(getEditingDomain(),
+ cnode.getElement(), false))); // directlyOwned: true
+ // don't need explicit deletion of cnode as parent's view deletion would clean child views as well
+ // cmd.add(new org.eclipse.gmf.runtime.diagram.core.commands.DeleteCommand(getEditingDomain(), cnode));
+ break;
+ case SequentialUnit6EditPart.VISUAL_ID:
+ cmd.add(new DestroyElementCommand(
+ new DestroyElementRequest(getEditingDomain(),
+ cnode.getElement(), false))); // directlyOwned: true
+ // don't need explicit deletion of cnode as parent's view deletion would clean child views as well
+ // cmd.add(new org.eclipse.gmf.runtime.diagram.core.commands.DeleteCommand(getEditingDomain(), cnode));
+ break;
+ case ConditionalUnit5EditPart.VISUAL_ID:
+ cmd.add(new DestroyElementCommand(
+ new DestroyElementRequest(getEditingDomain(),
+ cnode.getElement(), false))); // directlyOwned: true
+ // don't need explicit deletion of cnode as parent's view deletion would clean child views as well
+ // cmd.add(new org.eclipse.gmf.runtime.diagram.core.commands.DeleteCommand(getEditingDomain(), cnode));
+ break;
+ case AtomicUnit5EditPart.VISUAL_ID:
+ cmd.add(new DestroyElementCommand(
+ new DestroyElementRequest(getEditingDomain(),
+ cnode.getElement(), false))); // directlyOwned: true
+ // don't need explicit deletion of cnode as parent's view deletion would clean child views as well
+ // cmd.add(new org.eclipse.gmf.runtime.diagram.core.commands.DeleteCommand(getEditingDomain(), cnode));
+ break;
+ }
+ }
+ break;
+ }
+ }
+ }
+
+}
diff --git a/org.eclipse.emf.refactor.comrel.diagram/src/comrel/diagram/edit/policies/SequentialUnitSequentialUnitHelperUnitsCompartment2CanonicalEditPolicy.java b/org.eclipse.emf.refactor.comrel.diagram/src/comrel/diagram/edit/policies/SequentialUnitSequentialUnitHelperUnitsCompartment2CanonicalEditPolicy.java
new file mode 100644
index 0000000..98ed5dd
--- /dev/null
+++ b/org.eclipse.emf.refactor.comrel.diagram/src/comrel/diagram/edit/policies/SequentialUnitSequentialUnitHelperUnitsCompartment2CanonicalEditPolicy.java
@@ -0,0 +1,173 @@
+/*
+ *
+ */
+package comrel.diagram.edit.policies;
+
+import java.util.ArrayList;
+import java.util.Collection;
+import java.util.Iterator;
+import java.util.LinkedList;
+import java.util.List;
+
+import org.eclipse.core.runtime.IAdaptable;
+import org.eclipse.emf.ecore.EObject;
+import org.eclipse.emf.ecore.EStructuralFeature;
+import org.eclipse.gef.commands.Command;
+import org.eclipse.gmf.runtime.diagram.core.util.ViewUtil;
+import org.eclipse.gmf.runtime.diagram.ui.commands.DeferredLayoutCommand;
+import org.eclipse.gmf.runtime.diagram.ui.commands.ICommandProxy;
+import org.eclipse.gmf.runtime.diagram.ui.commands.SetViewMutabilityCommand;
+import org.eclipse.gmf.runtime.diagram.ui.editpolicies.CanonicalEditPolicy;
+import org.eclipse.gmf.runtime.diagram.ui.requests.CreateViewRequest;
+import org.eclipse.gmf.runtime.emf.core.util.EObjectAdapter;
+import org.eclipse.gmf.runtime.notation.Node;
+import org.eclipse.gmf.runtime.notation.View;
+
+import comrel.ComrelPackage;
+import comrel.diagram.edit.parts.MultiFeatureUnit5EditPart;
+import comrel.diagram.edit.parts.MultiFilterUnit5EditPart;
+import comrel.diagram.edit.parts.SingleFeatureUnit5EditPart;
+import comrel.diagram.edit.parts.SingleFilterUnit5EditPart;
+import comrel.diagram.part.ComrelDiagramUpdater;
+import comrel.diagram.part.ComrelNodeDescriptor;
+import comrel.diagram.part.ComrelVisualIDRegistry;
+
+/**
+ * @generated
+ */
+public class SequentialUnitSequentialUnitHelperUnitsCompartment2CanonicalEditPolicy
+ extends CanonicalEditPolicy {
+
+ /**
+ * @generated
+ */
+ protected EStructuralFeature getFeatureToSynchronize() {
+ return ComrelPackage.eINSTANCE.getSequentialUnit_HelperUnits();
+ }
+
+ /**
+ * @generated
+ */
+ @SuppressWarnings("rawtypes")
+ protected List getSemanticChildrenList() {
+ View viewObject = (View) getHost().getModel();
+ LinkedList<EObject> result = new LinkedList<EObject>();
+ List<ComrelNodeDescriptor> childDescriptors = ComrelDiagramUpdater
+ .getSequentialUnitSequentialUnitHelperUnitsCompartment_7031SemanticChildren(viewObject);
+ for (ComrelNodeDescriptor d : childDescriptors) {
+ result.add(d.getModelElement());
+ }
+ return result;
+ }
+
+ /**
+ * @generated
+ */
+ protected boolean isOrphaned(Collection<EObject> semanticChildren,
+ final View view) {
+ return isMyDiagramElement(view)
+ && !semanticChildren.contains(view.getElement());
+ }
+
+ /**
+ * @generated
+ */
+ private boolean isMyDiagramElement(View view) {
+ int visualID = ComrelVisualIDRegistry.getVisualID(view);
+ switch (visualID) {
+ case SingleFeatureUnit5EditPart.VISUAL_ID:
+ case MultiFeatureUnit5EditPart.VISUAL_ID:
+ case SingleFilterUnit5EditPart.VISUAL_ID:
+ case MultiFilterUnit5EditPart.VISUAL_ID:
+ return true;
+ }
+ return false;
+ }
+
+ /**
+ * @generated
+ */
+ protected void refreshSemantic() {
+ if (resolveSemanticElement() == null) {
+ return;
+ }
+ LinkedList<IAdaptable> createdViews = new LinkedList<IAdaptable>();
+ List<ComrelNodeDescriptor> childDescriptors = ComrelDiagramUpdater
+ .getSequentialUnitSequentialUnitHelperUnitsCompartment_7031SemanticChildren((View) getHost()
+ .getModel());
+ LinkedList<View> orphaned = new LinkedList<View>();
+ // we care to check only views we recognize as ours
+ LinkedList<View> knownViewChildren = new LinkedList<View>();
+ for (View v : getViewChildren()) {
+ if (isMyDiagramElement(v)) {
+ knownViewChildren.add(v);
+ }
+ }
+ // alternative to #cleanCanonicalSemanticChildren(getViewChildren(), semanticChildren)
+ //
+ // iteration happens over list of desired semantic elements, trying to find best matching View, while original CEP
+ // iterates views, potentially losing view (size/bounds) information - i.e. if there are few views to reference same EObject, only last one
+ // to answer isOrphaned == true will be used for the domain element representation, see #cleanCanonicalSemanticChildren()
+ for (Iterator<ComrelNodeDescriptor> descriptorsIterator = childDescriptors
+ .iterator(); descriptorsIterator.hasNext();) {
+ ComrelNodeDescriptor next = descriptorsIterator.next();
+ String hint = ComrelVisualIDRegistry.getType(next.getVisualID());
+ LinkedList<View> perfectMatch = new LinkedList<View>(); // both semanticElement and hint match that of NodeDescriptor
+ for (View childView : getViewChildren()) {
+ EObject semanticElement = childView.getElement();
+ if (next.getModelElement().equals(semanticElement)) {
+ if (hint.equals(childView.getType())) {
+ perfectMatch.add(childView);
+ // actually, can stop iteration over view children here, but
+ // may want to use not the first view but last one as a 'real' match (the way original CEP does
+ // with its trick with viewToSemanticMap inside #cleanCanonicalSemanticChildren
+ }
+ }
+ }
+ if (perfectMatch.size() > 0) {
+ descriptorsIterator.remove(); // precise match found no need to create anything for the NodeDescriptor
+ // use only one view (first or last?), keep rest as orphaned for further consideration
+ knownViewChildren.remove(perfectMatch.getFirst());
+ }
+ }
+ // those left in knownViewChildren are subject to removal - they are our diagram elements we didn't find match to,
+ // or those we have potential matches to, and thus need to be recreated, preserving size/location information.
+ orphaned.addAll(knownViewChildren);
+ //
+ ArrayList<CreateViewRequest.ViewDescriptor> viewDescriptors = new ArrayList<CreateViewRequest.ViewDescriptor>(
+ childDescriptors.size());
+ for (ComrelNodeDescriptor next : childDescriptors) {
+ String hint = ComrelVisualIDRegistry.getType(next.getVisualID());
+ IAdaptable elementAdapter = new CanonicalElementAdapter(
+ next.getModelElement(), hint);
+ CreateViewRequest.ViewDescriptor descriptor = new CreateViewRequest.ViewDescriptor(
+ elementAdapter, Node.class, hint, ViewUtil.APPEND, false,
+ host().getDiagramPreferencesHint());
+ viewDescriptors.add(descriptor);
+ }
+
+ boolean changed = deleteViews(orphaned.iterator());
+ //
+ CreateViewRequest request = getCreateViewRequest(viewDescriptors);
+ Command cmd = getCreateViewCommand(request);
+ if (cmd != null && cmd.canExecute()) {
+ SetViewMutabilityCommand.makeMutable(
+ new EObjectAdapter(host().getNotationView())).execute();
+ executeCommand(cmd);
+ @SuppressWarnings("unchecked")
+ List<IAdaptable> nl = (List<IAdaptable>) request.getNewObject();
+ createdViews.addAll(nl);
+ }
+ if (changed || createdViews.size() > 0) {
+ postProcessRefreshSemantic(createdViews);
+ }
+ if (createdViews.size() > 1) {
+ // perform a layout of the container
+ DeferredLayoutCommand layoutCmd = new DeferredLayoutCommand(host()
+ .getEditingDomain(), createdViews, host());
+ executeCommand(new ICommandProxy(layoutCmd));
+ }
+
+ makeViewsImmutable(createdViews);
+ }
+}
diff --git a/org.eclipse.emf.refactor.comrel.diagram/src/comrel/diagram/edit/policies/SequentialUnitSequentialUnitHelperUnitsCompartment2ItemSemanticEditPolicy.java b/org.eclipse.emf.refactor.comrel.diagram/src/comrel/diagram/edit/policies/SequentialUnitSequentialUnitHelperUnitsCompartment2ItemSemanticEditPolicy.java
new file mode 100644
index 0000000..e34b87b
--- /dev/null
+++ b/org.eclipse.emf.refactor.comrel.diagram/src/comrel/diagram/edit/policies/SequentialUnitSequentialUnitHelperUnitsCompartment2ItemSemanticEditPolicy.java
@@ -0,0 +1,47 @@
+/*
+ *
+ */
+package comrel.diagram.edit.policies;
+
+import org.eclipse.gef.commands.Command;
+import org.eclipse.gmf.runtime.emf.type.core.requests.CreateElementRequest;
+
+import comrel.diagram.edit.commands.MultiFeatureUnit5CreateCommand;
+import comrel.diagram.edit.commands.MultiFilterUnit5CreateCommand;
+import comrel.diagram.edit.commands.SingleFeatureUnit5CreateCommand;
+import comrel.diagram.edit.commands.SingleFilterUnit5CreateCommand;
+import comrel.diagram.providers.ComrelElementTypes;
+
+/**
+ * @generated
+ */
+public class SequentialUnitSequentialUnitHelperUnitsCompartment2ItemSemanticEditPolicy
+ extends ComrelBaseItemSemanticEditPolicy {
+
+ /**
+ * @generated
+ */
+ public SequentialUnitSequentialUnitHelperUnitsCompartment2ItemSemanticEditPolicy() {
+ super(ComrelElementTypes.SequentialUnit_3044);
+ }
+
+ /**
+ * @generated
+ */
+ protected Command getCreateCommand(CreateElementRequest req) {
+ if (ComrelElementTypes.SingleFeatureUnit_3061 == req.getElementType()) {
+ return getGEFWrapper(new SingleFeatureUnit5CreateCommand(req));
+ }
+ if (ComrelElementTypes.MultiFeatureUnit_3062 == req.getElementType()) {
+ return getGEFWrapper(new MultiFeatureUnit5CreateCommand(req));
+ }
+ if (ComrelElementTypes.SingleFilterUnit_3063 == req.getElementType()) {
+ return getGEFWrapper(new SingleFilterUnit5CreateCommand(req));
+ }
+ if (ComrelElementTypes.MultiFilterUnit_3064 == req.getElementType()) {
+ return getGEFWrapper(new MultiFilterUnit5CreateCommand(req));
+ }
+ return super.getCreateCommand(req);
+ }
+
+}
diff --git a/org.eclipse.emf.refactor.comrel.diagram/src/comrel/diagram/edit/policies/SequentialUnitSequentialUnitHelperUnitsCompartment3CanonicalEditPolicy.java b/org.eclipse.emf.refactor.comrel.diagram/src/comrel/diagram/edit/policies/SequentialUnitSequentialUnitHelperUnitsCompartment3CanonicalEditPolicy.java
new file mode 100644
index 0000000..f160cb0
--- /dev/null
+++ b/org.eclipse.emf.refactor.comrel.diagram/src/comrel/diagram/edit/policies/SequentialUnitSequentialUnitHelperUnitsCompartment3CanonicalEditPolicy.java
@@ -0,0 +1,173 @@
+/*
+ *
+ */
+package comrel.diagram.edit.policies;
+
+import java.util.ArrayList;
+import java.util.Collection;
+import java.util.Iterator;
+import java.util.LinkedList;
+import java.util.List;
+
+import org.eclipse.core.runtime.IAdaptable;
+import org.eclipse.emf.ecore.EObject;
+import org.eclipse.emf.ecore.EStructuralFeature;
+import org.eclipse.gef.commands.Command;
+import org.eclipse.gmf.runtime.diagram.core.util.ViewUtil;
+import org.eclipse.gmf.runtime.diagram.ui.commands.DeferredLayoutCommand;
+import org.eclipse.gmf.runtime.diagram.ui.commands.ICommandProxy;
+import org.eclipse.gmf.runtime.diagram.ui.commands.SetViewMutabilityCommand;
+import org.eclipse.gmf.runtime.diagram.ui.editpolicies.CanonicalEditPolicy;
+import org.eclipse.gmf.runtime.diagram.ui.requests.CreateViewRequest;
+import org.eclipse.gmf.runtime.emf.core.util.EObjectAdapter;
+import org.eclipse.gmf.runtime.notation.Node;
+import org.eclipse.gmf.runtime.notation.View;
+
+import comrel.ComrelPackage;
+import comrel.diagram.edit.parts.MultiFeatureUnit5EditPart;
+import comrel.diagram.edit.parts.MultiFilterUnit5EditPart;
+import comrel.diagram.edit.parts.SingleFeatureUnit5EditPart;
+import comrel.diagram.edit.parts.SingleFilterUnit5EditPart;
+import comrel.diagram.part.ComrelDiagramUpdater;
+import comrel.diagram.part.ComrelNodeDescriptor;
+import comrel.diagram.part.ComrelVisualIDRegistry;
+
+/**
+ * @generated
+ */
+public class SequentialUnitSequentialUnitHelperUnitsCompartment3CanonicalEditPolicy
+ extends CanonicalEditPolicy {
+
+ /**
+ * @generated
+ */
+ protected EStructuralFeature getFeatureToSynchronize() {
+ return ComrelPackage.eINSTANCE.getSequentialUnit_HelperUnits();
+ }
+
+ /**
+ * @generated
+ */
+ @SuppressWarnings("rawtypes")
+ protected List getSemanticChildrenList() {
+ View viewObject = (View) getHost().getModel();
+ LinkedList<EObject> result = new LinkedList<EObject>();
+ List<ComrelNodeDescriptor> childDescriptors = ComrelDiagramUpdater
+ .getSequentialUnitSequentialUnitHelperUnitsCompartment_7047SemanticChildren(viewObject);
+ for (ComrelNodeDescriptor d : childDescriptors) {
+ result.add(d.getModelElement());
+ }
+ return result;
+ }
+
+ /**
+ * @generated
+ */
+ protected boolean isOrphaned(Collection<EObject> semanticChildren,
+ final View view) {
+ return isMyDiagramElement(view)
+ && !semanticChildren.contains(view.getElement());
+ }
+
+ /**
+ * @generated
+ */
+ private boolean isMyDiagramElement(View view) {
+ int visualID = ComrelVisualIDRegistry.getVisualID(view);
+ switch (visualID) {
+ case SingleFeatureUnit5EditPart.VISUAL_ID:
+ case MultiFeatureUnit5EditPart.VISUAL_ID:
+ case SingleFilterUnit5EditPart.VISUAL_ID:
+ case MultiFilterUnit5EditPart.VISUAL_ID:
+ return true;
+ }
+ return false;
+ }
+
+ /**
+ * @generated
+ */
+ protected void refreshSemantic() {
+ if (resolveSemanticElement() == null) {
+ return;
+ }
+ LinkedList<IAdaptable> createdViews = new LinkedList<IAdaptable>();
+ List<ComrelNodeDescriptor> childDescriptors = ComrelDiagramUpdater
+ .getSequentialUnitSequentialUnitHelperUnitsCompartment_7047SemanticChildren((View) getHost()
+ .getModel());
+ LinkedList<View> orphaned = new LinkedList<View>();
+ // we care to check only views we recognize as ours
+ LinkedList<View> knownViewChildren = new LinkedList<View>();
+ for (View v : getViewChildren()) {
+ if (isMyDiagramElement(v)) {
+ knownViewChildren.add(v);
+ }
+ }
+ // alternative to #cleanCanonicalSemanticChildren(getViewChildren(), semanticChildren)
+ //
+ // iteration happens over list of desired semantic elements, trying to find best matching View, while original CEP
+ // iterates views, potentially losing view (size/bounds) information - i.e. if there are few views to reference same EObject, only last one
+ // to answer isOrphaned == true will be used for the domain element representation, see #cleanCanonicalSemanticChildren()
+ for (Iterator<ComrelNodeDescriptor> descriptorsIterator = childDescriptors
+ .iterator(); descriptorsIterator.hasNext();) {
+ ComrelNodeDescriptor next = descriptorsIterator.next();
+ String hint = ComrelVisualIDRegistry.getType(next.getVisualID());
+ LinkedList<View> perfectMatch = new LinkedList<View>(); // both semanticElement and hint match that of NodeDescriptor
+ for (View childView : getViewChildren()) {
+ EObject semanticElement = childView.getElement();
+ if (next.getModelElement().equals(semanticElement)) {
+ if (hint.equals(childView.getType())) {
+ perfectMatch.add(childView);
+ // actually, can stop iteration over view children here, but
+ // may want to use not the first view but last one as a 'real' match (the way original CEP does
+ // with its trick with viewToSemanticMap inside #cleanCanonicalSemanticChildren
+ }
+ }
+ }
+ if (perfectMatch.size() > 0) {
+ descriptorsIterator.remove(); // precise match found no need to create anything for the NodeDescriptor
+ // use only one view (first or last?), keep rest as orphaned for further consideration
+ knownViewChildren.remove(perfectMatch.getFirst());
+ }
+ }
+ // those left in knownViewChildren are subject to removal - they are our diagram elements we didn't find match to,
+ // or those we have potential matches to, and thus need to be recreated, preserving size/location information.
+ orphaned.addAll(knownViewChildren);
+ //
+ ArrayList<CreateViewRequest.ViewDescriptor> viewDescriptors = new ArrayList<CreateViewRequest.ViewDescriptor>(
+ childDescriptors.size());
+ for (ComrelNodeDescriptor next : childDescriptors) {
+ String hint = ComrelVisualIDRegistry.getType(next.getVisualID());
+ IAdaptable elementAdapter = new CanonicalElementAdapter(
+ next.getModelElement(), hint);
+ CreateViewRequest.ViewDescriptor descriptor = new CreateViewRequest.ViewDescriptor(
+ elementAdapter, Node.class, hint, ViewUtil.APPEND, false,
+ host().getDiagramPreferencesHint());
+ viewDescriptors.add(descriptor);
+ }
+
+ boolean changed = deleteViews(orphaned.iterator());
+ //
+ CreateViewRequest request = getCreateViewRequest(viewDescriptors);
+ Command cmd = getCreateViewCommand(request);
+ if (cmd != null && cmd.canExecute()) {
+ SetViewMutabilityCommand.makeMutable(
+ new EObjectAdapter(host().getNotationView())).execute();
+ executeCommand(cmd);
+ @SuppressWarnings("unchecked")
+ List<IAdaptable> nl = (List<IAdaptable>) request.getNewObject();
+ createdViews.addAll(nl);
+ }
+ if (changed || createdViews.size() > 0) {
+ postProcessRefreshSemantic(createdViews);
+ }
+ if (createdViews.size() > 1) {
+ // perform a layout of the container
+ DeferredLayoutCommand layoutCmd = new DeferredLayoutCommand(host()
+ .getEditingDomain(), createdViews, host());
+ executeCommand(new ICommandProxy(layoutCmd));
+ }
+
+ makeViewsImmutable(createdViews);
+ }
+}
diff --git a/org.eclipse.emf.refactor.comrel.diagram/src/comrel/diagram/edit/policies/SequentialUnitSequentialUnitHelperUnitsCompartment3ItemSemanticEditPolicy.java b/org.eclipse.emf.refactor.comrel.diagram/src/comrel/diagram/edit/policies/SequentialUnitSequentialUnitHelperUnitsCompartment3ItemSemanticEditPolicy.java
new file mode 100644
index 0000000..5dc2331
--- /dev/null
+++ b/org.eclipse.emf.refactor.comrel.diagram/src/comrel/diagram/edit/policies/SequentialUnitSequentialUnitHelperUnitsCompartment3ItemSemanticEditPolicy.java
@@ -0,0 +1,47 @@
+/*
+ *
+ */
+package comrel.diagram.edit.policies;
+
+import org.eclipse.gef.commands.Command;
+import org.eclipse.gmf.runtime.emf.type.core.requests.CreateElementRequest;
+
+import comrel.diagram.edit.commands.MultiFeatureUnit5CreateCommand;
+import comrel.diagram.edit.commands.MultiFilterUnit5CreateCommand;
+import comrel.diagram.edit.commands.SingleFeatureUnit5CreateCommand;
+import comrel.diagram.edit.commands.SingleFilterUnit5CreateCommand;
+import comrel.diagram.providers.ComrelElementTypes;
+
+/**
+ * @generated
+ */
+public class SequentialUnitSequentialUnitHelperUnitsCompartment3ItemSemanticEditPolicy
+ extends ComrelBaseItemSemanticEditPolicy {
+
+ /**
+ * @generated
+ */
+ public SequentialUnitSequentialUnitHelperUnitsCompartment3ItemSemanticEditPolicy() {
+ super(ComrelElementTypes.SequentialUnit_3060);
+ }
+
+ /**
+ * @generated
+ */
+ protected Command getCreateCommand(CreateElementRequest req) {
+ if (ComrelElementTypes.SingleFeatureUnit_3061 == req.getElementType()) {
+ return getGEFWrapper(new SingleFeatureUnit5CreateCommand(req));
+ }
+ if (ComrelElementTypes.MultiFeatureUnit_3062 == req.getElementType()) {
+ return getGEFWrapper(new MultiFeatureUnit5CreateCommand(req));
+ }
+ if (ComrelElementTypes.SingleFilterUnit_3063 == req.getElementType()) {
+ return getGEFWrapper(new SingleFilterUnit5CreateCommand(req));
+ }
+ if (ComrelElementTypes.MultiFilterUnit_3064 == req.getElementType()) {
+ return getGEFWrapper(new MultiFilterUnit5CreateCommand(req));
+ }
+ return super.getCreateCommand(req);
+ }
+
+}
diff --git a/org.eclipse.emf.refactor.comrel.diagram/src/comrel/diagram/edit/policies/SequentialUnitSequentialUnitHelperUnitsCompartment4CanonicalEditPolicy.java b/org.eclipse.emf.refactor.comrel.diagram/src/comrel/diagram/edit/policies/SequentialUnitSequentialUnitHelperUnitsCompartment4CanonicalEditPolicy.java
new file mode 100644
index 0000000..f2e74e1
--- /dev/null
+++ b/org.eclipse.emf.refactor.comrel.diagram/src/comrel/diagram/edit/policies/SequentialUnitSequentialUnitHelperUnitsCompartment4CanonicalEditPolicy.java
@@ -0,0 +1,173 @@
+/*
+ *
+ */
+package comrel.diagram.edit.policies;
+
+import java.util.ArrayList;
+import java.util.Collection;
+import java.util.Iterator;
+import java.util.LinkedList;
+import java.util.List;
+
+import org.eclipse.core.runtime.IAdaptable;
+import org.eclipse.emf.ecore.EObject;
+import org.eclipse.emf.ecore.EStructuralFeature;
+import org.eclipse.gef.commands.Command;
+import org.eclipse.gmf.runtime.diagram.core.util.ViewUtil;
+import org.eclipse.gmf.runtime.diagram.ui.commands.DeferredLayoutCommand;
+import org.eclipse.gmf.runtime.diagram.ui.commands.ICommandProxy;
+import org.eclipse.gmf.runtime.diagram.ui.commands.SetViewMutabilityCommand;
+import org.eclipse.gmf.runtime.diagram.ui.editpolicies.CanonicalEditPolicy;
+import org.eclipse.gmf.runtime.diagram.ui.requests.CreateViewRequest;
+import org.eclipse.gmf.runtime.emf.core.util.EObjectAdapter;
+import org.eclipse.gmf.runtime.notation.Node;
+import org.eclipse.gmf.runtime.notation.View;
+
+import comrel.ComrelPackage;
+import comrel.diagram.edit.parts.MultiFeatureUnit5EditPart;
+import comrel.diagram.edit.parts.MultiFilterUnit5EditPart;
+import comrel.diagram.edit.parts.SingleFeatureUnit5EditPart;
+import comrel.diagram.edit.parts.SingleFilterUnit5EditPart;
+import comrel.diagram.part.ComrelDiagramUpdater;
+import comrel.diagram.part.ComrelNodeDescriptor;
+import comrel.diagram.part.ComrelVisualIDRegistry;
+
+/**
+ * @generated
+ */
+public class SequentialUnitSequentialUnitHelperUnitsCompartment4CanonicalEditPolicy
+ extends CanonicalEditPolicy {
+
+ /**
+ * @generated
+ */
+ protected EStructuralFeature getFeatureToSynchronize() {
+ return ComrelPackage.eINSTANCE.getSequentialUnit_HelperUnits();
+ }
+
+ /**
+ * @generated
+ */
+ @SuppressWarnings("rawtypes")
+ protected List getSemanticChildrenList() {
+ View viewObject = (View) getHost().getModel();
+ LinkedList<EObject> result = new LinkedList<EObject>();
+ List<ComrelNodeDescriptor> childDescriptors = ComrelDiagramUpdater
+ .getSequentialUnitSequentialUnitHelperUnitsCompartment_7057SemanticChildren(viewObject);
+ for (ComrelNodeDescriptor d : childDescriptors) {
+ result.add(d.getModelElement());
+ }
+ return result;
+ }
+
+ /**
+ * @generated
+ */
+ protected boolean isOrphaned(Collection<EObject> semanticChildren,
+ final View view) {
+ return isMyDiagramElement(view)
+ && !semanticChildren.contains(view.getElement());
+ }
+
+ /**
+ * @generated
+ */
+ private boolean isMyDiagramElement(View view) {
+ int visualID = ComrelVisualIDRegistry.getVisualID(view);
+ switch (visualID) {
+ case SingleFeatureUnit5EditPart.VISUAL_ID:
+ case MultiFeatureUnit5EditPart.VISUAL_ID:
+ case SingleFilterUnit5EditPart.VISUAL_ID:
+ case MultiFilterUnit5EditPart.VISUAL_ID:
+ return true;
+ }
+ return false;
+ }
+
+ /**
+ * @generated
+ */
+ protected void refreshSemantic() {
+ if (resolveSemanticElement() == null) {
+ return;
+ }
+ LinkedList<IAdaptable> createdViews = new LinkedList<IAdaptable>();
+ List<ComrelNodeDescriptor> childDescriptors = ComrelDiagramUpdater
+ .getSequentialUnitSequentialUnitHelperUnitsCompartment_7057SemanticChildren((View) getHost()
+ .getModel());
+ LinkedList<View> orphaned = new LinkedList<View>();
+ // we care to check only views we recognize as ours
+ LinkedList<View> knownViewChildren = new LinkedList<View>();
+ for (View v : getViewChildren()) {
+ if (isMyDiagramElement(v)) {
+ knownViewChildren.add(v);
+ }
+ }
+ // alternative to #cleanCanonicalSemanticChildren(getViewChildren(), semanticChildren)
+ //
+ // iteration happens over list of desired semantic elements, trying to find best matching View, while original CEP
+ // iterates views, potentially losing view (size/bounds) information - i.e. if there are few views to reference same EObject, only last one
+ // to answer isOrphaned == true will be used for the domain element representation, see #cleanCanonicalSemanticChildren()
+ for (Iterator<ComrelNodeDescriptor> descriptorsIterator = childDescriptors
+ .iterator(); descriptorsIterator.hasNext();) {
+ ComrelNodeDescriptor next = descriptorsIterator.next();
+ String hint = ComrelVisualIDRegistry.getType(next.getVisualID());
+ LinkedList<View> perfectMatch = new LinkedList<View>(); // both semanticElement and hint match that of NodeDescriptor
+ for (View childView : getViewChildren()) {
+ EObject semanticElement = childView.getElement();
+ if (next.getModelElement().equals(semanticElement)) {
+ if (hint.equals(childView.getType())) {
+ perfectMatch.add(childView);
+ // actually, can stop iteration over view children here, but
+ // may want to use not the first view but last one as a 'real' match (the way original CEP does
+ // with its trick with viewToSemanticMap inside #cleanCanonicalSemanticChildren
+ }
+ }
+ }
+ if (perfectMatch.size() > 0) {
+ descriptorsIterator.remove(); // precise match found no need to create anything for the NodeDescriptor
+ // use only one view (first or last?), keep rest as orphaned for further consideration
+ knownViewChildren.remove(perfectMatch.getFirst());
+ }
+ }
+ // those left in knownViewChildren are subject to removal - they are our diagram elements we didn't find match to,
+ // or those we have potential matches to, and thus need to be recreated, preserving size/location information.
+ orphaned.addAll(knownViewChildren);
+ //
+ ArrayList<CreateViewRequest.ViewDescriptor> viewDescriptors = new ArrayList<CreateViewRequest.ViewDescriptor>(
+ childDescriptors.size());
+ for (ComrelNodeDescriptor next : childDescriptors) {
+ String hint = ComrelVisualIDRegistry.getType(next.getVisualID());
+ IAdaptable elementAdapter = new CanonicalElementAdapter(
+ next.getModelElement(), hint);
+ CreateViewRequest.ViewDescriptor descriptor = new CreateViewRequest.ViewDescriptor(
+ elementAdapter, Node.class, hint, ViewUtil.APPEND, false,
+ host().getDiagramPreferencesHint());
+ viewDescriptors.add(descriptor);
+ }
+
+ boolean changed = deleteViews(orphaned.iterator());
+ //
+ CreateViewRequest request = getCreateViewRequest(viewDescriptors);
+ Command cmd = getCreateViewCommand(request);
+ if (cmd != null && cmd.canExecute()) {
+ SetViewMutabilityCommand.makeMutable(
+ new EObjectAdapter(host().getNotationView())).execute();
+ executeCommand(cmd);
+ @SuppressWarnings("unchecked")
+ List<IAdaptable> nl = (List<IAdaptable>) request.getNewObject();
+ createdViews.addAll(nl);
+ }
+ if (changed || createdViews.size() > 0) {
+ postProcessRefreshSemantic(createdViews);
+ }
+ if (createdViews.size() > 1) {
+ // perform a layout of the container
+ DeferredLayoutCommand layoutCmd = new DeferredLayoutCommand(host()
+ .getEditingDomain(), createdViews, host());
+ executeCommand(new ICommandProxy(layoutCmd));
+ }
+
+ makeViewsImmutable(createdViews);
+ }
+}
diff --git a/org.eclipse.emf.refactor.comrel.diagram/src/comrel/diagram/edit/policies/SequentialUnitSequentialUnitHelperUnitsCompartment4ItemSemanticEditPolicy.java b/org.eclipse.emf.refactor.comrel.diagram/src/comrel/diagram/edit/policies/SequentialUnitSequentialUnitHelperUnitsCompartment4ItemSemanticEditPolicy.java
new file mode 100644
index 0000000..b1a98dc
--- /dev/null
+++ b/org.eclipse.emf.refactor.comrel.diagram/src/comrel/diagram/edit/policies/SequentialUnitSequentialUnitHelperUnitsCompartment4ItemSemanticEditPolicy.java
@@ -0,0 +1,47 @@
+/*
+ *
+ */
+package comrel.diagram.edit.policies;
+
+import org.eclipse.gef.commands.Command;
+import org.eclipse.gmf.runtime.emf.type.core.requests.CreateElementRequest;
+
+import comrel.diagram.edit.commands.MultiFeatureUnit5CreateCommand;
+import comrel.diagram.edit.commands.MultiFilterUnit5CreateCommand;
+import comrel.diagram.edit.commands.SingleFeatureUnit5CreateCommand;
+import comrel.diagram.edit.commands.SingleFilterUnit5CreateCommand;
+import comrel.diagram.providers.ComrelElementTypes;
+
+/**
+ * @generated
+ */
+public class SequentialUnitSequentialUnitHelperUnitsCompartment4ItemSemanticEditPolicy
+ extends ComrelBaseItemSemanticEditPolicy {
+
+ /**
+ * @generated
+ */
+ public SequentialUnitSequentialUnitHelperUnitsCompartment4ItemSemanticEditPolicy() {
+ super(ComrelElementTypes.SequentialUnit_3069);
+ }
+
+ /**
+ * @generated
+ */
+ protected Command getCreateCommand(CreateElementRequest req) {
+ if (ComrelElementTypes.SingleFeatureUnit_3061 == req.getElementType()) {
+ return getGEFWrapper(new SingleFeatureUnit5CreateCommand(req));
+ }
+ if (ComrelElementTypes.MultiFeatureUnit_3062 == req.getElementType()) {
+ return getGEFWrapper(new MultiFeatureUnit5CreateCommand(req));
+ }
+ if (ComrelElementTypes.SingleFilterUnit_3063 == req.getElementType()) {
+ return getGEFWrapper(new SingleFilterUnit5CreateCommand(req));
+ }
+ if (ComrelElementTypes.MultiFilterUnit_3064 == req.getElementType()) {
+ return getGEFWrapper(new MultiFilterUnit5CreateCommand(req));
+ }
+ return super.getCreateCommand(req);
+ }
+
+}
diff --git a/org.eclipse.emf.refactor.comrel.diagram/src/comrel/diagram/edit/policies/SequentialUnitSequentialUnitHelperUnitsCompartment5CanonicalEditPolicy.java b/org.eclipse.emf.refactor.comrel.diagram/src/comrel/diagram/edit/policies/SequentialUnitSequentialUnitHelperUnitsCompartment5CanonicalEditPolicy.java
new file mode 100644
index 0000000..8137521
--- /dev/null
+++ b/org.eclipse.emf.refactor.comrel.diagram/src/comrel/diagram/edit/policies/SequentialUnitSequentialUnitHelperUnitsCompartment5CanonicalEditPolicy.java
@@ -0,0 +1,173 @@
+/*
+ *
+ */
+package comrel.diagram.edit.policies;
+
+import java.util.ArrayList;
+import java.util.Collection;
+import java.util.Iterator;
+import java.util.LinkedList;
+import java.util.List;
+
+import org.eclipse.core.runtime.IAdaptable;
+import org.eclipse.emf.ecore.EObject;
+import org.eclipse.emf.ecore.EStructuralFeature;
+import org.eclipse.gef.commands.Command;
+import org.eclipse.gmf.runtime.diagram.core.util.ViewUtil;
+import org.eclipse.gmf.runtime.diagram.ui.commands.DeferredLayoutCommand;
+import org.eclipse.gmf.runtime.diagram.ui.commands.ICommandProxy;
+import org.eclipse.gmf.runtime.diagram.ui.commands.SetViewMutabilityCommand;
+import org.eclipse.gmf.runtime.diagram.ui.editpolicies.CanonicalEditPolicy;
+import org.eclipse.gmf.runtime.diagram.ui.requests.CreateViewRequest;
+import org.eclipse.gmf.runtime.emf.core.util.EObjectAdapter;
+import org.eclipse.gmf.runtime.notation.Node;
+import org.eclipse.gmf.runtime.notation.View;
+
+import comrel.ComrelPackage;
+import comrel.diagram.edit.parts.MultiFeatureUnit5EditPart;
+import comrel.diagram.edit.parts.MultiFilterUnit5EditPart;
+import comrel.diagram.edit.parts.SingleFeatureUnit5EditPart;
+import comrel.diagram.edit.parts.SingleFilterUnit5EditPart;
+import comrel.diagram.part.ComrelDiagramUpdater;
+import comrel.diagram.part.ComrelNodeDescriptor;
+import comrel.diagram.part.ComrelVisualIDRegistry;
+
+/**
+ * @generated
+ */
+public class SequentialUnitSequentialUnitHelperUnitsCompartment5CanonicalEditPolicy
+ extends CanonicalEditPolicy {
+
+ /**
+ * @generated
+ */
+ protected EStructuralFeature getFeatureToSynchronize() {
+ return ComrelPackage.eINSTANCE.getSequentialUnit_HelperUnits();
+ }
+
+ /**
+ * @generated
+ */
+ @SuppressWarnings("rawtypes")
+ protected List getSemanticChildrenList() {
+ View viewObject = (View) getHost().getModel();
+ LinkedList<EObject> result = new LinkedList<EObject>();
+ List<ComrelNodeDescriptor> childDescriptors = ComrelDiagramUpdater
+ .getSequentialUnitSequentialUnitHelperUnitsCompartment_7059SemanticChildren(viewObject);
+ for (ComrelNodeDescriptor d : childDescriptors) {
+ result.add(d.getModelElement());
+ }
+ return result;
+ }
+
+ /**
+ * @generated
+ */
+ protected boolean isOrphaned(Collection<EObject> semanticChildren,
+ final View view) {
+ return isMyDiagramElement(view)
+ && !semanticChildren.contains(view.getElement());
+ }
+
+ /**
+ * @generated
+ */
+ private boolean isMyDiagramElement(View view) {
+ int visualID = ComrelVisualIDRegistry.getVisualID(view);
+ switch (visualID) {
+ case SingleFeatureUnit5EditPart.VISUAL_ID:
+ case MultiFeatureUnit5EditPart.VISUAL_ID:
+ case SingleFilterUnit5EditPart.VISUAL_ID:
+ case MultiFilterUnit5EditPart.VISUAL_ID:
+ return true;
+ }
+ return false;
+ }
+
+ /**
+ * @generated
+ */
+ protected void refreshSemantic() {
+ if (resolveSemanticElement() == null) {
+ return;
+ }
+ LinkedList<IAdaptable> createdViews = new LinkedList<IAdaptable>();
+ List<ComrelNodeDescriptor> childDescriptors = ComrelDiagramUpdater
+ .getSequentialUnitSequentialUnitHelperUnitsCompartment_7059SemanticChildren((View) getHost()
+ .getModel());
+ LinkedList<View> orphaned = new LinkedList<View>();
+ // we care to check only views we recognize as ours
+ LinkedList<View> knownViewChildren = new LinkedList<View>();
+ for (View v : getViewChildren()) {
+ if (isMyDiagramElement(v)) {
+ knownViewChildren.add(v);
+ }
+ }
+ // alternative to #cleanCanonicalSemanticChildren(getViewChildren(), semanticChildren)
+ //
+ // iteration happens over list of desired semantic elements, trying to find best matching View, while original CEP
+ // iterates views, potentially losing view (size/bounds) information - i.e. if there are few views to reference same EObject, only last one
+ // to answer isOrphaned == true will be used for the domain element representation, see #cleanCanonicalSemanticChildren()
+ for (Iterator<ComrelNodeDescriptor> descriptorsIterator = childDescriptors
+ .iterator(); descriptorsIterator.hasNext();) {
+ ComrelNodeDescriptor next = descriptorsIterator.next();
+ String hint = ComrelVisualIDRegistry.getType(next.getVisualID());
+ LinkedList<View> perfectMatch = new LinkedList<View>(); // both semanticElement and hint match that of NodeDescriptor
+ for (View childView : getViewChildren()) {
+ EObject semanticElement = childView.getElement();
+ if (next.getModelElement().equals(semanticElement)) {
+ if (hint.equals(childView.getType())) {
+ perfectMatch.add(childView);
+ // actually, can stop iteration over view children here, but
+ // may want to use not the first view but last one as a 'real' match (the way original CEP does
+ // with its trick with viewToSemanticMap inside #cleanCanonicalSemanticChildren
+ }
+ }
+ }
+ if (perfectMatch.size() > 0) {
+ descriptorsIterator.remove(); // precise match found no need to create anything for the NodeDescriptor
+ // use only one view (first or last?), keep rest as orphaned for further consideration
+ knownViewChildren.remove(perfectMatch.getFirst());
+ }
+ }
+ // those left in knownViewChildren are subject to removal - they are our diagram elements we didn't find match to,
+ // or those we have potential matches to, and thus need to be recreated, preserving size/location information.
+ orphaned.addAll(knownViewChildren);
+ //
+ ArrayList<CreateViewRequest.ViewDescriptor> viewDescriptors = new ArrayList<CreateViewRequest.ViewDescriptor>(
+ childDescriptors.size());
+ for (ComrelNodeDescriptor next : childDescriptors) {
+ String hint = ComrelVisualIDRegistry.getType(next.getVisualID());
+ IAdaptable elementAdapter = new CanonicalElementAdapter(
+ next.getModelElement(), hint);
+ CreateViewRequest.ViewDescriptor descriptor = new CreateViewRequest.ViewDescriptor(
+ elementAdapter, Node.class, hint, ViewUtil.APPEND, false,
+ host().getDiagramPreferencesHint());
+ viewDescriptors.add(descriptor);
+ }
+
+ boolean changed = deleteViews(orphaned.iterator());
+ //
+ CreateViewRequest request = getCreateViewRequest(viewDescriptors);
+ Command cmd = getCreateViewCommand(request);
+ if (cmd != null && cmd.canExecute()) {
+ SetViewMutabilityCommand.makeMutable(
+ new EObjectAdapter(host().getNotationView())).execute();
+ executeCommand(cmd);
+ @SuppressWarnings("unchecked")
+ List<IAdaptable> nl = (List<IAdaptable>) request.getNewObject();
+ createdViews.addAll(nl);
+ }
+ if (changed || createdViews.size() > 0) {
+ postProcessRefreshSemantic(createdViews);
+ }
+ if (createdViews.size() > 1) {
+ // perform a layout of the container
+ DeferredLayoutCommand layoutCmd = new DeferredLayoutCommand(host()
+ .getEditingDomain(), createdViews, host());
+ executeCommand(new ICommandProxy(layoutCmd));
+ }
+
+ makeViewsImmutable(createdViews);
+ }
+}
diff --git a/org.eclipse.emf.refactor.comrel.diagram/src/comrel/diagram/edit/policies/SequentialUnitSequentialUnitHelperUnitsCompartment5ItemSemanticEditPolicy.java b/org.eclipse.emf.refactor.comrel.diagram/src/comrel/diagram/edit/policies/SequentialUnitSequentialUnitHelperUnitsCompartment5ItemSemanticEditPolicy.java
new file mode 100644
index 0000000..646ce65
--- /dev/null
+++ b/org.eclipse.emf.refactor.comrel.diagram/src/comrel/diagram/edit/policies/SequentialUnitSequentialUnitHelperUnitsCompartment5ItemSemanticEditPolicy.java
@@ -0,0 +1,47 @@
+/*
+ *
+ */
+package comrel.diagram.edit.policies;
+
+import org.eclipse.gef.commands.Command;
+import org.eclipse.gmf.runtime.emf.type.core.requests.CreateElementRequest;
+
+import comrel.diagram.edit.commands.MultiFeatureUnit5CreateCommand;
+import comrel.diagram.edit.commands.MultiFilterUnit5CreateCommand;
+import comrel.diagram.edit.commands.SingleFeatureUnit5CreateCommand;
+import comrel.diagram.edit.commands.SingleFilterUnit5CreateCommand;
+import comrel.diagram.providers.ComrelElementTypes;
+
+/**
+ * @generated
+ */
+public class SequentialUnitSequentialUnitHelperUnitsCompartment5ItemSemanticEditPolicy
+ extends ComrelBaseItemSemanticEditPolicy {
+
+ /**
+ * @generated
+ */
+ public SequentialUnitSequentialUnitHelperUnitsCompartment5ItemSemanticEditPolicy() {
+ super(ComrelElementTypes.SequentialUnit_3070);
+ }
+
+ /**
+ * @generated
+ */
+ protected Command getCreateCommand(CreateElementRequest req) {
+ if (ComrelElementTypes.SingleFeatureUnit_3061 == req.getElementType()) {
+ return getGEFWrapper(new SingleFeatureUnit5CreateCommand(req));
+ }
+ if (ComrelElementTypes.MultiFeatureUnit_3062 == req.getElementType()) {
+ return getGEFWrapper(new MultiFeatureUnit5CreateCommand(req));
+ }
+ if (ComrelElementTypes.SingleFilterUnit_3063 == req.getElementType()) {
+ return getGEFWrapper(new SingleFilterUnit5CreateCommand(req));
+ }
+ if (ComrelElementTypes.MultiFilterUnit_3064 == req.getElementType()) {
+ return getGEFWrapper(new MultiFilterUnit5CreateCommand(req));
+ }
+ return super.getCreateCommand(req);
+ }
+
+}
diff --git a/org.eclipse.emf.refactor.comrel.diagram/src/comrel/diagram/edit/policies/SequentialUnitSequentialUnitHelperUnitsCompartment6CanonicalEditPolicy.java b/org.eclipse.emf.refactor.comrel.diagram/src/comrel/diagram/edit/policies/SequentialUnitSequentialUnitHelperUnitsCompartment6CanonicalEditPolicy.java
new file mode 100644
index 0000000..57a2d30
--- /dev/null
+++ b/org.eclipse.emf.refactor.comrel.diagram/src/comrel/diagram/edit/policies/SequentialUnitSequentialUnitHelperUnitsCompartment6CanonicalEditPolicy.java
@@ -0,0 +1,173 @@
+/*
+ *
+ */
+package comrel.diagram.edit.policies;
+
+import java.util.ArrayList;
+import java.util.Collection;
+import java.util.Iterator;
+import java.util.LinkedList;
+import java.util.List;
+
+import org.eclipse.core.runtime.IAdaptable;
+import org.eclipse.emf.ecore.EObject;
+import org.eclipse.emf.ecore.EStructuralFeature;
+import org.eclipse.gef.commands.Command;
+import org.eclipse.gmf.runtime.diagram.core.util.ViewUtil;
+import org.eclipse.gmf.runtime.diagram.ui.commands.DeferredLayoutCommand;
+import org.eclipse.gmf.runtime.diagram.ui.commands.ICommandProxy;
+import org.eclipse.gmf.runtime.diagram.ui.commands.SetViewMutabilityCommand;
+import org.eclipse.gmf.runtime.diagram.ui.editpolicies.CanonicalEditPolicy;
+import org.eclipse.gmf.runtime.diagram.ui.requests.CreateViewRequest;
+import org.eclipse.gmf.runtime.emf.core.util.EObjectAdapter;
+import org.eclipse.gmf.runtime.notation.Node;
+import org.eclipse.gmf.runtime.notation.View;
+
+import comrel.ComrelPackage;
+import comrel.diagram.edit.parts.MultiFeatureUnit5EditPart;
+import comrel.diagram.edit.parts.MultiFilterUnit5EditPart;
+import comrel.diagram.edit.parts.SingleFeatureUnit5EditPart;
+import comrel.diagram.edit.parts.SingleFilterUnit5EditPart;
+import comrel.diagram.part.ComrelDiagramUpdater;
+import comrel.diagram.part.ComrelNodeDescriptor;
+import comrel.diagram.part.ComrelVisualIDRegistry;
+
+/**
+ * @generated
+ */
+public class SequentialUnitSequentialUnitHelperUnitsCompartment6CanonicalEditPolicy
+ extends CanonicalEditPolicy {
+
+ /**
+ * @generated
+ */
+ protected EStructuralFeature getFeatureToSynchronize() {
+ return ComrelPackage.eINSTANCE.getSequentialUnit_HelperUnits();
+ }
+
+ /**
+ * @generated
+ */
+ @SuppressWarnings("rawtypes")
+ protected List getSemanticChildrenList() {
+ View viewObject = (View) getHost().getModel();
+ LinkedList<EObject> result = new LinkedList<EObject>();
+ List<ComrelNodeDescriptor> childDescriptors = ComrelDiagramUpdater
+ .getSequentialUnitSequentialUnitHelperUnitsCompartment_7069SemanticChildren(viewObject);
+ for (ComrelNodeDescriptor d : childDescriptors) {
+ result.add(d.getModelElement());
+ }
+ return result;
+ }
+
+ /**
+ * @generated
+ */
+ protected boolean isOrphaned(Collection<EObject> semanticChildren,
+ final View view) {
+ return isMyDiagramElement(view)
+ && !semanticChildren.contains(view.getElement());
+ }
+
+ /**
+ * @generated
+ */
+ private boolean isMyDiagramElement(View view) {
+ int visualID = ComrelVisualIDRegistry.getVisualID(view);
+ switch (visualID) {
+ case SingleFeatureUnit5EditPart.VISUAL_ID:
+ case MultiFeatureUnit5EditPart.VISUAL_ID:
+ case SingleFilterUnit5EditPart.VISUAL_ID:
+ case MultiFilterUnit5EditPart.VISUAL_ID:
+ return true;
+ }
+ return false;
+ }
+
+ /**
+ * @generated
+ */
+ protected void refreshSemantic() {
+ if (resolveSemanticElement() == null) {
+ return;
+ }
+ LinkedList<IAdaptable> createdViews = new LinkedList<IAdaptable>();
+ List<ComrelNodeDescriptor> childDescriptors = ComrelDiagramUpdater
+ .getSequentialUnitSequentialUnitHelperUnitsCompartment_7069SemanticChildren((View) getHost()
+ .getModel());
+ LinkedList<View> orphaned = new LinkedList<View>();
+ // we care to check only views we recognize as ours
+ LinkedList<View> knownViewChildren = new LinkedList<View>();
+ for (View v : getViewChildren()) {
+ if (isMyDiagramElement(v)) {
+ knownViewChildren.add(v);
+ }
+ }
+ // alternative to #cleanCanonicalSemanticChildren(getViewChildren(), semanticChildren)
+ //
+ // iteration happens over list of desired semantic elements, trying to find best matching View, while original CEP
+ // iterates views, potentially losing view (size/bounds) information - i.e. if there are few views to reference same EObject, only last one
+ // to answer isOrphaned == true will be used for the domain element representation, see #cleanCanonicalSemanticChildren()
+ for (Iterator<ComrelNodeDescriptor> descriptorsIterator = childDescriptors
+ .iterator(); descriptorsIterator.hasNext();) {
+ ComrelNodeDescriptor next = descriptorsIterator.next();
+ String hint = ComrelVisualIDRegistry.getType(next.getVisualID());
+ LinkedList<View> perfectMatch = new LinkedList<View>(); // both semanticElement and hint match that of NodeDescriptor
+ for (View childView : getViewChildren()) {
+ EObject semanticElement = childView.getElement();
+ if (next.getModelElement().equals(semanticElement)) {
+ if (hint.equals(childView.getType())) {
+ perfectMatch.add(childView);
+ // actually, can stop iteration over view children here, but
+ // may want to use not the first view but last one as a 'real' match (the way original CEP does
+ // with its trick with viewToSemanticMap inside #cleanCanonicalSemanticChildren
+ }
+ }
+ }
+ if (perfectMatch.size() > 0) {
+ descriptorsIterator.remove(); // precise match found no need to create anything for the NodeDescriptor
+ // use only one view (first or last?), keep rest as orphaned for further consideration
+ knownViewChildren.remove(perfectMatch.getFirst());
+ }
+ }
+ // those left in knownViewChildren are subject to removal - they are our diagram elements we didn't find match to,
+ // or those we have potential matches to, and thus need to be recreated, preserving size/location information.
+ orphaned.addAll(knownViewChildren);
+ //
+ ArrayList<CreateViewRequest.ViewDescriptor> viewDescriptors = new ArrayList<CreateViewRequest.ViewDescriptor>(
+ childDescriptors.size());
+ for (ComrelNodeDescriptor next : childDescriptors) {
+ String hint = ComrelVisualIDRegistry.getType(next.getVisualID());
+ IAdaptable elementAdapter = new CanonicalElementAdapter(
+ next.getModelElement(), hint);
+ CreateViewRequest.ViewDescriptor descriptor = new CreateViewRequest.ViewDescriptor(
+ elementAdapter, Node.class, hint, ViewUtil.APPEND, false,
+ host().getDiagramPreferencesHint());
+ viewDescriptors.add(descriptor);
+ }
+
+ boolean changed = deleteViews(orphaned.iterator());
+ //
+ CreateViewRequest request = getCreateViewRequest(viewDescriptors);
+ Command cmd = getCreateViewCommand(request);
+ if (cmd != null && cmd.canExecute()) {
+ SetViewMutabilityCommand.makeMutable(
+ new EObjectAdapter(host().getNotationView())).execute();
+ executeCommand(cmd);
+ @SuppressWarnings("unchecked")
+ List<IAdaptable> nl = (List<IAdaptable>) request.getNewObject();
+ createdViews.addAll(nl);
+ }
+ if (changed || createdViews.size() > 0) {
+ postProcessRefreshSemantic(createdViews);
+ }
+ if (createdViews.size() > 1) {
+ // perform a layout of the container
+ DeferredLayoutCommand layoutCmd = new DeferredLayoutCommand(host()
+ .getEditingDomain(), createdViews, host());
+ executeCommand(new ICommandProxy(layoutCmd));
+ }
+
+ makeViewsImmutable(createdViews);
+ }
+}
diff --git a/org.eclipse.emf.refactor.comrel.diagram/src/comrel/diagram/edit/policies/SequentialUnitSequentialUnitHelperUnitsCompartment6ItemSemanticEditPolicy.java b/org.eclipse.emf.refactor.comrel.diagram/src/comrel/diagram/edit/policies/SequentialUnitSequentialUnitHelperUnitsCompartment6ItemSemanticEditPolicy.java
new file mode 100644
index 0000000..fa00595
--- /dev/null
+++ b/org.eclipse.emf.refactor.comrel.diagram/src/comrel/diagram/edit/policies/SequentialUnitSequentialUnitHelperUnitsCompartment6ItemSemanticEditPolicy.java
@@ -0,0 +1,47 @@
+/*
+ *
+ */
+package comrel.diagram.edit.policies;
+
+import org.eclipse.gef.commands.Command;
+import org.eclipse.gmf.runtime.emf.type.core.requests.CreateElementRequest;
+
+import comrel.diagram.edit.commands.MultiFeatureUnit5CreateCommand;
+import comrel.diagram.edit.commands.MultiFilterUnit5CreateCommand;
+import comrel.diagram.edit.commands.SingleFeatureUnit5CreateCommand;
+import comrel.diagram.edit.commands.SingleFilterUnit5CreateCommand;
+import comrel.diagram.providers.ComrelElementTypes;
+
+/**
+ * @generated
+ */
+public class SequentialUnitSequentialUnitHelperUnitsCompartment6ItemSemanticEditPolicy
+ extends ComrelBaseItemSemanticEditPolicy {
+
+ /**
+ * @generated
+ */
+ public SequentialUnitSequentialUnitHelperUnitsCompartment6ItemSemanticEditPolicy() {
+ super(ComrelElementTypes.SequentialUnit_3073);
+ }
+
+ /**
+ * @generated
+ */
+ protected Command getCreateCommand(CreateElementRequest req) {
+ if (ComrelElementTypes.SingleFeatureUnit_3061 == req.getElementType()) {
+ return getGEFWrapper(new SingleFeatureUnit5CreateCommand(req));
+ }
+ if (ComrelElementTypes.MultiFeatureUnit_3062 == req.getElementType()) {
+ return getGEFWrapper(new MultiFeatureUnit5CreateCommand(req));
+ }
+ if (ComrelElementTypes.SingleFilterUnit_3063 == req.getElementType()) {
+ return getGEFWrapper(new SingleFilterUnit5CreateCommand(req));
+ }
+ if (ComrelElementTypes.MultiFilterUnit_3064 == req.getElementType()) {
+ return getGEFWrapper(new MultiFilterUnit5CreateCommand(req));
+ }
+ return super.getCreateCommand(req);
+ }
+
+}
diff --git a/org.eclipse.emf.refactor.comrel.diagram/src/comrel/diagram/edit/policies/SequentialUnitSequentialUnitHelperUnitsCompartment7CanonicalEditPolicy.java b/org.eclipse.emf.refactor.comrel.diagram/src/comrel/diagram/edit/policies/SequentialUnitSequentialUnitHelperUnitsCompartment7CanonicalEditPolicy.java
new file mode 100644
index 0000000..00adf44
--- /dev/null
+++ b/org.eclipse.emf.refactor.comrel.diagram/src/comrel/diagram/edit/policies/SequentialUnitSequentialUnitHelperUnitsCompartment7CanonicalEditPolicy.java
@@ -0,0 +1,173 @@
+/*
+ *
+ */
+package comrel.diagram.edit.policies;
+
+import java.util.ArrayList;
+import java.util.Collection;
+import java.util.Iterator;
+import java.util.LinkedList;
+import java.util.List;
+
+import org.eclipse.core.runtime.IAdaptable;
+import org.eclipse.emf.ecore.EObject;
+import org.eclipse.emf.ecore.EStructuralFeature;
+import org.eclipse.gef.commands.Command;
+import org.eclipse.gmf.runtime.diagram.core.util.ViewUtil;
+import org.eclipse.gmf.runtime.diagram.ui.commands.DeferredLayoutCommand;
+import org.eclipse.gmf.runtime.diagram.ui.commands.ICommandProxy;
+import org.eclipse.gmf.runtime.diagram.ui.commands.SetViewMutabilityCommand;
+import org.eclipse.gmf.runtime.diagram.ui.editpolicies.CanonicalEditPolicy;
+import org.eclipse.gmf.runtime.diagram.ui.requests.CreateViewRequest;
+import org.eclipse.gmf.runtime.emf.core.util.EObjectAdapter;
+import org.eclipse.gmf.runtime.notation.Node;
+import org.eclipse.gmf.runtime.notation.View;
+
+import comrel.ComrelPackage;
+import comrel.diagram.edit.parts.MultiFeatureUnit5EditPart;
+import comrel.diagram.edit.parts.MultiFilterUnit5EditPart;
+import comrel.diagram.edit.parts.SingleFeatureUnit5EditPart;
+import comrel.diagram.edit.parts.SingleFilterUnit5EditPart;
+import comrel.diagram.part.ComrelDiagramUpdater;
+import comrel.diagram.part.ComrelNodeDescriptor;
+import comrel.diagram.part.ComrelVisualIDRegistry;
+
+/**
+ * @generated
+ */
+public class SequentialUnitSequentialUnitHelperUnitsCompartment7CanonicalEditPolicy
+ extends CanonicalEditPolicy {
+
+ /**
+ * @generated
+ */
+ protected EStructuralFeature getFeatureToSynchronize() {
+ return ComrelPackage.eINSTANCE.getSequentialUnit_HelperUnits();
+ }
+
+ /**
+ * @generated
+ */
+ @SuppressWarnings("rawtypes")
+ protected List getSemanticChildrenList() {
+ View viewObject = (View) getHost().getModel();
+ LinkedList<EObject> result = new LinkedList<EObject>();
+ List<ComrelNodeDescriptor> childDescriptors = ComrelDiagramUpdater
+ .getSequentialUnitSequentialUnitHelperUnitsCompartment_7079SemanticChildren(viewObject);
+ for (ComrelNodeDescriptor d : childDescriptors) {
+ result.add(d.getModelElement());
+ }
+ return result;
+ }
+
+ /**
+ * @generated
+ */
+ protected boolean isOrphaned(Collection<EObject> semanticChildren,
+ final View view) {
+ return isMyDiagramElement(view)
+ && !semanticChildren.contains(view.getElement());
+ }
+
+ /**
+ * @generated
+ */
+ private boolean isMyDiagramElement(View view) {
+ int visualID = ComrelVisualIDRegistry.getVisualID(view);
+ switch (visualID) {
+ case SingleFeatureUnit5EditPart.VISUAL_ID:
+ case MultiFeatureUnit5EditPart.VISUAL_ID:
+ case SingleFilterUnit5EditPart.VISUAL_ID:
+ case MultiFilterUnit5EditPart.VISUAL_ID:
+ return true;
+ }
+ return false;
+ }
+
+ /**
+ * @generated
+ */
+ protected void refreshSemantic() {
+ if (resolveSemanticElement() == null) {
+ return;
+ }
+ LinkedList<IAdaptable> createdViews = new LinkedList<IAdaptable>();
+ List<ComrelNodeDescriptor> childDescriptors = ComrelDiagramUpdater
+ .getSequentialUnitSequentialUnitHelperUnitsCompartment_7079SemanticChildren((View) getHost()
+ .getModel());
+ LinkedList<View> orphaned = new LinkedList<View>();
+ // we care to check only views we recognize as ours
+ LinkedList<View> knownViewChildren = new LinkedList<View>();
+ for (View v : getViewChildren()) {
+ if (isMyDiagramElement(v)) {
+ knownViewChildren.add(v);
+ }
+ }
+ // alternative to #cleanCanonicalSemanticChildren(getViewChildren(), semanticChildren)
+ //
+ // iteration happens over list of desired semantic elements, trying to find best matching View, while original CEP
+ // iterates views, potentially losing view (size/bounds) information - i.e. if there are few views to reference same EObject, only last one
+ // to answer isOrphaned == true will be used for the domain element representation, see #cleanCanonicalSemanticChildren()
+ for (Iterator<ComrelNodeDescriptor> descriptorsIterator = childDescriptors
+ .iterator(); descriptorsIterator.hasNext();) {
+ ComrelNodeDescriptor next = descriptorsIterator.next();
+ String hint = ComrelVisualIDRegistry.getType(next.getVisualID());
+ LinkedList<View> perfectMatch = new LinkedList<View>(); // both semanticElement and hint match that of NodeDescriptor
+ for (View childView : getViewChildren()) {
+ EObject semanticElement = childView.getElement();
+ if (next.getModelElement().equals(semanticElement)) {
+ if (hint.equals(childView.getType())) {
+ perfectMatch.add(childView);
+ // actually, can stop iteration over view children here, but
+ // may want to use not the first view but last one as a 'real' match (the way original CEP does
+ // with its trick with viewToSemanticMap inside #cleanCanonicalSemanticChildren
+ }
+ }
+ }
+ if (perfectMatch.size() > 0) {
+ descriptorsIterator.remove(); // precise match found no need to create anything for the NodeDescriptor
+ // use only one view (first or last?), keep rest as orphaned for further consideration
+ knownViewChildren.remove(perfectMatch.getFirst());
+ }
+ }
+ // those left in knownViewChildren are subject to removal - they are our diagram elements we didn't find match to,
+ // or those we have potential matches to, and thus need to be recreated, preserving size/location information.
+ orphaned.addAll(knownViewChildren);
+ //
+ ArrayList<CreateViewRequest.ViewDescriptor> viewDescriptors = new ArrayList<CreateViewRequest.ViewDescriptor>(
+ childDescriptors.size());
+ for (ComrelNodeDescriptor next : childDescriptors) {
+ String hint = ComrelVisualIDRegistry.getType(next.getVisualID());
+ IAdaptable elementAdapter = new CanonicalElementAdapter(
+ next.getModelElement(), hint);
+ CreateViewRequest.ViewDescriptor descriptor = new CreateViewRequest.ViewDescriptor(
+ elementAdapter, Node.class, hint, ViewUtil.APPEND, false,
+ host().getDiagramPreferencesHint());
+ viewDescriptors.add(descriptor);
+ }
+
+ boolean changed = deleteViews(orphaned.iterator());
+ //
+ CreateViewRequest request = getCreateViewRequest(viewDescriptors);
+ Command cmd = getCreateViewCommand(request);
+ if (cmd != null && cmd.canExecute()) {
+ SetViewMutabilityCommand.makeMutable(
+ new EObjectAdapter(host().getNotationView())).execute();
+ executeCommand(cmd);
+ @SuppressWarnings("unchecked")
+ List<IAdaptable> nl = (List<IAdaptable>) request.getNewObject();
+ createdViews.addAll(nl);
+ }
+ if (changed || createdViews.size() > 0) {
+ postProcessRefreshSemantic(createdViews);
+ }
+ if (createdViews.size() > 1) {
+ // perform a layout of the container
+ DeferredLayoutCommand layoutCmd = new DeferredLayoutCommand(host()
+ .getEditingDomain(), createdViews, host());
+ executeCommand(new ICommandProxy(layoutCmd));
+ }
+
+ makeViewsImmutable(createdViews);
+ }
+}
diff --git a/org.eclipse.emf.refactor.comrel.diagram/src/comrel/diagram/edit/policies/SequentialUnitSequentialUnitHelperUnitsCompartment7ItemSemanticEditPolicy.java b/org.eclipse.emf.refactor.comrel.diagram/src/comrel/diagram/edit/policies/SequentialUnitSequentialUnitHelperUnitsCompartment7ItemSemanticEditPolicy.java
new file mode 100644
index 0000000..ea5fd1d
--- /dev/null
+++ b/org.eclipse.emf.refactor.comrel.diagram/src/comrel/diagram/edit/policies/SequentialUnitSequentialUnitHelperUnitsCompartment7ItemSemanticEditPolicy.java
@@ -0,0 +1,47 @@
+/*
+ *
+ */
+package comrel.diagram.edit.policies;
+
+import org.eclipse.gef.commands.Command;
+import org.eclipse.gmf.runtime.emf.type.core.requests.CreateElementRequest;
+
+import comrel.diagram.edit.commands.MultiFeatureUnit5CreateCommand;
+import comrel.diagram.edit.commands.MultiFilterUnit5CreateCommand;
+import comrel.diagram.edit.commands.SingleFeatureUnit5CreateCommand;
+import comrel.diagram.edit.commands.SingleFilterUnit5CreateCommand;
+import comrel.diagram.providers.ComrelElementTypes;
+
+/**
+ * @generated
+ */
+public class SequentialUnitSequentialUnitHelperUnitsCompartment7ItemSemanticEditPolicy
+ extends ComrelBaseItemSemanticEditPolicy {
+
+ /**
+ * @generated
+ */
+ public SequentialUnitSequentialUnitHelperUnitsCompartment7ItemSemanticEditPolicy() {
+ super(ComrelElementTypes.SequentialUnit_2005);
+ }
+
+ /**
+ * @generated
+ */
+ protected Command getCreateCommand(CreateElementRequest req) {
+ if (ComrelElementTypes.SingleFeatureUnit_3061 == req.getElementType()) {
+ return getGEFWrapper(new SingleFeatureUnit5CreateCommand(req));
+ }
+ if (ComrelElementTypes.MultiFeatureUnit_3062 == req.getElementType()) {
+ return getGEFWrapper(new MultiFeatureUnit5CreateCommand(req));
+ }
+ if (ComrelElementTypes.SingleFilterUnit_3063 == req.getElementType()) {
+ return getGEFWrapper(new SingleFilterUnit5CreateCommand(req));
+ }
+ if (ComrelElementTypes.MultiFilterUnit_3064 == req.getElementType()) {
+ return getGEFWrapper(new MultiFilterUnit5CreateCommand(req));
+ }
+ return super.getCreateCommand(req);
+ }
+
+}
diff --git a/org.eclipse.emf.refactor.comrel.diagram/src/comrel/diagram/edit/policies/SequentialUnitSequentialUnitHelperUnitsCompartmentCanonicalEditPolicy.java b/org.eclipse.emf.refactor.comrel.diagram/src/comrel/diagram/edit/policies/SequentialUnitSequentialUnitHelperUnitsCompartmentCanonicalEditPolicy.java
new file mode 100644
index 0000000..c66121d
--- /dev/null
+++ b/org.eclipse.emf.refactor.comrel.diagram/src/comrel/diagram/edit/policies/SequentialUnitSequentialUnitHelperUnitsCompartmentCanonicalEditPolicy.java
@@ -0,0 +1,173 @@
+/*
+ *
+ */
+package comrel.diagram.edit.policies;
+
+import java.util.ArrayList;
+import java.util.Collection;
+import java.util.Iterator;
+import java.util.LinkedList;
+import java.util.List;
+
+import org.eclipse.core.runtime.IAdaptable;
+import org.eclipse.emf.ecore.EObject;
+import org.eclipse.emf.ecore.EStructuralFeature;
+import org.eclipse.gef.commands.Command;
+import org.eclipse.gmf.runtime.diagram.core.util.ViewUtil;
+import org.eclipse.gmf.runtime.diagram.ui.commands.DeferredLayoutCommand;
+import org.eclipse.gmf.runtime.diagram.ui.commands.ICommandProxy;
+import org.eclipse.gmf.runtime.diagram.ui.commands.SetViewMutabilityCommand;
+import org.eclipse.gmf.runtime.diagram.ui.editpolicies.CanonicalEditPolicy;
+import org.eclipse.gmf.runtime.diagram.ui.requests.CreateViewRequest;
+import org.eclipse.gmf.runtime.emf.core.util.EObjectAdapter;
+import org.eclipse.gmf.runtime.notation.Node;
+import org.eclipse.gmf.runtime.notation.View;
+
+import comrel.ComrelPackage;
+import comrel.diagram.edit.parts.MultiFeatureUnit5EditPart;
+import comrel.diagram.edit.parts.MultiFilterUnit5EditPart;
+import comrel.diagram.edit.parts.SingleFeatureUnit5EditPart;
+import comrel.diagram.edit.parts.SingleFilterUnit5EditPart;
+import comrel.diagram.part.ComrelDiagramUpdater;
+import comrel.diagram.part.ComrelNodeDescriptor;
+import comrel.diagram.part.ComrelVisualIDRegistry;
+
+/**
+ * @generated
+ */
+public class SequentialUnitSequentialUnitHelperUnitsCompartmentCanonicalEditPolicy
+ extends CanonicalEditPolicy {
+
+ /**
+ * @generated
+ */
+ protected EStructuralFeature getFeatureToSynchronize() {
+ return ComrelPackage.eINSTANCE.getSequentialUnit_HelperUnits();
+ }
+
+ /**
+ * @generated
+ */
+ @SuppressWarnings("rawtypes")
+ protected List getSemanticChildrenList() {
+ View viewObject = (View) getHost().getModel();
+ LinkedList<EObject> result = new LinkedList<EObject>();
+ List<ComrelNodeDescriptor> childDescriptors = ComrelDiagramUpdater
+ .getSequentialUnitSequentialUnitHelperUnitsCompartment_7013SemanticChildren(viewObject);
+ for (ComrelNodeDescriptor d : childDescriptors) {
+ result.add(d.getModelElement());
+ }
+ return result;
+ }
+
+ /**
+ * @generated
+ */
+ protected boolean isOrphaned(Collection<EObject> semanticChildren,
+ final View view) {
+ return isMyDiagramElement(view)
+ && !semanticChildren.contains(view.getElement());
+ }
+
+ /**
+ * @generated
+ */
+ private boolean isMyDiagramElement(View view) {
+ int visualID = ComrelVisualIDRegistry.getVisualID(view);
+ switch (visualID) {
+ case SingleFeatureUnit5EditPart.VISUAL_ID:
+ case MultiFeatureUnit5EditPart.VISUAL_ID:
+ case SingleFilterUnit5EditPart.VISUAL_ID:
+ case MultiFilterUnit5EditPart.VISUAL_ID:
+ return true;
+ }
+ return false;
+ }
+
+ /**
+ * @generated
+ */
+ protected void refreshSemantic() {
+ if (resolveSemanticElement() == null) {
+ return;
+ }
+ LinkedList<IAdaptable> createdViews = new LinkedList<IAdaptable>();
+ List<ComrelNodeDescriptor> childDescriptors = ComrelDiagramUpdater
+ .getSequentialUnitSequentialUnitHelperUnitsCompartment_7013SemanticChildren((View) getHost()
+ .getModel());
+ LinkedList<View> orphaned = new LinkedList<View>();
+ // we care to check only views we recognize as ours
+ LinkedList<View> knownViewChildren = new LinkedList<View>();
+ for (View v : getViewChildren()) {
+ if (isMyDiagramElement(v)) {
+ knownViewChildren.add(v);
+ }
+ }
+ // alternative to #cleanCanonicalSemanticChildren(getViewChildren(), semanticChildren)
+ //
+ // iteration happens over list of desired semantic elements, trying to find best matching View, while original CEP
+ // iterates views, potentially losing view (size/bounds) information - i.e. if there are few views to reference same EObject, only last one
+ // to answer isOrphaned == true will be used for the domain element representation, see #cleanCanonicalSemanticChildren()
+ for (Iterator<ComrelNodeDescriptor> descriptorsIterator = childDescriptors
+ .iterator(); descriptorsIterator.hasNext();) {
+ ComrelNodeDescriptor next = descriptorsIterator.next();
+ String hint = ComrelVisualIDRegistry.getType(next.getVisualID());
+ LinkedList<View> perfectMatch = new LinkedList<View>(); // both semanticElement and hint match that of NodeDescriptor
+ for (View childView : getViewChildren()) {
+ EObject semanticElement = childView.getElement();
+ if (next.getModelElement().equals(semanticElement)) {
+ if (hint.equals(childView.getType())) {
+ perfectMatch.add(childView);
+ // actually, can stop iteration over view children here, but
+ // may want to use not the first view but last one as a 'real' match (the way original CEP does
+ // with its trick with viewToSemanticMap inside #cleanCanonicalSemanticChildren
+ }
+ }
+ }
+ if (perfectMatch.size() > 0) {
+ descriptorsIterator.remove(); // precise match found no need to create anything for the NodeDescriptor
+ // use only one view (first or last?), keep rest as orphaned for further consideration
+ knownViewChildren.remove(perfectMatch.getFirst());
+ }
+ }
+ // those left in knownViewChildren are subject to removal - they are our diagram elements we didn't find match to,
+ // or those we have potential matches to, and thus need to be recreated, preserving size/location information.
+ orphaned.addAll(knownViewChildren);
+ //
+ ArrayList<CreateViewRequest.ViewDescriptor> viewDescriptors = new ArrayList<CreateViewRequest.ViewDescriptor>(
+ childDescriptors.size());
+ for (ComrelNodeDescriptor next : childDescriptors) {
+ String hint = ComrelVisualIDRegistry.getType(next.getVisualID());
+ IAdaptable elementAdapter = new CanonicalElementAdapter(
+ next.getModelElement(), hint);
+ CreateViewRequest.ViewDescriptor descriptor = new CreateViewRequest.ViewDescriptor(
+ elementAdapter, Node.class, hint, ViewUtil.APPEND, false,
+ host().getDiagramPreferencesHint());
+ viewDescriptors.add(descriptor);
+ }
+
+ boolean changed = deleteViews(orphaned.iterator());
+ //
+ CreateViewRequest request = getCreateViewRequest(viewDescriptors);
+ Command cmd = getCreateViewCommand(request);
+ if (cmd != null && cmd.canExecute()) {
+ SetViewMutabilityCommand.makeMutable(
+ new EObjectAdapter(host().getNotationView())).execute();
+ executeCommand(cmd);
+ @SuppressWarnings("unchecked")
+ List<IAdaptable> nl = (List<IAdaptable>) request.getNewObject();
+ createdViews.addAll(nl);
+ }
+ if (changed || createdViews.size() > 0) {
+ postProcessRefreshSemantic(createdViews);
+ }
+ if (createdViews.size() > 1) {
+ // perform a layout of the container
+ DeferredLayoutCommand layoutCmd = new DeferredLayoutCommand(host()
+ .getEditingDomain(), createdViews, host());
+ executeCommand(new ICommandProxy(layoutCmd));
+ }
+
+ makeViewsImmutable(createdViews);
+ }
+}
diff --git a/org.eclipse.emf.refactor.comrel.diagram/src/comrel/diagram/edit/policies/SequentialUnitSequentialUnitHelperUnitsCompartmentItemSemanticEditPolicy.java b/org.eclipse.emf.refactor.comrel.diagram/src/comrel/diagram/edit/policies/SequentialUnitSequentialUnitHelperUnitsCompartmentItemSemanticEditPolicy.java
new file mode 100644
index 0000000..849ae1b
--- /dev/null
+++ b/org.eclipse.emf.refactor.comrel.diagram/src/comrel/diagram/edit/policies/SequentialUnitSequentialUnitHelperUnitsCompartmentItemSemanticEditPolicy.java
@@ -0,0 +1,47 @@
+/*
+ *
+ */
+package comrel.diagram.edit.policies;
+
+import org.eclipse.gef.commands.Command;
+import org.eclipse.gmf.runtime.emf.type.core.requests.CreateElementRequest;
+
+import comrel.diagram.edit.commands.MultiFeatureUnit5CreateCommand;
+import comrel.diagram.edit.commands.MultiFilterUnit5CreateCommand;
+import comrel.diagram.edit.commands.SingleFeatureUnit5CreateCommand;
+import comrel.diagram.edit.commands.SingleFilterUnit5CreateCommand;
+import comrel.diagram.providers.ComrelElementTypes;
+
+/**
+ * @generated
+ */
+public class SequentialUnitSequentialUnitHelperUnitsCompartmentItemSemanticEditPolicy
+ extends ComrelBaseItemSemanticEditPolicy {
+
+ /**
+ * @generated
+ */
+ public SequentialUnitSequentialUnitHelperUnitsCompartmentItemSemanticEditPolicy() {
+ super(ComrelElementTypes.SequentialUnit_3026);
+ }
+
+ /**
+ * @generated
+ */
+ protected Command getCreateCommand(CreateElementRequest req) {
+ if (ComrelElementTypes.SingleFeatureUnit_3061 == req.getElementType()) {
+ return getGEFWrapper(new SingleFeatureUnit5CreateCommand(req));
+ }
+ if (ComrelElementTypes.MultiFeatureUnit_3062 == req.getElementType()) {
+ return getGEFWrapper(new MultiFeatureUnit5CreateCommand(req));
+ }
+ if (ComrelElementTypes.SingleFilterUnit_3063 == req.getElementType()) {
+ return getGEFWrapper(new SingleFilterUnit5CreateCommand(req));
+ }
+ if (ComrelElementTypes.MultiFilterUnit_3064 == req.getElementType()) {
+ return getGEFWrapper(new MultiFilterUnit5CreateCommand(req));
+ }
+ return super.getCreateCommand(req);
+ }
+
+}
diff --git a/org.eclipse.emf.refactor.comrel.diagram/src/comrel/diagram/edit/policies/SequentialUnitSequentialUnitRefactoringUnitsCompartment2CanonicalEditPolicy.java b/org.eclipse.emf.refactor.comrel.diagram/src/comrel/diagram/edit/policies/SequentialUnitSequentialUnitRefactoringUnitsCompartment2CanonicalEditPolicy.java
new file mode 100644
index 0000000..f1bf018
--- /dev/null
+++ b/org.eclipse.emf.refactor.comrel.diagram/src/comrel/diagram/edit/policies/SequentialUnitSequentialUnitRefactoringUnitsCompartment2CanonicalEditPolicy.java
@@ -0,0 +1,177 @@
+/*
+ *
+ */
+package comrel.diagram.edit.policies;
+
+import java.util.ArrayList;
+import java.util.Collection;
+import java.util.Iterator;
+import java.util.LinkedList;
+import java.util.List;
+
+import org.eclipse.core.runtime.IAdaptable;
+import org.eclipse.emf.ecore.EObject;
+import org.eclipse.emf.ecore.EStructuralFeature;
+import org.eclipse.gef.commands.Command;
+import org.eclipse.gmf.runtime.diagram.core.util.ViewUtil;
+import org.eclipse.gmf.runtime.diagram.ui.commands.DeferredLayoutCommand;
+import org.eclipse.gmf.runtime.diagram.ui.commands.ICommandProxy;
+import org.eclipse.gmf.runtime.diagram.ui.commands.SetViewMutabilityCommand;
+import org.eclipse.gmf.runtime.diagram.ui.editpolicies.CanonicalEditPolicy;
+import org.eclipse.gmf.runtime.diagram.ui.requests.CreateViewRequest;
+import org.eclipse.gmf.runtime.emf.core.util.EObjectAdapter;
+import org.eclipse.gmf.runtime.notation.Node;
+import org.eclipse.gmf.runtime.notation.View;
+
+import comrel.ComrelPackage;
+import comrel.diagram.edit.parts.AtomicUnit5EditPart;
+import comrel.diagram.edit.parts.CartesianQueuedUnit5EditPart;
+import comrel.diagram.edit.parts.ConditionalUnit5EditPart;
+import comrel.diagram.edit.parts.ParallelQueuedUnit6EditPart;
+import comrel.diagram.edit.parts.SequentialUnit6EditPart;
+import comrel.diagram.edit.parts.SingleQueuedUnit6EditPart;
+import comrel.diagram.part.ComrelDiagramUpdater;
+import comrel.diagram.part.ComrelNodeDescriptor;
+import comrel.diagram.part.ComrelVisualIDRegistry;
+
+/**
+ * @generated
+ */
+public class SequentialUnitSequentialUnitRefactoringUnitsCompartment2CanonicalEditPolicy
+ extends CanonicalEditPolicy {
+
+ /**
+ * @generated
+ */
+ protected EStructuralFeature getFeatureToSynchronize() {
+ return ComrelPackage.eINSTANCE.getSequentialUnit_RefactoringUnits();
+ }
+
+ /**
+ * @generated
+ */
+ @SuppressWarnings("rawtypes")
+ protected List getSemanticChildrenList() {
+ View viewObject = (View) getHost().getModel();
+ LinkedList<EObject> result = new LinkedList<EObject>();
+ List<ComrelNodeDescriptor> childDescriptors = ComrelDiagramUpdater
+ .getSequentialUnitSequentialUnitRefactoringUnitsCompartment_7032SemanticChildren(viewObject);
+ for (ComrelNodeDescriptor d : childDescriptors) {
+ result.add(d.getModelElement());
+ }
+ return result;
+ }
+
+ /**
+ * @generated
+ */
+ protected boolean isOrphaned(Collection<EObject> semanticChildren,
+ final View view) {
+ return isMyDiagramElement(view)
+ && !semanticChildren.contains(view.getElement());
+ }
+
+ /**
+ * @generated
+ */
+ private boolean isMyDiagramElement(View view) {
+ int visualID = ComrelVisualIDRegistry.getVisualID(view);
+ switch (visualID) {
+ case CartesianQueuedUnit5EditPart.VISUAL_ID:
+ case ParallelQueuedUnit6EditPart.VISUAL_ID:
+ case SingleQueuedUnit6EditPart.VISUAL_ID:
+ case SequentialUnit6EditPart.VISUAL_ID:
+ case ConditionalUnit5EditPart.VISUAL_ID:
+ case AtomicUnit5EditPart.VISUAL_ID:
+ return true;
+ }
+ return false;
+ }
+
+ /**
+ * @generated
+ */
+ protected void refreshSemantic() {
+ if (resolveSemanticElement() == null) {
+ return;
+ }
+ LinkedList<IAdaptable> createdViews = new LinkedList<IAdaptable>();
+ List<ComrelNodeDescriptor> childDescriptors = ComrelDiagramUpdater
+ .getSequentialUnitSequentialUnitRefactoringUnitsCompartment_7032SemanticChildren((View) getHost()
+ .getModel());
+ LinkedList<View> orphaned = new LinkedList<View>();
+ // we care to check only views we recognize as ours
+ LinkedList<View> knownViewChildren = new LinkedList<View>();
+ for (View v : getViewChildren()) {
+ if (isMyDiagramElement(v)) {
+ knownViewChildren.add(v);
+ }
+ }
+ // alternative to #cleanCanonicalSemanticChildren(getViewChildren(), semanticChildren)
+ //
+ // iteration happens over list of desired semantic elements, trying to find best matching View, while original CEP
+ // iterates views, potentially losing view (size/bounds) information - i.e. if there are few views to reference same EObject, only last one
+ // to answer isOrphaned == true will be used for the domain element representation, see #cleanCanonicalSemanticChildren()
+ for (Iterator<ComrelNodeDescriptor> descriptorsIterator = childDescriptors
+ .iterator(); descriptorsIterator.hasNext();) {
+ ComrelNodeDescriptor next = descriptorsIterator.next();
+ String hint = ComrelVisualIDRegistry.getType(next.getVisualID());
+ LinkedList<View> perfectMatch = new LinkedList<View>(); // both semanticElement and hint match that of NodeDescriptor
+ for (View childView : getViewChildren()) {
+ EObject semanticElement = childView.getElement();
+ if (next.getModelElement().equals(semanticElement)) {
+ if (hint.equals(childView.getType())) {
+ perfectMatch.add(childView);
+ // actually, can stop iteration over view children here, but
+ // may want to use not the first view but last one as a 'real' match (the way original CEP does
+ // with its trick with viewToSemanticMap inside #cleanCanonicalSemanticChildren
+ }
+ }
+ }
+ if (perfectMatch.size() > 0) {
+ descriptorsIterator.remove(); // precise match found no need to create anything for the NodeDescriptor
+ // use only one view (first or last?), keep rest as orphaned for further consideration
+ knownViewChildren.remove(perfectMatch.getFirst());
+ }
+ }
+ // those left in knownViewChildren are subject to removal - they are our diagram elements we didn't find match to,
+ // or those we have potential matches to, and thus need to be recreated, preserving size/location information.
+ orphaned.addAll(knownViewChildren);
+ //
+ ArrayList<CreateViewRequest.ViewDescriptor> viewDescriptors = new ArrayList<CreateViewRequest.ViewDescriptor>(
+ childDescriptors.size());
+ for (ComrelNodeDescriptor next : childDescriptors) {
+ String hint = ComrelVisualIDRegistry.getType(next.getVisualID());
+ IAdaptable elementAdapter = new CanonicalElementAdapter(
+ next.getModelElement(), hint);
+ CreateViewRequest.ViewDescriptor descriptor = new CreateViewRequest.ViewDescriptor(
+ elementAdapter, Node.class, hint, ViewUtil.APPEND, false,
+ host().getDiagramPreferencesHint());
+ viewDescriptors.add(descriptor);
+ }
+
+ boolean changed = deleteViews(orphaned.iterator());
+ //
+ CreateViewRequest request = getCreateViewRequest(viewDescriptors);
+ Command cmd = getCreateViewCommand(request);
+ if (cmd != null && cmd.canExecute()) {
+ SetViewMutabilityCommand.makeMutable(
+ new EObjectAdapter(host().getNotationView())).execute();
+ executeCommand(cmd);
+ @SuppressWarnings("unchecked")
+ List<IAdaptable> nl = (List<IAdaptable>) request.getNewObject();
+ createdViews.addAll(nl);
+ }
+ if (changed || createdViews.size() > 0) {
+ postProcessRefreshSemantic(createdViews);
+ }
+ if (createdViews.size() > 1) {
+ // perform a layout of the container
+ DeferredLayoutCommand layoutCmd = new DeferredLayoutCommand(host()
+ .getEditingDomain(), createdViews, host());
+ executeCommand(new ICommandProxy(layoutCmd));
+ }
+
+ makeViewsImmutable(createdViews);
+ }
+}
diff --git a/org.eclipse.emf.refactor.comrel.diagram/src/comrel/diagram/edit/policies/SequentialUnitSequentialUnitRefactoringUnitsCompartment2ItemSemanticEditPolicy.java b/org.eclipse.emf.refactor.comrel.diagram/src/comrel/diagram/edit/policies/SequentialUnitSequentialUnitRefactoringUnitsCompartment2ItemSemanticEditPolicy.java
new file mode 100644
index 0000000..d64d4ef
--- /dev/null
+++ b/org.eclipse.emf.refactor.comrel.diagram/src/comrel/diagram/edit/policies/SequentialUnitSequentialUnitRefactoringUnitsCompartment2ItemSemanticEditPolicy.java
@@ -0,0 +1,55 @@
+/*
+ *
+ */
+package comrel.diagram.edit.policies;
+
+import org.eclipse.gef.commands.Command;
+import org.eclipse.gmf.runtime.emf.type.core.requests.CreateElementRequest;
+
+import comrel.diagram.edit.commands.AtomicUnit5CreateCommand;
+import comrel.diagram.edit.commands.CartesianQueuedUnit5CreateCommand;
+import comrel.diagram.edit.commands.ConditionalUnit5CreateCommand;
+import comrel.diagram.edit.commands.ParallelQueuedUnit6CreateCommand;
+import comrel.diagram.edit.commands.SequentialUnit6CreateCommand;
+import comrel.diagram.edit.commands.SingleQueuedUnit6CreateCommand;
+import comrel.diagram.providers.ComrelElementTypes;
+
+/**
+ * @generated
+ */
+public class SequentialUnitSequentialUnitRefactoringUnitsCompartment2ItemSemanticEditPolicy
+ extends ComrelBaseItemSemanticEditPolicy {
+
+ /**
+ * @generated
+ */
+ public SequentialUnitSequentialUnitRefactoringUnitsCompartment2ItemSemanticEditPolicy() {
+ super(ComrelElementTypes.SequentialUnit_3044);
+ }
+
+ /**
+ * @generated
+ */
+ protected Command getCreateCommand(CreateElementRequest req) {
+ if (ComrelElementTypes.CartesianQueuedUnit_3029 == req.getElementType()) {
+ return getGEFWrapper(new CartesianQueuedUnit5CreateCommand(req));
+ }
+ if (ComrelElementTypes.ParallelQueuedUnit_3045 == req.getElementType()) {
+ return getGEFWrapper(new ParallelQueuedUnit6CreateCommand(req));
+ }
+ if (ComrelElementTypes.SingleQueuedUnit_3065 == req.getElementType()) {
+ return getGEFWrapper(new SingleQueuedUnit6CreateCommand(req));
+ }
+ if (ComrelElementTypes.SequentialUnit_3070 == req.getElementType()) {
+ return getGEFWrapper(new SequentialUnit6CreateCommand(req));
+ }
+ if (ComrelElementTypes.ConditionalUnit_3071 == req.getElementType()) {
+ return getGEFWrapper(new ConditionalUnit5CreateCommand(req));
+ }
+ if (ComrelElementTypes.AtomicUnit_3074 == req.getElementType()) {
+ return getGEFWrapper(new AtomicUnit5CreateCommand(req));
+ }
+ return super.getCreateCommand(req);
+ }
+
+}
diff --git a/org.eclipse.emf.refactor.comrel.diagram/src/comrel/diagram/edit/policies/SequentialUnitSequentialUnitRefactoringUnitsCompartment3CanonicalEditPolicy.java b/org.eclipse.emf.refactor.comrel.diagram/src/comrel/diagram/edit/policies/SequentialUnitSequentialUnitRefactoringUnitsCompartment3CanonicalEditPolicy.java
new file mode 100644
index 0000000..a13d7a1
--- /dev/null
+++ b/org.eclipse.emf.refactor.comrel.diagram/src/comrel/diagram/edit/policies/SequentialUnitSequentialUnitRefactoringUnitsCompartment3CanonicalEditPolicy.java
@@ -0,0 +1,177 @@
+/*
+ *
+ */
+package comrel.diagram.edit.policies;
+
+import java.util.ArrayList;
+import java.util.Collection;
+import java.util.Iterator;
+import java.util.LinkedList;
+import java.util.List;
+
+import org.eclipse.core.runtime.IAdaptable;
+import org.eclipse.emf.ecore.EObject;
+import org.eclipse.emf.ecore.EStructuralFeature;
+import org.eclipse.gef.commands.Command;
+import org.eclipse.gmf.runtime.diagram.core.util.ViewUtil;
+import org.eclipse.gmf.runtime.diagram.ui.commands.DeferredLayoutCommand;
+import org.eclipse.gmf.runtime.diagram.ui.commands.ICommandProxy;
+import org.eclipse.gmf.runtime.diagram.ui.commands.SetViewMutabilityCommand;
+import org.eclipse.gmf.runtime.diagram.ui.editpolicies.CanonicalEditPolicy;
+import org.eclipse.gmf.runtime.diagram.ui.requests.CreateViewRequest;
+import org.eclipse.gmf.runtime.emf.core.util.EObjectAdapter;
+import org.eclipse.gmf.runtime.notation.Node;
+import org.eclipse.gmf.runtime.notation.View;
+
+import comrel.ComrelPackage;
+import comrel.diagram.edit.parts.AtomicUnit5EditPart;
+import comrel.diagram.edit.parts.CartesianQueuedUnit5EditPart;
+import comrel.diagram.edit.parts.ConditionalUnit5EditPart;
+import comrel.diagram.edit.parts.ParallelQueuedUnit6EditPart;
+import comrel.diagram.edit.parts.SequentialUnit6EditPart;
+import comrel.diagram.edit.parts.SingleQueuedUnit6EditPart;
+import comrel.diagram.part.ComrelDiagramUpdater;
+import comrel.diagram.part.ComrelNodeDescriptor;
+import comrel.diagram.part.ComrelVisualIDRegistry;
+
+/**
+ * @generated
+ */
+public class SequentialUnitSequentialUnitRefactoringUnitsCompartment3CanonicalEditPolicy
+ extends CanonicalEditPolicy {
+
+ /**
+ * @generated
+ */
+ protected EStructuralFeature getFeatureToSynchronize() {
+ return ComrelPackage.eINSTANCE.getSequentialUnit_RefactoringUnits();
+ }
+
+ /**
+ * @generated
+ */
+ @SuppressWarnings("rawtypes")
+ protected List getSemanticChildrenList() {
+ View viewObject = (View) getHost().getModel();
+ LinkedList<EObject> result = new LinkedList<EObject>();
+ List<ComrelNodeDescriptor> childDescriptors = ComrelDiagramUpdater
+ .getSequentialUnitSequentialUnitRefactoringUnitsCompartment_7048SemanticChildren(viewObject);
+ for (ComrelNodeDescriptor d : childDescriptors) {
+ result.add(d.getModelElement());
+ }
+ return result;
+ }
+
+ /**
+ * @generated
+ */
+ protected boolean isOrphaned(Collection<EObject> semanticChildren,
+ final View view) {
+ return isMyDiagramElement(view)
+ && !semanticChildren.contains(view.getElement());
+ }
+
+ /**
+ * @generated
+ */
+ private boolean isMyDiagramElement(View view) {
+ int visualID = ComrelVisualIDRegistry.getVisualID(view);
+ switch (visualID) {
+ case CartesianQueuedUnit5EditPart.VISUAL_ID:
+ case ParallelQueuedUnit6EditPart.VISUAL_ID:
+ case SingleQueuedUnit6EditPart.VISUAL_ID:
+ case SequentialUnit6EditPart.VISUAL_ID:
+ case ConditionalUnit5EditPart.VISUAL_ID:
+ case AtomicUnit5EditPart.VISUAL_ID:
+ return true;
+ }
+ return false;
+ }
+
+ /**
+ * @generated
+ */
+ protected void refreshSemantic() {
+ if (resolveSemanticElement() == null) {
+ return;
+ }
+ LinkedList<IAdaptable> createdViews = new LinkedList<IAdaptable>();
+ List<ComrelNodeDescriptor> childDescriptors = ComrelDiagramUpdater
+ .getSequentialUnitSequentialUnitRefactoringUnitsCompartment_7048SemanticChildren((View) getHost()
+ .getModel());
+ LinkedList<View> orphaned = new LinkedList<View>();
+ // we care to check only views we recognize as ours
+ LinkedList<View> knownViewChildren = new LinkedList<View>();
+ for (View v : getViewChildren()) {
+ if (isMyDiagramElement(v)) {
+ knownViewChildren.add(v);
+ }
+ }
+ // alternative to #cleanCanonicalSemanticChildren(getViewChildren(), semanticChildren)
+ //
+ // iteration happens over list of desired semantic elements, trying to find best matching View, while original CEP
+ // iterates views, potentially losing view (size/bounds) information - i.e. if there are few views to reference same EObject, only last one
+ // to answer isOrphaned == true will be used for the domain element representation, see #cleanCanonicalSemanticChildren()
+ for (Iterator<ComrelNodeDescriptor> descriptorsIterator = childDescriptors
+ .iterator(); descriptorsIterator.hasNext();) {
+ ComrelNodeDescriptor next = descriptorsIterator.next();
+ String hint = ComrelVisualIDRegistry.getType(next.getVisualID());
+ LinkedList<View> perfectMatch = new LinkedList<View>(); // both semanticElement and hint match that of NodeDescriptor
+ for (View childView : getViewChildren()) {
+ EObject semanticElement = childView.getElement();
+ if (next.getModelElement().equals(semanticElement)) {
+ if (hint.equals(childView.getType())) {
+ perfectMatch.add(childView);
+ // actually, can stop iteration over view children here, but
+ // may want to use not the first view but last one as a 'real' match (the way original CEP does
+ // with its trick with viewToSemanticMap inside #cleanCanonicalSemanticChildren
+ }
+ }
+ }
+ if (perfectMatch.size() > 0) {
+ descriptorsIterator.remove(); // precise match found no need to create anything for the NodeDescriptor
+ // use only one view (first or last?), keep rest as orphaned for further consideration
+ knownViewChildren.remove(perfectMatch.getFirst());
+ }
+ }
+ // those left in knownViewChildren are subject to removal - they are our diagram elements we didn't find match to,
+ // or those we have potential matches to, and thus need to be recreated, preserving size/location information.
+ orphaned.addAll(knownViewChildren);
+ //
+ ArrayList<CreateViewRequest.ViewDescriptor> viewDescriptors = new ArrayList<CreateViewRequest.ViewDescriptor>(
+ childDescriptors.size());
+ for (ComrelNodeDescriptor next : childDescriptors) {
+ String hint = ComrelVisualIDRegistry.getType(next.getVisualID());
+ IAdaptable elementAdapter = new CanonicalElementAdapter(
+ next.getModelElement(), hint);
+ CreateViewRequest.ViewDescriptor descriptor = new CreateViewRequest.ViewDescriptor(
+ elementAdapter, Node.class, hint, ViewUtil.APPEND, false,
+ host().getDiagramPreferencesHint());
+ viewDescriptors.add(descriptor);
+ }
+
+ boolean changed = deleteViews(orphaned.iterator());
+ //
+ CreateViewRequest request = getCreateViewRequest(viewDescriptors);
+ Command cmd = getCreateViewCommand(request);
+ if (cmd != null && cmd.canExecute()) {
+ SetViewMutabilityCommand.makeMutable(
+ new EObjectAdapter(host().getNotationView())).execute();
+ executeCommand(cmd);
+ @SuppressWarnings("unchecked")
+ List<IAdaptable> nl = (List<IAdaptable>) request.getNewObject();
+ createdViews.addAll(nl);
+ }
+ if (changed || createdViews.size() > 0) {
+ postProcessRefreshSemantic(createdViews);
+ }
+ if (createdViews.size() > 1) {
+ // perform a layout of the container
+ DeferredLayoutCommand layoutCmd = new DeferredLayoutCommand(host()
+ .getEditingDomain(), createdViews, host());
+ executeCommand(new ICommandProxy(layoutCmd));
+ }
+
+ makeViewsImmutable(createdViews);
+ }
+}
diff --git a/org.eclipse.emf.refactor.comrel.diagram/src/comrel/diagram/edit/policies/SequentialUnitSequentialUnitRefactoringUnitsCompartment3ItemSemanticEditPolicy.java b/org.eclipse.emf.refactor.comrel.diagram/src/comrel/diagram/edit/policies/SequentialUnitSequentialUnitRefactoringUnitsCompartment3ItemSemanticEditPolicy.java
new file mode 100644
index 0000000..a1456f2
--- /dev/null
+++ b/org.eclipse.emf.refactor.comrel.diagram/src/comrel/diagram/edit/policies/SequentialUnitSequentialUnitRefactoringUnitsCompartment3ItemSemanticEditPolicy.java
@@ -0,0 +1,55 @@
+/*
+ *
+ */
+package comrel.diagram.edit.policies;
+
+import org.eclipse.gef.commands.Command;
+import org.eclipse.gmf.runtime.emf.type.core.requests.CreateElementRequest;
+
+import comrel.diagram.edit.commands.AtomicUnit5CreateCommand;
+import comrel.diagram.edit.commands.CartesianQueuedUnit5CreateCommand;
+import comrel.diagram.edit.commands.ConditionalUnit5CreateCommand;
+import comrel.diagram.edit.commands.ParallelQueuedUnit6CreateCommand;
+import comrel.diagram.edit.commands.SequentialUnit6CreateCommand;
+import comrel.diagram.edit.commands.SingleQueuedUnit6CreateCommand;
+import comrel.diagram.providers.ComrelElementTypes;
+
+/**
+ * @generated
+ */
+public class SequentialUnitSequentialUnitRefactoringUnitsCompartment3ItemSemanticEditPolicy
+ extends ComrelBaseItemSemanticEditPolicy {
+
+ /**
+ * @generated
+ */
+ public SequentialUnitSequentialUnitRefactoringUnitsCompartment3ItemSemanticEditPolicy() {
+ super(ComrelElementTypes.SequentialUnit_3060);
+ }
+
+ /**
+ * @generated
+ */
+ protected Command getCreateCommand(CreateElementRequest req) {
+ if (ComrelElementTypes.CartesianQueuedUnit_3029 == req.getElementType()) {
+ return getGEFWrapper(new CartesianQueuedUnit5CreateCommand(req));
+ }
+ if (ComrelElementTypes.ParallelQueuedUnit_3045 == req.getElementType()) {
+ return getGEFWrapper(new ParallelQueuedUnit6CreateCommand(req));
+ }
+ if (ComrelElementTypes.SingleQueuedUnit_3065 == req.getElementType()) {
+ return getGEFWrapper(new SingleQueuedUnit6CreateCommand(req));
+ }
+ if (ComrelElementTypes.SequentialUnit_3070 == req.getElementType()) {
+ return getGEFWrapper(new SequentialUnit6CreateCommand(req));
+ }
+ if (ComrelElementTypes.ConditionalUnit_3071 == req.getElementType()) {
+ return getGEFWrapper(new ConditionalUnit5CreateCommand(req));
+ }
+ if (ComrelElementTypes.AtomicUnit_3074 == req.getElementType()) {
+ return getGEFWrapper(new AtomicUnit5CreateCommand(req));
+ }
+ return super.getCreateCommand(req);
+ }
+
+}
diff --git a/org.eclipse.emf.refactor.comrel.diagram/src/comrel/diagram/edit/policies/SequentialUnitSequentialUnitRefactoringUnitsCompartment4CanonicalEditPolicy.java b/org.eclipse.emf.refactor.comrel.diagram/src/comrel/diagram/edit/policies/SequentialUnitSequentialUnitRefactoringUnitsCompartment4CanonicalEditPolicy.java
new file mode 100644
index 0000000..0dd6852
--- /dev/null
+++ b/org.eclipse.emf.refactor.comrel.diagram/src/comrel/diagram/edit/policies/SequentialUnitSequentialUnitRefactoringUnitsCompartment4CanonicalEditPolicy.java
@@ -0,0 +1,177 @@
+/*
+ *
+ */
+package comrel.diagram.edit.policies;
+
+import java.util.ArrayList;
+import java.util.Collection;
+import java.util.Iterator;
+import java.util.LinkedList;
+import java.util.List;
+
+import org.eclipse.core.runtime.IAdaptable;
+import org.eclipse.emf.ecore.EObject;
+import org.eclipse.emf.ecore.EStructuralFeature;
+import org.eclipse.gef.commands.Command;
+import org.eclipse.gmf.runtime.diagram.core.util.ViewUtil;
+import org.eclipse.gmf.runtime.diagram.ui.commands.DeferredLayoutCommand;
+import org.eclipse.gmf.runtime.diagram.ui.commands.ICommandProxy;
+import org.eclipse.gmf.runtime.diagram.ui.commands.SetViewMutabilityCommand;
+import org.eclipse.gmf.runtime.diagram.ui.editpolicies.CanonicalEditPolicy;
+import org.eclipse.gmf.runtime.diagram.ui.requests.CreateViewRequest;
+import org.eclipse.gmf.runtime.emf.core.util.EObjectAdapter;
+import org.eclipse.gmf.runtime.notation.Node;
+import org.eclipse.gmf.runtime.notation.View;
+
+import comrel.ComrelPackage;
+import comrel.diagram.edit.parts.AtomicUnit5EditPart;
+import comrel.diagram.edit.parts.CartesianQueuedUnit5EditPart;
+import comrel.diagram.edit.parts.ConditionalUnit5EditPart;
+import comrel.diagram.edit.parts.ParallelQueuedUnit6EditPart;
+import comrel.diagram.edit.parts.SequentialUnit6EditPart;
+import comrel.diagram.edit.parts.SingleQueuedUnit6EditPart;
+import comrel.diagram.part.ComrelDiagramUpdater;
+import comrel.diagram.part.ComrelNodeDescriptor;
+import comrel.diagram.part.ComrelVisualIDRegistry;
+
+/**
+ * @generated
+ */
+public class SequentialUnitSequentialUnitRefactoringUnitsCompartment4CanonicalEditPolicy
+ extends CanonicalEditPolicy {
+
+ /**
+ * @generated
+ */
+ protected EStructuralFeature getFeatureToSynchronize() {
+ return ComrelPackage.eINSTANCE.getSequentialUnit_RefactoringUnits();
+ }
+
+ /**
+ * @generated
+ */
+ @SuppressWarnings("rawtypes")
+ protected List getSemanticChildrenList() {
+ View viewObject = (View) getHost().getModel();
+ LinkedList<EObject> result = new LinkedList<EObject>();
+ List<ComrelNodeDescriptor> childDescriptors = ComrelDiagramUpdater
+ .getSequentialUnitSequentialUnitRefactoringUnitsCompartment_7058SemanticChildren(viewObject);
+ for (ComrelNodeDescriptor d : childDescriptors) {
+ result.add(d.getModelElement());
+ }
+ return result;
+ }
+
+ /**
+ * @generated
+ */
+ protected boolean isOrphaned(Collection<EObject> semanticChildren,
+ final View view) {
+ return isMyDiagramElement(view)
+ && !semanticChildren.contains(view.getElement());
+ }
+
+ /**
+ * @generated
+ */
+ private boolean isMyDiagramElement(View view) {
+ int visualID = ComrelVisualIDRegistry.getVisualID(view);
+ switch (visualID) {
+ case CartesianQueuedUnit5EditPart.VISUAL_ID:
+ case ParallelQueuedUnit6EditPart.VISUAL_ID:
+ case SingleQueuedUnit6EditPart.VISUAL_ID:
+ case SequentialUnit6EditPart.VISUAL_ID:
+ case ConditionalUnit5EditPart.VISUAL_ID:
+ case AtomicUnit5EditPart.VISUAL_ID:
+ return true;
+ }
+ return false;
+ }
+
+ /**
+ * @generated
+ */
+ protected void refreshSemantic() {
+ if (resolveSemanticElement() == null) {
+ return;
+ }
+ LinkedList<IAdaptable> createdViews = new LinkedList<IAdaptable>();
+ List<ComrelNodeDescriptor> childDescriptors = ComrelDiagramUpdater
+ .getSequentialUnitSequentialUnitRefactoringUnitsCompartment_7058SemanticChildren((View) getHost()
+ .getModel());
+ LinkedList<View> orphaned = new LinkedList<View>();
+ // we care to check only views we recognize as ours
+ LinkedList<View> knownViewChildren = new LinkedList<View>();
+ for (View v : getViewChildren()) {
+ if (isMyDiagramElement(v)) {
+ knownViewChildren.add(v);
+ }
+ }
+ // alternative to #cleanCanonicalSemanticChildren(getViewChildren(), semanticChildren)
+ //
+ // iteration happens over list of desired semantic elements, trying to find best matching View, while original CEP
+ // iterates views, potentially losing view (size/bounds) information - i.e. if there are few views to reference same EObject, only last one
+ // to answer isOrphaned == true will be used for the domain element representation, see #cleanCanonicalSemanticChildren()
+ for (Iterator<ComrelNodeDescriptor> descriptorsIterator = childDescriptors
+ .iterator(); descriptorsIterator.hasNext();) {
+ ComrelNodeDescriptor next = descriptorsIterator.next();
+ String hint = ComrelVisualIDRegistry.getType(next.getVisualID());
+ LinkedList<View> perfectMatch = new LinkedList<View>(); // both semanticElement and hint match that of NodeDescriptor
+ for (View childView : getViewChildren()) {
+ EObject semanticElement = childView.getElement();
+ if (next.getModelElement().equals(semanticElement)) {
+ if (hint.equals(childView.getType())) {
+ perfectMatch.add(childView);
+ // actually, can stop iteration over view children here, but
+ // may want to use not the first view but last one as a 'real' match (the way original CEP does
+ // with its trick with viewToSemanticMap inside #cleanCanonicalSemanticChildren
+ }
+ }
+ }
+ if (perfectMatch.size() > 0) {
+ descriptorsIterator.remove(); // precise match found no need to create anything for the NodeDescriptor
+ // use only one view (first or last?), keep rest as orphaned for further consideration
+ knownViewChildren.remove(perfectMatch.getFirst());
+ }
+ }
+ // those left in knownViewChildren are subject to removal - they are our diagram elements we didn't find match to,
+ // or those we have potential matches to, and thus need to be recreated, preserving size/location information.
+ orphaned.addAll(knownViewChildren);
+ //
+ ArrayList<CreateViewRequest.ViewDescriptor> viewDescriptors = new ArrayList<CreateViewRequest.ViewDescriptor>(
+ childDescriptors.size());
+ for (ComrelNodeDescriptor next : childDescriptors) {
+ String hint = ComrelVisualIDRegistry.getType(next.getVisualID());
+ IAdaptable elementAdapter = new CanonicalElementAdapter(
+ next.getModelElement(), hint);
+ CreateViewRequest.ViewDescriptor descriptor = new CreateViewRequest.ViewDescriptor(
+ elementAdapter, Node.class, hint, ViewUtil.APPEND, false,
+ host().getDiagramPreferencesHint());
+ viewDescriptors.add(descriptor);
+ }
+
+ boolean changed = deleteViews(orphaned.iterator());
+ //
+ CreateViewRequest request = getCreateViewRequest(viewDescriptors);
+ Command cmd = getCreateViewCommand(request);
+ if (cmd != null && cmd.canExecute()) {
+ SetViewMutabilityCommand.makeMutable(
+ new EObjectAdapter(host().getNotationView())).execute();
+ executeCommand(cmd);
+ @SuppressWarnings("unchecked")
+ List<IAdaptable> nl = (List<IAdaptable>) request.getNewObject();
+ createdViews.addAll(nl);
+ }
+ if (changed || createdViews.size() > 0) {
+ postProcessRefreshSemantic(createdViews);
+ }
+ if (createdViews.size() > 1) {
+ // perform a layout of the container
+ DeferredLayoutCommand layoutCmd = new DeferredLayoutCommand(host()
+ .getEditingDomain(), createdViews, host());
+ executeCommand(new ICommandProxy(layoutCmd));
+ }
+
+ makeViewsImmutable(createdViews);
+ }
+}
diff --git a/org.eclipse.emf.refactor.comrel.diagram/src/comrel/diagram/edit/policies/SequentialUnitSequentialUnitRefactoringUnitsCompartment4ItemSemanticEditPolicy.java b/org.eclipse.emf.refactor.comrel.diagram/src/comrel/diagram/edit/policies/SequentialUnitSequentialUnitRefactoringUnitsCompartment4ItemSemanticEditPolicy.java
new file mode 100644
index 0000000..d522a4d
--- /dev/null
+++ b/org.eclipse.emf.refactor.comrel.diagram/src/comrel/diagram/edit/policies/SequentialUnitSequentialUnitRefactoringUnitsCompartment4ItemSemanticEditPolicy.java
@@ -0,0 +1,55 @@
+/*
+ *
+ */
+package comrel.diagram.edit.policies;
+
+import org.eclipse.gef.commands.Command;
+import org.eclipse.gmf.runtime.emf.type.core.requests.CreateElementRequest;
+
+import comrel.diagram.edit.commands.AtomicUnit5CreateCommand;
+import comrel.diagram.edit.commands.CartesianQueuedUnit5CreateCommand;
+import comrel.diagram.edit.commands.ConditionalUnit5CreateCommand;
+import comrel.diagram.edit.commands.ParallelQueuedUnit6CreateCommand;
+import comrel.diagram.edit.commands.SequentialUnit6CreateCommand;
+import comrel.diagram.edit.commands.SingleQueuedUnit6CreateCommand;
+import comrel.diagram.providers.ComrelElementTypes;
+
+/**
+ * @generated
+ */
+public class SequentialUnitSequentialUnitRefactoringUnitsCompartment4ItemSemanticEditPolicy
+ extends ComrelBaseItemSemanticEditPolicy {
+
+ /**
+ * @generated
+ */
+ public SequentialUnitSequentialUnitRefactoringUnitsCompartment4ItemSemanticEditPolicy() {
+ super(ComrelElementTypes.SequentialUnit_3069);
+ }
+
+ /**
+ * @generated
+ */
+ protected Command getCreateCommand(CreateElementRequest req) {
+ if (ComrelElementTypes.CartesianQueuedUnit_3029 == req.getElementType()) {
+ return getGEFWrapper(new CartesianQueuedUnit5CreateCommand(req));
+ }
+ if (ComrelElementTypes.ParallelQueuedUnit_3045 == req.getElementType()) {
+ return getGEFWrapper(new ParallelQueuedUnit6CreateCommand(req));
+ }
+ if (ComrelElementTypes.SingleQueuedUnit_3065 == req.getElementType()) {
+ return getGEFWrapper(new SingleQueuedUnit6CreateCommand(req));
+ }
+ if (ComrelElementTypes.SequentialUnit_3070 == req.getElementType()) {
+ return getGEFWrapper(new SequentialUnit6CreateCommand(req));
+ }
+ if (ComrelElementTypes.ConditionalUnit_3071 == req.getElementType()) {
+ return getGEFWrapper(new ConditionalUnit5CreateCommand(req));
+ }
+ if (ComrelElementTypes.AtomicUnit_3074 == req.getElementType()) {
+ return getGEFWrapper(new AtomicUnit5CreateCommand(req));
+ }
+ return super.getCreateCommand(req);
+ }
+
+}
diff --git a/org.eclipse.emf.refactor.comrel.diagram/src/comrel/diagram/edit/policies/SequentialUnitSequentialUnitRefactoringUnitsCompartment5CanonicalEditPolicy.java b/org.eclipse.emf.refactor.comrel.diagram/src/comrel/diagram/edit/policies/SequentialUnitSequentialUnitRefactoringUnitsCompartment5CanonicalEditPolicy.java
new file mode 100644
index 0000000..00004f8
--- /dev/null
+++ b/org.eclipse.emf.refactor.comrel.diagram/src/comrel/diagram/edit/policies/SequentialUnitSequentialUnitRefactoringUnitsCompartment5CanonicalEditPolicy.java
@@ -0,0 +1,177 @@
+/*
+ *
+ */
+package comrel.diagram.edit.policies;
+
+import java.util.ArrayList;
+import java.util.Collection;
+import java.util.Iterator;
+import java.util.LinkedList;
+import java.util.List;
+
+import org.eclipse.core.runtime.IAdaptable;
+import org.eclipse.emf.ecore.EObject;
+import org.eclipse.emf.ecore.EStructuralFeature;
+import org.eclipse.gef.commands.Command;
+import org.eclipse.gmf.runtime.diagram.core.util.ViewUtil;
+import org.eclipse.gmf.runtime.diagram.ui.commands.DeferredLayoutCommand;
+import org.eclipse.gmf.runtime.diagram.ui.commands.ICommandProxy;
+import org.eclipse.gmf.runtime.diagram.ui.commands.SetViewMutabilityCommand;
+import org.eclipse.gmf.runtime.diagram.ui.editpolicies.CanonicalEditPolicy;
+import org.eclipse.gmf.runtime.diagram.ui.requests.CreateViewRequest;
+import org.eclipse.gmf.runtime.emf.core.util.EObjectAdapter;
+import org.eclipse.gmf.runtime.notation.Node;
+import org.eclipse.gmf.runtime.notation.View;
+
+import comrel.ComrelPackage;
+import comrel.diagram.edit.parts.AtomicUnit5EditPart;
+import comrel.diagram.edit.parts.CartesianQueuedUnit5EditPart;
+import comrel.diagram.edit.parts.ConditionalUnit5EditPart;
+import comrel.diagram.edit.parts.ParallelQueuedUnit6EditPart;
+import comrel.diagram.edit.parts.SequentialUnit6EditPart;
+import comrel.diagram.edit.parts.SingleQueuedUnit6EditPart;
+import comrel.diagram.part.ComrelDiagramUpdater;
+import comrel.diagram.part.ComrelNodeDescriptor;
+import comrel.diagram.part.ComrelVisualIDRegistry;
+
+/**
+ * @generated
+ */
+public class SequentialUnitSequentialUnitRefactoringUnitsCompartment5CanonicalEditPolicy
+ extends CanonicalEditPolicy {
+
+ /**
+ * @generated
+ */
+ protected EStructuralFeature getFeatureToSynchronize() {
+ return ComrelPackage.eINSTANCE.getSequentialUnit_RefactoringUnits();
+ }
+
+ /**
+ * @generated
+ */
+ @SuppressWarnings("rawtypes")
+ protected List getSemanticChildrenList() {
+ View viewObject = (View) getHost().getModel();
+ LinkedList<EObject> result = new LinkedList<EObject>();
+ List<ComrelNodeDescriptor> childDescriptors = ComrelDiagramUpdater
+ .getSequentialUnitSequentialUnitRefactoringUnitsCompartment_7060SemanticChildren(viewObject);
+ for (ComrelNodeDescriptor d : childDescriptors) {
+ result.add(d.getModelElement());
+ }
+ return result;
+ }
+
+ /**
+ * @generated
+ */
+ protected boolean isOrphaned(Collection<EObject> semanticChildren,
+ final View view) {
+ return isMyDiagramElement(view)
+ && !semanticChildren.contains(view.getElement());
+ }
+
+ /**
+ * @generated
+ */
+ private boolean isMyDiagramElement(View view) {
+ int visualID = ComrelVisualIDRegistry.getVisualID(view);
+ switch (visualID) {
+ case CartesianQueuedUnit5EditPart.VISUAL_ID:
+ case ParallelQueuedUnit6EditPart.VISUAL_ID:
+ case SingleQueuedUnit6EditPart.VISUAL_ID:
+ case SequentialUnit6EditPart.VISUAL_ID:
+ case ConditionalUnit5EditPart.VISUAL_ID:
+ case AtomicUnit5EditPart.VISUAL_ID:
+ return true;
+ }
+ return false;
+ }
+
+ /**
+ * @generated
+ */
+ protected void refreshSemantic() {
+ if (resolveSemanticElement() == null) {
+ return;
+ }
+ LinkedList<IAdaptable> createdViews = new LinkedList<IAdaptable>();
+ List<ComrelNodeDescriptor> childDescriptors = ComrelDiagramUpdater
+ .getSequentialUnitSequentialUnitRefactoringUnitsCompartment_7060SemanticChildren((View) getHost()
+ .getModel());
+ LinkedList<View> orphaned = new LinkedList<View>();
+ // we care to check only views we recognize as ours
+ LinkedList<View> knownViewChildren = new LinkedList<View>();
+ for (View v : getViewChildren()) {
+ if (isMyDiagramElement(v)) {
+ knownViewChildren.add(v);
+ }
+ }
+ // alternative to #cleanCanonicalSemanticChildren(getViewChildren(), semanticChildren)
+ //
+ // iteration happens over list of desired semantic elements, trying to find best matching View, while original CEP
+ // iterates views, potentially losing view (size/bounds) information - i.e. if there are few views to reference same EObject, only last one
+ // to answer isOrphaned == true will be used for the domain element representation, see #cleanCanonicalSemanticChildren()
+ for (Iterator<ComrelNodeDescriptor> descriptorsIterator = childDescriptors
+ .iterator(); descriptorsIterator.hasNext();) {
+ ComrelNodeDescriptor next = descriptorsIterator.next();
+ String hint = ComrelVisualIDRegistry.getType(next.getVisualID());
+ LinkedList<View> perfectMatch = new LinkedList<View>(); // both semanticElement and hint match that of NodeDescriptor
+ for (View childView : getViewChildren()) {
+ EObject semanticElement = childView.getElement();
+ if (next.getModelElement().equals(semanticElement)) {
+ if (hint.equals(childView.getType())) {
+ perfectMatch.add(childView);
+ // actually, can stop iteration over view children here, but
+ // may want to use not the first view but last one as a 'real' match (the way original CEP does
+ // with its trick with viewToSemanticMap inside #cleanCanonicalSemanticChildren
+ }
+ }
+ }
+ if (perfectMatch.size() > 0) {
+ descriptorsIterator.remove(); // precise match found no need to create anything for the NodeDescriptor
+ // use only one view (first or last?), keep rest as orphaned for further consideration
+ knownViewChildren.remove(perfectMatch.getFirst());
+ }
+ }
+ // those left in knownViewChildren are subject to removal - they are our diagram elements we didn't find match to,
+ // or those we have potential matches to, and thus need to be recreated, preserving size/location information.
+ orphaned.addAll(knownViewChildren);
+ //
+ ArrayList<CreateViewRequest.ViewDescriptor> viewDescriptors = new ArrayList<CreateViewRequest.ViewDescriptor>(
+ childDescriptors.size());
+ for (ComrelNodeDescriptor next : childDescriptors) {
+ String hint = ComrelVisualIDRegistry.getType(next.getVisualID());
+ IAdaptable elementAdapter = new CanonicalElementAdapter(
+ next.getModelElement(), hint);
+ CreateViewRequest.ViewDescriptor descriptor = new CreateViewRequest.ViewDescriptor(
+ elementAdapter, Node.class, hint, ViewUtil.APPEND, false,
+ host().getDiagramPreferencesHint());
+ viewDescriptors.add(descriptor);
+ }
+
+ boolean changed = deleteViews(orphaned.iterator());
+ //
+ CreateViewRequest request = getCreateViewRequest(viewDescriptors);
+ Command cmd = getCreateViewCommand(request);
+ if (cmd != null && cmd.canExecute()) {
+ SetViewMutabilityCommand.makeMutable(
+ new EObjectAdapter(host().getNotationView())).execute();
+ executeCommand(cmd);
+ @SuppressWarnings("unchecked")
+ List<IAdaptable> nl = (List<IAdaptable>) request.getNewObject();
+ createdViews.addAll(nl);
+ }
+ if (changed || createdViews.size() > 0) {
+ postProcessRefreshSemantic(createdViews);
+ }
+ if (createdViews.size() > 1) {
+ // perform a layout of the container
+ DeferredLayoutCommand layoutCmd = new DeferredLayoutCommand(host()
+ .getEditingDomain(), createdViews, host());
+ executeCommand(new ICommandProxy(layoutCmd));
+ }
+
+ makeViewsImmutable(createdViews);
+ }
+}
diff --git a/org.eclipse.emf.refactor.comrel.diagram/src/comrel/diagram/edit/policies/SequentialUnitSequentialUnitRefactoringUnitsCompartment5ItemSemanticEditPolicy.java b/org.eclipse.emf.refactor.comrel.diagram/src/comrel/diagram/edit/policies/SequentialUnitSequentialUnitRefactoringUnitsCompartment5ItemSemanticEditPolicy.java
new file mode 100644
index 0000000..0480158
--- /dev/null
+++ b/org.eclipse.emf.refactor.comrel.diagram/src/comrel/diagram/edit/policies/SequentialUnitSequentialUnitRefactoringUnitsCompartment5ItemSemanticEditPolicy.java
@@ -0,0 +1,55 @@
+/*
+ *
+ */
+package comrel.diagram.edit.policies;
+
+import org.eclipse.gef.commands.Command;
+import org.eclipse.gmf.runtime.emf.type.core.requests.CreateElementRequest;
+
+import comrel.diagram.edit.commands.AtomicUnit5CreateCommand;
+import comrel.diagram.edit.commands.CartesianQueuedUnit5CreateCommand;
+import comrel.diagram.edit.commands.ConditionalUnit5CreateCommand;
+import comrel.diagram.edit.commands.ParallelQueuedUnit6CreateCommand;
+import comrel.diagram.edit.commands.SequentialUnit6CreateCommand;
+import comrel.diagram.edit.commands.SingleQueuedUnit6CreateCommand;
+import comrel.diagram.providers.ComrelElementTypes;
+
+/**
+ * @generated
+ */
+public class SequentialUnitSequentialUnitRefactoringUnitsCompartment5ItemSemanticEditPolicy
+ extends ComrelBaseItemSemanticEditPolicy {
+
+ /**
+ * @generated
+ */
+ public SequentialUnitSequentialUnitRefactoringUnitsCompartment5ItemSemanticEditPolicy() {
+ super(ComrelElementTypes.SequentialUnit_3070);
+ }
+
+ /**
+ * @generated
+ */
+ protected Command getCreateCommand(CreateElementRequest req) {
+ if (ComrelElementTypes.CartesianQueuedUnit_3029 == req.getElementType()) {
+ return getGEFWrapper(new CartesianQueuedUnit5CreateCommand(req));
+ }
+ if (ComrelElementTypes.ParallelQueuedUnit_3045 == req.getElementType()) {
+ return getGEFWrapper(new ParallelQueuedUnit6CreateCommand(req));
+ }
+ if (ComrelElementTypes.SingleQueuedUnit_3065 == req.getElementType()) {
+ return getGEFWrapper(new SingleQueuedUnit6CreateCommand(req));
+ }
+ if (ComrelElementTypes.SequentialUnit_3070 == req.getElementType()) {
+ return getGEFWrapper(new SequentialUnit6CreateCommand(req));
+ }
+ if (ComrelElementTypes.ConditionalUnit_3071 == req.getElementType()) {
+ return getGEFWrapper(new ConditionalUnit5CreateCommand(req));
+ }
+ if (ComrelElementTypes.AtomicUnit_3074 == req.getElementType()) {
+ return getGEFWrapper(new AtomicUnit5CreateCommand(req));
+ }
+ return super.getCreateCommand(req);
+ }
+
+}
diff --git a/org.eclipse.emf.refactor.comrel.diagram/src/comrel/diagram/edit/policies/SequentialUnitSequentialUnitRefactoringUnitsCompartment6CanonicalEditPolicy.java b/org.eclipse.emf.refactor.comrel.diagram/src/comrel/diagram/edit/policies/SequentialUnitSequentialUnitRefactoringUnitsCompartment6CanonicalEditPolicy.java
new file mode 100644
index 0000000..e9614ab
--- /dev/null
+++ b/org.eclipse.emf.refactor.comrel.diagram/src/comrel/diagram/edit/policies/SequentialUnitSequentialUnitRefactoringUnitsCompartment6CanonicalEditPolicy.java
@@ -0,0 +1,177 @@
+/*
+ *
+ */
+package comrel.diagram.edit.policies;
+
+import java.util.ArrayList;
+import java.util.Collection;
+import java.util.Iterator;
+import java.util.LinkedList;
+import java.util.List;
+
+import org.eclipse.core.runtime.IAdaptable;
+import org.eclipse.emf.ecore.EObject;
+import org.eclipse.emf.ecore.EStructuralFeature;
+import org.eclipse.gef.commands.Command;
+import org.eclipse.gmf.runtime.diagram.core.util.ViewUtil;
+import org.eclipse.gmf.runtime.diagram.ui.commands.DeferredLayoutCommand;
+import org.eclipse.gmf.runtime.diagram.ui.commands.ICommandProxy;
+import org.eclipse.gmf.runtime.diagram.ui.commands.SetViewMutabilityCommand;
+import org.eclipse.gmf.runtime.diagram.ui.editpolicies.CanonicalEditPolicy;
+import org.eclipse.gmf.runtime.diagram.ui.requests.CreateViewRequest;
+import org.eclipse.gmf.runtime.emf.core.util.EObjectAdapter;
+import org.eclipse.gmf.runtime.notation.Node;
+import org.eclipse.gmf.runtime.notation.View;
+
+import comrel.ComrelPackage;
+import comrel.diagram.edit.parts.AtomicUnit5EditPart;
+import comrel.diagram.edit.parts.CartesianQueuedUnit5EditPart;
+import comrel.diagram.edit.parts.ConditionalUnit5EditPart;
+import comrel.diagram.edit.parts.ParallelQueuedUnit6EditPart;
+import comrel.diagram.edit.parts.SequentialUnit6EditPart;
+import comrel.diagram.edit.parts.SingleQueuedUnit6EditPart;
+import comrel.diagram.part.ComrelDiagramUpdater;
+import comrel.diagram.part.ComrelNodeDescriptor;
+import comrel.diagram.part.ComrelVisualIDRegistry;
+
+/**
+ * @generated
+ */
+public class SequentialUnitSequentialUnitRefactoringUnitsCompartment6CanonicalEditPolicy
+ extends CanonicalEditPolicy {
+
+ /**
+ * @generated
+ */
+ protected EStructuralFeature getFeatureToSynchronize() {
+ return ComrelPackage.eINSTANCE.getSequentialUnit_RefactoringUnits();
+ }
+
+ /**
+ * @generated
+ */
+ @SuppressWarnings("rawtypes")
+ protected List getSemanticChildrenList() {
+ View viewObject = (View) getHost().getModel();
+ LinkedList<EObject> result = new LinkedList<EObject>();
+ List<ComrelNodeDescriptor> childDescriptors = ComrelDiagramUpdater
+ .getSequentialUnitSequentialUnitRefactoringUnitsCompartment_7070SemanticChildren(viewObject);
+ for (ComrelNodeDescriptor d : childDescriptors) {
+ result.add(d.getModelElement());
+ }
+ return result;
+ }
+
+ /**
+ * @generated
+ */
+ protected boolean isOrphaned(Collection<EObject> semanticChildren,
+ final View view) {
+ return isMyDiagramElement(view)
+ && !semanticChildren.contains(view.getElement());
+ }
+
+ /**
+ * @generated
+ */
+ private boolean isMyDiagramElement(View view) {
+ int visualID = ComrelVisualIDRegistry.getVisualID(view);
+ switch (visualID) {
+ case CartesianQueuedUnit5EditPart.VISUAL_ID:
+ case ParallelQueuedUnit6EditPart.VISUAL_ID:
+ case SingleQueuedUnit6EditPart.VISUAL_ID:
+ case SequentialUnit6EditPart.VISUAL_ID:
+ case ConditionalUnit5EditPart.VISUAL_ID:
+ case AtomicUnit5EditPart.VISUAL_ID:
+ return true;
+ }
+ return false;
+ }
+
+ /**
+ * @generated
+ */
+ protected void refreshSemantic() {
+ if (resolveSemanticElement() == null) {
+ return;
+ }
+ LinkedList<IAdaptable> createdViews = new LinkedList<IAdaptable>();
+ List<ComrelNodeDescriptor> childDescriptors = ComrelDiagramUpdater
+ .getSequentialUnitSequentialUnitRefactoringUnitsCompartment_7070SemanticChildren((View) getHost()
+ .getModel());
+ LinkedList<View> orphaned = new LinkedList<View>();
+ // we care to check only views we recognize as ours
+ LinkedList<View> knownViewChildren = new LinkedList<View>();
+ for (View v : getViewChildren()) {
+ if (isMyDiagramElement(v)) {
+ knownViewChildren.add(v);
+ }
+ }
+ // alternative to #cleanCanonicalSemanticChildren(getViewChildren(), semanticChildren)
+ //
+ // iteration happens over list of desired semantic elements, trying to find best matching View, while original CEP
+ // iterates views, potentially losing view (size/bounds) information - i.e. if there are few views to reference same EObject, only last one
+ // to answer isOrphaned == true will be used for the domain element representation, see #cleanCanonicalSemanticChildren()
+ for (Iterator<ComrelNodeDescriptor> descriptorsIterator = childDescriptors
+ .iterator(); descriptorsIterator.hasNext();) {
+ ComrelNodeDescriptor next = descriptorsIterator.next();
+ String hint = ComrelVisualIDRegistry.getType(next.getVisualID());
+ LinkedList<View> perfectMatch = new LinkedList<View>(); // both semanticElement and hint match that of NodeDescriptor
+ for (View childView : getViewChildren()) {
+ EObject semanticElement = childView.getElement();
+ if (next.getModelElement().equals(semanticElement)) {
+ if (hint.equals(childView.getType())) {
+ perfectMatch.add(childView);
+ // actually, can stop iteration over view children here, but
+ // may want to use not the first view but last one as a 'real' match (the way original CEP does
+ // with its trick with viewToSemanticMap inside #cleanCanonicalSemanticChildren
+ }
+ }
+ }
+ if (perfectMatch.size() > 0) {
+ descriptorsIterator.remove(); // precise match found no need to create anything for the NodeDescriptor
+ // use only one view (first or last?), keep rest as orphaned for further consideration
+ knownViewChildren.remove(perfectMatch.getFirst());
+ }
+ }
+ // those left in knownViewChildren are subject to removal - they are our diagram elements we didn't find match to,
+ // or those we have potential matches to, and thus need to be recreated, preserving size/location information.
+ orphaned.addAll(knownViewChildren);
+ //
+ ArrayList<CreateViewRequest.ViewDescriptor> viewDescriptors = new ArrayList<CreateViewRequest.ViewDescriptor>(
+ childDescriptors.size());
+ for (ComrelNodeDescriptor next : childDescriptors) {
+ String hint = ComrelVisualIDRegistry.getType(next.getVisualID());
+ IAdaptable elementAdapter = new CanonicalElementAdapter(
+ next.getModelElement(), hint);
+ CreateViewRequest.ViewDescriptor descriptor = new CreateViewRequest.ViewDescriptor(
+ elementAdapter, Node.class, hint, ViewUtil.APPEND, false,
+ host().getDiagramPreferencesHint());
+ viewDescriptors.add(descriptor);
+ }
+
+ boolean changed = deleteViews(orphaned.iterator());
+ //
+ CreateViewRequest request = getCreateViewRequest(viewDescriptors);
+ Command cmd = getCreateViewCommand(request);
+ if (cmd != null && cmd.canExecute()) {
+ SetViewMutabilityCommand.makeMutable(
+ new EObjectAdapter(host().getNotationView())).execute();
+ executeCommand(cmd);
+ @SuppressWarnings("unchecked")
+ List<IAdaptable> nl = (List<IAdaptable>) request.getNewObject();
+ createdViews.addAll(nl);
+ }
+ if (changed || createdViews.size() > 0) {
+ postProcessRefreshSemantic(createdViews);
+ }
+ if (createdViews.size() > 1) {
+ // perform a layout of the container
+ DeferredLayoutCommand layoutCmd = new DeferredLayoutCommand(host()
+ .getEditingDomain(), createdViews, host());
+ executeCommand(new ICommandProxy(layoutCmd));
+ }
+
+ makeViewsImmutable(createdViews);
+ }
+}
diff --git a/org.eclipse.emf.refactor.comrel.diagram/src/comrel/diagram/edit/policies/SequentialUnitSequentialUnitRefactoringUnitsCompartment6ItemSemanticEditPolicy.java b/org.eclipse.emf.refactor.comrel.diagram/src/comrel/diagram/edit/policies/SequentialUnitSequentialUnitRefactoringUnitsCompartment6ItemSemanticEditPolicy.java
new file mode 100644
index 0000000..c535cda
--- /dev/null
+++ b/org.eclipse.emf.refactor.comrel.diagram/src/comrel/diagram/edit/policies/SequentialUnitSequentialUnitRefactoringUnitsCompartment6ItemSemanticEditPolicy.java
@@ -0,0 +1,55 @@
+/*
+ *
+ */
+package comrel.diagram.edit.policies;
+
+import org.eclipse.gef.commands.Command;
+import org.eclipse.gmf.runtime.emf.type.core.requests.CreateElementRequest;
+
+import comrel.diagram.edit.commands.AtomicUnit5CreateCommand;
+import comrel.diagram.edit.commands.CartesianQueuedUnit5CreateCommand;
+import comrel.diagram.edit.commands.ConditionalUnit5CreateCommand;
+import comrel.diagram.edit.commands.ParallelQueuedUnit6CreateCommand;
+import comrel.diagram.edit.commands.SequentialUnit6CreateCommand;
+import comrel.diagram.edit.commands.SingleQueuedUnit6CreateCommand;
+import comrel.diagram.providers.ComrelElementTypes;
+
+/**
+ * @generated
+ */
+public class SequentialUnitSequentialUnitRefactoringUnitsCompartment6ItemSemanticEditPolicy
+ extends ComrelBaseItemSemanticEditPolicy {
+
+ /**
+ * @generated
+ */
+ public SequentialUnitSequentialUnitRefactoringUnitsCompartment6ItemSemanticEditPolicy() {
+ super(ComrelElementTypes.SequentialUnit_3073);
+ }
+
+ /**
+ * @generated
+ */
+ protected Command getCreateCommand(CreateElementRequest req) {
+ if (ComrelElementTypes.CartesianQueuedUnit_3029 == req.getElementType()) {
+ return getGEFWrapper(new CartesianQueuedUnit5CreateCommand(req));
+ }
+ if (ComrelElementTypes.ParallelQueuedUnit_3045 == req.getElementType()) {
+ return getGEFWrapper(new ParallelQueuedUnit6CreateCommand(req));
+ }
+ if (ComrelElementTypes.SingleQueuedUnit_3065 == req.getElementType()) {
+ return getGEFWrapper(new SingleQueuedUnit6CreateCommand(req));
+ }
+ if (ComrelElementTypes.SequentialUnit_3070 == req.getElementType()) {
+ return getGEFWrapper(new SequentialUnit6CreateCommand(req));
+ }
+ if (ComrelElementTypes.ConditionalUnit_3071 == req.getElementType()) {
+ return getGEFWrapper(new ConditionalUnit5CreateCommand(req));
+ }
+ if (ComrelElementTypes.AtomicUnit_3074 == req.getElementType()) {
+ return getGEFWrapper(new AtomicUnit5CreateCommand(req));
+ }
+ return super.getCreateCommand(req);
+ }
+
+}
diff --git a/org.eclipse.emf.refactor.comrel.diagram/src/comrel/diagram/edit/policies/SequentialUnitSequentialUnitRefactoringUnitsCompartment7CanonicalEditPolicy.java b/org.eclipse.emf.refactor.comrel.diagram/src/comrel/diagram/edit/policies/SequentialUnitSequentialUnitRefactoringUnitsCompartment7CanonicalEditPolicy.java
new file mode 100644
index 0000000..fa21611
--- /dev/null
+++ b/org.eclipse.emf.refactor.comrel.diagram/src/comrel/diagram/edit/policies/SequentialUnitSequentialUnitRefactoringUnitsCompartment7CanonicalEditPolicy.java
@@ -0,0 +1,177 @@
+/*
+ *
+ */
+package comrel.diagram.edit.policies;
+
+import java.util.ArrayList;
+import java.util.Collection;
+import java.util.Iterator;
+import java.util.LinkedList;
+import java.util.List;
+
+import org.eclipse.core.runtime.IAdaptable;
+import org.eclipse.emf.ecore.EObject;
+import org.eclipse.emf.ecore.EStructuralFeature;
+import org.eclipse.gef.commands.Command;
+import org.eclipse.gmf.runtime.diagram.core.util.ViewUtil;
+import org.eclipse.gmf.runtime.diagram.ui.commands.DeferredLayoutCommand;
+import org.eclipse.gmf.runtime.diagram.ui.commands.ICommandProxy;
+import org.eclipse.gmf.runtime.diagram.ui.commands.SetViewMutabilityCommand;
+import org.eclipse.gmf.runtime.diagram.ui.editpolicies.CanonicalEditPolicy;
+import org.eclipse.gmf.runtime.diagram.ui.requests.CreateViewRequest;
+import org.eclipse.gmf.runtime.emf.core.util.EObjectAdapter;
+import org.eclipse.gmf.runtime.notation.Node;
+import org.eclipse.gmf.runtime.notation.View;
+
+import comrel.ComrelPackage;
+import comrel.diagram.edit.parts.AtomicUnit5EditPart;
+import comrel.diagram.edit.parts.CartesianQueuedUnit5EditPart;
+import comrel.diagram.edit.parts.ConditionalUnit5EditPart;
+import comrel.diagram.edit.parts.ParallelQueuedUnit6EditPart;
+import comrel.diagram.edit.parts.SequentialUnit6EditPart;
+import comrel.diagram.edit.parts.SingleQueuedUnit6EditPart;
+import comrel.diagram.part.ComrelDiagramUpdater;
+import comrel.diagram.part.ComrelNodeDescriptor;
+import comrel.diagram.part.ComrelVisualIDRegistry;
+
+/**
+ * @generated
+ */
+public class SequentialUnitSequentialUnitRefactoringUnitsCompartment7CanonicalEditPolicy
+ extends CanonicalEditPolicy {
+
+ /**
+ * @generated
+ */
+ protected EStructuralFeature getFeatureToSynchronize() {
+ return ComrelPackage.eINSTANCE.getSequentialUnit_RefactoringUnits();
+ }
+
+ /**
+ * @generated
+ */
+ @SuppressWarnings("rawtypes")
+ protected List getSemanticChildrenList() {
+ View viewObject = (View) getHost().getModel();
+ LinkedList<EObject> result = new LinkedList<EObject>();
+ List<ComrelNodeDescriptor> childDescriptors = ComrelDiagramUpdater
+ .getSequentialUnitSequentialUnitRefactoringUnitsCompartment_7080SemanticChildren(viewObject);
+ for (ComrelNodeDescriptor d : childDescriptors) {
+ result.add(d.getModelElement());
+ }
+ return result;
+ }
+
+ /**
+ * @generated
+ */
+ protected boolean isOrphaned(Collection<EObject> semanticChildren,
+ final View view) {
+ return isMyDiagramElement(view)
+ && !semanticChildren.contains(view.getElement());
+ }
+
+ /**
+ * @generated
+ */
+ private boolean isMyDiagramElement(View view) {
+ int visualID = ComrelVisualIDRegistry.getVisualID(view);
+ switch (visualID) {
+ case CartesianQueuedUnit5EditPart.VISUAL_ID:
+ case ParallelQueuedUnit6EditPart.VISUAL_ID:
+ case SingleQueuedUnit6EditPart.VISUAL_ID:
+ case SequentialUnit6EditPart.VISUAL_ID:
+ case ConditionalUnit5EditPart.VISUAL_ID:
+ case AtomicUnit5EditPart.VISUAL_ID:
+ return true;
+ }
+ return false;
+ }
+
+ /**
+ * @generated
+ */
+ protected void refreshSemantic() {
+ if (resolveSemanticElement() == null) {
+ return;
+ }
+ LinkedList<IAdaptable> createdViews = new LinkedList<IAdaptable>();
+ List<ComrelNodeDescriptor> childDescriptors = ComrelDiagramUpdater
+ .getSequentialUnitSequentialUnitRefactoringUnitsCompartment_7080SemanticChildren((View) getHost()
+ .getModel());
+ LinkedList<View> orphaned = new LinkedList<View>();
+ // we care to check only views we recognize as ours
+ LinkedList<View> knownViewChildren = new LinkedList<View>();
+ for (View v : getViewChildren()) {
+ if (isMyDiagramElement(v)) {
+ knownViewChildren.add(v);
+ }
+ }
+ // alternative to #cleanCanonicalSemanticChildren(getViewChildren(), semanticChildren)
+ //
+ // iteration happens over list of desired semantic elements, trying to find best matching View, while original CEP
+ // iterates views, potentially losing view (size/bounds) information - i.e. if there are few views to reference same EObject, only last one
+ // to answer isOrphaned == true will be used for the domain element representation, see #cleanCanonicalSemanticChildren()
+ for (Iterator<ComrelNodeDescriptor> descriptorsIterator = childDescriptors
+ .iterator(); descriptorsIterator.hasNext();) {
+ ComrelNodeDescriptor next = descriptorsIterator.next();
+ String hint = ComrelVisualIDRegistry.getType(next.getVisualID());
+ LinkedList<View> perfectMatch = new LinkedList<View>(); // both semanticElement and hint match that of NodeDescriptor
+ for (View childView : getViewChildren()) {
+ EObject semanticElement = childView.getElement();
+ if (next.getModelElement().equals(semanticElement)) {
+ if (hint.equals(childView.getType())) {
+ perfectMatch.add(childView);
+ // actually, can stop iteration over view children here, but
+ // may want to use not the first view but last one as a 'real' match (the way original CEP does
+ // with its trick with viewToSemanticMap inside #cleanCanonicalSemanticChildren
+ }
+ }
+ }
+ if (perfectMatch.size() > 0) {
+ descriptorsIterator.remove(); // precise match found no need to create anything for the NodeDescriptor
+ // use only one view (first or last?), keep rest as orphaned for further consideration
+ knownViewChildren.remove(perfectMatch.getFirst());
+ }
+ }
+ // those left in knownViewChildren are subject to removal - they are our diagram elements we didn't find match to,
+ // or those we have potential matches to, and thus need to be recreated, preserving size/location information.
+ orphaned.addAll(knownViewChildren);
+ //
+ ArrayList<CreateViewRequest.ViewDescriptor> viewDescriptors = new ArrayList<CreateViewRequest.ViewDescriptor>(
+ childDescriptors.size());
+ for (ComrelNodeDescriptor next : childDescriptors) {
+ String hint = ComrelVisualIDRegistry.getType(next.getVisualID());
+ IAdaptable elementAdapter = new CanonicalElementAdapter(
+ next.getModelElement(), hint);
+ CreateViewRequest.ViewDescriptor descriptor = new CreateViewRequest.ViewDescriptor(
+ elementAdapter, Node.class, hint, ViewUtil.APPEND, false,
+ host().getDiagramPreferencesHint());
+ viewDescriptors.add(descriptor);
+ }
+
+ boolean changed = deleteViews(orphaned.iterator());
+ //
+ CreateViewRequest request = getCreateViewRequest(viewDescriptors);
+ Command cmd = getCreateViewCommand(request);
+ if (cmd != null && cmd.canExecute()) {
+ SetViewMutabilityCommand.makeMutable(
+ new EObjectAdapter(host().getNotationView())).execute();
+ executeCommand(cmd);
+ @SuppressWarnings("unchecked")
+ List<IAdaptable> nl = (List<IAdaptable>) request.getNewObject();
+ createdViews.addAll(nl);
+ }
+ if (changed || createdViews.size() > 0) {
+ postProcessRefreshSemantic(createdViews);
+ }
+ if (createdViews.size() > 1) {
+ // perform a layout of the container
+ DeferredLayoutCommand layoutCmd = new DeferredLayoutCommand(host()
+ .getEditingDomain(), createdViews, host());
+ executeCommand(new ICommandProxy(layoutCmd));
+ }
+
+ makeViewsImmutable(createdViews);
+ }
+}
diff --git a/org.eclipse.emf.refactor.comrel.diagram/src/comrel/diagram/edit/policies/SequentialUnitSequentialUnitRefactoringUnitsCompartment7ItemSemanticEditPolicy.java b/org.eclipse.emf.refactor.comrel.diagram/src/comrel/diagram/edit/policies/SequentialUnitSequentialUnitRefactoringUnitsCompartment7ItemSemanticEditPolicy.java
new file mode 100644
index 0000000..9704343
--- /dev/null
+++ b/org.eclipse.emf.refactor.comrel.diagram/src/comrel/diagram/edit/policies/SequentialUnitSequentialUnitRefactoringUnitsCompartment7ItemSemanticEditPolicy.java
@@ -0,0 +1,55 @@
+/*
+ *
+ */
+package comrel.diagram.edit.policies;
+
+import org.eclipse.gef.commands.Command;
+import org.eclipse.gmf.runtime.emf.type.core.requests.CreateElementRequest;
+
+import comrel.diagram.edit.commands.AtomicUnit5CreateCommand;
+import comrel.diagram.edit.commands.CartesianQueuedUnit5CreateCommand;
+import comrel.diagram.edit.commands.ConditionalUnit5CreateCommand;
+import comrel.diagram.edit.commands.ParallelQueuedUnit6CreateCommand;
+import comrel.diagram.edit.commands.SequentialUnit6CreateCommand;
+import comrel.diagram.edit.commands.SingleQueuedUnit6CreateCommand;
+import comrel.diagram.providers.ComrelElementTypes;
+
+/**
+ * @generated
+ */
+public class SequentialUnitSequentialUnitRefactoringUnitsCompartment7ItemSemanticEditPolicy
+ extends ComrelBaseItemSemanticEditPolicy {
+
+ /**
+ * @generated
+ */
+ public SequentialUnitSequentialUnitRefactoringUnitsCompartment7ItemSemanticEditPolicy() {
+ super(ComrelElementTypes.SequentialUnit_2005);
+ }
+
+ /**
+ * @generated
+ */
+ protected Command getCreateCommand(CreateElementRequest req) {
+ if (ComrelElementTypes.CartesianQueuedUnit_3029 == req.getElementType()) {
+ return getGEFWrapper(new CartesianQueuedUnit5CreateCommand(req));
+ }
+ if (ComrelElementTypes.ParallelQueuedUnit_3045 == req.getElementType()) {
+ return getGEFWrapper(new ParallelQueuedUnit6CreateCommand(req));
+ }
+ if (ComrelElementTypes.SingleQueuedUnit_3065 == req.getElementType()) {
+ return getGEFWrapper(new SingleQueuedUnit6CreateCommand(req));
+ }
+ if (ComrelElementTypes.SequentialUnit_3070 == req.getElementType()) {
+ return getGEFWrapper(new SequentialUnit6CreateCommand(req));
+ }
+ if (ComrelElementTypes.ConditionalUnit_3071 == req.getElementType()) {
+ return getGEFWrapper(new ConditionalUnit5CreateCommand(req));
+ }
+ if (ComrelElementTypes.AtomicUnit_3074 == req.getElementType()) {
+ return getGEFWrapper(new AtomicUnit5CreateCommand(req));
+ }
+ return super.getCreateCommand(req);
+ }
+
+}
diff --git a/org.eclipse.emf.refactor.comrel.diagram/src/comrel/diagram/edit/policies/SequentialUnitSequentialUnitRefactoringUnitsCompartmentCanonicalEditPolicy.java b/org.eclipse.emf.refactor.comrel.diagram/src/comrel/diagram/edit/policies/SequentialUnitSequentialUnitRefactoringUnitsCompartmentCanonicalEditPolicy.java
new file mode 100644
index 0000000..6d899e4
--- /dev/null
+++ b/org.eclipse.emf.refactor.comrel.diagram/src/comrel/diagram/edit/policies/SequentialUnitSequentialUnitRefactoringUnitsCompartmentCanonicalEditPolicy.java
@@ -0,0 +1,177 @@
+/*
+ *
+ */
+package comrel.diagram.edit.policies;
+
+import java.util.ArrayList;
+import java.util.Collection;
+import java.util.Iterator;
+import java.util.LinkedList;
+import java.util.List;
+
+import org.eclipse.core.runtime.IAdaptable;
+import org.eclipse.emf.ecore.EObject;
+import org.eclipse.emf.ecore.EStructuralFeature;
+import org.eclipse.gef.commands.Command;
+import org.eclipse.gmf.runtime.diagram.core.util.ViewUtil;
+import org.eclipse.gmf.runtime.diagram.ui.commands.DeferredLayoutCommand;
+import org.eclipse.gmf.runtime.diagram.ui.commands.ICommandProxy;
+import org.eclipse.gmf.runtime.diagram.ui.commands.SetViewMutabilityCommand;
+import org.eclipse.gmf.runtime.diagram.ui.editpolicies.CanonicalEditPolicy;
+import org.eclipse.gmf.runtime.diagram.ui.requests.CreateViewRequest;
+import org.eclipse.gmf.runtime.emf.core.util.EObjectAdapter;
+import org.eclipse.gmf.runtime.notation.Node;
+import org.eclipse.gmf.runtime.notation.View;
+
+import comrel.ComrelPackage;
+import comrel.diagram.edit.parts.AtomicUnit5EditPart;
+import comrel.diagram.edit.parts.CartesianQueuedUnit5EditPart;
+import comrel.diagram.edit.parts.ConditionalUnit5EditPart;
+import comrel.diagram.edit.parts.ParallelQueuedUnit6EditPart;
+import comrel.diagram.edit.parts.SequentialUnit6EditPart;
+import comrel.diagram.edit.parts.SingleQueuedUnit6EditPart;
+import comrel.diagram.part.ComrelDiagramUpdater;
+import comrel.diagram.part.ComrelNodeDescriptor;
+import comrel.diagram.part.ComrelVisualIDRegistry;
+
+/**
+ * @generated
+ */
+public class SequentialUnitSequentialUnitRefactoringUnitsCompartmentCanonicalEditPolicy
+ extends CanonicalEditPolicy {
+
+ /**
+ * @generated
+ */
+ protected EStructuralFeature getFeatureToSynchronize() {
+ return ComrelPackage.eINSTANCE.getSequentialUnit_RefactoringUnits();
+ }
+
+ /**
+ * @generated
+ */
+ @SuppressWarnings("rawtypes")
+ protected List getSemanticChildrenList() {
+ View viewObject = (View) getHost().getModel();
+ LinkedList<EObject> result = new LinkedList<EObject>();
+ List<ComrelNodeDescriptor> childDescriptors = ComrelDiagramUpdater
+ .getSequentialUnitSequentialUnitRefactoringUnitsCompartment_7014SemanticChildren(viewObject);
+ for (ComrelNodeDescriptor d : childDescriptors) {
+ result.add(d.getModelElement());
+ }
+ return result;
+ }
+
+ /**
+ * @generated
+ */
+ protected boolean isOrphaned(Collection<EObject> semanticChildren,
+ final View view) {
+ return isMyDiagramElement(view)
+ && !semanticChildren.contains(view.getElement());
+ }
+
+ /**
+ * @generated
+ */
+ private boolean isMyDiagramElement(View view) {
+ int visualID = ComrelVisualIDRegistry.getVisualID(view);
+ switch (visualID) {
+ case CartesianQueuedUnit5EditPart.VISUAL_ID:
+ case ParallelQueuedUnit6EditPart.VISUAL_ID:
+ case SingleQueuedUnit6EditPart.VISUAL_ID:
+ case SequentialUnit6EditPart.VISUAL_ID:
+ case ConditionalUnit5EditPart.VISUAL_ID:
+ case AtomicUnit5EditPart.VISUAL_ID:
+ return true;
+ }
+ return false;
+ }
+
+ /**
+ * @generated
+ */
+ protected void refreshSemantic() {
+ if (resolveSemanticElement() == null) {
+ return;
+ }
+ LinkedList<IAdaptable> createdViews = new LinkedList<IAdaptable>();
+ List<ComrelNodeDescriptor> childDescriptors = ComrelDiagramUpdater
+ .getSequentialUnitSequentialUnitRefactoringUnitsCompartment_7014SemanticChildren((View) getHost()
+ .getModel());
+ LinkedList<View> orphaned = new LinkedList<View>();
+ // we care to check only views we recognize as ours
+ LinkedList<View> knownViewChildren = new LinkedList<View>();
+ for (View v : getViewChildren()) {
+ if (isMyDiagramElement(v)) {
+ knownViewChildren.add(v);
+ }
+ }
+ // alternative to #cleanCanonicalSemanticChildren(getViewChildren(), semanticChildren)
+ //
+ // iteration happens over list of desired semantic elements, trying to find best matching View, while original CEP
+ // iterates views, potentially losing view (size/bounds) information - i.e. if there are few views to reference same EObject, only last one
+ // to answer isOrphaned == true will be used for the domain element representation, see #cleanCanonicalSemanticChildren()
+ for (Iterator<ComrelNodeDescriptor> descriptorsIterator = childDescriptors
+ .iterator(); descriptorsIterator.hasNext();) {
+ ComrelNodeDescriptor next = descriptorsIterator.next();
+ String hint = ComrelVisualIDRegistry.getType(next.getVisualID());
+ LinkedList<View> perfectMatch = new LinkedList<View>(); // both semanticElement and hint match that of NodeDescriptor
+ for (View childView : getViewChildren()) {
+ EObject semanticElement = childView.getElement();
+ if (next.getModelElement().equals(semanticElement)) {
+ if (hint.equals(childView.getType())) {
+ perfectMatch.add(childView);
+ // actually, can stop iteration over view children here, but
+ // may want to use not the first view but last one as a 'real' match (the way original CEP does
+ // with its trick with viewToSemanticMap inside #cleanCanonicalSemanticChildren
+ }
+ }
+ }
+ if (perfectMatch.size() > 0) {
+ descriptorsIterator.remove(); // precise match found no need to create anything for the NodeDescriptor
+ // use only one view (first or last?), keep rest as orphaned for further consideration
+ knownViewChildren.remove(perfectMatch.getFirst());
+ }
+ }
+ // those left in knownViewChildren are subject to removal - they are our diagram elements we didn't find match to,
+ // or those we have potential matches to, and thus need to be recreated, preserving size/location information.
+ orphaned.addAll(knownViewChildren);
+ //
+ ArrayList<CreateViewRequest.ViewDescriptor> viewDescriptors = new ArrayList<CreateViewRequest.ViewDescriptor>(
+ childDescriptors.size());
+ for (ComrelNodeDescriptor next : childDescriptors) {
+ String hint = ComrelVisualIDRegistry.getType(next.getVisualID());
+ IAdaptable elementAdapter = new CanonicalElementAdapter(
+ next.getModelElement(), hint);
+ CreateViewRequest.ViewDescriptor descriptor = new CreateViewRequest.ViewDescriptor(
+ elementAdapter, Node.class, hint, ViewUtil.APPEND, false,
+ host().getDiagramPreferencesHint());
+ viewDescriptors.add(descriptor);
+ }
+
+ boolean changed = deleteViews(orphaned.iterator());
+ //
+ CreateViewRequest request = getCreateViewRequest(viewDescriptors);
+ Command cmd = getCreateViewCommand(request);
+ if (cmd != null && cmd.canExecute()) {
+ SetViewMutabilityCommand.makeMutable(
+ new EObjectAdapter(host().getNotationView())).execute();
+ executeCommand(cmd);
+ @SuppressWarnings("unchecked")
+ List<IAdaptable> nl = (List<IAdaptable>) request.getNewObject();
+ createdViews.addAll(nl);
+ }
+ if (changed || createdViews.size() > 0) {
+ postProcessRefreshSemantic(createdViews);
+ }
+ if (createdViews.size() > 1) {
+ // perform a layout of the container
+ DeferredLayoutCommand layoutCmd = new DeferredLayoutCommand(host()
+ .getEditingDomain(), createdViews, host());
+ executeCommand(new ICommandProxy(layoutCmd));
+ }
+
+ makeViewsImmutable(createdViews);
+ }
+}
diff --git a/org.eclipse.emf.refactor.comrel.diagram/src/comrel/diagram/edit/policies/SequentialUnitSequentialUnitRefactoringUnitsCompartmentItemSemanticEditPolicy.java b/org.eclipse.emf.refactor.comrel.diagram/src/comrel/diagram/edit/policies/SequentialUnitSequentialUnitRefactoringUnitsCompartmentItemSemanticEditPolicy.java
new file mode 100644
index 0000000..3ce3284
--- /dev/null
+++ b/org.eclipse.emf.refactor.comrel.diagram/src/comrel/diagram/edit/policies/SequentialUnitSequentialUnitRefactoringUnitsCompartmentItemSemanticEditPolicy.java
@@ -0,0 +1,55 @@
+/*
+ *
+ */
+package comrel.diagram.edit.policies;
+
+import org.eclipse.gef.commands.Command;
+import org.eclipse.gmf.runtime.emf.type.core.requests.CreateElementRequest;
+
+import comrel.diagram.edit.commands.AtomicUnit5CreateCommand;
+import comrel.diagram.edit.commands.CartesianQueuedUnit5CreateCommand;
+import comrel.diagram.edit.commands.ConditionalUnit5CreateCommand;
+import comrel.diagram.edit.commands.ParallelQueuedUnit6CreateCommand;
+import comrel.diagram.edit.commands.SequentialUnit6CreateCommand;
+import comrel.diagram.edit.commands.SingleQueuedUnit6CreateCommand;
+import comrel.diagram.providers.ComrelElementTypes;
+
+/**
+ * @generated
+ */
+public class SequentialUnitSequentialUnitRefactoringUnitsCompartmentItemSemanticEditPolicy
+ extends ComrelBaseItemSemanticEditPolicy {
+
+ /**
+ * @generated
+ */
+ public SequentialUnitSequentialUnitRefactoringUnitsCompartmentItemSemanticEditPolicy() {
+ super(ComrelElementTypes.SequentialUnit_3026);
+ }
+
+ /**
+ * @generated
+ */
+ protected Command getCreateCommand(CreateElementRequest req) {
+ if (ComrelElementTypes.CartesianQueuedUnit_3029 == req.getElementType()) {
+ return getGEFWrapper(new CartesianQueuedUnit5CreateCommand(req));
+ }
+ if (ComrelElementTypes.ParallelQueuedUnit_3045 == req.getElementType()) {
+ return getGEFWrapper(new ParallelQueuedUnit6CreateCommand(req));
+ }
+ if (ComrelElementTypes.SingleQueuedUnit_3065 == req.getElementType()) {
+ return getGEFWrapper(new SingleQueuedUnit6CreateCommand(req));
+ }
+ if (ComrelElementTypes.SequentialUnit_3070 == req.getElementType()) {
+ return getGEFWrapper(new SequentialUnit6CreateCommand(req));
+ }
+ if (ComrelElementTypes.ConditionalUnit_3071 == req.getElementType()) {
+ return getGEFWrapper(new ConditionalUnit5CreateCommand(req));
+ }
+ if (ComrelElementTypes.AtomicUnit_3074 == req.getElementType()) {
+ return getGEFWrapper(new AtomicUnit5CreateCommand(req));
+ }
+ return super.getCreateCommand(req);
+ }
+
+}
diff --git a/org.eclipse.emf.refactor.comrel.diagram/src/comrel/diagram/edit/policies/SingleFeatureUnit2CanonicalEditPolicy.java b/org.eclipse.emf.refactor.comrel.diagram/src/comrel/diagram/edit/policies/SingleFeatureUnit2CanonicalEditPolicy.java
new file mode 100644
index 0000000..70cc6b3
--- /dev/null
+++ b/org.eclipse.emf.refactor.comrel.diagram/src/comrel/diagram/edit/policies/SingleFeatureUnit2CanonicalEditPolicy.java
@@ -0,0 +1,182 @@
+/*
+ *
+ */
+package comrel.diagram.edit.policies;
+
+import java.util.ArrayList;
+import java.util.Collection;
+import java.util.HashSet;
+import java.util.Iterator;
+import java.util.LinkedList;
+import java.util.List;
+import java.util.Set;
+
+import org.eclipse.core.runtime.IAdaptable;
+import org.eclipse.emf.ecore.EObject;
+import org.eclipse.emf.ecore.EStructuralFeature;
+import org.eclipse.gef.commands.Command;
+import org.eclipse.gmf.runtime.diagram.core.util.ViewUtil;
+import org.eclipse.gmf.runtime.diagram.ui.commands.DeferredLayoutCommand;
+import org.eclipse.gmf.runtime.diagram.ui.commands.ICommandProxy;
+import org.eclipse.gmf.runtime.diagram.ui.commands.SetViewMutabilityCommand;
+import org.eclipse.gmf.runtime.diagram.ui.editpolicies.CanonicalEditPolicy;
+import org.eclipse.gmf.runtime.diagram.ui.requests.CreateViewRequest;
+import org.eclipse.gmf.runtime.emf.core.util.EObjectAdapter;
+import org.eclipse.gmf.runtime.notation.Node;
+import org.eclipse.gmf.runtime.notation.View;
+
+import comrel.ComrelPackage;
+import comrel.diagram.edit.parts.MultiInputPort3EditPart;
+import comrel.diagram.edit.parts.SingleInputPort4EditPart;
+import comrel.diagram.edit.parts.SingleOutputPortEditPart;
+import comrel.diagram.part.ComrelDiagramUpdater;
+import comrel.diagram.part.ComrelNodeDescriptor;
+import comrel.diagram.part.ComrelVisualIDRegistry;
+
+/**
+ * @generated
+ */
+public class SingleFeatureUnit2CanonicalEditPolicy extends CanonicalEditPolicy {
+
+ /**
+ * @generated
+ */
+ private Set<EStructuralFeature> myFeaturesToSynchronize;
+
+ /**
+ * @generated
+ */
+ protected Set getFeaturesToSynchronize() {
+ if (myFeaturesToSynchronize == null) {
+ myFeaturesToSynchronize = new HashSet<EStructuralFeature>();
+ myFeaturesToSynchronize.add(ComrelPackage.eINSTANCE
+ .getSingleFeatureUnit_InputPort());
+ myFeaturesToSynchronize.add(ComrelPackage.eINSTANCE
+ .getSingleFeatureUnit_SecondaryInputPorts());
+ myFeaturesToSynchronize.add(ComrelPackage.eINSTANCE
+ .getSingleFeatureUnit_OutputPort());
+ }
+ return myFeaturesToSynchronize;
+ }
+
+ /**
+ * @generated
+ */
+ @SuppressWarnings("rawtypes")
+ protected List getSemanticChildrenList() {
+ View viewObject = (View) getHost().getModel();
+ LinkedList<EObject> result = new LinkedList<EObject>();
+ List<ComrelNodeDescriptor> childDescriptors = ComrelDiagramUpdater
+ .getSingleFeatureUnit_3038SemanticChildren(viewObject);
+ for (ComrelNodeDescriptor d : childDescriptors) {
+ result.add(d.getModelElement());
+ }
+ return result;
+ }
+
+ /**
+ * @generated
+ */
+ protected boolean isOrphaned(Collection<EObject> semanticChildren,
+ final View view) {
+ return isMyDiagramElement(view)
+ && !semanticChildren.contains(view.getElement());
+ }
+
+ /**
+ * @generated
+ */
+ private boolean isMyDiagramElement(View view) {
+ int visualID = ComrelVisualIDRegistry.getVisualID(view);
+ return visualID == SingleInputPort4EditPart.VISUAL_ID
+ || visualID == MultiInputPort3EditPart.VISUAL_ID
+ || visualID == SingleOutputPortEditPart.VISUAL_ID;
+ }
+
+ /**
+ * @generated
+ */
+ protected void refreshSemantic() {
+ if (resolveSemanticElement() == null) {
+ return;
+ }
+ LinkedList<IAdaptable> createdViews = new LinkedList<IAdaptable>();
+ List<ComrelNodeDescriptor> childDescriptors = ComrelDiagramUpdater
+ .getSingleFeatureUnit_3038SemanticChildren((View) getHost()
+ .getModel());
+ LinkedList<View> orphaned = new LinkedList<View>();
+ // we care to check only views we recognize as ours
+ LinkedList<View> knownViewChildren = new LinkedList<View>();
+ for (View v : getViewChildren()) {
+ if (isMyDiagramElement(v)) {
+ knownViewChildren.add(v);
+ }
+ }
+ // alternative to #cleanCanonicalSemanticChildren(getViewChildren(), semanticChildren)
+ //
+ // iteration happens over list of desired semantic elements, trying to find best matching View, while original CEP
+ // iterates views, potentially losing view (size/bounds) information - i.e. if there are few views to reference same EObject, only last one
+ // to answer isOrphaned == true will be used for the domain element representation, see #cleanCanonicalSemanticChildren()
+ for (Iterator<ComrelNodeDescriptor> descriptorsIterator = childDescriptors
+ .iterator(); descriptorsIterator.hasNext();) {
+ ComrelNodeDescriptor next = descriptorsIterator.next();
+ String hint = ComrelVisualIDRegistry.getType(next.getVisualID());
+ LinkedList<View> perfectMatch = new LinkedList<View>(); // both semanticElement and hint match that of NodeDescriptor
+ for (View childView : getViewChildren()) {
+ EObject semanticElement = childView.getElement();
+ if (next.getModelElement().equals(semanticElement)) {
+ if (hint.equals(childView.getType())) {
+ perfectMatch.add(childView);
+ // actually, can stop iteration over view children here, but
+ // may want to use not the first view but last one as a 'real' match (the way original CEP does
+ // with its trick with viewToSemanticMap inside #cleanCanonicalSemanticChildren
+ }
+ }
+ }
+ if (perfectMatch.size() > 0) {
+ descriptorsIterator.remove(); // precise match found no need to create anything for the NodeDescriptor
+ // use only one view (first or last?), keep rest as orphaned for further consideration
+ knownViewChildren.remove(perfectMatch.getFirst());
+ }
+ }
+ // those left in knownViewChildren are subject to removal - they are our diagram elements we didn't find match to,
+ // or those we have potential matches to, and thus need to be recreated, preserving size/location information.
+ orphaned.addAll(knownViewChildren);
+ //
+ ArrayList<CreateViewRequest.ViewDescriptor> viewDescriptors = new ArrayList<CreateViewRequest.ViewDescriptor>(
+ childDescriptors.size());
+ for (ComrelNodeDescriptor next : childDescriptors) {
+ String hint = ComrelVisualIDRegistry.getType(next.getVisualID());
+ IAdaptable elementAdapter = new CanonicalElementAdapter(
+ next.getModelElement(), hint);
+ CreateViewRequest.ViewDescriptor descriptor = new CreateViewRequest.ViewDescriptor(
+ elementAdapter, Node.class, hint, ViewUtil.APPEND, false,
+ host().getDiagramPreferencesHint());
+ viewDescriptors.add(descriptor);
+ }
+
+ boolean changed = deleteViews(orphaned.iterator());
+ //
+ CreateViewRequest request = getCreateViewRequest(viewDescriptors);
+ Command cmd = getCreateViewCommand(request);
+ if (cmd != null && cmd.canExecute()) {
+ SetViewMutabilityCommand.makeMutable(
+ new EObjectAdapter(host().getNotationView())).execute();
+ executeCommand(cmd);
+ @SuppressWarnings("unchecked")
+ List<IAdaptable> nl = (List<IAdaptable>) request.getNewObject();
+ createdViews.addAll(nl);
+ }
+ if (changed || createdViews.size() > 0) {
+ postProcessRefreshSemantic(createdViews);
+ }
+ if (createdViews.size() > 1) {
+ // perform a layout of the container
+ DeferredLayoutCommand layoutCmd = new DeferredLayoutCommand(host()
+ .getEditingDomain(), createdViews, host());
+ executeCommand(new ICommandProxy(layoutCmd));
+ }
+
+ makeViewsImmutable(createdViews);
+ }
+}
diff --git a/org.eclipse.emf.refactor.comrel.diagram/src/comrel/diagram/edit/policies/SingleFeatureUnit2ItemSemanticEditPolicy.java b/org.eclipse.emf.refactor.comrel.diagram/src/comrel/diagram/edit/policies/SingleFeatureUnit2ItemSemanticEditPolicy.java
new file mode 100644
index 0000000..4acac9b
--- /dev/null
+++ b/org.eclipse.emf.refactor.comrel.diagram/src/comrel/diagram/edit/policies/SingleFeatureUnit2ItemSemanticEditPolicy.java
@@ -0,0 +1,188 @@
+/*
+ *
+ */
+package comrel.diagram.edit.policies;
+
+import java.util.Iterator;
+
+import org.eclipse.emf.ecore.EAnnotation;
+import org.eclipse.gef.commands.Command;
+import org.eclipse.gmf.runtime.common.core.command.ICompositeCommand;
+import org.eclipse.gmf.runtime.diagram.core.commands.DeleteCommand;
+import org.eclipse.gmf.runtime.emf.commands.core.command.CompositeTransactionalCommand;
+import org.eclipse.gmf.runtime.emf.type.core.commands.DestroyElementCommand;
+import org.eclipse.gmf.runtime.emf.type.core.requests.CreateElementRequest;
+import org.eclipse.gmf.runtime.emf.type.core.requests.DestroyElementRequest;
+import org.eclipse.gmf.runtime.notation.Edge;
+import org.eclipse.gmf.runtime.notation.Node;
+import org.eclipse.gmf.runtime.notation.View;
+
+import comrel.diagram.edit.commands.MultiInputPort3CreateCommand;
+import comrel.diagram.edit.commands.SingleInputPort4CreateCommand;
+import comrel.diagram.edit.commands.SingleOutputPortCreateCommand;
+import comrel.diagram.edit.parts.MultiInputPort3EditPart;
+import comrel.diagram.edit.parts.MultiPortMappingEditPart;
+import comrel.diagram.edit.parts.MultiSinglePortMappingEditPart;
+import comrel.diagram.edit.parts.SingleInputPort4EditPart;
+import comrel.diagram.edit.parts.SingleOutputPortEditPart;
+import comrel.diagram.edit.parts.SinglePortMappingEditPart;
+import comrel.diagram.part.ComrelVisualIDRegistry;
+import comrel.diagram.providers.ComrelElementTypes;
+
+/**
+ * @generated
+ */
+public class SingleFeatureUnit2ItemSemanticEditPolicy extends
+ ComrelBaseItemSemanticEditPolicy {
+
+ /**
+ * @generated
+ */
+ public SingleFeatureUnit2ItemSemanticEditPolicy() {
+ super(ComrelElementTypes.SingleFeatureUnit_3038);
+ }
+
+ /**
+ * @generated
+ */
+ protected Command getCreateCommand(CreateElementRequest req) {
+ if (ComrelElementTypes.SingleInputPort_3009 == req.getElementType()) {
+ return getGEFWrapper(new SingleInputPort4CreateCommand(req));
+ }
+ if (ComrelElementTypes.MultiInputPort_3010 == req.getElementType()) {
+ return getGEFWrapper(new MultiInputPort3CreateCommand(req));
+ }
+ if (ComrelElementTypes.SingleOutputPort_3011 == req.getElementType()) {
+ return getGEFWrapper(new SingleOutputPortCreateCommand(req));
+ }
+ return super.getCreateCommand(req);
+ }
+
+ /**
+ * @generated
+ */
+ protected Command getDestroyElementCommand(DestroyElementRequest req) {
+ View view = (View) getHost().getModel();
+ CompositeTransactionalCommand cmd = new CompositeTransactionalCommand(
+ getEditingDomain(), null);
+ cmd.setTransactionNestingEnabled(false);
+ EAnnotation annotation = view.getEAnnotation("Shortcut"); //$NON-NLS-1$
+ if (annotation == null) {
+ // there are indirectly referenced children, need extra commands: false
+ addDestroyChildNodesCommand(cmd);
+ addDestroyShortcutsCommand(cmd, view);
+ // delete host element
+ cmd.add(new DestroyElementCommand(req));
+ } else {
+ cmd.add(new DeleteCommand(getEditingDomain(), view));
+ }
+ return getGEFWrapper(cmd.reduce());
+ }
+
+ /**
+ * @generated
+ */
+ private void addDestroyChildNodesCommand(ICompositeCommand cmd) {
+ View view = (View) getHost().getModel();
+ for (Iterator<?> nit = view.getChildren().iterator(); nit.hasNext();) {
+ Node node = (Node) nit.next();
+ switch (ComrelVisualIDRegistry.getVisualID(node)) {
+ case SingleInputPort4EditPart.VISUAL_ID:
+ for (Iterator<?> it = node.getTargetEdges().iterator(); it
+ .hasNext();) {
+ Edge incomingLink = (Edge) it.next();
+ if (ComrelVisualIDRegistry.getVisualID(incomingLink) == SinglePortMappingEditPart.VISUAL_ID) {
+ DestroyElementRequest r = new DestroyElementRequest(
+ incomingLink.getElement(), false);
+ cmd.add(new DestroyElementCommand(r));
+ cmd.add(new DeleteCommand(getEditingDomain(),
+ incomingLink));
+ continue;
+ }
+ if (ComrelVisualIDRegistry.getVisualID(incomingLink) == MultiSinglePortMappingEditPart.VISUAL_ID) {
+ DestroyElementRequest r = new DestroyElementRequest(
+ incomingLink.getElement(), false);
+ cmd.add(new DestroyElementCommand(r));
+ cmd.add(new DeleteCommand(getEditingDomain(),
+ incomingLink));
+ continue;
+ }
+ }
+ for (Iterator<?> it = node.getSourceEdges().iterator(); it
+ .hasNext();) {
+ Edge outgoingLink = (Edge) it.next();
+ if (ComrelVisualIDRegistry.getVisualID(outgoingLink) == SinglePortMappingEditPart.VISUAL_ID) {
+ DestroyElementRequest r = new DestroyElementRequest(
+ outgoingLink.getElement(), false);
+ cmd.add(new DestroyElementCommand(r));
+ cmd.add(new DeleteCommand(getEditingDomain(),
+ outgoingLink));
+ continue;
+ }
+ }
+ cmd.add(new DestroyElementCommand(new DestroyElementRequest(
+ getEditingDomain(), node.getElement(), false))); // directlyOwned: true
+ // don't need explicit deletion of node as parent's view deletion would clean child views as well
+ // cmd.add(new org.eclipse.gmf.runtime.diagram.core.commands.DeleteCommand(getEditingDomain(), node));
+ break;
+ case MultiInputPort3EditPart.VISUAL_ID:
+ for (Iterator<?> it = node.getTargetEdges().iterator(); it
+ .hasNext();) {
+ Edge incomingLink = (Edge) it.next();
+ if (ComrelVisualIDRegistry.getVisualID(incomingLink) == MultiPortMappingEditPart.VISUAL_ID) {
+ DestroyElementRequest r = new DestroyElementRequest(
+ incomingLink.getElement(), false);
+ cmd.add(new DestroyElementCommand(r));
+ cmd.add(new DeleteCommand(getEditingDomain(),
+ incomingLink));
+ continue;
+ }
+ }
+ for (Iterator<?> it = node.getSourceEdges().iterator(); it
+ .hasNext();) {
+ Edge outgoingLink = (Edge) it.next();
+ if (ComrelVisualIDRegistry.getVisualID(outgoingLink) == MultiPortMappingEditPart.VISUAL_ID) {
+ DestroyElementRequest r = new DestroyElementRequest(
+ outgoingLink.getElement(), false);
+ cmd.add(new DestroyElementCommand(r));
+ cmd.add(new DeleteCommand(getEditingDomain(),
+ outgoingLink));
+ continue;
+ }
+ if (ComrelVisualIDRegistry.getVisualID(outgoingLink) == MultiSinglePortMappingEditPart.VISUAL_ID) {
+ DestroyElementRequest r = new DestroyElementRequest(
+ outgoingLink.getElement(), false);
+ cmd.add(new DestroyElementCommand(r));
+ cmd.add(new DeleteCommand(getEditingDomain(),
+ outgoingLink));
+ continue;
+ }
+ }
+ cmd.add(new DestroyElementCommand(new DestroyElementRequest(
+ getEditingDomain(), node.getElement(), false))); // directlyOwned: true
+ // don't need explicit deletion of node as parent's view deletion would clean child views as well
+ // cmd.add(new org.eclipse.gmf.runtime.diagram.core.commands.DeleteCommand(getEditingDomain(), node));
+ break;
+ case SingleOutputPortEditPart.VISUAL_ID:
+ for (Iterator<?> it = node.getSourceEdges().iterator(); it
+ .hasNext();) {
+ Edge outgoingLink = (Edge) it.next();
+ if (ComrelVisualIDRegistry.getVisualID(outgoingLink) == SinglePortMappingEditPart.VISUAL_ID) {
+ DestroyElementRequest r = new DestroyElementRequest(
+ outgoingLink.getElement(), false);
+ cmd.add(new DestroyElementCommand(r));
+ cmd.add(new DeleteCommand(getEditingDomain(),
+ outgoingLink));
+ continue;
+ }
+ }
+ cmd.add(new DestroyElementCommand(new DestroyElementRequest(
+ getEditingDomain(), node.getElement(), false))); // directlyOwned: true
+ // don't need explicit deletion of node as parent's view deletion would clean child views as well
+ // cmd.add(new org.eclipse.gmf.runtime.diagram.core.commands.DeleteCommand(getEditingDomain(), node));
+ break;
+ }
+ }
+ }
+
+}
diff --git a/org.eclipse.emf.refactor.comrel.diagram/src/comrel/diagram/edit/policies/SingleFeatureUnit3CanonicalEditPolicy.java b/org.eclipse.emf.refactor.comrel.diagram/src/comrel/diagram/edit/policies/SingleFeatureUnit3CanonicalEditPolicy.java
new file mode 100644
index 0000000..f5d079c
--- /dev/null
+++ b/org.eclipse.emf.refactor.comrel.diagram/src/comrel/diagram/edit/policies/SingleFeatureUnit3CanonicalEditPolicy.java
@@ -0,0 +1,182 @@
+/*
+ *
+ */
+package comrel.diagram.edit.policies;
+
+import java.util.ArrayList;
+import java.util.Collection;
+import java.util.HashSet;
+import java.util.Iterator;
+import java.util.LinkedList;
+import java.util.List;
+import java.util.Set;
+
+import org.eclipse.core.runtime.IAdaptable;
+import org.eclipse.emf.ecore.EObject;
+import org.eclipse.emf.ecore.EStructuralFeature;
+import org.eclipse.gef.commands.Command;
+import org.eclipse.gmf.runtime.diagram.core.util.ViewUtil;
+import org.eclipse.gmf.runtime.diagram.ui.commands.DeferredLayoutCommand;
+import org.eclipse.gmf.runtime.diagram.ui.commands.ICommandProxy;
+import org.eclipse.gmf.runtime.diagram.ui.commands.SetViewMutabilityCommand;
+import org.eclipse.gmf.runtime.diagram.ui.editpolicies.CanonicalEditPolicy;
+import org.eclipse.gmf.runtime.diagram.ui.requests.CreateViewRequest;
+import org.eclipse.gmf.runtime.emf.core.util.EObjectAdapter;
+import org.eclipse.gmf.runtime.notation.Node;
+import org.eclipse.gmf.runtime.notation.View;
+
+import comrel.ComrelPackage;
+import comrel.diagram.edit.parts.MultiInputPort3EditPart;
+import comrel.diagram.edit.parts.SingleInputPort4EditPart;
+import comrel.diagram.edit.parts.SingleOutputPortEditPart;
+import comrel.diagram.part.ComrelDiagramUpdater;
+import comrel.diagram.part.ComrelNodeDescriptor;
+import comrel.diagram.part.ComrelVisualIDRegistry;
+
+/**
+ * @generated
+ */
+public class SingleFeatureUnit3CanonicalEditPolicy extends CanonicalEditPolicy {
+
+ /**
+ * @generated
+ */
+ private Set<EStructuralFeature> myFeaturesToSynchronize;
+
+ /**
+ * @generated
+ */
+ protected Set getFeaturesToSynchronize() {
+ if (myFeaturesToSynchronize == null) {
+ myFeaturesToSynchronize = new HashSet<EStructuralFeature>();
+ myFeaturesToSynchronize.add(ComrelPackage.eINSTANCE
+ .getSingleFeatureUnit_InputPort());
+ myFeaturesToSynchronize.add(ComrelPackage.eINSTANCE
+ .getSingleFeatureUnit_SecondaryInputPorts());
+ myFeaturesToSynchronize.add(ComrelPackage.eINSTANCE
+ .getSingleFeatureUnit_OutputPort());
+ }
+ return myFeaturesToSynchronize;
+ }
+
+ /**
+ * @generated
+ */
+ @SuppressWarnings("rawtypes")
+ protected List getSemanticChildrenList() {
+ View viewObject = (View) getHost().getModel();
+ LinkedList<EObject> result = new LinkedList<EObject>();
+ List<ComrelNodeDescriptor> childDescriptors = ComrelDiagramUpdater
+ .getSingleFeatureUnit_3050SemanticChildren(viewObject);
+ for (ComrelNodeDescriptor d : childDescriptors) {
+ result.add(d.getModelElement());
+ }
+ return result;
+ }
+
+ /**
+ * @generated
+ */
+ protected boolean isOrphaned(Collection<EObject> semanticChildren,
+ final View view) {
+ return isMyDiagramElement(view)
+ && !semanticChildren.contains(view.getElement());
+ }
+
+ /**
+ * @generated
+ */
+ private boolean isMyDiagramElement(View view) {
+ int visualID = ComrelVisualIDRegistry.getVisualID(view);
+ return visualID == SingleInputPort4EditPart.VISUAL_ID
+ || visualID == MultiInputPort3EditPart.VISUAL_ID
+ || visualID == SingleOutputPortEditPart.VISUAL_ID;
+ }
+
+ /**
+ * @generated
+ */
+ protected void refreshSemantic() {
+ if (resolveSemanticElement() == null) {
+ return;
+ }
+ LinkedList<IAdaptable> createdViews = new LinkedList<IAdaptable>();
+ List<ComrelNodeDescriptor> childDescriptors = ComrelDiagramUpdater
+ .getSingleFeatureUnit_3050SemanticChildren((View) getHost()
+ .getModel());
+ LinkedList<View> orphaned = new LinkedList<View>();
+ // we care to check only views we recognize as ours
+ LinkedList<View> knownViewChildren = new LinkedList<View>();
+ for (View v : getViewChildren()) {
+ if (isMyDiagramElement(v)) {
+ knownViewChildren.add(v);
+ }
+ }
+ // alternative to #cleanCanonicalSemanticChildren(getViewChildren(), semanticChildren)
+ //
+ // iteration happens over list of desired semantic elements, trying to find best matching View, while original CEP
+ // iterates views, potentially losing view (size/bounds) information - i.e. if there are few views to reference same EObject, only last one
+ // to answer isOrphaned == true will be used for the domain element representation, see #cleanCanonicalSemanticChildren()
+ for (Iterator<ComrelNodeDescriptor> descriptorsIterator = childDescriptors
+ .iterator(); descriptorsIterator.hasNext();) {
+ ComrelNodeDescriptor next = descriptorsIterator.next();
+ String hint = ComrelVisualIDRegistry.getType(next.getVisualID());
+ LinkedList<View> perfectMatch = new LinkedList<View>(); // both semanticElement and hint match that of NodeDescriptor
+ for (View childView : getViewChildren()) {
+ EObject semanticElement = childView.getElement();
+ if (next.getModelElement().equals(semanticElement)) {
+ if (hint.equals(childView.getType())) {
+ perfectMatch.add(childView);
+ // actually, can stop iteration over view children here, but
+ // may want to use not the first view but last one as a 'real' match (the way original CEP does
+ // with its trick with viewToSemanticMap inside #cleanCanonicalSemanticChildren
+ }
+ }
+ }
+ if (perfectMatch.size() > 0) {
+ descriptorsIterator.remove(); // precise match found no need to create anything for the NodeDescriptor
+ // use only one view (first or last?), keep rest as orphaned for further consideration
+ knownViewChildren.remove(perfectMatch.getFirst());
+ }
+ }
+ // those left in knownViewChildren are subject to removal - they are our diagram elements we didn't find match to,
+ // or those we have potential matches to, and thus need to be recreated, preserving size/location information.
+ orphaned.addAll(knownViewChildren);
+ //
+ ArrayList<CreateViewRequest.ViewDescriptor> viewDescriptors = new ArrayList<CreateViewRequest.ViewDescriptor>(
+ childDescriptors.size());
+ for (ComrelNodeDescriptor next : childDescriptors) {
+ String hint = ComrelVisualIDRegistry.getType(next.getVisualID());
+ IAdaptable elementAdapter = new CanonicalElementAdapter(
+ next.getModelElement(), hint);
+ CreateViewRequest.ViewDescriptor descriptor = new CreateViewRequest.ViewDescriptor(
+ elementAdapter, Node.class, hint, ViewUtil.APPEND, false,
+ host().getDiagramPreferencesHint());
+ viewDescriptors.add(descriptor);
+ }
+
+ boolean changed = deleteViews(orphaned.iterator());
+ //
+ CreateViewRequest request = getCreateViewRequest(viewDescriptors);
+ Command cmd = getCreateViewCommand(request);
+ if (cmd != null && cmd.canExecute()) {
+ SetViewMutabilityCommand.makeMutable(
+ new EObjectAdapter(host().getNotationView())).execute();
+ executeCommand(cmd);
+ @SuppressWarnings("unchecked")
+ List<IAdaptable> nl = (List<IAdaptable>) request.getNewObject();
+ createdViews.addAll(nl);
+ }
+ if (changed || createdViews.size() > 0) {
+ postProcessRefreshSemantic(createdViews);
+ }
+ if (createdViews.size() > 1) {
+ // perform a layout of the container
+ DeferredLayoutCommand layoutCmd = new DeferredLayoutCommand(host()
+ .getEditingDomain(), createdViews, host());
+ executeCommand(new ICommandProxy(layoutCmd));
+ }
+
+ makeViewsImmutable(createdViews);
+ }
+}
diff --git a/org.eclipse.emf.refactor.comrel.diagram/src/comrel/diagram/edit/policies/SingleFeatureUnit3ItemSemanticEditPolicy.java b/org.eclipse.emf.refactor.comrel.diagram/src/comrel/diagram/edit/policies/SingleFeatureUnit3ItemSemanticEditPolicy.java
new file mode 100644
index 0000000..4ed6634
--- /dev/null
+++ b/org.eclipse.emf.refactor.comrel.diagram/src/comrel/diagram/edit/policies/SingleFeatureUnit3ItemSemanticEditPolicy.java
@@ -0,0 +1,188 @@
+/*
+ *
+ */
+package comrel.diagram.edit.policies;
+
+import java.util.Iterator;
+
+import org.eclipse.emf.ecore.EAnnotation;
+import org.eclipse.gef.commands.Command;
+import org.eclipse.gmf.runtime.common.core.command.ICompositeCommand;
+import org.eclipse.gmf.runtime.diagram.core.commands.DeleteCommand;
+import org.eclipse.gmf.runtime.emf.commands.core.command.CompositeTransactionalCommand;
+import org.eclipse.gmf.runtime.emf.type.core.commands.DestroyElementCommand;
+import org.eclipse.gmf.runtime.emf.type.core.requests.CreateElementRequest;
+import org.eclipse.gmf.runtime.emf.type.core.requests.DestroyElementRequest;
+import org.eclipse.gmf.runtime.notation.Edge;
+import org.eclipse.gmf.runtime.notation.Node;
+import org.eclipse.gmf.runtime.notation.View;
+
+import comrel.diagram.edit.commands.MultiInputPort3CreateCommand;
+import comrel.diagram.edit.commands.SingleInputPort4CreateCommand;
+import comrel.diagram.edit.commands.SingleOutputPortCreateCommand;
+import comrel.diagram.edit.parts.MultiInputPort3EditPart;
+import comrel.diagram.edit.parts.MultiPortMappingEditPart;
+import comrel.diagram.edit.parts.MultiSinglePortMappingEditPart;
+import comrel.diagram.edit.parts.SingleInputPort4EditPart;
+import comrel.diagram.edit.parts.SingleOutputPortEditPart;
+import comrel.diagram.edit.parts.SinglePortMappingEditPart;
+import comrel.diagram.part.ComrelVisualIDRegistry;
+import comrel.diagram.providers.ComrelElementTypes;
+
+/**
+ * @generated
+ */
+public class SingleFeatureUnit3ItemSemanticEditPolicy extends
+ ComrelBaseItemSemanticEditPolicy {
+
+ /**
+ * @generated
+ */
+ public SingleFeatureUnit3ItemSemanticEditPolicy() {
+ super(ComrelElementTypes.SingleFeatureUnit_3050);
+ }
+
+ /**
+ * @generated
+ */
+ protected Command getCreateCommand(CreateElementRequest req) {
+ if (ComrelElementTypes.SingleInputPort_3009 == req.getElementType()) {
+ return getGEFWrapper(new SingleInputPort4CreateCommand(req));
+ }
+ if (ComrelElementTypes.MultiInputPort_3010 == req.getElementType()) {
+ return getGEFWrapper(new MultiInputPort3CreateCommand(req));
+ }
+ if (ComrelElementTypes.SingleOutputPort_3011 == req.getElementType()) {
+ return getGEFWrapper(new SingleOutputPortCreateCommand(req));
+ }
+ return super.getCreateCommand(req);
+ }
+
+ /**
+ * @generated
+ */
+ protected Command getDestroyElementCommand(DestroyElementRequest req) {
+ View view = (View) getHost().getModel();
+ CompositeTransactionalCommand cmd = new CompositeTransactionalCommand(
+ getEditingDomain(), null);
+ cmd.setTransactionNestingEnabled(false);
+ EAnnotation annotation = view.getEAnnotation("Shortcut"); //$NON-NLS-1$
+ if (annotation == null) {
+ // there are indirectly referenced children, need extra commands: false
+ addDestroyChildNodesCommand(cmd);
+ addDestroyShortcutsCommand(cmd, view);
+ // delete host element
+ cmd.add(new DestroyElementCommand(req));
+ } else {
+ cmd.add(new DeleteCommand(getEditingDomain(), view));
+ }
+ return getGEFWrapper(cmd.reduce());
+ }
+
+ /**
+ * @generated
+ */
+ private void addDestroyChildNodesCommand(ICompositeCommand cmd) {
+ View view = (View) getHost().getModel();
+ for (Iterator<?> nit = view.getChildren().iterator(); nit.hasNext();) {
+ Node node = (Node) nit.next();
+ switch (ComrelVisualIDRegistry.getVisualID(node)) {
+ case SingleInputPort4EditPart.VISUAL_ID:
+ for (Iterator<?> it = node.getTargetEdges().iterator(); it
+ .hasNext();) {
+ Edge incomingLink = (Edge) it.next();
+ if (ComrelVisualIDRegistry.getVisualID(incomingLink) == SinglePortMappingEditPart.VISUAL_ID) {
+ DestroyElementRequest r = new DestroyElementRequest(
+ incomingLink.getElement(), false);
+ cmd.add(new DestroyElementCommand(r));
+ cmd.add(new DeleteCommand(getEditingDomain(),
+ incomingLink));
+ continue;
+ }
+ if (ComrelVisualIDRegistry.getVisualID(incomingLink) == MultiSinglePortMappingEditPart.VISUAL_ID) {
+ DestroyElementRequest r = new DestroyElementRequest(
+ incomingLink.getElement(), false);
+ cmd.add(new DestroyElementCommand(r));
+ cmd.add(new DeleteCommand(getEditingDomain(),
+ incomingLink));
+ continue;
+ }
+ }
+ for (Iterator<?> it = node.getSourceEdges().iterator(); it
+ .hasNext();) {
+ Edge outgoingLink = (Edge) it.next();
+ if (ComrelVisualIDRegistry.getVisualID(outgoingLink) == SinglePortMappingEditPart.VISUAL_ID) {
+ DestroyElementRequest r = new DestroyElementRequest(
+ outgoingLink.getElement(), false);
+ cmd.add(new DestroyElementCommand(r));
+ cmd.add(new DeleteCommand(getEditingDomain(),
+ outgoingLink));
+ continue;
+ }
+ }
+ cmd.add(new DestroyElementCommand(new DestroyElementRequest(
+ getEditingDomain(), node.getElement(), false))); // directlyOwned: true
+ // don't need explicit deletion of node as parent's view deletion would clean child views as well
+ // cmd.add(new org.eclipse.gmf.runtime.diagram.core.commands.DeleteCommand(getEditingDomain(), node));
+ break;
+ case MultiInputPort3EditPart.VISUAL_ID:
+ for (Iterator<?> it = node.getTargetEdges().iterator(); it
+ .hasNext();) {
+ Edge incomingLink = (Edge) it.next();
+ if (ComrelVisualIDRegistry.getVisualID(incomingLink) == MultiPortMappingEditPart.VISUAL_ID) {
+ DestroyElementRequest r = new DestroyElementRequest(
+ incomingLink.getElement(), false);
+ cmd.add(new DestroyElementCommand(r));
+ cmd.add(new DeleteCommand(getEditingDomain(),
+ incomingLink));
+ continue;
+ }
+ }
+ for (Iterator<?> it = node.getSourceEdges().iterator(); it
+ .hasNext();) {
+ Edge outgoingLink = (Edge) it.next();
+ if (ComrelVisualIDRegistry.getVisualID(outgoingLink) == MultiPortMappingEditPart.VISUAL_ID) {
+ DestroyElementRequest r = new DestroyElementRequest(
+ outgoingLink.getElement(), false);
+ cmd.add(new DestroyElementCommand(r));
+ cmd.add(new DeleteCommand(getEditingDomain(),
+ outgoingLink));
+ continue;
+ }
+ if (ComrelVisualIDRegistry.getVisualID(outgoingLink) == MultiSinglePortMappingEditPart.VISUAL_ID) {
+ DestroyElementRequest r = new DestroyElementRequest(
+ outgoingLink.getElement(), false);
+ cmd.add(new DestroyElementCommand(r));
+ cmd.add(new DeleteCommand(getEditingDomain(),
+ outgoingLink));
+ continue;
+ }
+ }
+ cmd.add(new DestroyElementCommand(new DestroyElementRequest(
+ getEditingDomain(), node.getElement(), false))); // directlyOwned: true
+ // don't need explicit deletion of node as parent's view deletion would clean child views as well
+ // cmd.add(new org.eclipse.gmf.runtime.diagram.core.commands.DeleteCommand(getEditingDomain(), node));
+ break;
+ case SingleOutputPortEditPart.VISUAL_ID:
+ for (Iterator<?> it = node.getSourceEdges().iterator(); it
+ .hasNext();) {
+ Edge outgoingLink = (Edge) it.next();
+ if (ComrelVisualIDRegistry.getVisualID(outgoingLink) == SinglePortMappingEditPart.VISUAL_ID) {
+ DestroyElementRequest r = new DestroyElementRequest(
+ outgoingLink.getElement(), false);
+ cmd.add(new DestroyElementCommand(r));
+ cmd.add(new DeleteCommand(getEditingDomain(),
+ outgoingLink));
+ continue;
+ }
+ }
+ cmd.add(new DestroyElementCommand(new DestroyElementRequest(
+ getEditingDomain(), node.getElement(), false))); // directlyOwned: true
+ // don't need explicit deletion of node as parent's view deletion would clean child views as well
+ // cmd.add(new org.eclipse.gmf.runtime.diagram.core.commands.DeleteCommand(getEditingDomain(), node));
+ break;
+ }
+ }
+ }
+
+}
diff --git a/org.eclipse.emf.refactor.comrel.diagram/src/comrel/diagram/edit/policies/SingleFeatureUnit4CanonicalEditPolicy.java b/org.eclipse.emf.refactor.comrel.diagram/src/comrel/diagram/edit/policies/SingleFeatureUnit4CanonicalEditPolicy.java
new file mode 100644
index 0000000..3a07f92
--- /dev/null
+++ b/org.eclipse.emf.refactor.comrel.diagram/src/comrel/diagram/edit/policies/SingleFeatureUnit4CanonicalEditPolicy.java
@@ -0,0 +1,182 @@
+/*
+ *
+ */
+package comrel.diagram.edit.policies;
+
+import java.util.ArrayList;
+import java.util.Collection;
+import java.util.HashSet;
+import java.util.Iterator;
+import java.util.LinkedList;
+import java.util.List;
+import java.util.Set;
+
+import org.eclipse.core.runtime.IAdaptable;
+import org.eclipse.emf.ecore.EObject;
+import org.eclipse.emf.ecore.EStructuralFeature;
+import org.eclipse.gef.commands.Command;
+import org.eclipse.gmf.runtime.diagram.core.util.ViewUtil;
+import org.eclipse.gmf.runtime.diagram.ui.commands.DeferredLayoutCommand;
+import org.eclipse.gmf.runtime.diagram.ui.commands.ICommandProxy;
+import org.eclipse.gmf.runtime.diagram.ui.commands.SetViewMutabilityCommand;
+import org.eclipse.gmf.runtime.diagram.ui.editpolicies.CanonicalEditPolicy;
+import org.eclipse.gmf.runtime.diagram.ui.requests.CreateViewRequest;
+import org.eclipse.gmf.runtime.emf.core.util.EObjectAdapter;
+import org.eclipse.gmf.runtime.notation.Node;
+import org.eclipse.gmf.runtime.notation.View;
+
+import comrel.ComrelPackage;
+import comrel.diagram.edit.parts.MultiInputPort3EditPart;
+import comrel.diagram.edit.parts.SingleInputPort4EditPart;
+import comrel.diagram.edit.parts.SingleOutputPortEditPart;
+import comrel.diagram.part.ComrelDiagramUpdater;
+import comrel.diagram.part.ComrelNodeDescriptor;
+import comrel.diagram.part.ComrelVisualIDRegistry;
+
+/**
+ * @generated
+ */
+public class SingleFeatureUnit4CanonicalEditPolicy extends CanonicalEditPolicy {
+
+ /**
+ * @generated
+ */
+ private Set<EStructuralFeature> myFeaturesToSynchronize;
+
+ /**
+ * @generated
+ */
+ protected Set getFeaturesToSynchronize() {
+ if (myFeaturesToSynchronize == null) {
+ myFeaturesToSynchronize = new HashSet<EStructuralFeature>();
+ myFeaturesToSynchronize.add(ComrelPackage.eINSTANCE
+ .getSingleFeatureUnit_InputPort());
+ myFeaturesToSynchronize.add(ComrelPackage.eINSTANCE
+ .getSingleFeatureUnit_SecondaryInputPorts());
+ myFeaturesToSynchronize.add(ComrelPackage.eINSTANCE
+ .getSingleFeatureUnit_OutputPort());
+ }
+ return myFeaturesToSynchronize;
+ }
+
+ /**
+ * @generated
+ */
+ @SuppressWarnings("rawtypes")
+ protected List getSemanticChildrenList() {
+ View viewObject = (View) getHost().getModel();
+ LinkedList<EObject> result = new LinkedList<EObject>();
+ List<ComrelNodeDescriptor> childDescriptors = ComrelDiagramUpdater
+ .getSingleFeatureUnit_3055SemanticChildren(viewObject);
+ for (ComrelNodeDescriptor d : childDescriptors) {
+ result.add(d.getModelElement());
+ }
+ return result;
+ }
+
+ /**
+ * @generated
+ */
+ protected boolean isOrphaned(Collection<EObject> semanticChildren,
+ final View view) {
+ return isMyDiagramElement(view)
+ && !semanticChildren.contains(view.getElement());
+ }
+
+ /**
+ * @generated
+ */
+ private boolean isMyDiagramElement(View view) {
+ int visualID = ComrelVisualIDRegistry.getVisualID(view);
+ return visualID == SingleInputPort4EditPart.VISUAL_ID
+ || visualID == MultiInputPort3EditPart.VISUAL_ID
+ || visualID == SingleOutputPortEditPart.VISUAL_ID;
+ }
+
+ /**
+ * @generated
+ */
+ protected void refreshSemantic() {
+ if (resolveSemanticElement() == null) {
+ return;
+ }
+ LinkedList<IAdaptable> createdViews = new LinkedList<IAdaptable>();
+ List<ComrelNodeDescriptor> childDescriptors = ComrelDiagramUpdater
+ .getSingleFeatureUnit_3055SemanticChildren((View) getHost()
+ .getModel());
+ LinkedList<View> orphaned = new LinkedList<View>();
+ // we care to check only views we recognize as ours
+ LinkedList<View> knownViewChildren = new LinkedList<View>();
+ for (View v : getViewChildren()) {
+ if (isMyDiagramElement(v)) {
+ knownViewChildren.add(v);
+ }
+ }
+ // alternative to #cleanCanonicalSemanticChildren(getViewChildren(), semanticChildren)
+ //
+ // iteration happens over list of desired semantic elements, trying to find best matching View, while original CEP
+ // iterates views, potentially losing view (size/bounds) information - i.e. if there are few views to reference same EObject, only last one
+ // to answer isOrphaned == true will be used for the domain element representation, see #cleanCanonicalSemanticChildren()
+ for (Iterator<ComrelNodeDescriptor> descriptorsIterator = childDescriptors
+ .iterator(); descriptorsIterator.hasNext();) {
+ ComrelNodeDescriptor next = descriptorsIterator.next();
+ String hint = ComrelVisualIDRegistry.getType(next.getVisualID());
+ LinkedList<View> perfectMatch = new LinkedList<View>(); // both semanticElement and hint match that of NodeDescriptor
+ for (View childView : getViewChildren()) {
+ EObject semanticElement = childView.getElement();
+ if (next.getModelElement().equals(semanticElement)) {
+ if (hint.equals(childView.getType())) {
+ perfectMatch.add(childView);
+ // actually, can stop iteration over view children here, but
+ // may want to use not the first view but last one as a 'real' match (the way original CEP does
+ // with its trick with viewToSemanticMap inside #cleanCanonicalSemanticChildren
+ }
+ }
+ }
+ if (perfectMatch.size() > 0) {
+ descriptorsIterator.remove(); // precise match found no need to create anything for the NodeDescriptor
+ // use only one view (first or last?), keep rest as orphaned for further consideration
+ knownViewChildren.remove(perfectMatch.getFirst());
+ }
+ }
+ // those left in knownViewChildren are subject to removal - they are our diagram elements we didn't find match to,
+ // or those we have potential matches to, and thus need to be recreated, preserving size/location information.
+ orphaned.addAll(knownViewChildren);
+ //
+ ArrayList<CreateViewRequest.ViewDescriptor> viewDescriptors = new ArrayList<CreateViewRequest.ViewDescriptor>(
+ childDescriptors.size());
+ for (ComrelNodeDescriptor next : childDescriptors) {
+ String hint = ComrelVisualIDRegistry.getType(next.getVisualID());
+ IAdaptable elementAdapter = new CanonicalElementAdapter(
+ next.getModelElement(), hint);
+ CreateViewRequest.ViewDescriptor descriptor = new CreateViewRequest.ViewDescriptor(
+ elementAdapter, Node.class, hint, ViewUtil.APPEND, false,
+ host().getDiagramPreferencesHint());
+ viewDescriptors.add(descriptor);
+ }
+
+ boolean changed = deleteViews(orphaned.iterator());
+ //
+ CreateViewRequest request = getCreateViewRequest(viewDescriptors);
+ Command cmd = getCreateViewCommand(request);
+ if (cmd != null && cmd.canExecute()) {
+ SetViewMutabilityCommand.makeMutable(
+ new EObjectAdapter(host().getNotationView())).execute();
+ executeCommand(cmd);
+ @SuppressWarnings("unchecked")
+ List<IAdaptable> nl = (List<IAdaptable>) request.getNewObject();
+ createdViews.addAll(nl);
+ }
+ if (changed || createdViews.size() > 0) {
+ postProcessRefreshSemantic(createdViews);
+ }
+ if (createdViews.size() > 1) {
+ // perform a layout of the container
+ DeferredLayoutCommand layoutCmd = new DeferredLayoutCommand(host()
+ .getEditingDomain(), createdViews, host());
+ executeCommand(new ICommandProxy(layoutCmd));
+ }
+
+ makeViewsImmutable(createdViews);
+ }
+}
diff --git a/org.eclipse.emf.refactor.comrel.diagram/src/comrel/diagram/edit/policies/SingleFeatureUnit4ItemSemanticEditPolicy.java b/org.eclipse.emf.refactor.comrel.diagram/src/comrel/diagram/edit/policies/SingleFeatureUnit4ItemSemanticEditPolicy.java
new file mode 100644
index 0000000..394251f
--- /dev/null
+++ b/org.eclipse.emf.refactor.comrel.diagram/src/comrel/diagram/edit/policies/SingleFeatureUnit4ItemSemanticEditPolicy.java
@@ -0,0 +1,188 @@
+/*
+ *
+ */
+package comrel.diagram.edit.policies;
+
+import java.util.Iterator;
+
+import org.eclipse.emf.ecore.EAnnotation;
+import org.eclipse.gef.commands.Command;
+import org.eclipse.gmf.runtime.common.core.command.ICompositeCommand;
+import org.eclipse.gmf.runtime.diagram.core.commands.DeleteCommand;
+import org.eclipse.gmf.runtime.emf.commands.core.command.CompositeTransactionalCommand;
+import org.eclipse.gmf.runtime.emf.type.core.commands.DestroyElementCommand;
+import org.eclipse.gmf.runtime.emf.type.core.requests.CreateElementRequest;
+import org.eclipse.gmf.runtime.emf.type.core.requests.DestroyElementRequest;
+import org.eclipse.gmf.runtime.notation.Edge;
+import org.eclipse.gmf.runtime.notation.Node;
+import org.eclipse.gmf.runtime.notation.View;
+
+import comrel.diagram.edit.commands.MultiInputPort3CreateCommand;
+import comrel.diagram.edit.commands.SingleInputPort4CreateCommand;
+import comrel.diagram.edit.commands.SingleOutputPortCreateCommand;
+import comrel.diagram.edit.parts.MultiInputPort3EditPart;
+import comrel.diagram.edit.parts.MultiPortMappingEditPart;
+import comrel.diagram.edit.parts.MultiSinglePortMappingEditPart;
+import comrel.diagram.edit.parts.SingleInputPort4EditPart;
+import comrel.diagram.edit.parts.SingleOutputPortEditPart;
+import comrel.diagram.edit.parts.SinglePortMappingEditPart;
+import comrel.diagram.part.ComrelVisualIDRegistry;
+import comrel.diagram.providers.ComrelElementTypes;
+
+/**
+ * @generated
+ */
+public class SingleFeatureUnit4ItemSemanticEditPolicy extends
+ ComrelBaseItemSemanticEditPolicy {
+
+ /**
+ * @generated
+ */
+ public SingleFeatureUnit4ItemSemanticEditPolicy() {
+ super(ComrelElementTypes.SingleFeatureUnit_3055);
+ }
+
+ /**
+ * @generated
+ */
+ protected Command getCreateCommand(CreateElementRequest req) {
+ if (ComrelElementTypes.SingleInputPort_3009 == req.getElementType()) {
+ return getGEFWrapper(new SingleInputPort4CreateCommand(req));
+ }
+ if (ComrelElementTypes.MultiInputPort_3010 == req.getElementType()) {
+ return getGEFWrapper(new MultiInputPort3CreateCommand(req));
+ }
+ if (ComrelElementTypes.SingleOutputPort_3011 == req.getElementType()) {
+ return getGEFWrapper(new SingleOutputPortCreateCommand(req));
+ }
+ return super.getCreateCommand(req);
+ }
+
+ /**
+ * @generated
+ */
+ protected Command getDestroyElementCommand(DestroyElementRequest req) {
+ View view = (View) getHost().getModel();
+ CompositeTransactionalCommand cmd = new CompositeTransactionalCommand(
+ getEditingDomain(), null);
+ cmd.setTransactionNestingEnabled(false);
+ EAnnotation annotation = view.getEAnnotation("Shortcut"); //$NON-NLS-1$
+ if (annotation == null) {
+ // there are indirectly referenced children, need extra commands: false
+ addDestroyChildNodesCommand(cmd);
+ addDestroyShortcutsCommand(cmd, view);
+ // delete host element
+ cmd.add(new DestroyElementCommand(req));
+ } else {
+ cmd.add(new DeleteCommand(getEditingDomain(), view));
+ }
+ return getGEFWrapper(cmd.reduce());
+ }
+
+ /**
+ * @generated
+ */
+ private void addDestroyChildNodesCommand(ICompositeCommand cmd) {
+ View view = (View) getHost().getModel();
+ for (Iterator<?> nit = view.getChildren().iterator(); nit.hasNext();) {
+ Node node = (Node) nit.next();
+ switch (ComrelVisualIDRegistry.getVisualID(node)) {
+ case SingleInputPort4EditPart.VISUAL_ID:
+ for (Iterator<?> it = node.getTargetEdges().iterator(); it
+ .hasNext();) {
+ Edge incomingLink = (Edge) it.next();
+ if (ComrelVisualIDRegistry.getVisualID(incomingLink) == SinglePortMappingEditPart.VISUAL_ID) {
+ DestroyElementRequest r = new DestroyElementRequest(
+ incomingLink.getElement(), false);
+ cmd.add(new DestroyElementCommand(r));
+ cmd.add(new DeleteCommand(getEditingDomain(),
+ incomingLink));
+ continue;
+ }
+ if (ComrelVisualIDRegistry.getVisualID(incomingLink) == MultiSinglePortMappingEditPart.VISUAL_ID) {
+ DestroyElementRequest r = new DestroyElementRequest(
+ incomingLink.getElement(), false);
+ cmd.add(new DestroyElementCommand(r));
+ cmd.add(new DeleteCommand(getEditingDomain(),
+ incomingLink));
+ continue;
+ }
+ }
+ for (Iterator<?> it = node.getSourceEdges().iterator(); it
+ .hasNext();) {
+ Edge outgoingLink = (Edge) it.next();
+ if (ComrelVisualIDRegistry.getVisualID(outgoingLink) == SinglePortMappingEditPart.VISUAL_ID) {
+ DestroyElementRequest r = new DestroyElementRequest(
+ outgoingLink.getElement(), false);
+ cmd.add(new DestroyElementCommand(r));
+ cmd.add(new DeleteCommand(getEditingDomain(),
+ outgoingLink));
+ continue;
+ }
+ }
+ cmd.add(new DestroyElementCommand(new DestroyElementRequest(
+ getEditingDomain(), node.getElement(), false))); // directlyOwned: true
+ // don't need explicit deletion of node as parent's view deletion would clean child views as well
+ // cmd.add(new org.eclipse.gmf.runtime.diagram.core.commands.DeleteCommand(getEditingDomain(), node));
+ break;
+ case MultiInputPort3EditPart.VISUAL_ID:
+ for (Iterator<?> it = node.getTargetEdges().iterator(); it
+ .hasNext();) {
+ Edge incomingLink = (Edge) it.next();
+ if (ComrelVisualIDRegistry.getVisualID(incomingLink) == MultiPortMappingEditPart.VISUAL_ID) {
+ DestroyElementRequest r = new DestroyElementRequest(
+ incomingLink.getElement(), false);
+ cmd.add(new DestroyElementCommand(r));
+ cmd.add(new DeleteCommand(getEditingDomain(),
+ incomingLink));
+ continue;
+ }
+ }
+ for (Iterator<?> it = node.getSourceEdges().iterator(); it
+ .hasNext();) {
+ Edge outgoingLink = (Edge) it.next();
+ if (ComrelVisualIDRegistry.getVisualID(outgoingLink) == MultiPortMappingEditPart.VISUAL_ID) {
+ DestroyElementRequest r = new DestroyElementRequest(
+ outgoingLink.getElement(), false);
+ cmd.add(new DestroyElementCommand(r));
+ cmd.add(new DeleteCommand(getEditingDomain(),
+ outgoingLink));
+ continue;
+ }
+ if (ComrelVisualIDRegistry.getVisualID(outgoingLink) == MultiSinglePortMappingEditPart.VISUAL_ID) {
+ DestroyElementRequest r = new DestroyElementRequest(
+ outgoingLink.getElement(), false);
+ cmd.add(new DestroyElementCommand(r));
+ cmd.add(new DeleteCommand(getEditingDomain(),
+ outgoingLink));
+ continue;
+ }
+ }
+ cmd.add(new DestroyElementCommand(new DestroyElementRequest(
+ getEditingDomain(), node.getElement(), false))); // directlyOwned: true
+ // don't need explicit deletion of node as parent's view deletion would clean child views as well
+ // cmd.add(new org.eclipse.gmf.runtime.diagram.core.commands.DeleteCommand(getEditingDomain(), node));
+ break;
+ case SingleOutputPortEditPart.VISUAL_ID:
+ for (Iterator<?> it = node.getSourceEdges().iterator(); it
+ .hasNext();) {
+ Edge outgoingLink = (Edge) it.next();
+ if (ComrelVisualIDRegistry.getVisualID(outgoingLink) == SinglePortMappingEditPart.VISUAL_ID) {
+ DestroyElementRequest r = new DestroyElementRequest(
+ outgoingLink.getElement(), false);
+ cmd.add(new DestroyElementCommand(r));
+ cmd.add(new DeleteCommand(getEditingDomain(),
+ outgoingLink));
+ continue;
+ }
+ }
+ cmd.add(new DestroyElementCommand(new DestroyElementRequest(
+ getEditingDomain(), node.getElement(), false))); // directlyOwned: true
+ // don't need explicit deletion of node as parent's view deletion would clean child views as well
+ // cmd.add(new org.eclipse.gmf.runtime.diagram.core.commands.DeleteCommand(getEditingDomain(), node));
+ break;
+ }
+ }
+ }
+
+}
diff --git a/org.eclipse.emf.refactor.comrel.diagram/src/comrel/diagram/edit/policies/SingleFeatureUnit5CanonicalEditPolicy.java b/org.eclipse.emf.refactor.comrel.diagram/src/comrel/diagram/edit/policies/SingleFeatureUnit5CanonicalEditPolicy.java
new file mode 100644
index 0000000..763bfcb
--- /dev/null
+++ b/org.eclipse.emf.refactor.comrel.diagram/src/comrel/diagram/edit/policies/SingleFeatureUnit5CanonicalEditPolicy.java
@@ -0,0 +1,182 @@
+/*
+ *
+ */
+package comrel.diagram.edit.policies;
+
+import java.util.ArrayList;
+import java.util.Collection;
+import java.util.HashSet;
+import java.util.Iterator;
+import java.util.LinkedList;
+import java.util.List;
+import java.util.Set;
+
+import org.eclipse.core.runtime.IAdaptable;
+import org.eclipse.emf.ecore.EObject;
+import org.eclipse.emf.ecore.EStructuralFeature;
+import org.eclipse.gef.commands.Command;
+import org.eclipse.gmf.runtime.diagram.core.util.ViewUtil;
+import org.eclipse.gmf.runtime.diagram.ui.commands.DeferredLayoutCommand;
+import org.eclipse.gmf.runtime.diagram.ui.commands.ICommandProxy;
+import org.eclipse.gmf.runtime.diagram.ui.commands.SetViewMutabilityCommand;
+import org.eclipse.gmf.runtime.diagram.ui.editpolicies.CanonicalEditPolicy;
+import org.eclipse.gmf.runtime.diagram.ui.requests.CreateViewRequest;
+import org.eclipse.gmf.runtime.emf.core.util.EObjectAdapter;
+import org.eclipse.gmf.runtime.notation.Node;
+import org.eclipse.gmf.runtime.notation.View;
+
+import comrel.ComrelPackage;
+import comrel.diagram.edit.parts.MultiInputPort3EditPart;
+import comrel.diagram.edit.parts.SingleInputPort4EditPart;
+import comrel.diagram.edit.parts.SingleOutputPortEditPart;
+import comrel.diagram.part.ComrelDiagramUpdater;
+import comrel.diagram.part.ComrelNodeDescriptor;
+import comrel.diagram.part.ComrelVisualIDRegistry;
+
+/**
+ * @generated
+ */
+public class SingleFeatureUnit5CanonicalEditPolicy extends CanonicalEditPolicy {
+
+ /**
+ * @generated
+ */
+ private Set<EStructuralFeature> myFeaturesToSynchronize;
+
+ /**
+ * @generated
+ */
+ protected Set getFeaturesToSynchronize() {
+ if (myFeaturesToSynchronize == null) {
+ myFeaturesToSynchronize = new HashSet<EStructuralFeature>();
+ myFeaturesToSynchronize.add(ComrelPackage.eINSTANCE
+ .getSingleFeatureUnit_InputPort());
+ myFeaturesToSynchronize.add(ComrelPackage.eINSTANCE
+ .getSingleFeatureUnit_SecondaryInputPorts());
+ myFeaturesToSynchronize.add(ComrelPackage.eINSTANCE
+ .getSingleFeatureUnit_OutputPort());
+ }
+ return myFeaturesToSynchronize;
+ }
+
+ /**
+ * @generated
+ */
+ @SuppressWarnings("rawtypes")
+ protected List getSemanticChildrenList() {
+ View viewObject = (View) getHost().getModel();
+ LinkedList<EObject> result = new LinkedList<EObject>();
+ List<ComrelNodeDescriptor> childDescriptors = ComrelDiagramUpdater
+ .getSingleFeatureUnit_3061SemanticChildren(viewObject);
+ for (ComrelNodeDescriptor d : childDescriptors) {
+ result.add(d.getModelElement());
+ }
+ return result;
+ }
+
+ /**
+ * @generated
+ */
+ protected boolean isOrphaned(Collection<EObject> semanticChildren,
+ final View view) {
+ return isMyDiagramElement(view)
+ && !semanticChildren.contains(view.getElement());
+ }
+
+ /**
+ * @generated
+ */
+ private boolean isMyDiagramElement(View view) {
+ int visualID = ComrelVisualIDRegistry.getVisualID(view);
+ return visualID == SingleInputPort4EditPart.VISUAL_ID
+ || visualID == MultiInputPort3EditPart.VISUAL_ID
+ || visualID == SingleOutputPortEditPart.VISUAL_ID;
+ }
+
+ /**
+ * @generated
+ */
+ protected void refreshSemantic() {
+ if (resolveSemanticElement() == null) {
+ return;
+ }
+ LinkedList<IAdaptable> createdViews = new LinkedList<IAdaptable>();
+ List<ComrelNodeDescriptor> childDescriptors = ComrelDiagramUpdater
+ .getSingleFeatureUnit_3061SemanticChildren((View) getHost()
+ .getModel());
+ LinkedList<View> orphaned = new LinkedList<View>();
+ // we care to check only views we recognize as ours
+ LinkedList<View> knownViewChildren = new LinkedList<View>();
+ for (View v : getViewChildren()) {
+ if (isMyDiagramElement(v)) {
+ knownViewChildren.add(v);
+ }
+ }
+ // alternative to #cleanCanonicalSemanticChildren(getViewChildren(), semanticChildren)
+ //
+ // iteration happens over list of desired semantic elements, trying to find best matching View, while original CEP
+ // iterates views, potentially losing view (size/bounds) information - i.e. if there are few views to reference same EObject, only last one
+ // to answer isOrphaned == true will be used for the domain element representation, see #cleanCanonicalSemanticChildren()
+ for (Iterator<ComrelNodeDescriptor> descriptorsIterator = childDescriptors
+ .iterator(); descriptorsIterator.hasNext();) {
+ ComrelNodeDescriptor next = descriptorsIterator.next();
+ String hint = ComrelVisualIDRegistry.getType(next.getVisualID());
+ LinkedList<View> perfectMatch = new LinkedList<View>(); // both semanticElement and hint match that of NodeDescriptor
+ for (View childView : getViewChildren()) {
+ EObject semanticElement = childView.getElement();
+ if (next.getModelElement().equals(semanticElement)) {
+ if (hint.equals(childView.getType())) {
+ perfectMatch.add(childView);
+ // actually, can stop iteration over view children here, but
+ // may want to use not the first view but last one as a 'real' match (the way original CEP does
+ // with its trick with viewToSemanticMap inside #cleanCanonicalSemanticChildren
+ }
+ }
+ }
+ if (perfectMatch.size() > 0) {
+ descriptorsIterator.remove(); // precise match found no need to create anything for the NodeDescriptor
+ // use only one view (first or last?), keep rest as orphaned for further consideration
+ knownViewChildren.remove(perfectMatch.getFirst());
+ }
+ }
+ // those left in knownViewChildren are subject to removal - they are our diagram elements we didn't find match to,
+ // or those we have potential matches to, and thus need to be recreated, preserving size/location information.
+ orphaned.addAll(knownViewChildren);
+ //
+ ArrayList<CreateViewRequest.ViewDescriptor> viewDescriptors = new ArrayList<CreateViewRequest.ViewDescriptor>(
+ childDescriptors.size());
+ for (ComrelNodeDescriptor next : childDescriptors) {
+ String hint = ComrelVisualIDRegistry.getType(next.getVisualID());
+ IAdaptable elementAdapter = new CanonicalElementAdapter(
+ next.getModelElement(), hint);
+ CreateViewRequest.ViewDescriptor descriptor = new CreateViewRequest.ViewDescriptor(
+ elementAdapter, Node.class, hint, ViewUtil.APPEND, false,
+ host().getDiagramPreferencesHint());
+ viewDescriptors.add(descriptor);
+ }
+
+ boolean changed = deleteViews(orphaned.iterator());
+ //
+ CreateViewRequest request = getCreateViewRequest(viewDescriptors);
+ Command cmd = getCreateViewCommand(request);
+ if (cmd != null && cmd.canExecute()) {
+ SetViewMutabilityCommand.makeMutable(
+ new EObjectAdapter(host().getNotationView())).execute();
+ executeCommand(cmd);
+ @SuppressWarnings("unchecked")
+ List<IAdaptable> nl = (List<IAdaptable>) request.getNewObject();
+ createdViews.addAll(nl);
+ }
+ if (changed || createdViews.size() > 0) {
+ postProcessRefreshSemantic(createdViews);
+ }
+ if (createdViews.size() > 1) {
+ // perform a layout of the container
+ DeferredLayoutCommand layoutCmd = new DeferredLayoutCommand(host()
+ .getEditingDomain(), createdViews, host());
+ executeCommand(new ICommandProxy(layoutCmd));
+ }
+
+ makeViewsImmutable(createdViews);
+ }
+}
diff --git a/org.eclipse.emf.refactor.comrel.diagram/src/comrel/diagram/edit/policies/SingleFeatureUnit5ItemSemanticEditPolicy.java b/org.eclipse.emf.refactor.comrel.diagram/src/comrel/diagram/edit/policies/SingleFeatureUnit5ItemSemanticEditPolicy.java
new file mode 100644
index 0000000..384ba89
--- /dev/null
+++ b/org.eclipse.emf.refactor.comrel.diagram/src/comrel/diagram/edit/policies/SingleFeatureUnit5ItemSemanticEditPolicy.java
@@ -0,0 +1,188 @@
+/*
+ *
+ */
+package comrel.diagram.edit.policies;
+
+import java.util.Iterator;
+
+import org.eclipse.emf.ecore.EAnnotation;
+import org.eclipse.gef.commands.Command;
+import org.eclipse.gmf.runtime.common.core.command.ICompositeCommand;
+import org.eclipse.gmf.runtime.diagram.core.commands.DeleteCommand;
+import org.eclipse.gmf.runtime.emf.commands.core.command.CompositeTransactionalCommand;
+import org.eclipse.gmf.runtime.emf.type.core.commands.DestroyElementCommand;
+import org.eclipse.gmf.runtime.emf.type.core.requests.CreateElementRequest;
+import org.eclipse.gmf.runtime.emf.type.core.requests.DestroyElementRequest;
+import org.eclipse.gmf.runtime.notation.Edge;
+import org.eclipse.gmf.runtime.notation.Node;
+import org.eclipse.gmf.runtime.notation.View;
+
+import comrel.diagram.edit.commands.MultiInputPort3CreateCommand;
+import comrel.diagram.edit.commands.SingleInputPort4CreateCommand;
+import comrel.diagram.edit.commands.SingleOutputPortCreateCommand;
+import comrel.diagram.edit.parts.MultiInputPort3EditPart;
+import comrel.diagram.edit.parts.MultiPortMappingEditPart;
+import comrel.diagram.edit.parts.MultiSinglePortMappingEditPart;
+import comrel.diagram.edit.parts.SingleInputPort4EditPart;
+import comrel.diagram.edit.parts.SingleOutputPortEditPart;
+import comrel.diagram.edit.parts.SinglePortMappingEditPart;
+import comrel.diagram.part.ComrelVisualIDRegistry;
+import comrel.diagram.providers.ComrelElementTypes;
+
+/**
+ * @generated
+ */
+public class SingleFeatureUnit5ItemSemanticEditPolicy extends
+ ComrelBaseItemSemanticEditPolicy {
+
+ /**
+ * @generated
+ */
+ public SingleFeatureUnit5ItemSemanticEditPolicy() {
+ super(ComrelElementTypes.SingleFeatureUnit_3061);
+ }
+
+ /**
+ * @generated
+ */
+ protected Command getCreateCommand(CreateElementRequest req) {
+ if (ComrelElementTypes.SingleInputPort_3009 == req.getElementType()) {
+ return getGEFWrapper(new SingleInputPort4CreateCommand(req));
+ }
+ if (ComrelElementTypes.MultiInputPort_3010 == req.getElementType()) {
+ return getGEFWrapper(new MultiInputPort3CreateCommand(req));
+ }
+ if (ComrelElementTypes.SingleOutputPort_3011 == req.getElementType()) {
+ return getGEFWrapper(new SingleOutputPortCreateCommand(req));
+ }
+ return super.getCreateCommand(req);
+ }
+
+ /**
+ * @generated
+ */
+ protected Command getDestroyElementCommand(DestroyElementRequest req) {
+ View view = (View) getHost().getModel();
+ CompositeTransactionalCommand cmd = new CompositeTransactionalCommand(
+ getEditingDomain(), null);
+ cmd.setTransactionNestingEnabled(false);
+ EAnnotation annotation = view.getEAnnotation("Shortcut"); //$NON-NLS-1$
+ if (annotation == null) {
+ // there are indirectly referenced children, need extra commands: false
+ addDestroyChildNodesCommand(cmd);
+ addDestroyShortcutsCommand(cmd, view);
+ // delete host element
+ cmd.add(new DestroyElementCommand(req));
+ } else {
+ cmd.add(new DeleteCommand(getEditingDomain(), view));
+ }
+ return getGEFWrapper(cmd.reduce());
+ }
+
+ /**
+ * @generated
+ */
+ private void addDestroyChildNodesCommand(ICompositeCommand cmd) {
+ View view = (View) getHost().getModel();
+ for (Iterator<?> nit = view.getChildren().iterator(); nit.hasNext();) {
+ Node node = (Node) nit.next();
+ switch (ComrelVisualIDRegistry.getVisualID(node)) {
+ case SingleInputPort4EditPart.VISUAL_ID:
+ for (Iterator<?> it = node.getTargetEdges().iterator(); it
+ .hasNext();) {
+ Edge incomingLink = (Edge) it.next();
+ if (ComrelVisualIDRegistry.getVisualID(incomingLink) == SinglePortMappingEditPart.VISUAL_ID) {
+ DestroyElementRequest r = new DestroyElementRequest(
+ incomingLink.getElement(), false);
+ cmd.add(new DestroyElementCommand(r));
+ cmd.add(new DeleteCommand(getEditingDomain(),
+ incomingLink));
+ continue;
+ }
+ if (ComrelVisualIDRegistry.getVisualID(incomingLink) == MultiSinglePortMappingEditPart.VISUAL_ID) {
+ DestroyElementRequest r = new DestroyElementRequest(
+ incomingLink.getElement(), false);
+ cmd.add(new DestroyElementCommand(r));
+ cmd.add(new DeleteCommand(getEditingDomain(),
+ incomingLink));
+ continue;
+ }
+ }
+ for (Iterator<?> it = node.getSourceEdges().iterator(); it
+ .hasNext();) {
+ Edge outgoingLink = (Edge) it.next();
+ if (ComrelVisualIDRegistry.getVisualID(outgoingLink) == SinglePortMappingEditPart.VISUAL_ID) {
+ DestroyElementRequest r = new DestroyElementRequest(
+ outgoingLink.getElement(), false);
+ cmd.add(new DestroyElementCommand(r));
+ cmd.add(new DeleteCommand(getEditingDomain(),
+ outgoingLink));
+ continue;
+ }
+ }
+ cmd.add(new DestroyElementCommand(new DestroyElementRequest(
+ getEditingDomain(), node.getElement(), false))); // directlyOwned: true
+ // don't need explicit deletion of node as parent's view deletion would clean child views as well
+ // cmd.add(new org.eclipse.gmf.runtime.diagram.core.commands.DeleteCommand(getEditingDomain(), node));
+ break;
+ case MultiInputPort3EditPart.VISUAL_ID:
+ for (Iterator<?> it = node.getTargetEdges().iterator(); it
+ .hasNext();) {
+ Edge incomingLink = (Edge) it.next();
+ if (ComrelVisualIDRegistry.getVisualID(incomingLink) == MultiPortMappingEditPart.VISUAL_ID) {
+ DestroyElementRequest r = new DestroyElementRequest(
+ incomingLink.getElement(), false);
+ cmd.add(new DestroyElementCommand(r));
+ cmd.add(new DeleteCommand(getEditingDomain(),
+ incomingLink));
+ continue;
+ }
+ }
+ for (Iterator<?> it = node.getSourceEdges().iterator(); it
+ .hasNext();) {
+ Edge outgoingLink = (Edge) it.next();
+ if (ComrelVisualIDRegistry.getVisualID(outgoingLink) == MultiPortMappingEditPart.VISUAL_ID) {
+ DestroyElementRequest r = new DestroyElementRequest(
+ outgoingLink.getElement(), false);
+ cmd.add(new DestroyElementCommand(r));
+ cmd.add(new DeleteCommand(getEditingDomain(),
+ outgoingLink));
+ continue;
+ }
+ if (ComrelVisualIDRegistry.getVisualID(outgoingLink) == MultiSinglePortMappingEditPart.VISUAL_ID) {
+ DestroyElementRequest r = new DestroyElementRequest(
+ outgoingLink.getElement(), false);
+ cmd.add(new DestroyElementCommand(r));
+ cmd.add(new DeleteCommand(getEditingDomain(),
+ outgoingLink));
+ continue;
+ }
+ }
+ cmd.add(new DestroyElementCommand(new DestroyElementRequest(
+ getEditingDomain(), node.getElement(), false))); // directlyOwned: true
+ // don't need explicit deletion of node as parent's view deletion would clean child views as well
+ // cmd.add(new org.eclipse.gmf.runtime.diagram.core.commands.DeleteCommand(getEditingDomain(), node));
+ break;
+ case SingleOutputPortEditPart.VISUAL_ID:
+ for (Iterator<?> it = node.getSourceEdges().iterator(); it
+ .hasNext();) {
+ Edge outgoingLink = (Edge) it.next();
+ if (ComrelVisualIDRegistry.getVisualID(outgoingLink) == SinglePortMappingEditPart.VISUAL_ID) {
+ DestroyElementRequest r = new DestroyElementRequest(
+ outgoingLink.getElement(), false);
+ cmd.add(new DestroyElementCommand(r));
+ cmd.add(new DeleteCommand(getEditingDomain(),
+ outgoingLink));
+ continue;
+ }
+ }
+ cmd.add(new DestroyElementCommand(new DestroyElementRequest(
+ getEditingDomain(), node.getElement(), false))); // directlyOwned: true
+ // don't need explicit deletion of node as parent's view deletion would clean child views as well
+ // cmd.add(new org.eclipse.gmf.runtime.diagram.core.commands.DeleteCommand(getEditingDomain(), node));
+ break;
+ }
+ }
+ }
+
+}
diff --git a/org.eclipse.emf.refactor.comrel.diagram/src/comrel/diagram/edit/policies/SingleFeatureUnitCanonicalEditPolicy.java b/org.eclipse.emf.refactor.comrel.diagram/src/comrel/diagram/edit/policies/SingleFeatureUnitCanonicalEditPolicy.java
new file mode 100644
index 0000000..fc0f44d
--- /dev/null
+++ b/org.eclipse.emf.refactor.comrel.diagram/src/comrel/diagram/edit/policies/SingleFeatureUnitCanonicalEditPolicy.java
@@ -0,0 +1,182 @@
+/*
+ *
+ */
+package comrel.diagram.edit.policies;
+
+import java.util.ArrayList;
+import java.util.Collection;
+import java.util.HashSet;
+import java.util.Iterator;
+import java.util.LinkedList;
+import java.util.List;
+import java.util.Set;
+
+import org.eclipse.core.runtime.IAdaptable;
+import org.eclipse.emf.ecore.EObject;
+import org.eclipse.emf.ecore.EStructuralFeature;
+import org.eclipse.gef.commands.Command;
+import org.eclipse.gmf.runtime.diagram.core.util.ViewUtil;
+import org.eclipse.gmf.runtime.diagram.ui.commands.DeferredLayoutCommand;
+import org.eclipse.gmf.runtime.diagram.ui.commands.ICommandProxy;
+import org.eclipse.gmf.runtime.diagram.ui.commands.SetViewMutabilityCommand;
+import org.eclipse.gmf.runtime.diagram.ui.editpolicies.CanonicalEditPolicy;
+import org.eclipse.gmf.runtime.diagram.ui.requests.CreateViewRequest;
+import org.eclipse.gmf.runtime.emf.core.util.EObjectAdapter;
+import org.eclipse.gmf.runtime.notation.Node;
+import org.eclipse.gmf.runtime.notation.View;
+
+import comrel.ComrelPackage;
+import comrel.diagram.edit.parts.MultiInputPort3EditPart;
+import comrel.diagram.edit.parts.SingleInputPort4EditPart;
+import comrel.diagram.edit.parts.SingleOutputPortEditPart;
+import comrel.diagram.part.ComrelDiagramUpdater;
+import comrel.diagram.part.ComrelNodeDescriptor;
+import comrel.diagram.part.ComrelVisualIDRegistry;
+
+/**
+ * @generated
+ */
+public class SingleFeatureUnitCanonicalEditPolicy extends CanonicalEditPolicy {
+
+ /**
+ * @generated
+ */
+ private Set<EStructuralFeature> myFeaturesToSynchronize;
+
+ /**
+ * @generated
+ */
+ protected Set getFeaturesToSynchronize() {
+ if (myFeaturesToSynchronize == null) {
+ myFeaturesToSynchronize = new HashSet<EStructuralFeature>();
+ myFeaturesToSynchronize.add(ComrelPackage.eINSTANCE
+ .getSingleFeatureUnit_InputPort());
+ myFeaturesToSynchronize.add(ComrelPackage.eINSTANCE
+ .getSingleFeatureUnit_SecondaryInputPorts());
+ myFeaturesToSynchronize.add(ComrelPackage.eINSTANCE
+ .getSingleFeatureUnit_OutputPort());
+ }
+ return myFeaturesToSynchronize;
+ }
+
+ /**
+ * @generated
+ */
+ @SuppressWarnings("rawtypes")
+ protected List getSemanticChildrenList() {
+ View viewObject = (View) getHost().getModel();
+ LinkedList<EObject> result = new LinkedList<EObject>();
+ List<ComrelNodeDescriptor> childDescriptors = ComrelDiagramUpdater
+ .getSingleFeatureUnit_3008SemanticChildren(viewObject);
+ for (ComrelNodeDescriptor d : childDescriptors) {
+ result.add(d.getModelElement());
+ }
+ return result;
+ }
+
+ /**
+ * @generated
+ */
+ protected boolean isOrphaned(Collection<EObject> semanticChildren,
+ final View view) {
+ return isMyDiagramElement(view)
+ && !semanticChildren.contains(view.getElement());
+ }
+
+ /**
+ * @generated
+ */
+ private boolean isMyDiagramElement(View view) {
+ int visualID = ComrelVisualIDRegistry.getVisualID(view);
+ return visualID == SingleInputPort4EditPart.VISUAL_ID
+ || visualID == MultiInputPort3EditPart.VISUAL_ID
+ || visualID == SingleOutputPortEditPart.VISUAL_ID;
+ }
+
+ /**
+ * @generated
+ */
+ protected void refreshSemantic() {
+ if (resolveSemanticElement() == null) {
+ return;
+ }
+ LinkedList<IAdaptable> createdViews = new LinkedList<IAdaptable>();
+ List<ComrelNodeDescriptor> childDescriptors = ComrelDiagramUpdater
+ .getSingleFeatureUnit_3008SemanticChildren((View) getHost()
+ .getModel());
+ LinkedList<View> orphaned = new LinkedList<View>();
+ // we care to check only views we recognize as ours
+ LinkedList<View> knownViewChildren = new LinkedList<View>();
+ for (View v : getViewChildren()) {
+ if (isMyDiagramElement(v)) {
+ knownViewChildren.add(v);
+ }
+ }
+ // alternative to #cleanCanonicalSemanticChildren(getViewChildren(), semanticChildren)
+ //
+ // iteration happens over list of desired semantic elements, trying to find best matching View, while original CEP
+ // iterates views, potentially losing view (size/bounds) information - i.e. if there are few views to reference same EObject, only last one
+ // to answer isOrphaned == true will be used for the domain element representation, see #cleanCanonicalSemanticChildren()
+ for (Iterator<ComrelNodeDescriptor> descriptorsIterator = childDescriptors
+ .iterator(); descriptorsIterator.hasNext();) {
+ ComrelNodeDescriptor next = descriptorsIterator.next();
+ String hint = ComrelVisualIDRegistry.getType(next.getVisualID());
+ LinkedList<View> perfectMatch = new LinkedList<View>(); // both semanticElement and hint match that of NodeDescriptor
+ for (View childView : getViewChildren()) {
+ EObject semanticElement = childView.getElement();
+ if (next.getModelElement().equals(semanticElement)) {
+ if (hint.equals(childView.getType())) {
+ perfectMatch.add(childView);
+ // actually, can stop iteration over view children here, but
+ // may want to use not the first view but last one as a 'real' match (the way original CEP does
+ // with its trick with viewToSemanticMap inside #cleanCanonicalSemanticChildren
+ }
+ }
+ }
+ if (perfectMatch.size() > 0) {
+ descriptorsIterator.remove(); // precise match found no need to create anything for the NodeDescriptor
+ // use only one view (first or last?), keep rest as orphaned for further consideration
+ knownViewChildren.remove(perfectMatch.getFirst());
+ }
+ }
+ // those left in knownViewChildren are subject to removal - they are our diagram elements we didn't find match to,
+ // or those we have potential matches to, and thus need to be recreated, preserving size/location information.
+ orphaned.addAll(knownViewChildren);
+ //
+ ArrayList<CreateViewRequest.ViewDescriptor> viewDescriptors = new ArrayList<CreateViewRequest.ViewDescriptor>(
+ childDescriptors.size());
+ for (ComrelNodeDescriptor next : childDescriptors) {
+ String hint = ComrelVisualIDRegistry.getType(next.getVisualID());
+ IAdaptable elementAdapter = new CanonicalElementAdapter(
+ next.getModelElement(), hint);
+ CreateViewRequest.ViewDescriptor descriptor = new CreateViewRequest.ViewDescriptor(
+ elementAdapter, Node.class, hint, ViewUtil.APPEND, false,
+ host().getDiagramPreferencesHint());
+ viewDescriptors.add(descriptor);
+ }
+
+ boolean changed = deleteViews(orphaned.iterator());
+ //
+ CreateViewRequest request = getCreateViewRequest(viewDescriptors);
+ Command cmd = getCreateViewCommand(request);
+ if (cmd != null && cmd.canExecute()) {
+ SetViewMutabilityCommand.makeMutable(
+ new EObjectAdapter(host().getNotationView())).execute();
+ executeCommand(cmd);
+ @SuppressWarnings("unchecked")
+ List<IAdaptable> nl = (List<IAdaptable>) request.getNewObject();
+ createdViews.addAll(nl);
+ }
+ if (changed || createdViews.size() > 0) {
+ postProcessRefreshSemantic(createdViews);
+ }
+ if (createdViews.size() > 1) {
+ // perform a layout of the container
+ DeferredLayoutCommand layoutCmd = new DeferredLayoutCommand(host()
+ .getEditingDomain(), createdViews, host());
+ executeCommand(new ICommandProxy(layoutCmd));
+ }
+
+ makeViewsImmutable(createdViews);
+ }
+}
diff --git a/org.eclipse.emf.refactor.comrel.diagram/src/comrel/diagram/edit/policies/SingleFeatureUnitItemSemanticEditPolicy.java b/org.eclipse.emf.refactor.comrel.diagram/src/comrel/diagram/edit/policies/SingleFeatureUnitItemSemanticEditPolicy.java
new file mode 100644
index 0000000..8cf3ded
--- /dev/null
+++ b/org.eclipse.emf.refactor.comrel.diagram/src/comrel/diagram/edit/policies/SingleFeatureUnitItemSemanticEditPolicy.java
@@ -0,0 +1,188 @@
+/*
+ *
+ */
+package comrel.diagram.edit.policies;
+
+import java.util.Iterator;
+
+import org.eclipse.emf.ecore.EAnnotation;
+import org.eclipse.gef.commands.Command;
+import org.eclipse.gmf.runtime.common.core.command.ICompositeCommand;
+import org.eclipse.gmf.runtime.diagram.core.commands.DeleteCommand;
+import org.eclipse.gmf.runtime.emf.commands.core.command.CompositeTransactionalCommand;
+import org.eclipse.gmf.runtime.emf.type.core.commands.DestroyElementCommand;
+import org.eclipse.gmf.runtime.emf.type.core.requests.CreateElementRequest;
+import org.eclipse.gmf.runtime.emf.type.core.requests.DestroyElementRequest;
+import org.eclipse.gmf.runtime.notation.Edge;
+import org.eclipse.gmf.runtime.notation.Node;
+import org.eclipse.gmf.runtime.notation.View;
+
+import comrel.diagram.edit.commands.MultiInputPort3CreateCommand;
+import comrel.diagram.edit.commands.SingleInputPort4CreateCommand;
+import comrel.diagram.edit.commands.SingleOutputPortCreateCommand;
+import comrel.diagram.edit.parts.MultiInputPort3EditPart;
+import comrel.diagram.edit.parts.MultiPortMappingEditPart;
+import comrel.diagram.edit.parts.MultiSinglePortMappingEditPart;
+import comrel.diagram.edit.parts.SingleInputPort4EditPart;
+import comrel.diagram.edit.parts.SingleOutputPortEditPart;
+import comrel.diagram.edit.parts.SinglePortMappingEditPart;
+import comrel.diagram.part.ComrelVisualIDRegistry;
+import comrel.diagram.providers.ComrelElementTypes;
+
+/**
+ * @generated
+ */
+public class SingleFeatureUnitItemSemanticEditPolicy extends
+ ComrelBaseItemSemanticEditPolicy {
+
+ /**
+ * @generated
+ */
+ public SingleFeatureUnitItemSemanticEditPolicy() {
+ super(ComrelElementTypes.SingleFeatureUnit_3008);
+ }
+
+ /**
+ * @generated
+ */
+ protected Command getCreateCommand(CreateElementRequest req) {
+ if (ComrelElementTypes.SingleInputPort_3009 == req.getElementType()) {
+ return getGEFWrapper(new SingleInputPort4CreateCommand(req));
+ }
+ if (ComrelElementTypes.MultiInputPort_3010 == req.getElementType()) {
+ return getGEFWrapper(new MultiInputPort3CreateCommand(req));
+ }
+ if (ComrelElementTypes.SingleOutputPort_3011 == req.getElementType()) {
+ return getGEFWrapper(new SingleOutputPortCreateCommand(req));
+ }
+ return super.getCreateCommand(req);
+ }
+
+ /**
+ * @generated
+ */
+ protected Command getDestroyElementCommand(DestroyElementRequest req) {
+ View view = (View) getHost().getModel();
+ CompositeTransactionalCommand cmd = new CompositeTransactionalCommand(
+ getEditingDomain(), null);
+ cmd.setTransactionNestingEnabled(false);
+ EAnnotation annotation = view.getEAnnotation("Shortcut"); //$NON-NLS-1$
+ if (annotation == null) {
+ // there are indirectly referenced children, need extra commands: false
+ addDestroyChildNodesCommand(cmd);
+ addDestroyShortcutsCommand(cmd, view);
+ // delete host element
+ cmd.add(new DestroyElementCommand(req));
+ } else {
+ cmd.add(new DeleteCommand(getEditingDomain(), view));
+ }
+ return getGEFWrapper(cmd.reduce());
+ }
+
+ /**
+ * @generated
+ */
+ private void addDestroyChildNodesCommand(ICompositeCommand cmd) {
+ View view = (View) getHost().getModel();
+ for (Iterator<?> nit = view.getChildren().iterator(); nit.hasNext();) {
+ Node node = (Node) nit.next();
+ switch (ComrelVisualIDRegistry.getVisualID(node)) {
+ case SingleInputPort4EditPart.VISUAL_ID:
+ for (Iterator<?> it = node.getTargetEdges().iterator(); it
+ .hasNext();) {
+ Edge incomingLink = (Edge) it.next();
+ if (ComrelVisualIDRegistry.getVisualID(incomingLink) == SinglePortMappingEditPart.VISUAL_ID) {
+ DestroyElementRequest r = new DestroyElementRequest(
+ incomingLink.getElement(), false);
+ cmd.add(new DestroyElementCommand(r));
+ cmd.add(new DeleteCommand(getEditingDomain(),
+ incomingLink));
+ continue;
+ }
+ if (ComrelVisualIDRegistry.getVisualID(incomingLink) == MultiSinglePortMappingEditPart.VISUAL_ID) {
+ DestroyElementRequest r = new DestroyElementRequest(
+ incomingLink.getElement(), false);
+ cmd.add(new DestroyElementCommand(r));
+ cmd.add(new DeleteCommand(getEditingDomain(),
+ incomingLink));
+ continue;
+ }
+ }
+ for (Iterator<?> it = node.getSourceEdges().iterator(); it
+ .hasNext();) {
+ Edge outgoingLink = (Edge) it.next();
+ if (ComrelVisualIDRegistry.getVisualID(outgoingLink) == SinglePortMappingEditPart.VISUAL_ID) {
+ DestroyElementRequest r = new DestroyElementRequest(
+ outgoingLink.getElement(), false);
+ cmd.add(new DestroyElementCommand(r));
+ cmd.add(new DeleteCommand(getEditingDomain(),
+ outgoingLink));
+ continue;
+ }
+ }
+ cmd.add(new DestroyElementCommand(new DestroyElementRequest(
+ getEditingDomain(), node.getElement(), false))); // directlyOwned: true
+ // don't need explicit deletion of node as parent's view deletion would clean child views as well
+ // cmd.add(new org.eclipse.gmf.runtime.diagram.core.commands.DeleteCommand(getEditingDomain(), node));
+ break;
+ case MultiInputPort3EditPart.VISUAL_ID:
+ for (Iterator<?> it = node.getTargetEdges().iterator(); it
+ .hasNext();) {
+ Edge incomingLink = (Edge) it.next();
+ if (ComrelVisualIDRegistry.getVisualID(incomingLink) == MultiPortMappingEditPart.VISUAL_ID) {
+ DestroyElementRequest r = new DestroyElementRequest(
+ incomingLink.getElement(), false);
+ cmd.add(new DestroyElementCommand(r));
+ cmd.add(new DeleteCommand(getEditingDomain(),
+ incomingLink));
+ continue;
+ }
+ }
+ for (Iterator<?> it = node.getSourceEdges().iterator(); it
+ .hasNext();) {
+ Edge outgoingLink = (Edge) it.next();
+ if (ComrelVisualIDRegistry.getVisualID(outgoingLink) == MultiPortMappingEditPart.VISUAL_ID) {
+ DestroyElementRequest r = new DestroyElementRequest(
+ outgoingLink.getElement(), false);
+ cmd.add(new DestroyElementCommand(r));
+ cmd.add(new DeleteCommand(getEditingDomain(),
+ outgoingLink));
+ continue;
+ }
+ if (ComrelVisualIDRegistry.getVisualID(outgoingLink) == MultiSinglePortMappingEditPart.VISUAL_ID) {
+ DestroyElementRequest r = new DestroyElementRequest(
+ outgoingLink.getElement(), false);
+ cmd.add(new DestroyElementCommand(r));
+ cmd.add(new DeleteCommand(getEditingDomain(),
+ outgoingLink));
+ continue;
+ }
+ }
+ cmd.add(new DestroyElementCommand(new DestroyElementRequest(
+ getEditingDomain(), node.getElement(), false))); // directlyOwned: true
+ // don't need explicit deletion of node as parent's view deletion would clean child views as well
+ // cmd.add(new org.eclipse.gmf.runtime.diagram.core.commands.DeleteCommand(getEditingDomain(), node));
+ break;
+ case SingleOutputPortEditPart.VISUAL_ID:
+ for (Iterator<?> it = node.getSourceEdges().iterator(); it
+ .hasNext();) {
+ Edge outgoingLink = (Edge) it.next();
+ if (ComrelVisualIDRegistry.getVisualID(outgoingLink) == SinglePortMappingEditPart.VISUAL_ID) {
+ DestroyElementRequest r = new DestroyElementRequest(
+ outgoingLink.getElement(), false);
+ cmd.add(new DestroyElementCommand(r));
+ cmd.add(new DeleteCommand(getEditingDomain(),
+ outgoingLink));
+ continue;
+ }
+ }
+ cmd.add(new DestroyElementCommand(new DestroyElementRequest(
+ getEditingDomain(), node.getElement(), false))); // directlyOwned: true
+ // don't need explicit deletion of node as parent's view deletion would clean child views as well
+ // cmd.add(new org.eclipse.gmf.runtime.diagram.core.commands.DeleteCommand(getEditingDomain(), node));
+ break;
+ }
+ }
+ }
+
+}
diff --git a/org.eclipse.emf.refactor.comrel.diagram/src/comrel/diagram/edit/policies/SingleFilterUnit2CanonicalEditPolicy.java b/org.eclipse.emf.refactor.comrel.diagram/src/comrel/diagram/edit/policies/SingleFilterUnit2CanonicalEditPolicy.java
new file mode 100644
index 0000000..fb6dc87
--- /dev/null
+++ b/org.eclipse.emf.refactor.comrel.diagram/src/comrel/diagram/edit/policies/SingleFilterUnit2CanonicalEditPolicy.java
@@ -0,0 +1,178 @@
+/*
+ *
+ */
+package comrel.diagram.edit.policies;
+
+import java.util.ArrayList;
+import java.util.Collection;
+import java.util.HashSet;
+import java.util.Iterator;
+import java.util.LinkedList;
+import java.util.List;
+import java.util.Set;
+
+import org.eclipse.core.runtime.IAdaptable;
+import org.eclipse.emf.ecore.EObject;
+import org.eclipse.emf.ecore.EStructuralFeature;
+import org.eclipse.gef.commands.Command;
+import org.eclipse.gmf.runtime.diagram.core.util.ViewUtil;
+import org.eclipse.gmf.runtime.diagram.ui.commands.DeferredLayoutCommand;
+import org.eclipse.gmf.runtime.diagram.ui.commands.ICommandProxy;
+import org.eclipse.gmf.runtime.diagram.ui.commands.SetViewMutabilityCommand;
+import org.eclipse.gmf.runtime.diagram.ui.editpolicies.CanonicalEditPolicy;
+import org.eclipse.gmf.runtime.diagram.ui.requests.CreateViewRequest;
+import org.eclipse.gmf.runtime.emf.core.util.EObjectAdapter;
+import org.eclipse.gmf.runtime.notation.Node;
+import org.eclipse.gmf.runtime.notation.View;
+
+import comrel.ComrelPackage;
+import comrel.diagram.edit.parts.MultiInputPort5EditPart;
+import comrel.diagram.edit.parts.SingleOutputPort2EditPart;
+import comrel.diagram.part.ComrelDiagramUpdater;
+import comrel.diagram.part.ComrelNodeDescriptor;
+import comrel.diagram.part.ComrelVisualIDRegistry;
+
+/**
+ * @generated
+ */
+public class SingleFilterUnit2CanonicalEditPolicy extends CanonicalEditPolicy {
+
+ /**
+ * @generated
+ */
+ private Set<EStructuralFeature> myFeaturesToSynchronize;
+
+ /**
+ * @generated
+ */
+ protected Set getFeaturesToSynchronize() {
+ if (myFeaturesToSynchronize == null) {
+ myFeaturesToSynchronize = new HashSet<EStructuralFeature>();
+ myFeaturesToSynchronize.add(ComrelPackage.eINSTANCE
+ .getSingleFilterUnit_InputPort());
+ myFeaturesToSynchronize.add(ComrelPackage.eINSTANCE
+ .getSingleFilterUnit_OutputPort());
+ }
+ return myFeaturesToSynchronize;
+ }
+
+ /**
+ * @generated
+ */
+ @SuppressWarnings("rawtypes")
+ protected List getSemanticChildrenList() {
+ View viewObject = (View) getHost().getModel();
+ LinkedList<EObject> result = new LinkedList<EObject>();
+ List<ComrelNodeDescriptor> childDescriptors = ComrelDiagramUpdater
+ .getSingleFilterUnit_3040SemanticChildren(viewObject);
+ for (ComrelNodeDescriptor d : childDescriptors) {
+ result.add(d.getModelElement());
+ }
+ return result;
+ }
+
+ /**
+ * @generated
+ */
+ protected boolean isOrphaned(Collection<EObject> semanticChildren,
+ final View view) {
+ return isMyDiagramElement(view)
+ && !semanticChildren.contains(view.getElement());
+ }
+
+ /**
+ * @generated
+ */
+ private boolean isMyDiagramElement(View view) {
+ int visualID = ComrelVisualIDRegistry.getVisualID(view);
+ return visualID == MultiInputPort5EditPart.VISUAL_ID
+ || visualID == SingleOutputPort2EditPart.VISUAL_ID;
+ }
+
+ /**
+ * @generated
+ */
+ protected void refreshSemantic() {
+ if (resolveSemanticElement() == null) {
+ return;
+ }
+ LinkedList<IAdaptable> createdViews = new LinkedList<IAdaptable>();
+ List<ComrelNodeDescriptor> childDescriptors = ComrelDiagramUpdater
+ .getSingleFilterUnit_3040SemanticChildren((View) getHost()
+ .getModel());
+ LinkedList<View> orphaned = new LinkedList<View>();
+ // we care to check only views we recognize as ours
+ LinkedList<View> knownViewChildren = new LinkedList<View>();
+ for (View v : getViewChildren()) {
+ if (isMyDiagramElement(v)) {
+ knownViewChildren.add(v);
+ }
+ }
+ // alternative to #cleanCanonicalSemanticChildren(getViewChildren(), semanticChildren)
+ //
+ // iteration happens over list of desired semantic elements, trying to find best matching View, while original CEP
+ // iterates views, potentially losing view (size/bounds) information - i.e. if there are few views to reference same EObject, only last one
+ // to answer isOrphaned == true will be used for the domain element representation, see #cleanCanonicalSemanticChildren()
+ for (Iterator<ComrelNodeDescriptor> descriptorsIterator = childDescriptors
+ .iterator(); descriptorsIterator.hasNext();) {
+ ComrelNodeDescriptor next = descriptorsIterator.next();
+ String hint = ComrelVisualIDRegistry.getType(next.getVisualID());
+ LinkedList<View> perfectMatch = new LinkedList<View>(); // both semanticElement and hint match that of NodeDescriptor
+ for (View childView : getViewChildren()) {
+ EObject semanticElement = childView.getElement();
+ if (next.getModelElement().equals(semanticElement)) {
+ if (hint.equals(childView.getType())) {
+ perfectMatch.add(childView);
+ // actually, can stop iteration over view children here, but
+ // may want to use not the first view but last one as a 'real' match (the way original CEP does
+ // with its trick with viewToSemanticMap inside #cleanCanonicalSemanticChildren
+ }
+ }
+ }
+ if (perfectMatch.size() > 0) {
+ descriptorsIterator.remove(); // precise match found no need to create anything for the NodeDescriptor
+ // use only one view (first or last?), keep rest as orphaned for further consideration
+ knownViewChildren.remove(perfectMatch.getFirst());
+ }
+ }
+ // those left in knownViewChildren are subject to removal - they are our diagram elements we didn't find match to,
+ // or those we have potential matches to, and thus need to be recreated, preserving size/location information.
+ orphaned.addAll(knownViewChildren);
+ //
+ ArrayList<CreateViewRequest.ViewDescriptor> viewDescriptors = new ArrayList<CreateViewRequest.ViewDescriptor>(
+ childDescriptors.size());
+ for (ComrelNodeDescriptor next : childDescriptors) {
+ String hint = ComrelVisualIDRegistry.getType(next.getVisualID());
+ IAdaptable elementAdapter = new CanonicalElementAdapter(
+ next.getModelElement(), hint);
+ CreateViewRequest.ViewDescriptor descriptor = new CreateViewRequest.ViewDescriptor(
+ elementAdapter, Node.class, hint, ViewUtil.APPEND, false,
+ host().getDiagramPreferencesHint());
+ viewDescriptors.add(descriptor);
+ }
+
+ boolean changed = deleteViews(orphaned.iterator());
+ //
+ CreateViewRequest request = getCreateViewRequest(viewDescriptors);
+ Command cmd = getCreateViewCommand(request);
+ if (cmd != null && cmd.canExecute()) {
+ SetViewMutabilityCommand.makeMutable(
+ new EObjectAdapter(host().getNotationView())).execute();
+ executeCommand(cmd);
+ @SuppressWarnings("unchecked")
+ List<IAdaptable> nl = (List<IAdaptable>) request.getNewObject();
+ createdViews.addAll(nl);
+ }
+ if (changed || createdViews.size() > 0) {
+ postProcessRefreshSemantic(createdViews);
+ }
+ if (createdViews.size() > 1) {
+ // perform a layout of the container
+ DeferredLayoutCommand layoutCmd = new DeferredLayoutCommand(host()
+ .getEditingDomain(), createdViews, host());
+ executeCommand(new ICommandProxy(layoutCmd));
+ }
+
+ makeViewsImmutable(createdViews);
+ }
+}
diff --git a/org.eclipse.emf.refactor.comrel.diagram/src/comrel/diagram/edit/policies/SingleFilterUnit2ItemSemanticEditPolicy.java b/org.eclipse.emf.refactor.comrel.diagram/src/comrel/diagram/edit/policies/SingleFilterUnit2ItemSemanticEditPolicy.java
new file mode 100644
index 0000000..a93dec7
--- /dev/null
+++ b/org.eclipse.emf.refactor.comrel.diagram/src/comrel/diagram/edit/policies/SingleFilterUnit2ItemSemanticEditPolicy.java
@@ -0,0 +1,145 @@
+/*
+ *
+ */
+package comrel.diagram.edit.policies;
+
+import java.util.Iterator;
+
+import org.eclipse.emf.ecore.EAnnotation;
+import org.eclipse.gef.commands.Command;
+import org.eclipse.gmf.runtime.common.core.command.ICompositeCommand;
+import org.eclipse.gmf.runtime.diagram.core.commands.DeleteCommand;
+import org.eclipse.gmf.runtime.emf.commands.core.command.CompositeTransactionalCommand;
+import org.eclipse.gmf.runtime.emf.type.core.commands.DestroyElementCommand;
+import org.eclipse.gmf.runtime.emf.type.core.requests.CreateElementRequest;
+import org.eclipse.gmf.runtime.emf.type.core.requests.DestroyElementRequest;
+import org.eclipse.gmf.runtime.notation.Edge;
+import org.eclipse.gmf.runtime.notation.Node;
+import org.eclipse.gmf.runtime.notation.View;
+
+import comrel.diagram.edit.commands.MultiInputPort5CreateCommand;
+import comrel.diagram.edit.commands.SingleOutputPort2CreateCommand;
+import comrel.diagram.edit.parts.MultiInputPort5EditPart;
+import comrel.diagram.edit.parts.MultiPortMappingEditPart;
+import comrel.diagram.edit.parts.MultiSinglePortMappingEditPart;
+import comrel.diagram.edit.parts.SingleOutputPort2EditPart;
+import comrel.diagram.edit.parts.SinglePortMappingEditPart;
+import comrel.diagram.part.ComrelVisualIDRegistry;
+import comrel.diagram.providers.ComrelElementTypes;
+
+/**
+ * @generated
+ */
+public class SingleFilterUnit2ItemSemanticEditPolicy extends
+ ComrelBaseItemSemanticEditPolicy {
+
+ /**
+ * @generated
+ */
+ public SingleFilterUnit2ItemSemanticEditPolicy() {
+ super(ComrelElementTypes.SingleFilterUnit_3040);
+ }
+
+ /**
+ * @generated
+ */
+ protected Command getCreateCommand(CreateElementRequest req) {
+ if (ComrelElementTypes.MultiInputPort_3017 == req.getElementType()) {
+ return getGEFWrapper(new MultiInputPort5CreateCommand(req));
+ }
+ if (ComrelElementTypes.SingleOutputPort_3018 == req.getElementType()) {
+ return getGEFWrapper(new SingleOutputPort2CreateCommand(req));
+ }
+ return super.getCreateCommand(req);
+ }
+
+ /**
+ * @generated
+ */
+ protected Command getDestroyElementCommand(DestroyElementRequest req) {
+ View view = (View) getHost().getModel();
+ CompositeTransactionalCommand cmd = new CompositeTransactionalCommand(
+ getEditingDomain(), null);
+ cmd.setTransactionNestingEnabled(false);
+ EAnnotation annotation = view.getEAnnotation("Shortcut"); //$NON-NLS-1$
+ if (annotation == null) {
+ // there are indirectly referenced children, need extra commands: false
+ addDestroyChildNodesCommand(cmd);
+ addDestroyShortcutsCommand(cmd, view);
+ // delete host element
+ cmd.add(new DestroyElementCommand(req));
+ } else {
+ cmd.add(new DeleteCommand(getEditingDomain(), view));
+ }
+ return getGEFWrapper(cmd.reduce());
+ }
+
+ /**
+ * @generated
+ */
+ private void addDestroyChildNodesCommand(ICompositeCommand cmd) {
+ View view = (View) getHost().getModel();
+ for (Iterator<?> nit = view.getChildren().iterator(); nit.hasNext();) {
+ Node node = (Node) nit.next();
+ switch (ComrelVisualIDRegistry.getVisualID(node)) {
+ case MultiInputPort5EditPart.VISUAL_ID:
+ for (Iterator<?> it = node.getTargetEdges().iterator(); it
+ .hasNext();) {
+ Edge incomingLink = (Edge) it.next();
+ if (ComrelVisualIDRegistry.getVisualID(incomingLink) == MultiPortMappingEditPart.VISUAL_ID) {
+ DestroyElementRequest r = new DestroyElementRequest(
+ incomingLink.getElement(), false);
+ cmd.add(new DestroyElementCommand(r));
+ cmd.add(new DeleteCommand(getEditingDomain(),
+ incomingLink));
+ continue;
+ }
+ }
+ for (Iterator<?> it = node.getSourceEdges().iterator(); it
+ .hasNext();) {
+ Edge outgoingLink = (Edge) it.next();
+ if (ComrelVisualIDRegistry.getVisualID(outgoingLink) == MultiPortMappingEditPart.VISUAL_ID) {
+ DestroyElementRequest r = new DestroyElementRequest(
+ outgoingLink.getElement(), false);
+ cmd.add(new DestroyElementCommand(r));
+ cmd.add(new DeleteCommand(getEditingDomain(),
+ outgoingLink));
+ continue;
+ }
+ if (ComrelVisualIDRegistry.getVisualID(outgoingLink) == MultiSinglePortMappingEditPart.VISUAL_ID) {
+ DestroyElementRequest r = new DestroyElementRequest(
+ outgoingLink.getElement(), false);
+ cmd.add(new DestroyElementCommand(r));
+ cmd.add(new DeleteCommand(getEditingDomain(),
+ outgoingLink));
+ continue;
+ }
+ }
+ cmd.add(new DestroyElementCommand(new DestroyElementRequest(
+ getEditingDomain(), node.getElement(), false))); // directlyOwned: true
+ // don't need explicit deletion of node as parent's view deletion would clean child views as well
+ // cmd.add(new org.eclipse.gmf.runtime.diagram.core.commands.DeleteCommand(getEditingDomain(), node));
+ break;
+ case SingleOutputPort2EditPart.VISUAL_ID:
+ for (Iterator<?> it = node.getSourceEdges().iterator(); it
+ .hasNext();) {
+ Edge outgoingLink = (Edge) it.next();
+ if (ComrelVisualIDRegistry.getVisualID(outgoingLink) == SinglePortMappingEditPart.VISUAL_ID) {
+ DestroyElementRequest r = new DestroyElementRequest(
+ outgoingLink.getElement(), false);
+ cmd.add(new DestroyElementCommand(r));
+ cmd.add(new DeleteCommand(getEditingDomain(),
+ outgoingLink));
+ continue;
+ }
+ }
+ cmd.add(new DestroyElementCommand(new DestroyElementRequest(
+ getEditingDomain(), node.getElement(), false))); // directlyOwned: true
+ // don't need explicit deletion of node as parent's view deletion would clean child views as well
+ // cmd.add(new org.eclipse.gmf.runtime.diagram.core.commands.DeleteCommand(getEditingDomain(), node));
+ break;
+ }
+ }
+ }
+
+}
diff --git a/org.eclipse.emf.refactor.comrel.diagram/src/comrel/diagram/edit/policies/SingleFilterUnit3CanonicalEditPolicy.java b/org.eclipse.emf.refactor.comrel.diagram/src/comrel/diagram/edit/policies/SingleFilterUnit3CanonicalEditPolicy.java
new file mode 100644
index 0000000..b12a39f
--- /dev/null
+++ b/org.eclipse.emf.refactor.comrel.diagram/src/comrel/diagram/edit/policies/SingleFilterUnit3CanonicalEditPolicy.java
@@ -0,0 +1,178 @@
+/*
+ *
+ */
+package comrel.diagram.edit.policies;
+
+import java.util.ArrayList;
+import java.util.Collection;
+import java.util.HashSet;
+import java.util.Iterator;
+import java.util.LinkedList;
+import java.util.List;
+import java.util.Set;
+
+import org.eclipse.core.runtime.IAdaptable;
+import org.eclipse.emf.ecore.EObject;
+import org.eclipse.emf.ecore.EStructuralFeature;
+import org.eclipse.gef.commands.Command;
+import org.eclipse.gmf.runtime.diagram.core.util.ViewUtil;
+import org.eclipse.gmf.runtime.diagram.ui.commands.DeferredLayoutCommand;
+import org.eclipse.gmf.runtime.diagram.ui.commands.ICommandProxy;
+import org.eclipse.gmf.runtime.diagram.ui.commands.SetViewMutabilityCommand;
+import org.eclipse.gmf.runtime.diagram.ui.editpolicies.CanonicalEditPolicy;
+import org.eclipse.gmf.runtime.diagram.ui.requests.CreateViewRequest;
+import org.eclipse.gmf.runtime.emf.core.util.EObjectAdapter;
+import org.eclipse.gmf.runtime.notation.Node;
+import org.eclipse.gmf.runtime.notation.View;
+
+import comrel.ComrelPackage;
+import comrel.diagram.edit.parts.MultiInputPort5EditPart;
+import comrel.diagram.edit.parts.SingleOutputPort2EditPart;
+import comrel.diagram.part.ComrelDiagramUpdater;
+import comrel.diagram.part.ComrelNodeDescriptor;
+import comrel.diagram.part.ComrelVisualIDRegistry;
+
+/**
+ * @generated
+ */
+public class SingleFilterUnit3CanonicalEditPolicy extends CanonicalEditPolicy {
+
+ /**
+ * @generated
+ */
+ private Set<EStructuralFeature> myFeaturesToSynchronize;
+
+ /**
+ * @generated
+ */
+ protected Set getFeaturesToSynchronize() {
+ if (myFeaturesToSynchronize == null) {
+ myFeaturesToSynchronize = new HashSet<EStructuralFeature>();
+ myFeaturesToSynchronize.add(ComrelPackage.eINSTANCE
+ .getSingleFilterUnit_InputPort());
+ myFeaturesToSynchronize.add(ComrelPackage.eINSTANCE
+ .getSingleFilterUnit_OutputPort());
+ }
+ return myFeaturesToSynchronize;
+ }
+
+ /**
+ * @generated
+ */
+ @SuppressWarnings("rawtypes")
+ protected List getSemanticChildrenList() {
+ View viewObject = (View) getHost().getModel();
+ LinkedList<EObject> result = new LinkedList<EObject>();
+ List<ComrelNodeDescriptor> childDescriptors = ComrelDiagramUpdater
+ .getSingleFilterUnit_3052SemanticChildren(viewObject);
+ for (ComrelNodeDescriptor d : childDescriptors) {
+ result.add(d.getModelElement());
+ }
+ return result;
+ }
+
+ /**
+ * @generated
+ */
+ protected boolean isOrphaned(Collection<EObject> semanticChildren,
+ final View view) {
+ return isMyDiagramElement(view)
+ && !semanticChildren.contains(view.getElement());
+ }
+
+ /**
+ * @generated
+ */
+ private boolean isMyDiagramElement(View view) {
+ int visualID = ComrelVisualIDRegistry.getVisualID(view);
+ return visualID == MultiInputPort5EditPart.VISUAL_ID
+ || visualID == SingleOutputPort2EditPart.VISUAL_ID;
+ }
+
+ /**
+ * @generated
+ */
+ protected void refreshSemantic() {
+ if (resolveSemanticElement() == null) {
+ return;
+ }
+ LinkedList<IAdaptable> createdViews = new LinkedList<IAdaptable>();
+ List<ComrelNodeDescriptor> childDescriptors = ComrelDiagramUpdater
+ .getSingleFilterUnit_3052SemanticChildren((View) getHost()
+ .getModel());
+ LinkedList<View> orphaned = new LinkedList<View>();
+ // we care to check only views we recognize as ours
+ LinkedList<View> knownViewChildren = new LinkedList<View>();
+ for (View v : getViewChildren()) {
+ if (isMyDiagramElement(v)) {
+ knownViewChildren.add(v);
+ }
+ }
+ // alternative to #cleanCanonicalSemanticChildren(getViewChildren(), semanticChildren)
+ //
+ // iteration happens over list of desired semantic elements, trying to find best matching View, while original CEP
+ // iterates views, potentially losing view (size/bounds) information - i.e. if there are few views to reference same EObject, only last one
+ // to answer isOrphaned == true will be used for the domain element representation, see #cleanCanonicalSemanticChildren()
+ for (Iterator<ComrelNodeDescriptor> descriptorsIterator = childDescriptors
+ .iterator(); descriptorsIterator.hasNext();) {
+ ComrelNodeDescriptor next = descriptorsIterator.next();
+ String hint = ComrelVisualIDRegistry.getType(next.getVisualID());
+ LinkedList<View> perfectMatch = new LinkedList<View>(); // both semanticElement and hint match that of NodeDescriptor
+ for (View childView : getViewChildren()) {
+ EObject semanticElement = childView.getElement();
+ if (next.getModelElement().equals(semanticElement)) {
+ if (hint.equals(childView.getType())) {
+ perfectMatch.add(childView);
+ // actually, can stop iteration over view children here, but
+ // may want to use not the first view but last one as a 'real' match (the way original CEP does
+ // with its trick with viewToSemanticMap inside #cleanCanonicalSemanticChildren
+ }
+ }
+ }
+ if (perfectMatch.size() > 0) {
+ descriptorsIterator.remove(); // precise match found no need to create anything for the NodeDescriptor
+ // use only one view (first or last?), keep rest as orphaned for further consideration
+ knownViewChildren.remove(perfectMatch.getFirst());
+ }
+ }
+ // those left in knownViewChildren are subject to removal - they are our diagram elements we didn't find match to,
+ // or those we have potential matches to, and thus need to be recreated, preserving size/location information.
+ orphaned.addAll(knownViewChildren);
+ //
+ ArrayList<CreateViewRequest.ViewDescriptor> viewDescriptors = new ArrayList<CreateViewRequest.ViewDescriptor>(
+ childDescriptors.size());
+ for (ComrelNodeDescriptor next : childDescriptors) {
+ String hint = ComrelVisualIDRegistry.getType(next.getVisualID());
+ IAdaptable elementAdapter = new CanonicalElementAdapter(
+ next.getModelElement(), hint);
+ CreateViewRequest.ViewDescriptor descriptor = new CreateViewRequest.ViewDescriptor(
+ elementAdapter, Node.class, hint, ViewUtil.APPEND, false,
+ host().getDiagramPreferencesHint());
+ viewDescriptors.add(descriptor);
+ }
+
+ boolean changed = deleteViews(orphaned.iterator());
+ //
+ CreateViewRequest request = getCreateViewRequest(viewDescriptors);
+ Command cmd = getCreateViewCommand(request);
+ if (cmd != null && cmd.canExecute()) {
+ SetViewMutabilityCommand.makeMutable(
+ new EObjectAdapter(host().getNotationView())).execute();
+ executeCommand(cmd);
+ @SuppressWarnings("unchecked")
+ List<IAdaptable> nl = (List<IAdaptable>) request.getNewObject();
+ createdViews.addAll(nl);
+ }
+ if (changed || createdViews.size() > 0) {
+ postProcessRefreshSemantic(createdViews);
+ }
+ if (createdViews.size() > 1) {
+ // perform a layout of the container
+ DeferredLayoutCommand layoutCmd = new DeferredLayoutCommand(host()
+ .getEditingDomain(), createdViews, host());
+ executeCommand(new ICommandProxy(layoutCmd));
+ }
+
+ makeViewsImmutable(createdViews);
+ }
+}
diff --git a/org.eclipse.emf.refactor.comrel.diagram/src/comrel/diagram/edit/policies/SingleFilterUnit3ItemSemanticEditPolicy.java b/org.eclipse.emf.refactor.comrel.diagram/src/comrel/diagram/edit/policies/SingleFilterUnit3ItemSemanticEditPolicy.java
new file mode 100644
index 0000000..7ae7f9e
--- /dev/null
+++ b/org.eclipse.emf.refactor.comrel.diagram/src/comrel/diagram/edit/policies/SingleFilterUnit3ItemSemanticEditPolicy.java
@@ -0,0 +1,145 @@
+/*
+ *
+ */
+package comrel.diagram.edit.policies;
+
+import java.util.Iterator;
+
+import org.eclipse.emf.ecore.EAnnotation;
+import org.eclipse.gef.commands.Command;
+import org.eclipse.gmf.runtime.common.core.command.ICompositeCommand;
+import org.eclipse.gmf.runtime.diagram.core.commands.DeleteCommand;
+import org.eclipse.gmf.runtime.emf.commands.core.command.CompositeTransactionalCommand;
+import org.eclipse.gmf.runtime.emf.type.core.commands.DestroyElementCommand;
+import org.eclipse.gmf.runtime.emf.type.core.requests.CreateElementRequest;
+import org.eclipse.gmf.runtime.emf.type.core.requests.DestroyElementRequest;
+import org.eclipse.gmf.runtime.notation.Edge;
+import org.eclipse.gmf.runtime.notation.Node;
+import org.eclipse.gmf.runtime.notation.View;
+
+import comrel.diagram.edit.commands.MultiInputPort5CreateCommand;
+import comrel.diagram.edit.commands.SingleOutputPort2CreateCommand;
+import comrel.diagram.edit.parts.MultiInputPort5EditPart;
+import comrel.diagram.edit.parts.MultiPortMappingEditPart;
+import comrel.diagram.edit.parts.MultiSinglePortMappingEditPart;
+import comrel.diagram.edit.parts.SingleOutputPort2EditPart;
+import comrel.diagram.edit.parts.SinglePortMappingEditPart;
+import comrel.diagram.part.ComrelVisualIDRegistry;
+import comrel.diagram.providers.ComrelElementTypes;
+
+/**
+ * @generated
+ */
+public class SingleFilterUnit3ItemSemanticEditPolicy extends
+ ComrelBaseItemSemanticEditPolicy {
+
+ /**
+ * @generated
+ */
+ public SingleFilterUnit3ItemSemanticEditPolicy() {
+ super(ComrelElementTypes.SingleFilterUnit_3052);
+ }
+
+ /**
+ * @generated
+ */
+ protected Command getCreateCommand(CreateElementRequest req) {
+ if (ComrelElementTypes.MultiInputPort_3017 == req.getElementType()) {
+ return getGEFWrapper(new MultiInputPort5CreateCommand(req));
+ }
+ if (ComrelElementTypes.SingleOutputPort_3018 == req.getElementType()) {
+ return getGEFWrapper(new SingleOutputPort2CreateCommand(req));
+ }
+ return super.getCreateCommand(req);
+ }
+
+ /**
+ * @generated
+ */
+ protected Command getDestroyElementCommand(DestroyElementRequest req) {
+ View view = (View) getHost().getModel();
+ CompositeTransactionalCommand cmd = new CompositeTransactionalCommand(
+ getEditingDomain(), null);
+ cmd.setTransactionNestingEnabled(false);
+ EAnnotation annotation = view.getEAnnotation("Shortcut"); //$NON-NLS-1$
+ if (annotation == null) {
+ // there are indirectly referenced children, need extra commands: false
+ addDestroyChildNodesCommand(cmd);
+ addDestroyShortcutsCommand(cmd, view);
+ // delete host element
+ cmd.add(new DestroyElementCommand(req));
+ } else {
+ cmd.add(new DeleteCommand(getEditingDomain(), view));
+ }
+ return getGEFWrapper(cmd.reduce());
+ }
+
+ /**
+ * @generated
+ */
+ private void addDestroyChildNodesCommand(ICompositeCommand cmd) {
+ View view = (View) getHost().getModel();
+ for (Iterator<?> nit = view.getChildren().iterator(); nit.hasNext();) {
+ Node node = (Node) nit.next();
+ switch (ComrelVisualIDRegistry.getVisualID(node)) {
+ case MultiInputPort5EditPart.VISUAL_ID:
+ for (Iterator<?> it = node.getTargetEdges().iterator(); it
+ .hasNext();) {
+ Edge incomingLink = (Edge) it.next();
+ if (ComrelVisualIDRegistry.getVisualID(incomingLink) == MultiPortMappingEditPart.VISUAL_ID) {
+ DestroyElementRequest r = new DestroyElementRequest(
+ incomingLink.getElement(), false);
+ cmd.add(new DestroyElementCommand(r));
+ cmd.add(new DeleteCommand(getEditingDomain(),
+ incomingLink));
+ continue;
+ }
+ }
+ for (Iterator<?> it = node.getSourceEdges().iterator(); it
+ .hasNext();) {
+ Edge outgoingLink = (Edge) it.next();
+ if (ComrelVisualIDRegistry.getVisualID(outgoingLink) == MultiPortMappingEditPart.VISUAL_ID) {
+ DestroyElementRequest r = new DestroyElementRequest(
+ outgoingLink.getElement(), false);
+ cmd.add(new DestroyElementCommand(r));
+ cmd.add(new DeleteCommand(getEditingDomain(),
+ outgoingLink));
+ continue;
+ }
+ if (ComrelVisualIDRegistry.getVisualID(outgoingLink) == MultiSinglePortMappingEditPart.VISUAL_ID) {
+ DestroyElementRequest r = new DestroyElementRequest(
+ outgoingLink.getElement(), false);
+ cmd.add(new DestroyElementCommand(r));
+ cmd.add(new DeleteCommand(getEditingDomain(),
+ outgoingLink));
+ continue;
+ }
+ }
+ cmd.add(new DestroyElementCommand(new DestroyElementRequest(
+ getEditingDomain(), node.getElement(), false))); // directlyOwned: true
+ // don't need explicit deletion of node as parent's view deletion would clean child views as well
+ // cmd.add(new org.eclipse.gmf.runtime.diagram.core.commands.DeleteCommand(getEditingDomain(), node));
+ break;
+ case SingleOutputPort2EditPart.VISUAL_ID:
+ for (Iterator<?> it = node.getSourceEdges().iterator(); it
+ .hasNext();) {
+ Edge outgoingLink = (Edge) it.next();
+ if (ComrelVisualIDRegistry.getVisualID(outgoingLink) == SinglePortMappingEditPart.VISUAL_ID) {
+ DestroyElementRequest r = new DestroyElementRequest(
+ outgoingLink.getElement(), false);
+ cmd.add(new DestroyElementCommand(r));
+ cmd.add(new DeleteCommand(getEditingDomain(),
+ outgoingLink));
+ continue;
+ }
+ }
+ cmd.add(new DestroyElementCommand(new DestroyElementRequest(
+ getEditingDomain(), node.getElement(), false))); // directlyOwned: true
+ // don't need explicit deletion of node as parent's view deletion would clean child views as well
+ // cmd.add(new org.eclipse.gmf.runtime.diagram.core.commands.DeleteCommand(getEditingDomain(), node));
+ break;
+ }
+ }
+ }
+
+}
diff --git a/org.eclipse.emf.refactor.comrel.diagram/src/comrel/diagram/edit/policies/SingleFilterUnit4CanonicalEditPolicy.java b/org.eclipse.emf.refactor.comrel.diagram/src/comrel/diagram/edit/policies/SingleFilterUnit4CanonicalEditPolicy.java
new file mode 100644
index 0000000..0afe8c8
--- /dev/null
+++ b/org.eclipse.emf.refactor.comrel.diagram/src/comrel/diagram/edit/policies/SingleFilterUnit4CanonicalEditPolicy.java
@@ -0,0 +1,178 @@
+/*
+ *
+ */
+package comrel.diagram.edit.policies;
+
+import java.util.ArrayList;
+import java.util.Collection;
+import java.util.HashSet;
+import java.util.Iterator;
+import java.util.LinkedList;
+import java.util.List;
+import java.util.Set;
+
+import org.eclipse.core.runtime.IAdaptable;
+import org.eclipse.emf.ecore.EObject;
+import org.eclipse.emf.ecore.EStructuralFeature;
+import org.eclipse.gef.commands.Command;
+import org.eclipse.gmf.runtime.diagram.core.util.ViewUtil;
+import org.eclipse.gmf.runtime.diagram.ui.commands.DeferredLayoutCommand;
+import org.eclipse.gmf.runtime.diagram.ui.commands.ICommandProxy;
+import org.eclipse.gmf.runtime.diagram.ui.commands.SetViewMutabilityCommand;
+import org.eclipse.gmf.runtime.diagram.ui.editpolicies.CanonicalEditPolicy;
+import org.eclipse.gmf.runtime.diagram.ui.requests.CreateViewRequest;
+import org.eclipse.gmf.runtime.emf.core.util.EObjectAdapter;
+import org.eclipse.gmf.runtime.notation.Node;
+import org.eclipse.gmf.runtime.notation.View;
+
+import comrel.ComrelPackage;
+import comrel.diagram.edit.parts.MultiInputPort5EditPart;
+import comrel.diagram.edit.parts.SingleOutputPort2EditPart;
+import comrel.diagram.part.ComrelDiagramUpdater;
+import comrel.diagram.part.ComrelNodeDescriptor;
+import comrel.diagram.part.ComrelVisualIDRegistry;
+
+/**
+ * @generated
+ */
+public class SingleFilterUnit4CanonicalEditPolicy extends CanonicalEditPolicy {
+
+ /**
+ * @generated
+ */
+ private Set<EStructuralFeature> myFeaturesToSynchronize;
+
+ /**
+ * @generated
+ */
+ protected Set getFeaturesToSynchronize() {
+ if (myFeaturesToSynchronize == null) {
+ myFeaturesToSynchronize = new HashSet<EStructuralFeature>();
+ myFeaturesToSynchronize.add(ComrelPackage.eINSTANCE
+ .getSingleFilterUnit_InputPort());
+ myFeaturesToSynchronize.add(ComrelPackage.eINSTANCE
+ .getSingleFilterUnit_OutputPort());
+ }
+ return myFeaturesToSynchronize;
+ }
+
+ /**
+ * @generated
+ */
+ @SuppressWarnings("rawtypes")
+ protected List getSemanticChildrenList() {
+ View viewObject = (View) getHost().getModel();
+ LinkedList<EObject> result = new LinkedList<EObject>();
+ List<ComrelNodeDescriptor> childDescriptors = ComrelDiagramUpdater
+ .getSingleFilterUnit_3057SemanticChildren(viewObject);
+ for (ComrelNodeDescriptor d : childDescriptors) {
+ result.add(d.getModelElement());
+ }
+ return result;
+ }
+
+ /**
+ * @generated
+ */
+ protected boolean isOrphaned(Collection<EObject> semanticChildren,
+ final View view) {
+ return isMyDiagramElement(view)
+ && !semanticChildren.contains(view.getElement());
+ }
+
+ /**
+ * @generated
+ */
+ private boolean isMyDiagramElement(View view) {
+ int visualID = ComrelVisualIDRegistry.getVisualID(view);
+ return visualID == MultiInputPort5EditPart.VISUAL_ID
+ || visualID == SingleOutputPort2EditPart.VISUAL_ID;
+ }
+
+ /**
+ * @generated
+ */
+ protected void refreshSemantic() {
+ if (resolveSemanticElement() == null) {
+ return;
+ }
+ LinkedList<IAdaptable> createdViews = new LinkedList<IAdaptable>();
+ List<ComrelNodeDescriptor> childDescriptors = ComrelDiagramUpdater
+ .getSingleFilterUnit_3057SemanticChildren((View) getHost()
+ .getModel());
+ LinkedList<View> orphaned = new LinkedList<View>();
+ // we care to check only views we recognize as ours
+ LinkedList<View> knownViewChildren = new LinkedList<View>();
+ for (View v : getViewChildren()) {
+ if (isMyDiagramElement(v)) {
+ knownViewChildren.add(v);
+ }
+ }
+ // alternative to #cleanCanonicalSemanticChildren(getViewChildren(), semanticChildren)
+ //
+ // iteration happens over list of desired semantic elements, trying to find best matching View, while original CEP
+ // iterates views, potentially losing view (size/bounds) information - i.e. if there are few views to reference same EObject, only last one
+ // to answer isOrphaned == true will be used for the domain element representation, see #cleanCanonicalSemanticChildren()
+ for (Iterator<ComrelNodeDescriptor> descriptorsIterator = childDescriptors
+ .iterator(); descriptorsIterator.hasNext();) {
+ ComrelNodeDescriptor next = descriptorsIterator.next();
+ String hint = ComrelVisualIDRegistry.getType(next.getVisualID());
+ LinkedList<View> perfectMatch = new LinkedList<View>(); // both semanticElement and hint match that of NodeDescriptor
+ for (View childView : getViewChildren()) {
+ EObject semanticElement = childView.getElement();
+ if (next.getModelElement().equals(semanticElement)) {
+ if (hint.equals(childView.getType())) {
+ perfectMatch.add(childView);
+ // actually, can stop iteration over view children here, but
+ // may want to use not the first view but last one as a 'real' match (the way original CEP does
+ // with its trick with viewToSemanticMap inside #cleanCanonicalSemanticChildren
+ }
+ }
+ }
+ if (perfectMatch.size() > 0) {
+ descriptorsIterator.remove(); // precise match found no need to create anything for the NodeDescriptor
+ // use only one view (first or last?), keep rest as orphaned for further consideration
+ knownViewChildren.remove(perfectMatch.getFirst());
+ }
+ }
+ // those left in knownViewChildren are subject to removal - they are our diagram elements we didn't find match to,
+ // or those we have potential matches to, and thus need to be recreated, preserving size/location information.
+ orphaned.addAll(knownViewChildren);
+ //
+ ArrayList<CreateViewRequest.ViewDescriptor> viewDescriptors = new ArrayList<CreateViewRequest.ViewDescriptor>(
+ childDescriptors.size());
+ for (ComrelNodeDescriptor next : childDescriptors) {
+ String hint = ComrelVisualIDRegistry.getType(next.getVisualID());
+ IAdaptable elementAdapter = new CanonicalElementAdapter(
+ next.getModelElement(), hint);
+ CreateViewRequest.ViewDescriptor descriptor = new CreateViewRequest.ViewDescriptor(
+ elementAdapter, Node.class, hint, ViewUtil.APPEND, false,
+ host().getDiagramPreferencesHint());
+ viewDescriptors.add(descriptor);
+ }
+
+ boolean changed = deleteViews(orphaned.iterator());
+ //
+ CreateViewRequest request = getCreateViewRequest(viewDescriptors);
+ Command cmd = getCreateViewCommand(request);
+ if (cmd != null && cmd.canExecute()) {
+ SetViewMutabilityCommand.makeMutable(
+ new EObjectAdapter(host().getNotationView())).execute();
+ executeCommand(cmd);
+ @SuppressWarnings("unchecked")
+ List<IAdaptable> nl = (List<IAdaptable>) request.getNewObject();
+ createdViews.addAll(nl);
+ }
+ if (changed || createdViews.size() > 0) {
+ postProcessRefreshSemantic(createdViews);
+ }
+ if (createdViews.size() > 1) {
+ // perform a layout of the container
+ DeferredLayoutCommand layoutCmd = new DeferredLayoutCommand(host()
+ .getEditingDomain(), createdViews, host());
+ executeCommand(new ICommandProxy(layoutCmd));
+ }
+
+ makeViewsImmutable(createdViews);
+ }
+}
diff --git a/org.eclipse.emf.refactor.comrel.diagram/src/comrel/diagram/edit/policies/SingleFilterUnit4ItemSemanticEditPolicy.java b/org.eclipse.emf.refactor.comrel.diagram/src/comrel/diagram/edit/policies/SingleFilterUnit4ItemSemanticEditPolicy.java
new file mode 100644
index 0000000..d863b75
--- /dev/null
+++ b/org.eclipse.emf.refactor.comrel.diagram/src/comrel/diagram/edit/policies/SingleFilterUnit4ItemSemanticEditPolicy.java
@@ -0,0 +1,145 @@
+/*
+ *
+ */
+package comrel.diagram.edit.policies;
+
+import java.util.Iterator;
+
+import org.eclipse.emf.ecore.EAnnotation;
+import org.eclipse.gef.commands.Command;
+import org.eclipse.gmf.runtime.common.core.command.ICompositeCommand;
+import org.eclipse.gmf.runtime.diagram.core.commands.DeleteCommand;
+import org.eclipse.gmf.runtime.emf.commands.core.command.CompositeTransactionalCommand;
+import org.eclipse.gmf.runtime.emf.type.core.commands.DestroyElementCommand;
+import org.eclipse.gmf.runtime.emf.type.core.requests.CreateElementRequest;
+import org.eclipse.gmf.runtime.emf.type.core.requests.DestroyElementRequest;
+import org.eclipse.gmf.runtime.notation.Edge;
+import org.eclipse.gmf.runtime.notation.Node;
+import org.eclipse.gmf.runtime.notation.View;
+
+import comrel.diagram.edit.commands.MultiInputPort5CreateCommand;
+import comrel.diagram.edit.commands.SingleOutputPort2CreateCommand;
+import comrel.diagram.edit.parts.MultiInputPort5EditPart;
+import comrel.diagram.edit.parts.MultiPortMappingEditPart;
+import comrel.diagram.edit.parts.MultiSinglePortMappingEditPart;
+import comrel.diagram.edit.parts.SingleOutputPort2EditPart;
+import comrel.diagram.edit.parts.SinglePortMappingEditPart;
+import comrel.diagram.part.ComrelVisualIDRegistry;
+import comrel.diagram.providers.ComrelElementTypes;
+
+/**
+ * @generated
+ */
+public class SingleFilterUnit4ItemSemanticEditPolicy extends
+ ComrelBaseItemSemanticEditPolicy {
+
+ /**
+ * @generated
+ */
+ public SingleFilterUnit4ItemSemanticEditPolicy() {
+ super(ComrelElementTypes.SingleFilterUnit_3057);
+ }
+
+ /**
+ * @generated
+ */
+ protected Command getCreateCommand(CreateElementRequest req) {
+ if (ComrelElementTypes.MultiInputPort_3017 == req.getElementType()) {
+ return getGEFWrapper(new MultiInputPort5CreateCommand(req));
+ }
+ if (ComrelElementTypes.SingleOutputPort_3018 == req.getElementType()) {
+ return getGEFWrapper(new SingleOutputPort2CreateCommand(req));
+ }
+ return super.getCreateCommand(req);
+ }
+
+ /**
+ * @generated
+ */
+ protected Command getDestroyElementCommand(DestroyElementRequest req) {
+ View view = (View) getHost().getModel();
+ CompositeTransactionalCommand cmd = new CompositeTransactionalCommand(
+ getEditingDomain(), null);
+ cmd.setTransactionNestingEnabled(false);
+ EAnnotation annotation = view.getEAnnotation("Shortcut"); //$NON-NLS-1$
+ if (annotation == null) {
+ // there are indirectly referenced children, need extra commands: false
+ addDestroyChildNodesCommand(cmd);
+ addDestroyShortcutsCommand(cmd, view);
+ // delete host element
+ cmd.add(new DestroyElementCommand(req));
+ } else {
+ cmd.add(new DeleteCommand(getEditingDomain(), view));
+ }
+ return getGEFWrapper(cmd.reduce());
+ }
+
+ /**
+ * @generated
+ */
+ private void addDestroyChildNodesCommand(ICompositeCommand cmd) {
+ View view = (View) getHost().getModel();
+ for (Iterator<?> nit = view.getChildren().iterator(); nit.hasNext();) {
+ Node node = (Node) nit.next();
+ switch (ComrelVisualIDRegistry.getVisualID(node)) {
+ case MultiInputPort5EditPart.VISUAL_ID:
+ for (Iterator<?> it = node.getTargetEdges().iterator(); it
+ .hasNext();) {
+ Edge incomingLink = (Edge) it.next();
+ if (ComrelVisualIDRegistry.getVisualID(incomingLink) == MultiPortMappingEditPart.VISUAL_ID) {
+ DestroyElementRequest r = new DestroyElementRequest(
+ incomingLink.getElement(), false);
+ cmd.add(new DestroyElementCommand(r));
+ cmd.add(new DeleteCommand(getEditingDomain(),
+ incomingLink));
+ continue;
+ }
+ }
+ for (Iterator<?> it = node.getSourceEdges().iterator(); it
+ .hasNext();) {
+ Edge outgoingLink = (Edge) it.next();
+ if (ComrelVisualIDRegistry.getVisualID(outgoingLink) == MultiPortMappingEditPart.VISUAL_ID) {
+ DestroyElementRequest r = new DestroyElementRequest(
+ outgoingLink.getElement(), false);
+ cmd.add(new DestroyElementCommand(r));
+ cmd.add(new DeleteCommand(getEditingDomain(),
+ outgoingLink));
+ continue;
+ }
+ if (ComrelVisualIDRegistry.getVisualID(outgoingLink) == MultiSinglePortMappingEditPart.VISUAL_ID) {
+ DestroyElementRequest r = new DestroyElementRequest(
+ outgoingLink.getElement(), false);
+ cmd.add(new DestroyElementCommand(r));
+ cmd.add(new DeleteCommand(getEditingDomain(),
+ outgoingLink));
+ continue;
+ }
+ }
+ cmd.add(new DestroyElementCommand(new DestroyElementRequest(
+ getEditingDomain(), node.getElement(), false))); // directlyOwned: true
+ // don't need explicit deletion of node as parent's view deletion would clean child views as well
+ // cmd.add(new org.eclipse.gmf.runtime.diagram.core.commands.DeleteCommand(getEditingDomain(), node));
+ break;
+ case SingleOutputPort2EditPart.VISUAL_ID:
+ for (Iterator<?> it = node.getSourceEdges().iterator(); it
+ .hasNext();) {
+ Edge outgoingLink = (Edge) it.next();
+ if (ComrelVisualIDRegistry.getVisualID(outgoingLink) == SinglePortMappingEditPart.VISUAL_ID) {
+ DestroyElementRequest r = new DestroyElementRequest(
+ outgoingLink.getElement(), false);
+ cmd.add(new DestroyElementCommand(r));
+ cmd.add(new DeleteCommand(getEditingDomain(),
+ outgoingLink));
+ continue;
+ }
+ }
+ cmd.add(new DestroyElementCommand(new DestroyElementRequest(
+ getEditingDomain(), node.getElement(), false))); // directlyOwned: true
+ // don't need explicit deletion of node as parent's view deletion would clean child views as well
+ // cmd.add(new org.eclipse.gmf.runtime.diagram.core.commands.DeleteCommand(getEditingDomain(), node));
+ break;
+ }
+ }
+ }
+
+}
diff --git a/org.eclipse.emf.refactor.comrel.diagram/src/comrel/diagram/edit/policies/SingleFilterUnit5CanonicalEditPolicy.java b/org.eclipse.emf.refactor.comrel.diagram/src/comrel/diagram/edit/policies/SingleFilterUnit5CanonicalEditPolicy.java
new file mode 100644
index 0000000..32802e4
--- /dev/null
+++ b/org.eclipse.emf.refactor.comrel.diagram/src/comrel/diagram/edit/policies/SingleFilterUnit5CanonicalEditPolicy.java
@@ -0,0 +1,178 @@
+/*
+ *
+ */
+package comrel.diagram.edit.policies;
+
+import java.util.ArrayList;
+import java.util.Collection;
+import java.util.HashSet;
+import java.util.Iterator;
+import java.util.LinkedList;
+import java.util.List;
+import java.util.Set;
+
+import org.eclipse.core.runtime.IAdaptable;
+import org.eclipse.emf.ecore.EObject;
+import org.eclipse.emf.ecore.EStructuralFeature;
+import org.eclipse.gef.commands.Command;
+import org.eclipse.gmf.runtime.diagram.core.util.ViewUtil;
+import org.eclipse.gmf.runtime.diagram.ui.commands.DeferredLayoutCommand;
+import org.eclipse.gmf.runtime.diagram.ui.commands.ICommandProxy;
+import org.eclipse.gmf.runtime.diagram.ui.commands.SetViewMutabilityCommand;
+import org.eclipse.gmf.runtime.diagram.ui.editpolicies.CanonicalEditPolicy;
+import org.eclipse.gmf.runtime.diagram.ui.requests.CreateViewRequest;
+import org.eclipse.gmf.runtime.emf.core.util.EObjectAdapter;
+import org.eclipse.gmf.runtime.notation.Node;
+import org.eclipse.gmf.runtime.notation.View;
+
+import comrel.ComrelPackage;
+import comrel.diagram.edit.parts.MultiInputPort5EditPart;
+import comrel.diagram.edit.parts.SingleOutputPort2EditPart;
+import comrel.diagram.part.ComrelDiagramUpdater;
+import comrel.diagram.part.ComrelNodeDescriptor;
+import comrel.diagram.part.ComrelVisualIDRegistry;
+
+/**
+ * @generated
+ */
+public class SingleFilterUnit5CanonicalEditPolicy extends CanonicalEditPolicy {
+
+ /**
+ * @generated
+ */
+ private Set<EStructuralFeature> myFeaturesToSynchronize;
+
+ /**
+ * @generated
+ */
+ protected Set getFeaturesToSynchronize() {
+ if (myFeaturesToSynchronize == null) {
+ myFeaturesToSynchronize = new HashSet<EStructuralFeature>();
+ myFeaturesToSynchronize.add(ComrelPackage.eINSTANCE
+ .getSingleFilterUnit_InputPort());
+ myFeaturesToSynchronize.add(ComrelPackage.eINSTANCE
+ .getSingleFilterUnit_OutputPort());
+ }
+ return myFeaturesToSynchronize;
+ }
+
+ /**
+ * @generated
+ */
+ @SuppressWarnings("rawtypes")
+ protected List getSemanticChildrenList() {
+ View viewObject = (View) getHost().getModel();
+ LinkedList<EObject> result = new LinkedList<EObject>();
+ List<ComrelNodeDescriptor> childDescriptors = ComrelDiagramUpdater
+ .getSingleFilterUnit_3063SemanticChildren(viewObject);
+ for (ComrelNodeDescriptor d : childDescriptors) {
+ result.add(d.getModelElement());
+ }
+ return result;
+ }
+
+ /**
+ * @generated
+ */
+ protected boolean isOrphaned(Collection<EObject> semanticChildren,
+ final View view) {
+ return isMyDiagramElement(view)
+ && !semanticChildren.contains(view.getElement());
+ }
+
+ /**
+ * @generated
+ */
+ private boolean isMyDiagramElement(View view) {
+ int visualID = ComrelVisualIDRegistry.getVisualID(view);
+ return visualID == MultiInputPort5EditPart.VISUAL_ID
+ || visualID == SingleOutputPort2EditPart.VISUAL_ID;
+ }
+
+ /**
+ * @generated
+ */
+ protected void refreshSemantic() {
+ if (resolveSemanticElement() == null) {
+ return;
+ }
+ LinkedList<IAdaptable> createdViews = new LinkedList<IAdaptable>();
+ List<ComrelNodeDescriptor> childDescriptors = ComrelDiagramUpdater
+ .getSingleFilterUnit_3063SemanticChildren((View) getHost()
+ .getModel());
+ LinkedList<View> orphaned = new LinkedList<View>();
+ // we care to check only views we recognize as ours
+ LinkedList<View> knownViewChildren = new LinkedList<View>();
+ for (View v : getViewChildren()) {
+ if (isMyDiagramElement(v)) {
+ knownViewChildren.add(v);
+ }
+ }
+ // alternative to #cleanCanonicalSemanticChildren(getViewChildren(), semanticChildren)
+ //
+ // iteration happens over list of desired semantic elements, trying to find best matching View, while original CEP
+ // iterates views, potentially losing view (size/bounds) information - i.e. if there are few views to reference same EObject, only last one
+ // to answer isOrphaned == true will be used for the domain element representation, see #cleanCanonicalSemanticChildren()
+ for (Iterator<ComrelNodeDescriptor> descriptorsIterator = childDescriptors
+ .iterator(); descriptorsIterator.hasNext();) {
+ ComrelNodeDescriptor next = descriptorsIterator.next();
+ String hint = ComrelVisualIDRegistry.getType(next.getVisualID());
+ LinkedList<View> perfectMatch = new LinkedList<View>(); // both semanticElement and hint match that of NodeDescriptor
+ for (View childView : getViewChildren()) {
+ EObject semanticElement = childView.getElement();
+ if (next.getModelElement().equals(semanticElement)) {
+ if (hint.equals(childView.getType())) {
+ perfectMatch.add(childView);
+ // actually, can stop iteration over view children here, but
+ // may want to use not the first view but last one as a 'real' match (the way original CEP does
+ // with its trick with viewToSemanticMap inside #cleanCanonicalSemanticChildren
+ }
+ }
+ }
+ if (perfectMatch.size() > 0) {
+ descriptorsIterator.remove(); // precise match found no need to create anything for the NodeDescriptor
+ // use only one view (first or last?), keep rest as orphaned for further consideration
+ knownViewChildren.remove(perfectMatch.getFirst());
+ }
+ }
+ // those left in knownViewChildren are subject to removal - they are our diagram elements we didn't find match to,
+ // or those we have potential matches to, and thus need to be recreated, preserving size/location information.
+ orphaned.addAll(knownViewChildren);
+ //
+ ArrayList<CreateViewRequest.ViewDescriptor> viewDescriptors = new ArrayList<CreateViewRequest.ViewDescriptor>(
+ childDescriptors.size());
+ for (ComrelNodeDescriptor next : childDescriptors) {
+ String hint = ComrelVisualIDRegistry.getType(next.getVisualID());
+ IAdaptable elementAdapter = new CanonicalElementAdapter(
+ next.getModelElement(), hint);
+ CreateViewRequest.ViewDescriptor descriptor = new CreateViewRequest.ViewDescriptor(
+ elementAdapter, Node.class, hint, ViewUtil.APPEND, false,
+ host().getDiagramPreferencesHint());
+ viewDescriptors.add(descriptor);
+ }
+
+ boolean changed = deleteViews(orphaned.iterator());
+ //
+ CreateViewRequest request = getCreateViewRequest(viewDescriptors);
+ Command cmd = getCreateViewCommand(request);
+ if (cmd != null && cmd.canExecute()) {
+ SetViewMutabilityCommand.makeMutable(
+ new EObjectAdapter(host().getNotationView())).execute();
+ executeCommand(cmd);
+ @SuppressWarnings("unchecked")
+ List<IAdaptable> nl = (List<IAdaptable>) request.getNewObject();
+ createdViews.addAll(nl);
+ }
+ if (changed || createdViews.size() > 0) {
+ postProcessRefreshSemantic(createdViews);
+ }
+ if (createdViews.size() > 1) {
+ // perform a layout of the container
+ DeferredLayoutCommand layoutCmd = new DeferredLayoutCommand(host()
+ .getEditingDomain(), createdViews, host());
+ executeCommand(new ICommandProxy(layoutCmd));
+ }
+
+ makeViewsImmutable(createdViews);
+ }
+}
diff --git a/org.eclipse.emf.refactor.comrel.diagram/src/comrel/diagram/edit/policies/SingleFilterUnit5ItemSemanticEditPolicy.java b/org.eclipse.emf.refactor.comrel.diagram/src/comrel/diagram/edit/policies/SingleFilterUnit5ItemSemanticEditPolicy.java
new file mode 100644
index 0000000..b5ca24a
--- /dev/null
+++ b/org.eclipse.emf.refactor.comrel.diagram/src/comrel/diagram/edit/policies/SingleFilterUnit5ItemSemanticEditPolicy.java
@@ -0,0 +1,145 @@
+/*
+ *
+ */
+package comrel.diagram.edit.policies;
+
+import java.util.Iterator;
+
+import org.eclipse.emf.ecore.EAnnotation;
+import org.eclipse.gef.commands.Command;
+import org.eclipse.gmf.runtime.common.core.command.ICompositeCommand;
+import org.eclipse.gmf.runtime.diagram.core.commands.DeleteCommand;
+import org.eclipse.gmf.runtime.emf.commands.core.command.CompositeTransactionalCommand;
+import org.eclipse.gmf.runtime.emf.type.core.commands.DestroyElementCommand;
+import org.eclipse.gmf.runtime.emf.type.core.requests.CreateElementRequest;
+import org.eclipse.gmf.runtime.emf.type.core.requests.DestroyElementRequest;
+import org.eclipse.gmf.runtime.notation.Edge;
+import org.eclipse.gmf.runtime.notation.Node;
+import org.eclipse.gmf.runtime.notation.View;
+
+import comrel.diagram.edit.commands.MultiInputPort5CreateCommand;
+import comrel.diagram.edit.commands.SingleOutputPort2CreateCommand;
+import comrel.diagram.edit.parts.MultiInputPort5EditPart;
+import comrel.diagram.edit.parts.MultiPortMappingEditPart;
+import comrel.diagram.edit.parts.MultiSinglePortMappingEditPart;
+import comrel.diagram.edit.parts.SingleOutputPort2EditPart;
+import comrel.diagram.edit.parts.SinglePortMappingEditPart;
+import comrel.diagram.part.ComrelVisualIDRegistry;
+import comrel.diagram.providers.ComrelElementTypes;
+
+/**
+ * @generated
+ */
+public class SingleFilterUnit5ItemSemanticEditPolicy extends
+ ComrelBaseItemSemanticEditPolicy {
+
+ /**
+ * @generated
+ */
+ public SingleFilterUnit5ItemSemanticEditPolicy() {
+ super(ComrelElementTypes.SingleFilterUnit_3063);
+ }
+
+ /**
+ * @generated
+ */
+ protected Command getCreateCommand(CreateElementRequest req) {
+ if (ComrelElementTypes.MultiInputPort_3017 == req.getElementType()) {
+ return getGEFWrapper(new MultiInputPort5CreateCommand(req));
+ }
+ if (ComrelElementTypes.SingleOutputPort_3018 == req.getElementType()) {
+ return getGEFWrapper(new SingleOutputPort2CreateCommand(req));
+ }
+ return super.getCreateCommand(req);
+ }
+
+ /**
+ * @generated
+ */
+ protected Command getDestroyElementCommand(DestroyElementRequest req) {
+ View view = (View) getHost().getModel();
+ CompositeTransactionalCommand cmd = new CompositeTransactionalCommand(
+ getEditingDomain(), null);
+ cmd.setTransactionNestingEnabled(false);
+ EAnnotation annotation = view.getEAnnotation("Shortcut"); //$NON-NLS-1$
+ if (annotation == null) {
+ // there are indirectly referenced children, need extra commands: false
+ addDestroyChildNodesCommand(cmd);
+ addDestroyShortcutsCommand(cmd, view);
+ // delete host element
+ cmd.add(new DestroyElementCommand(req));
+ } else {
+ cmd.add(new DeleteCommand(getEditingDomain(), view));
+ }
+ return getGEFWrapper(cmd.reduce());
+ }
+
+ /**
+ * @generated
+ */
+ private void addDestroyChildNodesCommand(ICompositeCommand cmd) {
+ View view = (View) getHost().getModel();
+ for (Iterator<?> nit = view.getChildren().iterator(); nit.hasNext();) {
+ Node node = (Node) nit.next();
+ switch (ComrelVisualIDRegistry.getVisualID(node)) {
+ case MultiInputPort5EditPart.VISUAL_ID:
+ for (Iterator<?> it = node.getTargetEdges().iterator(); it
+ .hasNext();) {
+ Edge incomingLink = (Edge) it.next();
+ if (ComrelVisualIDRegistry.getVisualID(incomingLink) == MultiPortMappingEditPart.VISUAL_ID) {
+ DestroyElementRequest r = new DestroyElementRequest(
+ incomingLink.getElement(), false);
+ cmd.add(new DestroyElementCommand(r));
+ cmd.add(new DeleteCommand(getEditingDomain(),
+ incomingLink));
+ continue;
+ }
+ }
+ for (Iterator<?> it = node.getSourceEdges().iterator(); it
+ .hasNext();) {
+ Edge outgoingLink = (Edge) it.next();
+ if (ComrelVisualIDRegistry.getVisualID(outgoingLink) == MultiPortMappingEditPart.VISUAL_ID) {
+ DestroyElementRequest r = new DestroyElementRequest(
+ outgoingLink.getElement(), false);
+ cmd.add(new DestroyElementCommand(r));
+ cmd.add(new DeleteCommand(getEditingDomain(),
+ outgoingLink));
+ continue;
+ }
+ if (ComrelVisualIDRegistry.getVisualID(outgoingLink) == MultiSinglePortMappingEditPart.VISUAL_ID) {
+ DestroyElementRequest r = new DestroyElementRequest(
+ outgoingLink.getElement(), false);
+ cmd.add(new DestroyElementCommand(r));
+ cmd.add(new DeleteCommand(getEditingDomain(),
+ outgoingLink));
+ continue;
+ }
+ }
+ cmd.add(new DestroyElementCommand(new DestroyElementRequest(
+ getEditingDomain(), node.getElement(), false))); // directlyOwned: true
+ // don't need explicit deletion of node as parent's view deletion would clean child views as well
+ // cmd.add(new org.eclipse.gmf.runtime.diagram.core.commands.DeleteCommand(getEditingDomain(), node));
+ break;
+ case SingleOutputPort2EditPart.VISUAL_ID:
+ for (Iterator<?> it = node.getSourceEdges().iterator(); it
+ .hasNext();) {
+ Edge outgoingLink = (Edge) it.next();
+ if (ComrelVisualIDRegistry.getVisualID(outgoingLink) == SinglePortMappingEditPart.VISUAL_ID) {
+ DestroyElementRequest r = new DestroyElementRequest(
+ outgoingLink.getElement(), false);
+ cmd.add(new DestroyElementCommand(r));
+ cmd.add(new DeleteCommand(getEditingDomain(),
+ outgoingLink));
+ continue;
+ }
+ }
+ cmd.add(new DestroyElementCommand(new DestroyElementRequest(
+ getEditingDomain(), node.getElement(), false))); // directlyOwned: true
+ // don't need explicit deletion of node as parent's view deletion would clean child views as well
+ // cmd.add(new org.eclipse.gmf.runtime.diagram.core.commands.DeleteCommand(getEditingDomain(), node));
+ break;
+ }
+ }
+ }
+
+}
diff --git a/org.eclipse.emf.refactor.comrel.diagram/src/comrel/diagram/edit/policies/SingleFilterUnitCanonicalEditPolicy.java b/org.eclipse.emf.refactor.comrel.diagram/src/comrel/diagram/edit/policies/SingleFilterUnitCanonicalEditPolicy.java
new file mode 100644
index 0000000..280ec6d
--- /dev/null
+++ b/org.eclipse.emf.refactor.comrel.diagram/src/comrel/diagram/edit/policies/SingleFilterUnitCanonicalEditPolicy.java
@@ -0,0 +1,178 @@
+/*
+ *
+ */
+package comrel.diagram.edit.policies;
+
+import java.util.ArrayList;
+import java.util.Collection;
+import java.util.HashSet;
+import java.util.Iterator;
+import java.util.LinkedList;
+import java.util.List;
+import java.util.Set;
+
+import org.eclipse.core.runtime.IAdaptable;
+import org.eclipse.emf.ecore.EObject;
+import org.eclipse.emf.ecore.EStructuralFeature;
+import org.eclipse.gef.commands.Command;
+import org.eclipse.gmf.runtime.diagram.core.util.ViewUtil;
+import org.eclipse.gmf.runtime.diagram.ui.commands.DeferredLayoutCommand;
+import org.eclipse.gmf.runtime.diagram.ui.commands.ICommandProxy;
+import org.eclipse.gmf.runtime.diagram.ui.commands.SetViewMutabilityCommand;
+import org.eclipse.gmf.runtime.diagram.ui.editpolicies.CanonicalEditPolicy;
+import org.eclipse.gmf.runtime.diagram.ui.requests.CreateViewRequest;
+import org.eclipse.gmf.runtime.emf.core.util.EObjectAdapter;
+import org.eclipse.gmf.runtime.notation.Node;
+import org.eclipse.gmf.runtime.notation.View;
+
+import comrel.ComrelPackage;
+import comrel.diagram.edit.parts.MultiInputPort5EditPart;
+import comrel.diagram.edit.parts.SingleOutputPort2EditPart;
+import comrel.diagram.part.ComrelDiagramUpdater;
+import comrel.diagram.part.ComrelNodeDescriptor;
+import comrel.diagram.part.ComrelVisualIDRegistry;
+
+/**
+ * @generated
+ */
+public class SingleFilterUnitCanonicalEditPolicy extends CanonicalEditPolicy {
+
+ /**
+ * @generated
+ */
+ private Set<EStructuralFeature> myFeaturesToSynchronize;
+
+ /**
+ * @generated
+ */
+ protected Set getFeaturesToSynchronize() {
+ if (myFeaturesToSynchronize == null) {
+ myFeaturesToSynchronize = new HashSet<EStructuralFeature>();
+ myFeaturesToSynchronize.add(ComrelPackage.eINSTANCE
+ .getSingleFilterUnit_InputPort());
+ myFeaturesToSynchronize.add(ComrelPackage.eINSTANCE
+ .getSingleFilterUnit_OutputPort());
+ }
+ return myFeaturesToSynchronize;
+ }
+
+ /**
+ * @generated
+ */
+ @SuppressWarnings("rawtypes")
+ protected List getSemanticChildrenList() {
+ View viewObject = (View) getHost().getModel();
+ LinkedList<EObject> result = new LinkedList<EObject>();
+ List<ComrelNodeDescriptor> childDescriptors = ComrelDiagramUpdater
+ .getSingleFilterUnit_3016SemanticChildren(viewObject);
+ for (ComrelNodeDescriptor d : childDescriptors) {
+ result.add(d.getModelElement());
+ }
+ return result;
+ }
+
+ /**
+ * @generated
+ */
+ protected boolean isOrphaned(Collection<EObject> semanticChildren,
+ final View view) {
+ return isMyDiagramElement(view)
+ && !semanticChildren.contains(view.getElement());
+ }
+
+ /**
+ * @generated
+ */
+ private boolean isMyDiagramElement(View view) {
+ int visualID = ComrelVisualIDRegistry.getVisualID(view);
+ return visualID == MultiInputPort5EditPart.VISUAL_ID
+ || visualID == SingleOutputPort2EditPart.VISUAL_ID;
+ }
+
+ /**
+ * @generated
+ */
+ protected void refreshSemantic() {
+ if (resolveSemanticElement() == null) {
+ return;
+ }
+ LinkedList<IAdaptable> createdViews = new LinkedList<IAdaptable>();
+ List<ComrelNodeDescriptor> childDescriptors = ComrelDiagramUpdater
+ .getSingleFilterUnit_3016SemanticChildren((View) getHost()
+ .getModel());
+ LinkedList<View> orphaned = new LinkedList<View>();
+ // we care to check only views we recognize as ours
+ LinkedList<View> knownViewChildren = new LinkedList<View>();
+ for (View v : getViewChildren()) {
+ if (isMyDiagramElement(v)) {
+ knownViewChildren.add(v);
+ }
+ }
+ // alternative to #cleanCanonicalSemanticChildren(getViewChildren(), semanticChildren)
+ //
+ // iteration happens over list of desired semantic elements, trying to find best matching View, while original CEP
+ // iterates views, potentially losing view (size/bounds) information - i.e. if there are few views to reference same EObject, only last one
+ // to answer isOrphaned == true will be used for the domain element representation, see #cleanCanonicalSemanticChildren()
+ for (Iterator<ComrelNodeDescriptor> descriptorsIterator = childDescriptors
+ .iterator(); descriptorsIterator.hasNext();) {
+ ComrelNodeDescriptor next = descriptorsIterator.next();
+ String hint = ComrelVisualIDRegistry.getType(next.getVisualID());
+ LinkedList<View> perfectMatch = new LinkedList<View>(); // both semanticElement and hint match that of NodeDescriptor
+ for (View childView : getViewChildren()) {
+ EObject semanticElement = childView.getElement();
+ if (next.getModelElement().equals(semanticElement)) {
+ if (hint.equals(childView.getType())) {
+ perfectMatch.add(childView);
+ // actually, can stop iteration over view children here, but
+ // may want to use not the first view but last one as a 'real' match (the way original CEP does
+ // with its trick with viewToSemanticMap inside #cleanCanonicalSemanticChildren
+ }
+ }
+ }
+ if (perfectMatch.size() > 0) {
+ descriptorsIterator.remove(); // precise match found no need to create anything for the NodeDescriptor
+ // use only one view (first or last?), keep rest as orphaned for further consideration
+ knownViewChildren.remove(perfectMatch.getFirst());
+ }
+ }
+ // those left in knownViewChildren are subject to removal - they are our diagram elements we didn't find match to,
+ // or those we have potential matches to, and thus need to be recreated, preserving size/location information.
+ orphaned.addAll(knownViewChildren);
+ //
+ ArrayList<CreateViewRequest.ViewDescriptor> viewDescriptors = new ArrayList<CreateViewRequest.ViewDescriptor>(
+ childDescriptors.size());
+ for (ComrelNodeDescriptor next : childDescriptors) {
+ String hint = ComrelVisualIDRegistry.getType(next.getVisualID());
+ IAdaptable elementAdapter = new CanonicalElementAdapter(
+ next.getModelElement(), hint);
+ CreateViewRequest.ViewDescriptor descriptor = new CreateViewRequest.ViewDescriptor(
+ elementAdapter, Node.class, hint, ViewUtil.APPEND, false,
+ host().getDiagramPreferencesHint());
+ viewDescriptors.add(descriptor);
+ }
+
+ boolean changed = deleteViews(orphaned.iterator());
+ //
+ CreateViewRequest request = getCreateViewRequest(viewDescriptors);
+ Command cmd = getCreateViewCommand(request);
+ if (cmd != null && cmd.canExecute()) {
+ SetViewMutabilityCommand.makeMutable(
+ new EObjectAdapter(host().getNotationView())).execute();
+ executeCommand(cmd);
+ @SuppressWarnings("unchecked")
+ List<IAdaptable> nl = (List<IAdaptable>) request.getNewObject();
+ createdViews.addAll(nl);
+ }
+ if (changed || createdViews.size() > 0) {
+ postProcessRefreshSemantic(createdViews);
+ }
+ if (createdViews.size() > 1) {
+ // perform a layout of the container
+ DeferredLayoutCommand layoutCmd = new DeferredLayoutCommand(host()
+ .getEditingDomain(), createdViews, host());
+ executeCommand(new ICommandProxy(layoutCmd));
+ }
+
+ makeViewsImmutable(createdViews);
+ }
+}
diff --git a/org.eclipse.emf.refactor.comrel.diagram/src/comrel/diagram/edit/policies/SingleFilterUnitItemSemanticEditPolicy.java b/org.eclipse.emf.refactor.comrel.diagram/src/comrel/diagram/edit/policies/SingleFilterUnitItemSemanticEditPolicy.java
new file mode 100644
index 0000000..d2334e2
--- /dev/null
+++ b/org.eclipse.emf.refactor.comrel.diagram/src/comrel/diagram/edit/policies/SingleFilterUnitItemSemanticEditPolicy.java
@@ -0,0 +1,145 @@
+/*
+ *
+ */
+package comrel.diagram.edit.policies;
+
+import java.util.Iterator;
+
+import org.eclipse.emf.ecore.EAnnotation;
+import org.eclipse.gef.commands.Command;
+import org.eclipse.gmf.runtime.common.core.command.ICompositeCommand;
+import org.eclipse.gmf.runtime.diagram.core.commands.DeleteCommand;
+import org.eclipse.gmf.runtime.emf.commands.core.command.CompositeTransactionalCommand;
+import org.eclipse.gmf.runtime.emf.type.core.commands.DestroyElementCommand;
+import org.eclipse.gmf.runtime.emf.type.core.requests.CreateElementRequest;
+import org.eclipse.gmf.runtime.emf.type.core.requests.DestroyElementRequest;
+import org.eclipse.gmf.runtime.notation.Edge;
+import org.eclipse.gmf.runtime.notation.Node;
+import org.eclipse.gmf.runtime.notation.View;
+
+import comrel.diagram.edit.commands.MultiInputPort5CreateCommand;
+import comrel.diagram.edit.commands.SingleOutputPort2CreateCommand;
+import comrel.diagram.edit.parts.MultiInputPort5EditPart;
+import comrel.diagram.edit.parts.MultiPortMappingEditPart;
+import comrel.diagram.edit.parts.MultiSinglePortMappingEditPart;
+import comrel.diagram.edit.parts.SingleOutputPort2EditPart;
+import comrel.diagram.edit.parts.SinglePortMappingEditPart;
+import comrel.diagram.part.ComrelVisualIDRegistry;
+import comrel.diagram.providers.ComrelElementTypes;
+
+/**
+ * @generated
+ */
+public class SingleFilterUnitItemSemanticEditPolicy extends
+ ComrelBaseItemSemanticEditPolicy {
+
+ /**
+ * @generated
+ */
+ public SingleFilterUnitItemSemanticEditPolicy() {
+ super(ComrelElementTypes.SingleFilterUnit_3016);
+ }
+
+ /**
+ * @generated
+ */
+ protected Command getCreateCommand(CreateElementRequest req) {
+ if (ComrelElementTypes.MultiInputPort_3017 == req.getElementType()) {
+ return getGEFWrapper(new MultiInputPort5CreateCommand(req));
+ }
+ if (ComrelElementTypes.SingleOutputPort_3018 == req.getElementType()) {
+ return getGEFWrapper(new SingleOutputPort2CreateCommand(req));
+ }
+ return super.getCreateCommand(req);
+ }
+
+ /**
+ * @generated
+ */
+ protected Command getDestroyElementCommand(DestroyElementRequest req) {
+ View view = (View) getHost().getModel();
+ CompositeTransactionalCommand cmd = new CompositeTransactionalCommand(
+ getEditingDomain(), null);
+ cmd.setTransactionNestingEnabled(false);
+ EAnnotation annotation = view.getEAnnotation("Shortcut"); //$NON-NLS-1$
+ if (annotation == null) {
+ // there are indirectly referenced children, need extra commands: false
+ addDestroyChildNodesCommand(cmd);
+ addDestroyShortcutsCommand(cmd, view);
+ // delete host element
+ cmd.add(new DestroyElementCommand(req));
+ } else {
+ cmd.add(new DeleteCommand(getEditingDomain(), view));
+ }
+ return getGEFWrapper(cmd.reduce());
+ }
+
+ /**
+ * @generated
+ */
+ private void addDestroyChildNodesCommand(ICompositeCommand cmd) {
+ View view = (View) getHost().getModel();
+ for (Iterator<?> nit = view.getChildren().iterator(); nit.hasNext();) {
+ Node node = (Node) nit.next();
+ switch (ComrelVisualIDRegistry.getVisualID(node)) {
+ case MultiInputPort5EditPart.VISUAL_ID:
+ for (Iterator<?> it = node.getTargetEdges().iterator(); it
+ .hasNext();) {
+ Edge incomingLink = (Edge) it.next();
+ if (ComrelVisualIDRegistry.getVisualID(incomingLink) == MultiPortMappingEditPart.VISUAL_ID) {
+ DestroyElementRequest r = new DestroyElementRequest(
+ incomingLink.getElement(), false);
+ cmd.add(new DestroyElementCommand(r));
+ cmd.add(new DeleteCommand(getEditingDomain(),
+ incomingLink));
+ continue;
+ }
+ }
+ for (Iterator<?> it = node.getSourceEdges().iterator(); it
+ .hasNext();) {
+ Edge outgoingLink = (Edge) it.next();
+ if (ComrelVisualIDRegistry.getVisualID(outgoingLink) == MultiPortMappingEditPart.VISUAL_ID) {
+ DestroyElementRequest r = new DestroyElementRequest(
+ outgoingLink.getElement(), false);
+ cmd.add(new DestroyElementCommand(r));
+ cmd.add(new DeleteCommand(getEditingDomain(),
+ outgoingLink));
+ continue;
+ }
+ if (ComrelVisualIDRegistry.getVisualID(outgoingLink) == MultiSinglePortMappingEditPart.VISUAL_ID) {
+ DestroyElementRequest r = new DestroyElementRequest(
+ outgoingLink.getElement(), false);
+ cmd.add(new DestroyElementCommand(r));
+ cmd.add(new DeleteCommand(getEditingDomain(),
+ outgoingLink));
+ continue;
+ }
+ }
+ cmd.add(new DestroyElementCommand(new DestroyElementRequest(
+ getEditingDomain(), node.getElement(), false))); // directlyOwned: true
+ // don't need explicit deletion of node as parent's view deletion would clean child views as well
+ // cmd.add(new org.eclipse.gmf.runtime.diagram.core.commands.DeleteCommand(getEditingDomain(), node));
+ break;
+ case SingleOutputPort2EditPart.VISUAL_ID:
+ for (Iterator<?> it = node.getSourceEdges().iterator(); it
+ .hasNext();) {
+ Edge outgoingLink = (Edge) it.next();
+ if (ComrelVisualIDRegistry.getVisualID(outgoingLink) == SinglePortMappingEditPart.VISUAL_ID) {
+ DestroyElementRequest r = new DestroyElementRequest(
+ outgoingLink.getElement(), false);
+ cmd.add(new DestroyElementCommand(r));
+ cmd.add(new DeleteCommand(getEditingDomain(),
+ outgoingLink));
+ continue;
+ }
+ }
+ cmd.add(new DestroyElementCommand(new DestroyElementRequest(
+ getEditingDomain(), node.getElement(), false))); // directlyOwned: true
+ // don't need explicit deletion of node as parent's view deletion would clean child views as well
+ // cmd.add(new org.eclipse.gmf.runtime.diagram.core.commands.DeleteCommand(getEditingDomain(), node));
+ break;
+ }
+ }
+ }
+
+}
diff --git a/org.eclipse.emf.refactor.comrel.diagram/src/comrel/diagram/edit/policies/SingleInputPort2ItemSemanticEditPolicy.java b/org.eclipse.emf.refactor.comrel.diagram/src/comrel/diagram/edit/policies/SingleInputPort2ItemSemanticEditPolicy.java
new file mode 100644
index 0000000..4a56c40
--- /dev/null
+++ b/org.eclipse.emf.refactor.comrel.diagram/src/comrel/diagram/edit/policies/SingleInputPort2ItemSemanticEditPolicy.java
@@ -0,0 +1,148 @@
+/*
+ *
+ */
+package comrel.diagram.edit.policies;
+
+import java.util.Iterator;
+
+import org.eclipse.emf.ecore.EAnnotation;
+import org.eclipse.gef.commands.Command;
+import org.eclipse.gmf.runtime.diagram.core.commands.DeleteCommand;
+import org.eclipse.gmf.runtime.emf.commands.core.command.CompositeTransactionalCommand;
+import org.eclipse.gmf.runtime.emf.type.core.commands.DestroyElementCommand;
+import org.eclipse.gmf.runtime.emf.type.core.requests.CreateRelationshipRequest;
+import org.eclipse.gmf.runtime.emf.type.core.requests.DestroyElementRequest;
+import org.eclipse.gmf.runtime.emf.type.core.requests.ReorientRelationshipRequest;
+import org.eclipse.gmf.runtime.notation.Edge;
+import org.eclipse.gmf.runtime.notation.View;
+
+import comrel.diagram.edit.commands.MultiSinglePortMappingCreateCommand;
+import comrel.diagram.edit.commands.MultiSinglePortMappingReorientCommand;
+import comrel.diagram.edit.commands.SinglePortMappingCreateCommand;
+import comrel.diagram.edit.commands.SinglePortMappingReorientCommand;
+import comrel.diagram.edit.parts.MultiSinglePortMappingEditPart;
+import comrel.diagram.edit.parts.SinglePortMappingEditPart;
+import comrel.diagram.part.ComrelVisualIDRegistry;
+import comrel.diagram.providers.ComrelElementTypes;
+
+/**
+ * @generated
+ */
+public class SingleInputPort2ItemSemanticEditPolicy extends
+ ComrelBaseItemSemanticEditPolicy {
+
+ /**
+ * @generated
+ */
+ public SingleInputPort2ItemSemanticEditPolicy() {
+ super(ComrelElementTypes.SingleInputPort_3001);
+ }
+
+ /**
+ * @generated
+ */
+ protected Command getDestroyElementCommand(DestroyElementRequest req) {
+ View view = (View) getHost().getModel();
+ CompositeTransactionalCommand cmd = new CompositeTransactionalCommand(
+ getEditingDomain(), null);
+ cmd.setTransactionNestingEnabled(false);
+ for (Iterator<?> it = view.getTargetEdges().iterator(); it.hasNext();) {
+ Edge incomingLink = (Edge) it.next();
+ if (ComrelVisualIDRegistry.getVisualID(incomingLink) == SinglePortMappingEditPart.VISUAL_ID) {
+ DestroyElementRequest r = new DestroyElementRequest(
+ incomingLink.getElement(), false);
+ cmd.add(new DestroyElementCommand(r));
+ cmd.add(new DeleteCommand(getEditingDomain(), incomingLink));
+ continue;
+ }
+ if (ComrelVisualIDRegistry.getVisualID(incomingLink) == MultiSinglePortMappingEditPart.VISUAL_ID) {
+ DestroyElementRequest r = new DestroyElementRequest(
+ incomingLink.getElement(), false);
+ cmd.add(new DestroyElementCommand(r));
+ cmd.add(new DeleteCommand(getEditingDomain(), incomingLink));
+ continue;
+ }
+ }
+ for (Iterator<?> it = view.getSourceEdges().iterator(); it.hasNext();) {
+ Edge outgoingLink = (Edge) it.next();
+ if (ComrelVisualIDRegistry.getVisualID(outgoingLink) == SinglePortMappingEditPart.VISUAL_ID) {
+ DestroyElementRequest r = new DestroyElementRequest(
+ outgoingLink.getElement(), false);
+ cmd.add(new DestroyElementCommand(r));
+ cmd.add(new DeleteCommand(getEditingDomain(), outgoingLink));
+ continue;
+ }
+ }
+ EAnnotation annotation = view.getEAnnotation("Shortcut"); //$NON-NLS-1$
+ if (annotation == null) {
+ // there are indirectly referenced children, need extra commands: false
+ addDestroyShortcutsCommand(cmd, view);
+ // delete host element
+ cmd.add(new DestroyElementCommand(req));
+ } else {
+ cmd.add(new DeleteCommand(getEditingDomain(), view));
+ }
+ return getGEFWrapper(cmd.reduce());
+ }
+
+ /**
+ * @generated
+ */
+ protected Command getCreateRelationshipCommand(CreateRelationshipRequest req) {
+ Command command = req.getTarget() == null ? getStartCreateRelationshipCommand(req)
+ : getCompleteCreateRelationshipCommand(req);
+ return command != null ? command : super
+ .getCreateRelationshipCommand(req);
+ }
+
+ /**
+ * @generated
+ */
+ protected Command getStartCreateRelationshipCommand(
+ CreateRelationshipRequest req) {
+ if (ComrelElementTypes.SinglePortMapping_4001 == req.getElementType()) {
+ return getGEFWrapper(new SinglePortMappingCreateCommand(req,
+ req.getSource(), req.getTarget()));
+ }
+ if (ComrelElementTypes.MultiSinglePortMapping_4003 == req
+ .getElementType()) {
+ return null;
+ }
+ return null;
+ }
+
+ /**
+ * @generated
+ */
+ protected Command getCompleteCreateRelationshipCommand(
+ CreateRelationshipRequest req) {
+ if (ComrelElementTypes.SinglePortMapping_4001 == req.getElementType()) {
+ return getGEFWrapper(new SinglePortMappingCreateCommand(req,
+ req.getSource(), req.getTarget()));
+ }
+ if (ComrelElementTypes.MultiSinglePortMapping_4003 == req
+ .getElementType()) {
+ return getGEFWrapper(new MultiSinglePortMappingCreateCommand(req,
+ req.getSource(), req.getTarget()));
+ }
+ return null;
+ }
+
+ /**
+ * Returns command to reorient EClass based link. New link target or source
+ * should be the domain model element associated with this node.
+ *
+ * @generated
+ */
+ protected Command getReorientRelationshipCommand(
+ ReorientRelationshipRequest req) {
+ switch (getVisualID(req)) {
+ case SinglePortMappingEditPart.VISUAL_ID:
+ return getGEFWrapper(new SinglePortMappingReorientCommand(req));
+ case MultiSinglePortMappingEditPart.VISUAL_ID:
+ return getGEFWrapper(new MultiSinglePortMappingReorientCommand(req));
+ }
+ return super.getReorientRelationshipCommand(req);
+ }
+
+}
diff --git a/org.eclipse.emf.refactor.comrel.diagram/src/comrel/diagram/edit/policies/SingleInputPort3ItemSemanticEditPolicy.java b/org.eclipse.emf.refactor.comrel.diagram/src/comrel/diagram/edit/policies/SingleInputPort3ItemSemanticEditPolicy.java
new file mode 100644
index 0000000..591c7e0
--- /dev/null
+++ b/org.eclipse.emf.refactor.comrel.diagram/src/comrel/diagram/edit/policies/SingleInputPort3ItemSemanticEditPolicy.java
@@ -0,0 +1,148 @@
+/*
+ *
+ */
+package comrel.diagram.edit.policies;
+
+import java.util.Iterator;
+
+import org.eclipse.emf.ecore.EAnnotation;
+import org.eclipse.gef.commands.Command;
+import org.eclipse.gmf.runtime.diagram.core.commands.DeleteCommand;
+import org.eclipse.gmf.runtime.emf.commands.core.command.CompositeTransactionalCommand;
+import org.eclipse.gmf.runtime.emf.type.core.commands.DestroyElementCommand;
+import org.eclipse.gmf.runtime.emf.type.core.requests.CreateRelationshipRequest;
+import org.eclipse.gmf.runtime.emf.type.core.requests.DestroyElementRequest;
+import org.eclipse.gmf.runtime.emf.type.core.requests.ReorientRelationshipRequest;
+import org.eclipse.gmf.runtime.notation.Edge;
+import org.eclipse.gmf.runtime.notation.View;
+
+import comrel.diagram.edit.commands.MultiSinglePortMappingCreateCommand;
+import comrel.diagram.edit.commands.MultiSinglePortMappingReorientCommand;
+import comrel.diagram.edit.commands.SinglePortMappingCreateCommand;
+import comrel.diagram.edit.commands.SinglePortMappingReorientCommand;
+import comrel.diagram.edit.parts.MultiSinglePortMappingEditPart;
+import comrel.diagram.edit.parts.SinglePortMappingEditPart;
+import comrel.diagram.part.ComrelVisualIDRegistry;
+import comrel.diagram.providers.ComrelElementTypes;
+
+/**
+ * @generated
+ */
+public class SingleInputPort3ItemSemanticEditPolicy extends
+ ComrelBaseItemSemanticEditPolicy {
+
+ /**
+ * @generated
+ */
+ public SingleInputPort3ItemSemanticEditPolicy() {
+ super(ComrelElementTypes.SingleInputPort_3005);
+ }
+
+ /**
+ * @generated
+ */
+ protected Command getDestroyElementCommand(DestroyElementRequest req) {
+ View view = (View) getHost().getModel();
+ CompositeTransactionalCommand cmd = new CompositeTransactionalCommand(
+ getEditingDomain(), null);
+ cmd.setTransactionNestingEnabled(false);
+ for (Iterator<?> it = view.getTargetEdges().iterator(); it.hasNext();) {
+ Edge incomingLink = (Edge) it.next();
+ if (ComrelVisualIDRegistry.getVisualID(incomingLink) == SinglePortMappingEditPart.VISUAL_ID) {
+ DestroyElementRequest r = new DestroyElementRequest(
+ incomingLink.getElement(), false);
+ cmd.add(new DestroyElementCommand(r));
+ cmd.add(new DeleteCommand(getEditingDomain(), incomingLink));
+ continue;
+ }
+ if (ComrelVisualIDRegistry.getVisualID(incomingLink) == MultiSinglePortMappingEditPart.VISUAL_ID) {
+ DestroyElementRequest r = new DestroyElementRequest(
+ incomingLink.getElement(), false);
+ cmd.add(new DestroyElementCommand(r));
+ cmd.add(new DeleteCommand(getEditingDomain(), incomingLink));
+ continue;
+ }
+ }
+ for (Iterator<?> it = view.getSourceEdges().iterator(); it.hasNext();) {
+ Edge outgoingLink = (Edge) it.next();
+ if (ComrelVisualIDRegistry.getVisualID(outgoingLink) == SinglePortMappingEditPart.VISUAL_ID) {
+ DestroyElementRequest r = new DestroyElementRequest(
+ outgoingLink.getElement(), false);
+ cmd.add(new DestroyElementCommand(r));
+ cmd.add(new DeleteCommand(getEditingDomain(), outgoingLink));
+ continue;
+ }
+ }
+ EAnnotation annotation = view.getEAnnotation("Shortcut"); //$NON-NLS-1$
+ if (annotation == null) {
+ // there are indirectly referenced children, need extra commands: false
+ addDestroyShortcutsCommand(cmd, view);
+ // delete host element
+ cmd.add(new DestroyElementCommand(req));
+ } else {
+ cmd.add(new DeleteCommand(getEditingDomain(), view));
+ }
+ return getGEFWrapper(cmd.reduce());
+ }
+
+ /**
+ * @generated
+ */
+ protected Command getCreateRelationshipCommand(CreateRelationshipRequest req) {
+ Command command = req.getTarget() == null ? getStartCreateRelationshipCommand(req)
+ : getCompleteCreateRelationshipCommand(req);
+ return command != null ? command : super
+ .getCreateRelationshipCommand(req);
+ }
+
+ /**
+ * @generated
+ */
+ protected Command getStartCreateRelationshipCommand(
+ CreateRelationshipRequest req) {
+ if (ComrelElementTypes.SinglePortMapping_4001 == req.getElementType()) {
+ return getGEFWrapper(new SinglePortMappingCreateCommand(req,
+ req.getSource(), req.getTarget()));
+ }
+ if (ComrelElementTypes.MultiSinglePortMapping_4003 == req
+ .getElementType()) {
+ return null;
+ }
+ return null;
+ }
+
+ /**
+ * @generated
+ */
+ protected Command getCompleteCreateRelationshipCommand(
+ CreateRelationshipRequest req) {
+ if (ComrelElementTypes.SinglePortMapping_4001 == req.getElementType()) {
+ return getGEFWrapper(new SinglePortMappingCreateCommand(req,
+ req.getSource(), req.getTarget()));
+ }
+ if (ComrelElementTypes.MultiSinglePortMapping_4003 == req
+ .getElementType()) {
+ return getGEFWrapper(new MultiSinglePortMappingCreateCommand(req,
+ req.getSource(), req.getTarget()));
+ }
+ return null;
+ }
+
+ /**
+ * Returns command to reorient EClass based link. New link target or source
+ * should be the domain model element associated with this node.
+ *
+ * @generated
+ */
+ protected Command getReorientRelationshipCommand(
+ ReorientRelationshipRequest req) {
+ switch (getVisualID(req)) {
+ case SinglePortMappingEditPart.VISUAL_ID:
+ return getGEFWrapper(new SinglePortMappingReorientCommand(req));
+ case MultiSinglePortMappingEditPart.VISUAL_ID:
+ return getGEFWrapper(new MultiSinglePortMappingReorientCommand(req));
+ }
+ return super.getReorientRelationshipCommand(req);
+ }
+
+}
diff --git a/org.eclipse.emf.refactor.comrel.diagram/src/comrel/diagram/edit/policies/SingleInputPort4ItemSemanticEditPolicy.java b/org.eclipse.emf.refactor.comrel.diagram/src/comrel/diagram/edit/policies/SingleInputPort4ItemSemanticEditPolicy.java
new file mode 100644
index 0000000..56f7be3
--- /dev/null
+++ b/org.eclipse.emf.refactor.comrel.diagram/src/comrel/diagram/edit/policies/SingleInputPort4ItemSemanticEditPolicy.java
@@ -0,0 +1,148 @@
+/*
+ *
+ */
+package comrel.diagram.edit.policies;
+
+import java.util.Iterator;
+
+import org.eclipse.emf.ecore.EAnnotation;
+import org.eclipse.gef.commands.Command;
+import org.eclipse.gmf.runtime.diagram.core.commands.DeleteCommand;
+import org.eclipse.gmf.runtime.emf.commands.core.command.CompositeTransactionalCommand;
+import org.eclipse.gmf.runtime.emf.type.core.commands.DestroyElementCommand;
+import org.eclipse.gmf.runtime.emf.type.core.requests.CreateRelationshipRequest;
+import org.eclipse.gmf.runtime.emf.type.core.requests.DestroyElementRequest;
+import org.eclipse.gmf.runtime.emf.type.core.requests.ReorientRelationshipRequest;
+import org.eclipse.gmf.runtime.notation.Edge;
+import org.eclipse.gmf.runtime.notation.View;
+
+import comrel.diagram.edit.commands.MultiSinglePortMappingCreateCommand;
+import comrel.diagram.edit.commands.MultiSinglePortMappingReorientCommand;
+import comrel.diagram.edit.commands.SinglePortMappingCreateCommand;
+import comrel.diagram.edit.commands.SinglePortMappingReorientCommand;
+import comrel.diagram.edit.parts.MultiSinglePortMappingEditPart;
+import comrel.diagram.edit.parts.SinglePortMappingEditPart;
+import comrel.diagram.part.ComrelVisualIDRegistry;
+import comrel.diagram.providers.ComrelElementTypes;
+
+/**
+ * @generated
+ */
+public class SingleInputPort4ItemSemanticEditPolicy extends
+ ComrelBaseItemSemanticEditPolicy {
+
+ /**
+ * @generated
+ */
+ public SingleInputPort4ItemSemanticEditPolicy() {
+ super(ComrelElementTypes.SingleInputPort_3009);
+ }
+
+ /**
+ * @generated
+ */
+ protected Command getDestroyElementCommand(DestroyElementRequest req) {
+ View view = (View) getHost().getModel();
+ CompositeTransactionalCommand cmd = new CompositeTransactionalCommand(
+ getEditingDomain(), null);
+ cmd.setTransactionNestingEnabled(false);
+ for (Iterator<?> it = view.getTargetEdges().iterator(); it.hasNext();) {
+ Edge incomingLink = (Edge) it.next();
+ if (ComrelVisualIDRegistry.getVisualID(incomingLink) == SinglePortMappingEditPart.VISUAL_ID) {
+ DestroyElementRequest r = new DestroyElementRequest(
+ incomingLink.getElement(), false);
+ cmd.add(new DestroyElementCommand(r));
+ cmd.add(new DeleteCommand(getEditingDomain(), incomingLink));
+ continue;
+ }
+ if (ComrelVisualIDRegistry.getVisualID(incomingLink) == MultiSinglePortMappingEditPart.VISUAL_ID) {
+ DestroyElementRequest r = new DestroyElementRequest(
+ incomingLink.getElement(), false);
+ cmd.add(new DestroyElementCommand(r));
+ cmd.add(new DeleteCommand(getEditingDomain(), incomingLink));
+ continue;
+ }
+ }
+ for (Iterator<?> it = view.getSourceEdges().iterator(); it.hasNext();) {
+ Edge outgoingLink = (Edge) it.next();
+ if (ComrelVisualIDRegistry.getVisualID(outgoingLink) == SinglePortMappingEditPart.VISUAL_ID) {
+ DestroyElementRequest r = new DestroyElementRequest(
+ outgoingLink.getElement(), false);
+ cmd.add(new DestroyElementCommand(r));
+ cmd.add(new DeleteCommand(getEditingDomain(), outgoingLink));
+ continue;
+ }
+ }
+ EAnnotation annotation = view.getEAnnotation("Shortcut"); //$NON-NLS-1$
+ if (annotation == null) {
+ // there are indirectly referenced children, need extra commands: false
+ addDestroyShortcutsCommand(cmd, view);
+ // delete host element
+ cmd.add(new DestroyElementCommand(req));
+ } else {
+ cmd.add(new DeleteCommand(getEditingDomain(), view));
+ }
+ return getGEFWrapper(cmd.reduce());
+ }
+
+ /**
+ * @generated
+ */
+ protected Command getCreateRelationshipCommand(CreateRelationshipRequest req) {
+ Command command = req.getTarget() == null ? getStartCreateRelationshipCommand(req)
+ : getCompleteCreateRelationshipCommand(req);
+ return command != null ? command : super
+ .getCreateRelationshipCommand(req);
+ }
+
+ /**
+ * @generated
+ */
+ protected Command getStartCreateRelationshipCommand(
+ CreateRelationshipRequest req) {
+ if (ComrelElementTypes.SinglePortMapping_4001 == req.getElementType()) {
+ return getGEFWrapper(new SinglePortMappingCreateCommand(req,
+ req.getSource(), req.getTarget()));
+ }
+ if (ComrelElementTypes.MultiSinglePortMapping_4003 == req
+ .getElementType()) {
+ return null;
+ }
+ return null;
+ }
+
+ /**
+ * @generated
+ */
+ protected Command getCompleteCreateRelationshipCommand(
+ CreateRelationshipRequest req) {
+ if (ComrelElementTypes.SinglePortMapping_4001 == req.getElementType()) {
+ return getGEFWrapper(new SinglePortMappingCreateCommand(req,
+ req.getSource(), req.getTarget()));
+ }
+ if (ComrelElementTypes.MultiSinglePortMapping_4003 == req
+ .getElementType()) {
+ return getGEFWrapper(new MultiSinglePortMappingCreateCommand(req,
+ req.getSource(), req.getTarget()));
+ }
+ return null;
+ }
+
+ /**
+ * Returns command to reorient EClass based link. New link target or source
+ * should be the domain model element associated with this node.
+ *
+ * @generated
+ */
+ protected Command getReorientRelationshipCommand(
+ ReorientRelationshipRequest req) {
+ switch (getVisualID(req)) {
+ case SinglePortMappingEditPart.VISUAL_ID:
+ return getGEFWrapper(new SinglePortMappingReorientCommand(req));
+ case MultiSinglePortMappingEditPart.VISUAL_ID:
+ return getGEFWrapper(new MultiSinglePortMappingReorientCommand(req));
+ }
+ return super.getReorientRelationshipCommand(req);
+ }
+
+}
diff --git a/org.eclipse.emf.refactor.comrel.diagram/src/comrel/diagram/edit/policies/SingleInputPort5ItemSemanticEditPolicy.java b/org.eclipse.emf.refactor.comrel.diagram/src/comrel/diagram/edit/policies/SingleInputPort5ItemSemanticEditPolicy.java
new file mode 100644
index 0000000..c237f71
--- /dev/null
+++ b/org.eclipse.emf.refactor.comrel.diagram/src/comrel/diagram/edit/policies/SingleInputPort5ItemSemanticEditPolicy.java
@@ -0,0 +1,148 @@
+/*
+ *
+ */
+package comrel.diagram.edit.policies;
+
+import java.util.Iterator;
+
+import org.eclipse.emf.ecore.EAnnotation;
+import org.eclipse.gef.commands.Command;
+import org.eclipse.gmf.runtime.diagram.core.commands.DeleteCommand;
+import org.eclipse.gmf.runtime.emf.commands.core.command.CompositeTransactionalCommand;
+import org.eclipse.gmf.runtime.emf.type.core.commands.DestroyElementCommand;
+import org.eclipse.gmf.runtime.emf.type.core.requests.CreateRelationshipRequest;
+import org.eclipse.gmf.runtime.emf.type.core.requests.DestroyElementRequest;
+import org.eclipse.gmf.runtime.emf.type.core.requests.ReorientRelationshipRequest;
+import org.eclipse.gmf.runtime.notation.Edge;
+import org.eclipse.gmf.runtime.notation.View;
+
+import comrel.diagram.edit.commands.MultiSinglePortMappingCreateCommand;
+import comrel.diagram.edit.commands.MultiSinglePortMappingReorientCommand;
+import comrel.diagram.edit.commands.SinglePortMappingCreateCommand;
+import comrel.diagram.edit.commands.SinglePortMappingReorientCommand;
+import comrel.diagram.edit.parts.MultiSinglePortMappingEditPart;
+import comrel.diagram.edit.parts.SinglePortMappingEditPart;
+import comrel.diagram.part.ComrelVisualIDRegistry;
+import comrel.diagram.providers.ComrelElementTypes;
+
+/**
+ * @generated
+ */
+public class SingleInputPort5ItemSemanticEditPolicy extends
+ ComrelBaseItemSemanticEditPolicy {
+
+ /**
+ * @generated
+ */
+ public SingleInputPort5ItemSemanticEditPolicy() {
+ super(ComrelElementTypes.SingleInputPort_3013);
+ }
+
+ /**
+ * @generated
+ */
+ protected Command getDestroyElementCommand(DestroyElementRequest req) {
+ View view = (View) getHost().getModel();
+ CompositeTransactionalCommand cmd = new CompositeTransactionalCommand(
+ getEditingDomain(), null);
+ cmd.setTransactionNestingEnabled(false);
+ for (Iterator<?> it = view.getTargetEdges().iterator(); it.hasNext();) {
+ Edge incomingLink = (Edge) it.next();
+ if (ComrelVisualIDRegistry.getVisualID(incomingLink) == SinglePortMappingEditPart.VISUAL_ID) {
+ DestroyElementRequest r = new DestroyElementRequest(
+ incomingLink.getElement(), false);
+ cmd.add(new DestroyElementCommand(r));
+ cmd.add(new DeleteCommand(getEditingDomain(), incomingLink));
+ continue;
+ }
+ if (ComrelVisualIDRegistry.getVisualID(incomingLink) == MultiSinglePortMappingEditPart.VISUAL_ID) {
+ DestroyElementRequest r = new DestroyElementRequest(
+ incomingLink.getElement(), false);
+ cmd.add(new DestroyElementCommand(r));
+ cmd.add(new DeleteCommand(getEditingDomain(), incomingLink));
+ continue;
+ }
+ }
+ for (Iterator<?> it = view.getSourceEdges().iterator(); it.hasNext();) {
+ Edge outgoingLink = (Edge) it.next();
+ if (ComrelVisualIDRegistry.getVisualID(outgoingLink) == SinglePortMappingEditPart.VISUAL_ID) {
+ DestroyElementRequest r = new DestroyElementRequest(
+ outgoingLink.getElement(), false);
+ cmd.add(new DestroyElementCommand(r));
+ cmd.add(new DeleteCommand(getEditingDomain(), outgoingLink));
+ continue;
+ }
+ }
+ EAnnotation annotation = view.getEAnnotation("Shortcut"); //$NON-NLS-1$
+ if (annotation == null) {
+ // there are indirectly referenced children, need extra commands: false
+ addDestroyShortcutsCommand(cmd, view);
+ // delete host element
+ cmd.add(new DestroyElementCommand(req));
+ } else {
+ cmd.add(new DeleteCommand(getEditingDomain(), view));
+ }
+ return getGEFWrapper(cmd.reduce());
+ }
+
+ /**
+ * @generated
+ */
+ protected Command getCreateRelationshipCommand(CreateRelationshipRequest req) {
+ Command command = req.getTarget() == null ? getStartCreateRelationshipCommand(req)
+ : getCompleteCreateRelationshipCommand(req);
+ return command != null ? command : super
+ .getCreateRelationshipCommand(req);
+ }
+
+ /**
+ * @generated
+ */
+ protected Command getStartCreateRelationshipCommand(
+ CreateRelationshipRequest req) {
+ if (ComrelElementTypes.SinglePortMapping_4001 == req.getElementType()) {
+ return getGEFWrapper(new SinglePortMappingCreateCommand(req,
+ req.getSource(), req.getTarget()));
+ }
+ if (ComrelElementTypes.MultiSinglePortMapping_4003 == req
+ .getElementType()) {
+ return null;
+ }
+ return null;
+ }
+
+ /**
+ * @generated
+ */
+ protected Command getCompleteCreateRelationshipCommand(
+ CreateRelationshipRequest req) {
+ if (ComrelElementTypes.SinglePortMapping_4001 == req.getElementType()) {
+ return getGEFWrapper(new SinglePortMappingCreateCommand(req,
+ req.getSource(), req.getTarget()));
+ }
+ if (ComrelElementTypes.MultiSinglePortMapping_4003 == req
+ .getElementType()) {
+ return getGEFWrapper(new MultiSinglePortMappingCreateCommand(req,
+ req.getSource(), req.getTarget()));
+ }
+ return null;
+ }
+
+ /**
+ * Returns command to reorient EClass based link. New link target or source
+ * should be the domain model element associated with this node.
+ *
+ * @generated
+ */
+ protected Command getReorientRelationshipCommand(
+ ReorientRelationshipRequest req) {
+ switch (getVisualID(req)) {
+ case SinglePortMappingEditPart.VISUAL_ID:
+ return getGEFWrapper(new SinglePortMappingReorientCommand(req));
+ case MultiSinglePortMappingEditPart.VISUAL_ID:
+ return getGEFWrapper(new MultiSinglePortMappingReorientCommand(req));
+ }
+ return super.getReorientRelationshipCommand(req);
+ }
+
+}
diff --git a/org.eclipse.emf.refactor.comrel.diagram/src/comrel/diagram/edit/policies/SingleInputPort6ItemSemanticEditPolicy.java b/org.eclipse.emf.refactor.comrel.diagram/src/comrel/diagram/edit/policies/SingleInputPort6ItemSemanticEditPolicy.java
new file mode 100644
index 0000000..514ec26
--- /dev/null
+++ b/org.eclipse.emf.refactor.comrel.diagram/src/comrel/diagram/edit/policies/SingleInputPort6ItemSemanticEditPolicy.java
@@ -0,0 +1,148 @@
+/*
+ *
+ */
+package comrel.diagram.edit.policies;
+
+import java.util.Iterator;
+
+import org.eclipse.emf.ecore.EAnnotation;
+import org.eclipse.gef.commands.Command;
+import org.eclipse.gmf.runtime.diagram.core.commands.DeleteCommand;
+import org.eclipse.gmf.runtime.emf.commands.core.command.CompositeTransactionalCommand;
+import org.eclipse.gmf.runtime.emf.type.core.commands.DestroyElementCommand;
+import org.eclipse.gmf.runtime.emf.type.core.requests.CreateRelationshipRequest;
+import org.eclipse.gmf.runtime.emf.type.core.requests.DestroyElementRequest;
+import org.eclipse.gmf.runtime.emf.type.core.requests.ReorientRelationshipRequest;
+import org.eclipse.gmf.runtime.notation.Edge;
+import org.eclipse.gmf.runtime.notation.View;
+
+import comrel.diagram.edit.commands.MultiSinglePortMappingCreateCommand;
+import comrel.diagram.edit.commands.MultiSinglePortMappingReorientCommand;
+import comrel.diagram.edit.commands.SinglePortMappingCreateCommand;
+import comrel.diagram.edit.commands.SinglePortMappingReorientCommand;
+import comrel.diagram.edit.parts.MultiSinglePortMappingEditPart;
+import comrel.diagram.edit.parts.SinglePortMappingEditPart;
+import comrel.diagram.part.ComrelVisualIDRegistry;
+import comrel.diagram.providers.ComrelElementTypes;
+
+/**
+ * @generated
+ */
+public class SingleInputPort6ItemSemanticEditPolicy extends
+ ComrelBaseItemSemanticEditPolicy {
+
+ /**
+ * @generated
+ */
+ public SingleInputPort6ItemSemanticEditPolicy() {
+ super(ComrelElementTypes.SingleInputPort_3023);
+ }
+
+ /**
+ * @generated
+ */
+ protected Command getDestroyElementCommand(DestroyElementRequest req) {
+ View view = (View) getHost().getModel();
+ CompositeTransactionalCommand cmd = new CompositeTransactionalCommand(
+ getEditingDomain(), null);
+ cmd.setTransactionNestingEnabled(false);
+ for (Iterator<?> it = view.getTargetEdges().iterator(); it.hasNext();) {
+ Edge incomingLink = (Edge) it.next();
+ if (ComrelVisualIDRegistry.getVisualID(incomingLink) == SinglePortMappingEditPart.VISUAL_ID) {
+ DestroyElementRequest r = new DestroyElementRequest(
+ incomingLink.getElement(), false);
+ cmd.add(new DestroyElementCommand(r));
+ cmd.add(new DeleteCommand(getEditingDomain(), incomingLink));
+ continue;
+ }
+ if (ComrelVisualIDRegistry.getVisualID(incomingLink) == MultiSinglePortMappingEditPart.VISUAL_ID) {
+ DestroyElementRequest r = new DestroyElementRequest(
+ incomingLink.getElement(), false);
+ cmd.add(new DestroyElementCommand(r));
+ cmd.add(new DeleteCommand(getEditingDomain(), incomingLink));
+ continue;
+ }
+ }
+ for (Iterator<?> it = view.getSourceEdges().iterator(); it.hasNext();) {
+ Edge outgoingLink = (Edge) it.next();
+ if (ComrelVisualIDRegistry.getVisualID(outgoingLink) == SinglePortMappingEditPart.VISUAL_ID) {
+ DestroyElementRequest r = new DestroyElementRequest(
+ outgoingLink.getElement(), false);
+ cmd.add(new DestroyElementCommand(r));
+ cmd.add(new DeleteCommand(getEditingDomain(), outgoingLink));
+ continue;
+ }
+ }
+ EAnnotation annotation = view.getEAnnotation("Shortcut"); //$NON-NLS-1$
+ if (annotation == null) {
+ // there are indirectly referenced children, need extra commands: false
+ addDestroyShortcutsCommand(cmd, view);
+ // delete host element
+ cmd.add(new DestroyElementCommand(req));
+ } else {
+ cmd.add(new DeleteCommand(getEditingDomain(), view));
+ }
+ return getGEFWrapper(cmd.reduce());
+ }
+
+ /**
+ * @generated
+ */
+ protected Command getCreateRelationshipCommand(CreateRelationshipRequest req) {
+ Command command = req.getTarget() == null ? getStartCreateRelationshipCommand(req)
+ : getCompleteCreateRelationshipCommand(req);
+ return command != null ? command : super
+ .getCreateRelationshipCommand(req);
+ }
+
+ /**
+ * @generated
+ */
+ protected Command getStartCreateRelationshipCommand(
+ CreateRelationshipRequest req) {
+ if (ComrelElementTypes.SinglePortMapping_4001 == req.getElementType()) {
+ return getGEFWrapper(new SinglePortMappingCreateCommand(req,
+ req.getSource(), req.getTarget()));
+ }
+ if (ComrelElementTypes.MultiSinglePortMapping_4003 == req
+ .getElementType()) {
+ return null;
+ }
+ return null;
+ }
+
+ /**
+ * @generated
+ */
+ protected Command getCompleteCreateRelationshipCommand(
+ CreateRelationshipRequest req) {
+ if (ComrelElementTypes.SinglePortMapping_4001 == req.getElementType()) {
+ return getGEFWrapper(new SinglePortMappingCreateCommand(req,
+ req.getSource(), req.getTarget()));
+ }
+ if (ComrelElementTypes.MultiSinglePortMapping_4003 == req
+ .getElementType()) {
+ return getGEFWrapper(new MultiSinglePortMappingCreateCommand(req,
+ req.getSource(), req.getTarget()));
+ }
+ return null;
+ }
+
+ /**
+ * Returns command to reorient EClass based link. New link target or source
+ * should be the domain model element associated with this node.
+ *
+ * @generated
+ */
+ protected Command getReorientRelationshipCommand(
+ ReorientRelationshipRequest req) {
+ switch (getVisualID(req)) {
+ case SinglePortMappingEditPart.VISUAL_ID:
+ return getGEFWrapper(new SinglePortMappingReorientCommand(req));
+ case MultiSinglePortMappingEditPart.VISUAL_ID:
+ return getGEFWrapper(new MultiSinglePortMappingReorientCommand(req));
+ }
+ return super.getReorientRelationshipCommand(req);
+ }
+
+}
diff --git a/org.eclipse.emf.refactor.comrel.diagram/src/comrel/diagram/edit/policies/SingleInputPort7ItemSemanticEditPolicy.java b/org.eclipse.emf.refactor.comrel.diagram/src/comrel/diagram/edit/policies/SingleInputPort7ItemSemanticEditPolicy.java
new file mode 100644
index 0000000..8642449
--- /dev/null
+++ b/org.eclipse.emf.refactor.comrel.diagram/src/comrel/diagram/edit/policies/SingleInputPort7ItemSemanticEditPolicy.java
@@ -0,0 +1,148 @@
+/*
+ *
+ */
+package comrel.diagram.edit.policies;
+
+import java.util.Iterator;
+
+import org.eclipse.emf.ecore.EAnnotation;
+import org.eclipse.gef.commands.Command;
+import org.eclipse.gmf.runtime.diagram.core.commands.DeleteCommand;
+import org.eclipse.gmf.runtime.emf.commands.core.command.CompositeTransactionalCommand;
+import org.eclipse.gmf.runtime.emf.type.core.commands.DestroyElementCommand;
+import org.eclipse.gmf.runtime.emf.type.core.requests.CreateRelationshipRequest;
+import org.eclipse.gmf.runtime.emf.type.core.requests.DestroyElementRequest;
+import org.eclipse.gmf.runtime.emf.type.core.requests.ReorientRelationshipRequest;
+import org.eclipse.gmf.runtime.notation.Edge;
+import org.eclipse.gmf.runtime.notation.View;
+
+import comrel.diagram.edit.commands.MultiSinglePortMappingCreateCommand;
+import comrel.diagram.edit.commands.MultiSinglePortMappingReorientCommand;
+import comrel.diagram.edit.commands.SinglePortMappingCreateCommand;
+import comrel.diagram.edit.commands.SinglePortMappingReorientCommand;
+import comrel.diagram.edit.parts.MultiSinglePortMappingEditPart;
+import comrel.diagram.edit.parts.SinglePortMappingEditPart;
+import comrel.diagram.part.ComrelVisualIDRegistry;
+import comrel.diagram.providers.ComrelElementTypes;
+
+/**
+ * @generated
+ */
+public class SingleInputPort7ItemSemanticEditPolicy extends
+ ComrelBaseItemSemanticEditPolicy {
+
+ /**
+ * @generated
+ */
+ public SingleInputPort7ItemSemanticEditPolicy() {
+ super(ComrelElementTypes.SingleInputPort_3027);
+ }
+
+ /**
+ * @generated
+ */
+ protected Command getDestroyElementCommand(DestroyElementRequest req) {
+ View view = (View) getHost().getModel();
+ CompositeTransactionalCommand cmd = new CompositeTransactionalCommand(
+ getEditingDomain(), null);
+ cmd.setTransactionNestingEnabled(false);
+ for (Iterator<?> it = view.getTargetEdges().iterator(); it.hasNext();) {
+ Edge incomingLink = (Edge) it.next();
+ if (ComrelVisualIDRegistry.getVisualID(incomingLink) == SinglePortMappingEditPart.VISUAL_ID) {
+ DestroyElementRequest r = new DestroyElementRequest(
+ incomingLink.getElement(), false);
+ cmd.add(new DestroyElementCommand(r));
+ cmd.add(new DeleteCommand(getEditingDomain(), incomingLink));
+ continue;
+ }
+ if (ComrelVisualIDRegistry.getVisualID(incomingLink) == MultiSinglePortMappingEditPart.VISUAL_ID) {
+ DestroyElementRequest r = new DestroyElementRequest(
+ incomingLink.getElement(), false);
+ cmd.add(new DestroyElementCommand(r));
+ cmd.add(new DeleteCommand(getEditingDomain(), incomingLink));
+ continue;
+ }
+ }
+ for (Iterator<?> it = view.getSourceEdges().iterator(); it.hasNext();) {
+ Edge outgoingLink = (Edge) it.next();
+ if (ComrelVisualIDRegistry.getVisualID(outgoingLink) == SinglePortMappingEditPart.VISUAL_ID) {
+ DestroyElementRequest r = new DestroyElementRequest(
+ outgoingLink.getElement(), false);
+ cmd.add(new DestroyElementCommand(r));
+ cmd.add(new DeleteCommand(getEditingDomain(), outgoingLink));
+ continue;
+ }
+ }
+ EAnnotation annotation = view.getEAnnotation("Shortcut"); //$NON-NLS-1$
+ if (annotation == null) {
+ // there are indirectly referenced children, need extra commands: false
+ addDestroyShortcutsCommand(cmd, view);
+ // delete host element
+ cmd.add(new DestroyElementCommand(req));
+ } else {
+ cmd.add(new DeleteCommand(getEditingDomain(), view));
+ }
+ return getGEFWrapper(cmd.reduce());
+ }
+
+ /**
+ * @generated
+ */
+ protected Command getCreateRelationshipCommand(CreateRelationshipRequest req) {
+ Command command = req.getTarget() == null ? getStartCreateRelationshipCommand(req)
+ : getCompleteCreateRelationshipCommand(req);
+ return command != null ? command : super
+ .getCreateRelationshipCommand(req);
+ }
+
+ /**
+ * @generated
+ */
+ protected Command getStartCreateRelationshipCommand(
+ CreateRelationshipRequest req) {
+ if (ComrelElementTypes.SinglePortMapping_4001 == req.getElementType()) {
+ return getGEFWrapper(new SinglePortMappingCreateCommand(req,
+ req.getSource(), req.getTarget()));
+ }
+ if (ComrelElementTypes.MultiSinglePortMapping_4003 == req
+ .getElementType()) {
+ return null;
+ }
+ return null;
+ }
+
+ /**
+ * @generated
+ */
+ protected Command getCompleteCreateRelationshipCommand(
+ CreateRelationshipRequest req) {
+ if (ComrelElementTypes.SinglePortMapping_4001 == req.getElementType()) {
+ return getGEFWrapper(new SinglePortMappingCreateCommand(req,
+ req.getSource(), req.getTarget()));
+ }
+ if (ComrelElementTypes.MultiSinglePortMapping_4003 == req
+ .getElementType()) {
+ return getGEFWrapper(new MultiSinglePortMappingCreateCommand(req,
+ req.getSource(), req.getTarget()));
+ }
+ return null;
+ }
+
+ /**
+ * Returns command to reorient EClass based link. New link target or source
+ * should be the domain model element associated with this node.
+ *
+ * @generated
+ */
+ protected Command getReorientRelationshipCommand(
+ ReorientRelationshipRequest req) {
+ switch (getVisualID(req)) {
+ case SinglePortMappingEditPart.VISUAL_ID:
+ return getGEFWrapper(new SinglePortMappingReorientCommand(req));
+ case MultiSinglePortMappingEditPart.VISUAL_ID:
+ return getGEFWrapper(new MultiSinglePortMappingReorientCommand(req));
+ }
+ return super.getReorientRelationshipCommand(req);
+ }
+
+}
diff --git a/org.eclipse.emf.refactor.comrel.diagram/src/comrel/diagram/edit/policies/SingleInputPort8ItemSemanticEditPolicy.java b/org.eclipse.emf.refactor.comrel.diagram/src/comrel/diagram/edit/policies/SingleInputPort8ItemSemanticEditPolicy.java
new file mode 100644
index 0000000..480d4df
--- /dev/null
+++ b/org.eclipse.emf.refactor.comrel.diagram/src/comrel/diagram/edit/policies/SingleInputPort8ItemSemanticEditPolicy.java
@@ -0,0 +1,148 @@
+/*
+ *
+ */
+package comrel.diagram.edit.policies;
+
+import java.util.Iterator;
+
+import org.eclipse.emf.ecore.EAnnotation;
+import org.eclipse.gef.commands.Command;
+import org.eclipse.gmf.runtime.diagram.core.commands.DeleteCommand;
+import org.eclipse.gmf.runtime.emf.commands.core.command.CompositeTransactionalCommand;
+import org.eclipse.gmf.runtime.emf.type.core.commands.DestroyElementCommand;
+import org.eclipse.gmf.runtime.emf.type.core.requests.CreateRelationshipRequest;
+import org.eclipse.gmf.runtime.emf.type.core.requests.DestroyElementRequest;
+import org.eclipse.gmf.runtime.emf.type.core.requests.ReorientRelationshipRequest;
+import org.eclipse.gmf.runtime.notation.Edge;
+import org.eclipse.gmf.runtime.notation.View;
+
+import comrel.diagram.edit.commands.MultiSinglePortMappingCreateCommand;
+import comrel.diagram.edit.commands.MultiSinglePortMappingReorientCommand;
+import comrel.diagram.edit.commands.SinglePortMappingCreateCommand;
+import comrel.diagram.edit.commands.SinglePortMappingReorientCommand;
+import comrel.diagram.edit.parts.MultiSinglePortMappingEditPart;
+import comrel.diagram.edit.parts.SinglePortMappingEditPart;
+import comrel.diagram.part.ComrelVisualIDRegistry;
+import comrel.diagram.providers.ComrelElementTypes;
+
+/**
+ * @generated
+ */
+public class SingleInputPort8ItemSemanticEditPolicy extends
+ ComrelBaseItemSemanticEditPolicy {
+
+ /**
+ * @generated
+ */
+ public SingleInputPort8ItemSemanticEditPolicy() {
+ super(ComrelElementTypes.SingleInputPort_3031);
+ }
+
+ /**
+ * @generated
+ */
+ protected Command getDestroyElementCommand(DestroyElementRequest req) {
+ View view = (View) getHost().getModel();
+ CompositeTransactionalCommand cmd = new CompositeTransactionalCommand(
+ getEditingDomain(), null);
+ cmd.setTransactionNestingEnabled(false);
+ for (Iterator<?> it = view.getTargetEdges().iterator(); it.hasNext();) {
+ Edge incomingLink = (Edge) it.next();
+ if (ComrelVisualIDRegistry.getVisualID(incomingLink) == SinglePortMappingEditPart.VISUAL_ID) {
+ DestroyElementRequest r = new DestroyElementRequest(
+ incomingLink.getElement(), false);
+ cmd.add(new DestroyElementCommand(r));
+ cmd.add(new DeleteCommand(getEditingDomain(), incomingLink));
+ continue;
+ }
+ if (ComrelVisualIDRegistry.getVisualID(incomingLink) == MultiSinglePortMappingEditPart.VISUAL_ID) {
+ DestroyElementRequest r = new DestroyElementRequest(
+ incomingLink.getElement(), false);
+ cmd.add(new DestroyElementCommand(r));
+ cmd.add(new DeleteCommand(getEditingDomain(), incomingLink));
+ continue;
+ }
+ }
+ for (Iterator<?> it = view.getSourceEdges().iterator(); it.hasNext();) {
+ Edge outgoingLink = (Edge) it.next();
+ if (ComrelVisualIDRegistry.getVisualID(outgoingLink) == SinglePortMappingEditPart.VISUAL_ID) {
+ DestroyElementRequest r = new DestroyElementRequest(
+ outgoingLink.getElement(), false);
+ cmd.add(new DestroyElementCommand(r));
+ cmd.add(new DeleteCommand(getEditingDomain(), outgoingLink));
+ continue;
+ }
+ }
+ EAnnotation annotation = view.getEAnnotation("Shortcut"); //$NON-NLS-1$
+ if (annotation == null) {
+ // there are indirectly referenced children, need extra commands: false
+ addDestroyShortcutsCommand(cmd, view);
+ // delete host element
+ cmd.add(new DestroyElementCommand(req));
+ } else {
+ cmd.add(new DeleteCommand(getEditingDomain(), view));
+ }
+ return getGEFWrapper(cmd.reduce());
+ }
+
+ /**
+ * @generated
+ */
+ protected Command getCreateRelationshipCommand(CreateRelationshipRequest req) {
+ Command command = req.getTarget() == null ? getStartCreateRelationshipCommand(req)
+ : getCompleteCreateRelationshipCommand(req);
+ return command != null ? command : super
+ .getCreateRelationshipCommand(req);
+ }
+
+ /**
+ * @generated
+ */
+ protected Command getStartCreateRelationshipCommand(
+ CreateRelationshipRequest req) {
+ if (ComrelElementTypes.SinglePortMapping_4001 == req.getElementType()) {
+ return getGEFWrapper(new SinglePortMappingCreateCommand(req,
+ req.getSource(), req.getTarget()));
+ }
+ if (ComrelElementTypes.MultiSinglePortMapping_4003 == req
+ .getElementType()) {
+ return null;
+ }
+ return null;
+ }
+
+ /**
+ * @generated
+ */
+ protected Command getCompleteCreateRelationshipCommand(
+ CreateRelationshipRequest req) {
+ if (ComrelElementTypes.SinglePortMapping_4001 == req.getElementType()) {
+ return getGEFWrapper(new SinglePortMappingCreateCommand(req,
+ req.getSource(), req.getTarget()));
+ }
+ if (ComrelElementTypes.MultiSinglePortMapping_4003 == req
+ .getElementType()) {
+ return getGEFWrapper(new MultiSinglePortMappingCreateCommand(req,
+ req.getSource(), req.getTarget()));
+ }
+ return null;
+ }
+
+ /**
+ * Returns command to reorient EClass based link. New link target or source
+ * should be the domain model element associated with this node.
+ *
+ * @generated
+ */
+ protected Command getReorientRelationshipCommand(
+ ReorientRelationshipRequest req) {
+ switch (getVisualID(req)) {
+ case SinglePortMappingEditPart.VISUAL_ID:
+ return getGEFWrapper(new SinglePortMappingReorientCommand(req));
+ case MultiSinglePortMappingEditPart.VISUAL_ID:
+ return getGEFWrapper(new MultiSinglePortMappingReorientCommand(req));
+ }
+ return super.getReorientRelationshipCommand(req);
+ }
+
+}
diff --git a/org.eclipse.emf.refactor.comrel.diagram/src/comrel/diagram/edit/policies/SingleInputPort9ItemSemanticEditPolicy.java b/org.eclipse.emf.refactor.comrel.diagram/src/comrel/diagram/edit/policies/SingleInputPort9ItemSemanticEditPolicy.java
new file mode 100644
index 0000000..f506bfc
--- /dev/null
+++ b/org.eclipse.emf.refactor.comrel.diagram/src/comrel/diagram/edit/policies/SingleInputPort9ItemSemanticEditPolicy.java
@@ -0,0 +1,148 @@
+/*
+ *
+ */
+package comrel.diagram.edit.policies;
+
+import java.util.Iterator;
+
+import org.eclipse.emf.ecore.EAnnotation;
+import org.eclipse.gef.commands.Command;
+import org.eclipse.gmf.runtime.diagram.core.commands.DeleteCommand;
+import org.eclipse.gmf.runtime.emf.commands.core.command.CompositeTransactionalCommand;
+import org.eclipse.gmf.runtime.emf.type.core.commands.DestroyElementCommand;
+import org.eclipse.gmf.runtime.emf.type.core.requests.CreateRelationshipRequest;
+import org.eclipse.gmf.runtime.emf.type.core.requests.DestroyElementRequest;
+import org.eclipse.gmf.runtime.emf.type.core.requests.ReorientRelationshipRequest;
+import org.eclipse.gmf.runtime.notation.Edge;
+import org.eclipse.gmf.runtime.notation.View;
+
+import comrel.diagram.edit.commands.MultiSinglePortMappingCreateCommand;
+import comrel.diagram.edit.commands.MultiSinglePortMappingReorientCommand;
+import comrel.diagram.edit.commands.SinglePortMappingCreateCommand;
+import comrel.diagram.edit.commands.SinglePortMappingReorientCommand;
+import comrel.diagram.edit.parts.MultiSinglePortMappingEditPart;
+import comrel.diagram.edit.parts.SinglePortMappingEditPart;
+import comrel.diagram.part.ComrelVisualIDRegistry;
+import comrel.diagram.providers.ComrelElementTypes;
+
+/**
+ * @generated
+ */
+public class SingleInputPort9ItemSemanticEditPolicy extends
+ ComrelBaseItemSemanticEditPolicy {
+
+ /**
+ * @generated
+ */
+ public SingleInputPort9ItemSemanticEditPolicy() {
+ super(ComrelElementTypes.SingleInputPort_3035);
+ }
+
+ /**
+ * @generated
+ */
+ protected Command getDestroyElementCommand(DestroyElementRequest req) {
+ View view = (View) getHost().getModel();
+ CompositeTransactionalCommand cmd = new CompositeTransactionalCommand(
+ getEditingDomain(), null);
+ cmd.setTransactionNestingEnabled(false);
+ for (Iterator<?> it = view.getTargetEdges().iterator(); it.hasNext();) {
+ Edge incomingLink = (Edge) it.next();
+ if (ComrelVisualIDRegistry.getVisualID(incomingLink) == SinglePortMappingEditPart.VISUAL_ID) {
+ DestroyElementRequest r = new DestroyElementRequest(
+ incomingLink.getElement(), false);
+ cmd.add(new DestroyElementCommand(r));
+ cmd.add(new DeleteCommand(getEditingDomain(), incomingLink));
+ continue;
+ }
+ if (ComrelVisualIDRegistry.getVisualID(incomingLink) == MultiSinglePortMappingEditPart.VISUAL_ID) {
+ DestroyElementRequest r = new DestroyElementRequest(
+ incomingLink.getElement(), false);
+ cmd.add(new DestroyElementCommand(r));
+ cmd.add(new DeleteCommand(getEditingDomain(), incomingLink));
+ continue;
+ }
+ }
+ for (Iterator<?> it = view.getSourceEdges().iterator(); it.hasNext();) {
+ Edge outgoingLink = (Edge) it.next();
+ if (ComrelVisualIDRegistry.getVisualID(outgoingLink) == SinglePortMappingEditPart.VISUAL_ID) {
+ DestroyElementRequest r = new DestroyElementRequest(
+ outgoingLink.getElement(), false);
+ cmd.add(new DestroyElementCommand(r));
+ cmd.add(new DeleteCommand(getEditingDomain(), outgoingLink));
+ continue;
+ }
+ }
+ EAnnotation annotation = view.getEAnnotation("Shortcut"); //$NON-NLS-1$
+ if (annotation == null) {
+ // there are indirectly referenced children, need extra commands: false
+ addDestroyShortcutsCommand(cmd, view);
+ // delete host element
+ cmd.add(new DestroyElementCommand(req));
+ } else {
+ cmd.add(new DeleteCommand(getEditingDomain(), view));
+ }
+ return getGEFWrapper(cmd.reduce());
+ }
+
+ /**
+ * @generated
+ */
+ protected Command getCreateRelationshipCommand(CreateRelationshipRequest req) {
+ Command command = req.getTarget() == null ? getStartCreateRelationshipCommand(req)
+ : getCompleteCreateRelationshipCommand(req);
+ return command != null ? command : super
+ .getCreateRelationshipCommand(req);
+ }
+
+ /**
+ * @generated
+ */
+ protected Command getStartCreateRelationshipCommand(
+ CreateRelationshipRequest req) {
+ if (ComrelElementTypes.SinglePortMapping_4001 == req.getElementType()) {
+ return getGEFWrapper(new SinglePortMappingCreateCommand(req,
+ req.getSource(), req.getTarget()));
+ }
+ if (ComrelElementTypes.MultiSinglePortMapping_4003 == req
+ .getElementType()) {
+ return null;
+ }
+ return null;
+ }
+
+ /**
+ * @generated
+ */
+ protected Command getCompleteCreateRelationshipCommand(
+ CreateRelationshipRequest req) {
+ if (ComrelElementTypes.SinglePortMapping_4001 == req.getElementType()) {
+ return getGEFWrapper(new SinglePortMappingCreateCommand(req,
+ req.getSource(), req.getTarget()));
+ }
+ if (ComrelElementTypes.MultiSinglePortMapping_4003 == req
+ .getElementType()) {
+ return getGEFWrapper(new MultiSinglePortMappingCreateCommand(req,
+ req.getSource(), req.getTarget()));
+ }
+ return null;
+ }
+
+ /**
+ * Returns command to reorient EClass based link. New link target or source
+ * should be the domain model element associated with this node.
+ *
+ * @generated
+ */
+ protected Command getReorientRelationshipCommand(
+ ReorientRelationshipRequest req) {
+ switch (getVisualID(req)) {
+ case SinglePortMappingEditPart.VISUAL_ID:
+ return getGEFWrapper(new SinglePortMappingReorientCommand(req));
+ case MultiSinglePortMappingEditPart.VISUAL_ID:
+ return getGEFWrapper(new MultiSinglePortMappingReorientCommand(req));
+ }
+ return super.getReorientRelationshipCommand(req);
+ }
+
+}
diff --git a/org.eclipse.emf.refactor.comrel.diagram/src/comrel/diagram/edit/policies/SingleInputPortItemSemanticEditPolicy.java b/org.eclipse.emf.refactor.comrel.diagram/src/comrel/diagram/edit/policies/SingleInputPortItemSemanticEditPolicy.java
new file mode 100644
index 0000000..d4a80c9
--- /dev/null
+++ b/org.eclipse.emf.refactor.comrel.diagram/src/comrel/diagram/edit/policies/SingleInputPortItemSemanticEditPolicy.java
@@ -0,0 +1,148 @@
+/*
+ *
+ */
+package comrel.diagram.edit.policies;
+
+import java.util.Iterator;
+
+import org.eclipse.emf.ecore.EAnnotation;
+import org.eclipse.gef.commands.Command;
+import org.eclipse.gmf.runtime.diagram.core.commands.DeleteCommand;
+import org.eclipse.gmf.runtime.emf.commands.core.command.CompositeTransactionalCommand;
+import org.eclipse.gmf.runtime.emf.type.core.commands.DestroyElementCommand;
+import org.eclipse.gmf.runtime.emf.type.core.requests.CreateRelationshipRequest;
+import org.eclipse.gmf.runtime.emf.type.core.requests.DestroyElementRequest;
+import org.eclipse.gmf.runtime.emf.type.core.requests.ReorientRelationshipRequest;
+import org.eclipse.gmf.runtime.notation.Edge;
+import org.eclipse.gmf.runtime.notation.View;
+
+import comrel.diagram.edit.commands.MultiSinglePortMappingCreateCommand;
+import comrel.diagram.edit.commands.MultiSinglePortMappingReorientCommand;
+import comrel.diagram.edit.commands.SinglePortMappingCreateCommand;
+import comrel.diagram.edit.commands.SinglePortMappingReorientCommand;
+import comrel.diagram.edit.parts.MultiSinglePortMappingEditPart;
+import comrel.diagram.edit.parts.SinglePortMappingEditPart;
+import comrel.diagram.part.ComrelVisualIDRegistry;
+import comrel.diagram.providers.ComrelElementTypes;
+
+/**
+ * @generated
+ */
+public class SingleInputPortItemSemanticEditPolicy extends
+ ComrelBaseItemSemanticEditPolicy {
+
+ /**
+ * @generated
+ */
+ public SingleInputPortItemSemanticEditPolicy() {
+ super(ComrelElementTypes.SingleInputPort_2001);
+ }
+
+ /**
+ * @generated
+ */
+ protected Command getDestroyElementCommand(DestroyElementRequest req) {
+ View view = (View) getHost().getModel();
+ CompositeTransactionalCommand cmd = new CompositeTransactionalCommand(
+ getEditingDomain(), null);
+ cmd.setTransactionNestingEnabled(false);
+ for (Iterator<?> it = view.getTargetEdges().iterator(); it.hasNext();) {
+ Edge incomingLink = (Edge) it.next();
+ if (ComrelVisualIDRegistry.getVisualID(incomingLink) == SinglePortMappingEditPart.VISUAL_ID) {
+ DestroyElementRequest r = new DestroyElementRequest(
+ incomingLink.getElement(), false);
+ cmd.add(new DestroyElementCommand(r));
+ cmd.add(new DeleteCommand(getEditingDomain(), incomingLink));
+ continue;
+ }
+ if (ComrelVisualIDRegistry.getVisualID(incomingLink) == MultiSinglePortMappingEditPart.VISUAL_ID) {
+ DestroyElementRequest r = new DestroyElementRequest(
+ incomingLink.getElement(), false);
+ cmd.add(new DestroyElementCommand(r));
+ cmd.add(new DeleteCommand(getEditingDomain(), incomingLink));
+ continue;
+ }
+ }
+ for (Iterator<?> it = view.getSourceEdges().iterator(); it.hasNext();) {
+ Edge outgoingLink = (Edge) it.next();
+ if (ComrelVisualIDRegistry.getVisualID(outgoingLink) == SinglePortMappingEditPart.VISUAL_ID) {
+ DestroyElementRequest r = new DestroyElementRequest(
+ outgoingLink.getElement(), false);
+ cmd.add(new DestroyElementCommand(r));
+ cmd.add(new DeleteCommand(getEditingDomain(), outgoingLink));
+ continue;
+ }
+ }
+ EAnnotation annotation = view.getEAnnotation("Shortcut"); //$NON-NLS-1$
+ if (annotation == null) {
+ // there are indirectly referenced children, need extra commands: false
+ addDestroyShortcutsCommand(cmd, view);
+ // delete host element
+ cmd.add(new DestroyElementCommand(req));
+ } else {
+ cmd.add(new DeleteCommand(getEditingDomain(), view));
+ }
+ return getGEFWrapper(cmd.reduce());
+ }
+
+ /**
+ * @generated
+ */
+ protected Command getCreateRelationshipCommand(CreateRelationshipRequest req) {
+ Command command = req.getTarget() == null ? getStartCreateRelationshipCommand(req)
+ : getCompleteCreateRelationshipCommand(req);
+ return command != null ? command : super
+ .getCreateRelationshipCommand(req);
+ }
+
+ /**
+ * @generated
+ */
+ protected Command getStartCreateRelationshipCommand(
+ CreateRelationshipRequest req) {
+ if (ComrelElementTypes.SinglePortMapping_4001 == req.getElementType()) {
+ return getGEFWrapper(new SinglePortMappingCreateCommand(req,
+ req.getSource(), req.getTarget()));
+ }
+ if (ComrelElementTypes.MultiSinglePortMapping_4003 == req
+ .getElementType()) {
+ return null;
+ }
+ return null;
+ }
+
+ /**
+ * @generated
+ */
+ protected Command getCompleteCreateRelationshipCommand(
+ CreateRelationshipRequest req) {
+ if (ComrelElementTypes.SinglePortMapping_4001 == req.getElementType()) {
+ return getGEFWrapper(new SinglePortMappingCreateCommand(req,
+ req.getSource(), req.getTarget()));
+ }
+ if (ComrelElementTypes.MultiSinglePortMapping_4003 == req
+ .getElementType()) {
+ return getGEFWrapper(new MultiSinglePortMappingCreateCommand(req,
+ req.getSource(), req.getTarget()));
+ }
+ return null;
+ }
+
+ /**
+ * Returns command to reorient EClass based link. New link target or source
+ * should be the domain model element associated with this node.
+ *
+ * @generated
+ */
+ protected Command getReorientRelationshipCommand(
+ ReorientRelationshipRequest req) {
+ switch (getVisualID(req)) {
+ case SinglePortMappingEditPart.VISUAL_ID:
+ return getGEFWrapper(new SinglePortMappingReorientCommand(req));
+ case MultiSinglePortMappingEditPart.VISUAL_ID:
+ return getGEFWrapper(new MultiSinglePortMappingReorientCommand(req));
+ }
+ return super.getReorientRelationshipCommand(req);
+ }
+
+}
diff --git a/org.eclipse.emf.refactor.comrel.diagram/src/comrel/diagram/edit/policies/SingleOutputPort2ItemSemanticEditPolicy.java b/org.eclipse.emf.refactor.comrel.diagram/src/comrel/diagram/edit/policies/SingleOutputPort2ItemSemanticEditPolicy.java
new file mode 100644
index 0000000..bd72892
--- /dev/null
+++ b/org.eclipse.emf.refactor.comrel.diagram/src/comrel/diagram/edit/policies/SingleOutputPort2ItemSemanticEditPolicy.java
@@ -0,0 +1,116 @@
+/*
+ *
+ */
+package comrel.diagram.edit.policies;
+
+import java.util.Iterator;
+
+import org.eclipse.emf.ecore.EAnnotation;
+import org.eclipse.gef.commands.Command;
+import org.eclipse.gmf.runtime.diagram.core.commands.DeleteCommand;
+import org.eclipse.gmf.runtime.emf.commands.core.command.CompositeTransactionalCommand;
+import org.eclipse.gmf.runtime.emf.type.core.commands.DestroyElementCommand;
+import org.eclipse.gmf.runtime.emf.type.core.requests.CreateRelationshipRequest;
+import org.eclipse.gmf.runtime.emf.type.core.requests.DestroyElementRequest;
+import org.eclipse.gmf.runtime.emf.type.core.requests.ReorientRelationshipRequest;
+import org.eclipse.gmf.runtime.notation.Edge;
+import org.eclipse.gmf.runtime.notation.View;
+
+import comrel.diagram.edit.commands.SinglePortMappingCreateCommand;
+import comrel.diagram.edit.commands.SinglePortMappingReorientCommand;
+import comrel.diagram.edit.parts.SinglePortMappingEditPart;
+import comrel.diagram.part.ComrelVisualIDRegistry;
+import comrel.diagram.providers.ComrelElementTypes;
+
+/**
+ * @generated
+ */
+public class SingleOutputPort2ItemSemanticEditPolicy extends
+ ComrelBaseItemSemanticEditPolicy {
+
+ /**
+ * @generated
+ */
+ public SingleOutputPort2ItemSemanticEditPolicy() {
+ super(ComrelElementTypes.SingleOutputPort_3018);
+ }
+
+ /**
+ * @generated
+ */
+ protected Command getDestroyElementCommand(DestroyElementRequest req) {
+ View view = (View) getHost().getModel();
+ CompositeTransactionalCommand cmd = new CompositeTransactionalCommand(
+ getEditingDomain(), null);
+ cmd.setTransactionNestingEnabled(false);
+ for (Iterator<?> it = view.getSourceEdges().iterator(); it.hasNext();) {
+ Edge outgoingLink = (Edge) it.next();
+ if (ComrelVisualIDRegistry.getVisualID(outgoingLink) == SinglePortMappingEditPart.VISUAL_ID) {
+ DestroyElementRequest r = new DestroyElementRequest(
+ outgoingLink.getElement(), false);
+ cmd.add(new DestroyElementCommand(r));
+ cmd.add(new DeleteCommand(getEditingDomain(), outgoingLink));
+ continue;
+ }
+ }
+ EAnnotation annotation = view.getEAnnotation("Shortcut"); //$NON-NLS-1$
+ if (annotation == null) {
+ // there are indirectly referenced children, need extra commands: false
+ addDestroyShortcutsCommand(cmd, view);
+ // delete host element
+ cmd.add(new DestroyElementCommand(req));
+ } else {
+ cmd.add(new DeleteCommand(getEditingDomain(), view));
+ }
+ return getGEFWrapper(cmd.reduce());
+ }
+
+ /**
+ * @generated
+ */
+ protected Command getCreateRelationshipCommand(CreateRelationshipRequest req) {
+ Command command = req.getTarget() == null ? getStartCreateRelationshipCommand(req)
+ : getCompleteCreateRelationshipCommand(req);
+ return command != null ? command : super
+ .getCreateRelationshipCommand(req);
+ }
+
+ /**
+ * @generated
+ */
+ protected Command getStartCreateRelationshipCommand(
+ CreateRelationshipRequest req) {
+ if (ComrelElementTypes.SinglePortMapping_4001 == req.getElementType()) {
+ return getGEFWrapper(new SinglePortMappingCreateCommand(req,
+ req.getSource(), req.getTarget()));
+ }
+ return null;
+ }
+
+ /**
+ * @generated
+ */
+ protected Command getCompleteCreateRelationshipCommand(
+ CreateRelationshipRequest req) {
+ if (ComrelElementTypes.SinglePortMapping_4001 == req.getElementType()) {
+ return null;
+ }
+ return null;
+ }
+
+ /**
+ * Returns command to reorient EClass based link. New link target or source
+ * should be the domain model element associated with this node.
+ *
+ * @generated
+ */
+ protected Command getReorientRelationshipCommand(
+ ReorientRelationshipRequest req) {
+ switch (getVisualID(req)) {
+ case SinglePortMappingEditPart.VISUAL_ID:
+ return getGEFWrapper(new SinglePortMappingReorientCommand(req));
+ }
+ return super.getReorientRelationshipCommand(req);
+ }
+
+}
diff --git a/org.eclipse.emf.refactor.comrel.diagram/src/comrel/diagram/edit/policies/SingleOutputPortItemSemanticEditPolicy.java b/org.eclipse.emf.refactor.comrel.diagram/src/comrel/diagram/edit/policies/SingleOutputPortItemSemanticEditPolicy.java
new file mode 100644
index 0000000..c068238
--- /dev/null
+++ b/org.eclipse.emf.refactor.comrel.diagram/src/comrel/diagram/edit/policies/SingleOutputPortItemSemanticEditPolicy.java
@@ -0,0 +1,116 @@
+/*
+ *
+ */
+package comrel.diagram.edit.policies;
+
+import java.util.Iterator;
+
+import org.eclipse.emf.ecore.EAnnotation;
+import org.eclipse.gef.commands.Command;
+import org.eclipse.gmf.runtime.diagram.core.commands.DeleteCommand;
+import org.eclipse.gmf.runtime.emf.commands.core.command.CompositeTransactionalCommand;
+import org.eclipse.gmf.runtime.emf.type.core.commands.DestroyElementCommand;
+import org.eclipse.gmf.runtime.emf.type.core.requests.CreateRelationshipRequest;
+import org.eclipse.gmf.runtime.emf.type.core.requests.DestroyElementRequest;
+import org.eclipse.gmf.runtime.emf.type.core.requests.ReorientRelationshipRequest;
+import org.eclipse.gmf.runtime.notation.Edge;
+import org.eclipse.gmf.runtime.notation.View;
+
+import comrel.diagram.edit.commands.SinglePortMappingCreateCommand;
+import comrel.diagram.edit.commands.SinglePortMappingReorientCommand;
+import comrel.diagram.edit.parts.SinglePortMappingEditPart;
+import comrel.diagram.part.ComrelVisualIDRegistry;
+import comrel.diagram.providers.ComrelElementTypes;
+
+/**
+ * @generated
+ */
+public class SingleOutputPortItemSemanticEditPolicy extends
+ ComrelBaseItemSemanticEditPolicy {
+
+ /**
+ * @generated
+ */
+ public SingleOutputPortItemSemanticEditPolicy() {
+ super(ComrelElementTypes.SingleOutputPort_3011);
+ }
+
+ /**
+ * @generated
+ */
+ protected Command getDestroyElementCommand(DestroyElementRequest req) {
+ View view = (View) getHost().getModel();
+ CompositeTransactionalCommand cmd = new CompositeTransactionalCommand(
+ getEditingDomain(), null);
+ cmd.setTransactionNestingEnabled(false);
+ for (Iterator<?> it = view.getSourceEdges().iterator(); it.hasNext();) {
+ Edge outgoingLink = (Edge) it.next();
+ if (ComrelVisualIDRegistry.getVisualID(outgoingLink) == SinglePortMappingEditPart.VISUAL_ID) {
+ DestroyElementRequest r = new DestroyElementRequest(
+ outgoingLink.getElement(), false);
+ cmd.add(new DestroyElementCommand(r));
+ cmd.add(new DeleteCommand(getEditingDomain(), outgoingLink));
+ continue;
+ }
+ }
+ EAnnotation annotation = view.getEAnnotation("Shortcut"); //$NON-NLS-1$
+ if (annotation == null) {
+ // there are indirectly referenced children, need extra commands: false
+ addDestroyShortcutsCommand(cmd, view);
+ // delete host element
+ cmd.add(new DestroyElementCommand(req));
+ } else {
+ cmd.add(new DeleteCommand(getEditingDomain(), view));
+ }
+ return getGEFWrapper(cmd.reduce());
+ }
+
+ /**
+ * @generated
+ */
+ protected Command getCreateRelationshipCommand(CreateRelationshipRequest req) {
+ Command command = req.getTarget() == null ? getStartCreateRelationshipCommand(req)
+ : getCompleteCreateRelationshipCommand(req);
+ return command != null ? command : super
+ .getCreateRelationshipCommand(req);
+ }
+
+ /**
+ * @generated
+ */
+ protected Command getStartCreateRelationshipCommand(
+ CreateRelationshipRequest req) {
+ if (ComrelElementTypes.SinglePortMapping_4001 == req.getElementType()) {
+ return getGEFWrapper(new SinglePortMappingCreateCommand(req,
+ req.getSource(), req.getTarget()));
+ }
+ return null;
+ }
+
+ /**
+ * @generated
+ */
+ protected Command getCompleteCreateRelationshipCommand(
+ CreateRelationshipRequest req) {
+ if (ComrelElementTypes.SinglePortMapping_4001 == req.getElementType()) {
+ return null;
+ }
+ return null;
+ }
+
+ /**
+ * Returns command to reorient EClass based link. New link target or source
+ * should be the domain model element associated with this node.
+ *
+ * @generated
+ */
+ protected Command getReorientRelationshipCommand(
+ ReorientRelationshipRequest req) {
+ switch (getVisualID(req)) {
+ case SinglePortMappingEditPart.VISUAL_ID:
+ return getGEFWrapper(new SinglePortMappingReorientCommand(req));
+ }
+ return super.getReorientRelationshipCommand(req);
+ }
+
+}
diff --git a/org.eclipse.emf.refactor.comrel.diagram/src/comrel/diagram/edit/policies/SinglePortMappingItemSemanticEditPolicy.java b/org.eclipse.emf.refactor.comrel.diagram/src/comrel/diagram/edit/policies/SinglePortMappingItemSemanticEditPolicy.java
new file mode 100644
index 0000000..8f11ed0
--- /dev/null
+++ b/org.eclipse.emf.refactor.comrel.diagram/src/comrel/diagram/edit/policies/SinglePortMappingItemSemanticEditPolicy.java
@@ -0,0 +1,32 @@
+/*
+ *
+ */
+package comrel.diagram.edit.policies;
+
+import org.eclipse.gef.commands.Command;
+import org.eclipse.gmf.runtime.emf.type.core.commands.DestroyElementCommand;
+import org.eclipse.gmf.runtime.emf.type.core.requests.DestroyElementRequest;
+
+import comrel.diagram.providers.ComrelElementTypes;
+
+/**
+ * @generated
+ */
+public class SinglePortMappingItemSemanticEditPolicy extends
+ ComrelBaseItemSemanticEditPolicy {
+
+ /**
+ * @generated
+ */
+ public SinglePortMappingItemSemanticEditPolicy() {
+ super(ComrelElementTypes.SinglePortMapping_4001);
+ }
+
+ /**
+ * @generated
+ */
+ protected Command getDestroyElementCommand(DestroyElementRequest req) {
+ return getGEFWrapper(new DestroyElementCommand(req));
+ }
+
+}
diff --git a/org.eclipse.emf.refactor.comrel.diagram/src/comrel/diagram/edit/policies/SingleQueuedUnit2CanonicalEditPolicy.java b/org.eclipse.emf.refactor.comrel.diagram/src/comrel/diagram/edit/policies/SingleQueuedUnit2CanonicalEditPolicy.java
new file mode 100644
index 0000000..57ddb6b
--- /dev/null
+++ b/org.eclipse.emf.refactor.comrel.diagram/src/comrel/diagram/edit/policies/SingleQueuedUnit2CanonicalEditPolicy.java
@@ -0,0 +1,178 @@
+/*
+ *
+ */
+package comrel.diagram.edit.policies;
+
+import java.util.ArrayList;
+import java.util.Collection;
+import java.util.HashSet;
+import java.util.Iterator;
+import java.util.LinkedList;
+import java.util.List;
+import java.util.Set;
+
+import org.eclipse.core.runtime.IAdaptable;
+import org.eclipse.emf.ecore.EObject;
+import org.eclipse.emf.ecore.EStructuralFeature;
+import org.eclipse.gef.commands.Command;
+import org.eclipse.gmf.runtime.diagram.core.util.ViewUtil;
+import org.eclipse.gmf.runtime.diagram.ui.commands.DeferredLayoutCommand;
+import org.eclipse.gmf.runtime.diagram.ui.commands.ICommandProxy;
+import org.eclipse.gmf.runtime.diagram.ui.commands.SetViewMutabilityCommand;
+import org.eclipse.gmf.runtime.diagram.ui.editpolicies.CanonicalEditPolicy;
+import org.eclipse.gmf.runtime.diagram.ui.requests.CreateViewRequest;
+import org.eclipse.gmf.runtime.emf.core.util.EObjectAdapter;
+import org.eclipse.gmf.runtime.notation.Node;
+import org.eclipse.gmf.runtime.notation.View;
+
+import comrel.ComrelPackage;
+import comrel.diagram.edit.parts.MultiInputPort7EditPart;
+import comrel.diagram.edit.parts.SingleInputPort6EditPart;
+import comrel.diagram.part.ComrelDiagramUpdater;
+import comrel.diagram.part.ComrelNodeDescriptor;
+import comrel.diagram.part.ComrelVisualIDRegistry;
+
+/**
+ * @generated
+ */
+public class SingleQueuedUnit2CanonicalEditPolicy extends CanonicalEditPolicy {
+
+ /**
+ * @generated
+ */
+ private Set<EStructuralFeature> myFeaturesToSynchronize;
+
+ /**
+ * @generated
+ */
+ protected Set getFeaturesToSynchronize() {
+ if (myFeaturesToSynchronize == null) {
+ myFeaturesToSynchronize = new HashSet<EStructuralFeature>();
+ myFeaturesToSynchronize.add(ComrelPackage.eINSTANCE
+ .getSingleQueuedUnit_SingleInputPorts());
+ myFeaturesToSynchronize.add(ComrelPackage.eINSTANCE
+ .getSingleQueuedUnit_MultiInputPort());
+ }
+ return myFeaturesToSynchronize;
+ }
+
+ /**
+ * @generated
+ */
+ @SuppressWarnings("rawtypes")
+ protected List getSemanticChildrenList() {
+ View viewObject = (View) getHost().getModel();
+ LinkedList<EObject> result = new LinkedList<EObject>();
+ List<ComrelNodeDescriptor> childDescriptors = ComrelDiagramUpdater
+ .getSingleQueuedUnit_3022SemanticChildren(viewObject);
+ for (ComrelNodeDescriptor d : childDescriptors) {
+ result.add(d.getModelElement());
+ }
+ return result;
+ }
+
+ /**
+ * @generated
+ */
+ protected boolean isOrphaned(Collection<EObject> semanticChildren,
+ final View view) {
+ return isMyDiagramElement(view)
+ && !semanticChildren.contains(view.getElement());
+ }
+
+ /**
+ * @generated
+ */
+ private boolean isMyDiagramElement(View view) {
+ int visualID = ComrelVisualIDRegistry.getVisualID(view);
+ return visualID == SingleInputPort6EditPart.VISUAL_ID
+ || visualID == MultiInputPort7EditPart.VISUAL_ID;
+ }
+
+ /**
+ * @generated
+ */
+ protected void refreshSemantic() {
+ if (resolveSemanticElement() == null) {
+ return;
+ }
+ LinkedList<IAdaptable> createdViews = new LinkedList<IAdaptable>();
+ List<ComrelNodeDescriptor> childDescriptors = ComrelDiagramUpdater
+ .getSingleQueuedUnit_3022SemanticChildren((View) getHost()
+ .getModel());
+ LinkedList<View> orphaned = new LinkedList<View>();
+ // we care to check only views we recognize as ours
+ LinkedList<View> knownViewChildren = new LinkedList<View>();
+ for (View v : getViewChildren()) {
+ if (isMyDiagramElement(v)) {
+ knownViewChildren.add(v);
+ }
+ }
+ // alternative to #cleanCanonicalSemanticChildren(getViewChildren(), semanticChildren)
+ //
+ // iteration happens over list of desired semantic elements, trying to find best matching View, while original CEP
+ // iterates views, potentially losing view (size/bounds) information - i.e. if there are few views to reference same EObject, only last one
+ // to answer isOrphaned == true will be used for the domain element representation, see #cleanCanonicalSemanticChildren()
+ for (Iterator<ComrelNodeDescriptor> descriptorsIterator = childDescriptors
+ .iterator(); descriptorsIterator.hasNext();) {
+ ComrelNodeDescriptor next = descriptorsIterator.next();
+ String hint = ComrelVisualIDRegistry.getType(next.getVisualID());
+ LinkedList<View> perfectMatch = new LinkedList<View>(); // both semanticElement and hint match that of NodeDescriptor
+ for (View childView : getViewChildren()) {
+ EObject semanticElement = childView.getElement();
+ if (next.getModelElement().equals(semanticElement)) {
+ if (hint.equals(childView.getType())) {
+ perfectMatch.add(childView);
+ // actually, can stop iteration over view children here, but
+ // may want to use not the first view but last one as a 'real' match (the way original CEP does
+ // with its trick with viewToSemanticMap inside #cleanCanonicalSemanticChildren
+ }
+ }
+ }
+ if (perfectMatch.size() > 0) {
+ descriptorsIterator.remove(); // precise match found no need to create anything for the NodeDescriptor
+ // use only one view (first or last?), keep rest as orphaned for further consideration
+ knownViewChildren.remove(perfectMatch.getFirst());
+ }
+ }
+ // those left in knownViewChildren are subject to removal - they are our diagram elements we didn't find match to,
+ // or those we have potential matches to, and thus need to be recreated, preserving size/location information.
+ orphaned.addAll(knownViewChildren);
+ //
+ ArrayList<CreateViewRequest.ViewDescriptor> viewDescriptors = new ArrayList<CreateViewRequest.ViewDescriptor>(
+ childDescriptors.size());
+ for (ComrelNodeDescriptor next : childDescriptors) {
+ String hint = ComrelVisualIDRegistry.getType(next.getVisualID());
+ IAdaptable elementAdapter = new CanonicalElementAdapter(
+ next.getModelElement(), hint);
+ CreateViewRequest.ViewDescriptor descriptor = new CreateViewRequest.ViewDescriptor(
+ elementAdapter, Node.class, hint, ViewUtil.APPEND, false,
+ host().getDiagramPreferencesHint());
+ viewDescriptors.add(descriptor);
+ }
+
+ boolean changed = deleteViews(orphaned.iterator());
+ //
+ CreateViewRequest request = getCreateViewRequest(viewDescriptors);
+ Command cmd = getCreateViewCommand(request);
+ if (cmd != null && cmd.canExecute()) {
+ SetViewMutabilityCommand.makeMutable(
+ new EObjectAdapter(host().getNotationView())).execute();
+ executeCommand(cmd);
+ @SuppressWarnings("unchecked")
+ List<IAdaptable> nl = (List<IAdaptable>) request.getNewObject();
+ createdViews.addAll(nl);
+ }
+ if (changed || createdViews.size() > 0) {
+ postProcessRefreshSemantic(createdViews);
+ }
+ if (createdViews.size() > 1) {
+ // perform a layout of the container
+ DeferredLayoutCommand layoutCmd = new DeferredLayoutCommand(host()
+ .getEditingDomain(), createdViews, host());
+ executeCommand(new ICommandProxy(layoutCmd));
+ }
+
+ makeViewsImmutable(createdViews);
+ }
+}
diff --git a/org.eclipse.emf.refactor.comrel.diagram/src/comrel/diagram/edit/policies/SingleQueuedUnit2ItemSemanticEditPolicy.java b/org.eclipse.emf.refactor.comrel.diagram/src/comrel/diagram/edit/policies/SingleQueuedUnit2ItemSemanticEditPolicy.java
new file mode 100644
index 0000000..d2726f7
--- /dev/null
+++ b/org.eclipse.emf.refactor.comrel.diagram/src/comrel/diagram/edit/policies/SingleQueuedUnit2ItemSemanticEditPolicy.java
@@ -0,0 +1,263 @@
+/*
+ *
+ */
+package comrel.diagram.edit.policies;
+
+import java.util.Iterator;
+
+import org.eclipse.emf.ecore.EAnnotation;
+import org.eclipse.gef.commands.Command;
+import org.eclipse.gmf.runtime.common.core.command.ICompositeCommand;
+import org.eclipse.gmf.runtime.diagram.core.commands.DeleteCommand;
+import org.eclipse.gmf.runtime.emf.commands.core.command.CompositeTransactionalCommand;
+import org.eclipse.gmf.runtime.emf.type.core.commands.DestroyElementCommand;
+import org.eclipse.gmf.runtime.emf.type.core.requests.CreateElementRequest;
+import org.eclipse.gmf.runtime.emf.type.core.requests.DestroyElementRequest;
+import org.eclipse.gmf.runtime.notation.Edge;
+import org.eclipse.gmf.runtime.notation.Node;
+import org.eclipse.gmf.runtime.notation.View;
+
+import comrel.diagram.edit.commands.MultiInputPort7CreateCommand;
+import comrel.diagram.edit.commands.SingleInputPort6CreateCommand;
+import comrel.diagram.edit.parts.AtomicUnit4EditPart;
+import comrel.diagram.edit.parts.CartesianQueuedUnit4EditPart;
+import comrel.diagram.edit.parts.ConditionalUnit4EditPart;
+import comrel.diagram.edit.parts.MultiFeatureUnit4EditPart;
+import comrel.diagram.edit.parts.MultiFilterUnit4EditPart;
+import comrel.diagram.edit.parts.MultiInputPort7EditPart;
+import comrel.diagram.edit.parts.MultiPortMappingEditPart;
+import comrel.diagram.edit.parts.MultiSinglePortMappingEditPart;
+import comrel.diagram.edit.parts.ParallelQueuedUnit5EditPart;
+import comrel.diagram.edit.parts.SequentialUnit4EditPart;
+import comrel.diagram.edit.parts.SingleFeatureUnit4EditPart;
+import comrel.diagram.edit.parts.SingleFilterUnit4EditPart;
+import comrel.diagram.edit.parts.SingleInputPort6EditPart;
+import comrel.diagram.edit.parts.SinglePortMappingEditPart;
+import comrel.diagram.edit.parts.SingleQueuedUnit5EditPart;
+import comrel.diagram.edit.parts.SingleQueuedUnitSingleQueuedUnitHelperUnitsCompartmentEditPart;
+import comrel.diagram.edit.parts.SingleQueuedUnitSingleQueuedUnitRefactoringUnitCompartmentEditPart;
+import comrel.diagram.part.ComrelVisualIDRegistry;
+import comrel.diagram.providers.ComrelElementTypes;
+
+/**
+ * @generated
+ */
+public class SingleQueuedUnit2ItemSemanticEditPolicy extends
+ ComrelBaseItemSemanticEditPolicy {
+
+ /**
+ * @generated
+ */
+ public SingleQueuedUnit2ItemSemanticEditPolicy() {
+ super(ComrelElementTypes.SingleQueuedUnit_3022);
+ }
+
+ /**
+ * @generated
+ */
+ protected Command getCreateCommand(CreateElementRequest req) {
+ if (ComrelElementTypes.SingleInputPort_3023 == req.getElementType()) {
+ return getGEFWrapper(new SingleInputPort6CreateCommand(req));
+ }
+ if (ComrelElementTypes.MultiInputPort_3024 == req.getElementType()) {
+ return getGEFWrapper(new MultiInputPort7CreateCommand(req));
+ }
+ return super.getCreateCommand(req);
+ }
+
+ /**
+ * @generated
+ */
+ protected Command getDestroyElementCommand(DestroyElementRequest req) {
+ View view = (View) getHost().getModel();
+ CompositeTransactionalCommand cmd = new CompositeTransactionalCommand(
+ getEditingDomain(), null);
+ cmd.setTransactionNestingEnabled(false);
+ EAnnotation annotation = view.getEAnnotation("Shortcut"); //$NON-NLS-1$
+ if (annotation == null) {
+ // there are indirectly referenced children, need extra commands: false
+ addDestroyChildNodesCommand(cmd);
+ addDestroyShortcutsCommand(cmd, view);
+ // delete host element
+ cmd.add(new DestroyElementCommand(req));
+ } else {
+ cmd.add(new DeleteCommand(getEditingDomain(), view));
+ }
+ return getGEFWrapper(cmd.reduce());
+ }
+
+ /**
+ * @generated
+ */
+ private void addDestroyChildNodesCommand(ICompositeCommand cmd) {
+ View view = (View) getHost().getModel();
+ for (Iterator<?> nit = view.getChildren().iterator(); nit.hasNext();) {
+ Node node = (Node) nit.next();
+ switch (ComrelVisualIDRegistry.getVisualID(node)) {
+ case SingleInputPort6EditPart.VISUAL_ID:
+ for (Iterator<?> it = node.getTargetEdges().iterator(); it
+ .hasNext();) {
+ Edge incomingLink = (Edge) it.next();
+ if (ComrelVisualIDRegistry.getVisualID(incomingLink) == SinglePortMappingEditPart.VISUAL_ID) {
+ DestroyElementRequest r = new DestroyElementRequest(
+ incomingLink.getElement(), false);
+ cmd.add(new DestroyElementCommand(r));
+ cmd.add(new DeleteCommand(getEditingDomain(),
+ incomingLink));
+ continue;
+ }
+ if (ComrelVisualIDRegistry.getVisualID(incomingLink) == MultiSinglePortMappingEditPart.VISUAL_ID) {
+ DestroyElementRequest r = new DestroyElementRequest(
+ incomingLink.getElement(), false);
+ cmd.add(new DestroyElementCommand(r));
+ cmd.add(new DeleteCommand(getEditingDomain(),
+ incomingLink));
+ continue;
+ }
+ }
+ for (Iterator<?> it = node.getSourceEdges().iterator(); it
+ .hasNext();) {
+ Edge outgoingLink = (Edge) it.next();
+ if (ComrelVisualIDRegistry.getVisualID(outgoingLink) == SinglePortMappingEditPart.VISUAL_ID) {
+ DestroyElementRequest r = new DestroyElementRequest(
+ outgoingLink.getElement(), false);
+ cmd.add(new DestroyElementCommand(r));
+ cmd.add(new DeleteCommand(getEditingDomain(),
+ outgoingLink));
+ continue;
+ }
+ }
+ cmd.add(new DestroyElementCommand(new DestroyElementRequest(
+ getEditingDomain(), node.getElement(), false))); // directlyOwned: true
+ // don't need explicit deletion of node as parent's view deletion would clean child views as well
+ // cmd.add(new org.eclipse.gmf.runtime.diagram.core.commands.DeleteCommand(getEditingDomain(), node));
+ break;
+ case MultiInputPort7EditPart.VISUAL_ID:
+ for (Iterator<?> it = node.getTargetEdges().iterator(); it
+ .hasNext();) {
+ Edge incomingLink = (Edge) it.next();
+ if (ComrelVisualIDRegistry.getVisualID(incomingLink) == MultiPortMappingEditPart.VISUAL_ID) {
+ DestroyElementRequest r = new DestroyElementRequest(
+ incomingLink.getElement(), false);
+ cmd.add(new DestroyElementCommand(r));
+ cmd.add(new DeleteCommand(getEditingDomain(),
+ incomingLink));
+ continue;
+ }
+ }
+ for (Iterator<?> it = node.getSourceEdges().iterator(); it
+ .hasNext();) {
+ Edge outgoingLink = (Edge) it.next();
+ if (ComrelVisualIDRegistry.getVisualID(outgoingLink) == MultiPortMappingEditPart.VISUAL_ID) {
+ DestroyElementRequest r = new DestroyElementRequest(
+ outgoingLink.getElement(), false);
+ cmd.add(new DestroyElementCommand(r));
+ cmd.add(new DeleteCommand(getEditingDomain(),
+ outgoingLink));
+ continue;
+ }
+ if (ComrelVisualIDRegistry.getVisualID(outgoingLink) == MultiSinglePortMappingEditPart.VISUAL_ID) {
+ DestroyElementRequest r = new DestroyElementRequest(
+ outgoingLink.getElement(), false);
+ cmd.add(new DestroyElementCommand(r));
+ cmd.add(new DeleteCommand(getEditingDomain(),
+ outgoingLink));
+ continue;
+ }
+ }
+ cmd.add(new DestroyElementCommand(new DestroyElementRequest(
+ getEditingDomain(), node.getElement(), false))); // directlyOwned: true
+ // don't need explicit deletion of node as parent's view deletion would clean child views as well
+ // cmd.add(new org.eclipse.gmf.runtime.diagram.core.commands.DeleteCommand(getEditingDomain(), node));
+ break;
+ case SingleQueuedUnitSingleQueuedUnitHelperUnitsCompartmentEditPart.VISUAL_ID:
+ for (Iterator<?> cit = node.getChildren().iterator(); cit
+ .hasNext();) {
+ Node cnode = (Node) cit.next();
+ switch (ComrelVisualIDRegistry.getVisualID(cnode)) {
+ case SingleFeatureUnit4EditPart.VISUAL_ID:
+ cmd.add(new DestroyElementCommand(
+ new DestroyElementRequest(getEditingDomain(),
+ cnode.getElement(), false))); // directlyOwned: true
+ // don't need explicit deletion of cnode as parent's view deletion would clean child views as well
+ // cmd.add(new org.eclipse.gmf.runtime.diagram.core.commands.DeleteCommand(getEditingDomain(), cnode));
+ break;
+ case MultiFeatureUnit4EditPart.VISUAL_ID:
+ cmd.add(new DestroyElementCommand(
+ new DestroyElementRequest(getEditingDomain(),
+ cnode.getElement(), false))); // directlyOwned: true
+ // don't need explicit deletion of cnode as parent's view deletion would clean child views as well
+ // cmd.add(new org.eclipse.gmf.runtime.diagram.core.commands.DeleteCommand(getEditingDomain(), cnode));
+ break;
+ case SingleFilterUnit4EditPart.VISUAL_ID:
+ cmd.add(new DestroyElementCommand(
+ new DestroyElementRequest(getEditingDomain(),
+ cnode.getElement(), false))); // directlyOwned: true
+ // don't need explicit deletion of cnode as parent's view deletion would clean child views as well
+ // cmd.add(new org.eclipse.gmf.runtime.diagram.core.commands.DeleteCommand(getEditingDomain(), cnode));
+ break;
+ case MultiFilterUnit4EditPart.VISUAL_ID:
+ cmd.add(new DestroyElementCommand(
+ new DestroyElementRequest(getEditingDomain(),
+ cnode.getElement(), false))); // directlyOwned: true
+ // don't need explicit deletion of cnode as parent's view deletion would clean child views as well
+ // cmd.add(new org.eclipse.gmf.runtime.diagram.core.commands.DeleteCommand(getEditingDomain(), cnode));
+ break;
+ }
+ }
+ break;
+ case SingleQueuedUnitSingleQueuedUnitRefactoringUnitCompartmentEditPart.VISUAL_ID:
+ for (Iterator<?> cit = node.getChildren().iterator(); cit
+ .hasNext();) {
+ Node cnode = (Node) cit.next();
+ switch (ComrelVisualIDRegistry.getVisualID(cnode)) {
+ case CartesianQueuedUnit4EditPart.VISUAL_ID:
+ cmd.add(new DestroyElementCommand(
+ new DestroyElementRequest(getEditingDomain(),
+ cnode.getElement(), false))); // directlyOwned: true
+ // don't need explicit deletion of cnode as parent's view deletion would clean child views as well
+ // cmd.add(new org.eclipse.gmf.runtime.diagram.core.commands.DeleteCommand(getEditingDomain(), cnode));
+ break;
+ case ParallelQueuedUnit5EditPart.VISUAL_ID:
+ cmd.add(new DestroyElementCommand(
+ new DestroyElementRequest(getEditingDomain(),
+ cnode.getElement(), false))); // directlyOwned: true
+ // don't need explicit deletion of cnode as parent's view deletion would clean child views as well
+ // cmd.add(new org.eclipse.gmf.runtime.diagram.core.commands.DeleteCommand(getEditingDomain(), cnode));
+ break;
+ case SingleQueuedUnit5EditPart.VISUAL_ID:
+ cmd.add(new DestroyElementCommand(
+ new DestroyElementRequest(getEditingDomain(),
+ cnode.getElement(), false))); // directlyOwned: true
+ // don't need explicit deletion of cnode as parent's view deletion would clean child views as well
+ // cmd.add(new org.eclipse.gmf.runtime.diagram.core.commands.DeleteCommand(getEditingDomain(), cnode));
+ break;
+ case SequentialUnit4EditPart.VISUAL_ID:
+ cmd.add(new DestroyElementCommand(
+ new DestroyElementRequest(getEditingDomain(),
+ cnode.getElement(), false))); // directlyOwned: true
+ // don't need explicit deletion of cnode as parent's view deletion would clean child views as well
+ // cmd.add(new org.eclipse.gmf.runtime.diagram.core.commands.DeleteCommand(getEditingDomain(), cnode));
+ break;
+ case ConditionalUnit4EditPart.VISUAL_ID:
+ cmd.add(new DestroyElementCommand(
+ new DestroyElementRequest(getEditingDomain(),
+ cnode.getElement(), false))); // directlyOwned: true
+ // don't need explicit deletion of cnode as parent's view deletion would clean child views as well
+ // cmd.add(new org.eclipse.gmf.runtime.diagram.core.commands.DeleteCommand(getEditingDomain(), cnode));
+ break;
+ case AtomicUnit4EditPart.VISUAL_ID:
+ cmd.add(new DestroyElementCommand(
+ new DestroyElementRequest(getEditingDomain(),
+ cnode.getElement(), false))); // directlyOwned: true
+ // don't need explicit deletion of cnode as parent's view deletion would clean child views as well
+ // cmd.add(new org.eclipse.gmf.runtime.diagram.core.commands.DeleteCommand(getEditingDomain(), cnode));
+ break;
+ }
+ }
+ break;
+ }
+ }
+ }
+
+}
diff --git a/org.eclipse.emf.refactor.comrel.diagram/src/comrel/diagram/edit/policies/SingleQueuedUnit3CanonicalEditPolicy.java b/org.eclipse.emf.refactor.comrel.diagram/src/comrel/diagram/edit/policies/SingleQueuedUnit3CanonicalEditPolicy.java
new file mode 100644
index 0000000..ae78231
--- /dev/null
+++ b/org.eclipse.emf.refactor.comrel.diagram/src/comrel/diagram/edit/policies/SingleQueuedUnit3CanonicalEditPolicy.java
@@ -0,0 +1,178 @@
+/*
+ *
+ */
+package comrel.diagram.edit.policies;
+
+import java.util.ArrayList;
+import java.util.Collection;
+import java.util.HashSet;
+import java.util.Iterator;
+import java.util.LinkedList;
+import java.util.List;
+import java.util.Set;
+
+import org.eclipse.core.runtime.IAdaptable;
+import org.eclipse.emf.ecore.EObject;
+import org.eclipse.emf.ecore.EStructuralFeature;
+import org.eclipse.gef.commands.Command;
+import org.eclipse.gmf.runtime.diagram.core.util.ViewUtil;
+import org.eclipse.gmf.runtime.diagram.ui.commands.DeferredLayoutCommand;
+import org.eclipse.gmf.runtime.diagram.ui.commands.ICommandProxy;
+import org.eclipse.gmf.runtime.diagram.ui.commands.SetViewMutabilityCommand;
+import org.eclipse.gmf.runtime.diagram.ui.editpolicies.CanonicalEditPolicy;
+import org.eclipse.gmf.runtime.diagram.ui.requests.CreateViewRequest;
+import org.eclipse.gmf.runtime.emf.core.util.EObjectAdapter;
+import org.eclipse.gmf.runtime.notation.Node;
+import org.eclipse.gmf.runtime.notation.View;
+
+import comrel.ComrelPackage;
+import comrel.diagram.edit.parts.MultiInputPort7EditPart;
+import comrel.diagram.edit.parts.SingleInputPort6EditPart;
+import comrel.diagram.part.ComrelDiagramUpdater;
+import comrel.diagram.part.ComrelNodeDescriptor;
+import comrel.diagram.part.ComrelVisualIDRegistry;
+
+/**
+ * @generated
+ */
+public class SingleQueuedUnit3CanonicalEditPolicy extends CanonicalEditPolicy {
+
+ /**
+ * @generated
+ */
+ private Set<EStructuralFeature> myFeaturesToSynchronize;
+
+ /**
+ * @generated
+ */
+ protected Set getFeaturesToSynchronize() {
+ if (myFeaturesToSynchronize == null) {
+ myFeaturesToSynchronize = new HashSet<EStructuralFeature>();
+ myFeaturesToSynchronize.add(ComrelPackage.eINSTANCE
+ .getSingleQueuedUnit_SingleInputPorts());
+ myFeaturesToSynchronize.add(ComrelPackage.eINSTANCE
+ .getSingleQueuedUnit_MultiInputPort());
+ }
+ return myFeaturesToSynchronize;
+ }
+
+ /**
+ * @generated
+ */
+ @SuppressWarnings("rawtypes")
+ protected List getSemanticChildrenList() {
+ View viewObject = (View) getHost().getModel();
+ LinkedList<EObject> result = new LinkedList<EObject>();
+ List<ComrelNodeDescriptor> childDescriptors = ComrelDiagramUpdater
+ .getSingleQueuedUnit_3042SemanticChildren(viewObject);
+ for (ComrelNodeDescriptor d : childDescriptors) {
+ result.add(d.getModelElement());
+ }
+ return result;
+ }
+
+ /**
+ * @generated
+ */
+ protected boolean isOrphaned(Collection<EObject> semanticChildren,
+ final View view) {
+ return isMyDiagramElement(view)
+ && !semanticChildren.contains(view.getElement());
+ }
+
+ /**
+ * @generated
+ */
+ private boolean isMyDiagramElement(View view) {
+ int visualID = ComrelVisualIDRegistry.getVisualID(view);
+ return visualID == SingleInputPort6EditPart.VISUAL_ID
+ || visualID == MultiInputPort7EditPart.VISUAL_ID;
+ }
+
+ /**
+ * @generated
+ */
+ protected void refreshSemantic() {
+ if (resolveSemanticElement() == null) {
+ return;
+ }
+ LinkedList<IAdaptable> createdViews = new LinkedList<IAdaptable>();
+ List<ComrelNodeDescriptor> childDescriptors = ComrelDiagramUpdater
+ .getSingleQueuedUnit_3042SemanticChildren((View) getHost()
+ .getModel());
+ LinkedList<View> orphaned = new LinkedList<View>();
+ // we care to check only views we recognize as ours
+ LinkedList<View> knownViewChildren = new LinkedList<View>();
+ for (View v : getViewChildren()) {
+ if (isMyDiagramElement(v)) {
+ knownViewChildren.add(v);
+ }
+ }
+ // alternative to #cleanCanonicalSemanticChildren(getViewChildren(), semanticChildren)
+ //
+ // iteration happens over list of desired semantic elements, trying to find best matching View, while original CEP
+ // iterates views, potentially losing view (size/bounds) information - i.e. if there are few views to reference same EObject, only last one
+ // to answer isOrphaned == true will be used for the domain element representation, see #cleanCanonicalSemanticChildren()
+ for (Iterator<ComrelNodeDescriptor> descriptorsIterator = childDescriptors
+ .iterator(); descriptorsIterator.hasNext();) {
+ ComrelNodeDescriptor next = descriptorsIterator.next();
+ String hint = ComrelVisualIDRegistry.getType(next.getVisualID());
+ LinkedList<View> perfectMatch = new LinkedList<View>(); // both semanticElement and hint match that of NodeDescriptor
+ for (View childView : getViewChildren()) {
+ EObject semanticElement = childView.getElement();
+ if (next.getModelElement().equals(semanticElement)) {
+ if (hint.equals(childView.getType())) {
+ perfectMatch.add(childView);
+ // actually, can stop iteration over view children here, but
+ // may want to use not the first view but last one as a 'real' match (the way original CEP does
+ // with its trick with viewToSemanticMap inside #cleanCanonicalSemanticChildren
+ }
+ }
+ }
+ if (perfectMatch.size() > 0) {
+ descriptorsIterator.remove(); // precise match found no need to create anything for the NodeDescriptor
+ // use only one view (first or last?), keep rest as orphaned for further consideration
+ knownViewChildren.remove(perfectMatch.getFirst());
+ }
+ }
+ // those left in knownViewChildren are subject to removal - they are our diagram elements we didn't find match to,
+ // or those we have potential matches to, and thus need to be recreated, preserving size/location information.
+ orphaned.addAll(knownViewChildren);
+ //
+ ArrayList<CreateViewRequest.ViewDescriptor> viewDescriptors = new ArrayList<CreateViewRequest.ViewDescriptor>(
+ childDescriptors.size());
+ for (ComrelNodeDescriptor next : childDescriptors) {
+ String hint = ComrelVisualIDRegistry.getType(next.getVisualID());
+ IAdaptable elementAdapter = new CanonicalElementAdapter(
+ next.getModelElement(), hint);
+ CreateViewRequest.ViewDescriptor descriptor = new CreateViewRequest.ViewDescriptor(
+ elementAdapter, Node.class, hint, ViewUtil.APPEND, false,
+ host().getDiagramPreferencesHint());
+ viewDescriptors.add(descriptor);
+ }
+
+ boolean changed = deleteViews(orphaned.iterator());
+ //
+ CreateViewRequest request = getCreateViewRequest(viewDescriptors);
+ Command cmd = getCreateViewCommand(request);
+ if (cmd != null && cmd.canExecute()) {
+ SetViewMutabilityCommand.makeMutable(
+ new EObjectAdapter(host().getNotationView())).execute();
+ executeCommand(cmd);
+ @SuppressWarnings("unchecked")
+ List<IAdaptable> nl = (List<IAdaptable>) request.getNewObject();
+ createdViews.addAll(nl);
+ }
+ if (changed || createdViews.size() > 0) {
+ postProcessRefreshSemantic(createdViews);
+ }
+ if (createdViews.size() > 1) {
+ // perform a layout of the container
+ DeferredLayoutCommand layoutCmd = new DeferredLayoutCommand(host()
+ .getEditingDomain(), createdViews, host());
+ executeCommand(new ICommandProxy(layoutCmd));
+ }
+
+ makeViewsImmutable(createdViews);
+ }
+}
diff --git a/org.eclipse.emf.refactor.comrel.diagram/src/comrel/diagram/edit/policies/SingleQueuedUnit3ItemSemanticEditPolicy.java b/org.eclipse.emf.refactor.comrel.diagram/src/comrel/diagram/edit/policies/SingleQueuedUnit3ItemSemanticEditPolicy.java
new file mode 100644
index 0000000..66f2cc4
--- /dev/null
+++ b/org.eclipse.emf.refactor.comrel.diagram/src/comrel/diagram/edit/policies/SingleQueuedUnit3ItemSemanticEditPolicy.java
@@ -0,0 +1,263 @@
+/*
+ *
+ */
+package comrel.diagram.edit.policies;
+
+import java.util.Iterator;
+
+import org.eclipse.emf.ecore.EAnnotation;
+import org.eclipse.gef.commands.Command;
+import org.eclipse.gmf.runtime.common.core.command.ICompositeCommand;
+import org.eclipse.gmf.runtime.diagram.core.commands.DeleteCommand;
+import org.eclipse.gmf.runtime.emf.commands.core.command.CompositeTransactionalCommand;
+import org.eclipse.gmf.runtime.emf.type.core.commands.DestroyElementCommand;
+import org.eclipse.gmf.runtime.emf.type.core.requests.CreateElementRequest;
+import org.eclipse.gmf.runtime.emf.type.core.requests.DestroyElementRequest;
+import org.eclipse.gmf.runtime.notation.Edge;
+import org.eclipse.gmf.runtime.notation.Node;
+import org.eclipse.gmf.runtime.notation.View;
+
+import comrel.diagram.edit.commands.MultiInputPort7CreateCommand;
+import comrel.diagram.edit.commands.SingleInputPort6CreateCommand;
+import comrel.diagram.edit.parts.AtomicUnit4EditPart;
+import comrel.diagram.edit.parts.CartesianQueuedUnit4EditPart;
+import comrel.diagram.edit.parts.ConditionalUnit4EditPart;
+import comrel.diagram.edit.parts.MultiFeatureUnit4EditPart;
+import comrel.diagram.edit.parts.MultiFilterUnit4EditPart;
+import comrel.diagram.edit.parts.MultiInputPort7EditPart;
+import comrel.diagram.edit.parts.MultiPortMappingEditPart;
+import comrel.diagram.edit.parts.MultiSinglePortMappingEditPart;
+import comrel.diagram.edit.parts.ParallelQueuedUnit5EditPart;
+import comrel.diagram.edit.parts.SequentialUnit4EditPart;
+import comrel.diagram.edit.parts.SingleFeatureUnit4EditPart;
+import comrel.diagram.edit.parts.SingleFilterUnit4EditPart;
+import comrel.diagram.edit.parts.SingleInputPort6EditPart;
+import comrel.diagram.edit.parts.SinglePortMappingEditPart;
+import comrel.diagram.edit.parts.SingleQueuedUnit5EditPart;
+import comrel.diagram.edit.parts.SingleQueuedUnitSingleQueuedUnitHelperUnitsCompartment2EditPart;
+import comrel.diagram.edit.parts.SingleQueuedUnitSingleQueuedUnitRefactoringUnitCompartment2EditPart;
+import comrel.diagram.part.ComrelVisualIDRegistry;
+import comrel.diagram.providers.ComrelElementTypes;
+
+/**
+ * @generated
+ */
+public class SingleQueuedUnit3ItemSemanticEditPolicy extends
+ ComrelBaseItemSemanticEditPolicy {
+
+ /**
+ * @generated
+ */
+ public SingleQueuedUnit3ItemSemanticEditPolicy() {
+ super(ComrelElementTypes.SingleQueuedUnit_3042);
+ }
+
+ /**
+ * @generated
+ */
+ protected Command getCreateCommand(CreateElementRequest req) {
+ if (ComrelElementTypes.SingleInputPort_3023 == req.getElementType()) {
+ return getGEFWrapper(new SingleInputPort6CreateCommand(req));
+ }
+ if (ComrelElementTypes.MultiInputPort_3024 == req.getElementType()) {
+ return getGEFWrapper(new MultiInputPort7CreateCommand(req));
+ }
+ return super.getCreateCommand(req);
+ }
+
+ /**
+ * @generated
+ */
+ protected Command getDestroyElementCommand(DestroyElementRequest req) {
+ View view = (View) getHost().getModel();
+ CompositeTransactionalCommand cmd = new CompositeTransactionalCommand(
+ getEditingDomain(), null);
+ cmd.setTransactionNestingEnabled(false);
+ EAnnotation annotation = view.getEAnnotation("Shortcut"); //$NON-NLS-1$
+ if (annotation == null) {
+ // there are indirectly referenced children, need extra commands: false
+ addDestroyChildNodesCommand(cmd);
+ addDestroyShortcutsCommand(cmd, view);
+ // delete host element
+ cmd.add(new DestroyElementCommand(req));
+ } else {
+ cmd.add(new DeleteCommand(getEditingDomain(), view));
+ }
+ return getGEFWrapper(cmd.reduce());
+ }
+
+ /**
+ * @generated
+ */
+ private void addDestroyChildNodesCommand(ICompositeCommand cmd) {
+ View view = (View) getHost().getModel();
+ for (Iterator<?> nit = view.getChildren().iterator(); nit.hasNext();) {
+ Node node = (Node) nit.next();
+ switch (ComrelVisualIDRegistry.getVisualID(node)) {
+ case SingleInputPort6EditPart.VISUAL_ID:
+ for (Iterator<?> it = node.getTargetEdges().iterator(); it
+ .hasNext();) {
+ Edge incomingLink = (Edge) it.next();
+ if (ComrelVisualIDRegistry.getVisualID(incomingLink) == SinglePortMappingEditPart.VISUAL_ID) {
+ DestroyElementRequest r = new DestroyElementRequest(
+ incomingLink.getElement(), false);
+ cmd.add(new DestroyElementCommand(r));
+ cmd.add(new DeleteCommand(getEditingDomain(),
+ incomingLink));
+ continue;
+ }
+ if (ComrelVisualIDRegistry.getVisualID(incomingLink) == MultiSinglePortMappingEditPart.VISUAL_ID) {
+ DestroyElementRequest r = new DestroyElementRequest(
+ incomingLink.getElement(), false);
+ cmd.add(new DestroyElementCommand(r));
+ cmd.add(new DeleteCommand(getEditingDomain(),
+ incomingLink));
+ continue;
+ }
+ }
+ for (Iterator<?> it = node.getSourceEdges().iterator(); it
+ .hasNext();) {
+ Edge outgoingLink = (Edge) it.next();
+ if (ComrelVisualIDRegistry.getVisualID(outgoingLink) == SinglePortMappingEditPart.VISUAL_ID) {
+ DestroyElementRequest r = new DestroyElementRequest(
+ outgoingLink.getElement(), false);
+ cmd.add(new DestroyElementCommand(r));
+ cmd.add(new DeleteCommand(getEditingDomain(),
+ outgoingLink));
+ continue;
+ }
+ }
+ cmd.add(new DestroyElementCommand(new DestroyElementRequest(
+ getEditingDomain(), node.getElement(), false))); // directlyOwned: true
+ // don't need explicit deletion of node as parent's view deletion would clean child views as well
+ // cmd.add(new org.eclipse.gmf.runtime.diagram.core.commands.DeleteCommand(getEditingDomain(), node));
+ break;
+ case MultiInputPort7EditPart.VISUAL_ID:
+ for (Iterator<?> it = node.getTargetEdges().iterator(); it
+ .hasNext();) {
+ Edge incomingLink = (Edge) it.next();
+ if (ComrelVisualIDRegistry.getVisualID(incomingLink) == MultiPortMappingEditPart.VISUAL_ID) {
+ DestroyElementRequest r = new DestroyElementRequest(
+ incomingLink.getElement(), false);
+ cmd.add(new DestroyElementCommand(r));
+ cmd.add(new DeleteCommand(getEditingDomain(),
+ incomingLink));
+ continue;
+ }
+ }
+ for (Iterator<?> it = node.getSourceEdges().iterator(); it
+ .hasNext();) {
+ Edge outgoingLink = (Edge) it.next();
+ if (ComrelVisualIDRegistry.getVisualID(outgoingLink) == MultiPortMappingEditPart.VISUAL_ID) {
+ DestroyElementRequest r = new DestroyElementRequest(
+ outgoingLink.getElement(), false);
+ cmd.add(new DestroyElementCommand(r));
+ cmd.add(new DeleteCommand(getEditingDomain(),
+ outgoingLink));
+ continue;
+ }
+ if (ComrelVisualIDRegistry.getVisualID(outgoingLink) == MultiSinglePortMappingEditPart.VISUAL_ID) {
+ DestroyElementRequest r = new DestroyElementRequest(
+ outgoingLink.getElement(), false);
+ cmd.add(new DestroyElementCommand(r));
+ cmd.add(new DeleteCommand(getEditingDomain(),
+ outgoingLink));
+ continue;
+ }
+ }
+ cmd.add(new DestroyElementCommand(new DestroyElementRequest(
+ getEditingDomain(), node.getElement(), false))); // directlyOwned: true
+ // don't need explicit deletion of node as parent's view deletion would clean child views as well
+ // cmd.add(new org.eclipse.gmf.runtime.diagram.core.commands.DeleteCommand(getEditingDomain(), node));
+ break;
+ case SingleQueuedUnitSingleQueuedUnitHelperUnitsCompartment2EditPart.VISUAL_ID:
+ for (Iterator<?> cit = node.getChildren().iterator(); cit
+ .hasNext();) {
+ Node cnode = (Node) cit.next();
+ switch (ComrelVisualIDRegistry.getVisualID(cnode)) {
+ case SingleFeatureUnit4EditPart.VISUAL_ID:
+ cmd.add(new DestroyElementCommand(
+ new DestroyElementRequest(getEditingDomain(),
+ cnode.getElement(), false))); // directlyOwned: true
+ // don't need explicit deletion of cnode as parent's view deletion would clean child views as well
+ // cmd.add(new org.eclipse.gmf.runtime.diagram.core.commands.DeleteCommand(getEditingDomain(), cnode));
+ break;
+ case MultiFeatureUnit4EditPart.VISUAL_ID:
+ cmd.add(new DestroyElementCommand(
+ new DestroyElementRequest(getEditingDomain(),
+ cnode.getElement(), false))); // directlyOwned: true
+ // don't need explicit deletion of cnode as parent's view deletion would clean child views as well
+ // cmd.add(new org.eclipse.gmf.runtime.diagram.core.commands.DeleteCommand(getEditingDomain(), cnode));
+ break;
+ case SingleFilterUnit4EditPart.VISUAL_ID:
+ cmd.add(new DestroyElementCommand(
+ new DestroyElementRequest(getEditingDomain(),
+ cnode.getElement(), false))); // directlyOwned: true
+ // don't need explicit deletion of cnode as parent's view deletion would clean child views as well
+ // cmd.add(new org.eclipse.gmf.runtime.diagram.core.commands.DeleteCommand(getEditingDomain(), cnode));
+ break;
+ case MultiFilterUnit4EditPart.VISUAL_ID:
+ cmd.add(new DestroyElementCommand(
+ new DestroyElementRequest(getEditingDomain(),
+ cnode.getElement(), false))); // directlyOwned: true
+ // don't need explicit deletion of cnode as parent's view deletion would clean child views as well
+ // cmd.add(new org.eclipse.gmf.runtime.diagram.core.commands.DeleteCommand(getEditingDomain(), cnode));
+ break;
+ }
+ }
+ break;
+ case SingleQueuedUnitSingleQueuedUnitRefactoringUnitCompartment2EditPart.VISUAL_ID:
+ for (Iterator<?> cit = node.getChildren().iterator(); cit
+ .hasNext();) {
+ Node cnode = (Node) cit.next();
+ switch (ComrelVisualIDRegistry.getVisualID(cnode)) {
+ case CartesianQueuedUnit4EditPart.VISUAL_ID:
+ cmd.add(new DestroyElementCommand(
+ new DestroyElementRequest(getEditingDomain(),
+ cnode.getElement(), false))); // directlyOwned: true
+ // don't need explicit deletion of cnode as parent's view deletion would clean child views as well
+ // cmd.add(new org.eclipse.gmf.runtime.diagram.core.commands.DeleteCommand(getEditingDomain(), cnode));
+ break;
+ case ParallelQueuedUnit5EditPart.VISUAL_ID:
+ cmd.add(new DestroyElementCommand(
+ new DestroyElementRequest(getEditingDomain(),
+ cnode.getElement(), false))); // directlyOwned: true
+ // don't need explicit deletion of cnode as parent's view deletion would clean child views as well
+ // cmd.add(new org.eclipse.gmf.runtime.diagram.core.commands.DeleteCommand(getEditingDomain(), cnode));
+ break;
+ case SingleQueuedUnit5EditPart.VISUAL_ID:
+ cmd.add(new DestroyElementCommand(
+ new DestroyElementRequest(getEditingDomain(),
+ cnode.getElement(), false))); // directlyOwned: true
+ // don't need explicit deletion of cnode as parent's view deletion would clean child views as well
+ // cmd.add(new org.eclipse.gmf.runtime.diagram.core.commands.DeleteCommand(getEditingDomain(), cnode));
+ break;
+ case SequentialUnit4EditPart.VISUAL_ID:
+ cmd.add(new DestroyElementCommand(
+ new DestroyElementRequest(getEditingDomain(),
+ cnode.getElement(), false))); // directlyOwned: true
+ // don't need explicit deletion of cnode as parent's view deletion would clean child views as well
+ // cmd.add(new org.eclipse.gmf.runtime.diagram.core.commands.DeleteCommand(getEditingDomain(), cnode));
+ break;
+ case ConditionalUnit4EditPart.VISUAL_ID:
+ cmd.add(new DestroyElementCommand(
+ new DestroyElementRequest(getEditingDomain(),
+ cnode.getElement(), false))); // directlyOwned: true
+ // don't need explicit deletion of cnode as parent's view deletion would clean child views as well
+ // cmd.add(new org.eclipse.gmf.runtime.diagram.core.commands.DeleteCommand(getEditingDomain(), cnode));
+ break;
+ case AtomicUnit4EditPart.VISUAL_ID:
+ cmd.add(new DestroyElementCommand(
+ new DestroyElementRequest(getEditingDomain(),
+ cnode.getElement(), false))); // directlyOwned: true
+ // don't need explicit deletion of cnode as parent's view deletion would clean child views as well
+ // cmd.add(new org.eclipse.gmf.runtime.diagram.core.commands.DeleteCommand(getEditingDomain(), cnode));
+ break;
+ }
+ }
+ break;
+ }
+ }
+ }
+
+}
diff --git a/org.eclipse.emf.refactor.comrel.diagram/src/comrel/diagram/edit/policies/SingleQueuedUnit4CanonicalEditPolicy.java b/org.eclipse.emf.refactor.comrel.diagram/src/comrel/diagram/edit/policies/SingleQueuedUnit4CanonicalEditPolicy.java
new file mode 100644
index 0000000..9b7a0bf
--- /dev/null
+++ b/org.eclipse.emf.refactor.comrel.diagram/src/comrel/diagram/edit/policies/SingleQueuedUnit4CanonicalEditPolicy.java
@@ -0,0 +1,178 @@
+/*
+ *
+ */
+package comrel.diagram.edit.policies;
+
+import java.util.ArrayList;
+import java.util.Collection;
+import java.util.HashSet;
+import java.util.Iterator;
+import java.util.LinkedList;
+import java.util.List;
+import java.util.Set;
+
+import org.eclipse.core.runtime.IAdaptable;
+import org.eclipse.emf.ecore.EObject;
+import org.eclipse.emf.ecore.EStructuralFeature;
+import org.eclipse.gef.commands.Command;
+import org.eclipse.gmf.runtime.diagram.core.util.ViewUtil;
+import org.eclipse.gmf.runtime.diagram.ui.commands.DeferredLayoutCommand;
+import org.eclipse.gmf.runtime.diagram.ui.commands.ICommandProxy;
+import org.eclipse.gmf.runtime.diagram.ui.commands.SetViewMutabilityCommand;
+import org.eclipse.gmf.runtime.diagram.ui.editpolicies.CanonicalEditPolicy;
+import org.eclipse.gmf.runtime.diagram.ui.requests.CreateViewRequest;
+import org.eclipse.gmf.runtime.emf.core.util.EObjectAdapter;
+import org.eclipse.gmf.runtime.notation.Node;
+import org.eclipse.gmf.runtime.notation.View;
+
+import comrel.ComrelPackage;
+import comrel.diagram.edit.parts.MultiInputPort7EditPart;
+import comrel.diagram.edit.parts.SingleInputPort6EditPart;
+import comrel.diagram.part.ComrelDiagramUpdater;
+import comrel.diagram.part.ComrelNodeDescriptor;
+import comrel.diagram.part.ComrelVisualIDRegistry;
+
+/**
+ * @generated
+ */
+public class SingleQueuedUnit4CanonicalEditPolicy extends CanonicalEditPolicy {
+
+ /**
+ * @generated
+ */
+ private Set<EStructuralFeature> myFeaturesToSynchronize;
+
+ /**
+ * @generated
+ */
+ protected Set getFeaturesToSynchronize() {
+ if (myFeaturesToSynchronize == null) {
+ myFeaturesToSynchronize = new HashSet<EStructuralFeature>();
+ myFeaturesToSynchronize.add(ComrelPackage.eINSTANCE
+ .getSingleQueuedUnit_SingleInputPorts());
+ myFeaturesToSynchronize.add(ComrelPackage.eINSTANCE
+ .getSingleQueuedUnit_MultiInputPort());
+ }
+ return myFeaturesToSynchronize;
+ }
+
+ /**
+ * @generated
+ */
+ @SuppressWarnings("rawtypes")
+ protected List getSemanticChildrenList() {
+ View viewObject = (View) getHost().getModel();
+ LinkedList<EObject> result = new LinkedList<EObject>();
+ List<ComrelNodeDescriptor> childDescriptors = ComrelDiagramUpdater
+ .getSingleQueuedUnit_3054SemanticChildren(viewObject);
+ for (ComrelNodeDescriptor d : childDescriptors) {
+ result.add(d.getModelElement());
+ }
+ return result;
+ }
+
+ /**
+ * @generated
+ */
+ protected boolean isOrphaned(Collection<EObject> semanticChildren,
+ final View view) {
+ return isMyDiagramElement(view)
+ && !semanticChildren.contains(view.getElement());
+ }
+
+ /**
+ * @generated
+ */
+ private boolean isMyDiagramElement(View view) {
+ int visualID = ComrelVisualIDRegistry.getVisualID(view);
+ return visualID == SingleInputPort6EditPart.VISUAL_ID
+ || visualID == MultiInputPort7EditPart.VISUAL_ID;
+ }
+
+ /**
+ * @generated
+ */
+ protected void refreshSemantic() {
+ if (resolveSemanticElement() == null) {
+ return;
+ }
+ LinkedList<IAdaptable> createdViews = new LinkedList<IAdaptable>();
+ List<ComrelNodeDescriptor> childDescriptors = ComrelDiagramUpdater
+ .getSingleQueuedUnit_3054SemanticChildren((View) getHost()
+ .getModel());
+ LinkedList<View> orphaned = new LinkedList<View>();
+ // we care to check only views we recognize as ours
+ LinkedList<View> knownViewChildren = new LinkedList<View>();
+ for (View v : getViewChildren()) {
+ if (isMyDiagramElement(v)) {
+ knownViewChildren.add(v);
+ }
+ }
+ // alternative to #cleanCanonicalSemanticChildren(getViewChildren(), semanticChildren)
+ //
+ // iteration happens over list of desired semantic elements, trying to find best matching View, while original CEP
+ // iterates views, potentially losing view (size/bounds) information - i.e. if there are few views to reference same EObject, only last one
+ // to answer isOrphaned == true will be used for the domain element representation, see #cleanCanonicalSemanticChildren()
+ for (Iterator<ComrelNodeDescriptor> descriptorsIterator = childDescriptors
+ .iterator(); descriptorsIterator.hasNext();) {
+ ComrelNodeDescriptor next = descriptorsIterator.next();
+ String hint = ComrelVisualIDRegistry.getType(next.getVisualID());
+ LinkedList<View> perfectMatch = new LinkedList<View>(); // both semanticElement and hint match that of NodeDescriptor
+ for (View childView : getViewChildren()) {
+ EObject semanticElement = childView.getElement();
+ if (next.getModelElement().equals(semanticElement)) {
+ if (hint.equals(childView.getType())) {
+ perfectMatch.add(childView);
+ // actually, can stop iteration over view children here, but
+ // may want to use not the first view but last one as a 'real' match (the way original CEP does
+ // with its trick with viewToSemanticMap inside #cleanCanonicalSemanticChildren
+ }
+ }
+ }
+ if (perfectMatch.size() > 0) {
+ descriptorsIterator.remove(); // precise match found no need to create anything for the NodeDescriptor
+ // use only one view (first or last?), keep rest as orphaned for further consideration
+ knownViewChildren.remove(perfectMatch.getFirst());
+ }
+ }
+ // those left in knownViewChildren are subject to removal - they are our diagram elements we didn't find match to,
+ // or those we have potential matches to, and thus need to be recreated, preserving size/location information.
+ orphaned.addAll(knownViewChildren);
+ //
+ ArrayList<CreateViewRequest.ViewDescriptor> viewDescriptors = new ArrayList<CreateViewRequest.ViewDescriptor>(
+ childDescriptors.size());
+ for (ComrelNodeDescriptor next : childDescriptors) {
+ String hint = ComrelVisualIDRegistry.getType(next.getVisualID());
+ IAdaptable elementAdapter = new CanonicalElementAdapter(
+ next.getModelElement(), hint);
+ CreateViewRequest.ViewDescriptor descriptor = new CreateViewRequest.ViewDescriptor(
+ elementAdapter, Node.class, hint, ViewUtil.APPEND, false,
+ host().getDiagramPreferencesHint());
+ viewDescriptors.add(descriptor);
+ }
+
+ boolean changed = deleteViews(orphaned.iterator());
+ //
+ CreateViewRequest request = getCreateViewRequest(viewDescriptors);
+ Command cmd = getCreateViewCommand(request);
+ if (cmd != null && cmd.canExecute()) {
+ SetViewMutabilityCommand.makeMutable(
+ new EObjectAdapter(host().getNotationView())).execute();
+ executeCommand(cmd);
+ @SuppressWarnings("unchecked")
+ List<IAdaptable> nl = (List<IAdaptable>) request.getNewObject();
+ createdViews.addAll(nl);
+ }
+ if (changed || createdViews.size() > 0) {
+ postProcessRefreshSemantic(createdViews);
+ }
+ if (createdViews.size() > 1) {
+ // perform a layout of the container
+ DeferredLayoutCommand layoutCmd = new DeferredLayoutCommand(host()
+ .getEditingDomain(), createdViews, host());
+ executeCommand(new ICommandProxy(layoutCmd));
+ }
+
+ makeViewsImmutable(createdViews);
+ }
+}
diff --git a/org.eclipse.emf.refactor.comrel.diagram/src/comrel/diagram/edit/policies/SingleQueuedUnit4ItemSemanticEditPolicy.java b/org.eclipse.emf.refactor.comrel.diagram/src/comrel/diagram/edit/policies/SingleQueuedUnit4ItemSemanticEditPolicy.java
new file mode 100644
index 0000000..49f5000
--- /dev/null
+++ b/org.eclipse.emf.refactor.comrel.diagram/src/comrel/diagram/edit/policies/SingleQueuedUnit4ItemSemanticEditPolicy.java
@@ -0,0 +1,263 @@
+/*
+ *
+ */
+package comrel.diagram.edit.policies;
+
+import java.util.Iterator;
+
+import org.eclipse.emf.ecore.EAnnotation;
+import org.eclipse.gef.commands.Command;
+import org.eclipse.gmf.runtime.common.core.command.ICompositeCommand;
+import org.eclipse.gmf.runtime.diagram.core.commands.DeleteCommand;
+import org.eclipse.gmf.runtime.emf.commands.core.command.CompositeTransactionalCommand;
+import org.eclipse.gmf.runtime.emf.type.core.commands.DestroyElementCommand;
+import org.eclipse.gmf.runtime.emf.type.core.requests.CreateElementRequest;
+import org.eclipse.gmf.runtime.emf.type.core.requests.DestroyElementRequest;
+import org.eclipse.gmf.runtime.notation.Edge;
+import org.eclipse.gmf.runtime.notation.Node;
+import org.eclipse.gmf.runtime.notation.View;
+
+import comrel.diagram.edit.commands.MultiInputPort7CreateCommand;
+import comrel.diagram.edit.commands.SingleInputPort6CreateCommand;
+import comrel.diagram.edit.parts.AtomicUnit4EditPart;
+import comrel.diagram.edit.parts.CartesianQueuedUnit4EditPart;
+import comrel.diagram.edit.parts.ConditionalUnit4EditPart;
+import comrel.diagram.edit.parts.MultiFeatureUnit4EditPart;
+import comrel.diagram.edit.parts.MultiFilterUnit4EditPart;
+import comrel.diagram.edit.parts.MultiInputPort7EditPart;
+import comrel.diagram.edit.parts.MultiPortMappingEditPart;
+import comrel.diagram.edit.parts.MultiSinglePortMappingEditPart;
+import comrel.diagram.edit.parts.ParallelQueuedUnit5EditPart;
+import comrel.diagram.edit.parts.SequentialUnit4EditPart;
+import comrel.diagram.edit.parts.SingleFeatureUnit4EditPart;
+import comrel.diagram.edit.parts.SingleFilterUnit4EditPart;
+import comrel.diagram.edit.parts.SingleInputPort6EditPart;
+import comrel.diagram.edit.parts.SinglePortMappingEditPart;
+import comrel.diagram.edit.parts.SingleQueuedUnit5EditPart;
+import comrel.diagram.edit.parts.SingleQueuedUnitSingleQueuedUnitHelperUnitsCompartment3EditPart;
+import comrel.diagram.edit.parts.SingleQueuedUnitSingleQueuedUnitRefactoringUnitCompartment3EditPart;
+import comrel.diagram.part.ComrelVisualIDRegistry;
+import comrel.diagram.providers.ComrelElementTypes;
+
+/**
+ * @generated
+ */
+public class SingleQueuedUnit4ItemSemanticEditPolicy extends
+ ComrelBaseItemSemanticEditPolicy {
+
+ /**
+ * @generated
+ */
+ public SingleQueuedUnit4ItemSemanticEditPolicy() {
+ super(ComrelElementTypes.SingleQueuedUnit_3054);
+ }
+
+ /**
+ * @generated
+ */
+ protected Command getCreateCommand(CreateElementRequest req) {
+ if (ComrelElementTypes.SingleInputPort_3023 == req.getElementType()) {
+ return getGEFWrapper(new SingleInputPort6CreateCommand(req));
+ }
+ if (ComrelElementTypes.MultiInputPort_3024 == req.getElementType()) {
+ return getGEFWrapper(new MultiInputPort7CreateCommand(req));
+ }
+ return super.getCreateCommand(req);
+ }
+
+ /**
+ * @generated
+ */
+ protected Command getDestroyElementCommand(DestroyElementRequest req) {
+ View view = (View) getHost().getModel();
+ CompositeTransactionalCommand cmd = new CompositeTransactionalCommand(
+ getEditingDomain(), null);
+ cmd.setTransactionNestingEnabled(false);
+ EAnnotation annotation = view.getEAnnotation("Shortcut"); //$NON-NLS-1$
+ if (annotation == null) {
+ // there are indirectly referenced children, need extra commands: false
+ addDestroyChildNodesCommand(cmd);
+ addDestroyShortcutsCommand(cmd, view);
+ // delete host element
+ cmd.add(new DestroyElementCommand(req));
+ } else {
+ cmd.add(new DeleteCommand(getEditingDomain(), view));
+ }
+ return getGEFWrapper(cmd.reduce());
+ }
+
+ /**
+ * @generated
+ */
+ private void addDestroyChildNodesCommand(ICompositeCommand cmd) {
+ View view = (View) getHost().getModel();
+ for (Iterator<?> nit = view.getChildren().iterator(); nit.hasNext();) {
+ Node node = (Node) nit.next();
+ switch (ComrelVisualIDRegistry.getVisualID(node)) {
+ case SingleInputPort6EditPart.VISUAL_ID:
+ for (Iterator<?> it = node.getTargetEdges().iterator(); it
+ .hasNext();) {
+ Edge incomingLink = (Edge) it.next();
+ if (ComrelVisualIDRegistry.getVisualID(incomingLink) == SinglePortMappingEditPart.VISUAL_ID) {
+ DestroyElementRequest r = new DestroyElementRequest(
+ incomingLink.getElement(), false);
+ cmd.add(new DestroyElementCommand(r));
+ cmd.add(new DeleteCommand(getEditingDomain(),
+ incomingLink));
+ continue;
+ }
+ if (ComrelVisualIDRegistry.getVisualID(incomingLink) == MultiSinglePortMappingEditPart.VISUAL_ID) {
+ DestroyElementRequest r = new DestroyElementRequest(
+ incomingLink.getElement(), false);
+ cmd.add(new DestroyElementCommand(r));
+ cmd.add(new DeleteCommand(getEditingDomain(),
+ incomingLink));
+ continue;
+ }
+ }
+ for (Iterator<?> it = node.getSourceEdges().iterator(); it
+ .hasNext();) {
+ Edge outgoingLink = (Edge) it.next();
+ if (ComrelVisualIDRegistry.getVisualID(outgoingLink) == SinglePortMappingEditPart.VISUAL_ID) {
+ DestroyElementRequest r = new DestroyElementRequest(
+ outgoingLink.getElement(), false);
+ cmd.add(new DestroyElementCommand(r));
+ cmd.add(new DeleteCommand(getEditingDomain(),
+ outgoingLink));
+ continue;
+ }
+ }
+ cmd.add(new DestroyElementCommand(new DestroyElementRequest(
+ getEditingDomain(), node.getElement(), false))); // directlyOwned: true
+ // don't need explicit deletion of node as parent's view deletion would clean child views as well
+ // cmd.add(new org.eclipse.gmf.runtime.diagram.core.commands.DeleteCommand(getEditingDomain(), node));
+ break;
+ case MultiInputPort7EditPart.VISUAL_ID:
+ for (Iterator<?> it = node.getTargetEdges().iterator(); it
+ .hasNext();) {
+ Edge incomingLink = (Edge) it.next();
+ if (ComrelVisualIDRegistry.getVisualID(incomingLink) == MultiPortMappingEditPart.VISUAL_ID) {
+ DestroyElementRequest r = new DestroyElementRequest(
+ incomingLink.getElement(), false);
+ cmd.add(new DestroyElementCommand(r));
+ cmd.add(new DeleteCommand(getEditingDomain(),
+ incomingLink));
+ continue;
+ }
+ }
+ for (Iterator<?> it = node.getSourceEdges().iterator(); it
+ .hasNext();) {
+ Edge outgoingLink = (Edge) it.next();
+ if (ComrelVisualIDRegistry.getVisualID(outgoingLink) == MultiPortMappingEditPart.VISUAL_ID) {
+ DestroyElementRequest r = new DestroyElementRequest(
+ outgoingLink.getElement(), false);
+ cmd.add(new DestroyElementCommand(r));
+ cmd.add(new DeleteCommand(getEditingDomain(),
+ outgoingLink));
+ continue;
+ }
+ if (ComrelVisualIDRegistry.getVisualID(outgoingLink) == MultiSinglePortMappingEditPart.VISUAL_ID) {
+ DestroyElementRequest r = new DestroyElementRequest(
+ outgoingLink.getElement(), false);
+ cmd.add(new DestroyElementCommand(r));
+ cmd.add(new DeleteCommand(getEditingDomain(),
+ outgoingLink));
+ continue;
+ }
+ }
+ cmd.add(new DestroyElementCommand(new DestroyElementRequest(
+ getEditingDomain(), node.getElement(), false))); // directlyOwned: true
+ // don't need explicit deletion of node as parent's view deletion would clean child views as well
+ // cmd.add(new org.eclipse.gmf.runtime.diagram.core.commands.DeleteCommand(getEditingDomain(), node));
+ break;
+ case SingleQueuedUnitSingleQueuedUnitHelperUnitsCompartment3EditPart.VISUAL_ID:
+ for (Iterator<?> cit = node.getChildren().iterator(); cit
+ .hasNext();) {
+ Node cnode = (Node) cit.next();
+ switch (ComrelVisualIDRegistry.getVisualID(cnode)) {
+ case SingleFeatureUnit4EditPart.VISUAL_ID:
+ cmd.add(new DestroyElementCommand(
+ new DestroyElementRequest(getEditingDomain(),
+ cnode.getElement(), false))); // directlyOwned: true
+ // don't need explicit deletion of cnode as parent's view deletion would clean child views as well
+ // cmd.add(new org.eclipse.gmf.runtime.diagram.core.commands.DeleteCommand(getEditingDomain(), cnode));
+ break;
+ case MultiFeatureUnit4EditPart.VISUAL_ID:
+ cmd.add(new DestroyElementCommand(
+ new DestroyElementRequest(getEditingDomain(),
+ cnode.getElement(), false))); // directlyOwned: true
+ // don't need explicit deletion of cnode as parent's view deletion would clean child views as well
+ // cmd.add(new org.eclipse.gmf.runtime.diagram.core.commands.DeleteCommand(getEditingDomain(), cnode));
+ break;
+ case SingleFilterUnit4EditPart.VISUAL_ID:
+ cmd.add(new DestroyElementCommand(
+ new DestroyElementRequest(getEditingDomain(),
+ cnode.getElement(), false))); // directlyOwned: true
+ // don't need explicit deletion of cnode as parent's view deletion would clean child views as well
+ // cmd.add(new org.eclipse.gmf.runtime.diagram.core.commands.DeleteCommand(getEditingDomain(), cnode));
+ break;
+ case MultiFilterUnit4EditPart.VISUAL_ID:
+ cmd.add(new DestroyElementCommand(
+ new DestroyElementRequest(getEditingDomain(),
+ cnode.getElement(), false))); // directlyOwned: true
+ // don't need explicit deletion of cnode as parent's view deletion would clean child views as well
+ // cmd.add(new org.eclipse.gmf.runtime.diagram.core.commands.DeleteCommand(getEditingDomain(), cnode));
+ break;
+ }
+ }
+ break;
+ case SingleQueuedUnitSingleQueuedUnitRefactoringUnitCompartment3EditPart.VISUAL_ID:
+ for (Iterator<?> cit = node.getChildren().iterator(); cit
+ .hasNext();) {
+ Node cnode = (Node) cit.next();
+ switch (ComrelVisualIDRegistry.getVisualID(cnode)) {
+ case CartesianQueuedUnit4EditPart.VISUAL_ID:
+ cmd.add(new DestroyElementCommand(
+ new DestroyElementRequest(getEditingDomain(),
+ cnode.getElement(), false))); // directlyOwned: true
+ // don't need explicit deletion of cnode as parent's view deletion would clean child views as well
+ // cmd.add(new org.eclipse.gmf.runtime.diagram.core.commands.DeleteCommand(getEditingDomain(), cnode));
+ break;
+ case ParallelQueuedUnit5EditPart.VISUAL_ID:
+ cmd.add(new DestroyElementCommand(
+ new DestroyElementRequest(getEditingDomain(),
+ cnode.getElement(), false))); // directlyOwned: true
+ // don't need explicit deletion of cnode as parent's view deletion would clean child views as well
+ // cmd.add(new org.eclipse.gmf.runtime.diagram.core.commands.DeleteCommand(getEditingDomain(), cnode));
+ break;
+ case SingleQueuedUnit5EditPart.VISUAL_ID:
+ cmd.add(new DestroyElementCommand(
+ new DestroyElementRequest(getEditingDomain(),
+ cnode.getElement(), false))); // directlyOwned: true
+ // don't need explicit deletion of cnode as parent's view deletion would clean child views as well
+ // cmd.add(new org.eclipse.gmf.runtime.diagram.core.commands.DeleteCommand(getEditingDomain(), cnode));
+ break;
+ case SequentialUnit4EditPart.VISUAL_ID:
+ cmd.add(new DestroyElementCommand(
+ new DestroyElementRequest(getEditingDomain(),
+ cnode.getElement(), false))); // directlyOwned: true
+ // don't need explicit deletion of cnode as parent's view deletion would clean child views as well
+ // cmd.add(new org.eclipse.gmf.runtime.diagram.core.commands.DeleteCommand(getEditingDomain(), cnode));
+ break;
+ case ConditionalUnit4EditPart.VISUAL_ID:
+ cmd.add(new DestroyElementCommand(
+ new DestroyElementRequest(getEditingDomain(),
+ cnode.getElement(), false))); // directlyOwned: true
+ // don't need explicit deletion of cnode as parent's view deletion would clean child views as well
+ // cmd.add(new org.eclipse.gmf.runtime.diagram.core.commands.DeleteCommand(getEditingDomain(), cnode));
+ break;
+ case AtomicUnit4EditPart.VISUAL_ID:
+ cmd.add(new DestroyElementCommand(
+ new DestroyElementRequest(getEditingDomain(),
+ cnode.getElement(), false))); // directlyOwned: true
+ // don't need explicit deletion of cnode as parent's view deletion would clean child views as well
+ // cmd.add(new org.eclipse.gmf.runtime.diagram.core.commands.DeleteCommand(getEditingDomain(), cnode));
+ break;
+ }
+ }
+ break;
+ }
+ }
+ }
+
+}
diff --git a/org.eclipse.emf.refactor.comrel.diagram/src/comrel/diagram/edit/policies/SingleQueuedUnit5CanonicalEditPolicy.java b/org.eclipse.emf.refactor.comrel.diagram/src/comrel/diagram/edit/policies/SingleQueuedUnit5CanonicalEditPolicy.java
new file mode 100644
index 0000000..4128238
--- /dev/null
+++ b/org.eclipse.emf.refactor.comrel.diagram/src/comrel/diagram/edit/policies/SingleQueuedUnit5CanonicalEditPolicy.java
@@ -0,0 +1,178 @@
+/*
+ *
+ */
+package comrel.diagram.edit.policies;
+
+import java.util.ArrayList;
+import java.util.Collection;
+import java.util.HashSet;
+import java.util.Iterator;
+import java.util.LinkedList;
+import java.util.List;
+import java.util.Set;
+
+import org.eclipse.core.runtime.IAdaptable;
+import org.eclipse.emf.ecore.EObject;
+import org.eclipse.emf.ecore.EStructuralFeature;
+import org.eclipse.gef.commands.Command;
+import org.eclipse.gmf.runtime.diagram.core.util.ViewUtil;
+import org.eclipse.gmf.runtime.diagram.ui.commands.DeferredLayoutCommand;
+import org.eclipse.gmf.runtime.diagram.ui.commands.ICommandProxy;
+import org.eclipse.gmf.runtime.diagram.ui.commands.SetViewMutabilityCommand;
+import org.eclipse.gmf.runtime.diagram.ui.editpolicies.CanonicalEditPolicy;
+import org.eclipse.gmf.runtime.diagram.ui.requests.CreateViewRequest;
+import org.eclipse.gmf.runtime.emf.core.util.EObjectAdapter;
+import org.eclipse.gmf.runtime.notation.Node;
+import org.eclipse.gmf.runtime.notation.View;
+
+import comrel.ComrelPackage;
+import comrel.diagram.edit.parts.MultiInputPort7EditPart;
+import comrel.diagram.edit.parts.SingleInputPort6EditPart;
+import comrel.diagram.part.ComrelDiagramUpdater;
+import comrel.diagram.part.ComrelNodeDescriptor;
+import comrel.diagram.part.ComrelVisualIDRegistry;
+
+/**
+ * @generated
+ */
+public class SingleQueuedUnit5CanonicalEditPolicy extends CanonicalEditPolicy {
+
+ /**
+ * @generated
+ */
+ private Set<EStructuralFeature> myFeaturesToSynchronize;
+
+ /**
+ * @generated
+ */
+ protected Set getFeaturesToSynchronize() {
+ if (myFeaturesToSynchronize == null) {
+ myFeaturesToSynchronize = new HashSet<EStructuralFeature>();
+ myFeaturesToSynchronize.add(ComrelPackage.eINSTANCE
+ .getSingleQueuedUnit_SingleInputPorts());
+ myFeaturesToSynchronize.add(ComrelPackage.eINSTANCE
+ .getSingleQueuedUnit_MultiInputPort());
+ }
+ return myFeaturesToSynchronize;
+ }
+
+ /**
+ * @generated
+ */
+ @SuppressWarnings("rawtypes")
+ protected List getSemanticChildrenList() {
+ View viewObject = (View) getHost().getModel();
+ LinkedList<EObject> result = new LinkedList<EObject>();
+ List<ComrelNodeDescriptor> childDescriptors = ComrelDiagramUpdater
+ .getSingleQueuedUnit_3059SemanticChildren(viewObject);
+ for (ComrelNodeDescriptor d : childDescriptors) {
+ result.add(d.getModelElement());
+ }
+ return result;
+ }
+
+ /**
+ * @generated
+ */
+ protected boolean isOrphaned(Collection<EObject> semanticChildren,
+ final View view) {
+ return isMyDiagramElement(view)
+ && !semanticChildren.contains(view.getElement());
+ }
+
+ /**
+ * @generated
+ */
+ private boolean isMyDiagramElement(View view) {
+ int visualID = ComrelVisualIDRegistry.getVisualID(view);
+ return visualID == SingleInputPort6EditPart.VISUAL_ID
+ || visualID == MultiInputPort7EditPart.VISUAL_ID;
+ }
+
+ /**
+ * @generated
+ */
+ protected void refreshSemantic() {
+ if (resolveSemanticElement() == null) {
+ return;
+ }
+ LinkedList<IAdaptable> createdViews = new LinkedList<IAdaptable>();
+ List<ComrelNodeDescriptor> childDescriptors = ComrelDiagramUpdater
+ .getSingleQueuedUnit_3059SemanticChildren((View) getHost()
+ .getModel());
+ LinkedList<View> orphaned = new LinkedList<View>();
+ // we care to check only views we recognize as ours
+ LinkedList<View> knownViewChildren = new LinkedList<View>();
+ for (View v : getViewChildren()) {
+ if (isMyDiagramElement(v)) {
+ knownViewChildren.add(v);
+ }
+ }
+ // alternative to #cleanCanonicalSemanticChildren(getViewChildren(), semanticChildren)
+ //
+ // iteration happens over list of desired semantic elements, trying to find best matching View, while original CEP
+ // iterates views, potentially losing view (size/bounds) information - i.e. if there are few views to reference same EObject, only last one
+ // to answer isOrphaned == true will be used for the domain element representation, see #cleanCanonicalSemanticChildren()
+ for (Iterator<ComrelNodeDescriptor> descriptorsIterator = childDescriptors
+ .iterator(); descriptorsIterator.hasNext();) {
+ ComrelNodeDescriptor next = descriptorsIterator.next();
+ String hint = ComrelVisualIDRegistry.getType(next.getVisualID());
+ LinkedList<View> perfectMatch = new LinkedList<View>(); // both semanticElement and hint match that of NodeDescriptor
+ for (View childView : getViewChildren()) {
+ EObject semanticElement = childView.getElement();
+ if (next.getModelElement().equals(semanticElement)) {
+ if (hint.equals(childView.getType())) {
+ perfectMatch.add(childView);
+ // actually, can stop iteration over view children here, but
+ // may want to use not the first view but last one as a 'real' match (the way original CEP does
+ // with its trick with viewToSemanticMap inside #cleanCanonicalSemanticChildren
+ }
+ }
+ }
+ if (perfectMatch.size() > 0) {
+ descriptorsIterator.remove(); // precise match found no need to create anything for the NodeDescriptor
+ // use only one view (first or last?), keep rest as orphaned for further consideration
+ knownViewChildren.remove(perfectMatch.getFirst());
+ }
+ }
+ // those left in knownViewChildren are subject to removal - they are our diagram elements we didn't find match to,
+ // or those we have potential matches to, and thus need to be recreated, preserving size/location information.
+ orphaned.addAll(knownViewChildren);
+ //
+ ArrayList<CreateViewRequest.ViewDescriptor> viewDescriptors = new ArrayList<CreateViewRequest.ViewDescriptor>(
+ childDescriptors.size());
+ for (ComrelNodeDescriptor next : childDescriptors) {
+ String hint = ComrelVisualIDRegistry.getType(next.getVisualID());
+ IAdaptable elementAdapter = new CanonicalElementAdapter(
+ next.getModelElement(), hint);
+ CreateViewRequest.ViewDescriptor descriptor = new CreateViewRequest.ViewDescriptor(
+ elementAdapter, Node.class, hint, ViewUtil.APPEND, false,
+ host().getDiagramPreferencesHint());
+ viewDescriptors.add(descriptor);
+ }
+
+ boolean changed = deleteViews(orphaned.iterator());
+ //
+ CreateViewRequest request = getCreateViewRequest(viewDescriptors);
+ Command cmd = getCreateViewCommand(request);
+ if (cmd != null && cmd.canExecute()) {
+ SetViewMutabilityCommand.makeMutable(
+ new EObjectAdapter(host().getNotationView())).execute();
+ executeCommand(cmd);
+ @SuppressWarnings("unchecked")
+ List<IAdaptable> nl = (List<IAdaptable>) request.getNewObject();
+ createdViews.addAll(nl);
+ }
+ if (changed || createdViews.size() > 0) {
+ postProcessRefreshSemantic(createdViews);
+ }
+ if (createdViews.size() > 1) {
+ // perform a layout of the container
+ DeferredLayoutCommand layoutCmd = new DeferredLayoutCommand(host()
+ .getEditingDomain(), createdViews, host());
+ executeCommand(new ICommandProxy(layoutCmd));
+ }
+
+ makeViewsImmutable(createdViews);
+ }
+}
diff --git a/org.eclipse.emf.refactor.comrel.diagram/src/comrel/diagram/edit/policies/SingleQueuedUnit5ItemSemanticEditPolicy.java b/org.eclipse.emf.refactor.comrel.diagram/src/comrel/diagram/edit/policies/SingleQueuedUnit5ItemSemanticEditPolicy.java
new file mode 100644
index 0000000..b1572db
--- /dev/null
+++ b/org.eclipse.emf.refactor.comrel.diagram/src/comrel/diagram/edit/policies/SingleQueuedUnit5ItemSemanticEditPolicy.java
@@ -0,0 +1,263 @@
+/*
+ *
+ */
+package comrel.diagram.edit.policies;
+
+import java.util.Iterator;
+
+import org.eclipse.emf.ecore.EAnnotation;
+import org.eclipse.gef.commands.Command;
+import org.eclipse.gmf.runtime.common.core.command.ICompositeCommand;
+import org.eclipse.gmf.runtime.diagram.core.commands.DeleteCommand;
+import org.eclipse.gmf.runtime.emf.commands.core.command.CompositeTransactionalCommand;
+import org.eclipse.gmf.runtime.emf.type.core.commands.DestroyElementCommand;
+import org.eclipse.gmf.runtime.emf.type.core.requests.CreateElementRequest;
+import org.eclipse.gmf.runtime.emf.type.core.requests.DestroyElementRequest;
+import org.eclipse.gmf.runtime.notation.Edge;
+import org.eclipse.gmf.runtime.notation.Node;
+import org.eclipse.gmf.runtime.notation.View;
+
+import comrel.diagram.edit.commands.MultiInputPort7CreateCommand;
+import comrel.diagram.edit.commands.SingleInputPort6CreateCommand;
+import comrel.diagram.edit.parts.AtomicUnit4EditPart;
+import comrel.diagram.edit.parts.CartesianQueuedUnit4EditPart;
+import comrel.diagram.edit.parts.ConditionalUnit4EditPart;
+import comrel.diagram.edit.parts.MultiFeatureUnit4EditPart;
+import comrel.diagram.edit.parts.MultiFilterUnit4EditPart;
+import comrel.diagram.edit.parts.MultiInputPort7EditPart;
+import comrel.diagram.edit.parts.MultiPortMappingEditPart;
+import comrel.diagram.edit.parts.MultiSinglePortMappingEditPart;
+import comrel.diagram.edit.parts.ParallelQueuedUnit5EditPart;
+import comrel.diagram.edit.parts.SequentialUnit4EditPart;
+import comrel.diagram.edit.parts.SingleFeatureUnit4EditPart;
+import comrel.diagram.edit.parts.SingleFilterUnit4EditPart;
+import comrel.diagram.edit.parts.SingleInputPort6EditPart;
+import comrel.diagram.edit.parts.SinglePortMappingEditPart;
+import comrel.diagram.edit.parts.SingleQueuedUnit5EditPart;
+import comrel.diagram.edit.parts.SingleQueuedUnitSingleQueuedUnitHelperUnitsCompartment4EditPart;
+import comrel.diagram.edit.parts.SingleQueuedUnitSingleQueuedUnitRefactoringUnitCompartment4EditPart;
+import comrel.diagram.part.ComrelVisualIDRegistry;
+import comrel.diagram.providers.ComrelElementTypes;
+
+/**
+ * @generated
+ */
+public class SingleQueuedUnit5ItemSemanticEditPolicy extends
+ ComrelBaseItemSemanticEditPolicy {
+
+ /**
+ * @generated
+ */
+ public SingleQueuedUnit5ItemSemanticEditPolicy() {
+ super(ComrelElementTypes.SingleQueuedUnit_3059);
+ }
+
+ /**
+ * @generated
+ */
+ protected Command getCreateCommand(CreateElementRequest req) {
+ if (ComrelElementTypes.SingleInputPort_3023 == req.getElementType()) {
+ return getGEFWrapper(new SingleInputPort6CreateCommand(req));
+ }
+ if (ComrelElementTypes.MultiInputPort_3024 == req.getElementType()) {
+ return getGEFWrapper(new MultiInputPort7CreateCommand(req));
+ }
+ return super.getCreateCommand(req);
+ }
+
+ /**
+ * @generated
+ */
+ protected Command getDestroyElementCommand(DestroyElementRequest req) {
+ View view = (View) getHost().getModel();
+ CompositeTransactionalCommand cmd = new CompositeTransactionalCommand(
+ getEditingDomain(), null);
+ cmd.setTransactionNestingEnabled(false);
+ EAnnotation annotation = view.getEAnnotation("Shortcut"); //$NON-NLS-1$
+ if (annotation == null) {
+ // there are indirectly referenced children, need extra commands: false
+ addDestroyChildNodesCommand(cmd);
+ addDestroyShortcutsCommand(cmd, view);
+ // delete host element
+ cmd.add(new DestroyElementCommand(req));
+ } else {
+ cmd.add(new DeleteCommand(getEditingDomain(), view));
+ }
+ return getGEFWrapper(cmd.reduce());
+ }
+
+ /**
+ * @generated
+ */
+ private void addDestroyChildNodesCommand(ICompositeCommand cmd) {
+ View view = (View) getHost().getModel();
+ for (Iterator<?> nit = view.getChildren().iterator(); nit.hasNext();) {
+ Node node = (Node) nit.next();
+ switch (ComrelVisualIDRegistry.getVisualID(node)) {
+ case SingleInputPort6EditPart.VISUAL_ID:
+ for (Iterator<?> it = node.getTargetEdges().iterator(); it
+ .hasNext();) {
+ Edge incomingLink = (Edge) it.next();
+ if (ComrelVisualIDRegistry.getVisualID(incomingLink) == SinglePortMappingEditPart.VISUAL_ID) {
+ DestroyElementRequest r = new DestroyElementRequest(
+ incomingLink.getElement(), false);
+ cmd.add(new DestroyElementCommand(r));
+ cmd.add(new DeleteCommand(getEditingDomain(),
+ incomingLink));
+ continue;
+ }
+ if (ComrelVisualIDRegistry.getVisualID(incomingLink) == MultiSinglePortMappingEditPart.VISUAL_ID) {
+ DestroyElementRequest r = new DestroyElementRequest(
+ incomingLink.getElement(), false);
+ cmd.add(new DestroyElementCommand(r));
+ cmd.add(new DeleteCommand(getEditingDomain(),
+ incomingLink));
+ continue;
+ }
+ }
+ for (Iterator<?> it = node.getSourceEdges().iterator(); it
+ .hasNext();) {
+ Edge outgoingLink = (Edge) it.next();
+ if (ComrelVisualIDRegistry.getVisualID(outgoingLink) == SinglePortMappingEditPart.VISUAL_ID) {
+ DestroyElementRequest r = new DestroyElementRequest(
+ outgoingLink.getElement(), false);
+ cmd.add(new DestroyElementCommand(r));
+ cmd.add(new DeleteCommand(getEditingDomain(),
+ outgoingLink));
+ continue;
+ }
+ }
+ cmd.add(new DestroyElementCommand(new DestroyElementRequest(
+ getEditingDomain(), node.getElement(), false))); // directlyOwned: true
+ // don't need explicit deletion of node as parent's view deletion would clean child views as well
+ // cmd.add(new org.eclipse.gmf.runtime.diagram.core.commands.DeleteCommand(getEditingDomain(), node));
+ break;
+ case MultiInputPort7EditPart.VISUAL_ID:
+ for (Iterator<?> it = node.getTargetEdges().iterator(); it
+ .hasNext();) {
+ Edge incomingLink = (Edge) it.next();
+ if (ComrelVisualIDRegistry.getVisualID(incomingLink) == MultiPortMappingEditPart.VISUAL_ID) {
+ DestroyElementRequest r = new DestroyElementRequest(
+ incomingLink.getElement(), false);
+ cmd.add(new DestroyElementCommand(r));
+ cmd.add(new DeleteCommand(getEditingDomain(),
+ incomingLink));
+ continue;
+ }
+ }
+ for (Iterator<?> it = node.getSourceEdges().iterator(); it
+ .hasNext();) {
+ Edge outgoingLink = (Edge) it.next();
+ if (ComrelVisualIDRegistry.getVisualID(outgoingLink) == MultiPortMappingEditPart.VISUAL_ID) {
+ DestroyElementRequest r = new DestroyElementRequest(
+ outgoingLink.getElement(), false);
+ cmd.add(new DestroyElementCommand(r));
+ cmd.add(new DeleteCommand(getEditingDomain(),
+ outgoingLink));
+ continue;
+ }
+ if (ComrelVisualIDRegistry.getVisualID(outgoingLink) == MultiSinglePortMappingEditPart.VISUAL_ID) {
+ DestroyElementRequest r = new DestroyElementRequest(
+ outgoingLink.getElement(), false);
+ cmd.add(new DestroyElementCommand(r));
+ cmd.add(new DeleteCommand(getEditingDomain(),
+ outgoingLink));
+ continue;
+ }
+ }
+ cmd.add(new DestroyElementCommand(new DestroyElementRequest(
+ getEditingDomain(), node.getElement(), false))); // directlyOwned: true
+ // don't need explicit deletion of node as parent's view deletion would clean child views as well
+ // cmd.add(new org.eclipse.gmf.runtime.diagram.core.commands.DeleteCommand(getEditingDomain(), node));
+ break;
+ case SingleQueuedUnitSingleQueuedUnitHelperUnitsCompartment4EditPart.VISUAL_ID:
+ for (Iterator<?> cit = node.getChildren().iterator(); cit
+ .hasNext();) {
+ Node cnode = (Node) cit.next();
+ switch (ComrelVisualIDRegistry.getVisualID(cnode)) {
+ case SingleFeatureUnit4EditPart.VISUAL_ID:
+ cmd.add(new DestroyElementCommand(
+ new DestroyElementRequest(getEditingDomain(),
+ cnode.getElement(), false))); // directlyOwned: true
+ // don't need explicit deletion of cnode as parent's view deletion would clean child views as well
+ // cmd.add(new org.eclipse.gmf.runtime.diagram.core.commands.DeleteCommand(getEditingDomain(), cnode));
+ break;
+ case MultiFeatureUnit4EditPart.VISUAL_ID:
+ cmd.add(new DestroyElementCommand(
+ new DestroyElementRequest(getEditingDomain(),
+ cnode.getElement(), false))); // directlyOwned: true
+ // don't need explicit deletion of cnode as parent's view deletion would clean child views as well
+ // cmd.add(new org.eclipse.gmf.runtime.diagram.core.commands.DeleteCommand(getEditingDomain(), cnode));
+ break;
+ case SingleFilterUnit4EditPart.VISUAL_ID:
+ cmd.add(new DestroyElementCommand(
+ new DestroyElementRequest(getEditingDomain(),
+ cnode.getElement(), false))); // directlyOwned: true
+ // don't need explicit deletion of cnode as parent's view deletion would clean child views as well
+ // cmd.add(new org.eclipse.gmf.runtime.diagram.core.commands.DeleteCommand(getEditingDomain(), cnode));
+ break;
+ case MultiFilterUnit4EditPart.VISUAL_ID:
+ cmd.add(new DestroyElementCommand(
+ new DestroyElementRequest(getEditingDomain(),
+ cnode.getElement(), false))); // directlyOwned: true
+ // don't need explicit deletion of cnode as parent's view deletion would clean child views as well
+ // cmd.add(new org.eclipse.gmf.runtime.diagram.core.commands.DeleteCommand(getEditingDomain(), cnode));
+ break;
+ }
+ }
+ break;
+ case SingleQueuedUnitSingleQueuedUnitRefactoringUnitCompartment4EditPart.VISUAL_ID:
+ for (Iterator<?> cit = node.getChildren().iterator(); cit
+ .hasNext();) {
+ Node cnode = (Node) cit.next();
+ switch (ComrelVisualIDRegistry.getVisualID(cnode)) {
+ case CartesianQueuedUnit4EditPart.VISUAL_ID:
+ cmd.add(new DestroyElementCommand(
+ new DestroyElementRequest(getEditingDomain(),
+ cnode.getElement(), false))); // directlyOwned: true
+ // don't need explicit deletion of cnode as parent's view deletion would clean child views as well
+ // cmd.add(new org.eclipse.gmf.runtime.diagram.core.commands.DeleteCommand(getEditingDomain(), cnode));
+ break;
+ case ParallelQueuedUnit5EditPart.VISUAL_ID:
+ cmd.add(new DestroyElementCommand(
+ new DestroyElementRequest(getEditingDomain(),
+ cnode.getElement(), false))); // directlyOwned: true
+ // don't need explicit deletion of cnode as parent's view deletion would clean child views as well
+ // cmd.add(new org.eclipse.gmf.runtime.diagram.core.commands.DeleteCommand(getEditingDomain(), cnode));
+ break;
+ case SingleQueuedUnit5EditPart.VISUAL_ID:
+ cmd.add(new DestroyElementCommand(
+ new DestroyElementRequest(getEditingDomain(),
+ cnode.getElement(), false))); // directlyOwned: true
+ // don't need explicit deletion of cnode as parent's view deletion would clean child views as well
+ // cmd.add(new org.eclipse.gmf.runtime.diagram.core.commands.DeleteCommand(getEditingDomain(), cnode));
+ break;
+ case SequentialUnit4EditPart.VISUAL_ID:
+ cmd.add(new DestroyElementCommand(
+ new DestroyElementRequest(getEditingDomain(),
+ cnode.getElement(), false))); // directlyOwned: true
+ // don't need explicit deletion of cnode as parent's view deletion would clean child views as well
+ // cmd.add(new org.eclipse.gmf.runtime.diagram.core.commands.DeleteCommand(getEditingDomain(), cnode));
+ break;
+ case ConditionalUnit4EditPart.VISUAL_ID:
+ cmd.add(new DestroyElementCommand(
+ new DestroyElementRequest(getEditingDomain(),
+ cnode.getElement(), false))); // directlyOwned: true
+ // don't need explicit deletion of cnode as parent's view deletion would clean child views as well
+ // cmd.add(new org.eclipse.gmf.runtime.diagram.core.commands.DeleteCommand(getEditingDomain(), cnode));
+ break;
+ case AtomicUnit4EditPart.VISUAL_ID:
+ cmd.add(new DestroyElementCommand(
+ new DestroyElementRequest(getEditingDomain(),
+ cnode.getElement(), false))); // directlyOwned: true
+ // don't need explicit deletion of cnode as parent's view deletion would clean child views as well
+ // cmd.add(new org.eclipse.gmf.runtime.diagram.core.commands.DeleteCommand(getEditingDomain(), cnode));
+ break;
+ }
+ }
+ break;
+ }
+ }
+ }
+
+}
diff --git a/org.eclipse.emf.refactor.comrel.diagram/src/comrel/diagram/edit/policies/SingleQueuedUnit6CanonicalEditPolicy.java b/org.eclipse.emf.refactor.comrel.diagram/src/comrel/diagram/edit/policies/SingleQueuedUnit6CanonicalEditPolicy.java
new file mode 100644
index 0000000..22fe96f
--- /dev/null
+++ b/org.eclipse.emf.refactor.comrel.diagram/src/comrel/diagram/edit/policies/SingleQueuedUnit6CanonicalEditPolicy.java
@@ -0,0 +1,178 @@
+/*
+ *
+ */
+package comrel.diagram.edit.policies;
+
+import java.util.ArrayList;
+import java.util.Collection;
+import java.util.HashSet;
+import java.util.Iterator;
+import java.util.LinkedList;
+import java.util.List;
+import java.util.Set;
+
+import org.eclipse.core.runtime.IAdaptable;
+import org.eclipse.emf.ecore.EObject;
+import org.eclipse.emf.ecore.EStructuralFeature;
+import org.eclipse.gef.commands.Command;
+import org.eclipse.gmf.runtime.diagram.core.util.ViewUtil;
+import org.eclipse.gmf.runtime.diagram.ui.commands.DeferredLayoutCommand;
+import org.eclipse.gmf.runtime.diagram.ui.commands.ICommandProxy;
+import org.eclipse.gmf.runtime.diagram.ui.commands.SetViewMutabilityCommand;
+import org.eclipse.gmf.runtime.diagram.ui.editpolicies.CanonicalEditPolicy;
+import org.eclipse.gmf.runtime.diagram.ui.requests.CreateViewRequest;
+import org.eclipse.gmf.runtime.emf.core.util.EObjectAdapter;
+import org.eclipse.gmf.runtime.notation.Node;
+import org.eclipse.gmf.runtime.notation.View;
+
+import comrel.ComrelPackage;
+import comrel.diagram.edit.parts.MultiInputPort7EditPart;
+import comrel.diagram.edit.parts.SingleInputPort6EditPart;
+import comrel.diagram.part.ComrelDiagramUpdater;
+import comrel.diagram.part.ComrelNodeDescriptor;
+import comrel.diagram.part.ComrelVisualIDRegistry;
+
+/**
+ * @generated
+ */
+public class SingleQueuedUnit6CanonicalEditPolicy extends CanonicalEditPolicy {
+
+ /**
+ * @generated
+ */
+ private Set<EStructuralFeature> myFeaturesToSynchronize;
+
+ /**
+ * @generated
+ */
+ protected Set getFeaturesToSynchronize() {
+ if (myFeaturesToSynchronize == null) {
+ myFeaturesToSynchronize = new HashSet<EStructuralFeature>();
+ myFeaturesToSynchronize.add(ComrelPackage.eINSTANCE
+ .getSingleQueuedUnit_SingleInputPorts());
+ myFeaturesToSynchronize.add(ComrelPackage.eINSTANCE
+ .getSingleQueuedUnit_MultiInputPort());
+ }
+ return myFeaturesToSynchronize;
+ }
+
+ /**
+ * @generated
+ */
+ @SuppressWarnings("rawtypes")
+ protected List getSemanticChildrenList() {
+ View viewObject = (View) getHost().getModel();
+ LinkedList<EObject> result = new LinkedList<EObject>();
+ List<ComrelNodeDescriptor> childDescriptors = ComrelDiagramUpdater
+ .getSingleQueuedUnit_3065SemanticChildren(viewObject);
+ for (ComrelNodeDescriptor d : childDescriptors) {
+ result.add(d.getModelElement());
+ }
+ return result;
+ }
+
+ /**
+ * @generated
+ */
+ protected boolean isOrphaned(Collection<EObject> semanticChildren,
+ final View view) {
+ return isMyDiagramElement(view)
+ && !semanticChildren.contains(view.getElement());
+ }
+
+ /**
+ * @generated
+ */
+ private boolean isMyDiagramElement(View view) {
+ int visualID = ComrelVisualIDRegistry.getVisualID(view);
+ return visualID == SingleInputPort6EditPart.VISUAL_ID
+ || visualID == MultiInputPort7EditPart.VISUAL_ID;
+ }
+
+ /**
+ * @generated
+ */
+ protected void refreshSemantic() {
+ if (resolveSemanticElement() == null) {
+ return;
+ }
+ LinkedList<IAdaptable> createdViews = new LinkedList<IAdaptable>();
+ List<ComrelNodeDescriptor> childDescriptors = ComrelDiagramUpdater
+ .getSingleQueuedUnit_3065SemanticChildren((View) getHost()
+ .getModel());
+ LinkedList<View> orphaned = new LinkedList<View>();
+ // we care to check only views we recognize as ours
+ LinkedList<View> knownViewChildren = new LinkedList<View>();
+ for (View v : getViewChildren()) {
+ if (isMyDiagramElement(v)) {
+ knownViewChildren.add(v);
+ }
+ }
+ // alternative to #cleanCanonicalSemanticChildren(getViewChildren(), semanticChildren)
+ //
+ // iteration happens over list of desired semantic elements, trying to find best matching View, while original CEP
+ // iterates views, potentially losing view (size/bounds) information - i.e. if there are few views to reference same EObject, only last one
+ // to answer isOrphaned == true will be used for the domain element representation, see #cleanCanonicalSemanticChildren()
+ for (Iterator<ComrelNodeDescriptor> descriptorsIterator = childDescriptors
+ .iterator(); descriptorsIterator.hasNext();) {
+ ComrelNodeDescriptor next = descriptorsIterator.next();
+ String hint = ComrelVisualIDRegistry.getType(next.getVisualID());
+ LinkedList<View> perfectMatch = new LinkedList<View>(); // both semanticElement and hint match that of NodeDescriptor
+ for (View childView : getViewChildren()) {
+ EObject semanticElement = childView.getElement();
+ if (next.getModelElement().equals(semanticElement)) {
+ if (hint.equals(childView.getType())) {
+ perfectMatch.add(childView);
+ // actually, can stop iteration over view children here, but
+ // may want to use not the first view but last one as a 'real' match (the way original CEP does
+ // with its trick with viewToSemanticMap inside #cleanCanonicalSemanticChildren
+ }
+ }
+ }
+ if (perfectMatch.size() > 0) {
+ descriptorsIterator.remove(); // precise match found no need to create anything for the NodeDescriptor
+ // use only one view (first or last?), keep rest as orphaned for further consideration
+ knownViewChildren.remove(perfectMatch.getFirst());
+ }
+ }
+ // those left in knownViewChildren are subject to removal - they are our diagram elements we didn't find match to,
+ // or those we have potential matches to, and thus need to be recreated, preserving size/location information.
+ orphaned.addAll(knownViewChildren);
+ //
+ ArrayList<CreateViewRequest.ViewDescriptor> viewDescriptors = new ArrayList<CreateViewRequest.ViewDescriptor>(
+ childDescriptors.size());
+ for (ComrelNodeDescriptor next : childDescriptors) {
+ String hint = ComrelVisualIDRegistry.getType(next.getVisualID());
+ IAdaptable elementAdapter = new CanonicalElementAdapter(
+ next.getModelElement(), hint);
+ CreateViewRequest.ViewDescriptor descriptor = new CreateViewRequest.ViewDescriptor(
+ elementAdapter, Node.class, hint, ViewUtil.APPEND, false,
+ host().getDiagramPreferencesHint());
+ viewDescriptors.add(descriptor);
+ }
+
+ boolean changed = deleteViews(orphaned.iterator());
+ //
+ CreateViewRequest request = getCreateViewRequest(viewDescriptors);
+ Command cmd = getCreateViewCommand(request);
+ if (cmd != null && cmd.canExecute()) {
+ SetViewMutabilityCommand.makeMutable(
+ new EObjectAdapter(host().getNotationView())).execute();
+ executeCommand(cmd);
+ @SuppressWarnings("unchecked")
+ List<IAdaptable> nl = (List<IAdaptable>) request.getNewObject();
+ createdViews.addAll(nl);
+ }
+ if (changed || createdViews.size() > 0) {
+ postProcessRefreshSemantic(createdViews);
+ }
+ if (createdViews.size() > 1) {
+ // perform a layout of the container
+ DeferredLayoutCommand layoutCmd = new DeferredLayoutCommand(host()
+ .getEditingDomain(), createdViews, host());
+ executeCommand(new ICommandProxy(layoutCmd));
+ }
+
+ makeViewsImmutable(createdViews);
+ }
+}
diff --git a/org.eclipse.emf.refactor.comrel.diagram/src/comrel/diagram/edit/policies/SingleQueuedUnit6ItemSemanticEditPolicy.java b/org.eclipse.emf.refactor.comrel.diagram/src/comrel/diagram/edit/policies/SingleQueuedUnit6ItemSemanticEditPolicy.java
new file mode 100644
index 0000000..0f473d2
--- /dev/null
+++ b/org.eclipse.emf.refactor.comrel.diagram/src/comrel/diagram/edit/policies/SingleQueuedUnit6ItemSemanticEditPolicy.java
@@ -0,0 +1,263 @@
+/*
+ *
+ */
+package comrel.diagram.edit.policies;
+
+import java.util.Iterator;
+
+import org.eclipse.emf.ecore.EAnnotation;
+import org.eclipse.gef.commands.Command;
+import org.eclipse.gmf.runtime.common.core.command.ICompositeCommand;
+import org.eclipse.gmf.runtime.diagram.core.commands.DeleteCommand;
+import org.eclipse.gmf.runtime.emf.commands.core.command.CompositeTransactionalCommand;
+import org.eclipse.gmf.runtime.emf.type.core.commands.DestroyElementCommand;
+import org.eclipse.gmf.runtime.emf.type.core.requests.CreateElementRequest;
+import org.eclipse.gmf.runtime.emf.type.core.requests.DestroyElementRequest;
+import org.eclipse.gmf.runtime.notation.Edge;
+import org.eclipse.gmf.runtime.notation.Node;
+import org.eclipse.gmf.runtime.notation.View;
+
+import comrel.diagram.edit.commands.MultiInputPort7CreateCommand;
+import comrel.diagram.edit.commands.SingleInputPort6CreateCommand;
+import comrel.diagram.edit.parts.AtomicUnit4EditPart;
+import comrel.diagram.edit.parts.CartesianQueuedUnit4EditPart;
+import comrel.diagram.edit.parts.ConditionalUnit4EditPart;
+import comrel.diagram.edit.parts.MultiFeatureUnit4EditPart;
+import comrel.diagram.edit.parts.MultiFilterUnit4EditPart;
+import comrel.diagram.edit.parts.MultiInputPort7EditPart;
+import comrel.diagram.edit.parts.MultiPortMappingEditPart;
+import comrel.diagram.edit.parts.MultiSinglePortMappingEditPart;
+import comrel.diagram.edit.parts.ParallelQueuedUnit5EditPart;
+import comrel.diagram.edit.parts.SequentialUnit4EditPart;
+import comrel.diagram.edit.parts.SingleFeatureUnit4EditPart;
+import comrel.diagram.edit.parts.SingleFilterUnit4EditPart;
+import comrel.diagram.edit.parts.SingleInputPort6EditPart;
+import comrel.diagram.edit.parts.SinglePortMappingEditPart;
+import comrel.diagram.edit.parts.SingleQueuedUnit5EditPart;
+import comrel.diagram.edit.parts.SingleQueuedUnitSingleQueuedUnitHelperUnitsCompartment5EditPart;
+import comrel.diagram.edit.parts.SingleQueuedUnitSingleQueuedUnitRefactoringUnitCompartment5EditPart;
+import comrel.diagram.part.ComrelVisualIDRegistry;
+import comrel.diagram.providers.ComrelElementTypes;
+
+/**
+ * @generated
+ */
+public class SingleQueuedUnit6ItemSemanticEditPolicy extends
+ ComrelBaseItemSemanticEditPolicy {
+
+ /**
+ * @generated
+ */
+ public SingleQueuedUnit6ItemSemanticEditPolicy() {
+ super(ComrelElementTypes.SingleQueuedUnit_3065);
+ }
+
+ /**
+ * @generated
+ */
+ protected Command getCreateCommand(CreateElementRequest req) {
+ if (ComrelElementTypes.SingleInputPort_3023 == req.getElementType()) {
+ return getGEFWrapper(new SingleInputPort6CreateCommand(req));
+ }
+ if (ComrelElementTypes.MultiInputPort_3024 == req.getElementType()) {
+ return getGEFWrapper(new MultiInputPort7CreateCommand(req));
+ }
+ return super.getCreateCommand(req);
+ }
+
+ /**
+ * @generated
+ */
+ protected Command getDestroyElementCommand(DestroyElementRequest req) {
+ View view = (View) getHost().getModel();
+ CompositeTransactionalCommand cmd = new CompositeTransactionalCommand(
+ getEditingDomain(), null);
+ cmd.setTransactionNestingEnabled(false);
+ EAnnotation annotation = view.getEAnnotation("Shortcut"); //$NON-NLS-1$
+ if (annotation == null) {
+ // there are indirectly referenced children, need extra commands: false
+ addDestroyChildNodesCommand(cmd);
+ addDestroyShortcutsCommand(cmd, view);
+ // delete host element
+ cmd.add(new DestroyElementCommand(req));
+ } else {
+ cmd.add(new DeleteCommand(getEditingDomain(), view));
+ }
+ return getGEFWrapper(cmd.reduce());
+ }
+
+ /**
+ * @generated
+ */
+ private void addDestroyChildNodesCommand(ICompositeCommand cmd) {
+ View view = (View) getHost().getModel();
+ for (Iterator<?> nit = view.getChildren().iterator(); nit.hasNext();) {
+ Node node = (Node) nit.next();
+ switch (ComrelVisualIDRegistry.getVisualID(node)) {
+ case SingleInputPort6EditPart.VISUAL_ID:
+ for (Iterator<?> it = node.getTargetEdges().iterator(); it
+ .hasNext();) {
+ Edge incomingLink = (Edge) it.next();
+ if (ComrelVisualIDRegistry.getVisualID(incomingLink) == SinglePortMappingEditPart.VISUAL_ID) {
+ DestroyElementRequest r = new DestroyElementRequest(
+ incomingLink.getElement(), false);
+ cmd.add(new DestroyElementCommand(r));
+ cmd.add(new DeleteCommand(getEditingDomain(),
+ incomingLink));
+ continue;
+ }
+ if (ComrelVisualIDRegistry.getVisualID(incomingLink) == MultiSinglePortMappingEditPart.VISUAL_ID) {
+ DestroyElementRequest r = new DestroyElementRequest(
+ incomingLink.getElement(), false);
+ cmd.add(new DestroyElementCommand(r));
+ cmd.add(new DeleteCommand(getEditingDomain(),
+ incomingLink));
+ continue;
+ }
+ }
+ for (Iterator<?> it = node.getSourceEdges().iterator(); it
+ .hasNext();) {
+ Edge outgoingLink = (Edge) it.next();
+ if (ComrelVisualIDRegistry.getVisualID(outgoingLink) == SinglePortMappingEditPart.VISUAL_ID) {
+ DestroyElementRequest r = new DestroyElementRequest(
+ outgoingLink.getElement(), false);
+ cmd.add(new DestroyElementCommand(r));
+ cmd.add(new DeleteCommand(getEditingDomain(),
+ outgoingLink));
+ continue;
+ }
+ }
+ cmd.add(new DestroyElementCommand(new DestroyElementRequest(
+ getEditingDomain(), node.getElement(), false))); // directlyOwned: true
+ // don't need explicit deletion of node as parent's view deletion would clean child views as well
+ // cmd.add(new org.eclipse.gmf.runtime.diagram.core.commands.DeleteCommand(getEditingDomain(), node));
+ break;
+ case MultiInputPort7EditPart.VISUAL_ID:
+ for (Iterator<?> it = node.getTargetEdges().iterator(); it
+ .hasNext();) {
+ Edge incomingLink = (Edge) it.next();
+ if (ComrelVisualIDRegistry.getVisualID(incomingLink) == MultiPortMappingEditPart.VISUAL_ID) {
+ DestroyElementRequest r = new DestroyElementRequest(
+ incomingLink.getElement(), false);
+ cmd.add(new DestroyElementCommand(r));
+ cmd.add(new DeleteCommand(getEditingDomain(),
+ incomingLink));
+ continue;
+ }
+ }
+ for (Iterator<?> it = node.getSourceEdges().iterator(); it
+ .hasNext();) {
+ Edge outgoingLink = (Edge) it.next();
+ if (ComrelVisualIDRegistry.getVisualID(outgoingLink) == MultiPortMappingEditPart.VISUAL_ID) {
+ DestroyElementRequest r = new DestroyElementRequest(
+ outgoingLink.getElement(), false);
+ cmd.add(new DestroyElementCommand(r));
+ cmd.add(new DeleteCommand(getEditingDomain(),
+ outgoingLink));
+ continue;
+ }
+ if (ComrelVisualIDRegistry.getVisualID(outgoingLink) == MultiSinglePortMappingEditPart.VISUAL_ID) {
+ DestroyElementRequest r = new DestroyElementRequest(
+ outgoingLink.getElement(), false);
+ cmd.add(new DestroyElementCommand(r));
+ cmd.add(new DeleteCommand(getEditingDomain(),
+ outgoingLink));
+ continue;
+ }
+ }
+ cmd.add(new DestroyElementCommand(new DestroyElementRequest(
+ getEditingDomain(), node.getElement(), false))); // directlyOwned: true
+ // don't need explicit deletion of node as parent's view deletion would clean child views as well
+ // cmd.add(new org.eclipse.gmf.runtime.diagram.core.commands.DeleteCommand(getEditingDomain(), node));
+ break;
+ case SingleQueuedUnitSingleQueuedUnitHelperUnitsCompartment5EditPart.VISUAL_ID:
+ for (Iterator<?> cit = node.getChildren().iterator(); cit
+ .hasNext();) {
+ Node cnode = (Node) cit.next();
+ switch (ComrelVisualIDRegistry.getVisualID(cnode)) {
+ case SingleFeatureUnit4EditPart.VISUAL_ID:
+ cmd.add(new DestroyElementCommand(
+ new DestroyElementRequest(getEditingDomain(),
+ cnode.getElement(), false))); // directlyOwned: true
+ // don't need explicit deletion of cnode as parent's view deletion would clean child views as well
+ // cmd.add(new org.eclipse.gmf.runtime.diagram.core.commands.DeleteCommand(getEditingDomain(), cnode));
+ break;
+ case MultiFeatureUnit4EditPart.VISUAL_ID:
+ cmd.add(new DestroyElementCommand(
+ new DestroyElementRequest(getEditingDomain(),
+ cnode.getElement(), false))); // directlyOwned: true
+ // don't need explicit deletion of cnode as parent's view deletion would clean child views as well
+ // cmd.add(new org.eclipse.gmf.runtime.diagram.core.commands.DeleteCommand(getEditingDomain(), cnode));
+ break;
+ case SingleFilterUnit4EditPart.VISUAL_ID:
+ cmd.add(new DestroyElementCommand(
+ new DestroyElementRequest(getEditingDomain(),
+ cnode.getElement(), false))); // directlyOwned: true
+ // don't need explicit deletion of cnode as parent's view deletion would clean child views as well
+ // cmd.add(new org.eclipse.gmf.runtime.diagram.core.commands.DeleteCommand(getEditingDomain(), cnode));
+ break;
+ case MultiFilterUnit4EditPart.VISUAL_ID:
+ cmd.add(new DestroyElementCommand(
+ new DestroyElementRequest(getEditingDomain(),
+ cnode.getElement(), false))); // directlyOwned: true
+ // don't need explicit deletion of cnode as parent's view deletion would clean child views as well
+ // cmd.add(new org.eclipse.gmf.runtime.diagram.core.commands.DeleteCommand(getEditingDomain(), cnode));
+ break;
+ }
+ }
+ break;
+ case SingleQueuedUnitSingleQueuedUnitRefactoringUnitCompartment5EditPart.VISUAL_ID:
+ for (Iterator<?> cit = node.getChildren().iterator(); cit
+ .hasNext();) {
+ Node cnode = (Node) cit.next();
+ switch (ComrelVisualIDRegistry.getVisualID(cnode)) {
+ case CartesianQueuedUnit4EditPart.VISUAL_ID:
+ cmd.add(new DestroyElementCommand(
+ new DestroyElementRequest(getEditingDomain(),
+ cnode.getElement(), false))); // directlyOwned: true
+ // don't need explicit deletion of cnode as parent's view deletion would clean child views as well
+ // cmd.add(new org.eclipse.gmf.runtime.diagram.core.commands.DeleteCommand(getEditingDomain(), cnode));
+ break;
+ case ParallelQueuedUnit5EditPart.VISUAL_ID:
+ cmd.add(new DestroyElementCommand(
+ new DestroyElementRequest(getEditingDomain(),
+ cnode.getElement(), false))); // directlyOwned: true
+ // don't need explicit deletion of cnode as parent's view deletion would clean child views as well
+ // cmd.add(new org.eclipse.gmf.runtime.diagram.core.commands.DeleteCommand(getEditingDomain(), cnode));
+ break;
+ case SingleQueuedUnit5EditPart.VISUAL_ID:
+ cmd.add(new DestroyElementCommand(
+ new DestroyElementRequest(getEditingDomain(),
+ cnode.getElement(), false))); // directlyOwned: true
+ // don't need explicit deletion of cnode as parent's view deletion would clean child views as well
+ // cmd.add(new org.eclipse.gmf.runtime.diagram.core.commands.DeleteCommand(getEditingDomain(), cnode));
+ break;
+ case SequentialUnit4EditPart.VISUAL_ID:
+ cmd.add(new DestroyElementCommand(
+ new DestroyElementRequest(getEditingDomain(),
+ cnode.getElement(), false))); // directlyOwned: true
+ // don't need explicit deletion of cnode as parent's view deletion would clean child views as well
+ // cmd.add(new org.eclipse.gmf.runtime.diagram.core.commands.DeleteCommand(getEditingDomain(), cnode));
+ break;
+ case ConditionalUnit4EditPart.VISUAL_ID:
+ cmd.add(new DestroyElementCommand(
+ new DestroyElementRequest(getEditingDomain(),
+ cnode.getElement(), false))); // directlyOwned: true
+ // don't need explicit deletion of cnode as parent's view deletion would clean child views as well
+ // cmd.add(new org.eclipse.gmf.runtime.diagram.core.commands.DeleteCommand(getEditingDomain(), cnode));
+ break;
+ case AtomicUnit4EditPart.VISUAL_ID:
+ cmd.add(new DestroyElementCommand(
+ new DestroyElementRequest(getEditingDomain(),
+ cnode.getElement(), false))); // directlyOwned: true
+ // don't need explicit deletion of cnode as parent's view deletion would clean child views as well
+ // cmd.add(new org.eclipse.gmf.runtime.diagram.core.commands.DeleteCommand(getEditingDomain(), cnode));
+ break;
+ }
+ }
+ break;
+ }
+ }
+ }
+
+}
diff --git a/org.eclipse.emf.refactor.comrel.diagram/src/comrel/diagram/edit/policies/SingleQueuedUnit7CanonicalEditPolicy.java b/org.eclipse.emf.refactor.comrel.diagram/src/comrel/diagram/edit/policies/SingleQueuedUnit7CanonicalEditPolicy.java
new file mode 100644
index 0000000..a1f4cd6
--- /dev/null
+++ b/org.eclipse.emf.refactor.comrel.diagram/src/comrel/diagram/edit/policies/SingleQueuedUnit7CanonicalEditPolicy.java
@@ -0,0 +1,178 @@
+/*
+ *
+ */
+package comrel.diagram.edit.policies;
+
+import java.util.ArrayList;
+import java.util.Collection;
+import java.util.HashSet;
+import java.util.Iterator;
+import java.util.LinkedList;
+import java.util.List;
+import java.util.Set;
+
+import org.eclipse.core.runtime.IAdaptable;
+import org.eclipse.emf.ecore.EObject;
+import org.eclipse.emf.ecore.EStructuralFeature;
+import org.eclipse.gef.commands.Command;
+import org.eclipse.gmf.runtime.diagram.core.util.ViewUtil;
+import org.eclipse.gmf.runtime.diagram.ui.commands.DeferredLayoutCommand;
+import org.eclipse.gmf.runtime.diagram.ui.commands.ICommandProxy;
+import org.eclipse.gmf.runtime.diagram.ui.commands.SetViewMutabilityCommand;
+import org.eclipse.gmf.runtime.diagram.ui.editpolicies.CanonicalEditPolicy;
+import org.eclipse.gmf.runtime.diagram.ui.requests.CreateViewRequest;
+import org.eclipse.gmf.runtime.emf.core.util.EObjectAdapter;
+import org.eclipse.gmf.runtime.notation.Node;
+import org.eclipse.gmf.runtime.notation.View;
+
+import comrel.ComrelPackage;
+import comrel.diagram.edit.parts.MultiInputPort7EditPart;
+import comrel.diagram.edit.parts.SingleInputPort6EditPart;
+import comrel.diagram.part.ComrelDiagramUpdater;
+import comrel.diagram.part.ComrelNodeDescriptor;
+import comrel.diagram.part.ComrelVisualIDRegistry;
+
+/**
+ * @generated
+ */
+public class SingleQueuedUnit7CanonicalEditPolicy extends CanonicalEditPolicy {
+
+ /**
+ * @generated
+ */
+ private Set<EStructuralFeature> myFeaturesToSynchronize;
+
+ /**
+ * @generated
+ */
+ protected Set getFeaturesToSynchronize() {
+ if (myFeaturesToSynchronize == null) {
+ myFeaturesToSynchronize = new HashSet<EStructuralFeature>();
+ myFeaturesToSynchronize.add(ComrelPackage.eINSTANCE
+ .getSingleQueuedUnit_SingleInputPorts());
+ myFeaturesToSynchronize.add(ComrelPackage.eINSTANCE
+ .getSingleQueuedUnit_MultiInputPort());
+ }
+ return myFeaturesToSynchronize;
+ }
+
+ /**
+ * @generated
+ */
+ @SuppressWarnings("rawtypes")
+ protected List getSemanticChildrenList() {
+ View viewObject = (View) getHost().getModel();
+ LinkedList<EObject> result = new LinkedList<EObject>();
+ List<ComrelNodeDescriptor> childDescriptors = ComrelDiagramUpdater
+ .getSingleQueuedUnit_3067SemanticChildren(viewObject);
+ for (ComrelNodeDescriptor d : childDescriptors) {
+ result.add(d.getModelElement());
+ }
+ return result;
+ }
+
+ /**
+ * @generated
+ */
+ protected boolean isOrphaned(Collection<EObject> semanticChildren,
+ final View view) {
+ return isMyDiagramElement(view)
+ && !semanticChildren.contains(view.getElement());
+ }
+
+ /**
+ * @generated
+ */
+ private boolean isMyDiagramElement(View view) {
+ int visualID = ComrelVisualIDRegistry.getVisualID(view);
+ return visualID == SingleInputPort6EditPart.VISUAL_ID
+ || visualID == MultiInputPort7EditPart.VISUAL_ID;
+ }
+
+ /**
+ * @generated
+ */
+ protected void refreshSemantic() {
+ if (resolveSemanticElement() == null) {
+ return;
+ }
+ LinkedList<IAdaptable> createdViews = new LinkedList<IAdaptable>();
+ List<ComrelNodeDescriptor> childDescriptors = ComrelDiagramUpdater
+ .getSingleQueuedUnit_3067SemanticChildren((View) getHost()
+ .getModel());
+ LinkedList<View> orphaned = new LinkedList<View>();
+ // we care to check only views we recognize as ours
+ LinkedList<View> knownViewChildren = new LinkedList<View>();
+ for (View v : getViewChildren()) {
+ if (isMyDiagramElement(v)) {
+ knownViewChildren.add(v);
+ }
+ }
+ // alternative to #cleanCanonicalSemanticChildren(getViewChildren(), semanticChildren)
+ //
+ // iteration happens over list of desired semantic elements, trying to find best matching View, while original CEP
+ // iterates views, potentially losing view (size/bounds) information - i.e. if there are few views to reference same EObject, only last one
+ // to answer isOrphaned == true will be used for the domain element representation, see #cleanCanonicalSemanticChildren()
+ for (Iterator<ComrelNodeDescriptor> descriptorsIterator = childDescriptors
+ .iterator(); descriptorsIterator.hasNext();) {
+ ComrelNodeDescriptor next = descriptorsIterator.next();
+ String hint = ComrelVisualIDRegistry.getType(next.getVisualID());
+ LinkedList<View> perfectMatch = new LinkedList<View>(); // both semanticElement and hint match that of NodeDescriptor
+ for (View childView : getViewChildren()) {
+ EObject semanticElement = childView.getElement();
+ if (next.getModelElement().equals(semanticElement)) {
+ if (hint.equals(childView.getType())) {
+ perfectMatch.add(childView);
+ // actually, can stop iteration over view children here, but
+ // may want to use not the first view but last one as a 'real' match (the way original CEP does
+ // with its trick with viewToSemanticMap inside #cleanCanonicalSemanticChildren
+ }
+ }
+ }
+ if (perfectMatch.size() > 0) {
+ descriptorsIterator.remove(); // precise match found no need to create anything for the NodeDescriptor
+ // use only one view (first or last?), keep rest as orphaned for further consideration
+ knownViewChildren.remove(perfectMatch.getFirst());
+ }
+ }
+ // those left in knownViewChildren are subject to removal - they are our diagram elements we didn't find match to,
+ // or those we have potential matches to, and thus need to be recreated, preserving size/location information.
+ orphaned.addAll(knownViewChildren);
+ //
+ ArrayList<CreateViewRequest.ViewDescriptor> viewDescriptors = new ArrayList<CreateViewRequest.ViewDescriptor>(
+ childDescriptors.size());
+ for (ComrelNodeDescriptor next : childDescriptors) {
+ String hint = ComrelVisualIDRegistry.getType(next.getVisualID());
+ IAdaptable elementAdapter = new CanonicalElementAdapter(
+ next.getModelElement(), hint);
+ CreateViewRequest.ViewDescriptor descriptor = new CreateViewRequest.ViewDescriptor(
+ elementAdapter, Node.class, hint, ViewUtil.APPEND, false,
+ host().getDiagramPreferencesHint());
+ viewDescriptors.add(descriptor);
+ }
+
+ boolean changed = deleteViews(orphaned.iterator());
+ //
+ CreateViewRequest request = getCreateViewRequest(viewDescriptors);
+ Command cmd = getCreateViewCommand(request);
+ if (cmd != null && cmd.canExecute()) {
+ SetViewMutabilityCommand.makeMutable(
+ new EObjectAdapter(host().getNotationView())).execute();
+ executeCommand(cmd);
+ @SuppressWarnings("unchecked")
+ List<IAdaptable> nl = (List<IAdaptable>) request.getNewObject();
+ createdViews.addAll(nl);
+ }
+ if (changed || createdViews.size() > 0) {
+ postProcessRefreshSemantic(createdViews);
+ }
+ if (createdViews.size() > 1) {
+ // perform a layout of the container
+ DeferredLayoutCommand layoutCmd = new DeferredLayoutCommand(host()
+ .getEditingDomain(), createdViews, host());
+ executeCommand(new ICommandProxy(layoutCmd));
+ }
+
+ makeViewsImmutable(createdViews);
+ }
+}
diff --git a/org.eclipse.emf.refactor.comrel.diagram/src/comrel/diagram/edit/policies/SingleQueuedUnit7ItemSemanticEditPolicy.java b/org.eclipse.emf.refactor.comrel.diagram/src/comrel/diagram/edit/policies/SingleQueuedUnit7ItemSemanticEditPolicy.java
new file mode 100644
index 0000000..abad04f
--- /dev/null
+++ b/org.eclipse.emf.refactor.comrel.diagram/src/comrel/diagram/edit/policies/SingleQueuedUnit7ItemSemanticEditPolicy.java
@@ -0,0 +1,263 @@
+/*
+ *
+ */
+package comrel.diagram.edit.policies;
+
+import java.util.Iterator;
+
+import org.eclipse.emf.ecore.EAnnotation;
+import org.eclipse.gef.commands.Command;
+import org.eclipse.gmf.runtime.common.core.command.ICompositeCommand;
+import org.eclipse.gmf.runtime.diagram.core.commands.DeleteCommand;
+import org.eclipse.gmf.runtime.emf.commands.core.command.CompositeTransactionalCommand;
+import org.eclipse.gmf.runtime.emf.type.core.commands.DestroyElementCommand;
+import org.eclipse.gmf.runtime.emf.type.core.requests.CreateElementRequest;
+import org.eclipse.gmf.runtime.emf.type.core.requests.DestroyElementRequest;
+import org.eclipse.gmf.runtime.notation.Edge;
+import org.eclipse.gmf.runtime.notation.Node;
+import org.eclipse.gmf.runtime.notation.View;
+
+import comrel.diagram.edit.commands.MultiInputPort7CreateCommand;
+import comrel.diagram.edit.commands.SingleInputPort6CreateCommand;
+import comrel.diagram.edit.parts.AtomicUnit4EditPart;
+import comrel.diagram.edit.parts.CartesianQueuedUnit4EditPart;
+import comrel.diagram.edit.parts.ConditionalUnit4EditPart;
+import comrel.diagram.edit.parts.MultiFeatureUnit4EditPart;
+import comrel.diagram.edit.parts.MultiFilterUnit4EditPart;
+import comrel.diagram.edit.parts.MultiInputPort7EditPart;
+import comrel.diagram.edit.parts.MultiPortMappingEditPart;
+import comrel.diagram.edit.parts.MultiSinglePortMappingEditPart;
+import comrel.diagram.edit.parts.ParallelQueuedUnit5EditPart;
+import comrel.diagram.edit.parts.SequentialUnit4EditPart;
+import comrel.diagram.edit.parts.SingleFeatureUnit4EditPart;
+import comrel.diagram.edit.parts.SingleFilterUnit4EditPart;
+import comrel.diagram.edit.parts.SingleInputPort6EditPart;
+import comrel.diagram.edit.parts.SinglePortMappingEditPart;
+import comrel.diagram.edit.parts.SingleQueuedUnit5EditPart;
+import comrel.diagram.edit.parts.SingleQueuedUnitSingleQueuedUnitHelperUnitsCompartment6EditPart;
+import comrel.diagram.edit.parts.SingleQueuedUnitSingleQueuedUnitRefactoringUnitCompartment6EditPart;
+import comrel.diagram.part.ComrelVisualIDRegistry;
+import comrel.diagram.providers.ComrelElementTypes;
+
+/**
+ * @generated
+ */
+public class SingleQueuedUnit7ItemSemanticEditPolicy extends
+ ComrelBaseItemSemanticEditPolicy {
+
+ /**
+ * @generated
+ */
+ public SingleQueuedUnit7ItemSemanticEditPolicy() {
+ super(ComrelElementTypes.SingleQueuedUnit_3067);
+ }
+
+ /**
+ * @generated
+ */
+ protected Command getCreateCommand(CreateElementRequest req) {
+ if (ComrelElementTypes.SingleInputPort_3023 == req.getElementType()) {
+ return getGEFWrapper(new SingleInputPort6CreateCommand(req));
+ }
+ if (ComrelElementTypes.MultiInputPort_3024 == req.getElementType()) {
+ return getGEFWrapper(new MultiInputPort7CreateCommand(req));
+ }
+ return super.getCreateCommand(req);
+ }
+
+ /**
+ * @generated
+ */
+ protected Command getDestroyElementCommand(DestroyElementRequest req) {
+ View view = (View) getHost().getModel();
+ CompositeTransactionalCommand cmd = new CompositeTransactionalCommand(
+ getEditingDomain(), null);
+ cmd.setTransactionNestingEnabled(false);
+ EAnnotation annotation = view.getEAnnotation("Shortcut"); //$NON-NLS-1$
+ if (annotation == null) {
+ // there are indirectly referenced children, need extra commands: false
+ addDestroyChildNodesCommand(cmd);
+ addDestroyShortcutsCommand(cmd, view);
+ // delete host element
+ cmd.add(new DestroyElementCommand(req));
+ } else {
+ cmd.add(new DeleteCommand(getEditingDomain(), view));
+ }
+ return getGEFWrapper(cmd.reduce());
+ }
+
+ /**
+ * @generated
+ */
+ private void addDestroyChildNodesCommand(ICompositeCommand cmd) {
+ View view = (View) getHost().getModel();
+ for (Iterator<?> nit = view.getChildren().iterator(); nit.hasNext();) {
+ Node node = (Node) nit.next();
+ switch (ComrelVisualIDRegistry.getVisualID(node)) {
+ case SingleInputPort6EditPart.VISUAL_ID:
+ for (Iterator<?> it = node.getTargetEdges().iterator(); it
+ .hasNext();) {
+ Edge incomingLink = (Edge) it.next();
+ if (ComrelVisualIDRegistry.getVisualID(incomingLink) == SinglePortMappingEditPart.VISUAL_ID) {
+ DestroyElementRequest r = new DestroyElementRequest(
+ incomingLink.getElement(), false);
+ cmd.add(new DestroyElementCommand(r));
+ cmd.add(new DeleteCommand(getEditingDomain(),
+ incomingLink));
+ continue;
+ }
+ if (ComrelVisualIDRegistry.getVisualID(incomingLink) == MultiSinglePortMappingEditPart.VISUAL_ID) {
+ DestroyElementRequest r = new DestroyElementRequest(
+ incomingLink.getElement(), false);
+ cmd.add(new DestroyElementCommand(r));
+ cmd.add(new DeleteCommand(getEditingDomain(),
+ incomingLink));
+ continue;
+ }
+ }
+ for (Iterator<?> it = node.getSourceEdges().iterator(); it
+ .hasNext();) {
+ Edge outgoingLink = (Edge) it.next();
+ if (ComrelVisualIDRegistry.getVisualID(outgoingLink) == SinglePortMappingEditPart.VISUAL_ID) {
+ DestroyElementRequest r = new DestroyElementRequest(
+ outgoingLink.getElement(), false);
+ cmd.add(new DestroyElementCommand(r));
+ cmd.add(new DeleteCommand(getEditingDomain(),
+ outgoingLink));
+ continue;
+ }
+ }
+ cmd.add(new DestroyElementCommand(new DestroyElementRequest(
+ getEditingDomain(), node.getElement(), false))); // directlyOwned: true
+ // don't need explicit deletion of node as parent's view deletion would clean child views as well
+ // cmd.add(new org.eclipse.gmf.runtime.diagram.core.commands.DeleteCommand(getEditingDomain(), node));
+ break;
+ case MultiInputPort7EditPart.VISUAL_ID:
+ for (Iterator<?> it = node.getTargetEdges().iterator(); it
+ .hasNext();) {
+ Edge incomingLink = (Edge) it.next();
+ if (ComrelVisualIDRegistry.getVisualID(incomingLink) == MultiPortMappingEditPart.VISUAL_ID) {
+ DestroyElementRequest r = new DestroyElementRequest(
+ incomingLink.getElement(), false);
+ cmd.add(new DestroyElementCommand(r));
+ cmd.add(new DeleteCommand(getEditingDomain(),
+ incomingLink));
+ continue;
+ }
+ }
+ for (Iterator<?> it = node.getSourceEdges().iterator(); it
+ .hasNext();) {
+ Edge outgoingLink = (Edge) it.next();
+ if (ComrelVisualIDRegistry.getVisualID(outgoingLink) == MultiPortMappingEditPart.VISUAL_ID) {
+ DestroyElementRequest r = new DestroyElementRequest(
+ outgoingLink.getElement(), false);
+ cmd.add(new DestroyElementCommand(r));
+ cmd.add(new DeleteCommand(getEditingDomain(),
+ outgoingLink));
+ continue;
+ }
+ if (ComrelVisualIDRegistry.getVisualID(outgoingLink) == MultiSinglePortMappingEditPart.VISUAL_ID) {
+ DestroyElementRequest r = new DestroyElementRequest(
+ outgoingLink.getElement(), false);
+ cmd.add(new DestroyElementCommand(r));
+ cmd.add(new DeleteCommand(getEditingDomain(),
+ outgoingLink));
+ continue;
+ }
+ }
+ cmd.add(new DestroyElementCommand(new DestroyElementRequest(
+ getEditingDomain(), node.getElement(), false))); // directlyOwned: true
+ // don't need explicit deletion of node as parent's view deletion would clean child views as well
+ // cmd.add(new org.eclipse.gmf.runtime.diagram.core.commands.DeleteCommand(getEditingDomain(), node));
+ break;
+ case SingleQueuedUnitSingleQueuedUnitHelperUnitsCompartment6EditPart.VISUAL_ID:
+ for (Iterator<?> cit = node.getChildren().iterator(); cit
+ .hasNext();) {
+ Node cnode = (Node) cit.next();
+ switch (ComrelVisualIDRegistry.getVisualID(cnode)) {
+ case SingleFeatureUnit4EditPart.VISUAL_ID:
+ cmd.add(new DestroyElementCommand(
+ new DestroyElementRequest(getEditingDomain(),
+ cnode.getElement(), false))); // directlyOwned: true
+ // don't need explicit deletion of cnode as parent's view deletion would clean child views as well
+ // cmd.add(new org.eclipse.gmf.runtime.diagram.core.commands.DeleteCommand(getEditingDomain(), cnode));
+ break;
+ case MultiFeatureUnit4EditPart.VISUAL_ID:
+ cmd.add(new DestroyElementCommand(
+ new DestroyElementRequest(getEditingDomain(),
+ cnode.getElement(), false))); // directlyOwned: true
+ // don't need explicit deletion of cnode as parent's view deletion would clean child views as well
+ // cmd.add(new org.eclipse.gmf.runtime.diagram.core.commands.DeleteCommand(getEditingDomain(), cnode));
+ break;
+ case SingleFilterUnit4EditPart.VISUAL_ID:
+ cmd.add(new DestroyElementCommand(
+ new DestroyElementRequest(getEditingDomain(),
+ cnode.getElement(), false))); // directlyOwned: true
+ // don't need explicit deletion of cnode as parent's view deletion would clean child views as well
+ // cmd.add(new org.eclipse.gmf.runtime.diagram.core.commands.DeleteCommand(getEditingDomain(), cnode));
+ break;
+ case MultiFilterUnit4EditPart.VISUAL_ID:
+ cmd.add(new DestroyElementCommand(
+ new DestroyElementRequest(getEditingDomain(),
+ cnode.getElement(), false))); // directlyOwned: true
+ // don't need explicit deletion of cnode as parent's view deletion would clean child views as well
+ // cmd.add(new org.eclipse.gmf.runtime.diagram.core.commands.DeleteCommand(getEditingDomain(), cnode));
+ break;
+ }
+ }
+ break;
+ case SingleQueuedUnitSingleQueuedUnitRefactoringUnitCompartment6EditPart.VISUAL_ID:
+ for (Iterator<?> cit = node.getChildren().iterator(); cit
+ .hasNext();) {
+ Node cnode = (Node) cit.next();
+ switch (ComrelVisualIDRegistry.getVisualID(cnode)) {
+ case CartesianQueuedUnit4EditPart.VISUAL_ID:
+ cmd.add(new DestroyElementCommand(
+ new DestroyElementRequest(getEditingDomain(),
+ cnode.getElement(), false))); // directlyOwned: true
+ // don't need explicit deletion of cnode as parent's view deletion would clean child views as well
+ // cmd.add(new org.eclipse.gmf.runtime.diagram.core.commands.DeleteCommand(getEditingDomain(), cnode));
+ break;
+ case ParallelQueuedUnit5EditPart.VISUAL_ID:
+ cmd.add(new DestroyElementCommand(
+ new DestroyElementRequest(getEditingDomain(),
+ cnode.getElement(), false))); // directlyOwned: true
+ // don't need explicit deletion of cnode as parent's view deletion would clean child views as well
+ // cmd.add(new org.eclipse.gmf.runtime.diagram.core.commands.DeleteCommand(getEditingDomain(), cnode));
+ break;
+ case SingleQueuedUnit5EditPart.VISUAL_ID:
+ cmd.add(new DestroyElementCommand(
+ new DestroyElementRequest(getEditingDomain(),
+ cnode.getElement(), false))); // directlyOwned: true
+ // don't need explicit deletion of cnode as parent's view deletion would clean child views as well
+ // cmd.add(new org.eclipse.gmf.runtime.diagram.core.commands.DeleteCommand(getEditingDomain(), cnode));
+ break;
+ case SequentialUnit4EditPart.VISUAL_ID:
+ cmd.add(new DestroyElementCommand(
+ new DestroyElementRequest(getEditingDomain(),
+ cnode.getElement(), false))); // directlyOwned: true
+ // don't need explicit deletion of cnode as parent's view deletion would clean child views as well
+ // cmd.add(new org.eclipse.gmf.runtime.diagram.core.commands.DeleteCommand(getEditingDomain(), cnode));
+ break;
+ case ConditionalUnit4EditPart.VISUAL_ID:
+ cmd.add(new DestroyElementCommand(
+ new DestroyElementRequest(getEditingDomain(),
+ cnode.getElement(), false))); // directlyOwned: true
+ // don't need explicit deletion of cnode as parent's view deletion would clean child views as well
+ // cmd.add(new org.eclipse.gmf.runtime.diagram.core.commands.DeleteCommand(getEditingDomain(), cnode));
+ break;
+ case AtomicUnit4EditPart.VISUAL_ID:
+ cmd.add(new DestroyElementCommand(
+ new DestroyElementRequest(getEditingDomain(),
+ cnode.getElement(), false))); // directlyOwned: true
+ // don't need explicit deletion of cnode as parent's view deletion would clean child views as well
+ // cmd.add(new org.eclipse.gmf.runtime.diagram.core.commands.DeleteCommand(getEditingDomain(), cnode));
+ break;
+ }
+ }
+ break;
+ }
+ }
+ }
+
+}
diff --git a/org.eclipse.emf.refactor.comrel.diagram/src/comrel/diagram/edit/policies/SingleQueuedUnitCanonicalEditPolicy.java b/org.eclipse.emf.refactor.comrel.diagram/src/comrel/diagram/edit/policies/SingleQueuedUnitCanonicalEditPolicy.java
new file mode 100644
index 0000000..7fff04c
--- /dev/null
+++ b/org.eclipse.emf.refactor.comrel.diagram/src/comrel/diagram/edit/policies/SingleQueuedUnitCanonicalEditPolicy.java
@@ -0,0 +1,178 @@
+/*
+ *
+ */
+package comrel.diagram.edit.policies;
+
+import java.util.ArrayList;
+import java.util.Collection;
+import java.util.HashSet;
+import java.util.Iterator;
+import java.util.LinkedList;
+import java.util.List;
+import java.util.Set;
+
+import org.eclipse.core.runtime.IAdaptable;
+import org.eclipse.emf.ecore.EObject;
+import org.eclipse.emf.ecore.EStructuralFeature;
+import org.eclipse.gef.commands.Command;
+import org.eclipse.gmf.runtime.diagram.core.util.ViewUtil;
+import org.eclipse.gmf.runtime.diagram.ui.commands.DeferredLayoutCommand;
+import org.eclipse.gmf.runtime.diagram.ui.commands.ICommandProxy;
+import org.eclipse.gmf.runtime.diagram.ui.commands.SetViewMutabilityCommand;
+import org.eclipse.gmf.runtime.diagram.ui.editpolicies.CanonicalEditPolicy;
+import org.eclipse.gmf.runtime.diagram.ui.requests.CreateViewRequest;
+import org.eclipse.gmf.runtime.emf.core.util.EObjectAdapter;
+import org.eclipse.gmf.runtime.notation.Node;
+import org.eclipse.gmf.runtime.notation.View;
+
+import comrel.ComrelPackage;
+import comrel.diagram.edit.parts.MultiInputPort7EditPart;
+import comrel.diagram.edit.parts.SingleInputPort6EditPart;
+import comrel.diagram.part.ComrelDiagramUpdater;
+import comrel.diagram.part.ComrelNodeDescriptor;
+import comrel.diagram.part.ComrelVisualIDRegistry;
+
+/**
+ * @generated
+ */
+public class SingleQueuedUnitCanonicalEditPolicy extends CanonicalEditPolicy {
+
+ /**
+ * @generated
+ */
+ private Set<EStructuralFeature> myFeaturesToSynchronize;
+
+ /**
+ * @generated
+ */
+ protected Set getFeaturesToSynchronize() {
+ if (myFeaturesToSynchronize == null) {
+ myFeaturesToSynchronize = new HashSet<EStructuralFeature>();
+ myFeaturesToSynchronize.add(ComrelPackage.eINSTANCE
+ .getSingleQueuedUnit_SingleInputPorts());
+ myFeaturesToSynchronize.add(ComrelPackage.eINSTANCE
+ .getSingleQueuedUnit_MultiInputPort());
+ }
+ return myFeaturesToSynchronize;
+ }
+
+ /**
+ * @generated
+ */
+ @SuppressWarnings("rawtypes")
+ protected List getSemanticChildrenList() {
+ View viewObject = (View) getHost().getModel();
+ LinkedList<EObject> result = new LinkedList<EObject>();
+ List<ComrelNodeDescriptor> childDescriptors = ComrelDiagramUpdater
+ .getSingleQueuedUnit_2004SemanticChildren(viewObject);
+ for (ComrelNodeDescriptor d : childDescriptors) {
+ result.add(d.getModelElement());
+ }
+ return result;
+ }
+
+ /**
+ * @generated
+ */
+ protected boolean isOrphaned(Collection<EObject> semanticChildren,
+ final View view) {
+ return isMyDiagramElement(view)
+ && !semanticChildren.contains(view.getElement());
+ }
+
+ /**
+ * @generated
+ */
+ private boolean isMyDiagramElement(View view) {
+ int visualID = ComrelVisualIDRegistry.getVisualID(view);
+ return visualID == SingleInputPort6EditPart.VISUAL_ID
+ || visualID == MultiInputPort7EditPart.VISUAL_ID;
+ }
+
+ /**
+ * @generated
+ */
+ protected void refreshSemantic() {
+ if (resolveSemanticElement() == null) {
+ return;
+ }
+ LinkedList<IAdaptable> createdViews = new LinkedList<IAdaptable>();
+ List<ComrelNodeDescriptor> childDescriptors = ComrelDiagramUpdater
+ .getSingleQueuedUnit_2004SemanticChildren((View) getHost()
+ .getModel());
+ LinkedList<View> orphaned = new LinkedList<View>();
+ // we care to check only views we recognize as ours
+ LinkedList<View> knownViewChildren = new LinkedList<View>();
+ for (View v : getViewChildren()) {
+ if (isMyDiagramElement(v)) {
+ knownViewChildren.add(v);
+ }
+ }
+ // alternative to #cleanCanonicalSemanticChildren(getViewChildren(), semanticChildren)
+ //
+ // iteration happens over list of desired semantic elements, trying to find best matching View, while original CEP
+ // iterates views, potentially losing view (size/bounds) information - i.e. if there are few views to reference same EObject, only last one
+ // to answer isOrphaned == true will be used for the domain element representation, see #cleanCanonicalSemanticChildren()
+ for (Iterator<ComrelNodeDescriptor> descriptorsIterator = childDescriptors
+ .iterator(); descriptorsIterator.hasNext();) {
+ ComrelNodeDescriptor next = descriptorsIterator.next();
+ String hint = ComrelVisualIDRegistry.getType(next.getVisualID());
+ LinkedList<View> perfectMatch = new LinkedList<View>(); // both semanticElement and hint match that of NodeDescriptor
+ for (View childView : getViewChildren()) {
+ EObject semanticElement = childView.getElement();
+ if (next.getModelElement().equals(semanticElement)) {
+ if (hint.equals(childView.getType())) {
+ perfectMatch.add(childView);
+ // actually, can stop iteration over view children here, but
+ // may want to use not the first view but last one as a 'real' match (the way original CEP does
+ // with its trick with viewToSemanticMap inside #cleanCanonicalSemanticChildren
+ }
+ }
+ }
+ if (perfectMatch.size() > 0) {
+ descriptorsIterator.remove(); // precise match found no need to create anything for the NodeDescriptor
+ // use only one view (first or last?), keep rest as orphaned for further consideration
+ knownViewChildren.remove(perfectMatch.getFirst());
+ }
+ }
+ // those left in knownViewChildren are subject to removal - they are our diagram elements we didn't find match to,
+ // or those we have potential matches to, and thus need to be recreated, preserving size/location information.
+ orphaned.addAll(knownViewChildren);
+ //
+ ArrayList<CreateViewRequest.ViewDescriptor> viewDescriptors = new ArrayList<CreateViewRequest.ViewDescriptor>(
+ childDescriptors.size());
+ for (ComrelNodeDescriptor next : childDescriptors) {
+ String hint = ComrelVisualIDRegistry.getType(next.getVisualID());
+ IAdaptable elementAdapter = new CanonicalElementAdapter(
+ next.getModelElement(), hint);
+ CreateViewRequest.ViewDescriptor descriptor = new CreateViewRequest.ViewDescriptor(
+ elementAdapter, Node.class, hint, ViewUtil.APPEND, false,
+ host().getDiagramPreferencesHint());
+ viewDescriptors.add(descriptor);
+ }
+
+ boolean changed = deleteViews(orphaned.iterator());
+ //
+ CreateViewRequest request = getCreateViewRequest(viewDescriptors);
+ Command cmd = getCreateViewCommand(request);
+ if (cmd != null && cmd.canExecute()) {
+ SetViewMutabilityCommand.makeMutable(
+ new EObjectAdapter(host().getNotationView())).execute();
+ executeCommand(cmd);
+ @SuppressWarnings("unchecked")
+ List<IAdaptable> nl = (List<IAdaptable>) request.getNewObject();
+ createdViews.addAll(nl);
+ }
+ if (changed || createdViews.size() > 0) {
+ postProcessRefreshSemantic(createdViews);
+ }
+ if (createdViews.size() > 1) {
+ // perform a layout of the container
+ DeferredLayoutCommand layoutCmd = new DeferredLayoutCommand(host()
+ .getEditingDomain(), createdViews, host());
+ executeCommand(new ICommandProxy(layoutCmd));
+ }
+
+ makeViewsImmutable(createdViews);
+ }
+}
diff --git a/org.eclipse.emf.refactor.comrel.diagram/src/comrel/diagram/edit/policies/SingleQueuedUnitItemSemanticEditPolicy.java b/org.eclipse.emf.refactor.comrel.diagram/src/comrel/diagram/edit/policies/SingleQueuedUnitItemSemanticEditPolicy.java
new file mode 100644
index 0000000..120565a
--- /dev/null
+++ b/org.eclipse.emf.refactor.comrel.diagram/src/comrel/diagram/edit/policies/SingleQueuedUnitItemSemanticEditPolicy.java
@@ -0,0 +1,263 @@
+/*
+ *
+ */
+package comrel.diagram.edit.policies;
+
+import java.util.Iterator;
+
+import org.eclipse.emf.ecore.EAnnotation;
+import org.eclipse.gef.commands.Command;
+import org.eclipse.gmf.runtime.common.core.command.ICompositeCommand;
+import org.eclipse.gmf.runtime.diagram.core.commands.DeleteCommand;
+import org.eclipse.gmf.runtime.emf.commands.core.command.CompositeTransactionalCommand;
+import org.eclipse.gmf.runtime.emf.type.core.commands.DestroyElementCommand;
+import org.eclipse.gmf.runtime.emf.type.core.requests.CreateElementRequest;
+import org.eclipse.gmf.runtime.emf.type.core.requests.DestroyElementRequest;
+import org.eclipse.gmf.runtime.notation.Edge;
+import org.eclipse.gmf.runtime.notation.Node;
+import org.eclipse.gmf.runtime.notation.View;
+
+import comrel.diagram.edit.commands.MultiInputPort7CreateCommand;
+import comrel.diagram.edit.commands.SingleInputPort6CreateCommand;
+import comrel.diagram.edit.parts.AtomicUnit4EditPart;
+import comrel.diagram.edit.parts.CartesianQueuedUnit4EditPart;
+import comrel.diagram.edit.parts.ConditionalUnit4EditPart;
+import comrel.diagram.edit.parts.MultiFeatureUnit4EditPart;
+import comrel.diagram.edit.parts.MultiFilterUnit4EditPart;
+import comrel.diagram.edit.parts.MultiInputPort7EditPart;
+import comrel.diagram.edit.parts.MultiPortMappingEditPart;
+import comrel.diagram.edit.parts.MultiSinglePortMappingEditPart;
+import comrel.diagram.edit.parts.ParallelQueuedUnit5EditPart;
+import comrel.diagram.edit.parts.SequentialUnit4EditPart;
+import comrel.diagram.edit.parts.SingleFeatureUnit4EditPart;
+import comrel.diagram.edit.parts.SingleFilterUnit4EditPart;
+import comrel.diagram.edit.parts.SingleInputPort6EditPart;
+import comrel.diagram.edit.parts.SinglePortMappingEditPart;
+import comrel.diagram.edit.parts.SingleQueuedUnit5EditPart;
+import comrel.diagram.edit.parts.SingleQueuedUnitSingleQueuedUnitHelperUnitsCompartment7EditPart;
+import comrel.diagram.edit.parts.SingleQueuedUnitSingleQueuedUnitRefactoringUnitCompartment7EditPart;
+import comrel.diagram.part.ComrelVisualIDRegistry;
+import comrel.diagram.providers.ComrelElementTypes;
+
+/**
+ * @generated
+ */
+public class SingleQueuedUnitItemSemanticEditPolicy extends
+ ComrelBaseItemSemanticEditPolicy {
+
+ /**
+ * @generated
+ */
+ public SingleQueuedUnitItemSemanticEditPolicy() {
+ super(ComrelElementTypes.SingleQueuedUnit_2004);
+ }
+
+ /**
+ * @generated
+ */
+ protected Command getCreateCommand(CreateElementRequest req) {
+ if (ComrelElementTypes.SingleInputPort_3023 == req.getElementType()) {
+ return getGEFWrapper(new SingleInputPort6CreateCommand(req));
+ }
+ if (ComrelElementTypes.MultiInputPort_3024 == req.getElementType()) {
+ return getGEFWrapper(new MultiInputPort7CreateCommand(req));
+ }
+ return super.getCreateCommand(req);
+ }
+
+ /**
+ * @generated
+ */
+ protected Command getDestroyElementCommand(DestroyElementRequest req) {
+ View view = (View) getHost().getModel();
+ CompositeTransactionalCommand cmd = new CompositeTransactionalCommand(
+ getEditingDomain(), null);
+ cmd.setTransactionNestingEnabled(false);
+ EAnnotation annotation = view.getEAnnotation("Shortcut"); //$NON-NLS-1$
+ if (annotation == null) {
+ // there are indirectly referenced children, need extra commands: false
+ addDestroyChildNodesCommand(cmd);
+ addDestroyShortcutsCommand(cmd, view);
+ // delete host element
+ cmd.add(new DestroyElementCommand(req));
+ } else {
+ cmd.add(new DeleteCommand(getEditingDomain(), view));
+ }
+ return getGEFWrapper(cmd.reduce());
+ }
+
+ /**
+ * @generated
+ */
+ private void addDestroyChildNodesCommand(ICompositeCommand cmd) {
+ View view = (View) getHost().getModel();
+ for (Iterator<?> nit = view.getChildren().iterator(); nit.hasNext();) {
+ Node node = (Node) nit.next();
+ switch (ComrelVisualIDRegistry.getVisualID(node)) {
+ case SingleInputPort6EditPart.VISUAL_ID:
+ for (Iterator<?> it = node.getTargetEdges().iterator(); it
+ .hasNext();) {
+ Edge incomingLink = (Edge) it.next();
+ if (ComrelVisualIDRegistry.getVisualID(incomingLink) == SinglePortMappingEditPart.VISUAL_ID) {
+ DestroyElementRequest r = new DestroyElementRequest(
+ incomingLink.getElement(), false);
+ cmd.add(new DestroyElementCommand(r));
+ cmd.add(new DeleteCommand(getEditingDomain(),
+ incomingLink));
+ continue;
+ }
+ if (ComrelVisualIDRegistry.getVisualID(incomingLink) == MultiSinglePortMappingEditPart.VISUAL_ID) {
+ DestroyElementRequest r = new DestroyElementRequest(
+ incomingLink.getElement(), false);
+ cmd.add(new DestroyElementCommand(r));
+ cmd.add(new DeleteCommand(getEditingDomain(),
+ incomingLink));
+ continue;
+ }
+ }
+ for (Iterator<?> it = node.getSourceEdges().iterator(); it
+ .hasNext();) {
+ Edge outgoingLink = (Edge) it.next();
+ if (ComrelVisualIDRegistry.getVisualID(outgoingLink) == SinglePortMappingEditPart.VISUAL_ID) {
+ DestroyElementRequest r = new DestroyElementRequest(
+ outgoingLink.getElement(), false);
+ cmd.add(new DestroyElementCommand(r));
+ cmd.add(new DeleteCommand(getEditingDomain(),
+ outgoingLink));
+ continue;
+ }
+ }
+ cmd.add(new DestroyElementCommand(new DestroyElementRequest(
+ getEditingDomain(), node.getElement(), false))); // directlyOwned: true
+ // don't need explicit deletion of node as parent's view deletion would clean child views as well
+ // cmd.add(new org.eclipse.gmf.runtime.diagram.core.commands.DeleteCommand(getEditingDomain(), node));
+ break;
+ case MultiInputPort7EditPart.VISUAL_ID:
+ for (Iterator<?> it = node.getTargetEdges().iterator(); it
+ .hasNext();) {
+ Edge incomingLink = (Edge) it.next();
+ if (ComrelVisualIDRegistry.getVisualID(incomingLink) == MultiPortMappingEditPart.VISUAL_ID) {
+ DestroyElementRequest r = new DestroyElementRequest(
+ incomingLink.getElement(), false);
+ cmd.add(new DestroyElementCommand(r));
+ cmd.add(new DeleteCommand(getEditingDomain(),
+ incomingLink));
+ continue;
+ }
+ }
+ for (Iterator<?> it = node.getSourceEdges().iterator(); it
+ .hasNext();) {
+ Edge outgoingLink = (Edge) it.next();
+ if (ComrelVisualIDRegistry.getVisualID(outgoingLink) == MultiPortMappingEditPart.VISUAL_ID) {
+ DestroyElementRequest r = new DestroyElementRequest(
+ outgoingLink.getElement(), false);
+ cmd.add(new DestroyElementCommand(r));
+ cmd.add(new DeleteCommand(getEditingDomain(),
+ outgoingLink));
+ continue;
+ }
+ if (ComrelVisualIDRegistry.getVisualID(outgoingLink) == MultiSinglePortMappingEditPart.VISUAL_ID) {
+ DestroyElementRequest r = new DestroyElementRequest(
+ outgoingLink.getElement(), false);
+ cmd.add(new DestroyElementCommand(r));
+ cmd.add(new DeleteCommand(getEditingDomain(),
+ outgoingLink));
+ continue;
+ }
+ }
+ cmd.add(new DestroyElementCommand(new DestroyElementRequest(
+ getEditingDomain(), node.getElement(), false))); // directlyOwned: true
+ // don't need explicit deletion of node as parent's view deletion would clean child views as well
+ // cmd.add(new org.eclipse.gmf.runtime.diagram.core.commands.DeleteCommand(getEditingDomain(), node));
+ break;
+ case SingleQueuedUnitSingleQueuedUnitHelperUnitsCompartment7EditPart.VISUAL_ID:
+ for (Iterator<?> cit = node.getChildren().iterator(); cit
+ .hasNext();) {
+ Node cnode = (Node) cit.next();
+ switch (ComrelVisualIDRegistry.getVisualID(cnode)) {
+ case SingleFeatureUnit4EditPart.VISUAL_ID:
+ cmd.add(new DestroyElementCommand(
+ new DestroyElementRequest(getEditingDomain(),
+ cnode.getElement(), false))); // directlyOwned: true
+ // don't need explicit deletion of cnode as parent's view deletion would clean child views as well
+ // cmd.add(new org.eclipse.gmf.runtime.diagram.core.commands.DeleteCommand(getEditingDomain(), cnode));
+ break;
+ case MultiFeatureUnit4EditPart.VISUAL_ID:
+ cmd.add(new DestroyElementCommand(
+ new DestroyElementRequest(getEditingDomain(),
+ cnode.getElement(), false))); // directlyOwned: true
+ // don't need explicit deletion of cnode as parent's view deletion would clean child views as well
+ // cmd.add(new org.eclipse.gmf.runtime.diagram.core.commands.DeleteCommand(getEditingDomain(), cnode));
+ break;
+ case SingleFilterUnit4EditPart.VISUAL_ID:
+ cmd.add(new DestroyElementCommand(
+ new DestroyElementRequest(getEditingDomain(),
+ cnode.getElement(), false))); // directlyOwned: true
+ // don't need explicit deletion of cnode as parent's view deletion would clean child views as well
+ // cmd.add(new org.eclipse.gmf.runtime.diagram.core.commands.DeleteCommand(getEditingDomain(), cnode));
+ break;
+ case MultiFilterUnit4EditPart.VISUAL_ID:
+ cmd.add(new DestroyElementCommand(
+ new DestroyElementRequest(getEditingDomain(),
+ cnode.getElement(), false))); // directlyOwned: true
+ // don't need explicit deletion of cnode as parent's view deletion would clean child views as well
+ // cmd.add(new org.eclipse.gmf.runtime.diagram.core.commands.DeleteCommand(getEditingDomain(), cnode));
+ break;
+ }
+ }
+ break;
+ case SingleQueuedUnitSingleQueuedUnitRefactoringUnitCompartment7EditPart.VISUAL_ID:
+ for (Iterator<?> cit = node.getChildren().iterator(); cit
+ .hasNext();) {
+ Node cnode = (Node) cit.next();
+ switch (ComrelVisualIDRegistry.getVisualID(cnode)) {
+ case CartesianQueuedUnit4EditPart.VISUAL_ID:
+ cmd.add(new DestroyElementCommand(
+ new DestroyElementRequest(getEditingDomain(),
+ cnode.getElement(), false))); // directlyOwned: true
+ // don't need explicit deletion of cnode as parent's view deletion would clean child views as well
+ // cmd.add(new org.eclipse.gmf.runtime.diagram.core.commands.DeleteCommand(getEditingDomain(), cnode));
+ break;
+ case ParallelQueuedUnit5EditPart.VISUAL_ID:
+ cmd.add(new DestroyElementCommand(
+ new DestroyElementRequest(getEditingDomain(),
+ cnode.getElement(), false))); // directlyOwned: true
+ // don't need explicit deletion of cnode as parent's view deletion would clean child views as well
+ // cmd.add(new org.eclipse.gmf.runtime.diagram.core.commands.DeleteCommand(getEditingDomain(), cnode));
+ break;
+ case SingleQueuedUnit5EditPart.VISUAL_ID:
+ cmd.add(new DestroyElementCommand(
+ new DestroyElementRequest(getEditingDomain(),
+ cnode.getElement(), false))); // directlyOwned: true
+ // don't need explicit deletion of cnode as parent's view deletion would clean child views as well
+ // cmd.add(new org.eclipse.gmf.runtime.diagram.core.commands.DeleteCommand(getEditingDomain(), cnode));
+ break;
+ case SequentialUnit4EditPart.VISUAL_ID:
+ cmd.add(new DestroyElementCommand(
+ new DestroyElementRequest(getEditingDomain(),
+ cnode.getElement(), false))); // directlyOwned: true
+ // don't need explicit deletion of cnode as parent's view deletion would clean child views as well
+ // cmd.add(new org.eclipse.gmf.runtime.diagram.core.commands.DeleteCommand(getEditingDomain(), cnode));
+ break;
+ case ConditionalUnit4EditPart.VISUAL_ID:
+ cmd.add(new DestroyElementCommand(
+ new DestroyElementRequest(getEditingDomain(),
+ cnode.getElement(), false))); // directlyOwned: true
+ // don't need explicit deletion of cnode as parent's view deletion would clean child views as well
+ // cmd.add(new org.eclipse.gmf.runtime.diagram.core.commands.DeleteCommand(getEditingDomain(), cnode));
+ break;
+ case AtomicUnit4EditPart.VISUAL_ID:
+ cmd.add(new DestroyElementCommand(
+ new DestroyElementRequest(getEditingDomain(),
+ cnode.getElement(), false))); // directlyOwned: true
+ // don't need explicit deletion of cnode as parent's view deletion would clean child views as well
+ // cmd.add(new org.eclipse.gmf.runtime.diagram.core.commands.DeleteCommand(getEditingDomain(), cnode));
+ break;
+ }
+ }
+ break;
+ }
+ }
+ }
+
+}
diff --git a/org.eclipse.emf.refactor.comrel.diagram/src/comrel/diagram/edit/policies/SingleQueuedUnitSingleQueuedUnitHelperUnitsCompartment2CanonicalEditPolicy.java b/org.eclipse.emf.refactor.comrel.diagram/src/comrel/diagram/edit/policies/SingleQueuedUnitSingleQueuedUnitHelperUnitsCompartment2CanonicalEditPolicy.java
new file mode 100644
index 0000000..265332a
--- /dev/null
+++ b/org.eclipse.emf.refactor.comrel.diagram/src/comrel/diagram/edit/policies/SingleQueuedUnitSingleQueuedUnitHelperUnitsCompartment2CanonicalEditPolicy.java
@@ -0,0 +1,173 @@
+/*
+ *
+ */
+package comrel.diagram.edit.policies;
+
+import java.util.ArrayList;
+import java.util.Collection;
+import java.util.Iterator;
+import java.util.LinkedList;
+import java.util.List;
+
+import org.eclipse.core.runtime.IAdaptable;
+import org.eclipse.emf.ecore.EObject;
+import org.eclipse.emf.ecore.EStructuralFeature;
+import org.eclipse.gef.commands.Command;
+import org.eclipse.gmf.runtime.diagram.core.util.ViewUtil;
+import org.eclipse.gmf.runtime.diagram.ui.commands.DeferredLayoutCommand;
+import org.eclipse.gmf.runtime.diagram.ui.commands.ICommandProxy;
+import org.eclipse.gmf.runtime.diagram.ui.commands.SetViewMutabilityCommand;
+import org.eclipse.gmf.runtime.diagram.ui.editpolicies.CanonicalEditPolicy;
+import org.eclipse.gmf.runtime.diagram.ui.requests.CreateViewRequest;
+import org.eclipse.gmf.runtime.emf.core.util.EObjectAdapter;
+import org.eclipse.gmf.runtime.notation.Node;
+import org.eclipse.gmf.runtime.notation.View;
+
+import comrel.ComrelPackage;
+import comrel.diagram.edit.parts.MultiFeatureUnit4EditPart;
+import comrel.diagram.edit.parts.MultiFilterUnit4EditPart;
+import comrel.diagram.edit.parts.SingleFeatureUnit4EditPart;
+import comrel.diagram.edit.parts.SingleFilterUnit4EditPart;
+import comrel.diagram.part.ComrelDiagramUpdater;
+import comrel.diagram.part.ComrelNodeDescriptor;
+import comrel.diagram.part.ComrelVisualIDRegistry;
+
+/**
+ * @generated
+ */
+public class SingleQueuedUnitSingleQueuedUnitHelperUnitsCompartment2CanonicalEditPolicy
+ extends CanonicalEditPolicy {
+
+ /**
+ * @generated
+ */
+ protected EStructuralFeature getFeatureToSynchronize() {
+ return ComrelPackage.eINSTANCE.getSingleQueuedUnit_HelperUnits();
+ }
+
+ /**
+ * @generated
+ */
+ @SuppressWarnings("rawtypes")
+ protected List getSemanticChildrenList() {
+ View viewObject = (View) getHost().getModel();
+ LinkedList<EObject> result = new LinkedList<EObject>();
+ List<ComrelNodeDescriptor> childDescriptors = ComrelDiagramUpdater
+ .getSingleQueuedUnitSingleQueuedUnitHelperUnitsCompartment_7027SemanticChildren(viewObject);
+ for (ComrelNodeDescriptor d : childDescriptors) {
+ result.add(d.getModelElement());
+ }
+ return result;
+ }
+
+ /**
+ * @generated
+ */
+ protected boolean isOrphaned(Collection<EObject> semanticChildren,
+ final View view) {
+ return isMyDiagramElement(view)
+ && !semanticChildren.contains(view.getElement());
+ }
+
+ /**
+ * @generated
+ */
+ private boolean isMyDiagramElement(View view) {
+ int visualID = ComrelVisualIDRegistry.getVisualID(view);
+ switch (visualID) {
+ case SingleFeatureUnit4EditPart.VISUAL_ID:
+ case MultiFeatureUnit4EditPart.VISUAL_ID:
+ case SingleFilterUnit4EditPart.VISUAL_ID:
+ case MultiFilterUnit4EditPart.VISUAL_ID:
+ return true;
+ }
+ return false;
+ }
+
+ /**
+ * @generated
+ */
+ protected void refreshSemantic() {
+ if (resolveSemanticElement() == null) {
+ return;
+ }
+ LinkedList<IAdaptable> createdViews = new LinkedList<IAdaptable>();
+ List<ComrelNodeDescriptor> childDescriptors = ComrelDiagramUpdater
+ .getSingleQueuedUnitSingleQueuedUnitHelperUnitsCompartment_7027SemanticChildren((View) getHost()
+ .getModel());
+ LinkedList<View> orphaned = new LinkedList<View>();
+ // we care to check only views we recognize as ours
+ LinkedList<View> knownViewChildren = new LinkedList<View>();
+ for (View v : getViewChildren()) {
+ if (isMyDiagramElement(v)) {
+ knownViewChildren.add(v);
+ }
+ }
+ // alternative to #cleanCanonicalSemanticChildren(getViewChildren(), semanticChildren)
+ //
+ // iteration happens over list of desired semantic elements, trying to find best matching View, while original CEP
+ // iterates views, potentially losing view (size/bounds) information - i.e. if there are few views to reference same EObject, only last one
+ // to answer isOrphaned == true will be used for the domain element representation, see #cleanCanonicalSemanticChildren()
+ for (Iterator<ComrelNodeDescriptor> descriptorsIterator = childDescriptors
+ .iterator(); descriptorsIterator.hasNext();) {
+ ComrelNodeDescriptor next = descriptorsIterator.next();
+ String hint = ComrelVisualIDRegistry.getType(next.getVisualID());
+ LinkedList<View> perfectMatch = new LinkedList<View>(); // both semanticElement and hint match that of NodeDescriptor
+ for (View childView : getViewChildren()) {
+ EObject semanticElement = childView.getElement();
+ if (next.getModelElement().equals(semanticElement)) {
+ if (hint.equals(childView.getType())) {
+ perfectMatch.add(childView);
+ // actually, can stop iteration over view children here, but
+ // may want to use not the first view but last one as a 'real' match (the way original CEP does
+ // with its trick with viewToSemanticMap inside #cleanCanonicalSemanticChildren
+ }
+ }
+ }
+ if (perfectMatch.size() > 0) {
+ descriptorsIterator.remove(); // precise match found no need to create anything for the NodeDescriptor
+ // use only one view (first or last?), keep rest as orphaned for further consideration
+ knownViewChildren.remove(perfectMatch.getFirst());
+ }
+ }
+ // those left in knownViewChildren are subject to removal - they are our diagram elements we didn't find match to,
+ // or those we have potential matches to, and thus need to be recreated, preserving size/location information.
+ orphaned.addAll(knownViewChildren);
+ //
+ ArrayList<CreateViewRequest.ViewDescriptor> viewDescriptors = new ArrayList<CreateViewRequest.ViewDescriptor>(
+ childDescriptors.size());
+ for (ComrelNodeDescriptor next : childDescriptors) {
+ String hint = ComrelVisualIDRegistry.getType(next.getVisualID());
+ IAdaptable elementAdapter = new CanonicalElementAdapter(
+ next.getModelElement(), hint);
+ CreateViewRequest.ViewDescriptor descriptor = new CreateViewRequest.ViewDescriptor(
+ elementAdapter, Node.class, hint, ViewUtil.APPEND, false,
+ host().getDiagramPreferencesHint());
+ viewDescriptors.add(descriptor);
+ }
+
+ boolean changed = deleteViews(orphaned.iterator());
+ //
+ CreateViewRequest request = getCreateViewRequest(viewDescriptors);
+ Command cmd = getCreateViewCommand(request);
+ if (cmd != null && cmd.canExecute()) {
+ SetViewMutabilityCommand.makeMutable(
+ new EObjectAdapter(host().getNotationView())).execute();
+ executeCommand(cmd);
+ @SuppressWarnings("unchecked")
+ List<IAdaptable> nl = (List<IAdaptable>) request.getNewObject();
+ createdViews.addAll(nl);
+ }
+ if (changed || createdViews.size() > 0) {
+ postProcessRefreshSemantic(createdViews);
+ }
+ if (createdViews.size() > 1) {
+ // perform a layout of the container
+ DeferredLayoutCommand layoutCmd = new DeferredLayoutCommand(host()
+ .getEditingDomain(), createdViews, host());
+ executeCommand(new ICommandProxy(layoutCmd));
+ }
+
+ makeViewsImmutable(createdViews);
+ }
+}
diff --git a/org.eclipse.emf.refactor.comrel.diagram/src/comrel/diagram/edit/policies/SingleQueuedUnitSingleQueuedUnitHelperUnitsCompartment2ItemSemanticEditPolicy.java b/org.eclipse.emf.refactor.comrel.diagram/src/comrel/diagram/edit/policies/SingleQueuedUnitSingleQueuedUnitHelperUnitsCompartment2ItemSemanticEditPolicy.java
new file mode 100644
index 0000000..ce6013b
--- /dev/null
+++ b/org.eclipse.emf.refactor.comrel.diagram/src/comrel/diagram/edit/policies/SingleQueuedUnitSingleQueuedUnitHelperUnitsCompartment2ItemSemanticEditPolicy.java
@@ -0,0 +1,47 @@
+/*
+ *
+ */
+package comrel.diagram.edit.policies;
+
+import org.eclipse.gef.commands.Command;
+import org.eclipse.gmf.runtime.emf.type.core.requests.CreateElementRequest;
+
+import comrel.diagram.edit.commands.MultiFeatureUnit4CreateCommand;
+import comrel.diagram.edit.commands.MultiFilterUnit4CreateCommand;
+import comrel.diagram.edit.commands.SingleFeatureUnit4CreateCommand;
+import comrel.diagram.edit.commands.SingleFilterUnit4CreateCommand;
+import comrel.diagram.providers.ComrelElementTypes;
+
+/**
+ * @generated
+ */
+public class SingleQueuedUnitSingleQueuedUnitHelperUnitsCompartment2ItemSemanticEditPolicy
+ extends ComrelBaseItemSemanticEditPolicy {
+
+ /**
+ * @generated
+ */
+ public SingleQueuedUnitSingleQueuedUnitHelperUnitsCompartment2ItemSemanticEditPolicy() {
+ super(ComrelElementTypes.SingleQueuedUnit_3042);
+ }
+
+ /**
+ * @generated
+ */
+ protected Command getCreateCommand(CreateElementRequest req) {
+ if (ComrelElementTypes.SingleFeatureUnit_3055 == req.getElementType()) {
+ return getGEFWrapper(new SingleFeatureUnit4CreateCommand(req));
+ }
+ if (ComrelElementTypes.MultiFeatureUnit_3056 == req.getElementType()) {
+ return getGEFWrapper(new MultiFeatureUnit4CreateCommand(req));
+ }
+ if (ComrelElementTypes.SingleFilterUnit_3057 == req.getElementType()) {
+ return getGEFWrapper(new SingleFilterUnit4CreateCommand(req));
+ }
+ if (ComrelElementTypes.MultiFilterUnit_3058 == req.getElementType()) {
+ return getGEFWrapper(new MultiFilterUnit4CreateCommand(req));
+ }
+ return super.getCreateCommand(req);
+ }
+
+}
diff --git a/org.eclipse.emf.refactor.comrel.diagram/src/comrel/diagram/edit/policies/SingleQueuedUnitSingleQueuedUnitHelperUnitsCompartment3CanonicalEditPolicy.java b/org.eclipse.emf.refactor.comrel.diagram/src/comrel/diagram/edit/policies/SingleQueuedUnitSingleQueuedUnitHelperUnitsCompartment3CanonicalEditPolicy.java
new file mode 100644
index 0000000..c96847d
--- /dev/null
+++ b/org.eclipse.emf.refactor.comrel.diagram/src/comrel/diagram/edit/policies/SingleQueuedUnitSingleQueuedUnitHelperUnitsCompartment3CanonicalEditPolicy.java
@@ -0,0 +1,173 @@
+/*
+ *
+ */
+package comrel.diagram.edit.policies;
+
+import java.util.ArrayList;
+import java.util.Collection;
+import java.util.Iterator;
+import java.util.LinkedList;
+import java.util.List;
+
+import org.eclipse.core.runtime.IAdaptable;
+import org.eclipse.emf.ecore.EObject;
+import org.eclipse.emf.ecore.EStructuralFeature;
+import org.eclipse.gef.commands.Command;
+import org.eclipse.gmf.runtime.diagram.core.util.ViewUtil;
+import org.eclipse.gmf.runtime.diagram.ui.commands.DeferredLayoutCommand;
+import org.eclipse.gmf.runtime.diagram.ui.commands.ICommandProxy;
+import org.eclipse.gmf.runtime.diagram.ui.commands.SetViewMutabilityCommand;
+import org.eclipse.gmf.runtime.diagram.ui.editpolicies.CanonicalEditPolicy;
+import org.eclipse.gmf.runtime.diagram.ui.requests.CreateViewRequest;
+import org.eclipse.gmf.runtime.emf.core.util.EObjectAdapter;
+import org.eclipse.gmf.runtime.notation.Node;
+import org.eclipse.gmf.runtime.notation.View;
+
+import comrel.ComrelPackage;
+import comrel.diagram.edit.parts.MultiFeatureUnit4EditPart;
+import comrel.diagram.edit.parts.MultiFilterUnit4EditPart;
+import comrel.diagram.edit.parts.SingleFeatureUnit4EditPart;
+import comrel.diagram.edit.parts.SingleFilterUnit4EditPart;
+import comrel.diagram.part.ComrelDiagramUpdater;
+import comrel.diagram.part.ComrelNodeDescriptor;
+import comrel.diagram.part.ComrelVisualIDRegistry;
+
+/**
+ * @generated
+ */
+public class SingleQueuedUnitSingleQueuedUnitHelperUnitsCompartment3CanonicalEditPolicy
+ extends CanonicalEditPolicy {
+
+ /**
+ * @generated
+ */
+ protected EStructuralFeature getFeatureToSynchronize() {
+ return ComrelPackage.eINSTANCE.getSingleQueuedUnit_HelperUnits();
+ }
+
+ /**
+ * @generated
+ */
+ @SuppressWarnings("rawtypes")
+ protected List getSemanticChildrenList() {
+ View viewObject = (View) getHost().getModel();
+ LinkedList<EObject> result = new LinkedList<EObject>();
+ List<ComrelNodeDescriptor> childDescriptors = ComrelDiagramUpdater
+ .getSingleQueuedUnitSingleQueuedUnitHelperUnitsCompartment_7043SemanticChildren(viewObject);
+ for (ComrelNodeDescriptor d : childDescriptors) {
+ result.add(d.getModelElement());
+ }
+ return result;
+ }
+
+ /**
+ * @generated
+ */
+ protected boolean isOrphaned(Collection<EObject> semanticChildren,
+ final View view) {
+ return isMyDiagramElement(view)
+ && !semanticChildren.contains(view.getElement());
+ }
+
+ /**
+ * @generated
+ */
+ private boolean isMyDiagramElement(View view) {
+ int visualID = ComrelVisualIDRegistry.getVisualID(view);
+ switch (visualID) {
+ case SingleFeatureUnit4EditPart.VISUAL_ID:
+ case MultiFeatureUnit4EditPart.VISUAL_ID:
+ case SingleFilterUnit4EditPart.VISUAL_ID:
+ case MultiFilterUnit4EditPart.VISUAL_ID:
+ return true;
+ }
+ return false;
+ }
+
+ /**
+ * @generated
+ */
+ protected void refreshSemantic() {
+ if (resolveSemanticElement() == null) {
+ return;
+ }
+ LinkedList<IAdaptable> createdViews = new LinkedList<IAdaptable>();
+ List<ComrelNodeDescriptor> childDescriptors = ComrelDiagramUpdater
+ .getSingleQueuedUnitSingleQueuedUnitHelperUnitsCompartment_7043SemanticChildren((View) getHost()
+ .getModel());
+ LinkedList<View> orphaned = new LinkedList<View>();
+ // we care to check only views we recognize as ours
+ LinkedList<View> knownViewChildren = new LinkedList<View>();
+ for (View v : getViewChildren()) {
+ if (isMyDiagramElement(v)) {
+ knownViewChildren.add(v);
+ }
+ }
+ // alternative to #cleanCanonicalSemanticChildren(getViewChildren(), semanticChildren)
+ //
+ // iteration happens over list of desired semantic elements, trying to find best matching View, while original CEP
+ // iterates views, potentially losing view (size/bounds) information - i.e. if there are few views to reference same EObject, only last one
+ // to answer isOrphaned == true will be used for the domain element representation, see #cleanCanonicalSemanticChildren()
+ for (Iterator<ComrelNodeDescriptor> descriptorsIterator = childDescriptors
+ .iterator(); descriptorsIterator.hasNext();) {
+ ComrelNodeDescriptor next = descriptorsIterator.next();
+ String hint = ComrelVisualIDRegistry.getType(next.getVisualID());
+ LinkedList<View> perfectMatch = new LinkedList<View>(); // both semanticElement and hint match that of NodeDescriptor
+ for (View childView : getViewChildren()) {
+ EObject semanticElement = childView.getElement();
+ if (next.getModelElement().equals(semanticElement)) {
+ if (hint.equals(childView.getType())) {
+ perfectMatch.add(childView);
+ // actually, can stop iteration over view children here, but
+ // may want to use not the first view but last one as a 'real' match (the way original CEP does
+ // with its trick with viewToSemanticMap inside #cleanCanonicalSemanticChildren
+ }
+ }
+ }
+ if (perfectMatch.size() > 0) {
+ descriptorsIterator.remove(); // precise match found no need to create anything for the NodeDescriptor
+ // use only one view (first or last?), keep rest as orphaned for further consideration
+ knownViewChildren.remove(perfectMatch.getFirst());
+ }
+ }
+ // those left in knownViewChildren are subject to removal - they are our diagram elements we didn't find match to,
+ // or those we have potential matches to, and thus need to be recreated, preserving size/location information.
+ orphaned.addAll(knownViewChildren);
+ //
+ ArrayList<CreateViewRequest.ViewDescriptor> viewDescriptors = new ArrayList<CreateViewRequest.ViewDescriptor>(
+ childDescriptors.size());
+ for (ComrelNodeDescriptor next : childDescriptors) {
+ String hint = ComrelVisualIDRegistry.getType(next.getVisualID());
+ IAdaptable elementAdapter = new CanonicalElementAdapter(
+ next.getModelElement(), hint);
+ CreateViewRequest.ViewDescriptor descriptor = new CreateViewRequest.ViewDescriptor(
+ elementAdapter, Node.class, hint, ViewUtil.APPEND, false,
+ host().getDiagramPreferencesHint());
+ viewDescriptors.add(descriptor);
+ }
+
+ boolean changed = deleteViews(orphaned.iterator());
+ //
+ CreateViewRequest request = getCreateViewRequest(viewDescriptors);
+ Command cmd = getCreateViewCommand(request);
+ if (cmd != null && cmd.canExecute()) {
+ SetViewMutabilityCommand.makeMutable(
+ new EObjectAdapter(host().getNotationView())).execute();
+ executeCommand(cmd);
+ @SuppressWarnings("unchecked")
+ List<IAdaptable> nl = (List<IAdaptable>) request.getNewObject();
+ createdViews.addAll(nl);
+ }
+ if (changed || createdViews.size() > 0) {
+ postProcessRefreshSemantic(createdViews);
+ }
+ if (createdViews.size() > 1) {
+ // perform a layout of the container
+ DeferredLayoutCommand layoutCmd = new DeferredLayoutCommand(host()
+ .getEditingDomain(), createdViews, host());
+ executeCommand(new ICommandProxy(layoutCmd));
+ }
+
+ makeViewsImmutable(createdViews);
+ }
+}
diff --git a/org.eclipse.emf.refactor.comrel.diagram/src/comrel/diagram/edit/policies/SingleQueuedUnitSingleQueuedUnitHelperUnitsCompartment3ItemSemanticEditPolicy.java b/org.eclipse.emf.refactor.comrel.diagram/src/comrel/diagram/edit/policies/SingleQueuedUnitSingleQueuedUnitHelperUnitsCompartment3ItemSemanticEditPolicy.java
new file mode 100644
index 0000000..1712e54
--- /dev/null
+++ b/org.eclipse.emf.refactor.comrel.diagram/src/comrel/diagram/edit/policies/SingleQueuedUnitSingleQueuedUnitHelperUnitsCompartment3ItemSemanticEditPolicy.java
@@ -0,0 +1,47 @@
+/*
+ *
+ */
+package comrel.diagram.edit.policies;
+
+import org.eclipse.gef.commands.Command;
+import org.eclipse.gmf.runtime.emf.type.core.requests.CreateElementRequest;
+
+import comrel.diagram.edit.commands.MultiFeatureUnit4CreateCommand;
+import comrel.diagram.edit.commands.MultiFilterUnit4CreateCommand;
+import comrel.diagram.edit.commands.SingleFeatureUnit4CreateCommand;
+import comrel.diagram.edit.commands.SingleFilterUnit4CreateCommand;
+import comrel.diagram.providers.ComrelElementTypes;
+
+/**
+ * @generated
+ */
+public class SingleQueuedUnitSingleQueuedUnitHelperUnitsCompartment3ItemSemanticEditPolicy
+ extends ComrelBaseItemSemanticEditPolicy {
+
+ /**
+ * @generated
+ */
+ public SingleQueuedUnitSingleQueuedUnitHelperUnitsCompartment3ItemSemanticEditPolicy() {
+ super(ComrelElementTypes.SingleQueuedUnit_3054);
+ }
+
+ /**
+ * @generated
+ */
+ protected Command getCreateCommand(CreateElementRequest req) {
+ if (ComrelElementTypes.SingleFeatureUnit_3055 == req.getElementType()) {
+ return getGEFWrapper(new SingleFeatureUnit4CreateCommand(req));
+ }
+ if (ComrelElementTypes.MultiFeatureUnit_3056 == req.getElementType()) {
+ return getGEFWrapper(new MultiFeatureUnit4CreateCommand(req));
+ }
+ if (ComrelElementTypes.SingleFilterUnit_3057 == req.getElementType()) {
+ return getGEFWrapper(new SingleFilterUnit4CreateCommand(req));
+ }
+ if (ComrelElementTypes.MultiFilterUnit_3058 == req.getElementType()) {
+ return getGEFWrapper(new MultiFilterUnit4CreateCommand(req));
+ }
+ return super.getCreateCommand(req);
+ }
+
+}
diff --git a/org.eclipse.emf.refactor.comrel.diagram/src/comrel/diagram/edit/policies/SingleQueuedUnitSingleQueuedUnitHelperUnitsCompartment4CanonicalEditPolicy.java b/org.eclipse.emf.refactor.comrel.diagram/src/comrel/diagram/edit/policies/SingleQueuedUnitSingleQueuedUnitHelperUnitsCompartment4CanonicalEditPolicy.java
new file mode 100644
index 0000000..ce479bc
--- /dev/null
+++ b/org.eclipse.emf.refactor.comrel.diagram/src/comrel/diagram/edit/policies/SingleQueuedUnitSingleQueuedUnitHelperUnitsCompartment4CanonicalEditPolicy.java
@@ -0,0 +1,173 @@
+/*
+ *
+ */
+package comrel.diagram.edit.policies;
+
+import java.util.ArrayList;
+import java.util.Collection;
+import java.util.Iterator;
+import java.util.LinkedList;
+import java.util.List;
+
+import org.eclipse.core.runtime.IAdaptable;
+import org.eclipse.emf.ecore.EObject;
+import org.eclipse.emf.ecore.EStructuralFeature;
+import org.eclipse.gef.commands.Command;
+import org.eclipse.gmf.runtime.diagram.core.util.ViewUtil;
+import org.eclipse.gmf.runtime.diagram.ui.commands.DeferredLayoutCommand;
+import org.eclipse.gmf.runtime.diagram.ui.commands.ICommandProxy;
+import org.eclipse.gmf.runtime.diagram.ui.commands.SetViewMutabilityCommand;
+import org.eclipse.gmf.runtime.diagram.ui.editpolicies.CanonicalEditPolicy;
+import org.eclipse.gmf.runtime.diagram.ui.requests.CreateViewRequest;
+import org.eclipse.gmf.runtime.emf.core.util.EObjectAdapter;
+import org.eclipse.gmf.runtime.notation.Node;
+import org.eclipse.gmf.runtime.notation.View;
+
+import comrel.ComrelPackage;
+import comrel.diagram.edit.parts.MultiFeatureUnit4EditPart;
+import comrel.diagram.edit.parts.MultiFilterUnit4EditPart;
+import comrel.diagram.edit.parts.SingleFeatureUnit4EditPart;
+import comrel.diagram.edit.parts.SingleFilterUnit4EditPart;
+import comrel.diagram.part.ComrelDiagramUpdater;
+import comrel.diagram.part.ComrelNodeDescriptor;
+import comrel.diagram.part.ComrelVisualIDRegistry;
+
+/**
+ * @generated
+ */
+public class SingleQueuedUnitSingleQueuedUnitHelperUnitsCompartment4CanonicalEditPolicy
+ extends CanonicalEditPolicy {
+
+ /**
+ * @generated
+ */
+ protected EStructuralFeature getFeatureToSynchronize() {
+ return ComrelPackage.eINSTANCE.getSingleQueuedUnit_HelperUnits();
+ }
+
+ /**
+ * @generated
+ */
+ @SuppressWarnings("rawtypes")
+ protected List getSemanticChildrenList() {
+ View viewObject = (View) getHost().getModel();
+ LinkedList<EObject> result = new LinkedList<EObject>();
+ List<ComrelNodeDescriptor> childDescriptors = ComrelDiagramUpdater
+ .getSingleQueuedUnitSingleQueuedUnitHelperUnitsCompartment_7045SemanticChildren(viewObject);
+ for (ComrelNodeDescriptor d : childDescriptors) {
+ result.add(d.getModelElement());
+ }
+ return result;
+ }
+
+ /**
+ * @generated
+ */
+ protected boolean isOrphaned(Collection<EObject> semanticChildren,
+ final View view) {
+ return isMyDiagramElement(view)
+ && !semanticChildren.contains(view.getElement());
+ }
+
+ /**
+ * @generated
+ */
+ private boolean isMyDiagramElement(View view) {
+ int visualID = ComrelVisualIDRegistry.getVisualID(view);
+ switch (visualID) {
+ case SingleFeatureUnit4EditPart.VISUAL_ID:
+ case MultiFeatureUnit4EditPart.VISUAL_ID:
+ case SingleFilterUnit4EditPart.VISUAL_ID:
+ case MultiFilterUnit4EditPart.VISUAL_ID:
+ return true;
+ }
+ return false;
+ }
+
+ /**
+ * @generated
+ */
+ protected void refreshSemantic() {
+ if (resolveSemanticElement() == null) {
+ return;
+ }
+ LinkedList<IAdaptable> createdViews = new LinkedList<IAdaptable>();
+ List<ComrelNodeDescriptor> childDescriptors = ComrelDiagramUpdater
+ .getSingleQueuedUnitSingleQueuedUnitHelperUnitsCompartment_7045SemanticChildren((View) getHost()
+ .getModel());
+ LinkedList<View> orphaned = new LinkedList<View>();
+ // we care to check only views we recognize as ours
+ LinkedList<View> knownViewChildren = new LinkedList<View>();
+ for (View v : getViewChildren()) {
+ if (isMyDiagramElement(v)) {
+ knownViewChildren.add(v);
+ }
+ }
+ // alternative to #cleanCanonicalSemanticChildren(getViewChildren(), semanticChildren)
+ //
+ // iteration happens over list of desired semantic elements, trying to find best matching View, while original CEP
+ // iterates views, potentially losing view (size/bounds) information - i.e. if there are few views to reference same EObject, only last one
+ // to answer isOrphaned == true will be used for the domain element representation, see #cleanCanonicalSemanticChildren()
+ for (Iterator<ComrelNodeDescriptor> descriptorsIterator = childDescriptors
+ .iterator(); descriptorsIterator.hasNext();) {
+ ComrelNodeDescriptor next = descriptorsIterator.next();
+ String hint = ComrelVisualIDRegistry.getType(next.getVisualID());
+ LinkedList<View> perfectMatch = new LinkedList<View>(); // both semanticElement and hint match that of NodeDescriptor
+ for (View childView : getViewChildren()) {
+ EObject semanticElement = childView.getElement();
+ if (next.getModelElement().equals(semanticElement)) {
+ if (hint.equals(childView.getType())) {
+ perfectMatch.add(childView);
+ // actually, can stop iteration over view children here, but
+ // may want to use not the first view but last one as a 'real' match (the way original CEP does
+ // with its trick with viewToSemanticMap inside #cleanCanonicalSemanticChildren
+ }
+ }
+ }
+ if (perfectMatch.size() > 0) {
+ descriptorsIterator.remove(); // precise match found no need to create anything for the NodeDescriptor
+ // use only one view (first or last?), keep rest as orphaned for further consideration
+ knownViewChildren.remove(perfectMatch.getFirst());
+ }
+ }
+ // those left in knownViewChildren are subject to removal - they are our diagram elements we didn't find match to,
+ // or those we have potential matches to, and thus need to be recreated, preserving size/location information.
+ orphaned.addAll(knownViewChildren);
+ //
+ ArrayList<CreateViewRequest.ViewDescriptor> viewDescriptors = new ArrayList<CreateViewRequest.ViewDescriptor>(
+ childDescriptors.size());
+ for (ComrelNodeDescriptor next : childDescriptors) {
+ String hint = ComrelVisualIDRegistry.getType(next.getVisualID());
+ IAdaptable elementAdapter = new CanonicalElementAdapter(
+ next.getModelElement(), hint);
+ CreateViewRequest.ViewDescriptor descriptor = new CreateViewRequest.ViewDescriptor(
+ elementAdapter, Node.class, hint, ViewUtil.APPEND, false,
+ host().getDiagramPreferencesHint());
+ viewDescriptors.add(descriptor);
+ }
+
+ boolean changed = deleteViews(orphaned.iterator());
+ //
+ CreateViewRequest request = getCreateViewRequest(viewDescriptors);
+ Command cmd = getCreateViewCommand(request);
+ if (cmd != null && cmd.canExecute()) {
+ SetViewMutabilityCommand.makeMutable(
+ new EObjectAdapter(host().getNotationView())).execute();
+ executeCommand(cmd);
+ @SuppressWarnings("unchecked")
+ List<IAdaptable> nl = (List<IAdaptable>) request.getNewObject();
+ createdViews.addAll(nl);
+ }
+ if (changed || createdViews.size() > 0) {
+ postProcessRefreshSemantic(createdViews);
+ }
+ if (createdViews.size() > 1) {
+ // perform a layout of the container
+ DeferredLayoutCommand layoutCmd = new DeferredLayoutCommand(host()
+ .getEditingDomain(), createdViews, host());
+ executeCommand(new ICommandProxy(layoutCmd));
+ }
+
+ makeViewsImmutable(createdViews);
+ }
+}
diff --git a/org.eclipse.emf.refactor.comrel.diagram/src/comrel/diagram/edit/policies/SingleQueuedUnitSingleQueuedUnitHelperUnitsCompartment4ItemSemanticEditPolicy.java b/org.eclipse.emf.refactor.comrel.diagram/src/comrel/diagram/edit/policies/SingleQueuedUnitSingleQueuedUnitHelperUnitsCompartment4ItemSemanticEditPolicy.java
new file mode 100644
index 0000000..47f5958
--- /dev/null
+++ b/org.eclipse.emf.refactor.comrel.diagram/src/comrel/diagram/edit/policies/SingleQueuedUnitSingleQueuedUnitHelperUnitsCompartment4ItemSemanticEditPolicy.java
@@ -0,0 +1,47 @@
+/*
+ *
+ */
+package comrel.diagram.edit.policies;
+
+import org.eclipse.gef.commands.Command;
+import org.eclipse.gmf.runtime.emf.type.core.requests.CreateElementRequest;
+
+import comrel.diagram.edit.commands.MultiFeatureUnit4CreateCommand;
+import comrel.diagram.edit.commands.MultiFilterUnit4CreateCommand;
+import comrel.diagram.edit.commands.SingleFeatureUnit4CreateCommand;
+import comrel.diagram.edit.commands.SingleFilterUnit4CreateCommand;
+import comrel.diagram.providers.ComrelElementTypes;
+
+/**
+ * @generated
+ */
+public class SingleQueuedUnitSingleQueuedUnitHelperUnitsCompartment4ItemSemanticEditPolicy
+ extends ComrelBaseItemSemanticEditPolicy {
+
+ /**
+ * @generated
+ */
+ public SingleQueuedUnitSingleQueuedUnitHelperUnitsCompartment4ItemSemanticEditPolicy() {
+ super(ComrelElementTypes.SingleQueuedUnit_3059);
+ }
+
+ /**
+ * @generated
+ */
+ protected Command getCreateCommand(CreateElementRequest req) {
+ if (ComrelElementTypes.SingleFeatureUnit_3055 == req.getElementType()) {
+ return getGEFWrapper(new SingleFeatureUnit4CreateCommand(req));
+ }
+ if (ComrelElementTypes.MultiFeatureUnit_3056 == req.getElementType()) {
+ return getGEFWrapper(new MultiFeatureUnit4CreateCommand(req));
+ }
+ if (ComrelElementTypes.SingleFilterUnit_3057 == req.getElementType()) {
+ return getGEFWrapper(new SingleFilterUnit4CreateCommand(req));
+ }
+ if (ComrelElementTypes.MultiFilterUnit_3058 == req.getElementType()) {
+ return getGEFWrapper(new MultiFilterUnit4CreateCommand(req));
+ }
+ return super.getCreateCommand(req);
+ }
+
+}
diff --git a/org.eclipse.emf.refactor.comrel.diagram/src/comrel/diagram/edit/policies/SingleQueuedUnitSingleQueuedUnitHelperUnitsCompartment5CanonicalEditPolicy.java b/org.eclipse.emf.refactor.comrel.diagram/src/comrel/diagram/edit/policies/SingleQueuedUnitSingleQueuedUnitHelperUnitsCompartment5CanonicalEditPolicy.java
new file mode 100644
index 0000000..8dc0b48
--- /dev/null
+++ b/org.eclipse.emf.refactor.comrel.diagram/src/comrel/diagram/edit/policies/SingleQueuedUnitSingleQueuedUnitHelperUnitsCompartment5CanonicalEditPolicy.java
@@ -0,0 +1,173 @@
+/*
+ *
+ */
+package comrel.diagram.edit.policies;
+
+import java.util.ArrayList;
+import java.util.Collection;
+import java.util.Iterator;
+import java.util.LinkedList;
+import java.util.List;
+
+import org.eclipse.core.runtime.IAdaptable;
+import org.eclipse.emf.ecore.EObject;
+import org.eclipse.emf.ecore.EStructuralFeature;
+import org.eclipse.gef.commands.Command;
+import org.eclipse.gmf.runtime.diagram.core.util.ViewUtil;
+import org.eclipse.gmf.runtime.diagram.ui.commands.DeferredLayoutCommand;
+import org.eclipse.gmf.runtime.diagram.ui.commands.ICommandProxy;
+import org.eclipse.gmf.runtime.diagram.ui.commands.SetViewMutabilityCommand;
+import org.eclipse.gmf.runtime.diagram.ui.editpolicies.CanonicalEditPolicy;
+import org.eclipse.gmf.runtime.diagram.ui.requests.CreateViewRequest;
+import org.eclipse.gmf.runtime.emf.core.util.EObjectAdapter;
+import org.eclipse.gmf.runtime.notation.Node;
+import org.eclipse.gmf.runtime.notation.View;
+
+import comrel.ComrelPackage;
+import comrel.diagram.edit.parts.MultiFeatureUnit4EditPart;
+import comrel.diagram.edit.parts.MultiFilterUnit4EditPart;
+import comrel.diagram.edit.parts.SingleFeatureUnit4EditPart;
+import comrel.diagram.edit.parts.SingleFilterUnit4EditPart;
+import comrel.diagram.part.ComrelDiagramUpdater;
+import comrel.diagram.part.ComrelNodeDescriptor;
+import comrel.diagram.part.ComrelVisualIDRegistry;
+
+/**
+ * @generated
+ */
+public class SingleQueuedUnitSingleQueuedUnitHelperUnitsCompartment5CanonicalEditPolicy
+ extends CanonicalEditPolicy {
+
+ /**
+ * @generated
+ */
+ protected EStructuralFeature getFeatureToSynchronize() {
+ return ComrelPackage.eINSTANCE.getSingleQueuedUnit_HelperUnits();
+ }
+
+ /**
+ * @generated
+ */
+ @SuppressWarnings("rawtypes")
+ protected List getSemanticChildrenList() {
+ View viewObject = (View) getHost().getModel();
+ LinkedList<EObject> result = new LinkedList<EObject>();
+ List<ComrelNodeDescriptor> childDescriptors = ComrelDiagramUpdater
+ .getSingleQueuedUnitSingleQueuedUnitHelperUnitsCompartment_7049SemanticChildren(viewObject);
+ for (ComrelNodeDescriptor d : childDescriptors) {
+ result.add(d.getModelElement());
+ }
+ return result;
+ }
+
+ /**
+ * @generated
+ */
+ protected boolean isOrphaned(Collection<EObject> semanticChildren,
+ final View view) {
+ return isMyDiagramElement(view)
+ && !semanticChildren.contains(view.getElement());
+ }
+
+ /**
+ * @generated
+ */
+ private boolean isMyDiagramElement(View view) {
+ int visualID = ComrelVisualIDRegistry.getVisualID(view);
+ switch (visualID) {
+ case SingleFeatureUnit4EditPart.VISUAL_ID:
+ case MultiFeatureUnit4EditPart.VISUAL_ID:
+ case SingleFilterUnit4EditPart.VISUAL_ID:
+ case MultiFilterUnit4EditPart.VISUAL_ID:
+ return true;
+ }
+ return false;
+ }
+
+ /**
+ * @generated
+ */
+ protected void refreshSemantic() {
+ if (resolveSemanticElement() == null) {
+ return;
+ }
+ LinkedList<IAdaptable> createdViews = new LinkedList<IAdaptable>();
+ List<ComrelNodeDescriptor> childDescriptors = ComrelDiagramUpdater
+ .getSingleQueuedUnitSingleQueuedUnitHelperUnitsCompartment_7049SemanticChildren((View) getHost()
+ .getModel());
+ LinkedList<View> orphaned = new LinkedList<View>();
+ // we care to check only views we recognize as ours
+ LinkedList<View> knownViewChildren = new LinkedList<View>();
+ for (View v : getViewChildren()) {
+ if (isMyDiagramElement(v)) {
+ knownViewChildren.add(v);
+ }
+ }
+ // alternative to #cleanCanonicalSemanticChildren(getViewChildren(), semanticChildren)
+ //
+ // iteration happens over list of desired semantic elements, trying to find best matching View, while original CEP
+ // iterates views, potentially losing view (size/bounds) information - i.e. if there are few views to reference same EObject, only last one
+ // to answer isOrphaned == true will be used for the domain element representation, see #cleanCanonicalSemanticChildren()
+ for (Iterator<ComrelNodeDescriptor> descriptorsIterator = childDescriptors
+ .iterator(); descriptorsIterator.hasNext();) {
+ ComrelNodeDescriptor next = descriptorsIterator.next();
+ String hint = ComrelVisualIDRegistry.getType(next.getVisualID());
+ LinkedList<View> perfectMatch = new LinkedList<View>(); // both semanticElement and hint match that of NodeDescriptor
+ for (View childView : getViewChildren()) {
+ EObject semanticElement = childView.getElement();
+ if (next.getModelElement().equals(semanticElement)) {
+ if (hint.equals(childView.getType())) {
+ perfectMatch.add(childView);
+ // actually, can stop iteration over view children here, but
+ // may want to use not the first view but last one as a 'real' match (the way original CEP does
+ // with its trick with viewToSemanticMap inside #cleanCanonicalSemanticChildren
+ }
+ }
+ }
+ if (perfectMatch.size() > 0) {
+ descriptorsIterator.remove(); // precise match found no need to create anything for the NodeDescriptor
+ // use only one view (first or last?), keep rest as orphaned for further consideration
+ knownViewChildren.remove(perfectMatch.getFirst());
+ }
+ }
+ // those left in knownViewChildren are subject to removal - they are our diagram elements we didn't find match to,
+ // or those we have potential matches to, and thus need to be recreated, preserving size/location information.
+ orphaned.addAll(knownViewChildren);
+ //
+ ArrayList<CreateViewRequest.ViewDescriptor> viewDescriptors = new ArrayList<CreateViewRequest.ViewDescriptor>(
+ childDescriptors.size());
+ for (ComrelNodeDescriptor next : childDescriptors) {
+ String hint = ComrelVisualIDRegistry.getType(next.getVisualID());
+ IAdaptable elementAdapter = new CanonicalElementAdapter(
+ next.getModelElement(), hint);
+ CreateViewRequest.ViewDescriptor descriptor = new CreateViewRequest.ViewDescriptor(
+ elementAdapter, Node.class, hint, ViewUtil.APPEND, false,
+ host().getDiagramPreferencesHint());
+ viewDescriptors.add(descriptor);
+ }
+
+ boolean changed = deleteViews(orphaned.iterator());
+ //
+ CreateViewRequest request = getCreateViewRequest(viewDescriptors);
+ Command cmd = getCreateViewCommand(request);
+ if (cmd != null && cmd.canExecute()) {
+ SetViewMutabilityCommand.makeMutable(
+ new EObjectAdapter(host().getNotationView())).execute();
+ executeCommand(cmd);
+ @SuppressWarnings("unchecked")
+ List<IAdaptable> nl = (List<IAdaptable>) request.getNewObject();
+ createdViews.addAll(nl);
+ }
+ if (changed || createdViews.size() > 0) {
+ postProcessRefreshSemantic(createdViews);
+ }
+ if (createdViews.size() > 1) {
+ // perform a layout of the container
+ DeferredLayoutCommand layoutCmd = new DeferredLayoutCommand(host()
+ .getEditingDomain(), createdViews, host());
+ executeCommand(new ICommandProxy(layoutCmd));
+ }
+
+ makeViewsImmutable(createdViews);
+ }
+}
diff --git a/org.eclipse.emf.refactor.comrel.diagram/src/comrel/diagram/edit/policies/SingleQueuedUnitSingleQueuedUnitHelperUnitsCompartment5ItemSemanticEditPolicy.java b/org.eclipse.emf.refactor.comrel.diagram/src/comrel/diagram/edit/policies/SingleQueuedUnitSingleQueuedUnitHelperUnitsCompartment5ItemSemanticEditPolicy.java
new file mode 100644
index 0000000..a252c92
--- /dev/null
+++ b/org.eclipse.emf.refactor.comrel.diagram/src/comrel/diagram/edit/policies/SingleQueuedUnitSingleQueuedUnitHelperUnitsCompartment5ItemSemanticEditPolicy.java
@@ -0,0 +1,47 @@
+/*
+ *
+ */
+package comrel.diagram.edit.policies;
+
+import org.eclipse.gef.commands.Command;
+import org.eclipse.gmf.runtime.emf.type.core.requests.CreateElementRequest;
+
+import comrel.diagram.edit.commands.MultiFeatureUnit4CreateCommand;
+import comrel.diagram.edit.commands.MultiFilterUnit4CreateCommand;
+import comrel.diagram.edit.commands.SingleFeatureUnit4CreateCommand;
+import comrel.diagram.edit.commands.SingleFilterUnit4CreateCommand;
+import comrel.diagram.providers.ComrelElementTypes;
+
+/**
+ * @generated
+ */
+public class SingleQueuedUnitSingleQueuedUnitHelperUnitsCompartment5ItemSemanticEditPolicy
+ extends ComrelBaseItemSemanticEditPolicy {
+
+ /**
+ * @generated
+ */
+ public SingleQueuedUnitSingleQueuedUnitHelperUnitsCompartment5ItemSemanticEditPolicy() {
+ super(ComrelElementTypes.SingleQueuedUnit_3065);
+ }
+
+ /**
+ * @generated
+ */
+ protected Command getCreateCommand(CreateElementRequest req) {
+ if (ComrelElementTypes.SingleFeatureUnit_3055 == req.getElementType()) {
+ return getGEFWrapper(new SingleFeatureUnit4CreateCommand(req));
+ }
+ if (ComrelElementTypes.MultiFeatureUnit_3056 == req.getElementType()) {
+ return getGEFWrapper(new MultiFeatureUnit4CreateCommand(req));
+ }
+ if (ComrelElementTypes.SingleFilterUnit_3057 == req.getElementType()) {
+ return getGEFWrapper(new SingleFilterUnit4CreateCommand(req));
+ }
+ if (ComrelElementTypes.MultiFilterUnit_3058 == req.getElementType()) {
+ return getGEFWrapper(new MultiFilterUnit4CreateCommand(req));
+ }
+ return super.getCreateCommand(req);
+ }
+
+}
diff --git a/org.eclipse.emf.refactor.comrel.diagram/src/comrel/diagram/edit/policies/SingleQueuedUnitSingleQueuedUnitHelperUnitsCompartment6CanonicalEditPolicy.java b/org.eclipse.emf.refactor.comrel.diagram/src/comrel/diagram/edit/policies/SingleQueuedUnitSingleQueuedUnitHelperUnitsCompartment6CanonicalEditPolicy.java
new file mode 100644
index 0000000..0d9749a
--- /dev/null
+++ b/org.eclipse.emf.refactor.comrel.diagram/src/comrel/diagram/edit/policies/SingleQueuedUnitSingleQueuedUnitHelperUnitsCompartment6CanonicalEditPolicy.java
@@ -0,0 +1,173 @@
+/*
+ *
+ */
+package comrel.diagram.edit.policies;
+
+import java.util.ArrayList;
+import java.util.Collection;
+import java.util.Iterator;
+import java.util.LinkedList;
+import java.util.List;
+
+import org.eclipse.core.runtime.IAdaptable;
+import org.eclipse.emf.ecore.EObject;
+import org.eclipse.emf.ecore.EStructuralFeature;
+import org.eclipse.gef.commands.Command;
+import org.eclipse.gmf.runtime.diagram.core.util.ViewUtil;
+import org.eclipse.gmf.runtime.diagram.ui.commands.DeferredLayoutCommand;
+import org.eclipse.gmf.runtime.diagram.ui.commands.ICommandProxy;
+import org.eclipse.gmf.runtime.diagram.ui.commands.SetViewMutabilityCommand;
+import org.eclipse.gmf.runtime.diagram.ui.editpolicies.CanonicalEditPolicy;
+import org.eclipse.gmf.runtime.diagram.ui.requests.CreateViewRequest;
+import org.eclipse.gmf.runtime.emf.core.util.EObjectAdapter;
+import org.eclipse.gmf.runtime.notation.Node;
+import org.eclipse.gmf.runtime.notation.View;
+
+import comrel.ComrelPackage;
+import comrel.diagram.edit.parts.MultiFeatureUnit4EditPart;
+import comrel.diagram.edit.parts.MultiFilterUnit4EditPart;
+import comrel.diagram.edit.parts.SingleFeatureUnit4EditPart;
+import comrel.diagram.edit.parts.SingleFilterUnit4EditPart;
+import comrel.diagram.part.ComrelDiagramUpdater;
+import comrel.diagram.part.ComrelNodeDescriptor;
+import comrel.diagram.part.ComrelVisualIDRegistry;
+
+/**
+ * @generated
+ */
+public class SingleQueuedUnitSingleQueuedUnitHelperUnitsCompartment6CanonicalEditPolicy
+ extends CanonicalEditPolicy {
+
+ /**
+ * @generated
+ */
+ protected EStructuralFeature getFeatureToSynchronize() {
+ return ComrelPackage.eINSTANCE.getSingleQueuedUnit_HelperUnits();
+ }
+
+ /**
+ * @generated
+ */
+ @SuppressWarnings("rawtypes")
+ protected List getSemanticChildrenList() {
+ View viewObject = (View) getHost().getModel();
+ LinkedList<EObject> result = new LinkedList<EObject>();
+ List<ComrelNodeDescriptor> childDescriptors = ComrelDiagramUpdater
+ .getSingleQueuedUnitSingleQueuedUnitHelperUnitsCompartment_7055SemanticChildren(viewObject);
+ for (ComrelNodeDescriptor d : childDescriptors) {
+ result.add(d.getModelElement());
+ }
+ return result;
+ }
+
+ /**
+ * @generated
+ */
+ protected boolean isOrphaned(Collection<EObject> semanticChildren,
+ final View view) {
+ return isMyDiagramElement(view)
+ && !semanticChildren.contains(view.getElement());
+ }
+
+ /**
+ * @generated
+ */
+ private boolean isMyDiagramElement(View view) {
+ int visualID = ComrelVisualIDRegistry.getVisualID(view);
+ switch (visualID) {
+ case SingleFeatureUnit4EditPart.VISUAL_ID:
+ case MultiFeatureUnit4EditPart.VISUAL_ID:
+ case SingleFilterUnit4EditPart.VISUAL_ID:
+ case MultiFilterUnit4EditPart.VISUAL_ID:
+ return true;
+ }
+ return false;
+ }
+
+ /**
+ * @generated
+ */
+ protected void refreshSemantic() {
+ if (resolveSemanticElement() == null) {
+ return;
+ }
+ LinkedList<IAdaptable> createdViews = new LinkedList<IAdaptable>();
+ List<ComrelNodeDescriptor> childDescriptors = ComrelDiagramUpdater
+ .getSingleQueuedUnitSingleQueuedUnitHelperUnitsCompartment_7055SemanticChildren((View) getHost()
+ .getModel());
+ LinkedList<View> orphaned = new LinkedList<View>();
+ // we care to check only views we recognize as ours
+ LinkedList<View> knownViewChildren = new LinkedList<View>();
+ for (View v : getViewChildren()) {
+ if (isMyDiagramElement(v)) {
+ knownViewChildren.add(v);
+ }
+ }
+ // alternative to #cleanCanonicalSemanticChildren(getViewChildren(), semanticChildren)
+ //
+ // iteration happens over list of desired semantic elements, trying to find best matching View, while original CEP
+ // iterates views, potentially losing view (size/bounds) information - i.e. if there are few views to reference same EObject, only last one
+ // to answer isOrphaned == true will be used for the domain element representation, see #cleanCanonicalSemanticChildren()
+ for (Iterator<ComrelNodeDescriptor> descriptorsIterator = childDescriptors
+ .iterator(); descriptorsIterator.hasNext();) {
+ ComrelNodeDescriptor next = descriptorsIterator.next();
+ String hint = ComrelVisualIDRegistry.getType(next.getVisualID());
+ LinkedList<View> perfectMatch = new LinkedList<View>(); // both semanticElement and hint match that of NodeDescriptor
+ for (View childView : getViewChildren()) {
+ EObject semanticElement = childView.getElement();
+ if (next.getModelElement().equals(semanticElement)) {
+ if (hint.equals(childView.getType())) {
+ perfectMatch.add(childView);
+ // actually, can stop iteration over view children here, but
+ // may want to use not the first view but last one as a 'real' match (the way original CEP does
+ // with its trick with viewToSemanticMap inside #cleanCanonicalSemanticChildren
+ }
+ }
+ }
+ if (perfectMatch.size() > 0) {
+ descriptorsIterator.remove(); // precise match found no need to create anything for the NodeDescriptor
+ // use only one view (first or last?), keep rest as orphaned for further consideration
+ knownViewChildren.remove(perfectMatch.getFirst());
+ }
+ }
+ // those left in knownViewChildren are subject to removal - they are our diagram elements we didn't find match to,
+ // or those we have potential matches to, and thus need to be recreated, preserving size/location information.
+ orphaned.addAll(knownViewChildren);
+ //
+ ArrayList<CreateViewRequest.ViewDescriptor> viewDescriptors = new ArrayList<CreateViewRequest.ViewDescriptor>(
+ childDescriptors.size());
+ for (ComrelNodeDescriptor next : childDescriptors) {
+ String hint = ComrelVisualIDRegistry.getType(next.getVisualID());
+ IAdaptable elementAdapter = new CanonicalElementAdapter(
+ next.getModelElement(), hint);
+ CreateViewRequest.ViewDescriptor descriptor = new CreateViewRequest.ViewDescriptor(
+ elementAdapter, Node.class, hint, ViewUtil.APPEND, false,
+ host().getDiagramPreferencesHint());
+ viewDescriptors.add(descriptor);
+ }
+
+ boolean changed = deleteViews(orphaned.iterator());
+ //
+ CreateViewRequest request = getCreateViewRequest(viewDescriptors);
+ Command cmd = getCreateViewCommand(request);
+ if (cmd != null && cmd.canExecute()) {
+ SetViewMutabilityCommand.makeMutable(
+ new EObjectAdapter(host().getNotationView())).execute();
+ executeCommand(cmd);
+ @SuppressWarnings("unchecked")
+ List<IAdaptable> nl = (List<IAdaptable>) request.getNewObject();
+ createdViews.addAll(nl);
+ }
+ if (changed || createdViews.size() > 0) {
+ postProcessRefreshSemantic(createdViews);
+ }
+ if (createdViews.size() > 1) {
+ // perform a layout of the container
+ DeferredLayoutCommand layoutCmd = new DeferredLayoutCommand(host()
+ .getEditingDomain(), createdViews, host());
+ executeCommand(new ICommandProxy(layoutCmd));
+ }
+
+ makeViewsImmutable(createdViews);
+ }
+}
diff --git a/org.eclipse.emf.refactor.comrel.diagram/src/comrel/diagram/edit/policies/SingleQueuedUnitSingleQueuedUnitHelperUnitsCompartment6ItemSemanticEditPolicy.java b/org.eclipse.emf.refactor.comrel.diagram/src/comrel/diagram/edit/policies/SingleQueuedUnitSingleQueuedUnitHelperUnitsCompartment6ItemSemanticEditPolicy.java
new file mode 100644
index 0000000..a6b04d5
--- /dev/null
+++ b/org.eclipse.emf.refactor.comrel.diagram/src/comrel/diagram/edit/policies/SingleQueuedUnitSingleQueuedUnitHelperUnitsCompartment6ItemSemanticEditPolicy.java
@@ -0,0 +1,47 @@
+/*
+ *
+ */
+package comrel.diagram.edit.policies;
+
+import org.eclipse.gef.commands.Command;
+import org.eclipse.gmf.runtime.emf.type.core.requests.CreateElementRequest;
+
+import comrel.diagram.edit.commands.MultiFeatureUnit4CreateCommand;
+import comrel.diagram.edit.commands.MultiFilterUnit4CreateCommand;
+import comrel.diagram.edit.commands.SingleFeatureUnit4CreateCommand;
+import comrel.diagram.edit.commands.SingleFilterUnit4CreateCommand;
+import comrel.diagram.providers.ComrelElementTypes;
+
+/**
+ * @generated
+ */
+public class SingleQueuedUnitSingleQueuedUnitHelperUnitsCompartment6ItemSemanticEditPolicy
+ extends ComrelBaseItemSemanticEditPolicy {
+
+ /**
+ * @generated
+ */
+ public SingleQueuedUnitSingleQueuedUnitHelperUnitsCompartment6ItemSemanticEditPolicy() {
+ super(ComrelElementTypes.SingleQueuedUnit_3067);
+ }
+
+ /**
+ * @generated
+ */
+ protected Command getCreateCommand(CreateElementRequest req) {
+ if (ComrelElementTypes.SingleFeatureUnit_3055 == req.getElementType()) {
+ return getGEFWrapper(new SingleFeatureUnit4CreateCommand(req));
+ }
+ if (ComrelElementTypes.MultiFeatureUnit_3056 == req.getElementType()) {
+ return getGEFWrapper(new MultiFeatureUnit4CreateCommand(req));
+ }
+ if (ComrelElementTypes.SingleFilterUnit_3057 == req.getElementType()) {
+ return getGEFWrapper(new SingleFilterUnit4CreateCommand(req));
+ }
+ if (ComrelElementTypes.MultiFilterUnit_3058 == req.getElementType()) {
+ return getGEFWrapper(new MultiFilterUnit4CreateCommand(req));
+ }
+ return super.getCreateCommand(req);
+ }
+
+}
diff --git a/org.eclipse.emf.refactor.comrel.diagram/src/comrel/diagram/edit/policies/SingleQueuedUnitSingleQueuedUnitHelperUnitsCompartment7CanonicalEditPolicy.java b/org.eclipse.emf.refactor.comrel.diagram/src/comrel/diagram/edit/policies/SingleQueuedUnitSingleQueuedUnitHelperUnitsCompartment7CanonicalEditPolicy.java
new file mode 100644
index 0000000..1bded96
--- /dev/null
+++ b/org.eclipse.emf.refactor.comrel.diagram/src/comrel/diagram/edit/policies/SingleQueuedUnitSingleQueuedUnitHelperUnitsCompartment7CanonicalEditPolicy.java
@@ -0,0 +1,173 @@
+/*
+ *
+ */
+package comrel.diagram.edit.policies;
+
+import java.util.ArrayList;
+import java.util.Collection;
+import java.util.Iterator;
+import java.util.LinkedList;
+import java.util.List;
+
+import org.eclipse.core.runtime.IAdaptable;
+import org.eclipse.emf.ecore.EObject;
+import org.eclipse.emf.ecore.EStructuralFeature;
+import org.eclipse.gef.commands.Command;
+import org.eclipse.gmf.runtime.diagram.core.util.ViewUtil;
+import org.eclipse.gmf.runtime.diagram.ui.commands.DeferredLayoutCommand;
+import org.eclipse.gmf.runtime.diagram.ui.commands.ICommandProxy;
+import org.eclipse.gmf.runtime.diagram.ui.commands.SetViewMutabilityCommand;
+import org.eclipse.gmf.runtime.diagram.ui.editpolicies.CanonicalEditPolicy;
+import org.eclipse.gmf.runtime.diagram.ui.requests.CreateViewRequest;
+import org.eclipse.gmf.runtime.emf.core.util.EObjectAdapter;
+import org.eclipse.gmf.runtime.notation.Node;
+import org.eclipse.gmf.runtime.notation.View;
+
+import comrel.ComrelPackage;
+import comrel.diagram.edit.parts.MultiFeatureUnit4EditPart;
+import comrel.diagram.edit.parts.MultiFilterUnit4EditPart;
+import comrel.diagram.edit.parts.SingleFeatureUnit4EditPart;
+import comrel.diagram.edit.parts.SingleFilterUnit4EditPart;
+import comrel.diagram.part.ComrelDiagramUpdater;
+import comrel.diagram.part.ComrelNodeDescriptor;
+import comrel.diagram.part.ComrelVisualIDRegistry;
+
+/**
+ * @generated
+ */
+public class SingleQueuedUnitSingleQueuedUnitHelperUnitsCompartment7CanonicalEditPolicy
+ extends CanonicalEditPolicy {
+
+ /**
+ * @generated
+ */
+ protected EStructuralFeature getFeatureToSynchronize() {
+ return ComrelPackage.eINSTANCE.getSingleQueuedUnit_HelperUnits();
+ }
+
+ /**
+ * @generated
+ */
+ @SuppressWarnings("rawtypes")
+ protected List getSemanticChildrenList() {
+ View viewObject = (View) getHost().getModel();
+ LinkedList<EObject> result = new LinkedList<EObject>();
+ List<ComrelNodeDescriptor> childDescriptors = ComrelDiagramUpdater
+ .getSingleQueuedUnitSingleQueuedUnitHelperUnitsCompartment_7077SemanticChildren(viewObject);
+ for (ComrelNodeDescriptor d : childDescriptors) {
+ result.add(d.getModelElement());
+ }
+ return result;
+ }
+
+ /**
+ * @generated
+ */
+ protected boolean isOrphaned(Collection<EObject> semanticChildren,
+ final View view) {
+ return isMyDiagramElement(view)
+ && !semanticChildren.contains(view.getElement());
+ }
+
+ /**
+ * @generated
+ */
+ private boolean isMyDiagramElement(View view) {
+ int visualID = ComrelVisualIDRegistry.getVisualID(view);
+ switch (visualID) {
+ case SingleFeatureUnit4EditPart.VISUAL_ID:
+ case MultiFeatureUnit4EditPart.VISUAL_ID:
+ case SingleFilterUnit4EditPart.VISUAL_ID:
+ case MultiFilterUnit4EditPart.VISUAL_ID:
+ return true;
+ }
+ return false;
+ }
+
+ /**
+ * @generated
+ */
+ protected void refreshSemantic() {
+ if (resolveSemanticElement() == null) {
+ return;
+ }
+ LinkedList<IAdaptable> createdViews = new LinkedList<IAdaptable>();
+ List<ComrelNodeDescriptor> childDescriptors = ComrelDiagramUpdater
+ .getSingleQueuedUnitSingleQueuedUnitHelperUnitsCompartment_7077SemanticChildren((View) getHost()
+ .getModel());
+ LinkedList<View> orphaned = new LinkedList<View>();
+ // we care to check only views we recognize as ours
+ LinkedList<View> knownViewChildren = new LinkedList<View>();
+ for (View v : getViewChildren()) {
+ if (isMyDiagramElement(v)) {
+ knownViewChildren.add(v);
+ }
+ }
+ // alternative to #cleanCanonicalSemanticChildren(getViewChildren(), semanticChildren)
+ //
+ // iteration happens over list of desired semantic elements, trying to find best matching View, while original CEP
+ // iterates views, potentially losing view (size/bounds) information - i.e. if there are few views to reference same EObject, only last one
+ // to answer isOrphaned == true will be used for the domain element representation, see #cleanCanonicalSemanticChildren()
+ for (Iterator<ComrelNodeDescriptor> descriptorsIterator = childDescriptors
+ .iterator(); descriptorsIterator.hasNext();) {
+ ComrelNodeDescriptor next = descriptorsIterator.next();
+ String hint = ComrelVisualIDRegistry.getType(next.getVisualID());
+ LinkedList<View> perfectMatch = new LinkedList<View>(); // both semanticElement and hint match that of NodeDescriptor
+ for (View childView : getViewChildren()) {
+ EObject semanticElement = childView.getElement();
+ if (next.getModelElement().equals(semanticElement)) {
+ if (hint.equals(childView.getType())) {
+ perfectMatch.add(childView);
+ // actually, can stop iteration over view children here, but
+ // may want to use not the first view but last one as a 'real' match (the way original CEP does
+ // with its trick with viewToSemanticMap inside #cleanCanonicalSemanticChildren
+ }
+ }
+ }
+ if (perfectMatch.size() > 0) {
+ descriptorsIterator.remove(); // precise match found no need to create anything for the NodeDescriptor
+ // use only one view (first or last?), keep rest as orphaned for further consideration
+ knownViewChildren.remove(perfectMatch.getFirst());
+ }
+ }
+ // those left in knownViewChildren are subject to removal - they are our diagram elements we didn't find match to,
+ // or those we have potential matches to, and thus need to be recreated, preserving size/location information.
+ orphaned.addAll(knownViewChildren);
+ //
+ ArrayList<CreateViewRequest.ViewDescriptor> viewDescriptors = new ArrayList<CreateViewRequest.ViewDescriptor>(
+ childDescriptors.size());
+ for (ComrelNodeDescriptor next : childDescriptors) {
+ String hint = ComrelVisualIDRegistry.getType(next.getVisualID());
+ IAdaptable elementAdapter = new CanonicalElementAdapter(
+ next.getModelElement(), hint);
+ CreateViewRequest.ViewDescriptor descriptor = new CreateViewRequest.ViewDescriptor(
+ elementAdapter, Node.class, hint, ViewUtil.APPEND, false,
+ host().getDiagramPreferencesHint());
+ viewDescriptors.add(descriptor);
+ }
+
+ boolean changed = deleteViews(orphaned.iterator());
+ //
+ CreateViewRequest request = getCreateViewRequest(viewDescriptors);
+ Command cmd = getCreateViewCommand(request);
+ if (cmd != null && cmd.canExecute()) {
+ SetViewMutabilityCommand.makeMutable(
+ new EObjectAdapter(host().getNotationView())).execute();
+ executeCommand(cmd);
+ @SuppressWarnings("unchecked")
+ List<IAdaptable> nl = (List<IAdaptable>) request.getNewObject();
+ createdViews.addAll(nl);
+ }
+ if (changed || createdViews.size() > 0) {
+ postProcessRefreshSemantic(createdViews);
+ }
+ if (createdViews.size() > 1) {
+ // perform a layout of the container
+ DeferredLayoutCommand layoutCmd = new DeferredLayoutCommand(host()
+ .getEditingDomain(), createdViews, host());
+ executeCommand(new ICommandProxy(layoutCmd));
+ }
+
+ makeViewsImmutable(createdViews);
+ }
+}
diff --git a/org.eclipse.emf.refactor.comrel.diagram/src/comrel/diagram/edit/policies/SingleQueuedUnitSingleQueuedUnitHelperUnitsCompartment7ItemSemanticEditPolicy.java b/org.eclipse.emf.refactor.comrel.diagram/src/comrel/diagram/edit/policies/SingleQueuedUnitSingleQueuedUnitHelperUnitsCompartment7ItemSemanticEditPolicy.java
new file mode 100644
index 0000000..283cf30
--- /dev/null
+++ b/org.eclipse.emf.refactor.comrel.diagram/src/comrel/diagram/edit/policies/SingleQueuedUnitSingleQueuedUnitHelperUnitsCompartment7ItemSemanticEditPolicy.java
@@ -0,0 +1,47 @@
+/*
+ *
+ */
+package comrel.diagram.edit.policies;
+
+import org.eclipse.gef.commands.Command;
+import org.eclipse.gmf.runtime.emf.type.core.requests.CreateElementRequest;
+
+import comrel.diagram.edit.commands.MultiFeatureUnit4CreateCommand;
+import comrel.diagram.edit.commands.MultiFilterUnit4CreateCommand;
+import comrel.diagram.edit.commands.SingleFeatureUnit4CreateCommand;
+import comrel.diagram.edit.commands.SingleFilterUnit4CreateCommand;
+import comrel.diagram.providers.ComrelElementTypes;
+
+/**
+ * @generated
+ */
+public class SingleQueuedUnitSingleQueuedUnitHelperUnitsCompartment7ItemSemanticEditPolicy
+ extends ComrelBaseItemSemanticEditPolicy {
+
+ /**
+ * @generated
+ */
+ public SingleQueuedUnitSingleQueuedUnitHelperUnitsCompartment7ItemSemanticEditPolicy() {
+ super(ComrelElementTypes.SingleQueuedUnit_2004);
+ }
+
+ /**
+ * @generated
+ */
+ protected Command getCreateCommand(CreateElementRequest req) {
+ if (ComrelElementTypes.SingleFeatureUnit_3055 == req.getElementType()) {
+ return getGEFWrapper(new SingleFeatureUnit4CreateCommand(req));
+ }
+ if (ComrelElementTypes.MultiFeatureUnit_3056 == req.getElementType()) {
+ return getGEFWrapper(new MultiFeatureUnit4CreateCommand(req));
+ }
+ if (ComrelElementTypes.SingleFilterUnit_3057 == req.getElementType()) {
+ return getGEFWrapper(new SingleFilterUnit4CreateCommand(req));
+ }
+ if (ComrelElementTypes.MultiFilterUnit_3058 == req.getElementType()) {
+ return getGEFWrapper(new MultiFilterUnit4CreateCommand(req));
+ }
+ return super.getCreateCommand(req);
+ }
+
+}
diff --git a/org.eclipse.emf.refactor.comrel.diagram/src/comrel/diagram/edit/policies/SingleQueuedUnitSingleQueuedUnitHelperUnitsCompartmentCanonicalEditPolicy.java b/org.eclipse.emf.refactor.comrel.diagram/src/comrel/diagram/edit/policies/SingleQueuedUnitSingleQueuedUnitHelperUnitsCompartmentCanonicalEditPolicy.java
new file mode 100644
index 0000000..79ee817
--- /dev/null
+++ b/org.eclipse.emf.refactor.comrel.diagram/src/comrel/diagram/edit/policies/SingleQueuedUnitSingleQueuedUnitHelperUnitsCompartmentCanonicalEditPolicy.java
@@ -0,0 +1,173 @@
+/*
+ *
+ */
+package comrel.diagram.edit.policies;
+
+import java.util.ArrayList;
+import java.util.Collection;
+import java.util.Iterator;
+import java.util.LinkedList;
+import java.util.List;
+
+import org.eclipse.core.runtime.IAdaptable;
+import org.eclipse.emf.ecore.EObject;
+import org.eclipse.emf.ecore.EStructuralFeature;
+import org.eclipse.gef.commands.Command;
+import org.eclipse.gmf.runtime.diagram.core.util.ViewUtil;
+import org.eclipse.gmf.runtime.diagram.ui.commands.DeferredLayoutCommand;
+import org.eclipse.gmf.runtime.diagram.ui.commands.ICommandProxy;
+import org.eclipse.gmf.runtime.diagram.ui.commands.SetViewMutabilityCommand;
+import org.eclipse.gmf.runtime.diagram.ui.editpolicies.CanonicalEditPolicy;
+import org.eclipse.gmf.runtime.diagram.ui.requests.CreateViewRequest;
+import org.eclipse.gmf.runtime.emf.core.util.EObjectAdapter;
+import org.eclipse.gmf.runtime.notation.Node;
+import org.eclipse.gmf.runtime.notation.View;
+
+import comrel.ComrelPackage;
+import comrel.diagram.edit.parts.MultiFeatureUnit4EditPart;
+import comrel.diagram.edit.parts.MultiFilterUnit4EditPart;
+import comrel.diagram.edit.parts.SingleFeatureUnit4EditPart;
+import comrel.diagram.edit.parts.SingleFilterUnit4EditPart;
+import comrel.diagram.part.ComrelDiagramUpdater;
+import comrel.diagram.part.ComrelNodeDescriptor;
+import comrel.diagram.part.ComrelVisualIDRegistry;
+
+/**
+ * @generated
+ */
+public class SingleQueuedUnitSingleQueuedUnitHelperUnitsCompartmentCanonicalEditPolicy
+ extends CanonicalEditPolicy {
+
+ /**
+ * @generated
+ */
+ protected EStructuralFeature getFeatureToSynchronize() {
+ return ComrelPackage.eINSTANCE.getSingleQueuedUnit_HelperUnits();
+ }
+
+ /**
+ * @generated
+ */
+ @SuppressWarnings("rawtypes")
+ protected List getSemanticChildrenList() {
+ View viewObject = (View) getHost().getModel();
+ LinkedList<EObject> result = new LinkedList<EObject>();
+ List<ComrelNodeDescriptor> childDescriptors = ComrelDiagramUpdater
+ .getSingleQueuedUnitSingleQueuedUnitHelperUnitsCompartment_7009SemanticChildren(viewObject);
+ for (ComrelNodeDescriptor d : childDescriptors) {
+ result.add(d.getModelElement());
+ }
+ return result;
+ }
+
+ /**
+ * @generated
+ */
+ protected boolean isOrphaned(Collection<EObject> semanticChildren,
+ final View view) {
+ return isMyDiagramElement(view)
+ && !semanticChildren.contains(view.getElement());
+ }
+
+ /**
+ * @generated
+ */
+ private boolean isMyDiagramElement(View view) {
+ int visualID = ComrelVisualIDRegistry.getVisualID(view);
+ switch (visualID) {
+ case SingleFeatureUnit4EditPart.VISUAL_ID:
+ case MultiFeatureUnit4EditPart.VISUAL_ID:
+ case SingleFilterUnit4EditPart.VISUAL_ID:
+ case MultiFilterUnit4EditPart.VISUAL_ID:
+ return true;
+ }
+ return false;
+ }
+
+ /**
+ * @generated
+ */
+ protected void refreshSemantic() {
+ if (resolveSemanticElement() == null) {
+ return;
+ }
+ LinkedList<IAdaptable> createdViews = new LinkedList<IAdaptable>();
+ List<ComrelNodeDescriptor> childDescriptors = ComrelDiagramUpdater
+ .getSingleQueuedUnitSingleQueuedUnitHelperUnitsCompartment_7009SemanticChildren((View) getHost()
+ .getModel());
+ LinkedList<View> orphaned = new LinkedList<View>();
+ // we care to check only views we recognize as ours
+ LinkedList<View> knownViewChildren = new LinkedList<View>();
+ for (View v : getViewChildren()) {
+ if (isMyDiagramElement(v)) {
+ knownViewChildren.add(v);
+ }
+ }
+ // alternative to #cleanCanonicalSemanticChildren(getViewChildren(), semanticChildren)
+ //
+ // iteration happens over list of desired semantic elements, trying to find best matching View, while original CEP
+ // iterates views, potentially losing view (size/bounds) information - i.e. if there are few views to reference same EObject, only last one
+ // to answer isOrphaned == true will be used for the domain element representation, see #cleanCanonicalSemanticChildren()
+ for (Iterator<ComrelNodeDescriptor> descriptorsIterator = childDescriptors
+ .iterator(); descriptorsIterator.hasNext();) {
+ ComrelNodeDescriptor next = descriptorsIterator.next();
+ String hint = ComrelVisualIDRegistry.getType(next.getVisualID());
+ LinkedList<View> perfectMatch = new LinkedList<View>(); // both semanticElement and hint match that of NodeDescriptor
+ for (View childView : getViewChildren()) {
+ EObject semanticElement = childView.getElement();
+ if (next.getModelElement().equals(semanticElement)) {
+ if (hint.equals(childView.getType())) {
+ perfectMatch.add(childView);
+ // actually, can stop iteration over view children here, but
+ // may want to use not the first view but last one as a 'real' match (the way original CEP does
+ // with its trick with viewToSemanticMap inside #cleanCanonicalSemanticChildren
+ }
+ }
+ }
+ if (perfectMatch.size() > 0) {
+ descriptorsIterator.remove(); // precise match found no need to create anything for the NodeDescriptor
+ // use only one view (first or last?), keep rest as orphaned for further consideration
+ knownViewChildren.remove(perfectMatch.getFirst());
+ }
+ }
+ // those left in knownViewChildren are subject to removal - they are our diagram elements we didn't find match to,
+ // or those we have potential matches to, and thus need to be recreated, preserving size/location information.
+ orphaned.addAll(knownViewChildren);
+ //
+ ArrayList<CreateViewRequest.ViewDescriptor> viewDescriptors = new ArrayList<CreateViewRequest.ViewDescriptor>(
+ childDescriptors.size());
+ for (ComrelNodeDescriptor next : childDescriptors) {
+ String hint = ComrelVisualIDRegistry.getType(next.getVisualID());
+ IAdaptable elementAdapter = new CanonicalElementAdapter(
+ next.getModelElement(), hint);
+ CreateViewRequest.ViewDescriptor descriptor = new CreateViewRequest.ViewDescriptor(
+ elementAdapter, Node.class, hint, ViewUtil.APPEND, false,
+ host().getDiagramPreferencesHint());
+ viewDescriptors.add(descriptor);
+ }
+
+ boolean changed = deleteViews(orphaned.iterator());
+ //
+ CreateViewRequest request = getCreateViewRequest(viewDescriptors);
+ Command cmd = getCreateViewCommand(request);
+ if (cmd != null && cmd.canExecute()) {
+ SetViewMutabilityCommand.makeMutable(
+ new EObjectAdapter(host().getNotationView())).execute();
+ executeCommand(cmd);
+ @SuppressWarnings("unchecked")
+ List<IAdaptable> nl = (List<IAdaptable>) request.getNewObject();
+ createdViews.addAll(nl);
+ }
+ if (changed || createdViews.size() > 0) {
+ postProcessRefreshSemantic(createdViews);
+ }
+ if (createdViews.size() > 1) {
+ // perform a layout of the container
+ DeferredLayoutCommand layoutCmd = new DeferredLayoutCommand(host()
+ .getEditingDomain(), createdViews, host());
+ executeCommand(new ICommandProxy(layoutCmd));
+ }
+
+ makeViewsImmutable(createdViews);
+ }
+}
diff --git a/org.eclipse.emf.refactor.comrel.diagram/src/comrel/diagram/edit/policies/SingleQueuedUnitSingleQueuedUnitHelperUnitsCompartmentItemSemanticEditPolicy.java b/org.eclipse.emf.refactor.comrel.diagram/src/comrel/diagram/edit/policies/SingleQueuedUnitSingleQueuedUnitHelperUnitsCompartmentItemSemanticEditPolicy.java
new file mode 100644
index 0000000..fd1bf50
--- /dev/null
+++ b/org.eclipse.emf.refactor.comrel.diagram/src/comrel/diagram/edit/policies/SingleQueuedUnitSingleQueuedUnitHelperUnitsCompartmentItemSemanticEditPolicy.java
@@ -0,0 +1,47 @@
+/*
+ *
+ */
+package comrel.diagram.edit.policies;
+
+import org.eclipse.gef.commands.Command;
+import org.eclipse.gmf.runtime.emf.type.core.requests.CreateElementRequest;
+
+import comrel.diagram.edit.commands.MultiFeatureUnit4CreateCommand;
+import comrel.diagram.edit.commands.MultiFilterUnit4CreateCommand;
+import comrel.diagram.edit.commands.SingleFeatureUnit4CreateCommand;
+import comrel.diagram.edit.commands.SingleFilterUnit4CreateCommand;
+import comrel.diagram.providers.ComrelElementTypes;
+
+/**
+ * @generated
+ */
+public class SingleQueuedUnitSingleQueuedUnitHelperUnitsCompartmentItemSemanticEditPolicy
+ extends ComrelBaseItemSemanticEditPolicy {
+
+ /**
+ * @generated
+ */
+ public SingleQueuedUnitSingleQueuedUnitHelperUnitsCompartmentItemSemanticEditPolicy() {
+ super(ComrelElementTypes.SingleQueuedUnit_3022);
+ }
+
+ /**
+ * @generated
+ */
+ protected Command getCreateCommand(CreateElementRequest req) {
+ if (ComrelElementTypes.SingleFeatureUnit_3055 == req.getElementType()) {
+ return getGEFWrapper(new SingleFeatureUnit4CreateCommand(req));
+ }
+ if (ComrelElementTypes.MultiFeatureUnit_3056 == req.getElementType()) {
+ return getGEFWrapper(new MultiFeatureUnit4CreateCommand(req));
+ }
+ if (ComrelElementTypes.SingleFilterUnit_3057 == req.getElementType()) {
+ return getGEFWrapper(new SingleFilterUnit4CreateCommand(req));
+ }
+ if (ComrelElementTypes.MultiFilterUnit_3058 == req.getElementType()) {
+ return getGEFWrapper(new MultiFilterUnit4CreateCommand(req));
+ }
+ return super.getCreateCommand(req);
+ }
+
+}
diff --git a/org.eclipse.emf.refactor.comrel.diagram/src/comrel/diagram/edit/policies/SingleQueuedUnitSingleQueuedUnitRefactoringUnitCompartment2CanonicalEditPolicy.java b/org.eclipse.emf.refactor.comrel.diagram/src/comrel/diagram/edit/policies/SingleQueuedUnitSingleQueuedUnitRefactoringUnitCompartment2CanonicalEditPolicy.java
new file mode 100644
index 0000000..3bdd6da
--- /dev/null
+++ b/org.eclipse.emf.refactor.comrel.diagram/src/comrel/diagram/edit/policies/SingleQueuedUnitSingleQueuedUnitRefactoringUnitCompartment2CanonicalEditPolicy.java
@@ -0,0 +1,177 @@
+/*
+ *
+ */
+package comrel.diagram.edit.policies;
+
+import java.util.ArrayList;
+import java.util.Collection;
+import java.util.Iterator;
+import java.util.LinkedList;
+import java.util.List;
+
+import org.eclipse.core.runtime.IAdaptable;
+import org.eclipse.emf.ecore.EObject;
+import org.eclipse.emf.ecore.EStructuralFeature;
+import org.eclipse.gef.commands.Command;
+import org.eclipse.gmf.runtime.diagram.core.util.ViewUtil;
+import org.eclipse.gmf.runtime.diagram.ui.commands.DeferredLayoutCommand;
+import org.eclipse.gmf.runtime.diagram.ui.commands.ICommandProxy;
+import org.eclipse.gmf.runtime.diagram.ui.commands.SetViewMutabilityCommand;
+import org.eclipse.gmf.runtime.diagram.ui.editpolicies.CanonicalEditPolicy;
+import org.eclipse.gmf.runtime.diagram.ui.requests.CreateViewRequest;
+import org.eclipse.gmf.runtime.emf.core.util.EObjectAdapter;
+import org.eclipse.gmf.runtime.notation.Node;
+import org.eclipse.gmf.runtime.notation.View;
+
+import comrel.ComrelPackage;
+import comrel.diagram.edit.parts.AtomicUnit4EditPart;
+import comrel.diagram.edit.parts.CartesianQueuedUnit4EditPart;
+import comrel.diagram.edit.parts.ConditionalUnit4EditPart;
+import comrel.diagram.edit.parts.ParallelQueuedUnit5EditPart;
+import comrel.diagram.edit.parts.SequentialUnit4EditPart;
+import comrel.diagram.edit.parts.SingleQueuedUnit5EditPart;
+import comrel.diagram.part.ComrelDiagramUpdater;
+import comrel.diagram.part.ComrelNodeDescriptor;
+import comrel.diagram.part.ComrelVisualIDRegistry;
+
+/**
+ * @generated
+ */
+public class SingleQueuedUnitSingleQueuedUnitRefactoringUnitCompartment2CanonicalEditPolicy
+ extends CanonicalEditPolicy {
+
+ /**
+ * @generated
+ */
+ protected EStructuralFeature getFeatureToSynchronize() {
+ return ComrelPackage.eINSTANCE.getSingleQueuedUnit_RefactoringUnit();
+ }
+
+ /**
+ * @generated
+ */
+ @SuppressWarnings("rawtypes")
+ protected List getSemanticChildrenList() {
+ View viewObject = (View) getHost().getModel();
+ LinkedList<EObject> result = new LinkedList<EObject>();
+ List<ComrelNodeDescriptor> childDescriptors = ComrelDiagramUpdater
+ .getSingleQueuedUnitSingleQueuedUnitRefactoringUnitCompartment_7028SemanticChildren(viewObject);
+ for (ComrelNodeDescriptor d : childDescriptors) {
+ result.add(d.getModelElement());
+ }
+ return result;
+ }
+
+ /**
+ * @generated
+ */
+ protected boolean isOrphaned(Collection<EObject> semanticChildren,
+ final View view) {
+ return isMyDiagramElement(view)
+ && !semanticChildren.contains(view.getElement());
+ }
+
+ /**
+ * @generated
+ */
+ private boolean isMyDiagramElement(View view) {
+ int visualID = ComrelVisualIDRegistry.getVisualID(view);
+ switch (visualID) {
+ case CartesianQueuedUnit4EditPart.VISUAL_ID:
+ case ParallelQueuedUnit5EditPart.VISUAL_ID:
+ case SingleQueuedUnit5EditPart.VISUAL_ID:
+ case SequentialUnit4EditPart.VISUAL_ID:
+ case ConditionalUnit4EditPart.VISUAL_ID:
+ case AtomicUnit4EditPart.VISUAL_ID:
+ return true;
+ }
+ return false;
+ }
+
+ /**
+ * @generated
+ */
+ protected void refreshSemantic() {
+ if (resolveSemanticElement() == null) {
+ return;
+ }
+ LinkedList<IAdaptable> createdViews = new LinkedList<IAdaptable>();
+ List<ComrelNodeDescriptor> childDescriptors = ComrelDiagramUpdater
+ .getSingleQueuedUnitSingleQueuedUnitRefactoringUnitCompartment_7028SemanticChildren((View) getHost()
+ .getModel());
+ LinkedList<View> orphaned = new LinkedList<View>();
+ // we care to check only views we recognize as ours
+ LinkedList<View> knownViewChildren = new LinkedList<View>();
+ for (View v : getViewChildren()) {
+ if (isMyDiagramElement(v)) {
+ knownViewChildren.add(v);
+ }
+ }
+ // alternative to #cleanCanonicalSemanticChildren(getViewChildren(), semanticChildren)
+ //
+ // iteration happens over list of desired semantic elements, trying to find best matching View, while original CEP
+ // iterates views, potentially losing view (size/bounds) information - i.e. if there are few views to reference same EObject, only last one
+ // to answer isOrphaned == true will be used for the domain element representation, see #cleanCanonicalSemanticChildren()
+ for (Iterator<ComrelNodeDescriptor> descriptorsIterator = childDescriptors
+ .iterator(); descriptorsIterator.hasNext();) {
+ ComrelNodeDescriptor next = descriptorsIterator.next();
+ String hint = ComrelVisualIDRegistry.getType(next.getVisualID());
+ LinkedList<View> perfectMatch = new LinkedList<View>(); // both semanticElement and hint match that of NodeDescriptor
+ for (View childView : getViewChildren()) {
+ EObject semanticElement = childView.getElement();
+ if (next.getModelElement().equals(semanticElement)) {
+ if (hint.equals(childView.getType())) {
+ perfectMatch.add(childView);
+ // actually, can stop iteration over view children here, but
+ // may want to use not the first view but last one as a 'real' match (the way original CEP does
+ // with its trick with viewToSemanticMap inside #cleanCanonicalSemanticChildren
+ }
+ }
+ }
+ if (perfectMatch.size() > 0) {
+ descriptorsIterator.remove(); // precise match found no need to create anything for the NodeDescriptor
+ // use only one view (first or last?), keep rest as orphaned for further consideration
+ knownViewChildren.remove(perfectMatch.getFirst());
+ }
+ }
+ // those left in knownViewChildren are subject to removal - they are our diagram elements we didn't find match to,
+ // or those we have potential matches to, and thus need to be recreated, preserving size/location information.
+ orphaned.addAll(knownViewChildren);
+ //
+ ArrayList<CreateViewRequest.ViewDescriptor> viewDescriptors = new ArrayList<CreateViewRequest.ViewDescriptor>(
+ childDescriptors.size());
+ for (ComrelNodeDescriptor next : childDescriptors) {
+ String hint = ComrelVisualIDRegistry.getType(next.getVisualID());
+ IAdaptable elementAdapter = new CanonicalElementAdapter(
+ next.getModelElement(), hint);
+ CreateViewRequest.ViewDescriptor descriptor = new CreateViewRequest.ViewDescriptor(
+ elementAdapter, Node.class, hint, ViewUtil.APPEND, false,
+ host().getDiagramPreferencesHint());
+ viewDescriptors.add(descriptor);
+ }
+
+ boolean changed = deleteViews(orphaned.iterator());
+ //
+ CreateViewRequest request = getCreateViewRequest(viewDescriptors);
+ Command cmd = getCreateViewCommand(request);
+ if (cmd != null && cmd.canExecute()) {
+ SetViewMutabilityCommand.makeMutable(
+ new EObjectAdapter(host().getNotationView())).execute();
+ executeCommand(cmd);
+ @SuppressWarnings("unchecked")
+ List<IAdaptable> nl = (List<IAdaptable>) request.getNewObject();
+ createdViews.addAll(nl);
+ }
+ if (changed || createdViews.size() > 0) {
+ postProcessRefreshSemantic(createdViews);
+ }
+ if (createdViews.size() > 1) {
+ // perform a layout of the container
+ DeferredLayoutCommand layoutCmd = new DeferredLayoutCommand(host()
+ .getEditingDomain(), createdViews, host());
+ executeCommand(new ICommandProxy(layoutCmd));
+ }
+
+ makeViewsImmutable(createdViews);
+ }
+}
diff --git a/org.eclipse.emf.refactor.comrel.diagram/src/comrel/diagram/edit/policies/SingleQueuedUnitSingleQueuedUnitRefactoringUnitCompartment2ItemSemanticEditPolicy.java b/org.eclipse.emf.refactor.comrel.diagram/src/comrel/diagram/edit/policies/SingleQueuedUnitSingleQueuedUnitRefactoringUnitCompartment2ItemSemanticEditPolicy.java
new file mode 100644
index 0000000..c75edd8
--- /dev/null
+++ b/org.eclipse.emf.refactor.comrel.diagram/src/comrel/diagram/edit/policies/SingleQueuedUnitSingleQueuedUnitRefactoringUnitCompartment2ItemSemanticEditPolicy.java
@@ -0,0 +1,55 @@
+/*
+ *
+ */
+package comrel.diagram.edit.policies;
+
+import org.eclipse.gef.commands.Command;
+import org.eclipse.gmf.runtime.emf.type.core.requests.CreateElementRequest;
+
+import comrel.diagram.edit.commands.AtomicUnit4CreateCommand;
+import comrel.diagram.edit.commands.CartesianQueuedUnit4CreateCommand;
+import comrel.diagram.edit.commands.ConditionalUnit4CreateCommand;
+import comrel.diagram.edit.commands.ParallelQueuedUnit5CreateCommand;
+import comrel.diagram.edit.commands.SequentialUnit4CreateCommand;
+import comrel.diagram.edit.commands.SingleQueuedUnit5CreateCommand;
+import comrel.diagram.providers.ComrelElementTypes;
+
+/**
+ * @generated
+ */
+public class SingleQueuedUnitSingleQueuedUnitRefactoringUnitCompartment2ItemSemanticEditPolicy
+ extends ComrelBaseItemSemanticEditPolicy {
+
+ /**
+ * @generated
+ */
+ public SingleQueuedUnitSingleQueuedUnitRefactoringUnitCompartment2ItemSemanticEditPolicy() {
+ super(ComrelElementTypes.SingleQueuedUnit_3042);
+ }
+
+ /**
+ * @generated
+ */
+ protected Command getCreateCommand(CreateElementRequest req) {
+ if (ComrelElementTypes.CartesianQueuedUnit_3025 == req.getElementType()) {
+ return getGEFWrapper(new CartesianQueuedUnit4CreateCommand(req));
+ }
+ if (ComrelElementTypes.ParallelQueuedUnit_3043 == req.getElementType()) {
+ return getGEFWrapper(new ParallelQueuedUnit5CreateCommand(req));
+ }
+ if (ComrelElementTypes.SingleQueuedUnit_3059 == req.getElementType()) {
+ return getGEFWrapper(new SingleQueuedUnit5CreateCommand(req));
+ }
+ if (ComrelElementTypes.SequentialUnit_3060 == req.getElementType()) {
+ return getGEFWrapper(new SequentialUnit4CreateCommand(req));
+ }
+ if (ComrelElementTypes.ConditionalUnit_3066 == req.getElementType()) {
+ return getGEFWrapper(new ConditionalUnit4CreateCommand(req));
+ }
+ if (ComrelElementTypes.AtomicUnit_3068 == req.getElementType()) {
+ return getGEFWrapper(new AtomicUnit4CreateCommand(req));
+ }
+ return super.getCreateCommand(req);
+ }
+
+}
diff --git a/org.eclipse.emf.refactor.comrel.diagram/src/comrel/diagram/edit/policies/SingleQueuedUnitSingleQueuedUnitRefactoringUnitCompartment3CanonicalEditPolicy.java b/org.eclipse.emf.refactor.comrel.diagram/src/comrel/diagram/edit/policies/SingleQueuedUnitSingleQueuedUnitRefactoringUnitCompartment3CanonicalEditPolicy.java
new file mode 100644
index 0000000..1f1277e
--- /dev/null
+++ b/org.eclipse.emf.refactor.comrel.diagram/src/comrel/diagram/edit/policies/SingleQueuedUnitSingleQueuedUnitRefactoringUnitCompartment3CanonicalEditPolicy.java
@@ -0,0 +1,177 @@
+/*
+ *
+ */
+package comrel.diagram.edit.policies;
+
+import java.util.ArrayList;
+import java.util.Collection;
+import java.util.Iterator;
+import java.util.LinkedList;
+import java.util.List;
+
+import org.eclipse.core.runtime.IAdaptable;
+import org.eclipse.emf.ecore.EObject;
+import org.eclipse.emf.ecore.EStructuralFeature;
+import org.eclipse.gef.commands.Command;
+import org.eclipse.gmf.runtime.diagram.core.util.ViewUtil;
+import org.eclipse.gmf.runtime.diagram.ui.commands.DeferredLayoutCommand;
+import org.eclipse.gmf.runtime.diagram.ui.commands.ICommandProxy;
+import org.eclipse.gmf.runtime.diagram.ui.commands.SetViewMutabilityCommand;
+import org.eclipse.gmf.runtime.diagram.ui.editpolicies.CanonicalEditPolicy;
+import org.eclipse.gmf.runtime.diagram.ui.requests.CreateViewRequest;
+import org.eclipse.gmf.runtime.emf.core.util.EObjectAdapter;
+import org.eclipse.gmf.runtime.notation.Node;
+import org.eclipse.gmf.runtime.notation.View;
+
+import comrel.ComrelPackage;
+import comrel.diagram.edit.parts.AtomicUnit4EditPart;
+import comrel.diagram.edit.parts.CartesianQueuedUnit4EditPart;
+import comrel.diagram.edit.parts.ConditionalUnit4EditPart;
+import comrel.diagram.edit.parts.ParallelQueuedUnit5EditPart;
+import comrel.diagram.edit.parts.SequentialUnit4EditPart;
+import comrel.diagram.edit.parts.SingleQueuedUnit5EditPart;
+import comrel.diagram.part.ComrelDiagramUpdater;
+import comrel.diagram.part.ComrelNodeDescriptor;
+import comrel.diagram.part.ComrelVisualIDRegistry;
+
+/**
+ * @generated
+ */
+public class SingleQueuedUnitSingleQueuedUnitRefactoringUnitCompartment3CanonicalEditPolicy
+ extends CanonicalEditPolicy {
+
+ /**
+ * @generated
+ */
+ protected EStructuralFeature getFeatureToSynchronize() {
+ return ComrelPackage.eINSTANCE.getSingleQueuedUnit_RefactoringUnit();
+ }
+
+ /**
+ * @generated
+ */
+ @SuppressWarnings("rawtypes")
+ protected List getSemanticChildrenList() {
+ View viewObject = (View) getHost().getModel();
+ LinkedList<EObject> result = new LinkedList<EObject>();
+ List<ComrelNodeDescriptor> childDescriptors = ComrelDiagramUpdater
+ .getSingleQueuedUnitSingleQueuedUnitRefactoringUnitCompartment_7044SemanticChildren(viewObject);
+ for (ComrelNodeDescriptor d : childDescriptors) {
+ result.add(d.getModelElement());
+ }
+ return result;
+ }
+
+ /**
+ * @generated
+ */
+ protected boolean isOrphaned(Collection<EObject> semanticChildren,
+ final View view) {
+ return isMyDiagramElement(view)
+ && !semanticChildren.contains(view.getElement());
+ }
+
+ /**
+ * @generated
+ */
+ private boolean isMyDiagramElement(View view) {
+ int visualID = ComrelVisualIDRegistry.getVisualID(view);
+ switch (visualID) {
+ case CartesianQueuedUnit4EditPart.VISUAL_ID:
+ case ParallelQueuedUnit5EditPart.VISUAL_ID:
+ case SingleQueuedUnit5EditPart.VISUAL_ID:
+ case SequentialUnit4EditPart.VISUAL_ID:
+ case ConditionalUnit4EditPart.VISUAL_ID:
+ case AtomicUnit4EditPart.VISUAL_ID:
+ return true;
+ }
+ return false;
+ }
+
+ /**
+ * @generated
+ */
+ protected void refreshSemantic() {
+ if (resolveSemanticElement() == null) {
+ return;
+ }
+ LinkedList<IAdaptable> createdViews = new LinkedList<IAdaptable>();
+ List<ComrelNodeDescriptor> childDescriptors = ComrelDiagramUpdater
+ .getSingleQueuedUnitSingleQueuedUnitRefactoringUnitCompartment_7044SemanticChildren((View) getHost()
+ .getModel());
+ LinkedList<View> orphaned = new LinkedList<View>();
+ // we care to check only views we recognize as ours
+ LinkedList<View> knownViewChildren = new LinkedList<View>();
+ for (View v : getViewChildren()) {
+ if (isMyDiagramElement(v)) {
+ knownViewChildren.add(v);
+ }
+ }
+ // alternative to #cleanCanonicalSemanticChildren(getViewChildren(), semanticChildren)
+ //
+ // iteration happens over list of desired semantic elements, trying to find best matching View, while original CEP
+ // iterates views, potentially losing view (size/bounds) information - i.e. if there are few views to reference same EObject, only last one
+ // to answer isOrphaned == true will be used for the domain element representation, see #cleanCanonicalSemanticChildren()
+ for (Iterator<ComrelNodeDescriptor> descriptorsIterator = childDescriptors
+ .iterator(); descriptorsIterator.hasNext();) {
+ ComrelNodeDescriptor next = descriptorsIterator.next();
+ String hint = ComrelVisualIDRegistry.getType(next.getVisualID());
+ LinkedList<View> perfectMatch = new LinkedList<View>(); // both semanticElement and hint match that of NodeDescriptor
+ for (View childView : getViewChildren()) {
+ EObject semanticElement = childView.getElement();
+ if (next.getModelElement().equals(semanticElement)) {
+ if (hint.equals(childView.getType())) {
+ perfectMatch.add(childView);
+ // actually, can stop iteration over view children here, but
+ // may want to use not the first view but last one as a 'real' match (the way original CEP does
+ // with its trick with viewToSemanticMap inside #cleanCanonicalSemanticChildren
+ }
+ }
+ }
+ if (perfectMatch.size() > 0) {
+ descriptorsIterator.remove(); // precise match found no need to create anything for the NodeDescriptor
+ // use only one view (first or last?), keep rest as orphaned for further consideration
+ knownViewChildren.remove(perfectMatch.getFirst());
+ }
+ }
+ // those left in knownViewChildren are subject to removal - they are our diagram elements we didn't find match to,
+ // or those we have potential matches to, and thus need to be recreated, preserving size/location information.
+ orphaned.addAll(knownViewChildren);
+ //
+ ArrayList<CreateViewRequest.ViewDescriptor> viewDescriptors = new ArrayList<CreateViewRequest.ViewDescriptor>(
+ childDescriptors.size());
+ for (ComrelNodeDescriptor next : childDescriptors) {
+ String hint = ComrelVisualIDRegistry.getType(next.getVisualID());
+ IAdaptable elementAdapter = new CanonicalElementAdapter(
+ next.getModelElement(), hint);
+ CreateViewRequest.ViewDescriptor descriptor = new CreateViewRequest.ViewDescriptor(
+ elementAdapter, Node.class, hint, ViewUtil.APPEND, false,
+ host().getDiagramPreferencesHint());
+ viewDescriptors.add(descriptor);
+ }
+
+ boolean changed = deleteViews(orphaned.iterator());
+ //
+ CreateViewRequest request = getCreateViewRequest(viewDescriptors);
+ Command cmd = getCreateViewCommand(request);
+ if (cmd != null && cmd.canExecute()) {
+ SetViewMutabilityCommand.makeMutable(
+ new EObjectAdapter(host().getNotationView())).execute();
+ executeCommand(cmd);
+ @SuppressWarnings("unchecked")
+ List<IAdaptable> nl = (List<IAdaptable>) request.getNewObject();
+ createdViews.addAll(nl);
+ }
+ if (changed || createdViews.size() > 0) {
+ postProcessRefreshSemantic(createdViews);
+ }
+ if (createdViews.size() > 1) {
+ // perform a layout of the container
+ DeferredLayoutCommand layoutCmd = new DeferredLayoutCommand(host()
+ .getEditingDomain(), createdViews, host());
+ executeCommand(new ICommandProxy(layoutCmd));
+ }
+
+ makeViewsImmutable(createdViews);
+ }
+}
diff --git a/org.eclipse.emf.refactor.comrel.diagram/src/comrel/diagram/edit/policies/SingleQueuedUnitSingleQueuedUnitRefactoringUnitCompartment3ItemSemanticEditPolicy.java b/org.eclipse.emf.refactor.comrel.diagram/src/comrel/diagram/edit/policies/SingleQueuedUnitSingleQueuedUnitRefactoringUnitCompartment3ItemSemanticEditPolicy.java
new file mode 100644
index 0000000..78982a3
--- /dev/null
+++ b/org.eclipse.emf.refactor.comrel.diagram/src/comrel/diagram/edit/policies/SingleQueuedUnitSingleQueuedUnitRefactoringUnitCompartment3ItemSemanticEditPolicy.java
@@ -0,0 +1,55 @@
+/*
+ *
+ */
+package comrel.diagram.edit.policies;
+
+import org.eclipse.gef.commands.Command;
+import org.eclipse.gmf.runtime.emf.type.core.requests.CreateElementRequest;
+
+import comrel.diagram.edit.commands.AtomicUnit4CreateCommand;
+import comrel.diagram.edit.commands.CartesianQueuedUnit4CreateCommand;
+import comrel.diagram.edit.commands.ConditionalUnit4CreateCommand;
+import comrel.diagram.edit.commands.ParallelQueuedUnit5CreateCommand;
+import comrel.diagram.edit.commands.SequentialUnit4CreateCommand;
+import comrel.diagram.edit.commands.SingleQueuedUnit5CreateCommand;
+import comrel.diagram.providers.ComrelElementTypes;
+
+/**
+ * @generated
+ */
+public class SingleQueuedUnitSingleQueuedUnitRefactoringUnitCompartment3ItemSemanticEditPolicy
+ extends ComrelBaseItemSemanticEditPolicy {
+
+ /**
+ * @generated
+ */
+ public SingleQueuedUnitSingleQueuedUnitRefactoringUnitCompartment3ItemSemanticEditPolicy() {
+ super(ComrelElementTypes.SingleQueuedUnit_3054);
+ }
+
+ /**
+ * @generated
+ */
+ protected Command getCreateCommand(CreateElementRequest req) {
+ if (ComrelElementTypes.CartesianQueuedUnit_3025 == req.getElementType()) {
+ return getGEFWrapper(new CartesianQueuedUnit4CreateCommand(req));
+ }
+ if (ComrelElementTypes.ParallelQueuedUnit_3043 == req.getElementType()) {
+ return getGEFWrapper(new ParallelQueuedUnit5CreateCommand(req));
+ }
+ if (ComrelElementTypes.SingleQueuedUnit_3059 == req.getElementType()) {
+ return getGEFWrapper(new SingleQueuedUnit5CreateCommand(req));
+ }
+ if (ComrelElementTypes.SequentialUnit_3060 == req.getElementType()) {
+ return getGEFWrapper(new SequentialUnit4CreateCommand(req));
+ }
+ if (ComrelElementTypes.ConditionalUnit_3066 == req.getElementType()) {
+ return getGEFWrapper(new ConditionalUnit4CreateCommand(req));
+ }
+ if (ComrelElementTypes.AtomicUnit_3068 == req.getElementType()) {
+ return getGEFWrapper(new AtomicUnit4CreateCommand(req));
+ }
+ return super.getCreateCommand(req);
+ }
+
+}
diff --git a/org.eclipse.emf.refactor.comrel.diagram/src/comrel/diagram/edit/policies/SingleQueuedUnitSingleQueuedUnitRefactoringUnitCompartment4CanonicalEditPolicy.java b/org.eclipse.emf.refactor.comrel.diagram/src/comrel/diagram/edit/policies/SingleQueuedUnitSingleQueuedUnitRefactoringUnitCompartment4CanonicalEditPolicy.java
new file mode 100644
index 0000000..0ea4a23
--- /dev/null
+++ b/org.eclipse.emf.refactor.comrel.diagram/src/comrel/diagram/edit/policies/SingleQueuedUnitSingleQueuedUnitRefactoringUnitCompartment4CanonicalEditPolicy.java
@@ -0,0 +1,177 @@
+/*
+ *
+ */
+package comrel.diagram.edit.policies;
+
+import java.util.ArrayList;
+import java.util.Collection;
+import java.util.Iterator;
+import java.util.LinkedList;
+import java.util.List;
+
+import org.eclipse.core.runtime.IAdaptable;
+import org.eclipse.emf.ecore.EObject;
+import org.eclipse.emf.ecore.EStructuralFeature;
+import org.eclipse.gef.commands.Command;
+import org.eclipse.gmf.runtime.diagram.core.util.ViewUtil;
+import org.eclipse.gmf.runtime.diagram.ui.commands.DeferredLayoutCommand;
+import org.eclipse.gmf.runtime.diagram.ui.commands.ICommandProxy;
+import org.eclipse.gmf.runtime.diagram.ui.commands.SetViewMutabilityCommand;
+import org.eclipse.gmf.runtime.diagram.ui.editpolicies.CanonicalEditPolicy;
+import org.eclipse.gmf.runtime.diagram.ui.requests.CreateViewRequest;
+import org.eclipse.gmf.runtime.emf.core.util.EObjectAdapter;
+import org.eclipse.gmf.runtime.notation.Node;
+import org.eclipse.gmf.runtime.notation.View;
+
+import comrel.ComrelPackage;
+import comrel.diagram.edit.parts.AtomicUnit4EditPart;
+import comrel.diagram.edit.parts.CartesianQueuedUnit4EditPart;
+import comrel.diagram.edit.parts.ConditionalUnit4EditPart;
+import comrel.diagram.edit.parts.ParallelQueuedUnit5EditPart;
+import comrel.diagram.edit.parts.SequentialUnit4EditPart;
+import comrel.diagram.edit.parts.SingleQueuedUnit5EditPart;
+import comrel.diagram.part.ComrelDiagramUpdater;
+import comrel.diagram.part.ComrelNodeDescriptor;
+import comrel.diagram.part.ComrelVisualIDRegistry;
+
+/**
+ * @generated
+ */
+public class SingleQueuedUnitSingleQueuedUnitRefactoringUnitCompartment4CanonicalEditPolicy
+ extends CanonicalEditPolicy {
+
+ /**
+ * @generated
+ */
+ protected EStructuralFeature getFeatureToSynchronize() {
+ return ComrelPackage.eINSTANCE.getSingleQueuedUnit_RefactoringUnit();
+ }
+
+ /**
+ * @generated
+ */
+ @SuppressWarnings("rawtypes")
+ protected List getSemanticChildrenList() {
+ View viewObject = (View) getHost().getModel();
+ LinkedList<EObject> result = new LinkedList<EObject>();
+ List<ComrelNodeDescriptor> childDescriptors = ComrelDiagramUpdater
+ .getSingleQueuedUnitSingleQueuedUnitRefactoringUnitCompartment_7046SemanticChildren(viewObject);
+ for (ComrelNodeDescriptor d : childDescriptors) {
+ result.add(d.getModelElement());
+ }
+ return result;
+ }
+
+ /**
+ * @generated
+ */
+ protected boolean isOrphaned(Collection<EObject> semanticChildren,
+ final View view) {
+ return isMyDiagramElement(view)
+ && !semanticChildren.contains(view.getElement());
+ }
+
+ /**
+ * @generated
+ */
+ private boolean isMyDiagramElement(View view) {
+ int visualID = ComrelVisualIDRegistry.getVisualID(view);
+ switch (visualID) {
+ case CartesianQueuedUnit4EditPart.VISUAL_ID:
+ case ParallelQueuedUnit5EditPart.VISUAL_ID:
+ case SingleQueuedUnit5EditPart.VISUAL_ID:
+ case SequentialUnit4EditPart.VISUAL_ID:
+ case ConditionalUnit4EditPart.VISUAL_ID:
+ case AtomicUnit4EditPart.VISUAL_ID:
+ return true;
+ }
+ return false;
+ }
+
+ /**
+ * @generated
+ */
+ protected void refreshSemantic() {
+ if (resolveSemanticElement() == null) {
+ return;
+ }
+ LinkedList<IAdaptable> createdViews = new LinkedList<IAdaptable>();
+ List<ComrelNodeDescriptor> childDescriptors = ComrelDiagramUpdater
+ .getSingleQueuedUnitSingleQueuedUnitRefactoringUnitCompartment_7046SemanticChildren((View) getHost()
+ .getModel());
+ LinkedList<View> orphaned = new LinkedList<View>();
+ // we care to check only views we recognize as ours
+ LinkedList<View> knownViewChildren = new LinkedList<View>();
+ for (View v : getViewChildren()) {
+ if (isMyDiagramElement(v)) {
+ knownViewChildren.add(v);
+ }
+ }
+ // alternative to #cleanCanonicalSemanticChildren(getViewChildren(), semanticChildren)
+ //
+ // iteration happens over list of desired semantic elements, trying to find best matching View, while original CEP
+ // iterates views, potentially losing view (size/bounds) information - i.e. if there are few views to reference same EObject, only last one
+ // to answer isOrphaned == true will be used for the domain element representation, see #cleanCanonicalSemanticChildren()
+ for (Iterator<ComrelNodeDescriptor> descriptorsIterator = childDescriptors
+ .iterator(); descriptorsIterator.hasNext();) {
+ ComrelNodeDescriptor next = descriptorsIterator.next();
+ String hint = ComrelVisualIDRegistry.getType(next.getVisualID());
+ LinkedList<View> perfectMatch = new LinkedList<View>(); // both semanticElement and hint match that of NodeDescriptor
+ for (View childView : getViewChildren()) {
+ EObject semanticElement = childView.getElement();
+ if (next.getModelElement().equals(semanticElement)) {
+ if (hint.equals(childView.getType())) {
+ perfectMatch.add(childView);
+ // actually, can stop iteration over view children here, but
+ // may want to use not the first view but last one as a 'real' match (the way original CEP does
+ // with its trick with viewToSemanticMap inside #cleanCanonicalSemanticChildren
+ }
+ }
+ }
+ if (perfectMatch.size() > 0) {
+ descriptorsIterator.remove(); // precise match found no need to create anything for the NodeDescriptor
+ // use only one view (first or last?), keep rest as orphaned for further consideration
+ knownViewChildren.remove(perfectMatch.getFirst());
+ }
+ }
+ // those left in knownViewChildren are subject to removal - they are our diagram elements we didn't find match to,
+ // or those we have potential matches to, and thus need to be recreated, preserving size/location information.
+ orphaned.addAll(knownViewChildren);
+ //
+ ArrayList<CreateViewRequest.ViewDescriptor> viewDescriptors = new ArrayList<CreateViewRequest.ViewDescriptor>(
+ childDescriptors.size());
+ for (ComrelNodeDescriptor next : childDescriptors) {
+ String hint = ComrelVisualIDRegistry.getType(next.getVisualID());
+ IAdaptable elementAdapter = new CanonicalElementAdapter(
+ next.getModelElement(), hint);
+ CreateViewRequest.ViewDescriptor descriptor = new CreateViewRequest.ViewDescriptor(
+ elementAdapter, Node.class, hint, ViewUtil.APPEND, false,
+ host().getDiagramPreferencesHint());
+ viewDescriptors.add(descriptor);
+ }
+
+ boolean changed = deleteViews(orphaned.iterator());
+ //
+ CreateViewRequest request = getCreateViewRequest(viewDescriptors);
+ Command cmd = getCreateViewCommand(request);
+ if (cmd != null && cmd.canExecute()) {
+ SetViewMutabilityCommand.makeMutable(
+ new EObjectAdapter(host().getNotationView())).execute();
+ executeCommand(cmd);
+ @SuppressWarnings("unchecked")
+ List<IAdaptable> nl = (List<IAdaptable>) request.getNewObject();
+ createdViews.addAll(nl);
+ }
+ if (changed || createdViews.size() > 0) {
+ postProcessRefreshSemantic(createdViews);
+ }
+ if (createdViews.size() > 1) {
+ // perform a layout of the container
+ DeferredLayoutCommand layoutCmd = new DeferredLayoutCommand(host()
+ .getEditingDomain(), createdViews, host());
+ executeCommand(new ICommandProxy(layoutCmd));
+ }
+
+ makeViewsImmutable(createdViews);
+ }
+}
diff --git a/org.eclipse.emf.refactor.comrel.diagram/src/comrel/diagram/edit/policies/SingleQueuedUnitSingleQueuedUnitRefactoringUnitCompartment4ItemSemanticEditPolicy.java b/org.eclipse.emf.refactor.comrel.diagram/src/comrel/diagram/edit/policies/SingleQueuedUnitSingleQueuedUnitRefactoringUnitCompartment4ItemSemanticEditPolicy.java
new file mode 100644
index 0000000..b0b395c
--- /dev/null
+++ b/org.eclipse.emf.refactor.comrel.diagram/src/comrel/diagram/edit/policies/SingleQueuedUnitSingleQueuedUnitRefactoringUnitCompartment4ItemSemanticEditPolicy.java
@@ -0,0 +1,55 @@
+/*
+ *
+ */
+package comrel.diagram.edit.policies;
+
+import org.eclipse.gef.commands.Command;
+import org.eclipse.gmf.runtime.emf.type.core.requests.CreateElementRequest;
+
+import comrel.diagram.edit.commands.AtomicUnit4CreateCommand;
+import comrel.diagram.edit.commands.CartesianQueuedUnit4CreateCommand;
+import comrel.diagram.edit.commands.ConditionalUnit4CreateCommand;
+import comrel.diagram.edit.commands.ParallelQueuedUnit5CreateCommand;
+import comrel.diagram.edit.commands.SequentialUnit4CreateCommand;
+import comrel.diagram.edit.commands.SingleQueuedUnit5CreateCommand;
+import comrel.diagram.providers.ComrelElementTypes;
+
+/**
+ * @generated
+ */
+public class SingleQueuedUnitSingleQueuedUnitRefactoringUnitCompartment4ItemSemanticEditPolicy
+ extends ComrelBaseItemSemanticEditPolicy {
+
+ /**
+ * @generated
+ */
+ public SingleQueuedUnitSingleQueuedUnitRefactoringUnitCompartment4ItemSemanticEditPolicy() {
+ super(ComrelElementTypes.SingleQueuedUnit_3059);
+ }
+
+ /**
+ * @generated
+ */
+ protected Command getCreateCommand(CreateElementRequest req) {
+ if (ComrelElementTypes.CartesianQueuedUnit_3025 == req.getElementType()) {
+ return getGEFWrapper(new CartesianQueuedUnit4CreateCommand(req));
+ }
+ if (ComrelElementTypes.ParallelQueuedUnit_3043 == req.getElementType()) {
+ return getGEFWrapper(new ParallelQueuedUnit5CreateCommand(req));
+ }
+ if (ComrelElementTypes.SingleQueuedUnit_3059 == req.getElementType()) {
+ return getGEFWrapper(new SingleQueuedUnit5CreateCommand(req));
+ }
+ if (ComrelElementTypes.SequentialUnit_3060 == req.getElementType()) {
+ return getGEFWrapper(new SequentialUnit4CreateCommand(req));
+ }
+ if (ComrelElementTypes.ConditionalUnit_3066 == req.getElementType()) {
+ return getGEFWrapper(new ConditionalUnit4CreateCommand(req));
+ }
+ if (ComrelElementTypes.AtomicUnit_3068 == req.getElementType()) {
+ return getGEFWrapper(new AtomicUnit4CreateCommand(req));
+ }
+ return super.getCreateCommand(req);
+ }
+
+}
diff --git a/org.eclipse.emf.refactor.comrel.diagram/src/comrel/diagram/edit/policies/SingleQueuedUnitSingleQueuedUnitRefactoringUnitCompartment5CanonicalEditPolicy.java b/org.eclipse.emf.refactor.comrel.diagram/src/comrel/diagram/edit/policies/SingleQueuedUnitSingleQueuedUnitRefactoringUnitCompartment5CanonicalEditPolicy.java
new file mode 100644
index 0000000..85f8651
--- /dev/null
+++ b/org.eclipse.emf.refactor.comrel.diagram/src/comrel/diagram/edit/policies/SingleQueuedUnitSingleQueuedUnitRefactoringUnitCompartment5CanonicalEditPolicy.java
@@ -0,0 +1,177 @@
+/*
+ *
+ */
+package comrel.diagram.edit.policies;
+
+import java.util.ArrayList;
+import java.util.Collection;
+import java.util.Iterator;
+import java.util.LinkedList;
+import java.util.List;
+
+import org.eclipse.core.runtime.IAdaptable;
+import org.eclipse.emf.ecore.EObject;
+import org.eclipse.emf.ecore.EStructuralFeature;
+import org.eclipse.gef.commands.Command;
+import org.eclipse.gmf.runtime.diagram.core.util.ViewUtil;
+import org.eclipse.gmf.runtime.diagram.ui.commands.DeferredLayoutCommand;
+import org.eclipse.gmf.runtime.diagram.ui.commands.ICommandProxy;
+import org.eclipse.gmf.runtime.diagram.ui.commands.SetViewMutabilityCommand;
+import org.eclipse.gmf.runtime.diagram.ui.editpolicies.CanonicalEditPolicy;
+import org.eclipse.gmf.runtime.diagram.ui.requests.CreateViewRequest;
+import org.eclipse.gmf.runtime.emf.core.util.EObjectAdapter;
+import org.eclipse.gmf.runtime.notation.Node;
+import org.eclipse.gmf.runtime.notation.View;
+
+import comrel.ComrelPackage;
+import comrel.diagram.edit.parts.AtomicUnit4EditPart;
+import comrel.diagram.edit.parts.CartesianQueuedUnit4EditPart;
+import comrel.diagram.edit.parts.ConditionalUnit4EditPart;
+import comrel.diagram.edit.parts.ParallelQueuedUnit5EditPart;
+import comrel.diagram.edit.parts.SequentialUnit4EditPart;
+import comrel.diagram.edit.parts.SingleQueuedUnit5EditPart;
+import comrel.diagram.part.ComrelDiagramUpdater;
+import comrel.diagram.part.ComrelNodeDescriptor;
+import comrel.diagram.part.ComrelVisualIDRegistry;
+
+/**
+ * @generated
+ */
+public class SingleQueuedUnitSingleQueuedUnitRefactoringUnitCompartment5CanonicalEditPolicy
+ extends CanonicalEditPolicy {
+
+ /**
+ * @generated
+ */
+ protected EStructuralFeature getFeatureToSynchronize() {
+ return ComrelPackage.eINSTANCE.getSingleQueuedUnit_RefactoringUnit();
+ }
+
+ /**
+ * @generated
+ */
+ @SuppressWarnings("rawtypes")
+ protected List getSemanticChildrenList() {
+ View viewObject = (View) getHost().getModel();
+ LinkedList<EObject> result = new LinkedList<EObject>();
+ List<ComrelNodeDescriptor> childDescriptors = ComrelDiagramUpdater
+ .getSingleQueuedUnitSingleQueuedUnitRefactoringUnitCompartment_7050SemanticChildren(viewObject);
+ for (ComrelNodeDescriptor d : childDescriptors) {
+ result.add(d.getModelElement());
+ }
+ return result;
+ }
+
+ /**
+ * @generated
+ */
+ protected boolean isOrphaned(Collection<EObject> semanticChildren,
+ final View view) {
+ return isMyDiagramElement(view)
+ && !semanticChildren.contains(view.getElement());
+ }
+
+ /**
+ * @generated
+ */
+ private boolean isMyDiagramElement(View view) {
+ int visualID = ComrelVisualIDRegistry.getVisualID(view);
+ switch (visualID) {
+ case CartesianQueuedUnit4EditPart.VISUAL_ID:
+ case ParallelQueuedUnit5EditPart.VISUAL_ID:
+ case SingleQueuedUnit5EditPart.VISUAL_ID:
+ case SequentialUnit4EditPart.VISUAL_ID:
+ case ConditionalUnit4EditPart.VISUAL_ID:
+ case AtomicUnit4EditPart.VISUAL_ID:
+ return true;
+ }
+ return false;
+ }
+
+ /**
+ * @generated
+ */
+ protected void refreshSemantic() {
+ if (resolveSemanticElement() == null) {
+ return;
+ }
+ LinkedList<IAdaptable> createdViews = new LinkedList<IAdaptable>();
+ List<ComrelNodeDescriptor> childDescriptors = ComrelDiagramUpdater
+ .getSingleQueuedUnitSingleQueuedUnitRefactoringUnitCompartment_7050SemanticChildren((View) getHost()
+ .getModel());
+ LinkedList<View> orphaned = new LinkedList<View>();
+ // we care to check only views we recognize as ours
+ LinkedList<View> knownViewChildren = new LinkedList<View>();
+ for (View v : getViewChildren()) {
+ if (isMyDiagramElement(v)) {
+ knownViewChildren.add(v);
+ }
+ }
+ // alternative to #cleanCanonicalSemanticChildren(getViewChildren(), semanticChildren)
+ //
+ // iteration happens over list of desired semantic elements, trying to find best matching View, while original CEP
+ // iterates views, potentially losing view (size/bounds) information - i.e. if there are few views to reference same EObject, only last one
+ // to answer isOrphaned == true will be used for the domain element representation, see #cleanCanonicalSemanticChildren()
+ for (Iterator<ComrelNodeDescriptor> descriptorsIterator = childDescriptors
+ .iterator(); descriptorsIterator.hasNext();) {
+ ComrelNodeDescriptor next = descriptorsIterator.next();
+ String hint = ComrelVisualIDRegistry.getType(next.getVisualID());
+ LinkedList<View> perfectMatch = new LinkedList<View>(); // both semanticElement and hint match that of NodeDescriptor
+ for (View childView : getViewChildren()) {
+ EObject semanticElement = childView.getElement();
+ if (next.getModelElement().equals(semanticElement)) {
+ if (hint.equals(childView.getType())) {
+ perfectMatch.add(childView);
+ // actually, can stop iteration over view children here, but
+ // may want to use not the first view but last one as a 'real' match (the way original CEP does
+ // with its trick with viewToSemanticMap inside #cleanCanonicalSemanticChildren
+ }
+ }
+ }
+ if (perfectMatch.size() > 0) {
+ descriptorsIterator.remove(); // precise match found no need to create anything for the NodeDescriptor
+ // use only one view (first or last?), keep rest as orphaned for further consideration
+ knownViewChildren.remove(perfectMatch.getFirst());
+ }
+ }
+ // those left in knownViewChildren are subject to removal - they are our diagram elements we didn't find match to,
+ // or those we have potential matches to, and thus need to be recreated, preserving size/location information.
+ orphaned.addAll(knownViewChildren);
+ //
+ ArrayList<CreateViewRequest.ViewDescriptor> viewDescriptors = new ArrayList<CreateViewRequest.ViewDescriptor>(
+ childDescriptors.size());
+ for (ComrelNodeDescriptor next : childDescriptors) {
+ String hint = ComrelVisualIDRegistry.getType(next.getVisualID());
+ IAdaptable elementAdapter = new CanonicalElementAdapter(
+ next.getModelElement(), hint);
+ CreateViewRequest.ViewDescriptor descriptor = new CreateViewRequest.ViewDescriptor(
+ elementAdapter, Node.class, hint, ViewUtil.APPEND, false,
+ host().getDiagramPreferencesHint());
+ viewDescriptors.add(descriptor);
+ }
+
+ boolean changed = deleteViews(orphaned.iterator());
+ //
+ CreateViewRequest request = getCreateViewRequest(viewDescriptors);
+ Command cmd = getCreateViewCommand(request);
+ if (cmd != null && cmd.canExecute()) {
+ SetViewMutabilityCommand.makeMutable(
+ new EObjectAdapter(host().getNotationView())).execute();
+ executeCommand(cmd);
+ @SuppressWarnings("unchecked")
+ List<IAdaptable> nl = (List<IAdaptable>) request.getNewObject();
+ createdViews.addAll(nl);
+ }
+ if (changed || createdViews.size() > 0) {
+ postProcessRefreshSemantic(createdViews);
+ }
+ if (createdViews.size() > 1) {
+ // perform a layout of the container
+ DeferredLayoutCommand layoutCmd = new DeferredLayoutCommand(host()
+ .getEditingDomain(), createdViews, host());
+ executeCommand(new ICommandProxy(layoutCmd));
+ }
+
+ makeViewsImmutable(createdViews);
+ }
+}
diff --git a/org.eclipse.emf.refactor.comrel.diagram/src/comrel/diagram/edit/policies/SingleQueuedUnitSingleQueuedUnitRefactoringUnitCompartment5ItemSemanticEditPolicy.java b/org.eclipse.emf.refactor.comrel.diagram/src/comrel/diagram/edit/policies/SingleQueuedUnitSingleQueuedUnitRefactoringUnitCompartment5ItemSemanticEditPolicy.java
new file mode 100644
index 0000000..f05e578
--- /dev/null
+++ b/org.eclipse.emf.refactor.comrel.diagram/src/comrel/diagram/edit/policies/SingleQueuedUnitSingleQueuedUnitRefactoringUnitCompartment5ItemSemanticEditPolicy.java
@@ -0,0 +1,55 @@
+/*
+ *
+ */
+package comrel.diagram.edit.policies;
+
+import org.eclipse.gef.commands.Command;
+import org.eclipse.gmf.runtime.emf.type.core.requests.CreateElementRequest;
+
+import comrel.diagram.edit.commands.AtomicUnit4CreateCommand;
+import comrel.diagram.edit.commands.CartesianQueuedUnit4CreateCommand;
+import comrel.diagram.edit.commands.ConditionalUnit4CreateCommand;
+import comrel.diagram.edit.commands.ParallelQueuedUnit5CreateCommand;
+import comrel.diagram.edit.commands.SequentialUnit4CreateCommand;
+import comrel.diagram.edit.commands.SingleQueuedUnit5CreateCommand;
+import comrel.diagram.providers.ComrelElementTypes;
+
+/**
+ * @generated
+ */
+public class SingleQueuedUnitSingleQueuedUnitRefactoringUnitCompartment5ItemSemanticEditPolicy
+ extends ComrelBaseItemSemanticEditPolicy {
+
+ /**
+ * @generated
+ */
+ public SingleQueuedUnitSingleQueuedUnitRefactoringUnitCompartment5ItemSemanticEditPolicy() {
+ super(ComrelElementTypes.SingleQueuedUnit_3065);
+ }
+
+ /**
+ * @generated
+ */
+ protected Command getCreateCommand(CreateElementRequest req) {
+ if (ComrelElementTypes.CartesianQueuedUnit_3025 == req.getElementType()) {
+ return getGEFWrapper(new CartesianQueuedUnit4CreateCommand(req));
+ }
+ if (ComrelElementTypes.ParallelQueuedUnit_3043 == req.getElementType()) {
+ return getGEFWrapper(new ParallelQueuedUnit5CreateCommand(req));
+ }
+ if (ComrelElementTypes.SingleQueuedUnit_3059 == req.getElementType()) {
+ return getGEFWrapper(new SingleQueuedUnit5CreateCommand(req));
+ }
+ if (ComrelElementTypes.SequentialUnit_3060 == req.getElementType()) {
+ return getGEFWrapper(new SequentialUnit4CreateCommand(req));
+ }
+ if (ComrelElementTypes.ConditionalUnit_3066 == req.getElementType()) {
+ return getGEFWrapper(new ConditionalUnit4CreateCommand(req));
+ }
+ if (ComrelElementTypes.AtomicUnit_3068 == req.getElementType()) {
+ return getGEFWrapper(new AtomicUnit4CreateCommand(req));
+ }
+ return super.getCreateCommand(req);
+ }
+
+}
diff --git a/org.eclipse.emf.refactor.comrel.diagram/src/comrel/diagram/edit/policies/SingleQueuedUnitSingleQueuedUnitRefactoringUnitCompartment6CanonicalEditPolicy.java b/org.eclipse.emf.refactor.comrel.diagram/src/comrel/diagram/edit/policies/SingleQueuedUnitSingleQueuedUnitRefactoringUnitCompartment6CanonicalEditPolicy.java
new file mode 100644
index 0000000..ca5acb8
--- /dev/null
+++ b/org.eclipse.emf.refactor.comrel.diagram/src/comrel/diagram/edit/policies/SingleQueuedUnitSingleQueuedUnitRefactoringUnitCompartment6CanonicalEditPolicy.java
@@ -0,0 +1,177 @@
+/*
+ *
+ */
+package comrel.diagram.edit.policies;
+
+import java.util.ArrayList;
+import java.util.Collection;
+import java.util.Iterator;
+import java.util.LinkedList;
+import java.util.List;
+
+import org.eclipse.core.runtime.IAdaptable;
+import org.eclipse.emf.ecore.EObject;
+import org.eclipse.emf.ecore.EStructuralFeature;
+import org.eclipse.gef.commands.Command;
+import org.eclipse.gmf.runtime.diagram.core.util.ViewUtil;
+import org.eclipse.gmf.runtime.diagram.ui.commands.DeferredLayoutCommand;
+import org.eclipse.gmf.runtime.diagram.ui.commands.ICommandProxy;
+import org.eclipse.gmf.runtime.diagram.ui.commands.SetViewMutabilityCommand;
+import org.eclipse.gmf.runtime.diagram.ui.editpolicies.CanonicalEditPolicy;
+import org.eclipse.gmf.runtime.diagram.ui.requests.CreateViewRequest;
+import org.eclipse.gmf.runtime.emf.core.util.EObjectAdapter;
+import org.eclipse.gmf.runtime.notation.Node;
+import org.eclipse.gmf.runtime.notation.View;
+
+import comrel.ComrelPackage;
+import comrel.diagram.edit.parts.AtomicUnit4EditPart;
+import comrel.diagram.edit.parts.CartesianQueuedUnit4EditPart;
+import comrel.diagram.edit.parts.ConditionalUnit4EditPart;
+import comrel.diagram.edit.parts.ParallelQueuedUnit5EditPart;
+import comrel.diagram.edit.parts.SequentialUnit4EditPart;
+import comrel.diagram.edit.parts.SingleQueuedUnit5EditPart;
+import comrel.diagram.part.ComrelDiagramUpdater;
+import comrel.diagram.part.ComrelNodeDescriptor;
+import comrel.diagram.part.ComrelVisualIDRegistry;
+
+/**
+ * @generated
+ */
+public class SingleQueuedUnitSingleQueuedUnitRefactoringUnitCompartment6CanonicalEditPolicy
+ extends CanonicalEditPolicy {
+
+ /**
+ * @generated
+ */
+ protected EStructuralFeature getFeatureToSynchronize() {
+ return ComrelPackage.eINSTANCE.getSingleQueuedUnit_RefactoringUnit();
+ }
+
+ /**
+ * @generated
+ */
+ @SuppressWarnings("rawtypes")
+ protected List getSemanticChildrenList() {
+ View viewObject = (View) getHost().getModel();
+ LinkedList<EObject> result = new LinkedList<EObject>();
+ List<ComrelNodeDescriptor> childDescriptors = ComrelDiagramUpdater
+ .getSingleQueuedUnitSingleQueuedUnitRefactoringUnitCompartment_7056SemanticChildren(viewObject);
+ for (ComrelNodeDescriptor d : childDescriptors) {
+ result.add(d.getModelElement());
+ }
+ return result;
+ }
+
+ /**
+ * @generated
+ */
+ protected boolean isOrphaned(Collection<EObject> semanticChildren,
+ final View view) {
+ return isMyDiagramElement(view)
+ && !semanticChildren.contains(view.getElement());
+ }
+
+ /**
+ * @generated
+ */
+ private boolean isMyDiagramElement(View view) {
+ int visualID = ComrelVisualIDRegistry.getVisualID(view);
+ switch (visualID) {
+ case CartesianQueuedUnit4EditPart.VISUAL_ID:
+ case ParallelQueuedUnit5EditPart.VISUAL_ID:
+ case SingleQueuedUnit5EditPart.VISUAL_ID:
+ case SequentialUnit4EditPart.VISUAL_ID:
+ case ConditionalUnit4EditPart.VISUAL_ID:
+ case AtomicUnit4EditPart.VISUAL_ID:
+ return true;
+ }
+ return false;
+ }
+
+ /**
+ * @generated
+ */
+ protected void refreshSemantic() {
+ if (resolveSemanticElement() == null) {
+ return;
+ }
+ LinkedList<IAdaptable> createdViews = new LinkedList<IAdaptable>();
+ List<ComrelNodeDescriptor> childDescriptors = ComrelDiagramUpdater
+ .getSingleQueuedUnitSingleQueuedUnitRefactoringUnitCompartment_7056SemanticChildren((View) getHost()
+ .getModel());
+ LinkedList<View> orphaned = new LinkedList<View>();
+ // we care to check only views we recognize as ours
+ LinkedList<View> knownViewChildren = new LinkedList<View>();
+ for (View v : getViewChildren()) {
+ if (isMyDiagramElement(v)) {
+ knownViewChildren.add(v);
+ }
+ }
+ // alternative to #cleanCanonicalSemanticChildren(getViewChildren(), semanticChildren)
+ //
+ // iteration happens over list of desired semantic elements, trying to find best matching View, while original CEP
+ // iterates views, potentially losing view (size/bounds) information - i.e. if there are few views to reference same EObject, only last one
+ // to answer isOrphaned == true will be used for the domain element representation, see #cleanCanonicalSemanticChildren()
+ for (Iterator<ComrelNodeDescriptor> descriptorsIterator = childDescriptors
+ .iterator(); descriptorsIterator.hasNext();) {
+ ComrelNodeDescriptor next = descriptorsIterator.next();
+ String hint = ComrelVisualIDRegistry.getType(next.getVisualID());
+ LinkedList<View> perfectMatch = new LinkedList<View>(); // both semanticElement and hint match that of NodeDescriptor
+ for (View childView : getViewChildren()) {
+ EObject semanticElement = childView.getElement();
+ if (next.getModelElement().equals(semanticElement)) {
+ if (hint.equals(childView.getType())) {
+ perfectMatch.add(childView);
+ // actually, can stop iteration over view children here, but
+ // may want to use not the first view but last one as a 'real' match (the way original CEP does
+ // with its trick with viewToSemanticMap inside #cleanCanonicalSemanticChildren
+ }
+ }
+ }
+ if (perfectMatch.size() > 0) {
+ descriptorsIterator.remove(); // precise match found no need to create anything for the NodeDescriptor
+ // use only one view (first or last?), keep rest as orphaned for further consideration
+ knownViewChildren.remove(perfectMatch.getFirst());
+ }
+ }
+ // those left in knownViewChildren are subject to removal - they are our diagram elements we didn't find match to,
+ // or those we have potential matches to, and thus need to be recreated, preserving size/location information.
+ orphaned.addAll(knownViewChildren);
+ //
+ ArrayList<CreateViewRequest.ViewDescriptor> viewDescriptors = new ArrayList<CreateViewRequest.ViewDescriptor>(
+ childDescriptors.size());
+ for (ComrelNodeDescriptor next : childDescriptors) {
+ String hint = ComrelVisualIDRegistry.getType(next.getVisualID());
+ IAdaptable elementAdapter = new CanonicalElementAdapter(
+ next.getModelElement(), hint);
+ CreateViewRequest.ViewDescriptor descriptor = new CreateViewRequest.ViewDescriptor(
+ elementAdapter, Node.class, hint, ViewUtil.APPEND, false,
+ host().getDiagramPreferencesHint());
+ viewDescriptors.add(descriptor);
+ }
+
+ boolean changed = deleteViews(orphaned.iterator());
+ //
+ CreateViewRequest request = getCreateViewRequest(viewDescriptors);
+ Command cmd = getCreateViewCommand(request);
+ if (cmd != null && cmd.canExecute()) {
+ SetViewMutabilityCommand.makeMutable(
+ new EObjectAdapter(host().getNotationView())).execute();
+ executeCommand(cmd);
+ @SuppressWarnings("unchecked")
+ List<IAdaptable> nl = (List<IAdaptable>) request.getNewObject();
+ createdViews.addAll(nl);
+ }
+ if (changed || createdViews.size() > 0) {
+ postProcessRefreshSemantic(createdViews);
+ }
+ if (createdViews.size() > 1) {
+ // perform a layout of the container
+ DeferredLayoutCommand layoutCmd = new DeferredLayoutCommand(host()
+ .getEditingDomain(), createdViews, host());
+ executeCommand(new ICommandProxy(layoutCmd));
+ }
+
+ makeViewsImmutable(createdViews);
+ }
+}
diff --git a/org.eclipse.emf.refactor.comrel.diagram/src/comrel/diagram/edit/policies/SingleQueuedUnitSingleQueuedUnitRefactoringUnitCompartment6ItemSemanticEditPolicy.java b/org.eclipse.emf.refactor.comrel.diagram/src/comrel/diagram/edit/policies/SingleQueuedUnitSingleQueuedUnitRefactoringUnitCompartment6ItemSemanticEditPolicy.java
new file mode 100644
index 0000000..8995d26
--- /dev/null
+++ b/org.eclipse.emf.refactor.comrel.diagram/src/comrel/diagram/edit/policies/SingleQueuedUnitSingleQueuedUnitRefactoringUnitCompartment6ItemSemanticEditPolicy.java
@@ -0,0 +1,55 @@
+/*
+ *
+ */
+package comrel.diagram.edit.policies;
+
+import org.eclipse.gef.commands.Command;
+import org.eclipse.gmf.runtime.emf.type.core.requests.CreateElementRequest;
+
+import comrel.diagram.edit.commands.AtomicUnit4CreateCommand;
+import comrel.diagram.edit.commands.CartesianQueuedUnit4CreateCommand;
+import comrel.diagram.edit.commands.ConditionalUnit4CreateCommand;
+import comrel.diagram.edit.commands.ParallelQueuedUnit5CreateCommand;
+import comrel.diagram.edit.commands.SequentialUnit4CreateCommand;
+import comrel.diagram.edit.commands.SingleQueuedUnit5CreateCommand;
+import comrel.diagram.providers.ComrelElementTypes;
+
+/**
+ * @generated
+ */
+public class SingleQueuedUnitSingleQueuedUnitRefactoringUnitCompartment6ItemSemanticEditPolicy
+ extends ComrelBaseItemSemanticEditPolicy {
+
+ /**
+ * @generated
+ */
+ public SingleQueuedUnitSingleQueuedUnitRefactoringUnitCompartment6ItemSemanticEditPolicy() {
+ super(ComrelElementTypes.SingleQueuedUnit_3067);
+ }
+
+ /**
+ * @generated
+ */
+ protected Command getCreateCommand(CreateElementRequest req) {
+ if (ComrelElementTypes.CartesianQueuedUnit_3025 == req.getElementType()) {
+ return getGEFWrapper(new CartesianQueuedUnit4CreateCommand(req));
+ }
+ if (ComrelElementTypes.ParallelQueuedUnit_3043 == req.getElementType()) {
+ return getGEFWrapper(new ParallelQueuedUnit5CreateCommand(req));
+ }
+ if (ComrelElementTypes.SingleQueuedUnit_3059 == req.getElementType()) {
+ return getGEFWrapper(new SingleQueuedUnit5CreateCommand(req));
+ }
+ if (ComrelElementTypes.SequentialUnit_3060 == req.getElementType()) {
+ return getGEFWrapper(new SequentialUnit4CreateCommand(req));
+ }
+ if (ComrelElementTypes.ConditionalUnit_3066 == req.getElementType()) {
+ return getGEFWrapper(new ConditionalUnit4CreateCommand(req));
+ }
+ if (ComrelElementTypes.AtomicUnit_3068 == req.getElementType()) {
+ return getGEFWrapper(new AtomicUnit4CreateCommand(req));
+ }
+ return super.getCreateCommand(req);
+ }
+
+}
diff --git a/org.eclipse.emf.refactor.comrel.diagram/src/comrel/diagram/edit/policies/SingleQueuedUnitSingleQueuedUnitRefactoringUnitCompartment7CanonicalEditPolicy.java b/org.eclipse.emf.refactor.comrel.diagram/src/comrel/diagram/edit/policies/SingleQueuedUnitSingleQueuedUnitRefactoringUnitCompartment7CanonicalEditPolicy.java
new file mode 100644
index 0000000..f0802e2
--- /dev/null
+++ b/org.eclipse.emf.refactor.comrel.diagram/src/comrel/diagram/edit/policies/SingleQueuedUnitSingleQueuedUnitRefactoringUnitCompartment7CanonicalEditPolicy.java
@@ -0,0 +1,177 @@
+/*
+ *
+ */
+package comrel.diagram.edit.policies;
+
+import java.util.ArrayList;
+import java.util.Collection;
+import java.util.Iterator;
+import java.util.LinkedList;
+import java.util.List;
+
+import org.eclipse.core.runtime.IAdaptable;
+import org.eclipse.emf.ecore.EObject;
+import org.eclipse.emf.ecore.EStructuralFeature;
+import org.eclipse.gef.commands.Command;
+import org.eclipse.gmf.runtime.diagram.core.util.ViewUtil;
+import org.eclipse.gmf.runtime.diagram.ui.commands.DeferredLayoutCommand;
+import org.eclipse.gmf.runtime.diagram.ui.commands.ICommandProxy;
+import org.eclipse.gmf.runtime.diagram.ui.commands.SetViewMutabilityCommand;
+import org.eclipse.gmf.runtime.diagram.ui.editpolicies.CanonicalEditPolicy;
+import org.eclipse.gmf.runtime.diagram.ui.requests.CreateViewRequest;
+import org.eclipse.gmf.runtime.emf.core.util.EObjectAdapter;
+import org.eclipse.gmf.runtime.notation.Node;
+import org.eclipse.gmf.runtime.notation.View;
+
+import comrel.ComrelPackage;
+import comrel.diagram.edit.parts.AtomicUnit4EditPart;
+import comrel.diagram.edit.parts.CartesianQueuedUnit4EditPart;
+import comrel.diagram.edit.parts.ConditionalUnit4EditPart;
+import comrel.diagram.edit.parts.ParallelQueuedUnit5EditPart;
+import comrel.diagram.edit.parts.SequentialUnit4EditPart;
+import comrel.diagram.edit.parts.SingleQueuedUnit5EditPart;
+import comrel.diagram.part.ComrelDiagramUpdater;
+import comrel.diagram.part.ComrelNodeDescriptor;
+import comrel.diagram.part.ComrelVisualIDRegistry;
+
+/**
+ * @generated
+ */
+public class SingleQueuedUnitSingleQueuedUnitRefactoringUnitCompartment7CanonicalEditPolicy
+ extends CanonicalEditPolicy {
+
+ /**
+ * @generated
+ */
+ protected EStructuralFeature getFeatureToSynchronize() {
+ return ComrelPackage.eINSTANCE.getSingleQueuedUnit_RefactoringUnit();
+ }
+
+ /**
+ * @generated
+ */
+ @SuppressWarnings("rawtypes")
+ protected List getSemanticChildrenList() {
+ View viewObject = (View) getHost().getModel();
+ LinkedList<EObject> result = new LinkedList<EObject>();
+ List<ComrelNodeDescriptor> childDescriptors = ComrelDiagramUpdater
+ .getSingleQueuedUnitSingleQueuedUnitRefactoringUnitCompartment_7078SemanticChildren(viewObject);
+ for (ComrelNodeDescriptor d : childDescriptors) {
+ result.add(d.getModelElement());
+ }
+ return result;
+ }
+
+ /**
+ * @generated
+ */
+ protected boolean isOrphaned(Collection<EObject> semanticChildren,
+ final View view) {
+ return isMyDiagramElement(view)
+ && !semanticChildren.contains(view.getElement());
+ }
+
+ /**
+ * @generated
+ */
+ private boolean isMyDiagramElement(View view) {
+ int visualID = ComrelVisualIDRegistry.getVisualID(view);
+ switch (visualID) {
+ case CartesianQueuedUnit4EditPart.VISUAL_ID:
+ case ParallelQueuedUnit5EditPart.VISUAL_ID:
+ case SingleQueuedUnit5EditPart.VISUAL_ID:
+ case SequentialUnit4EditPart.VISUAL_ID:
+ case ConditionalUnit4EditPart.VISUAL_ID:
+ case AtomicUnit4EditPart.VISUAL_ID:
+ return true;
+ }
+ return false;
+ }
+
+ /**
+ * @generated
+ */
+ protected void refreshSemantic() {
+ if (resolveSemanticElement() == null) {
+ return;
+ }
+ LinkedList<IAdaptable> createdViews = new LinkedList<IAdaptable>();
+ List<ComrelNodeDescriptor> childDescriptors = ComrelDiagramUpdater
+ .getSingleQueuedUnitSingleQueuedUnitRefactoringUnitCompartment_7078SemanticChildren((View) getHost()
+ .getModel());
+ LinkedList<View> orphaned = new LinkedList<View>();
+ // we care to check only views we recognize as ours
+ LinkedList<View> knownViewChildren = new LinkedList<View>();
+ for (View v : getViewChildren()) {
+ if (isMyDiagramElement(v)) {
+ knownViewChildren.add(v);
+ }
+ }
+ // alternative to #cleanCanonicalSemanticChildren(getViewChildren(), semanticChildren)
+ //
+ // iteration happens over list of desired semantic elements, trying to find best matching View, while original CEP
+ // iterates views, potentially losing view (size/bounds) information - i.e. if there are few views to reference same EObject, only last one
+ // to answer isOrphaned == true will be used for the domain element representation, see #cleanCanonicalSemanticChildren()
+ for (Iterator<ComrelNodeDescriptor> descriptorsIterator = childDescriptors
+ .iterator(); descriptorsIterator.hasNext();) {
+ ComrelNodeDescriptor next = descriptorsIterator.next();
+ String hint = ComrelVisualIDRegistry.getType(next.getVisualID());
+ LinkedList<View> perfectMatch = new LinkedList<View>(); // both semanticElement and hint match that of NodeDescriptor
+ for (View childView : getViewChildren()) {
+ EObject semanticElement = childView.getElement();
+ if (next.getModelElement().equals(semanticElement)) {
+ if (hint.equals(childView.getType())) {
+ perfectMatch.add(childView);
+ // actually, can stop iteration over view children here, but
+ // may want to use not the first view but last one as a 'real' match (the way original CEP does
+ // with its trick with viewToSemanticMap inside #cleanCanonicalSemanticChildren
+ }
+ }
+ }
+ if (perfectMatch.size() > 0) {
+ descriptorsIterator.remove(); // precise match found no need to create anything for the NodeDescriptor
+ // use only one view (first or last?), keep rest as orphaned for further consideration
+ knownViewChildren.remove(perfectMatch.getFirst());
+ }
+ }
+ // those left in knownViewChildren are subject to removal - they are our diagram elements we didn't find match to,
+ // or those we have potential matches to, and thus need to be recreated, preserving size/location information.
+ orphaned.addAll(knownViewChildren);
+ //
+ ArrayList<CreateViewRequest.ViewDescriptor> viewDescriptors = new ArrayList<CreateViewRequest.ViewDescriptor>(
+ childDescriptors.size());
+ for (ComrelNodeDescriptor next : childDescriptors) {
+ String hint = ComrelVisualIDRegistry.getType(next.getVisualID());
+ IAdaptable elementAdapter = new CanonicalElementAdapter(
+ next.getModelElement(), hint);
+ CreateViewRequest.ViewDescriptor descriptor = new CreateViewRequest.ViewDescriptor(
+ elementAdapter, Node.class, hint, ViewUtil.APPEND, false,
+ host().getDiagramPreferencesHint());
+ viewDescriptors.add(descriptor);
+ }
+
+ boolean changed = deleteViews(orphaned.iterator());
+ //
+ CreateViewRequest request = getCreateViewRequest(viewDescriptors);
+ Command cmd = getCreateViewCommand(request);
+ if (cmd != null && cmd.canExecute()) {
+ SetViewMutabilityCommand.makeMutable(
+ new EObjectAdapter(host().getNotationView())).execute();
+ executeCommand(cmd);
+ @SuppressWarnings("unchecked")
+ List<IAdaptable> nl = (List<IAdaptable>) request.getNewObject();
+ createdViews.addAll(nl);
+ }
+ if (changed || createdViews.size() > 0) {
+ postProcessRefreshSemantic(createdViews);
+ }
+ if (createdViews.size() > 1) {
+ // perform a layout of the container
+ DeferredLayoutCommand layoutCmd = new DeferredLayoutCommand(host()
+ .getEditingDomain(), createdViews, host());
+ executeCommand(new ICommandProxy(layoutCmd));
+ }
+
+ makeViewsImmutable(createdViews);
+ }
+}
diff --git a/org.eclipse.emf.refactor.comrel.diagram/src/comrel/diagram/edit/policies/SingleQueuedUnitSingleQueuedUnitRefactoringUnitCompartment7ItemSemanticEditPolicy.java b/org.eclipse.emf.refactor.comrel.diagram/src/comrel/diagram/edit/policies/SingleQueuedUnitSingleQueuedUnitRefactoringUnitCompartment7ItemSemanticEditPolicy.java
new file mode 100644
index 0000000..2b6d2aa
--- /dev/null
+++ b/org.eclipse.emf.refactor.comrel.diagram/src/comrel/diagram/edit/policies/SingleQueuedUnitSingleQueuedUnitRefactoringUnitCompartment7ItemSemanticEditPolicy.java
@@ -0,0 +1,55 @@
+/*
+ *
+ */
+package comrel.diagram.edit.policies;
+
+import org.eclipse.gef.commands.Command;
+import org.eclipse.gmf.runtime.emf.type.core.requests.CreateElementRequest;
+
+import comrel.diagram.edit.commands.AtomicUnit4CreateCommand;
+import comrel.diagram.edit.commands.CartesianQueuedUnit4CreateCommand;
+import comrel.diagram.edit.commands.ConditionalUnit4CreateCommand;
+import comrel.diagram.edit.commands.ParallelQueuedUnit5CreateCommand;
+import comrel.diagram.edit.commands.SequentialUnit4CreateCommand;
+import comrel.diagram.edit.commands.SingleQueuedUnit5CreateCommand;
+import comrel.diagram.providers.ComrelElementTypes;
+
+/**
+ * @generated
+ */
+public class SingleQueuedUnitSingleQueuedUnitRefactoringUnitCompartment7ItemSemanticEditPolicy
+ extends ComrelBaseItemSemanticEditPolicy {
+
+ /**
+ * @generated
+ */
+ public SingleQueuedUnitSingleQueuedUnitRefactoringUnitCompartment7ItemSemanticEditPolicy() {
+ super(ComrelElementTypes.SingleQueuedUnit_2004);
+ }
+
+ /**
+ * @generated
+ */
+ protected Command getCreateCommand(CreateElementRequest req) {
+ if (ComrelElementTypes.CartesianQueuedUnit_3025 == req.getElementType()) {
+ return getGEFWrapper(new CartesianQueuedUnit4CreateCommand(req));
+ }
+ if (ComrelElementTypes.ParallelQueuedUnit_3043 == req.getElementType()) {
+ return getGEFWrapper(new ParallelQueuedUnit5CreateCommand(req));
+ }
+ if (ComrelElementTypes.SingleQueuedUnit_3059 == req.getElementType()) {
+ return getGEFWrapper(new SingleQueuedUnit5CreateCommand(req));
+ }
+ if (ComrelElementTypes.SequentialUnit_3060 == req.getElementType()) {
+ return getGEFWrapper(new SequentialUnit4CreateCommand(req));
+ }
+ if (ComrelElementTypes.ConditionalUnit_3066 == req.getElementType()) {
+ return getGEFWrapper(new ConditionalUnit4CreateCommand(req));
+ }
+ if (ComrelElementTypes.AtomicUnit_3068 == req.getElementType()) {
+ return getGEFWrapper(new AtomicUnit4CreateCommand(req));
+ }
+ return super.getCreateCommand(req);
+ }
+
+}
diff --git a/org.eclipse.emf.refactor.comrel.diagram/src/comrel/diagram/edit/policies/SingleQueuedUnitSingleQueuedUnitRefactoringUnitCompartmentCanonicalEditPolicy.java b/org.eclipse.emf.refactor.comrel.diagram/src/comrel/diagram/edit/policies/SingleQueuedUnitSingleQueuedUnitRefactoringUnitCompartmentCanonicalEditPolicy.java
new file mode 100644
index 0000000..c4ac185
--- /dev/null
+++ b/org.eclipse.emf.refactor.comrel.diagram/src/comrel/diagram/edit/policies/SingleQueuedUnitSingleQueuedUnitRefactoringUnitCompartmentCanonicalEditPolicy.java
@@ -0,0 +1,177 @@
+/*
+ *
+ */
+package comrel.diagram.edit.policies;
+
+import java.util.ArrayList;
+import java.util.Collection;
+import java.util.Iterator;
+import java.util.LinkedList;
+import java.util.List;
+
+import org.eclipse.core.runtime.IAdaptable;
+import org.eclipse.emf.ecore.EObject;
+import org.eclipse.emf.ecore.EStructuralFeature;
+import org.eclipse.gef.commands.Command;
+import org.eclipse.gmf.runtime.diagram.core.util.ViewUtil;
+import org.eclipse.gmf.runtime.diagram.ui.commands.DeferredLayoutCommand;
+import org.eclipse.gmf.runtime.diagram.ui.commands.ICommandProxy;
+import org.eclipse.gmf.runtime.diagram.ui.commands.SetViewMutabilityCommand;
+import org.eclipse.gmf.runtime.diagram.ui.editpolicies.CanonicalEditPolicy;
+import org.eclipse.gmf.runtime.diagram.ui.requests.CreateViewRequest;
+import org.eclipse.gmf.runtime.emf.core.util.EObjectAdapter;
+import org.eclipse.gmf.runtime.notation.Node;
+import org.eclipse.gmf.runtime.notation.View;
+
+import comrel.ComrelPackage;
+import comrel.diagram.edit.parts.AtomicUnit4EditPart;
+import comrel.diagram.edit.parts.CartesianQueuedUnit4EditPart;
+import comrel.diagram.edit.parts.ConditionalUnit4EditPart;
+import comrel.diagram.edit.parts.ParallelQueuedUnit5EditPart;
+import comrel.diagram.edit.parts.SequentialUnit4EditPart;
+import comrel.diagram.edit.parts.SingleQueuedUnit5EditPart;
+import comrel.diagram.part.ComrelDiagramUpdater;
+import comrel.diagram.part.ComrelNodeDescriptor;
+import comrel.diagram.part.ComrelVisualIDRegistry;
+
+/**
+ * @generated
+ */
+public class SingleQueuedUnitSingleQueuedUnitRefactoringUnitCompartmentCanonicalEditPolicy
+ extends CanonicalEditPolicy {
+
+ /**
+ * @generated
+ */
+ protected EStructuralFeature getFeatureToSynchronize() {
+ return ComrelPackage.eINSTANCE.getSingleQueuedUnit_RefactoringUnit();
+ }
+
+ /**
+ * @generated
+ */
+ @SuppressWarnings("rawtypes")
+ protected List getSemanticChildrenList() {
+ View viewObject = (View) getHost().getModel();
+ LinkedList<EObject> result = new LinkedList<EObject>();
+ List<ComrelNodeDescriptor> childDescriptors = ComrelDiagramUpdater
+ .getSingleQueuedUnitSingleQueuedUnitRefactoringUnitCompartment_7010SemanticChildren(viewObject);
+ for (ComrelNodeDescriptor d : childDescriptors) {
+ result.add(d.getModelElement());
+ }
+ return result;
+ }
+
+ /**
+ * @generated
+ */
+ protected boolean isOrphaned(Collection<EObject> semanticChildren,
+ final View view) {
+ return isMyDiagramElement(view)
+ && !semanticChildren.contains(view.getElement());
+ }
+
+ /**
+ * @generated
+ */
+ private boolean isMyDiagramElement(View view) {
+ int visualID = ComrelVisualIDRegistry.getVisualID(view);
+ switch (visualID) {
+ case CartesianQueuedUnit4EditPart.VISUAL_ID:
+ case ParallelQueuedUnit5EditPart.VISUAL_ID:
+ case SingleQueuedUnit5EditPart.VISUAL_ID:
+ case SequentialUnit4EditPart.VISUAL_ID:
+ case ConditionalUnit4EditPart.VISUAL_ID:
+ case AtomicUnit4EditPart.VISUAL_ID:
+ return true;
+ }
+ return false;
+ }
+
+ /**
+ * @generated
+ */
+ protected void refreshSemantic() {
+ if (resolveSemanticElement() == null) {
+ return;
+ }
+ LinkedList<IAdaptable> createdViews = new LinkedList<IAdaptable>();
+ List<ComrelNodeDescriptor> childDescriptors = ComrelDiagramUpdater
+ .getSingleQueuedUnitSingleQueuedUnitRefactoringUnitCompartment_7010SemanticChildren((View) getHost()
+ .getModel());
+ LinkedList<View> orphaned = new LinkedList<View>();
+ // we care to check only views we recognize as ours
+ LinkedList<View> knownViewChildren = new LinkedList<View>();
+ for (View v : getViewChildren()) {
+ if (isMyDiagramElement(v)) {
+ knownViewChildren.add(v);
+ }
+ }
+ // alternative to #cleanCanonicalSemanticChildren(getViewChildren(), semanticChildren)
+ //
+ // iteration happens over list of desired semantic elements, trying to find best matching View, while original CEP
+ // iterates views, potentially losing view (size/bounds) information - i.e. if there are few views to reference same EObject, only last one
+ // to answer isOrphaned == true will be used for the domain element representation, see #cleanCanonicalSemanticChildren()
+ for (Iterator<ComrelNodeDescriptor> descriptorsIterator = childDescriptors
+ .iterator(); descriptorsIterator.hasNext();) {
+ ComrelNodeDescriptor next = descriptorsIterator.next();
+ String hint = ComrelVisualIDRegistry.getType(next.getVisualID());
+ LinkedList<View> perfectMatch = new LinkedList<View>(); // both semanticElement and hint match that of NodeDescriptor
+ for (View childView : getViewChildren()) {
+ EObject semanticElement = childView.getElement();
+ if (next.getModelElement().equals(semanticElement)) {
+ if (hint.equals(childView.getType())) {
+ perfectMatch.add(childView);
+ // actually, can stop iteration over view children here, but
+ // may want to use not the first view but last one as a 'real' match (the way original CEP does
+ // with its trick with viewToSemanticMap inside #cleanCanonicalSemanticChildren
+ }
+ }
+ }
+ if (perfectMatch.size() > 0) {
+ descriptorsIterator.remove(); // precise match found no need to create anything for the NodeDescriptor
+ // use only one view (first or last?), keep rest as orphaned for further consideration
+ knownViewChildren.remove(perfectMatch.getFirst());
+ }
+ }
+ // those left in knownViewChildren are subject to removal - they are our diagram elements we didn't find match to,
+ // or those we have potential matches to, and thus need to be recreated, preserving size/location information.
+ orphaned.addAll(knownViewChildren);
+ //
+ ArrayList<CreateViewRequest.ViewDescriptor> viewDescriptors = new ArrayList<CreateViewRequest.ViewDescriptor>(
+ childDescriptors.size());
+ for (ComrelNodeDescriptor next : childDescriptors) {
+ String hint = ComrelVisualIDRegistry.getType(next.getVisualID());
+ IAdaptable elementAdapter = new CanonicalElementAdapter(
+ next.getModelElement(), hint);
+ CreateViewRequest.ViewDescriptor descriptor = new CreateViewRequest.ViewDescriptor(
+ elementAdapter, Node.class, hint, ViewUtil.APPEND, false,
+ host().getDiagramPreferencesHint());
+ viewDescriptors.add(descriptor);
+ }
+
+ boolean changed = deleteViews(orphaned.iterator());
+ //
+ CreateViewRequest request = getCreateViewRequest(viewDescriptors);
+ Command cmd = getCreateViewCommand(request);
+ if (cmd != null && cmd.canExecute()) {
+ SetViewMutabilityCommand.makeMutable(
+ new EObjectAdapter(host().getNotationView())).execute();
+ executeCommand(cmd);
+ @SuppressWarnings("unchecked")
+ List<IAdaptable> nl = (List<IAdaptable>) request.getNewObject();
+ createdViews.addAll(nl);
+ }
+ if (changed || createdViews.size() > 0) {
+ postProcessRefreshSemantic(createdViews);
+ }
+ if (createdViews.size() > 1) {
+ // perform a layout of the container
+ DeferredLayoutCommand layoutCmd = new DeferredLayoutCommand(host()
+ .getEditingDomain(), createdViews, host());
+ executeCommand(new ICommandProxy(layoutCmd));
+ }
+
+ makeViewsImmutable(createdViews);
+ }
+}
diff --git a/org.eclipse.emf.refactor.comrel.diagram/src/comrel/diagram/edit/policies/SingleQueuedUnitSingleQueuedUnitRefactoringUnitCompartmentItemSemanticEditPolicy.java b/org.eclipse.emf.refactor.comrel.diagram/src/comrel/diagram/edit/policies/SingleQueuedUnitSingleQueuedUnitRefactoringUnitCompartmentItemSemanticEditPolicy.java
new file mode 100644
index 0000000..bcb3953
--- /dev/null
+++ b/org.eclipse.emf.refactor.comrel.diagram/src/comrel/diagram/edit/policies/SingleQueuedUnitSingleQueuedUnitRefactoringUnitCompartmentItemSemanticEditPolicy.java
@@ -0,0 +1,55 @@
+/*
+ *
+ */
+package comrel.diagram.edit.policies;
+
+import org.eclipse.gef.commands.Command;
+import org.eclipse.gmf.runtime.emf.type.core.requests.CreateElementRequest;
+
+import comrel.diagram.edit.commands.AtomicUnit4CreateCommand;
+import comrel.diagram.edit.commands.CartesianQueuedUnit4CreateCommand;
+import comrel.diagram.edit.commands.ConditionalUnit4CreateCommand;
+import comrel.diagram.edit.commands.ParallelQueuedUnit5CreateCommand;
+import comrel.diagram.edit.commands.SequentialUnit4CreateCommand;
+import comrel.diagram.edit.commands.SingleQueuedUnit5CreateCommand;
+import comrel.diagram.providers.ComrelElementTypes;
+
+/**
+ * @generated
+ */
+public class SingleQueuedUnitSingleQueuedUnitRefactoringUnitCompartmentItemSemanticEditPolicy
+ extends ComrelBaseItemSemanticEditPolicy {
+
+ /**
+ * @generated
+ */
+ public SingleQueuedUnitSingleQueuedUnitRefactoringUnitCompartmentItemSemanticEditPolicy() {
+ super(ComrelElementTypes.SingleQueuedUnit_3022);
+ }
+
+ /**
+ * @generated
+ */
+ protected Command getCreateCommand(CreateElementRequest req) {
+ if (ComrelElementTypes.CartesianQueuedUnit_3025 == req.getElementType()) {
+ return getGEFWrapper(new CartesianQueuedUnit4CreateCommand(req));
+ }
+ if (ComrelElementTypes.ParallelQueuedUnit_3043 == req.getElementType()) {
+ return getGEFWrapper(new ParallelQueuedUnit5CreateCommand(req));
+ }
+ if (ComrelElementTypes.SingleQueuedUnit_3059 == req.getElementType()) {
+ return getGEFWrapper(new SingleQueuedUnit5CreateCommand(req));
+ }
+ if (ComrelElementTypes.SequentialUnit_3060 == req.getElementType()) {
+ return getGEFWrapper(new SequentialUnit4CreateCommand(req));
+ }
+ if (ComrelElementTypes.ConditionalUnit_3066 == req.getElementType()) {
+ return getGEFWrapper(new ConditionalUnit4CreateCommand(req));
+ }
+ if (ComrelElementTypes.AtomicUnit_3068 == req.getElementType()) {
+ return getGEFWrapper(new AtomicUnit4CreateCommand(req));
+ }
+ return super.getCreateCommand(req);
+ }
+
+}
diff --git a/org.eclipse.emf.refactor.comrel.diagram/src/comrel/diagram/expressions/ComrelAbstractExpression.java b/org.eclipse.emf.refactor.comrel.diagram/src/comrel/diagram/expressions/ComrelAbstractExpression.java
new file mode 100644
index 0000000..97bc394
--- /dev/null
+++ b/org.eclipse.emf.refactor.comrel.diagram/src/comrel/diagram/expressions/ComrelAbstractExpression.java
@@ -0,0 +1,161 @@
+/*
+ *
+ */
+package comrel.diagram.expressions;
+
+import java.math.BigDecimal;
+import java.math.BigInteger;
+import java.util.Collections;
+import java.util.Map;
+
+import org.eclipse.core.runtime.IStatus;
+import org.eclipse.core.runtime.Status;
+import org.eclipse.emf.ecore.EClassifier;
+import org.eclipse.emf.ecore.EDataType;
+import org.eclipse.emf.ecore.EEnum;
+import org.eclipse.emf.ecore.EEnumLiteral;
+import org.eclipse.emf.ecore.util.EcoreUtil;
+
+import comrel.diagram.part.ComrelDiagramEditorPlugin;
+
+/**
+ * @generated
+ */
+public abstract class ComrelAbstractExpression {
+
+ /**
+ * @generated
+ */
+ private IStatus status = Status.OK_STATUS;
+
+ /**
+ * @generated
+ */
+ protected void setStatus(int severity, String message, Throwable throwable) {
+ String pluginID = ComrelDiagramEditorPlugin.ID;
+ this.status = new Status(severity, pluginID, -1,
+ (message != null) ? message : "", throwable); //$NON-NLS-1$
+ if (!this.status.isOK()) {
+ ComrelDiagramEditorPlugin
+ .getInstance()
+ .logError(
+ "Expression problem:" + message + "body:" + body(), throwable); //$NON-NLS-1$ //$NON-NLS-2$
+ }
+ }
+
+ /**
+ * @generated
+ */
+ public IStatus getStatus() {
+ return status;
+ }
+
+ /**
+ * @generated
+ */
+ private final String myBody;
+
+ /**
+ * @generated
+ */
+ public String body() {
+ return myBody;
+ }
+
+ /**
+ * @generated
+ */
+ private final EClassifier myContext;
+
+ /**
+ * @generated
+ */
+ public EClassifier context() {
+ return myContext;
+ }
+
+ /**
+ * @generated
+ */
+ protected ComrelAbstractExpression(String body, EClassifier context) {
+ myBody = body;
+ myContext = context;
+ }
+
+ /**
+ * @generated
+ */
+ @SuppressWarnings("rawtypes")
+ protected abstract Object doEvaluate(Object context, Map env);
+
+ /**
+ * @generated
+ */
+ public Object evaluate(Object context) {
+ return evaluate(context, Collections.EMPTY_MAP);
+ }
+
+ /**
+ * @generated
+ */
+ @SuppressWarnings("rawtypes")
+ public Object evaluate(Object context, Map env) {
+ if (context().isInstance(context)) {
+ try {
+ return doEvaluate(context, env);
+ } catch (Exception e) {
+ ComrelDiagramEditorPlugin.getInstance().logError(
+ "Expression evaluation failure: " + body(), e); //$NON-NLS-1$
+ }
+ }
+ return null;
+ }
+
+ /**
+ * 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
+ * @generated
+ */
+ public static Object performCast(Object value, EDataType targetType) {
+ if (targetType instanceof EEnum) {
+ if (value instanceof EEnumLiteral) {
+ EEnumLiteral literal = (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 = 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(BigInteger.class))
+ return 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(BigDecimal.class))
+ return new BigDecimal(num.doubleValue());
+ }
+ return value;
+ }
+
+}
diff --git a/org.eclipse.emf.refactor.comrel.diagram/src/comrel/diagram/expressions/ComrelOCLFactory.java b/org.eclipse.emf.refactor.comrel.diagram/src/comrel/diagram/expressions/ComrelOCLFactory.java
new file mode 100644
index 0000000..a1df11f
--- /dev/null
+++ b/org.eclipse.emf.refactor.comrel.diagram/src/comrel/diagram/expressions/ComrelOCLFactory.java
@@ -0,0 +1,174 @@
+/*
+ *
+ */
+package comrel.diagram.expressions;
+
+import java.util.Collections;
+import java.util.Map;
+
+import org.eclipse.core.runtime.IStatus;
+import org.eclipse.emf.ecore.EClassifier;
+import org.eclipse.emf.ecore.EParameter;
+import org.eclipse.emf.ecore.EcorePackage;
+import org.eclipse.ocl.Environment;
+import org.eclipse.ocl.EvaluationEnvironment;
+import org.eclipse.ocl.ParserException;
+import org.eclipse.ocl.ecore.EcoreFactory;
+import org.eclipse.ocl.ecore.OCLExpression;
+import org.eclipse.ocl.ecore.Variable;
+import org.eclipse.ocl.ecore.OCL.Helper;
+import org.eclipse.ocl.options.ParsingOptions;
+
+import comrel.diagram.part.ComrelDiagramEditorPlugin;
+
+/**
+ * @generated
+ */
+public class ComrelOCLFactory {
+
+ /**
+ * @generated
+ */
+ private final ComrelAbstractExpression[] expressions;
+
+ /**
+ * @generated
+ */
+ protected ComrelOCLFactory() {
+ this.expressions = new ComrelAbstractExpression[3];
+ }
+
+ /**
+ * @generated
+ */
+ public static ComrelAbstractExpression getExpression(int index,
+ EClassifier context, Map<String, EClassifier> environment) {
+ ComrelOCLFactory cached = ComrelDiagramEditorPlugin.getInstance()
+ .getComrelOCLFactory();
+ if (cached == null) {
+ ComrelDiagramEditorPlugin.getInstance().setComrelOCLFactory(
+ cached = new ComrelOCLFactory());
+ }
+ if (index < 0 || index >= cached.expressions.length) {
+ throw new IllegalArgumentException();
+ }
+ if (cached.expressions[index] == null) {
+ final String[] exprBodies = new String[] { "self<>oppositeEnd", //$NON-NLS-1$
+ "self<>oppositeEnd", //$NON-NLS-1$
+ "self<>oppositeEnd", //$NON-NLS-1$
+ };
+ cached.expressions[index] = getExpression(
+ exprBodies[index],
+ context,
+ environment == null ? Collections
+ .<String, EClassifier> emptyMap() : environment);
+ }
+ return cached.expressions[index];
+ }
+
+ /**
+ * This is factory method, callers are responsible to keep reference to the return value if they want to reuse parsed expression
+ * @generated
+ */
+ public static ComrelAbstractExpression getExpression(String body,
+ EClassifier context, Map<String, EClassifier> environment) {
+ return new Expression(body, context, environment);
+ }
+
+ /**
+ * This method will become private in the next release
+ * @generated
+ */
+ public static ComrelAbstractExpression getExpression(String body,
+ EClassifier context) {
+ return getExpression(body, context,
+ Collections.<String, EClassifier> emptyMap());
+ }
+
+ /**
+ * @generated
+ */
+ private static class Expression extends ComrelAbstractExpression {
+
+ /**
+ * @generated
+ */
+ private final org.eclipse.ocl.ecore.OCL oclInstance;
+
+ /**
+ * @generated
+ */
+ private OCLExpression oclExpression;
+
+ /**
+ * @generated
+ */
+ public Expression(String body, EClassifier context,
+ Map<String, EClassifier> environment) {
+ super(body, context);
+ oclInstance = org.eclipse.ocl.ecore.OCL.newInstance();
+ initCustomEnv(oclInstance.getEnvironment(), environment);
+ Helper oclHelper = oclInstance.createOCLHelper();
+ oclHelper.setContext(context());
+ try {
+ oclExpression = oclHelper.createQuery(body());
+ setStatus(IStatus.OK, null, null);
+ } catch (ParserException e) {
+ setStatus(IStatus.ERROR, e.getMessage(), e);
+ }
+ }
+
+ /**
+ * @generated
+ */
+ @SuppressWarnings("rawtypes")
+ protected Object doEvaluate(Object context, Map env) {
+ if (oclExpression == null) {
+ return null;
+ }
+ // on the first call, both evalEnvironment and extentMap are clear, for later we have finally, below.
+ EvaluationEnvironment<?, ?, ?, ?, ?> evalEnv = oclInstance
+ .getEvaluationEnvironment();
+ // initialize environment
+ for (Object nextKey : env.keySet()) {
+ evalEnv.replace((String) nextKey, env.get(nextKey));
+ }
+ try {
+ Object result = oclInstance.evaluate(context, oclExpression);
+ return oclInstance.isInvalid(result) ? null : result;
+ } finally {
+ evalEnv.clear();
+ oclInstance.setExtentMap(null); // clear allInstances cache, and get the oclInstance ready for the next call
+ }
+ }
+
+ /**
+ * @generated
+ */
+ private static void initCustomEnv(
+ Environment<?, EClassifier, ?, ?, ?, EParameter, ?, ?, ?, ?, ?, ?> ecoreEnv,
+ Map<String, EClassifier> environment) {
+ // Use EObject as implicit root class for any object, to allow eContainer() and other EObject operations from OCL expressions
+ ParsingOptions.setOption(ecoreEnv,
+ ParsingOptions.implicitRootClass(ecoreEnv),
+ EcorePackage.eINSTANCE.getEObject());
+ for (String varName : environment.keySet()) {
+ EClassifier varType = environment.get(varName);
+ ecoreEnv.addElement(varName,
+ createVar(ecoreEnv, varName, varType), false);
+ }
+ }
+
+ /**
+ * @generated
+ */
+ private static Variable createVar(
+ Environment<?, EClassifier, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?> ecoreEnv,
+ String name, EClassifier type) {
+ Variable var = EcoreFactory.eINSTANCE.createVariable();
+ var.setName(name);
+ var.setType(ecoreEnv.getUMLReflection().getOCLType(type));
+ return var;
+ }
+ }
+}
diff --git a/org.eclipse.emf.refactor.comrel.diagram/src/comrel/diagram/layoutprovider/CompositeRefactoringDefaultLayoutProvider.java b/org.eclipse.emf.refactor.comrel.diagram/src/comrel/diagram/layoutprovider/CompositeRefactoringDefaultLayoutProvider.java
new file mode 100644
index 0000000..144b871
--- /dev/null
+++ b/org.eclipse.emf.refactor.comrel.diagram/src/comrel/diagram/layoutprovider/CompositeRefactoringDefaultLayoutProvider.java
@@ -0,0 +1,38 @@
+package comrel.diagram.layoutprovider;
+
+import java.util.Iterator;
+
+import org.eclipse.core.runtime.IAdaptable;
+import org.eclipse.gmf.runtime.common.core.service.IOperation;
+import org.eclipse.gmf.runtime.diagram.ui.providers.LeftRightProvider;
+import org.eclipse.gmf.runtime.diagram.ui.services.layout.ILayoutNode;
+import org.eclipse.gmf.runtime.diagram.ui.services.layout.ILayoutNodeOperation;
+import org.eclipse.gmf.runtime.diagram.ui.services.layout.LayoutType;
+import org.eclipse.gmf.runtime.notation.Diagram;
+import org.eclipse.gmf.runtime.notation.View;
+
+public class CompositeRefactoringDefaultLayoutProvider extends LeftRightProvider {
+ public static String DEFAULT_LAYOUT = "Default";
+
+ public boolean provides(IOperation operation) {
+ // enable this provider only on mindmap diagrams
+ if (operation instanceof ILayoutNodeOperation) {
+ Iterator nodes = ((ILayoutNodeOperation) operation)
+ .getLayoutNodes().listIterator();
+ if (nodes.hasNext()) {
+ View node = ((ILayoutNode) nodes.next()).getNode();
+ Diagram container = node.getDiagram();
+ if (container == null
+ || !(container.getType().equals("Mindmap"))) //$NON-NLS-1$
+ return false;
+ }
+ } else {
+ return false;
+ }
+ IAdaptable layoutHint = ((ILayoutNodeOperation) operation)
+ .getLayoutHint();
+ String layoutType = (String) layoutHint.getAdapter(String.class);
+ return LayoutType.DEFAULT.equals(layoutType);
+ }
+
+}
diff --git a/org.eclipse.emf.refactor.comrel.diagram/src/comrel/diagram/navigator/ComrelAbstractNavigatorItem.java b/org.eclipse.emf.refactor.comrel.diagram/src/comrel/diagram/navigator/ComrelAbstractNavigatorItem.java
new file mode 100644
index 0000000..fd67796
--- /dev/null
+++ b/org.eclipse.emf.refactor.comrel.diagram/src/comrel/diagram/navigator/ComrelAbstractNavigatorItem.java
@@ -0,0 +1,61 @@
+/*
+ *
+ */
+package comrel.diagram.navigator;
+
+import org.eclipse.core.runtime.IAdapterFactory;
+import org.eclipse.core.runtime.Platform;
+import org.eclipse.core.runtime.PlatformObject;
+import org.eclipse.ui.views.properties.tabbed.ITabbedPropertySheetPageContributor;
+
+/**
+ * @generated
+ */
+public abstract class ComrelAbstractNavigatorItem extends PlatformObject {
+
+ /**
+ * @generated
+ */
+ static {
+ final Class[] supportedTypes = new Class[] { ITabbedPropertySheetPageContributor.class };
+ final ITabbedPropertySheetPageContributor propertySheetPageContributor = new ITabbedPropertySheetPageContributor() {
+ public String getContributorId() {
+ return "comrel.diagram"; //$NON-NLS-1$
+ }
+ };
+ Platform.getAdapterManager().registerAdapters(new IAdapterFactory() {
+
+ public Object getAdapter(Object adaptableObject, Class adapterType) {
+ if (adaptableObject instanceof comrel.diagram.navigator.ComrelAbstractNavigatorItem
+ && adapterType == ITabbedPropertySheetPageContributor.class) {
+ return propertySheetPageContributor;
+ }
+ return null;
+ }
+
+ public Class[] getAdapterList() {
+ return supportedTypes;
+ }
+ }, comrel.diagram.navigator.ComrelAbstractNavigatorItem.class);
+ }
+
+ /**
+ * @generated
+ */
+ private Object myParent;
+
+ /**
+ * @generated
+ */
+ protected ComrelAbstractNavigatorItem(Object parent) {
+ myParent = parent;
+ }
+
+ /**
+ * @generated
+ */
+ public Object getParent() {
+ return myParent;
+ }
+
+}
diff --git a/org.eclipse.emf.refactor.comrel.diagram/src/comrel/diagram/navigator/ComrelDomainNavigatorContentProvider.java b/org.eclipse.emf.refactor.comrel.diagram/src/comrel/diagram/navigator/ComrelDomainNavigatorContentProvider.java
new file mode 100644
index 0000000..d2a535d
--- /dev/null
+++ b/org.eclipse.emf.refactor.comrel.diagram/src/comrel/diagram/navigator/ComrelDomainNavigatorContentProvider.java
@@ -0,0 +1,233 @@
+/*
+ *
+ */
+package comrel.diagram.navigator;
+
+import java.util.ArrayList;
+import java.util.Collection;
+import java.util.HashMap;
+
+import org.eclipse.core.resources.IFile;
+import org.eclipse.emf.common.util.URI;
+import org.eclipse.emf.ecore.EObject;
+import org.eclipse.emf.ecore.resource.Resource;
+import org.eclipse.emf.edit.domain.AdapterFactoryEditingDomain;
+import org.eclipse.emf.edit.ui.provider.AdapterFactoryContentProvider;
+import org.eclipse.emf.transaction.TransactionalEditingDomain;
+import org.eclipse.emf.workspace.util.WorkspaceSynchronizer;
+import org.eclipse.gmf.runtime.emf.core.GMFEditingDomainFactory;
+import org.eclipse.jface.viewers.Viewer;
+import org.eclipse.ui.IMemento;
+import org.eclipse.ui.navigator.ICommonContentExtensionSite;
+import org.eclipse.ui.navigator.ICommonContentProvider;
+
+import comrel.diagram.part.ComrelDiagramEditorPlugin;
+
+/**
+ * @generated
+ */
+public class ComrelDomainNavigatorContentProvider implements
+ ICommonContentProvider {
+
+ /**
+ * @generated
+ */
+ private AdapterFactoryContentProvider myAdapterFctoryContentProvier;
+
+ /**
+ * @generated
+ */
+ private static final Object[] EMPTY_ARRAY = new Object[0];
+
+ /**
+ * @generated
+ */
+ private Viewer myViewer;
+
+ /**
+ * @generated
+ */
+ private AdapterFactoryEditingDomain myEditingDomain;
+
+ /**
+ * @generated
+ */
+ private WorkspaceSynchronizer myWorkspaceSynchronizer;
+
+ /**
+ * @generated
+ */
+ private Runnable myViewerRefreshRunnable;
+
+ /**
+ * @generated
+ */
+ public ComrelDomainNavigatorContentProvider() {
+ myAdapterFctoryContentProvier = new AdapterFactoryContentProvider(
+ ComrelDiagramEditorPlugin.getInstance()
+ .getItemProvidersAdapterFactory());
+ TransactionalEditingDomain editingDomain = GMFEditingDomainFactory.INSTANCE
+ .createEditingDomain();
+ myEditingDomain = (AdapterFactoryEditingDomain) editingDomain;
+ myEditingDomain.setResourceToReadOnlyMap(new HashMap() {
+ public Object get(Object key) {
+ if (!containsKey(key)) {
+ put(key, Boolean.TRUE);
+ }
+ return super.get(key);
+ }
+ });
+ myViewerRefreshRunnable = new Runnable() {
+ public void run() {
+ if (myViewer != null) {
+ myViewer.refresh();
+ }
+ }
+ };
+ myWorkspaceSynchronizer = new WorkspaceSynchronizer(editingDomain,
+ new WorkspaceSynchronizer.Delegate() {
+ public void dispose() {
+ }
+
+ public boolean handleResourceChanged(final Resource resource) {
+ unloadAllResources();
+ asyncRefresh();
+ return true;
+ }
+
+ public boolean handleResourceDeleted(Resource resource) {
+ unloadAllResources();
+ asyncRefresh();
+ return true;
+ }
+
+ public boolean handleResourceMoved(Resource resource,
+ final URI newURI) {
+ unloadAllResources();
+ asyncRefresh();
+ return true;
+ }
+ });
+ }
+
+ /**
+ * @generated
+ */
+ public void dispose() {
+ myWorkspaceSynchronizer.dispose();
+ myWorkspaceSynchronizer = null;
+ myViewerRefreshRunnable = null;
+ myViewer = null;
+ unloadAllResources();
+ ((TransactionalEditingDomain) myEditingDomain).dispose();
+ myEditingDomain = null;
+ }
+
+ /**
+ * @generated
+ */
+ public void inputChanged(Viewer viewer, Object oldInput, Object newInput) {
+ myViewer = viewer;
+ }
+
+ /**
+ * @generated
+ */
+ void unloadAllResources() {
+ for (Resource nextResource : myEditingDomain.getResourceSet()
+ .getResources()) {
+ nextResource.unload();
+ }
+ }
+
+ /**
+ * @generated
+ */
+ void asyncRefresh() {
+ if (myViewer != null && !myViewer.getControl().isDisposed()) {
+ myViewer.getControl().getDisplay()
+ .asyncExec(myViewerRefreshRunnable);
+ }
+ }
+
+ /**
+ * @generated
+ */
+ public Object[] getElements(Object inputElement) {
+ return getChildren(inputElement);
+ }
+
+ /**
+ * @generated
+ */
+ public void restoreState(IMemento aMemento) {
+ }
+
+ /**
+ * @generated
+ */
+ public void saveState(IMemento aMemento) {
+ }
+
+ /**
+ * @generated
+ */
+ public void init(ICommonContentExtensionSite aConfig) {
+ }
+
+ /**
+ * @generated
+ */
+ public Object[] getChildren(Object parentElement) {
+ if (parentElement instanceof IFile) {
+ IFile file = (IFile) parentElement;
+ URI fileURI = URI.createPlatformResourceURI(file.getFullPath()
+ .toString(), true);
+ Resource resource = myEditingDomain.getResourceSet().getResource(
+ fileURI, true);
+ return wrapEObjects(
+ myAdapterFctoryContentProvier.getChildren(resource),
+ parentElement);
+ }
+
+ if (parentElement instanceof ComrelDomainNavigatorItem) {
+ return wrapEObjects(
+ myAdapterFctoryContentProvier.getChildren(((ComrelDomainNavigatorItem) parentElement)
+ .getEObject()), parentElement);
+ }
+ return EMPTY_ARRAY;
+ }
+
+ /**
+ * @generated
+ */
+ public Object[] wrapEObjects(Object[] objects, Object parentElement) {
+ Collection result = new ArrayList();
+ for (int i = 0; i < objects.length; i++) {
+ if (objects[i] instanceof EObject) {
+ result.add(new ComrelDomainNavigatorItem((EObject) objects[i],
+ parentElement, myAdapterFctoryContentProvier));
+ }
+ }
+ return result.toArray();
+ }
+
+ /**
+ * @generated
+ */
+ public Object getParent(Object element) {
+ if (element instanceof ComrelAbstractNavigatorItem) {
+ ComrelAbstractNavigatorItem abstractNavigatorItem = (ComrelAbstractNavigatorItem) element;
+ return abstractNavigatorItem.getParent();
+ }
+ return null;
+ }
+
+ /**
+ * @generated
+ */
+ public boolean hasChildren(Object element) {
+ return element instanceof IFile || getChildren(element).length > 0;
+ }
+
+}
diff --git a/org.eclipse.emf.refactor.comrel.diagram/src/comrel/diagram/navigator/ComrelDomainNavigatorItem.java b/org.eclipse.emf.refactor.comrel.diagram/src/comrel/diagram/navigator/ComrelDomainNavigatorItem.java
new file mode 100644
index 0000000..130f676
--- /dev/null
+++ b/org.eclipse.emf.refactor.comrel.diagram/src/comrel/diagram/navigator/ComrelDomainNavigatorItem.java
@@ -0,0 +1,116 @@
+/*
+ *
+ */
+package comrel.diagram.navigator;
+
+import org.eclipse.core.runtime.IAdapterFactory;
+import org.eclipse.core.runtime.Platform;
+import org.eclipse.core.runtime.PlatformObject;
+import org.eclipse.emf.ecore.EObject;
+import org.eclipse.emf.ecore.util.EcoreUtil;
+import org.eclipse.ui.views.properties.IPropertySource;
+import org.eclipse.ui.views.properties.IPropertySourceProvider;
+
+/**
+ * @generated
+ */
+public class ComrelDomainNavigatorItem extends PlatformObject {
+
+ /**
+ * @generated
+ */
+ static {
+ final Class[] supportedTypes = new Class[] { EObject.class,
+ IPropertySource.class };
+ Platform.getAdapterManager().registerAdapters(new IAdapterFactory() {
+
+ public Object getAdapter(Object adaptableObject, Class adapterType) {
+ if (adaptableObject instanceof comrel.diagram.navigator.ComrelDomainNavigatorItem) {
+ comrel.diagram.navigator.ComrelDomainNavigatorItem domainNavigatorItem = (comrel.diagram.navigator.ComrelDomainNavigatorItem) adaptableObject;
+ EObject eObject = domainNavigatorItem.getEObject();
+ if (adapterType == EObject.class) {
+ return eObject;
+ }
+ if (adapterType == IPropertySource.class) {
+ return domainNavigatorItem.getPropertySourceProvider()
+ .getPropertySource(eObject);
+ }
+ }
+
+ return null;
+ }
+
+ public Class[] getAdapterList() {
+ return supportedTypes;
+ }
+ }, comrel.diagram.navigator.ComrelDomainNavigatorItem.class);
+ }
+
+ /**
+ * @generated
+ */
+ private Object myParent;
+
+ /**
+ * @generated
+ */
+ private EObject myEObject;
+
+ /**
+ * @generated
+ */
+ private IPropertySourceProvider myPropertySourceProvider;
+
+ /**
+ * @generated
+ */
+ public ComrelDomainNavigatorItem(EObject eObject, Object parent,
+ IPropertySourceProvider propertySourceProvider) {
+ myParent = parent;
+ myEObject = eObject;
+ myPropertySourceProvider = propertySourceProvider;
+ }
+
+ /**
+ * @generated
+ */
+ public Object getParent() {
+ return myParent;
+ }
+
+ /**
+ * @generated
+ */
+ public EObject getEObject() {
+ return myEObject;
+ }
+
+ /**
+ * @generated
+ */
+ public IPropertySourceProvider getPropertySourceProvider() {
+ return myPropertySourceProvider;
+ }
+
+ /**
+ * @generated
+ */
+ public boolean equals(Object obj) {
+ if (obj instanceof comrel.diagram.navigator.ComrelDomainNavigatorItem) {
+ return EcoreUtil
+ .getURI(getEObject())
+ .equals(EcoreUtil
+ .getURI(((comrel.diagram.navigator.ComrelDomainNavigatorItem) obj)
+ .getEObject()));
+ }
+ return super.equals(obj);
+ }
+
+ /**
+ * @generated
+ */
+ public int hashCode() {
+ return EcoreUtil.getURI(getEObject()).hashCode();
+ }
+
+}
diff --git a/org.eclipse.emf.refactor.comrel.diagram/src/comrel/diagram/navigator/ComrelDomainNavigatorLabelProvider.java b/org.eclipse.emf.refactor.comrel.diagram/src/comrel/diagram/navigator/ComrelDomainNavigatorLabelProvider.java
new file mode 100644
index 0000000..c55e222
--- /dev/null
+++ b/org.eclipse.emf.refactor.comrel.diagram/src/comrel/diagram/navigator/ComrelDomainNavigatorLabelProvider.java
@@ -0,0 +1,103 @@
+/*
+ *
+ */
+package comrel.diagram.navigator;
+
+import org.eclipse.emf.edit.ui.provider.AdapterFactoryLabelProvider;
+import org.eclipse.jface.viewers.ILabelProviderListener;
+import org.eclipse.swt.graphics.Image;
+import org.eclipse.ui.IMemento;
+import org.eclipse.ui.navigator.ICommonContentExtensionSite;
+import org.eclipse.ui.navigator.ICommonLabelProvider;
+
+import comrel.diagram.part.ComrelDiagramEditorPlugin;
+
+/**
+ * @generated
+ */
+public class ComrelDomainNavigatorLabelProvider implements ICommonLabelProvider {
+
+ /**
+ * @generated
+ */
+ private AdapterFactoryLabelProvider myAdapterFactoryLabelProvider = new AdapterFactoryLabelProvider(
+ ComrelDiagramEditorPlugin.getInstance()
+ .getItemProvidersAdapterFactory());
+
+ /**
+ * @generated
+ */
+ public void init(ICommonContentExtensionSite aConfig) {
+ }
+
+ /**
+ * @generated
+ */
+ public Image getImage(Object element) {
+ if (element instanceof ComrelDomainNavigatorItem) {
+ return myAdapterFactoryLabelProvider
+ .getImage(((ComrelDomainNavigatorItem) element)
+ .getEObject());
+ }
+ return null;
+ }
+
+ /**
+ * @generated
+ */
+ public String getText(Object element) {
+ if (element instanceof ComrelDomainNavigatorItem) {
+ return myAdapterFactoryLabelProvider
+ .getText(((ComrelDomainNavigatorItem) element).getEObject());
+ }
+ return null;
+ }
+
+ /**
+ * @generated
+ */
+ public void addListener(ILabelProviderListener listener) {
+ myAdapterFactoryLabelProvider.addListener(listener);
+ }
+
+ /**
+ * @generated
+ */
+ public void dispose() {
+ myAdapterFactoryLabelProvider.dispose();
+ }
+
+ /**
+ * @generated
+ */
+ public boolean isLabelProperty(Object element, String property) {
+ return myAdapterFactoryLabelProvider.isLabelProperty(element, property);
+ }
+
+ /**
+ * @generated
+ */
+ public void removeListener(ILabelProviderListener listener) {
+ myAdapterFactoryLabelProvider.removeListener(listener);
+ }
+
+ /**
+ * @generated
+ */
+ public void restoreState(IMemento aMemento) {
+ }
+
+ /**
+ * @generated
+ */
+ public void saveState(IMemento aMemento) {
+ }
+
+ /**
+ * @generated
+ */
+ public String getDescription(Object anElement) {
+ return null;
+ }
+
+}
diff --git a/org.eclipse.emf.refactor.comrel.diagram/src/comrel/diagram/navigator/ComrelNavigatorActionProvider.java b/org.eclipse.emf.refactor.comrel.diagram/src/comrel/diagram/navigator/ComrelNavigatorActionProvider.java
new file mode 100644
index 0000000..d34e194
--- /dev/null
+++ b/org.eclipse.emf.refactor.comrel.diagram/src/comrel/diagram/navigator/ComrelNavigatorActionProvider.java
@@ -0,0 +1,180 @@
+/*
+ *
+ */
+package comrel.diagram.navigator;
+
+import org.eclipse.core.runtime.IAdaptable;
+import org.eclipse.emf.common.ui.URIEditorInput;
+import org.eclipse.emf.common.util.URI;
+import org.eclipse.emf.ecore.EObject;
+import org.eclipse.emf.ecore.resource.Resource;
+import org.eclipse.emf.ecore.util.EcoreUtil;
+import org.eclipse.emf.workspace.util.WorkspaceSynchronizer;
+import org.eclipse.gmf.runtime.notation.Diagram;
+import org.eclipse.gmf.runtime.notation.View;
+import org.eclipse.jface.action.Action;
+import org.eclipse.jface.action.IMenuManager;
+import org.eclipse.jface.viewers.IStructuredSelection;
+import org.eclipse.ui.IActionBars;
+import org.eclipse.ui.IEditorInput;
+import org.eclipse.ui.IWorkbenchPage;
+import org.eclipse.ui.PartInitException;
+import org.eclipse.ui.navigator.CommonActionProvider;
+import org.eclipse.ui.navigator.ICommonActionConstants;
+import org.eclipse.ui.navigator.ICommonActionExtensionSite;
+import org.eclipse.ui.navigator.ICommonViewerWorkbenchSite;
+import org.eclipse.ui.part.FileEditorInput;
+
+import comrel.diagram.edit.parts.CompositeRefactoringEditPart;
+import comrel.diagram.part.ComrelDiagramEditor;
+import comrel.diagram.part.ComrelDiagramEditorPlugin;
+import comrel.diagram.part.ComrelVisualIDRegistry;
+import comrel.diagram.part.Messages;
+
+/**
+ * @generated
+ */
+public class ComrelNavigatorActionProvider extends CommonActionProvider {
+
+ /**
+ * @generated
+ */
+ private boolean myContribute;
+
+ /**
+ * @generated
+ */
+ private OpenDiagramAction myOpenDiagramAction;
+
+ /**
+ * @generated
+ */
+ public void init(ICommonActionExtensionSite aSite) {
+ super.init(aSite);
+ if (aSite.getViewSite() instanceof ICommonViewerWorkbenchSite) {
+ myContribute = true;
+ makeActions((ICommonViewerWorkbenchSite) aSite.getViewSite());
+ } else {
+ myContribute = false;
+ }
+ }
+
+ /**
+ * @generated
+ */
+ private void makeActions(ICommonViewerWorkbenchSite viewerSite) {
+ myOpenDiagramAction = new OpenDiagramAction(viewerSite);
+ }
+
+ /**
+ * @generated
+ */
+ public void fillActionBars(IActionBars actionBars) {
+ if (!myContribute) {
+ return;
+ }
+ IStructuredSelection selection = (IStructuredSelection) getContext()
+ .getSelection();
+ myOpenDiagramAction.selectionChanged(selection);
+ if (myOpenDiagramAction.isEnabled()) {
+ actionBars.setGlobalActionHandler(ICommonActionConstants.OPEN,
+ myOpenDiagramAction);
+ }
+ }
+
+ /**
+ * @generated
+ */
+ public void fillContextMenu(IMenuManager menu) {
+ }
+
+ /**
+ * @generated
+ */
+ private static class OpenDiagramAction extends Action {
+
+ /**
+ * @generated
+ */
+ private Diagram myDiagram;
+
+ /**
+ * @generated
+ */
+ private ICommonViewerWorkbenchSite myViewerSite;
+
+ /**
+ * @generated
+ */
+ public OpenDiagramAction(ICommonViewerWorkbenchSite viewerSite) {
+ super(Messages.NavigatorActionProvider_OpenDiagramActionName);
+ myViewerSite = viewerSite;
+ }
+
+ /**
+ * @generated
+ */
+ public final void selectionChanged(IStructuredSelection selection) {
+ myDiagram = null;
+ if (selection.size() == 1) {
+ Object selectedElement = selection.getFirstElement();
+ if (selectedElement instanceof ComrelNavigatorItem) {
+ selectedElement = ((ComrelNavigatorItem) selectedElement)
+ .getView();
+ } else if (selectedElement instanceof IAdaptable) {
+ selectedElement = ((IAdaptable) selectedElement)
+ .getAdapter(View.class);
+ }
+ if (selectedElement instanceof Diagram) {
+ Diagram diagram = (Diagram) selectedElement;
+ if (CompositeRefactoringEditPart.MODEL_ID
+ .equals(ComrelVisualIDRegistry.getModelID(diagram))) {
+ myDiagram = diagram;
+ }
+ }
+ }
+ setEnabled(myDiagram != null);
+ }
+
+ /**
+ * @generated
+ */
+ public void run() {
+ if (myDiagram == null || myDiagram.eResource() == null) {
+ return;
+ }
+
+ IEditorInput editorInput = getEditorInput(myDiagram);
+ IWorkbenchPage page = myViewerSite.getPage();
+ try {
+ page.openEditor(editorInput, ComrelDiagramEditor.ID);
+ } catch (PartInitException e) {
+ ComrelDiagramEditorPlugin.getInstance().logError(
+ "Exception while openning diagram", e); //$NON-NLS-1$
+ }
+ }
+
+ /**
+ * @generated
+ */
+ private static IEditorInput getEditorInput(Diagram diagram) {
+ Resource diagramResource = diagram.eResource();
+ for (EObject nextEObject : diagramResource.getContents()) {
+ if (nextEObject == diagram) {
+ return new FileEditorInput(
+ WorkspaceSynchronizer.getFile(diagramResource));
+ }
+ if (nextEObject instanceof Diagram) {
+ break;
+ }
+ }
+ URI uri = EcoreUtil.getURI(diagram);
+ String editorName = uri.lastSegment() + '#'
+ + diagram.eResource().getContents().indexOf(diagram);
+ IEditorInput editorInput = new URIEditorInput(uri, editorName);
+ return editorInput;
+ }
+
+ }
+
+}
diff --git a/org.eclipse.emf.refactor.comrel.diagram/src/comrel/diagram/navigator/ComrelNavigatorContentProvider.java b/org.eclipse.emf.refactor.comrel.diagram/src/comrel/diagram/navigator/ComrelNavigatorContentProvider.java
new file mode 100644
index 0000000..52559f8
--- /dev/null
+++ b/org.eclipse.emf.refactor.comrel.diagram/src/comrel/diagram/navigator/ComrelNavigatorContentProvider.java
@@ -0,0 +1,6162 @@
+/*
+ *
+ */
+package comrel.diagram.navigator;
+
+import java.util.ArrayList;
+import java.util.Collection;
+import java.util.Collections;
+import java.util.HashMap;
+import java.util.Iterator;
+import java.util.LinkedList;
+
+import org.eclipse.core.resources.IFile;
+import org.eclipse.core.runtime.IAdaptable;
+import org.eclipse.emf.common.util.URI;
+import org.eclipse.emf.ecore.EObject;
+import org.eclipse.emf.ecore.resource.Resource;
+import org.eclipse.emf.edit.domain.AdapterFactoryEditingDomain;
+import org.eclipse.emf.transaction.TransactionalEditingDomain;
+import org.eclipse.emf.workspace.util.WorkspaceSynchronizer;
+import org.eclipse.gmf.runtime.emf.core.GMFEditingDomainFactory;
+import org.eclipse.gmf.runtime.notation.Diagram;
+import org.eclipse.gmf.runtime.notation.Edge;
+import org.eclipse.gmf.runtime.notation.Node;
+import org.eclipse.gmf.runtime.notation.View;
+import org.eclipse.jface.viewers.Viewer;
+import org.eclipse.ui.IMemento;
+import org.eclipse.ui.navigator.ICommonContentExtensionSite;
+import org.eclipse.ui.navigator.ICommonContentProvider;
+
+import comrel.diagram.edit.parts.*;
+import comrel.diagram.part.ComrelVisualIDRegistry;
+import comrel.diagram.part.Messages;
+
+/**
+ * @generated
+ */
+public class ComrelNavigatorContentProvider implements ICommonContentProvider {
+
+ /**
+ * @generated
+ */
+ private static final Object[] EMPTY_ARRAY = new Object[0];
+
+ /**
+ * @generated
+ */
+ private Viewer myViewer;
+
+ /**
+ * @generated
+ */
+ private AdapterFactoryEditingDomain myEditingDomain;
+
+ /**
+ * @generated
+ */
+ private WorkspaceSynchronizer myWorkspaceSynchronizer;
+
+ /**
+ * @generated
+ */
+ private Runnable myViewerRefreshRunnable;
+
+ /**
+ * @generated
+ */
+ @SuppressWarnings({ "unchecked", "serial", "rawtypes" })
+ public ComrelNavigatorContentProvider() {
+ TransactionalEditingDomain editingDomain = GMFEditingDomainFactory.INSTANCE
+ .createEditingDomain();
+ myEditingDomain = (AdapterFactoryEditingDomain) editingDomain;
+ myEditingDomain.setResourceToReadOnlyMap(new HashMap() {
+ public Object get(Object key) {
+ if (!containsKey(key)) {
+ put(key, Boolean.TRUE);
+ }
+ return super.get(key);
+ }
+ });
+ myViewerRefreshRunnable = new Runnable() {
+ public void run() {
+ if (myViewer != null) {
+ myViewer.refresh();
+ }
+ }
+ };
+ myWorkspaceSynchronizer = new WorkspaceSynchronizer(editingDomain,
+ new WorkspaceSynchronizer.Delegate() {
+ public void dispose() {
+ }
+
+ public boolean handleResourceChanged(final Resource resource) {
+ unloadAllResources();
+ asyncRefresh();
+ return true;
+ }
+
+ public boolean handleResourceDeleted(Resource resource) {
+ unloadAllResources();
+ asyncRefresh();
+ return true;
+ }
+
+ public boolean handleResourceMoved(Resource resource,
+ final URI newURI) {
+ unloadAllResources();
+ asyncRefresh();
+ return true;
+ }
+ });
+ }
+
+ /**
+ * @generated
+ */
+ public void dispose() {
+ myWorkspaceSynchronizer.dispose();
+ myWorkspaceSynchronizer = null;
+ myViewerRefreshRunnable = null;
+ myViewer = null;
+ unloadAllResources();
+ ((TransactionalEditingDomain) myEditingDomain).dispose();
+ myEditingDomain = null;
+ }
+
+ /**
+ * @generated
+ */
+ public void inputChanged(Viewer viewer, Object oldInput, Object newInput) {
+ myViewer = viewer;
+ }
+
+ /**
+ * @generated
+ */
+ void unloadAllResources() {
+ for (Resource nextResource : myEditingDomain.getResourceSet()
+ .getResources()) {
+ nextResource.unload();
+ }
+ }
+
+ /**
+ * @generated
+ */
+ void asyncRefresh() {
+ if (myViewer != null && !myViewer.getControl().isDisposed()) {
+ myViewer.getControl().getDisplay()
+ .asyncExec(myViewerRefreshRunnable);
+ }
+ }
+
+ /**
+ * @generated
+ */
+ public Object[] getElements(Object inputElement) {
+ return getChildren(inputElement);
+ }
+
+ /**
+ * @generated
+ */
+ public void restoreState(IMemento aMemento) {
+ }
+
+ /**
+ * @generated
+ */
+ public void saveState(IMemento aMemento) {
+ }
+
+ /**
+ * @generated
+ */
+ public void init(ICommonContentExtensionSite aConfig) {
+ }
+
+ /**
+ * @generated
+ */
+ public Object[] getChildren(Object parentElement) {
+ if (parentElement instanceof IFile) {
+ IFile file = (IFile) parentElement;
+ URI fileURI = URI.createPlatformResourceURI(file.getFullPath()
+ .toString(), true);
+ Resource resource = myEditingDomain.getResourceSet().getResource(
+ fileURI, true);
+ ArrayList<ComrelNavigatorItem> result = new ArrayList<ComrelNavigatorItem>();
+ ArrayList<View> topViews = new ArrayList<View>(resource
+ .getContents().size());
+ for (EObject o : resource.getContents()) {
+ if (o instanceof View) {
+ topViews.add((View) o);
+ }
+ }
+ result.addAll(createNavigatorItems(
+ selectViewsByType(topViews,
+ CompositeRefactoringEditPart.MODEL_ID), file, false));
+ return result.toArray();
+ }
+
+ if (parentElement instanceof ComrelNavigatorGroup) {
+ ComrelNavigatorGroup group = (ComrelNavigatorGroup) parentElement;
+ return group.getChildren();
+ }
+
+ if (parentElement instanceof ComrelNavigatorItem) {
+ ComrelNavigatorItem navigatorItem = (ComrelNavigatorItem) parentElement;
+ if (navigatorItem.isLeaf() || !isOwnView(navigatorItem.getView())) {
+ return EMPTY_ARRAY;
+ }
+ return getViewChildren(navigatorItem.getView(), parentElement);
+ }
+
+ /*
+ * Due to plugin.xml restrictions this code will be called only for views representing
+ * shortcuts to this diagram elements created on other diagrams.
+ */
+ if (parentElement instanceof IAdaptable) {
+ View view = (View) ((IAdaptable) parentElement)
+ .getAdapter(View.class);
+ if (view != null) {
+ return getViewChildren(view, parentElement);
+ }
+ }
+
+ return EMPTY_ARRAY;
+ }
+
+ /**
+ * @generated
+ */
+ private Object[] getViewChildren(View view, Object parentElement) {
+ switch (ComrelVisualIDRegistry.getVisualID(view)) {
+
+ case CompositeRefactoringEditPart.VISUAL_ID: {
+ LinkedList<ComrelAbstractNavigatorItem> result = new LinkedList<ComrelAbstractNavigatorItem>();
+ result.addAll(getForeignShortcuts((Diagram) view, parentElement));
+ Diagram sv = (Diagram) view;
+ ComrelNavigatorGroup links = new ComrelNavigatorGroup(
+ Messages.NavigatorGroupName_CompositeRefactoring_1000_links,
+ "icons/linksNavigatorGroup.gif", parentElement); //$NON-NLS-1$
+ Collection<View> connectedViews;
+ connectedViews = getChildrenByType(Collections.singleton(sv),
+ ComrelVisualIDRegistry
+ .getType(SingleInputPortEditPart.VISUAL_ID));
+ result.addAll(createNavigatorItems(connectedViews, parentElement,
+ false));
+ connectedViews = getChildrenByType(Collections.singleton(sv),
+ ComrelVisualIDRegistry
+ .getType(CartesianQueuedUnitEditPart.VISUAL_ID));
+ result.addAll(createNavigatorItems(connectedViews, parentElement,
+ false));
+ connectedViews = getChildrenByType(Collections.singleton(sv),
+ ComrelVisualIDRegistry
+ .getType(ParallelQueuedUnitEditPart.VISUAL_ID));
+ result.addAll(createNavigatorItems(connectedViews, parentElement,
+ false));
+ connectedViews = getChildrenByType(Collections.singleton(sv),
+ ComrelVisualIDRegistry
+ .getType(SingleQueuedUnitEditPart.VISUAL_ID));
+ result.addAll(createNavigatorItems(connectedViews, parentElement,
+ false));
+ connectedViews = getChildrenByType(Collections.singleton(sv),
+ ComrelVisualIDRegistry
+ .getType(SequentialUnitEditPart.VISUAL_ID));
+ result.addAll(createNavigatorItems(connectedViews, parentElement,
+ false));
+ connectedViews = getChildrenByType(Collections.singleton(sv),
+ ComrelVisualIDRegistry
+ .getType(ConditionalUnitEditPart.VISUAL_ID));
+ result.addAll(createNavigatorItems(connectedViews, parentElement,
+ false));
+ connectedViews = getChildrenByType(Collections.singleton(sv),
+ ComrelVisualIDRegistry
+ .getType(AtomicUnitEditPart.VISUAL_ID));
+ result.addAll(createNavigatorItems(connectedViews, parentElement,
+ false));
+ connectedViews = getDiagramLinksByType(Collections.singleton(sv),
+ ComrelVisualIDRegistry
+ .getType(SinglePortMappingEditPart.VISUAL_ID));
+ links.addChildren(createNavigatorItems(connectedViews, links, false));
+ connectedViews = getDiagramLinksByType(Collections.singleton(sv),
+ ComrelVisualIDRegistry
+ .getType(MultiPortMappingEditPart.VISUAL_ID));
+ links.addChildren(createNavigatorItems(connectedViews, links, false));
+ connectedViews = getDiagramLinksByType(Collections.singleton(sv),
+ ComrelVisualIDRegistry
+ .getType(MultiSinglePortMappingEditPart.VISUAL_ID));
+ links.addChildren(createNavigatorItems(connectedViews, links, false));
+ if (!links.isEmpty()) {
+ result.add(links);
+ }
+ return result.toArray();
+ }
+
+ case SingleInputPort4EditPart.VISUAL_ID: {
+ LinkedList<ComrelAbstractNavigatorItem> result = new LinkedList<ComrelAbstractNavigatorItem>();
+ Node sv = (Node) view;
+ ComrelNavigatorGroup incominglinks = new ComrelNavigatorGroup(
+ Messages.NavigatorGroupName_SingleInputPort_3009_incominglinks,
+ "icons/incomingLinksNavigatorGroup.gif", parentElement); //$NON-NLS-1$
+ ComrelNavigatorGroup outgoinglinks = new ComrelNavigatorGroup(
+ Messages.NavigatorGroupName_SingleInputPort_3009_outgoinglinks,
+ "icons/outgoingLinksNavigatorGroup.gif", parentElement); //$NON-NLS-1$
+ Collection<View> connectedViews;
+ connectedViews = getIncomingLinksByType(Collections.singleton(sv),
+ ComrelVisualIDRegistry
+ .getType(SinglePortMappingEditPart.VISUAL_ID));
+ incominglinks.addChildren(createNavigatorItems(connectedViews,
+ incominglinks, true));
+ connectedViews = getOutgoingLinksByType(Collections.singleton(sv),
+ ComrelVisualIDRegistry
+ .getType(SinglePortMappingEditPart.VISUAL_ID));
+ outgoinglinks.addChildren(createNavigatorItems(connectedViews,
+ outgoinglinks, true));
+ connectedViews = getIncomingLinksByType(Collections.singleton(sv),
+ ComrelVisualIDRegistry
+ .getType(MultiSinglePortMappingEditPart.VISUAL_ID));
+ incominglinks.addChildren(createNavigatorItems(connectedViews,
+ incominglinks, true));
+ if (!incominglinks.isEmpty()) {
+ result.add(incominglinks);
+ }
+ if (!outgoinglinks.isEmpty()) {
+ result.add(outgoinglinks);
+ }
+ return result.toArray();
+ }
+
+ case CartesianQueuedUnit6EditPart.VISUAL_ID: {
+ LinkedList<ComrelAbstractNavigatorItem> result = new LinkedList<ComrelAbstractNavigatorItem>();
+ Node sv = (Node) view;
+ Collection<View> connectedViews;
+ connectedViews = getChildrenByType(Collections.singleton(sv),
+ ComrelVisualIDRegistry
+ .getType(SingleInputPort2EditPart.VISUAL_ID));
+ result.addAll(createNavigatorItems(connectedViews, parentElement,
+ false));
+ connectedViews = getChildrenByType(Collections.singleton(sv),
+ ComrelVisualIDRegistry
+ .getType(MultiInputPortEditPart.VISUAL_ID));
+ result.addAll(createNavigatorItems(connectedViews, parentElement,
+ false));
+ connectedViews = getChildrenByType(
+ Collections.singleton(sv),
+ ComrelVisualIDRegistry
+ .getType(CartesianQueuedUnitCartesianQueuedUnitRefactoringUnitCompartment6EditPart.VISUAL_ID));
+ connectedViews = getChildrenByType(connectedViews,
+ ComrelVisualIDRegistry
+ .getType(CartesianQueuedUnit2EditPart.VISUAL_ID));
+ result.addAll(createNavigatorItems(connectedViews, parentElement,
+ false));
+ connectedViews = getChildrenByType(
+ Collections.singleton(sv),
+ ComrelVisualIDRegistry
+ .getType(CartesianQueuedUnitCartesianQueuedUnitRefactoringUnitCompartment6EditPart.VISUAL_ID));
+ connectedViews = getChildrenByType(connectedViews,
+ ComrelVisualIDRegistry
+ .getType(ParallelQueuedUnit2EditPart.VISUAL_ID));
+ result.addAll(createNavigatorItems(connectedViews, parentElement,
+ false));
+ connectedViews = getChildrenByType(
+ Collections.singleton(sv),
+ ComrelVisualIDRegistry
+ .getType(CartesianQueuedUnitCartesianQueuedUnitHelperUnitsCompartment6EditPart.VISUAL_ID));
+ connectedViews = getChildrenByType(connectedViews,
+ ComrelVisualIDRegistry
+ .getType(SingleFeatureUnitEditPart.VISUAL_ID));
+ result.addAll(createNavigatorItems(connectedViews, parentElement,
+ false));
+ connectedViews = getChildrenByType(
+ Collections.singleton(sv),
+ ComrelVisualIDRegistry
+ .getType(CartesianQueuedUnitCartesianQueuedUnitHelperUnitsCompartment6EditPart.VISUAL_ID));
+ connectedViews = getChildrenByType(connectedViews,
+ ComrelVisualIDRegistry
+ .getType(MultiFeatureUnitEditPart.VISUAL_ID));
+ result.addAll(createNavigatorItems(connectedViews, parentElement,
+ false));
+ connectedViews = getChildrenByType(
+ Collections.singleton(sv),
+ ComrelVisualIDRegistry
+ .getType(CartesianQueuedUnitCartesianQueuedUnitHelperUnitsCompartment6EditPart.VISUAL_ID));
+ connectedViews = getChildrenByType(connectedViews,
+ ComrelVisualIDRegistry
+ .getType(SingleFilterUnitEditPart.VISUAL_ID));
+ result.addAll(createNavigatorItems(connectedViews, parentElement,
+ false));
+ connectedViews = getChildrenByType(
+ Collections.singleton(sv),
+ ComrelVisualIDRegistry
+ .getType(CartesianQueuedUnitCartesianQueuedUnitHelperUnitsCompartment6EditPart.VISUAL_ID));
+ connectedViews = getChildrenByType(connectedViews,
+ ComrelVisualIDRegistry
+ .getType(MultiFilterUnitEditPart.VISUAL_ID));
+ result.addAll(createNavigatorItems(connectedViews, parentElement,
+ false));
+ connectedViews = getChildrenByType(
+ Collections.singleton(sv),
+ ComrelVisualIDRegistry
+ .getType(CartesianQueuedUnitCartesianQueuedUnitRefactoringUnitCompartment6EditPart.VISUAL_ID));
+ connectedViews = getChildrenByType(connectedViews,
+ ComrelVisualIDRegistry
+ .getType(SingleQueuedUnit2EditPart.VISUAL_ID));
+ result.addAll(createNavigatorItems(connectedViews, parentElement,
+ false));
+ connectedViews = getChildrenByType(
+ Collections.singleton(sv),
+ ComrelVisualIDRegistry
+ .getType(CartesianQueuedUnitCartesianQueuedUnitRefactoringUnitCompartment6EditPart.VISUAL_ID));
+ connectedViews = getChildrenByType(connectedViews,
+ ComrelVisualIDRegistry
+ .getType(SequentialUnit2EditPart.VISUAL_ID));
+ result.addAll(createNavigatorItems(connectedViews, parentElement,
+ false));
+ connectedViews = getChildrenByType(
+ Collections.singleton(sv),
+ ComrelVisualIDRegistry
+ .getType(CartesianQueuedUnitCartesianQueuedUnitRefactoringUnitCompartment6EditPart.VISUAL_ID));
+ connectedViews = getChildrenByType(connectedViews,
+ ComrelVisualIDRegistry
+ .getType(ConditionalUnit2EditPart.VISUAL_ID));
+ result.addAll(createNavigatorItems(connectedViews, parentElement,
+ false));
+ connectedViews = getChildrenByType(
+ Collections.singleton(sv),
+ ComrelVisualIDRegistry
+ .getType(CartesianQueuedUnitCartesianQueuedUnitRefactoringUnitCompartment6EditPart.VISUAL_ID));
+ connectedViews = getChildrenByType(connectedViews,
+ ComrelVisualIDRegistry
+ .getType(AtomicUnit2EditPart.VISUAL_ID));
+ result.addAll(createNavigatorItems(connectedViews, parentElement,
+ false));
+ return result.toArray();
+ }
+
+ case CartesianQueuedUnitEditPart.VISUAL_ID: {
+ LinkedList<ComrelAbstractNavigatorItem> result = new LinkedList<ComrelAbstractNavigatorItem>();
+ Node sv = (Node) view;
+ Collection<View> connectedViews;
+ connectedViews = getChildrenByType(Collections.singleton(sv),
+ ComrelVisualIDRegistry
+ .getType(SingleInputPort2EditPart.VISUAL_ID));
+ result.addAll(createNavigatorItems(connectedViews, parentElement,
+ false));
+ connectedViews = getChildrenByType(Collections.singleton(sv),
+ ComrelVisualIDRegistry
+ .getType(MultiInputPortEditPart.VISUAL_ID));
+ result.addAll(createNavigatorItems(connectedViews, parentElement,
+ false));
+ connectedViews = getChildrenByType(
+ Collections.singleton(sv),
+ ComrelVisualIDRegistry
+ .getType(CartesianQueuedUnitCartesianQueuedUnitRefactoringUnitCompartmentEditPart.VISUAL_ID));
+ connectedViews = getChildrenByType(connectedViews,
+ ComrelVisualIDRegistry
+ .getType(CartesianQueuedUnit2EditPart.VISUAL_ID));
+ result.addAll(createNavigatorItems(connectedViews, parentElement,
+ false));
+ connectedViews = getChildrenByType(
+ Collections.singleton(sv),
+ ComrelVisualIDRegistry
+ .getType(CartesianQueuedUnitCartesianQueuedUnitRefactoringUnitCompartmentEditPart.VISUAL_ID));
+ connectedViews = getChildrenByType(connectedViews,
+ ComrelVisualIDRegistry
+ .getType(ParallelQueuedUnit2EditPart.VISUAL_ID));
+ result.addAll(createNavigatorItems(connectedViews, parentElement,
+ false));
+ connectedViews = getChildrenByType(
+ Collections.singleton(sv),
+ ComrelVisualIDRegistry
+ .getType(CartesianQueuedUnitCartesianQueuedUnitHelperUnitsCompartmentEditPart.VISUAL_ID));
+ connectedViews = getChildrenByType(connectedViews,
+ ComrelVisualIDRegistry
+ .getType(SingleFeatureUnitEditPart.VISUAL_ID));
+ result.addAll(createNavigatorItems(connectedViews, parentElement,
+ false));
+ connectedViews = getChildrenByType(
+ Collections.singleton(sv),
+ ComrelVisualIDRegistry
+ .getType(CartesianQueuedUnitCartesianQueuedUnitHelperUnitsCompartmentEditPart.VISUAL_ID));
+ connectedViews = getChildrenByType(connectedViews,
+ ComrelVisualIDRegistry
+ .getType(MultiFeatureUnitEditPart.VISUAL_ID));
+ result.addAll(createNavigatorItems(connectedViews, parentElement,
+ false));
+ connectedViews = getChildrenByType(
+ Collections.singleton(sv),
+ ComrelVisualIDRegistry
+ .getType(CartesianQueuedUnitCartesianQueuedUnitHelperUnitsCompartmentEditPart.VISUAL_ID));
+ connectedViews = getChildrenByType(connectedViews,
+ ComrelVisualIDRegistry
+ .getType(SingleFilterUnitEditPart.VISUAL_ID));
+ result.addAll(createNavigatorItems(connectedViews, parentElement,
+ false));
+ connectedViews = getChildrenByType(
+ Collections.singleton(sv),
+ ComrelVisualIDRegistry
+ .getType(CartesianQueuedUnitCartesianQueuedUnitHelperUnitsCompartmentEditPart.VISUAL_ID));
+ connectedViews = getChildrenByType(connectedViews,
+ ComrelVisualIDRegistry
+ .getType(MultiFilterUnitEditPart.VISUAL_ID));
+ result.addAll(createNavigatorItems(connectedViews, parentElement,
+ false));
+ connectedViews = getChildrenByType(
+ Collections.singleton(sv),
+ ComrelVisualIDRegistry
+ .getType(CartesianQueuedUnitCartesianQueuedUnitRefactoringUnitCompartmentEditPart.VISUAL_ID));
+ connectedViews = getChildrenByType(connectedViews,
+ ComrelVisualIDRegistry
+ .getType(SingleQueuedUnit2EditPart.VISUAL_ID));
+ result.addAll(createNavigatorItems(connectedViews, parentElement,
+ false));
+ connectedViews = getChildrenByType(
+ Collections.singleton(sv),
+ ComrelVisualIDRegistry
+ .getType(CartesianQueuedUnitCartesianQueuedUnitRefactoringUnitCompartmentEditPart.VISUAL_ID));
+ connectedViews = getChildrenByType(connectedViews,
+ ComrelVisualIDRegistry
+ .getType(SequentialUnit2EditPart.VISUAL_ID));
+ result.addAll(createNavigatorItems(connectedViews, parentElement,
+ false));
+ connectedViews = getChildrenByType(
+ Collections.singleton(sv),
+ ComrelVisualIDRegistry
+ .getType(CartesianQueuedUnitCartesianQueuedUnitRefactoringUnitCompartmentEditPart.VISUAL_ID));
+ connectedViews = getChildrenByType(connectedViews,
+ ComrelVisualIDRegistry
+ .getType(ConditionalUnit2EditPart.VISUAL_ID));
+ result.addAll(createNavigatorItems(connectedViews, parentElement,
+ false));
+ connectedViews = getChildrenByType(
+ Collections.singleton(sv),
+ ComrelVisualIDRegistry
+ .getType(CartesianQueuedUnitCartesianQueuedUnitRefactoringUnitCompartmentEditPart.VISUAL_ID));
+ connectedViews = getChildrenByType(connectedViews,
+ ComrelVisualIDRegistry
+ .getType(AtomicUnit2EditPart.VISUAL_ID));
+ result.addAll(createNavigatorItems(connectedViews, parentElement,
+ false));
+ return result.toArray();
+ }
+
+ case CartesianQueuedUnit4EditPart.VISUAL_ID: {
+ LinkedList<ComrelAbstractNavigatorItem> result = new LinkedList<ComrelAbstractNavigatorItem>();
+ Node sv = (Node) view;
+ Collection<View> connectedViews;
+ connectedViews = getChildrenByType(Collections.singleton(sv),
+ ComrelVisualIDRegistry
+ .getType(SingleInputPort2EditPart.VISUAL_ID));
+ result.addAll(createNavigatorItems(connectedViews, parentElement,
+ false));
+ connectedViews = getChildrenByType(Collections.singleton(sv),
+ ComrelVisualIDRegistry
+ .getType(MultiInputPortEditPart.VISUAL_ID));
+ result.addAll(createNavigatorItems(connectedViews, parentElement,
+ false));
+ connectedViews = getChildrenByType(
+ Collections.singleton(sv),
+ ComrelVisualIDRegistry
+ .getType(CartesianQueuedUnitCartesianQueuedUnitRefactoringUnitCompartment4EditPart.VISUAL_ID));
+ connectedViews = getChildrenByType(connectedViews,
+ ComrelVisualIDRegistry
+ .getType(CartesianQueuedUnit2EditPart.VISUAL_ID));
+ result.addAll(createNavigatorItems(connectedViews, parentElement,
+ false));
+ connectedViews = getChildrenByType(
+ Collections.singleton(sv),
+ ComrelVisualIDRegistry
+ .getType(CartesianQueuedUnitCartesianQueuedUnitRefactoringUnitCompartment4EditPart.VISUAL_ID));
+ connectedViews = getChildrenByType(connectedViews,
+ ComrelVisualIDRegistry
+ .getType(ParallelQueuedUnit2EditPart.VISUAL_ID));
+ result.addAll(createNavigatorItems(connectedViews, parentElement,
+ false));
+ connectedViews = getChildrenByType(
+ Collections.singleton(sv),
+ ComrelVisualIDRegistry
+ .getType(CartesianQueuedUnitCartesianQueuedUnitHelperUnitsCompartment4EditPart.VISUAL_ID));
+ connectedViews = getChildrenByType(connectedViews,
+ ComrelVisualIDRegistry
+ .getType(SingleFeatureUnitEditPart.VISUAL_ID));
+ result.addAll(createNavigatorItems(connectedViews, parentElement,
+ false));
+ connectedViews = getChildrenByType(
+ Collections.singleton(sv),
+ ComrelVisualIDRegistry
+ .getType(CartesianQueuedUnitCartesianQueuedUnitHelperUnitsCompartment4EditPart.VISUAL_ID));
+ connectedViews = getChildrenByType(connectedViews,
+ ComrelVisualIDRegistry
+ .getType(MultiFeatureUnitEditPart.VISUAL_ID));
+ result.addAll(createNavigatorItems(connectedViews, parentElement,
+ false));
+ connectedViews = getChildrenByType(
+ Collections.singleton(sv),
+ ComrelVisualIDRegistry
+ .getType(CartesianQueuedUnitCartesianQueuedUnitHelperUnitsCompartment4EditPart.VISUAL_ID));
+ connectedViews = getChildrenByType(connectedViews,
+ ComrelVisualIDRegistry
+ .getType(SingleFilterUnitEditPart.VISUAL_ID));
+ result.addAll(createNavigatorItems(connectedViews, parentElement,
+ false));
+ connectedViews = getChildrenByType(
+ Collections.singleton(sv),
+ ComrelVisualIDRegistry
+ .getType(CartesianQueuedUnitCartesianQueuedUnitHelperUnitsCompartment4EditPart.VISUAL_ID));
+ connectedViews = getChildrenByType(connectedViews,
+ ComrelVisualIDRegistry
+ .getType(MultiFilterUnitEditPart.VISUAL_ID));
+ result.addAll(createNavigatorItems(connectedViews, parentElement,
+ false));
+ connectedViews = getChildrenByType(
+ Collections.singleton(sv),
+ ComrelVisualIDRegistry
+ .getType(CartesianQueuedUnitCartesianQueuedUnitRefactoringUnitCompartment4EditPart.VISUAL_ID));
+ connectedViews = getChildrenByType(connectedViews,
+ ComrelVisualIDRegistry
+ .getType(SingleQueuedUnit2EditPart.VISUAL_ID));
+ result.addAll(createNavigatorItems(connectedViews, parentElement,
+ false));
+ connectedViews = getChildrenByType(
+ Collections.singleton(sv),
+ ComrelVisualIDRegistry
+ .getType(CartesianQueuedUnitCartesianQueuedUnitRefactoringUnitCompartment4EditPart.VISUAL_ID));
+ connectedViews = getChildrenByType(connectedViews,
+ ComrelVisualIDRegistry
+ .getType(SequentialUnit2EditPart.VISUAL_ID));
+ result.addAll(createNavigatorItems(connectedViews, parentElement,
+ false));
+ connectedViews = getChildrenByType(
+ Collections.singleton(sv),
+ ComrelVisualIDRegistry
+ .getType(CartesianQueuedUnitCartesianQueuedUnitRefactoringUnitCompartment4EditPart.VISUAL_ID));
+ connectedViews = getChildrenByType(connectedViews,
+ ComrelVisualIDRegistry
+ .getType(ConditionalUnit2EditPart.VISUAL_ID));
+ result.addAll(createNavigatorItems(connectedViews, parentElement,
+ false));
+ connectedViews = getChildrenByType(
+ Collections.singleton(sv),
+ ComrelVisualIDRegistry
+ .getType(CartesianQueuedUnitCartesianQueuedUnitRefactoringUnitCompartment4EditPart.VISUAL_ID));
+ connectedViews = getChildrenByType(connectedViews,
+ ComrelVisualIDRegistry
+ .getType(AtomicUnit2EditPart.VISUAL_ID));
+ result.addAll(createNavigatorItems(connectedViews, parentElement,
+ false));
+ return result.toArray();
+ }
+
+ case AtomicUnit4EditPart.VISUAL_ID: {
+ LinkedList<ComrelAbstractNavigatorItem> result = new LinkedList<ComrelAbstractNavigatorItem>();
+ Node sv = (Node) view;
+ Collection<View> connectedViews;
+ connectedViews = getChildrenByType(Collections.singleton(sv),
+ ComrelVisualIDRegistry
+ .getType(SingleInputPort9EditPart.VISUAL_ID));
+ result.addAll(createNavigatorItems(connectedViews, parentElement,
+ false));
+ return result.toArray();
+ }
+
+ case ParallelQueuedUnit7EditPart.VISUAL_ID: {
+ LinkedList<ComrelAbstractNavigatorItem> result = new LinkedList<ComrelAbstractNavigatorItem>();
+ Node sv = (Node) view;
+ Collection<View> connectedViews;
+ connectedViews = getChildrenByType(Collections.singleton(sv),
+ ComrelVisualIDRegistry
+ .getType(SingleInputPort3EditPart.VISUAL_ID));
+ result.addAll(createNavigatorItems(connectedViews, parentElement,
+ false));
+ connectedViews = getChildrenByType(Collections.singleton(sv),
+ ComrelVisualIDRegistry
+ .getType(MultiInputPort2EditPart.VISUAL_ID));
+ result.addAll(createNavigatorItems(connectedViews, parentElement,
+ false));
+ connectedViews = getChildrenByType(
+ Collections.singleton(sv),
+ ComrelVisualIDRegistry
+ .getType(ParallelQueuedUnitParallelQueuedUnitRefactoringUnitsCompartment6EditPart.VISUAL_ID));
+ connectedViews = getChildrenByType(connectedViews,
+ ComrelVisualIDRegistry
+ .getType(CartesianQueuedUnit3EditPart.VISUAL_ID));
+ result.addAll(createNavigatorItems(connectedViews, parentElement,
+ false));
+ connectedViews = getChildrenByType(
+ Collections.singleton(sv),
+ ComrelVisualIDRegistry
+ .getType(ParallelQueuedUnitParallelQueuedUnitRefactoringUnitsCompartment6EditPart.VISUAL_ID));
+ connectedViews = getChildrenByType(connectedViews,
+ ComrelVisualIDRegistry
+ .getType(ParallelQueuedUnit4EditPart.VISUAL_ID));
+ result.addAll(createNavigatorItems(connectedViews, parentElement,
+ false));
+ connectedViews = getChildrenByType(
+ Collections.singleton(sv),
+ ComrelVisualIDRegistry
+ .getType(ParallelQueuedUnitParallelQueuedUnitHelperUnitsCompartment6EditPart.VISUAL_ID));
+ connectedViews = getChildrenByType(connectedViews,
+ ComrelVisualIDRegistry
+ .getType(SingleFeatureUnit2EditPart.VISUAL_ID));
+ result.addAll(createNavigatorItems(connectedViews, parentElement,
+ false));
+ connectedViews = getChildrenByType(
+ Collections.singleton(sv),
+ ComrelVisualIDRegistry
+ .getType(ParallelQueuedUnitParallelQueuedUnitHelperUnitsCompartment6EditPart.VISUAL_ID));
+ connectedViews = getChildrenByType(connectedViews,
+ ComrelVisualIDRegistry
+ .getType(MultiFeatureUnit2EditPart.VISUAL_ID));
+ result.addAll(createNavigatorItems(connectedViews, parentElement,
+ false));
+ connectedViews = getChildrenByType(
+ Collections.singleton(sv),
+ ComrelVisualIDRegistry
+ .getType(ParallelQueuedUnitParallelQueuedUnitHelperUnitsCompartment6EditPart.VISUAL_ID));
+ connectedViews = getChildrenByType(connectedViews,
+ ComrelVisualIDRegistry
+ .getType(SingleFilterUnit2EditPart.VISUAL_ID));
+ result.addAll(createNavigatorItems(connectedViews, parentElement,
+ false));
+ connectedViews = getChildrenByType(
+ Collections.singleton(sv),
+ ComrelVisualIDRegistry
+ .getType(ParallelQueuedUnitParallelQueuedUnitHelperUnitsCompartment6EditPart.VISUAL_ID));
+ connectedViews = getChildrenByType(connectedViews,
+ ComrelVisualIDRegistry
+ .getType(MultiFilterUnit2EditPart.VISUAL_ID));
+ result.addAll(createNavigatorItems(connectedViews, parentElement,
+ false));
+ connectedViews = getChildrenByType(
+ Collections.singleton(sv),
+ ComrelVisualIDRegistry
+ .getType(ParallelQueuedUnitParallelQueuedUnitRefactoringUnitsCompartment6EditPart.VISUAL_ID));
+ connectedViews = getChildrenByType(connectedViews,
+ ComrelVisualIDRegistry
+ .getType(SingleQueuedUnit3EditPart.VISUAL_ID));
+ result.addAll(createNavigatorItems(connectedViews, parentElement,
+ false));
+ connectedViews = getChildrenByType(
+ Collections.singleton(sv),
+ ComrelVisualIDRegistry
+ .getType(ParallelQueuedUnitParallelQueuedUnitRefactoringUnitsCompartment6EditPart.VISUAL_ID));
+ connectedViews = getChildrenByType(connectedViews,
+ ComrelVisualIDRegistry
+ .getType(SequentialUnit3EditPart.VISUAL_ID));
+ result.addAll(createNavigatorItems(connectedViews, parentElement,
+ false));
+ connectedViews = getChildrenByType(
+ Collections.singleton(sv),
+ ComrelVisualIDRegistry
+ .getType(ParallelQueuedUnitParallelQueuedUnitRefactoringUnitsCompartment6EditPart.VISUAL_ID));
+ connectedViews = getChildrenByType(connectedViews,
+ ComrelVisualIDRegistry
+ .getType(ConditionalUnit3EditPart.VISUAL_ID));
+ result.addAll(createNavigatorItems(connectedViews, parentElement,
+ false));
+ connectedViews = getChildrenByType(
+ Collections.singleton(sv),
+ ComrelVisualIDRegistry
+ .getType(ParallelQueuedUnitParallelQueuedUnitRefactoringUnitsCompartment6EditPart.VISUAL_ID));
+ connectedViews = getChildrenByType(connectedViews,
+ ComrelVisualIDRegistry
+ .getType(AtomicUnit3EditPart.VISUAL_ID));
+ result.addAll(createNavigatorItems(connectedViews, parentElement,
+ false));
+ return result.toArray();
+ }
+
+ case SingleQueuedUnit5EditPart.VISUAL_ID: {
+ LinkedList<ComrelAbstractNavigatorItem> result = new LinkedList<ComrelAbstractNavigatorItem>();
+ Node sv = (Node) view;
+ Collection<View> connectedViews;
+ connectedViews = getChildrenByType(Collections.singleton(sv),
+ ComrelVisualIDRegistry
+ .getType(SingleInputPort6EditPart.VISUAL_ID));
+ result.addAll(createNavigatorItems(connectedViews, parentElement,
+ false));
+ connectedViews = getChildrenByType(Collections.singleton(sv),
+ ComrelVisualIDRegistry
+ .getType(MultiInputPort7EditPart.VISUAL_ID));
+ result.addAll(createNavigatorItems(connectedViews, parentElement,
+ false));
+ connectedViews = getChildrenByType(
+ Collections.singleton(sv),
+ ComrelVisualIDRegistry
+ .getType(SingleQueuedUnitSingleQueuedUnitRefactoringUnitCompartment4EditPart.VISUAL_ID));
+ connectedViews = getChildrenByType(connectedViews,
+ ComrelVisualIDRegistry
+ .getType(CartesianQueuedUnit4EditPart.VISUAL_ID));
+ result.addAll(createNavigatorItems(connectedViews, parentElement,
+ false));
+ connectedViews = getChildrenByType(
+ Collections.singleton(sv),
+ ComrelVisualIDRegistry
+ .getType(SingleQueuedUnitSingleQueuedUnitRefactoringUnitCompartment4EditPart.VISUAL_ID));
+ connectedViews = getChildrenByType(connectedViews,
+ ComrelVisualIDRegistry
+ .getType(ParallelQueuedUnit5EditPart.VISUAL_ID));
+ result.addAll(createNavigatorItems(connectedViews, parentElement,
+ false));
+ connectedViews = getChildrenByType(
+ Collections.singleton(sv),
+ ComrelVisualIDRegistry
+ .getType(SingleQueuedUnitSingleQueuedUnitHelperUnitsCompartment4EditPart.VISUAL_ID));
+ connectedViews = getChildrenByType(connectedViews,
+ ComrelVisualIDRegistry
+ .getType(SingleFeatureUnit4EditPart.VISUAL_ID));
+ result.addAll(createNavigatorItems(connectedViews, parentElement,
+ false));
+ connectedViews = getChildrenByType(
+ Collections.singleton(sv),
+ ComrelVisualIDRegistry
+ .getType(SingleQueuedUnitSingleQueuedUnitHelperUnitsCompartment4EditPart.VISUAL_ID));
+ connectedViews = getChildrenByType(connectedViews,
+ ComrelVisualIDRegistry
+ .getType(MultiFeatureUnit4EditPart.VISUAL_ID));
+ result.addAll(createNavigatorItems(connectedViews, parentElement,
+ false));
+ connectedViews = getChildrenByType(
+ Collections.singleton(sv),
+ ComrelVisualIDRegistry
+ .getType(SingleQueuedUnitSingleQueuedUnitHelperUnitsCompartment4EditPart.VISUAL_ID));
+ connectedViews = getChildrenByType(connectedViews,
+ ComrelVisualIDRegistry
+ .getType(SingleFilterUnit4EditPart.VISUAL_ID));
+ result.addAll(createNavigatorItems(connectedViews, parentElement,
+ false));
+ connectedViews = getChildrenByType(
+ Collections.singleton(sv),
+ ComrelVisualIDRegistry
+ .getType(SingleQueuedUnitSingleQueuedUnitHelperUnitsCompartment4EditPart.VISUAL_ID));
+ connectedViews = getChildrenByType(connectedViews,
+ ComrelVisualIDRegistry
+ .getType(MultiFilterUnit4EditPart.VISUAL_ID));
+ result.addAll(createNavigatorItems(connectedViews, parentElement,
+ false));
+ connectedViews = getChildrenByType(
+ Collections.singleton(sv),
+ ComrelVisualIDRegistry
+ .getType(SingleQueuedUnitSingleQueuedUnitRefactoringUnitCompartment4EditPart.VISUAL_ID));
+ connectedViews = getChildrenByType(connectedViews,
+ ComrelVisualIDRegistry
+ .getType(SingleQueuedUnit5EditPart.VISUAL_ID));
+ result.addAll(createNavigatorItems(connectedViews, parentElement,
+ false));
+ connectedViews = getChildrenByType(
+ Collections.singleton(sv),
+ ComrelVisualIDRegistry
+ .getType(SingleQueuedUnitSingleQueuedUnitRefactoringUnitCompartment4EditPart.VISUAL_ID));
+ connectedViews = getChildrenByType(connectedViews,
+ ComrelVisualIDRegistry
+ .getType(SequentialUnit4EditPart.VISUAL_ID));
+ result.addAll(createNavigatorItems(connectedViews, parentElement,
+ false));
+ connectedViews = getChildrenByType(
+ Collections.singleton(sv),
+ ComrelVisualIDRegistry
+ .getType(SingleQueuedUnitSingleQueuedUnitRefactoringUnitCompartment4EditPart.VISUAL_ID));
+ connectedViews = getChildrenByType(connectedViews,
+ ComrelVisualIDRegistry
+ .getType(ConditionalUnit4EditPart.VISUAL_ID));
+ result.addAll(createNavigatorItems(connectedViews, parentElement,
+ false));
+ connectedViews = getChildrenByType(
+ Collections.singleton(sv),
+ ComrelVisualIDRegistry
+ .getType(SingleQueuedUnitSingleQueuedUnitRefactoringUnitCompartment4EditPart.VISUAL_ID));
+ connectedViews = getChildrenByType(connectedViews,
+ ComrelVisualIDRegistry
+ .getType(AtomicUnit4EditPart.VISUAL_ID));
+ result.addAll(createNavigatorItems(connectedViews, parentElement,
+ false));
+ return result.toArray();
+ }
+
+ case MultiFilterUnit3EditPart.VISUAL_ID: {
+ LinkedList<ComrelAbstractNavigatorItem> result = new LinkedList<ComrelAbstractNavigatorItem>();
+ Node sv = (Node) view;
+ Collection<View> connectedViews;
+ connectedViews = getChildrenByType(Collections.singleton(sv),
+ ComrelVisualIDRegistry
+ .getType(MultiInputPort6EditPart.VISUAL_ID));
+ result.addAll(createNavigatorItems(connectedViews, parentElement,
+ false));
+ connectedViews = getChildrenByType(Collections.singleton(sv),
+ ComrelVisualIDRegistry
+ .getType(MultiOutputPort2EditPart.VISUAL_ID));
+ result.addAll(createNavigatorItems(connectedViews, parentElement,
+ false));
+ return result.toArray();
+ }
+
+ case SinglePortMappingEditPart.VISUAL_ID: {
+ LinkedList<ComrelAbstractNavigatorItem> result = new LinkedList<ComrelAbstractNavigatorItem>();
+ Edge sv = (Edge) view;
+ ComrelNavigatorGroup target = new ComrelNavigatorGroup(
+ Messages.NavigatorGroupName_SinglePortMapping_4001_target,
+ "icons/linkTargetNavigatorGroup.gif", parentElement); //$NON-NLS-1$
+ ComrelNavigatorGroup source = new ComrelNavigatorGroup(
+ Messages.NavigatorGroupName_SinglePortMapping_4001_source,
+ "icons/linkSourceNavigatorGroup.gif", parentElement); //$NON-NLS-1$
+ Collection<View> connectedViews;
+ connectedViews = getLinksTargetByType(Collections.singleton(sv),
+ ComrelVisualIDRegistry
+ .getType(SingleInputPortEditPart.VISUAL_ID));
+ target.addChildren(createNavigatorItems(connectedViews, target,
+ true));
+ connectedViews = getLinksTargetByType(Collections.singleton(sv),
+ ComrelVisualIDRegistry
+ .getType(SingleInputPort2EditPart.VISUAL_ID));
+ target.addChildren(createNavigatorItems(connectedViews, target,
+ true));
+ connectedViews = getLinksTargetByType(Collections.singleton(sv),
+ ComrelVisualIDRegistry
+ .getType(SingleInputPort3EditPart.VISUAL_ID));
+ target.addChildren(createNavigatorItems(connectedViews, target,
+ true));
+ connectedViews = getLinksTargetByType(Collections.singleton(sv),
+ ComrelVisualIDRegistry
+ .getType(SingleInputPort4EditPart.VISUAL_ID));
+ target.addChildren(createNavigatorItems(connectedViews, target,
+ true));
+ connectedViews = getLinksTargetByType(Collections.singleton(sv),
+ ComrelVisualIDRegistry
+ .getType(SingleInputPort5EditPart.VISUAL_ID));
+ target.addChildren(createNavigatorItems(connectedViews, target,
+ true));
+ connectedViews = getLinksTargetByType(Collections.singleton(sv),
+ ComrelVisualIDRegistry
+ .getType(SingleInputPort6EditPart.VISUAL_ID));
+ target.addChildren(createNavigatorItems(connectedViews, target,
+ true));
+ connectedViews = getLinksTargetByType(Collections.singleton(sv),
+ ComrelVisualIDRegistry
+ .getType(SingleInputPort7EditPart.VISUAL_ID));
+ target.addChildren(createNavigatorItems(connectedViews, target,
+ true));
+ connectedViews = getLinksTargetByType(Collections.singleton(sv),
+ ComrelVisualIDRegistry
+ .getType(SingleInputPort8EditPart.VISUAL_ID));
+ target.addChildren(createNavigatorItems(connectedViews, target,
+ true));
+ connectedViews = getLinksTargetByType(Collections.singleton(sv),
+ ComrelVisualIDRegistry
+ .getType(SingleInputPort9EditPart.VISUAL_ID));
+ target.addChildren(createNavigatorItems(connectedViews, target,
+ true));
+ connectedViews = getLinksSourceByType(Collections.singleton(sv),
+ ComrelVisualIDRegistry
+ .getType(SingleInputPortEditPart.VISUAL_ID));
+ source.addChildren(createNavigatorItems(connectedViews, source,
+ true));
+ connectedViews = getLinksSourceByType(Collections.singleton(sv),
+ ComrelVisualIDRegistry
+ .getType(SingleInputPort2EditPart.VISUAL_ID));
+ source.addChildren(createNavigatorItems(connectedViews, source,
+ true));
+ connectedViews = getLinksSourceByType(Collections.singleton(sv),
+ ComrelVisualIDRegistry
+ .getType(SingleInputPort3EditPart.VISUAL_ID));
+ source.addChildren(createNavigatorItems(connectedViews, source,
+ true));
+ connectedViews = getLinksSourceByType(Collections.singleton(sv),
+ ComrelVisualIDRegistry
+ .getType(SingleInputPort4EditPart.VISUAL_ID));
+ source.addChildren(createNavigatorItems(connectedViews, source,
+ true));
+ connectedViews = getLinksSourceByType(Collections.singleton(sv),
+ ComrelVisualIDRegistry
+ .getType(SingleOutputPortEditPart.VISUAL_ID));
+ source.addChildren(createNavigatorItems(connectedViews, source,
+ true));
+ connectedViews = getLinksSourceByType(Collections.singleton(sv),
+ ComrelVisualIDRegistry
+ .getType(SingleInputPort5EditPart.VISUAL_ID));
+ source.addChildren(createNavigatorItems(connectedViews, source,
+ true));
+ connectedViews = getLinksSourceByType(Collections.singleton(sv),
+ ComrelVisualIDRegistry
+ .getType(SingleOutputPort2EditPart.VISUAL_ID));
+ source.addChildren(createNavigatorItems(connectedViews, source,
+ true));
+ connectedViews = getLinksSourceByType(Collections.singleton(sv),
+ ComrelVisualIDRegistry
+ .getType(SingleInputPort6EditPart.VISUAL_ID));
+ source.addChildren(createNavigatorItems(connectedViews, source,
+ true));
+ connectedViews = getLinksSourceByType(Collections.singleton(sv),
+ ComrelVisualIDRegistry
+ .getType(SingleInputPort7EditPart.VISUAL_ID));
+ source.addChildren(createNavigatorItems(connectedViews, source,
+ true));
+ connectedViews = getLinksSourceByType(Collections.singleton(sv),
+ ComrelVisualIDRegistry
+ .getType(SingleInputPort8EditPart.VISUAL_ID));
+ source.addChildren(createNavigatorItems(connectedViews, source,
+ true));
+ connectedViews = getLinksSourceByType(Collections.singleton(sv),
+ ComrelVisualIDRegistry
+ .getType(SingleInputPort9EditPart.VISUAL_ID));
+ source.addChildren(createNavigatorItems(connectedViews, source,
+ true));
+ if (!target.isEmpty()) {
+ result.add(target);
+ }
+ if (!source.isEmpty()) {
+ result.add(source);
+ }
+ return result.toArray();
+ }
+
+ case SequentialUnit7EditPart.VISUAL_ID: {
+ LinkedList<ComrelAbstractNavigatorItem> result = new LinkedList<ComrelAbstractNavigatorItem>();
+ Node sv = (Node) view;
+ Collection<View> connectedViews;
+ connectedViews = getChildrenByType(Collections.singleton(sv),
+ ComrelVisualIDRegistry
+ .getType(SingleInputPort7EditPart.VISUAL_ID));
+ result.addAll(createNavigatorItems(connectedViews, parentElement,
+ false));
+ connectedViews = getChildrenByType(Collections.singleton(sv),
+ ComrelVisualIDRegistry
+ .getType(MultiInputPort8EditPart.VISUAL_ID));
+ result.addAll(createNavigatorItems(connectedViews, parentElement,
+ false));
+ connectedViews = getChildrenByType(
+ Collections.singleton(sv),
+ ComrelVisualIDRegistry
+ .getType(SequentialUnitSequentialUnitRefactoringUnitsCompartment6EditPart.VISUAL_ID));
+ connectedViews = getChildrenByType(connectedViews,
+ ComrelVisualIDRegistry
+ .getType(CartesianQueuedUnit5EditPart.VISUAL_ID));
+ result.addAll(createNavigatorItems(connectedViews, parentElement,
+ false));
+ connectedViews = getChildrenByType(
+ Collections.singleton(sv),
+ ComrelVisualIDRegistry
+ .getType(SequentialUnitSequentialUnitRefactoringUnitsCompartment6EditPart.VISUAL_ID));
+ connectedViews = getChildrenByType(connectedViews,
+ ComrelVisualIDRegistry
+ .getType(ParallelQueuedUnit6EditPart.VISUAL_ID));
+ result.addAll(createNavigatorItems(connectedViews, parentElement,
+ false));
+ connectedViews = getChildrenByType(
+ Collections.singleton(sv),
+ ComrelVisualIDRegistry
+ .getType(SequentialUnitSequentialUnitHelperUnitsCompartment6EditPart.VISUAL_ID));
+ connectedViews = getChildrenByType(connectedViews,
+ ComrelVisualIDRegistry
+ .getType(SingleFeatureUnit5EditPart.VISUAL_ID));
+ result.addAll(createNavigatorItems(connectedViews, parentElement,
+ false));
+ connectedViews = getChildrenByType(
+ Collections.singleton(sv),
+ ComrelVisualIDRegistry
+ .getType(SequentialUnitSequentialUnitHelperUnitsCompartment6EditPart.VISUAL_ID));
+ connectedViews = getChildrenByType(connectedViews,
+ ComrelVisualIDRegistry
+ .getType(MultiFeatureUnit5EditPart.VISUAL_ID));
+ result.addAll(createNavigatorItems(connectedViews, parentElement,
+ false));
+ connectedViews = getChildrenByType(
+ Collections.singleton(sv),
+ ComrelVisualIDRegistry
+ .getType(SequentialUnitSequentialUnitHelperUnitsCompartment6EditPart.VISUAL_ID));
+ connectedViews = getChildrenByType(connectedViews,
+ ComrelVisualIDRegistry
+ .getType(SingleFilterUnit5EditPart.VISUAL_ID));
+ result.addAll(createNavigatorItems(connectedViews, parentElement,
+ false));
+ connectedViews = getChildrenByType(
+ Collections.singleton(sv),
+ ComrelVisualIDRegistry
+ .getType(SequentialUnitSequentialUnitHelperUnitsCompartment6EditPart.VISUAL_ID));
+ connectedViews = getChildrenByType(connectedViews,
+ ComrelVisualIDRegistry
+ .getType(MultiFilterUnit5EditPart.VISUAL_ID));
+ result.addAll(createNavigatorItems(connectedViews, parentElement,
+ false));
+ connectedViews = getChildrenByType(
+ Collections.singleton(sv),
+ ComrelVisualIDRegistry
+ .getType(SequentialUnitSequentialUnitRefactoringUnitsCompartment6EditPart.VISUAL_ID));
+ connectedViews = getChildrenByType(connectedViews,
+ ComrelVisualIDRegistry
+ .getType(SingleQueuedUnit6EditPart.VISUAL_ID));
+ result.addAll(createNavigatorItems(connectedViews, parentElement,
+ false));
+ connectedViews = getChildrenByType(
+ Collections.singleton(sv),
+ ComrelVisualIDRegistry
+ .getType(SequentialUnitSequentialUnitRefactoringUnitsCompartment6EditPart.VISUAL_ID));
+ connectedViews = getChildrenByType(connectedViews,
+ ComrelVisualIDRegistry
+ .getType(SequentialUnit6EditPart.VISUAL_ID));
+ result.addAll(createNavigatorItems(connectedViews, parentElement,
+ false));
+ connectedViews = getChildrenByType(
+ Collections.singleton(sv),
+ ComrelVisualIDRegistry
+ .getType(SequentialUnitSequentialUnitRefactoringUnitsCompartment6EditPart.VISUAL_ID));
+ connectedViews = getChildrenByType(connectedViews,
+ ComrelVisualIDRegistry
+ .getType(ConditionalUnit5EditPart.VISUAL_ID));
+ result.addAll(createNavigatorItems(connectedViews, parentElement,
+ false));
+ connectedViews = getChildrenByType(
+ Collections.singleton(sv),
+ ComrelVisualIDRegistry
+ .getType(SequentialUnitSequentialUnitRefactoringUnitsCompartment6EditPart.VISUAL_ID));
+ connectedViews = getChildrenByType(connectedViews,
+ ComrelVisualIDRegistry
+ .getType(AtomicUnit5EditPart.VISUAL_ID));
+ result.addAll(createNavigatorItems(connectedViews, parentElement,
+ false));
+ return result.toArray();
+ }
+
+ case ConditionalUnit6EditPart.VISUAL_ID: {
+ LinkedList<ComrelAbstractNavigatorItem> result = new LinkedList<ComrelAbstractNavigatorItem>();
+ Node sv = (Node) view;
+ Collection<View> connectedViews;
+ connectedViews = getChildrenByType(Collections.singleton(sv),
+ ComrelVisualIDRegistry
+ .getType(SingleInputPort8EditPart.VISUAL_ID));
+ result.addAll(createNavigatorItems(connectedViews, parentElement,
+ false));
+ connectedViews = getChildrenByType(Collections.singleton(sv),
+ ComrelVisualIDRegistry
+ .getType(MultiInputPort9EditPart.VISUAL_ID));
+ result.addAll(createNavigatorItems(connectedViews, parentElement,
+ false));
+ connectedViews = getChildrenByType(
+ Collections.singleton(sv),
+ ComrelVisualIDRegistry
+ .getType(ConditionalUnitConditionalUnitThenCompartment5EditPart.VISUAL_ID));
+ connectedViews = getChildrenByType(connectedViews,
+ ComrelVisualIDRegistry
+ .getType(CartesianQueuedUnit6EditPart.VISUAL_ID));
+ result.addAll(createNavigatorItems(connectedViews, parentElement,
+ false));
+ connectedViews = getChildrenByType(
+ Collections.singleton(sv),
+ ComrelVisualIDRegistry
+ .getType(ConditionalUnitConditionalUnitThenCompartment5EditPart.VISUAL_ID));
+ connectedViews = getChildrenByType(connectedViews,
+ ComrelVisualIDRegistry
+ .getType(ParallelQueuedUnit3EditPart.VISUAL_ID));
+ result.addAll(createNavigatorItems(connectedViews, parentElement,
+ false));
+ connectedViews = getChildrenByType(
+ Collections.singleton(sv),
+ ComrelVisualIDRegistry
+ .getType(ConditionalUnitConditionalUnitElseCompartment5EditPart.VISUAL_ID));
+ connectedViews = getChildrenByType(connectedViews,
+ ComrelVisualIDRegistry
+ .getType(CartesianQueuedUnit7EditPart.VISUAL_ID));
+ result.addAll(createNavigatorItems(connectedViews, parentElement,
+ false));
+ connectedViews = getChildrenByType(
+ Collections.singleton(sv),
+ ComrelVisualIDRegistry
+ .getType(ConditionalUnitConditionalUnitElseCompartment5EditPart.VISUAL_ID));
+ connectedViews = getChildrenByType(connectedViews,
+ ComrelVisualIDRegistry
+ .getType(ParallelQueuedUnit7EditPart.VISUAL_ID));
+ result.addAll(createNavigatorItems(connectedViews, parentElement,
+ false));
+ connectedViews = getChildrenByType(
+ Collections.singleton(sv),
+ ComrelVisualIDRegistry
+ .getType(ConditionalUnitConditionalUnitHelperUnitsCompartment5EditPart.VISUAL_ID));
+ connectedViews = getChildrenByType(connectedViews,
+ ComrelVisualIDRegistry
+ .getType(SingleFeatureUnit3EditPart.VISUAL_ID));
+ result.addAll(createNavigatorItems(connectedViews, parentElement,
+ false));
+ connectedViews = getChildrenByType(
+ Collections.singleton(sv),
+ ComrelVisualIDRegistry
+ .getType(ConditionalUnitConditionalUnitHelperUnitsCompartment5EditPart.VISUAL_ID));
+ connectedViews = getChildrenByType(connectedViews,
+ ComrelVisualIDRegistry
+ .getType(MultiFeatureUnit3EditPart.VISUAL_ID));
+ result.addAll(createNavigatorItems(connectedViews, parentElement,
+ false));
+ connectedViews = getChildrenByType(
+ Collections.singleton(sv),
+ ComrelVisualIDRegistry
+ .getType(ConditionalUnitConditionalUnitHelperUnitsCompartment5EditPart.VISUAL_ID));
+ connectedViews = getChildrenByType(connectedViews,
+ ComrelVisualIDRegistry
+ .getType(SingleFilterUnit3EditPart.VISUAL_ID));
+ result.addAll(createNavigatorItems(connectedViews, parentElement,
+ false));
+ connectedViews = getChildrenByType(
+ Collections.singleton(sv),
+ ComrelVisualIDRegistry
+ .getType(ConditionalUnitConditionalUnitHelperUnitsCompartment5EditPart.VISUAL_ID));
+ connectedViews = getChildrenByType(connectedViews,
+ ComrelVisualIDRegistry
+ .getType(MultiFilterUnit3EditPart.VISUAL_ID));
+ result.addAll(createNavigatorItems(connectedViews, parentElement,
+ false));
+ connectedViews = getChildrenByType(
+ Collections.singleton(sv),
+ ComrelVisualIDRegistry
+ .getType(ConditionalUnitConditionalUnitThenCompartment5EditPart.VISUAL_ID));
+ connectedViews = getChildrenByType(connectedViews,
+ ComrelVisualIDRegistry
+ .getType(SingleQueuedUnit4EditPart.VISUAL_ID));
+ result.addAll(createNavigatorItems(connectedViews, parentElement,
+ false));
+ connectedViews = getChildrenByType(
+ Collections.singleton(sv),
+ ComrelVisualIDRegistry
+ .getType(ConditionalUnitConditionalUnitElseCompartment5EditPart.VISUAL_ID));
+ connectedViews = getChildrenByType(connectedViews,
+ ComrelVisualIDRegistry
+ .getType(SingleQueuedUnit7EditPart.VISUAL_ID));
+ result.addAll(createNavigatorItems(connectedViews, parentElement,
+ false));
+ connectedViews = getChildrenByType(
+ Collections.singleton(sv),
+ ComrelVisualIDRegistry
+ .getType(ConditionalUnitConditionalUnitThenCompartment5EditPart.VISUAL_ID));
+ connectedViews = getChildrenByType(connectedViews,
+ ComrelVisualIDRegistry
+ .getType(SequentialUnit5EditPart.VISUAL_ID));
+ result.addAll(createNavigatorItems(connectedViews, parentElement,
+ false));
+ connectedViews = getChildrenByType(
+ Collections.singleton(sv),
+ ComrelVisualIDRegistry
+ .getType(ConditionalUnitConditionalUnitThenCompartment5EditPart.VISUAL_ID));
+ connectedViews = getChildrenByType(connectedViews,
+ ComrelVisualIDRegistry
+ .getType(ConditionalUnit6EditPart.VISUAL_ID));
+ result.addAll(createNavigatorItems(connectedViews, parentElement,
+ false));
+ connectedViews = getChildrenByType(
+ Collections.singleton(sv),
+ ComrelVisualIDRegistry
+ .getType(ConditionalUnitConditionalUnitElseCompartment5EditPart.VISUAL_ID));
+ connectedViews = getChildrenByType(connectedViews,
+ ComrelVisualIDRegistry
+ .getType(SequentialUnit7EditPart.VISUAL_ID));
+ result.addAll(createNavigatorItems(connectedViews, parentElement,
+ false));
+ connectedViews = getChildrenByType(
+ Collections.singleton(sv),
+ ComrelVisualIDRegistry
+ .getType(ConditionalUnitConditionalUnitElseCompartment5EditPart.VISUAL_ID));
+ connectedViews = getChildrenByType(connectedViews,
+ ComrelVisualIDRegistry
+ .getType(ConditionalUnit7EditPart.VISUAL_ID));
+ result.addAll(createNavigatorItems(connectedViews, parentElement,
+ false));
+ connectedViews = getChildrenByType(
+ Collections.singleton(sv),
+ ComrelVisualIDRegistry
+ .getType(ConditionalUnitConditionalUnitIfCompartment5EditPart.VISUAL_ID));
+ connectedViews = getChildrenByType(connectedViews,
+ ComrelVisualIDRegistry
+ .getType(ConditionCheckEditPart.VISUAL_ID));
+ result.addAll(createNavigatorItems(connectedViews, parentElement,
+ false));
+ connectedViews = getChildrenByType(
+ Collections.singleton(sv),
+ ComrelVisualIDRegistry
+ .getType(ConditionalUnitConditionalUnitThenCompartment5EditPart.VISUAL_ID));
+ connectedViews = getChildrenByType(connectedViews,
+ ComrelVisualIDRegistry
+ .getType(AtomicUnit6EditPart.VISUAL_ID));
+ result.addAll(createNavigatorItems(connectedViews, parentElement,
+ false));
+ connectedViews = getChildrenByType(
+ Collections.singleton(sv),
+ ComrelVisualIDRegistry
+ .getType(ConditionalUnitConditionalUnitElseCompartment5EditPart.VISUAL_ID));
+ connectedViews = getChildrenByType(connectedViews,
+ ComrelVisualIDRegistry
+ .getType(AtomicUnit7EditPart.VISUAL_ID));
+ result.addAll(createNavigatorItems(connectedViews, parentElement,
+ false));
+ return result.toArray();
+ }
+
+ case AtomicUnitEditPart.VISUAL_ID: {
+ LinkedList<ComrelAbstractNavigatorItem> result = new LinkedList<ComrelAbstractNavigatorItem>();
+ Node sv = (Node) view;
+ Collection<View> connectedViews;
+ connectedViews = getChildrenByType(Collections.singleton(sv),
+ ComrelVisualIDRegistry
+ .getType(SingleInputPort9EditPart.VISUAL_ID));
+ result.addAll(createNavigatorItems(connectedViews, parentElement,
+ false));
+ return result.toArray();
+ }
+
+ case MultiFeatureUnit5EditPart.VISUAL_ID: {
+ LinkedList<ComrelAbstractNavigatorItem> result = new LinkedList<ComrelAbstractNavigatorItem>();
+ Node sv = (Node) view;
+ Collection<View> connectedViews;
+ connectedViews = getChildrenByType(Collections.singleton(sv),
+ ComrelVisualIDRegistry
+ .getType(SingleInputPort5EditPart.VISUAL_ID));
+ result.addAll(createNavigatorItems(connectedViews, parentElement,
+ false));
+ connectedViews = getChildrenByType(Collections.singleton(sv),
+ ComrelVisualIDRegistry
+ .getType(MultiInputPort4EditPart.VISUAL_ID));
+ result.addAll(createNavigatorItems(connectedViews, parentElement,
+ false));
+ connectedViews = getChildrenByType(Collections.singleton(sv),
+ ComrelVisualIDRegistry
+ .getType(MultiOutputPortEditPart.VISUAL_ID));
+ result.addAll(createNavigatorItems(connectedViews, parentElement,
+ false));
+ return result.toArray();
+ }
+
+ case ConditionalUnit3EditPart.VISUAL_ID: {
+ LinkedList<ComrelAbstractNavigatorItem> result = new LinkedList<ComrelAbstractNavigatorItem>();
+ Node sv = (Node) view;
+ Collection<View> connectedViews;
+ connectedViews = getChildrenByType(Collections.singleton(sv),
+ ComrelVisualIDRegistry
+ .getType(SingleInputPort8EditPart.VISUAL_ID));
+ result.addAll(createNavigatorItems(connectedViews, parentElement,
+ false));
+ connectedViews = getChildrenByType(Collections.singleton(sv),
+ ComrelVisualIDRegistry
+ .getType(MultiInputPort9EditPart.VISUAL_ID));
+ result.addAll(createNavigatorItems(connectedViews, parentElement,
+ false));
+ connectedViews = getChildrenByType(
+ Collections.singleton(sv),
+ ComrelVisualIDRegistry
+ .getType(ConditionalUnitConditionalUnitThenCompartment2EditPart.VISUAL_ID));
+ connectedViews = getChildrenByType(connectedViews,
+ ComrelVisualIDRegistry
+ .getType(CartesianQueuedUnit6EditPart.VISUAL_ID));
+ result.addAll(createNavigatorItems(connectedViews, parentElement,
+ false));
+ connectedViews = getChildrenByType(
+ Collections.singleton(sv),
+ ComrelVisualIDRegistry
+ .getType(ConditionalUnitConditionalUnitThenCompartment2EditPart.VISUAL_ID));
+ connectedViews = getChildrenByType(connectedViews,
+ ComrelVisualIDRegistry
+ .getType(ParallelQueuedUnit3EditPart.VISUAL_ID));
+ result.addAll(createNavigatorItems(connectedViews, parentElement,
+ false));
+ connectedViews = getChildrenByType(
+ Collections.singleton(sv),
+ ComrelVisualIDRegistry
+ .getType(ConditionalUnitConditionalUnitElseCompartment2EditPart.VISUAL_ID));
+ connectedViews = getChildrenByType(connectedViews,
+ ComrelVisualIDRegistry
+ .getType(CartesianQueuedUnit7EditPart.VISUAL_ID));
+ result.addAll(createNavigatorItems(connectedViews, parentElement,
+ false));
+ connectedViews = getChildrenByType(
+ Collections.singleton(sv),
+ ComrelVisualIDRegistry
+ .getType(ConditionalUnitConditionalUnitElseCompartment2EditPart.VISUAL_ID));
+ connectedViews = getChildrenByType(connectedViews,
+ ComrelVisualIDRegistry
+ .getType(ParallelQueuedUnit7EditPart.VISUAL_ID));
+ result.addAll(createNavigatorItems(connectedViews, parentElement,
+ false));
+ connectedViews = getChildrenByType(
+ Collections.singleton(sv),
+ ComrelVisualIDRegistry
+ .getType(ConditionalUnitConditionalUnitHelperUnitsCompartment2EditPart.VISUAL_ID));
+ connectedViews = getChildrenByType(connectedViews,
+ ComrelVisualIDRegistry
+ .getType(SingleFeatureUnit3EditPart.VISUAL_ID));
+ result.addAll(createNavigatorItems(connectedViews, parentElement,
+ false));
+ connectedViews = getChildrenByType(
+ Collections.singleton(sv),
+ ComrelVisualIDRegistry
+ .getType(ConditionalUnitConditionalUnitHelperUnitsCompartment2EditPart.VISUAL_ID));
+ connectedViews = getChildrenByType(connectedViews,
+ ComrelVisualIDRegistry
+ .getType(MultiFeatureUnit3EditPart.VISUAL_ID));
+ result.addAll(createNavigatorItems(connectedViews, parentElement,
+ false));
+ connectedViews = getChildrenByType(
+ Collections.singleton(sv),
+ ComrelVisualIDRegistry
+ .getType(ConditionalUnitConditionalUnitHelperUnitsCompartment2EditPart.VISUAL_ID));
+ connectedViews = getChildrenByType(connectedViews,
+ ComrelVisualIDRegistry
+ .getType(SingleFilterUnit3EditPart.VISUAL_ID));
+ result.addAll(createNavigatorItems(connectedViews, parentElement,
+ false));
+ connectedViews = getChildrenByType(
+ Collections.singleton(sv),
+ ComrelVisualIDRegistry
+ .getType(ConditionalUnitConditionalUnitHelperUnitsCompartment2EditPart.VISUAL_ID));
+ connectedViews = getChildrenByType(connectedViews,
+ ComrelVisualIDRegistry
+ .getType(MultiFilterUnit3EditPart.VISUAL_ID));
+ result.addAll(createNavigatorItems(connectedViews, parentElement,
+ false));
+ connectedViews = getChildrenByType(
+ Collections.singleton(sv),
+ ComrelVisualIDRegistry
+ .getType(ConditionalUnitConditionalUnitThenCompartment2EditPart.VISUAL_ID));
+ connectedViews = getChildrenByType(connectedViews,
+ ComrelVisualIDRegistry
+ .getType(SingleQueuedUnit4EditPart.VISUAL_ID));
+ result.addAll(createNavigatorItems(connectedViews, parentElement,
+ false));
+ connectedViews = getChildrenByType(
+ Collections.singleton(sv),
+ ComrelVisualIDRegistry
+ .getType(ConditionalUnitConditionalUnitElseCompartment2EditPart.VISUAL_ID));
+ connectedViews = getChildrenByType(connectedViews,
+ ComrelVisualIDRegistry
+ .getType(SingleQueuedUnit7EditPart.VISUAL_ID));
+ result.addAll(createNavigatorItems(connectedViews, parentElement,
+ false));
+ connectedViews = getChildrenByType(
+ Collections.singleton(sv),
+ ComrelVisualIDRegistry
+ .getType(ConditionalUnitConditionalUnitThenCompartment2EditPart.VISUAL_ID));
+ connectedViews = getChildrenByType(connectedViews,
+ ComrelVisualIDRegistry
+ .getType(SequentialUnit5EditPart.VISUAL_ID));
+ result.addAll(createNavigatorItems(connectedViews, parentElement,
+ false));
+ connectedViews = getChildrenByType(
+ Collections.singleton(sv),
+ ComrelVisualIDRegistry
+ .getType(ConditionalUnitConditionalUnitThenCompartment2EditPart.VISUAL_ID));
+ connectedViews = getChildrenByType(connectedViews,
+ ComrelVisualIDRegistry
+ .getType(ConditionalUnit6EditPart.VISUAL_ID));
+ result.addAll(createNavigatorItems(connectedViews, parentElement,
+ false));
+ connectedViews = getChildrenByType(
+ Collections.singleton(sv),
+ ComrelVisualIDRegistry
+ .getType(ConditionalUnitConditionalUnitElseCompartment2EditPart.VISUAL_ID));
+ connectedViews = getChildrenByType(connectedViews,
+ ComrelVisualIDRegistry
+ .getType(SequentialUnit7EditPart.VISUAL_ID));
+ result.addAll(createNavigatorItems(connectedViews, parentElement,
+ false));
+ connectedViews = getChildrenByType(
+ Collections.singleton(sv),
+ ComrelVisualIDRegistry
+ .getType(ConditionalUnitConditionalUnitElseCompartment2EditPart.VISUAL_ID));
+ connectedViews = getChildrenByType(connectedViews,
+ ComrelVisualIDRegistry
+ .getType(ConditionalUnit7EditPart.VISUAL_ID));
+ result.addAll(createNavigatorItems(connectedViews, parentElement,
+ false));
+ connectedViews = getChildrenByType(
+ Collections.singleton(sv),
+ ComrelVisualIDRegistry
+ .getType(ConditionalUnitConditionalUnitIfCompartment2EditPart.VISUAL_ID));
+ connectedViews = getChildrenByType(connectedViews,
+ ComrelVisualIDRegistry
+ .getType(ConditionCheckEditPart.VISUAL_ID));
+ result.addAll(createNavigatorItems(connectedViews, parentElement,
+ false));
+ connectedViews = getChildrenByType(
+ Collections.singleton(sv),
+ ComrelVisualIDRegistry
+ .getType(ConditionalUnitConditionalUnitThenCompartment2EditPart.VISUAL_ID));
+ connectedViews = getChildrenByType(connectedViews,
+ ComrelVisualIDRegistry
+ .getType(AtomicUnit6EditPart.VISUAL_ID));
+ result.addAll(createNavigatorItems(connectedViews, parentElement,
+ false));
+ connectedViews = getChildrenByType(
+ Collections.singleton(sv),
+ ComrelVisualIDRegistry
+ .getType(ConditionalUnitConditionalUnitElseCompartment2EditPart.VISUAL_ID));
+ connectedViews = getChildrenByType(connectedViews,
+ ComrelVisualIDRegistry
+ .getType(AtomicUnit7EditPart.VISUAL_ID));
+ result.addAll(createNavigatorItems(connectedViews, parentElement,
+ false));
+ return result.toArray();
+ }
+
+ case SingleFeatureUnitEditPart.VISUAL_ID: {
+ LinkedList<ComrelAbstractNavigatorItem> result = new LinkedList<ComrelAbstractNavigatorItem>();
+ Node sv = (Node) view;
+ Collection<View> connectedViews;
+ connectedViews = getChildrenByType(Collections.singleton(sv),
+ ComrelVisualIDRegistry
+ .getType(SingleInputPort4EditPart.VISUAL_ID));
+ result.addAll(createNavigatorItems(connectedViews, parentElement,
+ false));
+ connectedViews = getChildrenByType(Collections.singleton(sv),
+ ComrelVisualIDRegistry
+ .getType(MultiInputPort3EditPart.VISUAL_ID));
+ result.addAll(createNavigatorItems(connectedViews, parentElement,
+ false));
+ connectedViews = getChildrenByType(Collections.singleton(sv),
+ ComrelVisualIDRegistry
+ .getType(SingleOutputPortEditPart.VISUAL_ID));
+ result.addAll(createNavigatorItems(connectedViews, parentElement,
+ false));
+ return result.toArray();
+ }
+
+ case AtomicUnit6EditPart.VISUAL_ID: {
+ LinkedList<ComrelAbstractNavigatorItem> result = new LinkedList<ComrelAbstractNavigatorItem>();
+ Node sv = (Node) view;
+ Collection<View> connectedViews;
+ connectedViews = getChildrenByType(Collections.singleton(sv),
+ ComrelVisualIDRegistry
+ .getType(SingleInputPort9EditPart.VISUAL_ID));
+ result.addAll(createNavigatorItems(connectedViews, parentElement,
+ false));
+ return result.toArray();
+ }
+
+ case MultiFeatureUnit2EditPart.VISUAL_ID: {
+ LinkedList<ComrelAbstractNavigatorItem> result = new LinkedList<ComrelAbstractNavigatorItem>();
+ Node sv = (Node) view;
+ Collection<View> connectedViews;
+ connectedViews = getChildrenByType(Collections.singleton(sv),
+ ComrelVisualIDRegistry
+ .getType(SingleInputPort5EditPart.VISUAL_ID));
+ result.addAll(createNavigatorItems(connectedViews, parentElement,
+ false));
+ connectedViews = getChildrenByType(Collections.singleton(sv),
+ ComrelVisualIDRegistry
+ .getType(MultiInputPort4EditPart.VISUAL_ID));
+ result.addAll(createNavigatorItems(connectedViews, parentElement,
+ false));
+ connectedViews = getChildrenByType(Collections.singleton(sv),
+ ComrelVisualIDRegistry
+ .getType(MultiOutputPortEditPart.VISUAL_ID));
+ result.addAll(createNavigatorItems(connectedViews, parentElement,
+ false));
+ return result.toArray();
+ }
+
+ case CartesianQueuedUnit5EditPart.VISUAL_ID: {
+ LinkedList<ComrelAbstractNavigatorItem> result = new LinkedList<ComrelAbstractNavigatorItem>();
+ Node sv = (Node) view;
+ Collection<View> connectedViews;
+ connectedViews = getChildrenByType(Collections.singleton(sv),
+ ComrelVisualIDRegistry
+ .getType(SingleInputPort2EditPart.VISUAL_ID));
+ result.addAll(createNavigatorItems(connectedViews, parentElement,
+ false));
+ connectedViews = getChildrenByType(Collections.singleton(sv),
+ ComrelVisualIDRegistry
+ .getType(MultiInputPortEditPart.VISUAL_ID));
+ result.addAll(createNavigatorItems(connectedViews, parentElement,
+ false));
+ connectedViews = getChildrenByType(
+ Collections.singleton(sv),
+ ComrelVisualIDRegistry
+ .getType(CartesianQueuedUnitCartesianQueuedUnitRefactoringUnitCompartment5EditPart.VISUAL_ID));
+ connectedViews = getChildrenByType(connectedViews,
+ ComrelVisualIDRegistry
+ .getType(CartesianQueuedUnit2EditPart.VISUAL_ID));
+ result.addAll(createNavigatorItems(connectedViews, parentElement,
+ false));
+ connectedViews = getChildrenByType(
+ Collections.singleton(sv),
+ ComrelVisualIDRegistry
+ .getType(CartesianQueuedUnitCartesianQueuedUnitRefactoringUnitCompartment5EditPart.VISUAL_ID));
+ connectedViews = getChildrenByType(connectedViews,
+ ComrelVisualIDRegistry
+ .getType(ParallelQueuedUnit2EditPart.VISUAL_ID));
+ result.addAll(createNavigatorItems(connectedViews, parentElement,
+ false));
+ connectedViews = getChildrenByType(
+ Collections.singleton(sv),
+ ComrelVisualIDRegistry
+ .getType(CartesianQueuedUnitCartesianQueuedUnitHelperUnitsCompartment5EditPart.VISUAL_ID));
+ connectedViews = getChildrenByType(connectedViews,
+ ComrelVisualIDRegistry
+ .getType(SingleFeatureUnitEditPart.VISUAL_ID));
+ result.addAll(createNavigatorItems(connectedViews, parentElement,
+ false));
+ connectedViews = getChildrenByType(
+ Collections.singleton(sv),
+ ComrelVisualIDRegistry
+ .getType(CartesianQueuedUnitCartesianQueuedUnitHelperUnitsCompartment5EditPart.VISUAL_ID));
+ connectedViews = getChildrenByType(connectedViews,
+ ComrelVisualIDRegistry
+ .getType(MultiFeatureUnitEditPart.VISUAL_ID));
+ result.addAll(createNavigatorItems(connectedViews, parentElement,
+ false));
+ connectedViews = getChildrenByType(
+ Collections.singleton(sv),
+ ComrelVisualIDRegistry
+ .getType(CartesianQueuedUnitCartesianQueuedUnitHelperUnitsCompartment5EditPart.VISUAL_ID));
+ connectedViews = getChildrenByType(connectedViews,
+ ComrelVisualIDRegistry
+ .getType(SingleFilterUnitEditPart.VISUAL_ID));
+ result.addAll(createNavigatorItems(connectedViews, parentElement,
+ false));
+ connectedViews = getChildrenByType(
+ Collections.singleton(sv),
+ ComrelVisualIDRegistry
+ .getType(CartesianQueuedUnitCartesianQueuedUnitHelperUnitsCompartment5EditPart.VISUAL_ID));
+ connectedViews = getChildrenByType(connectedViews,
+ ComrelVisualIDRegistry
+ .getType(MultiFilterUnitEditPart.VISUAL_ID));
+ result.addAll(createNavigatorItems(connectedViews, parentElement,
+ false));
+ connectedViews = getChildrenByType(
+ Collections.singleton(sv),
+ ComrelVisualIDRegistry
+ .getType(CartesianQueuedUnitCartesianQueuedUnitRefactoringUnitCompartment5EditPart.VISUAL_ID));
+ connectedViews = getChildrenByType(connectedViews,
+ ComrelVisualIDRegistry
+ .getType(SingleQueuedUnit2EditPart.VISUAL_ID));
+ result.addAll(createNavigatorItems(connectedViews, parentElement,
+ false));
+ connectedViews = getChildrenByType(
+ Collections.singleton(sv),
+ ComrelVisualIDRegistry
+ .getType(CartesianQueuedUnitCartesianQueuedUnitRefactoringUnitCompartment5EditPart.VISUAL_ID));
+ connectedViews = getChildrenByType(connectedViews,
+ ComrelVisualIDRegistry
+ .getType(SequentialUnit2EditPart.VISUAL_ID));
+ result.addAll(createNavigatorItems(connectedViews, parentElement,
+ false));
+ connectedViews = getChildrenByType(
+ Collections.singleton(sv),
+ ComrelVisualIDRegistry
+ .getType(CartesianQueuedUnitCartesianQueuedUnitRefactoringUnitCompartment5EditPart.VISUAL_ID));
+ connectedViews = getChildrenByType(connectedViews,
+ ComrelVisualIDRegistry
+ .getType(ConditionalUnit2EditPart.VISUAL_ID));
+ result.addAll(createNavigatorItems(connectedViews, parentElement,
+ false));
+ connectedViews = getChildrenByType(
+ Collections.singleton(sv),
+ ComrelVisualIDRegistry
+ .getType(CartesianQueuedUnitCartesianQueuedUnitRefactoringUnitCompartment5EditPart.VISUAL_ID));
+ connectedViews = getChildrenByType(connectedViews,
+ ComrelVisualIDRegistry
+ .getType(AtomicUnit2EditPart.VISUAL_ID));
+ result.addAll(createNavigatorItems(connectedViews, parentElement,
+ false));
+ return result.toArray();
+ }
+
+ case ConditionalUnit2EditPart.VISUAL_ID: {
+ LinkedList<ComrelAbstractNavigatorItem> result = new LinkedList<ComrelAbstractNavigatorItem>();
+ Node sv = (Node) view;
+ Collection<View> connectedViews;
+ connectedViews = getChildrenByType(Collections.singleton(sv),
+ ComrelVisualIDRegistry
+ .getType(SingleInputPort8EditPart.VISUAL_ID));
+ result.addAll(createNavigatorItems(connectedViews, parentElement,
+ false));
+ connectedViews = getChildrenByType(Collections.singleton(sv),
+ ComrelVisualIDRegistry
+ .getType(MultiInputPort9EditPart.VISUAL_ID));
+ result.addAll(createNavigatorItems(connectedViews, parentElement,
+ false));
+ connectedViews = getChildrenByType(
+ Collections.singleton(sv),
+ ComrelVisualIDRegistry
+ .getType(ConditionalUnitConditionalUnitThenCompartmentEditPart.VISUAL_ID));
+ connectedViews = getChildrenByType(connectedViews,
+ ComrelVisualIDRegistry
+ .getType(CartesianQueuedUnit6EditPart.VISUAL_ID));
+ result.addAll(createNavigatorItems(connectedViews, parentElement,
+ false));
+ connectedViews = getChildrenByType(
+ Collections.singleton(sv),
+ ComrelVisualIDRegistry
+ .getType(ConditionalUnitConditionalUnitThenCompartmentEditPart.VISUAL_ID));
+ connectedViews = getChildrenByType(connectedViews,
+ ComrelVisualIDRegistry
+ .getType(ParallelQueuedUnit3EditPart.VISUAL_ID));
+ result.addAll(createNavigatorItems(connectedViews, parentElement,
+ false));
+ connectedViews = getChildrenByType(
+ Collections.singleton(sv),
+ ComrelVisualIDRegistry
+ .getType(ConditionalUnitConditionalUnitElseCompartmentEditPart.VISUAL_ID));
+ connectedViews = getChildrenByType(connectedViews,
+ ComrelVisualIDRegistry
+ .getType(CartesianQueuedUnit7EditPart.VISUAL_ID));
+ result.addAll(createNavigatorItems(connectedViews, parentElement,
+ false));
+ connectedViews = getChildrenByType(
+ Collections.singleton(sv),
+ ComrelVisualIDRegistry
+ .getType(ConditionalUnitConditionalUnitElseCompartmentEditPart.VISUAL_ID));
+ connectedViews = getChildrenByType(connectedViews,
+ ComrelVisualIDRegistry
+ .getType(ParallelQueuedUnit7EditPart.VISUAL_ID));
+ result.addAll(createNavigatorItems(connectedViews, parentElement,
+ false));
+ connectedViews = getChildrenByType(
+ Collections.singleton(sv),
+ ComrelVisualIDRegistry
+ .getType(ConditionalUnitConditionalUnitHelperUnitsCompartmentEditPart.VISUAL_ID));
+ connectedViews = getChildrenByType(connectedViews,
+ ComrelVisualIDRegistry
+ .getType(SingleFeatureUnit3EditPart.VISUAL_ID));
+ result.addAll(createNavigatorItems(connectedViews, parentElement,
+ false));
+ connectedViews = getChildrenByType(
+ Collections.singleton(sv),
+ ComrelVisualIDRegistry
+ .getType(ConditionalUnitConditionalUnitHelperUnitsCompartmentEditPart.VISUAL_ID));
+ connectedViews = getChildrenByType(connectedViews,
+ ComrelVisualIDRegistry
+ .getType(MultiFeatureUnit3EditPart.VISUAL_ID));
+ result.addAll(createNavigatorItems(connectedViews, parentElement,
+ false));
+ connectedViews = getChildrenByType(
+ Collections.singleton(sv),
+ ComrelVisualIDRegistry
+ .getType(ConditionalUnitConditionalUnitHelperUnitsCompartmentEditPart.VISUAL_ID));
+ connectedViews = getChildrenByType(connectedViews,
+ ComrelVisualIDRegistry
+ .getType(SingleFilterUnit3EditPart.VISUAL_ID));
+ result.addAll(createNavigatorItems(connectedViews, parentElement,
+ false));
+ connectedViews = getChildrenByType(
+ Collections.singleton(sv),
+ ComrelVisualIDRegistry
+ .getType(ConditionalUnitConditionalUnitHelperUnitsCompartmentEditPart.VISUAL_ID));
+ connectedViews = getChildrenByType(connectedViews,
+ ComrelVisualIDRegistry
+ .getType(MultiFilterUnit3EditPart.VISUAL_ID));
+ result.addAll(createNavigatorItems(connectedViews, parentElement,
+ false));
+ connectedViews = getChildrenByType(
+ Collections.singleton(sv),
+ ComrelVisualIDRegistry
+ .getType(ConditionalUnitConditionalUnitThenCompartmentEditPart.VISUAL_ID));
+ connectedViews = getChildrenByType(connectedViews,
+ ComrelVisualIDRegistry
+ .getType(SingleQueuedUnit4EditPart.VISUAL_ID));
+ result.addAll(createNavigatorItems(connectedViews, parentElement,
+ false));
+ connectedViews = getChildrenByType(
+ Collections.singleton(sv),
+ ComrelVisualIDRegistry
+ .getType(ConditionalUnitConditionalUnitElseCompartmentEditPart.VISUAL_ID));
+ connectedViews = getChildrenByType(connectedViews,
+ ComrelVisualIDRegistry
+ .getType(SingleQueuedUnit7EditPart.VISUAL_ID));
+ result.addAll(createNavigatorItems(connectedViews, parentElement,
+ false));
+ connectedViews = getChildrenByType(
+ Collections.singleton(sv),
+ ComrelVisualIDRegistry
+ .getType(ConditionalUnitConditionalUnitThenCompartmentEditPart.VISUAL_ID));
+ connectedViews = getChildrenByType(connectedViews,
+ ComrelVisualIDRegistry
+ .getType(SequentialUnit5EditPart.VISUAL_ID));
+ result.addAll(createNavigatorItems(connectedViews, parentElement,
+ false));
+ connectedViews = getChildrenByType(
+ Collections.singleton(sv),
+ ComrelVisualIDRegistry
+ .getType(ConditionalUnitConditionalUnitThenCompartmentEditPart.VISUAL_ID));
+ connectedViews = getChildrenByType(connectedViews,
+ ComrelVisualIDRegistry
+ .getType(ConditionalUnit6EditPart.VISUAL_ID));
+ result.addAll(createNavigatorItems(connectedViews, parentElement,
+ false));
+ connectedViews = getChildrenByType(
+ Collections.singleton(sv),
+ ComrelVisualIDRegistry
+ .getType(ConditionalUnitConditionalUnitElseCompartmentEditPart.VISUAL_ID));
+ connectedViews = getChildrenByType(connectedViews,
+ ComrelVisualIDRegistry
+ .getType(SequentialUnit7EditPart.VISUAL_ID));
+ result.addAll(createNavigatorItems(connectedViews, parentElement,
+ false));
+ connectedViews = getChildrenByType(
+ Collections.singleton(sv),
+ ComrelVisualIDRegistry
+ .getType(ConditionalUnitConditionalUnitElseCompartmentEditPart.VISUAL_ID));
+ connectedViews = getChildrenByType(connectedViews,
+ ComrelVisualIDRegistry
+ .getType(ConditionalUnit7EditPart.VISUAL_ID));
+ result.addAll(createNavigatorItems(connectedViews, parentElement,
+ false));
+ connectedViews = getChildrenByType(
+ Collections.singleton(sv),
+ ComrelVisualIDRegistry
+ .getType(ConditionalUnitConditionalUnitIfCompartmentEditPart.VISUAL_ID));
+ connectedViews = getChildrenByType(connectedViews,
+ ComrelVisualIDRegistry
+ .getType(ConditionCheckEditPart.VISUAL_ID));
+ result.addAll(createNavigatorItems(connectedViews, parentElement,
+ false));
+ connectedViews = getChildrenByType(
+ Collections.singleton(sv),
+ ComrelVisualIDRegistry
+ .getType(ConditionalUnitConditionalUnitThenCompartmentEditPart.VISUAL_ID));
+ connectedViews = getChildrenByType(connectedViews,
+ ComrelVisualIDRegistry
+ .getType(AtomicUnit6EditPart.VISUAL_ID));
+ result.addAll(createNavigatorItems(connectedViews, parentElement,
+ false));
+ connectedViews = getChildrenByType(
+ Collections.singleton(sv),
+ ComrelVisualIDRegistry
+ .getType(ConditionalUnitConditionalUnitElseCompartmentEditPart.VISUAL_ID));
+ connectedViews = getChildrenByType(connectedViews,
+ ComrelVisualIDRegistry
+ .getType(AtomicUnit7EditPart.VISUAL_ID));
+ result.addAll(createNavigatorItems(connectedViews, parentElement,
+ false));
+ return result.toArray();
+ }
+
+ case SingleFeatureUnit4EditPart.VISUAL_ID: {
+ LinkedList<ComrelAbstractNavigatorItem> result = new LinkedList<ComrelAbstractNavigatorItem>();
+ Node sv = (Node) view;
+ Collection<View> connectedViews;
+ connectedViews = getChildrenByType(Collections.singleton(sv),
+ ComrelVisualIDRegistry
+ .getType(SingleInputPort4EditPart.VISUAL_ID));
+ result.addAll(createNavigatorItems(connectedViews, parentElement,
+ false));
+ connectedViews = getChildrenByType(Collections.singleton(sv),
+ ComrelVisualIDRegistry
+ .getType(MultiInputPort3EditPart.VISUAL_ID));
+ result.addAll(createNavigatorItems(connectedViews, parentElement,
+ false));
+ connectedViews = getChildrenByType(Collections.singleton(sv),
+ ComrelVisualIDRegistry
+ .getType(SingleOutputPortEditPart.VISUAL_ID));
+ result.addAll(createNavigatorItems(connectedViews, parentElement,
+ false));
+ return result.toArray();
+ }
+
+ case SequentialUnit5EditPart.VISUAL_ID: {
+ LinkedList<ComrelAbstractNavigatorItem> result = new LinkedList<ComrelAbstractNavigatorItem>();
+ Node sv = (Node) view;
+ Collection<View> connectedViews;
+ connectedViews = getChildrenByType(Collections.singleton(sv),
+ ComrelVisualIDRegistry
+ .getType(SingleInputPort7EditPart.VISUAL_ID));
+ result.addAll(createNavigatorItems(connectedViews, parentElement,
+ false));
+ connectedViews = getChildrenByType(Collections.singleton(sv),
+ ComrelVisualIDRegistry
+ .getType(MultiInputPort8EditPart.VISUAL_ID));
+ result.addAll(createNavigatorItems(connectedViews, parentElement,
+ false));
+ connectedViews = getChildrenByType(
+ Collections.singleton(sv),
+ ComrelVisualIDRegistry
+ .getType(SequentialUnitSequentialUnitRefactoringUnitsCompartment4EditPart.VISUAL_ID));
+ connectedViews = getChildrenByType(connectedViews,
+ ComrelVisualIDRegistry
+ .getType(CartesianQueuedUnit5EditPart.VISUAL_ID));
+ result.addAll(createNavigatorItems(connectedViews, parentElement,
+ false));
+ connectedViews = getChildrenByType(
+ Collections.singleton(sv),
+ ComrelVisualIDRegistry
+ .getType(SequentialUnitSequentialUnitRefactoringUnitsCompartment4EditPart.VISUAL_ID));
+ connectedViews = getChildrenByType(connectedViews,
+ ComrelVisualIDRegistry
+ .getType(ParallelQueuedUnit6EditPart.VISUAL_ID));
+ result.addAll(createNavigatorItems(connectedViews, parentElement,
+ false));
+ connectedViews = getChildrenByType(
+ Collections.singleton(sv),
+ ComrelVisualIDRegistry
+ .getType(SequentialUnitSequentialUnitHelperUnitsCompartment4EditPart.VISUAL_ID));
+ connectedViews = getChildrenByType(connectedViews,
+ ComrelVisualIDRegistry
+ .getType(SingleFeatureUnit5EditPart.VISUAL_ID));
+ result.addAll(createNavigatorItems(connectedViews, parentElement,
+ false));
+ connectedViews = getChildrenByType(
+ Collections.singleton(sv),
+ ComrelVisualIDRegistry
+ .getType(SequentialUnitSequentialUnitHelperUnitsCompartment4EditPart.VISUAL_ID));
+ connectedViews = getChildrenByType(connectedViews,
+ ComrelVisualIDRegistry
+ .getType(MultiFeatureUnit5EditPart.VISUAL_ID));
+ result.addAll(createNavigatorItems(connectedViews, parentElement,
+ false));
+ connectedViews = getChildrenByType(
+ Collections.singleton(sv),
+ ComrelVisualIDRegistry
+ .getType(SequentialUnitSequentialUnitHelperUnitsCompartment4EditPart.VISUAL_ID));
+ connectedViews = getChildrenByType(connectedViews,
+ ComrelVisualIDRegistry
+ .getType(SingleFilterUnit5EditPart.VISUAL_ID));
+ result.addAll(createNavigatorItems(connectedViews, parentElement,
+ false));
+ connectedViews = getChildrenByType(
+ Collections.singleton(sv),
+ ComrelVisualIDRegistry
+ .getType(SequentialUnitSequentialUnitHelperUnitsCompartment4EditPart.VISUAL_ID));
+ connectedViews = getChildrenByType(connectedViews,
+ ComrelVisualIDRegistry
+ .getType(MultiFilterUnit5EditPart.VISUAL_ID));
+ result.addAll(createNavigatorItems(connectedViews, parentElement,
+ false));
+ connectedViews = getChildrenByType(
+ Collections.singleton(sv),
+ ComrelVisualIDRegistry
+ .getType(SequentialUnitSequentialUnitRefactoringUnitsCompartment4EditPart.VISUAL_ID));
+ connectedViews = getChildrenByType(connectedViews,
+ ComrelVisualIDRegistry
+ .getType(SingleQueuedUnit6EditPart.VISUAL_ID));
+ result.addAll(createNavigatorItems(connectedViews, parentElement,
+ false));
+ connectedViews = getChildrenByType(
+ Collections.singleton(sv),
+ ComrelVisualIDRegistry
+ .getType(SequentialUnitSequentialUnitRefactoringUnitsCompartment4EditPart.VISUAL_ID));
+ connectedViews = getChildrenByType(connectedViews,
+ ComrelVisualIDRegistry
+ .getType(SequentialUnit6EditPart.VISUAL_ID));
+ result.addAll(createNavigatorItems(connectedViews, parentElement,
+ false));
+ connectedViews = getChildrenByType(
+ Collections.singleton(sv),
+ ComrelVisualIDRegistry
+ .getType(SequentialUnitSequentialUnitRefactoringUnitsCompartment4EditPart.VISUAL_ID));
+ connectedViews = getChildrenByType(connectedViews,
+ ComrelVisualIDRegistry
+ .getType(ConditionalUnit5EditPart.VISUAL_ID));
+ result.addAll(createNavigatorItems(connectedViews, parentElement,
+ false));
+ connectedViews = getChildrenByType(
+ Collections.singleton(sv),
+ ComrelVisualIDRegistry
+ .getType(SequentialUnitSequentialUnitRefactoringUnitsCompartment4EditPart.VISUAL_ID));
+ connectedViews = getChildrenByType(connectedViews,
+ ComrelVisualIDRegistry
+ .getType(AtomicUnit5EditPart.VISUAL_ID));
+ result.addAll(createNavigatorItems(connectedViews, parentElement,
+ false));
+ return result.toArray();
+ }
+
+ case AtomicUnit2EditPart.VISUAL_ID: {
+ LinkedList<ComrelAbstractNavigatorItem> result = new LinkedList<ComrelAbstractNavigatorItem>();
+ Node sv = (Node) view;
+ Collection<View> connectedViews;
+ connectedViews = getChildrenByType(Collections.singleton(sv),
+ ComrelVisualIDRegistry
+ .getType(SingleInputPort9EditPart.VISUAL_ID));
+ result.addAll(createNavigatorItems(connectedViews, parentElement,
+ false));
+ return result.toArray();
+ }
+
+ case MultiFeatureUnitEditPart.VISUAL_ID: {
+ LinkedList<ComrelAbstractNavigatorItem> result = new LinkedList<ComrelAbstractNavigatorItem>();
+ Node sv = (Node) view;
+ Collection<View> connectedViews;
+ connectedViews = getChildrenByType(Collections.singleton(sv),
+ ComrelVisualIDRegistry
+ .getType(SingleInputPort5EditPart.VISUAL_ID));
+ result.addAll(createNavigatorItems(connectedViews, parentElement,
+ false));
+ connectedViews = getChildrenByType(Collections.singleton(sv),
+ ComrelVisualIDRegistry
+ .getType(MultiInputPort4EditPart.VISUAL_ID));
+ result.addAll(createNavigatorItems(connectedViews, parentElement,
+ false));
+ connectedViews = getChildrenByType(Collections.singleton(sv),
+ ComrelVisualIDRegistry
+ .getType(MultiOutputPortEditPart.VISUAL_ID));
+ result.addAll(createNavigatorItems(connectedViews, parentElement,
+ false));
+ return result.toArray();
+ }
+
+ case SingleInputPort8EditPart.VISUAL_ID: {
+ LinkedList<ComrelAbstractNavigatorItem> result = new LinkedList<ComrelAbstractNavigatorItem>();
+ Node sv = (Node) view;
+ ComrelNavigatorGroup incominglinks = new ComrelNavigatorGroup(
+ Messages.NavigatorGroupName_SingleInputPort_3031_incominglinks,
+ "icons/incomingLinksNavigatorGroup.gif", parentElement); //$NON-NLS-1$
+ ComrelNavigatorGroup outgoinglinks = new ComrelNavigatorGroup(
+ Messages.NavigatorGroupName_SingleInputPort_3031_outgoinglinks,
+ "icons/outgoingLinksNavigatorGroup.gif", parentElement); //$NON-NLS-1$
+ Collection<View> connectedViews;
+ connectedViews = getIncomingLinksByType(Collections.singleton(sv),
+ ComrelVisualIDRegistry
+ .getType(SinglePortMappingEditPart.VISUAL_ID));
+ incominglinks.addChildren(createNavigatorItems(connectedViews,
+ incominglinks, true));
+ connectedViews = getOutgoingLinksByType(Collections.singleton(sv),
+ ComrelVisualIDRegistry
+ .getType(SinglePortMappingEditPart.VISUAL_ID));
+ outgoinglinks.addChildren(createNavigatorItems(connectedViews,
+ outgoinglinks, true));
+ connectedViews = getIncomingLinksByType(Collections.singleton(sv),
+ ComrelVisualIDRegistry
+ .getType(MultiSinglePortMappingEditPart.VISUAL_ID));
+ incominglinks.addChildren(createNavigatorItems(connectedViews,
+ incominglinks, true));
+ if (!incominglinks.isEmpty()) {
+ result.add(incominglinks);
+ }
+ if (!outgoinglinks.isEmpty()) {
+ result.add(outgoinglinks);
+ }
+ return result.toArray();
+ }
+
+ case SingleInputPort5EditPart.VISUAL_ID: {
+ LinkedList<ComrelAbstractNavigatorItem> result = new LinkedList<ComrelAbstractNavigatorItem>();
+ Node sv = (Node) view;
+ ComrelNavigatorGroup incominglinks = new ComrelNavigatorGroup(
+ Messages.NavigatorGroupName_SingleInputPort_3013_incominglinks,
+ "icons/incomingLinksNavigatorGroup.gif", parentElement); //$NON-NLS-1$
+ ComrelNavigatorGroup outgoinglinks = new ComrelNavigatorGroup(
+ Messages.NavigatorGroupName_SingleInputPort_3013_outgoinglinks,
+ "icons/outgoingLinksNavigatorGroup.gif", parentElement); //$NON-NLS-1$
+ Collection<View> connectedViews;
+ connectedViews = getIncomingLinksByType(Collections.singleton(sv),
+ ComrelVisualIDRegistry
+ .getType(SinglePortMappingEditPart.VISUAL_ID));
+ incominglinks.addChildren(createNavigatorItems(connectedViews,
+ incominglinks, true));
+ connectedViews = getOutgoingLinksByType(Collections.singleton(sv),
+ ComrelVisualIDRegistry
+ .getType(SinglePortMappingEditPart.VISUAL_ID));
+ outgoinglinks.addChildren(createNavigatorItems(connectedViews,
+ outgoinglinks, true));
+ connectedViews = getIncomingLinksByType(Collections.singleton(sv),
+ ComrelVisualIDRegistry
+ .getType(MultiSinglePortMappingEditPart.VISUAL_ID));
+ incominglinks.addChildren(createNavigatorItems(connectedViews,
+ incominglinks, true));
+ if (!incominglinks.isEmpty()) {
+ result.add(incominglinks);
+ }
+ if (!outgoinglinks.isEmpty()) {
+ result.add(outgoinglinks);
+ }
+ return result.toArray();
+ }
+
+ case MultiFilterUnitEditPart.VISUAL_ID: {
+ LinkedList<ComrelAbstractNavigatorItem> result = new LinkedList<ComrelAbstractNavigatorItem>();
+ Node sv = (Node) view;
+ Collection<View> connectedViews;
+ connectedViews = getChildrenByType(Collections.singleton(sv),
+ ComrelVisualIDRegistry
+ .getType(MultiInputPort6EditPart.VISUAL_ID));
+ result.addAll(createNavigatorItems(connectedViews, parentElement,
+ false));
+ connectedViews = getChildrenByType(Collections.singleton(sv),
+ ComrelVisualIDRegistry
+ .getType(MultiOutputPort2EditPart.VISUAL_ID));
+ result.addAll(createNavigatorItems(connectedViews, parentElement,
+ false));
+ return result.toArray();
+ }
+
+ case CartesianQueuedUnit3EditPart.VISUAL_ID: {
+ LinkedList<ComrelAbstractNavigatorItem> result = new LinkedList<ComrelAbstractNavigatorItem>();
+ Node sv = (Node) view;
+ Collection<View> connectedViews;
+ connectedViews = getChildrenByType(Collections.singleton(sv),
+ ComrelVisualIDRegistry
+ .getType(SingleInputPort2EditPart.VISUAL_ID));
+ result.addAll(createNavigatorItems(connectedViews, parentElement,
+ false));
+ connectedViews = getChildrenByType(Collections.singleton(sv),
+ ComrelVisualIDRegistry
+ .getType(MultiInputPortEditPart.VISUAL_ID));
+ result.addAll(createNavigatorItems(connectedViews, parentElement,
+ false));
+ connectedViews = getChildrenByType(
+ Collections.singleton(sv),
+ ComrelVisualIDRegistry
+ .getType(CartesianQueuedUnitCartesianQueuedUnitRefactoringUnitCompartment3EditPart.VISUAL_ID));
+ connectedViews = getChildrenByType(connectedViews,
+ ComrelVisualIDRegistry
+ .getType(CartesianQueuedUnit2EditPart.VISUAL_ID));
+ result.addAll(createNavigatorItems(connectedViews, parentElement,
+ false));
+ connectedViews = getChildrenByType(
+ Collections.singleton(sv),
+ ComrelVisualIDRegistry
+ .getType(CartesianQueuedUnitCartesianQueuedUnitRefactoringUnitCompartment3EditPart.VISUAL_ID));
+ connectedViews = getChildrenByType(connectedViews,
+ ComrelVisualIDRegistry
+ .getType(ParallelQueuedUnit2EditPart.VISUAL_ID));
+ result.addAll(createNavigatorItems(connectedViews, parentElement,
+ false));
+ connectedViews = getChildrenByType(
+ Collections.singleton(sv),
+ ComrelVisualIDRegistry
+ .getType(CartesianQueuedUnitCartesianQueuedUnitHelperUnitsCompartment3EditPart.VISUAL_ID));
+ connectedViews = getChildrenByType(connectedViews,
+ ComrelVisualIDRegistry
+ .getType(SingleFeatureUnitEditPart.VISUAL_ID));
+ result.addAll(createNavigatorItems(connectedViews, parentElement,
+ false));
+ connectedViews = getChildrenByType(
+ Collections.singleton(sv),
+ ComrelVisualIDRegistry
+ .getType(CartesianQueuedUnitCartesianQueuedUnitHelperUnitsCompartment3EditPart.VISUAL_ID));
+ connectedViews = getChildrenByType(connectedViews,
+ ComrelVisualIDRegistry
+ .getType(MultiFeatureUnitEditPart.VISUAL_ID));
+ result.addAll(createNavigatorItems(connectedViews, parentElement,
+ false));
+ connectedViews = getChildrenByType(
+ Collections.singleton(sv),
+ ComrelVisualIDRegistry
+ .getType(CartesianQueuedUnitCartesianQueuedUnitHelperUnitsCompartment3EditPart.VISUAL_ID));
+ connectedViews = getChildrenByType(connectedViews,
+ ComrelVisualIDRegistry
+ .getType(SingleFilterUnitEditPart.VISUAL_ID));
+ result.addAll(createNavigatorItems(connectedViews, parentElement,
+ false));
+ connectedViews = getChildrenByType(
+ Collections.singleton(sv),
+ ComrelVisualIDRegistry
+ .getType(CartesianQueuedUnitCartesianQueuedUnitHelperUnitsCompartment3EditPart.VISUAL_ID));
+ connectedViews = getChildrenByType(connectedViews,
+ ComrelVisualIDRegistry
+ .getType(MultiFilterUnitEditPart.VISUAL_ID));
+ result.addAll(createNavigatorItems(connectedViews, parentElement,
+ false));
+ connectedViews = getChildrenByType(
+ Collections.singleton(sv),
+ ComrelVisualIDRegistry
+ .getType(CartesianQueuedUnitCartesianQueuedUnitRefactoringUnitCompartment3EditPart.VISUAL_ID));
+ connectedViews = getChildrenByType(connectedViews,
+ ComrelVisualIDRegistry
+ .getType(SingleQueuedUnit2EditPart.VISUAL_ID));
+ result.addAll(createNavigatorItems(connectedViews, parentElement,
+ false));
+ connectedViews = getChildrenByType(
+ Collections.singleton(sv),
+ ComrelVisualIDRegistry
+ .getType(CartesianQueuedUnitCartesianQueuedUnitRefactoringUnitCompartment3EditPart.VISUAL_ID));
+ connectedViews = getChildrenByType(connectedViews,
+ ComrelVisualIDRegistry
+ .getType(SequentialUnit2EditPart.VISUAL_ID));
+ result.addAll(createNavigatorItems(connectedViews, parentElement,
+ false));
+ connectedViews = getChildrenByType(
+ Collections.singleton(sv),
+ ComrelVisualIDRegistry
+ .getType(CartesianQueuedUnitCartesianQueuedUnitRefactoringUnitCompartment3EditPart.VISUAL_ID));
+ connectedViews = getChildrenByType(connectedViews,
+ ComrelVisualIDRegistry
+ .getType(ConditionalUnit2EditPart.VISUAL_ID));
+ result.addAll(createNavigatorItems(connectedViews, parentElement,
+ false));
+ connectedViews = getChildrenByType(
+ Collections.singleton(sv),
+ ComrelVisualIDRegistry
+ .getType(CartesianQueuedUnitCartesianQueuedUnitRefactoringUnitCompartment3EditPart.VISUAL_ID));
+ connectedViews = getChildrenByType(connectedViews,
+ ComrelVisualIDRegistry
+ .getType(AtomicUnit2EditPart.VISUAL_ID));
+ result.addAll(createNavigatorItems(connectedViews, parentElement,
+ false));
+ return result.toArray();
+ }
+
+ case MultiInputPort4EditPart.VISUAL_ID: {
+ LinkedList<ComrelAbstractNavigatorItem> result = new LinkedList<ComrelAbstractNavigatorItem>();
+ Node sv = (Node) view;
+ ComrelNavigatorGroup incominglinks = new ComrelNavigatorGroup(
+ Messages.NavigatorGroupName_MultiInputPort_3014_incominglinks,
+ "icons/incomingLinksNavigatorGroup.gif", parentElement); //$NON-NLS-1$
+ ComrelNavigatorGroup outgoinglinks = new ComrelNavigatorGroup(
+ Messages.NavigatorGroupName_MultiInputPort_3014_outgoinglinks,
+ "icons/outgoingLinksNavigatorGroup.gif", parentElement); //$NON-NLS-1$
+ Collection<View> connectedViews;
+ connectedViews = getIncomingLinksByType(Collections.singleton(sv),
+ ComrelVisualIDRegistry
+ .getType(MultiPortMappingEditPart.VISUAL_ID));
+ incominglinks.addChildren(createNavigatorItems(connectedViews,
+ incominglinks, true));
+ connectedViews = getOutgoingLinksByType(Collections.singleton(sv),
+ ComrelVisualIDRegistry
+ .getType(MultiPortMappingEditPart.VISUAL_ID));
+ outgoinglinks.addChildren(createNavigatorItems(connectedViews,
+ outgoinglinks, true));
+ connectedViews = getOutgoingLinksByType(Collections.singleton(sv),
+ ComrelVisualIDRegistry
+ .getType(MultiSinglePortMappingEditPart.VISUAL_ID));
+ outgoinglinks.addChildren(createNavigatorItems(connectedViews,
+ outgoinglinks, true));
+ if (!incominglinks.isEmpty()) {
+ result.add(incominglinks);
+ }
+ if (!outgoinglinks.isEmpty()) {
+ result.add(outgoinglinks);
+ }
+ return result.toArray();
+ }
+
+ case ParallelQueuedUnit3EditPart.VISUAL_ID: {
+ LinkedList<ComrelAbstractNavigatorItem> result = new LinkedList<ComrelAbstractNavigatorItem>();
+ Node sv = (Node) view;
+ Collection<View> connectedViews;
+ connectedViews = getChildrenByType(Collections.singleton(sv),
+ ComrelVisualIDRegistry
+ .getType(SingleInputPort3EditPart.VISUAL_ID));
+ result.addAll(createNavigatorItems(connectedViews, parentElement,
+ false));
+ connectedViews = getChildrenByType(Collections.singleton(sv),
+ ComrelVisualIDRegistry
+ .getType(MultiInputPort2EditPart.VISUAL_ID));
+ result.addAll(createNavigatorItems(connectedViews, parentElement,
+ false));
+ connectedViews = getChildrenByType(
+ Collections.singleton(sv),
+ ComrelVisualIDRegistry
+ .getType(ParallelQueuedUnitParallelQueuedUnitRefactoringUnitsCompartment2EditPart.VISUAL_ID));
+ connectedViews = getChildrenByType(connectedViews,
+ ComrelVisualIDRegistry
+ .getType(CartesianQueuedUnit3EditPart.VISUAL_ID));
+ result.addAll(createNavigatorItems(connectedViews, parentElement,
+ false));
+ connectedViews = getChildrenByType(
+ Collections.singleton(sv),
+ ComrelVisualIDRegistry
+ .getType(ParallelQueuedUnitParallelQueuedUnitRefactoringUnitsCompartment2EditPart.VISUAL_ID));
+ connectedViews = getChildrenByType(connectedViews,
+ ComrelVisualIDRegistry
+ .getType(ParallelQueuedUnit4EditPart.VISUAL_ID));
+ result.addAll(createNavigatorItems(connectedViews, parentElement,
+ false));
+ connectedViews = getChildrenByType(
+ Collections.singleton(sv),
+ ComrelVisualIDRegistry
+ .getType(ParallelQueuedUnitParallelQueuedUnitHelperUnitsCompartment2EditPart.VISUAL_ID));
+ connectedViews = getChildrenByType(connectedViews,
+ ComrelVisualIDRegistry
+ .getType(SingleFeatureUnit2EditPart.VISUAL_ID));
+ result.addAll(createNavigatorItems(connectedViews, parentElement,
+ false));
+ connectedViews = getChildrenByType(
+ Collections.singleton(sv),
+ ComrelVisualIDRegistry
+ .getType(ParallelQueuedUnitParallelQueuedUnitHelperUnitsCompartment2EditPart.VISUAL_ID));
+ connectedViews = getChildrenByType(connectedViews,
+ ComrelVisualIDRegistry
+ .getType(MultiFeatureUnit2EditPart.VISUAL_ID));
+ result.addAll(createNavigatorItems(connectedViews, parentElement,
+ false));
+ connectedViews = getChildrenByType(
+ Collections.singleton(sv),
+ ComrelVisualIDRegistry
+ .getType(ParallelQueuedUnitParallelQueuedUnitHelperUnitsCompartment2EditPart.VISUAL_ID));
+ connectedViews = getChildrenByType(connectedViews,
+ ComrelVisualIDRegistry
+ .getType(SingleFilterUnit2EditPart.VISUAL_ID));
+ result.addAll(createNavigatorItems(connectedViews, parentElement,
+ false));
+ connectedViews = getChildrenByType(
+ Collections.singleton(sv),
+ ComrelVisualIDRegistry
+ .getType(ParallelQueuedUnitParallelQueuedUnitHelperUnitsCompartment2EditPart.VISUAL_ID));
+ connectedViews = getChildrenByType(connectedViews,
+ ComrelVisualIDRegistry
+ .getType(MultiFilterUnit2EditPart.VISUAL_ID));
+ result.addAll(createNavigatorItems(connectedViews, parentElement,
+ false));
+ connectedViews = getChildrenByType(
+ Collections.singleton(sv),
+ ComrelVisualIDRegistry
+ .getType(ParallelQueuedUnitParallelQueuedUnitRefactoringUnitsCompartment2EditPart.VISUAL_ID));
+ connectedViews = getChildrenByType(connectedViews,
+ ComrelVisualIDRegistry
+ .getType(SingleQueuedUnit3EditPart.VISUAL_ID));
+ result.addAll(createNavigatorItems(connectedViews, parentElement,
+ false));
+ connectedViews = getChildrenByType(
+ Collections.singleton(sv),
+ ComrelVisualIDRegistry
+ .getType(ParallelQueuedUnitParallelQueuedUnitRefactoringUnitsCompartment2EditPart.VISUAL_ID));
+ connectedViews = getChildrenByType(connectedViews,
+ ComrelVisualIDRegistry
+ .getType(SequentialUnit3EditPart.VISUAL_ID));
+ result.addAll(createNavigatorItems(connectedViews, parentElement,
+ false));
+ connectedViews = getChildrenByType(
+ Collections.singleton(sv),
+ ComrelVisualIDRegistry
+ .getType(ParallelQueuedUnitParallelQueuedUnitRefactoringUnitsCompartment2EditPart.VISUAL_ID));
+ connectedViews = getChildrenByType(connectedViews,
+ ComrelVisualIDRegistry
+ .getType(ConditionalUnit3EditPart.VISUAL_ID));
+ result.addAll(createNavigatorItems(connectedViews, parentElement,
+ false));
+ connectedViews = getChildrenByType(
+ Collections.singleton(sv),
+ ComrelVisualIDRegistry
+ .getType(ParallelQueuedUnitParallelQueuedUnitRefactoringUnitsCompartment2EditPart.VISUAL_ID));
+ connectedViews = getChildrenByType(connectedViews,
+ ComrelVisualIDRegistry
+ .getType(AtomicUnit3EditPart.VISUAL_ID));
+ result.addAll(createNavigatorItems(connectedViews, parentElement,
+ false));
+ return result.toArray();
+ }
+
+ case SingleFeatureUnit2EditPart.VISUAL_ID: {
+ LinkedList<ComrelAbstractNavigatorItem> result = new LinkedList<ComrelAbstractNavigatorItem>();
+ Node sv = (Node) view;
+ Collection<View> connectedViews;
+ connectedViews = getChildrenByType(Collections.singleton(sv),
+ ComrelVisualIDRegistry
+ .getType(SingleInputPort4EditPart.VISUAL_ID));
+ result.addAll(createNavigatorItems(connectedViews, parentElement,
+ false));
+ connectedViews = getChildrenByType(Collections.singleton(sv),
+ ComrelVisualIDRegistry
+ .getType(MultiInputPort3EditPart.VISUAL_ID));
+ result.addAll(createNavigatorItems(connectedViews, parentElement,
+ false));
+ connectedViews = getChildrenByType(Collections.singleton(sv),
+ ComrelVisualIDRegistry
+ .getType(SingleOutputPortEditPart.VISUAL_ID));
+ result.addAll(createNavigatorItems(connectedViews, parentElement,
+ false));
+ return result.toArray();
+ }
+
+ case MultiInputPort9EditPart.VISUAL_ID: {
+ LinkedList<ComrelAbstractNavigatorItem> result = new LinkedList<ComrelAbstractNavigatorItem>();
+ Node sv = (Node) view;
+ ComrelNavigatorGroup incominglinks = new ComrelNavigatorGroup(
+ Messages.NavigatorGroupName_MultiInputPort_3032_incominglinks,
+ "icons/incomingLinksNavigatorGroup.gif", parentElement); //$NON-NLS-1$
+ ComrelNavigatorGroup outgoinglinks = new ComrelNavigatorGroup(
+ Messages.NavigatorGroupName_MultiInputPort_3032_outgoinglinks,
+ "icons/outgoingLinksNavigatorGroup.gif", parentElement); //$NON-NLS-1$
+ Collection<View> connectedViews;
+ connectedViews = getIncomingLinksByType(Collections.singleton(sv),
+ ComrelVisualIDRegistry
+ .getType(MultiPortMappingEditPart.VISUAL_ID));
+ incominglinks.addChildren(createNavigatorItems(connectedViews,
+ incominglinks, true));
+ connectedViews = getOutgoingLinksByType(Collections.singleton(sv),
+ ComrelVisualIDRegistry
+ .getType(MultiPortMappingEditPart.VISUAL_ID));
+ outgoinglinks.addChildren(createNavigatorItems(connectedViews,
+ outgoinglinks, true));
+ connectedViews = getOutgoingLinksByType(Collections.singleton(sv),
+ ComrelVisualIDRegistry
+ .getType(MultiSinglePortMappingEditPart.VISUAL_ID));
+ outgoinglinks.addChildren(createNavigatorItems(connectedViews,
+ outgoinglinks, true));
+ if (!incominglinks.isEmpty()) {
+ result.add(incominglinks);
+ }
+ if (!outgoinglinks.isEmpty()) {
+ result.add(outgoinglinks);
+ }
+ return result.toArray();
+ }
+
+ case MultiInputPort7EditPart.VISUAL_ID: {
+ LinkedList<ComrelAbstractNavigatorItem> result = new LinkedList<ComrelAbstractNavigatorItem>();
+ Node sv = (Node) view;
+ ComrelNavigatorGroup incominglinks = new ComrelNavigatorGroup(
+ Messages.NavigatorGroupName_MultiInputPort_3024_incominglinks,
+ "icons/incomingLinksNavigatorGroup.gif", parentElement); //$NON-NLS-1$
+ ComrelNavigatorGroup outgoinglinks = new ComrelNavigatorGroup(
+ Messages.NavigatorGroupName_MultiInputPort_3024_outgoinglinks,
+ "icons/outgoingLinksNavigatorGroup.gif", parentElement); //$NON-NLS-1$
+ Collection<View> connectedViews;
+ connectedViews = getIncomingLinksByType(Collections.singleton(sv),
+ ComrelVisualIDRegistry
+ .getType(MultiPortMappingEditPart.VISUAL_ID));
+ incominglinks.addChildren(createNavigatorItems(connectedViews,
+ incominglinks, true));
+ connectedViews = getOutgoingLinksByType(Collections.singleton(sv),
+ ComrelVisualIDRegistry
+ .getType(MultiPortMappingEditPart.VISUAL_ID));
+ outgoinglinks.addChildren(createNavigatorItems(connectedViews,
+ outgoinglinks, true));
+ connectedViews = getOutgoingLinksByType(Collections.singleton(sv),
+ ComrelVisualIDRegistry
+ .getType(MultiSinglePortMappingEditPart.VISUAL_ID));
+ outgoinglinks.addChildren(createNavigatorItems(connectedViews,
+ outgoinglinks, true));
+ if (!incominglinks.isEmpty()) {
+ result.add(incominglinks);
+ }
+ if (!outgoinglinks.isEmpty()) {
+ result.add(outgoinglinks);
+ }
+ return result.toArray();
+ }
+
+ case ConditionalUnit4EditPart.VISUAL_ID: {
+ LinkedList<ComrelAbstractNavigatorItem> result = new LinkedList<ComrelAbstractNavigatorItem>();
+ Node sv = (Node) view;
+ Collection<View> connectedViews;
+ connectedViews = getChildrenByType(Collections.singleton(sv),
+ ComrelVisualIDRegistry
+ .getType(SingleInputPort8EditPart.VISUAL_ID));
+ result.addAll(createNavigatorItems(connectedViews, parentElement,
+ false));
+ connectedViews = getChildrenByType(Collections.singleton(sv),
+ ComrelVisualIDRegistry
+ .getType(MultiInputPort9EditPart.VISUAL_ID));
+ result.addAll(createNavigatorItems(connectedViews, parentElement,
+ false));
+ connectedViews = getChildrenByType(
+ Collections.singleton(sv),
+ ComrelVisualIDRegistry
+ .getType(ConditionalUnitConditionalUnitThenCompartment3EditPart.VISUAL_ID));
+ connectedViews = getChildrenByType(connectedViews,
+ ComrelVisualIDRegistry
+ .getType(CartesianQueuedUnit6EditPart.VISUAL_ID));
+ result.addAll(createNavigatorItems(connectedViews, parentElement,
+ false));
+ connectedViews = getChildrenByType(
+ Collections.singleton(sv),
+ ComrelVisualIDRegistry
+ .getType(ConditionalUnitConditionalUnitThenCompartment3EditPart.VISUAL_ID));
+ connectedViews = getChildrenByType(connectedViews,
+ ComrelVisualIDRegistry
+ .getType(ParallelQueuedUnit3EditPart.VISUAL_ID));
+ result.addAll(createNavigatorItems(connectedViews, parentElement,
+ false));
+ connectedViews = getChildrenByType(
+ Collections.singleton(sv),
+ ComrelVisualIDRegistry
+ .getType(ConditionalUnitConditionalUnitElseCompartment3EditPart.VISUAL_ID));
+ connectedViews = getChildrenByType(connectedViews,
+ ComrelVisualIDRegistry
+ .getType(CartesianQueuedUnit7EditPart.VISUAL_ID));
+ result.addAll(createNavigatorItems(connectedViews, parentElement,
+ false));
+ connectedViews = getChildrenByType(
+ Collections.singleton(sv),
+ ComrelVisualIDRegistry
+ .getType(ConditionalUnitConditionalUnitElseCompartment3EditPart.VISUAL_ID));
+ connectedViews = getChildrenByType(connectedViews,
+ ComrelVisualIDRegistry
+ .getType(ParallelQueuedUnit7EditPart.VISUAL_ID));
+ result.addAll(createNavigatorItems(connectedViews, parentElement,
+ false));
+ connectedViews = getChildrenByType(
+ Collections.singleton(sv),
+ ComrelVisualIDRegistry
+ .getType(ConditionalUnitConditionalUnitHelperUnitsCompartment3EditPart.VISUAL_ID));
+ connectedViews = getChildrenByType(connectedViews,
+ ComrelVisualIDRegistry
+ .getType(SingleFeatureUnit3EditPart.VISUAL_ID));
+ result.addAll(createNavigatorItems(connectedViews, parentElement,
+ false));
+ connectedViews = getChildrenByType(
+ Collections.singleton(sv),
+ ComrelVisualIDRegistry
+ .getType(ConditionalUnitConditionalUnitHelperUnitsCompartment3EditPart.VISUAL_ID));
+ connectedViews = getChildrenByType(connectedViews,
+ ComrelVisualIDRegistry
+ .getType(MultiFeatureUnit3EditPart.VISUAL_ID));
+ result.addAll(createNavigatorItems(connectedViews, parentElement,
+ false));
+ connectedViews = getChildrenByType(
+ Collections.singleton(sv),
+ ComrelVisualIDRegistry
+ .getType(ConditionalUnitConditionalUnitHelperUnitsCompartment3EditPart.VISUAL_ID));
+ connectedViews = getChildrenByType(connectedViews,
+ ComrelVisualIDRegistry
+ .getType(SingleFilterUnit3EditPart.VISUAL_ID));
+ result.addAll(createNavigatorItems(connectedViews, parentElement,
+ false));
+ connectedViews = getChildrenByType(
+ Collections.singleton(sv),
+ ComrelVisualIDRegistry
+ .getType(ConditionalUnitConditionalUnitHelperUnitsCompartment3EditPart.VISUAL_ID));
+ connectedViews = getChildrenByType(connectedViews,
+ ComrelVisualIDRegistry
+ .getType(MultiFilterUnit3EditPart.VISUAL_ID));
+ result.addAll(createNavigatorItems(connectedViews, parentElement,
+ false));
+ connectedViews = getChildrenByType(
+ Collections.singleton(sv),
+ ComrelVisualIDRegistry
+ .getType(ConditionalUnitConditionalUnitThenCompartment3EditPart.VISUAL_ID));
+ connectedViews = getChildrenByType(connectedViews,
+ ComrelVisualIDRegistry
+ .getType(SingleQueuedUnit4EditPart.VISUAL_ID));
+ result.addAll(createNavigatorItems(connectedViews, parentElement,
+ false));
+ connectedViews = getChildrenByType(
+ Collections.singleton(sv),
+ ComrelVisualIDRegistry
+ .getType(ConditionalUnitConditionalUnitElseCompartment3EditPart.VISUAL_ID));
+ connectedViews = getChildrenByType(connectedViews,
+ ComrelVisualIDRegistry
+ .getType(SingleQueuedUnit7EditPart.VISUAL_ID));
+ result.addAll(createNavigatorItems(connectedViews, parentElement,
+ false));
+ connectedViews = getChildrenByType(
+ Collections.singleton(sv),
+ ComrelVisualIDRegistry
+ .getType(ConditionalUnitConditionalUnitThenCompartment3EditPart.VISUAL_ID));
+ connectedViews = getChildrenByType(connectedViews,
+ ComrelVisualIDRegistry
+ .getType(SequentialUnit5EditPart.VISUAL_ID));
+ result.addAll(createNavigatorItems(connectedViews, parentElement,
+ false));
+ connectedViews = getChildrenByType(
+ Collections.singleton(sv),
+ ComrelVisualIDRegistry
+ .getType(ConditionalUnitConditionalUnitThenCompartment3EditPart.VISUAL_ID));
+ connectedViews = getChildrenByType(connectedViews,
+ ComrelVisualIDRegistry
+ .getType(ConditionalUnit6EditPart.VISUAL_ID));
+ result.addAll(createNavigatorItems(connectedViews, parentElement,
+ false));
+ connectedViews = getChildrenByType(
+ Collections.singleton(sv),
+ ComrelVisualIDRegistry
+ .getType(ConditionalUnitConditionalUnitElseCompartment3EditPart.VISUAL_ID));
+ connectedViews = getChildrenByType(connectedViews,
+ ComrelVisualIDRegistry
+ .getType(SequentialUnit7EditPart.VISUAL_ID));
+ result.addAll(createNavigatorItems(connectedViews, parentElement,
+ false));
+ connectedViews = getChildrenByType(
+ Collections.singleton(sv),
+ ComrelVisualIDRegistry
+ .getType(ConditionalUnitConditionalUnitElseCompartment3EditPart.VISUAL_ID));
+ connectedViews = getChildrenByType(connectedViews,
+ ComrelVisualIDRegistry
+ .getType(ConditionalUnit7EditPart.VISUAL_ID));
+ result.addAll(createNavigatorItems(connectedViews, parentElement,
+ false));
+ connectedViews = getChildrenByType(
+ Collections.singleton(sv),
+ ComrelVisualIDRegistry
+ .getType(ConditionalUnitConditionalUnitIfCompartment3EditPart.VISUAL_ID));
+ connectedViews = getChildrenByType(connectedViews,
+ ComrelVisualIDRegistry
+ .getType(ConditionCheckEditPart.VISUAL_ID));
+ result.addAll(createNavigatorItems(connectedViews, parentElement,
+ false));
+ connectedViews = getChildrenByType(
+ Collections.singleton(sv),
+ ComrelVisualIDRegistry
+ .getType(ConditionalUnitConditionalUnitThenCompartment3EditPart.VISUAL_ID));
+ connectedViews = getChildrenByType(connectedViews,
+ ComrelVisualIDRegistry
+ .getType(AtomicUnit6EditPart.VISUAL_ID));
+ result.addAll(createNavigatorItems(connectedViews, parentElement,
+ false));
+ connectedViews = getChildrenByType(
+ Collections.singleton(sv),
+ ComrelVisualIDRegistry
+ .getType(ConditionalUnitConditionalUnitElseCompartment3EditPart.VISUAL_ID));
+ connectedViews = getChildrenByType(connectedViews,
+ ComrelVisualIDRegistry
+ .getType(AtomicUnit7EditPart.VISUAL_ID));
+ result.addAll(createNavigatorItems(connectedViews, parentElement,
+ false));
+ return result.toArray();
+ }
+
+ case SequentialUnit4EditPart.VISUAL_ID: {
+ LinkedList<ComrelAbstractNavigatorItem> result = new LinkedList<ComrelAbstractNavigatorItem>();
+ Node sv = (Node) view;
+ Collection<View> connectedViews;
+ connectedViews = getChildrenByType(Collections.singleton(sv),
+ ComrelVisualIDRegistry
+ .getType(SingleInputPort7EditPart.VISUAL_ID));
+ result.addAll(createNavigatorItems(connectedViews, parentElement,
+ false));
+ connectedViews = getChildrenByType(Collections.singleton(sv),
+ ComrelVisualIDRegistry
+ .getType(MultiInputPort8EditPart.VISUAL_ID));
+ result.addAll(createNavigatorItems(connectedViews, parentElement,
+ false));
+ connectedViews = getChildrenByType(
+ Collections.singleton(sv),
+ ComrelVisualIDRegistry
+ .getType(SequentialUnitSequentialUnitRefactoringUnitsCompartment3EditPart.VISUAL_ID));
+ connectedViews = getChildrenByType(connectedViews,
+ ComrelVisualIDRegistry
+ .getType(CartesianQueuedUnit5EditPart.VISUAL_ID));
+ result.addAll(createNavigatorItems(connectedViews, parentElement,
+ false));
+ connectedViews = getChildrenByType(
+ Collections.singleton(sv),
+ ComrelVisualIDRegistry
+ .getType(SequentialUnitSequentialUnitRefactoringUnitsCompartment3EditPart.VISUAL_ID));
+ connectedViews = getChildrenByType(connectedViews,
+ ComrelVisualIDRegistry
+ .getType(ParallelQueuedUnit6EditPart.VISUAL_ID));
+ result.addAll(createNavigatorItems(connectedViews, parentElement,
+ false));
+ connectedViews = getChildrenByType(
+ Collections.singleton(sv),
+ ComrelVisualIDRegistry
+ .getType(SequentialUnitSequentialUnitHelperUnitsCompartment3EditPart.VISUAL_ID));
+ connectedViews = getChildrenByType(connectedViews,
+ ComrelVisualIDRegistry
+ .getType(SingleFeatureUnit5EditPart.VISUAL_ID));
+ result.addAll(createNavigatorItems(connectedViews, parentElement,
+ false));
+ connectedViews = getChildrenByType(
+ Collections.singleton(sv),
+ ComrelVisualIDRegistry
+ .getType(SequentialUnitSequentialUnitHelperUnitsCompartment3EditPart.VISUAL_ID));
+ connectedViews = getChildrenByType(connectedViews,
+ ComrelVisualIDRegistry
+ .getType(MultiFeatureUnit5EditPart.VISUAL_ID));
+ result.addAll(createNavigatorItems(connectedViews, parentElement,
+ false));
+ connectedViews = getChildrenByType(
+ Collections.singleton(sv),
+ ComrelVisualIDRegistry
+ .getType(SequentialUnitSequentialUnitHelperUnitsCompartment3EditPart.VISUAL_ID));
+ connectedViews = getChildrenByType(connectedViews,
+ ComrelVisualIDRegistry
+ .getType(SingleFilterUnit5EditPart.VISUAL_ID));
+ result.addAll(createNavigatorItems(connectedViews, parentElement,
+ false));
+ connectedViews = getChildrenByType(
+ Collections.singleton(sv),
+ ComrelVisualIDRegistry
+ .getType(SequentialUnitSequentialUnitHelperUnitsCompartment3EditPart.VISUAL_ID));
+ connectedViews = getChildrenByType(connectedViews,
+ ComrelVisualIDRegistry
+ .getType(MultiFilterUnit5EditPart.VISUAL_ID));
+ result.addAll(createNavigatorItems(connectedViews, parentElement,
+ false));
+ connectedViews = getChildrenByType(
+ Collections.singleton(sv),
+ ComrelVisualIDRegistry
+ .getType(SequentialUnitSequentialUnitRefactoringUnitsCompartment3EditPart.VISUAL_ID));
+ connectedViews = getChildrenByType(connectedViews,
+ ComrelVisualIDRegistry
+ .getType(SingleQueuedUnit6EditPart.VISUAL_ID));
+ result.addAll(createNavigatorItems(connectedViews, parentElement,
+ false));
+ connectedViews = getChildrenByType(
+ Collections.singleton(sv),
+ ComrelVisualIDRegistry
+ .getType(SequentialUnitSequentialUnitRefactoringUnitsCompartment3EditPart.VISUAL_ID));
+ connectedViews = getChildrenByType(connectedViews,
+ ComrelVisualIDRegistry
+ .getType(SequentialUnit6EditPart.VISUAL_ID));
+ result.addAll(createNavigatorItems(connectedViews, parentElement,
+ false));
+ connectedViews = getChildrenByType(
+ Collections.singleton(sv),
+ ComrelVisualIDRegistry
+ .getType(SequentialUnitSequentialUnitRefactoringUnitsCompartment3EditPart.VISUAL_ID));
+ connectedViews = getChildrenByType(connectedViews,
+ ComrelVisualIDRegistry
+ .getType(ConditionalUnit5EditPart.VISUAL_ID));
+ result.addAll(createNavigatorItems(connectedViews, parentElement,
+ false));
+ connectedViews = getChildrenByType(
+ Collections.singleton(sv),
+ ComrelVisualIDRegistry
+ .getType(SequentialUnitSequentialUnitRefactoringUnitsCompartment3EditPart.VISUAL_ID));
+ connectedViews = getChildrenByType(connectedViews,
+ ComrelVisualIDRegistry
+ .getType(AtomicUnit5EditPart.VISUAL_ID));
+ result.addAll(createNavigatorItems(connectedViews, parentElement,
+ false));
+ return result.toArray();
+ }
+
+ case SingleInputPort2EditPart.VISUAL_ID: {
+ LinkedList<ComrelAbstractNavigatorItem> result = new LinkedList<ComrelAbstractNavigatorItem>();
+ Node sv = (Node) view;
+ ComrelNavigatorGroup incominglinks = new ComrelNavigatorGroup(
+ Messages.NavigatorGroupName_SingleInputPort_3001_incominglinks,
+ "icons/incomingLinksNavigatorGroup.gif", parentElement); //$NON-NLS-1$
+ ComrelNavigatorGroup outgoinglinks = new ComrelNavigatorGroup(
+ Messages.NavigatorGroupName_SingleInputPort_3001_outgoinglinks,
+ "icons/outgoingLinksNavigatorGroup.gif", parentElement); //$NON-NLS-1$
+ Collection<View> connectedViews;
+ connectedViews = getIncomingLinksByType(Collections.singleton(sv),
+ ComrelVisualIDRegistry
+ .getType(SinglePortMappingEditPart.VISUAL_ID));
+ incominglinks.addChildren(createNavigatorItems(connectedViews,
+ incominglinks, true));
+ connectedViews = getOutgoingLinksByType(Collections.singleton(sv),
+ ComrelVisualIDRegistry
+ .getType(SinglePortMappingEditPart.VISUAL_ID));
+ outgoinglinks.addChildren(createNavigatorItems(connectedViews,
+ outgoinglinks, true));
+ connectedViews = getIncomingLinksByType(Collections.singleton(sv),
+ ComrelVisualIDRegistry
+ .getType(MultiSinglePortMappingEditPart.VISUAL_ID));
+ incominglinks.addChildren(createNavigatorItems(connectedViews,
+ incominglinks, true));
+ if (!incominglinks.isEmpty()) {
+ result.add(incominglinks);
+ }
+ if (!outgoinglinks.isEmpty()) {
+ result.add(outgoinglinks);
+ }
+ return result.toArray();
+ }
+
+ case SingleInputPort9EditPart.VISUAL_ID: {
+ LinkedList<ComrelAbstractNavigatorItem> result = new LinkedList<ComrelAbstractNavigatorItem>();
+ Node sv = (Node) view;
+ ComrelNavigatorGroup incominglinks = new ComrelNavigatorGroup(
+ Messages.NavigatorGroupName_SingleInputPort_3035_incominglinks,
+ "icons/incomingLinksNavigatorGroup.gif", parentElement); //$NON-NLS-1$
+ ComrelNavigatorGroup outgoinglinks = new ComrelNavigatorGroup(
+ Messages.NavigatorGroupName_SingleInputPort_3035_outgoinglinks,
+ "icons/outgoingLinksNavigatorGroup.gif", parentElement); //$NON-NLS-1$
+ Collection<View> connectedViews;
+ connectedViews = getIncomingLinksByType(Collections.singleton(sv),
+ ComrelVisualIDRegistry
+ .getType(SinglePortMappingEditPart.VISUAL_ID));
+ incominglinks.addChildren(createNavigatorItems(connectedViews,
+ incominglinks, true));
+ connectedViews = getOutgoingLinksByType(Collections.singleton(sv),
+ ComrelVisualIDRegistry
+ .getType(SinglePortMappingEditPart.VISUAL_ID));
+ outgoinglinks.addChildren(createNavigatorItems(connectedViews,
+ outgoinglinks, true));
+ connectedViews = getIncomingLinksByType(Collections.singleton(sv),
+ ComrelVisualIDRegistry
+ .getType(MultiSinglePortMappingEditPart.VISUAL_ID));
+ incominglinks.addChildren(createNavigatorItems(connectedViews,
+ incominglinks, true));
+ if (!incominglinks.isEmpty()) {
+ result.add(incominglinks);
+ }
+ if (!outgoinglinks.isEmpty()) {
+ result.add(outgoinglinks);
+ }
+ return result.toArray();
+ }
+
+ case MultiInputPort3EditPart.VISUAL_ID: {
+ LinkedList<ComrelAbstractNavigatorItem> result = new LinkedList<ComrelAbstractNavigatorItem>();
+ Node sv = (Node) view;
+ ComrelNavigatorGroup incominglinks = new ComrelNavigatorGroup(
+ Messages.NavigatorGroupName_MultiInputPort_3010_incominglinks,
+ "icons/incomingLinksNavigatorGroup.gif", parentElement); //$NON-NLS-1$
+ ComrelNavigatorGroup outgoinglinks = new ComrelNavigatorGroup(
+ Messages.NavigatorGroupName_MultiInputPort_3010_outgoinglinks,
+ "icons/outgoingLinksNavigatorGroup.gif", parentElement); //$NON-NLS-1$
+ Collection<View> connectedViews;
+ connectedViews = getIncomingLinksByType(Collections.singleton(sv),
+ ComrelVisualIDRegistry
+ .getType(MultiPortMappingEditPart.VISUAL_ID));
+ incominglinks.addChildren(createNavigatorItems(connectedViews,
+ incominglinks, true));
+ connectedViews = getOutgoingLinksByType(Collections.singleton(sv),
+ ComrelVisualIDRegistry
+ .getType(MultiPortMappingEditPart.VISUAL_ID));
+ outgoinglinks.addChildren(createNavigatorItems(connectedViews,
+ outgoinglinks, true));
+ connectedViews = getOutgoingLinksByType(Collections.singleton(sv),
+ ComrelVisualIDRegistry
+ .getType(MultiSinglePortMappingEditPart.VISUAL_ID));
+ outgoinglinks.addChildren(createNavigatorItems(connectedViews,
+ outgoinglinks, true));
+ if (!incominglinks.isEmpty()) {
+ result.add(incominglinks);
+ }
+ if (!outgoinglinks.isEmpty()) {
+ result.add(outgoinglinks);
+ }
+ return result.toArray();
+ }
+
+ case ConditionalUnitEditPart.VISUAL_ID: {
+ LinkedList<ComrelAbstractNavigatorItem> result = new LinkedList<ComrelAbstractNavigatorItem>();
+ Node sv = (Node) view;
+ Collection<View> connectedViews;
+ connectedViews = getChildrenByType(Collections.singleton(sv),
+ ComrelVisualIDRegistry
+ .getType(SingleInputPort8EditPart.VISUAL_ID));
+ result.addAll(createNavigatorItems(connectedViews, parentElement,
+ false));
+ connectedViews = getChildrenByType(Collections.singleton(sv),
+ ComrelVisualIDRegistry
+ .getType(MultiInputPort9EditPart.VISUAL_ID));
+ result.addAll(createNavigatorItems(connectedViews, parentElement,
+ false));
+ connectedViews = getChildrenByType(
+ Collections.singleton(sv),
+ ComrelVisualIDRegistry
+ .getType(ConditionalUnitConditionalUnitThenCompartment7EditPart.VISUAL_ID));
+ connectedViews = getChildrenByType(connectedViews,
+ ComrelVisualIDRegistry
+ .getType(CartesianQueuedUnit6EditPart.VISUAL_ID));
+ result.addAll(createNavigatorItems(connectedViews, parentElement,
+ false));
+ connectedViews = getChildrenByType(
+ Collections.singleton(sv),
+ ComrelVisualIDRegistry
+ .getType(ConditionalUnitConditionalUnitThenCompartment7EditPart.VISUAL_ID));
+ connectedViews = getChildrenByType(connectedViews,
+ ComrelVisualIDRegistry
+ .getType(ParallelQueuedUnit3EditPart.VISUAL_ID));
+ result.addAll(createNavigatorItems(connectedViews, parentElement,
+ false));
+ connectedViews = getChildrenByType(
+ Collections.singleton(sv),
+ ComrelVisualIDRegistry
+ .getType(ConditionalUnitConditionalUnitElseCompartment7EditPart.VISUAL_ID));
+ connectedViews = getChildrenByType(connectedViews,
+ ComrelVisualIDRegistry
+ .getType(CartesianQueuedUnit7EditPart.VISUAL_ID));
+ result.addAll(createNavigatorItems(connectedViews, parentElement,
+ false));
+ connectedViews = getChildrenByType(
+ Collections.singleton(sv),
+ ComrelVisualIDRegistry
+ .getType(ConditionalUnitConditionalUnitElseCompartment7EditPart.VISUAL_ID));
+ connectedViews = getChildrenByType(connectedViews,
+ ComrelVisualIDRegistry
+ .getType(ParallelQueuedUnit7EditPart.VISUAL_ID));
+ result.addAll(createNavigatorItems(connectedViews, parentElement,
+ false));
+ connectedViews = getChildrenByType(
+ Collections.singleton(sv),
+ ComrelVisualIDRegistry
+ .getType(ConditionalUnitConditionalUnitHelperUnitsCompartment7EditPart.VISUAL_ID));
+ connectedViews = getChildrenByType(connectedViews,
+ ComrelVisualIDRegistry
+ .getType(SingleFeatureUnit3EditPart.VISUAL_ID));
+ result.addAll(createNavigatorItems(connectedViews, parentElement,
+ false));
+ connectedViews = getChildrenByType(
+ Collections.singleton(sv),
+ ComrelVisualIDRegistry
+ .getType(ConditionalUnitConditionalUnitHelperUnitsCompartment7EditPart.VISUAL_ID));
+ connectedViews = getChildrenByType(connectedViews,
+ ComrelVisualIDRegistry
+ .getType(MultiFeatureUnit3EditPart.VISUAL_ID));
+ result.addAll(createNavigatorItems(connectedViews, parentElement,
+ false));
+ connectedViews = getChildrenByType(
+ Collections.singleton(sv),
+ ComrelVisualIDRegistry
+ .getType(ConditionalUnitConditionalUnitHelperUnitsCompartment7EditPart.VISUAL_ID));
+ connectedViews = getChildrenByType(connectedViews,
+ ComrelVisualIDRegistry
+ .getType(SingleFilterUnit3EditPart.VISUAL_ID));
+ result.addAll(createNavigatorItems(connectedViews, parentElement,
+ false));
+ connectedViews = getChildrenByType(
+ Collections.singleton(sv),
+ ComrelVisualIDRegistry
+ .getType(ConditionalUnitConditionalUnitHelperUnitsCompartment7EditPart.VISUAL_ID));
+ connectedViews = getChildrenByType(connectedViews,
+ ComrelVisualIDRegistry
+ .getType(MultiFilterUnit3EditPart.VISUAL_ID));
+ result.addAll(createNavigatorItems(connectedViews, parentElement,
+ false));
+ connectedViews = getChildrenByType(
+ Collections.singleton(sv),
+ ComrelVisualIDRegistry
+ .getType(ConditionalUnitConditionalUnitThenCompartment7EditPart.VISUAL_ID));
+ connectedViews = getChildrenByType(connectedViews,
+ ComrelVisualIDRegistry
+ .getType(SingleQueuedUnit4EditPart.VISUAL_ID));
+ result.addAll(createNavigatorItems(connectedViews, parentElement,
+ false));
+ connectedViews = getChildrenByType(
+ Collections.singleton(sv),
+ ComrelVisualIDRegistry
+ .getType(ConditionalUnitConditionalUnitElseCompartment7EditPart.VISUAL_ID));
+ connectedViews = getChildrenByType(connectedViews,
+ ComrelVisualIDRegistry
+ .getType(SingleQueuedUnit7EditPart.VISUAL_ID));
+ result.addAll(createNavigatorItems(connectedViews, parentElement,
+ false));
+ connectedViews = getChildrenByType(
+ Collections.singleton(sv),
+ ComrelVisualIDRegistry
+ .getType(ConditionalUnitConditionalUnitThenCompartment7EditPart.VISUAL_ID));
+ connectedViews = getChildrenByType(connectedViews,
+ ComrelVisualIDRegistry
+ .getType(SequentialUnit5EditPart.VISUAL_ID));
+ result.addAll(createNavigatorItems(connectedViews, parentElement,
+ false));
+ connectedViews = getChildrenByType(
+ Collections.singleton(sv),
+ ComrelVisualIDRegistry
+ .getType(ConditionalUnitConditionalUnitThenCompartment7EditPart.VISUAL_ID));
+ connectedViews = getChildrenByType(connectedViews,
+ ComrelVisualIDRegistry
+ .getType(ConditionalUnit6EditPart.VISUAL_ID));
+ result.addAll(createNavigatorItems(connectedViews, parentElement,
+ false));
+ connectedViews = getChildrenByType(
+ Collections.singleton(sv),
+ ComrelVisualIDRegistry
+ .getType(ConditionalUnitConditionalUnitElseCompartment7EditPart.VISUAL_ID));
+ connectedViews = getChildrenByType(connectedViews,
+ ComrelVisualIDRegistry
+ .getType(SequentialUnit7EditPart.VISUAL_ID));
+ result.addAll(createNavigatorItems(connectedViews, parentElement,
+ false));
+ connectedViews = getChildrenByType(
+ Collections.singleton(sv),
+ ComrelVisualIDRegistry
+ .getType(ConditionalUnitConditionalUnitElseCompartment7EditPart.VISUAL_ID));
+ connectedViews = getChildrenByType(connectedViews,
+ ComrelVisualIDRegistry
+ .getType(ConditionalUnit7EditPart.VISUAL_ID));
+ result.addAll(createNavigatorItems(connectedViews, parentElement,
+ false));
+ connectedViews = getChildrenByType(
+ Collections.singleton(sv),
+ ComrelVisualIDRegistry
+ .getType(ConditionalUnitConditionalUnitIfCompartment7EditPart.VISUAL_ID));
+ connectedViews = getChildrenByType(connectedViews,
+ ComrelVisualIDRegistry
+ .getType(ConditionCheckEditPart.VISUAL_ID));
+ result.addAll(createNavigatorItems(connectedViews, parentElement,
+ false));
+ connectedViews = getChildrenByType(
+ Collections.singleton(sv),
+ ComrelVisualIDRegistry
+ .getType(ConditionalUnitConditionalUnitThenCompartment7EditPart.VISUAL_ID));
+ connectedViews = getChildrenByType(connectedViews,
+ ComrelVisualIDRegistry
+ .getType(AtomicUnit6EditPart.VISUAL_ID));
+ result.addAll(createNavigatorItems(connectedViews, parentElement,
+ false));
+ connectedViews = getChildrenByType(
+ Collections.singleton(sv),
+ ComrelVisualIDRegistry
+ .getType(ConditionalUnitConditionalUnitElseCompartment7EditPart.VISUAL_ID));
+ connectedViews = getChildrenByType(connectedViews,
+ ComrelVisualIDRegistry
+ .getType(AtomicUnit7EditPart.VISUAL_ID));
+ result.addAll(createNavigatorItems(connectedViews, parentElement,
+ false));
+ return result.toArray();
+ }
+
+ case SingleFilterUnitEditPart.VISUAL_ID: {
+ LinkedList<ComrelAbstractNavigatorItem> result = new LinkedList<ComrelAbstractNavigatorItem>();
+ Node sv = (Node) view;
+ Collection<View> connectedViews;
+ connectedViews = getChildrenByType(Collections.singleton(sv),
+ ComrelVisualIDRegistry
+ .getType(MultiInputPort5EditPart.VISUAL_ID));
+ result.addAll(createNavigatorItems(connectedViews, parentElement,
+ false));
+ connectedViews = getChildrenByType(Collections.singleton(sv),
+ ComrelVisualIDRegistry
+ .getType(SingleOutputPort2EditPart.VISUAL_ID));
+ result.addAll(createNavigatorItems(connectedViews, parentElement,
+ false));
+ return result.toArray();
+ }
+
+ case SingleOutputPortEditPart.VISUAL_ID: {
+ LinkedList<ComrelAbstractNavigatorItem> result = new LinkedList<ComrelAbstractNavigatorItem>();
+ Node sv = (Node) view;
+ ComrelNavigatorGroup outgoinglinks = new ComrelNavigatorGroup(
+ Messages.NavigatorGroupName_SingleOutputPort_3011_outgoinglinks,
+ "icons/outgoingLinksNavigatorGroup.gif", parentElement); //$NON-NLS-1$
+ Collection<View> connectedViews;
+ connectedViews = getOutgoingLinksByType(Collections.singleton(sv),
+ ComrelVisualIDRegistry
+ .getType(SinglePortMappingEditPart.VISUAL_ID));
+ outgoinglinks.addChildren(createNavigatorItems(connectedViews,
+ outgoinglinks, true));
+ if (!outgoinglinks.isEmpty()) {
+ result.add(outgoinglinks);
+ }
+ return result.toArray();
+ }
+
+ case MultiFilterUnit4EditPart.VISUAL_ID: {
+ LinkedList<ComrelAbstractNavigatorItem> result = new LinkedList<ComrelAbstractNavigatorItem>();
+ Node sv = (Node) view;
+ Collection<View> connectedViews;
+ connectedViews = getChildrenByType(Collections.singleton(sv),
+ ComrelVisualIDRegistry
+ .getType(MultiInputPort6EditPart.VISUAL_ID));
+ result.addAll(createNavigatorItems(connectedViews, parentElement,
+ false));
+ connectedViews = getChildrenByType(Collections.singleton(sv),
+ ComrelVisualIDRegistry
+ .getType(MultiOutputPort2EditPart.VISUAL_ID));
+ result.addAll(createNavigatorItems(connectedViews, parentElement,
+ false));
+ return result.toArray();
+ }
+
+ case SingleFeatureUnit5EditPart.VISUAL_ID: {
+ LinkedList<ComrelAbstractNavigatorItem> result = new LinkedList<ComrelAbstractNavigatorItem>();
+ Node sv = (Node) view;
+ Collection<View> connectedViews;
+ connectedViews = getChildrenByType(Collections.singleton(sv),
+ ComrelVisualIDRegistry
+ .getType(SingleInputPort4EditPart.VISUAL_ID));
+ result.addAll(createNavigatorItems(connectedViews, parentElement,
+ false));
+ connectedViews = getChildrenByType(Collections.singleton(sv),
+ ComrelVisualIDRegistry
+ .getType(MultiInputPort3EditPart.VISUAL_ID));
+ result.addAll(createNavigatorItems(connectedViews, parentElement,
+ false));
+ connectedViews = getChildrenByType(Collections.singleton(sv),
+ ComrelVisualIDRegistry
+ .getType(SingleOutputPortEditPart.VISUAL_ID));
+ result.addAll(createNavigatorItems(connectedViews, parentElement,
+ false));
+ return result.toArray();
+ }
+
+ case MultiFilterUnit5EditPart.VISUAL_ID: {
+ LinkedList<ComrelAbstractNavigatorItem> result = new LinkedList<ComrelAbstractNavigatorItem>();
+ Node sv = (Node) view;
+ Collection<View> connectedViews;
+ connectedViews = getChildrenByType(Collections.singleton(sv),
+ ComrelVisualIDRegistry
+ .getType(MultiInputPort6EditPart.VISUAL_ID));
+ result.addAll(createNavigatorItems(connectedViews, parentElement,
+ false));
+ connectedViews = getChildrenByType(Collections.singleton(sv),
+ ComrelVisualIDRegistry
+ .getType(MultiOutputPort2EditPart.VISUAL_ID));
+ result.addAll(createNavigatorItems(connectedViews, parentElement,
+ false));
+ return result.toArray();
+ }
+
+ case SingleFeatureUnit3EditPart.VISUAL_ID: {
+ LinkedList<ComrelAbstractNavigatorItem> result = new LinkedList<ComrelAbstractNavigatorItem>();
+ Node sv = (Node) view;
+ Collection<View> connectedViews;
+ connectedViews = getChildrenByType(Collections.singleton(sv),
+ ComrelVisualIDRegistry
+ .getType(SingleInputPort4EditPart.VISUAL_ID));
+ result.addAll(createNavigatorItems(connectedViews, parentElement,
+ false));
+ connectedViews = getChildrenByType(Collections.singleton(sv),
+ ComrelVisualIDRegistry
+ .getType(MultiInputPort3EditPart.VISUAL_ID));
+ result.addAll(createNavigatorItems(connectedViews, parentElement,
+ false));
+ connectedViews = getChildrenByType(Collections.singleton(sv),
+ ComrelVisualIDRegistry
+ .getType(SingleOutputPortEditPart.VISUAL_ID));
+ result.addAll(createNavigatorItems(connectedViews, parentElement,
+ false));
+ return result.toArray();
+ }
+
+ case SingleQueuedUnit4EditPart.VISUAL_ID: {
+ LinkedList<ComrelAbstractNavigatorItem> result = new LinkedList<ComrelAbstractNavigatorItem>();
+ Node sv = (Node) view;
+ Collection<View> connectedViews;
+ connectedViews = getChildrenByType(Collections.singleton(sv),
+ ComrelVisualIDRegistry
+ .getType(SingleInputPort6EditPart.VISUAL_ID));
+ result.addAll(createNavigatorItems(connectedViews, parentElement,
+ false));
+ connectedViews = getChildrenByType(Collections.singleton(sv),
+ ComrelVisualIDRegistry
+ .getType(MultiInputPort7EditPart.VISUAL_ID));
+ result.addAll(createNavigatorItems(connectedViews, parentElement,
+ false));
+ connectedViews = getChildrenByType(
+ Collections.singleton(sv),
+ ComrelVisualIDRegistry
+ .getType(SingleQueuedUnitSingleQueuedUnitRefactoringUnitCompartment3EditPart.VISUAL_ID));
+ connectedViews = getChildrenByType(connectedViews,
+ ComrelVisualIDRegistry
+ .getType(CartesianQueuedUnit4EditPart.VISUAL_ID));
+ result.addAll(createNavigatorItems(connectedViews, parentElement,
+ false));
+ connectedViews = getChildrenByType(
+ Collections.singleton(sv),
+ ComrelVisualIDRegistry
+ .getType(SingleQueuedUnitSingleQueuedUnitRefactoringUnitCompartment3EditPart.VISUAL_ID));
+ connectedViews = getChildrenByType(connectedViews,
+ ComrelVisualIDRegistry
+ .getType(ParallelQueuedUnit5EditPart.VISUAL_ID));
+ result.addAll(createNavigatorItems(connectedViews, parentElement,
+ false));
+ connectedViews = getChildrenByType(
+ Collections.singleton(sv),
+ ComrelVisualIDRegistry
+ .getType(SingleQueuedUnitSingleQueuedUnitHelperUnitsCompartment3EditPart.VISUAL_ID));
+ connectedViews = getChildrenByType(connectedViews,
+ ComrelVisualIDRegistry
+ .getType(SingleFeatureUnit4EditPart.VISUAL_ID));
+ result.addAll(createNavigatorItems(connectedViews, parentElement,
+ false));
+ connectedViews = getChildrenByType(
+ Collections.singleton(sv),
+ ComrelVisualIDRegistry
+ .getType(SingleQueuedUnitSingleQueuedUnitHelperUnitsCompartment3EditPart.VISUAL_ID));
+ connectedViews = getChildrenByType(connectedViews,
+ ComrelVisualIDRegistry
+ .getType(MultiFeatureUnit4EditPart.VISUAL_ID));
+ result.addAll(createNavigatorItems(connectedViews, parentElement,
+ false));
+ connectedViews = getChildrenByType(
+ Collections.singleton(sv),
+ ComrelVisualIDRegistry
+ .getType(SingleQueuedUnitSingleQueuedUnitHelperUnitsCompartment3EditPart.VISUAL_ID));
+ connectedViews = getChildrenByType(connectedViews,
+ ComrelVisualIDRegistry
+ .getType(SingleFilterUnit4EditPart.VISUAL_ID));
+ result.addAll(createNavigatorItems(connectedViews, parentElement,
+ false));
+ connectedViews = getChildrenByType(
+ Collections.singleton(sv),
+ ComrelVisualIDRegistry
+ .getType(SingleQueuedUnitSingleQueuedUnitHelperUnitsCompartment3EditPart.VISUAL_ID));
+ connectedViews = getChildrenByType(connectedViews,
+ ComrelVisualIDRegistry
+ .getType(MultiFilterUnit4EditPart.VISUAL_ID));
+ result.addAll(createNavigatorItems(connectedViews, parentElement,
+ false));
+ connectedViews = getChildrenByType(
+ Collections.singleton(sv),
+ ComrelVisualIDRegistry
+ .getType(SingleQueuedUnitSingleQueuedUnitRefactoringUnitCompartment3EditPart.VISUAL_ID));
+ connectedViews = getChildrenByType(connectedViews,
+ ComrelVisualIDRegistry
+ .getType(SingleQueuedUnit5EditPart.VISUAL_ID));
+ result.addAll(createNavigatorItems(connectedViews, parentElement,
+ false));
+ connectedViews = getChildrenByType(
+ Collections.singleton(sv),
+ ComrelVisualIDRegistry
+ .getType(SingleQueuedUnitSingleQueuedUnitRefactoringUnitCompartment3EditPart.VISUAL_ID));
+ connectedViews = getChildrenByType(connectedViews,
+ ComrelVisualIDRegistry
+ .getType(SequentialUnit4EditPart.VISUAL_ID));
+ result.addAll(createNavigatorItems(connectedViews, parentElement,
+ false));
+ connectedViews = getChildrenByType(
+ Collections.singleton(sv),
+ ComrelVisualIDRegistry
+ .getType(SingleQueuedUnitSingleQueuedUnitRefactoringUnitCompartment3EditPart.VISUAL_ID));
+ connectedViews = getChildrenByType(connectedViews,
+ ComrelVisualIDRegistry
+ .getType(ConditionalUnit4EditPart.VISUAL_ID));
+ result.addAll(createNavigatorItems(connectedViews, parentElement,
+ false));
+ connectedViews = getChildrenByType(
+ Collections.singleton(sv),
+ ComrelVisualIDRegistry
+ .getType(SingleQueuedUnitSingleQueuedUnitRefactoringUnitCompartment3EditPart.VISUAL_ID));
+ connectedViews = getChildrenByType(connectedViews,
+ ComrelVisualIDRegistry
+ .getType(AtomicUnit4EditPart.VISUAL_ID));
+ result.addAll(createNavigatorItems(connectedViews, parentElement,
+ false));
+ return result.toArray();
+ }
+
+ case SequentialUnit3EditPart.VISUAL_ID: {
+ LinkedList<ComrelAbstractNavigatorItem> result = new LinkedList<ComrelAbstractNavigatorItem>();
+ Node sv = (Node) view;
+ Collection<View> connectedViews;
+ connectedViews = getChildrenByType(Collections.singleton(sv),
+ ComrelVisualIDRegistry
+ .getType(SingleInputPort7EditPart.VISUAL_ID));
+ result.addAll(createNavigatorItems(connectedViews, parentElement,
+ false));
+ connectedViews = getChildrenByType(Collections.singleton(sv),
+ ComrelVisualIDRegistry
+ .getType(MultiInputPort8EditPart.VISUAL_ID));
+ result.addAll(createNavigatorItems(connectedViews, parentElement,
+ false));
+ connectedViews = getChildrenByType(
+ Collections.singleton(sv),
+ ComrelVisualIDRegistry
+ .getType(SequentialUnitSequentialUnitRefactoringUnitsCompartment2EditPart.VISUAL_ID));
+ connectedViews = getChildrenByType(connectedViews,
+ ComrelVisualIDRegistry
+ .getType(CartesianQueuedUnit5EditPart.VISUAL_ID));
+ result.addAll(createNavigatorItems(connectedViews, parentElement,
+ false));
+ connectedViews = getChildrenByType(
+ Collections.singleton(sv),
+ ComrelVisualIDRegistry
+ .getType(SequentialUnitSequentialUnitRefactoringUnitsCompartment2EditPart.VISUAL_ID));
+ connectedViews = getChildrenByType(connectedViews,
+ ComrelVisualIDRegistry
+ .getType(ParallelQueuedUnit6EditPart.VISUAL_ID));
+ result.addAll(createNavigatorItems(connectedViews, parentElement,
+ false));
+ connectedViews = getChildrenByType(
+ Collections.singleton(sv),
+ ComrelVisualIDRegistry
+ .getType(SequentialUnitSequentialUnitHelperUnitsCompartment2EditPart.VISUAL_ID));
+ connectedViews = getChildrenByType(connectedViews,
+ ComrelVisualIDRegistry
+ .getType(SingleFeatureUnit5EditPart.VISUAL_ID));
+ result.addAll(createNavigatorItems(connectedViews, parentElement,
+ false));
+ connectedViews = getChildrenByType(
+ Collections.singleton(sv),
+ ComrelVisualIDRegistry
+ .getType(SequentialUnitSequentialUnitHelperUnitsCompartment2EditPart.VISUAL_ID));
+ connectedViews = getChildrenByType(connectedViews,
+ ComrelVisualIDRegistry
+ .getType(MultiFeatureUnit5EditPart.VISUAL_ID));
+ result.addAll(createNavigatorItems(connectedViews, parentElement,
+ false));
+ connectedViews = getChildrenByType(
+ Collections.singleton(sv),
+ ComrelVisualIDRegistry
+ .getType(SequentialUnitSequentialUnitHelperUnitsCompartment2EditPart.VISUAL_ID));
+ connectedViews = getChildrenByType(connectedViews,
+ ComrelVisualIDRegistry
+ .getType(SingleFilterUnit5EditPart.VISUAL_ID));
+ result.addAll(createNavigatorItems(connectedViews, parentElement,
+ false));
+ connectedViews = getChildrenByType(
+ Collections.singleton(sv),
+ ComrelVisualIDRegistry
+ .getType(SequentialUnitSequentialUnitHelperUnitsCompartment2EditPart.VISUAL_ID));
+ connectedViews = getChildrenByType(connectedViews,
+ ComrelVisualIDRegistry
+ .getType(MultiFilterUnit5EditPart.VISUAL_ID));
+ result.addAll(createNavigatorItems(connectedViews, parentElement,
+ false));
+ connectedViews = getChildrenByType(
+ Collections.singleton(sv),
+ ComrelVisualIDRegistry
+ .getType(SequentialUnitSequentialUnitRefactoringUnitsCompartment2EditPart.VISUAL_ID));
+ connectedViews = getChildrenByType(connectedViews,
+ ComrelVisualIDRegistry
+ .getType(SingleQueuedUnit6EditPart.VISUAL_ID));
+ result.addAll(createNavigatorItems(connectedViews, parentElement,
+ false));
+ connectedViews = getChildrenByType(
+ Collections.singleton(sv),
+ ComrelVisualIDRegistry
+ .getType(SequentialUnitSequentialUnitRefactoringUnitsCompartment2EditPart.VISUAL_ID));
+ connectedViews = getChildrenByType(connectedViews,
+ ComrelVisualIDRegistry
+ .getType(SequentialUnit6EditPart.VISUAL_ID));
+ result.addAll(createNavigatorItems(connectedViews, parentElement,
+ false));
+ connectedViews = getChildrenByType(
+ Collections.singleton(sv),
+ ComrelVisualIDRegistry
+ .getType(SequentialUnitSequentialUnitRefactoringUnitsCompartment2EditPart.VISUAL_ID));
+ connectedViews = getChildrenByType(connectedViews,
+ ComrelVisualIDRegistry
+ .getType(ConditionalUnit5EditPart.VISUAL_ID));
+ result.addAll(createNavigatorItems(connectedViews, parentElement,
+ false));
+ connectedViews = getChildrenByType(
+ Collections.singleton(sv),
+ ComrelVisualIDRegistry
+ .getType(SequentialUnitSequentialUnitRefactoringUnitsCompartment2EditPart.VISUAL_ID));
+ connectedViews = getChildrenByType(connectedViews,
+ ComrelVisualIDRegistry
+ .getType(AtomicUnit5EditPart.VISUAL_ID));
+ result.addAll(createNavigatorItems(connectedViews, parentElement,
+ false));
+ return result.toArray();
+ }
+
+ case SingleQueuedUnit6EditPart.VISUAL_ID: {
+ LinkedList<ComrelAbstractNavigatorItem> result = new LinkedList<ComrelAbstractNavigatorItem>();
+ Node sv = (Node) view;
+ Collection<View> connectedViews;
+ connectedViews = getChildrenByType(Collections.singleton(sv),
+ ComrelVisualIDRegistry
+ .getType(SingleInputPort6EditPart.VISUAL_ID));
+ result.addAll(createNavigatorItems(connectedViews, parentElement,
+ false));
+ connectedViews = getChildrenByType(Collections.singleton(sv),
+ ComrelVisualIDRegistry
+ .getType(MultiInputPort7EditPart.VISUAL_ID));
+ result.addAll(createNavigatorItems(connectedViews, parentElement,
+ false));
+ connectedViews = getChildrenByType(
+ Collections.singleton(sv),
+ ComrelVisualIDRegistry
+ .getType(SingleQueuedUnitSingleQueuedUnitRefactoringUnitCompartment5EditPart.VISUAL_ID));
+ connectedViews = getChildrenByType(connectedViews,
+ ComrelVisualIDRegistry
+ .getType(CartesianQueuedUnit4EditPart.VISUAL_ID));
+ result.addAll(createNavigatorItems(connectedViews, parentElement,
+ false));
+ connectedViews = getChildrenByType(
+ Collections.singleton(sv),
+ ComrelVisualIDRegistry
+ .getType(SingleQueuedUnitSingleQueuedUnitRefactoringUnitCompartment5EditPart.VISUAL_ID));
+ connectedViews = getChildrenByType(connectedViews,
+ ComrelVisualIDRegistry
+ .getType(ParallelQueuedUnit5EditPart.VISUAL_ID));
+ result.addAll(createNavigatorItems(connectedViews, parentElement,
+ false));
+ connectedViews = getChildrenByType(
+ Collections.singleton(sv),
+ ComrelVisualIDRegistry
+ .getType(SingleQueuedUnitSingleQueuedUnitHelperUnitsCompartment5EditPart.VISUAL_ID));
+ connectedViews = getChildrenByType(connectedViews,
+ ComrelVisualIDRegistry
+ .getType(SingleFeatureUnit4EditPart.VISUAL_ID));
+ result.addAll(createNavigatorItems(connectedViews, parentElement,
+ false));
+ connectedViews = getChildrenByType(
+ Collections.singleton(sv),
+ ComrelVisualIDRegistry
+ .getType(SingleQueuedUnitSingleQueuedUnitHelperUnitsCompartment5EditPart.VISUAL_ID));
+ connectedViews = getChildrenByType(connectedViews,
+ ComrelVisualIDRegistry
+ .getType(MultiFeatureUnit4EditPart.VISUAL_ID));
+ result.addAll(createNavigatorItems(connectedViews, parentElement,
+ false));
+ connectedViews = getChildrenByType(
+ Collections.singleton(sv),
+ ComrelVisualIDRegistry
+ .getType(SingleQueuedUnitSingleQueuedUnitHelperUnitsCompartment5EditPart.VISUAL_ID));
+ connectedViews = getChildrenByType(connectedViews,
+ ComrelVisualIDRegistry
+ .getType(SingleFilterUnit4EditPart.VISUAL_ID));
+ result.addAll(createNavigatorItems(connectedViews, parentElement,
+ false));
+ connectedViews = getChildrenByType(
+ Collections.singleton(sv),
+ ComrelVisualIDRegistry
+ .getType(SingleQueuedUnitSingleQueuedUnitHelperUnitsCompartment5EditPart.VISUAL_ID));
+ connectedViews = getChildrenByType(connectedViews,
+ ComrelVisualIDRegistry
+ .getType(MultiFilterUnit4EditPart.VISUAL_ID));
+ result.addAll(createNavigatorItems(connectedViews, parentElement,
+ false));
+ connectedViews = getChildrenByType(
+ Collections.singleton(sv),
+ ComrelVisualIDRegistry
+ .getType(SingleQueuedUnitSingleQueuedUnitRefactoringUnitCompartment5EditPart.VISUAL_ID));
+ connectedViews = getChildrenByType(connectedViews,
+ ComrelVisualIDRegistry
+ .getType(SingleQueuedUnit5EditPart.VISUAL_ID));
+ result.addAll(createNavigatorItems(connectedViews, parentElement,
+ false));
+ connectedViews = getChildrenByType(
+ Collections.singleton(sv),
+ ComrelVisualIDRegistry
+ .getType(SingleQueuedUnitSingleQueuedUnitRefactoringUnitCompartment5EditPart.VISUAL_ID));
+ connectedViews = getChildrenByType(connectedViews,
+ ComrelVisualIDRegistry
+ .getType(SequentialUnit4EditPart.VISUAL_ID));
+ result.addAll(createNavigatorItems(connectedViews, parentElement,
+ false));
+ connectedViews = getChildrenByType(
+ Collections.singleton(sv),
+ ComrelVisualIDRegistry
+ .getType(SingleQueuedUnitSingleQueuedUnitRefactoringUnitCompartment5EditPart.VISUAL_ID));
+ connectedViews = getChildrenByType(connectedViews,
+ ComrelVisualIDRegistry
+ .getType(ConditionalUnit4EditPart.VISUAL_ID));
+ result.addAll(createNavigatorItems(connectedViews, parentElement,
+ false));
+ connectedViews = getChildrenByType(
+ Collections.singleton(sv),
+ ComrelVisualIDRegistry
+ .getType(SingleQueuedUnitSingleQueuedUnitRefactoringUnitCompartment5EditPart.VISUAL_ID));
+ connectedViews = getChildrenByType(connectedViews,
+ ComrelVisualIDRegistry
+ .getType(AtomicUnit4EditPart.VISUAL_ID));
+ result.addAll(createNavigatorItems(connectedViews, parentElement,
+ false));
+ return result.toArray();
+ }
+
+ case SingleQueuedUnit3EditPart.VISUAL_ID: {
+ LinkedList<ComrelAbstractNavigatorItem> result = new LinkedList<ComrelAbstractNavigatorItem>();
+ Node sv = (Node) view;
+ Collection<View> connectedViews;
+ connectedViews = getChildrenByType(Collections.singleton(sv),
+ ComrelVisualIDRegistry
+ .getType(SingleInputPort6EditPart.VISUAL_ID));
+ result.addAll(createNavigatorItems(connectedViews, parentElement,
+ false));
+ connectedViews = getChildrenByType(Collections.singleton(sv),
+ ComrelVisualIDRegistry
+ .getType(MultiInputPort7EditPart.VISUAL_ID));
+ result.addAll(createNavigatorItems(connectedViews, parentElement,
+ false));
+ connectedViews = getChildrenByType(
+ Collections.singleton(sv),
+ ComrelVisualIDRegistry
+ .getType(SingleQueuedUnitSingleQueuedUnitRefactoringUnitCompartment2EditPart.VISUAL_ID));
+ connectedViews = getChildrenByType(connectedViews,
+ ComrelVisualIDRegistry
+ .getType(CartesianQueuedUnit4EditPart.VISUAL_ID));
+ result.addAll(createNavigatorItems(connectedViews, parentElement,
+ false));
+ connectedViews = getChildrenByType(
+ Collections.singleton(sv),
+ ComrelVisualIDRegistry
+ .getType(SingleQueuedUnitSingleQueuedUnitRefactoringUnitCompartment2EditPart.VISUAL_ID));
+ connectedViews = getChildrenByType(connectedViews,
+ ComrelVisualIDRegistry
+ .getType(ParallelQueuedUnit5EditPart.VISUAL_ID));
+ result.addAll(createNavigatorItems(connectedViews, parentElement,
+ false));
+ connectedViews = getChildrenByType(
+ Collections.singleton(sv),
+ ComrelVisualIDRegistry
+ .getType(SingleQueuedUnitSingleQueuedUnitHelperUnitsCompartment2EditPart.VISUAL_ID));
+ connectedViews = getChildrenByType(connectedViews,
+ ComrelVisualIDRegistry
+ .getType(SingleFeatureUnit4EditPart.VISUAL_ID));
+ result.addAll(createNavigatorItems(connectedViews, parentElement,
+ false));
+ connectedViews = getChildrenByType(
+ Collections.singleton(sv),
+ ComrelVisualIDRegistry
+ .getType(SingleQueuedUnitSingleQueuedUnitHelperUnitsCompartment2EditPart.VISUAL_ID));
+ connectedViews = getChildrenByType(connectedViews,
+ ComrelVisualIDRegistry
+ .getType(MultiFeatureUnit4EditPart.VISUAL_ID));
+ result.addAll(createNavigatorItems(connectedViews, parentElement,
+ false));
+ connectedViews = getChildrenByType(
+ Collections.singleton(sv),
+ ComrelVisualIDRegistry
+ .getType(SingleQueuedUnitSingleQueuedUnitHelperUnitsCompartment2EditPart.VISUAL_ID));
+ connectedViews = getChildrenByType(connectedViews,
+ ComrelVisualIDRegistry
+ .getType(SingleFilterUnit4EditPart.VISUAL_ID));
+ result.addAll(createNavigatorItems(connectedViews, parentElement,
+ false));
+ connectedViews = getChildrenByType(
+ Collections.singleton(sv),
+ ComrelVisualIDRegistry
+ .getType(SingleQueuedUnitSingleQueuedUnitHelperUnitsCompartment2EditPart.VISUAL_ID));
+ connectedViews = getChildrenByType(connectedViews,
+ ComrelVisualIDRegistry
+ .getType(MultiFilterUnit4EditPart.VISUAL_ID));
+ result.addAll(createNavigatorItems(connectedViews, parentElement,
+ false));
+ connectedViews = getChildrenByType(
+ Collections.singleton(sv),
+ ComrelVisualIDRegistry
+ .getType(SingleQueuedUnitSingleQueuedUnitRefactoringUnitCompartment2EditPart.VISUAL_ID));
+ connectedViews = getChildrenByType(connectedViews,
+ ComrelVisualIDRegistry
+ .getType(SingleQueuedUnit5EditPart.VISUAL_ID));
+ result.addAll(createNavigatorItems(connectedViews, parentElement,
+ false));
+ connectedViews = getChildrenByType(
+ Collections.singleton(sv),
+ ComrelVisualIDRegistry
+ .getType(SingleQueuedUnitSingleQueuedUnitRefactoringUnitCompartment2EditPart.VISUAL_ID));
+ connectedViews = getChildrenByType(connectedViews,
+ ComrelVisualIDRegistry
+ .getType(SequentialUnit4EditPart.VISUAL_ID));
+ result.addAll(createNavigatorItems(connectedViews, parentElement,
+ false));
+ connectedViews = getChildrenByType(
+ Collections.singleton(sv),
+ ComrelVisualIDRegistry
+ .getType(SingleQueuedUnitSingleQueuedUnitRefactoringUnitCompartment2EditPart.VISUAL_ID));
+ connectedViews = getChildrenByType(connectedViews,
+ ComrelVisualIDRegistry
+ .getType(ConditionalUnit4EditPart.VISUAL_ID));
+ result.addAll(createNavigatorItems(connectedViews, parentElement,
+ false));
+ connectedViews = getChildrenByType(
+ Collections.singleton(sv),
+ ComrelVisualIDRegistry
+ .getType(SingleQueuedUnitSingleQueuedUnitRefactoringUnitCompartment2EditPart.VISUAL_ID));
+ connectedViews = getChildrenByType(connectedViews,
+ ComrelVisualIDRegistry
+ .getType(AtomicUnit4EditPart.VISUAL_ID));
+ result.addAll(createNavigatorItems(connectedViews, parentElement,
+ false));
+ return result.toArray();
+ }
+
+ case SingleFilterUnit5EditPart.VISUAL_ID: {
+ LinkedList<ComrelAbstractNavigatorItem> result = new LinkedList<ComrelAbstractNavigatorItem>();
+ Node sv = (Node) view;
+ Collection<View> connectedViews;
+ connectedViews = getChildrenByType(Collections.singleton(sv),
+ ComrelVisualIDRegistry
+ .getType(MultiInputPort5EditPart.VISUAL_ID));
+ result.addAll(createNavigatorItems(connectedViews, parentElement,
+ false));
+ connectedViews = getChildrenByType(Collections.singleton(sv),
+ ComrelVisualIDRegistry
+ .getType(SingleOutputPort2EditPart.VISUAL_ID));
+ result.addAll(createNavigatorItems(connectedViews, parentElement,
+ false));
+ return result.toArray();
+ }
+
+ case SingleFilterUnit4EditPart.VISUAL_ID: {
+ LinkedList<ComrelAbstractNavigatorItem> result = new LinkedList<ComrelAbstractNavigatorItem>();
+ Node sv = (Node) view;
+ Collection<View> connectedViews;
+ connectedViews = getChildrenByType(Collections.singleton(sv),
+ ComrelVisualIDRegistry
+ .getType(MultiInputPort5EditPart.VISUAL_ID));
+ result.addAll(createNavigatorItems(connectedViews, parentElement,
+ false));
+ connectedViews = getChildrenByType(Collections.singleton(sv),
+ ComrelVisualIDRegistry
+ .getType(SingleOutputPort2EditPart.VISUAL_ID));
+ result.addAll(createNavigatorItems(connectedViews, parentElement,
+ false));
+ return result.toArray();
+ }
+
+ case SequentialUnitEditPart.VISUAL_ID: {
+ LinkedList<ComrelAbstractNavigatorItem> result = new LinkedList<ComrelAbstractNavigatorItem>();
+ Node sv = (Node) view;
+ Collection<View> connectedViews;
+ connectedViews = getChildrenByType(Collections.singleton(sv),
+ ComrelVisualIDRegistry
+ .getType(SingleInputPort7EditPart.VISUAL_ID));
+ result.addAll(createNavigatorItems(connectedViews, parentElement,
+ false));
+ connectedViews = getChildrenByType(Collections.singleton(sv),
+ ComrelVisualIDRegistry
+ .getType(MultiInputPort8EditPart.VISUAL_ID));
+ result.addAll(createNavigatorItems(connectedViews, parentElement,
+ false));
+ connectedViews = getChildrenByType(
+ Collections.singleton(sv),
+ ComrelVisualIDRegistry
+ .getType(SequentialUnitSequentialUnitRefactoringUnitsCompartment7EditPart.VISUAL_ID));
+ connectedViews = getChildrenByType(connectedViews,
+ ComrelVisualIDRegistry
+ .getType(CartesianQueuedUnit5EditPart.VISUAL_ID));
+ result.addAll(createNavigatorItems(connectedViews, parentElement,
+ false));
+ connectedViews = getChildrenByType(
+ Collections.singleton(sv),
+ ComrelVisualIDRegistry
+ .getType(SequentialUnitSequentialUnitRefactoringUnitsCompartment7EditPart.VISUAL_ID));
+ connectedViews = getChildrenByType(connectedViews,
+ ComrelVisualIDRegistry
+ .getType(ParallelQueuedUnit6EditPart.VISUAL_ID));
+ result.addAll(createNavigatorItems(connectedViews, parentElement,
+ false));
+ connectedViews = getChildrenByType(
+ Collections.singleton(sv),
+ ComrelVisualIDRegistry
+ .getType(SequentialUnitSequentialUnitHelperUnitsCompartment7EditPart.VISUAL_ID));
+ connectedViews = getChildrenByType(connectedViews,
+ ComrelVisualIDRegistry
+ .getType(SingleFeatureUnit5EditPart.VISUAL_ID));
+ result.addAll(createNavigatorItems(connectedViews, parentElement,
+ false));
+ connectedViews = getChildrenByType(
+ Collections.singleton(sv),
+ ComrelVisualIDRegistry
+ .getType(SequentialUnitSequentialUnitHelperUnitsCompartment7EditPart.VISUAL_ID));
+ connectedViews = getChildrenByType(connectedViews,
+ ComrelVisualIDRegistry
+ .getType(MultiFeatureUnit5EditPart.VISUAL_ID));
+ result.addAll(createNavigatorItems(connectedViews, parentElement,
+ false));
+ connectedViews = getChildrenByType(
+ Collections.singleton(sv),
+ ComrelVisualIDRegistry
+ .getType(SequentialUnitSequentialUnitHelperUnitsCompartment7EditPart.VISUAL_ID));
+ connectedViews = getChildrenByType(connectedViews,
+ ComrelVisualIDRegistry
+ .getType(SingleFilterUnit5EditPart.VISUAL_ID));
+ result.addAll(createNavigatorItems(connectedViews, parentElement,
+ false));
+ connectedViews = getChildrenByType(
+ Collections.singleton(sv),
+ ComrelVisualIDRegistry
+ .getType(SequentialUnitSequentialUnitHelperUnitsCompartment7EditPart.VISUAL_ID));
+ connectedViews = getChildrenByType(connectedViews,
+ ComrelVisualIDRegistry
+ .getType(MultiFilterUnit5EditPart.VISUAL_ID));
+ result.addAll(createNavigatorItems(connectedViews, parentElement,
+ false));
+ connectedViews = getChildrenByType(
+ Collections.singleton(sv),
+ ComrelVisualIDRegistry
+ .getType(SequentialUnitSequentialUnitRefactoringUnitsCompartment7EditPart.VISUAL_ID));
+ connectedViews = getChildrenByType(connectedViews,
+ ComrelVisualIDRegistry
+ .getType(SingleQueuedUnit6EditPart.VISUAL_ID));
+ result.addAll(createNavigatorItems(connectedViews, parentElement,
+ false));
+ connectedViews = getChildrenByType(
+ Collections.singleton(sv),
+ ComrelVisualIDRegistry
+ .getType(SequentialUnitSequentialUnitRefactoringUnitsCompartment7EditPart.VISUAL_ID));
+ connectedViews = getChildrenByType(connectedViews,
+ ComrelVisualIDRegistry
+ .getType(SequentialUnit6EditPart.VISUAL_ID));
+ result.addAll(createNavigatorItems(connectedViews, parentElement,
+ false));
+ connectedViews = getChildrenByType(
+ Collections.singleton(sv),
+ ComrelVisualIDRegistry
+ .getType(SequentialUnitSequentialUnitRefactoringUnitsCompartment7EditPart.VISUAL_ID));
+ connectedViews = getChildrenByType(connectedViews,
+ ComrelVisualIDRegistry
+ .getType(ConditionalUnit5EditPart.VISUAL_ID));
+ result.addAll(createNavigatorItems(connectedViews, parentElement,
+ false));
+ connectedViews = getChildrenByType(
+ Collections.singleton(sv),
+ ComrelVisualIDRegistry
+ .getType(SequentialUnitSequentialUnitRefactoringUnitsCompartment7EditPart.VISUAL_ID));
+ connectedViews = getChildrenByType(connectedViews,
+ ComrelVisualIDRegistry
+ .getType(AtomicUnit5EditPart.VISUAL_ID));
+ result.addAll(createNavigatorItems(connectedViews, parentElement,
+ false));
+ return result.toArray();
+ }
+
+ case ParallelQueuedUnit2EditPart.VISUAL_ID: {
+ LinkedList<ComrelAbstractNavigatorItem> result = new LinkedList<ComrelAbstractNavigatorItem>();
+ Node sv = (Node) view;
+ Collection<View> connectedViews;
+ connectedViews = getChildrenByType(Collections.singleton(sv),
+ ComrelVisualIDRegistry
+ .getType(SingleInputPort3EditPart.VISUAL_ID));
+ result.addAll(createNavigatorItems(connectedViews, parentElement,
+ false));
+ connectedViews = getChildrenByType(Collections.singleton(sv),
+ ComrelVisualIDRegistry
+ .getType(MultiInputPort2EditPart.VISUAL_ID));
+ result.addAll(createNavigatorItems(connectedViews, parentElement,
+ false));
+ connectedViews = getChildrenByType(
+ Collections.singleton(sv),
+ ComrelVisualIDRegistry
+ .getType(ParallelQueuedUnitParallelQueuedUnitRefactoringUnitsCompartmentEditPart.VISUAL_ID));
+ connectedViews = getChildrenByType(connectedViews,
+ ComrelVisualIDRegistry
+ .getType(CartesianQueuedUnit3EditPart.VISUAL_ID));
+ result.addAll(createNavigatorItems(connectedViews, parentElement,
+ false));
+ connectedViews = getChildrenByType(
+ Collections.singleton(sv),
+ ComrelVisualIDRegistry
+ .getType(ParallelQueuedUnitParallelQueuedUnitRefactoringUnitsCompartmentEditPart.VISUAL_ID));
+ connectedViews = getChildrenByType(connectedViews,
+ ComrelVisualIDRegistry
+ .getType(ParallelQueuedUnit4EditPart.VISUAL_ID));
+ result.addAll(createNavigatorItems(connectedViews, parentElement,
+ false));
+ connectedViews = getChildrenByType(
+ Collections.singleton(sv),
+ ComrelVisualIDRegistry
+ .getType(ParallelQueuedUnitParallelQueuedUnitHelperUnitsCompartmentEditPart.VISUAL_ID));
+ connectedViews = getChildrenByType(connectedViews,
+ ComrelVisualIDRegistry
+ .getType(SingleFeatureUnit2EditPart.VISUAL_ID));
+ result.addAll(createNavigatorItems(connectedViews, parentElement,
+ false));
+ connectedViews = getChildrenByType(
+ Collections.singleton(sv),
+ ComrelVisualIDRegistry
+ .getType(ParallelQueuedUnitParallelQueuedUnitHelperUnitsCompartmentEditPart.VISUAL_ID));
+ connectedViews = getChildrenByType(connectedViews,
+ ComrelVisualIDRegistry
+ .getType(MultiFeatureUnit2EditPart.VISUAL_ID));
+ result.addAll(createNavigatorItems(connectedViews, parentElement,
+ false));
+ connectedViews = getChildrenByType(
+ Collections.singleton(sv),
+ ComrelVisualIDRegistry
+ .getType(ParallelQueuedUnitParallelQueuedUnitHelperUnitsCompartmentEditPart.VISUAL_ID));
+ connectedViews = getChildrenByType(connectedViews,
+ ComrelVisualIDRegistry
+ .getType(SingleFilterUnit2EditPart.VISUAL_ID));
+ result.addAll(createNavigatorItems(connectedViews, parentElement,
+ false));
+ connectedViews = getChildrenByType(
+ Collections.singleton(sv),
+ ComrelVisualIDRegistry
+ .getType(ParallelQueuedUnitParallelQueuedUnitHelperUnitsCompartmentEditPart.VISUAL_ID));
+ connectedViews = getChildrenByType(connectedViews,
+ ComrelVisualIDRegistry
+ .getType(MultiFilterUnit2EditPart.VISUAL_ID));
+ result.addAll(createNavigatorItems(connectedViews, parentElement,
+ false));
+ connectedViews = getChildrenByType(
+ Collections.singleton(sv),
+ ComrelVisualIDRegistry
+ .getType(ParallelQueuedUnitParallelQueuedUnitRefactoringUnitsCompartmentEditPart.VISUAL_ID));
+ connectedViews = getChildrenByType(connectedViews,
+ ComrelVisualIDRegistry
+ .getType(SingleQueuedUnit3EditPart.VISUAL_ID));
+ result.addAll(createNavigatorItems(connectedViews, parentElement,
+ false));
+ connectedViews = getChildrenByType(
+ Collections.singleton(sv),
+ ComrelVisualIDRegistry
+ .getType(ParallelQueuedUnitParallelQueuedUnitRefactoringUnitsCompartmentEditPart.VISUAL_ID));
+ connectedViews = getChildrenByType(connectedViews,
+ ComrelVisualIDRegistry
+ .getType(SequentialUnit3EditPart.VISUAL_ID));
+ result.addAll(createNavigatorItems(connectedViews, parentElement,
+ false));
+ connectedViews = getChildrenByType(
+ Collections.singleton(sv),
+ ComrelVisualIDRegistry
+ .getType(ParallelQueuedUnitParallelQueuedUnitRefactoringUnitsCompartmentEditPart.VISUAL_ID));
+ connectedViews = getChildrenByType(connectedViews,
+ ComrelVisualIDRegistry
+ .getType(ConditionalUnit3EditPart.VISUAL_ID));
+ result.addAll(createNavigatorItems(connectedViews, parentElement,
+ false));
+ connectedViews = getChildrenByType(
+ Collections.singleton(sv),
+ ComrelVisualIDRegistry
+ .getType(ParallelQueuedUnitParallelQueuedUnitRefactoringUnitsCompartmentEditPart.VISUAL_ID));
+ connectedViews = getChildrenByType(connectedViews,
+ ComrelVisualIDRegistry
+ .getType(AtomicUnit3EditPart.VISUAL_ID));
+ result.addAll(createNavigatorItems(connectedViews, parentElement,
+ false));
+ return result.toArray();
+ }
+
+ case MultiInputPort8EditPart.VISUAL_ID: {
+ LinkedList<ComrelAbstractNavigatorItem> result = new LinkedList<ComrelAbstractNavigatorItem>();
+ Node sv = (Node) view;
+ ComrelNavigatorGroup incominglinks = new ComrelNavigatorGroup(
+ Messages.NavigatorGroupName_MultiInputPort_3028_incominglinks,
+ "icons/incomingLinksNavigatorGroup.gif", parentElement); //$NON-NLS-1$
+ ComrelNavigatorGroup outgoinglinks = new ComrelNavigatorGroup(
+ Messages.NavigatorGroupName_MultiInputPort_3028_outgoinglinks,
+ "icons/outgoingLinksNavigatorGroup.gif", parentElement); //$NON-NLS-1$
+ Collection<View> connectedViews;
+ connectedViews = getIncomingLinksByType(Collections.singleton(sv),
+ ComrelVisualIDRegistry
+ .getType(MultiPortMappingEditPart.VISUAL_ID));
+ incominglinks.addChildren(createNavigatorItems(connectedViews,
+ incominglinks, true));
+ connectedViews = getOutgoingLinksByType(Collections.singleton(sv),
+ ComrelVisualIDRegistry
+ .getType(MultiPortMappingEditPart.VISUAL_ID));
+ outgoinglinks.addChildren(createNavigatorItems(connectedViews,
+ outgoinglinks, true));
+ connectedViews = getOutgoingLinksByType(Collections.singleton(sv),
+ ComrelVisualIDRegistry
+ .getType(MultiSinglePortMappingEditPart.VISUAL_ID));
+ outgoinglinks.addChildren(createNavigatorItems(connectedViews,
+ outgoinglinks, true));
+ if (!incominglinks.isEmpty()) {
+ result.add(incominglinks);
+ }
+ if (!outgoinglinks.isEmpty()) {
+ result.add(outgoinglinks);
+ }
+ return result.toArray();
+ }
+
+ case SingleQueuedUnitEditPart.VISUAL_ID: {
+ LinkedList<ComrelAbstractNavigatorItem> result = new LinkedList<ComrelAbstractNavigatorItem>();
+ Node sv = (Node) view;
+ Collection<View> connectedViews;
+ connectedViews = getChildrenByType(Collections.singleton(sv),
+ ComrelVisualIDRegistry
+ .getType(SingleInputPort6EditPart.VISUAL_ID));
+ result.addAll(createNavigatorItems(connectedViews, parentElement,
+ false));
+ connectedViews = getChildrenByType(Collections.singleton(sv),
+ ComrelVisualIDRegistry
+ .getType(MultiInputPort7EditPart.VISUAL_ID));
+ result.addAll(createNavigatorItems(connectedViews, parentElement,
+ false));
+ connectedViews = getChildrenByType(
+ Collections.singleton(sv),
+ ComrelVisualIDRegistry
+ .getType(SingleQueuedUnitSingleQueuedUnitRefactoringUnitCompartment7EditPart.VISUAL_ID));
+ connectedViews = getChildrenByType(connectedViews,
+ ComrelVisualIDRegistry
+ .getType(CartesianQueuedUnit4EditPart.VISUAL_ID));
+ result.addAll(createNavigatorItems(connectedViews, parentElement,
+ false));
+ connectedViews = getChildrenByType(
+ Collections.singleton(sv),
+ ComrelVisualIDRegistry
+ .getType(SingleQueuedUnitSingleQueuedUnitRefactoringUnitCompartment7EditPart.VISUAL_ID));
+ connectedViews = getChildrenByType(connectedViews,
+ ComrelVisualIDRegistry
+ .getType(ParallelQueuedUnit5EditPart.VISUAL_ID));
+ result.addAll(createNavigatorItems(connectedViews, parentElement,
+ false));
+ connectedViews = getChildrenByType(
+ Collections.singleton(sv),
+ ComrelVisualIDRegistry
+ .getType(SingleQueuedUnitSingleQueuedUnitHelperUnitsCompartment7EditPart.VISUAL_ID));
+ connectedViews = getChildrenByType(connectedViews,
+ ComrelVisualIDRegistry
+ .getType(SingleFeatureUnit4EditPart.VISUAL_ID));
+ result.addAll(createNavigatorItems(connectedViews, parentElement,
+ false));
+ connectedViews = getChildrenByType(
+ Collections.singleton(sv),
+ ComrelVisualIDRegistry
+ .getType(SingleQueuedUnitSingleQueuedUnitHelperUnitsCompartment7EditPart.VISUAL_ID));
+ connectedViews = getChildrenByType(connectedViews,
+ ComrelVisualIDRegistry
+ .getType(MultiFeatureUnit4EditPart.VISUAL_ID));
+ result.addAll(createNavigatorItems(connectedViews, parentElement,
+ false));
+ connectedViews = getChildrenByType(
+ Collections.singleton(sv),
+ ComrelVisualIDRegistry
+ .getType(SingleQueuedUnitSingleQueuedUnitHelperUnitsCompartment7EditPart.VISUAL_ID));
+ connectedViews = getChildrenByType(connectedViews,
+ ComrelVisualIDRegistry
+ .getType(SingleFilterUnit4EditPart.VISUAL_ID));
+ result.addAll(createNavigatorItems(connectedViews, parentElement,
+ false));
+ connectedViews = getChildrenByType(
+ Collections.singleton(sv),
+ ComrelVisualIDRegistry
+ .getType(SingleQueuedUnitSingleQueuedUnitHelperUnitsCompartment7EditPart.VISUAL_ID));
+ connectedViews = getChildrenByType(connectedViews,
+ ComrelVisualIDRegistry
+ .getType(MultiFilterUnit4EditPart.VISUAL_ID));
+ result.addAll(createNavigatorItems(connectedViews, parentElement,
+ false));
+ connectedViews = getChildrenByType(
+ Collections.singleton(sv),
+ ComrelVisualIDRegistry
+ .getType(SingleQueuedUnitSingleQueuedUnitRefactoringUnitCompartment7EditPart.VISUAL_ID));
+ connectedViews = getChildrenByType(connectedViews,
+ ComrelVisualIDRegistry
+ .getType(SingleQueuedUnit5EditPart.VISUAL_ID));
+ result.addAll(createNavigatorItems(connectedViews, parentElement,
+ false));
+ connectedViews = getChildrenByType(
+ Collections.singleton(sv),
+ ComrelVisualIDRegistry
+ .getType(SingleQueuedUnitSingleQueuedUnitRefactoringUnitCompartment7EditPart.VISUAL_ID));
+ connectedViews = getChildrenByType(connectedViews,
+ ComrelVisualIDRegistry
+ .getType(SequentialUnit4EditPart.VISUAL_ID));
+ result.addAll(createNavigatorItems(connectedViews, parentElement,
+ false));
+ connectedViews = getChildrenByType(
+ Collections.singleton(sv),
+ ComrelVisualIDRegistry
+ .getType(SingleQueuedUnitSingleQueuedUnitRefactoringUnitCompartment7EditPart.VISUAL_ID));
+ connectedViews = getChildrenByType(connectedViews,
+ ComrelVisualIDRegistry
+ .getType(ConditionalUnit4EditPart.VISUAL_ID));
+ result.addAll(createNavigatorItems(connectedViews, parentElement,
+ false));
+ connectedViews = getChildrenByType(
+ Collections.singleton(sv),
+ ComrelVisualIDRegistry
+ .getType(SingleQueuedUnitSingleQueuedUnitRefactoringUnitCompartment7EditPart.VISUAL_ID));
+ connectedViews = getChildrenByType(connectedViews,
+ ComrelVisualIDRegistry
+ .getType(AtomicUnit4EditPart.VISUAL_ID));
+ result.addAll(createNavigatorItems(connectedViews, parentElement,
+ false));
+ return result.toArray();
+ }
+
+ case MultiInputPort5EditPart.VISUAL_ID: {
+ LinkedList<ComrelAbstractNavigatorItem> result = new LinkedList<ComrelAbstractNavigatorItem>();
+ Node sv = (Node) view;
+ ComrelNavigatorGroup incominglinks = new ComrelNavigatorGroup(
+ Messages.NavigatorGroupName_MultiInputPort_3017_incominglinks,
+ "icons/incomingLinksNavigatorGroup.gif", parentElement); //$NON-NLS-1$
+ ComrelNavigatorGroup outgoinglinks = new ComrelNavigatorGroup(
+ Messages.NavigatorGroupName_MultiInputPort_3017_outgoinglinks,
+ "icons/outgoingLinksNavigatorGroup.gif", parentElement); //$NON-NLS-1$
+ Collection<View> connectedViews;
+ connectedViews = getIncomingLinksByType(Collections.singleton(sv),
+ ComrelVisualIDRegistry
+ .getType(MultiPortMappingEditPart.VISUAL_ID));
+ incominglinks.addChildren(createNavigatorItems(connectedViews,
+ incominglinks, true));
+ connectedViews = getOutgoingLinksByType(Collections.singleton(sv),
+ ComrelVisualIDRegistry
+ .getType(MultiPortMappingEditPart.VISUAL_ID));
+ outgoinglinks.addChildren(createNavigatorItems(connectedViews,
+ outgoinglinks, true));
+ connectedViews = getOutgoingLinksByType(Collections.singleton(sv),
+ ComrelVisualIDRegistry
+ .getType(MultiSinglePortMappingEditPart.VISUAL_ID));
+ outgoinglinks.addChildren(createNavigatorItems(connectedViews,
+ outgoinglinks, true));
+ if (!incominglinks.isEmpty()) {
+ result.add(incominglinks);
+ }
+ if (!outgoinglinks.isEmpty()) {
+ result.add(outgoinglinks);
+ }
+ return result.toArray();
+ }
+
+ case SingleInputPort3EditPart.VISUAL_ID: {
+ LinkedList<ComrelAbstractNavigatorItem> result = new LinkedList<ComrelAbstractNavigatorItem>();
+ Node sv = (Node) view;
+ ComrelNavigatorGroup incominglinks = new ComrelNavigatorGroup(
+ Messages.NavigatorGroupName_SingleInputPort_3005_incominglinks,
+ "icons/incomingLinksNavigatorGroup.gif", parentElement); //$NON-NLS-1$
+ ComrelNavigatorGroup outgoinglinks = new ComrelNavigatorGroup(
+ Messages.NavigatorGroupName_SingleInputPort_3005_outgoinglinks,
+ "icons/outgoingLinksNavigatorGroup.gif", parentElement); //$NON-NLS-1$
+ Collection<View> connectedViews;
+ connectedViews = getIncomingLinksByType(Collections.singleton(sv),
+ ComrelVisualIDRegistry
+ .getType(SinglePortMappingEditPart.VISUAL_ID));
+ incominglinks.addChildren(createNavigatorItems(connectedViews,
+ incominglinks, true));
+ connectedViews = getOutgoingLinksByType(Collections.singleton(sv),
+ ComrelVisualIDRegistry
+ .getType(SinglePortMappingEditPart.VISUAL_ID));
+ outgoinglinks.addChildren(createNavigatorItems(connectedViews,
+ outgoinglinks, true));
+ connectedViews = getIncomingLinksByType(Collections.singleton(sv),
+ ComrelVisualIDRegistry
+ .getType(MultiSinglePortMappingEditPart.VISUAL_ID));
+ incominglinks.addChildren(createNavigatorItems(connectedViews,
+ incominglinks, true));
+ if (!incominglinks.isEmpty()) {
+ result.add(incominglinks);
+ }
+ if (!outgoinglinks.isEmpty()) {
+ result.add(outgoinglinks);
+ }
+ return result.toArray();
+ }
+
+ case SingleQueuedUnit2EditPart.VISUAL_ID: {
+ LinkedList<ComrelAbstractNavigatorItem> result = new LinkedList<ComrelAbstractNavigatorItem>();
+ Node sv = (Node) view;
+ Collection<View> connectedViews;
+ connectedViews = getChildrenByType(Collections.singleton(sv),
+ ComrelVisualIDRegistry
+ .getType(SingleInputPort6EditPart.VISUAL_ID));
+ result.addAll(createNavigatorItems(connectedViews, parentElement,
+ false));
+ connectedViews = getChildrenByType(Collections.singleton(sv),
+ ComrelVisualIDRegistry
+ .getType(MultiInputPort7EditPart.VISUAL_ID));
+ result.addAll(createNavigatorItems(connectedViews, parentElement,
+ false));
+ connectedViews = getChildrenByType(
+ Collections.singleton(sv),
+ ComrelVisualIDRegistry
+ .getType(SingleQueuedUnitSingleQueuedUnitRefactoringUnitCompartmentEditPart.VISUAL_ID));
+ connectedViews = getChildrenByType(connectedViews,
+ ComrelVisualIDRegistry
+ .getType(CartesianQueuedUnit4EditPart.VISUAL_ID));
+ result.addAll(createNavigatorItems(connectedViews, parentElement,
+ false));
+ connectedViews = getChildrenByType(
+ Collections.singleton(sv),
+ ComrelVisualIDRegistry
+ .getType(SingleQueuedUnitSingleQueuedUnitRefactoringUnitCompartmentEditPart.VISUAL_ID));
+ connectedViews = getChildrenByType(connectedViews,
+ ComrelVisualIDRegistry
+ .getType(ParallelQueuedUnit5EditPart.VISUAL_ID));
+ result.addAll(createNavigatorItems(connectedViews, parentElement,
+ false));
+ connectedViews = getChildrenByType(
+ Collections.singleton(sv),
+ ComrelVisualIDRegistry
+ .getType(SingleQueuedUnitSingleQueuedUnitHelperUnitsCompartmentEditPart.VISUAL_ID));
+ connectedViews = getChildrenByType(connectedViews,
+ ComrelVisualIDRegistry
+ .getType(SingleFeatureUnit4EditPart.VISUAL_ID));
+ result.addAll(createNavigatorItems(connectedViews, parentElement,
+ false));
+ connectedViews = getChildrenByType(
+ Collections.singleton(sv),
+ ComrelVisualIDRegistry
+ .getType(SingleQueuedUnitSingleQueuedUnitHelperUnitsCompartmentEditPart.VISUAL_ID));
+ connectedViews = getChildrenByType(connectedViews,
+ ComrelVisualIDRegistry
+ .getType(MultiFeatureUnit4EditPart.VISUAL_ID));
+ result.addAll(createNavigatorItems(connectedViews, parentElement,
+ false));
+ connectedViews = getChildrenByType(
+ Collections.singleton(sv),
+ ComrelVisualIDRegistry
+ .getType(SingleQueuedUnitSingleQueuedUnitHelperUnitsCompartmentEditPart.VISUAL_ID));
+ connectedViews = getChildrenByType(connectedViews,
+ ComrelVisualIDRegistry
+ .getType(SingleFilterUnit4EditPart.VISUAL_ID));
+ result.addAll(createNavigatorItems(connectedViews, parentElement,
+ false));
+ connectedViews = getChildrenByType(
+ Collections.singleton(sv),
+ ComrelVisualIDRegistry
+ .getType(SingleQueuedUnitSingleQueuedUnitHelperUnitsCompartmentEditPart.VISUAL_ID));
+ connectedViews = getChildrenByType(connectedViews,
+ ComrelVisualIDRegistry
+ .getType(MultiFilterUnit4EditPart.VISUAL_ID));
+ result.addAll(createNavigatorItems(connectedViews, parentElement,
+ false));
+ connectedViews = getChildrenByType(
+ Collections.singleton(sv),
+ ComrelVisualIDRegistry
+ .getType(SingleQueuedUnitSingleQueuedUnitRefactoringUnitCompartmentEditPart.VISUAL_ID));
+ connectedViews = getChildrenByType(connectedViews,
+ ComrelVisualIDRegistry
+ .getType(SingleQueuedUnit5EditPart.VISUAL_ID));
+ result.addAll(createNavigatorItems(connectedViews, parentElement,
+ false));
+ connectedViews = getChildrenByType(
+ Collections.singleton(sv),
+ ComrelVisualIDRegistry
+ .getType(SingleQueuedUnitSingleQueuedUnitRefactoringUnitCompartmentEditPart.VISUAL_ID));
+ connectedViews = getChildrenByType(connectedViews,
+ ComrelVisualIDRegistry
+ .getType(SequentialUnit4EditPart.VISUAL_ID));
+ result.addAll(createNavigatorItems(connectedViews, parentElement,
+ false));
+ connectedViews = getChildrenByType(
+ Collections.singleton(sv),
+ ComrelVisualIDRegistry
+ .getType(SingleQueuedUnitSingleQueuedUnitRefactoringUnitCompartmentEditPart.VISUAL_ID));
+ connectedViews = getChildrenByType(connectedViews,
+ ComrelVisualIDRegistry
+ .getType(ConditionalUnit4EditPart.VISUAL_ID));
+ result.addAll(createNavigatorItems(connectedViews, parentElement,
+ false));
+ connectedViews = getChildrenByType(
+ Collections.singleton(sv),
+ ComrelVisualIDRegistry
+ .getType(SingleQueuedUnitSingleQueuedUnitRefactoringUnitCompartmentEditPart.VISUAL_ID));
+ connectedViews = getChildrenByType(connectedViews,
+ ComrelVisualIDRegistry
+ .getType(AtomicUnit4EditPart.VISUAL_ID));
+ result.addAll(createNavigatorItems(connectedViews, parentElement,
+ false));
+ return result.toArray();
+ }
+
+ case CartesianQueuedUnit7EditPart.VISUAL_ID: {
+ LinkedList<ComrelAbstractNavigatorItem> result = new LinkedList<ComrelAbstractNavigatorItem>();
+ Node sv = (Node) view;
+ Collection<View> connectedViews;
+ connectedViews = getChildrenByType(Collections.singleton(sv),
+ ComrelVisualIDRegistry
+ .getType(SingleInputPort2EditPart.VISUAL_ID));
+ result.addAll(createNavigatorItems(connectedViews, parentElement,
+ false));
+ connectedViews = getChildrenByType(Collections.singleton(sv),
+ ComrelVisualIDRegistry
+ .getType(MultiInputPortEditPart.VISUAL_ID));
+ result.addAll(createNavigatorItems(connectedViews, parentElement,
+ false));
+ connectedViews = getChildrenByType(
+ Collections.singleton(sv),
+ ComrelVisualIDRegistry
+ .getType(CartesianQueuedUnitCartesianQueuedUnitRefactoringUnitCompartment7EditPart.VISUAL_ID));
+ connectedViews = getChildrenByType(connectedViews,
+ ComrelVisualIDRegistry
+ .getType(CartesianQueuedUnit2EditPart.VISUAL_ID));
+ result.addAll(createNavigatorItems(connectedViews, parentElement,
+ false));
+ connectedViews = getChildrenByType(
+ Collections.singleton(sv),
+ ComrelVisualIDRegistry
+ .getType(CartesianQueuedUnitCartesianQueuedUnitRefactoringUnitCompartment7EditPart.VISUAL_ID));
+ connectedViews = getChildrenByType(connectedViews,
+ ComrelVisualIDRegistry
+ .getType(ParallelQueuedUnit2EditPart.VISUAL_ID));
+ result.addAll(createNavigatorItems(connectedViews, parentElement,
+ false));
+ connectedViews = getChildrenByType(
+ Collections.singleton(sv),
+ ComrelVisualIDRegistry
+ .getType(CartesianQueuedUnitCartesianQueuedUnitHelperUnitsCompartment7EditPart.VISUAL_ID));
+ connectedViews = getChildrenByType(connectedViews,
+ ComrelVisualIDRegistry
+ .getType(SingleFeatureUnitEditPart.VISUAL_ID));
+ result.addAll(createNavigatorItems(connectedViews, parentElement,
+ false));
+ connectedViews = getChildrenByType(
+ Collections.singleton(sv),
+ ComrelVisualIDRegistry
+ .getType(CartesianQueuedUnitCartesianQueuedUnitHelperUnitsCompartment7EditPart.VISUAL_ID));
+ connectedViews = getChildrenByType(connectedViews,
+ ComrelVisualIDRegistry
+ .getType(MultiFeatureUnitEditPart.VISUAL_ID));
+ result.addAll(createNavigatorItems(connectedViews, parentElement,
+ false));
+ connectedViews = getChildrenByType(
+ Collections.singleton(sv),
+ ComrelVisualIDRegistry
+ .getType(CartesianQueuedUnitCartesianQueuedUnitHelperUnitsCompartment7EditPart.VISUAL_ID));
+ connectedViews = getChildrenByType(connectedViews,
+ ComrelVisualIDRegistry
+ .getType(SingleFilterUnitEditPart.VISUAL_ID));
+ result.addAll(createNavigatorItems(connectedViews, parentElement,
+ false));
+ connectedViews = getChildrenByType(
+ Collections.singleton(sv),
+ ComrelVisualIDRegistry
+ .getType(CartesianQueuedUnitCartesianQueuedUnitHelperUnitsCompartment7EditPart.VISUAL_ID));
+ connectedViews = getChildrenByType(connectedViews,
+ ComrelVisualIDRegistry
+ .getType(MultiFilterUnitEditPart.VISUAL_ID));
+ result.addAll(createNavigatorItems(connectedViews, parentElement,
+ false));
+ connectedViews = getChildrenByType(
+ Collections.singleton(sv),
+ ComrelVisualIDRegistry
+ .getType(CartesianQueuedUnitCartesianQueuedUnitRefactoringUnitCompartment7EditPart.VISUAL_ID));
+ connectedViews = getChildrenByType(connectedViews,
+ ComrelVisualIDRegistry
+ .getType(SingleQueuedUnit2EditPart.VISUAL_ID));
+ result.addAll(createNavigatorItems(connectedViews, parentElement,
+ false));
+ connectedViews = getChildrenByType(
+ Collections.singleton(sv),
+ ComrelVisualIDRegistry
+ .getType(CartesianQueuedUnitCartesianQueuedUnitRefactoringUnitCompartment7EditPart.VISUAL_ID));
+ connectedViews = getChildrenByType(connectedViews,
+ ComrelVisualIDRegistry
+ .getType(SequentialUnit2EditPart.VISUAL_ID));
+ result.addAll(createNavigatorItems(connectedViews, parentElement,
+ false));
+ connectedViews = getChildrenByType(
+ Collections.singleton(sv),
+ ComrelVisualIDRegistry
+ .getType(CartesianQueuedUnitCartesianQueuedUnitRefactoringUnitCompartment7EditPart.VISUAL_ID));
+ connectedViews = getChildrenByType(connectedViews,
+ ComrelVisualIDRegistry
+ .getType(ConditionalUnit2EditPart.VISUAL_ID));
+ result.addAll(createNavigatorItems(connectedViews, parentElement,
+ false));
+ connectedViews = getChildrenByType(
+ Collections.singleton(sv),
+ ComrelVisualIDRegistry
+ .getType(CartesianQueuedUnitCartesianQueuedUnitRefactoringUnitCompartment7EditPart.VISUAL_ID));
+ connectedViews = getChildrenByType(connectedViews,
+ ComrelVisualIDRegistry
+ .getType(AtomicUnit2EditPart.VISUAL_ID));
+ result.addAll(createNavigatorItems(connectedViews, parentElement,
+ false));
+ return result.toArray();
+ }
+
+ case AtomicUnit3EditPart.VISUAL_ID: {
+ LinkedList<ComrelAbstractNavigatorItem> result = new LinkedList<ComrelAbstractNavigatorItem>();
+ Node sv = (Node) view;
+ Collection<View> connectedViews;
+ connectedViews = getChildrenByType(Collections.singleton(sv),
+ ComrelVisualIDRegistry
+ .getType(SingleInputPort9EditPart.VISUAL_ID));
+ result.addAll(createNavigatorItems(connectedViews, parentElement,
+ false));
+ return result.toArray();
+ }
+
+ case ParallelQueuedUnit5EditPart.VISUAL_ID: {
+ LinkedList<ComrelAbstractNavigatorItem> result = new LinkedList<ComrelAbstractNavigatorItem>();
+ Node sv = (Node) view;
+ Collection<View> connectedViews;
+ connectedViews = getChildrenByType(Collections.singleton(sv),
+ ComrelVisualIDRegistry
+ .getType(SingleInputPort3EditPart.VISUAL_ID));
+ result.addAll(createNavigatorItems(connectedViews, parentElement,
+ false));
+ connectedViews = getChildrenByType(Collections.singleton(sv),
+ ComrelVisualIDRegistry
+ .getType(MultiInputPort2EditPart.VISUAL_ID));
+ result.addAll(createNavigatorItems(connectedViews, parentElement,
+ false));
+ connectedViews = getChildrenByType(
+ Collections.singleton(sv),
+ ComrelVisualIDRegistry
+ .getType(ParallelQueuedUnitParallelQueuedUnitRefactoringUnitsCompartment4EditPart.VISUAL_ID));
+ connectedViews = getChildrenByType(connectedViews,
+ ComrelVisualIDRegistry
+ .getType(CartesianQueuedUnit3EditPart.VISUAL_ID));
+ result.addAll(createNavigatorItems(connectedViews, parentElement,
+ false));
+ connectedViews = getChildrenByType(
+ Collections.singleton(sv),
+ ComrelVisualIDRegistry
+ .getType(ParallelQueuedUnitParallelQueuedUnitRefactoringUnitsCompartment4EditPart.VISUAL_ID));
+ connectedViews = getChildrenByType(connectedViews,
+ ComrelVisualIDRegistry
+ .getType(ParallelQueuedUnit4EditPart.VISUAL_ID));
+ result.addAll(createNavigatorItems(connectedViews, parentElement,
+ false));
+ connectedViews = getChildrenByType(
+ Collections.singleton(sv),
+ ComrelVisualIDRegistry
+ .getType(ParallelQueuedUnitParallelQueuedUnitHelperUnitsCompartment4EditPart.VISUAL_ID));
+ connectedViews = getChildrenByType(connectedViews,
+ ComrelVisualIDRegistry
+ .getType(SingleFeatureUnit2EditPart.VISUAL_ID));
+ result.addAll(createNavigatorItems(connectedViews, parentElement,
+ false));
+ connectedViews = getChildrenByType(
+ Collections.singleton(sv),
+ ComrelVisualIDRegistry
+ .getType(ParallelQueuedUnitParallelQueuedUnitHelperUnitsCompartment4EditPart.VISUAL_ID));
+ connectedViews = getChildrenByType(connectedViews,
+ ComrelVisualIDRegistry
+ .getType(MultiFeatureUnit2EditPart.VISUAL_ID));
+ result.addAll(createNavigatorItems(connectedViews, parentElement,
+ false));
+ connectedViews = getChildrenByType(
+ Collections.singleton(sv),
+ ComrelVisualIDRegistry
+ .getType(ParallelQueuedUnitParallelQueuedUnitHelperUnitsCompartment4EditPart.VISUAL_ID));
+ connectedViews = getChildrenByType(connectedViews,
+ ComrelVisualIDRegistry
+ .getType(SingleFilterUnit2EditPart.VISUAL_ID));
+ result.addAll(createNavigatorItems(connectedViews, parentElement,
+ false));
+ connectedViews = getChildrenByType(
+ Collections.singleton(sv),
+ ComrelVisualIDRegistry
+ .getType(ParallelQueuedUnitParallelQueuedUnitHelperUnitsCompartment4EditPart.VISUAL_ID));
+ connectedViews = getChildrenByType(connectedViews,
+ ComrelVisualIDRegistry
+ .getType(MultiFilterUnit2EditPart.VISUAL_ID));
+ result.addAll(createNavigatorItems(connectedViews, parentElement,
+ false));
+ connectedViews = getChildrenByType(
+ Collections.singleton(sv),
+ ComrelVisualIDRegistry
+ .getType(ParallelQueuedUnitParallelQueuedUnitRefactoringUnitsCompartment4EditPart.VISUAL_ID));
+ connectedViews = getChildrenByType(connectedViews,
+ ComrelVisualIDRegistry
+ .getType(SingleQueuedUnit3EditPart.VISUAL_ID));
+ result.addAll(createNavigatorItems(connectedViews, parentElement,
+ false));
+ connectedViews = getChildrenByType(
+ Collections.singleton(sv),
+ ComrelVisualIDRegistry
+ .getType(ParallelQueuedUnitParallelQueuedUnitRefactoringUnitsCompartment4EditPart.VISUAL_ID));
+ connectedViews = getChildrenByType(connectedViews,
+ ComrelVisualIDRegistry
+ .getType(SequentialUnit3EditPart.VISUAL_ID));
+ result.addAll(createNavigatorItems(connectedViews, parentElement,
+ false));
+ connectedViews = getChildrenByType(
+ Collections.singleton(sv),
+ ComrelVisualIDRegistry
+ .getType(ParallelQueuedUnitParallelQueuedUnitRefactoringUnitsCompartment4EditPart.VISUAL_ID));
+ connectedViews = getChildrenByType(connectedViews,
+ ComrelVisualIDRegistry
+ .getType(ConditionalUnit3EditPart.VISUAL_ID));
+ result.addAll(createNavigatorItems(connectedViews, parentElement,
+ false));
+ connectedViews = getChildrenByType(
+ Collections.singleton(sv),
+ ComrelVisualIDRegistry
+ .getType(ParallelQueuedUnitParallelQueuedUnitRefactoringUnitsCompartment4EditPart.VISUAL_ID));
+ connectedViews = getChildrenByType(connectedViews,
+ ComrelVisualIDRegistry
+ .getType(AtomicUnit3EditPart.VISUAL_ID));
+ result.addAll(createNavigatorItems(connectedViews, parentElement,
+ false));
+ return result.toArray();
+ }
+
+ case MultiInputPortEditPart.VISUAL_ID: {
+ LinkedList<ComrelAbstractNavigatorItem> result = new LinkedList<ComrelAbstractNavigatorItem>();
+ Node sv = (Node) view;
+ ComrelNavigatorGroup incominglinks = new ComrelNavigatorGroup(
+ Messages.NavigatorGroupName_MultiInputPort_3002_incominglinks,
+ "icons/incomingLinksNavigatorGroup.gif", parentElement); //$NON-NLS-1$
+ ComrelNavigatorGroup outgoinglinks = new ComrelNavigatorGroup(
+ Messages.NavigatorGroupName_MultiInputPort_3002_outgoinglinks,
+ "icons/outgoingLinksNavigatorGroup.gif", parentElement); //$NON-NLS-1$
+ Collection<View> connectedViews;
+ connectedViews = getIncomingLinksByType(Collections.singleton(sv),
+ ComrelVisualIDRegistry
+ .getType(MultiPortMappingEditPart.VISUAL_ID));
+ incominglinks.addChildren(createNavigatorItems(connectedViews,
+ incominglinks, true));
+ connectedViews = getOutgoingLinksByType(Collections.singleton(sv),
+ ComrelVisualIDRegistry
+ .getType(MultiPortMappingEditPart.VISUAL_ID));
+ outgoinglinks.addChildren(createNavigatorItems(connectedViews,
+ outgoinglinks, true));
+ connectedViews = getOutgoingLinksByType(Collections.singleton(sv),
+ ComrelVisualIDRegistry
+ .getType(MultiSinglePortMappingEditPart.VISUAL_ID));
+ outgoinglinks.addChildren(createNavigatorItems(connectedViews,
+ outgoinglinks, true));
+ if (!incominglinks.isEmpty()) {
+ result.add(incominglinks);
+ }
+ if (!outgoinglinks.isEmpty()) {
+ result.add(outgoinglinks);
+ }
+ return result.toArray();
+ }
+
+ case SequentialUnit6EditPart.VISUAL_ID: {
+ LinkedList<ComrelAbstractNavigatorItem> result = new LinkedList<ComrelAbstractNavigatorItem>();
+ Node sv = (Node) view;
+ Collection<View> connectedViews;
+ connectedViews = getChildrenByType(Collections.singleton(sv),
+ ComrelVisualIDRegistry
+ .getType(SingleInputPort7EditPart.VISUAL_ID));
+ result.addAll(createNavigatorItems(connectedViews, parentElement,
+ false));
+ connectedViews = getChildrenByType(Collections.singleton(sv),
+ ComrelVisualIDRegistry
+ .getType(MultiInputPort8EditPart.VISUAL_ID));
+ result.addAll(createNavigatorItems(connectedViews, parentElement,
+ false));
+ connectedViews = getChildrenByType(
+ Collections.singleton(sv),
+ ComrelVisualIDRegistry
+ .getType(SequentialUnitSequentialUnitRefactoringUnitsCompartment5EditPart.VISUAL_ID));
+ connectedViews = getChildrenByType(connectedViews,
+ ComrelVisualIDRegistry
+ .getType(CartesianQueuedUnit5EditPart.VISUAL_ID));
+ result.addAll(createNavigatorItems(connectedViews, parentElement,
+ false));
+ connectedViews = getChildrenByType(
+ Collections.singleton(sv),
+ ComrelVisualIDRegistry
+ .getType(SequentialUnitSequentialUnitRefactoringUnitsCompartment5EditPart.VISUAL_ID));
+ connectedViews = getChildrenByType(connectedViews,
+ ComrelVisualIDRegistry
+ .getType(ParallelQueuedUnit6EditPart.VISUAL_ID));
+ result.addAll(createNavigatorItems(connectedViews, parentElement,
+ false));
+ connectedViews = getChildrenByType(
+ Collections.singleton(sv),
+ ComrelVisualIDRegistry
+ .getType(SequentialUnitSequentialUnitHelperUnitsCompartment5EditPart.VISUAL_ID));
+ connectedViews = getChildrenByType(connectedViews,
+ ComrelVisualIDRegistry
+ .getType(SingleFeatureUnit5EditPart.VISUAL_ID));
+ result.addAll(createNavigatorItems(connectedViews, parentElement,
+ false));
+ connectedViews = getChildrenByType(
+ Collections.singleton(sv),
+ ComrelVisualIDRegistry
+ .getType(SequentialUnitSequentialUnitHelperUnitsCompartment5EditPart.VISUAL_ID));
+ connectedViews = getChildrenByType(connectedViews,
+ ComrelVisualIDRegistry
+ .getType(MultiFeatureUnit5EditPart.VISUAL_ID));
+ result.addAll(createNavigatorItems(connectedViews, parentElement,
+ false));
+ connectedViews = getChildrenByType(
+ Collections.singleton(sv),
+ ComrelVisualIDRegistry
+ .getType(SequentialUnitSequentialUnitHelperUnitsCompartment5EditPart.VISUAL_ID));
+ connectedViews = getChildrenByType(connectedViews,
+ ComrelVisualIDRegistry
+ .getType(SingleFilterUnit5EditPart.VISUAL_ID));
+ result.addAll(createNavigatorItems(connectedViews, parentElement,
+ false));
+ connectedViews = getChildrenByType(
+ Collections.singleton(sv),
+ ComrelVisualIDRegistry
+ .getType(SequentialUnitSequentialUnitHelperUnitsCompartment5EditPart.VISUAL_ID));
+ connectedViews = getChildrenByType(connectedViews,
+ ComrelVisualIDRegistry
+ .getType(MultiFilterUnit5EditPart.VISUAL_ID));
+ result.addAll(createNavigatorItems(connectedViews, parentElement,
+ false));
+ connectedViews = getChildrenByType(
+ Collections.singleton(sv),
+ ComrelVisualIDRegistry
+ .getType(SequentialUnitSequentialUnitRefactoringUnitsCompartment5EditPart.VISUAL_ID));
+ connectedViews = getChildrenByType(connectedViews,
+ ComrelVisualIDRegistry
+ .getType(SingleQueuedUnit6EditPart.VISUAL_ID));
+ result.addAll(createNavigatorItems(connectedViews, parentElement,
+ false));
+ connectedViews = getChildrenByType(
+ Collections.singleton(sv),
+ ComrelVisualIDRegistry
+ .getType(SequentialUnitSequentialUnitRefactoringUnitsCompartment5EditPart.VISUAL_ID));
+ connectedViews = getChildrenByType(connectedViews,
+ ComrelVisualIDRegistry
+ .getType(SequentialUnit6EditPart.VISUAL_ID));
+ result.addAll(createNavigatorItems(connectedViews, parentElement,
+ false));
+ connectedViews = getChildrenByType(
+ Collections.singleton(sv),
+ ComrelVisualIDRegistry
+ .getType(SequentialUnitSequentialUnitRefactoringUnitsCompartment5EditPart.VISUAL_ID));
+ connectedViews = getChildrenByType(connectedViews,
+ ComrelVisualIDRegistry
+ .getType(ConditionalUnit5EditPart.VISUAL_ID));
+ result.addAll(createNavigatorItems(connectedViews, parentElement,
+ false));
+ connectedViews = getChildrenByType(
+ Collections.singleton(sv),
+ ComrelVisualIDRegistry
+ .getType(SequentialUnitSequentialUnitRefactoringUnitsCompartment5EditPart.VISUAL_ID));
+ connectedViews = getChildrenByType(connectedViews,
+ ComrelVisualIDRegistry
+ .getType(AtomicUnit5EditPart.VISUAL_ID));
+ result.addAll(createNavigatorItems(connectedViews, parentElement,
+ false));
+ return result.toArray();
+ }
+
+ case MultiFeatureUnit4EditPart.VISUAL_ID: {
+ LinkedList<ComrelAbstractNavigatorItem> result = new LinkedList<ComrelAbstractNavigatorItem>();
+ Node sv = (Node) view;
+ Collection<View> connectedViews;
+ connectedViews = getChildrenByType(Collections.singleton(sv),
+ ComrelVisualIDRegistry
+ .getType(SingleInputPort5EditPart.VISUAL_ID));
+ result.addAll(createNavigatorItems(connectedViews, parentElement,
+ false));
+ connectedViews = getChildrenByType(Collections.singleton(sv),
+ ComrelVisualIDRegistry
+ .getType(MultiInputPort4EditPart.VISUAL_ID));
+ result.addAll(createNavigatorItems(connectedViews, parentElement,
+ false));
+ connectedViews = getChildrenByType(Collections.singleton(sv),
+ ComrelVisualIDRegistry
+ .getType(MultiOutputPortEditPart.VISUAL_ID));
+ result.addAll(createNavigatorItems(connectedViews, parentElement,
+ false));
+ return result.toArray();
+ }
+
+ case SingleFilterUnit2EditPart.VISUAL_ID: {
+ LinkedList<ComrelAbstractNavigatorItem> result = new LinkedList<ComrelAbstractNavigatorItem>();
+ Node sv = (Node) view;
+ Collection<View> connectedViews;
+ connectedViews = getChildrenByType(Collections.singleton(sv),
+ ComrelVisualIDRegistry
+ .getType(MultiInputPort5EditPart.VISUAL_ID));
+ result.addAll(createNavigatorItems(connectedViews, parentElement,
+ false));
+ connectedViews = getChildrenByType(Collections.singleton(sv),
+ ComrelVisualIDRegistry
+ .getType(SingleOutputPort2EditPart.VISUAL_ID));
+ result.addAll(createNavigatorItems(connectedViews, parentElement,
+ false));
+ return result.toArray();
+ }
+
+ case SingleInputPort6EditPart.VISUAL_ID: {
+ LinkedList<ComrelAbstractNavigatorItem> result = new LinkedList<ComrelAbstractNavigatorItem>();
+ Node sv = (Node) view;
+ ComrelNavigatorGroup incominglinks = new ComrelNavigatorGroup(
+ Messages.NavigatorGroupName_SingleInputPort_3023_incominglinks,
+ "icons/incomingLinksNavigatorGroup.gif", parentElement); //$NON-NLS-1$
+ ComrelNavigatorGroup outgoinglinks = new ComrelNavigatorGroup(
+ Messages.NavigatorGroupName_SingleInputPort_3023_outgoinglinks,
+ "icons/outgoingLinksNavigatorGroup.gif", parentElement); //$NON-NLS-1$
+ Collection<View> connectedViews;
+ connectedViews = getIncomingLinksByType(Collections.singleton(sv),
+ ComrelVisualIDRegistry
+ .getType(SinglePortMappingEditPart.VISUAL_ID));
+ incominglinks.addChildren(createNavigatorItems(connectedViews,
+ incominglinks, true));
+ connectedViews = getOutgoingLinksByType(Collections.singleton(sv),
+ ComrelVisualIDRegistry
+ .getType(SinglePortMappingEditPart.VISUAL_ID));
+ outgoinglinks.addChildren(createNavigatorItems(connectedViews,
+ outgoinglinks, true));
+ connectedViews = getIncomingLinksByType(Collections.singleton(sv),
+ ComrelVisualIDRegistry
+ .getType(MultiSinglePortMappingEditPart.VISUAL_ID));
+ incominglinks.addChildren(createNavigatorItems(connectedViews,
+ incominglinks, true));
+ if (!incominglinks.isEmpty()) {
+ result.add(incominglinks);
+ }
+ if (!outgoinglinks.isEmpty()) {
+ result.add(outgoinglinks);
+ }
+ return result.toArray();
+ }
+
+ case CartesianQueuedUnit2EditPart.VISUAL_ID: {
+ LinkedList<ComrelAbstractNavigatorItem> result = new LinkedList<ComrelAbstractNavigatorItem>();
+ Node sv = (Node) view;
+ Collection<View> connectedViews;
+ connectedViews = getChildrenByType(Collections.singleton(sv),
+ ComrelVisualIDRegistry
+ .getType(SingleInputPort2EditPart.VISUAL_ID));
+ result.addAll(createNavigatorItems(connectedViews, parentElement,
+ false));
+ connectedViews = getChildrenByType(Collections.singleton(sv),
+ ComrelVisualIDRegistry
+ .getType(MultiInputPortEditPart.VISUAL_ID));
+ result.addAll(createNavigatorItems(connectedViews, parentElement,
+ false));
+ connectedViews = getChildrenByType(
+ Collections.singleton(sv),
+ ComrelVisualIDRegistry
+ .getType(CartesianQueuedUnitCartesianQueuedUnitRefactoringUnitCompartment2EditPart.VISUAL_ID));
+ connectedViews = getChildrenByType(connectedViews,
+ ComrelVisualIDRegistry
+ .getType(CartesianQueuedUnit2EditPart.VISUAL_ID));
+ result.addAll(createNavigatorItems(connectedViews, parentElement,
+ false));
+ connectedViews = getChildrenByType(
+ Collections.singleton(sv),
+ ComrelVisualIDRegistry
+ .getType(CartesianQueuedUnitCartesianQueuedUnitRefactoringUnitCompartment2EditPart.VISUAL_ID));
+ connectedViews = getChildrenByType(connectedViews,
+ ComrelVisualIDRegistry
+ .getType(ParallelQueuedUnit2EditPart.VISUAL_ID));
+ result.addAll(createNavigatorItems(connectedViews, parentElement,
+ false));
+ connectedViews = getChildrenByType(
+ Collections.singleton(sv),
+ ComrelVisualIDRegistry
+ .getType(CartesianQueuedUnitCartesianQueuedUnitHelperUnitsCompartment2EditPart.VISUAL_ID));
+ connectedViews = getChildrenByType(connectedViews,
+ ComrelVisualIDRegistry
+ .getType(SingleFeatureUnitEditPart.VISUAL_ID));
+ result.addAll(createNavigatorItems(connectedViews, parentElement,
+ false));
+ connectedViews = getChildrenByType(
+ Collections.singleton(sv),
+ ComrelVisualIDRegistry
+ .getType(CartesianQueuedUnitCartesianQueuedUnitHelperUnitsCompartment2EditPart.VISUAL_ID));
+ connectedViews = getChildrenByType(connectedViews,
+ ComrelVisualIDRegistry
+ .getType(MultiFeatureUnitEditPart.VISUAL_ID));
+ result.addAll(createNavigatorItems(connectedViews, parentElement,
+ false));
+ connectedViews = getChildrenByType(
+ Collections.singleton(sv),
+ ComrelVisualIDRegistry
+ .getType(CartesianQueuedUnitCartesianQueuedUnitHelperUnitsCompartment2EditPart.VISUAL_ID));
+ connectedViews = getChildrenByType(connectedViews,
+ ComrelVisualIDRegistry
+ .getType(SingleFilterUnitEditPart.VISUAL_ID));
+ result.addAll(createNavigatorItems(connectedViews, parentElement,
+ false));
+ connectedViews = getChildrenByType(
+ Collections.singleton(sv),
+ ComrelVisualIDRegistry
+ .getType(CartesianQueuedUnitCartesianQueuedUnitHelperUnitsCompartment2EditPart.VISUAL_ID));
+ connectedViews = getChildrenByType(connectedViews,
+ ComrelVisualIDRegistry
+ .getType(MultiFilterUnitEditPart.VISUAL_ID));
+ result.addAll(createNavigatorItems(connectedViews, parentElement,
+ false));
+ connectedViews = getChildrenByType(
+ Collections.singleton(sv),
+ ComrelVisualIDRegistry
+ .getType(CartesianQueuedUnitCartesianQueuedUnitRefactoringUnitCompartment2EditPart.VISUAL_ID));
+ connectedViews = getChildrenByType(connectedViews,
+ ComrelVisualIDRegistry
+ .getType(SingleQueuedUnit2EditPart.VISUAL_ID));
+ result.addAll(createNavigatorItems(connectedViews, parentElement,
+ false));
+ connectedViews = getChildrenByType(
+ Collections.singleton(sv),
+ ComrelVisualIDRegistry
+ .getType(CartesianQueuedUnitCartesianQueuedUnitRefactoringUnitCompartment2EditPart.VISUAL_ID));
+ connectedViews = getChildrenByType(connectedViews,
+ ComrelVisualIDRegistry
+ .getType(SequentialUnit2EditPart.VISUAL_ID));
+ result.addAll(createNavigatorItems(connectedViews, parentElement,
+ false));
+ connectedViews = getChildrenByType(
+ Collections.singleton(sv),
+ ComrelVisualIDRegistry
+ .getType(CartesianQueuedUnitCartesianQueuedUnitRefactoringUnitCompartment2EditPart.VISUAL_ID));
+ connectedViews = getChildrenByType(connectedViews,
+ ComrelVisualIDRegistry
+ .getType(ConditionalUnit2EditPart.VISUAL_ID));
+ result.addAll(createNavigatorItems(connectedViews, parentElement,
+ false));
+ connectedViews = getChildrenByType(
+ Collections.singleton(sv),
+ ComrelVisualIDRegistry
+ .getType(CartesianQueuedUnitCartesianQueuedUnitRefactoringUnitCompartment2EditPart.VISUAL_ID));
+ connectedViews = getChildrenByType(connectedViews,
+ ComrelVisualIDRegistry
+ .getType(AtomicUnit2EditPart.VISUAL_ID));
+ result.addAll(createNavigatorItems(connectedViews, parentElement,
+ false));
+ return result.toArray();
+ }
+
+ case ParallelQueuedUnit6EditPart.VISUAL_ID: {
+ LinkedList<ComrelAbstractNavigatorItem> result = new LinkedList<ComrelAbstractNavigatorItem>();
+ Node sv = (Node) view;
+ Collection<View> connectedViews;
+ connectedViews = getChildrenByType(Collections.singleton(sv),
+ ComrelVisualIDRegistry
+ .getType(SingleInputPort3EditPart.VISUAL_ID));
+ result.addAll(createNavigatorItems(connectedViews, parentElement,
+ false));
+ connectedViews = getChildrenByType(Collections.singleton(sv),
+ ComrelVisualIDRegistry
+ .getType(MultiInputPort2EditPart.VISUAL_ID));
+ result.addAll(createNavigatorItems(connectedViews, parentElement,
+ false));
+ connectedViews = getChildrenByType(
+ Collections.singleton(sv),
+ ComrelVisualIDRegistry
+ .getType(ParallelQueuedUnitParallelQueuedUnitRefactoringUnitsCompartment5EditPart.VISUAL_ID));
+ connectedViews = getChildrenByType(connectedViews,
+ ComrelVisualIDRegistry
+ .getType(CartesianQueuedUnit3EditPart.VISUAL_ID));
+ result.addAll(createNavigatorItems(connectedViews, parentElement,
+ false));
+ connectedViews = getChildrenByType(
+ Collections.singleton(sv),
+ ComrelVisualIDRegistry
+ .getType(ParallelQueuedUnitParallelQueuedUnitRefactoringUnitsCompartment5EditPart.VISUAL_ID));
+ connectedViews = getChildrenByType(connectedViews,
+ ComrelVisualIDRegistry
+ .getType(ParallelQueuedUnit4EditPart.VISUAL_ID));
+ result.addAll(createNavigatorItems(connectedViews, parentElement,
+ false));
+ connectedViews = getChildrenByType(
+ Collections.singleton(sv),
+ ComrelVisualIDRegistry
+ .getType(ParallelQueuedUnitParallelQueuedUnitHelperUnitsCompartment5EditPart.VISUAL_ID));
+ connectedViews = getChildrenByType(connectedViews,
+ ComrelVisualIDRegistry
+ .getType(SingleFeatureUnit2EditPart.VISUAL_ID));
+ result.addAll(createNavigatorItems(connectedViews, parentElement,
+ false));
+ connectedViews = getChildrenByType(
+ Collections.singleton(sv),
+ ComrelVisualIDRegistry
+ .getType(ParallelQueuedUnitParallelQueuedUnitHelperUnitsCompartment5EditPart.VISUAL_ID));
+ connectedViews = getChildrenByType(connectedViews,
+ ComrelVisualIDRegistry
+ .getType(MultiFeatureUnit2EditPart.VISUAL_ID));
+ result.addAll(createNavigatorItems(connectedViews, parentElement,
+ false));
+ connectedViews = getChildrenByType(
+ Collections.singleton(sv),
+ ComrelVisualIDRegistry
+ .getType(ParallelQueuedUnitParallelQueuedUnitHelperUnitsCompartment5EditPart.VISUAL_ID));
+ connectedViews = getChildrenByType(connectedViews,
+ ComrelVisualIDRegistry
+ .getType(SingleFilterUnit2EditPart.VISUAL_ID));
+ result.addAll(createNavigatorItems(connectedViews, parentElement,
+ false));
+ connectedViews = getChildrenByType(
+ Collections.singleton(sv),
+ ComrelVisualIDRegistry
+ .getType(ParallelQueuedUnitParallelQueuedUnitHelperUnitsCompartment5EditPart.VISUAL_ID));
+ connectedViews = getChildrenByType(connectedViews,
+ ComrelVisualIDRegistry
+ .getType(MultiFilterUnit2EditPart.VISUAL_ID));
+ result.addAll(createNavigatorItems(connectedViews, parentElement,
+ false));
+ connectedViews = getChildrenByType(
+ Collections.singleton(sv),
+ ComrelVisualIDRegistry
+ .getType(ParallelQueuedUnitParallelQueuedUnitRefactoringUnitsCompartment5EditPart.VISUAL_ID));
+ connectedViews = getChildrenByType(connectedViews,
+ ComrelVisualIDRegistry
+ .getType(SingleQueuedUnit3EditPart.VISUAL_ID));
+ result.addAll(createNavigatorItems(connectedViews, parentElement,
+ false));
+ connectedViews = getChildrenByType(
+ Collections.singleton(sv),
+ ComrelVisualIDRegistry
+ .getType(ParallelQueuedUnitParallelQueuedUnitRefactoringUnitsCompartment5EditPart.VISUAL_ID));
+ connectedViews = getChildrenByType(connectedViews,
+ ComrelVisualIDRegistry
+ .getType(SequentialUnit3EditPart.VISUAL_ID));
+ result.addAll(createNavigatorItems(connectedViews, parentElement,
+ false));
+ connectedViews = getChildrenByType(
+ Collections.singleton(sv),
+ ComrelVisualIDRegistry
+ .getType(ParallelQueuedUnitParallelQueuedUnitRefactoringUnitsCompartment5EditPart.VISUAL_ID));
+ connectedViews = getChildrenByType(connectedViews,
+ ComrelVisualIDRegistry
+ .getType(ConditionalUnit3EditPart.VISUAL_ID));
+ result.addAll(createNavigatorItems(connectedViews, parentElement,
+ false));
+ connectedViews = getChildrenByType(
+ Collections.singleton(sv),
+ ComrelVisualIDRegistry
+ .getType(ParallelQueuedUnitParallelQueuedUnitRefactoringUnitsCompartment5EditPart.VISUAL_ID));
+ connectedViews = getChildrenByType(connectedViews,
+ ComrelVisualIDRegistry
+ .getType(AtomicUnit3EditPart.VISUAL_ID));
+ result.addAll(createNavigatorItems(connectedViews, parentElement,
+ false));
+ return result.toArray();
+ }
+
+ case SingleInputPort7EditPart.VISUAL_ID: {
+ LinkedList<ComrelAbstractNavigatorItem> result = new LinkedList<ComrelAbstractNavigatorItem>();
+ Node sv = (Node) view;
+ ComrelNavigatorGroup incominglinks = new ComrelNavigatorGroup(
+ Messages.NavigatorGroupName_SingleInputPort_3027_incominglinks,
+ "icons/incomingLinksNavigatorGroup.gif", parentElement); //$NON-NLS-1$
+ ComrelNavigatorGroup outgoinglinks = new ComrelNavigatorGroup(
+ Messages.NavigatorGroupName_SingleInputPort_3027_outgoinglinks,
+ "icons/outgoingLinksNavigatorGroup.gif", parentElement); //$NON-NLS-1$
+ Collection<View> connectedViews;
+ connectedViews = getIncomingLinksByType(Collections.singleton(sv),
+ ComrelVisualIDRegistry
+ .getType(SinglePortMappingEditPart.VISUAL_ID));
+ incominglinks.addChildren(createNavigatorItems(connectedViews,
+ incominglinks, true));
+ connectedViews = getOutgoingLinksByType(Collections.singleton(sv),
+ ComrelVisualIDRegistry
+ .getType(SinglePortMappingEditPart.VISUAL_ID));
+ outgoinglinks.addChildren(createNavigatorItems(connectedViews,
+ outgoinglinks, true));
+ connectedViews = getIncomingLinksByType(Collections.singleton(sv),
+ ComrelVisualIDRegistry
+ .getType(MultiSinglePortMappingEditPart.VISUAL_ID));
+ incominglinks.addChildren(createNavigatorItems(connectedViews,
+ incominglinks, true));
+ if (!incominglinks.isEmpty()) {
+ result.add(incominglinks);
+ }
+ if (!outgoinglinks.isEmpty()) {
+ result.add(outgoinglinks);
+ }
+ return result.toArray();
+ }
+
+ case MultiInputPort2EditPart.VISUAL_ID: {
+ LinkedList<ComrelAbstractNavigatorItem> result = new LinkedList<ComrelAbstractNavigatorItem>();
+ Node sv = (Node) view;
+ ComrelNavigatorGroup incominglinks = new ComrelNavigatorGroup(
+ Messages.NavigatorGroupName_MultiInputPort_3006_incominglinks,
+ "icons/incomingLinksNavigatorGroup.gif", parentElement); //$NON-NLS-1$
+ ComrelNavigatorGroup outgoinglinks = new ComrelNavigatorGroup(
+ Messages.NavigatorGroupName_MultiInputPort_3006_outgoinglinks,
+ "icons/outgoingLinksNavigatorGroup.gif", parentElement); //$NON-NLS-1$
+ Collection<View> connectedViews;
+ connectedViews = getIncomingLinksByType(Collections.singleton(sv),
+ ComrelVisualIDRegistry
+ .getType(MultiPortMappingEditPart.VISUAL_ID));
+ incominglinks.addChildren(createNavigatorItems(connectedViews,
+ incominglinks, true));
+ connectedViews = getOutgoingLinksByType(Collections.singleton(sv),
+ ComrelVisualIDRegistry
+ .getType(MultiPortMappingEditPart.VISUAL_ID));
+ outgoinglinks.addChildren(createNavigatorItems(connectedViews,
+ outgoinglinks, true));
+ connectedViews = getOutgoingLinksByType(Collections.singleton(sv),
+ ComrelVisualIDRegistry
+ .getType(MultiSinglePortMappingEditPart.VISUAL_ID));
+ outgoinglinks.addChildren(createNavigatorItems(connectedViews,
+ outgoinglinks, true));
+ if (!incominglinks.isEmpty()) {
+ result.add(incominglinks);
+ }
+ if (!outgoinglinks.isEmpty()) {
+ result.add(outgoinglinks);
+ }
+ return result.toArray();
+ }
+
+ case SingleInputPortEditPart.VISUAL_ID: {
+ LinkedList<ComrelAbstractNavigatorItem> result = new LinkedList<ComrelAbstractNavigatorItem>();
+ Node sv = (Node) view;
+ ComrelNavigatorGroup incominglinks = new ComrelNavigatorGroup(
+ Messages.NavigatorGroupName_SingleInputPort_2001_incominglinks,
+ "icons/incomingLinksNavigatorGroup.gif", parentElement); //$NON-NLS-1$
+ ComrelNavigatorGroup outgoinglinks = new ComrelNavigatorGroup(
+ Messages.NavigatorGroupName_SingleInputPort_2001_outgoinglinks,
+ "icons/outgoingLinksNavigatorGroup.gif", parentElement); //$NON-NLS-1$
+ Collection<View> connectedViews;
+ connectedViews = getIncomingLinksByType(Collections.singleton(sv),
+ ComrelVisualIDRegistry
+ .getType(SinglePortMappingEditPart.VISUAL_ID));
+ incominglinks.addChildren(createNavigatorItems(connectedViews,
+ incominglinks, true));
+ connectedViews = getOutgoingLinksByType(Collections.singleton(sv),
+ ComrelVisualIDRegistry
+ .getType(SinglePortMappingEditPart.VISUAL_ID));
+ outgoinglinks.addChildren(createNavigatorItems(connectedViews,
+ outgoinglinks, true));
+ connectedViews = getIncomingLinksByType(Collections.singleton(sv),
+ ComrelVisualIDRegistry
+ .getType(MultiSinglePortMappingEditPart.VISUAL_ID));
+ incominglinks.addChildren(createNavigatorItems(connectedViews,
+ incominglinks, true));
+ if (!incominglinks.isEmpty()) {
+ result.add(incominglinks);
+ }
+ if (!outgoinglinks.isEmpty()) {
+ result.add(outgoinglinks);
+ }
+ return result.toArray();
+ }
+
+ case MultiFilterUnit2EditPart.VISUAL_ID: {
+ LinkedList<ComrelAbstractNavigatorItem> result = new LinkedList<ComrelAbstractNavigatorItem>();
+ Node sv = (Node) view;
+ Collection<View> connectedViews;
+ connectedViews = getChildrenByType(Collections.singleton(sv),
+ ComrelVisualIDRegistry
+ .getType(MultiInputPort6EditPart.VISUAL_ID));
+ result.addAll(createNavigatorItems(connectedViews, parentElement,
+ false));
+ connectedViews = getChildrenByType(Collections.singleton(sv),
+ ComrelVisualIDRegistry
+ .getType(MultiOutputPort2EditPart.VISUAL_ID));
+ result.addAll(createNavigatorItems(connectedViews, parentElement,
+ false));
+ return result.toArray();
+ }
+
+ case SequentialUnit2EditPart.VISUAL_ID: {
+ LinkedList<ComrelAbstractNavigatorItem> result = new LinkedList<ComrelAbstractNavigatorItem>();
+ Node sv = (Node) view;
+ Collection<View> connectedViews;
+ connectedViews = getChildrenByType(Collections.singleton(sv),
+ ComrelVisualIDRegistry
+ .getType(SingleInputPort7EditPart.VISUAL_ID));
+ result.addAll(createNavigatorItems(connectedViews, parentElement,
+ false));
+ connectedViews = getChildrenByType(Collections.singleton(sv),
+ ComrelVisualIDRegistry
+ .getType(MultiInputPort8EditPart.VISUAL_ID));
+ result.addAll(createNavigatorItems(connectedViews, parentElement,
+ false));
+ connectedViews = getChildrenByType(
+ Collections.singleton(sv),
+ ComrelVisualIDRegistry
+ .getType(SequentialUnitSequentialUnitRefactoringUnitsCompartmentEditPart.VISUAL_ID));
+ connectedViews = getChildrenByType(connectedViews,
+ ComrelVisualIDRegistry
+ .getType(CartesianQueuedUnit5EditPart.VISUAL_ID));
+ result.addAll(createNavigatorItems(connectedViews, parentElement,
+ false));
+ connectedViews = getChildrenByType(
+ Collections.singleton(sv),
+ ComrelVisualIDRegistry
+ .getType(SequentialUnitSequentialUnitRefactoringUnitsCompartmentEditPart.VISUAL_ID));
+ connectedViews = getChildrenByType(connectedViews,
+ ComrelVisualIDRegistry
+ .getType(ParallelQueuedUnit6EditPart.VISUAL_ID));
+ result.addAll(createNavigatorItems(connectedViews, parentElement,
+ false));
+ connectedViews = getChildrenByType(
+ Collections.singleton(sv),
+ ComrelVisualIDRegistry
+ .getType(SequentialUnitSequentialUnitHelperUnitsCompartmentEditPart.VISUAL_ID));
+ connectedViews = getChildrenByType(connectedViews,
+ ComrelVisualIDRegistry
+ .getType(SingleFeatureUnit5EditPart.VISUAL_ID));
+ result.addAll(createNavigatorItems(connectedViews, parentElement,
+ false));
+ connectedViews = getChildrenByType(
+ Collections.singleton(sv),
+ ComrelVisualIDRegistry
+ .getType(SequentialUnitSequentialUnitHelperUnitsCompartmentEditPart.VISUAL_ID));
+ connectedViews = getChildrenByType(connectedViews,
+ ComrelVisualIDRegistry
+ .getType(MultiFeatureUnit5EditPart.VISUAL_ID));
+ result.addAll(createNavigatorItems(connectedViews, parentElement,
+ false));
+ connectedViews = getChildrenByType(
+ Collections.singleton(sv),
+ ComrelVisualIDRegistry
+ .getType(SequentialUnitSequentialUnitHelperUnitsCompartmentEditPart.VISUAL_ID));
+ connectedViews = getChildrenByType(connectedViews,
+ ComrelVisualIDRegistry
+ .getType(SingleFilterUnit5EditPart.VISUAL_ID));
+ result.addAll(createNavigatorItems(connectedViews, parentElement,
+ false));
+ connectedViews = getChildrenByType(
+ Collections.singleton(sv),
+ ComrelVisualIDRegistry
+ .getType(SequentialUnitSequentialUnitHelperUnitsCompartmentEditPart.VISUAL_ID));
+ connectedViews = getChildrenByType(connectedViews,
+ ComrelVisualIDRegistry
+ .getType(MultiFilterUnit5EditPart.VISUAL_ID));
+ result.addAll(createNavigatorItems(connectedViews, parentElement,
+ false));
+ connectedViews = getChildrenByType(
+ Collections.singleton(sv),
+ ComrelVisualIDRegistry
+ .getType(SequentialUnitSequentialUnitRefactoringUnitsCompartmentEditPart.VISUAL_ID));
+ connectedViews = getChildrenByType(connectedViews,
+ ComrelVisualIDRegistry
+ .getType(SingleQueuedUnit6EditPart.VISUAL_ID));
+ result.addAll(createNavigatorItems(connectedViews, parentElement,
+ false));
+ connectedViews = getChildrenByType(
+ Collections.singleton(sv),
+ ComrelVisualIDRegistry
+ .getType(SequentialUnitSequentialUnitRefactoringUnitsCompartmentEditPart.VISUAL_ID));
+ connectedViews = getChildrenByType(connectedViews,
+ ComrelVisualIDRegistry
+ .getType(SequentialUnit6EditPart.VISUAL_ID));
+ result.addAll(createNavigatorItems(connectedViews, parentElement,
+ false));
+ connectedViews = getChildrenByType(
+ Collections.singleton(sv),
+ ComrelVisualIDRegistry
+ .getType(SequentialUnitSequentialUnitRefactoringUnitsCompartmentEditPart.VISUAL_ID));
+ connectedViews = getChildrenByType(connectedViews,
+ ComrelVisualIDRegistry
+ .getType(ConditionalUnit5EditPart.VISUAL_ID));
+ result.addAll(createNavigatorItems(connectedViews, parentElement,
+ false));
+ connectedViews = getChildrenByType(
+ Collections.singleton(sv),
+ ComrelVisualIDRegistry
+ .getType(SequentialUnitSequentialUnitRefactoringUnitsCompartmentEditPart.VISUAL_ID));
+ connectedViews = getChildrenByType(connectedViews,
+ ComrelVisualIDRegistry
+ .getType(AtomicUnit5EditPart.VISUAL_ID));
+ result.addAll(createNavigatorItems(connectedViews, parentElement,
+ false));
+ return result.toArray();
+ }
+
+ case ConditionalUnit7EditPart.VISUAL_ID: {
+ LinkedList<ComrelAbstractNavigatorItem> result = new LinkedList<ComrelAbstractNavigatorItem>();
+ Node sv = (Node) view;
+ Collection<View> connectedViews;
+ connectedViews = getChildrenByType(Collections.singleton(sv),
+ ComrelVisualIDRegistry
+ .getType(SingleInputPort8EditPart.VISUAL_ID));
+ result.addAll(createNavigatorItems(connectedViews, parentElement,
+ false));
+ connectedViews = getChildrenByType(Collections.singleton(sv),
+ ComrelVisualIDRegistry
+ .getType(MultiInputPort9EditPart.VISUAL_ID));
+ result.addAll(createNavigatorItems(connectedViews, parentElement,
+ false));
+ connectedViews = getChildrenByType(
+ Collections.singleton(sv),
+ ComrelVisualIDRegistry
+ .getType(ConditionalUnitConditionalUnitThenCompartment6EditPart.VISUAL_ID));
+ connectedViews = getChildrenByType(connectedViews,
+ ComrelVisualIDRegistry
+ .getType(CartesianQueuedUnit6EditPart.VISUAL_ID));
+ result.addAll(createNavigatorItems(connectedViews, parentElement,
+ false));
+ connectedViews = getChildrenByType(
+ Collections.singleton(sv),
+ ComrelVisualIDRegistry
+ .getType(ConditionalUnitConditionalUnitThenCompartment6EditPart.VISUAL_ID));
+ connectedViews = getChildrenByType(connectedViews,
+ ComrelVisualIDRegistry
+ .getType(ParallelQueuedUnit3EditPart.VISUAL_ID));
+ result.addAll(createNavigatorItems(connectedViews, parentElement,
+ false));
+ connectedViews = getChildrenByType(
+ Collections.singleton(sv),
+ ComrelVisualIDRegistry
+ .getType(ConditionalUnitConditionalUnitElseCompartment6EditPart.VISUAL_ID));
+ connectedViews = getChildrenByType(connectedViews,
+ ComrelVisualIDRegistry
+ .getType(CartesianQueuedUnit7EditPart.VISUAL_ID));
+ result.addAll(createNavigatorItems(connectedViews, parentElement,
+ false));
+ connectedViews = getChildrenByType(
+ Collections.singleton(sv),
+ ComrelVisualIDRegistry
+ .getType(ConditionalUnitConditionalUnitElseCompartment6EditPart.VISUAL_ID));
+ connectedViews = getChildrenByType(connectedViews,
+ ComrelVisualIDRegistry
+ .getType(ParallelQueuedUnit7EditPart.VISUAL_ID));
+ result.addAll(createNavigatorItems(connectedViews, parentElement,
+ false));
+ connectedViews = getChildrenByType(
+ Collections.singleton(sv),
+ ComrelVisualIDRegistry
+ .getType(ConditionalUnitConditionalUnitHelperUnitsCompartment6EditPart.VISUAL_ID));
+ connectedViews = getChildrenByType(connectedViews,
+ ComrelVisualIDRegistry
+ .getType(SingleFeatureUnit3EditPart.VISUAL_ID));
+ result.addAll(createNavigatorItems(connectedViews, parentElement,
+ false));
+ connectedViews = getChildrenByType(
+ Collections.singleton(sv),
+ ComrelVisualIDRegistry
+ .getType(ConditionalUnitConditionalUnitHelperUnitsCompartment6EditPart.VISUAL_ID));
+ connectedViews = getChildrenByType(connectedViews,
+ ComrelVisualIDRegistry
+ .getType(MultiFeatureUnit3EditPart.VISUAL_ID));
+ result.addAll(createNavigatorItems(connectedViews, parentElement,
+ false));
+ connectedViews = getChildrenByType(
+ Collections.singleton(sv),
+ ComrelVisualIDRegistry
+ .getType(ConditionalUnitConditionalUnitHelperUnitsCompartment6EditPart.VISUAL_ID));
+ connectedViews = getChildrenByType(connectedViews,
+ ComrelVisualIDRegistry
+ .getType(SingleFilterUnit3EditPart.VISUAL_ID));
+ result.addAll(createNavigatorItems(connectedViews, parentElement,
+ false));
+ connectedViews = getChildrenByType(
+ Collections.singleton(sv),
+ ComrelVisualIDRegistry
+ .getType(ConditionalUnitConditionalUnitHelperUnitsCompartment6EditPart.VISUAL_ID));
+ connectedViews = getChildrenByType(connectedViews,
+ ComrelVisualIDRegistry
+ .getType(MultiFilterUnit3EditPart.VISUAL_ID));
+ result.addAll(createNavigatorItems(connectedViews, parentElement,
+ false));
+ connectedViews = getChildrenByType(
+ Collections.singleton(sv),
+ ComrelVisualIDRegistry
+ .getType(ConditionalUnitConditionalUnitThenCompartment6EditPart.VISUAL_ID));
+ connectedViews = getChildrenByType(connectedViews,
+ ComrelVisualIDRegistry
+ .getType(SingleQueuedUnit4EditPart.VISUAL_ID));
+ result.addAll(createNavigatorItems(connectedViews, parentElement,
+ false));
+ connectedViews = getChildrenByType(
+ Collections.singleton(sv),
+ ComrelVisualIDRegistry
+ .getType(ConditionalUnitConditionalUnitElseCompartment6EditPart.VISUAL_ID));
+ connectedViews = getChildrenByType(connectedViews,
+ ComrelVisualIDRegistry
+ .getType(SingleQueuedUnit7EditPart.VISUAL_ID));
+ result.addAll(createNavigatorItems(connectedViews, parentElement,
+ false));
+ connectedViews = getChildrenByType(
+ Collections.singleton(sv),
+ ComrelVisualIDRegistry
+ .getType(ConditionalUnitConditionalUnitThenCompartment6EditPart.VISUAL_ID));
+ connectedViews = getChildrenByType(connectedViews,
+ ComrelVisualIDRegistry
+ .getType(SequentialUnit5EditPart.VISUAL_ID));
+ result.addAll(createNavigatorItems(connectedViews, parentElement,
+ false));
+ connectedViews = getChildrenByType(
+ Collections.singleton(sv),
+ ComrelVisualIDRegistry
+ .getType(ConditionalUnitConditionalUnitThenCompartment6EditPart.VISUAL_ID));
+ connectedViews = getChildrenByType(connectedViews,
+ ComrelVisualIDRegistry
+ .getType(ConditionalUnit6EditPart.VISUAL_ID));
+ result.addAll(createNavigatorItems(connectedViews, parentElement,
+ false));
+ connectedViews = getChildrenByType(
+ Collections.singleton(sv),
+ ComrelVisualIDRegistry
+ .getType(ConditionalUnitConditionalUnitElseCompartment6EditPart.VISUAL_ID));
+ connectedViews = getChildrenByType(connectedViews,
+ ComrelVisualIDRegistry
+ .getType(SequentialUnit7EditPart.VISUAL_ID));
+ result.addAll(createNavigatorItems(connectedViews, parentElement,
+ false));
+ connectedViews = getChildrenByType(
+ Collections.singleton(sv),
+ ComrelVisualIDRegistry
+ .getType(ConditionalUnitConditionalUnitElseCompartment6EditPart.VISUAL_ID));
+ connectedViews = getChildrenByType(connectedViews,
+ ComrelVisualIDRegistry
+ .getType(ConditionalUnit7EditPart.VISUAL_ID));
+ result.addAll(createNavigatorItems(connectedViews, parentElement,
+ false));
+ connectedViews = getChildrenByType(
+ Collections.singleton(sv),
+ ComrelVisualIDRegistry
+ .getType(ConditionalUnitConditionalUnitIfCompartment6EditPart.VISUAL_ID));
+ connectedViews = getChildrenByType(connectedViews,
+ ComrelVisualIDRegistry
+ .getType(ConditionCheckEditPart.VISUAL_ID));
+ result.addAll(createNavigatorItems(connectedViews, parentElement,
+ false));
+ connectedViews = getChildrenByType(
+ Collections.singleton(sv),
+ ComrelVisualIDRegistry
+ .getType(ConditionalUnitConditionalUnitThenCompartment6EditPart.VISUAL_ID));
+ connectedViews = getChildrenByType(connectedViews,
+ ComrelVisualIDRegistry
+ .getType(AtomicUnit6EditPart.VISUAL_ID));
+ result.addAll(createNavigatorItems(connectedViews, parentElement,
+ false));
+ connectedViews = getChildrenByType(
+ Collections.singleton(sv),
+ ComrelVisualIDRegistry
+ .getType(ConditionalUnitConditionalUnitElseCompartment6EditPart.VISUAL_ID));
+ connectedViews = getChildrenByType(connectedViews,
+ ComrelVisualIDRegistry
+ .getType(AtomicUnit7EditPart.VISUAL_ID));
+ result.addAll(createNavigatorItems(connectedViews, parentElement,
+ false));
+ return result.toArray();
+ }
+
+ case SingleFilterUnit3EditPart.VISUAL_ID: {
+ LinkedList<ComrelAbstractNavigatorItem> result = new LinkedList<ComrelAbstractNavigatorItem>();
+ Node sv = (Node) view;
+ Collection<View> connectedViews;
+ connectedViews = getChildrenByType(Collections.singleton(sv),
+ ComrelVisualIDRegistry
+ .getType(MultiInputPort5EditPart.VISUAL_ID));
+ result.addAll(createNavigatorItems(connectedViews, parentElement,
+ false));
+ connectedViews = getChildrenByType(Collections.singleton(sv),
+ ComrelVisualIDRegistry
+ .getType(SingleOutputPort2EditPart.VISUAL_ID));
+ result.addAll(createNavigatorItems(connectedViews, parentElement,
+ false));
+ return result.toArray();
+ }
+
+ case MultiFeatureUnit3EditPart.VISUAL_ID: {
+ LinkedList<ComrelAbstractNavigatorItem> result = new LinkedList<ComrelAbstractNavigatorItem>();
+ Node sv = (Node) view;
+ Collection<View> connectedViews;
+ connectedViews = getChildrenByType(Collections.singleton(sv),
+ ComrelVisualIDRegistry
+ .getType(SingleInputPort5EditPart.VISUAL_ID));
+ result.addAll(createNavigatorItems(connectedViews, parentElement,
+ false));
+ connectedViews = getChildrenByType(Collections.singleton(sv),
+ ComrelVisualIDRegistry
+ .getType(MultiInputPort4EditPart.VISUAL_ID));
+ result.addAll(createNavigatorItems(connectedViews, parentElement,
+ false));
+ connectedViews = getChildrenByType(Collections.singleton(sv),
+ ComrelVisualIDRegistry
+ .getType(MultiOutputPortEditPart.VISUAL_ID));
+ result.addAll(createNavigatorItems(connectedViews, parentElement,
+ false));
+ return result.toArray();
+ }
+
+ case ParallelQueuedUnitEditPart.VISUAL_ID: {
+ LinkedList<ComrelAbstractNavigatorItem> result = new LinkedList<ComrelAbstractNavigatorItem>();
+ Node sv = (Node) view;
+ Collection<View> connectedViews;
+ connectedViews = getChildrenByType(Collections.singleton(sv),
+ ComrelVisualIDRegistry
+ .getType(SingleInputPort3EditPart.VISUAL_ID));
+ result.addAll(createNavigatorItems(connectedViews, parentElement,
+ false));
+ connectedViews = getChildrenByType(Collections.singleton(sv),
+ ComrelVisualIDRegistry
+ .getType(MultiInputPort2EditPart.VISUAL_ID));
+ result.addAll(createNavigatorItems(connectedViews, parentElement,
+ false));
+ connectedViews = getChildrenByType(
+ Collections.singleton(sv),
+ ComrelVisualIDRegistry
+ .getType(ParallelQueuedUnitParallelQueuedUnitRefactoringUnitsCompartment7EditPart.VISUAL_ID));
+ connectedViews = getChildrenByType(connectedViews,
+ ComrelVisualIDRegistry
+ .getType(CartesianQueuedUnit3EditPart.VISUAL_ID));
+ result.addAll(createNavigatorItems(connectedViews, parentElement,
+ false));
+ connectedViews = getChildrenByType(
+ Collections.singleton(sv),
+ ComrelVisualIDRegistry
+ .getType(ParallelQueuedUnitParallelQueuedUnitRefactoringUnitsCompartment7EditPart.VISUAL_ID));
+ connectedViews = getChildrenByType(connectedViews,
+ ComrelVisualIDRegistry
+ .getType(ParallelQueuedUnit4EditPart.VISUAL_ID));
+ result.addAll(createNavigatorItems(connectedViews, parentElement,
+ false));
+ connectedViews = getChildrenByType(
+ Collections.singleton(sv),
+ ComrelVisualIDRegistry
+ .getType(ParallelQueuedUnitParallelQueuedUnitHelperUnitsCompartment7EditPart.VISUAL_ID));
+ connectedViews = getChildrenByType(connectedViews,
+ ComrelVisualIDRegistry
+ .getType(SingleFeatureUnit2EditPart.VISUAL_ID));
+ result.addAll(createNavigatorItems(connectedViews, parentElement,
+ false));
+ connectedViews = getChildrenByType(
+ Collections.singleton(sv),
+ ComrelVisualIDRegistry
+ .getType(ParallelQueuedUnitParallelQueuedUnitHelperUnitsCompartment7EditPart.VISUAL_ID));
+ connectedViews = getChildrenByType(connectedViews,
+ ComrelVisualIDRegistry
+ .getType(MultiFeatureUnit2EditPart.VISUAL_ID));
+ result.addAll(createNavigatorItems(connectedViews, parentElement,
+ false));
+ connectedViews = getChildrenByType(
+ Collections.singleton(sv),
+ ComrelVisualIDRegistry
+ .getType(ParallelQueuedUnitParallelQueuedUnitHelperUnitsCompartment7EditPart.VISUAL_ID));
+ connectedViews = getChildrenByType(connectedViews,
+ ComrelVisualIDRegistry
+ .getType(SingleFilterUnit2EditPart.VISUAL_ID));
+ result.addAll(createNavigatorItems(connectedViews, parentElement,
+ false));
+ connectedViews = getChildrenByType(
+ Collections.singleton(sv),
+ ComrelVisualIDRegistry
+ .getType(ParallelQueuedUnitParallelQueuedUnitHelperUnitsCompartment7EditPart.VISUAL_ID));
+ connectedViews = getChildrenByType(connectedViews,
+ ComrelVisualIDRegistry
+ .getType(MultiFilterUnit2EditPart.VISUAL_ID));
+ result.addAll(createNavigatorItems(connectedViews, parentElement,
+ false));
+ connectedViews = getChildrenByType(
+ Collections.singleton(sv),
+ ComrelVisualIDRegistry
+ .getType(ParallelQueuedUnitParallelQueuedUnitRefactoringUnitsCompartment7EditPart.VISUAL_ID));
+ connectedViews = getChildrenByType(connectedViews,
+ ComrelVisualIDRegistry
+ .getType(SingleQueuedUnit3EditPart.VISUAL_ID));
+ result.addAll(createNavigatorItems(connectedViews, parentElement,
+ false));
+ connectedViews = getChildrenByType(
+ Collections.singleton(sv),
+ ComrelVisualIDRegistry
+ .getType(ParallelQueuedUnitParallelQueuedUnitRefactoringUnitsCompartment7EditPart.VISUAL_ID));
+ connectedViews = getChildrenByType(connectedViews,
+ ComrelVisualIDRegistry
+ .getType(SequentialUnit3EditPart.VISUAL_ID));
+ result.addAll(createNavigatorItems(connectedViews, parentElement,
+ false));
+ connectedViews = getChildrenByType(
+ Collections.singleton(sv),
+ ComrelVisualIDRegistry
+ .getType(ParallelQueuedUnitParallelQueuedUnitRefactoringUnitsCompartment7EditPart.VISUAL_ID));
+ connectedViews = getChildrenByType(connectedViews,
+ ComrelVisualIDRegistry
+ .getType(ConditionalUnit3EditPart.VISUAL_ID));
+ result.addAll(createNavigatorItems(connectedViews, parentElement,
+ false));
+ connectedViews = getChildrenByType(
+ Collections.singleton(sv),
+ ComrelVisualIDRegistry
+ .getType(ParallelQueuedUnitParallelQueuedUnitRefactoringUnitsCompartment7EditPart.VISUAL_ID));
+ connectedViews = getChildrenByType(connectedViews,
+ ComrelVisualIDRegistry
+ .getType(AtomicUnit3EditPart.VISUAL_ID));
+ result.addAll(createNavigatorItems(connectedViews, parentElement,
+ false));
+ return result.toArray();
+ }
+
+ case MultiOutputPortEditPart.VISUAL_ID: {
+ LinkedList<ComrelAbstractNavigatorItem> result = new LinkedList<ComrelAbstractNavigatorItem>();
+ Node sv = (Node) view;
+ ComrelNavigatorGroup outgoinglinks = new ComrelNavigatorGroup(
+ Messages.NavigatorGroupName_MultiOutputPort_3015_outgoinglinks,
+ "icons/outgoingLinksNavigatorGroup.gif", parentElement); //$NON-NLS-1$
+ Collection<View> connectedViews;
+ connectedViews = getOutgoingLinksByType(Collections.singleton(sv),
+ ComrelVisualIDRegistry
+ .getType(MultiPortMappingEditPart.VISUAL_ID));
+ outgoinglinks.addChildren(createNavigatorItems(connectedViews,
+ outgoinglinks, true));
+ connectedViews = getOutgoingLinksByType(Collections.singleton(sv),
+ ComrelVisualIDRegistry
+ .getType(MultiSinglePortMappingEditPart.VISUAL_ID));
+ outgoinglinks.addChildren(createNavigatorItems(connectedViews,
+ outgoinglinks, true));
+ if (!outgoinglinks.isEmpty()) {
+ result.add(outgoinglinks);
+ }
+ return result.toArray();
+ }
+
+ case AtomicUnit5EditPart.VISUAL_ID: {
+ LinkedList<ComrelAbstractNavigatorItem> result = new LinkedList<ComrelAbstractNavigatorItem>();
+ Node sv = (Node) view;
+ Collection<View> connectedViews;
+ connectedViews = getChildrenByType(Collections.singleton(sv),
+ ComrelVisualIDRegistry
+ .getType(SingleInputPort9EditPart.VISUAL_ID));
+ result.addAll(createNavigatorItems(connectedViews, parentElement,
+ false));
+ return result.toArray();
+ }
+
+ case ParallelQueuedUnit4EditPart.VISUAL_ID: {
+ LinkedList<ComrelAbstractNavigatorItem> result = new LinkedList<ComrelAbstractNavigatorItem>();
+ Node sv = (Node) view;
+ Collection<View> connectedViews;
+ connectedViews = getChildrenByType(Collections.singleton(sv),
+ ComrelVisualIDRegistry
+ .getType(SingleInputPort3EditPart.VISUAL_ID));
+ result.addAll(createNavigatorItems(connectedViews, parentElement,
+ false));
+ connectedViews = getChildrenByType(Collections.singleton(sv),
+ ComrelVisualIDRegistry
+ .getType(MultiInputPort2EditPart.VISUAL_ID));
+ result.addAll(createNavigatorItems(connectedViews, parentElement,
+ false));
+ connectedViews = getChildrenByType(
+ Collections.singleton(sv),
+ ComrelVisualIDRegistry
+ .getType(ParallelQueuedUnitParallelQueuedUnitRefactoringUnitsCompartment3EditPart.VISUAL_ID));
+ connectedViews = getChildrenByType(connectedViews,
+ ComrelVisualIDRegistry
+ .getType(CartesianQueuedUnit3EditPart.VISUAL_ID));
+ result.addAll(createNavigatorItems(connectedViews, parentElement,
+ false));
+ connectedViews = getChildrenByType(
+ Collections.singleton(sv),
+ ComrelVisualIDRegistry
+ .getType(ParallelQueuedUnitParallelQueuedUnitRefactoringUnitsCompartment3EditPart.VISUAL_ID));
+ connectedViews = getChildrenByType(connectedViews,
+ ComrelVisualIDRegistry
+ .getType(ParallelQueuedUnit4EditPart.VISUAL_ID));
+ result.addAll(createNavigatorItems(connectedViews, parentElement,
+ false));
+ connectedViews = getChildrenByType(
+ Collections.singleton(sv),
+ ComrelVisualIDRegistry
+ .getType(ParallelQueuedUnitParallelQueuedUnitHelperUnitsCompartment3EditPart.VISUAL_ID));
+ connectedViews = getChildrenByType(connectedViews,
+ ComrelVisualIDRegistry
+ .getType(SingleFeatureUnit2EditPart.VISUAL_ID));
+ result.addAll(createNavigatorItems(connectedViews, parentElement,
+ false));
+ connectedViews = getChildrenByType(
+ Collections.singleton(sv),
+ ComrelVisualIDRegistry
+ .getType(ParallelQueuedUnitParallelQueuedUnitHelperUnitsCompartment3EditPart.VISUAL_ID));
+ connectedViews = getChildrenByType(connectedViews,
+ ComrelVisualIDRegistry
+ .getType(MultiFeatureUnit2EditPart.VISUAL_ID));
+ result.addAll(createNavigatorItems(connectedViews, parentElement,
+ false));
+ connectedViews = getChildrenByType(
+ Collections.singleton(sv),
+ ComrelVisualIDRegistry
+ .getType(ParallelQueuedUnitParallelQueuedUnitHelperUnitsCompartment3EditPart.VISUAL_ID));
+ connectedViews = getChildrenByType(connectedViews,
+ ComrelVisualIDRegistry
+ .getType(SingleFilterUnit2EditPart.VISUAL_ID));
+ result.addAll(createNavigatorItems(connectedViews, parentElement,
+ false));
+ connectedViews = getChildrenByType(
+ Collections.singleton(sv),
+ ComrelVisualIDRegistry
+ .getType(ParallelQueuedUnitParallelQueuedUnitHelperUnitsCompartment3EditPart.VISUAL_ID));
+ connectedViews = getChildrenByType(connectedViews,
+ ComrelVisualIDRegistry
+ .getType(MultiFilterUnit2EditPart.VISUAL_ID));
+ result.addAll(createNavigatorItems(connectedViews, parentElement,
+ false));
+ connectedViews = getChildrenByType(
+ Collections.singleton(sv),
+ ComrelVisualIDRegistry
+ .getType(ParallelQueuedUnitParallelQueuedUnitRefactoringUnitsCompartment3EditPart.VISUAL_ID));
+ connectedViews = getChildrenByType(connectedViews,
+ ComrelVisualIDRegistry
+ .getType(SingleQueuedUnit3EditPart.VISUAL_ID));
+ result.addAll(createNavigatorItems(connectedViews, parentElement,
+ false));
+ connectedViews = getChildrenByType(
+ Collections.singleton(sv),
+ ComrelVisualIDRegistry
+ .getType(ParallelQueuedUnitParallelQueuedUnitRefactoringUnitsCompartment3EditPart.VISUAL_ID));
+ connectedViews = getChildrenByType(connectedViews,
+ ComrelVisualIDRegistry
+ .getType(SequentialUnit3EditPart.VISUAL_ID));
+ result.addAll(createNavigatorItems(connectedViews, parentElement,
+ false));
+ connectedViews = getChildrenByType(
+ Collections.singleton(sv),
+ ComrelVisualIDRegistry
+ .getType(ParallelQueuedUnitParallelQueuedUnitRefactoringUnitsCompartment3EditPart.VISUAL_ID));
+ connectedViews = getChildrenByType(connectedViews,
+ ComrelVisualIDRegistry
+ .getType(ConditionalUnit3EditPart.VISUAL_ID));
+ result.addAll(createNavigatorItems(connectedViews, parentElement,
+ false));
+ connectedViews = getChildrenByType(
+ Collections.singleton(sv),
+ ComrelVisualIDRegistry
+ .getType(ParallelQueuedUnitParallelQueuedUnitRefactoringUnitsCompartment3EditPart.VISUAL_ID));
+ connectedViews = getChildrenByType(connectedViews,
+ ComrelVisualIDRegistry
+ .getType(AtomicUnit3EditPart.VISUAL_ID));
+ result.addAll(createNavigatorItems(connectedViews, parentElement,
+ false));
+ return result.toArray();
+ }
+
+ case MultiPortMappingEditPart.VISUAL_ID: {
+ LinkedList<ComrelAbstractNavigatorItem> result = new LinkedList<ComrelAbstractNavigatorItem>();
+ Edge sv = (Edge) view;
+ ComrelNavigatorGroup target = new ComrelNavigatorGroup(
+ Messages.NavigatorGroupName_MultiPortMapping_4002_target,
+ "icons/linkTargetNavigatorGroup.gif", parentElement); //$NON-NLS-1$
+ ComrelNavigatorGroup source = new ComrelNavigatorGroup(
+ Messages.NavigatorGroupName_MultiPortMapping_4002_source,
+ "icons/linkSourceNavigatorGroup.gif", parentElement); //$NON-NLS-1$
+ Collection<View> connectedViews;
+ connectedViews = getLinksTargetByType(Collections.singleton(sv),
+ ComrelVisualIDRegistry
+ .getType(MultiInputPortEditPart.VISUAL_ID));
+ target.addChildren(createNavigatorItems(connectedViews, target,
+ true));
+ connectedViews = getLinksTargetByType(Collections.singleton(sv),
+ ComrelVisualIDRegistry
+ .getType(MultiInputPort2EditPart.VISUAL_ID));
+ target.addChildren(createNavigatorItems(connectedViews, target,
+ true));
+ connectedViews = getLinksTargetByType(Collections.singleton(sv),
+ ComrelVisualIDRegistry
+ .getType(MultiInputPort3EditPart.VISUAL_ID));
+ target.addChildren(createNavigatorItems(connectedViews, target,
+ true));
+ connectedViews = getLinksTargetByType(Collections.singleton(sv),
+ ComrelVisualIDRegistry
+ .getType(MultiInputPort4EditPart.VISUAL_ID));
+ target.addChildren(createNavigatorItems(connectedViews, target,
+ true));
+ connectedViews = getLinksTargetByType(Collections.singleton(sv),
+ ComrelVisualIDRegistry
+ .getType(MultiInputPort5EditPart.VISUAL_ID));
+ target.addChildren(createNavigatorItems(connectedViews, target,
+ true));
+ connectedViews = getLinksTargetByType(Collections.singleton(sv),
+ ComrelVisualIDRegistry
+ .getType(MultiInputPort6EditPart.VISUAL_ID));
+ target.addChildren(createNavigatorItems(connectedViews, target,
+ true));
+ connectedViews = getLinksTargetByType(Collections.singleton(sv),
+ ComrelVisualIDRegistry
+ .getType(MultiInputPort7EditPart.VISUAL_ID));
+ target.addChildren(createNavigatorItems(connectedViews, target,
+ true));
+ connectedViews = getLinksTargetByType(Collections.singleton(sv),
+ ComrelVisualIDRegistry
+ .getType(MultiInputPort8EditPart.VISUAL_ID));
+ target.addChildren(createNavigatorItems(connectedViews, target,
+ true));
+ connectedViews = getLinksTargetByType(Collections.singleton(sv),
+ ComrelVisualIDRegistry
+ .getType(MultiInputPort9EditPart.VISUAL_ID));
+ target.addChildren(createNavigatorItems(connectedViews, target,
+ true));
+ connectedViews = getLinksSourceByType(Collections.singleton(sv),
+ ComrelVisualIDRegistry
+ .getType(MultiInputPortEditPart.VISUAL_ID));
+ source.addChildren(createNavigatorItems(connectedViews, source,
+ true));
+ connectedViews = getLinksSourceByType(Collections.singleton(sv),
+ ComrelVisualIDRegistry
+ .getType(MultiInputPort2EditPart.VISUAL_ID));
+ source.addChildren(createNavigatorItems(connectedViews, source,
+ true));
+ connectedViews = getLinksSourceByType(Collections.singleton(sv),
+ ComrelVisualIDRegistry
+ .getType(MultiInputPort3EditPart.VISUAL_ID));
+ source.addChildren(createNavigatorItems(connectedViews, source,
+ true));
+ connectedViews = getLinksSourceByType(Collections.singleton(sv),
+ ComrelVisualIDRegistry
+ .getType(MultiInputPort4EditPart.VISUAL_ID));
+ source.addChildren(createNavigatorItems(connectedViews, source,
+ true));
+ connectedViews = getLinksSourceByType(Collections.singleton(sv),
+ ComrelVisualIDRegistry
+ .getType(MultiOutputPortEditPart.VISUAL_ID));
+ source.addChildren(createNavigatorItems(connectedViews, source,
+ true));
+ connectedViews = getLinksSourceByType(Collections.singleton(sv),
+ ComrelVisualIDRegistry
+ .getType(MultiInputPort5EditPart.VISUAL_ID));
+ source.addChildren(createNavigatorItems(connectedViews, source,
+ true));
+ connectedViews = getLinksSourceByType(Collections.singleton(sv),
+ ComrelVisualIDRegistry
+ .getType(MultiInputPort6EditPart.VISUAL_ID));
+ source.addChildren(createNavigatorItems(connectedViews, source,
+ true));
+ connectedViews = getLinksSourceByType(Collections.singleton(sv),
+ ComrelVisualIDRegistry
+ .getType(MultiOutputPort2EditPart.VISUAL_ID));
+ source.addChildren(createNavigatorItems(connectedViews, source,
+ true));
+ connectedViews = getLinksSourceByType(Collections.singleton(sv),
+ ComrelVisualIDRegistry
+ .getType(MultiInputPort7EditPart.VISUAL_ID));
+ source.addChildren(createNavigatorItems(connectedViews, source,
+ true));
+ connectedViews = getLinksSourceByType(Collections.singleton(sv),
+ ComrelVisualIDRegistry
+ .getType(MultiInputPort8EditPart.VISUAL_ID));
+ source.addChildren(createNavigatorItems(connectedViews, source,
+ true));
+ connectedViews = getLinksSourceByType(Collections.singleton(sv),
+ ComrelVisualIDRegistry
+ .getType(MultiInputPort9EditPart.VISUAL_ID));
+ source.addChildren(createNavigatorItems(connectedViews, source,
+ true));
+ if (!target.isEmpty()) {
+ result.add(target);
+ }
+ if (!source.isEmpty()) {
+ result.add(source);
+ }
+ return result.toArray();
+ }
+
+ case MultiInputPort6EditPart.VISUAL_ID: {
+ LinkedList<ComrelAbstractNavigatorItem> result = new LinkedList<ComrelAbstractNavigatorItem>();
+ Node sv = (Node) view;
+ ComrelNavigatorGroup incominglinks = new ComrelNavigatorGroup(
+ Messages.NavigatorGroupName_MultiInputPort_3020_incominglinks,
+ "icons/incomingLinksNavigatorGroup.gif", parentElement); //$NON-NLS-1$
+ ComrelNavigatorGroup outgoinglinks = new ComrelNavigatorGroup(
+ Messages.NavigatorGroupName_MultiInputPort_3020_outgoinglinks,
+ "icons/outgoingLinksNavigatorGroup.gif", parentElement); //$NON-NLS-1$
+ Collection<View> connectedViews;
+ connectedViews = getIncomingLinksByType(Collections.singleton(sv),
+ ComrelVisualIDRegistry
+ .getType(MultiPortMappingEditPart.VISUAL_ID));
+ incominglinks.addChildren(createNavigatorItems(connectedViews,
+ incominglinks, true));
+ connectedViews = getOutgoingLinksByType(Collections.singleton(sv),
+ ComrelVisualIDRegistry
+ .getType(MultiPortMappingEditPart.VISUAL_ID));
+ outgoinglinks.addChildren(createNavigatorItems(connectedViews,
+ outgoinglinks, true));
+ connectedViews = getOutgoingLinksByType(Collections.singleton(sv),
+ ComrelVisualIDRegistry
+ .getType(MultiSinglePortMappingEditPart.VISUAL_ID));
+ outgoinglinks.addChildren(createNavigatorItems(connectedViews,
+ outgoinglinks, true));
+ if (!incominglinks.isEmpty()) {
+ result.add(incominglinks);
+ }
+ if (!outgoinglinks.isEmpty()) {
+ result.add(outgoinglinks);
+ }
+ return result.toArray();
+ }
+
+ case MultiSinglePortMappingEditPart.VISUAL_ID: {
+ LinkedList<ComrelAbstractNavigatorItem> result = new LinkedList<ComrelAbstractNavigatorItem>();
+ Edge sv = (Edge) view;
+ ComrelNavigatorGroup target = new ComrelNavigatorGroup(
+ Messages.NavigatorGroupName_MultiSinglePortMapping_4003_target,
+ "icons/linkTargetNavigatorGroup.gif", parentElement); //$NON-NLS-1$
+ ComrelNavigatorGroup source = new ComrelNavigatorGroup(
+ Messages.NavigatorGroupName_MultiSinglePortMapping_4003_source,
+ "icons/linkSourceNavigatorGroup.gif", parentElement); //$NON-NLS-1$
+ Collection<View> connectedViews;
+ connectedViews = getLinksTargetByType(Collections.singleton(sv),
+ ComrelVisualIDRegistry
+ .getType(SingleInputPortEditPart.VISUAL_ID));
+ target.addChildren(createNavigatorItems(connectedViews, target,
+ true));
+ connectedViews = getLinksTargetByType(Collections.singleton(sv),
+ ComrelVisualIDRegistry
+ .getType(SingleInputPort2EditPart.VISUAL_ID));
+ target.addChildren(createNavigatorItems(connectedViews, target,
+ true));
+ connectedViews = getLinksTargetByType(Collections.singleton(sv),
+ ComrelVisualIDRegistry
+ .getType(SingleInputPort3EditPart.VISUAL_ID));
+ target.addChildren(createNavigatorItems(connectedViews, target,
+ true));
+ connectedViews = getLinksTargetByType(Collections.singleton(sv),
+ ComrelVisualIDRegistry
+ .getType(SingleInputPort4EditPart.VISUAL_ID));
+ target.addChildren(createNavigatorItems(connectedViews, target,
+ true));
+ connectedViews = getLinksTargetByType(Collections.singleton(sv),
+ ComrelVisualIDRegistry
+ .getType(SingleInputPort5EditPart.VISUAL_ID));
+ target.addChildren(createNavigatorItems(connectedViews, target,
+ true));
+ connectedViews = getLinksTargetByType(Collections.singleton(sv),
+ ComrelVisualIDRegistry
+ .getType(SingleInputPort6EditPart.VISUAL_ID));
+ target.addChildren(createNavigatorItems(connectedViews, target,
+ true));
+ connectedViews = getLinksTargetByType(Collections.singleton(sv),
+ ComrelVisualIDRegistry
+ .getType(SingleInputPort7EditPart.VISUAL_ID));
+ target.addChildren(createNavigatorItems(connectedViews, target,
+ true));
+ connectedViews = getLinksTargetByType(Collections.singleton(sv),
+ ComrelVisualIDRegistry
+ .getType(SingleInputPort8EditPart.VISUAL_ID));
+ target.addChildren(createNavigatorItems(connectedViews, target,
+ true));
+ connectedViews = getLinksTargetByType(Collections.singleton(sv),
+ ComrelVisualIDRegistry
+ .getType(SingleInputPort9EditPart.VISUAL_ID));
+ target.addChildren(createNavigatorItems(connectedViews, target,
+ true));
+ connectedViews = getLinksSourceByType(Collections.singleton(sv),
+ ComrelVisualIDRegistry
+ .getType(MultiInputPortEditPart.VISUAL_ID));
+ source.addChildren(createNavigatorItems(connectedViews, source,
+ true));
+ connectedViews = getLinksSourceByType(Collections.singleton(sv),
+ ComrelVisualIDRegistry
+ .getType(MultiInputPort2EditPart.VISUAL_ID));
+ source.addChildren(createNavigatorItems(connectedViews, source,
+ true));
+ connectedViews = getLinksSourceByType(Collections.singleton(sv),
+ ComrelVisualIDRegistry
+ .getType(MultiInputPort3EditPart.VISUAL_ID));
+ source.addChildren(createNavigatorItems(connectedViews, source,
+ true));
+ connectedViews = getLinksSourceByType(Collections.singleton(sv),
+ ComrelVisualIDRegistry
+ .getType(MultiInputPort4EditPart.VISUAL_ID));
+ source.addChildren(createNavigatorItems(connectedViews, source,
+ true));
+ connectedViews = getLinksSourceByType(Collections.singleton(sv),
+ ComrelVisualIDRegistry
+ .getType(MultiOutputPortEditPart.VISUAL_ID));
+ source.addChildren(createNavigatorItems(connectedViews, source,
+ true));
+ connectedViews = getLinksSourceByType(Collections.singleton(sv),
+ ComrelVisualIDRegistry
+ .getType(MultiInputPort5EditPart.VISUAL_ID));
+ source.addChildren(createNavigatorItems(connectedViews, source,
+ true));
+ connectedViews = getLinksSourceByType(Collections.singleton(sv),
+ ComrelVisualIDRegistry
+ .getType(MultiInputPort6EditPart.VISUAL_ID));
+ source.addChildren(createNavigatorItems(connectedViews, source,
+ true));
+ connectedViews = getLinksSourceByType(Collections.singleton(sv),
+ ComrelVisualIDRegistry
+ .getType(MultiOutputPort2EditPart.VISUAL_ID));
+ source.addChildren(createNavigatorItems(connectedViews, source,
+ true));
+ connectedViews = getLinksSourceByType(Collections.singleton(sv),
+ ComrelVisualIDRegistry
+ .getType(MultiInputPort7EditPart.VISUAL_ID));
+ source.addChildren(createNavigatorItems(connectedViews, source,
+ true));
+ connectedViews = getLinksSourceByType(Collections.singleton(sv),
+ ComrelVisualIDRegistry
+ .getType(MultiInputPort8EditPart.VISUAL_ID));
+ source.addChildren(createNavigatorItems(connectedViews, source,
+ true));
+ connectedViews = getLinksSourceByType(Collections.singleton(sv),
+ ComrelVisualIDRegistry
+ .getType(MultiInputPort9EditPart.VISUAL_ID));
+ source.addChildren(createNavigatorItems(connectedViews, source,
+ true));
+ if (!target.isEmpty()) {
+ result.add(target);
+ }
+ if (!source.isEmpty()) {
+ result.add(source);
+ }
+ return result.toArray();
+ }
+
+ case SingleQueuedUnit7EditPart.VISUAL_ID: {
+ LinkedList<ComrelAbstractNavigatorItem> result = new LinkedList<ComrelAbstractNavigatorItem>();
+ Node sv = (Node) view;
+ Collection<View> connectedViews;
+ connectedViews = getChildrenByType(Collections.singleton(sv),
+ ComrelVisualIDRegistry
+ .getType(SingleInputPort6EditPart.VISUAL_ID));
+ result.addAll(createNavigatorItems(connectedViews, parentElement,
+ false));
+ connectedViews = getChildrenByType(Collections.singleton(sv),
+ ComrelVisualIDRegistry
+ .getType(MultiInputPort7EditPart.VISUAL_ID));
+ result.addAll(createNavigatorItems(connectedViews, parentElement,
+ false));
+ connectedViews = getChildrenByType(
+ Collections.singleton(sv),
+ ComrelVisualIDRegistry
+ .getType(SingleQueuedUnitSingleQueuedUnitRefactoringUnitCompartment6EditPart.VISUAL_ID));
+ connectedViews = getChildrenByType(connectedViews,
+ ComrelVisualIDRegistry
+ .getType(CartesianQueuedUnit4EditPart.VISUAL_ID));
+ result.addAll(createNavigatorItems(connectedViews, parentElement,
+ false));
+ connectedViews = getChildrenByType(
+ Collections.singleton(sv),
+ ComrelVisualIDRegistry
+ .getType(SingleQueuedUnitSingleQueuedUnitRefactoringUnitCompartment6EditPart.VISUAL_ID));
+ connectedViews = getChildrenByType(connectedViews,
+ ComrelVisualIDRegistry
+ .getType(ParallelQueuedUnit5EditPart.VISUAL_ID));
+ result.addAll(createNavigatorItems(connectedViews, parentElement,
+ false));
+ connectedViews = getChildrenByType(
+ Collections.singleton(sv),
+ ComrelVisualIDRegistry
+ .getType(SingleQueuedUnitSingleQueuedUnitHelperUnitsCompartment6EditPart.VISUAL_ID));
+ connectedViews = getChildrenByType(connectedViews,
+ ComrelVisualIDRegistry
+ .getType(SingleFeatureUnit4EditPart.VISUAL_ID));
+ result.addAll(createNavigatorItems(connectedViews, parentElement,
+ false));
+ connectedViews = getChildrenByType(
+ Collections.singleton(sv),
+ ComrelVisualIDRegistry
+ .getType(SingleQueuedUnitSingleQueuedUnitHelperUnitsCompartment6EditPart.VISUAL_ID));
+ connectedViews = getChildrenByType(connectedViews,
+ ComrelVisualIDRegistry
+ .getType(MultiFeatureUnit4EditPart.VISUAL_ID));
+ result.addAll(createNavigatorItems(connectedViews, parentElement,
+ false));
+ connectedViews = getChildrenByType(
+ Collections.singleton(sv),
+ ComrelVisualIDRegistry
+ .getType(SingleQueuedUnitSingleQueuedUnitHelperUnitsCompartment6EditPart.VISUAL_ID));
+ connectedViews = getChildrenByType(connectedViews,
+ ComrelVisualIDRegistry
+ .getType(SingleFilterUnit4EditPart.VISUAL_ID));
+ result.addAll(createNavigatorItems(connectedViews, parentElement,
+ false));
+ connectedViews = getChildrenByType(
+ Collections.singleton(sv),
+ ComrelVisualIDRegistry
+ .getType(SingleQueuedUnitSingleQueuedUnitHelperUnitsCompartment6EditPart.VISUAL_ID));
+ connectedViews = getChildrenByType(connectedViews,
+ ComrelVisualIDRegistry
+ .getType(MultiFilterUnit4EditPart.VISUAL_ID));
+ result.addAll(createNavigatorItems(connectedViews, parentElement,
+ false));
+ connectedViews = getChildrenByType(
+ Collections.singleton(sv),
+ ComrelVisualIDRegistry
+ .getType(SingleQueuedUnitSingleQueuedUnitRefactoringUnitCompartment6EditPart.VISUAL_ID));
+ connectedViews = getChildrenByType(connectedViews,
+ ComrelVisualIDRegistry
+ .getType(SingleQueuedUnit5EditPart.VISUAL_ID));
+ result.addAll(createNavigatorItems(connectedViews, parentElement,
+ false));
+ connectedViews = getChildrenByType(
+ Collections.singleton(sv),
+ ComrelVisualIDRegistry
+ .getType(SingleQueuedUnitSingleQueuedUnitRefactoringUnitCompartment6EditPart.VISUAL_ID));
+ connectedViews = getChildrenByType(connectedViews,
+ ComrelVisualIDRegistry
+ .getType(SequentialUnit4EditPart.VISUAL_ID));
+ result.addAll(createNavigatorItems(connectedViews, parentElement,
+ false));
+ connectedViews = getChildrenByType(
+ Collections.singleton(sv),
+ ComrelVisualIDRegistry
+ .getType(SingleQueuedUnitSingleQueuedUnitRefactoringUnitCompartment6EditPart.VISUAL_ID));
+ connectedViews = getChildrenByType(connectedViews,
+ ComrelVisualIDRegistry
+ .getType(ConditionalUnit4EditPart.VISUAL_ID));
+ result.addAll(createNavigatorItems(connectedViews, parentElement,
+ false));
+ connectedViews = getChildrenByType(
+ Collections.singleton(sv),
+ ComrelVisualIDRegistry
+ .getType(SingleQueuedUnitSingleQueuedUnitRefactoringUnitCompartment6EditPart.VISUAL_ID));
+ connectedViews = getChildrenByType(connectedViews,
+ ComrelVisualIDRegistry
+ .getType(AtomicUnit4EditPart.VISUAL_ID));
+ result.addAll(createNavigatorItems(connectedViews, parentElement,
+ false));
+ return result.toArray();
+ }
+
+ case SingleOutputPort2EditPart.VISUAL_ID: {
+ LinkedList<ComrelAbstractNavigatorItem> result = new LinkedList<ComrelAbstractNavigatorItem>();
+ Node sv = (Node) view;
+ ComrelNavigatorGroup outgoinglinks = new ComrelNavigatorGroup(
+ Messages.NavigatorGroupName_SingleOutputPort_3018_outgoinglinks,
+ "icons/outgoingLinksNavigatorGroup.gif", parentElement); //$NON-NLS-1$
+ Collection<View> connectedViews;
+ connectedViews = getOutgoingLinksByType(Collections.singleton(sv),
+ ComrelVisualIDRegistry
+ .getType(SinglePortMappingEditPart.VISUAL_ID));
+ outgoinglinks.addChildren(createNavigatorItems(connectedViews,
+ outgoinglinks, true));
+ if (!outgoinglinks.isEmpty()) {
+ result.add(outgoinglinks);
+ }
+ return result.toArray();
+ }
+
+ case ConditionalUnit5EditPart.VISUAL_ID: {
+ LinkedList<ComrelAbstractNavigatorItem> result = new LinkedList<ComrelAbstractNavigatorItem>();
+ Node sv = (Node) view;
+ Collection<View> connectedViews;
+ connectedViews = getChildrenByType(Collections.singleton(sv),
+ ComrelVisualIDRegistry
+ .getType(SingleInputPort8EditPart.VISUAL_ID));
+ result.addAll(createNavigatorItems(connectedViews, parentElement,
+ false));
+ connectedViews = getChildrenByType(Collections.singleton(sv),
+ ComrelVisualIDRegistry
+ .getType(MultiInputPort9EditPart.VISUAL_ID));
+ result.addAll(createNavigatorItems(connectedViews, parentElement,
+ false));
+ connectedViews = getChildrenByType(
+ Collections.singleton(sv),
+ ComrelVisualIDRegistry
+ .getType(ConditionalUnitConditionalUnitThenCompartment4EditPart.VISUAL_ID));
+ connectedViews = getChildrenByType(connectedViews,
+ ComrelVisualIDRegistry
+ .getType(CartesianQueuedUnit6EditPart.VISUAL_ID));
+ result.addAll(createNavigatorItems(connectedViews, parentElement,
+ false));
+ connectedViews = getChildrenByType(
+ Collections.singleton(sv),
+ ComrelVisualIDRegistry
+ .getType(ConditionalUnitConditionalUnitThenCompartment4EditPart.VISUAL_ID));
+ connectedViews = getChildrenByType(connectedViews,
+ ComrelVisualIDRegistry
+ .getType(ParallelQueuedUnit3EditPart.VISUAL_ID));
+ result.addAll(createNavigatorItems(connectedViews, parentElement,
+ false));
+ connectedViews = getChildrenByType(
+ Collections.singleton(sv),
+ ComrelVisualIDRegistry
+ .getType(ConditionalUnitConditionalUnitElseCompartment4EditPart.VISUAL_ID));
+ connectedViews = getChildrenByType(connectedViews,
+ ComrelVisualIDRegistry
+ .getType(CartesianQueuedUnit7EditPart.VISUAL_ID));
+ result.addAll(createNavigatorItems(connectedViews, parentElement,
+ false));
+ connectedViews = getChildrenByType(
+ Collections.singleton(sv),
+ ComrelVisualIDRegistry
+ .getType(ConditionalUnitConditionalUnitElseCompartment4EditPart.VISUAL_ID));
+ connectedViews = getChildrenByType(connectedViews,
+ ComrelVisualIDRegistry
+ .getType(ParallelQueuedUnit7EditPart.VISUAL_ID));
+ result.addAll(createNavigatorItems(connectedViews, parentElement,
+ false));
+ connectedViews = getChildrenByType(
+ Collections.singleton(sv),
+ ComrelVisualIDRegistry
+ .getType(ConditionalUnitConditionalUnitHelperUnitsCompartment4EditPart.VISUAL_ID));
+ connectedViews = getChildrenByType(connectedViews,
+ ComrelVisualIDRegistry
+ .getType(SingleFeatureUnit3EditPart.VISUAL_ID));
+ result.addAll(createNavigatorItems(connectedViews, parentElement,
+ false));
+ connectedViews = getChildrenByType(
+ Collections.singleton(sv),
+ ComrelVisualIDRegistry
+ .getType(ConditionalUnitConditionalUnitHelperUnitsCompartment4EditPart.VISUAL_ID));
+ connectedViews = getChildrenByType(connectedViews,
+ ComrelVisualIDRegistry
+ .getType(MultiFeatureUnit3EditPart.VISUAL_ID));
+ result.addAll(createNavigatorItems(connectedViews, parentElement,
+ false));
+ connectedViews = getChildrenByType(
+ Collections.singleton(sv),
+ ComrelVisualIDRegistry
+ .getType(ConditionalUnitConditionalUnitHelperUnitsCompartment4EditPart.VISUAL_ID));
+ connectedViews = getChildrenByType(connectedViews,
+ ComrelVisualIDRegistry
+ .getType(SingleFilterUnit3EditPart.VISUAL_ID));
+ result.addAll(createNavigatorItems(connectedViews, parentElement,
+ false));
+ connectedViews = getChildrenByType(
+ Collections.singleton(sv),
+ ComrelVisualIDRegistry
+ .getType(ConditionalUnitConditionalUnitHelperUnitsCompartment4EditPart.VISUAL_ID));
+ connectedViews = getChildrenByType(connectedViews,
+ ComrelVisualIDRegistry
+ .getType(MultiFilterUnit3EditPart.VISUAL_ID));
+ result.addAll(createNavigatorItems(connectedViews, parentElement,
+ false));
+ connectedViews = getChildrenByType(
+ Collections.singleton(sv),
+ ComrelVisualIDRegistry
+ .getType(ConditionalUnitConditionalUnitThenCompartment4EditPart.VISUAL_ID));
+ connectedViews = getChildrenByType(connectedViews,
+ ComrelVisualIDRegistry
+ .getType(SingleQueuedUnit4EditPart.VISUAL_ID));
+ result.addAll(createNavigatorItems(connectedViews, parentElement,
+ false));
+ connectedViews = getChildrenByType(
+ Collections.singleton(sv),
+ ComrelVisualIDRegistry
+ .getType(ConditionalUnitConditionalUnitElseCompartment4EditPart.VISUAL_ID));
+ connectedViews = getChildrenByType(connectedViews,
+ ComrelVisualIDRegistry
+ .getType(SingleQueuedUnit7EditPart.VISUAL_ID));
+ result.addAll(createNavigatorItems(connectedViews, parentElement,
+ false));
+ connectedViews = getChildrenByType(
+ Collections.singleton(sv),
+ ComrelVisualIDRegistry
+ .getType(ConditionalUnitConditionalUnitThenCompartment4EditPart.VISUAL_ID));
+ connectedViews = getChildrenByType(connectedViews,
+ ComrelVisualIDRegistry
+ .getType(SequentialUnit5EditPart.VISUAL_ID));
+ result.addAll(createNavigatorItems(connectedViews, parentElement,
+ false));
+ connectedViews = getChildrenByType(
+ Collections.singleton(sv),
+ ComrelVisualIDRegistry
+ .getType(ConditionalUnitConditionalUnitThenCompartment4EditPart.VISUAL_ID));
+ connectedViews = getChildrenByType(connectedViews,
+ ComrelVisualIDRegistry
+ .getType(ConditionalUnit6EditPart.VISUAL_ID));
+ result.addAll(createNavigatorItems(connectedViews, parentElement,
+ false));
+ connectedViews = getChildrenByType(
+ Collections.singleton(sv),
+ ComrelVisualIDRegistry
+ .getType(ConditionalUnitConditionalUnitElseCompartment4EditPart.VISUAL_ID));
+ connectedViews = getChildrenByType(connectedViews,
+ ComrelVisualIDRegistry
+ .getType(SequentialUnit7EditPart.VISUAL_ID));
+ result.addAll(createNavigatorItems(connectedViews, parentElement,
+ false));
+ connectedViews = getChildrenByType(
+ Collections.singleton(sv),
+ ComrelVisualIDRegistry
+ .getType(ConditionalUnitConditionalUnitElseCompartment4EditPart.VISUAL_ID));
+ connectedViews = getChildrenByType(connectedViews,
+ ComrelVisualIDRegistry
+ .getType(ConditionalUnit7EditPart.VISUAL_ID));
+ result.addAll(createNavigatorItems(connectedViews, parentElement,
+ false));
+ connectedViews = getChildrenByType(
+ Collections.singleton(sv),
+ ComrelVisualIDRegistry
+ .getType(ConditionalUnitConditionalUnitIfCompartment4EditPart.VISUAL_ID));
+ connectedViews = getChildrenByType(connectedViews,
+ ComrelVisualIDRegistry
+ .getType(ConditionCheckEditPart.VISUAL_ID));
+ result.addAll(createNavigatorItems(connectedViews, parentElement,
+ false));
+ connectedViews = getChildrenByType(
+ Collections.singleton(sv),
+ ComrelVisualIDRegistry
+ .getType(ConditionalUnitConditionalUnitThenCompartment4EditPart.VISUAL_ID));
+ connectedViews = getChildrenByType(connectedViews,
+ ComrelVisualIDRegistry
+ .getType(AtomicUnit6EditPart.VISUAL_ID));
+ result.addAll(createNavigatorItems(connectedViews, parentElement,
+ false));
+ connectedViews = getChildrenByType(
+ Collections.singleton(sv),
+ ComrelVisualIDRegistry
+ .getType(ConditionalUnitConditionalUnitElseCompartment4EditPart.VISUAL_ID));
+ connectedViews = getChildrenByType(connectedViews,
+ ComrelVisualIDRegistry
+ .getType(AtomicUnit7EditPart.VISUAL_ID));
+ result.addAll(createNavigatorItems(connectedViews, parentElement,
+ false));
+ return result.toArray();
+ }
+
+ case MultiOutputPort2EditPart.VISUAL_ID: {
+ LinkedList<ComrelAbstractNavigatorItem> result = new LinkedList<ComrelAbstractNavigatorItem>();
+ Node sv = (Node) view;
+ ComrelNavigatorGroup outgoinglinks = new ComrelNavigatorGroup(
+ Messages.NavigatorGroupName_MultiOutputPort_3021_outgoinglinks,
+ "icons/outgoingLinksNavigatorGroup.gif", parentElement); //$NON-NLS-1$
+ Collection<View> connectedViews;
+ connectedViews = getOutgoingLinksByType(Collections.singleton(sv),
+ ComrelVisualIDRegistry
+ .getType(MultiPortMappingEditPart.VISUAL_ID));
+ outgoinglinks.addChildren(createNavigatorItems(connectedViews,
+ outgoinglinks, true));
+ connectedViews = getOutgoingLinksByType(Collections.singleton(sv),
+ ComrelVisualIDRegistry
+ .getType(MultiSinglePortMappingEditPart.VISUAL_ID));
+ outgoinglinks.addChildren(createNavigatorItems(connectedViews,
+ outgoinglinks, true));
+ if (!outgoinglinks.isEmpty()) {
+ result.add(outgoinglinks);
+ }
+ return result.toArray();
+ }
+
+ case AtomicUnit7EditPart.VISUAL_ID: {
+ LinkedList<ComrelAbstractNavigatorItem> result = new LinkedList<ComrelAbstractNavigatorItem>();
+ Node sv = (Node) view;
+ Collection<View> connectedViews;
+ connectedViews = getChildrenByType(Collections.singleton(sv),
+ ComrelVisualIDRegistry
+ .getType(SingleInputPort9EditPart.VISUAL_ID));
+ result.addAll(createNavigatorItems(connectedViews, parentElement,
+ false));
+ return result.toArray();
+ }
+ }
+ return EMPTY_ARRAY;
+ }
+
+ /**
+ * @generated
+ */
+ private Collection<View> getLinksSourceByType(Collection<Edge> edges,
+ String type) {
+ LinkedList<View> result = new LinkedList<View>();
+ for (Edge nextEdge : edges) {
+ View nextEdgeSource = nextEdge.getSource();
+ if (type.equals(nextEdgeSource.getType())
+ && isOwnView(nextEdgeSource)) {
+ result.add(nextEdgeSource);
+ }
+ }
+ return result;
+ }
+
+ /**
+ * @generated
+ */
+ private Collection<View> getLinksTargetByType(Collection<Edge> edges,
+ String type) {
+ LinkedList<View> result = new LinkedList<View>();
+ for (Edge nextEdge : edges) {
+ View nextEdgeTarget = nextEdge.getTarget();
+ if (type.equals(nextEdgeTarget.getType())
+ && isOwnView(nextEdgeTarget)) {
+ result.add(nextEdgeTarget);
+ }
+ }
+ return result;
+ }
+
+ /**
+ * @generated
+ */
+ private Collection<View> getOutgoingLinksByType(
+ Collection<? extends View> nodes, String type) {
+ LinkedList<View> result = new LinkedList<View>();
+ for (View nextNode : nodes) {
+ result.addAll(selectViewsByType(nextNode.getSourceEdges(), type));
+ }
+ return result;
+ }
+
+ /**
+ * @generated
+ */
+ private Collection<View> getIncomingLinksByType(
+ Collection<? extends View> nodes, String type) {
+ LinkedList<View> result = new LinkedList<View>();
+ for (View nextNode : nodes) {
+ result.addAll(selectViewsByType(nextNode.getTargetEdges(), type));
+ }
+ return result;
+ }
+
+ /**
+ * @generated
+ */
+ private Collection<View> getChildrenByType(
+ Collection<? extends View> nodes, String type) {
+ LinkedList<View> result = new LinkedList<View>();
+ for (View nextNode : nodes) {
+ result.addAll(selectViewsByType(nextNode.getChildren(), type));
+ }
+ return result;
+ }
+
+ /**
+ * @generated
+ */
+ private Collection<View> getDiagramLinksByType(
+ Collection<Diagram> diagrams, String type) {
+ ArrayList<View> result = new ArrayList<View>();
+ for (Diagram nextDiagram : diagrams) {
+ result.addAll(selectViewsByType(nextDiagram.getEdges(), type));
+ }
+ return result;
+ }
+
+ // TODO refactor as static method
+ /**
+ * @generated
+ */
+ private Collection<View> selectViewsByType(Collection<View> views,
+ String type) {
+ ArrayList<View> result = new ArrayList<View>();
+ for (View nextView : views) {
+ if (type.equals(nextView.getType()) && isOwnView(nextView)) {
+ result.add(nextView);
+ }
+ }
+ return result;
+ }
+
+ /**
+ * @generated
+ */
+ private boolean isOwnView(View view) {
+ return CompositeRefactoringEditPart.MODEL_ID
+ .equals(ComrelVisualIDRegistry.getModelID(view));
+ }
+
+ /**
+ * @generated
+ */
+ private Collection<ComrelNavigatorItem> createNavigatorItems(
+ Collection<View> views, Object parent, boolean isLeafs) {
+ ArrayList<ComrelNavigatorItem> result = new ArrayList<ComrelNavigatorItem>(
+ views.size());
+ for (View nextView : views) {
+ result.add(new ComrelNavigatorItem(nextView, parent, isLeafs));
+ }
+ return result;
+ }
+
+ /**
+ * @generated
+ */
+ private Collection<ComrelNavigatorItem> getForeignShortcuts(
+ Diagram diagram, Object parent) {
+ LinkedList<View> result = new LinkedList<View>();
+ for (Iterator<View> it = diagram.getChildren().iterator(); it.hasNext();) {
+ View nextView = it.next();
+ if (!isOwnView(nextView)
+ && nextView.getEAnnotation("Shortcut") != null) { //$NON-NLS-1$
+ result.add(nextView);
+ }
+ }
+ return createNavigatorItems(result, parent, false);
+ }
+
+ /**
+ * @generated
+ */
+ public Object getParent(Object element) {
+ if (element instanceof ComrelAbstractNavigatorItem) {
+ ComrelAbstractNavigatorItem abstractNavigatorItem = (ComrelAbstractNavigatorItem) element;
+ return abstractNavigatorItem.getParent();
+ }
+ return null;
+ }
+
+ /**
+ * @generated
+ */
+ public boolean hasChildren(Object element) {
+ return element instanceof IFile || getChildren(element).length > 0;
+ }
+
+}
diff --git a/org.eclipse.emf.refactor.comrel.diagram/src/comrel/diagram/navigator/ComrelNavigatorGroup.java b/org.eclipse.emf.refactor.comrel.diagram/src/comrel/diagram/navigator/ComrelNavigatorGroup.java
new file mode 100644
index 0000000..488b217
--- /dev/null
+++ b/org.eclipse.emf.refactor.comrel.diagram/src/comrel/diagram/navigator/ComrelNavigatorGroup.java
@@ -0,0 +1,100 @@
+/*
+ *
+ */
+package comrel.diagram.navigator;
+
+import java.util.Collection;
+import java.util.LinkedList;
+
+/**
+ * @generated
+ */
+public class ComrelNavigatorGroup extends ComrelAbstractNavigatorItem {
+
+ /**
+ * @generated
+ */
+ private String myGroupName;
+
+ /**
+ * @generated
+ */
+ private String myIcon;
+
+ /**
+ * @generated
+ */
+ private Collection myChildren = new LinkedList();
+
+ /**
+ * @generated
+ */
+ ComrelNavigatorGroup(String groupName, String icon, Object parent) {
+ super(parent);
+ myGroupName = groupName;
+ myIcon = icon;
+ }
+
+ /**
+ * @generated
+ */
+ public String getGroupName() {
+ return myGroupName;
+ }
+
+ /**
+ * @generated
+ */
+ public String getIcon() {
+ return myIcon;
+ }
+
+ /**
+ * @generated
+ */
+ public Object[] getChildren() {
+ return myChildren.toArray();
+ }
+
+ /**
+ * @generated
+ */
+ public void addChildren(Collection children) {
+ myChildren.addAll(children);
+ }
+
+ /**
+ * @generated
+ */
+ public void addChild(Object child) {
+ myChildren.add(child);
+ }
+
+ /**
+ * @generated
+ */
+ public boolean isEmpty() {
+ return myChildren.size() == 0;
+ }
+
+ /**
+ * @generated
+ */
+ public boolean equals(Object obj) {
+ if (obj instanceof comrel.diagram.navigator.ComrelNavigatorGroup) {
+ comrel.diagram.navigator.ComrelNavigatorGroup anotherGroup = (comrel.diagram.navigator.ComrelNavigatorGroup) obj;
+ if (getGroupName().equals(anotherGroup.getGroupName())) {
+ return getParent().equals(anotherGroup.getParent());
+ }
+ }
+ return super.equals(obj);
+ }
+
+ /**
+ * @generated
+ */
+ public int hashCode() {
+ return getGroupName().hashCode();
+ }
+
+}
diff --git a/org.eclipse.emf.refactor.comrel.diagram/src/comrel/diagram/navigator/ComrelNavigatorItem.java b/org.eclipse.emf.refactor.comrel.diagram/src/comrel/diagram/navigator/ComrelNavigatorItem.java
new file mode 100644
index 0000000..02c74ff
--- /dev/null
+++ b/org.eclipse.emf.refactor.comrel.diagram/src/comrel/diagram/navigator/ComrelNavigatorItem.java
@@ -0,0 +1,93 @@
+/*
+ *
+ */
+package comrel.diagram.navigator;
+
+import org.eclipse.core.runtime.IAdapterFactory;
+import org.eclipse.core.runtime.Platform;
+import org.eclipse.emf.ecore.EObject;
+import org.eclipse.emf.ecore.util.EcoreUtil;
+import org.eclipse.gmf.runtime.notation.View;
+
+/**
+ * @generated
+ */
+public class ComrelNavigatorItem extends ComrelAbstractNavigatorItem {
+
+ /**
+ * @generated
+ */
+ static {
+ final Class[] supportedTypes = new Class[] { View.class, EObject.class };
+ Platform.getAdapterManager().registerAdapters(new IAdapterFactory() {
+
+ public Object getAdapter(Object adaptableObject, Class adapterType) {
+ if (adaptableObject instanceof comrel.diagram.navigator.ComrelNavigatorItem
+ && (adapterType == View.class || adapterType == EObject.class)) {
+ return ((comrel.diagram.navigator.ComrelNavigatorItem) adaptableObject)
+ .getView();
+ }
+ return null;
+ }
+
+ public Class[] getAdapterList() {
+ return supportedTypes;
+ }
+ }, comrel.diagram.navigator.ComrelNavigatorItem.class);
+ }
+
+ /**
+ * @generated
+ */
+ private View myView;
+
+ /**
+ * @generated
+ */
+ private boolean myLeaf = false;
+
+ /**
+ * @generated
+ */
+ public ComrelNavigatorItem(View view, Object parent, boolean isLeaf) {
+ super(parent);
+ myView = view;
+ myLeaf = isLeaf;
+ }
+
+ /**
+ * @generated
+ */
+ public View getView() {
+ return myView;
+ }
+
+ /**
+ * @generated
+ */
+ public boolean isLeaf() {
+ return myLeaf;
+ }
+
+ /**
+ * @generated
+ */
+ public boolean equals(Object obj) {
+ if (obj instanceof comrel.diagram.navigator.ComrelNavigatorItem) {
+ return EcoreUtil
+ .getURI(getView())
+ .equals(EcoreUtil
+ .getURI(((comrel.diagram.navigator.ComrelNavigatorItem) obj)
+ .getView()));
+ }
+ return super.equals(obj);
+ }
+
+ /**
+ * @generated
+ */
+ public int hashCode() {
+ return EcoreUtil.getURI(getView()).hashCode();
+ }
+
+}
diff --git a/org.eclipse.emf.refactor.comrel.diagram/src/comrel/diagram/navigator/ComrelNavigatorLabelProvider.java b/org.eclipse.emf.refactor.comrel.diagram/src/comrel/diagram/navigator/ComrelNavigatorLabelProvider.java
new file mode 100644
index 0000000..b9add99
--- /dev/null
+++ b/org.eclipse.emf.refactor.comrel.diagram/src/comrel/diagram/navigator/ComrelNavigatorLabelProvider.java
@@ -0,0 +1,2417 @@
+/*
+ *
+ */
+package comrel.diagram.navigator;
+
+import org.eclipse.core.runtime.IAdaptable;
+import org.eclipse.gmf.runtime.common.ui.services.parser.IParser;
+import org.eclipse.gmf.runtime.common.ui.services.parser.ParserOptions;
+import org.eclipse.gmf.runtime.emf.core.util.EObjectAdapter;
+import org.eclipse.gmf.runtime.emf.type.core.IElementType;
+import org.eclipse.gmf.runtime.notation.View;
+import org.eclipse.jface.resource.ImageDescriptor;
+import org.eclipse.jface.resource.ImageRegistry;
+import org.eclipse.jface.viewers.ITreePathLabelProvider;
+import org.eclipse.jface.viewers.LabelProvider;
+import org.eclipse.jface.viewers.TreePath;
+import org.eclipse.jface.viewers.ViewerLabel;
+import org.eclipse.swt.graphics.Image;
+import org.eclipse.ui.IMemento;
+import org.eclipse.ui.navigator.ICommonContentExtensionSite;
+import org.eclipse.ui.navigator.ICommonLabelProvider;
+
+import comrel.CompositeRefactoring;
+import comrel.diagram.edit.parts.*;
+import comrel.diagram.part.ComrelDiagramEditorPlugin;
+import comrel.diagram.part.ComrelVisualIDRegistry;
+import comrel.diagram.providers.ComrelElementTypes;
+import comrel.diagram.providers.ComrelParserProvider;
+
+/**
+ * @generated
+ */
+public class ComrelNavigatorLabelProvider extends LabelProvider implements
+ ICommonLabelProvider, ITreePathLabelProvider {
+
+ /**
+ * @generated
+ */
+ static {
+ ComrelDiagramEditorPlugin
+ .getInstance()
+ .getImageRegistry()
+ .put("Navigator?UnknownElement", ImageDescriptor.getMissingImageDescriptor()); //$NON-NLS-1$
+ ComrelDiagramEditorPlugin
+ .getInstance()
+ .getImageRegistry()
+ .put("Navigator?ImageNotFound", ImageDescriptor.getMissingImageDescriptor()); //$NON-NLS-1$
+ }
+
+ /**
+ * @generated
+ */
+ public void updateLabel(ViewerLabel label, TreePath elementPath) {
+ Object element = elementPath.getLastSegment();
+ if (element instanceof ComrelNavigatorItem
+ && !isOwnView(((ComrelNavigatorItem) element).getView())) {
+ return;
+ }
+ label.setText(getText(element));
+ label.setImage(getImage(element));
+ }
+
+ /**
+ * @generated
+ */
+ public Image getImage(Object element) {
+ if (element instanceof ComrelNavigatorGroup) {
+ ComrelNavigatorGroup group = (ComrelNavigatorGroup) element;
+ return ComrelDiagramEditorPlugin.getInstance().getBundledImage(
+ group.getIcon());
+ }
+
+ if (element instanceof ComrelNavigatorItem) {
+ ComrelNavigatorItem navigatorItem = (ComrelNavigatorItem) element;
+ if (!isOwnView(navigatorItem.getView())) {
+ return super.getImage(element);
+ }
+ return getImage(navigatorItem.getView());
+ }
+
+ // Due to plugin.xml content will be called only for "own" views
+ if (element instanceof IAdaptable) {
+ View view = (View) ((IAdaptable) element).getAdapter(View.class);
+ if (view != null && isOwnView(view)) {
+ return getImage(view);
+ }
+ }
+
+ return super.getImage(element);
+ }
+
+ /**
+ * @generated
+ */
+ public Image getImage(View view) {
+ switch (ComrelVisualIDRegistry.getVisualID(view)) {
+ case CompositeRefactoringEditPart.VISUAL_ID:
+ return getImage(
+ "Navigator?Diagram?http://comrel/0.1?CompositeRefactoring", ComrelElementTypes.CompositeRefactoring_1000); //$NON-NLS-1$
+ case ConditionCheckEditPart.VISUAL_ID:
+ return getImage(
+ "Navigator?Node?http://comrel/0.1?ConditionCheck", ComrelElementTypes.ConditionCheck_3076); //$NON-NLS-1$
+ case SingleInputPort4EditPart.VISUAL_ID:
+ return getImage(
+ "Navigator?Node?http://comrel/0.1?SingleInputPort", ComrelElementTypes.SingleInputPort_3009); //$NON-NLS-1$
+ case CartesianQueuedUnit6EditPart.VISUAL_ID:
+ return getImage(
+ "Navigator?Node?http://comrel/0.1?CartesianQueuedUnit", ComrelElementTypes.CartesianQueuedUnit_3033); //$NON-NLS-1$
+ case CartesianQueuedUnitEditPart.VISUAL_ID:
+ return getImage(
+ "Navigator?TopLevelNode?http://comrel/0.1?CartesianQueuedUnit", ComrelElementTypes.CartesianQueuedUnit_2002); //$NON-NLS-1$
+ case CartesianQueuedUnit4EditPart.VISUAL_ID:
+ return getImage(
+ "Navigator?Node?http://comrel/0.1?CartesianQueuedUnit", ComrelElementTypes.CartesianQueuedUnit_3025); //$NON-NLS-1$
+ case AtomicUnit4EditPart.VISUAL_ID:
+ return getImage(
+ "Navigator?Node?http://comrel/0.1?AtomicUnit", ComrelElementTypes.AtomicUnit_3068); //$NON-NLS-1$
+ case ParallelQueuedUnit7EditPart.VISUAL_ID:
+ return getImage(
+ "Navigator?Node?http://comrel/0.1?ParallelQueuedUnit", ComrelElementTypes.ParallelQueuedUnit_3048); //$NON-NLS-1$
+ case SingleQueuedUnit5EditPart.VISUAL_ID:
+ return getImage(
+ "Navigator?Node?http://comrel/0.1?SingleQueuedUnit", ComrelElementTypes.SingleQueuedUnit_3059); //$NON-NLS-1$
+ case MultiFilterUnit3EditPart.VISUAL_ID:
+ return getImage(
+ "Navigator?Node?http://comrel/0.1?MultiFilterUnit", ComrelElementTypes.MultiFilterUnit_3053); //$NON-NLS-1$
+ case SinglePortMappingEditPart.VISUAL_ID:
+ return getImage(
+ "Navigator?Link?http://comrel/0.1?SinglePortMapping", ComrelElementTypes.SinglePortMapping_4001); //$NON-NLS-1$
+ case SequentialUnit7EditPart.VISUAL_ID:
+ return getImage(
+ "Navigator?Node?http://comrel/0.1?SequentialUnit", ComrelElementTypes.SequentialUnit_3073); //$NON-NLS-1$
+ case ConditionalUnit6EditPart.VISUAL_ID:
+ return getImage(
+ "Navigator?Node?http://comrel/0.1?ConditionalUnit", ComrelElementTypes.ConditionalUnit_3072); //$NON-NLS-1$
+ case AtomicUnitEditPart.VISUAL_ID:
+ return getImage(
+ "Navigator?TopLevelNode?http://comrel/0.1?AtomicUnit", ComrelElementTypes.AtomicUnit_2007); //$NON-NLS-1$
+ case MultiFeatureUnit5EditPart.VISUAL_ID:
+ return getImage(
+ "Navigator?Node?http://comrel/0.1?MultiFeatureUnit", ComrelElementTypes.MultiFeatureUnit_3062); //$NON-NLS-1$
+ case ConditionalUnit3EditPart.VISUAL_ID:
+ return getImage(
+ "Navigator?Node?http://comrel/0.1?ConditionalUnit", ComrelElementTypes.ConditionalUnit_3046); //$NON-NLS-1$
+ case SingleFeatureUnitEditPart.VISUAL_ID:
+ return getImage(
+ "Navigator?Node?http://comrel/0.1?SingleFeatureUnit", ComrelElementTypes.SingleFeatureUnit_3008); //$NON-NLS-1$
+ case AtomicUnit6EditPart.VISUAL_ID:
+ return getImage(
+ "Navigator?Node?http://comrel/0.1?AtomicUnit", ComrelElementTypes.AtomicUnit_3077); //$NON-NLS-1$
+ case MultiFeatureUnit2EditPart.VISUAL_ID:
+ return getImage(
+ "Navigator?Node?http://comrel/0.1?MultiFeatureUnit", ComrelElementTypes.MultiFeatureUnit_3039); //$NON-NLS-1$
+ case CartesianQueuedUnit5EditPart.VISUAL_ID:
+ return getImage(
+ "Navigator?Node?http://comrel/0.1?CartesianQueuedUnit", ComrelElementTypes.CartesianQueuedUnit_3029); //$NON-NLS-1$
+ case ConditionalUnit2EditPart.VISUAL_ID:
+ return getImage(
+ "Navigator?Node?http://comrel/0.1?ConditionalUnit", ComrelElementTypes.ConditionalUnit_3030); //$NON-NLS-1$
+ case SingleFeatureUnit4EditPart.VISUAL_ID:
+ return getImage(
+ "Navigator?Node?http://comrel/0.1?SingleFeatureUnit", ComrelElementTypes.SingleFeatureUnit_3055); //$NON-NLS-1$
+ case SequentialUnit5EditPart.VISUAL_ID:
+ return getImage(
+ "Navigator?Node?http://comrel/0.1?SequentialUnit", ComrelElementTypes.SequentialUnit_3069); //$NON-NLS-1$
+ case AtomicUnit2EditPart.VISUAL_ID:
+ return getImage(
+ "Navigator?Node?http://comrel/0.1?AtomicUnit", ComrelElementTypes.AtomicUnit_3034); //$NON-NLS-1$
+ case MultiFeatureUnitEditPart.VISUAL_ID:
+ return getImage(
+ "Navigator?Node?http://comrel/0.1?MultiFeatureUnit", ComrelElementTypes.MultiFeatureUnit_3012); //$NON-NLS-1$
+ case SingleInputPort8EditPart.VISUAL_ID:
+ return getImage(
+ "Navigator?Node?http://comrel/0.1?SingleInputPort", ComrelElementTypes.SingleInputPort_3031); //$NON-NLS-1$
+ case SingleInputPort5EditPart.VISUAL_ID:
+ return getImage(
+ "Navigator?Node?http://comrel/0.1?SingleInputPort", ComrelElementTypes.SingleInputPort_3013); //$NON-NLS-1$
+ case MultiFilterUnitEditPart.VISUAL_ID:
+ return getImage(
+ "Navigator?Node?http://comrel/0.1?MultiFilterUnit", ComrelElementTypes.MultiFilterUnit_3019); //$NON-NLS-1$
+ case CartesianQueuedUnit3EditPart.VISUAL_ID:
+ return getImage(
+ "Navigator?Node?http://comrel/0.1?CartesianQueuedUnit", ComrelElementTypes.CartesianQueuedUnit_3007); //$NON-NLS-1$
+ case MultiInputPort4EditPart.VISUAL_ID:
+ return getImage(
+ "Navigator?Node?http://comrel/0.1?MultiInputPort", ComrelElementTypes.MultiInputPort_3014); //$NON-NLS-1$
+ case ParallelQueuedUnit3EditPart.VISUAL_ID:
+ return getImage(
+ "Navigator?Node?http://comrel/0.1?ParallelQueuedUnit", ComrelElementTypes.ParallelQueuedUnit_3036); //$NON-NLS-1$
+ case SingleFeatureUnit2EditPart.VISUAL_ID:
+ return getImage(
+ "Navigator?Node?http://comrel/0.1?SingleFeatureUnit", ComrelElementTypes.SingleFeatureUnit_3038); //$NON-NLS-1$
+ case MultiInputPort9EditPart.VISUAL_ID:
+ return getImage(
+ "Navigator?Node?http://comrel/0.1?MultiInputPort", ComrelElementTypes.MultiInputPort_3032); //$NON-NLS-1$
+ case MultiInputPort7EditPart.VISUAL_ID:
+ return getImage(
+ "Navigator?Node?http://comrel/0.1?MultiInputPort", ComrelElementTypes.MultiInputPort_3024); //$NON-NLS-1$
+ case ConditionalUnit4EditPart.VISUAL_ID:
+ return getImage(
+ "Navigator?Node?http://comrel/0.1?ConditionalUnit", ComrelElementTypes.ConditionalUnit_3066); //$NON-NLS-1$
+ case SequentialUnit4EditPart.VISUAL_ID:
+ return getImage(
+ "Navigator?Node?http://comrel/0.1?SequentialUnit", ComrelElementTypes.SequentialUnit_3060); //$NON-NLS-1$
+ case SingleInputPort2EditPart.VISUAL_ID:
+ return getImage(
+ "Navigator?Node?http://comrel/0.1?SingleInputPort", ComrelElementTypes.SingleInputPort_3001); //$NON-NLS-1$
+ case SingleInputPort9EditPart.VISUAL_ID:
+ return getImage(
+ "Navigator?Node?http://comrel/0.1?SingleInputPort", ComrelElementTypes.SingleInputPort_3035); //$NON-NLS-1$
+ case MultiInputPort3EditPart.VISUAL_ID:
+ return getImage(
+ "Navigator?Node?http://comrel/0.1?MultiInputPort", ComrelElementTypes.MultiInputPort_3010); //$NON-NLS-1$
+ case ConditionalUnitEditPart.VISUAL_ID:
+ return getImage(
+ "Navigator?TopLevelNode?http://comrel/0.1?ConditionalUnit", ComrelElementTypes.ConditionalUnit_2006); //$NON-NLS-1$
+ case SingleFilterUnitEditPart.VISUAL_ID:
+ return getImage(
+ "Navigator?Node?http://comrel/0.1?SingleFilterUnit", ComrelElementTypes.SingleFilterUnit_3016); //$NON-NLS-1$
+ case SingleOutputPortEditPart.VISUAL_ID:
+ return getImage(
+ "Navigator?Node?http://comrel/0.1?SingleOutputPort", ComrelElementTypes.SingleOutputPort_3011); //$NON-NLS-1$
+ case MultiFilterUnit4EditPart.VISUAL_ID:
+ return getImage(
+ "Navigator?Node?http://comrel/0.1?MultiFilterUnit", ComrelElementTypes.MultiFilterUnit_3058); //$NON-NLS-1$
+ case SingleFeatureUnit5EditPart.VISUAL_ID:
+ return getImage(
+ "Navigator?Node?http://comrel/0.1?SingleFeatureUnit", ComrelElementTypes.SingleFeatureUnit_3061); //$NON-NLS-1$
+ case MultiFilterUnit5EditPart.VISUAL_ID:
+ return getImage(
+ "Navigator?Node?http://comrel/0.1?MultiFilterUnit", ComrelElementTypes.MultiFilterUnit_3064); //$NON-NLS-1$
+ case SingleFeatureUnit3EditPart.VISUAL_ID:
+ return getImage(
+ "Navigator?Node?http://comrel/0.1?SingleFeatureUnit", ComrelElementTypes.SingleFeatureUnit_3050); //$NON-NLS-1$
+ case SingleQueuedUnit4EditPart.VISUAL_ID:
+ return getImage(
+ "Navigator?Node?http://comrel/0.1?SingleQueuedUnit", ComrelElementTypes.SingleQueuedUnit_3054); //$NON-NLS-1$
+ case SequentialUnit3EditPart.VISUAL_ID:
+ return getImage(
+ "Navigator?Node?http://comrel/0.1?SequentialUnit", ComrelElementTypes.SequentialUnit_3044); //$NON-NLS-1$
+ case SingleQueuedUnit6EditPart.VISUAL_ID:
+ return getImage(
+ "Navigator?Node?http://comrel/0.1?SingleQueuedUnit", ComrelElementTypes.SingleQueuedUnit_3065); //$NON-NLS-1$
+ case SingleQueuedUnit3EditPart.VISUAL_ID:
+ return getImage(
+ "Navigator?Node?http://comrel/0.1?SingleQueuedUnit", ComrelElementTypes.SingleQueuedUnit_3042); //$NON-NLS-1$
+ case SingleFilterUnit5EditPart.VISUAL_ID:
+ return getImage(
+ "Navigator?Node?http://comrel/0.1?SingleFilterUnit", ComrelElementTypes.SingleFilterUnit_3063); //$NON-NLS-1$
+ case SingleFilterUnit4EditPart.VISUAL_ID:
+ return getImage(
+ "Navigator?Node?http://comrel/0.1?SingleFilterUnit", ComrelElementTypes.SingleFilterUnit_3057); //$NON-NLS-1$
+ case SequentialUnitEditPart.VISUAL_ID:
+ return getImage(
+ "Navigator?TopLevelNode?http://comrel/0.1?SequentialUnit", ComrelElementTypes.SequentialUnit_2005); //$NON-NLS-1$
+ case ParallelQueuedUnit2EditPart.VISUAL_ID:
+ return getImage(
+ "Navigator?Node?http://comrel/0.1?ParallelQueuedUnit", ComrelElementTypes.ParallelQueuedUnit_3004); //$NON-NLS-1$
+ case MultiInputPort8EditPart.VISUAL_ID:
+ return getImage(
+ "Navigator?Node?http://comrel/0.1?MultiInputPort", ComrelElementTypes.MultiInputPort_3028); //$NON-NLS-1$
+ case SingleQueuedUnitEditPart.VISUAL_ID:
+ return getImage(
+ "Navigator?TopLevelNode?http://comrel/0.1?SingleQueuedUnit", ComrelElementTypes.SingleQueuedUnit_2004); //$NON-NLS-1$
+ case MultiInputPort5EditPart.VISUAL_ID:
+ return getImage(
+ "Navigator?Node?http://comrel/0.1?MultiInputPort", ComrelElementTypes.MultiInputPort_3017); //$NON-NLS-1$
+ case SingleInputPort3EditPart.VISUAL_ID:
+ return getImage(
+ "Navigator?Node?http://comrel/0.1?SingleInputPort", ComrelElementTypes.SingleInputPort_3005); //$NON-NLS-1$
+ case SingleQueuedUnit2EditPart.VISUAL_ID:
+ return getImage(
+ "Navigator?Node?http://comrel/0.1?SingleQueuedUnit", ComrelElementTypes.SingleQueuedUnit_3022); //$NON-NLS-1$
+ case CartesianQueuedUnit7EditPart.VISUAL_ID:
+ return getImage(
+ "Navigator?Node?http://comrel/0.1?CartesianQueuedUnit", ComrelElementTypes.CartesianQueuedUnit_3047); //$NON-NLS-1$
+ case AtomicUnit3EditPart.VISUAL_ID:
+ return getImage(
+ "Navigator?Node?http://comrel/0.1?AtomicUnit", ComrelElementTypes.AtomicUnit_3049); //$NON-NLS-1$
+ case ParallelQueuedUnit5EditPart.VISUAL_ID:
+ return getImage(
+ "Navigator?Node?http://comrel/0.1?ParallelQueuedUnit", ComrelElementTypes.ParallelQueuedUnit_3043); //$NON-NLS-1$
+ case MultiInputPortEditPart.VISUAL_ID:
+ return getImage(
+ "Navigator?Node?http://comrel/0.1?MultiInputPort", ComrelElementTypes.MultiInputPort_3002); //$NON-NLS-1$
+ case SequentialUnit6EditPart.VISUAL_ID:
+ return getImage(
+ "Navigator?Node?http://comrel/0.1?SequentialUnit", ComrelElementTypes.SequentialUnit_3070); //$NON-NLS-1$
+ case MultiFeatureUnit4EditPart.VISUAL_ID:
+ return getImage(
+ "Navigator?Node?http://comrel/0.1?MultiFeatureUnit", ComrelElementTypes.MultiFeatureUnit_3056); //$NON-NLS-1$
+ case SingleFilterUnit2EditPart.VISUAL_ID:
+ return getImage(
+ "Navigator?Node?http://comrel/0.1?SingleFilterUnit", ComrelElementTypes.SingleFilterUnit_3040); //$NON-NLS-1$
+ case SingleInputPort6EditPart.VISUAL_ID:
+ return getImage(
+ "Navigator?Node?http://comrel/0.1?SingleInputPort", ComrelElementTypes.SingleInputPort_3023); //$NON-NLS-1$
+ case CartesianQueuedUnit2EditPart.VISUAL_ID:
+ return getImage(
+ "Navigator?Node?http://comrel/0.1?CartesianQueuedUnit", ComrelElementTypes.CartesianQueuedUnit_3003); //$NON-NLS-1$
+ case ParallelQueuedUnit6EditPart.VISUAL_ID:
+ return getImage(
+ "Navigator?Node?http://comrel/0.1?ParallelQueuedUnit", ComrelElementTypes.ParallelQueuedUnit_3045); //$NON-NLS-1$
+ case SingleInputPort7EditPart.VISUAL_ID:
+ return getImage(
+ "Navigator?Node?http://comrel/0.1?SingleInputPort", ComrelElementTypes.SingleInputPort_3027); //$NON-NLS-1$
+ case MultiInputPort2EditPart.VISUAL_ID:
+ return getImage(
+ "Navigator?Node?http://comrel/0.1?MultiInputPort", ComrelElementTypes.MultiInputPort_3006); //$NON-NLS-1$
+ case SingleInputPortEditPart.VISUAL_ID:
+ return getImage(
+ "Navigator?TopLevelNode?http://comrel/0.1?SingleInputPort", ComrelElementTypes.SingleInputPort_2001); //$NON-NLS-1$
+ case MultiFilterUnit2EditPart.VISUAL_ID:
+ return getImage(
+ "Navigator?Node?http://comrel/0.1?MultiFilterUnit", ComrelElementTypes.MultiFilterUnit_3041); //$NON-NLS-1$
+ case SequentialUnit2EditPart.VISUAL_ID:
+ return getImage(
+ "Navigator?Node?http://comrel/0.1?SequentialUnit", ComrelElementTypes.SequentialUnit_3026); //$NON-NLS-1$
+ case ConditionalUnit7EditPart.VISUAL_ID:
+ return getImage(
+ "Navigator?Node?http://comrel/0.1?ConditionalUnit", ComrelElementTypes.ConditionalUnit_3075); //$NON-NLS-1$
+ case SingleFilterUnit3EditPart.VISUAL_ID:
+ return getImage(
+ "Navigator?Node?http://comrel/0.1?SingleFilterUnit", ComrelElementTypes.SingleFilterUnit_3052); //$NON-NLS-1$
+ case MultiFeatureUnit3EditPart.VISUAL_ID:
+ return getImage(
+ "Navigator?Node?http://comrel/0.1?MultiFeatureUnit", ComrelElementTypes.MultiFeatureUnit_3051); //$NON-NLS-1$
+ case ParallelQueuedUnitEditPart.VISUAL_ID:
+ return getImage(
+ "Navigator?TopLevelNode?http://comrel/0.1?ParallelQueuedUnit", ComrelElementTypes.ParallelQueuedUnit_2003); //$NON-NLS-1$
+ case MultiOutputPortEditPart.VISUAL_ID:
+ return getImage(
+ "Navigator?Node?http://comrel/0.1?MultiOutputPort", ComrelElementTypes.MultiOutputPort_3015); //$NON-NLS-1$
+ case AtomicUnit5EditPart.VISUAL_ID:
+ return getImage(
+ "Navigator?Node?http://comrel/0.1?AtomicUnit", ComrelElementTypes.AtomicUnit_3074); //$NON-NLS-1$
+ case ParallelQueuedUnit4EditPart.VISUAL_ID:
+ return getImage(
+ "Navigator?Node?http://comrel/0.1?ParallelQueuedUnit", ComrelElementTypes.ParallelQueuedUnit_3037); //$NON-NLS-1$
+ case MultiPortMappingEditPart.VISUAL_ID:
+ return getImage(
+ "Navigator?Link?http://comrel/0.1?MultiPortMapping", ComrelElementTypes.MultiPortMapping_4002); //$NON-NLS-1$
+ case MultiInputPort6EditPart.VISUAL_ID:
+ return getImage(
+ "Navigator?Node?http://comrel/0.1?MultiInputPort", ComrelElementTypes.MultiInputPort_3020); //$NON-NLS-1$
+ case MultiSinglePortMappingEditPart.VISUAL_ID:
+ return getImage(
+ "Navigator?Link?http://comrel/0.1?MultiSinglePortMapping", ComrelElementTypes.MultiSinglePortMapping_4003); //$NON-NLS-1$
+ case SingleQueuedUnit7EditPart.VISUAL_ID:
+ return getImage(
+ "Navigator?Node?http://comrel/0.1?SingleQueuedUnit", ComrelElementTypes.SingleQueuedUnit_3067); //$NON-NLS-1$
+ case SingleOutputPort2EditPart.VISUAL_ID:
+ return getImage(
+ "Navigator?Node?http://comrel/0.1?SingleOutputPort", ComrelElementTypes.SingleOutputPort_3018); //$NON-NLS-1$
+ case ConditionalUnit5EditPart.VISUAL_ID:
+ return getImage(
+ "Navigator?Node?http://comrel/0.1?ConditionalUnit", ComrelElementTypes.ConditionalUnit_3071); //$NON-NLS-1$
+ case MultiOutputPort2EditPart.VISUAL_ID:
+ return getImage(
+ "Navigator?Node?http://comrel/0.1?MultiOutputPort", ComrelElementTypes.MultiOutputPort_3021); //$NON-NLS-1$
+ case AtomicUnit7EditPart.VISUAL_ID:
+ return getImage(
+ "Navigator?Node?http://comrel/0.1?AtomicUnit", ComrelElementTypes.AtomicUnit_3078); //$NON-NLS-1$
+ }
+ return getImage("Navigator?UnknownElement", null); //$NON-NLS-1$
+ }
+
+ /**
+ * @generated
+ */
+ private Image getImage(String key, IElementType elementType) {
+ ImageRegistry imageRegistry = ComrelDiagramEditorPlugin.getInstance()
+ .getImageRegistry();
+ Image image = imageRegistry.get(key);
+ if (image == null && elementType != null
+ && ComrelElementTypes.isKnownElementType(elementType)) {
+ image = ComrelElementTypes.getImage(elementType);
+ imageRegistry.put(key, image);
+ }
+
+ if (image == null) {
+ image = imageRegistry.get("Navigator?ImageNotFound"); //$NON-NLS-1$
+ imageRegistry.put(key, image);
+ }
+ return image;
+ }
+
+ /**
+ * @generated
+ */
+ public String getText(Object element) {
+ if (element instanceof ComrelNavigatorGroup) {
+ ComrelNavigatorGroup group = (ComrelNavigatorGroup) element;
+ return group.getGroupName();
+ }
+
+ if (element instanceof ComrelNavigatorItem) {
+ ComrelNavigatorItem navigatorItem = (ComrelNavigatorItem) element;
+ if (!isOwnView(navigatorItem.getView())) {
+ return null;
+ }
+ return getText(navigatorItem.getView());
+ }
+
+ // Due to plugin.xml content will be called only for "own" views
+ if (element instanceof IAdaptable) {
+ View view = (View) ((IAdaptable) element).getAdapter(View.class);
+ if (view != null && isOwnView(view)) {
+ return getText(view);
+ }
+ }
+
+ return super.getText(element);
+ }
+
+ /**
+ * @generated
+ */
+ public String getText(View view) {
+ if (view.getElement() != null && view.getElement().eIsProxy()) {
+ return getUnresolvedDomainElementProxyText(view);
+ }
+ switch (ComrelVisualIDRegistry.getVisualID(view)) {
+ case CompositeRefactoringEditPart.VISUAL_ID:
+ return getCompositeRefactoring_1000Text(view);
+ case ConditionCheckEditPart.VISUAL_ID:
+ return getConditionCheck_3076Text(view);
+ case SingleInputPort4EditPart.VISUAL_ID:
+ return getSingleInputPort_3009Text(view);
+ case CartesianQueuedUnit6EditPart.VISUAL_ID:
+ return getCartesianQueuedUnit_3033Text(view);
+ case CartesianQueuedUnitEditPart.VISUAL_ID:
+ return getCartesianQueuedUnit_2002Text(view);
+ case CartesianQueuedUnit4EditPart.VISUAL_ID:
+ return getCartesianQueuedUnit_3025Text(view);
+ case AtomicUnit4EditPart.VISUAL_ID:
+ return getAtomicUnit_3068Text(view);
+ case ParallelQueuedUnit7EditPart.VISUAL_ID:
+ return getParallelQueuedUnit_3048Text(view);
+ case SingleQueuedUnit5EditPart.VISUAL_ID:
+ return getSingleQueuedUnit_3059Text(view);
+ case MultiFilterUnit3EditPart.VISUAL_ID:
+ return getMultiFilterUnit_3053Text(view);
+ case SinglePortMappingEditPart.VISUAL_ID:
+ return getSinglePortMapping_4001Text(view);
+ case SequentialUnit7EditPart.VISUAL_ID:
+ return getSequentialUnit_3073Text(view);
+ case ConditionalUnit6EditPart.VISUAL_ID:
+ return getConditionalUnit_3072Text(view);
+ case AtomicUnitEditPart.VISUAL_ID:
+ return getAtomicUnit_2007Text(view);
+ case MultiFeatureUnit5EditPart.VISUAL_ID:
+ return getMultiFeatureUnit_3062Text(view);
+ case ConditionalUnit3EditPart.VISUAL_ID:
+ return getConditionalUnit_3046Text(view);
+ case SingleFeatureUnitEditPart.VISUAL_ID:
+ return getSingleFeatureUnit_3008Text(view);
+ case AtomicUnit6EditPart.VISUAL_ID:
+ return getAtomicUnit_3077Text(view);
+ case MultiFeatureUnit2EditPart.VISUAL_ID:
+ return getMultiFeatureUnit_3039Text(view);
+ case CartesianQueuedUnit5EditPart.VISUAL_ID:
+ return getCartesianQueuedUnit_3029Text(view);
+ case ConditionalUnit2EditPart.VISUAL_ID:
+ return getConditionalUnit_3030Text(view);
+ case SingleFeatureUnit4EditPart.VISUAL_ID:
+ return getSingleFeatureUnit_3055Text(view);
+ case SequentialUnit5EditPart.VISUAL_ID:
+ return getSequentialUnit_3069Text(view);
+ case AtomicUnit2EditPart.VISUAL_ID:
+ return getAtomicUnit_3034Text(view);
+ case MultiFeatureUnitEditPart.VISUAL_ID:
+ return getMultiFeatureUnit_3012Text(view);
+ case SingleInputPort8EditPart.VISUAL_ID:
+ return getSingleInputPort_3031Text(view);
+ case SingleInputPort5EditPart.VISUAL_ID:
+ return getSingleInputPort_3013Text(view);
+ case MultiFilterUnitEditPart.VISUAL_ID:
+ return getMultiFilterUnit_3019Text(view);
+ case CartesianQueuedUnit3EditPart.VISUAL_ID:
+ return getCartesianQueuedUnit_3007Text(view);
+ case MultiInputPort4EditPart.VISUAL_ID:
+ return getMultiInputPort_3014Text(view);
+ case ParallelQueuedUnit3EditPart.VISUAL_ID:
+ return getParallelQueuedUnit_3036Text(view);
+ case SingleFeatureUnit2EditPart.VISUAL_ID:
+ return getSingleFeatureUnit_3038Text(view);
+ case MultiInputPort9EditPart.VISUAL_ID:
+ return getMultiInputPort_3032Text(view);
+ case MultiInputPort7EditPart.VISUAL_ID:
+ return getMultiInputPort_3024Text(view);
+ case ConditionalUnit4EditPart.VISUAL_ID:
+ return getConditionalUnit_3066Text(view);
+ case SequentialUnit4EditPart.VISUAL_ID:
+ return getSequentialUnit_3060Text(view);
+ case SingleInputPort2EditPart.VISUAL_ID:
+ return getSingleInputPort_3001Text(view);
+ case SingleInputPort9EditPart.VISUAL_ID:
+ return getSingleInputPort_3035Text(view);
+ case MultiInputPort3EditPart.VISUAL_ID:
+ return getMultiInputPort_3010Text(view);
+ case ConditionalUnitEditPart.VISUAL_ID:
+ return getConditionalUnit_2006Text(view);
+ case SingleFilterUnitEditPart.VISUAL_ID:
+ return getSingleFilterUnit_3016Text(view);
+ case SingleOutputPortEditPart.VISUAL_ID:
+ return getSingleOutputPort_3011Text(view);
+ case MultiFilterUnit4EditPart.VISUAL_ID:
+ return getMultiFilterUnit_3058Text(view);
+ case SingleFeatureUnit5EditPart.VISUAL_ID:
+ return getSingleFeatureUnit_3061Text(view);
+ case MultiFilterUnit5EditPart.VISUAL_ID:
+ return getMultiFilterUnit_3064Text(view);
+ case SingleFeatureUnit3EditPart.VISUAL_ID:
+ return getSingleFeatureUnit_3050Text(view);
+ case SingleQueuedUnit4EditPart.VISUAL_ID:
+ return getSingleQueuedUnit_3054Text(view);
+ case SequentialUnit3EditPart.VISUAL_ID:
+ return getSequentialUnit_3044Text(view);
+ case SingleQueuedUnit6EditPart.VISUAL_ID:
+ return getSingleQueuedUnit_3065Text(view);
+ case SingleQueuedUnit3EditPart.VISUAL_ID:
+ return getSingleQueuedUnit_3042Text(view);
+ case SingleFilterUnit5EditPart.VISUAL_ID:
+ return getSingleFilterUnit_3063Text(view);
+ case SingleFilterUnit4EditPart.VISUAL_ID:
+ return getSingleFilterUnit_3057Text(view);
+ case SequentialUnitEditPart.VISUAL_ID:
+ return getSequentialUnit_2005Text(view);
+ case ParallelQueuedUnit2EditPart.VISUAL_ID:
+ return getParallelQueuedUnit_3004Text(view);
+ case MultiInputPort8EditPart.VISUAL_ID:
+ return getMultiInputPort_3028Text(view);
+ case SingleQueuedUnitEditPart.VISUAL_ID:
+ return getSingleQueuedUnit_2004Text(view);
+ case MultiInputPort5EditPart.VISUAL_ID:
+ return getMultiInputPort_3017Text(view);
+ case SingleInputPort3EditPart.VISUAL_ID:
+ return getSingleInputPort_3005Text(view);
+ case SingleQueuedUnit2EditPart.VISUAL_ID:
+ return getSingleQueuedUnit_3022Text(view);
+ case CartesianQueuedUnit7EditPart.VISUAL_ID:
+ return getCartesianQueuedUnit_3047Text(view);
+ case AtomicUnit3EditPart.VISUAL_ID:
+ return getAtomicUnit_3049Text(view);
+ case ParallelQueuedUnit5EditPart.VISUAL_ID:
+ return getParallelQueuedUnit_3043Text(view);
+ case MultiInputPortEditPart.VISUAL_ID:
+ return getMultiInputPort_3002Text(view);
+ case SequentialUnit6EditPart.VISUAL_ID:
+ return getSequentialUnit_3070Text(view);
+ case MultiFeatureUnit4EditPart.VISUAL_ID:
+ return getMultiFeatureUnit_3056Text(view);
+ case SingleFilterUnit2EditPart.VISUAL_ID:
+ return getSingleFilterUnit_3040Text(view);
+ case SingleInputPort6EditPart.VISUAL_ID:
+ return getSingleInputPort_3023Text(view);
+ case CartesianQueuedUnit2EditPart.VISUAL_ID:
+ return getCartesianQueuedUnit_3003Text(view);
+ case ParallelQueuedUnit6EditPart.VISUAL_ID:
+ return getParallelQueuedUnit_3045Text(view);
+ case SingleInputPort7EditPart.VISUAL_ID:
+ return getSingleInputPort_3027Text(view);
+ case MultiInputPort2EditPart.VISUAL_ID:
+ return getMultiInputPort_3006Text(view);
+ case SingleInputPortEditPart.VISUAL_ID:
+ return getSingleInputPort_2001Text(view);
+ case MultiFilterUnit2EditPart.VISUAL_ID:
+ return getMultiFilterUnit_3041Text(view);
+ case SequentialUnit2EditPart.VISUAL_ID:
+ return getSequentialUnit_3026Text(view);
+ case ConditionalUnit7EditPart.VISUAL_ID:
+ return getConditionalUnit_3075Text(view);
+ case SingleFilterUnit3EditPart.VISUAL_ID:
+ return getSingleFilterUnit_3052Text(view);
+ case MultiFeatureUnit3EditPart.VISUAL_ID:
+ return getMultiFeatureUnit_3051Text(view);
+ case ParallelQueuedUnitEditPart.VISUAL_ID:
+ return getParallelQueuedUnit_2003Text(view);
+ case MultiOutputPortEditPart.VISUAL_ID:
+ return getMultiOutputPort_3015Text(view);
+ case AtomicUnit5EditPart.VISUAL_ID:
+ return getAtomicUnit_3074Text(view);
+ case ParallelQueuedUnit4EditPart.VISUAL_ID:
+ return getParallelQueuedUnit_3037Text(view);
+ case MultiPortMappingEditPart.VISUAL_ID:
+ return getMultiPortMapping_4002Text(view);
+ case MultiInputPort6EditPart.VISUAL_ID:
+ return getMultiInputPort_3020Text(view);
+ case MultiSinglePortMappingEditPart.VISUAL_ID:
+ return getMultiSinglePortMapping_4003Text(view);
+ case SingleQueuedUnit7EditPart.VISUAL_ID:
+ return getSingleQueuedUnit_3067Text(view);
+ case SingleOutputPort2EditPart.VISUAL_ID:
+ return getSingleOutputPort_3018Text(view);
+ case ConditionalUnit5EditPart.VISUAL_ID:
+ return getConditionalUnit_3071Text(view);
+ case MultiOutputPort2EditPart.VISUAL_ID:
+ return getMultiOutputPort_3021Text(view);
+ case AtomicUnit7EditPart.VISUAL_ID:
+ return getAtomicUnit_3078Text(view);
+ }
+ return getUnknownElementText(view);
+ }
+
+ /**
+ * @generated
+ */
+ private String getMultiInputPort_3017Text(View view) {
+ IParser parser = ComrelParserProvider.getParser(
+ ComrelElementTypes.MultiInputPort_3017,
+ view.getElement() != null ? view.getElement() : view,
+ ComrelVisualIDRegistry
+ .getType(MultiInputPortNameType5EditPart.VISUAL_ID));
+ if (parser != null) {
+ return parser.getPrintString(new EObjectAdapter(
+ view.getElement() != null ? view.getElement() : view),
+ ParserOptions.NONE.intValue());
+ } else {
+ ComrelDiagramEditorPlugin.getInstance().logError(
+ "Parser was not found for label " + 5014); //$NON-NLS-1$
+ return ""; //$NON-NLS-1$
+ }
+ }
+
+ /**
+ * @generated
+ */
+ private String getConditionalUnit_3075Text(View view) {
+ IParser parser = ComrelParserProvider.getParser(
+ ComrelElementTypes.ConditionalUnit_3075,
+ view.getElement() != null ? view.getElement() : view,
+ ComrelVisualIDRegistry
+ .getType(ConditionalUnitNameType7EditPart.VISUAL_ID));
+ if (parser != null) {
+ return parser.getPrintString(new EObjectAdapter(
+ view.getElement() != null ? view.getElement() : view),
+ ParserOptions.NONE.intValue());
+ } else {
+ ComrelDiagramEditorPlugin.getInstance().logError(
+ "Parser was not found for label " + 5055); //$NON-NLS-1$
+ return ""; //$NON-NLS-1$
+ }
+ }
+
+ /**
+ * @generated
+ */
+ private String getSingleQueuedUnit_3059Text(View view) {
+ IParser parser = ComrelParserProvider
+ .getParser(
+ ComrelElementTypes.SingleQueuedUnit_3059,
+ view.getElement() != null ? view.getElement() : view,
+ ComrelVisualIDRegistry
+ .getType(SingleQueuedUnitNameTypeLblStrict5EditPart.VISUAL_ID));
+ if (parser != null) {
+ return parser.getPrintString(new EObjectAdapter(
+ view.getElement() != null ? view.getElement() : view),
+ ParserOptions.NONE.intValue());
+ } else {
+ ComrelDiagramEditorPlugin.getInstance().logError(
+ "Parser was not found for label " + 5063); //$NON-NLS-1$
+ return ""; //$NON-NLS-1$
+ }
+ }
+
+ /**
+ * @generated
+ */
+ private String getSequentialUnit_3060Text(View view) {
+ IParser parser = ComrelParserProvider
+ .getParser(
+ ComrelElementTypes.SequentialUnit_3060,
+ view.getElement() != null ? view.getElement() : view,
+ ComrelVisualIDRegistry
+ .getType(SequentialUnitNameTypeLblStrict4EditPart.VISUAL_ID));
+ if (parser != null) {
+ return parser.getPrintString(new EObjectAdapter(
+ view.getElement() != null ? view.getElement() : view),
+ ParserOptions.NONE.intValue());
+ } else {
+ ComrelDiagramEditorPlugin.getInstance().logError(
+ "Parser was not found for label " + 5062); //$NON-NLS-1$
+ return ""; //$NON-NLS-1$
+ }
+ }
+
+ /**
+ * @generated
+ */
+ private String getAtomicUnit_3074Text(View view) {
+ IParser parser = ComrelParserProvider.getParser(
+ ComrelElementTypes.AtomicUnit_3074,
+ view.getElement() != null ? view.getElement() : view,
+ ComrelVisualIDRegistry
+ .getType(AtomicUnitLabelType5EditPart.VISUAL_ID));
+ if (parser != null) {
+ return parser.getPrintString(new EObjectAdapter(
+ view.getElement() != null ? view.getElement() : view),
+ ParserOptions.NONE.intValue());
+ } else {
+ ComrelDiagramEditorPlugin.getInstance().logError(
+ "Parser was not found for label " + 5050); //$NON-NLS-1$
+ return ""; //$NON-NLS-1$
+ }
+ }
+
+ /**
+ * @generated
+ */
+ private String getConditionCheck_3076Text(View view) {
+ IParser parser = ComrelParserProvider.getParser(
+ ComrelElementTypes.ConditionCheck_3076,
+ view.getElement() != null ? view.getElement() : view,
+ ComrelVisualIDRegistry
+ .getType(ConditionCheckNameTypeSpecEditPart.VISUAL_ID));
+ if (parser != null) {
+ return parser.getPrintString(new EObjectAdapter(
+ view.getElement() != null ? view.getElement() : view),
+ ParserOptions.NONE.intValue());
+ } else {
+ ComrelDiagramEditorPlugin.getInstance().logError(
+ "Parser was not found for label " + 5052); //$NON-NLS-1$
+ return ""; //$NON-NLS-1$
+ }
+ }
+
+ /**
+ * @generated
+ */
+ private String getSingleFilterUnit_3052Text(View view) {
+ IParser parser = ComrelParserProvider.getParser(
+ ComrelElementTypes.SingleFilterUnit_3052,
+ view.getElement() != null ? view.getElement() : view,
+ ComrelVisualIDRegistry
+ .getType(SingleFilterUnitNameType3EditPart.VISUAL_ID));
+ if (parser != null) {
+ return parser.getPrintString(new EObjectAdapter(
+ view.getElement() != null ? view.getElement() : view),
+ ParserOptions.NONE.intValue());
+ } else {
+ ComrelDiagramEditorPlugin.getInstance().logError(
+ "Parser was not found for label " + 5038); //$NON-NLS-1$
+ return ""; //$NON-NLS-1$
+ }
+ }
+
+ /**
+ * @generated
+ */
+ private String getConditionalUnit_3066Text(View view) {
+ IParser parser = ComrelParserProvider.getParser(
+ ComrelElementTypes.ConditionalUnit_3066,
+ view.getElement() != null ? view.getElement() : view,
+ ComrelVisualIDRegistry
+ .getType(ConditionalUnitNameType4EditPart.VISUAL_ID));
+ if (parser != null) {
+ return parser.getPrintString(new EObjectAdapter(
+ view.getElement() != null ? view.getElement() : view),
+ ParserOptions.NONE.intValue());
+ } else {
+ ComrelDiagramEditorPlugin.getInstance().logError(
+ "Parser was not found for label " + 5060); //$NON-NLS-1$
+ return ""; //$NON-NLS-1$
+ }
+ }
+
+ /**
+ * @generated
+ */
+ private String getSingleInputPort_3035Text(View view) {
+ IParser parser = ComrelParserProvider.getParser(
+ ComrelElementTypes.SingleInputPort_3035,
+ view.getElement() != null ? view.getElement() : view,
+ ComrelVisualIDRegistry
+ .getType(SingleInputPortNameType9EditPart.VISUAL_ID));
+ if (parser != null) {
+ return parser.getPrintString(new EObjectAdapter(
+ view.getElement() != null ? view.getElement() : view),
+ ParserOptions.NONE.intValue());
+ } else {
+ ComrelDiagramEditorPlugin.getInstance().logError(
+ "Parser was not found for label " + 5026); //$NON-NLS-1$
+ return ""; //$NON-NLS-1$
+ }
+ }
+
+ /**
+ * @generated
+ */
+ private String getSingleFilterUnit_3016Text(View view) {
+ IParser parser = ComrelParserProvider.getParser(
+ ComrelElementTypes.SingleFilterUnit_3016,
+ view.getElement() != null ? view.getElement() : view,
+ ComrelVisualIDRegistry
+ .getType(SingleFilterUnitNameTypeEditPart.VISUAL_ID));
+ if (parser != null) {
+ return parser.getPrintString(new EObjectAdapter(
+ view.getElement() != null ? view.getElement() : view),
+ ParserOptions.NONE.intValue());
+ } else {
+ ComrelDiagramEditorPlugin.getInstance().logError(
+ "Parser was not found for label " + 5016); //$NON-NLS-1$
+ return ""; //$NON-NLS-1$
+ }
+ }
+
+ /**
+ * @generated
+ */
+ private String getMultiFilterUnit_3058Text(View view) {
+ IParser parser = ComrelParserProvider.getParser(
+ ComrelElementTypes.MultiFilterUnit_3058,
+ view.getElement() != null ? view.getElement() : view,
+ ComrelVisualIDRegistry
+ .getType(MultiFilterUnitNameType4EditPart.VISUAL_ID));
+ if (parser != null) {
+ return parser.getPrintString(new EObjectAdapter(
+ view.getElement() != null ? view.getElement() : view),
+ ParserOptions.NONE.intValue());
+ } else {
+ ComrelDiagramEditorPlugin.getInstance().logError(
+ "Parser was not found for label " + 5043); //$NON-NLS-1$
+ return ""; //$NON-NLS-1$
+ }
+ }
+
+ /**
+ * @generated
+ */
+ private String getMultiInputPort_3032Text(View view) {
+ IParser parser = ComrelParserProvider.getParser(
+ ComrelElementTypes.MultiInputPort_3032,
+ view.getElement() != null ? view.getElement() : view,
+ ComrelVisualIDRegistry
+ .getType(MultiInputPortNameType9EditPart.VISUAL_ID));
+ if (parser != null) {
+ return parser.getPrintString(new EObjectAdapter(
+ view.getElement() != null ? view.getElement() : view),
+ ParserOptions.NONE.intValue());
+ } else {
+ ComrelDiagramEditorPlugin.getInstance().logError(
+ "Parser was not found for label " + 5025); //$NON-NLS-1$
+ return ""; //$NON-NLS-1$
+ }
+ }
+
+ /**
+ * @generated
+ */
+ private String getSingleQueuedUnit_3067Text(View view) {
+ IParser parser = ComrelParserProvider
+ .getParser(
+ ComrelElementTypes.SingleQueuedUnit_3067,
+ view.getElement() != null ? view.getElement() : view,
+ ComrelVisualIDRegistry
+ .getType(SingleQueuedUnitNameTypeLblStrict7EditPart.VISUAL_ID));
+ if (parser != null) {
+ return parser.getPrintString(new EObjectAdapter(
+ view.getElement() != null ? view.getElement() : view),
+ ParserOptions.NONE.intValue());
+ } else {
+ ComrelDiagramEditorPlugin.getInstance().logError(
+ "Parser was not found for label " + 5049); //$NON-NLS-1$
+ return ""; //$NON-NLS-1$
+ }
+ }
+
+ /**
+ * @generated
+ */
+ private String getSequentialUnit_3073Text(View view) {
+ IParser parser = ComrelParserProvider
+ .getParser(
+ ComrelElementTypes.SequentialUnit_3073,
+ view.getElement() != null ? view.getElement() : view,
+ ComrelVisualIDRegistry
+ .getType(SequentialUnitNameTypeLblStrict7EditPart.VISUAL_ID));
+ if (parser != null) {
+ return parser.getPrintString(new EObjectAdapter(
+ view.getElement() != null ? view.getElement() : view),
+ ParserOptions.NONE.intValue());
+ } else {
+ ComrelDiagramEditorPlugin.getInstance().logError(
+ "Parser was not found for label " + 5051); //$NON-NLS-1$
+ return ""; //$NON-NLS-1$
+ }
+ }
+
+ /**
+ * @generated
+ */
+ private String getAtomicUnit_3034Text(View view) {
+ IParser parser = ComrelParserProvider.getParser(
+ ComrelElementTypes.AtomicUnit_3034,
+ view.getElement() != null ? view.getElement() : view,
+ ComrelVisualIDRegistry
+ .getType(AtomicUnitLabelType2EditPart.VISUAL_ID));
+ if (parser != null) {
+ return parser.getPrintString(new EObjectAdapter(
+ view.getElement() != null ? view.getElement() : view),
+ ParserOptions.NONE.intValue());
+ } else {
+ ComrelDiagramEditorPlugin.getInstance().logError(
+ "Parser was not found for label " + 5027); //$NON-NLS-1$
+ return ""; //$NON-NLS-1$
+ }
+ }
+
+ /**
+ * @generated
+ */
+ private String getMultiFeatureUnit_3056Text(View view) {
+ IParser parser = ComrelParserProvider.getParser(
+ ComrelElementTypes.MultiFeatureUnit_3056,
+ view.getElement() != null ? view.getElement() : view,
+ ComrelVisualIDRegistry
+ .getType(MultiFeatureUnitNameType4EditPart.VISUAL_ID));
+ if (parser != null) {
+ return parser.getPrintString(new EObjectAdapter(
+ view.getElement() != null ? view.getElement() : view),
+ ParserOptions.NONE.intValue());
+ } else {
+ ComrelDiagramEditorPlugin.getInstance().logError(
+ "Parser was not found for label " + 5041); //$NON-NLS-1$
+ return ""; //$NON-NLS-1$
+ }
+ }
+
+ /**
+ * @generated
+ */
+ private String getMultiFilterUnit_3041Text(View view) {
+ IParser parser = ComrelParserProvider.getParser(
+ ComrelElementTypes.MultiFilterUnit_3041,
+ view.getElement() != null ? view.getElement() : view,
+ ComrelVisualIDRegistry
+ .getType(MultiFilterUnitNameType2EditPart.VISUAL_ID));
+ if (parser != null) {
+ return parser.getPrintString(new EObjectAdapter(
+ view.getElement() != null ? view.getElement() : view),
+ ParserOptions.NONE.intValue());
+ } else {
+ ComrelDiagramEditorPlugin.getInstance().logError(
+ "Parser was not found for label " + 5032); //$NON-NLS-1$
+ return ""; //$NON-NLS-1$
+ }
+ }
+
+ /**
+ * @generated
+ */
+ private String getConditionalUnit_3046Text(View view) {
+ IParser parser = ComrelParserProvider.getParser(
+ ComrelElementTypes.ConditionalUnit_3046,
+ view.getElement() != null ? view.getElement() : view,
+ ComrelVisualIDRegistry
+ .getType(ConditionalUnitNameType3EditPart.VISUAL_ID));
+ if (parser != null) {
+ return parser.getPrintString(new EObjectAdapter(
+ view.getElement() != null ? view.getElement() : view),
+ ParserOptions.NONE.intValue());
+ } else {
+ ComrelDiagramEditorPlugin.getInstance().logError(
+ "Parser was not found for label " + 5065); //$NON-NLS-1$
+ return ""; //$NON-NLS-1$
+ }
+ }
+
+ /**
+ * @generated
+ */
+ private String getParallelQueuedUnit_3037Text(View view) {
+ IParser parser = ComrelParserProvider
+ .getParser(
+ ComrelElementTypes.ParallelQueuedUnit_3037,
+ view.getElement() != null ? view.getElement() : view,
+ ComrelVisualIDRegistry
+ .getType(ParallelQueuedUnitNameTypeLblStrict4EditPart.VISUAL_ID));
+ if (parser != null) {
+ return parser.getPrintString(new EObjectAdapter(
+ view.getElement() != null ? view.getElement() : view),
+ ParserOptions.NONE.intValue());
+ } else {
+ ComrelDiagramEditorPlugin.getInstance().logError(
+ "Parser was not found for label " + 5070); //$NON-NLS-1$
+ return ""; //$NON-NLS-1$
+ }
+ }
+
+ /**
+ * @generated
+ */
+ private String getSingleInputPort_3013Text(View view) {
+ IParser parser = ComrelParserProvider.getParser(
+ ComrelElementTypes.SingleInputPort_3013,
+ view.getElement() != null ? view.getElement() : view,
+ ComrelVisualIDRegistry
+ .getType(SingleInputPortNameType5EditPart.VISUAL_ID));
+ if (parser != null) {
+ return parser.getPrintString(new EObjectAdapter(
+ view.getElement() != null ? view.getElement() : view),
+ ParserOptions.NONE.intValue());
+ } else {
+ ComrelDiagramEditorPlugin.getInstance().logError(
+ "Parser was not found for label " + 5010); //$NON-NLS-1$
+ return ""; //$NON-NLS-1$
+ }
+ }
+
+ /**
+ * @generated
+ */
+ private String getSingleQueuedUnit_3022Text(View view) {
+ IParser parser = ComrelParserProvider
+ .getParser(
+ ComrelElementTypes.SingleQueuedUnit_3022,
+ view.getElement() != null ? view.getElement() : view,
+ ComrelVisualIDRegistry
+ .getType(SingleQueuedUnitNameTypeLblStrict2EditPart.VISUAL_ID));
+ if (parser != null) {
+ return parser.getPrintString(new EObjectAdapter(
+ view.getElement() != null ? view.getElement() : view),
+ ParserOptions.NONE.intValue());
+ } else {
+ ComrelDiagramEditorPlugin.getInstance().logError(
+ "Parser was not found for label " + 5076); //$NON-NLS-1$
+ return ""; //$NON-NLS-1$
+ }
+ }
+
+ /**
+ * @generated
+ */
+ private String getMultiInputPort_3024Text(View view) {
+ IParser parser = ComrelParserProvider.getParser(
+ ComrelElementTypes.MultiInputPort_3024,
+ view.getElement() != null ? view.getElement() : view,
+ ComrelVisualIDRegistry
+ .getType(MultiInputPortNameType7EditPart.VISUAL_ID));
+ if (parser != null) {
+ return parser.getPrintString(new EObjectAdapter(
+ view.getElement() != null ? view.getElement() : view),
+ ParserOptions.NONE.intValue());
+ } else {
+ ComrelDiagramEditorPlugin.getInstance().logError(
+ "Parser was not found for label " + 5021); //$NON-NLS-1$
+ return ""; //$NON-NLS-1$
+ }
+ }
+
+ /**
+ * @generated
+ */
+ private String getMultiPortMapping_4002Text(View view) {
+ return ""; //$NON-NLS-1$
+ }
+
+ /**
+ * @generated
+ */
+ private String getMultiFilterUnit_3053Text(View view) {
+ IParser parser = ComrelParserProvider.getParser(
+ ComrelElementTypes.MultiFilterUnit_3053,
+ view.getElement() != null ? view.getElement() : view,
+ ComrelVisualIDRegistry
+ .getType(MultiFilterUnitNameType3EditPart.VISUAL_ID));
+ if (parser != null) {
+ return parser.getPrintString(new EObjectAdapter(
+ view.getElement() != null ? view.getElement() : view),
+ ParserOptions.NONE.intValue());
+ } else {
+ ComrelDiagramEditorPlugin.getInstance().logError(
+ "Parser was not found for label " + 5039); //$NON-NLS-1$
+ return ""; //$NON-NLS-1$
+ }
+ }
+
+ /**
+ * @generated
+ */
+ private String getAtomicUnit_3077Text(View view) {
+ IParser parser = ComrelParserProvider.getParser(
+ ComrelElementTypes.AtomicUnit_3077,
+ view.getElement() != null ? view.getElement() : view,
+ ComrelVisualIDRegistry
+ .getType(AtomicUnitLabelType6EditPart.VISUAL_ID));
+ if (parser != null) {
+ return parser.getPrintString(new EObjectAdapter(
+ view.getElement() != null ? view.getElement() : view),
+ ParserOptions.NONE.intValue());
+ } else {
+ ComrelDiagramEditorPlugin.getInstance().logError(
+ "Parser was not found for label " + 5053); //$NON-NLS-1$
+ return ""; //$NON-NLS-1$
+ }
+ }
+
+ /**
+ * @generated
+ */
+ private String getAtomicUnit_3068Text(View view) {
+ IParser parser = ComrelParserProvider.getParser(
+ ComrelElementTypes.AtomicUnit_3068,
+ view.getElement() != null ? view.getElement() : view,
+ ComrelVisualIDRegistry
+ .getType(AtomicUnitLabelType4EditPart.VISUAL_ID));
+ if (parser != null) {
+ return parser.getPrintString(new EObjectAdapter(
+ view.getElement() != null ? view.getElement() : view),
+ ParserOptions.NONE.intValue());
+ } else {
+ ComrelDiagramEditorPlugin.getInstance().logError(
+ "Parser was not found for label " + 5048); //$NON-NLS-1$
+ return ""; //$NON-NLS-1$
+ }
+ }
+
+ /**
+ * @generated
+ */
+ private String getMultiInputPort_3020Text(View view) {
+ IParser parser = ComrelParserProvider.getParser(
+ ComrelElementTypes.MultiInputPort_3020,
+ view.getElement() != null ? view.getElement() : view,
+ ComrelVisualIDRegistry
+ .getType(MultiInputPortNameType6EditPart.VISUAL_ID));
+ if (parser != null) {
+ return parser.getPrintString(new EObjectAdapter(
+ view.getElement() != null ? view.getElement() : view),
+ ParserOptions.NONE.intValue());
+ } else {
+ ComrelDiagramEditorPlugin.getInstance().logError(
+ "Parser was not found for label " + 5017); //$NON-NLS-1$
+ return ""; //$NON-NLS-1$
+ }
+ }
+
+ /**
+ * @generated
+ */
+ private String getMultiFilterUnit_3064Text(View view) {
+ IParser parser = ComrelParserProvider.getParser(
+ ComrelElementTypes.MultiFilterUnit_3064,
+ view.getElement() != null ? view.getElement() : view,
+ ComrelVisualIDRegistry
+ .getType(MultiFilterUnitNameType5EditPart.VISUAL_ID));
+ if (parser != null) {
+ return parser.getPrintString(new EObjectAdapter(
+ view.getElement() != null ? view.getElement() : view),
+ ParserOptions.NONE.intValue());
+ } else {
+ ComrelDiagramEditorPlugin.getInstance().logError(
+ "Parser was not found for label " + 5047); //$NON-NLS-1$
+ return ""; //$NON-NLS-1$
+ }
+ }
+
+ /**
+ * @generated
+ */
+ private String getSingleOutputPort_3018Text(View view) {
+ IParser parser = ComrelParserProvider.getParser(
+ ComrelElementTypes.SingleOutputPort_3018,
+ view.getElement() != null ? view.getElement() : view,
+ ComrelVisualIDRegistry
+ .getType(SingleOutputPortNameType2EditPart.VISUAL_ID));
+ if (parser != null) {
+ return parser.getPrintString(new EObjectAdapter(
+ view.getElement() != null ? view.getElement() : view),
+ ParserOptions.NONE.intValue());
+ } else {
+ ComrelDiagramEditorPlugin.getInstance().logError(
+ "Parser was not found for label " + 5015); //$NON-NLS-1$
+ return ""; //$NON-NLS-1$
+ }
+ }
+
+ /**
+ * @generated
+ */
+ private String getSinglePortMapping_4001Text(View view) {
+ return ""; //$NON-NLS-1$
+ }
+
+ /**
+ * @generated
+ */
+ private String getMultiInputPort_3010Text(View view) {
+ IParser parser = ComrelParserProvider.getParser(
+ ComrelElementTypes.MultiInputPort_3010,
+ view.getElement() != null ? view.getElement() : view,
+ ComrelVisualIDRegistry
+ .getType(MultiInputPortNameType3EditPart.VISUAL_ID));
+ if (parser != null) {
+ return parser.getPrintString(new EObjectAdapter(
+ view.getElement() != null ? view.getElement() : view),
+ ParserOptions.NONE.intValue());
+ } else {
+ ComrelDiagramEditorPlugin.getInstance().logError(
+ "Parser was not found for label " + 5007); //$NON-NLS-1$
+ return ""; //$NON-NLS-1$
+ }
+ }
+
+ /**
+ * @generated
+ */
+ private String getSequentialUnit_2005Text(View view) {
+ IParser parser = ComrelParserProvider
+ .getParser(
+ ComrelElementTypes.SequentialUnit_2005,
+ view.getElement() != null ? view.getElement() : view,
+ ComrelVisualIDRegistry
+ .getType(SequentialUnitNameTypeLblStrictEditPart.VISUAL_ID));
+ if (parser != null) {
+ return parser.getPrintString(new EObjectAdapter(
+ view.getElement() != null ? view.getElement() : view),
+ ParserOptions.NONE.intValue());
+ } else {
+ ComrelDiagramEditorPlugin.getInstance().logError(
+ "Parser was not found for label " + 5083); //$NON-NLS-1$
+ return ""; //$NON-NLS-1$
+ }
+ }
+
+ /**
+ * @generated
+ */
+ private String getSequentialUnit_3026Text(View view) {
+ IParser parser = ComrelParserProvider
+ .getParser(
+ ComrelElementTypes.SequentialUnit_3026,
+ view.getElement() != null ? view.getElement() : view,
+ ComrelVisualIDRegistry
+ .getType(SequentialUnitNameTypeLblStrict2EditPart.VISUAL_ID));
+ if (parser != null) {
+ return parser.getPrintString(new EObjectAdapter(
+ view.getElement() != null ? view.getElement() : view),
+ ParserOptions.NONE.intValue());
+ } else {
+ ComrelDiagramEditorPlugin.getInstance().logError(
+ "Parser was not found for label " + 5074); //$NON-NLS-1$
+ return ""; //$NON-NLS-1$
+ }
+ }
+
+ /**
+ * @generated
+ */
+ private String getSingleFeatureUnit_3055Text(View view) {
+ IParser parser = ComrelParserProvider.getParser(
+ ComrelElementTypes.SingleFeatureUnit_3055,
+ view.getElement() != null ? view.getElement() : view,
+ ComrelVisualIDRegistry
+ .getType(SingleFeatureUnitNameType4EditPart.VISUAL_ID));
+ if (parser != null) {
+ return parser.getPrintString(new EObjectAdapter(
+ view.getElement() != null ? view.getElement() : view),
+ ParserOptions.NONE.intValue());
+ } else {
+ ComrelDiagramEditorPlugin.getInstance().logError(
+ "Parser was not found for label " + 5040); //$NON-NLS-1$
+ return ""; //$NON-NLS-1$
+ }
+ }
+
+ /**
+ * @generated
+ */
+ private String getSingleFeatureUnit_3050Text(View view) {
+ IParser parser = ComrelParserProvider.getParser(
+ ComrelElementTypes.SingleFeatureUnit_3050,
+ view.getElement() != null ? view.getElement() : view,
+ ComrelVisualIDRegistry
+ .getType(SingleFeatureUnitNameType3EditPart.VISUAL_ID));
+ if (parser != null) {
+ return parser.getPrintString(new EObjectAdapter(
+ view.getElement() != null ? view.getElement() : view),
+ ParserOptions.NONE.intValue());
+ } else {
+ ComrelDiagramEditorPlugin.getInstance().logError(
+ "Parser was not found for label " + 5036); //$NON-NLS-1$
+ return ""; //$NON-NLS-1$
+ }
+ }
+
+ /**
+ * @generated
+ */
+ private String getConditionalUnit_3030Text(View view) {
+ IParser parser = ComrelParserProvider.getParser(
+ ComrelElementTypes.ConditionalUnit_3030,
+ view.getElement() != null ? view.getElement() : view,
+ ComrelVisualIDRegistry
+ .getType(ConditionalUnitNameType2EditPart.VISUAL_ID));
+ if (parser != null) {
+ return parser.getPrintString(new EObjectAdapter(
+ view.getElement() != null ? view.getElement() : view),
+ ParserOptions.NONE.intValue());
+ } else {
+ ComrelDiagramEditorPlugin.getInstance().logError(
+ "Parser was not found for label " + 5072); //$NON-NLS-1$
+ return ""; //$NON-NLS-1$
+ }
+ }
+
+ /**
+ * @generated
+ */
+ private String getParallelQueuedUnit_3045Text(View view) {
+ IParser parser = ComrelParserProvider
+ .getParser(
+ ComrelElementTypes.ParallelQueuedUnit_3045,
+ view.getElement() != null ? view.getElement() : view,
+ ComrelVisualIDRegistry
+ .getType(ParallelQueuedUnitNameTypeLblStrict6EditPart.VISUAL_ID));
+ if (parser != null) {
+ return parser.getPrintString(new EObjectAdapter(
+ view.getElement() != null ? view.getElement() : view),
+ ParserOptions.NONE.intValue());
+ } else {
+ ComrelDiagramEditorPlugin.getInstance().logError(
+ "Parser was not found for label " + 5066); //$NON-NLS-1$
+ return ""; //$NON-NLS-1$
+ }
+ }
+
+ /**
+ * @generated
+ */
+ private String getParallelQueuedUnit_3043Text(View view) {
+ IParser parser = ComrelParserProvider
+ .getParser(
+ ComrelElementTypes.ParallelQueuedUnit_3043,
+ view.getElement() != null ? view.getElement() : view,
+ ComrelVisualIDRegistry
+ .getType(ParallelQueuedUnitNameTypeLblStrict5EditPart.VISUAL_ID));
+ if (parser != null) {
+ return parser.getPrintString(new EObjectAdapter(
+ view.getElement() != null ? view.getElement() : view),
+ ParserOptions.NONE.intValue());
+ } else {
+ ComrelDiagramEditorPlugin.getInstance().logError(
+ "Parser was not found for label " + 5068); //$NON-NLS-1$
+ return ""; //$NON-NLS-1$
+ }
+ }
+
+ /**
+ * @generated
+ */
+ private String getConditionalUnit_3071Text(View view) {
+ IParser parser = ComrelParserProvider.getParser(
+ ComrelElementTypes.ConditionalUnit_3071,
+ view.getElement() != null ? view.getElement() : view,
+ ComrelVisualIDRegistry
+ .getType(ConditionalUnitNameType5EditPart.VISUAL_ID));
+ if (parser != null) {
+ return parser.getPrintString(new EObjectAdapter(
+ view.getElement() != null ? view.getElement() : view),
+ ParserOptions.NONE.intValue());
+ } else {
+ ComrelDiagramEditorPlugin.getInstance().logError(
+ "Parser was not found for label " + 5057); //$NON-NLS-1$
+ return ""; //$NON-NLS-1$
+ }
+ }
+
+ /**
+ * @generated
+ */
+ private String getSingleInputPort_3023Text(View view) {
+ IParser parser = ComrelParserProvider.getParser(
+ ComrelElementTypes.SingleInputPort_3023,
+ view.getElement() != null ? view.getElement() : view,
+ ComrelVisualIDRegistry
+ .getType(SingleInputPortNameType6EditPart.VISUAL_ID));
+ if (parser != null) {
+ return parser.getPrintString(new EObjectAdapter(
+ view.getElement() != null ? view.getElement() : view),
+ ParserOptions.NONE.intValue());
+ } else {
+ ComrelDiagramEditorPlugin.getInstance().logError(
+ "Parser was not found for label " + 5020); //$NON-NLS-1$
+ return ""; //$NON-NLS-1$
+ }
+ }
+
+ /**
+ * @generated
+ */
+ private String getMultiOutputPort_3015Text(View view) {
+ IParser parser = ComrelParserProvider.getParser(
+ ComrelElementTypes.MultiOutputPort_3015,
+ view.getElement() != null ? view.getElement() : view,
+ ComrelVisualIDRegistry
+ .getType(MultiOutputPortNameTypeEditPart.VISUAL_ID));
+ if (parser != null) {
+ return parser.getPrintString(new EObjectAdapter(
+ view.getElement() != null ? view.getElement() : view),
+ ParserOptions.NONE.intValue());
+ } else {
+ ComrelDiagramEditorPlugin.getInstance().logError(
+ "Parser was not found for label " + 5012); //$NON-NLS-1$
+ return ""; //$NON-NLS-1$
+ }
+ }
+
+ /**
+ * @generated
+ */
+ private String getMultiFeatureUnit_3062Text(View view) {
+ IParser parser = ComrelParserProvider.getParser(
+ ComrelElementTypes.MultiFeatureUnit_3062,
+ view.getElement() != null ? view.getElement() : view,
+ ComrelVisualIDRegistry
+ .getType(MultiFeatureUnitNameType5EditPart.VISUAL_ID));
+ if (parser != null) {
+ return parser.getPrintString(new EObjectAdapter(
+ view.getElement() != null ? view.getElement() : view),
+ ParserOptions.NONE.intValue());
+ } else {
+ ComrelDiagramEditorPlugin.getInstance().logError(
+ "Parser was not found for label " + 5045); //$NON-NLS-1$
+ return ""; //$NON-NLS-1$
+ }
+ }
+
+ /**
+ * @generated
+ */
+ private String getCartesianQueuedUnit_2002Text(View view) {
+ IParser parser = ComrelParserProvider
+ .getParser(
+ ComrelElementTypes.CartesianQueuedUnit_2002,
+ view.getElement() != null ? view.getElement() : view,
+ ComrelVisualIDRegistry
+ .getType(CartesianQueuedUnitNameTypeLblStrictEditPart.VISUAL_ID));
+ if (parser != null) {
+ return parser.getPrintString(new EObjectAdapter(
+ view.getElement() != null ? view.getElement() : view),
+ ParserOptions.NONE.intValue());
+ } else {
+ ComrelDiagramEditorPlugin.getInstance().logError(
+ "Parser was not found for label " + 5080); //$NON-NLS-1$
+ return ""; //$NON-NLS-1$
+ }
+ }
+
+ /**
+ * @generated
+ */
+ private String getMultiFeatureUnit_3039Text(View view) {
+ IParser parser = ComrelParserProvider.getParser(
+ ComrelElementTypes.MultiFeatureUnit_3039,
+ view.getElement() != null ? view.getElement() : view,
+ ComrelVisualIDRegistry
+ .getType(MultiFeatureUnitNameType2EditPart.VISUAL_ID));
+ if (parser != null) {
+ return parser.getPrintString(new EObjectAdapter(
+ view.getElement() != null ? view.getElement() : view),
+ ParserOptions.NONE.intValue());
+ } else {
+ ComrelDiagramEditorPlugin.getInstance().logError(
+ "Parser was not found for label " + 5030); //$NON-NLS-1$
+ return ""; //$NON-NLS-1$
+ }
+ }
+
+ /**
+ * @generated
+ */
+ private String getSingleOutputPort_3011Text(View view) {
+ IParser parser = ComrelParserProvider.getParser(
+ ComrelElementTypes.SingleOutputPort_3011,
+ view.getElement() != null ? view.getElement() : view,
+ ComrelVisualIDRegistry
+ .getType(SingleOutputPortNameTypeEditPart.VISUAL_ID));
+ if (parser != null) {
+ return parser.getPrintString(new EObjectAdapter(
+ view.getElement() != null ? view.getElement() : view),
+ ParserOptions.NONE.intValue());
+ } else {
+ ComrelDiagramEditorPlugin.getInstance().logError(
+ "Parser was not found for label " + 5008); //$NON-NLS-1$
+ return ""; //$NON-NLS-1$
+ }
+ }
+
+ /**
+ * @generated
+ */
+ private String getCartesianQueuedUnit_3025Text(View view) {
+ IParser parser = ComrelParserProvider
+ .getParser(
+ ComrelElementTypes.CartesianQueuedUnit_3025,
+ view.getElement() != null ? view.getElement() : view,
+ ComrelVisualIDRegistry
+ .getType(CartesianQueuedUnitNameTypeLblStrict4EditPart.VISUAL_ID));
+ if (parser != null) {
+ return parser.getPrintString(new EObjectAdapter(
+ view.getElement() != null ? view.getElement() : view),
+ ParserOptions.NONE.intValue());
+ } else {
+ ComrelDiagramEditorPlugin.getInstance().logError(
+ "Parser was not found for label " + 5075); //$NON-NLS-1$
+ return ""; //$NON-NLS-1$
+ }
+ }
+
+ /**
+ * @generated
+ */
+ private String getSingleFeatureUnit_3038Text(View view) {
+ IParser parser = ComrelParserProvider.getParser(
+ ComrelElementTypes.SingleFeatureUnit_3038,
+ view.getElement() != null ? view.getElement() : view,
+ ComrelVisualIDRegistry
+ .getType(SingleFeatureUnitNameType2EditPart.VISUAL_ID));
+ if (parser != null) {
+ return parser.getPrintString(new EObjectAdapter(
+ view.getElement() != null ? view.getElement() : view),
+ ParserOptions.NONE.intValue());
+ } else {
+ ComrelDiagramEditorPlugin.getInstance().logError(
+ "Parser was not found for label " + 5029); //$NON-NLS-1$
+ return ""; //$NON-NLS-1$
+ }
+ }
+
+ /**
+ * @generated
+ */
+ private String getSingleFilterUnit_3063Text(View view) {
+ IParser parser = ComrelParserProvider.getParser(
+ ComrelElementTypes.SingleFilterUnit_3063,
+ view.getElement() != null ? view.getElement() : view,
+ ComrelVisualIDRegistry
+ .getType(SingleFilterUnitNameType5EditPart.VISUAL_ID));
+ if (parser != null) {
+ return parser.getPrintString(new EObjectAdapter(
+ view.getElement() != null ? view.getElement() : view),
+ ParserOptions.NONE.intValue());
+ } else {
+ ComrelDiagramEditorPlugin.getInstance().logError(
+ "Parser was not found for label " + 5046); //$NON-NLS-1$
+ return ""; //$NON-NLS-1$
+ }
+ }
+
+ /**
+ * @generated
+ */
+ private String getMultiFilterUnit_3019Text(View view) {
+ IParser parser = ComrelParserProvider.getParser(
+ ComrelElementTypes.MultiFilterUnit_3019,
+ view.getElement() != null ? view.getElement() : view,
+ ComrelVisualIDRegistry
+ .getType(MultiFilterUnitNameTypeEditPart.VISUAL_ID));
+ if (parser != null) {
+ return parser.getPrintString(new EObjectAdapter(
+ view.getElement() != null ? view.getElement() : view),
+ ParserOptions.NONE.intValue());
+ } else {
+ ComrelDiagramEditorPlugin.getInstance().logError(
+ "Parser was not found for label " + 5019); //$NON-NLS-1$
+ return ""; //$NON-NLS-1$
+ }
+ }
+
+ /**
+ * @generated
+ */
+ private String getSingleFeatureUnit_3008Text(View view) {
+ IParser parser = ComrelParserProvider.getParser(
+ ComrelElementTypes.SingleFeatureUnit_3008,
+ view.getElement() != null ? view.getElement() : view,
+ ComrelVisualIDRegistry
+ .getType(SingleFeatureUnitNameTypeEditPart.VISUAL_ID));
+ if (parser != null) {
+ return parser.getPrintString(new EObjectAdapter(
+ view.getElement() != null ? view.getElement() : view),
+ ParserOptions.NONE.intValue());
+ } else {
+ ComrelDiagramEditorPlugin.getInstance().logError(
+ "Parser was not found for label " + 5009); //$NON-NLS-1$
+ return ""; //$NON-NLS-1$
+ }
+ }
+
+ /**
+ * @generated
+ */
+ private String getCartesianQueuedUnit_3029Text(View view) {
+ IParser parser = ComrelParserProvider
+ .getParser(
+ ComrelElementTypes.CartesianQueuedUnit_3029,
+ view.getElement() != null ? view.getElement() : view,
+ ComrelVisualIDRegistry
+ .getType(CartesianQueuedUnitNameTypeLblStrict5EditPart.VISUAL_ID));
+ if (parser != null) {
+ return parser.getPrintString(new EObjectAdapter(
+ view.getElement() != null ? view.getElement() : view),
+ ParserOptions.NONE.intValue());
+ } else {
+ ComrelDiagramEditorPlugin.getInstance().logError(
+ "Parser was not found for label " + 5073); //$NON-NLS-1$
+ return ""; //$NON-NLS-1$
+ }
+ }
+
+ /**
+ * @generated
+ */
+ private String getConditionalUnit_3072Text(View view) {
+ IParser parser = ComrelParserProvider.getParser(
+ ComrelElementTypes.ConditionalUnit_3072,
+ view.getElement() != null ? view.getElement() : view,
+ ComrelVisualIDRegistry
+ .getType(ConditionalUnitNameType6EditPart.VISUAL_ID));
+ if (parser != null) {
+ return parser.getPrintString(new EObjectAdapter(
+ view.getElement() != null ? view.getElement() : view),
+ ParserOptions.NONE.intValue());
+ } else {
+ ComrelDiagramEditorPlugin.getInstance().logError(
+ "Parser was not found for label " + 5056); //$NON-NLS-1$
+ return ""; //$NON-NLS-1$
+ }
+ }
+
+ /**
+ * @generated
+ */
+ private String getSingleInputPort_3005Text(View view) {
+ IParser parser = ComrelParserProvider.getParser(
+ ComrelElementTypes.SingleInputPort_3005,
+ view.getElement() != null ? view.getElement() : view,
+ ComrelVisualIDRegistry
+ .getType(SingleInputPortNameType3EditPart.VISUAL_ID));
+ if (parser != null) {
+ return parser.getPrintString(new EObjectAdapter(
+ view.getElement() != null ? view.getElement() : view),
+ ParserOptions.NONE.intValue());
+ } else {
+ ComrelDiagramEditorPlugin.getInstance().logError(
+ "Parser was not found for label " + 5004); //$NON-NLS-1$
+ return ""; //$NON-NLS-1$
+ }
+ }
+
+ /**
+ * @generated
+ */
+ private String getAtomicUnit_3078Text(View view) {
+ IParser parser = ComrelParserProvider.getParser(
+ ComrelElementTypes.AtomicUnit_3078,
+ view.getElement() != null ? view.getElement() : view,
+ ComrelVisualIDRegistry
+ .getType(AtomicUnitLabelType7EditPart.VISUAL_ID));
+ if (parser != null) {
+ return parser.getPrintString(new EObjectAdapter(
+ view.getElement() != null ? view.getElement() : view),
+ ParserOptions.NONE.intValue());
+ } else {
+ ComrelDiagramEditorPlugin.getInstance().logError(
+ "Parser was not found for label " + 5054); //$NON-NLS-1$
+ return ""; //$NON-NLS-1$
+ }
+ }
+
+ /**
+ * @generated
+ */
+ private String getSingleQueuedUnit_3054Text(View view) {
+ IParser parser = ComrelParserProvider
+ .getParser(
+ ComrelElementTypes.SingleQueuedUnit_3054,
+ view.getElement() != null ? view.getElement() : view,
+ ComrelVisualIDRegistry
+ .getType(SingleQueuedUnitNameTypeLblStrict4EditPart.VISUAL_ID));
+ if (parser != null) {
+ return parser.getPrintString(new EObjectAdapter(
+ view.getElement() != null ? view.getElement() : view),
+ ParserOptions.NONE.intValue());
+ } else {
+ ComrelDiagramEditorPlugin.getInstance().logError(
+ "Parser was not found for label " + 5064); //$NON-NLS-1$
+ return ""; //$NON-NLS-1$
+ }
+ }
+
+ /**
+ * @generated
+ */
+ private String getMultiInputPort_3002Text(View view) {
+ IParser parser = ComrelParserProvider.getParser(
+ ComrelElementTypes.MultiInputPort_3002,
+ view.getElement() != null ? view.getElement() : view,
+ ComrelVisualIDRegistry
+ .getType(MultiInputPortNameTypeEditPart.VISUAL_ID));
+ if (parser != null) {
+ return parser.getPrintString(new EObjectAdapter(
+ view.getElement() != null ? view.getElement() : view),
+ ParserOptions.NONE.intValue());
+ } else {
+ ComrelDiagramEditorPlugin.getInstance().logError(
+ "Parser was not found for label " + 5003); //$NON-NLS-1$
+ return ""; //$NON-NLS-1$
+ }
+ }
+
+ /**
+ * @generated
+ */
+ private String getSingleQueuedUnit_3042Text(View view) {
+ IParser parser = ComrelParserProvider
+ .getParser(
+ ComrelElementTypes.SingleQueuedUnit_3042,
+ view.getElement() != null ? view.getElement() : view,
+ ComrelVisualIDRegistry
+ .getType(SingleQueuedUnitNameTypeLblStrict3EditPart.VISUAL_ID));
+ if (parser != null) {
+ return parser.getPrintString(new EObjectAdapter(
+ view.getElement() != null ? view.getElement() : view),
+ ParserOptions.NONE.intValue());
+ } else {
+ ComrelDiagramEditorPlugin.getInstance().logError(
+ "Parser was not found for label " + 5069); //$NON-NLS-1$
+ return ""; //$NON-NLS-1$
+ }
+ }
+
+ /**
+ * @generated
+ */
+ private String getParallelQueuedUnit_3036Text(View view) {
+ IParser parser = ComrelParserProvider
+ .getParser(
+ ComrelElementTypes.ParallelQueuedUnit_3036,
+ view.getElement() != null ? view.getElement() : view,
+ ComrelVisualIDRegistry
+ .getType(ParallelQueuedUnitNameTypeLblStrict3EditPart.VISUAL_ID));
+ if (parser != null) {
+ return parser.getPrintString(new EObjectAdapter(
+ view.getElement() != null ? view.getElement() : view),
+ ParserOptions.NONE.intValue());
+ } else {
+ ComrelDiagramEditorPlugin.getInstance().logError(
+ "Parser was not found for label " + 5071); //$NON-NLS-1$
+ return ""; //$NON-NLS-1$
+ }
+ }
+
+ /**
+ * @generated
+ */
+ private String getSequentialUnit_3044Text(View view) {
+ IParser parser = ComrelParserProvider
+ .getParser(
+ ComrelElementTypes.SequentialUnit_3044,
+ view.getElement() != null ? view.getElement() : view,
+ ComrelVisualIDRegistry
+ .getType(SequentialUnitNameTypeLblStrict3EditPart.VISUAL_ID));
+ if (parser != null) {
+ return parser.getPrintString(new EObjectAdapter(
+ view.getElement() != null ? view.getElement() : view),
+ ParserOptions.NONE.intValue());
+ } else {
+ ComrelDiagramEditorPlugin.getInstance().logError(
+ "Parser was not found for label " + 5067); //$NON-NLS-1$
+ return ""; //$NON-NLS-1$
+ }
+ }
+
+ /**
+ * @generated
+ */
+ private String getConditionalUnit_2006Text(View view) {
+ IParser parser = ComrelParserProvider.getParser(
+ ComrelElementTypes.ConditionalUnit_2006,
+ view.getElement() != null ? view.getElement() : view,
+ ComrelVisualIDRegistry
+ .getType(ConditionalUnitNameTypeEditPart.VISUAL_ID));
+ if (parser != null) {
+ return parser.getPrintString(new EObjectAdapter(
+ view.getElement() != null ? view.getElement() : view),
+ ParserOptions.NONE.intValue());
+ } else {
+ ComrelDiagramEditorPlugin.getInstance().logError(
+ "Parser was not found for label " + 5084); //$NON-NLS-1$
+ return ""; //$NON-NLS-1$
+ }
+ }
+
+ /**
+ * @generated
+ */
+ private String getMultiInputPort_3006Text(View view) {
+ IParser parser = ComrelParserProvider.getParser(
+ ComrelElementTypes.MultiInputPort_3006,
+ view.getElement() != null ? view.getElement() : view,
+ ComrelVisualIDRegistry
+ .getType(MultiInputPortNameType2EditPart.VISUAL_ID));
+ if (parser != null) {
+ return parser.getPrintString(new EObjectAdapter(
+ view.getElement() != null ? view.getElement() : view),
+ ParserOptions.NONE.intValue());
+ } else {
+ ComrelDiagramEditorPlugin.getInstance().logError(
+ "Parser was not found for label " + 5005); //$NON-NLS-1$
+ return ""; //$NON-NLS-1$
+ }
+ }
+
+ /**
+ * @generated
+ */
+ private String getSingleInputPort_3031Text(View view) {
+ IParser parser = ComrelParserProvider.getParser(
+ ComrelElementTypes.SingleInputPort_3031,
+ view.getElement() != null ? view.getElement() : view,
+ ComrelVisualIDRegistry
+ .getType(SingleInputPortNameType8EditPart.VISUAL_ID));
+ if (parser != null) {
+ return parser.getPrintString(new EObjectAdapter(
+ view.getElement() != null ? view.getElement() : view),
+ ParserOptions.NONE.intValue());
+ } else {
+ ComrelDiagramEditorPlugin.getInstance().logError(
+ "Parser was not found for label " + 5024); //$NON-NLS-1$
+ return ""; //$NON-NLS-1$
+ }
+ }
+
+ /**
+ * @generated
+ */
+ private String getMultiOutputPort_3021Text(View view) {
+ IParser parser = ComrelParserProvider.getParser(
+ ComrelElementTypes.MultiOutputPort_3021,
+ view.getElement() != null ? view.getElement() : view,
+ ComrelVisualIDRegistry
+ .getType(MultiOutputPortNameType2EditPart.VISUAL_ID));
+ if (parser != null) {
+ return parser.getPrintString(new EObjectAdapter(
+ view.getElement() != null ? view.getElement() : view),
+ ParserOptions.NONE.intValue());
+ } else {
+ ComrelDiagramEditorPlugin.getInstance().logError(
+ "Parser was not found for label " + 5018); //$NON-NLS-1$
+ return ""; //$NON-NLS-1$
+ }
+ }
+
+ /**
+ * @generated
+ */
+ private String getSequentialUnit_3069Text(View view) {
+ IParser parser = ComrelParserProvider
+ .getParser(
+ ComrelElementTypes.SequentialUnit_3069,
+ view.getElement() != null ? view.getElement() : view,
+ ComrelVisualIDRegistry
+ .getType(SequentialUnitNameTypeLblStrict5EditPart.VISUAL_ID));
+ if (parser != null) {
+ return parser.getPrintString(new EObjectAdapter(
+ view.getElement() != null ? view.getElement() : view),
+ ParserOptions.NONE.intValue());
+ } else {
+ ComrelDiagramEditorPlugin.getInstance().logError(
+ "Parser was not found for label " + 5059); //$NON-NLS-1$
+ return ""; //$NON-NLS-1$
+ }
+ }
+
+ /**
+ * @generated
+ */
+ private String getCartesianQueuedUnit_3033Text(View view) {
+ IParser parser = ComrelParserProvider
+ .getParser(
+ ComrelElementTypes.CartesianQueuedUnit_3033,
+ view.getElement() != null ? view.getElement() : view,
+ ComrelVisualIDRegistry
+ .getType(CartesianQueuedUnitNameTypeLblStrict6EditPart.VISUAL_ID));
+ if (parser != null) {
+ return parser.getPrintString(new EObjectAdapter(
+ view.getElement() != null ? view.getElement() : view),
+ ParserOptions.NONE.intValue());
+ } else {
+ ComrelDiagramEditorPlugin.getInstance().logError(
+ "Parser was not found for label " + 5028); //$NON-NLS-1$
+ return ""; //$NON-NLS-1$
+ }
+ }
+
+ /**
+ * @generated
+ */
+ private String getSingleInputPort_2001Text(View view) {
+ IParser parser = ComrelParserProvider.getParser(
+ ComrelElementTypes.SingleInputPort_2001,
+ view.getElement() != null ? view.getElement() : view,
+ ComrelVisualIDRegistry
+ .getType(SingleInputPortNameTypeEditPart.VISUAL_ID));
+ if (parser != null) {
+ return parser.getPrintString(new EObjectAdapter(
+ view.getElement() != null ? view.getElement() : view),
+ ParserOptions.NONE.intValue());
+ } else {
+ ComrelDiagramEditorPlugin.getInstance().logError(
+ "Parser was not found for label " + 5001); //$NON-NLS-1$
+ return ""; //$NON-NLS-1$
+ }
+ }
+
+ /**
+ * @generated
+ */
+ private String getSingleInputPort_3009Text(View view) {
+ IParser parser = ComrelParserProvider.getParser(
+ ComrelElementTypes.SingleInputPort_3009,
+ view.getElement() != null ? view.getElement() : view,
+ ComrelVisualIDRegistry
+ .getType(SingleInputPortNameType4EditPart.VISUAL_ID));
+ if (parser != null) {
+ return parser.getPrintString(new EObjectAdapter(
+ view.getElement() != null ? view.getElement() : view),
+ ParserOptions.NONE.intValue());
+ } else {
+ ComrelDiagramEditorPlugin.getInstance().logError(
+ "Parser was not found for label " + 5006); //$NON-NLS-1$
+ return ""; //$NON-NLS-1$
+ }
+ }
+
+ /**
+ * @generated
+ */
+ private String getParallelQueuedUnit_3048Text(View view) {
+ IParser parser = ComrelParserProvider
+ .getParser(
+ ComrelElementTypes.ParallelQueuedUnit_3048,
+ view.getElement() != null ? view.getElement() : view,
+ ComrelVisualIDRegistry
+ .getType(ParallelQueuedUnitNameTypeLblStrict7EditPart.VISUAL_ID));
+ if (parser != null) {
+ return parser.getPrintString(new EObjectAdapter(
+ view.getElement() != null ? view.getElement() : view),
+ ParserOptions.NONE.intValue());
+ } else {
+ ComrelDiagramEditorPlugin.getInstance().logError(
+ "Parser was not found for label " + 5035); //$NON-NLS-1$
+ return ""; //$NON-NLS-1$
+ }
+ }
+
+ /**
+ * @generated
+ */
+ private String getCartesianQueuedUnit_3003Text(View view) {
+ IParser parser = ComrelParserProvider
+ .getParser(
+ ComrelElementTypes.CartesianQueuedUnit_3003,
+ view.getElement() != null ? view.getElement() : view,
+ ComrelVisualIDRegistry
+ .getType(CartesianQueuedUnitNameTypeLblStrict2EditPart.VISUAL_ID));
+ if (parser != null) {
+ return parser.getPrintString(new EObjectAdapter(
+ view.getElement() != null ? view.getElement() : view),
+ ParserOptions.NONE.intValue());
+ } else {
+ ComrelDiagramEditorPlugin.getInstance().logError(
+ "Parser was not found for label " + 5079); //$NON-NLS-1$
+ return ""; //$NON-NLS-1$
+ }
+ }
+
+ /**
+ * @generated
+ */
+ private String getSingleQueuedUnit_3065Text(View view) {
+ IParser parser = ComrelParserProvider
+ .getParser(
+ ComrelElementTypes.SingleQueuedUnit_3065,
+ view.getElement() != null ? view.getElement() : view,
+ ComrelVisualIDRegistry
+ .getType(SingleQueuedUnitNameTypeLblStrict6EditPart.VISUAL_ID));
+ if (parser != null) {
+ return parser.getPrintString(new EObjectAdapter(
+ view.getElement() != null ? view.getElement() : view),
+ ParserOptions.NONE.intValue());
+ } else {
+ ComrelDiagramEditorPlugin.getInstance().logError(
+ "Parser was not found for label " + 5061); //$NON-NLS-1$
+ return ""; //$NON-NLS-1$
+ }
+ }
+
+ /**
+ * @generated
+ */
+ private String getSingleFeatureUnit_3061Text(View view) {
+ IParser parser = ComrelParserProvider.getParser(
+ ComrelElementTypes.SingleFeatureUnit_3061,
+ view.getElement() != null ? view.getElement() : view,
+ ComrelVisualIDRegistry
+ .getType(SingleFeatureUnitNameType5EditPart.VISUAL_ID));
+ if (parser != null) {
+ return parser.getPrintString(new EObjectAdapter(
+ view.getElement() != null ? view.getElement() : view),
+ ParserOptions.NONE.intValue());
+ } else {
+ ComrelDiagramEditorPlugin.getInstance().logError(
+ "Parser was not found for label " + 5044); //$NON-NLS-1$
+ return ""; //$NON-NLS-1$
+ }
+ }
+
+ /**
+ * @generated
+ */
+ private String getCartesianQueuedUnit_3007Text(View view) {
+ IParser parser = ComrelParserProvider
+ .getParser(
+ ComrelElementTypes.CartesianQueuedUnit_3007,
+ view.getElement() != null ? view.getElement() : view,
+ ComrelVisualIDRegistry
+ .getType(CartesianQueuedUnitNameTypeLblStrict3EditPart.VISUAL_ID));
+ if (parser != null) {
+ return parser.getPrintString(new EObjectAdapter(
+ view.getElement() != null ? view.getElement() : view),
+ ParserOptions.NONE.intValue());
+ } else {
+ ComrelDiagramEditorPlugin.getInstance().logError(
+ "Parser was not found for label " + 5077); //$NON-NLS-1$
+ return ""; //$NON-NLS-1$
+ }
+ }
+
+ /**
+ * @generated
+ */
+ private String getCartesianQueuedUnit_3047Text(View view) {
+ IParser parser = ComrelParserProvider
+ .getParser(
+ ComrelElementTypes.CartesianQueuedUnit_3047,
+ view.getElement() != null ? view.getElement() : view,
+ ComrelVisualIDRegistry
+ .getType(CartesianQueuedUnitNameTypeLblStrict7EditPart.VISUAL_ID));
+ if (parser != null) {
+ return parser.getPrintString(new EObjectAdapter(
+ view.getElement() != null ? view.getElement() : view),
+ ParserOptions.NONE.intValue());
+ } else {
+ ComrelDiagramEditorPlugin.getInstance().logError(
+ "Parser was not found for label " + 5033); //$NON-NLS-1$
+ return ""; //$NON-NLS-1$
+ }
+ }
+
+ /**
+ * @generated
+ */
+ private String getSingleFilterUnit_3040Text(View view) {
+ IParser parser = ComrelParserProvider.getParser(
+ ComrelElementTypes.SingleFilterUnit_3040,
+ view.getElement() != null ? view.getElement() : view,
+ ComrelVisualIDRegistry
+ .getType(SingleFilterUnitNameType2EditPart.VISUAL_ID));
+ if (parser != null) {
+ return parser.getPrintString(new EObjectAdapter(
+ view.getElement() != null ? view.getElement() : view),
+ ParserOptions.NONE.intValue());
+ } else {
+ ComrelDiagramEditorPlugin.getInstance().logError(
+ "Parser was not found for label " + 5031); //$NON-NLS-1$
+ return ""; //$NON-NLS-1$
+ }
+ }
+
+ /**
+ * @generated
+ */
+ private String getParallelQueuedUnit_3004Text(View view) {
+ IParser parser = ComrelParserProvider
+ .getParser(
+ ComrelElementTypes.ParallelQueuedUnit_3004,
+ view.getElement() != null ? view.getElement() : view,
+ ComrelVisualIDRegistry
+ .getType(ParallelQueuedUnitNameTypeLblStrict2EditPart.VISUAL_ID));
+ if (parser != null) {
+ return parser.getPrintString(new EObjectAdapter(
+ view.getElement() != null ? view.getElement() : view),
+ ParserOptions.NONE.intValue());
+ } else {
+ ComrelDiagramEditorPlugin.getInstance().logError(
+ "Parser was not found for label " + 5078); //$NON-NLS-1$
+ return ""; //$NON-NLS-1$
+ }
+ }
+
+ /**
+ * @generated
+ */
+ private String getCompositeRefactoring_1000Text(View view) {
+ CompositeRefactoring domainModelElement = (CompositeRefactoring) view
+ .getElement();
+ if (domainModelElement != null) {
+ return domainModelElement.getName();
+ } else {
+ ComrelDiagramEditorPlugin.getInstance().logError(
+ "No domain element for view with visualID = " + 1000); //$NON-NLS-1$
+ return ""; //$NON-NLS-1$
+ }
+ }
+
+ /**
+ * @generated
+ */
+ private String getMultiFeatureUnit_3012Text(View view) {
+ IParser parser = ComrelParserProvider.getParser(
+ ComrelElementTypes.MultiFeatureUnit_3012,
+ view.getElement() != null ? view.getElement() : view,
+ ComrelVisualIDRegistry
+ .getType(MultiFeatureUnitNameTypeEditPart.VISUAL_ID));
+ if (parser != null) {
+ return parser.getPrintString(new EObjectAdapter(
+ view.getElement() != null ? view.getElement() : view),
+ ParserOptions.NONE.intValue());
+ } else {
+ ComrelDiagramEditorPlugin.getInstance().logError(
+ "Parser was not found for label " + 5013); //$NON-NLS-1$
+ return ""; //$NON-NLS-1$
+ }
+ }
+
+ /**
+ * @generated
+ */
+ private String getSingleInputPort_3027Text(View view) {
+ IParser parser = ComrelParserProvider.getParser(
+ ComrelElementTypes.SingleInputPort_3027,
+ view.getElement() != null ? view.getElement() : view,
+ ComrelVisualIDRegistry
+ .getType(SingleInputPortNameType7EditPart.VISUAL_ID));
+ if (parser != null) {
+ return parser.getPrintString(new EObjectAdapter(
+ view.getElement() != null ? view.getElement() : view),
+ ParserOptions.NONE.intValue());
+ } else {
+ ComrelDiagramEditorPlugin.getInstance().logError(
+ "Parser was not found for label " + 5022); //$NON-NLS-1$
+ return ""; //$NON-NLS-1$
+ }
+ }
+
+ /**
+ * @generated
+ */
+ private String getSingleInputPort_3001Text(View view) {
+ IParser parser = ComrelParserProvider.getParser(
+ ComrelElementTypes.SingleInputPort_3001,
+ view.getElement() != null ? view.getElement() : view,
+ ComrelVisualIDRegistry
+ .getType(SingleInputPortNameType2EditPart.VISUAL_ID));
+ if (parser != null) {
+ return parser.getPrintString(new EObjectAdapter(
+ view.getElement() != null ? view.getElement() : view),
+ ParserOptions.NONE.intValue());
+ } else {
+ ComrelDiagramEditorPlugin.getInstance().logError(
+ "Parser was not found for label " + 5002); //$NON-NLS-1$
+ return ""; //$NON-NLS-1$
+ }
+ }
+
+ /**
+ * @generated
+ */
+ private String getSequentialUnit_3070Text(View view) {
+ IParser parser = ComrelParserProvider
+ .getParser(
+ ComrelElementTypes.SequentialUnit_3070,
+ view.getElement() != null ? view.getElement() : view,
+ ComrelVisualIDRegistry
+ .getType(SequentialUnitNameTypeLblStrict6EditPart.VISUAL_ID));
+ if (parser != null) {
+ return parser.getPrintString(new EObjectAdapter(
+ view.getElement() != null ? view.getElement() : view),
+ ParserOptions.NONE.intValue());
+ } else {
+ ComrelDiagramEditorPlugin.getInstance().logError(
+ "Parser was not found for label " + 5058); //$NON-NLS-1$
+ return ""; //$NON-NLS-1$
+ }
+ }
+
+ /**
+ * @generated
+ */
+ private String getAtomicUnit_2007Text(View view) {
+ IParser parser = ComrelParserProvider.getParser(
+ ComrelElementTypes.AtomicUnit_2007,
+ view.getElement() != null ? view.getElement() : view,
+ ComrelVisualIDRegistry
+ .getType(AtomicUnitLabelTypeEditPart.VISUAL_ID));
+ if (parser != null) {
+ return parser.getPrintString(new EObjectAdapter(
+ view.getElement() != null ? view.getElement() : view),
+ ParserOptions.NONE.intValue());
+ } else {
+ ComrelDiagramEditorPlugin.getInstance().logError(
+ "Parser was not found for label " + 5085); //$NON-NLS-1$
+ return ""; //$NON-NLS-1$
+ }
+ }
+
+ /**
+ * @generated
+ */
+ private String getSingleQueuedUnit_2004Text(View view) {
+ IParser parser = ComrelParserProvider
+ .getParser(
+ ComrelElementTypes.SingleQueuedUnit_2004,
+ view.getElement() != null ? view.getElement() : view,
+ ComrelVisualIDRegistry
+ .getType(SingleQueuedUnitNameTypeLblStrictEditPart.VISUAL_ID));
+ if (parser != null) {
+ return parser.getPrintString(new EObjectAdapter(
+ view.getElement() != null ? view.getElement() : view),
+ ParserOptions.NONE.intValue());
+ } else {
+ ComrelDiagramEditorPlugin.getInstance().logError(
+ "Parser was not found for label " + 5082); //$NON-NLS-1$
+ return ""; //$NON-NLS-1$
+ }
+ }
+
+ /**
+ * @generated
+ */
+ private String getMultiInputPort_3028Text(View view) {
+ IParser parser = ComrelParserProvider.getParser(
+ ComrelElementTypes.MultiInputPort_3028,
+ view.getElement() != null ? view.getElement() : view,
+ ComrelVisualIDRegistry
+ .getType(MultiInputPortNameType8EditPart.VISUAL_ID));
+ if (parser != null) {
+ return parser.getPrintString(new EObjectAdapter(
+ view.getElement() != null ? view.getElement() : view),
+ ParserOptions.NONE.intValue());
+ } else {
+ ComrelDiagramEditorPlugin.getInstance().logError(
+ "Parser was not found for label " + 5023); //$NON-NLS-1$
+ return ""; //$NON-NLS-1$
+ }
+ }
+
+ /**
+ * @generated
+ */
+ private String getMultiSinglePortMapping_4003Text(View view) {
+ return ""; //$NON-NLS-1$
+ }
+
+ /**
+ * @generated
+ */
+ private String getAtomicUnit_3049Text(View view) {
+ IParser parser = ComrelParserProvider.getParser(
+ ComrelElementTypes.AtomicUnit_3049,
+ view.getElement() != null ? view.getElement() : view,
+ ComrelVisualIDRegistry
+ .getType(AtomicUnitLabelType3EditPart.VISUAL_ID));
+ if (parser != null) {
+ return parser.getPrintString(new EObjectAdapter(
+ view.getElement() != null ? view.getElement() : view),
+ ParserOptions.NONE.intValue());
+ } else {
+ ComrelDiagramEditorPlugin.getInstance().logError(
+ "Parser was not found for label " + 5034); //$NON-NLS-1$
+ return ""; //$NON-NLS-1$
+ }
+ }
+
+ /**
+ * @generated
+ */
+ private String getParallelQueuedUnit_2003Text(View view) {
+ IParser parser = ComrelParserProvider
+ .getParser(
+ ComrelElementTypes.ParallelQueuedUnit_2003,
+ view.getElement() != null ? view.getElement() : view,
+ ComrelVisualIDRegistry
+ .getType(ParallelQueuedUnitNameTypeLblStrictEditPart.VISUAL_ID));
+ if (parser != null) {
+ return parser.getPrintString(new EObjectAdapter(
+ view.getElement() != null ? view.getElement() : view),
+ ParserOptions.NONE.intValue());
+ } else {
+ ComrelDiagramEditorPlugin.getInstance().logError(
+ "Parser was not found for label " + 5081); //$NON-NLS-1$
+ return ""; //$NON-NLS-1$
+ }
+ }
+
+ /**
+ * @generated
+ */
+ private String getMultiFeatureUnit_3051Text(View view) {
+ IParser parser = ComrelParserProvider.getParser(
+ ComrelElementTypes.MultiFeatureUnit_3051,
+ view.getElement() != null ? view.getElement() : view,
+ ComrelVisualIDRegistry
+ .getType(MultiFeatureUnitNameType3EditPart.VISUAL_ID));
+ if (parser != null) {
+ return parser.getPrintString(new EObjectAdapter(
+ view.getElement() != null ? view.getElement() : view),
+ ParserOptions.NONE.intValue());
+ } else {
+ ComrelDiagramEditorPlugin.getInstance().logError(
+ "Parser was not found for label " + 5037); //$NON-NLS-1$
+ return ""; //$NON-NLS-1$
+ }
+ }
+
+ /**
+ * @generated
+ */
+ private String getMultiInputPort_3014Text(View view) {
+ IParser parser = ComrelParserProvider.getParser(
+ ComrelElementTypes.MultiInputPort_3014,
+ view.getElement() != null ? view.getElement() : view,
+ ComrelVisualIDRegistry
+ .getType(MultiInputPortNameType4EditPart.VISUAL_ID));
+ if (parser != null) {
+ return parser.getPrintString(new EObjectAdapter(
+ view.getElement() != null ? view.getElement() : view),
+ ParserOptions.NONE.intValue());
+ } else {
+ ComrelDiagramEditorPlugin.getInstance().logError(
+ "Parser was not found for label " + 5011); //$NON-NLS-1$
+ return ""; //$NON-NLS-1$
+ }
+ }
+
+ /**
+ * @generated
+ */
+ private String getSingleFilterUnit_3057Text(View view) {
+ IParser parser = ComrelParserProvider.getParser(
+ ComrelElementTypes.SingleFilterUnit_3057,
+ view.getElement() != null ? view.getElement() : view,
+ ComrelVisualIDRegistry
+ .getType(SingleFilterUnitNameType4EditPart.VISUAL_ID));
+ if (parser != null) {
+ return parser.getPrintString(new EObjectAdapter(
+ view.getElement() != null ? view.getElement() : view),
+ ParserOptions.NONE.intValue());
+ } else {
+ ComrelDiagramEditorPlugin.getInstance().logError(
+ "Parser was not found for label " + 5042); //$NON-NLS-1$
+ return ""; //$NON-NLS-1$
+ }
+ }
+
+ /**
+ * @generated
+ */
+ private String getUnknownElementText(View view) {
+ return "<UnknownElement Visual_ID = " + view.getType() + ">"; //$NON-NLS-1$ //$NON-NLS-2$
+ }
+
+ /**
+ * @generated
+ */
+ private String getUnresolvedDomainElementProxyText(View view) {
+ return "<Unresolved domain element Visual_ID = " + view.getType() + ">"; //$NON-NLS-1$ //$NON-NLS-2$
+ }
+
+ /**
+ * @generated
+ */
+ public void init(ICommonContentExtensionSite aConfig) {
+ }
+
+ /**
+ * @generated
+ */
+ public void restoreState(IMemento aMemento) {
+ }
+
+ /**
+ * @generated
+ */
+ public void saveState(IMemento aMemento) {
+ }
+
+ /**
+ * @generated
+ */
+ public String getDescription(Object anElement) {
+ return null;
+ }
+
+ /**
+ * @generated
+ */
+ private boolean isOwnView(View view) {
+ return CompositeRefactoringEditPart.MODEL_ID
+ .equals(ComrelVisualIDRegistry.getModelID(view));
+ }
+
+}
diff --git a/org.eclipse.emf.refactor.comrel.diagram/src/comrel/diagram/navigator/ComrelNavigatorLinkHelper.java b/org.eclipse.emf.refactor.comrel.diagram/src/comrel/diagram/navigator/ComrelNavigatorLinkHelper.java
new file mode 100644
index 0000000..a142c10
--- /dev/null
+++ b/org.eclipse.emf.refactor.comrel.diagram/src/comrel/diagram/navigator/ComrelNavigatorLinkHelper.java
@@ -0,0 +1,132 @@
+/*
+ *
+ */
+package comrel.diagram.navigator;
+
+import org.eclipse.core.resources.IFile;
+import org.eclipse.core.runtime.IAdaptable;
+import org.eclipse.emf.common.ui.URIEditorInput;
+import org.eclipse.emf.common.util.URI;
+import org.eclipse.emf.ecore.EObject;
+import org.eclipse.emf.ecore.resource.Resource;
+import org.eclipse.emf.ecore.resource.ResourceSet;
+import org.eclipse.emf.ecore.util.EcoreUtil;
+import org.eclipse.emf.workspace.util.WorkspaceSynchronizer;
+import org.eclipse.gef.EditPart;
+import org.eclipse.gef.GraphicalViewer;
+import org.eclipse.gmf.runtime.diagram.ui.parts.DiagramEditor;
+import org.eclipse.gmf.runtime.diagram.ui.resources.editor.document.IDiagramDocument;
+import org.eclipse.gmf.runtime.notation.Diagram;
+import org.eclipse.gmf.runtime.notation.View;
+import org.eclipse.jface.viewers.IStructuredSelection;
+import org.eclipse.jface.viewers.StructuredSelection;
+import org.eclipse.ui.IEditorInput;
+import org.eclipse.ui.IEditorPart;
+import org.eclipse.ui.IWorkbenchPage;
+import org.eclipse.ui.navigator.ILinkHelper;
+import org.eclipse.ui.part.FileEditorInput;
+
+import comrel.diagram.part.ComrelDiagramEditorPlugin;
+
+/**
+ * @generated
+ */
+public class ComrelNavigatorLinkHelper implements ILinkHelper {
+
+ /**
+ * @generated
+ */
+ private static IEditorInput getEditorInput(Diagram diagram) {
+ Resource diagramResource = diagram.eResource();
+ for (EObject nextEObject : diagramResource.getContents()) {
+ if (nextEObject == diagram) {
+ return new FileEditorInput(
+ WorkspaceSynchronizer.getFile(diagramResource));
+ }
+ if (nextEObject instanceof Diagram) {
+ break;
+ }
+ }
+ URI uri = EcoreUtil.getURI(diagram);
+ String editorName = uri.lastSegment() + '#'
+ + diagram.eResource().getContents().indexOf(diagram);
+ IEditorInput editorInput = new URIEditorInput(uri, editorName);
+ return editorInput;
+ }
+
+ /**
+ * @generated
+ */
+ public IStructuredSelection findSelection(IEditorInput anInput) {
+ IDiagramDocument document = ComrelDiagramEditorPlugin.getInstance()
+ .getDocumentProvider().getDiagramDocument(anInput);
+ if (document == null) {
+ return StructuredSelection.EMPTY;
+ }
+ Diagram diagram = document.getDiagram();
+ IFile file = WorkspaceSynchronizer.getFile(diagram.eResource());
+ if (file != null) {
+ ComrelNavigatorItem item = new ComrelNavigatorItem(diagram, file,
+ false);
+ return new StructuredSelection(item);
+ }
+ return StructuredSelection.EMPTY;
+ }
+
+ /**
+ * @generated
+ */
+ public void activateEditor(IWorkbenchPage aPage,
+ IStructuredSelection aSelection) {
+ if (aSelection == null || aSelection.isEmpty()) {
+ return;
+ }
+ if (false == aSelection.getFirstElement() instanceof ComrelAbstractNavigatorItem) {
+ return;
+ }
+
+ ComrelAbstractNavigatorItem abstractNavigatorItem = (ComrelAbstractNavigatorItem) aSelection
+ .getFirstElement();
+ View navigatorView = null;
+ if (abstractNavigatorItem instanceof ComrelNavigatorItem) {
+ navigatorView = ((ComrelNavigatorItem) abstractNavigatorItem)
+ .getView();
+ } else if (abstractNavigatorItem instanceof ComrelNavigatorGroup) {
+ ComrelNavigatorGroup navigatorGroup = (ComrelNavigatorGroup) abstractNavigatorItem;
+ if (navigatorGroup.getParent() instanceof ComrelNavigatorItem) {
+ navigatorView = ((ComrelNavigatorItem) navigatorGroup
+ .getParent()).getView();
+ } else if (navigatorGroup.getParent() instanceof IAdaptable) {
+ navigatorView = (View) ((IAdaptable) navigatorGroup.getParent())
+ .getAdapter(View.class);
+ }
+ }
+ if (navigatorView == null) {
+ return;
+ }
+ IEditorInput editorInput = getEditorInput(navigatorView.getDiagram());
+ IEditorPart editor = aPage.findEditor(editorInput);
+ if (editor == null) {
+ return;
+ }
+ aPage.bringToTop(editor);
+ if (editor instanceof DiagramEditor) {
+ DiagramEditor diagramEditor = (DiagramEditor) editor;
+ ResourceSet diagramEditorResourceSet = diagramEditor
+ .getEditingDomain().getResourceSet();
+ EObject selectedView = diagramEditorResourceSet.getEObject(
+ EcoreUtil.getURI(navigatorView), true);
+ if (selectedView == null) {
+ return;
+ }
+ GraphicalViewer graphicalViewer = (GraphicalViewer) diagramEditor
+ .getAdapter(GraphicalViewer.class);
+ EditPart selectedEditPart = (EditPart) graphicalViewer
+ .getEditPartRegistry().get(selectedView);
+ if (selectedEditPart != null) {
+ graphicalViewer.select(selectedEditPart);
+ }
+ }
+ }
+
+}
diff --git a/org.eclipse.emf.refactor.comrel.diagram/src/comrel/diagram/navigator/ComrelNavigatorSorter.java b/org.eclipse.emf.refactor.comrel.diagram/src/comrel/diagram/navigator/ComrelNavigatorSorter.java
new file mode 100644
index 0000000..beecb3d
--- /dev/null
+++ b/org.eclipse.emf.refactor.comrel.diagram/src/comrel/diagram/navigator/ComrelNavigatorSorter.java
@@ -0,0 +1,39 @@
+/*
+ *
+ */
+package comrel.diagram.navigator;
+
+import org.eclipse.jface.viewers.ViewerSorter;
+
+import comrel.diagram.part.ComrelVisualIDRegistry;
+
+/**
+ * @generated
+ */
+public class ComrelNavigatorSorter extends ViewerSorter {
+
+ /**
+ * @generated
+ */
+ private static final int GROUP_CATEGORY = 7086;
+
+ /**
+ * @generated
+ */
+ private static final int SHORTCUTS_CATEGORY = 7085;
+
+ /**
+ * @generated
+ */
+ public int category(Object element) {
+ if (element instanceof ComrelNavigatorItem) {
+ ComrelNavigatorItem item = (ComrelNavigatorItem) element;
+ if (item.getView().getEAnnotation("Shortcut") != null) { //$NON-NLS-1$
+ return SHORTCUTS_CATEGORY;
+ }
+ return ComrelVisualIDRegistry.getVisualID(item.getView());
+ }
+ return GROUP_CATEGORY;
+ }
+
+}
diff --git a/org.eclipse.emf.refactor.comrel.diagram/src/comrel/diagram/parsers/AbstractParser.java b/org.eclipse.emf.refactor.comrel.diagram/src/comrel/diagram/parsers/AbstractParser.java
new file mode 100644
index 0000000..4c4b653
--- /dev/null
+++ b/org.eclipse.emf.refactor.comrel.diagram/src/comrel/diagram/parsers/AbstractParser.java
@@ -0,0 +1,468 @@
+/*
+ *
+ */
+package comrel.diagram.parsers;
+
+import java.util.Arrays;
+
+import org.eclipse.core.runtime.IAdaptable;
+import org.eclipse.emf.common.notify.Notification;
+import org.eclipse.emf.ecore.EAttribute;
+import org.eclipse.emf.ecore.EClassifier;
+import org.eclipse.emf.ecore.EDataType;
+import org.eclipse.emf.ecore.EEnum;
+import org.eclipse.emf.ecore.EEnumLiteral;
+import org.eclipse.emf.ecore.EObject;
+import org.eclipse.emf.transaction.TransactionalEditingDomain;
+import org.eclipse.emf.transaction.util.TransactionUtil;
+import org.eclipse.gmf.runtime.common.core.command.ICommand;
+import org.eclipse.gmf.runtime.common.core.command.UnexecutableCommand;
+import org.eclipse.gmf.runtime.common.ui.services.parser.IParser;
+import org.eclipse.gmf.runtime.common.ui.services.parser.IParserEditStatus;
+import org.eclipse.gmf.runtime.common.ui.services.parser.ParserEditStatus;
+import org.eclipse.gmf.runtime.emf.commands.core.command.CompositeTransactionalCommand;
+import org.eclipse.gmf.runtime.emf.type.core.commands.SetValueCommand;
+import org.eclipse.gmf.runtime.emf.type.core.requests.SetRequest;
+import org.eclipse.jface.text.contentassist.IContentAssistProcessor;
+import org.eclipse.osgi.util.NLS;
+
+import comrel.diagram.part.ComrelDiagramEditorPlugin;
+import comrel.diagram.part.Messages;
+
+/**
+ * @generated
+ */
+public abstract class AbstractParser implements IParser {
+
+ /**
+ * @generated
+ */
+ protected final EAttribute[] features;
+
+ /**
+ * @generated
+ */
+ protected final EAttribute[] editableFeatures;
+
+ /**
+ * @generated
+ */
+ private String viewPattern;
+
+ /**
+ * @generated
+ */
+ private String editorPattern;
+
+ /**
+ * @generated
+ */
+ private String editPattern;
+
+ /**
+ * @generated
+ */
+ public AbstractParser(EAttribute[] features) {
+ if (features == null || Arrays.asList(features).contains(null)) {
+ throw new IllegalArgumentException();
+ }
+ this.editableFeatures = this.features = features;
+ }
+
+ /**
+ * @generated
+ */
+ public AbstractParser(EAttribute[] features, EAttribute[] editableFeatures) {
+ if (features == null || Arrays.asList(features).contains(null)) {
+ throw new IllegalArgumentException();
+ }
+ this.features = features;
+ if (editableFeatures == null
+ || Arrays.asList(editableFeatures).contains(null)) {
+ throw new IllegalArgumentException();
+ }
+ this.editableFeatures = editableFeatures;
+ }
+
+ /**
+ * @generated
+ */
+ public String getViewPattern() {
+ return viewPattern;
+ }
+
+ /**
+ * @generated
+ */
+ public void setViewPattern(String viewPattern) {
+ this.viewPattern = viewPattern;
+ }
+
+ /**
+ * @generated
+ */
+ public String getEditorPattern() {
+ return editorPattern;
+ }
+
+ /**
+ * @generated
+ */
+ public void setEditorPattern(String editorPattern) {
+ this.editorPattern = editorPattern;
+ }
+
+ /**
+ * @generated
+ */
+ public String getEditPattern() {
+ return editPattern;
+ }
+
+ /**
+ * @generated
+ */
+ public void setEditPattern(String editPattern) {
+ this.editPattern = editPattern;
+ }
+
+ /**
+ * @generated
+ */
+ public boolean isAffectingEvent(Object event, int flags) {
+ if (event instanceof Notification) {
+ return isAffectingFeature(((Notification) event).getFeature());
+ }
+ return false;
+ }
+
+ /**
+ * @generated
+ */
+ protected boolean isAffectingFeature(Object feature) {
+ for (int i = 0; i < features.length; i++) {
+ if (features[i] == feature) {
+ return true;
+ }
+ }
+ return false;
+ }
+
+ /**
+ * @generated
+ */
+ public IContentAssistProcessor getCompletionProcessor(IAdaptable element) {
+ return null;
+ }
+
+ /**
+ * @generated
+ */
+ protected Object[] getValues(EObject element) {
+ Object[] values = new Object[features.length];
+ for (int i = 0; i < features.length; i++) {
+ values[i] = getValue(element, features[i]);
+ }
+ return values;
+ }
+
+ /**
+ * @generated
+ */
+ protected Object[] getEditableValues(EObject element) {
+ Object[] values = new Object[editableFeatures.length];
+ for (int i = 0; i < editableFeatures.length; i++) {
+ values[i] = getValue(element, editableFeatures[i]);
+ }
+ return values;
+ }
+
+ /**
+ * @generated
+ */
+ protected Object getValue(EObject element, EAttribute feature) {
+ Object value = element.eGet(feature);
+ Class iClass = feature.getEAttributeType().getInstanceClass();
+ if (String.class.equals(iClass)) {
+ if (value == null) {
+ value = ""; //$NON-NLS-1$
+ }
+ }
+ return value;
+ }
+
+ /**
+ * @generated
+ */
+ protected ICommand getParseCommand(IAdaptable adapter, Object[] values,
+ int flags) {
+ if (values == null
+ || validateNewValues(values).getCode() != IParserEditStatus.EDITABLE) {
+ return UnexecutableCommand.INSTANCE;
+ }
+ EObject element = (EObject) adapter.getAdapter(EObject.class);
+ TransactionalEditingDomain editingDomain = TransactionUtil
+ .getEditingDomain(element);
+ if (editingDomain == null) {
+ return UnexecutableCommand.INSTANCE;
+ }
+ CompositeTransactionalCommand command = new CompositeTransactionalCommand(
+ editingDomain, "Set Values"); //$NON-NLS-1$
+ for (int i = 0; i < values.length; i++) {
+ command.compose(getModificationCommand(element,
+ editableFeatures[i], values[i]));
+ }
+ return command;
+ }
+
+ /**
+ * @generated
+ */
+ protected ICommand getModificationCommand(EObject element,
+ EAttribute feature, Object value) {
+ value = getValidNewValue(feature, value);
+ if (value instanceof InvalidValue) {
+ return UnexecutableCommand.INSTANCE;
+ }
+ SetRequest request = new SetRequest(element, feature, value);
+ return new SetValueCommand(request);
+ }
+
+ /**
+ * @generated
+ */
+ protected IParserEditStatus validateNewValues(Object[] values) {
+ if (values.length != editableFeatures.length) {
+ return ParserEditStatus.UNEDITABLE_STATUS;
+ }
+ for (int i = 0; i < values.length; i++) {
+ Object value = getValidNewValue(editableFeatures[i], values[i]);
+ if (value instanceof InvalidValue) {
+ return new ParserEditStatus(ComrelDiagramEditorPlugin.ID,
+ IParserEditStatus.UNEDITABLE, value.toString());
+ }
+ }
+ return ParserEditStatus.EDITABLE_STATUS;
+ }
+
+ /**
+ * @generated
+ */
+ protected Object getValidNewValue(EAttribute feature, Object value) {
+ EClassifier type = feature.getEType();
+ if (type instanceof EDataType) {
+ Class iClass = type.getInstanceClass();
+ if (Boolean.TYPE.equals(iClass)) {
+ if (value instanceof Boolean) {
+ // ok
+ } else if (value instanceof String) {
+ value = Boolean.valueOf((String) value);
+ } else {
+ value = new InvalidValue(NLS.bind(
+ Messages.AbstractParser_UnexpectedValueType,
+ iClass.getName()));
+ }
+ } else if (Character.TYPE.equals(iClass)) {
+ if (value instanceof Character) {
+ // ok
+ } else if (value instanceof String) {
+ String s = (String) value;
+ if (s.length() == 0) {
+ value = null;
+ } else {
+ value = new Character(s.charAt(0));
+ }
+ } else {
+ value = new InvalidValue(NLS.bind(
+ Messages.AbstractParser_UnexpectedValueType,
+ iClass.getName()));
+ }
+ } else if (Byte.TYPE.equals(iClass)) {
+ if (value instanceof Byte) {
+ // ok
+ } else if (value instanceof Number) {
+ value = new Byte(((Number) value).byteValue());
+ } else if (value instanceof String) {
+ String s = (String) value;
+ if (s.length() == 0) {
+ value = null;
+ } else {
+ try {
+ value = Byte.valueOf(s);
+ } catch (NumberFormatException nfe) {
+ value = new InvalidValue(
+ NLS.bind(
+ Messages.AbstractParser_WrongStringConversion,
+ iClass.getName()));
+ }
+ }
+ } else {
+ value = new InvalidValue(NLS.bind(
+ Messages.AbstractParser_UnexpectedValueType,
+ iClass.getName()));
+ }
+ } else if (Short.TYPE.equals(iClass)) {
+ if (value instanceof Short) {
+ // ok
+ } else if (value instanceof Number) {
+ value = new Short(((Number) value).shortValue());
+ } else if (value instanceof String) {
+ String s = (String) value;
+ if (s.length() == 0) {
+ value = null;
+ } else {
+ try {
+ value = Short.valueOf(s);
+ } catch (NumberFormatException nfe) {
+ value = new InvalidValue(
+ NLS.bind(
+ Messages.AbstractParser_WrongStringConversion,
+ iClass.getName()));
+ }
+ }
+ } else {
+ value = new InvalidValue(NLS.bind(
+ Messages.AbstractParser_UnexpectedValueType,
+ iClass.getName()));
+ }
+ } else if (Integer.TYPE.equals(iClass)) {
+ if (value instanceof Integer) {
+ // ok
+ } else if (value instanceof Number) {
+ value = new Integer(((Number) value).intValue());
+ } else if (value instanceof String) {
+ String s = (String) value;
+ if (s.length() == 0) {
+ value = null;
+ } else {
+ try {
+ value = Integer.valueOf(s);
+ } catch (NumberFormatException nfe) {
+ value = new InvalidValue(
+ NLS.bind(
+ Messages.AbstractParser_WrongStringConversion,
+ iClass.getName()));
+ }
+ }
+ } else {
+ value = new InvalidValue(NLS.bind(
+ Messages.AbstractParser_UnexpectedValueType,
+ iClass.getName()));
+ }
+ } else if (Long.TYPE.equals(iClass)) {
+ if (value instanceof Long) {
+ // ok
+ } else if (value instanceof Number) {
+ value = new Long(((Number) value).longValue());
+ } else if (value instanceof String) {
+ String s = (String) value;
+ if (s.length() == 0) {
+ value = null;
+ } else {
+ try {
+ value = Long.valueOf(s);
+ } catch (NumberFormatException nfe) {
+ value = new InvalidValue(
+ NLS.bind(
+ Messages.AbstractParser_WrongStringConversion,
+ iClass.getName()));
+ }
+ }
+ } else {
+ value = new InvalidValue(NLS.bind(
+ Messages.AbstractParser_UnexpectedValueType,
+ iClass.getName()));
+ }
+ } else if (Float.TYPE.equals(iClass)) {
+ if (value instanceof Float) {
+ // ok
+ } else if (value instanceof Number) {
+ value = new Float(((Number) value).floatValue());
+ } else if (value instanceof String) {
+ String s = (String) value;
+ if (s.length() == 0) {
+ value = null;
+ } else {
+ try {
+ value = Float.valueOf(s);
+ } catch (NumberFormatException nfe) {
+ value = new InvalidValue(
+ NLS.bind(
+ Messages.AbstractParser_WrongStringConversion,
+ iClass.getName()));
+ }
+ }
+ } else {
+ value = new InvalidValue(NLS.bind(
+ Messages.AbstractParser_UnexpectedValueType,
+ iClass.getName()));
+ }
+ } else if (Double.TYPE.equals(iClass)) {
+ if (value instanceof Double) {
+ // ok
+ } else if (value instanceof Number) {
+ value = new Double(((Number) value).doubleValue());
+ } else if (value instanceof String) {
+ String s = (String) value;
+ if (s.length() == 0) {
+ value = null;
+ } else {
+ try {
+ value = Double.valueOf(s);
+ } catch (NumberFormatException nfe) {
+ value = new InvalidValue(
+ NLS.bind(
+ Messages.AbstractParser_WrongStringConversion,
+ iClass.getName()));
+ }
+ }
+ } else {
+ value = new InvalidValue(NLS.bind(
+ Messages.AbstractParser_UnexpectedValueType,
+ iClass.getName()));
+ }
+ } else if (type instanceof EEnum) {
+ if (value instanceof String) {
+ EEnumLiteral literal = ((EEnum) type)
+ .getEEnumLiteralByLiteral((String) value);
+ if (literal == null) {
+ value = new InvalidValue(NLS.bind(
+ Messages.AbstractParser_UnknownLiteral, value));
+ } else {
+ value = literal.getInstance();
+ }
+ } else {
+ value = new InvalidValue(NLS.bind(
+ Messages.AbstractParser_UnexpectedValueType,
+ String.class.getName()));
+ }
+ }
+ }
+ return value;
+ }
+
+ /**
+ * @generated
+ */
+ protected class InvalidValue {
+
+ /**
+ * @generated
+ */
+ private String description;
+
+ /**
+ * @generated
+ */
+ public InvalidValue(String description) {
+ this.description = description;
+ }
+
+ /**
+ * @generated
+ */
+ public String toString() {
+ return description;
+ }
+ }
+}
diff --git a/org.eclipse.emf.refactor.comrel.diagram/src/comrel/diagram/parsers/MessageFormatParser.java b/org.eclipse.emf.refactor.comrel.diagram/src/comrel/diagram/parsers/MessageFormatParser.java
new file mode 100644
index 0000000..a45f7ed
--- /dev/null
+++ b/org.eclipse.emf.refactor.comrel.diagram/src/comrel/diagram/parsers/MessageFormatParser.java
@@ -0,0 +1,208 @@
+/*
+ *
+ */
+package comrel.diagram.parsers;
+
+import java.text.FieldPosition;
+import java.text.MessageFormat;
+import java.text.ParsePosition;
+
+import org.eclipse.core.runtime.IAdaptable;
+import org.eclipse.emf.ecore.EAttribute;
+import org.eclipse.emf.ecore.EObject;
+import org.eclipse.gmf.runtime.common.core.command.ICommand;
+import org.eclipse.gmf.runtime.common.ui.services.parser.IParserEditStatus;
+import org.eclipse.gmf.runtime.common.ui.services.parser.ParserEditStatus;
+import org.eclipse.osgi.util.NLS;
+
+import comrel.diagram.part.ComrelDiagramEditorPlugin;
+import comrel.diagram.part.Messages;
+
+/**
+ * @generated
+ */
+public class MessageFormatParser extends AbstractParser {
+
+ /**
+ * @generated
+ */
+ private String defaultPattern;
+
+ /**
+ * @generated
+ */
+ private String defaultEditablePattern;
+
+ /**
+ * @generated
+ */
+ private MessageFormat viewProcessor;
+
+ /**
+ * @generated
+ */
+ private MessageFormat editorProcessor;
+
+ /**
+ * @generated
+ */
+ private MessageFormat editProcessor;
+
+ /**
+ * @generated
+ */
+ public MessageFormatParser(EAttribute[] features) {
+ super(features);
+ }
+
+ /**
+ * @generated
+ */
+ public MessageFormatParser(EAttribute[] features,
+ EAttribute[] editableFeatures) {
+ super(features, editableFeatures);
+ }
+
+ /**
+ * @generated
+ */
+ protected String getDefaultPattern() {
+ if (defaultPattern == null) {
+ StringBuffer sb = new StringBuffer();
+ for (int i = 0; i < features.length; i++) {
+ if (i > 0) {
+ sb.append(' ');
+ }
+ sb.append('{');
+ sb.append(i);
+ sb.append('}');
+ }
+ defaultPattern = sb.toString();
+ }
+ return defaultPattern;
+ }
+
+ /**
+ * @generated
+ */
+ public void setViewPattern(String viewPattern) {
+ super.setViewPattern(viewPattern);
+ viewProcessor = null;
+ }
+
+ /**
+ * @generated
+ */
+ public void setEditorPattern(String editorPattern) {
+ super.setEditorPattern(editorPattern);
+ editorProcessor = null;
+ }
+
+ /**
+ * @generated
+ */
+ protected MessageFormat getViewProcessor() {
+ if (viewProcessor == null) {
+ viewProcessor = new MessageFormat(
+ getViewPattern() == null ? getDefaultPattern()
+ : getViewPattern());
+ }
+ return viewProcessor;
+ }
+
+ /**
+ * @generated
+ */
+ protected MessageFormat getEditorProcessor() {
+ if (editorProcessor == null) {
+ editorProcessor = new MessageFormat(
+ getEditorPattern() == null ? getDefaultEditablePattern()
+ : getEditorPattern());
+ }
+ return editorProcessor;
+ }
+
+ /**
+ * @generated
+ */
+ protected String getDefaultEditablePattern() {
+ if (defaultEditablePattern == null) {
+ StringBuffer sb = new StringBuffer();
+ for (int i = 0; i < editableFeatures.length; i++) {
+ if (i > 0) {
+ sb.append(' ');
+ }
+ sb.append('{');
+ sb.append(i);
+ sb.append('}');
+ }
+ defaultEditablePattern = sb.toString();
+ }
+ return defaultEditablePattern;
+ }
+
+ /**
+ * @generated
+ */
+ public void setEditPattern(String editPattern) {
+ super.setEditPattern(editPattern);
+ editProcessor = null;
+ }
+
+ /**
+ * @generated
+ */
+ protected MessageFormat getEditProcessor() {
+ if (editProcessor == null) {
+ editProcessor = new MessageFormat(
+ getEditPattern() == null ? getDefaultEditablePattern()
+ : getEditPattern());
+ }
+ return editProcessor;
+ }
+
+ /**
+ * @generated
+ */
+ public String getEditString(IAdaptable adapter, int flags) {
+ EObject element = (EObject) adapter.getAdapter(EObject.class);
+ return getEditorProcessor().format(getEditableValues(element),
+ new StringBuffer(), new FieldPosition(0)).toString();
+ }
+
+ /**
+ * @generated
+ */
+ public IParserEditStatus isValidEditString(IAdaptable adapter,
+ String editString) {
+ ParsePosition pos = new ParsePosition(0);
+ Object[] values = getEditProcessor().parse(editString, pos);
+ if (values == null) {
+ return new ParserEditStatus(ComrelDiagramEditorPlugin.ID,
+ IParserEditStatus.UNEDITABLE, NLS.bind(
+ Messages.MessageFormatParser_InvalidInputError,
+ new Integer(pos.getErrorIndex())));
+ }
+ return validateNewValues(values);
+ }
+
+ /**
+ * @generated
+ */
+ public ICommand getParseCommand(IAdaptable adapter, String newString,
+ int flags) {
+ Object[] values = getEditProcessor().parse(newString,
+ new ParsePosition(0));
+ return getParseCommand(adapter, values, flags);
+ }
+
+ /**
+ * @generated
+ */
+ public String getPrintString(IAdaptable adapter, int flags) {
+ EObject element = (EObject) adapter.getAdapter(EObject.class);
+ return getViewProcessor().format(getValues(element),
+ new StringBuffer(), new FieldPosition(0)).toString();
+ }
+
+}
diff --git a/org.eclipse.emf.refactor.comrel.diagram/src/comrel/diagram/part/ComrelCreationWizard.java b/org.eclipse.emf.refactor.comrel.diagram/src/comrel/diagram/part/ComrelCreationWizard.java
new file mode 100644
index 0000000..93db297
--- /dev/null
+++ b/org.eclipse.emf.refactor.comrel.diagram/src/comrel/diagram/part/ComrelCreationWizard.java
@@ -0,0 +1,185 @@
+/*
+ *
+ */
+package comrel.diagram.part;
+
+import java.lang.reflect.InvocationTargetException;
+
+import org.eclipse.core.runtime.CoreException;
+import org.eclipse.core.runtime.IProgressMonitor;
+import org.eclipse.emf.ecore.resource.Resource;
+import org.eclipse.jface.dialogs.ErrorDialog;
+import org.eclipse.jface.operation.IRunnableWithProgress;
+import org.eclipse.jface.viewers.IStructuredSelection;
+import org.eclipse.jface.wizard.Wizard;
+import org.eclipse.ui.INewWizard;
+import org.eclipse.ui.IWorkbench;
+import org.eclipse.ui.PartInitException;
+import org.eclipse.ui.actions.WorkspaceModifyOperation;
+
+/**
+ * @generated
+ */
+public class ComrelCreationWizard extends Wizard implements INewWizard {
+
+ private ComrelCustomCreationWizardPage customPage;
+
+ /**
+ * @generated
+ */
+ private IWorkbench workbench;
+
+ /**
+ * @generated
+ */
+ protected IStructuredSelection selection;
+
+ /**
+ * @generated
+ */
+ protected ComrelCreationWizardPage diagramModelFilePage;
+
+ /**
+ * @generated
+ */
+ protected ComrelCreationWizardPage domainModelFilePage;
+
+ /**
+ * @generated
+ */
+ protected Resource diagram;
+
+ /**
+ * @generated
+ */
+ private boolean openNewlyCreatedDiagramEditor = true;
+
+ /**
+ * @generated
+ */
+ public IWorkbench getWorkbench() {
+ return workbench;
+ }
+
+ /**
+ * @generated
+ */
+ public IStructuredSelection getSelection() {
+ return selection;
+ }
+
+ /**
+ * @generated
+ */
+ public final Resource getDiagram() {
+ return diagram;
+ }
+
+ /**
+ * @generated
+ */
+ public final boolean isOpenNewlyCreatedDiagramEditor() {
+ return openNewlyCreatedDiagramEditor;
+ }
+
+ /**
+ * @generated
+ */
+ public void setOpenNewlyCreatedDiagramEditor(
+ boolean openNewlyCreatedDiagramEditor) {
+ this.openNewlyCreatedDiagramEditor = openNewlyCreatedDiagramEditor;
+ }
+
+ /**
+ * @generated
+ */
+ public void init(IWorkbench workbench, IStructuredSelection selection) {
+ this.workbench = workbench;
+ this.selection = selection;
+ setWindowTitle(Messages.ComrelCreationWizardTitle);
+ setDefaultPageImageDescriptor(ComrelDiagramEditorPlugin
+ .getBundledImageDescriptor("icons/wizban/NewComrelWizard.gif")); //$NON-NLS-1$
+ setNeedsProgressMonitor(true);
+ }
+
+ /**
+ * @generated NOT
+ */
+ public void addPages() {
+
+ diagramModelFilePage = new ComrelCreationWizardPage(
+ "DiagramModelFile", getSelection(), "comrel_diagram"); //$NON-NLS-1$ //$NON-NLS-2$
+ diagramModelFilePage
+ .setTitle(Messages.ComrelCreationWizard_DiagramModelFilePageTitle);
+ diagramModelFilePage
+ .setDescription(Messages.ComrelCreationWizard_DiagramModelFilePageDescription);
+ addPage(diagramModelFilePage);
+
+ domainModelFilePage = new ComrelCreationWizardPage(
+ "DomainModelFile", getSelection(), "comrel") { //$NON-NLS-1$ //$NON-NLS-2$
+
+ public void setVisible(boolean visible) {
+ if (visible) {
+ String fileName = diagramModelFilePage.getFileName();
+ fileName = fileName.substring(0, fileName.length()
+ - ".comrel_diagram".length()); //$NON-NLS-1$
+ setFileName(ComrelDiagramEditorUtil.getUniqueFileName(
+ getContainerFullPath(), fileName, "comrel")); //$NON-NLS-1$
+ }
+ super.setVisible(visible);
+ }
+ };
+ domainModelFilePage
+ .setTitle(Messages.ComrelCreationWizard_DomainModelFilePageTitle);
+ domainModelFilePage
+ .setDescription(Messages.ComrelCreationWizard_DomainModelFilePageDescription);
+ addPage(domainModelFilePage);
+ customPage = new ComrelCustomCreationWizardPage(
+ "Composite Refactoring Details");
+ customPage.setTitle("Composite Refactoring Details");
+ addPage(customPage);
+ }
+
+ /**
+ * @generated NOT
+ */
+ public boolean performFinish() {
+ IRunnableWithProgress op = new WorkspaceModifyOperation(null) {
+
+ protected void execute(IProgressMonitor monitor)
+ throws CoreException, InterruptedException {
+ diagram = ComrelDiagramEditorUtil.createDiagram(
+ diagramModelFilePage.getURI(), domainModelFilePage
+ .getURI(), monitor, customPage.getDiagramName()
+ .getText(), customPage.getNamespaceURI()
+ .getText(), customPage
+ .getConnectionVisualization().getText());
+ if (isOpenNewlyCreatedDiagramEditor() && diagram != null) {
+ try {
+ ComrelDiagramEditorUtil.openDiagram(diagram);
+ } catch (PartInitException e) {
+ ErrorDialog.openError(getContainer().getShell(),
+ Messages.ComrelCreationWizardOpenEditorError,
+ null, e.getStatus());
+ }
+ }
+ }
+ };
+ try {
+ getContainer().run(false, true, op);
+ } catch (InterruptedException e) {
+ return false;
+ } catch (InvocationTargetException e) {
+ if (e.getTargetException() instanceof CoreException) {
+ ErrorDialog.openError(getContainer().getShell(),
+ Messages.ComrelCreationWizardCreationError, null,
+ ((CoreException) e.getTargetException()).getStatus());
+ } else {
+ ComrelDiagramEditorPlugin.getInstance().logError(
+ "Error creating diagram", e.getTargetException()); //$NON-NLS-1$
+ }
+ return false;
+ }
+ return diagram != null;
+ }
+}
diff --git a/org.eclipse.emf.refactor.comrel.diagram/src/comrel/diagram/part/ComrelCreationWizardPage.java b/org.eclipse.emf.refactor.comrel.diagram/src/comrel/diagram/part/ComrelCreationWizardPage.java
new file mode 100644
index 0000000..e9713a4
--- /dev/null
+++ b/org.eclipse.emf.refactor.comrel.diagram/src/comrel/diagram/part/ComrelCreationWizardPage.java
@@ -0,0 +1,90 @@
+/*
+ *
+ */
+package comrel.diagram.part;
+
+import org.eclipse.core.runtime.IPath;
+import org.eclipse.core.runtime.Path;
+import org.eclipse.emf.common.util.URI;
+import org.eclipse.jface.viewers.IStructuredSelection;
+import org.eclipse.osgi.util.NLS;
+import org.eclipse.swt.widgets.Composite;
+import org.eclipse.ui.dialogs.WizardNewFileCreationPage;
+
+/**
+ * @generated
+ */
+public class ComrelCreationWizardPage extends WizardNewFileCreationPage {
+
+ /**
+ * @generated
+ */
+ private final String fileExtension;
+
+ /**
+ * @generated
+ */
+ public ComrelCreationWizardPage(String pageName,
+ IStructuredSelection selection, String fileExtension) {
+ super(pageName, selection);
+ this.fileExtension = fileExtension;
+ }
+
+ /**
+ * Override to create files with this extension.
+ *
+ * @generated
+ */
+ protected String getExtension() {
+ return fileExtension;
+ }
+
+ /**
+ * @generated
+ */
+ public URI getURI() {
+ return URI.createPlatformResourceURI(getFilePath().toString(), false);
+ }
+
+ /**
+ * @generated
+ */
+ protected IPath getFilePath() {
+ IPath path = getContainerFullPath();
+ if (path == null) {
+ path = new Path(""); //$NON-NLS-1$
+ }
+ String fileName = getFileName();
+ if (fileName != null) {
+ path = path.append(fileName);
+ }
+ return path;
+ }
+
+ /**
+ * @generated
+ */
+ public void createControl(Composite parent) {
+ super.createControl(parent);
+ setFileName(ComrelDiagramEditorUtil.getUniqueFileName(
+ getContainerFullPath(), getFileName(), getExtension()));
+ setPageComplete(validatePage());
+ }
+
+ /**
+ * @generated
+ */
+ protected boolean validatePage() {
+ if (!super.validatePage()) {
+ return false;
+ }
+ String extension = getExtension();
+ if (extension != null
+ && !getFilePath().toString().endsWith("." + extension)) {
+ setErrorMessage(NLS.bind(
+ Messages.ComrelCreationWizardPageExtensionError, extension));
+ return false;
+ }
+ return true;
+ }
+}
diff --git a/org.eclipse.emf.refactor.comrel.diagram/src/comrel/diagram/part/ComrelCustomCreationWizardPage.java b/org.eclipse.emf.refactor.comrel.diagram/src/comrel/diagram/part/ComrelCustomCreationWizardPage.java
new file mode 100644
index 0000000..bddd63b
--- /dev/null
+++ b/org.eclipse.emf.refactor.comrel.diagram/src/comrel/diagram/part/ComrelCustomCreationWizardPage.java
@@ -0,0 +1,128 @@
+package comrel.diagram.part;
+
+import org.eclipse.jface.wizard.IWizardPage;
+import org.eclipse.jface.wizard.WizardPage;
+import org.eclipse.swt.SWT;
+import org.eclipse.swt.layout.GridData;
+import org.eclipse.swt.layout.GridLayout;
+import org.eclipse.swt.widgets.Combo;
+import org.eclipse.swt.widgets.Composite;
+import org.eclipse.swt.widgets.Event;
+import org.eclipse.swt.widgets.Label;
+import org.eclipse.swt.widgets.Text;
+import org.eclipse.ui.dialogs.WizardNewFileCreationPage;
+
+import comrel.MappingVisualization;
+import comrel.util.RegistryUtil;
+
+public class ComrelCustomCreationWizardPage extends WizardPage {
+
+ private Combo namespaceURI;
+
+ private Text diagramName;
+
+ private Combo connectionVisualization;
+
+ protected ComrelCustomCreationWizardPage(String pageName) {
+ super(pageName);
+ }
+
+ @Override
+ public void createControl(Composite parent) {
+ Composite composite = new Composite(parent,SWT.NONE);
+ GridLayout gl = new GridLayout();
+ int ncol = 3;
+ gl.numColumns = ncol;
+ GridData gridData = new GridData();
+ new Label (composite, SWT.NONE).setText("Diagram Name:");
+ diagramName = new Text(composite, SWT.BORDER);
+ gridData = new GridData(GridData.FILL_HORIZONTAL);
+ gridData.horizontalSpan = ncol - 1;
+ diagramName.setLayoutData(gridData);
+ gridData.horizontalAlignment = GridData.BEGINNING;
+ IWizardPage prePage = this.getPreviousPage();
+ if(prePage instanceof WizardNewFileCreationPage) {
+ WizardNewFileCreationPage p = (WizardNewFileCreationPage)prePage;
+ String filename = p.getFileName();
+ String subString = filename.substring(0,filename.length()-18);
+ diagramName.setText(subString);
+ }
+ gridData.widthHint = GridData.HORIZONTAL_ALIGN_FILL;
+ gridData.minimumWidth = GridData.HORIZONTAL_ALIGN_FILL;
+ new Label (composite, SWT.NONE).setText("NamespaceURI:");
+ namespaceURI = new Combo(composite, SWT.BORDER | SWT.READ_ONLY);
+ for(String s: RegistryUtil.getNamepsaceURIS()) {
+ namespaceURI.add(s);
+ }
+ namespaceURI.setLayoutData(gridData);
+ namespaceURI.addListener(SWT.Selection, new MyListener());
+
+ new Label (composite, SWT.NONE).setText("Connection Visualization:");
+ connectionVisualization = new Combo(composite, SWT.BORDER | SWT.READ_ONLY);
+ for(MappingVisualization m : MappingVisualization.values()) {
+ connectionVisualization.add(m.getLiteral());
+ }
+ if(connectionVisualization.getItemCount()>0) {
+ connectionVisualization.select(0);
+ }
+ connectionVisualization.setLayoutData(gridData);
+ composite.setLayout(gl);
+ setControl(composite);
+ }
+
+ public Combo getNamespaceURI() {
+ return namespaceURI;
+ }
+
+ public void setNamespaceURI(Combo namespaceURI) {
+ this.namespaceURI = namespaceURI;
+ this.setPageComplete(this.isPageComplete());
+ getWizard().getContainer().updateButtons();
+ }
+
+ public Text getDiagramName() {
+ return diagramName;
+ }
+
+ public void setDiagramName(Text diagramName) {
+ this.diagramName = diagramName;
+ }
+
+ public Combo getConnectionVisualization() {
+ return connectionVisualization;
+ }
+
+ public void setConnectionVisualization(Combo connectionVisualization) {
+ this.connectionVisualization = connectionVisualization;
+ }
+
+ @Override
+ public boolean isPageComplete() {
+ return validatePage() && super.isPageComplete();
+ }
+
+ @Override
+ public void setPageComplete(boolean complete) {
+ super.setPageComplete(complete);
+ }
+
+ public boolean validatePage(){
+ if(this.getNamespaceURI().getSelectionIndex()==-1) {
+ setErrorMessage("NamspaceURI must be set");
+ return false;
+ }
+ setErrorMessage(null);
+ return true;
+ }
+
+ private class MyListener implements org.eclipse.swt.widgets.Listener{
+
+ @Override
+ public void handleEvent(Event event) {
+ setPageComplete(validatePage());
+ getWizard().getContainer().updateButtons();
+
+ }
+
+ }
+}
diff --git a/org.eclipse.emf.refactor.comrel.diagram/src/comrel/diagram/part/ComrelDiagramActionBarContributor.java b/org.eclipse.emf.refactor.comrel.diagram/src/comrel/diagram/part/ComrelDiagramActionBarContributor.java
new file mode 100644
index 0000000..ff1fe40
--- /dev/null
+++ b/org.eclipse.emf.refactor.comrel.diagram/src/comrel/diagram/part/ComrelDiagramActionBarContributor.java
@@ -0,0 +1,57 @@
+/*
+ *
+ */
+package comrel.diagram.part;
+
+import org.eclipse.gmf.runtime.diagram.ui.parts.DiagramActionBarContributor;
+import org.eclipse.gmf.runtime.diagram.ui.printing.render.actions.EnhancedPrintActionHelper;
+import org.eclipse.gmf.runtime.diagram.ui.printing.render.actions.RenderedPrintPreviewAction;
+import org.eclipse.jface.action.GroupMarker;
+import org.eclipse.jface.action.IAction;
+import org.eclipse.jface.action.IMenuManager;
+import org.eclipse.ui.IActionBars;
+import org.eclipse.ui.IWorkbenchActionConstants;
+import org.eclipse.ui.IWorkbenchPage;
+
+/**
+ * @generated
+ */
+public class ComrelDiagramActionBarContributor extends
+ DiagramActionBarContributor {
+
+ /**
+ * @generated
+ */
+ protected Class getEditorClass() {
+ return ComrelDiagramEditor.class;
+ }
+
+ /**
+ * @generated
+ */
+ protected String getEditorId() {
+ return ComrelDiagramEditor.ID;
+ }
+
+ /**
+ * @generated
+ */
+ public void init(IActionBars bars, IWorkbenchPage page) {
+ super.init(bars, page);
+ // print preview
+ IMenuManager fileMenu = bars.getMenuManager().findMenuUsingPath(
+ IWorkbenchActionConstants.M_FILE);
+ assert fileMenu != null;
+ IAction printPreviewAction = new RenderedPrintPreviewAction(
+ new EnhancedPrintActionHelper());
+ fileMenu.insertBefore("print", printPreviewAction); //$NON-NLS-1$
+ IMenuManager editMenu = bars.getMenuManager().findMenuUsingPath(
+ IWorkbenchActionConstants.M_EDIT);
+ assert editMenu != null;
+ if (editMenu.find("validationGroup") == null) { //$NON-NLS-1$
+ editMenu.add(new GroupMarker("validationGroup")); //$NON-NLS-1$
+ }
+ IAction validateAction = new ValidateAction(page);
+ editMenu.appendToGroup("validationGroup", validateAction); //$NON-NLS-1$
+ }
+}
diff --git a/org.eclipse.emf.refactor.comrel.diagram/src/comrel/diagram/part/ComrelDiagramEditor.java b/org.eclipse.emf.refactor.comrel.diagram/src/comrel/diagram/part/ComrelDiagramEditor.java
new file mode 100644
index 0000000..1c57bcc
--- /dev/null
+++ b/org.eclipse.emf.refactor.comrel.diagram/src/comrel/diagram/part/ComrelDiagramEditor.java
@@ -0,0 +1,393 @@
+/*
+ *
+ */
+package comrel.diagram.part;
+
+import java.util.ArrayList;
+import java.util.HashSet;
+import java.util.Iterator;
+import java.util.List;
+
+import org.eclipse.core.resources.IFile;
+import org.eclipse.core.resources.IMarker;
+import org.eclipse.core.resources.IWorkspaceRoot;
+import org.eclipse.core.resources.ResourcesPlugin;
+import org.eclipse.core.runtime.CoreException;
+import org.eclipse.core.runtime.IAdaptable;
+import org.eclipse.core.runtime.IPath;
+import org.eclipse.core.runtime.IProgressMonitor;
+import org.eclipse.core.runtime.IStatus;
+import org.eclipse.core.runtime.NullProgressMonitor;
+import org.eclipse.emf.common.ui.URIEditorInput;
+import org.eclipse.emf.common.util.URI;
+import org.eclipse.emf.ecore.EObject;
+import org.eclipse.emf.ecore.util.EcoreUtil;
+import org.eclipse.emf.edit.ui.dnd.LocalTransfer;
+import org.eclipse.emf.transaction.TransactionalEditingDomain;
+import org.eclipse.emf.workspace.util.WorkspaceSynchronizer;
+import org.eclipse.gef.EditPartViewer;
+import org.eclipse.gef.palette.PaletteRoot;
+import org.eclipse.gmf.runtime.common.ui.services.marker.MarkerNavigationService;
+import org.eclipse.gmf.runtime.diagram.core.preferences.PreferencesHint;
+import org.eclipse.gmf.runtime.diagram.ui.actions.ActionIds;
+import org.eclipse.gmf.runtime.diagram.ui.parts.DiagramDropTargetListener;
+import org.eclipse.gmf.runtime.diagram.ui.resources.editor.document.IDiagramDocument;
+import org.eclipse.gmf.runtime.diagram.ui.resources.editor.document.IDocument;
+import org.eclipse.gmf.runtime.diagram.ui.resources.editor.document.IDocumentProvider;
+import org.eclipse.gmf.runtime.diagram.ui.resources.editor.parts.DiagramDocumentEditor;
+import org.eclipse.gmf.runtime.notation.Diagram;
+import org.eclipse.gmf.runtime.notation.View;
+import org.eclipse.jface.dialogs.ErrorDialog;
+import org.eclipse.jface.dialogs.IMessageProvider;
+import org.eclipse.jface.dialogs.MessageDialog;
+import org.eclipse.jface.util.LocalSelectionTransfer;
+import org.eclipse.jface.viewers.ISelection;
+import org.eclipse.jface.viewers.IStructuredSelection;
+import org.eclipse.jface.viewers.StructuredSelection;
+import org.eclipse.jface.window.Window;
+import org.eclipse.osgi.util.NLS;
+import org.eclipse.swt.dnd.Transfer;
+import org.eclipse.swt.dnd.TransferData;
+import org.eclipse.swt.widgets.Shell;
+import org.eclipse.ui.IEditorInput;
+import org.eclipse.ui.IEditorMatchingStrategy;
+import org.eclipse.ui.IEditorReference;
+import org.eclipse.ui.IFileEditorInput;
+import org.eclipse.ui.PlatformUI;
+import org.eclipse.ui.dialogs.SaveAsDialog;
+import org.eclipse.ui.ide.IGotoMarker;
+import org.eclipse.ui.navigator.resources.ProjectExplorer;
+import org.eclipse.ui.part.FileEditorInput;
+import org.eclipse.ui.part.IShowInTargetList;
+import org.eclipse.ui.part.ShowInContext;
+
+import comrel.diagram.navigator.ComrelNavigatorItem;
+
+/**
+ * @generated
+ */
+public class ComrelDiagramEditor extends DiagramDocumentEditor implements
+ IGotoMarker {
+
+ /**
+ * @generated
+ */
+ public static final String ID = "comrel.diagram.part.ComrelDiagramEditorID"; //$NON-NLS-1$
+
+ /**
+ * @generated
+ */
+ public static final String CONTEXT_ID = "comrel.diagram.ui.diagramContext"; //$NON-NLS-1$
+
+ /**
+ * @generated
+ */
+ public ComrelDiagramEditor() {
+ super(true);
+ }
+
+ /**
+ * @generated
+ */
+ protected String getContextID() {
+ return CONTEXT_ID;
+ }
+
+ /**
+ * @generated
+ */
+ protected PaletteRoot createPaletteRoot(PaletteRoot existingPaletteRoot) {
+ PaletteRoot root = super.createPaletteRoot(existingPaletteRoot);
+ new ComrelPaletteFactory().fillPalette(root);
+ return root;
+ }
+
+ /**
+ * @generated
+ */
+ protected PreferencesHint getPreferencesHint() {
+ return ComrelDiagramEditorPlugin.DIAGRAM_PREFERENCES_HINT;
+ }
+
+ /**
+ * @generated
+ */
+ public String getContributorId() {
+ return ComrelDiagramEditorPlugin.ID;
+ }
+
+ /**
+ * @generated
+ */
+ @SuppressWarnings("rawtypes")
+ public Object getAdapter(Class type) {
+ if (type == IShowInTargetList.class) {
+ return new IShowInTargetList() {
+ public String[] getShowInTargetIds() {
+ return new String[] { ProjectExplorer.VIEW_ID };
+ }
+ };
+ }
+ return super.getAdapter(type);
+ }
+
+ /**
+ * @generated
+ */
+ protected IDocumentProvider getDocumentProvider(IEditorInput input) {
+ if (input instanceof IFileEditorInput
+ || input instanceof URIEditorInput) {
+ return ComrelDiagramEditorPlugin.getInstance()
+ .getDocumentProvider();
+ }
+ return super.getDocumentProvider(input);
+ }
+
+ /**
+ * @generated
+ */
+ public TransactionalEditingDomain getEditingDomain() {
+ IDocument document = getEditorInput() != null ? getDocumentProvider()
+ .getDocument(getEditorInput()) : null;
+ if (document instanceof IDiagramDocument) {
+ return ((IDiagramDocument) document).getEditingDomain();
+ }
+ return super.getEditingDomain();
+ }
+
+ /**
+ * @generated
+ */
+ protected void setDocumentProvider(IEditorInput input) {
+ if (input instanceof IFileEditorInput
+ || input instanceof URIEditorInput) {
+ setDocumentProvider(ComrelDiagramEditorPlugin.getInstance()
+ .getDocumentProvider());
+ } else {
+ super.setDocumentProvider(input);
+ }
+ }
+
+ /**
+ * @generated
+ */
+ public void gotoMarker(IMarker marker) {
+ MarkerNavigationService.getInstance().gotoMarker(this, marker);
+ }
+
+ /**
+ * @generated
+ */
+ public boolean isSaveAsAllowed() {
+ return true;
+ }
+
+ /**
+ * @generated
+ */
+ public void doSaveAs() {
+ performSaveAs(new NullProgressMonitor());
+ }
+
+ /**
+ * @generated
+ */
+ protected void performSaveAs(IProgressMonitor progressMonitor) {
+ Shell shell = getSite().getShell();
+ IEditorInput input = getEditorInput();
+ SaveAsDialog dialog = new SaveAsDialog(shell);
+ IFile original = input instanceof IFileEditorInput ? ((IFileEditorInput) input)
+ .getFile() : null;
+ if (original != null) {
+ dialog.setOriginalFile(original);
+ }
+ dialog.create();
+ IDocumentProvider provider = getDocumentProvider();
+ if (provider == null) {
+ // editor has been programmatically closed while the dialog was open
+ return;
+ }
+ if (provider.isDeleted(input) && original != null) {
+ String message = NLS.bind(
+ Messages.ComrelDiagramEditor_SavingDeletedFile,
+ original.getName());
+ dialog.setErrorMessage(null);
+ dialog.setMessage(message, IMessageProvider.WARNING);
+ }
+ if (dialog.open() == Window.CANCEL) {
+ if (progressMonitor != null) {
+ progressMonitor.setCanceled(true);
+ }
+ return;
+ }
+ IPath filePath = dialog.getResult();
+ if (filePath == null) {
+ if (progressMonitor != null) {
+ progressMonitor.setCanceled(true);
+ }
+ return;
+ }
+ IWorkspaceRoot workspaceRoot = ResourcesPlugin.getWorkspace().getRoot();
+ IFile file = workspaceRoot.getFile(filePath);
+ final IEditorInput newInput = new FileEditorInput(file);
+ // Check if the editor is already open
+ IEditorMatchingStrategy matchingStrategy = getEditorDescriptor()
+ .getEditorMatchingStrategy();
+ IEditorReference[] editorRefs = PlatformUI.getWorkbench()
+ .getActiveWorkbenchWindow().getActivePage()
+ .getEditorReferences();
+ for (int i = 0; i < editorRefs.length; i++) {
+ if (matchingStrategy.matches(editorRefs[i], newInput)) {
+ MessageDialog.openWarning(shell,
+ Messages.ComrelDiagramEditor_SaveAsErrorTitle,
+ Messages.ComrelDiagramEditor_SaveAsErrorMessage);
+ return;
+ }
+ }
+ boolean success = false;
+ try {
+ provider.aboutToChange(newInput);
+ getDocumentProvider(newInput).saveDocument(progressMonitor,
+ newInput,
+ getDocumentProvider().getDocument(getEditorInput()), true);
+ success = true;
+ } catch (CoreException x) {
+ IStatus status = x.getStatus();
+ if (status == null || status.getSeverity() != IStatus.CANCEL) {
+ ErrorDialog.openError(shell,
+ Messages.ComrelDiagramEditor_SaveErrorTitle,
+ Messages.ComrelDiagramEditor_SaveErrorMessage,
+ x.getStatus());
+ }
+ } finally {
+ provider.changed(newInput);
+ if (success) {
+ setInput(newInput);
+ }
+ }
+ if (progressMonitor != null) {
+ progressMonitor.setCanceled(!success);
+ }
+ }
+
+ /**
+ * @generated
+ */
+ public ShowInContext getShowInContext() {
+ return new ShowInContext(getEditorInput(), getNavigatorSelection());
+ }
+
+ /**
+ * @generated
+ */
+ private ISelection getNavigatorSelection() {
+ IDiagramDocument document = getDiagramDocument();
+ if (document == null) {
+ return StructuredSelection.EMPTY;
+ }
+ Diagram diagram = document.getDiagram();
+ IFile file = WorkspaceSynchronizer.getFile(diagram.eResource());
+ if (file != null) {
+ ComrelNavigatorItem item = new ComrelNavigatorItem(diagram, file,
+ false);
+ return new StructuredSelection(item);
+ }
+ return StructuredSelection.EMPTY;
+ }
+
+ /**
+ * @generated
+ */
+ protected void configureGraphicalViewer() {
+ super.configureGraphicalViewer();
+ DiagramEditorContextMenuProvider provider = new DiagramEditorContextMenuProvider(
+ this, getDiagramGraphicalViewer());
+ getDiagramGraphicalViewer().setContextMenu(provider);
+ getSite().registerContextMenu(ActionIds.DIAGRAM_EDITOR_CONTEXT_MENU,
+ provider, getDiagramGraphicalViewer());
+ }
+
+ /**
+ * @generated
+ */
+ protected void initializeGraphicalViewer() {
+ super.initializeGraphicalViewer();
+ getDiagramGraphicalViewer().addDropTargetListener(
+ new DropTargetListener(getDiagramGraphicalViewer(),
+ LocalSelectionTransfer.getTransfer()) {
+
+ protected Object getJavaObject(TransferData data) {
+ return LocalSelectionTransfer.getTransfer()
+ .nativeToJava(data);
+ }
+
+ });
+ getDiagramGraphicalViewer().addDropTargetListener(
+ new DropTargetListener(getDiagramGraphicalViewer(),
+ LocalTransfer.getInstance()) {
+
+ protected Object getJavaObject(TransferData data) {
+ return LocalTransfer.getInstance().nativeToJava(data);
+ }
+
+ });
+ }
+
+ /**
+ * @generated
+ */
+ private abstract class DropTargetListener extends DiagramDropTargetListener {
+
+ /**
+ * @generated
+ */
+ public DropTargetListener(EditPartViewer viewer, Transfer xfer) {
+ super(viewer, xfer);
+ }
+
+ /**
+ * @generated
+ */
+ protected List getObjectsBeingDropped() {
+ TransferData data = getCurrentEvent().currentDataType;
+ HashSet<URI> uris = new HashSet<URI>();
+
+ Object transferedObject = getJavaObject(data);
+ if (transferedObject instanceof IStructuredSelection) {
+ IStructuredSelection selection = (IStructuredSelection) transferedObject;
+ for (Iterator<?> it = selection.iterator(); it.hasNext();) {
+ Object nextSelectedObject = it.next();
+ if (nextSelectedObject instanceof ComrelNavigatorItem) {
+ View view = ((ComrelNavigatorItem) nextSelectedObject)
+ .getView();
+ nextSelectedObject = view.getElement();
+ } else if (nextSelectedObject instanceof IAdaptable) {
+ IAdaptable adaptable = (IAdaptable) nextSelectedObject;
+ nextSelectedObject = adaptable
+ .getAdapter(EObject.class);
+ }
+
+ if (nextSelectedObject instanceof EObject) {
+ EObject modelElement = (EObject) nextSelectedObject;
+ uris.add(EcoreUtil.getURI(modelElement));
+ }
+ }
+ }
+
+ ArrayList<EObject> result = new ArrayList<EObject>(uris.size());
+ for (URI nextURI : uris) {
+ EObject modelObject = getEditingDomain().getResourceSet()
+ .getEObject(nextURI, true);
+ result.add(modelObject);
+ }
+ return result;
+ }
+
+ /**
+ * @generated
+ */
+ protected abstract Object getJavaObject(TransferData data);
+
+ }
+
+}
diff --git a/org.eclipse.emf.refactor.comrel.diagram/src/comrel/diagram/part/ComrelDiagramEditorPlugin.java b/org.eclipse.emf.refactor.comrel.diagram/src/comrel/diagram/part/ComrelDiagramEditorPlugin.java
new file mode 100644
index 0000000..af7fc0d
--- /dev/null
+++ b/org.eclipse.emf.refactor.comrel.diagram/src/comrel/diagram/part/ComrelDiagramEditorPlugin.java
@@ -0,0 +1,316 @@
+/*
+ *
+ */
+package comrel.diagram.part;
+
+import java.util.ArrayList;
+import java.util.List;
+
+import org.eclipse.core.runtime.IPath;
+import org.eclipse.core.runtime.IStatus;
+import org.eclipse.core.runtime.Path;
+import org.eclipse.core.runtime.Platform;
+import org.eclipse.core.runtime.Status;
+import org.eclipse.emf.common.notify.AdapterFactory;
+import org.eclipse.emf.edit.provider.ComposedAdapterFactory;
+import org.eclipse.emf.edit.provider.IItemLabelProvider;
+import org.eclipse.emf.edit.provider.ReflectiveItemProviderAdapterFactory;
+import org.eclipse.emf.edit.provider.resource.ResourceItemProviderAdapterFactory;
+import org.eclipse.emf.edit.ui.provider.ExtendedImageRegistry;
+import org.eclipse.gmf.runtime.diagram.core.preferences.PreferencesHint;
+import org.eclipse.jface.resource.ImageDescriptor;
+import org.eclipse.swt.graphics.Image;
+import org.eclipse.ui.plugin.AbstractUIPlugin;
+import org.osgi.framework.BundleContext;
+
+import comrel.diagram.edit.policies.ComrelBaseItemSemanticEditPolicy;
+import comrel.diagram.expressions.ComrelOCLFactory;
+import comrel.diagram.providers.ElementInitializers;
+import comrel.provider.ComrelItemProviderAdapterFactory;
+
+/**
+ * @generated
+ */
+public class ComrelDiagramEditorPlugin extends AbstractUIPlugin {
+
+ /**
+ * @generated
+ */
+ public static final String ID = "org.eclipse.emf.refactor.comrel.diagram"; //$NON-NLS-1$
+
+ /**
+ * @generated
+ */
+ public static final PreferencesHint DIAGRAM_PREFERENCES_HINT = new PreferencesHint(
+ ID);
+
+ /**
+ * @generated
+ */
+ private static ComrelDiagramEditorPlugin instance;
+
+ /**
+ * @generated
+ */
+ private ComposedAdapterFactory adapterFactory;
+
+ /**
+ * @generated
+ */
+ private ComrelDocumentProvider documentProvider;
+
+ /**
+ * @generated
+ */
+ private ComrelBaseItemSemanticEditPolicy.LinkConstraints linkConstraints;
+
+ /**
+ * @generated
+ */
+ private ElementInitializers initializers;
+
+ /**
+ * @generated
+ */
+ private ComrelOCLFactory oclFactory;
+
+ /**
+ * @generated
+ */
+ public ComrelDiagramEditorPlugin() {
+ }
+
+ /**
+ * @generated
+ */
+ public void start(BundleContext context) throws Exception {
+ super.start(context);
+ instance = this;
+ PreferencesHint.registerPreferenceStore(DIAGRAM_PREFERENCES_HINT,
+ getPreferenceStore());
+ adapterFactory = createAdapterFactory();
+ }
+
+ /**
+ * @generated
+ */
+ public void stop(BundleContext context) throws Exception {
+ adapterFactory.dispose();
+ adapterFactory = null;
+ linkConstraints = null;
+ initializers = null;
+ oclFactory = null;
+ instance = null;
+ super.stop(context);
+ }
+
+ /**
+ * @generated
+ */
+ public static ComrelDiagramEditorPlugin getInstance() {
+ return instance;
+ }
+
+ /**
+ * @generated
+ */
+ protected ComposedAdapterFactory createAdapterFactory() {
+ ArrayList<AdapterFactory> factories = new ArrayList<AdapterFactory>();
+ fillItemProviderFactories(factories);
+ return new ComposedAdapterFactory(factories);
+ }
+
+ /**
+ * @generated
+ */
+ protected void fillItemProviderFactories(List<AdapterFactory> factories) {
+ factories.add(new ComrelItemProviderAdapterFactory());
+ factories.add(new ResourceItemProviderAdapterFactory());
+ factories.add(new ReflectiveItemProviderAdapterFactory());
+ }
+
+ /**
+ * @generated
+ */
+ public AdapterFactory getItemProvidersAdapterFactory() {
+ return adapterFactory;
+ }
+
+ /**
+ * @generated
+ */
+ public ImageDescriptor getItemImageDescriptor(Object item) {
+ IItemLabelProvider labelProvider = (IItemLabelProvider) adapterFactory
+ .adapt(item, IItemLabelProvider.class);
+ if (labelProvider != null) {
+ return ExtendedImageRegistry.getInstance().getImageDescriptor(
+ labelProvider.getImage(item));
+ }
+ return null;
+ }
+
+ /**
+ * Returns an image descriptor for the image file at the given
+ * plug-in relative path.
+ *
+ * @generated
+ * @param path the path
+ * @return the image descriptor
+ */
+ public static ImageDescriptor getBundledImageDescriptor(String path) {
+ return AbstractUIPlugin.imageDescriptorFromPlugin(ID, path);
+ }
+
+ /**
+ * Respects images residing in any plug-in. If path is relative,
+ * then this bundle is looked up for the image, otherwise, for absolute
+ * path, first segment is taken as id of plug-in with image
+ *
+ * @generated
+ * @param path the path to image, either absolute (with plug-in id as first segment), or relative for bundled images
+ * @return the image descriptor
+ */
+ public static ImageDescriptor findImageDescriptor(String path) {
+ final IPath p = new Path(path);
+ if (p.isAbsolute() && p.segmentCount() > 1) {
+ return AbstractUIPlugin.imageDescriptorFromPlugin(p.segment(0), p
+ .removeFirstSegments(1).makeAbsolute().toString());
+ } else {
+ return getBundledImageDescriptor(p.makeAbsolute().toString());
+ }
+ }
+
+ /**
+ * Returns an image for the image file at the given plug-in relative path.
+ * Client do not need to dispose this image. Images will be disposed automatically.
+ *
+ * @generated
+ * @param path the path
+ * @return image instance
+ */
+ public Image getBundledImage(String path) {
+ Image image = getImageRegistry().get(path);
+ if (image == null) {
+ getImageRegistry().put(path, getBundledImageDescriptor(path));
+ image = getImageRegistry().get(path);
+ }
+ return image;
+ }
+
+ /**
+ * Returns string from plug-in's resource bundle
+ *
+ * @generated
+ */
+ public static String getString(String key) {
+ return Platform.getResourceString(getInstance().getBundle(), "%" + key); //$NON-NLS-1$
+ }
+
+ /**
+ * @generated
+ */
+ public ComrelDocumentProvider getDocumentProvider() {
+ if (documentProvider == null) {
+ documentProvider = new ComrelDocumentProvider();
+ }
+ return documentProvider;
+ }
+
+ /**
+ * @generated
+ */
+ public ComrelBaseItemSemanticEditPolicy.LinkConstraints getLinkConstraints() {
+ return linkConstraints;
+ }
+
+ /**
+ * @generated
+ */
+ public void setLinkConstraints(
+ ComrelBaseItemSemanticEditPolicy.LinkConstraints lc) {
+ this.linkConstraints = lc;
+ }
+
+ /**
+ * @generated
+ */
+ public ElementInitializers getElementInitializers() {
+ return initializers;
+ }
+
+ /**
+ * @generated
+ */
+ public void setElementInitializers(ElementInitializers i) {
+ this.initializers = i;
+ }
+
+ /**
+ * @generated
+ */
+ public ComrelOCLFactory getComrelOCLFactory() {
+ return oclFactory;
+ }
+
+ /**
+ * @generated
+ */
+ public void setComrelOCLFactory(ComrelOCLFactory f) {
+ this.oclFactory = f;
+ }
+
+ /**
+ * @generated
+ */
+ public void logError(String error) {
+ logError(error, null);
+ }
+
+ /**
+ * @generated
+ */
+ public void logError(String error, Throwable throwable) {
+ if (error == null && throwable != null) {
+ error = throwable.getMessage();
+ }
+ getLog().log(
+ new Status(IStatus.ERROR, ComrelDiagramEditorPlugin.ID,
+ IStatus.OK, error, throwable));
+ debug(error, throwable);
+ }
+
+ /**
+ * @generated
+ */
+ public void logInfo(String message) {
+ logInfo(message, null);
+ }
+
+ /**
+ * @generated
+ */
+ public void logInfo(String message, Throwable throwable) {
+ if (message == null && throwable != null) {
+ message = throwable.getMessage();
+ }
+ getLog().log(
+ new Status(IStatus.INFO, ComrelDiagramEditorPlugin.ID,
+ IStatus.OK, message, throwable));
+ debug(message, throwable);
+ }
+
+ /**
+ * @generated
+ */
+ private void debug(String message, Throwable throwable) {
+ if (!isDebugging()) {
+ return;
+ }
+ if (message != null) {
+ System.err.println(message);
+ }
+ if (throwable != null) {
+ throwable.printStackTrace();
+ }
+ }
+}
diff --git a/org.eclipse.emf.refactor.comrel.diagram/src/comrel/diagram/part/ComrelDiagramEditorUtil.java b/org.eclipse.emf.refactor.comrel.diagram/src/comrel/diagram/part/ComrelDiagramEditorUtil.java
new file mode 100644
index 0000000..a148f64
--- /dev/null
+++ b/org.eclipse.emf.refactor.comrel.diagram/src/comrel/diagram/part/ComrelDiagramEditorUtil.java
@@ -0,0 +1,495 @@
+/*
+ *
+ */
+package comrel.diagram.part;
+
+import java.io.IOException;
+import java.util.Collections;
+import java.util.HashMap;
+import java.util.Iterator;
+import java.util.LinkedList;
+import java.util.List;
+import java.util.Map;
+import java.util.Set;
+
+import org.eclipse.core.commands.ExecutionException;
+import org.eclipse.core.commands.operations.OperationHistoryFactory;
+import org.eclipse.core.resources.IFile;
+import org.eclipse.core.resources.IResource;
+import org.eclipse.core.resources.ResourcesPlugin;
+import org.eclipse.core.runtime.CoreException;
+import org.eclipse.core.runtime.IAdaptable;
+import org.eclipse.core.runtime.IPath;
+import org.eclipse.core.runtime.IProgressMonitor;
+import org.eclipse.core.runtime.NullProgressMonitor;
+import org.eclipse.core.runtime.Path;
+import org.eclipse.core.runtime.SubProgressMonitor;
+import org.eclipse.emf.common.util.URI;
+import org.eclipse.emf.ecore.EObject;
+import org.eclipse.emf.ecore.resource.Resource;
+import org.eclipse.emf.ecore.xmi.XMLResource;
+import org.eclipse.emf.transaction.TransactionalEditingDomain;
+import org.eclipse.emf.workspace.util.WorkspaceSynchronizer;
+import org.eclipse.gef.EditPart;
+import org.eclipse.gmf.runtime.common.core.command.CommandResult;
+import org.eclipse.gmf.runtime.diagram.core.services.ViewService;
+import org.eclipse.gmf.runtime.diagram.ui.editparts.DiagramEditPart;
+import org.eclipse.gmf.runtime.diagram.ui.editparts.IGraphicalEditPart;
+import org.eclipse.gmf.runtime.diagram.ui.editparts.IPrimaryEditPart;
+import org.eclipse.gmf.runtime.diagram.ui.parts.IDiagramGraphicalViewer;
+import org.eclipse.gmf.runtime.diagram.ui.parts.IDiagramWorkbenchPart;
+import org.eclipse.gmf.runtime.emf.commands.core.command.AbstractTransactionalCommand;
+import org.eclipse.gmf.runtime.emf.core.GMFEditingDomainFactory;
+import org.eclipse.gmf.runtime.emf.core.util.EMFCoreUtil;
+import org.eclipse.gmf.runtime.notation.Diagram;
+import org.eclipse.gmf.runtime.notation.View;
+import org.eclipse.jface.dialogs.IDialogSettings;
+import org.eclipse.jface.wizard.Wizard;
+import org.eclipse.jface.wizard.WizardDialog;
+import org.eclipse.swt.widgets.Shell;
+import org.eclipse.ui.IWorkbenchPage;
+import org.eclipse.ui.PartInitException;
+import org.eclipse.ui.PlatformUI;
+import org.eclipse.ui.part.FileEditorInput;
+
+import comrel.CompositeRefactoring;
+import comrel.ComrelFactory;
+import comrel.MappingVisualization;
+import comrel.diagram.edit.parts.CompositeRefactoringEditPart;
+
+/**
+ * @generated
+ */
+public class ComrelDiagramEditorUtil {
+
+ public static final String DEFAULT_FILENAME = "compositeRefactoring";
+
+ /**
+ * @generated
+ */
+ public static Map<?, ?> getSaveOptions() {
+ HashMap<String, Object> saveOptions = new HashMap<String, Object>();
+ saveOptions.put(XMLResource.OPTION_ENCODING, "UTF-8"); //$NON-NLS-1$
+ saveOptions.put(Resource.OPTION_SAVE_ONLY_IF_CHANGED,
+ Resource.OPTION_SAVE_ONLY_IF_CHANGED_MEMORY_BUFFER);
+ return saveOptions;
+ }
+
+ /**
+ * @generated
+ */
+ public static boolean openDiagram(Resource diagram)
+ throws PartInitException {
+ String path = diagram.getURI().toPlatformString(true);
+ IResource workspaceResource = ResourcesPlugin.getWorkspace().getRoot()
+ .findMember(new Path(path));
+ if (workspaceResource instanceof IFile) {
+ IWorkbenchPage page = PlatformUI.getWorkbench()
+ .getActiveWorkbenchWindow().getActivePage();
+ return null != page.openEditor(new FileEditorInput(
+ (IFile) workspaceResource), ComrelDiagramEditor.ID);
+ }
+ return false;
+ }
+
+ /**
+ * @generated
+ */
+ public static void setCharset(IFile file) {
+ if (file == null) {
+ return;
+ }
+ try {
+ file.setCharset("UTF-8", new NullProgressMonitor()); //$NON-NLS-1$
+ } catch (CoreException e) {
+ ComrelDiagramEditorPlugin.getInstance().logError(
+ "Unable to set charset for file " + file.getFullPath(), e); //$NON-NLS-1$
+ }
+ }
+
+ /**
+ * @generated NOT
+ */
+ public static String getUniqueFileName(IPath containerFullPath,
+ String fileName, String extension) {
+ if (containerFullPath == null) {
+ containerFullPath = new Path(""); //$NON-NLS-1$
+ }
+ if (fileName == null || fileName.trim().length() == 0) {
+ fileName = DEFAULT_FILENAME; //$NON-NLS-1$
+ }
+ IPath filePath = containerFullPath.append(fileName);
+ if (extension != null && !extension.equals(filePath.getFileExtension())) {
+ filePath = filePath.addFileExtension(extension);
+ }
+ extension = filePath.getFileExtension();
+ fileName = filePath.removeFileExtension().lastSegment();
+ int i = 1;
+ while (ResourcesPlugin.getWorkspace().getRoot().exists(filePath)) {
+ i++;
+ filePath = containerFullPath.append(fileName + i);
+ if (extension != null) {
+ filePath = filePath.addFileExtension(extension);
+ }
+ }
+ return filePath.lastSegment();
+ }
+
+ /**
+ * Runs the wizard in a dialog.
+ *
+ * @generated
+ */
+ public static void runWizard(Shell shell, Wizard wizard, String settingsKey) {
+ IDialogSettings pluginDialogSettings = ComrelDiagramEditorPlugin
+ .getInstance().getDialogSettings();
+ IDialogSettings wizardDialogSettings = pluginDialogSettings
+ .getSection(settingsKey);
+ if (wizardDialogSettings == null) {
+ wizardDialogSettings = pluginDialogSettings
+ .addNewSection(settingsKey);
+ }
+ wizard.setDialogSettings(wizardDialogSettings);
+ WizardDialog dialog = new WizardDialog(shell, wizard);
+ dialog.create();
+ dialog.getShell().setSize(Math.max(500, dialog.getShell().getSize().x),
+ 500);
+ dialog.open();
+ }
+
+ /**
+ * This method should be called within a workspace modify operation since it
+ * creates resources.
+ *
+ * @generated NOT
+ */
+ public static Resource createDiagram(URI diagramURI, URI modelURI,
+ IProgressMonitor progressMonitor) {
+ TransactionalEditingDomain editingDomain = GMFEditingDomainFactory.INSTANCE
+ .createEditingDomain();
+ progressMonitor.beginTask(
+ Messages.ComrelDiagramEditorUtil_CreateDiagramProgressTask, 3);
+ final Resource diagramResource = editingDomain.getResourceSet()
+ .createResource(diagramURI);
+ final Resource modelResource = editingDomain.getResourceSet()
+ .createResource(modelURI);
+ final String diagramName = diagramURI.lastSegment();
+ AbstractTransactionalCommand command = new AbstractTransactionalCommand(
+ editingDomain,
+ Messages.ComrelDiagramEditorUtil_CreateDiagramCommandLabel,
+ Collections.EMPTY_LIST) {
+ protected CommandResult doExecuteWithResult(
+ IProgressMonitor monitor, IAdaptable info)
+ throws ExecutionException {
+ CompositeRefactoring model = createInitialModel();
+ attachModelToResource(model, modelResource);
+
+ Diagram diagram = ViewService.createDiagram(model,
+ CompositeRefactoringEditPart.MODEL_ID,
+ ComrelDiagramEditorPlugin.DIAGRAM_PREFERENCES_HINT);
+ if (diagram != null) {
+ diagramResource.getContents().add(diagram);
+ diagram.setName(diagramName);
+ diagram.setElement(model);
+ }
+
+ try {
+ modelResource
+ .save(comrel.diagram.part.ComrelDiagramEditorUtil
+ .getSaveOptions());
+ diagramResource
+ .save(comrel.diagram.part.ComrelDiagramEditorUtil
+ .getSaveOptions());
+ } catch (IOException e) {
+
+ ComrelDiagramEditorPlugin.getInstance().logError(
+ "Unable to store model and diagram resources", e); //$NON-NLS-1$
+ }
+ return CommandResult.newOKCommandResult();
+ }
+ };
+ try {
+ OperationHistoryFactory.getOperationHistory().execute(command,
+ new SubProgressMonitor(progressMonitor, 1), null);
+ } catch (ExecutionException e) {
+ ComrelDiagramEditorPlugin.getInstance().logError(
+ "Unable to create model and diagram", e); //$NON-NLS-1$
+ }
+ setCharset(WorkspaceSynchronizer.getFile(modelResource));
+ setCharset(WorkspaceSynchronizer.getFile(diagramResource));
+ return diagramResource;
+ }
+
+ /**
+ * This method should be called within a workspace modify operation since it
+ * creates resources.
+ *
+ */
+ public static Resource createDiagram(URI diagramURI, URI modelURI,
+ IProgressMonitor progressMonitor, final String customDiagramName,
+ final String namespaceURI, final String connectionVisualization) {
+ TransactionalEditingDomain editingDomain = GMFEditingDomainFactory.INSTANCE
+ .createEditingDomain();
+ progressMonitor.beginTask(
+ Messages.ComrelDiagramEditorUtil_CreateDiagramProgressTask, 3);
+ final Resource diagramResource = editingDomain.getResourceSet()
+ .createResource(diagramURI);
+ final Resource modelResource = editingDomain.getResourceSet()
+ .createResource(modelURI);
+ final String diagramName = diagramURI.lastSegment();
+ AbstractTransactionalCommand command = new AbstractTransactionalCommand(
+ editingDomain,
+ Messages.ComrelDiagramEditorUtil_CreateDiagramCommandLabel,
+ Collections.EMPTY_LIST) {
+ protected CommandResult doExecuteWithResult(
+ IProgressMonitor monitor, IAdaptable info)
+ throws ExecutionException {
+ CompositeRefactoring model = createInitialModel();
+ attachModelToResource(model, modelResource);
+ if (customDiagramName == null) {
+ model.setName("");
+ } else {
+ model.setName(customDiagramName.trim());
+ }
+ model.setNamespaceUri(namespaceURI);
+ model.setMappingVisualization(MappingVisualization
+ .get(connectionVisualization));
+ Diagram diagram = ViewService.createDiagram(model,
+ CompositeRefactoringEditPart.MODEL_ID,
+ ComrelDiagramEditorPlugin.DIAGRAM_PREFERENCES_HINT);
+ if (diagram != null) {
+ diagramResource.getContents().add(diagram);
+ diagram.setName(diagramName);
+ diagram.setElement(model);
+ }
+
+ try {
+ modelResource
+ .save(comrel.diagram.part.ComrelDiagramEditorUtil
+ .getSaveOptions());
+ diagramResource
+ .save(comrel.diagram.part.ComrelDiagramEditorUtil
+ .getSaveOptions());
+ } catch (IOException e) {
+
+ ComrelDiagramEditorPlugin.getInstance().logError(
+ "Unable to store model and diagram resources", e); //$NON-NLS-1$
+ }
+ return CommandResult.newOKCommandResult();
+ }
+ };
+ try {
+ OperationHistoryFactory.getOperationHistory().execute(command,
+ new SubProgressMonitor(progressMonitor, 1), null);
+ } catch (ExecutionException e) {
+ ComrelDiagramEditorPlugin.getInstance().logError(
+ "Unable to create model and diagram", e); //$NON-NLS-1$
+ }
+ setCharset(WorkspaceSynchronizer.getFile(modelResource));
+ setCharset(WorkspaceSynchronizer.getFile(diagramResource));
+ return diagramResource;
+ }
+
+ /**
+ * Create a new instance of domain element associated with canvas.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ private static CompositeRefactoring createInitialModel() {
+ return ComrelFactory.eINSTANCE.createCompositeRefactoring();
+ }
+
+ /**
+ * Store model element in the resource.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ private static void attachModelToResource(CompositeRefactoring model,
+ Resource resource) {
+ resource.getContents().add(model);
+ }
+
+ /**
+ * @generated
+ */
+ public static void selectElementsInDiagram(
+ IDiagramWorkbenchPart diagramPart, List<EditPart> editParts) {
+ diagramPart.getDiagramGraphicalViewer().deselectAll();
+
+ EditPart firstPrimary = null;
+ for (EditPart nextPart : editParts) {
+ diagramPart.getDiagramGraphicalViewer().appendSelection(nextPart);
+ if (firstPrimary == null && nextPart instanceof IPrimaryEditPart) {
+ firstPrimary = nextPart;
+ }
+ }
+
+ if (!editParts.isEmpty()) {
+ diagramPart.getDiagramGraphicalViewer().reveal(
+ firstPrimary != null ? firstPrimary : (EditPart) editParts
+ .get(0));
+ }
+ }
+
+ /**
+ * @generated
+ */
+ private static int findElementsInDiagramByID(DiagramEditPart diagramPart,
+ EObject element, List<EditPart> editPartCollector) {
+ IDiagramGraphicalViewer viewer = (IDiagramGraphicalViewer) diagramPart
+ .getViewer();
+ final int intialNumOfEditParts = editPartCollector.size();
+
+ if (element instanceof View) { // support notation element lookup
+ EditPart editPart = (EditPart) viewer.getEditPartRegistry().get(
+ element);
+ if (editPart != null) {
+ editPartCollector.add(editPart);
+ return 1;
+ }
+ }
+
+ String elementID = EMFCoreUtil.getProxyID(element);
+ @SuppressWarnings("unchecked")
+ List<EditPart> associatedParts = viewer.findEditPartsForElement(
+ elementID, IGraphicalEditPart.class);
+ // perform the possible hierarchy disjoint -> take the top-most parts only
+ for (EditPart nextPart : associatedParts) {
+ EditPart parentPart = nextPart.getParent();
+ while (parentPart != null && !associatedParts.contains(parentPart)) {
+ parentPart = parentPart.getParent();
+ }
+ if (parentPart == null) {
+ editPartCollector.add(nextPart);
+ }
+ }
+
+ if (intialNumOfEditParts == editPartCollector.size()) {
+ if (!associatedParts.isEmpty()) {
+ editPartCollector.add(associatedParts.get(0));
+ } else {
+ if (element.eContainer() != null) {
+ return findElementsInDiagramByID(diagramPart,
+ element.eContainer(), editPartCollector);
+ }
+ }
+ }
+ return editPartCollector.size() - intialNumOfEditParts;
+ }
+
+ /**
+ * @generated
+ */
+ public static View findView(DiagramEditPart diagramEditPart,
+ EObject targetElement, LazyElement2ViewMap lazyElement2ViewMap) {
+ boolean hasStructuralURI = false;
+ if (targetElement.eResource() instanceof XMLResource) {
+ hasStructuralURI = ((XMLResource) targetElement.eResource())
+ .getID(targetElement) == null;
+ }
+
+ View view = null;
+ LinkedList<EditPart> editPartHolder = new LinkedList<EditPart>();
+ if (hasStructuralURI
+ && !lazyElement2ViewMap.getElement2ViewMap().isEmpty()) {
+ view = lazyElement2ViewMap.getElement2ViewMap().get(targetElement);
+ } else if (findElementsInDiagramByID(diagramEditPart, targetElement,
+ editPartHolder) > 0) {
+ EditPart editPart = editPartHolder.get(0);
+ view = editPart.getModel() instanceof View ? (View) editPart
+ .getModel() : null;
+ }
+
+ return (view == null) ? diagramEditPart.getDiagramView() : view;
+ }
+
+ /**
+ * XXX This is quite suspicious code (especially editPartTmpHolder) and likely to be removed soon
+ * @generated
+ */
+ public static class LazyElement2ViewMap {
+ /**
+ * @generated
+ */
+ private Map<EObject, View> element2ViewMap;
+
+ /**
+ * @generated
+ */
+ private View scope;
+
+ /**
+ * @generated
+ */
+ private Set<? extends EObject> elementSet;
+
+ /**
+ * @generated
+ */
+ public LazyElement2ViewMap(View scope, Set<? extends EObject> elements) {
+ this.scope = scope;
+ this.elementSet = elements;
+ }
+
+ /**
+ * @generated
+ */
+ public final Map<EObject, View> getElement2ViewMap() {
+ if (element2ViewMap == null) {
+ element2ViewMap = new HashMap<EObject, View>();
+ // map possible notation elements to itself as these can't be found by view.getElement()
+ for (EObject element : elementSet) {
+ if (element instanceof View) {
+ View view = (View) element;
+ if (view.getDiagram() == scope.getDiagram()) {
+ element2ViewMap.put(element, view); // take only those that part of our diagram
+ }
+ }
+ }
+
+ buildElement2ViewMap(scope, element2ViewMap, elementSet);
+ }
+ return element2ViewMap;
+ }
+
+ /**
+ * @generated
+ */
+ private static boolean buildElement2ViewMap(View parentView,
+ Map<EObject, View> element2ViewMap,
+ Set<? extends EObject> elements) {
+ if (elements.size() == element2ViewMap.size()) {
+ return true;
+ }
+
+ if (parentView.isSetElement()
+ && !element2ViewMap.containsKey(parentView.getElement())
+ && elements.contains(parentView.getElement())) {
+ element2ViewMap.put(parentView.getElement(), parentView);
+ if (elements.size() == element2ViewMap.size()) {
+ return true;
+ }
+ }
+ boolean complete = false;
+ for (Iterator<?> it = parentView.getChildren().iterator(); it
+ .hasNext() && !complete;) {
+ complete = buildElement2ViewMap((View) it.next(),
+ element2ViewMap, elements);
+ }
+ for (Iterator<?> it = parentView.getSourceEdges().iterator(); it
+ .hasNext() && !complete;) {
+ complete = buildElement2ViewMap((View) it.next(),
+ element2ViewMap, elements);
+ }
+ for (Iterator<?> it = parentView.getTargetEdges().iterator(); it
+ .hasNext() && !complete;) {
+ complete = buildElement2ViewMap((View) it.next(),
+ element2ViewMap, elements);
+ }
+ return complete;
+ }
+ } //LazyElement2ViewMap
+
+}
diff --git a/org.eclipse.emf.refactor.comrel.diagram/src/comrel/diagram/part/ComrelDiagramUpdateCommand.java b/org.eclipse.emf.refactor.comrel.diagram/src/comrel/diagram/part/ComrelDiagramUpdateCommand.java
new file mode 100644
index 0000000..e92df50
--- /dev/null
+++ b/org.eclipse.emf.refactor.comrel.diagram/src/comrel/diagram/part/ComrelDiagramUpdateCommand.java
@@ -0,0 +1,88 @@
+/*
+ *
+ */
+package comrel.diagram.part;
+
+import java.util.Iterator;
+import java.util.List;
+
+import org.eclipse.core.commands.ExecutionEvent;
+import org.eclipse.core.commands.ExecutionException;
+import org.eclipse.core.commands.IHandler;
+import org.eclipse.core.commands.IHandlerListener;
+import org.eclipse.emf.ecore.EObject;
+import org.eclipse.gef.EditPart;
+import org.eclipse.gmf.runtime.diagram.ui.editpolicies.CanonicalEditPolicy;
+import org.eclipse.gmf.runtime.notation.View;
+import org.eclipse.jface.viewers.ISelection;
+import org.eclipse.jface.viewers.IStructuredSelection;
+import org.eclipse.ui.PlatformUI;
+
+/**
+ * @generated
+ */
+public class ComrelDiagramUpdateCommand implements IHandler {
+
+ /**
+ * @generated
+ */
+ public void addHandlerListener(IHandlerListener handlerListener) {
+ }
+
+ /**
+ * @generated
+ */
+ public void dispose() {
+ }
+
+ /**
+ * @generated
+ */
+ public Object execute(ExecutionEvent event) throws ExecutionException {
+ ISelection selection = PlatformUI.getWorkbench()
+ .getActiveWorkbenchWindow().getSelectionService()
+ .getSelection();
+ if (selection instanceof IStructuredSelection) {
+ IStructuredSelection structuredSelection = (IStructuredSelection) selection;
+ if (structuredSelection.size() != 1) {
+ return null;
+ }
+ if (structuredSelection.getFirstElement() instanceof EditPart
+ && ((EditPart) structuredSelection.getFirstElement())
+ .getModel() instanceof View) {
+ EObject modelElement = ((View) ((EditPart) structuredSelection
+ .getFirstElement()).getModel()).getElement();
+ List editPolicies = CanonicalEditPolicy
+ .getRegisteredEditPolicies(modelElement);
+ for (Iterator it = editPolicies.iterator(); it.hasNext();) {
+ CanonicalEditPolicy nextEditPolicy = (CanonicalEditPolicy) it
+ .next();
+ nextEditPolicy.refresh();
+ }
+
+ }
+ }
+ return null;
+ }
+
+ /**
+ * @generated
+ */
+ public boolean isEnabled() {
+ return true;
+ }
+
+ /**
+ * @generated
+ */
+ public boolean isHandled() {
+ return true;
+ }
+
+ /**
+ * @generated
+ */
+ public void removeHandlerListener(IHandlerListener handlerListener) {
+ }
+
+}
diff --git a/org.eclipse.emf.refactor.comrel.diagram/src/comrel/diagram/part/ComrelDiagramUpdater.java b/org.eclipse.emf.refactor.comrel.diagram/src/comrel/diagram/part/ComrelDiagramUpdater.java
new file mode 100644
index 0000000..eec11e8
--- /dev/null
+++ b/org.eclipse.emf.refactor.comrel.diagram/src/comrel/diagram/part/ComrelDiagramUpdater.java
@@ -0,0 +1,8850 @@
+/*
+ *
+ */
+package comrel.diagram.part;
+
+import java.util.Collection;
+import java.util.Collections;
+import java.util.Iterator;
+import java.util.LinkedList;
+import java.util.List;
+import java.util.Map;
+
+import org.eclipse.emf.ecore.EObject;
+import org.eclipse.emf.ecore.EStructuralFeature;
+import org.eclipse.emf.ecore.util.EcoreUtil;
+import org.eclipse.gmf.runtime.notation.View;
+
+import comrel.AtomicUnit;
+import comrel.CartesianQueuedUnit;
+import comrel.CompositeRefactoring;
+import comrel.ComrelPackage;
+import comrel.ConditionCheck;
+import comrel.ConditionalUnit;
+import comrel.HelperUnit;
+import comrel.InputPort;
+import comrel.MultiFeatureUnit;
+import comrel.MultiFilterUnit;
+import comrel.MultiInputPort;
+import comrel.MultiOutputPort;
+import comrel.MultiPort;
+import comrel.MultiPortMapping;
+import comrel.MultiSinglePortMapping;
+import comrel.ParallelQueuedUnit;
+import comrel.RefactoringUnit;
+import comrel.SequentialUnit;
+import comrel.SingleFeatureUnit;
+import comrel.SingleFilterUnit;
+import comrel.SingleInputPort;
+import comrel.SingleOutputPort;
+import comrel.SinglePort;
+import comrel.SinglePortMapping;
+import comrel.SingleQueuedUnit;
+import comrel.diagram.edit.parts.*;
+import comrel.diagram.providers.ComrelElementTypes;
+
+/**
+ * @generated
+ */
+public class ComrelDiagramUpdater {
+
+ /**
+ * @generated
+ */
+ public static boolean isShortcutOrphaned(View view) {
+ return !view.isSetElement() || view.getElement() == null
+ || view.getElement().eIsProxy();
+ }
+
+ /**
+ * @generated
+ */
+ public static List<ComrelNodeDescriptor> getSemanticChildren(View view) {
+ switch (ComrelVisualIDRegistry.getVisualID(view)) {
+ case CompositeRefactoringEditPart.VISUAL_ID:
+ return getCompositeRefactoring_1000SemanticChildren(view);
+ case CartesianQueuedUnitEditPart.VISUAL_ID:
+ return getCartesianQueuedUnit_2002SemanticChildren(view);
+ case ParallelQueuedUnitEditPart.VISUAL_ID:
+ return getParallelQueuedUnit_2003SemanticChildren(view);
+ case SingleQueuedUnitEditPart.VISUAL_ID:
+ return getSingleQueuedUnit_2004SemanticChildren(view);
+ case SequentialUnitEditPart.VISUAL_ID:
+ return getSequentialUnit_2005SemanticChildren(view);
+ case ConditionalUnitEditPart.VISUAL_ID:
+ return getConditionalUnit_2006SemanticChildren(view);
+ case AtomicUnitEditPart.VISUAL_ID:
+ return getAtomicUnit_2007SemanticChildren(view);
+ case CartesianQueuedUnit2EditPart.VISUAL_ID:
+ return getCartesianQueuedUnit_3003SemanticChildren(view);
+ case ParallelQueuedUnit2EditPart.VISUAL_ID:
+ return getParallelQueuedUnit_3004SemanticChildren(view);
+ case CartesianQueuedUnit3EditPart.VISUAL_ID:
+ return getCartesianQueuedUnit_3007SemanticChildren(view);
+ case SingleFeatureUnitEditPart.VISUAL_ID:
+ return getSingleFeatureUnit_3008SemanticChildren(view);
+ case MultiFeatureUnitEditPart.VISUAL_ID:
+ return getMultiFeatureUnit_3012SemanticChildren(view);
+ case SingleFilterUnitEditPart.VISUAL_ID:
+ return getSingleFilterUnit_3016SemanticChildren(view);
+ case MultiFilterUnitEditPart.VISUAL_ID:
+ return getMultiFilterUnit_3019SemanticChildren(view);
+ case SingleQueuedUnit2EditPart.VISUAL_ID:
+ return getSingleQueuedUnit_3022SemanticChildren(view);
+ case CartesianQueuedUnit4EditPart.VISUAL_ID:
+ return getCartesianQueuedUnit_3025SemanticChildren(view);
+ case SequentialUnit2EditPart.VISUAL_ID:
+ return getSequentialUnit_3026SemanticChildren(view);
+ case CartesianQueuedUnit5EditPart.VISUAL_ID:
+ return getCartesianQueuedUnit_3029SemanticChildren(view);
+ case ConditionalUnit2EditPart.VISUAL_ID:
+ return getConditionalUnit_3030SemanticChildren(view);
+ case CartesianQueuedUnit6EditPart.VISUAL_ID:
+ return getCartesianQueuedUnit_3033SemanticChildren(view);
+ case AtomicUnit2EditPart.VISUAL_ID:
+ return getAtomicUnit_3034SemanticChildren(view);
+ case ParallelQueuedUnit3EditPart.VISUAL_ID:
+ return getParallelQueuedUnit_3036SemanticChildren(view);
+ case ParallelQueuedUnit4EditPart.VISUAL_ID:
+ return getParallelQueuedUnit_3037SemanticChildren(view);
+ case SingleFeatureUnit2EditPart.VISUAL_ID:
+ return getSingleFeatureUnit_3038SemanticChildren(view);
+ case MultiFeatureUnit2EditPart.VISUAL_ID:
+ return getMultiFeatureUnit_3039SemanticChildren(view);
+ case SingleFilterUnit2EditPart.VISUAL_ID:
+ return getSingleFilterUnit_3040SemanticChildren(view);
+ case MultiFilterUnit2EditPart.VISUAL_ID:
+ return getMultiFilterUnit_3041SemanticChildren(view);
+ case SingleQueuedUnit3EditPart.VISUAL_ID:
+ return getSingleQueuedUnit_3042SemanticChildren(view);
+ case ParallelQueuedUnit5EditPart.VISUAL_ID:
+ return getParallelQueuedUnit_3043SemanticChildren(view);
+ case SequentialUnit3EditPart.VISUAL_ID:
+ return getSequentialUnit_3044SemanticChildren(view);
+ case ParallelQueuedUnit6EditPart.VISUAL_ID:
+ return getParallelQueuedUnit_3045SemanticChildren(view);
+ case ConditionalUnit3EditPart.VISUAL_ID:
+ return getConditionalUnit_3046SemanticChildren(view);
+ case CartesianQueuedUnit7EditPart.VISUAL_ID:
+ return getCartesianQueuedUnit_3047SemanticChildren(view);
+ case ParallelQueuedUnit7EditPart.VISUAL_ID:
+ return getParallelQueuedUnit_3048SemanticChildren(view);
+ case AtomicUnit3EditPart.VISUAL_ID:
+ return getAtomicUnit_3049SemanticChildren(view);
+ case SingleFeatureUnit3EditPart.VISUAL_ID:
+ return getSingleFeatureUnit_3050SemanticChildren(view);
+ case MultiFeatureUnit3EditPart.VISUAL_ID:
+ return getMultiFeatureUnit_3051SemanticChildren(view);
+ case SingleFilterUnit3EditPart.VISUAL_ID:
+ return getSingleFilterUnit_3052SemanticChildren(view);
+ case MultiFilterUnit3EditPart.VISUAL_ID:
+ return getMultiFilterUnit_3053SemanticChildren(view);
+ case SingleQueuedUnit4EditPart.VISUAL_ID:
+ return getSingleQueuedUnit_3054SemanticChildren(view);
+ case SingleFeatureUnit4EditPart.VISUAL_ID:
+ return getSingleFeatureUnit_3055SemanticChildren(view);
+ case MultiFeatureUnit4EditPart.VISUAL_ID:
+ return getMultiFeatureUnit_3056SemanticChildren(view);
+ case SingleFilterUnit4EditPart.VISUAL_ID:
+ return getSingleFilterUnit_3057SemanticChildren(view);
+ case MultiFilterUnit4EditPart.VISUAL_ID:
+ return getMultiFilterUnit_3058SemanticChildren(view);
+ case SingleQueuedUnit5EditPart.VISUAL_ID:
+ return getSingleQueuedUnit_3059SemanticChildren(view);
+ case SequentialUnit4EditPart.VISUAL_ID:
+ return getSequentialUnit_3060SemanticChildren(view);
+ case SingleFeatureUnit5EditPart.VISUAL_ID:
+ return getSingleFeatureUnit_3061SemanticChildren(view);
+ case MultiFeatureUnit5EditPart.VISUAL_ID:
+ return getMultiFeatureUnit_3062SemanticChildren(view);
+ case SingleFilterUnit5EditPart.VISUAL_ID:
+ return getSingleFilterUnit_3063SemanticChildren(view);
+ case MultiFilterUnit5EditPart.VISUAL_ID:
+ return getMultiFilterUnit_3064SemanticChildren(view);
+ case SingleQueuedUnit6EditPart.VISUAL_ID:
+ return getSingleQueuedUnit_3065SemanticChildren(view);
+ case ConditionalUnit4EditPart.VISUAL_ID:
+ return getConditionalUnit_3066SemanticChildren(view);
+ case SingleQueuedUnit7EditPart.VISUAL_ID:
+ return getSingleQueuedUnit_3067SemanticChildren(view);
+ case AtomicUnit4EditPart.VISUAL_ID:
+ return getAtomicUnit_3068SemanticChildren(view);
+ case SequentialUnit5EditPart.VISUAL_ID:
+ return getSequentialUnit_3069SemanticChildren(view);
+ case SequentialUnit6EditPart.VISUAL_ID:
+ return getSequentialUnit_3070SemanticChildren(view);
+ case ConditionalUnit5EditPart.VISUAL_ID:
+ return getConditionalUnit_3071SemanticChildren(view);
+ case ConditionalUnit6EditPart.VISUAL_ID:
+ return getConditionalUnit_3072SemanticChildren(view);
+ case SequentialUnit7EditPart.VISUAL_ID:
+ return getSequentialUnit_3073SemanticChildren(view);
+ case AtomicUnit5EditPart.VISUAL_ID:
+ return getAtomicUnit_3074SemanticChildren(view);
+ case ConditionalUnit7EditPart.VISUAL_ID:
+ return getConditionalUnit_3075SemanticChildren(view);
+ case AtomicUnit6EditPart.VISUAL_ID:
+ return getAtomicUnit_3077SemanticChildren(view);
+ case AtomicUnit7EditPart.VISUAL_ID:
+ return getAtomicUnit_3078SemanticChildren(view);
+ case CartesianQueuedUnitCartesianQueuedUnitHelperUnitsCompartmentEditPart.VISUAL_ID:
+ return getCartesianQueuedUnitCartesianQueuedUnitHelperUnitsCompartment_7001SemanticChildren(view);
+ case CartesianQueuedUnitCartesianQueuedUnitRefactoringUnitCompartmentEditPart.VISUAL_ID:
+ return getCartesianQueuedUnitCartesianQueuedUnitRefactoringUnitCompartment_7002SemanticChildren(view);
+ case CartesianQueuedUnitCartesianQueuedUnitHelperUnitsCompartment2EditPart.VISUAL_ID:
+ return getCartesianQueuedUnitCartesianQueuedUnitHelperUnitsCompartment_7003SemanticChildren(view);
+ case CartesianQueuedUnitCartesianQueuedUnitRefactoringUnitCompartment2EditPart.VISUAL_ID:
+ return getCartesianQueuedUnitCartesianQueuedUnitRefactoringUnitCompartment_7004SemanticChildren(view);
+ case ParallelQueuedUnitParallelQueuedUnitHelperUnitsCompartmentEditPart.VISUAL_ID:
+ return getParallelQueuedUnitParallelQueuedUnitHelperUnitsCompartment_7005SemanticChildren(view);
+ case ParallelQueuedUnitParallelQueuedUnitRefactoringUnitsCompartmentEditPart.VISUAL_ID:
+ return getParallelQueuedUnitParallelQueuedUnitRefactoringUnitsCompartment_7006SemanticChildren(view);
+ case CartesianQueuedUnitCartesianQueuedUnitHelperUnitsCompartment3EditPart.VISUAL_ID:
+ return getCartesianQueuedUnitCartesianQueuedUnitHelperUnitsCompartment_7007SemanticChildren(view);
+ case CartesianQueuedUnitCartesianQueuedUnitRefactoringUnitCompartment3EditPart.VISUAL_ID:
+ return getCartesianQueuedUnitCartesianQueuedUnitRefactoringUnitCompartment_7008SemanticChildren(view);
+ case SingleQueuedUnitSingleQueuedUnitHelperUnitsCompartmentEditPart.VISUAL_ID:
+ return getSingleQueuedUnitSingleQueuedUnitHelperUnitsCompartment_7009SemanticChildren(view);
+ case SingleQueuedUnitSingleQueuedUnitRefactoringUnitCompartmentEditPart.VISUAL_ID:
+ return getSingleQueuedUnitSingleQueuedUnitRefactoringUnitCompartment_7010SemanticChildren(view);
+ case CartesianQueuedUnitCartesianQueuedUnitHelperUnitsCompartment4EditPart.VISUAL_ID:
+ return getCartesianQueuedUnitCartesianQueuedUnitHelperUnitsCompartment_7011SemanticChildren(view);
+ case CartesianQueuedUnitCartesianQueuedUnitRefactoringUnitCompartment4EditPart.VISUAL_ID:
+ return getCartesianQueuedUnitCartesianQueuedUnitRefactoringUnitCompartment_7012SemanticChildren(view);
+ case SequentialUnitSequentialUnitHelperUnitsCompartmentEditPart.VISUAL_ID:
+ return getSequentialUnitSequentialUnitHelperUnitsCompartment_7013SemanticChildren(view);
+ case SequentialUnitSequentialUnitRefactoringUnitsCompartmentEditPart.VISUAL_ID:
+ return getSequentialUnitSequentialUnitRefactoringUnitsCompartment_7014SemanticChildren(view);
+ case CartesianQueuedUnitCartesianQueuedUnitHelperUnitsCompartment5EditPart.VISUAL_ID:
+ return getCartesianQueuedUnitCartesianQueuedUnitHelperUnitsCompartment_7015SemanticChildren(view);
+ case CartesianQueuedUnitCartesianQueuedUnitRefactoringUnitCompartment5EditPart.VISUAL_ID:
+ return getCartesianQueuedUnitCartesianQueuedUnitRefactoringUnitCompartment_7016SemanticChildren(view);
+ case ConditionalUnitConditionalUnitIfCompartmentEditPart.VISUAL_ID:
+ return getConditionalUnitConditionalUnitIfCompartment_7017SemanticChildren(view);
+ case ConditionalUnitConditionalUnitHelperUnitsCompartmentEditPart.VISUAL_ID:
+ return getConditionalUnitConditionalUnitHelperUnitsCompartment_7018SemanticChildren(view);
+ case ConditionalUnitConditionalUnitThenCompartmentEditPart.VISUAL_ID:
+ return getConditionalUnitConditionalUnitThenCompartment_7019SemanticChildren(view);
+ case ConditionalUnitConditionalUnitElseCompartmentEditPart.VISUAL_ID:
+ return getConditionalUnitConditionalUnitElseCompartment_7020SemanticChildren(view);
+ case CartesianQueuedUnitCartesianQueuedUnitHelperUnitsCompartment6EditPart.VISUAL_ID:
+ return getCartesianQueuedUnitCartesianQueuedUnitHelperUnitsCompartment_7021SemanticChildren(view);
+ case CartesianQueuedUnitCartesianQueuedUnitRefactoringUnitCompartment6EditPart.VISUAL_ID:
+ return getCartesianQueuedUnitCartesianQueuedUnitRefactoringUnitCompartment_7022SemanticChildren(view);
+ case ParallelQueuedUnitParallelQueuedUnitHelperUnitsCompartment2EditPart.VISUAL_ID:
+ return getParallelQueuedUnitParallelQueuedUnitHelperUnitsCompartment_7023SemanticChildren(view);
+ case ParallelQueuedUnitParallelQueuedUnitRefactoringUnitsCompartment2EditPart.VISUAL_ID:
+ return getParallelQueuedUnitParallelQueuedUnitRefactoringUnitsCompartment_7024SemanticChildren(view);
+ case ParallelQueuedUnitParallelQueuedUnitHelperUnitsCompartment3EditPart.VISUAL_ID:
+ return getParallelQueuedUnitParallelQueuedUnitHelperUnitsCompartment_7025SemanticChildren(view);
+ case ParallelQueuedUnitParallelQueuedUnitRefactoringUnitsCompartment3EditPart.VISUAL_ID:
+ return getParallelQueuedUnitParallelQueuedUnitRefactoringUnitsCompartment_7026SemanticChildren(view);
+ case SingleQueuedUnitSingleQueuedUnitHelperUnitsCompartment2EditPart.VISUAL_ID:
+ return getSingleQueuedUnitSingleQueuedUnitHelperUnitsCompartment_7027SemanticChildren(view);
+ case SingleQueuedUnitSingleQueuedUnitRefactoringUnitCompartment2EditPart.VISUAL_ID:
+ return getSingleQueuedUnitSingleQueuedUnitRefactoringUnitCompartment_7028SemanticChildren(view);
+ case ParallelQueuedUnitParallelQueuedUnitHelperUnitsCompartment4EditPart.VISUAL_ID:
+ return getParallelQueuedUnitParallelQueuedUnitHelperUnitsCompartment_7029SemanticChildren(view);
+ case ParallelQueuedUnitParallelQueuedUnitRefactoringUnitsCompartment4EditPart.VISUAL_ID:
+ return getParallelQueuedUnitParallelQueuedUnitRefactoringUnitsCompartment_7030SemanticChildren(view);
+ case SequentialUnitSequentialUnitHelperUnitsCompartment2EditPart.VISUAL_ID:
+ return getSequentialUnitSequentialUnitHelperUnitsCompartment_7031SemanticChildren(view);
+ case SequentialUnitSequentialUnitRefactoringUnitsCompartment2EditPart.VISUAL_ID:
+ return getSequentialUnitSequentialUnitRefactoringUnitsCompartment_7032SemanticChildren(view);
+ case ParallelQueuedUnitParallelQueuedUnitHelperUnitsCompartment5EditPart.VISUAL_ID:
+ return getParallelQueuedUnitParallelQueuedUnitHelperUnitsCompartment_7033SemanticChildren(view);
+ case ParallelQueuedUnitParallelQueuedUnitRefactoringUnitsCompartment5EditPart.VISUAL_ID:
+ return getParallelQueuedUnitParallelQueuedUnitRefactoringUnitsCompartment_7034SemanticChildren(view);
+ case ConditionalUnitConditionalUnitIfCompartment2EditPart.VISUAL_ID:
+ return getConditionalUnitConditionalUnitIfCompartment_7035SemanticChildren(view);
+ case ConditionalUnitConditionalUnitHelperUnitsCompartment2EditPart.VISUAL_ID:
+ return getConditionalUnitConditionalUnitHelperUnitsCompartment_7036SemanticChildren(view);
+ case ConditionalUnitConditionalUnitThenCompartment2EditPart.VISUAL_ID:
+ return getConditionalUnitConditionalUnitThenCompartment_7037SemanticChildren(view);
+ case ConditionalUnitConditionalUnitElseCompartment2EditPart.VISUAL_ID:
+ return getConditionalUnitConditionalUnitElseCompartment_7038SemanticChildren(view);
+ case CartesianQueuedUnitCartesianQueuedUnitHelperUnitsCompartment7EditPart.VISUAL_ID:
+ return getCartesianQueuedUnitCartesianQueuedUnitHelperUnitsCompartment_7039SemanticChildren(view);
+ case CartesianQueuedUnitCartesianQueuedUnitRefactoringUnitCompartment7EditPart.VISUAL_ID:
+ return getCartesianQueuedUnitCartesianQueuedUnitRefactoringUnitCompartment_7040SemanticChildren(view);
+ case ParallelQueuedUnitParallelQueuedUnitHelperUnitsCompartment6EditPart.VISUAL_ID:
+ return getParallelQueuedUnitParallelQueuedUnitHelperUnitsCompartment_7041SemanticChildren(view);
+ case ParallelQueuedUnitParallelQueuedUnitRefactoringUnitsCompartment6EditPart.VISUAL_ID:
+ return getParallelQueuedUnitParallelQueuedUnitRefactoringUnitsCompartment_7042SemanticChildren(view);
+ case SingleQueuedUnitSingleQueuedUnitHelperUnitsCompartment3EditPart.VISUAL_ID:
+ return getSingleQueuedUnitSingleQueuedUnitHelperUnitsCompartment_7043SemanticChildren(view);
+ case SingleQueuedUnitSingleQueuedUnitRefactoringUnitCompartment3EditPart.VISUAL_ID:
+ return getSingleQueuedUnitSingleQueuedUnitRefactoringUnitCompartment_7044SemanticChildren(view);
+ case SingleQueuedUnitSingleQueuedUnitHelperUnitsCompartment4EditPart.VISUAL_ID:
+ return getSingleQueuedUnitSingleQueuedUnitHelperUnitsCompartment_7045SemanticChildren(view);
+ case SingleQueuedUnitSingleQueuedUnitRefactoringUnitCompartment4EditPart.VISUAL_ID:
+ return getSingleQueuedUnitSingleQueuedUnitRefactoringUnitCompartment_7046SemanticChildren(view);
+ case SequentialUnitSequentialUnitHelperUnitsCompartment3EditPart.VISUAL_ID:
+ return getSequentialUnitSequentialUnitHelperUnitsCompartment_7047SemanticChildren(view);
+ case SequentialUnitSequentialUnitRefactoringUnitsCompartment3EditPart.VISUAL_ID:
+ return getSequentialUnitSequentialUnitRefactoringUnitsCompartment_7048SemanticChildren(view);
+ case SingleQueuedUnitSingleQueuedUnitHelperUnitsCompartment5EditPart.VISUAL_ID:
+ return getSingleQueuedUnitSingleQueuedUnitHelperUnitsCompartment_7049SemanticChildren(view);
+ case SingleQueuedUnitSingleQueuedUnitRefactoringUnitCompartment5EditPart.VISUAL_ID:
+ return getSingleQueuedUnitSingleQueuedUnitRefactoringUnitCompartment_7050SemanticChildren(view);
+ case ConditionalUnitConditionalUnitIfCompartment3EditPart.VISUAL_ID:
+ return getConditionalUnitConditionalUnitIfCompartment_7051SemanticChildren(view);
+ case ConditionalUnitConditionalUnitHelperUnitsCompartment3EditPart.VISUAL_ID:
+ return getConditionalUnitConditionalUnitHelperUnitsCompartment_7052SemanticChildren(view);
+ case ConditionalUnitConditionalUnitThenCompartment3EditPart.VISUAL_ID:
+ return getConditionalUnitConditionalUnitThenCompartment_7053SemanticChildren(view);
+ case ConditionalUnitConditionalUnitElseCompartment3EditPart.VISUAL_ID:
+ return getConditionalUnitConditionalUnitElseCompartment_7054SemanticChildren(view);
+ case SingleQueuedUnitSingleQueuedUnitHelperUnitsCompartment6EditPart.VISUAL_ID:
+ return getSingleQueuedUnitSingleQueuedUnitHelperUnitsCompartment_7055SemanticChildren(view);
+ case SingleQueuedUnitSingleQueuedUnitRefactoringUnitCompartment6EditPart.VISUAL_ID:
+ return getSingleQueuedUnitSingleQueuedUnitRefactoringUnitCompartment_7056SemanticChildren(view);
+ case SequentialUnitSequentialUnitHelperUnitsCompartment4EditPart.VISUAL_ID:
+ return getSequentialUnitSequentialUnitHelperUnitsCompartment_7057SemanticChildren(view);
+ case SequentialUnitSequentialUnitRefactoringUnitsCompartment4EditPart.VISUAL_ID:
+ return getSequentialUnitSequentialUnitRefactoringUnitsCompartment_7058SemanticChildren(view);
+ case SequentialUnitSequentialUnitHelperUnitsCompartment5EditPart.VISUAL_ID:
+ return getSequentialUnitSequentialUnitHelperUnitsCompartment_7059SemanticChildren(view);
+ case SequentialUnitSequentialUnitRefactoringUnitsCompartment5EditPart.VISUAL_ID:
+ return getSequentialUnitSequentialUnitRefactoringUnitsCompartment_7060SemanticChildren(view);
+ case ConditionalUnitConditionalUnitIfCompartment4EditPart.VISUAL_ID:
+ return getConditionalUnitConditionalUnitIfCompartment_7061SemanticChildren(view);
+ case ConditionalUnitConditionalUnitHelperUnitsCompartment4EditPart.VISUAL_ID:
+ return getConditionalUnitConditionalUnitHelperUnitsCompartment_7062SemanticChildren(view);
+ case ConditionalUnitConditionalUnitThenCompartment4EditPart.VISUAL_ID:
+ return getConditionalUnitConditionalUnitThenCompartment_7063SemanticChildren(view);
+ case ConditionalUnitConditionalUnitElseCompartment4EditPart.VISUAL_ID:
+ return getConditionalUnitConditionalUnitElseCompartment_7064SemanticChildren(view);
+ case ConditionalUnitConditionalUnitIfCompartment5EditPart.VISUAL_ID:
+ return getConditionalUnitConditionalUnitIfCompartment_7065SemanticChildren(view);
+ case ConditionalUnitConditionalUnitHelperUnitsCompartment5EditPart.VISUAL_ID:
+ return getConditionalUnitConditionalUnitHelperUnitsCompartment_7066SemanticChildren(view);
+ case ConditionalUnitConditionalUnitThenCompartment5EditPart.VISUAL_ID:
+ return getConditionalUnitConditionalUnitThenCompartment_7067SemanticChildren(view);
+ case ConditionalUnitConditionalUnitElseCompartment5EditPart.VISUAL_ID:
+ return getConditionalUnitConditionalUnitElseCompartment_7068SemanticChildren(view);
+ case SequentialUnitSequentialUnitHelperUnitsCompartment6EditPart.VISUAL_ID:
+ return getSequentialUnitSequentialUnitHelperUnitsCompartment_7069SemanticChildren(view);
+ case SequentialUnitSequentialUnitRefactoringUnitsCompartment6EditPart.VISUAL_ID:
+ return getSequentialUnitSequentialUnitRefactoringUnitsCompartment_7070SemanticChildren(view);
+ case ConditionalUnitConditionalUnitIfCompartment6EditPart.VISUAL_ID:
+ return getConditionalUnitConditionalUnitIfCompartment_7071SemanticChildren(view);
+ case ConditionalUnitConditionalUnitHelperUnitsCompartment6EditPart.VISUAL_ID:
+ return getConditionalUnitConditionalUnitHelperUnitsCompartment_7072SemanticChildren(view);
+ case ConditionalUnitConditionalUnitThenCompartment6EditPart.VISUAL_ID:
+ return getConditionalUnitConditionalUnitThenCompartment_7073SemanticChildren(view);
+ case ConditionalUnitConditionalUnitElseCompartment6EditPart.VISUAL_ID:
+ return getConditionalUnitConditionalUnitElseCompartment_7074SemanticChildren(view);
+ case ParallelQueuedUnitParallelQueuedUnitHelperUnitsCompartment7EditPart.VISUAL_ID:
+ return getParallelQueuedUnitParallelQueuedUnitHelperUnitsCompartment_7075SemanticChildren(view);
+ case ParallelQueuedUnitParallelQueuedUnitRefactoringUnitsCompartment7EditPart.VISUAL_ID:
+ return getParallelQueuedUnitParallelQueuedUnitRefactoringUnitsCompartment_7076SemanticChildren(view);
+ case SingleQueuedUnitSingleQueuedUnitHelperUnitsCompartment7EditPart.VISUAL_ID:
+ return getSingleQueuedUnitSingleQueuedUnitHelperUnitsCompartment_7077SemanticChildren(view);
+ case SingleQueuedUnitSingleQueuedUnitRefactoringUnitCompartment7EditPart.VISUAL_ID:
+ return getSingleQueuedUnitSingleQueuedUnitRefactoringUnitCompartment_7078SemanticChildren(view);
+ case SequentialUnitSequentialUnitHelperUnitsCompartment7EditPart.VISUAL_ID:
+ return getSequentialUnitSequentialUnitHelperUnitsCompartment_7079SemanticChildren(view);
+ case SequentialUnitSequentialUnitRefactoringUnitsCompartment7EditPart.VISUAL_ID:
+ return getSequentialUnitSequentialUnitRefactoringUnitsCompartment_7080SemanticChildren(view);
+ case ConditionalUnitConditionalUnitIfCompartment7EditPart.VISUAL_ID:
+ return getConditionalUnitConditionalUnitIfCompartment_7081SemanticChildren(view);
+ case ConditionalUnitConditionalUnitHelperUnitsCompartment7EditPart.VISUAL_ID:
+ return getConditionalUnitConditionalUnitHelperUnitsCompartment_7082SemanticChildren(view);
+ case ConditionalUnitConditionalUnitThenCompartment7EditPart.VISUAL_ID:
+ return getConditionalUnitConditionalUnitThenCompartment_7083SemanticChildren(view);
+ case ConditionalUnitConditionalUnitElseCompartment7EditPart.VISUAL_ID:
+ return getConditionalUnitConditionalUnitElseCompartment_7084SemanticChildren(view);
+ }
+ return Collections.emptyList();
+ }
+
+ /**
+ * @generated
+ */
+ public static List<ComrelNodeDescriptor> getCompositeRefactoring_1000SemanticChildren(
+ View view) {
+ if (!view.isSetElement()) {
+ return Collections.emptyList();
+ }
+ CompositeRefactoring modelElement = (CompositeRefactoring) view
+ .getElement();
+ LinkedList<ComrelNodeDescriptor> result = new LinkedList<ComrelNodeDescriptor>();
+ for (Iterator<?> it = modelElement.getInputPorts().iterator(); it
+ .hasNext();) {
+ SingleInputPort childElement = (SingleInputPort) it.next();
+ int visualID = ComrelVisualIDRegistry.getNodeVisualID(view,
+ childElement);
+ if (visualID == SingleInputPortEditPart.VISUAL_ID) {
+ result.add(new ComrelNodeDescriptor(childElement, visualID));
+ continue;
+ }
+ }
+ {
+ RefactoringUnit childElement = modelElement
+ .getMainRefactoringUnit();
+ int visualID = ComrelVisualIDRegistry.getNodeVisualID(view,
+ childElement);
+ if (visualID == CartesianQueuedUnitEditPart.VISUAL_ID) {
+ result.add(new ComrelNodeDescriptor(childElement, visualID));
+ }
+ if (visualID == ParallelQueuedUnitEditPart.VISUAL_ID) {
+ result.add(new ComrelNodeDescriptor(childElement, visualID));
+ }
+ if (visualID == SingleQueuedUnitEditPart.VISUAL_ID) {
+ result.add(new ComrelNodeDescriptor(childElement, visualID));
+ }
+ if (visualID == SequentialUnitEditPart.VISUAL_ID) {
+ result.add(new ComrelNodeDescriptor(childElement, visualID));
+ }
+ if (visualID == ConditionalUnitEditPart.VISUAL_ID) {
+ result.add(new ComrelNodeDescriptor(childElement, visualID));
+ }
+ if (visualID == AtomicUnitEditPart.VISUAL_ID) {
+ result.add(new ComrelNodeDescriptor(childElement, visualID));
+ }
+ }
+ return result;
+ }
+
+ /**
+ * @generated
+ */
+ public static List<ComrelNodeDescriptor> getCartesianQueuedUnit_2002SemanticChildren(
+ View view) {
+ if (!view.isSetElement()) {
+ return Collections.emptyList();
+ }
+ CartesianQueuedUnit modelElement = (CartesianQueuedUnit) view
+ .getElement();
+ LinkedList<ComrelNodeDescriptor> result = new LinkedList<ComrelNodeDescriptor>();
+ for (Iterator<?> it = modelElement.getSingleInputPorts().iterator(); it
+ .hasNext();) {
+ SingleInputPort childElement = (SingleInputPort) it.next();
+ int visualID = ComrelVisualIDRegistry.getNodeVisualID(view,
+ childElement);
+ if (visualID == SingleInputPort2EditPart.VISUAL_ID) {
+ result.add(new ComrelNodeDescriptor(childElement, visualID));
+ continue;
+ }
+ }
+ for (Iterator<?> it = modelElement.getMultiInputPorts().iterator(); it
+ .hasNext();) {
+ MultiInputPort childElement = (MultiInputPort) it.next();
+ int visualID = ComrelVisualIDRegistry.getNodeVisualID(view,
+ childElement);
+ if (visualID == MultiInputPortEditPart.VISUAL_ID) {
+ result.add(new ComrelNodeDescriptor(childElement, visualID));
+ continue;
+ }
+ }
+ return result;
+ }
+
+ /**
+ * @generated
+ */
+ public static List<ComrelNodeDescriptor> getParallelQueuedUnit_2003SemanticChildren(
+ View view) {
+ if (!view.isSetElement()) {
+ return Collections.emptyList();
+ }
+ ParallelQueuedUnit modelElement = (ParallelQueuedUnit) view
+ .getElement();
+ LinkedList<ComrelNodeDescriptor> result = new LinkedList<ComrelNodeDescriptor>();
+ for (Iterator<?> it = modelElement.getSingleInputPorts().iterator(); it
+ .hasNext();) {
+ SingleInputPort childElement = (SingleInputPort) it.next();
+ int visualID = ComrelVisualIDRegistry.getNodeVisualID(view,
+ childElement);
+ if (visualID == SingleInputPort3EditPart.VISUAL_ID) {
+ result.add(new ComrelNodeDescriptor(childElement, visualID));
+ continue;
+ }
+ }
+ for (Iterator<?> it = modelElement.getMultiInputPorts().iterator(); it
+ .hasNext();) {
+ MultiInputPort childElement = (MultiInputPort) it.next();
+ int visualID = ComrelVisualIDRegistry.getNodeVisualID(view,
+ childElement);
+ if (visualID == MultiInputPort2EditPart.VISUAL_ID) {
+ result.add(new ComrelNodeDescriptor(childElement, visualID));
+ continue;
+ }
+ }
+ return result;
+ }
+
+ /**
+ * @generated
+ */
+ public static List<ComrelNodeDescriptor> getSingleQueuedUnit_2004SemanticChildren(
+ View view) {
+ if (!view.isSetElement()) {
+ return Collections.emptyList();
+ }
+ SingleQueuedUnit modelElement = (SingleQueuedUnit) view.getElement();
+ LinkedList<ComrelNodeDescriptor> result = new LinkedList<ComrelNodeDescriptor>();
+ for (Iterator<?> it = modelElement.getSingleInputPorts().iterator(); it
+ .hasNext();) {
+ SingleInputPort childElement = (SingleInputPort) it.next();
+ int visualID = ComrelVisualIDRegistry.getNodeVisualID(view,
+ childElement);
+ if (visualID == SingleInputPort6EditPart.VISUAL_ID) {
+ result.add(new ComrelNodeDescriptor(childElement, visualID));
+ continue;
+ }
+ }
+ {
+ MultiInputPort childElement = modelElement.getMultiInputPort();
+ int visualID = ComrelVisualIDRegistry.getNodeVisualID(view,
+ childElement);
+ if (visualID == MultiInputPort7EditPart.VISUAL_ID) {
+ result.add(new ComrelNodeDescriptor(childElement, visualID));
+ }
+ }
+ return result;
+ }
+
+ /**
+ * @generated
+ */
+ public static List<ComrelNodeDescriptor> getSequentialUnit_2005SemanticChildren(
+ View view) {
+ if (!view.isSetElement()) {
+ return Collections.emptyList();
+ }
+ SequentialUnit modelElement = (SequentialUnit) view.getElement();
+ LinkedList<ComrelNodeDescriptor> result = new LinkedList<ComrelNodeDescriptor>();
+ for (Iterator<?> it = modelElement.getInputPorts().iterator(); it
+ .hasNext();) {
+ InputPort childElement = (InputPort) it.next();
+ int visualID = ComrelVisualIDRegistry.getNodeVisualID(view,
+ childElement);
+ if (visualID == SingleInputPort7EditPart.VISUAL_ID) {
+ result.add(new ComrelNodeDescriptor(childElement, visualID));
+ continue;
+ }
+ if (visualID == MultiInputPort8EditPart.VISUAL_ID) {
+ result.add(new ComrelNodeDescriptor(childElement, visualID));
+ continue;
+ }
+ }
+ return result;
+ }
+
+ /**
+ * @generated
+ */
+ public static List<ComrelNodeDescriptor> getConditionalUnit_2006SemanticChildren(
+ View view) {
+ if (!view.isSetElement()) {
+ return Collections.emptyList();
+ }
+ ConditionalUnit modelElement = (ConditionalUnit) view.getElement();
+ LinkedList<ComrelNodeDescriptor> result = new LinkedList<ComrelNodeDescriptor>();
+ for (Iterator<?> it = modelElement.getInputPorts().iterator(); it
+ .hasNext();) {
+ InputPort childElement = (InputPort) it.next();
+ int visualID = ComrelVisualIDRegistry.getNodeVisualID(view,
+ childElement);
+ if (visualID == SingleInputPort8EditPart.VISUAL_ID) {
+ result.add(new ComrelNodeDescriptor(childElement, visualID));
+ continue;
+ }
+ if (visualID == MultiInputPort9EditPart.VISUAL_ID) {
+ result.add(new ComrelNodeDescriptor(childElement, visualID));
+ continue;
+ }
+ }
+ return result;
+ }
+
+ /**
+ * @generated
+ */
+ public static List<ComrelNodeDescriptor> getAtomicUnit_2007SemanticChildren(
+ View view) {
+ if (!view.isSetElement()) {
+ return Collections.emptyList();
+ }
+ AtomicUnit modelElement = (AtomicUnit) view.getElement();
+ LinkedList<ComrelNodeDescriptor> result = new LinkedList<ComrelNodeDescriptor>();
+ for (Iterator<?> it = modelElement.getInputPorts().iterator(); it
+ .hasNext();) {
+ SingleInputPort childElement = (SingleInputPort) it.next();
+ int visualID = ComrelVisualIDRegistry.getNodeVisualID(view,
+ childElement);
+ if (visualID == SingleInputPort9EditPart.VISUAL_ID) {
+ result.add(new ComrelNodeDescriptor(childElement, visualID));
+ continue;
+ }
+ }
+ return result;
+ }
+
+ /**
+ * @generated
+ */
+ public static List<ComrelNodeDescriptor> getCartesianQueuedUnit_3003SemanticChildren(
+ View view) {
+ if (!view.isSetElement()) {
+ return Collections.emptyList();
+ }
+ CartesianQueuedUnit modelElement = (CartesianQueuedUnit) view
+ .getElement();
+ LinkedList<ComrelNodeDescriptor> result = new LinkedList<ComrelNodeDescriptor>();
+ for (Iterator<?> it = modelElement.getSingleInputPorts().iterator(); it
+ .hasNext();) {
+ SingleInputPort childElement = (SingleInputPort) it.next();
+ int visualID = ComrelVisualIDRegistry.getNodeVisualID(view,
+ childElement);
+ if (visualID == SingleInputPort2EditPart.VISUAL_ID) {
+ result.add(new ComrelNodeDescriptor(childElement, visualID));
+ continue;
+ }
+ }
+ for (Iterator<?> it = modelElement.getMultiInputPorts().iterator(); it
+ .hasNext();) {
+ MultiInputPort childElement = (MultiInputPort) it.next();
+ int visualID = ComrelVisualIDRegistry.getNodeVisualID(view,
+ childElement);
+ if (visualID == MultiInputPortEditPart.VISUAL_ID) {
+ result.add(new ComrelNodeDescriptor(childElement, visualID));
+ continue;
+ }
+ }
+ return result;
+ }
+
+ /**
+ * @generated
+ */
+ public static List<ComrelNodeDescriptor> getParallelQueuedUnit_3004SemanticChildren(
+ View view) {
+ if (!view.isSetElement()) {
+ return Collections.emptyList();
+ }
+ ParallelQueuedUnit modelElement = (ParallelQueuedUnit) view
+ .getElement();
+ LinkedList<ComrelNodeDescriptor> result = new LinkedList<ComrelNodeDescriptor>();
+ for (Iterator<?> it = modelElement.getSingleInputPorts().iterator(); it
+ .hasNext();) {
+ SingleInputPort childElement = (SingleInputPort) it.next();
+ int visualID = ComrelVisualIDRegistry.getNodeVisualID(view,
+ childElement);
+ if (visualID == SingleInputPort3EditPart.VISUAL_ID) {
+ result.add(new ComrelNodeDescriptor(childElement, visualID));
+ continue;
+ }
+ }
+ for (Iterator<?> it = modelElement.getMultiInputPorts().iterator(); it
+ .hasNext();) {
+ MultiInputPort childElement = (MultiInputPort) it.next();
+ int visualID = ComrelVisualIDRegistry.getNodeVisualID(view,
+ childElement);
+ if (visualID == MultiInputPort2EditPart.VISUAL_ID) {
+ result.add(new ComrelNodeDescriptor(childElement, visualID));
+ continue;
+ }
+ }
+ return result;
+ }
+
+ /**
+ * @generated
+ */
+ public static List<ComrelNodeDescriptor> getCartesianQueuedUnit_3007SemanticChildren(
+ View view) {
+ if (!view.isSetElement()) {
+ return Collections.emptyList();
+ }
+ CartesianQueuedUnit modelElement = (CartesianQueuedUnit) view
+ .getElement();
+ LinkedList<ComrelNodeDescriptor> result = new LinkedList<ComrelNodeDescriptor>();
+ for (Iterator<?> it = modelElement.getSingleInputPorts().iterator(); it
+ .hasNext();) {
+ SingleInputPort childElement = (SingleInputPort) it.next();
+ int visualID = ComrelVisualIDRegistry.getNodeVisualID(view,
+ childElement);
+ if (visualID == SingleInputPort2EditPart.VISUAL_ID) {
+ result.add(new ComrelNodeDescriptor(childElement, visualID));
+ continue;
+ }
+ }
+ for (Iterator<?> it = modelElement.getMultiInputPorts().iterator(); it
+ .hasNext();) {
+ MultiInputPort childElement = (MultiInputPort) it.next();
+ int visualID = ComrelVisualIDRegistry.getNodeVisualID(view,
+ childElement);
+ if (visualID == MultiInputPortEditPart.VISUAL_ID) {
+ result.add(new ComrelNodeDescriptor(childElement, visualID));
+ continue;
+ }
+ }
+ return result;
+ }
+
+ /**
+ * @generated
+ */
+ public static List<ComrelNodeDescriptor> getSingleFeatureUnit_3008SemanticChildren(
+ View view) {
+ if (!view.isSetElement()) {
+ return Collections.emptyList();
+ }
+ SingleFeatureUnit modelElement = (SingleFeatureUnit) view.getElement();
+ LinkedList<ComrelNodeDescriptor> result = new LinkedList<ComrelNodeDescriptor>();
+ {
+ SingleInputPort childElement = modelElement.getInputPort();
+ int visualID = ComrelVisualIDRegistry.getNodeVisualID(view,
+ childElement);
+ if (visualID == SingleInputPort4EditPart.VISUAL_ID) {
+ result.add(new ComrelNodeDescriptor(childElement, visualID));
+ }
+ }
+ for (Iterator<?> it = modelElement.getSecondaryInputPorts().iterator(); it
+ .hasNext();) {
+ MultiInputPort childElement = (MultiInputPort) it.next();
+ int visualID = ComrelVisualIDRegistry.getNodeVisualID(view,
+ childElement);
+ if (visualID == MultiInputPort3EditPart.VISUAL_ID) {
+ result.add(new ComrelNodeDescriptor(childElement, visualID));
+ continue;
+ }
+ }
+ {
+ SingleOutputPort childElement = modelElement.getOutputPort();
+ int visualID = ComrelVisualIDRegistry.getNodeVisualID(view,
+ childElement);
+ if (visualID == SingleOutputPortEditPart.VISUAL_ID) {
+ result.add(new ComrelNodeDescriptor(childElement, visualID));
+ }
+ }
+ return result;
+ }
+
+ /**
+ * @generated
+ */
+ public static List<ComrelNodeDescriptor> getMultiFeatureUnit_3012SemanticChildren(
+ View view) {
+ if (!view.isSetElement()) {
+ return Collections.emptyList();
+ }
+ MultiFeatureUnit modelElement = (MultiFeatureUnit) view.getElement();
+ LinkedList<ComrelNodeDescriptor> result = new LinkedList<ComrelNodeDescriptor>();
+ {
+ SingleInputPort childElement = modelElement.getInputPort();
+ int visualID = ComrelVisualIDRegistry.getNodeVisualID(view,
+ childElement);
+ if (visualID == SingleInputPort5EditPart.VISUAL_ID) {
+ result.add(new ComrelNodeDescriptor(childElement, visualID));
+ }
+ }
+ for (Iterator<?> it = modelElement.getSecondaryInputPorts().iterator(); it
+ .hasNext();) {
+ MultiInputPort childElement = (MultiInputPort) it.next();
+ int visualID = ComrelVisualIDRegistry.getNodeVisualID(view,
+ childElement);
+ if (visualID == MultiInputPort4EditPart.VISUAL_ID) {
+ result.add(new ComrelNodeDescriptor(childElement, visualID));
+ continue;
+ }
+ }
+ {
+ MultiOutputPort childElement = modelElement.getOutputPort();
+ int visualID = ComrelVisualIDRegistry.getNodeVisualID(view,
+ childElement);
+ if (visualID == MultiOutputPortEditPart.VISUAL_ID) {
+ result.add(new ComrelNodeDescriptor(childElement, visualID));
+ }
+ }
+ return result;
+ }
+
+ /**
+ * @generated
+ */
+ public static List<ComrelNodeDescriptor> getSingleFilterUnit_3016SemanticChildren(
+ View view) {
+ if (!view.isSetElement()) {
+ return Collections.emptyList();
+ }
+ SingleFilterUnit modelElement = (SingleFilterUnit) view.getElement();
+ LinkedList<ComrelNodeDescriptor> result = new LinkedList<ComrelNodeDescriptor>();
+ {
+ MultiInputPort childElement = modelElement.getInputPort();
+ int visualID = ComrelVisualIDRegistry.getNodeVisualID(view,
+ childElement);
+ if (visualID == MultiInputPort5EditPart.VISUAL_ID) {
+ result.add(new ComrelNodeDescriptor(childElement, visualID));
+ }
+ }
+ {
+ SingleOutputPort childElement = modelElement.getOutputPort();
+ int visualID = ComrelVisualIDRegistry.getNodeVisualID(view,
+ childElement);
+ if (visualID == SingleOutputPort2EditPart.VISUAL_ID) {
+ result.add(new ComrelNodeDescriptor(childElement, visualID));
+ }
+ }
+ return result;
+ }
+
+ /**
+ * @generated
+ */
+ public static List<ComrelNodeDescriptor> getMultiFilterUnit_3019SemanticChildren(
+ View view) {
+ if (!view.isSetElement()) {
+ return Collections.emptyList();
+ }
+ MultiFilterUnit modelElement = (MultiFilterUnit) view.getElement();
+ LinkedList<ComrelNodeDescriptor> result = new LinkedList<ComrelNodeDescriptor>();
+ {
+ MultiInputPort childElement = modelElement.getInputPort();
+ int visualID = ComrelVisualIDRegistry.getNodeVisualID(view,
+ childElement);
+ if (visualID == MultiInputPort6EditPart.VISUAL_ID) {
+ result.add(new ComrelNodeDescriptor(childElement, visualID));
+ }
+ }
+ {
+ MultiOutputPort childElement = modelElement.getOutputPort();
+ int visualID = ComrelVisualIDRegistry.getNodeVisualID(view,
+ childElement);
+ if (visualID == MultiOutputPort2EditPart.VISUAL_ID) {
+ result.add(new ComrelNodeDescriptor(childElement, visualID));
+ }
+ }
+ return result;
+ }
+
+ /**
+ * @generated
+ */
+ public static List<ComrelNodeDescriptor> getSingleQueuedUnit_3022SemanticChildren(
+ View view) {
+ if (!view.isSetElement()) {
+ return Collections.emptyList();
+ }
+ SingleQueuedUnit modelElement = (SingleQueuedUnit) view.getElement();
+ LinkedList<ComrelNodeDescriptor> result = new LinkedList<ComrelNodeDescriptor>();
+ for (Iterator<?> it = modelElement.getSingleInputPorts().iterator(); it
+ .hasNext();) {
+ SingleInputPort childElement = (SingleInputPort) it.next();
+ int visualID = ComrelVisualIDRegistry.getNodeVisualID(view,
+ childElement);
+ if (visualID == SingleInputPort6EditPart.VISUAL_ID) {
+ result.add(new ComrelNodeDescriptor(childElement, visualID));
+ continue;
+ }
+ }
+ {
+ MultiInputPort childElement = modelElement.getMultiInputPort();
+ int visualID = ComrelVisualIDRegistry.getNodeVisualID(view,
+ childElement);
+ if (visualID == MultiInputPort7EditPart.VISUAL_ID) {
+ result.add(new ComrelNodeDescriptor(childElement, visualID));
+ }
+ }
+ return result;
+ }
+
+ /**
+ * @generated
+ */
+ public static List<ComrelNodeDescriptor> getCartesianQueuedUnit_3025SemanticChildren(
+ View view) {
+ if (!view.isSetElement()) {
+ return Collections.emptyList();
+ }
+ CartesianQueuedUnit modelElement = (CartesianQueuedUnit) view
+ .getElement();
+ LinkedList<ComrelNodeDescriptor> result = new LinkedList<ComrelNodeDescriptor>();
+ for (Iterator<?> it = modelElement.getSingleInputPorts().iterator(); it
+ .hasNext();) {
+ SingleInputPort childElement = (SingleInputPort) it.next();
+ int visualID = ComrelVisualIDRegistry.getNodeVisualID(view,
+ childElement);
+ if (visualID == SingleInputPort2EditPart.VISUAL_ID) {
+ result.add(new ComrelNodeDescriptor(childElement, visualID));
+ continue;
+ }
+ }
+ for (Iterator<?> it = modelElement.getMultiInputPorts().iterator(); it
+ .hasNext();) {
+ MultiInputPort childElement = (MultiInputPort) it.next();
+ int visualID = ComrelVisualIDRegistry.getNodeVisualID(view,
+ childElement);
+ if (visualID == MultiInputPortEditPart.VISUAL_ID) {
+ result.add(new ComrelNodeDescriptor(childElement, visualID));
+ continue;
+ }
+ }
+ return result;
+ }
+
+ /**
+ * @generated
+ */
+ public static List<ComrelNodeDescriptor> getSequentialUnit_3026SemanticChildren(
+ View view) {
+ if (!view.isSetElement()) {
+ return Collections.emptyList();
+ }
+ SequentialUnit modelElement = (SequentialUnit) view.getElement();
+ LinkedList<ComrelNodeDescriptor> result = new LinkedList<ComrelNodeDescriptor>();
+ for (Iterator<?> it = modelElement.getInputPorts().iterator(); it
+ .hasNext();) {
+ InputPort childElement = (InputPort) it.next();
+ int visualID = ComrelVisualIDRegistry.getNodeVisualID(view,
+ childElement);
+ if (visualID == SingleInputPort7EditPart.VISUAL_ID) {
+ result.add(new ComrelNodeDescriptor(childElement, visualID));
+ continue;
+ }
+ if (visualID == MultiInputPort8EditPart.VISUAL_ID) {
+ result.add(new ComrelNodeDescriptor(childElement, visualID));
+ continue;
+ }
+ }
+ return result;
+ }
+
+ /**
+ * @generated
+ */
+ public static List<ComrelNodeDescriptor> getCartesianQueuedUnit_3029SemanticChildren(
+ View view) {
+ if (!view.isSetElement()) {
+ return Collections.emptyList();
+ }
+ CartesianQueuedUnit modelElement = (CartesianQueuedUnit) view
+ .getElement();
+ LinkedList<ComrelNodeDescriptor> result = new LinkedList<ComrelNodeDescriptor>();
+ for (Iterator<?> it = modelElement.getSingleInputPorts().iterator(); it
+ .hasNext();) {
+ SingleInputPort childElement = (SingleInputPort) it.next();
+ int visualID = ComrelVisualIDRegistry.getNodeVisualID(view,
+ childElement);
+ if (visualID == SingleInputPort2EditPart.VISUAL_ID) {
+ result.add(new ComrelNodeDescriptor(childElement, visualID));
+ continue;
+ }
+ }
+ for (Iterator<?> it = modelElement.getMultiInputPorts().iterator(); it
+ .hasNext();) {
+ MultiInputPort childElement = (MultiInputPort) it.next();
+ int visualID = ComrelVisualIDRegistry.getNodeVisualID(view,
+ childElement);
+ if (visualID == MultiInputPortEditPart.VISUAL_ID) {
+ result.add(new ComrelNodeDescriptor(childElement, visualID));
+ continue;
+ }
+ }
+ return result;
+ }
+
+ /**
+ * @generated
+ */
+ public static List<ComrelNodeDescriptor> getConditionalUnit_3030SemanticChildren(
+ View view) {
+ if (!view.isSetElement()) {
+ return Collections.emptyList();
+ }
+ ConditionalUnit modelElement = (ConditionalUnit) view.getElement();
+ LinkedList<ComrelNodeDescriptor> result = new LinkedList<ComrelNodeDescriptor>();
+ for (Iterator<?> it = modelElement.getInputPorts().iterator(); it
+ .hasNext();) {
+ InputPort childElement = (InputPort) it.next();
+ int visualID = ComrelVisualIDRegistry.getNodeVisualID(view,
+ childElement);
+ if (visualID == SingleInputPort8EditPart.VISUAL_ID) {
+ result.add(new ComrelNodeDescriptor(childElement, visualID));
+ continue;
+ }
+ if (visualID == MultiInputPort9EditPart.VISUAL_ID) {
+ result.add(new ComrelNodeDescriptor(childElement, visualID));
+ continue;
+ }
+ }
+ return result;
+ }
+
+ /**
+ * @generated
+ */
+ public static List<ComrelNodeDescriptor> getCartesianQueuedUnit_3033SemanticChildren(
+ View view) {
+ if (!view.isSetElement()) {
+ return Collections.emptyList();
+ }
+ CartesianQueuedUnit modelElement = (CartesianQueuedUnit) view
+ .getElement();
+ LinkedList<ComrelNodeDescriptor> result = new LinkedList<ComrelNodeDescriptor>();
+ for (Iterator<?> it = modelElement.getSingleInputPorts().iterator(); it
+ .hasNext();) {
+ SingleInputPort childElement = (SingleInputPort) it.next();
+ int visualID = ComrelVisualIDRegistry.getNodeVisualID(view,
+ childElement);
+ if (visualID == SingleInputPort2EditPart.VISUAL_ID) {
+ result.add(new ComrelNodeDescriptor(childElement, visualID));
+ continue;
+ }
+ }
+ for (Iterator<?> it = modelElement.getMultiInputPorts().iterator(); it
+ .hasNext();) {
+ MultiInputPort childElement = (MultiInputPort) it.next();
+ int visualID = ComrelVisualIDRegistry.getNodeVisualID(view,
+ childElement);
+ if (visualID == MultiInputPortEditPart.VISUAL_ID) {
+ result.add(new ComrelNodeDescriptor(childElement, visualID));
+ continue;
+ }
+ }
+ return result;
+ }
+
+ /**
+ * @generated
+ */
+ public static List<ComrelNodeDescriptor> getAtomicUnit_3034SemanticChildren(
+ View view) {
+ if (!view.isSetElement()) {
+ return Collections.emptyList();
+ }
+ AtomicUnit modelElement = (AtomicUnit) view.getElement();
+ LinkedList<ComrelNodeDescriptor> result = new LinkedList<ComrelNodeDescriptor>();
+ for (Iterator<?> it = modelElement.getInputPorts().iterator(); it
+ .hasNext();) {
+ SingleInputPort childElement = (SingleInputPort) it.next();
+ int visualID = ComrelVisualIDRegistry.getNodeVisualID(view,
+ childElement);
+ if (visualID == SingleInputPort9EditPart.VISUAL_ID) {
+ result.add(new ComrelNodeDescriptor(childElement, visualID));
+ continue;
+ }
+ }
+ return result;
+ }
+
+ /**
+ * @generated
+ */
+ public static List<ComrelNodeDescriptor> getParallelQueuedUnit_3036SemanticChildren(
+ View view) {
+ if (!view.isSetElement()) {
+ return Collections.emptyList();
+ }
+ ParallelQueuedUnit modelElement = (ParallelQueuedUnit) view
+ .getElement();
+ LinkedList<ComrelNodeDescriptor> result = new LinkedList<ComrelNodeDescriptor>();
+ for (Iterator<?> it = modelElement.getSingleInputPorts().iterator(); it
+ .hasNext();) {
+ SingleInputPort childElement = (SingleInputPort) it.next();
+ int visualID = ComrelVisualIDRegistry.getNodeVisualID(view,
+ childElement);
+ if (visualID == SingleInputPort3EditPart.VISUAL_ID) {
+ result.add(new ComrelNodeDescriptor(childElement, visualID));
+ continue;
+ }
+ }
+ for (Iterator<?> it = modelElement.getMultiInputPorts().iterator(); it
+ .hasNext();) {
+ MultiInputPort childElement = (MultiInputPort) it.next();
+ int visualID = ComrelVisualIDRegistry.getNodeVisualID(view,
+ childElement);
+ if (visualID == MultiInputPort2EditPart.VISUAL_ID) {
+ result.add(new ComrelNodeDescriptor(childElement, visualID));
+ continue;
+ }
+ }
+ return result;
+ }
+
+ /**
+ * @generated
+ */
+ public static List<ComrelNodeDescriptor> getParallelQueuedUnit_3037SemanticChildren(
+ View view) {
+ if (!view.isSetElement()) {
+ return Collections.emptyList();
+ }
+ ParallelQueuedUnit modelElement = (ParallelQueuedUnit) view
+ .getElement();
+ LinkedList<ComrelNodeDescriptor> result = new LinkedList<ComrelNodeDescriptor>();
+ for (Iterator<?> it = modelElement.getSingleInputPorts().iterator(); it
+ .hasNext();) {
+ SingleInputPort childElement = (SingleInputPort) it.next();
+ int visualID = ComrelVisualIDRegistry.getNodeVisualID(view,
+ childElement);
+ if (visualID == SingleInputPort3EditPart.VISUAL_ID) {
+ result.add(new ComrelNodeDescriptor(childElement, visualID));
+ continue;
+ }
+ }
+ for (Iterator<?> it = modelElement.getMultiInputPorts().iterator(); it
+ .hasNext();) {
+ MultiInputPort childElement = (MultiInputPort) it.next();
+ int visualID = ComrelVisualIDRegistry.getNodeVisualID(view,
+ childElement);
+ if (visualID == MultiInputPort2EditPart.VISUAL_ID) {
+ result.add(new ComrelNodeDescriptor(childElement, visualID));
+ continue;
+ }
+ }
+ return result;
+ }
+
+ /**
+ * @generated
+ */
+ public static List<ComrelNodeDescriptor> getSingleFeatureUnit_3038SemanticChildren(
+ View view) {
+ if (!view.isSetElement()) {
+ return Collections.emptyList();
+ }
+ SingleFeatureUnit modelElement = (SingleFeatureUnit) view.getElement();
+ LinkedList<ComrelNodeDescriptor> result = new LinkedList<ComrelNodeDescriptor>();
+ {
+ SingleInputPort childElement = modelElement.getInputPort();
+ int visualID = ComrelVisualIDRegistry.getNodeVisualID(view,
+ childElement);
+ if (visualID == SingleInputPort4EditPart.VISUAL_ID) {
+ result.add(new ComrelNodeDescriptor(childElement, visualID));
+ }
+ }
+ for (Iterator<?> it = modelElement.getSecondaryInputPorts().iterator(); it
+ .hasNext();) {
+ MultiInputPort childElement = (MultiInputPort) it.next();
+ int visualID = ComrelVisualIDRegistry.getNodeVisualID(view,
+ childElement);
+ if (visualID == MultiInputPort3EditPart.VISUAL_ID) {
+ result.add(new ComrelNodeDescriptor(childElement, visualID));
+ continue;
+ }
+ }
+ {
+ SingleOutputPort childElement = modelElement.getOutputPort();
+ int visualID = ComrelVisualIDRegistry.getNodeVisualID(view,
+ childElement);
+ if (visualID == SingleOutputPortEditPart.VISUAL_ID) {
+ result.add(new ComrelNodeDescriptor(childElement, visualID));
+ }
+ }
+ return result;
+ }
+
+ /**
+ * @generated
+ */
+ public static List<ComrelNodeDescriptor> getMultiFeatureUnit_3039SemanticChildren(
+ View view) {
+ if (!view.isSetElement()) {
+ return Collections.emptyList();
+ }
+ MultiFeatureUnit modelElement = (MultiFeatureUnit) view.getElement();
+ LinkedList<ComrelNodeDescriptor> result = new LinkedList<ComrelNodeDescriptor>();
+ {
+ SingleInputPort childElement = modelElement.getInputPort();
+ int visualID = ComrelVisualIDRegistry.getNodeVisualID(view,
+ childElement);
+ if (visualID == SingleInputPort5EditPart.VISUAL_ID) {
+ result.add(new ComrelNodeDescriptor(childElement, visualID));
+ }
+ }
+ for (Iterator<?> it = modelElement.getSecondaryInputPorts().iterator(); it
+ .hasNext();) {
+ MultiInputPort childElement = (MultiInputPort) it.next();
+ int visualID = ComrelVisualIDRegistry.getNodeVisualID(view,
+ childElement);
+ if (visualID == MultiInputPort4EditPart.VISUAL_ID) {
+ result.add(new ComrelNodeDescriptor(childElement, visualID));
+ continue;
+ }
+ }
+ {
+ MultiOutputPort childElement = modelElement.getOutputPort();
+ int visualID = ComrelVisualIDRegistry.getNodeVisualID(view,
+ childElement);
+ if (visualID == MultiOutputPortEditPart.VISUAL_ID) {
+ result.add(new ComrelNodeDescriptor(childElement, visualID));
+ }
+ }
+ return result;
+ }
+
+ /**
+ * @generated
+ */
+ public static List<ComrelNodeDescriptor> getSingleFilterUnit_3040SemanticChildren(
+ View view) {
+ if (!view.isSetElement()) {
+ return Collections.emptyList();
+ }
+ SingleFilterUnit modelElement = (SingleFilterUnit) view.getElement();
+ LinkedList<ComrelNodeDescriptor> result = new LinkedList<ComrelNodeDescriptor>();
+ {
+ MultiInputPort childElement = modelElement.getInputPort();
+ int visualID = ComrelVisualIDRegistry.getNodeVisualID(view,
+ childElement);
+ if (visualID == MultiInputPort5EditPart.VISUAL_ID) {
+ result.add(new ComrelNodeDescriptor(childElement, visualID));
+ }
+ }
+ {
+ SingleOutputPort childElement = modelElement.getOutputPort();
+ int visualID = ComrelVisualIDRegistry.getNodeVisualID(view,
+ childElement);
+ if (visualID == SingleOutputPort2EditPart.VISUAL_ID) {
+ result.add(new ComrelNodeDescriptor(childElement, visualID));
+ }
+ }
+ return result;
+ }
+
+ /**
+ * @generated
+ */
+ public static List<ComrelNodeDescriptor> getMultiFilterUnit_3041SemanticChildren(
+ View view) {
+ if (!view.isSetElement()) {
+ return Collections.emptyList();
+ }
+ MultiFilterUnit modelElement = (MultiFilterUnit) view.getElement();
+ LinkedList<ComrelNodeDescriptor> result = new LinkedList<ComrelNodeDescriptor>();
+ {
+ MultiInputPort childElement = modelElement.getInputPort();
+ int visualID = ComrelVisualIDRegistry.getNodeVisualID(view,
+ childElement);
+ if (visualID == MultiInputPort6EditPart.VISUAL_ID) {
+ result.add(new ComrelNodeDescriptor(childElement, visualID));
+ }
+ }
+ {
+ MultiOutputPort childElement = modelElement.getOutputPort();
+ int visualID = ComrelVisualIDRegistry.getNodeVisualID(view,
+ childElement);
+ if (visualID == MultiOutputPort2EditPart.VISUAL_ID) {
+ result.add(new ComrelNodeDescriptor(childElement, visualID));
+ }
+ }
+ return result;
+ }
+
+ /**
+ * @generated
+ */
+ public static List<ComrelNodeDescriptor> getSingleQueuedUnit_3042SemanticChildren(
+ View view) {
+ if (!view.isSetElement()) {
+ return Collections.emptyList();
+ }
+ SingleQueuedUnit modelElement = (SingleQueuedUnit) view.getElement();
+ LinkedList<ComrelNodeDescriptor> result = new LinkedList<ComrelNodeDescriptor>();
+ for (Iterator<?> it = modelElement.getSingleInputPorts().iterator(); it
+ .hasNext();) {
+ SingleInputPort childElement = (SingleInputPort) it.next();
+ int visualID = ComrelVisualIDRegistry.getNodeVisualID(view,
+ childElement);
+ if (visualID == SingleInputPort6EditPart.VISUAL_ID) {
+ result.add(new ComrelNodeDescriptor(childElement, visualID));
+ continue;
+ }
+ }
+ {
+ MultiInputPort childElement = modelElement.getMultiInputPort();
+ int visualID = ComrelVisualIDRegistry.getNodeVisualID(view,
+ childElement);
+ if (visualID == MultiInputPort7EditPart.VISUAL_ID) {
+ result.add(new ComrelNodeDescriptor(childElement, visualID));
+ }
+ }
+ return result;
+ }
+
+ /**
+ * @generated
+ */
+ public static List<ComrelNodeDescriptor> getParallelQueuedUnit_3043SemanticChildren(
+ View view) {
+ if (!view.isSetElement()) {
+ return Collections.emptyList();
+ }
+ ParallelQueuedUnit modelElement = (ParallelQueuedUnit) view
+ .getElement();
+ LinkedList<ComrelNodeDescriptor> result = new LinkedList<ComrelNodeDescriptor>();
+ for (Iterator<?> it = modelElement.getSingleInputPorts().iterator(); it
+ .hasNext();) {
+ SingleInputPort childElement = (SingleInputPort) it.next();
+ int visualID = ComrelVisualIDRegistry.getNodeVisualID(view,
+ childElement);
+ if (visualID == SingleInputPort3EditPart.VISUAL_ID) {
+ result.add(new ComrelNodeDescriptor(childElement, visualID));
+ continue;
+ }
+ }
+ for (Iterator<?> it = modelElement.getMultiInputPorts().iterator(); it
+ .hasNext();) {
+ MultiInputPort childElement = (MultiInputPort) it.next();
+ int visualID = ComrelVisualIDRegistry.getNodeVisualID(view,
+ childElement);
+ if (visualID == MultiInputPort2EditPart.VISUAL_ID) {
+ result.add(new ComrelNodeDescriptor(childElement, visualID));
+ continue;
+ }
+ }
+ return result;
+ }
+
+ /**
+ * @generated
+ */
+ public static List<ComrelNodeDescriptor> getSequentialUnit_3044SemanticChildren(
+ View view) {
+ if (!view.isSetElement()) {
+ return Collections.emptyList();
+ }
+ SequentialUnit modelElement = (SequentialUnit) view.getElement();
+ LinkedList<ComrelNodeDescriptor> result = new LinkedList<ComrelNodeDescriptor>();
+ for (Iterator<?> it = modelElement.getInputPorts().iterator(); it
+ .hasNext();) {
+ InputPort childElement = (InputPort) it.next();
+ int visualID = ComrelVisualIDRegistry.getNodeVisualID(view,
+ childElement);
+ if (visualID == SingleInputPort7EditPart.VISUAL_ID) {
+ result.add(new ComrelNodeDescriptor(childElement, visualID));
+ continue;
+ }
+ if (visualID == MultiInputPort8EditPart.VISUAL_ID) {
+ result.add(new ComrelNodeDescriptor(childElement, visualID));
+ continue;
+ }
+ }
+ return result;
+ }
+
+ /**
+ * @generated
+ */
+ public static List<ComrelNodeDescriptor> getParallelQueuedUnit_3045SemanticChildren(
+ View view) {
+ if (!view.isSetElement()) {
+ return Collections.emptyList();
+ }
+ ParallelQueuedUnit modelElement = (ParallelQueuedUnit) view
+ .getElement();
+ LinkedList<ComrelNodeDescriptor> result = new LinkedList<ComrelNodeDescriptor>();
+ for (Iterator<?> it = modelElement.getSingleInputPorts().iterator(); it
+ .hasNext();) {
+ SingleInputPort childElement = (SingleInputPort) it.next();
+ int visualID = ComrelVisualIDRegistry.getNodeVisualID(view,
+ childElement);
+ if (visualID == SingleInputPort3EditPart.VISUAL_ID) {
+ result.add(new ComrelNodeDescriptor(childElement, visualID));
+ continue;
+ }
+ }
+ for (Iterator<?> it = modelElement.getMultiInputPorts().iterator(); it
+ .hasNext();) {
+ MultiInputPort childElement = (MultiInputPort) it.next();
+ int visualID = ComrelVisualIDRegistry.getNodeVisualID(view,
+ childElement);
+ if (visualID == MultiInputPort2EditPart.VISUAL_ID) {
+ result.add(new ComrelNodeDescriptor(childElement, visualID));
+ continue;
+ }
+ }
+ return result;
+ }
+
+ /**
+ * @generated
+ */
+ public static List<ComrelNodeDescriptor> getConditionalUnit_3046SemanticChildren(
+ View view) {
+ if (!view.isSetElement()) {
+ return Collections.emptyList();
+ }
+ ConditionalUnit modelElement = (ConditionalUnit) view.getElement();
+ LinkedList<ComrelNodeDescriptor> result = new LinkedList<ComrelNodeDescriptor>();
+ for (Iterator<?> it = modelElement.getInputPorts().iterator(); it
+ .hasNext();) {
+ InputPort childElement = (InputPort) it.next();
+ int visualID = ComrelVisualIDRegistry.getNodeVisualID(view,
+ childElement);
+ if (visualID == SingleInputPort8EditPart.VISUAL_ID) {
+ result.add(new ComrelNodeDescriptor(childElement, visualID));
+ continue;
+ }
+ if (visualID == MultiInputPort9EditPart.VISUAL_ID) {
+ result.add(new ComrelNodeDescriptor(childElement, visualID));
+ continue;
+ }
+ }
+ return result;
+ }
+
+ /**
+ * @generated
+ */
+ public static List<ComrelNodeDescriptor> getCartesianQueuedUnit_3047SemanticChildren(
+ View view) {
+ if (!view.isSetElement()) {
+ return Collections.emptyList();
+ }
+ CartesianQueuedUnit modelElement = (CartesianQueuedUnit) view
+ .getElement();
+ LinkedList<ComrelNodeDescriptor> result = new LinkedList<ComrelNodeDescriptor>();
+ for (Iterator<?> it = modelElement.getSingleInputPorts().iterator(); it
+ .hasNext();) {
+ SingleInputPort childElement = (SingleInputPort) it.next();
+ int visualID = ComrelVisualIDRegistry.getNodeVisualID(view,
+ childElement);
+ if (visualID == SingleInputPort2EditPart.VISUAL_ID) {
+ result.add(new ComrelNodeDescriptor(childElement, visualID));
+ continue;
+ }
+ }
+ for (Iterator<?> it = modelElement.getMultiInputPorts().iterator(); it
+ .hasNext();) {
+ MultiInputPort childElement = (MultiInputPort) it.next();
+ int visualID = ComrelVisualIDRegistry.getNodeVisualID(view,
+ childElement);
+ if (visualID == MultiInputPortEditPart.VISUAL_ID) {
+ result.add(new ComrelNodeDescriptor(childElement, visualID));
+ continue;
+ }
+ }
+ return result;
+ }
+
+ /**
+ * @generated
+ */
+ public static List<ComrelNodeDescriptor> getParallelQueuedUnit_3048SemanticChildren(
+ View view) {
+ if (!view.isSetElement()) {
+ return Collections.emptyList();
+ }
+ ParallelQueuedUnit modelElement = (ParallelQueuedUnit) view
+ .getElement();
+ LinkedList<ComrelNodeDescriptor> result = new LinkedList<ComrelNodeDescriptor>();
+ for (Iterator<?> it = modelElement.getSingleInputPorts().iterator(); it
+ .hasNext();) {
+ SingleInputPort childElement = (SingleInputPort) it.next();
+ int visualID = ComrelVisualIDRegistry.getNodeVisualID(view,
+ childElement);
+ if (visualID == SingleInputPort3EditPart.VISUAL_ID) {
+ result.add(new ComrelNodeDescriptor(childElement, visualID));
+ continue;
+ }
+ }
+ for (Iterator<?> it = modelElement.getMultiInputPorts().iterator(); it
+ .hasNext();) {
+ MultiInputPort childElement = (MultiInputPort) it.next();
+ int visualID = ComrelVisualIDRegistry.getNodeVisualID(view,
+ childElement);
+ if (visualID == MultiInputPort2EditPart.VISUAL_ID) {
+ result.add(new ComrelNodeDescriptor(childElement, visualID));
+ continue;
+ }
+ }
+ return result;
+ }
+
+ /**
+ * @generated
+ */
+ public static List<ComrelNodeDescriptor> getAtomicUnit_3049SemanticChildren(
+ View view) {
+ if (!view.isSetElement()) {
+ return Collections.emptyList();
+ }
+ AtomicUnit modelElement = (AtomicUnit) view.getElement();
+ LinkedList<ComrelNodeDescriptor> result = new LinkedList<ComrelNodeDescriptor>();
+ for (Iterator<?> it = modelElement.getInputPorts().iterator(); it
+ .hasNext();) {
+ SingleInputPort childElement = (SingleInputPort) it.next();
+ int visualID = ComrelVisualIDRegistry.getNodeVisualID(view,
+ childElement);
+ if (visualID == SingleInputPort9EditPart.VISUAL_ID) {
+ result.add(new ComrelNodeDescriptor(childElement, visualID));
+ continue;
+ }
+ }
+ return result;
+ }
+
+ /**
+ * @generated
+ */
+ public static List<ComrelNodeDescriptor> getSingleFeatureUnit_3050SemanticChildren(
+ View view) {
+ if (!view.isSetElement()) {
+ return Collections.emptyList();
+ }
+ SingleFeatureUnit modelElement = (SingleFeatureUnit) view.getElement();
+ LinkedList<ComrelNodeDescriptor> result = new LinkedList<ComrelNodeDescriptor>();
+ {
+ SingleInputPort childElement = modelElement.getInputPort();
+ int visualID = ComrelVisualIDRegistry.getNodeVisualID(view,
+ childElement);
+ if (visualID == SingleInputPort4EditPart.VISUAL_ID) {
+ result.add(new ComrelNodeDescriptor(childElement, visualID));
+ }
+ }
+ for (Iterator<?> it = modelElement.getSecondaryInputPorts().iterator(); it
+ .hasNext();) {
+ MultiInputPort childElement = (MultiInputPort) it.next();
+ int visualID = ComrelVisualIDRegistry.getNodeVisualID(view,
+ childElement);
+ if (visualID == MultiInputPort3EditPart.VISUAL_ID) {
+ result.add(new ComrelNodeDescriptor(childElement, visualID));
+ continue;
+ }
+ }
+ {
+ SingleOutputPort childElement = modelElement.getOutputPort();
+ int visualID = ComrelVisualIDRegistry.getNodeVisualID(view,
+ childElement);
+ if (visualID == SingleOutputPortEditPart.VISUAL_ID) {
+ result.add(new ComrelNodeDescriptor(childElement, visualID));
+ }
+ }
+ return result;
+ }
+
+ /**
+ * @generated
+ */
+ public static List<ComrelNodeDescriptor> getMultiFeatureUnit_3051SemanticChildren(
+ View view) {
+ if (!view.isSetElement()) {
+ return Collections.emptyList();
+ }
+ MultiFeatureUnit modelElement = (MultiFeatureUnit) view.getElement();
+ LinkedList<ComrelNodeDescriptor> result = new LinkedList<ComrelNodeDescriptor>();
+ {
+ SingleInputPort childElement = modelElement.getInputPort();
+ int visualID = ComrelVisualIDRegistry.getNodeVisualID(view,
+ childElement);
+ if (visualID == SingleInputPort5EditPart.VISUAL_ID) {
+ result.add(new ComrelNodeDescriptor(childElement, visualID));
+ }
+ }
+ for (Iterator<?> it = modelElement.getSecondaryInputPorts().iterator(); it
+ .hasNext();) {
+ MultiInputPort childElement = (MultiInputPort) it.next();
+ int visualID = ComrelVisualIDRegistry.getNodeVisualID(view,
+ childElement);
+ if (visualID == MultiInputPort4EditPart.VISUAL_ID) {
+ result.add(new ComrelNodeDescriptor(childElement, visualID));
+ continue;
+ }
+ }
+ {
+ MultiOutputPort childElement = modelElement.getOutputPort();
+ int visualID = ComrelVisualIDRegistry.getNodeVisualID(view,
+ childElement);
+ if (visualID == MultiOutputPortEditPart.VISUAL_ID) {
+ result.add(new ComrelNodeDescriptor(childElement, visualID));
+ }
+ }
+ return result;
+ }
+
+ /**
+ * @generated
+ */
+ public static List<ComrelNodeDescriptor> getSingleFilterUnit_3052SemanticChildren(
+ View view) {
+ if (!view.isSetElement()) {
+ return Collections.emptyList();
+ }
+ SingleFilterUnit modelElement = (SingleFilterUnit) view.getElement();
+ LinkedList<ComrelNodeDescriptor> result = new LinkedList<ComrelNodeDescriptor>();
+ {
+ MultiInputPort childElement = modelElement.getInputPort();
+ int visualID = ComrelVisualIDRegistry.getNodeVisualID(view,
+ childElement);
+ if (visualID == MultiInputPort5EditPart.VISUAL_ID) {
+ result.add(new ComrelNodeDescriptor(childElement, visualID));
+ }
+ }
+ {
+ SingleOutputPort childElement = modelElement.getOutputPort();
+ int visualID = ComrelVisualIDRegistry.getNodeVisualID(view,
+ childElement);
+ if (visualID == SingleOutputPort2EditPart.VISUAL_ID) {
+ result.add(new ComrelNodeDescriptor(childElement, visualID));
+ }
+ }
+ return result;
+ }
+
+ /**
+ * @generated
+ */
+ public static List<ComrelNodeDescriptor> getMultiFilterUnit_3053SemanticChildren(
+ View view) {
+ if (!view.isSetElement()) {
+ return Collections.emptyList();
+ }
+ MultiFilterUnit modelElement = (MultiFilterUnit) view.getElement();
+ LinkedList<ComrelNodeDescriptor> result = new LinkedList<ComrelNodeDescriptor>();
+ {
+ MultiInputPort childElement = modelElement.getInputPort();
+ int visualID = ComrelVisualIDRegistry.getNodeVisualID(view,
+ childElement);
+ if (visualID == MultiInputPort6EditPart.VISUAL_ID) {
+ result.add(new ComrelNodeDescriptor(childElement, visualID));
+ }
+ }
+ {
+ MultiOutputPort childElement = modelElement.getOutputPort();
+ int visualID = ComrelVisualIDRegistry.getNodeVisualID(view,
+ childElement);
+ if (visualID == MultiOutputPort2EditPart.VISUAL_ID) {
+ result.add(new ComrelNodeDescriptor(childElement, visualID));
+ }
+ }
+ return result;
+ }
+
+ /**
+ * @generated
+ */
+ public static List<ComrelNodeDescriptor> getSingleQueuedUnit_3054SemanticChildren(
+ View view) {
+ if (!view.isSetElement()) {
+ return Collections.emptyList();
+ }
+ SingleQueuedUnit modelElement = (SingleQueuedUnit) view.getElement();
+ LinkedList<ComrelNodeDescriptor> result = new LinkedList<ComrelNodeDescriptor>();
+ for (Iterator<?> it = modelElement.getSingleInputPorts().iterator(); it
+ .hasNext();) {
+ SingleInputPort childElement = (SingleInputPort) it.next();
+ int visualID = ComrelVisualIDRegistry.getNodeVisualID(view,
+ childElement);
+ if (visualID == SingleInputPort6EditPart.VISUAL_ID) {
+ result.add(new ComrelNodeDescriptor(childElement, visualID));
+ continue;
+ }
+ }
+ {
+ MultiInputPort childElement = modelElement.getMultiInputPort();
+ int visualID = ComrelVisualIDRegistry.getNodeVisualID(view,
+ childElement);
+ if (visualID == MultiInputPort7EditPart.VISUAL_ID) {
+ result.add(new ComrelNodeDescriptor(childElement, visualID));
+ }
+ }
+ return result;
+ }
+
+ /**
+ * @generated
+ */
+ public static List<ComrelNodeDescriptor> getSingleFeatureUnit_3055SemanticChildren(
+ View view) {
+ if (!view.isSetElement()) {
+ return Collections.emptyList();
+ }
+ SingleFeatureUnit modelElement = (SingleFeatureUnit) view.getElement();
+ LinkedList<ComrelNodeDescriptor> result = new LinkedList<ComrelNodeDescriptor>();
+ {
+ SingleInputPort childElement = modelElement.getInputPort();
+ int visualID = ComrelVisualIDRegistry.getNodeVisualID(view,
+ childElement);
+ if (visualID == SingleInputPort4EditPart.VISUAL_ID) {
+ result.add(new ComrelNodeDescriptor(childElement, visualID));
+ }
+ }
+ for (Iterator<?> it = modelElement.getSecondaryInputPorts().iterator(); it
+ .hasNext();) {
+ MultiInputPort childElement = (MultiInputPort) it.next();
+ int visualID = ComrelVisualIDRegistry.getNodeVisualID(view,
+ childElement);
+ if (visualID == MultiInputPort3EditPart.VISUAL_ID) {
+ result.add(new ComrelNodeDescriptor(childElement, visualID));
+ continue;
+ }
+ }
+ {
+ SingleOutputPort childElement = modelElement.getOutputPort();
+ int visualID = ComrelVisualIDRegistry.getNodeVisualID(view,
+ childElement);
+ if (visualID == SingleOutputPortEditPart.VISUAL_ID) {
+ result.add(new ComrelNodeDescriptor(childElement, visualID));
+ }
+ }
+ return result;
+ }
+
+ /**
+ * @generated
+ */
+ public static List<ComrelNodeDescriptor> getMultiFeatureUnit_3056SemanticChildren(
+ View view) {
+ if (!view.isSetElement()) {
+ return Collections.emptyList();
+ }
+ MultiFeatureUnit modelElement = (MultiFeatureUnit) view.getElement();
+ LinkedList<ComrelNodeDescriptor> result = new LinkedList<ComrelNodeDescriptor>();
+ {
+ SingleInputPort childElement = modelElement.getInputPort();
+ int visualID = ComrelVisualIDRegistry.getNodeVisualID(view,
+ childElement);
+ if (visualID == SingleInputPort5EditPart.VISUAL_ID) {
+ result.add(new ComrelNodeDescriptor(childElement, visualID));
+ }
+ }
+ for (Iterator<?> it = modelElement.getSecondaryInputPorts().iterator(); it
+ .hasNext();) {
+ MultiInputPort childElement = (MultiInputPort) it.next();
+ int visualID = ComrelVisualIDRegistry.getNodeVisualID(view,
+ childElement);
+ if (visualID == MultiInputPort4EditPart.VISUAL_ID) {
+ result.add(new ComrelNodeDescriptor(childElement, visualID));
+ continue;
+ }
+ }
+ {
+ MultiOutputPort childElement = modelElement.getOutputPort();
+ int visualID = ComrelVisualIDRegistry.getNodeVisualID(view,
+ childElement);
+ if (visualID == MultiOutputPortEditPart.VISUAL_ID) {
+ result.add(new ComrelNodeDescriptor(childElement, visualID));
+ }
+ }
+ return result;
+ }
+
+ /**
+ * @generated
+ */
+ public static List<ComrelNodeDescriptor> getSingleFilterUnit_3057SemanticChildren(
+ View view) {
+ if (!view.isSetElement()) {
+ return Collections.emptyList();
+ }
+ SingleFilterUnit modelElement = (SingleFilterUnit) view.getElement();
+ LinkedList<ComrelNodeDescriptor> result = new LinkedList<ComrelNodeDescriptor>();
+ {
+ MultiInputPort childElement = modelElement.getInputPort();
+ int visualID = ComrelVisualIDRegistry.getNodeVisualID(view,
+ childElement);
+ if (visualID == MultiInputPort5EditPart.VISUAL_ID) {
+ result.add(new ComrelNodeDescriptor(childElement, visualID));
+ }
+ }
+ {
+ SingleOutputPort childElement = modelElement.getOutputPort();
+ int visualID = ComrelVisualIDRegistry.getNodeVisualID(view,
+ childElement);
+ if (visualID == SingleOutputPort2EditPart.VISUAL_ID) {
+ result.add(new ComrelNodeDescriptor(childElement, visualID));
+ }
+ }
+ return result;
+ }
+
+ /**
+ * @generated
+ */
+ public static List<ComrelNodeDescriptor> getMultiFilterUnit_3058SemanticChildren(
+ View view) {
+ if (!view.isSetElement()) {
+ return Collections.emptyList();
+ }
+ MultiFilterUnit modelElement = (MultiFilterUnit) view.getElement();
+ LinkedList<ComrelNodeDescriptor> result = new LinkedList<ComrelNodeDescriptor>();
+ {
+ MultiInputPort childElement = modelElement.getInputPort();
+ int visualID = ComrelVisualIDRegistry.getNodeVisualID(view,
+ childElement);
+ if (visualID == MultiInputPort6EditPart.VISUAL_ID) {
+ result.add(new ComrelNodeDescriptor(childElement, visualID));
+ }
+ }
+ {
+ MultiOutputPort childElement = modelElement.getOutputPort();
+ int visualID = ComrelVisualIDRegistry.getNodeVisualID(view,
+ childElement);
+ if (visualID == MultiOutputPort2EditPart.VISUAL_ID) {
+ result.add(new ComrelNodeDescriptor(childElement, visualID));
+ }
+ }
+ return result;
+ }
+
+ /**
+ * @generated
+ */
+ public static List<ComrelNodeDescriptor> getSingleQueuedUnit_3059SemanticChildren(
+ View view) {
+ if (!view.isSetElement()) {
+ return Collections.emptyList();
+ }
+ SingleQueuedUnit modelElement = (SingleQueuedUnit) view.getElement();
+ LinkedList<ComrelNodeDescriptor> result = new LinkedList<ComrelNodeDescriptor>();
+ for (Iterator<?> it = modelElement.getSingleInputPorts().iterator(); it
+ .hasNext();) {
+ SingleInputPort childElement = (SingleInputPort) it.next();
+ int visualID = ComrelVisualIDRegistry.getNodeVisualID(view,
+ childElement);
+ if (visualID == SingleInputPort6EditPart.VISUAL_ID) {
+ result.add(new ComrelNodeDescriptor(childElement, visualID));
+ continue;
+ }
+ }
+ {
+ MultiInputPort childElement = modelElement.getMultiInputPort();
+ int visualID = ComrelVisualIDRegistry.getNodeVisualID(view,
+ childElement);
+ if (visualID == MultiInputPort7EditPart.VISUAL_ID) {
+ result.add(new ComrelNodeDescriptor(childElement, visualID));
+ }
+ }
+ return result;
+ }
+
+ /**
+ * @generated
+ */
+ public static List<ComrelNodeDescriptor> getSequentialUnit_3060SemanticChildren(
+ View view) {
+ if (!view.isSetElement()) {
+ return Collections.emptyList();
+ }
+ SequentialUnit modelElement = (SequentialUnit) view.getElement();
+ LinkedList<ComrelNodeDescriptor> result = new LinkedList<ComrelNodeDescriptor>();
+ for (Iterator<?> it = modelElement.getInputPorts().iterator(); it
+ .hasNext();) {
+ InputPort childElement = (InputPort) it.next();
+ int visualID = ComrelVisualIDRegistry.getNodeVisualID(view,
+ childElement);
+ if (visualID == SingleInputPort7EditPart.VISUAL_ID) {
+ result.add(new ComrelNodeDescriptor(childElement, visualID));
+ continue;
+ }
+ if (visualID == MultiInputPort8EditPart.VISUAL_ID) {
+ result.add(new ComrelNodeDescriptor(childElement, visualID));
+ continue;
+ }
+ }
+ return result;
+ }
+
+ /**
+ * @generated
+ */
+ public static List<ComrelNodeDescriptor> getSingleFeatureUnit_3061SemanticChildren(
+ View view) {
+ if (!view.isSetElement()) {
+ return Collections.emptyList();
+ }
+ SingleFeatureUnit modelElement = (SingleFeatureUnit) view.getElement();
+ LinkedList<ComrelNodeDescriptor> result = new LinkedList<ComrelNodeDescriptor>();
+ {
+ SingleInputPort childElement = modelElement.getInputPort();
+ int visualID = ComrelVisualIDRegistry.getNodeVisualID(view,
+ childElement);
+ if (visualID == SingleInputPort4EditPart.VISUAL_ID) {
+ result.add(new ComrelNodeDescriptor(childElement, visualID));
+ }
+ }
+ for (Iterator<?> it = modelElement.getSecondaryInputPorts().iterator(); it
+ .hasNext();) {
+ MultiInputPort childElement = (MultiInputPort) it.next();
+ int visualID = ComrelVisualIDRegistry.getNodeVisualID(view,
+ childElement);
+ if (visualID == MultiInputPort3EditPart.VISUAL_ID) {
+ result.add(new ComrelNodeDescriptor(childElement, visualID));
+ continue;
+ }
+ }
+ {
+ SingleOutputPort childElement = modelElement.getOutputPort();
+ int visualID = ComrelVisualIDRegistry.getNodeVisualID(view,
+ childElement);
+ if (visualID == SingleOutputPortEditPart.VISUAL_ID) {
+ result.add(new ComrelNodeDescriptor(childElement, visualID));
+ }
+ }
+ return result;
+ }
+
+ /**
+ * @generated
+ */
+ public static List<ComrelNodeDescriptor> getMultiFeatureUnit_3062SemanticChildren(
+ View view) {
+ if (!view.isSetElement()) {
+ return Collections.emptyList();
+ }
+ MultiFeatureUnit modelElement = (MultiFeatureUnit) view.getElement();
+ LinkedList<ComrelNodeDescriptor> result = new LinkedList<ComrelNodeDescriptor>();
+ {
+ SingleInputPort childElement = modelElement.getInputPort();
+ int visualID = ComrelVisualIDRegistry.getNodeVisualID(view,
+ childElement);
+ if (visualID == SingleInputPort5EditPart.VISUAL_ID) {
+ result.add(new ComrelNodeDescriptor(childElement, visualID));
+ }
+ }
+ for (Iterator<?> it = modelElement.getSecondaryInputPorts().iterator(); it
+ .hasNext();) {
+ MultiInputPort childElement = (MultiInputPort) it.next();
+ int visualID = ComrelVisualIDRegistry.getNodeVisualID(view,
+ childElement);
+ if (visualID == MultiInputPort4EditPart.VISUAL_ID) {
+ result.add(new ComrelNodeDescriptor(childElement, visualID));
+ continue;
+ }
+ }
+ {
+ MultiOutputPort childElement = modelElement.getOutputPort();
+ int visualID = ComrelVisualIDRegistry.getNodeVisualID(view,
+ childElement);
+ if (visualID == MultiOutputPortEditPart.VISUAL_ID) {
+ result.add(new ComrelNodeDescriptor(childElement, visualID));
+ }
+ }
+ return result;
+ }
+
+ /**
+ * @generated
+ */
+ public static List<ComrelNodeDescriptor> getSingleFilterUnit_3063SemanticChildren(
+ View view) {
+ if (!view.isSetElement()) {
+ return Collections.emptyList();
+ }
+ SingleFilterUnit modelElement = (SingleFilterUnit) view.getElement();
+ LinkedList<ComrelNodeDescriptor> result = new LinkedList<ComrelNodeDescriptor>();
+ {
+ MultiInputPort childElement = modelElement.getInputPort();
+ int visualID = ComrelVisualIDRegistry.getNodeVisualID(view,
+ childElement);
+ if (visualID == MultiInputPort5EditPart.VISUAL_ID) {
+ result.add(new ComrelNodeDescriptor(childElement, visualID));
+ }
+ }
+ {
+ SingleOutputPort childElement = modelElement.getOutputPort();
+ int visualID = ComrelVisualIDRegistry.getNodeVisualID(view,
+ childElement);
+ if (visualID == SingleOutputPort2EditPart.VISUAL_ID) {
+ result.add(new ComrelNodeDescriptor(childElement, visualID));
+ }
+ }
+ return result;
+ }
+
+ /**
+ * @generated
+ */
+ public static List<ComrelNodeDescriptor> getMultiFilterUnit_3064SemanticChildren(
+ View view) {
+ if (!view.isSetElement()) {
+ return Collections.emptyList();
+ }
+ MultiFilterUnit modelElement = (MultiFilterUnit) view.getElement();
+ LinkedList<ComrelNodeDescriptor> result = new LinkedList<ComrelNodeDescriptor>();
+ {
+ MultiInputPort childElement = modelElement.getInputPort();
+ int visualID = ComrelVisualIDRegistry.getNodeVisualID(view,
+ childElement);
+ if (visualID == MultiInputPort6EditPart.VISUAL_ID) {
+ result.add(new ComrelNodeDescriptor(childElement, visualID));
+ }
+ }
+ {
+ MultiOutputPort childElement = modelElement.getOutputPort();
+ int visualID = ComrelVisualIDRegistry.getNodeVisualID(view,
+ childElement);
+ if (visualID == MultiOutputPort2EditPart.VISUAL_ID) {
+ result.add(new ComrelNodeDescriptor(childElement, visualID));
+ }
+ }
+ return result;
+ }
+
+ /**
+ * @generated
+ */
+ public static List<ComrelNodeDescriptor> getSingleQueuedUnit_3065SemanticChildren(
+ View view) {
+ if (!view.isSetElement()) {
+ return Collections.emptyList();
+ }
+ SingleQueuedUnit modelElement = (SingleQueuedUnit) view.getElement();
+ LinkedList<ComrelNodeDescriptor> result = new LinkedList<ComrelNodeDescriptor>();
+ for (Iterator<?> it = modelElement.getSingleInputPorts().iterator(); it
+ .hasNext();) {
+ SingleInputPort childElement = (SingleInputPort) it.next();
+ int visualID = ComrelVisualIDRegistry.getNodeVisualID(view,
+ childElement);
+ if (visualID == SingleInputPort6EditPart.VISUAL_ID) {
+ result.add(new ComrelNodeDescriptor(childElement, visualID));
+ continue;
+ }
+ }
+ {
+ MultiInputPort childElement = modelElement.getMultiInputPort();
+ int visualID = ComrelVisualIDRegistry.getNodeVisualID(view,
+ childElement);
+ if (visualID == MultiInputPort7EditPart.VISUAL_ID) {
+ result.add(new ComrelNodeDescriptor(childElement, visualID));
+ }
+ }
+ return result;
+ }
+
+ /**
+ * @generated
+ */
+ public static List<ComrelNodeDescriptor> getConditionalUnit_3066SemanticChildren(
+ View view) {
+ if (!view.isSetElement()) {
+ return Collections.emptyList();
+ }
+ ConditionalUnit modelElement = (ConditionalUnit) view.getElement();
+ LinkedList<ComrelNodeDescriptor> result = new LinkedList<ComrelNodeDescriptor>();
+ for (Iterator<?> it = modelElement.getInputPorts().iterator(); it
+ .hasNext();) {
+ InputPort childElement = (InputPort) it.next();
+ int visualID = ComrelVisualIDRegistry.getNodeVisualID(view,
+ childElement);
+ if (visualID == SingleInputPort8EditPart.VISUAL_ID) {
+ result.add(new ComrelNodeDescriptor(childElement, visualID));
+ continue;
+ }
+ if (visualID == MultiInputPort9EditPart.VISUAL_ID) {
+ result.add(new ComrelNodeDescriptor(childElement, visualID));
+ continue;
+ }
+ }
+ return result;
+ }
+
+ /**
+ * @generated
+ */
+ public static List<ComrelNodeDescriptor> getSingleQueuedUnit_3067SemanticChildren(
+ View view) {
+ if (!view.isSetElement()) {
+ return Collections.emptyList();
+ }
+ SingleQueuedUnit modelElement = (SingleQueuedUnit) view.getElement();
+ LinkedList<ComrelNodeDescriptor> result = new LinkedList<ComrelNodeDescriptor>();
+ for (Iterator<?> it = modelElement.getSingleInputPorts().iterator(); it
+ .hasNext();) {
+ SingleInputPort childElement = (SingleInputPort) it.next();
+ int visualID = ComrelVisualIDRegistry.getNodeVisualID(view,
+ childElement);
+ if (visualID == SingleInputPort6EditPart.VISUAL_ID) {
+ result.add(new ComrelNodeDescriptor(childElement, visualID));
+ continue;
+ }
+ }
+ {
+ MultiInputPort childElement = modelElement.getMultiInputPort();
+ int visualID = ComrelVisualIDRegistry.getNodeVisualID(view,
+ childElement);
+ if (visualID == MultiInputPort7EditPart.VISUAL_ID) {
+ result.add(new ComrelNodeDescriptor(childElement, visualID));
+ }
+ }
+ return result;
+ }
+
+ /**
+ * @generated
+ */
+ public static List<ComrelNodeDescriptor> getAtomicUnit_3068SemanticChildren(
+ View view) {
+ if (!view.isSetElement()) {
+ return Collections.emptyList();
+ }
+ AtomicUnit modelElement = (AtomicUnit) view.getElement();
+ LinkedList<ComrelNodeDescriptor> result = new LinkedList<ComrelNodeDescriptor>();
+ for (Iterator<?> it = modelElement.getInputPorts().iterator(); it
+ .hasNext();) {
+ SingleInputPort childElement = (SingleInputPort) it.next();
+ int visualID = ComrelVisualIDRegistry.getNodeVisualID(view,
+ childElement);
+ if (visualID == SingleInputPort9EditPart.VISUAL_ID) {
+ result.add(new ComrelNodeDescriptor(childElement, visualID));
+ continue;
+ }
+ }
+ return result;
+ }
+
+ /**
+ * @generated
+ */
+ public static List<ComrelNodeDescriptor> getSequentialUnit_3069SemanticChildren(
+ View view) {
+ if (!view.isSetElement()) {
+ return Collections.emptyList();
+ }
+ SequentialUnit modelElement = (SequentialUnit) view.getElement();
+ LinkedList<ComrelNodeDescriptor> result = new LinkedList<ComrelNodeDescriptor>();
+ for (Iterator<?> it = modelElement.getInputPorts().iterator(); it
+ .hasNext();) {
+ InputPort childElement = (InputPort) it.next();
+ int visualID = ComrelVisualIDRegistry.getNodeVisualID(view,
+ childElement);
+ if (visualID == SingleInputPort7EditPart.VISUAL_ID) {
+ result.add(new ComrelNodeDescriptor(childElement, visualID));
+ continue;
+ }
+ if (visualID == MultiInputPort8EditPart.VISUAL_ID) {
+ result.add(new ComrelNodeDescriptor(childElement, visualID));
+ continue;
+ }
+ }
+ return result;
+ }
+
+ /**
+ * @generated
+ */
+ public static List<ComrelNodeDescriptor> getSequentialUnit_3070SemanticChildren(
+ View view) {
+ if (!view.isSetElement()) {
+ return Collections.emptyList();
+ }
+ SequentialUnit modelElement = (SequentialUnit) view.getElement();
+ LinkedList<ComrelNodeDescriptor> result = new LinkedList<ComrelNodeDescriptor>();
+ for (Iterator<?> it = modelElement.getInputPorts().iterator(); it
+ .hasNext();) {
+ InputPort childElement = (InputPort) it.next();
+ int visualID = ComrelVisualIDRegistry.getNodeVisualID(view,
+ childElement);
+ if (visualID == SingleInputPort7EditPart.VISUAL_ID) {
+ result.add(new ComrelNodeDescriptor(childElement, visualID));
+ continue;
+ }
+ if (visualID == MultiInputPort8EditPart.VISUAL_ID) {
+ result.add(new ComrelNodeDescriptor(childElement, visualID));
+ continue;
+ }
+ }
+ return result;
+ }
+
+ /**
+ * @generated
+ */
+ public static List<ComrelNodeDescriptor> getConditionalUnit_3071SemanticChildren(
+ View view) {
+ if (!view.isSetElement()) {
+ return Collections.emptyList();
+ }
+ ConditionalUnit modelElement = (ConditionalUnit) view.getElement();
+ LinkedList<ComrelNodeDescriptor> result = new LinkedList<ComrelNodeDescriptor>();
+ for (Iterator<?> it = modelElement.getInputPorts().iterator(); it
+ .hasNext();) {
+ InputPort childElement = (InputPort) it.next();
+ int visualID = ComrelVisualIDRegistry.getNodeVisualID(view,
+ childElement);
+ if (visualID == SingleInputPort8EditPart.VISUAL_ID) {
+ result.add(new ComrelNodeDescriptor(childElement, visualID));
+ continue;
+ }
+ if (visualID == MultiInputPort9EditPart.VISUAL_ID) {
+ result.add(new ComrelNodeDescriptor(childElement, visualID));
+ continue;
+ }
+ }
+ return result;
+ }
+
+ /**
+ * @generated
+ */
+ public static List<ComrelNodeDescriptor> getConditionalUnit_3072SemanticChildren(
+ View view) {
+ if (!view.isSetElement()) {
+ return Collections.emptyList();
+ }
+ ConditionalUnit modelElement = (ConditionalUnit) view.getElement();
+ LinkedList<ComrelNodeDescriptor> result = new LinkedList<ComrelNodeDescriptor>();
+ for (Iterator<?> it = modelElement.getInputPorts().iterator(); it
+ .hasNext();) {
+ InputPort childElement = (InputPort) it.next();
+ int visualID = ComrelVisualIDRegistry.getNodeVisualID(view,
+ childElement);
+ if (visualID == SingleInputPort8EditPart.VISUAL_ID) {
+ result.add(new ComrelNodeDescriptor(childElement, visualID));
+ continue;
+ }
+ if (visualID == MultiInputPort9EditPart.VISUAL_ID) {
+ result.add(new ComrelNodeDescriptor(childElement, visualID));
+ continue;
+ }
+ }
+ return result;
+ }
+
+ /**
+ * @generated
+ */
+ public static List<ComrelNodeDescriptor> getSequentialUnit_3073SemanticChildren(
+ View view) {
+ if (!view.isSetElement()) {
+ return Collections.emptyList();
+ }
+ SequentialUnit modelElement = (SequentialUnit) view.getElement();
+ LinkedList<ComrelNodeDescriptor> result = new LinkedList<ComrelNodeDescriptor>();
+ for (Iterator<?> it = modelElement.getInputPorts().iterator(); it
+ .hasNext();) {
+ InputPort childElement = (InputPort) it.next();
+ int visualID = ComrelVisualIDRegistry.getNodeVisualID(view,
+ childElement);
+ if (visualID == SingleInputPort7EditPart.VISUAL_ID) {
+ result.add(new ComrelNodeDescriptor(childElement, visualID));
+ continue;
+ }
+ if (visualID == MultiInputPort8EditPart.VISUAL_ID) {
+ result.add(new ComrelNodeDescriptor(childElement, visualID));
+ continue;
+ }
+ }
+ return result;
+ }
+
+ /**
+ * @generated
+ */
+ public static List<ComrelNodeDescriptor> getAtomicUnit_3074SemanticChildren(
+ View view) {
+ if (!view.isSetElement()) {
+ return Collections.emptyList();
+ }
+ AtomicUnit modelElement = (AtomicUnit) view.getElement();
+ LinkedList<ComrelNodeDescriptor> result = new LinkedList<ComrelNodeDescriptor>();
+ for (Iterator<?> it = modelElement.getInputPorts().iterator(); it
+ .hasNext();) {
+ SingleInputPort childElement = (SingleInputPort) it.next();
+ int visualID = ComrelVisualIDRegistry.getNodeVisualID(view,
+ childElement);
+ if (visualID == SingleInputPort9EditPart.VISUAL_ID) {
+ result.add(new ComrelNodeDescriptor(childElement, visualID));
+ continue;
+ }
+ }
+ return result;
+ }
+
+ /**
+ * @generated
+ */
+ public static List<ComrelNodeDescriptor> getConditionalUnit_3075SemanticChildren(
+ View view) {
+ if (!view.isSetElement()) {
+ return Collections.emptyList();
+ }
+ ConditionalUnit modelElement = (ConditionalUnit) view.getElement();
+ LinkedList<ComrelNodeDescriptor> result = new LinkedList<ComrelNodeDescriptor>();
+ for (Iterator<?> it = modelElement.getInputPorts().iterator(); it
+ .hasNext();) {
+ InputPort childElement = (InputPort) it.next();
+ int visualID = ComrelVisualIDRegistry.getNodeVisualID(view,
+ childElement);
+ if (visualID == SingleInputPort8EditPart.VISUAL_ID) {
+ result.add(new ComrelNodeDescriptor(childElement, visualID));
+ continue;
+ }
+ if (visualID == MultiInputPort9EditPart.VISUAL_ID) {
+ result.add(new ComrelNodeDescriptor(childElement, visualID));
+ continue;
+ }
+ }
+ return result;
+ }
+
+ /**
+ * @generated
+ */
+ public static List<ComrelNodeDescriptor> getAtomicUnit_3077SemanticChildren(
+ View view) {
+ if (!view.isSetElement()) {
+ return Collections.emptyList();
+ }
+ AtomicUnit modelElement = (AtomicUnit) view.getElement();
+ LinkedList<ComrelNodeDescriptor> result = new LinkedList<ComrelNodeDescriptor>();
+ for (Iterator<?> it = modelElement.getInputPorts().iterator(); it
+ .hasNext();) {
+ SingleInputPort childElement = (SingleInputPort) it.next();
+ int visualID = ComrelVisualIDRegistry.getNodeVisualID(view,
+ childElement);
+ if (visualID == SingleInputPort9EditPart.VISUAL_ID) {
+ result.add(new ComrelNodeDescriptor(childElement, visualID));
+ continue;
+ }
+ }
+ return result;
+ }
+
+ /**
+ * @generated
+ */
+ public static List<ComrelNodeDescriptor> getAtomicUnit_3078SemanticChildren(
+ View view) {
+ if (!view.isSetElement()) {
+ return Collections.emptyList();
+ }
+ AtomicUnit modelElement = (AtomicUnit) view.getElement();
+ LinkedList<ComrelNodeDescriptor> result = new LinkedList<ComrelNodeDescriptor>();
+ for (Iterator<?> it = modelElement.getInputPorts().iterator(); it
+ .hasNext();) {
+ SingleInputPort childElement = (SingleInputPort) it.next();
+ int visualID = ComrelVisualIDRegistry.getNodeVisualID(view,
+ childElement);
+ if (visualID == SingleInputPort9EditPart.VISUAL_ID) {
+ result.add(new ComrelNodeDescriptor(childElement, visualID));
+ continue;
+ }
+ }
+ return result;
+ }
+
+ /**
+ * @generated
+ */
+ public static List<ComrelNodeDescriptor> getCartesianQueuedUnitCartesianQueuedUnitHelperUnitsCompartment_7001SemanticChildren(
+ View view) {
+ if (false == view.eContainer() instanceof View) {
+ return Collections.emptyList();
+ }
+ View containerView = (View) view.eContainer();
+ if (!containerView.isSetElement()) {
+ return Collections.emptyList();
+ }
+ CartesianQueuedUnit modelElement = (CartesianQueuedUnit) containerView
+ .getElement();
+ LinkedList<ComrelNodeDescriptor> result = new LinkedList<ComrelNodeDescriptor>();
+ for (Iterator<?> it = modelElement.getHelperUnits().iterator(); it
+ .hasNext();) {
+ HelperUnit childElement = (HelperUnit) it.next();
+ int visualID = ComrelVisualIDRegistry.getNodeVisualID(view,
+ childElement);
+ if (visualID == SingleFeatureUnitEditPart.VISUAL_ID) {
+ result.add(new ComrelNodeDescriptor(childElement, visualID));
+ continue;
+ }
+ if (visualID == MultiFeatureUnitEditPart.VISUAL_ID) {
+ result.add(new ComrelNodeDescriptor(childElement, visualID));
+ continue;
+ }
+ if (visualID == SingleFilterUnitEditPart.VISUAL_ID) {
+ result.add(new ComrelNodeDescriptor(childElement, visualID));
+ continue;
+ }
+ if (visualID == MultiFilterUnitEditPart.VISUAL_ID) {
+ result.add(new ComrelNodeDescriptor(childElement, visualID));
+ continue;
+ }
+ }
+ return result;
+ }
+
+ /**
+ * @generated
+ */
+ public static List<ComrelNodeDescriptor> getCartesianQueuedUnitCartesianQueuedUnitRefactoringUnitCompartment_7002SemanticChildren(
+ View view) {
+ if (false == view.eContainer() instanceof View) {
+ return Collections.emptyList();
+ }
+ View containerView = (View) view.eContainer();
+ if (!containerView.isSetElement()) {
+ return Collections.emptyList();
+ }
+ CartesianQueuedUnit modelElement = (CartesianQueuedUnit) containerView
+ .getElement();
+ LinkedList<ComrelNodeDescriptor> result = new LinkedList<ComrelNodeDescriptor>();
+ {
+ RefactoringUnit childElement = modelElement.getRefactoringUnit();
+ int visualID = ComrelVisualIDRegistry.getNodeVisualID(view,
+ childElement);
+ if (visualID == CartesianQueuedUnit2EditPart.VISUAL_ID) {
+ result.add(new ComrelNodeDescriptor(childElement, visualID));
+ }
+ if (visualID == ParallelQueuedUnit2EditPart.VISUAL_ID) {
+ result.add(new ComrelNodeDescriptor(childElement, visualID));
+ }
+ if (visualID == SingleQueuedUnit2EditPart.VISUAL_ID) {
+ result.add(new ComrelNodeDescriptor(childElement, visualID));
+ }
+ if (visualID == SequentialUnit2EditPart.VISUAL_ID) {
+ result.add(new ComrelNodeDescriptor(childElement, visualID));
+ }
+ if (visualID == ConditionalUnit2EditPart.VISUAL_ID) {
+ result.add(new ComrelNodeDescriptor(childElement, visualID));
+ }
+ if (visualID == AtomicUnit2EditPart.VISUAL_ID) {
+ result.add(new ComrelNodeDescriptor(childElement, visualID));
+ }
+ }
+ return result;
+ }
+
+ /**
+ * @generated
+ */
+ public static List<ComrelNodeDescriptor> getCartesianQueuedUnitCartesianQueuedUnitHelperUnitsCompartment_7003SemanticChildren(
+ View view) {
+ if (false == view.eContainer() instanceof View) {
+ return Collections.emptyList();
+ }
+ View containerView = (View) view.eContainer();
+ if (!containerView.isSetElement()) {
+ return Collections.emptyList();
+ }
+ CartesianQueuedUnit modelElement = (CartesianQueuedUnit) containerView
+ .getElement();
+ LinkedList<ComrelNodeDescriptor> result = new LinkedList<ComrelNodeDescriptor>();
+ for (Iterator<?> it = modelElement.getHelperUnits().iterator(); it
+ .hasNext();) {
+ HelperUnit childElement = (HelperUnit) it.next();
+ int visualID = ComrelVisualIDRegistry.getNodeVisualID(view,
+ childElement);
+ if (visualID == SingleFeatureUnitEditPart.VISUAL_ID) {
+ result.add(new ComrelNodeDescriptor(childElement, visualID));
+ continue;
+ }
+ if (visualID == MultiFeatureUnitEditPart.VISUAL_ID) {
+ result.add(new ComrelNodeDescriptor(childElement, visualID));
+ continue;
+ }
+ if (visualID == SingleFilterUnitEditPart.VISUAL_ID) {
+ result.add(new ComrelNodeDescriptor(childElement, visualID));
+ continue;
+ }
+ if (visualID == MultiFilterUnitEditPart.VISUAL_ID) {
+ result.add(new ComrelNodeDescriptor(childElement, visualID));
+ continue;
+ }
+ }
+ return result;
+ }
+
+ /**
+ * @generated
+ */
+ public static List<ComrelNodeDescriptor> getCartesianQueuedUnitCartesianQueuedUnitRefactoringUnitCompartment_7004SemanticChildren(
+ View view) {
+ if (false == view.eContainer() instanceof View) {
+ return Collections.emptyList();
+ }
+ View containerView = (View) view.eContainer();
+ if (!containerView.isSetElement()) {
+ return Collections.emptyList();
+ }
+ CartesianQueuedUnit modelElement = (CartesianQueuedUnit) containerView
+ .getElement();
+ LinkedList<ComrelNodeDescriptor> result = new LinkedList<ComrelNodeDescriptor>();
+ {
+ RefactoringUnit childElement = modelElement.getRefactoringUnit();
+ int visualID = ComrelVisualIDRegistry.getNodeVisualID(view,
+ childElement);
+ if (visualID == CartesianQueuedUnit2EditPart.VISUAL_ID) {
+ result.add(new ComrelNodeDescriptor(childElement, visualID));
+ }
+ if (visualID == ParallelQueuedUnit2EditPart.VISUAL_ID) {
+ result.add(new ComrelNodeDescriptor(childElement, visualID));
+ }
+ if (visualID == SingleQueuedUnit2EditPart.VISUAL_ID) {
+ result.add(new ComrelNodeDescriptor(childElement, visualID));
+ }
+ if (visualID == SequentialUnit2EditPart.VISUAL_ID) {
+ result.add(new ComrelNodeDescriptor(childElement, visualID));
+ }
+ if (visualID == ConditionalUnit2EditPart.VISUAL_ID) {
+ result.add(new ComrelNodeDescriptor(childElement, visualID));
+ }
+ if (visualID == AtomicUnit2EditPart.VISUAL_ID) {
+ result.add(new ComrelNodeDescriptor(childElement, visualID));
+ }
+ }
+ return result;
+ }
+
+ /**
+ * @generated
+ */
+ public static List<ComrelNodeDescriptor> getParallelQueuedUnitParallelQueuedUnitHelperUnitsCompartment_7005SemanticChildren(
+ View view) {
+ if (false == view.eContainer() instanceof View) {
+ return Collections.emptyList();
+ }
+ View containerView = (View) view.eContainer();
+ if (!containerView.isSetElement()) {
+ return Collections.emptyList();
+ }
+ ParallelQueuedUnit modelElement = (ParallelQueuedUnit) containerView
+ .getElement();
+ LinkedList<ComrelNodeDescriptor> result = new LinkedList<ComrelNodeDescriptor>();
+ for (Iterator<?> it = modelElement.getHelperUnits().iterator(); it
+ .hasNext();) {
+ HelperUnit childElement = (HelperUnit) it.next();
+ int visualID = ComrelVisualIDRegistry.getNodeVisualID(view,
+ childElement);
+ if (visualID == SingleFeatureUnit2EditPart.VISUAL_ID) {
+ result.add(new ComrelNodeDescriptor(childElement, visualID));
+ continue;
+ }
+ if (visualID == MultiFeatureUnit2EditPart.VISUAL_ID) {
+ result.add(new ComrelNodeDescriptor(childElement, visualID));
+ continue;
+ }
+ if (visualID == SingleFilterUnit2EditPart.VISUAL_ID) {
+ result.add(new ComrelNodeDescriptor(childElement, visualID));
+ continue;
+ }
+ if (visualID == MultiFilterUnit2EditPart.VISUAL_ID) {
+ result.add(new ComrelNodeDescriptor(childElement, visualID));
+ continue;
+ }
+ }
+ return result;
+ }
+
+ /**
+ * @generated
+ */
+ public static List<ComrelNodeDescriptor> getParallelQueuedUnitParallelQueuedUnitRefactoringUnitsCompartment_7006SemanticChildren(
+ View view) {
+ if (false == view.eContainer() instanceof View) {
+ return Collections.emptyList();
+ }
+ View containerView = (View) view.eContainer();
+ if (!containerView.isSetElement()) {
+ return Collections.emptyList();
+ }
+ ParallelQueuedUnit modelElement = (ParallelQueuedUnit) containerView
+ .getElement();
+ LinkedList<ComrelNodeDescriptor> result = new LinkedList<ComrelNodeDescriptor>();
+ {
+ RefactoringUnit childElement = modelElement.getRefactoringUnits();
+ int visualID = ComrelVisualIDRegistry.getNodeVisualID(view,
+ childElement);
+ if (visualID == CartesianQueuedUnit3EditPart.VISUAL_ID) {
+ result.add(new ComrelNodeDescriptor(childElement, visualID));
+ }
+ if (visualID == ParallelQueuedUnit4EditPart.VISUAL_ID) {
+ result.add(new ComrelNodeDescriptor(childElement, visualID));
+ }
+ if (visualID == SingleQueuedUnit3EditPart.VISUAL_ID) {
+ result.add(new ComrelNodeDescriptor(childElement, visualID));
+ }
+ if (visualID == SequentialUnit3EditPart.VISUAL_ID) {
+ result.add(new ComrelNodeDescriptor(childElement, visualID));
+ }
+ if (visualID == ConditionalUnit3EditPart.VISUAL_ID) {
+ result.add(new ComrelNodeDescriptor(childElement, visualID));
+ }
+ if (visualID == AtomicUnit3EditPart.VISUAL_ID) {
+ result.add(new ComrelNodeDescriptor(childElement, visualID));
+ }
+ }
+ return result;
+ }
+
+ /**
+ * @generated
+ */
+ public static List<ComrelNodeDescriptor> getCartesianQueuedUnitCartesianQueuedUnitHelperUnitsCompartment_7007SemanticChildren(
+ View view) {
+ if (false == view.eContainer() instanceof View) {
+ return Collections.emptyList();
+ }
+ View containerView = (View) view.eContainer();
+ if (!containerView.isSetElement()) {
+ return Collections.emptyList();
+ }
+ CartesianQueuedUnit modelElement = (CartesianQueuedUnit) containerView
+ .getElement();
+ LinkedList<ComrelNodeDescriptor> result = new LinkedList<ComrelNodeDescriptor>();
+ for (Iterator<?> it = modelElement.getHelperUnits().iterator(); it
+ .hasNext();) {
+ HelperUnit childElement = (HelperUnit) it.next();
+ int visualID = ComrelVisualIDRegistry.getNodeVisualID(view,
+ childElement);
+ if (visualID == SingleFeatureUnitEditPart.VISUAL_ID) {
+ result.add(new ComrelNodeDescriptor(childElement, visualID));
+ continue;
+ }
+ if (visualID == MultiFeatureUnitEditPart.VISUAL_ID) {
+ result.add(new ComrelNodeDescriptor(childElement, visualID));
+ continue;
+ }
+ if (visualID == SingleFilterUnitEditPart.VISUAL_ID) {
+ result.add(new ComrelNodeDescriptor(childElement, visualID));
+ continue;
+ }
+ if (visualID == MultiFilterUnitEditPart.VISUAL_ID) {
+ result.add(new ComrelNodeDescriptor(childElement, visualID));
+ continue;
+ }
+ }
+ return result;
+ }
+
+ /**
+ * @generated
+ */
+ public static List<ComrelNodeDescriptor> getCartesianQueuedUnitCartesianQueuedUnitRefactoringUnitCompartment_7008SemanticChildren(
+ View view) {
+ if (false == view.eContainer() instanceof View) {
+ return Collections.emptyList();
+ }
+ View containerView = (View) view.eContainer();
+ if (!containerView.isSetElement()) {
+ return Collections.emptyList();
+ }
+ CartesianQueuedUnit modelElement = (CartesianQueuedUnit) containerView
+ .getElement();
+ LinkedList<ComrelNodeDescriptor> result = new LinkedList<ComrelNodeDescriptor>();
+ {
+ RefactoringUnit childElement = modelElement.getRefactoringUnit();
+ int visualID = ComrelVisualIDRegistry.getNodeVisualID(view,
+ childElement);
+ if (visualID == CartesianQueuedUnit2EditPart.VISUAL_ID) {
+ result.add(new ComrelNodeDescriptor(childElement, visualID));
+ }
+ if (visualID == ParallelQueuedUnit2EditPart.VISUAL_ID) {
+ result.add(new ComrelNodeDescriptor(childElement, visualID));
+ }
+ if (visualID == SingleQueuedUnit2EditPart.VISUAL_ID) {
+ result.add(new ComrelNodeDescriptor(childElement, visualID));
+ }
+ if (visualID == SequentialUnit2EditPart.VISUAL_ID) {
+ result.add(new ComrelNodeDescriptor(childElement, visualID));
+ }
+ if (visualID == ConditionalUnit2EditPart.VISUAL_ID) {
+ result.add(new ComrelNodeDescriptor(childElement, visualID));
+ }
+ if (visualID == AtomicUnit2EditPart.VISUAL_ID) {
+ result.add(new ComrelNodeDescriptor(childElement, visualID));
+ }
+ }
+ return result;
+ }
+
+ /**
+ * @generated
+ */
+ public static List<ComrelNodeDescriptor> getSingleQueuedUnitSingleQueuedUnitHelperUnitsCompartment_7009SemanticChildren(
+ View view) {
+ if (false == view.eContainer() instanceof View) {
+ return Collections.emptyList();
+ }
+ View containerView = (View) view.eContainer();
+ if (!containerView.isSetElement()) {
+ return Collections.emptyList();
+ }
+ SingleQueuedUnit modelElement = (SingleQueuedUnit) containerView
+ .getElement();
+ LinkedList<ComrelNodeDescriptor> result = new LinkedList<ComrelNodeDescriptor>();
+ for (Iterator<?> it = modelElement.getHelperUnits().iterator(); it
+ .hasNext();) {
+ HelperUnit childElement = (HelperUnit) it.next();
+ int visualID = ComrelVisualIDRegistry.getNodeVisualID(view,
+ childElement);
+ if (visualID == SingleFeatureUnit4EditPart.VISUAL_ID) {
+ result.add(new ComrelNodeDescriptor(childElement, visualID));
+ continue;
+ }
+ if (visualID == MultiFeatureUnit4EditPart.VISUAL_ID) {
+ result.add(new ComrelNodeDescriptor(childElement, visualID));
+ continue;
+ }
+ if (visualID == SingleFilterUnit4EditPart.VISUAL_ID) {
+ result.add(new ComrelNodeDescriptor(childElement, visualID));
+ continue;
+ }
+ if (visualID == MultiFilterUnit4EditPart.VISUAL_ID) {
+ result.add(new ComrelNodeDescriptor(childElement, visualID));
+ continue;
+ }
+ }
+ return result;
+ }
+
+ /**
+ * @generated
+ */
+ public static List<ComrelNodeDescriptor> getSingleQueuedUnitSingleQueuedUnitRefactoringUnitCompartment_7010SemanticChildren(
+ View view) {
+ if (false == view.eContainer() instanceof View) {
+ return Collections.emptyList();
+ }
+ View containerView = (View) view.eContainer();
+ if (!containerView.isSetElement()) {
+ return Collections.emptyList();
+ }
+ SingleQueuedUnit modelElement = (SingleQueuedUnit) containerView
+ .getElement();
+ LinkedList<ComrelNodeDescriptor> result = new LinkedList<ComrelNodeDescriptor>();
+ {
+ RefactoringUnit childElement = modelElement.getRefactoringUnit();
+ int visualID = ComrelVisualIDRegistry.getNodeVisualID(view,
+ childElement);
+ if (visualID == CartesianQueuedUnit4EditPart.VISUAL_ID) {
+ result.add(new ComrelNodeDescriptor(childElement, visualID));
+ }
+ if (visualID == ParallelQueuedUnit5EditPart.VISUAL_ID) {
+ result.add(new ComrelNodeDescriptor(childElement, visualID));
+ }
+ if (visualID == SingleQueuedUnit5EditPart.VISUAL_ID) {
+ result.add(new ComrelNodeDescriptor(childElement, visualID));
+ }
+ if (visualID == SequentialUnit4EditPart.VISUAL_ID) {
+ result.add(new ComrelNodeDescriptor(childElement, visualID));
+ }
+ if (visualID == ConditionalUnit4EditPart.VISUAL_ID) {
+ result.add(new ComrelNodeDescriptor(childElement, visualID));
+ }
+ if (visualID == AtomicUnit4EditPart.VISUAL_ID) {
+ result.add(new ComrelNodeDescriptor(childElement, visualID));
+ }
+ }
+ return result;
+ }
+
+ /**
+ * @generated
+ */
+ public static List<ComrelNodeDescriptor> getCartesianQueuedUnitCartesianQueuedUnitHelperUnitsCompartment_7011SemanticChildren(
+ View view) {
+ if (false == view.eContainer() instanceof View) {
+ return Collections.emptyList();
+ }
+ View containerView = (View) view.eContainer();
+ if (!containerView.isSetElement()) {
+ return Collections.emptyList();
+ }
+ CartesianQueuedUnit modelElement = (CartesianQueuedUnit) containerView
+ .getElement();
+ LinkedList<ComrelNodeDescriptor> result = new LinkedList<ComrelNodeDescriptor>();
+ for (Iterator<?> it = modelElement.getHelperUnits().iterator(); it
+ .hasNext();) {
+ HelperUnit childElement = (HelperUnit) it.next();
+ int visualID = ComrelVisualIDRegistry.getNodeVisualID(view,
+ childElement);
+ if (visualID == SingleFeatureUnitEditPart.VISUAL_ID) {
+ result.add(new ComrelNodeDescriptor(childElement, visualID));
+ continue;
+ }
+ if (visualID == MultiFeatureUnitEditPart.VISUAL_ID) {
+ result.add(new ComrelNodeDescriptor(childElement, visualID));
+ continue;
+ }
+ if (visualID == SingleFilterUnitEditPart.VISUAL_ID) {
+ result.add(new ComrelNodeDescriptor(childElement, visualID));
+ continue;
+ }
+ if (visualID == MultiFilterUnitEditPart.VISUAL_ID) {
+ result.add(new ComrelNodeDescriptor(childElement, visualID));
+ continue;
+ }
+ }
+ return result;
+ }
+
+ /**
+ * @generated
+ */
+ public static List<ComrelNodeDescriptor> getCartesianQueuedUnitCartesianQueuedUnitRefactoringUnitCompartment_7012SemanticChildren(
+ View view) {
+ if (false == view.eContainer() instanceof View) {
+ return Collections.emptyList();
+ }
+ View containerView = (View) view.eContainer();
+ if (!containerView.isSetElement()) {
+ return Collections.emptyList();
+ }
+ CartesianQueuedUnit modelElement = (CartesianQueuedUnit) containerView
+ .getElement();
+ LinkedList<ComrelNodeDescriptor> result = new LinkedList<ComrelNodeDescriptor>();
+ {
+ RefactoringUnit childElement = modelElement.getRefactoringUnit();
+ int visualID = ComrelVisualIDRegistry.getNodeVisualID(view,
+ childElement);
+ if (visualID == CartesianQueuedUnit2EditPart.VISUAL_ID) {
+ result.add(new ComrelNodeDescriptor(childElement, visualID));
+ }
+ if (visualID == ParallelQueuedUnit2EditPart.VISUAL_ID) {
+ result.add(new ComrelNodeDescriptor(childElement, visualID));
+ }
+ if (visualID == SingleQueuedUnit2EditPart.VISUAL_ID) {
+ result.add(new ComrelNodeDescriptor(childElement, visualID));
+ }
+ if (visualID == SequentialUnit2EditPart.VISUAL_ID) {
+ result.add(new ComrelNodeDescriptor(childElement, visualID));
+ }
+ if (visualID == ConditionalUnit2EditPart.VISUAL_ID) {
+ result.add(new ComrelNodeDescriptor(childElement, visualID));
+ }
+ if (visualID == AtomicUnit2EditPart.VISUAL_ID) {
+ result.add(new ComrelNodeDescriptor(childElement, visualID));
+ }
+ }
+ return result;
+ }
+
+ /**
+ * @generated
+ */
+ public static List<ComrelNodeDescriptor> getSequentialUnitSequentialUnitHelperUnitsCompartment_7013SemanticChildren(
+ View view) {
+ if (false == view.eContainer() instanceof View) {
+ return Collections.emptyList();
+ }
+ View containerView = (View) view.eContainer();
+ if (!containerView.isSetElement()) {
+ return Collections.emptyList();
+ }
+ SequentialUnit modelElement = (SequentialUnit) containerView
+ .getElement();
+ LinkedList<ComrelNodeDescriptor> result = new LinkedList<ComrelNodeDescriptor>();
+ for (Iterator<?> it = modelElement.getHelperUnits().iterator(); it
+ .hasNext();) {
+ HelperUnit childElement = (HelperUnit) it.next();
+ int visualID = ComrelVisualIDRegistry.getNodeVisualID(view,
+ childElement);
+ if (visualID == SingleFeatureUnit5EditPart.VISUAL_ID) {
+ result.add(new ComrelNodeDescriptor(childElement, visualID));
+ continue;
+ }
+ if (visualID == MultiFeatureUnit5EditPart.VISUAL_ID) {
+ result.add(new ComrelNodeDescriptor(childElement, visualID));
+ continue;
+ }
+ if (visualID == SingleFilterUnit5EditPart.VISUAL_ID) {
+ result.add(new ComrelNodeDescriptor(childElement, visualID));
+ continue;
+ }
+ if (visualID == MultiFilterUnit5EditPart.VISUAL_ID) {
+ result.add(new ComrelNodeDescriptor(childElement, visualID));
+ continue;
+ }
+ }
+ return result;
+ }
+
+ /**
+ * @generated
+ */
+ public static List<ComrelNodeDescriptor> getSequentialUnitSequentialUnitRefactoringUnitsCompartment_7014SemanticChildren(
+ View view) {
+ if (false == view.eContainer() instanceof View) {
+ return Collections.emptyList();
+ }
+ View containerView = (View) view.eContainer();
+ if (!containerView.isSetElement()) {
+ return Collections.emptyList();
+ }
+ SequentialUnit modelElement = (SequentialUnit) containerView
+ .getElement();
+ LinkedList<ComrelNodeDescriptor> result = new LinkedList<ComrelNodeDescriptor>();
+ for (Iterator<?> it = modelElement.getRefactoringUnits().iterator(); it
+ .hasNext();) {
+ RefactoringUnit childElement = (RefactoringUnit) it.next();
+ int visualID = ComrelVisualIDRegistry.getNodeVisualID(view,
+ childElement);
+ if (visualID == CartesianQueuedUnit5EditPart.VISUAL_ID) {
+ result.add(new ComrelNodeDescriptor(childElement, visualID));
+ continue;
+ }
+ if (visualID == ParallelQueuedUnit6EditPart.VISUAL_ID) {
+ result.add(new ComrelNodeDescriptor(childElement, visualID));
+ continue;
+ }
+ if (visualID == SingleQueuedUnit6EditPart.VISUAL_ID) {
+ result.add(new ComrelNodeDescriptor(childElement, visualID));
+ continue;
+ }
+ if (visualID == SequentialUnit6EditPart.VISUAL_ID) {
+ result.add(new ComrelNodeDescriptor(childElement, visualID));
+ continue;
+ }
+ if (visualID == ConditionalUnit5EditPart.VISUAL_ID) {
+ result.add(new ComrelNodeDescriptor(childElement, visualID));
+ continue;
+ }
+ if (visualID == AtomicUnit5EditPart.VISUAL_ID) {
+ result.add(new ComrelNodeDescriptor(childElement, visualID));
+ continue;
+ }
+ }
+ return result;
+ }
+
+ /**
+ * @generated
+ */
+ public static List<ComrelNodeDescriptor> getCartesianQueuedUnitCartesianQueuedUnitHelperUnitsCompartment_7015SemanticChildren(
+ View view) {
+ if (false == view.eContainer() instanceof View) {
+ return Collections.emptyList();
+ }
+ View containerView = (View) view.eContainer();
+ if (!containerView.isSetElement()) {
+ return Collections.emptyList();
+ }
+ CartesianQueuedUnit modelElement = (CartesianQueuedUnit) containerView
+ .getElement();
+ LinkedList<ComrelNodeDescriptor> result = new LinkedList<ComrelNodeDescriptor>();
+ for (Iterator<?> it = modelElement.getHelperUnits().iterator(); it
+ .hasNext();) {
+ HelperUnit childElement = (HelperUnit) it.next();
+ int visualID = ComrelVisualIDRegistry.getNodeVisualID(view,
+ childElement);
+ if (visualID == SingleFeatureUnitEditPart.VISUAL_ID) {
+ result.add(new ComrelNodeDescriptor(childElement, visualID));
+ continue;
+ }
+ if (visualID == MultiFeatureUnitEditPart.VISUAL_ID) {
+ result.add(new ComrelNodeDescriptor(childElement, visualID));
+ continue;
+ }
+ if (visualID == SingleFilterUnitEditPart.VISUAL_ID) {
+ result.add(new ComrelNodeDescriptor(childElement, visualID));
+ continue;
+ }
+ if (visualID == MultiFilterUnitEditPart.VISUAL_ID) {
+ result.add(new ComrelNodeDescriptor(childElement, visualID));
+ continue;
+ }
+ }
+ return result;
+ }
+
+ /**
+ * @generated
+ */
+ public static List<ComrelNodeDescriptor> getCartesianQueuedUnitCartesianQueuedUnitRefactoringUnitCompartment_7016SemanticChildren(
+ View view) {
+ if (false == view.eContainer() instanceof View) {
+ return Collections.emptyList();
+ }
+ View containerView = (View) view.eContainer();
+ if (!containerView.isSetElement()) {
+ return Collections.emptyList();
+ }
+ CartesianQueuedUnit modelElement = (CartesianQueuedUnit) containerView
+ .getElement();
+ LinkedList<ComrelNodeDescriptor> result = new LinkedList<ComrelNodeDescriptor>();
+ {
+ RefactoringUnit childElement = modelElement.getRefactoringUnit();
+ int visualID = ComrelVisualIDRegistry.getNodeVisualID(view,
+ childElement);
+ if (visualID == CartesianQueuedUnit2EditPart.VISUAL_ID) {
+ result.add(new ComrelNodeDescriptor(childElement, visualID));
+ }
+ if (visualID == ParallelQueuedUnit2EditPart.VISUAL_ID) {
+ result.add(new ComrelNodeDescriptor(childElement, visualID));
+ }
+ if (visualID == SingleQueuedUnit2EditPart.VISUAL_ID) {
+ result.add(new ComrelNodeDescriptor(childElement, visualID));
+ }
+ if (visualID == SequentialUnit2EditPart.VISUAL_ID) {
+ result.add(new ComrelNodeDescriptor(childElement, visualID));
+ }
+ if (visualID == ConditionalUnit2EditPart.VISUAL_ID) {
+ result.add(new ComrelNodeDescriptor(childElement, visualID));
+ }
+ if (visualID == AtomicUnit2EditPart.VISUAL_ID) {
+ result.add(new ComrelNodeDescriptor(childElement, visualID));
+ }
+ }
+ return result;
+ }
+
+ /**
+ * @generated
+ */
+ public static List<ComrelNodeDescriptor> getConditionalUnitConditionalUnitIfCompartment_7017SemanticChildren(
+ View view) {
+ if (false == view.eContainer() instanceof View) {
+ return Collections.emptyList();
+ }
+ View containerView = (View) view.eContainer();
+ if (!containerView.isSetElement()) {
+ return Collections.emptyList();
+ }
+ ConditionalUnit modelElement = (ConditionalUnit) containerView
+ .getElement();
+ LinkedList<ComrelNodeDescriptor> result = new LinkedList<ComrelNodeDescriptor>();
+ {
+ ConditionCheck childElement = modelElement.getIf();
+ int visualID = ComrelVisualIDRegistry.getNodeVisualID(view,
+ childElement);
+ if (visualID == ConditionCheckEditPart.VISUAL_ID) {
+ result.add(new ComrelNodeDescriptor(childElement, visualID));
+ }
+ }
+ return result;
+ }
+
+ /**
+ * @generated
+ */
+ public static List<ComrelNodeDescriptor> getConditionalUnitConditionalUnitHelperUnitsCompartment_7018SemanticChildren(
+ View view) {
+ if (false == view.eContainer() instanceof View) {
+ return Collections.emptyList();
+ }
+ View containerView = (View) view.eContainer();
+ if (!containerView.isSetElement()) {
+ return Collections.emptyList();
+ }
+ ConditionalUnit modelElement = (ConditionalUnit) containerView
+ .getElement();
+ LinkedList<ComrelNodeDescriptor> result = new LinkedList<ComrelNodeDescriptor>();
+ for (Iterator<?> it = modelElement.getHelperUnits().iterator(); it
+ .hasNext();) {
+ HelperUnit childElement = (HelperUnit) it.next();
+ int visualID = ComrelVisualIDRegistry.getNodeVisualID(view,
+ childElement);
+ if (visualID == SingleFeatureUnit3EditPart.VISUAL_ID) {
+ result.add(new ComrelNodeDescriptor(childElement, visualID));
+ continue;
+ }
+ if (visualID == MultiFeatureUnit3EditPart.VISUAL_ID) {
+ result.add(new ComrelNodeDescriptor(childElement, visualID));
+ continue;
+ }
+ if (visualID == SingleFilterUnit3EditPart.VISUAL_ID) {
+ result.add(new ComrelNodeDescriptor(childElement, visualID));
+ continue;
+ }
+ if (visualID == MultiFilterUnit3EditPart.VISUAL_ID) {
+ result.add(new ComrelNodeDescriptor(childElement, visualID));
+ continue;
+ }
+ }
+ return result;
+ }
+
+ /**
+ * @generated
+ */
+ public static List<ComrelNodeDescriptor> getConditionalUnitConditionalUnitThenCompartment_7019SemanticChildren(
+ View view) {
+ if (false == view.eContainer() instanceof View) {
+ return Collections.emptyList();
+ }
+ View containerView = (View) view.eContainer();
+ if (!containerView.isSetElement()) {
+ return Collections.emptyList();
+ }
+ ConditionalUnit modelElement = (ConditionalUnit) containerView
+ .getElement();
+ LinkedList<ComrelNodeDescriptor> result = new LinkedList<ComrelNodeDescriptor>();
+ {
+ RefactoringUnit childElement = modelElement.getThen();
+ int visualID = ComrelVisualIDRegistry.getNodeVisualID(view,
+ childElement);
+ if (visualID == CartesianQueuedUnit6EditPart.VISUAL_ID) {
+ result.add(new ComrelNodeDescriptor(childElement, visualID));
+ }
+ if (visualID == ParallelQueuedUnit3EditPart.VISUAL_ID) {
+ result.add(new ComrelNodeDescriptor(childElement, visualID));
+ }
+ if (visualID == SingleQueuedUnit4EditPart.VISUAL_ID) {
+ result.add(new ComrelNodeDescriptor(childElement, visualID));
+ }
+ if (visualID == SequentialUnit5EditPart.VISUAL_ID) {
+ result.add(new ComrelNodeDescriptor(childElement, visualID));
+ }
+ if (visualID == ConditionalUnit6EditPart.VISUAL_ID) {
+ result.add(new ComrelNodeDescriptor(childElement, visualID));
+ }
+ if (visualID == AtomicUnit6EditPart.VISUAL_ID) {
+ result.add(new ComrelNodeDescriptor(childElement, visualID));
+ }
+ }
+ return result;
+ }
+
+ /**
+ * @generated
+ */
+ public static List<ComrelNodeDescriptor> getConditionalUnitConditionalUnitElseCompartment_7020SemanticChildren(
+ View view) {
+ if (false == view.eContainer() instanceof View) {
+ return Collections.emptyList();
+ }
+ View containerView = (View) view.eContainer();
+ if (!containerView.isSetElement()) {
+ return Collections.emptyList();
+ }
+ ConditionalUnit modelElement = (ConditionalUnit) containerView
+ .getElement();
+ LinkedList<ComrelNodeDescriptor> result = new LinkedList<ComrelNodeDescriptor>();
+ {
+ RefactoringUnit childElement = modelElement.getElse();
+ int visualID = ComrelVisualIDRegistry.getNodeVisualID(view,
+ childElement);
+ if (visualID == CartesianQueuedUnit7EditPart.VISUAL_ID) {
+ result.add(new ComrelNodeDescriptor(childElement, visualID));
+ }
+ if (visualID == ParallelQueuedUnit7EditPart.VISUAL_ID) {
+ result.add(new ComrelNodeDescriptor(childElement, visualID));
+ }
+ if (visualID == SingleQueuedUnit7EditPart.VISUAL_ID) {
+ result.add(new ComrelNodeDescriptor(childElement, visualID));
+ }
+ if (visualID == SequentialUnit7EditPart.VISUAL_ID) {
+ result.add(new ComrelNodeDescriptor(childElement, visualID));
+ }
+ if (visualID == ConditionalUnit7EditPart.VISUAL_ID) {
+ result.add(new ComrelNodeDescriptor(childElement, visualID));
+ }
+ if (visualID == AtomicUnit7EditPart.VISUAL_ID) {
+ result.add(new ComrelNodeDescriptor(childElement, visualID));
+ }
+ }
+ return result;
+ }
+
+ /**
+ * @generated
+ */
+ public static List<ComrelNodeDescriptor> getCartesianQueuedUnitCartesianQueuedUnitHelperUnitsCompartment_7021SemanticChildren(
+ View view) {
+ if (false == view.eContainer() instanceof View) {
+ return Collections.emptyList();
+ }
+ View containerView = (View) view.eContainer();
+ if (!containerView.isSetElement()) {
+ return Collections.emptyList();
+ }
+ CartesianQueuedUnit modelElement = (CartesianQueuedUnit) containerView
+ .getElement();
+ LinkedList<ComrelNodeDescriptor> result = new LinkedList<ComrelNodeDescriptor>();
+ for (Iterator<?> it = modelElement.getHelperUnits().iterator(); it
+ .hasNext();) {
+ HelperUnit childElement = (HelperUnit) it.next();
+ int visualID = ComrelVisualIDRegistry.getNodeVisualID(view,
+ childElement);
+ if (visualID == SingleFeatureUnitEditPart.VISUAL_ID) {
+ result.add(new ComrelNodeDescriptor(childElement, visualID));
+ continue;
+ }
+ if (visualID == MultiFeatureUnitEditPart.VISUAL_ID) {
+ result.add(new ComrelNodeDescriptor(childElement, visualID));
+ continue;
+ }
+ if (visualID == SingleFilterUnitEditPart.VISUAL_ID) {
+ result.add(new ComrelNodeDescriptor(childElement, visualID));
+ continue;
+ }
+ if (visualID == MultiFilterUnitEditPart.VISUAL_ID) {
+ result.add(new ComrelNodeDescriptor(childElement, visualID));
+ continue;
+ }
+ }
+ return result;
+ }
+
+ /**
+ * @generated
+ */
+ public static List<ComrelNodeDescriptor> getCartesianQueuedUnitCartesianQueuedUnitRefactoringUnitCompartment_7022SemanticChildren(
+ View view) {
+ if (false == view.eContainer() instanceof View) {
+ return Collections.emptyList();
+ }
+ View containerView = (View) view.eContainer();
+ if (!containerView.isSetElement()) {
+ return Collections.emptyList();
+ }
+ CartesianQueuedUnit modelElement = (CartesianQueuedUnit) containerView
+ .getElement();
+ LinkedList<ComrelNodeDescriptor> result = new LinkedList<ComrelNodeDescriptor>();
+ {
+ RefactoringUnit childElement = modelElement.getRefactoringUnit();
+ int visualID = ComrelVisualIDRegistry.getNodeVisualID(view,
+ childElement);
+ if (visualID == CartesianQueuedUnit2EditPart.VISUAL_ID) {
+ result.add(new ComrelNodeDescriptor(childElement, visualID));
+ }
+ if (visualID == ParallelQueuedUnit2EditPart.VISUAL_ID) {
+ result.add(new ComrelNodeDescriptor(childElement, visualID));
+ }
+ if (visualID == SingleQueuedUnit2EditPart.VISUAL_ID) {
+ result.add(new ComrelNodeDescriptor(childElement, visualID));
+ }
+ if (visualID == SequentialUnit2EditPart.VISUAL_ID) {
+ result.add(new ComrelNodeDescriptor(childElement, visualID));
+ }
+ if (visualID == ConditionalUnit2EditPart.VISUAL_ID) {
+ result.add(new ComrelNodeDescriptor(childElement, visualID));
+ }
+ if (visualID == AtomicUnit2EditPart.VISUAL_ID) {
+ result.add(new ComrelNodeDescriptor(childElement, visualID));
+ }
+ }
+ return result;
+ }
+
+ /**
+ * @generated
+ */
+ public static List<ComrelNodeDescriptor> getParallelQueuedUnitParallelQueuedUnitHelperUnitsCompartment_7023SemanticChildren(
+ View view) {
+ if (false == view.eContainer() instanceof View) {
+ return Collections.emptyList();
+ }
+ View containerView = (View) view.eContainer();
+ if (!containerView.isSetElement()) {
+ return Collections.emptyList();
+ }
+ ParallelQueuedUnit modelElement = (ParallelQueuedUnit) containerView
+ .getElement();
+ LinkedList<ComrelNodeDescriptor> result = new LinkedList<ComrelNodeDescriptor>();
+ for (Iterator<?> it = modelElement.getHelperUnits().iterator(); it
+ .hasNext();) {
+ HelperUnit childElement = (HelperUnit) it.next();
+ int visualID = ComrelVisualIDRegistry.getNodeVisualID(view,
+ childElement);
+ if (visualID == SingleFeatureUnit2EditPart.VISUAL_ID) {
+ result.add(new ComrelNodeDescriptor(childElement, visualID));
+ continue;
+ }
+ if (visualID == MultiFeatureUnit2EditPart.VISUAL_ID) {
+ result.add(new ComrelNodeDescriptor(childElement, visualID));
+ continue;
+ }
+ if (visualID == SingleFilterUnit2EditPart.VISUAL_ID) {
+ result.add(new ComrelNodeDescriptor(childElement, visualID));
+ continue;
+ }
+ if (visualID == MultiFilterUnit2EditPart.VISUAL_ID) {
+ result.add(new ComrelNodeDescriptor(childElement, visualID));
+ continue;
+ }
+ }
+ return result;
+ }
+
+ /**
+ * @generated
+ */
+ public static List<ComrelNodeDescriptor> getParallelQueuedUnitParallelQueuedUnitRefactoringUnitsCompartment_7024SemanticChildren(
+ View view) {
+ if (false == view.eContainer() instanceof View) {
+ return Collections.emptyList();
+ }
+ View containerView = (View) view.eContainer();
+ if (!containerView.isSetElement()) {
+ return Collections.emptyList();
+ }
+ ParallelQueuedUnit modelElement = (ParallelQueuedUnit) containerView
+ .getElement();
+ LinkedList<ComrelNodeDescriptor> result = new LinkedList<ComrelNodeDescriptor>();
+ {
+ RefactoringUnit childElement = modelElement.getRefactoringUnits();
+ int visualID = ComrelVisualIDRegistry.getNodeVisualID(view,
+ childElement);
+ if (visualID == CartesianQueuedUnit3EditPart.VISUAL_ID) {
+ result.add(new ComrelNodeDescriptor(childElement, visualID));
+ }
+ if (visualID == ParallelQueuedUnit4EditPart.VISUAL_ID) {
+ result.add(new ComrelNodeDescriptor(childElement, visualID));
+ }
+ if (visualID == SingleQueuedUnit3EditPart.VISUAL_ID) {
+ result.add(new ComrelNodeDescriptor(childElement, visualID));
+ }
+ if (visualID == SequentialUnit3EditPart.VISUAL_ID) {
+ result.add(new ComrelNodeDescriptor(childElement, visualID));
+ }
+ if (visualID == ConditionalUnit3EditPart.VISUAL_ID) {
+ result.add(new ComrelNodeDescriptor(childElement, visualID));
+ }
+ if (visualID == AtomicUnit3EditPart.VISUAL_ID) {
+ result.add(new ComrelNodeDescriptor(childElement, visualID));
+ }
+ }
+ return result;
+ }
+
+ /**
+ * @generated
+ */
+ public static List<ComrelNodeDescriptor> getParallelQueuedUnitParallelQueuedUnitHelperUnitsCompartment_7025SemanticChildren(
+ View view) {
+ if (false == view.eContainer() instanceof View) {
+ return Collections.emptyList();
+ }
+ View containerView = (View) view.eContainer();
+ if (!containerView.isSetElement()) {
+ return Collections.emptyList();
+ }
+ ParallelQueuedUnit modelElement = (ParallelQueuedUnit) containerView
+ .getElement();
+ LinkedList<ComrelNodeDescriptor> result = new LinkedList<ComrelNodeDescriptor>();
+ for (Iterator<?> it = modelElement.getHelperUnits().iterator(); it
+ .hasNext();) {
+ HelperUnit childElement = (HelperUnit) it.next();
+ int visualID = ComrelVisualIDRegistry.getNodeVisualID(view,
+ childElement);
+ if (visualID == SingleFeatureUnit2EditPart.VISUAL_ID) {
+ result.add(new ComrelNodeDescriptor(childElement, visualID));
+ continue;
+ }
+ if (visualID == MultiFeatureUnit2EditPart.VISUAL_ID) {
+ result.add(new ComrelNodeDescriptor(childElement, visualID));
+ continue;
+ }
+ if (visualID == SingleFilterUnit2EditPart.VISUAL_ID) {
+ result.add(new ComrelNodeDescriptor(childElement, visualID));
+ continue;
+ }
+ if (visualID == MultiFilterUnit2EditPart.VISUAL_ID) {
+ result.add(new ComrelNodeDescriptor(childElement, visualID));
+ continue;
+ }
+ }
+ return result;
+ }
+
+ /**
+ * @generated
+ */
+ public static List<ComrelNodeDescriptor> getParallelQueuedUnitParallelQueuedUnitRefactoringUnitsCompartment_7026SemanticChildren(
+ View view) {
+ if (false == view.eContainer() instanceof View) {
+ return Collections.emptyList();
+ }
+ View containerView = (View) view.eContainer();
+ if (!containerView.isSetElement()) {
+ return Collections.emptyList();
+ }
+ ParallelQueuedUnit modelElement = (ParallelQueuedUnit) containerView
+ .getElement();
+ LinkedList<ComrelNodeDescriptor> result = new LinkedList<ComrelNodeDescriptor>();
+ {
+ RefactoringUnit childElement = modelElement.getRefactoringUnits();
+ int visualID = ComrelVisualIDRegistry.getNodeVisualID(view,
+ childElement);
+ if (visualID == CartesianQueuedUnit3EditPart.VISUAL_ID) {
+ result.add(new ComrelNodeDescriptor(childElement, visualID));
+ }
+ if (visualID == ParallelQueuedUnit4EditPart.VISUAL_ID) {
+ result.add(new ComrelNodeDescriptor(childElement, visualID));
+ }
+ if (visualID == SingleQueuedUnit3EditPart.VISUAL_ID) {
+ result.add(new ComrelNodeDescriptor(childElement, visualID));
+ }
+ if (visualID == SequentialUnit3EditPart.VISUAL_ID) {
+ result.add(new ComrelNodeDescriptor(childElement, visualID));
+ }
+ if (visualID == ConditionalUnit3EditPart.VISUAL_ID) {
+ result.add(new ComrelNodeDescriptor(childElement, visualID));
+ }
+ if (visualID == AtomicUnit3EditPart.VISUAL_ID) {
+ result.add(new ComrelNodeDescriptor(childElement, visualID));
+ }
+ }
+ return result;
+ }
+
+ /**
+ * @generated
+ */
+ public static List<ComrelNodeDescriptor> getSingleQueuedUnitSingleQueuedUnitHelperUnitsCompartment_7027SemanticChildren(
+ View view) {
+ if (false == view.eContainer() instanceof View) {
+ return Collections.emptyList();
+ }
+ View containerView = (View) view.eContainer();
+ if (!containerView.isSetElement()) {
+ return Collections.emptyList();
+ }
+ SingleQueuedUnit modelElement = (SingleQueuedUnit) containerView
+ .getElement();
+ LinkedList<ComrelNodeDescriptor> result = new LinkedList<ComrelNodeDescriptor>();
+ for (Iterator<?> it = modelElement.getHelperUnits().iterator(); it
+ .hasNext();) {
+ HelperUnit childElement = (HelperUnit) it.next();
+ int visualID = ComrelVisualIDRegistry.getNodeVisualID(view,
+ childElement);
+ if (visualID == SingleFeatureUnit4EditPart.VISUAL_ID) {
+ result.add(new ComrelNodeDescriptor(childElement, visualID));
+ continue;
+ }
+ if (visualID == MultiFeatureUnit4EditPart.VISUAL_ID) {
+ result.add(new ComrelNodeDescriptor(childElement, visualID));
+ continue;
+ }
+ if (visualID == SingleFilterUnit4EditPart.VISUAL_ID) {
+ result.add(new ComrelNodeDescriptor(childElement, visualID));
+ continue;
+ }
+ if (visualID == MultiFilterUnit4EditPart.VISUAL_ID) {
+ result.add(new ComrelNodeDescriptor(childElement, visualID));
+ continue;
+ }
+ }
+ return result;
+ }
+
+ /**
+ * @generated
+ */
+ public static List<ComrelNodeDescriptor> getSingleQueuedUnitSingleQueuedUnitRefactoringUnitCompartment_7028SemanticChildren(
+ View view) {
+ if (false == view.eContainer() instanceof View) {
+ return Collections.emptyList();
+ }
+ View containerView = (View) view.eContainer();
+ if (!containerView.isSetElement()) {
+ return Collections.emptyList();
+ }
+ SingleQueuedUnit modelElement = (SingleQueuedUnit) containerView
+ .getElement();
+ LinkedList<ComrelNodeDescriptor> result = new LinkedList<ComrelNodeDescriptor>();
+ {
+ RefactoringUnit childElement = modelElement.getRefactoringUnit();
+ int visualID = ComrelVisualIDRegistry.getNodeVisualID(view,
+ childElement);
+ if (visualID == CartesianQueuedUnit4EditPart.VISUAL_ID) {
+ result.add(new ComrelNodeDescriptor(childElement, visualID));
+ }
+ if (visualID == ParallelQueuedUnit5EditPart.VISUAL_ID) {
+ result.add(new ComrelNodeDescriptor(childElement, visualID));
+ }
+ if (visualID == SingleQueuedUnit5EditPart.VISUAL_ID) {
+ result.add(new ComrelNodeDescriptor(childElement, visualID));
+ }
+ if (visualID == SequentialUnit4EditPart.VISUAL_ID) {
+ result.add(new ComrelNodeDescriptor(childElement, visualID));
+ }
+ if (visualID == ConditionalUnit4EditPart.VISUAL_ID) {
+ result.add(new ComrelNodeDescriptor(childElement, visualID));
+ }
+ if (visualID == AtomicUnit4EditPart.VISUAL_ID) {
+ result.add(new ComrelNodeDescriptor(childElement, visualID));
+ }
+ }
+ return result;
+ }
+
+ /**
+ * @generated
+ */
+ public static List<ComrelNodeDescriptor> getParallelQueuedUnitParallelQueuedUnitHelperUnitsCompartment_7029SemanticChildren(
+ View view) {
+ if (false == view.eContainer() instanceof View) {
+ return Collections.emptyList();
+ }
+ View containerView = (View) view.eContainer();
+ if (!containerView.isSetElement()) {
+ return Collections.emptyList();
+ }
+ ParallelQueuedUnit modelElement = (ParallelQueuedUnit) containerView
+ .getElement();
+ LinkedList<ComrelNodeDescriptor> result = new LinkedList<ComrelNodeDescriptor>();
+ for (Iterator<?> it = modelElement.getHelperUnits().iterator(); it
+ .hasNext();) {
+ HelperUnit childElement = (HelperUnit) it.next();
+ int visualID = ComrelVisualIDRegistry.getNodeVisualID(view,
+ childElement);
+ if (visualID == SingleFeatureUnit2EditPart.VISUAL_ID) {
+ result.add(new ComrelNodeDescriptor(childElement, visualID));
+ continue;
+ }
+ if (visualID == MultiFeatureUnit2EditPart.VISUAL_ID) {
+ result.add(new ComrelNodeDescriptor(childElement, visualID));
+ continue;
+ }
+ if (visualID == SingleFilterUnit2EditPart.VISUAL_ID) {
+ result.add(new ComrelNodeDescriptor(childElement, visualID));
+ continue;
+ }
+ if (visualID == MultiFilterUnit2EditPart.VISUAL_ID) {
+ result.add(new ComrelNodeDescriptor(childElement, visualID));
+ continue;
+ }
+ }
+ return result;
+ }
+
+ /**
+ * @generated
+ */
+ public static List<ComrelNodeDescriptor> getParallelQueuedUnitParallelQueuedUnitRefactoringUnitsCompartment_7030SemanticChildren(
+ View view) {
+ if (false == view.eContainer() instanceof View) {
+ return Collections.emptyList();
+ }
+ View containerView = (View) view.eContainer();
+ if (!containerView.isSetElement()) {
+ return Collections.emptyList();
+ }
+ ParallelQueuedUnit modelElement = (ParallelQueuedUnit) containerView
+ .getElement();
+ LinkedList<ComrelNodeDescriptor> result = new LinkedList<ComrelNodeDescriptor>();
+ {
+ RefactoringUnit childElement = modelElement.getRefactoringUnits();
+ int visualID = ComrelVisualIDRegistry.getNodeVisualID(view,
+ childElement);
+ if (visualID == CartesianQueuedUnit3EditPart.VISUAL_ID) {
+ result.add(new ComrelNodeDescriptor(childElement, visualID));
+ }
+ if (visualID == ParallelQueuedUnit4EditPart.VISUAL_ID) {
+ result.add(new ComrelNodeDescriptor(childElement, visualID));
+ }
+ if (visualID == SingleQueuedUnit3EditPart.VISUAL_ID) {
+ result.add(new ComrelNodeDescriptor(childElement, visualID));
+ }
+ if (visualID == SequentialUnit3EditPart.VISUAL_ID) {
+ result.add(new ComrelNodeDescriptor(childElement, visualID));
+ }
+ if (visualID == ConditionalUnit3EditPart.VISUAL_ID) {
+ result.add(new ComrelNodeDescriptor(childElement, visualID));
+ }
+ if (visualID == AtomicUnit3EditPart.VISUAL_ID) {
+ result.add(new ComrelNodeDescriptor(childElement, visualID));
+ }
+ }
+ return result;
+ }
+
+ /**
+ * @generated
+ */
+ public static List<ComrelNodeDescriptor> getSequentialUnitSequentialUnitHelperUnitsCompartment_7031SemanticChildren(
+ View view) {
+ if (false == view.eContainer() instanceof View) {
+ return Collections.emptyList();
+ }
+ View containerView = (View) view.eContainer();
+ if (!containerView.isSetElement()) {
+ return Collections.emptyList();
+ }
+ SequentialUnit modelElement = (SequentialUnit) containerView
+ .getElement();
+ LinkedList<ComrelNodeDescriptor> result = new LinkedList<ComrelNodeDescriptor>();
+ for (Iterator<?> it = modelElement.getHelperUnits().iterator(); it
+ .hasNext();) {
+ HelperUnit childElement = (HelperUnit) it.next();
+ int visualID = ComrelVisualIDRegistry.getNodeVisualID(view,
+ childElement);
+ if (visualID == SingleFeatureUnit5EditPart.VISUAL_ID) {
+ result.add(new ComrelNodeDescriptor(childElement, visualID));
+ continue;
+ }
+ if (visualID == MultiFeatureUnit5EditPart.VISUAL_ID) {
+ result.add(new ComrelNodeDescriptor(childElement, visualID));
+ continue;
+ }
+ if (visualID == SingleFilterUnit5EditPart.VISUAL_ID) {
+ result.add(new ComrelNodeDescriptor(childElement, visualID));
+ continue;
+ }
+ if (visualID == MultiFilterUnit5EditPart.VISUAL_ID) {
+ result.add(new ComrelNodeDescriptor(childElement, visualID));
+ continue;
+ }
+ }
+ return result;
+ }
+
+ /**
+ * @generated
+ */
+ public static List<ComrelNodeDescriptor> getSequentialUnitSequentialUnitRefactoringUnitsCompartment_7032SemanticChildren(
+ View view) {
+ if (false == view.eContainer() instanceof View) {
+ return Collections.emptyList();
+ }
+ View containerView = (View) view.eContainer();
+ if (!containerView.isSetElement()) {
+ return Collections.emptyList();
+ }
+ SequentialUnit modelElement = (SequentialUnit) containerView
+ .getElement();
+ LinkedList<ComrelNodeDescriptor> result = new LinkedList<ComrelNodeDescriptor>();
+ for (Iterator<?> it = modelElement.getRefactoringUnits().iterator(); it
+ .hasNext();) {
+ RefactoringUnit childElement = (RefactoringUnit) it.next();
+ int visualID = ComrelVisualIDRegistry.getNodeVisualID(view,
+ childElement);
+ if (visualID == CartesianQueuedUnit5EditPart.VISUAL_ID) {
+ result.add(new ComrelNodeDescriptor(childElement, visualID));
+ continue;
+ }
+ if (visualID == ParallelQueuedUnit6EditPart.VISUAL_ID) {
+ result.add(new ComrelNodeDescriptor(childElement, visualID));
+ continue;
+ }
+ if (visualID == SingleQueuedUnit6EditPart.VISUAL_ID) {
+ result.add(new ComrelNodeDescriptor(childElement, visualID));
+ continue;
+ }
+ if (visualID == SequentialUnit6EditPart.VISUAL_ID) {
+ result.add(new ComrelNodeDescriptor(childElement, visualID));
+ continue;
+ }
+ if (visualID == ConditionalUnit5EditPart.VISUAL_ID) {
+ result.add(new ComrelNodeDescriptor(childElement, visualID));
+ continue;
+ }
+ if (visualID == AtomicUnit5EditPart.VISUAL_ID) {
+ result.add(new ComrelNodeDescriptor(childElement, visualID));
+ continue;
+ }
+ }
+ return result;
+ }
+
+ /**
+ * @generated
+ */
+ public static List<ComrelNodeDescriptor> getParallelQueuedUnitParallelQueuedUnitHelperUnitsCompartment_7033SemanticChildren(
+ View view) {
+ if (false == view.eContainer() instanceof View) {
+ return Collections.emptyList();
+ }
+ View containerView = (View) view.eContainer();
+ if (!containerView.isSetElement()) {
+ return Collections.emptyList();
+ }
+ ParallelQueuedUnit modelElement = (ParallelQueuedUnit) containerView
+ .getElement();
+ LinkedList<ComrelNodeDescriptor> result = new LinkedList<ComrelNodeDescriptor>();
+ for (Iterator<?> it = modelElement.getHelperUnits().iterator(); it
+ .hasNext();) {
+ HelperUnit childElement = (HelperUnit) it.next();
+ int visualID = ComrelVisualIDRegistry.getNodeVisualID(view,
+ childElement);
+ if (visualID == SingleFeatureUnit2EditPart.VISUAL_ID) {
+ result.add(new ComrelNodeDescriptor(childElement, visualID));
+ continue;
+ }
+ if (visualID == MultiFeatureUnit2EditPart.VISUAL_ID) {
+ result.add(new ComrelNodeDescriptor(childElement, visualID));
+ continue;
+ }
+ if (visualID == SingleFilterUnit2EditPart.VISUAL_ID) {
+ result.add(new ComrelNodeDescriptor(childElement, visualID));
+ continue;
+ }
+ if (visualID == MultiFilterUnit2EditPart.VISUAL_ID) {
+ result.add(new ComrelNodeDescriptor(childElement, visualID));
+ continue;
+ }
+ }
+ return result;
+ }
+
+ /**
+ * @generated
+ */
+ public static List<ComrelNodeDescriptor> getParallelQueuedUnitParallelQueuedUnitRefactoringUnitsCompartment_7034SemanticChildren(
+ View view) {
+ if (false == view.eContainer() instanceof View) {
+ return Collections.emptyList();
+ }
+ View containerView = (View) view.eContainer();
+ if (!containerView.isSetElement()) {
+ return Collections.emptyList();
+ }
+ ParallelQueuedUnit modelElement = (ParallelQueuedUnit) containerView
+ .getElement();
+ LinkedList<ComrelNodeDescriptor> result = new LinkedList<ComrelNodeDescriptor>();
+ {
+ RefactoringUnit childElement = modelElement.getRefactoringUnits();
+ int visualID = ComrelVisualIDRegistry.getNodeVisualID(view,
+ childElement);
+ if (visualID == CartesianQueuedUnit3EditPart.VISUAL_ID) {
+ result.add(new ComrelNodeDescriptor(childElement, visualID));
+ }
+ if (visualID == ParallelQueuedUnit4EditPart.VISUAL_ID) {
+ result.add(new ComrelNodeDescriptor(childElement, visualID));
+ }
+ if (visualID == SingleQueuedUnit3EditPart.VISUAL_ID) {
+ result.add(new ComrelNodeDescriptor(childElement, visualID));
+ }
+ if (visualID == SequentialUnit3EditPart.VISUAL_ID) {
+ result.add(new ComrelNodeDescriptor(childElement, visualID));
+ }
+ if (visualID == ConditionalUnit3EditPart.VISUAL_ID) {
+ result.add(new ComrelNodeDescriptor(childElement, visualID));
+ }
+ if (visualID == AtomicUnit3EditPart.VISUAL_ID) {
+ result.add(new ComrelNodeDescriptor(childElement, visualID));
+ }
+ }
+ return result;
+ }
+
+ /**
+ * @generated
+ */
+ public static List<ComrelNodeDescriptor> getConditionalUnitConditionalUnitIfCompartment_7035SemanticChildren(
+ View view) {
+ if (false == view.eContainer() instanceof View) {
+ return Collections.emptyList();
+ }
+ View containerView = (View) view.eContainer();
+ if (!containerView.isSetElement()) {
+ return Collections.emptyList();
+ }
+ ConditionalUnit modelElement = (ConditionalUnit) containerView
+ .getElement();
+ LinkedList<ComrelNodeDescriptor> result = new LinkedList<ComrelNodeDescriptor>();
+ {
+ ConditionCheck childElement = modelElement.getIf();
+ int visualID = ComrelVisualIDRegistry.getNodeVisualID(view,
+ childElement);
+ if (visualID == ConditionCheckEditPart.VISUAL_ID) {
+ result.add(new ComrelNodeDescriptor(childElement, visualID));
+ }
+ }
+ return result;
+ }
+
+ /**
+ * @generated
+ */
+ public static List<ComrelNodeDescriptor> getConditionalUnitConditionalUnitHelperUnitsCompartment_7036SemanticChildren(
+ View view) {
+ if (false == view.eContainer() instanceof View) {
+ return Collections.emptyList();
+ }
+ View containerView = (View) view.eContainer();
+ if (!containerView.isSetElement()) {
+ return Collections.emptyList();
+ }
+ ConditionalUnit modelElement = (ConditionalUnit) containerView
+ .getElement();
+ LinkedList<ComrelNodeDescriptor> result = new LinkedList<ComrelNodeDescriptor>();
+ for (Iterator<?> it = modelElement.getHelperUnits().iterator(); it
+ .hasNext();) {
+ HelperUnit childElement = (HelperUnit) it.next();
+ int visualID = ComrelVisualIDRegistry.getNodeVisualID(view,
+ childElement);
+ if (visualID == SingleFeatureUnit3EditPart.VISUAL_ID) {
+ result.add(new ComrelNodeDescriptor(childElement, visualID));
+ continue;
+ }
+ if (visualID == MultiFeatureUnit3EditPart.VISUAL_ID) {
+ result.add(new ComrelNodeDescriptor(childElement, visualID));
+ continue;
+ }
+ if (visualID == SingleFilterUnit3EditPart.VISUAL_ID) {
+ result.add(new ComrelNodeDescriptor(childElement, visualID));
+ continue;
+ }
+ if (visualID == MultiFilterUnit3EditPart.VISUAL_ID) {
+ result.add(new ComrelNodeDescriptor(childElement, visualID));
+ continue;
+ }
+ }
+ return result;
+ }
+
+ /**
+ * @generated
+ */
+ public static List<ComrelNodeDescriptor> getConditionalUnitConditionalUnitThenCompartment_7037SemanticChildren(
+ View view) {
+ if (false == view.eContainer() instanceof View) {
+ return Collections.emptyList();
+ }
+ View containerView = (View) view.eContainer();
+ if (!containerView.isSetElement()) {
+ return Collections.emptyList();
+ }
+ ConditionalUnit modelElement = (ConditionalUnit) containerView
+ .getElement();
+ LinkedList<ComrelNodeDescriptor> result = new LinkedList<ComrelNodeDescriptor>();
+ {
+ RefactoringUnit childElement = modelElement.getThen();
+ int visualID = ComrelVisualIDRegistry.getNodeVisualID(view,
+ childElement);
+ if (visualID == CartesianQueuedUnit6EditPart.VISUAL_ID) {
+ result.add(new ComrelNodeDescriptor(childElement, visualID));
+ }
+ if (visualID == ParallelQueuedUnit3EditPart.VISUAL_ID) {
+ result.add(new ComrelNodeDescriptor(childElement, visualID));
+ }
+ if (visualID == SingleQueuedUnit4EditPart.VISUAL_ID) {
+ result.add(new ComrelNodeDescriptor(childElement, visualID));
+ }
+ if (visualID == SequentialUnit5EditPart.VISUAL_ID) {
+ result.add(new ComrelNodeDescriptor(childElement, visualID));
+ }
+ if (visualID == ConditionalUnit6EditPart.VISUAL_ID) {
+ result.add(new ComrelNodeDescriptor(childElement, visualID));
+ }
+ if (visualID == AtomicUnit6EditPart.VISUAL_ID) {
+ result.add(new ComrelNodeDescriptor(childElement, visualID));
+ }
+ }
+ return result;
+ }
+
+ /**
+ * @generated
+ */
+ public static List<ComrelNodeDescriptor> getConditionalUnitConditionalUnitElseCompartment_7038SemanticChildren(
+ View view) {
+ if (false == view.eContainer() instanceof View) {
+ return Collections.emptyList();
+ }
+ View containerView = (View) view.eContainer();
+ if (!containerView.isSetElement()) {
+ return Collections.emptyList();
+ }
+ ConditionalUnit modelElement = (ConditionalUnit) containerView
+ .getElement();
+ LinkedList<ComrelNodeDescriptor> result = new LinkedList<ComrelNodeDescriptor>();
+ {
+ RefactoringUnit childElement = modelElement.getElse();
+ int visualID = ComrelVisualIDRegistry.getNodeVisualID(view,
+ childElement);
+ if (visualID == CartesianQueuedUnit7EditPart.VISUAL_ID) {
+ result.add(new ComrelNodeDescriptor(childElement, visualID));
+ }
+ if (visualID == ParallelQueuedUnit7EditPart.VISUAL_ID) {
+ result.add(new ComrelNodeDescriptor(childElement, visualID));
+ }
+ if (visualID == SingleQueuedUnit7EditPart.VISUAL_ID) {
+ result.add(new ComrelNodeDescriptor(childElement, visualID));
+ }
+ if (visualID == SequentialUnit7EditPart.VISUAL_ID) {
+ result.add(new ComrelNodeDescriptor(childElement, visualID));
+ }
+ if (visualID == ConditionalUnit7EditPart.VISUAL_ID) {
+ result.add(new ComrelNodeDescriptor(childElement, visualID));
+ }
+ if (visualID == AtomicUnit7EditPart.VISUAL_ID) {
+ result.add(new ComrelNodeDescriptor(childElement, visualID));
+ }
+ }
+ return result;
+ }
+
+ /**
+ * @generated
+ */
+ public static List<ComrelNodeDescriptor> getCartesianQueuedUnitCartesianQueuedUnitHelperUnitsCompartment_7039SemanticChildren(
+ View view) {
+ if (false == view.eContainer() instanceof View) {
+ return Collections.emptyList();
+ }
+ View containerView = (View) view.eContainer();
+ if (!containerView.isSetElement()) {
+ return Collections.emptyList();
+ }
+ CartesianQueuedUnit modelElement = (CartesianQueuedUnit) containerView
+ .getElement();
+ LinkedList<ComrelNodeDescriptor> result = new LinkedList<ComrelNodeDescriptor>();
+ for (Iterator<?> it = modelElement.getHelperUnits().iterator(); it
+ .hasNext();) {
+ HelperUnit childElement = (HelperUnit) it.next();
+ int visualID = ComrelVisualIDRegistry.getNodeVisualID(view,
+ childElement);
+ if (visualID == SingleFeatureUnitEditPart.VISUAL_ID) {
+ result.add(new ComrelNodeDescriptor(childElement, visualID));
+ continue;
+ }
+ if (visualID == MultiFeatureUnitEditPart.VISUAL_ID) {
+ result.add(new ComrelNodeDescriptor(childElement, visualID));
+ continue;
+ }
+ if (visualID == SingleFilterUnitEditPart.VISUAL_ID) {
+ result.add(new ComrelNodeDescriptor(childElement, visualID));
+ continue;
+ }
+ if (visualID == MultiFilterUnitEditPart.VISUAL_ID) {
+ result.add(new ComrelNodeDescriptor(childElement, visualID));
+ continue;
+ }
+ }
+ return result;
+ }
+
+ /**
+ * @generated
+ */
+ public static List<ComrelNodeDescriptor> getCartesianQueuedUnitCartesianQueuedUnitRefactoringUnitCompartment_7040SemanticChildren(
+ View view) {
+ if (false == view.eContainer() instanceof View) {
+ return Collections.emptyList();
+ }
+ View containerView = (View) view.eContainer();
+ if (!containerView.isSetElement()) {
+ return Collections.emptyList();
+ }
+ CartesianQueuedUnit modelElement = (CartesianQueuedUnit) containerView
+ .getElement();
+ LinkedList<ComrelNodeDescriptor> result = new LinkedList<ComrelNodeDescriptor>();
+ {
+ RefactoringUnit childElement = modelElement.getRefactoringUnit();
+ int visualID = ComrelVisualIDRegistry.getNodeVisualID(view,
+ childElement);
+ if (visualID == CartesianQueuedUnit2EditPart.VISUAL_ID) {
+ result.add(new ComrelNodeDescriptor(childElement, visualID));
+ }
+ if (visualID == ParallelQueuedUnit2EditPart.VISUAL_ID) {
+ result.add(new ComrelNodeDescriptor(childElement, visualID));
+ }
+ if (visualID == SingleQueuedUnit2EditPart.VISUAL_ID) {
+ result.add(new ComrelNodeDescriptor(childElement, visualID));
+ }
+ if (visualID == SequentialUnit2EditPart.VISUAL_ID) {
+ result.add(new ComrelNodeDescriptor(childElement, visualID));
+ }
+ if (visualID == ConditionalUnit2EditPart.VISUAL_ID) {
+ result.add(new ComrelNodeDescriptor(childElement, visualID));
+ }
+ if (visualID == AtomicUnit2EditPart.VISUAL_ID) {
+ result.add(new ComrelNodeDescriptor(childElement, visualID));
+ }
+ }
+ return result;
+ }
+
+ /**
+ * @generated
+ */
+ public static List<ComrelNodeDescriptor> getParallelQueuedUnitParallelQueuedUnitHelperUnitsCompartment_7041SemanticChildren(
+ View view) {
+ if (false == view.eContainer() instanceof View) {
+ return Collections.emptyList();
+ }
+ View containerView = (View) view.eContainer();
+ if (!containerView.isSetElement()) {
+ return Collections.emptyList();
+ }
+ ParallelQueuedUnit modelElement = (ParallelQueuedUnit) containerView
+ .getElement();
+ LinkedList<ComrelNodeDescriptor> result = new LinkedList<ComrelNodeDescriptor>();
+ for (Iterator<?> it = modelElement.getHelperUnits().iterator(); it
+ .hasNext();) {
+ HelperUnit childElement = (HelperUnit) it.next();
+ int visualID = ComrelVisualIDRegistry.getNodeVisualID(view,
+ childElement);
+ if (visualID == SingleFeatureUnit2EditPart.VISUAL_ID) {
+ result.add(new ComrelNodeDescriptor(childElement, visualID));
+ continue;
+ }
+ if (visualID == MultiFeatureUnit2EditPart.VISUAL_ID) {
+ result.add(new ComrelNodeDescriptor(childElement, visualID));
+ continue;
+ }
+ if (visualID == SingleFilterUnit2EditPart.VISUAL_ID) {
+ result.add(new ComrelNodeDescriptor(childElement, visualID));
+ continue;
+ }
+ if (visualID == MultiFilterUnit2EditPart.VISUAL_ID) {
+ result.add(new ComrelNodeDescriptor(childElement, visualID));
+ continue;
+ }
+ }
+ return result;
+ }
+
+ /**
+ * @generated
+ */
+ public static List<ComrelNodeDescriptor> getParallelQueuedUnitParallelQueuedUnitRefactoringUnitsCompartment_7042SemanticChildren(
+ View view) {
+ if (false == view.eContainer() instanceof View) {
+ return Collections.emptyList();
+ }
+ View containerView = (View) view.eContainer();
+ if (!containerView.isSetElement()) {
+ return Collections.emptyList();
+ }
+ ParallelQueuedUnit modelElement = (ParallelQueuedUnit) containerView
+ .getElement();
+ LinkedList<ComrelNodeDescriptor> result = new LinkedList<ComrelNodeDescriptor>();
+ {
+ RefactoringUnit childElement = modelElement.getRefactoringUnits();
+ int visualID = ComrelVisualIDRegistry.getNodeVisualID(view,
+ childElement);
+ if (visualID == CartesianQueuedUnit3EditPart.VISUAL_ID) {
+ result.add(new ComrelNodeDescriptor(childElement, visualID));
+ }
+ if (visualID == ParallelQueuedUnit4EditPart.VISUAL_ID) {
+ result.add(new ComrelNodeDescriptor(childElement, visualID));
+ }
+ if (visualID == SingleQueuedUnit3EditPart.VISUAL_ID) {
+ result.add(new ComrelNodeDescriptor(childElement, visualID));
+ }
+ if (visualID == SequentialUnit3EditPart.VISUAL_ID) {
+ result.add(new ComrelNodeDescriptor(childElement, visualID));
+ }
+ if (visualID == ConditionalUnit3EditPart.VISUAL_ID) {
+ result.add(new ComrelNodeDescriptor(childElement, visualID));
+ }
+ if (visualID == AtomicUnit3EditPart.VISUAL_ID) {
+ result.add(new ComrelNodeDescriptor(childElement, visualID));
+ }
+ }
+ return result;
+ }
+
+ /**
+ * @generated
+ */
+ public static List<ComrelNodeDescriptor> getSingleQueuedUnitSingleQueuedUnitHelperUnitsCompartment_7043SemanticChildren(
+ View view) {
+ if (false == view.eContainer() instanceof View) {
+ return Collections.emptyList();
+ }
+ View containerView = (View) view.eContainer();
+ if (!containerView.isSetElement()) {
+ return Collections.emptyList();
+ }
+ SingleQueuedUnit modelElement = (SingleQueuedUnit) containerView
+ .getElement();
+ LinkedList<ComrelNodeDescriptor> result = new LinkedList<ComrelNodeDescriptor>();
+ for (Iterator<?> it = modelElement.getHelperUnits().iterator(); it
+ .hasNext();) {
+ HelperUnit childElement = (HelperUnit) it.next();
+ int visualID = ComrelVisualIDRegistry.getNodeVisualID(view,
+ childElement);
+ if (visualID == SingleFeatureUnit4EditPart.VISUAL_ID) {
+ result.add(new ComrelNodeDescriptor(childElement, visualID));
+ continue;
+ }
+ if (visualID == MultiFeatureUnit4EditPart.VISUAL_ID) {
+ result.add(new ComrelNodeDescriptor(childElement, visualID));
+ continue;
+ }
+ if (visualID == SingleFilterUnit4EditPart.VISUAL_ID) {
+ result.add(new ComrelNodeDescriptor(childElement, visualID));
+ continue;
+ }
+ if (visualID == MultiFilterUnit4EditPart.VISUAL_ID) {
+ result.add(new ComrelNodeDescriptor(childElement, visualID));
+ continue;
+ }
+ }
+ return result;
+ }
+
+ /**
+ * @generated
+ */
+ public static List<ComrelNodeDescriptor> getSingleQueuedUnitSingleQueuedUnitRefactoringUnitCompartment_7044SemanticChildren(
+ View view) {
+ if (false == view.eContainer() instanceof View) {
+ return Collections.emptyList();
+ }
+ View containerView = (View) view.eContainer();
+ if (!containerView.isSetElement()) {
+ return Collections.emptyList();
+ }
+ SingleQueuedUnit modelElement = (SingleQueuedUnit) containerView
+ .getElement();
+ LinkedList<ComrelNodeDescriptor> result = new LinkedList<ComrelNodeDescriptor>();
+ {
+ RefactoringUnit childElement = modelElement.getRefactoringUnit();
+ int visualID = ComrelVisualIDRegistry.getNodeVisualID(view,
+ childElement);
+ if (visualID == CartesianQueuedUnit4EditPart.VISUAL_ID) {
+ result.add(new ComrelNodeDescriptor(childElement, visualID));
+ }
+ if (visualID == ParallelQueuedUnit5EditPart.VISUAL_ID) {
+ result.add(new ComrelNodeDescriptor(childElement, visualID));
+ }
+ if (visualID == SingleQueuedUnit5EditPart.VISUAL_ID) {
+ result.add(new ComrelNodeDescriptor(childElement, visualID));
+ }
+ if (visualID == SequentialUnit4EditPart.VISUAL_ID) {
+ result.add(new ComrelNodeDescriptor(childElement, visualID));
+ }
+ if (visualID == ConditionalUnit4EditPart.VISUAL_ID) {
+ result.add(new ComrelNodeDescriptor(childElement, visualID));
+ }
+ if (visualID == AtomicUnit4EditPart.VISUAL_ID) {
+ result.add(new ComrelNodeDescriptor(childElement, visualID));
+ }
+ }
+ return result;
+ }
+
+ /**
+ * @generated
+ */
+ public static List<ComrelNodeDescriptor> getSingleQueuedUnitSingleQueuedUnitHelperUnitsCompartment_7045SemanticChildren(
+ View view) {
+ if (false == view.eContainer() instanceof View) {
+ return Collections.emptyList();
+ }
+ View containerView = (View) view.eContainer();
+ if (!containerView.isSetElement()) {
+ return Collections.emptyList();
+ }
+ SingleQueuedUnit modelElement = (SingleQueuedUnit) containerView
+ .getElement();
+ LinkedList<ComrelNodeDescriptor> result = new LinkedList<ComrelNodeDescriptor>();
+ for (Iterator<?> it = modelElement.getHelperUnits().iterator(); it
+ .hasNext();) {
+ HelperUnit childElement = (HelperUnit) it.next();
+ int visualID = ComrelVisualIDRegistry.getNodeVisualID(view,
+ childElement);
+ if (visualID == SingleFeatureUnit4EditPart.VISUAL_ID) {
+ result.add(new ComrelNodeDescriptor(childElement, visualID));
+ continue;
+ }
+ if (visualID == MultiFeatureUnit4EditPart.VISUAL_ID) {
+ result.add(new ComrelNodeDescriptor(childElement, visualID));
+ continue;
+ }
+ if (visualID == SingleFilterUnit4EditPart.VISUAL_ID) {
+ result.add(new ComrelNodeDescriptor(childElement, visualID));
+ continue;
+ }
+ if (visualID == MultiFilterUnit4EditPart.VISUAL_ID) {
+ result.add(new ComrelNodeDescriptor(childElement, visualID));
+ continue;
+ }
+ }
+ return result;
+ }
+
+ /**
+ * @generated
+ */
+ public static List<ComrelNodeDescriptor> getSingleQueuedUnitSingleQueuedUnitRefactoringUnitCompartment_7046SemanticChildren(
+ View view) {
+ if (false == view.eContainer() instanceof View) {
+ return Collections.emptyList();
+ }
+ View containerView = (View) view.eContainer();
+ if (!containerView.isSetElement()) {
+ return Collections.emptyList();
+ }
+ SingleQueuedUnit modelElement = (SingleQueuedUnit) containerView
+ .getElement();
+ LinkedList<ComrelNodeDescriptor> result = new LinkedList<ComrelNodeDescriptor>();
+ {
+ RefactoringUnit childElement = modelElement.getRefactoringUnit();
+ int visualID = ComrelVisualIDRegistry.getNodeVisualID(view,
+ childElement);
+ if (visualID == CartesianQueuedUnit4EditPart.VISUAL_ID) {
+ result.add(new ComrelNodeDescriptor(childElement, visualID));
+ }
+ if (visualID == ParallelQueuedUnit5EditPart.VISUAL_ID) {
+ result.add(new ComrelNodeDescriptor(childElement, visualID));
+ }
+ if (visualID == SingleQueuedUnit5EditPart.VISUAL_ID) {
+ result.add(new ComrelNodeDescriptor(childElement, visualID));
+ }
+ if (visualID == SequentialUnit4EditPart.VISUAL_ID) {
+ result.add(new ComrelNodeDescriptor(childElement, visualID));
+ }
+ if (visualID == ConditionalUnit4EditPart.VISUAL_ID) {
+ result.add(new ComrelNodeDescriptor(childElement, visualID));
+ }
+ if (visualID == AtomicUnit4EditPart.VISUAL_ID) {
+ result.add(new ComrelNodeDescriptor(childElement, visualID));
+ }
+ }
+ return result;
+ }
+
+ /**
+ * @generated
+ */
+ public static List<ComrelNodeDescriptor> getSequentialUnitSequentialUnitHelperUnitsCompartment_7047SemanticChildren(
+ View view) {
+ if (false == view.eContainer() instanceof View) {
+ return Collections.emptyList();
+ }
+ View containerView = (View) view.eContainer();
+ if (!containerView.isSetElement()) {
+ return Collections.emptyList();
+ }
+ SequentialUnit modelElement = (SequentialUnit) containerView
+ .getElement();
+ LinkedList<ComrelNodeDescriptor> result = new LinkedList<ComrelNodeDescriptor>();
+ for (Iterator<?> it = modelElement.getHelperUnits().iterator(); it
+ .hasNext();) {
+ HelperUnit childElement = (HelperUnit) it.next();
+ int visualID = ComrelVisualIDRegistry.getNodeVisualID(view,
+ childElement);
+ if (visualID == SingleFeatureUnit5EditPart.VISUAL_ID) {
+ result.add(new ComrelNodeDescriptor(childElement, visualID));
+ continue;
+ }
+ if (visualID == MultiFeatureUnit5EditPart.VISUAL_ID) {
+ result.add(new ComrelNodeDescriptor(childElement, visualID));
+ continue;
+ }
+ if (visualID == SingleFilterUnit5EditPart.VISUAL_ID) {
+ result.add(new ComrelNodeDescriptor(childElement, visualID));
+ continue;
+ }
+ if (visualID == MultiFilterUnit5EditPart.VISUAL_ID) {
+ result.add(new ComrelNodeDescriptor(childElement, visualID));
+ continue;
+ }
+ }
+ return result;
+ }
+
+ /**
+ * @generated
+ */
+ public static List<ComrelNodeDescriptor> getSequentialUnitSequentialUnitRefactoringUnitsCompartment_7048SemanticChildren(
+ View view) {
+ if (false == view.eContainer() instanceof View) {
+ return Collections.emptyList();
+ }
+ View containerView = (View) view.eContainer();
+ if (!containerView.isSetElement()) {
+ return Collections.emptyList();
+ }
+ SequentialUnit modelElement = (SequentialUnit) containerView
+ .getElement();
+ LinkedList<ComrelNodeDescriptor> result = new LinkedList<ComrelNodeDescriptor>();
+ for (Iterator<?> it = modelElement.getRefactoringUnits().iterator(); it
+ .hasNext();) {
+ RefactoringUnit childElement = (RefactoringUnit) it.next();
+ int visualID = ComrelVisualIDRegistry.getNodeVisualID(view,
+ childElement);
+ if (visualID == CartesianQueuedUnit5EditPart.VISUAL_ID) {
+ result.add(new ComrelNodeDescriptor(childElement, visualID));
+ continue;
+ }
+ if (visualID == ParallelQueuedUnit6EditPart.VISUAL_ID) {
+ result.add(new ComrelNodeDescriptor(childElement, visualID));
+ continue;
+ }
+ if (visualID == SingleQueuedUnit6EditPart.VISUAL_ID) {
+ result.add(new ComrelNodeDescriptor(childElement, visualID));
+ continue;
+ }
+ if (visualID == SequentialUnit6EditPart.VISUAL_ID) {
+ result.add(new ComrelNodeDescriptor(childElement, visualID));
+ continue;
+ }
+ if (visualID == ConditionalUnit5EditPart.VISUAL_ID) {
+ result.add(new ComrelNodeDescriptor(childElement, visualID));
+ continue;
+ }
+ if (visualID == AtomicUnit5EditPart.VISUAL_ID) {
+ result.add(new ComrelNodeDescriptor(childElement, visualID));
+ continue;
+ }
+ }
+ return result;
+ }
+
+ /**
+ * @generated
+ */
+ public static List<ComrelNodeDescriptor> getSingleQueuedUnitSingleQueuedUnitHelperUnitsCompartment_7049SemanticChildren(
+ View view) {
+ if (false == view.eContainer() instanceof View) {
+ return Collections.emptyList();
+ }
+ View containerView = (View) view.eContainer();
+ if (!containerView.isSetElement()) {
+ return Collections.emptyList();
+ }
+ SingleQueuedUnit modelElement = (SingleQueuedUnit) containerView
+ .getElement();
+ LinkedList<ComrelNodeDescriptor> result = new LinkedList<ComrelNodeDescriptor>();
+ for (Iterator<?> it = modelElement.getHelperUnits().iterator(); it
+ .hasNext();) {
+ HelperUnit childElement = (HelperUnit) it.next();
+ int visualID = ComrelVisualIDRegistry.getNodeVisualID(view,
+ childElement);
+ if (visualID == SingleFeatureUnit4EditPart.VISUAL_ID) {
+ result.add(new ComrelNodeDescriptor(childElement, visualID));
+ continue;
+ }
+ if (visualID == MultiFeatureUnit4EditPart.VISUAL_ID) {
+ result.add(new ComrelNodeDescriptor(childElement, visualID));
+ continue;
+ }
+ if (visualID == SingleFilterUnit4EditPart.VISUAL_ID) {
+ result.add(new ComrelNodeDescriptor(childElement, visualID));
+ continue;
+ }
+ if (visualID == MultiFilterUnit4EditPart.VISUAL_ID) {
+ result.add(new ComrelNodeDescriptor(childElement, visualID));
+ continue;
+ }
+ }
+ return result;
+ }
+
+ /**
+ * @generated
+ */
+ public static List<ComrelNodeDescriptor> getSingleQueuedUnitSingleQueuedUnitRefactoringUnitCompartment_7050SemanticChildren(
+ View view) {
+ if (false == view.eContainer() instanceof View) {
+ return Collections.emptyList();
+ }
+ View containerView = (View) view.eContainer();
+ if (!containerView.isSetElement()) {
+ return Collections.emptyList();
+ }
+ SingleQueuedUnit modelElement = (SingleQueuedUnit) containerView
+ .getElement();
+ LinkedList<ComrelNodeDescriptor> result = new LinkedList<ComrelNodeDescriptor>();
+ {
+ RefactoringUnit childElement = modelElement.getRefactoringUnit();
+ int visualID = ComrelVisualIDRegistry.getNodeVisualID(view,
+ childElement);
+ if (visualID == CartesianQueuedUnit4EditPart.VISUAL_ID) {
+ result.add(new ComrelNodeDescriptor(childElement, visualID));
+ }
+ if (visualID == ParallelQueuedUnit5EditPart.VISUAL_ID) {
+ result.add(new ComrelNodeDescriptor(childElement, visualID));
+ }
+ if (visualID == SingleQueuedUnit5EditPart.VISUAL_ID) {
+ result.add(new ComrelNodeDescriptor(childElement, visualID));
+ }
+ if (visualID == SequentialUnit4EditPart.VISUAL_ID) {
+ result.add(new ComrelNodeDescriptor(childElement, visualID));
+ }
+ if (visualID == ConditionalUnit4EditPart.VISUAL_ID) {
+ result.add(new ComrelNodeDescriptor(childElement, visualID));
+ }
+ if (visualID == AtomicUnit4EditPart.VISUAL_ID) {
+ result.add(new ComrelNodeDescriptor(childElement, visualID));
+ }
+ }
+ return result;
+ }
+
+ /**
+ * @generated
+ */
+ public static List<ComrelNodeDescriptor> getConditionalUnitConditionalUnitIfCompartment_7051SemanticChildren(
+ View view) {
+ if (false == view.eContainer() instanceof View) {
+ return Collections.emptyList();
+ }
+ View containerView = (View) view.eContainer();
+ if (!containerView.isSetElement()) {
+ return Collections.emptyList();
+ }
+ ConditionalUnit modelElement = (ConditionalUnit) containerView
+ .getElement();
+ LinkedList<ComrelNodeDescriptor> result = new LinkedList<ComrelNodeDescriptor>();
+ {
+ ConditionCheck childElement = modelElement.getIf();
+ int visualID = ComrelVisualIDRegistry.getNodeVisualID(view,
+ childElement);
+ if (visualID == ConditionCheckEditPart.VISUAL_ID) {
+ result.add(new ComrelNodeDescriptor(childElement, visualID));
+ }
+ }
+ return result;
+ }
+
+ /**
+ * @generated
+ */
+ public static List<ComrelNodeDescriptor> getConditionalUnitConditionalUnitHelperUnitsCompartment_7052SemanticChildren(
+ View view) {
+ if (false == view.eContainer() instanceof View) {
+ return Collections.emptyList();
+ }
+ View containerView = (View) view.eContainer();
+ if (!containerView.isSetElement()) {
+ return Collections.emptyList();
+ }
+ ConditionalUnit modelElement = (ConditionalUnit) containerView
+ .getElement();
+ LinkedList<ComrelNodeDescriptor> result = new LinkedList<ComrelNodeDescriptor>();
+ for (Iterator<?> it = modelElement.getHelperUnits().iterator(); it
+ .hasNext();) {
+ HelperUnit childElement = (HelperUnit) it.next();
+ int visualID = ComrelVisualIDRegistry.getNodeVisualID(view,
+ childElement);
+ if (visualID == SingleFeatureUnit3EditPart.VISUAL_ID) {
+ result.add(new ComrelNodeDescriptor(childElement, visualID));
+ continue;
+ }
+ if (visualID == MultiFeatureUnit3EditPart.VISUAL_ID) {
+ result.add(new ComrelNodeDescriptor(childElement, visualID));
+ continue;
+ }
+ if (visualID == SingleFilterUnit3EditPart.VISUAL_ID) {
+ result.add(new ComrelNodeDescriptor(childElement, visualID));
+ continue;
+ }
+ if (visualID == MultiFilterUnit3EditPart.VISUAL_ID) {
+ result.add(new ComrelNodeDescriptor(childElement, visualID));
+ continue;
+ }
+ }
+ return result;
+ }
+
+ /**
+ * @generated
+ */
+ public static List<ComrelNodeDescriptor> getConditionalUnitConditionalUnitThenCompartment_7053SemanticChildren(
+ View view) {
+ if (false == view.eContainer() instanceof View) {
+ return Collections.emptyList();
+ }
+ View containerView = (View) view.eContainer();
+ if (!containerView.isSetElement()) {
+ return Collections.emptyList();
+ }
+ ConditionalUnit modelElement = (ConditionalUnit) containerView
+ .getElement();
+ LinkedList<ComrelNodeDescriptor> result = new LinkedList<ComrelNodeDescriptor>();
+ {
+ RefactoringUnit childElement = modelElement.getThen();
+ int visualID = ComrelVisualIDRegistry.getNodeVisualID(view,
+ childElement);
+ if (visualID == CartesianQueuedUnit6EditPart.VISUAL_ID) {
+ result.add(new ComrelNodeDescriptor(childElement, visualID));
+ }
+ if (visualID == ParallelQueuedUnit3EditPart.VISUAL_ID) {
+ result.add(new ComrelNodeDescriptor(childElement, visualID));
+ }
+ if (visualID == SingleQueuedUnit4EditPart.VISUAL_ID) {
+ result.add(new ComrelNodeDescriptor(childElement, visualID));
+ }
+ if (visualID == SequentialUnit5EditPart.VISUAL_ID) {
+ result.add(new ComrelNodeDescriptor(childElement, visualID));
+ }
+ if (visualID == ConditionalUnit6EditPart.VISUAL_ID) {
+ result.add(new ComrelNodeDescriptor(childElement, visualID));
+ }
+ if (visualID == AtomicUnit6EditPart.VISUAL_ID) {
+ result.add(new ComrelNodeDescriptor(childElement, visualID));
+ }
+ }
+ return result;
+ }
+
+ /**
+ * @generated
+ */
+ public static List<ComrelNodeDescriptor> getConditionalUnitConditionalUnitElseCompartment_7054SemanticChildren(
+ View view) {
+ if (false == view.eContainer() instanceof View) {
+ return Collections.emptyList();
+ }
+ View containerView = (View) view.eContainer();
+ if (!containerView.isSetElement()) {
+ return Collections.emptyList();
+ }
+ ConditionalUnit modelElement = (ConditionalUnit) containerView
+ .getElement();
+ LinkedList<ComrelNodeDescriptor> result = new LinkedList<ComrelNodeDescriptor>();
+ {
+ RefactoringUnit childElement = modelElement.getElse();
+ int visualID = ComrelVisualIDRegistry.getNodeVisualID(view,
+ childElement);
+ if (visualID == CartesianQueuedUnit7EditPart.VISUAL_ID) {
+ result.add(new ComrelNodeDescriptor(childElement, visualID));
+ }
+ if (visualID == ParallelQueuedUnit7EditPart.VISUAL_ID) {
+ result.add(new ComrelNodeDescriptor(childElement, visualID));
+ }
+ if (visualID == SingleQueuedUnit7EditPart.VISUAL_ID) {
+ result.add(new ComrelNodeDescriptor(childElement, visualID));
+ }
+ if (visualID == SequentialUnit7EditPart.VISUAL_ID) {
+ result.add(new ComrelNodeDescriptor(childElement, visualID));
+ }
+ if (visualID == ConditionalUnit7EditPart.VISUAL_ID) {
+ result.add(new ComrelNodeDescriptor(childElement, visualID));
+ }
+ if (visualID == AtomicUnit7EditPart.VISUAL_ID) {
+ result.add(new ComrelNodeDescriptor(childElement, visualID));
+ }
+ }
+ return result;
+ }
+
+ /**
+ * @generated
+ */
+ public static List<ComrelNodeDescriptor> getSingleQueuedUnitSingleQueuedUnitHelperUnitsCompartment_7055SemanticChildren(
+ View view) {
+ if (false == view.eContainer() instanceof View) {
+ return Collections.emptyList();
+ }
+ View containerView = (View) view.eContainer();
+ if (!containerView.isSetElement()) {
+ return Collections.emptyList();
+ }
+ SingleQueuedUnit modelElement = (SingleQueuedUnit) containerView
+ .getElement();
+ LinkedList<ComrelNodeDescriptor> result = new LinkedList<ComrelNodeDescriptor>();
+ for (Iterator<?> it = modelElement.getHelperUnits().iterator(); it
+ .hasNext();) {
+ HelperUnit childElement = (HelperUnit) it.next();
+ int visualID = ComrelVisualIDRegistry.getNodeVisualID(view,
+ childElement);
+ if (visualID == SingleFeatureUnit4EditPart.VISUAL_ID) {
+ result.add(new ComrelNodeDescriptor(childElement, visualID));
+ continue;
+ }
+ if (visualID == MultiFeatureUnit4EditPart.VISUAL_ID) {
+ result.add(new ComrelNodeDescriptor(childElement, visualID));
+ continue;
+ }
+ if (visualID == SingleFilterUnit4EditPart.VISUAL_ID) {
+ result.add(new ComrelNodeDescriptor(childElement, visualID));
+ continue;
+ }
+ if (visualID == MultiFilterUnit4EditPart.VISUAL_ID) {
+ result.add(new ComrelNodeDescriptor(childElement, visualID));
+ continue;
+ }
+ }
+ return result;
+ }
+
+ /**
+ * @generated
+ */
+ public static List<ComrelNodeDescriptor> getSingleQueuedUnitSingleQueuedUnitRefactoringUnitCompartment_7056SemanticChildren(
+ View view) {
+ if (false == view.eContainer() instanceof View) {
+ return Collections.emptyList();
+ }
+ View containerView = (View) view.eContainer();
+ if (!containerView.isSetElement()) {
+ return Collections.emptyList();
+ }
+ SingleQueuedUnit modelElement = (SingleQueuedUnit) containerView
+ .getElement();
+ LinkedList<ComrelNodeDescriptor> result = new LinkedList<ComrelNodeDescriptor>();
+ {
+ RefactoringUnit childElement = modelElement.getRefactoringUnit();
+ int visualID = ComrelVisualIDRegistry.getNodeVisualID(view,
+ childElement);
+ if (visualID == CartesianQueuedUnit4EditPart.VISUAL_ID) {
+ result.add(new ComrelNodeDescriptor(childElement, visualID));
+ }
+ if (visualID == ParallelQueuedUnit5EditPart.VISUAL_ID) {
+ result.add(new ComrelNodeDescriptor(childElement, visualID));
+ }
+ if (visualID == SingleQueuedUnit5EditPart.VISUAL_ID) {
+ result.add(new ComrelNodeDescriptor(childElement, visualID));
+ }
+ if (visualID == SequentialUnit4EditPart.VISUAL_ID) {
+ result.add(new ComrelNodeDescriptor(childElement, visualID));
+ }
+ if (visualID == ConditionalUnit4EditPart.VISUAL_ID) {
+ result.add(new ComrelNodeDescriptor(childElement, visualID));
+ }
+ if (visualID == AtomicUnit4EditPart.VISUAL_ID) {
+ result.add(new ComrelNodeDescriptor(childElement, visualID));
+ }
+ }
+ return result;
+ }
+
+ /**
+ * @generated
+ */
+ public static List<ComrelNodeDescriptor> getSequentialUnitSequentialUnitHelperUnitsCompartment_7057SemanticChildren(
+ View view) {
+ if (false == view.eContainer() instanceof View) {
+ return Collections.emptyList();
+ }
+ View containerView = (View) view.eContainer();
+ if (!containerView.isSetElement()) {
+ return Collections.emptyList();
+ }
+ SequentialUnit modelElement = (SequentialUnit) containerView
+ .getElement();
+ LinkedList<ComrelNodeDescriptor> result = new LinkedList<ComrelNodeDescriptor>();
+ for (Iterator<?> it = modelElement.getHelperUnits().iterator(); it
+ .hasNext();) {
+ HelperUnit childElement = (HelperUnit) it.next();
+ int visualID = ComrelVisualIDRegistry.getNodeVisualID(view,
+ childElement);
+ if (visualID == SingleFeatureUnit5EditPart.VISUAL_ID) {
+ result.add(new ComrelNodeDescriptor(childElement, visualID));
+ continue;
+ }
+ if (visualID == MultiFeatureUnit5EditPart.VISUAL_ID) {
+ result.add(new ComrelNodeDescriptor(childElement, visualID));
+ continue;
+ }
+ if (visualID == SingleFilterUnit5EditPart.VISUAL_ID) {
+ result.add(new ComrelNodeDescriptor(childElement, visualID));
+ continue;
+ }
+ if (visualID == MultiFilterUnit5EditPart.VISUAL_ID) {
+ result.add(new ComrelNodeDescriptor(childElement, visualID));
+ continue;
+ }
+ }
+ return result;
+ }
+
+ /**
+ * @generated
+ */
+ public static List<ComrelNodeDescriptor> getSequentialUnitSequentialUnitRefactoringUnitsCompartment_7058SemanticChildren(
+ View view) {
+ if (false == view.eContainer() instanceof View) {
+ return Collections.emptyList();
+ }
+ View containerView = (View) view.eContainer();
+ if (!containerView.isSetElement()) {
+ return Collections.emptyList();
+ }
+ SequentialUnit modelElement = (SequentialUnit) containerView
+ .getElement();
+ LinkedList<ComrelNodeDescriptor> result = new LinkedList<ComrelNodeDescriptor>();
+ for (Iterator<?> it = modelElement.getRefactoringUnits().iterator(); it
+ .hasNext();) {
+ RefactoringUnit childElement = (RefactoringUnit) it.next();
+ int visualID = ComrelVisualIDRegistry.getNodeVisualID(view,
+ childElement);
+ if (visualID == CartesianQueuedUnit5EditPart.VISUAL_ID) {
+ result.add(new ComrelNodeDescriptor(childElement, visualID));
+ continue;
+ }
+ if (visualID == ParallelQueuedUnit6EditPart.VISUAL_ID) {
+ result.add(new ComrelNodeDescriptor(childElement, visualID));
+ continue;
+ }
+ if (visualID == SingleQueuedUnit6EditPart.VISUAL_ID) {
+ result.add(new ComrelNodeDescriptor(childElement, visualID));
+ continue;
+ }
+ if (visualID == SequentialUnit6EditPart.VISUAL_ID) {
+ result.add(new ComrelNodeDescriptor(childElement, visualID));
+ continue;
+ }
+ if (visualID == ConditionalUnit5EditPart.VISUAL_ID) {
+ result.add(new ComrelNodeDescriptor(childElement, visualID));
+ continue;
+ }
+ if (visualID == AtomicUnit5EditPart.VISUAL_ID) {
+ result.add(new ComrelNodeDescriptor(childElement, visualID));
+ continue;
+ }
+ }
+ return result;
+ }
+
+ /**
+ * @generated
+ */
+ public static List<ComrelNodeDescriptor> getSequentialUnitSequentialUnitHelperUnitsCompartment_7059SemanticChildren(
+ View view) {
+ if (false == view.eContainer() instanceof View) {
+ return Collections.emptyList();
+ }
+ View containerView = (View) view.eContainer();
+ if (!containerView.isSetElement()) {
+ return Collections.emptyList();
+ }
+ SequentialUnit modelElement = (SequentialUnit) containerView
+ .getElement();
+ LinkedList<ComrelNodeDescriptor> result = new LinkedList<ComrelNodeDescriptor>();
+ for (Iterator<?> it = modelElement.getHelperUnits().iterator(); it
+ .hasNext();) {
+ HelperUnit childElement = (HelperUnit) it.next();
+ int visualID = ComrelVisualIDRegistry.getNodeVisualID(view,
+ childElement);
+ if (visualID == SingleFeatureUnit5EditPart.VISUAL_ID) {
+ result.add(new ComrelNodeDescriptor(childElement, visualID));
+ continue;
+ }
+ if (visualID == MultiFeatureUnit5EditPart.VISUAL_ID) {
+ result.add(new ComrelNodeDescriptor(childElement, visualID));
+ continue;
+ }
+ if (visualID == SingleFilterUnit5EditPart.VISUAL_ID) {
+ result.add(new ComrelNodeDescriptor(childElement, visualID));
+ continue;
+ }
+ if (visualID == MultiFilterUnit5EditPart.VISUAL_ID) {
+ result.add(new ComrelNodeDescriptor(childElement, visualID));
+ continue;
+ }
+ }
+ return result;
+ }
+
+ /**
+ * @generated
+ */
+ public static List<ComrelNodeDescriptor> getSequentialUnitSequentialUnitRefactoringUnitsCompartment_7060SemanticChildren(
+ View view) {
+ if (false == view.eContainer() instanceof View) {
+ return Collections.emptyList();
+ }
+ View containerView = (View) view.eContainer();
+ if (!containerView.isSetElement()) {
+ return Collections.emptyList();
+ }
+ SequentialUnit modelElement = (SequentialUnit) containerView
+ .getElement();
+ LinkedList<ComrelNodeDescriptor> result = new LinkedList<ComrelNodeDescriptor>();
+ for (Iterator<?> it = modelElement.getRefactoringUnits().iterator(); it
+ .hasNext();) {
+ RefactoringUnit childElement = (RefactoringUnit) it.next();
+ int visualID = ComrelVisualIDRegistry.getNodeVisualID(view,
+ childElement);
+ if (visualID == CartesianQueuedUnit5EditPart.VISUAL_ID) {
+ result.add(new ComrelNodeDescriptor(childElement, visualID));
+ continue;
+ }
+ if (visualID == ParallelQueuedUnit6EditPart.VISUAL_ID) {
+ result.add(new ComrelNodeDescriptor(childElement, visualID));
+ continue;
+ }
+ if (visualID == SingleQueuedUnit6EditPart.VISUAL_ID) {
+ result.add(new ComrelNodeDescriptor(childElement, visualID));
+ continue;
+ }
+ if (visualID == SequentialUnit6EditPart.VISUAL_ID) {
+ result.add(new ComrelNodeDescriptor(childElement, visualID));
+ continue;
+ }
+ if (visualID == ConditionalUnit5EditPart.VISUAL_ID) {
+ result.add(new ComrelNodeDescriptor(childElement, visualID));
+ continue;
+ }
+ if (visualID == AtomicUnit5EditPart.VISUAL_ID) {
+ result.add(new ComrelNodeDescriptor(childElement, visualID));
+ continue;
+ }
+ }
+ return result;
+ }
+
+ /**
+ * @generated
+ */
+ public static List<ComrelNodeDescriptor> getConditionalUnitConditionalUnitIfCompartment_7061SemanticChildren(
+ View view) {
+ if (false == view.eContainer() instanceof View) {
+ return Collections.emptyList();
+ }
+ View containerView = (View) view.eContainer();
+ if (!containerView.isSetElement()) {
+ return Collections.emptyList();
+ }
+ ConditionalUnit modelElement = (ConditionalUnit) containerView
+ .getElement();
+ LinkedList<ComrelNodeDescriptor> result = new LinkedList<ComrelNodeDescriptor>();
+ {
+ ConditionCheck childElement = modelElement.getIf();
+ int visualID = ComrelVisualIDRegistry.getNodeVisualID(view,
+ childElement);
+ if (visualID == ConditionCheckEditPart.VISUAL_ID) {
+ result.add(new ComrelNodeDescriptor(childElement, visualID));
+ }
+ }
+ return result;
+ }
+
+ /**
+ * @generated
+ */
+ public static List<ComrelNodeDescriptor> getConditionalUnitConditionalUnitHelperUnitsCompartment_7062SemanticChildren(
+ View view) {
+ if (false == view.eContainer() instanceof View) {
+ return Collections.emptyList();
+ }
+ View containerView = (View) view.eContainer();
+ if (!containerView.isSetElement()) {
+ return Collections.emptyList();
+ }
+ ConditionalUnit modelElement = (ConditionalUnit) containerView
+ .getElement();
+ LinkedList<ComrelNodeDescriptor> result = new LinkedList<ComrelNodeDescriptor>();
+ for (Iterator<?> it = modelElement.getHelperUnits().iterator(); it
+ .hasNext();) {
+ HelperUnit childElement = (HelperUnit) it.next();
+ int visualID = ComrelVisualIDRegistry.getNodeVisualID(view,
+ childElement);
+ if (visualID == SingleFeatureUnit3EditPart.VISUAL_ID) {
+ result.add(new ComrelNodeDescriptor(childElement, visualID));
+ continue;
+ }
+ if (visualID == MultiFeatureUnit3EditPart.VISUAL_ID) {
+ result.add(new ComrelNodeDescriptor(childElement, visualID));
+ continue;
+ }
+ if (visualID == SingleFilterUnit3EditPart.VISUAL_ID) {
+ result.add(new ComrelNodeDescriptor(childElement, visualID));
+ continue;
+ }
+ if (visualID == MultiFilterUnit3EditPart.VISUAL_ID) {
+ result.add(new ComrelNodeDescriptor(childElement, visualID));
+ continue;
+ }
+ }
+ return result;
+ }
+
+ /**
+ * @generated
+ */
+ public static List<ComrelNodeDescriptor> getConditionalUnitConditionalUnitThenCompartment_7063SemanticChildren(
+ View view) {
+ if (false == view.eContainer() instanceof View) {
+ return Collections.emptyList();
+ }
+ View containerView = (View) view.eContainer();
+ if (!containerView.isSetElement()) {
+ return Collections.emptyList();
+ }
+ ConditionalUnit modelElement = (ConditionalUnit) containerView
+ .getElement();
+ LinkedList<ComrelNodeDescriptor> result = new LinkedList<ComrelNodeDescriptor>();
+ {
+ RefactoringUnit childElement = modelElement.getThen();
+ int visualID = ComrelVisualIDRegistry.getNodeVisualID(view,
+ childElement);
+ if (visualID == CartesianQueuedUnit6EditPart.VISUAL_ID) {
+ result.add(new ComrelNodeDescriptor(childElement, visualID));
+ }
+ if (visualID == ParallelQueuedUnit3EditPart.VISUAL_ID) {
+ result.add(new ComrelNodeDescriptor(childElement, visualID));
+ }
+ if (visualID == SingleQueuedUnit4EditPart.VISUAL_ID) {
+ result.add(new ComrelNodeDescriptor(childElement, visualID));
+ }
+ if (visualID == SequentialUnit5EditPart.VISUAL_ID) {
+ result.add(new ComrelNodeDescriptor(childElement, visualID));
+ }
+ if (visualID == ConditionalUnit6EditPart.VISUAL_ID) {
+ result.add(new ComrelNodeDescriptor(childElement, visualID));
+ }
+ if (visualID == AtomicUnit6EditPart.VISUAL_ID) {
+ result.add(new ComrelNodeDescriptor(childElement, visualID));
+ }
+ }
+ return result;
+ }
+
+ /**
+ * @generated
+ */
+ public static List<ComrelNodeDescriptor> getConditionalUnitConditionalUnitElseCompartment_7064SemanticChildren(
+ View view) {
+ if (false == view.eContainer() instanceof View) {
+ return Collections.emptyList();
+ }
+ View containerView = (View) view.eContainer();
+ if (!containerView.isSetElement()) {
+ return Collections.emptyList();
+ }
+ ConditionalUnit modelElement = (ConditionalUnit) containerView
+ .getElement();
+ LinkedList<ComrelNodeDescriptor> result = new LinkedList<ComrelNodeDescriptor>();
+ {
+ RefactoringUnit childElement = modelElement.getElse();
+ int visualID = ComrelVisualIDRegistry.getNodeVisualID(view,
+ childElement);
+ if (visualID == CartesianQueuedUnit7EditPart.VISUAL_ID) {
+ result.add(new ComrelNodeDescriptor(childElement, visualID));
+ }
+ if (visualID == ParallelQueuedUnit7EditPart.VISUAL_ID) {
+ result.add(new ComrelNodeDescriptor(childElement, visualID));
+ }
+ if (visualID == SingleQueuedUnit7EditPart.VISUAL_ID) {
+ result.add(new ComrelNodeDescriptor(childElement, visualID));
+ }
+ if (visualID == SequentialUnit7EditPart.VISUAL_ID) {
+ result.add(new ComrelNodeDescriptor(childElement, visualID));
+ }
+ if (visualID == ConditionalUnit7EditPart.VISUAL_ID) {
+ result.add(new ComrelNodeDescriptor(childElement, visualID));
+ }
+ if (visualID == AtomicUnit7EditPart.VISUAL_ID) {
+ result.add(new ComrelNodeDescriptor(childElement, visualID));
+ }
+ }
+ return result;
+ }
+
+ /**
+ * @generated
+ */
+ public static List<ComrelNodeDescriptor> getConditionalUnitConditionalUnitIfCompartment_7065SemanticChildren(
+ View view) {
+ if (false == view.eContainer() instanceof View) {
+ return Collections.emptyList();
+ }
+ View containerView = (View) view.eContainer();
+ if (!containerView.isSetElement()) {
+ return Collections.emptyList();
+ }
+ ConditionalUnit modelElement = (ConditionalUnit) containerView
+ .getElement();
+ LinkedList<ComrelNodeDescriptor> result = new LinkedList<ComrelNodeDescriptor>();
+ {
+ ConditionCheck childElement = modelElement.getIf();
+ int visualID = ComrelVisualIDRegistry.getNodeVisualID(view,
+ childElement);
+ if (visualID == ConditionCheckEditPart.VISUAL_ID) {
+ result.add(new ComrelNodeDescriptor(childElement, visualID));
+ }
+ }
+ return result;
+ }
+
+ /**
+ * @generated
+ */
+ public static List<ComrelNodeDescriptor> getConditionalUnitConditionalUnitHelperUnitsCompartment_7066SemanticChildren(
+ View view) {
+ if (false == view.eContainer() instanceof View) {
+ return Collections.emptyList();
+ }
+ View containerView = (View) view.eContainer();
+ if (!containerView.isSetElement()) {
+ return Collections.emptyList();
+ }
+ ConditionalUnit modelElement = (ConditionalUnit) containerView
+ .getElement();
+ LinkedList<ComrelNodeDescriptor> result = new LinkedList<ComrelNodeDescriptor>();
+ for (Iterator<?> it = modelElement.getHelperUnits().iterator(); it
+ .hasNext();) {
+ HelperUnit childElement = (HelperUnit) it.next();
+ int visualID = ComrelVisualIDRegistry.getNodeVisualID(view,
+ childElement);
+ if (visualID == SingleFeatureUnit3EditPart.VISUAL_ID) {
+ result.add(new ComrelNodeDescriptor(childElement, visualID));
+ continue;
+ }
+ if (visualID == MultiFeatureUnit3EditPart.VISUAL_ID) {
+ result.add(new ComrelNodeDescriptor(childElement, visualID));
+ continue;
+ }
+ if (visualID == SingleFilterUnit3EditPart.VISUAL_ID) {
+ result.add(new ComrelNodeDescriptor(childElement, visualID));
+ continue;
+ }
+ if (visualID == MultiFilterUnit3EditPart.VISUAL_ID) {
+ result.add(new ComrelNodeDescriptor(childElement, visualID));
+ continue;
+ }
+ }
+ return result;
+ }
+
+ /**
+ * @generated
+ */
+ public static List<ComrelNodeDescriptor> getConditionalUnitConditionalUnitThenCompartment_7067SemanticChildren(
+ View view) {
+ if (false == view.eContainer() instanceof View) {
+ return Collections.emptyList();
+ }
+ View containerView = (View) view.eContainer();
+ if (!containerView.isSetElement()) {
+ return Collections.emptyList();
+ }
+ ConditionalUnit modelElement = (ConditionalUnit) containerView
+ .getElement();
+ LinkedList<ComrelNodeDescriptor> result = new LinkedList<ComrelNodeDescriptor>();
+ {
+ RefactoringUnit childElement = modelElement.getThen();
+ int visualID = ComrelVisualIDRegistry.getNodeVisualID(view,
+ childElement);
+ if (visualID == CartesianQueuedUnit6EditPart.VISUAL_ID) {
+ result.add(new ComrelNodeDescriptor(childElement, visualID));
+ }
+ if (visualID == ParallelQueuedUnit3EditPart.VISUAL_ID) {
+ result.add(new ComrelNodeDescriptor(childElement, visualID));
+ }
+ if (visualID == SingleQueuedUnit4EditPart.VISUAL_ID) {
+ result.add(new ComrelNodeDescriptor(childElement, visualID));
+ }
+ if (visualID == SequentialUnit5EditPart.VISUAL_ID) {
+ result.add(new ComrelNodeDescriptor(childElement, visualID));
+ }
+ if (visualID == ConditionalUnit6EditPart.VISUAL_ID) {
+ result.add(new ComrelNodeDescriptor(childElement, visualID));
+ }
+ if (visualID == AtomicUnit6EditPart.VISUAL_ID) {
+ result.add(new ComrelNodeDescriptor(childElement, visualID));
+ }
+ }
+ return result;
+ }
+
+ /**
+ * @generated
+ */
+ public static List<ComrelNodeDescriptor> getConditionalUnitConditionalUnitElseCompartment_7068SemanticChildren(
+ View view) {
+ if (false == view.eContainer() instanceof View) {
+ return Collections.emptyList();
+ }
+ View containerView = (View) view.eContainer();
+ if (!containerView.isSetElement()) {
+ return Collections.emptyList();
+ }
+ ConditionalUnit modelElement = (ConditionalUnit) containerView
+ .getElement();
+ LinkedList<ComrelNodeDescriptor> result = new LinkedList<ComrelNodeDescriptor>();
+ {
+ RefactoringUnit childElement = modelElement.getElse();
+ int visualID = ComrelVisualIDRegistry.getNodeVisualID(view,
+ childElement);
+ if (visualID == CartesianQueuedUnit7EditPart.VISUAL_ID) {
+ result.add(new ComrelNodeDescriptor(childElement, visualID));
+ }
+ if (visualID == ParallelQueuedUnit7EditPart.VISUAL_ID) {
+ result.add(new ComrelNodeDescriptor(childElement, visualID));
+ }
+ if (visualID == SingleQueuedUnit7EditPart.VISUAL_ID) {
+ result.add(new ComrelNodeDescriptor(childElement, visualID));
+ }
+ if (visualID == SequentialUnit7EditPart.VISUAL_ID) {
+ result.add(new ComrelNodeDescriptor(childElement, visualID));
+ }
+ if (visualID == ConditionalUnit7EditPart.VISUAL_ID) {
+ result.add(new ComrelNodeDescriptor(childElement, visualID));
+ }
+ if (visualID == AtomicUnit7EditPart.VISUAL_ID) {
+ result.add(new ComrelNodeDescriptor(childElement, visualID));
+ }
+ }
+ return result;
+ }
+
+ /**
+ * @generated
+ */
+ public static List<ComrelNodeDescriptor> getSequentialUnitSequentialUnitHelperUnitsCompartment_7069SemanticChildren(
+ View view) {
+ if (false == view.eContainer() instanceof View) {
+ return Collections.emptyList();
+ }
+ View containerView = (View) view.eContainer();
+ if (!containerView.isSetElement()) {
+ return Collections.emptyList();
+ }
+ SequentialUnit modelElement = (SequentialUnit) containerView
+ .getElement();
+ LinkedList<ComrelNodeDescriptor> result = new LinkedList<ComrelNodeDescriptor>();
+ for (Iterator<?> it = modelElement.getHelperUnits().iterator(); it
+ .hasNext();) {
+ HelperUnit childElement = (HelperUnit) it.next();
+ int visualID = ComrelVisualIDRegistry.getNodeVisualID(view,
+ childElement);
+ if (visualID == SingleFeatureUnit5EditPart.VISUAL_ID) {
+ result.add(new ComrelNodeDescriptor(childElement, visualID));
+ continue;
+ }
+ if (visualID == MultiFeatureUnit5EditPart.VISUAL_ID) {
+ result.add(new ComrelNodeDescriptor(childElement, visualID));
+ continue;
+ }
+ if (visualID == SingleFilterUnit5EditPart.VISUAL_ID) {
+ result.add(new ComrelNodeDescriptor(childElement, visualID));
+ continue;
+ }
+ if (visualID == MultiFilterUnit5EditPart.VISUAL_ID) {
+ result.add(new ComrelNodeDescriptor(childElement, visualID));
+ continue;
+ }
+ }
+ return result;
+ }
+
+ /**
+ * @generated
+ */
+ public static List<ComrelNodeDescriptor> getSequentialUnitSequentialUnitRefactoringUnitsCompartment_7070SemanticChildren(
+ View view) {
+ if (false == view.eContainer() instanceof View) {
+ return Collections.emptyList();
+ }
+ View containerView = (View) view.eContainer();
+ if (!containerView.isSetElement()) {
+ return Collections.emptyList();
+ }
+ SequentialUnit modelElement = (SequentialUnit) containerView
+ .getElement();
+ LinkedList<ComrelNodeDescriptor> result = new LinkedList<ComrelNodeDescriptor>();
+ for (Iterator<?> it = modelElement.getRefactoringUnits().iterator(); it
+ .hasNext();) {
+ RefactoringUnit childElement = (RefactoringUnit) it.next();
+ int visualID = ComrelVisualIDRegistry.getNodeVisualID(view,
+ childElement);
+ if (visualID == CartesianQueuedUnit5EditPart.VISUAL_ID) {
+ result.add(new ComrelNodeDescriptor(childElement, visualID));
+ continue;
+ }
+ if (visualID == ParallelQueuedUnit6EditPart.VISUAL_ID) {
+ result.add(new ComrelNodeDescriptor(childElement, visualID));
+ continue;
+ }
+ if (visualID == SingleQueuedUnit6EditPart.VISUAL_ID) {
+ result.add(new ComrelNodeDescriptor(childElement, visualID));
+ continue;
+ }
+ if (visualID == SequentialUnit6EditPart.VISUAL_ID) {
+ result.add(new ComrelNodeDescriptor(childElement, visualID));
+ continue;
+ }
+ if (visualID == ConditionalUnit5EditPart.VISUAL_ID) {
+ result.add(new ComrelNodeDescriptor(childElement, visualID));
+ continue;
+ }
+ if (visualID == AtomicUnit5EditPart.VISUAL_ID) {
+ result.add(new ComrelNodeDescriptor(childElement, visualID));
+ continue;
+ }
+ }
+ return result;
+ }
+
+ /**
+ * @generated
+ */
+ public static List<ComrelNodeDescriptor> getConditionalUnitConditionalUnitIfCompartment_7071SemanticChildren(
+ View view) {
+ if (false == view.eContainer() instanceof View) {
+ return Collections.emptyList();
+ }
+ View containerView = (View) view.eContainer();
+ if (!containerView.isSetElement()) {
+ return Collections.emptyList();
+ }
+ ConditionalUnit modelElement = (ConditionalUnit) containerView
+ .getElement();
+ LinkedList<ComrelNodeDescriptor> result = new LinkedList<ComrelNodeDescriptor>();
+ {
+ ConditionCheck childElement = modelElement.getIf();
+ int visualID = ComrelVisualIDRegistry.getNodeVisualID(view,
+ childElement);
+ if (visualID == ConditionCheckEditPart.VISUAL_ID) {
+ result.add(new ComrelNodeDescriptor(childElement, visualID));
+ }
+ }
+ return result;
+ }
+
+ /**
+ * @generated
+ */
+ public static List<ComrelNodeDescriptor> getConditionalUnitConditionalUnitHelperUnitsCompartment_7072SemanticChildren(
+ View view) {
+ if (false == view.eContainer() instanceof View) {
+ return Collections.emptyList();
+ }
+ View containerView = (View) view.eContainer();
+ if (!containerView.isSetElement()) {
+ return Collections.emptyList();
+ }
+ ConditionalUnit modelElement = (ConditionalUnit) containerView
+ .getElement();
+ LinkedList<ComrelNodeDescriptor> result = new LinkedList<ComrelNodeDescriptor>();
+ for (Iterator<?> it = modelElement.getHelperUnits().iterator(); it
+ .hasNext();) {
+ HelperUnit childElement = (HelperUnit) it.next();
+ int visualID = ComrelVisualIDRegistry.getNodeVisualID(view,
+ childElement);
+ if (visualID == SingleFeatureUnit3EditPart.VISUAL_ID) {
+ result.add(new ComrelNodeDescriptor(childElement, visualID));
+ continue;
+ }
+ if (visualID == MultiFeatureUnit3EditPart.VISUAL_ID) {
+ result.add(new ComrelNodeDescriptor(childElement, visualID));
+ continue;
+ }
+ if (visualID == SingleFilterUnit3EditPart.VISUAL_ID) {
+ result.add(new ComrelNodeDescriptor(childElement, visualID));
+ continue;
+ }
+ if (visualID == MultiFilterUnit3EditPart.VISUAL_ID) {
+ result.add(new ComrelNodeDescriptor(childElement, visualID));
+ continue;
+ }
+ }
+ return result;
+ }
+
+ /**
+ * @generated
+ */
+ public static List<ComrelNodeDescriptor> getConditionalUnitConditionalUnitThenCompartment_7073SemanticChildren(
+ View view) {
+ if (false == view.eContainer() instanceof View) {
+ return Collections.emptyList();
+ }
+ View containerView = (View) view.eContainer();
+ if (!containerView.isSetElement()) {
+ return Collections.emptyList();
+ }
+ ConditionalUnit modelElement = (ConditionalUnit) containerView
+ .getElement();
+ LinkedList<ComrelNodeDescriptor> result = new LinkedList<ComrelNodeDescriptor>();
+ {
+ RefactoringUnit childElement = modelElement.getThen();
+ int visualID = ComrelVisualIDRegistry.getNodeVisualID(view,
+ childElement);
+ if (visualID == CartesianQueuedUnit6EditPart.VISUAL_ID) {
+ result.add(new ComrelNodeDescriptor(childElement, visualID));
+ }
+ if (visualID == ParallelQueuedUnit3EditPart.VISUAL_ID) {
+ result.add(new ComrelNodeDescriptor(childElement, visualID));
+ }
+ if (visualID == SingleQueuedUnit4EditPart.VISUAL_ID) {
+ result.add(new ComrelNodeDescriptor(childElement, visualID));
+ }
+ if (visualID == SequentialUnit5EditPart.VISUAL_ID) {
+ result.add(new ComrelNodeDescriptor(childElement, visualID));
+ }
+ if (visualID == ConditionalUnit6EditPart.VISUAL_ID) {
+ result.add(new ComrelNodeDescriptor(childElement, visualID));
+ }
+ if (visualID == AtomicUnit6EditPart.VISUAL_ID) {
+ result.add(new ComrelNodeDescriptor(childElement, visualID));
+ }
+ }
+ return result;
+ }
+
+ /**
+ * @generated
+ */
+ public static List<ComrelNodeDescriptor> getConditionalUnitConditionalUnitElseCompartment_7074SemanticChildren(
+ View view) {
+ if (false == view.eContainer() instanceof View) {
+ return Collections.emptyList();
+ }
+ View containerView = (View) view.eContainer();
+ if (!containerView.isSetElement()) {
+ return Collections.emptyList();
+ }
+ ConditionalUnit modelElement = (ConditionalUnit) containerView
+ .getElement();
+ LinkedList<ComrelNodeDescriptor> result = new LinkedList<ComrelNodeDescriptor>();
+ {
+ RefactoringUnit childElement = modelElement.getElse();
+ int visualID = ComrelVisualIDRegistry.getNodeVisualID(view,
+ childElement);
+ if (visualID == CartesianQueuedUnit7EditPart.VISUAL_ID) {
+ result.add(new ComrelNodeDescriptor(childElement, visualID));
+ }
+ if (visualID == ParallelQueuedUnit7EditPart.VISUAL_ID) {
+ result.add(new ComrelNodeDescriptor(childElement, visualID));
+ }
+ if (visualID == SingleQueuedUnit7EditPart.VISUAL_ID) {
+ result.add(new ComrelNodeDescriptor(childElement, visualID));
+ }
+ if (visualID == SequentialUnit7EditPart.VISUAL_ID) {
+ result.add(new ComrelNodeDescriptor(childElement, visualID));
+ }
+ if (visualID == ConditionalUnit7EditPart.VISUAL_ID) {
+ result.add(new ComrelNodeDescriptor(childElement, visualID));
+ }
+ if (visualID == AtomicUnit7EditPart.VISUAL_ID) {
+ result.add(new ComrelNodeDescriptor(childElement, visualID));
+ }
+ }
+ return result;
+ }
+
+ /**
+ * @generated
+ */
+ public static List<ComrelNodeDescriptor> getParallelQueuedUnitParallelQueuedUnitHelperUnitsCompartment_7075SemanticChildren(
+ View view) {
+ if (false == view.eContainer() instanceof View) {
+ return Collections.emptyList();
+ }
+ View containerView = (View) view.eContainer();
+ if (!containerView.isSetElement()) {
+ return Collections.emptyList();
+ }
+ ParallelQueuedUnit modelElement = (ParallelQueuedUnit) containerView
+ .getElement();
+ LinkedList<ComrelNodeDescriptor> result = new LinkedList<ComrelNodeDescriptor>();
+ for (Iterator<?> it = modelElement.getHelperUnits().iterator(); it
+ .hasNext();) {
+ HelperUnit childElement = (HelperUnit) it.next();
+ int visualID = ComrelVisualIDRegistry.getNodeVisualID(view,
+ childElement);
+ if (visualID == SingleFeatureUnit2EditPart.VISUAL_ID) {
+ result.add(new ComrelNodeDescriptor(childElement, visualID));
+ continue;
+ }
+ if (visualID == MultiFeatureUnit2EditPart.VISUAL_ID) {
+ result.add(new ComrelNodeDescriptor(childElement, visualID));
+ continue;
+ }
+ if (visualID == SingleFilterUnit2EditPart.VISUAL_ID) {
+ result.add(new ComrelNodeDescriptor(childElement, visualID));
+ continue;
+ }
+ if (visualID == MultiFilterUnit2EditPart.VISUAL_ID) {
+ result.add(new ComrelNodeDescriptor(childElement, visualID));
+ continue;
+ }
+ }
+ return result;
+ }
+
+ /**
+ * @generated
+ */
+ public static List<ComrelNodeDescriptor> getParallelQueuedUnitParallelQueuedUnitRefactoringUnitsCompartment_7076SemanticChildren(
+ View view) {
+ if (false == view.eContainer() instanceof View) {
+ return Collections.emptyList();
+ }
+ View containerView = (View) view.eContainer();
+ if (!containerView.isSetElement()) {
+ return Collections.emptyList();
+ }
+ ParallelQueuedUnit modelElement = (ParallelQueuedUnit) containerView
+ .getElement();
+ LinkedList<ComrelNodeDescriptor> result = new LinkedList<ComrelNodeDescriptor>();
+ {
+ RefactoringUnit childElement = modelElement.getRefactoringUnits();
+ int visualID = ComrelVisualIDRegistry.getNodeVisualID(view,
+ childElement);
+ if (visualID == CartesianQueuedUnit3EditPart.VISUAL_ID) {
+ result.add(new ComrelNodeDescriptor(childElement, visualID));
+ }
+ if (visualID == ParallelQueuedUnit4EditPart.VISUAL_ID) {
+ result.add(new ComrelNodeDescriptor(childElement, visualID));
+ }
+ if (visualID == SingleQueuedUnit3EditPart.VISUAL_ID) {
+ result.add(new ComrelNodeDescriptor(childElement, visualID));
+ }
+ if (visualID == SequentialUnit3EditPart.VISUAL_ID) {
+ result.add(new ComrelNodeDescriptor(childElement, visualID));
+ }
+ if (visualID == ConditionalUnit3EditPart.VISUAL_ID) {
+ result.add(new ComrelNodeDescriptor(childElement, visualID));
+ }
+ if (visualID == AtomicUnit3EditPart.VISUAL_ID) {
+ result.add(new ComrelNodeDescriptor(childElement, visualID));
+ }
+ }
+ return result;
+ }
+
+ /**
+ * @generated
+ */
+ public static List<ComrelNodeDescriptor> getSingleQueuedUnitSingleQueuedUnitHelperUnitsCompartment_7077SemanticChildren(
+ View view) {
+ if (false == view.eContainer() instanceof View) {
+ return Collections.emptyList();
+ }
+ View containerView = (View) view.eContainer();
+ if (!containerView.isSetElement()) {
+ return Collections.emptyList();
+ }
+ SingleQueuedUnit modelElement = (SingleQueuedUnit) containerView
+ .getElement();
+ LinkedList<ComrelNodeDescriptor> result = new LinkedList<ComrelNodeDescriptor>();
+ for (Iterator<?> it = modelElement.getHelperUnits().iterator(); it
+ .hasNext();) {
+ HelperUnit childElement = (HelperUnit) it.next();
+ int visualID = ComrelVisualIDRegistry.getNodeVisualID(view,
+ childElement);
+ if (visualID == SingleFeatureUnit4EditPart.VISUAL_ID) {
+ result.add(new ComrelNodeDescriptor(childElement, visualID));
+ continue;
+ }
+ if (visualID == MultiFeatureUnit4EditPart.VISUAL_ID) {
+ result.add(new ComrelNodeDescriptor(childElement, visualID));
+ continue;
+ }
+ if (visualID == SingleFilterUnit4EditPart.VISUAL_ID) {
+ result.add(new ComrelNodeDescriptor(childElement, visualID));
+ continue;
+ }
+ if (visualID == MultiFilterUnit4EditPart.VISUAL_ID) {
+ result.add(new ComrelNodeDescriptor(childElement, visualID));
+ continue;
+ }
+ }
+ return result;
+ }
+
+ /**
+ * @generated
+ */
+ public static List<ComrelNodeDescriptor> getSingleQueuedUnitSingleQueuedUnitRefactoringUnitCompartment_7078SemanticChildren(
+ View view) {
+ if (false == view.eContainer() instanceof View) {
+ return Collections.emptyList();
+ }
+ View containerView = (View) view.eContainer();
+ if (!containerView.isSetElement()) {
+ return Collections.emptyList();
+ }
+ SingleQueuedUnit modelElement = (SingleQueuedUnit) containerView
+ .getElement();
+ LinkedList<ComrelNodeDescriptor> result = new LinkedList<ComrelNodeDescriptor>();
+ {
+ RefactoringUnit childElement = modelElement.getRefactoringUnit();
+ int visualID = ComrelVisualIDRegistry.getNodeVisualID(view,
+ childElement);
+ if (visualID == CartesianQueuedUnit4EditPart.VISUAL_ID) {
+ result.add(new ComrelNodeDescriptor(childElement, visualID));
+ }
+ if (visualID == ParallelQueuedUnit5EditPart.VISUAL_ID) {
+ result.add(new ComrelNodeDescriptor(childElement, visualID));
+ }
+ if (visualID == SingleQueuedUnit5EditPart.VISUAL_ID) {
+ result.add(new ComrelNodeDescriptor(childElement, visualID));
+ }
+ if (visualID == SequentialUnit4EditPart.VISUAL_ID) {
+ result.add(new ComrelNodeDescriptor(childElement, visualID));
+ }
+ if (visualID == ConditionalUnit4EditPart.VISUAL_ID) {
+ result.add(new ComrelNodeDescriptor(childElement, visualID));
+ }
+ if (visualID == AtomicUnit4EditPart.VISUAL_ID) {
+ result.add(new ComrelNodeDescriptor(childElement, visualID));
+ }
+ }
+ return result;
+ }
+
+ /**
+ * @generated
+ */
+ public static List<ComrelNodeDescriptor> getSequentialUnitSequentialUnitHelperUnitsCompartment_7079SemanticChildren(
+ View view) {
+ if (false == view.eContainer() instanceof View) {
+ return Collections.emptyList();
+ }
+ View containerView = (View) view.eContainer();
+ if (!containerView.isSetElement()) {
+ return Collections.emptyList();
+ }
+ SequentialUnit modelElement = (SequentialUnit) containerView
+ .getElement();
+ LinkedList<ComrelNodeDescriptor> result = new LinkedList<ComrelNodeDescriptor>();
+ for (Iterator<?> it = modelElement.getHelperUnits().iterator(); it
+ .hasNext();) {
+ HelperUnit childElement = (HelperUnit) it.next();
+ int visualID = ComrelVisualIDRegistry.getNodeVisualID(view,
+ childElement);
+ if (visualID == SingleFeatureUnit5EditPart.VISUAL_ID) {
+ result.add(new ComrelNodeDescriptor(childElement, visualID));
+ continue;
+ }
+ if (visualID == MultiFeatureUnit5EditPart.VISUAL_ID) {
+ result.add(new ComrelNodeDescriptor(childElement, visualID));
+ continue;
+ }
+ if (visualID == SingleFilterUnit5EditPart.VISUAL_ID) {
+ result.add(new ComrelNodeDescriptor(childElement, visualID));
+ continue;
+ }
+ if (visualID == MultiFilterUnit5EditPart.VISUAL_ID) {
+ result.add(new ComrelNodeDescriptor(childElement, visualID));
+ continue;
+ }
+ }
+ return result;
+ }
+
+ /**
+ * @generated
+ */
+ public static List<ComrelNodeDescriptor> getSequentialUnitSequentialUnitRefactoringUnitsCompartment_7080SemanticChildren(
+ View view) {
+ if (false == view.eContainer() instanceof View) {
+ return Collections.emptyList();
+ }
+ View containerView = (View) view.eContainer();
+ if (!containerView.isSetElement()) {
+ return Collections.emptyList();
+ }
+ SequentialUnit modelElement = (SequentialUnit) containerView
+ .getElement();
+ LinkedList<ComrelNodeDescriptor> result = new LinkedList<ComrelNodeDescriptor>();
+ for (Iterator<?> it = modelElement.getRefactoringUnits().iterator(); it
+ .hasNext();) {
+ RefactoringUnit childElement = (RefactoringUnit) it.next();
+ int visualID = ComrelVisualIDRegistry.getNodeVisualID(view,
+ childElement);
+ if (visualID == CartesianQueuedUnit5EditPart.VISUAL_ID) {
+ result.add(new ComrelNodeDescriptor(childElement, visualID));
+ continue;
+ }
+ if (visualID == ParallelQueuedUnit6EditPart.VISUAL_ID) {
+ result.add(new ComrelNodeDescriptor(childElement, visualID));
+ continue;
+ }
+ if (visualID == SingleQueuedUnit6EditPart.VISUAL_ID) {
+ result.add(new ComrelNodeDescriptor(childElement, visualID));
+ continue;
+ }
+ if (visualID == SequentialUnit6EditPart.VISUAL_ID) {
+ result.add(new ComrelNodeDescriptor(childElement, visualID));
+ continue;
+ }
+ if (visualID == ConditionalUnit5EditPart.VISUAL_ID) {
+ result.add(new ComrelNodeDescriptor(childElement, visualID));
+ continue;
+ }
+ if (visualID == AtomicUnit5EditPart.VISUAL_ID) {
+ result.add(new ComrelNodeDescriptor(childElement, visualID));
+ continue;
+ }
+ }
+ return result;
+ }
+
+ /**
+ * @generated
+ */
+ public static List<ComrelNodeDescriptor> getConditionalUnitConditionalUnitIfCompartment_7081SemanticChildren(
+ View view) {
+ if (false == view.eContainer() instanceof View) {
+ return Collections.emptyList();
+ }
+ View containerView = (View) view.eContainer();
+ if (!containerView.isSetElement()) {
+ return Collections.emptyList();
+ }
+ ConditionalUnit modelElement = (ConditionalUnit) containerView
+ .getElement();
+ LinkedList<ComrelNodeDescriptor> result = new LinkedList<ComrelNodeDescriptor>();
+ {
+ ConditionCheck childElement = modelElement.getIf();
+ int visualID = ComrelVisualIDRegistry.getNodeVisualID(view,
+ childElement);
+ if (visualID == ConditionCheckEditPart.VISUAL_ID) {
+ result.add(new ComrelNodeDescriptor(childElement, visualID));
+ }
+ }
+ return result;
+ }
+
+ /**
+ * @generated
+ */
+ public static List<ComrelNodeDescriptor> getConditionalUnitConditionalUnitHelperUnitsCompartment_7082SemanticChildren(
+ View view) {
+ if (false == view.eContainer() instanceof View) {
+ return Collections.emptyList();
+ }
+ View containerView = (View) view.eContainer();
+ if (!containerView.isSetElement()) {
+ return Collections.emptyList();
+ }
+ ConditionalUnit modelElement = (ConditionalUnit) containerView
+ .getElement();
+ LinkedList<ComrelNodeDescriptor> result = new LinkedList<ComrelNodeDescriptor>();
+ for (Iterator<?> it = modelElement.getHelperUnits().iterator(); it
+ .hasNext();) {
+ HelperUnit childElement = (HelperUnit) it.next();
+ int visualID = ComrelVisualIDRegistry.getNodeVisualID(view,
+ childElement);
+ if (visualID == SingleFeatureUnit3EditPart.VISUAL_ID) {
+ result.add(new ComrelNodeDescriptor(childElement, visualID));
+ continue;
+ }
+ if (visualID == MultiFeatureUnit3EditPart.VISUAL_ID) {
+ result.add(new ComrelNodeDescriptor(childElement, visualID));
+ continue;
+ }
+ if (visualID == SingleFilterUnit3EditPart.VISUAL_ID) {
+ result.add(new ComrelNodeDescriptor(childElement, visualID));
+ continue;
+ }
+ if (visualID == MultiFilterUnit3EditPart.VISUAL_ID) {
+ result.add(new ComrelNodeDescriptor(childElement, visualID));
+ continue;
+ }
+ }
+ return result;
+ }
+
+ /**
+ * @generated
+ */
+ public static List<ComrelNodeDescriptor> getConditionalUnitConditionalUnitThenCompartment_7083SemanticChildren(
+ View view) {
+ if (false == view.eContainer() instanceof View) {
+ return Collections.emptyList();
+ }
+ View containerView = (View) view.eContainer();
+ if (!containerView.isSetElement()) {
+ return Collections.emptyList();
+ }
+ ConditionalUnit modelElement = (ConditionalUnit) containerView
+ .getElement();
+ LinkedList<ComrelNodeDescriptor> result = new LinkedList<ComrelNodeDescriptor>();
+ {
+ RefactoringUnit childElement = modelElement.getThen();
+ int visualID = ComrelVisualIDRegistry.getNodeVisualID(view,
+ childElement);
+ if (visualID == CartesianQueuedUnit6EditPart.VISUAL_ID) {
+ result.add(new ComrelNodeDescriptor(childElement, visualID));
+ }
+ if (visualID == ParallelQueuedUnit3EditPart.VISUAL_ID) {
+ result.add(new ComrelNodeDescriptor(childElement, visualID));
+ }
+ if (visualID == SingleQueuedUnit4EditPart.VISUAL_ID) {
+ result.add(new ComrelNodeDescriptor(childElement, visualID));
+ }
+ if (visualID == SequentialUnit5EditPart.VISUAL_ID) {
+ result.add(new ComrelNodeDescriptor(childElement, visualID));
+ }
+ if (visualID == ConditionalUnit6EditPart.VISUAL_ID) {
+ result.add(new ComrelNodeDescriptor(childElement, visualID));
+ }
+ if (visualID == AtomicUnit6EditPart.VISUAL_ID) {
+ result.add(new ComrelNodeDescriptor(childElement, visualID));
+ }
+ }
+ return result;
+ }
+
+ /**
+ * @generated
+ */
+ public static List<ComrelNodeDescriptor> getConditionalUnitConditionalUnitElseCompartment_7084SemanticChildren(
+ View view) {
+ if (false == view.eContainer() instanceof View) {
+ return Collections.emptyList();
+ }
+ View containerView = (View) view.eContainer();
+ if (!containerView.isSetElement()) {
+ return Collections.emptyList();
+ }
+ ConditionalUnit modelElement = (ConditionalUnit) containerView
+ .getElement();
+ LinkedList<ComrelNodeDescriptor> result = new LinkedList<ComrelNodeDescriptor>();
+ {
+ RefactoringUnit childElement = modelElement.getElse();
+ int visualID = ComrelVisualIDRegistry.getNodeVisualID(view,
+ childElement);
+ if (visualID == CartesianQueuedUnit7EditPart.VISUAL_ID) {
+ result.add(new ComrelNodeDescriptor(childElement, visualID));
+ }
+ if (visualID == ParallelQueuedUnit7EditPart.VISUAL_ID) {
+ result.add(new ComrelNodeDescriptor(childElement, visualID));
+ }
+ if (visualID == SingleQueuedUnit7EditPart.VISUAL_ID) {
+ result.add(new ComrelNodeDescriptor(childElement, visualID));
+ }
+ if (visualID == SequentialUnit7EditPart.VISUAL_ID) {
+ result.add(new ComrelNodeDescriptor(childElement, visualID));
+ }
+ if (visualID == ConditionalUnit7EditPart.VISUAL_ID) {
+ result.add(new ComrelNodeDescriptor(childElement, visualID));
+ }
+ if (visualID == AtomicUnit7EditPart.VISUAL_ID) {
+ result.add(new ComrelNodeDescriptor(childElement, visualID));
+ }
+ }
+ return result;
+ }
+
+ /**
+ * @generated
+ */
+ public static List<ComrelLinkDescriptor> getContainedLinks(View view) {
+ switch (ComrelVisualIDRegistry.getVisualID(view)) {
+ case CompositeRefactoringEditPart.VISUAL_ID:
+ return getCompositeRefactoring_1000ContainedLinks(view);
+ case SingleInputPortEditPart.VISUAL_ID:
+ return getSingleInputPort_2001ContainedLinks(view);
+ case CartesianQueuedUnitEditPart.VISUAL_ID:
+ return getCartesianQueuedUnit_2002ContainedLinks(view);
+ case ParallelQueuedUnitEditPart.VISUAL_ID:
+ return getParallelQueuedUnit_2003ContainedLinks(view);
+ case SingleQueuedUnitEditPart.VISUAL_ID:
+ return getSingleQueuedUnit_2004ContainedLinks(view);
+ case SequentialUnitEditPart.VISUAL_ID:
+ return getSequentialUnit_2005ContainedLinks(view);
+ case ConditionalUnitEditPart.VISUAL_ID:
+ return getConditionalUnit_2006ContainedLinks(view);
+ case AtomicUnitEditPart.VISUAL_ID:
+ return getAtomicUnit_2007ContainedLinks(view);
+ case SingleInputPort2EditPart.VISUAL_ID:
+ return getSingleInputPort_3001ContainedLinks(view);
+ case MultiInputPortEditPart.VISUAL_ID:
+ return getMultiInputPort_3002ContainedLinks(view);
+ case CartesianQueuedUnit2EditPart.VISUAL_ID:
+ return getCartesianQueuedUnit_3003ContainedLinks(view);
+ case ParallelQueuedUnit2EditPart.VISUAL_ID:
+ return getParallelQueuedUnit_3004ContainedLinks(view);
+ case SingleInputPort3EditPart.VISUAL_ID:
+ return getSingleInputPort_3005ContainedLinks(view);
+ case MultiInputPort2EditPart.VISUAL_ID:
+ return getMultiInputPort_3006ContainedLinks(view);
+ case CartesianQueuedUnit3EditPart.VISUAL_ID:
+ return getCartesianQueuedUnit_3007ContainedLinks(view);
+ case SingleFeatureUnitEditPart.VISUAL_ID:
+ return getSingleFeatureUnit_3008ContainedLinks(view);
+ case SingleInputPort4EditPart.VISUAL_ID:
+ return getSingleInputPort_3009ContainedLinks(view);
+ case MultiInputPort3EditPart.VISUAL_ID:
+ return getMultiInputPort_3010ContainedLinks(view);
+ case SingleOutputPortEditPart.VISUAL_ID:
+ return getSingleOutputPort_3011ContainedLinks(view);
+ case MultiFeatureUnitEditPart.VISUAL_ID:
+ return getMultiFeatureUnit_3012ContainedLinks(view);
+ case SingleInputPort5EditPart.VISUAL_ID:
+ return getSingleInputPort_3013ContainedLinks(view);
+ case MultiInputPort4EditPart.VISUAL_ID:
+ return getMultiInputPort_3014ContainedLinks(view);
+ case MultiOutputPortEditPart.VISUAL_ID:
+ return getMultiOutputPort_3015ContainedLinks(view);
+ case SingleFilterUnitEditPart.VISUAL_ID:
+ return getSingleFilterUnit_3016ContainedLinks(view);
+ case MultiInputPort5EditPart.VISUAL_ID:
+ return getMultiInputPort_3017ContainedLinks(view);
+ case SingleOutputPort2EditPart.VISUAL_ID:
+ return getSingleOutputPort_3018ContainedLinks(view);
+ case MultiFilterUnitEditPart.VISUAL_ID:
+ return getMultiFilterUnit_3019ContainedLinks(view);
+ case MultiInputPort6EditPart.VISUAL_ID:
+ return getMultiInputPort_3020ContainedLinks(view);
+ case MultiOutputPort2EditPart.VISUAL_ID:
+ return getMultiOutputPort_3021ContainedLinks(view);
+ case SingleQueuedUnit2EditPart.VISUAL_ID:
+ return getSingleQueuedUnit_3022ContainedLinks(view);
+ case SingleInputPort6EditPart.VISUAL_ID:
+ return getSingleInputPort_3023ContainedLinks(view);
+ case MultiInputPort7EditPart.VISUAL_ID:
+ return getMultiInputPort_3024ContainedLinks(view);
+ case CartesianQueuedUnit4EditPart.VISUAL_ID:
+ return getCartesianQueuedUnit_3025ContainedLinks(view);
+ case SequentialUnit2EditPart.VISUAL_ID:
+ return getSequentialUnit_3026ContainedLinks(view);
+ case SingleInputPort7EditPart.VISUAL_ID:
+ return getSingleInputPort_3027ContainedLinks(view);
+ case MultiInputPort8EditPart.VISUAL_ID:
+ return getMultiInputPort_3028ContainedLinks(view);
+ case CartesianQueuedUnit5EditPart.VISUAL_ID:
+ return getCartesianQueuedUnit_3029ContainedLinks(view);
+ case ConditionalUnit2EditPart.VISUAL_ID:
+ return getConditionalUnit_3030ContainedLinks(view);
+ case SingleInputPort8EditPart.VISUAL_ID:
+ return getSingleInputPort_3031ContainedLinks(view);
+ case MultiInputPort9EditPart.VISUAL_ID:
+ return getMultiInputPort_3032ContainedLinks(view);
+ case CartesianQueuedUnit6EditPart.VISUAL_ID:
+ return getCartesianQueuedUnit_3033ContainedLinks(view);
+ case AtomicUnit2EditPart.VISUAL_ID:
+ return getAtomicUnit_3034ContainedLinks(view);
+ case SingleInputPort9EditPart.VISUAL_ID:
+ return getSingleInputPort_3035ContainedLinks(view);
+ case ParallelQueuedUnit3EditPart.VISUAL_ID:
+ return getParallelQueuedUnit_3036ContainedLinks(view);
+ case ParallelQueuedUnit4EditPart.VISUAL_ID:
+ return getParallelQueuedUnit_3037ContainedLinks(view);
+ case SingleFeatureUnit2EditPart.VISUAL_ID:
+ return getSingleFeatureUnit_3038ContainedLinks(view);
+ case MultiFeatureUnit2EditPart.VISUAL_ID:
+ return getMultiFeatureUnit_3039ContainedLinks(view);
+ case SingleFilterUnit2EditPart.VISUAL_ID:
+ return getSingleFilterUnit_3040ContainedLinks(view);
+ case MultiFilterUnit2EditPart.VISUAL_ID:
+ return getMultiFilterUnit_3041ContainedLinks(view);
+ case SingleQueuedUnit3EditPart.VISUAL_ID:
+ return getSingleQueuedUnit_3042ContainedLinks(view);
+ case ParallelQueuedUnit5EditPart.VISUAL_ID:
+ return getParallelQueuedUnit_3043ContainedLinks(view);
+ case SequentialUnit3EditPart.VISUAL_ID:
+ return getSequentialUnit_3044ContainedLinks(view);
+ case ParallelQueuedUnit6EditPart.VISUAL_ID:
+ return getParallelQueuedUnit_3045ContainedLinks(view);
+ case ConditionalUnit3EditPart.VISUAL_ID:
+ return getConditionalUnit_3046ContainedLinks(view);
+ case CartesianQueuedUnit7EditPart.VISUAL_ID:
+ return getCartesianQueuedUnit_3047ContainedLinks(view);
+ case ParallelQueuedUnit7EditPart.VISUAL_ID:
+ return getParallelQueuedUnit_3048ContainedLinks(view);
+ case AtomicUnit3EditPart.VISUAL_ID:
+ return getAtomicUnit_3049ContainedLinks(view);
+ case SingleFeatureUnit3EditPart.VISUAL_ID:
+ return getSingleFeatureUnit_3050ContainedLinks(view);
+ case MultiFeatureUnit3EditPart.VISUAL_ID:
+ return getMultiFeatureUnit_3051ContainedLinks(view);
+ case SingleFilterUnit3EditPart.VISUAL_ID:
+ return getSingleFilterUnit_3052ContainedLinks(view);
+ case MultiFilterUnit3EditPart.VISUAL_ID:
+ return getMultiFilterUnit_3053ContainedLinks(view);
+ case SingleQueuedUnit4EditPart.VISUAL_ID:
+ return getSingleQueuedUnit_3054ContainedLinks(view);
+ case SingleFeatureUnit4EditPart.VISUAL_ID:
+ return getSingleFeatureUnit_3055ContainedLinks(view);
+ case MultiFeatureUnit4EditPart.VISUAL_ID:
+ return getMultiFeatureUnit_3056ContainedLinks(view);
+ case SingleFilterUnit4EditPart.VISUAL_ID:
+ return getSingleFilterUnit_3057ContainedLinks(view);
+ case MultiFilterUnit4EditPart.VISUAL_ID:
+ return getMultiFilterUnit_3058ContainedLinks(view);
+ case SingleQueuedUnit5EditPart.VISUAL_ID:
+ return getSingleQueuedUnit_3059ContainedLinks(view);
+ case SequentialUnit4EditPart.VISUAL_ID:
+ return getSequentialUnit_3060ContainedLinks(view);
+ case SingleFeatureUnit5EditPart.VISUAL_ID:
+ return getSingleFeatureUnit_3061ContainedLinks(view);
+ case MultiFeatureUnit5EditPart.VISUAL_ID:
+ return getMultiFeatureUnit_3062ContainedLinks(view);
+ case SingleFilterUnit5EditPart.VISUAL_ID:
+ return getSingleFilterUnit_3063ContainedLinks(view);
+ case MultiFilterUnit5EditPart.VISUAL_ID:
+ return getMultiFilterUnit_3064ContainedLinks(view);
+ case SingleQueuedUnit6EditPart.VISUAL_ID:
+ return getSingleQueuedUnit_3065ContainedLinks(view);
+ case ConditionalUnit4EditPart.VISUAL_ID:
+ return getConditionalUnit_3066ContainedLinks(view);
+ case SingleQueuedUnit7EditPart.VISUAL_ID:
+ return getSingleQueuedUnit_3067ContainedLinks(view);
+ case AtomicUnit4EditPart.VISUAL_ID:
+ return getAtomicUnit_3068ContainedLinks(view);
+ case SequentialUnit5EditPart.VISUAL_ID:
+ return getSequentialUnit_3069ContainedLinks(view);
+ case SequentialUnit6EditPart.VISUAL_ID:
+ return getSequentialUnit_3070ContainedLinks(view);
+ case ConditionalUnit5EditPart.VISUAL_ID:
+ return getConditionalUnit_3071ContainedLinks(view);
+ case ConditionalUnit6EditPart.VISUAL_ID:
+ return getConditionalUnit_3072ContainedLinks(view);
+ case SequentialUnit7EditPart.VISUAL_ID:
+ return getSequentialUnit_3073ContainedLinks(view);
+ case AtomicUnit5EditPart.VISUAL_ID:
+ return getAtomicUnit_3074ContainedLinks(view);
+ case ConditionalUnit7EditPart.VISUAL_ID:
+ return getConditionalUnit_3075ContainedLinks(view);
+ case ConditionCheckEditPart.VISUAL_ID:
+ return getConditionCheck_3076ContainedLinks(view);
+ case AtomicUnit6EditPart.VISUAL_ID:
+ return getAtomicUnit_3077ContainedLinks(view);
+ case AtomicUnit7EditPart.VISUAL_ID:
+ return getAtomicUnit_3078ContainedLinks(view);
+ case SinglePortMappingEditPart.VISUAL_ID:
+ return getSinglePortMapping_4001ContainedLinks(view);
+ case MultiPortMappingEditPart.VISUAL_ID:
+ return getMultiPortMapping_4002ContainedLinks(view);
+ case MultiSinglePortMappingEditPart.VISUAL_ID:
+ return getMultiSinglePortMapping_4003ContainedLinks(view);
+ }
+ return Collections.emptyList();
+ }
+
+ /**
+ * @generated
+ */
+ public static List<ComrelLinkDescriptor> getIncomingLinks(View view) {
+ switch (ComrelVisualIDRegistry.getVisualID(view)) {
+ case SingleInputPortEditPart.VISUAL_ID:
+ return getSingleInputPort_2001IncomingLinks(view);
+ case CartesianQueuedUnitEditPart.VISUAL_ID:
+ return getCartesianQueuedUnit_2002IncomingLinks(view);
+ case ParallelQueuedUnitEditPart.VISUAL_ID:
+ return getParallelQueuedUnit_2003IncomingLinks(view);
+ case SingleQueuedUnitEditPart.VISUAL_ID:
+ return getSingleQueuedUnit_2004IncomingLinks(view);
+ case SequentialUnitEditPart.VISUAL_ID:
+ return getSequentialUnit_2005IncomingLinks(view);
+ case ConditionalUnitEditPart.VISUAL_ID:
+ return getConditionalUnit_2006IncomingLinks(view);
+ case AtomicUnitEditPart.VISUAL_ID:
+ return getAtomicUnit_2007IncomingLinks(view);
+ case SingleInputPort2EditPart.VISUAL_ID:
+ return getSingleInputPort_3001IncomingLinks(view);
+ case MultiInputPortEditPart.VISUAL_ID:
+ return getMultiInputPort_3002IncomingLinks(view);
+ case CartesianQueuedUnit2EditPart.VISUAL_ID:
+ return getCartesianQueuedUnit_3003IncomingLinks(view);
+ case ParallelQueuedUnit2EditPart.VISUAL_ID:
+ return getParallelQueuedUnit_3004IncomingLinks(view);
+ case SingleInputPort3EditPart.VISUAL_ID:
+ return getSingleInputPort_3005IncomingLinks(view);
+ case MultiInputPort2EditPart.VISUAL_ID:
+ return getMultiInputPort_3006IncomingLinks(view);
+ case CartesianQueuedUnit3EditPart.VISUAL_ID:
+ return getCartesianQueuedUnit_3007IncomingLinks(view);
+ case SingleFeatureUnitEditPart.VISUAL_ID:
+ return getSingleFeatureUnit_3008IncomingLinks(view);
+ case SingleInputPort4EditPart.VISUAL_ID:
+ return getSingleInputPort_3009IncomingLinks(view);
+ case MultiInputPort3EditPart.VISUAL_ID:
+ return getMultiInputPort_3010IncomingLinks(view);
+ case SingleOutputPortEditPart.VISUAL_ID:
+ return getSingleOutputPort_3011IncomingLinks(view);
+ case MultiFeatureUnitEditPart.VISUAL_ID:
+ return getMultiFeatureUnit_3012IncomingLinks(view);
+ case SingleInputPort5EditPart.VISUAL_ID:
+ return getSingleInputPort_3013IncomingLinks(view);
+ case MultiInputPort4EditPart.VISUAL_ID:
+ return getMultiInputPort_3014IncomingLinks(view);
+ case MultiOutputPortEditPart.VISUAL_ID:
+ return getMultiOutputPort_3015IncomingLinks(view);
+ case SingleFilterUnitEditPart.VISUAL_ID:
+ return getSingleFilterUnit_3016IncomingLinks(view);
+ case MultiInputPort5EditPart.VISUAL_ID:
+ return getMultiInputPort_3017IncomingLinks(view);
+ case SingleOutputPort2EditPart.VISUAL_ID:
+ return getSingleOutputPort_3018IncomingLinks(view);
+ case MultiFilterUnitEditPart.VISUAL_ID:
+ return getMultiFilterUnit_3019IncomingLinks(view);
+ case MultiInputPort6EditPart.VISUAL_ID:
+ return getMultiInputPort_3020IncomingLinks(view);
+ case MultiOutputPort2EditPart.VISUAL_ID:
+ return getMultiOutputPort_3021IncomingLinks(view);
+ case SingleQueuedUnit2EditPart.VISUAL_ID:
+ return getSingleQueuedUnit_3022IncomingLinks(view);
+ case SingleInputPort6EditPart.VISUAL_ID:
+ return getSingleInputPort_3023IncomingLinks(view);
+ case MultiInputPort7EditPart.VISUAL_ID:
+ return getMultiInputPort_3024IncomingLinks(view);
+ case CartesianQueuedUnit4EditPart.VISUAL_ID:
+ return getCartesianQueuedUnit_3025IncomingLinks(view);
+ case SequentialUnit2EditPart.VISUAL_ID:
+ return getSequentialUnit_3026IncomingLinks(view);
+ case SingleInputPort7EditPart.VISUAL_ID:
+ return getSingleInputPort_3027IncomingLinks(view);
+ case MultiInputPort8EditPart.VISUAL_ID:
+ return getMultiInputPort_3028IncomingLinks(view);
+ case CartesianQueuedUnit5EditPart.VISUAL_ID:
+ return getCartesianQueuedUnit_3029IncomingLinks(view);
+ case ConditionalUnit2EditPart.VISUAL_ID:
+ return getConditionalUnit_3030IncomingLinks(view);
+ case SingleInputPort8EditPart.VISUAL_ID:
+ return getSingleInputPort_3031IncomingLinks(view);
+ case MultiInputPort9EditPart.VISUAL_ID:
+ return getMultiInputPort_3032IncomingLinks(view);
+ case CartesianQueuedUnit6EditPart.VISUAL_ID:
+ return getCartesianQueuedUnit_3033IncomingLinks(view);
+ case AtomicUnit2EditPart.VISUAL_ID:
+ return getAtomicUnit_3034IncomingLinks(view);
+ case SingleInputPort9EditPart.VISUAL_ID:
+ return getSingleInputPort_3035IncomingLinks(view);
+ case ParallelQueuedUnit3EditPart.VISUAL_ID:
+ return getParallelQueuedUnit_3036IncomingLinks(view);
+ case ParallelQueuedUnit4EditPart.VISUAL_ID:
+ return getParallelQueuedUnit_3037IncomingLinks(view);
+ case SingleFeatureUnit2EditPart.VISUAL_ID:
+ return getSingleFeatureUnit_3038IncomingLinks(view);
+ case MultiFeatureUnit2EditPart.VISUAL_ID:
+ return getMultiFeatureUnit_3039IncomingLinks(view);
+ case SingleFilterUnit2EditPart.VISUAL_ID:
+ return getSingleFilterUnit_3040IncomingLinks(view);
+ case MultiFilterUnit2EditPart.VISUAL_ID:
+ return getMultiFilterUnit_3041IncomingLinks(view);
+ case SingleQueuedUnit3EditPart.VISUAL_ID:
+ return getSingleQueuedUnit_3042IncomingLinks(view);
+ case ParallelQueuedUnit5EditPart.VISUAL_ID:
+ return getParallelQueuedUnit_3043IncomingLinks(view);
+ case SequentialUnit3EditPart.VISUAL_ID:
+ return getSequentialUnit_3044IncomingLinks(view);
+ case ParallelQueuedUnit6EditPart.VISUAL_ID:
+ return getParallelQueuedUnit_3045IncomingLinks(view);
+ case ConditionalUnit3EditPart.VISUAL_ID:
+ return getConditionalUnit_3046IncomingLinks(view);
+ case CartesianQueuedUnit7EditPart.VISUAL_ID:
+ return getCartesianQueuedUnit_3047IncomingLinks(view);
+ case ParallelQueuedUnit7EditPart.VISUAL_ID:
+ return getParallelQueuedUnit_3048IncomingLinks(view);
+ case AtomicUnit3EditPart.VISUAL_ID:
+ return getAtomicUnit_3049IncomingLinks(view);
+ case SingleFeatureUnit3EditPart.VISUAL_ID:
+ return getSingleFeatureUnit_3050IncomingLinks(view);
+ case MultiFeatureUnit3EditPart.VISUAL_ID:
+ return getMultiFeatureUnit_3051IncomingLinks(view);
+ case SingleFilterUnit3EditPart.VISUAL_ID:
+ return getSingleFilterUnit_3052IncomingLinks(view);
+ case MultiFilterUnit3EditPart.VISUAL_ID:
+ return getMultiFilterUnit_3053IncomingLinks(view);
+ case SingleQueuedUnit4EditPart.VISUAL_ID:
+ return getSingleQueuedUnit_3054IncomingLinks(view);
+ case SingleFeatureUnit4EditPart.VISUAL_ID:
+ return getSingleFeatureUnit_3055IncomingLinks(view);
+ case MultiFeatureUnit4EditPart.VISUAL_ID:
+ return getMultiFeatureUnit_3056IncomingLinks(view);
+ case SingleFilterUnit4EditPart.VISUAL_ID:
+ return getSingleFilterUnit_3057IncomingLinks(view);
+ case MultiFilterUnit4EditPart.VISUAL_ID:
+ return getMultiFilterUnit_3058IncomingLinks(view);
+ case SingleQueuedUnit5EditPart.VISUAL_ID:
+ return getSingleQueuedUnit_3059IncomingLinks(view);
+ case SequentialUnit4EditPart.VISUAL_ID:
+ return getSequentialUnit_3060IncomingLinks(view);
+ case SingleFeatureUnit5EditPart.VISUAL_ID:
+ return getSingleFeatureUnit_3061IncomingLinks(view);
+ case MultiFeatureUnit5EditPart.VISUAL_ID:
+ return getMultiFeatureUnit_3062IncomingLinks(view);
+ case SingleFilterUnit5EditPart.VISUAL_ID:
+ return getSingleFilterUnit_3063IncomingLinks(view);
+ case MultiFilterUnit5EditPart.VISUAL_ID:
+ return getMultiFilterUnit_3064IncomingLinks(view);
+ case SingleQueuedUnit6EditPart.VISUAL_ID:
+ return getSingleQueuedUnit_3065IncomingLinks(view);
+ case ConditionalUnit4EditPart.VISUAL_ID:
+ return getConditionalUnit_3066IncomingLinks(view);
+ case SingleQueuedUnit7EditPart.VISUAL_ID:
+ return getSingleQueuedUnit_3067IncomingLinks(view);
+ case AtomicUnit4EditPart.VISUAL_ID:
+ return getAtomicUnit_3068IncomingLinks(view);
+ case SequentialUnit5EditPart.VISUAL_ID:
+ return getSequentialUnit_3069IncomingLinks(view);
+ case SequentialUnit6EditPart.VISUAL_ID:
+ return getSequentialUnit_3070IncomingLinks(view);
+ case ConditionalUnit5EditPart.VISUAL_ID:
+ return getConditionalUnit_3071IncomingLinks(view);
+ case ConditionalUnit6EditPart.VISUAL_ID:
+ return getConditionalUnit_3072IncomingLinks(view);
+ case SequentialUnit7EditPart.VISUAL_ID:
+ return getSequentialUnit_3073IncomingLinks(view);
+ case AtomicUnit5EditPart.VISUAL_ID:
+ return getAtomicUnit_3074IncomingLinks(view);
+ case ConditionalUnit7EditPart.VISUAL_ID:
+ return getConditionalUnit_3075IncomingLinks(view);
+ case ConditionCheckEditPart.VISUAL_ID:
+ return getConditionCheck_3076IncomingLinks(view);
+ case AtomicUnit6EditPart.VISUAL_ID:
+ return getAtomicUnit_3077IncomingLinks(view);
+ case AtomicUnit7EditPart.VISUAL_ID:
+ return getAtomicUnit_3078IncomingLinks(view);
+ case SinglePortMappingEditPart.VISUAL_ID:
+ return getSinglePortMapping_4001IncomingLinks(view);
+ case MultiPortMappingEditPart.VISUAL_ID:
+ return getMultiPortMapping_4002IncomingLinks(view);
+ case MultiSinglePortMappingEditPart.VISUAL_ID:
+ return getMultiSinglePortMapping_4003IncomingLinks(view);
+ }
+ return Collections.emptyList();
+ }
+
+ /**
+ * @generated
+ */
+ public static List<ComrelLinkDescriptor> getOutgoingLinks(View view) {
+ switch (ComrelVisualIDRegistry.getVisualID(view)) {
+ case SingleInputPortEditPart.VISUAL_ID:
+ return getSingleInputPort_2001OutgoingLinks(view);
+ case CartesianQueuedUnitEditPart.VISUAL_ID:
+ return getCartesianQueuedUnit_2002OutgoingLinks(view);
+ case ParallelQueuedUnitEditPart.VISUAL_ID:
+ return getParallelQueuedUnit_2003OutgoingLinks(view);
+ case SingleQueuedUnitEditPart.VISUAL_ID:
+ return getSingleQueuedUnit_2004OutgoingLinks(view);
+ case SequentialUnitEditPart.VISUAL_ID:
+ return getSequentialUnit_2005OutgoingLinks(view);
+ case ConditionalUnitEditPart.VISUAL_ID:
+ return getConditionalUnit_2006OutgoingLinks(view);
+ case AtomicUnitEditPart.VISUAL_ID:
+ return getAtomicUnit_2007OutgoingLinks(view);
+ case SingleInputPort2EditPart.VISUAL_ID:
+ return getSingleInputPort_3001OutgoingLinks(view);
+ case MultiInputPortEditPart.VISUAL_ID:
+ return getMultiInputPort_3002OutgoingLinks(view);
+ case CartesianQueuedUnit2EditPart.VISUAL_ID:
+ return getCartesianQueuedUnit_3003OutgoingLinks(view);
+ case ParallelQueuedUnit2EditPart.VISUAL_ID:
+ return getParallelQueuedUnit_3004OutgoingLinks(view);
+ case SingleInputPort3EditPart.VISUAL_ID:
+ return getSingleInputPort_3005OutgoingLinks(view);
+ case MultiInputPort2EditPart.VISUAL_ID:
+ return getMultiInputPort_3006OutgoingLinks(view);
+ case CartesianQueuedUnit3EditPart.VISUAL_ID:
+ return getCartesianQueuedUnit_3007OutgoingLinks(view);
+ case SingleFeatureUnitEditPart.VISUAL_ID:
+ return getSingleFeatureUnit_3008OutgoingLinks(view);
+ case SingleInputPort4EditPart.VISUAL_ID:
+ return getSingleInputPort_3009OutgoingLinks(view);
+ case MultiInputPort3EditPart.VISUAL_ID:
+ return getMultiInputPort_3010OutgoingLinks(view);
+ case SingleOutputPortEditPart.VISUAL_ID:
+ return getSingleOutputPort_3011OutgoingLinks(view);
+ case MultiFeatureUnitEditPart.VISUAL_ID:
+ return getMultiFeatureUnit_3012OutgoingLinks(view);
+ case SingleInputPort5EditPart.VISUAL_ID:
+ return getSingleInputPort_3013OutgoingLinks(view);
+ case MultiInputPort4EditPart.VISUAL_ID:
+ return getMultiInputPort_3014OutgoingLinks(view);
+ case MultiOutputPortEditPart.VISUAL_ID:
+ return getMultiOutputPort_3015OutgoingLinks(view);
+ case SingleFilterUnitEditPart.VISUAL_ID:
+ return getSingleFilterUnit_3016OutgoingLinks(view);
+ case MultiInputPort5EditPart.VISUAL_ID:
+ return getMultiInputPort_3017OutgoingLinks(view);
+ case SingleOutputPort2EditPart.VISUAL_ID:
+ return getSingleOutputPort_3018OutgoingLinks(view);
+ case MultiFilterUnitEditPart.VISUAL_ID:
+ return getMultiFilterUnit_3019OutgoingLinks(view);
+ case MultiInputPort6EditPart.VISUAL_ID:
+ return getMultiInputPort_3020OutgoingLinks(view);
+ case MultiOutputPort2EditPart.VISUAL_ID:
+ return getMultiOutputPort_3021OutgoingLinks(view);
+ case SingleQueuedUnit2EditPart.VISUAL_ID:
+ return getSingleQueuedUnit_3022OutgoingLinks(view);
+ case SingleInputPort6EditPart.VISUAL_ID:
+ return getSingleInputPort_3023OutgoingLinks(view);
+ case MultiInputPort7EditPart.VISUAL_ID:
+ return getMultiInputPort_3024OutgoingLinks(view);
+ case CartesianQueuedUnit4EditPart.VISUAL_ID:
+ return getCartesianQueuedUnit_3025OutgoingLinks(view);
+ case SequentialUnit2EditPart.VISUAL_ID:
+ return getSequentialUnit_3026OutgoingLinks(view);
+ case SingleInputPort7EditPart.VISUAL_ID:
+ return getSingleInputPort_3027OutgoingLinks(view);
+ case MultiInputPort8EditPart.VISUAL_ID:
+ return getMultiInputPort_3028OutgoingLinks(view);
+ case CartesianQueuedUnit5EditPart.VISUAL_ID:
+ return getCartesianQueuedUnit_3029OutgoingLinks(view);
+ case ConditionalUnit2EditPart.VISUAL_ID:
+ return getConditionalUnit_3030OutgoingLinks(view);
+ case SingleInputPort8EditPart.VISUAL_ID:
+ return getSingleInputPort_3031OutgoingLinks(view);
+ case MultiInputPort9EditPart.VISUAL_ID:
+ return getMultiInputPort_3032OutgoingLinks(view);
+ case CartesianQueuedUnit6EditPart.VISUAL_ID:
+ return getCartesianQueuedUnit_3033OutgoingLinks(view);
+ case AtomicUnit2EditPart.VISUAL_ID:
+ return getAtomicUnit_3034OutgoingLinks(view);
+ case SingleInputPort9EditPart.VISUAL_ID:
+ return getSingleInputPort_3035OutgoingLinks(view);
+ case ParallelQueuedUnit3EditPart.VISUAL_ID:
+ return getParallelQueuedUnit_3036OutgoingLinks(view);
+ case ParallelQueuedUnit4EditPart.VISUAL_ID:
+ return getParallelQueuedUnit_3037OutgoingLinks(view);
+ case SingleFeatureUnit2EditPart.VISUAL_ID:
+ return getSingleFeatureUnit_3038OutgoingLinks(view);
+ case MultiFeatureUnit2EditPart.VISUAL_ID:
+ return getMultiFeatureUnit_3039OutgoingLinks(view);
+ case SingleFilterUnit2EditPart.VISUAL_ID:
+ return getSingleFilterUnit_3040OutgoingLinks(view);
+ case MultiFilterUnit2EditPart.VISUAL_ID:
+ return getMultiFilterUnit_3041OutgoingLinks(view);
+ case SingleQueuedUnit3EditPart.VISUAL_ID:
+ return getSingleQueuedUnit_3042OutgoingLinks(view);
+ case ParallelQueuedUnit5EditPart.VISUAL_ID:
+ return getParallelQueuedUnit_3043OutgoingLinks(view);
+ case SequentialUnit3EditPart.VISUAL_ID:
+ return getSequentialUnit_3044OutgoingLinks(view);
+ case ParallelQueuedUnit6EditPart.VISUAL_ID:
+ return getParallelQueuedUnit_3045OutgoingLinks(view);
+ case ConditionalUnit3EditPart.VISUAL_ID:
+ return getConditionalUnit_3046OutgoingLinks(view);
+ case CartesianQueuedUnit7EditPart.VISUAL_ID:
+ return getCartesianQueuedUnit_3047OutgoingLinks(view);
+ case ParallelQueuedUnit7EditPart.VISUAL_ID:
+ return getParallelQueuedUnit_3048OutgoingLinks(view);
+ case AtomicUnit3EditPart.VISUAL_ID:
+ return getAtomicUnit_3049OutgoingLinks(view);
+ case SingleFeatureUnit3EditPart.VISUAL_ID:
+ return getSingleFeatureUnit_3050OutgoingLinks(view);
+ case MultiFeatureUnit3EditPart.VISUAL_ID:
+ return getMultiFeatureUnit_3051OutgoingLinks(view);
+ case SingleFilterUnit3EditPart.VISUAL_ID:
+ return getSingleFilterUnit_3052OutgoingLinks(view);
+ case MultiFilterUnit3EditPart.VISUAL_ID:
+ return getMultiFilterUnit_3053OutgoingLinks(view);
+ case SingleQueuedUnit4EditPart.VISUAL_ID:
+ return getSingleQueuedUnit_3054OutgoingLinks(view);
+ case SingleFeatureUnit4EditPart.VISUAL_ID:
+ return getSingleFeatureUnit_3055OutgoingLinks(view);
+ case MultiFeatureUnit4EditPart.VISUAL_ID:
+ return getMultiFeatureUnit_3056OutgoingLinks(view);
+ case SingleFilterUnit4EditPart.VISUAL_ID:
+ return getSingleFilterUnit_3057OutgoingLinks(view);
+ case MultiFilterUnit4EditPart.VISUAL_ID:
+ return getMultiFilterUnit_3058OutgoingLinks(view);
+ case SingleQueuedUnit5EditPart.VISUAL_ID:
+ return getSingleQueuedUnit_3059OutgoingLinks(view);
+ case SequentialUnit4EditPart.VISUAL_ID:
+ return getSequentialUnit_3060OutgoingLinks(view);
+ case SingleFeatureUnit5EditPart.VISUAL_ID:
+ return getSingleFeatureUnit_3061OutgoingLinks(view);
+ case MultiFeatureUnit5EditPart.VISUAL_ID:
+ return getMultiFeatureUnit_3062OutgoingLinks(view);
+ case SingleFilterUnit5EditPart.VISUAL_ID:
+ return getSingleFilterUnit_3063OutgoingLinks(view);
+ case MultiFilterUnit5EditPart.VISUAL_ID:
+ return getMultiFilterUnit_3064OutgoingLinks(view);
+ case SingleQueuedUnit6EditPart.VISUAL_ID:
+ return getSingleQueuedUnit_3065OutgoingLinks(view);
+ case ConditionalUnit4EditPart.VISUAL_ID:
+ return getConditionalUnit_3066OutgoingLinks(view);
+ case SingleQueuedUnit7EditPart.VISUAL_ID:
+ return getSingleQueuedUnit_3067OutgoingLinks(view);
+ case AtomicUnit4EditPart.VISUAL_ID:
+ return getAtomicUnit_3068OutgoingLinks(view);
+ case SequentialUnit5EditPart.VISUAL_ID:
+ return getSequentialUnit_3069OutgoingLinks(view);
+ case SequentialUnit6EditPart.VISUAL_ID:
+ return getSequentialUnit_3070OutgoingLinks(view);
+ case ConditionalUnit5EditPart.VISUAL_ID:
+ return getConditionalUnit_3071OutgoingLinks(view);
+ case ConditionalUnit6EditPart.VISUAL_ID:
+ return getConditionalUnit_3072OutgoingLinks(view);
+ case SequentialUnit7EditPart.VISUAL_ID:
+ return getSequentialUnit_3073OutgoingLinks(view);
+ case AtomicUnit5EditPart.VISUAL_ID:
+ return getAtomicUnit_3074OutgoingLinks(view);
+ case ConditionalUnit7EditPart.VISUAL_ID:
+ return getConditionalUnit_3075OutgoingLinks(view);
+ case ConditionCheckEditPart.VISUAL_ID:
+ return getConditionCheck_3076OutgoingLinks(view);
+ case AtomicUnit6EditPart.VISUAL_ID:
+ return getAtomicUnit_3077OutgoingLinks(view);
+ case AtomicUnit7EditPart.VISUAL_ID:
+ return getAtomicUnit_3078OutgoingLinks(view);
+ case SinglePortMappingEditPart.VISUAL_ID:
+ return getSinglePortMapping_4001OutgoingLinks(view);
+ case MultiPortMappingEditPart.VISUAL_ID:
+ return getMultiPortMapping_4002OutgoingLinks(view);
+ case MultiSinglePortMappingEditPart.VISUAL_ID:
+ return getMultiSinglePortMapping_4003OutgoingLinks(view);
+ }
+ return Collections.emptyList();
+ }
+
+ /**
+ * @generated
+ */
+ public static List<ComrelLinkDescriptor> getCompositeRefactoring_1000ContainedLinks(
+ View view) {
+ CompositeRefactoring modelElement = (CompositeRefactoring) view
+ .getElement();
+ LinkedList<ComrelLinkDescriptor> result = new LinkedList<ComrelLinkDescriptor>();
+ result.addAll(getContainedTypeModelFacetLinks_SinglePortMapping_4001(modelElement));
+ result.addAll(getContainedTypeModelFacetLinks_MultiPortMapping_4002(modelElement));
+ result.addAll(getContainedTypeModelFacetLinks_MultiSinglePortMapping_4003(modelElement));
+ return result;
+ }
+
+ /**
+ * @generated
+ */
+ public static List<ComrelLinkDescriptor> getSingleInputPort_2001ContainedLinks(
+ View view) {
+ return Collections.emptyList();
+ }
+
+ /**
+ * @generated
+ */
+ public static List<ComrelLinkDescriptor> getCartesianQueuedUnit_2002ContainedLinks(
+ View view) {
+ return Collections.emptyList();
+ }
+
+ /**
+ * @generated
+ */
+ public static List<ComrelLinkDescriptor> getParallelQueuedUnit_2003ContainedLinks(
+ View view) {
+ return Collections.emptyList();
+ }
+
+ /**
+ * @generated
+ */
+ public static List<ComrelLinkDescriptor> getSingleQueuedUnit_2004ContainedLinks(
+ View view) {
+ return Collections.emptyList();
+ }
+
+ /**
+ * @generated
+ */
+ public static List<ComrelLinkDescriptor> getSequentialUnit_2005ContainedLinks(
+ View view) {
+ return Collections.emptyList();
+ }
+
+ /**
+ * @generated
+ */
+ public static List<ComrelLinkDescriptor> getConditionalUnit_2006ContainedLinks(
+ View view) {
+ return Collections.emptyList();
+ }
+
+ /**
+ * @generated
+ */
+ public static List<ComrelLinkDescriptor> getAtomicUnit_2007ContainedLinks(
+ View view) {
+ return Collections.emptyList();
+ }
+
+ /**
+ * @generated
+ */
+ public static List<ComrelLinkDescriptor> getSingleInputPort_3001ContainedLinks(
+ View view) {
+ return Collections.emptyList();
+ }
+
+ /**
+ * @generated
+ */
+ public static List<ComrelLinkDescriptor> getMultiInputPort_3002ContainedLinks(
+ View view) {
+ return Collections.emptyList();
+ }
+
+ /**
+ * @generated
+ */
+ public static List<ComrelLinkDescriptor> getCartesianQueuedUnit_3003ContainedLinks(
+ View view) {
+ return Collections.emptyList();
+ }
+
+ /**
+ * @generated
+ */
+ public static List<ComrelLinkDescriptor> getParallelQueuedUnit_3004ContainedLinks(
+ View view) {
+ return Collections.emptyList();
+ }
+
+ /**
+ * @generated
+ */
+ public static List<ComrelLinkDescriptor> getSingleInputPort_3005ContainedLinks(
+ View view) {
+ return Collections.emptyList();
+ }
+
+ /**
+ * @generated
+ */
+ public static List<ComrelLinkDescriptor> getMultiInputPort_3006ContainedLinks(
+ View view) {
+ return Collections.emptyList();
+ }
+
+ /**
+ * @generated
+ */
+ public static List<ComrelLinkDescriptor> getCartesianQueuedUnit_3007ContainedLinks(
+ View view) {
+ return Collections.emptyList();
+ }
+
+ /**
+ * @generated
+ */
+ public static List<ComrelLinkDescriptor> getSingleFeatureUnit_3008ContainedLinks(
+ View view) {
+ return Collections.emptyList();
+ }
+
+ /**
+ * @generated
+ */
+ public static List<ComrelLinkDescriptor> getSingleInputPort_3009ContainedLinks(
+ View view) {
+ return Collections.emptyList();
+ }
+
+ /**
+ * @generated
+ */
+ public static List<ComrelLinkDescriptor> getMultiInputPort_3010ContainedLinks(
+ View view) {
+ return Collections.emptyList();
+ }
+
+ /**
+ * @generated
+ */
+ public static List<ComrelLinkDescriptor> getSingleOutputPort_3011ContainedLinks(
+ View view) {
+ return Collections.emptyList();
+ }
+
+ /**
+ * @generated
+ */
+ public static List<ComrelLinkDescriptor> getMultiFeatureUnit_3012ContainedLinks(
+ View view) {
+ return Collections.emptyList();
+ }
+
+ /**
+ * @generated
+ */
+ public static List<ComrelLinkDescriptor> getSingleInputPort_3013ContainedLinks(
+ View view) {
+ return Collections.emptyList();
+ }
+
+ /**
+ * @generated
+ */
+ public static List<ComrelLinkDescriptor> getMultiInputPort_3014ContainedLinks(
+ View view) {
+ return Collections.emptyList();
+ }
+
+ /**
+ * @generated
+ */
+ public static List<ComrelLinkDescriptor> getMultiOutputPort_3015ContainedLinks(
+ View view) {
+ return Collections.emptyList();
+ }
+
+ /**
+ * @generated
+ */
+ public static List<ComrelLinkDescriptor> getSingleFilterUnit_3016ContainedLinks(
+ View view) {
+ return Collections.emptyList();
+ }
+
+ /**
+ * @generated
+ */
+ public static List<ComrelLinkDescriptor> getMultiInputPort_3017ContainedLinks(
+ View view) {
+ return Collections.emptyList();
+ }
+
+ /**
+ * @generated
+ */
+ public static List<ComrelLinkDescriptor> getSingleOutputPort_3018ContainedLinks(
+ View view) {
+ return Collections.emptyList();
+ }
+
+ /**
+ * @generated
+ */
+ public static List<ComrelLinkDescriptor> getMultiFilterUnit_3019ContainedLinks(
+ View view) {
+ return Collections.emptyList();
+ }
+
+ /**
+ * @generated
+ */
+ public static List<ComrelLinkDescriptor> getMultiInputPort_3020ContainedLinks(
+ View view) {
+ return Collections.emptyList();
+ }
+
+ /**
+ * @generated
+ */
+ public static List<ComrelLinkDescriptor> getMultiOutputPort_3021ContainedLinks(
+ View view) {
+ return Collections.emptyList();
+ }
+
+ /**
+ * @generated
+ */
+ public static List<ComrelLinkDescriptor> getSingleQueuedUnit_3022ContainedLinks(
+ View view) {
+ return Collections.emptyList();
+ }
+
+ /**
+ * @generated
+ */
+ public static List<ComrelLinkDescriptor> getSingleInputPort_3023ContainedLinks(
+ View view) {
+ return Collections.emptyList();
+ }
+
+ /**
+ * @generated
+ */
+ public static List<ComrelLinkDescriptor> getMultiInputPort_3024ContainedLinks(
+ View view) {
+ return Collections.emptyList();
+ }
+
+ /**
+ * @generated
+ */
+ public static List<ComrelLinkDescriptor> getCartesianQueuedUnit_3025ContainedLinks(
+ View view) {
+ return Collections.emptyList();
+ }
+
+ /**
+ * @generated
+ */
+ public static List<ComrelLinkDescriptor> getSequentialUnit_3026ContainedLinks(
+ View view) {
+ return Collections.emptyList();
+ }
+
+ /**
+ * @generated
+ */
+ public static List<ComrelLinkDescriptor> getSingleInputPort_3027ContainedLinks(
+ View view) {
+ return Collections.emptyList();
+ }
+
+ /**
+ * @generated
+ */
+ public static List<ComrelLinkDescriptor> getMultiInputPort_3028ContainedLinks(
+ View view) {
+ return Collections.emptyList();
+ }
+
+ /**
+ * @generated
+ */
+ public static List<ComrelLinkDescriptor> getCartesianQueuedUnit_3029ContainedLinks(
+ View view) {
+ return Collections.emptyList();
+ }
+
+ /**
+ * @generated
+ */
+ public static List<ComrelLinkDescriptor> getConditionalUnit_3030ContainedLinks(
+ View view) {
+ return Collections.emptyList();
+ }
+
+ /**
+ * @generated
+ */
+ public static List<ComrelLinkDescriptor> getSingleInputPort_3031ContainedLinks(
+ View view) {
+ return Collections.emptyList();
+ }
+
+ /**
+ * @generated
+ */
+ public static List<ComrelLinkDescriptor> getMultiInputPort_3032ContainedLinks(
+ View view) {
+ return Collections.emptyList();
+ }
+
+ /**
+ * @generated
+ */
+ public static List<ComrelLinkDescriptor> getCartesianQueuedUnit_3033ContainedLinks(
+ View view) {
+ return Collections.emptyList();
+ }
+
+ /**
+ * @generated
+ */
+ public static List<ComrelLinkDescriptor> getAtomicUnit_3034ContainedLinks(
+ View view) {
+ return Collections.emptyList();
+ }
+
+ /**
+ * @generated
+ */
+ public static List<ComrelLinkDescriptor> getSingleInputPort_3035ContainedLinks(
+ View view) {
+ return Collections.emptyList();
+ }
+
+ /**
+ * @generated
+ */
+ public static List<ComrelLinkDescriptor> getParallelQueuedUnit_3036ContainedLinks(
+ View view) {
+ return Collections.emptyList();
+ }
+
+ /**
+ * @generated
+ */
+ public static List<ComrelLinkDescriptor> getParallelQueuedUnit_3037ContainedLinks(
+ View view) {
+ return Collections.emptyList();
+ }
+
+ /**
+ * @generated
+ */
+ public static List<ComrelLinkDescriptor> getSingleFeatureUnit_3038ContainedLinks(
+ View view) {
+ return Collections.emptyList();
+ }
+
+ /**
+ * @generated
+ */
+ public static List<ComrelLinkDescriptor> getMultiFeatureUnit_3039ContainedLinks(
+ View view) {
+ return Collections.emptyList();
+ }
+
+ /**
+ * @generated
+ */
+ public static List<ComrelLinkDescriptor> getSingleFilterUnit_3040ContainedLinks(
+ View view) {
+ return Collections.emptyList();
+ }
+
+ /**
+ * @generated
+ */
+ public static List<ComrelLinkDescriptor> getMultiFilterUnit_3041ContainedLinks(
+ View view) {
+ return Collections.emptyList();
+ }
+
+ /**
+ * @generated
+ */
+ public static List<ComrelLinkDescriptor> getSingleQueuedUnit_3042ContainedLinks(
+ View view) {
+ return Collections.emptyList();
+ }
+
+ /**
+ * @generated
+ */
+ public static List<ComrelLinkDescriptor> getParallelQueuedUnit_3043ContainedLinks(
+ View view) {
+ return Collections.emptyList();
+ }
+
+ /**
+ * @generated
+ */
+ public static List<ComrelLinkDescriptor> getSequentialUnit_3044ContainedLinks(
+ View view) {
+ return Collections.emptyList();
+ }
+
+ /**
+ * @generated
+ */
+ public static List<ComrelLinkDescriptor> getParallelQueuedUnit_3045ContainedLinks(
+ View view) {
+ return Collections.emptyList();
+ }
+
+ /**
+ * @generated
+ */
+ public static List<ComrelLinkDescriptor> getConditionalUnit_3046ContainedLinks(
+ View view) {
+ return Collections.emptyList();
+ }
+
+ /**
+ * @generated
+ */
+ public static List<ComrelLinkDescriptor> getCartesianQueuedUnit_3047ContainedLinks(
+ View view) {
+ return Collections.emptyList();
+ }
+
+ /**
+ * @generated
+ */
+ public static List<ComrelLinkDescriptor> getParallelQueuedUnit_3048ContainedLinks(
+ View view) {
+ return Collections.emptyList();
+ }
+
+ /**
+ * @generated
+ */
+ public static List<ComrelLinkDescriptor> getAtomicUnit_3049ContainedLinks(
+ View view) {
+ return Collections.emptyList();
+ }
+
+ /**
+ * @generated
+ */
+ public static List<ComrelLinkDescriptor> getSingleFeatureUnit_3050ContainedLinks(
+ View view) {
+ return Collections.emptyList();
+ }
+
+ /**
+ * @generated
+ */
+ public static List<ComrelLinkDescriptor> getMultiFeatureUnit_3051ContainedLinks(
+ View view) {
+ return Collections.emptyList();
+ }
+
+ /**
+ * @generated
+ */
+ public static List<ComrelLinkDescriptor> getSingleFilterUnit_3052ContainedLinks(
+ View view) {
+ return Collections.emptyList();
+ }
+
+ /**
+ * @generated
+ */
+ public static List<ComrelLinkDescriptor> getMultiFilterUnit_3053ContainedLinks(
+ View view) {
+ return Collections.emptyList();
+ }
+
+ /**
+ * @generated
+ */
+ public static List<ComrelLinkDescriptor> getSingleQueuedUnit_3054ContainedLinks(
+ View view) {
+ return Collections.emptyList();
+ }
+
+ /**
+ * @generated
+ */
+ public static List<ComrelLinkDescriptor> getSingleFeatureUnit_3055ContainedLinks(
+ View view) {
+ return Collections.emptyList();
+ }
+
+ /**
+ * @generated
+ */
+ public static List<ComrelLinkDescriptor> getMultiFeatureUnit_3056ContainedLinks(
+ View view) {
+ return Collections.emptyList();
+ }
+
+ /**
+ * @generated
+ */
+ public static List<ComrelLinkDescriptor> getSingleFilterUnit_3057ContainedLinks(
+ View view) {
+ return Collections.emptyList();
+ }
+
+ /**
+ * @generated
+ */
+ public static List<ComrelLinkDescriptor> getMultiFilterUnit_3058ContainedLinks(
+ View view) {
+ return Collections.emptyList();
+ }
+
+ /**
+ * @generated
+ */
+ public static List<ComrelLinkDescriptor> getSingleQueuedUnit_3059ContainedLinks(
+ View view) {
+ return Collections.emptyList();
+ }
+
+ /**
+ * @generated
+ */
+ public static List<ComrelLinkDescriptor> getSequentialUnit_3060ContainedLinks(
+ View view) {
+ return Collections.emptyList();
+ }
+
+ /**
+ * @generated
+ */
+ public static List<ComrelLinkDescriptor> getSingleFeatureUnit_3061ContainedLinks(
+ View view) {
+ return Collections.emptyList();
+ }
+
+ /**
+ * @generated
+ */
+ public static List<ComrelLinkDescriptor> getMultiFeatureUnit_3062ContainedLinks(
+ View view) {
+ return Collections.emptyList();
+ }
+
+ /**
+ * @generated
+ */
+ public static List<ComrelLinkDescriptor> getSingleFilterUnit_3063ContainedLinks(
+ View view) {
+ return Collections.emptyList();
+ }
+
+ /**
+ * @generated
+ */
+ public static List<ComrelLinkDescriptor> getMultiFilterUnit_3064ContainedLinks(
+ View view) {
+ return Collections.emptyList();
+ }
+
+ /**
+ * @generated
+ */
+ public static List<ComrelLinkDescriptor> getSingleQueuedUnit_3065ContainedLinks(
+ View view) {
+ return Collections.emptyList();
+ }
+
+ /**
+ * @generated
+ */
+ public static List<ComrelLinkDescriptor> getConditionalUnit_3066ContainedLinks(
+ View view) {
+ return Collections.emptyList();
+ }
+
+ /**
+ * @generated
+ */
+ public static List<ComrelLinkDescriptor> getSingleQueuedUnit_3067ContainedLinks(
+ View view) {
+ return Collections.emptyList();
+ }
+
+ /**
+ * @generated
+ */
+ public static List<ComrelLinkDescriptor> getAtomicUnit_3068ContainedLinks(
+ View view) {
+ return Collections.emptyList();
+ }
+
+ /**
+ * @generated
+ */
+ public static List<ComrelLinkDescriptor> getSequentialUnit_3069ContainedLinks(
+ View view) {
+ return Collections.emptyList();
+ }
+
+ /**
+ * @generated
+ */
+ public static List<ComrelLinkDescriptor> getSequentialUnit_3070ContainedLinks(
+ View view) {
+ return Collections.emptyList();
+ }
+
+ /**
+ * @generated
+ */
+ public static List<ComrelLinkDescriptor> getConditionalUnit_3071ContainedLinks(
+ View view) {
+ return Collections.emptyList();
+ }
+
+ /**
+ * @generated
+ */
+ public static List<ComrelLinkDescriptor> getConditionalUnit_3072ContainedLinks(
+ View view) {
+ return Collections.emptyList();
+ }
+
+ /**
+ * @generated
+ */
+ public static List<ComrelLinkDescriptor> getSequentialUnit_3073ContainedLinks(
+ View view) {
+ return Collections.emptyList();
+ }
+
+ /**
+ * @generated
+ */
+ public static List<ComrelLinkDescriptor> getAtomicUnit_3074ContainedLinks(
+ View view) {
+ return Collections.emptyList();
+ }
+
+ /**
+ * @generated
+ */
+ public static List<ComrelLinkDescriptor> getConditionalUnit_3075ContainedLinks(
+ View view) {
+ return Collections.emptyList();
+ }
+
+ /**
+ * @generated
+ */
+ public static List<ComrelLinkDescriptor> getConditionCheck_3076ContainedLinks(
+ View view) {
+ return Collections.emptyList();
+ }
+
+ /**
+ * @generated
+ */
+ public static List<ComrelLinkDescriptor> getAtomicUnit_3077ContainedLinks(
+ View view) {
+ return Collections.emptyList();
+ }
+
+ /**
+ * @generated
+ */
+ public static List<ComrelLinkDescriptor> getAtomicUnit_3078ContainedLinks(
+ View view) {
+ return Collections.emptyList();
+ }
+
+ /**
+ * @generated
+ */
+ public static List<ComrelLinkDescriptor> getSinglePortMapping_4001ContainedLinks(
+ View view) {
+ return Collections.emptyList();
+ }
+
+ /**
+ * @generated
+ */
+ public static List<ComrelLinkDescriptor> getMultiPortMapping_4002ContainedLinks(
+ View view) {
+ return Collections.emptyList();
+ }
+
+ /**
+ * @generated
+ */
+ public static List<ComrelLinkDescriptor> getMultiSinglePortMapping_4003ContainedLinks(
+ View view) {
+ return Collections.emptyList();
+ }
+
+ /**
+ * @generated
+ */
+ public static List<ComrelLinkDescriptor> getSingleInputPort_2001IncomingLinks(
+ View view) {
+ SingleInputPort modelElement = (SingleInputPort) view.getElement();
+ Map<EObject, Collection<EStructuralFeature.Setting>> crossReferences = EcoreUtil.CrossReferencer
+ .find(view.eResource().getResourceSet().getResources());
+ LinkedList<ComrelLinkDescriptor> result = new LinkedList<ComrelLinkDescriptor>();
+ result.addAll(getIncomingTypeModelFacetLinks_SinglePortMapping_4001(
+ modelElement, crossReferences));
+ result.addAll(getIncomingTypeModelFacetLinks_MultiSinglePortMapping_4003(
+ modelElement, crossReferences));
+ return result;
+ }
+
+ /**
+ * @generated
+ */
+ public static List<ComrelLinkDescriptor> getCartesianQueuedUnit_2002IncomingLinks(
+ View view) {
+ return Collections.emptyList();
+ }
+
+ /**
+ * @generated
+ */
+ public static List<ComrelLinkDescriptor> getParallelQueuedUnit_2003IncomingLinks(
+ View view) {
+ return Collections.emptyList();
+ }
+
+ /**
+ * @generated
+ */
+ public static List<ComrelLinkDescriptor> getSingleQueuedUnit_2004IncomingLinks(
+ View view) {
+ return Collections.emptyList();
+ }
+
+ /**
+ * @generated
+ */
+ public static List<ComrelLinkDescriptor> getSequentialUnit_2005IncomingLinks(
+ View view) {
+ return Collections.emptyList();
+ }
+
+ /**
+ * @generated
+ */
+ public static List<ComrelLinkDescriptor> getConditionalUnit_2006IncomingLinks(
+ View view) {
+ return Collections.emptyList();
+ }
+
+ /**
+ * @generated
+ */
+ public static List<ComrelLinkDescriptor> getAtomicUnit_2007IncomingLinks(
+ View view) {
+ return Collections.emptyList();
+ }
+
+ /**
+ * @generated
+ */
+ public static List<ComrelLinkDescriptor> getSingleInputPort_3001IncomingLinks(
+ View view) {
+ SingleInputPort modelElement = (SingleInputPort) view.getElement();
+ Map<EObject, Collection<EStructuralFeature.Setting>> crossReferences = EcoreUtil.CrossReferencer
+ .find(view.eResource().getResourceSet().getResources());
+ LinkedList<ComrelLinkDescriptor> result = new LinkedList<ComrelLinkDescriptor>();
+ result.addAll(getIncomingTypeModelFacetLinks_SinglePortMapping_4001(
+ modelElement, crossReferences));
+ result.addAll(getIncomingTypeModelFacetLinks_MultiSinglePortMapping_4003(
+ modelElement, crossReferences));
+ return result;
+ }
+
+ /**
+ * @generated
+ */
+ public static List<ComrelLinkDescriptor> getMultiInputPort_3002IncomingLinks(
+ View view) {
+ MultiInputPort modelElement = (MultiInputPort) view.getElement();
+ Map<EObject, Collection<EStructuralFeature.Setting>> crossReferences = EcoreUtil.CrossReferencer
+ .find(view.eResource().getResourceSet().getResources());
+ LinkedList<ComrelLinkDescriptor> result = new LinkedList<ComrelLinkDescriptor>();
+ result.addAll(getIncomingTypeModelFacetLinks_MultiPortMapping_4002(
+ modelElement, crossReferences));
+ return result;
+ }
+
+ /**
+ * @generated
+ */
+ public static List<ComrelLinkDescriptor> getCartesianQueuedUnit_3003IncomingLinks(
+ View view) {
+ return Collections.emptyList();
+ }
+
+ /**
+ * @generated
+ */
+ public static List<ComrelLinkDescriptor> getParallelQueuedUnit_3004IncomingLinks(
+ View view) {
+ return Collections.emptyList();
+ }
+
+ /**
+ * @generated
+ */
+ public static List<ComrelLinkDescriptor> getSingleInputPort_3005IncomingLinks(
+ View view) {
+ SingleInputPort modelElement = (SingleInputPort) view.getElement();
+ Map<EObject, Collection<EStructuralFeature.Setting>> crossReferences = EcoreUtil.CrossReferencer
+ .find(view.eResource().getResourceSet().getResources());
+ LinkedList<ComrelLinkDescriptor> result = new LinkedList<ComrelLinkDescriptor>();
+ result.addAll(getIncomingTypeModelFacetLinks_SinglePortMapping_4001(
+ modelElement, crossReferences));
+ result.addAll(getIncomingTypeModelFacetLinks_MultiSinglePortMapping_4003(
+ modelElement, crossReferences));
+ return result;
+ }
+
+ /**
+ * @generated
+ */
+ public static List<ComrelLinkDescriptor> getMultiInputPort_3006IncomingLinks(
+ View view) {
+ MultiInputPort modelElement = (MultiInputPort) view.getElement();
+ Map<EObject, Collection<EStructuralFeature.Setting>> crossReferences = EcoreUtil.CrossReferencer
+ .find(view.eResource().getResourceSet().getResources());
+ LinkedList<ComrelLinkDescriptor> result = new LinkedList<ComrelLinkDescriptor>();
+ result.addAll(getIncomingTypeModelFacetLinks_MultiPortMapping_4002(
+ modelElement, crossReferences));
+ return result;
+ }
+
+ /**
+ * @generated
+ */
+ public static List<ComrelLinkDescriptor> getCartesianQueuedUnit_3007IncomingLinks(
+ View view) {
+ return Collections.emptyList();
+ }
+
+ /**
+ * @generated
+ */
+ public static List<ComrelLinkDescriptor> getSingleFeatureUnit_3008IncomingLinks(
+ View view) {
+ return Collections.emptyList();
+ }
+
+ /**
+ * @generated
+ */
+ public static List<ComrelLinkDescriptor> getSingleInputPort_3009IncomingLinks(
+ View view) {
+ SingleInputPort modelElement = (SingleInputPort) view.getElement();
+ Map<EObject, Collection<EStructuralFeature.Setting>> crossReferences = EcoreUtil.CrossReferencer
+ .find(view.eResource().getResourceSet().getResources());
+ LinkedList<ComrelLinkDescriptor> result = new LinkedList<ComrelLinkDescriptor>();
+ result.addAll(getIncomingTypeModelFacetLinks_SinglePortMapping_4001(
+ modelElement, crossReferences));
+ result.addAll(getIncomingTypeModelFacetLinks_MultiSinglePortMapping_4003(
+ modelElement, crossReferences));
+ return result;
+ }
+
+ /**
+ * @generated
+ */
+ public static List<ComrelLinkDescriptor> getMultiInputPort_3010IncomingLinks(
+ View view) {
+ MultiInputPort modelElement = (MultiInputPort) view.getElement();
+ Map<EObject, Collection<EStructuralFeature.Setting>> crossReferences = EcoreUtil.CrossReferencer
+ .find(view.eResource().getResourceSet().getResources());
+ LinkedList<ComrelLinkDescriptor> result = new LinkedList<ComrelLinkDescriptor>();
+ result.addAll(getIncomingTypeModelFacetLinks_MultiPortMapping_4002(
+ modelElement, crossReferences));
+ return result;
+ }
+
+ /**
+ * @generated
+ */
+ public static List<ComrelLinkDescriptor> getSingleOutputPort_3011IncomingLinks(
+ View view) {
+ return Collections.emptyList();
+ }
+
+ /**
+ * @generated
+ */
+ public static List<ComrelLinkDescriptor> getMultiFeatureUnit_3012IncomingLinks(
+ View view) {
+ return Collections.emptyList();
+ }
+
+ /**
+ * @generated
+ */
+ public static List<ComrelLinkDescriptor> getSingleInputPort_3013IncomingLinks(
+ View view) {
+ SingleInputPort modelElement = (SingleInputPort) view.getElement();
+ Map<EObject, Collection<EStructuralFeature.Setting>> crossReferences = EcoreUtil.CrossReferencer
+ .find(view.eResource().getResourceSet().getResources());
+ LinkedList<ComrelLinkDescriptor> result = new LinkedList<ComrelLinkDescriptor>();
+ result.addAll(getIncomingTypeModelFacetLinks_SinglePortMapping_4001(
+ modelElement, crossReferences));
+ result.addAll(getIncomingTypeModelFacetLinks_MultiSinglePortMapping_4003(
+ modelElement, crossReferences));
+ return result;
+ }
+
+ /**
+ * @generated
+ */
+ public static List<ComrelLinkDescriptor> getMultiInputPort_3014IncomingLinks(
+ View view) {
+ MultiInputPort modelElement = (MultiInputPort) view.getElement();
+ Map<EObject, Collection<EStructuralFeature.Setting>> crossReferences = EcoreUtil.CrossReferencer
+ .find(view.eResource().getResourceSet().getResources());
+ LinkedList<ComrelLinkDescriptor> result = new LinkedList<ComrelLinkDescriptor>();
+ result.addAll(getIncomingTypeModelFacetLinks_MultiPortMapping_4002(
+ modelElement, crossReferences));
+ return result;
+ }
+
+ /**
+ * @generated
+ */
+ public static List<ComrelLinkDescriptor> getMultiOutputPort_3015IncomingLinks(
+ View view) {
+ return Collections.emptyList();
+ }
+
+ /**
+ * @generated
+ */
+ public static List<ComrelLinkDescriptor> getSingleFilterUnit_3016IncomingLinks(
+ View view) {
+ return Collections.emptyList();
+ }
+
+ /**
+ * @generated
+ */
+ public static List<ComrelLinkDescriptor> getMultiInputPort_3017IncomingLinks(
+ View view) {
+ MultiInputPort modelElement = (MultiInputPort) view.getElement();
+ Map<EObject, Collection<EStructuralFeature.Setting>> crossReferences = EcoreUtil.CrossReferencer
+ .find(view.eResource().getResourceSet().getResources());
+ LinkedList<ComrelLinkDescriptor> result = new LinkedList<ComrelLinkDescriptor>();
+ result.addAll(getIncomingTypeModelFacetLinks_MultiPortMapping_4002(
+ modelElement, crossReferences));
+ return result;
+ }
+
+ /**
+ * @generated
+ */
+ public static List<ComrelLinkDescriptor> getSingleOutputPort_3018IncomingLinks(
+ View view) {
+ return Collections.emptyList();
+ }
+
+ /**
+ * @generated
+ */
+ public static List<ComrelLinkDescriptor> getMultiFilterUnit_3019IncomingLinks(
+ View view) {
+ return Collections.emptyList();
+ }
+
+ /**
+ * @generated
+ */
+ public static List<ComrelLinkDescriptor> getMultiInputPort_3020IncomingLinks(
+ View view) {
+ MultiInputPort modelElement = (MultiInputPort) view.getElement();
+ Map<EObject, Collection<EStructuralFeature.Setting>> crossReferences = EcoreUtil.CrossReferencer
+ .find(view.eResource().getResourceSet().getResources());
+ LinkedList<ComrelLinkDescriptor> result = new LinkedList<ComrelLinkDescriptor>();
+ result.addAll(getIncomingTypeModelFacetLinks_MultiPortMapping_4002(
+ modelElement, crossReferences));
+ return result;
+ }
+
+ /**
+ * @generated
+ */
+ public static List<ComrelLinkDescriptor> getMultiOutputPort_3021IncomingLinks(
+ View view) {
+ return Collections.emptyList();
+ }
+
+ /**
+ * @generated
+ */
+ public static List<ComrelLinkDescriptor> getSingleQueuedUnit_3022IncomingLinks(
+ View view) {
+ return Collections.emptyList();
+ }
+
+ /**
+ * @generated
+ */
+ public static List<ComrelLinkDescriptor> getSingleInputPort_3023IncomingLinks(
+ View view) {
+ SingleInputPort modelElement = (SingleInputPort) view.getElement();
+ Map<EObject, Collection<EStructuralFeature.Setting>> crossReferences = EcoreUtil.CrossReferencer
+ .find(view.eResource().getResourceSet().getResources());
+ LinkedList<ComrelLinkDescriptor> result = new LinkedList<ComrelLinkDescriptor>();
+ result.addAll(getIncomingTypeModelFacetLinks_SinglePortMapping_4001(
+ modelElement, crossReferences));
+ result.addAll(getIncomingTypeModelFacetLinks_MultiSinglePortMapping_4003(
+ modelElement, crossReferences));
+ return result;
+ }
+
+ /**
+ * @generated
+ */
+ public static List<ComrelLinkDescriptor> getMultiInputPort_3024IncomingLinks(
+ View view) {
+ MultiInputPort modelElement = (MultiInputPort) view.getElement();
+ Map<EObject, Collection<EStructuralFeature.Setting>> crossReferences = EcoreUtil.CrossReferencer
+ .find(view.eResource().getResourceSet().getResources());
+ LinkedList<ComrelLinkDescriptor> result = new LinkedList<ComrelLinkDescriptor>();
+ result.addAll(getIncomingTypeModelFacetLinks_MultiPortMapping_4002(
+ modelElement, crossReferences));
+ return result;
+ }
+
+ /**
+ * @generated
+ */
+ public static List<ComrelLinkDescriptor> getCartesianQueuedUnit_3025IncomingLinks(
+ View view) {
+ return Collections.emptyList();
+ }
+
+ /**
+ * @generated
+ */
+ public static List<ComrelLinkDescriptor> getSequentialUnit_3026IncomingLinks(
+ View view) {
+ return Collections.emptyList();
+ }
+
+ /**
+ * @generated
+ */
+ public static List<ComrelLinkDescriptor> getSingleInputPort_3027IncomingLinks(
+ View view) {
+ SingleInputPort modelElement = (SingleInputPort) view.getElement();
+ Map<EObject, Collection<EStructuralFeature.Setting>> crossReferences = EcoreUtil.CrossReferencer
+ .find(view.eResource().getResourceSet().getResources());
+ LinkedList<ComrelLinkDescriptor> result = new LinkedList<ComrelLinkDescriptor>();
+ result.addAll(getIncomingTypeModelFacetLinks_SinglePortMapping_4001(
+ modelElement, crossReferences));
+ result.addAll(getIncomingTypeModelFacetLinks_MultiSinglePortMapping_4003(
+ modelElement, crossReferences));
+ return result;
+ }
+
+ /**
+ * @generated
+ */
+ public static List<ComrelLinkDescriptor> getMultiInputPort_3028IncomingLinks(
+ View view) {
+ MultiInputPort modelElement = (MultiInputPort) view.getElement();
+ Map<EObject, Collection<EStructuralFeature.Setting>> crossReferences = EcoreUtil.CrossReferencer
+ .find(view.eResource().getResourceSet().getResources());
+ LinkedList<ComrelLinkDescriptor> result = new LinkedList<ComrelLinkDescriptor>();
+ result.addAll(getIncomingTypeModelFacetLinks_MultiPortMapping_4002(
+ modelElement, crossReferences));
+ return result;
+ }
+
+ /**
+ * @generated
+ */
+ public static List<ComrelLinkDescriptor> getCartesianQueuedUnit_3029IncomingLinks(
+ View view) {
+ return Collections.emptyList();
+ }
+
+ /**
+ * @generated
+ */
+ public static List<ComrelLinkDescriptor> getConditionalUnit_3030IncomingLinks(
+ View view) {
+ return Collections.emptyList();
+ }
+
+ /**
+ * @generated
+ */
+ public static List<ComrelLinkDescriptor> getSingleInputPort_3031IncomingLinks(
+ View view) {
+ SingleInputPort modelElement = (SingleInputPort) view.getElement();
+ Map<EObject, Collection<EStructuralFeature.Setting>> crossReferences = EcoreUtil.CrossReferencer
+ .find(view.eResource().getResourceSet().getResources());
+ LinkedList<ComrelLinkDescriptor> result = new LinkedList<ComrelLinkDescriptor>();
+ result.addAll(getIncomingTypeModelFacetLinks_SinglePortMapping_4001(
+ modelElement, crossReferences));
+ result.addAll(getIncomingTypeModelFacetLinks_MultiSinglePortMapping_4003(
+ modelElement, crossReferences));
+ return result;
+ }
+
+ /**
+ * @generated
+ */
+ public static List<ComrelLinkDescriptor> getMultiInputPort_3032IncomingLinks(
+ View view) {
+ MultiInputPort modelElement = (MultiInputPort) view.getElement();
+ Map<EObject, Collection<EStructuralFeature.Setting>> crossReferences = EcoreUtil.CrossReferencer
+ .find(view.eResource().getResourceSet().getResources());
+ LinkedList<ComrelLinkDescriptor> result = new LinkedList<ComrelLinkDescriptor>();
+ result.addAll(getIncomingTypeModelFacetLinks_MultiPortMapping_4002(
+ modelElement, crossReferences));
+ return result;
+ }
+
+ /**
+ * @generated
+ */
+ public static List<ComrelLinkDescriptor> getCartesianQueuedUnit_3033IncomingLinks(
+ View view) {
+ return Collections.emptyList();
+ }
+
+ /**
+ * @generated
+ */
+ public static List<ComrelLinkDescriptor> getAtomicUnit_3034IncomingLinks(
+ View view) {
+ return Collections.emptyList();
+ }
+
+ /**
+ * @generated
+ */
+ public static List<ComrelLinkDescriptor> getSingleInputPort_3035IncomingLinks(
+ View view) {
+ SingleInputPort modelElement = (SingleInputPort) view.getElement();
+ Map<EObject, Collection<EStructuralFeature.Setting>> crossReferences = EcoreUtil.CrossReferencer
+ .find(view.eResource().getResourceSet().getResources());
+ LinkedList<ComrelLinkDescriptor> result = new LinkedList<ComrelLinkDescriptor>();
+ result.addAll(getIncomingTypeModelFacetLinks_SinglePortMapping_4001(
+ modelElement, crossReferences));
+ result.addAll(getIncomingTypeModelFacetLinks_MultiSinglePortMapping_4003(
+ modelElement, crossReferences));
+ return result;
+ }
+
+ /**
+ * @generated
+ */
+ public static List<ComrelLinkDescriptor> getParallelQueuedUnit_3036IncomingLinks(
+ View view) {
+ return Collections.emptyList();
+ }
+
+ /**
+ * @generated
+ */
+ public static List<ComrelLinkDescriptor> getParallelQueuedUnit_3037IncomingLinks(
+ View view) {
+ return Collections.emptyList();
+ }
+
+ /**
+ * @generated
+ */
+ public static List<ComrelLinkDescriptor> getSingleFeatureUnit_3038IncomingLinks(
+ View view) {
+ return Collections.emptyList();
+ }
+
+ /**
+ * @generated
+ */
+ public static List<ComrelLinkDescriptor> getMultiFeatureUnit_3039IncomingLinks(
+ View view) {
+ return Collections.emptyList();
+ }
+
+ /**
+ * @generated
+ */
+ public static List<ComrelLinkDescriptor> getSingleFilterUnit_3040IncomingLinks(
+ View view) {
+ return Collections.emptyList();
+ }
+
+ /**
+ * @generated
+ */
+ public static List<ComrelLinkDescriptor> getMultiFilterUnit_3041IncomingLinks(
+ View view) {
+ return Collections.emptyList();
+ }
+
+ /**
+ * @generated
+ */
+ public static List<ComrelLinkDescriptor> getSingleQueuedUnit_3042IncomingLinks(
+ View view) {
+ return Collections.emptyList();
+ }
+
+ /**
+ * @generated
+ */
+ public static List<ComrelLinkDescriptor> getParallelQueuedUnit_3043IncomingLinks(
+ View view) {
+ return Collections.emptyList();
+ }
+
+ /**
+ * @generated
+ */
+ public static List<ComrelLinkDescriptor> getSequentialUnit_3044IncomingLinks(
+ View view) {
+ return Collections.emptyList();
+ }
+
+ /**
+ * @generated
+ */
+ public static List<ComrelLinkDescriptor> getParallelQueuedUnit_3045IncomingLinks(
+ View view) {
+ return Collections.emptyList();
+ }
+
+ /**
+ * @generated
+ */
+ public static List<ComrelLinkDescriptor> getConditionalUnit_3046IncomingLinks(
+ View view) {
+ return Collections.emptyList();
+ }
+
+ /**
+ * @generated
+ */
+ public static List<ComrelLinkDescriptor> getCartesianQueuedUnit_3047IncomingLinks(
+ View view) {
+ return Collections.emptyList();
+ }
+
+ /**
+ * @generated
+ */
+ public static List<ComrelLinkDescriptor> getParallelQueuedUnit_3048IncomingLinks(
+ View view) {
+ return Collections.emptyList();
+ }
+
+ /**
+ * @generated
+ */
+ public static List<ComrelLinkDescriptor> getAtomicUnit_3049IncomingLinks(
+ View view) {
+ return Collections.emptyList();
+ }
+
+ /**
+ * @generated
+ */
+ public static List<ComrelLinkDescriptor> getSingleFeatureUnit_3050IncomingLinks(
+ View view) {
+ return Collections.emptyList();
+ }
+
+ /**
+ * @generated
+ */
+ public static List<ComrelLinkDescriptor> getMultiFeatureUnit_3051IncomingLinks(
+ View view) {
+ return Collections.emptyList();
+ }
+
+ /**
+ * @generated
+ */
+ public static List<ComrelLinkDescriptor> getSingleFilterUnit_3052IncomingLinks(
+ View view) {
+ return Collections.emptyList();
+ }
+
+ /**
+ * @generated
+ */
+ public static List<ComrelLinkDescriptor> getMultiFilterUnit_3053IncomingLinks(
+ View view) {
+ return Collections.emptyList();
+ }
+
+ /**
+ * @generated
+ */
+ public static List<ComrelLinkDescriptor> getSingleQueuedUnit_3054IncomingLinks(
+ View view) {
+ return Collections.emptyList();
+ }
+
+ /**
+ * @generated
+ */
+ public static List<ComrelLinkDescriptor> getSingleFeatureUnit_3055IncomingLinks(
+ View view) {
+ return Collections.emptyList();
+ }
+
+ /**
+ * @generated
+ */
+ public static List<ComrelLinkDescriptor> getMultiFeatureUnit_3056IncomingLinks(
+ View view) {
+ return Collections.emptyList();
+ }
+
+ /**
+ * @generated
+ */
+ public static List<ComrelLinkDescriptor> getSingleFilterUnit_3057IncomingLinks(
+ View view) {
+ return Collections.emptyList();
+ }
+
+ /**
+ * @generated
+ */
+ public static List<ComrelLinkDescriptor> getMultiFilterUnit_3058IncomingLinks(
+ View view) {
+ return Collections.emptyList();
+ }
+
+ /**
+ * @generated
+ */
+ public static List<ComrelLinkDescriptor> getSingleQueuedUnit_3059IncomingLinks(
+ View view) {
+ return Collections.emptyList();
+ }
+
+ /**
+ * @generated
+ */
+ public static List<ComrelLinkDescriptor> getSequentialUnit_3060IncomingLinks(
+ View view) {
+ return Collections.emptyList();
+ }
+
+ /**
+ * @generated
+ */
+ public static List<ComrelLinkDescriptor> getSingleFeatureUnit_3061IncomingLinks(
+ View view) {
+ return Collections.emptyList();
+ }
+
+ /**
+ * @generated
+ */
+ public static List<ComrelLinkDescriptor> getMultiFeatureUnit_3062IncomingLinks(
+ View view) {
+ return Collections.emptyList();
+ }
+
+ /**
+ * @generated
+ */
+ public static List<ComrelLinkDescriptor> getSingleFilterUnit_3063IncomingLinks(
+ View view) {
+ return Collections.emptyList();
+ }
+
+ /**
+ * @generated
+ */
+ public static List<ComrelLinkDescriptor> getMultiFilterUnit_3064IncomingLinks(
+ View view) {
+ return Collections.emptyList();
+ }
+
+ /**
+ * @generated
+ */
+ public static List<ComrelLinkDescriptor> getSingleQueuedUnit_3065IncomingLinks(
+ View view) {
+ return Collections.emptyList();
+ }
+
+ /**
+ * @generated
+ */
+ public static List<ComrelLinkDescriptor> getConditionalUnit_3066IncomingLinks(
+ View view) {
+ return Collections.emptyList();
+ }
+
+ /**
+ * @generated
+ */
+ public static List<ComrelLinkDescriptor> getSingleQueuedUnit_3067IncomingLinks(
+ View view) {
+ return Collections.emptyList();
+ }
+
+ /**
+ * @generated
+ */
+ public static List<ComrelLinkDescriptor> getAtomicUnit_3068IncomingLinks(
+ View view) {
+ return Collections.emptyList();
+ }
+
+ /**
+ * @generated
+ */
+ public static List<ComrelLinkDescriptor> getSequentialUnit_3069IncomingLinks(
+ View view) {
+ return Collections.emptyList();
+ }
+
+ /**
+ * @generated
+ */
+ public static List<ComrelLinkDescriptor> getSequentialUnit_3070IncomingLinks(
+ View view) {
+ return Collections.emptyList();
+ }
+
+ /**
+ * @generated
+ */
+ public static List<ComrelLinkDescriptor> getConditionalUnit_3071IncomingLinks(
+ View view) {
+ return Collections.emptyList();
+ }
+
+ /**
+ * @generated
+ */
+ public static List<ComrelLinkDescriptor> getConditionalUnit_3072IncomingLinks(
+ View view) {
+ return Collections.emptyList();
+ }
+
+ /**
+ * @generated
+ */
+ public static List<ComrelLinkDescriptor> getSequentialUnit_3073IncomingLinks(
+ View view) {
+ return Collections.emptyList();
+ }
+
+ /**
+ * @generated
+ */
+ public static List<ComrelLinkDescriptor> getAtomicUnit_3074IncomingLinks(
+ View view) {
+ return Collections.emptyList();
+ }
+
+ /**
+ * @generated
+ */
+ public static List<ComrelLinkDescriptor> getConditionalUnit_3075IncomingLinks(
+ View view) {
+ return Collections.emptyList();
+ }
+
+ /**
+ * @generated
+ */
+ public static List<ComrelLinkDescriptor> getConditionCheck_3076IncomingLinks(
+ View view) {
+ return Collections.emptyList();
+ }
+
+ /**
+ * @generated
+ */
+ public static List<ComrelLinkDescriptor> getAtomicUnit_3077IncomingLinks(
+ View view) {
+ return Collections.emptyList();
+ }
+
+ /**
+ * @generated
+ */
+ public static List<ComrelLinkDescriptor> getAtomicUnit_3078IncomingLinks(
+ View view) {
+ return Collections.emptyList();
+ }
+
+ /**
+ * @generated
+ */
+ public static List<ComrelLinkDescriptor> getSinglePortMapping_4001IncomingLinks(
+ View view) {
+ return Collections.emptyList();
+ }
+
+ /**
+ * @generated
+ */
+ public static List<ComrelLinkDescriptor> getMultiPortMapping_4002IncomingLinks(
+ View view) {
+ return Collections.emptyList();
+ }
+
+ /**
+ * @generated
+ */
+ public static List<ComrelLinkDescriptor> getMultiSinglePortMapping_4003IncomingLinks(
+ View view) {
+ return Collections.emptyList();
+ }
+
+ /**
+ * @generated
+ */
+ public static List<ComrelLinkDescriptor> getSingleInputPort_2001OutgoingLinks(
+ View view) {
+ SingleInputPort modelElement = (SingleInputPort) view.getElement();
+ LinkedList<ComrelLinkDescriptor> result = new LinkedList<ComrelLinkDescriptor>();
+ result.addAll(getOutgoingTypeModelFacetLinks_SinglePortMapping_4001(modelElement));
+ return result;
+ }
+
+ /**
+ * @generated
+ */
+ public static List<ComrelLinkDescriptor> getCartesianQueuedUnit_2002OutgoingLinks(
+ View view) {
+ return Collections.emptyList();
+ }
+
+ /**
+ * @generated
+ */
+ public static List<ComrelLinkDescriptor> getParallelQueuedUnit_2003OutgoingLinks(
+ View view) {
+ return Collections.emptyList();
+ }
+
+ /**
+ * @generated
+ */
+ public static List<ComrelLinkDescriptor> getSingleQueuedUnit_2004OutgoingLinks(
+ View view) {
+ return Collections.emptyList();
+ }
+
+ /**
+ * @generated
+ */
+ public static List<ComrelLinkDescriptor> getSequentialUnit_2005OutgoingLinks(
+ View view) {
+ return Collections.emptyList();
+ }
+
+ /**
+ * @generated
+ */
+ public static List<ComrelLinkDescriptor> getConditionalUnit_2006OutgoingLinks(
+ View view) {
+ return Collections.emptyList();
+ }
+
+ /**
+ * @generated
+ */
+ public static List<ComrelLinkDescriptor> getAtomicUnit_2007OutgoingLinks(
+ View view) {
+ return Collections.emptyList();
+ }
+
+ /**
+ * @generated
+ */
+ public static List<ComrelLinkDescriptor> getSingleInputPort_3001OutgoingLinks(
+ View view) {
+ SingleInputPort modelElement = (SingleInputPort) view.getElement();
+ LinkedList<ComrelLinkDescriptor> result = new LinkedList<ComrelLinkDescriptor>();
+ result.addAll(getOutgoingTypeModelFacetLinks_SinglePortMapping_4001(modelElement));
+ return result;
+ }
+
+ /**
+ * @generated
+ */
+ public static List<ComrelLinkDescriptor> getMultiInputPort_3002OutgoingLinks(
+ View view) {
+ MultiInputPort modelElement = (MultiInputPort) view.getElement();
+ LinkedList<ComrelLinkDescriptor> result = new LinkedList<ComrelLinkDescriptor>();
+ result.addAll(getOutgoingTypeModelFacetLinks_MultiPortMapping_4002(modelElement));
+ result.addAll(getOutgoingTypeModelFacetLinks_MultiSinglePortMapping_4003(modelElement));
+ return result;
+ }
+
+ /**
+ * @generated
+ */
+ public static List<ComrelLinkDescriptor> getCartesianQueuedUnit_3003OutgoingLinks(
+ View view) {
+ return Collections.emptyList();
+ }
+
+ /**
+ * @generated
+ */
+ public static List<ComrelLinkDescriptor> getParallelQueuedUnit_3004OutgoingLinks(
+ View view) {
+ return Collections.emptyList();
+ }
+
+ /**
+ * @generated
+ */
+ public static List<ComrelLinkDescriptor> getSingleInputPort_3005OutgoingLinks(
+ View view) {
+ SingleInputPort modelElement = (SingleInputPort) view.getElement();
+ LinkedList<ComrelLinkDescriptor> result = new LinkedList<ComrelLinkDescriptor>();
+ result.addAll(getOutgoingTypeModelFacetLinks_SinglePortMapping_4001(modelElement));
+ return result;
+ }
+
+ /**
+ * @generated
+ */
+ public static List<ComrelLinkDescriptor> getMultiInputPort_3006OutgoingLinks(
+ View view) {
+ MultiInputPort modelElement = (MultiInputPort) view.getElement();
+ LinkedList<ComrelLinkDescriptor> result = new LinkedList<ComrelLinkDescriptor>();
+ result.addAll(getOutgoingTypeModelFacetLinks_MultiPortMapping_4002(modelElement));
+ result.addAll(getOutgoingTypeModelFacetLinks_MultiSinglePortMapping_4003(modelElement));
+ return result;
+ }
+
+ /**
+ * @generated
+ */
+ public static List<ComrelLinkDescriptor> getCartesianQueuedUnit_3007OutgoingLinks(
+ View view) {
+ return Collections.emptyList();
+ }
+
+ /**
+ * @generated
+ */
+ public static List<ComrelLinkDescriptor> getSingleFeatureUnit_3008OutgoingLinks(
+ View view) {
+ return Collections.emptyList();
+ }
+
+ /**
+ * @generated
+ */
+ public static List<ComrelLinkDescriptor> getSingleInputPort_3009OutgoingLinks(
+ View view) {
+ SingleInputPort modelElement = (SingleInputPort) view.getElement();
+ LinkedList<ComrelLinkDescriptor> result = new LinkedList<ComrelLinkDescriptor>();
+ result.addAll(getOutgoingTypeModelFacetLinks_SinglePortMapping_4001(modelElement));
+ return result;
+ }
+
+ /**
+ * @generated
+ */
+ public static List<ComrelLinkDescriptor> getMultiInputPort_3010OutgoingLinks(
+ View view) {
+ MultiInputPort modelElement = (MultiInputPort) view.getElement();
+ LinkedList<ComrelLinkDescriptor> result = new LinkedList<ComrelLinkDescriptor>();
+ result.addAll(getOutgoingTypeModelFacetLinks_MultiPortMapping_4002(modelElement));
+ result.addAll(getOutgoingTypeModelFacetLinks_MultiSinglePortMapping_4003(modelElement));
+ return result;
+ }
+
+ /**
+ * @generated
+ */
+ public static List<ComrelLinkDescriptor> getSingleOutputPort_3011OutgoingLinks(
+ View view) {
+ SingleOutputPort modelElement = (SingleOutputPort) view.getElement();
+ LinkedList<ComrelLinkDescriptor> result = new LinkedList<ComrelLinkDescriptor>();
+ result.addAll(getOutgoingTypeModelFacetLinks_SinglePortMapping_4001(modelElement));
+ return result;
+ }
+
+ /**
+ * @generated
+ */
+ public static List<ComrelLinkDescriptor> getMultiFeatureUnit_3012OutgoingLinks(
+ View view) {
+ return Collections.emptyList();
+ }
+
+ /**
+ * @generated
+ */
+ public static List<ComrelLinkDescriptor> getSingleInputPort_3013OutgoingLinks(
+ View view) {
+ SingleInputPort modelElement = (SingleInputPort) view.getElement();
+ LinkedList<ComrelLinkDescriptor> result = new LinkedList<ComrelLinkDescriptor>();
+ result.addAll(getOutgoingTypeModelFacetLinks_SinglePortMapping_4001(modelElement));
+ return result;
+ }
+
+ /**
+ * @generated
+ */
+ public static List<ComrelLinkDescriptor> getMultiInputPort_3014OutgoingLinks(
+ View view) {
+ MultiInputPort modelElement = (MultiInputPort) view.getElement();
+ LinkedList<ComrelLinkDescriptor> result = new LinkedList<ComrelLinkDescriptor>();
+ result.addAll(getOutgoingTypeModelFacetLinks_MultiPortMapping_4002(modelElement));
+ result.addAll(getOutgoingTypeModelFacetLinks_MultiSinglePortMapping_4003(modelElement));
+ return result;
+ }
+
+ /**
+ * @generated
+ */
+ public static List<ComrelLinkDescriptor> getMultiOutputPort_3015OutgoingLinks(
+ View view) {
+ MultiOutputPort modelElement = (MultiOutputPort) view.getElement();
+ LinkedList<ComrelLinkDescriptor> result = new LinkedList<ComrelLinkDescriptor>();
+ result.addAll(getOutgoingTypeModelFacetLinks_MultiPortMapping_4002(modelElement));
+ result.addAll(getOutgoingTypeModelFacetLinks_MultiSinglePortMapping_4003(modelElement));
+ return result;
+ }
+
+ /**
+ * @generated
+ */
+ public static List<ComrelLinkDescriptor> getSingleFilterUnit_3016OutgoingLinks(
+ View view) {
+ return Collections.emptyList();
+ }
+
+ /**
+ * @generated
+ */
+ public static List<ComrelLinkDescriptor> getMultiInputPort_3017OutgoingLinks(
+ View view) {
+ MultiInputPort modelElement = (MultiInputPort) view.getElement();
+ LinkedList<ComrelLinkDescriptor> result = new LinkedList<ComrelLinkDescriptor>();
+ result.addAll(getOutgoingTypeModelFacetLinks_MultiPortMapping_4002(modelElement));
+ result.addAll(getOutgoingTypeModelFacetLinks_MultiSinglePortMapping_4003(modelElement));
+ return result;
+ }
+
+ /**
+ * @generated
+ */
+ public static List<ComrelLinkDescriptor> getSingleOutputPort_3018OutgoingLinks(
+ View view) {
+ SingleOutputPort modelElement = (SingleOutputPort) view.getElement();
+ LinkedList<ComrelLinkDescriptor> result = new LinkedList<ComrelLinkDescriptor>();
+ result.addAll(getOutgoingTypeModelFacetLinks_SinglePortMapping_4001(modelElement));
+ return result;
+ }
+
+ /**
+ * @generated
+ */
+ public static List<ComrelLinkDescriptor> getMultiFilterUnit_3019OutgoingLinks(
+ View view) {
+ return Collections.emptyList();
+ }
+
+ /**
+ * @generated
+ */
+ public static List<ComrelLinkDescriptor> getMultiInputPort_3020OutgoingLinks(
+ View view) {
+ MultiInputPort modelElement = (MultiInputPort) view.getElement();
+ LinkedList<ComrelLinkDescriptor> result = new LinkedList<ComrelLinkDescriptor>();
+ result.addAll(getOutgoingTypeModelFacetLinks_MultiPortMapping_4002(modelElement));
+ result.addAll(getOutgoingTypeModelFacetLinks_MultiSinglePortMapping_4003(modelElement));
+ return result;
+ }
+
+ /**
+ * @generated
+ */
+ public static List<ComrelLinkDescriptor> getMultiOutputPort_3021OutgoingLinks(
+ View view) {
+ MultiOutputPort modelElement = (MultiOutputPort) view.getElement();
+ LinkedList<ComrelLinkDescriptor> result = new LinkedList<ComrelLinkDescriptor>();
+ result.addAll(getOutgoingTypeModelFacetLinks_MultiPortMapping_4002(modelElement));
+ result.addAll(getOutgoingTypeModelFacetLinks_MultiSinglePortMapping_4003(modelElement));
+ return result;
+ }
+
+ /**
+ * @generated
+ */
+ public static List<ComrelLinkDescriptor> getSingleQueuedUnit_3022OutgoingLinks(
+ View view) {
+ return Collections.emptyList();
+ }
+
+ /**
+ * @generated
+ */
+ public static List<ComrelLinkDescriptor> getSingleInputPort_3023OutgoingLinks(
+ View view) {
+ SingleInputPort modelElement = (SingleInputPort) view.getElement();
+ LinkedList<ComrelLinkDescriptor> result = new LinkedList<ComrelLinkDescriptor>();
+ result.addAll(getOutgoingTypeModelFacetLinks_SinglePortMapping_4001(modelElement));
+ return result;
+ }
+
+ /**
+ * @generated
+ */
+ public static List<ComrelLinkDescriptor> getMultiInputPort_3024OutgoingLinks(
+ View view) {
+ MultiInputPort modelElement = (MultiInputPort) view.getElement();
+ LinkedList<ComrelLinkDescriptor> result = new LinkedList<ComrelLinkDescriptor>();
+ result.addAll(getOutgoingTypeModelFacetLinks_MultiPortMapping_4002(modelElement));
+ result.addAll(getOutgoingTypeModelFacetLinks_MultiSinglePortMapping_4003(modelElement));
+ return result;
+ }
+
+ /**
+ * @generated
+ */
+ public static List<ComrelLinkDescriptor> getCartesianQueuedUnit_3025OutgoingLinks(
+ View view) {
+ return Collections.emptyList();
+ }
+
+ /**
+ * @generated
+ */
+ public static List<ComrelLinkDescriptor> getSequentialUnit_3026OutgoingLinks(
+ View view) {
+ return Collections.emptyList();
+ }
+
+ /**
+ * @generated
+ */
+ public static List<ComrelLinkDescriptor> getSingleInputPort_3027OutgoingLinks(
+ View view) {
+ SingleInputPort modelElement = (SingleInputPort) view.getElement();
+ LinkedList<ComrelLinkDescriptor> result = new LinkedList<ComrelLinkDescriptor>();
+ result.addAll(getOutgoingTypeModelFacetLinks_SinglePortMapping_4001(modelElement));
+ return result;
+ }
+
+ /**
+ * @generated
+ */
+ public static List<ComrelLinkDescriptor> getMultiInputPort_3028OutgoingLinks(
+ View view) {
+ MultiInputPort modelElement = (MultiInputPort) view.getElement();
+ LinkedList<ComrelLinkDescriptor> result = new LinkedList<ComrelLinkDescriptor>();
+ result.addAll(getOutgoingTypeModelFacetLinks_MultiPortMapping_4002(modelElement));
+ result.addAll(getOutgoingTypeModelFacetLinks_MultiSinglePortMapping_4003(modelElement));
+ return result;
+ }
+
+ /**
+ * @generated
+ */
+ public static List<ComrelLinkDescriptor> getCartesianQueuedUnit_3029OutgoingLinks(
+ View view) {
+ return Collections.emptyList();
+ }
+
+ /**
+ * @generated
+ */
+ public static List<ComrelLinkDescriptor> getConditionalUnit_3030OutgoingLinks(
+ View view) {
+ return Collections.emptyList();
+ }
+
+ /**
+ * @generated
+ */
+ public static List<ComrelLinkDescriptor> getSingleInputPort_3031OutgoingLinks(
+ View view) {
+ SingleInputPort modelElement = (SingleInputPort) view.getElement();
+ LinkedList<ComrelLinkDescriptor> result = new LinkedList<ComrelLinkDescriptor>();
+ result.addAll(getOutgoingTypeModelFacetLinks_SinglePortMapping_4001(modelElement));
+ return result;
+ }
+
+ /**
+ * @generated
+ */
+ public static List<ComrelLinkDescriptor> getMultiInputPort_3032OutgoingLinks(
+ View view) {
+ MultiInputPort modelElement = (MultiInputPort) view.getElement();
+ LinkedList<ComrelLinkDescriptor> result = new LinkedList<ComrelLinkDescriptor>();
+ result.addAll(getOutgoingTypeModelFacetLinks_MultiPortMapping_4002(modelElement));
+ result.addAll(getOutgoingTypeModelFacetLinks_MultiSinglePortMapping_4003(modelElement));
+ return result;
+ }
+
+ /**
+ * @generated
+ */
+ public static List<ComrelLinkDescriptor> getCartesianQueuedUnit_3033OutgoingLinks(
+ View view) {
+ return Collections.emptyList();
+ }
+
+ /**
+ * @generated
+ */
+ public static List<ComrelLinkDescriptor> getAtomicUnit_3034OutgoingLinks(
+ View view) {
+ return Collections.emptyList();
+ }
+
+ /**
+ * @generated
+ */
+ public static List<ComrelLinkDescriptor> getSingleInputPort_3035OutgoingLinks(
+ View view) {
+ SingleInputPort modelElement = (SingleInputPort) view.getElement();
+ LinkedList<ComrelLinkDescriptor> result = new LinkedList<ComrelLinkDescriptor>();
+ result.addAll(getOutgoingTypeModelFacetLinks_SinglePortMapping_4001(modelElement));
+ return result;
+ }
+
+ /**
+ * @generated
+ */
+ public static List<ComrelLinkDescriptor> getParallelQueuedUnit_3036OutgoingLinks(
+ View view) {
+ return Collections.emptyList();
+ }
+
+ /**
+ * @generated
+ */
+ public static List<ComrelLinkDescriptor> getParallelQueuedUnit_3037OutgoingLinks(
+ View view) {
+ return Collections.emptyList();
+ }
+
+ /**
+ * @generated
+ */
+ public static List<ComrelLinkDescriptor> getSingleFeatureUnit_3038OutgoingLinks(
+ View view) {
+ return Collections.emptyList();
+ }
+
+ /**
+ * @generated
+ */
+ public static List<ComrelLinkDescriptor> getMultiFeatureUnit_3039OutgoingLinks(
+ View view) {
+ return Collections.emptyList();
+ }
+
+ /**
+ * @generated
+ */
+ public static List<ComrelLinkDescriptor> getSingleFilterUnit_3040OutgoingLinks(
+ View view) {
+ return Collections.emptyList();
+ }
+
+ /**
+ * @generated
+ */
+ public static List<ComrelLinkDescriptor> getMultiFilterUnit_3041OutgoingLinks(
+ View view) {
+ return Collections.emptyList();
+ }
+
+ /**
+ * @generated
+ */
+ public static List<ComrelLinkDescriptor> getSingleQueuedUnit_3042OutgoingLinks(
+ View view) {
+ return Collections.emptyList();
+ }
+
+ /**
+ * @generated
+ */
+ public static List<ComrelLinkDescriptor> getParallelQueuedUnit_3043OutgoingLinks(
+ View view) {
+ return Collections.emptyList();
+ }
+
+ /**
+ * @generated
+ */
+ public static List<ComrelLinkDescriptor> getSequentialUnit_3044OutgoingLinks(
+ View view) {
+ return Collections.emptyList();
+ }
+
+ /**
+ * @generated
+ */
+ public static List<ComrelLinkDescriptor> getParallelQueuedUnit_3045OutgoingLinks(
+ View view) {
+ return Collections.emptyList();
+ }
+
+ /**
+ * @generated
+ */
+ public static List<ComrelLinkDescriptor> getConditionalUnit_3046OutgoingLinks(
+ View view) {
+ return Collections.emptyList();
+ }
+
+ /**
+ * @generated
+ */
+ public static List<ComrelLinkDescriptor> getCartesianQueuedUnit_3047OutgoingLinks(
+ View view) {
+ return Collections.emptyList();
+ }
+
+ /**
+ * @generated
+ */
+ public static List<ComrelLinkDescriptor> getParallelQueuedUnit_3048OutgoingLinks(
+ View view) {
+ return Collections.emptyList();
+ }
+
+ /**
+ * @generated
+ */
+ public static List<ComrelLinkDescriptor> getAtomicUnit_3049OutgoingLinks(
+ View view) {
+ return Collections.emptyList();
+ }
+
+ /**
+ * @generated
+ */
+ public static List<ComrelLinkDescriptor> getSingleFeatureUnit_3050OutgoingLinks(
+ View view) {
+ return Collections.emptyList();
+ }
+
+ /**
+ * @generated
+ */
+ public static List<ComrelLinkDescriptor> getMultiFeatureUnit_3051OutgoingLinks(
+ View view) {
+ return Collections.emptyList();
+ }
+
+ /**
+ * @generated
+ */
+ public static List<ComrelLinkDescriptor> getSingleFilterUnit_3052OutgoingLinks(
+ View view) {
+ return Collections.emptyList();
+ }
+
+ /**
+ * @generated
+ */
+ public static List<ComrelLinkDescriptor> getMultiFilterUnit_3053OutgoingLinks(
+ View view) {
+ return Collections.emptyList();
+ }
+
+ /**
+ * @generated
+ */
+ public static List<ComrelLinkDescriptor> getSingleQueuedUnit_3054OutgoingLinks(
+ View view) {
+ return Collections.emptyList();
+ }
+
+ /**
+ * @generated
+ */
+ public static List<ComrelLinkDescriptor> getSingleFeatureUnit_3055OutgoingLinks(
+ View view) {
+ return Collections.emptyList();
+ }
+
+ /**
+ * @generated
+ */
+ public static List<ComrelLinkDescriptor> getMultiFeatureUnit_3056OutgoingLinks(
+ View view) {
+ return Collections.emptyList();
+ }
+
+ /**
+ * @generated
+ */
+ public static List<ComrelLinkDescriptor> getSingleFilterUnit_3057OutgoingLinks(
+ View view) {
+ return Collections.emptyList();
+ }
+
+ /**
+ * @generated
+ */
+ public static List<ComrelLinkDescriptor> getMultiFilterUnit_3058OutgoingLinks(
+ View view) {
+ return Collections.emptyList();
+ }
+
+ /**
+ * @generated
+ */
+ public static List<ComrelLinkDescriptor> getSingleQueuedUnit_3059OutgoingLinks(
+ View view) {
+ return Collections.emptyList();
+ }
+
+ /**
+ * @generated
+ */
+ public static List<ComrelLinkDescriptor> getSequentialUnit_3060OutgoingLinks(
+ View view) {
+ return Collections.emptyList();
+ }
+
+ /**
+ * @generated
+ */
+ public static List<ComrelLinkDescriptor> getSingleFeatureUnit_3061OutgoingLinks(
+ View view) {
+ return Collections.emptyList();
+ }
+
+ /**
+ * @generated
+ */
+ public static List<ComrelLinkDescriptor> getMultiFeatureUnit_3062OutgoingLinks(
+ View view) {
+ return Collections.emptyList();
+ }
+
+ /**
+ * @generated
+ */
+ public static List<ComrelLinkDescriptor> getSingleFilterUnit_3063OutgoingLinks(
+ View view) {
+ return Collections.emptyList();
+ }
+
+ /**
+ * @generated
+ */
+ public static List<ComrelLinkDescriptor> getMultiFilterUnit_3064OutgoingLinks(
+ View view) {
+ return Collections.emptyList();
+ }
+
+ /**
+ * @generated
+ */
+ public static List<ComrelLinkDescriptor> getSingleQueuedUnit_3065OutgoingLinks(
+ View view) {
+ return Collections.emptyList();
+ }
+
+ /**
+ * @generated
+ */
+ public static List<ComrelLinkDescriptor> getConditionalUnit_3066OutgoingLinks(
+ View view) {
+ return Collections.emptyList();
+ }
+
+ /**
+ * @generated
+ */
+ public static List<ComrelLinkDescriptor> getSingleQueuedUnit_3067OutgoingLinks(
+ View view) {
+ return Collections.emptyList();
+ }
+
+ /**
+ * @generated
+ */
+ public static List<ComrelLinkDescriptor> getAtomicUnit_3068OutgoingLinks(
+ View view) {
+ return Collections.emptyList();
+ }
+
+ /**
+ * @generated
+ */
+ public static List<ComrelLinkDescriptor> getSequentialUnit_3069OutgoingLinks(
+ View view) {
+ return Collections.emptyList();
+ }
+
+ /**
+ * @generated
+ */
+ public static List<ComrelLinkDescriptor> getSequentialUnit_3070OutgoingLinks(
+ View view) {
+ return Collections.emptyList();
+ }
+
+ /**
+ * @generated
+ */
+ public static List<ComrelLinkDescriptor> getConditionalUnit_3071OutgoingLinks(
+ View view) {
+ return Collections.emptyList();
+ }
+
+ /**
+ * @generated
+ */
+ public static List<ComrelLinkDescriptor> getConditionalUnit_3072OutgoingLinks(
+ View view) {
+ return Collections.emptyList();
+ }
+
+ /**
+ * @generated
+ */
+ public static List<ComrelLinkDescriptor> getSequentialUnit_3073OutgoingLinks(
+ View view) {
+ return Collections.emptyList();
+ }
+
+ /**
+ * @generated
+ */
+ public static List<ComrelLinkDescriptor> getAtomicUnit_3074OutgoingLinks(
+ View view) {
+ return Collections.emptyList();
+ }
+
+ /**
+ * @generated
+ */
+ public static List<ComrelLinkDescriptor> getConditionalUnit_3075OutgoingLinks(
+ View view) {
+ return Collections.emptyList();
+ }
+
+ /**
+ * @generated
+ */
+ public static List<ComrelLinkDescriptor> getConditionCheck_3076OutgoingLinks(
+ View view) {
+ return Collections.emptyList();
+ }
+
+ /**
+ * @generated
+ */
+ public static List<ComrelLinkDescriptor> getAtomicUnit_3077OutgoingLinks(
+ View view) {
+ return Collections.emptyList();
+ }
+
+ /**
+ * @generated
+ */
+ public static List<ComrelLinkDescriptor> getAtomicUnit_3078OutgoingLinks(
+ View view) {
+ return Collections.emptyList();
+ }
+
+ /**
+ * @generated
+ */
+ public static List<ComrelLinkDescriptor> getSinglePortMapping_4001OutgoingLinks(
+ View view) {
+ return Collections.emptyList();
+ }
+
+ /**
+ * @generated
+ */
+ public static List<ComrelLinkDescriptor> getMultiPortMapping_4002OutgoingLinks(
+ View view) {
+ return Collections.emptyList();
+ }
+
+ /**
+ * @generated
+ */
+ public static List<ComrelLinkDescriptor> getMultiSinglePortMapping_4003OutgoingLinks(
+ View view) {
+ return Collections.emptyList();
+ }
+
+ /**
+ * @generated
+ */
+ private static Collection<ComrelLinkDescriptor> getContainedTypeModelFacetLinks_SinglePortMapping_4001(
+ CompositeRefactoring container) {
+ LinkedList<ComrelLinkDescriptor> result = new LinkedList<ComrelLinkDescriptor>();
+ for (Iterator<?> links = container.getPortMappings().iterator(); links
+ .hasNext();) {
+ EObject linkObject = (EObject) links.next();
+ if (false == linkObject instanceof SinglePortMapping) {
+ continue;
+ }
+ SinglePortMapping link = (SinglePortMapping) linkObject;
+ if (SinglePortMappingEditPart.VISUAL_ID != ComrelVisualIDRegistry
+ .getLinkWithClassVisualID(link)) {
+ continue;
+ }
+ SingleInputPort dst = link.getTarget();
+ SinglePort src = link.getSource();
+ result.add(new ComrelLinkDescriptor(src, dst, link,
+ ComrelElementTypes.SinglePortMapping_4001,
+ SinglePortMappingEditPart.VISUAL_ID));
+ }
+ return result;
+ }
+
+ /**
+ * @generated
+ */
+ private static Collection<ComrelLinkDescriptor> getContainedTypeModelFacetLinks_MultiPortMapping_4002(
+ CompositeRefactoring container) {
+ LinkedList<ComrelLinkDescriptor> result = new LinkedList<ComrelLinkDescriptor>();
+ for (Iterator<?> links = container.getPortMappings().iterator(); links
+ .hasNext();) {
+ EObject linkObject = (EObject) links.next();
+ if (false == linkObject instanceof MultiPortMapping) {
+ continue;
+ }
+ MultiPortMapping link = (MultiPortMapping) linkObject;
+ if (MultiPortMappingEditPart.VISUAL_ID != ComrelVisualIDRegistry
+ .getLinkWithClassVisualID(link)) {
+ continue;
+ }
+ MultiInputPort dst = link.getTarget();
+ MultiPort src = link.getSource();
+ result.add(new ComrelLinkDescriptor(src, dst, link,
+ ComrelElementTypes.MultiPortMapping_4002,
+ MultiPortMappingEditPart.VISUAL_ID));
+ }
+ return result;
+ }
+
+ /**
+ * @generated
+ */
+ private static Collection<ComrelLinkDescriptor> getContainedTypeModelFacetLinks_MultiSinglePortMapping_4003(
+ CompositeRefactoring container) {
+ LinkedList<ComrelLinkDescriptor> result = new LinkedList<ComrelLinkDescriptor>();
+ for (Iterator<?> links = container.getPortMappings().iterator(); links
+ .hasNext();) {
+ EObject linkObject = (EObject) links.next();
+ if (false == linkObject instanceof MultiSinglePortMapping) {
+ continue;
+ }
+ MultiSinglePortMapping link = (MultiSinglePortMapping) linkObject;
+ if (MultiSinglePortMappingEditPart.VISUAL_ID != ComrelVisualIDRegistry
+ .getLinkWithClassVisualID(link)) {
+ continue;
+ }
+ SingleInputPort dst = link.getTarget();
+ MultiPort src = link.getSource();
+ result.add(new ComrelLinkDescriptor(src, dst, link,
+ ComrelElementTypes.MultiSinglePortMapping_4003,
+ MultiSinglePortMappingEditPart.VISUAL_ID));
+ }
+ return result;
+ }
+
+ /**
+ * @generated
+ */
+ private static Collection<ComrelLinkDescriptor> getIncomingTypeModelFacetLinks_SinglePortMapping_4001(
+ SingleInputPort target,
+ Map<EObject, Collection<EStructuralFeature.Setting>> crossReferences) {
+ LinkedList<ComrelLinkDescriptor> result = new LinkedList<ComrelLinkDescriptor>();
+ Collection<EStructuralFeature.Setting> settings = crossReferences
+ .get(target);
+ for (EStructuralFeature.Setting setting : settings) {
+ if (setting.getEStructuralFeature() != ComrelPackage.eINSTANCE
+ .getSinglePortMapping_Target()
+ || false == setting.getEObject() instanceof SinglePortMapping) {
+ continue;
+ }
+ SinglePortMapping link = (SinglePortMapping) setting.getEObject();
+ if (SinglePortMappingEditPart.VISUAL_ID != ComrelVisualIDRegistry
+ .getLinkWithClassVisualID(link)) {
+ continue;
+ }
+ SinglePort src = link.getSource();
+ result.add(new ComrelLinkDescriptor(src, target, link,
+ ComrelElementTypes.SinglePortMapping_4001,
+ SinglePortMappingEditPart.VISUAL_ID));
+ }
+ return result;
+ }
+
+ /**
+ * @generated
+ */
+ private static Collection<ComrelLinkDescriptor> getIncomingTypeModelFacetLinks_MultiPortMapping_4002(
+ MultiInputPort target,
+ Map<EObject, Collection<EStructuralFeature.Setting>> crossReferences) {
+ LinkedList<ComrelLinkDescriptor> result = new LinkedList<ComrelLinkDescriptor>();
+ Collection<EStructuralFeature.Setting> settings = crossReferences
+ .get(target);
+ for (EStructuralFeature.Setting setting : settings) {
+ if (setting.getEStructuralFeature() != ComrelPackage.eINSTANCE
+ .getMultiPortMapping_Target()
+ || false == setting.getEObject() instanceof MultiPortMapping) {
+ continue;
+ }
+ MultiPortMapping link = (MultiPortMapping) setting.getEObject();
+ if (MultiPortMappingEditPart.VISUAL_ID != ComrelVisualIDRegistry
+ .getLinkWithClassVisualID(link)) {
+ continue;
+ }
+ MultiPort src = link.getSource();
+ result.add(new ComrelLinkDescriptor(src, target, link,
+ ComrelElementTypes.MultiPortMapping_4002,
+ MultiPortMappingEditPart.VISUAL_ID));
+ }
+ return result;
+ }
+
+ /**
+ * @generated
+ */
+ private static Collection<ComrelLinkDescriptor> getIncomingTypeModelFacetLinks_MultiSinglePortMapping_4003(
+ SingleInputPort target,
+ Map<EObject, Collection<EStructuralFeature.Setting>> crossReferences) {
+ LinkedList<ComrelLinkDescriptor> result = new LinkedList<ComrelLinkDescriptor>();
+ Collection<EStructuralFeature.Setting> settings = crossReferences
+ .get(target);
+ for (EStructuralFeature.Setting setting : settings) {
+ if (setting.getEStructuralFeature() != ComrelPackage.eINSTANCE
+ .getMultiSinglePortMapping_Target()
+ || false == setting.getEObject() instanceof MultiSinglePortMapping) {
+ continue;
+ }
+ MultiSinglePortMapping link = (MultiSinglePortMapping) setting
+ .getEObject();
+ if (MultiSinglePortMappingEditPart.VISUAL_ID != ComrelVisualIDRegistry
+ .getLinkWithClassVisualID(link)) {
+ continue;
+ }
+ MultiPort src = link.getSource();
+ result.add(new ComrelLinkDescriptor(src, target, link,
+ ComrelElementTypes.MultiSinglePortMapping_4003,
+ MultiSinglePortMappingEditPart.VISUAL_ID));
+ }
+ return result;
+ }
+
+ /**
+ * @generated
+ */
+ private static Collection<ComrelLinkDescriptor> getOutgoingTypeModelFacetLinks_SinglePortMapping_4001(
+ SinglePort source) {
+ CompositeRefactoring container = null;
+ // Find container element for the link.
+ // Climb up by containment hierarchy starting from the source
+ // and return the first element that is instance of the container class.
+ for (EObject element = source; element != null && container == null; element = element
+ .eContainer()) {
+ if (element instanceof CompositeRefactoring) {
+ container = (CompositeRefactoring) element;
+ }
+ }
+ if (container == null) {
+ return Collections.emptyList();
+ }
+ LinkedList<ComrelLinkDescriptor> result = new LinkedList<ComrelLinkDescriptor>();
+ for (Iterator<?> links = container.getPortMappings().iterator(); links
+ .hasNext();) {
+ EObject linkObject = (EObject) links.next();
+ if (false == linkObject instanceof SinglePortMapping) {
+ continue;
+ }
+ SinglePortMapping link = (SinglePortMapping) linkObject;
+ if (SinglePortMappingEditPart.VISUAL_ID != ComrelVisualIDRegistry
+ .getLinkWithClassVisualID(link)) {
+ continue;
+ }
+ SingleInputPort dst = link.getTarget();
+ SinglePort src = link.getSource();
+ if (src != source) {
+ continue;
+ }
+ result.add(new ComrelLinkDescriptor(src, dst, link,
+ ComrelElementTypes.SinglePortMapping_4001,
+ SinglePortMappingEditPart.VISUAL_ID));
+ }
+ return result;
+ }
+
+ /**
+ * @generated
+ */
+ private static Collection<ComrelLinkDescriptor> getOutgoingTypeModelFacetLinks_MultiPortMapping_4002(
+ MultiPort source) {
+ CompositeRefactoring container = null;
+ // Find container element for the link.
+ // Climb up by containment hierarchy starting from the source
+ // and return the first element that is instance of the container class.
+ for (EObject element = source; element != null && container == null; element = element
+ .eContainer()) {
+ if (element instanceof CompositeRefactoring) {
+ container = (CompositeRefactoring) element;
+ }
+ }
+ if (container == null) {
+ return Collections.emptyList();
+ }
+ LinkedList<ComrelLinkDescriptor> result = new LinkedList<ComrelLinkDescriptor>();
+ for (Iterator<?> links = container.getPortMappings().iterator(); links
+ .hasNext();) {
+ EObject linkObject = (EObject) links.next();
+ if (false == linkObject instanceof MultiPortMapping) {
+ continue;
+ }
+ MultiPortMapping link = (MultiPortMapping) linkObject;
+ if (MultiPortMappingEditPart.VISUAL_ID != ComrelVisualIDRegistry
+ .getLinkWithClassVisualID(link)) {
+ continue;
+ }
+ MultiInputPort dst = link.getTarget();
+ MultiPort src = link.getSource();
+ if (src != source) {
+ continue;
+ }
+ result.add(new ComrelLinkDescriptor(src, dst, link,
+ ComrelElementTypes.MultiPortMapping_4002,
+ MultiPortMappingEditPart.VISUAL_ID));
+ }
+ return result;
+ }
+
+ /**
+ * @generated
+ */
+ private static Collection<ComrelLinkDescriptor> getOutgoingTypeModelFacetLinks_MultiSinglePortMapping_4003(
+ MultiPort source) {
+ CompositeRefactoring container = null;
+ // Find container element for the link.
+ // Climb up by containment hierarchy starting from the source
+ // and return the first element that is instance of the container class.
+ for (EObject element = source; element != null && container == null; element = element
+ .eContainer()) {
+ if (element instanceof CompositeRefactoring) {
+ container = (CompositeRefactoring) element;
+ }
+ }
+ if (container == null) {
+ return Collections.emptyList();
+ }
+ LinkedList<ComrelLinkDescriptor> result = new LinkedList<ComrelLinkDescriptor>();
+ for (Iterator<?> links = container.getPortMappings().iterator(); links
+ .hasNext();) {
+ EObject linkObject = (EObject) links.next();
+ if (false == linkObject instanceof MultiSinglePortMapping) {
+ continue;
+ }
+ MultiSinglePortMapping link = (MultiSinglePortMapping) linkObject;
+ if (MultiSinglePortMappingEditPart.VISUAL_ID != ComrelVisualIDRegistry
+ .getLinkWithClassVisualID(link)) {
+ continue;
+ }
+ SingleInputPort dst = link.getTarget();
+ MultiPort src = link.getSource();
+ if (src != source) {
+ continue;
+ }
+ result.add(new ComrelLinkDescriptor(src, dst, link,
+ ComrelElementTypes.MultiSinglePortMapping_4003,
+ MultiSinglePortMappingEditPart.VISUAL_ID));
+ }
+ return result;
+ }
+
+}
diff --git a/org.eclipse.emf.refactor.comrel.diagram/src/comrel/diagram/part/ComrelDocumentProvider.java b/org.eclipse.emf.refactor.comrel.diagram/src/comrel/diagram/part/ComrelDocumentProvider.java
new file mode 100644
index 0000000..20739d2
--- /dev/null
+++ b/org.eclipse.emf.refactor.comrel.diagram/src/comrel/diagram/part/ComrelDocumentProvider.java
@@ -0,0 +1,1132 @@
+/*
+ *
+ */
+package comrel.diagram.part;
+
+import java.io.IOException;
+import java.util.ArrayList;
+import java.util.Collections;
+import java.util.HashMap;
+import java.util.Iterator;
+import java.util.LinkedList;
+import java.util.List;
+import java.util.Map;
+
+import org.eclipse.core.commands.ExecutionException;
+import org.eclipse.core.resources.IFile;
+import org.eclipse.core.resources.IResource;
+import org.eclipse.core.resources.IResourceStatus;
+import org.eclipse.core.resources.IStorage;
+import org.eclipse.core.resources.ResourcesPlugin;
+import org.eclipse.core.runtime.CoreException;
+import org.eclipse.core.runtime.IAdaptable;
+import org.eclipse.core.runtime.IProgressMonitor;
+import org.eclipse.core.runtime.IStatus;
+import org.eclipse.core.runtime.Path;
+import org.eclipse.core.runtime.Status;
+import org.eclipse.core.runtime.jobs.ISchedulingRule;
+import org.eclipse.core.runtime.jobs.MultiRule;
+import org.eclipse.emf.common.notify.Adapter;
+import org.eclipse.emf.common.notify.Notification;
+import org.eclipse.emf.common.notify.Notifier;
+import org.eclipse.emf.common.ui.URIEditorInput;
+import org.eclipse.emf.common.util.URI;
+import org.eclipse.emf.ecore.EObject;
+import org.eclipse.emf.ecore.resource.Resource;
+import org.eclipse.emf.ecore.resource.ResourceSet;
+import org.eclipse.emf.ecore.util.EContentAdapter;
+import org.eclipse.emf.ecore.util.EcoreUtil;
+import org.eclipse.emf.transaction.NotificationFilter;
+import org.eclipse.emf.transaction.TransactionalEditingDomain;
+import org.eclipse.emf.workspace.util.WorkspaceSynchronizer;
+import org.eclipse.gmf.runtime.common.core.command.CommandResult;
+import org.eclipse.gmf.runtime.diagram.core.DiagramEditingDomainFactory;
+import org.eclipse.gmf.runtime.diagram.ui.resources.editor.document.AbstractDocumentProvider;
+import org.eclipse.gmf.runtime.diagram.ui.resources.editor.document.DiagramDocument;
+import org.eclipse.gmf.runtime.diagram.ui.resources.editor.document.IDiagramDocument;
+import org.eclipse.gmf.runtime.diagram.ui.resources.editor.document.IDiagramDocumentProvider;
+import org.eclipse.gmf.runtime.diagram.ui.resources.editor.document.IDocument;
+import org.eclipse.gmf.runtime.diagram.ui.resources.editor.internal.EditorStatusCodes;
+import org.eclipse.gmf.runtime.diagram.ui.resources.editor.internal.util.DiagramIOUtil;
+import org.eclipse.gmf.runtime.emf.commands.core.command.AbstractTransactionalCommand;
+import org.eclipse.gmf.runtime.emf.core.resources.GMFResourceFactory;
+import org.eclipse.gmf.runtime.notation.Diagram;
+import org.eclipse.gmf.runtime.notation.View;
+import org.eclipse.jface.operation.IRunnableContext;
+import org.eclipse.osgi.util.NLS;
+import org.eclipse.swt.widgets.Display;
+import org.eclipse.ui.IEditorInput;
+import org.eclipse.ui.part.FileEditorInput;
+
+/**
+ * @generated
+ */
+public class ComrelDocumentProvider extends AbstractDocumentProvider implements
+ IDiagramDocumentProvider {
+
+ /**
+ * @generated
+ */
+ protected ElementInfo createElementInfo(Object element)
+ throws CoreException {
+ if (false == element instanceof FileEditorInput
+ && false == element instanceof URIEditorInput) {
+ throw new CoreException(
+ new Status(
+ IStatus.ERROR,
+ ComrelDiagramEditorPlugin.ID,
+ 0,
+ NLS.bind(
+ Messages.ComrelDocumentProvider_IncorrectInputError,
+ new Object[] {
+ element,
+ "org.eclipse.ui.part.FileEditorInput", "org.eclipse.emf.common.ui.URIEditorInput" }), //$NON-NLS-1$ //$NON-NLS-2$
+ null));
+ }
+ IEditorInput editorInput = (IEditorInput) element;
+ IDiagramDocument document = (IDiagramDocument) createDocument(editorInput);
+
+ ResourceSetInfo info = new ResourceSetInfo(document, editorInput);
+ info.setModificationStamp(computeModificationStamp(info));
+ info.fStatus = null;
+ return info;
+ }
+
+ /**
+ * @generated
+ */
+ protected IDocument createDocument(Object element) throws CoreException {
+ if (false == element instanceof FileEditorInput
+ && false == element instanceof URIEditorInput) {
+ throw new CoreException(
+ new Status(
+ IStatus.ERROR,
+ ComrelDiagramEditorPlugin.ID,
+ 0,
+ NLS.bind(
+ Messages.ComrelDocumentProvider_IncorrectInputError,
+ new Object[] {
+ element,
+ "org.eclipse.ui.part.FileEditorInput", "org.eclipse.emf.common.ui.URIEditorInput" }), //$NON-NLS-1$ //$NON-NLS-2$
+ null));
+ }
+ IDocument document = createEmptyDocument();
+ setDocumentContent(document, (IEditorInput) element);
+ setupDocument(element, document);
+ return document;
+ }
+
+ /**
+ * Sets up the given document as it would be provided for the given element. The
+ * content of the document is not changed. This default implementation is empty.
+ * Subclasses may reimplement.
+ *
+ * @param element the blue-print element
+ * @param document the document to set up
+ * @generated
+ */
+ protected void setupDocument(Object element, IDocument document) {
+ // for subclasses
+ }
+
+ /**
+ * @generated
+ */
+ private long computeModificationStamp(ResourceSetInfo info) {
+ int result = 0;
+ for (Iterator<Resource> it = info.getLoadedResourcesIterator(); it
+ .hasNext();) {
+ Resource nextResource = it.next();
+ IFile file = WorkspaceSynchronizer.getFile(nextResource);
+ if (file != null) {
+ if (file.getLocation() != null) {
+ result += file.getLocation().toFile().lastModified();
+ } else {
+ result += file.getModificationStamp();
+ }
+ }
+ }
+ return result;
+ }
+
+ /**
+ * @generated
+ */
+ protected IDocument createEmptyDocument() {
+ DiagramDocument document = new DiagramDocument();
+ document.setEditingDomain(createEditingDomain());
+ return document;
+ }
+
+ /**
+ * @generated
+ */
+ private TransactionalEditingDomain createEditingDomain() {
+ TransactionalEditingDomain editingDomain = DiagramEditingDomainFactory
+ .getInstance().createEditingDomain();
+ editingDomain.setID("comrel.diagram.EditingDomain"); //$NON-NLS-1$
+ final NotificationFilter diagramResourceModifiedFilter = NotificationFilter
+ .createNotifierFilter(editingDomain.getResourceSet())
+ .and(NotificationFilter.createEventTypeFilter(Notification.ADD))
+ .and(NotificationFilter.createFeatureFilter(ResourceSet.class,
+ ResourceSet.RESOURCE_SET__RESOURCES));
+ editingDomain.getResourceSet().eAdapters().add(new Adapter() {
+
+ private Notifier myTarger;
+
+ public Notifier getTarget() {
+ return myTarger;
+ }
+
+ public boolean isAdapterForType(Object type) {
+ return false;
+ }
+
+ public void notifyChanged(Notification notification) {
+ if (diagramResourceModifiedFilter.matches(notification)) {
+ Object value = notification.getNewValue();
+ if (value instanceof Resource) {
+ ((Resource) value).setTrackingModification(true);
+ }
+ }
+ }
+
+ public void setTarget(Notifier newTarget) {
+ myTarger = newTarget;
+ }
+
+ });
+
+ return editingDomain;
+ }
+
+ /**
+ * @generated
+ */
+ protected void setDocumentContent(IDocument document, IEditorInput element)
+ throws CoreException {
+ IDiagramDocument diagramDocument = (IDiagramDocument) document;
+ TransactionalEditingDomain domain = diagramDocument.getEditingDomain();
+ if (element instanceof FileEditorInput) {
+ IStorage storage = ((FileEditorInput) element).getStorage();
+ Diagram diagram = DiagramIOUtil.load(domain, storage, true,
+ getProgressMonitor());
+ document.setContent(diagram);
+ } else if (element instanceof URIEditorInput) {
+ URI uri = ((URIEditorInput) element).getURI();
+ Resource resource = null;
+ try {
+ resource = domain.getResourceSet().getResource(
+ uri.trimFragment(), false);
+ if (resource == null) {
+ resource = domain.getResourceSet().createResource(
+ uri.trimFragment());
+ }
+ if (!resource.isLoaded()) {
+ try {
+ Map options = new HashMap(
+ GMFResourceFactory.getDefaultLoadOptions());
+ // @see 171060
+ // options.put(org.eclipse.emf.ecore.xmi.XMLResource.OPTION_RECORD_UNKNOWN_FEATURE, Boolean.TRUE);
+ resource.load(options);
+ } catch (IOException e) {
+ resource.unload();
+ throw e;
+ }
+ }
+ if (uri.fragment() != null) {
+ EObject rootElement = resource.getEObject(uri.fragment());
+ if (rootElement instanceof Diagram) {
+ document.setContent((Diagram) rootElement);
+ return;
+ }
+ } else {
+ for (Iterator it = resource.getContents().iterator(); it
+ .hasNext();) {
+ Object rootElement = it.next();
+ if (rootElement instanceof Diagram) {
+ document.setContent((Diagram) rootElement);
+ return;
+ }
+ }
+ }
+ throw new RuntimeException(
+ Messages.ComrelDocumentProvider_NoDiagramInResourceError);
+ } catch (Exception e) {
+ CoreException thrownExcp = null;
+ if (e instanceof CoreException) {
+ thrownExcp = (CoreException) e;
+ } else {
+ String msg = e.getLocalizedMessage();
+ thrownExcp = new CoreException(
+ new Status(
+ IStatus.ERROR,
+ ComrelDiagramEditorPlugin.ID,
+ 0,
+ msg != null ? msg
+ : Messages.ComrelDocumentProvider_DiagramLoadingError,
+ e));
+ }
+ throw thrownExcp;
+ }
+ } else {
+ throw new CoreException(
+ new Status(
+ IStatus.ERROR,
+ ComrelDiagramEditorPlugin.ID,
+ 0,
+ NLS.bind(
+ Messages.ComrelDocumentProvider_IncorrectInputError,
+ new Object[] {
+ element,
+ "org.eclipse.ui.part.FileEditorInput", "org.eclipse.emf.common.ui.URIEditorInput" }), //$NON-NLS-1$ //$NON-NLS-2$
+ null));
+ }
+ }
+
+ /**
+ * @generated
+ */
+ public long getModificationStamp(Object element) {
+ ResourceSetInfo info = getResourceSetInfo(element);
+ if (info != null) {
+ return computeModificationStamp(info);
+ }
+ return super.getModificationStamp(element);
+ }
+
+ /**
+ * @generated
+ */
+ public boolean isDeleted(Object element) {
+ IDiagramDocument document = getDiagramDocument(element);
+ if (document != null) {
+ Resource diagramResource = document.getDiagram().eResource();
+ if (diagramResource != null) {
+ IFile file = WorkspaceSynchronizer.getFile(diagramResource);
+ return file == null || file.getLocation() == null
+ || !file.getLocation().toFile().exists();
+ }
+ }
+ return super.isDeleted(element);
+ }
+
+ /**
+ * @generated
+ */
+ public ResourceSetInfo getResourceSetInfo(Object editorInput) {
+ return (ResourceSetInfo) super.getElementInfo(editorInput);
+ }
+
+ /**
+ * @generated
+ */
+ protected void disposeElementInfo(Object element, ElementInfo info) {
+ if (info instanceof ResourceSetInfo) {
+ ResourceSetInfo resourceSetInfo = (ResourceSetInfo) info;
+ resourceSetInfo.dispose();
+ }
+ super.disposeElementInfo(element, info);
+ }
+
+ /**
+ * @generated
+ */
+ protected void doValidateState(Object element, Object computationContext)
+ throws CoreException {
+ ResourceSetInfo info = getResourceSetInfo(element);
+ if (info != null) {
+ LinkedList<IFile> files2Validate = new LinkedList<IFile>();
+ for (Iterator<Resource> it = info.getLoadedResourcesIterator(); it
+ .hasNext();) {
+ Resource nextResource = it.next();
+ IFile file = WorkspaceSynchronizer.getFile(nextResource);
+ if (file != null && file.isReadOnly()) {
+ files2Validate.add(file);
+ }
+ }
+ ResourcesPlugin.getWorkspace().validateEdit(
+ (IFile[]) files2Validate.toArray(new IFile[files2Validate
+ .size()]), computationContext);
+ }
+
+ super.doValidateState(element, computationContext);
+ }
+
+ /**
+ * @generated
+ */
+ public boolean isReadOnly(Object element) {
+ ResourceSetInfo info = getResourceSetInfo(element);
+ if (info != null) {
+ if (info.isUpdateCache()) {
+ try {
+ updateCache(element);
+ } catch (CoreException ex) {
+ ComrelDiagramEditorPlugin.getInstance().logError(
+ Messages.ComrelDocumentProvider_isModifiable, ex);
+ // Error message to log was initially taken from org.eclipse.gmf.runtime.diagram.ui.resources.editor.ide.internal.l10n.EditorMessages.StorageDocumentProvider_isModifiable
+ }
+ }
+ return info.isReadOnly();
+ }
+ return super.isReadOnly(element);
+ }
+
+ /**
+ * @generated
+ */
+ public boolean isModifiable(Object element) {
+ if (!isStateValidated(element)) {
+ if (element instanceof FileEditorInput
+ || element instanceof URIEditorInput) {
+ return true;
+ }
+ }
+ ResourceSetInfo info = getResourceSetInfo(element);
+ if (info != null) {
+ if (info.isUpdateCache()) {
+ try {
+ updateCache(element);
+ } catch (CoreException ex) {
+ ComrelDiagramEditorPlugin.getInstance().logError(
+ Messages.ComrelDocumentProvider_isModifiable, ex);
+ // Error message to log was initially taken from org.eclipse.gmf.runtime.diagram.ui.resources.editor.ide.internal.l10n.EditorMessages.StorageDocumentProvider_isModifiable
+ }
+ }
+ return info.isModifiable();
+ }
+ return super.isModifiable(element);
+ }
+
+ /**
+ * @generated
+ */
+ protected void updateCache(Object element) throws CoreException {
+ ResourceSetInfo info = getResourceSetInfo(element);
+ if (info != null) {
+ for (Iterator<Resource> it = info.getLoadedResourcesIterator(); it
+ .hasNext();) {
+ Resource nextResource = it.next();
+ IFile file = WorkspaceSynchronizer.getFile(nextResource);
+ if (file != null && file.isReadOnly()) {
+ info.setReadOnly(true);
+ info.setModifiable(false);
+ return;
+ }
+ }
+ info.setReadOnly(false);
+ info.setModifiable(true);
+ return;
+ }
+ }
+
+ /**
+ * @generated
+ */
+ protected void doUpdateStateCache(Object element) throws CoreException {
+ ResourceSetInfo info = getResourceSetInfo(element);
+ if (info != null) {
+ info.setUpdateCache(true);
+ }
+ super.doUpdateStateCache(element);
+ }
+
+ /**
+ * @generated
+ */
+ public boolean isSynchronized(Object element) {
+ ResourceSetInfo info = getResourceSetInfo(element);
+ if (info != null) {
+ return info.isSynchronized();
+ }
+ return super.isSynchronized(element);
+ }
+
+ /**
+ * @generated
+ */
+ protected ISchedulingRule getResetRule(Object element) {
+ ResourceSetInfo info = getResourceSetInfo(element);
+ if (info != null) {
+ LinkedList<ISchedulingRule> rules = new LinkedList<ISchedulingRule>();
+ for (Iterator<Resource> it = info.getLoadedResourcesIterator(); it
+ .hasNext();) {
+ Resource nextResource = it.next();
+ IFile file = WorkspaceSynchronizer.getFile(nextResource);
+ if (file != null) {
+ rules.add(ResourcesPlugin.getWorkspace().getRuleFactory()
+ .modifyRule(file));
+ }
+ }
+ return new MultiRule(
+ (ISchedulingRule[]) rules.toArray(new ISchedulingRule[rules
+ .size()]));
+ }
+ return null;
+ }
+
+ /**
+ * @generated
+ */
+ protected ISchedulingRule getSaveRule(Object element) {
+ ResourceSetInfo info = getResourceSetInfo(element);
+ if (info != null) {
+ LinkedList<ISchedulingRule> rules = new LinkedList<ISchedulingRule>();
+ for (Iterator<Resource> it = info.getLoadedResourcesIterator(); it
+ .hasNext();) {
+ Resource nextResource = it.next();
+ IFile file = WorkspaceSynchronizer.getFile(nextResource);
+ if (file != null) {
+ rules.add(computeSchedulingRule(file));
+ }
+ }
+ return new MultiRule(
+ (ISchedulingRule[]) rules.toArray(new ISchedulingRule[rules
+ .size()]));
+ }
+ return null;
+ }
+
+ /**
+ * @generated
+ */
+ protected ISchedulingRule getSynchronizeRule(Object element) {
+ ResourceSetInfo info = getResourceSetInfo(element);
+ if (info != null) {
+ LinkedList<ISchedulingRule> rules = new LinkedList<ISchedulingRule>();
+ for (Iterator<Resource> it = info.getLoadedResourcesIterator(); it
+ .hasNext();) {
+ Resource nextResource = it.next();
+ IFile file = WorkspaceSynchronizer.getFile(nextResource);
+ if (file != null) {
+ rules.add(ResourcesPlugin.getWorkspace().getRuleFactory()
+ .refreshRule(file));
+ }
+ }
+ return new MultiRule(
+ (ISchedulingRule[]) rules.toArray(new ISchedulingRule[rules
+ .size()]));
+ }
+ return null;
+ }
+
+ /**
+ * @generated
+ */
+ protected ISchedulingRule getValidateStateRule(Object element) {
+ ResourceSetInfo info = getResourceSetInfo(element);
+ if (info != null) {
+ LinkedList<ISchedulingRule> files = new LinkedList<ISchedulingRule>();
+ for (Iterator<Resource> it = info.getLoadedResourcesIterator(); it
+ .hasNext();) {
+ Resource nextResource = it.next();
+ IFile file = WorkspaceSynchronizer.getFile(nextResource);
+ if (file != null) {
+ files.add(file);
+ }
+ }
+ return ResourcesPlugin
+ .getWorkspace()
+ .getRuleFactory()
+ .validateEditRule(
+ (IFile[]) files.toArray(new IFile[files.size()]));
+ }
+ return null;
+ }
+
+ /**
+ * @generated
+ */
+ private ISchedulingRule computeSchedulingRule(IResource toCreateOrModify) {
+ if (toCreateOrModify.exists())
+ return ResourcesPlugin.getWorkspace().getRuleFactory()
+ .modifyRule(toCreateOrModify);
+
+ IResource parent = toCreateOrModify;
+ do {
+ /*
+ * 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 ResourcesPlugin.getWorkspace().getRuleFactory()
+ .createRule(toCreateOrModify);
+ }
+
+ /**
+ * @generated
+ */
+ protected void doSynchronize(Object element, IProgressMonitor monitor)
+ throws CoreException {
+ ResourceSetInfo info = getResourceSetInfo(element);
+ if (info != null) {
+ for (Iterator<Resource> it = info.getLoadedResourcesIterator(); it
+ .hasNext();) {
+ Resource nextResource = it.next();
+ handleElementChanged(info, nextResource, monitor);
+ }
+ return;
+ }
+ super.doSynchronize(element, monitor);
+ }
+
+ /**
+ * @generated NOT
+ */
+ protected void doSaveDocument(IProgressMonitor monitor, Object element,
+ IDocument document, boolean overwrite) throws CoreException {
+ ValidateAction.runValidation((View) document.getContent());
+
+ ResourceSetInfo info = getResourceSetInfo(element);
+ if (info != null) {
+ if (!overwrite && !info.isSynchronized()) {
+ throw new CoreException(
+ new Status(
+ IStatus.ERROR,
+ ComrelDiagramEditorPlugin.ID,
+ IResourceStatus.OUT_OF_SYNC_LOCAL,
+ Messages.ComrelDocumentProvider_UnsynchronizedFileSaveError,
+ null));
+ }
+ info.stopResourceListening();
+ fireElementStateChanging(element);
+ try {
+ monitor.beginTask(
+ Messages.ComrelDocumentProvider_SaveDiagramTask, info
+ .getResourceSet().getResources().size() + 1); //"Saving diagram"
+ for (Iterator<Resource> it = info.getLoadedResourcesIterator(); it
+ .hasNext();) {
+ Resource nextResource = it.next();
+ monitor.setTaskName(NLS
+ .bind(Messages.ComrelDocumentProvider_SaveNextResourceTask,
+ nextResource.getURI()));
+ if (nextResource.isLoaded()
+ && !info.getEditingDomain()
+ .isReadOnly(nextResource)) {
+ try {
+ nextResource.save(ComrelDiagramEditorUtil
+ .getSaveOptions());
+ } catch (IOException e) {
+ fireElementStateChangeFailed(element);
+ throw new CoreException(new Status(IStatus.ERROR,
+ ComrelDiagramEditorPlugin.ID,
+ EditorStatusCodes.RESOURCE_FAILURE,
+ e.getLocalizedMessage(), null));
+ }
+ }
+ monitor.worked(1);
+ }
+ monitor.done();
+ info.setModificationStamp(computeModificationStamp(info));
+ } catch (RuntimeException x) {
+ fireElementStateChangeFailed(element);
+ throw x;
+ } finally {
+ info.startResourceListening();
+ }
+ } else {
+ URI newResoruceURI;
+ List<IFile> affectedFiles = null;
+ if (element instanceof FileEditorInput) {
+ IFile newFile = ((FileEditorInput) element).getFile();
+ affectedFiles = Collections.singletonList(newFile);
+ newResoruceURI = URI.createPlatformResourceURI(newFile
+ .getFullPath().toString(), true);
+ } else if (element instanceof URIEditorInput) {
+ newResoruceURI = ((URIEditorInput) element).getURI();
+ } else {
+ fireElementStateChangeFailed(element);
+ throw new CoreException(
+ new Status(
+ IStatus.ERROR,
+ ComrelDiagramEditorPlugin.ID,
+ 0,
+ NLS.bind(
+ Messages.ComrelDocumentProvider_IncorrectInputError,
+ new Object[] {
+ element,
+ "org.eclipse.ui.part.FileEditorInput", "org.eclipse.emf.common.ui.URIEditorInput" }), //$NON-NLS-1$ //$NON-NLS-2$
+ null));
+ }
+ if (false == document instanceof IDiagramDocument) {
+ fireElementStateChangeFailed(element);
+ throw new CoreException(
+ new Status(
+ IStatus.ERROR,
+ ComrelDiagramEditorPlugin.ID,
+ 0,
+ "Incorrect document used: " + document + " instead of org.eclipse.gmf.runtime.diagram.ui.resources.editor.document.IDiagramDocument", null)); //$NON-NLS-1$ //$NON-NLS-2$
+ }
+ IDiagramDocument diagramDocument = (IDiagramDocument) document;
+ final Resource newResource = diagramDocument.getEditingDomain()
+ .getResourceSet().createResource(newResoruceURI);
+ final Diagram diagramCopy = (Diagram) EcoreUtil
+ .copy(diagramDocument.getDiagram());
+ try {
+ new AbstractTransactionalCommand(
+ diagramDocument.getEditingDomain(),
+ NLS.bind(
+ Messages.ComrelDocumentProvider_SaveAsOperation,
+ diagramCopy.getName()), affectedFiles) {
+ protected CommandResult doExecuteWithResult(
+ IProgressMonitor monitor, IAdaptable info)
+ throws ExecutionException {
+ newResource.getContents().add(diagramCopy);
+ return CommandResult.newOKCommandResult();
+ }
+ }.execute(monitor, null);
+ newResource.save(ComrelDiagramEditorUtil.getSaveOptions());
+ } catch (ExecutionException e) {
+ fireElementStateChangeFailed(element);
+ throw new CoreException(new Status(IStatus.ERROR,
+ ComrelDiagramEditorPlugin.ID, 0,
+ e.getLocalizedMessage(), null));
+ } catch (IOException e) {
+ fireElementStateChangeFailed(element);
+ throw new CoreException(new Status(IStatus.ERROR,
+ ComrelDiagramEditorPlugin.ID, 0,
+ e.getLocalizedMessage(), null));
+ }
+ newResource.unload();
+ }
+ }
+
+ /**
+ * @generated
+ */
+ protected void handleElementChanged(ResourceSetInfo info,
+ Resource changedResource, IProgressMonitor monitor) {
+ IFile file = WorkspaceSynchronizer.getFile(changedResource);
+ if (file != null) {
+ try {
+ file.refreshLocal(IResource.DEPTH_INFINITE, monitor);
+ } catch (CoreException ex) {
+ ComrelDiagramEditorPlugin
+ .getInstance()
+ .logError(
+ Messages.ComrelDocumentProvider_handleElementContentChanged,
+ ex);
+ // Error message to log was initially taken from org.eclipse.gmf.runtime.diagram.ui.resources.editor.ide.internal.l10n.EditorMessages.FileDocumentProvider_handleElementContentChanged
+ }
+ }
+ changedResource.unload();
+
+ fireElementContentAboutToBeReplaced(info.getEditorInput());
+ removeUnchangedElementListeners(info.getEditorInput(), info);
+ info.fStatus = null;
+ try {
+ setDocumentContent(info.fDocument, info.getEditorInput());
+ } catch (CoreException e) {
+ info.fStatus = e.getStatus();
+ }
+ if (!info.fCanBeSaved) {
+ info.setModificationStamp(computeModificationStamp(info));
+ }
+ addUnchangedElementListeners(info.getEditorInput(), info);
+ fireElementContentReplaced(info.getEditorInput());
+ }
+
+ /**
+ * @generated
+ */
+ protected void handleElementMoved(IEditorInput input, URI uri) {
+ if (input instanceof FileEditorInput) {
+ IFile newFile = ResourcesPlugin
+ .getWorkspace()
+ .getRoot()
+ .getFile(
+ new Path(URI.decode(uri.path()))
+ .removeFirstSegments(1));
+ fireElementMoved(input, newFile == null ? null
+ : new FileEditorInput(newFile));
+ return;
+ }
+ // TODO: append suffix to the URI! (use diagram as a parameter)
+ fireElementMoved(input, new URIEditorInput(uri));
+ }
+
+ /**
+ * @generated
+ */
+ public IEditorInput createInputWithEditingDomain(IEditorInput editorInput,
+ TransactionalEditingDomain domain) {
+ return editorInput;
+ }
+
+ /**
+ * @generated
+ */
+ public IDiagramDocument getDiagramDocument(Object element) {
+ IDocument doc = getDocument(element);
+ if (doc instanceof IDiagramDocument) {
+ return (IDiagramDocument) doc;
+ }
+ return null;
+ }
+
+ /**
+ * @generated
+ */
+ protected IRunnableContext getOperationRunner(IProgressMonitor monitor) {
+ return null;
+ }
+
+ /**
+ * @generated
+ */
+ protected class ResourceSetInfo extends ElementInfo {
+
+ /**
+ * @generated
+ */
+ private long myModificationStamp = IResource.NULL_STAMP;
+
+ /**
+ * @generated
+ */
+ private WorkspaceSynchronizer mySynchronizer;
+
+ /**
+ * @generated
+ */
+ private LinkedList<Resource> myUnSynchronizedResources = new LinkedList<Resource>();
+
+ /**
+ * @generated
+ */
+ private IDiagramDocument myDocument;
+
+ /**
+ * @generated
+ */
+ private IEditorInput myEditorInput;
+
+ /**
+ * @generated
+ */
+ private boolean myUpdateCache = true;
+
+ /**
+ * @generated
+ */
+ private boolean myModifiable = false;
+
+ /**
+ * @generated
+ */
+ private boolean myReadOnly = true;
+
+ /**
+ * @generated
+ */
+ private ResourceSetModificationListener myResourceSetListener;
+
+ /**
+ * @generated
+ */
+ public ResourceSetInfo(IDiagramDocument document,
+ IEditorInput editorInput) {
+ super(document);
+ myDocument = document;
+ myEditorInput = editorInput;
+ startResourceListening();
+ myResourceSetListener = new ResourceSetModificationListener(this);
+ getResourceSet().eAdapters().add(myResourceSetListener);
+ }
+
+ /**
+ * @generated
+ */
+ public long getModificationStamp() {
+ return myModificationStamp;
+ }
+
+ /**
+ * @generated
+ */
+ public void setModificationStamp(long modificationStamp) {
+ myModificationStamp = modificationStamp;
+ }
+
+ /**
+ * @generated
+ */
+ public TransactionalEditingDomain getEditingDomain() {
+ return myDocument.getEditingDomain();
+ }
+
+ /**
+ * @generated
+ */
+ public ResourceSet getResourceSet() {
+ return getEditingDomain().getResourceSet();
+ }
+
+ /**
+ * @generated
+ */
+ public Iterator<Resource> getLoadedResourcesIterator() {
+ return new ArrayList<Resource>(getResourceSet().getResources())
+ .iterator();
+ }
+
+ /**
+ * @generated
+ */
+ public IEditorInput getEditorInput() {
+ return myEditorInput;
+ }
+
+ /**
+ * @generated
+ */
+ public void dispose() {
+ stopResourceListening();
+ getResourceSet().eAdapters().remove(myResourceSetListener);
+ for (Iterator<Resource> it = getLoadedResourcesIterator(); it
+ .hasNext();) {
+ Resource resource = it.next();
+ resource.unload();
+ }
+ getEditingDomain().dispose();
+ }
+
+ /**
+ * @generated
+ */
+ public boolean isSynchronized() {
+ return myUnSynchronizedResources.size() == 0;
+ }
+
+ /**
+ * @generated
+ */
+ public void setUnSynchronized(Resource resource) {
+ myUnSynchronizedResources.add(resource);
+ }
+
+ /**
+ * @generated
+ */
+ public void setSynchronized(Resource resource) {
+ myUnSynchronizedResources.remove(resource);
+ }
+
+ /**
+ * @generated
+ */
+ public final void stopResourceListening() {
+ mySynchronizer.dispose();
+ mySynchronizer = null;
+ }
+
+ /**
+ * @generated
+ */
+ public final void startResourceListening() {
+ mySynchronizer = new WorkspaceSynchronizer(getEditingDomain(),
+ new SynchronizerDelegate());
+ }
+
+ /**
+ * @generated
+ */
+ public boolean isUpdateCache() {
+ return myUpdateCache;
+ }
+
+ /**
+ * @generated
+ */
+ public void setUpdateCache(boolean update) {
+ myUpdateCache = update;
+ }
+
+ /**
+ * @generated
+ */
+ public boolean isModifiable() {
+ return myModifiable;
+ }
+
+ /**
+ * @generated
+ */
+ public void setModifiable(boolean modifiable) {
+ myModifiable = modifiable;
+ }
+
+ /**
+ * @generated
+ */
+ public boolean isReadOnly() {
+ return myReadOnly;
+ }
+
+ /**
+ * @generated
+ */
+ public void setReadOnly(boolean readOnly) {
+ myReadOnly = readOnly;
+ }
+
+ /**
+ * @generated
+ */
+ private class SynchronizerDelegate implements
+ WorkspaceSynchronizer.Delegate {
+
+ /**
+ * @generated
+ */
+ public void dispose() {
+ }
+
+ /**
+ * @generated
+ */
+ public boolean handleResourceChanged(final Resource resource) {
+ synchronized (ResourceSetInfo.this) {
+ if (ResourceSetInfo.this.fCanBeSaved) {
+ ResourceSetInfo.this.setUnSynchronized(resource);
+ return true;
+ }
+ }
+ Display.getDefault().asyncExec(new Runnable() {
+ public void run() {
+ handleElementChanged(ResourceSetInfo.this, resource,
+ null);
+ }
+ });
+ return true;
+ }
+
+ /**
+ * @generated
+ */
+ public boolean handleResourceDeleted(Resource resource) {
+ synchronized (ResourceSetInfo.this) {
+ if (ResourceSetInfo.this.fCanBeSaved) {
+ ResourceSetInfo.this.setUnSynchronized(resource);
+ return true;
+ }
+ }
+ Display.getDefault().asyncExec(new Runnable() {
+ public void run() {
+ fireElementDeleted(ResourceSetInfo.this
+ .getEditorInput());
+ }
+ });
+ return true;
+ }
+
+ /**
+ * @generated
+ */
+ public boolean handleResourceMoved(Resource resource,
+ final URI newURI) {
+ synchronized (ResourceSetInfo.this) {
+ if (ResourceSetInfo.this.fCanBeSaved) {
+ ResourceSetInfo.this.setUnSynchronized(resource);
+ return true;
+ }
+ }
+ if (myDocument.getDiagram().eResource() == resource) {
+ Display.getDefault().asyncExec(new Runnable() {
+ public void run() {
+ handleElementMoved(
+ ResourceSetInfo.this.getEditorInput(),
+ newURI);
+ }
+ });
+ } else {
+ handleResourceDeleted(resource);
+ }
+ return true;
+ }
+
+ }
+
+ }
+
+ /**
+ * @generated
+ */
+ private class ResourceSetModificationListener extends EContentAdapter {
+
+ /**
+ * @generated
+ */
+ private NotificationFilter myModifiedFilter;
+
+ /**
+ * @generated
+ */
+ private ResourceSetInfo myInfo;
+
+ /**
+ * @generated
+ */
+ public ResourceSetModificationListener(ResourceSetInfo info) {
+ myInfo = info;
+ myModifiedFilter = NotificationFilter
+ .createEventTypeFilter(Notification.SET)
+ .or(NotificationFilter
+ .createEventTypeFilter(Notification.UNSET))
+ .and(NotificationFilter.createFeatureFilter(Resource.class,
+ Resource.RESOURCE__IS_MODIFIED));
+ }
+
+ /**
+ * @generated
+ */
+ public void notifyChanged(Notification notification) {
+ if (notification.getNotifier() instanceof ResourceSet) {
+ super.notifyChanged(notification);
+ }
+ if (!notification.isTouch()
+ && myModifiedFilter.matches(notification)) {
+ if (notification.getNotifier() instanceof Resource) {
+ Resource resource = (Resource) notification.getNotifier();
+ if (resource.isLoaded()) {
+ boolean modified = false;
+ for (Iterator/*<org.eclipse.emf.ecore.resource.Resource>*/it = myInfo
+ .getLoadedResourcesIterator(); it.hasNext()
+ && !modified;) {
+ Resource nextResource = (Resource) it.next();
+ if (nextResource.isLoaded()) {
+ modified = nextResource.isModified();
+ }
+ }
+ boolean dirtyStateChanged = false;
+ synchronized (myInfo) {
+ if (modified != myInfo.fCanBeSaved) {
+ myInfo.fCanBeSaved = modified;
+ dirtyStateChanged = true;
+ }
+ if (!resource.isModified()) {
+ myInfo.setSynchronized(resource);
+ }
+ }
+ if (dirtyStateChanged) {
+ fireElementDirtyStateChanged(
+ myInfo.getEditorInput(), modified);
+
+ if (!modified) {
+ myInfo.setModificationStamp(computeModificationStamp(myInfo));
+ }
+ }
+ }
+ }
+ }
+ }
+
+ }
+
+}
diff --git a/org.eclipse.emf.refactor.comrel.diagram/src/comrel/diagram/part/ComrelElementChooserDialog.java b/org.eclipse.emf.refactor.comrel.diagram/src/comrel/diagram/part/ComrelElementChooserDialog.java
new file mode 100644
index 0000000..98ee37c
--- /dev/null
+++ b/org.eclipse.emf.refactor.comrel.diagram/src/comrel/diagram/part/ComrelElementChooserDialog.java
@@ -0,0 +1,403 @@
+/*
+ *
+ */
+package comrel.diagram.part;
+
+import java.util.Collections;
+
+import org.eclipse.core.resources.IContainer;
+import org.eclipse.core.resources.IFile;
+import org.eclipse.core.resources.ResourcesPlugin;
+import org.eclipse.core.runtime.IPath;
+import org.eclipse.core.runtime.Path;
+import org.eclipse.emf.common.util.URI;
+import org.eclipse.emf.common.util.WrappedException;
+import org.eclipse.emf.ecore.EObject;
+import org.eclipse.emf.ecore.resource.Resource;
+import org.eclipse.emf.ecore.resource.ResourceSet;
+import org.eclipse.emf.ecore.util.EcoreUtil;
+import org.eclipse.emf.ecore.util.FeatureMap;
+import org.eclipse.emf.edit.provider.IWrapperItemProvider;
+import org.eclipse.emf.edit.ui.provider.AdapterFactoryContentProvider;
+import org.eclipse.emf.edit.ui.provider.AdapterFactoryLabelProvider;
+import org.eclipse.emf.transaction.TransactionalEditingDomain;
+import org.eclipse.gmf.runtime.diagram.core.services.ViewService;
+import org.eclipse.gmf.runtime.diagram.core.util.ViewUtil;
+import org.eclipse.gmf.runtime.emf.core.GMFEditingDomainFactory;
+import org.eclipse.gmf.runtime.emf.core.util.EObjectAdapter;
+import org.eclipse.gmf.runtime.notation.Node;
+import org.eclipse.gmf.runtime.notation.View;
+import org.eclipse.jface.dialogs.Dialog;
+import org.eclipse.jface.dialogs.IDialogConstants;
+import org.eclipse.jface.viewers.ILabelProvider;
+import org.eclipse.jface.viewers.ILabelProviderListener;
+import org.eclipse.jface.viewers.ISelectionChangedListener;
+import org.eclipse.jface.viewers.IStructuredSelection;
+import org.eclipse.jface.viewers.ITreeContentProvider;
+import org.eclipse.jface.viewers.SelectionChangedEvent;
+import org.eclipse.jface.viewers.TreeViewer;
+import org.eclipse.jface.viewers.Viewer;
+import org.eclipse.jface.viewers.ViewerFilter;
+import org.eclipse.swt.SWT;
+import org.eclipse.swt.graphics.Image;
+import org.eclipse.swt.layout.GridData;
+import org.eclipse.swt.widgets.Composite;
+import org.eclipse.swt.widgets.Control;
+import org.eclipse.swt.widgets.Shell;
+import org.eclipse.ui.model.WorkbenchContentProvider;
+import org.eclipse.ui.model.WorkbenchLabelProvider;
+
+/**
+ * @generated
+ */
+public class ComrelElementChooserDialog extends Dialog {
+
+ /**
+ * @generated
+ */
+ private TreeViewer myTreeViewer;
+
+ /**
+ * @generated
+ */
+ private URI mySelectedModelElementURI;
+
+ /**
+ * @generated
+ */
+ private View myView;
+
+ /**
+ * @generated
+ */
+ private TransactionalEditingDomain myEditingDomain = GMFEditingDomainFactory.INSTANCE
+ .createEditingDomain();
+
+ /**
+ * @generated
+ */
+ public ComrelElementChooserDialog(Shell parentShell, View view) {
+ super(parentShell);
+ setShellStyle(getShellStyle() | SWT.RESIZE);
+ myView = view;
+ }
+
+ /**
+ * @generated
+ */
+ protected Control createDialogArea(Composite parent) {
+ Composite composite = (Composite) super.createDialogArea(parent);
+ getShell().setText(
+ Messages.ComrelElementChooserDialog_SelectModelElementTitle);
+ createModelBrowser(composite);
+ return composite;
+ }
+
+ /**
+ * @generated
+ */
+ protected Control createButtonBar(Composite parent) {
+ Control buttonBar = super.createButtonBar(parent);
+ setOkButtonEnabled(false);
+ return buttonBar;
+ }
+
+ /**
+ * @generated
+ */
+ private void createModelBrowser(Composite composite) {
+ myTreeViewer = new TreeViewer(composite, SWT.SINGLE | SWT.H_SCROLL
+ | SWT.V_SCROLL | SWT.BORDER);
+ GridData layoutData = new GridData(GridData.FILL_BOTH);
+ layoutData.heightHint = 300;
+ layoutData.widthHint = 300;
+ myTreeViewer.getTree().setLayoutData(layoutData);
+ myTreeViewer.setContentProvider(new ModelElementsTreeContentProvider());
+ myTreeViewer.setLabelProvider(new ModelElementsTreeLabelProvider());
+ myTreeViewer.setInput(ResourcesPlugin.getWorkspace().getRoot());
+ myTreeViewer.addFilter(new ModelFilesFilter());
+ myTreeViewer.addSelectionChangedListener(new OkButtonEnabler());
+ }
+
+ /**
+ * @generated
+ */
+ private void setOkButtonEnabled(boolean enabled) {
+ getButton(IDialogConstants.OK_ID).setEnabled(enabled);
+ }
+
+ /**
+ * @generated
+ */
+ private boolean isValidModelFile(IFile file) {
+ String fileExtension = file.getFullPath().getFileExtension();
+ return "comrel".equals(fileExtension); //$NON-NLS-1$
+ }
+
+ /**
+ * @generated
+ */
+ public URI getSelectedModelElementURI() {
+ return mySelectedModelElementURI;
+ }
+
+ /**
+ * @generated
+ */
+ public int open() {
+ int result = super.open();
+ for (Resource resource : myEditingDomain.getResourceSet()
+ .getResources()) {
+ resource.unload();
+ }
+ myEditingDomain.dispose();
+ return result;
+ }
+
+ /**
+ * @generated
+ */
+ private class ModelElementsTreeContentProvider implements
+ ITreeContentProvider {
+
+ /**
+ * @generated
+ */
+ private ITreeContentProvider myWorkbenchContentProvider = new WorkbenchContentProvider();
+
+ /**
+ * @generated
+ */
+ private AdapterFactoryContentProvider myAdapterFctoryContentProvier = new AdapterFactoryContentProvider(
+ ComrelDiagramEditorPlugin.getInstance()
+ .getItemProvidersAdapterFactory());
+
+ /**
+ * @generated
+ */
+ public Object[] getChildren(Object parentElement) {
+ Object[] result = myWorkbenchContentProvider
+ .getChildren(parentElement);
+ if (result != null && result.length > 0) {
+ return result;
+ }
+ if (parentElement instanceof IFile) {
+ IFile modelFile = (IFile) parentElement;
+ IPath resourcePath = modelFile.getFullPath();
+ ResourceSet resourceSet = myEditingDomain.getResourceSet();
+ try {
+ Resource modelResource = resourceSet.getResource(
+ URI.createPlatformResourceURI(
+ resourcePath.toString(), true), true);
+ return myAdapterFctoryContentProvier
+ .getChildren(modelResource);
+ } catch (WrappedException e) {
+ ComrelDiagramEditorPlugin
+ .getInstance()
+ .logError(
+ "Unable to load resource: " + resourcePath.toString(), e); //$NON-NLS-1$
+ }
+ return Collections.EMPTY_LIST.toArray();
+ }
+ return myAdapterFctoryContentProvier.getChildren(parentElement);
+ }
+
+ /**
+ * @generated
+ */
+ public Object getParent(Object element) {
+ Object parent = myWorkbenchContentProvider.getParent(element);
+ if (parent != null) {
+ return parent;
+ }
+ if (element instanceof EObject) {
+ EObject eObject = (EObject) element;
+ if (eObject.eContainer() == null
+ && eObject.eResource().getURI().isFile()) {
+ String path = eObject.eResource().getURI().path();
+ return ResourcesPlugin.getWorkspace().getRoot()
+ .getFileForLocation(new Path(path));
+ }
+ return myAdapterFctoryContentProvier.getParent(eObject);
+ }
+ return null;
+ }
+
+ /**
+ * @generated
+ */
+ public boolean hasChildren(Object element) {
+ if (element instanceof IFile) {
+ return isValidModelFile((IFile) element);
+ }
+ return myWorkbenchContentProvider.hasChildren(element)
+ || myAdapterFctoryContentProvier.hasChildren(element);
+ }
+
+ /**
+ * @generated
+ */
+ public Object[] getElements(Object inputElement) {
+ Object[] elements = myWorkbenchContentProvider
+ .getElements(inputElement);
+ return elements;
+ }
+
+ /**
+ * @generated
+ */
+ public void dispose() {
+ myWorkbenchContentProvider.dispose();
+ myAdapterFctoryContentProvier.dispose();
+ }
+
+ /**
+ * @generated
+ */
+ public void inputChanged(Viewer viewer, Object oldInput, Object newInput) {
+ myWorkbenchContentProvider.inputChanged(viewer, oldInput, newInput);
+ myAdapterFctoryContentProvier.inputChanged(viewer, oldInput,
+ newInput);
+ }
+
+ }
+
+ /**
+ * @generated
+ */
+ private class ModelElementsTreeLabelProvider implements ILabelProvider {
+
+ /**
+ * @generated
+ */
+ private WorkbenchLabelProvider myWorkbenchLabelProvider = new WorkbenchLabelProvider();
+
+ /**
+ * @generated
+ */
+ private AdapterFactoryLabelProvider myAdapterFactoryLabelProvider = new AdapterFactoryLabelProvider(
+ ComrelDiagramEditorPlugin.getInstance()
+ .getItemProvidersAdapterFactory());
+
+ /**
+ * @generated
+ */
+ public Image getImage(Object element) {
+ Image result = myWorkbenchLabelProvider.getImage(element);
+ return result != null ? result : myAdapterFactoryLabelProvider
+ .getImage(element);
+ }
+
+ /**
+ * @generated
+ */
+ public String getText(Object element) {
+ String result = myWorkbenchLabelProvider.getText(element);
+ return result != null && result.length() > 0 ? result
+ : myAdapterFactoryLabelProvider.getText(element);
+ }
+
+ /**
+ * @generated
+ */
+ public void addListener(ILabelProviderListener listener) {
+ myWorkbenchLabelProvider.addListener(listener);
+ myAdapterFactoryLabelProvider.addListener(listener);
+ }
+
+ /**
+ * @generated
+ */
+ public void dispose() {
+ myWorkbenchLabelProvider.dispose();
+ myAdapterFactoryLabelProvider.dispose();
+ }
+
+ /**
+ * @generated
+ */
+ public boolean isLabelProperty(Object element, String property) {
+ return myWorkbenchLabelProvider.isLabelProperty(element, property)
+ || myAdapterFactoryLabelProvider.isLabelProperty(element,
+ property);
+ }
+
+ /**
+ * @generated
+ */
+ public void removeListener(ILabelProviderListener listener) {
+ myWorkbenchLabelProvider.removeListener(listener);
+ myAdapterFactoryLabelProvider.removeListener(listener);
+ }
+
+ }
+
+ /**
+ * @generated
+ */
+ private class ModelFilesFilter extends ViewerFilter {
+
+ /**
+ * @generated
+ */
+ public boolean select(Viewer viewer, Object parentElement,
+ Object element) {
+ if (element instanceof IContainer) {
+ return true;
+ }
+ if (element instanceof IFile) {
+ IFile file = (IFile) element;
+ return isValidModelFile(file);
+ }
+ return true;
+ }
+
+ }
+
+ /**
+ * @generated
+ */
+ private class OkButtonEnabler implements ISelectionChangedListener {
+
+ /**
+ * @generated
+ */
+ public void selectionChanged(SelectionChangedEvent event) {
+ if (event.getSelection() instanceof IStructuredSelection) {
+ IStructuredSelection selection = (IStructuredSelection) event
+ .getSelection();
+ if (selection.size() == 1) {
+ Object selectedElement = selection.getFirstElement();
+ if (selectedElement instanceof IWrapperItemProvider) {
+ selectedElement = ((IWrapperItemProvider) selectedElement)
+ .getValue();
+ }
+ if (selectedElement instanceof FeatureMap.Entry) {
+ selectedElement = ((FeatureMap.Entry) selectedElement)
+ .getValue();
+ }
+ if (selectedElement instanceof EObject) {
+ EObject selectedModelElement = (EObject) selectedElement;
+ setOkButtonEnabled(ViewService
+ .getInstance()
+ .provides(
+ Node.class,
+ new EObjectAdapter(selectedModelElement),
+ myView,
+ null,
+ ViewUtil.APPEND,
+ true,
+ ComrelDiagramEditorPlugin.DIAGRAM_PREFERENCES_HINT));
+ mySelectedModelElementURI = EcoreUtil
+ .getURI(selectedModelElement);
+ return;
+ }
+ }
+ }
+ mySelectedModelElementURI = null;
+ setOkButtonEnabled(false);
+ }
+
+ }
+
+}
diff --git a/org.eclipse.emf.refactor.comrel.diagram/src/comrel/diagram/part/ComrelInitDiagramFileAction.java b/org.eclipse.emf.refactor.comrel.diagram/src/comrel/diagram/part/ComrelInitDiagramFileAction.java
new file mode 100644
index 0000000..d757cba
--- /dev/null
+++ b/org.eclipse.emf.refactor.comrel.diagram/src/comrel/diagram/part/ComrelInitDiagramFileAction.java
@@ -0,0 +1,100 @@
+/*
+ *
+ */
+package comrel.diagram.part;
+
+import org.eclipse.core.resources.IFile;
+import org.eclipse.emf.common.util.URI;
+import org.eclipse.emf.common.util.WrappedException;
+import org.eclipse.emf.ecore.EObject;
+import org.eclipse.emf.ecore.resource.Resource;
+import org.eclipse.emf.ecore.resource.ResourceSet;
+import org.eclipse.emf.transaction.TransactionalEditingDomain;
+import org.eclipse.gmf.runtime.emf.core.GMFEditingDomainFactory;
+import org.eclipse.jface.action.IAction;
+import org.eclipse.jface.dialogs.MessageDialog;
+import org.eclipse.jface.viewers.ISelection;
+import org.eclipse.jface.viewers.IStructuredSelection;
+import org.eclipse.jface.wizard.Wizard;
+import org.eclipse.osgi.util.NLS;
+import org.eclipse.swt.widgets.Shell;
+import org.eclipse.ui.IObjectActionDelegate;
+import org.eclipse.ui.IWorkbenchPart;
+
+import comrel.diagram.edit.parts.CompositeRefactoringEditPart;
+
+/**
+ * @generated
+ */
+public class ComrelInitDiagramFileAction implements IObjectActionDelegate {
+
+ /**
+ * @generated
+ */
+ private IWorkbenchPart targetPart;
+
+ /**
+ * @generated
+ */
+ private URI domainModelURI;
+
+ /**
+ * @generated
+ */
+ public void setActivePart(IAction action, IWorkbenchPart targetPart) {
+ this.targetPart = targetPart;
+ }
+
+ /**
+ * @generated
+ */
+ public void selectionChanged(IAction action, ISelection selection) {
+ domainModelURI = null;
+ action.setEnabled(false);
+ if (selection instanceof IStructuredSelection == false
+ || selection.isEmpty()) {
+ return;
+ }
+ IFile file = (IFile) ((IStructuredSelection) selection)
+ .getFirstElement();
+ domainModelURI = URI.createPlatformResourceURI(file.getFullPath()
+ .toString(), true);
+ action.setEnabled(true);
+ }
+
+ /**
+ * @generated
+ */
+ private Shell getShell() {
+ return targetPart.getSite().getShell();
+ }
+
+ /**
+ * @generated
+ */
+ public void run(IAction action) {
+ TransactionalEditingDomain editingDomain = GMFEditingDomainFactory.INSTANCE
+ .createEditingDomain();
+ ResourceSet resourceSet = editingDomain.getResourceSet();
+ EObject diagramRoot = null;
+ try {
+ Resource resource = resourceSet.getResource(domainModelURI, true);
+ diagramRoot = (EObject) resource.getContents().get(0);
+ } catch (WrappedException ex) {
+ ComrelDiagramEditorPlugin.getInstance().logError(
+ "Unable to load resource: " + domainModelURI, ex); //$NON-NLS-1$
+ }
+ if (diagramRoot == null) {
+ MessageDialog.openError(getShell(),
+ Messages.InitDiagramFile_ResourceErrorDialogTitle,
+ Messages.InitDiagramFile_ResourceErrorDialogMessage);
+ return;
+ }
+ Wizard wizard = new ComrelNewDiagramFileWizard(domainModelURI,
+ diagramRoot, editingDomain);
+ wizard.setWindowTitle(NLS.bind(Messages.InitDiagramFile_WizardTitle,
+ CompositeRefactoringEditPart.MODEL_ID));
+ ComrelDiagramEditorUtil
+ .runWizard(getShell(), wizard, "InitDiagramFile"); //$NON-NLS-1$
+ }
+}
diff --git a/org.eclipse.emf.refactor.comrel.diagram/src/comrel/diagram/part/ComrelLinkDescriptor.java b/org.eclipse.emf.refactor.comrel.diagram/src/comrel/diagram/part/ComrelLinkDescriptor.java
new file mode 100644
index 0000000..e41084d
--- /dev/null
+++ b/org.eclipse.emf.refactor.comrel.diagram/src/comrel/diagram/part/ComrelLinkDescriptor.java
@@ -0,0 +1,96 @@
+/*
+ *
+ */
+package comrel.diagram.part;
+
+import org.eclipse.core.runtime.IAdaptable;
+import org.eclipse.emf.ecore.EObject;
+import org.eclipse.gmf.runtime.emf.core.util.EObjectAdapter;
+import org.eclipse.gmf.runtime.emf.type.core.IElementType;
+
+/**
+ * @generated
+ */
+public class ComrelLinkDescriptor extends ComrelNodeDescriptor {
+
+ /**
+ * @generated
+ */
+ private EObject mySource;
+
+ /**
+ * @generated
+ */
+ private EObject myDestination;
+
+ /**
+ * @generated
+ */
+ private IAdaptable mySemanticAdapter;
+
+ /**
+ * @generated
+ */
+ private ComrelLinkDescriptor(EObject source, EObject destination,
+ EObject linkElement, int linkVID) {
+ super(linkElement, linkVID);
+ mySource = source;
+ myDestination = destination;
+ }
+
+ /**
+ * @generated
+ */
+ public ComrelLinkDescriptor(EObject source, EObject destination,
+ IElementType elementType, int linkVID) {
+ this(source, destination, (EObject) null, linkVID);
+ final IElementType elementTypeCopy = elementType;
+ mySemanticAdapter = new IAdaptable() {
+ public Object getAdapter(Class adapter) {
+ if (IElementType.class.equals(adapter)) {
+ return elementTypeCopy;
+ }
+ return null;
+ }
+ };
+ }
+
+ /**
+ * @generated
+ */
+ public ComrelLinkDescriptor(EObject source, EObject destination,
+ EObject linkElement, IElementType elementType, int linkVID) {
+ this(source, destination, linkElement, linkVID);
+ final IElementType elementTypeCopy = elementType;
+ mySemanticAdapter = new EObjectAdapter(linkElement) {
+ public Object getAdapter(Class adapter) {
+ if (IElementType.class.equals(adapter)) {
+ return elementTypeCopy;
+ }
+ return super.getAdapter(adapter);
+ }
+ };
+ }
+
+ /**
+ * @generated
+ */
+ public EObject getSource() {
+ return mySource;
+ }
+
+ /**
+ * @generated
+ */
+ public EObject getDestination() {
+ return myDestination;
+ }
+
+ /**
+ * @generated
+ */
+ public IAdaptable getSemanticAdapter() {
+ return mySemanticAdapter;
+ }
+
+}
diff --git a/org.eclipse.emf.refactor.comrel.diagram/src/comrel/diagram/part/ComrelMatchingStrategy.java b/org.eclipse.emf.refactor.comrel.diagram/src/comrel/diagram/part/ComrelMatchingStrategy.java
new file mode 100644
index 0000000..cb90883
--- /dev/null
+++ b/org.eclipse.emf.refactor.comrel.diagram/src/comrel/diagram/part/ComrelMatchingStrategy.java
@@ -0,0 +1,39 @@
+/*
+ *
+ */
+package comrel.diagram.part;
+
+import org.eclipse.emf.common.ui.URIEditorInput;
+import org.eclipse.ui.IEditorInput;
+import org.eclipse.ui.IEditorMatchingStrategy;
+import org.eclipse.ui.IEditorReference;
+import org.eclipse.ui.PartInitException;
+
+/**
+ * @generated
+ */
+public class ComrelMatchingStrategy implements IEditorMatchingStrategy {
+
+ /**
+ * @generated
+ */
+ public boolean matches(IEditorReference editorRef, IEditorInput input) {
+ IEditorInput editorInput;
+ try {
+ editorInput = editorRef.getEditorInput();
+ } catch (PartInitException e) {
+ return false;
+ }
+
+ if (editorInput.equals(input)) {
+ return true;
+ }
+ if (editorInput instanceof URIEditorInput
+ && input instanceof URIEditorInput) {
+ return ((URIEditorInput) editorInput).getURI().equals(
+ ((URIEditorInput) input).getURI());
+ }
+ return false;
+ }
+
+}
diff --git a/org.eclipse.emf.refactor.comrel.diagram/src/comrel/diagram/part/ComrelNewDiagramFileWizard.java b/org.eclipse.emf.refactor.comrel.diagram/src/comrel/diagram/part/ComrelNewDiagramFileWizard.java
new file mode 100644
index 0000000..e45adc8
--- /dev/null
+++ b/org.eclipse.emf.refactor.comrel.diagram/src/comrel/diagram/part/ComrelNewDiagramFileWizard.java
@@ -0,0 +1,203 @@
+/*
+ *
+ */
+package comrel.diagram.part;
+
+import java.io.IOException;
+import java.util.LinkedList;
+
+import org.eclipse.core.commands.ExecutionException;
+import org.eclipse.core.commands.operations.OperationHistoryFactory;
+import org.eclipse.core.resources.IFile;
+import org.eclipse.core.runtime.IAdaptable;
+import org.eclipse.core.runtime.IPath;
+import org.eclipse.core.runtime.IProgressMonitor;
+import org.eclipse.core.runtime.NullProgressMonitor;
+import org.eclipse.core.runtime.Path;
+import org.eclipse.emf.common.util.URI;
+import org.eclipse.emf.ecore.EObject;
+import org.eclipse.emf.ecore.resource.Resource;
+import org.eclipse.emf.ecore.resource.ResourceSet;
+import org.eclipse.emf.transaction.TransactionalEditingDomain;
+import org.eclipse.gmf.runtime.common.core.command.CommandResult;
+import org.eclipse.gmf.runtime.diagram.core.services.ViewService;
+import org.eclipse.gmf.runtime.diagram.core.services.view.CreateDiagramViewOperation;
+import org.eclipse.gmf.runtime.emf.commands.core.command.AbstractTransactionalCommand;
+import org.eclipse.gmf.runtime.emf.core.util.EObjectAdapter;
+import org.eclipse.gmf.runtime.notation.Diagram;
+import org.eclipse.jface.viewers.StructuredSelection;
+import org.eclipse.jface.wizard.Wizard;
+import org.eclipse.osgi.util.NLS;
+import org.eclipse.ui.PartInitException;
+import org.eclipse.ui.dialogs.WizardNewFileCreationPage;
+
+import comrel.diagram.edit.parts.CompositeRefactoringEditPart;
+
+/**
+ * @generated
+ */
+public class ComrelNewDiagramFileWizard extends Wizard {
+
+ /**
+ * @generated
+ */
+ private WizardNewFileCreationPage myFileCreationPage;
+
+ /**
+ * @generated
+ */
+ private ModelElementSelectionPage diagramRootElementSelectionPage;
+
+ /**
+ * @generated
+ */
+ private TransactionalEditingDomain myEditingDomain;
+
+ /**
+ * @generated
+ */
+ public ComrelNewDiagramFileWizard(URI domainModelURI, EObject diagramRoot,
+ TransactionalEditingDomain editingDomain) {
+ assert domainModelURI != null : "Domain model uri must be specified"; //$NON-NLS-1$
+ assert diagramRoot != null : "Doagram root element must be specified"; //$NON-NLS-1$
+ assert editingDomain != null : "Editing domain must be specified"; //$NON-NLS-1$
+
+ myFileCreationPage = new WizardNewFileCreationPage(
+ Messages.ComrelNewDiagramFileWizard_CreationPageName,
+ StructuredSelection.EMPTY);
+ myFileCreationPage
+ .setTitle(Messages.ComrelNewDiagramFileWizard_CreationPageTitle);
+ myFileCreationPage.setDescription(NLS.bind(
+ Messages.ComrelNewDiagramFileWizard_CreationPageDescription,
+ CompositeRefactoringEditPart.MODEL_ID));
+ IPath filePath;
+ String fileName = URI.decode(domainModelURI.trimFileExtension()
+ .lastSegment());
+ if (domainModelURI.isPlatformResource()) {
+ filePath = new Path(domainModelURI.trimSegments(1)
+ .toPlatformString(true));
+ } else if (domainModelURI.isFile()) {
+ filePath = new Path(domainModelURI.trimSegments(1).toFileString());
+ } else {
+ // TODO : use some default path
+ throw new IllegalArgumentException(
+ "Unsupported URI: " + domainModelURI); //$NON-NLS-1$
+ }
+ myFileCreationPage.setContainerFullPath(filePath);
+ myFileCreationPage.setFileName(ComrelDiagramEditorUtil
+ .getUniqueFileName(filePath, fileName, "comrel_diagram")); //$NON-NLS-1$
+
+ diagramRootElementSelectionPage = new DiagramRootElementSelectionPage(
+ Messages.ComrelNewDiagramFileWizard_RootSelectionPageName);
+ diagramRootElementSelectionPage
+ .setTitle(Messages.ComrelNewDiagramFileWizard_RootSelectionPageTitle);
+ diagramRootElementSelectionPage
+ .setDescription(Messages.ComrelNewDiagramFileWizard_RootSelectionPageDescription);
+ diagramRootElementSelectionPage.setModelElement(diagramRoot);
+
+ myEditingDomain = editingDomain;
+ }
+
+ /**
+ * @generated
+ */
+ public void addPages() {
+ addPage(myFileCreationPage);
+ addPage(diagramRootElementSelectionPage);
+ }
+
+ /**
+ * @generated
+ */
+ public boolean performFinish() {
+ LinkedList<IFile> affectedFiles = new LinkedList<IFile>();
+ IFile diagramFile = myFileCreationPage.createNewFile();
+ ComrelDiagramEditorUtil.setCharset(diagramFile);
+ affectedFiles.add(diagramFile);
+ URI diagramModelURI = URI.createPlatformResourceURI(diagramFile
+ .getFullPath().toString(), true);
+ ResourceSet resourceSet = myEditingDomain.getResourceSet();
+ final Resource diagramResource = resourceSet
+ .createResource(diagramModelURI);
+ AbstractTransactionalCommand command = new AbstractTransactionalCommand(
+ myEditingDomain,
+ Messages.ComrelNewDiagramFileWizard_InitDiagramCommand,
+ affectedFiles) {
+
+ protected CommandResult doExecuteWithResult(
+ IProgressMonitor monitor, IAdaptable info)
+ throws ExecutionException {
+ int diagramVID = ComrelVisualIDRegistry
+ .getDiagramVisualID(diagramRootElementSelectionPage
+ .getModelElement());
+ if (diagramVID != CompositeRefactoringEditPart.VISUAL_ID) {
+ return CommandResult
+ .newErrorCommandResult(Messages.ComrelNewDiagramFileWizard_IncorrectRootError);
+ }
+ Diagram diagram = ViewService.createDiagram(
+ diagramRootElementSelectionPage.getModelElement(),
+ CompositeRefactoringEditPart.MODEL_ID,
+ ComrelDiagramEditorPlugin.DIAGRAM_PREFERENCES_HINT);
+ diagramResource.getContents().add(diagram);
+ return CommandResult.newOKCommandResult();
+ }
+ };
+ try {
+ OperationHistoryFactory.getOperationHistory().execute(command,
+ new NullProgressMonitor(), null);
+ diagramResource.save(ComrelDiagramEditorUtil.getSaveOptions());
+ ComrelDiagramEditorUtil.openDiagram(diagramResource);
+ } catch (ExecutionException e) {
+ ComrelDiagramEditorPlugin.getInstance().logError(
+ "Unable to create model and diagram", e); //$NON-NLS-1$
+ } catch (IOException ex) {
+ ComrelDiagramEditorPlugin.getInstance().logError(
+ "Save operation failed for: " + diagramModelURI, ex); //$NON-NLS-1$
+ } catch (PartInitException ex) {
+ ComrelDiagramEditorPlugin.getInstance().logError(
+ "Unable to open editor", ex); //$NON-NLS-1$
+ }
+ return true;
+ }
+
+ /**
+ * @generated
+ */
+ private static class DiagramRootElementSelectionPage extends
+ ModelElementSelectionPage {
+
+ /**
+ * @generated
+ */
+ protected DiagramRootElementSelectionPage(String pageName) {
+ super(pageName);
+ }
+
+ /**
+ * @generated
+ */
+ protected String getSelectionTitle() {
+ return Messages.ComrelNewDiagramFileWizard_RootSelectionPageSelectionTitle;
+ }
+
+ /**
+ * @generated
+ */
+ protected boolean validatePage() {
+ if (selectedModelElement == null) {
+ setErrorMessage(Messages.ComrelNewDiagramFileWizard_RootSelectionPageNoSelectionMessage);
+ return false;
+ }
+ boolean result = ViewService
+ .getInstance()
+ .provides(
+ new CreateDiagramViewOperation(
+ new EObjectAdapter(selectedModelElement),
+ CompositeRefactoringEditPart.MODEL_ID,
+ ComrelDiagramEditorPlugin.DIAGRAM_PREFERENCES_HINT));
+ setErrorMessage(result ? null
+ : Messages.ComrelNewDiagramFileWizard_RootSelectionPageInvalidSelectionMessage);
+ return result;
+ }
+ }
+}
diff --git a/org.eclipse.emf.refactor.comrel.diagram/src/comrel/diagram/part/ComrelNodeDescriptor.java b/org.eclipse.emf.refactor.comrel.diagram/src/comrel/diagram/part/ComrelNodeDescriptor.java
new file mode 100644
index 0000000..aff2967
--- /dev/null
+++ b/org.eclipse.emf.refactor.comrel.diagram/src/comrel/diagram/part/ComrelNodeDescriptor.java
@@ -0,0 +1,45 @@
+/*
+ *
+ */
+package comrel.diagram.part;
+
+import org.eclipse.emf.ecore.EObject;
+
+/**
+ * @generated
+ */
+public class ComrelNodeDescriptor {
+
+ /**
+ * @generated
+ */
+ private final EObject myModelElement;
+
+ /**
+ * @generated
+ */
+ private final int myVisualID;
+
+ /**
+ * @generated
+ */
+ public ComrelNodeDescriptor(EObject modelElement, int visualID) {
+ myModelElement = modelElement;
+ myVisualID = visualID;
+ }
+
+ /**
+ * @generated
+ */
+ public EObject getModelElement() {
+ return myModelElement;
+ }
+
+ /**
+ * @generated
+ */
+ public int getVisualID() {
+ return myVisualID;
+ }
+
+}
diff --git a/org.eclipse.emf.refactor.comrel.diagram/src/comrel/diagram/part/ComrelPaletteFactory.java b/org.eclipse.emf.refactor.comrel.diagram/src/comrel/diagram/part/ComrelPaletteFactory.java
new file mode 100644
index 0000000..e2bc74d
--- /dev/null
+++ b/org.eclipse.emf.refactor.comrel.diagram/src/comrel/diagram/part/ComrelPaletteFactory.java
@@ -0,0 +1,744 @@
+/*
+ *
+ */
+package comrel.diagram.part;
+
+import java.util.ArrayList;
+import java.util.Collection;
+import java.util.Collections;
+import java.util.List;
+import java.util.Map;
+import java.util.Set;
+
+import org.eclipse.emf.common.util.BasicEList;
+import org.eclipse.emf.common.util.EList;
+import org.eclipse.gef.Tool;
+import org.eclipse.gef.palette.PaletteContainer;
+import org.eclipse.gef.palette.PaletteDrawer;
+import org.eclipse.gef.palette.PaletteRoot;
+import org.eclipse.gef.palette.ToolEntry;
+import org.eclipse.gmf.runtime.diagram.ui.tools.UnspecifiedTypeConnectionTool;
+import org.eclipse.gmf.runtime.diagram.ui.tools.UnspecifiedTypeCreationTool;
+import org.eclipse.gmf.runtime.emf.type.core.IElementType;
+
+import comrel.ModelRefactoring;
+import comrel.MultiFeatureHelper;
+import comrel.MultiFilterHelper;
+import comrel.SingleFeatureHelper;
+import comrel.SingleFilterHelper;
+import comrel.diagram.part.custom.ToolEntryComparator;
+import comrel.diagram.part.custom.UnspecifiedTypeCreationToolWithUnitId;
+import comrel.diagram.providers.ComrelElementTypes;
+import comrel.impl.CompositeRefactoringImpl;
+import comrel.util.ComrelUtil;
+import comrel.util.RegistryUtil;
+
+/**
+ * @generated
+ */
+public class ComrelPaletteFactory {
+
+ public static final String UNIT_ID = "UNIT_ID";
+
+ /**
+ * @generated
+ */
+ public void fillPalette(PaletteRoot paletteRoot) {
+ paletteRoot.add(createCompositeUnits1Group());
+ paletteRoot.add(createAtomicUnits2Group());
+ paletteRoot.add(createFilterUnits3Group());
+ paletteRoot.add(createFeatureUnits4Group());
+ paletteRoot.add(createPorts5Group());
+ paletteRoot.add(createMappings6Group());
+ }
+
+ /**
+ * Erstellt alle nötigen Tooleinträge für alle verfügbaren AtomicUNits
+ *
+ * @return
+ */
+ private EList<ToolEntry> createAtomicUnits() {
+ EList<ToolEntry> erg = new BasicEList<ToolEntry>();
+ Collection<ModelRefactoring> refactorings = RegistryUtil
+ .getEmfRefactoringsAsModelRefactorings(CompositeRefactoringImpl.nsUri);
+ refactorings = ComrelUtil.sortAtomicRefactorings(refactorings);
+ List<IElementType> types;
+ for (ModelRefactoring ref : refactorings) {
+ if (ref.getNamespaceUri().equals(CompositeRefactoringImpl.nsUri)) {
+ types = new ArrayList<IElementType>(7); //(3) ???
+ types.add(comrel.diagram.providers.ComrelElementTypes.AtomicUnit_2007);
+ types.add(comrel.diagram.providers.ComrelElementTypes.AtomicUnit_3034);
+ types.add(comrel.diagram.providers.ComrelElementTypes.AtomicUnit_3049);
+ types.add(comrel.diagram.providers.ComrelElementTypes.AtomicUnit_3068);
+ types.add(comrel.diagram.providers.ComrelElementTypes.AtomicUnit_3074);
+ types.add(comrel.diagram.providers.ComrelElementTypes.AtomicUnit_3077);
+ types.add(comrel.diagram.providers.ComrelElementTypes.AtomicUnit_3078);
+
+ NodeToolEntry entry = new NodeToolEntry(ref.getName(),
+ ref.getName(), types);
+ entry.setUnitId(ref.getRefId());
+ entry.setId(ref.getRefId()); //$NON-NLS-1$
+ entry.setSmallIcon(comrel.diagram.providers.ComrelElementTypes
+ .getImageDescriptor(comrel.diagram.providers.ComrelElementTypes.AtomicUnit_2007));
+ entry.setLargeIcon(entry.getSmallIcon());
+ erg.add(entry);
+ }
+ }
+
+ return erg;
+ }
+
+ /**
+ * Erstellt alle nötigen Tooleinträge für alle verfügbaren FilterUnits
+ *
+ * @return
+ */
+ private EList<ToolEntry> createSingleFilterUnits() {
+ EList<ToolEntry> erg = new BasicEList<ToolEntry>();
+
+ Set<SingleFilterHelper> helper = RegistryUtil
+ .loadSingleFilterHelper(CompositeRefactoringImpl.nsUri);
+ List<IElementType> types;
+ NodeToolEntry entry;
+ for (SingleFilterHelper filter : helper) {
+ types = new ArrayList<IElementType>(5); //(1)???
+ types.add(comrel.diagram.providers.ComrelElementTypes.SingleFilterUnit_3016);
+ types.add(comrel.diagram.providers.ComrelElementTypes.SingleFilterUnit_3040);
+ types.add(comrel.diagram.providers.ComrelElementTypes.SingleFilterUnit_3052);
+ types.add(comrel.diagram.providers.ComrelElementTypes.SingleFilterUnit_3057);
+ types.add(comrel.diagram.providers.ComrelElementTypes.SingleFilterUnit_3063);
+
+ entry = new NodeToolEntry(filter.getName(), filter.getName(), types);
+ entry.setUnitId(filter.getHelperId());
+ entry.setId(filter.getHelperId()); //$NON-NLS-1$
+ entry.setSmallIcon(comrel.diagram.providers.ComrelElementTypes
+ .getImageDescriptor(comrel.diagram.providers.ComrelElementTypes.SingleFilterUnit_3016));
+ entry.setLargeIcon(entry.getSmallIcon());
+ erg.add(entry);
+
+ }
+
+ return erg;
+ }
+
+ /**
+ * Erstellt alle nötigen Tooleinträge für alle verfügbaren FilterUnits
+ *
+ * @return
+ */
+ private EList<ToolEntry> createMultiFilterUnits() {
+ EList<ToolEntry> erg = new BasicEList<ToolEntry>();
+
+ Set<MultiFilterHelper> helper = RegistryUtil
+ .loadMultiFilterHelper(CompositeRefactoringImpl.nsUri);
+ List<IElementType> types;
+ NodeToolEntry entry;
+ for (MultiFilterHelper filter : helper) {
+ types = new ArrayList<IElementType>(5); //(1)???
+ types.add(comrel.diagram.providers.ComrelElementTypes.MultiFilterUnit_3019);
+ types.add(comrel.diagram.providers.ComrelElementTypes.MultiFilterUnit_3041);
+ types.add(comrel.diagram.providers.ComrelElementTypes.MultiFilterUnit_3053);
+ types.add(comrel.diagram.providers.ComrelElementTypes.MultiFilterUnit_3058);
+ types.add(comrel.diagram.providers.ComrelElementTypes.MultiFilterUnit_3064);
+
+ entry = new NodeToolEntry(filter.getName(), filter.getName(), types);
+ entry.setUnitId(filter.getHelperId());
+ entry.setId(filter.getHelperId()); //$NON-NLS-1$
+ entry.setSmallIcon(comrel.diagram.providers.ComrelElementTypes
+ .getImageDescriptor(comrel.diagram.providers.ComrelElementTypes.MultiFilterUnit_3019));
+ entry.setLargeIcon(entry.getSmallIcon());
+ erg.add(entry);
+
+ }
+
+ return erg;
+ }
+
+ /**
+ * Erstellt alle nötigen Tooleinträge für alle verfügbaren
+ * SingleFeatureUnits
+ *
+ * @return
+ */
+ private EList<ToolEntry> createSingleFeatureUnits() {
+ EList<ToolEntry> erg = new BasicEList<ToolEntry>();
+ Set<SingleFeatureHelper> helper = RegistryUtil
+ .loadSingleFeatureHelper(CompositeRefactoringImpl.nsUri);
+ List<IElementType> types;
+ NodeToolEntry entry;
+
+ for (SingleFeatureHelper singleFeature : helper) {
+ types = new ArrayList<IElementType>(5); // (1) ???
+ types.add(comrel.diagram.providers.ComrelElementTypes.SingleFeatureUnit_3008);
+ types.add(comrel.diagram.providers.ComrelElementTypes.SingleFeatureUnit_3038);
+ types.add(comrel.diagram.providers.ComrelElementTypes.SingleFeatureUnit_3050);
+ types.add(comrel.diagram.providers.ComrelElementTypes.SingleFeatureUnit_3055);
+ types.add(comrel.diagram.providers.ComrelElementTypes.SingleFeatureUnit_3061);
+
+ entry = new NodeToolEntry(singleFeature.getName(),
+ singleFeature.getName(), types);
+ entry.setUnitId(singleFeature.getHelperId());
+ entry.setId(singleFeature.getHelperId()); //$NON-NLS-1$
+ entry.setSmallIcon(comrel.diagram.providers.ComrelElementTypes
+ .getImageDescriptor(comrel.diagram.providers.ComrelElementTypes.SingleFeatureUnit_3008));
+ entry.setLargeIcon(entry.getSmallIcon());
+ erg.add(entry);
+
+ }
+
+ return erg;
+ }
+
+ /**
+ * Erstellt alle nötigen Tooleinträge für alle verfügbaren MultiFeatureUnits
+ *
+ * @return
+ */
+ private EList<ToolEntry> createMultiFeatureUnits() {
+ EList<ToolEntry> erg = new BasicEList<ToolEntry>();
+ Set<MultiFeatureHelper> helper = RegistryUtil
+ .loadMultiFeatureHelper(CompositeRefactoringImpl.nsUri);
+ List<IElementType> types;
+ NodeToolEntry entry;
+
+ for (MultiFeatureHelper multiFeature : helper) {
+
+ types = new ArrayList<IElementType>(5); //(1) ???
+ types.add(comrel.diagram.providers.ComrelElementTypes.MultiFeatureUnit_3012);
+ types.add(comrel.diagram.providers.ComrelElementTypes.MultiFeatureUnit_3039);
+ types.add(comrel.diagram.providers.ComrelElementTypes.MultiFeatureUnit_3051);
+ types.add(comrel.diagram.providers.ComrelElementTypes.MultiFeatureUnit_3056);
+ types.add(comrel.diagram.providers.ComrelElementTypes.MultiFeatureUnit_3062);
+
+ entry = new NodeToolEntry(multiFeature.getName(),
+ multiFeature.getName(), types);
+ entry.setUnitId(multiFeature.getHelperId());
+ entry.setId(multiFeature.getHelperId()); //$NON-NLS-1$
+ entry.setSmallIcon(comrel.diagram.providers.ComrelElementTypes
+ .getImageDescriptor(comrel.diagram.providers.ComrelElementTypes.MultiFeatureUnit_3012));
+ entry.setLargeIcon(entry.getSmallIcon());
+ erg.add(entry);
+
+ }
+
+ return erg;
+ }
+
+ /**
+ * Creates "Composite Units" palette tool group
+ * @generated
+ */
+ private PaletteContainer createCompositeUnits1Group() {
+ PaletteDrawer paletteContainer = new PaletteDrawer(
+ Messages.CompositeUnits1Group_title);
+ paletteContainer.setId("createCompositeUnits1Group"); //$NON-NLS-1$
+ paletteContainer.add(createCartesianQueuedUnit1CreationTool());
+ paletteContainer.add(createConditionCheck2CreationTool());
+ paletteContainer.add(createConditionalUnit3CreationTool());
+ paletteContainer.add(createParallelQueuedUnit4CreationTool());
+ paletteContainer.add(createSequentialUnit5CreationTool());
+ paletteContainer.add(createSingleQueuedUnit6CreationTool());
+ return paletteContainer;
+ }
+
+ /**
+ * Creates "Atomic Units" palette tool group
+ * @generated NOT
+ */
+ private PaletteContainer createAtomicUnits2Group() {
+ PaletteDrawer paletteContainer = new PaletteDrawer(
+ Messages.AtomicUnits2Group_title);
+ paletteContainer.setId("createAtomicUnits2Group"); //$NON-NLS-1$
+ paletteContainer.addAll(this.createAtomicUnits());
+ return paletteContainer;
+ }
+
+ /**
+ * Creates "Filter Units" palette tool group
+ * @generated NOT
+ */
+ private PaletteContainer createFilterUnits3Group() {
+ PaletteDrawer paletteContainer = new PaletteDrawer(
+ Messages.FilterUnits3Group_title);
+ paletteContainer.setId("createFilterUnits3Group"); //$NON-NLS-1$
+ ArrayList<ToolEntry> result = new ArrayList<ToolEntry>();
+ result.addAll(createSingleFilterUnits());
+ result.addAll(createMultiFilterUnits());
+ Collections.sort(result, new ToolEntryComparator());
+ paletteContainer.addAll(result);
+ return paletteContainer;
+ }
+
+ /**
+ * Creates "Feature Units" palette tool group
+ * @generated NOT
+ */
+ private PaletteContainer createFeatureUnits4Group() {
+ PaletteDrawer paletteContainer = new PaletteDrawer(
+ Messages.FeatureUnits4Group_title);
+ paletteContainer.setId("createFeatureUnits4Group"); //$NON-NLS-1$
+ ArrayList<ToolEntry> result = new ArrayList<ToolEntry>();
+ result.addAll(createSingleFeatureUnits());
+ result.addAll(createMultiFeatureUnits());
+ Collections.sort(result, new ToolEntryComparator());
+ paletteContainer.addAll(result);
+ return paletteContainer;
+ }
+
+ /**
+ * Creates "Ports" palette tool group
+ * @generated NOT
+ */
+ private PaletteContainer createPorts5Group() {
+ PaletteDrawer paletteContainer = new PaletteDrawer(
+ Messages.Ports5Group_title);
+ paletteContainer.setId("createPorts5Group"); //$NON-NLS-1$
+ paletteContainer.add(createMultiInputPort1CreationTool());
+ // paletteContainer.add(createMultiOutputPort2CreationTool());
+ paletteContainer.add(createSingleInputPort3CreationTool());
+ // paletteContainer.add(createSingleOutputPort4CreationTool());
+ return paletteContainer;
+ }
+
+ /**
+ * Creates "Mappings" palette tool group
+ * @generated
+ */
+ private PaletteContainer createMappings6Group() {
+ PaletteDrawer paletteContainer = new PaletteDrawer(
+ Messages.Mappings6Group_title);
+ paletteContainer.setId("createMappings6Group"); //$NON-NLS-1$
+ paletteContainer.add(createMultiPortMapping1CreationTool());
+ paletteContainer.add(createMultiSinglePortMapping2CreationTool());
+ paletteContainer.add(createSinglePortMapping3CreationTool());
+ return paletteContainer;
+ }
+
+ /**
+ * @generated
+ */
+ private ToolEntry createCartesianQueuedUnit1CreationTool() {
+ ArrayList<IElementType> types = new ArrayList<IElementType>(7);
+ types.add(ComrelElementTypes.CartesianQueuedUnit_2002);
+ types.add(ComrelElementTypes.CartesianQueuedUnit_3003);
+ types.add(ComrelElementTypes.CartesianQueuedUnit_3007);
+ types.add(ComrelElementTypes.CartesianQueuedUnit_3025);
+ types.add(ComrelElementTypes.CartesianQueuedUnit_3029);
+ types.add(ComrelElementTypes.CartesianQueuedUnit_3033);
+ types.add(ComrelElementTypes.CartesianQueuedUnit_3047);
+ NodeToolEntry entry = new NodeToolEntry(
+ Messages.CartesianQueuedUnit1CreationTool_title,
+ Messages.CartesianQueuedUnit1CreationTool_desc, types);
+ entry.setId("createCartesianQueuedUnit1CreationTool"); //$NON-NLS-1$
+ entry.setSmallIcon(ComrelElementTypes
+ .getImageDescriptor(ComrelElementTypes.CartesianQueuedUnit_2002));
+ entry.setLargeIcon(entry.getSmallIcon());
+ return entry;
+ }
+
+ /**
+ * @generated
+ */
+ private ToolEntry createConditionCheck2CreationTool() {
+ NodeToolEntry entry = new NodeToolEntry(
+ Messages.ConditionCheck2CreationTool_title,
+ Messages.ConditionCheck2CreationTool_desc,
+ Collections
+ .singletonList(ComrelElementTypes.ConditionCheck_3076));
+ entry.setId("createConditionCheck2CreationTool"); //$NON-NLS-1$
+ entry.setSmallIcon(ComrelElementTypes
+ .getImageDescriptor(ComrelElementTypes.ConditionCheck_3076));
+ entry.setLargeIcon(entry.getSmallIcon());
+ return entry;
+ }
+
+ /**
+ * @generated
+ */
+ private ToolEntry createConditionalUnit3CreationTool() {
+ ArrayList<IElementType> types = new ArrayList<IElementType>(7);
+ types.add(ComrelElementTypes.ConditionalUnit_3030);
+ types.add(ComrelElementTypes.ConditionalUnit_3046);
+ types.add(ComrelElementTypes.ConditionalUnit_3066);
+ types.add(ComrelElementTypes.ConditionalUnit_3071);
+ types.add(ComrelElementTypes.ConditionalUnit_3072);
+ types.add(ComrelElementTypes.ConditionalUnit_3075);
+ types.add(ComrelElementTypes.ConditionalUnit_2006);
+ NodeToolEntry entry = new NodeToolEntry(
+ Messages.ConditionalUnit3CreationTool_title,
+ Messages.ConditionalUnit3CreationTool_desc, types);
+ entry.setId("createConditionalUnit3CreationTool"); //$NON-NLS-1$
+ entry.setSmallIcon(ComrelElementTypes
+ .getImageDescriptor(ComrelElementTypes.ConditionalUnit_3030));
+ entry.setLargeIcon(entry.getSmallIcon());
+ return entry;
+ }
+
+ /**
+ * @generated
+ */
+ private ToolEntry createParallelQueuedUnit4CreationTool() {
+ ArrayList<IElementType> types = new ArrayList<IElementType>(7);
+ types.add(ComrelElementTypes.ParallelQueuedUnit_3004);
+ types.add(ComrelElementTypes.ParallelQueuedUnit_3036);
+ types.add(ComrelElementTypes.ParallelQueuedUnit_3037);
+ types.add(ComrelElementTypes.ParallelQueuedUnit_3043);
+ types.add(ComrelElementTypes.ParallelQueuedUnit_3045);
+ types.add(ComrelElementTypes.ParallelQueuedUnit_3048);
+ types.add(ComrelElementTypes.ParallelQueuedUnit_2003);
+ NodeToolEntry entry = new NodeToolEntry(
+ Messages.ParallelQueuedUnit4CreationTool_title,
+ Messages.ParallelQueuedUnit4CreationTool_desc, types);
+ entry.setId("createParallelQueuedUnit4CreationTool"); //$NON-NLS-1$
+ entry.setSmallIcon(ComrelElementTypes
+ .getImageDescriptor(ComrelElementTypes.ParallelQueuedUnit_3004));
+ entry.setLargeIcon(entry.getSmallIcon());
+ return entry;
+ }
+
+ /**
+ * @generated
+ */
+ private ToolEntry createSequentialUnit5CreationTool() {
+ ArrayList<IElementType> types = new ArrayList<IElementType>(7);
+ types.add(ComrelElementTypes.SequentialUnit_3026);
+ types.add(ComrelElementTypes.SequentialUnit_3044);
+ types.add(ComrelElementTypes.SequentialUnit_3060);
+ types.add(ComrelElementTypes.SequentialUnit_3069);
+ types.add(ComrelElementTypes.SequentialUnit_3070);
+ types.add(ComrelElementTypes.SequentialUnit_3073);
+ types.add(ComrelElementTypes.SequentialUnit_2005);
+ NodeToolEntry entry = new NodeToolEntry(
+ Messages.SequentialUnit5CreationTool_title,
+ Messages.SequentialUnit5CreationTool_desc, types);
+ entry.setId("createSequentialUnit5CreationTool"); //$NON-NLS-1$
+ entry.setSmallIcon(ComrelElementTypes
+ .getImageDescriptor(ComrelElementTypes.SequentialUnit_3026));
+ entry.setLargeIcon(entry.getSmallIcon());
+ return entry;
+ }
+
+ /**
+ * @generated
+ */
+ private ToolEntry createSingleQueuedUnit6CreationTool() {
+ ArrayList<IElementType> types = new ArrayList<IElementType>(7);
+ types.add(ComrelElementTypes.SingleQueuedUnit_3022);
+ types.add(ComrelElementTypes.SingleQueuedUnit_3042);
+ types.add(ComrelElementTypes.SingleQueuedUnit_3054);
+ types.add(ComrelElementTypes.SingleQueuedUnit_3059);
+ types.add(ComrelElementTypes.SingleQueuedUnit_3065);
+ types.add(ComrelElementTypes.SingleQueuedUnit_3067);
+ types.add(ComrelElementTypes.SingleQueuedUnit_2004);
+ NodeToolEntry entry = new NodeToolEntry(
+ Messages.SingleQueuedUnit6CreationTool_title,
+ Messages.SingleQueuedUnit6CreationTool_desc, types);
+ entry.setId("createSingleQueuedUnit6CreationTool"); //$NON-NLS-1$
+ entry.setSmallIcon(ComrelElementTypes
+ .getImageDescriptor(ComrelElementTypes.SingleQueuedUnit_3022));
+ entry.setLargeIcon(entry.getSmallIcon());
+ return entry;
+ }
+
+ /**
+ * @generated
+ */
+ private ToolEntry createAtomicUnit1CreationTool() {
+ ArrayList<IElementType> types = new ArrayList<IElementType>(7);
+ types.add(ComrelElementTypes.AtomicUnit_3034);
+ types.add(ComrelElementTypes.AtomicUnit_3049);
+ types.add(ComrelElementTypes.AtomicUnit_3068);
+ types.add(ComrelElementTypes.AtomicUnit_3074);
+ types.add(ComrelElementTypes.AtomicUnit_3077);
+ types.add(ComrelElementTypes.AtomicUnit_3078);
+ types.add(ComrelElementTypes.AtomicUnit_2007);
+ NodeToolEntry entry = new NodeToolEntry(
+ Messages.AtomicUnit1CreationTool_title,
+ Messages.AtomicUnit1CreationTool_desc, types);
+ entry.setId("createAtomicUnit1CreationTool"); //$NON-NLS-1$
+ entry.setSmallIcon(ComrelElementTypes
+ .getImageDescriptor(ComrelElementTypes.AtomicUnit_3034));
+ entry.setLargeIcon(entry.getSmallIcon());
+ return entry;
+ }
+
+ /**
+ * @generated
+ */
+ private ToolEntry createMultiFilterUnit1CreationTool() {
+ ArrayList<IElementType> types = new ArrayList<IElementType>(5);
+ types.add(ComrelElementTypes.MultiFilterUnit_3019);
+ types.add(ComrelElementTypes.MultiFilterUnit_3041);
+ types.add(ComrelElementTypes.MultiFilterUnit_3053);
+ types.add(ComrelElementTypes.MultiFilterUnit_3058);
+ types.add(ComrelElementTypes.MultiFilterUnit_3064);
+ NodeToolEntry entry = new NodeToolEntry(
+ Messages.MultiFilterUnit1CreationTool_title,
+ Messages.MultiFilterUnit1CreationTool_desc, types);
+ entry.setId("createMultiFilterUnit1CreationTool"); //$NON-NLS-1$
+ entry.setSmallIcon(ComrelElementTypes
+ .getImageDescriptor(ComrelElementTypes.MultiFilterUnit_3019));
+ entry.setLargeIcon(entry.getSmallIcon());
+ return entry;
+ }
+
+ /**
+ * @generated
+ */
+ private ToolEntry createSingleFilterUnit2CreationTool() {
+ ArrayList<IElementType> types = new ArrayList<IElementType>(5);
+ types.add(ComrelElementTypes.SingleFilterUnit_3016);
+ types.add(ComrelElementTypes.SingleFilterUnit_3040);
+ types.add(ComrelElementTypes.SingleFilterUnit_3052);
+ types.add(ComrelElementTypes.SingleFilterUnit_3057);
+ types.add(ComrelElementTypes.SingleFilterUnit_3063);
+ NodeToolEntry entry = new NodeToolEntry(
+ Messages.SingleFilterUnit2CreationTool_title,
+ Messages.SingleFilterUnit2CreationTool_desc, types);
+ entry.setId("createSingleFilterUnit2CreationTool"); //$NON-NLS-1$
+ entry.setSmallIcon(ComrelElementTypes
+ .getImageDescriptor(ComrelElementTypes.SingleFilterUnit_3016));
+ entry.setLargeIcon(entry.getSmallIcon());
+ return entry;
+ }
+
+ /**
+ * @generated
+ */
+ private ToolEntry createMultiFeatureUnit1CreationTool() {
+ ArrayList<IElementType> types = new ArrayList<IElementType>(5);
+ types.add(ComrelElementTypes.MultiFeatureUnit_3012);
+ types.add(ComrelElementTypes.MultiFeatureUnit_3039);
+ types.add(ComrelElementTypes.MultiFeatureUnit_3051);
+ types.add(ComrelElementTypes.MultiFeatureUnit_3056);
+ types.add(ComrelElementTypes.MultiFeatureUnit_3062);
+ NodeToolEntry entry = new NodeToolEntry(
+ Messages.MultiFeatureUnit1CreationTool_title,
+ Messages.MultiFeatureUnit1CreationTool_desc, types);
+ entry.setId("createMultiFeatureUnit1CreationTool"); //$NON-NLS-1$
+ entry.setSmallIcon(ComrelElementTypes
+ .getImageDescriptor(ComrelElementTypes.MultiFeatureUnit_3012));
+ entry.setLargeIcon(entry.getSmallIcon());
+ return entry;
+ }
+
+ /**
+ * @generated
+ */
+ private ToolEntry createSingleFeatureUnit2CreationTool() {
+ ArrayList<IElementType> types = new ArrayList<IElementType>(5);
+ types.add(ComrelElementTypes.SingleFeatureUnit_3008);
+ types.add(ComrelElementTypes.SingleFeatureUnit_3038);
+ types.add(ComrelElementTypes.SingleFeatureUnit_3050);
+ types.add(ComrelElementTypes.SingleFeatureUnit_3055);
+ types.add(ComrelElementTypes.SingleFeatureUnit_3061);
+ NodeToolEntry entry = new NodeToolEntry(
+ Messages.SingleFeatureUnit2CreationTool_title,
+ Messages.SingleFeatureUnit2CreationTool_desc, types);
+ entry.setId("createSingleFeatureUnit2CreationTool"); //$NON-NLS-1$
+ entry.setSmallIcon(ComrelElementTypes
+ .getImageDescriptor(ComrelElementTypes.SingleFeatureUnit_3008));
+ entry.setLargeIcon(entry.getSmallIcon());
+ return entry;
+ }
+
+ /**
+ * @generated
+ */
+ private ToolEntry createMultiInputPort1CreationTool() {
+ ArrayList<IElementType> types = new ArrayList<IElementType>(9);
+ types.add(ComrelElementTypes.MultiInputPort_3002);
+ types.add(ComrelElementTypes.MultiInputPort_3006);
+ types.add(ComrelElementTypes.MultiInputPort_3010);
+ types.add(ComrelElementTypes.MultiInputPort_3014);
+ types.add(ComrelElementTypes.MultiInputPort_3017);
+ types.add(ComrelElementTypes.MultiInputPort_3020);
+ types.add(ComrelElementTypes.MultiInputPort_3024);
+ types.add(ComrelElementTypes.MultiInputPort_3028);
+ types.add(ComrelElementTypes.MultiInputPort_3032);
+ NodeToolEntry entry = new NodeToolEntry(
+ Messages.MultiInputPort1CreationTool_title,
+ Messages.MultiInputPort1CreationTool_desc, types);
+ entry.setId("createMultiInputPort1CreationTool"); //$NON-NLS-1$
+ entry.setSmallIcon(ComrelElementTypes
+ .getImageDescriptor(ComrelElementTypes.MultiInputPort_3002));
+ entry.setLargeIcon(entry.getSmallIcon());
+ return entry;
+ }
+
+ /**
+ * @generated
+ */
+ private ToolEntry createMultiOutputPort2CreationTool() {
+ ArrayList<IElementType> types = new ArrayList<IElementType>(2);
+ types.add(ComrelElementTypes.MultiOutputPort_3015);
+ types.add(ComrelElementTypes.MultiOutputPort_3021);
+ NodeToolEntry entry = new NodeToolEntry(
+ Messages.MultiOutputPort2CreationTool_title,
+ Messages.MultiOutputPort2CreationTool_desc, types);
+ entry.setId("createMultiOutputPort2CreationTool"); //$NON-NLS-1$
+ entry.setSmallIcon(ComrelElementTypes
+ .getImageDescriptor(ComrelElementTypes.MultiOutputPort_3015));
+ entry.setLargeIcon(entry.getSmallIcon());
+ return entry;
+ }
+
+ /**
+ * @generated
+ */
+ private ToolEntry createSingleInputPort3CreationTool() {
+ ArrayList<IElementType> types = new ArrayList<IElementType>(9);
+ types.add(ComrelElementTypes.SingleInputPort_2001);
+ types.add(ComrelElementTypes.SingleInputPort_3001);
+ types.add(ComrelElementTypes.SingleInputPort_3005);
+ types.add(ComrelElementTypes.SingleInputPort_3009);
+ types.add(ComrelElementTypes.SingleInputPort_3013);
+ types.add(ComrelElementTypes.SingleInputPort_3023);
+ types.add(ComrelElementTypes.SingleInputPort_3027);
+ types.add(ComrelElementTypes.SingleInputPort_3031);
+ types.add(ComrelElementTypes.SingleInputPort_3035);
+ NodeToolEntry entry = new NodeToolEntry(
+ Messages.SingleInputPort3CreationTool_title,
+ Messages.SingleInputPort3CreationTool_desc, types);
+ entry.setId("createSingleInputPort3CreationTool"); //$NON-NLS-1$
+ entry.setSmallIcon(ComrelElementTypes
+ .getImageDescriptor(ComrelElementTypes.SingleInputPort_2001));
+ entry.setLargeIcon(entry.getSmallIcon());
+ return entry;
+ }
+
+ /**
+ * @generated
+ */
+ private ToolEntry createSingleOutputPort4CreationTool() {
+ ArrayList<IElementType> types = new ArrayList<IElementType>(2);
+ types.add(ComrelElementTypes.SingleOutputPort_3011);
+ types.add(ComrelElementTypes.SingleOutputPort_3018);
+ NodeToolEntry entry = new NodeToolEntry(
+ Messages.SingleOutputPort4CreationTool_title,
+ Messages.SingleOutputPort4CreationTool_desc, types);
+ entry.setId("createSingleOutputPort4CreationTool"); //$NON-NLS-1$
+ entry.setSmallIcon(ComrelElementTypes
+ .getImageDescriptor(ComrelElementTypes.SingleOutputPort_3011));
+ entry.setLargeIcon(entry.getSmallIcon());
+ return entry;
+ }
+
+ /**
+ * @generated
+ */
+ private ToolEntry createMultiPortMapping1CreationTool() {
+ LinkToolEntry entry = new LinkToolEntry(
+ Messages.MultiPortMapping1CreationTool_title,
+ Messages.MultiPortMapping1CreationTool_desc,
+ Collections
+ .singletonList(ComrelElementTypes.MultiPortMapping_4002));
+ entry.setId("createMultiPortMapping1CreationTool"); //$NON-NLS-1$
+ entry.setSmallIcon(ComrelElementTypes
+ .getImageDescriptor(ComrelElementTypes.MultiPortMapping_4002));
+ entry.setLargeIcon(entry.getSmallIcon());
+ return entry;
+ }
+
+ /**
+ * @generated
+ */
+ private ToolEntry createMultiSinglePortMapping2CreationTool() {
+ LinkToolEntry entry = new LinkToolEntry(
+ Messages.MultiSinglePortMapping2CreationTool_title,
+ Messages.MultiSinglePortMapping2CreationTool_desc,
+ Collections
+ .singletonList(ComrelElementTypes.MultiSinglePortMapping_4003));
+ entry.setId("createMultiSinglePortMapping2CreationTool"); //$NON-NLS-1$
+ entry.setSmallIcon(ComrelElementTypes
+ .getImageDescriptor(ComrelElementTypes.MultiSinglePortMapping_4003));
+ entry.setLargeIcon(entry.getSmallIcon());
+ return entry;
+ }
+
+ /**
+ * @generated
+ */
+ private ToolEntry createSinglePortMapping3CreationTool() {
+ LinkToolEntry entry = new LinkToolEntry(
+ Messages.SinglePortMapping3CreationTool_title,
+ Messages.SinglePortMapping3CreationTool_desc,
+ Collections
+ .singletonList(ComrelElementTypes.SinglePortMapping_4001));
+ entry.setId("createSinglePortMapping3CreationTool"); //$NON-NLS-1$
+ entry.setSmallIcon(ComrelElementTypes
+ .getImageDescriptor(ComrelElementTypes.SinglePortMapping_4001));
+ entry.setLargeIcon(entry.getSmallIcon());
+ return entry;
+ }
+
+ /**
+ * @generated
+ */
+ private static class NodeToolEntry extends ToolEntry {
+
+ String unitId = "";
+
+ /**
+ * @generated
+ */
+ private final List<IElementType> elementTypes;
+
+ /**
+ * @generated
+ */
+ private NodeToolEntry(String title, String description,
+ List<IElementType> elementTypes) {
+ super(title, description, null, null);
+ this.elementTypes = elementTypes;
+ }
+
+ /**
+ * @generated NOT
+ */
+ public Tool createTool() {
+ /*
+ * change: UnspecifiedTypeCReateionTool ->
+ * UnspecifiedTypeCreationToolWithUnitId
+ */
+ UnspecifiedTypeCreationTool tool = new UnspecifiedTypeCreationToolWithUnitId(
+ elementTypes, unitId);
+ Map prop = getToolProperties();
+ tool.setProperties(prop);
+ return tool;
+ }
+
+ public void setUnitId(String unitId) {
+ this.unitId = unitId;
+ }
+ }
+
+ /**
+ * @generated
+ */
+ private static class LinkToolEntry extends ToolEntry {
+
+ /**
+ * @generated
+ */
+ private final List<IElementType> relationshipTypes;
+
+ /**
+ * @generated
+ */
+ private LinkToolEntry(String title, String description,
+ List<IElementType> relationshipTypes) {
+ super(title, description, null, null);
+ this.relationshipTypes = relationshipTypes;
+ }
+
+ /**
+ * @generated
+ */
+ public Tool createTool() {
+ Tool tool = new UnspecifiedTypeConnectionTool(relationshipTypes);
+ tool.setProperties(getToolProperties());
+ return tool;
+ }
+ }
+}
diff --git a/org.eclipse.emf.refactor.comrel.diagram/src/comrel/diagram/part/ComrelShortcutPropertyTester.java b/org.eclipse.emf.refactor.comrel.diagram/src/comrel/diagram/part/ComrelShortcutPropertyTester.java
new file mode 100644
index 0000000..93c8c34
--- /dev/null
+++ b/org.eclipse.emf.refactor.comrel.diagram/src/comrel/diagram/part/ComrelShortcutPropertyTester.java
@@ -0,0 +1,41 @@
+/*
+ *
+ */
+package comrel.diagram.part;
+
+import org.eclipse.core.expressions.PropertyTester;
+import org.eclipse.emf.ecore.EAnnotation;
+import org.eclipse.gmf.runtime.notation.View;
+
+import comrel.diagram.edit.parts.CompositeRefactoringEditPart;
+
+/**
+ * @generated
+ */
+public class ComrelShortcutPropertyTester extends PropertyTester {
+
+ /**
+ * @generated
+ */
+ protected static final String SHORTCUT_PROPERTY = "isShortcut"; //$NON-NLS-1$
+
+ /**
+ * @generated
+ */
+ public boolean test(Object receiver, String method, Object[] args,
+ Object expectedValue) {
+ if (false == receiver instanceof View) {
+ return false;
+ }
+ View view = (View) receiver;
+ if (SHORTCUT_PROPERTY.equals(method)) {
+ EAnnotation annotation = view.getEAnnotation("Shortcut"); //$NON-NLS-1$
+ if (annotation != null) {
+ return CompositeRefactoringEditPart.MODEL_ID.equals(annotation
+ .getDetails().get("modelID")); //$NON-NLS-1$
+ }
+ }
+ return false;
+ }
+
+}
diff --git a/org.eclipse.emf.refactor.comrel.diagram/src/comrel/diagram/part/ComrelUriEditorInputTester.java b/org.eclipse.emf.refactor.comrel.diagram/src/comrel/diagram/part/ComrelUriEditorInputTester.java
new file mode 100644
index 0000000..7db9460
--- /dev/null
+++ b/org.eclipse.emf.refactor.comrel.diagram/src/comrel/diagram/part/ComrelUriEditorInputTester.java
@@ -0,0 +1,26 @@
+/*
+ *
+ */
+package comrel.diagram.part;
+
+import org.eclipse.core.expressions.PropertyTester;
+import org.eclipse.emf.common.ui.URIEditorInput;
+
+/**
+ * @generated
+ */
+public class ComrelUriEditorInputTester extends PropertyTester {
+
+ /**
+ * @generated
+ */
+ public boolean test(Object receiver, String method, Object[] args,
+ Object expectedValue) {
+ if (false == receiver instanceof URIEditorInput) {
+ return false;
+ }
+ URIEditorInput editorInput = (URIEditorInput) receiver;
+ return "comrel_diagram".equals(editorInput.getURI().fileExtension()); //$NON-NLS-1$
+ }
+
+}
diff --git a/org.eclipse.emf.refactor.comrel.diagram/src/comrel/diagram/part/ComrelVisualIDRegistry.java b/org.eclipse.emf.refactor.comrel.diagram/src/comrel/diagram/part/ComrelVisualIDRegistry.java
new file mode 100644
index 0000000..c61872f
--- /dev/null
+++ b/org.eclipse.emf.refactor.comrel.diagram/src/comrel/diagram/part/ComrelVisualIDRegistry.java
@@ -0,0 +1,5058 @@
+/*
+ *
+ */
+package comrel.diagram.part;
+
+import org.eclipse.core.runtime.Platform;
+import org.eclipse.emf.ecore.EAnnotation;
+import org.eclipse.emf.ecore.EObject;
+import org.eclipse.gmf.runtime.notation.Diagram;
+import org.eclipse.gmf.runtime.notation.View;
+
+import comrel.CompositeRefactoring;
+import comrel.ComrelPackage;
+import comrel.diagram.edit.parts.*;
+
+/**
+ * This registry is used to determine which type of visual object should be
+ * created for the corresponding Diagram, Node, ChildNode or Link represented
+ * by a domain model object.
+ *
+ * @generated
+ */
+public class ComrelVisualIDRegistry {
+
+ /**
+ * @generated
+ */
+ private static final String DEBUG_KEY = "comrel.diagram/debug/visualID"; //$NON-NLS-1$
+
+ /**
+ * @generated
+ */
+ public static int getVisualID(View view) {
+ if (view instanceof Diagram) {
+ if (CompositeRefactoringEditPart.MODEL_ID.equals(view.getType())) {
+ return CompositeRefactoringEditPart.VISUAL_ID;
+ } else {
+ return -1;
+ }
+ }
+ return comrel.diagram.part.ComrelVisualIDRegistry.getVisualID(view
+ .getType());
+ }
+
+ /**
+ * @generated
+ */
+ public static String getModelID(View view) {
+ View diagram = view.getDiagram();
+ while (view != diagram) {
+ EAnnotation annotation = view.getEAnnotation("Shortcut"); //$NON-NLS-1$
+ if (annotation != null) {
+ return (String) annotation.getDetails().get("modelID"); //$NON-NLS-1$
+ }
+ view = (View) view.eContainer();
+ }
+ return diagram != null ? diagram.getType() : null;
+ }
+
+ /**
+ * @generated
+ */
+ public static int getVisualID(String type) {
+ try {
+ return Integer.parseInt(type);
+ } catch (NumberFormatException e) {
+ if (Boolean.TRUE.toString().equalsIgnoreCase(
+ Platform.getDebugOption(DEBUG_KEY))) {
+ ComrelDiagramEditorPlugin.getInstance().logError(
+ "Unable to parse view type as a visualID number: "
+ + type);
+ }
+ }
+ return -1;
+ }
+
+ /**
+ * @generated
+ */
+ public static String getType(int visualID) {
+ return Integer.toString(visualID);
+ }
+
+ /**
+ * @generated
+ */
+ public static int getDiagramVisualID(EObject domainElement) {
+ if (domainElement == null) {
+ return -1;
+ }
+ if (ComrelPackage.eINSTANCE.getCompositeRefactoring().isSuperTypeOf(
+ domainElement.eClass())
+ && isDiagram((CompositeRefactoring) domainElement)) {
+ return CompositeRefactoringEditPart.VISUAL_ID;
+ }
+ return -1;
+ }
+
+ /**
+ * @generated
+ */
+ public static int getNodeVisualID(View containerView, EObject domainElement) {
+ if (domainElement == null) {
+ return -1;
+ }
+ String containerModelID = comrel.diagram.part.ComrelVisualIDRegistry
+ .getModelID(containerView);
+ if (!CompositeRefactoringEditPart.MODEL_ID.equals(containerModelID)
+ && !"comrel".equals(containerModelID)) { //$NON-NLS-1$
+ return -1;
+ }
+ int containerVisualID;
+ if (CompositeRefactoringEditPart.MODEL_ID.equals(containerModelID)) {
+ containerVisualID = comrel.diagram.part.ComrelVisualIDRegistry
+ .getVisualID(containerView);
+ } else {
+ if (containerView instanceof Diagram) {
+ containerVisualID = CompositeRefactoringEditPart.VISUAL_ID;
+ } else {
+ return -1;
+ }
+ }
+ switch (containerVisualID) {
+ case CompositeRefactoringEditPart.VISUAL_ID:
+ if (ComrelPackage.eINSTANCE.getSingleInputPort().isSuperTypeOf(
+ domainElement.eClass())) {
+ return SingleInputPortEditPart.VISUAL_ID;
+ }
+ if (ComrelPackage.eINSTANCE.getCartesianQueuedUnit().isSuperTypeOf(
+ domainElement.eClass())) {
+ return CartesianQueuedUnitEditPart.VISUAL_ID;
+ }
+ if (ComrelPackage.eINSTANCE.getParallelQueuedUnit().isSuperTypeOf(
+ domainElement.eClass())) {
+ return ParallelQueuedUnitEditPart.VISUAL_ID;
+ }
+ if (ComrelPackage.eINSTANCE.getSingleQueuedUnit().isSuperTypeOf(
+ domainElement.eClass())) {
+ return SingleQueuedUnitEditPart.VISUAL_ID;
+ }
+ if (ComrelPackage.eINSTANCE.getSequentialUnit().isSuperTypeOf(
+ domainElement.eClass())) {
+ return SequentialUnitEditPart.VISUAL_ID;
+ }
+ if (ComrelPackage.eINSTANCE.getConditionalUnit().isSuperTypeOf(
+ domainElement.eClass())) {
+ return ConditionalUnitEditPart.VISUAL_ID;
+ }
+ if (ComrelPackage.eINSTANCE.getAtomicUnit().isSuperTypeOf(
+ domainElement.eClass())) {
+ return AtomicUnitEditPart.VISUAL_ID;
+ }
+ break;
+ case CartesianQueuedUnitEditPart.VISUAL_ID:
+ if (ComrelPackage.eINSTANCE.getSingleInputPort().isSuperTypeOf(
+ domainElement.eClass())) {
+ return SingleInputPort2EditPart.VISUAL_ID;
+ }
+ if (ComrelPackage.eINSTANCE.getMultiInputPort().isSuperTypeOf(
+ domainElement.eClass())) {
+ return MultiInputPortEditPart.VISUAL_ID;
+ }
+ break;
+ case ParallelQueuedUnitEditPart.VISUAL_ID:
+ if (ComrelPackage.eINSTANCE.getSingleInputPort().isSuperTypeOf(
+ domainElement.eClass())) {
+ return SingleInputPort3EditPart.VISUAL_ID;
+ }
+ if (ComrelPackage.eINSTANCE.getMultiInputPort().isSuperTypeOf(
+ domainElement.eClass())) {
+ return MultiInputPort2EditPart.VISUAL_ID;
+ }
+ break;
+ case SingleQueuedUnitEditPart.VISUAL_ID:
+ if (ComrelPackage.eINSTANCE.getSingleInputPort().isSuperTypeOf(
+ domainElement.eClass())) {
+ return SingleInputPort6EditPart.VISUAL_ID;
+ }
+ if (ComrelPackage.eINSTANCE.getMultiInputPort().isSuperTypeOf(
+ domainElement.eClass())) {
+ return MultiInputPort7EditPart.VISUAL_ID;
+ }
+ break;
+ case SequentialUnitEditPart.VISUAL_ID:
+ if (ComrelPackage.eINSTANCE.getSingleInputPort().isSuperTypeOf(
+ domainElement.eClass())) {
+ return SingleInputPort7EditPart.VISUAL_ID;
+ }
+ if (ComrelPackage.eINSTANCE.getMultiInputPort().isSuperTypeOf(
+ domainElement.eClass())) {
+ return MultiInputPort8EditPart.VISUAL_ID;
+ }
+ break;
+ case ConditionalUnitEditPart.VISUAL_ID:
+ if (ComrelPackage.eINSTANCE.getSingleInputPort().isSuperTypeOf(
+ domainElement.eClass())) {
+ return SingleInputPort8EditPart.VISUAL_ID;
+ }
+ if (ComrelPackage.eINSTANCE.getMultiInputPort().isSuperTypeOf(
+ domainElement.eClass())) {
+ return MultiInputPort9EditPart.VISUAL_ID;
+ }
+ break;
+ case AtomicUnitEditPart.VISUAL_ID:
+ if (ComrelPackage.eINSTANCE.getSingleInputPort().isSuperTypeOf(
+ domainElement.eClass())) {
+ return SingleInputPort9EditPart.VISUAL_ID;
+ }
+ break;
+ case CartesianQueuedUnit2EditPart.VISUAL_ID:
+ if (ComrelPackage.eINSTANCE.getSingleInputPort().isSuperTypeOf(
+ domainElement.eClass())) {
+ return SingleInputPort2EditPart.VISUAL_ID;
+ }
+ if (ComrelPackage.eINSTANCE.getMultiInputPort().isSuperTypeOf(
+ domainElement.eClass())) {
+ return MultiInputPortEditPart.VISUAL_ID;
+ }
+ break;
+ case ParallelQueuedUnit2EditPart.VISUAL_ID:
+ if (ComrelPackage.eINSTANCE.getSingleInputPort().isSuperTypeOf(
+ domainElement.eClass())) {
+ return SingleInputPort3EditPart.VISUAL_ID;
+ }
+ if (ComrelPackage.eINSTANCE.getMultiInputPort().isSuperTypeOf(
+ domainElement.eClass())) {
+ return MultiInputPort2EditPart.VISUAL_ID;
+ }
+ break;
+ case CartesianQueuedUnit3EditPart.VISUAL_ID:
+ if (ComrelPackage.eINSTANCE.getSingleInputPort().isSuperTypeOf(
+ domainElement.eClass())) {
+ return SingleInputPort2EditPart.VISUAL_ID;
+ }
+ if (ComrelPackage.eINSTANCE.getMultiInputPort().isSuperTypeOf(
+ domainElement.eClass())) {
+ return MultiInputPortEditPart.VISUAL_ID;
+ }
+ break;
+ case SingleFeatureUnitEditPart.VISUAL_ID:
+ if (ComrelPackage.eINSTANCE.getSingleInputPort().isSuperTypeOf(
+ domainElement.eClass())) {
+ return SingleInputPort4EditPart.VISUAL_ID;
+ }
+ if (ComrelPackage.eINSTANCE.getMultiInputPort().isSuperTypeOf(
+ domainElement.eClass())) {
+ return MultiInputPort3EditPart.VISUAL_ID;
+ }
+ if (ComrelPackage.eINSTANCE.getSingleOutputPort().isSuperTypeOf(
+ domainElement.eClass())) {
+ return SingleOutputPortEditPart.VISUAL_ID;
+ }
+ break;
+ case MultiFeatureUnitEditPart.VISUAL_ID:
+ if (ComrelPackage.eINSTANCE.getSingleInputPort().isSuperTypeOf(
+ domainElement.eClass())) {
+ return SingleInputPort5EditPart.VISUAL_ID;
+ }
+ if (ComrelPackage.eINSTANCE.getMultiInputPort().isSuperTypeOf(
+ domainElement.eClass())) {
+ return MultiInputPort4EditPart.VISUAL_ID;
+ }
+ if (ComrelPackage.eINSTANCE.getMultiOutputPort().isSuperTypeOf(
+ domainElement.eClass())) {
+ return MultiOutputPortEditPart.VISUAL_ID;
+ }
+ break;
+ case SingleFilterUnitEditPart.VISUAL_ID:
+ if (ComrelPackage.eINSTANCE.getMultiInputPort().isSuperTypeOf(
+ domainElement.eClass())) {
+ return MultiInputPort5EditPart.VISUAL_ID;
+ }
+ if (ComrelPackage.eINSTANCE.getSingleOutputPort().isSuperTypeOf(
+ domainElement.eClass())) {
+ return SingleOutputPort2EditPart.VISUAL_ID;
+ }
+ break;
+ case MultiFilterUnitEditPart.VISUAL_ID:
+ if (ComrelPackage.eINSTANCE.getMultiInputPort().isSuperTypeOf(
+ domainElement.eClass())) {
+ return MultiInputPort6EditPart.VISUAL_ID;
+ }
+ if (ComrelPackage.eINSTANCE.getMultiOutputPort().isSuperTypeOf(
+ domainElement.eClass())) {
+ return MultiOutputPort2EditPart.VISUAL_ID;
+ }
+ break;
+ case SingleQueuedUnit2EditPart.VISUAL_ID:
+ if (ComrelPackage.eINSTANCE.getSingleInputPort().isSuperTypeOf(
+ domainElement.eClass())) {
+ return SingleInputPort6EditPart.VISUAL_ID;
+ }
+ if (ComrelPackage.eINSTANCE.getMultiInputPort().isSuperTypeOf(
+ domainElement.eClass())) {
+ return MultiInputPort7EditPart.VISUAL_ID;
+ }
+ break;
+ case CartesianQueuedUnit4EditPart.VISUAL_ID:
+ if (ComrelPackage.eINSTANCE.getSingleInputPort().isSuperTypeOf(
+ domainElement.eClass())) {
+ return SingleInputPort2EditPart.VISUAL_ID;
+ }
+ if (ComrelPackage.eINSTANCE.getMultiInputPort().isSuperTypeOf(
+ domainElement.eClass())) {
+ return MultiInputPortEditPart.VISUAL_ID;
+ }
+ break;
+ case SequentialUnit2EditPart.VISUAL_ID:
+ if (ComrelPackage.eINSTANCE.getSingleInputPort().isSuperTypeOf(
+ domainElement.eClass())) {
+ return SingleInputPort7EditPart.VISUAL_ID;
+ }
+ if (ComrelPackage.eINSTANCE.getMultiInputPort().isSuperTypeOf(
+ domainElement.eClass())) {
+ return MultiInputPort8EditPart.VISUAL_ID;
+ }
+ break;
+ case CartesianQueuedUnit5EditPart.VISUAL_ID:
+ if (ComrelPackage.eINSTANCE.getSingleInputPort().isSuperTypeOf(
+ domainElement.eClass())) {
+ return SingleInputPort2EditPart.VISUAL_ID;
+ }
+ if (ComrelPackage.eINSTANCE.getMultiInputPort().isSuperTypeOf(
+ domainElement.eClass())) {
+ return MultiInputPortEditPart.VISUAL_ID;
+ }
+ break;
+ case ConditionalUnit2EditPart.VISUAL_ID:
+ if (ComrelPackage.eINSTANCE.getSingleInputPort().isSuperTypeOf(
+ domainElement.eClass())) {
+ return SingleInputPort8EditPart.VISUAL_ID;
+ }
+ if (ComrelPackage.eINSTANCE.getMultiInputPort().isSuperTypeOf(
+ domainElement.eClass())) {
+ return MultiInputPort9EditPart.VISUAL_ID;
+ }
+ break;
+ case CartesianQueuedUnit6EditPart.VISUAL_ID:
+ if (ComrelPackage.eINSTANCE.getSingleInputPort().isSuperTypeOf(
+ domainElement.eClass())) {
+ return SingleInputPort2EditPart.VISUAL_ID;
+ }
+ if (ComrelPackage.eINSTANCE.getMultiInputPort().isSuperTypeOf(
+ domainElement.eClass())) {
+ return MultiInputPortEditPart.VISUAL_ID;
+ }
+ break;
+ case AtomicUnit2EditPart.VISUAL_ID:
+ if (ComrelPackage.eINSTANCE.getSingleInputPort().isSuperTypeOf(
+ domainElement.eClass())) {
+ return SingleInputPort9EditPart.VISUAL_ID;
+ }
+ break;
+ case ParallelQueuedUnit3EditPart.VISUAL_ID:
+ if (ComrelPackage.eINSTANCE.getSingleInputPort().isSuperTypeOf(
+ domainElement.eClass())) {
+ return SingleInputPort3EditPart.VISUAL_ID;
+ }
+ if (ComrelPackage.eINSTANCE.getMultiInputPort().isSuperTypeOf(
+ domainElement.eClass())) {
+ return MultiInputPort2EditPart.VISUAL_ID;
+ }
+ break;
+ case ParallelQueuedUnit4EditPart.VISUAL_ID:
+ if (ComrelPackage.eINSTANCE.getSingleInputPort().isSuperTypeOf(
+ domainElement.eClass())) {
+ return SingleInputPort3EditPart.VISUAL_ID;
+ }
+ if (ComrelPackage.eINSTANCE.getMultiInputPort().isSuperTypeOf(
+ domainElement.eClass())) {
+ return MultiInputPort2EditPart.VISUAL_ID;
+ }
+ break;
+ case SingleFeatureUnit2EditPart.VISUAL_ID:
+ if (ComrelPackage.eINSTANCE.getSingleInputPort().isSuperTypeOf(
+ domainElement.eClass())) {
+ return SingleInputPort4EditPart.VISUAL_ID;
+ }
+ if (ComrelPackage.eINSTANCE.getMultiInputPort().isSuperTypeOf(
+ domainElement.eClass())) {
+ return MultiInputPort3EditPart.VISUAL_ID;
+ }
+ if (ComrelPackage.eINSTANCE.getSingleOutputPort().isSuperTypeOf(
+ domainElement.eClass())) {
+ return SingleOutputPortEditPart.VISUAL_ID;
+ }
+ break;
+ case MultiFeatureUnit2EditPart.VISUAL_ID:
+ if (ComrelPackage.eINSTANCE.getSingleInputPort().isSuperTypeOf(
+ domainElement.eClass())) {
+ return SingleInputPort5EditPart.VISUAL_ID;
+ }
+ if (ComrelPackage.eINSTANCE.getMultiInputPort().isSuperTypeOf(
+ domainElement.eClass())) {
+ return MultiInputPort4EditPart.VISUAL_ID;
+ }
+ if (ComrelPackage.eINSTANCE.getMultiOutputPort().isSuperTypeOf(
+ domainElement.eClass())) {
+ return MultiOutputPortEditPart.VISUAL_ID;
+ }
+ break;
+ case SingleFilterUnit2EditPart.VISUAL_ID:
+ if (ComrelPackage.eINSTANCE.getMultiInputPort().isSuperTypeOf(
+ domainElement.eClass())) {
+ return MultiInputPort5EditPart.VISUAL_ID;
+ }
+ if (ComrelPackage.eINSTANCE.getSingleOutputPort().isSuperTypeOf(
+ domainElement.eClass())) {
+ return SingleOutputPort2EditPart.VISUAL_ID;
+ }
+ break;
+ case MultiFilterUnit2EditPart.VISUAL_ID:
+ if (ComrelPackage.eINSTANCE.getMultiInputPort().isSuperTypeOf(
+ domainElement.eClass())) {
+ return MultiInputPort6EditPart.VISUAL_ID;
+ }
+ if (ComrelPackage.eINSTANCE.getMultiOutputPort().isSuperTypeOf(
+ domainElement.eClass())) {
+ return MultiOutputPort2EditPart.VISUAL_ID;
+ }
+ break;
+ case SingleQueuedUnit3EditPart.VISUAL_ID:
+ if (ComrelPackage.eINSTANCE.getSingleInputPort().isSuperTypeOf(
+ domainElement.eClass())) {
+ return SingleInputPort6EditPart.VISUAL_ID;
+ }
+ if (ComrelPackage.eINSTANCE.getMultiInputPort().isSuperTypeOf(
+ domainElement.eClass())) {
+ return MultiInputPort7EditPart.VISUAL_ID;
+ }
+ break;
+ case ParallelQueuedUnit5EditPart.VISUAL_ID:
+ if (ComrelPackage.eINSTANCE.getSingleInputPort().isSuperTypeOf(
+ domainElement.eClass())) {
+ return SingleInputPort3EditPart.VISUAL_ID;
+ }
+ if (ComrelPackage.eINSTANCE.getMultiInputPort().isSuperTypeOf(
+ domainElement.eClass())) {
+ return MultiInputPort2EditPart.VISUAL_ID;
+ }
+ break;
+ case SequentialUnit3EditPart.VISUAL_ID:
+ if (ComrelPackage.eINSTANCE.getSingleInputPort().isSuperTypeOf(
+ domainElement.eClass())) {
+ return SingleInputPort7EditPart.VISUAL_ID;
+ }
+ if (ComrelPackage.eINSTANCE.getMultiInputPort().isSuperTypeOf(
+ domainElement.eClass())) {
+ return MultiInputPort8EditPart.VISUAL_ID;
+ }
+ break;
+ case ParallelQueuedUnit6EditPart.VISUAL_ID:
+ if (ComrelPackage.eINSTANCE.getSingleInputPort().isSuperTypeOf(
+ domainElement.eClass())) {
+ return SingleInputPort3EditPart.VISUAL_ID;
+ }
+ if (ComrelPackage.eINSTANCE.getMultiInputPort().isSuperTypeOf(
+ domainElement.eClass())) {
+ return MultiInputPort2EditPart.VISUAL_ID;
+ }
+ break;
+ case ConditionalUnit3EditPart.VISUAL_ID:
+ if (ComrelPackage.eINSTANCE.getSingleInputPort().isSuperTypeOf(
+ domainElement.eClass())) {
+ return SingleInputPort8EditPart.VISUAL_ID;
+ }
+ if (ComrelPackage.eINSTANCE.getMultiInputPort().isSuperTypeOf(
+ domainElement.eClass())) {
+ return MultiInputPort9EditPart.VISUAL_ID;
+ }
+ break;
+ case CartesianQueuedUnit7EditPart.VISUAL_ID:
+ if (ComrelPackage.eINSTANCE.getSingleInputPort().isSuperTypeOf(
+ domainElement.eClass())) {
+ return SingleInputPort2EditPart.VISUAL_ID;
+ }
+ if (ComrelPackage.eINSTANCE.getMultiInputPort().isSuperTypeOf(
+ domainElement.eClass())) {
+ return MultiInputPortEditPart.VISUAL_ID;
+ }
+ break;
+ case ParallelQueuedUnit7EditPart.VISUAL_ID:
+ if (ComrelPackage.eINSTANCE.getSingleInputPort().isSuperTypeOf(
+ domainElement.eClass())) {
+ return SingleInputPort3EditPart.VISUAL_ID;
+ }
+ if (ComrelPackage.eINSTANCE.getMultiInputPort().isSuperTypeOf(
+ domainElement.eClass())) {
+ return MultiInputPort2EditPart.VISUAL_ID;
+ }
+ break;
+ case AtomicUnit3EditPart.VISUAL_ID:
+ if (ComrelPackage.eINSTANCE.getSingleInputPort().isSuperTypeOf(
+ domainElement.eClass())) {
+ return SingleInputPort9EditPart.VISUAL_ID;
+ }
+ break;
+ case SingleFeatureUnit3EditPart.VISUAL_ID:
+ if (ComrelPackage.eINSTANCE.getSingleInputPort().isSuperTypeOf(
+ domainElement.eClass())) {
+ return SingleInputPort4EditPart.VISUAL_ID;
+ }
+ if (ComrelPackage.eINSTANCE.getMultiInputPort().isSuperTypeOf(
+ domainElement.eClass())) {
+ return MultiInputPort3EditPart.VISUAL_ID;
+ }
+ if (ComrelPackage.eINSTANCE.getSingleOutputPort().isSuperTypeOf(
+ domainElement.eClass())) {
+ return SingleOutputPortEditPart.VISUAL_ID;
+ }
+ break;
+ case MultiFeatureUnit3EditPart.VISUAL_ID:
+ if (ComrelPackage.eINSTANCE.getSingleInputPort().isSuperTypeOf(
+ domainElement.eClass())) {
+ return SingleInputPort5EditPart.VISUAL_ID;
+ }
+ if (ComrelPackage.eINSTANCE.getMultiInputPort().isSuperTypeOf(
+ domainElement.eClass())) {
+ return MultiInputPort4EditPart.VISUAL_ID;
+ }
+ if (ComrelPackage.eINSTANCE.getMultiOutputPort().isSuperTypeOf(
+ domainElement.eClass())) {
+ return MultiOutputPortEditPart.VISUAL_ID;
+ }
+ break;
+ case SingleFilterUnit3EditPart.VISUAL_ID:
+ if (ComrelPackage.eINSTANCE.getMultiInputPort().isSuperTypeOf(
+ domainElement.eClass())) {
+ return MultiInputPort5EditPart.VISUAL_ID;
+ }
+ if (ComrelPackage.eINSTANCE.getSingleOutputPort().isSuperTypeOf(
+ domainElement.eClass())) {
+ return SingleOutputPort2EditPart.VISUAL_ID;
+ }
+ break;
+ case MultiFilterUnit3EditPart.VISUAL_ID:
+ if (ComrelPackage.eINSTANCE.getMultiInputPort().isSuperTypeOf(
+ domainElement.eClass())) {
+ return MultiInputPort6EditPart.VISUAL_ID;
+ }
+ if (ComrelPackage.eINSTANCE.getMultiOutputPort().isSuperTypeOf(
+ domainElement.eClass())) {
+ return MultiOutputPort2EditPart.VISUAL_ID;
+ }
+ break;
+ case SingleQueuedUnit4EditPart.VISUAL_ID:
+ if (ComrelPackage.eINSTANCE.getSingleInputPort().isSuperTypeOf(
+ domainElement.eClass())) {
+ return SingleInputPort6EditPart.VISUAL_ID;
+ }
+ if (ComrelPackage.eINSTANCE.getMultiInputPort().isSuperTypeOf(
+ domainElement.eClass())) {
+ return MultiInputPort7EditPart.VISUAL_ID;
+ }
+ break;
+ case SingleFeatureUnit4EditPart.VISUAL_ID:
+ if (ComrelPackage.eINSTANCE.getSingleInputPort().isSuperTypeOf(
+ domainElement.eClass())) {
+ return SingleInputPort4EditPart.VISUAL_ID;
+ }
+ if (ComrelPackage.eINSTANCE.getMultiInputPort().isSuperTypeOf(
+ domainElement.eClass())) {
+ return MultiInputPort3EditPart.VISUAL_ID;
+ }
+ if (ComrelPackage.eINSTANCE.getSingleOutputPort().isSuperTypeOf(
+ domainElement.eClass())) {
+ return SingleOutputPortEditPart.VISUAL_ID;
+ }
+ break;
+ case MultiFeatureUnit4EditPart.VISUAL_ID:
+ if (ComrelPackage.eINSTANCE.getSingleInputPort().isSuperTypeOf(
+ domainElement.eClass())) {
+ return SingleInputPort5EditPart.VISUAL_ID;
+ }
+ if (ComrelPackage.eINSTANCE.getMultiInputPort().isSuperTypeOf(
+ domainElement.eClass())) {
+ return MultiInputPort4EditPart.VISUAL_ID;
+ }
+ if (ComrelPackage.eINSTANCE.getMultiOutputPort().isSuperTypeOf(
+ domainElement.eClass())) {
+ return MultiOutputPortEditPart.VISUAL_ID;
+ }
+ break;
+ case SingleFilterUnit4EditPart.VISUAL_ID:
+ if (ComrelPackage.eINSTANCE.getMultiInputPort().isSuperTypeOf(
+ domainElement.eClass())) {
+ return MultiInputPort5EditPart.VISUAL_ID;
+ }
+ if (ComrelPackage.eINSTANCE.getSingleOutputPort().isSuperTypeOf(
+ domainElement.eClass())) {
+ return SingleOutputPort2EditPart.VISUAL_ID;
+ }
+ break;
+ case MultiFilterUnit4EditPart.VISUAL_ID:
+ if (ComrelPackage.eINSTANCE.getMultiInputPort().isSuperTypeOf(
+ domainElement.eClass())) {
+ return MultiInputPort6EditPart.VISUAL_ID;
+ }
+ if (ComrelPackage.eINSTANCE.getMultiOutputPort().isSuperTypeOf(
+ domainElement.eClass())) {
+ return MultiOutputPort2EditPart.VISUAL_ID;
+ }
+ break;
+ case SingleQueuedUnit5EditPart.VISUAL_ID:
+ if (ComrelPackage.eINSTANCE.getSingleInputPort().isSuperTypeOf(
+ domainElement.eClass())) {
+ return SingleInputPort6EditPart.VISUAL_ID;
+ }
+ if (ComrelPackage.eINSTANCE.getMultiInputPort().isSuperTypeOf(
+ domainElement.eClass())) {
+ return MultiInputPort7EditPart.VISUAL_ID;
+ }
+ break;
+ case SequentialUnit4EditPart.VISUAL_ID:
+ if (ComrelPackage.eINSTANCE.getSingleInputPort().isSuperTypeOf(
+ domainElement.eClass())) {
+ return SingleInputPort7EditPart.VISUAL_ID;
+ }
+ if (ComrelPackage.eINSTANCE.getMultiInputPort().isSuperTypeOf(
+ domainElement.eClass())) {
+ return MultiInputPort8EditPart.VISUAL_ID;
+ }
+ break;
+ case SingleFeatureUnit5EditPart.VISUAL_ID:
+ if (ComrelPackage.eINSTANCE.getSingleInputPort().isSuperTypeOf(
+ domainElement.eClass())) {
+ return SingleInputPort4EditPart.VISUAL_ID;
+ }
+ if (ComrelPackage.eINSTANCE.getMultiInputPort().isSuperTypeOf(
+ domainElement.eClass())) {
+ return MultiInputPort3EditPart.VISUAL_ID;
+ }
+ if (ComrelPackage.eINSTANCE.getSingleOutputPort().isSuperTypeOf(
+ domainElement.eClass())) {
+ return SingleOutputPortEditPart.VISUAL_ID;
+ }
+ break;
+ case MultiFeatureUnit5EditPart.VISUAL_ID:
+ if (ComrelPackage.eINSTANCE.getSingleInputPort().isSuperTypeOf(
+ domainElement.eClass())) {
+ return SingleInputPort5EditPart.VISUAL_ID;
+ }
+ if (ComrelPackage.eINSTANCE.getMultiInputPort().isSuperTypeOf(
+ domainElement.eClass())) {
+ return MultiInputPort4EditPart.VISUAL_ID;
+ }
+ if (ComrelPackage.eINSTANCE.getMultiOutputPort().isSuperTypeOf(
+ domainElement.eClass())) {
+ return MultiOutputPortEditPart.VISUAL_ID;
+ }
+ break;
+ case SingleFilterUnit5EditPart.VISUAL_ID:
+ if (ComrelPackage.eINSTANCE.getMultiInputPort().isSuperTypeOf(
+ domainElement.eClass())) {
+ return MultiInputPort5EditPart.VISUAL_ID;
+ }
+ if (ComrelPackage.eINSTANCE.getSingleOutputPort().isSuperTypeOf(
+ domainElement.eClass())) {
+ return SingleOutputPort2EditPart.VISUAL_ID;
+ }
+ break;
+ case MultiFilterUnit5EditPart.VISUAL_ID:
+ if (ComrelPackage.eINSTANCE.getMultiInputPort().isSuperTypeOf(
+ domainElement.eClass())) {
+ return MultiInputPort6EditPart.VISUAL_ID;
+ }
+ if (ComrelPackage.eINSTANCE.getMultiOutputPort().isSuperTypeOf(
+ domainElement.eClass())) {
+ return MultiOutputPort2EditPart.VISUAL_ID;
+ }
+ break;
+ case SingleQueuedUnit6EditPart.VISUAL_ID:
+ if (ComrelPackage.eINSTANCE.getSingleInputPort().isSuperTypeOf(
+ domainElement.eClass())) {
+ return SingleInputPort6EditPart.VISUAL_ID;
+ }
+ if (ComrelPackage.eINSTANCE.getMultiInputPort().isSuperTypeOf(
+ domainElement.eClass())) {
+ return MultiInputPort7EditPart.VISUAL_ID;
+ }
+ break;
+ case ConditionalUnit4EditPart.VISUAL_ID:
+ if (ComrelPackage.eINSTANCE.getSingleInputPort().isSuperTypeOf(
+ domainElement.eClass())) {
+ return SingleInputPort8EditPart.VISUAL_ID;
+ }
+ if (ComrelPackage.eINSTANCE.getMultiInputPort().isSuperTypeOf(
+ domainElement.eClass())) {
+ return MultiInputPort9EditPart.VISUAL_ID;
+ }
+ break;
+ case SingleQueuedUnit7EditPart.VISUAL_ID:
+ if (ComrelPackage.eINSTANCE.getSingleInputPort().isSuperTypeOf(
+ domainElement.eClass())) {
+ return SingleInputPort6EditPart.VISUAL_ID;
+ }
+ if (ComrelPackage.eINSTANCE.getMultiInputPort().isSuperTypeOf(
+ domainElement.eClass())) {
+ return MultiInputPort7EditPart.VISUAL_ID;
+ }
+ break;
+ case AtomicUnit4EditPart.VISUAL_ID:
+ if (ComrelPackage.eINSTANCE.getSingleInputPort().isSuperTypeOf(
+ domainElement.eClass())) {
+ return SingleInputPort9EditPart.VISUAL_ID;
+ }
+ break;
+ case SequentialUnit5EditPart.VISUAL_ID:
+ if (ComrelPackage.eINSTANCE.getSingleInputPort().isSuperTypeOf(
+ domainElement.eClass())) {
+ return SingleInputPort7EditPart.VISUAL_ID;
+ }
+ if (ComrelPackage.eINSTANCE.getMultiInputPort().isSuperTypeOf(
+ domainElement.eClass())) {
+ return MultiInputPort8EditPart.VISUAL_ID;
+ }
+ break;
+ case SequentialUnit6EditPart.VISUAL_ID:
+ if (ComrelPackage.eINSTANCE.getSingleInputPort().isSuperTypeOf(
+ domainElement.eClass())) {
+ return SingleInputPort7EditPart.VISUAL_ID;
+ }
+ if (ComrelPackage.eINSTANCE.getMultiInputPort().isSuperTypeOf(
+ domainElement.eClass())) {
+ return MultiInputPort8EditPart.VISUAL_ID;
+ }
+ break;
+ case ConditionalUnit5EditPart.VISUAL_ID:
+ if (ComrelPackage.eINSTANCE.getSingleInputPort().isSuperTypeOf(
+ domainElement.eClass())) {
+ return SingleInputPort8EditPart.VISUAL_ID;
+ }
+ if (ComrelPackage.eINSTANCE.getMultiInputPort().isSuperTypeOf(
+ domainElement.eClass())) {
+ return MultiInputPort9EditPart.VISUAL_ID;
+ }
+ break;
+ case ConditionalUnit6EditPart.VISUAL_ID:
+ if (ComrelPackage.eINSTANCE.getSingleInputPort().isSuperTypeOf(
+ domainElement.eClass())) {
+ return SingleInputPort8EditPart.VISUAL_ID;
+ }
+ if (ComrelPackage.eINSTANCE.getMultiInputPort().isSuperTypeOf(
+ domainElement.eClass())) {
+ return MultiInputPort9EditPart.VISUAL_ID;
+ }
+ break;
+ case SequentialUnit7EditPart.VISUAL_ID:
+ if (ComrelPackage.eINSTANCE.getSingleInputPort().isSuperTypeOf(
+ domainElement.eClass())) {
+ return SingleInputPort7EditPart.VISUAL_ID;
+ }
+ if (ComrelPackage.eINSTANCE.getMultiInputPort().isSuperTypeOf(
+ domainElement.eClass())) {
+ return MultiInputPort8EditPart.VISUAL_ID;
+ }
+ break;
+ case AtomicUnit5EditPart.VISUAL_ID:
+ if (ComrelPackage.eINSTANCE.getSingleInputPort().isSuperTypeOf(
+ domainElement.eClass())) {
+ return SingleInputPort9EditPart.VISUAL_ID;
+ }
+ break;
+ case ConditionalUnit7EditPart.VISUAL_ID:
+ if (ComrelPackage.eINSTANCE.getSingleInputPort().isSuperTypeOf(
+ domainElement.eClass())) {
+ return SingleInputPort8EditPart.VISUAL_ID;
+ }
+ if (ComrelPackage.eINSTANCE.getMultiInputPort().isSuperTypeOf(
+ domainElement.eClass())) {
+ return MultiInputPort9EditPart.VISUAL_ID;
+ }
+ break;
+ case AtomicUnit6EditPart.VISUAL_ID:
+ if (ComrelPackage.eINSTANCE.getSingleInputPort().isSuperTypeOf(
+ domainElement.eClass())) {
+ return SingleInputPort9EditPart.VISUAL_ID;
+ }
+ break;
+ case AtomicUnit7EditPart.VISUAL_ID:
+ if (ComrelPackage.eINSTANCE.getSingleInputPort().isSuperTypeOf(
+ domainElement.eClass())) {
+ return SingleInputPort9EditPart.VISUAL_ID;
+ }
+ break;
+ case CartesianQueuedUnitCartesianQueuedUnitHelperUnitsCompartmentEditPart.VISUAL_ID:
+ if (ComrelPackage.eINSTANCE.getSingleFeatureUnit().isSuperTypeOf(
+ domainElement.eClass())) {
+ return SingleFeatureUnitEditPart.VISUAL_ID;
+ }
+ if (ComrelPackage.eINSTANCE.getMultiFeatureUnit().isSuperTypeOf(
+ domainElement.eClass())) {
+ return MultiFeatureUnitEditPart.VISUAL_ID;
+ }
+ if (ComrelPackage.eINSTANCE.getSingleFilterUnit().isSuperTypeOf(
+ domainElement.eClass())) {
+ return SingleFilterUnitEditPart.VISUAL_ID;
+ }
+ if (ComrelPackage.eINSTANCE.getMultiFilterUnit().isSuperTypeOf(
+ domainElement.eClass())) {
+ return MultiFilterUnitEditPart.VISUAL_ID;
+ }
+ break;
+ case CartesianQueuedUnitCartesianQueuedUnitRefactoringUnitCompartmentEditPart.VISUAL_ID:
+ if (ComrelPackage.eINSTANCE.getCartesianQueuedUnit().isSuperTypeOf(
+ domainElement.eClass())) {
+ return CartesianQueuedUnit2EditPart.VISUAL_ID;
+ }
+ if (ComrelPackage.eINSTANCE.getParallelQueuedUnit().isSuperTypeOf(
+ domainElement.eClass())) {
+ return ParallelQueuedUnit2EditPart.VISUAL_ID;
+ }
+ if (ComrelPackage.eINSTANCE.getSingleQueuedUnit().isSuperTypeOf(
+ domainElement.eClass())) {
+ return SingleQueuedUnit2EditPart.VISUAL_ID;
+ }
+ if (ComrelPackage.eINSTANCE.getSequentialUnit().isSuperTypeOf(
+ domainElement.eClass())) {
+ return SequentialUnit2EditPart.VISUAL_ID;
+ }
+ if (ComrelPackage.eINSTANCE.getConditionalUnit().isSuperTypeOf(
+ domainElement.eClass())) {
+ return ConditionalUnit2EditPart.VISUAL_ID;
+ }
+ if (ComrelPackage.eINSTANCE.getAtomicUnit().isSuperTypeOf(
+ domainElement.eClass())) {
+ return AtomicUnit2EditPart.VISUAL_ID;
+ }
+ break;
+ case CartesianQueuedUnitCartesianQueuedUnitHelperUnitsCompartment2EditPart.VISUAL_ID:
+ if (ComrelPackage.eINSTANCE.getSingleFeatureUnit().isSuperTypeOf(
+ domainElement.eClass())) {
+ return SingleFeatureUnitEditPart.VISUAL_ID;
+ }
+ if (ComrelPackage.eINSTANCE.getMultiFeatureUnit().isSuperTypeOf(
+ domainElement.eClass())) {
+ return MultiFeatureUnitEditPart.VISUAL_ID;
+ }
+ if (ComrelPackage.eINSTANCE.getSingleFilterUnit().isSuperTypeOf(
+ domainElement.eClass())) {
+ return SingleFilterUnitEditPart.VISUAL_ID;
+ }
+ if (ComrelPackage.eINSTANCE.getMultiFilterUnit().isSuperTypeOf(
+ domainElement.eClass())) {
+ return MultiFilterUnitEditPart.VISUAL_ID;
+ }
+ break;
+ case CartesianQueuedUnitCartesianQueuedUnitRefactoringUnitCompartment2EditPart.VISUAL_ID:
+ if (ComrelPackage.eINSTANCE.getCartesianQueuedUnit().isSuperTypeOf(
+ domainElement.eClass())) {
+ return CartesianQueuedUnit2EditPart.VISUAL_ID;
+ }
+ if (ComrelPackage.eINSTANCE.getParallelQueuedUnit().isSuperTypeOf(
+ domainElement.eClass())) {
+ return ParallelQueuedUnit2EditPart.VISUAL_ID;
+ }
+ if (ComrelPackage.eINSTANCE.getSingleQueuedUnit().isSuperTypeOf(
+ domainElement.eClass())) {
+ return SingleQueuedUnit2EditPart.VISUAL_ID;
+ }
+ if (ComrelPackage.eINSTANCE.getSequentialUnit().isSuperTypeOf(
+ domainElement.eClass())) {
+ return SequentialUnit2EditPart.VISUAL_ID;
+ }
+ if (ComrelPackage.eINSTANCE.getConditionalUnit().isSuperTypeOf(
+ domainElement.eClass())) {
+ return ConditionalUnit2EditPart.VISUAL_ID;
+ }
+ if (ComrelPackage.eINSTANCE.getAtomicUnit().isSuperTypeOf(
+ domainElement.eClass())) {
+ return AtomicUnit2EditPart.VISUAL_ID;
+ }
+ break;
+ case ParallelQueuedUnitParallelQueuedUnitHelperUnitsCompartmentEditPart.VISUAL_ID:
+ if (ComrelPackage.eINSTANCE.getSingleFeatureUnit().isSuperTypeOf(
+ domainElement.eClass())) {
+ return SingleFeatureUnit2EditPart.VISUAL_ID;
+ }
+ if (ComrelPackage.eINSTANCE.getMultiFeatureUnit().isSuperTypeOf(
+ domainElement.eClass())) {
+ return MultiFeatureUnit2EditPart.VISUAL_ID;
+ }
+ if (ComrelPackage.eINSTANCE.getSingleFilterUnit().isSuperTypeOf(
+ domainElement.eClass())) {
+ return SingleFilterUnit2EditPart.VISUAL_ID;
+ }
+ if (ComrelPackage.eINSTANCE.getMultiFilterUnit().isSuperTypeOf(
+ domainElement.eClass())) {
+ return MultiFilterUnit2EditPart.VISUAL_ID;
+ }
+ break;
+ case ParallelQueuedUnitParallelQueuedUnitRefactoringUnitsCompartmentEditPart.VISUAL_ID:
+ if (ComrelPackage.eINSTANCE.getCartesianQueuedUnit().isSuperTypeOf(
+ domainElement.eClass())) {
+ return CartesianQueuedUnit3EditPart.VISUAL_ID;
+ }
+ if (ComrelPackage.eINSTANCE.getParallelQueuedUnit().isSuperTypeOf(
+ domainElement.eClass())) {
+ return ParallelQueuedUnit4EditPart.VISUAL_ID;
+ }
+ if (ComrelPackage.eINSTANCE.getSingleQueuedUnit().isSuperTypeOf(
+ domainElement.eClass())) {
+ return SingleQueuedUnit3EditPart.VISUAL_ID;
+ }
+ if (ComrelPackage.eINSTANCE.getSequentialUnit().isSuperTypeOf(
+ domainElement.eClass())) {
+ return SequentialUnit3EditPart.VISUAL_ID;
+ }
+ if (ComrelPackage.eINSTANCE.getConditionalUnit().isSuperTypeOf(
+ domainElement.eClass())) {
+ return ConditionalUnit3EditPart.VISUAL_ID;
+ }
+ if (ComrelPackage.eINSTANCE.getAtomicUnit().isSuperTypeOf(
+ domainElement.eClass())) {
+ return AtomicUnit3EditPart.VISUAL_ID;
+ }
+ break;
+ case CartesianQueuedUnitCartesianQueuedUnitHelperUnitsCompartment3EditPart.VISUAL_ID:
+ if (ComrelPackage.eINSTANCE.getSingleFeatureUnit().isSuperTypeOf(
+ domainElement.eClass())) {
+ return SingleFeatureUnitEditPart.VISUAL_ID;
+ }
+ if (ComrelPackage.eINSTANCE.getMultiFeatureUnit().isSuperTypeOf(
+ domainElement.eClass())) {
+ return MultiFeatureUnitEditPart.VISUAL_ID;
+ }
+ if (ComrelPackage.eINSTANCE.getSingleFilterUnit().isSuperTypeOf(
+ domainElement.eClass())) {
+ return SingleFilterUnitEditPart.VISUAL_ID;
+ }
+ if (ComrelPackage.eINSTANCE.getMultiFilterUnit().isSuperTypeOf(
+ domainElement.eClass())) {
+ return MultiFilterUnitEditPart.VISUAL_ID;
+ }
+ break;
+ case CartesianQueuedUnitCartesianQueuedUnitRefactoringUnitCompartment3EditPart.VISUAL_ID:
+ if (ComrelPackage.eINSTANCE.getCartesianQueuedUnit().isSuperTypeOf(
+ domainElement.eClass())) {
+ return CartesianQueuedUnit2EditPart.VISUAL_ID;
+ }
+ if (ComrelPackage.eINSTANCE.getParallelQueuedUnit().isSuperTypeOf(
+ domainElement.eClass())) {
+ return ParallelQueuedUnit2EditPart.VISUAL_ID;
+ }
+ if (ComrelPackage.eINSTANCE.getSingleQueuedUnit().isSuperTypeOf(
+ domainElement.eClass())) {
+ return SingleQueuedUnit2EditPart.VISUAL_ID;
+ }
+ if (ComrelPackage.eINSTANCE.getSequentialUnit().isSuperTypeOf(
+ domainElement.eClass())) {
+ return SequentialUnit2EditPart.VISUAL_ID;
+ }
+ if (ComrelPackage.eINSTANCE.getConditionalUnit().isSuperTypeOf(
+ domainElement.eClass())) {
+ return ConditionalUnit2EditPart.VISUAL_ID;
+ }
+ if (ComrelPackage.eINSTANCE.getAtomicUnit().isSuperTypeOf(
+ domainElement.eClass())) {
+ return AtomicUnit2EditPart.VISUAL_ID;
+ }
+ break;
+ case SingleQueuedUnitSingleQueuedUnitHelperUnitsCompartmentEditPart.VISUAL_ID:
+ if (ComrelPackage.eINSTANCE.getSingleFeatureUnit().isSuperTypeOf(
+ domainElement.eClass())) {
+ return SingleFeatureUnit4EditPart.VISUAL_ID;
+ }
+ if (ComrelPackage.eINSTANCE.getMultiFeatureUnit().isSuperTypeOf(
+ domainElement.eClass())) {
+ return MultiFeatureUnit4EditPart.VISUAL_ID;
+ }
+ if (ComrelPackage.eINSTANCE.getSingleFilterUnit().isSuperTypeOf(
+ domainElement.eClass())) {
+ return SingleFilterUnit4EditPart.VISUAL_ID;
+ }
+ if (ComrelPackage.eINSTANCE.getMultiFilterUnit().isSuperTypeOf(
+ domainElement.eClass())) {
+ return MultiFilterUnit4EditPart.VISUAL_ID;
+ }
+ break;
+ case SingleQueuedUnitSingleQueuedUnitRefactoringUnitCompartmentEditPart.VISUAL_ID:
+ if (ComrelPackage.eINSTANCE.getCartesianQueuedUnit().isSuperTypeOf(
+ domainElement.eClass())) {
+ return CartesianQueuedUnit4EditPart.VISUAL_ID;
+ }
+ if (ComrelPackage.eINSTANCE.getParallelQueuedUnit().isSuperTypeOf(
+ domainElement.eClass())) {
+ return ParallelQueuedUnit5EditPart.VISUAL_ID;
+ }
+ if (ComrelPackage.eINSTANCE.getSingleQueuedUnit().isSuperTypeOf(
+ domainElement.eClass())) {
+ return SingleQueuedUnit5EditPart.VISUAL_ID;
+ }
+ if (ComrelPackage.eINSTANCE.getSequentialUnit().isSuperTypeOf(
+ domainElement.eClass())) {
+ return SequentialUnit4EditPart.VISUAL_ID;
+ }
+ if (ComrelPackage.eINSTANCE.getConditionalUnit().isSuperTypeOf(
+ domainElement.eClass())) {
+ return ConditionalUnit4EditPart.VISUAL_ID;
+ }
+ if (ComrelPackage.eINSTANCE.getAtomicUnit().isSuperTypeOf(
+ domainElement.eClass())) {
+ return AtomicUnit4EditPart.VISUAL_ID;
+ }
+ break;
+ case CartesianQueuedUnitCartesianQueuedUnitHelperUnitsCompartment4EditPart.VISUAL_ID:
+ if (ComrelPackage.eINSTANCE.getSingleFeatureUnit().isSuperTypeOf(
+ domainElement.eClass())) {
+ return SingleFeatureUnitEditPart.VISUAL_ID;
+ }
+ if (ComrelPackage.eINSTANCE.getMultiFeatureUnit().isSuperTypeOf(
+ domainElement.eClass())) {
+ return MultiFeatureUnitEditPart.VISUAL_ID;
+ }
+ if (ComrelPackage.eINSTANCE.getSingleFilterUnit().isSuperTypeOf(
+ domainElement.eClass())) {
+ return SingleFilterUnitEditPart.VISUAL_ID;
+ }
+ if (ComrelPackage.eINSTANCE.getMultiFilterUnit().isSuperTypeOf(
+ domainElement.eClass())) {
+ return MultiFilterUnitEditPart.VISUAL_ID;
+ }
+ break;
+ case CartesianQueuedUnitCartesianQueuedUnitRefactoringUnitCompartment4EditPart.VISUAL_ID:
+ if (ComrelPackage.eINSTANCE.getCartesianQueuedUnit().isSuperTypeOf(
+ domainElement.eClass())) {
+ return CartesianQueuedUnit2EditPart.VISUAL_ID;
+ }
+ if (ComrelPackage.eINSTANCE.getParallelQueuedUnit().isSuperTypeOf(
+ domainElement.eClass())) {
+ return ParallelQueuedUnit2EditPart.VISUAL_ID;
+ }
+ if (ComrelPackage.eINSTANCE.getSingleQueuedUnit().isSuperTypeOf(
+ domainElement.eClass())) {
+ return SingleQueuedUnit2EditPart.VISUAL_ID;
+ }
+ if (ComrelPackage.eINSTANCE.getSequentialUnit().isSuperTypeOf(
+ domainElement.eClass())) {
+ return SequentialUnit2EditPart.VISUAL_ID;
+ }
+ if (ComrelPackage.eINSTANCE.getConditionalUnit().isSuperTypeOf(
+ domainElement.eClass())) {
+ return ConditionalUnit2EditPart.VISUAL_ID;
+ }
+ if (ComrelPackage.eINSTANCE.getAtomicUnit().isSuperTypeOf(
+ domainElement.eClass())) {
+ return AtomicUnit2EditPart.VISUAL_ID;
+ }
+ break;
+ case SequentialUnitSequentialUnitHelperUnitsCompartmentEditPart.VISUAL_ID:
+ if (ComrelPackage.eINSTANCE.getSingleFeatureUnit().isSuperTypeOf(
+ domainElement.eClass())) {
+ return SingleFeatureUnit5EditPart.VISUAL_ID;
+ }
+ if (ComrelPackage.eINSTANCE.getMultiFeatureUnit().isSuperTypeOf(
+ domainElement.eClass())) {
+ return MultiFeatureUnit5EditPart.VISUAL_ID;
+ }
+ if (ComrelPackage.eINSTANCE.getSingleFilterUnit().isSuperTypeOf(
+ domainElement.eClass())) {
+ return SingleFilterUnit5EditPart.VISUAL_ID;
+ }
+ if (ComrelPackage.eINSTANCE.getMultiFilterUnit().isSuperTypeOf(
+ domainElement.eClass())) {
+ return MultiFilterUnit5EditPart.VISUAL_ID;
+ }
+ break;
+ case SequentialUnitSequentialUnitRefactoringUnitsCompartmentEditPart.VISUAL_ID:
+ if (ComrelPackage.eINSTANCE.getCartesianQueuedUnit().isSuperTypeOf(
+ domainElement.eClass())) {
+ return CartesianQueuedUnit5EditPart.VISUAL_ID;
+ }
+ if (ComrelPackage.eINSTANCE.getParallelQueuedUnit().isSuperTypeOf(
+ domainElement.eClass())) {
+ return ParallelQueuedUnit6EditPart.VISUAL_ID;
+ }
+ if (ComrelPackage.eINSTANCE.getSingleQueuedUnit().isSuperTypeOf(
+ domainElement.eClass())) {
+ return SingleQueuedUnit6EditPart.VISUAL_ID;
+ }
+ if (ComrelPackage.eINSTANCE.getSequentialUnit().isSuperTypeOf(
+ domainElement.eClass())) {
+ return SequentialUnit6EditPart.VISUAL_ID;
+ }
+ if (ComrelPackage.eINSTANCE.getConditionalUnit().isSuperTypeOf(
+ domainElement.eClass())) {
+ return ConditionalUnit5EditPart.VISUAL_ID;
+ }
+ if (ComrelPackage.eINSTANCE.getAtomicUnit().isSuperTypeOf(
+ domainElement.eClass())) {
+ return AtomicUnit5EditPart.VISUAL_ID;
+ }
+ break;
+ case CartesianQueuedUnitCartesianQueuedUnitHelperUnitsCompartment5EditPart.VISUAL_ID:
+ if (ComrelPackage.eINSTANCE.getSingleFeatureUnit().isSuperTypeOf(
+ domainElement.eClass())) {
+ return SingleFeatureUnitEditPart.VISUAL_ID;
+ }
+ if (ComrelPackage.eINSTANCE.getMultiFeatureUnit().isSuperTypeOf(
+ domainElement.eClass())) {
+ return MultiFeatureUnitEditPart.VISUAL_ID;
+ }
+ if (ComrelPackage.eINSTANCE.getSingleFilterUnit().isSuperTypeOf(
+ domainElement.eClass())) {
+ return SingleFilterUnitEditPart.VISUAL_ID;
+ }
+ if (ComrelPackage.eINSTANCE.getMultiFilterUnit().isSuperTypeOf(
+ domainElement.eClass())) {
+ return MultiFilterUnitEditPart.VISUAL_ID;
+ }
+ break;
+ case CartesianQueuedUnitCartesianQueuedUnitRefactoringUnitCompartment5EditPart.VISUAL_ID:
+ if (ComrelPackage.eINSTANCE.getCartesianQueuedUnit().isSuperTypeOf(
+ domainElement.eClass())) {
+ return CartesianQueuedUnit2EditPart.VISUAL_ID;
+ }
+ if (ComrelPackage.eINSTANCE.getParallelQueuedUnit().isSuperTypeOf(
+ domainElement.eClass())) {
+ return ParallelQueuedUnit2EditPart.VISUAL_ID;
+ }
+ if (ComrelPackage.eINSTANCE.getSingleQueuedUnit().isSuperTypeOf(
+ domainElement.eClass())) {
+ return SingleQueuedUnit2EditPart.VISUAL_ID;
+ }
+ if (ComrelPackage.eINSTANCE.getSequentialUnit().isSuperTypeOf(
+ domainElement.eClass())) {
+ return SequentialUnit2EditPart.VISUAL_ID;
+ }
+ if (ComrelPackage.eINSTANCE.getConditionalUnit().isSuperTypeOf(
+ domainElement.eClass())) {
+ return ConditionalUnit2EditPart.VISUAL_ID;
+ }
+ if (ComrelPackage.eINSTANCE.getAtomicUnit().isSuperTypeOf(
+ domainElement.eClass())) {
+ return AtomicUnit2EditPart.VISUAL_ID;
+ }
+ break;
+ case ConditionalUnitConditionalUnitIfCompartmentEditPart.VISUAL_ID:
+ if (ComrelPackage.eINSTANCE.getConditionCheck().isSuperTypeOf(
+ domainElement.eClass())) {
+ return ConditionCheckEditPart.VISUAL_ID;
+ }
+ break;
+ case ConditionalUnitConditionalUnitHelperUnitsCompartmentEditPart.VISUAL_ID:
+ if (ComrelPackage.eINSTANCE.getSingleFeatureUnit().isSuperTypeOf(
+ domainElement.eClass())) {
+ return SingleFeatureUnit3EditPart.VISUAL_ID;
+ }
+ if (ComrelPackage.eINSTANCE.getMultiFeatureUnit().isSuperTypeOf(
+ domainElement.eClass())) {
+ return MultiFeatureUnit3EditPart.VISUAL_ID;
+ }
+ if (ComrelPackage.eINSTANCE.getSingleFilterUnit().isSuperTypeOf(
+ domainElement.eClass())) {
+ return SingleFilterUnit3EditPart.VISUAL_ID;
+ }
+ if (ComrelPackage.eINSTANCE.getMultiFilterUnit().isSuperTypeOf(
+ domainElement.eClass())) {
+ return MultiFilterUnit3EditPart.VISUAL_ID;
+ }
+ break;
+ case ConditionalUnitConditionalUnitThenCompartmentEditPart.VISUAL_ID:
+ if (ComrelPackage.eINSTANCE.getCartesianQueuedUnit().isSuperTypeOf(
+ domainElement.eClass())) {
+ return CartesianQueuedUnit6EditPart.VISUAL_ID;
+ }
+ if (ComrelPackage.eINSTANCE.getParallelQueuedUnit().isSuperTypeOf(
+ domainElement.eClass())) {
+ return ParallelQueuedUnit3EditPart.VISUAL_ID;
+ }
+ if (ComrelPackage.eINSTANCE.getSingleQueuedUnit().isSuperTypeOf(
+ domainElement.eClass())) {
+ return SingleQueuedUnit4EditPart.VISUAL_ID;
+ }
+ if (ComrelPackage.eINSTANCE.getSequentialUnit().isSuperTypeOf(
+ domainElement.eClass())) {
+ return SequentialUnit5EditPart.VISUAL_ID;
+ }
+ if (ComrelPackage.eINSTANCE.getConditionalUnit().isSuperTypeOf(
+ domainElement.eClass())) {
+ return ConditionalUnit6EditPart.VISUAL_ID;
+ }
+ if (ComrelPackage.eINSTANCE.getAtomicUnit().isSuperTypeOf(
+ domainElement.eClass())) {
+ return AtomicUnit6EditPart.VISUAL_ID;
+ }
+ break;
+ case ConditionalUnitConditionalUnitElseCompartmentEditPart.VISUAL_ID:
+ if (ComrelPackage.eINSTANCE.getCartesianQueuedUnit().isSuperTypeOf(
+ domainElement.eClass())) {
+ return CartesianQueuedUnit7EditPart.VISUAL_ID;
+ }
+ if (ComrelPackage.eINSTANCE.getParallelQueuedUnit().isSuperTypeOf(
+ domainElement.eClass())) {
+ return ParallelQueuedUnit7EditPart.VISUAL_ID;
+ }
+ if (ComrelPackage.eINSTANCE.getSingleQueuedUnit().isSuperTypeOf(
+ domainElement.eClass())) {
+ return SingleQueuedUnit7EditPart.VISUAL_ID;
+ }
+ if (ComrelPackage.eINSTANCE.getSequentialUnit().isSuperTypeOf(
+ domainElement.eClass())) {
+ return SequentialUnit7EditPart.VISUAL_ID;
+ }
+ if (ComrelPackage.eINSTANCE.getConditionalUnit().isSuperTypeOf(
+ domainElement.eClass())) {
+ return ConditionalUnit7EditPart.VISUAL_ID;
+ }
+ if (ComrelPackage.eINSTANCE.getAtomicUnit().isSuperTypeOf(
+ domainElement.eClass())) {
+ return AtomicUnit7EditPart.VISUAL_ID;
+ }
+ break;
+ case CartesianQueuedUnitCartesianQueuedUnitHelperUnitsCompartment6EditPart.VISUAL_ID:
+ if (ComrelPackage.eINSTANCE.getSingleFeatureUnit().isSuperTypeOf(
+ domainElement.eClass())) {
+ return SingleFeatureUnitEditPart.VISUAL_ID;
+ }
+ if (ComrelPackage.eINSTANCE.getMultiFeatureUnit().isSuperTypeOf(
+ domainElement.eClass())) {
+ return MultiFeatureUnitEditPart.VISUAL_ID;
+ }
+ if (ComrelPackage.eINSTANCE.getSingleFilterUnit().isSuperTypeOf(
+ domainElement.eClass())) {
+ return SingleFilterUnitEditPart.VISUAL_ID;
+ }
+ if (ComrelPackage.eINSTANCE.getMultiFilterUnit().isSuperTypeOf(
+ domainElement.eClass())) {
+ return MultiFilterUnitEditPart.VISUAL_ID;
+ }
+ break;
+ case CartesianQueuedUnitCartesianQueuedUnitRefactoringUnitCompartment6EditPart.VISUAL_ID:
+ if (ComrelPackage.eINSTANCE.getCartesianQueuedUnit().isSuperTypeOf(
+ domainElement.eClass())) {
+ return CartesianQueuedUnit2EditPart.VISUAL_ID;
+ }
+ if (ComrelPackage.eINSTANCE.getParallelQueuedUnit().isSuperTypeOf(
+ domainElement.eClass())) {
+ return ParallelQueuedUnit2EditPart.VISUAL_ID;
+ }
+ if (ComrelPackage.eINSTANCE.getSingleQueuedUnit().isSuperTypeOf(
+ domainElement.eClass())) {
+ return SingleQueuedUnit2EditPart.VISUAL_ID;
+ }
+ if (ComrelPackage.eINSTANCE.getSequentialUnit().isSuperTypeOf(
+ domainElement.eClass())) {
+ return SequentialUnit2EditPart.VISUAL_ID;
+ }
+ if (ComrelPackage.eINSTANCE.getConditionalUnit().isSuperTypeOf(
+ domainElement.eClass())) {
+ return ConditionalUnit2EditPart.VISUAL_ID;
+ }
+ if (ComrelPackage.eINSTANCE.getAtomicUnit().isSuperTypeOf(
+ domainElement.eClass())) {
+ return AtomicUnit2EditPart.VISUAL_ID;
+ }
+ break;
+ case ParallelQueuedUnitParallelQueuedUnitHelperUnitsCompartment2EditPart.VISUAL_ID:
+ if (ComrelPackage.eINSTANCE.getSingleFeatureUnit().isSuperTypeOf(
+ domainElement.eClass())) {
+ return SingleFeatureUnit2EditPart.VISUAL_ID;
+ }
+ if (ComrelPackage.eINSTANCE.getMultiFeatureUnit().isSuperTypeOf(
+ domainElement.eClass())) {
+ return MultiFeatureUnit2EditPart.VISUAL_ID;
+ }
+ if (ComrelPackage.eINSTANCE.getSingleFilterUnit().isSuperTypeOf(
+ domainElement.eClass())) {
+ return SingleFilterUnit2EditPart.VISUAL_ID;
+ }
+ if (ComrelPackage.eINSTANCE.getMultiFilterUnit().isSuperTypeOf(
+ domainElement.eClass())) {
+ return MultiFilterUnit2EditPart.VISUAL_ID;
+ }
+ break;
+ case ParallelQueuedUnitParallelQueuedUnitRefactoringUnitsCompartment2EditPart.VISUAL_ID:
+ if (ComrelPackage.eINSTANCE.getCartesianQueuedUnit().isSuperTypeOf(
+ domainElement.eClass())) {
+ return CartesianQueuedUnit3EditPart.VISUAL_ID;
+ }
+ if (ComrelPackage.eINSTANCE.getParallelQueuedUnit().isSuperTypeOf(
+ domainElement.eClass())) {
+ return ParallelQueuedUnit4EditPart.VISUAL_ID;
+ }
+ if (ComrelPackage.eINSTANCE.getSingleQueuedUnit().isSuperTypeOf(
+ domainElement.eClass())) {
+ return SingleQueuedUnit3EditPart.VISUAL_ID;
+ }
+ if (ComrelPackage.eINSTANCE.getSequentialUnit().isSuperTypeOf(
+ domainElement.eClass())) {
+ return SequentialUnit3EditPart.VISUAL_ID;
+ }
+ if (ComrelPackage.eINSTANCE.getConditionalUnit().isSuperTypeOf(
+ domainElement.eClass())) {
+ return ConditionalUnit3EditPart.VISUAL_ID;
+ }
+ if (ComrelPackage.eINSTANCE.getAtomicUnit().isSuperTypeOf(
+ domainElement.eClass())) {
+ return AtomicUnit3EditPart.VISUAL_ID;
+ }
+ break;
+ case ParallelQueuedUnitParallelQueuedUnitHelperUnitsCompartment3EditPart.VISUAL_ID:
+ if (ComrelPackage.eINSTANCE.getSingleFeatureUnit().isSuperTypeOf(
+ domainElement.eClass())) {
+ return SingleFeatureUnit2EditPart.VISUAL_ID;
+ }
+ if (ComrelPackage.eINSTANCE.getMultiFeatureUnit().isSuperTypeOf(
+ domainElement.eClass())) {
+ return MultiFeatureUnit2EditPart.VISUAL_ID;
+ }
+ if (ComrelPackage.eINSTANCE.getSingleFilterUnit().isSuperTypeOf(
+ domainElement.eClass())) {
+ return SingleFilterUnit2EditPart.VISUAL_ID;
+ }
+ if (ComrelPackage.eINSTANCE.getMultiFilterUnit().isSuperTypeOf(
+ domainElement.eClass())) {
+ return MultiFilterUnit2EditPart.VISUAL_ID;
+ }
+ break;
+ case ParallelQueuedUnitParallelQueuedUnitRefactoringUnitsCompartment3EditPart.VISUAL_ID:
+ if (ComrelPackage.eINSTANCE.getCartesianQueuedUnit().isSuperTypeOf(
+ domainElement.eClass())) {
+ return CartesianQueuedUnit3EditPart.VISUAL_ID;
+ }
+ if (ComrelPackage.eINSTANCE.getParallelQueuedUnit().isSuperTypeOf(
+ domainElement.eClass())) {
+ return ParallelQueuedUnit4EditPart.VISUAL_ID;
+ }
+ if (ComrelPackage.eINSTANCE.getSingleQueuedUnit().isSuperTypeOf(
+ domainElement.eClass())) {
+ return SingleQueuedUnit3EditPart.VISUAL_ID;
+ }
+ if (ComrelPackage.eINSTANCE.getSequentialUnit().isSuperTypeOf(
+ domainElement.eClass())) {
+ return SequentialUnit3EditPart.VISUAL_ID;
+ }
+ if (ComrelPackage.eINSTANCE.getConditionalUnit().isSuperTypeOf(
+ domainElement.eClass())) {
+ return ConditionalUnit3EditPart.VISUAL_ID;
+ }
+ if (ComrelPackage.eINSTANCE.getAtomicUnit().isSuperTypeOf(
+ domainElement.eClass())) {
+ return AtomicUnit3EditPart.VISUAL_ID;
+ }
+ break;
+ case SingleQueuedUnitSingleQueuedUnitHelperUnitsCompartment2EditPart.VISUAL_ID:
+ if (ComrelPackage.eINSTANCE.getSingleFeatureUnit().isSuperTypeOf(
+ domainElement.eClass())) {
+ return SingleFeatureUnit4EditPart.VISUAL_ID;
+ }
+ if (ComrelPackage.eINSTANCE.getMultiFeatureUnit().isSuperTypeOf(
+ domainElement.eClass())) {
+ return MultiFeatureUnit4EditPart.VISUAL_ID;
+ }
+ if (ComrelPackage.eINSTANCE.getSingleFilterUnit().isSuperTypeOf(
+ domainElement.eClass())) {
+ return SingleFilterUnit4EditPart.VISUAL_ID;
+ }
+ if (ComrelPackage.eINSTANCE.getMultiFilterUnit().isSuperTypeOf(
+ domainElement.eClass())) {
+ return MultiFilterUnit4EditPart.VISUAL_ID;
+ }
+ break;
+ case SingleQueuedUnitSingleQueuedUnitRefactoringUnitCompartment2EditPart.VISUAL_ID:
+ if (ComrelPackage.eINSTANCE.getCartesianQueuedUnit().isSuperTypeOf(
+ domainElement.eClass())) {
+ return CartesianQueuedUnit4EditPart.VISUAL_ID;
+ }
+ if (ComrelPackage.eINSTANCE.getParallelQueuedUnit().isSuperTypeOf(
+ domainElement.eClass())) {
+ return ParallelQueuedUnit5EditPart.VISUAL_ID;
+ }
+ if (ComrelPackage.eINSTANCE.getSingleQueuedUnit().isSuperTypeOf(
+ domainElement.eClass())) {
+ return SingleQueuedUnit5EditPart.VISUAL_ID;
+ }
+ if (ComrelPackage.eINSTANCE.getSequentialUnit().isSuperTypeOf(
+ domainElement.eClass())) {
+ return SequentialUnit4EditPart.VISUAL_ID;
+ }
+ if (ComrelPackage.eINSTANCE.getConditionalUnit().isSuperTypeOf(
+ domainElement.eClass())) {
+ return ConditionalUnit4EditPart.VISUAL_ID;
+ }
+ if (ComrelPackage.eINSTANCE.getAtomicUnit().isSuperTypeOf(
+ domainElement.eClass())) {
+ return AtomicUnit4EditPart.VISUAL_ID;
+ }
+ break;
+ case ParallelQueuedUnitParallelQueuedUnitHelperUnitsCompartment4EditPart.VISUAL_ID:
+ if (ComrelPackage.eINSTANCE.getSingleFeatureUnit().isSuperTypeOf(
+ domainElement.eClass())) {
+ return SingleFeatureUnit2EditPart.VISUAL_ID;
+ }
+ if (ComrelPackage.eINSTANCE.getMultiFeatureUnit().isSuperTypeOf(
+ domainElement.eClass())) {
+ return MultiFeatureUnit2EditPart.VISUAL_ID;
+ }
+ if (ComrelPackage.eINSTANCE.getSingleFilterUnit().isSuperTypeOf(
+ domainElement.eClass())) {
+ return SingleFilterUnit2EditPart.VISUAL_ID;
+ }
+ if (ComrelPackage.eINSTANCE.getMultiFilterUnit().isSuperTypeOf(
+ domainElement.eClass())) {
+ return MultiFilterUnit2EditPart.VISUAL_ID;
+ }
+ break;
+ case ParallelQueuedUnitParallelQueuedUnitRefactoringUnitsCompartment4EditPart.VISUAL_ID:
+ if (ComrelPackage.eINSTANCE.getCartesianQueuedUnit().isSuperTypeOf(
+ domainElement.eClass())) {
+ return CartesianQueuedUnit3EditPart.VISUAL_ID;
+ }
+ if (ComrelPackage.eINSTANCE.getParallelQueuedUnit().isSuperTypeOf(
+ domainElement.eClass())) {
+ return ParallelQueuedUnit4EditPart.VISUAL_ID;
+ }
+ if (ComrelPackage.eINSTANCE.getSingleQueuedUnit().isSuperTypeOf(
+ domainElement.eClass())) {
+ return SingleQueuedUnit3EditPart.VISUAL_ID;
+ }
+ if (ComrelPackage.eINSTANCE.getSequentialUnit().isSuperTypeOf(
+ domainElement.eClass())) {
+ return SequentialUnit3EditPart.VISUAL_ID;
+ }
+ if (ComrelPackage.eINSTANCE.getConditionalUnit().isSuperTypeOf(
+ domainElement.eClass())) {
+ return ConditionalUnit3EditPart.VISUAL_ID;
+ }
+ if (ComrelPackage.eINSTANCE.getAtomicUnit().isSuperTypeOf(
+ domainElement.eClass())) {
+ return AtomicUnit3EditPart.VISUAL_ID;
+ }
+ break;
+ case SequentialUnitSequentialUnitHelperUnitsCompartment2EditPart.VISUAL_ID:
+ if (ComrelPackage.eINSTANCE.getSingleFeatureUnit().isSuperTypeOf(
+ domainElement.eClass())) {
+ return SingleFeatureUnit5EditPart.VISUAL_ID;
+ }
+ if (ComrelPackage.eINSTANCE.getMultiFeatureUnit().isSuperTypeOf(
+ domainElement.eClass())) {
+ return MultiFeatureUnit5EditPart.VISUAL_ID;
+ }
+ if (ComrelPackage.eINSTANCE.getSingleFilterUnit().isSuperTypeOf(
+ domainElement.eClass())) {
+ return SingleFilterUnit5EditPart.VISUAL_ID;
+ }
+ if (ComrelPackage.eINSTANCE.getMultiFilterUnit().isSuperTypeOf(
+ domainElement.eClass())) {
+ return MultiFilterUnit5EditPart.VISUAL_ID;
+ }
+ break;
+ case SequentialUnitSequentialUnitRefactoringUnitsCompartment2EditPart.VISUAL_ID:
+ if (ComrelPackage.eINSTANCE.getCartesianQueuedUnit().isSuperTypeOf(
+ domainElement.eClass())) {
+ return CartesianQueuedUnit5EditPart.VISUAL_ID;
+ }
+ if (ComrelPackage.eINSTANCE.getParallelQueuedUnit().isSuperTypeOf(
+ domainElement.eClass())) {
+ return ParallelQueuedUnit6EditPart.VISUAL_ID;
+ }
+ if (ComrelPackage.eINSTANCE.getSingleQueuedUnit().isSuperTypeOf(
+ domainElement.eClass())) {
+ return SingleQueuedUnit6EditPart.VISUAL_ID;
+ }
+ if (ComrelPackage.eINSTANCE.getSequentialUnit().isSuperTypeOf(
+ domainElement.eClass())) {
+ return SequentialUnit6EditPart.VISUAL_ID;
+ }
+ if (ComrelPackage.eINSTANCE.getConditionalUnit().isSuperTypeOf(
+ domainElement.eClass())) {
+ return ConditionalUnit5EditPart.VISUAL_ID;
+ }
+ if (ComrelPackage.eINSTANCE.getAtomicUnit().isSuperTypeOf(
+ domainElement.eClass())) {
+ return AtomicUnit5EditPart.VISUAL_ID;
+ }
+ break;
+ case ParallelQueuedUnitParallelQueuedUnitHelperUnitsCompartment5EditPart.VISUAL_ID:
+ if (ComrelPackage.eINSTANCE.getSingleFeatureUnit().isSuperTypeOf(
+ domainElement.eClass())) {
+ return SingleFeatureUnit2EditPart.VISUAL_ID;
+ }
+ if (ComrelPackage.eINSTANCE.getMultiFeatureUnit().isSuperTypeOf(
+ domainElement.eClass())) {
+ return MultiFeatureUnit2EditPart.VISUAL_ID;
+ }
+ if (ComrelPackage.eINSTANCE.getSingleFilterUnit().isSuperTypeOf(
+ domainElement.eClass())) {
+ return SingleFilterUnit2EditPart.VISUAL_ID;
+ }
+ if (ComrelPackage.eINSTANCE.getMultiFilterUnit().isSuperTypeOf(
+ domainElement.eClass())) {
+ return MultiFilterUnit2EditPart.VISUAL_ID;
+ }
+ break;
+ case ParallelQueuedUnitParallelQueuedUnitRefactoringUnitsCompartment5EditPart.VISUAL_ID:
+ if (ComrelPackage.eINSTANCE.getCartesianQueuedUnit().isSuperTypeOf(
+ domainElement.eClass())) {
+ return CartesianQueuedUnit3EditPart.VISUAL_ID;
+ }
+ if (ComrelPackage.eINSTANCE.getParallelQueuedUnit().isSuperTypeOf(
+ domainElement.eClass())) {
+ return ParallelQueuedUnit4EditPart.VISUAL_ID;
+ }
+ if (ComrelPackage.eINSTANCE.getSingleQueuedUnit().isSuperTypeOf(
+ domainElement.eClass())) {
+ return SingleQueuedUnit3EditPart.VISUAL_ID;
+ }
+ if (ComrelPackage.eINSTANCE.getSequentialUnit().isSuperTypeOf(
+ domainElement.eClass())) {
+ return SequentialUnit3EditPart.VISUAL_ID;
+ }
+ if (ComrelPackage.eINSTANCE.getConditionalUnit().isSuperTypeOf(
+ domainElement.eClass())) {
+ return ConditionalUnit3EditPart.VISUAL_ID;
+ }
+ if (ComrelPackage.eINSTANCE.getAtomicUnit().isSuperTypeOf(
+ domainElement.eClass())) {
+ return AtomicUnit3EditPart.VISUAL_ID;
+ }
+ break;
+ case ConditionalUnitConditionalUnitIfCompartment2EditPart.VISUAL_ID:
+ if (ComrelPackage.eINSTANCE.getConditionCheck().isSuperTypeOf(
+ domainElement.eClass())) {
+ return ConditionCheckEditPart.VISUAL_ID;
+ }
+ break;
+ case ConditionalUnitConditionalUnitHelperUnitsCompartment2EditPart.VISUAL_ID:
+ if (ComrelPackage.eINSTANCE.getSingleFeatureUnit().isSuperTypeOf(
+ domainElement.eClass())) {
+ return SingleFeatureUnit3EditPart.VISUAL_ID;
+ }
+ if (ComrelPackage.eINSTANCE.getMultiFeatureUnit().isSuperTypeOf(
+ domainElement.eClass())) {
+ return MultiFeatureUnit3EditPart.VISUAL_ID;
+ }
+ if (ComrelPackage.eINSTANCE.getSingleFilterUnit().isSuperTypeOf(
+ domainElement.eClass())) {
+ return SingleFilterUnit3EditPart.VISUAL_ID;
+ }
+ if (ComrelPackage.eINSTANCE.getMultiFilterUnit().isSuperTypeOf(
+ domainElement.eClass())) {
+ return MultiFilterUnit3EditPart.VISUAL_ID;
+ }
+ break;
+ case ConditionalUnitConditionalUnitThenCompartment2EditPart.VISUAL_ID:
+ if (ComrelPackage.eINSTANCE.getCartesianQueuedUnit().isSuperTypeOf(
+ domainElement.eClass())) {
+ return CartesianQueuedUnit6EditPart.VISUAL_ID;
+ }
+ if (ComrelPackage.eINSTANCE.getParallelQueuedUnit().isSuperTypeOf(
+ domainElement.eClass())) {
+ return ParallelQueuedUnit3EditPart.VISUAL_ID;
+ }
+ if (ComrelPackage.eINSTANCE.getSingleQueuedUnit().isSuperTypeOf(
+ domainElement.eClass())) {
+ return SingleQueuedUnit4EditPart.VISUAL_ID;
+ }
+ if (ComrelPackage.eINSTANCE.getSequentialUnit().isSuperTypeOf(
+ domainElement.eClass())) {
+ return SequentialUnit5EditPart.VISUAL_ID;
+ }
+ if (ComrelPackage.eINSTANCE.getConditionalUnit().isSuperTypeOf(
+ domainElement.eClass())) {
+ return ConditionalUnit6EditPart.VISUAL_ID;
+ }
+ if (ComrelPackage.eINSTANCE.getAtomicUnit().isSuperTypeOf(
+ domainElement.eClass())) {
+ return AtomicUnit6EditPart.VISUAL_ID;
+ }
+ break;
+ case ConditionalUnitConditionalUnitElseCompartment2EditPart.VISUAL_ID:
+ if (ComrelPackage.eINSTANCE.getCartesianQueuedUnit().isSuperTypeOf(
+ domainElement.eClass())) {
+ return CartesianQueuedUnit7EditPart.VISUAL_ID;
+ }
+ if (ComrelPackage.eINSTANCE.getParallelQueuedUnit().isSuperTypeOf(
+ domainElement.eClass())) {
+ return ParallelQueuedUnit7EditPart.VISUAL_ID;
+ }
+ if (ComrelPackage.eINSTANCE.getSingleQueuedUnit().isSuperTypeOf(
+ domainElement.eClass())) {
+ return SingleQueuedUnit7EditPart.VISUAL_ID;
+ }
+ if (ComrelPackage.eINSTANCE.getSequentialUnit().isSuperTypeOf(
+ domainElement.eClass())) {
+ return SequentialUnit7EditPart.VISUAL_ID;
+ }
+ if (ComrelPackage.eINSTANCE.getConditionalUnit().isSuperTypeOf(
+ domainElement.eClass())) {
+ return ConditionalUnit7EditPart.VISUAL_ID;
+ }
+ if (ComrelPackage.eINSTANCE.getAtomicUnit().isSuperTypeOf(
+ domainElement.eClass())) {
+ return AtomicUnit7EditPart.VISUAL_ID;
+ }
+ break;
+ case CartesianQueuedUnitCartesianQueuedUnitHelperUnitsCompartment7EditPart.VISUAL_ID:
+ if (ComrelPackage.eINSTANCE.getSingleFeatureUnit().isSuperTypeOf(
+ domainElement.eClass())) {
+ return SingleFeatureUnitEditPart.VISUAL_ID;
+ }
+ if (ComrelPackage.eINSTANCE.getMultiFeatureUnit().isSuperTypeOf(
+ domainElement.eClass())) {
+ return MultiFeatureUnitEditPart.VISUAL_ID;
+ }
+ if (ComrelPackage.eINSTANCE.getSingleFilterUnit().isSuperTypeOf(
+ domainElement.eClass())) {
+ return SingleFilterUnitEditPart.VISUAL_ID;
+ }
+ if (ComrelPackage.eINSTANCE.getMultiFilterUnit().isSuperTypeOf(
+ domainElement.eClass())) {
+ return MultiFilterUnitEditPart.VISUAL_ID;
+ }
+ break;
+ case CartesianQueuedUnitCartesianQueuedUnitRefactoringUnitCompartment7EditPart.VISUAL_ID:
+ if (ComrelPackage.eINSTANCE.getCartesianQueuedUnit().isSuperTypeOf(
+ domainElement.eClass())) {
+ return CartesianQueuedUnit2EditPart.VISUAL_ID;
+ }
+ if (ComrelPackage.eINSTANCE.getParallelQueuedUnit().isSuperTypeOf(
+ domainElement.eClass())) {
+ return ParallelQueuedUnit2EditPart.VISUAL_ID;
+ }
+ if (ComrelPackage.eINSTANCE.getSingleQueuedUnit().isSuperTypeOf(
+ domainElement.eClass())) {
+ return SingleQueuedUnit2EditPart.VISUAL_ID;
+ }
+ if (ComrelPackage.eINSTANCE.getSequentialUnit().isSuperTypeOf(
+ domainElement.eClass())) {
+ return SequentialUnit2EditPart.VISUAL_ID;
+ }
+ if (ComrelPackage.eINSTANCE.getConditionalUnit().isSuperTypeOf(
+ domainElement.eClass())) {
+ return ConditionalUnit2EditPart.VISUAL_ID;
+ }
+ if (ComrelPackage.eINSTANCE.getAtomicUnit().isSuperTypeOf(
+ domainElement.eClass())) {
+ return AtomicUnit2EditPart.VISUAL_ID;
+ }
+ break;
+ case ParallelQueuedUnitParallelQueuedUnitHelperUnitsCompartment6EditPart.VISUAL_ID:
+ if (ComrelPackage.eINSTANCE.getSingleFeatureUnit().isSuperTypeOf(
+ domainElement.eClass())) {
+ return SingleFeatureUnit2EditPart.VISUAL_ID;
+ }
+ if (ComrelPackage.eINSTANCE.getMultiFeatureUnit().isSuperTypeOf(
+ domainElement.eClass())) {
+ return MultiFeatureUnit2EditPart.VISUAL_ID;
+ }
+ if (ComrelPackage.eINSTANCE.getSingleFilterUnit().isSuperTypeOf(
+ domainElement.eClass())) {
+ return SingleFilterUnit2EditPart.VISUAL_ID;
+ }
+ if (ComrelPackage.eINSTANCE.getMultiFilterUnit().isSuperTypeOf(
+ domainElement.eClass())) {
+ return MultiFilterUnit2EditPart.VISUAL_ID;
+ }
+ break;
+ case ParallelQueuedUnitParallelQueuedUnitRefactoringUnitsCompartment6EditPart.VISUAL_ID:
+ if (ComrelPackage.eINSTANCE.getCartesianQueuedUnit().isSuperTypeOf(
+ domainElement.eClass())) {
+ return CartesianQueuedUnit3EditPart.VISUAL_ID;
+ }
+ if (ComrelPackage.eINSTANCE.getParallelQueuedUnit().isSuperTypeOf(
+ domainElement.eClass())) {
+ return ParallelQueuedUnit4EditPart.VISUAL_ID;
+ }
+ if (ComrelPackage.eINSTANCE.getSingleQueuedUnit().isSuperTypeOf(
+ domainElement.eClass())) {
+ return SingleQueuedUnit3EditPart.VISUAL_ID;
+ }
+ if (ComrelPackage.eINSTANCE.getSequentialUnit().isSuperTypeOf(
+ domainElement.eClass())) {
+ return SequentialUnit3EditPart.VISUAL_ID;
+ }
+ if (ComrelPackage.eINSTANCE.getConditionalUnit().isSuperTypeOf(
+ domainElement.eClass())) {
+ return ConditionalUnit3EditPart.VISUAL_ID;
+ }
+ if (ComrelPackage.eINSTANCE.getAtomicUnit().isSuperTypeOf(
+ domainElement.eClass())) {
+ return AtomicUnit3EditPart.VISUAL_ID;
+ }
+ break;
+ case SingleQueuedUnitSingleQueuedUnitHelperUnitsCompartment3EditPart.VISUAL_ID:
+ if (ComrelPackage.eINSTANCE.getSingleFeatureUnit().isSuperTypeOf(
+ domainElement.eClass())) {
+ return SingleFeatureUnit4EditPart.VISUAL_ID;
+ }
+ if (ComrelPackage.eINSTANCE.getMultiFeatureUnit().isSuperTypeOf(
+ domainElement.eClass())) {
+ return MultiFeatureUnit4EditPart.VISUAL_ID;
+ }
+ if (ComrelPackage.eINSTANCE.getSingleFilterUnit().isSuperTypeOf(
+ domainElement.eClass())) {
+ return SingleFilterUnit4EditPart.VISUAL_ID;
+ }
+ if (ComrelPackage.eINSTANCE.getMultiFilterUnit().isSuperTypeOf(
+ domainElement.eClass())) {
+ return MultiFilterUnit4EditPart.VISUAL_ID;
+ }
+ break;
+ case SingleQueuedUnitSingleQueuedUnitRefactoringUnitCompartment3EditPart.VISUAL_ID:
+ if (ComrelPackage.eINSTANCE.getCartesianQueuedUnit().isSuperTypeOf(
+ domainElement.eClass())) {
+ return CartesianQueuedUnit4EditPart.VISUAL_ID;
+ }
+ if (ComrelPackage.eINSTANCE.getParallelQueuedUnit().isSuperTypeOf(
+ domainElement.eClass())) {
+ return ParallelQueuedUnit5EditPart.VISUAL_ID;
+ }
+ if (ComrelPackage.eINSTANCE.getSingleQueuedUnit().isSuperTypeOf(
+ domainElement.eClass())) {
+ return SingleQueuedUnit5EditPart.VISUAL_ID;
+ }
+ if (ComrelPackage.eINSTANCE.getSequentialUnit().isSuperTypeOf(
+ domainElement.eClass())) {
+ return SequentialUnit4EditPart.VISUAL_ID;
+ }
+ if (ComrelPackage.eINSTANCE.getConditionalUnit().isSuperTypeOf(
+ domainElement.eClass())) {
+ return ConditionalUnit4EditPart.VISUAL_ID;
+ }
+ if (ComrelPackage.eINSTANCE.getAtomicUnit().isSuperTypeOf(
+ domainElement.eClass())) {
+ return AtomicUnit4EditPart.VISUAL_ID;
+ }
+ break;
+ case SingleQueuedUnitSingleQueuedUnitHelperUnitsCompartment4EditPart.VISUAL_ID:
+ if (ComrelPackage.eINSTANCE.getSingleFeatureUnit().isSuperTypeOf(
+ domainElement.eClass())) {
+ return SingleFeatureUnit4EditPart.VISUAL_ID;
+ }
+ if (ComrelPackage.eINSTANCE.getMultiFeatureUnit().isSuperTypeOf(
+ domainElement.eClass())) {
+ return MultiFeatureUnit4EditPart.VISUAL_ID;
+ }
+ if (ComrelPackage.eINSTANCE.getSingleFilterUnit().isSuperTypeOf(
+ domainElement.eClass())) {
+ return SingleFilterUnit4EditPart.VISUAL_ID;
+ }
+ if (ComrelPackage.eINSTANCE.getMultiFilterUnit().isSuperTypeOf(
+ domainElement.eClass())) {
+ return MultiFilterUnit4EditPart.VISUAL_ID;
+ }
+ break;
+ case SingleQueuedUnitSingleQueuedUnitRefactoringUnitCompartment4EditPart.VISUAL_ID:
+ if (ComrelPackage.eINSTANCE.getCartesianQueuedUnit().isSuperTypeOf(
+ domainElement.eClass())) {
+ return CartesianQueuedUnit4EditPart.VISUAL_ID;
+ }
+ if (ComrelPackage.eINSTANCE.getParallelQueuedUnit().isSuperTypeOf(
+ domainElement.eClass())) {
+ return ParallelQueuedUnit5EditPart.VISUAL_ID;
+ }
+ if (ComrelPackage.eINSTANCE.getSingleQueuedUnit().isSuperTypeOf(
+ domainElement.eClass())) {
+ return SingleQueuedUnit5EditPart.VISUAL_ID;
+ }
+ if (ComrelPackage.eINSTANCE.getSequentialUnit().isSuperTypeOf(
+ domainElement.eClass())) {
+ return SequentialUnit4EditPart.VISUAL_ID;
+ }
+ if (ComrelPackage.eINSTANCE.getConditionalUnit().isSuperTypeOf(
+ domainElement.eClass())) {
+ return ConditionalUnit4EditPart.VISUAL_ID;
+ }
+ if (ComrelPackage.eINSTANCE.getAtomicUnit().isSuperTypeOf(
+ domainElement.eClass())) {
+ return AtomicUnit4EditPart.VISUAL_ID;
+ }
+ break;
+ case SequentialUnitSequentialUnitHelperUnitsCompartment3EditPart.VISUAL_ID:
+ if (ComrelPackage.eINSTANCE.getSingleFeatureUnit().isSuperTypeOf(
+ domainElement.eClass())) {
+ return SingleFeatureUnit5EditPart.VISUAL_ID;
+ }
+ if (ComrelPackage.eINSTANCE.getMultiFeatureUnit().isSuperTypeOf(
+ domainElement.eClass())) {
+ return MultiFeatureUnit5EditPart.VISUAL_ID;
+ }
+ if (ComrelPackage.eINSTANCE.getSingleFilterUnit().isSuperTypeOf(
+ domainElement.eClass())) {
+ return SingleFilterUnit5EditPart.VISUAL_ID;
+ }
+ if (ComrelPackage.eINSTANCE.getMultiFilterUnit().isSuperTypeOf(
+ domainElement.eClass())) {
+ return MultiFilterUnit5EditPart.VISUAL_ID;
+ }
+ break;
+ case SequentialUnitSequentialUnitRefactoringUnitsCompartment3EditPart.VISUAL_ID:
+ if (ComrelPackage.eINSTANCE.getCartesianQueuedUnit().isSuperTypeOf(
+ domainElement.eClass())) {
+ return CartesianQueuedUnit5EditPart.VISUAL_ID;
+ }
+ if (ComrelPackage.eINSTANCE.getParallelQueuedUnit().isSuperTypeOf(
+ domainElement.eClass())) {
+ return ParallelQueuedUnit6EditPart.VISUAL_ID;
+ }
+ if (ComrelPackage.eINSTANCE.getSingleQueuedUnit().isSuperTypeOf(
+ domainElement.eClass())) {
+ return SingleQueuedUnit6EditPart.VISUAL_ID;
+ }
+ if (ComrelPackage.eINSTANCE.getSequentialUnit().isSuperTypeOf(
+ domainElement.eClass())) {
+ return SequentialUnit6EditPart.VISUAL_ID;
+ }
+ if (ComrelPackage.eINSTANCE.getConditionalUnit().isSuperTypeOf(
+ domainElement.eClass())) {
+ return ConditionalUnit5EditPart.VISUAL_ID;
+ }
+ if (ComrelPackage.eINSTANCE.getAtomicUnit().isSuperTypeOf(
+ domainElement.eClass())) {
+ return AtomicUnit5EditPart.VISUAL_ID;
+ }
+ break;
+ case SingleQueuedUnitSingleQueuedUnitHelperUnitsCompartment5EditPart.VISUAL_ID:
+ if (ComrelPackage.eINSTANCE.getSingleFeatureUnit().isSuperTypeOf(
+ domainElement.eClass())) {
+ return SingleFeatureUnit4EditPart.VISUAL_ID;
+ }
+ if (ComrelPackage.eINSTANCE.getMultiFeatureUnit().isSuperTypeOf(
+ domainElement.eClass())) {
+ return MultiFeatureUnit4EditPart.VISUAL_ID;
+ }
+ if (ComrelPackage.eINSTANCE.getSingleFilterUnit().isSuperTypeOf(
+ domainElement.eClass())) {
+ return SingleFilterUnit4EditPart.VISUAL_ID;
+ }
+ if (ComrelPackage.eINSTANCE.getMultiFilterUnit().isSuperTypeOf(
+ domainElement.eClass())) {
+ return MultiFilterUnit4EditPart.VISUAL_ID;
+ }
+ break;
+ case SingleQueuedUnitSingleQueuedUnitRefactoringUnitCompartment5EditPart.VISUAL_ID:
+ if (ComrelPackage.eINSTANCE.getCartesianQueuedUnit().isSuperTypeOf(
+ domainElement.eClass())) {
+ return CartesianQueuedUnit4EditPart.VISUAL_ID;
+ }
+ if (ComrelPackage.eINSTANCE.getParallelQueuedUnit().isSuperTypeOf(
+ domainElement.eClass())) {
+ return ParallelQueuedUnit5EditPart.VISUAL_ID;
+ }
+ if (ComrelPackage.eINSTANCE.getSingleQueuedUnit().isSuperTypeOf(
+ domainElement.eClass())) {
+ return SingleQueuedUnit5EditPart.VISUAL_ID;
+ }
+ if (ComrelPackage.eINSTANCE.getSequentialUnit().isSuperTypeOf(
+ domainElement.eClass())) {
+ return SequentialUnit4EditPart.VISUAL_ID;
+ }
+ if (ComrelPackage.eINSTANCE.getConditionalUnit().isSuperTypeOf(
+ domainElement.eClass())) {
+ return ConditionalUnit4EditPart.VISUAL_ID;
+ }
+ if (ComrelPackage.eINSTANCE.getAtomicUnit().isSuperTypeOf(
+ domainElement.eClass())) {
+ return AtomicUnit4EditPart.VISUAL_ID;
+ }
+ break;
+ case ConditionalUnitConditionalUnitIfCompartment3EditPart.VISUAL_ID:
+ if (ComrelPackage.eINSTANCE.getConditionCheck().isSuperTypeOf(
+ domainElement.eClass())) {
+ return ConditionCheckEditPart.VISUAL_ID;
+ }
+ break;
+ case ConditionalUnitConditionalUnitHelperUnitsCompartment3EditPart.VISUAL_ID:
+ if (ComrelPackage.eINSTANCE.getSingleFeatureUnit().isSuperTypeOf(
+ domainElement.eClass())) {
+ return SingleFeatureUnit3EditPart.VISUAL_ID;
+ }
+ if (ComrelPackage.eINSTANCE.getMultiFeatureUnit().isSuperTypeOf(
+ domainElement.eClass())) {
+ return MultiFeatureUnit3EditPart.VISUAL_ID;
+ }
+ if (ComrelPackage.eINSTANCE.getSingleFilterUnit().isSuperTypeOf(
+ domainElement.eClass())) {
+ return SingleFilterUnit3EditPart.VISUAL_ID;
+ }
+ if (ComrelPackage.eINSTANCE.getMultiFilterUnit().isSuperTypeOf(
+ domainElement.eClass())) {
+ return MultiFilterUnit3EditPart.VISUAL_ID;
+ }
+ break;
+ case ConditionalUnitConditionalUnitThenCompartment3EditPart.VISUAL_ID:
+ if (ComrelPackage.eINSTANCE.getCartesianQueuedUnit().isSuperTypeOf(
+ domainElement.eClass())) {
+ return CartesianQueuedUnit6EditPart.VISUAL_ID;
+ }
+ if (ComrelPackage.eINSTANCE.getParallelQueuedUnit().isSuperTypeOf(
+ domainElement.eClass())) {
+ return ParallelQueuedUnit3EditPart.VISUAL_ID;
+ }
+ if (ComrelPackage.eINSTANCE.getSingleQueuedUnit().isSuperTypeOf(
+ domainElement.eClass())) {
+ return SingleQueuedUnit4EditPart.VISUAL_ID;
+ }
+ if (ComrelPackage.eINSTANCE.getSequentialUnit().isSuperTypeOf(
+ domainElement.eClass())) {
+ return SequentialUnit5EditPart.VISUAL_ID;
+ }
+ if (ComrelPackage.eINSTANCE.getConditionalUnit().isSuperTypeOf(
+ domainElement.eClass())) {
+ return ConditionalUnit6EditPart.VISUAL_ID;
+ }
+ if (ComrelPackage.eINSTANCE.getAtomicUnit().isSuperTypeOf(
+ domainElement.eClass())) {
+ return AtomicUnit6EditPart.VISUAL_ID;
+ }
+ break;
+ case ConditionalUnitConditionalUnitElseCompartment3EditPart.VISUAL_ID:
+ if (ComrelPackage.eINSTANCE.getCartesianQueuedUnit().isSuperTypeOf(
+ domainElement.eClass())) {
+ return CartesianQueuedUnit7EditPart.VISUAL_ID;
+ }
+ if (ComrelPackage.eINSTANCE.getParallelQueuedUnit().isSuperTypeOf(
+ domainElement.eClass())) {
+ return ParallelQueuedUnit7EditPart.VISUAL_ID;
+ }
+ if (ComrelPackage.eINSTANCE.getSingleQueuedUnit().isSuperTypeOf(
+ domainElement.eClass())) {
+ return SingleQueuedUnit7EditPart.VISUAL_ID;
+ }
+ if (ComrelPackage.eINSTANCE.getSequentialUnit().isSuperTypeOf(
+ domainElement.eClass())) {
+ return SequentialUnit7EditPart.VISUAL_ID;
+ }
+ if (ComrelPackage.eINSTANCE.getConditionalUnit().isSuperTypeOf(
+ domainElement.eClass())) {
+ return ConditionalUnit7EditPart.VISUAL_ID;
+ }
+ if (ComrelPackage.eINSTANCE.getAtomicUnit().isSuperTypeOf(
+ domainElement.eClass())) {
+ return AtomicUnit7EditPart.VISUAL_ID;
+ }
+ break;
+ case SingleQueuedUnitSingleQueuedUnitHelperUnitsCompartment6EditPart.VISUAL_ID:
+ if (ComrelPackage.eINSTANCE.getSingleFeatureUnit().isSuperTypeOf(
+ domainElement.eClass())) {
+ return SingleFeatureUnit4EditPart.VISUAL_ID;
+ }
+ if (ComrelPackage.eINSTANCE.getMultiFeatureUnit().isSuperTypeOf(
+ domainElement.eClass())) {
+ return MultiFeatureUnit4EditPart.VISUAL_ID;
+ }
+ if (ComrelPackage.eINSTANCE.getSingleFilterUnit().isSuperTypeOf(
+ domainElement.eClass())) {
+ return SingleFilterUnit4EditPart.VISUAL_ID;
+ }
+ if (ComrelPackage.eINSTANCE.getMultiFilterUnit().isSuperTypeOf(
+ domainElement.eClass())) {
+ return MultiFilterUnit4EditPart.VISUAL_ID;
+ }
+ break;
+ case SingleQueuedUnitSingleQueuedUnitRefactoringUnitCompartment6EditPart.VISUAL_ID:
+ if (ComrelPackage.eINSTANCE.getCartesianQueuedUnit().isSuperTypeOf(
+ domainElement.eClass())) {
+ return CartesianQueuedUnit4EditPart.VISUAL_ID;
+ }
+ if (ComrelPackage.eINSTANCE.getParallelQueuedUnit().isSuperTypeOf(
+ domainElement.eClass())) {
+ return ParallelQueuedUnit5EditPart.VISUAL_ID;
+ }
+ if (ComrelPackage.eINSTANCE.getSingleQueuedUnit().isSuperTypeOf(
+ domainElement.eClass())) {
+ return SingleQueuedUnit5EditPart.VISUAL_ID;
+ }
+ if (ComrelPackage.eINSTANCE.getSequentialUnit().isSuperTypeOf(
+ domainElement.eClass())) {
+ return SequentialUnit4EditPart.VISUAL_ID;
+ }
+ if (ComrelPackage.eINSTANCE.getConditionalUnit().isSuperTypeOf(
+ domainElement.eClass())) {
+ return ConditionalUnit4EditPart.VISUAL_ID;
+ }
+ if (ComrelPackage.eINSTANCE.getAtomicUnit().isSuperTypeOf(
+ domainElement.eClass())) {
+ return AtomicUnit4EditPart.VISUAL_ID;
+ }
+ break;
+ case SequentialUnitSequentialUnitHelperUnitsCompartment4EditPart.VISUAL_ID:
+ if (ComrelPackage.eINSTANCE.getSingleFeatureUnit().isSuperTypeOf(
+ domainElement.eClass())) {
+ return SingleFeatureUnit5EditPart.VISUAL_ID;
+ }
+ if (ComrelPackage.eINSTANCE.getMultiFeatureUnit().isSuperTypeOf(
+ domainElement.eClass())) {
+ return MultiFeatureUnit5EditPart.VISUAL_ID;
+ }
+ if (ComrelPackage.eINSTANCE.getSingleFilterUnit().isSuperTypeOf(
+ domainElement.eClass())) {
+ return SingleFilterUnit5EditPart.VISUAL_ID;
+ }
+ if (ComrelPackage.eINSTANCE.getMultiFilterUnit().isSuperTypeOf(
+ domainElement.eClass())) {
+ return MultiFilterUnit5EditPart.VISUAL_ID;
+ }
+ break;
+ case SequentialUnitSequentialUnitRefactoringUnitsCompartment4EditPart.VISUAL_ID:
+ if (ComrelPackage.eINSTANCE.getCartesianQueuedUnit().isSuperTypeOf(
+ domainElement.eClass())) {
+ return CartesianQueuedUnit5EditPart.VISUAL_ID;
+ }
+ if (ComrelPackage.eINSTANCE.getParallelQueuedUnit().isSuperTypeOf(
+ domainElement.eClass())) {
+ return ParallelQueuedUnit6EditPart.VISUAL_ID;
+ }
+ if (ComrelPackage.eINSTANCE.getSingleQueuedUnit().isSuperTypeOf(
+ domainElement.eClass())) {
+ return SingleQueuedUnit6EditPart.VISUAL_ID;
+ }
+ if (ComrelPackage.eINSTANCE.getSequentialUnit().isSuperTypeOf(
+ domainElement.eClass())) {
+ return SequentialUnit6EditPart.VISUAL_ID;
+ }
+ if (ComrelPackage.eINSTANCE.getConditionalUnit().isSuperTypeOf(
+ domainElement.eClass())) {
+ return ConditionalUnit5EditPart.VISUAL_ID;
+ }
+ if (ComrelPackage.eINSTANCE.getAtomicUnit().isSuperTypeOf(
+ domainElement.eClass())) {
+ return AtomicUnit5EditPart.VISUAL_ID;
+ }
+ break;
+ case SequentialUnitSequentialUnitHelperUnitsCompartment5EditPart.VISUAL_ID:
+ if (ComrelPackage.eINSTANCE.getSingleFeatureUnit().isSuperTypeOf(
+ domainElement.eClass())) {
+ return SingleFeatureUnit5EditPart.VISUAL_ID;
+ }
+ if (ComrelPackage.eINSTANCE.getMultiFeatureUnit().isSuperTypeOf(
+ domainElement.eClass())) {
+ return MultiFeatureUnit5EditPart.VISUAL_ID;
+ }
+ if (ComrelPackage.eINSTANCE.getSingleFilterUnit().isSuperTypeOf(
+ domainElement.eClass())) {
+ return SingleFilterUnit5EditPart.VISUAL_ID;
+ }
+ if (ComrelPackage.eINSTANCE.getMultiFilterUnit().isSuperTypeOf(
+ domainElement.eClass())) {
+ return MultiFilterUnit5EditPart.VISUAL_ID;
+ }
+ break;
+ case SequentialUnitSequentialUnitRefactoringUnitsCompartment5EditPart.VISUAL_ID:
+ if (ComrelPackage.eINSTANCE.getCartesianQueuedUnit().isSuperTypeOf(
+ domainElement.eClass())) {
+ return CartesianQueuedUnit5EditPart.VISUAL_ID;
+ }
+ if (ComrelPackage.eINSTANCE.getParallelQueuedUnit().isSuperTypeOf(
+ domainElement.eClass())) {
+ return ParallelQueuedUnit6EditPart.VISUAL_ID;
+ }
+ if (ComrelPackage.eINSTANCE.getSingleQueuedUnit().isSuperTypeOf(
+ domainElement.eClass())) {
+ return SingleQueuedUnit6EditPart.VISUAL_ID;
+ }
+ if (ComrelPackage.eINSTANCE.getSequentialUnit().isSuperTypeOf(
+ domainElement.eClass())) {
+ return SequentialUnit6EditPart.VISUAL_ID;
+ }
+ if (ComrelPackage.eINSTANCE.getConditionalUnit().isSuperTypeOf(
+ domainElement.eClass())) {
+ return ConditionalUnit5EditPart.VISUAL_ID;
+ }
+ if (ComrelPackage.eINSTANCE.getAtomicUnit().isSuperTypeOf(
+ domainElement.eClass())) {
+ return AtomicUnit5EditPart.VISUAL_ID;
+ }
+ break;
+ case ConditionalUnitConditionalUnitIfCompartment4EditPart.VISUAL_ID:
+ if (ComrelPackage.eINSTANCE.getConditionCheck().isSuperTypeOf(
+ domainElement.eClass())) {
+ return ConditionCheckEditPart.VISUAL_ID;
+ }
+ break;
+ case ConditionalUnitConditionalUnitHelperUnitsCompartment4EditPart.VISUAL_ID:
+ if (ComrelPackage.eINSTANCE.getSingleFeatureUnit().isSuperTypeOf(
+ domainElement.eClass())) {
+ return SingleFeatureUnit3EditPart.VISUAL_ID;
+ }
+ if (ComrelPackage.eINSTANCE.getMultiFeatureUnit().isSuperTypeOf(
+ domainElement.eClass())) {
+ return MultiFeatureUnit3EditPart.VISUAL_ID;
+ }
+ if (ComrelPackage.eINSTANCE.getSingleFilterUnit().isSuperTypeOf(
+ domainElement.eClass())) {
+ return SingleFilterUnit3EditPart.VISUAL_ID;
+ }
+ if (ComrelPackage.eINSTANCE.getMultiFilterUnit().isSuperTypeOf(
+ domainElement.eClass())) {
+ return MultiFilterUnit3EditPart.VISUAL_ID;
+ }
+ break;
+ case ConditionalUnitConditionalUnitThenCompartment4EditPart.VISUAL_ID:
+ if (ComrelPackage.eINSTANCE.getCartesianQueuedUnit().isSuperTypeOf(
+ domainElement.eClass())) {
+ return CartesianQueuedUnit6EditPart.VISUAL_ID;
+ }
+ if (ComrelPackage.eINSTANCE.getParallelQueuedUnit().isSuperTypeOf(
+ domainElement.eClass())) {
+ return ParallelQueuedUnit3EditPart.VISUAL_ID;
+ }
+ if (ComrelPackage.eINSTANCE.getSingleQueuedUnit().isSuperTypeOf(
+ domainElement.eClass())) {
+ return SingleQueuedUnit4EditPart.VISUAL_ID;
+ }
+ if (ComrelPackage.eINSTANCE.getSequentialUnit().isSuperTypeOf(
+ domainElement.eClass())) {
+ return SequentialUnit5EditPart.VISUAL_ID;
+ }
+ if (ComrelPackage.eINSTANCE.getConditionalUnit().isSuperTypeOf(
+ domainElement.eClass())) {
+ return ConditionalUnit6EditPart.VISUAL_ID;
+ }
+ if (ComrelPackage.eINSTANCE.getAtomicUnit().isSuperTypeOf(
+ domainElement.eClass())) {
+ return AtomicUnit6EditPart.VISUAL_ID;
+ }
+ break;
+ case ConditionalUnitConditionalUnitElseCompartment4EditPart.VISUAL_ID:
+ if (ComrelPackage.eINSTANCE.getCartesianQueuedUnit().isSuperTypeOf(
+ domainElement.eClass())) {
+ return CartesianQueuedUnit7EditPart.VISUAL_ID;
+ }
+ if (ComrelPackage.eINSTANCE.getParallelQueuedUnit().isSuperTypeOf(
+ domainElement.eClass())) {
+ return ParallelQueuedUnit7EditPart.VISUAL_ID;
+ }
+ if (ComrelPackage.eINSTANCE.getSingleQueuedUnit().isSuperTypeOf(
+ domainElement.eClass())) {
+ return SingleQueuedUnit7EditPart.VISUAL_ID;
+ }
+ if (ComrelPackage.eINSTANCE.getSequentialUnit().isSuperTypeOf(
+ domainElement.eClass())) {
+ return SequentialUnit7EditPart.VISUAL_ID;
+ }
+ if (ComrelPackage.eINSTANCE.getConditionalUnit().isSuperTypeOf(
+ domainElement.eClass())) {
+ return ConditionalUnit7EditPart.VISUAL_ID;
+ }
+ if (ComrelPackage.eINSTANCE.getAtomicUnit().isSuperTypeOf(
+ domainElement.eClass())) {
+ return AtomicUnit7EditPart.VISUAL_ID;
+ }
+ break;
+ case ConditionalUnitConditionalUnitIfCompartment5EditPart.VISUAL_ID:
+ if (ComrelPackage.eINSTANCE.getConditionCheck().isSuperTypeOf(
+ domainElement.eClass())) {
+ return ConditionCheckEditPart.VISUAL_ID;
+ }
+ break;
+ case ConditionalUnitConditionalUnitHelperUnitsCompartment5EditPart.VISUAL_ID:
+ if (ComrelPackage.eINSTANCE.getSingleFeatureUnit().isSuperTypeOf(
+ domainElement.eClass())) {
+ return SingleFeatureUnit3EditPart.VISUAL_ID;
+ }
+ if (ComrelPackage.eINSTANCE.getMultiFeatureUnit().isSuperTypeOf(
+ domainElement.eClass())) {
+ return MultiFeatureUnit3EditPart.VISUAL_ID;
+ }
+ if (ComrelPackage.eINSTANCE.getSingleFilterUnit().isSuperTypeOf(
+ domainElement.eClass())) {
+ return SingleFilterUnit3EditPart.VISUAL_ID;
+ }
+ if (ComrelPackage.eINSTANCE.getMultiFilterUnit().isSuperTypeOf(
+ domainElement.eClass())) {
+ return MultiFilterUnit3EditPart.VISUAL_ID;
+ }
+ break;
+ case ConditionalUnitConditionalUnitThenCompartment5EditPart.VISUAL_ID:
+ if (ComrelPackage.eINSTANCE.getCartesianQueuedUnit().isSuperTypeOf(
+ domainElement.eClass())) {
+ return CartesianQueuedUnit6EditPart.VISUAL_ID;
+ }
+ if (ComrelPackage.eINSTANCE.getParallelQueuedUnit().isSuperTypeOf(
+ domainElement.eClass())) {
+ return ParallelQueuedUnit3EditPart.VISUAL_ID;
+ }
+ if (ComrelPackage.eINSTANCE.getSingleQueuedUnit().isSuperTypeOf(
+ domainElement.eClass())) {
+ return SingleQueuedUnit4EditPart.VISUAL_ID;
+ }
+ if (ComrelPackage.eINSTANCE.getSequentialUnit().isSuperTypeOf(
+ domainElement.eClass())) {
+ return SequentialUnit5EditPart.VISUAL_ID;
+ }
+ if (ComrelPackage.eINSTANCE.getConditionalUnit().isSuperTypeOf(
+ domainElement.eClass())) {
+ return ConditionalUnit6EditPart.VISUAL_ID;
+ }
+ if (ComrelPackage.eINSTANCE.getAtomicUnit().isSuperTypeOf(
+ domainElement.eClass())) {
+ return AtomicUnit6EditPart.VISUAL_ID;
+ }
+ break;
+ case ConditionalUnitConditionalUnitElseCompartment5EditPart.VISUAL_ID:
+ if (ComrelPackage.eINSTANCE.getCartesianQueuedUnit().isSuperTypeOf(
+ domainElement.eClass())) {
+ return CartesianQueuedUnit7EditPart.VISUAL_ID;
+ }
+ if (ComrelPackage.eINSTANCE.getParallelQueuedUnit().isSuperTypeOf(
+ domainElement.eClass())) {
+ return ParallelQueuedUnit7EditPart.VISUAL_ID;
+ }
+ if (ComrelPackage.eINSTANCE.getSingleQueuedUnit().isSuperTypeOf(
+ domainElement.eClass())) {
+ return SingleQueuedUnit7EditPart.VISUAL_ID;
+ }
+ if (ComrelPackage.eINSTANCE.getSequentialUnit().isSuperTypeOf(
+ domainElement.eClass())) {
+ return SequentialUnit7EditPart.VISUAL_ID;
+ }
+ if (ComrelPackage.eINSTANCE.getConditionalUnit().isSuperTypeOf(
+ domainElement.eClass())) {
+ return ConditionalUnit7EditPart.VISUAL_ID;
+ }
+ if (ComrelPackage.eINSTANCE.getAtomicUnit().isSuperTypeOf(
+ domainElement.eClass())) {
+ return AtomicUnit7EditPart.VISUAL_ID;
+ }
+ break;
+ case SequentialUnitSequentialUnitHelperUnitsCompartment6EditPart.VISUAL_ID:
+ if (ComrelPackage.eINSTANCE.getSingleFeatureUnit().isSuperTypeOf(
+ domainElement.eClass())) {
+ return SingleFeatureUnit5EditPart.VISUAL_ID;
+ }
+ if (ComrelPackage.eINSTANCE.getMultiFeatureUnit().isSuperTypeOf(
+ domainElement.eClass())) {
+ return MultiFeatureUnit5EditPart.VISUAL_ID;
+ }
+ if (ComrelPackage.eINSTANCE.getSingleFilterUnit().isSuperTypeOf(
+ domainElement.eClass())) {
+ return SingleFilterUnit5EditPart.VISUAL_ID;
+ }
+ if (ComrelPackage.eINSTANCE.getMultiFilterUnit().isSuperTypeOf(
+ domainElement.eClass())) {
+ return MultiFilterUnit5EditPart.VISUAL_ID;
+ }
+ break;
+ case SequentialUnitSequentialUnitRefactoringUnitsCompartment6EditPart.VISUAL_ID:
+ if (ComrelPackage.eINSTANCE.getCartesianQueuedUnit().isSuperTypeOf(
+ domainElement.eClass())) {
+ return CartesianQueuedUnit5EditPart.VISUAL_ID;
+ }
+ if (ComrelPackage.eINSTANCE.getParallelQueuedUnit().isSuperTypeOf(
+ domainElement.eClass())) {
+ return ParallelQueuedUnit6EditPart.VISUAL_ID;
+ }
+ if (ComrelPackage.eINSTANCE.getSingleQueuedUnit().isSuperTypeOf(
+ domainElement.eClass())) {
+ return SingleQueuedUnit6EditPart.VISUAL_ID;
+ }
+ if (ComrelPackage.eINSTANCE.getSequentialUnit().isSuperTypeOf(
+ domainElement.eClass())) {
+ return SequentialUnit6EditPart.VISUAL_ID;
+ }
+ if (ComrelPackage.eINSTANCE.getConditionalUnit().isSuperTypeOf(
+ domainElement.eClass())) {
+ return ConditionalUnit5EditPart.VISUAL_ID;
+ }
+ if (ComrelPackage.eINSTANCE.getAtomicUnit().isSuperTypeOf(
+ domainElement.eClass())) {
+ return AtomicUnit5EditPart.VISUAL_ID;
+ }
+ break;
+ case ConditionalUnitConditionalUnitIfCompartment6EditPart.VISUAL_ID:
+ if (ComrelPackage.eINSTANCE.getConditionCheck().isSuperTypeOf(
+ domainElement.eClass())) {
+ return ConditionCheckEditPart.VISUAL_ID;
+ }
+ break;
+ case ConditionalUnitConditionalUnitHelperUnitsCompartment6EditPart.VISUAL_ID:
+ if (ComrelPackage.eINSTANCE.getSingleFeatureUnit().isSuperTypeOf(
+ domainElement.eClass())) {
+ return SingleFeatureUnit3EditPart.VISUAL_ID;
+ }
+ if (ComrelPackage.eINSTANCE.getMultiFeatureUnit().isSuperTypeOf(
+ domainElement.eClass())) {
+ return MultiFeatureUnit3EditPart.VISUAL_ID;
+ }
+ if (ComrelPackage.eINSTANCE.getSingleFilterUnit().isSuperTypeOf(
+ domainElement.eClass())) {
+ return SingleFilterUnit3EditPart.VISUAL_ID;
+ }
+ if (ComrelPackage.eINSTANCE.getMultiFilterUnit().isSuperTypeOf(
+ domainElement.eClass())) {
+ return MultiFilterUnit3EditPart.VISUAL_ID;
+ }
+ break;
+ case ConditionalUnitConditionalUnitThenCompartment6EditPart.VISUAL_ID:
+ if (ComrelPackage.eINSTANCE.getCartesianQueuedUnit().isSuperTypeOf(
+ domainElement.eClass())) {
+ return CartesianQueuedUnit6EditPart.VISUAL_ID;
+ }
+ if (ComrelPackage.eINSTANCE.getParallelQueuedUnit().isSuperTypeOf(
+ domainElement.eClass())) {
+ return ParallelQueuedUnit3EditPart.VISUAL_ID;
+ }
+ if (ComrelPackage.eINSTANCE.getSingleQueuedUnit().isSuperTypeOf(
+ domainElement.eClass())) {
+ return SingleQueuedUnit4EditPart.VISUAL_ID;
+ }
+ if (ComrelPackage.eINSTANCE.getSequentialUnit().isSuperTypeOf(
+ domainElement.eClass())) {
+ return SequentialUnit5EditPart.VISUAL_ID;
+ }
+ if (ComrelPackage.eINSTANCE.getConditionalUnit().isSuperTypeOf(
+ domainElement.eClass())) {
+ return ConditionalUnit6EditPart.VISUAL_ID;
+ }
+ if (ComrelPackage.eINSTANCE.getAtomicUnit().isSuperTypeOf(
+ domainElement.eClass())) {
+ return AtomicUnit6EditPart.VISUAL_ID;
+ }
+ break;
+ case ConditionalUnitConditionalUnitElseCompartment6EditPart.VISUAL_ID:
+ if (ComrelPackage.eINSTANCE.getCartesianQueuedUnit().isSuperTypeOf(
+ domainElement.eClass())) {
+ return CartesianQueuedUnit7EditPart.VISUAL_ID;
+ }
+ if (ComrelPackage.eINSTANCE.getParallelQueuedUnit().isSuperTypeOf(
+ domainElement.eClass())) {
+ return ParallelQueuedUnit7EditPart.VISUAL_ID;
+ }
+ if (ComrelPackage.eINSTANCE.getSingleQueuedUnit().isSuperTypeOf(
+ domainElement.eClass())) {
+ return SingleQueuedUnit7EditPart.VISUAL_ID;
+ }
+ if (ComrelPackage.eINSTANCE.getSequentialUnit().isSuperTypeOf(
+ domainElement.eClass())) {
+ return SequentialUnit7EditPart.VISUAL_ID;
+ }
+ if (ComrelPackage.eINSTANCE.getConditionalUnit().isSuperTypeOf(
+ domainElement.eClass())) {
+ return ConditionalUnit7EditPart.VISUAL_ID;
+ }
+ if (ComrelPackage.eINSTANCE.getAtomicUnit().isSuperTypeOf(
+ domainElement.eClass())) {
+ return AtomicUnit7EditPart.VISUAL_ID;
+ }
+ break;
+ case ParallelQueuedUnitParallelQueuedUnitHelperUnitsCompartment7EditPart.VISUAL_ID:
+ if (ComrelPackage.eINSTANCE.getSingleFeatureUnit().isSuperTypeOf(
+ domainElement.eClass())) {
+ return SingleFeatureUnit2EditPart.VISUAL_ID;
+ }
+ if (ComrelPackage.eINSTANCE.getMultiFeatureUnit().isSuperTypeOf(
+ domainElement.eClass())) {
+ return MultiFeatureUnit2EditPart.VISUAL_ID;
+ }
+ if (ComrelPackage.eINSTANCE.getSingleFilterUnit().isSuperTypeOf(
+ domainElement.eClass())) {
+ return SingleFilterUnit2EditPart.VISUAL_ID;
+ }
+ if (ComrelPackage.eINSTANCE.getMultiFilterUnit().isSuperTypeOf(
+ domainElement.eClass())) {
+ return MultiFilterUnit2EditPart.VISUAL_ID;
+ }
+ break;
+ case ParallelQueuedUnitParallelQueuedUnitRefactoringUnitsCompartment7EditPart.VISUAL_ID:
+ if (ComrelPackage.eINSTANCE.getCartesianQueuedUnit().isSuperTypeOf(
+ domainElement.eClass())) {
+ return CartesianQueuedUnit3EditPart.VISUAL_ID;
+ }
+ if (ComrelPackage.eINSTANCE.getParallelQueuedUnit().isSuperTypeOf(
+ domainElement.eClass())) {
+ return ParallelQueuedUnit4EditPart.VISUAL_ID;
+ }
+ if (ComrelPackage.eINSTANCE.getSingleQueuedUnit().isSuperTypeOf(
+ domainElement.eClass())) {
+ return SingleQueuedUnit3EditPart.VISUAL_ID;
+ }
+ if (ComrelPackage.eINSTANCE.getSequentialUnit().isSuperTypeOf(
+ domainElement.eClass())) {
+ return SequentialUnit3EditPart.VISUAL_ID;
+ }
+ if (ComrelPackage.eINSTANCE.getConditionalUnit().isSuperTypeOf(
+ domainElement.eClass())) {
+ return ConditionalUnit3EditPart.VISUAL_ID;
+ }
+ if (ComrelPackage.eINSTANCE.getAtomicUnit().isSuperTypeOf(
+ domainElement.eClass())) {
+ return AtomicUnit3EditPart.VISUAL_ID;
+ }
+ break;
+ case SingleQueuedUnitSingleQueuedUnitHelperUnitsCompartment7EditPart.VISUAL_ID:
+ if (ComrelPackage.eINSTANCE.getSingleFeatureUnit().isSuperTypeOf(
+ domainElement.eClass())) {
+ return SingleFeatureUnit4EditPart.VISUAL_ID;
+ }
+ if (ComrelPackage.eINSTANCE.getMultiFeatureUnit().isSuperTypeOf(
+ domainElement.eClass())) {
+ return MultiFeatureUnit4EditPart.VISUAL_ID;
+ }
+ if (ComrelPackage.eINSTANCE.getSingleFilterUnit().isSuperTypeOf(
+ domainElement.eClass())) {
+ return SingleFilterUnit4EditPart.VISUAL_ID;
+ }
+ if (ComrelPackage.eINSTANCE.getMultiFilterUnit().isSuperTypeOf(
+ domainElement.eClass())) {
+ return MultiFilterUnit4EditPart.VISUAL_ID;
+ }
+ break;
+ case SingleQueuedUnitSingleQueuedUnitRefactoringUnitCompartment7EditPart.VISUAL_ID:
+ if (ComrelPackage.eINSTANCE.getCartesianQueuedUnit().isSuperTypeOf(
+ domainElement.eClass())) {
+ return CartesianQueuedUnit4EditPart.VISUAL_ID;
+ }
+ if (ComrelPackage.eINSTANCE.getParallelQueuedUnit().isSuperTypeOf(
+ domainElement.eClass())) {
+ return ParallelQueuedUnit5EditPart.VISUAL_ID;
+ }
+ if (ComrelPackage.eINSTANCE.getSingleQueuedUnit().isSuperTypeOf(
+ domainElement.eClass())) {
+ return SingleQueuedUnit5EditPart.VISUAL_ID;
+ }
+ if (ComrelPackage.eINSTANCE.getSequentialUnit().isSuperTypeOf(
+ domainElement.eClass())) {
+ return SequentialUnit4EditPart.VISUAL_ID;
+ }
+ if (ComrelPackage.eINSTANCE.getConditionalUnit().isSuperTypeOf(
+ domainElement.eClass())) {
+ return ConditionalUnit4EditPart.VISUAL_ID;
+ }
+ if (ComrelPackage.eINSTANCE.getAtomicUnit().isSuperTypeOf(
+ domainElement.eClass())) {
+ return AtomicUnit4EditPart.VISUAL_ID;
+ }
+ break;
+ case SequentialUnitSequentialUnitHelperUnitsCompartment7EditPart.VISUAL_ID:
+ if (ComrelPackage.eINSTANCE.getSingleFeatureUnit().isSuperTypeOf(
+ domainElement.eClass())) {
+ return SingleFeatureUnit5EditPart.VISUAL_ID;
+ }
+ if (ComrelPackage.eINSTANCE.getMultiFeatureUnit().isSuperTypeOf(
+ domainElement.eClass())) {
+ return MultiFeatureUnit5EditPart.VISUAL_ID;
+ }
+ if (ComrelPackage.eINSTANCE.getSingleFilterUnit().isSuperTypeOf(
+ domainElement.eClass())) {
+ return SingleFilterUnit5EditPart.VISUAL_ID;
+ }
+ if (ComrelPackage.eINSTANCE.getMultiFilterUnit().isSuperTypeOf(
+ domainElement.eClass())) {
+ return MultiFilterUnit5EditPart.VISUAL_ID;
+ }
+ break;
+ case SequentialUnitSequentialUnitRefactoringUnitsCompartment7EditPart.VISUAL_ID:
+ if (ComrelPackage.eINSTANCE.getCartesianQueuedUnit().isSuperTypeOf(
+ domainElement.eClass())) {
+ return CartesianQueuedUnit5EditPart.VISUAL_ID;
+ }
+ if (ComrelPackage.eINSTANCE.getParallelQueuedUnit().isSuperTypeOf(
+ domainElement.eClass())) {
+ return ParallelQueuedUnit6EditPart.VISUAL_ID;
+ }
+ if (ComrelPackage.eINSTANCE.getSingleQueuedUnit().isSuperTypeOf(
+ domainElement.eClass())) {
+ return SingleQueuedUnit6EditPart.VISUAL_ID;
+ }
+ if (ComrelPackage.eINSTANCE.getSequentialUnit().isSuperTypeOf(
+ domainElement.eClass())) {
+ return SequentialUnit6EditPart.VISUAL_ID;
+ }
+ if (ComrelPackage.eINSTANCE.getConditionalUnit().isSuperTypeOf(
+ domainElement.eClass())) {
+ return ConditionalUnit5EditPart.VISUAL_ID;
+ }
+ if (ComrelPackage.eINSTANCE.getAtomicUnit().isSuperTypeOf(
+ domainElement.eClass())) {
+ return AtomicUnit5EditPart.VISUAL_ID;
+ }
+ break;
+ case ConditionalUnitConditionalUnitIfCompartment7EditPart.VISUAL_ID:
+ if (ComrelPackage.eINSTANCE.getConditionCheck().isSuperTypeOf(
+ domainElement.eClass())) {
+ return ConditionCheckEditPart.VISUAL_ID;
+ }
+ break;
+ case ConditionalUnitConditionalUnitHelperUnitsCompartment7EditPart.VISUAL_ID:
+ if (ComrelPackage.eINSTANCE.getSingleFeatureUnit().isSuperTypeOf(
+ domainElement.eClass())) {
+ return SingleFeatureUnit3EditPart.VISUAL_ID;
+ }
+ if (ComrelPackage.eINSTANCE.getMultiFeatureUnit().isSuperTypeOf(
+ domainElement.eClass())) {
+ return MultiFeatureUnit3EditPart.VISUAL_ID;
+ }
+ if (ComrelPackage.eINSTANCE.getSingleFilterUnit().isSuperTypeOf(
+ domainElement.eClass())) {
+ return SingleFilterUnit3EditPart.VISUAL_ID;
+ }
+ if (ComrelPackage.eINSTANCE.getMultiFilterUnit().isSuperTypeOf(
+ domainElement.eClass())) {
+ return MultiFilterUnit3EditPart.VISUAL_ID;
+ }
+ break;
+ case ConditionalUnitConditionalUnitThenCompartment7EditPart.VISUAL_ID:
+ if (ComrelPackage.eINSTANCE.getCartesianQueuedUnit().isSuperTypeOf(
+ domainElement.eClass())) {
+ return CartesianQueuedUnit6EditPart.VISUAL_ID;
+ }
+ if (ComrelPackage.eINSTANCE.getParallelQueuedUnit().isSuperTypeOf(
+ domainElement.eClass())) {
+ return ParallelQueuedUnit3EditPart.VISUAL_ID;
+ }
+ if (ComrelPackage.eINSTANCE.getSingleQueuedUnit().isSuperTypeOf(
+ domainElement.eClass())) {
+ return SingleQueuedUnit4EditPart.VISUAL_ID;
+ }
+ if (ComrelPackage.eINSTANCE.getSequentialUnit().isSuperTypeOf(
+ domainElement.eClass())) {
+ return SequentialUnit5EditPart.VISUAL_ID;
+ }
+ if (ComrelPackage.eINSTANCE.getConditionalUnit().isSuperTypeOf(
+ domainElement.eClass())) {
+ return ConditionalUnit6EditPart.VISUAL_ID;
+ }
+ if (ComrelPackage.eINSTANCE.getAtomicUnit().isSuperTypeOf(
+ domainElement.eClass())) {
+ return AtomicUnit6EditPart.VISUAL_ID;
+ }
+ break;
+ case ConditionalUnitConditionalUnitElseCompartment7EditPart.VISUAL_ID:
+ if (ComrelPackage.eINSTANCE.getCartesianQueuedUnit().isSuperTypeOf(
+ domainElement.eClass())) {
+ return CartesianQueuedUnit7EditPart.VISUAL_ID;
+ }
+ if (ComrelPackage.eINSTANCE.getParallelQueuedUnit().isSuperTypeOf(
+ domainElement.eClass())) {
+ return ParallelQueuedUnit7EditPart.VISUAL_ID;
+ }
+ if (ComrelPackage.eINSTANCE.getSingleQueuedUnit().isSuperTypeOf(
+ domainElement.eClass())) {
+ return SingleQueuedUnit7EditPart.VISUAL_ID;
+ }
+ if (ComrelPackage.eINSTANCE.getSequentialUnit().isSuperTypeOf(
+ domainElement.eClass())) {
+ return SequentialUnit7EditPart.VISUAL_ID;
+ }
+ if (ComrelPackage.eINSTANCE.getConditionalUnit().isSuperTypeOf(
+ domainElement.eClass())) {
+ return ConditionalUnit7EditPart.VISUAL_ID;
+ }
+ if (ComrelPackage.eINSTANCE.getAtomicUnit().isSuperTypeOf(
+ domainElement.eClass())) {
+ return AtomicUnit7EditPart.VISUAL_ID;
+ }
+ break;
+ }
+ return -1;
+ }
+
+ /**
+ * @generated
+ */
+ public static boolean canCreateNode(View containerView, int nodeVisualID) {
+ String containerModelID = comrel.diagram.part.ComrelVisualIDRegistry
+ .getModelID(containerView);
+ if (!CompositeRefactoringEditPart.MODEL_ID.equals(containerModelID)
+ && !"comrel".equals(containerModelID)) { //$NON-NLS-1$
+ return false;
+ }
+ int containerVisualID;
+ if (CompositeRefactoringEditPart.MODEL_ID.equals(containerModelID)) {
+ containerVisualID = comrel.diagram.part.ComrelVisualIDRegistry
+ .getVisualID(containerView);
+ } else {
+ if (containerView instanceof Diagram) {
+ containerVisualID = CompositeRefactoringEditPart.VISUAL_ID;
+ } else {
+ return false;
+ }
+ }
+ switch (containerVisualID) {
+ case CompositeRefactoringEditPart.VISUAL_ID:
+ if (SingleInputPortEditPart.VISUAL_ID == nodeVisualID) {
+ return true;
+ }
+ if (CartesianQueuedUnitEditPart.VISUAL_ID == nodeVisualID) {
+ return true;
+ }
+ if (ParallelQueuedUnitEditPart.VISUAL_ID == nodeVisualID) {
+ return true;
+ }
+ if (SingleQueuedUnitEditPart.VISUAL_ID == nodeVisualID) {
+ return true;
+ }
+ if (SequentialUnitEditPart.VISUAL_ID == nodeVisualID) {
+ return true;
+ }
+ if (ConditionalUnitEditPart.VISUAL_ID == nodeVisualID) {
+ return true;
+ }
+ if (AtomicUnitEditPart.VISUAL_ID == nodeVisualID) {
+ return true;
+ }
+ break;
+ case SingleInputPortEditPart.VISUAL_ID:
+ if (SingleInputPortNameTypeEditPart.VISUAL_ID == nodeVisualID) {
+ return true;
+ }
+ break;
+ case CartesianQueuedUnitEditPart.VISUAL_ID:
+ if (CartesianQueuedUnitNameTypeLblStrictEditPart.VISUAL_ID == nodeVisualID) {
+ return true;
+ }
+ if (CartesianQueuedUnitCartesianQueuedUnitHelperUnitsCompartmentEditPart.VISUAL_ID == nodeVisualID) {
+ return true;
+ }
+ if (CartesianQueuedUnitCartesianQueuedUnitRefactoringUnitCompartmentEditPart.VISUAL_ID == nodeVisualID) {
+ return true;
+ }
+ if (SingleInputPort2EditPart.VISUAL_ID == nodeVisualID) {
+ return true;
+ }
+ if (MultiInputPortEditPart.VISUAL_ID == nodeVisualID) {
+ return true;
+ }
+ break;
+ case ParallelQueuedUnitEditPart.VISUAL_ID:
+ if (ParallelQueuedUnitNameTypeLblStrictEditPart.VISUAL_ID == nodeVisualID) {
+ return true;
+ }
+ if (ParallelQueuedUnitParallelQueuedUnitHelperUnitsCompartment7EditPart.VISUAL_ID == nodeVisualID) {
+ return true;
+ }
+ if (ParallelQueuedUnitParallelQueuedUnitRefactoringUnitsCompartment7EditPart.VISUAL_ID == nodeVisualID) {
+ return true;
+ }
+ if (SingleInputPort3EditPart.VISUAL_ID == nodeVisualID) {
+ return true;
+ }
+ if (MultiInputPort2EditPart.VISUAL_ID == nodeVisualID) {
+ return true;
+ }
+ break;
+ case SingleQueuedUnitEditPart.VISUAL_ID:
+ if (SingleQueuedUnitNameTypeLblStrictEditPart.VISUAL_ID == nodeVisualID) {
+ return true;
+ }
+ if (SingleQueuedUnitSingleQueuedUnitHelperUnitsCompartment7EditPart.VISUAL_ID == nodeVisualID) {
+ return true;
+ }
+ if (SingleQueuedUnitSingleQueuedUnitRefactoringUnitCompartment7EditPart.VISUAL_ID == nodeVisualID) {
+ return true;
+ }
+ if (SingleInputPort6EditPart.VISUAL_ID == nodeVisualID) {
+ return true;
+ }
+ if (MultiInputPort7EditPart.VISUAL_ID == nodeVisualID) {
+ return true;
+ }
+ break;
+ case SequentialUnitEditPart.VISUAL_ID:
+ if (SequentialUnitNameTypeLblStrictEditPart.VISUAL_ID == nodeVisualID) {
+ return true;
+ }
+ if (SequentialUnitSequentialUnitHelperUnitsCompartment7EditPart.VISUAL_ID == nodeVisualID) {
+ return true;
+ }
+ if (SequentialUnitSequentialUnitRefactoringUnitsCompartment7EditPart.VISUAL_ID == nodeVisualID) {
+ return true;
+ }
+ if (SingleInputPort7EditPart.VISUAL_ID == nodeVisualID) {
+ return true;
+ }
+ if (MultiInputPort8EditPart.VISUAL_ID == nodeVisualID) {
+ return true;
+ }
+ break;
+ case ConditionalUnitEditPart.VISUAL_ID:
+ if (ConditionalUnitNameTypeEditPart.VISUAL_ID == nodeVisualID) {
+ return true;
+ }
+ if (ConditionalUnitConditionalUnitIfCompartment7EditPart.VISUAL_ID == nodeVisualID) {
+ return true;
+ }
+ if (ConditionalUnitConditionalUnitHelperUnitsCompartment7EditPart.VISUAL_ID == nodeVisualID) {
+ return true;
+ }
+ if (ConditionalUnitConditionalUnitThenCompartment7EditPart.VISUAL_ID == nodeVisualID) {
+ return true;
+ }
+ if (ConditionalUnitConditionalUnitElseCompartment7EditPart.VISUAL_ID == nodeVisualID) {
+ return true;
+ }
+ if (SingleInputPort8EditPart.VISUAL_ID == nodeVisualID) {
+ return true;
+ }
+ if (MultiInputPort9EditPart.VISUAL_ID == nodeVisualID) {
+ return true;
+ }
+ break;
+ case AtomicUnitEditPart.VISUAL_ID:
+ if (AtomicUnitLabelTypeEditPart.VISUAL_ID == nodeVisualID) {
+ return true;
+ }
+ if (SingleInputPort9EditPart.VISUAL_ID == nodeVisualID) {
+ return true;
+ }
+ break;
+ case SingleInputPort2EditPart.VISUAL_ID:
+ if (SingleInputPortNameType2EditPart.VISUAL_ID == nodeVisualID) {
+ return true;
+ }
+ break;
+ case MultiInputPortEditPart.VISUAL_ID:
+ if (MultiInputPortNameTypeEditPart.VISUAL_ID == nodeVisualID) {
+ return true;
+ }
+ break;
+ case CartesianQueuedUnit2EditPart.VISUAL_ID:
+ if (CartesianQueuedUnitNameTypeLblStrict2EditPart.VISUAL_ID == nodeVisualID) {
+ return true;
+ }
+ if (CartesianQueuedUnitCartesianQueuedUnitHelperUnitsCompartment2EditPart.VISUAL_ID == nodeVisualID) {
+ return true;
+ }
+ if (CartesianQueuedUnitCartesianQueuedUnitRefactoringUnitCompartment2EditPart.VISUAL_ID == nodeVisualID) {
+ return true;
+ }
+ if (SingleInputPort2EditPart.VISUAL_ID == nodeVisualID) {
+ return true;
+ }
+ if (MultiInputPortEditPart.VISUAL_ID == nodeVisualID) {
+ return true;
+ }
+ break;
+ case ParallelQueuedUnit2EditPart.VISUAL_ID:
+ if (ParallelQueuedUnitNameTypeLblStrict2EditPart.VISUAL_ID == nodeVisualID) {
+ return true;
+ }
+ if (ParallelQueuedUnitParallelQueuedUnitHelperUnitsCompartmentEditPart.VISUAL_ID == nodeVisualID) {
+ return true;
+ }
+ if (ParallelQueuedUnitParallelQueuedUnitRefactoringUnitsCompartmentEditPart.VISUAL_ID == nodeVisualID) {
+ return true;
+ }
+ if (SingleInputPort3EditPart.VISUAL_ID == nodeVisualID) {
+ return true;
+ }
+ if (MultiInputPort2EditPart.VISUAL_ID == nodeVisualID) {
+ return true;
+ }
+ break;
+ case SingleInputPort3EditPart.VISUAL_ID:
+ if (SingleInputPortNameType3EditPart.VISUAL_ID == nodeVisualID) {
+ return true;
+ }
+ break;
+ case MultiInputPort2EditPart.VISUAL_ID:
+ if (MultiInputPortNameType2EditPart.VISUAL_ID == nodeVisualID) {
+ return true;
+ }
+ break;
+ case CartesianQueuedUnit3EditPart.VISUAL_ID:
+ if (CartesianQueuedUnitNameTypeLblStrict3EditPart.VISUAL_ID == nodeVisualID) {
+ return true;
+ }
+ if (CartesianQueuedUnitCartesianQueuedUnitHelperUnitsCompartment3EditPart.VISUAL_ID == nodeVisualID) {
+ return true;
+ }
+ if (CartesianQueuedUnitCartesianQueuedUnitRefactoringUnitCompartment3EditPart.VISUAL_ID == nodeVisualID) {
+ return true;
+ }
+ if (SingleInputPort2EditPart.VISUAL_ID == nodeVisualID) {
+ return true;
+ }
+ if (MultiInputPortEditPart.VISUAL_ID == nodeVisualID) {
+ return true;
+ }
+ break;
+ case SingleFeatureUnitEditPart.VISUAL_ID:
+ if (SingleFeatureUnitNameTypeEditPart.VISUAL_ID == nodeVisualID) {
+ return true;
+ }
+ if (SingleInputPort4EditPart.VISUAL_ID == nodeVisualID) {
+ return true;
+ }
+ if (MultiInputPort3EditPart.VISUAL_ID == nodeVisualID) {
+ return true;
+ }
+ if (SingleOutputPortEditPart.VISUAL_ID == nodeVisualID) {
+ return true;
+ }
+ break;
+ case SingleInputPort4EditPart.VISUAL_ID:
+ if (SingleInputPortNameType4EditPart.VISUAL_ID == nodeVisualID) {
+ return true;
+ }
+ break;
+ case MultiInputPort3EditPart.VISUAL_ID:
+ if (MultiInputPortNameType3EditPart.VISUAL_ID == nodeVisualID) {
+ return true;
+ }
+ break;
+ case SingleOutputPortEditPart.VISUAL_ID:
+ if (SingleOutputPortNameTypeEditPart.VISUAL_ID == nodeVisualID) {
+ return true;
+ }
+ break;
+ case MultiFeatureUnitEditPart.VISUAL_ID:
+ if (MultiFeatureUnitNameTypeEditPart.VISUAL_ID == nodeVisualID) {
+ return true;
+ }
+ if (SingleInputPort5EditPart.VISUAL_ID == nodeVisualID) {
+ return true;
+ }
+ if (MultiInputPort4EditPart.VISUAL_ID == nodeVisualID) {
+ return true;
+ }
+ if (MultiOutputPortEditPart.VISUAL_ID == nodeVisualID) {
+ return true;
+ }
+ break;
+ case SingleInputPort5EditPart.VISUAL_ID:
+ if (SingleInputPortNameType5EditPart.VISUAL_ID == nodeVisualID) {
+ return true;
+ }
+ break;
+ case MultiInputPort4EditPart.VISUAL_ID:
+ if (MultiInputPortNameType4EditPart.VISUAL_ID == nodeVisualID) {
+ return true;
+ }
+ break;
+ case MultiOutputPortEditPart.VISUAL_ID:
+ if (MultiOutputPortNameTypeEditPart.VISUAL_ID == nodeVisualID) {
+ return true;
+ }
+ break;
+ case SingleFilterUnitEditPart.VISUAL_ID:
+ if (SingleFilterUnitNameTypeEditPart.VISUAL_ID == nodeVisualID) {
+ return true;
+ }
+ if (MultiInputPort5EditPart.VISUAL_ID == nodeVisualID) {
+ return true;
+ }
+ if (SingleOutputPort2EditPart.VISUAL_ID == nodeVisualID) {
+ return true;
+ }
+ break;
+ case MultiInputPort5EditPart.VISUAL_ID:
+ if (MultiInputPortNameType5EditPart.VISUAL_ID == nodeVisualID) {
+ return true;
+ }
+ break;
+ case SingleOutputPort2EditPart.VISUAL_ID:
+ if (SingleOutputPortNameType2EditPart.VISUAL_ID == nodeVisualID) {
+ return true;
+ }
+ break;
+ case MultiFilterUnitEditPart.VISUAL_ID:
+ if (MultiFilterUnitNameTypeEditPart.VISUAL_ID == nodeVisualID) {
+ return true;
+ }
+ if (MultiInputPort6EditPart.VISUAL_ID == nodeVisualID) {
+ return true;
+ }
+ if (MultiOutputPort2EditPart.VISUAL_ID == nodeVisualID) {
+ return true;
+ }
+ break;
+ case MultiInputPort6EditPart.VISUAL_ID:
+ if (MultiInputPortNameType6EditPart.VISUAL_ID == nodeVisualID) {
+ return true;
+ }
+ break;
+ case MultiOutputPort2EditPart.VISUAL_ID:
+ if (MultiOutputPortNameType2EditPart.VISUAL_ID == nodeVisualID) {
+ return true;
+ }
+ break;
+ case SingleQueuedUnit2EditPart.VISUAL_ID:
+ if (SingleQueuedUnitNameTypeLblStrict2EditPart.VISUAL_ID == nodeVisualID) {
+ return true;
+ }
+ if (SingleQueuedUnitSingleQueuedUnitHelperUnitsCompartmentEditPart.VISUAL_ID == nodeVisualID) {
+ return true;
+ }
+ if (SingleQueuedUnitSingleQueuedUnitRefactoringUnitCompartmentEditPart.VISUAL_ID == nodeVisualID) {
+ return true;
+ }
+ if (SingleInputPort6EditPart.VISUAL_ID == nodeVisualID) {
+ return true;
+ }
+ if (MultiInputPort7EditPart.VISUAL_ID == nodeVisualID) {
+ return true;
+ }
+ break;
+ case SingleInputPort6EditPart.VISUAL_ID:
+ if (SingleInputPortNameType6EditPart.VISUAL_ID == nodeVisualID) {
+ return true;
+ }
+ break;
+ case MultiInputPort7EditPart.VISUAL_ID:
+ if (MultiInputPortNameType7EditPart.VISUAL_ID == nodeVisualID) {
+ return true;
+ }
+ break;
+ case CartesianQueuedUnit4EditPart.VISUAL_ID:
+ if (CartesianQueuedUnitNameTypeLblStrict4EditPart.VISUAL_ID == nodeVisualID) {
+ return true;
+ }
+ if (CartesianQueuedUnitCartesianQueuedUnitHelperUnitsCompartment4EditPart.VISUAL_ID == nodeVisualID) {
+ return true;
+ }
+ if (CartesianQueuedUnitCartesianQueuedUnitRefactoringUnitCompartment4EditPart.VISUAL_ID == nodeVisualID) {
+ return true;
+ }
+ if (SingleInputPort2EditPart.VISUAL_ID == nodeVisualID) {
+ return true;
+ }
+ if (MultiInputPortEditPart.VISUAL_ID == nodeVisualID) {
+ return true;
+ }
+ break;
+ case SequentialUnit2EditPart.VISUAL_ID:
+ if (SequentialUnitNameTypeLblStrict2EditPart.VISUAL_ID == nodeVisualID) {
+ return true;
+ }
+ if (SequentialUnitSequentialUnitHelperUnitsCompartmentEditPart.VISUAL_ID == nodeVisualID) {
+ return true;
+ }
+ if (SequentialUnitSequentialUnitRefactoringUnitsCompartmentEditPart.VISUAL_ID == nodeVisualID) {
+ return true;
+ }
+ if (SingleInputPort7EditPart.VISUAL_ID == nodeVisualID) {
+ return true;
+ }
+ if (MultiInputPort8EditPart.VISUAL_ID == nodeVisualID) {
+ return true;
+ }
+ break;
+ case SingleInputPort7EditPart.VISUAL_ID:
+ if (SingleInputPortNameType7EditPart.VISUAL_ID == nodeVisualID) {
+ return true;
+ }
+ break;
+ case MultiInputPort8EditPart.VISUAL_ID:
+ if (MultiInputPortNameType8EditPart.VISUAL_ID == nodeVisualID) {
+ return true;
+ }
+ break;
+ case CartesianQueuedUnit5EditPart.VISUAL_ID:
+ if (CartesianQueuedUnitNameTypeLblStrict5EditPart.VISUAL_ID == nodeVisualID) {
+ return true;
+ }
+ if (CartesianQueuedUnitCartesianQueuedUnitHelperUnitsCompartment5EditPart.VISUAL_ID == nodeVisualID) {
+ return true;
+ }
+ if (CartesianQueuedUnitCartesianQueuedUnitRefactoringUnitCompartment5EditPart.VISUAL_ID == nodeVisualID) {
+ return true;
+ }
+ if (SingleInputPort2EditPart.VISUAL_ID == nodeVisualID) {
+ return true;
+ }
+ if (MultiInputPortEditPart.VISUAL_ID == nodeVisualID) {
+ return true;
+ }
+ break;
+ case ConditionalUnit2EditPart.VISUAL_ID:
+ if (ConditionalUnitNameType2EditPart.VISUAL_ID == nodeVisualID) {
+ return true;
+ }
+ if (ConditionalUnitConditionalUnitIfCompartmentEditPart.VISUAL_ID == nodeVisualID) {
+ return true;
+ }
+ if (ConditionalUnitConditionalUnitHelperUnitsCompartmentEditPart.VISUAL_ID == nodeVisualID) {
+ return true;
+ }
+ if (ConditionalUnitConditionalUnitThenCompartmentEditPart.VISUAL_ID == nodeVisualID) {
+ return true;
+ }
+ if (ConditionalUnitConditionalUnitElseCompartmentEditPart.VISUAL_ID == nodeVisualID) {
+ return true;
+ }
+ if (SingleInputPort8EditPart.VISUAL_ID == nodeVisualID) {
+ return true;
+ }
+ if (MultiInputPort9EditPart.VISUAL_ID == nodeVisualID) {
+ return true;
+ }
+ break;
+ case SingleInputPort8EditPart.VISUAL_ID:
+ if (SingleInputPortNameType8EditPart.VISUAL_ID == nodeVisualID) {
+ return true;
+ }
+ break;
+ case MultiInputPort9EditPart.VISUAL_ID:
+ if (MultiInputPortNameType9EditPart.VISUAL_ID == nodeVisualID) {
+ return true;
+ }
+ break;
+ case CartesianQueuedUnit6EditPart.VISUAL_ID:
+ if (CartesianQueuedUnitNameTypeLblStrict6EditPart.VISUAL_ID == nodeVisualID) {
+ return true;
+ }
+ if (CartesianQueuedUnitCartesianQueuedUnitHelperUnitsCompartment6EditPart.VISUAL_ID == nodeVisualID) {
+ return true;
+ }
+ if (CartesianQueuedUnitCartesianQueuedUnitRefactoringUnitCompartment6EditPart.VISUAL_ID == nodeVisualID) {
+ return true;
+ }
+ if (SingleInputPort2EditPart.VISUAL_ID == nodeVisualID) {
+ return true;
+ }
+ if (MultiInputPortEditPart.VISUAL_ID == nodeVisualID) {
+ return true;
+ }
+ break;
+ case AtomicUnit2EditPart.VISUAL_ID:
+ if (AtomicUnitLabelType2EditPart.VISUAL_ID == nodeVisualID) {
+ return true;
+ }
+ if (SingleInputPort9EditPart.VISUAL_ID == nodeVisualID) {
+ return true;
+ }
+ break;
+ case SingleInputPort9EditPart.VISUAL_ID:
+ if (SingleInputPortNameType9EditPart.VISUAL_ID == nodeVisualID) {
+ return true;
+ }
+ break;
+ case ParallelQueuedUnit3EditPart.VISUAL_ID:
+ if (ParallelQueuedUnitNameTypeLblStrict3EditPart.VISUAL_ID == nodeVisualID) {
+ return true;
+ }
+ if (ParallelQueuedUnitParallelQueuedUnitHelperUnitsCompartment2EditPart.VISUAL_ID == nodeVisualID) {
+ return true;
+ }
+ if (ParallelQueuedUnitParallelQueuedUnitRefactoringUnitsCompartment2EditPart.VISUAL_ID == nodeVisualID) {
+ return true;
+ }
+ if (SingleInputPort3EditPart.VISUAL_ID == nodeVisualID) {
+ return true;
+ }
+ if (MultiInputPort2EditPart.VISUAL_ID == nodeVisualID) {
+ return true;
+ }
+ break;
+ case ParallelQueuedUnit4EditPart.VISUAL_ID:
+ if (ParallelQueuedUnitNameTypeLblStrict4EditPart.VISUAL_ID == nodeVisualID) {
+ return true;
+ }
+ if (ParallelQueuedUnitParallelQueuedUnitHelperUnitsCompartment3EditPart.VISUAL_ID == nodeVisualID) {
+ return true;
+ }
+ if (ParallelQueuedUnitParallelQueuedUnitRefactoringUnitsCompartment3EditPart.VISUAL_ID == nodeVisualID) {
+ return true;
+ }
+ if (SingleInputPort3EditPart.VISUAL_ID == nodeVisualID) {
+ return true;
+ }
+ if (MultiInputPort2EditPart.VISUAL_ID == nodeVisualID) {
+ return true;
+ }
+ break;
+ case SingleFeatureUnit2EditPart.VISUAL_ID:
+ if (SingleFeatureUnitNameType2EditPart.VISUAL_ID == nodeVisualID) {
+ return true;
+ }
+ if (SingleInputPort4EditPart.VISUAL_ID == nodeVisualID) {
+ return true;
+ }
+ if (MultiInputPort3EditPart.VISUAL_ID == nodeVisualID) {
+ return true;
+ }
+ if (SingleOutputPortEditPart.VISUAL_ID == nodeVisualID) {
+ return true;
+ }
+ break;
+ case MultiFeatureUnit2EditPart.VISUAL_ID:
+ if (MultiFeatureUnitNameType2EditPart.VISUAL_ID == nodeVisualID) {
+ return true;
+ }
+ if (SingleInputPort5EditPart.VISUAL_ID == nodeVisualID) {
+ return true;
+ }
+ if (MultiInputPort4EditPart.VISUAL_ID == nodeVisualID) {
+ return true;
+ }
+ if (MultiOutputPortEditPart.VISUAL_ID == nodeVisualID) {
+ return true;
+ }
+ break;
+ case SingleFilterUnit2EditPart.VISUAL_ID:
+ if (SingleFilterUnitNameType2EditPart.VISUAL_ID == nodeVisualID) {
+ return true;
+ }
+ if (MultiInputPort5EditPart.VISUAL_ID == nodeVisualID) {
+ return true;
+ }
+ if (SingleOutputPort2EditPart.VISUAL_ID == nodeVisualID) {
+ return true;
+ }
+ break;
+ case MultiFilterUnit2EditPart.VISUAL_ID:
+ if (MultiFilterUnitNameType2EditPart.VISUAL_ID == nodeVisualID) {
+ return true;
+ }
+ if (MultiInputPort6EditPart.VISUAL_ID == nodeVisualID) {
+ return true;
+ }
+ if (MultiOutputPort2EditPart.VISUAL_ID == nodeVisualID) {
+ return true;
+ }
+ break;
+ case SingleQueuedUnit3EditPart.VISUAL_ID:
+ if (SingleQueuedUnitNameTypeLblStrict3EditPart.VISUAL_ID == nodeVisualID) {
+ return true;
+ }
+ if (SingleQueuedUnitSingleQueuedUnitHelperUnitsCompartment2EditPart.VISUAL_ID == nodeVisualID) {
+ return true;
+ }
+ if (SingleQueuedUnitSingleQueuedUnitRefactoringUnitCompartment2EditPart.VISUAL_ID == nodeVisualID) {
+ return true;
+ }
+ if (SingleInputPort6EditPart.VISUAL_ID == nodeVisualID) {
+ return true;
+ }
+ if (MultiInputPort7EditPart.VISUAL_ID == nodeVisualID) {
+ return true;
+ }
+ break;
+ case ParallelQueuedUnit5EditPart.VISUAL_ID:
+ if (ParallelQueuedUnitNameTypeLblStrict5EditPart.VISUAL_ID == nodeVisualID) {
+ return true;
+ }
+ if (ParallelQueuedUnitParallelQueuedUnitHelperUnitsCompartment4EditPart.VISUAL_ID == nodeVisualID) {
+ return true;
+ }
+ if (ParallelQueuedUnitParallelQueuedUnitRefactoringUnitsCompartment4EditPart.VISUAL_ID == nodeVisualID) {
+ return true;
+ }
+ if (SingleInputPort3EditPart.VISUAL_ID == nodeVisualID) {
+ return true;
+ }
+ if (MultiInputPort2EditPart.VISUAL_ID == nodeVisualID) {
+ return true;
+ }
+ break;
+ case SequentialUnit3EditPart.VISUAL_ID:
+ if (SequentialUnitNameTypeLblStrict3EditPart.VISUAL_ID == nodeVisualID) {
+ return true;
+ }
+ if (SequentialUnitSequentialUnitHelperUnitsCompartment2EditPart.VISUAL_ID == nodeVisualID) {
+ return true;
+ }
+ if (SequentialUnitSequentialUnitRefactoringUnitsCompartment2EditPart.VISUAL_ID == nodeVisualID) {
+ return true;
+ }
+ if (SingleInputPort7EditPart.VISUAL_ID == nodeVisualID) {
+ return true;
+ }
+ if (MultiInputPort8EditPart.VISUAL_ID == nodeVisualID) {
+ return true;
+ }
+ break;
+ case ParallelQueuedUnit6EditPart.VISUAL_ID:
+ if (ParallelQueuedUnitNameTypeLblStrict6EditPart.VISUAL_ID == nodeVisualID) {
+ return true;
+ }
+ if (ParallelQueuedUnitParallelQueuedUnitHelperUnitsCompartment5EditPart.VISUAL_ID == nodeVisualID) {
+ return true;
+ }
+ if (ParallelQueuedUnitParallelQueuedUnitRefactoringUnitsCompartment5EditPart.VISUAL_ID == nodeVisualID) {
+ return true;
+ }
+ if (SingleInputPort3EditPart.VISUAL_ID == nodeVisualID) {
+ return true;
+ }
+ if (MultiInputPort2EditPart.VISUAL_ID == nodeVisualID) {
+ return true;
+ }
+ break;
+ case ConditionalUnit3EditPart.VISUAL_ID:
+ if (ConditionalUnitNameType3EditPart.VISUAL_ID == nodeVisualID) {
+ return true;
+ }
+ if (ConditionalUnitConditionalUnitIfCompartment2EditPart.VISUAL_ID == nodeVisualID) {
+ return true;
+ }
+ if (ConditionalUnitConditionalUnitHelperUnitsCompartment2EditPart.VISUAL_ID == nodeVisualID) {
+ return true;
+ }
+ if (ConditionalUnitConditionalUnitThenCompartment2EditPart.VISUAL_ID == nodeVisualID) {
+ return true;
+ }
+ if (ConditionalUnitConditionalUnitElseCompartment2EditPart.VISUAL_ID == nodeVisualID) {
+ return true;
+ }
+ if (SingleInputPort8EditPart.VISUAL_ID == nodeVisualID) {
+ return true;
+ }
+ if (MultiInputPort9EditPart.VISUAL_ID == nodeVisualID) {
+ return true;
+ }
+ break;
+ case CartesianQueuedUnit7EditPart.VISUAL_ID:
+ if (CartesianQueuedUnitNameTypeLblStrict7EditPart.VISUAL_ID == nodeVisualID) {
+ return true;
+ }
+ if (CartesianQueuedUnitCartesianQueuedUnitHelperUnitsCompartment7EditPart.VISUAL_ID == nodeVisualID) {
+ return true;
+ }
+ if (CartesianQueuedUnitCartesianQueuedUnitRefactoringUnitCompartment7EditPart.VISUAL_ID == nodeVisualID) {
+ return true;
+ }
+ if (SingleInputPort2EditPart.VISUAL_ID == nodeVisualID) {
+ return true;
+ }
+ if (MultiInputPortEditPart.VISUAL_ID == nodeVisualID) {
+ return true;
+ }
+ break;
+ case ParallelQueuedUnit7EditPart.VISUAL_ID:
+ if (ParallelQueuedUnitNameTypeLblStrict7EditPart.VISUAL_ID == nodeVisualID) {
+ return true;
+ }
+ if (ParallelQueuedUnitParallelQueuedUnitHelperUnitsCompartment6EditPart.VISUAL_ID == nodeVisualID) {
+ return true;
+ }
+ if (ParallelQueuedUnitParallelQueuedUnitRefactoringUnitsCompartment6EditPart.VISUAL_ID == nodeVisualID) {
+ return true;
+ }
+ if (SingleInputPort3EditPart.VISUAL_ID == nodeVisualID) {
+ return true;
+ }
+ if (MultiInputPort2EditPart.VISUAL_ID == nodeVisualID) {
+ return true;
+ }
+ break;
+ case AtomicUnit3EditPart.VISUAL_ID:
+ if (AtomicUnitLabelType3EditPart.VISUAL_ID == nodeVisualID) {
+ return true;
+ }
+ if (SingleInputPort9EditPart.VISUAL_ID == nodeVisualID) {
+ return true;
+ }
+ break;
+ case SingleFeatureUnit3EditPart.VISUAL_ID:
+ if (SingleFeatureUnitNameType3EditPart.VISUAL_ID == nodeVisualID) {
+ return true;
+ }
+ if (SingleInputPort4EditPart.VISUAL_ID == nodeVisualID) {
+ return true;
+ }
+ if (MultiInputPort3EditPart.VISUAL_ID == nodeVisualID) {
+ return true;
+ }
+ if (SingleOutputPortEditPart.VISUAL_ID == nodeVisualID) {
+ return true;
+ }
+ break;
+ case MultiFeatureUnit3EditPart.VISUAL_ID:
+ if (MultiFeatureUnitNameType3EditPart.VISUAL_ID == nodeVisualID) {
+ return true;
+ }
+ if (SingleInputPort5EditPart.VISUAL_ID == nodeVisualID) {
+ return true;
+ }
+ if (MultiInputPort4EditPart.VISUAL_ID == nodeVisualID) {
+ return true;
+ }
+ if (MultiOutputPortEditPart.VISUAL_ID == nodeVisualID) {
+ return true;
+ }
+ break;
+ case SingleFilterUnit3EditPart.VISUAL_ID:
+ if (SingleFilterUnitNameType3EditPart.VISUAL_ID == nodeVisualID) {
+ return true;
+ }
+ if (MultiInputPort5EditPart.VISUAL_ID == nodeVisualID) {
+ return true;
+ }
+ if (SingleOutputPort2EditPart.VISUAL_ID == nodeVisualID) {
+ return true;
+ }
+ break;
+ case MultiFilterUnit3EditPart.VISUAL_ID:
+ if (MultiFilterUnitNameType3EditPart.VISUAL_ID == nodeVisualID) {
+ return true;
+ }
+ if (MultiInputPort6EditPart.VISUAL_ID == nodeVisualID) {
+ return true;
+ }
+ if (MultiOutputPort2EditPart.VISUAL_ID == nodeVisualID) {
+ return true;
+ }
+ break;
+ case SingleQueuedUnit4EditPart.VISUAL_ID:
+ if (SingleQueuedUnitNameTypeLblStrict4EditPart.VISUAL_ID == nodeVisualID) {
+ return true;
+ }
+ if (SingleQueuedUnitSingleQueuedUnitHelperUnitsCompartment3EditPart.VISUAL_ID == nodeVisualID) {
+ return true;
+ }
+ if (SingleQueuedUnitSingleQueuedUnitRefactoringUnitCompartment3EditPart.VISUAL_ID == nodeVisualID) {
+ return true;
+ }
+ if (SingleInputPort6EditPart.VISUAL_ID == nodeVisualID) {
+ return true;
+ }
+ if (MultiInputPort7EditPart.VISUAL_ID == nodeVisualID) {
+ return true;
+ }
+ break;
+ case SingleFeatureUnit4EditPart.VISUAL_ID:
+ if (SingleFeatureUnitNameType4EditPart.VISUAL_ID == nodeVisualID) {
+ return true;
+ }
+ if (SingleInputPort4EditPart.VISUAL_ID == nodeVisualID) {
+ return true;
+ }
+ if (MultiInputPort3EditPart.VISUAL_ID == nodeVisualID) {
+ return true;
+ }
+ if (SingleOutputPortEditPart.VISUAL_ID == nodeVisualID) {
+ return true;
+ }
+ break;
+ case MultiFeatureUnit4EditPart.VISUAL_ID:
+ if (MultiFeatureUnitNameType4EditPart.VISUAL_ID == nodeVisualID) {
+ return true;
+ }
+ if (SingleInputPort5EditPart.VISUAL_ID == nodeVisualID) {
+ return true;
+ }
+ if (MultiInputPort4EditPart.VISUAL_ID == nodeVisualID) {
+ return true;
+ }
+ if (MultiOutputPortEditPart.VISUAL_ID == nodeVisualID) {
+ return true;
+ }
+ break;
+ case SingleFilterUnit4EditPart.VISUAL_ID:
+ if (SingleFilterUnitNameType4EditPart.VISUAL_ID == nodeVisualID) {
+ return true;
+ }
+ if (MultiInputPort5EditPart.VISUAL_ID == nodeVisualID) {
+ return true;
+ }
+ if (SingleOutputPort2EditPart.VISUAL_ID == nodeVisualID) {
+ return true;
+ }
+ break;
+ case MultiFilterUnit4EditPart.VISUAL_ID:
+ if (MultiFilterUnitNameType4EditPart.VISUAL_ID == nodeVisualID) {
+ return true;
+ }
+ if (MultiInputPort6EditPart.VISUAL_ID == nodeVisualID) {
+ return true;
+ }
+ if (MultiOutputPort2EditPart.VISUAL_ID == nodeVisualID) {
+ return true;
+ }
+ break;
+ case SingleQueuedUnit5EditPart.VISUAL_ID:
+ if (SingleQueuedUnitNameTypeLblStrict5EditPart.VISUAL_ID == nodeVisualID) {
+ return true;
+ }
+ if (SingleQueuedUnitSingleQueuedUnitHelperUnitsCompartment4EditPart.VISUAL_ID == nodeVisualID) {
+ return true;
+ }
+ if (SingleQueuedUnitSingleQueuedUnitRefactoringUnitCompartment4EditPart.VISUAL_ID == nodeVisualID) {
+ return true;
+ }
+ if (SingleInputPort6EditPart.VISUAL_ID == nodeVisualID) {
+ return true;
+ }
+ if (MultiInputPort7EditPart.VISUAL_ID == nodeVisualID) {
+ return true;
+ }
+ break;
+ case SequentialUnit4EditPart.VISUAL_ID:
+ if (SequentialUnitNameTypeLblStrict4EditPart.VISUAL_ID == nodeVisualID) {
+ return true;
+ }
+ if (SequentialUnitSequentialUnitHelperUnitsCompartment3EditPart.VISUAL_ID == nodeVisualID) {
+ return true;
+ }
+ if (SequentialUnitSequentialUnitRefactoringUnitsCompartment3EditPart.VISUAL_ID == nodeVisualID) {
+ return true;
+ }
+ if (SingleInputPort7EditPart.VISUAL_ID == nodeVisualID) {
+ return true;
+ }
+ if (MultiInputPort8EditPart.VISUAL_ID == nodeVisualID) {
+ return true;
+ }
+ break;
+ case SingleFeatureUnit5EditPart.VISUAL_ID:
+ if (SingleFeatureUnitNameType5EditPart.VISUAL_ID == nodeVisualID) {
+ return true;
+ }
+ if (SingleInputPort4EditPart.VISUAL_ID == nodeVisualID) {
+ return true;
+ }
+ if (MultiInputPort3EditPart.VISUAL_ID == nodeVisualID) {
+ return true;
+ }
+ if (SingleOutputPortEditPart.VISUAL_ID == nodeVisualID) {
+ return true;
+ }
+ break;
+ case MultiFeatureUnit5EditPart.VISUAL_ID:
+ if (MultiFeatureUnitNameType5EditPart.VISUAL_ID == nodeVisualID) {
+ return true;
+ }
+ if (SingleInputPort5EditPart.VISUAL_ID == nodeVisualID) {
+ return true;
+ }
+ if (MultiInputPort4EditPart.VISUAL_ID == nodeVisualID) {
+ return true;
+ }
+ if (MultiOutputPortEditPart.VISUAL_ID == nodeVisualID) {
+ return true;
+ }
+ break;
+ case SingleFilterUnit5EditPart.VISUAL_ID:
+ if (SingleFilterUnitNameType5EditPart.VISUAL_ID == nodeVisualID) {
+ return true;
+ }
+ if (MultiInputPort5EditPart.VISUAL_ID == nodeVisualID) {
+ return true;
+ }
+ if (SingleOutputPort2EditPart.VISUAL_ID == nodeVisualID) {
+ return true;
+ }
+ break;
+ case MultiFilterUnit5EditPart.VISUAL_ID:
+ if (MultiFilterUnitNameType5EditPart.VISUAL_ID == nodeVisualID) {
+ return true;
+ }
+ if (MultiInputPort6EditPart.VISUAL_ID == nodeVisualID) {
+ return true;
+ }
+ if (MultiOutputPort2EditPart.VISUAL_ID == nodeVisualID) {
+ return true;
+ }
+ break;
+ case SingleQueuedUnit6EditPart.VISUAL_ID:
+ if (SingleQueuedUnitNameTypeLblStrict6EditPart.VISUAL_ID == nodeVisualID) {
+ return true;
+ }
+ if (SingleQueuedUnitSingleQueuedUnitHelperUnitsCompartment5EditPart.VISUAL_ID == nodeVisualID) {
+ return true;
+ }
+ if (SingleQueuedUnitSingleQueuedUnitRefactoringUnitCompartment5EditPart.VISUAL_ID == nodeVisualID) {
+ return true;
+ }
+ if (SingleInputPort6EditPart.VISUAL_ID == nodeVisualID) {
+ return true;
+ }
+ if (MultiInputPort7EditPart.VISUAL_ID == nodeVisualID) {
+ return true;
+ }
+ break;
+ case ConditionalUnit4EditPart.VISUAL_ID:
+ if (ConditionalUnitNameType4EditPart.VISUAL_ID == nodeVisualID) {
+ return true;
+ }
+ if (ConditionalUnitConditionalUnitIfCompartment3EditPart.VISUAL_ID == nodeVisualID) {
+ return true;
+ }
+ if (ConditionalUnitConditionalUnitHelperUnitsCompartment3EditPart.VISUAL_ID == nodeVisualID) {
+ return true;
+ }
+ if (ConditionalUnitConditionalUnitThenCompartment3EditPart.VISUAL_ID == nodeVisualID) {
+ return true;
+ }
+ if (ConditionalUnitConditionalUnitElseCompartment3EditPart.VISUAL_ID == nodeVisualID) {
+ return true;
+ }
+ if (SingleInputPort8EditPart.VISUAL_ID == nodeVisualID) {
+ return true;
+ }
+ if (MultiInputPort9EditPart.VISUAL_ID == nodeVisualID) {
+ return true;
+ }
+ break;
+ case SingleQueuedUnit7EditPart.VISUAL_ID:
+ if (SingleQueuedUnitNameTypeLblStrict7EditPart.VISUAL_ID == nodeVisualID) {
+ return true;
+ }
+ if (SingleQueuedUnitSingleQueuedUnitHelperUnitsCompartment6EditPart.VISUAL_ID == nodeVisualID) {
+ return true;
+ }
+ if (SingleQueuedUnitSingleQueuedUnitRefactoringUnitCompartment6EditPart.VISUAL_ID == nodeVisualID) {
+ return true;
+ }
+ if (SingleInputPort6EditPart.VISUAL_ID == nodeVisualID) {
+ return true;
+ }
+ if (MultiInputPort7EditPart.VISUAL_ID == nodeVisualID) {
+ return true;
+ }
+ break;
+ case AtomicUnit4EditPart.VISUAL_ID:
+ if (AtomicUnitLabelType4EditPart.VISUAL_ID == nodeVisualID) {
+ return true;
+ }
+ if (SingleInputPort9EditPart.VISUAL_ID == nodeVisualID) {
+ return true;
+ }
+ break;
+ case SequentialUnit5EditPart.VISUAL_ID:
+ if (SequentialUnitNameTypeLblStrict5EditPart.VISUAL_ID == nodeVisualID) {
+ return true;
+ }
+ if (SequentialUnitSequentialUnitHelperUnitsCompartment4EditPart.VISUAL_ID == nodeVisualID) {
+ return true;
+ }
+ if (SequentialUnitSequentialUnitRefactoringUnitsCompartment4EditPart.VISUAL_ID == nodeVisualID) {
+ return true;
+ }
+ if (SingleInputPort7EditPart.VISUAL_ID == nodeVisualID) {
+ return true;
+ }
+ if (MultiInputPort8EditPart.VISUAL_ID == nodeVisualID) {
+ return true;
+ }
+ break;
+ case SequentialUnit6EditPart.VISUAL_ID:
+ if (SequentialUnitNameTypeLblStrict6EditPart.VISUAL_ID == nodeVisualID) {
+ return true;
+ }
+ if (SequentialUnitSequentialUnitHelperUnitsCompartment5EditPart.VISUAL_ID == nodeVisualID) {
+ return true;
+ }
+ if (SequentialUnitSequentialUnitRefactoringUnitsCompartment5EditPart.VISUAL_ID == nodeVisualID) {
+ return true;
+ }
+ if (SingleInputPort7EditPart.VISUAL_ID == nodeVisualID) {
+ return true;
+ }
+ if (MultiInputPort8EditPart.VISUAL_ID == nodeVisualID) {
+ return true;
+ }
+ break;
+ case ConditionalUnit5EditPart.VISUAL_ID:
+ if (ConditionalUnitNameType5EditPart.VISUAL_ID == nodeVisualID) {
+ return true;
+ }
+ if (ConditionalUnitConditionalUnitIfCompartment4EditPart.VISUAL_ID == nodeVisualID) {
+ return true;
+ }
+ if (ConditionalUnitConditionalUnitHelperUnitsCompartment4EditPart.VISUAL_ID == nodeVisualID) {
+ return true;
+ }
+ if (ConditionalUnitConditionalUnitThenCompartment4EditPart.VISUAL_ID == nodeVisualID) {
+ return true;
+ }
+ if (ConditionalUnitConditionalUnitElseCompartment4EditPart.VISUAL_ID == nodeVisualID) {
+ return true;
+ }
+ if (SingleInputPort8EditPart.VISUAL_ID == nodeVisualID) {
+ return true;
+ }
+ if (MultiInputPort9EditPart.VISUAL_ID == nodeVisualID) {
+ return true;
+ }
+ break;
+ case ConditionalUnit6EditPart.VISUAL_ID:
+ if (ConditionalUnitNameType6EditPart.VISUAL_ID == nodeVisualID) {
+ return true;
+ }
+ if (ConditionalUnitConditionalUnitIfCompartment5EditPart.VISUAL_ID == nodeVisualID) {
+ return true;
+ }
+ if (ConditionalUnitConditionalUnitHelperUnitsCompartment5EditPart.VISUAL_ID == nodeVisualID) {
+ return true;
+ }
+ if (ConditionalUnitConditionalUnitThenCompartment5EditPart.VISUAL_ID == nodeVisualID) {
+ return true;
+ }
+ if (ConditionalUnitConditionalUnitElseCompartment5EditPart.VISUAL_ID == nodeVisualID) {
+ return true;
+ }
+ if (SingleInputPort8EditPart.VISUAL_ID == nodeVisualID) {
+ return true;
+ }
+ if (MultiInputPort9EditPart.VISUAL_ID == nodeVisualID) {
+ return true;
+ }
+ break;
+ case SequentialUnit7EditPart.VISUAL_ID:
+ if (SequentialUnitNameTypeLblStrict7EditPart.VISUAL_ID == nodeVisualID) {
+ return true;
+ }
+ if (SequentialUnitSequentialUnitHelperUnitsCompartment6EditPart.VISUAL_ID == nodeVisualID) {
+ return true;
+ }
+ if (SequentialUnitSequentialUnitRefactoringUnitsCompartment6EditPart.VISUAL_ID == nodeVisualID) {
+ return true;
+ }
+ if (SingleInputPort7EditPart.VISUAL_ID == nodeVisualID) {
+ return true;
+ }
+ if (MultiInputPort8EditPart.VISUAL_ID == nodeVisualID) {
+ return true;
+ }
+ break;
+ case AtomicUnit5EditPart.VISUAL_ID:
+ if (AtomicUnitLabelType5EditPart.VISUAL_ID == nodeVisualID) {
+ return true;
+ }
+ if (SingleInputPort9EditPart.VISUAL_ID == nodeVisualID) {
+ return true;
+ }
+ break;
+ case ConditionalUnit7EditPart.VISUAL_ID:
+ if (ConditionalUnitNameType7EditPart.VISUAL_ID == nodeVisualID) {
+ return true;
+ }
+ if (ConditionalUnitConditionalUnitIfCompartment6EditPart.VISUAL_ID == nodeVisualID) {
+ return true;
+ }
+ if (ConditionalUnitConditionalUnitHelperUnitsCompartment6EditPart.VISUAL_ID == nodeVisualID) {
+ return true;
+ }
+ if (ConditionalUnitConditionalUnitThenCompartment6EditPart.VISUAL_ID == nodeVisualID) {
+ return true;
+ }
+ if (ConditionalUnitConditionalUnitElseCompartment6EditPart.VISUAL_ID == nodeVisualID) {
+ return true;
+ }
+ if (SingleInputPort8EditPart.VISUAL_ID == nodeVisualID) {
+ return true;
+ }
+ if (MultiInputPort9EditPart.VISUAL_ID == nodeVisualID) {
+ return true;
+ }
+ break;
+ case ConditionCheckEditPart.VISUAL_ID:
+ if (ConditionCheckNameTypeSpecEditPart.VISUAL_ID == nodeVisualID) {
+ return true;
+ }
+ break;
+ case AtomicUnit6EditPart.VISUAL_ID:
+ if (AtomicUnitLabelType6EditPart.VISUAL_ID == nodeVisualID) {
+ return true;
+ }
+ if (SingleInputPort9EditPart.VISUAL_ID == nodeVisualID) {
+ return true;
+ }
+ break;
+ case AtomicUnit7EditPart.VISUAL_ID:
+ if (AtomicUnitLabelType7EditPart.VISUAL_ID == nodeVisualID) {
+ return true;
+ }
+ if (SingleInputPort9EditPart.VISUAL_ID == nodeVisualID) {
+ return true;
+ }
+ break;
+ case CartesianQueuedUnitCartesianQueuedUnitHelperUnitsCompartmentEditPart.VISUAL_ID:
+ if (SingleFeatureUnitEditPart.VISUAL_ID == nodeVisualID) {
+ return true;
+ }
+ if (MultiFeatureUnitEditPart.VISUAL_ID == nodeVisualID) {
+ return true;
+ }
+ if (SingleFilterUnitEditPart.VISUAL_ID == nodeVisualID) {
+ return true;
+ }
+ if (MultiFilterUnitEditPart.VISUAL_ID == nodeVisualID) {
+ return true;
+ }
+ break;
+ case CartesianQueuedUnitCartesianQueuedUnitRefactoringUnitCompartmentEditPart.VISUAL_ID:
+ if (CartesianQueuedUnit2EditPart.VISUAL_ID == nodeVisualID) {
+ return true;
+ }
+ if (ParallelQueuedUnit2EditPart.VISUAL_ID == nodeVisualID) {
+ return true;
+ }
+ if (SingleQueuedUnit2EditPart.VISUAL_ID == nodeVisualID) {
+ return true;
+ }
+ if (SequentialUnit2EditPart.VISUAL_ID == nodeVisualID) {
+ return true;
+ }
+ if (ConditionalUnit2EditPart.VISUAL_ID == nodeVisualID) {
+ return true;
+ }
+ if (AtomicUnit2EditPart.VISUAL_ID == nodeVisualID) {
+ return true;
+ }
+ break;
+ case CartesianQueuedUnitCartesianQueuedUnitHelperUnitsCompartment2EditPart.VISUAL_ID:
+ if (SingleFeatureUnitEditPart.VISUAL_ID == nodeVisualID) {
+ return true;
+ }
+ if (MultiFeatureUnitEditPart.VISUAL_ID == nodeVisualID) {
+ return true;
+ }
+ if (SingleFilterUnitEditPart.VISUAL_ID == nodeVisualID) {
+ return true;
+ }
+ if (MultiFilterUnitEditPart.VISUAL_ID == nodeVisualID) {
+ return true;
+ }
+ break;
+ case CartesianQueuedUnitCartesianQueuedUnitRefactoringUnitCompartment2EditPart.VISUAL_ID:
+ if (CartesianQueuedUnit2EditPart.VISUAL_ID == nodeVisualID) {
+ return true;
+ }
+ if (ParallelQueuedUnit2EditPart.VISUAL_ID == nodeVisualID) {
+ return true;
+ }
+ if (SingleQueuedUnit2EditPart.VISUAL_ID == nodeVisualID) {
+ return true;
+ }
+ if (SequentialUnit2EditPart.VISUAL_ID == nodeVisualID) {
+ return true;
+ }
+ if (ConditionalUnit2EditPart.VISUAL_ID == nodeVisualID) {
+ return true;
+ }
+ if (AtomicUnit2EditPart.VISUAL_ID == nodeVisualID) {
+ return true;
+ }
+ break;
+ case ParallelQueuedUnitParallelQueuedUnitHelperUnitsCompartmentEditPart.VISUAL_ID:
+ if (SingleFeatureUnit2EditPart.VISUAL_ID == nodeVisualID) {
+ return true;
+ }
+ if (MultiFeatureUnit2EditPart.VISUAL_ID == nodeVisualID) {
+ return true;
+ }
+ if (SingleFilterUnit2EditPart.VISUAL_ID == nodeVisualID) {
+ return true;
+ }
+ if (MultiFilterUnit2EditPart.VISUAL_ID == nodeVisualID) {
+ return true;
+ }
+ break;
+ case ParallelQueuedUnitParallelQueuedUnitRefactoringUnitsCompartmentEditPart.VISUAL_ID:
+ if (CartesianQueuedUnit3EditPart.VISUAL_ID == nodeVisualID) {
+ return true;
+ }
+ if (ParallelQueuedUnit4EditPart.VISUAL_ID == nodeVisualID) {
+ return true;
+ }
+ if (SingleQueuedUnit3EditPart.VISUAL_ID == nodeVisualID) {
+ return true;
+ }
+ if (SequentialUnit3EditPart.VISUAL_ID == nodeVisualID) {
+ return true;
+ }
+ if (ConditionalUnit3EditPart.VISUAL_ID == nodeVisualID) {
+ return true;
+ }
+ if (AtomicUnit3EditPart.VISUAL_ID == nodeVisualID) {
+ return true;
+ }
+ break;
+ case CartesianQueuedUnitCartesianQueuedUnitHelperUnitsCompartment3EditPart.VISUAL_ID:
+ if (SingleFeatureUnitEditPart.VISUAL_ID == nodeVisualID) {
+ return true;
+ }
+ if (MultiFeatureUnitEditPart.VISUAL_ID == nodeVisualID) {
+ return true;
+ }
+ if (SingleFilterUnitEditPart.VISUAL_ID == nodeVisualID) {
+ return true;
+ }
+ if (MultiFilterUnitEditPart.VISUAL_ID == nodeVisualID) {
+ return true;
+ }
+ break;
+ case CartesianQueuedUnitCartesianQueuedUnitRefactoringUnitCompartment3EditPart.VISUAL_ID:
+ if (CartesianQueuedUnit2EditPart.VISUAL_ID == nodeVisualID) {
+ return true;
+ }
+ if (ParallelQueuedUnit2EditPart.VISUAL_ID == nodeVisualID) {
+ return true;
+ }
+ if (SingleQueuedUnit2EditPart.VISUAL_ID == nodeVisualID) {
+ return true;
+ }
+ if (SequentialUnit2EditPart.VISUAL_ID == nodeVisualID) {
+ return true;
+ }
+ if (ConditionalUnit2EditPart.VISUAL_ID == nodeVisualID) {
+ return true;
+ }
+ if (AtomicUnit2EditPart.VISUAL_ID == nodeVisualID) {
+ return true;
+ }
+ break;
+ case SingleQueuedUnitSingleQueuedUnitHelperUnitsCompartmentEditPart.VISUAL_ID:
+ if (SingleFeatureUnit4EditPart.VISUAL_ID == nodeVisualID) {
+ return true;
+ }
+ if (MultiFeatureUnit4EditPart.VISUAL_ID == nodeVisualID) {
+ return true;
+ }
+ if (SingleFilterUnit4EditPart.VISUAL_ID == nodeVisualID) {
+ return true;
+ }
+ if (MultiFilterUnit4EditPart.VISUAL_ID == nodeVisualID) {
+ return true;
+ }
+ break;
+ case SingleQueuedUnitSingleQueuedUnitRefactoringUnitCompartmentEditPart.VISUAL_ID:
+ if (CartesianQueuedUnit4EditPart.VISUAL_ID == nodeVisualID) {
+ return true;
+ }
+ if (ParallelQueuedUnit5EditPart.VISUAL_ID == nodeVisualID) {
+ return true;
+ }
+ if (SingleQueuedUnit5EditPart.VISUAL_ID == nodeVisualID) {
+ return true;
+ }
+ if (SequentialUnit4EditPart.VISUAL_ID == nodeVisualID) {
+ return true;
+ }
+ if (ConditionalUnit4EditPart.VISUAL_ID == nodeVisualID) {
+ return true;
+ }
+ if (AtomicUnit4EditPart.VISUAL_ID == nodeVisualID) {
+ return true;
+ }
+ break;
+ case CartesianQueuedUnitCartesianQueuedUnitHelperUnitsCompartment4EditPart.VISUAL_ID:
+ if (SingleFeatureUnitEditPart.VISUAL_ID == nodeVisualID) {
+ return true;
+ }
+ if (MultiFeatureUnitEditPart.VISUAL_ID == nodeVisualID) {
+ return true;
+ }
+ if (SingleFilterUnitEditPart.VISUAL_ID == nodeVisualID) {
+ return true;
+ }
+ if (MultiFilterUnitEditPart.VISUAL_ID == nodeVisualID) {
+ return true;
+ }
+ break;
+ case CartesianQueuedUnitCartesianQueuedUnitRefactoringUnitCompartment4EditPart.VISUAL_ID:
+ if (CartesianQueuedUnit2EditPart.VISUAL_ID == nodeVisualID) {
+ return true;
+ }
+ if (ParallelQueuedUnit2EditPart.VISUAL_ID == nodeVisualID) {
+ return true;
+ }
+ if (SingleQueuedUnit2EditPart.VISUAL_ID == nodeVisualID) {
+ return true;
+ }
+ if (SequentialUnit2EditPart.VISUAL_ID == nodeVisualID) {
+ return true;
+ }
+ if (ConditionalUnit2EditPart.VISUAL_ID == nodeVisualID) {
+ return true;
+ }
+ if (AtomicUnit2EditPart.VISUAL_ID == nodeVisualID) {
+ return true;
+ }
+ break;
+ case SequentialUnitSequentialUnitHelperUnitsCompartmentEditPart.VISUAL_ID:
+ if (SingleFeatureUnit5EditPart.VISUAL_ID == nodeVisualID) {
+ return true;
+ }
+ if (MultiFeatureUnit5EditPart.VISUAL_ID == nodeVisualID) {
+ return true;
+ }
+ if (SingleFilterUnit5EditPart.VISUAL_ID == nodeVisualID) {
+ return true;
+ }
+ if (MultiFilterUnit5EditPart.VISUAL_ID == nodeVisualID) {
+ return true;
+ }
+ break;
+ case SequentialUnitSequentialUnitRefactoringUnitsCompartmentEditPart.VISUAL_ID:
+ if (CartesianQueuedUnit5EditPart.VISUAL_ID == nodeVisualID) {
+ return true;
+ }
+ if (ParallelQueuedUnit6EditPart.VISUAL_ID == nodeVisualID) {
+ return true;
+ }
+ if (SingleQueuedUnit6EditPart.VISUAL_ID == nodeVisualID) {
+ return true;
+ }
+ if (SequentialUnit6EditPart.VISUAL_ID == nodeVisualID) {
+ return true;
+ }
+ if (ConditionalUnit5EditPart.VISUAL_ID == nodeVisualID) {
+ return true;
+ }
+ if (AtomicUnit5EditPart.VISUAL_ID == nodeVisualID) {
+ return true;
+ }
+ break;
+ case CartesianQueuedUnitCartesianQueuedUnitHelperUnitsCompartment5EditPart.VISUAL_ID:
+ if (SingleFeatureUnitEditPart.VISUAL_ID == nodeVisualID) {
+ return true;
+ }
+ if (MultiFeatureUnitEditPart.VISUAL_ID == nodeVisualID) {
+ return true;
+ }
+ if (SingleFilterUnitEditPart.VISUAL_ID == nodeVisualID) {
+ return true;
+ }
+ if (MultiFilterUnitEditPart.VISUAL_ID == nodeVisualID) {
+ return true;
+ }
+ break;
+ case CartesianQueuedUnitCartesianQueuedUnitRefactoringUnitCompartment5EditPart.VISUAL_ID:
+ if (CartesianQueuedUnit2EditPart.VISUAL_ID == nodeVisualID) {
+ return true;
+ }
+ if (ParallelQueuedUnit2EditPart.VISUAL_ID == nodeVisualID) {
+ return true;
+ }
+ if (SingleQueuedUnit2EditPart.VISUAL_ID == nodeVisualID) {
+ return true;
+ }
+ if (SequentialUnit2EditPart.VISUAL_ID == nodeVisualID) {
+ return true;
+ }
+ if (ConditionalUnit2EditPart.VISUAL_ID == nodeVisualID) {
+ return true;
+ }
+ if (AtomicUnit2EditPart.VISUAL_ID == nodeVisualID) {
+ return true;
+ }
+ break;
+ case ConditionalUnitConditionalUnitIfCompartmentEditPart.VISUAL_ID:
+ if (ConditionCheckEditPart.VISUAL_ID == nodeVisualID) {
+ return true;
+ }
+ break;
+ case ConditionalUnitConditionalUnitHelperUnitsCompartmentEditPart.VISUAL_ID:
+ if (SingleFeatureUnit3EditPart.VISUAL_ID == nodeVisualID) {
+ return true;
+ }
+ if (MultiFeatureUnit3EditPart.VISUAL_ID == nodeVisualID) {
+ return true;
+ }
+ if (SingleFilterUnit3EditPart.VISUAL_ID == nodeVisualID) {
+ return true;
+ }
+ if (MultiFilterUnit3EditPart.VISUAL_ID == nodeVisualID) {
+ return true;
+ }
+ break;
+ case ConditionalUnitConditionalUnitThenCompartmentEditPart.VISUAL_ID:
+ if (CartesianQueuedUnit6EditPart.VISUAL_ID == nodeVisualID) {
+ return true;
+ }
+ if (ParallelQueuedUnit3EditPart.VISUAL_ID == nodeVisualID) {
+ return true;
+ }
+ if (SingleQueuedUnit4EditPart.VISUAL_ID == nodeVisualID) {
+ return true;
+ }
+ if (SequentialUnit5EditPart.VISUAL_ID == nodeVisualID) {
+ return true;
+ }
+ if (ConditionalUnit6EditPart.VISUAL_ID == nodeVisualID) {
+ return true;
+ }
+ if (AtomicUnit6EditPart.VISUAL_ID == nodeVisualID) {
+ return true;
+ }
+ break;
+ case ConditionalUnitConditionalUnitElseCompartmentEditPart.VISUAL_ID:
+ if (CartesianQueuedUnit7EditPart.VISUAL_ID == nodeVisualID) {
+ return true;
+ }
+ if (ParallelQueuedUnit7EditPart.VISUAL_ID == nodeVisualID) {
+ return true;
+ }
+ if (SingleQueuedUnit7EditPart.VISUAL_ID == nodeVisualID) {
+ return true;
+ }
+ if (SequentialUnit7EditPart.VISUAL_ID == nodeVisualID) {
+ return true;
+ }
+ if (ConditionalUnit7EditPart.VISUAL_ID == nodeVisualID) {
+ return true;
+ }
+ if (AtomicUnit7EditPart.VISUAL_ID == nodeVisualID) {
+ return true;
+ }
+ break;
+ case CartesianQueuedUnitCartesianQueuedUnitHelperUnitsCompartment6EditPart.VISUAL_ID:
+ if (SingleFeatureUnitEditPart.VISUAL_ID == nodeVisualID) {
+ return true;
+ }
+ if (MultiFeatureUnitEditPart.VISUAL_ID == nodeVisualID) {
+ return true;
+ }
+ if (SingleFilterUnitEditPart.VISUAL_ID == nodeVisualID) {
+ return true;
+ }
+ if (MultiFilterUnitEditPart.VISUAL_ID == nodeVisualID) {
+ return true;
+ }
+ break;
+ case CartesianQueuedUnitCartesianQueuedUnitRefactoringUnitCompartment6EditPart.VISUAL_ID:
+ if (CartesianQueuedUnit2EditPart.VISUAL_ID == nodeVisualID) {
+ return true;
+ }
+ if (ParallelQueuedUnit2EditPart.VISUAL_ID == nodeVisualID) {
+ return true;
+ }
+ if (SingleQueuedUnit2EditPart.VISUAL_ID == nodeVisualID) {
+ return true;
+ }
+ if (SequentialUnit2EditPart.VISUAL_ID == nodeVisualID) {
+ return true;
+ }
+ if (ConditionalUnit2EditPart.VISUAL_ID == nodeVisualID) {
+ return true;
+ }
+ if (AtomicUnit2EditPart.VISUAL_ID == nodeVisualID) {
+ return true;
+ }
+ break;
+ case ParallelQueuedUnitParallelQueuedUnitHelperUnitsCompartment2EditPart.VISUAL_ID:
+ if (SingleFeatureUnit2EditPart.VISUAL_ID == nodeVisualID) {
+ return true;
+ }
+ if (MultiFeatureUnit2EditPart.VISUAL_ID == nodeVisualID) {
+ return true;
+ }
+ if (SingleFilterUnit2EditPart.VISUAL_ID == nodeVisualID) {
+ return true;
+ }
+ if (MultiFilterUnit2EditPart.VISUAL_ID == nodeVisualID) {
+ return true;
+ }
+ break;
+ case ParallelQueuedUnitParallelQueuedUnitRefactoringUnitsCompartment2EditPart.VISUAL_ID:
+ if (CartesianQueuedUnit3EditPart.VISUAL_ID == nodeVisualID) {
+ return true;
+ }
+ if (ParallelQueuedUnit4EditPart.VISUAL_ID == nodeVisualID) {
+ return true;
+ }
+ if (SingleQueuedUnit3EditPart.VISUAL_ID == nodeVisualID) {
+ return true;
+ }
+ if (SequentialUnit3EditPart.VISUAL_ID == nodeVisualID) {
+ return true;
+ }
+ if (ConditionalUnit3EditPart.VISUAL_ID == nodeVisualID) {
+ return true;
+ }
+ if (AtomicUnit3EditPart.VISUAL_ID == nodeVisualID) {
+ return true;
+ }
+ break;
+ case ParallelQueuedUnitParallelQueuedUnitHelperUnitsCompartment3EditPart.VISUAL_ID:
+ if (SingleFeatureUnit2EditPart.VISUAL_ID == nodeVisualID) {
+ return true;
+ }
+ if (MultiFeatureUnit2EditPart.VISUAL_ID == nodeVisualID) {
+ return true;
+ }
+ if (SingleFilterUnit2EditPart.VISUAL_ID == nodeVisualID) {
+ return true;
+ }
+ if (MultiFilterUnit2EditPart.VISUAL_ID == nodeVisualID) {
+ return true;
+ }
+ break;
+ case ParallelQueuedUnitParallelQueuedUnitRefactoringUnitsCompartment3EditPart.VISUAL_ID:
+ if (CartesianQueuedUnit3EditPart.VISUAL_ID == nodeVisualID) {
+ return true;
+ }
+ if (ParallelQueuedUnit4EditPart.VISUAL_ID == nodeVisualID) {
+ return true;
+ }
+ if (SingleQueuedUnit3EditPart.VISUAL_ID == nodeVisualID) {
+ return true;
+ }
+ if (SequentialUnit3EditPart.VISUAL_ID == nodeVisualID) {
+ return true;
+ }
+ if (ConditionalUnit3EditPart.VISUAL_ID == nodeVisualID) {
+ return true;
+ }
+ if (AtomicUnit3EditPart.VISUAL_ID == nodeVisualID) {
+ return true;
+ }
+ break;
+ case SingleQueuedUnitSingleQueuedUnitHelperUnitsCompartment2EditPart.VISUAL_ID:
+ if (SingleFeatureUnit4EditPart.VISUAL_ID == nodeVisualID) {
+ return true;
+ }
+ if (MultiFeatureUnit4EditPart.VISUAL_ID == nodeVisualID) {
+ return true;
+ }
+ if (SingleFilterUnit4EditPart.VISUAL_ID == nodeVisualID) {
+ return true;
+ }
+ if (MultiFilterUnit4EditPart.VISUAL_ID == nodeVisualID) {
+ return true;
+ }
+ break;
+ case SingleQueuedUnitSingleQueuedUnitRefactoringUnitCompartment2EditPart.VISUAL_ID:
+ if (CartesianQueuedUnit4EditPart.VISUAL_ID == nodeVisualID) {
+ return true;
+ }
+ if (ParallelQueuedUnit5EditPart.VISUAL_ID == nodeVisualID) {
+ return true;
+ }
+ if (SingleQueuedUnit5EditPart.VISUAL_ID == nodeVisualID) {
+ return true;
+ }
+ if (SequentialUnit4EditPart.VISUAL_ID == nodeVisualID) {
+ return true;
+ }
+ if (ConditionalUnit4EditPart.VISUAL_ID == nodeVisualID) {
+ return true;
+ }
+ if (AtomicUnit4EditPart.VISUAL_ID == nodeVisualID) {
+ return true;
+ }
+ break;
+ case ParallelQueuedUnitParallelQueuedUnitHelperUnitsCompartment4EditPart.VISUAL_ID:
+ if (SingleFeatureUnit2EditPart.VISUAL_ID == nodeVisualID) {
+ return true;
+ }
+ if (MultiFeatureUnit2EditPart.VISUAL_ID == nodeVisualID) {
+ return true;
+ }
+ if (SingleFilterUnit2EditPart.VISUAL_ID == nodeVisualID) {
+ return true;
+ }
+ if (MultiFilterUnit2EditPart.VISUAL_ID == nodeVisualID) {
+ return true;
+ }
+ break;
+ case ParallelQueuedUnitParallelQueuedUnitRefactoringUnitsCompartment4EditPart.VISUAL_ID:
+ if (CartesianQueuedUnit3EditPart.VISUAL_ID == nodeVisualID) {
+ return true;
+ }
+ if (ParallelQueuedUnit4EditPart.VISUAL_ID == nodeVisualID) {
+ return true;
+ }
+ if (SingleQueuedUnit3EditPart.VISUAL_ID == nodeVisualID) {
+ return true;
+ }
+ if (SequentialUnit3EditPart.VISUAL_ID == nodeVisualID) {
+ return true;
+ }
+ if (ConditionalUnit3EditPart.VISUAL_ID == nodeVisualID) {
+ return true;
+ }
+ if (AtomicUnit3EditPart.VISUAL_ID == nodeVisualID) {
+ return true;
+ }
+ break;
+ case SequentialUnitSequentialUnitHelperUnitsCompartment2EditPart.VISUAL_ID:
+ if (SingleFeatureUnit5EditPart.VISUAL_ID == nodeVisualID) {
+ return true;
+ }
+ if (MultiFeatureUnit5EditPart.VISUAL_ID == nodeVisualID) {
+ return true;
+ }
+ if (SingleFilterUnit5EditPart.VISUAL_ID == nodeVisualID) {
+ return true;
+ }
+ if (MultiFilterUnit5EditPart.VISUAL_ID == nodeVisualID) {
+ return true;
+ }
+ break;
+ case SequentialUnitSequentialUnitRefactoringUnitsCompartment2EditPart.VISUAL_ID:
+ if (CartesianQueuedUnit5EditPart.VISUAL_ID == nodeVisualID) {
+ return true;
+ }
+ if (ParallelQueuedUnit6EditPart.VISUAL_ID == nodeVisualID) {
+ return true;
+ }
+ if (SingleQueuedUnit6EditPart.VISUAL_ID == nodeVisualID) {
+ return true;
+ }
+ if (SequentialUnit6EditPart.VISUAL_ID == nodeVisualID) {
+ return true;
+ }
+ if (ConditionalUnit5EditPart.VISUAL_ID == nodeVisualID) {
+ return true;
+ }
+ if (AtomicUnit5EditPart.VISUAL_ID == nodeVisualID) {
+ return true;
+ }
+ break;
+ case ParallelQueuedUnitParallelQueuedUnitHelperUnitsCompartment5EditPart.VISUAL_ID:
+ if (SingleFeatureUnit2EditPart.VISUAL_ID == nodeVisualID) {
+ return true;
+ }
+ if (MultiFeatureUnit2EditPart.VISUAL_ID == nodeVisualID) {
+ return true;
+ }
+ if (SingleFilterUnit2EditPart.VISUAL_ID == nodeVisualID) {
+ return true;
+ }
+ if (MultiFilterUnit2EditPart.VISUAL_ID == nodeVisualID) {
+ return true;
+ }
+ break;
+ case ParallelQueuedUnitParallelQueuedUnitRefactoringUnitsCompartment5EditPart.VISUAL_ID:
+ if (CartesianQueuedUnit3EditPart.VISUAL_ID == nodeVisualID) {
+ return true;
+ }
+ if (ParallelQueuedUnit4EditPart.VISUAL_ID == nodeVisualID) {
+ return true;
+ }
+ if (SingleQueuedUnit3EditPart.VISUAL_ID == nodeVisualID) {
+ return true;
+ }
+ if (SequentialUnit3EditPart.VISUAL_ID == nodeVisualID) {
+ return true;
+ }
+ if (ConditionalUnit3EditPart.VISUAL_ID == nodeVisualID) {
+ return true;
+ }
+ if (AtomicUnit3EditPart.VISUAL_ID == nodeVisualID) {
+ return true;
+ }
+ break;
+ case ConditionalUnitConditionalUnitIfCompartment2EditPart.VISUAL_ID:
+ if (ConditionCheckEditPart.VISUAL_ID == nodeVisualID) {
+ return true;
+ }
+ break;
+ case ConditionalUnitConditionalUnitHelperUnitsCompartment2EditPart.VISUAL_ID:
+ if (SingleFeatureUnit3EditPart.VISUAL_ID == nodeVisualID) {
+ return true;
+ }
+ if (MultiFeatureUnit3EditPart.VISUAL_ID == nodeVisualID) {
+ return true;
+ }
+ if (SingleFilterUnit3EditPart.VISUAL_ID == nodeVisualID) {
+ return true;
+ }
+ if (MultiFilterUnit3EditPart.VISUAL_ID == nodeVisualID) {
+ return true;
+ }
+ break;
+ case ConditionalUnitConditionalUnitThenCompartment2EditPart.VISUAL_ID:
+ if (CartesianQueuedUnit6EditPart.VISUAL_ID == nodeVisualID) {
+ return true;
+ }
+ if (ParallelQueuedUnit3EditPart.VISUAL_ID == nodeVisualID) {
+ return true;
+ }
+ if (SingleQueuedUnit4EditPart.VISUAL_ID == nodeVisualID) {
+ return true;
+ }
+ if (SequentialUnit5EditPart.VISUAL_ID == nodeVisualID) {
+ return true;
+ }
+ if (ConditionalUnit6EditPart.VISUAL_ID == nodeVisualID) {
+ return true;
+ }
+ if (AtomicUnit6EditPart.VISUAL_ID == nodeVisualID) {
+ return true;
+ }
+ break;
+ case ConditionalUnitConditionalUnitElseCompartment2EditPart.VISUAL_ID:
+ if (CartesianQueuedUnit7EditPart.VISUAL_ID == nodeVisualID) {
+ return true;
+ }
+ if (ParallelQueuedUnit7EditPart.VISUAL_ID == nodeVisualID) {
+ return true;
+ }
+ if (SingleQueuedUnit7EditPart.VISUAL_ID == nodeVisualID) {
+ return true;
+ }
+ if (SequentialUnit7EditPart.VISUAL_ID == nodeVisualID) {
+ return true;
+ }
+ if (ConditionalUnit7EditPart.VISUAL_ID == nodeVisualID) {
+ return true;
+ }
+ if (AtomicUnit7EditPart.VISUAL_ID == nodeVisualID) {
+ return true;
+ }
+ break;
+ case CartesianQueuedUnitCartesianQueuedUnitHelperUnitsCompartment7EditPart.VISUAL_ID:
+ if (SingleFeatureUnitEditPart.VISUAL_ID == nodeVisualID) {
+ return true;
+ }
+ if (MultiFeatureUnitEditPart.VISUAL_ID == nodeVisualID) {
+ return true;
+ }
+ if (SingleFilterUnitEditPart.VISUAL_ID == nodeVisualID) {
+ return true;
+ }
+ if (MultiFilterUnitEditPart.VISUAL_ID == nodeVisualID) {
+ return true;
+ }
+ break;
+ case CartesianQueuedUnitCartesianQueuedUnitRefactoringUnitCompartment7EditPart.VISUAL_ID:
+ if (CartesianQueuedUnit2EditPart.VISUAL_ID == nodeVisualID) {
+ return true;
+ }
+ if (ParallelQueuedUnit2EditPart.VISUAL_ID == nodeVisualID) {
+ return true;
+ }
+ if (SingleQueuedUnit2EditPart.VISUAL_ID == nodeVisualID) {
+ return true;
+ }
+ if (SequentialUnit2EditPart.VISUAL_ID == nodeVisualID) {
+ return true;
+ }
+ if (ConditionalUnit2EditPart.VISUAL_ID == nodeVisualID) {
+ return true;
+ }
+ if (AtomicUnit2EditPart.VISUAL_ID == nodeVisualID) {
+ return true;
+ }
+ break;
+ case ParallelQueuedUnitParallelQueuedUnitHelperUnitsCompartment6EditPart.VISUAL_ID:
+ if (SingleFeatureUnit2EditPart.VISUAL_ID == nodeVisualID) {
+ return true;
+ }
+ if (MultiFeatureUnit2EditPart.VISUAL_ID == nodeVisualID) {
+ return true;
+ }
+ if (SingleFilterUnit2EditPart.VISUAL_ID == nodeVisualID) {
+ return true;
+ }
+ if (MultiFilterUnit2EditPart.VISUAL_ID == nodeVisualID) {
+ return true;
+ }
+ break;
+ case ParallelQueuedUnitParallelQueuedUnitRefactoringUnitsCompartment6EditPart.VISUAL_ID:
+ if (CartesianQueuedUnit3EditPart.VISUAL_ID == nodeVisualID) {
+ return true;
+ }
+ if (ParallelQueuedUnit4EditPart.VISUAL_ID == nodeVisualID) {
+ return true;
+ }
+ if (SingleQueuedUnit3EditPart.VISUAL_ID == nodeVisualID) {
+ return true;
+ }
+ if (SequentialUnit3EditPart.VISUAL_ID == nodeVisualID) {
+ return true;
+ }
+ if (ConditionalUnit3EditPart.VISUAL_ID == nodeVisualID) {
+ return true;
+ }
+ if (AtomicUnit3EditPart.VISUAL_ID == nodeVisualID) {
+ return true;
+ }
+ break;
+ case SingleQueuedUnitSingleQueuedUnitHelperUnitsCompartment3EditPart.VISUAL_ID:
+ if (SingleFeatureUnit4EditPart.VISUAL_ID == nodeVisualID) {
+ return true;
+ }
+ if (MultiFeatureUnit4EditPart.VISUAL_ID == nodeVisualID) {
+ return true;
+ }
+ if (SingleFilterUnit4EditPart.VISUAL_ID == nodeVisualID) {
+ return true;
+ }
+ if (MultiFilterUnit4EditPart.VISUAL_ID == nodeVisualID) {
+ return true;
+ }
+ break;
+ case SingleQueuedUnitSingleQueuedUnitRefactoringUnitCompartment3EditPart.VISUAL_ID:
+ if (CartesianQueuedUnit4EditPart.VISUAL_ID == nodeVisualID) {
+ return true;
+ }
+ if (ParallelQueuedUnit5EditPart.VISUAL_ID == nodeVisualID) {
+ return true;
+ }
+ if (SingleQueuedUnit5EditPart.VISUAL_ID == nodeVisualID) {
+ return true;
+ }
+ if (SequentialUnit4EditPart.VISUAL_ID == nodeVisualID) {
+ return true;
+ }
+ if (ConditionalUnit4EditPart.VISUAL_ID == nodeVisualID) {
+ return true;
+ }
+ if (AtomicUnit4EditPart.VISUAL_ID == nodeVisualID) {
+ return true;
+ }
+ break;
+ case SingleQueuedUnitSingleQueuedUnitHelperUnitsCompartment4EditPart.VISUAL_ID:
+ if (SingleFeatureUnit4EditPart.VISUAL_ID == nodeVisualID) {
+ return true;
+ }
+ if (MultiFeatureUnit4EditPart.VISUAL_ID == nodeVisualID) {
+ return true;
+ }
+ if (SingleFilterUnit4EditPart.VISUAL_ID == nodeVisualID) {
+ return true;
+ }
+ if (MultiFilterUnit4EditPart.VISUAL_ID == nodeVisualID) {
+ return true;
+ }
+ break;
+ case SingleQueuedUnitSingleQueuedUnitRefactoringUnitCompartment4EditPart.VISUAL_ID:
+ if (CartesianQueuedUnit4EditPart.VISUAL_ID == nodeVisualID) {
+ return true;
+ }
+ if (ParallelQueuedUnit5EditPart.VISUAL_ID == nodeVisualID) {
+ return true;
+ }
+ if (SingleQueuedUnit5EditPart.VISUAL_ID == nodeVisualID) {
+ return true;
+ }
+ if (SequentialUnit4EditPart.VISUAL_ID == nodeVisualID) {
+ return true;
+ }
+ if (ConditionalUnit4EditPart.VISUAL_ID == nodeVisualID) {
+ return true;
+ }
+ if (AtomicUnit4EditPart.VISUAL_ID == nodeVisualID) {
+ return true;
+ }
+ break;
+ case SequentialUnitSequentialUnitHelperUnitsCompartment3EditPart.VISUAL_ID:
+ if (SingleFeatureUnit5EditPart.VISUAL_ID == nodeVisualID) {
+ return true;
+ }
+ if (MultiFeatureUnit5EditPart.VISUAL_ID == nodeVisualID) {
+ return true;
+ }
+ if (SingleFilterUnit5EditPart.VISUAL_ID == nodeVisualID) {
+ return true;
+ }
+ if (MultiFilterUnit5EditPart.VISUAL_ID == nodeVisualID) {
+ return true;
+ }
+ break;
+ case SequentialUnitSequentialUnitRefactoringUnitsCompartment3EditPart.VISUAL_ID:
+ if (CartesianQueuedUnit5EditPart.VISUAL_ID == nodeVisualID) {
+ return true;
+ }
+ if (ParallelQueuedUnit6EditPart.VISUAL_ID == nodeVisualID) {
+ return true;
+ }
+ if (SingleQueuedUnit6EditPart.VISUAL_ID == nodeVisualID) {
+ return true;
+ }
+ if (SequentialUnit6EditPart.VISUAL_ID == nodeVisualID) {
+ return true;
+ }
+ if (ConditionalUnit5EditPart.VISUAL_ID == nodeVisualID) {
+ return true;
+ }
+ if (AtomicUnit5EditPart.VISUAL_ID == nodeVisualID) {
+ return true;
+ }
+ break;
+ case SingleQueuedUnitSingleQueuedUnitHelperUnitsCompartment5EditPart.VISUAL_ID:
+ if (SingleFeatureUnit4EditPart.VISUAL_ID == nodeVisualID) {
+ return true;
+ }
+ if (MultiFeatureUnit4EditPart.VISUAL_ID == nodeVisualID) {
+ return true;
+ }
+ if (SingleFilterUnit4EditPart.VISUAL_ID == nodeVisualID) {
+ return true;
+ }
+ if (MultiFilterUnit4EditPart.VISUAL_ID == nodeVisualID) {
+ return true;
+ }
+ break;
+ case SingleQueuedUnitSingleQueuedUnitRefactoringUnitCompartment5EditPart.VISUAL_ID:
+ if (CartesianQueuedUnit4EditPart.VISUAL_ID == nodeVisualID) {
+ return true;
+ }
+ if (ParallelQueuedUnit5EditPart.VISUAL_ID == nodeVisualID) {
+ return true;
+ }
+ if (SingleQueuedUnit5EditPart.VISUAL_ID == nodeVisualID) {
+ return true;
+ }
+ if (SequentialUnit4EditPart.VISUAL_ID == nodeVisualID) {
+ return true;
+ }
+ if (ConditionalUnit4EditPart.VISUAL_ID == nodeVisualID) {
+ return true;
+ }
+ if (AtomicUnit4EditPart.VISUAL_ID == nodeVisualID) {
+ return true;
+ }
+ break;
+ case ConditionalUnitConditionalUnitIfCompartment3EditPart.VISUAL_ID:
+ if (ConditionCheckEditPart.VISUAL_ID == nodeVisualID) {
+ return true;
+ }
+ break;
+ case ConditionalUnitConditionalUnitHelperUnitsCompartment3EditPart.VISUAL_ID:
+ if (SingleFeatureUnit3EditPart.VISUAL_ID == nodeVisualID) {
+ return true;
+ }
+ if (MultiFeatureUnit3EditPart.VISUAL_ID == nodeVisualID) {
+ return true;
+ }
+ if (SingleFilterUnit3EditPart.VISUAL_ID == nodeVisualID) {
+ return true;
+ }
+ if (MultiFilterUnit3EditPart.VISUAL_ID == nodeVisualID) {
+ return true;
+ }
+ break;
+ case ConditionalUnitConditionalUnitThenCompartment3EditPart.VISUAL_ID:
+ if (CartesianQueuedUnit6EditPart.VISUAL_ID == nodeVisualID) {
+ return true;
+ }
+ if (ParallelQueuedUnit3EditPart.VISUAL_ID == nodeVisualID) {
+ return true;
+ }
+ if (SingleQueuedUnit4EditPart.VISUAL_ID == nodeVisualID) {
+ return true;
+ }
+ if (SequentialUnit5EditPart.VISUAL_ID == nodeVisualID) {
+ return true;
+ }
+ if (ConditionalUnit6EditPart.VISUAL_ID == nodeVisualID) {
+ return true;
+ }
+ if (AtomicUnit6EditPart.VISUAL_ID == nodeVisualID) {
+ return true;
+ }
+ break;
+ case ConditionalUnitConditionalUnitElseCompartment3EditPart.VISUAL_ID:
+ if (CartesianQueuedUnit7EditPart.VISUAL_ID == nodeVisualID) {
+ return true;
+ }
+ if (ParallelQueuedUnit7EditPart.VISUAL_ID == nodeVisualID) {
+ return true;
+ }
+ if (SingleQueuedUnit7EditPart.VISUAL_ID == nodeVisualID) {
+ return true;
+ }
+ if (SequentialUnit7EditPart.VISUAL_ID == nodeVisualID) {
+ return true;
+ }
+ if (ConditionalUnit7EditPart.VISUAL_ID == nodeVisualID) {
+ return true;
+ }
+ if (AtomicUnit7EditPart.VISUAL_ID == nodeVisualID) {
+ return true;
+ }
+ break;
+ case SingleQueuedUnitSingleQueuedUnitHelperUnitsCompartment6EditPart.VISUAL_ID:
+ if (SingleFeatureUnit4EditPart.VISUAL_ID == nodeVisualID) {
+ return true;
+ }
+ if (MultiFeatureUnit4EditPart.VISUAL_ID == nodeVisualID) {
+ return true;
+ }
+ if (SingleFilterUnit4EditPart.VISUAL_ID == nodeVisualID) {
+ return true;
+ }
+ if (MultiFilterUnit4EditPart.VISUAL_ID == nodeVisualID) {
+ return true;
+ }
+ break;
+ case SingleQueuedUnitSingleQueuedUnitRefactoringUnitCompartment6EditPart.VISUAL_ID:
+ if (CartesianQueuedUnit4EditPart.VISUAL_ID == nodeVisualID) {
+ return true;
+ }
+ if (ParallelQueuedUnit5EditPart.VISUAL_ID == nodeVisualID) {
+ return true;
+ }
+ if (SingleQueuedUnit5EditPart.VISUAL_ID == nodeVisualID) {
+ return true;
+ }
+ if (SequentialUnit4EditPart.VISUAL_ID == nodeVisualID) {
+ return true;
+ }
+ if (ConditionalUnit4EditPart.VISUAL_ID == nodeVisualID) {
+ return true;
+ }
+ if (AtomicUnit4EditPart.VISUAL_ID == nodeVisualID) {
+ return true;
+ }
+ break;
+ case SequentialUnitSequentialUnitHelperUnitsCompartment4EditPart.VISUAL_ID:
+ if (SingleFeatureUnit5EditPart.VISUAL_ID == nodeVisualID) {
+ return true;
+ }
+ if (MultiFeatureUnit5EditPart.VISUAL_ID == nodeVisualID) {
+ return true;
+ }
+ if (SingleFilterUnit5EditPart.VISUAL_ID == nodeVisualID) {
+ return true;
+ }
+ if (MultiFilterUnit5EditPart.VISUAL_ID == nodeVisualID) {
+ return true;
+ }
+ break;
+ case SequentialUnitSequentialUnitRefactoringUnitsCompartment4EditPart.VISUAL_ID:
+ if (CartesianQueuedUnit5EditPart.VISUAL_ID == nodeVisualID) {
+ return true;
+ }
+ if (ParallelQueuedUnit6EditPart.VISUAL_ID == nodeVisualID) {
+ return true;
+ }
+ if (SingleQueuedUnit6EditPart.VISUAL_ID == nodeVisualID) {
+ return true;
+ }
+ if (SequentialUnit6EditPart.VISUAL_ID == nodeVisualID) {
+ return true;
+ }
+ if (ConditionalUnit5EditPart.VISUAL_ID == nodeVisualID) {
+ return true;
+ }
+ if (AtomicUnit5EditPart.VISUAL_ID == nodeVisualID) {
+ return true;
+ }
+ break;
+ case SequentialUnitSequentialUnitHelperUnitsCompartment5EditPart.VISUAL_ID:
+ if (SingleFeatureUnit5EditPart.VISUAL_ID == nodeVisualID) {
+ return true;
+ }
+ if (MultiFeatureUnit5EditPart.VISUAL_ID == nodeVisualID) {
+ return true;
+ }
+ if (SingleFilterUnit5EditPart.VISUAL_ID == nodeVisualID) {
+ return true;
+ }
+ if (MultiFilterUnit5EditPart.VISUAL_ID == nodeVisualID) {
+ return true;
+ }
+ break;
+ case SequentialUnitSequentialUnitRefactoringUnitsCompartment5EditPart.VISUAL_ID:
+ if (CartesianQueuedUnit5EditPart.VISUAL_ID == nodeVisualID) {
+ return true;
+ }
+ if (ParallelQueuedUnit6EditPart.VISUAL_ID == nodeVisualID) {
+ return true;
+ }
+ if (SingleQueuedUnit6EditPart.VISUAL_ID == nodeVisualID) {
+ return true;
+ }
+ if (SequentialUnit6EditPart.VISUAL_ID == nodeVisualID) {
+ return true;
+ }
+ if (ConditionalUnit5EditPart.VISUAL_ID == nodeVisualID) {
+ return true;
+ }
+ if (AtomicUnit5EditPart.VISUAL_ID == nodeVisualID) {
+ return true;
+ }
+ break;
+ case ConditionalUnitConditionalUnitIfCompartment4EditPart.VISUAL_ID:
+ if (ConditionCheckEditPart.VISUAL_ID == nodeVisualID) {
+ return true;
+ }
+ break;
+ case ConditionalUnitConditionalUnitHelperUnitsCompartment4EditPart.VISUAL_ID:
+ if (SingleFeatureUnit3EditPart.VISUAL_ID == nodeVisualID) {
+ return true;
+ }
+ if (MultiFeatureUnit3EditPart.VISUAL_ID == nodeVisualID) {
+ return true;
+ }
+ if (SingleFilterUnit3EditPart.VISUAL_ID == nodeVisualID) {
+ return true;
+ }
+ if (MultiFilterUnit3EditPart.VISUAL_ID == nodeVisualID) {
+ return true;
+ }
+ break;
+ case ConditionalUnitConditionalUnitThenCompartment4EditPart.VISUAL_ID:
+ if (CartesianQueuedUnit6EditPart.VISUAL_ID == nodeVisualID) {
+ return true;
+ }
+ if (ParallelQueuedUnit3EditPart.VISUAL_ID == nodeVisualID) {
+ return true;
+ }
+ if (SingleQueuedUnit4EditPart.VISUAL_ID == nodeVisualID) {
+ return true;
+ }
+ if (SequentialUnit5EditPart.VISUAL_ID == nodeVisualID) {
+ return true;
+ }
+ if (ConditionalUnit6EditPart.VISUAL_ID == nodeVisualID) {
+ return true;
+ }
+ if (AtomicUnit6EditPart.VISUAL_ID == nodeVisualID) {
+ return true;
+ }
+ break;
+ case ConditionalUnitConditionalUnitElseCompartment4EditPart.VISUAL_ID:
+ if (CartesianQueuedUnit7EditPart.VISUAL_ID == nodeVisualID) {
+ return true;
+ }
+ if (ParallelQueuedUnit7EditPart.VISUAL_ID == nodeVisualID) {
+ return true;
+ }
+ if (SingleQueuedUnit7EditPart.VISUAL_ID == nodeVisualID) {
+ return true;
+ }
+ if (SequentialUnit7EditPart.VISUAL_ID == nodeVisualID) {
+ return true;
+ }
+ if (ConditionalUnit7EditPart.VISUAL_ID == nodeVisualID) {
+ return true;
+ }
+ if (AtomicUnit7EditPart.VISUAL_ID == nodeVisualID) {
+ return true;
+ }
+ break;
+ case ConditionalUnitConditionalUnitIfCompartment5EditPart.VISUAL_ID:
+ if (ConditionCheckEditPart.VISUAL_ID == nodeVisualID) {
+ return true;
+ }
+ break;
+ case ConditionalUnitConditionalUnitHelperUnitsCompartment5EditPart.VISUAL_ID:
+ if (SingleFeatureUnit3EditPart.VISUAL_ID == nodeVisualID) {
+ return true;
+ }
+ if (MultiFeatureUnit3EditPart.VISUAL_ID == nodeVisualID) {
+ return true;
+ }
+ if (SingleFilterUnit3EditPart.VISUAL_ID == nodeVisualID) {
+ return true;
+ }
+ if (MultiFilterUnit3EditPart.VISUAL_ID == nodeVisualID) {
+ return true;
+ }
+ break;
+ case ConditionalUnitConditionalUnitThenCompartment5EditPart.VISUAL_ID:
+ if (CartesianQueuedUnit6EditPart.VISUAL_ID == nodeVisualID) {
+ return true;
+ }
+ if (ParallelQueuedUnit3EditPart.VISUAL_ID == nodeVisualID) {
+ return true;
+ }
+ if (SingleQueuedUnit4EditPart.VISUAL_ID == nodeVisualID) {
+ return true;
+ }
+ if (SequentialUnit5EditPart.VISUAL_ID == nodeVisualID) {
+ return true;
+ }
+ if (ConditionalUnit6EditPart.VISUAL_ID == nodeVisualID) {
+ return true;
+ }
+ if (AtomicUnit6EditPart.VISUAL_ID == nodeVisualID) {
+ return true;
+ }
+ break;
+ case ConditionalUnitConditionalUnitElseCompartment5EditPart.VISUAL_ID:
+ if (CartesianQueuedUnit7EditPart.VISUAL_ID == nodeVisualID) {
+ return true;
+ }
+ if (ParallelQueuedUnit7EditPart.VISUAL_ID == nodeVisualID) {
+ return true;
+ }
+ if (SingleQueuedUnit7EditPart.VISUAL_ID == nodeVisualID) {
+ return true;
+ }
+ if (SequentialUnit7EditPart.VISUAL_ID == nodeVisualID) {
+ return true;
+ }
+ if (ConditionalUnit7EditPart.VISUAL_ID == nodeVisualID) {
+ return true;
+ }
+ if (AtomicUnit7EditPart.VISUAL_ID == nodeVisualID) {
+ return true;
+ }
+ break;
+ case SequentialUnitSequentialUnitHelperUnitsCompartment6EditPart.VISUAL_ID:
+ if (SingleFeatureUnit5EditPart.VISUAL_ID == nodeVisualID) {
+ return true;
+ }
+ if (MultiFeatureUnit5EditPart.VISUAL_ID == nodeVisualID) {
+ return true;
+ }
+ if (SingleFilterUnit5EditPart.VISUAL_ID == nodeVisualID) {
+ return true;
+ }
+ if (MultiFilterUnit5EditPart.VISUAL_ID == nodeVisualID) {
+ return true;
+ }
+ break;
+ case SequentialUnitSequentialUnitRefactoringUnitsCompartment6EditPart.VISUAL_ID:
+ if (CartesianQueuedUnit5EditPart.VISUAL_ID == nodeVisualID) {
+ return true;
+ }
+ if (ParallelQueuedUnit6EditPart.VISUAL_ID == nodeVisualID) {
+ return true;
+ }
+ if (SingleQueuedUnit6EditPart.VISUAL_ID == nodeVisualID) {
+ return true;
+ }
+ if (SequentialUnit6EditPart.VISUAL_ID == nodeVisualID) {
+ return true;
+ }
+ if (ConditionalUnit5EditPart.VISUAL_ID == nodeVisualID) {
+ return true;
+ }
+ if (AtomicUnit5EditPart.VISUAL_ID == nodeVisualID) {
+ return true;
+ }
+ break;
+ case ConditionalUnitConditionalUnitIfCompartment6EditPart.VISUAL_ID:
+ if (ConditionCheckEditPart.VISUAL_ID == nodeVisualID) {
+ return true;
+ }
+ break;
+ case ConditionalUnitConditionalUnitHelperUnitsCompartment6EditPart.VISUAL_ID:
+ if (SingleFeatureUnit3EditPart.VISUAL_ID == nodeVisualID) {
+ return true;
+ }
+ if (MultiFeatureUnit3EditPart.VISUAL_ID == nodeVisualID) {
+ return true;
+ }
+ if (SingleFilterUnit3EditPart.VISUAL_ID == nodeVisualID) {
+ return true;
+ }
+ if (MultiFilterUnit3EditPart.VISUAL_ID == nodeVisualID) {
+ return true;
+ }
+ break;
+ case ConditionalUnitConditionalUnitThenCompartment6EditPart.VISUAL_ID:
+ if (CartesianQueuedUnit6EditPart.VISUAL_ID == nodeVisualID) {
+ return true;
+ }
+ if (ParallelQueuedUnit3EditPart.VISUAL_ID == nodeVisualID) {
+ return true;
+ }
+ if (SingleQueuedUnit4EditPart.VISUAL_ID == nodeVisualID) {
+ return true;
+ }
+ if (SequentialUnit5EditPart.VISUAL_ID == nodeVisualID) {
+ return true;
+ }
+ if (ConditionalUnit6EditPart.VISUAL_ID == nodeVisualID) {
+ return true;
+ }
+ if (AtomicUnit6EditPart.VISUAL_ID == nodeVisualID) {
+ return true;
+ }
+ break;
+ case ConditionalUnitConditionalUnitElseCompartment6EditPart.VISUAL_ID:
+ if (CartesianQueuedUnit7EditPart.VISUAL_ID == nodeVisualID) {
+ return true;
+ }
+ if (ParallelQueuedUnit7EditPart.VISUAL_ID == nodeVisualID) {
+ return true;
+ }
+ if (SingleQueuedUnit7EditPart.VISUAL_ID == nodeVisualID) {
+ return true;
+ }
+ if (SequentialUnit7EditPart.VISUAL_ID == nodeVisualID) {
+ return true;
+ }
+ if (ConditionalUnit7EditPart.VISUAL_ID == nodeVisualID) {
+ return true;
+ }
+ if (AtomicUnit7EditPart.VISUAL_ID == nodeVisualID) {
+ return true;
+ }
+ break;
+ case ParallelQueuedUnitParallelQueuedUnitHelperUnitsCompartment7EditPart.VISUAL_ID:
+ if (SingleFeatureUnit2EditPart.VISUAL_ID == nodeVisualID) {
+ return true;
+ }
+ if (MultiFeatureUnit2EditPart.VISUAL_ID == nodeVisualID) {
+ return true;
+ }
+ if (SingleFilterUnit2EditPart.VISUAL_ID == nodeVisualID) {
+ return true;
+ }
+ if (MultiFilterUnit2EditPart.VISUAL_ID == nodeVisualID) {
+ return true;
+ }
+ break;
+ case ParallelQueuedUnitParallelQueuedUnitRefactoringUnitsCompartment7EditPart.VISUAL_ID:
+ if (CartesianQueuedUnit3EditPart.VISUAL_ID == nodeVisualID) {
+ return true;
+ }
+ if (ParallelQueuedUnit4EditPart.VISUAL_ID == nodeVisualID) {
+ return true;
+ }
+ if (SingleQueuedUnit3EditPart.VISUAL_ID == nodeVisualID) {
+ return true;
+ }
+ if (SequentialUnit3EditPart.VISUAL_ID == nodeVisualID) {
+ return true;
+ }
+ if (ConditionalUnit3EditPart.VISUAL_ID == nodeVisualID) {
+ return true;
+ }
+ if (AtomicUnit3EditPart.VISUAL_ID == nodeVisualID) {
+ return true;
+ }
+ break;
+ case SingleQueuedUnitSingleQueuedUnitHelperUnitsCompartment7EditPart.VISUAL_ID:
+ if (SingleFeatureUnit4EditPart.VISUAL_ID == nodeVisualID) {
+ return true;
+ }
+ if (MultiFeatureUnit4EditPart.VISUAL_ID == nodeVisualID) {
+ return true;
+ }
+ if (SingleFilterUnit4EditPart.VISUAL_ID == nodeVisualID) {
+ return true;
+ }
+ if (MultiFilterUnit4EditPart.VISUAL_ID == nodeVisualID) {
+ return true;
+ }
+ break;
+ case SingleQueuedUnitSingleQueuedUnitRefactoringUnitCompartment7EditPart.VISUAL_ID:
+ if (CartesianQueuedUnit4EditPart.VISUAL_ID == nodeVisualID) {
+ return true;
+ }
+ if (ParallelQueuedUnit5EditPart.VISUAL_ID == nodeVisualID) {
+ return true;
+ }
+ if (SingleQueuedUnit5EditPart.VISUAL_ID == nodeVisualID) {
+ return true;
+ }
+ if (SequentialUnit4EditPart.VISUAL_ID == nodeVisualID) {
+ return true;
+ }
+ if (ConditionalUnit4EditPart.VISUAL_ID == nodeVisualID) {
+ return true;
+ }
+ if (AtomicUnit4EditPart.VISUAL_ID == nodeVisualID) {
+ return true;
+ }
+ break;
+ case SequentialUnitSequentialUnitHelperUnitsCompartment7EditPart.VISUAL_ID:
+ if (SingleFeatureUnit5EditPart.VISUAL_ID == nodeVisualID) {
+ return true;
+ }
+ if (MultiFeatureUnit5EditPart.VISUAL_ID == nodeVisualID) {
+ return true;
+ }
+ if (SingleFilterUnit5EditPart.VISUAL_ID == nodeVisualID) {
+ return true;
+ }
+ if (MultiFilterUnit5EditPart.VISUAL_ID == nodeVisualID) {
+ return true;
+ }
+ break;
+ case SequentialUnitSequentialUnitRefactoringUnitsCompartment7EditPart.VISUAL_ID:
+ if (CartesianQueuedUnit5EditPart.VISUAL_ID == nodeVisualID) {
+ return true;
+ }
+ if (ParallelQueuedUnit6EditPart.VISUAL_ID == nodeVisualID) {
+ return true;
+ }
+ if (SingleQueuedUnit6EditPart.VISUAL_ID == nodeVisualID) {
+ return true;
+ }
+ if (SequentialUnit6EditPart.VISUAL_ID == nodeVisualID) {
+ return true;
+ }
+ if (ConditionalUnit5EditPart.VISUAL_ID == nodeVisualID) {
+ return true;
+ }
+ if (AtomicUnit5EditPart.VISUAL_ID == nodeVisualID) {
+ return true;
+ }
+ break;
+ case ConditionalUnitConditionalUnitIfCompartment7EditPart.VISUAL_ID:
+ if (ConditionCheckEditPart.VISUAL_ID == nodeVisualID) {
+ return true;
+ }
+ break;
+ case ConditionalUnitConditionalUnitHelperUnitsCompartment7EditPart.VISUAL_ID:
+ if (SingleFeatureUnit3EditPart.VISUAL_ID == nodeVisualID) {
+ return true;
+ }
+ if (MultiFeatureUnit3EditPart.VISUAL_ID == nodeVisualID) {
+ return true;
+ }
+ if (SingleFilterUnit3EditPart.VISUAL_ID == nodeVisualID) {
+ return true;
+ }
+ if (MultiFilterUnit3EditPart.VISUAL_ID == nodeVisualID) {
+ return true;
+ }
+ break;
+ case ConditionalUnitConditionalUnitThenCompartment7EditPart.VISUAL_ID:
+ if (CartesianQueuedUnit6EditPart.VISUAL_ID == nodeVisualID) {
+ return true;
+ }
+ if (ParallelQueuedUnit3EditPart.VISUAL_ID == nodeVisualID) {
+ return true;
+ }
+ if (SingleQueuedUnit4EditPart.VISUAL_ID == nodeVisualID) {
+ return true;
+ }
+ if (SequentialUnit5EditPart.VISUAL_ID == nodeVisualID) {
+ return true;
+ }
+ if (ConditionalUnit6EditPart.VISUAL_ID == nodeVisualID) {
+ return true;
+ }
+ if (AtomicUnit6EditPart.VISUAL_ID == nodeVisualID) {
+ return true;
+ }
+ break;
+ case ConditionalUnitConditionalUnitElseCompartment7EditPart.VISUAL_ID:
+ if (CartesianQueuedUnit7EditPart.VISUAL_ID == nodeVisualID) {
+ return true;
+ }
+ if (ParallelQueuedUnit7EditPart.VISUAL_ID == nodeVisualID) {
+ return true;
+ }
+ if (SingleQueuedUnit7EditPart.VISUAL_ID == nodeVisualID) {
+ return true;
+ }
+ if (SequentialUnit7EditPart.VISUAL_ID == nodeVisualID) {
+ return true;
+ }
+ if (ConditionalUnit7EditPart.VISUAL_ID == nodeVisualID) {
+ return true;
+ }
+ if (AtomicUnit7EditPart.VISUAL_ID == nodeVisualID) {
+ return true;
+ }
+ break;
+ }
+ return false;
+ }
+
+ /**
+ * @generated
+ */
+ public static int getLinkWithClassVisualID(EObject domainElement) {
+ if (domainElement == null) {
+ return -1;
+ }
+ if (ComrelPackage.eINSTANCE.getSinglePortMapping().isSuperTypeOf(
+ domainElement.eClass())) {
+ return SinglePortMappingEditPart.VISUAL_ID;
+ }
+ if (ComrelPackage.eINSTANCE.getMultiPortMapping().isSuperTypeOf(
+ domainElement.eClass())) {
+ return MultiPortMappingEditPart.VISUAL_ID;
+ }
+ if (ComrelPackage.eINSTANCE.getMultiSinglePortMapping().isSuperTypeOf(
+ domainElement.eClass())) {
+ return MultiSinglePortMappingEditPart.VISUAL_ID;
+ }
+ return -1;
+ }
+
+ /**
+ * User can change implementation of this method to handle some specific
+ * situations not covered by default logic.
+ *
+ * @generated
+ */
+ private static boolean isDiagram(CompositeRefactoring element) {
+ return true;
+ }
+
+}
diff --git a/org.eclipse.emf.refactor.comrel.diagram/src/comrel/diagram/part/DeleteElementAction.java b/org.eclipse.emf.refactor.comrel.diagram/src/comrel/diagram/part/DeleteElementAction.java
new file mode 100644
index 0000000..654cc48
--- /dev/null
+++ b/org.eclipse.emf.refactor.comrel.diagram/src/comrel/diagram/part/DeleteElementAction.java
@@ -0,0 +1,91 @@
+/*
+ *
+ */
+package comrel.diagram.part;
+
+import java.util.Iterator;
+import java.util.List;
+
+import org.eclipse.gef.EditPart;
+import org.eclipse.gef.Request;
+import org.eclipse.gef.commands.Command;
+import org.eclipse.gef.commands.UnexecutableCommand;
+import org.eclipse.gmf.runtime.diagram.ui.actions.AbstractDeleteFromAction;
+import org.eclipse.gmf.runtime.diagram.ui.actions.ActionIds;
+import org.eclipse.gmf.runtime.diagram.ui.commands.CommandProxy;
+import org.eclipse.gmf.runtime.diagram.ui.commands.ICommandProxy;
+import org.eclipse.gmf.runtime.diagram.ui.l10n.DiagramUIMessages;
+import org.eclipse.gmf.runtime.emf.commands.core.command.CompositeTransactionalCommand;
+import org.eclipse.ui.ISharedImages;
+import org.eclipse.ui.IWorkbenchPage;
+import org.eclipse.ui.IWorkbenchPart;
+import org.eclipse.ui.PlatformUI;
+
+/**
+ * @generated
+ */
+public class DeleteElementAction extends AbstractDeleteFromAction {
+
+ /**
+ * @generated
+ */
+ public DeleteElementAction(IWorkbenchPart part) {
+ super(part);
+ }
+
+ /**
+ * @generated
+ */
+ public DeleteElementAction(IWorkbenchPage workbenchPage) {
+ super(workbenchPage);
+ }
+
+ /**
+ * @generated
+ */
+ public void init() {
+ super.init();
+ setId(ActionIds.ACTION_DELETE_FROM_MODEL);
+ setText(DiagramUIMessages.DiagramEditor_Delete_from_Model);
+ setToolTipText(DiagramUIMessages.DiagramEditor_Delete_from_ModelToolTip);
+ ISharedImages workbenchImages = PlatformUI.getWorkbench()
+ .getSharedImages();
+ setHoverImageDescriptor(workbenchImages
+ .getImageDescriptor(ISharedImages.IMG_TOOL_DELETE));
+ setImageDescriptor(workbenchImages
+ .getImageDescriptor(ISharedImages.IMG_TOOL_DELETE));
+ setDisabledImageDescriptor(workbenchImages
+ .getImageDescriptor(ISharedImages.IMG_TOOL_DELETE_DISABLED));
+ }
+
+ /**
+ * @generated
+ */
+ protected String getCommandLabel() {
+ return DiagramUIMessages.DiagramEditor_Delete_from_Model;
+ }
+
+ /**
+ * @generated
+ */
+ protected Command getCommand(Request request) {
+ List operationSet = getOperationSet();
+ if (operationSet.isEmpty()) {
+ return UnexecutableCommand.INSTANCE;
+ }
+ Iterator editParts = operationSet.iterator();
+ CompositeTransactionalCommand command = new CompositeTransactionalCommand(
+ getEditingDomain(), getCommandLabel());
+ while (editParts.hasNext()) {
+ EditPart editPart = (EditPart) editParts.next();
+ Command curCommand = editPart.getCommand(request);
+ if (curCommand != null) {
+ command.compose(new CommandProxy(curCommand));
+ }
+ }
+ if (command.isEmpty() || command.size() != operationSet.size()) {
+ return UnexecutableCommand.INSTANCE;
+ }
+ return new ICommandProxy(command);
+ }
+}
diff --git a/org.eclipse.emf.refactor.comrel.diagram/src/comrel/diagram/part/DiagramEditorContextMenuProvider.java b/org.eclipse.emf.refactor.comrel.diagram/src/comrel/diagram/part/DiagramEditorContextMenuProvider.java
new file mode 100644
index 0000000..6c2676d
--- /dev/null
+++ b/org.eclipse.emf.refactor.comrel.diagram/src/comrel/diagram/part/DiagramEditorContextMenuProvider.java
@@ -0,0 +1,78 @@
+/*
+ *
+ */
+package comrel.diagram.part;
+
+import org.eclipse.emf.ecore.EObject;
+import org.eclipse.emf.transaction.util.TransactionUtil;
+import org.eclipse.gef.EditPartViewer;
+import org.eclipse.gmf.runtime.common.ui.services.action.contributionitem.ContributionItemService;
+import org.eclipse.gmf.runtime.diagram.ui.actions.ActionIds;
+import org.eclipse.gmf.runtime.diagram.ui.providers.DiagramContextMenuProvider;
+import org.eclipse.jface.action.IMenuManager;
+import org.eclipse.ui.IWorkbenchPart;
+
+/**
+ * @generated
+ */
+public class DiagramEditorContextMenuProvider extends
+ DiagramContextMenuProvider {
+
+ /**
+ * @generated
+ */
+ private IWorkbenchPart part;
+
+ /**
+ * @generated
+ */
+ private DeleteElementAction deleteAction;
+
+ /**
+ * @generated
+ */
+ public DiagramEditorContextMenuProvider(IWorkbenchPart part,
+ EditPartViewer viewer) {
+ super(part, viewer);
+ this.part = part;
+ deleteAction = new DeleteElementAction(part);
+ deleteAction.init();
+ }
+
+ /**
+ * @generated
+ */
+ public void dispose() {
+ if (deleteAction != null) {
+ deleteAction.dispose();
+ deleteAction = null;
+ }
+ super.dispose();
+ }
+
+ /**
+ * @generated
+ */
+ public void buildContextMenu(final IMenuManager menu) {
+ getViewer().flush();
+ try {
+ TransactionUtil.getEditingDomain(
+ (EObject) getViewer().getContents().getModel())
+ .runExclusive(new Runnable() {
+
+ public void run() {
+ ContributionItemService
+ .getInstance()
+ .contributeToPopupMenu(
+ DiagramEditorContextMenuProvider.this,
+ part);
+ menu.remove(ActionIds.ACTION_DELETE_FROM_MODEL);
+ menu.appendToGroup("editGroup", deleteAction);
+ }
+ });
+ } catch (Exception e) {
+ ComrelDiagramEditorPlugin.getInstance().logError(
+ "Error building context menu", e);
+ }
+ }
+}
diff --git a/org.eclipse.emf.refactor.comrel.diagram/src/comrel/diagram/part/LoadResourceAction.java b/org.eclipse.emf.refactor.comrel.diagram/src/comrel/diagram/part/LoadResourceAction.java
new file mode 100644
index 0000000..01cd381
--- /dev/null
+++ b/org.eclipse.emf.refactor.comrel.diagram/src/comrel/diagram/part/LoadResourceAction.java
@@ -0,0 +1,34 @@
+/*
+ *
+ */
+package comrel.diagram.part;
+
+import org.eclipse.core.commands.AbstractHandler;
+import org.eclipse.core.commands.ExecutionEvent;
+import org.eclipse.core.commands.ExecutionException;
+import org.eclipse.emf.transaction.TransactionalEditingDomain;
+import org.eclipse.gmf.runtime.diagram.ui.parts.DiagramEditor;
+import org.eclipse.swt.widgets.Shell;
+import org.eclipse.ui.IEditorPart;
+import org.eclipse.ui.handlers.HandlerUtil;
+
+/**
+ * @generated
+ */
+public class LoadResourceAction extends AbstractHandler {
+ /**
+ * @generated
+ */
+ public Object execute(ExecutionEvent event) throws ExecutionException {
+ IEditorPart diagramEditor = HandlerUtil.getActiveEditorChecked(event);
+ Shell shell = diagramEditor.getEditorSite().getShell();
+ assert diagramEditor instanceof DiagramEditor;
+ TransactionalEditingDomain editingDomain = ((DiagramEditor) diagramEditor)
+ .getEditingDomain();
+ org.eclipse.emf.edit.ui.action.LoadResourceAction.LoadResourceDialog loadResourceDialog = new org.eclipse.emf.edit.ui.action.LoadResourceAction.LoadResourceDialog(
+ shell, editingDomain);
+ loadResourceDialog.open();
+ return null;
+ }
+
+}
diff --git a/org.eclipse.emf.refactor.comrel.diagram/src/comrel/diagram/part/Messages.java b/org.eclipse.emf.refactor.comrel.diagram/src/comrel/diagram/part/Messages.java
new file mode 100644
index 0000000..1f75066
--- /dev/null
+++ b/org.eclipse.emf.refactor.comrel.diagram/src/comrel/diagram/part/Messages.java
@@ -0,0 +1,1152 @@
+/*
+ *
+ */
+package comrel.diagram.part;
+
+import org.eclipse.osgi.util.NLS;
+
+/**
+ * @generated
+ */
+public class Messages extends NLS {
+
+ /**
+ * @generated
+ */
+ static {
+ NLS.initializeMessages("messages", Messages.class); //$NON-NLS-1$
+ }
+
+ /**
+ * @generated
+ */
+ private Messages() {
+ }
+
+ /**
+ * @generated
+ */
+ public static String ComrelCreationWizardTitle;
+
+ /**
+ * @generated
+ */
+ public static String ComrelCreationWizard_DiagramModelFilePageTitle;
+
+ /**
+ * @generated
+ */
+ public static String ComrelCreationWizard_DiagramModelFilePageDescription;
+
+ /**
+ * @generated
+ */
+ public static String ComrelCreationWizard_DomainModelFilePageTitle;
+
+ /**
+ * @generated
+ */
+ public static String ComrelCreationWizard_DomainModelFilePageDescription;
+
+ /**
+ * @generated
+ */
+ public static String ComrelCreationWizardOpenEditorError;
+
+ /**
+ * @generated
+ */
+ public static String ComrelCreationWizardCreationError;
+
+ /**
+ * @generated
+ */
+ public static String ComrelCreationWizardPageExtensionError;
+
+ /**
+ * @generated
+ */
+ public static String ComrelDiagramEditorUtil_OpenModelResourceErrorDialogTitle;
+
+ /**
+ * @generated
+ */
+ public static String ComrelDiagramEditorUtil_OpenModelResourceErrorDialogMessage;
+
+ /**
+ * @generated
+ */
+ public static String ComrelDiagramEditorUtil_CreateDiagramProgressTask;
+
+ /**
+ * @generated
+ */
+ public static String ComrelDiagramEditorUtil_CreateDiagramCommandLabel;
+
+ /**
+ * @generated
+ */
+ public static String ComrelDocumentProvider_isModifiable;
+
+ /**
+ * @generated
+ */
+ public static String ComrelDocumentProvider_handleElementContentChanged;
+
+ /**
+ * @generated
+ */
+ public static String ComrelDocumentProvider_IncorrectInputError;
+
+ /**
+ * @generated
+ */
+ public static String ComrelDocumentProvider_NoDiagramInResourceError;
+
+ /**
+ * @generated
+ */
+ public static String ComrelDocumentProvider_DiagramLoadingError;
+
+ /**
+ * @generated
+ */
+ public static String ComrelDocumentProvider_UnsynchronizedFileSaveError;
+
+ /**
+ * @generated
+ */
+ public static String ComrelDocumentProvider_SaveDiagramTask;
+
+ /**
+ * @generated
+ */
+ public static String ComrelDocumentProvider_SaveNextResourceTask;
+
+ /**
+ * @generated
+ */
+ public static String ComrelDocumentProvider_SaveAsOperation;
+
+ /**
+ * @generated
+ */
+ public static String InitDiagramFile_ResourceErrorDialogTitle;
+
+ /**
+ * @generated
+ */
+ public static String InitDiagramFile_ResourceErrorDialogMessage;
+
+ /**
+ * @generated
+ */
+ public static String InitDiagramFile_WizardTitle;
+
+ /**
+ * @generated
+ */
+ public static String InitDiagramFile_OpenModelFileDialogTitle;
+
+ /**
+ * @generated
+ */
+ public static String ComrelNewDiagramFileWizard_CreationPageName;
+
+ /**
+ * @generated
+ */
+ public static String ComrelNewDiagramFileWizard_CreationPageTitle;
+
+ /**
+ * @generated
+ */
+ public static String ComrelNewDiagramFileWizard_CreationPageDescription;
+
+ /**
+ * @generated
+ */
+ public static String ComrelNewDiagramFileWizard_RootSelectionPageName;
+
+ /**
+ * @generated
+ */
+ public static String ComrelNewDiagramFileWizard_RootSelectionPageTitle;
+
+ /**
+ * @generated
+ */
+ public static String ComrelNewDiagramFileWizard_RootSelectionPageDescription;
+
+ /**
+ * @generated
+ */
+ public static String ComrelNewDiagramFileWizard_RootSelectionPageSelectionTitle;
+
+ /**
+ * @generated
+ */
+ public static String ComrelNewDiagramFileWizard_RootSelectionPageNoSelectionMessage;
+
+ /**
+ * @generated
+ */
+ public static String ComrelNewDiagramFileWizard_RootSelectionPageInvalidSelectionMessage;
+
+ /**
+ * @generated
+ */
+ public static String ComrelNewDiagramFileWizard_InitDiagramCommand;
+
+ /**
+ * @generated
+ */
+ public static String ComrelNewDiagramFileWizard_IncorrectRootError;
+
+ /**
+ * @generated
+ */
+ public static String ComrelDiagramEditor_SavingDeletedFile;
+
+ /**
+ * @generated
+ */
+ public static String ComrelDiagramEditor_SaveAsErrorTitle;
+
+ /**
+ * @generated
+ */
+ public static String ComrelDiagramEditor_SaveAsErrorMessage;
+
+ /**
+ * @generated
+ */
+ public static String ComrelDiagramEditor_SaveErrorTitle;
+
+ /**
+ * @generated
+ */
+ public static String ComrelDiagramEditor_SaveErrorMessage;
+
+ /**
+ * @generated
+ */
+ public static String ComrelElementChooserDialog_SelectModelElementTitle;
+
+ /**
+ * @generated
+ */
+ public static String ModelElementSelectionPageMessage;
+
+ /**
+ * @generated
+ */
+ public static String ValidateActionMessage;
+
+ /**
+ * @generated
+ */
+ public static String CompositeUnits1Group_title;
+
+ /**
+ * @generated
+ */
+ public static String AtomicUnits2Group_title;
+
+ /**
+ * @generated
+ */
+ public static String FilterUnits3Group_title;
+
+ /**
+ * @generated
+ */
+ public static String FeatureUnits4Group_title;
+
+ /**
+ * @generated
+ */
+ public static String Ports5Group_title;
+
+ /**
+ * @generated
+ */
+ public static String Mappings6Group_title;
+
+ /**
+ * @generated
+ */
+ public static String CartesianQueuedUnit1CreationTool_title;
+
+ /**
+ * @generated
+ */
+ public static String CartesianQueuedUnit1CreationTool_desc;
+
+ /**
+ * @generated
+ */
+ public static String ConditionCheck2CreationTool_title;
+
+ /**
+ * @generated
+ */
+ public static String ConditionCheck2CreationTool_desc;
+
+ /**
+ * @generated
+ */
+ public static String ConditionalUnit3CreationTool_title;
+
+ /**
+ * @generated
+ */
+ public static String ConditionalUnit3CreationTool_desc;
+
+ /**
+ * @generated
+ */
+ public static String ParallelQueuedUnit4CreationTool_title;
+
+ /**
+ * @generated
+ */
+ public static String ParallelQueuedUnit4CreationTool_desc;
+
+ /**
+ * @generated
+ */
+ public static String SequentialUnit5CreationTool_title;
+
+ /**
+ * @generated
+ */
+ public static String SequentialUnit5CreationTool_desc;
+
+ /**
+ * @generated
+ */
+ public static String SingleQueuedUnit6CreationTool_title;
+
+ /**
+ * @generated
+ */
+ public static String SingleQueuedUnit6CreationTool_desc;
+
+ /**
+ * @generated
+ */
+ public static String AtomicUnit1CreationTool_title;
+
+ /**
+ * @generated
+ */
+ public static String AtomicUnit1CreationTool_desc;
+
+ /**
+ * @generated
+ */
+ public static String MultiFilterUnit1CreationTool_title;
+
+ /**
+ * @generated
+ */
+ public static String MultiFilterUnit1CreationTool_desc;
+
+ /**
+ * @generated
+ */
+ public static String SingleFilterUnit2CreationTool_title;
+
+ /**
+ * @generated
+ */
+ public static String SingleFilterUnit2CreationTool_desc;
+
+ /**
+ * @generated
+ */
+ public static String MultiFeatureUnit1CreationTool_title;
+
+ /**
+ * @generated
+ */
+ public static String MultiFeatureUnit1CreationTool_desc;
+
+ /**
+ * @generated
+ */
+ public static String SingleFeatureUnit2CreationTool_title;
+
+ /**
+ * @generated
+ */
+ public static String SingleFeatureUnit2CreationTool_desc;
+
+ /**
+ * @generated
+ */
+ public static String MultiInputPort1CreationTool_title;
+
+ /**
+ * @generated
+ */
+ public static String MultiInputPort1CreationTool_desc;
+
+ /**
+ * @generated
+ */
+ public static String MultiOutputPort2CreationTool_title;
+
+ /**
+ * @generated
+ */
+ public static String MultiOutputPort2CreationTool_desc;
+
+ /**
+ * @generated
+ */
+ public static String SingleInputPort3CreationTool_title;
+
+ /**
+ * @generated
+ */
+ public static String SingleInputPort3CreationTool_desc;
+
+ /**
+ * @generated
+ */
+ public static String SingleOutputPort4CreationTool_title;
+
+ /**
+ * @generated
+ */
+ public static String SingleOutputPort4CreationTool_desc;
+
+ /**
+ * @generated
+ */
+ public static String MultiPortMapping1CreationTool_title;
+
+ /**
+ * @generated
+ */
+ public static String MultiPortMapping1CreationTool_desc;
+
+ /**
+ * @generated
+ */
+ public static String MultiSinglePortMapping2CreationTool_title;
+
+ /**
+ * @generated
+ */
+ public static String MultiSinglePortMapping2CreationTool_desc;
+
+ /**
+ * @generated
+ */
+ public static String SinglePortMapping3CreationTool_title;
+
+ /**
+ * @generated
+ */
+ public static String SinglePortMapping3CreationTool_desc;
+
+ /**
+ * @generated
+ */
+ public static String CartesianQueuedUnitCartesianQueuedUnitHelperUnitsCompartmentEditPart_title;
+
+ /**
+ * @generated
+ */
+ public static String CartesianQueuedUnitCartesianQueuedUnitRefactoringUnitCompartmentEditPart_title;
+
+ /**
+ * @generated
+ */
+ public static String CartesianQueuedUnitCartesianQueuedUnitHelperUnitsCompartment2EditPart_title;
+
+ /**
+ * @generated
+ */
+ public static String CartesianQueuedUnitCartesianQueuedUnitRefactoringUnitCompartment2EditPart_title;
+
+ /**
+ * @generated
+ */
+ public static String ParallelQueuedUnitParallelQueuedUnitHelperUnitsCompartmentEditPart_title;
+
+ /**
+ * @generated
+ */
+ public static String ParallelQueuedUnitParallelQueuedUnitRefactoringUnitsCompartmentEditPart_title;
+
+ /**
+ * @generated
+ */
+ public static String CartesianQueuedUnitCartesianQueuedUnitHelperUnitsCompartment3EditPart_title;
+
+ /**
+ * @generated
+ */
+ public static String CartesianQueuedUnitCartesianQueuedUnitRefactoringUnitCompartment3EditPart_title;
+
+ /**
+ * @generated
+ */
+ public static String SingleQueuedUnitSingleQueuedUnitHelperUnitsCompartmentEditPart_title;
+
+ /**
+ * @generated
+ */
+ public static String SingleQueuedUnitSingleQueuedUnitRefactoringUnitCompartmentEditPart_title;
+
+ /**
+ * @generated
+ */
+ public static String CartesianQueuedUnitCartesianQueuedUnitHelperUnitsCompartment4EditPart_title;
+
+ /**
+ * @generated
+ */
+ public static String CartesianQueuedUnitCartesianQueuedUnitRefactoringUnitCompartment4EditPart_title;
+
+ /**
+ * @generated
+ */
+ public static String SequentialUnitSequentialUnitHelperUnitsCompartmentEditPart_title;
+
+ /**
+ * @generated
+ */
+ public static String SequentialUnitSequentialUnitRefactoringUnitsCompartmentEditPart_title;
+
+ /**
+ * @generated
+ */
+ public static String CartesianQueuedUnitCartesianQueuedUnitHelperUnitsCompartment5EditPart_title;
+
+ /**
+ * @generated
+ */
+ public static String CartesianQueuedUnitCartesianQueuedUnitRefactoringUnitCompartment5EditPart_title;
+
+ /**
+ * @generated
+ */
+ public static String ConditionalUnitConditionalUnitIfCompartmentEditPart_title;
+
+ /**
+ * @generated
+ */
+ public static String ConditionalUnitConditionalUnitHelperUnitsCompartmentEditPart_title;
+
+ /**
+ * @generated
+ */
+ public static String ConditionalUnitConditionalUnitThenCompartmentEditPart_title;
+
+ /**
+ * @generated
+ */
+ public static String ConditionalUnitConditionalUnitElseCompartmentEditPart_title;
+
+ /**
+ * @generated
+ */
+ public static String CartesianQueuedUnitCartesianQueuedUnitHelperUnitsCompartment6EditPart_title;
+
+ /**
+ * @generated
+ */
+ public static String CartesianQueuedUnitCartesianQueuedUnitRefactoringUnitCompartment6EditPart_title;
+
+ /**
+ * @generated
+ */
+ public static String ParallelQueuedUnitParallelQueuedUnitHelperUnitsCompartment2EditPart_title;
+
+ /**
+ * @generated
+ */
+ public static String ParallelQueuedUnitParallelQueuedUnitRefactoringUnitsCompartment2EditPart_title;
+
+ /**
+ * @generated
+ */
+ public static String ParallelQueuedUnitParallelQueuedUnitHelperUnitsCompartment3EditPart_title;
+
+ /**
+ * @generated
+ */
+ public static String ParallelQueuedUnitParallelQueuedUnitRefactoringUnitsCompartment3EditPart_title;
+
+ /**
+ * @generated
+ */
+ public static String SingleQueuedUnitSingleQueuedUnitHelperUnitsCompartment2EditPart_title;
+
+ /**
+ * @generated
+ */
+ public static String SingleQueuedUnitSingleQueuedUnitRefactoringUnitCompartment2EditPart_title;
+
+ /**
+ * @generated
+ */
+ public static String ParallelQueuedUnitParallelQueuedUnitHelperUnitsCompartment4EditPart_title;
+
+ /**
+ * @generated
+ */
+ public static String ParallelQueuedUnitParallelQueuedUnitRefactoringUnitsCompartment4EditPart_title;
+
+ /**
+ * @generated
+ */
+ public static String SequentialUnitSequentialUnitHelperUnitsCompartment2EditPart_title;
+
+ /**
+ * @generated
+ */
+ public static String SequentialUnitSequentialUnitRefactoringUnitsCompartment2EditPart_title;
+
+ /**
+ * @generated
+ */
+ public static String ParallelQueuedUnitParallelQueuedUnitHelperUnitsCompartment5EditPart_title;
+
+ /**
+ * @generated
+ */
+ public static String ParallelQueuedUnitParallelQueuedUnitRefactoringUnitsCompartment5EditPart_title;
+
+ /**
+ * @generated
+ */
+ public static String ConditionalUnitConditionalUnitIfCompartment2EditPart_title;
+
+ /**
+ * @generated
+ */
+ public static String ConditionalUnitConditionalUnitHelperUnitsCompartment2EditPart_title;
+
+ /**
+ * @generated
+ */
+ public static String ConditionalUnitConditionalUnitThenCompartment2EditPart_title;
+
+ /**
+ * @generated
+ */
+ public static String ConditionalUnitConditionalUnitElseCompartment2EditPart_title;
+
+ /**
+ * @generated
+ */
+ public static String CartesianQueuedUnitCartesianQueuedUnitHelperUnitsCompartment7EditPart_title;
+
+ /**
+ * @generated
+ */
+ public static String CartesianQueuedUnitCartesianQueuedUnitRefactoringUnitCompartment7EditPart_title;
+
+ /**
+ * @generated
+ */
+ public static String ParallelQueuedUnitParallelQueuedUnitHelperUnitsCompartment6EditPart_title;
+
+ /**
+ * @generated
+ */
+ public static String ParallelQueuedUnitParallelQueuedUnitRefactoringUnitsCompartment6EditPart_title;
+
+ /**
+ * @generated
+ */
+ public static String SingleQueuedUnitSingleQueuedUnitHelperUnitsCompartment3EditPart_title;
+
+ /**
+ * @generated
+ */
+ public static String SingleQueuedUnitSingleQueuedUnitRefactoringUnitCompartment3EditPart_title;
+
+ /**
+ * @generated
+ */
+ public static String SingleQueuedUnitSingleQueuedUnitHelperUnitsCompartment4EditPart_title;
+
+ /**
+ * @generated
+ */
+ public static String SingleQueuedUnitSingleQueuedUnitRefactoringUnitCompartment4EditPart_title;
+
+ /**
+ * @generated
+ */
+ public static String SequentialUnitSequentialUnitHelperUnitsCompartment3EditPart_title;
+
+ /**
+ * @generated
+ */
+ public static String SequentialUnitSequentialUnitRefactoringUnitsCompartment3EditPart_title;
+
+ /**
+ * @generated
+ */
+ public static String SingleQueuedUnitSingleQueuedUnitHelperUnitsCompartment5EditPart_title;
+
+ /**
+ * @generated
+ */
+ public static String SingleQueuedUnitSingleQueuedUnitRefactoringUnitCompartment5EditPart_title;
+
+ /**
+ * @generated
+ */
+ public static String ConditionalUnitConditionalUnitIfCompartment3EditPart_title;
+
+ /**
+ * @generated
+ */
+ public static String ConditionalUnitConditionalUnitHelperUnitsCompartment3EditPart_title;
+
+ /**
+ * @generated
+ */
+ public static String ConditionalUnitConditionalUnitThenCompartment3EditPart_title;
+
+ /**
+ * @generated
+ */
+ public static String ConditionalUnitConditionalUnitElseCompartment3EditPart_title;
+
+ /**
+ * @generated
+ */
+ public static String SingleQueuedUnitSingleQueuedUnitHelperUnitsCompartment6EditPart_title;
+
+ /**
+ * @generated
+ */
+ public static String SingleQueuedUnitSingleQueuedUnitRefactoringUnitCompartment6EditPart_title;
+
+ /**
+ * @generated
+ */
+ public static String SequentialUnitSequentialUnitHelperUnitsCompartment4EditPart_title;
+
+ /**
+ * @generated
+ */
+ public static String SequentialUnitSequentialUnitRefactoringUnitsCompartment4EditPart_title;
+
+ /**
+ * @generated
+ */
+ public static String SequentialUnitSequentialUnitHelperUnitsCompartment5EditPart_title;
+
+ /**
+ * @generated
+ */
+ public static String SequentialUnitSequentialUnitRefactoringUnitsCompartment5EditPart_title;
+
+ /**
+ * @generated
+ */
+ public static String ConditionalUnitConditionalUnitIfCompartment4EditPart_title;
+
+ /**
+ * @generated
+ */
+ public static String ConditionalUnitConditionalUnitHelperUnitsCompartment4EditPart_title;
+
+ /**
+ * @generated
+ */
+ public static String ConditionalUnitConditionalUnitThenCompartment4EditPart_title;
+
+ /**
+ * @generated
+ */
+ public static String ConditionalUnitConditionalUnitElseCompartment4EditPart_title;
+
+ /**
+ * @generated
+ */
+ public static String ConditionalUnitConditionalUnitIfCompartment5EditPart_title;
+
+ /**
+ * @generated
+ */
+ public static String ConditionalUnitConditionalUnitHelperUnitsCompartment5EditPart_title;
+
+ /**
+ * @generated
+ */
+ public static String ConditionalUnitConditionalUnitThenCompartment5EditPart_title;
+
+ /**
+ * @generated
+ */
+ public static String ConditionalUnitConditionalUnitElseCompartment5EditPart_title;
+
+ /**
+ * @generated
+ */
+ public static String SequentialUnitSequentialUnitHelperUnitsCompartment6EditPart_title;
+
+ /**
+ * @generated
+ */
+ public static String SequentialUnitSequentialUnitRefactoringUnitsCompartment6EditPart_title;
+
+ /**
+ * @generated
+ */
+ public static String ConditionalUnitConditionalUnitIfCompartment6EditPart_title;
+
+ /**
+ * @generated
+ */
+ public static String ConditionalUnitConditionalUnitHelperUnitsCompartment6EditPart_title;
+
+ /**
+ * @generated
+ */
+ public static String ConditionalUnitConditionalUnitThenCompartment6EditPart_title;
+
+ /**
+ * @generated
+ */
+ public static String ConditionalUnitConditionalUnitElseCompartment6EditPart_title;
+
+ /**
+ * @generated
+ */
+ public static String ParallelQueuedUnitParallelQueuedUnitHelperUnitsCompartment7EditPart_title;
+
+ /**
+ * @generated
+ */
+ public static String ParallelQueuedUnitParallelQueuedUnitRefactoringUnitsCompartment7EditPart_title;
+
+ /**
+ * @generated
+ */
+ public static String SingleQueuedUnitSingleQueuedUnitHelperUnitsCompartment7EditPart_title;
+
+ /**
+ * @generated
+ */
+ public static String SingleQueuedUnitSingleQueuedUnitRefactoringUnitCompartment7EditPart_title;
+
+ /**
+ * @generated
+ */
+ public static String SequentialUnitSequentialUnitHelperUnitsCompartment7EditPart_title;
+
+ /**
+ * @generated
+ */
+ public static String SequentialUnitSequentialUnitRefactoringUnitsCompartment7EditPart_title;
+
+ /**
+ * @generated
+ */
+ public static String ConditionalUnitConditionalUnitIfCompartment7EditPart_title;
+
+ /**
+ * @generated
+ */
+ public static String ConditionalUnitConditionalUnitHelperUnitsCompartment7EditPart_title;
+
+ /**
+ * @generated
+ */
+ public static String ConditionalUnitConditionalUnitThenCompartment7EditPart_title;
+
+ /**
+ * @generated
+ */
+ public static String ConditionalUnitConditionalUnitElseCompartment7EditPart_title;
+
+ /**
+ * @generated
+ */
+ public static String CommandName_OpenDiagram;
+
+ /**
+ * @generated
+ */
+ public static String NavigatorGroupName_MultiInputPort_3017_incominglinks;
+
+ /**
+ * @generated
+ */
+ public static String NavigatorGroupName_MultiInputPort_3017_outgoinglinks;
+
+ /**
+ * @generated
+ */
+ public static String NavigatorGroupName_SingleInputPort_3035_incominglinks;
+
+ /**
+ * @generated
+ */
+ public static String NavigatorGroupName_SingleInputPort_3035_outgoinglinks;
+
+ /**
+ * @generated
+ */
+ public static String NavigatorGroupName_MultiInputPort_3032_incominglinks;
+
+ /**
+ * @generated
+ */
+ public static String NavigatorGroupName_MultiInputPort_3032_outgoinglinks;
+
+ /**
+ * @generated
+ */
+ public static String NavigatorGroupName_SingleInputPort_3013_incominglinks;
+
+ /**
+ * @generated
+ */
+ public static String NavigatorGroupName_SingleInputPort_3013_outgoinglinks;
+
+ /**
+ * @generated
+ */
+ public static String NavigatorGroupName_MultiInputPort_3024_incominglinks;
+
+ /**
+ * @generated
+ */
+ public static String NavigatorGroupName_MultiInputPort_3024_outgoinglinks;
+
+ /**
+ * @generated
+ */
+ public static String NavigatorGroupName_MultiPortMapping_4002_target;
+
+ /**
+ * @generated
+ */
+ public static String NavigatorGroupName_MultiPortMapping_4002_source;
+
+ /**
+ * @generated
+ */
+ public static String NavigatorGroupName_MultiInputPort_3020_incominglinks;
+
+ /**
+ * @generated
+ */
+ public static String NavigatorGroupName_MultiInputPort_3020_outgoinglinks;
+
+ /**
+ * @generated
+ */
+ public static String NavigatorGroupName_SingleOutputPort_3018_outgoinglinks;
+
+ /**
+ * @generated
+ */
+ public static String NavigatorGroupName_SinglePortMapping_4001_target;
+
+ /**
+ * @generated
+ */
+ public static String NavigatorGroupName_SinglePortMapping_4001_source;
+
+ /**
+ * @generated
+ */
+ public static String NavigatorGroupName_MultiInputPort_3010_incominglinks;
+
+ /**
+ * @generated
+ */
+ public static String NavigatorGroupName_MultiInputPort_3010_outgoinglinks;
+
+ /**
+ * @generated
+ */
+ public static String NavigatorGroupName_SingleInputPort_3023_incominglinks;
+
+ /**
+ * @generated
+ */
+ public static String NavigatorGroupName_SingleInputPort_3023_outgoinglinks;
+
+ /**
+ * @generated
+ */
+ public static String NavigatorGroupName_MultiOutputPort_3015_outgoinglinks;
+
+ /**
+ * @generated
+ */
+ public static String NavigatorGroupName_SingleOutputPort_3011_outgoinglinks;
+
+ /**
+ * @generated
+ */
+ public static String NavigatorGroupName_SingleInputPort_3005_incominglinks;
+
+ /**
+ * @generated
+ */
+ public static String NavigatorGroupName_SingleInputPort_3005_outgoinglinks;
+
+ /**
+ * @generated
+ */
+ public static String NavigatorGroupName_MultiInputPort_3002_incominglinks;
+
+ /**
+ * @generated
+ */
+ public static String NavigatorGroupName_MultiInputPort_3002_outgoinglinks;
+
+ /**
+ * @generated
+ */
+ public static String NavigatorGroupName_MultiInputPort_3006_incominglinks;
+
+ /**
+ * @generated
+ */
+ public static String NavigatorGroupName_MultiInputPort_3006_outgoinglinks;
+
+ /**
+ * @generated
+ */
+ public static String NavigatorGroupName_SingleInputPort_3031_incominglinks;
+
+ /**
+ * @generated
+ */
+ public static String NavigatorGroupName_SingleInputPort_3031_outgoinglinks;
+
+ /**
+ * @generated
+ */
+ public static String NavigatorGroupName_MultiOutputPort_3021_outgoinglinks;
+
+ /**
+ * @generated
+ */
+ public static String NavigatorGroupName_SingleInputPort_2001_incominglinks;
+
+ /**
+ * @generated
+ */
+ public static String NavigatorGroupName_SingleInputPort_2001_outgoinglinks;
+
+ /**
+ * @generated
+ */
+ public static String NavigatorGroupName_SingleInputPort_3009_incominglinks;
+
+ /**
+ * @generated
+ */
+ public static String NavigatorGroupName_SingleInputPort_3009_outgoinglinks;
+
+ /**
+ * @generated
+ */
+ public static String NavigatorGroupName_CompositeRefactoring_1000_links;
+
+ /**
+ * @generated
+ */
+ public static String NavigatorGroupName_SingleInputPort_3027_incominglinks;
+
+ /**
+ * @generated
+ */
+ public static String NavigatorGroupName_SingleInputPort_3027_outgoinglinks;
+
+ /**
+ * @generated
+ */
+ public static String NavigatorGroupName_SingleInputPort_3001_incominglinks;
+
+ /**
+ * @generated
+ */
+ public static String NavigatorGroupName_SingleInputPort_3001_outgoinglinks;
+
+ /**
+ * @generated
+ */
+ public static String NavigatorGroupName_MultiInputPort_3028_incominglinks;
+
+ /**
+ * @generated
+ */
+ public static String NavigatorGroupName_MultiInputPort_3028_outgoinglinks;
+
+ /**
+ * @generated
+ */
+ public static String NavigatorGroupName_MultiSinglePortMapping_4003_target;
+
+ /**
+ * @generated
+ */
+ public static String NavigatorGroupName_MultiSinglePortMapping_4003_source;
+
+ /**
+ * @generated
+ */
+ public static String NavigatorGroupName_MultiInputPort_3014_incominglinks;
+
+ /**
+ * @generated
+ */
+ public static String NavigatorGroupName_MultiInputPort_3014_outgoinglinks;
+
+ /**
+ * @generated
+ */
+ public static String NavigatorActionProvider_OpenDiagramActionName;
+
+ /**
+ * @generated
+ */
+ public static String AbstractParser_UnexpectedValueType;
+
+ /**
+ * @generated
+ */
+ public static String AbstractParser_WrongStringConversion;
+
+ /**
+ * @generated
+ */
+ public static String AbstractParser_UnknownLiteral;
+
+ /**
+ * @generated
+ */
+ public static String MessageFormatParser_InvalidInputError;
+
+ /**
+ * @generated
+ */
+ public static String ComrelModelingAssistantProviderTitle;
+
+ /**
+ * @generated
+ */
+ public static String ComrelModelingAssistantProviderMessage;
+
+ //TODO: put accessor fields manually
+}
diff --git a/org.eclipse.emf.refactor.comrel.diagram/src/comrel/diagram/part/ModelElementSelectionPage.java b/org.eclipse.emf.refactor.comrel.diagram/src/comrel/diagram/part/ModelElementSelectionPage.java
new file mode 100644
index 0000000..a805458
--- /dev/null
+++ b/org.eclipse.emf.refactor.comrel.diagram/src/comrel/diagram/part/ModelElementSelectionPage.java
@@ -0,0 +1,153 @@
+/*
+ *
+ */
+package comrel.diagram.part;
+
+import org.eclipse.emf.ecore.EObject;
+import org.eclipse.emf.ecore.util.FeatureMap;
+import org.eclipse.emf.edit.provider.IWrapperItemProvider;
+import org.eclipse.emf.edit.ui.provider.AdapterFactoryContentProvider;
+import org.eclipse.emf.edit.ui.provider.AdapterFactoryLabelProvider;
+import org.eclipse.jface.viewers.ISelectionChangedListener;
+import org.eclipse.jface.viewers.IStructuredSelection;
+import org.eclipse.jface.viewers.SelectionChangedEvent;
+import org.eclipse.jface.viewers.StructuredSelection;
+import org.eclipse.jface.viewers.TreeViewer;
+import org.eclipse.jface.wizard.WizardPage;
+import org.eclipse.swt.SWT;
+import org.eclipse.swt.layout.GridData;
+import org.eclipse.swt.layout.GridLayout;
+import org.eclipse.swt.widgets.Composite;
+import org.eclipse.swt.widgets.Label;
+
+/**
+ * Wizard page that allows to select element from model.
+ * @generated
+ */
+public class ModelElementSelectionPage extends WizardPage {
+ /**
+ * @generated
+ */
+ protected EObject selectedModelElement;
+
+ /**
+ * @generated
+ */
+ private TreeViewer modelViewer;
+
+ /**
+ * @generated
+ */
+ public ModelElementSelectionPage(String pageName) {
+ super(pageName);
+ }
+
+ /**
+ * @generated
+ */
+ public EObject getModelElement() {
+ return selectedModelElement;
+ }
+
+ /**
+ * @generated
+ */
+ public void setModelElement(EObject modelElement) {
+ selectedModelElement = modelElement;
+ if (modelViewer != null) {
+ if (selectedModelElement != null) {
+ modelViewer.setInput(selectedModelElement.eResource());
+ modelViewer.setSelection(new StructuredSelection(
+ selectedModelElement));
+ } else {
+ modelViewer.setInput(null);
+ }
+ setPageComplete(validatePage());
+ }
+ }
+
+ /**
+ * @generated
+ */
+ public void createControl(Composite parent) {
+ initializeDialogUnits(parent);
+
+ Composite plate = new Composite(parent, SWT.NONE);
+ plate.setLayoutData(new GridData(GridData.FILL_BOTH));
+ GridLayout layout = new GridLayout();
+ layout.marginWidth = 0;
+ plate.setLayout(layout);
+ setControl(plate);
+
+ Label label = new Label(plate, SWT.NONE);
+ label.setText(getSelectionTitle());
+ label.setLayoutData(new GridData(GridData.HORIZONTAL_ALIGN_BEGINNING));
+
+ modelViewer = new TreeViewer(plate, SWT.SINGLE | SWT.H_SCROLL
+ | SWT.V_SCROLL | SWT.BORDER);
+ GridData layoutData = new GridData(GridData.FILL_BOTH);
+ layoutData.heightHint = 300;
+ layoutData.widthHint = 300;
+ modelViewer.getTree().setLayoutData(layoutData);
+ modelViewer.setContentProvider(new AdapterFactoryContentProvider(
+ ComrelDiagramEditorPlugin.getInstance()
+ .getItemProvidersAdapterFactory()));
+ modelViewer.setLabelProvider(new AdapterFactoryLabelProvider(
+ ComrelDiagramEditorPlugin.getInstance()
+ .getItemProvidersAdapterFactory()));
+ if (selectedModelElement != null) {
+ modelViewer.setInput(selectedModelElement.eResource());
+ modelViewer.setSelection(new StructuredSelection(
+ selectedModelElement));
+ }
+ modelViewer
+ .addSelectionChangedListener(new ISelectionChangedListener() {
+ public void selectionChanged(SelectionChangedEvent event) {
+ ModelElementSelectionPage.this
+ .updateSelection((IStructuredSelection) event
+ .getSelection());
+ }
+ });
+
+ setPageComplete(validatePage());
+ }
+
+ /**
+ * Override to provide custom model element description.
+ * @generated
+ */
+ protected String getSelectionTitle() {
+ return Messages.ModelElementSelectionPageMessage;
+ }
+
+ /**
+ * @generated
+ */
+ protected void updateSelection(IStructuredSelection selection) {
+ selectedModelElement = null;
+ if (selection.size() == 1) {
+ Object selectedElement = selection.getFirstElement();
+ if (selectedElement instanceof IWrapperItemProvider) {
+ selectedElement = ((IWrapperItemProvider) selectedElement)
+ .getValue();
+ }
+ if (selectedElement instanceof FeatureMap.Entry) {
+ selectedElement = ((FeatureMap.Entry) selectedElement)
+ .getValue();
+ }
+ if (selectedElement instanceof EObject) {
+ selectedModelElement = (EObject) selectedElement;
+ }
+ }
+ setPageComplete(validatePage());
+ }
+
+ /**
+ * Override to provide specific validation of the selected model element.
+ * @generated
+ */
+ protected boolean validatePage() {
+ return true;
+ }
+
+}
diff --git a/org.eclipse.emf.refactor.comrel.diagram/src/comrel/diagram/part/ValidateAction.java b/org.eclipse.emf.refactor.comrel.diagram/src/comrel/diagram/part/ValidateAction.java
new file mode 100644
index 0000000..c2b72eb
--- /dev/null
+++ b/org.eclipse.emf.refactor.comrel.diagram/src/comrel/diagram/part/ValidateAction.java
@@ -0,0 +1,300 @@
+/*
+ *
+ */
+package comrel.diagram.part;
+
+import java.lang.reflect.InvocationTargetException;
+import java.util.ArrayList;
+import java.util.HashSet;
+import java.util.Iterator;
+import java.util.List;
+import java.util.Set;
+
+import org.eclipse.core.resources.IFile;
+import org.eclipse.core.runtime.IProgressMonitor;
+import org.eclipse.core.runtime.IStatus;
+import org.eclipse.core.runtime.NullProgressMonitor;
+import org.eclipse.emf.common.util.Diagnostic;
+import org.eclipse.emf.ecore.EObject;
+import org.eclipse.emf.ecore.util.Diagnostician;
+import org.eclipse.emf.transaction.TransactionalEditingDomain;
+import org.eclipse.emf.transaction.util.TransactionUtil;
+import org.eclipse.emf.validation.model.EvaluationMode;
+import org.eclipse.emf.validation.model.IConstraintStatus;
+import org.eclipse.emf.validation.service.IBatchValidator;
+import org.eclipse.emf.validation.service.ModelValidationService;
+import org.eclipse.emf.workspace.util.WorkspaceSynchronizer;
+import org.eclipse.gef.EditPartViewer;
+import org.eclipse.gmf.runtime.diagram.ui.OffscreenEditPartFactory;
+import org.eclipse.gmf.runtime.diagram.ui.editparts.DiagramEditPart;
+import org.eclipse.gmf.runtime.diagram.ui.parts.IDiagramWorkbenchPart;
+import org.eclipse.gmf.runtime.emf.core.util.EMFCoreUtil;
+import org.eclipse.gmf.runtime.notation.View;
+import org.eclipse.jface.action.Action;
+import org.eclipse.jface.operation.IRunnableWithProgress;
+import org.eclipse.ui.IEditorPart;
+import org.eclipse.ui.IWorkbenchPage;
+import org.eclipse.ui.IWorkbenchPart;
+import org.eclipse.ui.PlatformUI;
+import org.eclipse.ui.actions.WorkspaceModifyDelegatingOperation;
+
+import comrel.diagram.providers.ComrelMarkerNavigationProvider;
+import comrel.diagram.providers.ComrelValidationProvider;
+
+/**
+ * @generated
+ */
+public class ValidateAction extends Action {
+
+ /**
+ * @generated
+ */
+ private IWorkbenchPage page;
+
+ /**
+ * @generated
+ */
+ public ValidateAction(IWorkbenchPage page) {
+ setText(Messages.ValidateActionMessage);
+ this.page = page;
+ }
+
+ /**
+ * @generated
+ */
+ public void run() {
+ IWorkbenchPart workbenchPart = page.getActivePart();
+ if (workbenchPart instanceof IDiagramWorkbenchPart) {
+ final IDiagramWorkbenchPart part = (IDiagramWorkbenchPart) workbenchPart;
+ try {
+ new WorkspaceModifyDelegatingOperation(
+ new IRunnableWithProgress() {
+
+ public void run(IProgressMonitor monitor)
+ throws InterruptedException,
+ InvocationTargetException {
+ runValidation(part.getDiagramEditPart(),
+ part.getDiagram());
+ }
+ }).run(new NullProgressMonitor());
+ } catch (Exception e) {
+ ComrelDiagramEditorPlugin.getInstance().logError(
+ "Validation action failed", e); //$NON-NLS-1$
+ }
+ }
+ }
+
+ /**
+ * @generated
+ */
+ public static void runValidation(View view) {
+ try {
+ if (ComrelDiagramEditorUtil.openDiagram(view.eResource())) {
+ IEditorPart editorPart = PlatformUI.getWorkbench()
+ .getActiveWorkbenchWindow().getActivePage()
+ .getActiveEditor();
+ if (editorPart instanceof IDiagramWorkbenchPart) {
+ runValidation(
+ ((IDiagramWorkbenchPart) editorPart)
+ .getDiagramEditPart(),
+ view);
+ } else {
+ runNonUIValidation(view);
+ }
+ }
+ } catch (Exception e) {
+ ComrelDiagramEditorPlugin.getInstance().logError(
+ "Validation action failed", e); //$NON-NLS-1$
+ }
+ }
+
+ /**
+ * @generated
+ */
+ public static void runNonUIValidation(View view) {
+ DiagramEditPart diagramEditPart = OffscreenEditPartFactory
+ .getInstance().createDiagramEditPart(view.getDiagram());
+ runValidation(diagramEditPart, view);
+ }
+
+ /**
+ * @generated
+ */
+ public static void runValidation(DiagramEditPart diagramEditPart, View view) {
+ final DiagramEditPart fpart = diagramEditPart;
+ final View fview = view;
+ TransactionalEditingDomain txDomain = TransactionUtil
+ .getEditingDomain(view);
+ ComrelValidationProvider.runWithConstraints(txDomain, new Runnable() {
+
+ public void run() {
+ validate(fpart, fview);
+ }
+ });
+ }
+
+ /**
+ * @generated
+ */
+ private static Diagnostic runEMFValidator(View target) {
+ if (target.isSetElement() && target.getElement() != null) {
+ return new Diagnostician() {
+
+ public String getObjectLabel(EObject eObject) {
+ return EMFCoreUtil.getQualifiedName(eObject, true);
+ }
+ }.validate(target.getElement());
+ }
+ return Diagnostic.OK_INSTANCE;
+ }
+
+ /**
+ * @generated
+ */
+ private static void validate(DiagramEditPart diagramEditPart, View view) {
+ IFile target = view.eResource() != null ? WorkspaceSynchronizer
+ .getFile(view.eResource()) : null;
+ if (target != null) {
+ ComrelMarkerNavigationProvider.deleteMarkers(target);
+ }
+ Diagnostic diagnostic = runEMFValidator(view);
+ createMarkers(target, diagnostic, diagramEditPart);
+ IBatchValidator validator = (IBatchValidator) ModelValidationService
+ .getInstance().newValidator(EvaluationMode.BATCH);
+ validator.setIncludeLiveConstraints(true);
+ if (view.isSetElement() && view.getElement() != null) {
+ IStatus status = validator.validate(view.getElement());
+ createMarkers(target, status, diagramEditPart);
+ }
+ }
+
+ /**
+ * @generated
+ */
+ private static void createMarkers(IFile target, IStatus validationStatus,
+ DiagramEditPart diagramEditPart) {
+ if (validationStatus.isOK()) {
+ return;
+ }
+ final IStatus rootStatus = validationStatus;
+ List allStatuses = new ArrayList();
+ ComrelDiagramEditorUtil.LazyElement2ViewMap element2ViewMap = new ComrelDiagramEditorUtil.LazyElement2ViewMap(
+ diagramEditPart.getDiagramView(), collectTargetElements(
+ rootStatus, new HashSet<EObject>(), allStatuses));
+ for (Iterator it = allStatuses.iterator(); it.hasNext();) {
+ IConstraintStatus nextStatus = (IConstraintStatus) it.next();
+ View view = ComrelDiagramEditorUtil.findView(diagramEditPart,
+ nextStatus.getTarget(), element2ViewMap);
+ addMarker(diagramEditPart.getViewer(), target, view.eResource()
+ .getURIFragment(view), EMFCoreUtil.getQualifiedName(
+ nextStatus.getTarget(), true), nextStatus.getMessage(),
+ nextStatus.getSeverity());
+ }
+ }
+
+ /**
+ * @generated
+ */
+ private static void createMarkers(IFile target,
+ Diagnostic emfValidationStatus, DiagramEditPart diagramEditPart) {
+ if (emfValidationStatus.getSeverity() == Diagnostic.OK) {
+ return;
+ }
+ final Diagnostic rootStatus = emfValidationStatus;
+ List allDiagnostics = new ArrayList();
+ ComrelDiagramEditorUtil.LazyElement2ViewMap element2ViewMap = new ComrelDiagramEditorUtil.LazyElement2ViewMap(
+ diagramEditPart.getDiagramView(), collectTargetElements(
+ rootStatus, new HashSet<EObject>(), allDiagnostics));
+ for (Iterator it = emfValidationStatus.getChildren().iterator(); it
+ .hasNext();) {
+ Diagnostic nextDiagnostic = (Diagnostic) it.next();
+ List data = nextDiagnostic.getData();
+ if (data != null && !data.isEmpty()
+ && data.get(0) instanceof EObject) {
+ EObject element = (EObject) data.get(0);
+ View view = ComrelDiagramEditorUtil.findView(diagramEditPart,
+ element, element2ViewMap);
+ addMarker(
+ diagramEditPart.getViewer(),
+ target,
+ view.eResource().getURIFragment(view),
+ EMFCoreUtil.getQualifiedName(element, true),
+ nextDiagnostic.getMessage(),
+ diagnosticToStatusSeverity(nextDiagnostic.getSeverity()));
+ }
+ }
+ }
+
+ /**
+ * @generated
+ */
+ private static void addMarker(EditPartViewer viewer, IFile target,
+ String elementId, String location, String message,
+ int statusSeverity) {
+ if (target == null) {
+ return;
+ }
+ ComrelMarkerNavigationProvider.addMarker(target, elementId, location,
+ message, statusSeverity);
+ }
+
+ /**
+ * @generated
+ */
+ private static int diagnosticToStatusSeverity(int diagnosticSeverity) {
+ if (diagnosticSeverity == Diagnostic.OK) {
+ return IStatus.OK;
+ } else if (diagnosticSeverity == Diagnostic.INFO) {
+ return IStatus.INFO;
+ } else if (diagnosticSeverity == Diagnostic.WARNING) {
+ return IStatus.WARNING;
+ } else if (diagnosticSeverity == Diagnostic.ERROR
+ || diagnosticSeverity == Diagnostic.CANCEL) {
+ return IStatus.ERROR;
+ }
+ return IStatus.INFO;
+ }
+
+ /**
+ * @generated
+ */
+ private static Set<EObject> collectTargetElements(IStatus status,
+ Set<EObject> targetElementCollector, List allConstraintStatuses) {
+ if (status instanceof IConstraintStatus) {
+ targetElementCollector
+ .add(((IConstraintStatus) status).getTarget());
+ allConstraintStatuses.add(status);
+ }
+ if (status.isMultiStatus()) {
+ IStatus[] children = status.getChildren();
+ for (int i = 0; i < children.length; i++) {
+ collectTargetElements(children[i], targetElementCollector,
+ allConstraintStatuses);
+ }
+ }
+ return targetElementCollector;
+ }
+
+ /**
+ * @generated
+ */
+ private static Set<EObject> collectTargetElements(Diagnostic diagnostic,
+ Set<EObject> targetElementCollector, List allDiagnostics) {
+ List data = diagnostic.getData();
+ EObject target = null;
+ if (data != null && !data.isEmpty() && data.get(0) instanceof EObject) {
+ target = (EObject) data.get(0);
+ targetElementCollector.add(target);
+ allDiagnostics.add(diagnostic);
+ }
+ if (diagnostic.getChildren() != null
+ && !diagnostic.getChildren().isEmpty()) {
+ for (Iterator it = diagnostic.getChildren().iterator(); it
+ .hasNext();) {
+ collectTargetElements((Diagnostic) it.next(),
+ targetElementCollector, allDiagnostics);
+ }
+ }
+ return targetElementCollector;
+ }
+}
diff --git a/org.eclipse.emf.refactor.comrel.diagram/src/comrel/diagram/part/custom/ElementTypeWithId.java b/org.eclipse.emf.refactor.comrel.diagram/src/comrel/diagram/part/custom/ElementTypeWithId.java
new file mode 100644
index 0000000..f2f7dab
--- /dev/null
+++ b/org.eclipse.emf.refactor.comrel.diagram/src/comrel/diagram/part/custom/ElementTypeWithId.java
@@ -0,0 +1,94 @@
+package comrel.diagram.part.custom;
+
+import java.net.URL;
+
+import org.eclipse.emf.ecore.EClass;
+import org.eclipse.gmf.runtime.common.core.command.ICommand;
+import org.eclipse.gmf.runtime.emf.type.core.IElementType;
+import org.eclipse.gmf.runtime.emf.type.core.edithelper.IEditHelper;
+import org.eclipse.gmf.runtime.emf.type.core.requests.IEditCommandRequest;
+
+
+/**
+ * Neues ElementTyp mit dem Attribut refId
+ * @author Gerrit
+ *
+ */
+public class ElementTypeWithId implements IElementType {
+
+ final String refId;
+ final IElementType iElementType;
+
+ public ElementTypeWithId(String refId, IElementType iElementType){
+ this.refId=refId;
+ this.iElementType=iElementType;
+ }
+
+ @Override
+ public boolean canEdit(IEditCommandRequest req) {
+
+ return iElementType.canEdit(req);
+ }
+
+ @Override
+ public IElementType[] getAllSuperTypes() {
+ return iElementType.getAllSuperTypes();
+ }
+
+ @Override
+ public String getDisplayName() {
+ return iElementType.getDisplayName();
+ }
+
+ @Override
+ public EClass getEClass() {
+ return iElementType.getEClass();
+ }
+
+ @Override
+ public ICommand getEditCommand(IEditCommandRequest request) {
+ return iElementType.getEditCommand(request);
+ }
+
+ @Override
+ public IEditHelper getEditHelper() {
+ return iElementType.getEditHelper();
+ }
+
+ @Override
+ public URL getIconURL() {
+ return iElementType.getIconURL();
+ }
+
+ @Override
+ public String getId() {
+ return iElementType.getId();
+ }
+
+ @Override
+ public Object getAdapter(Class adapter) {
+ return iElementType.getAdapter(adapter);
+ }
+
+
+ @Override
+ public boolean equals(Object obj) {
+ return iElementType.equals(obj);
+ }
+
+
+ @Override
+ public int hashCode() {
+ return iElementType.hashCode();
+ }
+
+ @Override
+ public String toString() {
+ return iElementType.toString();
+ }
+
+ public String getRefId(){
+ return this.refId;
+ }
+
+}
diff --git a/org.eclipse.emf.refactor.comrel.diagram/src/comrel/diagram/part/custom/ToolEntryComparator.java b/org.eclipse.emf.refactor.comrel.diagram/src/comrel/diagram/part/custom/ToolEntryComparator.java
new file mode 100644
index 0000000..2693ec8
--- /dev/null
+++ b/org.eclipse.emf.refactor.comrel.diagram/src/comrel/diagram/part/custom/ToolEntryComparator.java
@@ -0,0 +1,27 @@
+package comrel.diagram.part.custom;
+
+import java.util.Comparator;
+
+import org.eclipse.gef.palette.ToolEntry;
+
+/**
+ * Comparator zum sortieren von ToolEntrys
+ * @author Gerrit
+ *
+ */
+public class ToolEntryComparator implements Comparator<ToolEntry> {
+
+ @Override
+ public int compare(ToolEntry arg0, ToolEntry arg1) {
+ int result = 0;
+ result = arg0.getLabel().compareTo(arg1.getLabel());
+ if(result == 0) {
+ result = arg0.getDescription().compareTo(arg1.getDescription());
+ }
+ if(result == 0) {
+ result = arg0.getId().compareTo(arg1.getId());
+ }
+ return result;
+ }
+
+}
diff --git a/org.eclipse.emf.refactor.comrel.diagram/src/comrel/diagram/part/custom/UnspecifiedTypeCreationToolWithUnitId.java b/org.eclipse.emf.refactor.comrel.diagram/src/comrel/diagram/part/custom/UnspecifiedTypeCreationToolWithUnitId.java
new file mode 100644
index 0000000..d4db5d7
--- /dev/null
+++ b/org.eclipse.emf.refactor.comrel.diagram/src/comrel/diagram/part/custom/UnspecifiedTypeCreationToolWithUnitId.java
@@ -0,0 +1,37 @@
+package comrel.diagram.part.custom;
+
+import java.util.List;
+
+import org.eclipse.gef.Request;
+import org.eclipse.gmf.runtime.diagram.ui.tools.UnspecifiedTypeCreationTool;
+
+import comrel.diagram.part.ComrelPaletteFactory;
+
+/**
+ * erstellt einen unspezifiziertes CreationTool mit UnitId
+ * @author Gerrit
+ *
+ */
+public class UnspecifiedTypeCreationToolWithUnitId extends UnspecifiedTypeCreationTool {
+
+ String unitId ="";
+
+ public UnspecifiedTypeCreationToolWithUnitId(List elementTypes, String unitId) {
+ super(elementTypes);
+ this.unitId = unitId;
+ }
+
+ public String getUnitId(){
+ return this.unitId;
+ }
+
+ /**
+ * Erstellt einen Request, fügt ihm vorher noch die UNIT_ID hinzu
+ */
+ protected Request createTargetRequest() {
+ Request request = super.createTargetRequest();
+ request.getExtendedData().put(ComrelPaletteFactory.UNIT_ID, unitId);
+ return request;
+ }
+
+}
\ No newline at end of file
diff --git a/org.eclipse.emf.refactor.comrel.diagram/src/comrel/diagram/preferences/DiagramAppearancePreferencePage.java b/org.eclipse.emf.refactor.comrel.diagram/src/comrel/diagram/preferences/DiagramAppearancePreferencePage.java
new file mode 100644
index 0000000..ff220e1
--- /dev/null
+++ b/org.eclipse.emf.refactor.comrel.diagram/src/comrel/diagram/preferences/DiagramAppearancePreferencePage.java
@@ -0,0 +1,22 @@
+/*
+ *
+ */
+package comrel.diagram.preferences;
+
+import org.eclipse.gmf.runtime.diagram.ui.preferences.AppearancePreferencePage;
+
+import comrel.diagram.part.ComrelDiagramEditorPlugin;
+
+/**
+ * @generated
+ */
+public class DiagramAppearancePreferencePage extends AppearancePreferencePage {
+
+ /**
+ * @generated
+ */
+ public DiagramAppearancePreferencePage() {
+ setPreferenceStore(ComrelDiagramEditorPlugin.getInstance()
+ .getPreferenceStore());
+ }
+}
diff --git a/org.eclipse.emf.refactor.comrel.diagram/src/comrel/diagram/preferences/DiagramConnectionsPreferencePage.java b/org.eclipse.emf.refactor.comrel.diagram/src/comrel/diagram/preferences/DiagramConnectionsPreferencePage.java
new file mode 100644
index 0000000..44e632d
--- /dev/null
+++ b/org.eclipse.emf.refactor.comrel.diagram/src/comrel/diagram/preferences/DiagramConnectionsPreferencePage.java
@@ -0,0 +1,22 @@
+/*
+ *
+ */
+package comrel.diagram.preferences;
+
+import org.eclipse.gmf.runtime.diagram.ui.preferences.ConnectionsPreferencePage;
+
+import comrel.diagram.part.ComrelDiagramEditorPlugin;
+
+/**
+ * @generated
+ */
+public class DiagramConnectionsPreferencePage extends ConnectionsPreferencePage {
+
+ /**
+ * @generated
+ */
+ public DiagramConnectionsPreferencePage() {
+ setPreferenceStore(ComrelDiagramEditorPlugin.getInstance()
+ .getPreferenceStore());
+ }
+}
diff --git a/org.eclipse.emf.refactor.comrel.diagram/src/comrel/diagram/preferences/DiagramGeneralPreferencePage.java b/org.eclipse.emf.refactor.comrel.diagram/src/comrel/diagram/preferences/DiagramGeneralPreferencePage.java
new file mode 100644
index 0000000..f120ca9
--- /dev/null
+++ b/org.eclipse.emf.refactor.comrel.diagram/src/comrel/diagram/preferences/DiagramGeneralPreferencePage.java
@@ -0,0 +1,22 @@
+/*
+ *
+ */
+package comrel.diagram.preferences;
+
+import org.eclipse.gmf.runtime.diagram.ui.preferences.DiagramsPreferencePage;
+
+import comrel.diagram.part.ComrelDiagramEditorPlugin;
+
+/**
+ * @generated
+ */
+public class DiagramGeneralPreferencePage extends DiagramsPreferencePage {
+
+ /**
+ * @generated
+ */
+ public DiagramGeneralPreferencePage() {
+ setPreferenceStore(ComrelDiagramEditorPlugin.getInstance()
+ .getPreferenceStore());
+ }
+}
diff --git a/org.eclipse.emf.refactor.comrel.diagram/src/comrel/diagram/preferences/DiagramPreferenceInitializer.java b/org.eclipse.emf.refactor.comrel.diagram/src/comrel/diagram/preferences/DiagramPreferenceInitializer.java
new file mode 100644
index 0000000..2c7ff8e
--- /dev/null
+++ b/org.eclipse.emf.refactor.comrel.diagram/src/comrel/diagram/preferences/DiagramPreferenceInitializer.java
@@ -0,0 +1,35 @@
+/*
+ *
+ */
+package comrel.diagram.preferences;
+
+import org.eclipse.core.runtime.preferences.AbstractPreferenceInitializer;
+import org.eclipse.jface.preference.IPreferenceStore;
+
+import comrel.diagram.part.ComrelDiagramEditorPlugin;
+
+/**
+ * @generated
+ */
+public class DiagramPreferenceInitializer extends AbstractPreferenceInitializer {
+
+ /**
+ * @generated
+ */
+ public void initializeDefaultPreferences() {
+ IPreferenceStore store = getPreferenceStore();
+ DiagramGeneralPreferencePage.initDefaults(store);
+ DiagramAppearancePreferencePage.initDefaults(store);
+ DiagramConnectionsPreferencePage.initDefaults(store);
+ DiagramPrintingPreferencePage.initDefaults(store);
+ DiagramRulersAndGridPreferencePage.initDefaults(store);
+
+ }
+
+ /**
+ * @generated
+ */
+ protected IPreferenceStore getPreferenceStore() {
+ return ComrelDiagramEditorPlugin.getInstance().getPreferenceStore();
+ }
+}
diff --git a/org.eclipse.emf.refactor.comrel.diagram/src/comrel/diagram/preferences/DiagramPrintingPreferencePage.java b/org.eclipse.emf.refactor.comrel.diagram/src/comrel/diagram/preferences/DiagramPrintingPreferencePage.java
new file mode 100644
index 0000000..5bbffc2
--- /dev/null
+++ b/org.eclipse.emf.refactor.comrel.diagram/src/comrel/diagram/preferences/DiagramPrintingPreferencePage.java
@@ -0,0 +1,22 @@
+/*
+ *
+ */
+package comrel.diagram.preferences;
+
+import org.eclipse.gmf.runtime.diagram.ui.preferences.PrintingPreferencePage;
+
+import comrel.diagram.part.ComrelDiagramEditorPlugin;
+
+/**
+ * @generated
+ */
+public class DiagramPrintingPreferencePage extends PrintingPreferencePage {
+
+ /**
+ * @generated
+ */
+ public DiagramPrintingPreferencePage() {
+ setPreferenceStore(ComrelDiagramEditorPlugin.getInstance()
+ .getPreferenceStore());
+ }
+}
diff --git a/org.eclipse.emf.refactor.comrel.diagram/src/comrel/diagram/preferences/DiagramRulersAndGridPreferencePage.java b/org.eclipse.emf.refactor.comrel.diagram/src/comrel/diagram/preferences/DiagramRulersAndGridPreferencePage.java
new file mode 100644
index 0000000..d5b0e9e
--- /dev/null
+++ b/org.eclipse.emf.refactor.comrel.diagram/src/comrel/diagram/preferences/DiagramRulersAndGridPreferencePage.java
@@ -0,0 +1,22 @@
+/*
+ *
+ */
+package comrel.diagram.preferences;
+
+import org.eclipse.gmf.runtime.diagram.ui.preferences.RulerGridPreferencePage;
+
+import comrel.diagram.part.ComrelDiagramEditorPlugin;
+
+/**
+ * @generated
+ */
+public class DiagramRulersAndGridPreferencePage extends RulerGridPreferencePage {
+
+ /**
+ * @generated
+ */
+ public DiagramRulersAndGridPreferencePage() {
+ setPreferenceStore(ComrelDiagramEditorPlugin.getInstance()
+ .getPreferenceStore());
+ }
+}
diff --git a/org.eclipse.emf.refactor.comrel.diagram/src/comrel/diagram/providers/ComrelEditPartProvider.java b/org.eclipse.emf.refactor.comrel.diagram/src/comrel/diagram/providers/ComrelEditPartProvider.java
new file mode 100644
index 0000000..f60e6ff
--- /dev/null
+++ b/org.eclipse.emf.refactor.comrel.diagram/src/comrel/diagram/providers/ComrelEditPartProvider.java
@@ -0,0 +1,146 @@
+/*
+ *
+ */
+package comrel.diagram.providers;
+
+import java.lang.ref.WeakReference;
+
+import org.eclipse.gef.EditPart;
+import org.eclipse.gef.EditPartFactory;
+import org.eclipse.gmf.runtime.common.core.service.IOperation;
+import org.eclipse.gmf.runtime.diagram.ui.editparts.IGraphicalEditPart;
+import org.eclipse.gmf.runtime.diagram.ui.services.editpart.AbstractEditPartProvider;
+import org.eclipse.gmf.runtime.diagram.ui.services.editpart.CreateGraphicEditPartOperation;
+import org.eclipse.gmf.runtime.diagram.ui.services.editpart.IEditPartOperation;
+import org.eclipse.gmf.runtime.notation.View;
+
+import comrel.diagram.edit.parts.CompositeRefactoringEditPart;
+import comrel.diagram.edit.parts.ComrelEditPartFactory;
+import comrel.diagram.part.ComrelVisualIDRegistry;
+
+/**
+ * @generated
+ */
+public class ComrelEditPartProvider extends AbstractEditPartProvider {
+
+ /**
+ * @generated
+ */
+ private EditPartFactory factory;
+
+ /**
+ * @generated
+ */
+ private boolean allowCaching;
+
+ /**
+ * @generated
+ */
+ private WeakReference cachedPart;
+
+ /**
+ * @generated
+ */
+ private WeakReference cachedView;
+
+ /**
+ * @generated
+ */
+ public ComrelEditPartProvider() {
+ setFactory(new ComrelEditPartFactory());
+ setAllowCaching(true);
+ }
+
+ /**
+ * @generated
+ */
+ public final EditPartFactory getFactory() {
+ return factory;
+ }
+
+ /**
+ * @generated
+ */
+ protected void setFactory(EditPartFactory factory) {
+ this.factory = factory;
+ }
+
+ /**
+ * @generated
+ */
+ public final boolean isAllowCaching() {
+ return allowCaching;
+ }
+
+ /**
+ * @generated
+ */
+ protected synchronized void setAllowCaching(boolean allowCaching) {
+ this.allowCaching = allowCaching;
+ if (!allowCaching) {
+ cachedPart = null;
+ cachedView = null;
+ }
+ }
+
+ /**
+ * @generated
+ */
+ protected IGraphicalEditPart createEditPart(View view) {
+ EditPart part = factory.createEditPart(null, view);
+ if (part instanceof IGraphicalEditPart) {
+ return (IGraphicalEditPart) part;
+ }
+ return null;
+ }
+
+ /**
+ * @generated
+ */
+ protected IGraphicalEditPart getCachedPart(View view) {
+ if (cachedView != null && cachedView.get() == view) {
+ return (IGraphicalEditPart) cachedPart.get();
+ }
+ return null;
+ }
+
+ /**
+ * @generated
+ */
+ public synchronized IGraphicalEditPart createGraphicEditPart(View view) {
+ if (isAllowCaching()) {
+ IGraphicalEditPart part = getCachedPart(view);
+ cachedPart = null;
+ cachedView = null;
+ if (part != null) {
+ return part;
+ }
+ }
+ return createEditPart(view);
+ }
+
+ /**
+ * @generated
+ */
+ public synchronized boolean provides(IOperation operation) {
+ if (operation instanceof CreateGraphicEditPartOperation) {
+ View view = ((IEditPartOperation) operation).getView();
+ if (!CompositeRefactoringEditPart.MODEL_ID
+ .equals(ComrelVisualIDRegistry.getModelID(view))) {
+ return false;
+ }
+ if (isAllowCaching() && getCachedPart(view) != null) {
+ return true;
+ }
+ IGraphicalEditPart part = createEditPart(view);
+ if (part != null) {
+ if (isAllowCaching()) {
+ cachedPart = new WeakReference(part);
+ cachedView = new WeakReference(view);
+ }
+ return true;
+ }
+ }
+ return false;
+ }
+}
diff --git a/org.eclipse.emf.refactor.comrel.diagram/src/comrel/diagram/providers/ComrelElementTypes.java b/org.eclipse.emf.refactor.comrel.diagram/src/comrel/diagram/providers/ComrelElementTypes.java
new file mode 100644
index 0000000..c8b4df9
--- /dev/null
+++ b/org.eclipse.emf.refactor.comrel.diagram/src/comrel/diagram/providers/ComrelElementTypes.java
@@ -0,0 +1,1171 @@
+/*
+ *
+ */
+package comrel.diagram.providers;
+
+import java.util.HashSet;
+import java.util.IdentityHashMap;
+import java.util.Map;
+import java.util.Set;
+
+import org.eclipse.core.runtime.IAdaptable;
+import org.eclipse.emf.ecore.EClass;
+import org.eclipse.emf.ecore.EClassifier;
+import org.eclipse.emf.ecore.ENamedElement;
+import org.eclipse.emf.ecore.EStructuralFeature;
+import org.eclipse.gmf.runtime.emf.type.core.ElementTypeRegistry;
+import org.eclipse.gmf.runtime.emf.type.core.IElementType;
+import org.eclipse.jface.resource.ImageDescriptor;
+import org.eclipse.jface.resource.ImageRegistry;
+import org.eclipse.swt.graphics.Image;
+
+import comrel.ComrelPackage;
+import comrel.diagram.edit.parts.AtomicUnit2EditPart;
+import comrel.diagram.edit.parts.AtomicUnit3EditPart;
+import comrel.diagram.edit.parts.AtomicUnit4EditPart;
+import comrel.diagram.edit.parts.AtomicUnit5EditPart;
+import comrel.diagram.edit.parts.AtomicUnit6EditPart;
+import comrel.diagram.edit.parts.AtomicUnit7EditPart;
+import comrel.diagram.edit.parts.AtomicUnitEditPart;
+import comrel.diagram.edit.parts.CartesianQueuedUnit2EditPart;
+import comrel.diagram.edit.parts.CartesianQueuedUnit3EditPart;
+import comrel.diagram.edit.parts.CartesianQueuedUnit4EditPart;
+import comrel.diagram.edit.parts.CartesianQueuedUnit5EditPart;
+import comrel.diagram.edit.parts.CartesianQueuedUnit6EditPart;
+import comrel.diagram.edit.parts.CartesianQueuedUnit7EditPart;
+import comrel.diagram.edit.parts.CartesianQueuedUnitEditPart;
+import comrel.diagram.edit.parts.CompositeRefactoringEditPart;
+import comrel.diagram.edit.parts.ConditionCheckEditPart;
+import comrel.diagram.edit.parts.ConditionalUnit2EditPart;
+import comrel.diagram.edit.parts.ConditionalUnit3EditPart;
+import comrel.diagram.edit.parts.ConditionalUnit4EditPart;
+import comrel.diagram.edit.parts.ConditionalUnit5EditPart;
+import comrel.diagram.edit.parts.ConditionalUnit6EditPart;
+import comrel.diagram.edit.parts.ConditionalUnit7EditPart;
+import comrel.diagram.edit.parts.ConditionalUnitEditPart;
+import comrel.diagram.edit.parts.MultiFeatureUnit2EditPart;
+import comrel.diagram.edit.parts.MultiFeatureUnit3EditPart;
+import comrel.diagram.edit.parts.MultiFeatureUnit4EditPart;
+import comrel.diagram.edit.parts.MultiFeatureUnit5EditPart;
+import comrel.diagram.edit.parts.MultiFeatureUnitEditPart;
+import comrel.diagram.edit.parts.MultiFilterUnit2EditPart;
+import comrel.diagram.edit.parts.MultiFilterUnit3EditPart;
+import comrel.diagram.edit.parts.MultiFilterUnit4EditPart;
+import comrel.diagram.edit.parts.MultiFilterUnit5EditPart;
+import comrel.diagram.edit.parts.MultiFilterUnitEditPart;
+import comrel.diagram.edit.parts.MultiInputPort2EditPart;
+import comrel.diagram.edit.parts.MultiInputPort3EditPart;
+import comrel.diagram.edit.parts.MultiInputPort4EditPart;
+import comrel.diagram.edit.parts.MultiInputPort5EditPart;
+import comrel.diagram.edit.parts.MultiInputPort6EditPart;
+import comrel.diagram.edit.parts.MultiInputPort7EditPart;
+import comrel.diagram.edit.parts.MultiInputPort8EditPart;
+import comrel.diagram.edit.parts.MultiInputPort9EditPart;
+import comrel.diagram.edit.parts.MultiInputPortEditPart;
+import comrel.diagram.edit.parts.MultiOutputPort2EditPart;
+import comrel.diagram.edit.parts.MultiOutputPortEditPart;
+import comrel.diagram.edit.parts.MultiPortMappingEditPart;
+import comrel.diagram.edit.parts.MultiSinglePortMappingEditPart;
+import comrel.diagram.edit.parts.ParallelQueuedUnit2EditPart;
+import comrel.diagram.edit.parts.ParallelQueuedUnit3EditPart;
+import comrel.diagram.edit.parts.ParallelQueuedUnit4EditPart;
+import comrel.diagram.edit.parts.ParallelQueuedUnit5EditPart;
+import comrel.diagram.edit.parts.ParallelQueuedUnit6EditPart;
+import comrel.diagram.edit.parts.ParallelQueuedUnit7EditPart;
+import comrel.diagram.edit.parts.ParallelQueuedUnitEditPart;
+import comrel.diagram.edit.parts.SequentialUnit2EditPart;
+import comrel.diagram.edit.parts.SequentialUnit3EditPart;
+import comrel.diagram.edit.parts.SequentialUnit4EditPart;
+import comrel.diagram.edit.parts.SequentialUnit5EditPart;
+import comrel.diagram.edit.parts.SequentialUnit6EditPart;
+import comrel.diagram.edit.parts.SequentialUnit7EditPart;
+import comrel.diagram.edit.parts.SequentialUnitEditPart;
+import comrel.diagram.edit.parts.SingleFeatureUnit2EditPart;
+import comrel.diagram.edit.parts.SingleFeatureUnit3EditPart;
+import comrel.diagram.edit.parts.SingleFeatureUnit4EditPart;
+import comrel.diagram.edit.parts.SingleFeatureUnit5EditPart;
+import comrel.diagram.edit.parts.SingleFeatureUnitEditPart;
+import comrel.diagram.edit.parts.SingleFilterUnit2EditPart;
+import comrel.diagram.edit.parts.SingleFilterUnit3EditPart;
+import comrel.diagram.edit.parts.SingleFilterUnit4EditPart;
+import comrel.diagram.edit.parts.SingleFilterUnit5EditPart;
+import comrel.diagram.edit.parts.SingleFilterUnitEditPart;
+import comrel.diagram.edit.parts.SingleInputPort2EditPart;
+import comrel.diagram.edit.parts.SingleInputPort3EditPart;
+import comrel.diagram.edit.parts.SingleInputPort4EditPart;
+import comrel.diagram.edit.parts.SingleInputPort5EditPart;
+import comrel.diagram.edit.parts.SingleInputPort6EditPart;
+import comrel.diagram.edit.parts.SingleInputPort7EditPart;
+import comrel.diagram.edit.parts.SingleInputPort8EditPart;
+import comrel.diagram.edit.parts.SingleInputPort9EditPart;
+import comrel.diagram.edit.parts.SingleInputPortEditPart;
+import comrel.diagram.edit.parts.SingleOutputPort2EditPart;
+import comrel.diagram.edit.parts.SingleOutputPortEditPart;
+import comrel.diagram.edit.parts.SinglePortMappingEditPart;
+import comrel.diagram.edit.parts.SingleQueuedUnit2EditPart;
+import comrel.diagram.edit.parts.SingleQueuedUnit3EditPart;
+import comrel.diagram.edit.parts.SingleQueuedUnit4EditPart;
+import comrel.diagram.edit.parts.SingleQueuedUnit5EditPart;
+import comrel.diagram.edit.parts.SingleQueuedUnit6EditPart;
+import comrel.diagram.edit.parts.SingleQueuedUnit7EditPart;
+import comrel.diagram.edit.parts.SingleQueuedUnitEditPart;
+import comrel.diagram.part.ComrelDiagramEditorPlugin;
+
+/**
+ * @generated
+ */
+public class ComrelElementTypes {
+
+ /**
+ * @generated
+ */
+ private ComrelElementTypes() {
+ }
+
+ /**
+ * @generated
+ */
+ private static Map<IElementType, ENamedElement> elements;
+
+ /**
+ * @generated
+ */
+ private static ImageRegistry imageRegistry;
+
+ /**
+ * @generated
+ */
+ private static Set<IElementType> KNOWN_ELEMENT_TYPES;
+
+ /**
+ * @generated
+ */
+ public static final IElementType CompositeRefactoring_1000 = getElementType("comrel.diagram.CompositeRefactoring_1000"); //$NON-NLS-1$
+ /**
+ * @generated
+ */
+ public static final IElementType SingleInputPort_2001 = getElementType("comrel.diagram.SingleInputPort_2001"); //$NON-NLS-1$
+ /**
+ * @generated
+ */
+ public static final IElementType CartesianQueuedUnit_2002 = getElementType("comrel.diagram.CartesianQueuedUnit_2002"); //$NON-NLS-1$
+ /**
+ * @generated
+ */
+ public static final IElementType ParallelQueuedUnit_2003 = getElementType("comrel.diagram.ParallelQueuedUnit_2003"); //$NON-NLS-1$
+ /**
+ * @generated
+ */
+ public static final IElementType SingleQueuedUnit_2004 = getElementType("comrel.diagram.SingleQueuedUnit_2004"); //$NON-NLS-1$
+ /**
+ * @generated
+ */
+ public static final IElementType SequentialUnit_2005 = getElementType("comrel.diagram.SequentialUnit_2005"); //$NON-NLS-1$
+ /**
+ * @generated
+ */
+ public static final IElementType ConditionalUnit_2006 = getElementType("comrel.diagram.ConditionalUnit_2006"); //$NON-NLS-1$
+ /**
+ * @generated
+ */
+ public static final IElementType AtomicUnit_2007 = getElementType("comrel.diagram.AtomicUnit_2007"); //$NON-NLS-1$
+ /**
+ * @generated
+ */
+ public static final IElementType SingleInputPort_3001 = getElementType("comrel.diagram.SingleInputPort_3001"); //$NON-NLS-1$
+ /**
+ * @generated
+ */
+ public static final IElementType MultiInputPort_3002 = getElementType("comrel.diagram.MultiInputPort_3002"); //$NON-NLS-1$
+ /**
+ * @generated
+ */
+ public static final IElementType CartesianQueuedUnit_3003 = getElementType("comrel.diagram.CartesianQueuedUnit_3003"); //$NON-NLS-1$
+ /**
+ * @generated
+ */
+ public static final IElementType ParallelQueuedUnit_3004 = getElementType("comrel.diagram.ParallelQueuedUnit_3004"); //$NON-NLS-1$
+ /**
+ * @generated
+ */
+ public static final IElementType SingleInputPort_3005 = getElementType("comrel.diagram.SingleInputPort_3005"); //$NON-NLS-1$
+ /**
+ * @generated
+ */
+ public static final IElementType MultiInputPort_3006 = getElementType("comrel.diagram.MultiInputPort_3006"); //$NON-NLS-1$
+ /**
+ * @generated
+ */
+ public static final IElementType CartesianQueuedUnit_3007 = getElementType("comrel.diagram.CartesianQueuedUnit_3007"); //$NON-NLS-1$
+ /**
+ * @generated
+ */
+ public static final IElementType SingleFeatureUnit_3008 = getElementType("comrel.diagram.SingleFeatureUnit_3008"); //$NON-NLS-1$
+ /**
+ * @generated
+ */
+ public static final IElementType SingleInputPort_3009 = getElementType("comrel.diagram.SingleInputPort_3009"); //$NON-NLS-1$
+ /**
+ * @generated
+ */
+ public static final IElementType MultiInputPort_3010 = getElementType("comrel.diagram.MultiInputPort_3010"); //$NON-NLS-1$
+ /**
+ * @generated
+ */
+ public static final IElementType SingleOutputPort_3011 = getElementType("comrel.diagram.SingleOutputPort_3011"); //$NON-NLS-1$
+ /**
+ * @generated
+ */
+ public static final IElementType MultiFeatureUnit_3012 = getElementType("comrel.diagram.MultiFeatureUnit_3012"); //$NON-NLS-1$
+ /**
+ * @generated
+ */
+ public static final IElementType SingleInputPort_3013 = getElementType("comrel.diagram.SingleInputPort_3013"); //$NON-NLS-1$
+ /**
+ * @generated
+ */
+ public static final IElementType MultiInputPort_3014 = getElementType("comrel.diagram.MultiInputPort_3014"); //$NON-NLS-1$
+ /**
+ * @generated
+ */
+ public static final IElementType MultiOutputPort_3015 = getElementType("comrel.diagram.MultiOutputPort_3015"); //$NON-NLS-1$
+ /**
+ * @generated
+ */
+ public static final IElementType SingleFilterUnit_3016 = getElementType("comrel.diagram.SingleFilterUnit_3016"); //$NON-NLS-1$
+ /**
+ * @generated
+ */
+ public static final IElementType MultiInputPort_3017 = getElementType("comrel.diagram.MultiInputPort_3017"); //$NON-NLS-1$
+ /**
+ * @generated
+ */
+ public static final IElementType SingleOutputPort_3018 = getElementType("comrel.diagram.SingleOutputPort_3018"); //$NON-NLS-1$
+ /**
+ * @generated
+ */
+ public static final IElementType MultiFilterUnit_3019 = getElementType("comrel.diagram.MultiFilterUnit_3019"); //$NON-NLS-1$
+ /**
+ * @generated
+ */
+ public static final IElementType MultiInputPort_3020 = getElementType("comrel.diagram.MultiInputPort_3020"); //$NON-NLS-1$
+ /**
+ * @generated
+ */
+ public static final IElementType MultiOutputPort_3021 = getElementType("comrel.diagram.MultiOutputPort_3021"); //$NON-NLS-1$
+ /**
+ * @generated
+ */
+ public static final IElementType SingleQueuedUnit_3022 = getElementType("comrel.diagram.SingleQueuedUnit_3022"); //$NON-NLS-1$
+ /**
+ * @generated
+ */
+ public static final IElementType SingleInputPort_3023 = getElementType("comrel.diagram.SingleInputPort_3023"); //$NON-NLS-1$
+ /**
+ * @generated
+ */
+ public static final IElementType MultiInputPort_3024 = getElementType("comrel.diagram.MultiInputPort_3024"); //$NON-NLS-1$
+ /**
+ * @generated
+ */
+ public static final IElementType CartesianQueuedUnit_3025 = getElementType("comrel.diagram.CartesianQueuedUnit_3025"); //$NON-NLS-1$
+ /**
+ * @generated
+ */
+ public static final IElementType SequentialUnit_3026 = getElementType("comrel.diagram.SequentialUnit_3026"); //$NON-NLS-1$
+ /**
+ * @generated
+ */
+ public static final IElementType SingleInputPort_3027 = getElementType("comrel.diagram.SingleInputPort_3027"); //$NON-NLS-1$
+ /**
+ * @generated
+ */
+ public static final IElementType MultiInputPort_3028 = getElementType("comrel.diagram.MultiInputPort_3028"); //$NON-NLS-1$
+ /**
+ * @generated
+ */
+ public static final IElementType CartesianQueuedUnit_3029 = getElementType("comrel.diagram.CartesianQueuedUnit_3029"); //$NON-NLS-1$
+ /**
+ * @generated
+ */
+ public static final IElementType ConditionalUnit_3030 = getElementType("comrel.diagram.ConditionalUnit_3030"); //$NON-NLS-1$
+ /**
+ * @generated
+ */
+ public static final IElementType SingleInputPort_3031 = getElementType("comrel.diagram.SingleInputPort_3031"); //$NON-NLS-1$
+ /**
+ * @generated
+ */
+ public static final IElementType MultiInputPort_3032 = getElementType("comrel.diagram.MultiInputPort_3032"); //$NON-NLS-1$
+ /**
+ * @generated
+ */
+ public static final IElementType CartesianQueuedUnit_3033 = getElementType("comrel.diagram.CartesianQueuedUnit_3033"); //$NON-NLS-1$
+ /**
+ * @generated
+ */
+ public static final IElementType AtomicUnit_3034 = getElementType("comrel.diagram.AtomicUnit_3034"); //$NON-NLS-1$
+ /**
+ * @generated
+ */
+ public static final IElementType SingleInputPort_3035 = getElementType("comrel.diagram.SingleInputPort_3035"); //$NON-NLS-1$
+ /**
+ * @generated
+ */
+ public static final IElementType ParallelQueuedUnit_3036 = getElementType("comrel.diagram.ParallelQueuedUnit_3036"); //$NON-NLS-1$
+ /**
+ * @generated
+ */
+ public static final IElementType ParallelQueuedUnit_3037 = getElementType("comrel.diagram.ParallelQueuedUnit_3037"); //$NON-NLS-1$
+ /**
+ * @generated
+ */
+ public static final IElementType SingleFeatureUnit_3038 = getElementType("comrel.diagram.SingleFeatureUnit_3038"); //$NON-NLS-1$
+ /**
+ * @generated
+ */
+ public static final IElementType MultiFeatureUnit_3039 = getElementType("comrel.diagram.MultiFeatureUnit_3039"); //$NON-NLS-1$
+ /**
+ * @generated
+ */
+ public static final IElementType SingleFilterUnit_3040 = getElementType("comrel.diagram.SingleFilterUnit_3040"); //$NON-NLS-1$
+ /**
+ * @generated
+ */
+ public static final IElementType MultiFilterUnit_3041 = getElementType("comrel.diagram.MultiFilterUnit_3041"); //$NON-NLS-1$
+ /**
+ * @generated
+ */
+ public static final IElementType SingleQueuedUnit_3042 = getElementType("comrel.diagram.SingleQueuedUnit_3042"); //$NON-NLS-1$
+ /**
+ * @generated
+ */
+ public static final IElementType ParallelQueuedUnit_3043 = getElementType("comrel.diagram.ParallelQueuedUnit_3043"); //$NON-NLS-1$
+ /**
+ * @generated
+ */
+ public static final IElementType SequentialUnit_3044 = getElementType("comrel.diagram.SequentialUnit_3044"); //$NON-NLS-1$
+ /**
+ * @generated
+ */
+ public static final IElementType ParallelQueuedUnit_3045 = getElementType("comrel.diagram.ParallelQueuedUnit_3045"); //$NON-NLS-1$
+ /**
+ * @generated
+ */
+ public static final IElementType ConditionalUnit_3046 = getElementType("comrel.diagram.ConditionalUnit_3046"); //$NON-NLS-1$
+ /**
+ * @generated
+ */
+ public static final IElementType CartesianQueuedUnit_3047 = getElementType("comrel.diagram.CartesianQueuedUnit_3047"); //$NON-NLS-1$
+ /**
+ * @generated
+ */
+ public static final IElementType ParallelQueuedUnit_3048 = getElementType("comrel.diagram.ParallelQueuedUnit_3048"); //$NON-NLS-1$
+ /**
+ * @generated
+ */
+ public static final IElementType AtomicUnit_3049 = getElementType("comrel.diagram.AtomicUnit_3049"); //$NON-NLS-1$
+ /**
+ * @generated
+ */
+ public static final IElementType SingleFeatureUnit_3050 = getElementType("comrel.diagram.SingleFeatureUnit_3050"); //$NON-NLS-1$
+ /**
+ * @generated
+ */
+ public static final IElementType MultiFeatureUnit_3051 = getElementType("comrel.diagram.MultiFeatureUnit_3051"); //$NON-NLS-1$
+ /**
+ * @generated
+ */
+ public static final IElementType SingleFilterUnit_3052 = getElementType("comrel.diagram.SingleFilterUnit_3052"); //$NON-NLS-1$
+ /**
+ * @generated
+ */
+ public static final IElementType MultiFilterUnit_3053 = getElementType("comrel.diagram.MultiFilterUnit_3053"); //$NON-NLS-1$
+ /**
+ * @generated
+ */
+ public static final IElementType SingleQueuedUnit_3054 = getElementType("comrel.diagram.SingleQueuedUnit_3054"); //$NON-NLS-1$
+ /**
+ * @generated
+ */
+ public static final IElementType SingleFeatureUnit_3055 = getElementType("comrel.diagram.SingleFeatureUnit_3055"); //$NON-NLS-1$
+ /**
+ * @generated
+ */
+ public static final IElementType MultiFeatureUnit_3056 = getElementType("comrel.diagram.MultiFeatureUnit_3056"); //$NON-NLS-1$
+ /**
+ * @generated
+ */
+ public static final IElementType SingleFilterUnit_3057 = getElementType("comrel.diagram.SingleFilterUnit_3057"); //$NON-NLS-1$
+ /**
+ * @generated
+ */
+ public static final IElementType MultiFilterUnit_3058 = getElementType("comrel.diagram.MultiFilterUnit_3058"); //$NON-NLS-1$
+ /**
+ * @generated
+ */
+ public static final IElementType SingleQueuedUnit_3059 = getElementType("comrel.diagram.SingleQueuedUnit_3059"); //$NON-NLS-1$
+ /**
+ * @generated
+ */
+ public static final IElementType SequentialUnit_3060 = getElementType("comrel.diagram.SequentialUnit_3060"); //$NON-NLS-1$
+ /**
+ * @generated
+ */
+ public static final IElementType SingleFeatureUnit_3061 = getElementType("comrel.diagram.SingleFeatureUnit_3061"); //$NON-NLS-1$
+ /**
+ * @generated
+ */
+ public static final IElementType MultiFeatureUnit_3062 = getElementType("comrel.diagram.MultiFeatureUnit_3062"); //$NON-NLS-1$
+ /**
+ * @generated
+ */
+ public static final IElementType SingleFilterUnit_3063 = getElementType("comrel.diagram.SingleFilterUnit_3063"); //$NON-NLS-1$
+ /**
+ * @generated
+ */
+ public static final IElementType MultiFilterUnit_3064 = getElementType("comrel.diagram.MultiFilterUnit_3064"); //$NON-NLS-1$
+ /**
+ * @generated
+ */
+ public static final IElementType SingleQueuedUnit_3065 = getElementType("comrel.diagram.SingleQueuedUnit_3065"); //$NON-NLS-1$
+ /**
+ * @generated
+ */
+ public static final IElementType ConditionalUnit_3066 = getElementType("comrel.diagram.ConditionalUnit_3066"); //$NON-NLS-1$
+ /**
+ * @generated
+ */
+ public static final IElementType SingleQueuedUnit_3067 = getElementType("comrel.diagram.SingleQueuedUnit_3067"); //$NON-NLS-1$
+ /**
+ * @generated
+ */
+ public static final IElementType AtomicUnit_3068 = getElementType("comrel.diagram.AtomicUnit_3068"); //$NON-NLS-1$
+ /**
+ * @generated
+ */
+ public static final IElementType SequentialUnit_3069 = getElementType("comrel.diagram.SequentialUnit_3069"); //$NON-NLS-1$
+ /**
+ * @generated
+ */
+ public static final IElementType SequentialUnit_3070 = getElementType("comrel.diagram.SequentialUnit_3070"); //$NON-NLS-1$
+ /**
+ * @generated
+ */
+ public static final IElementType ConditionalUnit_3071 = getElementType("comrel.diagram.ConditionalUnit_3071"); //$NON-NLS-1$
+ /**
+ * @generated
+ */
+ public static final IElementType ConditionalUnit_3072 = getElementType("comrel.diagram.ConditionalUnit_3072"); //$NON-NLS-1$
+ /**
+ * @generated
+ */
+ public static final IElementType SequentialUnit_3073 = getElementType("comrel.diagram.SequentialUnit_3073"); //$NON-NLS-1$
+ /**
+ * @generated
+ */
+ public static final IElementType AtomicUnit_3074 = getElementType("comrel.diagram.AtomicUnit_3074"); //$NON-NLS-1$
+ /**
+ * @generated
+ */
+ public static final IElementType ConditionalUnit_3075 = getElementType("comrel.diagram.ConditionalUnit_3075"); //$NON-NLS-1$
+ /**
+ * @generated
+ */
+ public static final IElementType ConditionCheck_3076 = getElementType("comrel.diagram.ConditionCheck_3076"); //$NON-NLS-1$
+ /**
+ * @generated
+ */
+ public static final IElementType AtomicUnit_3077 = getElementType("comrel.diagram.AtomicUnit_3077"); //$NON-NLS-1$
+ /**
+ * @generated
+ */
+ public static final IElementType AtomicUnit_3078 = getElementType("comrel.diagram.AtomicUnit_3078"); //$NON-NLS-1$
+ /**
+ * @generated
+ */
+ public static final IElementType SinglePortMapping_4001 = getElementType("comrel.diagram.SinglePortMapping_4001"); //$NON-NLS-1$
+ /**
+ * @generated
+ */
+ public static final IElementType MultiPortMapping_4002 = getElementType("comrel.diagram.MultiPortMapping_4002"); //$NON-NLS-1$
+ /**
+ * @generated
+ */
+ public static final IElementType MultiSinglePortMapping_4003 = getElementType("comrel.diagram.MultiSinglePortMapping_4003"); //$NON-NLS-1$
+
+ /**
+ * @generated
+ */
+ private static ImageRegistry getImageRegistry() {
+ if (imageRegistry == null) {
+ imageRegistry = new ImageRegistry();
+ }
+ return imageRegistry;
+ }
+
+ /**
+ * @generated
+ */
+ private static String getImageRegistryKey(ENamedElement element) {
+ return element.getName();
+ }
+
+ /**
+ * @generated
+ */
+ private static ImageDescriptor getProvidedImageDescriptor(
+ ENamedElement element) {
+ if (element instanceof EStructuralFeature) {
+ EStructuralFeature feature = ((EStructuralFeature) element);
+ EClass eContainingClass = feature.getEContainingClass();
+ EClassifier eType = feature.getEType();
+ if (eContainingClass != null && !eContainingClass.isAbstract()) {
+ element = eContainingClass;
+ } else if (eType instanceof EClass
+ && !((EClass) eType).isAbstract()) {
+ element = eType;
+ }
+ }
+ if (element instanceof EClass) {
+ EClass eClass = (EClass) element;
+ if (!eClass.isAbstract()) {
+ return ComrelDiagramEditorPlugin.getInstance()
+ .getItemImageDescriptor(
+ eClass.getEPackage().getEFactoryInstance()
+ .create(eClass));
+ }
+ }
+ // TODO : support structural features
+ return null;
+ }
+
+ /**
+ * @generated
+ */
+ public static ImageDescriptor getImageDescriptor(ENamedElement element) {
+ String key = getImageRegistryKey(element);
+ ImageDescriptor imageDescriptor = getImageRegistry().getDescriptor(key);
+ if (imageDescriptor == null) {
+ imageDescriptor = getProvidedImageDescriptor(element);
+ if (imageDescriptor == null) {
+ imageDescriptor = ImageDescriptor.getMissingImageDescriptor();
+ }
+ getImageRegistry().put(key, imageDescriptor);
+ }
+ return imageDescriptor;
+ }
+
+ /**
+ * @generated
+ */
+ public static Image getImage(ENamedElement element) {
+ String key = getImageRegistryKey(element);
+ Image image = getImageRegistry().get(key);
+ if (image == null) {
+ ImageDescriptor imageDescriptor = getProvidedImageDescriptor(element);
+ if (imageDescriptor == null) {
+ imageDescriptor = ImageDescriptor.getMissingImageDescriptor();
+ }
+ getImageRegistry().put(key, imageDescriptor);
+ image = getImageRegistry().get(key);
+ }
+ return image;
+ }
+
+ /**
+ * @generated
+ */
+ public static ImageDescriptor getImageDescriptor(IAdaptable hint) {
+ ENamedElement element = getElement(hint);
+ if (element == null) {
+ return null;
+ }
+ return getImageDescriptor(element);
+ }
+
+ /**
+ * @generated
+ */
+ public static Image getImage(IAdaptable hint) {
+ ENamedElement element = getElement(hint);
+ if (element == null) {
+ return null;
+ }
+ return getImage(element);
+ }
+
+ /**
+ * Returns 'type' of the ecore object associated with the hint.
+ *
+ * @generated
+ */
+ public static ENamedElement getElement(IAdaptable hint) {
+ Object type = hint.getAdapter(IElementType.class);
+ if (elements == null) {
+ elements = new IdentityHashMap<IElementType, ENamedElement>();
+
+ elements.put(CompositeRefactoring_1000,
+ ComrelPackage.eINSTANCE.getCompositeRefactoring());
+
+ elements.put(SingleInputPort_2001,
+ ComrelPackage.eINSTANCE.getSingleInputPort());
+
+ elements.put(CartesianQueuedUnit_2002,
+ ComrelPackage.eINSTANCE.getCartesianQueuedUnit());
+
+ elements.put(ParallelQueuedUnit_2003,
+ ComrelPackage.eINSTANCE.getParallelQueuedUnit());
+
+ elements.put(SingleQueuedUnit_2004,
+ ComrelPackage.eINSTANCE.getSingleQueuedUnit());
+
+ elements.put(SequentialUnit_2005,
+ ComrelPackage.eINSTANCE.getSequentialUnit());
+
+ elements.put(ConditionalUnit_2006,
+ ComrelPackage.eINSTANCE.getConditionalUnit());
+
+ elements.put(AtomicUnit_2007,
+ ComrelPackage.eINSTANCE.getAtomicUnit());
+
+ elements.put(SingleInputPort_3001,
+ ComrelPackage.eINSTANCE.getSingleInputPort());
+
+ elements.put(MultiInputPort_3002,
+ ComrelPackage.eINSTANCE.getMultiInputPort());
+
+ elements.put(CartesianQueuedUnit_3003,
+ ComrelPackage.eINSTANCE.getCartesianQueuedUnit());
+
+ elements.put(ParallelQueuedUnit_3004,
+ ComrelPackage.eINSTANCE.getParallelQueuedUnit());
+
+ elements.put(SingleInputPort_3005,
+ ComrelPackage.eINSTANCE.getSingleInputPort());
+
+ elements.put(MultiInputPort_3006,
+ ComrelPackage.eINSTANCE.getMultiInputPort());
+
+ elements.put(CartesianQueuedUnit_3007,
+ ComrelPackage.eINSTANCE.getCartesianQueuedUnit());
+
+ elements.put(SingleFeatureUnit_3008,
+ ComrelPackage.eINSTANCE.getSingleFeatureUnit());
+
+ elements.put(SingleInputPort_3009,
+ ComrelPackage.eINSTANCE.getSingleInputPort());
+
+ elements.put(MultiInputPort_3010,
+ ComrelPackage.eINSTANCE.getMultiInputPort());
+
+ elements.put(SingleOutputPort_3011,
+ ComrelPackage.eINSTANCE.getSingleOutputPort());
+
+ elements.put(MultiFeatureUnit_3012,
+ ComrelPackage.eINSTANCE.getMultiFeatureUnit());
+
+ elements.put(SingleInputPort_3013,
+ ComrelPackage.eINSTANCE.getSingleInputPort());
+
+ elements.put(MultiInputPort_3014,
+ ComrelPackage.eINSTANCE.getMultiInputPort());
+
+ elements.put(MultiOutputPort_3015,
+ ComrelPackage.eINSTANCE.getMultiOutputPort());
+
+ elements.put(SingleFilterUnit_3016,
+ ComrelPackage.eINSTANCE.getSingleFilterUnit());
+
+ elements.put(MultiInputPort_3017,
+ ComrelPackage.eINSTANCE.getMultiInputPort());
+
+ elements.put(SingleOutputPort_3018,
+ ComrelPackage.eINSTANCE.getSingleOutputPort());
+
+ elements.put(MultiFilterUnit_3019,
+ ComrelPackage.eINSTANCE.getMultiFilterUnit());
+
+ elements.put(MultiInputPort_3020,
+ ComrelPackage.eINSTANCE.getMultiInputPort());
+
+ elements.put(MultiOutputPort_3021,
+ ComrelPackage.eINSTANCE.getMultiOutputPort());
+
+ elements.put(SingleQueuedUnit_3022,
+ ComrelPackage.eINSTANCE.getSingleQueuedUnit());
+
+ elements.put(SingleInputPort_3023,
+ ComrelPackage.eINSTANCE.getSingleInputPort());
+
+ elements.put(MultiInputPort_3024,
+ ComrelPackage.eINSTANCE.getMultiInputPort());
+
+ elements.put(CartesianQueuedUnit_3025,
+ ComrelPackage.eINSTANCE.getCartesianQueuedUnit());
+
+ elements.put(SequentialUnit_3026,
+ ComrelPackage.eINSTANCE.getSequentialUnit());
+
+ elements.put(SingleInputPort_3027,
+ ComrelPackage.eINSTANCE.getSingleInputPort());
+
+ elements.put(MultiInputPort_3028,
+ ComrelPackage.eINSTANCE.getMultiInputPort());
+
+ elements.put(CartesianQueuedUnit_3029,
+ ComrelPackage.eINSTANCE.getCartesianQueuedUnit());
+
+ elements.put(ConditionalUnit_3030,
+ ComrelPackage.eINSTANCE.getConditionalUnit());
+
+ elements.put(SingleInputPort_3031,
+ ComrelPackage.eINSTANCE.getSingleInputPort());
+
+ elements.put(MultiInputPort_3032,
+ ComrelPackage.eINSTANCE.getMultiInputPort());
+
+ elements.put(CartesianQueuedUnit_3033,
+ ComrelPackage.eINSTANCE.getCartesianQueuedUnit());
+
+ elements.put(AtomicUnit_3034,
+ ComrelPackage.eINSTANCE.getAtomicUnit());
+
+ elements.put(SingleInputPort_3035,
+ ComrelPackage.eINSTANCE.getSingleInputPort());
+
+ elements.put(ParallelQueuedUnit_3036,
+ ComrelPackage.eINSTANCE.getParallelQueuedUnit());
+
+ elements.put(ParallelQueuedUnit_3037,
+ ComrelPackage.eINSTANCE.getParallelQueuedUnit());
+
+ elements.put(SingleFeatureUnit_3038,
+ ComrelPackage.eINSTANCE.getSingleFeatureUnit());
+
+ elements.put(MultiFeatureUnit_3039,
+ ComrelPackage.eINSTANCE.getMultiFeatureUnit());
+
+ elements.put(SingleFilterUnit_3040,
+ ComrelPackage.eINSTANCE.getSingleFilterUnit());
+
+ elements.put(MultiFilterUnit_3041,
+ ComrelPackage.eINSTANCE.getMultiFilterUnit());
+
+ elements.put(SingleQueuedUnit_3042,
+ ComrelPackage.eINSTANCE.getSingleQueuedUnit());
+
+ elements.put(ParallelQueuedUnit_3043,
+ ComrelPackage.eINSTANCE.getParallelQueuedUnit());
+
+ elements.put(SequentialUnit_3044,
+ ComrelPackage.eINSTANCE.getSequentialUnit());
+
+ elements.put(ParallelQueuedUnit_3045,
+ ComrelPackage.eINSTANCE.getParallelQueuedUnit());
+
+ elements.put(ConditionalUnit_3046,
+ ComrelPackage.eINSTANCE.getConditionalUnit());
+
+ elements.put(CartesianQueuedUnit_3047,
+ ComrelPackage.eINSTANCE.getCartesianQueuedUnit());
+
+ elements.put(ParallelQueuedUnit_3048,
+ ComrelPackage.eINSTANCE.getParallelQueuedUnit());
+
+ elements.put(AtomicUnit_3049,
+ ComrelPackage.eINSTANCE.getAtomicUnit());
+
+ elements.put(SingleFeatureUnit_3050,
+ ComrelPackage.eINSTANCE.getSingleFeatureUnit());
+
+ elements.put(MultiFeatureUnit_3051,
+ ComrelPackage.eINSTANCE.getMultiFeatureUnit());
+
+ elements.put(SingleFilterUnit_3052,
+ ComrelPackage.eINSTANCE.getSingleFilterUnit());
+
+ elements.put(MultiFilterUnit_3053,
+ ComrelPackage.eINSTANCE.getMultiFilterUnit());
+
+ elements.put(SingleQueuedUnit_3054,
+ ComrelPackage.eINSTANCE.getSingleQueuedUnit());
+
+ elements.put(SingleFeatureUnit_3055,
+ ComrelPackage.eINSTANCE.getSingleFeatureUnit());
+
+ elements.put(MultiFeatureUnit_3056,
+ ComrelPackage.eINSTANCE.getMultiFeatureUnit());
+
+ elements.put(SingleFilterUnit_3057,
+ ComrelPackage.eINSTANCE.getSingleFilterUnit());
+
+ elements.put(MultiFilterUnit_3058,
+ ComrelPackage.eINSTANCE.getMultiFilterUnit());
+
+ elements.put(SingleQueuedUnit_3059,
+ ComrelPackage.eINSTANCE.getSingleQueuedUnit());
+
+ elements.put(SequentialUnit_3060,
+ ComrelPackage.eINSTANCE.getSequentialUnit());
+
+ elements.put(SingleFeatureUnit_3061,
+ ComrelPackage.eINSTANCE.getSingleFeatureUnit());
+
+ elements.put(MultiFeatureUnit_3062,
+ ComrelPackage.eINSTANCE.getMultiFeatureUnit());
+
+ elements.put(SingleFilterUnit_3063,
+ ComrelPackage.eINSTANCE.getSingleFilterUnit());
+
+ elements.put(MultiFilterUnit_3064,
+ ComrelPackage.eINSTANCE.getMultiFilterUnit());
+
+ elements.put(SingleQueuedUnit_3065,
+ ComrelPackage.eINSTANCE.getSingleQueuedUnit());
+
+ elements.put(ConditionalUnit_3066,
+ ComrelPackage.eINSTANCE.getConditionalUnit());
+
+ elements.put(SingleQueuedUnit_3067,
+ ComrelPackage.eINSTANCE.getSingleQueuedUnit());
+
+ elements.put(AtomicUnit_3068,
+ ComrelPackage.eINSTANCE.getAtomicUnit());
+
+ elements.put(SequentialUnit_3069,
+ ComrelPackage.eINSTANCE.getSequentialUnit());
+
+ elements.put(SequentialUnit_3070,
+ ComrelPackage.eINSTANCE.getSequentialUnit());
+
+ elements.put(ConditionalUnit_3071,
+ ComrelPackage.eINSTANCE.getConditionalUnit());
+
+ elements.put(ConditionalUnit_3072,
+ ComrelPackage.eINSTANCE.getConditionalUnit());
+
+ elements.put(SequentialUnit_3073,
+ ComrelPackage.eINSTANCE.getSequentialUnit());
+
+ elements.put(AtomicUnit_3074,
+ ComrelPackage.eINSTANCE.getAtomicUnit());
+
+ elements.put(ConditionalUnit_3075,
+ ComrelPackage.eINSTANCE.getConditionalUnit());
+
+ elements.put(ConditionCheck_3076,
+ ComrelPackage.eINSTANCE.getConditionCheck());
+
+ elements.put(AtomicUnit_3077,
+ ComrelPackage.eINSTANCE.getAtomicUnit());
+
+ elements.put(AtomicUnit_3078,
+ ComrelPackage.eINSTANCE.getAtomicUnit());
+
+ elements.put(SinglePortMapping_4001,
+ ComrelPackage.eINSTANCE.getSinglePortMapping());
+
+ elements.put(MultiPortMapping_4002,
+ ComrelPackage.eINSTANCE.getMultiPortMapping());
+
+ elements.put(MultiSinglePortMapping_4003,
+ ComrelPackage.eINSTANCE.getMultiSinglePortMapping());
+ }
+ return (ENamedElement) elements.get(type);
+ }
+
+ /**
+ * @generated
+ */
+ private static IElementType getElementType(String id) {
+ return ElementTypeRegistry.getInstance().getType(id);
+ }
+
+ /**
+ * @generated
+ */
+ public static boolean isKnownElementType(IElementType elementType) {
+ if (KNOWN_ELEMENT_TYPES == null) {
+ KNOWN_ELEMENT_TYPES = new HashSet<IElementType>();
+ KNOWN_ELEMENT_TYPES.add(CompositeRefactoring_1000);
+ KNOWN_ELEMENT_TYPES.add(SingleInputPort_2001);
+ KNOWN_ELEMENT_TYPES.add(CartesianQueuedUnit_2002);
+ KNOWN_ELEMENT_TYPES.add(ParallelQueuedUnit_2003);
+ KNOWN_ELEMENT_TYPES.add(SingleQueuedUnit_2004);
+ KNOWN_ELEMENT_TYPES.add(SequentialUnit_2005);
+ KNOWN_ELEMENT_TYPES.add(ConditionalUnit_2006);
+ KNOWN_ELEMENT_TYPES.add(AtomicUnit_2007);
+ KNOWN_ELEMENT_TYPES.add(SingleInputPort_3001);
+ KNOWN_ELEMENT_TYPES.add(MultiInputPort_3002);
+ KNOWN_ELEMENT_TYPES.add(CartesianQueuedUnit_3003);
+ KNOWN_ELEMENT_TYPES.add(ParallelQueuedUnit_3004);
+ KNOWN_ELEMENT_TYPES.add(SingleInputPort_3005);
+ KNOWN_ELEMENT_TYPES.add(MultiInputPort_3006);
+ KNOWN_ELEMENT_TYPES.add(CartesianQueuedUnit_3007);
+ KNOWN_ELEMENT_TYPES.add(SingleFeatureUnit_3008);
+ KNOWN_ELEMENT_TYPES.add(SingleInputPort_3009);
+ KNOWN_ELEMENT_TYPES.add(MultiInputPort_3010);
+ KNOWN_ELEMENT_TYPES.add(SingleOutputPort_3011);
+ KNOWN_ELEMENT_TYPES.add(MultiFeatureUnit_3012);
+ KNOWN_ELEMENT_TYPES.add(SingleInputPort_3013);
+ KNOWN_ELEMENT_TYPES.add(MultiInputPort_3014);
+ KNOWN_ELEMENT_TYPES.add(MultiOutputPort_3015);
+ KNOWN_ELEMENT_TYPES.add(SingleFilterUnit_3016);
+ KNOWN_ELEMENT_TYPES.add(MultiInputPort_3017);
+ KNOWN_ELEMENT_TYPES.add(SingleOutputPort_3018);
+ KNOWN_ELEMENT_TYPES.add(MultiFilterUnit_3019);
+ KNOWN_ELEMENT_TYPES.add(MultiInputPort_3020);
+ KNOWN_ELEMENT_TYPES.add(MultiOutputPort_3021);
+ KNOWN_ELEMENT_TYPES.add(SingleQueuedUnit_3022);
+ KNOWN_ELEMENT_TYPES.add(SingleInputPort_3023);
+ KNOWN_ELEMENT_TYPES.add(MultiInputPort_3024);
+ KNOWN_ELEMENT_TYPES.add(CartesianQueuedUnit_3025);
+ KNOWN_ELEMENT_TYPES.add(SequentialUnit_3026);
+ KNOWN_ELEMENT_TYPES.add(SingleInputPort_3027);
+ KNOWN_ELEMENT_TYPES.add(MultiInputPort_3028);
+ KNOWN_ELEMENT_TYPES.add(CartesianQueuedUnit_3029);
+ KNOWN_ELEMENT_TYPES.add(ConditionalUnit_3030);
+ KNOWN_ELEMENT_TYPES.add(SingleInputPort_3031);
+ KNOWN_ELEMENT_TYPES.add(MultiInputPort_3032);
+ KNOWN_ELEMENT_TYPES.add(CartesianQueuedUnit_3033);
+ KNOWN_ELEMENT_TYPES.add(AtomicUnit_3034);
+ KNOWN_ELEMENT_TYPES.add(SingleInputPort_3035);
+ KNOWN_ELEMENT_TYPES.add(ParallelQueuedUnit_3036);
+ KNOWN_ELEMENT_TYPES.add(ParallelQueuedUnit_3037);
+ KNOWN_ELEMENT_TYPES.add(SingleFeatureUnit_3038);
+ KNOWN_ELEMENT_TYPES.add(MultiFeatureUnit_3039);
+ KNOWN_ELEMENT_TYPES.add(SingleFilterUnit_3040);
+ KNOWN_ELEMENT_TYPES.add(MultiFilterUnit_3041);
+ KNOWN_ELEMENT_TYPES.add(SingleQueuedUnit_3042);
+ KNOWN_ELEMENT_TYPES.add(ParallelQueuedUnit_3043);
+ KNOWN_ELEMENT_TYPES.add(SequentialUnit_3044);
+ KNOWN_ELEMENT_TYPES.add(ParallelQueuedUnit_3045);
+ KNOWN_ELEMENT_TYPES.add(ConditionalUnit_3046);
+ KNOWN_ELEMENT_TYPES.add(CartesianQueuedUnit_3047);
+ KNOWN_ELEMENT_TYPES.add(ParallelQueuedUnit_3048);
+ KNOWN_ELEMENT_TYPES.add(AtomicUnit_3049);
+ KNOWN_ELEMENT_TYPES.add(SingleFeatureUnit_3050);
+ KNOWN_ELEMENT_TYPES.add(MultiFeatureUnit_3051);
+ KNOWN_ELEMENT_TYPES.add(SingleFilterUnit_3052);
+ KNOWN_ELEMENT_TYPES.add(MultiFilterUnit_3053);
+ KNOWN_ELEMENT_TYPES.add(SingleQueuedUnit_3054);
+ KNOWN_ELEMENT_TYPES.add(SingleFeatureUnit_3055);
+ KNOWN_ELEMENT_TYPES.add(MultiFeatureUnit_3056);
+ KNOWN_ELEMENT_TYPES.add(SingleFilterUnit_3057);
+ KNOWN_ELEMENT_TYPES.add(MultiFilterUnit_3058);
+ KNOWN_ELEMENT_TYPES.add(SingleQueuedUnit_3059);
+ KNOWN_ELEMENT_TYPES.add(SequentialUnit_3060);
+ KNOWN_ELEMENT_TYPES.add(SingleFeatureUnit_3061);
+ KNOWN_ELEMENT_TYPES.add(MultiFeatureUnit_3062);
+ KNOWN_ELEMENT_TYPES.add(SingleFilterUnit_3063);
+ KNOWN_ELEMENT_TYPES.add(MultiFilterUnit_3064);
+ KNOWN_ELEMENT_TYPES.add(SingleQueuedUnit_3065);
+ KNOWN_ELEMENT_TYPES.add(ConditionalUnit_3066);
+ KNOWN_ELEMENT_TYPES.add(SingleQueuedUnit_3067);
+ KNOWN_ELEMENT_TYPES.add(AtomicUnit_3068);
+ KNOWN_ELEMENT_TYPES.add(SequentialUnit_3069);
+ KNOWN_ELEMENT_TYPES.add(SequentialUnit_3070);
+ KNOWN_ELEMENT_TYPES.add(ConditionalUnit_3071);
+ KNOWN_ELEMENT_TYPES.add(ConditionalUnit_3072);
+ KNOWN_ELEMENT_TYPES.add(SequentialUnit_3073);
+ KNOWN_ELEMENT_TYPES.add(AtomicUnit_3074);
+ KNOWN_ELEMENT_TYPES.add(ConditionalUnit_3075);
+ KNOWN_ELEMENT_TYPES.add(ConditionCheck_3076);
+ KNOWN_ELEMENT_TYPES.add(AtomicUnit_3077);
+ KNOWN_ELEMENT_TYPES.add(AtomicUnit_3078);
+ KNOWN_ELEMENT_TYPES.add(SinglePortMapping_4001);
+ KNOWN_ELEMENT_TYPES.add(MultiPortMapping_4002);
+ KNOWN_ELEMENT_TYPES.add(MultiSinglePortMapping_4003);
+ }
+ return KNOWN_ELEMENT_TYPES.contains(elementType);
+ }
+
+ /**
+ * @generated
+ */
+ public static IElementType getElementType(int visualID) {
+ switch (visualID) {
+ case CompositeRefactoringEditPart.VISUAL_ID:
+ return CompositeRefactoring_1000;
+ case SingleInputPortEditPart.VISUAL_ID:
+ return SingleInputPort_2001;
+ case CartesianQueuedUnitEditPart.VISUAL_ID:
+ return CartesianQueuedUnit_2002;
+ case ParallelQueuedUnitEditPart.VISUAL_ID:
+ return ParallelQueuedUnit_2003;
+ case SingleQueuedUnitEditPart.VISUAL_ID:
+ return SingleQueuedUnit_2004;
+ case SequentialUnitEditPart.VISUAL_ID:
+ return SequentialUnit_2005;
+ case ConditionalUnitEditPart.VISUAL_ID:
+ return ConditionalUnit_2006;
+ case AtomicUnitEditPart.VISUAL_ID:
+ return AtomicUnit_2007;
+ case SingleInputPort2EditPart.VISUAL_ID:
+ return SingleInputPort_3001;
+ case MultiInputPortEditPart.VISUAL_ID:
+ return MultiInputPort_3002;
+ case CartesianQueuedUnit2EditPart.VISUAL_ID:
+ return CartesianQueuedUnit_3003;
+ case ParallelQueuedUnit2EditPart.VISUAL_ID:
+ return ParallelQueuedUnit_3004;
+ case SingleInputPort3EditPart.VISUAL_ID:
+ return SingleInputPort_3005;
+ case MultiInputPort2EditPart.VISUAL_ID:
+ return MultiInputPort_3006;
+ case CartesianQueuedUnit3EditPart.VISUAL_ID:
+ return CartesianQueuedUnit_3007;
+ case SingleFeatureUnitEditPart.VISUAL_ID:
+ return SingleFeatureUnit_3008;
+ case SingleInputPort4EditPart.VISUAL_ID:
+ return SingleInputPort_3009;
+ case MultiInputPort3EditPart.VISUAL_ID:
+ return MultiInputPort_3010;
+ case SingleOutputPortEditPart.VISUAL_ID:
+ return SingleOutputPort_3011;
+ case MultiFeatureUnitEditPart.VISUAL_ID:
+ return MultiFeatureUnit_3012;
+ case SingleInputPort5EditPart.VISUAL_ID:
+ return SingleInputPort_3013;
+ case MultiInputPort4EditPart.VISUAL_ID:
+ return MultiInputPort_3014;
+ case MultiOutputPortEditPart.VISUAL_ID:
+ return MultiOutputPort_3015;
+ case SingleFilterUnitEditPart.VISUAL_ID:
+ return SingleFilterUnit_3016;
+ case MultiInputPort5EditPart.VISUAL_ID:
+ return MultiInputPort_3017;
+ case SingleOutputPort2EditPart.VISUAL_ID:
+ return SingleOutputPort_3018;
+ case MultiFilterUnitEditPart.VISUAL_ID:
+ return MultiFilterUnit_3019;
+ case MultiInputPort6EditPart.VISUAL_ID:
+ return MultiInputPort_3020;
+ case MultiOutputPort2EditPart.VISUAL_ID:
+ return MultiOutputPort_3021;
+ case SingleQueuedUnit2EditPart.VISUAL_ID:
+ return SingleQueuedUnit_3022;
+ case SingleInputPort6EditPart.VISUAL_ID:
+ return SingleInputPort_3023;
+ case MultiInputPort7EditPart.VISUAL_ID:
+ return MultiInputPort_3024;
+ case CartesianQueuedUnit4EditPart.VISUAL_ID:
+ return CartesianQueuedUnit_3025;
+ case SequentialUnit2EditPart.VISUAL_ID:
+ return SequentialUnit_3026;
+ case SingleInputPort7EditPart.VISUAL_ID:
+ return SingleInputPort_3027;
+ case MultiInputPort8EditPart.VISUAL_ID:
+ return MultiInputPort_3028;
+ case CartesianQueuedUnit5EditPart.VISUAL_ID:
+ return CartesianQueuedUnit_3029;
+ case ConditionalUnit2EditPart.VISUAL_ID:
+ return ConditionalUnit_3030;
+ case SingleInputPort8EditPart.VISUAL_ID:
+ return SingleInputPort_3031;
+ case MultiInputPort9EditPart.VISUAL_ID:
+ return MultiInputPort_3032;
+ case CartesianQueuedUnit6EditPart.VISUAL_ID:
+ return CartesianQueuedUnit_3033;
+ case AtomicUnit2EditPart.VISUAL_ID:
+ return AtomicUnit_3034;
+ case SingleInputPort9EditPart.VISUAL_ID:
+ return SingleInputPort_3035;
+ case ParallelQueuedUnit3EditPart.VISUAL_ID:
+ return ParallelQueuedUnit_3036;
+ case ParallelQueuedUnit4EditPart.VISUAL_ID:
+ return ParallelQueuedUnit_3037;
+ case SingleFeatureUnit2EditPart.VISUAL_ID:
+ return SingleFeatureUnit_3038;
+ case MultiFeatureUnit2EditPart.VISUAL_ID:
+ return MultiFeatureUnit_3039;
+ case SingleFilterUnit2EditPart.VISUAL_ID:
+ return SingleFilterUnit_3040;
+ case MultiFilterUnit2EditPart.VISUAL_ID:
+ return MultiFilterUnit_3041;
+ case SingleQueuedUnit3EditPart.VISUAL_ID:
+ return SingleQueuedUnit_3042;
+ case ParallelQueuedUnit5EditPart.VISUAL_ID:
+ return ParallelQueuedUnit_3043;
+ case SequentialUnit3EditPart.VISUAL_ID:
+ return SequentialUnit_3044;
+ case ParallelQueuedUnit6EditPart.VISUAL_ID:
+ return ParallelQueuedUnit_3045;
+ case ConditionalUnit3EditPart.VISUAL_ID:
+ return ConditionalUnit_3046;
+ case CartesianQueuedUnit7EditPart.VISUAL_ID:
+ return CartesianQueuedUnit_3047;
+ case ParallelQueuedUnit7EditPart.VISUAL_ID:
+ return ParallelQueuedUnit_3048;
+ case AtomicUnit3EditPart.VISUAL_ID:
+ return AtomicUnit_3049;
+ case SingleFeatureUnit3EditPart.VISUAL_ID:
+ return SingleFeatureUnit_3050;
+ case MultiFeatureUnit3EditPart.VISUAL_ID:
+ return MultiFeatureUnit_3051;
+ case SingleFilterUnit3EditPart.VISUAL_ID:
+ return SingleFilterUnit_3052;
+ case MultiFilterUnit3EditPart.VISUAL_ID:
+ return MultiFilterUnit_3053;
+ case SingleQueuedUnit4EditPart.VISUAL_ID:
+ return SingleQueuedUnit_3054;
+ case SingleFeatureUnit4EditPart.VISUAL_ID:
+ return SingleFeatureUnit_3055;
+ case MultiFeatureUnit4EditPart.VISUAL_ID:
+ return MultiFeatureUnit_3056;
+ case SingleFilterUnit4EditPart.VISUAL_ID:
+ return SingleFilterUnit_3057;
+ case MultiFilterUnit4EditPart.VISUAL_ID:
+ return MultiFilterUnit_3058;
+ case SingleQueuedUnit5EditPart.VISUAL_ID:
+ return SingleQueuedUnit_3059;
+ case SequentialUnit4EditPart.VISUAL_ID:
+ return SequentialUnit_3060;
+ case SingleFeatureUnit5EditPart.VISUAL_ID:
+ return SingleFeatureUnit_3061;
+ case MultiFeatureUnit5EditPart.VISUAL_ID:
+ return MultiFeatureUnit_3062;
+ case SingleFilterUnit5EditPart.VISUAL_ID:
+ return SingleFilterUnit_3063;
+ case MultiFilterUnit5EditPart.VISUAL_ID:
+ return MultiFilterUnit_3064;
+ case SingleQueuedUnit6EditPart.VISUAL_ID:
+ return SingleQueuedUnit_3065;
+ case ConditionalUnit4EditPart.VISUAL_ID:
+ return ConditionalUnit_3066;
+ case SingleQueuedUnit7EditPart.VISUAL_ID:
+ return SingleQueuedUnit_3067;
+ case AtomicUnit4EditPart.VISUAL_ID:
+ return AtomicUnit_3068;
+ case SequentialUnit5EditPart.VISUAL_ID:
+ return SequentialUnit_3069;
+ case SequentialUnit6EditPart.VISUAL_ID:
+ return SequentialUnit_3070;
+ case ConditionalUnit5EditPart.VISUAL_ID:
+ return ConditionalUnit_3071;
+ case ConditionalUnit6EditPart.VISUAL_ID:
+ return ConditionalUnit_3072;
+ case SequentialUnit7EditPart.VISUAL_ID:
+ return SequentialUnit_3073;
+ case AtomicUnit5EditPart.VISUAL_ID:
+ return AtomicUnit_3074;
+ case ConditionalUnit7EditPart.VISUAL_ID:
+ return ConditionalUnit_3075;
+ case ConditionCheckEditPart.VISUAL_ID:
+ return ConditionCheck_3076;
+ case AtomicUnit6EditPart.VISUAL_ID:
+ return AtomicUnit_3077;
+ case AtomicUnit7EditPart.VISUAL_ID:
+ return AtomicUnit_3078;
+ case SinglePortMappingEditPart.VISUAL_ID:
+ return SinglePortMapping_4001;
+ case MultiPortMappingEditPart.VISUAL_ID:
+ return MultiPortMapping_4002;
+ case MultiSinglePortMappingEditPart.VISUAL_ID:
+ return MultiSinglePortMapping_4003;
+ }
+ return null;
+ }
+
+}
diff --git a/org.eclipse.emf.refactor.comrel.diagram/src/comrel/diagram/providers/ComrelIconProvider.java b/org.eclipse.emf.refactor.comrel.diagram/src/comrel/diagram/providers/ComrelIconProvider.java
new file mode 100644
index 0000000..97ed640
--- /dev/null
+++ b/org.eclipse.emf.refactor.comrel.diagram/src/comrel/diagram/providers/ComrelIconProvider.java
@@ -0,0 +1,35 @@
+/*
+ *
+ */
+package comrel.diagram.providers;
+
+import org.eclipse.core.runtime.IAdaptable;
+import org.eclipse.gmf.runtime.common.core.service.AbstractProvider;
+import org.eclipse.gmf.runtime.common.core.service.IOperation;
+import org.eclipse.gmf.runtime.common.ui.services.icon.GetIconOperation;
+import org.eclipse.gmf.runtime.common.ui.services.icon.IIconProvider;
+import org.eclipse.swt.graphics.Image;
+
+/**
+ * @generated
+ */
+public class ComrelIconProvider extends AbstractProvider implements
+ IIconProvider {
+
+ /**
+ * @generated
+ */
+ public Image getIcon(IAdaptable hint, int flags) {
+ return ComrelElementTypes.getImage(hint);
+ }
+
+ /**
+ * @generated
+ */
+ public boolean provides(IOperation operation) {
+ if (operation instanceof GetIconOperation) {
+ return ((GetIconOperation) operation).execute(this) != null;
+ }
+ return false;
+ }
+}
diff --git a/org.eclipse.emf.refactor.comrel.diagram/src/comrel/diagram/providers/ComrelMarkerNavigationProvider.java b/org.eclipse.emf.refactor.comrel.diagram/src/comrel/diagram/providers/ComrelMarkerNavigationProvider.java
new file mode 100644
index 0000000..49ce2cf
--- /dev/null
+++ b/org.eclipse.emf.refactor.comrel.diagram/src/comrel/diagram/providers/ComrelMarkerNavigationProvider.java
@@ -0,0 +1,99 @@
+/*
+ *
+ */
+package comrel.diagram.providers;
+
+import java.util.Arrays;
+import java.util.Map;
+
+import org.eclipse.core.resources.IFile;
+import org.eclipse.core.resources.IMarker;
+import org.eclipse.core.resources.IResource;
+import org.eclipse.core.runtime.CoreException;
+import org.eclipse.core.runtime.IStatus;
+import org.eclipse.emf.ecore.EObject;
+import org.eclipse.gef.EditPart;
+import org.eclipse.gmf.runtime.diagram.ui.parts.DiagramEditor;
+import org.eclipse.gmf.runtime.emf.ui.providers.marker.AbstractModelMarkerNavigationProvider;
+
+import comrel.diagram.part.ComrelDiagramEditorPlugin;
+import comrel.diagram.part.ComrelDiagramEditorUtil;
+
+/**
+ * @generated
+ */
+public class ComrelMarkerNavigationProvider extends
+ AbstractModelMarkerNavigationProvider {
+
+ /**
+ * @generated
+ */
+ public static final String MARKER_TYPE = ComrelDiagramEditorPlugin.ID
+ + ".diagnostic"; //$NON-NLS-1$
+
+ /**
+ * @generated
+ */
+ protected void doGotoMarker(IMarker marker) {
+ String elementId = marker
+ .getAttribute(
+ org.eclipse.gmf.runtime.common.core.resources.IMarker.ELEMENT_ID,
+ null);
+ if (elementId == null || !(getEditor() instanceof DiagramEditor)) {
+ return;
+ }
+ DiagramEditor editor = (DiagramEditor) getEditor();
+ Map editPartRegistry = editor.getDiagramGraphicalViewer()
+ .getEditPartRegistry();
+ EObject targetView = editor.getDiagram().eResource()
+ .getEObject(elementId);
+ if (targetView == null) {
+ return;
+ }
+ EditPart targetEditPart = (EditPart) editPartRegistry.get(targetView);
+ if (targetEditPart != null) {
+ ComrelDiagramEditorUtil.selectElementsInDiagram(editor,
+ Arrays.asList(new EditPart[] { targetEditPart }));
+ }
+ }
+
+ /**
+ * @generated
+ */
+ public static void deleteMarkers(IResource resource) {
+ try {
+ resource.deleteMarkers(MARKER_TYPE, true, IResource.DEPTH_ZERO);
+ } catch (CoreException e) {
+ ComrelDiagramEditorPlugin.getInstance().logError(
+ "Failed to delete validation markers", e); //$NON-NLS-1$
+ }
+ }
+
+ /**
+ * @generated
+ */
+ public static IMarker addMarker(IFile file, String elementId,
+ String location, String message, int statusSeverity) {
+ IMarker marker = null;
+ try {
+ marker = file.createMarker(MARKER_TYPE);
+ marker.setAttribute(IMarker.MESSAGE, message);
+ marker.setAttribute(IMarker.LOCATION, location);
+ marker.setAttribute(
+ org.eclipse.gmf.runtime.common.ui.resources.IMarker.ELEMENT_ID,
+ elementId);
+ int markerSeverity = IMarker.SEVERITY_INFO;
+ if (statusSeverity == IStatus.WARNING) {
+ markerSeverity = IMarker.SEVERITY_WARNING;
+ } else if (statusSeverity == IStatus.ERROR
+ || statusSeverity == IStatus.CANCEL) {
+ markerSeverity = IMarker.SEVERITY_ERROR;
+ }
+ marker.setAttribute(IMarker.SEVERITY, markerSeverity);
+ } catch (CoreException e) {
+ ComrelDiagramEditorPlugin.getInstance().logError(
+ "Failed to create validation marker", e); //$NON-NLS-1$
+ }
+ return marker;
+ }
+}
diff --git a/org.eclipse.emf.refactor.comrel.diagram/src/comrel/diagram/providers/ComrelModelingAssistantProvider.java b/org.eclipse.emf.refactor.comrel.diagram/src/comrel/diagram/providers/ComrelModelingAssistantProvider.java
new file mode 100644
index 0000000..074a823
--- /dev/null
+++ b/org.eclipse.emf.refactor.comrel.diagram/src/comrel/diagram/providers/ComrelModelingAssistantProvider.java
@@ -0,0 +1,1699 @@
+/*
+ *
+ */
+package comrel.diagram.providers;
+
+import java.util.ArrayList;
+import java.util.Collection;
+import java.util.Collections;
+import java.util.HashSet;
+import java.util.Iterator;
+import java.util.List;
+
+import org.eclipse.core.runtime.IAdaptable;
+import org.eclipse.emf.ecore.EObject;
+import org.eclipse.emf.edit.ui.provider.AdapterFactoryLabelProvider;
+import org.eclipse.gmf.runtime.diagram.ui.editparts.IGraphicalEditPart;
+import org.eclipse.gmf.runtime.emf.type.core.ElementTypeRegistry;
+import org.eclipse.gmf.runtime.emf.type.core.IElementType;
+import org.eclipse.gmf.runtime.emf.ui.services.modelingassistant.ModelingAssistantProvider;
+import org.eclipse.gmf.runtime.notation.Diagram;
+import org.eclipse.jface.viewers.ILabelProvider;
+import org.eclipse.jface.window.Window;
+import org.eclipse.swt.widgets.Display;
+import org.eclipse.swt.widgets.Shell;
+import org.eclipse.ui.dialogs.ElementListSelectionDialog;
+
+import comrel.diagram.edit.parts.*;
+import comrel.diagram.part.ComrelDiagramEditorPlugin;
+import comrel.diagram.part.Messages;
+
+/**
+ * @generated
+ */
+public class ComrelModelingAssistantProvider extends ModelingAssistantProvider {
+
+ /**
+ * @generated
+ */
+ public List getTypesForPopupBar(IAdaptable host) {
+ IGraphicalEditPart editPart = (IGraphicalEditPart) host
+ .getAdapter(IGraphicalEditPart.class);
+ if (editPart instanceof CompositeRefactoringEditPart) {
+ ArrayList<IElementType> types = new ArrayList<IElementType>(7);
+ types.add(ComrelElementTypes.SingleInputPort_2001);
+ types.add(ComrelElementTypes.CartesianQueuedUnit_2002);
+ types.add(ComrelElementTypes.ParallelQueuedUnit_2003);
+ types.add(ComrelElementTypes.SingleQueuedUnit_2004);
+ types.add(ComrelElementTypes.SequentialUnit_2005);
+ types.add(ComrelElementTypes.ConditionalUnit_2006);
+ types.add(ComrelElementTypes.AtomicUnit_2007);
+ return types;
+ }
+ if (editPart instanceof CartesianQueuedUnitEditPart) {
+ ArrayList<IElementType> types = new ArrayList<IElementType>(2);
+ types.add(ComrelElementTypes.SingleInputPort_3001);
+ types.add(ComrelElementTypes.MultiInputPort_3002);
+ return types;
+ }
+ if (editPart instanceof ParallelQueuedUnitEditPart) {
+ ArrayList<IElementType> types = new ArrayList<IElementType>(2);
+ types.add(ComrelElementTypes.SingleInputPort_3005);
+ types.add(ComrelElementTypes.MultiInputPort_3006);
+ return types;
+ }
+ if (editPart instanceof SingleQueuedUnitEditPart) {
+ ArrayList<IElementType> types = new ArrayList<IElementType>(2);
+ types.add(ComrelElementTypes.SingleInputPort_3023);
+ types.add(ComrelElementTypes.MultiInputPort_3024);
+ return types;
+ }
+ if (editPart instanceof SequentialUnitEditPart) {
+ ArrayList<IElementType> types = new ArrayList<IElementType>(2);
+ types.add(ComrelElementTypes.SingleInputPort_3027);
+ types.add(ComrelElementTypes.MultiInputPort_3028);
+ return types;
+ }
+ if (editPart instanceof ConditionalUnitEditPart) {
+ ArrayList<IElementType> types = new ArrayList<IElementType>(2);
+ types.add(ComrelElementTypes.SingleInputPort_3031);
+ types.add(ComrelElementTypes.MultiInputPort_3032);
+ return types;
+ }
+ if (editPart instanceof AtomicUnitEditPart) {
+ ArrayList<IElementType> types = new ArrayList<IElementType>(1);
+ types.add(ComrelElementTypes.SingleInputPort_3035);
+ return types;
+ }
+ if (editPart instanceof CartesianQueuedUnit2EditPart) {
+ ArrayList<IElementType> types = new ArrayList<IElementType>(2);
+ types.add(ComrelElementTypes.SingleInputPort_3001);
+ types.add(ComrelElementTypes.MultiInputPort_3002);
+ return types;
+ }
+ if (editPart instanceof ParallelQueuedUnit2EditPart) {
+ ArrayList<IElementType> types = new ArrayList<IElementType>(2);
+ types.add(ComrelElementTypes.SingleInputPort_3005);
+ types.add(ComrelElementTypes.MultiInputPort_3006);
+ return types;
+ }
+ if (editPart instanceof CartesianQueuedUnit3EditPart) {
+ ArrayList<IElementType> types = new ArrayList<IElementType>(2);
+ types.add(ComrelElementTypes.SingleInputPort_3001);
+ types.add(ComrelElementTypes.MultiInputPort_3002);
+ return types;
+ }
+ if (editPart instanceof SingleFeatureUnitEditPart) {
+ ArrayList<IElementType> types = new ArrayList<IElementType>(3);
+ types.add(ComrelElementTypes.SingleInputPort_3009);
+ types.add(ComrelElementTypes.MultiInputPort_3010);
+ types.add(ComrelElementTypes.SingleOutputPort_3011);
+ return types;
+ }
+ if (editPart instanceof MultiFeatureUnitEditPart) {
+ ArrayList<IElementType> types = new ArrayList<IElementType>(3);
+ types.add(ComrelElementTypes.SingleInputPort_3013);
+ types.add(ComrelElementTypes.MultiInputPort_3014);
+ types.add(ComrelElementTypes.MultiOutputPort_3015);
+ return types;
+ }
+ if (editPart instanceof SingleFilterUnitEditPart) {
+ ArrayList<IElementType> types = new ArrayList<IElementType>(2);
+ types.add(ComrelElementTypes.MultiInputPort_3017);
+ types.add(ComrelElementTypes.SingleOutputPort_3018);
+ return types;
+ }
+ if (editPart instanceof MultiFilterUnitEditPart) {
+ ArrayList<IElementType> types = new ArrayList<IElementType>(2);
+ types.add(ComrelElementTypes.MultiInputPort_3020);
+ types.add(ComrelElementTypes.MultiOutputPort_3021);
+ return types;
+ }
+ if (editPart instanceof SingleQueuedUnit2EditPart) {
+ ArrayList<IElementType> types = new ArrayList<IElementType>(2);
+ types.add(ComrelElementTypes.SingleInputPort_3023);
+ types.add(ComrelElementTypes.MultiInputPort_3024);
+ return types;
+ }
+ if (editPart instanceof CartesianQueuedUnit4EditPart) {
+ ArrayList<IElementType> types = new ArrayList<IElementType>(2);
+ types.add(ComrelElementTypes.SingleInputPort_3001);
+ types.add(ComrelElementTypes.MultiInputPort_3002);
+ return types;
+ }
+ if (editPart instanceof SequentialUnit2EditPart) {
+ ArrayList<IElementType> types = new ArrayList<IElementType>(2);
+ types.add(ComrelElementTypes.SingleInputPort_3027);
+ types.add(ComrelElementTypes.MultiInputPort_3028);
+ return types;
+ }
+ if (editPart instanceof CartesianQueuedUnit5EditPart) {
+ ArrayList<IElementType> types = new ArrayList<IElementType>(2);
+ types.add(ComrelElementTypes.SingleInputPort_3001);
+ types.add(ComrelElementTypes.MultiInputPort_3002);
+ return types;
+ }
+ if (editPart instanceof ConditionalUnit2EditPart) {
+ ArrayList<IElementType> types = new ArrayList<IElementType>(2);
+ types.add(ComrelElementTypes.SingleInputPort_3031);
+ types.add(ComrelElementTypes.MultiInputPort_3032);
+ return types;
+ }
+ if (editPart instanceof CartesianQueuedUnit6EditPart) {
+ ArrayList<IElementType> types = new ArrayList<IElementType>(2);
+ types.add(ComrelElementTypes.SingleInputPort_3001);
+ types.add(ComrelElementTypes.MultiInputPort_3002);
+ return types;
+ }
+ if (editPart instanceof AtomicUnit2EditPart) {
+ ArrayList<IElementType> types = new ArrayList<IElementType>(1);
+ types.add(ComrelElementTypes.SingleInputPort_3035);
+ return types;
+ }
+ if (editPart instanceof ParallelQueuedUnit3EditPart) {
+ ArrayList<IElementType> types = new ArrayList<IElementType>(2);
+ types.add(ComrelElementTypes.SingleInputPort_3005);
+ types.add(ComrelElementTypes.MultiInputPort_3006);
+ return types;
+ }
+ if (editPart instanceof ParallelQueuedUnit4EditPart) {
+ ArrayList<IElementType> types = new ArrayList<IElementType>(2);
+ types.add(ComrelElementTypes.SingleInputPort_3005);
+ types.add(ComrelElementTypes.MultiInputPort_3006);
+ return types;
+ }
+ if (editPart instanceof SingleFeatureUnit2EditPart) {
+ ArrayList<IElementType> types = new ArrayList<IElementType>(3);
+ types.add(ComrelElementTypes.SingleInputPort_3009);
+ types.add(ComrelElementTypes.MultiInputPort_3010);
+ types.add(ComrelElementTypes.SingleOutputPort_3011);
+ return types;
+ }
+ if (editPart instanceof MultiFeatureUnit2EditPart) {
+ ArrayList<IElementType> types = new ArrayList<IElementType>(3);
+ types.add(ComrelElementTypes.SingleInputPort_3013);
+ types.add(ComrelElementTypes.MultiInputPort_3014);
+ types.add(ComrelElementTypes.MultiOutputPort_3015);
+ return types;
+ }
+ if (editPart instanceof SingleFilterUnit2EditPart) {
+ ArrayList<IElementType> types = new ArrayList<IElementType>(2);
+ types.add(ComrelElementTypes.MultiInputPort_3017);
+ types.add(ComrelElementTypes.SingleOutputPort_3018);
+ return types;
+ }
+ if (editPart instanceof MultiFilterUnit2EditPart) {
+ ArrayList<IElementType> types = new ArrayList<IElementType>(2);
+ types.add(ComrelElementTypes.MultiInputPort_3020);
+ types.add(ComrelElementTypes.MultiOutputPort_3021);
+ return types;
+ }
+ if (editPart instanceof SingleQueuedUnit3EditPart) {
+ ArrayList<IElementType> types = new ArrayList<IElementType>(2);
+ types.add(ComrelElementTypes.SingleInputPort_3023);
+ types.add(ComrelElementTypes.MultiInputPort_3024);
+ return types;
+ }
+ if (editPart instanceof ParallelQueuedUnit5EditPart) {
+ ArrayList<IElementType> types = new ArrayList<IElementType>(2);
+ types.add(ComrelElementTypes.SingleInputPort_3005);
+ types.add(ComrelElementTypes.MultiInputPort_3006);
+ return types;
+ }
+ if (editPart instanceof SequentialUnit3EditPart) {
+ ArrayList<IElementType> types = new ArrayList<IElementType>(2);
+ types.add(ComrelElementTypes.SingleInputPort_3027);
+ types.add(ComrelElementTypes.MultiInputPort_3028);
+ return types;
+ }
+ if (editPart instanceof ParallelQueuedUnit6EditPart) {
+ ArrayList<IElementType> types = new ArrayList<IElementType>(2);
+ types.add(ComrelElementTypes.SingleInputPort_3005);
+ types.add(ComrelElementTypes.MultiInputPort_3006);
+ return types;
+ }
+ if (editPart instanceof ConditionalUnit3EditPart) {
+ ArrayList<IElementType> types = new ArrayList<IElementType>(2);
+ types.add(ComrelElementTypes.SingleInputPort_3031);
+ types.add(ComrelElementTypes.MultiInputPort_3032);
+ return types;
+ }
+ if (editPart instanceof CartesianQueuedUnit7EditPart) {
+ ArrayList<IElementType> types = new ArrayList<IElementType>(2);
+ types.add(ComrelElementTypes.SingleInputPort_3001);
+ types.add(ComrelElementTypes.MultiInputPort_3002);
+ return types;
+ }
+ if (editPart instanceof ParallelQueuedUnit7EditPart) {
+ ArrayList<IElementType> types = new ArrayList<IElementType>(2);
+ types.add(ComrelElementTypes.SingleInputPort_3005);
+ types.add(ComrelElementTypes.MultiInputPort_3006);
+ return types;
+ }
+ if (editPart instanceof AtomicUnit3EditPart) {
+ ArrayList<IElementType> types = new ArrayList<IElementType>(1);
+ types.add(ComrelElementTypes.SingleInputPort_3035);
+ return types;
+ }
+ if (editPart instanceof SingleFeatureUnit3EditPart) {
+ ArrayList<IElementType> types = new ArrayList<IElementType>(3);
+ types.add(ComrelElementTypes.SingleInputPort_3009);
+ types.add(ComrelElementTypes.MultiInputPort_3010);
+ types.add(ComrelElementTypes.SingleOutputPort_3011);
+ return types;
+ }
+ if (editPart instanceof MultiFeatureUnit3EditPart) {
+ ArrayList<IElementType> types = new ArrayList<IElementType>(3);
+ types.add(ComrelElementTypes.SingleInputPort_3013);
+ types.add(ComrelElementTypes.MultiInputPort_3014);
+ types.add(ComrelElementTypes.MultiOutputPort_3015);
+ return types;
+ }
+ if (editPart instanceof SingleFilterUnit3EditPart) {
+ ArrayList<IElementType> types = new ArrayList<IElementType>(2);
+ types.add(ComrelElementTypes.MultiInputPort_3017);
+ types.add(ComrelElementTypes.SingleOutputPort_3018);
+ return types;
+ }
+ if (editPart instanceof MultiFilterUnit3EditPart) {
+ ArrayList<IElementType> types = new ArrayList<IElementType>(2);
+ types.add(ComrelElementTypes.MultiInputPort_3020);
+ types.add(ComrelElementTypes.MultiOutputPort_3021);
+ return types;
+ }
+ if (editPart instanceof SingleQueuedUnit4EditPart) {
+ ArrayList<IElementType> types = new ArrayList<IElementType>(2);
+ types.add(ComrelElementTypes.SingleInputPort_3023);
+ types.add(ComrelElementTypes.MultiInputPort_3024);
+ return types;
+ }
+ if (editPart instanceof SingleFeatureUnit4EditPart) {
+ ArrayList<IElementType> types = new ArrayList<IElementType>(3);
+ types.add(ComrelElementTypes.SingleInputPort_3009);
+ types.add(ComrelElementTypes.MultiInputPort_3010);
+ types.add(ComrelElementTypes.SingleOutputPort_3011);
+ return types;
+ }
+ if (editPart instanceof MultiFeatureUnit4EditPart) {
+ ArrayList<IElementType> types = new ArrayList<IElementType>(3);
+ types.add(ComrelElementTypes.SingleInputPort_3013);
+ types.add(ComrelElementTypes.MultiInputPort_3014);
+ types.add(ComrelElementTypes.MultiOutputPort_3015);
+ return types;
+ }
+ if (editPart instanceof SingleFilterUnit4EditPart) {
+ ArrayList<IElementType> types = new ArrayList<IElementType>(2);
+ types.add(ComrelElementTypes.MultiInputPort_3017);
+ types.add(ComrelElementTypes.SingleOutputPort_3018);
+ return types;
+ }
+ if (editPart instanceof MultiFilterUnit4EditPart) {
+ ArrayList<IElementType> types = new ArrayList<IElementType>(2);
+ types.add(ComrelElementTypes.MultiInputPort_3020);
+ types.add(ComrelElementTypes.MultiOutputPort_3021);
+ return types;
+ }
+ if (editPart instanceof SingleQueuedUnit5EditPart) {
+ ArrayList<IElementType> types = new ArrayList<IElementType>(2);
+ types.add(ComrelElementTypes.SingleInputPort_3023);
+ types.add(ComrelElementTypes.MultiInputPort_3024);
+ return types;
+ }
+ if (editPart instanceof SequentialUnit4EditPart) {
+ ArrayList<IElementType> types = new ArrayList<IElementType>(2);
+ types.add(ComrelElementTypes.SingleInputPort_3027);
+ types.add(ComrelElementTypes.MultiInputPort_3028);
+ return types;
+ }
+ if (editPart instanceof SingleFeatureUnit5EditPart) {
+ ArrayList<IElementType> types = new ArrayList<IElementType>(3);
+ types.add(ComrelElementTypes.SingleInputPort_3009);
+ types.add(ComrelElementTypes.MultiInputPort_3010);
+ types.add(ComrelElementTypes.SingleOutputPort_3011);
+ return types;
+ }
+ if (editPart instanceof MultiFeatureUnit5EditPart) {
+ ArrayList<IElementType> types = new ArrayList<IElementType>(3);
+ types.add(ComrelElementTypes.SingleInputPort_3013);
+ types.add(ComrelElementTypes.MultiInputPort_3014);
+ types.add(ComrelElementTypes.MultiOutputPort_3015);
+ return types;
+ }
+ if (editPart instanceof SingleFilterUnit5EditPart) {
+ ArrayList<IElementType> types = new ArrayList<IElementType>(2);
+ types.add(ComrelElementTypes.MultiInputPort_3017);
+ types.add(ComrelElementTypes.SingleOutputPort_3018);
+ return types;
+ }
+ if (editPart instanceof MultiFilterUnit5EditPart) {
+ ArrayList<IElementType> types = new ArrayList<IElementType>(2);
+ types.add(ComrelElementTypes.MultiInputPort_3020);
+ types.add(ComrelElementTypes.MultiOutputPort_3021);
+ return types;
+ }
+ if (editPart instanceof SingleQueuedUnit6EditPart) {
+ ArrayList<IElementType> types = new ArrayList<IElementType>(2);
+ types.add(ComrelElementTypes.SingleInputPort_3023);
+ types.add(ComrelElementTypes.MultiInputPort_3024);
+ return types;
+ }
+ if (editPart instanceof ConditionalUnit4EditPart) {
+ ArrayList<IElementType> types = new ArrayList<IElementType>(2);
+ types.add(ComrelElementTypes.SingleInputPort_3031);
+ types.add(ComrelElementTypes.MultiInputPort_3032);
+ return types;
+ }
+ if (editPart instanceof SingleQueuedUnit7EditPart) {
+ ArrayList<IElementType> types = new ArrayList<IElementType>(2);
+ types.add(ComrelElementTypes.SingleInputPort_3023);
+ types.add(ComrelElementTypes.MultiInputPort_3024);
+ return types;
+ }
+ if (editPart instanceof AtomicUnit4EditPart) {
+ ArrayList<IElementType> types = new ArrayList<IElementType>(1);
+ types.add(ComrelElementTypes.SingleInputPort_3035);
+ return types;
+ }
+ if (editPart instanceof SequentialUnit5EditPart) {
+ ArrayList<IElementType> types = new ArrayList<IElementType>(2);
+ types.add(ComrelElementTypes.SingleInputPort_3027);
+ types.add(ComrelElementTypes.MultiInputPort_3028);
+ return types;
+ }
+ if (editPart instanceof SequentialUnit6EditPart) {
+ ArrayList<IElementType> types = new ArrayList<IElementType>(2);
+ types.add(ComrelElementTypes.SingleInputPort_3027);
+ types.add(ComrelElementTypes.MultiInputPort_3028);
+ return types;
+ }
+ if (editPart instanceof ConditionalUnit5EditPart) {
+ ArrayList<IElementType> types = new ArrayList<IElementType>(2);
+ types.add(ComrelElementTypes.SingleInputPort_3031);
+ types.add(ComrelElementTypes.MultiInputPort_3032);
+ return types;
+ }
+ if (editPart instanceof ConditionalUnit6EditPart) {
+ ArrayList<IElementType> types = new ArrayList<IElementType>(2);
+ types.add(ComrelElementTypes.SingleInputPort_3031);
+ types.add(ComrelElementTypes.MultiInputPort_3032);
+ return types;
+ }
+ if (editPart instanceof SequentialUnit7EditPart) {
+ ArrayList<IElementType> types = new ArrayList<IElementType>(2);
+ types.add(ComrelElementTypes.SingleInputPort_3027);
+ types.add(ComrelElementTypes.MultiInputPort_3028);
+ return types;
+ }
+ if (editPart instanceof AtomicUnit5EditPart) {
+ ArrayList<IElementType> types = new ArrayList<IElementType>(1);
+ types.add(ComrelElementTypes.SingleInputPort_3035);
+ return types;
+ }
+ if (editPart instanceof ConditionalUnit7EditPart) {
+ ArrayList<IElementType> types = new ArrayList<IElementType>(2);
+ types.add(ComrelElementTypes.SingleInputPort_3031);
+ types.add(ComrelElementTypes.MultiInputPort_3032);
+ return types;
+ }
+ if (editPart instanceof AtomicUnit6EditPart) {
+ ArrayList<IElementType> types = new ArrayList<IElementType>(1);
+ types.add(ComrelElementTypes.SingleInputPort_3035);
+ return types;
+ }
+ if (editPart instanceof AtomicUnit7EditPart) {
+ ArrayList<IElementType> types = new ArrayList<IElementType>(1);
+ types.add(ComrelElementTypes.SingleInputPort_3035);
+ return types;
+ }
+ if (editPart instanceof CartesianQueuedUnitCartesianQueuedUnitHelperUnitsCompartmentEditPart) {
+ ArrayList<IElementType> types = new ArrayList<IElementType>(4);
+ types.add(ComrelElementTypes.SingleFeatureUnit_3008);
+ types.add(ComrelElementTypes.MultiFeatureUnit_3012);
+ types.add(ComrelElementTypes.SingleFilterUnit_3016);
+ types.add(ComrelElementTypes.MultiFilterUnit_3019);
+ return types;
+ }
+ if (editPart instanceof CartesianQueuedUnitCartesianQueuedUnitRefactoringUnitCompartmentEditPart) {
+ ArrayList<IElementType> types = new ArrayList<IElementType>(6);
+ types.add(ComrelElementTypes.CartesianQueuedUnit_3003);
+ types.add(ComrelElementTypes.ParallelQueuedUnit_3004);
+ types.add(ComrelElementTypes.SingleQueuedUnit_3022);
+ types.add(ComrelElementTypes.SequentialUnit_3026);
+ types.add(ComrelElementTypes.ConditionalUnit_3030);
+ types.add(ComrelElementTypes.AtomicUnit_3034);
+ return types;
+ }
+ if (editPart instanceof CartesianQueuedUnitCartesianQueuedUnitHelperUnitsCompartment2EditPart) {
+ ArrayList<IElementType> types = new ArrayList<IElementType>(4);
+ types.add(ComrelElementTypes.SingleFeatureUnit_3008);
+ types.add(ComrelElementTypes.MultiFeatureUnit_3012);
+ types.add(ComrelElementTypes.SingleFilterUnit_3016);
+ types.add(ComrelElementTypes.MultiFilterUnit_3019);
+ return types;
+ }
+ if (editPart instanceof CartesianQueuedUnitCartesianQueuedUnitRefactoringUnitCompartment2EditPart) {
+ ArrayList<IElementType> types = new ArrayList<IElementType>(6);
+ types.add(ComrelElementTypes.CartesianQueuedUnit_3003);
+ types.add(ComrelElementTypes.ParallelQueuedUnit_3004);
+ types.add(ComrelElementTypes.SingleQueuedUnit_3022);
+ types.add(ComrelElementTypes.SequentialUnit_3026);
+ types.add(ComrelElementTypes.ConditionalUnit_3030);
+ types.add(ComrelElementTypes.AtomicUnit_3034);
+ return types;
+ }
+ if (editPart instanceof ParallelQueuedUnitParallelQueuedUnitHelperUnitsCompartmentEditPart) {
+ ArrayList<IElementType> types = new ArrayList<IElementType>(4);
+ types.add(ComrelElementTypes.SingleFeatureUnit_3038);
+ types.add(ComrelElementTypes.MultiFeatureUnit_3039);
+ types.add(ComrelElementTypes.SingleFilterUnit_3040);
+ types.add(ComrelElementTypes.MultiFilterUnit_3041);
+ return types;
+ }
+ if (editPart instanceof ParallelQueuedUnitParallelQueuedUnitRefactoringUnitsCompartmentEditPart) {
+ ArrayList<IElementType> types = new ArrayList<IElementType>(6);
+ types.add(ComrelElementTypes.CartesianQueuedUnit_3007);
+ types.add(ComrelElementTypes.ParallelQueuedUnit_3037);
+ types.add(ComrelElementTypes.SingleQueuedUnit_3042);
+ types.add(ComrelElementTypes.SequentialUnit_3044);
+ types.add(ComrelElementTypes.ConditionalUnit_3046);
+ types.add(ComrelElementTypes.AtomicUnit_3049);
+ return types;
+ }
+ if (editPart instanceof CartesianQueuedUnitCartesianQueuedUnitHelperUnitsCompartment3EditPart) {
+ ArrayList<IElementType> types = new ArrayList<IElementType>(4);
+ types.add(ComrelElementTypes.SingleFeatureUnit_3008);
+ types.add(ComrelElementTypes.MultiFeatureUnit_3012);
+ types.add(ComrelElementTypes.SingleFilterUnit_3016);
+ types.add(ComrelElementTypes.MultiFilterUnit_3019);
+ return types;
+ }
+ if (editPart instanceof CartesianQueuedUnitCartesianQueuedUnitRefactoringUnitCompartment3EditPart) {
+ ArrayList<IElementType> types = new ArrayList<IElementType>(6);
+ types.add(ComrelElementTypes.CartesianQueuedUnit_3003);
+ types.add(ComrelElementTypes.ParallelQueuedUnit_3004);
+ types.add(ComrelElementTypes.SingleQueuedUnit_3022);
+ types.add(ComrelElementTypes.SequentialUnit_3026);
+ types.add(ComrelElementTypes.ConditionalUnit_3030);
+ types.add(ComrelElementTypes.AtomicUnit_3034);
+ return types;
+ }
+ if (editPart instanceof SingleQueuedUnitSingleQueuedUnitHelperUnitsCompartmentEditPart) {
+ ArrayList<IElementType> types = new ArrayList<IElementType>(4);
+ types.add(ComrelElementTypes.SingleFeatureUnit_3055);
+ types.add(ComrelElementTypes.MultiFeatureUnit_3056);
+ types.add(ComrelElementTypes.SingleFilterUnit_3057);
+ types.add(ComrelElementTypes.MultiFilterUnit_3058);
+ return types;
+ }
+ if (editPart instanceof SingleQueuedUnitSingleQueuedUnitRefactoringUnitCompartmentEditPart) {
+ ArrayList<IElementType> types = new ArrayList<IElementType>(6);
+ types.add(ComrelElementTypes.CartesianQueuedUnit_3025);
+ types.add(ComrelElementTypes.ParallelQueuedUnit_3043);
+ types.add(ComrelElementTypes.SingleQueuedUnit_3059);
+ types.add(ComrelElementTypes.SequentialUnit_3060);
+ types.add(ComrelElementTypes.ConditionalUnit_3066);
+ types.add(ComrelElementTypes.AtomicUnit_3068);
+ return types;
+ }
+ if (editPart instanceof CartesianQueuedUnitCartesianQueuedUnitHelperUnitsCompartment4EditPart) {
+ ArrayList<IElementType> types = new ArrayList<IElementType>(4);
+ types.add(ComrelElementTypes.SingleFeatureUnit_3008);
+ types.add(ComrelElementTypes.MultiFeatureUnit_3012);
+ types.add(ComrelElementTypes.SingleFilterUnit_3016);
+ types.add(ComrelElementTypes.MultiFilterUnit_3019);
+ return types;
+ }
+ if (editPart instanceof CartesianQueuedUnitCartesianQueuedUnitRefactoringUnitCompartment4EditPart) {
+ ArrayList<IElementType> types = new ArrayList<IElementType>(6);
+ types.add(ComrelElementTypes.CartesianQueuedUnit_3003);
+ types.add(ComrelElementTypes.ParallelQueuedUnit_3004);
+ types.add(ComrelElementTypes.SingleQueuedUnit_3022);
+ types.add(ComrelElementTypes.SequentialUnit_3026);
+ types.add(ComrelElementTypes.ConditionalUnit_3030);
+ types.add(ComrelElementTypes.AtomicUnit_3034);
+ return types;
+ }
+ if (editPart instanceof SequentialUnitSequentialUnitHelperUnitsCompartmentEditPart) {
+ ArrayList<IElementType> types = new ArrayList<IElementType>(4);
+ types.add(ComrelElementTypes.SingleFeatureUnit_3061);
+ types.add(ComrelElementTypes.MultiFeatureUnit_3062);
+ types.add(ComrelElementTypes.SingleFilterUnit_3063);
+ types.add(ComrelElementTypes.MultiFilterUnit_3064);
+ return types;
+ }
+ if (editPart instanceof SequentialUnitSequentialUnitRefactoringUnitsCompartmentEditPart) {
+ ArrayList<IElementType> types = new ArrayList<IElementType>(6);
+ types.add(ComrelElementTypes.CartesianQueuedUnit_3029);
+ types.add(ComrelElementTypes.ParallelQueuedUnit_3045);
+ types.add(ComrelElementTypes.SingleQueuedUnit_3065);
+ types.add(ComrelElementTypes.SequentialUnit_3070);
+ types.add(ComrelElementTypes.ConditionalUnit_3071);
+ types.add(ComrelElementTypes.AtomicUnit_3074);
+ return types;
+ }
+ if (editPart instanceof CartesianQueuedUnitCartesianQueuedUnitHelperUnitsCompartment5EditPart) {
+ ArrayList<IElementType> types = new ArrayList<IElementType>(4);
+ types.add(ComrelElementTypes.SingleFeatureUnit_3008);
+ types.add(ComrelElementTypes.MultiFeatureUnit_3012);
+ types.add(ComrelElementTypes.SingleFilterUnit_3016);
+ types.add(ComrelElementTypes.MultiFilterUnit_3019);
+ return types;
+ }
+ if (editPart instanceof CartesianQueuedUnitCartesianQueuedUnitRefactoringUnitCompartment5EditPart) {
+ ArrayList<IElementType> types = new ArrayList<IElementType>(6);
+ types.add(ComrelElementTypes.CartesianQueuedUnit_3003);
+ types.add(ComrelElementTypes.ParallelQueuedUnit_3004);
+ types.add(ComrelElementTypes.SingleQueuedUnit_3022);
+ types.add(ComrelElementTypes.SequentialUnit_3026);
+ types.add(ComrelElementTypes.ConditionalUnit_3030);
+ types.add(ComrelElementTypes.AtomicUnit_3034);
+ return types;
+ }
+ if (editPart instanceof ConditionalUnitConditionalUnitIfCompartmentEditPart) {
+ ArrayList<IElementType> types = new ArrayList<IElementType>(1);
+ types.add(ComrelElementTypes.ConditionCheck_3076);
+ return types;
+ }
+ if (editPart instanceof ConditionalUnitConditionalUnitHelperUnitsCompartmentEditPart) {
+ ArrayList<IElementType> types = new ArrayList<IElementType>(4);
+ types.add(ComrelElementTypes.SingleFeatureUnit_3050);
+ types.add(ComrelElementTypes.MultiFeatureUnit_3051);
+ types.add(ComrelElementTypes.SingleFilterUnit_3052);
+ types.add(ComrelElementTypes.MultiFilterUnit_3053);
+ return types;
+ }
+ if (editPart instanceof ConditionalUnitConditionalUnitThenCompartmentEditPart) {
+ ArrayList<IElementType> types = new ArrayList<IElementType>(6);
+ types.add(ComrelElementTypes.CartesianQueuedUnit_3033);
+ types.add(ComrelElementTypes.ParallelQueuedUnit_3036);
+ types.add(ComrelElementTypes.SingleQueuedUnit_3054);
+ types.add(ComrelElementTypes.SequentialUnit_3069);
+ types.add(ComrelElementTypes.ConditionalUnit_3072);
+ types.add(ComrelElementTypes.AtomicUnit_3077);
+ return types;
+ }
+ if (editPart instanceof ConditionalUnitConditionalUnitElseCompartmentEditPart) {
+ ArrayList<IElementType> types = new ArrayList<IElementType>(6);
+ types.add(ComrelElementTypes.CartesianQueuedUnit_3047);
+ types.add(ComrelElementTypes.ParallelQueuedUnit_3048);
+ types.add(ComrelElementTypes.SingleQueuedUnit_3067);
+ types.add(ComrelElementTypes.SequentialUnit_3073);
+ types.add(ComrelElementTypes.ConditionalUnit_3075);
+ types.add(ComrelElementTypes.AtomicUnit_3078);
+ return types;
+ }
+ if (editPart instanceof CartesianQueuedUnitCartesianQueuedUnitHelperUnitsCompartment6EditPart) {
+ ArrayList<IElementType> types = new ArrayList<IElementType>(4);
+ types.add(ComrelElementTypes.SingleFeatureUnit_3008);
+ types.add(ComrelElementTypes.MultiFeatureUnit_3012);
+ types.add(ComrelElementTypes.SingleFilterUnit_3016);
+ types.add(ComrelElementTypes.MultiFilterUnit_3019);
+ return types;
+ }
+ if (editPart instanceof CartesianQueuedUnitCartesianQueuedUnitRefactoringUnitCompartment6EditPart) {
+ ArrayList<IElementType> types = new ArrayList<IElementType>(6);
+ types.add(ComrelElementTypes.CartesianQueuedUnit_3003);
+ types.add(ComrelElementTypes.ParallelQueuedUnit_3004);
+ types.add(ComrelElementTypes.SingleQueuedUnit_3022);
+ types.add(ComrelElementTypes.SequentialUnit_3026);
+ types.add(ComrelElementTypes.ConditionalUnit_3030);
+ types.add(ComrelElementTypes.AtomicUnit_3034);
+ return types;
+ }
+ if (editPart instanceof ParallelQueuedUnitParallelQueuedUnitHelperUnitsCompartment2EditPart) {
+ ArrayList<IElementType> types = new ArrayList<IElementType>(4);
+ types.add(ComrelElementTypes.SingleFeatureUnit_3038);
+ types.add(ComrelElementTypes.MultiFeatureUnit_3039);
+ types.add(ComrelElementTypes.SingleFilterUnit_3040);
+ types.add(ComrelElementTypes.MultiFilterUnit_3041);
+ return types;
+ }
+ if (editPart instanceof ParallelQueuedUnitParallelQueuedUnitRefactoringUnitsCompartment2EditPart) {
+ ArrayList<IElementType> types = new ArrayList<IElementType>(6);
+ types.add(ComrelElementTypes.CartesianQueuedUnit_3007);
+ types.add(ComrelElementTypes.ParallelQueuedUnit_3037);
+ types.add(ComrelElementTypes.SingleQueuedUnit_3042);
+ types.add(ComrelElementTypes.SequentialUnit_3044);
+ types.add(ComrelElementTypes.ConditionalUnit_3046);
+ types.add(ComrelElementTypes.AtomicUnit_3049);
+ return types;
+ }
+ if (editPart instanceof ParallelQueuedUnitParallelQueuedUnitHelperUnitsCompartment3EditPart) {
+ ArrayList<IElementType> types = new ArrayList<IElementType>(4);
+ types.add(ComrelElementTypes.SingleFeatureUnit_3038);
+ types.add(ComrelElementTypes.MultiFeatureUnit_3039);
+ types.add(ComrelElementTypes.SingleFilterUnit_3040);
+ types.add(ComrelElementTypes.MultiFilterUnit_3041);
+ return types;
+ }
+ if (editPart instanceof ParallelQueuedUnitParallelQueuedUnitRefactoringUnitsCompartment3EditPart) {
+ ArrayList<IElementType> types = new ArrayList<IElementType>(6);
+ types.add(ComrelElementTypes.CartesianQueuedUnit_3007);
+ types.add(ComrelElementTypes.ParallelQueuedUnit_3037);
+ types.add(ComrelElementTypes.SingleQueuedUnit_3042);
+ types.add(ComrelElementTypes.SequentialUnit_3044);
+ types.add(ComrelElementTypes.ConditionalUnit_3046);
+ types.add(ComrelElementTypes.AtomicUnit_3049);
+ return types;
+ }
+ if (editPart instanceof SingleQueuedUnitSingleQueuedUnitHelperUnitsCompartment2EditPart) {
+ ArrayList<IElementType> types = new ArrayList<IElementType>(4);
+ types.add(ComrelElementTypes.SingleFeatureUnit_3055);
+ types.add(ComrelElementTypes.MultiFeatureUnit_3056);
+ types.add(ComrelElementTypes.SingleFilterUnit_3057);
+ types.add(ComrelElementTypes.MultiFilterUnit_3058);
+ return types;
+ }
+ if (editPart instanceof SingleQueuedUnitSingleQueuedUnitRefactoringUnitCompartment2EditPart) {
+ ArrayList<IElementType> types = new ArrayList<IElementType>(6);
+ types.add(ComrelElementTypes.CartesianQueuedUnit_3025);
+ types.add(ComrelElementTypes.ParallelQueuedUnit_3043);
+ types.add(ComrelElementTypes.SingleQueuedUnit_3059);
+ types.add(ComrelElementTypes.SequentialUnit_3060);
+ types.add(ComrelElementTypes.ConditionalUnit_3066);
+ types.add(ComrelElementTypes.AtomicUnit_3068);
+ return types;
+ }
+ if (editPart instanceof ParallelQueuedUnitParallelQueuedUnitHelperUnitsCompartment4EditPart) {
+ ArrayList<IElementType> types = new ArrayList<IElementType>(4);
+ types.add(ComrelElementTypes.SingleFeatureUnit_3038);
+ types.add(ComrelElementTypes.MultiFeatureUnit_3039);
+ types.add(ComrelElementTypes.SingleFilterUnit_3040);
+ types.add(ComrelElementTypes.MultiFilterUnit_3041);
+ return types;
+ }
+ if (editPart instanceof ParallelQueuedUnitParallelQueuedUnitRefactoringUnitsCompartment4EditPart) {
+ ArrayList<IElementType> types = new ArrayList<IElementType>(6);
+ types.add(ComrelElementTypes.CartesianQueuedUnit_3007);
+ types.add(ComrelElementTypes.ParallelQueuedUnit_3037);
+ types.add(ComrelElementTypes.SingleQueuedUnit_3042);
+ types.add(ComrelElementTypes.SequentialUnit_3044);
+ types.add(ComrelElementTypes.ConditionalUnit_3046);
+ types.add(ComrelElementTypes.AtomicUnit_3049);
+ return types;
+ }
+ if (editPart instanceof SequentialUnitSequentialUnitHelperUnitsCompartment2EditPart) {
+ ArrayList<IElementType> types = new ArrayList<IElementType>(4);
+ types.add(ComrelElementTypes.SingleFeatureUnit_3061);
+ types.add(ComrelElementTypes.MultiFeatureUnit_3062);
+ types.add(ComrelElementTypes.SingleFilterUnit_3063);
+ types.add(ComrelElementTypes.MultiFilterUnit_3064);
+ return types;
+ }
+ if (editPart instanceof SequentialUnitSequentialUnitRefactoringUnitsCompartment2EditPart) {
+ ArrayList<IElementType> types = new ArrayList<IElementType>(6);
+ types.add(ComrelElementTypes.CartesianQueuedUnit_3029);
+ types.add(ComrelElementTypes.ParallelQueuedUnit_3045);
+ types.add(ComrelElementTypes.SingleQueuedUnit_3065);
+ types.add(ComrelElementTypes.SequentialUnit_3070);
+ types.add(ComrelElementTypes.ConditionalUnit_3071);
+ types.add(ComrelElementTypes.AtomicUnit_3074);
+ return types;
+ }
+ if (editPart instanceof ParallelQueuedUnitParallelQueuedUnitHelperUnitsCompartment5EditPart) {
+ ArrayList<IElementType> types = new ArrayList<IElementType>(4);
+ types.add(ComrelElementTypes.SingleFeatureUnit_3038);
+ types.add(ComrelElementTypes.MultiFeatureUnit_3039);
+ types.add(ComrelElementTypes.SingleFilterUnit_3040);
+ types.add(ComrelElementTypes.MultiFilterUnit_3041);
+ return types;
+ }
+ if (editPart instanceof ParallelQueuedUnitParallelQueuedUnitRefactoringUnitsCompartment5EditPart) {
+ ArrayList<IElementType> types = new ArrayList<IElementType>(6);
+ types.add(ComrelElementTypes.CartesianQueuedUnit_3007);
+ types.add(ComrelElementTypes.ParallelQueuedUnit_3037);
+ types.add(ComrelElementTypes.SingleQueuedUnit_3042);
+ types.add(ComrelElementTypes.SequentialUnit_3044);
+ types.add(ComrelElementTypes.ConditionalUnit_3046);
+ types.add(ComrelElementTypes.AtomicUnit_3049);
+ return types;
+ }
+ if (editPart instanceof ConditionalUnitConditionalUnitIfCompartment2EditPart) {
+ ArrayList<IElementType> types = new ArrayList<IElementType>(1);
+ types.add(ComrelElementTypes.ConditionCheck_3076);
+ return types;
+ }
+ if (editPart instanceof ConditionalUnitConditionalUnitHelperUnitsCompartment2EditPart) {
+ ArrayList<IElementType> types = new ArrayList<IElementType>(4);
+ types.add(ComrelElementTypes.SingleFeatureUnit_3050);
+ types.add(ComrelElementTypes.MultiFeatureUnit_3051);
+ types.add(ComrelElementTypes.SingleFilterUnit_3052);
+ types.add(ComrelElementTypes.MultiFilterUnit_3053);
+ return types;
+ }
+ if (editPart instanceof ConditionalUnitConditionalUnitThenCompartment2EditPart) {
+ ArrayList<IElementType> types = new ArrayList<IElementType>(6);
+ types.add(ComrelElementTypes.CartesianQueuedUnit_3033);
+ types.add(ComrelElementTypes.ParallelQueuedUnit_3036);
+ types.add(ComrelElementTypes.SingleQueuedUnit_3054);
+ types.add(ComrelElementTypes.SequentialUnit_3069);
+ types.add(ComrelElementTypes.ConditionalUnit_3072);
+ types.add(ComrelElementTypes.AtomicUnit_3077);
+ return types;
+ }
+ if (editPart instanceof ConditionalUnitConditionalUnitElseCompartment2EditPart) {
+ ArrayList<IElementType> types = new ArrayList<IElementType>(6);
+ types.add(ComrelElementTypes.CartesianQueuedUnit_3047);
+ types.add(ComrelElementTypes.ParallelQueuedUnit_3048);
+ types.add(ComrelElementTypes.SingleQueuedUnit_3067);
+ types.add(ComrelElementTypes.SequentialUnit_3073);
+ types.add(ComrelElementTypes.ConditionalUnit_3075);
+ types.add(ComrelElementTypes.AtomicUnit_3078);
+ return types;
+ }
+ if (editPart instanceof CartesianQueuedUnitCartesianQueuedUnitHelperUnitsCompartment7EditPart) {
+ ArrayList<IElementType> types = new ArrayList<IElementType>(4);
+ types.add(ComrelElementTypes.SingleFeatureUnit_3008);
+ types.add(ComrelElementTypes.MultiFeatureUnit_3012);
+ types.add(ComrelElementTypes.SingleFilterUnit_3016);
+ types.add(ComrelElementTypes.MultiFilterUnit_3019);
+ return types;
+ }
+ if (editPart instanceof CartesianQueuedUnitCartesianQueuedUnitRefactoringUnitCompartment7EditPart) {
+ ArrayList<IElementType> types = new ArrayList<IElementType>(6);
+ types.add(ComrelElementTypes.CartesianQueuedUnit_3003);
+ types.add(ComrelElementTypes.ParallelQueuedUnit_3004);
+ types.add(ComrelElementTypes.SingleQueuedUnit_3022);
+ types.add(ComrelElementTypes.SequentialUnit_3026);
+ types.add(ComrelElementTypes.ConditionalUnit_3030);
+ types.add(ComrelElementTypes.AtomicUnit_3034);
+ return types;
+ }
+ if (editPart instanceof ParallelQueuedUnitParallelQueuedUnitHelperUnitsCompartment6EditPart) {
+ ArrayList<IElementType> types = new ArrayList<IElementType>(4);
+ types.add(ComrelElementTypes.SingleFeatureUnit_3038);
+ types.add(ComrelElementTypes.MultiFeatureUnit_3039);
+ types.add(ComrelElementTypes.SingleFilterUnit_3040);
+ types.add(ComrelElementTypes.MultiFilterUnit_3041);
+ return types;
+ }
+ if (editPart instanceof ParallelQueuedUnitParallelQueuedUnitRefactoringUnitsCompartment6EditPart) {
+ ArrayList<IElementType> types = new ArrayList<IElementType>(6);
+ types.add(ComrelElementTypes.CartesianQueuedUnit_3007);
+ types.add(ComrelElementTypes.ParallelQueuedUnit_3037);
+ types.add(ComrelElementTypes.SingleQueuedUnit_3042);
+ types.add(ComrelElementTypes.SequentialUnit_3044);
+ types.add(ComrelElementTypes.ConditionalUnit_3046);
+ types.add(ComrelElementTypes.AtomicUnit_3049);
+ return types;
+ }
+ if (editPart instanceof SingleQueuedUnitSingleQueuedUnitHelperUnitsCompartment3EditPart) {
+ ArrayList<IElementType> types = new ArrayList<IElementType>(4);
+ types.add(ComrelElementTypes.SingleFeatureUnit_3055);
+ types.add(ComrelElementTypes.MultiFeatureUnit_3056);
+ types.add(ComrelElementTypes.SingleFilterUnit_3057);
+ types.add(ComrelElementTypes.MultiFilterUnit_3058);
+ return types;
+ }
+ if (editPart instanceof SingleQueuedUnitSingleQueuedUnitRefactoringUnitCompartment3EditPart) {
+ ArrayList<IElementType> types = new ArrayList<IElementType>(6);
+ types.add(ComrelElementTypes.CartesianQueuedUnit_3025);
+ types.add(ComrelElementTypes.ParallelQueuedUnit_3043);
+ types.add(ComrelElementTypes.SingleQueuedUnit_3059);
+ types.add(ComrelElementTypes.SequentialUnit_3060);
+ types.add(ComrelElementTypes.ConditionalUnit_3066);
+ types.add(ComrelElementTypes.AtomicUnit_3068);
+ return types;
+ }
+ if (editPart instanceof SingleQueuedUnitSingleQueuedUnitHelperUnitsCompartment4EditPart) {
+ ArrayList<IElementType> types = new ArrayList<IElementType>(4);
+ types.add(ComrelElementTypes.SingleFeatureUnit_3055);
+ types.add(ComrelElementTypes.MultiFeatureUnit_3056);
+ types.add(ComrelElementTypes.SingleFilterUnit_3057);
+ types.add(ComrelElementTypes.MultiFilterUnit_3058);
+ return types;
+ }
+ if (editPart instanceof SingleQueuedUnitSingleQueuedUnitRefactoringUnitCompartment4EditPart) {
+ ArrayList<IElementType> types = new ArrayList<IElementType>(6);
+ types.add(ComrelElementTypes.CartesianQueuedUnit_3025);
+ types.add(ComrelElementTypes.ParallelQueuedUnit_3043);
+ types.add(ComrelElementTypes.SingleQueuedUnit_3059);
+ types.add(ComrelElementTypes.SequentialUnit_3060);
+ types.add(ComrelElementTypes.ConditionalUnit_3066);
+ types.add(ComrelElementTypes.AtomicUnit_3068);
+ return types;
+ }
+ if (editPart instanceof SequentialUnitSequentialUnitHelperUnitsCompartment3EditPart) {
+ ArrayList<IElementType> types = new ArrayList<IElementType>(4);
+ types.add(ComrelElementTypes.SingleFeatureUnit_3061);
+ types.add(ComrelElementTypes.MultiFeatureUnit_3062);
+ types.add(ComrelElementTypes.SingleFilterUnit_3063);
+ types.add(ComrelElementTypes.MultiFilterUnit_3064);
+ return types;
+ }
+ if (editPart instanceof SequentialUnitSequentialUnitRefactoringUnitsCompartment3EditPart) {
+ ArrayList<IElementType> types = new ArrayList<IElementType>(6);
+ types.add(ComrelElementTypes.CartesianQueuedUnit_3029);
+ types.add(ComrelElementTypes.ParallelQueuedUnit_3045);
+ types.add(ComrelElementTypes.SingleQueuedUnit_3065);
+ types.add(ComrelElementTypes.SequentialUnit_3070);
+ types.add(ComrelElementTypes.ConditionalUnit_3071);
+ types.add(ComrelElementTypes.AtomicUnit_3074);
+ return types;
+ }
+ if (editPart instanceof SingleQueuedUnitSingleQueuedUnitHelperUnitsCompartment5EditPart) {
+ ArrayList<IElementType> types = new ArrayList<IElementType>(4);
+ types.add(ComrelElementTypes.SingleFeatureUnit_3055);
+ types.add(ComrelElementTypes.MultiFeatureUnit_3056);
+ types.add(ComrelElementTypes.SingleFilterUnit_3057);
+ types.add(ComrelElementTypes.MultiFilterUnit_3058);
+ return types;
+ }
+ if (editPart instanceof SingleQueuedUnitSingleQueuedUnitRefactoringUnitCompartment5EditPart) {
+ ArrayList<IElementType> types = new ArrayList<IElementType>(6);
+ types.add(ComrelElementTypes.CartesianQueuedUnit_3025);
+ types.add(ComrelElementTypes.ParallelQueuedUnit_3043);
+ types.add(ComrelElementTypes.SingleQueuedUnit_3059);
+ types.add(ComrelElementTypes.SequentialUnit_3060);
+ types.add(ComrelElementTypes.ConditionalUnit_3066);
+ types.add(ComrelElementTypes.AtomicUnit_3068);
+ return types;
+ }
+ if (editPart instanceof ConditionalUnitConditionalUnitIfCompartment3EditPart) {
+ ArrayList<IElementType> types = new ArrayList<IElementType>(1);
+ types.add(ComrelElementTypes.ConditionCheck_3076);
+ return types;
+ }
+ if (editPart instanceof ConditionalUnitConditionalUnitHelperUnitsCompartment3EditPart) {
+ ArrayList<IElementType> types = new ArrayList<IElementType>(4);
+ types.add(ComrelElementTypes.SingleFeatureUnit_3050);
+ types.add(ComrelElementTypes.MultiFeatureUnit_3051);
+ types.add(ComrelElementTypes.SingleFilterUnit_3052);
+ types.add(ComrelElementTypes.MultiFilterUnit_3053);
+ return types;
+ }
+ if (editPart instanceof ConditionalUnitConditionalUnitThenCompartment3EditPart) {
+ ArrayList<IElementType> types = new ArrayList<IElementType>(6);
+ types.add(ComrelElementTypes.CartesianQueuedUnit_3033);
+ types.add(ComrelElementTypes.ParallelQueuedUnit_3036);
+ types.add(ComrelElementTypes.SingleQueuedUnit_3054);
+ types.add(ComrelElementTypes.SequentialUnit_3069);
+ types.add(ComrelElementTypes.ConditionalUnit_3072);
+ types.add(ComrelElementTypes.AtomicUnit_3077);
+ return types;
+ }
+ if (editPart instanceof ConditionalUnitConditionalUnitElseCompartment3EditPart) {
+ ArrayList<IElementType> types = new ArrayList<IElementType>(6);
+ types.add(ComrelElementTypes.CartesianQueuedUnit_3047);
+ types.add(ComrelElementTypes.ParallelQueuedUnit_3048);
+ types.add(ComrelElementTypes.SingleQueuedUnit_3067);
+ types.add(ComrelElementTypes.SequentialUnit_3073);
+ types.add(ComrelElementTypes.ConditionalUnit_3075);
+ types.add(ComrelElementTypes.AtomicUnit_3078);
+ return types;
+ }
+ if (editPart instanceof SingleQueuedUnitSingleQueuedUnitHelperUnitsCompartment6EditPart) {
+ ArrayList<IElementType> types = new ArrayList<IElementType>(4);
+ types.add(ComrelElementTypes.SingleFeatureUnit_3055);
+ types.add(ComrelElementTypes.MultiFeatureUnit_3056);
+ types.add(ComrelElementTypes.SingleFilterUnit_3057);
+ types.add(ComrelElementTypes.MultiFilterUnit_3058);
+ return types;
+ }
+ if (editPart instanceof SingleQueuedUnitSingleQueuedUnitRefactoringUnitCompartment6EditPart) {
+ ArrayList<IElementType> types = new ArrayList<IElementType>(6);
+ types.add(ComrelElementTypes.CartesianQueuedUnit_3025);
+ types.add(ComrelElementTypes.ParallelQueuedUnit_3043);
+ types.add(ComrelElementTypes.SingleQueuedUnit_3059);
+ types.add(ComrelElementTypes.SequentialUnit_3060);
+ types.add(ComrelElementTypes.ConditionalUnit_3066);
+ types.add(ComrelElementTypes.AtomicUnit_3068);
+ return types;
+ }
+ if (editPart instanceof SequentialUnitSequentialUnitHelperUnitsCompartment4EditPart) {
+ ArrayList<IElementType> types = new ArrayList<IElementType>(4);
+ types.add(ComrelElementTypes.SingleFeatureUnit_3061);
+ types.add(ComrelElementTypes.MultiFeatureUnit_3062);
+ types.add(ComrelElementTypes.SingleFilterUnit_3063);
+ types.add(ComrelElementTypes.MultiFilterUnit_3064);
+ return types;
+ }
+ if (editPart instanceof SequentialUnitSequentialUnitRefactoringUnitsCompartment4EditPart) {
+ ArrayList<IElementType> types = new ArrayList<IElementType>(6);
+ types.add(ComrelElementTypes.CartesianQueuedUnit_3029);
+ types.add(ComrelElementTypes.ParallelQueuedUnit_3045);
+ types.add(ComrelElementTypes.SingleQueuedUnit_3065);
+ types.add(ComrelElementTypes.SequentialUnit_3070);
+ types.add(ComrelElementTypes.ConditionalUnit_3071);
+ types.add(ComrelElementTypes.AtomicUnit_3074);
+ return types;
+ }
+ if (editPart instanceof SequentialUnitSequentialUnitHelperUnitsCompartment5EditPart) {
+ ArrayList<IElementType> types = new ArrayList<IElementType>(4);
+ types.add(ComrelElementTypes.SingleFeatureUnit_3061);
+ types.add(ComrelElementTypes.MultiFeatureUnit_3062);
+ types.add(ComrelElementTypes.SingleFilterUnit_3063);
+ types.add(ComrelElementTypes.MultiFilterUnit_3064);
+ return types;
+ }
+ if (editPart instanceof SequentialUnitSequentialUnitRefactoringUnitsCompartment5EditPart) {
+ ArrayList<IElementType> types = new ArrayList<IElementType>(6);
+ types.add(ComrelElementTypes.CartesianQueuedUnit_3029);
+ types.add(ComrelElementTypes.ParallelQueuedUnit_3045);
+ types.add(ComrelElementTypes.SingleQueuedUnit_3065);
+ types.add(ComrelElementTypes.SequentialUnit_3070);
+ types.add(ComrelElementTypes.ConditionalUnit_3071);
+ types.add(ComrelElementTypes.AtomicUnit_3074);
+ return types;
+ }
+ if (editPart instanceof ConditionalUnitConditionalUnitIfCompartment4EditPart) {
+ ArrayList<IElementType> types = new ArrayList<IElementType>(1);
+ types.add(ComrelElementTypes.ConditionCheck_3076);
+ return types;
+ }
+ if (editPart instanceof ConditionalUnitConditionalUnitHelperUnitsCompartment4EditPart) {
+ ArrayList<IElementType> types = new ArrayList<IElementType>(4);
+ types.add(ComrelElementTypes.SingleFeatureUnit_3050);
+ types.add(ComrelElementTypes.MultiFeatureUnit_3051);
+ types.add(ComrelElementTypes.SingleFilterUnit_3052);
+ types.add(ComrelElementTypes.MultiFilterUnit_3053);
+ return types;
+ }
+ if (editPart instanceof ConditionalUnitConditionalUnitThenCompartment4EditPart) {
+ ArrayList<IElementType> types = new ArrayList<IElementType>(6);
+ types.add(ComrelElementTypes.CartesianQueuedUnit_3033);
+ types.add(ComrelElementTypes.ParallelQueuedUnit_3036);
+ types.add(ComrelElementTypes.SingleQueuedUnit_3054);
+ types.add(ComrelElementTypes.SequentialUnit_3069);
+ types.add(ComrelElementTypes.ConditionalUnit_3072);
+ types.add(ComrelElementTypes.AtomicUnit_3077);
+ return types;
+ }
+ if (editPart instanceof ConditionalUnitConditionalUnitElseCompartment4EditPart) {
+ ArrayList<IElementType> types = new ArrayList<IElementType>(6);
+ types.add(ComrelElementTypes.CartesianQueuedUnit_3047);
+ types.add(ComrelElementTypes.ParallelQueuedUnit_3048);
+ types.add(ComrelElementTypes.SingleQueuedUnit_3067);
+ types.add(ComrelElementTypes.SequentialUnit_3073);
+ types.add(ComrelElementTypes.ConditionalUnit_3075);
+ types.add(ComrelElementTypes.AtomicUnit_3078);
+ return types;
+ }
+ if (editPart instanceof ConditionalUnitConditionalUnitIfCompartment5EditPart) {
+ ArrayList<IElementType> types = new ArrayList<IElementType>(1);
+ types.add(ComrelElementTypes.ConditionCheck_3076);
+ return types;
+ }
+ if (editPart instanceof ConditionalUnitConditionalUnitHelperUnitsCompartment5EditPart) {
+ ArrayList<IElementType> types = new ArrayList<IElementType>(4);
+ types.add(ComrelElementTypes.SingleFeatureUnit_3050);
+ types.add(ComrelElementTypes.MultiFeatureUnit_3051);
+ types.add(ComrelElementTypes.SingleFilterUnit_3052);
+ types.add(ComrelElementTypes.MultiFilterUnit_3053);
+ return types;
+ }
+ if (editPart instanceof ConditionalUnitConditionalUnitThenCompartment5EditPart) {
+ ArrayList<IElementType> types = new ArrayList<IElementType>(6);
+ types.add(ComrelElementTypes.CartesianQueuedUnit_3033);
+ types.add(ComrelElementTypes.ParallelQueuedUnit_3036);
+ types.add(ComrelElementTypes.SingleQueuedUnit_3054);
+ types.add(ComrelElementTypes.SequentialUnit_3069);
+ types.add(ComrelElementTypes.ConditionalUnit_3072);
+ types.add(ComrelElementTypes.AtomicUnit_3077);
+ return types;
+ }
+ if (editPart instanceof ConditionalUnitConditionalUnitElseCompartment5EditPart) {
+ ArrayList<IElementType> types = new ArrayList<IElementType>(6);
+ types.add(ComrelElementTypes.CartesianQueuedUnit_3047);
+ types.add(ComrelElementTypes.ParallelQueuedUnit_3048);
+ types.add(ComrelElementTypes.SingleQueuedUnit_3067);
+ types.add(ComrelElementTypes.SequentialUnit_3073);
+ types.add(ComrelElementTypes.ConditionalUnit_3075);
+ types.add(ComrelElementTypes.AtomicUnit_3078);
+ return types;
+ }
+ if (editPart instanceof SequentialUnitSequentialUnitHelperUnitsCompartment6EditPart) {
+ ArrayList<IElementType> types = new ArrayList<IElementType>(4);
+ types.add(ComrelElementTypes.SingleFeatureUnit_3061);
+ types.add(ComrelElementTypes.MultiFeatureUnit_3062);
+ types.add(ComrelElementTypes.SingleFilterUnit_3063);
+ types.add(ComrelElementTypes.MultiFilterUnit_3064);
+ return types;
+ }
+ if (editPart instanceof SequentialUnitSequentialUnitRefactoringUnitsCompartment6EditPart) {
+ ArrayList<IElementType> types = new ArrayList<IElementType>(6);
+ types.add(ComrelElementTypes.CartesianQueuedUnit_3029);
+ types.add(ComrelElementTypes.ParallelQueuedUnit_3045);
+ types.add(ComrelElementTypes.SingleQueuedUnit_3065);
+ types.add(ComrelElementTypes.SequentialUnit_3070);
+ types.add(ComrelElementTypes.ConditionalUnit_3071);
+ types.add(ComrelElementTypes.AtomicUnit_3074);
+ return types;
+ }
+ if (editPart instanceof ConditionalUnitConditionalUnitIfCompartment6EditPart) {
+ ArrayList<IElementType> types = new ArrayList<IElementType>(1);
+ types.add(ComrelElementTypes.ConditionCheck_3076);
+ return types;
+ }
+ if (editPart instanceof ConditionalUnitConditionalUnitHelperUnitsCompartment6EditPart) {
+ ArrayList<IElementType> types = new ArrayList<IElementType>(4);
+ types.add(ComrelElementTypes.SingleFeatureUnit_3050);
+ types.add(ComrelElementTypes.MultiFeatureUnit_3051);
+ types.add(ComrelElementTypes.SingleFilterUnit_3052);
+ types.add(ComrelElementTypes.MultiFilterUnit_3053);
+ return types;
+ }
+ if (editPart instanceof ConditionalUnitConditionalUnitThenCompartment6EditPart) {
+ ArrayList<IElementType> types = new ArrayList<IElementType>(6);
+ types.add(ComrelElementTypes.CartesianQueuedUnit_3033);
+ types.add(ComrelElementTypes.ParallelQueuedUnit_3036);
+ types.add(ComrelElementTypes.SingleQueuedUnit_3054);
+ types.add(ComrelElementTypes.SequentialUnit_3069);
+ types.add(ComrelElementTypes.ConditionalUnit_3072);
+ types.add(ComrelElementTypes.AtomicUnit_3077);
+ return types;
+ }
+ if (editPart instanceof ConditionalUnitConditionalUnitElseCompartment6EditPart) {
+ ArrayList<IElementType> types = new ArrayList<IElementType>(6);
+ types.add(ComrelElementTypes.CartesianQueuedUnit_3047);
+ types.add(ComrelElementTypes.ParallelQueuedUnit_3048);
+ types.add(ComrelElementTypes.SingleQueuedUnit_3067);
+ types.add(ComrelElementTypes.SequentialUnit_3073);
+ types.add(ComrelElementTypes.ConditionalUnit_3075);
+ types.add(ComrelElementTypes.AtomicUnit_3078);
+ return types;
+ }
+ if (editPart instanceof ParallelQueuedUnitParallelQueuedUnitHelperUnitsCompartment7EditPart) {
+ ArrayList<IElementType> types = new ArrayList<IElementType>(4);
+ types.add(ComrelElementTypes.SingleFeatureUnit_3038);
+ types.add(ComrelElementTypes.MultiFeatureUnit_3039);
+ types.add(ComrelElementTypes.SingleFilterUnit_3040);
+ types.add(ComrelElementTypes.MultiFilterUnit_3041);
+ return types;
+ }
+ if (editPart instanceof ParallelQueuedUnitParallelQueuedUnitRefactoringUnitsCompartment7EditPart) {
+ ArrayList<IElementType> types = new ArrayList<IElementType>(6);
+ types.add(ComrelElementTypes.CartesianQueuedUnit_3007);
+ types.add(ComrelElementTypes.ParallelQueuedUnit_3037);
+ types.add(ComrelElementTypes.SingleQueuedUnit_3042);
+ types.add(ComrelElementTypes.SequentialUnit_3044);
+ types.add(ComrelElementTypes.ConditionalUnit_3046);
+ types.add(ComrelElementTypes.AtomicUnit_3049);
+ return types;
+ }
+ if (editPart instanceof SingleQueuedUnitSingleQueuedUnitHelperUnitsCompartment7EditPart) {
+ ArrayList<IElementType> types = new ArrayList<IElementType>(4);
+ types.add(ComrelElementTypes.SingleFeatureUnit_3055);
+ types.add(ComrelElementTypes.MultiFeatureUnit_3056);
+ types.add(ComrelElementTypes.SingleFilterUnit_3057);
+ types.add(ComrelElementTypes.MultiFilterUnit_3058);
+ return types;
+ }
+ if (editPart instanceof SingleQueuedUnitSingleQueuedUnitRefactoringUnitCompartment7EditPart) {
+ ArrayList<IElementType> types = new ArrayList<IElementType>(6);
+ types.add(ComrelElementTypes.CartesianQueuedUnit_3025);
+ types.add(ComrelElementTypes.ParallelQueuedUnit_3043);
+ types.add(ComrelElementTypes.SingleQueuedUnit_3059);
+ types.add(ComrelElementTypes.SequentialUnit_3060);
+ types.add(ComrelElementTypes.ConditionalUnit_3066);
+ types.add(ComrelElementTypes.AtomicUnit_3068);
+ return types;
+ }
+ if (editPart instanceof SequentialUnitSequentialUnitHelperUnitsCompartment7EditPart) {
+ ArrayList<IElementType> types = new ArrayList<IElementType>(4);
+ types.add(ComrelElementTypes.SingleFeatureUnit_3061);
+ types.add(ComrelElementTypes.MultiFeatureUnit_3062);
+ types.add(ComrelElementTypes.SingleFilterUnit_3063);
+ types.add(ComrelElementTypes.MultiFilterUnit_3064);
+ return types;
+ }
+ if (editPart instanceof SequentialUnitSequentialUnitRefactoringUnitsCompartment7EditPart) {
+ ArrayList<IElementType> types = new ArrayList<IElementType>(6);
+ types.add(ComrelElementTypes.CartesianQueuedUnit_3029);
+ types.add(ComrelElementTypes.ParallelQueuedUnit_3045);
+ types.add(ComrelElementTypes.SingleQueuedUnit_3065);
+ types.add(ComrelElementTypes.SequentialUnit_3070);
+ types.add(ComrelElementTypes.ConditionalUnit_3071);
+ types.add(ComrelElementTypes.AtomicUnit_3074);
+ return types;
+ }
+ if (editPart instanceof ConditionalUnitConditionalUnitIfCompartment7EditPart) {
+ ArrayList<IElementType> types = new ArrayList<IElementType>(1);
+ types.add(ComrelElementTypes.ConditionCheck_3076);
+ return types;
+ }
+ if (editPart instanceof ConditionalUnitConditionalUnitHelperUnitsCompartment7EditPart) {
+ ArrayList<IElementType> types = new ArrayList<IElementType>(4);
+ types.add(ComrelElementTypes.SingleFeatureUnit_3050);
+ types.add(ComrelElementTypes.MultiFeatureUnit_3051);
+ types.add(ComrelElementTypes.SingleFilterUnit_3052);
+ types.add(ComrelElementTypes.MultiFilterUnit_3053);
+ return types;
+ }
+ if (editPart instanceof ConditionalUnitConditionalUnitThenCompartment7EditPart) {
+ ArrayList<IElementType> types = new ArrayList<IElementType>(6);
+ types.add(ComrelElementTypes.CartesianQueuedUnit_3033);
+ types.add(ComrelElementTypes.ParallelQueuedUnit_3036);
+ types.add(ComrelElementTypes.SingleQueuedUnit_3054);
+ types.add(ComrelElementTypes.SequentialUnit_3069);
+ types.add(ComrelElementTypes.ConditionalUnit_3072);
+ types.add(ComrelElementTypes.AtomicUnit_3077);
+ return types;
+ }
+ if (editPart instanceof ConditionalUnitConditionalUnitElseCompartment7EditPart) {
+ ArrayList<IElementType> types = new ArrayList<IElementType>(6);
+ types.add(ComrelElementTypes.CartesianQueuedUnit_3047);
+ types.add(ComrelElementTypes.ParallelQueuedUnit_3048);
+ types.add(ComrelElementTypes.SingleQueuedUnit_3067);
+ types.add(ComrelElementTypes.SequentialUnit_3073);
+ types.add(ComrelElementTypes.ConditionalUnit_3075);
+ types.add(ComrelElementTypes.AtomicUnit_3078);
+ return types;
+ }
+ return Collections.EMPTY_LIST;
+ }
+
+ /**
+ * @generated
+ */
+ public List getRelTypesOnSource(IAdaptable source) {
+ IGraphicalEditPart sourceEditPart = (IGraphicalEditPart) source
+ .getAdapter(IGraphicalEditPart.class);
+ if (sourceEditPart instanceof SingleInputPortEditPart) {
+ return ((SingleInputPortEditPart) sourceEditPart)
+ .getMARelTypesOnSource();
+ }
+ if (sourceEditPart instanceof SingleInputPort2EditPart) {
+ return ((SingleInputPort2EditPart) sourceEditPart)
+ .getMARelTypesOnSource();
+ }
+ if (sourceEditPart instanceof MultiInputPortEditPart) {
+ return ((MultiInputPortEditPart) sourceEditPart)
+ .getMARelTypesOnSource();
+ }
+ if (sourceEditPart instanceof SingleInputPort3EditPart) {
+ return ((SingleInputPort3EditPart) sourceEditPart)
+ .getMARelTypesOnSource();
+ }
+ if (sourceEditPart instanceof MultiInputPort2EditPart) {
+ return ((MultiInputPort2EditPart) sourceEditPart)
+ .getMARelTypesOnSource();
+ }
+ if (sourceEditPart instanceof SingleInputPort4EditPart) {
+ return ((SingleInputPort4EditPart) sourceEditPart)
+ .getMARelTypesOnSource();
+ }
+ if (sourceEditPart instanceof MultiInputPort3EditPart) {
+ return ((MultiInputPort3EditPart) sourceEditPart)
+ .getMARelTypesOnSource();
+ }
+ if (sourceEditPart instanceof SingleOutputPortEditPart) {
+ return ((SingleOutputPortEditPart) sourceEditPart)
+ .getMARelTypesOnSource();
+ }
+ if (sourceEditPart instanceof SingleInputPort5EditPart) {
+ return ((SingleInputPort5EditPart) sourceEditPart)
+ .getMARelTypesOnSource();
+ }
+ if (sourceEditPart instanceof MultiInputPort4EditPart) {
+ return ((MultiInputPort4EditPart) sourceEditPart)
+ .getMARelTypesOnSource();
+ }
+ if (sourceEditPart instanceof MultiOutputPortEditPart) {
+ return ((MultiOutputPortEditPart) sourceEditPart)
+ .getMARelTypesOnSource();
+ }
+ if (sourceEditPart instanceof MultiInputPort5EditPart) {
+ return ((MultiInputPort5EditPart) sourceEditPart)
+ .getMARelTypesOnSource();
+ }
+ if (sourceEditPart instanceof SingleOutputPort2EditPart) {
+ return ((SingleOutputPort2EditPart) sourceEditPart)
+ .getMARelTypesOnSource();
+ }
+ if (sourceEditPart instanceof MultiInputPort6EditPart) {
+ return ((MultiInputPort6EditPart) sourceEditPart)
+ .getMARelTypesOnSource();
+ }
+ if (sourceEditPart instanceof MultiOutputPort2EditPart) {
+ return ((MultiOutputPort2EditPart) sourceEditPart)
+ .getMARelTypesOnSource();
+ }
+ if (sourceEditPart instanceof SingleInputPort6EditPart) {
+ return ((SingleInputPort6EditPart) sourceEditPart)
+ .getMARelTypesOnSource();
+ }
+ if (sourceEditPart instanceof MultiInputPort7EditPart) {
+ return ((MultiInputPort7EditPart) sourceEditPart)
+ .getMARelTypesOnSource();
+ }
+ if (sourceEditPart instanceof SingleInputPort7EditPart) {
+ return ((SingleInputPort7EditPart) sourceEditPart)
+ .getMARelTypesOnSource();
+ }
+ if (sourceEditPart instanceof MultiInputPort8EditPart) {
+ return ((MultiInputPort8EditPart) sourceEditPart)
+ .getMARelTypesOnSource();
+ }
+ if (sourceEditPart instanceof SingleInputPort8EditPart) {
+ return ((SingleInputPort8EditPart) sourceEditPart)
+ .getMARelTypesOnSource();
+ }
+ if (sourceEditPart instanceof MultiInputPort9EditPart) {
+ return ((MultiInputPort9EditPart) sourceEditPart)
+ .getMARelTypesOnSource();
+ }
+ if (sourceEditPart instanceof SingleInputPort9EditPart) {
+ return ((SingleInputPort9EditPart) sourceEditPart)
+ .getMARelTypesOnSource();
+ }
+ return Collections.EMPTY_LIST;
+ }
+
+ /**
+ * @generated
+ */
+ public List getRelTypesOnTarget(IAdaptable target) {
+ IGraphicalEditPart targetEditPart = (IGraphicalEditPart) target
+ .getAdapter(IGraphicalEditPart.class);
+ if (targetEditPart instanceof SingleInputPortEditPart) {
+ return ((SingleInputPortEditPart) targetEditPart)
+ .getMARelTypesOnTarget();
+ }
+ if (targetEditPart instanceof SingleInputPort2EditPart) {
+ return ((SingleInputPort2EditPart) targetEditPart)
+ .getMARelTypesOnTarget();
+ }
+ if (targetEditPart instanceof MultiInputPortEditPart) {
+ return ((MultiInputPortEditPart) targetEditPart)
+ .getMARelTypesOnTarget();
+ }
+ if (targetEditPart instanceof SingleInputPort3EditPart) {
+ return ((SingleInputPort3EditPart) targetEditPart)
+ .getMARelTypesOnTarget();
+ }
+ if (targetEditPart instanceof MultiInputPort2EditPart) {
+ return ((MultiInputPort2EditPart) targetEditPart)
+ .getMARelTypesOnTarget();
+ }
+ if (targetEditPart instanceof SingleInputPort4EditPart) {
+ return ((SingleInputPort4EditPart) targetEditPart)
+ .getMARelTypesOnTarget();
+ }
+ if (targetEditPart instanceof MultiInputPort3EditPart) {
+ return ((MultiInputPort3EditPart) targetEditPart)
+ .getMARelTypesOnTarget();
+ }
+ if (targetEditPart instanceof SingleInputPort5EditPart) {
+ return ((SingleInputPort5EditPart) targetEditPart)
+ .getMARelTypesOnTarget();
+ }
+ if (targetEditPart instanceof MultiInputPort4EditPart) {
+ return ((MultiInputPort4EditPart) targetEditPart)
+ .getMARelTypesOnTarget();
+ }
+ if (targetEditPart instanceof MultiInputPort5EditPart) {
+ return ((MultiInputPort5EditPart) targetEditPart)
+ .getMARelTypesOnTarget();
+ }
+ if (targetEditPart instanceof MultiInputPort6EditPart) {
+ return ((MultiInputPort6EditPart) targetEditPart)
+ .getMARelTypesOnTarget();
+ }
+ if (targetEditPart instanceof SingleInputPort6EditPart) {
+ return ((SingleInputPort6EditPart) targetEditPart)
+ .getMARelTypesOnTarget();
+ }
+ if (targetEditPart instanceof MultiInputPort7EditPart) {
+ return ((MultiInputPort7EditPart) targetEditPart)
+ .getMARelTypesOnTarget();
+ }
+ if (targetEditPart instanceof SingleInputPort7EditPart) {
+ return ((SingleInputPort7EditPart) targetEditPart)
+ .getMARelTypesOnTarget();
+ }
+ if (targetEditPart instanceof MultiInputPort8EditPart) {
+ return ((MultiInputPort8EditPart) targetEditPart)
+ .getMARelTypesOnTarget();
+ }
+ if (targetEditPart instanceof SingleInputPort8EditPart) {
+ return ((SingleInputPort8EditPart) targetEditPart)
+ .getMARelTypesOnTarget();
+ }
+ if (targetEditPart instanceof MultiInputPort9EditPart) {
+ return ((MultiInputPort9EditPart) targetEditPart)
+ .getMARelTypesOnTarget();
+ }
+ if (targetEditPart instanceof SingleInputPort9EditPart) {
+ return ((SingleInputPort9EditPart) targetEditPart)
+ .getMARelTypesOnTarget();
+ }
+ return Collections.EMPTY_LIST;
+ }
+
+ /**
+ * @generated
+ */
+ public List getRelTypesOnSourceAndTarget(IAdaptable source,
+ IAdaptable target) {
+ IGraphicalEditPart sourceEditPart = (IGraphicalEditPart) source
+ .getAdapter(IGraphicalEditPart.class);
+ IGraphicalEditPart targetEditPart = (IGraphicalEditPart) target
+ .getAdapter(IGraphicalEditPart.class);
+ if (sourceEditPart instanceof SingleInputPortEditPart) {
+ return ((SingleInputPortEditPart) sourceEditPart)
+ .getMARelTypesOnSourceAndTarget(targetEditPart);
+ }
+ if (sourceEditPart instanceof SingleInputPort2EditPart) {
+ return ((SingleInputPort2EditPart) sourceEditPart)
+ .getMARelTypesOnSourceAndTarget(targetEditPart);
+ }
+ if (sourceEditPart instanceof MultiInputPortEditPart) {
+ return ((MultiInputPortEditPart) sourceEditPart)
+ .getMARelTypesOnSourceAndTarget(targetEditPart);
+ }
+ if (sourceEditPart instanceof SingleInputPort3EditPart) {
+ return ((SingleInputPort3EditPart) sourceEditPart)
+ .getMARelTypesOnSourceAndTarget(targetEditPart);
+ }
+ if (sourceEditPart instanceof MultiInputPort2EditPart) {
+ return ((MultiInputPort2EditPart) sourceEditPart)
+ .getMARelTypesOnSourceAndTarget(targetEditPart);
+ }
+ if (sourceEditPart instanceof SingleInputPort4EditPart) {
+ return ((SingleInputPort4EditPart) sourceEditPart)
+ .getMARelTypesOnSourceAndTarget(targetEditPart);
+ }
+ if (sourceEditPart instanceof MultiInputPort3EditPart) {
+ return ((MultiInputPort3EditPart) sourceEditPart)
+ .getMARelTypesOnSourceAndTarget(targetEditPart);
+ }
+ if (sourceEditPart instanceof SingleOutputPortEditPart) {
+ return ((SingleOutputPortEditPart) sourceEditPart)
+ .getMARelTypesOnSourceAndTarget(targetEditPart);
+ }
+ if (sourceEditPart instanceof SingleInputPort5EditPart) {
+ return ((SingleInputPort5EditPart) sourceEditPart)
+ .getMARelTypesOnSourceAndTarget(targetEditPart);
+ }
+ if (sourceEditPart instanceof MultiInputPort4EditPart) {
+ return ((MultiInputPort4EditPart) sourceEditPart)
+ .getMARelTypesOnSourceAndTarget(targetEditPart);
+ }
+ if (sourceEditPart instanceof MultiOutputPortEditPart) {
+ return ((MultiOutputPortEditPart) sourceEditPart)
+ .getMARelTypesOnSourceAndTarget(targetEditPart);
+ }
+ if (sourceEditPart instanceof MultiInputPort5EditPart) {
+ return ((MultiInputPort5EditPart) sourceEditPart)
+ .getMARelTypesOnSourceAndTarget(targetEditPart);
+ }
+ if (sourceEditPart instanceof SingleOutputPort2EditPart) {
+ return ((SingleOutputPort2EditPart) sourceEditPart)
+ .getMARelTypesOnSourceAndTarget(targetEditPart);
+ }
+ if (sourceEditPart instanceof MultiInputPort6EditPart) {
+ return ((MultiInputPort6EditPart) sourceEditPart)
+ .getMARelTypesOnSourceAndTarget(targetEditPart);
+ }
+ if (sourceEditPart instanceof MultiOutputPort2EditPart) {
+ return ((MultiOutputPort2EditPart) sourceEditPart)
+ .getMARelTypesOnSourceAndTarget(targetEditPart);
+ }
+ if (sourceEditPart instanceof SingleInputPort6EditPart) {
+ return ((SingleInputPort6EditPart) sourceEditPart)
+ .getMARelTypesOnSourceAndTarget(targetEditPart);
+ }
+ if (sourceEditPart instanceof MultiInputPort7EditPart) {
+ return ((MultiInputPort7EditPart) sourceEditPart)
+ .getMARelTypesOnSourceAndTarget(targetEditPart);
+ }
+ if (sourceEditPart instanceof SingleInputPort7EditPart) {
+ return ((SingleInputPort7EditPart) sourceEditPart)
+ .getMARelTypesOnSourceAndTarget(targetEditPart);
+ }
+ if (sourceEditPart instanceof MultiInputPort8EditPart) {
+ return ((MultiInputPort8EditPart) sourceEditPart)
+ .getMARelTypesOnSourceAndTarget(targetEditPart);
+ }
+ if (sourceEditPart instanceof SingleInputPort8EditPart) {
+ return ((SingleInputPort8EditPart) sourceEditPart)
+ .getMARelTypesOnSourceAndTarget(targetEditPart);
+ }
+ if (sourceEditPart instanceof MultiInputPort9EditPart) {
+ return ((MultiInputPort9EditPart) sourceEditPart)
+ .getMARelTypesOnSourceAndTarget(targetEditPart);
+ }
+ if (sourceEditPart instanceof SingleInputPort9EditPart) {
+ return ((SingleInputPort9EditPart) sourceEditPart)
+ .getMARelTypesOnSourceAndTarget(targetEditPart);
+ }
+ return Collections.EMPTY_LIST;
+ }
+
+ /**
+ * @generated
+ */
+ public List getTypesForSource(IAdaptable target,
+ IElementType relationshipType) {
+ IGraphicalEditPart targetEditPart = (IGraphicalEditPart) target
+ .getAdapter(IGraphicalEditPart.class);
+ if (targetEditPart instanceof SingleInputPortEditPart) {
+ return ((SingleInputPortEditPart) targetEditPart)
+ .getMATypesForSource(relationshipType);
+ }
+ if (targetEditPart instanceof SingleInputPort2EditPart) {
+ return ((SingleInputPort2EditPart) targetEditPart)
+ .getMATypesForSource(relationshipType);
+ }
+ if (targetEditPart instanceof MultiInputPortEditPart) {
+ return ((MultiInputPortEditPart) targetEditPart)
+ .getMATypesForSource(relationshipType);
+ }
+ if (targetEditPart instanceof SingleInputPort3EditPart) {
+ return ((SingleInputPort3EditPart) targetEditPart)
+ .getMATypesForSource(relationshipType);
+ }
+ if (targetEditPart instanceof MultiInputPort2EditPart) {
+ return ((MultiInputPort2EditPart) targetEditPart)
+ .getMATypesForSource(relationshipType);
+ }
+ if (targetEditPart instanceof SingleInputPort4EditPart) {
+ return ((SingleInputPort4EditPart) targetEditPart)
+ .getMATypesForSource(relationshipType);
+ }
+ if (targetEditPart instanceof MultiInputPort3EditPart) {
+ return ((MultiInputPort3EditPart) targetEditPart)
+ .getMATypesForSource(relationshipType);
+ }
+ if (targetEditPart instanceof SingleInputPort5EditPart) {
+ return ((SingleInputPort5EditPart) targetEditPart)
+ .getMATypesForSource(relationshipType);
+ }
+ if (targetEditPart instanceof MultiInputPort4EditPart) {
+ return ((MultiInputPort4EditPart) targetEditPart)
+ .getMATypesForSource(relationshipType);
+ }
+ if (targetEditPart instanceof MultiInputPort5EditPart) {
+ return ((MultiInputPort5EditPart) targetEditPart)
+ .getMATypesForSource(relationshipType);
+ }
+ if (targetEditPart instanceof MultiInputPort6EditPart) {
+ return ((MultiInputPort6EditPart) targetEditPart)
+ .getMATypesForSource(relationshipType);
+ }
+ if (targetEditPart instanceof SingleInputPort6EditPart) {
+ return ((SingleInputPort6EditPart) targetEditPart)
+ .getMATypesForSource(relationshipType);
+ }
+ if (targetEditPart instanceof MultiInputPort7EditPart) {
+ return ((MultiInputPort7EditPart) targetEditPart)
+ .getMATypesForSource(relationshipType);
+ }
+ if (targetEditPart instanceof SingleInputPort7EditPart) {
+ return ((SingleInputPort7EditPart) targetEditPart)
+ .getMATypesForSource(relationshipType);
+ }
+ if (targetEditPart instanceof MultiInputPort8EditPart) {
+ return ((MultiInputPort8EditPart) targetEditPart)
+ .getMATypesForSource(relationshipType);
+ }
+ if (targetEditPart instanceof SingleInputPort8EditPart) {
+ return ((SingleInputPort8EditPart) targetEditPart)
+ .getMATypesForSource(relationshipType);
+ }
+ if (targetEditPart instanceof MultiInputPort9EditPart) {
+ return ((MultiInputPort9EditPart) targetEditPart)
+ .getMATypesForSource(relationshipType);
+ }
+ if (targetEditPart instanceof SingleInputPort9EditPart) {
+ return ((SingleInputPort9EditPart) targetEditPart)
+ .getMATypesForSource(relationshipType);
+ }
+ return Collections.EMPTY_LIST;
+ }
+
+ /**
+ * @generated
+ */
+ public List getTypesForTarget(IAdaptable source,
+ IElementType relationshipType) {
+ IGraphicalEditPart sourceEditPart = (IGraphicalEditPart) source
+ .getAdapter(IGraphicalEditPart.class);
+ if (sourceEditPart instanceof SingleInputPortEditPart) {
+ return ((SingleInputPortEditPart) sourceEditPart)
+ .getMATypesForTarget(relationshipType);
+ }
+ if (sourceEditPart instanceof SingleInputPort2EditPart) {
+ return ((SingleInputPort2EditPart) sourceEditPart)
+ .getMATypesForTarget(relationshipType);
+ }
+ if (sourceEditPart instanceof MultiInputPortEditPart) {
+ return ((MultiInputPortEditPart) sourceEditPart)
+ .getMATypesForTarget(relationshipType);
+ }
+ if (sourceEditPart instanceof SingleInputPort3EditPart) {
+ return ((SingleInputPort3EditPart) sourceEditPart)
+ .getMATypesForTarget(relationshipType);
+ }
+ if (sourceEditPart instanceof MultiInputPort2EditPart) {
+ return ((MultiInputPort2EditPart) sourceEditPart)
+ .getMATypesForTarget(relationshipType);
+ }
+ if (sourceEditPart instanceof SingleInputPort4EditPart) {
+ return ((SingleInputPort4EditPart) sourceEditPart)
+ .getMATypesForTarget(relationshipType);
+ }
+ if (sourceEditPart instanceof MultiInputPort3EditPart) {
+ return ((MultiInputPort3EditPart) sourceEditPart)
+ .getMATypesForTarget(relationshipType);
+ }
+ if (sourceEditPart instanceof SingleOutputPortEditPart) {
+ return ((SingleOutputPortEditPart) sourceEditPart)
+ .getMATypesForTarget(relationshipType);
+ }
+ if (sourceEditPart instanceof SingleInputPort5EditPart) {
+ return ((SingleInputPort5EditPart) sourceEditPart)
+ .getMATypesForTarget(relationshipType);
+ }
+ if (sourceEditPart instanceof MultiInputPort4EditPart) {
+ return ((MultiInputPort4EditPart) sourceEditPart)
+ .getMATypesForTarget(relationshipType);
+ }
+ if (sourceEditPart instanceof MultiOutputPortEditPart) {
+ return ((MultiOutputPortEditPart) sourceEditPart)
+ .getMATypesForTarget(relationshipType);
+ }
+ if (sourceEditPart instanceof MultiInputPort5EditPart) {
+ return ((MultiInputPort5EditPart) sourceEditPart)
+ .getMATypesForTarget(relationshipType);
+ }
+ if (sourceEditPart instanceof SingleOutputPort2EditPart) {
+ return ((SingleOutputPort2EditPart) sourceEditPart)
+ .getMATypesForTarget(relationshipType);
+ }
+ if (sourceEditPart instanceof MultiInputPort6EditPart) {
+ return ((MultiInputPort6EditPart) sourceEditPart)
+ .getMATypesForTarget(relationshipType);
+ }
+ if (sourceEditPart instanceof MultiOutputPort2EditPart) {
+ return ((MultiOutputPort2EditPart) sourceEditPart)
+ .getMATypesForTarget(relationshipType);
+ }
+ if (sourceEditPart instanceof SingleInputPort6EditPart) {
+ return ((SingleInputPort6EditPart) sourceEditPart)
+ .getMATypesForTarget(relationshipType);
+ }
+ if (sourceEditPart instanceof MultiInputPort7EditPart) {
+ return ((MultiInputPort7EditPart) sourceEditPart)
+ .getMATypesForTarget(relationshipType);
+ }
+ if (sourceEditPart instanceof SingleInputPort7EditPart) {
+ return ((SingleInputPort7EditPart) sourceEditPart)
+ .getMATypesForTarget(relationshipType);
+ }
+ if (sourceEditPart instanceof MultiInputPort8EditPart) {
+ return ((MultiInputPort8EditPart) sourceEditPart)
+ .getMATypesForTarget(relationshipType);
+ }
+ if (sourceEditPart instanceof SingleInputPort8EditPart) {
+ return ((SingleInputPort8EditPart) sourceEditPart)
+ .getMATypesForTarget(relationshipType);
+ }
+ if (sourceEditPart instanceof MultiInputPort9EditPart) {
+ return ((MultiInputPort9EditPart) sourceEditPart)
+ .getMATypesForTarget(relationshipType);
+ }
+ if (sourceEditPart instanceof SingleInputPort9EditPart) {
+ return ((SingleInputPort9EditPart) sourceEditPart)
+ .getMATypesForTarget(relationshipType);
+ }
+ return Collections.EMPTY_LIST;
+ }
+
+ /**
+ * @generated
+ */
+ public EObject selectExistingElementForSource(IAdaptable target,
+ IElementType relationshipType) {
+ return selectExistingElement(target,
+ getTypesForSource(target, relationshipType));
+ }
+
+ /**
+ * @generated
+ */
+ public EObject selectExistingElementForTarget(IAdaptable source,
+ IElementType relationshipType) {
+ return selectExistingElement(source,
+ getTypesForTarget(source, relationshipType));
+ }
+
+ /**
+ * @generated
+ */
+ protected EObject selectExistingElement(IAdaptable host, Collection types) {
+ if (types.isEmpty()) {
+ return null;
+ }
+ IGraphicalEditPart editPart = (IGraphicalEditPart) host
+ .getAdapter(IGraphicalEditPart.class);
+ if (editPart == null) {
+ return null;
+ }
+ Diagram diagram = (Diagram) editPart.getRoot().getContents().getModel();
+ HashSet<EObject> elements = new HashSet<EObject>();
+ for (Iterator<EObject> it = diagram.getElement().eAllContents(); it
+ .hasNext();) {
+ EObject element = it.next();
+ if (isApplicableElement(element, types)) {
+ elements.add(element);
+ }
+ }
+ if (elements.isEmpty()) {
+ return null;
+ }
+ return selectElement((EObject[]) elements.toArray(new EObject[elements
+ .size()]));
+ }
+
+ /**
+ * @generated
+ */
+ protected boolean isApplicableElement(EObject element, Collection types) {
+ IElementType type = ElementTypeRegistry.getInstance().getElementType(
+ element);
+ return types.contains(type);
+ }
+
+ /**
+ * @generated
+ */
+ protected EObject selectElement(EObject[] elements) {
+ Shell shell = Display.getCurrent().getActiveShell();
+ ILabelProvider labelProvider = new AdapterFactoryLabelProvider(
+ ComrelDiagramEditorPlugin.getInstance()
+ .getItemProvidersAdapterFactory());
+ ElementListSelectionDialog dialog = new ElementListSelectionDialog(
+ shell, labelProvider);
+ dialog.setMessage(Messages.ComrelModelingAssistantProviderMessage);
+ dialog.setTitle(Messages.ComrelModelingAssistantProviderTitle);
+ dialog.setMultipleSelection(false);
+ dialog.setElements(elements);
+ EObject selected = null;
+ if (dialog.open() == Window.OK) {
+ selected = (EObject) dialog.getFirstResult();
+ }
+ return selected;
+ }
+}
diff --git a/org.eclipse.emf.refactor.comrel.diagram/src/comrel/diagram/providers/ComrelParserProvider.java b/org.eclipse.emf.refactor.comrel.diagram/src/comrel/diagram/providers/ComrelParserProvider.java
new file mode 100644
index 0000000..7d9fa61
--- /dev/null
+++ b/org.eclipse.emf.refactor.comrel.diagram/src/comrel/diagram/providers/ComrelParserProvider.java
@@ -0,0 +1,2261 @@
+/*
+ *
+ */
+package comrel.diagram.providers;
+
+import org.eclipse.core.runtime.IAdaptable;
+import org.eclipse.emf.ecore.EAttribute;
+import org.eclipse.emf.ecore.EObject;
+import org.eclipse.gmf.runtime.common.core.service.AbstractProvider;
+import org.eclipse.gmf.runtime.common.core.service.IOperation;
+import org.eclipse.gmf.runtime.common.ui.services.parser.GetParserOperation;
+import org.eclipse.gmf.runtime.common.ui.services.parser.IParser;
+import org.eclipse.gmf.runtime.common.ui.services.parser.IParserProvider;
+import org.eclipse.gmf.runtime.common.ui.services.parser.ParserService;
+import org.eclipse.gmf.runtime.emf.type.core.IElementType;
+import org.eclipse.gmf.runtime.emf.ui.services.parser.ParserHintAdapter;
+import org.eclipse.gmf.runtime.notation.View;
+
+import comrel.ComrelPackage;
+import comrel.diagram.edit.parts.AtomicUnitLabelType2EditPart;
+import comrel.diagram.edit.parts.AtomicUnitLabelType3EditPart;
+import comrel.diagram.edit.parts.AtomicUnitLabelType4EditPart;
+import comrel.diagram.edit.parts.AtomicUnitLabelType5EditPart;
+import comrel.diagram.edit.parts.AtomicUnitLabelType6EditPart;
+import comrel.diagram.edit.parts.AtomicUnitLabelType7EditPart;
+import comrel.diagram.edit.parts.AtomicUnitLabelTypeEditPart;
+import comrel.diagram.edit.parts.CartesianQueuedUnitNameTypeLblStrict2EditPart;
+import comrel.diagram.edit.parts.CartesianQueuedUnitNameTypeLblStrict3EditPart;
+import comrel.diagram.edit.parts.CartesianQueuedUnitNameTypeLblStrict4EditPart;
+import comrel.diagram.edit.parts.CartesianQueuedUnitNameTypeLblStrict5EditPart;
+import comrel.diagram.edit.parts.CartesianQueuedUnitNameTypeLblStrict6EditPart;
+import comrel.diagram.edit.parts.CartesianQueuedUnitNameTypeLblStrict7EditPart;
+import comrel.diagram.edit.parts.CartesianQueuedUnitNameTypeLblStrictEditPart;
+import comrel.diagram.edit.parts.ConditionCheckNameTypeSpecEditPart;
+import comrel.diagram.edit.parts.ConditionalUnitNameType2EditPart;
+import comrel.diagram.edit.parts.ConditionalUnitNameType3EditPart;
+import comrel.diagram.edit.parts.ConditionalUnitNameType4EditPart;
+import comrel.diagram.edit.parts.ConditionalUnitNameType5EditPart;
+import comrel.diagram.edit.parts.ConditionalUnitNameType6EditPart;
+import comrel.diagram.edit.parts.ConditionalUnitNameType7EditPart;
+import comrel.diagram.edit.parts.ConditionalUnitNameTypeEditPart;
+import comrel.diagram.edit.parts.MultiFeatureUnitNameType2EditPart;
+import comrel.diagram.edit.parts.MultiFeatureUnitNameType3EditPart;
+import comrel.diagram.edit.parts.MultiFeatureUnitNameType4EditPart;
+import comrel.diagram.edit.parts.MultiFeatureUnitNameType5EditPart;
+import comrel.diagram.edit.parts.MultiFeatureUnitNameTypeEditPart;
+import comrel.diagram.edit.parts.MultiFilterUnitNameType2EditPart;
+import comrel.diagram.edit.parts.MultiFilterUnitNameType3EditPart;
+import comrel.diagram.edit.parts.MultiFilterUnitNameType4EditPart;
+import comrel.diagram.edit.parts.MultiFilterUnitNameType5EditPart;
+import comrel.diagram.edit.parts.MultiFilterUnitNameTypeEditPart;
+import comrel.diagram.edit.parts.MultiInputPortNameType2EditPart;
+import comrel.diagram.edit.parts.MultiInputPortNameType3EditPart;
+import comrel.diagram.edit.parts.MultiInputPortNameType4EditPart;
+import comrel.diagram.edit.parts.MultiInputPortNameType5EditPart;
+import comrel.diagram.edit.parts.MultiInputPortNameType6EditPart;
+import comrel.diagram.edit.parts.MultiInputPortNameType7EditPart;
+import comrel.diagram.edit.parts.MultiInputPortNameType8EditPart;
+import comrel.diagram.edit.parts.MultiInputPortNameType9EditPart;
+import comrel.diagram.edit.parts.MultiInputPortNameTypeEditPart;
+import comrel.diagram.edit.parts.MultiOutputPortNameType2EditPart;
+import comrel.diagram.edit.parts.MultiOutputPortNameTypeEditPart;
+import comrel.diagram.edit.parts.ParallelQueuedUnitNameTypeLblStrict2EditPart;
+import comrel.diagram.edit.parts.ParallelQueuedUnitNameTypeLblStrict3EditPart;
+import comrel.diagram.edit.parts.ParallelQueuedUnitNameTypeLblStrict4EditPart;
+import comrel.diagram.edit.parts.ParallelQueuedUnitNameTypeLblStrict5EditPart;
+import comrel.diagram.edit.parts.ParallelQueuedUnitNameTypeLblStrict6EditPart;
+import comrel.diagram.edit.parts.ParallelQueuedUnitNameTypeLblStrict7EditPart;
+import comrel.diagram.edit.parts.ParallelQueuedUnitNameTypeLblStrictEditPart;
+import comrel.diagram.edit.parts.SequentialUnitNameTypeLblStrict2EditPart;
+import comrel.diagram.edit.parts.SequentialUnitNameTypeLblStrict3EditPart;
+import comrel.diagram.edit.parts.SequentialUnitNameTypeLblStrict4EditPart;
+import comrel.diagram.edit.parts.SequentialUnitNameTypeLblStrict5EditPart;
+import comrel.diagram.edit.parts.SequentialUnitNameTypeLblStrict6EditPart;
+import comrel.diagram.edit.parts.SequentialUnitNameTypeLblStrict7EditPart;
+import comrel.diagram.edit.parts.SequentialUnitNameTypeLblStrictEditPart;
+import comrel.diagram.edit.parts.SingleFeatureUnitNameType2EditPart;
+import comrel.diagram.edit.parts.SingleFeatureUnitNameType3EditPart;
+import comrel.diagram.edit.parts.SingleFeatureUnitNameType4EditPart;
+import comrel.diagram.edit.parts.SingleFeatureUnitNameType5EditPart;
+import comrel.diagram.edit.parts.SingleFeatureUnitNameTypeEditPart;
+import comrel.diagram.edit.parts.SingleFilterUnitNameType2EditPart;
+import comrel.diagram.edit.parts.SingleFilterUnitNameType3EditPart;
+import comrel.diagram.edit.parts.SingleFilterUnitNameType4EditPart;
+import comrel.diagram.edit.parts.SingleFilterUnitNameType5EditPart;
+import comrel.diagram.edit.parts.SingleFilterUnitNameTypeEditPart;
+import comrel.diagram.edit.parts.SingleInputPortNameType2EditPart;
+import comrel.diagram.edit.parts.SingleInputPortNameType3EditPart;
+import comrel.diagram.edit.parts.SingleInputPortNameType4EditPart;
+import comrel.diagram.edit.parts.SingleInputPortNameType5EditPart;
+import comrel.diagram.edit.parts.SingleInputPortNameType6EditPart;
+import comrel.diagram.edit.parts.SingleInputPortNameType7EditPart;
+import comrel.diagram.edit.parts.SingleInputPortNameType8EditPart;
+import comrel.diagram.edit.parts.SingleInputPortNameType9EditPart;
+import comrel.diagram.edit.parts.SingleInputPortNameTypeEditPart;
+import comrel.diagram.edit.parts.SingleOutputPortNameType2EditPart;
+import comrel.diagram.edit.parts.SingleOutputPortNameTypeEditPart;
+import comrel.diagram.edit.parts.SingleQueuedUnitNameTypeLblStrict2EditPart;
+import comrel.diagram.edit.parts.SingleQueuedUnitNameTypeLblStrict3EditPart;
+import comrel.diagram.edit.parts.SingleQueuedUnitNameTypeLblStrict4EditPart;
+import comrel.diagram.edit.parts.SingleQueuedUnitNameTypeLblStrict5EditPart;
+import comrel.diagram.edit.parts.SingleQueuedUnitNameTypeLblStrict6EditPart;
+import comrel.diagram.edit.parts.SingleQueuedUnitNameTypeLblStrict7EditPart;
+import comrel.diagram.edit.parts.SingleQueuedUnitNameTypeLblStrictEditPart;
+import comrel.diagram.parsers.MessageFormatParser;
+import comrel.diagram.part.ComrelVisualIDRegistry;
+
+/**
+ * @generated
+ */
+public class ComrelParserProvider extends AbstractProvider implements
+ IParserProvider {
+
+ /**
+ * @generated
+ */
+ private IParser singleInputPortNameType_5001Parser;
+
+ /**
+ * @generated
+ */
+ private IParser getSingleInputPortNameType_5001Parser() {
+ if (singleInputPortNameType_5001Parser == null) {
+ EAttribute[] features = new EAttribute[] {
+ ComrelPackage.eINSTANCE.getNamedElement_Name(),
+ ComrelPackage.eINSTANCE.getPort_Type() };
+ MessageFormatParser parser = new MessageFormatParser(features);
+ parser.setViewPattern("{0}:{1}"); //$NON-NLS-1$
+ parser.setEditorPattern("{0}:{1}"); //$NON-NLS-1$
+ parser.setEditPattern("{0}:{1}"); //$NON-NLS-1$
+ singleInputPortNameType_5001Parser = parser;
+ }
+ return singleInputPortNameType_5001Parser;
+ }
+
+ /**
+ * @generated
+ */
+ private IParser cartesianQueuedUnitNameTypeLblStrict_5080Parser;
+
+ /**
+ * @generated
+ */
+ private IParser getCartesianQueuedUnitNameTypeLblStrict_5080Parser() {
+ if (cartesianQueuedUnitNameTypeLblStrict_5080Parser == null) {
+ EAttribute[] features = new EAttribute[] {
+ ComrelPackage.eINSTANCE.getNamedElement_Name(),
+ ComrelPackage.eINSTANCE.getCartesianQueuedUnit_Type(),
+ ComrelPackage.eINSTANCE.getCartesianQueuedUnit_LblStrict() };
+ MessageFormatParser parser = new MessageFormatParser(features);
+ parser.setViewPattern("{0}:{1} -{2}-"); //$NON-NLS-1$
+ parser.setEditorPattern("{0}:{1} -{2}-"); //$NON-NLS-1$
+ parser.setEditPattern("{0}:{1} -{2}-"); //$NON-NLS-1$
+ cartesianQueuedUnitNameTypeLblStrict_5080Parser = parser;
+ }
+ return cartesianQueuedUnitNameTypeLblStrict_5080Parser;
+ }
+
+ /**
+ * @generated
+ */
+ private IParser parallelQueuedUnitNameTypeLblStrict_5081Parser;
+
+ /**
+ * @generated
+ */
+ private IParser getParallelQueuedUnitNameTypeLblStrict_5081Parser() {
+ if (parallelQueuedUnitNameTypeLblStrict_5081Parser == null) {
+ EAttribute[] features = new EAttribute[] {
+ ComrelPackage.eINSTANCE.getNamedElement_Name(),
+ ComrelPackage.eINSTANCE.getParallelQueuedUnit_Type(),
+ ComrelPackage.eINSTANCE.getParallelQueuedUnit_LblStrict() };
+ MessageFormatParser parser = new MessageFormatParser(features);
+ parser.setViewPattern("{0}:{1} -{2}-"); //$NON-NLS-1$
+ parser.setEditorPattern("{0}:{1} -{2}-"); //$NON-NLS-1$
+ parser.setEditPattern("{0}:{1} -{2}-"); //$NON-NLS-1$
+ parallelQueuedUnitNameTypeLblStrict_5081Parser = parser;
+ }
+ return parallelQueuedUnitNameTypeLblStrict_5081Parser;
+ }
+
+ /**
+ * @generated
+ */
+ private IParser singleQueuedUnitNameTypeLblStrict_5082Parser;
+
+ /**
+ * @generated
+ */
+ private IParser getSingleQueuedUnitNameTypeLblStrict_5082Parser() {
+ if (singleQueuedUnitNameTypeLblStrict_5082Parser == null) {
+ EAttribute[] features = new EAttribute[] {
+ ComrelPackage.eINSTANCE.getNamedElement_Name(),
+ ComrelPackage.eINSTANCE.getSingleQueuedUnit_Type(),
+ ComrelPackage.eINSTANCE.getSingleQueuedUnit_LblStrict() };
+ MessageFormatParser parser = new MessageFormatParser(features);
+ parser.setViewPattern("{0}:{1} -{2}-"); //$NON-NLS-1$
+ parser.setEditorPattern("{0}:{1} -{2}-"); //$NON-NLS-1$
+ parser.setEditPattern("{0}:{1} -{2}-"); //$NON-NLS-1$
+ singleQueuedUnitNameTypeLblStrict_5082Parser = parser;
+ }
+ return singleQueuedUnitNameTypeLblStrict_5082Parser;
+ }
+
+ /**
+ * @generated
+ */
+ private IParser sequentialUnitNameTypeLblStrict_5083Parser;
+
+ /**
+ * @generated
+ */
+ private IParser getSequentialUnitNameTypeLblStrict_5083Parser() {
+ if (sequentialUnitNameTypeLblStrict_5083Parser == null) {
+ EAttribute[] features = new EAttribute[] {
+ ComrelPackage.eINSTANCE.getNamedElement_Name(),
+ ComrelPackage.eINSTANCE.getSequentialUnit_Type(),
+ ComrelPackage.eINSTANCE.getSequentialUnit_LblStrict() };
+ MessageFormatParser parser = new MessageFormatParser(features);
+ parser.setViewPattern("{0}:{1} -{2}-"); //$NON-NLS-1$
+ parser.setEditorPattern("{0}:{1} -{2}-"); //$NON-NLS-1$
+ parser.setEditPattern("{0}:{1} -{2}-"); //$NON-NLS-1$
+ sequentialUnitNameTypeLblStrict_5083Parser = parser;
+ }
+ return sequentialUnitNameTypeLblStrict_5083Parser;
+ }
+
+ /**
+ * @generated
+ */
+ private IParser conditionalUnitNameType_5084Parser;
+
+ /**
+ * @generated
+ */
+ private IParser getConditionalUnitNameType_5084Parser() {
+ if (conditionalUnitNameType_5084Parser == null) {
+ EAttribute[] features = new EAttribute[] {
+ ComrelPackage.eINSTANCE.getNamedElement_Name(),
+ ComrelPackage.eINSTANCE.getConditionalUnit_Type() };
+ MessageFormatParser parser = new MessageFormatParser(features);
+ parser.setViewPattern("{0}:{1}"); //$NON-NLS-1$
+ parser.setEditorPattern("{0}:{1}"); //$NON-NLS-1$
+ parser.setEditPattern("{0}:{1}"); //$NON-NLS-1$
+ conditionalUnitNameType_5084Parser = parser;
+ }
+ return conditionalUnitNameType_5084Parser;
+ }
+
+ /**
+ * @generated
+ */
+ private IParser atomicUnitLabelType_5085Parser;
+
+ /**
+ * @generated
+ */
+ private IParser getAtomicUnitLabelType_5085Parser() {
+ if (atomicUnitLabelType_5085Parser == null) {
+ EAttribute[] features = new EAttribute[] {
+ ComrelPackage.eINSTANCE.getAtomicUnit_Label(),
+ ComrelPackage.eINSTANCE.getAtomicUnit_Type() };
+ MessageFormatParser parser = new MessageFormatParser(features);
+ parser.setViewPattern("{0}:{1}"); //$NON-NLS-1$
+ parser.setEditorPattern("{0}:{1}"); //$NON-NLS-1$
+ parser.setEditPattern("{0}:{1}"); //$NON-NLS-1$
+ atomicUnitLabelType_5085Parser = parser;
+ }
+ return atomicUnitLabelType_5085Parser;
+ }
+
+ /**
+ * @generated
+ */
+ private IParser singleInputPortNameType_5002Parser;
+
+ /**
+ * @generated
+ */
+ private IParser getSingleInputPortNameType_5002Parser() {
+ if (singleInputPortNameType_5002Parser == null) {
+ EAttribute[] features = new EAttribute[] {
+ ComrelPackage.eINSTANCE.getNamedElement_Name(),
+ ComrelPackage.eINSTANCE.getPort_Type() };
+ MessageFormatParser parser = new MessageFormatParser(features);
+ parser.setViewPattern("{0}:{1}"); //$NON-NLS-1$
+ parser.setEditorPattern("{0}:{1}"); //$NON-NLS-1$
+ parser.setEditPattern("{0}:{1}"); //$NON-NLS-1$
+ singleInputPortNameType_5002Parser = parser;
+ }
+ return singleInputPortNameType_5002Parser;
+ }
+
+ /**
+ * @generated
+ */
+ private IParser multiInputPortNameType_5003Parser;
+
+ /**
+ * @generated
+ */
+ private IParser getMultiInputPortNameType_5003Parser() {
+ if (multiInputPortNameType_5003Parser == null) {
+ EAttribute[] features = new EAttribute[] {
+ ComrelPackage.eINSTANCE.getNamedElement_Name(),
+ ComrelPackage.eINSTANCE.getPort_Type() };
+ MessageFormatParser parser = new MessageFormatParser(features);
+ parser.setViewPattern("{0}:{1}"); //$NON-NLS-1$
+ parser.setEditorPattern("{0}:{1}"); //$NON-NLS-1$
+ parser.setEditPattern("{0}:{1}"); //$NON-NLS-1$
+ multiInputPortNameType_5003Parser = parser;
+ }
+ return multiInputPortNameType_5003Parser;
+ }
+
+ /**
+ * @generated
+ */
+ private IParser cartesianQueuedUnitNameTypeLblStrict_5079Parser;
+
+ /**
+ * @generated
+ */
+ private IParser getCartesianQueuedUnitNameTypeLblStrict_5079Parser() {
+ if (cartesianQueuedUnitNameTypeLblStrict_5079Parser == null) {
+ EAttribute[] features = new EAttribute[] {
+ ComrelPackage.eINSTANCE.getNamedElement_Name(),
+ ComrelPackage.eINSTANCE.getCartesianQueuedUnit_Type(),
+ ComrelPackage.eINSTANCE.getCartesianQueuedUnit_LblStrict() };
+ MessageFormatParser parser = new MessageFormatParser(features);
+ parser.setViewPattern("{0}:{1} -{2}-"); //$NON-NLS-1$
+ parser.setEditorPattern("{0}:{1} -{2}-"); //$NON-NLS-1$
+ parser.setEditPattern("{0}:{1} -{2}-"); //$NON-NLS-1$
+ cartesianQueuedUnitNameTypeLblStrict_5079Parser = parser;
+ }
+ return cartesianQueuedUnitNameTypeLblStrict_5079Parser;
+ }
+
+ /**
+ * @generated
+ */
+ private IParser parallelQueuedUnitNameTypeLblStrict_5078Parser;
+
+ /**
+ * @generated
+ */
+ private IParser getParallelQueuedUnitNameTypeLblStrict_5078Parser() {
+ if (parallelQueuedUnitNameTypeLblStrict_5078Parser == null) {
+ EAttribute[] features = new EAttribute[] {
+ ComrelPackage.eINSTANCE.getNamedElement_Name(),
+ ComrelPackage.eINSTANCE.getParallelQueuedUnit_Type(),
+ ComrelPackage.eINSTANCE.getParallelQueuedUnit_LblStrict() };
+ MessageFormatParser parser = new MessageFormatParser(features);
+ parser.setViewPattern("{0}:{1} -{2}-"); //$NON-NLS-1$
+ parser.setEditorPattern("{0}:{1} -{2}-"); //$NON-NLS-1$
+ parser.setEditPattern("{0}:{1} -{2}-"); //$NON-NLS-1$
+ parallelQueuedUnitNameTypeLblStrict_5078Parser = parser;
+ }
+ return parallelQueuedUnitNameTypeLblStrict_5078Parser;
+ }
+
+ /**
+ * @generated
+ */
+ private IParser singleInputPortNameType_5004Parser;
+
+ /**
+ * @generated
+ */
+ private IParser getSingleInputPortNameType_5004Parser() {
+ if (singleInputPortNameType_5004Parser == null) {
+ EAttribute[] features = new EAttribute[] {
+ ComrelPackage.eINSTANCE.getNamedElement_Name(),
+ ComrelPackage.eINSTANCE.getPort_Type() };
+ MessageFormatParser parser = new MessageFormatParser(features);
+ parser.setViewPattern("{0}:{1}"); //$NON-NLS-1$
+ parser.setEditorPattern("{0}:{1}"); //$NON-NLS-1$
+ parser.setEditPattern("{0}:{1}"); //$NON-NLS-1$
+ singleInputPortNameType_5004Parser = parser;
+ }
+ return singleInputPortNameType_5004Parser;
+ }
+
+ /**
+ * @generated
+ */
+ private IParser multiInputPortNameType_5005Parser;
+
+ /**
+ * @generated
+ */
+ private IParser getMultiInputPortNameType_5005Parser() {
+ if (multiInputPortNameType_5005Parser == null) {
+ EAttribute[] features = new EAttribute[] {
+ ComrelPackage.eINSTANCE.getNamedElement_Name(),
+ ComrelPackage.eINSTANCE.getPort_Type() };
+ MessageFormatParser parser = new MessageFormatParser(features);
+ parser.setViewPattern("{0}:{1}"); //$NON-NLS-1$
+ parser.setEditorPattern("{0}:{1}"); //$NON-NLS-1$
+ parser.setEditPattern("{0}:{1}"); //$NON-NLS-1$
+ multiInputPortNameType_5005Parser = parser;
+ }
+ return multiInputPortNameType_5005Parser;
+ }
+
+ /**
+ * @generated
+ */
+ private IParser cartesianQueuedUnitNameTypeLblStrict_5077Parser;
+
+ /**
+ * @generated
+ */
+ private IParser getCartesianQueuedUnitNameTypeLblStrict_5077Parser() {
+ if (cartesianQueuedUnitNameTypeLblStrict_5077Parser == null) {
+ EAttribute[] features = new EAttribute[] {
+ ComrelPackage.eINSTANCE.getNamedElement_Name(),
+ ComrelPackage.eINSTANCE.getCartesianQueuedUnit_Type(),
+ ComrelPackage.eINSTANCE.getCartesianQueuedUnit_LblStrict() };
+ MessageFormatParser parser = new MessageFormatParser(features);
+ parser.setViewPattern("{0}:{1} -{2}-"); //$NON-NLS-1$
+ parser.setEditorPattern("{0}:{1} -{2}-"); //$NON-NLS-1$
+ parser.setEditPattern("{0}:{1} -{2}-"); //$NON-NLS-1$
+ cartesianQueuedUnitNameTypeLblStrict_5077Parser = parser;
+ }
+ return cartesianQueuedUnitNameTypeLblStrict_5077Parser;
+ }
+
+ /**
+ * @generated
+ */
+ private IParser singleFeatureUnitNameType_5009Parser;
+
+ /**
+ * @generated
+ */
+ private IParser getSingleFeatureUnitNameType_5009Parser() {
+ if (singleFeatureUnitNameType_5009Parser == null) {
+ EAttribute[] features = new EAttribute[] {
+ ComrelPackage.eINSTANCE.getNamedElement_Name(),
+ ComrelPackage.eINSTANCE.getSingleFeatureUnit_Type() };
+ MessageFormatParser parser = new MessageFormatParser(features);
+ parser.setViewPattern("{0}:{1}"); //$NON-NLS-1$
+ parser.setEditorPattern("{0}:{1}"); //$NON-NLS-1$
+ parser.setEditPattern("{0}:{1}"); //$NON-NLS-1$
+ singleFeatureUnitNameType_5009Parser = parser;
+ }
+ return singleFeatureUnitNameType_5009Parser;
+ }
+
+ /**
+ * @generated
+ */
+ private IParser singleInputPortNameType_5006Parser;
+
+ /**
+ * @generated
+ */
+ private IParser getSingleInputPortNameType_5006Parser() {
+ if (singleInputPortNameType_5006Parser == null) {
+ EAttribute[] features = new EAttribute[] {
+ ComrelPackage.eINSTANCE.getNamedElement_Name(),
+ ComrelPackage.eINSTANCE.getPort_Type() };
+ MessageFormatParser parser = new MessageFormatParser(features);
+ parser.setViewPattern("{0}:{1}"); //$NON-NLS-1$
+ parser.setEditorPattern("{0}:{1}"); //$NON-NLS-1$
+ parser.setEditPattern("{0}:{1}"); //$NON-NLS-1$
+ singleInputPortNameType_5006Parser = parser;
+ }
+ return singleInputPortNameType_5006Parser;
+ }
+
+ /**
+ * @generated
+ */
+ private IParser multiInputPortNameType_5007Parser;
+
+ /**
+ * @generated
+ */
+ private IParser getMultiInputPortNameType_5007Parser() {
+ if (multiInputPortNameType_5007Parser == null) {
+ EAttribute[] features = new EAttribute[] {
+ ComrelPackage.eINSTANCE.getNamedElement_Name(),
+ ComrelPackage.eINSTANCE.getPort_Type() };
+ MessageFormatParser parser = new MessageFormatParser(features);
+ parser.setViewPattern("{0}:{1}"); //$NON-NLS-1$
+ parser.setEditorPattern("{0}:{1}"); //$NON-NLS-1$
+ parser.setEditPattern("{0}:{1}"); //$NON-NLS-1$
+ multiInputPortNameType_5007Parser = parser;
+ }
+ return multiInputPortNameType_5007Parser;
+ }
+
+ /**
+ * @generated
+ */
+ private IParser singleOutputPortNameType_5008Parser;
+
+ /**
+ * @generated
+ */
+ private IParser getSingleOutputPortNameType_5008Parser() {
+ if (singleOutputPortNameType_5008Parser == null) {
+ EAttribute[] features = new EAttribute[] {
+ ComrelPackage.eINSTANCE.getNamedElement_Name(),
+ ComrelPackage.eINSTANCE.getPort_Type() };
+ MessageFormatParser parser = new MessageFormatParser(features);
+ parser.setViewPattern("{0}:{1}"); //$NON-NLS-1$
+ parser.setEditorPattern("{0}:{1}"); //$NON-NLS-1$
+ parser.setEditPattern("{0}:{1}"); //$NON-NLS-1$
+ singleOutputPortNameType_5008Parser = parser;
+ }
+ return singleOutputPortNameType_5008Parser;
+ }
+
+ /**
+ * @generated
+ */
+ private IParser multiFeatureUnitNameType_5013Parser;
+
+ /**
+ * @generated
+ */
+ private IParser getMultiFeatureUnitNameType_5013Parser() {
+ if (multiFeatureUnitNameType_5013Parser == null) {
+ EAttribute[] features = new EAttribute[] {
+ ComrelPackage.eINSTANCE.getNamedElement_Name(),
+ ComrelPackage.eINSTANCE.getMultiFeatureUnit_Type() };
+ MessageFormatParser parser = new MessageFormatParser(features);
+ parser.setViewPattern("{0}:{1}"); //$NON-NLS-1$
+ parser.setEditorPattern("{0}:{1}"); //$NON-NLS-1$
+ parser.setEditPattern("{0}:{1}"); //$NON-NLS-1$
+ multiFeatureUnitNameType_5013Parser = parser;
+ }
+ return multiFeatureUnitNameType_5013Parser;
+ }
+
+ /**
+ * @generated
+ */
+ private IParser singleInputPortNameType_5010Parser;
+
+ /**
+ * @generated
+ */
+ private IParser getSingleInputPortNameType_5010Parser() {
+ if (singleInputPortNameType_5010Parser == null) {
+ EAttribute[] features = new EAttribute[] {
+ ComrelPackage.eINSTANCE.getNamedElement_Name(),
+ ComrelPackage.eINSTANCE.getPort_Type() };
+ MessageFormatParser parser = new MessageFormatParser(features);
+ parser.setViewPattern("{0}:{1}"); //$NON-NLS-1$
+ parser.setEditorPattern("{0}:{1}"); //$NON-NLS-1$
+ parser.setEditPattern("{0}:{1}"); //$NON-NLS-1$
+ singleInputPortNameType_5010Parser = parser;
+ }
+ return singleInputPortNameType_5010Parser;
+ }
+
+ /**
+ * @generated
+ */
+ private IParser multiInputPortNameType_5011Parser;
+
+ /**
+ * @generated
+ */
+ private IParser getMultiInputPortNameType_5011Parser() {
+ if (multiInputPortNameType_5011Parser == null) {
+ EAttribute[] features = new EAttribute[] {
+ ComrelPackage.eINSTANCE.getNamedElement_Name(),
+ ComrelPackage.eINSTANCE.getPort_Type() };
+ MessageFormatParser parser = new MessageFormatParser(features);
+ parser.setViewPattern("{0}:{1}"); //$NON-NLS-1$
+ parser.setEditorPattern("{0}:{1}"); //$NON-NLS-1$
+ parser.setEditPattern("{0}:{1}"); //$NON-NLS-1$
+ multiInputPortNameType_5011Parser = parser;
+ }
+ return multiInputPortNameType_5011Parser;
+ }
+
+ /**
+ * @generated
+ */
+ private IParser multiOutputPortNameType_5012Parser;
+
+ /**
+ * @generated
+ */
+ private IParser getMultiOutputPortNameType_5012Parser() {
+ if (multiOutputPortNameType_5012Parser == null) {
+ EAttribute[] features = new EAttribute[] {
+ ComrelPackage.eINSTANCE.getNamedElement_Name(),
+ ComrelPackage.eINSTANCE.getPort_Type() };
+ MessageFormatParser parser = new MessageFormatParser(features);
+ parser.setViewPattern("{0}:{1}"); //$NON-NLS-1$
+ parser.setEditorPattern("{0}:{1}"); //$NON-NLS-1$
+ parser.setEditPattern("{0}:{1}"); //$NON-NLS-1$
+ multiOutputPortNameType_5012Parser = parser;
+ }
+ return multiOutputPortNameType_5012Parser;
+ }
+
+ /**
+ * @generated
+ */
+ private IParser singleFilterUnitNameType_5016Parser;
+
+ /**
+ * @generated
+ */
+ private IParser getSingleFilterUnitNameType_5016Parser() {
+ if (singleFilterUnitNameType_5016Parser == null) {
+ EAttribute[] features = new EAttribute[] {
+ ComrelPackage.eINSTANCE.getNamedElement_Name(),
+ ComrelPackage.eINSTANCE.getSingleFilterUnit_Type() };
+ MessageFormatParser parser = new MessageFormatParser(features);
+ parser.setViewPattern("{0}:{1}"); //$NON-NLS-1$
+ parser.setEditorPattern("{0}:{1}"); //$NON-NLS-1$
+ parser.setEditPattern("{0}:{1}"); //$NON-NLS-1$
+ singleFilterUnitNameType_5016Parser = parser;
+ }
+ return singleFilterUnitNameType_5016Parser;
+ }
+
+ /**
+ * @generated
+ */
+ private IParser multiInputPortNameType_5014Parser;
+
+ /**
+ * @generated
+ */
+ private IParser getMultiInputPortNameType_5014Parser() {
+ if (multiInputPortNameType_5014Parser == null) {
+ EAttribute[] features = new EAttribute[] {
+ ComrelPackage.eINSTANCE.getNamedElement_Name(),
+ ComrelPackage.eINSTANCE.getPort_Type() };
+ MessageFormatParser parser = new MessageFormatParser(features);
+ parser.setViewPattern("{0}:{1}"); //$NON-NLS-1$
+ parser.setEditorPattern("{0}:{1}"); //$NON-NLS-1$
+ parser.setEditPattern("{0}:{1}"); //$NON-NLS-1$
+ multiInputPortNameType_5014Parser = parser;
+ }
+ return multiInputPortNameType_5014Parser;
+ }
+
+ /**
+ * @generated
+ */
+ private IParser singleOutputPortNameType_5015Parser;
+
+ /**
+ * @generated
+ */
+ private IParser getSingleOutputPortNameType_5015Parser() {
+ if (singleOutputPortNameType_5015Parser == null) {
+ EAttribute[] features = new EAttribute[] {
+ ComrelPackage.eINSTANCE.getNamedElement_Name(),
+ ComrelPackage.eINSTANCE.getPort_Type() };
+ MessageFormatParser parser = new MessageFormatParser(features);
+ parser.setViewPattern("{0}:{1}"); //$NON-NLS-1$
+ parser.setEditorPattern("{0}:{1}"); //$NON-NLS-1$
+ parser.setEditPattern("{0}:{1}"); //$NON-NLS-1$
+ singleOutputPortNameType_5015Parser = parser;
+ }
+ return singleOutputPortNameType_5015Parser;
+ }
+
+ /**
+ * @generated
+ */
+ private IParser multiFilterUnitNameType_5019Parser;
+
+ /**
+ * @generated
+ */
+ private IParser getMultiFilterUnitNameType_5019Parser() {
+ if (multiFilterUnitNameType_5019Parser == null) {
+ EAttribute[] features = new EAttribute[] {
+ ComrelPackage.eINSTANCE.getNamedElement_Name(),
+ ComrelPackage.eINSTANCE.getMultiFilterUnit_Type() };
+ MessageFormatParser parser = new MessageFormatParser(features);
+ parser.setViewPattern("{0}:{1}"); //$NON-NLS-1$
+ parser.setEditorPattern("{0}:{1}"); //$NON-NLS-1$
+ parser.setEditPattern("{0}:{1}"); //$NON-NLS-1$
+ multiFilterUnitNameType_5019Parser = parser;
+ }
+ return multiFilterUnitNameType_5019Parser;
+ }
+
+ /**
+ * @generated
+ */
+ private IParser multiInputPortNameType_5017Parser;
+
+ /**
+ * @generated
+ */
+ private IParser getMultiInputPortNameType_5017Parser() {
+ if (multiInputPortNameType_5017Parser == null) {
+ EAttribute[] features = new EAttribute[] {
+ ComrelPackage.eINSTANCE.getNamedElement_Name(),
+ ComrelPackage.eINSTANCE.getPort_Type() };
+ MessageFormatParser parser = new MessageFormatParser(features);
+ parser.setViewPattern("{0}:{1}"); //$NON-NLS-1$
+ parser.setEditorPattern("{0}:{1}"); //$NON-NLS-1$
+ parser.setEditPattern("{0}:{1}"); //$NON-NLS-1$
+ multiInputPortNameType_5017Parser = parser;
+ }
+ return multiInputPortNameType_5017Parser;
+ }
+
+ /**
+ * @generated
+ */
+ private IParser multiOutputPortNameType_5018Parser;
+
+ /**
+ * @generated
+ */
+ private IParser getMultiOutputPortNameType_5018Parser() {
+ if (multiOutputPortNameType_5018Parser == null) {
+ EAttribute[] features = new EAttribute[] {
+ ComrelPackage.eINSTANCE.getNamedElement_Name(),
+ ComrelPackage.eINSTANCE.getPort_Type() };
+ MessageFormatParser parser = new MessageFormatParser(features);
+ parser.setViewPattern("{0}:{1}"); //$NON-NLS-1$
+ parser.setEditorPattern("{0}:{1}"); //$NON-NLS-1$
+ parser.setEditPattern("{0}:{1}"); //$NON-NLS-1$
+ multiOutputPortNameType_5018Parser = parser;
+ }
+ return multiOutputPortNameType_5018Parser;
+ }
+
+ /**
+ * @generated
+ */
+ private IParser singleQueuedUnitNameTypeLblStrict_5076Parser;
+
+ /**
+ * @generated
+ */
+ private IParser getSingleQueuedUnitNameTypeLblStrict_5076Parser() {
+ if (singleQueuedUnitNameTypeLblStrict_5076Parser == null) {
+ EAttribute[] features = new EAttribute[] {
+ ComrelPackage.eINSTANCE.getNamedElement_Name(),
+ ComrelPackage.eINSTANCE.getSingleQueuedUnit_Type(),
+ ComrelPackage.eINSTANCE.getSingleQueuedUnit_LblStrict() };
+ MessageFormatParser parser = new MessageFormatParser(features);
+ parser.setViewPattern("{0}:{1} -{2}-"); //$NON-NLS-1$
+ parser.setEditorPattern("{0}:{1} -{2}-"); //$NON-NLS-1$
+ parser.setEditPattern("{0}:{1} -{2}-"); //$NON-NLS-1$
+ singleQueuedUnitNameTypeLblStrict_5076Parser = parser;
+ }
+ return singleQueuedUnitNameTypeLblStrict_5076Parser;
+ }
+
+ /**
+ * @generated
+ */
+ private IParser singleInputPortNameType_5020Parser;
+
+ /**
+ * @generated
+ */
+ private IParser getSingleInputPortNameType_5020Parser() {
+ if (singleInputPortNameType_5020Parser == null) {
+ EAttribute[] features = new EAttribute[] {
+ ComrelPackage.eINSTANCE.getNamedElement_Name(),
+ ComrelPackage.eINSTANCE.getPort_Type() };
+ MessageFormatParser parser = new MessageFormatParser(features);
+ parser.setViewPattern("{0}:{1}"); //$NON-NLS-1$
+ parser.setEditorPattern("{0}:{1}"); //$NON-NLS-1$
+ parser.setEditPattern("{0}:{1}"); //$NON-NLS-1$
+ singleInputPortNameType_5020Parser = parser;
+ }
+ return singleInputPortNameType_5020Parser;
+ }
+
+ /**
+ * @generated
+ */
+ private IParser multiInputPortNameType_5021Parser;
+
+ /**
+ * @generated
+ */
+ private IParser getMultiInputPortNameType_5021Parser() {
+ if (multiInputPortNameType_5021Parser == null) {
+ EAttribute[] features = new EAttribute[] {
+ ComrelPackage.eINSTANCE.getNamedElement_Name(),
+ ComrelPackage.eINSTANCE.getPort_Type() };
+ MessageFormatParser parser = new MessageFormatParser(features);
+ parser.setViewPattern("{0}:{1}"); //$NON-NLS-1$
+ parser.setEditorPattern("{0}:{1}"); //$NON-NLS-1$
+ parser.setEditPattern("{0}:{1}"); //$NON-NLS-1$
+ multiInputPortNameType_5021Parser = parser;
+ }
+ return multiInputPortNameType_5021Parser;
+ }
+
+ /**
+ * @generated
+ */
+ private IParser cartesianQueuedUnitNameTypeLblStrict_5075Parser;
+
+ /**
+ * @generated
+ */
+ private IParser getCartesianQueuedUnitNameTypeLblStrict_5075Parser() {
+ if (cartesianQueuedUnitNameTypeLblStrict_5075Parser == null) {
+ EAttribute[] features = new EAttribute[] {
+ ComrelPackage.eINSTANCE.getNamedElement_Name(),
+ ComrelPackage.eINSTANCE.getCartesianQueuedUnit_Type(),
+ ComrelPackage.eINSTANCE.getCartesianQueuedUnit_LblStrict() };
+ MessageFormatParser parser = new MessageFormatParser(features);
+ parser.setViewPattern("{0}:{1} -{2}-"); //$NON-NLS-1$
+ parser.setEditorPattern("{0}:{1} -{2}-"); //$NON-NLS-1$
+ parser.setEditPattern("{0}:{1} -{2}-"); //$NON-NLS-1$
+ cartesianQueuedUnitNameTypeLblStrict_5075Parser = parser;
+ }
+ return cartesianQueuedUnitNameTypeLblStrict_5075Parser;
+ }
+
+ /**
+ * @generated
+ */
+ private IParser sequentialUnitNameTypeLblStrict_5074Parser;
+
+ /**
+ * @generated
+ */
+ private IParser getSequentialUnitNameTypeLblStrict_5074Parser() {
+ if (sequentialUnitNameTypeLblStrict_5074Parser == null) {
+ EAttribute[] features = new EAttribute[] {
+ ComrelPackage.eINSTANCE.getNamedElement_Name(),
+ ComrelPackage.eINSTANCE.getSequentialUnit_Type(),
+ ComrelPackage.eINSTANCE.getSequentialUnit_LblStrict() };
+ MessageFormatParser parser = new MessageFormatParser(features);
+ parser.setViewPattern("{0}:{1} -{2}-"); //$NON-NLS-1$
+ parser.setEditorPattern("{0}:{1} -{2}-"); //$NON-NLS-1$
+ parser.setEditPattern("{0}:{1} -{2}-"); //$NON-NLS-1$
+ sequentialUnitNameTypeLblStrict_5074Parser = parser;
+ }
+ return sequentialUnitNameTypeLblStrict_5074Parser;
+ }
+
+ /**
+ * @generated
+ */
+ private IParser singleInputPortNameType_5022Parser;
+
+ /**
+ * @generated
+ */
+ private IParser getSingleInputPortNameType_5022Parser() {
+ if (singleInputPortNameType_5022Parser == null) {
+ EAttribute[] features = new EAttribute[] {
+ ComrelPackage.eINSTANCE.getNamedElement_Name(),
+ ComrelPackage.eINSTANCE.getPort_Type() };
+ MessageFormatParser parser = new MessageFormatParser(features);
+ parser.setViewPattern("{0}:{1}"); //$NON-NLS-1$
+ parser.setEditorPattern("{0}:{1}"); //$NON-NLS-1$
+ parser.setEditPattern("{0}:{1}"); //$NON-NLS-1$
+ singleInputPortNameType_5022Parser = parser;
+ }
+ return singleInputPortNameType_5022Parser;
+ }
+
+ /**
+ * @generated
+ */
+ private IParser multiInputPortNameType_5023Parser;
+
+ /**
+ * @generated
+ */
+ private IParser getMultiInputPortNameType_5023Parser() {
+ if (multiInputPortNameType_5023Parser == null) {
+ EAttribute[] features = new EAttribute[] {
+ ComrelPackage.eINSTANCE.getNamedElement_Name(),
+ ComrelPackage.eINSTANCE.getPort_Type() };
+ MessageFormatParser parser = new MessageFormatParser(features);
+ parser.setViewPattern("{0}:{1}"); //$NON-NLS-1$
+ parser.setEditorPattern("{0}:{1}"); //$NON-NLS-1$
+ parser.setEditPattern("{0}:{1}"); //$NON-NLS-1$
+ multiInputPortNameType_5023Parser = parser;
+ }
+ return multiInputPortNameType_5023Parser;
+ }
+
+ /**
+ * @generated
+ */
+ private IParser cartesianQueuedUnitNameTypeLblStrict_5073Parser;
+
+ /**
+ * @generated
+ */
+ private IParser getCartesianQueuedUnitNameTypeLblStrict_5073Parser() {
+ if (cartesianQueuedUnitNameTypeLblStrict_5073Parser == null) {
+ EAttribute[] features = new EAttribute[] {
+ ComrelPackage.eINSTANCE.getNamedElement_Name(),
+ ComrelPackage.eINSTANCE.getCartesianQueuedUnit_Type(),
+ ComrelPackage.eINSTANCE.getCartesianQueuedUnit_LblStrict() };
+ MessageFormatParser parser = new MessageFormatParser(features);
+ parser.setViewPattern("{0}:{1} -{2}-"); //$NON-NLS-1$
+ parser.setEditorPattern("{0}:{1} -{2}-"); //$NON-NLS-1$
+ parser.setEditPattern("{0}:{1} -{2}-"); //$NON-NLS-1$
+ cartesianQueuedUnitNameTypeLblStrict_5073Parser = parser;
+ }
+ return cartesianQueuedUnitNameTypeLblStrict_5073Parser;
+ }
+
+ /**
+ * @generated
+ */
+ private IParser conditionalUnitNameType_5072Parser;
+
+ /**
+ * @generated
+ */
+ private IParser getConditionalUnitNameType_5072Parser() {
+ if (conditionalUnitNameType_5072Parser == null) {
+ EAttribute[] features = new EAttribute[] {
+ ComrelPackage.eINSTANCE.getNamedElement_Name(),
+ ComrelPackage.eINSTANCE.getConditionalUnit_Type() };
+ MessageFormatParser parser = new MessageFormatParser(features);
+ parser.setViewPattern("{0}:{1}"); //$NON-NLS-1$
+ parser.setEditorPattern("{0}:{1}"); //$NON-NLS-1$
+ parser.setEditPattern("{0}:{1}"); //$NON-NLS-1$
+ conditionalUnitNameType_5072Parser = parser;
+ }
+ return conditionalUnitNameType_5072Parser;
+ }
+
+ /**
+ * @generated
+ */
+ private IParser singleInputPortNameType_5024Parser;
+
+ /**
+ * @generated
+ */
+ private IParser getSingleInputPortNameType_5024Parser() {
+ if (singleInputPortNameType_5024Parser == null) {
+ EAttribute[] features = new EAttribute[] {
+ ComrelPackage.eINSTANCE.getNamedElement_Name(),
+ ComrelPackage.eINSTANCE.getPort_Type() };
+ MessageFormatParser parser = new MessageFormatParser(features);
+ parser.setViewPattern("{0}:{1}"); //$NON-NLS-1$
+ parser.setEditorPattern("{0}:{1}"); //$NON-NLS-1$
+ parser.setEditPattern("{0}:{1}"); //$NON-NLS-1$
+ singleInputPortNameType_5024Parser = parser;
+ }
+ return singleInputPortNameType_5024Parser;
+ }
+
+ /**
+ * @generated
+ */
+ private IParser multiInputPortNameType_5025Parser;
+
+ /**
+ * @generated
+ */
+ private IParser getMultiInputPortNameType_5025Parser() {
+ if (multiInputPortNameType_5025Parser == null) {
+ EAttribute[] features = new EAttribute[] {
+ ComrelPackage.eINSTANCE.getNamedElement_Name(),
+ ComrelPackage.eINSTANCE.getPort_Type() };
+ MessageFormatParser parser = new MessageFormatParser(features);
+ parser.setViewPattern("{0}:{1}"); //$NON-NLS-1$
+ parser.setEditorPattern("{0}:{1}"); //$NON-NLS-1$
+ parser.setEditPattern("{0}:{1}"); //$NON-NLS-1$
+ multiInputPortNameType_5025Parser = parser;
+ }
+ return multiInputPortNameType_5025Parser;
+ }
+
+ /**
+ * @generated
+ */
+ private IParser cartesianQueuedUnitNameTypeLblStrict_5028Parser;
+
+ /**
+ * @generated
+ */
+ private IParser getCartesianQueuedUnitNameTypeLblStrict_5028Parser() {
+ if (cartesianQueuedUnitNameTypeLblStrict_5028Parser == null) {
+ EAttribute[] features = new EAttribute[] {
+ ComrelPackage.eINSTANCE.getNamedElement_Name(),
+ ComrelPackage.eINSTANCE.getCartesianQueuedUnit_Type(),
+ ComrelPackage.eINSTANCE.getCartesianQueuedUnit_LblStrict() };
+ MessageFormatParser parser = new MessageFormatParser(features);
+ parser.setViewPattern("{0}:{1} -{2}-"); //$NON-NLS-1$
+ parser.setEditorPattern("{0}:{1} -{2}-"); //$NON-NLS-1$
+ parser.setEditPattern("{0}:{1} -{2}-"); //$NON-NLS-1$
+ cartesianQueuedUnitNameTypeLblStrict_5028Parser = parser;
+ }
+ return cartesianQueuedUnitNameTypeLblStrict_5028Parser;
+ }
+
+ /**
+ * @generated
+ */
+ private IParser atomicUnitLabelType_5027Parser;
+
+ /**
+ * @generated
+ */
+ private IParser getAtomicUnitLabelType_5027Parser() {
+ if (atomicUnitLabelType_5027Parser == null) {
+ EAttribute[] features = new EAttribute[] {
+ ComrelPackage.eINSTANCE.getAtomicUnit_Label(),
+ ComrelPackage.eINSTANCE.getAtomicUnit_Type() };
+ MessageFormatParser parser = new MessageFormatParser(features);
+ parser.setViewPattern("{0}:{1}"); //$NON-NLS-1$
+ parser.setEditorPattern("{0}:{1}"); //$NON-NLS-1$
+ parser.setEditPattern("{0}:{1}"); //$NON-NLS-1$
+ atomicUnitLabelType_5027Parser = parser;
+ }
+ return atomicUnitLabelType_5027Parser;
+ }
+
+ /**
+ * @generated
+ */
+ private IParser singleInputPortNameType_5026Parser;
+
+ /**
+ * @generated
+ */
+ private IParser getSingleInputPortNameType_5026Parser() {
+ if (singleInputPortNameType_5026Parser == null) {
+ EAttribute[] features = new EAttribute[] {
+ ComrelPackage.eINSTANCE.getNamedElement_Name(),
+ ComrelPackage.eINSTANCE.getPort_Type() };
+ MessageFormatParser parser = new MessageFormatParser(features);
+ parser.setViewPattern("{0}:{1}"); //$NON-NLS-1$
+ parser.setEditorPattern("{0}:{1}"); //$NON-NLS-1$
+ parser.setEditPattern("{0}:{1}"); //$NON-NLS-1$
+ singleInputPortNameType_5026Parser = parser;
+ }
+ return singleInputPortNameType_5026Parser;
+ }
+
+ /**
+ * @generated
+ */
+ private IParser parallelQueuedUnitNameTypeLblStrict_5071Parser;
+
+ /**
+ * @generated
+ */
+ private IParser getParallelQueuedUnitNameTypeLblStrict_5071Parser() {
+ if (parallelQueuedUnitNameTypeLblStrict_5071Parser == null) {
+ EAttribute[] features = new EAttribute[] {
+ ComrelPackage.eINSTANCE.getNamedElement_Name(),
+ ComrelPackage.eINSTANCE.getParallelQueuedUnit_Type(),
+ ComrelPackage.eINSTANCE.getParallelQueuedUnit_LblStrict() };
+ MessageFormatParser parser = new MessageFormatParser(features);
+ parser.setViewPattern("{0}:{1} -{2}-"); //$NON-NLS-1$
+ parser.setEditorPattern("{0}:{1} -{2}-"); //$NON-NLS-1$
+ parser.setEditPattern("{0}:{1} -{2}-"); //$NON-NLS-1$
+ parallelQueuedUnitNameTypeLblStrict_5071Parser = parser;
+ }
+ return parallelQueuedUnitNameTypeLblStrict_5071Parser;
+ }
+
+ /**
+ * @generated
+ */
+ private IParser parallelQueuedUnitNameTypeLblStrict_5070Parser;
+
+ /**
+ * @generated
+ */
+ private IParser getParallelQueuedUnitNameTypeLblStrict_5070Parser() {
+ if (parallelQueuedUnitNameTypeLblStrict_5070Parser == null) {
+ EAttribute[] features = new EAttribute[] {
+ ComrelPackage.eINSTANCE.getNamedElement_Name(),
+ ComrelPackage.eINSTANCE.getParallelQueuedUnit_Type(),
+ ComrelPackage.eINSTANCE.getParallelQueuedUnit_LblStrict() };
+ MessageFormatParser parser = new MessageFormatParser(features);
+ parser.setViewPattern("{0}:{1} -{2}-"); //$NON-NLS-1$
+ parser.setEditorPattern("{0}:{1} -{2}-"); //$NON-NLS-1$
+ parser.setEditPattern("{0}:{1} -{2}-"); //$NON-NLS-1$
+ parallelQueuedUnitNameTypeLblStrict_5070Parser = parser;
+ }
+ return parallelQueuedUnitNameTypeLblStrict_5070Parser;
+ }
+
+ /**
+ * @generated
+ */
+ private IParser singleFeatureUnitNameType_5029Parser;
+
+ /**
+ * @generated
+ */
+ private IParser getSingleFeatureUnitNameType_5029Parser() {
+ if (singleFeatureUnitNameType_5029Parser == null) {
+ EAttribute[] features = new EAttribute[] {
+ ComrelPackage.eINSTANCE.getNamedElement_Name(),
+ ComrelPackage.eINSTANCE.getSingleFeatureUnit_Type() };
+ MessageFormatParser parser = new MessageFormatParser(features);
+ parser.setViewPattern("{0}:{1}"); //$NON-NLS-1$
+ parser.setEditorPattern("{0}:{1}"); //$NON-NLS-1$
+ parser.setEditPattern("{0}:{1}"); //$NON-NLS-1$
+ singleFeatureUnitNameType_5029Parser = parser;
+ }
+ return singleFeatureUnitNameType_5029Parser;
+ }
+
+ /**
+ * @generated
+ */
+ private IParser multiFeatureUnitNameType_5030Parser;
+
+ /**
+ * @generated
+ */
+ private IParser getMultiFeatureUnitNameType_5030Parser() {
+ if (multiFeatureUnitNameType_5030Parser == null) {
+ EAttribute[] features = new EAttribute[] {
+ ComrelPackage.eINSTANCE.getNamedElement_Name(),
+ ComrelPackage.eINSTANCE.getMultiFeatureUnit_Type() };
+ MessageFormatParser parser = new MessageFormatParser(features);
+ parser.setViewPattern("{0}:{1}"); //$NON-NLS-1$
+ parser.setEditorPattern("{0}:{1}"); //$NON-NLS-1$
+ parser.setEditPattern("{0}:{1}"); //$NON-NLS-1$
+ multiFeatureUnitNameType_5030Parser = parser;
+ }
+ return multiFeatureUnitNameType_5030Parser;
+ }
+
+ /**
+ * @generated
+ */
+ private IParser singleFilterUnitNameType_5031Parser;
+
+ /**
+ * @generated
+ */
+ private IParser getSingleFilterUnitNameType_5031Parser() {
+ if (singleFilterUnitNameType_5031Parser == null) {
+ EAttribute[] features = new EAttribute[] {
+ ComrelPackage.eINSTANCE.getNamedElement_Name(),
+ ComrelPackage.eINSTANCE.getSingleFilterUnit_Type() };
+ MessageFormatParser parser = new MessageFormatParser(features);
+ parser.setViewPattern("{0}:{1}"); //$NON-NLS-1$
+ parser.setEditorPattern("{0}:{1}"); //$NON-NLS-1$
+ parser.setEditPattern("{0}:{1}"); //$NON-NLS-1$
+ singleFilterUnitNameType_5031Parser = parser;
+ }
+ return singleFilterUnitNameType_5031Parser;
+ }
+
+ /**
+ * @generated
+ */
+ private IParser multiFilterUnitNameType_5032Parser;
+
+ /**
+ * @generated
+ */
+ private IParser getMultiFilterUnitNameType_5032Parser() {
+ if (multiFilterUnitNameType_5032Parser == null) {
+ EAttribute[] features = new EAttribute[] {
+ ComrelPackage.eINSTANCE.getNamedElement_Name(),
+ ComrelPackage.eINSTANCE.getMultiFilterUnit_Type() };
+ MessageFormatParser parser = new MessageFormatParser(features);
+ parser.setViewPattern("{0}:{1}"); //$NON-NLS-1$
+ parser.setEditorPattern("{0}:{1}"); //$NON-NLS-1$
+ parser.setEditPattern("{0}:{1}"); //$NON-NLS-1$
+ multiFilterUnitNameType_5032Parser = parser;
+ }
+ return multiFilterUnitNameType_5032Parser;
+ }
+
+ /**
+ * @generated
+ */
+ private IParser singleQueuedUnitNameTypeLblStrict_5069Parser;
+
+ /**
+ * @generated
+ */
+ private IParser getSingleQueuedUnitNameTypeLblStrict_5069Parser() {
+ if (singleQueuedUnitNameTypeLblStrict_5069Parser == null) {
+ EAttribute[] features = new EAttribute[] {
+ ComrelPackage.eINSTANCE.getNamedElement_Name(),
+ ComrelPackage.eINSTANCE.getSingleQueuedUnit_Type(),
+ ComrelPackage.eINSTANCE.getSingleQueuedUnit_LblStrict() };
+ MessageFormatParser parser = new MessageFormatParser(features);
+ parser.setViewPattern("{0}:{1} -{2}-"); //$NON-NLS-1$
+ parser.setEditorPattern("{0}:{1} -{2}-"); //$NON-NLS-1$
+ parser.setEditPattern("{0}:{1} -{2}-"); //$NON-NLS-1$
+ singleQueuedUnitNameTypeLblStrict_5069Parser = parser;
+ }
+ return singleQueuedUnitNameTypeLblStrict_5069Parser;
+ }
+
+ /**
+ * @generated
+ */
+ private IParser parallelQueuedUnitNameTypeLblStrict_5068Parser;
+
+ /**
+ * @generated
+ */
+ private IParser getParallelQueuedUnitNameTypeLblStrict_5068Parser() {
+ if (parallelQueuedUnitNameTypeLblStrict_5068Parser == null) {
+ EAttribute[] features = new EAttribute[] {
+ ComrelPackage.eINSTANCE.getNamedElement_Name(),
+ ComrelPackage.eINSTANCE.getParallelQueuedUnit_Type(),
+ ComrelPackage.eINSTANCE.getParallelQueuedUnit_LblStrict() };
+ MessageFormatParser parser = new MessageFormatParser(features);
+ parser.setViewPattern("{0}:{1} -{2}-"); //$NON-NLS-1$
+ parser.setEditorPattern("{0}:{1} -{2}-"); //$NON-NLS-1$
+ parser.setEditPattern("{0}:{1} -{2}-"); //$NON-NLS-1$
+ parallelQueuedUnitNameTypeLblStrict_5068Parser = parser;
+ }
+ return parallelQueuedUnitNameTypeLblStrict_5068Parser;
+ }
+
+ /**
+ * @generated
+ */
+ private IParser sequentialUnitNameTypeLblStrict_5067Parser;
+
+ /**
+ * @generated
+ */
+ private IParser getSequentialUnitNameTypeLblStrict_5067Parser() {
+ if (sequentialUnitNameTypeLblStrict_5067Parser == null) {
+ EAttribute[] features = new EAttribute[] {
+ ComrelPackage.eINSTANCE.getNamedElement_Name(),
+ ComrelPackage.eINSTANCE.getSequentialUnit_Type(),
+ ComrelPackage.eINSTANCE.getSequentialUnit_LblStrict() };
+ MessageFormatParser parser = new MessageFormatParser(features);
+ parser.setViewPattern("{0}:{1} -{2}-"); //$NON-NLS-1$
+ parser.setEditorPattern("{0}:{1} -{2}-"); //$NON-NLS-1$
+ parser.setEditPattern("{0}:{1} -{2}-"); //$NON-NLS-1$
+ sequentialUnitNameTypeLblStrict_5067Parser = parser;
+ }
+ return sequentialUnitNameTypeLblStrict_5067Parser;
+ }
+
+ /**
+ * @generated
+ */
+ private IParser parallelQueuedUnitNameTypeLblStrict_5066Parser;
+
+ /**
+ * @generated
+ */
+ private IParser getParallelQueuedUnitNameTypeLblStrict_5066Parser() {
+ if (parallelQueuedUnitNameTypeLblStrict_5066Parser == null) {
+ EAttribute[] features = new EAttribute[] {
+ ComrelPackage.eINSTANCE.getNamedElement_Name(),
+ ComrelPackage.eINSTANCE.getParallelQueuedUnit_Type(),
+ ComrelPackage.eINSTANCE.getParallelQueuedUnit_LblStrict() };
+ MessageFormatParser parser = new MessageFormatParser(features);
+ parser.setViewPattern("{0}:{1} -{2}-"); //$NON-NLS-1$
+ parser.setEditorPattern("{0}:{1} -{2}-"); //$NON-NLS-1$
+ parser.setEditPattern("{0}:{1} -{2}-"); //$NON-NLS-1$
+ parallelQueuedUnitNameTypeLblStrict_5066Parser = parser;
+ }
+ return parallelQueuedUnitNameTypeLblStrict_5066Parser;
+ }
+
+ /**
+ * @generated
+ */
+ private IParser conditionalUnitNameType_5065Parser;
+
+ /**
+ * @generated
+ */
+ private IParser getConditionalUnitNameType_5065Parser() {
+ if (conditionalUnitNameType_5065Parser == null) {
+ EAttribute[] features = new EAttribute[] {
+ ComrelPackage.eINSTANCE.getNamedElement_Name(),
+ ComrelPackage.eINSTANCE.getConditionalUnit_Type() };
+ MessageFormatParser parser = new MessageFormatParser(features);
+ parser.setViewPattern("{0}:{1}"); //$NON-NLS-1$
+ parser.setEditorPattern("{0}:{1}"); //$NON-NLS-1$
+ parser.setEditPattern("{0}:{1}"); //$NON-NLS-1$
+ conditionalUnitNameType_5065Parser = parser;
+ }
+ return conditionalUnitNameType_5065Parser;
+ }
+
+ /**
+ * @generated
+ */
+ private IParser cartesianQueuedUnitNameTypeLblStrict_5033Parser;
+
+ /**
+ * @generated
+ */
+ private IParser getCartesianQueuedUnitNameTypeLblStrict_5033Parser() {
+ if (cartesianQueuedUnitNameTypeLblStrict_5033Parser == null) {
+ EAttribute[] features = new EAttribute[] {
+ ComrelPackage.eINSTANCE.getNamedElement_Name(),
+ ComrelPackage.eINSTANCE.getCartesianQueuedUnit_Type(),
+ ComrelPackage.eINSTANCE.getCartesianQueuedUnit_LblStrict() };
+ MessageFormatParser parser = new MessageFormatParser(features);
+ parser.setViewPattern("{0}:{1} -{2}-"); //$NON-NLS-1$
+ parser.setEditorPattern("{0}:{1} -{2}-"); //$NON-NLS-1$
+ parser.setEditPattern("{0}:{1} -{2}-"); //$NON-NLS-1$
+ cartesianQueuedUnitNameTypeLblStrict_5033Parser = parser;
+ }
+ return cartesianQueuedUnitNameTypeLblStrict_5033Parser;
+ }
+
+ /**
+ * @generated
+ */
+ private IParser parallelQueuedUnitNameTypeLblStrict_5035Parser;
+
+ /**
+ * @generated
+ */
+ private IParser getParallelQueuedUnitNameTypeLblStrict_5035Parser() {
+ if (parallelQueuedUnitNameTypeLblStrict_5035Parser == null) {
+ EAttribute[] features = new EAttribute[] {
+ ComrelPackage.eINSTANCE.getNamedElement_Name(),
+ ComrelPackage.eINSTANCE.getParallelQueuedUnit_Type(),
+ ComrelPackage.eINSTANCE.getParallelQueuedUnit_LblStrict() };
+ MessageFormatParser parser = new MessageFormatParser(features);
+ parser.setViewPattern("{0}:{1} -{2}-"); //$NON-NLS-1$
+ parser.setEditorPattern("{0}:{1} -{2}-"); //$NON-NLS-1$
+ parser.setEditPattern("{0}:{1} -{2}-"); //$NON-NLS-1$
+ parallelQueuedUnitNameTypeLblStrict_5035Parser = parser;
+ }
+ return parallelQueuedUnitNameTypeLblStrict_5035Parser;
+ }
+
+ /**
+ * @generated
+ */
+ private IParser atomicUnitLabelType_5034Parser;
+
+ /**
+ * @generated
+ */
+ private IParser getAtomicUnitLabelType_5034Parser() {
+ if (atomicUnitLabelType_5034Parser == null) {
+ EAttribute[] features = new EAttribute[] {
+ ComrelPackage.eINSTANCE.getAtomicUnit_Label(),
+ ComrelPackage.eINSTANCE.getAtomicUnit_Type() };
+ MessageFormatParser parser = new MessageFormatParser(features);
+ parser.setViewPattern("{0}:{1}"); //$NON-NLS-1$
+ parser.setEditorPattern("{0}:{1}"); //$NON-NLS-1$
+ parser.setEditPattern("{0}:{1}"); //$NON-NLS-1$
+ atomicUnitLabelType_5034Parser = parser;
+ }
+ return atomicUnitLabelType_5034Parser;
+ }
+
+ /**
+ * @generated
+ */
+ private IParser singleFeatureUnitNameType_5036Parser;
+
+ /**
+ * @generated
+ */
+ private IParser getSingleFeatureUnitNameType_5036Parser() {
+ if (singleFeatureUnitNameType_5036Parser == null) {
+ EAttribute[] features = new EAttribute[] {
+ ComrelPackage.eINSTANCE.getNamedElement_Name(),
+ ComrelPackage.eINSTANCE.getSingleFeatureUnit_Type() };
+ MessageFormatParser parser = new MessageFormatParser(features);
+ parser.setViewPattern("{0}:{1}"); //$NON-NLS-1$
+ parser.setEditorPattern("{0}:{1}"); //$NON-NLS-1$
+ parser.setEditPattern("{0}:{1}"); //$NON-NLS-1$
+ singleFeatureUnitNameType_5036Parser = parser;
+ }
+ return singleFeatureUnitNameType_5036Parser;
+ }
+
+ /**
+ * @generated
+ */
+ private IParser multiFeatureUnitNameType_5037Parser;
+
+ /**
+ * @generated
+ */
+ private IParser getMultiFeatureUnitNameType_5037Parser() {
+ if (multiFeatureUnitNameType_5037Parser == null) {
+ EAttribute[] features = new EAttribute[] {
+ ComrelPackage.eINSTANCE.getNamedElement_Name(),
+ ComrelPackage.eINSTANCE.getMultiFeatureUnit_Type() };
+ MessageFormatParser parser = new MessageFormatParser(features);
+ parser.setViewPattern("{0}:{1}"); //$NON-NLS-1$
+ parser.setEditorPattern("{0}:{1}"); //$NON-NLS-1$
+ parser.setEditPattern("{0}:{1}"); //$NON-NLS-1$
+ multiFeatureUnitNameType_5037Parser = parser;
+ }
+ return multiFeatureUnitNameType_5037Parser;
+ }
+
+ /**
+ * @generated
+ */
+ private IParser singleFilterUnitNameType_5038Parser;
+
+ /**
+ * @generated
+ */
+ private IParser getSingleFilterUnitNameType_5038Parser() {
+ if (singleFilterUnitNameType_5038Parser == null) {
+ EAttribute[] features = new EAttribute[] {
+ ComrelPackage.eINSTANCE.getNamedElement_Name(),
+ ComrelPackage.eINSTANCE.getSingleFilterUnit_Type() };
+ MessageFormatParser parser = new MessageFormatParser(features);
+ parser.setViewPattern("{0}:{1}"); //$NON-NLS-1$
+ parser.setEditorPattern("{0}:{1}"); //$NON-NLS-1$
+ parser.setEditPattern("{0}:{1}"); //$NON-NLS-1$
+ singleFilterUnitNameType_5038Parser = parser;
+ }
+ return singleFilterUnitNameType_5038Parser;
+ }
+
+ /**
+ * @generated
+ */
+ private IParser multiFilterUnitNameType_5039Parser;
+
+ /**
+ * @generated
+ */
+ private IParser getMultiFilterUnitNameType_5039Parser() {
+ if (multiFilterUnitNameType_5039Parser == null) {
+ EAttribute[] features = new EAttribute[] {
+ ComrelPackage.eINSTANCE.getNamedElement_Name(),
+ ComrelPackage.eINSTANCE.getMultiFilterUnit_Type() };
+ MessageFormatParser parser = new MessageFormatParser(features);
+ parser.setViewPattern("{0}:{1}"); //$NON-NLS-1$
+ parser.setEditorPattern("{0}:{1}"); //$NON-NLS-1$
+ parser.setEditPattern("{0}:{1}"); //$NON-NLS-1$
+ multiFilterUnitNameType_5039Parser = parser;
+ }
+ return multiFilterUnitNameType_5039Parser;
+ }
+
+ /**
+ * @generated
+ */
+ private IParser singleQueuedUnitNameTypeLblStrict_5064Parser;
+
+ /**
+ * @generated
+ */
+ private IParser getSingleQueuedUnitNameTypeLblStrict_5064Parser() {
+ if (singleQueuedUnitNameTypeLblStrict_5064Parser == null) {
+ EAttribute[] features = new EAttribute[] {
+ ComrelPackage.eINSTANCE.getNamedElement_Name(),
+ ComrelPackage.eINSTANCE.getSingleQueuedUnit_Type(),
+ ComrelPackage.eINSTANCE.getSingleQueuedUnit_LblStrict() };
+ MessageFormatParser parser = new MessageFormatParser(features);
+ parser.setViewPattern("{0}:{1} -{2}-"); //$NON-NLS-1$
+ parser.setEditorPattern("{0}:{1} -{2}-"); //$NON-NLS-1$
+ parser.setEditPattern("{0}:{1} -{2}-"); //$NON-NLS-1$
+ singleQueuedUnitNameTypeLblStrict_5064Parser = parser;
+ }
+ return singleQueuedUnitNameTypeLblStrict_5064Parser;
+ }
+
+ /**
+ * @generated
+ */
+ private IParser singleFeatureUnitNameType_5040Parser;
+
+ /**
+ * @generated
+ */
+ private IParser getSingleFeatureUnitNameType_5040Parser() {
+ if (singleFeatureUnitNameType_5040Parser == null) {
+ EAttribute[] features = new EAttribute[] {
+ ComrelPackage.eINSTANCE.getNamedElement_Name(),
+ ComrelPackage.eINSTANCE.getSingleFeatureUnit_Type() };
+ MessageFormatParser parser = new MessageFormatParser(features);
+ parser.setViewPattern("{0}:{1}"); //$NON-NLS-1$
+ parser.setEditorPattern("{0}:{1}"); //$NON-NLS-1$
+ parser.setEditPattern("{0}:{1}"); //$NON-NLS-1$
+ singleFeatureUnitNameType_5040Parser = parser;
+ }
+ return singleFeatureUnitNameType_5040Parser;
+ }
+
+ /**
+ * @generated
+ */
+ private IParser multiFeatureUnitNameType_5041Parser;
+
+ /**
+ * @generated
+ */
+ private IParser getMultiFeatureUnitNameType_5041Parser() {
+ if (multiFeatureUnitNameType_5041Parser == null) {
+ EAttribute[] features = new EAttribute[] {
+ ComrelPackage.eINSTANCE.getNamedElement_Name(),
+ ComrelPackage.eINSTANCE.getMultiFeatureUnit_Type() };
+ MessageFormatParser parser = new MessageFormatParser(features);
+ parser.setViewPattern("{0}:{1}"); //$NON-NLS-1$
+ parser.setEditorPattern("{0}:{1}"); //$NON-NLS-1$
+ parser.setEditPattern("{0}:{1}"); //$NON-NLS-1$
+ multiFeatureUnitNameType_5041Parser = parser;
+ }
+ return multiFeatureUnitNameType_5041Parser;
+ }
+
+ /**
+ * @generated
+ */
+ private IParser singleFilterUnitNameType_5042Parser;
+
+ /**
+ * @generated
+ */
+ private IParser getSingleFilterUnitNameType_5042Parser() {
+ if (singleFilterUnitNameType_5042Parser == null) {
+ EAttribute[] features = new EAttribute[] {
+ ComrelPackage.eINSTANCE.getNamedElement_Name(),
+ ComrelPackage.eINSTANCE.getSingleFilterUnit_Type() };
+ MessageFormatParser parser = new MessageFormatParser(features);
+ parser.setViewPattern("{0}:{1}"); //$NON-NLS-1$
+ parser.setEditorPattern("{0}:{1}"); //$NON-NLS-1$
+ parser.setEditPattern("{0}:{1}"); //$NON-NLS-1$
+ singleFilterUnitNameType_5042Parser = parser;
+ }
+ return singleFilterUnitNameType_5042Parser;
+ }
+
+ /**
+ * @generated
+ */
+ private IParser multiFilterUnitNameType_5043Parser;
+
+ /**
+ * @generated
+ */
+ private IParser getMultiFilterUnitNameType_5043Parser() {
+ if (multiFilterUnitNameType_5043Parser == null) {
+ EAttribute[] features = new EAttribute[] {
+ ComrelPackage.eINSTANCE.getNamedElement_Name(),
+ ComrelPackage.eINSTANCE.getMultiFilterUnit_Type() };
+ MessageFormatParser parser = new MessageFormatParser(features);
+ parser.setViewPattern("{0}:{1}"); //$NON-NLS-1$
+ parser.setEditorPattern("{0}:{1}"); //$NON-NLS-1$
+ parser.setEditPattern("{0}:{1}"); //$NON-NLS-1$
+ multiFilterUnitNameType_5043Parser = parser;
+ }
+ return multiFilterUnitNameType_5043Parser;
+ }
+
+ /**
+ * @generated
+ */
+ private IParser singleQueuedUnitNameTypeLblStrict_5063Parser;
+
+ /**
+ * @generated
+ */
+ private IParser getSingleQueuedUnitNameTypeLblStrict_5063Parser() {
+ if (singleQueuedUnitNameTypeLblStrict_5063Parser == null) {
+ EAttribute[] features = new EAttribute[] {
+ ComrelPackage.eINSTANCE.getNamedElement_Name(),
+ ComrelPackage.eINSTANCE.getSingleQueuedUnit_Type(),
+ ComrelPackage.eINSTANCE.getSingleQueuedUnit_LblStrict() };
+ MessageFormatParser parser = new MessageFormatParser(features);
+ parser.setViewPattern("{0}:{1} -{2}-"); //$NON-NLS-1$
+ parser.setEditorPattern("{0}:{1} -{2}-"); //$NON-NLS-1$
+ parser.setEditPattern("{0}:{1} -{2}-"); //$NON-NLS-1$
+ singleQueuedUnitNameTypeLblStrict_5063Parser = parser;
+ }
+ return singleQueuedUnitNameTypeLblStrict_5063Parser;
+ }
+
+ /**
+ * @generated
+ */
+ private IParser sequentialUnitNameTypeLblStrict_5062Parser;
+
+ /**
+ * @generated
+ */
+ private IParser getSequentialUnitNameTypeLblStrict_5062Parser() {
+ if (sequentialUnitNameTypeLblStrict_5062Parser == null) {
+ EAttribute[] features = new EAttribute[] {
+ ComrelPackage.eINSTANCE.getNamedElement_Name(),
+ ComrelPackage.eINSTANCE.getSequentialUnit_Type(),
+ ComrelPackage.eINSTANCE.getSequentialUnit_LblStrict() };
+ MessageFormatParser parser = new MessageFormatParser(features);
+ parser.setViewPattern("{0}:{1} -{2}-"); //$NON-NLS-1$
+ parser.setEditorPattern("{0}:{1} -{2}-"); //$NON-NLS-1$
+ parser.setEditPattern("{0}:{1} -{2}-"); //$NON-NLS-1$
+ sequentialUnitNameTypeLblStrict_5062Parser = parser;
+ }
+ return sequentialUnitNameTypeLblStrict_5062Parser;
+ }
+
+ /**
+ * @generated
+ */
+ private IParser singleFeatureUnitNameType_5044Parser;
+
+ /**
+ * @generated
+ */
+ private IParser getSingleFeatureUnitNameType_5044Parser() {
+ if (singleFeatureUnitNameType_5044Parser == null) {
+ EAttribute[] features = new EAttribute[] {
+ ComrelPackage.eINSTANCE.getNamedElement_Name(),
+ ComrelPackage.eINSTANCE.getSingleFeatureUnit_Type() };
+ MessageFormatParser parser = new MessageFormatParser(features);
+ parser.setViewPattern("{0}:{1}"); //$NON-NLS-1$
+ parser.setEditorPattern("{0}:{1}"); //$NON-NLS-1$
+ parser.setEditPattern("{0}:{1}"); //$NON-NLS-1$
+ singleFeatureUnitNameType_5044Parser = parser;
+ }
+ return singleFeatureUnitNameType_5044Parser;
+ }
+
+ /**
+ * @generated
+ */
+ private IParser multiFeatureUnitNameType_5045Parser;
+
+ /**
+ * @generated
+ */
+ private IParser getMultiFeatureUnitNameType_5045Parser() {
+ if (multiFeatureUnitNameType_5045Parser == null) {
+ EAttribute[] features = new EAttribute[] {
+ ComrelPackage.eINSTANCE.getNamedElement_Name(),
+ ComrelPackage.eINSTANCE.getMultiFeatureUnit_Type() };
+ MessageFormatParser parser = new MessageFormatParser(features);
+ parser.setViewPattern("{0}:{1}"); //$NON-NLS-1$
+ parser.setEditorPattern("{0}:{1}"); //$NON-NLS-1$
+ parser.setEditPattern("{0}:{1}"); //$NON-NLS-1$
+ multiFeatureUnitNameType_5045Parser = parser;
+ }
+ return multiFeatureUnitNameType_5045Parser;
+ }
+
+ /**
+ * @generated
+ */
+ private IParser singleFilterUnitNameType_5046Parser;
+
+ /**
+ * @generated
+ */
+ private IParser getSingleFilterUnitNameType_5046Parser() {
+ if (singleFilterUnitNameType_5046Parser == null) {
+ EAttribute[] features = new EAttribute[] {
+ ComrelPackage.eINSTANCE.getNamedElement_Name(),
+ ComrelPackage.eINSTANCE.getSingleFilterUnit_Type() };
+ MessageFormatParser parser = new MessageFormatParser(features);
+ parser.setViewPattern("{0}:{1}"); //$NON-NLS-1$
+ parser.setEditorPattern("{0}:{1}"); //$NON-NLS-1$
+ parser.setEditPattern("{0}:{1}"); //$NON-NLS-1$
+ singleFilterUnitNameType_5046Parser = parser;
+ }
+ return singleFilterUnitNameType_5046Parser;
+ }
+
+ /**
+ * @generated
+ */
+ private IParser multiFilterUnitNameType_5047Parser;
+
+ /**
+ * @generated
+ */
+ private IParser getMultiFilterUnitNameType_5047Parser() {
+ if (multiFilterUnitNameType_5047Parser == null) {
+ EAttribute[] features = new EAttribute[] {
+ ComrelPackage.eINSTANCE.getNamedElement_Name(),
+ ComrelPackage.eINSTANCE.getMultiFilterUnit_Type() };
+ MessageFormatParser parser = new MessageFormatParser(features);
+ parser.setViewPattern("{0}:{1}"); //$NON-NLS-1$
+ parser.setEditorPattern("{0}:{1}"); //$NON-NLS-1$
+ parser.setEditPattern("{0}:{1}"); //$NON-NLS-1$
+ multiFilterUnitNameType_5047Parser = parser;
+ }
+ return multiFilterUnitNameType_5047Parser;
+ }
+
+ /**
+ * @generated
+ */
+ private IParser singleQueuedUnitNameTypeLblStrict_5061Parser;
+
+ /**
+ * @generated
+ */
+ private IParser getSingleQueuedUnitNameTypeLblStrict_5061Parser() {
+ if (singleQueuedUnitNameTypeLblStrict_5061Parser == null) {
+ EAttribute[] features = new EAttribute[] {
+ ComrelPackage.eINSTANCE.getNamedElement_Name(),
+ ComrelPackage.eINSTANCE.getSingleQueuedUnit_Type(),
+ ComrelPackage.eINSTANCE.getSingleQueuedUnit_LblStrict() };
+ MessageFormatParser parser = new MessageFormatParser(features);
+ parser.setViewPattern("{0}:{1} -{2}-"); //$NON-NLS-1$
+ parser.setEditorPattern("{0}:{1} -{2}-"); //$NON-NLS-1$
+ parser.setEditPattern("{0}:{1} -{2}-"); //$NON-NLS-1$
+ singleQueuedUnitNameTypeLblStrict_5061Parser = parser;
+ }
+ return singleQueuedUnitNameTypeLblStrict_5061Parser;
+ }
+
+ /**
+ * @generated
+ */
+ private IParser conditionalUnitNameType_5060Parser;
+
+ /**
+ * @generated
+ */
+ private IParser getConditionalUnitNameType_5060Parser() {
+ if (conditionalUnitNameType_5060Parser == null) {
+ EAttribute[] features = new EAttribute[] {
+ ComrelPackage.eINSTANCE.getNamedElement_Name(),
+ ComrelPackage.eINSTANCE.getConditionalUnit_Type() };
+ MessageFormatParser parser = new MessageFormatParser(features);
+ parser.setViewPattern("{0}:{1}"); //$NON-NLS-1$
+ parser.setEditorPattern("{0}:{1}"); //$NON-NLS-1$
+ parser.setEditPattern("{0}:{1}"); //$NON-NLS-1$
+ conditionalUnitNameType_5060Parser = parser;
+ }
+ return conditionalUnitNameType_5060Parser;
+ }
+
+ /**
+ * @generated
+ */
+ private IParser singleQueuedUnitNameTypeLblStrict_5049Parser;
+
+ /**
+ * @generated
+ */
+ private IParser getSingleQueuedUnitNameTypeLblStrict_5049Parser() {
+ if (singleQueuedUnitNameTypeLblStrict_5049Parser == null) {
+ EAttribute[] features = new EAttribute[] {
+ ComrelPackage.eINSTANCE.getNamedElement_Name(),
+ ComrelPackage.eINSTANCE.getSingleQueuedUnit_Type(),
+ ComrelPackage.eINSTANCE.getSingleQueuedUnit_LblStrict() };
+ MessageFormatParser parser = new MessageFormatParser(features);
+ parser.setViewPattern("{0}:{1} -{2}-"); //$NON-NLS-1$
+ parser.setEditorPattern("{0}:{1} -{2}-"); //$NON-NLS-1$
+ parser.setEditPattern("{0}:{1} -{2}-"); //$NON-NLS-1$
+ singleQueuedUnitNameTypeLblStrict_5049Parser = parser;
+ }
+ return singleQueuedUnitNameTypeLblStrict_5049Parser;
+ }
+
+ /**
+ * @generated
+ */
+ private IParser atomicUnitLabelType_5048Parser;
+
+ /**
+ * @generated
+ */
+ private IParser getAtomicUnitLabelType_5048Parser() {
+ if (atomicUnitLabelType_5048Parser == null) {
+ EAttribute[] features = new EAttribute[] {
+ ComrelPackage.eINSTANCE.getAtomicUnit_Label(),
+ ComrelPackage.eINSTANCE.getAtomicUnit_Type() };
+ MessageFormatParser parser = new MessageFormatParser(features);
+ parser.setViewPattern("{0}:{1}"); //$NON-NLS-1$
+ parser.setEditorPattern("{0}:{1}"); //$NON-NLS-1$
+ parser.setEditPattern("{0}:{1}"); //$NON-NLS-1$
+ atomicUnitLabelType_5048Parser = parser;
+ }
+ return atomicUnitLabelType_5048Parser;
+ }
+
+ /**
+ * @generated
+ */
+ private IParser sequentialUnitNameTypeLblStrict_5059Parser;
+
+ /**
+ * @generated
+ */
+ private IParser getSequentialUnitNameTypeLblStrict_5059Parser() {
+ if (sequentialUnitNameTypeLblStrict_5059Parser == null) {
+ EAttribute[] features = new EAttribute[] {
+ ComrelPackage.eINSTANCE.getNamedElement_Name(),
+ ComrelPackage.eINSTANCE.getSequentialUnit_Type(),
+ ComrelPackage.eINSTANCE.getSequentialUnit_LblStrict() };
+ MessageFormatParser parser = new MessageFormatParser(features);
+ parser.setViewPattern("{0}:{1} -{2}-"); //$NON-NLS-1$
+ parser.setEditorPattern("{0}:{1} -{2}-"); //$NON-NLS-1$
+ parser.setEditPattern("{0}:{1} -{2}-"); //$NON-NLS-1$
+ sequentialUnitNameTypeLblStrict_5059Parser = parser;
+ }
+ return sequentialUnitNameTypeLblStrict_5059Parser;
+ }
+
+ /**
+ * @generated
+ */
+ private IParser sequentialUnitNameTypeLblStrict_5058Parser;
+
+ /**
+ * @generated
+ */
+ private IParser getSequentialUnitNameTypeLblStrict_5058Parser() {
+ if (sequentialUnitNameTypeLblStrict_5058Parser == null) {
+ EAttribute[] features = new EAttribute[] {
+ ComrelPackage.eINSTANCE.getNamedElement_Name(),
+ ComrelPackage.eINSTANCE.getSequentialUnit_Type(),
+ ComrelPackage.eINSTANCE.getSequentialUnit_LblStrict() };
+ MessageFormatParser parser = new MessageFormatParser(features);
+ parser.setViewPattern("{0}:{1} -{2}-"); //$NON-NLS-1$
+ parser.setEditorPattern("{0}:{1} -{2}-"); //$NON-NLS-1$
+ parser.setEditPattern("{0}:{1} -{2}-"); //$NON-NLS-1$
+ sequentialUnitNameTypeLblStrict_5058Parser = parser;
+ }
+ return sequentialUnitNameTypeLblStrict_5058Parser;
+ }
+
+ /**
+ * @generated
+ */
+ private IParser conditionalUnitNameType_5057Parser;
+
+ /**
+ * @generated
+ */
+ private IParser getConditionalUnitNameType_5057Parser() {
+ if (conditionalUnitNameType_5057Parser == null) {
+ EAttribute[] features = new EAttribute[] {
+ ComrelPackage.eINSTANCE.getNamedElement_Name(),
+ ComrelPackage.eINSTANCE.getConditionalUnit_Type() };
+ MessageFormatParser parser = new MessageFormatParser(features);
+ parser.setViewPattern("{0}:{1}"); //$NON-NLS-1$
+ parser.setEditorPattern("{0}:{1}"); //$NON-NLS-1$
+ parser.setEditPattern("{0}:{1}"); //$NON-NLS-1$
+ conditionalUnitNameType_5057Parser = parser;
+ }
+ return conditionalUnitNameType_5057Parser;
+ }
+
+ /**
+ * @generated
+ */
+ private IParser conditionalUnitNameType_5056Parser;
+
+ /**
+ * @generated
+ */
+ private IParser getConditionalUnitNameType_5056Parser() {
+ if (conditionalUnitNameType_5056Parser == null) {
+ EAttribute[] features = new EAttribute[] {
+ ComrelPackage.eINSTANCE.getNamedElement_Name(),
+ ComrelPackage.eINSTANCE.getConditionalUnit_Type() };
+ MessageFormatParser parser = new MessageFormatParser(features);
+ parser.setViewPattern("{0}:{1}"); //$NON-NLS-1$
+ parser.setEditorPattern("{0}:{1}"); //$NON-NLS-1$
+ parser.setEditPattern("{0}:{1}"); //$NON-NLS-1$
+ conditionalUnitNameType_5056Parser = parser;
+ }
+ return conditionalUnitNameType_5056Parser;
+ }
+
+ /**
+ * @generated
+ */
+ private IParser sequentialUnitNameTypeLblStrict_5051Parser;
+
+ /**
+ * @generated
+ */
+ private IParser getSequentialUnitNameTypeLblStrict_5051Parser() {
+ if (sequentialUnitNameTypeLblStrict_5051Parser == null) {
+ EAttribute[] features = new EAttribute[] {
+ ComrelPackage.eINSTANCE.getNamedElement_Name(),
+ ComrelPackage.eINSTANCE.getSequentialUnit_Type(),
+ ComrelPackage.eINSTANCE.getSequentialUnit_LblStrict() };
+ MessageFormatParser parser = new MessageFormatParser(features);
+ parser.setViewPattern("{0}:{1} -{2}-"); //$NON-NLS-1$
+ parser.setEditorPattern("{0}:{1} -{2}-"); //$NON-NLS-1$
+ parser.setEditPattern("{0}:{1} -{2}-"); //$NON-NLS-1$
+ sequentialUnitNameTypeLblStrict_5051Parser = parser;
+ }
+ return sequentialUnitNameTypeLblStrict_5051Parser;
+ }
+
+ /**
+ * @generated
+ */
+ private IParser atomicUnitLabelType_5050Parser;
+
+ /**
+ * @generated
+ */
+ private IParser getAtomicUnitLabelType_5050Parser() {
+ if (atomicUnitLabelType_5050Parser == null) {
+ EAttribute[] features = new EAttribute[] {
+ ComrelPackage.eINSTANCE.getAtomicUnit_Label(),
+ ComrelPackage.eINSTANCE.getAtomicUnit_Type() };
+ MessageFormatParser parser = new MessageFormatParser(features);
+ parser.setViewPattern("{0}:{1}"); //$NON-NLS-1$
+ parser.setEditorPattern("{0}:{1}"); //$NON-NLS-1$
+ parser.setEditPattern("{0}:{1}"); //$NON-NLS-1$
+ atomicUnitLabelType_5050Parser = parser;
+ }
+ return atomicUnitLabelType_5050Parser;
+ }
+
+ /**
+ * @generated
+ */
+ private IParser conditionalUnitNameType_5055Parser;
+
+ /**
+ * @generated
+ */
+ private IParser getConditionalUnitNameType_5055Parser() {
+ if (conditionalUnitNameType_5055Parser == null) {
+ EAttribute[] features = new EAttribute[] {
+ ComrelPackage.eINSTANCE.getNamedElement_Name(),
+ ComrelPackage.eINSTANCE.getConditionalUnit_Type() };
+ MessageFormatParser parser = new MessageFormatParser(features);
+ parser.setViewPattern("{0}:{1}"); //$NON-NLS-1$
+ parser.setEditorPattern("{0}:{1}"); //$NON-NLS-1$
+ parser.setEditPattern("{0}:{1}"); //$NON-NLS-1$
+ conditionalUnitNameType_5055Parser = parser;
+ }
+ return conditionalUnitNameType_5055Parser;
+ }
+
+ /**
+ * @generated
+ */
+ private IParser conditionCheckNameTypeSpec_5052Parser;
+
+ /**
+ * @generated
+ */
+ private IParser getConditionCheckNameTypeSpec_5052Parser() {
+ if (conditionCheckNameTypeSpec_5052Parser == null) {
+ EAttribute[] features = new EAttribute[] {
+ ComrelPackage.eINSTANCE.getNamedElement_Name(),
+ ComrelPackage.eINSTANCE.getConditionCheck_Type(),
+ ComrelPackage.eINSTANCE.getConditionCheck_Spec() };
+ MessageFormatParser parser = new MessageFormatParser(features);
+ parser.setViewPattern("{0}:{1} -{2}-"); //$NON-NLS-1$
+ parser.setEditorPattern("{0}:{1} -{2}-"); //$NON-NLS-1$
+ parser.setEditPattern("{0}:{1} -{2}-"); //$NON-NLS-1$
+ conditionCheckNameTypeSpec_5052Parser = parser;
+ }
+ return conditionCheckNameTypeSpec_5052Parser;
+ }
+
+ /**
+ * @generated
+ */
+ private IParser atomicUnitLabelType_5053Parser;
+
+ /**
+ * @generated
+ */
+ private IParser getAtomicUnitLabelType_5053Parser() {
+ if (atomicUnitLabelType_5053Parser == null) {
+ EAttribute[] features = new EAttribute[] {
+ ComrelPackage.eINSTANCE.getAtomicUnit_Label(),
+ ComrelPackage.eINSTANCE.getAtomicUnit_Type() };
+ MessageFormatParser parser = new MessageFormatParser(features);
+ parser.setViewPattern("{0}:{1}"); //$NON-NLS-1$
+ parser.setEditorPattern("{0}:{1}"); //$NON-NLS-1$
+ parser.setEditPattern("{0}:{1}"); //$NON-NLS-1$
+ atomicUnitLabelType_5053Parser = parser;
+ }
+ return atomicUnitLabelType_5053Parser;
+ }
+
+ /**
+ * @generated
+ */
+ private IParser atomicUnitLabelType_5054Parser;
+
+ /**
+ * @generated
+ */
+ private IParser getAtomicUnitLabelType_5054Parser() {
+ if (atomicUnitLabelType_5054Parser == null) {
+ EAttribute[] features = new EAttribute[] {
+ ComrelPackage.eINSTANCE.getAtomicUnit_Label(),
+ ComrelPackage.eINSTANCE.getAtomicUnit_Type() };
+ MessageFormatParser parser = new MessageFormatParser(features);
+ parser.setViewPattern("{0}:{1}"); //$NON-NLS-1$
+ parser.setEditorPattern("{0}:{1}"); //$NON-NLS-1$
+ parser.setEditPattern("{0}:{1}"); //$NON-NLS-1$
+ atomicUnitLabelType_5054Parser = parser;
+ }
+ return atomicUnitLabelType_5054Parser;
+ }
+
+ /**
+ * @generated
+ */
+ protected IParser getParser(int visualID) {
+ switch (visualID) {
+ case SingleInputPortNameTypeEditPart.VISUAL_ID:
+ return getSingleInputPortNameType_5001Parser();
+ case CartesianQueuedUnitNameTypeLblStrictEditPart.VISUAL_ID:
+ return getCartesianQueuedUnitNameTypeLblStrict_5080Parser();
+ case ParallelQueuedUnitNameTypeLblStrictEditPart.VISUAL_ID:
+ return getParallelQueuedUnitNameTypeLblStrict_5081Parser();
+ case SingleQueuedUnitNameTypeLblStrictEditPart.VISUAL_ID:
+ return getSingleQueuedUnitNameTypeLblStrict_5082Parser();
+ case SequentialUnitNameTypeLblStrictEditPart.VISUAL_ID:
+ return getSequentialUnitNameTypeLblStrict_5083Parser();
+ case ConditionalUnitNameTypeEditPart.VISUAL_ID:
+ return getConditionalUnitNameType_5084Parser();
+ case AtomicUnitLabelTypeEditPart.VISUAL_ID:
+ return getAtomicUnitLabelType_5085Parser();
+ case SingleInputPortNameType2EditPart.VISUAL_ID:
+ return getSingleInputPortNameType_5002Parser();
+ case MultiInputPortNameTypeEditPart.VISUAL_ID:
+ return getMultiInputPortNameType_5003Parser();
+ case CartesianQueuedUnitNameTypeLblStrict2EditPart.VISUAL_ID:
+ return getCartesianQueuedUnitNameTypeLblStrict_5079Parser();
+ case ParallelQueuedUnitNameTypeLblStrict2EditPart.VISUAL_ID:
+ return getParallelQueuedUnitNameTypeLblStrict_5078Parser();
+ case SingleInputPortNameType3EditPart.VISUAL_ID:
+ return getSingleInputPortNameType_5004Parser();
+ case MultiInputPortNameType2EditPart.VISUAL_ID:
+ return getMultiInputPortNameType_5005Parser();
+ case CartesianQueuedUnitNameTypeLblStrict3EditPart.VISUAL_ID:
+ return getCartesianQueuedUnitNameTypeLblStrict_5077Parser();
+ case SingleFeatureUnitNameTypeEditPart.VISUAL_ID:
+ return getSingleFeatureUnitNameType_5009Parser();
+ case SingleInputPortNameType4EditPart.VISUAL_ID:
+ return getSingleInputPortNameType_5006Parser();
+ case MultiInputPortNameType3EditPart.VISUAL_ID:
+ return getMultiInputPortNameType_5007Parser();
+ case SingleOutputPortNameTypeEditPart.VISUAL_ID:
+ return getSingleOutputPortNameType_5008Parser();
+ case MultiFeatureUnitNameTypeEditPart.VISUAL_ID:
+ return getMultiFeatureUnitNameType_5013Parser();
+ case SingleInputPortNameType5EditPart.VISUAL_ID:
+ return getSingleInputPortNameType_5010Parser();
+ case MultiInputPortNameType4EditPart.VISUAL_ID:
+ return getMultiInputPortNameType_5011Parser();
+ case MultiOutputPortNameTypeEditPart.VISUAL_ID:
+ return getMultiOutputPortNameType_5012Parser();
+ case SingleFilterUnitNameTypeEditPart.VISUAL_ID:
+ return getSingleFilterUnitNameType_5016Parser();
+ case MultiInputPortNameType5EditPart.VISUAL_ID:
+ return getMultiInputPortNameType_5014Parser();
+ case SingleOutputPortNameType2EditPart.VISUAL_ID:
+ return getSingleOutputPortNameType_5015Parser();
+ case MultiFilterUnitNameTypeEditPart.VISUAL_ID:
+ return getMultiFilterUnitNameType_5019Parser();
+ case MultiInputPortNameType6EditPart.VISUAL_ID:
+ return getMultiInputPortNameType_5017Parser();
+ case MultiOutputPortNameType2EditPart.VISUAL_ID:
+ return getMultiOutputPortNameType_5018Parser();
+ case SingleQueuedUnitNameTypeLblStrict2EditPart.VISUAL_ID:
+ return getSingleQueuedUnitNameTypeLblStrict_5076Parser();
+ case SingleInputPortNameType6EditPart.VISUAL_ID:
+ return getSingleInputPortNameType_5020Parser();
+ case MultiInputPortNameType7EditPart.VISUAL_ID:
+ return getMultiInputPortNameType_5021Parser();
+ case CartesianQueuedUnitNameTypeLblStrict4EditPart.VISUAL_ID:
+ return getCartesianQueuedUnitNameTypeLblStrict_5075Parser();
+ case SequentialUnitNameTypeLblStrict2EditPart.VISUAL_ID:
+ return getSequentialUnitNameTypeLblStrict_5074Parser();
+ case SingleInputPortNameType7EditPart.VISUAL_ID:
+ return getSingleInputPortNameType_5022Parser();
+ case MultiInputPortNameType8EditPart.VISUAL_ID:
+ return getMultiInputPortNameType_5023Parser();
+ case CartesianQueuedUnitNameTypeLblStrict5EditPart.VISUAL_ID:
+ return getCartesianQueuedUnitNameTypeLblStrict_5073Parser();
+ case ConditionalUnitNameType2EditPart.VISUAL_ID:
+ return getConditionalUnitNameType_5072Parser();
+ case SingleInputPortNameType8EditPart.VISUAL_ID:
+ return getSingleInputPortNameType_5024Parser();
+ case MultiInputPortNameType9EditPart.VISUAL_ID:
+ return getMultiInputPortNameType_5025Parser();
+ case CartesianQueuedUnitNameTypeLblStrict6EditPart.VISUAL_ID:
+ return getCartesianQueuedUnitNameTypeLblStrict_5028Parser();
+ case AtomicUnitLabelType2EditPart.VISUAL_ID:
+ return getAtomicUnitLabelType_5027Parser();
+ case SingleInputPortNameType9EditPart.VISUAL_ID:
+ return getSingleInputPortNameType_5026Parser();
+ case ParallelQueuedUnitNameTypeLblStrict3EditPart.VISUAL_ID:
+ return getParallelQueuedUnitNameTypeLblStrict_5071Parser();
+ case ParallelQueuedUnitNameTypeLblStrict4EditPart.VISUAL_ID:
+ return getParallelQueuedUnitNameTypeLblStrict_5070Parser();
+ case SingleFeatureUnitNameType2EditPart.VISUAL_ID:
+ return getSingleFeatureUnitNameType_5029Parser();
+ case MultiFeatureUnitNameType2EditPart.VISUAL_ID:
+ return getMultiFeatureUnitNameType_5030Parser();
+ case SingleFilterUnitNameType2EditPart.VISUAL_ID:
+ return getSingleFilterUnitNameType_5031Parser();
+ case MultiFilterUnitNameType2EditPart.VISUAL_ID:
+ return getMultiFilterUnitNameType_5032Parser();
+ case SingleQueuedUnitNameTypeLblStrict3EditPart.VISUAL_ID:
+ return getSingleQueuedUnitNameTypeLblStrict_5069Parser();
+ case ParallelQueuedUnitNameTypeLblStrict5EditPart.VISUAL_ID:
+ return getParallelQueuedUnitNameTypeLblStrict_5068Parser();
+ case SequentialUnitNameTypeLblStrict3EditPart.VISUAL_ID:
+ return getSequentialUnitNameTypeLblStrict_5067Parser();
+ case ParallelQueuedUnitNameTypeLblStrict6EditPart.VISUAL_ID:
+ return getParallelQueuedUnitNameTypeLblStrict_5066Parser();
+ case ConditionalUnitNameType3EditPart.VISUAL_ID:
+ return getConditionalUnitNameType_5065Parser();
+ case CartesianQueuedUnitNameTypeLblStrict7EditPart.VISUAL_ID:
+ return getCartesianQueuedUnitNameTypeLblStrict_5033Parser();
+ case ParallelQueuedUnitNameTypeLblStrict7EditPart.VISUAL_ID:
+ return getParallelQueuedUnitNameTypeLblStrict_5035Parser();
+ case AtomicUnitLabelType3EditPart.VISUAL_ID:
+ return getAtomicUnitLabelType_5034Parser();
+ case SingleFeatureUnitNameType3EditPart.VISUAL_ID:
+ return getSingleFeatureUnitNameType_5036Parser();
+ case MultiFeatureUnitNameType3EditPart.VISUAL_ID:
+ return getMultiFeatureUnitNameType_5037Parser();
+ case SingleFilterUnitNameType3EditPart.VISUAL_ID:
+ return getSingleFilterUnitNameType_5038Parser();
+ case MultiFilterUnitNameType3EditPart.VISUAL_ID:
+ return getMultiFilterUnitNameType_5039Parser();
+ case SingleQueuedUnitNameTypeLblStrict4EditPart.VISUAL_ID:
+ return getSingleQueuedUnitNameTypeLblStrict_5064Parser();
+ case SingleFeatureUnitNameType4EditPart.VISUAL_ID:
+ return getSingleFeatureUnitNameType_5040Parser();
+ case MultiFeatureUnitNameType4EditPart.VISUAL_ID:
+ return getMultiFeatureUnitNameType_5041Parser();
+ case SingleFilterUnitNameType4EditPart.VISUAL_ID:
+ return getSingleFilterUnitNameType_5042Parser();
+ case MultiFilterUnitNameType4EditPart.VISUAL_ID:
+ return getMultiFilterUnitNameType_5043Parser();
+ case SingleQueuedUnitNameTypeLblStrict5EditPart.VISUAL_ID:
+ return getSingleQueuedUnitNameTypeLblStrict_5063Parser();
+ case SequentialUnitNameTypeLblStrict4EditPart.VISUAL_ID:
+ return getSequentialUnitNameTypeLblStrict_5062Parser();
+ case SingleFeatureUnitNameType5EditPart.VISUAL_ID:
+ return getSingleFeatureUnitNameType_5044Parser();
+ case MultiFeatureUnitNameType5EditPart.VISUAL_ID:
+ return getMultiFeatureUnitNameType_5045Parser();
+ case SingleFilterUnitNameType5EditPart.VISUAL_ID:
+ return getSingleFilterUnitNameType_5046Parser();
+ case MultiFilterUnitNameType5EditPart.VISUAL_ID:
+ return getMultiFilterUnitNameType_5047Parser();
+ case SingleQueuedUnitNameTypeLblStrict6EditPart.VISUAL_ID:
+ return getSingleQueuedUnitNameTypeLblStrict_5061Parser();
+ case ConditionalUnitNameType4EditPart.VISUAL_ID:
+ return getConditionalUnitNameType_5060Parser();
+ case SingleQueuedUnitNameTypeLblStrict7EditPart.VISUAL_ID:
+ return getSingleQueuedUnitNameTypeLblStrict_5049Parser();
+ case AtomicUnitLabelType4EditPart.VISUAL_ID:
+ return getAtomicUnitLabelType_5048Parser();
+ case SequentialUnitNameTypeLblStrict5EditPart.VISUAL_ID:
+ return getSequentialUnitNameTypeLblStrict_5059Parser();
+ case SequentialUnitNameTypeLblStrict6EditPart.VISUAL_ID:
+ return getSequentialUnitNameTypeLblStrict_5058Parser();
+ case ConditionalUnitNameType5EditPart.VISUAL_ID:
+ return getConditionalUnitNameType_5057Parser();
+ case ConditionalUnitNameType6EditPart.VISUAL_ID:
+ return getConditionalUnitNameType_5056Parser();
+ case SequentialUnitNameTypeLblStrict7EditPart.VISUAL_ID:
+ return getSequentialUnitNameTypeLblStrict_5051Parser();
+ case AtomicUnitLabelType5EditPart.VISUAL_ID:
+ return getAtomicUnitLabelType_5050Parser();
+ case ConditionalUnitNameType7EditPart.VISUAL_ID:
+ return getConditionalUnitNameType_5055Parser();
+ case ConditionCheckNameTypeSpecEditPart.VISUAL_ID:
+ return getConditionCheckNameTypeSpec_5052Parser();
+ case AtomicUnitLabelType6EditPart.VISUAL_ID:
+ return getAtomicUnitLabelType_5053Parser();
+ case AtomicUnitLabelType7EditPart.VISUAL_ID:
+ return getAtomicUnitLabelType_5054Parser();
+ }
+ return null;
+ }
+
+ /**
+ * Utility method that consults ParserService
+ * @generated
+ */
+ public static IParser getParser(IElementType type, EObject object,
+ String parserHint) {
+ return ParserService.getInstance().getParser(
+ new HintAdapter(type, object, parserHint));
+ }
+
+ /**
+ * @generated
+ */
+ public IParser getParser(IAdaptable hint) {
+ String vid = (String) hint.getAdapter(String.class);
+ if (vid != null) {
+ return getParser(ComrelVisualIDRegistry.getVisualID(vid));
+ }
+ View view = (View) hint.getAdapter(View.class);
+ if (view != null) {
+ return getParser(ComrelVisualIDRegistry.getVisualID(view));
+ }
+ return null;
+ }
+
+ /**
+ * @generated
+ */
+ public boolean provides(IOperation operation) {
+ if (operation instanceof GetParserOperation) {
+ IAdaptable hint = ((GetParserOperation) operation).getHint();
+ if (ComrelElementTypes.getElement(hint) == null) {
+ return false;
+ }
+ return getParser(hint) != null;
+ }
+ return false;
+ }
+
+ /**
+ * @generated
+ */
+ private static class HintAdapter extends ParserHintAdapter {
+
+ /**
+ * @generated
+ */
+ private final IElementType elementType;
+
+ /**
+ * @generated
+ */
+ public HintAdapter(IElementType type, EObject object, String parserHint) {
+ super(object, parserHint);
+ assert type != null;
+ elementType = type;
+ }
+
+ /**
+ * @generated
+ */
+ public Object getAdapter(Class adapter) {
+ if (IElementType.class.equals(adapter)) {
+ return elementType;
+ }
+ return super.getAdapter(adapter);
+ }
+ }
+
+}
diff --git a/org.eclipse.emf.refactor.comrel.diagram/src/comrel/diagram/providers/ComrelShortcutsDecoratorProvider.java b/org.eclipse.emf.refactor.comrel.diagram/src/comrel/diagram/providers/ComrelShortcutsDecoratorProvider.java
new file mode 100644
index 0000000..cc7d0a3
--- /dev/null
+++ b/org.eclipse.emf.refactor.comrel.diagram/src/comrel/diagram/providers/ComrelShortcutsDecoratorProvider.java
@@ -0,0 +1,102 @@
+/*
+ *
+ */
+package comrel.diagram.providers;
+
+import org.eclipse.emf.ecore.EAnnotation;
+import org.eclipse.gef.EditPart;
+import org.eclipse.gmf.runtime.common.core.service.AbstractProvider;
+import org.eclipse.gmf.runtime.common.core.service.IOperation;
+import org.eclipse.gmf.runtime.diagram.ui.editparts.ConnectionEditPart;
+import org.eclipse.gmf.runtime.diagram.ui.editparts.ShapeEditPart;
+import org.eclipse.gmf.runtime.diagram.ui.services.decorator.AbstractDecorator;
+import org.eclipse.gmf.runtime.diagram.ui.services.decorator.CreateDecoratorsOperation;
+import org.eclipse.gmf.runtime.diagram.ui.services.decorator.IDecoratorProvider;
+import org.eclipse.gmf.runtime.diagram.ui.services.decorator.IDecoratorTarget;
+import org.eclipse.gmf.runtime.notation.View;
+import org.eclipse.swt.graphics.Image;
+
+import comrel.diagram.edit.parts.CompositeRefactoringEditPart;
+import comrel.diagram.part.ComrelDiagramEditorPlugin;
+import comrel.diagram.part.ComrelVisualIDRegistry;
+
+/**
+ * @generated
+ */
+public class ComrelShortcutsDecoratorProvider extends AbstractProvider
+ implements IDecoratorProvider {
+
+ /**
+ * @generated
+ */
+ public static final String SHORTCUTS_DECORATOR_ID = "shortcuts"; //$NON-NLS-1$
+
+ /**
+ * @generated
+ */
+ public boolean provides(IOperation operation) {
+ if (!(operation instanceof CreateDecoratorsOperation)) {
+ return false;
+ }
+ IDecoratorTarget decoratorTarget = ((CreateDecoratorsOperation) operation)
+ .getDecoratorTarget();
+ View view = (View) decoratorTarget.getAdapter(View.class);
+ return view != null
+ && CompositeRefactoringEditPart.MODEL_ID
+ .equals(ComrelVisualIDRegistry.getModelID(view));
+ }
+
+ /**
+ * @generated
+ */
+ public void createDecorators(IDecoratorTarget decoratorTarget) {
+ View view = (View) decoratorTarget.getAdapter(View.class);
+ if (view != null) {
+ EAnnotation annotation = view.getEAnnotation("Shortcut"); //$NON-NLS-1$
+ if (annotation != null) {
+ decoratorTarget.installDecorator(SHORTCUTS_DECORATOR_ID,
+ new ShortcutsDecorator(decoratorTarget));
+ }
+ }
+ }
+
+ /**
+ * @generated
+ */
+ protected class ShortcutsDecorator extends AbstractDecorator {
+
+ /**
+ * @generated
+ */
+ public ShortcutsDecorator(IDecoratorTarget decoratorTarget) {
+ super(decoratorTarget);
+ }
+
+ /**
+ * @generated
+ */
+ public void activate() {
+ refresh();
+ }
+
+ /**
+ * @generated
+ */
+ public void refresh() {
+ removeDecoration();
+ EditPart editPart = (EditPart) getDecoratorTarget().getAdapter(
+ EditPart.class);
+ Image image = ComrelDiagramEditorPlugin.getInstance()
+ .getBundledImage("icons/shortcut.gif"); //$NON-NLS-1$
+ if (editPart instanceof ShapeEditPart) {
+ setDecoration(getDecoratorTarget().addShapeDecoration(image,
+ IDecoratorTarget.Direction.SOUTH_WEST, 0, false));
+ } else if (editPart instanceof ConnectionEditPart) {
+ setDecoration(getDecoratorTarget().addConnectionDecoration(
+ image, 50, false));
+ }
+ }
+
+ }
+
+}
diff --git a/org.eclipse.emf.refactor.comrel.diagram/src/comrel/diagram/providers/ComrelValidationDecoratorProvider.java b/org.eclipse.emf.refactor.comrel.diagram/src/comrel/diagram/providers/ComrelValidationDecoratorProvider.java
new file mode 100644
index 0000000..26bf8a8
--- /dev/null
+++ b/org.eclipse.emf.refactor.comrel.diagram/src/comrel/diagram/providers/ComrelValidationDecoratorProvider.java
@@ -0,0 +1,453 @@
+/*
+ *
+ */
+package comrel.diagram.providers;
+
+import java.util.ArrayList;
+import java.util.HashMap;
+import java.util.Iterator;
+import java.util.List;
+import java.util.Map;
+
+import org.eclipse.core.resources.IFile;
+import org.eclipse.core.resources.IMarker;
+import org.eclipse.core.resources.IResource;
+import org.eclipse.core.runtime.CoreException;
+import org.eclipse.draw2d.FlowLayout;
+import org.eclipse.draw2d.Label;
+import org.eclipse.emf.transaction.util.TransactionUtil;
+import org.eclipse.emf.workspace.util.WorkspaceSynchronizer;
+import org.eclipse.gef.EditDomain;
+import org.eclipse.gef.EditPart;
+import org.eclipse.gef.editparts.AbstractConnectionEditPart;
+import org.eclipse.gmf.runtime.common.core.service.AbstractProvider;
+import org.eclipse.gmf.runtime.common.core.service.IOperation;
+import org.eclipse.gmf.runtime.common.ui.resources.FileChangeManager;
+import org.eclipse.gmf.runtime.common.ui.resources.IFileObserver;
+import org.eclipse.gmf.runtime.diagram.core.util.ViewUtil;
+import org.eclipse.gmf.runtime.diagram.ui.editparts.GraphicalEditPart;
+import org.eclipse.gmf.runtime.diagram.ui.parts.DiagramEditDomain;
+import org.eclipse.gmf.runtime.diagram.ui.services.decorator.AbstractDecorator;
+import org.eclipse.gmf.runtime.diagram.ui.services.decorator.CreateDecoratorsOperation;
+import org.eclipse.gmf.runtime.diagram.ui.services.decorator.IDecorator;
+import org.eclipse.gmf.runtime.diagram.ui.services.decorator.IDecoratorProvider;
+import org.eclipse.gmf.runtime.diagram.ui.services.decorator.IDecoratorTarget;
+import org.eclipse.gmf.runtime.draw2d.ui.mapmode.MapModeUtil;
+import org.eclipse.gmf.runtime.notation.Diagram;
+import org.eclipse.gmf.runtime.notation.Edge;
+import org.eclipse.gmf.runtime.notation.View;
+import org.eclipse.swt.graphics.Image;
+import org.eclipse.ui.ISharedImages;
+import org.eclipse.ui.PlatformUI;
+
+import comrel.diagram.edit.parts.CompositeRefactoringEditPart;
+import comrel.diagram.part.ComrelDiagramEditor;
+import comrel.diagram.part.ComrelDiagramEditorPlugin;
+import comrel.diagram.part.ComrelVisualIDRegistry;
+
+/**
+ * @generated
+ */
+public class ComrelValidationDecoratorProvider extends AbstractProvider
+ implements IDecoratorProvider {
+
+ /**
+ * @generated
+ */
+ private static final String KEY = "validationStatus"; //$NON-NLS-1$
+
+ /**
+ * @generated
+ */
+ private static final String MARKER_TYPE = ComrelDiagramEditorPlugin.ID
+ + ".diagnostic"; //$NON-NLS-1$
+
+ /**
+ * @generated
+ */
+ private static MarkerObserver fileObserver;
+
+ /**
+ * @generated
+ */
+ private static Map/*<String, List<IDecorator>>*/allDecorators = new HashMap();
+
+ /**
+ * @generated
+ */
+ public void createDecorators(IDecoratorTarget decoratorTarget) {
+ EditPart editPart = (EditPart) decoratorTarget
+ .getAdapter(EditPart.class);
+ if (editPart instanceof GraphicalEditPart
+ || editPart instanceof AbstractConnectionEditPart) {
+ Object model = editPart.getModel();
+ if ((model instanceof View)) {
+ View view = (View) model;
+ if (!(view instanceof Edge) && !view.isSetElement()) {
+ return;
+ }
+ }
+ EditDomain ed = editPart.getViewer().getEditDomain();
+ if (!(ed instanceof DiagramEditDomain)) {
+ return;
+ }
+ if (((DiagramEditDomain) ed).getEditorPart() instanceof ComrelDiagramEditor) {
+ decoratorTarget.installDecorator(KEY, new StatusDecorator(
+ decoratorTarget));
+ }
+ }
+ }
+
+ /**
+ * @generated
+ */
+ public boolean provides(IOperation operation) {
+ if (!(operation instanceof CreateDecoratorsOperation)) {
+ return false;
+ }
+ IDecoratorTarget decoratorTarget = ((CreateDecoratorsOperation) operation)
+ .getDecoratorTarget();
+ View view = (View) decoratorTarget.getAdapter(View.class);
+ return view != null
+ && CompositeRefactoringEditPart.MODEL_ID
+ .equals(ComrelVisualIDRegistry.getModelID(view));
+ }
+
+ /**
+ * @generated
+ */
+ public static void refreshDecorators(View view) {
+ refreshDecorators(ViewUtil.getIdStr(view), view.getDiagram());
+ }
+
+ /**
+ * @generated
+ */
+ private static void refreshDecorators(String viewId, Diagram diagram) {
+ final List decorators = viewId != null ? (List) allDecorators
+ .get(viewId) : null;
+ if (decorators == null || decorators.isEmpty() || diagram == null) {
+ return;
+ }
+ final Diagram fdiagram = diagram;
+ PlatformUI.getWorkbench().getDisplay().asyncExec(new Runnable() {
+
+ public void run() {
+ try {
+ TransactionUtil.getEditingDomain(fdiagram).runExclusive(
+ new Runnable() {
+
+ public void run() {
+ for (Iterator it = decorators.iterator(); it
+ .hasNext();) {
+ IDecorator decorator = (IDecorator) it
+ .next();
+ decorator.refresh();
+ }
+ }
+ });
+ } catch (Exception e) {
+ ComrelDiagramEditorPlugin.getInstance().logError(
+ "Decorator refresh failure", e); //$NON-NLS-1$
+ }
+ }
+ });
+ }
+
+ /**
+ * @generated
+ */
+ public static class StatusDecorator extends AbstractDecorator {
+
+ /**
+ * @generated
+ */
+ private String viewId;
+
+ /**
+ * @generated
+ */
+ public StatusDecorator(IDecoratorTarget decoratorTarget) {
+ super(decoratorTarget);
+ try {
+ final View view = (View) getDecoratorTarget().getAdapter(
+ View.class);
+ TransactionUtil.getEditingDomain(view).runExclusive(
+ new Runnable() {
+
+ public void run() {
+ StatusDecorator.this.viewId = view != null ? ViewUtil
+ .getIdStr(view) : null;
+ }
+ });
+ } catch (Exception e) {
+ ComrelDiagramEditorPlugin.getInstance().logError(
+ "ViewID access failure", e); //$NON-NLS-1$
+ }
+ }
+
+ /**
+ * @generated
+ */
+ public void refresh() {
+ removeDecoration();
+ View view = (View) getDecoratorTarget().getAdapter(View.class);
+ if (view == null || view.eResource() == null) {
+ return;
+ }
+ EditPart editPart = (EditPart) getDecoratorTarget().getAdapter(
+ EditPart.class);
+ if (editPart == null || editPart.getViewer() == null) {
+ return;
+ }
+
+ // query for all the validation markers of the current resource
+ String elementId = ViewUtil.getIdStr(view);
+ if (elementId == null) {
+ return;
+ }
+ int severity = IMarker.SEVERITY_INFO;
+ IMarker foundMarker = null;
+ IResource resource = WorkspaceSynchronizer
+ .getFile(view.eResource());
+ if (resource == null || !resource.exists()) {
+ return;
+ }
+ IMarker[] markers = null;
+ try {
+ markers = resource.findMarkers(MARKER_TYPE, true,
+ IResource.DEPTH_INFINITE);
+ } catch (CoreException e) {
+ ComrelDiagramEditorPlugin.getInstance().logError(
+ "Validation markers refresh failure", e); //$NON-NLS-1$
+ }
+ if (markers == null || markers.length == 0) {
+ return;
+ }
+ Label toolTip = null;
+ for (int i = 0; i < markers.length; i++) {
+ IMarker marker = markers[i];
+ String attribute = marker
+ .getAttribute(
+ org.eclipse.gmf.runtime.common.ui.resources.IMarker.ELEMENT_ID,
+ ""); //$NON-NLS-1$
+ if (attribute.equals(elementId)) {
+ int nextSeverity = marker.getAttribute(IMarker.SEVERITY,
+ IMarker.SEVERITY_INFO);
+ Image nextImage = getImage(nextSeverity);
+ if (foundMarker == null) {
+ foundMarker = marker;
+ toolTip = new Label(marker.getAttribute(
+ IMarker.MESSAGE, ""), //$NON-NLS-1$
+ nextImage);
+ } else {
+ if (toolTip.getChildren().isEmpty()) {
+ Label comositeLabel = new Label();
+ FlowLayout fl = new FlowLayout(false);
+ fl.setMinorSpacing(0);
+ comositeLabel.setLayoutManager(fl);
+ comositeLabel.add(toolTip);
+ toolTip = comositeLabel;
+ }
+ toolTip.add(new Label(marker.getAttribute(
+ IMarker.MESSAGE, ""), //$NON-NLS-1$
+ nextImage));
+ }
+ severity = (nextSeverity > severity) ? nextSeverity
+ : severity;
+ }
+ }
+ if (foundMarker == null) {
+ return;
+ }
+
+ // add decoration
+ if (editPart instanceof org.eclipse.gef.GraphicalEditPart) {
+ if (view instanceof Edge) {
+ setDecoration(getDecoratorTarget().addConnectionDecoration(
+ getImage(severity), 50, true));
+ } else {
+ int margin = -1;
+ if (editPart instanceof org.eclipse.gef.GraphicalEditPart) {
+ margin = MapModeUtil.getMapMode(
+ ((org.eclipse.gef.GraphicalEditPart) editPart)
+ .getFigure()).DPtoLP(margin);
+ }
+ setDecoration(getDecoratorTarget()
+ .addShapeDecoration(getImage(severity),
+ IDecoratorTarget.Direction.NORTH_EAST,
+ margin, true));
+ }
+ getDecoration().setToolTip(toolTip);
+ }
+ }
+
+ /**
+ * @generated
+ */
+ private Image getImage(int severity) {
+ String imageName = ISharedImages.IMG_OBJS_ERROR_TSK;
+ switch (severity) {
+ case IMarker.SEVERITY_ERROR:
+ imageName = ISharedImages.IMG_OBJS_ERROR_TSK;
+ break;
+ case IMarker.SEVERITY_WARNING:
+ imageName = ISharedImages.IMG_OBJS_WARN_TSK;
+ break;
+ default:
+ imageName = ISharedImages.IMG_OBJS_INFO_TSK;
+ }
+ return PlatformUI.getWorkbench().getSharedImages()
+ .getImage(imageName);
+ }
+
+ /**
+ * @generated
+ */
+ public void activate() {
+ if (viewId == null) {
+ return;
+ }
+
+ // add self to global decorators registry
+ List list = (List) allDecorators.get(viewId);
+ if (list == null) {
+ list = new ArrayList(2);
+ list.add(this);
+ allDecorators.put(viewId, list);
+ } else if (!list.contains(this)) {
+ list.add(this);
+ }
+
+ // start listening to changes in resources
+ View view = (View) getDecoratorTarget().getAdapter(View.class);
+ if (view == null) {
+ return;
+ }
+ Diagram diagramView = view.getDiagram();
+ if (diagramView == null) {
+ return;
+ }
+ if (fileObserver == null) {
+ FileChangeManager.getInstance().addFileObserver(
+ fileObserver = new MarkerObserver(diagramView));
+ }
+ }
+
+ /**
+ * @generated
+ */
+ public void deactivate() {
+ if (viewId == null) {
+ return;
+ }
+
+ // remove self from global decorators registry
+ List list = (List) allDecorators.get(viewId);
+ if (list != null) {
+ list.remove(this);
+ if (list.isEmpty()) {
+ allDecorators.remove(viewId);
+ }
+ }
+
+ // stop listening to changes in resources if there are no more decorators
+ if (fileObserver != null && allDecorators.isEmpty()) {
+ FileChangeManager.getInstance()
+ .removeFileObserver(fileObserver);
+ fileObserver = null;
+ }
+ super.deactivate();
+ }
+ }
+
+ /**
+ * @generated
+ */
+ static class MarkerObserver implements IFileObserver {
+
+ /**
+ * @generated
+ */
+ private Diagram diagram;
+
+ /**
+ * @generated
+ */
+ private MarkerObserver(Diagram diagram) {
+ this.diagram = diagram;
+ }
+
+ /**
+ * @generated
+ */
+ public void handleFileRenamed(IFile oldFile, IFile file) {
+ }
+
+ /**
+ * @generated
+ */
+ public void handleFileMoved(IFile oldFile, IFile file) {
+ }
+
+ /**
+ * @generated
+ */
+ public void handleFileDeleted(IFile file) {
+ }
+
+ /**
+ * @generated
+ */
+ public void handleFileChanged(IFile file) {
+ }
+
+ /**
+ * @generated
+ */
+ public void handleMarkerAdded(IMarker marker) {
+ if (marker
+ .getAttribute(
+ org.eclipse.gmf.runtime.common.ui.resources.IMarker.ELEMENT_ID,
+ null) != null) {
+ handleMarkerChanged(marker);
+ }
+ }
+
+ /**
+ * @generated
+ */
+ public void handleMarkerDeleted(IMarker marker, Map attributes) {
+ String viewId = (String) attributes
+ .get(org.eclipse.gmf.runtime.common.ui.resources.IMarker.ELEMENT_ID);
+ refreshDecorators(viewId, diagram);
+ }
+
+ /**
+ * @generated
+ */
+ public void handleMarkerChanged(IMarker marker) {
+ if (!MARKER_TYPE.equals(getType(marker))) {
+ return;
+ }
+ String viewId = marker
+ .getAttribute(
+ org.eclipse.gmf.runtime.common.ui.resources.IMarker.ELEMENT_ID,
+ ""); //$NON-NLS-1$
+ refreshDecorators(viewId, diagram);
+ }
+
+ /**
+ * @generated
+ */
+ private String getType(IMarker marker) {
+ try {
+ return marker.getType();
+ } catch (CoreException e) {
+ ComrelDiagramEditorPlugin.getInstance().logError(
+ "Validation marker refresh failure", e); //$NON-NLS-1$
+ return ""; //$NON-NLS-1$
+ }
+ }
+ }
+}
diff --git a/org.eclipse.emf.refactor.comrel.diagram/src/comrel/diagram/providers/ComrelValidationProvider.java b/org.eclipse.emf.refactor.comrel.diagram/src/comrel/diagram/providers/ComrelValidationProvider.java
new file mode 100644
index 0000000..4870422
--- /dev/null
+++ b/org.eclipse.emf.refactor.comrel.diagram/src/comrel/diagram/providers/ComrelValidationProvider.java
@@ -0,0 +1,74 @@
+/*
+ *
+ */
+package comrel.diagram.providers;
+
+import org.eclipse.emf.transaction.TransactionalEditingDomain;
+import org.eclipse.gmf.runtime.notation.View;
+
+import comrel.diagram.edit.parts.CompositeRefactoringEditPart;
+import comrel.diagram.part.ComrelDiagramEditorPlugin;
+import comrel.diagram.part.ComrelVisualIDRegistry;
+
+/**
+ * @generated
+ */
+public class ComrelValidationProvider {
+
+ /**
+ * @generated
+ */
+ private static boolean constraintsActive = false;
+
+ /**
+ * @generated
+ */
+ public static boolean shouldConstraintsBePrivate() {
+ return false;
+ }
+
+ /**
+ * @generated
+ */
+ public static void runWithConstraints(
+ TransactionalEditingDomain editingDomain, Runnable operation) {
+ final Runnable op = operation;
+ Runnable task = new Runnable() {
+ public void run() {
+ try {
+ constraintsActive = true;
+ op.run();
+ } finally {
+ constraintsActive = false;
+ }
+ }
+ };
+ if (editingDomain != null) {
+ try {
+ editingDomain.runExclusive(task);
+ } catch (Exception e) {
+ ComrelDiagramEditorPlugin.getInstance().logError(
+ "Validation failed", e); //$NON-NLS-1$
+ }
+ } else {
+ task.run();
+ }
+ }
+
+ /**
+ * @generated
+ */
+ static boolean isInDefaultEditorContext(Object object) {
+ if (shouldConstraintsBePrivate() && !constraintsActive) {
+ return false;
+ }
+ if (object instanceof View) {
+ return constraintsActive
+ && CompositeRefactoringEditPart.MODEL_ID
+ .equals(ComrelVisualIDRegistry
+ .getModelID((View) object));
+ }
+ return true;
+ }
+
+}
diff --git a/org.eclipse.emf.refactor.comrel.diagram/src/comrel/diagram/providers/ComrelViewProvider.java b/org.eclipse.emf.refactor.comrel.diagram/src/comrel/diagram/providers/ComrelViewProvider.java
new file mode 100644
index 0000000..f386ab9
--- /dev/null
+++ b/org.eclipse.emf.refactor.comrel.diagram/src/comrel/diagram/providers/ComrelViewProvider.java
@@ -0,0 +1,5431 @@
+/*
+ *
+ */
+package comrel.diagram.providers;
+
+import java.util.ArrayList;
+
+import org.eclipse.core.runtime.IAdaptable;
+import org.eclipse.emf.ecore.EAnnotation;
+import org.eclipse.emf.ecore.EObject;
+import org.eclipse.emf.ecore.EcoreFactory;
+import org.eclipse.emf.transaction.util.TransactionUtil;
+import org.eclipse.gmf.runtime.common.core.service.AbstractProvider;
+import org.eclipse.gmf.runtime.common.core.service.IOperation;
+import org.eclipse.gmf.runtime.diagram.core.preferences.PreferencesHint;
+import org.eclipse.gmf.runtime.diagram.core.providers.IViewProvider;
+import org.eclipse.gmf.runtime.diagram.core.services.view.CreateDiagramViewOperation;
+import org.eclipse.gmf.runtime.diagram.core.services.view.CreateEdgeViewOperation;
+import org.eclipse.gmf.runtime.diagram.core.services.view.CreateNodeViewOperation;
+import org.eclipse.gmf.runtime.diagram.core.services.view.CreateViewForKindOperation;
+import org.eclipse.gmf.runtime.diagram.core.services.view.CreateViewOperation;
+import org.eclipse.gmf.runtime.diagram.core.util.ViewUtil;
+import org.eclipse.gmf.runtime.diagram.ui.preferences.IPreferenceConstants;
+import org.eclipse.gmf.runtime.draw2d.ui.figures.FigureUtilities;
+import org.eclipse.gmf.runtime.emf.core.util.EMFCoreUtil;
+import org.eclipse.gmf.runtime.emf.type.core.IElementType;
+import org.eclipse.gmf.runtime.emf.type.core.IHintedType;
+import org.eclipse.gmf.runtime.notation.Connector;
+import org.eclipse.gmf.runtime.notation.DecorationNode;
+import org.eclipse.gmf.runtime.notation.Diagram;
+import org.eclipse.gmf.runtime.notation.Edge;
+import org.eclipse.gmf.runtime.notation.FontStyle;
+import org.eclipse.gmf.runtime.notation.Location;
+import org.eclipse.gmf.runtime.notation.MeasurementUnit;
+import org.eclipse.gmf.runtime.notation.Node;
+import org.eclipse.gmf.runtime.notation.NotationFactory;
+import org.eclipse.gmf.runtime.notation.NotationPackage;
+import org.eclipse.gmf.runtime.notation.RelativeBendpoints;
+import org.eclipse.gmf.runtime.notation.Routing;
+import org.eclipse.gmf.runtime.notation.Shape;
+import org.eclipse.gmf.runtime.notation.TitleStyle;
+import org.eclipse.gmf.runtime.notation.View;
+import org.eclipse.gmf.runtime.notation.datatype.RelativeBendpoint;
+import org.eclipse.jface.preference.IPreferenceStore;
+import org.eclipse.jface.preference.PreferenceConverter;
+import org.eclipse.swt.SWT;
+import org.eclipse.swt.graphics.FontData;
+
+import comrel.diagram.edit.parts.*;
+import comrel.diagram.part.ComrelVisualIDRegistry;
+
+/**
+ * @generated
+ */
+public class ComrelViewProvider extends AbstractProvider implements
+ IViewProvider {
+
+ /**
+ * @generated
+ */
+ public final boolean provides(IOperation operation) {
+ if (operation instanceof CreateViewForKindOperation) {
+ return provides((CreateViewForKindOperation) operation);
+ }
+ assert operation instanceof CreateViewOperation;
+ if (operation instanceof CreateDiagramViewOperation) {
+ return provides((CreateDiagramViewOperation) operation);
+ } else if (operation instanceof CreateEdgeViewOperation) {
+ return provides((CreateEdgeViewOperation) operation);
+ } else if (operation instanceof CreateNodeViewOperation) {
+ return provides((CreateNodeViewOperation) operation);
+ }
+ return false;
+ }
+
+ /**
+ * @generated
+ */
+ protected boolean provides(CreateViewForKindOperation op) {
+ /*
+ if (op.getViewKind() == Node.class)
+ return getNodeViewClass(op.getSemanticAdapter(), op.getContainerView(), op.getSemanticHint()) != null;
+ if (op.getViewKind() == Edge.class)
+ return getEdgeViewClass(op.getSemanticAdapter(), op.getContainerView(), op.getSemanticHint()) != null;
+ */
+ return true;
+ }
+
+ /**
+ * @generated
+ */
+ protected boolean provides(CreateDiagramViewOperation op) {
+ return CompositeRefactoringEditPart.MODEL_ID.equals(op
+ .getSemanticHint())
+ && ComrelVisualIDRegistry
+ .getDiagramVisualID(getSemanticElement(op
+ .getSemanticAdapter())) != -1;
+ }
+
+ /**
+ * @generated
+ */
+ protected boolean provides(CreateNodeViewOperation op) {
+ if (op.getContainerView() == null) {
+ return false;
+ }
+ IElementType elementType = getSemanticElementType(op
+ .getSemanticAdapter());
+ EObject domainElement = getSemanticElement(op.getSemanticAdapter());
+ int visualID;
+ if (op.getSemanticHint() == null) {
+ // Semantic hint is not specified. Can be a result of call from CanonicalEditPolicy.
+ // In this situation there should be NO elementType, visualID will be determined
+ // by VisualIDRegistry.getNodeVisualID() for domainElement.
+ if (elementType != null || domainElement == null) {
+ return false;
+ }
+ visualID = ComrelVisualIDRegistry.getNodeVisualID(
+ op.getContainerView(), domainElement);
+ } else {
+ visualID = ComrelVisualIDRegistry.getVisualID(op.getSemanticHint());
+ if (elementType != null) {
+ if (!ComrelElementTypes.isKnownElementType(elementType)
+ || (!(elementType instanceof IHintedType))) {
+ return false; // foreign element type
+ }
+ String elementTypeHint = ((IHintedType) elementType)
+ .getSemanticHint();
+ if (!op.getSemanticHint().equals(elementTypeHint)) {
+ return false; // if semantic hint is specified it should be the same as in element type
+ }
+ if (domainElement != null
+ && visualID != ComrelVisualIDRegistry.getNodeVisualID(
+ op.getContainerView(), domainElement)) {
+ return false; // visual id for node EClass should match visual id from element type
+ }
+ } else {
+ if (!CompositeRefactoringEditPart.MODEL_ID
+ .equals(ComrelVisualIDRegistry.getModelID(op
+ .getContainerView()))) {
+ return false; // foreign diagram
+ }
+ switch (visualID) {
+ case SingleInputPortEditPart.VISUAL_ID:
+ case CartesianQueuedUnitEditPart.VISUAL_ID:
+ case MultiInputPortEditPart.VISUAL_ID:
+ case ParallelQueuedUnit2EditPart.VISUAL_ID:
+ case SingleFeatureUnitEditPart.VISUAL_ID:
+ case SingleOutputPortEditPart.VISUAL_ID:
+ case MultiFeatureUnitEditPart.VISUAL_ID:
+ case MultiOutputPortEditPart.VISUAL_ID:
+ case SingleFilterUnitEditPart.VISUAL_ID:
+ case MultiFilterUnitEditPart.VISUAL_ID:
+ case SingleQueuedUnit2EditPart.VISUAL_ID:
+ case SequentialUnit2EditPart.VISUAL_ID:
+ case ConditionalUnit2EditPart.VISUAL_ID:
+ case AtomicUnit2EditPart.VISUAL_ID:
+ case ConditionCheckEditPart.VISUAL_ID:
+ case ParallelQueuedUnitEditPart.VISUAL_ID:
+ case SingleQueuedUnitEditPart.VISUAL_ID:
+ case SequentialUnitEditPart.VISUAL_ID:
+ case ConditionalUnitEditPart.VISUAL_ID:
+ case AtomicUnitEditPart.VISUAL_ID:
+ case SingleInputPort2EditPart.VISUAL_ID:
+ case CartesianQueuedUnit2EditPart.VISUAL_ID:
+ case SingleInputPort3EditPart.VISUAL_ID:
+ case MultiInputPort2EditPart.VISUAL_ID:
+ case CartesianQueuedUnit3EditPart.VISUAL_ID:
+ case SingleInputPort4EditPart.VISUAL_ID:
+ case MultiInputPort3EditPart.VISUAL_ID:
+ case SingleInputPort5EditPart.VISUAL_ID:
+ case MultiInputPort4EditPart.VISUAL_ID:
+ case MultiInputPort5EditPart.VISUAL_ID:
+ case SingleOutputPort2EditPart.VISUAL_ID:
+ case MultiInputPort6EditPart.VISUAL_ID:
+ case MultiOutputPort2EditPart.VISUAL_ID:
+ case SingleInputPort6EditPart.VISUAL_ID:
+ case MultiInputPort7EditPart.VISUAL_ID:
+ case CartesianQueuedUnit4EditPart.VISUAL_ID:
+ case SingleInputPort7EditPart.VISUAL_ID:
+ case MultiInputPort8EditPart.VISUAL_ID:
+ case CartesianQueuedUnit5EditPart.VISUAL_ID:
+ case SingleInputPort8EditPart.VISUAL_ID:
+ case MultiInputPort9EditPart.VISUAL_ID:
+ case CartesianQueuedUnit6EditPart.VISUAL_ID:
+ case SingleInputPort9EditPart.VISUAL_ID:
+ case ParallelQueuedUnit3EditPart.VISUAL_ID:
+ case ParallelQueuedUnit4EditPart.VISUAL_ID:
+ case SingleFeatureUnit2EditPart.VISUAL_ID:
+ case MultiFeatureUnit2EditPart.VISUAL_ID:
+ case SingleFilterUnit2EditPart.VISUAL_ID:
+ case MultiFilterUnit2EditPart.VISUAL_ID:
+ case SingleQueuedUnit3EditPart.VISUAL_ID:
+ case ParallelQueuedUnit5EditPart.VISUAL_ID:
+ case SequentialUnit3EditPart.VISUAL_ID:
+ case ParallelQueuedUnit6EditPart.VISUAL_ID:
+ case ConditionalUnit3EditPart.VISUAL_ID:
+ case CartesianQueuedUnit7EditPart.VISUAL_ID:
+ case ParallelQueuedUnit7EditPart.VISUAL_ID:
+ case AtomicUnit3EditPart.VISUAL_ID:
+ case SingleFeatureUnit3EditPart.VISUAL_ID:
+ case MultiFeatureUnit3EditPart.VISUAL_ID:
+ case SingleFilterUnit3EditPart.VISUAL_ID:
+ case MultiFilterUnit3EditPart.VISUAL_ID:
+ case SingleQueuedUnit4EditPart.VISUAL_ID:
+ case SingleFeatureUnit4EditPart.VISUAL_ID:
+ case MultiFeatureUnit4EditPart.VISUAL_ID:
+ case SingleFilterUnit4EditPart.VISUAL_ID:
+ case MultiFilterUnit4EditPart.VISUAL_ID:
+ case SingleQueuedUnit5EditPart.VISUAL_ID:
+ case SequentialUnit4EditPart.VISUAL_ID:
+ case SingleFeatureUnit5EditPart.VISUAL_ID:
+ case MultiFeatureUnit5EditPart.VISUAL_ID:
+ case SingleFilterUnit5EditPart.VISUAL_ID:
+ case MultiFilterUnit5EditPart.VISUAL_ID:
+ case SingleQueuedUnit6EditPart.VISUAL_ID:
+ case ConditionalUnit4EditPart.VISUAL_ID:
+ case SingleQueuedUnit7EditPart.VISUAL_ID:
+ case AtomicUnit4EditPart.VISUAL_ID:
+ case SequentialUnit5EditPart.VISUAL_ID:
+ case SequentialUnit6EditPart.VISUAL_ID:
+ case ConditionalUnit5EditPart.VISUAL_ID:
+ case ConditionalUnit6EditPart.VISUAL_ID:
+ case SequentialUnit7EditPart.VISUAL_ID:
+ case AtomicUnit5EditPart.VISUAL_ID:
+ case ConditionalUnit7EditPart.VISUAL_ID:
+ case AtomicUnit6EditPart.VISUAL_ID:
+ case AtomicUnit7EditPart.VISUAL_ID:
+ if (domainElement == null
+ || visualID != ComrelVisualIDRegistry
+ .getNodeVisualID(op.getContainerView(),
+ domainElement)) {
+ return false; // visual id in semantic hint should match visual id for domain element
+ }
+ break;
+ default:
+ return false;
+ }
+ }
+ }
+ return SingleInputPortEditPart.VISUAL_ID == visualID
+ || CartesianQueuedUnitEditPart.VISUAL_ID == visualID
+ || ParallelQueuedUnitEditPart.VISUAL_ID == visualID
+ || SingleQueuedUnitEditPart.VISUAL_ID == visualID
+ || SequentialUnitEditPart.VISUAL_ID == visualID
+ || ConditionalUnitEditPart.VISUAL_ID == visualID
+ || AtomicUnitEditPart.VISUAL_ID == visualID
+ || SingleInputPort2EditPart.VISUAL_ID == visualID
+ || MultiInputPortEditPart.VISUAL_ID == visualID
+ || CartesianQueuedUnit2EditPart.VISUAL_ID == visualID
+ || ParallelQueuedUnit2EditPart.VISUAL_ID == visualID
+ || SingleInputPort3EditPart.VISUAL_ID == visualID
+ || MultiInputPort2EditPart.VISUAL_ID == visualID
+ || CartesianQueuedUnit3EditPart.VISUAL_ID == visualID
+ || SingleFeatureUnitEditPart.VISUAL_ID == visualID
+ || SingleInputPort4EditPart.VISUAL_ID == visualID
+ || MultiInputPort3EditPart.VISUAL_ID == visualID
+ || SingleOutputPortEditPart.VISUAL_ID == visualID
+ || MultiFeatureUnitEditPart.VISUAL_ID == visualID
+ || SingleInputPort5EditPart.VISUAL_ID == visualID
+ || MultiInputPort4EditPart.VISUAL_ID == visualID
+ || MultiOutputPortEditPart.VISUAL_ID == visualID
+ || SingleFilterUnitEditPart.VISUAL_ID == visualID
+ || MultiInputPort5EditPart.VISUAL_ID == visualID
+ || SingleOutputPort2EditPart.VISUAL_ID == visualID
+ || MultiFilterUnitEditPart.VISUAL_ID == visualID
+ || MultiInputPort6EditPart.VISUAL_ID == visualID
+ || MultiOutputPort2EditPart.VISUAL_ID == visualID
+ || SingleQueuedUnit2EditPart.VISUAL_ID == visualID
+ || SingleInputPort6EditPart.VISUAL_ID == visualID
+ || MultiInputPort7EditPart.VISUAL_ID == visualID
+ || CartesianQueuedUnit4EditPart.VISUAL_ID == visualID
+ || SequentialUnit2EditPart.VISUAL_ID == visualID
+ || SingleInputPort7EditPart.VISUAL_ID == visualID
+ || MultiInputPort8EditPart.VISUAL_ID == visualID
+ || CartesianQueuedUnit5EditPart.VISUAL_ID == visualID
+ || ConditionalUnit2EditPart.VISUAL_ID == visualID
+ || SingleInputPort8EditPart.VISUAL_ID == visualID
+ || MultiInputPort9EditPart.VISUAL_ID == visualID
+ || CartesianQueuedUnit6EditPart.VISUAL_ID == visualID
+ || AtomicUnit2EditPart.VISUAL_ID == visualID
+ || SingleInputPort9EditPart.VISUAL_ID == visualID
+ || ParallelQueuedUnit3EditPart.VISUAL_ID == visualID
+ || ParallelQueuedUnit4EditPart.VISUAL_ID == visualID
+ || SingleFeatureUnit2EditPart.VISUAL_ID == visualID
+ || MultiFeatureUnit2EditPart.VISUAL_ID == visualID
+ || SingleFilterUnit2EditPart.VISUAL_ID == visualID
+ || MultiFilterUnit2EditPart.VISUAL_ID == visualID
+ || SingleQueuedUnit3EditPart.VISUAL_ID == visualID
+ || ParallelQueuedUnit5EditPart.VISUAL_ID == visualID
+ || SequentialUnit3EditPart.VISUAL_ID == visualID
+ || ParallelQueuedUnit6EditPart.VISUAL_ID == visualID
+ || ConditionalUnit3EditPart.VISUAL_ID == visualID
+ || CartesianQueuedUnit7EditPart.VISUAL_ID == visualID
+ || ParallelQueuedUnit7EditPart.VISUAL_ID == visualID
+ || AtomicUnit3EditPart.VISUAL_ID == visualID
+ || SingleFeatureUnit3EditPart.VISUAL_ID == visualID
+ || MultiFeatureUnit3EditPart.VISUAL_ID == visualID
+ || SingleFilterUnit3EditPart.VISUAL_ID == visualID
+ || MultiFilterUnit3EditPart.VISUAL_ID == visualID
+ || SingleQueuedUnit4EditPart.VISUAL_ID == visualID
+ || SingleFeatureUnit4EditPart.VISUAL_ID == visualID
+ || MultiFeatureUnit4EditPart.VISUAL_ID == visualID
+ || SingleFilterUnit4EditPart.VISUAL_ID == visualID
+ || MultiFilterUnit4EditPart.VISUAL_ID == visualID
+ || SingleQueuedUnit5EditPart.VISUAL_ID == visualID
+ || SequentialUnit4EditPart.VISUAL_ID == visualID
+ || SingleFeatureUnit5EditPart.VISUAL_ID == visualID
+ || MultiFeatureUnit5EditPart.VISUAL_ID == visualID
+ || SingleFilterUnit5EditPart.VISUAL_ID == visualID
+ || MultiFilterUnit5EditPart.VISUAL_ID == visualID
+ || SingleQueuedUnit6EditPart.VISUAL_ID == visualID
+ || ConditionalUnit4EditPart.VISUAL_ID == visualID
+ || SingleQueuedUnit7EditPart.VISUAL_ID == visualID
+ || AtomicUnit4EditPart.VISUAL_ID == visualID
+ || SequentialUnit5EditPart.VISUAL_ID == visualID
+ || SequentialUnit6EditPart.VISUAL_ID == visualID
+ || ConditionalUnit5EditPart.VISUAL_ID == visualID
+ || ConditionalUnit6EditPart.VISUAL_ID == visualID
+ || SequentialUnit7EditPart.VISUAL_ID == visualID
+ || AtomicUnit5EditPart.VISUAL_ID == visualID
+ || ConditionalUnit7EditPart.VISUAL_ID == visualID
+ || ConditionCheckEditPart.VISUAL_ID == visualID
+ || AtomicUnit6EditPart.VISUAL_ID == visualID
+ || AtomicUnit7EditPart.VISUAL_ID == visualID;
+ }
+
+ /**
+ * @generated
+ */
+ protected boolean provides(CreateEdgeViewOperation op) {
+ IElementType elementType = getSemanticElementType(op
+ .getSemanticAdapter());
+ if (!ComrelElementTypes.isKnownElementType(elementType)
+ || (!(elementType instanceof IHintedType))) {
+ return false; // foreign element type
+ }
+ String elementTypeHint = ((IHintedType) elementType).getSemanticHint();
+ if (elementTypeHint == null
+ || (op.getSemanticHint() != null && !elementTypeHint.equals(op
+ .getSemanticHint()))) {
+ return false; // our hint is visual id and must be specified, and it should be the same as in element type
+ }
+ int visualID = ComrelVisualIDRegistry.getVisualID(elementTypeHint);
+ EObject domainElement = getSemanticElement(op.getSemanticAdapter());
+ if (domainElement != null
+ && visualID != ComrelVisualIDRegistry
+ .getLinkWithClassVisualID(domainElement)) {
+ return false; // visual id for link EClass should match visual id from element type
+ }
+ return true;
+ }
+
+ /**
+ * @generated
+ */
+ public Diagram createDiagram(IAdaptable semanticAdapter,
+ String diagramKind, PreferencesHint preferencesHint) {
+ Diagram diagram = NotationFactory.eINSTANCE.createDiagram();
+ diagram.getStyles().add(NotationFactory.eINSTANCE.createDiagramStyle());
+ diagram.setType(CompositeRefactoringEditPart.MODEL_ID);
+ diagram.setElement(getSemanticElement(semanticAdapter));
+ diagram.setMeasurementUnit(MeasurementUnit.PIXEL_LITERAL);
+ return diagram;
+ }
+
+ /**
+ * @generated
+ */
+ public Node createNode(IAdaptable semanticAdapter, View containerView,
+ String semanticHint, int index, boolean persisted,
+ PreferencesHint preferencesHint) {
+ final EObject domainElement = getSemanticElement(semanticAdapter);
+ final int visualID;
+ if (semanticHint == null) {
+ visualID = ComrelVisualIDRegistry.getNodeVisualID(containerView,
+ domainElement);
+ } else {
+ visualID = ComrelVisualIDRegistry.getVisualID(semanticHint);
+ }
+ switch (visualID) {
+ case SingleInputPortEditPart.VISUAL_ID:
+ return createSingleInputPort_2001(domainElement, containerView,
+ index, persisted, preferencesHint);
+ case CartesianQueuedUnitEditPart.VISUAL_ID:
+ return createCartesianQueuedUnit_2002(domainElement, containerView,
+ index, persisted, preferencesHint);
+ case ParallelQueuedUnitEditPart.VISUAL_ID:
+ return createParallelQueuedUnit_2003(domainElement, containerView,
+ index, persisted, preferencesHint);
+ case SingleQueuedUnitEditPart.VISUAL_ID:
+ return createSingleQueuedUnit_2004(domainElement, containerView,
+ index, persisted, preferencesHint);
+ case SequentialUnitEditPart.VISUAL_ID:
+ return createSequentialUnit_2005(domainElement, containerView,
+ index, persisted, preferencesHint);
+ case ConditionalUnitEditPart.VISUAL_ID:
+ return createConditionalUnit_2006(domainElement, containerView,
+ index, persisted, preferencesHint);
+ case AtomicUnitEditPart.VISUAL_ID:
+ return createAtomicUnit_2007(domainElement, containerView, index,
+ persisted, preferencesHint);
+ case SingleInputPort2EditPart.VISUAL_ID:
+ return createSingleInputPort_3001(domainElement, containerView,
+ index, persisted, preferencesHint);
+ case MultiInputPortEditPart.VISUAL_ID:
+ return createMultiInputPort_3002(domainElement, containerView,
+ index, persisted, preferencesHint);
+ case CartesianQueuedUnit2EditPart.VISUAL_ID:
+ return createCartesianQueuedUnit_3003(domainElement, containerView,
+ index, persisted, preferencesHint);
+ case ParallelQueuedUnit2EditPart.VISUAL_ID:
+ return createParallelQueuedUnit_3004(domainElement, containerView,
+ index, persisted, preferencesHint);
+ case SingleInputPort3EditPart.VISUAL_ID:
+ return createSingleInputPort_3005(domainElement, containerView,
+ index, persisted, preferencesHint);
+ case MultiInputPort2EditPart.VISUAL_ID:
+ return createMultiInputPort_3006(domainElement, containerView,
+ index, persisted, preferencesHint);
+ case CartesianQueuedUnit3EditPart.VISUAL_ID:
+ return createCartesianQueuedUnit_3007(domainElement, containerView,
+ index, persisted, preferencesHint);
+ case SingleFeatureUnitEditPart.VISUAL_ID:
+ return createSingleFeatureUnit_3008(domainElement, containerView,
+ index, persisted, preferencesHint);
+ case SingleInputPort4EditPart.VISUAL_ID:
+ return createSingleInputPort_3009(domainElement, containerView,
+ index, persisted, preferencesHint);
+ case MultiInputPort3EditPart.VISUAL_ID:
+ return createMultiInputPort_3010(domainElement, containerView,
+ index, persisted, preferencesHint);
+ case SingleOutputPortEditPart.VISUAL_ID:
+ return createSingleOutputPort_3011(domainElement, containerView,
+ index, persisted, preferencesHint);
+ case MultiFeatureUnitEditPart.VISUAL_ID:
+ return createMultiFeatureUnit_3012(domainElement, containerView,
+ index, persisted, preferencesHint);
+ case SingleInputPort5EditPart.VISUAL_ID:
+ return createSingleInputPort_3013(domainElement, containerView,
+ index, persisted, preferencesHint);
+ case MultiInputPort4EditPart.VISUAL_ID:
+ return createMultiInputPort_3014(domainElement, containerView,
+ index, persisted, preferencesHint);
+ case MultiOutputPortEditPart.VISUAL_ID:
+ return createMultiOutputPort_3015(domainElement, containerView,
+ index, persisted, preferencesHint);
+ case SingleFilterUnitEditPart.VISUAL_ID:
+ return createSingleFilterUnit_3016(domainElement, containerView,
+ index, persisted, preferencesHint);
+ case MultiInputPort5EditPart.VISUAL_ID:
+ return createMultiInputPort_3017(domainElement, containerView,
+ index, persisted, preferencesHint);
+ case SingleOutputPort2EditPart.VISUAL_ID:
+ return createSingleOutputPort_3018(domainElement, containerView,
+ index, persisted, preferencesHint);
+ case MultiFilterUnitEditPart.VISUAL_ID:
+ return createMultiFilterUnit_3019(domainElement, containerView,
+ index, persisted, preferencesHint);
+ case MultiInputPort6EditPart.VISUAL_ID:
+ return createMultiInputPort_3020(domainElement, containerView,
+ index, persisted, preferencesHint);
+ case MultiOutputPort2EditPart.VISUAL_ID:
+ return createMultiOutputPort_3021(domainElement, containerView,
+ index, persisted, preferencesHint);
+ case SingleQueuedUnit2EditPart.VISUAL_ID:
+ return createSingleQueuedUnit_3022(domainElement, containerView,
+ index, persisted, preferencesHint);
+ case SingleInputPort6EditPart.VISUAL_ID:
+ return createSingleInputPort_3023(domainElement, containerView,
+ index, persisted, preferencesHint);
+ case MultiInputPort7EditPart.VISUAL_ID:
+ return createMultiInputPort_3024(domainElement, containerView,
+ index, persisted, preferencesHint);
+ case CartesianQueuedUnit4EditPart.VISUAL_ID:
+ return createCartesianQueuedUnit_3025(domainElement, containerView,
+ index, persisted, preferencesHint);
+ case SequentialUnit2EditPart.VISUAL_ID:
+ return createSequentialUnit_3026(domainElement, containerView,
+ index, persisted, preferencesHint);
+ case SingleInputPort7EditPart.VISUAL_ID:
+ return createSingleInputPort_3027(domainElement, containerView,
+ index, persisted, preferencesHint);
+ case MultiInputPort8EditPart.VISUAL_ID:
+ return createMultiInputPort_3028(domainElement, containerView,
+ index, persisted, preferencesHint);
+ case CartesianQueuedUnit5EditPart.VISUAL_ID:
+ return createCartesianQueuedUnit_3029(domainElement, containerView,
+ index, persisted, preferencesHint);
+ case ConditionalUnit2EditPart.VISUAL_ID:
+ return createConditionalUnit_3030(domainElement, containerView,
+ index, persisted, preferencesHint);
+ case SingleInputPort8EditPart.VISUAL_ID:
+ return createSingleInputPort_3031(domainElement, containerView,
+ index, persisted, preferencesHint);
+ case MultiInputPort9EditPart.VISUAL_ID:
+ return createMultiInputPort_3032(domainElement, containerView,
+ index, persisted, preferencesHint);
+ case CartesianQueuedUnit6EditPart.VISUAL_ID:
+ return createCartesianQueuedUnit_3033(domainElement, containerView,
+ index, persisted, preferencesHint);
+ case AtomicUnit2EditPart.VISUAL_ID:
+ return createAtomicUnit_3034(domainElement, containerView, index,
+ persisted, preferencesHint);
+ case SingleInputPort9EditPart.VISUAL_ID:
+ return createSingleInputPort_3035(domainElement, containerView,
+ index, persisted, preferencesHint);
+ case ParallelQueuedUnit3EditPart.VISUAL_ID:
+ return createParallelQueuedUnit_3036(domainElement, containerView,
+ index, persisted, preferencesHint);
+ case ParallelQueuedUnit4EditPart.VISUAL_ID:
+ return createParallelQueuedUnit_3037(domainElement, containerView,
+ index, persisted, preferencesHint);
+ case SingleFeatureUnit2EditPart.VISUAL_ID:
+ return createSingleFeatureUnit_3038(domainElement, containerView,
+ index, persisted, preferencesHint);
+ case MultiFeatureUnit2EditPart.VISUAL_ID:
+ return createMultiFeatureUnit_3039(domainElement, containerView,
+ index, persisted, preferencesHint);
+ case SingleFilterUnit2EditPart.VISUAL_ID:
+ return createSingleFilterUnit_3040(domainElement, containerView,
+ index, persisted, preferencesHint);
+ case MultiFilterUnit2EditPart.VISUAL_ID:
+ return createMultiFilterUnit_3041(domainElement, containerView,
+ index, persisted, preferencesHint);
+ case SingleQueuedUnit3EditPart.VISUAL_ID:
+ return createSingleQueuedUnit_3042(domainElement, containerView,
+ index, persisted, preferencesHint);
+ case ParallelQueuedUnit5EditPart.VISUAL_ID:
+ return createParallelQueuedUnit_3043(domainElement, containerView,
+ index, persisted, preferencesHint);
+ case SequentialUnit3EditPart.VISUAL_ID:
+ return createSequentialUnit_3044(domainElement, containerView,
+ index, persisted, preferencesHint);
+ case ParallelQueuedUnit6EditPart.VISUAL_ID:
+ return createParallelQueuedUnit_3045(domainElement, containerView,
+ index, persisted, preferencesHint);
+ case ConditionalUnit3EditPart.VISUAL_ID:
+ return createConditionalUnit_3046(domainElement, containerView,
+ index, persisted, preferencesHint);
+ case CartesianQueuedUnit7EditPart.VISUAL_ID:
+ return createCartesianQueuedUnit_3047(domainElement, containerView,
+ index, persisted, preferencesHint);
+ case ParallelQueuedUnit7EditPart.VISUAL_ID:
+ return createParallelQueuedUnit_3048(domainElement, containerView,
+ index, persisted, preferencesHint);
+ case AtomicUnit3EditPart.VISUAL_ID:
+ return createAtomicUnit_3049(domainElement, containerView, index,
+ persisted, preferencesHint);
+ case SingleFeatureUnit3EditPart.VISUAL_ID:
+ return createSingleFeatureUnit_3050(domainElement, containerView,
+ index, persisted, preferencesHint);
+ case MultiFeatureUnit3EditPart.VISUAL_ID:
+ return createMultiFeatureUnit_3051(domainElement, containerView,
+ index, persisted, preferencesHint);
+ case SingleFilterUnit3EditPart.VISUAL_ID:
+ return createSingleFilterUnit_3052(domainElement, containerView,
+ index, persisted, preferencesHint);
+ case MultiFilterUnit3EditPart.VISUAL_ID:
+ return createMultiFilterUnit_3053(domainElement, containerView,
+ index, persisted, preferencesHint);
+ case SingleQueuedUnit4EditPart.VISUAL_ID:
+ return createSingleQueuedUnit_3054(domainElement, containerView,
+ index, persisted, preferencesHint);
+ case SingleFeatureUnit4EditPart.VISUAL_ID:
+ return createSingleFeatureUnit_3055(domainElement, containerView,
+ index, persisted, preferencesHint);
+ case MultiFeatureUnit4EditPart.VISUAL_ID:
+ return createMultiFeatureUnit_3056(domainElement, containerView,
+ index, persisted, preferencesHint);
+ case SingleFilterUnit4EditPart.VISUAL_ID:
+ return createSingleFilterUnit_3057(domainElement, containerView,
+ index, persisted, preferencesHint);
+ case MultiFilterUnit4EditPart.VISUAL_ID:
+ return createMultiFilterUnit_3058(domainElement, containerView,
+ index, persisted, preferencesHint);
+ case SingleQueuedUnit5EditPart.VISUAL_ID:
+ return createSingleQueuedUnit_3059(domainElement, containerView,
+ index, persisted, preferencesHint);
+ case SequentialUnit4EditPart.VISUAL_ID:
+ return createSequentialUnit_3060(domainElement, containerView,
+ index, persisted, preferencesHint);
+ case SingleFeatureUnit5EditPart.VISUAL_ID:
+ return createSingleFeatureUnit_3061(domainElement, containerView,
+ index, persisted, preferencesHint);
+ case MultiFeatureUnit5EditPart.VISUAL_ID:
+ return createMultiFeatureUnit_3062(domainElement, containerView,
+ index, persisted, preferencesHint);
+ case SingleFilterUnit5EditPart.VISUAL_ID:
+ return createSingleFilterUnit_3063(domainElement, containerView,
+ index, persisted, preferencesHint);
+ case MultiFilterUnit5EditPart.VISUAL_ID:
+ return createMultiFilterUnit_3064(domainElement, containerView,
+ index, persisted, preferencesHint);
+ case SingleQueuedUnit6EditPart.VISUAL_ID:
+ return createSingleQueuedUnit_3065(domainElement, containerView,
+ index, persisted, preferencesHint);
+ case ConditionalUnit4EditPart.VISUAL_ID:
+ return createConditionalUnit_3066(domainElement, containerView,
+ index, persisted, preferencesHint);
+ case SingleQueuedUnit7EditPart.VISUAL_ID:
+ return createSingleQueuedUnit_3067(domainElement, containerView,
+ index, persisted, preferencesHint);
+ case AtomicUnit4EditPart.VISUAL_ID:
+ return createAtomicUnit_3068(domainElement, containerView, index,
+ persisted, preferencesHint);
+ case SequentialUnit5EditPart.VISUAL_ID:
+ return createSequentialUnit_3069(domainElement, containerView,
+ index, persisted, preferencesHint);
+ case SequentialUnit6EditPart.VISUAL_ID:
+ return createSequentialUnit_3070(domainElement, containerView,
+ index, persisted, preferencesHint);
+ case ConditionalUnit5EditPart.VISUAL_ID:
+ return createConditionalUnit_3071(domainElement, containerView,
+ index, persisted, preferencesHint);
+ case ConditionalUnit6EditPart.VISUAL_ID:
+ return createConditionalUnit_3072(domainElement, containerView,
+ index, persisted, preferencesHint);
+ case SequentialUnit7EditPart.VISUAL_ID:
+ return createSequentialUnit_3073(domainElement, containerView,
+ index, persisted, preferencesHint);
+ case AtomicUnit5EditPart.VISUAL_ID:
+ return createAtomicUnit_3074(domainElement, containerView, index,
+ persisted, preferencesHint);
+ case ConditionalUnit7EditPart.VISUAL_ID:
+ return createConditionalUnit_3075(domainElement, containerView,
+ index, persisted, preferencesHint);
+ case ConditionCheckEditPart.VISUAL_ID:
+ return createConditionCheck_3076(domainElement, containerView,
+ index, persisted, preferencesHint);
+ case AtomicUnit6EditPart.VISUAL_ID:
+ return createAtomicUnit_3077(domainElement, containerView, index,
+ persisted, preferencesHint);
+ case AtomicUnit7EditPart.VISUAL_ID:
+ return createAtomicUnit_3078(domainElement, containerView, index,
+ persisted, preferencesHint);
+ }
+ // can't happen, provided #provides(CreateNodeViewOperation) is correct
+ return null;
+ }
+
+ /**
+ * @generated
+ */
+ public Edge createEdge(IAdaptable semanticAdapter, View containerView,
+ String semanticHint, int index, boolean persisted,
+ PreferencesHint preferencesHint) {
+ IElementType elementType = getSemanticElementType(semanticAdapter);
+ String elementTypeHint = ((IHintedType) elementType).getSemanticHint();
+ switch (ComrelVisualIDRegistry.getVisualID(elementTypeHint)) {
+ case SinglePortMappingEditPart.VISUAL_ID:
+ return createSinglePortMapping_4001(
+ getSemanticElement(semanticAdapter), containerView, index,
+ persisted, preferencesHint);
+ case MultiPortMappingEditPart.VISUAL_ID:
+ return createMultiPortMapping_4002(
+ getSemanticElement(semanticAdapter), containerView, index,
+ persisted, preferencesHint);
+ case MultiSinglePortMappingEditPart.VISUAL_ID:
+ return createMultiSinglePortMapping_4003(
+ getSemanticElement(semanticAdapter), containerView, index,
+ persisted, preferencesHint);
+ }
+ // can never happen, provided #provides(CreateEdgeViewOperation) is correct
+ return null;
+ }
+
+ /**
+ * @generated
+ */
+ public Node createSingleInputPort_2001(EObject domainElement,
+ View containerView, int index, boolean persisted,
+ PreferencesHint preferencesHint) {
+ Shape node = NotationFactory.eINSTANCE.createShape();
+ node.setLayoutConstraint(NotationFactory.eINSTANCE.createBounds());
+ node.setType(ComrelVisualIDRegistry
+ .getType(SingleInputPortEditPart.VISUAL_ID));
+ ViewUtil.insertChildView(containerView, node, index, persisted);
+ node.setElement(domainElement);
+ stampShortcut(containerView, node);
+ // initializeFromPreferences
+ final IPreferenceStore prefStore = (IPreferenceStore) preferencesHint
+ .getPreferenceStore();
+
+ org.eclipse.swt.graphics.RGB lineRGB = PreferenceConverter.getColor(
+ prefStore, IPreferenceConstants.PREF_LINE_COLOR);
+ ViewUtil.setStructuralFeatureValue(node,
+ NotationPackage.eINSTANCE.getLineStyle_LineColor(),
+ FigureUtilities.RGBToInteger(lineRGB));
+ FontStyle nodeFontStyle = (FontStyle) node
+ .getStyle(NotationPackage.Literals.FONT_STYLE);
+ if (nodeFontStyle != null) {
+ FontData fontData = PreferenceConverter.getFontData(prefStore,
+ IPreferenceConstants.PREF_DEFAULT_FONT);
+ nodeFontStyle.setFontName(fontData.getName());
+ nodeFontStyle.setFontHeight(fontData.getHeight());
+ nodeFontStyle.setBold((fontData.getStyle() & SWT.BOLD) != 0);
+ nodeFontStyle.setItalic((fontData.getStyle() & SWT.ITALIC) != 0);
+ org.eclipse.swt.graphics.RGB fontRGB = PreferenceConverter
+ .getColor(prefStore, IPreferenceConstants.PREF_FONT_COLOR);
+ nodeFontStyle.setFontColor(FigureUtilities.RGBToInteger(fontRGB)
+ .intValue());
+ }
+ org.eclipse.swt.graphics.RGB fillRGB = PreferenceConverter.getColor(
+ prefStore, IPreferenceConstants.PREF_FILL_COLOR);
+ ViewUtil.setStructuralFeatureValue(node,
+ NotationPackage.eINSTANCE.getFillStyle_FillColor(),
+ FigureUtilities.RGBToInteger(fillRGB));
+ Node label5001 = createLabel(node,
+ ComrelVisualIDRegistry
+ .getType(SingleInputPortNameTypeEditPart.VISUAL_ID));
+ label5001.setLayoutConstraint(NotationFactory.eINSTANCE
+ .createLocation());
+ Location location5001 = (Location) label5001.getLayoutConstraint();
+ location5001.setX(0);
+ location5001.setY(5);
+ return node;
+ }
+
+ /**
+ * @generated
+ */
+ public Node createCartesianQueuedUnit_2002(EObject domainElement,
+ View containerView, int index, boolean persisted,
+ PreferencesHint preferencesHint) {
+ Shape node = NotationFactory.eINSTANCE.createShape();
+ node.getStyles().add(
+ NotationFactory.eINSTANCE.createHintedDiagramLinkStyle());
+ node.setLayoutConstraint(NotationFactory.eINSTANCE.createBounds());
+ node.setType(ComrelVisualIDRegistry
+ .getType(CartesianQueuedUnitEditPart.VISUAL_ID));
+ ViewUtil.insertChildView(containerView, node, index, persisted);
+ node.setElement(domainElement);
+ stampShortcut(containerView, node);
+ // initializeFromPreferences
+ final IPreferenceStore prefStore = (IPreferenceStore) preferencesHint
+ .getPreferenceStore();
+
+ org.eclipse.swt.graphics.RGB lineRGB = PreferenceConverter.getColor(
+ prefStore, IPreferenceConstants.PREF_LINE_COLOR);
+ ViewUtil.setStructuralFeatureValue(node,
+ NotationPackage.eINSTANCE.getLineStyle_LineColor(),
+ FigureUtilities.RGBToInteger(lineRGB));
+ FontStyle nodeFontStyle = (FontStyle) node
+ .getStyle(NotationPackage.Literals.FONT_STYLE);
+ if (nodeFontStyle != null) {
+ FontData fontData = PreferenceConverter.getFontData(prefStore,
+ IPreferenceConstants.PREF_DEFAULT_FONT);
+ nodeFontStyle.setFontName(fontData.getName());
+ nodeFontStyle.setFontHeight(fontData.getHeight());
+ nodeFontStyle.setBold((fontData.getStyle() & SWT.BOLD) != 0);
+ nodeFontStyle.setItalic((fontData.getStyle() & SWT.ITALIC) != 0);
+ org.eclipse.swt.graphics.RGB fontRGB = PreferenceConverter
+ .getColor(prefStore, IPreferenceConstants.PREF_FONT_COLOR);
+ nodeFontStyle.setFontColor(FigureUtilities.RGBToInteger(fontRGB)
+ .intValue());
+ }
+ org.eclipse.swt.graphics.RGB fillRGB = PreferenceConverter.getColor(
+ prefStore, IPreferenceConstants.PREF_FILL_COLOR);
+ ViewUtil.setStructuralFeatureValue(node,
+ NotationPackage.eINSTANCE.getFillStyle_FillColor(),
+ FigureUtilities.RGBToInteger(fillRGB));
+ Node label5080 = createLabel(
+ node,
+ ComrelVisualIDRegistry
+ .getType(CartesianQueuedUnitNameTypeLblStrictEditPart.VISUAL_ID));
+ createCompartment(
+ node,
+ ComrelVisualIDRegistry
+ .getType(CartesianQueuedUnitCartesianQueuedUnitHelperUnitsCompartmentEditPart.VISUAL_ID),
+ true, false, false, false);
+ createCompartment(
+ node,
+ ComrelVisualIDRegistry
+ .getType(CartesianQueuedUnitCartesianQueuedUnitRefactoringUnitCompartmentEditPart.VISUAL_ID),
+ true, false, false, false);
+ return node;
+ }
+
+ /**
+ * @generated
+ */
+ public Node createParallelQueuedUnit_2003(EObject domainElement,
+ View containerView, int index, boolean persisted,
+ PreferencesHint preferencesHint) {
+ Shape node = NotationFactory.eINSTANCE.createShape();
+ node.getStyles().add(
+ NotationFactory.eINSTANCE.createHintedDiagramLinkStyle());
+ node.setLayoutConstraint(NotationFactory.eINSTANCE.createBounds());
+ node.setType(ComrelVisualIDRegistry
+ .getType(ParallelQueuedUnitEditPart.VISUAL_ID));
+ ViewUtil.insertChildView(containerView, node, index, persisted);
+ node.setElement(domainElement);
+ stampShortcut(containerView, node);
+ // initializeFromPreferences
+ final IPreferenceStore prefStore = (IPreferenceStore) preferencesHint
+ .getPreferenceStore();
+
+ org.eclipse.swt.graphics.RGB lineRGB = PreferenceConverter.getColor(
+ prefStore, IPreferenceConstants.PREF_LINE_COLOR);
+ ViewUtil.setStructuralFeatureValue(node,
+ NotationPackage.eINSTANCE.getLineStyle_LineColor(),
+ FigureUtilities.RGBToInteger(lineRGB));
+ FontStyle nodeFontStyle = (FontStyle) node
+ .getStyle(NotationPackage.Literals.FONT_STYLE);
+ if (nodeFontStyle != null) {
+ FontData fontData = PreferenceConverter.getFontData(prefStore,
+ IPreferenceConstants.PREF_DEFAULT_FONT);
+ nodeFontStyle.setFontName(fontData.getName());
+ nodeFontStyle.setFontHeight(fontData.getHeight());
+ nodeFontStyle.setBold((fontData.getStyle() & SWT.BOLD) != 0);
+ nodeFontStyle.setItalic((fontData.getStyle() & SWT.ITALIC) != 0);
+ org.eclipse.swt.graphics.RGB fontRGB = PreferenceConverter
+ .getColor(prefStore, IPreferenceConstants.PREF_FONT_COLOR);
+ nodeFontStyle.setFontColor(FigureUtilities.RGBToInteger(fontRGB)
+ .intValue());
+ }
+ org.eclipse.swt.graphics.RGB fillRGB = PreferenceConverter.getColor(
+ prefStore, IPreferenceConstants.PREF_FILL_COLOR);
+ ViewUtil.setStructuralFeatureValue(node,
+ NotationPackage.eINSTANCE.getFillStyle_FillColor(),
+ FigureUtilities.RGBToInteger(fillRGB));
+ Node label5081 = createLabel(
+ node,
+ ComrelVisualIDRegistry
+ .getType(ParallelQueuedUnitNameTypeLblStrictEditPart.VISUAL_ID));
+ createCompartment(
+ node,
+ ComrelVisualIDRegistry
+ .getType(ParallelQueuedUnitParallelQueuedUnitHelperUnitsCompartment7EditPart.VISUAL_ID),
+ true, false, false, false);
+ createCompartment(
+ node,
+ ComrelVisualIDRegistry
+ .getType(ParallelQueuedUnitParallelQueuedUnitRefactoringUnitsCompartment7EditPart.VISUAL_ID),
+ true, false, false, false);
+ return node;
+ }
+
+ /**
+ * @generated
+ */
+ public Node createSingleQueuedUnit_2004(EObject domainElement,
+ View containerView, int index, boolean persisted,
+ PreferencesHint preferencesHint) {
+ Shape node = NotationFactory.eINSTANCE.createShape();
+ node.getStyles().add(
+ NotationFactory.eINSTANCE.createHintedDiagramLinkStyle());
+ node.setLayoutConstraint(NotationFactory.eINSTANCE.createBounds());
+ node.setType(ComrelVisualIDRegistry
+ .getType(SingleQueuedUnitEditPart.VISUAL_ID));
+ ViewUtil.insertChildView(containerView, node, index, persisted);
+ node.setElement(domainElement);
+ stampShortcut(containerView, node);
+ // initializeFromPreferences
+ final IPreferenceStore prefStore = (IPreferenceStore) preferencesHint
+ .getPreferenceStore();
+
+ org.eclipse.swt.graphics.RGB lineRGB = PreferenceConverter.getColor(
+ prefStore, IPreferenceConstants.PREF_LINE_COLOR);
+ ViewUtil.setStructuralFeatureValue(node,
+ NotationPackage.eINSTANCE.getLineStyle_LineColor(),
+ FigureUtilities.RGBToInteger(lineRGB));
+ FontStyle nodeFontStyle = (FontStyle) node
+ .getStyle(NotationPackage.Literals.FONT_STYLE);
+ if (nodeFontStyle != null) {
+ FontData fontData = PreferenceConverter.getFontData(prefStore,
+ IPreferenceConstants.PREF_DEFAULT_FONT);
+ nodeFontStyle.setFontName(fontData.getName());
+ nodeFontStyle.setFontHeight(fontData.getHeight());
+ nodeFontStyle.setBold((fontData.getStyle() & SWT.BOLD) != 0);
+ nodeFontStyle.setItalic((fontData.getStyle() & SWT.ITALIC) != 0);
+ org.eclipse.swt.graphics.RGB fontRGB = PreferenceConverter
+ .getColor(prefStore, IPreferenceConstants.PREF_FONT_COLOR);
+ nodeFontStyle.setFontColor(FigureUtilities.RGBToInteger(fontRGB)
+ .intValue());
+ }
+ org.eclipse.swt.graphics.RGB fillRGB = PreferenceConverter.getColor(
+ prefStore, IPreferenceConstants.PREF_FILL_COLOR);
+ ViewUtil.setStructuralFeatureValue(node,
+ NotationPackage.eINSTANCE.getFillStyle_FillColor(),
+ FigureUtilities.RGBToInteger(fillRGB));
+ Node label5082 = createLabel(
+ node,
+ ComrelVisualIDRegistry
+ .getType(SingleQueuedUnitNameTypeLblStrictEditPart.VISUAL_ID));
+ createCompartment(
+ node,
+ ComrelVisualIDRegistry
+ .getType(SingleQueuedUnitSingleQueuedUnitHelperUnitsCompartment7EditPart.VISUAL_ID),
+ true, false, false, false);
+ createCompartment(
+ node,
+ ComrelVisualIDRegistry
+ .getType(SingleQueuedUnitSingleQueuedUnitRefactoringUnitCompartment7EditPart.VISUAL_ID),
+ true, false, false, false);
+ return node;
+ }
+
+ /**
+ * @generated
+ */
+ public Node createSequentialUnit_2005(EObject domainElement,
+ View containerView, int index, boolean persisted,
+ PreferencesHint preferencesHint) {
+ Shape node = NotationFactory.eINSTANCE.createShape();
+ node.getStyles().add(
+ NotationFactory.eINSTANCE.createHintedDiagramLinkStyle());
+ node.setLayoutConstraint(NotationFactory.eINSTANCE.createBounds());
+ node.setType(ComrelVisualIDRegistry
+ .getType(SequentialUnitEditPart.VISUAL_ID));
+ ViewUtil.insertChildView(containerView, node, index, persisted);
+ node.setElement(domainElement);
+ stampShortcut(containerView, node);
+ // initializeFromPreferences
+ final IPreferenceStore prefStore = (IPreferenceStore) preferencesHint
+ .getPreferenceStore();
+
+ org.eclipse.swt.graphics.RGB lineRGB = PreferenceConverter.getColor(
+ prefStore, IPreferenceConstants.PREF_LINE_COLOR);
+ ViewUtil.setStructuralFeatureValue(node,
+ NotationPackage.eINSTANCE.getLineStyle_LineColor(),
+ FigureUtilities.RGBToInteger(lineRGB));
+ FontStyle nodeFontStyle = (FontStyle) node
+ .getStyle(NotationPackage.Literals.FONT_STYLE);
+ if (nodeFontStyle != null) {
+ FontData fontData = PreferenceConverter.getFontData(prefStore,
+ IPreferenceConstants.PREF_DEFAULT_FONT);
+ nodeFontStyle.setFontName(fontData.getName());
+ nodeFontStyle.setFontHeight(fontData.getHeight());
+ nodeFontStyle.setBold((fontData.getStyle() & SWT.BOLD) != 0);
+ nodeFontStyle.setItalic((fontData.getStyle() & SWT.ITALIC) != 0);
+ org.eclipse.swt.graphics.RGB fontRGB = PreferenceConverter
+ .getColor(prefStore, IPreferenceConstants.PREF_FONT_COLOR);
+ nodeFontStyle.setFontColor(FigureUtilities.RGBToInteger(fontRGB)
+ .intValue());
+ }
+ org.eclipse.swt.graphics.RGB fillRGB = PreferenceConverter.getColor(
+ prefStore, IPreferenceConstants.PREF_FILL_COLOR);
+ ViewUtil.setStructuralFeatureValue(node,
+ NotationPackage.eINSTANCE.getFillStyle_FillColor(),
+ FigureUtilities.RGBToInteger(fillRGB));
+ Node label5083 = createLabel(
+ node,
+ ComrelVisualIDRegistry
+ .getType(SequentialUnitNameTypeLblStrictEditPart.VISUAL_ID));
+ createCompartment(
+ node,
+ ComrelVisualIDRegistry
+ .getType(SequentialUnitSequentialUnitHelperUnitsCompartment7EditPart.VISUAL_ID),
+ true, false, false, false);
+ createCompartment(
+ node,
+ ComrelVisualIDRegistry
+ .getType(SequentialUnitSequentialUnitRefactoringUnitsCompartment7EditPart.VISUAL_ID),
+ true, false, false, false);
+ return node;
+ }
+
+ /**
+ * @generated
+ */
+ public Node createConditionalUnit_2006(EObject domainElement,
+ View containerView, int index, boolean persisted,
+ PreferencesHint preferencesHint) {
+ Shape node = NotationFactory.eINSTANCE.createShape();
+ node.getStyles().add(
+ NotationFactory.eINSTANCE.createHintedDiagramLinkStyle());
+ node.setLayoutConstraint(NotationFactory.eINSTANCE.createBounds());
+ node.setType(ComrelVisualIDRegistry
+ .getType(ConditionalUnitEditPart.VISUAL_ID));
+ ViewUtil.insertChildView(containerView, node, index, persisted);
+ node.setElement(domainElement);
+ stampShortcut(containerView, node);
+ // initializeFromPreferences
+ final IPreferenceStore prefStore = (IPreferenceStore) preferencesHint
+ .getPreferenceStore();
+
+ org.eclipse.swt.graphics.RGB lineRGB = PreferenceConverter.getColor(
+ prefStore, IPreferenceConstants.PREF_LINE_COLOR);
+ ViewUtil.setStructuralFeatureValue(node,
+ NotationPackage.eINSTANCE.getLineStyle_LineColor(),
+ FigureUtilities.RGBToInteger(lineRGB));
+ FontStyle nodeFontStyle = (FontStyle) node
+ .getStyle(NotationPackage.Literals.FONT_STYLE);
+ if (nodeFontStyle != null) {
+ FontData fontData = PreferenceConverter.getFontData(prefStore,
+ IPreferenceConstants.PREF_DEFAULT_FONT);
+ nodeFontStyle.setFontName(fontData.getName());
+ nodeFontStyle.setFontHeight(fontData.getHeight());
+ nodeFontStyle.setBold((fontData.getStyle() & SWT.BOLD) != 0);
+ nodeFontStyle.setItalic((fontData.getStyle() & SWT.ITALIC) != 0);
+ org.eclipse.swt.graphics.RGB fontRGB = PreferenceConverter
+ .getColor(prefStore, IPreferenceConstants.PREF_FONT_COLOR);
+ nodeFontStyle.setFontColor(FigureUtilities.RGBToInteger(fontRGB)
+ .intValue());
+ }
+ org.eclipse.swt.graphics.RGB fillRGB = PreferenceConverter.getColor(
+ prefStore, IPreferenceConstants.PREF_FILL_COLOR);
+ ViewUtil.setStructuralFeatureValue(node,
+ NotationPackage.eINSTANCE.getFillStyle_FillColor(),
+ FigureUtilities.RGBToInteger(fillRGB));
+ Node label5084 = createLabel(node,
+ ComrelVisualIDRegistry
+ .getType(ConditionalUnitNameTypeEditPart.VISUAL_ID));
+ createCompartment(
+ node,
+ ComrelVisualIDRegistry
+ .getType(ConditionalUnitConditionalUnitIfCompartment7EditPart.VISUAL_ID),
+ true, false, false, false);
+ createCompartment(
+ node,
+ ComrelVisualIDRegistry
+ .getType(ConditionalUnitConditionalUnitHelperUnitsCompartment7EditPart.VISUAL_ID),
+ true, false, false, false);
+ createCompartment(
+ node,
+ ComrelVisualIDRegistry
+ .getType(ConditionalUnitConditionalUnitThenCompartment7EditPart.VISUAL_ID),
+ true, false, false, false);
+ createCompartment(
+ node,
+ ComrelVisualIDRegistry
+ .getType(ConditionalUnitConditionalUnitElseCompartment7EditPart.VISUAL_ID),
+ true, false, false, false);
+ return node;
+ }
+
+ /**
+ * @generated
+ */
+ public Node createAtomicUnit_2007(EObject domainElement,
+ View containerView, int index, boolean persisted,
+ PreferencesHint preferencesHint) {
+ Shape node = NotationFactory.eINSTANCE.createShape();
+ node.setLayoutConstraint(NotationFactory.eINSTANCE.createBounds());
+ node.setType(ComrelVisualIDRegistry
+ .getType(AtomicUnitEditPart.VISUAL_ID));
+ ViewUtil.insertChildView(containerView, node, index, persisted);
+ node.setElement(domainElement);
+ stampShortcut(containerView, node);
+ // initializeFromPreferences
+ final IPreferenceStore prefStore = (IPreferenceStore) preferencesHint
+ .getPreferenceStore();
+
+ org.eclipse.swt.graphics.RGB lineRGB = PreferenceConverter.getColor(
+ prefStore, IPreferenceConstants.PREF_LINE_COLOR);
+ ViewUtil.setStructuralFeatureValue(node,
+ NotationPackage.eINSTANCE.getLineStyle_LineColor(),
+ FigureUtilities.RGBToInteger(lineRGB));
+ FontStyle nodeFontStyle = (FontStyle) node
+ .getStyle(NotationPackage.Literals.FONT_STYLE);
+ if (nodeFontStyle != null) {
+ FontData fontData = PreferenceConverter.getFontData(prefStore,
+ IPreferenceConstants.PREF_DEFAULT_FONT);
+ nodeFontStyle.setFontName(fontData.getName());
+ nodeFontStyle.setFontHeight(fontData.getHeight());
+ nodeFontStyle.setBold((fontData.getStyle() & SWT.BOLD) != 0);
+ nodeFontStyle.setItalic((fontData.getStyle() & SWT.ITALIC) != 0);
+ org.eclipse.swt.graphics.RGB fontRGB = PreferenceConverter
+ .getColor(prefStore, IPreferenceConstants.PREF_FONT_COLOR);
+ nodeFontStyle.setFontColor(FigureUtilities.RGBToInteger(fontRGB)
+ .intValue());
+ }
+ org.eclipse.swt.graphics.RGB fillRGB = PreferenceConverter.getColor(
+ prefStore, IPreferenceConstants.PREF_FILL_COLOR);
+ ViewUtil.setStructuralFeatureValue(node,
+ NotationPackage.eINSTANCE.getFillStyle_FillColor(),
+ FigureUtilities.RGBToInteger(fillRGB));
+ Node label5085 = createLabel(node,
+ ComrelVisualIDRegistry
+ .getType(AtomicUnitLabelTypeEditPart.VISUAL_ID));
+ return node;
+ }
+
+ /**
+ * @generated
+ */
+ public Node createSingleInputPort_3001(EObject domainElement,
+ View containerView, int index, boolean persisted,
+ PreferencesHint preferencesHint) {
+ Shape node = NotationFactory.eINSTANCE.createShape();
+ node.setLayoutConstraint(NotationFactory.eINSTANCE.createBounds());
+ node.setType(ComrelVisualIDRegistry
+ .getType(SingleInputPort2EditPart.VISUAL_ID));
+ ViewUtil.insertChildView(containerView, node, index, persisted);
+ node.setElement(domainElement);
+ // initializeFromPreferences
+ final IPreferenceStore prefStore = (IPreferenceStore) preferencesHint
+ .getPreferenceStore();
+
+ org.eclipse.swt.graphics.RGB lineRGB = PreferenceConverter.getColor(
+ prefStore, IPreferenceConstants.PREF_LINE_COLOR);
+ ViewUtil.setStructuralFeatureValue(node,
+ NotationPackage.eINSTANCE.getLineStyle_LineColor(),
+ FigureUtilities.RGBToInteger(lineRGB));
+ FontStyle nodeFontStyle = (FontStyle) node
+ .getStyle(NotationPackage.Literals.FONT_STYLE);
+ if (nodeFontStyle != null) {
+ FontData fontData = PreferenceConverter.getFontData(prefStore,
+ IPreferenceConstants.PREF_DEFAULT_FONT);
+ nodeFontStyle.setFontName(fontData.getName());
+ nodeFontStyle.setFontHeight(fontData.getHeight());
+ nodeFontStyle.setBold((fontData.getStyle() & SWT.BOLD) != 0);
+ nodeFontStyle.setItalic((fontData.getStyle() & SWT.ITALIC) != 0);
+ org.eclipse.swt.graphics.RGB fontRGB = PreferenceConverter
+ .getColor(prefStore, IPreferenceConstants.PREF_FONT_COLOR);
+ nodeFontStyle.setFontColor(FigureUtilities.RGBToInteger(fontRGB)
+ .intValue());
+ }
+ org.eclipse.swt.graphics.RGB fillRGB = PreferenceConverter.getColor(
+ prefStore, IPreferenceConstants.PREF_FILL_COLOR);
+ ViewUtil.setStructuralFeatureValue(node,
+ NotationPackage.eINSTANCE.getFillStyle_FillColor(),
+ FigureUtilities.RGBToInteger(fillRGB));
+ Node label5002 = createLabel(node,
+ ComrelVisualIDRegistry
+ .getType(SingleInputPortNameType2EditPart.VISUAL_ID));
+ label5002.setLayoutConstraint(NotationFactory.eINSTANCE
+ .createLocation());
+ Location location5002 = (Location) label5002.getLayoutConstraint();
+ location5002.setX(0);
+ location5002.setY(5);
+ return node;
+ }
+
+ /**
+ * @generated
+ */
+ public Node createMultiInputPort_3002(EObject domainElement,
+ View containerView, int index, boolean persisted,
+ PreferencesHint preferencesHint) {
+ Node node = NotationFactory.eINSTANCE.createNode();
+ node.getStyles()
+ .add(NotationFactory.eINSTANCE.createDescriptionStyle());
+ node.getStyles().add(NotationFactory.eINSTANCE.createFontStyle());
+ node.getStyles().add(NotationFactory.eINSTANCE.createFillStyle());
+ node.setLayoutConstraint(NotationFactory.eINSTANCE.createBounds());
+ node.setType(ComrelVisualIDRegistry
+ .getType(MultiInputPortEditPart.VISUAL_ID));
+ ViewUtil.insertChildView(containerView, node, index, persisted);
+ node.setElement(domainElement);
+ // initializeFromPreferences
+ final IPreferenceStore prefStore = (IPreferenceStore) preferencesHint
+ .getPreferenceStore();
+ FontStyle nodeFontStyle = (FontStyle) node
+ .getStyle(NotationPackage.Literals.FONT_STYLE);
+ if (nodeFontStyle != null) {
+ FontData fontData = PreferenceConverter.getFontData(prefStore,
+ IPreferenceConstants.PREF_DEFAULT_FONT);
+ nodeFontStyle.setFontName(fontData.getName());
+ nodeFontStyle.setFontHeight(fontData.getHeight());
+ nodeFontStyle.setBold((fontData.getStyle() & SWT.BOLD) != 0);
+ nodeFontStyle.setItalic((fontData.getStyle() & SWT.ITALIC) != 0);
+ org.eclipse.swt.graphics.RGB fontRGB = PreferenceConverter
+ .getColor(prefStore, IPreferenceConstants.PREF_FONT_COLOR);
+ nodeFontStyle.setFontColor(FigureUtilities.RGBToInteger(fontRGB)
+ .intValue());
+ }
+ org.eclipse.swt.graphics.RGB fillRGB = PreferenceConverter.getColor(
+ prefStore, IPreferenceConstants.PREF_FILL_COLOR);
+ ViewUtil.setStructuralFeatureValue(node,
+ NotationPackage.eINSTANCE.getFillStyle_FillColor(),
+ FigureUtilities.RGBToInteger(fillRGB));
+ Node label5003 = createLabel(node,
+ ComrelVisualIDRegistry
+ .getType(MultiInputPortNameTypeEditPart.VISUAL_ID));
+ label5003.setLayoutConstraint(NotationFactory.eINSTANCE
+ .createLocation());
+ Location location5003 = (Location) label5003.getLayoutConstraint();
+ location5003.setX(0);
+ location5003.setY(5);
+ return node;
+ }
+
+ /**
+ * @generated
+ */
+ public Node createCartesianQueuedUnit_3003(EObject domainElement,
+ View containerView, int index, boolean persisted,
+ PreferencesHint preferencesHint) {
+ Shape node = NotationFactory.eINSTANCE.createShape();
+ node.getStyles().add(
+ NotationFactory.eINSTANCE.createHintedDiagramLinkStyle());
+ node.setLayoutConstraint(NotationFactory.eINSTANCE.createBounds());
+ node.setType(ComrelVisualIDRegistry
+ .getType(CartesianQueuedUnit2EditPart.VISUAL_ID));
+ ViewUtil.insertChildView(containerView, node, index, persisted);
+ node.setElement(domainElement);
+ // initializeFromPreferences
+ final IPreferenceStore prefStore = (IPreferenceStore) preferencesHint
+ .getPreferenceStore();
+
+ org.eclipse.swt.graphics.RGB lineRGB = PreferenceConverter.getColor(
+ prefStore, IPreferenceConstants.PREF_LINE_COLOR);
+ ViewUtil.setStructuralFeatureValue(node,
+ NotationPackage.eINSTANCE.getLineStyle_LineColor(),
+ FigureUtilities.RGBToInteger(lineRGB));
+ FontStyle nodeFontStyle = (FontStyle) node
+ .getStyle(NotationPackage.Literals.FONT_STYLE);
+ if (nodeFontStyle != null) {
+ FontData fontData = PreferenceConverter.getFontData(prefStore,
+ IPreferenceConstants.PREF_DEFAULT_FONT);
+ nodeFontStyle.setFontName(fontData.getName());
+ nodeFontStyle.setFontHeight(fontData.getHeight());
+ nodeFontStyle.setBold((fontData.getStyle() & SWT.BOLD) != 0);
+ nodeFontStyle.setItalic((fontData.getStyle() & SWT.ITALIC) != 0);
+ org.eclipse.swt.graphics.RGB fontRGB = PreferenceConverter
+ .getColor(prefStore, IPreferenceConstants.PREF_FONT_COLOR);
+ nodeFontStyle.setFontColor(FigureUtilities.RGBToInteger(fontRGB)
+ .intValue());
+ }
+ org.eclipse.swt.graphics.RGB fillRGB = PreferenceConverter.getColor(
+ prefStore, IPreferenceConstants.PREF_FILL_COLOR);
+ ViewUtil.setStructuralFeatureValue(node,
+ NotationPackage.eINSTANCE.getFillStyle_FillColor(),
+ FigureUtilities.RGBToInteger(fillRGB));
+ Node label5079 = createLabel(
+ node,
+ ComrelVisualIDRegistry
+ .getType(CartesianQueuedUnitNameTypeLblStrict2EditPart.VISUAL_ID));
+ createCompartment(
+ node,
+ ComrelVisualIDRegistry
+ .getType(CartesianQueuedUnitCartesianQueuedUnitHelperUnitsCompartment2EditPart.VISUAL_ID),
+ true, false, false, false);
+ createCompartment(
+ node,
+ ComrelVisualIDRegistry
+ .getType(CartesianQueuedUnitCartesianQueuedUnitRefactoringUnitCompartment2EditPart.VISUAL_ID),
+ true, false, false, false);
+ return node;
+ }
+
+ /**
+ * @generated
+ */
+ public Node createParallelQueuedUnit_3004(EObject domainElement,
+ View containerView, int index, boolean persisted,
+ PreferencesHint preferencesHint) {
+ Shape node = NotationFactory.eINSTANCE.createShape();
+ node.getStyles().add(
+ NotationFactory.eINSTANCE.createHintedDiagramLinkStyle());
+ node.setLayoutConstraint(NotationFactory.eINSTANCE.createBounds());
+ node.setType(ComrelVisualIDRegistry
+ .getType(ParallelQueuedUnit2EditPart.VISUAL_ID));
+ ViewUtil.insertChildView(containerView, node, index, persisted);
+ node.setElement(domainElement);
+ // initializeFromPreferences
+ final IPreferenceStore prefStore = (IPreferenceStore) preferencesHint
+ .getPreferenceStore();
+
+ org.eclipse.swt.graphics.RGB lineRGB = PreferenceConverter.getColor(
+ prefStore, IPreferenceConstants.PREF_LINE_COLOR);
+ ViewUtil.setStructuralFeatureValue(node,
+ NotationPackage.eINSTANCE.getLineStyle_LineColor(),
+ FigureUtilities.RGBToInteger(lineRGB));
+ FontStyle nodeFontStyle = (FontStyle) node
+ .getStyle(NotationPackage.Literals.FONT_STYLE);
+ if (nodeFontStyle != null) {
+ FontData fontData = PreferenceConverter.getFontData(prefStore,
+ IPreferenceConstants.PREF_DEFAULT_FONT);
+ nodeFontStyle.setFontName(fontData.getName());
+ nodeFontStyle.setFontHeight(fontData.getHeight());
+ nodeFontStyle.setBold((fontData.getStyle() & SWT.BOLD) != 0);
+ nodeFontStyle.setItalic((fontData.getStyle() & SWT.ITALIC) != 0);
+ org.eclipse.swt.graphics.RGB fontRGB = PreferenceConverter
+ .getColor(prefStore, IPreferenceConstants.PREF_FONT_COLOR);
+ nodeFontStyle.setFontColor(FigureUtilities.RGBToInteger(fontRGB)
+ .intValue());
+ }
+ org.eclipse.swt.graphics.RGB fillRGB = PreferenceConverter.getColor(
+ prefStore, IPreferenceConstants.PREF_FILL_COLOR);
+ ViewUtil.setStructuralFeatureValue(node,
+ NotationPackage.eINSTANCE.getFillStyle_FillColor(),
+ FigureUtilities.RGBToInteger(fillRGB));
+ Node label5078 = createLabel(
+ node,
+ ComrelVisualIDRegistry
+ .getType(ParallelQueuedUnitNameTypeLblStrict2EditPart.VISUAL_ID));
+ createCompartment(
+ node,
+ ComrelVisualIDRegistry
+ .getType(ParallelQueuedUnitParallelQueuedUnitHelperUnitsCompartmentEditPart.VISUAL_ID),
+ true, false, false, false);
+ createCompartment(
+ node,
+ ComrelVisualIDRegistry
+ .getType(ParallelQueuedUnitParallelQueuedUnitRefactoringUnitsCompartmentEditPart.VISUAL_ID),
+ true, false, false, false);
+ return node;
+ }
+
+ /**
+ * @generated
+ */
+ public Node createSingleInputPort_3005(EObject domainElement,
+ View containerView, int index, boolean persisted,
+ PreferencesHint preferencesHint) {
+ Shape node = NotationFactory.eINSTANCE.createShape();
+ node.setLayoutConstraint(NotationFactory.eINSTANCE.createBounds());
+ node.setType(ComrelVisualIDRegistry
+ .getType(SingleInputPort3EditPart.VISUAL_ID));
+ ViewUtil.insertChildView(containerView, node, index, persisted);
+ node.setElement(domainElement);
+ // initializeFromPreferences
+ final IPreferenceStore prefStore = (IPreferenceStore) preferencesHint
+ .getPreferenceStore();
+
+ org.eclipse.swt.graphics.RGB lineRGB = PreferenceConverter.getColor(
+ prefStore, IPreferenceConstants.PREF_LINE_COLOR);
+ ViewUtil.setStructuralFeatureValue(node,
+ NotationPackage.eINSTANCE.getLineStyle_LineColor(),
+ FigureUtilities.RGBToInteger(lineRGB));
+ FontStyle nodeFontStyle = (FontStyle) node
+ .getStyle(NotationPackage.Literals.FONT_STYLE);
+ if (nodeFontStyle != null) {
+ FontData fontData = PreferenceConverter.getFontData(prefStore,
+ IPreferenceConstants.PREF_DEFAULT_FONT);
+ nodeFontStyle.setFontName(fontData.getName());
+ nodeFontStyle.setFontHeight(fontData.getHeight());
+ nodeFontStyle.setBold((fontData.getStyle() & SWT.BOLD) != 0);
+ nodeFontStyle.setItalic((fontData.getStyle() & SWT.ITALIC) != 0);
+ org.eclipse.swt.graphics.RGB fontRGB = PreferenceConverter
+ .getColor(prefStore, IPreferenceConstants.PREF_FONT_COLOR);
+ nodeFontStyle.setFontColor(FigureUtilities.RGBToInteger(fontRGB)
+ .intValue());
+ }
+ org.eclipse.swt.graphics.RGB fillRGB = PreferenceConverter.getColor(
+ prefStore, IPreferenceConstants.PREF_FILL_COLOR);
+ ViewUtil.setStructuralFeatureValue(node,
+ NotationPackage.eINSTANCE.getFillStyle_FillColor(),
+ FigureUtilities.RGBToInteger(fillRGB));
+ Node label5004 = createLabel(node,
+ ComrelVisualIDRegistry
+ .getType(SingleInputPortNameType3EditPart.VISUAL_ID));
+ label5004.setLayoutConstraint(NotationFactory.eINSTANCE
+ .createLocation());
+ Location location5004 = (Location) label5004.getLayoutConstraint();
+ location5004.setX(0);
+ location5004.setY(5);
+ return node;
+ }
+
+ /**
+ * @generated
+ */
+ public Node createMultiInputPort_3006(EObject domainElement,
+ View containerView, int index, boolean persisted,
+ PreferencesHint preferencesHint) {
+ Node node = NotationFactory.eINSTANCE.createNode();
+ node.getStyles()
+ .add(NotationFactory.eINSTANCE.createDescriptionStyle());
+ node.getStyles().add(NotationFactory.eINSTANCE.createFontStyle());
+ node.getStyles().add(NotationFactory.eINSTANCE.createFillStyle());
+ node.setLayoutConstraint(NotationFactory.eINSTANCE.createBounds());
+ node.setType(ComrelVisualIDRegistry
+ .getType(MultiInputPort2EditPart.VISUAL_ID));
+ ViewUtil.insertChildView(containerView, node, index, persisted);
+ node.setElement(domainElement);
+ // initializeFromPreferences
+ final IPreferenceStore prefStore = (IPreferenceStore) preferencesHint
+ .getPreferenceStore();
+ FontStyle nodeFontStyle = (FontStyle) node
+ .getStyle(NotationPackage.Literals.FONT_STYLE);
+ if (nodeFontStyle != null) {
+ FontData fontData = PreferenceConverter.getFontData(prefStore,
+ IPreferenceConstants.PREF_DEFAULT_FONT);
+ nodeFontStyle.setFontName(fontData.getName());
+ nodeFontStyle.setFontHeight(fontData.getHeight());
+ nodeFontStyle.setBold((fontData.getStyle() & SWT.BOLD) != 0);
+ nodeFontStyle.setItalic((fontData.getStyle() & SWT.ITALIC) != 0);
+ org.eclipse.swt.graphics.RGB fontRGB = PreferenceConverter
+ .getColor(prefStore, IPreferenceConstants.PREF_FONT_COLOR);
+ nodeFontStyle.setFontColor(FigureUtilities.RGBToInteger(fontRGB)
+ .intValue());
+ }
+ org.eclipse.swt.graphics.RGB fillRGB = PreferenceConverter.getColor(
+ prefStore, IPreferenceConstants.PREF_FILL_COLOR);
+ ViewUtil.setStructuralFeatureValue(node,
+ NotationPackage.eINSTANCE.getFillStyle_FillColor(),
+ FigureUtilities.RGBToInteger(fillRGB));
+ Node label5005 = createLabel(node,
+ ComrelVisualIDRegistry
+ .getType(MultiInputPortNameType2EditPart.VISUAL_ID));
+ label5005.setLayoutConstraint(NotationFactory.eINSTANCE
+ .createLocation());
+ Location location5005 = (Location) label5005.getLayoutConstraint();
+ location5005.setX(0);
+ location5005.setY(5);
+ return node;
+ }
+
+ /**
+ * @generated
+ */
+ public Node createCartesianQueuedUnit_3007(EObject domainElement,
+ View containerView, int index, boolean persisted,
+ PreferencesHint preferencesHint) {
+ Shape node = NotationFactory.eINSTANCE.createShape();
+ node.getStyles().add(
+ NotationFactory.eINSTANCE.createHintedDiagramLinkStyle());
+ node.setLayoutConstraint(NotationFactory.eINSTANCE.createBounds());
+ node.setType(ComrelVisualIDRegistry
+ .getType(CartesianQueuedUnit3EditPart.VISUAL_ID));
+ ViewUtil.insertChildView(containerView, node, index, persisted);
+ node.setElement(domainElement);
+ // initializeFromPreferences
+ final IPreferenceStore prefStore = (IPreferenceStore) preferencesHint
+ .getPreferenceStore();
+
+ org.eclipse.swt.graphics.RGB lineRGB = PreferenceConverter.getColor(
+ prefStore, IPreferenceConstants.PREF_LINE_COLOR);
+ ViewUtil.setStructuralFeatureValue(node,
+ NotationPackage.eINSTANCE.getLineStyle_LineColor(),
+ FigureUtilities.RGBToInteger(lineRGB));
+ FontStyle nodeFontStyle = (FontStyle) node
+ .getStyle(NotationPackage.Literals.FONT_STYLE);
+ if (nodeFontStyle != null) {
+ FontData fontData = PreferenceConverter.getFontData(prefStore,
+ IPreferenceConstants.PREF_DEFAULT_FONT);
+ nodeFontStyle.setFontName(fontData.getName());
+ nodeFontStyle.setFontHeight(fontData.getHeight());
+ nodeFontStyle.setBold((fontData.getStyle() & SWT.BOLD) != 0);
+ nodeFontStyle.setItalic((fontData.getStyle() & SWT.ITALIC) != 0);
+ org.eclipse.swt.graphics.RGB fontRGB = PreferenceConverter
+ .getColor(prefStore, IPreferenceConstants.PREF_FONT_COLOR);
+ nodeFontStyle.setFontColor(FigureUtilities.RGBToInteger(fontRGB)
+ .intValue());
+ }
+ org.eclipse.swt.graphics.RGB fillRGB = PreferenceConverter.getColor(
+ prefStore, IPreferenceConstants.PREF_FILL_COLOR);
+ ViewUtil.setStructuralFeatureValue(node,
+ NotationPackage.eINSTANCE.getFillStyle_FillColor(),
+ FigureUtilities.RGBToInteger(fillRGB));
+ Node label5077 = createLabel(
+ node,
+ ComrelVisualIDRegistry
+ .getType(CartesianQueuedUnitNameTypeLblStrict3EditPart.VISUAL_ID));
+ createCompartment(
+ node,
+ ComrelVisualIDRegistry
+ .getType(CartesianQueuedUnitCartesianQueuedUnitHelperUnitsCompartment3EditPart.VISUAL_ID),
+ true, false, false, false);
+ createCompartment(
+ node,
+ ComrelVisualIDRegistry
+ .getType(CartesianQueuedUnitCartesianQueuedUnitRefactoringUnitCompartment3EditPart.VISUAL_ID),
+ true, false, false, false);
+ return node;
+ }
+
+ /**
+ * @generated
+ */
+ public Node createSingleFeatureUnit_3008(EObject domainElement,
+ View containerView, int index, boolean persisted,
+ PreferencesHint preferencesHint) {
+ Shape node = NotationFactory.eINSTANCE.createShape();
+ node.setLayoutConstraint(NotationFactory.eINSTANCE.createBounds());
+ node.setType(ComrelVisualIDRegistry
+ .getType(SingleFeatureUnitEditPart.VISUAL_ID));
+ ViewUtil.insertChildView(containerView, node, index, persisted);
+ node.setElement(domainElement);
+ // initializeFromPreferences
+ final IPreferenceStore prefStore = (IPreferenceStore) preferencesHint
+ .getPreferenceStore();
+
+ org.eclipse.swt.graphics.RGB lineRGB = PreferenceConverter.getColor(
+ prefStore, IPreferenceConstants.PREF_LINE_COLOR);
+ ViewUtil.setStructuralFeatureValue(node,
+ NotationPackage.eINSTANCE.getLineStyle_LineColor(),
+ FigureUtilities.RGBToInteger(lineRGB));
+ FontStyle nodeFontStyle = (FontStyle) node
+ .getStyle(NotationPackage.Literals.FONT_STYLE);
+ if (nodeFontStyle != null) {
+ FontData fontData = PreferenceConverter.getFontData(prefStore,
+ IPreferenceConstants.PREF_DEFAULT_FONT);
+ nodeFontStyle.setFontName(fontData.getName());
+ nodeFontStyle.setFontHeight(fontData.getHeight());
+ nodeFontStyle.setBold((fontData.getStyle() & SWT.BOLD) != 0);
+ nodeFontStyle.setItalic((fontData.getStyle() & SWT.ITALIC) != 0);
+ org.eclipse.swt.graphics.RGB fontRGB = PreferenceConverter
+ .getColor(prefStore, IPreferenceConstants.PREF_FONT_COLOR);
+ nodeFontStyle.setFontColor(FigureUtilities.RGBToInteger(fontRGB)
+ .intValue());
+ }
+ org.eclipse.swt.graphics.RGB fillRGB = PreferenceConverter.getColor(
+ prefStore, IPreferenceConstants.PREF_FILL_COLOR);
+ ViewUtil.setStructuralFeatureValue(node,
+ NotationPackage.eINSTANCE.getFillStyle_FillColor(),
+ FigureUtilities.RGBToInteger(fillRGB));
+ Node label5009 = createLabel(node,
+ ComrelVisualIDRegistry
+ .getType(SingleFeatureUnitNameTypeEditPart.VISUAL_ID));
+ return node;
+ }
+
+ /**
+ * @generated
+ */
+ public Node createSingleInputPort_3009(EObject domainElement,
+ View containerView, int index, boolean persisted,
+ PreferencesHint preferencesHint) {
+ Shape node = NotationFactory.eINSTANCE.createShape();
+ node.setLayoutConstraint(NotationFactory.eINSTANCE.createBounds());
+ node.setType(ComrelVisualIDRegistry
+ .getType(SingleInputPort4EditPart.VISUAL_ID));
+ ViewUtil.insertChildView(containerView, node, index, persisted);
+ node.setElement(domainElement);
+ // initializeFromPreferences
+ final IPreferenceStore prefStore = (IPreferenceStore) preferencesHint
+ .getPreferenceStore();
+
+ org.eclipse.swt.graphics.RGB lineRGB = PreferenceConverter.getColor(
+ prefStore, IPreferenceConstants.PREF_LINE_COLOR);
+ ViewUtil.setStructuralFeatureValue(node,
+ NotationPackage.eINSTANCE.getLineStyle_LineColor(),
+ FigureUtilities.RGBToInteger(lineRGB));
+ FontStyle nodeFontStyle = (FontStyle) node
+ .getStyle(NotationPackage.Literals.FONT_STYLE);
+ if (nodeFontStyle != null) {
+ FontData fontData = PreferenceConverter.getFontData(prefStore,
+ IPreferenceConstants.PREF_DEFAULT_FONT);
+ nodeFontStyle.setFontName(fontData.getName());
+ nodeFontStyle.setFontHeight(fontData.getHeight());
+ nodeFontStyle.setBold((fontData.getStyle() & SWT.BOLD) != 0);
+ nodeFontStyle.setItalic((fontData.getStyle() & SWT.ITALIC) != 0);
+ org.eclipse.swt.graphics.RGB fontRGB = PreferenceConverter
+ .getColor(prefStore, IPreferenceConstants.PREF_FONT_COLOR);
+ nodeFontStyle.setFontColor(FigureUtilities.RGBToInteger(fontRGB)
+ .intValue());
+ }
+ org.eclipse.swt.graphics.RGB fillRGB = PreferenceConverter.getColor(
+ prefStore, IPreferenceConstants.PREF_FILL_COLOR);
+ ViewUtil.setStructuralFeatureValue(node,
+ NotationPackage.eINSTANCE.getFillStyle_FillColor(),
+ FigureUtilities.RGBToInteger(fillRGB));
+ Node label5006 = createLabel(node,
+ ComrelVisualIDRegistry
+ .getType(SingleInputPortNameType4EditPart.VISUAL_ID));
+ label5006.setLayoutConstraint(NotationFactory.eINSTANCE
+ .createLocation());
+ Location location5006 = (Location) label5006.getLayoutConstraint();
+ location5006.setX(0);
+ location5006.setY(5);
+ return node;
+ }
+
+ /**
+ * @generated
+ */
+ public Node createMultiInputPort_3010(EObject domainElement,
+ View containerView, int index, boolean persisted,
+ PreferencesHint preferencesHint) {
+ Node node = NotationFactory.eINSTANCE.createNode();
+ node.getStyles()
+ .add(NotationFactory.eINSTANCE.createDescriptionStyle());
+ node.getStyles().add(NotationFactory.eINSTANCE.createFontStyle());
+ node.getStyles().add(NotationFactory.eINSTANCE.createFillStyle());
+ node.setLayoutConstraint(NotationFactory.eINSTANCE.createBounds());
+ node.setType(ComrelVisualIDRegistry
+ .getType(MultiInputPort3EditPart.VISUAL_ID));
+ ViewUtil.insertChildView(containerView, node, index, persisted);
+ node.setElement(domainElement);
+ // initializeFromPreferences
+ final IPreferenceStore prefStore = (IPreferenceStore) preferencesHint
+ .getPreferenceStore();
+ FontStyle nodeFontStyle = (FontStyle) node
+ .getStyle(NotationPackage.Literals.FONT_STYLE);
+ if (nodeFontStyle != null) {
+ FontData fontData = PreferenceConverter.getFontData(prefStore,
+ IPreferenceConstants.PREF_DEFAULT_FONT);
+ nodeFontStyle.setFontName(fontData.getName());
+ nodeFontStyle.setFontHeight(fontData.getHeight());
+ nodeFontStyle.setBold((fontData.getStyle() & SWT.BOLD) != 0);
+ nodeFontStyle.setItalic((fontData.getStyle() & SWT.ITALIC) != 0);
+ org.eclipse.swt.graphics.RGB fontRGB = PreferenceConverter
+ .getColor(prefStore, IPreferenceConstants.PREF_FONT_COLOR);
+ nodeFontStyle.setFontColor(FigureUtilities.RGBToInteger(fontRGB)
+ .intValue());
+ }
+ org.eclipse.swt.graphics.RGB fillRGB = PreferenceConverter.getColor(
+ prefStore, IPreferenceConstants.PREF_FILL_COLOR);
+ ViewUtil.setStructuralFeatureValue(node,
+ NotationPackage.eINSTANCE.getFillStyle_FillColor(),
+ FigureUtilities.RGBToInteger(fillRGB));
+ Node label5007 = createLabel(node,
+ ComrelVisualIDRegistry
+ .getType(MultiInputPortNameType3EditPart.VISUAL_ID));
+ label5007.setLayoutConstraint(NotationFactory.eINSTANCE
+ .createLocation());
+ Location location5007 = (Location) label5007.getLayoutConstraint();
+ location5007.setX(0);
+ location5007.setY(5);
+ return node;
+ }
+
+ /**
+ * @generated
+ */
+ public Node createSingleOutputPort_3011(EObject domainElement,
+ View containerView, int index, boolean persisted,
+ PreferencesHint preferencesHint) {
+ Shape node = NotationFactory.eINSTANCE.createShape();
+ node.setLayoutConstraint(NotationFactory.eINSTANCE.createBounds());
+ node.setType(ComrelVisualIDRegistry
+ .getType(SingleOutputPortEditPart.VISUAL_ID));
+ ViewUtil.insertChildView(containerView, node, index, persisted);
+ node.setElement(domainElement);
+ // initializeFromPreferences
+ final IPreferenceStore prefStore = (IPreferenceStore) preferencesHint
+ .getPreferenceStore();
+
+ org.eclipse.swt.graphics.RGB lineRGB = PreferenceConverter.getColor(
+ prefStore, IPreferenceConstants.PREF_LINE_COLOR);
+ ViewUtil.setStructuralFeatureValue(node,
+ NotationPackage.eINSTANCE.getLineStyle_LineColor(),
+ FigureUtilities.RGBToInteger(lineRGB));
+ FontStyle nodeFontStyle = (FontStyle) node
+ .getStyle(NotationPackage.Literals.FONT_STYLE);
+ if (nodeFontStyle != null) {
+ FontData fontData = PreferenceConverter.getFontData(prefStore,
+ IPreferenceConstants.PREF_DEFAULT_FONT);
+ nodeFontStyle.setFontName(fontData.getName());
+ nodeFontStyle.setFontHeight(fontData.getHeight());
+ nodeFontStyle.setBold((fontData.getStyle() & SWT.BOLD) != 0);
+ nodeFontStyle.setItalic((fontData.getStyle() & SWT.ITALIC) != 0);
+ org.eclipse.swt.graphics.RGB fontRGB = PreferenceConverter
+ .getColor(prefStore, IPreferenceConstants.PREF_FONT_COLOR);
+ nodeFontStyle.setFontColor(FigureUtilities.RGBToInteger(fontRGB)
+ .intValue());
+ }
+ org.eclipse.swt.graphics.RGB fillRGB = PreferenceConverter.getColor(
+ prefStore, IPreferenceConstants.PREF_FILL_COLOR);
+ ViewUtil.setStructuralFeatureValue(node,
+ NotationPackage.eINSTANCE.getFillStyle_FillColor(),
+ FigureUtilities.RGBToInteger(fillRGB));
+ Node label5008 = createLabel(node,
+ ComrelVisualIDRegistry
+ .getType(SingleOutputPortNameTypeEditPart.VISUAL_ID));
+ label5008.setLayoutConstraint(NotationFactory.eINSTANCE
+ .createLocation());
+ Location location5008 = (Location) label5008.getLayoutConstraint();
+ location5008.setX(0);
+ location5008.setY(5);
+ return node;
+ }
+
+ /**
+ * @generated
+ */
+ public Node createMultiFeatureUnit_3012(EObject domainElement,
+ View containerView, int index, boolean persisted,
+ PreferencesHint preferencesHint) {
+ Shape node = NotationFactory.eINSTANCE.createShape();
+ node.setLayoutConstraint(NotationFactory.eINSTANCE.createBounds());
+ node.setType(ComrelVisualIDRegistry
+ .getType(MultiFeatureUnitEditPart.VISUAL_ID));
+ ViewUtil.insertChildView(containerView, node, index, persisted);
+ node.setElement(domainElement);
+ // initializeFromPreferences
+ final IPreferenceStore prefStore = (IPreferenceStore) preferencesHint
+ .getPreferenceStore();
+
+ org.eclipse.swt.graphics.RGB lineRGB = PreferenceConverter.getColor(
+ prefStore, IPreferenceConstants.PREF_LINE_COLOR);
+ ViewUtil.setStructuralFeatureValue(node,
+ NotationPackage.eINSTANCE.getLineStyle_LineColor(),
+ FigureUtilities.RGBToInteger(lineRGB));
+ FontStyle nodeFontStyle = (FontStyle) node
+ .getStyle(NotationPackage.Literals.FONT_STYLE);
+ if (nodeFontStyle != null) {
+ FontData fontData = PreferenceConverter.getFontData(prefStore,
+ IPreferenceConstants.PREF_DEFAULT_FONT);
+ nodeFontStyle.setFontName(fontData.getName());
+ nodeFontStyle.setFontHeight(fontData.getHeight());
+ nodeFontStyle.setBold((fontData.getStyle() & SWT.BOLD) != 0);
+ nodeFontStyle.setItalic((fontData.getStyle() & SWT.ITALIC) != 0);
+ org.eclipse.swt.graphics.RGB fontRGB = PreferenceConverter
+ .getColor(prefStore, IPreferenceConstants.PREF_FONT_COLOR);
+ nodeFontStyle.setFontColor(FigureUtilities.RGBToInteger(fontRGB)
+ .intValue());
+ }
+ org.eclipse.swt.graphics.RGB fillRGB = PreferenceConverter.getColor(
+ prefStore, IPreferenceConstants.PREF_FILL_COLOR);
+ ViewUtil.setStructuralFeatureValue(node,
+ NotationPackage.eINSTANCE.getFillStyle_FillColor(),
+ FigureUtilities.RGBToInteger(fillRGB));
+ Node label5013 = createLabel(node,
+ ComrelVisualIDRegistry
+ .getType(MultiFeatureUnitNameTypeEditPart.VISUAL_ID));
+ return node;
+ }
+
+ /**
+ * @generated
+ */
+ public Node createSingleInputPort_3013(EObject domainElement,
+ View containerView, int index, boolean persisted,
+ PreferencesHint preferencesHint) {
+ Shape node = NotationFactory.eINSTANCE.createShape();
+ node.setLayoutConstraint(NotationFactory.eINSTANCE.createBounds());
+ node.setType(ComrelVisualIDRegistry
+ .getType(SingleInputPort5EditPart.VISUAL_ID));
+ ViewUtil.insertChildView(containerView, node, index, persisted);
+ node.setElement(domainElement);
+ // initializeFromPreferences
+ final IPreferenceStore prefStore = (IPreferenceStore) preferencesHint
+ .getPreferenceStore();
+
+ org.eclipse.swt.graphics.RGB lineRGB = PreferenceConverter.getColor(
+ prefStore, IPreferenceConstants.PREF_LINE_COLOR);
+ ViewUtil.setStructuralFeatureValue(node,
+ NotationPackage.eINSTANCE.getLineStyle_LineColor(),
+ FigureUtilities.RGBToInteger(lineRGB));
+ FontStyle nodeFontStyle = (FontStyle) node
+ .getStyle(NotationPackage.Literals.FONT_STYLE);
+ if (nodeFontStyle != null) {
+ FontData fontData = PreferenceConverter.getFontData(prefStore,
+ IPreferenceConstants.PREF_DEFAULT_FONT);
+ nodeFontStyle.setFontName(fontData.getName());
+ nodeFontStyle.setFontHeight(fontData.getHeight());
+ nodeFontStyle.setBold((fontData.getStyle() & SWT.BOLD) != 0);
+ nodeFontStyle.setItalic((fontData.getStyle() & SWT.ITALIC) != 0);
+ org.eclipse.swt.graphics.RGB fontRGB = PreferenceConverter
+ .getColor(prefStore, IPreferenceConstants.PREF_FONT_COLOR);
+ nodeFontStyle.setFontColor(FigureUtilities.RGBToInteger(fontRGB)
+ .intValue());
+ }
+ org.eclipse.swt.graphics.RGB fillRGB = PreferenceConverter.getColor(
+ prefStore, IPreferenceConstants.PREF_FILL_COLOR);
+ ViewUtil.setStructuralFeatureValue(node,
+ NotationPackage.eINSTANCE.getFillStyle_FillColor(),
+ FigureUtilities.RGBToInteger(fillRGB));
+ Node label5010 = createLabel(node,
+ ComrelVisualIDRegistry
+ .getType(SingleInputPortNameType5EditPart.VISUAL_ID));
+ label5010.setLayoutConstraint(NotationFactory.eINSTANCE
+ .createLocation());
+ Location location5010 = (Location) label5010.getLayoutConstraint();
+ location5010.setX(0);
+ location5010.setY(5);
+ return node;
+ }
+
+ /**
+ * @generated
+ */
+ public Node createMultiInputPort_3014(EObject domainElement,
+ View containerView, int index, boolean persisted,
+ PreferencesHint preferencesHint) {
+ Node node = NotationFactory.eINSTANCE.createNode();
+ node.getStyles()
+ .add(NotationFactory.eINSTANCE.createDescriptionStyle());
+ node.getStyles().add(NotationFactory.eINSTANCE.createFontStyle());
+ node.getStyles().add(NotationFactory.eINSTANCE.createFillStyle());
+ node.setLayoutConstraint(NotationFactory.eINSTANCE.createBounds());
+ node.setType(ComrelVisualIDRegistry
+ .getType(MultiInputPort4EditPart.VISUAL_ID));
+ ViewUtil.insertChildView(containerView, node, index, persisted);
+ node.setElement(domainElement);
+ // initializeFromPreferences
+ final IPreferenceStore prefStore = (IPreferenceStore) preferencesHint
+ .getPreferenceStore();
+ FontStyle nodeFontStyle = (FontStyle) node
+ .getStyle(NotationPackage.Literals.FONT_STYLE);
+ if (nodeFontStyle != null) {
+ FontData fontData = PreferenceConverter.getFontData(prefStore,
+ IPreferenceConstants.PREF_DEFAULT_FONT);
+ nodeFontStyle.setFontName(fontData.getName());
+ nodeFontStyle.setFontHeight(fontData.getHeight());
+ nodeFontStyle.setBold((fontData.getStyle() & SWT.BOLD) != 0);
+ nodeFontStyle.setItalic((fontData.getStyle() & SWT.ITALIC) != 0);
+ org.eclipse.swt.graphics.RGB fontRGB = PreferenceConverter
+ .getColor(prefStore, IPreferenceConstants.PREF_FONT_COLOR);
+ nodeFontStyle.setFontColor(FigureUtilities.RGBToInteger(fontRGB)
+ .intValue());
+ }
+ org.eclipse.swt.graphics.RGB fillRGB = PreferenceConverter.getColor(
+ prefStore, IPreferenceConstants.PREF_FILL_COLOR);
+ ViewUtil.setStructuralFeatureValue(node,
+ NotationPackage.eINSTANCE.getFillStyle_FillColor(),
+ FigureUtilities.RGBToInteger(fillRGB));
+ Node label5011 = createLabel(node,
+ ComrelVisualIDRegistry
+ .getType(MultiInputPortNameType4EditPart.VISUAL_ID));
+ label5011.setLayoutConstraint(NotationFactory.eINSTANCE
+ .createLocation());
+ Location location5011 = (Location) label5011.getLayoutConstraint();
+ location5011.setX(0);
+ location5011.setY(5);
+ return node;
+ }
+
+ /**
+ * @generated
+ */
+ public Node createMultiOutputPort_3015(EObject domainElement,
+ View containerView, int index, boolean persisted,
+ PreferencesHint preferencesHint) {
+ Node node = NotationFactory.eINSTANCE.createNode();
+ node.getStyles()
+ .add(NotationFactory.eINSTANCE.createDescriptionStyle());
+ node.getStyles().add(NotationFactory.eINSTANCE.createFontStyle());
+ node.getStyles().add(NotationFactory.eINSTANCE.createFillStyle());
+ node.setLayoutConstraint(NotationFactory.eINSTANCE.createBounds());
+ node.setType(ComrelVisualIDRegistry
+ .getType(MultiOutputPortEditPart.VISUAL_ID));
+ ViewUtil.insertChildView(containerView, node, index, persisted);
+ node.setElement(domainElement);
+ // initializeFromPreferences
+ final IPreferenceStore prefStore = (IPreferenceStore) preferencesHint
+ .getPreferenceStore();
+ FontStyle nodeFontStyle = (FontStyle) node
+ .getStyle(NotationPackage.Literals.FONT_STYLE);
+ if (nodeFontStyle != null) {
+ FontData fontData = PreferenceConverter.getFontData(prefStore,
+ IPreferenceConstants.PREF_DEFAULT_FONT);
+ nodeFontStyle.setFontName(fontData.getName());
+ nodeFontStyle.setFontHeight(fontData.getHeight());
+ nodeFontStyle.setBold((fontData.getStyle() & SWT.BOLD) != 0);
+ nodeFontStyle.setItalic((fontData.getStyle() & SWT.ITALIC) != 0);
+ org.eclipse.swt.graphics.RGB fontRGB = PreferenceConverter
+ .getColor(prefStore, IPreferenceConstants.PREF_FONT_COLOR);
+ nodeFontStyle.setFontColor(FigureUtilities.RGBToInteger(fontRGB)
+ .intValue());
+ }
+ org.eclipse.swt.graphics.RGB fillRGB = PreferenceConverter.getColor(
+ prefStore, IPreferenceConstants.PREF_FILL_COLOR);
+ ViewUtil.setStructuralFeatureValue(node,
+ NotationPackage.eINSTANCE.getFillStyle_FillColor(),
+ FigureUtilities.RGBToInteger(fillRGB));
+ Node label5012 = createLabel(node,
+ ComrelVisualIDRegistry
+ .getType(MultiOutputPortNameTypeEditPart.VISUAL_ID));
+ label5012.setLayoutConstraint(NotationFactory.eINSTANCE
+ .createLocation());
+ Location location5012 = (Location) label5012.getLayoutConstraint();
+ location5012.setX(0);
+ location5012.setY(5);
+ return node;
+ }
+
+ /**
+ * @generated
+ */
+ public Node createSingleFilterUnit_3016(EObject domainElement,
+ View containerView, int index, boolean persisted,
+ PreferencesHint preferencesHint) {
+ Shape node = NotationFactory.eINSTANCE.createShape();
+ node.setLayoutConstraint(NotationFactory.eINSTANCE.createBounds());
+ node.setType(ComrelVisualIDRegistry
+ .getType(SingleFilterUnitEditPart.VISUAL_ID));
+ ViewUtil.insertChildView(containerView, node, index, persisted);
+ node.setElement(domainElement);
+ // initializeFromPreferences
+ final IPreferenceStore prefStore = (IPreferenceStore) preferencesHint
+ .getPreferenceStore();
+
+ org.eclipse.swt.graphics.RGB lineRGB = PreferenceConverter.getColor(
+ prefStore, IPreferenceConstants.PREF_LINE_COLOR);
+ ViewUtil.setStructuralFeatureValue(node,
+ NotationPackage.eINSTANCE.getLineStyle_LineColor(),
+ FigureUtilities.RGBToInteger(lineRGB));
+ FontStyle nodeFontStyle = (FontStyle) node
+ .getStyle(NotationPackage.Literals.FONT_STYLE);
+ if (nodeFontStyle != null) {
+ FontData fontData = PreferenceConverter.getFontData(prefStore,
+ IPreferenceConstants.PREF_DEFAULT_FONT);
+ nodeFontStyle.setFontName(fontData.getName());
+ nodeFontStyle.setFontHeight(fontData.getHeight());
+ nodeFontStyle.setBold((fontData.getStyle() & SWT.BOLD) != 0);
+ nodeFontStyle.setItalic((fontData.getStyle() & SWT.ITALIC) != 0);
+ org.eclipse.swt.graphics.RGB fontRGB = PreferenceConverter
+ .getColor(prefStore, IPreferenceConstants.PREF_FONT_COLOR);
+ nodeFontStyle.setFontColor(FigureUtilities.RGBToInteger(fontRGB)
+ .intValue());
+ }
+ org.eclipse.swt.graphics.RGB fillRGB = PreferenceConverter.getColor(
+ prefStore, IPreferenceConstants.PREF_FILL_COLOR);
+ ViewUtil.setStructuralFeatureValue(node,
+ NotationPackage.eINSTANCE.getFillStyle_FillColor(),
+ FigureUtilities.RGBToInteger(fillRGB));
+ Node label5016 = createLabel(node,
+ ComrelVisualIDRegistry
+ .getType(SingleFilterUnitNameTypeEditPart.VISUAL_ID));
+ return node;
+ }
+
+ /**
+ * @generated
+ */
+ public Node createMultiInputPort_3017(EObject domainElement,
+ View containerView, int index, boolean persisted,
+ PreferencesHint preferencesHint) {
+ Node node = NotationFactory.eINSTANCE.createNode();
+ node.getStyles()
+ .add(NotationFactory.eINSTANCE.createDescriptionStyle());
+ node.getStyles().add(NotationFactory.eINSTANCE.createFontStyle());
+ node.getStyles().add(NotationFactory.eINSTANCE.createFillStyle());
+ node.setLayoutConstraint(NotationFactory.eINSTANCE.createBounds());
+ node.setType(ComrelVisualIDRegistry
+ .getType(MultiInputPort5EditPart.VISUAL_ID));
+ ViewUtil.insertChildView(containerView, node, index, persisted);
+ node.setElement(domainElement);
+ // initializeFromPreferences
+ final IPreferenceStore prefStore = (IPreferenceStore) preferencesHint
+ .getPreferenceStore();
+ FontStyle nodeFontStyle = (FontStyle) node
+ .getStyle(NotationPackage.Literals.FONT_STYLE);
+ if (nodeFontStyle != null) {
+ FontData fontData = PreferenceConverter.getFontData(prefStore,
+ IPreferenceConstants.PREF_DEFAULT_FONT);
+ nodeFontStyle.setFontName(fontData.getName());
+ nodeFontStyle.setFontHeight(fontData.getHeight());
+ nodeFontStyle.setBold((fontData.getStyle() & SWT.BOLD) != 0);
+ nodeFontStyle.setItalic((fontData.getStyle() & SWT.ITALIC) != 0);
+ org.eclipse.swt.graphics.RGB fontRGB = PreferenceConverter
+ .getColor(prefStore, IPreferenceConstants.PREF_FONT_COLOR);
+ nodeFontStyle.setFontColor(FigureUtilities.RGBToInteger(fontRGB)
+ .intValue());
+ }
+ org.eclipse.swt.graphics.RGB fillRGB = PreferenceConverter.getColor(
+ prefStore, IPreferenceConstants.PREF_FILL_COLOR);
+ ViewUtil.setStructuralFeatureValue(node,
+ NotationPackage.eINSTANCE.getFillStyle_FillColor(),
+ FigureUtilities.RGBToInteger(fillRGB));
+ Node label5014 = createLabel(node,
+ ComrelVisualIDRegistry
+ .getType(MultiInputPortNameType5EditPart.VISUAL_ID));
+ label5014.setLayoutConstraint(NotationFactory.eINSTANCE
+ .createLocation());
+ Location location5014 = (Location) label5014.getLayoutConstraint();
+ location5014.setX(0);
+ location5014.setY(5);
+ return node;
+ }
+
+ /**
+ * @generated
+ */
+ public Node createSingleOutputPort_3018(EObject domainElement,
+ View containerView, int index, boolean persisted,
+ PreferencesHint preferencesHint) {
+ Shape node = NotationFactory.eINSTANCE.createShape();
+ node.setLayoutConstraint(NotationFactory.eINSTANCE.createBounds());
+ node.setType(ComrelVisualIDRegistry
+ .getType(SingleOutputPort2EditPart.VISUAL_ID));
+ ViewUtil.insertChildView(containerView, node, index, persisted);
+ node.setElement(domainElement);
+ // initializeFromPreferences
+ final IPreferenceStore prefStore = (IPreferenceStore) preferencesHint
+ .getPreferenceStore();
+
+ org.eclipse.swt.graphics.RGB lineRGB = PreferenceConverter.getColor(
+ prefStore, IPreferenceConstants.PREF_LINE_COLOR);
+ ViewUtil.setStructuralFeatureValue(node,
+ NotationPackage.eINSTANCE.getLineStyle_LineColor(),
+ FigureUtilities.RGBToInteger(lineRGB));
+ FontStyle nodeFontStyle = (FontStyle) node
+ .getStyle(NotationPackage.Literals.FONT_STYLE);
+ if (nodeFontStyle != null) {
+ FontData fontData = PreferenceConverter.getFontData(prefStore,
+ IPreferenceConstants.PREF_DEFAULT_FONT);
+ nodeFontStyle.setFontName(fontData.getName());
+ nodeFontStyle.setFontHeight(fontData.getHeight());
+ nodeFontStyle.setBold((fontData.getStyle() & SWT.BOLD) != 0);
+ nodeFontStyle.setItalic((fontData.getStyle() & SWT.ITALIC) != 0);
+ org.eclipse.swt.graphics.RGB fontRGB = PreferenceConverter
+ .getColor(prefStore, IPreferenceConstants.PREF_FONT_COLOR);
+ nodeFontStyle.setFontColor(FigureUtilities.RGBToInteger(fontRGB)
+ .intValue());
+ }
+ org.eclipse.swt.graphics.RGB fillRGB = PreferenceConverter.getColor(
+ prefStore, IPreferenceConstants.PREF_FILL_COLOR);
+ ViewUtil.setStructuralFeatureValue(node,
+ NotationPackage.eINSTANCE.getFillStyle_FillColor(),
+ FigureUtilities.RGBToInteger(fillRGB));
+ Node label5015 = createLabel(node,
+ ComrelVisualIDRegistry
+ .getType(SingleOutputPortNameType2EditPart.VISUAL_ID));
+ label5015.setLayoutConstraint(NotationFactory.eINSTANCE
+ .createLocation());
+ Location location5015 = (Location) label5015.getLayoutConstraint();
+ location5015.setX(0);
+ location5015.setY(5);
+ return node;
+ }
+
+ /**
+ * @generated
+ */
+ public Node createMultiFilterUnit_3019(EObject domainElement,
+ View containerView, int index, boolean persisted,
+ PreferencesHint preferencesHint) {
+ Shape node = NotationFactory.eINSTANCE.createShape();
+ node.setLayoutConstraint(NotationFactory.eINSTANCE.createBounds());
+ node.setType(ComrelVisualIDRegistry
+ .getType(MultiFilterUnitEditPart.VISUAL_ID));
+ ViewUtil.insertChildView(containerView, node, index, persisted);
+ node.setElement(domainElement);
+ // initializeFromPreferences
+ final IPreferenceStore prefStore = (IPreferenceStore) preferencesHint
+ .getPreferenceStore();
+
+ org.eclipse.swt.graphics.RGB lineRGB = PreferenceConverter.getColor(
+ prefStore, IPreferenceConstants.PREF_LINE_COLOR);
+ ViewUtil.setStructuralFeatureValue(node,
+ NotationPackage.eINSTANCE.getLineStyle_LineColor(),
+ FigureUtilities.RGBToInteger(lineRGB));
+ FontStyle nodeFontStyle = (FontStyle) node
+ .getStyle(NotationPackage.Literals.FONT_STYLE);
+ if (nodeFontStyle != null) {
+ FontData fontData = PreferenceConverter.getFontData(prefStore,
+ IPreferenceConstants.PREF_DEFAULT_FONT);
+ nodeFontStyle.setFontName(fontData.getName());
+ nodeFontStyle.setFontHeight(fontData.getHeight());
+ nodeFontStyle.setBold((fontData.getStyle() & SWT.BOLD) != 0);
+ nodeFontStyle.setItalic((fontData.getStyle() & SWT.ITALIC) != 0);
+ org.eclipse.swt.graphics.RGB fontRGB = PreferenceConverter
+ .getColor(prefStore, IPreferenceConstants.PREF_FONT_COLOR);
+ nodeFontStyle.setFontColor(FigureUtilities.RGBToInteger(fontRGB)
+ .intValue());
+ }
+ org.eclipse.swt.graphics.RGB fillRGB = PreferenceConverter.getColor(
+ prefStore, IPreferenceConstants.PREF_FILL_COLOR);
+ ViewUtil.setStructuralFeatureValue(node,
+ NotationPackage.eINSTANCE.getFillStyle_FillColor(),
+ FigureUtilities.RGBToInteger(fillRGB));
+ Node label5019 = createLabel(node,
+ ComrelVisualIDRegistry
+ .getType(MultiFilterUnitNameTypeEditPart.VISUAL_ID));
+ return node;
+ }
+
+ /**
+ * @generated
+ */
+ public Node createMultiInputPort_3020(EObject domainElement,
+ View containerView, int index, boolean persisted,
+ PreferencesHint preferencesHint) {
+ Node node = NotationFactory.eINSTANCE.createNode();
+ node.getStyles()
+ .add(NotationFactory.eINSTANCE.createDescriptionStyle());
+ node.getStyles().add(NotationFactory.eINSTANCE.createFontStyle());
+ node.getStyles().add(NotationFactory.eINSTANCE.createFillStyle());
+ node.setLayoutConstraint(NotationFactory.eINSTANCE.createBounds());
+ node.setType(ComrelVisualIDRegistry
+ .getType(MultiInputPort6EditPart.VISUAL_ID));
+ ViewUtil.insertChildView(containerView, node, index, persisted);
+ node.setElement(domainElement);
+ // initializeFromPreferences
+ final IPreferenceStore prefStore = (IPreferenceStore) preferencesHint
+ .getPreferenceStore();
+ FontStyle nodeFontStyle = (FontStyle) node
+ .getStyle(NotationPackage.Literals.FONT_STYLE);
+ if (nodeFontStyle != null) {
+ FontData fontData = PreferenceConverter.getFontData(prefStore,
+ IPreferenceConstants.PREF_DEFAULT_FONT);
+ nodeFontStyle.setFontName(fontData.getName());
+ nodeFontStyle.setFontHeight(fontData.getHeight());
+ nodeFontStyle.setBold((fontData.getStyle() & SWT.BOLD) != 0);
+ nodeFontStyle.setItalic((fontData.getStyle() & SWT.ITALIC) != 0);
+ org.eclipse.swt.graphics.RGB fontRGB = PreferenceConverter
+ .getColor(prefStore, IPreferenceConstants.PREF_FONT_COLOR);
+ nodeFontStyle.setFontColor(FigureUtilities.RGBToInteger(fontRGB)
+ .intValue());
+ }
+ org.eclipse.swt.graphics.RGB fillRGB = PreferenceConverter.getColor(
+ prefStore, IPreferenceConstants.PREF_FILL_COLOR);
+ ViewUtil.setStructuralFeatureValue(node,
+ NotationPackage.eINSTANCE.getFillStyle_FillColor(),
+ FigureUtilities.RGBToInteger(fillRGB));
+ Node label5017 = createLabel(node,
+ ComrelVisualIDRegistry
+ .getType(MultiInputPortNameType6EditPart.VISUAL_ID));
+ label5017.setLayoutConstraint(NotationFactory.eINSTANCE
+ .createLocation());
+ Location location5017 = (Location) label5017.getLayoutConstraint();
+ location5017.setX(0);
+ location5017.setY(5);
+ return node;
+ }
+
+ /**
+ * @generated
+ */
+ public Node createMultiOutputPort_3021(EObject domainElement,
+ View containerView, int index, boolean persisted,
+ PreferencesHint preferencesHint) {
+ Node node = NotationFactory.eINSTANCE.createNode();
+ node.getStyles()
+ .add(NotationFactory.eINSTANCE.createDescriptionStyle());
+ node.getStyles().add(NotationFactory.eINSTANCE.createFontStyle());
+ node.getStyles().add(NotationFactory.eINSTANCE.createFillStyle());
+ node.setLayoutConstraint(NotationFactory.eINSTANCE.createBounds());
+ node.setType(ComrelVisualIDRegistry
+ .getType(MultiOutputPort2EditPart.VISUAL_ID));
+ ViewUtil.insertChildView(containerView, node, index, persisted);
+ node.setElement(domainElement);
+ // initializeFromPreferences
+ final IPreferenceStore prefStore = (IPreferenceStore) preferencesHint
+ .getPreferenceStore();
+ FontStyle nodeFontStyle = (FontStyle) node
+ .getStyle(NotationPackage.Literals.FONT_STYLE);
+ if (nodeFontStyle != null) {
+ FontData fontData = PreferenceConverter.getFontData(prefStore,
+ IPreferenceConstants.PREF_DEFAULT_FONT);
+ nodeFontStyle.setFontName(fontData.getName());
+ nodeFontStyle.setFontHeight(fontData.getHeight());
+ nodeFontStyle.setBold((fontData.getStyle() & SWT.BOLD) != 0);
+ nodeFontStyle.setItalic((fontData.getStyle() & SWT.ITALIC) != 0);
+ org.eclipse.swt.graphics.RGB fontRGB = PreferenceConverter
+ .getColor(prefStore, IPreferenceConstants.PREF_FONT_COLOR);
+ nodeFontStyle.setFontColor(FigureUtilities.RGBToInteger(fontRGB)
+ .intValue());
+ }
+ org.eclipse.swt.graphics.RGB fillRGB = PreferenceConverter.getColor(
+ prefStore, IPreferenceConstants.PREF_FILL_COLOR);
+ ViewUtil.setStructuralFeatureValue(node,
+ NotationPackage.eINSTANCE.getFillStyle_FillColor(),
+ FigureUtilities.RGBToInteger(fillRGB));
+ Node label5018 = createLabel(node,
+ ComrelVisualIDRegistry
+ .getType(MultiOutputPortNameType2EditPart.VISUAL_ID));
+ label5018.setLayoutConstraint(NotationFactory.eINSTANCE
+ .createLocation());
+ Location location5018 = (Location) label5018.getLayoutConstraint();
+ location5018.setX(0);
+ location5018.setY(5);
+ return node;
+ }
+
+ /**
+ * @generated
+ */
+ public Node createSingleQueuedUnit_3022(EObject domainElement,
+ View containerView, int index, boolean persisted,
+ PreferencesHint preferencesHint) {
+ Shape node = NotationFactory.eINSTANCE.createShape();
+ node.getStyles().add(
+ NotationFactory.eINSTANCE.createHintedDiagramLinkStyle());
+ node.setLayoutConstraint(NotationFactory.eINSTANCE.createBounds());
+ node.setType(ComrelVisualIDRegistry
+ .getType(SingleQueuedUnit2EditPart.VISUAL_ID));
+ ViewUtil.insertChildView(containerView, node, index, persisted);
+ node.setElement(domainElement);
+ // initializeFromPreferences
+ final IPreferenceStore prefStore = (IPreferenceStore) preferencesHint
+ .getPreferenceStore();
+
+ org.eclipse.swt.graphics.RGB lineRGB = PreferenceConverter.getColor(
+ prefStore, IPreferenceConstants.PREF_LINE_COLOR);
+ ViewUtil.setStructuralFeatureValue(node,
+ NotationPackage.eINSTANCE.getLineStyle_LineColor(),
+ FigureUtilities.RGBToInteger(lineRGB));
+ FontStyle nodeFontStyle = (FontStyle) node
+ .getStyle(NotationPackage.Literals.FONT_STYLE);
+ if (nodeFontStyle != null) {
+ FontData fontData = PreferenceConverter.getFontData(prefStore,
+ IPreferenceConstants.PREF_DEFAULT_FONT);
+ nodeFontStyle.setFontName(fontData.getName());
+ nodeFontStyle.setFontHeight(fontData.getHeight());
+ nodeFontStyle.setBold((fontData.getStyle() & SWT.BOLD) != 0);
+ nodeFontStyle.setItalic((fontData.getStyle() & SWT.ITALIC) != 0);
+ org.eclipse.swt.graphics.RGB fontRGB = PreferenceConverter
+ .getColor(prefStore, IPreferenceConstants.PREF_FONT_COLOR);
+ nodeFontStyle.setFontColor(FigureUtilities.RGBToInteger(fontRGB)
+ .intValue());
+ }
+ org.eclipse.swt.graphics.RGB fillRGB = PreferenceConverter.getColor(
+ prefStore, IPreferenceConstants.PREF_FILL_COLOR);
+ ViewUtil.setStructuralFeatureValue(node,
+ NotationPackage.eINSTANCE.getFillStyle_FillColor(),
+ FigureUtilities.RGBToInteger(fillRGB));
+ Node label5076 = createLabel(
+ node,
+ ComrelVisualIDRegistry
+ .getType(SingleQueuedUnitNameTypeLblStrict2EditPart.VISUAL_ID));
+ createCompartment(
+ node,
+ ComrelVisualIDRegistry
+ .getType(SingleQueuedUnitSingleQueuedUnitHelperUnitsCompartmentEditPart.VISUAL_ID),
+ true, false, false, false);
+ createCompartment(
+ node,
+ ComrelVisualIDRegistry
+ .getType(SingleQueuedUnitSingleQueuedUnitRefactoringUnitCompartmentEditPart.VISUAL_ID),
+ true, false, false, false);
+ return node;
+ }
+
+ /**
+ * @generated
+ */
+ public Node createSingleInputPort_3023(EObject domainElement,
+ View containerView, int index, boolean persisted,
+ PreferencesHint preferencesHint) {
+ Shape node = NotationFactory.eINSTANCE.createShape();
+ node.setLayoutConstraint(NotationFactory.eINSTANCE.createBounds());
+ node.setType(ComrelVisualIDRegistry
+ .getType(SingleInputPort6EditPart.VISUAL_ID));
+ ViewUtil.insertChildView(containerView, node, index, persisted);
+ node.setElement(domainElement);
+ // initializeFromPreferences
+ final IPreferenceStore prefStore = (IPreferenceStore) preferencesHint
+ .getPreferenceStore();
+
+ org.eclipse.swt.graphics.RGB lineRGB = PreferenceConverter.getColor(
+ prefStore, IPreferenceConstants.PREF_LINE_COLOR);
+ ViewUtil.setStructuralFeatureValue(node,
+ NotationPackage.eINSTANCE.getLineStyle_LineColor(),
+ FigureUtilities.RGBToInteger(lineRGB));
+ FontStyle nodeFontStyle = (FontStyle) node
+ .getStyle(NotationPackage.Literals.FONT_STYLE);
+ if (nodeFontStyle != null) {
+ FontData fontData = PreferenceConverter.getFontData(prefStore,
+ IPreferenceConstants.PREF_DEFAULT_FONT);
+ nodeFontStyle.setFontName(fontData.getName());
+ nodeFontStyle.setFontHeight(fontData.getHeight());
+ nodeFontStyle.setBold((fontData.getStyle() & SWT.BOLD) != 0);
+ nodeFontStyle.setItalic((fontData.getStyle() & SWT.ITALIC) != 0);
+ org.eclipse.swt.graphics.RGB fontRGB = PreferenceConverter
+ .getColor(prefStore, IPreferenceConstants.PREF_FONT_COLOR);
+ nodeFontStyle.setFontColor(FigureUtilities.RGBToInteger(fontRGB)
+ .intValue());
+ }
+ org.eclipse.swt.graphics.RGB fillRGB = PreferenceConverter.getColor(
+ prefStore, IPreferenceConstants.PREF_FILL_COLOR);
+ ViewUtil.setStructuralFeatureValue(node,
+ NotationPackage.eINSTANCE.getFillStyle_FillColor(),
+ FigureUtilities.RGBToInteger(fillRGB));
+ Node label5020 = createLabel(node,
+ ComrelVisualIDRegistry
+ .getType(SingleInputPortNameType6EditPart.VISUAL_ID));
+ label5020.setLayoutConstraint(NotationFactory.eINSTANCE
+ .createLocation());
+ Location location5020 = (Location) label5020.getLayoutConstraint();
+ location5020.setX(0);
+ location5020.setY(5);
+ return node;
+ }
+
+ /**
+ * @generated
+ */
+ public Node createMultiInputPort_3024(EObject domainElement,
+ View containerView, int index, boolean persisted,
+ PreferencesHint preferencesHint) {
+ Node node = NotationFactory.eINSTANCE.createNode();
+ node.getStyles()
+ .add(NotationFactory.eINSTANCE.createDescriptionStyle());
+ node.getStyles().add(NotationFactory.eINSTANCE.createFontStyle());
+ node.getStyles().add(NotationFactory.eINSTANCE.createFillStyle());
+ node.setLayoutConstraint(NotationFactory.eINSTANCE.createBounds());
+ node.setType(ComrelVisualIDRegistry
+ .getType(MultiInputPort7EditPart.VISUAL_ID));
+ ViewUtil.insertChildView(containerView, node, index, persisted);
+ node.setElement(domainElement);
+ // initializeFromPreferences
+ final IPreferenceStore prefStore = (IPreferenceStore) preferencesHint
+ .getPreferenceStore();
+ FontStyle nodeFontStyle = (FontStyle) node
+ .getStyle(NotationPackage.Literals.FONT_STYLE);
+ if (nodeFontStyle != null) {
+ FontData fontData = PreferenceConverter.getFontData(prefStore,
+ IPreferenceConstants.PREF_DEFAULT_FONT);
+ nodeFontStyle.setFontName(fontData.getName());
+ nodeFontStyle.setFontHeight(fontData.getHeight());
+ nodeFontStyle.setBold((fontData.getStyle() & SWT.BOLD) != 0);
+ nodeFontStyle.setItalic((fontData.getStyle() & SWT.ITALIC) != 0);
+ org.eclipse.swt.graphics.RGB fontRGB = PreferenceConverter
+ .getColor(prefStore, IPreferenceConstants.PREF_FONT_COLOR);
+ nodeFontStyle.setFontColor(FigureUtilities.RGBToInteger(fontRGB)
+ .intValue());
+ }
+ org.eclipse.swt.graphics.RGB fillRGB = PreferenceConverter.getColor(
+ prefStore, IPreferenceConstants.PREF_FILL_COLOR);
+ ViewUtil.setStructuralFeatureValue(node,
+ NotationPackage.eINSTANCE.getFillStyle_FillColor(),
+ FigureUtilities.RGBToInteger(fillRGB));
+ Node label5021 = createLabel(node,
+ ComrelVisualIDRegistry
+ .getType(MultiInputPortNameType7EditPart.VISUAL_ID));
+ label5021.setLayoutConstraint(NotationFactory.eINSTANCE
+ .createLocation());
+ Location location5021 = (Location) label5021.getLayoutConstraint();
+ location5021.setX(0);
+ location5021.setY(5);
+ return node;
+ }
+
+ /**
+ * @generated
+ */
+ public Node createCartesianQueuedUnit_3025(EObject domainElement,
+ View containerView, int index, boolean persisted,
+ PreferencesHint preferencesHint) {
+ Shape node = NotationFactory.eINSTANCE.createShape();
+ node.getStyles().add(
+ NotationFactory.eINSTANCE.createHintedDiagramLinkStyle());
+ node.setLayoutConstraint(NotationFactory.eINSTANCE.createBounds());
+ node.setType(ComrelVisualIDRegistry
+ .getType(CartesianQueuedUnit4EditPart.VISUAL_ID));
+ ViewUtil.insertChildView(containerView, node, index, persisted);
+ node.setElement(domainElement);
+ // initializeFromPreferences
+ final IPreferenceStore prefStore = (IPreferenceStore) preferencesHint
+ .getPreferenceStore();
+
+ org.eclipse.swt.graphics.RGB lineRGB = PreferenceConverter.getColor(
+ prefStore, IPreferenceConstants.PREF_LINE_COLOR);
+ ViewUtil.setStructuralFeatureValue(node,
+ NotationPackage.eINSTANCE.getLineStyle_LineColor(),
+ FigureUtilities.RGBToInteger(lineRGB));
+ FontStyle nodeFontStyle = (FontStyle) node
+ .getStyle(NotationPackage.Literals.FONT_STYLE);
+ if (nodeFontStyle != null) {
+ FontData fontData = PreferenceConverter.getFontData(prefStore,
+ IPreferenceConstants.PREF_DEFAULT_FONT);
+ nodeFontStyle.setFontName(fontData.getName());
+ nodeFontStyle.setFontHeight(fontData.getHeight());
+ nodeFontStyle.setBold((fontData.getStyle() & SWT.BOLD) != 0);
+ nodeFontStyle.setItalic((fontData.getStyle() & SWT.ITALIC) != 0);
+ org.eclipse.swt.graphics.RGB fontRGB = PreferenceConverter
+ .getColor(prefStore, IPreferenceConstants.PREF_FONT_COLOR);
+ nodeFontStyle.setFontColor(FigureUtilities.RGBToInteger(fontRGB)
+ .intValue());
+ }
+ org.eclipse.swt.graphics.RGB fillRGB = PreferenceConverter.getColor(
+ prefStore, IPreferenceConstants.PREF_FILL_COLOR);
+ ViewUtil.setStructuralFeatureValue(node,
+ NotationPackage.eINSTANCE.getFillStyle_FillColor(),
+ FigureUtilities.RGBToInteger(fillRGB));
+ Node label5075 = createLabel(
+ node,
+ ComrelVisualIDRegistry
+ .getType(CartesianQueuedUnitNameTypeLblStrict4EditPart.VISUAL_ID));
+ createCompartment(
+ node,
+ ComrelVisualIDRegistry
+ .getType(CartesianQueuedUnitCartesianQueuedUnitHelperUnitsCompartment4EditPart.VISUAL_ID),
+ true, false, false, false);
+ createCompartment(
+ node,
+ ComrelVisualIDRegistry
+ .getType(CartesianQueuedUnitCartesianQueuedUnitRefactoringUnitCompartment4EditPart.VISUAL_ID),
+ true, false, false, false);
+ return node;
+ }
+
+ /**
+ * @generated
+ */
+ public Node createSequentialUnit_3026(EObject domainElement,
+ View containerView, int index, boolean persisted,
+ PreferencesHint preferencesHint) {
+ Shape node = NotationFactory.eINSTANCE.createShape();
+ node.getStyles().add(
+ NotationFactory.eINSTANCE.createHintedDiagramLinkStyle());
+ node.setLayoutConstraint(NotationFactory.eINSTANCE.createBounds());
+ node.setType(ComrelVisualIDRegistry
+ .getType(SequentialUnit2EditPart.VISUAL_ID));
+ ViewUtil.insertChildView(containerView, node, index, persisted);
+ node.setElement(domainElement);
+ // initializeFromPreferences
+ final IPreferenceStore prefStore = (IPreferenceStore) preferencesHint
+ .getPreferenceStore();
+
+ org.eclipse.swt.graphics.RGB lineRGB = PreferenceConverter.getColor(
+ prefStore, IPreferenceConstants.PREF_LINE_COLOR);
+ ViewUtil.setStructuralFeatureValue(node,
+ NotationPackage.eINSTANCE.getLineStyle_LineColor(),
+ FigureUtilities.RGBToInteger(lineRGB));
+ FontStyle nodeFontStyle = (FontStyle) node
+ .getStyle(NotationPackage.Literals.FONT_STYLE);
+ if (nodeFontStyle != null) {
+ FontData fontData = PreferenceConverter.getFontData(prefStore,
+ IPreferenceConstants.PREF_DEFAULT_FONT);
+ nodeFontStyle.setFontName(fontData.getName());
+ nodeFontStyle.setFontHeight(fontData.getHeight());
+ nodeFontStyle.setBold((fontData.getStyle() & SWT.BOLD) != 0);
+ nodeFontStyle.setItalic((fontData.getStyle() & SWT.ITALIC) != 0);
+ org.eclipse.swt.graphics.RGB fontRGB = PreferenceConverter
+ .getColor(prefStore, IPreferenceConstants.PREF_FONT_COLOR);
+ nodeFontStyle.setFontColor(FigureUtilities.RGBToInteger(fontRGB)
+ .intValue());
+ }
+ org.eclipse.swt.graphics.RGB fillRGB = PreferenceConverter.getColor(
+ prefStore, IPreferenceConstants.PREF_FILL_COLOR);
+ ViewUtil.setStructuralFeatureValue(node,
+ NotationPackage.eINSTANCE.getFillStyle_FillColor(),
+ FigureUtilities.RGBToInteger(fillRGB));
+ Node label5074 = createLabel(
+ node,
+ ComrelVisualIDRegistry
+ .getType(SequentialUnitNameTypeLblStrict2EditPart.VISUAL_ID));
+ createCompartment(
+ node,
+ ComrelVisualIDRegistry
+ .getType(SequentialUnitSequentialUnitHelperUnitsCompartmentEditPart.VISUAL_ID),
+ true, false, false, false);
+ createCompartment(
+ node,
+ ComrelVisualIDRegistry
+ .getType(SequentialUnitSequentialUnitRefactoringUnitsCompartmentEditPart.VISUAL_ID),
+ true, false, false, false);
+ return node;
+ }
+
+ /**
+ * @generated
+ */
+ public Node createSingleInputPort_3027(EObject domainElement,
+ View containerView, int index, boolean persisted,
+ PreferencesHint preferencesHint) {
+ Shape node = NotationFactory.eINSTANCE.createShape();
+ node.setLayoutConstraint(NotationFactory.eINSTANCE.createBounds());
+ node.setType(ComrelVisualIDRegistry
+ .getType(SingleInputPort7EditPart.VISUAL_ID));
+ ViewUtil.insertChildView(containerView, node, index, persisted);
+ node.setElement(domainElement);
+ // initializeFromPreferences
+ final IPreferenceStore prefStore = (IPreferenceStore) preferencesHint
+ .getPreferenceStore();
+
+ org.eclipse.swt.graphics.RGB lineRGB = PreferenceConverter.getColor(
+ prefStore, IPreferenceConstants.PREF_LINE_COLOR);
+ ViewUtil.setStructuralFeatureValue(node,
+ NotationPackage.eINSTANCE.getLineStyle_LineColor(),
+ FigureUtilities.RGBToInteger(lineRGB));
+ FontStyle nodeFontStyle = (FontStyle) node
+ .getStyle(NotationPackage.Literals.FONT_STYLE);
+ if (nodeFontStyle != null) {
+ FontData fontData = PreferenceConverter.getFontData(prefStore,
+ IPreferenceConstants.PREF_DEFAULT_FONT);
+ nodeFontStyle.setFontName(fontData.getName());
+ nodeFontStyle.setFontHeight(fontData.getHeight());
+ nodeFontStyle.setBold((fontData.getStyle() & SWT.BOLD) != 0);
+ nodeFontStyle.setItalic((fontData.getStyle() & SWT.ITALIC) != 0);
+ org.eclipse.swt.graphics.RGB fontRGB = PreferenceConverter
+ .getColor(prefStore, IPreferenceConstants.PREF_FONT_COLOR);
+ nodeFontStyle.setFontColor(FigureUtilities.RGBToInteger(fontRGB)
+ .intValue());
+ }
+ org.eclipse.swt.graphics.RGB fillRGB = PreferenceConverter.getColor(
+ prefStore, IPreferenceConstants.PREF_FILL_COLOR);
+ ViewUtil.setStructuralFeatureValue(node,
+ NotationPackage.eINSTANCE.getFillStyle_FillColor(),
+ FigureUtilities.RGBToInteger(fillRGB));
+ Node label5022 = createLabel(node,
+ ComrelVisualIDRegistry
+ .getType(SingleInputPortNameType7EditPart.VISUAL_ID));
+ label5022.setLayoutConstraint(NotationFactory.eINSTANCE
+ .createLocation());
+ Location location5022 = (Location) label5022.getLayoutConstraint();
+ location5022.setX(0);
+ location5022.setY(5);
+ return node;
+ }
+
+ /**
+ * @generated
+ */
+ public Node createMultiInputPort_3028(EObject domainElement,
+ View containerView, int index, boolean persisted,
+ PreferencesHint preferencesHint) {
+ Node node = NotationFactory.eINSTANCE.createNode();
+ node.getStyles()
+ .add(NotationFactory.eINSTANCE.createDescriptionStyle());
+ node.getStyles().add(NotationFactory.eINSTANCE.createFontStyle());
+ node.getStyles().add(NotationFactory.eINSTANCE.createFillStyle());
+ node.setLayoutConstraint(NotationFactory.eINSTANCE.createBounds());
+ node.setType(ComrelVisualIDRegistry
+ .getType(MultiInputPort8EditPart.VISUAL_ID));
+ ViewUtil.insertChildView(containerView, node, index, persisted);
+ node.setElement(domainElement);
+ // initializeFromPreferences
+ final IPreferenceStore prefStore = (IPreferenceStore) preferencesHint
+ .getPreferenceStore();
+ FontStyle nodeFontStyle = (FontStyle) node
+ .getStyle(NotationPackage.Literals.FONT_STYLE);
+ if (nodeFontStyle != null) {
+ FontData fontData = PreferenceConverter.getFontData(prefStore,
+ IPreferenceConstants.PREF_DEFAULT_FONT);
+ nodeFontStyle.setFontName(fontData.getName());
+ nodeFontStyle.setFontHeight(fontData.getHeight());
+ nodeFontStyle.setBold((fontData.getStyle() & SWT.BOLD) != 0);
+ nodeFontStyle.setItalic((fontData.getStyle() & SWT.ITALIC) != 0);
+ org.eclipse.swt.graphics.RGB fontRGB = PreferenceConverter
+ .getColor(prefStore, IPreferenceConstants.PREF_FONT_COLOR);
+ nodeFontStyle.setFontColor(FigureUtilities.RGBToInteger(fontRGB)
+ .intValue());
+ }
+ org.eclipse.swt.graphics.RGB fillRGB = PreferenceConverter.getColor(
+ prefStore, IPreferenceConstants.PREF_FILL_COLOR);
+ ViewUtil.setStructuralFeatureValue(node,
+ NotationPackage.eINSTANCE.getFillStyle_FillColor(),
+ FigureUtilities.RGBToInteger(fillRGB));
+ Node label5023 = createLabel(node,
+ ComrelVisualIDRegistry
+ .getType(MultiInputPortNameType8EditPart.VISUAL_ID));
+ label5023.setLayoutConstraint(NotationFactory.eINSTANCE
+ .createLocation());
+ Location location5023 = (Location) label5023.getLayoutConstraint();
+ location5023.setX(0);
+ location5023.setY(5);
+ return node;
+ }
+
+ /**
+ * @generated
+ */
+ public Node createCartesianQueuedUnit_3029(EObject domainElement,
+ View containerView, int index, boolean persisted,
+ PreferencesHint preferencesHint) {
+ Shape node = NotationFactory.eINSTANCE.createShape();
+ node.getStyles().add(
+ NotationFactory.eINSTANCE.createHintedDiagramLinkStyle());
+ node.setLayoutConstraint(NotationFactory.eINSTANCE.createBounds());
+ node.setType(ComrelVisualIDRegistry
+ .getType(CartesianQueuedUnit5EditPart.VISUAL_ID));
+ ViewUtil.insertChildView(containerView, node, index, persisted);
+ node.setElement(domainElement);
+ // initializeFromPreferences
+ final IPreferenceStore prefStore = (IPreferenceStore) preferencesHint
+ .getPreferenceStore();
+
+ org.eclipse.swt.graphics.RGB lineRGB = PreferenceConverter.getColor(
+ prefStore, IPreferenceConstants.PREF_LINE_COLOR);
+ ViewUtil.setStructuralFeatureValue(node,
+ NotationPackage.eINSTANCE.getLineStyle_LineColor(),
+ FigureUtilities.RGBToInteger(lineRGB));
+ FontStyle nodeFontStyle = (FontStyle) node
+ .getStyle(NotationPackage.Literals.FONT_STYLE);
+ if (nodeFontStyle != null) {
+ FontData fontData = PreferenceConverter.getFontData(prefStore,
+ IPreferenceConstants.PREF_DEFAULT_FONT);
+ nodeFontStyle.setFontName(fontData.getName());
+ nodeFontStyle.setFontHeight(fontData.getHeight());
+ nodeFontStyle.setBold((fontData.getStyle() & SWT.BOLD) != 0);
+ nodeFontStyle.setItalic((fontData.getStyle() & SWT.ITALIC) != 0);
+ org.eclipse.swt.graphics.RGB fontRGB = PreferenceConverter
+ .getColor(prefStore, IPreferenceConstants.PREF_FONT_COLOR);
+ nodeFontStyle.setFontColor(FigureUtilities.RGBToInteger(fontRGB)
+ .intValue());
+ }
+ org.eclipse.swt.graphics.RGB fillRGB = PreferenceConverter.getColor(
+ prefStore, IPreferenceConstants.PREF_FILL_COLOR);
+ ViewUtil.setStructuralFeatureValue(node,
+ NotationPackage.eINSTANCE.getFillStyle_FillColor(),
+ FigureUtilities.RGBToInteger(fillRGB));
+ Node label5073 = createLabel(
+ node,
+ ComrelVisualIDRegistry
+ .getType(CartesianQueuedUnitNameTypeLblStrict5EditPart.VISUAL_ID));
+ createCompartment(
+ node,
+ ComrelVisualIDRegistry
+ .getType(CartesianQueuedUnitCartesianQueuedUnitHelperUnitsCompartment5EditPart.VISUAL_ID),
+ true, false, false, false);
+ createCompartment(
+ node,
+ ComrelVisualIDRegistry
+ .getType(CartesianQueuedUnitCartesianQueuedUnitRefactoringUnitCompartment5EditPart.VISUAL_ID),
+ true, false, false, false);
+ return node;
+ }
+
+ /**
+ * @generated
+ */
+ public Node createConditionalUnit_3030(EObject domainElement,
+ View containerView, int index, boolean persisted,
+ PreferencesHint preferencesHint) {
+ Shape node = NotationFactory.eINSTANCE.createShape();
+ node.getStyles().add(
+ NotationFactory.eINSTANCE.createHintedDiagramLinkStyle());
+ node.setLayoutConstraint(NotationFactory.eINSTANCE.createBounds());
+ node.setType(ComrelVisualIDRegistry
+ .getType(ConditionalUnit2EditPart.VISUAL_ID));
+ ViewUtil.insertChildView(containerView, node, index, persisted);
+ node.setElement(domainElement);
+ // initializeFromPreferences
+ final IPreferenceStore prefStore = (IPreferenceStore) preferencesHint
+ .getPreferenceStore();
+
+ org.eclipse.swt.graphics.RGB lineRGB = PreferenceConverter.getColor(
+ prefStore, IPreferenceConstants.PREF_LINE_COLOR);
+ ViewUtil.setStructuralFeatureValue(node,
+ NotationPackage.eINSTANCE.getLineStyle_LineColor(),
+ FigureUtilities.RGBToInteger(lineRGB));
+ FontStyle nodeFontStyle = (FontStyle) node
+ .getStyle(NotationPackage.Literals.FONT_STYLE);
+ if (nodeFontStyle != null) {
+ FontData fontData = PreferenceConverter.getFontData(prefStore,
+ IPreferenceConstants.PREF_DEFAULT_FONT);
+ nodeFontStyle.setFontName(fontData.getName());
+ nodeFontStyle.setFontHeight(fontData.getHeight());
+ nodeFontStyle.setBold((fontData.getStyle() & SWT.BOLD) != 0);
+ nodeFontStyle.setItalic((fontData.getStyle() & SWT.ITALIC) != 0);
+ org.eclipse.swt.graphics.RGB fontRGB = PreferenceConverter
+ .getColor(prefStore, IPreferenceConstants.PREF_FONT_COLOR);
+ nodeFontStyle.setFontColor(FigureUtilities.RGBToInteger(fontRGB)
+ .intValue());
+ }
+ org.eclipse.swt.graphics.RGB fillRGB = PreferenceConverter.getColor(
+ prefStore, IPreferenceConstants.PREF_FILL_COLOR);
+ ViewUtil.setStructuralFeatureValue(node,
+ NotationPackage.eINSTANCE.getFillStyle_FillColor(),
+ FigureUtilities.RGBToInteger(fillRGB));
+ Node label5072 = createLabel(node,
+ ComrelVisualIDRegistry
+ .getType(ConditionalUnitNameType2EditPart.VISUAL_ID));
+ createCompartment(
+ node,
+ ComrelVisualIDRegistry
+ .getType(ConditionalUnitConditionalUnitIfCompartmentEditPart.VISUAL_ID),
+ true, false, false, false);
+ createCompartment(
+ node,
+ ComrelVisualIDRegistry
+ .getType(ConditionalUnitConditionalUnitHelperUnitsCompartmentEditPart.VISUAL_ID),
+ true, false, false, false);
+ createCompartment(
+ node,
+ ComrelVisualIDRegistry
+ .getType(ConditionalUnitConditionalUnitThenCompartmentEditPart.VISUAL_ID),
+ true, false, false, false);
+ createCompartment(
+ node,
+ ComrelVisualIDRegistry
+ .getType(ConditionalUnitConditionalUnitElseCompartmentEditPart.VISUAL_ID),
+ true, false, false, false);
+ return node;
+ }
+
+ /**
+ * @generated
+ */
+ public Node createSingleInputPort_3031(EObject domainElement,
+ View containerView, int index, boolean persisted,
+ PreferencesHint preferencesHint) {
+ Shape node = NotationFactory.eINSTANCE.createShape();
+ node.setLayoutConstraint(NotationFactory.eINSTANCE.createBounds());
+ node.setType(ComrelVisualIDRegistry
+ .getType(SingleInputPort8EditPart.VISUAL_ID));
+ ViewUtil.insertChildView(containerView, node, index, persisted);
+ node.setElement(domainElement);
+ // initializeFromPreferences
+ final IPreferenceStore prefStore = (IPreferenceStore) preferencesHint
+ .getPreferenceStore();
+
+ org.eclipse.swt.graphics.RGB lineRGB = PreferenceConverter.getColor(
+ prefStore, IPreferenceConstants.PREF_LINE_COLOR);
+ ViewUtil.setStructuralFeatureValue(node,
+ NotationPackage.eINSTANCE.getLineStyle_LineColor(),
+ FigureUtilities.RGBToInteger(lineRGB));
+ FontStyle nodeFontStyle = (FontStyle) node
+ .getStyle(NotationPackage.Literals.FONT_STYLE);
+ if (nodeFontStyle != null) {
+ FontData fontData = PreferenceConverter.getFontData(prefStore,
+ IPreferenceConstants.PREF_DEFAULT_FONT);
+ nodeFontStyle.setFontName(fontData.getName());
+ nodeFontStyle.setFontHeight(fontData.getHeight());
+ nodeFontStyle.setBold((fontData.getStyle() & SWT.BOLD) != 0);
+ nodeFontStyle.setItalic((fontData.getStyle() & SWT.ITALIC) != 0);
+ org.eclipse.swt.graphics.RGB fontRGB = PreferenceConverter
+ .getColor(prefStore, IPreferenceConstants.PREF_FONT_COLOR);
+ nodeFontStyle.setFontColor(FigureUtilities.RGBToInteger(fontRGB)
+ .intValue());
+ }
+ org.eclipse.swt.graphics.RGB fillRGB = PreferenceConverter.getColor(
+ prefStore, IPreferenceConstants.PREF_FILL_COLOR);
+ ViewUtil.setStructuralFeatureValue(node,
+ NotationPackage.eINSTANCE.getFillStyle_FillColor(),
+ FigureUtilities.RGBToInteger(fillRGB));
+ Node label5024 = createLabel(node,
+ ComrelVisualIDRegistry
+ .getType(SingleInputPortNameType8EditPart.VISUAL_ID));
+ label5024.setLayoutConstraint(NotationFactory.eINSTANCE
+ .createLocation());
+ Location location5024 = (Location) label5024.getLayoutConstraint();
+ location5024.setX(0);
+ location5024.setY(5);
+ return node;
+ }
+
+ /**
+ * @generated
+ */
+ public Node createMultiInputPort_3032(EObject domainElement,
+ View containerView, int index, boolean persisted,
+ PreferencesHint preferencesHint) {
+ Node node = NotationFactory.eINSTANCE.createNode();
+ node.getStyles()
+ .add(NotationFactory.eINSTANCE.createDescriptionStyle());
+ node.getStyles().add(NotationFactory.eINSTANCE.createFontStyle());
+ node.getStyles().add(NotationFactory.eINSTANCE.createFillStyle());
+ node.setLayoutConstraint(NotationFactory.eINSTANCE.createBounds());
+ node.setType(ComrelVisualIDRegistry
+ .getType(MultiInputPort9EditPart.VISUAL_ID));
+ ViewUtil.insertChildView(containerView, node, index, persisted);
+ node.setElement(domainElement);
+ // initializeFromPreferences
+ final IPreferenceStore prefStore = (IPreferenceStore) preferencesHint
+ .getPreferenceStore();
+ FontStyle nodeFontStyle = (FontStyle) node
+ .getStyle(NotationPackage.Literals.FONT_STYLE);
+ if (nodeFontStyle != null) {
+ FontData fontData = PreferenceConverter.getFontData(prefStore,
+ IPreferenceConstants.PREF_DEFAULT_FONT);
+ nodeFontStyle.setFontName(fontData.getName());
+ nodeFontStyle.setFontHeight(fontData.getHeight());
+ nodeFontStyle.setBold((fontData.getStyle() & SWT.BOLD) != 0);
+ nodeFontStyle.setItalic((fontData.getStyle() & SWT.ITALIC) != 0);
+ org.eclipse.swt.graphics.RGB fontRGB = PreferenceConverter
+ .getColor(prefStore, IPreferenceConstants.PREF_FONT_COLOR);
+ nodeFontStyle.setFontColor(FigureUtilities.RGBToInteger(fontRGB)
+ .intValue());
+ }
+ org.eclipse.swt.graphics.RGB fillRGB = PreferenceConverter.getColor(
+ prefStore, IPreferenceConstants.PREF_FILL_COLOR);
+ ViewUtil.setStructuralFeatureValue(node,
+ NotationPackage.eINSTANCE.getFillStyle_FillColor(),
+ FigureUtilities.RGBToInteger(fillRGB));
+ Node label5025 = createLabel(node,
+ ComrelVisualIDRegistry
+ .getType(MultiInputPortNameType9EditPart.VISUAL_ID));
+ label5025.setLayoutConstraint(NotationFactory.eINSTANCE
+ .createLocation());
+ Location location5025 = (Location) label5025.getLayoutConstraint();
+ location5025.setX(0);
+ location5025.setY(5);
+ return node;
+ }
+
+ /**
+ * @generated
+ */
+ public Node createCartesianQueuedUnit_3033(EObject domainElement,
+ View containerView, int index, boolean persisted,
+ PreferencesHint preferencesHint) {
+ Shape node = NotationFactory.eINSTANCE.createShape();
+ node.getStyles().add(
+ NotationFactory.eINSTANCE.createHintedDiagramLinkStyle());
+ node.setLayoutConstraint(NotationFactory.eINSTANCE.createBounds());
+ node.setType(ComrelVisualIDRegistry
+ .getType(CartesianQueuedUnit6EditPart.VISUAL_ID));
+ ViewUtil.insertChildView(containerView, node, index, persisted);
+ node.setElement(domainElement);
+ // initializeFromPreferences
+ final IPreferenceStore prefStore = (IPreferenceStore) preferencesHint
+ .getPreferenceStore();
+
+ org.eclipse.swt.graphics.RGB lineRGB = PreferenceConverter.getColor(
+ prefStore, IPreferenceConstants.PREF_LINE_COLOR);
+ ViewUtil.setStructuralFeatureValue(node,
+ NotationPackage.eINSTANCE.getLineStyle_LineColor(),
+ FigureUtilities.RGBToInteger(lineRGB));
+ FontStyle nodeFontStyle = (FontStyle) node
+ .getStyle(NotationPackage.Literals.FONT_STYLE);
+ if (nodeFontStyle != null) {
+ FontData fontData = PreferenceConverter.getFontData(prefStore,
+ IPreferenceConstants.PREF_DEFAULT_FONT);
+ nodeFontStyle.setFontName(fontData.getName());
+ nodeFontStyle.setFontHeight(fontData.getHeight());
+ nodeFontStyle.setBold((fontData.getStyle() & SWT.BOLD) != 0);
+ nodeFontStyle.setItalic((fontData.getStyle() & SWT.ITALIC) != 0);
+ org.eclipse.swt.graphics.RGB fontRGB = PreferenceConverter
+ .getColor(prefStore, IPreferenceConstants.PREF_FONT_COLOR);
+ nodeFontStyle.setFontColor(FigureUtilities.RGBToInteger(fontRGB)
+ .intValue());
+ }
+ org.eclipse.swt.graphics.RGB fillRGB = PreferenceConverter.getColor(
+ prefStore, IPreferenceConstants.PREF_FILL_COLOR);
+ ViewUtil.setStructuralFeatureValue(node,
+ NotationPackage.eINSTANCE.getFillStyle_FillColor(),
+ FigureUtilities.RGBToInteger(fillRGB));
+ Node label5028 = createLabel(
+ node,
+ ComrelVisualIDRegistry
+ .getType(CartesianQueuedUnitNameTypeLblStrict6EditPart.VISUAL_ID));
+ createCompartment(
+ node,
+ ComrelVisualIDRegistry
+ .getType(CartesianQueuedUnitCartesianQueuedUnitHelperUnitsCompartment6EditPart.VISUAL_ID),
+ true, false, false, false);
+ createCompartment(
+ node,
+ ComrelVisualIDRegistry
+ .getType(CartesianQueuedUnitCartesianQueuedUnitRefactoringUnitCompartment6EditPart.VISUAL_ID),
+ true, false, false, false);
+ return node;
+ }
+
+ /**
+ * @generated
+ */
+ public Node createAtomicUnit_3034(EObject domainElement,
+ View containerView, int index, boolean persisted,
+ PreferencesHint preferencesHint) {
+ Shape node = NotationFactory.eINSTANCE.createShape();
+ node.setLayoutConstraint(NotationFactory.eINSTANCE.createBounds());
+ node.setType(ComrelVisualIDRegistry
+ .getType(AtomicUnit2EditPart.VISUAL_ID));
+ ViewUtil.insertChildView(containerView, node, index, persisted);
+ node.setElement(domainElement);
+ // initializeFromPreferences
+ final IPreferenceStore prefStore = (IPreferenceStore) preferencesHint
+ .getPreferenceStore();
+
+ org.eclipse.swt.graphics.RGB lineRGB = PreferenceConverter.getColor(
+ prefStore, IPreferenceConstants.PREF_LINE_COLOR);
+ ViewUtil.setStructuralFeatureValue(node,
+ NotationPackage.eINSTANCE.getLineStyle_LineColor(),
+ FigureUtilities.RGBToInteger(lineRGB));
+ FontStyle nodeFontStyle = (FontStyle) node
+ .getStyle(NotationPackage.Literals.FONT_STYLE);
+ if (nodeFontStyle != null) {
+ FontData fontData = PreferenceConverter.getFontData(prefStore,
+ IPreferenceConstants.PREF_DEFAULT_FONT);
+ nodeFontStyle.setFontName(fontData.getName());
+ nodeFontStyle.setFontHeight(fontData.getHeight());
+ nodeFontStyle.setBold((fontData.getStyle() & SWT.BOLD) != 0);
+ nodeFontStyle.setItalic((fontData.getStyle() & SWT.ITALIC) != 0);
+ org.eclipse.swt.graphics.RGB fontRGB = PreferenceConverter
+ .getColor(prefStore, IPreferenceConstants.PREF_FONT_COLOR);
+ nodeFontStyle.setFontColor(FigureUtilities.RGBToInteger(fontRGB)
+ .intValue());
+ }
+ org.eclipse.swt.graphics.RGB fillRGB = PreferenceConverter.getColor(
+ prefStore, IPreferenceConstants.PREF_FILL_COLOR);
+ ViewUtil.setStructuralFeatureValue(node,
+ NotationPackage.eINSTANCE.getFillStyle_FillColor(),
+ FigureUtilities.RGBToInteger(fillRGB));
+ Node label5027 = createLabel(node,
+ ComrelVisualIDRegistry
+ .getType(AtomicUnitLabelType2EditPart.VISUAL_ID));
+ return node;
+ }
+
+ /**
+ * @generated
+ */
+ public Node createSingleInputPort_3035(EObject domainElement,
+ View containerView, int index, boolean persisted,
+ PreferencesHint preferencesHint) {
+ Shape node = NotationFactory.eINSTANCE.createShape();
+ node.setLayoutConstraint(NotationFactory.eINSTANCE.createBounds());
+ node.setType(ComrelVisualIDRegistry
+ .getType(SingleInputPort9EditPart.VISUAL_ID));
+ ViewUtil.insertChildView(containerView, node, index, persisted);
+ node.setElement(domainElement);
+ // initializeFromPreferences
+ final IPreferenceStore prefStore = (IPreferenceStore) preferencesHint
+ .getPreferenceStore();
+
+ org.eclipse.swt.graphics.RGB lineRGB = PreferenceConverter.getColor(
+ prefStore, IPreferenceConstants.PREF_LINE_COLOR);
+ ViewUtil.setStructuralFeatureValue(node,
+ NotationPackage.eINSTANCE.getLineStyle_LineColor(),
+ FigureUtilities.RGBToInteger(lineRGB));
+ FontStyle nodeFontStyle = (FontStyle) node
+ .getStyle(NotationPackage.Literals.FONT_STYLE);
+ if (nodeFontStyle != null) {
+ FontData fontData = PreferenceConverter.getFontData(prefStore,
+ IPreferenceConstants.PREF_DEFAULT_FONT);
+ nodeFontStyle.setFontName(fontData.getName());
+ nodeFontStyle.setFontHeight(fontData.getHeight());
+ nodeFontStyle.setBold((fontData.getStyle() & SWT.BOLD) != 0);
+ nodeFontStyle.setItalic((fontData.getStyle() & SWT.ITALIC) != 0);
+ org.eclipse.swt.graphics.RGB fontRGB = PreferenceConverter
+ .getColor(prefStore, IPreferenceConstants.PREF_FONT_COLOR);
+ nodeFontStyle.setFontColor(FigureUtilities.RGBToInteger(fontRGB)
+ .intValue());
+ }
+ org.eclipse.swt.graphics.RGB fillRGB = PreferenceConverter.getColor(
+ prefStore, IPreferenceConstants.PREF_FILL_COLOR);
+ ViewUtil.setStructuralFeatureValue(node,
+ NotationPackage.eINSTANCE.getFillStyle_FillColor(),
+ FigureUtilities.RGBToInteger(fillRGB));
+ Node label5026 = createLabel(node,
+ ComrelVisualIDRegistry
+ .getType(SingleInputPortNameType9EditPart.VISUAL_ID));
+ label5026.setLayoutConstraint(NotationFactory.eINSTANCE
+ .createLocation());
+ Location location5026 = (Location) label5026.getLayoutConstraint();
+ location5026.setX(0);
+ location5026.setY(5);
+ return node;
+ }
+
+ /**
+ * @generated
+ */
+ public Node createParallelQueuedUnit_3036(EObject domainElement,
+ View containerView, int index, boolean persisted,
+ PreferencesHint preferencesHint) {
+ Shape node = NotationFactory.eINSTANCE.createShape();
+ node.getStyles().add(
+ NotationFactory.eINSTANCE.createHintedDiagramLinkStyle());
+ node.setLayoutConstraint(NotationFactory.eINSTANCE.createBounds());
+ node.setType(ComrelVisualIDRegistry
+ .getType(ParallelQueuedUnit3EditPart.VISUAL_ID));
+ ViewUtil.insertChildView(containerView, node, index, persisted);
+ node.setElement(domainElement);
+ // initializeFromPreferences
+ final IPreferenceStore prefStore = (IPreferenceStore) preferencesHint
+ .getPreferenceStore();
+
+ org.eclipse.swt.graphics.RGB lineRGB = PreferenceConverter.getColor(
+ prefStore, IPreferenceConstants.PREF_LINE_COLOR);
+ ViewUtil.setStructuralFeatureValue(node,
+ NotationPackage.eINSTANCE.getLineStyle_LineColor(),
+ FigureUtilities.RGBToInteger(lineRGB));
+ FontStyle nodeFontStyle = (FontStyle) node
+ .getStyle(NotationPackage.Literals.FONT_STYLE);
+ if (nodeFontStyle != null) {
+ FontData fontData = PreferenceConverter.getFontData(prefStore,
+ IPreferenceConstants.PREF_DEFAULT_FONT);
+ nodeFontStyle.setFontName(fontData.getName());
+ nodeFontStyle.setFontHeight(fontData.getHeight());
+ nodeFontStyle.setBold((fontData.getStyle() & SWT.BOLD) != 0);
+ nodeFontStyle.setItalic((fontData.getStyle() & SWT.ITALIC) != 0);
+ org.eclipse.swt.graphics.RGB fontRGB = PreferenceConverter
+ .getColor(prefStore, IPreferenceConstants.PREF_FONT_COLOR);
+ nodeFontStyle.setFontColor(FigureUtilities.RGBToInteger(fontRGB)
+ .intValue());
+ }
+ org.eclipse.swt.graphics.RGB fillRGB = PreferenceConverter.getColor(
+ prefStore, IPreferenceConstants.PREF_FILL_COLOR);
+ ViewUtil.setStructuralFeatureValue(node,
+ NotationPackage.eINSTANCE.getFillStyle_FillColor(),
+ FigureUtilities.RGBToInteger(fillRGB));
+ Node label5071 = createLabel(
+ node,
+ ComrelVisualIDRegistry
+ .getType(ParallelQueuedUnitNameTypeLblStrict3EditPart.VISUAL_ID));
+ createCompartment(
+ node,
+ ComrelVisualIDRegistry
+ .getType(ParallelQueuedUnitParallelQueuedUnitHelperUnitsCompartment2EditPart.VISUAL_ID),
+ true, false, false, false);
+ createCompartment(
+ node,
+ ComrelVisualIDRegistry
+ .getType(ParallelQueuedUnitParallelQueuedUnitRefactoringUnitsCompartment2EditPart.VISUAL_ID),
+ true, false, false, false);
+ return node;
+ }
+
+ /**
+ * @generated
+ */
+ public Node createParallelQueuedUnit_3037(EObject domainElement,
+ View containerView, int index, boolean persisted,
+ PreferencesHint preferencesHint) {
+ Shape node = NotationFactory.eINSTANCE.createShape();
+ node.getStyles().add(
+ NotationFactory.eINSTANCE.createHintedDiagramLinkStyle());
+ node.setLayoutConstraint(NotationFactory.eINSTANCE.createBounds());
+ node.setType(ComrelVisualIDRegistry
+ .getType(ParallelQueuedUnit4EditPart.VISUAL_ID));
+ ViewUtil.insertChildView(containerView, node, index, persisted);
+ node.setElement(domainElement);
+ // initializeFromPreferences
+ final IPreferenceStore prefStore = (IPreferenceStore) preferencesHint
+ .getPreferenceStore();
+
+ org.eclipse.swt.graphics.RGB lineRGB = PreferenceConverter.getColor(
+ prefStore, IPreferenceConstants.PREF_LINE_COLOR);
+ ViewUtil.setStructuralFeatureValue(node,
+ NotationPackage.eINSTANCE.getLineStyle_LineColor(),
+ FigureUtilities.RGBToInteger(lineRGB));
+ FontStyle nodeFontStyle = (FontStyle) node
+ .getStyle(NotationPackage.Literals.FONT_STYLE);
+ if (nodeFontStyle != null) {
+ FontData fontData = PreferenceConverter.getFontData(prefStore,
+ IPreferenceConstants.PREF_DEFAULT_FONT);
+ nodeFontStyle.setFontName(fontData.getName());
+ nodeFontStyle.setFontHeight(fontData.getHeight());
+ nodeFontStyle.setBold((fontData.getStyle() & SWT.BOLD) != 0);
+ nodeFontStyle.setItalic((fontData.getStyle() & SWT.ITALIC) != 0);
+ org.eclipse.swt.graphics.RGB fontRGB = PreferenceConverter
+ .getColor(prefStore, IPreferenceConstants.PREF_FONT_COLOR);
+ nodeFontStyle.setFontColor(FigureUtilities.RGBToInteger(fontRGB)
+ .intValue());
+ }
+ org.eclipse.swt.graphics.RGB fillRGB = PreferenceConverter.getColor(
+ prefStore, IPreferenceConstants.PREF_FILL_COLOR);
+ ViewUtil.setStructuralFeatureValue(node,
+ NotationPackage.eINSTANCE.getFillStyle_FillColor(),
+ FigureUtilities.RGBToInteger(fillRGB));
+ Node label5070 = createLabel(
+ node,
+ ComrelVisualIDRegistry
+ .getType(ParallelQueuedUnitNameTypeLblStrict4EditPart.VISUAL_ID));
+ createCompartment(
+ node,
+ ComrelVisualIDRegistry
+ .getType(ParallelQueuedUnitParallelQueuedUnitHelperUnitsCompartment3EditPart.VISUAL_ID),
+ true, false, false, false);
+ createCompartment(
+ node,
+ ComrelVisualIDRegistry
+ .getType(ParallelQueuedUnitParallelQueuedUnitRefactoringUnitsCompartment3EditPart.VISUAL_ID),
+ true, false, false, false);
+ return node;
+ }
+
+ /**
+ * @generated
+ */
+ public Node createSingleFeatureUnit_3038(EObject domainElement,
+ View containerView, int index, boolean persisted,
+ PreferencesHint preferencesHint) {
+ Shape node = NotationFactory.eINSTANCE.createShape();
+ node.setLayoutConstraint(NotationFactory.eINSTANCE.createBounds());
+ node.setType(ComrelVisualIDRegistry
+ .getType(SingleFeatureUnit2EditPart.VISUAL_ID));
+ ViewUtil.insertChildView(containerView, node, index, persisted);
+ node.setElement(domainElement);
+ // initializeFromPreferences
+ final IPreferenceStore prefStore = (IPreferenceStore) preferencesHint
+ .getPreferenceStore();
+
+ org.eclipse.swt.graphics.RGB lineRGB = PreferenceConverter.getColor(
+ prefStore, IPreferenceConstants.PREF_LINE_COLOR);
+ ViewUtil.setStructuralFeatureValue(node,
+ NotationPackage.eINSTANCE.getLineStyle_LineColor(),
+ FigureUtilities.RGBToInteger(lineRGB));
+ FontStyle nodeFontStyle = (FontStyle) node
+ .getStyle(NotationPackage.Literals.FONT_STYLE);
+ if (nodeFontStyle != null) {
+ FontData fontData = PreferenceConverter.getFontData(prefStore,
+ IPreferenceConstants.PREF_DEFAULT_FONT);
+ nodeFontStyle.setFontName(fontData.getName());
+ nodeFontStyle.setFontHeight(fontData.getHeight());
+ nodeFontStyle.setBold((fontData.getStyle() & SWT.BOLD) != 0);
+ nodeFontStyle.setItalic((fontData.getStyle() & SWT.ITALIC) != 0);
+ org.eclipse.swt.graphics.RGB fontRGB = PreferenceConverter
+ .getColor(prefStore, IPreferenceConstants.PREF_FONT_COLOR);
+ nodeFontStyle.setFontColor(FigureUtilities.RGBToInteger(fontRGB)
+ .intValue());
+ }
+ org.eclipse.swt.graphics.RGB fillRGB = PreferenceConverter.getColor(
+ prefStore, IPreferenceConstants.PREF_FILL_COLOR);
+ ViewUtil.setStructuralFeatureValue(node,
+ NotationPackage.eINSTANCE.getFillStyle_FillColor(),
+ FigureUtilities.RGBToInteger(fillRGB));
+ Node label5029 = createLabel(node,
+ ComrelVisualIDRegistry
+ .getType(SingleFeatureUnitNameType2EditPart.VISUAL_ID));
+ return node;
+ }
+
+ /**
+ * @generated
+ */
+ public Node createMultiFeatureUnit_3039(EObject domainElement,
+ View containerView, int index, boolean persisted,
+ PreferencesHint preferencesHint) {
+ Shape node = NotationFactory.eINSTANCE.createShape();
+ node.setLayoutConstraint(NotationFactory.eINSTANCE.createBounds());
+ node.setType(ComrelVisualIDRegistry
+ .getType(MultiFeatureUnit2EditPart.VISUAL_ID));
+ ViewUtil.insertChildView(containerView, node, index, persisted);
+ node.setElement(domainElement);
+ // initializeFromPreferences
+ final IPreferenceStore prefStore = (IPreferenceStore) preferencesHint
+ .getPreferenceStore();
+
+ org.eclipse.swt.graphics.RGB lineRGB = PreferenceConverter.getColor(
+ prefStore, IPreferenceConstants.PREF_LINE_COLOR);
+ ViewUtil.setStructuralFeatureValue(node,
+ NotationPackage.eINSTANCE.getLineStyle_LineColor(),
+ FigureUtilities.RGBToInteger(lineRGB));
+ FontStyle nodeFontStyle = (FontStyle) node
+ .getStyle(NotationPackage.Literals.FONT_STYLE);
+ if (nodeFontStyle != null) {
+ FontData fontData = PreferenceConverter.getFontData(prefStore,
+ IPreferenceConstants.PREF_DEFAULT_FONT);
+ nodeFontStyle.setFontName(fontData.getName());
+ nodeFontStyle.setFontHeight(fontData.getHeight());
+ nodeFontStyle.setBold((fontData.getStyle() & SWT.BOLD) != 0);
+ nodeFontStyle.setItalic((fontData.getStyle() & SWT.ITALIC) != 0);
+ org.eclipse.swt.graphics.RGB fontRGB = PreferenceConverter
+ .getColor(prefStore, IPreferenceConstants.PREF_FONT_COLOR);
+ nodeFontStyle.setFontColor(FigureUtilities.RGBToInteger(fontRGB)
+ .intValue());
+ }
+ org.eclipse.swt.graphics.RGB fillRGB = PreferenceConverter.getColor(
+ prefStore, IPreferenceConstants.PREF_FILL_COLOR);
+ ViewUtil.setStructuralFeatureValue(node,
+ NotationPackage.eINSTANCE.getFillStyle_FillColor(),
+ FigureUtilities.RGBToInteger(fillRGB));
+ Node label5030 = createLabel(node,
+ ComrelVisualIDRegistry
+ .getType(MultiFeatureUnitNameType2EditPart.VISUAL_ID));
+ return node;
+ }
+
+ /**
+ * @generated
+ */
+ public Node createSingleFilterUnit_3040(EObject domainElement,
+ View containerView, int index, boolean persisted,
+ PreferencesHint preferencesHint) {
+ Shape node = NotationFactory.eINSTANCE.createShape();
+ node.setLayoutConstraint(NotationFactory.eINSTANCE.createBounds());
+ node.setType(ComrelVisualIDRegistry
+ .getType(SingleFilterUnit2EditPart.VISUAL_ID));
+ ViewUtil.insertChildView(containerView, node, index, persisted);
+ node.setElement(domainElement);
+ // initializeFromPreferences
+ final IPreferenceStore prefStore = (IPreferenceStore) preferencesHint
+ .getPreferenceStore();
+
+ org.eclipse.swt.graphics.RGB lineRGB = PreferenceConverter.getColor(
+ prefStore, IPreferenceConstants.PREF_LINE_COLOR);
+ ViewUtil.setStructuralFeatureValue(node,
+ NotationPackage.eINSTANCE.getLineStyle_LineColor(),
+ FigureUtilities.RGBToInteger(lineRGB));
+ FontStyle nodeFontStyle = (FontStyle) node
+ .getStyle(NotationPackage.Literals.FONT_STYLE);
+ if (nodeFontStyle != null) {
+ FontData fontData = PreferenceConverter.getFontData(prefStore,
+ IPreferenceConstants.PREF_DEFAULT_FONT);
+ nodeFontStyle.setFontName(fontData.getName());
+ nodeFontStyle.setFontHeight(fontData.getHeight());
+ nodeFontStyle.setBold((fontData.getStyle() & SWT.BOLD) != 0);
+ nodeFontStyle.setItalic((fontData.getStyle() & SWT.ITALIC) != 0);
+ org.eclipse.swt.graphics.RGB fontRGB = PreferenceConverter
+ .getColor(prefStore, IPreferenceConstants.PREF_FONT_COLOR);
+ nodeFontStyle.setFontColor(FigureUtilities.RGBToInteger(fontRGB)
+ .intValue());
+ }
+ org.eclipse.swt.graphics.RGB fillRGB = PreferenceConverter.getColor(
+ prefStore, IPreferenceConstants.PREF_FILL_COLOR);
+ ViewUtil.setStructuralFeatureValue(node,
+ NotationPackage.eINSTANCE.getFillStyle_FillColor(),
+ FigureUtilities.RGBToInteger(fillRGB));
+ Node label5031 = createLabel(node,
+ ComrelVisualIDRegistry
+ .getType(SingleFilterUnitNameType2EditPart.VISUAL_ID));
+ return node;
+ }
+
+ /**
+ * @generated
+ */
+ public Node createMultiFilterUnit_3041(EObject domainElement,
+ View containerView, int index, boolean persisted,
+ PreferencesHint preferencesHint) {
+ Shape node = NotationFactory.eINSTANCE.createShape();
+ node.setLayoutConstraint(NotationFactory.eINSTANCE.createBounds());
+ node.setType(ComrelVisualIDRegistry
+ .getType(MultiFilterUnit2EditPart.VISUAL_ID));
+ ViewUtil.insertChildView(containerView, node, index, persisted);
+ node.setElement(domainElement);
+ // initializeFromPreferences
+ final IPreferenceStore prefStore = (IPreferenceStore) preferencesHint
+ .getPreferenceStore();
+
+ org.eclipse.swt.graphics.RGB lineRGB = PreferenceConverter.getColor(
+ prefStore, IPreferenceConstants.PREF_LINE_COLOR);
+ ViewUtil.setStructuralFeatureValue(node,
+ NotationPackage.eINSTANCE.getLineStyle_LineColor(),
+ FigureUtilities.RGBToInteger(lineRGB));
+ FontStyle nodeFontStyle = (FontStyle) node
+ .getStyle(NotationPackage.Literals.FONT_STYLE);
+ if (nodeFontStyle != null) {
+ FontData fontData = PreferenceConverter.getFontData(prefStore,
+ IPreferenceConstants.PREF_DEFAULT_FONT);
+ nodeFontStyle.setFontName(fontData.getName());
+ nodeFontStyle.setFontHeight(fontData.getHeight());
+ nodeFontStyle.setBold((fontData.getStyle() & SWT.BOLD) != 0);
+ nodeFontStyle.setItalic((fontData.getStyle() & SWT.ITALIC) != 0);
+ org.eclipse.swt.graphics.RGB fontRGB = PreferenceConverter
+ .getColor(prefStore, IPreferenceConstants.PREF_FONT_COLOR);
+ nodeFontStyle.setFontColor(FigureUtilities.RGBToInteger(fontRGB)
+ .intValue());
+ }
+ org.eclipse.swt.graphics.RGB fillRGB = PreferenceConverter.getColor(
+ prefStore, IPreferenceConstants.PREF_FILL_COLOR);
+ ViewUtil.setStructuralFeatureValue(node,
+ NotationPackage.eINSTANCE.getFillStyle_FillColor(),
+ FigureUtilities.RGBToInteger(fillRGB));
+ Node label5032 = createLabel(node,
+ ComrelVisualIDRegistry
+ .getType(MultiFilterUnitNameType2EditPart.VISUAL_ID));
+ return node;
+ }
+
+ /**
+ * @generated
+ */
+ public Node createSingleQueuedUnit_3042(EObject domainElement,
+ View containerView, int index, boolean persisted,
+ PreferencesHint preferencesHint) {
+ Shape node = NotationFactory.eINSTANCE.createShape();
+ node.getStyles().add(
+ NotationFactory.eINSTANCE.createHintedDiagramLinkStyle());
+ node.setLayoutConstraint(NotationFactory.eINSTANCE.createBounds());
+ node.setType(ComrelVisualIDRegistry
+ .getType(SingleQueuedUnit3EditPart.VISUAL_ID));
+ ViewUtil.insertChildView(containerView, node, index, persisted);
+ node.setElement(domainElement);
+ // initializeFromPreferences
+ final IPreferenceStore prefStore = (IPreferenceStore) preferencesHint
+ .getPreferenceStore();
+
+ org.eclipse.swt.graphics.RGB lineRGB = PreferenceConverter.getColor(
+ prefStore, IPreferenceConstants.PREF_LINE_COLOR);
+ ViewUtil.setStructuralFeatureValue(node,
+ NotationPackage.eINSTANCE.getLineStyle_LineColor(),
+ FigureUtilities.RGBToInteger(lineRGB));
+ FontStyle nodeFontStyle = (FontStyle) node
+ .getStyle(NotationPackage.Literals.FONT_STYLE);
+ if (nodeFontStyle != null) {
+ FontData fontData = PreferenceConverter.getFontData(prefStore,
+ IPreferenceConstants.PREF_DEFAULT_FONT);
+ nodeFontStyle.setFontName(fontData.getName());
+ nodeFontStyle.setFontHeight(fontData.getHeight());
+ nodeFontStyle.setBold((fontData.getStyle() & SWT.BOLD) != 0);
+ nodeFontStyle.setItalic((fontData.getStyle() & SWT.ITALIC) != 0);
+ org.eclipse.swt.graphics.RGB fontRGB = PreferenceConverter
+ .getColor(prefStore, IPreferenceConstants.PREF_FONT_COLOR);
+ nodeFontStyle.setFontColor(FigureUtilities.RGBToInteger(fontRGB)
+ .intValue());
+ }
+ org.eclipse.swt.graphics.RGB fillRGB = PreferenceConverter.getColor(
+ prefStore, IPreferenceConstants.PREF_FILL_COLOR);
+ ViewUtil.setStructuralFeatureValue(node,
+ NotationPackage.eINSTANCE.getFillStyle_FillColor(),
+ FigureUtilities.RGBToInteger(fillRGB));
+ Node label5069 = createLabel(
+ node,
+ ComrelVisualIDRegistry
+ .getType(SingleQueuedUnitNameTypeLblStrict3EditPart.VISUAL_ID));
+ createCompartment(
+ node,
+ ComrelVisualIDRegistry
+ .getType(SingleQueuedUnitSingleQueuedUnitHelperUnitsCompartment2EditPart.VISUAL_ID),
+ true, false, false, false);
+ createCompartment(
+ node,
+ ComrelVisualIDRegistry
+ .getType(SingleQueuedUnitSingleQueuedUnitRefactoringUnitCompartment2EditPart.VISUAL_ID),
+ true, false, false, false);
+ return node;
+ }
+
+ /**
+ * @generated
+ */
+ public Node createParallelQueuedUnit_3043(EObject domainElement,
+ View containerView, int index, boolean persisted,
+ PreferencesHint preferencesHint) {
+ Shape node = NotationFactory.eINSTANCE.createShape();
+ node.getStyles().add(
+ NotationFactory.eINSTANCE.createHintedDiagramLinkStyle());
+ node.setLayoutConstraint(NotationFactory.eINSTANCE.createBounds());
+ node.setType(ComrelVisualIDRegistry
+ .getType(ParallelQueuedUnit5EditPart.VISUAL_ID));
+ ViewUtil.insertChildView(containerView, node, index, persisted);
+ node.setElement(domainElement);
+ // initializeFromPreferences
+ final IPreferenceStore prefStore = (IPreferenceStore) preferencesHint
+ .getPreferenceStore();
+
+ org.eclipse.swt.graphics.RGB lineRGB = PreferenceConverter.getColor(
+ prefStore, IPreferenceConstants.PREF_LINE_COLOR);
+ ViewUtil.setStructuralFeatureValue(node,
+ NotationPackage.eINSTANCE.getLineStyle_LineColor(),
+ FigureUtilities.RGBToInteger(lineRGB));
+ FontStyle nodeFontStyle = (FontStyle) node
+ .getStyle(NotationPackage.Literals.FONT_STYLE);
+ if (nodeFontStyle != null) {
+ FontData fontData = PreferenceConverter.getFontData(prefStore,
+ IPreferenceConstants.PREF_DEFAULT_FONT);
+ nodeFontStyle.setFontName(fontData.getName());
+ nodeFontStyle.setFontHeight(fontData.getHeight());
+ nodeFontStyle.setBold((fontData.getStyle() & SWT.BOLD) != 0);
+ nodeFontStyle.setItalic((fontData.getStyle() & SWT.ITALIC) != 0);
+ org.eclipse.swt.graphics.RGB fontRGB = PreferenceConverter
+ .getColor(prefStore, IPreferenceConstants.PREF_FONT_COLOR);
+ nodeFontStyle.setFontColor(FigureUtilities.RGBToInteger(fontRGB)
+ .intValue());
+ }
+ org.eclipse.swt.graphics.RGB fillRGB = PreferenceConverter.getColor(
+ prefStore, IPreferenceConstants.PREF_FILL_COLOR);
+ ViewUtil.setStructuralFeatureValue(node,
+ NotationPackage.eINSTANCE.getFillStyle_FillColor(),
+ FigureUtilities.RGBToInteger(fillRGB));
+ Node label5068 = createLabel(
+ node,
+ ComrelVisualIDRegistry
+ .getType(ParallelQueuedUnitNameTypeLblStrict5EditPart.VISUAL_ID));
+ createCompartment(
+ node,
+ ComrelVisualIDRegistry
+ .getType(ParallelQueuedUnitParallelQueuedUnitHelperUnitsCompartment4EditPart.VISUAL_ID),
+ true, false, false, false);
+ createCompartment(
+ node,
+ ComrelVisualIDRegistry
+ .getType(ParallelQueuedUnitParallelQueuedUnitRefactoringUnitsCompartment4EditPart.VISUAL_ID),
+ true, false, false, false);
+ return node;
+ }
+
+ /**
+ * @generated
+ */
+ public Node createSequentialUnit_3044(EObject domainElement,
+ View containerView, int index, boolean persisted,
+ PreferencesHint preferencesHint) {
+ Shape node = NotationFactory.eINSTANCE.createShape();
+ node.getStyles().add(
+ NotationFactory.eINSTANCE.createHintedDiagramLinkStyle());
+ node.setLayoutConstraint(NotationFactory.eINSTANCE.createBounds());
+ node.setType(ComrelVisualIDRegistry
+ .getType(SequentialUnit3EditPart.VISUAL_ID));
+ ViewUtil.insertChildView(containerView, node, index, persisted);
+ node.setElement(domainElement);
+ // initializeFromPreferences
+ final IPreferenceStore prefStore = (IPreferenceStore) preferencesHint
+ .getPreferenceStore();
+
+ org.eclipse.swt.graphics.RGB lineRGB = PreferenceConverter.getColor(
+ prefStore, IPreferenceConstants.PREF_LINE_COLOR);
+ ViewUtil.setStructuralFeatureValue(node,
+ NotationPackage.eINSTANCE.getLineStyle_LineColor(),
+ FigureUtilities.RGBToInteger(lineRGB));
+ FontStyle nodeFontStyle = (FontStyle) node
+ .getStyle(NotationPackage.Literals.FONT_STYLE);
+ if (nodeFontStyle != null) {
+ FontData fontData = PreferenceConverter.getFontData(prefStore,
+ IPreferenceConstants.PREF_DEFAULT_FONT);
+ nodeFontStyle.setFontName(fontData.getName());
+ nodeFontStyle.setFontHeight(fontData.getHeight());
+ nodeFontStyle.setBold((fontData.getStyle() & SWT.BOLD) != 0);
+ nodeFontStyle.setItalic((fontData.getStyle() & SWT.ITALIC) != 0);
+ org.eclipse.swt.graphics.RGB fontRGB = PreferenceConverter
+ .getColor(prefStore, IPreferenceConstants.PREF_FONT_COLOR);
+ nodeFontStyle.setFontColor(FigureUtilities.RGBToInteger(fontRGB)
+ .intValue());
+ }
+ org.eclipse.swt.graphics.RGB fillRGB = PreferenceConverter.getColor(
+ prefStore, IPreferenceConstants.PREF_FILL_COLOR);
+ ViewUtil.setStructuralFeatureValue(node,
+ NotationPackage.eINSTANCE.getFillStyle_FillColor(),
+ FigureUtilities.RGBToInteger(fillRGB));
+ Node label5067 = createLabel(
+ node,
+ ComrelVisualIDRegistry
+ .getType(SequentialUnitNameTypeLblStrict3EditPart.VISUAL_ID));
+ createCompartment(
+ node,
+ ComrelVisualIDRegistry
+ .getType(SequentialUnitSequentialUnitHelperUnitsCompartment2EditPart.VISUAL_ID),
+ true, false, false, false);
+ createCompartment(
+ node,
+ ComrelVisualIDRegistry
+ .getType(SequentialUnitSequentialUnitRefactoringUnitsCompartment2EditPart.VISUAL_ID),
+ true, false, false, false);
+ return node;
+ }
+
+ /**
+ * @generated
+ */
+ public Node createParallelQueuedUnit_3045(EObject domainElement,
+ View containerView, int index, boolean persisted,
+ PreferencesHint preferencesHint) {
+ Shape node = NotationFactory.eINSTANCE.createShape();
+ node.getStyles().add(
+ NotationFactory.eINSTANCE.createHintedDiagramLinkStyle());
+ node.setLayoutConstraint(NotationFactory.eINSTANCE.createBounds());
+ node.setType(ComrelVisualIDRegistry
+ .getType(ParallelQueuedUnit6EditPart.VISUAL_ID));
+ ViewUtil.insertChildView(containerView, node, index, persisted);
+ node.setElement(domainElement);
+ // initializeFromPreferences
+ final IPreferenceStore prefStore = (IPreferenceStore) preferencesHint
+ .getPreferenceStore();
+
+ org.eclipse.swt.graphics.RGB lineRGB = PreferenceConverter.getColor(
+ prefStore, IPreferenceConstants.PREF_LINE_COLOR);
+ ViewUtil.setStructuralFeatureValue(node,
+ NotationPackage.eINSTANCE.getLineStyle_LineColor(),
+ FigureUtilities.RGBToInteger(lineRGB));
+ FontStyle nodeFontStyle = (FontStyle) node
+ .getStyle(NotationPackage.Literals.FONT_STYLE);
+ if (nodeFontStyle != null) {
+ FontData fontData = PreferenceConverter.getFontData(prefStore,
+ IPreferenceConstants.PREF_DEFAULT_FONT);
+ nodeFontStyle.setFontName(fontData.getName());
+ nodeFontStyle.setFontHeight(fontData.getHeight());
+ nodeFontStyle.setBold((fontData.getStyle() & SWT.BOLD) != 0);
+ nodeFontStyle.setItalic((fontData.getStyle() & SWT.ITALIC) != 0);
+ org.eclipse.swt.graphics.RGB fontRGB = PreferenceConverter
+ .getColor(prefStore, IPreferenceConstants.PREF_FONT_COLOR);
+ nodeFontStyle.setFontColor(FigureUtilities.RGBToInteger(fontRGB)
+ .intValue());
+ }
+ org.eclipse.swt.graphics.RGB fillRGB = PreferenceConverter.getColor(
+ prefStore, IPreferenceConstants.PREF_FILL_COLOR);
+ ViewUtil.setStructuralFeatureValue(node,
+ NotationPackage.eINSTANCE.getFillStyle_FillColor(),
+ FigureUtilities.RGBToInteger(fillRGB));
+ Node label5066 = createLabel(
+ node,
+ ComrelVisualIDRegistry
+ .getType(ParallelQueuedUnitNameTypeLblStrict6EditPart.VISUAL_ID));
+ createCompartment(
+ node,
+ ComrelVisualIDRegistry
+ .getType(ParallelQueuedUnitParallelQueuedUnitHelperUnitsCompartment5EditPart.VISUAL_ID),
+ true, false, false, false);
+ createCompartment(
+ node,
+ ComrelVisualIDRegistry
+ .getType(ParallelQueuedUnitParallelQueuedUnitRefactoringUnitsCompartment5EditPart.VISUAL_ID),
+ true, false, false, false);
+ return node;
+ }
+
+ /**
+ * @generated
+ */
+ public Node createConditionalUnit_3046(EObject domainElement,
+ View containerView, int index, boolean persisted,
+ PreferencesHint preferencesHint) {
+ Shape node = NotationFactory.eINSTANCE.createShape();
+ node.getStyles().add(
+ NotationFactory.eINSTANCE.createHintedDiagramLinkStyle());
+ node.setLayoutConstraint(NotationFactory.eINSTANCE.createBounds());
+ node.setType(ComrelVisualIDRegistry
+ .getType(ConditionalUnit3EditPart.VISUAL_ID));
+ ViewUtil.insertChildView(containerView, node, index, persisted);
+ node.setElement(domainElement);
+ // initializeFromPreferences
+ final IPreferenceStore prefStore = (IPreferenceStore) preferencesHint
+ .getPreferenceStore();
+
+ org.eclipse.swt.graphics.RGB lineRGB = PreferenceConverter.getColor(
+ prefStore, IPreferenceConstants.PREF_LINE_COLOR);
+ ViewUtil.setStructuralFeatureValue(node,
+ NotationPackage.eINSTANCE.getLineStyle_LineColor(),
+ FigureUtilities.RGBToInteger(lineRGB));
+ FontStyle nodeFontStyle = (FontStyle) node
+ .getStyle(NotationPackage.Literals.FONT_STYLE);
+ if (nodeFontStyle != null) {
+ FontData fontData = PreferenceConverter.getFontData(prefStore,
+ IPreferenceConstants.PREF_DEFAULT_FONT);
+ nodeFontStyle.setFontName(fontData.getName());
+ nodeFontStyle.setFontHeight(fontData.getHeight());
+ nodeFontStyle.setBold((fontData.getStyle() & SWT.BOLD) != 0);
+ nodeFontStyle.setItalic((fontData.getStyle() & SWT.ITALIC) != 0);
+ org.eclipse.swt.graphics.RGB fontRGB = PreferenceConverter
+ .getColor(prefStore, IPreferenceConstants.PREF_FONT_COLOR);
+ nodeFontStyle.setFontColor(FigureUtilities.RGBToInteger(fontRGB)
+ .intValue());
+ }
+ org.eclipse.swt.graphics.RGB fillRGB = PreferenceConverter.getColor(
+ prefStore, IPreferenceConstants.PREF_FILL_COLOR);
+ ViewUtil.setStructuralFeatureValue(node,
+ NotationPackage.eINSTANCE.getFillStyle_FillColor(),
+ FigureUtilities.RGBToInteger(fillRGB));
+ Node label5065 = createLabel(node,
+ ComrelVisualIDRegistry
+ .getType(ConditionalUnitNameType3EditPart.VISUAL_ID));
+ createCompartment(
+ node,
+ ComrelVisualIDRegistry
+ .getType(ConditionalUnitConditionalUnitIfCompartment2EditPart.VISUAL_ID),
+ true, false, false, false);
+ createCompartment(
+ node,
+ ComrelVisualIDRegistry
+ .getType(ConditionalUnitConditionalUnitHelperUnitsCompartment2EditPart.VISUAL_ID),
+ true, false, false, false);
+ createCompartment(
+ node,
+ ComrelVisualIDRegistry
+ .getType(ConditionalUnitConditionalUnitThenCompartment2EditPart.VISUAL_ID),
+ true, false, false, false);
+ createCompartment(
+ node,
+ ComrelVisualIDRegistry
+ .getType(ConditionalUnitConditionalUnitElseCompartment2EditPart.VISUAL_ID),
+ true, false, false, false);
+ return node;
+ }
+
+ /**
+ * @generated
+ */
+ public Node createCartesianQueuedUnit_3047(EObject domainElement,
+ View containerView, int index, boolean persisted,
+ PreferencesHint preferencesHint) {
+ Shape node = NotationFactory.eINSTANCE.createShape();
+ node.getStyles().add(
+ NotationFactory.eINSTANCE.createHintedDiagramLinkStyle());
+ node.setLayoutConstraint(NotationFactory.eINSTANCE.createBounds());
+ node.setType(ComrelVisualIDRegistry
+ .getType(CartesianQueuedUnit7EditPart.VISUAL_ID));
+ ViewUtil.insertChildView(containerView, node, index, persisted);
+ node.setElement(domainElement);
+ // initializeFromPreferences
+ final IPreferenceStore prefStore = (IPreferenceStore) preferencesHint
+ .getPreferenceStore();
+
+ org.eclipse.swt.graphics.RGB lineRGB = PreferenceConverter.getColor(
+ prefStore, IPreferenceConstants.PREF_LINE_COLOR);
+ ViewUtil.setStructuralFeatureValue(node,
+ NotationPackage.eINSTANCE.getLineStyle_LineColor(),
+ FigureUtilities.RGBToInteger(lineRGB));
+ FontStyle nodeFontStyle = (FontStyle) node
+ .getStyle(NotationPackage.Literals.FONT_STYLE);
+ if (nodeFontStyle != null) {
+ FontData fontData = PreferenceConverter.getFontData(prefStore,
+ IPreferenceConstants.PREF_DEFAULT_FONT);
+ nodeFontStyle.setFontName(fontData.getName());
+ nodeFontStyle.setFontHeight(fontData.getHeight());
+ nodeFontStyle.setBold((fontData.getStyle() & SWT.BOLD) != 0);
+ nodeFontStyle.setItalic((fontData.getStyle() & SWT.ITALIC) != 0);
+ org.eclipse.swt.graphics.RGB fontRGB = PreferenceConverter
+ .getColor(prefStore, IPreferenceConstants.PREF_FONT_COLOR);
+ nodeFontStyle.setFontColor(FigureUtilities.RGBToInteger(fontRGB)
+ .intValue());
+ }
+ org.eclipse.swt.graphics.RGB fillRGB = PreferenceConverter.getColor(
+ prefStore, IPreferenceConstants.PREF_FILL_COLOR);
+ ViewUtil.setStructuralFeatureValue(node,
+ NotationPackage.eINSTANCE.getFillStyle_FillColor(),
+ FigureUtilities.RGBToInteger(fillRGB));
+ Node label5033 = createLabel(
+ node,
+ ComrelVisualIDRegistry
+ .getType(CartesianQueuedUnitNameTypeLblStrict7EditPart.VISUAL_ID));
+ createCompartment(
+ node,
+ ComrelVisualIDRegistry
+ .getType(CartesianQueuedUnitCartesianQueuedUnitHelperUnitsCompartment7EditPart.VISUAL_ID),
+ true, false, false, false);
+ createCompartment(
+ node,
+ ComrelVisualIDRegistry
+ .getType(CartesianQueuedUnitCartesianQueuedUnitRefactoringUnitCompartment7EditPart.VISUAL_ID),
+ true, false, false, false);
+ return node;
+ }
+
+ /**
+ * @generated
+ */
+ public Node createParallelQueuedUnit_3048(EObject domainElement,
+ View containerView, int index, boolean persisted,
+ PreferencesHint preferencesHint) {
+ Shape node = NotationFactory.eINSTANCE.createShape();
+ node.getStyles().add(
+ NotationFactory.eINSTANCE.createHintedDiagramLinkStyle());
+ node.setLayoutConstraint(NotationFactory.eINSTANCE.createBounds());
+ node.setType(ComrelVisualIDRegistry
+ .getType(ParallelQueuedUnit7EditPart.VISUAL_ID));
+ ViewUtil.insertChildView(containerView, node, index, persisted);
+ node.setElement(domainElement);
+ // initializeFromPreferences
+ final IPreferenceStore prefStore = (IPreferenceStore) preferencesHint
+ .getPreferenceStore();
+
+ org.eclipse.swt.graphics.RGB lineRGB = PreferenceConverter.getColor(
+ prefStore, IPreferenceConstants.PREF_LINE_COLOR);
+ ViewUtil.setStructuralFeatureValue(node,
+ NotationPackage.eINSTANCE.getLineStyle_LineColor(),
+ FigureUtilities.RGBToInteger(lineRGB));
+ FontStyle nodeFontStyle = (FontStyle) node
+ .getStyle(NotationPackage.Literals.FONT_STYLE);
+ if (nodeFontStyle != null) {
+ FontData fontData = PreferenceConverter.getFontData(prefStore,
+ IPreferenceConstants.PREF_DEFAULT_FONT);
+ nodeFontStyle.setFontName(fontData.getName());
+ nodeFontStyle.setFontHeight(fontData.getHeight());
+ nodeFontStyle.setBold((fontData.getStyle() & SWT.BOLD) != 0);
+ nodeFontStyle.setItalic((fontData.getStyle() & SWT.ITALIC) != 0);
+ org.eclipse.swt.graphics.RGB fontRGB = PreferenceConverter
+ .getColor(prefStore, IPreferenceConstants.PREF_FONT_COLOR);
+ nodeFontStyle.setFontColor(FigureUtilities.RGBToInteger(fontRGB)
+ .intValue());
+ }
+ org.eclipse.swt.graphics.RGB fillRGB = PreferenceConverter.getColor(
+ prefStore, IPreferenceConstants.PREF_FILL_COLOR);
+ ViewUtil.setStructuralFeatureValue(node,
+ NotationPackage.eINSTANCE.getFillStyle_FillColor(),
+ FigureUtilities.RGBToInteger(fillRGB));
+ Node label5035 = createLabel(
+ node,
+ ComrelVisualIDRegistry
+ .getType(ParallelQueuedUnitNameTypeLblStrict7EditPart.VISUAL_ID));
+ createCompartment(
+ node,
+ ComrelVisualIDRegistry
+ .getType(ParallelQueuedUnitParallelQueuedUnitHelperUnitsCompartment6EditPart.VISUAL_ID),
+ true, false, false, false);
+ createCompartment(
+ node,
+ ComrelVisualIDRegistry
+ .getType(ParallelQueuedUnitParallelQueuedUnitRefactoringUnitsCompartment6EditPart.VISUAL_ID),
+ true, false, false, false);
+ return node;
+ }
+
+ /**
+ * @generated
+ */
+ public Node createAtomicUnit_3049(EObject domainElement,
+ View containerView, int index, boolean persisted,
+ PreferencesHint preferencesHint) {
+ Shape node = NotationFactory.eINSTANCE.createShape();
+ node.setLayoutConstraint(NotationFactory.eINSTANCE.createBounds());
+ node.setType(ComrelVisualIDRegistry
+ .getType(AtomicUnit3EditPart.VISUAL_ID));
+ ViewUtil.insertChildView(containerView, node, index, persisted);
+ node.setElement(domainElement);
+ // initializeFromPreferences
+ final IPreferenceStore prefStore = (IPreferenceStore) preferencesHint
+ .getPreferenceStore();
+
+ org.eclipse.swt.graphics.RGB lineRGB = PreferenceConverter.getColor(
+ prefStore, IPreferenceConstants.PREF_LINE_COLOR);
+ ViewUtil.setStructuralFeatureValue(node,
+ NotationPackage.eINSTANCE.getLineStyle_LineColor(),
+ FigureUtilities.RGBToInteger(lineRGB));
+ FontStyle nodeFontStyle = (FontStyle) node
+ .getStyle(NotationPackage.Literals.FONT_STYLE);
+ if (nodeFontStyle != null) {
+ FontData fontData = PreferenceConverter.getFontData(prefStore,
+ IPreferenceConstants.PREF_DEFAULT_FONT);
+ nodeFontStyle.setFontName(fontData.getName());
+ nodeFontStyle.setFontHeight(fontData.getHeight());
+ nodeFontStyle.setBold((fontData.getStyle() & SWT.BOLD) != 0);
+ nodeFontStyle.setItalic((fontData.getStyle() & SWT.ITALIC) != 0);
+ org.eclipse.swt.graphics.RGB fontRGB = PreferenceConverter
+ .getColor(prefStore, IPreferenceConstants.PREF_FONT_COLOR);
+ nodeFontStyle.setFontColor(FigureUtilities.RGBToInteger(fontRGB)
+ .intValue());
+ }
+ org.eclipse.swt.graphics.RGB fillRGB = PreferenceConverter.getColor(
+ prefStore, IPreferenceConstants.PREF_FILL_COLOR);
+ ViewUtil.setStructuralFeatureValue(node,
+ NotationPackage.eINSTANCE.getFillStyle_FillColor(),
+ FigureUtilities.RGBToInteger(fillRGB));
+ Node label5034 = createLabel(node,
+ ComrelVisualIDRegistry
+ .getType(AtomicUnitLabelType3EditPart.VISUAL_ID));
+ return node;
+ }
+
+ /**
+ * @generated
+ */
+ public Node createSingleFeatureUnit_3050(EObject domainElement,
+ View containerView, int index, boolean persisted,
+ PreferencesHint preferencesHint) {
+ Shape node = NotationFactory.eINSTANCE.createShape();
+ node.setLayoutConstraint(NotationFactory.eINSTANCE.createBounds());
+ node.setType(ComrelVisualIDRegistry
+ .getType(SingleFeatureUnit3EditPart.VISUAL_ID));
+ ViewUtil.insertChildView(containerView, node, index, persisted);
+ node.setElement(domainElement);
+ // initializeFromPreferences
+ final IPreferenceStore prefStore = (IPreferenceStore) preferencesHint
+ .getPreferenceStore();
+
+ org.eclipse.swt.graphics.RGB lineRGB = PreferenceConverter.getColor(
+ prefStore, IPreferenceConstants.PREF_LINE_COLOR);
+ ViewUtil.setStructuralFeatureValue(node,
+ NotationPackage.eINSTANCE.getLineStyle_LineColor(),
+ FigureUtilities.RGBToInteger(lineRGB));
+ FontStyle nodeFontStyle = (FontStyle) node
+ .getStyle(NotationPackage.Literals.FONT_STYLE);
+ if (nodeFontStyle != null) {
+ FontData fontData = PreferenceConverter.getFontData(prefStore,
+ IPreferenceConstants.PREF_DEFAULT_FONT);
+ nodeFontStyle.setFontName(fontData.getName());
+ nodeFontStyle.setFontHeight(fontData.getHeight());
+ nodeFontStyle.setBold((fontData.getStyle() & SWT.BOLD) != 0);
+ nodeFontStyle.setItalic((fontData.getStyle() & SWT.ITALIC) != 0);
+ org.eclipse.swt.graphics.RGB fontRGB = PreferenceConverter
+ .getColor(prefStore, IPreferenceConstants.PREF_FONT_COLOR);
+ nodeFontStyle.setFontColor(FigureUtilities.RGBToInteger(fontRGB)
+ .intValue());
+ }
+ org.eclipse.swt.graphics.RGB fillRGB = PreferenceConverter.getColor(
+ prefStore, IPreferenceConstants.PREF_FILL_COLOR);
+ ViewUtil.setStructuralFeatureValue(node,
+ NotationPackage.eINSTANCE.getFillStyle_FillColor(),
+ FigureUtilities.RGBToInteger(fillRGB));
+ Node label5036 = createLabel(node,
+ ComrelVisualIDRegistry
+ .getType(SingleFeatureUnitNameType3EditPart.VISUAL_ID));
+ return node;
+ }
+
+ /**
+ * @generated
+ */
+ public Node createMultiFeatureUnit_3051(EObject domainElement,
+ View containerView, int index, boolean persisted,
+ PreferencesHint preferencesHint) {
+ Shape node = NotationFactory.eINSTANCE.createShape();
+ node.setLayoutConstraint(NotationFactory.eINSTANCE.createBounds());
+ node.setType(ComrelVisualIDRegistry
+ .getType(MultiFeatureUnit3EditPart.VISUAL_ID));
+ ViewUtil.insertChildView(containerView, node, index, persisted);
+ node.setElement(domainElement);
+ // initializeFromPreferences
+ final IPreferenceStore prefStore = (IPreferenceStore) preferencesHint
+ .getPreferenceStore();
+
+ org.eclipse.swt.graphics.RGB lineRGB = PreferenceConverter.getColor(
+ prefStore, IPreferenceConstants.PREF_LINE_COLOR);
+ ViewUtil.setStructuralFeatureValue(node,
+ NotationPackage.eINSTANCE.getLineStyle_LineColor(),
+ FigureUtilities.RGBToInteger(lineRGB));
+ FontStyle nodeFontStyle = (FontStyle) node
+ .getStyle(NotationPackage.Literals.FONT_STYLE);
+ if (nodeFontStyle != null) {
+ FontData fontData = PreferenceConverter.getFontData(prefStore,
+ IPreferenceConstants.PREF_DEFAULT_FONT);
+ nodeFontStyle.setFontName(fontData.getName());
+ nodeFontStyle.setFontHeight(fontData.getHeight());
+ nodeFontStyle.setBold((fontData.getStyle() & SWT.BOLD) != 0);
+ nodeFontStyle.setItalic((fontData.getStyle() & SWT.ITALIC) != 0);
+ org.eclipse.swt.graphics.RGB fontRGB = PreferenceConverter
+ .getColor(prefStore, IPreferenceConstants.PREF_FONT_COLOR);
+ nodeFontStyle.setFontColor(FigureUtilities.RGBToInteger(fontRGB)
+ .intValue());
+ }
+ org.eclipse.swt.graphics.RGB fillRGB = PreferenceConverter.getColor(
+ prefStore, IPreferenceConstants.PREF_FILL_COLOR);
+ ViewUtil.setStructuralFeatureValue(node,
+ NotationPackage.eINSTANCE.getFillStyle_FillColor(),
+ FigureUtilities.RGBToInteger(fillRGB));
+ Node label5037 = createLabel(node,
+ ComrelVisualIDRegistry
+ .getType(MultiFeatureUnitNameType3EditPart.VISUAL_ID));
+ return node;
+ }
+
+ /**
+ * @generated
+ */
+ public Node createSingleFilterUnit_3052(EObject domainElement,
+ View containerView, int index, boolean persisted,
+ PreferencesHint preferencesHint) {
+ Shape node = NotationFactory.eINSTANCE.createShape();
+ node.setLayoutConstraint(NotationFactory.eINSTANCE.createBounds());
+ node.setType(ComrelVisualIDRegistry
+ .getType(SingleFilterUnit3EditPart.VISUAL_ID));
+ ViewUtil.insertChildView(containerView, node, index, persisted);
+ node.setElement(domainElement);
+ // initializeFromPreferences
+ final IPreferenceStore prefStore = (IPreferenceStore) preferencesHint
+ .getPreferenceStore();
+
+ org.eclipse.swt.graphics.RGB lineRGB = PreferenceConverter.getColor(
+ prefStore, IPreferenceConstants.PREF_LINE_COLOR);
+ ViewUtil.setStructuralFeatureValue(node,
+ NotationPackage.eINSTANCE.getLineStyle_LineColor(),
+ FigureUtilities.RGBToInteger(lineRGB));
+ FontStyle nodeFontStyle = (FontStyle) node
+ .getStyle(NotationPackage.Literals.FONT_STYLE);
+ if (nodeFontStyle != null) {
+ FontData fontData = PreferenceConverter.getFontData(prefStore,
+ IPreferenceConstants.PREF_DEFAULT_FONT);
+ nodeFontStyle.setFontName(fontData.getName());
+ nodeFontStyle.setFontHeight(fontData.getHeight());
+ nodeFontStyle.setBold((fontData.getStyle() & SWT.BOLD) != 0);
+ nodeFontStyle.setItalic((fontData.getStyle() & SWT.ITALIC) != 0);
+ org.eclipse.swt.graphics.RGB fontRGB = PreferenceConverter
+ .getColor(prefStore, IPreferenceConstants.PREF_FONT_COLOR);
+ nodeFontStyle.setFontColor(FigureUtilities.RGBToInteger(fontRGB)
+ .intValue());
+ }
+ org.eclipse.swt.graphics.RGB fillRGB = PreferenceConverter.getColor(
+ prefStore, IPreferenceConstants.PREF_FILL_COLOR);
+ ViewUtil.setStructuralFeatureValue(node,
+ NotationPackage.eINSTANCE.getFillStyle_FillColor(),
+ FigureUtilities.RGBToInteger(fillRGB));
+ Node label5038 = createLabel(node,
+ ComrelVisualIDRegistry
+ .getType(SingleFilterUnitNameType3EditPart.VISUAL_ID));
+ return node;
+ }
+
+ /**
+ * @generated
+ */
+ public Node createMultiFilterUnit_3053(EObject domainElement,
+ View containerView, int index, boolean persisted,
+ PreferencesHint preferencesHint) {
+ Shape node = NotationFactory.eINSTANCE.createShape();
+ node.setLayoutConstraint(NotationFactory.eINSTANCE.createBounds());
+ node.setType(ComrelVisualIDRegistry
+ .getType(MultiFilterUnit3EditPart.VISUAL_ID));
+ ViewUtil.insertChildView(containerView, node, index, persisted);
+ node.setElement(domainElement);
+ // initializeFromPreferences
+ final IPreferenceStore prefStore = (IPreferenceStore) preferencesHint
+ .getPreferenceStore();
+
+ org.eclipse.swt.graphics.RGB lineRGB = PreferenceConverter.getColor(
+ prefStore, IPreferenceConstants.PREF_LINE_COLOR);
+ ViewUtil.setStructuralFeatureValue(node,
+ NotationPackage.eINSTANCE.getLineStyle_LineColor(),
+ FigureUtilities.RGBToInteger(lineRGB));
+ FontStyle nodeFontStyle = (FontStyle) node
+ .getStyle(NotationPackage.Literals.FONT_STYLE);
+ if (nodeFontStyle != null) {
+ FontData fontData = PreferenceConverter.getFontData(prefStore,
+ IPreferenceConstants.PREF_DEFAULT_FONT);
+ nodeFontStyle.setFontName(fontData.getName());
+ nodeFontStyle.setFontHeight(fontData.getHeight());
+ nodeFontStyle.setBold((fontData.getStyle() & SWT.BOLD) != 0);
+ nodeFontStyle.setItalic((fontData.getStyle() & SWT.ITALIC) != 0);
+ org.eclipse.swt.graphics.RGB fontRGB = PreferenceConverter
+ .getColor(prefStore, IPreferenceConstants.PREF_FONT_COLOR);
+ nodeFontStyle.setFontColor(FigureUtilities.RGBToInteger(fontRGB)
+ .intValue());
+ }
+ org.eclipse.swt.graphics.RGB fillRGB = PreferenceConverter.getColor(
+ prefStore, IPreferenceConstants.PREF_FILL_COLOR);
+ ViewUtil.setStructuralFeatureValue(node,
+ NotationPackage.eINSTANCE.getFillStyle_FillColor(),
+ FigureUtilities.RGBToInteger(fillRGB));
+ Node label5039 = createLabel(node,
+ ComrelVisualIDRegistry
+ .getType(MultiFilterUnitNameType3EditPart.VISUAL_ID));
+ return node;
+ }
+
+ /**
+ * @generated
+ */
+ public Node createSingleQueuedUnit_3054(EObject domainElement,
+ View containerView, int index, boolean persisted,
+ PreferencesHint preferencesHint) {
+ Shape node = NotationFactory.eINSTANCE.createShape();
+ node.getStyles().add(
+ NotationFactory.eINSTANCE.createHintedDiagramLinkStyle());
+ node.setLayoutConstraint(NotationFactory.eINSTANCE.createBounds());
+ node.setType(ComrelVisualIDRegistry
+ .getType(SingleQueuedUnit4EditPart.VISUAL_ID));
+ ViewUtil.insertChildView(containerView, node, index, persisted);
+ node.setElement(domainElement);
+ // initializeFromPreferences
+ final IPreferenceStore prefStore = (IPreferenceStore) preferencesHint
+ .getPreferenceStore();
+
+ org.eclipse.swt.graphics.RGB lineRGB = PreferenceConverter.getColor(
+ prefStore, IPreferenceConstants.PREF_LINE_COLOR);
+ ViewUtil.setStructuralFeatureValue(node,
+ NotationPackage.eINSTANCE.getLineStyle_LineColor(),
+ FigureUtilities.RGBToInteger(lineRGB));
+ FontStyle nodeFontStyle = (FontStyle) node
+ .getStyle(NotationPackage.Literals.FONT_STYLE);
+ if (nodeFontStyle != null) {
+ FontData fontData = PreferenceConverter.getFontData(prefStore,
+ IPreferenceConstants.PREF_DEFAULT_FONT);
+ nodeFontStyle.setFontName(fontData.getName());
+ nodeFontStyle.setFontHeight(fontData.getHeight());
+ nodeFontStyle.setBold((fontData.getStyle() & SWT.BOLD) != 0);
+ nodeFontStyle.setItalic((fontData.getStyle() & SWT.ITALIC) != 0);
+ org.eclipse.swt.graphics.RGB fontRGB = PreferenceConverter
+ .getColor(prefStore, IPreferenceConstants.PREF_FONT_COLOR);
+ nodeFontStyle.setFontColor(FigureUtilities.RGBToInteger(fontRGB)
+ .intValue());
+ }
+ org.eclipse.swt.graphics.RGB fillRGB = PreferenceConverter.getColor(
+ prefStore, IPreferenceConstants.PREF_FILL_COLOR);
+ ViewUtil.setStructuralFeatureValue(node,
+ NotationPackage.eINSTANCE.getFillStyle_FillColor(),
+ FigureUtilities.RGBToInteger(fillRGB));
+ Node label5064 = createLabel(
+ node,
+ ComrelVisualIDRegistry
+ .getType(SingleQueuedUnitNameTypeLblStrict4EditPart.VISUAL_ID));
+ createCompartment(
+ node,
+ ComrelVisualIDRegistry
+ .getType(SingleQueuedUnitSingleQueuedUnitHelperUnitsCompartment3EditPart.VISUAL_ID),
+ true, false, false, false);
+ createCompartment(
+ node,
+ ComrelVisualIDRegistry
+ .getType(SingleQueuedUnitSingleQueuedUnitRefactoringUnitCompartment3EditPart.VISUAL_ID),
+ true, false, false, false);
+ return node;
+ }
+
+ /**
+ * @generated
+ */
+ public Node createSingleFeatureUnit_3055(EObject domainElement,
+ View containerView, int index, boolean persisted,
+ PreferencesHint preferencesHint) {
+ Shape node = NotationFactory.eINSTANCE.createShape();
+ node.setLayoutConstraint(NotationFactory.eINSTANCE.createBounds());
+ node.setType(ComrelVisualIDRegistry
+ .getType(SingleFeatureUnit4EditPart.VISUAL_ID));
+ ViewUtil.insertChildView(containerView, node, index, persisted);
+ node.setElement(domainElement);
+ // initializeFromPreferences
+ final IPreferenceStore prefStore = (IPreferenceStore) preferencesHint
+ .getPreferenceStore();
+
+ org.eclipse.swt.graphics.RGB lineRGB = PreferenceConverter.getColor(
+ prefStore, IPreferenceConstants.PREF_LINE_COLOR);
+ ViewUtil.setStructuralFeatureValue(node,
+ NotationPackage.eINSTANCE.getLineStyle_LineColor(),
+ FigureUtilities.RGBToInteger(lineRGB));
+ FontStyle nodeFontStyle = (FontStyle) node
+ .getStyle(NotationPackage.Literals.FONT_STYLE);
+ if (nodeFontStyle != null) {
+ FontData fontData = PreferenceConverter.getFontData(prefStore,
+ IPreferenceConstants.PREF_DEFAULT_FONT);
+ nodeFontStyle.setFontName(fontData.getName());
+ nodeFontStyle.setFontHeight(fontData.getHeight());
+ nodeFontStyle.setBold((fontData.getStyle() & SWT.BOLD) != 0);
+ nodeFontStyle.setItalic((fontData.getStyle() & SWT.ITALIC) != 0);
+ org.eclipse.swt.graphics.RGB fontRGB = PreferenceConverter
+ .getColor(prefStore, IPreferenceConstants.PREF_FONT_COLOR);
+ nodeFontStyle.setFontColor(FigureUtilities.RGBToInteger(fontRGB)
+ .intValue());
+ }
+ org.eclipse.swt.graphics.RGB fillRGB = PreferenceConverter.getColor(
+ prefStore, IPreferenceConstants.PREF_FILL_COLOR);
+ ViewUtil.setStructuralFeatureValue(node,
+ NotationPackage.eINSTANCE.getFillStyle_FillColor(),
+ FigureUtilities.RGBToInteger(fillRGB));
+ Node label5040 = createLabel(node,
+ ComrelVisualIDRegistry
+ .getType(SingleFeatureUnitNameType4EditPart.VISUAL_ID));
+ return node;
+ }
+
+ /**
+ * @generated
+ */
+ public Node createMultiFeatureUnit_3056(EObject domainElement,
+ View containerView, int index, boolean persisted,
+ PreferencesHint preferencesHint) {
+ Shape node = NotationFactory.eINSTANCE.createShape();
+ node.setLayoutConstraint(NotationFactory.eINSTANCE.createBounds());
+ node.setType(ComrelVisualIDRegistry
+ .getType(MultiFeatureUnit4EditPart.VISUAL_ID));
+ ViewUtil.insertChildView(containerView, node, index, persisted);
+ node.setElement(domainElement);
+ // initializeFromPreferences
+ final IPreferenceStore prefStore = (IPreferenceStore) preferencesHint
+ .getPreferenceStore();
+
+ org.eclipse.swt.graphics.RGB lineRGB = PreferenceConverter.getColor(
+ prefStore, IPreferenceConstants.PREF_LINE_COLOR);
+ ViewUtil.setStructuralFeatureValue(node,
+ NotationPackage.eINSTANCE.getLineStyle_LineColor(),
+ FigureUtilities.RGBToInteger(lineRGB));
+ FontStyle nodeFontStyle = (FontStyle) node
+ .getStyle(NotationPackage.Literals.FONT_STYLE);
+ if (nodeFontStyle != null) {
+ FontData fontData = PreferenceConverter.getFontData(prefStore,
+ IPreferenceConstants.PREF_DEFAULT_FONT);
+ nodeFontStyle.setFontName(fontData.getName());
+ nodeFontStyle.setFontHeight(fontData.getHeight());
+ nodeFontStyle.setBold((fontData.getStyle() & SWT.BOLD) != 0);
+ nodeFontStyle.setItalic((fontData.getStyle() & SWT.ITALIC) != 0);
+ org.eclipse.swt.graphics.RGB fontRGB = PreferenceConverter
+ .getColor(prefStore, IPreferenceConstants.PREF_FONT_COLOR);
+ nodeFontStyle.setFontColor(FigureUtilities.RGBToInteger(fontRGB)
+ .intValue());
+ }
+ org.eclipse.swt.graphics.RGB fillRGB = PreferenceConverter.getColor(
+ prefStore, IPreferenceConstants.PREF_FILL_COLOR);
+ ViewUtil.setStructuralFeatureValue(node,
+ NotationPackage.eINSTANCE.getFillStyle_FillColor(),
+ FigureUtilities.RGBToInteger(fillRGB));
+ Node label5041 = createLabel(node,
+ ComrelVisualIDRegistry
+ .getType(MultiFeatureUnitNameType4EditPart.VISUAL_ID));
+ return node;
+ }
+
+ /**
+ * @generated
+ */
+ public Node createSingleFilterUnit_3057(EObject domainElement,
+ View containerView, int index, boolean persisted,
+ PreferencesHint preferencesHint) {
+ Shape node = NotationFactory.eINSTANCE.createShape();
+ node.setLayoutConstraint(NotationFactory.eINSTANCE.createBounds());
+ node.setType(ComrelVisualIDRegistry
+ .getType(SingleFilterUnit4EditPart.VISUAL_ID));
+ ViewUtil.insertChildView(containerView, node, index, persisted);
+ node.setElement(domainElement);
+ // initializeFromPreferences
+ final IPreferenceStore prefStore = (IPreferenceStore) preferencesHint
+ .getPreferenceStore();
+
+ org.eclipse.swt.graphics.RGB lineRGB = PreferenceConverter.getColor(
+ prefStore, IPreferenceConstants.PREF_LINE_COLOR);
+ ViewUtil.setStructuralFeatureValue(node,
+ NotationPackage.eINSTANCE.getLineStyle_LineColor(),
+ FigureUtilities.RGBToInteger(lineRGB));
+ FontStyle nodeFontStyle = (FontStyle) node
+ .getStyle(NotationPackage.Literals.FONT_STYLE);
+ if (nodeFontStyle != null) {
+ FontData fontData = PreferenceConverter.getFontData(prefStore,
+ IPreferenceConstants.PREF_DEFAULT_FONT);
+ nodeFontStyle.setFontName(fontData.getName());
+ nodeFontStyle.setFontHeight(fontData.getHeight());
+ nodeFontStyle.setBold((fontData.getStyle() & SWT.BOLD) != 0);
+ nodeFontStyle.setItalic((fontData.getStyle() & SWT.ITALIC) != 0);
+ org.eclipse.swt.graphics.RGB fontRGB = PreferenceConverter
+ .getColor(prefStore, IPreferenceConstants.PREF_FONT_COLOR);
+ nodeFontStyle.setFontColor(FigureUtilities.RGBToInteger(fontRGB)
+ .intValue());
+ }
+ org.eclipse.swt.graphics.RGB fillRGB = PreferenceConverter.getColor(
+ prefStore, IPreferenceConstants.PREF_FILL_COLOR);
+ ViewUtil.setStructuralFeatureValue(node,
+ NotationPackage.eINSTANCE.getFillStyle_FillColor(),
+ FigureUtilities.RGBToInteger(fillRGB));
+ Node label5042 = createLabel(node,
+ ComrelVisualIDRegistry
+ .getType(SingleFilterUnitNameType4EditPart.VISUAL_ID));
+ return node;
+ }
+
+ /**
+ * @generated
+ */
+ public Node createMultiFilterUnit_3058(EObject domainElement,
+ View containerView, int index, boolean persisted,
+ PreferencesHint preferencesHint) {
+ Shape node = NotationFactory.eINSTANCE.createShape();
+ node.setLayoutConstraint(NotationFactory.eINSTANCE.createBounds());
+ node.setType(ComrelVisualIDRegistry
+ .getType(MultiFilterUnit4EditPart.VISUAL_ID));
+ ViewUtil.insertChildView(containerView, node, index, persisted);
+ node.setElement(domainElement);
+ // initializeFromPreferences
+ final IPreferenceStore prefStore = (IPreferenceStore) preferencesHint
+ .getPreferenceStore();
+
+ org.eclipse.swt.graphics.RGB lineRGB = PreferenceConverter.getColor(
+ prefStore, IPreferenceConstants.PREF_LINE_COLOR);
+ ViewUtil.setStructuralFeatureValue(node,
+ NotationPackage.eINSTANCE.getLineStyle_LineColor(),
+ FigureUtilities.RGBToInteger(lineRGB));
+ FontStyle nodeFontStyle = (FontStyle) node
+ .getStyle(NotationPackage.Literals.FONT_STYLE);
+ if (nodeFontStyle != null) {
+ FontData fontData = PreferenceConverter.getFontData(prefStore,
+ IPreferenceConstants.PREF_DEFAULT_FONT);
+ nodeFontStyle.setFontName(fontData.getName());
+ nodeFontStyle.setFontHeight(fontData.getHeight());
+ nodeFontStyle.setBold((fontData.getStyle() & SWT.BOLD) != 0);
+ nodeFontStyle.setItalic((fontData.getStyle() & SWT.ITALIC) != 0);
+ org.eclipse.swt.graphics.RGB fontRGB = PreferenceConverter
+ .getColor(prefStore, IPreferenceConstants.PREF_FONT_COLOR);
+ nodeFontStyle.setFontColor(FigureUtilities.RGBToInteger(fontRGB)
+ .intValue());
+ }
+ org.eclipse.swt.graphics.RGB fillRGB = PreferenceConverter.getColor(
+ prefStore, IPreferenceConstants.PREF_FILL_COLOR);
+ ViewUtil.setStructuralFeatureValue(node,
+ NotationPackage.eINSTANCE.getFillStyle_FillColor(),
+ FigureUtilities.RGBToInteger(fillRGB));
+ Node label5043 = createLabel(node,
+ ComrelVisualIDRegistry
+ .getType(MultiFilterUnitNameType4EditPart.VISUAL_ID));
+ return node;
+ }
+
+ /**
+ * @generated
+ */
+ public Node createSingleQueuedUnit_3059(EObject domainElement,
+ View containerView, int index, boolean persisted,
+ PreferencesHint preferencesHint) {
+ Shape node = NotationFactory.eINSTANCE.createShape();
+ node.getStyles().add(
+ NotationFactory.eINSTANCE.createHintedDiagramLinkStyle());
+ node.setLayoutConstraint(NotationFactory.eINSTANCE.createBounds());
+ node.setType(ComrelVisualIDRegistry
+ .getType(SingleQueuedUnit5EditPart.VISUAL_ID));
+ ViewUtil.insertChildView(containerView, node, index, persisted);
+ node.setElement(domainElement);
+ // initializeFromPreferences
+ final IPreferenceStore prefStore = (IPreferenceStore) preferencesHint
+ .getPreferenceStore();
+
+ org.eclipse.swt.graphics.RGB lineRGB = PreferenceConverter.getColor(
+ prefStore, IPreferenceConstants.PREF_LINE_COLOR);
+ ViewUtil.setStructuralFeatureValue(node,
+ NotationPackage.eINSTANCE.getLineStyle_LineColor(),
+ FigureUtilities.RGBToInteger(lineRGB));
+ FontStyle nodeFontStyle = (FontStyle) node
+ .getStyle(NotationPackage.Literals.FONT_STYLE);
+ if (nodeFontStyle != null) {
+ FontData fontData = PreferenceConverter.getFontData(prefStore,
+ IPreferenceConstants.PREF_DEFAULT_FONT);
+ nodeFontStyle.setFontName(fontData.getName());
+ nodeFontStyle.setFontHeight(fontData.getHeight());
+ nodeFontStyle.setBold((fontData.getStyle() & SWT.BOLD) != 0);
+ nodeFontStyle.setItalic((fontData.getStyle() & SWT.ITALIC) != 0);
+ org.eclipse.swt.graphics.RGB fontRGB = PreferenceConverter
+ .getColor(prefStore, IPreferenceConstants.PREF_FONT_COLOR);
+ nodeFontStyle.setFontColor(FigureUtilities.RGBToInteger(fontRGB)
+ .intValue());
+ }
+ org.eclipse.swt.graphics.RGB fillRGB = PreferenceConverter.getColor(
+ prefStore, IPreferenceConstants.PREF_FILL_COLOR);
+ ViewUtil.setStructuralFeatureValue(node,
+ NotationPackage.eINSTANCE.getFillStyle_FillColor(),
+ FigureUtilities.RGBToInteger(fillRGB));
+ Node label5063 = createLabel(
+ node,
+ ComrelVisualIDRegistry
+ .getType(SingleQueuedUnitNameTypeLblStrict5EditPart.VISUAL_ID));
+ createCompartment(
+ node,
+ ComrelVisualIDRegistry
+ .getType(SingleQueuedUnitSingleQueuedUnitHelperUnitsCompartment4EditPart.VISUAL_ID),
+ true, false, false, false);
+ createCompartment(
+ node,
+ ComrelVisualIDRegistry
+ .getType(SingleQueuedUnitSingleQueuedUnitRefactoringUnitCompartment4EditPart.VISUAL_ID),
+ true, false, false, false);
+ return node;
+ }
+
+ /**
+ * @generated
+ */
+ public Node createSequentialUnit_3060(EObject domainElement,
+ View containerView, int index, boolean persisted,
+ PreferencesHint preferencesHint) {
+ Shape node = NotationFactory.eINSTANCE.createShape();
+ node.getStyles().add(
+ NotationFactory.eINSTANCE.createHintedDiagramLinkStyle());
+ node.setLayoutConstraint(NotationFactory.eINSTANCE.createBounds());
+ node.setType(ComrelVisualIDRegistry
+ .getType(SequentialUnit4EditPart.VISUAL_ID));
+ ViewUtil.insertChildView(containerView, node, index, persisted);
+ node.setElement(domainElement);
+ // initializeFromPreferences
+ final IPreferenceStore prefStore = (IPreferenceStore) preferencesHint
+ .getPreferenceStore();
+
+ org.eclipse.swt.graphics.RGB lineRGB = PreferenceConverter.getColor(
+ prefStore, IPreferenceConstants.PREF_LINE_COLOR);
+ ViewUtil.setStructuralFeatureValue(node,
+ NotationPackage.eINSTANCE.getLineStyle_LineColor(),
+ FigureUtilities.RGBToInteger(lineRGB));
+ FontStyle nodeFontStyle = (FontStyle) node
+ .getStyle(NotationPackage.Literals.FONT_STYLE);
+ if (nodeFontStyle != null) {
+ FontData fontData = PreferenceConverter.getFontData(prefStore,
+ IPreferenceConstants.PREF_DEFAULT_FONT);
+ nodeFontStyle.setFontName(fontData.getName());
+ nodeFontStyle.setFontHeight(fontData.getHeight());
+ nodeFontStyle.setBold((fontData.getStyle() & SWT.BOLD) != 0);
+ nodeFontStyle.setItalic((fontData.getStyle() & SWT.ITALIC) != 0);
+ org.eclipse.swt.graphics.RGB fontRGB = PreferenceConverter
+ .getColor(prefStore, IPreferenceConstants.PREF_FONT_COLOR);
+ nodeFontStyle.setFontColor(FigureUtilities.RGBToInteger(fontRGB)
+ .intValue());
+ }
+ org.eclipse.swt.graphics.RGB fillRGB = PreferenceConverter.getColor(
+ prefStore, IPreferenceConstants.PREF_FILL_COLOR);
+ ViewUtil.setStructuralFeatureValue(node,
+ NotationPackage.eINSTANCE.getFillStyle_FillColor(),
+ FigureUtilities.RGBToInteger(fillRGB));
+ Node label5062 = createLabel(
+ node,
+ ComrelVisualIDRegistry
+ .getType(SequentialUnitNameTypeLblStrict4EditPart.VISUAL_ID));
+ createCompartment(
+ node,
+ ComrelVisualIDRegistry
+ .getType(SequentialUnitSequentialUnitHelperUnitsCompartment3EditPart.VISUAL_ID),
+ true, false, false, false);
+ createCompartment(
+ node,
+ ComrelVisualIDRegistry
+ .getType(SequentialUnitSequentialUnitRefactoringUnitsCompartment3EditPart.VISUAL_ID),
+ true, false, false, false);
+ return node;
+ }
+
+ /**
+ * @generated
+ */
+ public Node createSingleFeatureUnit_3061(EObject domainElement,
+ View containerView, int index, boolean persisted,
+ PreferencesHint preferencesHint) {
+ Shape node = NotationFactory.eINSTANCE.createShape();
+ node.setLayoutConstraint(NotationFactory.eINSTANCE.createBounds());
+ node.setType(ComrelVisualIDRegistry
+ .getType(SingleFeatureUnit5EditPart.VISUAL_ID));
+ ViewUtil.insertChildView(containerView, node, index, persisted);
+ node.setElement(domainElement);
+ // initializeFromPreferences
+ final IPreferenceStore prefStore = (IPreferenceStore) preferencesHint
+ .getPreferenceStore();
+
+ org.eclipse.swt.graphics.RGB lineRGB = PreferenceConverter.getColor(
+ prefStore, IPreferenceConstants.PREF_LINE_COLOR);
+ ViewUtil.setStructuralFeatureValue(node,
+ NotationPackage.eINSTANCE.getLineStyle_LineColor(),
+ FigureUtilities.RGBToInteger(lineRGB));
+ FontStyle nodeFontStyle = (FontStyle) node
+ .getStyle(NotationPackage.Literals.FONT_STYLE);
+ if (nodeFontStyle != null) {
+ FontData fontData = PreferenceConverter.getFontData(prefStore,
+ IPreferenceConstants.PREF_DEFAULT_FONT);
+ nodeFontStyle.setFontName(fontData.getName());
+ nodeFontStyle.setFontHeight(fontData.getHeight());
+ nodeFontStyle.setBold((fontData.getStyle() & SWT.BOLD) != 0);
+ nodeFontStyle.setItalic((fontData.getStyle() & SWT.ITALIC) != 0);
+ org.eclipse.swt.graphics.RGB fontRGB = PreferenceConverter
+ .getColor(prefStore, IPreferenceConstants.PREF_FONT_COLOR);
+ nodeFontStyle.setFontColor(FigureUtilities.RGBToInteger(fontRGB)
+ .intValue());
+ }
+ org.eclipse.swt.graphics.RGB fillRGB = PreferenceConverter.getColor(
+ prefStore, IPreferenceConstants.PREF_FILL_COLOR);
+ ViewUtil.setStructuralFeatureValue(node,
+ NotationPackage.eINSTANCE.getFillStyle_FillColor(),
+ FigureUtilities.RGBToInteger(fillRGB));
+ Node label5044 = createLabel(node,
+ ComrelVisualIDRegistry
+ .getType(SingleFeatureUnitNameType5EditPart.VISUAL_ID));
+ return node;
+ }
+
+ /**
+ * @generated
+ */
+ public Node createMultiFeatureUnit_3062(EObject domainElement,
+ View containerView, int index, boolean persisted,
+ PreferencesHint preferencesHint) {
+ Shape node = NotationFactory.eINSTANCE.createShape();
+ node.setLayoutConstraint(NotationFactory.eINSTANCE.createBounds());
+ node.setType(ComrelVisualIDRegistry
+ .getType(MultiFeatureUnit5EditPart.VISUAL_ID));
+ ViewUtil.insertChildView(containerView, node, index, persisted);
+ node.setElement(domainElement);
+ // initializeFromPreferences
+ final IPreferenceStore prefStore = (IPreferenceStore) preferencesHint
+ .getPreferenceStore();
+
+ org.eclipse.swt.graphics.RGB lineRGB = PreferenceConverter.getColor(
+ prefStore, IPreferenceConstants.PREF_LINE_COLOR);
+ ViewUtil.setStructuralFeatureValue(node,
+ NotationPackage.eINSTANCE.getLineStyle_LineColor(),
+ FigureUtilities.RGBToInteger(lineRGB));
+ FontStyle nodeFontStyle = (FontStyle) node
+ .getStyle(NotationPackage.Literals.FONT_STYLE);
+ if (nodeFontStyle != null) {
+ FontData fontData = PreferenceConverter.getFontData(prefStore,
+ IPreferenceConstants.PREF_DEFAULT_FONT);
+ nodeFontStyle.setFontName(fontData.getName());
+ nodeFontStyle.setFontHeight(fontData.getHeight());
+ nodeFontStyle.setBold((fontData.getStyle() & SWT.BOLD) != 0);
+ nodeFontStyle.setItalic((fontData.getStyle() & SWT.ITALIC) != 0);
+ org.eclipse.swt.graphics.RGB fontRGB = PreferenceConverter
+ .getColor(prefStore, IPreferenceConstants.PREF_FONT_COLOR);
+ nodeFontStyle.setFontColor(FigureUtilities.RGBToInteger(fontRGB)
+ .intValue());
+ }
+ org.eclipse.swt.graphics.RGB fillRGB = PreferenceConverter.getColor(
+ prefStore, IPreferenceConstants.PREF_FILL_COLOR);
+ ViewUtil.setStructuralFeatureValue(node,
+ NotationPackage.eINSTANCE.getFillStyle_FillColor(),
+ FigureUtilities.RGBToInteger(fillRGB));
+ Node label5045 = createLabel(node,
+ ComrelVisualIDRegistry
+ .getType(MultiFeatureUnitNameType5EditPart.VISUAL_ID));
+ return node;
+ }
+
+ /**
+ * @generated
+ */
+ public Node createSingleFilterUnit_3063(EObject domainElement,
+ View containerView, int index, boolean persisted,
+ PreferencesHint preferencesHint) {
+ Shape node = NotationFactory.eINSTANCE.createShape();
+ node.setLayoutConstraint(NotationFactory.eINSTANCE.createBounds());
+ node.setType(ComrelVisualIDRegistry
+ .getType(SingleFilterUnit5EditPart.VISUAL_ID));
+ ViewUtil.insertChildView(containerView, node, index, persisted);
+ node.setElement(domainElement);
+ // initializeFromPreferences
+ final IPreferenceStore prefStore = (IPreferenceStore) preferencesHint
+ .getPreferenceStore();
+
+ org.eclipse.swt.graphics.RGB lineRGB = PreferenceConverter.getColor(
+ prefStore, IPreferenceConstants.PREF_LINE_COLOR);
+ ViewUtil.setStructuralFeatureValue(node,
+ NotationPackage.eINSTANCE.getLineStyle_LineColor(),
+ FigureUtilities.RGBToInteger(lineRGB));
+ FontStyle nodeFontStyle = (FontStyle) node
+ .getStyle(NotationPackage.Literals.FONT_STYLE);
+ if (nodeFontStyle != null) {
+ FontData fontData = PreferenceConverter.getFontData(prefStore,
+ IPreferenceConstants.PREF_DEFAULT_FONT);
+ nodeFontStyle.setFontName(fontData.getName());
+ nodeFontStyle.setFontHeight(fontData.getHeight());
+ nodeFontStyle.setBold((fontData.getStyle() & SWT.BOLD) != 0);
+ nodeFontStyle.setItalic((fontData.getStyle() & SWT.ITALIC) != 0);
+ org.eclipse.swt.graphics.RGB fontRGB = PreferenceConverter
+ .getColor(prefStore, IPreferenceConstants.PREF_FONT_COLOR);
+ nodeFontStyle.setFontColor(FigureUtilities.RGBToInteger(fontRGB)
+ .intValue());
+ }
+ org.eclipse.swt.graphics.RGB fillRGB = PreferenceConverter.getColor(
+ prefStore, IPreferenceConstants.PREF_FILL_COLOR);
+ ViewUtil.setStructuralFeatureValue(node,
+ NotationPackage.eINSTANCE.getFillStyle_FillColor(),
+ FigureUtilities.RGBToInteger(fillRGB));
+ Node label5046 = createLabel(node,
+ ComrelVisualIDRegistry
+ .getType(SingleFilterUnitNameType5EditPart.VISUAL_ID));
+ return node;
+ }
+
+ /**
+ * @generated
+ */
+ public Node createMultiFilterUnit_3064(EObject domainElement,
+ View containerView, int index, boolean persisted,
+ PreferencesHint preferencesHint) {
+ Shape node = NotationFactory.eINSTANCE.createShape();
+ node.setLayoutConstraint(NotationFactory.eINSTANCE.createBounds());
+ node.setType(ComrelVisualIDRegistry
+ .getType(MultiFilterUnit5EditPart.VISUAL_ID));
+ ViewUtil.insertChildView(containerView, node, index, persisted);
+ node.setElement(domainElement);
+ // initializeFromPreferences
+ final IPreferenceStore prefStore = (IPreferenceStore) preferencesHint
+ .getPreferenceStore();
+
+ org.eclipse.swt.graphics.RGB lineRGB = PreferenceConverter.getColor(
+ prefStore, IPreferenceConstants.PREF_LINE_COLOR);
+ ViewUtil.setStructuralFeatureValue(node,
+ NotationPackage.eINSTANCE.getLineStyle_LineColor(),
+ FigureUtilities.RGBToInteger(lineRGB));
+ FontStyle nodeFontStyle = (FontStyle) node
+ .getStyle(NotationPackage.Literals.FONT_STYLE);
+ if (nodeFontStyle != null) {
+ FontData fontData = PreferenceConverter.getFontData(prefStore,
+ IPreferenceConstants.PREF_DEFAULT_FONT);
+ nodeFontStyle.setFontName(fontData.getName());
+ nodeFontStyle.setFontHeight(fontData.getHeight());
+ nodeFontStyle.setBold((fontData.getStyle() & SWT.BOLD) != 0);
+ nodeFontStyle.setItalic((fontData.getStyle() & SWT.ITALIC) != 0);
+ org.eclipse.swt.graphics.RGB fontRGB = PreferenceConverter
+ .getColor(prefStore, IPreferenceConstants.PREF_FONT_COLOR);
+ nodeFontStyle.setFontColor(FigureUtilities.RGBToInteger(fontRGB)
+ .intValue());
+ }
+ org.eclipse.swt.graphics.RGB fillRGB = PreferenceConverter.getColor(
+ prefStore, IPreferenceConstants.PREF_FILL_COLOR);
+ ViewUtil.setStructuralFeatureValue(node,
+ NotationPackage.eINSTANCE.getFillStyle_FillColor(),
+ FigureUtilities.RGBToInteger(fillRGB));
+ Node label5047 = createLabel(node,
+ ComrelVisualIDRegistry
+ .getType(MultiFilterUnitNameType5EditPart.VISUAL_ID));
+ return node;
+ }
+
+ /**
+ * @generated
+ */
+ public Node createSingleQueuedUnit_3065(EObject domainElement,
+ View containerView, int index, boolean persisted,
+ PreferencesHint preferencesHint) {
+ Shape node = NotationFactory.eINSTANCE.createShape();
+ node.getStyles().add(
+ NotationFactory.eINSTANCE.createHintedDiagramLinkStyle());
+ node.setLayoutConstraint(NotationFactory.eINSTANCE.createBounds());
+ node.setType(ComrelVisualIDRegistry
+ .getType(SingleQueuedUnit6EditPart.VISUAL_ID));
+ ViewUtil.insertChildView(containerView, node, index, persisted);
+ node.setElement(domainElement);
+ // initializeFromPreferences
+ final IPreferenceStore prefStore = (IPreferenceStore) preferencesHint
+ .getPreferenceStore();
+
+ org.eclipse.swt.graphics.RGB lineRGB = PreferenceConverter.getColor(
+ prefStore, IPreferenceConstants.PREF_LINE_COLOR);
+ ViewUtil.setStructuralFeatureValue(node,
+ NotationPackage.eINSTANCE.getLineStyle_LineColor(),
+ FigureUtilities.RGBToInteger(lineRGB));
+ FontStyle nodeFontStyle = (FontStyle) node
+ .getStyle(NotationPackage.Literals.FONT_STYLE);
+ if (nodeFontStyle != null) {
+ FontData fontData = PreferenceConverter.getFontData(prefStore,
+ IPreferenceConstants.PREF_DEFAULT_FONT);
+ nodeFontStyle.setFontName(fontData.getName());
+ nodeFontStyle.setFontHeight(fontData.getHeight());
+ nodeFontStyle.setBold((fontData.getStyle() & SWT.BOLD) != 0);
+ nodeFontStyle.setItalic((fontData.getStyle() & SWT.ITALIC) != 0);
+ org.eclipse.swt.graphics.RGB fontRGB = PreferenceConverter
+ .getColor(prefStore, IPreferenceConstants.PREF_FONT_COLOR);
+ nodeFontStyle.setFontColor(FigureUtilities.RGBToInteger(fontRGB)
+ .intValue());
+ }
+ org.eclipse.swt.graphics.RGB fillRGB = PreferenceConverter.getColor(
+ prefStore, IPreferenceConstants.PREF_FILL_COLOR);
+ ViewUtil.setStructuralFeatureValue(node,
+ NotationPackage.eINSTANCE.getFillStyle_FillColor(),
+ FigureUtilities.RGBToInteger(fillRGB));
+ Node label5061 = createLabel(
+ node,
+ ComrelVisualIDRegistry
+ .getType(SingleQueuedUnitNameTypeLblStrict6EditPart.VISUAL_ID));
+ createCompartment(
+ node,
+ ComrelVisualIDRegistry
+ .getType(SingleQueuedUnitSingleQueuedUnitHelperUnitsCompartment5EditPart.VISUAL_ID),
+ true, false, false, false);
+ createCompartment(
+ node,
+ ComrelVisualIDRegistry
+ .getType(SingleQueuedUnitSingleQueuedUnitRefactoringUnitCompartment5EditPart.VISUAL_ID),
+ true, false, false, false);
+ return node;
+ }
+
+ /**
+ * @generated
+ */
+ public Node createConditionalUnit_3066(EObject domainElement,
+ View containerView, int index, boolean persisted,
+ PreferencesHint preferencesHint) {
+ Shape node = NotationFactory.eINSTANCE.createShape();
+ node.getStyles().add(
+ NotationFactory.eINSTANCE.createHintedDiagramLinkStyle());
+ node.setLayoutConstraint(NotationFactory.eINSTANCE.createBounds());
+ node.setType(ComrelVisualIDRegistry
+ .getType(ConditionalUnit4EditPart.VISUAL_ID));
+ ViewUtil.insertChildView(containerView, node, index, persisted);
+ node.setElement(domainElement);
+ // initializeFromPreferences
+ final IPreferenceStore prefStore = (IPreferenceStore) preferencesHint
+ .getPreferenceStore();
+
+ org.eclipse.swt.graphics.RGB lineRGB = PreferenceConverter.getColor(
+ prefStore, IPreferenceConstants.PREF_LINE_COLOR);
+ ViewUtil.setStructuralFeatureValue(node,
+ NotationPackage.eINSTANCE.getLineStyle_LineColor(),
+ FigureUtilities.RGBToInteger(lineRGB));
+ FontStyle nodeFontStyle = (FontStyle) node
+ .getStyle(NotationPackage.Literals.FONT_STYLE);
+ if (nodeFontStyle != null) {
+ FontData fontData = PreferenceConverter.getFontData(prefStore,
+ IPreferenceConstants.PREF_DEFAULT_FONT);
+ nodeFontStyle.setFontName(fontData.getName());
+ nodeFontStyle.setFontHeight(fontData.getHeight());
+ nodeFontStyle.setBold((fontData.getStyle() & SWT.BOLD) != 0);
+ nodeFontStyle.setItalic((fontData.getStyle() & SWT.ITALIC) != 0);
+ org.eclipse.swt.graphics.RGB fontRGB = PreferenceConverter
+ .getColor(prefStore, IPreferenceConstants.PREF_FONT_COLOR);
+ nodeFontStyle.setFontColor(FigureUtilities.RGBToInteger(fontRGB)
+ .intValue());
+ }
+ org.eclipse.swt.graphics.RGB fillRGB = PreferenceConverter.getColor(
+ prefStore, IPreferenceConstants.PREF_FILL_COLOR);
+ ViewUtil.setStructuralFeatureValue(node,
+ NotationPackage.eINSTANCE.getFillStyle_FillColor(),
+ FigureUtilities.RGBToInteger(fillRGB));
+ Node label5060 = createLabel(node,
+ ComrelVisualIDRegistry
+ .getType(ConditionalUnitNameType4EditPart.VISUAL_ID));
+ createCompartment(
+ node,
+ ComrelVisualIDRegistry
+ .getType(ConditionalUnitConditionalUnitIfCompartment3EditPart.VISUAL_ID),
+ true, false, false, false);
+ createCompartment(
+ node,
+ ComrelVisualIDRegistry
+ .getType(ConditionalUnitConditionalUnitHelperUnitsCompartment3EditPart.VISUAL_ID),
+ true, false, false, false);
+ createCompartment(
+ node,
+ ComrelVisualIDRegistry
+ .getType(ConditionalUnitConditionalUnitThenCompartment3EditPart.VISUAL_ID),
+ true, false, false, false);
+ createCompartment(
+ node,
+ ComrelVisualIDRegistry
+ .getType(ConditionalUnitConditionalUnitElseCompartment3EditPart.VISUAL_ID),
+ true, false, false, false);
+ return node;
+ }
+
+ /**
+ * @generated
+ */
+ public Node createSingleQueuedUnit_3067(EObject domainElement,
+ View containerView, int index, boolean persisted,
+ PreferencesHint preferencesHint) {
+ Shape node = NotationFactory.eINSTANCE.createShape();
+ node.getStyles().add(
+ NotationFactory.eINSTANCE.createHintedDiagramLinkStyle());
+ node.setLayoutConstraint(NotationFactory.eINSTANCE.createBounds());
+ node.setType(ComrelVisualIDRegistry
+ .getType(SingleQueuedUnit7EditPart.VISUAL_ID));
+ ViewUtil.insertChildView(containerView, node, index, persisted);
+ node.setElement(domainElement);
+ // initializeFromPreferences
+ final IPreferenceStore prefStore = (IPreferenceStore) preferencesHint
+ .getPreferenceStore();
+
+ org.eclipse.swt.graphics.RGB lineRGB = PreferenceConverter.getColor(
+ prefStore, IPreferenceConstants.PREF_LINE_COLOR);
+ ViewUtil.setStructuralFeatureValue(node,
+ NotationPackage.eINSTANCE.getLineStyle_LineColor(),
+ FigureUtilities.RGBToInteger(lineRGB));
+ FontStyle nodeFontStyle = (FontStyle) node
+ .getStyle(NotationPackage.Literals.FONT_STYLE);
+ if (nodeFontStyle != null) {
+ FontData fontData = PreferenceConverter.getFontData(prefStore,
+ IPreferenceConstants.PREF_DEFAULT_FONT);
+ nodeFontStyle.setFontName(fontData.getName());
+ nodeFontStyle.setFontHeight(fontData.getHeight());
+ nodeFontStyle.setBold((fontData.getStyle() & SWT.BOLD) != 0);
+ nodeFontStyle.setItalic((fontData.getStyle() & SWT.ITALIC) != 0);
+ org.eclipse.swt.graphics.RGB fontRGB = PreferenceConverter
+ .getColor(prefStore, IPreferenceConstants.PREF_FONT_COLOR);
+ nodeFontStyle.setFontColor(FigureUtilities.RGBToInteger(fontRGB)
+ .intValue());
+ }
+ org.eclipse.swt.graphics.RGB fillRGB = PreferenceConverter.getColor(
+ prefStore, IPreferenceConstants.PREF_FILL_COLOR);
+ ViewUtil.setStructuralFeatureValue(node,
+ NotationPackage.eINSTANCE.getFillStyle_FillColor(),
+ FigureUtilities.RGBToInteger(fillRGB));
+ Node label5049 = createLabel(
+ node,
+ ComrelVisualIDRegistry
+ .getType(SingleQueuedUnitNameTypeLblStrict7EditPart.VISUAL_ID));
+ createCompartment(
+ node,
+ ComrelVisualIDRegistry
+ .getType(SingleQueuedUnitSingleQueuedUnitHelperUnitsCompartment6EditPart.VISUAL_ID),
+ true, false, false, false);
+ createCompartment(
+ node,
+ ComrelVisualIDRegistry
+ .getType(SingleQueuedUnitSingleQueuedUnitRefactoringUnitCompartment6EditPart.VISUAL_ID),
+ true, false, false, false);
+ return node;
+ }
+
+ /**
+ * @generated
+ */
+ public Node createAtomicUnit_3068(EObject domainElement,
+ View containerView, int index, boolean persisted,
+ PreferencesHint preferencesHint) {
+ Shape node = NotationFactory.eINSTANCE.createShape();
+ node.setLayoutConstraint(NotationFactory.eINSTANCE.createBounds());
+ node.setType(ComrelVisualIDRegistry
+ .getType(AtomicUnit4EditPart.VISUAL_ID));
+ ViewUtil.insertChildView(containerView, node, index, persisted);
+ node.setElement(domainElement);
+ // initializeFromPreferences
+ final IPreferenceStore prefStore = (IPreferenceStore) preferencesHint
+ .getPreferenceStore();
+
+ org.eclipse.swt.graphics.RGB lineRGB = PreferenceConverter.getColor(
+ prefStore, IPreferenceConstants.PREF_LINE_COLOR);
+ ViewUtil.setStructuralFeatureValue(node,
+ NotationPackage.eINSTANCE.getLineStyle_LineColor(),
+ FigureUtilities.RGBToInteger(lineRGB));
+ FontStyle nodeFontStyle = (FontStyle) node
+ .getStyle(NotationPackage.Literals.FONT_STYLE);
+ if (nodeFontStyle != null) {
+ FontData fontData = PreferenceConverter.getFontData(prefStore,
+ IPreferenceConstants.PREF_DEFAULT_FONT);
+ nodeFontStyle.setFontName(fontData.getName());
+ nodeFontStyle.setFontHeight(fontData.getHeight());
+ nodeFontStyle.setBold((fontData.getStyle() & SWT.BOLD) != 0);
+ nodeFontStyle.setItalic((fontData.getStyle() & SWT.ITALIC) != 0);
+ org.eclipse.swt.graphics.RGB fontRGB = PreferenceConverter
+ .getColor(prefStore, IPreferenceConstants.PREF_FONT_COLOR);
+ nodeFontStyle.setFontColor(FigureUtilities.RGBToInteger(fontRGB)
+ .intValue());
+ }
+ org.eclipse.swt.graphics.RGB fillRGB = PreferenceConverter.getColor(
+ prefStore, IPreferenceConstants.PREF_FILL_COLOR);
+ ViewUtil.setStructuralFeatureValue(node,
+ NotationPackage.eINSTANCE.getFillStyle_FillColor(),
+ FigureUtilities.RGBToInteger(fillRGB));
+ Node label5048 = createLabel(node,
+ ComrelVisualIDRegistry
+ .getType(AtomicUnitLabelType4EditPart.VISUAL_ID));
+ return node;
+ }
+
+ /**
+ * @generated
+ */
+ public Node createSequentialUnit_3069(EObject domainElement,
+ View containerView, int index, boolean persisted,
+ PreferencesHint preferencesHint) {
+ Shape node = NotationFactory.eINSTANCE.createShape();
+ node.getStyles().add(
+ NotationFactory.eINSTANCE.createHintedDiagramLinkStyle());
+ node.setLayoutConstraint(NotationFactory.eINSTANCE.createBounds());
+ node.setType(ComrelVisualIDRegistry
+ .getType(SequentialUnit5EditPart.VISUAL_ID));
+ ViewUtil.insertChildView(containerView, node, index, persisted);
+ node.setElement(domainElement);
+ // initializeFromPreferences
+ final IPreferenceStore prefStore = (IPreferenceStore) preferencesHint
+ .getPreferenceStore();
+
+ org.eclipse.swt.graphics.RGB lineRGB = PreferenceConverter.getColor(
+ prefStore, IPreferenceConstants.PREF_LINE_COLOR);
+ ViewUtil.setStructuralFeatureValue(node,
+ NotationPackage.eINSTANCE.getLineStyle_LineColor(),
+ FigureUtilities.RGBToInteger(lineRGB));
+ FontStyle nodeFontStyle = (FontStyle) node
+ .getStyle(NotationPackage.Literals.FONT_STYLE);
+ if (nodeFontStyle != null) {
+ FontData fontData = PreferenceConverter.getFontData(prefStore,
+ IPreferenceConstants.PREF_DEFAULT_FONT);
+ nodeFontStyle.setFontName(fontData.getName());
+ nodeFontStyle.setFontHeight(fontData.getHeight());
+ nodeFontStyle.setBold((fontData.getStyle() & SWT.BOLD) != 0);
+ nodeFontStyle.setItalic((fontData.getStyle() & SWT.ITALIC) != 0);
+ org.eclipse.swt.graphics.RGB fontRGB = PreferenceConverter
+ .getColor(prefStore, IPreferenceConstants.PREF_FONT_COLOR);
+ nodeFontStyle.setFontColor(FigureUtilities.RGBToInteger(fontRGB)
+ .intValue());
+ }
+ org.eclipse.swt.graphics.RGB fillRGB = PreferenceConverter.getColor(
+ prefStore, IPreferenceConstants.PREF_FILL_COLOR);
+ ViewUtil.setStructuralFeatureValue(node,
+ NotationPackage.eINSTANCE.getFillStyle_FillColor(),
+ FigureUtilities.RGBToInteger(fillRGB));
+ Node label5059 = createLabel(
+ node,
+ ComrelVisualIDRegistry
+ .getType(SequentialUnitNameTypeLblStrict5EditPart.VISUAL_ID));
+ createCompartment(
+ node,
+ ComrelVisualIDRegistry
+ .getType(SequentialUnitSequentialUnitHelperUnitsCompartment4EditPart.VISUAL_ID),
+ true, false, false, false);
+ createCompartment(
+ node,
+ ComrelVisualIDRegistry
+ .getType(SequentialUnitSequentialUnitRefactoringUnitsCompartment4EditPart.VISUAL_ID),
+ true, false, false, false);
+ return node;
+ }
+
+ /**
+ * @generated
+ */
+ public Node createSequentialUnit_3070(EObject domainElement,
+ View containerView, int index, boolean persisted,
+ PreferencesHint preferencesHint) {
+ Shape node = NotationFactory.eINSTANCE.createShape();
+ node.getStyles().add(
+ NotationFactory.eINSTANCE.createHintedDiagramLinkStyle());
+ node.setLayoutConstraint(NotationFactory.eINSTANCE.createBounds());
+ node.setType(ComrelVisualIDRegistry
+ .getType(SequentialUnit6EditPart.VISUAL_ID));
+ ViewUtil.insertChildView(containerView, node, index, persisted);
+ node.setElement(domainElement);
+ // initializeFromPreferences
+ final IPreferenceStore prefStore = (IPreferenceStore) preferencesHint
+ .getPreferenceStore();
+
+ org.eclipse.swt.graphics.RGB lineRGB = PreferenceConverter.getColor(
+ prefStore, IPreferenceConstants.PREF_LINE_COLOR);
+ ViewUtil.setStructuralFeatureValue(node,
+ NotationPackage.eINSTANCE.getLineStyle_LineColor(),
+ FigureUtilities.RGBToInteger(lineRGB));
+ FontStyle nodeFontStyle = (FontStyle) node
+ .getStyle(NotationPackage.Literals.FONT_STYLE);
+ if (nodeFontStyle != null) {
+ FontData fontData = PreferenceConverter.getFontData(prefStore,
+ IPreferenceConstants.PREF_DEFAULT_FONT);
+ nodeFontStyle.setFontName(fontData.getName());
+ nodeFontStyle.setFontHeight(fontData.getHeight());
+ nodeFontStyle.setBold((fontData.getStyle() & SWT.BOLD) != 0);
+ nodeFontStyle.setItalic((fontData.getStyle() & SWT.ITALIC) != 0);
+ org.eclipse.swt.graphics.RGB fontRGB = PreferenceConverter
+ .getColor(prefStore, IPreferenceConstants.PREF_FONT_COLOR);
+ nodeFontStyle.setFontColor(FigureUtilities.RGBToInteger(fontRGB)
+ .intValue());
+ }
+ org.eclipse.swt.graphics.RGB fillRGB = PreferenceConverter.getColor(
+ prefStore, IPreferenceConstants.PREF_FILL_COLOR);
+ ViewUtil.setStructuralFeatureValue(node,
+ NotationPackage.eINSTANCE.getFillStyle_FillColor(),
+ FigureUtilities.RGBToInteger(fillRGB));
+ Node label5058 = createLabel(
+ node,
+ ComrelVisualIDRegistry
+ .getType(SequentialUnitNameTypeLblStrict6EditPart.VISUAL_ID));
+ createCompartment(
+ node,
+ ComrelVisualIDRegistry
+ .getType(SequentialUnitSequentialUnitHelperUnitsCompartment5EditPart.VISUAL_ID),
+ true, false, false, false);
+ createCompartment(
+ node,
+ ComrelVisualIDRegistry
+ .getType(SequentialUnitSequentialUnitRefactoringUnitsCompartment5EditPart.VISUAL_ID),
+ true, false, false, false);
+ return node;
+ }
+
+ /**
+ * @generated
+ */
+ public Node createConditionalUnit_3071(EObject domainElement,
+ View containerView, int index, boolean persisted,
+ PreferencesHint preferencesHint) {
+ Shape node = NotationFactory.eINSTANCE.createShape();
+ node.getStyles().add(
+ NotationFactory.eINSTANCE.createHintedDiagramLinkStyle());
+ node.setLayoutConstraint(NotationFactory.eINSTANCE.createBounds());
+ node.setType(ComrelVisualIDRegistry
+ .getType(ConditionalUnit5EditPart.VISUAL_ID));
+ ViewUtil.insertChildView(containerView, node, index, persisted);
+ node.setElement(domainElement);
+ // initializeFromPreferences
+ final IPreferenceStore prefStore = (IPreferenceStore) preferencesHint
+ .getPreferenceStore();
+
+ org.eclipse.swt.graphics.RGB lineRGB = PreferenceConverter.getColor(
+ prefStore, IPreferenceConstants.PREF_LINE_COLOR);
+ ViewUtil.setStructuralFeatureValue(node,
+ NotationPackage.eINSTANCE.getLineStyle_LineColor(),
+ FigureUtilities.RGBToInteger(lineRGB));
+ FontStyle nodeFontStyle = (FontStyle) node
+ .getStyle(NotationPackage.Literals.FONT_STYLE);
+ if (nodeFontStyle != null) {
+ FontData fontData = PreferenceConverter.getFontData(prefStore,
+ IPreferenceConstants.PREF_DEFAULT_FONT);
+ nodeFontStyle.setFontName(fontData.getName());
+ nodeFontStyle.setFontHeight(fontData.getHeight());
+ nodeFontStyle.setBold((fontData.getStyle() & SWT.BOLD) != 0);
+ nodeFontStyle.setItalic((fontData.getStyle() & SWT.ITALIC) != 0);
+ org.eclipse.swt.graphics.RGB fontRGB = PreferenceConverter
+ .getColor(prefStore, IPreferenceConstants.PREF_FONT_COLOR);
+ nodeFontStyle.setFontColor(FigureUtilities.RGBToInteger(fontRGB)
+ .intValue());
+ }
+ org.eclipse.swt.graphics.RGB fillRGB = PreferenceConverter.getColor(
+ prefStore, IPreferenceConstants.PREF_FILL_COLOR);
+ ViewUtil.setStructuralFeatureValue(node,
+ NotationPackage.eINSTANCE.getFillStyle_FillColor(),
+ FigureUtilities.RGBToInteger(fillRGB));
+ Node label5057 = createLabel(node,
+ ComrelVisualIDRegistry
+ .getType(ConditionalUnitNameType5EditPart.VISUAL_ID));
+ createCompartment(
+ node,
+ ComrelVisualIDRegistry
+ .getType(ConditionalUnitConditionalUnitIfCompartment4EditPart.VISUAL_ID),
+ true, false, false, false);
+ createCompartment(
+ node,
+ ComrelVisualIDRegistry
+ .getType(ConditionalUnitConditionalUnitHelperUnitsCompartment4EditPart.VISUAL_ID),
+ true, false, false, false);
+ createCompartment(
+ node,
+ ComrelVisualIDRegistry
+ .getType(ConditionalUnitConditionalUnitThenCompartment4EditPart.VISUAL_ID),
+ true, false, false, false);
+ createCompartment(
+ node,
+ ComrelVisualIDRegistry
+ .getType(ConditionalUnitConditionalUnitElseCompartment4EditPart.VISUAL_ID),
+ true, false, false, false);
+ return node;
+ }
+
+ /**
+ * @generated
+ */
+ public Node createConditionalUnit_3072(EObject domainElement,
+ View containerView, int index, boolean persisted,
+ PreferencesHint preferencesHint) {
+ Shape node = NotationFactory.eINSTANCE.createShape();
+ node.getStyles().add(
+ NotationFactory.eINSTANCE.createHintedDiagramLinkStyle());
+ node.setLayoutConstraint(NotationFactory.eINSTANCE.createBounds());
+ node.setType(ComrelVisualIDRegistry
+ .getType(ConditionalUnit6EditPart.VISUAL_ID));
+ ViewUtil.insertChildView(containerView, node, index, persisted);
+ node.setElement(domainElement);
+ // initializeFromPreferences
+ final IPreferenceStore prefStore = (IPreferenceStore) preferencesHint
+ .getPreferenceStore();
+
+ org.eclipse.swt.graphics.RGB lineRGB = PreferenceConverter.getColor(
+ prefStore, IPreferenceConstants.PREF_LINE_COLOR);
+ ViewUtil.setStructuralFeatureValue(node,
+ NotationPackage.eINSTANCE.getLineStyle_LineColor(),
+ FigureUtilities.RGBToInteger(lineRGB));
+ FontStyle nodeFontStyle = (FontStyle) node
+ .getStyle(NotationPackage.Literals.FONT_STYLE);
+ if (nodeFontStyle != null) {
+ FontData fontData = PreferenceConverter.getFontData(prefStore,
+ IPreferenceConstants.PREF_DEFAULT_FONT);
+ nodeFontStyle.setFontName(fontData.getName());
+ nodeFontStyle.setFontHeight(fontData.getHeight());
+ nodeFontStyle.setBold((fontData.getStyle() & SWT.BOLD) != 0);
+ nodeFontStyle.setItalic((fontData.getStyle() & SWT.ITALIC) != 0);
+ org.eclipse.swt.graphics.RGB fontRGB = PreferenceConverter
+ .getColor(prefStore, IPreferenceConstants.PREF_FONT_COLOR);
+ nodeFontStyle.setFontColor(FigureUtilities.RGBToInteger(fontRGB)
+ .intValue());
+ }
+ org.eclipse.swt.graphics.RGB fillRGB = PreferenceConverter.getColor(
+ prefStore, IPreferenceConstants.PREF_FILL_COLOR);
+ ViewUtil.setStructuralFeatureValue(node,
+ NotationPackage.eINSTANCE.getFillStyle_FillColor(),
+ FigureUtilities.RGBToInteger(fillRGB));
+ Node label5056 = createLabel(node,
+ ComrelVisualIDRegistry
+ .getType(ConditionalUnitNameType6EditPart.VISUAL_ID));
+ createCompartment(
+ node,
+ ComrelVisualIDRegistry
+ .getType(ConditionalUnitConditionalUnitIfCompartment5EditPart.VISUAL_ID),
+ true, false, false, false);
+ createCompartment(
+ node,
+ ComrelVisualIDRegistry
+ .getType(ConditionalUnitConditionalUnitHelperUnitsCompartment5EditPart.VISUAL_ID),
+ true, false, false, false);
+ createCompartment(
+ node,
+ ComrelVisualIDRegistry
+ .getType(ConditionalUnitConditionalUnitThenCompartment5EditPart.VISUAL_ID),
+ true, false, false, false);
+ createCompartment(
+ node,
+ ComrelVisualIDRegistry
+ .getType(ConditionalUnitConditionalUnitElseCompartment5EditPart.VISUAL_ID),
+ true, false, false, false);
+ return node;
+ }
+
+ /**
+ * @generated
+ */
+ public Node createSequentialUnit_3073(EObject domainElement,
+ View containerView, int index, boolean persisted,
+ PreferencesHint preferencesHint) {
+ Shape node = NotationFactory.eINSTANCE.createShape();
+ node.getStyles().add(
+ NotationFactory.eINSTANCE.createHintedDiagramLinkStyle());
+ node.setLayoutConstraint(NotationFactory.eINSTANCE.createBounds());
+ node.setType(ComrelVisualIDRegistry
+ .getType(SequentialUnit7EditPart.VISUAL_ID));
+ ViewUtil.insertChildView(containerView, node, index, persisted);
+ node.setElement(domainElement);
+ // initializeFromPreferences
+ final IPreferenceStore prefStore = (IPreferenceStore) preferencesHint
+ .getPreferenceStore();
+
+ org.eclipse.swt.graphics.RGB lineRGB = PreferenceConverter.getColor(
+ prefStore, IPreferenceConstants.PREF_LINE_COLOR);
+ ViewUtil.setStructuralFeatureValue(node,
+ NotationPackage.eINSTANCE.getLineStyle_LineColor(),
+ FigureUtilities.RGBToInteger(lineRGB));
+ FontStyle nodeFontStyle = (FontStyle) node
+ .getStyle(NotationPackage.Literals.FONT_STYLE);
+ if (nodeFontStyle != null) {
+ FontData fontData = PreferenceConverter.getFontData(prefStore,
+ IPreferenceConstants.PREF_DEFAULT_FONT);
+ nodeFontStyle.setFontName(fontData.getName());
+ nodeFontStyle.setFontHeight(fontData.getHeight());
+ nodeFontStyle.setBold((fontData.getStyle() & SWT.BOLD) != 0);
+ nodeFontStyle.setItalic((fontData.getStyle() & SWT.ITALIC) != 0);
+ org.eclipse.swt.graphics.RGB fontRGB = PreferenceConverter
+ .getColor(prefStore, IPreferenceConstants.PREF_FONT_COLOR);
+ nodeFontStyle.setFontColor(FigureUtilities.RGBToInteger(fontRGB)
+ .intValue());
+ }
+ org.eclipse.swt.graphics.RGB fillRGB = PreferenceConverter.getColor(
+ prefStore, IPreferenceConstants.PREF_FILL_COLOR);
+ ViewUtil.setStructuralFeatureValue(node,
+ NotationPackage.eINSTANCE.getFillStyle_FillColor(),
+ FigureUtilities.RGBToInteger(fillRGB));
+ Node label5051 = createLabel(
+ node,
+ ComrelVisualIDRegistry
+ .getType(SequentialUnitNameTypeLblStrict7EditPart.VISUAL_ID));
+ createCompartment(
+ node,
+ ComrelVisualIDRegistry
+ .getType(SequentialUnitSequentialUnitHelperUnitsCompartment6EditPart.VISUAL_ID),
+ true, false, false, false);
+ createCompartment(
+ node,
+ ComrelVisualIDRegistry
+ .getType(SequentialUnitSequentialUnitRefactoringUnitsCompartment6EditPart.VISUAL_ID),
+ true, false, false, false);
+ return node;
+ }
+
+ /**
+ * @generated
+ */
+ public Node createAtomicUnit_3074(EObject domainElement,
+ View containerView, int index, boolean persisted,
+ PreferencesHint preferencesHint) {
+ Shape node = NotationFactory.eINSTANCE.createShape();
+ node.setLayoutConstraint(NotationFactory.eINSTANCE.createBounds());
+ node.setType(ComrelVisualIDRegistry
+ .getType(AtomicUnit5EditPart.VISUAL_ID));
+ ViewUtil.insertChildView(containerView, node, index, persisted);
+ node.setElement(domainElement);
+ // initializeFromPreferences
+ final IPreferenceStore prefStore = (IPreferenceStore) preferencesHint
+ .getPreferenceStore();
+
+ org.eclipse.swt.graphics.RGB lineRGB = PreferenceConverter.getColor(
+ prefStore, IPreferenceConstants.PREF_LINE_COLOR);
+ ViewUtil.setStructuralFeatureValue(node,
+ NotationPackage.eINSTANCE.getLineStyle_LineColor(),
+ FigureUtilities.RGBToInteger(lineRGB));
+ FontStyle nodeFontStyle = (FontStyle) node
+ .getStyle(NotationPackage.Literals.FONT_STYLE);
+ if (nodeFontStyle != null) {
+ FontData fontData = PreferenceConverter.getFontData(prefStore,
+ IPreferenceConstants.PREF_DEFAULT_FONT);
+ nodeFontStyle.setFontName(fontData.getName());
+ nodeFontStyle.setFontHeight(fontData.getHeight());
+ nodeFontStyle.setBold((fontData.getStyle() & SWT.BOLD) != 0);
+ nodeFontStyle.setItalic((fontData.getStyle() & SWT.ITALIC) != 0);
+ org.eclipse.swt.graphics.RGB fontRGB = PreferenceConverter
+ .getColor(prefStore, IPreferenceConstants.PREF_FONT_COLOR);
+ nodeFontStyle.setFontColor(FigureUtilities.RGBToInteger(fontRGB)
+ .intValue());
+ }
+ org.eclipse.swt.graphics.RGB fillRGB = PreferenceConverter.getColor(
+ prefStore, IPreferenceConstants.PREF_FILL_COLOR);
+ ViewUtil.setStructuralFeatureValue(node,
+ NotationPackage.eINSTANCE.getFillStyle_FillColor(),
+ FigureUtilities.RGBToInteger(fillRGB));
+ Node label5050 = createLabel(node,
+ ComrelVisualIDRegistry
+ .getType(AtomicUnitLabelType5EditPart.VISUAL_ID));
+ return node;
+ }
+
+ /**
+ * @generated
+ */
+ public Node createConditionalUnit_3075(EObject domainElement,
+ View containerView, int index, boolean persisted,
+ PreferencesHint preferencesHint) {
+ Shape node = NotationFactory.eINSTANCE.createShape();
+ node.getStyles().add(
+ NotationFactory.eINSTANCE.createHintedDiagramLinkStyle());
+ node.setLayoutConstraint(NotationFactory.eINSTANCE.createBounds());
+ node.setType(ComrelVisualIDRegistry
+ .getType(ConditionalUnit7EditPart.VISUAL_ID));
+ ViewUtil.insertChildView(containerView, node, index, persisted);
+ node.setElement(domainElement);
+ // initializeFromPreferences
+ final IPreferenceStore prefStore = (IPreferenceStore) preferencesHint
+ .getPreferenceStore();
+
+ org.eclipse.swt.graphics.RGB lineRGB = PreferenceConverter.getColor(
+ prefStore, IPreferenceConstants.PREF_LINE_COLOR);
+ ViewUtil.setStructuralFeatureValue(node,
+ NotationPackage.eINSTANCE.getLineStyle_LineColor(),
+ FigureUtilities.RGBToInteger(lineRGB));
+ FontStyle nodeFontStyle = (FontStyle) node
+ .getStyle(NotationPackage.Literals.FONT_STYLE);
+ if (nodeFontStyle != null) {
+ FontData fontData = PreferenceConverter.getFontData(prefStore,
+ IPreferenceConstants.PREF_DEFAULT_FONT);
+ nodeFontStyle.setFontName(fontData.getName());
+ nodeFontStyle.setFontHeight(fontData.getHeight());
+ nodeFontStyle.setBold((fontData.getStyle() & SWT.BOLD) != 0);
+ nodeFontStyle.setItalic((fontData.getStyle() & SWT.ITALIC) != 0);
+ org.eclipse.swt.graphics.RGB fontRGB = PreferenceConverter
+ .getColor(prefStore, IPreferenceConstants.PREF_FONT_COLOR);
+ nodeFontStyle.setFontColor(FigureUtilities.RGBToInteger(fontRGB)
+ .intValue());
+ }
+ org.eclipse.swt.graphics.RGB fillRGB = PreferenceConverter.getColor(
+ prefStore, IPreferenceConstants.PREF_FILL_COLOR);
+ ViewUtil.setStructuralFeatureValue(node,
+ NotationPackage.eINSTANCE.getFillStyle_FillColor(),
+ FigureUtilities.RGBToInteger(fillRGB));
+ Node label5055 = createLabel(node,
+ ComrelVisualIDRegistry
+ .getType(ConditionalUnitNameType7EditPart.VISUAL_ID));
+ createCompartment(
+ node,
+ ComrelVisualIDRegistry
+ .getType(ConditionalUnitConditionalUnitIfCompartment6EditPart.VISUAL_ID),
+ true, false, false, false);
+ createCompartment(
+ node,
+ ComrelVisualIDRegistry
+ .getType(ConditionalUnitConditionalUnitHelperUnitsCompartment6EditPart.VISUAL_ID),
+ true, false, false, false);
+ createCompartment(
+ node,
+ ComrelVisualIDRegistry
+ .getType(ConditionalUnitConditionalUnitThenCompartment6EditPart.VISUAL_ID),
+ true, false, false, false);
+ createCompartment(
+ node,
+ ComrelVisualIDRegistry
+ .getType(ConditionalUnitConditionalUnitElseCompartment6EditPart.VISUAL_ID),
+ true, false, false, false);
+ return node;
+ }
+
+ /**
+ * @generated
+ */
+ public Node createConditionCheck_3076(EObject domainElement,
+ View containerView, int index, boolean persisted,
+ PreferencesHint preferencesHint) {
+ Shape node = NotationFactory.eINSTANCE.createShape();
+ node.setLayoutConstraint(NotationFactory.eINSTANCE.createBounds());
+ node.setType(ComrelVisualIDRegistry
+ .getType(ConditionCheckEditPart.VISUAL_ID));
+ ViewUtil.insertChildView(containerView, node, index, persisted);
+ node.setElement(domainElement);
+ // initializeFromPreferences
+ final IPreferenceStore prefStore = (IPreferenceStore) preferencesHint
+ .getPreferenceStore();
+
+ org.eclipse.swt.graphics.RGB lineRGB = PreferenceConverter.getColor(
+ prefStore, IPreferenceConstants.PREF_LINE_COLOR);
+ ViewUtil.setStructuralFeatureValue(node,
+ NotationPackage.eINSTANCE.getLineStyle_LineColor(),
+ FigureUtilities.RGBToInteger(lineRGB));
+ FontStyle nodeFontStyle = (FontStyle) node
+ .getStyle(NotationPackage.Literals.FONT_STYLE);
+ if (nodeFontStyle != null) {
+ FontData fontData = PreferenceConverter.getFontData(prefStore,
+ IPreferenceConstants.PREF_DEFAULT_FONT);
+ nodeFontStyle.setFontName(fontData.getName());
+ nodeFontStyle.setFontHeight(fontData.getHeight());
+ nodeFontStyle.setBold((fontData.getStyle() & SWT.BOLD) != 0);
+ nodeFontStyle.setItalic((fontData.getStyle() & SWT.ITALIC) != 0);
+ org.eclipse.swt.graphics.RGB fontRGB = PreferenceConverter
+ .getColor(prefStore, IPreferenceConstants.PREF_FONT_COLOR);
+ nodeFontStyle.setFontColor(FigureUtilities.RGBToInteger(fontRGB)
+ .intValue());
+ }
+ org.eclipse.swt.graphics.RGB fillRGB = PreferenceConverter.getColor(
+ prefStore, IPreferenceConstants.PREF_FILL_COLOR);
+ ViewUtil.setStructuralFeatureValue(node,
+ NotationPackage.eINSTANCE.getFillStyle_FillColor(),
+ FigureUtilities.RGBToInteger(fillRGB));
+ Node label5052 = createLabel(node,
+ ComrelVisualIDRegistry
+ .getType(ConditionCheckNameTypeSpecEditPart.VISUAL_ID));
+ return node;
+ }
+
+ /**
+ * @generated
+ */
+ public Node createAtomicUnit_3077(EObject domainElement,
+ View containerView, int index, boolean persisted,
+ PreferencesHint preferencesHint) {
+ Shape node = NotationFactory.eINSTANCE.createShape();
+ node.setLayoutConstraint(NotationFactory.eINSTANCE.createBounds());
+ node.setType(ComrelVisualIDRegistry
+ .getType(AtomicUnit6EditPart.VISUAL_ID));
+ ViewUtil.insertChildView(containerView, node, index, persisted);
+ node.setElement(domainElement);
+ // initializeFromPreferences
+ final IPreferenceStore prefStore = (IPreferenceStore) preferencesHint
+ .getPreferenceStore();
+
+ org.eclipse.swt.graphics.RGB lineRGB = PreferenceConverter.getColor(
+ prefStore, IPreferenceConstants.PREF_LINE_COLOR);
+ ViewUtil.setStructuralFeatureValue(node,
+ NotationPackage.eINSTANCE.getLineStyle_LineColor(),
+ FigureUtilities.RGBToInteger(lineRGB));
+ FontStyle nodeFontStyle = (FontStyle) node
+ .getStyle(NotationPackage.Literals.FONT_STYLE);
+ if (nodeFontStyle != null) {
+ FontData fontData = PreferenceConverter.getFontData(prefStore,
+ IPreferenceConstants.PREF_DEFAULT_FONT);
+ nodeFontStyle.setFontName(fontData.getName());
+ nodeFontStyle.setFontHeight(fontData.getHeight());
+ nodeFontStyle.setBold((fontData.getStyle() & SWT.BOLD) != 0);
+ nodeFontStyle.setItalic((fontData.getStyle() & SWT.ITALIC) != 0);
+ org.eclipse.swt.graphics.RGB fontRGB = PreferenceConverter
+ .getColor(prefStore, IPreferenceConstants.PREF_FONT_COLOR);
+ nodeFontStyle.setFontColor(FigureUtilities.RGBToInteger(fontRGB)
+ .intValue());
+ }
+ org.eclipse.swt.graphics.RGB fillRGB = PreferenceConverter.getColor(
+ prefStore, IPreferenceConstants.PREF_FILL_COLOR);
+ ViewUtil.setStructuralFeatureValue(node,
+ NotationPackage.eINSTANCE.getFillStyle_FillColor(),
+ FigureUtilities.RGBToInteger(fillRGB));
+ Node label5053 = createLabel(node,
+ ComrelVisualIDRegistry
+ .getType(AtomicUnitLabelType6EditPart.VISUAL_ID));
+ return node;
+ }
+
+ /**
+ * @generated
+ */
+ public Node createAtomicUnit_3078(EObject domainElement,
+ View containerView, int index, boolean persisted,
+ PreferencesHint preferencesHint) {
+ Shape node = NotationFactory.eINSTANCE.createShape();
+ node.setLayoutConstraint(NotationFactory.eINSTANCE.createBounds());
+ node.setType(ComrelVisualIDRegistry
+ .getType(AtomicUnit7EditPart.VISUAL_ID));
+ ViewUtil.insertChildView(containerView, node, index, persisted);
+ node.setElement(domainElement);
+ // initializeFromPreferences
+ final IPreferenceStore prefStore = (IPreferenceStore) preferencesHint
+ .getPreferenceStore();
+
+ org.eclipse.swt.graphics.RGB lineRGB = PreferenceConverter.getColor(
+ prefStore, IPreferenceConstants.PREF_LINE_COLOR);
+ ViewUtil.setStructuralFeatureValue(node,
+ NotationPackage.eINSTANCE.getLineStyle_LineColor(),
+ FigureUtilities.RGBToInteger(lineRGB));
+ FontStyle nodeFontStyle = (FontStyle) node
+ .getStyle(NotationPackage.Literals.FONT_STYLE);
+ if (nodeFontStyle != null) {
+ FontData fontData = PreferenceConverter.getFontData(prefStore,
+ IPreferenceConstants.PREF_DEFAULT_FONT);
+ nodeFontStyle.setFontName(fontData.getName());
+ nodeFontStyle.setFontHeight(fontData.getHeight());
+ nodeFontStyle.setBold((fontData.getStyle() & SWT.BOLD) != 0);
+ nodeFontStyle.setItalic((fontData.getStyle() & SWT.ITALIC) != 0);
+ org.eclipse.swt.graphics.RGB fontRGB = PreferenceConverter
+ .getColor(prefStore, IPreferenceConstants.PREF_FONT_COLOR);
+ nodeFontStyle.setFontColor(FigureUtilities.RGBToInteger(fontRGB)
+ .intValue());
+ }
+ org.eclipse.swt.graphics.RGB fillRGB = PreferenceConverter.getColor(
+ prefStore, IPreferenceConstants.PREF_FILL_COLOR);
+ ViewUtil.setStructuralFeatureValue(node,
+ NotationPackage.eINSTANCE.getFillStyle_FillColor(),
+ FigureUtilities.RGBToInteger(fillRGB));
+ Node label5054 = createLabel(node,
+ ComrelVisualIDRegistry
+ .getType(AtomicUnitLabelType7EditPart.VISUAL_ID));
+ return node;
+ }
+
+ /**
+ * @generated
+ */
+ public Edge createSinglePortMapping_4001(EObject domainElement,
+ View containerView, int index, boolean persisted,
+ PreferencesHint preferencesHint) {
+ Connector edge = NotationFactory.eINSTANCE.createConnector();
+ edge.getStyles().add(NotationFactory.eINSTANCE.createFontStyle());
+ RelativeBendpoints bendpoints = NotationFactory.eINSTANCE
+ .createRelativeBendpoints();
+ ArrayList<RelativeBendpoint> points = new ArrayList<RelativeBendpoint>(
+ 2);
+ points.add(new RelativeBendpoint());
+ points.add(new RelativeBendpoint());
+ bendpoints.setPoints(points);
+ edge.setBendpoints(bendpoints);
+ ViewUtil.insertChildView(containerView, edge, index, persisted);
+ edge.setType(ComrelVisualIDRegistry
+ .getType(SinglePortMappingEditPart.VISUAL_ID));
+ edge.setElement(domainElement);
+ // initializePreferences
+ final IPreferenceStore prefStore = (IPreferenceStore) preferencesHint
+ .getPreferenceStore();
+
+ org.eclipse.swt.graphics.RGB lineRGB = PreferenceConverter.getColor(
+ prefStore, IPreferenceConstants.PREF_LINE_COLOR);
+ ViewUtil.setStructuralFeatureValue(edge,
+ NotationPackage.eINSTANCE.getLineStyle_LineColor(),
+ FigureUtilities.RGBToInteger(lineRGB));
+ FontStyle edgeFontStyle = (FontStyle) edge
+ .getStyle(NotationPackage.Literals.FONT_STYLE);
+ if (edgeFontStyle != null) {
+ FontData fontData = PreferenceConverter.getFontData(prefStore,
+ IPreferenceConstants.PREF_DEFAULT_FONT);
+ edgeFontStyle.setFontName(fontData.getName());
+ edgeFontStyle.setFontHeight(fontData.getHeight());
+ edgeFontStyle.setBold((fontData.getStyle() & SWT.BOLD) != 0);
+ edgeFontStyle.setItalic((fontData.getStyle() & SWT.ITALIC) != 0);
+ org.eclipse.swt.graphics.RGB fontRGB = PreferenceConverter
+ .getColor(prefStore, IPreferenceConstants.PREF_FONT_COLOR);
+ edgeFontStyle.setFontColor(FigureUtilities.RGBToInteger(fontRGB)
+ .intValue());
+ }
+ Routing routing = Routing.get(prefStore
+ .getInt(IPreferenceConstants.PREF_LINE_STYLE));
+ if (routing != null) {
+ ViewUtil.setStructuralFeatureValue(edge,
+ NotationPackage.eINSTANCE.getRoutingStyle_Routing(),
+ routing);
+ }
+ return edge;
+ }
+
+ /**
+ * @generated
+ */
+ public Edge createMultiPortMapping_4002(EObject domainElement,
+ View containerView, int index, boolean persisted,
+ PreferencesHint preferencesHint) {
+ Connector edge = NotationFactory.eINSTANCE.createConnector();
+ edge.getStyles().add(NotationFactory.eINSTANCE.createFontStyle());
+ RelativeBendpoints bendpoints = NotationFactory.eINSTANCE
+ .createRelativeBendpoints();
+ ArrayList<RelativeBendpoint> points = new ArrayList<RelativeBendpoint>(
+ 2);
+ points.add(new RelativeBendpoint());
+ points.add(new RelativeBendpoint());
+ bendpoints.setPoints(points);
+ edge.setBendpoints(bendpoints);
+ ViewUtil.insertChildView(containerView, edge, index, persisted);
+ edge.setType(ComrelVisualIDRegistry
+ .getType(MultiPortMappingEditPart.VISUAL_ID));
+ edge.setElement(domainElement);
+ // initializePreferences
+ final IPreferenceStore prefStore = (IPreferenceStore) preferencesHint
+ .getPreferenceStore();
+
+ org.eclipse.swt.graphics.RGB lineRGB = PreferenceConverter.getColor(
+ prefStore, IPreferenceConstants.PREF_LINE_COLOR);
+ ViewUtil.setStructuralFeatureValue(edge,
+ NotationPackage.eINSTANCE.getLineStyle_LineColor(),
+ FigureUtilities.RGBToInteger(lineRGB));
+ FontStyle edgeFontStyle = (FontStyle) edge
+ .getStyle(NotationPackage.Literals.FONT_STYLE);
+ if (edgeFontStyle != null) {
+ FontData fontData = PreferenceConverter.getFontData(prefStore,
+ IPreferenceConstants.PREF_DEFAULT_FONT);
+ edgeFontStyle.setFontName(fontData.getName());
+ edgeFontStyle.setFontHeight(fontData.getHeight());
+ edgeFontStyle.setBold((fontData.getStyle() & SWT.BOLD) != 0);
+ edgeFontStyle.setItalic((fontData.getStyle() & SWT.ITALIC) != 0);
+ org.eclipse.swt.graphics.RGB fontRGB = PreferenceConverter
+ .getColor(prefStore, IPreferenceConstants.PREF_FONT_COLOR);
+ edgeFontStyle.setFontColor(FigureUtilities.RGBToInteger(fontRGB)
+ .intValue());
+ }
+ Routing routing = Routing.get(prefStore
+ .getInt(IPreferenceConstants.PREF_LINE_STYLE));
+ if (routing != null) {
+ ViewUtil.setStructuralFeatureValue(edge,
+ NotationPackage.eINSTANCE.getRoutingStyle_Routing(),
+ routing);
+ }
+ return edge;
+ }
+
+ /**
+ * @generated
+ */
+ public Edge createMultiSinglePortMapping_4003(EObject domainElement,
+ View containerView, int index, boolean persisted,
+ PreferencesHint preferencesHint) {
+ Connector edge = NotationFactory.eINSTANCE.createConnector();
+ edge.getStyles().add(NotationFactory.eINSTANCE.createFontStyle());
+ RelativeBendpoints bendpoints = NotationFactory.eINSTANCE
+ .createRelativeBendpoints();
+ ArrayList<RelativeBendpoint> points = new ArrayList<RelativeBendpoint>(
+ 2);
+ points.add(new RelativeBendpoint());
+ points.add(new RelativeBendpoint());
+ bendpoints.setPoints(points);
+ edge.setBendpoints(bendpoints);
+ ViewUtil.insertChildView(containerView, edge, index, persisted);
+ edge.setType(ComrelVisualIDRegistry
+ .getType(MultiSinglePortMappingEditPart.VISUAL_ID));
+ edge.setElement(domainElement);
+ // initializePreferences
+ final IPreferenceStore prefStore = (IPreferenceStore) preferencesHint
+ .getPreferenceStore();
+
+ org.eclipse.swt.graphics.RGB lineRGB = PreferenceConverter.getColor(
+ prefStore, IPreferenceConstants.PREF_LINE_COLOR);
+ ViewUtil.setStructuralFeatureValue(edge,
+ NotationPackage.eINSTANCE.getLineStyle_LineColor(),
+ FigureUtilities.RGBToInteger(lineRGB));
+ FontStyle edgeFontStyle = (FontStyle) edge
+ .getStyle(NotationPackage.Literals.FONT_STYLE);
+ if (edgeFontStyle != null) {
+ FontData fontData = PreferenceConverter.getFontData(prefStore,
+ IPreferenceConstants.PREF_DEFAULT_FONT);
+ edgeFontStyle.setFontName(fontData.getName());
+ edgeFontStyle.setFontHeight(fontData.getHeight());
+ edgeFontStyle.setBold((fontData.getStyle() & SWT.BOLD) != 0);
+ edgeFontStyle.setItalic((fontData.getStyle() & SWT.ITALIC) != 0);
+ org.eclipse.swt.graphics.RGB fontRGB = PreferenceConverter
+ .getColor(prefStore, IPreferenceConstants.PREF_FONT_COLOR);
+ edgeFontStyle.setFontColor(FigureUtilities.RGBToInteger(fontRGB)
+ .intValue());
+ }
+ Routing routing = Routing.get(prefStore
+ .getInt(IPreferenceConstants.PREF_LINE_STYLE));
+ if (routing != null) {
+ ViewUtil.setStructuralFeatureValue(edge,
+ NotationPackage.eINSTANCE.getRoutingStyle_Routing(),
+ routing);
+ }
+ return edge;
+ }
+
+ /**
+ * @generated
+ */
+ private void stampShortcut(View containerView, Node target) {
+ if (!CompositeRefactoringEditPart.MODEL_ID
+ .equals(ComrelVisualIDRegistry.getModelID(containerView))) {
+ EAnnotation shortcutAnnotation = EcoreFactory.eINSTANCE
+ .createEAnnotation();
+ shortcutAnnotation.setSource("Shortcut"); //$NON-NLS-1$
+ shortcutAnnotation.getDetails().put(
+ "modelID", CompositeRefactoringEditPart.MODEL_ID); //$NON-NLS-1$
+ target.getEAnnotations().add(shortcutAnnotation);
+ }
+ }
+
+ /**
+ * @generated
+ */
+ private Node createLabel(View owner, String hint) {
+ DecorationNode rv = NotationFactory.eINSTANCE.createDecorationNode();
+ rv.setType(hint);
+ ViewUtil.insertChildView(owner, rv, ViewUtil.APPEND, true);
+ return rv;
+ }
+
+ /**
+ * @generated
+ */
+ private Node createCompartment(View owner, String hint,
+ boolean canCollapse, boolean hasTitle, boolean canSort,
+ boolean canFilter) {
+ //SemanticListCompartment rv = NotationFactory.eINSTANCE.createSemanticListCompartment();
+ //rv.setShowTitle(showTitle);
+ //rv.setCollapsed(isCollapsed);
+ Node rv;
+ if (canCollapse) {
+ rv = NotationFactory.eINSTANCE.createBasicCompartment();
+ } else {
+ rv = NotationFactory.eINSTANCE.createDecorationNode();
+ }
+ if (hasTitle) {
+ TitleStyle ts = NotationFactory.eINSTANCE.createTitleStyle();
+ ts.setShowTitle(true);
+ rv.getStyles().add(ts);
+ }
+ if (canSort) {
+ rv.getStyles().add(NotationFactory.eINSTANCE.createSortingStyle());
+ }
+ if (canFilter) {
+ rv.getStyles()
+ .add(NotationFactory.eINSTANCE.createFilteringStyle());
+ }
+ rv.setType(hint);
+ ViewUtil.insertChildView(owner, rv, ViewUtil.APPEND, true);
+ return rv;
+ }
+
+ /**
+ * @generated
+ */
+ private EObject getSemanticElement(IAdaptable semanticAdapter) {
+ if (semanticAdapter == null) {
+ return null;
+ }
+ EObject eObject = (EObject) semanticAdapter.getAdapter(EObject.class);
+ if (eObject != null) {
+ return EMFCoreUtil.resolve(
+ TransactionUtil.getEditingDomain(eObject), eObject);
+ }
+ return null;
+ }
+
+ /**
+ * @generated
+ */
+ private IElementType getSemanticElementType(IAdaptable semanticAdapter) {
+ if (semanticAdapter == null) {
+ return null;
+ }
+ return (IElementType) semanticAdapter.getAdapter(IElementType.class);
+ }
+}
diff --git a/org.eclipse.emf.refactor.comrel.diagram/src/comrel/diagram/providers/ElementInitializers.java b/org.eclipse.emf.refactor.comrel.diagram/src/comrel/diagram/providers/ElementInitializers.java
new file mode 100644
index 0000000..1d63a77
--- /dev/null
+++ b/org.eclipse.emf.refactor.comrel.diagram/src/comrel/diagram/providers/ElementInitializers.java
@@ -0,0 +1,29 @@
+/*
+ *
+ */
+package comrel.diagram.providers;
+
+import comrel.diagram.part.ComrelDiagramEditorPlugin;
+
+/**
+ * @generated
+ */
+public class ElementInitializers {
+
+ protected ElementInitializers() {
+ // use #getInstance to access cached instance
+ }
+
+ /**
+ * @generated
+ */
+ public static ElementInitializers getInstance() {
+ ElementInitializers cached = ComrelDiagramEditorPlugin.getInstance()
+ .getElementInitializers();
+ if (cached == null) {
+ ComrelDiagramEditorPlugin.getInstance().setElementInitializers(
+ cached = new ElementInitializers());
+ }
+ return cached;
+ }
+}
diff --git a/org.eclipse.emf.refactor.comrel.diagram/src/comrel/diagram/sheet/ComrelPropertySection.java b/org.eclipse.emf.refactor.comrel.diagram/src/comrel/diagram/sheet/ComrelPropertySection.java
new file mode 100644
index 0000000..ccff61e
--- /dev/null
+++ b/org.eclipse.emf.refactor.comrel.diagram/src/comrel/diagram/sheet/ComrelPropertySection.java
@@ -0,0 +1,120 @@
+/*
+ *
+ */
+package comrel.diagram.sheet;
+
+import java.util.ArrayList;
+import java.util.Iterator;
+
+import org.eclipse.core.runtime.IAdaptable;
+import org.eclipse.emf.common.notify.AdapterFactory;
+import org.eclipse.emf.edit.domain.AdapterFactoryEditingDomain;
+import org.eclipse.emf.edit.provider.IItemPropertySource;
+import org.eclipse.emf.edit.ui.provider.PropertySource;
+import org.eclipse.emf.transaction.TransactionalEditingDomain;
+import org.eclipse.emf.transaction.util.TransactionUtil;
+import org.eclipse.gef.EditPart;
+import org.eclipse.gmf.runtime.diagram.ui.properties.sections.AdvancedPropertySection;
+import org.eclipse.gmf.runtime.notation.View;
+import org.eclipse.jface.viewers.ISelection;
+import org.eclipse.jface.viewers.StructuredSelection;
+import org.eclipse.ui.IWorkbenchPart;
+import org.eclipse.ui.views.properties.IPropertySource;
+import org.eclipse.ui.views.properties.IPropertySourceProvider;
+
+/**
+ * @generated
+ */
+public class ComrelPropertySection extends AdvancedPropertySection implements
+ IPropertySourceProvider {
+
+ /**
+ * @generated
+ */
+ public IPropertySource getPropertySource(Object object) {
+ if (object instanceof IPropertySource) {
+ return (IPropertySource) object;
+ }
+ AdapterFactory af = getAdapterFactory(object);
+ if (af != null) {
+ IItemPropertySource ips = (IItemPropertySource) af.adapt(object,
+ IItemPropertySource.class);
+ if (ips != null) {
+ return new PropertySource(object, ips);
+ }
+ }
+ if (object instanceof IAdaptable) {
+ return (IPropertySource) ((IAdaptable) object)
+ .getAdapter(IPropertySource.class);
+ }
+ return null;
+ }
+
+ /**
+ * @generated
+ */
+ protected IPropertySourceProvider getPropertySourceProvider() {
+ return this;
+ }
+
+ /**
+ * Modify/unwrap selection.
+ * @generated
+ */
+ protected Object transformSelection(Object selected) {
+
+ if (selected instanceof EditPart) {
+ Object model = ((EditPart) selected).getModel();
+ return model instanceof View ? ((View) model).getElement() : null;
+ }
+ if (selected instanceof View) {
+ return ((View) selected).getElement();
+ }
+ if (selected instanceof IAdaptable) {
+ View view = (View) ((IAdaptable) selected).getAdapter(View.class);
+ if (view != null) {
+ return view.getElement();
+ }
+ }
+ return selected;
+ }
+
+ /**
+ * @generated
+ */
+ public void setInput(IWorkbenchPart part, ISelection selection) {
+ if (selection.isEmpty()
+ || false == selection instanceof StructuredSelection) {
+ super.setInput(part, selection);
+ return;
+ }
+ final StructuredSelection structuredSelection = ((StructuredSelection) selection);
+ ArrayList transformedSelection = new ArrayList(
+ structuredSelection.size());
+ for (Iterator it = structuredSelection.iterator(); it.hasNext();) {
+ Object r = transformSelection(it.next());
+ if (r != null) {
+ transformedSelection.add(r);
+ }
+ }
+ super.setInput(part, new StructuredSelection(transformedSelection));
+ }
+
+ /**
+ * @generated
+ */
+ protected AdapterFactory getAdapterFactory(Object object) {
+ if (getEditingDomain() instanceof AdapterFactoryEditingDomain) {
+ return ((AdapterFactoryEditingDomain) getEditingDomain())
+ .getAdapterFactory();
+ }
+ TransactionalEditingDomain editingDomain = TransactionUtil
+ .getEditingDomain(object);
+ if (editingDomain != null) {
+ return ((AdapterFactoryEditingDomain) editingDomain)
+ .getAdapterFactory();
+ }
+ return null;
+ }
+
+}
diff --git a/org.eclipse.emf.refactor.comrel.diagram/src/comrel/diagram/sheet/ComrelSheetLabelProvider.java b/org.eclipse.emf.refactor.comrel.diagram/src/comrel/diagram/sheet/ComrelSheetLabelProvider.java
new file mode 100644
index 0000000..7564e31
--- /dev/null
+++ b/org.eclipse.emf.refactor.comrel.diagram/src/comrel/diagram/sheet/ComrelSheetLabelProvider.java
@@ -0,0 +1,84 @@
+/*
+ *
+ */
+package comrel.diagram.sheet;
+
+import org.eclipse.core.runtime.IAdaptable;
+import org.eclipse.gmf.runtime.emf.type.core.IElementType;
+import org.eclipse.gmf.runtime.notation.View;
+import org.eclipse.jface.viewers.BaseLabelProvider;
+import org.eclipse.jface.viewers.ILabelProvider;
+import org.eclipse.jface.viewers.IStructuredSelection;
+import org.eclipse.swt.graphics.Image;
+
+import comrel.diagram.navigator.ComrelNavigatorGroup;
+import comrel.diagram.part.ComrelVisualIDRegistry;
+import comrel.diagram.providers.ComrelElementTypes;
+
+/**
+ * @generated
+ */
+public class ComrelSheetLabelProvider extends BaseLabelProvider implements
+ ILabelProvider {
+
+ /**
+ * @generated
+ */
+ public String getText(Object element) {
+ element = unwrap(element);
+ if (element instanceof ComrelNavigatorGroup) {
+ return ((ComrelNavigatorGroup) element).getGroupName();
+ }
+ IElementType etype = getElementType(getView(element));
+ return etype == null ? "" : etype.getDisplayName();
+ }
+
+ /**
+ * @generated
+ */
+ public Image getImage(Object element) {
+ IElementType etype = getElementType(getView(unwrap(element)));
+ return etype == null ? null : ComrelElementTypes.getImage(etype);
+ }
+
+ /**
+ * @generated
+ */
+ private Object unwrap(Object element) {
+ if (element instanceof IStructuredSelection) {
+ return ((IStructuredSelection) element).getFirstElement();
+ }
+ return element;
+ }
+
+ /**
+ * @generated
+ */
+ private View getView(Object element) {
+ if (element instanceof View) {
+ return (View) element;
+ }
+ if (element instanceof IAdaptable) {
+ return (View) ((IAdaptable) element).getAdapter(View.class);
+ }
+ return null;
+ }
+
+ /**
+ * @generated
+ */
+ private IElementType getElementType(View view) {
+ // For intermediate views climb up the containment hierarchy to find the one associated with an element type.
+ while (view != null) {
+ int vid = ComrelVisualIDRegistry.getVisualID(view);
+ IElementType etype = ComrelElementTypes.getElementType(vid);
+ if (etype != null) {
+ return etype;
+ }
+ view = view.eContainer() instanceof View ? (View) view.eContainer()
+ : null;
+ }
+ return null;
+ }
+
+}
diff --git a/org.eclipse.emf.refactor.comrel.edit/.classpath b/org.eclipse.emf.refactor.comrel.edit/.classpath
new file mode 100644
index 0000000..ed2bc12
--- /dev/null
+++ b/org.eclipse.emf.refactor.comrel.edit/.classpath
@@ -0,0 +1,7 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<classpath>
+ <classpathentry kind="src" path="src"/>
+ <classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER/org.eclipse.jdt.internal.debug.ui.launcher.StandardVMType/JavaSE-1.6"/>
+ <classpathentry kind="con" path="org.eclipse.pde.core.requiredPlugins"/>
+ <classpathentry kind="output" path="bin"/>
+</classpath>
diff --git a/org.eclipse.emf.refactor.comrel.edit/.project b/org.eclipse.emf.refactor.comrel.edit/.project
new file mode 100644
index 0000000..8321e99
--- /dev/null
+++ b/org.eclipse.emf.refactor.comrel.edit/.project
@@ -0,0 +1,28 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<projectDescription>
+ <name>org.eclipse.emf.refactor.comrel.edit</name>
+ <comment></comment>
+ <projects>
+ </projects>
+ <buildSpec>
+ <buildCommand>
+ <name>org.eclipse.jdt.core.javabuilder</name>
+ <arguments>
+ </arguments>
+ </buildCommand>
+ <buildCommand>
+ <name>org.eclipse.pde.ManifestBuilder</name>
+ <arguments>
+ </arguments>
+ </buildCommand>
+ <buildCommand>
+ <name>org.eclipse.pde.SchemaBuilder</name>
+ <arguments>
+ </arguments>
+ </buildCommand>
+ </buildSpec>
+ <natures>
+ <nature>org.eclipse.jdt.core.javanature</nature>
+ <nature>org.eclipse.pde.PluginNature</nature>
+ </natures>
+</projectDescription>
diff --git a/org.eclipse.emf.refactor.comrel.edit/META-INF/MANIFEST.MF b/org.eclipse.emf.refactor.comrel.edit/META-INF/MANIFEST.MF
new file mode 100644
index 0000000..93d3391
--- /dev/null
+++ b/org.eclipse.emf.refactor.comrel.edit/META-INF/MANIFEST.MF
@@ -0,0 +1,14 @@
+Manifest-Version: 1.0
+Bundle-ManifestVersion: 2
+Bundle-Name: CoMReL Edit
+Bundle-SymbolicName: org.eclipse.emf.refactor.comrel.edit;singleton:=true
+Bundle-Version: 0.9.0
+Bundle-ClassPath: .
+Bundle-Activator: comrel.provider.ComrelEditPlugin$Implementation
+Bundle-Localization: plugin
+Bundle-RequiredExecutionEnvironment: JavaSE-1.6
+Export-Package: comrel.provider
+Require-Bundle: org.eclipse.core.runtime,
+ org.eclipse.emf.refactor.comrel;visibility:=reexport,
+ org.eclipse.emf.edit;visibility:=reexport
+Bundle-ActivationPolicy: lazy
diff --git a/org.eclipse.emf.refactor.comrel.edit/bin/.gitignore b/org.eclipse.emf.refactor.comrel.edit/bin/.gitignore
new file mode 100644
index 0000000..508dbce
--- /dev/null
+++ b/org.eclipse.emf.refactor.comrel.edit/bin/.gitignore
@@ -0,0 +1 @@
+/comrel
diff --git a/org.eclipse.emf.refactor.comrel.edit/build.properties b/org.eclipse.emf.refactor.comrel.edit/build.properties
new file mode 100644
index 0000000..5dd2083
--- /dev/null
+++ b/org.eclipse.emf.refactor.comrel.edit/build.properties
@@ -0,0 +1,16 @@
+
+# <copyright>
+# </copyright>
+#
+# $Id$
+
+bin.includes = .,\
+ icons/,\
+ META-INF/,\
+ plugin.xml,\
+ plugin.properties,\
+ src/,\
+ bin/
+jars.compile.order = .
+source.. = src/
+output.. = bin/
diff --git a/org.eclipse.emf.refactor.comrel.edit/icons/full/ctool16/CreateAtomicUnit_inputPorts_SingleInputPort.gif b/org.eclipse.emf.refactor.comrel.edit/icons/full/ctool16/CreateAtomicUnit_inputPorts_SingleInputPort.gif
new file mode 100644
index 0000000..5e6c9c1
--- /dev/null
+++ b/org.eclipse.emf.refactor.comrel.edit/icons/full/ctool16/CreateAtomicUnit_inputPorts_SingleInputPort.gif
Binary files differ
diff --git a/org.eclipse.emf.refactor.comrel.edit/icons/full/ctool16/CreateCartesianQueuedUnit_helperUnits_MultiFeatureUnit.gif b/org.eclipse.emf.refactor.comrel.edit/icons/full/ctool16/CreateCartesianQueuedUnit_helperUnits_MultiFeatureUnit.gif
new file mode 100644
index 0000000..5694faf
--- /dev/null
+++ b/org.eclipse.emf.refactor.comrel.edit/icons/full/ctool16/CreateCartesianQueuedUnit_helperUnits_MultiFeatureUnit.gif
Binary files differ
diff --git a/org.eclipse.emf.refactor.comrel.edit/icons/full/ctool16/CreateCartesianQueuedUnit_helperUnits_MultiFilterUnit.gif b/org.eclipse.emf.refactor.comrel.edit/icons/full/ctool16/CreateCartesianQueuedUnit_helperUnits_MultiFilterUnit.gif
new file mode 100644
index 0000000..946cda2
--- /dev/null
+++ b/org.eclipse.emf.refactor.comrel.edit/icons/full/ctool16/CreateCartesianQueuedUnit_helperUnits_MultiFilterUnit.gif
Binary files differ
diff --git a/org.eclipse.emf.refactor.comrel.edit/icons/full/ctool16/CreateCartesianQueuedUnit_helperUnits_SingleFeatureUnit.gif b/org.eclipse.emf.refactor.comrel.edit/icons/full/ctool16/CreateCartesianQueuedUnit_helperUnits_SingleFeatureUnit.gif
new file mode 100644
index 0000000..621468e
--- /dev/null
+++ b/org.eclipse.emf.refactor.comrel.edit/icons/full/ctool16/CreateCartesianQueuedUnit_helperUnits_SingleFeatureUnit.gif
Binary files differ
diff --git a/org.eclipse.emf.refactor.comrel.edit/icons/full/ctool16/CreateCartesianQueuedUnit_helperUnits_SingleFilterUnit.gif b/org.eclipse.emf.refactor.comrel.edit/icons/full/ctool16/CreateCartesianQueuedUnit_helperUnits_SingleFilterUnit.gif
new file mode 100644
index 0000000..7a6da4c
--- /dev/null
+++ b/org.eclipse.emf.refactor.comrel.edit/icons/full/ctool16/CreateCartesianQueuedUnit_helperUnits_SingleFilterUnit.gif
Binary files differ
diff --git a/org.eclipse.emf.refactor.comrel.edit/icons/full/ctool16/CreateCartesianQueuedUnit_multiInputPorts_MultiInputPort.gif b/org.eclipse.emf.refactor.comrel.edit/icons/full/ctool16/CreateCartesianQueuedUnit_multiInputPorts_MultiInputPort.gif
new file mode 100644
index 0000000..c69e87c
--- /dev/null
+++ b/org.eclipse.emf.refactor.comrel.edit/icons/full/ctool16/CreateCartesianQueuedUnit_multiInputPorts_MultiInputPort.gif
Binary files differ
diff --git a/org.eclipse.emf.refactor.comrel.edit/icons/full/ctool16/CreateCartesianQueuedUnit_refactoringUnit_AtomicUnit.gif b/org.eclipse.emf.refactor.comrel.edit/icons/full/ctool16/CreateCartesianQueuedUnit_refactoringUnit_AtomicUnit.gif
new file mode 100644
index 0000000..7a6da4c
--- /dev/null
+++ b/org.eclipse.emf.refactor.comrel.edit/icons/full/ctool16/CreateCartesianQueuedUnit_refactoringUnit_AtomicUnit.gif
Binary files differ
diff --git a/org.eclipse.emf.refactor.comrel.edit/icons/full/ctool16/CreateCartesianQueuedUnit_refactoringUnit_CartesianQueuedUnit.gif b/org.eclipse.emf.refactor.comrel.edit/icons/full/ctool16/CreateCartesianQueuedUnit_refactoringUnit_CartesianQueuedUnit.gif
new file mode 100644
index 0000000..e01fab4
--- /dev/null
+++ b/org.eclipse.emf.refactor.comrel.edit/icons/full/ctool16/CreateCartesianQueuedUnit_refactoringUnit_CartesianQueuedUnit.gif
Binary files differ
diff --git a/org.eclipse.emf.refactor.comrel.edit/icons/full/ctool16/CreateCartesianQueuedUnit_refactoringUnit_ConditionalUnit.gif b/org.eclipse.emf.refactor.comrel.edit/icons/full/ctool16/CreateCartesianQueuedUnit_refactoringUnit_ConditionalUnit.gif
new file mode 100644
index 0000000..621468e
--- /dev/null
+++ b/org.eclipse.emf.refactor.comrel.edit/icons/full/ctool16/CreateCartesianQueuedUnit_refactoringUnit_ConditionalUnit.gif
Binary files differ
diff --git a/org.eclipse.emf.refactor.comrel.edit/icons/full/ctool16/CreateCartesianQueuedUnit_refactoringUnit_ParallelQueuedUnit.gif b/org.eclipse.emf.refactor.comrel.edit/icons/full/ctool16/CreateCartesianQueuedUnit_refactoringUnit_ParallelQueuedUnit.gif
new file mode 100644
index 0000000..e343f28
--- /dev/null
+++ b/org.eclipse.emf.refactor.comrel.edit/icons/full/ctool16/CreateCartesianQueuedUnit_refactoringUnit_ParallelQueuedUnit.gif
Binary files differ
diff --git a/org.eclipse.emf.refactor.comrel.edit/icons/full/ctool16/CreateCartesianQueuedUnit_refactoringUnit_SequentialUnit.gif b/org.eclipse.emf.refactor.comrel.edit/icons/full/ctool16/CreateCartesianQueuedUnit_refactoringUnit_SequentialUnit.gif
new file mode 100644
index 0000000..8f7d7ca
--- /dev/null
+++ b/org.eclipse.emf.refactor.comrel.edit/icons/full/ctool16/CreateCartesianQueuedUnit_refactoringUnit_SequentialUnit.gif
Binary files differ
diff --git a/org.eclipse.emf.refactor.comrel.edit/icons/full/ctool16/CreateCartesianQueuedUnit_refactoringUnit_SingleQueuedUnit.gif b/org.eclipse.emf.refactor.comrel.edit/icons/full/ctool16/CreateCartesianQueuedUnit_refactoringUnit_SingleQueuedUnit.gif
new file mode 100644
index 0000000..5f2cec7
--- /dev/null
+++ b/org.eclipse.emf.refactor.comrel.edit/icons/full/ctool16/CreateCartesianQueuedUnit_refactoringUnit_SingleQueuedUnit.gif
Binary files differ
diff --git a/org.eclipse.emf.refactor.comrel.edit/icons/full/ctool16/CreateCartesianQueuedUnit_singleInputPorts_SingleInputPort.gif b/org.eclipse.emf.refactor.comrel.edit/icons/full/ctool16/CreateCartesianQueuedUnit_singleInputPorts_SingleInputPort.gif
new file mode 100644
index 0000000..af3c30f
--- /dev/null
+++ b/org.eclipse.emf.refactor.comrel.edit/icons/full/ctool16/CreateCartesianQueuedUnit_singleInputPorts_SingleInputPort.gif
Binary files differ
diff --git a/org.eclipse.emf.refactor.comrel.edit/icons/full/ctool16/CreateCompositeRefactoring_helper_MultiFeatureHelper.gif b/org.eclipse.emf.refactor.comrel.edit/icons/full/ctool16/CreateCompositeRefactoring_helper_MultiFeatureHelper.gif
new file mode 100644
index 0000000..29d68a2
--- /dev/null
+++ b/org.eclipse.emf.refactor.comrel.edit/icons/full/ctool16/CreateCompositeRefactoring_helper_MultiFeatureHelper.gif
Binary files differ
diff --git a/org.eclipse.emf.refactor.comrel.edit/icons/full/ctool16/CreateCompositeRefactoring_helper_MultiFilterHelper.gif b/org.eclipse.emf.refactor.comrel.edit/icons/full/ctool16/CreateCompositeRefactoring_helper_MultiFilterHelper.gif
new file mode 100644
index 0000000..57826cc
--- /dev/null
+++ b/org.eclipse.emf.refactor.comrel.edit/icons/full/ctool16/CreateCompositeRefactoring_helper_MultiFilterHelper.gif
Binary files differ
diff --git a/org.eclipse.emf.refactor.comrel.edit/icons/full/ctool16/CreateCompositeRefactoring_helper_SingleFeatureHelper.gif b/org.eclipse.emf.refactor.comrel.edit/icons/full/ctool16/CreateCompositeRefactoring_helper_SingleFeatureHelper.gif
new file mode 100644
index 0000000..1fedc13
--- /dev/null
+++ b/org.eclipse.emf.refactor.comrel.edit/icons/full/ctool16/CreateCompositeRefactoring_helper_SingleFeatureHelper.gif
Binary files differ
diff --git a/org.eclipse.emf.refactor.comrel.edit/icons/full/ctool16/CreateCompositeRefactoring_helper_SingleFilterHelper.gif b/org.eclipse.emf.refactor.comrel.edit/icons/full/ctool16/CreateCompositeRefactoring_helper_SingleFilterHelper.gif
new file mode 100644
index 0000000..01f8ed6
--- /dev/null
+++ b/org.eclipse.emf.refactor.comrel.edit/icons/full/ctool16/CreateCompositeRefactoring_helper_SingleFilterHelper.gif
Binary files differ
diff --git a/org.eclipse.emf.refactor.comrel.edit/icons/full/ctool16/CreateCompositeRefactoring_mainRefactoringUnit_AtomicUnit.gif b/org.eclipse.emf.refactor.comrel.edit/icons/full/ctool16/CreateCompositeRefactoring_mainRefactoringUnit_AtomicUnit.gif
new file mode 100644
index 0000000..0064b04
--- /dev/null
+++ b/org.eclipse.emf.refactor.comrel.edit/icons/full/ctool16/CreateCompositeRefactoring_mainRefactoringUnit_AtomicUnit.gif
Binary files differ
diff --git a/org.eclipse.emf.refactor.comrel.edit/icons/full/ctool16/CreateCompositeRefactoring_mainRefactoringUnit_CartesianQueuedUnit.gif b/org.eclipse.emf.refactor.comrel.edit/icons/full/ctool16/CreateCompositeRefactoring_mainRefactoringUnit_CartesianQueuedUnit.gif
new file mode 100644
index 0000000..dcbb9e8
--- /dev/null
+++ b/org.eclipse.emf.refactor.comrel.edit/icons/full/ctool16/CreateCompositeRefactoring_mainRefactoringUnit_CartesianQueuedUnit.gif
Binary files differ
diff --git a/org.eclipse.emf.refactor.comrel.edit/icons/full/ctool16/CreateCompositeRefactoring_mainRefactoringUnit_ConditionalUnit.gif b/org.eclipse.emf.refactor.comrel.edit/icons/full/ctool16/CreateCompositeRefactoring_mainRefactoringUnit_ConditionalUnit.gif
new file mode 100644
index 0000000..ba1638a
--- /dev/null
+++ b/org.eclipse.emf.refactor.comrel.edit/icons/full/ctool16/CreateCompositeRefactoring_mainRefactoringUnit_ConditionalUnit.gif
Binary files differ
diff --git a/org.eclipse.emf.refactor.comrel.edit/icons/full/ctool16/CreateCompositeRefactoring_mainRefactoringUnit_ParallelQueuedUnit.gif b/org.eclipse.emf.refactor.comrel.edit/icons/full/ctool16/CreateCompositeRefactoring_mainRefactoringUnit_ParallelQueuedUnit.gif
new file mode 100644
index 0000000..9cdf500
--- /dev/null
+++ b/org.eclipse.emf.refactor.comrel.edit/icons/full/ctool16/CreateCompositeRefactoring_mainRefactoringUnit_ParallelQueuedUnit.gif
Binary files differ
diff --git a/org.eclipse.emf.refactor.comrel.edit/icons/full/ctool16/CreateCompositeRefactoring_mainRefactoringUnit_SequentialUnit.gif b/org.eclipse.emf.refactor.comrel.edit/icons/full/ctool16/CreateCompositeRefactoring_mainRefactoringUnit_SequentialUnit.gif
new file mode 100644
index 0000000..3248e68
--- /dev/null
+++ b/org.eclipse.emf.refactor.comrel.edit/icons/full/ctool16/CreateCompositeRefactoring_mainRefactoringUnit_SequentialUnit.gif
Binary files differ
diff --git a/org.eclipse.emf.refactor.comrel.edit/icons/full/ctool16/CreateCompositeRefactoring_mainRefactoringUnit_SingleQueuedUnit.gif b/org.eclipse.emf.refactor.comrel.edit/icons/full/ctool16/CreateCompositeRefactoring_mainRefactoringUnit_SingleQueuedUnit.gif
new file mode 100644
index 0000000..efdd202
--- /dev/null
+++ b/org.eclipse.emf.refactor.comrel.edit/icons/full/ctool16/CreateCompositeRefactoring_mainRefactoringUnit_SingleQueuedUnit.gif
Binary files differ
diff --git a/org.eclipse.emf.refactor.comrel.edit/icons/full/ctool16/CreateCompositeRefactoring_modelRefactorings_CompositeRefactoring.gif b/org.eclipse.emf.refactor.comrel.edit/icons/full/ctool16/CreateCompositeRefactoring_modelRefactorings_CompositeRefactoring.gif
new file mode 100644
index 0000000..6e14d42
--- /dev/null
+++ b/org.eclipse.emf.refactor.comrel.edit/icons/full/ctool16/CreateCompositeRefactoring_modelRefactorings_CompositeRefactoring.gif
Binary files differ
diff --git a/org.eclipse.emf.refactor.comrel.edit/icons/full/ctool16/CreateCompositeRefactoring_modelRefactorings_ModelRefactoring.gif b/org.eclipse.emf.refactor.comrel.edit/icons/full/ctool16/CreateCompositeRefactoring_modelRefactorings_ModelRefactoring.gif
new file mode 100644
index 0000000..9206001
--- /dev/null
+++ b/org.eclipse.emf.refactor.comrel.edit/icons/full/ctool16/CreateCompositeRefactoring_modelRefactorings_ModelRefactoring.gif
Binary files differ
diff --git a/org.eclipse.emf.refactor.comrel.edit/icons/full/ctool16/CreateCompositeRefactoring_portMappings_MultiPortMapping.gif b/org.eclipse.emf.refactor.comrel.edit/icons/full/ctool16/CreateCompositeRefactoring_portMappings_MultiPortMapping.gif
new file mode 100644
index 0000000..9cdf500
--- /dev/null
+++ b/org.eclipse.emf.refactor.comrel.edit/icons/full/ctool16/CreateCompositeRefactoring_portMappings_MultiPortMapping.gif
Binary files differ
diff --git a/org.eclipse.emf.refactor.comrel.edit/icons/full/ctool16/CreateCompositeRefactoring_portMappings_MultiSinglePortMapping.gif b/org.eclipse.emf.refactor.comrel.edit/icons/full/ctool16/CreateCompositeRefactoring_portMappings_MultiSinglePortMapping.gif
new file mode 100644
index 0000000..10186e9
--- /dev/null
+++ b/org.eclipse.emf.refactor.comrel.edit/icons/full/ctool16/CreateCompositeRefactoring_portMappings_MultiSinglePortMapping.gif
Binary files differ
diff --git a/org.eclipse.emf.refactor.comrel.edit/icons/full/ctool16/CreateCompositeRefactoring_portMappings_SinglePortMapping.gif b/org.eclipse.emf.refactor.comrel.edit/icons/full/ctool16/CreateCompositeRefactoring_portMappings_SinglePortMapping.gif
new file mode 100644
index 0000000..6e14d42
--- /dev/null
+++ b/org.eclipse.emf.refactor.comrel.edit/icons/full/ctool16/CreateCompositeRefactoring_portMappings_SinglePortMapping.gif
Binary files differ
diff --git a/org.eclipse.emf.refactor.comrel.edit/icons/full/ctool16/CreateConditionalUnit_else_AtomicUnit.gif b/org.eclipse.emf.refactor.comrel.edit/icons/full/ctool16/CreateConditionalUnit_else_AtomicUnit.gif
new file mode 100644
index 0000000..459f97d
--- /dev/null
+++ b/org.eclipse.emf.refactor.comrel.edit/icons/full/ctool16/CreateConditionalUnit_else_AtomicUnit.gif
Binary files differ
diff --git a/org.eclipse.emf.refactor.comrel.edit/icons/full/ctool16/CreateConditionalUnit_else_CartesianQueuedUnit.gif b/org.eclipse.emf.refactor.comrel.edit/icons/full/ctool16/CreateConditionalUnit_else_CartesianQueuedUnit.gif
new file mode 100644
index 0000000..7550e1d
--- /dev/null
+++ b/org.eclipse.emf.refactor.comrel.edit/icons/full/ctool16/CreateConditionalUnit_else_CartesianQueuedUnit.gif
Binary files differ
diff --git a/org.eclipse.emf.refactor.comrel.edit/icons/full/ctool16/CreateConditionalUnit_else_ConditionalUnit.gif b/org.eclipse.emf.refactor.comrel.edit/icons/full/ctool16/CreateConditionalUnit_else_ConditionalUnit.gif
new file mode 100644
index 0000000..fd7e5e1
--- /dev/null
+++ b/org.eclipse.emf.refactor.comrel.edit/icons/full/ctool16/CreateConditionalUnit_else_ConditionalUnit.gif
Binary files differ
diff --git a/org.eclipse.emf.refactor.comrel.edit/icons/full/ctool16/CreateConditionalUnit_else_ParallelQueuedUnit.gif b/org.eclipse.emf.refactor.comrel.edit/icons/full/ctool16/CreateConditionalUnit_else_ParallelQueuedUnit.gif
new file mode 100644
index 0000000..b52554e
--- /dev/null
+++ b/org.eclipse.emf.refactor.comrel.edit/icons/full/ctool16/CreateConditionalUnit_else_ParallelQueuedUnit.gif
Binary files differ
diff --git a/org.eclipse.emf.refactor.comrel.edit/icons/full/ctool16/CreateConditionalUnit_else_SequentialUnit.gif b/org.eclipse.emf.refactor.comrel.edit/icons/full/ctool16/CreateConditionalUnit_else_SequentialUnit.gif
new file mode 100644
index 0000000..4388857
--- /dev/null
+++ b/org.eclipse.emf.refactor.comrel.edit/icons/full/ctool16/CreateConditionalUnit_else_SequentialUnit.gif
Binary files differ
diff --git a/org.eclipse.emf.refactor.comrel.edit/icons/full/ctool16/CreateConditionalUnit_else_SingleQueuedUnit.gif b/org.eclipse.emf.refactor.comrel.edit/icons/full/ctool16/CreateConditionalUnit_else_SingleQueuedUnit.gif
new file mode 100644
index 0000000..b73db01
--- /dev/null
+++ b/org.eclipse.emf.refactor.comrel.edit/icons/full/ctool16/CreateConditionalUnit_else_SingleQueuedUnit.gif
Binary files differ
diff --git a/org.eclipse.emf.refactor.comrel.edit/icons/full/ctool16/CreateConditionalUnit_helperUnits_MultiFeatureUnit.gif b/org.eclipse.emf.refactor.comrel.edit/icons/full/ctool16/CreateConditionalUnit_helperUnits_MultiFeatureUnit.gif
new file mode 100644
index 0000000..2485066
--- /dev/null
+++ b/org.eclipse.emf.refactor.comrel.edit/icons/full/ctool16/CreateConditionalUnit_helperUnits_MultiFeatureUnit.gif
Binary files differ
diff --git a/org.eclipse.emf.refactor.comrel.edit/icons/full/ctool16/CreateConditionalUnit_helperUnits_MultiFilterUnit.gif b/org.eclipse.emf.refactor.comrel.edit/icons/full/ctool16/CreateConditionalUnit_helperUnits_MultiFilterUnit.gif
new file mode 100644
index 0000000..1fb2300
--- /dev/null
+++ b/org.eclipse.emf.refactor.comrel.edit/icons/full/ctool16/CreateConditionalUnit_helperUnits_MultiFilterUnit.gif
Binary files differ
diff --git a/org.eclipse.emf.refactor.comrel.edit/icons/full/ctool16/CreateConditionalUnit_helperUnits_SingleFeatureUnit.gif b/org.eclipse.emf.refactor.comrel.edit/icons/full/ctool16/CreateConditionalUnit_helperUnits_SingleFeatureUnit.gif
new file mode 100644
index 0000000..fd7e5e1
--- /dev/null
+++ b/org.eclipse.emf.refactor.comrel.edit/icons/full/ctool16/CreateConditionalUnit_helperUnits_SingleFeatureUnit.gif
Binary files differ
diff --git a/org.eclipse.emf.refactor.comrel.edit/icons/full/ctool16/CreateConditionalUnit_helperUnits_SingleFilterUnit.gif b/org.eclipse.emf.refactor.comrel.edit/icons/full/ctool16/CreateConditionalUnit_helperUnits_SingleFilterUnit.gif
new file mode 100644
index 0000000..459f97d
--- /dev/null
+++ b/org.eclipse.emf.refactor.comrel.edit/icons/full/ctool16/CreateConditionalUnit_helperUnits_SingleFilterUnit.gif
Binary files differ
diff --git a/org.eclipse.emf.refactor.comrel.edit/icons/full/ctool16/CreateConditionalUnit_if_ConditionCheck.gif b/org.eclipse.emf.refactor.comrel.edit/icons/full/ctool16/CreateConditionalUnit_if_ConditionCheck.gif
new file mode 100644
index 0000000..b52554e
--- /dev/null
+++ b/org.eclipse.emf.refactor.comrel.edit/icons/full/ctool16/CreateConditionalUnit_if_ConditionCheck.gif
Binary files differ
diff --git a/org.eclipse.emf.refactor.comrel.edit/icons/full/ctool16/CreateConditionalUnit_inputPorts_MultiInputPort.gif b/org.eclipse.emf.refactor.comrel.edit/icons/full/ctool16/CreateConditionalUnit_inputPorts_MultiInputPort.gif
new file mode 100644
index 0000000..dcdeb6e
--- /dev/null
+++ b/org.eclipse.emf.refactor.comrel.edit/icons/full/ctool16/CreateConditionalUnit_inputPorts_MultiInputPort.gif
Binary files differ
diff --git a/org.eclipse.emf.refactor.comrel.edit/icons/full/ctool16/CreateConditionalUnit_inputPorts_SingleInputPort.gif b/org.eclipse.emf.refactor.comrel.edit/icons/full/ctool16/CreateConditionalUnit_inputPorts_SingleInputPort.gif
new file mode 100644
index 0000000..938b383
--- /dev/null
+++ b/org.eclipse.emf.refactor.comrel.edit/icons/full/ctool16/CreateConditionalUnit_inputPorts_SingleInputPort.gif
Binary files differ
diff --git a/org.eclipse.emf.refactor.comrel.edit/icons/full/ctool16/CreateConditionalUnit_then_AtomicUnit.gif b/org.eclipse.emf.refactor.comrel.edit/icons/full/ctool16/CreateConditionalUnit_then_AtomicUnit.gif
new file mode 100644
index 0000000..459f97d
--- /dev/null
+++ b/org.eclipse.emf.refactor.comrel.edit/icons/full/ctool16/CreateConditionalUnit_then_AtomicUnit.gif
Binary files differ
diff --git a/org.eclipse.emf.refactor.comrel.edit/icons/full/ctool16/CreateConditionalUnit_then_CartesianQueuedUnit.gif b/org.eclipse.emf.refactor.comrel.edit/icons/full/ctool16/CreateConditionalUnit_then_CartesianQueuedUnit.gif
new file mode 100644
index 0000000..7550e1d
--- /dev/null
+++ b/org.eclipse.emf.refactor.comrel.edit/icons/full/ctool16/CreateConditionalUnit_then_CartesianQueuedUnit.gif
Binary files differ
diff --git a/org.eclipse.emf.refactor.comrel.edit/icons/full/ctool16/CreateConditionalUnit_then_ConditionalUnit.gif b/org.eclipse.emf.refactor.comrel.edit/icons/full/ctool16/CreateConditionalUnit_then_ConditionalUnit.gif
new file mode 100644
index 0000000..fd7e5e1
--- /dev/null
+++ b/org.eclipse.emf.refactor.comrel.edit/icons/full/ctool16/CreateConditionalUnit_then_ConditionalUnit.gif
Binary files differ
diff --git a/org.eclipse.emf.refactor.comrel.edit/icons/full/ctool16/CreateConditionalUnit_then_ParallelQueuedUnit.gif b/org.eclipse.emf.refactor.comrel.edit/icons/full/ctool16/CreateConditionalUnit_then_ParallelQueuedUnit.gif
new file mode 100644
index 0000000..b52554e
--- /dev/null
+++ b/org.eclipse.emf.refactor.comrel.edit/icons/full/ctool16/CreateConditionalUnit_then_ParallelQueuedUnit.gif
Binary files differ
diff --git a/org.eclipse.emf.refactor.comrel.edit/icons/full/ctool16/CreateConditionalUnit_then_SequentialUnit.gif b/org.eclipse.emf.refactor.comrel.edit/icons/full/ctool16/CreateConditionalUnit_then_SequentialUnit.gif
new file mode 100644
index 0000000..4388857
--- /dev/null
+++ b/org.eclipse.emf.refactor.comrel.edit/icons/full/ctool16/CreateConditionalUnit_then_SequentialUnit.gif
Binary files differ
diff --git a/org.eclipse.emf.refactor.comrel.edit/icons/full/ctool16/CreateConditionalUnit_then_SingleQueuedUnit.gif b/org.eclipse.emf.refactor.comrel.edit/icons/full/ctool16/CreateConditionalUnit_then_SingleQueuedUnit.gif
new file mode 100644
index 0000000..b73db01
--- /dev/null
+++ b/org.eclipse.emf.refactor.comrel.edit/icons/full/ctool16/CreateConditionalUnit_then_SingleQueuedUnit.gif
Binary files differ
diff --git a/org.eclipse.emf.refactor.comrel.edit/icons/full/ctool16/CreateFeatureHelper_inputPort_SingleInputPort.gif b/org.eclipse.emf.refactor.comrel.edit/icons/full/ctool16/CreateFeatureHelper_inputPort_SingleInputPort.gif
new file mode 100644
index 0000000..d51b362
--- /dev/null
+++ b/org.eclipse.emf.refactor.comrel.edit/icons/full/ctool16/CreateFeatureHelper_inputPort_SingleInputPort.gif
Binary files differ
diff --git a/org.eclipse.emf.refactor.comrel.edit/icons/full/ctool16/CreateFeatureHelper_secondaryInputPorts_MultiInputPort.gif b/org.eclipse.emf.refactor.comrel.edit/icons/full/ctool16/CreateFeatureHelper_secondaryInputPorts_MultiInputPort.gif
new file mode 100644
index 0000000..1cf5062
--- /dev/null
+++ b/org.eclipse.emf.refactor.comrel.edit/icons/full/ctool16/CreateFeatureHelper_secondaryInputPorts_MultiInputPort.gif
Binary files differ
diff --git a/org.eclipse.emf.refactor.comrel.edit/icons/full/ctool16/CreateFilterHelper_inputPort_MultiInputPort.gif b/org.eclipse.emf.refactor.comrel.edit/icons/full/ctool16/CreateFilterHelper_inputPort_MultiInputPort.gif
new file mode 100644
index 0000000..7e21005
--- /dev/null
+++ b/org.eclipse.emf.refactor.comrel.edit/icons/full/ctool16/CreateFilterHelper_inputPort_MultiInputPort.gif
Binary files differ
diff --git a/org.eclipse.emf.refactor.comrel.edit/icons/full/ctool16/CreateModelRefactoring_inputPorts_SingleInputPort.gif b/org.eclipse.emf.refactor.comrel.edit/icons/full/ctool16/CreateModelRefactoring_inputPorts_SingleInputPort.gif
new file mode 100644
index 0000000..776368e
--- /dev/null
+++ b/org.eclipse.emf.refactor.comrel.edit/icons/full/ctool16/CreateModelRefactoring_inputPorts_SingleInputPort.gif
Binary files differ
diff --git a/org.eclipse.emf.refactor.comrel.edit/icons/full/ctool16/CreateMultiFeatureHelper_outputPort_MultiOutputPort.gif b/org.eclipse.emf.refactor.comrel.edit/icons/full/ctool16/CreateMultiFeatureHelper_outputPort_MultiOutputPort.gif
new file mode 100644
index 0000000..9c04b67
--- /dev/null
+++ b/org.eclipse.emf.refactor.comrel.edit/icons/full/ctool16/CreateMultiFeatureHelper_outputPort_MultiOutputPort.gif
Binary files differ
diff --git a/org.eclipse.emf.refactor.comrel.edit/icons/full/ctool16/CreateMultiFeatureUnit_inputPort_SingleInputPort.gif b/org.eclipse.emf.refactor.comrel.edit/icons/full/ctool16/CreateMultiFeatureUnit_inputPort_SingleInputPort.gif
new file mode 100644
index 0000000..b3520a5
--- /dev/null
+++ b/org.eclipse.emf.refactor.comrel.edit/icons/full/ctool16/CreateMultiFeatureUnit_inputPort_SingleInputPort.gif
Binary files differ
diff --git a/org.eclipse.emf.refactor.comrel.edit/icons/full/ctool16/CreateMultiFeatureUnit_outputPort_MultiOutputPort.gif b/org.eclipse.emf.refactor.comrel.edit/icons/full/ctool16/CreateMultiFeatureUnit_outputPort_MultiOutputPort.gif
new file mode 100644
index 0000000..532796f
--- /dev/null
+++ b/org.eclipse.emf.refactor.comrel.edit/icons/full/ctool16/CreateMultiFeatureUnit_outputPort_MultiOutputPort.gif
Binary files differ
diff --git a/org.eclipse.emf.refactor.comrel.edit/icons/full/ctool16/CreateMultiFeatureUnit_secondaryInputPorts_MultiInputPort.gif b/org.eclipse.emf.refactor.comrel.edit/icons/full/ctool16/CreateMultiFeatureUnit_secondaryInputPorts_MultiInputPort.gif
new file mode 100644
index 0000000..7e21005
--- /dev/null
+++ b/org.eclipse.emf.refactor.comrel.edit/icons/full/ctool16/CreateMultiFeatureUnit_secondaryInputPorts_MultiInputPort.gif
Binary files differ
diff --git a/org.eclipse.emf.refactor.comrel.edit/icons/full/ctool16/CreateMultiFilterHelper_outputPort_MultiOutputPort.gif b/org.eclipse.emf.refactor.comrel.edit/icons/full/ctool16/CreateMultiFilterHelper_outputPort_MultiOutputPort.gif
new file mode 100644
index 0000000..82807fa
--- /dev/null
+++ b/org.eclipse.emf.refactor.comrel.edit/icons/full/ctool16/CreateMultiFilterHelper_outputPort_MultiOutputPort.gif
Binary files differ
diff --git a/org.eclipse.emf.refactor.comrel.edit/icons/full/ctool16/CreateMultiFilterUnit_inputPort_MultiInputPort.gif b/org.eclipse.emf.refactor.comrel.edit/icons/full/ctool16/CreateMultiFilterUnit_inputPort_MultiInputPort.gif
new file mode 100644
index 0000000..051fac7
--- /dev/null
+++ b/org.eclipse.emf.refactor.comrel.edit/icons/full/ctool16/CreateMultiFilterUnit_inputPort_MultiInputPort.gif
Binary files differ
diff --git a/org.eclipse.emf.refactor.comrel.edit/icons/full/ctool16/CreateMultiFilterUnit_outputPort_MultiOutputPort.gif b/org.eclipse.emf.refactor.comrel.edit/icons/full/ctool16/CreateMultiFilterUnit_outputPort_MultiOutputPort.gif
new file mode 100644
index 0000000..f5718d5
--- /dev/null
+++ b/org.eclipse.emf.refactor.comrel.edit/icons/full/ctool16/CreateMultiFilterUnit_outputPort_MultiOutputPort.gif
Binary files differ
diff --git a/org.eclipse.emf.refactor.comrel.edit/icons/full/ctool16/CreateParallelQueuedUnit_helperUnits_MultiFeatureUnit.gif b/org.eclipse.emf.refactor.comrel.edit/icons/full/ctool16/CreateParallelQueuedUnit_helperUnits_MultiFeatureUnit.gif
new file mode 100644
index 0000000..69db0cd
--- /dev/null
+++ b/org.eclipse.emf.refactor.comrel.edit/icons/full/ctool16/CreateParallelQueuedUnit_helperUnits_MultiFeatureUnit.gif
Binary files differ
diff --git a/org.eclipse.emf.refactor.comrel.edit/icons/full/ctool16/CreateParallelQueuedUnit_helperUnits_MultiFilterUnit.gif b/org.eclipse.emf.refactor.comrel.edit/icons/full/ctool16/CreateParallelQueuedUnit_helperUnits_MultiFilterUnit.gif
new file mode 100644
index 0000000..4fdd589
--- /dev/null
+++ b/org.eclipse.emf.refactor.comrel.edit/icons/full/ctool16/CreateParallelQueuedUnit_helperUnits_MultiFilterUnit.gif
Binary files differ
diff --git a/org.eclipse.emf.refactor.comrel.edit/icons/full/ctool16/CreateParallelQueuedUnit_helperUnits_SingleFeatureUnit.gif b/org.eclipse.emf.refactor.comrel.edit/icons/full/ctool16/CreateParallelQueuedUnit_helperUnits_SingleFeatureUnit.gif
new file mode 100644
index 0000000..2678931
--- /dev/null
+++ b/org.eclipse.emf.refactor.comrel.edit/icons/full/ctool16/CreateParallelQueuedUnit_helperUnits_SingleFeatureUnit.gif
Binary files differ
diff --git a/org.eclipse.emf.refactor.comrel.edit/icons/full/ctool16/CreateParallelQueuedUnit_helperUnits_SingleFilterUnit.gif b/org.eclipse.emf.refactor.comrel.edit/icons/full/ctool16/CreateParallelQueuedUnit_helperUnits_SingleFilterUnit.gif
new file mode 100644
index 0000000..1e01c87
--- /dev/null
+++ b/org.eclipse.emf.refactor.comrel.edit/icons/full/ctool16/CreateParallelQueuedUnit_helperUnits_SingleFilterUnit.gif
Binary files differ
diff --git a/org.eclipse.emf.refactor.comrel.edit/icons/full/ctool16/CreateParallelQueuedUnit_multiInputPorts_MultiInputPort.gif b/org.eclipse.emf.refactor.comrel.edit/icons/full/ctool16/CreateParallelQueuedUnit_multiInputPorts_MultiInputPort.gif
new file mode 100644
index 0000000..ba3abb5
--- /dev/null
+++ b/org.eclipse.emf.refactor.comrel.edit/icons/full/ctool16/CreateParallelQueuedUnit_multiInputPorts_MultiInputPort.gif
Binary files differ
diff --git a/org.eclipse.emf.refactor.comrel.edit/icons/full/ctool16/CreateParallelQueuedUnit_refactoringUnits_AtomicUnit.gif b/org.eclipse.emf.refactor.comrel.edit/icons/full/ctool16/CreateParallelQueuedUnit_refactoringUnits_AtomicUnit.gif
new file mode 100644
index 0000000..1e01c87
--- /dev/null
+++ b/org.eclipse.emf.refactor.comrel.edit/icons/full/ctool16/CreateParallelQueuedUnit_refactoringUnits_AtomicUnit.gif
Binary files differ
diff --git a/org.eclipse.emf.refactor.comrel.edit/icons/full/ctool16/CreateParallelQueuedUnit_refactoringUnits_CartesianQueuedUnit.gif b/org.eclipse.emf.refactor.comrel.edit/icons/full/ctool16/CreateParallelQueuedUnit_refactoringUnits_CartesianQueuedUnit.gif
new file mode 100644
index 0000000..4023703
--- /dev/null
+++ b/org.eclipse.emf.refactor.comrel.edit/icons/full/ctool16/CreateParallelQueuedUnit_refactoringUnits_CartesianQueuedUnit.gif
Binary files differ
diff --git a/org.eclipse.emf.refactor.comrel.edit/icons/full/ctool16/CreateParallelQueuedUnit_refactoringUnits_ConditionalUnit.gif b/org.eclipse.emf.refactor.comrel.edit/icons/full/ctool16/CreateParallelQueuedUnit_refactoringUnits_ConditionalUnit.gif
new file mode 100644
index 0000000..2678931
--- /dev/null
+++ b/org.eclipse.emf.refactor.comrel.edit/icons/full/ctool16/CreateParallelQueuedUnit_refactoringUnits_ConditionalUnit.gif
Binary files differ
diff --git a/org.eclipse.emf.refactor.comrel.edit/icons/full/ctool16/CreateParallelQueuedUnit_refactoringUnits_ParallelQueuedUnit.gif b/org.eclipse.emf.refactor.comrel.edit/icons/full/ctool16/CreateParallelQueuedUnit_refactoringUnits_ParallelQueuedUnit.gif
new file mode 100644
index 0000000..90b42b5
--- /dev/null
+++ b/org.eclipse.emf.refactor.comrel.edit/icons/full/ctool16/CreateParallelQueuedUnit_refactoringUnits_ParallelQueuedUnit.gif
Binary files differ
diff --git a/org.eclipse.emf.refactor.comrel.edit/icons/full/ctool16/CreateParallelQueuedUnit_refactoringUnits_SequentialUnit.gif b/org.eclipse.emf.refactor.comrel.edit/icons/full/ctool16/CreateParallelQueuedUnit_refactoringUnits_SequentialUnit.gif
new file mode 100644
index 0000000..50ac6da
--- /dev/null
+++ b/org.eclipse.emf.refactor.comrel.edit/icons/full/ctool16/CreateParallelQueuedUnit_refactoringUnits_SequentialUnit.gif
Binary files differ
diff --git a/org.eclipse.emf.refactor.comrel.edit/icons/full/ctool16/CreateParallelQueuedUnit_refactoringUnits_SingleQueuedUnit.gif b/org.eclipse.emf.refactor.comrel.edit/icons/full/ctool16/CreateParallelQueuedUnit_refactoringUnits_SingleQueuedUnit.gif
new file mode 100644
index 0000000..9043d2a
--- /dev/null
+++ b/org.eclipse.emf.refactor.comrel.edit/icons/full/ctool16/CreateParallelQueuedUnit_refactoringUnits_SingleQueuedUnit.gif
Binary files differ
diff --git a/org.eclipse.emf.refactor.comrel.edit/icons/full/ctool16/CreateParallelQueuedUnit_singleInputPorts_SingleInputPort.gif b/org.eclipse.emf.refactor.comrel.edit/icons/full/ctool16/CreateParallelQueuedUnit_singleInputPorts_SingleInputPort.gif
new file mode 100644
index 0000000..bb27d46
--- /dev/null
+++ b/org.eclipse.emf.refactor.comrel.edit/icons/full/ctool16/CreateParallelQueuedUnit_singleInputPorts_SingleInputPort.gif
Binary files differ
diff --git a/org.eclipse.emf.refactor.comrel.edit/icons/full/ctool16/CreateSequentialUnit_helperUnits_MultiFeatureUnit.gif b/org.eclipse.emf.refactor.comrel.edit/icons/full/ctool16/CreateSequentialUnit_helperUnits_MultiFeatureUnit.gif
new file mode 100644
index 0000000..49625df
--- /dev/null
+++ b/org.eclipse.emf.refactor.comrel.edit/icons/full/ctool16/CreateSequentialUnit_helperUnits_MultiFeatureUnit.gif
Binary files differ
diff --git a/org.eclipse.emf.refactor.comrel.edit/icons/full/ctool16/CreateSequentialUnit_helperUnits_MultiFilterUnit.gif b/org.eclipse.emf.refactor.comrel.edit/icons/full/ctool16/CreateSequentialUnit_helperUnits_MultiFilterUnit.gif
new file mode 100644
index 0000000..d1bf162
--- /dev/null
+++ b/org.eclipse.emf.refactor.comrel.edit/icons/full/ctool16/CreateSequentialUnit_helperUnits_MultiFilterUnit.gif
Binary files differ
diff --git a/org.eclipse.emf.refactor.comrel.edit/icons/full/ctool16/CreateSequentialUnit_helperUnits_SingleFeatureUnit.gif b/org.eclipse.emf.refactor.comrel.edit/icons/full/ctool16/CreateSequentialUnit_helperUnits_SingleFeatureUnit.gif
new file mode 100644
index 0000000..3d5488e
--- /dev/null
+++ b/org.eclipse.emf.refactor.comrel.edit/icons/full/ctool16/CreateSequentialUnit_helperUnits_SingleFeatureUnit.gif
Binary files differ
diff --git a/org.eclipse.emf.refactor.comrel.edit/icons/full/ctool16/CreateSequentialUnit_helperUnits_SingleFilterUnit.gif b/org.eclipse.emf.refactor.comrel.edit/icons/full/ctool16/CreateSequentialUnit_helperUnits_SingleFilterUnit.gif
new file mode 100644
index 0000000..016ae97
--- /dev/null
+++ b/org.eclipse.emf.refactor.comrel.edit/icons/full/ctool16/CreateSequentialUnit_helperUnits_SingleFilterUnit.gif
Binary files differ
diff --git a/org.eclipse.emf.refactor.comrel.edit/icons/full/ctool16/CreateSequentialUnit_inputPorts_MultiInputPort.gif b/org.eclipse.emf.refactor.comrel.edit/icons/full/ctool16/CreateSequentialUnit_inputPorts_MultiInputPort.gif
new file mode 100644
index 0000000..f5be155
--- /dev/null
+++ b/org.eclipse.emf.refactor.comrel.edit/icons/full/ctool16/CreateSequentialUnit_inputPorts_MultiInputPort.gif
Binary files differ
diff --git a/org.eclipse.emf.refactor.comrel.edit/icons/full/ctool16/CreateSequentialUnit_inputPorts_SingleInputPort.gif b/org.eclipse.emf.refactor.comrel.edit/icons/full/ctool16/CreateSequentialUnit_inputPorts_SingleInputPort.gif
new file mode 100644
index 0000000..78987b0
--- /dev/null
+++ b/org.eclipse.emf.refactor.comrel.edit/icons/full/ctool16/CreateSequentialUnit_inputPorts_SingleInputPort.gif
Binary files differ
diff --git a/org.eclipse.emf.refactor.comrel.edit/icons/full/ctool16/CreateSequentialUnit_refactoringUnits_AtomicUnit.gif b/org.eclipse.emf.refactor.comrel.edit/icons/full/ctool16/CreateSequentialUnit_refactoringUnits_AtomicUnit.gif
new file mode 100644
index 0000000..016ae97
--- /dev/null
+++ b/org.eclipse.emf.refactor.comrel.edit/icons/full/ctool16/CreateSequentialUnit_refactoringUnits_AtomicUnit.gif
Binary files differ
diff --git a/org.eclipse.emf.refactor.comrel.edit/icons/full/ctool16/CreateSequentialUnit_refactoringUnits_CartesianQueuedUnit.gif b/org.eclipse.emf.refactor.comrel.edit/icons/full/ctool16/CreateSequentialUnit_refactoringUnits_CartesianQueuedUnit.gif
new file mode 100644
index 0000000..db9d0e3
--- /dev/null
+++ b/org.eclipse.emf.refactor.comrel.edit/icons/full/ctool16/CreateSequentialUnit_refactoringUnits_CartesianQueuedUnit.gif
Binary files differ
diff --git a/org.eclipse.emf.refactor.comrel.edit/icons/full/ctool16/CreateSequentialUnit_refactoringUnits_ConditionalUnit.gif b/org.eclipse.emf.refactor.comrel.edit/icons/full/ctool16/CreateSequentialUnit_refactoringUnits_ConditionalUnit.gif
new file mode 100644
index 0000000..3d5488e
--- /dev/null
+++ b/org.eclipse.emf.refactor.comrel.edit/icons/full/ctool16/CreateSequentialUnit_refactoringUnits_ConditionalUnit.gif
Binary files differ
diff --git a/org.eclipse.emf.refactor.comrel.edit/icons/full/ctool16/CreateSequentialUnit_refactoringUnits_ParallelQueuedUnit.gif b/org.eclipse.emf.refactor.comrel.edit/icons/full/ctool16/CreateSequentialUnit_refactoringUnits_ParallelQueuedUnit.gif
new file mode 100644
index 0000000..cf5b650
--- /dev/null
+++ b/org.eclipse.emf.refactor.comrel.edit/icons/full/ctool16/CreateSequentialUnit_refactoringUnits_ParallelQueuedUnit.gif
Binary files differ
diff --git a/org.eclipse.emf.refactor.comrel.edit/icons/full/ctool16/CreateSequentialUnit_refactoringUnits_SequentialUnit.gif b/org.eclipse.emf.refactor.comrel.edit/icons/full/ctool16/CreateSequentialUnit_refactoringUnits_SequentialUnit.gif
new file mode 100644
index 0000000..0d619ab
--- /dev/null
+++ b/org.eclipse.emf.refactor.comrel.edit/icons/full/ctool16/CreateSequentialUnit_refactoringUnits_SequentialUnit.gif
Binary files differ
diff --git a/org.eclipse.emf.refactor.comrel.edit/icons/full/ctool16/CreateSequentialUnit_refactoringUnits_SingleQueuedUnit.gif b/org.eclipse.emf.refactor.comrel.edit/icons/full/ctool16/CreateSequentialUnit_refactoringUnits_SingleQueuedUnit.gif
new file mode 100644
index 0000000..c572b64
--- /dev/null
+++ b/org.eclipse.emf.refactor.comrel.edit/icons/full/ctool16/CreateSequentialUnit_refactoringUnits_SingleQueuedUnit.gif
Binary files differ
diff --git a/org.eclipse.emf.refactor.comrel.edit/icons/full/ctool16/CreateSingleFeatureHelper_outputPort_SingleOutputPort.gif b/org.eclipse.emf.refactor.comrel.edit/icons/full/ctool16/CreateSingleFeatureHelper_outputPort_SingleOutputPort.gif
new file mode 100644
index 0000000..23ab758
--- /dev/null
+++ b/org.eclipse.emf.refactor.comrel.edit/icons/full/ctool16/CreateSingleFeatureHelper_outputPort_SingleOutputPort.gif
Binary files differ
diff --git a/org.eclipse.emf.refactor.comrel.edit/icons/full/ctool16/CreateSingleFeatureUnit_inputPort_SingleInputPort.gif b/org.eclipse.emf.refactor.comrel.edit/icons/full/ctool16/CreateSingleFeatureUnit_inputPort_SingleInputPort.gif
new file mode 100644
index 0000000..938b383
--- /dev/null
+++ b/org.eclipse.emf.refactor.comrel.edit/icons/full/ctool16/CreateSingleFeatureUnit_inputPort_SingleInputPort.gif
Binary files differ
diff --git a/org.eclipse.emf.refactor.comrel.edit/icons/full/ctool16/CreateSingleFeatureUnit_outputPort_SingleOutputPort.gif b/org.eclipse.emf.refactor.comrel.edit/icons/full/ctool16/CreateSingleFeatureUnit_outputPort_SingleOutputPort.gif
new file mode 100644
index 0000000..153c395
--- /dev/null
+++ b/org.eclipse.emf.refactor.comrel.edit/icons/full/ctool16/CreateSingleFeatureUnit_outputPort_SingleOutputPort.gif
Binary files differ
diff --git a/org.eclipse.emf.refactor.comrel.edit/icons/full/ctool16/CreateSingleFeatureUnit_secondaryInputPorts_MultiInputPort.gif b/org.eclipse.emf.refactor.comrel.edit/icons/full/ctool16/CreateSingleFeatureUnit_secondaryInputPorts_MultiInputPort.gif
new file mode 100644
index 0000000..dcdeb6e
--- /dev/null
+++ b/org.eclipse.emf.refactor.comrel.edit/icons/full/ctool16/CreateSingleFeatureUnit_secondaryInputPorts_MultiInputPort.gif
Binary files differ
diff --git a/org.eclipse.emf.refactor.comrel.edit/icons/full/ctool16/CreateSingleFilterHelper_outputPort_SingleOutputPort.gif b/org.eclipse.emf.refactor.comrel.edit/icons/full/ctool16/CreateSingleFilterHelper_outputPort_SingleOutputPort.gif
new file mode 100644
index 0000000..86be5ba
--- /dev/null
+++ b/org.eclipse.emf.refactor.comrel.edit/icons/full/ctool16/CreateSingleFilterHelper_outputPort_SingleOutputPort.gif
Binary files differ
diff --git a/org.eclipse.emf.refactor.comrel.edit/icons/full/ctool16/CreateSingleFilterUnit_inputPort_MultiInputPort.gif b/org.eclipse.emf.refactor.comrel.edit/icons/full/ctool16/CreateSingleFilterUnit_inputPort_MultiInputPort.gif
new file mode 100644
index 0000000..a461190
--- /dev/null
+++ b/org.eclipse.emf.refactor.comrel.edit/icons/full/ctool16/CreateSingleFilterUnit_inputPort_MultiInputPort.gif
Binary files differ
diff --git a/org.eclipse.emf.refactor.comrel.edit/icons/full/ctool16/CreateSingleFilterUnit_outputPort_SingleOutputPort.gif b/org.eclipse.emf.refactor.comrel.edit/icons/full/ctool16/CreateSingleFilterUnit_outputPort_SingleOutputPort.gif
new file mode 100644
index 0000000..561bc08
--- /dev/null
+++ b/org.eclipse.emf.refactor.comrel.edit/icons/full/ctool16/CreateSingleFilterUnit_outputPort_SingleOutputPort.gif
Binary files differ
diff --git a/org.eclipse.emf.refactor.comrel.edit/icons/full/ctool16/CreateSingleQueuedUnit_helperUnits_MultiFeatureUnit.gif b/org.eclipse.emf.refactor.comrel.edit/icons/full/ctool16/CreateSingleQueuedUnit_helperUnits_MultiFeatureUnit.gif
new file mode 100644
index 0000000..cca9f46
--- /dev/null
+++ b/org.eclipse.emf.refactor.comrel.edit/icons/full/ctool16/CreateSingleQueuedUnit_helperUnits_MultiFeatureUnit.gif
Binary files differ
diff --git a/org.eclipse.emf.refactor.comrel.edit/icons/full/ctool16/CreateSingleQueuedUnit_helperUnits_MultiFilterUnit.gif b/org.eclipse.emf.refactor.comrel.edit/icons/full/ctool16/CreateSingleQueuedUnit_helperUnits_MultiFilterUnit.gif
new file mode 100644
index 0000000..59763f4
--- /dev/null
+++ b/org.eclipse.emf.refactor.comrel.edit/icons/full/ctool16/CreateSingleQueuedUnit_helperUnits_MultiFilterUnit.gif
Binary files differ
diff --git a/org.eclipse.emf.refactor.comrel.edit/icons/full/ctool16/CreateSingleQueuedUnit_helperUnits_SingleFeatureUnit.gif b/org.eclipse.emf.refactor.comrel.edit/icons/full/ctool16/CreateSingleQueuedUnit_helperUnits_SingleFeatureUnit.gif
new file mode 100644
index 0000000..9e275c6
--- /dev/null
+++ b/org.eclipse.emf.refactor.comrel.edit/icons/full/ctool16/CreateSingleQueuedUnit_helperUnits_SingleFeatureUnit.gif
Binary files differ
diff --git a/org.eclipse.emf.refactor.comrel.edit/icons/full/ctool16/CreateSingleQueuedUnit_helperUnits_SingleFilterUnit.gif b/org.eclipse.emf.refactor.comrel.edit/icons/full/ctool16/CreateSingleQueuedUnit_helperUnits_SingleFilterUnit.gif
new file mode 100644
index 0000000..9d46aad
--- /dev/null
+++ b/org.eclipse.emf.refactor.comrel.edit/icons/full/ctool16/CreateSingleQueuedUnit_helperUnits_SingleFilterUnit.gif
Binary files differ
diff --git a/org.eclipse.emf.refactor.comrel.edit/icons/full/ctool16/CreateSingleQueuedUnit_multiInputPort_MultiInputPort.gif b/org.eclipse.emf.refactor.comrel.edit/icons/full/ctool16/CreateSingleQueuedUnit_multiInputPort_MultiInputPort.gif
new file mode 100644
index 0000000..590468c
--- /dev/null
+++ b/org.eclipse.emf.refactor.comrel.edit/icons/full/ctool16/CreateSingleQueuedUnit_multiInputPort_MultiInputPort.gif
Binary files differ
diff --git a/org.eclipse.emf.refactor.comrel.edit/icons/full/ctool16/CreateSingleQueuedUnit_refactoringUnit_AtomicUnit.gif b/org.eclipse.emf.refactor.comrel.edit/icons/full/ctool16/CreateSingleQueuedUnit_refactoringUnit_AtomicUnit.gif
new file mode 100644
index 0000000..9d46aad
--- /dev/null
+++ b/org.eclipse.emf.refactor.comrel.edit/icons/full/ctool16/CreateSingleQueuedUnit_refactoringUnit_AtomicUnit.gif
Binary files differ
diff --git a/org.eclipse.emf.refactor.comrel.edit/icons/full/ctool16/CreateSingleQueuedUnit_refactoringUnit_CartesianQueuedUnit.gif b/org.eclipse.emf.refactor.comrel.edit/icons/full/ctool16/CreateSingleQueuedUnit_refactoringUnit_CartesianQueuedUnit.gif
new file mode 100644
index 0000000..5625a64
--- /dev/null
+++ b/org.eclipse.emf.refactor.comrel.edit/icons/full/ctool16/CreateSingleQueuedUnit_refactoringUnit_CartesianQueuedUnit.gif
Binary files differ
diff --git a/org.eclipse.emf.refactor.comrel.edit/icons/full/ctool16/CreateSingleQueuedUnit_refactoringUnit_ConditionalUnit.gif b/org.eclipse.emf.refactor.comrel.edit/icons/full/ctool16/CreateSingleQueuedUnit_refactoringUnit_ConditionalUnit.gif
new file mode 100644
index 0000000..9e275c6
--- /dev/null
+++ b/org.eclipse.emf.refactor.comrel.edit/icons/full/ctool16/CreateSingleQueuedUnit_refactoringUnit_ConditionalUnit.gif
Binary files differ
diff --git a/org.eclipse.emf.refactor.comrel.edit/icons/full/ctool16/CreateSingleQueuedUnit_refactoringUnit_ParallelQueuedUnit.gif b/org.eclipse.emf.refactor.comrel.edit/icons/full/ctool16/CreateSingleQueuedUnit_refactoringUnit_ParallelQueuedUnit.gif
new file mode 100644
index 0000000..7936184
--- /dev/null
+++ b/org.eclipse.emf.refactor.comrel.edit/icons/full/ctool16/CreateSingleQueuedUnit_refactoringUnit_ParallelQueuedUnit.gif
Binary files differ
diff --git a/org.eclipse.emf.refactor.comrel.edit/icons/full/ctool16/CreateSingleQueuedUnit_refactoringUnit_SequentialUnit.gif b/org.eclipse.emf.refactor.comrel.edit/icons/full/ctool16/CreateSingleQueuedUnit_refactoringUnit_SequentialUnit.gif
new file mode 100644
index 0000000..adc7111
--- /dev/null
+++ b/org.eclipse.emf.refactor.comrel.edit/icons/full/ctool16/CreateSingleQueuedUnit_refactoringUnit_SequentialUnit.gif
Binary files differ
diff --git a/org.eclipse.emf.refactor.comrel.edit/icons/full/ctool16/CreateSingleQueuedUnit_refactoringUnit_SingleQueuedUnit.gif b/org.eclipse.emf.refactor.comrel.edit/icons/full/ctool16/CreateSingleQueuedUnit_refactoringUnit_SingleQueuedUnit.gif
new file mode 100644
index 0000000..8966d11
--- /dev/null
+++ b/org.eclipse.emf.refactor.comrel.edit/icons/full/ctool16/CreateSingleQueuedUnit_refactoringUnit_SingleQueuedUnit.gif
Binary files differ
diff --git a/org.eclipse.emf.refactor.comrel.edit/icons/full/ctool16/CreateSingleQueuedUnit_singleInputPorts_SingleInputPort.gif b/org.eclipse.emf.refactor.comrel.edit/icons/full/ctool16/CreateSingleQueuedUnit_singleInputPorts_SingleInputPort.gif
new file mode 100644
index 0000000..8b2c545
--- /dev/null
+++ b/org.eclipse.emf.refactor.comrel.edit/icons/full/ctool16/CreateSingleQueuedUnit_singleInputPorts_SingleInputPort.gif
Binary files differ
diff --git a/org.eclipse.emf.refactor.comrel.edit/icons/full/obj16/AtomicUnit.gif b/org.eclipse.emf.refactor.comrel.edit/icons/full/obj16/AtomicUnit.gif
new file mode 100644
index 0000000..be22463
--- /dev/null
+++ b/org.eclipse.emf.refactor.comrel.edit/icons/full/obj16/AtomicUnit.gif
Binary files differ
diff --git a/org.eclipse.emf.refactor.comrel.edit/icons/full/obj16/CartesianQueuedUnit.gif b/org.eclipse.emf.refactor.comrel.edit/icons/full/obj16/CartesianQueuedUnit.gif
new file mode 100644
index 0000000..d3dc5a9
--- /dev/null
+++ b/org.eclipse.emf.refactor.comrel.edit/icons/full/obj16/CartesianQueuedUnit.gif
Binary files differ
diff --git a/org.eclipse.emf.refactor.comrel.edit/icons/full/obj16/CompositeRefactoring.gif b/org.eclipse.emf.refactor.comrel.edit/icons/full/obj16/CompositeRefactoring.gif
new file mode 100644
index 0000000..45731fe
--- /dev/null
+++ b/org.eclipse.emf.refactor.comrel.edit/icons/full/obj16/CompositeRefactoring.gif
Binary files differ
diff --git a/org.eclipse.emf.refactor.comrel.edit/icons/full/obj16/ConditionCheck.gif b/org.eclipse.emf.refactor.comrel.edit/icons/full/obj16/ConditionCheck.gif
new file mode 100644
index 0000000..7b7c428
--- /dev/null
+++ b/org.eclipse.emf.refactor.comrel.edit/icons/full/obj16/ConditionCheck.gif
Binary files differ
diff --git a/org.eclipse.emf.refactor.comrel.edit/icons/full/obj16/ConditionalUnit.gif b/org.eclipse.emf.refactor.comrel.edit/icons/full/obj16/ConditionalUnit.gif
new file mode 100644
index 0000000..7c2aaac
--- /dev/null
+++ b/org.eclipse.emf.refactor.comrel.edit/icons/full/obj16/ConditionalUnit.gif
Binary files differ
diff --git a/org.eclipse.emf.refactor.comrel.edit/icons/full/obj16/ModelRefactoring.gif b/org.eclipse.emf.refactor.comrel.edit/icons/full/obj16/ModelRefactoring.gif
new file mode 100644
index 0000000..1e5345f
--- /dev/null
+++ b/org.eclipse.emf.refactor.comrel.edit/icons/full/obj16/ModelRefactoring.gif
Binary files differ
diff --git a/org.eclipse.emf.refactor.comrel.edit/icons/full/obj16/MultiFeatureHelper.gif b/org.eclipse.emf.refactor.comrel.edit/icons/full/obj16/MultiFeatureHelper.gif
new file mode 100644
index 0000000..134551b
--- /dev/null
+++ b/org.eclipse.emf.refactor.comrel.edit/icons/full/obj16/MultiFeatureHelper.gif
Binary files differ
diff --git a/org.eclipse.emf.refactor.comrel.edit/icons/full/obj16/MultiFeatureUnit.gif b/org.eclipse.emf.refactor.comrel.edit/icons/full/obj16/MultiFeatureUnit.gif
new file mode 100644
index 0000000..10d2229
--- /dev/null
+++ b/org.eclipse.emf.refactor.comrel.edit/icons/full/obj16/MultiFeatureUnit.gif
Binary files differ
diff --git a/org.eclipse.emf.refactor.comrel.edit/icons/full/obj16/MultiFilterHelper.gif b/org.eclipse.emf.refactor.comrel.edit/icons/full/obj16/MultiFilterHelper.gif
new file mode 100644
index 0000000..c4a8af4
--- /dev/null
+++ b/org.eclipse.emf.refactor.comrel.edit/icons/full/obj16/MultiFilterHelper.gif
Binary files differ
diff --git a/org.eclipse.emf.refactor.comrel.edit/icons/full/obj16/MultiFilterUnit.gif b/org.eclipse.emf.refactor.comrel.edit/icons/full/obj16/MultiFilterUnit.gif
new file mode 100644
index 0000000..cdd3b76
--- /dev/null
+++ b/org.eclipse.emf.refactor.comrel.edit/icons/full/obj16/MultiFilterUnit.gif
Binary files differ
diff --git a/org.eclipse.emf.refactor.comrel.edit/icons/full/obj16/MultiInputPort.gif b/org.eclipse.emf.refactor.comrel.edit/icons/full/obj16/MultiInputPort.gif
new file mode 100644
index 0000000..cb1755a
--- /dev/null
+++ b/org.eclipse.emf.refactor.comrel.edit/icons/full/obj16/MultiInputPort.gif
Binary files differ
diff --git a/org.eclipse.emf.refactor.comrel.edit/icons/full/obj16/MultiOutputPort.gif b/org.eclipse.emf.refactor.comrel.edit/icons/full/obj16/MultiOutputPort.gif
new file mode 100644
index 0000000..c3370c7
--- /dev/null
+++ b/org.eclipse.emf.refactor.comrel.edit/icons/full/obj16/MultiOutputPort.gif
Binary files differ
diff --git a/org.eclipse.emf.refactor.comrel.edit/icons/full/obj16/MultiPortMapping.gif b/org.eclipse.emf.refactor.comrel.edit/icons/full/obj16/MultiPortMapping.gif
new file mode 100644
index 0000000..7b7c428
--- /dev/null
+++ b/org.eclipse.emf.refactor.comrel.edit/icons/full/obj16/MultiPortMapping.gif
Binary files differ
diff --git a/org.eclipse.emf.refactor.comrel.edit/icons/full/obj16/MultiSinglePortMapping.gif b/org.eclipse.emf.refactor.comrel.edit/icons/full/obj16/MultiSinglePortMapping.gif
new file mode 100644
index 0000000..ed87474
--- /dev/null
+++ b/org.eclipse.emf.refactor.comrel.edit/icons/full/obj16/MultiSinglePortMapping.gif
Binary files differ
diff --git a/org.eclipse.emf.refactor.comrel.edit/icons/full/obj16/ParallelQueuedUnit.gif b/org.eclipse.emf.refactor.comrel.edit/icons/full/obj16/ParallelQueuedUnit.gif
new file mode 100644
index 0000000..7b7c428
--- /dev/null
+++ b/org.eclipse.emf.refactor.comrel.edit/icons/full/obj16/ParallelQueuedUnit.gif
Binary files differ
diff --git a/org.eclipse.emf.refactor.comrel.edit/icons/full/obj16/SequentialUnit.gif b/org.eclipse.emf.refactor.comrel.edit/icons/full/obj16/SequentialUnit.gif
new file mode 100644
index 0000000..48e3cf2
--- /dev/null
+++ b/org.eclipse.emf.refactor.comrel.edit/icons/full/obj16/SequentialUnit.gif
Binary files differ
diff --git a/org.eclipse.emf.refactor.comrel.edit/icons/full/obj16/SingleFeatureHelper.gif b/org.eclipse.emf.refactor.comrel.edit/icons/full/obj16/SingleFeatureHelper.gif
new file mode 100644
index 0000000..10d2229
--- /dev/null
+++ b/org.eclipse.emf.refactor.comrel.edit/icons/full/obj16/SingleFeatureHelper.gif
Binary files differ
diff --git a/org.eclipse.emf.refactor.comrel.edit/icons/full/obj16/SingleFeatureUnit.gif b/org.eclipse.emf.refactor.comrel.edit/icons/full/obj16/SingleFeatureUnit.gif
new file mode 100644
index 0000000..7c2aaac
--- /dev/null
+++ b/org.eclipse.emf.refactor.comrel.edit/icons/full/obj16/SingleFeatureUnit.gif
Binary files differ
diff --git a/org.eclipse.emf.refactor.comrel.edit/icons/full/obj16/SingleFilterHelper.gif b/org.eclipse.emf.refactor.comrel.edit/icons/full/obj16/SingleFilterHelper.gif
new file mode 100644
index 0000000..cdd3b76
--- /dev/null
+++ b/org.eclipse.emf.refactor.comrel.edit/icons/full/obj16/SingleFilterHelper.gif
Binary files differ
diff --git a/org.eclipse.emf.refactor.comrel.edit/icons/full/obj16/SingleFilterUnit.gif b/org.eclipse.emf.refactor.comrel.edit/icons/full/obj16/SingleFilterUnit.gif
new file mode 100644
index 0000000..be22463
--- /dev/null
+++ b/org.eclipse.emf.refactor.comrel.edit/icons/full/obj16/SingleFilterUnit.gif
Binary files differ
diff --git a/org.eclipse.emf.refactor.comrel.edit/icons/full/obj16/SingleInputPort.gif b/org.eclipse.emf.refactor.comrel.edit/icons/full/obj16/SingleInputPort.gif
new file mode 100644
index 0000000..c4a8af4
--- /dev/null
+++ b/org.eclipse.emf.refactor.comrel.edit/icons/full/obj16/SingleInputPort.gif
Binary files differ
diff --git a/org.eclipse.emf.refactor.comrel.edit/icons/full/obj16/SingleOutputPort.gif b/org.eclipse.emf.refactor.comrel.edit/icons/full/obj16/SingleOutputPort.gif
new file mode 100644
index 0000000..33854e9
--- /dev/null
+++ b/org.eclipse.emf.refactor.comrel.edit/icons/full/obj16/SingleOutputPort.gif
Binary files differ
diff --git a/org.eclipse.emf.refactor.comrel.edit/icons/full/obj16/SinglePortMapping.gif b/org.eclipse.emf.refactor.comrel.edit/icons/full/obj16/SinglePortMapping.gif
new file mode 100644
index 0000000..45731fe
--- /dev/null
+++ b/org.eclipse.emf.refactor.comrel.edit/icons/full/obj16/SinglePortMapping.gif
Binary files differ
diff --git a/org.eclipse.emf.refactor.comrel.edit/icons/full/obj16/SingleQueuedUnit.gif b/org.eclipse.emf.refactor.comrel.edit/icons/full/obj16/SingleQueuedUnit.gif
new file mode 100644
index 0000000..c00aedf
--- /dev/null
+++ b/org.eclipse.emf.refactor.comrel.edit/icons/full/obj16/SingleQueuedUnit.gif
Binary files differ
diff --git a/org.eclipse.emf.refactor.comrel.edit/plugin.properties b/org.eclipse.emf.refactor.comrel.edit/plugin.properties
new file mode 100644
index 0000000..59c0a69
--- /dev/null
+++ b/org.eclipse.emf.refactor.comrel.edit/plugin.properties
@@ -0,0 +1,164 @@
+
+# <copyright>
+# </copyright>
+#
+# $Id$
+
+pluginName = Comrel Edit Support
+providerName = www.example.org
+
+_UI_CreateChild_text = {0}
+_UI_CreateChild_text2 = {1} {0}
+_UI_CreateChild_text3 = {1}
+_UI_CreateChild_tooltip = Create New {0} Under {1} Feature
+_UI_CreateChild_description = Create a new child of type {0} for the {1} feature of the selected {2}.
+_UI_CreateSibling_description = Create a new sibling of type {0} for the selected {2}, under the {1} feature of their parent.
+
+_UI_PropertyDescriptor_description = The {0} of the {1}
+
+_UI_CompositeRefactoring_type = Composite Refactoring
+_UI_NamedElement_type = Named Element
+_UI_DescribedElement_type = Described Element
+_UI_RefactoringUnit_type = Refactoring Unit
+_UI_ModelRefactoring_type = Model Refactoring
+_UI_AtomicUnit_type = Atomic Unit
+_UI_CompositeUnit_type = Composite Unit
+_UI_SequentialUnit_type = Sequential Unit
+_UI_ConditionCheck_type = Condition Check
+_UI_ConditionalUnit_type = Conditional Unit
+_UI_QueuedUnit_type = Queued Unit
+_UI_SingleQueuedUnit_type = Single Queued Unit
+_UI_TwicedQueuedUnit_type = Twiced Queued Unit
+_UI_CartesianQueuedUnit_type = Cartesian Queued Unit
+_UI_ParallelQueuedUnit_type = Parallel Queued Unit
+_UI_HelperUnit_type = Helper Unit
+_UI_FeatureUnit_type = Feature Unit
+_UI_SingleFeatureUnit_type = Single Feature Unit
+_UI_MultiFeatureUnit_type = Multi Feature Unit
+_UI_FilterUnit_type = Filter Unit
+_UI_SingleFilterUnit_type = Single Filter Unit
+_UI_MultiFilterUnit_type = Multi Filter Unit
+_UI_Helper_type = Helper
+_UI_FeatureHelper_type = Feature Helper
+_UI_SingleFeatureHelper_type = Single Feature Helper
+_UI_MultiFeatureHelper_type = Multi Feature Helper
+_UI_FilterHelper_type = Filter Helper
+_UI_SingleFilterHelper_type = Single Filter Helper
+_UI_MultiFilterHelper_type = Multi Filter Helper
+_UI_Port_type = Port
+_UI_SinglePort_type = Single Port
+_UI_MultiPort_type = Multi Port
+_UI_InputPort_type = Input Port
+_UI_OutputPort_type = Output Port
+_UI_SingleInputPort_type = Single Input Port
+_UI_MultiInputPort_type = Multi Input Port
+_UI_SingleOutputPort_type = Single Output Port
+_UI_MultiOutputPort_type = Multi Output Port
+_UI_PortMapping_type = Port Mapping
+_UI_SinglePortMapping_type = Single Port Mapping
+_UI_MultiPortMapping_type = Multi Port Mapping
+_UI_MultiSinglePortMapping_type = Multi Single Port Mapping
+_UI_Unknown_type = Object
+
+_UI_Unknown_datatype= Value
+
+_UI_CompositeRefactoring_mainRefactoringUnit_feature = Main Refactoring Unit
+_UI_CompositeRefactoring_portMappings_feature = Port Mappings
+_UI_CompositeRefactoring_modelRefactorings_feature = Model Refactorings
+_UI_CompositeRefactoring_helper_feature = Helper
+_UI_CompositeRefactoring_mappingVisualization_feature = Mapping Visualization
+_UI_CompositeRefactoring_customInitialCondition_feature = Custom Initial Condition
+_UI_CompositeRefactoring_customFinalCondition_feature = Custom Final Condition
+_UI_NamedElement_name_feature = Name
+_UI_DescribedElement_description_feature = Description
+_UI_RefactoringUnit_seqExecutionOrder_feature = Seq Execution Order
+_UI_ModelRefactoring_refId_feature = Ref Id
+_UI_ModelRefactoring_label_feature = Label
+_UI_ModelRefactoring_namespaceUri_feature = Namespace Uri
+_UI_ModelRefactoring_inputPorts_feature = Input Ports
+_UI_AtomicUnit_inputPorts_feature = Input Ports
+_UI_AtomicUnit_unitId_feature = Unit Id
+_UI_AtomicUnit_label_feature = Label
+_UI_AtomicUnit_namespaceUri_feature = Namespace Uri
+_UI_AtomicUnit_type_feature = Type
+_UI_AtomicUnit_modelRefactoring_feature = Model Refactoring
+_UI_AtomicUnit_checkInitialConditionFlag_feature = Check Initial Condition Flag
+_UI_AtomicUnit_checkFinalConditionFlag_feature = Check Final Condition Flag
+_UI_SequentialUnit_helperUnits_feature = Helper Units
+_UI_SequentialUnit_refactoringUnits_feature = Refactoring Units
+_UI_SequentialUnit_inputPorts_feature = Input Ports
+_UI_SequentialUnit_strict_feature = Strict
+_UI_SequentialUnit_type_feature = Type
+_UI_SequentialUnit_lblStrict_feature = Lbl Strict
+_UI_ConditionCheck_type_feature = Type
+_UI_ConditionCheck_spec_feature = Spec
+_UI_ConditionalUnit_if_feature = If
+_UI_ConditionalUnit_helperUnits_feature = Helper Units
+_UI_ConditionalUnit_then_feature = Then
+_UI_ConditionalUnit_else_feature = Else
+_UI_ConditionalUnit_inputPorts_feature = Input Ports
+_UI_ConditionalUnit_type_feature = Type
+_UI_QueuedUnit_strict_feature = Strict
+_UI_SingleQueuedUnit_helperUnits_feature = Helper Units
+_UI_SingleQueuedUnit_refactoringUnit_feature = Refactoring Unit
+_UI_SingleQueuedUnit_singleInputPorts_feature = Single Input Ports
+_UI_SingleQueuedUnit_multiInputPort_feature = Multi Input Port
+_UI_SingleQueuedUnit_type_feature = Type
+_UI_SingleQueuedUnit_lblStrict_feature = Lbl Strict
+_UI_CartesianQueuedUnit_helperUnits_feature = Helper Units
+_UI_CartesianQueuedUnit_refactoringUnit_feature = Refactoring Unit
+_UI_CartesianQueuedUnit_singleInputPorts_feature = Single Input Ports
+_UI_CartesianQueuedUnit_multiInputPorts_feature = Multi Input Ports
+_UI_CartesianQueuedUnit_type_feature = Type
+_UI_CartesianQueuedUnit_lblStrict_feature = Lbl Strict
+_UI_ParallelQueuedUnit_helperUnits_feature = Helper Units
+_UI_ParallelQueuedUnit_refactoringUnits_feature = Refactoring Units
+_UI_ParallelQueuedUnit_singleInputPorts_feature = Single Input Ports
+_UI_ParallelQueuedUnit_multiInputPorts_feature = Multi Input Ports
+_UI_ParallelQueuedUnit_type_feature = Type
+_UI_ParallelQueuedUnit_lblStrict_feature = Lbl Strict
+_UI_HelperUnit_helperUnitId_feature = Helper Unit Id
+_UI_HelperUnit_namespaceUri_feature = Namespace Uri
+_UI_SingleFeatureUnit_inputPort_feature = Input Port
+_UI_SingleFeatureUnit_secondaryInputPorts_feature = Secondary Input Ports
+_UI_SingleFeatureUnit_outputPort_feature = Output Port
+_UI_SingleFeatureUnit_singleFeatureHelper_feature = Single Feature Helper
+_UI_SingleFeatureUnit_type_feature = Type
+_UI_MultiFeatureUnit_inputPort_feature = Input Port
+_UI_MultiFeatureUnit_secondaryInputPorts_feature = Secondary Input Ports
+_UI_MultiFeatureUnit_outputPort_feature = Output Port
+_UI_MultiFeatureUnit_multiFeatureHelper_feature = Multi Feature Helper
+_UI_MultiFeatureUnit_type_feature = Type
+_UI_SingleFilterUnit_inputPort_feature = Input Port
+_UI_SingleFilterUnit_outputPort_feature = Output Port
+_UI_SingleFilterUnit_singleFilterHelper_feature = Single Filter Helper
+_UI_SingleFilterUnit_type_feature = Type
+_UI_MultiFilterUnit_inputPort_feature = Input Port
+_UI_MultiFilterUnit_outputPort_feature = Output Port
+_UI_MultiFilterUnit_multiFilterHelper_feature = Multi Filter Helper
+_UI_MultiFilterUnit_type_feature = Type
+_UI_Helper_helperId_feature = Helper Id
+_UI_Helper_namespaceUri_feature = Namespace Uri
+_UI_FeatureHelper_inputPort_feature = Input Port
+_UI_FeatureHelper_secondaryInputPorts_feature = Secondary Input Ports
+_UI_SingleFeatureHelper_outputPort_feature = Output Port
+_UI_MultiFeatureHelper_outputPort_feature = Output Port
+_UI_FilterHelper_inputPort_feature = Input Port
+_UI_SingleFilterHelper_outputPort_feature = Output Port
+_UI_MultiFilterHelper_outputPort_feature = Output Port
+_UI_Port_type_feature = Type
+_UI_SinglePort_value_feature = Value
+_UI_MultiPort_value_feature = Value
+_UI_SinglePortMapping_source_feature = Source
+_UI_SinglePortMapping_target_feature = Target
+_UI_MultiPortMapping_source_feature = Source
+_UI_MultiPortMapping_target_feature = Target
+_UI_MultiSinglePortMapping_source_feature = Source
+_UI_MultiSinglePortMapping_target_feature = Target
+_UI_Unknown_feature = Unspecified
+
+_UI_MappingVisualization_arrows_literal = arrows
+_UI_MappingVisualization_coloredPorts_literal = coloredPorts
+_UI_MappingVisualization_indices_literal = indices
+_UI_MappingVisualization_arrowsAndColoredPorts_literal = arrowsAndColoredPorts
+_UI_MappingVisualization_arrowsAndIndices_literal = arrowsAndIndices
diff --git a/org.eclipse.emf.refactor.comrel.edit/plugin.xml b/org.eclipse.emf.refactor.comrel.edit/plugin.xml
new file mode 100644
index 0000000..6813dc1
--- /dev/null
+++ b/org.eclipse.emf.refactor.comrel.edit/plugin.xml
@@ -0,0 +1,25 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<?eclipse version="3.0"?>
+
+<!--
+ <copyright>
+ </copyright>
+
+ $Id$
+-->
+
+<plugin>
+
+ <extension point="org.eclipse.emf.edit.itemProviderAdapterFactories">
+ <factory
+ uri="http://comrel/0.1"
+ class="comrel.provider.ComrelItemProviderAdapterFactory"
+ supportedTypes=
+ "org.eclipse.emf.edit.provider.IEditingDomainItemProvider
+ org.eclipse.emf.edit.provider.IStructuredItemContentProvider
+ org.eclipse.emf.edit.provider.ITreeItemContentProvider
+ org.eclipse.emf.edit.provider.IItemLabelProvider
+ org.eclipse.emf.edit.provider.IItemPropertySource"/>
+ </extension>
+
+</plugin>
diff --git a/org.eclipse.emf.refactor.comrel.edit/src/comrel/provider/AtomicUnitItemProvider.java b/org.eclipse.emf.refactor.comrel.edit/src/comrel/provider/AtomicUnitItemProvider.java
new file mode 100644
index 0000000..68f142d
--- /dev/null
+++ b/org.eclipse.emf.refactor.comrel.edit/src/comrel/provider/AtomicUnitItemProvider.java
@@ -0,0 +1,331 @@
+/**
+ * <copyright>
+ * </copyright>
+ *
+ * $Id$
+ */
+package comrel.provider;
+
+
+import comrel.AtomicUnit;
+import comrel.ComrelFactory;
+import comrel.ComrelPackage;
+
+import java.util.Collection;
+import java.util.List;
+
+import org.eclipse.emf.common.notify.AdapterFactory;
+import org.eclipse.emf.common.notify.Notification;
+
+import org.eclipse.emf.ecore.EStructuralFeature;
+
+import org.eclipse.emf.edit.provider.ComposeableAdapterFactory;
+import org.eclipse.emf.edit.provider.IEditingDomainItemProvider;
+import org.eclipse.emf.edit.provider.IItemLabelProvider;
+import org.eclipse.emf.edit.provider.IItemPropertyDescriptor;
+import org.eclipse.emf.edit.provider.IItemPropertySource;
+import org.eclipse.emf.edit.provider.IStructuredItemContentProvider;
+import org.eclipse.emf.edit.provider.ITreeItemContentProvider;
+import org.eclipse.emf.edit.provider.ItemPropertyDescriptor;
+import org.eclipse.emf.edit.provider.ViewerNotification;
+
+/**
+ * This is the item provider adapter for a {@link comrel.AtomicUnit} object.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+public class AtomicUnitItemProvider
+ extends RefactoringUnitItemProvider
+ implements
+ IEditingDomainItemProvider,
+ IStructuredItemContentProvider,
+ ITreeItemContentProvider,
+ IItemLabelProvider,
+ IItemPropertySource {
+ /**
+ * This constructs an instance from a factory and a notifier.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public AtomicUnitItemProvider(AdapterFactory adapterFactory) {
+ super(adapterFactory);
+ }
+
+ /**
+ * This returns the property descriptors for the adapted class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public List<IItemPropertyDescriptor> getPropertyDescriptors(Object object) {
+ if (itemPropertyDescriptors == null) {
+ super.getPropertyDescriptors(object);
+
+ addUnitIdPropertyDescriptor(object);
+ addLabelPropertyDescriptor(object);
+ addNamespaceUriPropertyDescriptor(object);
+ addTypePropertyDescriptor(object);
+ addModelRefactoringPropertyDescriptor(object);
+ addCheckInitialConditionFlagPropertyDescriptor(object);
+ addCheckFinalConditionFlagPropertyDescriptor(object);
+ }
+ return itemPropertyDescriptors;
+ }
+
+ /**
+ * This adds a property descriptor for the Unit Id feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected void addUnitIdPropertyDescriptor(Object object) {
+ itemPropertyDescriptors.add
+ (createItemPropertyDescriptor
+ (((ComposeableAdapterFactory)adapterFactory).getRootAdapterFactory(),
+ getResourceLocator(),
+ getString("_UI_AtomicUnit_unitId_feature"),
+ getString("_UI_PropertyDescriptor_description", "_UI_AtomicUnit_unitId_feature", "_UI_AtomicUnit_type"),
+ ComrelPackage.Literals.ATOMIC_UNIT__UNIT_ID,
+ true,
+ false,
+ false,
+ ItemPropertyDescriptor.GENERIC_VALUE_IMAGE,
+ null,
+ null));
+ }
+
+ /**
+ * This adds a property descriptor for the Label feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected void addLabelPropertyDescriptor(Object object) {
+ itemPropertyDescriptors.add
+ (createItemPropertyDescriptor
+ (((ComposeableAdapterFactory)adapterFactory).getRootAdapterFactory(),
+ getResourceLocator(),
+ getString("_UI_AtomicUnit_label_feature"),
+ getString("_UI_PropertyDescriptor_description", "_UI_AtomicUnit_label_feature", "_UI_AtomicUnit_type"),
+ ComrelPackage.Literals.ATOMIC_UNIT__LABEL,
+ true,
+ false,
+ false,
+ ItemPropertyDescriptor.GENERIC_VALUE_IMAGE,
+ null,
+ null));
+ }
+
+ /**
+ * This adds a property descriptor for the Namespace Uri feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected void addNamespaceUriPropertyDescriptor(Object object) {
+ itemPropertyDescriptors.add
+ (createItemPropertyDescriptor
+ (((ComposeableAdapterFactory)adapterFactory).getRootAdapterFactory(),
+ getResourceLocator(),
+ getString("_UI_AtomicUnit_namespaceUri_feature"),
+ getString("_UI_PropertyDescriptor_description", "_UI_AtomicUnit_namespaceUri_feature", "_UI_AtomicUnit_type"),
+ ComrelPackage.Literals.ATOMIC_UNIT__NAMESPACE_URI,
+ true,
+ false,
+ false,
+ ItemPropertyDescriptor.GENERIC_VALUE_IMAGE,
+ null,
+ null));
+ }
+
+ /**
+ * This adds a property descriptor for the Type feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected void addTypePropertyDescriptor(Object object) {
+ itemPropertyDescriptors.add
+ (createItemPropertyDescriptor
+ (((ComposeableAdapterFactory)adapterFactory).getRootAdapterFactory(),
+ getResourceLocator(),
+ getString("_UI_AtomicUnit_type_feature"),
+ getString("_UI_PropertyDescriptor_description", "_UI_AtomicUnit_type_feature", "_UI_AtomicUnit_type"),
+ ComrelPackage.Literals.ATOMIC_UNIT__TYPE,
+ false,
+ false,
+ false,
+ ItemPropertyDescriptor.GENERIC_VALUE_IMAGE,
+ null,
+ null));
+ }
+
+ /**
+ * This adds a property descriptor for the Model Refactoring feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected void addModelRefactoringPropertyDescriptor(Object object) {
+ itemPropertyDescriptors.add
+ (createItemPropertyDescriptor
+ (((ComposeableAdapterFactory)adapterFactory).getRootAdapterFactory(),
+ getResourceLocator(),
+ getString("_UI_AtomicUnit_modelRefactoring_feature"),
+ getString("_UI_PropertyDescriptor_description", "_UI_AtomicUnit_modelRefactoring_feature", "_UI_AtomicUnit_type"),
+ ComrelPackage.Literals.ATOMIC_UNIT__MODEL_REFACTORING,
+ true,
+ false,
+ true,
+ null,
+ null,
+ null));
+ }
+
+ /**
+ * This adds a property descriptor for the Check Initial Condition Flag feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected void addCheckInitialConditionFlagPropertyDescriptor(Object object) {
+ itemPropertyDescriptors.add
+ (createItemPropertyDescriptor
+ (((ComposeableAdapterFactory)adapterFactory).getRootAdapterFactory(),
+ getResourceLocator(),
+ getString("_UI_AtomicUnit_checkInitialConditionFlag_feature"),
+ getString("_UI_PropertyDescriptor_description", "_UI_AtomicUnit_checkInitialConditionFlag_feature", "_UI_AtomicUnit_type"),
+ ComrelPackage.Literals.ATOMIC_UNIT__CHECK_INITIAL_CONDITION_FLAG,
+ true,
+ false,
+ false,
+ ItemPropertyDescriptor.BOOLEAN_VALUE_IMAGE,
+ null,
+ null));
+ }
+
+ /**
+ * This adds a property descriptor for the Check Final Condition Flag feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected void addCheckFinalConditionFlagPropertyDescriptor(Object object) {
+ itemPropertyDescriptors.add
+ (createItemPropertyDescriptor
+ (((ComposeableAdapterFactory)adapterFactory).getRootAdapterFactory(),
+ getResourceLocator(),
+ getString("_UI_AtomicUnit_checkFinalConditionFlag_feature"),
+ getString("_UI_PropertyDescriptor_description", "_UI_AtomicUnit_checkFinalConditionFlag_feature", "_UI_AtomicUnit_type"),
+ ComrelPackage.Literals.ATOMIC_UNIT__CHECK_FINAL_CONDITION_FLAG,
+ true,
+ false,
+ false,
+ ItemPropertyDescriptor.BOOLEAN_VALUE_IMAGE,
+ null,
+ null));
+ }
+
+ /**
+ * This specifies how to implement {@link #getChildren} and is used to deduce an appropriate feature for an
+ * {@link org.eclipse.emf.edit.command.AddCommand}, {@link org.eclipse.emf.edit.command.RemoveCommand} or
+ * {@link org.eclipse.emf.edit.command.MoveCommand} in {@link #createCommand}.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public Collection<? extends EStructuralFeature> getChildrenFeatures(Object object) {
+ if (childrenFeatures == null) {
+ super.getChildrenFeatures(object);
+ childrenFeatures.add(ComrelPackage.Literals.ATOMIC_UNIT__INPUT_PORTS);
+ }
+ return childrenFeatures;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ protected EStructuralFeature getChildFeature(Object object, Object child) {
+ // Check the type of the specified child object and return the proper feature to use for
+ // adding (see {@link AddCommand}) it as a child.
+
+ return super.getChildFeature(object, child);
+ }
+
+ /**
+ * This returns AtomicUnit.gif.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public Object getImage(Object object) {
+ return overlayImage(object, getResourceLocator().getImage("full/obj16/AtomicUnit"));
+ }
+
+ /**
+ * This returns the label text for the adapted class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public String getText(Object object) {
+ String label = ((AtomicUnit)object).getName();
+ return label == null || label.length() == 0 ?
+ getString("_UI_AtomicUnit_type") :
+ getString("_UI_AtomicUnit_type") + " " + label;
+ }
+
+ /**
+ * This handles model notifications by calling {@link #updateChildren} to update any cached
+ * children and by creating a viewer notification, which it passes to {@link #fireNotifyChanged}.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public void notifyChanged(Notification notification) {
+ updateChildren(notification);
+
+ switch (notification.getFeatureID(AtomicUnit.class)) {
+ case ComrelPackage.ATOMIC_UNIT__UNIT_ID:
+ case ComrelPackage.ATOMIC_UNIT__LABEL:
+ case ComrelPackage.ATOMIC_UNIT__NAMESPACE_URI:
+ case ComrelPackage.ATOMIC_UNIT__TYPE:
+ case ComrelPackage.ATOMIC_UNIT__CHECK_INITIAL_CONDITION_FLAG:
+ case ComrelPackage.ATOMIC_UNIT__CHECK_FINAL_CONDITION_FLAG:
+ fireNotifyChanged(new ViewerNotification(notification, notification.getNotifier(), false, true));
+ return;
+ case ComrelPackage.ATOMIC_UNIT__INPUT_PORTS:
+ fireNotifyChanged(new ViewerNotification(notification, notification.getNotifier(), true, false));
+ return;
+ }
+ super.notifyChanged(notification);
+ }
+
+ /**
+ * This adds {@link org.eclipse.emf.edit.command.CommandParameter}s describing the children
+ * that can be created under this object.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ protected void collectNewChildDescriptors(Collection<Object> newChildDescriptors, Object object) {
+ super.collectNewChildDescriptors(newChildDescriptors, object);
+
+ newChildDescriptors.add
+ (createChildParameter
+ (ComrelPackage.Literals.ATOMIC_UNIT__INPUT_PORTS,
+ ComrelFactory.eINSTANCE.createSingleInputPort()));
+ }
+
+}
diff --git a/org.eclipse.emf.refactor.comrel.edit/src/comrel/provider/CartesianQueuedUnitItemProvider.java b/org.eclipse.emf.refactor.comrel.edit/src/comrel/provider/CartesianQueuedUnitItemProvider.java
new file mode 100644
index 0000000..c77ef2e
--- /dev/null
+++ b/org.eclipse.emf.refactor.comrel.edit/src/comrel/provider/CartesianQueuedUnitItemProvider.java
@@ -0,0 +1,273 @@
+/**
+ * <copyright>
+ * </copyright>
+ *
+ * $Id$
+ */
+package comrel.provider;
+
+
+import comrel.CartesianQueuedUnit;
+import comrel.ComrelFactory;
+import comrel.ComrelPackage;
+
+import java.util.Collection;
+import java.util.List;
+
+import org.eclipse.emf.common.notify.AdapterFactory;
+import org.eclipse.emf.common.notify.Notification;
+
+import org.eclipse.emf.ecore.EStructuralFeature;
+
+import org.eclipse.emf.edit.provider.ComposeableAdapterFactory;
+import org.eclipse.emf.edit.provider.IEditingDomainItemProvider;
+import org.eclipse.emf.edit.provider.IItemLabelProvider;
+import org.eclipse.emf.edit.provider.IItemPropertyDescriptor;
+import org.eclipse.emf.edit.provider.IItemPropertySource;
+import org.eclipse.emf.edit.provider.IStructuredItemContentProvider;
+import org.eclipse.emf.edit.provider.ITreeItemContentProvider;
+import org.eclipse.emf.edit.provider.ItemPropertyDescriptor;
+import org.eclipse.emf.edit.provider.ViewerNotification;
+
+/**
+ * This is the item provider adapter for a {@link comrel.CartesianQueuedUnit} object.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+public class CartesianQueuedUnitItemProvider
+ extends TwicedQueuedUnitItemProvider
+ implements
+ IEditingDomainItemProvider,
+ IStructuredItemContentProvider,
+ ITreeItemContentProvider,
+ IItemLabelProvider,
+ IItemPropertySource {
+ /**
+ * This constructs an instance from a factory and a notifier.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public CartesianQueuedUnitItemProvider(AdapterFactory adapterFactory) {
+ super(adapterFactory);
+ }
+
+ /**
+ * This returns the property descriptors for the adapted class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public List<IItemPropertyDescriptor> getPropertyDescriptors(Object object) {
+ if (itemPropertyDescriptors == null) {
+ super.getPropertyDescriptors(object);
+
+ addTypePropertyDescriptor(object);
+ addLblStrictPropertyDescriptor(object);
+ }
+ return itemPropertyDescriptors;
+ }
+
+ /**
+ * This adds a property descriptor for the Type feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected void addTypePropertyDescriptor(Object object) {
+ itemPropertyDescriptors.add
+ (createItemPropertyDescriptor
+ (((ComposeableAdapterFactory)adapterFactory).getRootAdapterFactory(),
+ getResourceLocator(),
+ getString("_UI_CartesianQueuedUnit_type_feature"),
+ getString("_UI_PropertyDescriptor_description", "_UI_CartesianQueuedUnit_type_feature", "_UI_CartesianQueuedUnit_type"),
+ ComrelPackage.Literals.CARTESIAN_QUEUED_UNIT__TYPE,
+ false,
+ false,
+ false,
+ ItemPropertyDescriptor.GENERIC_VALUE_IMAGE,
+ null,
+ null));
+ }
+
+ /**
+ * This adds a property descriptor for the Lbl Strict feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected void addLblStrictPropertyDescriptor(Object object) {
+ itemPropertyDescriptors.add
+ (createItemPropertyDescriptor
+ (((ComposeableAdapterFactory)adapterFactory).getRootAdapterFactory(),
+ getResourceLocator(),
+ getString("_UI_CartesianQueuedUnit_lblStrict_feature"),
+ getString("_UI_PropertyDescriptor_description", "_UI_CartesianQueuedUnit_lblStrict_feature", "_UI_CartesianQueuedUnit_type"),
+ ComrelPackage.Literals.CARTESIAN_QUEUED_UNIT__LBL_STRICT,
+ true,
+ false,
+ false,
+ ItemPropertyDescriptor.GENERIC_VALUE_IMAGE,
+ null,
+ null));
+ }
+
+ /**
+ * This specifies how to implement {@link #getChildren} and is used to deduce an appropriate feature for an
+ * {@link org.eclipse.emf.edit.command.AddCommand}, {@link org.eclipse.emf.edit.command.RemoveCommand} or
+ * {@link org.eclipse.emf.edit.command.MoveCommand} in {@link #createCommand}.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public Collection<? extends EStructuralFeature> getChildrenFeatures(Object object) {
+ if (childrenFeatures == null) {
+ super.getChildrenFeatures(object);
+ childrenFeatures.add(ComrelPackage.Literals.CARTESIAN_QUEUED_UNIT__HELPER_UNITS);
+ childrenFeatures.add(ComrelPackage.Literals.CARTESIAN_QUEUED_UNIT__REFACTORING_UNIT);
+ childrenFeatures.add(ComrelPackage.Literals.CARTESIAN_QUEUED_UNIT__SINGLE_INPUT_PORTS);
+ childrenFeatures.add(ComrelPackage.Literals.CARTESIAN_QUEUED_UNIT__MULTI_INPUT_PORTS);
+ }
+ return childrenFeatures;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ protected EStructuralFeature getChildFeature(Object object, Object child) {
+ // Check the type of the specified child object and return the proper feature to use for
+ // adding (see {@link AddCommand}) it as a child.
+
+ return super.getChildFeature(object, child);
+ }
+
+ /**
+ * This returns CartesianQueuedUnit.gif.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public Object getImage(Object object) {
+ return overlayImage(object, getResourceLocator().getImage("full/obj16/CartesianQueuedUnit"));
+ }
+
+ /**
+ * This returns the label text for the adapted class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public String getText(Object object) {
+ String label = ((CartesianQueuedUnit)object).getName();
+ return label == null || label.length() == 0 ?
+ getString("_UI_CartesianQueuedUnit_type") :
+ getString("_UI_CartesianQueuedUnit_type") + " " + label;
+ }
+
+ /**
+ * This handles model notifications by calling {@link #updateChildren} to update any cached
+ * children and by creating a viewer notification, which it passes to {@link #fireNotifyChanged}.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public void notifyChanged(Notification notification) {
+ updateChildren(notification);
+
+ switch (notification.getFeatureID(CartesianQueuedUnit.class)) {
+ case ComrelPackage.CARTESIAN_QUEUED_UNIT__TYPE:
+ case ComrelPackage.CARTESIAN_QUEUED_UNIT__LBL_STRICT:
+ fireNotifyChanged(new ViewerNotification(notification, notification.getNotifier(), false, true));
+ return;
+ case ComrelPackage.CARTESIAN_QUEUED_UNIT__HELPER_UNITS:
+ case ComrelPackage.CARTESIAN_QUEUED_UNIT__REFACTORING_UNIT:
+ case ComrelPackage.CARTESIAN_QUEUED_UNIT__SINGLE_INPUT_PORTS:
+ case ComrelPackage.CARTESIAN_QUEUED_UNIT__MULTI_INPUT_PORTS:
+ fireNotifyChanged(new ViewerNotification(notification, notification.getNotifier(), true, false));
+ return;
+ }
+ super.notifyChanged(notification);
+ }
+
+ /**
+ * This adds {@link org.eclipse.emf.edit.command.CommandParameter}s describing the children
+ * that can be created under this object.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ protected void collectNewChildDescriptors(Collection<Object> newChildDescriptors, Object object) {
+ super.collectNewChildDescriptors(newChildDescriptors, object);
+
+ newChildDescriptors.add
+ (createChildParameter
+ (ComrelPackage.Literals.CARTESIAN_QUEUED_UNIT__HELPER_UNITS,
+ ComrelFactory.eINSTANCE.createSingleFeatureUnit()));
+
+ newChildDescriptors.add
+ (createChildParameter
+ (ComrelPackage.Literals.CARTESIAN_QUEUED_UNIT__HELPER_UNITS,
+ ComrelFactory.eINSTANCE.createMultiFeatureUnit()));
+
+ newChildDescriptors.add
+ (createChildParameter
+ (ComrelPackage.Literals.CARTESIAN_QUEUED_UNIT__HELPER_UNITS,
+ ComrelFactory.eINSTANCE.createSingleFilterUnit()));
+
+ newChildDescriptors.add
+ (createChildParameter
+ (ComrelPackage.Literals.CARTESIAN_QUEUED_UNIT__HELPER_UNITS,
+ ComrelFactory.eINSTANCE.createMultiFilterUnit()));
+
+ newChildDescriptors.add
+ (createChildParameter
+ (ComrelPackage.Literals.CARTESIAN_QUEUED_UNIT__REFACTORING_UNIT,
+ ComrelFactory.eINSTANCE.createAtomicUnit()));
+
+ newChildDescriptors.add
+ (createChildParameter
+ (ComrelPackage.Literals.CARTESIAN_QUEUED_UNIT__REFACTORING_UNIT,
+ ComrelFactory.eINSTANCE.createSequentialUnit()));
+
+ newChildDescriptors.add
+ (createChildParameter
+ (ComrelPackage.Literals.CARTESIAN_QUEUED_UNIT__REFACTORING_UNIT,
+ ComrelFactory.eINSTANCE.createConditionalUnit()));
+
+ newChildDescriptors.add
+ (createChildParameter
+ (ComrelPackage.Literals.CARTESIAN_QUEUED_UNIT__REFACTORING_UNIT,
+ ComrelFactory.eINSTANCE.createSingleQueuedUnit()));
+
+ newChildDescriptors.add
+ (createChildParameter
+ (ComrelPackage.Literals.CARTESIAN_QUEUED_UNIT__REFACTORING_UNIT,
+ ComrelFactory.eINSTANCE.createCartesianQueuedUnit()));
+
+ newChildDescriptors.add
+ (createChildParameter
+ (ComrelPackage.Literals.CARTESIAN_QUEUED_UNIT__REFACTORING_UNIT,
+ ComrelFactory.eINSTANCE.createParallelQueuedUnit()));
+
+ newChildDescriptors.add
+ (createChildParameter
+ (ComrelPackage.Literals.CARTESIAN_QUEUED_UNIT__SINGLE_INPUT_PORTS,
+ ComrelFactory.eINSTANCE.createSingleInputPort()));
+
+ newChildDescriptors.add
+ (createChildParameter
+ (ComrelPackage.Literals.CARTESIAN_QUEUED_UNIT__MULTI_INPUT_PORTS,
+ ComrelFactory.eINSTANCE.createMultiInputPort()));
+ }
+
+}
diff --git a/org.eclipse.emf.refactor.comrel.edit/src/comrel/provider/CompositeRefactoringItemProvider.java b/org.eclipse.emf.refactor.comrel.edit/src/comrel/provider/CompositeRefactoringItemProvider.java
new file mode 100644
index 0000000..76d8cdc
--- /dev/null
+++ b/org.eclipse.emf.refactor.comrel.edit/src/comrel/provider/CompositeRefactoringItemProvider.java
@@ -0,0 +1,312 @@
+/**
+ * <copyright>
+ * </copyright>
+ *
+ * $Id$
+ */
+package comrel.provider;
+
+
+import comrel.CompositeRefactoring;
+import comrel.ComrelFactory;
+import comrel.ComrelPackage;
+
+import java.util.Collection;
+import java.util.List;
+
+import org.eclipse.emf.common.notify.AdapterFactory;
+import org.eclipse.emf.common.notify.Notification;
+
+import org.eclipse.emf.ecore.EStructuralFeature;
+
+import org.eclipse.emf.edit.provider.ComposeableAdapterFactory;
+import org.eclipse.emf.edit.provider.IEditingDomainItemProvider;
+import org.eclipse.emf.edit.provider.IItemLabelProvider;
+import org.eclipse.emf.edit.provider.IItemPropertyDescriptor;
+import org.eclipse.emf.edit.provider.IItemPropertySource;
+import org.eclipse.emf.edit.provider.IStructuredItemContentProvider;
+import org.eclipse.emf.edit.provider.ITreeItemContentProvider;
+import org.eclipse.emf.edit.provider.ItemPropertyDescriptor;
+import org.eclipse.emf.edit.provider.ViewerNotification;
+
+/**
+ * This is the item provider adapter for a {@link comrel.CompositeRefactoring} object.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+public class CompositeRefactoringItemProvider
+ extends ModelRefactoringItemProvider
+ implements
+ IEditingDomainItemProvider,
+ IStructuredItemContentProvider,
+ ITreeItemContentProvider,
+ IItemLabelProvider,
+ IItemPropertySource {
+ /**
+ * This constructs an instance from a factory and a notifier.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public CompositeRefactoringItemProvider(AdapterFactory adapterFactory) {
+ super(adapterFactory);
+ }
+
+ /**
+ * This returns the property descriptors for the adapted class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public List<IItemPropertyDescriptor> getPropertyDescriptors(Object object) {
+ if (itemPropertyDescriptors == null) {
+ super.getPropertyDescriptors(object);
+
+ addMappingVisualizationPropertyDescriptor(object);
+ addCustomInitialConditionPropertyDescriptor(object);
+ addCustomFinalConditionPropertyDescriptor(object);
+ }
+ return itemPropertyDescriptors;
+ }
+
+ /**
+ * This adds a property descriptor for the Mapping Visualization feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected void addMappingVisualizationPropertyDescriptor(Object object) {
+ itemPropertyDescriptors.add
+ (createItemPropertyDescriptor
+ (((ComposeableAdapterFactory)adapterFactory).getRootAdapterFactory(),
+ getResourceLocator(),
+ getString("_UI_CompositeRefactoring_mappingVisualization_feature"),
+ getString("_UI_PropertyDescriptor_description", "_UI_CompositeRefactoring_mappingVisualization_feature", "_UI_CompositeRefactoring_type"),
+ ComrelPackage.Literals.COMPOSITE_REFACTORING__MAPPING_VISUALIZATION,
+ true,
+ false,
+ false,
+ ItemPropertyDescriptor.GENERIC_VALUE_IMAGE,
+ null,
+ null));
+ }
+
+ /**
+ * This adds a property descriptor for the Custom Initial Condition feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected void addCustomInitialConditionPropertyDescriptor(Object object) {
+ itemPropertyDescriptors.add
+ (createItemPropertyDescriptor
+ (((ComposeableAdapterFactory)adapterFactory).getRootAdapterFactory(),
+ getResourceLocator(),
+ getString("_UI_CompositeRefactoring_customInitialCondition_feature"),
+ getString("_UI_PropertyDescriptor_description", "_UI_CompositeRefactoring_customInitialCondition_feature", "_UI_CompositeRefactoring_type"),
+ ComrelPackage.Literals.COMPOSITE_REFACTORING__CUSTOM_INITIAL_CONDITION,
+ true,
+ false,
+ false,
+ ItemPropertyDescriptor.GENERIC_VALUE_IMAGE,
+ null,
+ null));
+ }
+
+ /**
+ * This adds a property descriptor for the Custom Final Condition feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected void addCustomFinalConditionPropertyDescriptor(Object object) {
+ itemPropertyDescriptors.add
+ (createItemPropertyDescriptor
+ (((ComposeableAdapterFactory)adapterFactory).getRootAdapterFactory(),
+ getResourceLocator(),
+ getString("_UI_CompositeRefactoring_customFinalCondition_feature"),
+ getString("_UI_PropertyDescriptor_description", "_UI_CompositeRefactoring_customFinalCondition_feature", "_UI_CompositeRefactoring_type"),
+ ComrelPackage.Literals.COMPOSITE_REFACTORING__CUSTOM_FINAL_CONDITION,
+ true,
+ false,
+ false,
+ ItemPropertyDescriptor.GENERIC_VALUE_IMAGE,
+ null,
+ null));
+ }
+
+ /**
+ * This specifies how to implement {@link #getChildren} and is used to deduce an appropriate feature for an
+ * {@link org.eclipse.emf.edit.command.AddCommand}, {@link org.eclipse.emf.edit.command.RemoveCommand} or
+ * {@link org.eclipse.emf.edit.command.MoveCommand} in {@link #createCommand}.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public Collection<? extends EStructuralFeature> getChildrenFeatures(Object object) {
+ if (childrenFeatures == null) {
+ super.getChildrenFeatures(object);
+ childrenFeatures.add(ComrelPackage.Literals.COMPOSITE_REFACTORING__MAIN_REFACTORING_UNIT);
+ childrenFeatures.add(ComrelPackage.Literals.COMPOSITE_REFACTORING__PORT_MAPPINGS);
+ childrenFeatures.add(ComrelPackage.Literals.COMPOSITE_REFACTORING__MODEL_REFACTORINGS);
+ childrenFeatures.add(ComrelPackage.Literals.COMPOSITE_REFACTORING__HELPER);
+ }
+ return childrenFeatures;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ protected EStructuralFeature getChildFeature(Object object, Object child) {
+ // Check the type of the specified child object and return the proper feature to use for
+ // adding (see {@link AddCommand}) it as a child.
+
+ return super.getChildFeature(object, child);
+ }
+
+ /**
+ * This returns CompositeRefactoring.gif.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public Object getImage(Object object) {
+ return overlayImage(object, getResourceLocator().getImage("full/obj16/CompositeRefactoring"));
+ }
+
+ /**
+ * This returns the label text for the adapted class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public String getText(Object object) {
+ String label = ((CompositeRefactoring)object).getName();
+ return label == null || label.length() == 0 ?
+ getString("_UI_CompositeRefactoring_type") :
+ getString("_UI_CompositeRefactoring_type") + " " + label;
+ }
+
+ /**
+ * This handles model notifications by calling {@link #updateChildren} to update any cached
+ * children and by creating a viewer notification, which it passes to {@link #fireNotifyChanged}.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public void notifyChanged(Notification notification) {
+ updateChildren(notification);
+
+ switch (notification.getFeatureID(CompositeRefactoring.class)) {
+ case ComrelPackage.COMPOSITE_REFACTORING__MAPPING_VISUALIZATION:
+ case ComrelPackage.COMPOSITE_REFACTORING__CUSTOM_INITIAL_CONDITION:
+ case ComrelPackage.COMPOSITE_REFACTORING__CUSTOM_FINAL_CONDITION:
+ fireNotifyChanged(new ViewerNotification(notification, notification.getNotifier(), false, true));
+ return;
+ case ComrelPackage.COMPOSITE_REFACTORING__MAIN_REFACTORING_UNIT:
+ case ComrelPackage.COMPOSITE_REFACTORING__PORT_MAPPINGS:
+ case ComrelPackage.COMPOSITE_REFACTORING__MODEL_REFACTORINGS:
+ case ComrelPackage.COMPOSITE_REFACTORING__HELPER:
+ fireNotifyChanged(new ViewerNotification(notification, notification.getNotifier(), true, false));
+ return;
+ }
+ super.notifyChanged(notification);
+ }
+
+ /**
+ * This adds {@link org.eclipse.emf.edit.command.CommandParameter}s describing the children
+ * that can be created under this object.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ protected void collectNewChildDescriptors(Collection<Object> newChildDescriptors, Object object) {
+ super.collectNewChildDescriptors(newChildDescriptors, object);
+
+ newChildDescriptors.add
+ (createChildParameter
+ (ComrelPackage.Literals.COMPOSITE_REFACTORING__MAIN_REFACTORING_UNIT,
+ ComrelFactory.eINSTANCE.createAtomicUnit()));
+
+ newChildDescriptors.add
+ (createChildParameter
+ (ComrelPackage.Literals.COMPOSITE_REFACTORING__MAIN_REFACTORING_UNIT,
+ ComrelFactory.eINSTANCE.createSequentialUnit()));
+
+ newChildDescriptors.add
+ (createChildParameter
+ (ComrelPackage.Literals.COMPOSITE_REFACTORING__MAIN_REFACTORING_UNIT,
+ ComrelFactory.eINSTANCE.createConditionalUnit()));
+
+ newChildDescriptors.add
+ (createChildParameter
+ (ComrelPackage.Literals.COMPOSITE_REFACTORING__MAIN_REFACTORING_UNIT,
+ ComrelFactory.eINSTANCE.createSingleQueuedUnit()));
+
+ newChildDescriptors.add
+ (createChildParameter
+ (ComrelPackage.Literals.COMPOSITE_REFACTORING__MAIN_REFACTORING_UNIT,
+ ComrelFactory.eINSTANCE.createCartesianQueuedUnit()));
+
+ newChildDescriptors.add
+ (createChildParameter
+ (ComrelPackage.Literals.COMPOSITE_REFACTORING__MAIN_REFACTORING_UNIT,
+ ComrelFactory.eINSTANCE.createParallelQueuedUnit()));
+
+ newChildDescriptors.add
+ (createChildParameter
+ (ComrelPackage.Literals.COMPOSITE_REFACTORING__PORT_MAPPINGS,
+ ComrelFactory.eINSTANCE.createSinglePortMapping()));
+
+ newChildDescriptors.add
+ (createChildParameter
+ (ComrelPackage.Literals.COMPOSITE_REFACTORING__PORT_MAPPINGS,
+ ComrelFactory.eINSTANCE.createMultiPortMapping()));
+
+ newChildDescriptors.add
+ (createChildParameter
+ (ComrelPackage.Literals.COMPOSITE_REFACTORING__PORT_MAPPINGS,
+ ComrelFactory.eINSTANCE.createMultiSinglePortMapping()));
+
+ newChildDescriptors.add
+ (createChildParameter
+ (ComrelPackage.Literals.COMPOSITE_REFACTORING__MODEL_REFACTORINGS,
+ ComrelFactory.eINSTANCE.createModelRefactoring()));
+
+ newChildDescriptors.add
+ (createChildParameter
+ (ComrelPackage.Literals.COMPOSITE_REFACTORING__MODEL_REFACTORINGS,
+ ComrelFactory.eINSTANCE.createCompositeRefactoring()));
+
+ newChildDescriptors.add
+ (createChildParameter
+ (ComrelPackage.Literals.COMPOSITE_REFACTORING__HELPER,
+ ComrelFactory.eINSTANCE.createSingleFeatureHelper()));
+
+ newChildDescriptors.add
+ (createChildParameter
+ (ComrelPackage.Literals.COMPOSITE_REFACTORING__HELPER,
+ ComrelFactory.eINSTANCE.createMultiFeatureHelper()));
+
+ newChildDescriptors.add
+ (createChildParameter
+ (ComrelPackage.Literals.COMPOSITE_REFACTORING__HELPER,
+ ComrelFactory.eINSTANCE.createSingleFilterHelper()));
+
+ newChildDescriptors.add
+ (createChildParameter
+ (ComrelPackage.Literals.COMPOSITE_REFACTORING__HELPER,
+ ComrelFactory.eINSTANCE.createMultiFilterHelper()));
+ }
+
+}
diff --git a/org.eclipse.emf.refactor.comrel.edit/src/comrel/provider/CompositeUnitItemProvider.java b/org.eclipse.emf.refactor.comrel.edit/src/comrel/provider/CompositeUnitItemProvider.java
new file mode 100644
index 0000000..f5fb88a
--- /dev/null
+++ b/org.eclipse.emf.refactor.comrel.edit/src/comrel/provider/CompositeUnitItemProvider.java
@@ -0,0 +1,103 @@
+/**
+ * <copyright>
+ * </copyright>
+ *
+ * $Id$
+ */
+package comrel.provider;
+
+
+import comrel.CompositeUnit;
+
+import java.util.Collection;
+import java.util.List;
+
+import org.eclipse.emf.common.notify.AdapterFactory;
+import org.eclipse.emf.common.notify.Notification;
+
+import org.eclipse.emf.edit.provider.IEditingDomainItemProvider;
+import org.eclipse.emf.edit.provider.IItemLabelProvider;
+import org.eclipse.emf.edit.provider.IItemPropertyDescriptor;
+import org.eclipse.emf.edit.provider.IItemPropertySource;
+import org.eclipse.emf.edit.provider.IStructuredItemContentProvider;
+import org.eclipse.emf.edit.provider.ITreeItemContentProvider;
+
+/**
+ * This is the item provider adapter for a {@link comrel.CompositeUnit} object.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+public class CompositeUnitItemProvider
+ extends RefactoringUnitItemProvider
+ implements
+ IEditingDomainItemProvider,
+ IStructuredItemContentProvider,
+ ITreeItemContentProvider,
+ IItemLabelProvider,
+ IItemPropertySource {
+ /**
+ * This constructs an instance from a factory and a notifier.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public CompositeUnitItemProvider(AdapterFactory adapterFactory) {
+ super(adapterFactory);
+ }
+
+ /**
+ * This returns the property descriptors for the adapted class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public List<IItemPropertyDescriptor> getPropertyDescriptors(Object object) {
+ if (itemPropertyDescriptors == null) {
+ super.getPropertyDescriptors(object);
+
+ }
+ return itemPropertyDescriptors;
+ }
+
+ /**
+ * This returns the label text for the adapted class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public String getText(Object object) {
+ String label = ((CompositeUnit)object).getName();
+ return label == null || label.length() == 0 ?
+ getString("_UI_CompositeUnit_type") :
+ getString("_UI_CompositeUnit_type") + " " + label;
+ }
+
+ /**
+ * This handles model notifications by calling {@link #updateChildren} to update any cached
+ * children and by creating a viewer notification, which it passes to {@link #fireNotifyChanged}.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public void notifyChanged(Notification notification) {
+ updateChildren(notification);
+ super.notifyChanged(notification);
+ }
+
+ /**
+ * This adds {@link org.eclipse.emf.edit.command.CommandParameter}s describing the children
+ * that can be created under this object.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ protected void collectNewChildDescriptors(Collection<Object> newChildDescriptors, Object object) {
+ super.collectNewChildDescriptors(newChildDescriptors, object);
+ }
+
+}
diff --git a/org.eclipse.emf.refactor.comrel.edit/src/comrel/provider/ComrelEditPlugin.java b/org.eclipse.emf.refactor.comrel.edit/src/comrel/provider/ComrelEditPlugin.java
new file mode 100644
index 0000000..dd3f65a
--- /dev/null
+++ b/org.eclipse.emf.refactor.comrel.edit/src/comrel/provider/ComrelEditPlugin.java
@@ -0,0 +1,93 @@
+/**
+ * <copyright>
+ * </copyright>
+ *
+ * $Id$
+ */
+package comrel.provider;
+
+import org.eclipse.emf.common.EMFPlugin;
+
+import org.eclipse.emf.common.util.ResourceLocator;
+
+/**
+ * This is the central singleton for the Comrel edit plugin.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+public final class ComrelEditPlugin extends EMFPlugin {
+ /**
+ * Keep track of the singleton.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public static final ComrelEditPlugin INSTANCE = new ComrelEditPlugin();
+
+ /**
+ * Keep track of the singleton.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ private static Implementation plugin;
+
+ /**
+ * Create the instance.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public ComrelEditPlugin() {
+ super
+ (new ResourceLocator [] {
+ });
+ }
+
+ /**
+ * Returns the singleton instance of the Eclipse plugin.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the singleton instance.
+ * @generated
+ */
+ @Override
+ public ResourceLocator getPluginResourceLocator() {
+ return plugin;
+ }
+
+ /**
+ * Returns the singleton instance of the Eclipse plugin.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the singleton instance.
+ * @generated
+ */
+ public static Implementation getPlugin() {
+ return plugin;
+ }
+
+ /**
+ * The actual implementation of the Eclipse <b>Plugin</b>.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public static class Implementation extends EclipsePlugin {
+ /**
+ * Creates an instance.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public Implementation() {
+ super();
+
+ // Remember the static instance.
+ //
+ plugin = this;
+ }
+ }
+
+}
diff --git a/org.eclipse.emf.refactor.comrel.edit/src/comrel/provider/ComrelItemProviderAdapterFactory.java b/org.eclipse.emf.refactor.comrel.edit/src/comrel/provider/ComrelItemProviderAdapterFactory.java
new file mode 100644
index 0000000..a252424
--- /dev/null
+++ b/org.eclipse.emf.refactor.comrel.edit/src/comrel/provider/ComrelItemProviderAdapterFactory.java
@@ -0,0 +1,755 @@
+/**
+ * <copyright>
+ * </copyright>
+ *
+ * $Id$
+ */
+package comrel.provider;
+
+import comrel.util.ComrelAdapterFactory;
+
+import java.util.ArrayList;
+import java.util.Collection;
+
+import org.eclipse.emf.common.notify.Adapter;
+import org.eclipse.emf.common.notify.Notification;
+import org.eclipse.emf.common.notify.Notifier;
+
+import org.eclipse.emf.edit.provider.ChangeNotifier;
+import org.eclipse.emf.edit.provider.ComposeableAdapterFactory;
+import org.eclipse.emf.edit.provider.ComposedAdapterFactory;
+import org.eclipse.emf.edit.provider.IChangeNotifier;
+import org.eclipse.emf.edit.provider.IDisposable;
+import org.eclipse.emf.edit.provider.IEditingDomainItemProvider;
+import org.eclipse.emf.edit.provider.IItemLabelProvider;
+import org.eclipse.emf.edit.provider.IItemPropertySource;
+import org.eclipse.emf.edit.provider.INotifyChangedListener;
+import org.eclipse.emf.edit.provider.IStructuredItemContentProvider;
+import org.eclipse.emf.edit.provider.ITreeItemContentProvider;
+
+/**
+ * This is the factory that is used to provide the interfaces needed to support Viewers.
+ * The adapters generated by this factory convert EMF adapter notifications into calls to {@link #fireNotifyChanged fireNotifyChanged}.
+ * The adapters also support Eclipse property sheets.
+ * Note that most of the adapters are shared among multiple instances.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+public class ComrelItemProviderAdapterFactory extends ComrelAdapterFactory implements ComposeableAdapterFactory, IChangeNotifier, IDisposable {
+ /**
+ * This keeps track of the root adapter factory that delegates to this adapter factory.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected ComposedAdapterFactory parentAdapterFactory;
+
+ /**
+ * This is used to implement {@link org.eclipse.emf.edit.provider.IChangeNotifier}.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected IChangeNotifier changeNotifier = new ChangeNotifier();
+
+ /**
+ * This keeps track of all the supported types checked by {@link #isFactoryForType isFactoryForType}.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected Collection<Object> supportedTypes = new ArrayList<Object>();
+
+ /**
+ * This constructs an instance.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public ComrelItemProviderAdapterFactory() {
+ supportedTypes.add(IEditingDomainItemProvider.class);
+ supportedTypes.add(IStructuredItemContentProvider.class);
+ supportedTypes.add(ITreeItemContentProvider.class);
+ supportedTypes.add(IItemLabelProvider.class);
+ supportedTypes.add(IItemPropertySource.class);
+ }
+
+ /**
+ * This keeps track of the one adapter used for all {@link comrel.CompositeRefactoring} instances.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected CompositeRefactoringItemProvider compositeRefactoringItemProvider;
+
+ /**
+ * This creates an adapter for a {@link comrel.CompositeRefactoring}.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public Adapter createCompositeRefactoringAdapter() {
+ if (compositeRefactoringItemProvider == null) {
+ compositeRefactoringItemProvider = new CompositeRefactoringItemProvider(this);
+ }
+
+ return compositeRefactoringItemProvider;
+ }
+
+ /**
+ * This keeps track of the one adapter used for all {@link comrel.ModelRefactoring} instances.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected ModelRefactoringItemProvider modelRefactoringItemProvider;
+
+ /**
+ * This creates an adapter for a {@link comrel.ModelRefactoring}.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public Adapter createModelRefactoringAdapter() {
+ if (modelRefactoringItemProvider == null) {
+ modelRefactoringItemProvider = new ModelRefactoringItemProvider(this);
+ }
+
+ return modelRefactoringItemProvider;
+ }
+
+ /**
+ * This keeps track of the one adapter used for all {@link comrel.AtomicUnit} instances.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected AtomicUnitItemProvider atomicUnitItemProvider;
+
+ /**
+ * This creates an adapter for a {@link comrel.AtomicUnit}.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public Adapter createAtomicUnitAdapter() {
+ if (atomicUnitItemProvider == null) {
+ atomicUnitItemProvider = new AtomicUnitItemProvider(this);
+ }
+
+ return atomicUnitItemProvider;
+ }
+
+ /**
+ * This keeps track of the one adapter used for all {@link comrel.SequentialUnit} instances.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected SequentialUnitItemProvider sequentialUnitItemProvider;
+
+ /**
+ * This creates an adapter for a {@link comrel.SequentialUnit}.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public Adapter createSequentialUnitAdapter() {
+ if (sequentialUnitItemProvider == null) {
+ sequentialUnitItemProvider = new SequentialUnitItemProvider(this);
+ }
+
+ return sequentialUnitItemProvider;
+ }
+
+ /**
+ * This keeps track of the one adapter used for all {@link comrel.ConditionCheck} instances.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected ConditionCheckItemProvider conditionCheckItemProvider;
+
+ /**
+ * This creates an adapter for a {@link comrel.ConditionCheck}.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public Adapter createConditionCheckAdapter() {
+ if (conditionCheckItemProvider == null) {
+ conditionCheckItemProvider = new ConditionCheckItemProvider(this);
+ }
+
+ return conditionCheckItemProvider;
+ }
+
+ /**
+ * This keeps track of the one adapter used for all {@link comrel.ConditionalUnit} instances.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected ConditionalUnitItemProvider conditionalUnitItemProvider;
+
+ /**
+ * This creates an adapter for a {@link comrel.ConditionalUnit}.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public Adapter createConditionalUnitAdapter() {
+ if (conditionalUnitItemProvider == null) {
+ conditionalUnitItemProvider = new ConditionalUnitItemProvider(this);
+ }
+
+ return conditionalUnitItemProvider;
+ }
+
+ /**
+ * This keeps track of the one adapter used for all {@link comrel.SingleQueuedUnit} instances.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected SingleQueuedUnitItemProvider singleQueuedUnitItemProvider;
+
+ /**
+ * This creates an adapter for a {@link comrel.SingleQueuedUnit}.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public Adapter createSingleQueuedUnitAdapter() {
+ if (singleQueuedUnitItemProvider == null) {
+ singleQueuedUnitItemProvider = new SingleQueuedUnitItemProvider(this);
+ }
+
+ return singleQueuedUnitItemProvider;
+ }
+
+ /**
+ * This keeps track of the one adapter used for all {@link comrel.CartesianQueuedUnit} instances.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected CartesianQueuedUnitItemProvider cartesianQueuedUnitItemProvider;
+
+ /**
+ * This creates an adapter for a {@link comrel.CartesianQueuedUnit}.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public Adapter createCartesianQueuedUnitAdapter() {
+ if (cartesianQueuedUnitItemProvider == null) {
+ cartesianQueuedUnitItemProvider = new CartesianQueuedUnitItemProvider(this);
+ }
+
+ return cartesianQueuedUnitItemProvider;
+ }
+
+ /**
+ * This keeps track of the one adapter used for all {@link comrel.ParallelQueuedUnit} instances.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected ParallelQueuedUnitItemProvider parallelQueuedUnitItemProvider;
+
+ /**
+ * This creates an adapter for a {@link comrel.ParallelQueuedUnit}.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public Adapter createParallelQueuedUnitAdapter() {
+ if (parallelQueuedUnitItemProvider == null) {
+ parallelQueuedUnitItemProvider = new ParallelQueuedUnitItemProvider(this);
+ }
+
+ return parallelQueuedUnitItemProvider;
+ }
+
+ /**
+ * This keeps track of the one adapter used for all {@link comrel.SingleFeatureUnit} instances.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected SingleFeatureUnitItemProvider singleFeatureUnitItemProvider;
+
+ /**
+ * This creates an adapter for a {@link comrel.SingleFeatureUnit}.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public Adapter createSingleFeatureUnitAdapter() {
+ if (singleFeatureUnitItemProvider == null) {
+ singleFeatureUnitItemProvider = new SingleFeatureUnitItemProvider(this);
+ }
+
+ return singleFeatureUnitItemProvider;
+ }
+
+ /**
+ * This keeps track of the one adapter used for all {@link comrel.MultiFeatureUnit} instances.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected MultiFeatureUnitItemProvider multiFeatureUnitItemProvider;
+
+ /**
+ * This creates an adapter for a {@link comrel.MultiFeatureUnit}.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public Adapter createMultiFeatureUnitAdapter() {
+ if (multiFeatureUnitItemProvider == null) {
+ multiFeatureUnitItemProvider = new MultiFeatureUnitItemProvider(this);
+ }
+
+ return multiFeatureUnitItemProvider;
+ }
+
+ /**
+ * This keeps track of the one adapter used for all {@link comrel.SingleFilterUnit} instances.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected SingleFilterUnitItemProvider singleFilterUnitItemProvider;
+
+ /**
+ * This creates an adapter for a {@link comrel.SingleFilterUnit}.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public Adapter createSingleFilterUnitAdapter() {
+ if (singleFilterUnitItemProvider == null) {
+ singleFilterUnitItemProvider = new SingleFilterUnitItemProvider(this);
+ }
+
+ return singleFilterUnitItemProvider;
+ }
+
+ /**
+ * This keeps track of the one adapter used for all {@link comrel.MultiFilterUnit} instances.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected MultiFilterUnitItemProvider multiFilterUnitItemProvider;
+
+ /**
+ * This creates an adapter for a {@link comrel.MultiFilterUnit}.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public Adapter createMultiFilterUnitAdapter() {
+ if (multiFilterUnitItemProvider == null) {
+ multiFilterUnitItemProvider = new MultiFilterUnitItemProvider(this);
+ }
+
+ return multiFilterUnitItemProvider;
+ }
+
+ /**
+ * This keeps track of the one adapter used for all {@link comrel.SingleFeatureHelper} instances.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected SingleFeatureHelperItemProvider singleFeatureHelperItemProvider;
+
+ /**
+ * This creates an adapter for a {@link comrel.SingleFeatureHelper}.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public Adapter createSingleFeatureHelperAdapter() {
+ if (singleFeatureHelperItemProvider == null) {
+ singleFeatureHelperItemProvider = new SingleFeatureHelperItemProvider(this);
+ }
+
+ return singleFeatureHelperItemProvider;
+ }
+
+ /**
+ * This keeps track of the one adapter used for all {@link comrel.MultiFeatureHelper} instances.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected MultiFeatureHelperItemProvider multiFeatureHelperItemProvider;
+
+ /**
+ * This creates an adapter for a {@link comrel.MultiFeatureHelper}.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public Adapter createMultiFeatureHelperAdapter() {
+ if (multiFeatureHelperItemProvider == null) {
+ multiFeatureHelperItemProvider = new MultiFeatureHelperItemProvider(this);
+ }
+
+ return multiFeatureHelperItemProvider;
+ }
+
+ /**
+ * This keeps track of the one adapter used for all {@link comrel.SingleFilterHelper} instances.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected SingleFilterHelperItemProvider singleFilterHelperItemProvider;
+
+ /**
+ * This creates an adapter for a {@link comrel.SingleFilterHelper}.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public Adapter createSingleFilterHelperAdapter() {
+ if (singleFilterHelperItemProvider == null) {
+ singleFilterHelperItemProvider = new SingleFilterHelperItemProvider(this);
+ }
+
+ return singleFilterHelperItemProvider;
+ }
+
+ /**
+ * This keeps track of the one adapter used for all {@link comrel.MultiFilterHelper} instances.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected MultiFilterHelperItemProvider multiFilterHelperItemProvider;
+
+ /**
+ * This creates an adapter for a {@link comrel.MultiFilterHelper}.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public Adapter createMultiFilterHelperAdapter() {
+ if (multiFilterHelperItemProvider == null) {
+ multiFilterHelperItemProvider = new MultiFilterHelperItemProvider(this);
+ }
+
+ return multiFilterHelperItemProvider;
+ }
+
+ /**
+ * This keeps track of the one adapter used for all {@link comrel.SingleInputPort} instances.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected SingleInputPortItemProvider singleInputPortItemProvider;
+
+ /**
+ * This creates an adapter for a {@link comrel.SingleInputPort}.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public Adapter createSingleInputPortAdapter() {
+ if (singleInputPortItemProvider == null) {
+ singleInputPortItemProvider = new SingleInputPortItemProvider(this);
+ }
+
+ return singleInputPortItemProvider;
+ }
+
+ /**
+ * This keeps track of the one adapter used for all {@link comrel.MultiInputPort} instances.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected MultiInputPortItemProvider multiInputPortItemProvider;
+
+ /**
+ * This creates an adapter for a {@link comrel.MultiInputPort}.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public Adapter createMultiInputPortAdapter() {
+ if (multiInputPortItemProvider == null) {
+ multiInputPortItemProvider = new MultiInputPortItemProvider(this);
+ }
+
+ return multiInputPortItemProvider;
+ }
+
+ /**
+ * This keeps track of the one adapter used for all {@link comrel.SingleOutputPort} instances.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected SingleOutputPortItemProvider singleOutputPortItemProvider;
+
+ /**
+ * This creates an adapter for a {@link comrel.SingleOutputPort}.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public Adapter createSingleOutputPortAdapter() {
+ if (singleOutputPortItemProvider == null) {
+ singleOutputPortItemProvider = new SingleOutputPortItemProvider(this);
+ }
+
+ return singleOutputPortItemProvider;
+ }
+
+ /**
+ * This keeps track of the one adapter used for all {@link comrel.MultiOutputPort} instances.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected MultiOutputPortItemProvider multiOutputPortItemProvider;
+
+ /**
+ * This creates an adapter for a {@link comrel.MultiOutputPort}.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public Adapter createMultiOutputPortAdapter() {
+ if (multiOutputPortItemProvider == null) {
+ multiOutputPortItemProvider = new MultiOutputPortItemProvider(this);
+ }
+
+ return multiOutputPortItemProvider;
+ }
+
+ /**
+ * This keeps track of the one adapter used for all {@link comrel.SinglePortMapping} instances.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected SinglePortMappingItemProvider singlePortMappingItemProvider;
+
+ /**
+ * This creates an adapter for a {@link comrel.SinglePortMapping}.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public Adapter createSinglePortMappingAdapter() {
+ if (singlePortMappingItemProvider == null) {
+ singlePortMappingItemProvider = new SinglePortMappingItemProvider(this);
+ }
+
+ return singlePortMappingItemProvider;
+ }
+
+ /**
+ * This keeps track of the one adapter used for all {@link comrel.MultiPortMapping} instances.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected MultiPortMappingItemProvider multiPortMappingItemProvider;
+
+ /**
+ * This creates an adapter for a {@link comrel.MultiPortMapping}.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public Adapter createMultiPortMappingAdapter() {
+ if (multiPortMappingItemProvider == null) {
+ multiPortMappingItemProvider = new MultiPortMappingItemProvider(this);
+ }
+
+ return multiPortMappingItemProvider;
+ }
+
+ /**
+ * This keeps track of the one adapter used for all {@link comrel.MultiSinglePortMapping} instances.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected MultiSinglePortMappingItemProvider multiSinglePortMappingItemProvider;
+
+ /**
+ * This creates an adapter for a {@link comrel.MultiSinglePortMapping}.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public Adapter createMultiSinglePortMappingAdapter() {
+ if (multiSinglePortMappingItemProvider == null) {
+ multiSinglePortMappingItemProvider = new MultiSinglePortMappingItemProvider(this);
+ }
+
+ return multiSinglePortMappingItemProvider;
+ }
+
+ /**
+ * This returns the root adapter factory that contains this factory.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public ComposeableAdapterFactory getRootAdapterFactory() {
+ return parentAdapterFactory == null ? this : parentAdapterFactory.getRootAdapterFactory();
+ }
+
+ /**
+ * This sets the composed adapter factory that contains this factory.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public void setParentAdapterFactory(ComposedAdapterFactory parentAdapterFactory) {
+ this.parentAdapterFactory = parentAdapterFactory;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public boolean isFactoryForType(Object type) {
+ return supportedTypes.contains(type) || super.isFactoryForType(type);
+ }
+
+ /**
+ * This implementation substitutes the factory itself as the key for the adapter.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public Adapter adapt(Notifier notifier, Object type) {
+ return super.adapt(notifier, this);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public Object adapt(Object object, Object type) {
+ if (isFactoryForType(type)) {
+ Object adapter = super.adapt(object, type);
+ if (!(type instanceof Class<?>) || (((Class<?>)type).isInstance(adapter))) {
+ return adapter;
+ }
+ }
+
+ return null;
+ }
+
+ /**
+ * This adds a listener.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public void addListener(INotifyChangedListener notifyChangedListener) {
+ changeNotifier.addListener(notifyChangedListener);
+ }
+
+ /**
+ * This removes a listener.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public void removeListener(INotifyChangedListener notifyChangedListener) {
+ changeNotifier.removeListener(notifyChangedListener);
+ }
+
+ /**
+ * This delegates to {@link #changeNotifier} and to {@link #parentAdapterFactory}.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public void fireNotifyChanged(Notification notification) {
+ changeNotifier.fireNotifyChanged(notification);
+
+ if (parentAdapterFactory != null) {
+ parentAdapterFactory.fireNotifyChanged(notification);
+ }
+ }
+
+ /**
+ * This disposes all of the item providers created by this factory.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public void dispose() {
+ if (compositeRefactoringItemProvider != null) compositeRefactoringItemProvider.dispose();
+ if (modelRefactoringItemProvider != null) modelRefactoringItemProvider.dispose();
+ if (atomicUnitItemProvider != null) atomicUnitItemProvider.dispose();
+ if (sequentialUnitItemProvider != null) sequentialUnitItemProvider.dispose();
+ if (conditionCheckItemProvider != null) conditionCheckItemProvider.dispose();
+ if (conditionalUnitItemProvider != null) conditionalUnitItemProvider.dispose();
+ if (singleQueuedUnitItemProvider != null) singleQueuedUnitItemProvider.dispose();
+ if (cartesianQueuedUnitItemProvider != null) cartesianQueuedUnitItemProvider.dispose();
+ if (parallelQueuedUnitItemProvider != null) parallelQueuedUnitItemProvider.dispose();
+ if (singleFeatureUnitItemProvider != null) singleFeatureUnitItemProvider.dispose();
+ if (multiFeatureUnitItemProvider != null) multiFeatureUnitItemProvider.dispose();
+ if (singleFilterUnitItemProvider != null) singleFilterUnitItemProvider.dispose();
+ if (multiFilterUnitItemProvider != null) multiFilterUnitItemProvider.dispose();
+ if (singleFeatureHelperItemProvider != null) singleFeatureHelperItemProvider.dispose();
+ if (multiFeatureHelperItemProvider != null) multiFeatureHelperItemProvider.dispose();
+ if (singleFilterHelperItemProvider != null) singleFilterHelperItemProvider.dispose();
+ if (multiFilterHelperItemProvider != null) multiFilterHelperItemProvider.dispose();
+ if (singleInputPortItemProvider != null) singleInputPortItemProvider.dispose();
+ if (multiInputPortItemProvider != null) multiInputPortItemProvider.dispose();
+ if (singleOutputPortItemProvider != null) singleOutputPortItemProvider.dispose();
+ if (multiOutputPortItemProvider != null) multiOutputPortItemProvider.dispose();
+ if (singlePortMappingItemProvider != null) singlePortMappingItemProvider.dispose();
+ if (multiPortMappingItemProvider != null) multiPortMappingItemProvider.dispose();
+ if (multiSinglePortMappingItemProvider != null) multiSinglePortMappingItemProvider.dispose();
+ }
+
+}
diff --git a/org.eclipse.emf.refactor.comrel.edit/src/comrel/provider/ConditionCheckItemProvider.java b/org.eclipse.emf.refactor.comrel.edit/src/comrel/provider/ConditionCheckItemProvider.java
new file mode 100644
index 0000000..a41a5e2
--- /dev/null
+++ b/org.eclipse.emf.refactor.comrel.edit/src/comrel/provider/ConditionCheckItemProvider.java
@@ -0,0 +1,233 @@
+/**
+ * <copyright>
+ * </copyright>
+ *
+ * $Id$
+ */
+package comrel.provider;
+
+
+import comrel.ComrelPackage;
+import comrel.ConditionCheck;
+
+import java.util.Collection;
+import java.util.List;
+
+import org.eclipse.emf.common.notify.AdapterFactory;
+import org.eclipse.emf.common.notify.Notification;
+
+import org.eclipse.emf.common.util.ResourceLocator;
+
+import org.eclipse.emf.edit.provider.ComposeableAdapterFactory;
+import org.eclipse.emf.edit.provider.IEditingDomainItemProvider;
+import org.eclipse.emf.edit.provider.IItemLabelProvider;
+import org.eclipse.emf.edit.provider.IItemPropertyDescriptor;
+import org.eclipse.emf.edit.provider.IItemPropertySource;
+import org.eclipse.emf.edit.provider.IStructuredItemContentProvider;
+import org.eclipse.emf.edit.provider.ITreeItemContentProvider;
+import org.eclipse.emf.edit.provider.ItemPropertyDescriptor;
+import org.eclipse.emf.edit.provider.ItemProviderAdapter;
+import org.eclipse.emf.edit.provider.ViewerNotification;
+
+/**
+ * This is the item provider adapter for a {@link comrel.ConditionCheck} object.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+public class ConditionCheckItemProvider
+ extends ItemProviderAdapter
+ implements
+ IEditingDomainItemProvider,
+ IStructuredItemContentProvider,
+ ITreeItemContentProvider,
+ IItemLabelProvider,
+ IItemPropertySource {
+ /**
+ * This constructs an instance from a factory and a notifier.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public ConditionCheckItemProvider(AdapterFactory adapterFactory) {
+ super(adapterFactory);
+ }
+
+ /**
+ * This returns the property descriptors for the adapted class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public List<IItemPropertyDescriptor> getPropertyDescriptors(Object object) {
+ if (itemPropertyDescriptors == null) {
+ super.getPropertyDescriptors(object);
+
+ addNamePropertyDescriptor(object);
+ addDescriptionPropertyDescriptor(object);
+ addTypePropertyDescriptor(object);
+ addSpecPropertyDescriptor(object);
+ }
+ return itemPropertyDescriptors;
+ }
+
+ /**
+ * This adds a property descriptor for the Name feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected void addNamePropertyDescriptor(Object object) {
+ itemPropertyDescriptors.add
+ (createItemPropertyDescriptor
+ (((ComposeableAdapterFactory)adapterFactory).getRootAdapterFactory(),
+ getResourceLocator(),
+ getString("_UI_NamedElement_name_feature"),
+ getString("_UI_PropertyDescriptor_description", "_UI_NamedElement_name_feature", "_UI_NamedElement_type"),
+ ComrelPackage.Literals.NAMED_ELEMENT__NAME,
+ true,
+ false,
+ false,
+ ItemPropertyDescriptor.GENERIC_VALUE_IMAGE,
+ null,
+ null));
+ }
+
+ /**
+ * This adds a property descriptor for the Description feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected void addDescriptionPropertyDescriptor(Object object) {
+ itemPropertyDescriptors.add
+ (createItemPropertyDescriptor
+ (((ComposeableAdapterFactory)adapterFactory).getRootAdapterFactory(),
+ getResourceLocator(),
+ getString("_UI_DescribedElement_description_feature"),
+ getString("_UI_PropertyDescriptor_description", "_UI_DescribedElement_description_feature", "_UI_DescribedElement_type"),
+ ComrelPackage.Literals.DESCRIBED_ELEMENT__DESCRIPTION,
+ true,
+ false,
+ false,
+ ItemPropertyDescriptor.GENERIC_VALUE_IMAGE,
+ null,
+ null));
+ }
+
+ /**
+ * This adds a property descriptor for the Type feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected void addTypePropertyDescriptor(Object object) {
+ itemPropertyDescriptors.add
+ (createItemPropertyDescriptor
+ (((ComposeableAdapterFactory)adapterFactory).getRootAdapterFactory(),
+ getResourceLocator(),
+ getString("_UI_ConditionCheck_type_feature"),
+ getString("_UI_PropertyDescriptor_description", "_UI_ConditionCheck_type_feature", "_UI_ConditionCheck_type"),
+ ComrelPackage.Literals.CONDITION_CHECK__TYPE,
+ false,
+ false,
+ false,
+ ItemPropertyDescriptor.GENERIC_VALUE_IMAGE,
+ null,
+ null));
+ }
+
+ /**
+ * This adds a property descriptor for the Spec feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected void addSpecPropertyDescriptor(Object object) {
+ itemPropertyDescriptors.add
+ (createItemPropertyDescriptor
+ (((ComposeableAdapterFactory)adapterFactory).getRootAdapterFactory(),
+ getResourceLocator(),
+ getString("_UI_ConditionCheck_spec_feature"),
+ getString("_UI_PropertyDescriptor_description", "_UI_ConditionCheck_spec_feature", "_UI_ConditionCheck_type"),
+ ComrelPackage.Literals.CONDITION_CHECK__SPEC,
+ true,
+ false,
+ false,
+ ItemPropertyDescriptor.GENERIC_VALUE_IMAGE,
+ null,
+ null));
+ }
+
+ /**
+ * This returns ConditionCheck.gif.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public Object getImage(Object object) {
+ return overlayImage(object, getResourceLocator().getImage("full/obj16/ConditionCheck"));
+ }
+
+ /**
+ * This returns the label text for the adapted class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public String getText(Object object) {
+ String label = ((ConditionCheck)object).getName();
+ return label == null || label.length() == 0 ?
+ getString("_UI_ConditionCheck_type") :
+ getString("_UI_ConditionCheck_type") + " " + label;
+ }
+
+ /**
+ * This handles model notifications by calling {@link #updateChildren} to update any cached
+ * children and by creating a viewer notification, which it passes to {@link #fireNotifyChanged}.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public void notifyChanged(Notification notification) {
+ updateChildren(notification);
+
+ switch (notification.getFeatureID(ConditionCheck.class)) {
+ case ComrelPackage.CONDITION_CHECK__NAME:
+ case ComrelPackage.CONDITION_CHECK__DESCRIPTION:
+ case ComrelPackage.CONDITION_CHECK__TYPE:
+ case ComrelPackage.CONDITION_CHECK__SPEC:
+ fireNotifyChanged(new ViewerNotification(notification, notification.getNotifier(), false, true));
+ return;
+ }
+ super.notifyChanged(notification);
+ }
+
+ /**
+ * This adds {@link org.eclipse.emf.edit.command.CommandParameter}s describing the children
+ * that can be created under this object.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ protected void collectNewChildDescriptors(Collection<Object> newChildDescriptors, Object object) {
+ super.collectNewChildDescriptors(newChildDescriptors, object);
+ }
+
+ /**
+ * Return the resource locator for this item provider's resources.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public ResourceLocator getResourceLocator() {
+ return ComrelEditPlugin.INSTANCE;
+ }
+
+}
diff --git a/org.eclipse.emf.refactor.comrel.edit/src/comrel/provider/ConditionalUnitItemProvider.java b/org.eclipse.emf.refactor.comrel.edit/src/comrel/provider/ConditionalUnitItemProvider.java
new file mode 100644
index 0000000..2dd0ce0
--- /dev/null
+++ b/org.eclipse.emf.refactor.comrel.edit/src/comrel/provider/ConditionalUnitItemProvider.java
@@ -0,0 +1,309 @@
+/**
+ * <copyright>
+ * </copyright>
+ *
+ * $Id$
+ */
+package comrel.provider;
+
+
+import comrel.ComrelFactory;
+import comrel.ComrelPackage;
+import comrel.ConditionalUnit;
+
+import java.util.Collection;
+import java.util.List;
+
+import org.eclipse.emf.common.notify.AdapterFactory;
+import org.eclipse.emf.common.notify.Notification;
+
+import org.eclipse.emf.ecore.EStructuralFeature;
+
+import org.eclipse.emf.edit.provider.ComposeableAdapterFactory;
+import org.eclipse.emf.edit.provider.IEditingDomainItemProvider;
+import org.eclipse.emf.edit.provider.IItemLabelProvider;
+import org.eclipse.emf.edit.provider.IItemPropertyDescriptor;
+import org.eclipse.emf.edit.provider.IItemPropertySource;
+import org.eclipse.emf.edit.provider.IStructuredItemContentProvider;
+import org.eclipse.emf.edit.provider.ITreeItemContentProvider;
+import org.eclipse.emf.edit.provider.ItemPropertyDescriptor;
+import org.eclipse.emf.edit.provider.ViewerNotification;
+
+/**
+ * This is the item provider adapter for a {@link comrel.ConditionalUnit} object.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+public class ConditionalUnitItemProvider
+ extends CompositeUnitItemProvider
+ implements
+ IEditingDomainItemProvider,
+ IStructuredItemContentProvider,
+ ITreeItemContentProvider,
+ IItemLabelProvider,
+ IItemPropertySource {
+ /**
+ * This constructs an instance from a factory and a notifier.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public ConditionalUnitItemProvider(AdapterFactory adapterFactory) {
+ super(adapterFactory);
+ }
+
+ /**
+ * This returns the property descriptors for the adapted class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public List<IItemPropertyDescriptor> getPropertyDescriptors(Object object) {
+ if (itemPropertyDescriptors == null) {
+ super.getPropertyDescriptors(object);
+
+ addTypePropertyDescriptor(object);
+ }
+ return itemPropertyDescriptors;
+ }
+
+ /**
+ * This adds a property descriptor for the Type feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected void addTypePropertyDescriptor(Object object) {
+ itemPropertyDescriptors.add
+ (createItemPropertyDescriptor
+ (((ComposeableAdapterFactory)adapterFactory).getRootAdapterFactory(),
+ getResourceLocator(),
+ getString("_UI_ConditionalUnit_type_feature"),
+ getString("_UI_PropertyDescriptor_description", "_UI_ConditionalUnit_type_feature", "_UI_ConditionalUnit_type"),
+ ComrelPackage.Literals.CONDITIONAL_UNIT__TYPE,
+ false,
+ false,
+ false,
+ ItemPropertyDescriptor.GENERIC_VALUE_IMAGE,
+ null,
+ null));
+ }
+
+ /**
+ * This specifies how to implement {@link #getChildren} and is used to deduce an appropriate feature for an
+ * {@link org.eclipse.emf.edit.command.AddCommand}, {@link org.eclipse.emf.edit.command.RemoveCommand} or
+ * {@link org.eclipse.emf.edit.command.MoveCommand} in {@link #createCommand}.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public Collection<? extends EStructuralFeature> getChildrenFeatures(Object object) {
+ if (childrenFeatures == null) {
+ super.getChildrenFeatures(object);
+ childrenFeatures.add(ComrelPackage.Literals.CONDITIONAL_UNIT__IF);
+ childrenFeatures.add(ComrelPackage.Literals.CONDITIONAL_UNIT__HELPER_UNITS);
+ childrenFeatures.add(ComrelPackage.Literals.CONDITIONAL_UNIT__THEN);
+ childrenFeatures.add(ComrelPackage.Literals.CONDITIONAL_UNIT__ELSE);
+ childrenFeatures.add(ComrelPackage.Literals.CONDITIONAL_UNIT__INPUT_PORTS);
+ }
+ return childrenFeatures;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ protected EStructuralFeature getChildFeature(Object object, Object child) {
+ // Check the type of the specified child object and return the proper feature to use for
+ // adding (see {@link AddCommand}) it as a child.
+
+ return super.getChildFeature(object, child);
+ }
+
+ /**
+ * This returns ConditionalUnit.gif.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public Object getImage(Object object) {
+ return overlayImage(object, getResourceLocator().getImage("full/obj16/ConditionalUnit"));
+ }
+
+ /**
+ * This returns the label text for the adapted class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public String getText(Object object) {
+ String label = ((ConditionalUnit)object).getName();
+ return label == null || label.length() == 0 ?
+ getString("_UI_ConditionalUnit_type") :
+ getString("_UI_ConditionalUnit_type") + " " + label;
+ }
+
+ /**
+ * This handles model notifications by calling {@link #updateChildren} to update any cached
+ * children and by creating a viewer notification, which it passes to {@link #fireNotifyChanged}.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public void notifyChanged(Notification notification) {
+ updateChildren(notification);
+
+ switch (notification.getFeatureID(ConditionalUnit.class)) {
+ case ComrelPackage.CONDITIONAL_UNIT__TYPE:
+ fireNotifyChanged(new ViewerNotification(notification, notification.getNotifier(), false, true));
+ return;
+ case ComrelPackage.CONDITIONAL_UNIT__IF:
+ case ComrelPackage.CONDITIONAL_UNIT__HELPER_UNITS:
+ case ComrelPackage.CONDITIONAL_UNIT__THEN:
+ case ComrelPackage.CONDITIONAL_UNIT__ELSE:
+ case ComrelPackage.CONDITIONAL_UNIT__INPUT_PORTS:
+ fireNotifyChanged(new ViewerNotification(notification, notification.getNotifier(), true, false));
+ return;
+ }
+ super.notifyChanged(notification);
+ }
+
+ /**
+ * This adds {@link org.eclipse.emf.edit.command.CommandParameter}s describing the children
+ * that can be created under this object.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ protected void collectNewChildDescriptors(Collection<Object> newChildDescriptors, Object object) {
+ super.collectNewChildDescriptors(newChildDescriptors, object);
+
+ newChildDescriptors.add
+ (createChildParameter
+ (ComrelPackage.Literals.CONDITIONAL_UNIT__IF,
+ ComrelFactory.eINSTANCE.createConditionCheck()));
+
+ newChildDescriptors.add
+ (createChildParameter
+ (ComrelPackage.Literals.CONDITIONAL_UNIT__HELPER_UNITS,
+ ComrelFactory.eINSTANCE.createSingleFeatureUnit()));
+
+ newChildDescriptors.add
+ (createChildParameter
+ (ComrelPackage.Literals.CONDITIONAL_UNIT__HELPER_UNITS,
+ ComrelFactory.eINSTANCE.createMultiFeatureUnit()));
+
+ newChildDescriptors.add
+ (createChildParameter
+ (ComrelPackage.Literals.CONDITIONAL_UNIT__HELPER_UNITS,
+ ComrelFactory.eINSTANCE.createSingleFilterUnit()));
+
+ newChildDescriptors.add
+ (createChildParameter
+ (ComrelPackage.Literals.CONDITIONAL_UNIT__HELPER_UNITS,
+ ComrelFactory.eINSTANCE.createMultiFilterUnit()));
+
+ newChildDescriptors.add
+ (createChildParameter
+ (ComrelPackage.Literals.CONDITIONAL_UNIT__THEN,
+ ComrelFactory.eINSTANCE.createAtomicUnit()));
+
+ newChildDescriptors.add
+ (createChildParameter
+ (ComrelPackage.Literals.CONDITIONAL_UNIT__THEN,
+ ComrelFactory.eINSTANCE.createSequentialUnit()));
+
+ newChildDescriptors.add
+ (createChildParameter
+ (ComrelPackage.Literals.CONDITIONAL_UNIT__THEN,
+ ComrelFactory.eINSTANCE.createConditionalUnit()));
+
+ newChildDescriptors.add
+ (createChildParameter
+ (ComrelPackage.Literals.CONDITIONAL_UNIT__THEN,
+ ComrelFactory.eINSTANCE.createSingleQueuedUnit()));
+
+ newChildDescriptors.add
+ (createChildParameter
+ (ComrelPackage.Literals.CONDITIONAL_UNIT__THEN,
+ ComrelFactory.eINSTANCE.createCartesianQueuedUnit()));
+
+ newChildDescriptors.add
+ (createChildParameter
+ (ComrelPackage.Literals.CONDITIONAL_UNIT__THEN,
+ ComrelFactory.eINSTANCE.createParallelQueuedUnit()));
+
+ newChildDescriptors.add
+ (createChildParameter
+ (ComrelPackage.Literals.CONDITIONAL_UNIT__ELSE,
+ ComrelFactory.eINSTANCE.createAtomicUnit()));
+
+ newChildDescriptors.add
+ (createChildParameter
+ (ComrelPackage.Literals.CONDITIONAL_UNIT__ELSE,
+ ComrelFactory.eINSTANCE.createSequentialUnit()));
+
+ newChildDescriptors.add
+ (createChildParameter
+ (ComrelPackage.Literals.CONDITIONAL_UNIT__ELSE,
+ ComrelFactory.eINSTANCE.createConditionalUnit()));
+
+ newChildDescriptors.add
+ (createChildParameter
+ (ComrelPackage.Literals.CONDITIONAL_UNIT__ELSE,
+ ComrelFactory.eINSTANCE.createSingleQueuedUnit()));
+
+ newChildDescriptors.add
+ (createChildParameter
+ (ComrelPackage.Literals.CONDITIONAL_UNIT__ELSE,
+ ComrelFactory.eINSTANCE.createCartesianQueuedUnit()));
+
+ newChildDescriptors.add
+ (createChildParameter
+ (ComrelPackage.Literals.CONDITIONAL_UNIT__ELSE,
+ ComrelFactory.eINSTANCE.createParallelQueuedUnit()));
+
+ newChildDescriptors.add
+ (createChildParameter
+ (ComrelPackage.Literals.CONDITIONAL_UNIT__INPUT_PORTS,
+ ComrelFactory.eINSTANCE.createSingleInputPort()));
+
+ newChildDescriptors.add
+ (createChildParameter
+ (ComrelPackage.Literals.CONDITIONAL_UNIT__INPUT_PORTS,
+ ComrelFactory.eINSTANCE.createMultiInputPort()));
+ }
+
+ /**
+ * This returns the label text for {@link org.eclipse.emf.edit.command.CreateChildCommand}.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public String getCreateChildText(Object owner, Object feature, Object child, Collection<?> selection) {
+ Object childFeature = feature;
+ Object childObject = child;
+
+ boolean qualify =
+ childFeature == ComrelPackage.Literals.CONDITIONAL_UNIT__THEN ||
+ childFeature == ComrelPackage.Literals.CONDITIONAL_UNIT__ELSE;
+
+ if (qualify) {
+ return getString
+ ("_UI_CreateChild_text2",
+ new Object[] { getTypeText(childObject), getFeatureText(childFeature), getTypeText(owner) });
+ }
+ return super.getCreateChildText(owner, feature, child, selection);
+ }
+
+}
diff --git a/org.eclipse.emf.refactor.comrel.edit/src/comrel/provider/FeatureHelperItemProvider.java b/org.eclipse.emf.refactor.comrel.edit/src/comrel/provider/FeatureHelperItemProvider.java
new file mode 100644
index 0000000..e28ae52
--- /dev/null
+++ b/org.eclipse.emf.refactor.comrel.edit/src/comrel/provider/FeatureHelperItemProvider.java
@@ -0,0 +1,156 @@
+/**
+ * <copyright>
+ * </copyright>
+ *
+ * $Id$
+ */
+package comrel.provider;
+
+
+import comrel.ComrelFactory;
+import comrel.ComrelPackage;
+import comrel.FeatureHelper;
+
+import java.util.Collection;
+import java.util.List;
+
+import org.eclipse.emf.common.notify.AdapterFactory;
+import org.eclipse.emf.common.notify.Notification;
+
+import org.eclipse.emf.ecore.EStructuralFeature;
+
+import org.eclipse.emf.edit.provider.IEditingDomainItemProvider;
+import org.eclipse.emf.edit.provider.IItemLabelProvider;
+import org.eclipse.emf.edit.provider.IItemPropertyDescriptor;
+import org.eclipse.emf.edit.provider.IItemPropertySource;
+import org.eclipse.emf.edit.provider.IStructuredItemContentProvider;
+import org.eclipse.emf.edit.provider.ITreeItemContentProvider;
+import org.eclipse.emf.edit.provider.ViewerNotification;
+
+/**
+ * This is the item provider adapter for a {@link comrel.FeatureHelper} object.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+public class FeatureHelperItemProvider
+ extends HelperItemProvider
+ implements
+ IEditingDomainItemProvider,
+ IStructuredItemContentProvider,
+ ITreeItemContentProvider,
+ IItemLabelProvider,
+ IItemPropertySource {
+ /**
+ * This constructs an instance from a factory and a notifier.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public FeatureHelperItemProvider(AdapterFactory adapterFactory) {
+ super(adapterFactory);
+ }
+
+ /**
+ * This returns the property descriptors for the adapted class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public List<IItemPropertyDescriptor> getPropertyDescriptors(Object object) {
+ if (itemPropertyDescriptors == null) {
+ super.getPropertyDescriptors(object);
+
+ }
+ return itemPropertyDescriptors;
+ }
+
+ /**
+ * This specifies how to implement {@link #getChildren} and is used to deduce an appropriate feature for an
+ * {@link org.eclipse.emf.edit.command.AddCommand}, {@link org.eclipse.emf.edit.command.RemoveCommand} or
+ * {@link org.eclipse.emf.edit.command.MoveCommand} in {@link #createCommand}.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public Collection<? extends EStructuralFeature> getChildrenFeatures(Object object) {
+ if (childrenFeatures == null) {
+ super.getChildrenFeatures(object);
+ childrenFeatures.add(ComrelPackage.Literals.FEATURE_HELPER__INPUT_PORT);
+ childrenFeatures.add(ComrelPackage.Literals.FEATURE_HELPER__SECONDARY_INPUT_PORTS);
+ }
+ return childrenFeatures;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ protected EStructuralFeature getChildFeature(Object object, Object child) {
+ // Check the type of the specified child object and return the proper feature to use for
+ // adding (see {@link AddCommand}) it as a child.
+
+ return super.getChildFeature(object, child);
+ }
+
+ /**
+ * This returns the label text for the adapted class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public String getText(Object object) {
+ String label = ((FeatureHelper)object).getName();
+ return label == null || label.length() == 0 ?
+ getString("_UI_FeatureHelper_type") :
+ getString("_UI_FeatureHelper_type") + " " + label;
+ }
+
+ /**
+ * This handles model notifications by calling {@link #updateChildren} to update any cached
+ * children and by creating a viewer notification, which it passes to {@link #fireNotifyChanged}.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public void notifyChanged(Notification notification) {
+ updateChildren(notification);
+
+ switch (notification.getFeatureID(FeatureHelper.class)) {
+ case ComrelPackage.FEATURE_HELPER__INPUT_PORT:
+ case ComrelPackage.FEATURE_HELPER__SECONDARY_INPUT_PORTS:
+ fireNotifyChanged(new ViewerNotification(notification, notification.getNotifier(), true, false));
+ return;
+ }
+ super.notifyChanged(notification);
+ }
+
+ /**
+ * This adds {@link org.eclipse.emf.edit.command.CommandParameter}s describing the children
+ * that can be created under this object.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ protected void collectNewChildDescriptors(Collection<Object> newChildDescriptors, Object object) {
+ super.collectNewChildDescriptors(newChildDescriptors, object);
+
+ newChildDescriptors.add
+ (createChildParameter
+ (ComrelPackage.Literals.FEATURE_HELPER__INPUT_PORT,
+ ComrelFactory.eINSTANCE.createSingleInputPort()));
+
+ newChildDescriptors.add
+ (createChildParameter
+ (ComrelPackage.Literals.FEATURE_HELPER__SECONDARY_INPUT_PORTS,
+ ComrelFactory.eINSTANCE.createMultiInputPort()));
+ }
+
+}
diff --git a/org.eclipse.emf.refactor.comrel.edit/src/comrel/provider/FeatureUnitItemProvider.java b/org.eclipse.emf.refactor.comrel.edit/src/comrel/provider/FeatureUnitItemProvider.java
new file mode 100644
index 0000000..e609d8e
--- /dev/null
+++ b/org.eclipse.emf.refactor.comrel.edit/src/comrel/provider/FeatureUnitItemProvider.java
@@ -0,0 +1,103 @@
+/**
+ * <copyright>
+ * </copyright>
+ *
+ * $Id$
+ */
+package comrel.provider;
+
+
+import comrel.FeatureUnit;
+
+import java.util.Collection;
+import java.util.List;
+
+import org.eclipse.emf.common.notify.AdapterFactory;
+import org.eclipse.emf.common.notify.Notification;
+
+import org.eclipse.emf.edit.provider.IEditingDomainItemProvider;
+import org.eclipse.emf.edit.provider.IItemLabelProvider;
+import org.eclipse.emf.edit.provider.IItemPropertyDescriptor;
+import org.eclipse.emf.edit.provider.IItemPropertySource;
+import org.eclipse.emf.edit.provider.IStructuredItemContentProvider;
+import org.eclipse.emf.edit.provider.ITreeItemContentProvider;
+
+/**
+ * This is the item provider adapter for a {@link comrel.FeatureUnit} object.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+public class FeatureUnitItemProvider
+ extends HelperUnitItemProvider
+ implements
+ IEditingDomainItemProvider,
+ IStructuredItemContentProvider,
+ ITreeItemContentProvider,
+ IItemLabelProvider,
+ IItemPropertySource {
+ /**
+ * This constructs an instance from a factory and a notifier.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public FeatureUnitItemProvider(AdapterFactory adapterFactory) {
+ super(adapterFactory);
+ }
+
+ /**
+ * This returns the property descriptors for the adapted class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public List<IItemPropertyDescriptor> getPropertyDescriptors(Object object) {
+ if (itemPropertyDescriptors == null) {
+ super.getPropertyDescriptors(object);
+
+ }
+ return itemPropertyDescriptors;
+ }
+
+ /**
+ * This returns the label text for the adapted class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public String getText(Object object) {
+ String label = ((FeatureUnit)object).getName();
+ return label == null || label.length() == 0 ?
+ getString("_UI_FeatureUnit_type") :
+ getString("_UI_FeatureUnit_type") + " " + label;
+ }
+
+ /**
+ * This handles model notifications by calling {@link #updateChildren} to update any cached
+ * children and by creating a viewer notification, which it passes to {@link #fireNotifyChanged}.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public void notifyChanged(Notification notification) {
+ updateChildren(notification);
+ super.notifyChanged(notification);
+ }
+
+ /**
+ * This adds {@link org.eclipse.emf.edit.command.CommandParameter}s describing the children
+ * that can be created under this object.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ protected void collectNewChildDescriptors(Collection<Object> newChildDescriptors, Object object) {
+ super.collectNewChildDescriptors(newChildDescriptors, object);
+ }
+
+}
diff --git a/org.eclipse.emf.refactor.comrel.edit/src/comrel/provider/FilterHelperItemProvider.java b/org.eclipse.emf.refactor.comrel.edit/src/comrel/provider/FilterHelperItemProvider.java
new file mode 100644
index 0000000..46d0ab9
--- /dev/null
+++ b/org.eclipse.emf.refactor.comrel.edit/src/comrel/provider/FilterHelperItemProvider.java
@@ -0,0 +1,149 @@
+/**
+ * <copyright>
+ * </copyright>
+ *
+ * $Id$
+ */
+package comrel.provider;
+
+
+import comrel.ComrelFactory;
+import comrel.ComrelPackage;
+import comrel.FilterHelper;
+
+import java.util.Collection;
+import java.util.List;
+
+import org.eclipse.emf.common.notify.AdapterFactory;
+import org.eclipse.emf.common.notify.Notification;
+
+import org.eclipse.emf.ecore.EStructuralFeature;
+
+import org.eclipse.emf.edit.provider.IEditingDomainItemProvider;
+import org.eclipse.emf.edit.provider.IItemLabelProvider;
+import org.eclipse.emf.edit.provider.IItemPropertyDescriptor;
+import org.eclipse.emf.edit.provider.IItemPropertySource;
+import org.eclipse.emf.edit.provider.IStructuredItemContentProvider;
+import org.eclipse.emf.edit.provider.ITreeItemContentProvider;
+import org.eclipse.emf.edit.provider.ViewerNotification;
+
+/**
+ * This is the item provider adapter for a {@link comrel.FilterHelper} object.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+public class FilterHelperItemProvider
+ extends HelperItemProvider
+ implements
+ IEditingDomainItemProvider,
+ IStructuredItemContentProvider,
+ ITreeItemContentProvider,
+ IItemLabelProvider,
+ IItemPropertySource {
+ /**
+ * This constructs an instance from a factory and a notifier.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public FilterHelperItemProvider(AdapterFactory adapterFactory) {
+ super(adapterFactory);
+ }
+
+ /**
+ * This returns the property descriptors for the adapted class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public List<IItemPropertyDescriptor> getPropertyDescriptors(Object object) {
+ if (itemPropertyDescriptors == null) {
+ super.getPropertyDescriptors(object);
+
+ }
+ return itemPropertyDescriptors;
+ }
+
+ /**
+ * This specifies how to implement {@link #getChildren} and is used to deduce an appropriate feature for an
+ * {@link org.eclipse.emf.edit.command.AddCommand}, {@link org.eclipse.emf.edit.command.RemoveCommand} or
+ * {@link org.eclipse.emf.edit.command.MoveCommand} in {@link #createCommand}.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public Collection<? extends EStructuralFeature> getChildrenFeatures(Object object) {
+ if (childrenFeatures == null) {
+ super.getChildrenFeatures(object);
+ childrenFeatures.add(ComrelPackage.Literals.FILTER_HELPER__INPUT_PORT);
+ }
+ return childrenFeatures;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ protected EStructuralFeature getChildFeature(Object object, Object child) {
+ // Check the type of the specified child object and return the proper feature to use for
+ // adding (see {@link AddCommand}) it as a child.
+
+ return super.getChildFeature(object, child);
+ }
+
+ /**
+ * This returns the label text for the adapted class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public String getText(Object object) {
+ String label = ((FilterHelper)object).getName();
+ return label == null || label.length() == 0 ?
+ getString("_UI_FilterHelper_type") :
+ getString("_UI_FilterHelper_type") + " " + label;
+ }
+
+ /**
+ * This handles model notifications by calling {@link #updateChildren} to update any cached
+ * children and by creating a viewer notification, which it passes to {@link #fireNotifyChanged}.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public void notifyChanged(Notification notification) {
+ updateChildren(notification);
+
+ switch (notification.getFeatureID(FilterHelper.class)) {
+ case ComrelPackage.FILTER_HELPER__INPUT_PORT:
+ fireNotifyChanged(new ViewerNotification(notification, notification.getNotifier(), true, false));
+ return;
+ }
+ super.notifyChanged(notification);
+ }
+
+ /**
+ * This adds {@link org.eclipse.emf.edit.command.CommandParameter}s describing the children
+ * that can be created under this object.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ protected void collectNewChildDescriptors(Collection<Object> newChildDescriptors, Object object) {
+ super.collectNewChildDescriptors(newChildDescriptors, object);
+
+ newChildDescriptors.add
+ (createChildParameter
+ (ComrelPackage.Literals.FILTER_HELPER__INPUT_PORT,
+ ComrelFactory.eINSTANCE.createMultiInputPort()));
+ }
+
+}
diff --git a/org.eclipse.emf.refactor.comrel.edit/src/comrel/provider/FilterUnitItemProvider.java b/org.eclipse.emf.refactor.comrel.edit/src/comrel/provider/FilterUnitItemProvider.java
new file mode 100644
index 0000000..9d217ae
--- /dev/null
+++ b/org.eclipse.emf.refactor.comrel.edit/src/comrel/provider/FilterUnitItemProvider.java
@@ -0,0 +1,103 @@
+/**
+ * <copyright>
+ * </copyright>
+ *
+ * $Id$
+ */
+package comrel.provider;
+
+
+import comrel.FilterUnit;
+
+import java.util.Collection;
+import java.util.List;
+
+import org.eclipse.emf.common.notify.AdapterFactory;
+import org.eclipse.emf.common.notify.Notification;
+
+import org.eclipse.emf.edit.provider.IEditingDomainItemProvider;
+import org.eclipse.emf.edit.provider.IItemLabelProvider;
+import org.eclipse.emf.edit.provider.IItemPropertyDescriptor;
+import org.eclipse.emf.edit.provider.IItemPropertySource;
+import org.eclipse.emf.edit.provider.IStructuredItemContentProvider;
+import org.eclipse.emf.edit.provider.ITreeItemContentProvider;
+
+/**
+ * This is the item provider adapter for a {@link comrel.FilterUnit} object.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+public class FilterUnitItemProvider
+ extends HelperUnitItemProvider
+ implements
+ IEditingDomainItemProvider,
+ IStructuredItemContentProvider,
+ ITreeItemContentProvider,
+ IItemLabelProvider,
+ IItemPropertySource {
+ /**
+ * This constructs an instance from a factory and a notifier.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public FilterUnitItemProvider(AdapterFactory adapterFactory) {
+ super(adapterFactory);
+ }
+
+ /**
+ * This returns the property descriptors for the adapted class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public List<IItemPropertyDescriptor> getPropertyDescriptors(Object object) {
+ if (itemPropertyDescriptors == null) {
+ super.getPropertyDescriptors(object);
+
+ }
+ return itemPropertyDescriptors;
+ }
+
+ /**
+ * This returns the label text for the adapted class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public String getText(Object object) {
+ String label = ((FilterUnit)object).getName();
+ return label == null || label.length() == 0 ?
+ getString("_UI_FilterUnit_type") :
+ getString("_UI_FilterUnit_type") + " " + label;
+ }
+
+ /**
+ * This handles model notifications by calling {@link #updateChildren} to update any cached
+ * children and by creating a viewer notification, which it passes to {@link #fireNotifyChanged}.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public void notifyChanged(Notification notification) {
+ updateChildren(notification);
+ super.notifyChanged(notification);
+ }
+
+ /**
+ * This adds {@link org.eclipse.emf.edit.command.CommandParameter}s describing the children
+ * that can be created under this object.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ protected void collectNewChildDescriptors(Collection<Object> newChildDescriptors, Object object) {
+ super.collectNewChildDescriptors(newChildDescriptors, object);
+ }
+
+}
diff --git a/org.eclipse.emf.refactor.comrel.edit/src/comrel/provider/HelperItemProvider.java b/org.eclipse.emf.refactor.comrel.edit/src/comrel/provider/HelperItemProvider.java
new file mode 100644
index 0000000..26a3106
--- /dev/null
+++ b/org.eclipse.emf.refactor.comrel.edit/src/comrel/provider/HelperItemProvider.java
@@ -0,0 +1,222 @@
+/**
+ * <copyright>
+ * </copyright>
+ *
+ * $Id$
+ */
+package comrel.provider;
+
+
+import comrel.ComrelPackage;
+import comrel.Helper;
+
+import java.util.Collection;
+import java.util.List;
+
+import org.eclipse.emf.common.notify.AdapterFactory;
+import org.eclipse.emf.common.notify.Notification;
+
+import org.eclipse.emf.common.util.ResourceLocator;
+
+import org.eclipse.emf.edit.provider.ComposeableAdapterFactory;
+import org.eclipse.emf.edit.provider.IEditingDomainItemProvider;
+import org.eclipse.emf.edit.provider.IItemLabelProvider;
+import org.eclipse.emf.edit.provider.IItemPropertyDescriptor;
+import org.eclipse.emf.edit.provider.IItemPropertySource;
+import org.eclipse.emf.edit.provider.IStructuredItemContentProvider;
+import org.eclipse.emf.edit.provider.ITreeItemContentProvider;
+import org.eclipse.emf.edit.provider.ItemPropertyDescriptor;
+import org.eclipse.emf.edit.provider.ItemProviderAdapter;
+import org.eclipse.emf.edit.provider.ViewerNotification;
+
+/**
+ * This is the item provider adapter for a {@link comrel.Helper} object.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+public class HelperItemProvider
+ extends ItemProviderAdapter
+ implements
+ IEditingDomainItemProvider,
+ IStructuredItemContentProvider,
+ ITreeItemContentProvider,
+ IItemLabelProvider,
+ IItemPropertySource {
+ /**
+ * This constructs an instance from a factory and a notifier.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public HelperItemProvider(AdapterFactory adapterFactory) {
+ super(adapterFactory);
+ }
+
+ /**
+ * This returns the property descriptors for the adapted class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public List<IItemPropertyDescriptor> getPropertyDescriptors(Object object) {
+ if (itemPropertyDescriptors == null) {
+ super.getPropertyDescriptors(object);
+
+ addNamePropertyDescriptor(object);
+ addDescriptionPropertyDescriptor(object);
+ addHelperIdPropertyDescriptor(object);
+ addNamespaceUriPropertyDescriptor(object);
+ }
+ return itemPropertyDescriptors;
+ }
+
+ /**
+ * This adds a property descriptor for the Name feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected void addNamePropertyDescriptor(Object object) {
+ itemPropertyDescriptors.add
+ (createItemPropertyDescriptor
+ (((ComposeableAdapterFactory)adapterFactory).getRootAdapterFactory(),
+ getResourceLocator(),
+ getString("_UI_NamedElement_name_feature"),
+ getString("_UI_PropertyDescriptor_description", "_UI_NamedElement_name_feature", "_UI_NamedElement_type"),
+ ComrelPackage.Literals.NAMED_ELEMENT__NAME,
+ true,
+ false,
+ false,
+ ItemPropertyDescriptor.GENERIC_VALUE_IMAGE,
+ null,
+ null));
+ }
+
+ /**
+ * This adds a property descriptor for the Description feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected void addDescriptionPropertyDescriptor(Object object) {
+ itemPropertyDescriptors.add
+ (createItemPropertyDescriptor
+ (((ComposeableAdapterFactory)adapterFactory).getRootAdapterFactory(),
+ getResourceLocator(),
+ getString("_UI_DescribedElement_description_feature"),
+ getString("_UI_PropertyDescriptor_description", "_UI_DescribedElement_description_feature", "_UI_DescribedElement_type"),
+ ComrelPackage.Literals.DESCRIBED_ELEMENT__DESCRIPTION,
+ true,
+ false,
+ false,
+ ItemPropertyDescriptor.GENERIC_VALUE_IMAGE,
+ null,
+ null));
+ }
+
+ /**
+ * This adds a property descriptor for the Helper Id feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected void addHelperIdPropertyDescriptor(Object object) {
+ itemPropertyDescriptors.add
+ (createItemPropertyDescriptor
+ (((ComposeableAdapterFactory)adapterFactory).getRootAdapterFactory(),
+ getResourceLocator(),
+ getString("_UI_Helper_helperId_feature"),
+ getString("_UI_PropertyDescriptor_description", "_UI_Helper_helperId_feature", "_UI_Helper_type"),
+ ComrelPackage.Literals.HELPER__HELPER_ID,
+ true,
+ false,
+ false,
+ ItemPropertyDescriptor.GENERIC_VALUE_IMAGE,
+ null,
+ null));
+ }
+
+ /**
+ * This adds a property descriptor for the Namespace Uri feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected void addNamespaceUriPropertyDescriptor(Object object) {
+ itemPropertyDescriptors.add
+ (createItemPropertyDescriptor
+ (((ComposeableAdapterFactory)adapterFactory).getRootAdapterFactory(),
+ getResourceLocator(),
+ getString("_UI_Helper_namespaceUri_feature"),
+ getString("_UI_PropertyDescriptor_description", "_UI_Helper_namespaceUri_feature", "_UI_Helper_type"),
+ ComrelPackage.Literals.HELPER__NAMESPACE_URI,
+ true,
+ false,
+ false,
+ ItemPropertyDescriptor.GENERIC_VALUE_IMAGE,
+ null,
+ null));
+ }
+
+ /**
+ * This returns the label text for the adapted class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public String getText(Object object) {
+ String label = ((Helper)object).getName();
+ return label == null || label.length() == 0 ?
+ getString("_UI_Helper_type") :
+ getString("_UI_Helper_type") + " " + label;
+ }
+
+ /**
+ * This handles model notifications by calling {@link #updateChildren} to update any cached
+ * children and by creating a viewer notification, which it passes to {@link #fireNotifyChanged}.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public void notifyChanged(Notification notification) {
+ updateChildren(notification);
+
+ switch (notification.getFeatureID(Helper.class)) {
+ case ComrelPackage.HELPER__NAME:
+ case ComrelPackage.HELPER__DESCRIPTION:
+ case ComrelPackage.HELPER__HELPER_ID:
+ case ComrelPackage.HELPER__NAMESPACE_URI:
+ fireNotifyChanged(new ViewerNotification(notification, notification.getNotifier(), false, true));
+ return;
+ }
+ super.notifyChanged(notification);
+ }
+
+ /**
+ * This adds {@link org.eclipse.emf.edit.command.CommandParameter}s describing the children
+ * that can be created under this object.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ protected void collectNewChildDescriptors(Collection<Object> newChildDescriptors, Object object) {
+ super.collectNewChildDescriptors(newChildDescriptors, object);
+ }
+
+ /**
+ * Return the resource locator for this item provider's resources.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public ResourceLocator getResourceLocator() {
+ return ComrelEditPlugin.INSTANCE;
+ }
+
+}
diff --git a/org.eclipse.emf.refactor.comrel.edit/src/comrel/provider/HelperUnitItemProvider.java b/org.eclipse.emf.refactor.comrel.edit/src/comrel/provider/HelperUnitItemProvider.java
new file mode 100644
index 0000000..0b7addb
--- /dev/null
+++ b/org.eclipse.emf.refactor.comrel.edit/src/comrel/provider/HelperUnitItemProvider.java
@@ -0,0 +1,222 @@
+/**
+ * <copyright>
+ * </copyright>
+ *
+ * $Id$
+ */
+package comrel.provider;
+
+
+import comrel.ComrelPackage;
+import comrel.HelperUnit;
+
+import java.util.Collection;
+import java.util.List;
+
+import org.eclipse.emf.common.notify.AdapterFactory;
+import org.eclipse.emf.common.notify.Notification;
+
+import org.eclipse.emf.common.util.ResourceLocator;
+
+import org.eclipse.emf.edit.provider.ComposeableAdapterFactory;
+import org.eclipse.emf.edit.provider.IEditingDomainItemProvider;
+import org.eclipse.emf.edit.provider.IItemLabelProvider;
+import org.eclipse.emf.edit.provider.IItemPropertyDescriptor;
+import org.eclipse.emf.edit.provider.IItemPropertySource;
+import org.eclipse.emf.edit.provider.IStructuredItemContentProvider;
+import org.eclipse.emf.edit.provider.ITreeItemContentProvider;
+import org.eclipse.emf.edit.provider.ItemPropertyDescriptor;
+import org.eclipse.emf.edit.provider.ItemProviderAdapter;
+import org.eclipse.emf.edit.provider.ViewerNotification;
+
+/**
+ * This is the item provider adapter for a {@link comrel.HelperUnit} object.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+public class HelperUnitItemProvider
+ extends ItemProviderAdapter
+ implements
+ IEditingDomainItemProvider,
+ IStructuredItemContentProvider,
+ ITreeItemContentProvider,
+ IItemLabelProvider,
+ IItemPropertySource {
+ /**
+ * This constructs an instance from a factory and a notifier.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public HelperUnitItemProvider(AdapterFactory adapterFactory) {
+ super(adapterFactory);
+ }
+
+ /**
+ * This returns the property descriptors for the adapted class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public List<IItemPropertyDescriptor> getPropertyDescriptors(Object object) {
+ if (itemPropertyDescriptors == null) {
+ super.getPropertyDescriptors(object);
+
+ addNamePropertyDescriptor(object);
+ addDescriptionPropertyDescriptor(object);
+ addHelperUnitIdPropertyDescriptor(object);
+ addNamespaceUriPropertyDescriptor(object);
+ }
+ return itemPropertyDescriptors;
+ }
+
+ /**
+ * This adds a property descriptor for the Name feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected void addNamePropertyDescriptor(Object object) {
+ itemPropertyDescriptors.add
+ (createItemPropertyDescriptor
+ (((ComposeableAdapterFactory)adapterFactory).getRootAdapterFactory(),
+ getResourceLocator(),
+ getString("_UI_NamedElement_name_feature"),
+ getString("_UI_PropertyDescriptor_description", "_UI_NamedElement_name_feature", "_UI_NamedElement_type"),
+ ComrelPackage.Literals.NAMED_ELEMENT__NAME,
+ true,
+ false,
+ false,
+ ItemPropertyDescriptor.GENERIC_VALUE_IMAGE,
+ null,
+ null));
+ }
+
+ /**
+ * This adds a property descriptor for the Description feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected void addDescriptionPropertyDescriptor(Object object) {
+ itemPropertyDescriptors.add
+ (createItemPropertyDescriptor
+ (((ComposeableAdapterFactory)adapterFactory).getRootAdapterFactory(),
+ getResourceLocator(),
+ getString("_UI_DescribedElement_description_feature"),
+ getString("_UI_PropertyDescriptor_description", "_UI_DescribedElement_description_feature", "_UI_DescribedElement_type"),
+ ComrelPackage.Literals.DESCRIBED_ELEMENT__DESCRIPTION,
+ true,
+ false,
+ false,
+ ItemPropertyDescriptor.GENERIC_VALUE_IMAGE,
+ null,
+ null));
+ }
+
+ /**
+ * This adds a property descriptor for the Helper Unit Id feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected void addHelperUnitIdPropertyDescriptor(Object object) {
+ itemPropertyDescriptors.add
+ (createItemPropertyDescriptor
+ (((ComposeableAdapterFactory)adapterFactory).getRootAdapterFactory(),
+ getResourceLocator(),
+ getString("_UI_HelperUnit_helperUnitId_feature"),
+ getString("_UI_PropertyDescriptor_description", "_UI_HelperUnit_helperUnitId_feature", "_UI_HelperUnit_type"),
+ ComrelPackage.Literals.HELPER_UNIT__HELPER_UNIT_ID,
+ true,
+ false,
+ false,
+ ItemPropertyDescriptor.GENERIC_VALUE_IMAGE,
+ null,
+ null));
+ }
+
+ /**
+ * This adds a property descriptor for the Namespace Uri feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected void addNamespaceUriPropertyDescriptor(Object object) {
+ itemPropertyDescriptors.add
+ (createItemPropertyDescriptor
+ (((ComposeableAdapterFactory)adapterFactory).getRootAdapterFactory(),
+ getResourceLocator(),
+ getString("_UI_HelperUnit_namespaceUri_feature"),
+ getString("_UI_PropertyDescriptor_description", "_UI_HelperUnit_namespaceUri_feature", "_UI_HelperUnit_type"),
+ ComrelPackage.Literals.HELPER_UNIT__NAMESPACE_URI,
+ true,
+ false,
+ false,
+ ItemPropertyDescriptor.GENERIC_VALUE_IMAGE,
+ null,
+ null));
+ }
+
+ /**
+ * This returns the label text for the adapted class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public String getText(Object object) {
+ String label = ((HelperUnit)object).getName();
+ return label == null || label.length() == 0 ?
+ getString("_UI_HelperUnit_type") :
+ getString("_UI_HelperUnit_type") + " " + label;
+ }
+
+ /**
+ * This handles model notifications by calling {@link #updateChildren} to update any cached
+ * children and by creating a viewer notification, which it passes to {@link #fireNotifyChanged}.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public void notifyChanged(Notification notification) {
+ updateChildren(notification);
+
+ switch (notification.getFeatureID(HelperUnit.class)) {
+ case ComrelPackage.HELPER_UNIT__NAME:
+ case ComrelPackage.HELPER_UNIT__DESCRIPTION:
+ case ComrelPackage.HELPER_UNIT__HELPER_UNIT_ID:
+ case ComrelPackage.HELPER_UNIT__NAMESPACE_URI:
+ fireNotifyChanged(new ViewerNotification(notification, notification.getNotifier(), false, true));
+ return;
+ }
+ super.notifyChanged(notification);
+ }
+
+ /**
+ * This adds {@link org.eclipse.emf.edit.command.CommandParameter}s describing the children
+ * that can be created under this object.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ protected void collectNewChildDescriptors(Collection<Object> newChildDescriptors, Object object) {
+ super.collectNewChildDescriptors(newChildDescriptors, object);
+ }
+
+ /**
+ * Return the resource locator for this item provider's resources.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public ResourceLocator getResourceLocator() {
+ return ComrelEditPlugin.INSTANCE;
+ }
+
+}
diff --git a/org.eclipse.emf.refactor.comrel.edit/src/comrel/provider/InputPortItemProvider.java b/org.eclipse.emf.refactor.comrel.edit/src/comrel/provider/InputPortItemProvider.java
new file mode 100644
index 0000000..37e0fd4
--- /dev/null
+++ b/org.eclipse.emf.refactor.comrel.edit/src/comrel/provider/InputPortItemProvider.java
@@ -0,0 +1,103 @@
+/**
+ * <copyright>
+ * </copyright>
+ *
+ * $Id$
+ */
+package comrel.provider;
+
+
+import comrel.InputPort;
+
+import java.util.Collection;
+import java.util.List;
+
+import org.eclipse.emf.common.notify.AdapterFactory;
+import org.eclipse.emf.common.notify.Notification;
+
+import org.eclipse.emf.edit.provider.IEditingDomainItemProvider;
+import org.eclipse.emf.edit.provider.IItemLabelProvider;
+import org.eclipse.emf.edit.provider.IItemPropertyDescriptor;
+import org.eclipse.emf.edit.provider.IItemPropertySource;
+import org.eclipse.emf.edit.provider.IStructuredItemContentProvider;
+import org.eclipse.emf.edit.provider.ITreeItemContentProvider;
+
+/**
+ * This is the item provider adapter for a {@link comrel.InputPort} object.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+public class InputPortItemProvider
+ extends PortItemProvider
+ implements
+ IEditingDomainItemProvider,
+ IStructuredItemContentProvider,
+ ITreeItemContentProvider,
+ IItemLabelProvider,
+ IItemPropertySource {
+ /**
+ * This constructs an instance from a factory and a notifier.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public InputPortItemProvider(AdapterFactory adapterFactory) {
+ super(adapterFactory);
+ }
+
+ /**
+ * This returns the property descriptors for the adapted class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public List<IItemPropertyDescriptor> getPropertyDescriptors(Object object) {
+ if (itemPropertyDescriptors == null) {
+ super.getPropertyDescriptors(object);
+
+ }
+ return itemPropertyDescriptors;
+ }
+
+ /**
+ * This returns the label text for the adapted class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public String getText(Object object) {
+ String label = ((InputPort)object).getName();
+ return label == null || label.length() == 0 ?
+ getString("_UI_InputPort_type") :
+ getString("_UI_InputPort_type") + " " + label;
+ }
+
+ /**
+ * This handles model notifications by calling {@link #updateChildren} to update any cached
+ * children and by creating a viewer notification, which it passes to {@link #fireNotifyChanged}.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public void notifyChanged(Notification notification) {
+ updateChildren(notification);
+ super.notifyChanged(notification);
+ }
+
+ /**
+ * This adds {@link org.eclipse.emf.edit.command.CommandParameter}s describing the children
+ * that can be created under this object.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ protected void collectNewChildDescriptors(Collection<Object> newChildDescriptors, Object object) {
+ super.collectNewChildDescriptors(newChildDescriptors, object);
+ }
+
+}
diff --git a/org.eclipse.emf.refactor.comrel.edit/src/comrel/provider/ModelRefactoringItemProvider.java b/org.eclipse.emf.refactor.comrel.edit/src/comrel/provider/ModelRefactoringItemProvider.java
new file mode 100644
index 0000000..28e48df
--- /dev/null
+++ b/org.eclipse.emf.refactor.comrel.edit/src/comrel/provider/ModelRefactoringItemProvider.java
@@ -0,0 +1,298 @@
+/**
+ * <copyright>
+ * </copyright>
+ *
+ * $Id$
+ */
+package comrel.provider;
+
+
+import comrel.ComrelFactory;
+import comrel.ComrelPackage;
+import comrel.ModelRefactoring;
+
+import java.util.Collection;
+import java.util.List;
+
+import org.eclipse.emf.common.notify.AdapterFactory;
+import org.eclipse.emf.common.notify.Notification;
+
+import org.eclipse.emf.common.util.ResourceLocator;
+
+import org.eclipse.emf.ecore.EStructuralFeature;
+
+import org.eclipse.emf.edit.provider.ComposeableAdapterFactory;
+import org.eclipse.emf.edit.provider.IEditingDomainItemProvider;
+import org.eclipse.emf.edit.provider.IItemLabelProvider;
+import org.eclipse.emf.edit.provider.IItemPropertyDescriptor;
+import org.eclipse.emf.edit.provider.IItemPropertySource;
+import org.eclipse.emf.edit.provider.IStructuredItemContentProvider;
+import org.eclipse.emf.edit.provider.ITreeItemContentProvider;
+import org.eclipse.emf.edit.provider.ItemPropertyDescriptor;
+import org.eclipse.emf.edit.provider.ItemProviderAdapter;
+import org.eclipse.emf.edit.provider.ViewerNotification;
+
+/**
+ * This is the item provider adapter for a {@link comrel.ModelRefactoring} object.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+public class ModelRefactoringItemProvider
+ extends ItemProviderAdapter
+ implements
+ IEditingDomainItemProvider,
+ IStructuredItemContentProvider,
+ ITreeItemContentProvider,
+ IItemLabelProvider,
+ IItemPropertySource {
+ /**
+ * This constructs an instance from a factory and a notifier.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public ModelRefactoringItemProvider(AdapterFactory adapterFactory) {
+ super(adapterFactory);
+ }
+
+ /**
+ * This returns the property descriptors for the adapted class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public List<IItemPropertyDescriptor> getPropertyDescriptors(Object object) {
+ if (itemPropertyDescriptors == null) {
+ super.getPropertyDescriptors(object);
+
+ addNamePropertyDescriptor(object);
+ addDescriptionPropertyDescriptor(object);
+ addRefIdPropertyDescriptor(object);
+ addLabelPropertyDescriptor(object);
+ addNamespaceUriPropertyDescriptor(object);
+ }
+ return itemPropertyDescriptors;
+ }
+
+ /**
+ * This adds a property descriptor for the Name feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected void addNamePropertyDescriptor(Object object) {
+ itemPropertyDescriptors.add
+ (createItemPropertyDescriptor
+ (((ComposeableAdapterFactory)adapterFactory).getRootAdapterFactory(),
+ getResourceLocator(),
+ getString("_UI_NamedElement_name_feature"),
+ getString("_UI_PropertyDescriptor_description", "_UI_NamedElement_name_feature", "_UI_NamedElement_type"),
+ ComrelPackage.Literals.NAMED_ELEMENT__NAME,
+ true,
+ false,
+ false,
+ ItemPropertyDescriptor.GENERIC_VALUE_IMAGE,
+ null,
+ null));
+ }
+
+ /**
+ * This adds a property descriptor for the Description feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected void addDescriptionPropertyDescriptor(Object object) {
+ itemPropertyDescriptors.add
+ (createItemPropertyDescriptor
+ (((ComposeableAdapterFactory)adapterFactory).getRootAdapterFactory(),
+ getResourceLocator(),
+ getString("_UI_DescribedElement_description_feature"),
+ getString("_UI_PropertyDescriptor_description", "_UI_DescribedElement_description_feature", "_UI_DescribedElement_type"),
+ ComrelPackage.Literals.DESCRIBED_ELEMENT__DESCRIPTION,
+ true,
+ false,
+ false,
+ ItemPropertyDescriptor.GENERIC_VALUE_IMAGE,
+ null,
+ null));
+ }
+
+ /**
+ * This adds a property descriptor for the Ref Id feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected void addRefIdPropertyDescriptor(Object object) {
+ itemPropertyDescriptors.add
+ (createItemPropertyDescriptor
+ (((ComposeableAdapterFactory)adapterFactory).getRootAdapterFactory(),
+ getResourceLocator(),
+ getString("_UI_ModelRefactoring_refId_feature"),
+ getString("_UI_PropertyDescriptor_description", "_UI_ModelRefactoring_refId_feature", "_UI_ModelRefactoring_type"),
+ ComrelPackage.Literals.MODEL_REFACTORING__REF_ID,
+ true,
+ false,
+ false,
+ ItemPropertyDescriptor.GENERIC_VALUE_IMAGE,
+ null,
+ null));
+ }
+
+ /**
+ * This adds a property descriptor for the Label feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected void addLabelPropertyDescriptor(Object object) {
+ itemPropertyDescriptors.add
+ (createItemPropertyDescriptor
+ (((ComposeableAdapterFactory)adapterFactory).getRootAdapterFactory(),
+ getResourceLocator(),
+ getString("_UI_ModelRefactoring_label_feature"),
+ getString("_UI_PropertyDescriptor_description", "_UI_ModelRefactoring_label_feature", "_UI_ModelRefactoring_type"),
+ ComrelPackage.Literals.MODEL_REFACTORING__LABEL,
+ true,
+ false,
+ false,
+ ItemPropertyDescriptor.GENERIC_VALUE_IMAGE,
+ null,
+ null));
+ }
+
+ /**
+ * This adds a property descriptor for the Namespace Uri feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected void addNamespaceUriPropertyDescriptor(Object object) {
+ itemPropertyDescriptors.add
+ (createItemPropertyDescriptor
+ (((ComposeableAdapterFactory)adapterFactory).getRootAdapterFactory(),
+ getResourceLocator(),
+ getString("_UI_ModelRefactoring_namespaceUri_feature"),
+ getString("_UI_PropertyDescriptor_description", "_UI_ModelRefactoring_namespaceUri_feature", "_UI_ModelRefactoring_type"),
+ ComrelPackage.Literals.MODEL_REFACTORING__NAMESPACE_URI,
+ true,
+ false,
+ false,
+ ItemPropertyDescriptor.GENERIC_VALUE_IMAGE,
+ null,
+ null));
+ }
+
+ /**
+ * This specifies how to implement {@link #getChildren} and is used to deduce an appropriate feature for an
+ * {@link org.eclipse.emf.edit.command.AddCommand}, {@link org.eclipse.emf.edit.command.RemoveCommand} or
+ * {@link org.eclipse.emf.edit.command.MoveCommand} in {@link #createCommand}.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public Collection<? extends EStructuralFeature> getChildrenFeatures(Object object) {
+ if (childrenFeatures == null) {
+ super.getChildrenFeatures(object);
+ childrenFeatures.add(ComrelPackage.Literals.MODEL_REFACTORING__INPUT_PORTS);
+ }
+ return childrenFeatures;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ protected EStructuralFeature getChildFeature(Object object, Object child) {
+ // Check the type of the specified child object and return the proper feature to use for
+ // adding (see {@link AddCommand}) it as a child.
+
+ return super.getChildFeature(object, child);
+ }
+
+ /**
+ * This returns ModelRefactoring.gif.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public Object getImage(Object object) {
+ return overlayImage(object, getResourceLocator().getImage("full/obj16/ModelRefactoring"));
+ }
+
+ /**
+ * This returns the label text for the adapted class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public String getText(Object object) {
+ String label = ((ModelRefactoring)object).getName();
+ return label == null || label.length() == 0 ?
+ getString("_UI_ModelRefactoring_type") :
+ getString("_UI_ModelRefactoring_type") + " " + label;
+ }
+
+ /**
+ * This handles model notifications by calling {@link #updateChildren} to update any cached
+ * children and by creating a viewer notification, which it passes to {@link #fireNotifyChanged}.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public void notifyChanged(Notification notification) {
+ updateChildren(notification);
+
+ switch (notification.getFeatureID(ModelRefactoring.class)) {
+ case ComrelPackage.MODEL_REFACTORING__NAME:
+ case ComrelPackage.MODEL_REFACTORING__DESCRIPTION:
+ case ComrelPackage.MODEL_REFACTORING__REF_ID:
+ case ComrelPackage.MODEL_REFACTORING__LABEL:
+ case ComrelPackage.MODEL_REFACTORING__NAMESPACE_URI:
+ fireNotifyChanged(new ViewerNotification(notification, notification.getNotifier(), false, true));
+ return;
+ case ComrelPackage.MODEL_REFACTORING__INPUT_PORTS:
+ fireNotifyChanged(new ViewerNotification(notification, notification.getNotifier(), true, false));
+ return;
+ }
+ super.notifyChanged(notification);
+ }
+
+ /**
+ * This adds {@link org.eclipse.emf.edit.command.CommandParameter}s describing the children
+ * that can be created under this object.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ protected void collectNewChildDescriptors(Collection<Object> newChildDescriptors, Object object) {
+ super.collectNewChildDescriptors(newChildDescriptors, object);
+
+ newChildDescriptors.add
+ (createChildParameter
+ (ComrelPackage.Literals.MODEL_REFACTORING__INPUT_PORTS,
+ ComrelFactory.eINSTANCE.createSingleInputPort()));
+ }
+
+ /**
+ * Return the resource locator for this item provider's resources.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public ResourceLocator getResourceLocator() {
+ return ComrelEditPlugin.INSTANCE;
+ }
+
+}
diff --git a/org.eclipse.emf.refactor.comrel.edit/src/comrel/provider/MultiFeatureHelperItemProvider.java b/org.eclipse.emf.refactor.comrel.edit/src/comrel/provider/MultiFeatureHelperItemProvider.java
new file mode 100644
index 0000000..a65c98c
--- /dev/null
+++ b/org.eclipse.emf.refactor.comrel.edit/src/comrel/provider/MultiFeatureHelperItemProvider.java
@@ -0,0 +1,160 @@
+/**
+ * <copyright>
+ * </copyright>
+ *
+ * $Id$
+ */
+package comrel.provider;
+
+
+import comrel.ComrelFactory;
+import comrel.ComrelPackage;
+import comrel.MultiFeatureHelper;
+
+import java.util.Collection;
+import java.util.List;
+
+import org.eclipse.emf.common.notify.AdapterFactory;
+import org.eclipse.emf.common.notify.Notification;
+
+import org.eclipse.emf.ecore.EStructuralFeature;
+
+import org.eclipse.emf.edit.provider.IEditingDomainItemProvider;
+import org.eclipse.emf.edit.provider.IItemLabelProvider;
+import org.eclipse.emf.edit.provider.IItemPropertyDescriptor;
+import org.eclipse.emf.edit.provider.IItemPropertySource;
+import org.eclipse.emf.edit.provider.IStructuredItemContentProvider;
+import org.eclipse.emf.edit.provider.ITreeItemContentProvider;
+import org.eclipse.emf.edit.provider.ViewerNotification;
+
+/**
+ * This is the item provider adapter for a {@link comrel.MultiFeatureHelper} object.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+public class MultiFeatureHelperItemProvider
+ extends FeatureHelperItemProvider
+ implements
+ IEditingDomainItemProvider,
+ IStructuredItemContentProvider,
+ ITreeItemContentProvider,
+ IItemLabelProvider,
+ IItemPropertySource {
+ /**
+ * This constructs an instance from a factory and a notifier.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public MultiFeatureHelperItemProvider(AdapterFactory adapterFactory) {
+ super(adapterFactory);
+ }
+
+ /**
+ * This returns the property descriptors for the adapted class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public List<IItemPropertyDescriptor> getPropertyDescriptors(Object object) {
+ if (itemPropertyDescriptors == null) {
+ super.getPropertyDescriptors(object);
+
+ }
+ return itemPropertyDescriptors;
+ }
+
+ /**
+ * This specifies how to implement {@link #getChildren} and is used to deduce an appropriate feature for an
+ * {@link org.eclipse.emf.edit.command.AddCommand}, {@link org.eclipse.emf.edit.command.RemoveCommand} or
+ * {@link org.eclipse.emf.edit.command.MoveCommand} in {@link #createCommand}.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public Collection<? extends EStructuralFeature> getChildrenFeatures(Object object) {
+ if (childrenFeatures == null) {
+ super.getChildrenFeatures(object);
+ childrenFeatures.add(ComrelPackage.Literals.MULTI_FEATURE_HELPER__OUTPUT_PORT);
+ }
+ return childrenFeatures;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ protected EStructuralFeature getChildFeature(Object object, Object child) {
+ // Check the type of the specified child object and return the proper feature to use for
+ // adding (see {@link AddCommand}) it as a child.
+
+ return super.getChildFeature(object, child);
+ }
+
+ /**
+ * This returns MultiFeatureHelper.gif.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public Object getImage(Object object) {
+ return overlayImage(object, getResourceLocator().getImage("full/obj16/MultiFeatureHelper"));
+ }
+
+ /**
+ * This returns the label text for the adapted class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public String getText(Object object) {
+ String label = ((MultiFeatureHelper)object).getName();
+ return label == null || label.length() == 0 ?
+ getString("_UI_MultiFeatureHelper_type") :
+ getString("_UI_MultiFeatureHelper_type") + " " + label;
+ }
+
+ /**
+ * This handles model notifications by calling {@link #updateChildren} to update any cached
+ * children and by creating a viewer notification, which it passes to {@link #fireNotifyChanged}.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public void notifyChanged(Notification notification) {
+ updateChildren(notification);
+
+ switch (notification.getFeatureID(MultiFeatureHelper.class)) {
+ case ComrelPackage.MULTI_FEATURE_HELPER__OUTPUT_PORT:
+ fireNotifyChanged(new ViewerNotification(notification, notification.getNotifier(), true, false));
+ return;
+ }
+ super.notifyChanged(notification);
+ }
+
+ /**
+ * This adds {@link org.eclipse.emf.edit.command.CommandParameter}s describing the children
+ * that can be created under this object.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ protected void collectNewChildDescriptors(Collection<Object> newChildDescriptors, Object object) {
+ super.collectNewChildDescriptors(newChildDescriptors, object);
+
+ newChildDescriptors.add
+ (createChildParameter
+ (ComrelPackage.Literals.MULTI_FEATURE_HELPER__OUTPUT_PORT,
+ ComrelFactory.eINSTANCE.createMultiOutputPort()));
+ }
+
+}
diff --git a/org.eclipse.emf.refactor.comrel.edit/src/comrel/provider/MultiFeatureUnitItemProvider.java b/org.eclipse.emf.refactor.comrel.edit/src/comrel/provider/MultiFeatureUnitItemProvider.java
new file mode 100644
index 0000000..4ab0cc4
--- /dev/null
+++ b/org.eclipse.emf.refactor.comrel.edit/src/comrel/provider/MultiFeatureUnitItemProvider.java
@@ -0,0 +1,225 @@
+/**
+ * <copyright>
+ * </copyright>
+ *
+ * $Id$
+ */
+package comrel.provider;
+
+
+import comrel.ComrelFactory;
+import comrel.ComrelPackage;
+import comrel.MultiFeatureUnit;
+
+import java.util.Collection;
+import java.util.List;
+
+import org.eclipse.emf.common.notify.AdapterFactory;
+import org.eclipse.emf.common.notify.Notification;
+
+import org.eclipse.emf.ecore.EStructuralFeature;
+
+import org.eclipse.emf.edit.provider.ComposeableAdapterFactory;
+import org.eclipse.emf.edit.provider.IEditingDomainItemProvider;
+import org.eclipse.emf.edit.provider.IItemLabelProvider;
+import org.eclipse.emf.edit.provider.IItemPropertyDescriptor;
+import org.eclipse.emf.edit.provider.IItemPropertySource;
+import org.eclipse.emf.edit.provider.IStructuredItemContentProvider;
+import org.eclipse.emf.edit.provider.ITreeItemContentProvider;
+import org.eclipse.emf.edit.provider.ItemPropertyDescriptor;
+import org.eclipse.emf.edit.provider.ViewerNotification;
+
+/**
+ * This is the item provider adapter for a {@link comrel.MultiFeatureUnit} object.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+public class MultiFeatureUnitItemProvider
+ extends FeatureUnitItemProvider
+ implements
+ IEditingDomainItemProvider,
+ IStructuredItemContentProvider,
+ ITreeItemContentProvider,
+ IItemLabelProvider,
+ IItemPropertySource {
+ /**
+ * This constructs an instance from a factory and a notifier.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public MultiFeatureUnitItemProvider(AdapterFactory adapterFactory) {
+ super(adapterFactory);
+ }
+
+ /**
+ * This returns the property descriptors for the adapted class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public List<IItemPropertyDescriptor> getPropertyDescriptors(Object object) {
+ if (itemPropertyDescriptors == null) {
+ super.getPropertyDescriptors(object);
+
+ addMultiFeatureHelperPropertyDescriptor(object);
+ addTypePropertyDescriptor(object);
+ }
+ return itemPropertyDescriptors;
+ }
+
+ /**
+ * This adds a property descriptor for the Multi Feature Helper feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected void addMultiFeatureHelperPropertyDescriptor(Object object) {
+ itemPropertyDescriptors.add
+ (createItemPropertyDescriptor
+ (((ComposeableAdapterFactory)adapterFactory).getRootAdapterFactory(),
+ getResourceLocator(),
+ getString("_UI_MultiFeatureUnit_multiFeatureHelper_feature"),
+ getString("_UI_PropertyDescriptor_description", "_UI_MultiFeatureUnit_multiFeatureHelper_feature", "_UI_MultiFeatureUnit_type"),
+ ComrelPackage.Literals.MULTI_FEATURE_UNIT__MULTI_FEATURE_HELPER,
+ true,
+ false,
+ true,
+ null,
+ null,
+ null));
+ }
+
+ /**
+ * This adds a property descriptor for the Type feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected void addTypePropertyDescriptor(Object object) {
+ itemPropertyDescriptors.add
+ (createItemPropertyDescriptor
+ (((ComposeableAdapterFactory)adapterFactory).getRootAdapterFactory(),
+ getResourceLocator(),
+ getString("_UI_MultiFeatureUnit_type_feature"),
+ getString("_UI_PropertyDescriptor_description", "_UI_MultiFeatureUnit_type_feature", "_UI_MultiFeatureUnit_type"),
+ ComrelPackage.Literals.MULTI_FEATURE_UNIT__TYPE,
+ false,
+ false,
+ false,
+ ItemPropertyDescriptor.GENERIC_VALUE_IMAGE,
+ null,
+ null));
+ }
+
+ /**
+ * This specifies how to implement {@link #getChildren} and is used to deduce an appropriate feature for an
+ * {@link org.eclipse.emf.edit.command.AddCommand}, {@link org.eclipse.emf.edit.command.RemoveCommand} or
+ * {@link org.eclipse.emf.edit.command.MoveCommand} in {@link #createCommand}.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public Collection<? extends EStructuralFeature> getChildrenFeatures(Object object) {
+ if (childrenFeatures == null) {
+ super.getChildrenFeatures(object);
+ childrenFeatures.add(ComrelPackage.Literals.MULTI_FEATURE_UNIT__INPUT_PORT);
+ childrenFeatures.add(ComrelPackage.Literals.MULTI_FEATURE_UNIT__SECONDARY_INPUT_PORTS);
+ childrenFeatures.add(ComrelPackage.Literals.MULTI_FEATURE_UNIT__OUTPUT_PORT);
+ }
+ return childrenFeatures;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ protected EStructuralFeature getChildFeature(Object object, Object child) {
+ // Check the type of the specified child object and return the proper feature to use for
+ // adding (see {@link AddCommand}) it as a child.
+
+ return super.getChildFeature(object, child);
+ }
+
+ /**
+ * This returns MultiFeatureUnit.gif.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public Object getImage(Object object) {
+ return overlayImage(object, getResourceLocator().getImage("full/obj16/MultiFeatureUnit"));
+ }
+
+ /**
+ * This returns the label text for the adapted class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public String getText(Object object) {
+ String label = ((MultiFeatureUnit)object).getName();
+ return label == null || label.length() == 0 ?
+ getString("_UI_MultiFeatureUnit_type") :
+ getString("_UI_MultiFeatureUnit_type") + " " + label;
+ }
+
+ /**
+ * This handles model notifications by calling {@link #updateChildren} to update any cached
+ * children and by creating a viewer notification, which it passes to {@link #fireNotifyChanged}.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public void notifyChanged(Notification notification) {
+ updateChildren(notification);
+
+ switch (notification.getFeatureID(MultiFeatureUnit.class)) {
+ case ComrelPackage.MULTI_FEATURE_UNIT__TYPE:
+ fireNotifyChanged(new ViewerNotification(notification, notification.getNotifier(), false, true));
+ return;
+ case ComrelPackage.MULTI_FEATURE_UNIT__INPUT_PORT:
+ case ComrelPackage.MULTI_FEATURE_UNIT__SECONDARY_INPUT_PORTS:
+ case ComrelPackage.MULTI_FEATURE_UNIT__OUTPUT_PORT:
+ fireNotifyChanged(new ViewerNotification(notification, notification.getNotifier(), true, false));
+ return;
+ }
+ super.notifyChanged(notification);
+ }
+
+ /**
+ * This adds {@link org.eclipse.emf.edit.command.CommandParameter}s describing the children
+ * that can be created under this object.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ protected void collectNewChildDescriptors(Collection<Object> newChildDescriptors, Object object) {
+ super.collectNewChildDescriptors(newChildDescriptors, object);
+
+ newChildDescriptors.add
+ (createChildParameter
+ (ComrelPackage.Literals.MULTI_FEATURE_UNIT__INPUT_PORT,
+ ComrelFactory.eINSTANCE.createSingleInputPort()));
+
+ newChildDescriptors.add
+ (createChildParameter
+ (ComrelPackage.Literals.MULTI_FEATURE_UNIT__SECONDARY_INPUT_PORTS,
+ ComrelFactory.eINSTANCE.createMultiInputPort()));
+
+ newChildDescriptors.add
+ (createChildParameter
+ (ComrelPackage.Literals.MULTI_FEATURE_UNIT__OUTPUT_PORT,
+ ComrelFactory.eINSTANCE.createMultiOutputPort()));
+ }
+
+}
diff --git a/org.eclipse.emf.refactor.comrel.edit/src/comrel/provider/MultiFilterHelperItemProvider.java b/org.eclipse.emf.refactor.comrel.edit/src/comrel/provider/MultiFilterHelperItemProvider.java
new file mode 100644
index 0000000..12d52fa
--- /dev/null
+++ b/org.eclipse.emf.refactor.comrel.edit/src/comrel/provider/MultiFilterHelperItemProvider.java
@@ -0,0 +1,160 @@
+/**
+ * <copyright>
+ * </copyright>
+ *
+ * $Id$
+ */
+package comrel.provider;
+
+
+import comrel.ComrelFactory;
+import comrel.ComrelPackage;
+import comrel.MultiFilterHelper;
+
+import java.util.Collection;
+import java.util.List;
+
+import org.eclipse.emf.common.notify.AdapterFactory;
+import org.eclipse.emf.common.notify.Notification;
+
+import org.eclipse.emf.ecore.EStructuralFeature;
+
+import org.eclipse.emf.edit.provider.IEditingDomainItemProvider;
+import org.eclipse.emf.edit.provider.IItemLabelProvider;
+import org.eclipse.emf.edit.provider.IItemPropertyDescriptor;
+import org.eclipse.emf.edit.provider.IItemPropertySource;
+import org.eclipse.emf.edit.provider.IStructuredItemContentProvider;
+import org.eclipse.emf.edit.provider.ITreeItemContentProvider;
+import org.eclipse.emf.edit.provider.ViewerNotification;
+
+/**
+ * This is the item provider adapter for a {@link comrel.MultiFilterHelper} object.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+public class MultiFilterHelperItemProvider
+ extends FilterHelperItemProvider
+ implements
+ IEditingDomainItemProvider,
+ IStructuredItemContentProvider,
+ ITreeItemContentProvider,
+ IItemLabelProvider,
+ IItemPropertySource {
+ /**
+ * This constructs an instance from a factory and a notifier.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public MultiFilterHelperItemProvider(AdapterFactory adapterFactory) {
+ super(adapterFactory);
+ }
+
+ /**
+ * This returns the property descriptors for the adapted class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public List<IItemPropertyDescriptor> getPropertyDescriptors(Object object) {
+ if (itemPropertyDescriptors == null) {
+ super.getPropertyDescriptors(object);
+
+ }
+ return itemPropertyDescriptors;
+ }
+
+ /**
+ * This specifies how to implement {@link #getChildren} and is used to deduce an appropriate feature for an
+ * {@link org.eclipse.emf.edit.command.AddCommand}, {@link org.eclipse.emf.edit.command.RemoveCommand} or
+ * {@link org.eclipse.emf.edit.command.MoveCommand} in {@link #createCommand}.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public Collection<? extends EStructuralFeature> getChildrenFeatures(Object object) {
+ if (childrenFeatures == null) {
+ super.getChildrenFeatures(object);
+ childrenFeatures.add(ComrelPackage.Literals.MULTI_FILTER_HELPER__OUTPUT_PORT);
+ }
+ return childrenFeatures;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ protected EStructuralFeature getChildFeature(Object object, Object child) {
+ // Check the type of the specified child object and return the proper feature to use for
+ // adding (see {@link AddCommand}) it as a child.
+
+ return super.getChildFeature(object, child);
+ }
+
+ /**
+ * This returns MultiFilterHelper.gif.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public Object getImage(Object object) {
+ return overlayImage(object, getResourceLocator().getImage("full/obj16/MultiFilterHelper"));
+ }
+
+ /**
+ * This returns the label text for the adapted class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public String getText(Object object) {
+ String label = ((MultiFilterHelper)object).getName();
+ return label == null || label.length() == 0 ?
+ getString("_UI_MultiFilterHelper_type") :
+ getString("_UI_MultiFilterHelper_type") + " " + label;
+ }
+
+ /**
+ * This handles model notifications by calling {@link #updateChildren} to update any cached
+ * children and by creating a viewer notification, which it passes to {@link #fireNotifyChanged}.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public void notifyChanged(Notification notification) {
+ updateChildren(notification);
+
+ switch (notification.getFeatureID(MultiFilterHelper.class)) {
+ case ComrelPackage.MULTI_FILTER_HELPER__OUTPUT_PORT:
+ fireNotifyChanged(new ViewerNotification(notification, notification.getNotifier(), true, false));
+ return;
+ }
+ super.notifyChanged(notification);
+ }
+
+ /**
+ * This adds {@link org.eclipse.emf.edit.command.CommandParameter}s describing the children
+ * that can be created under this object.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ protected void collectNewChildDescriptors(Collection<Object> newChildDescriptors, Object object) {
+ super.collectNewChildDescriptors(newChildDescriptors, object);
+
+ newChildDescriptors.add
+ (createChildParameter
+ (ComrelPackage.Literals.MULTI_FILTER_HELPER__OUTPUT_PORT,
+ ComrelFactory.eINSTANCE.createMultiOutputPort()));
+ }
+
+}
diff --git a/org.eclipse.emf.refactor.comrel.edit/src/comrel/provider/MultiFilterUnitItemProvider.java b/org.eclipse.emf.refactor.comrel.edit/src/comrel/provider/MultiFilterUnitItemProvider.java
new file mode 100644
index 0000000..1f0dd2b
--- /dev/null
+++ b/org.eclipse.emf.refactor.comrel.edit/src/comrel/provider/MultiFilterUnitItemProvider.java
@@ -0,0 +1,218 @@
+/**
+ * <copyright>
+ * </copyright>
+ *
+ * $Id$
+ */
+package comrel.provider;
+
+
+import comrel.ComrelFactory;
+import comrel.ComrelPackage;
+import comrel.MultiFilterUnit;
+
+import java.util.Collection;
+import java.util.List;
+
+import org.eclipse.emf.common.notify.AdapterFactory;
+import org.eclipse.emf.common.notify.Notification;
+
+import org.eclipse.emf.ecore.EStructuralFeature;
+
+import org.eclipse.emf.edit.provider.ComposeableAdapterFactory;
+import org.eclipse.emf.edit.provider.IEditingDomainItemProvider;
+import org.eclipse.emf.edit.provider.IItemLabelProvider;
+import org.eclipse.emf.edit.provider.IItemPropertyDescriptor;
+import org.eclipse.emf.edit.provider.IItemPropertySource;
+import org.eclipse.emf.edit.provider.IStructuredItemContentProvider;
+import org.eclipse.emf.edit.provider.ITreeItemContentProvider;
+import org.eclipse.emf.edit.provider.ItemPropertyDescriptor;
+import org.eclipse.emf.edit.provider.ViewerNotification;
+
+/**
+ * This is the item provider adapter for a {@link comrel.MultiFilterUnit} object.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+public class MultiFilterUnitItemProvider
+ extends FilterUnitItemProvider
+ implements
+ IEditingDomainItemProvider,
+ IStructuredItemContentProvider,
+ ITreeItemContentProvider,
+ IItemLabelProvider,
+ IItemPropertySource {
+ /**
+ * This constructs an instance from a factory and a notifier.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public MultiFilterUnitItemProvider(AdapterFactory adapterFactory) {
+ super(adapterFactory);
+ }
+
+ /**
+ * This returns the property descriptors for the adapted class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public List<IItemPropertyDescriptor> getPropertyDescriptors(Object object) {
+ if (itemPropertyDescriptors == null) {
+ super.getPropertyDescriptors(object);
+
+ addMultiFilterHelperPropertyDescriptor(object);
+ addTypePropertyDescriptor(object);
+ }
+ return itemPropertyDescriptors;
+ }
+
+ /**
+ * This adds a property descriptor for the Multi Filter Helper feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected void addMultiFilterHelperPropertyDescriptor(Object object) {
+ itemPropertyDescriptors.add
+ (createItemPropertyDescriptor
+ (((ComposeableAdapterFactory)adapterFactory).getRootAdapterFactory(),
+ getResourceLocator(),
+ getString("_UI_MultiFilterUnit_multiFilterHelper_feature"),
+ getString("_UI_PropertyDescriptor_description", "_UI_MultiFilterUnit_multiFilterHelper_feature", "_UI_MultiFilterUnit_type"),
+ ComrelPackage.Literals.MULTI_FILTER_UNIT__MULTI_FILTER_HELPER,
+ true,
+ false,
+ true,
+ null,
+ null,
+ null));
+ }
+
+ /**
+ * This adds a property descriptor for the Type feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected void addTypePropertyDescriptor(Object object) {
+ itemPropertyDescriptors.add
+ (createItemPropertyDescriptor
+ (((ComposeableAdapterFactory)adapterFactory).getRootAdapterFactory(),
+ getResourceLocator(),
+ getString("_UI_MultiFilterUnit_type_feature"),
+ getString("_UI_PropertyDescriptor_description", "_UI_MultiFilterUnit_type_feature", "_UI_MultiFilterUnit_type"),
+ ComrelPackage.Literals.MULTI_FILTER_UNIT__TYPE,
+ false,
+ false,
+ false,
+ ItemPropertyDescriptor.GENERIC_VALUE_IMAGE,
+ null,
+ null));
+ }
+
+ /**
+ * This specifies how to implement {@link #getChildren} and is used to deduce an appropriate feature for an
+ * {@link org.eclipse.emf.edit.command.AddCommand}, {@link org.eclipse.emf.edit.command.RemoveCommand} or
+ * {@link org.eclipse.emf.edit.command.MoveCommand} in {@link #createCommand}.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public Collection<? extends EStructuralFeature> getChildrenFeatures(Object object) {
+ if (childrenFeatures == null) {
+ super.getChildrenFeatures(object);
+ childrenFeatures.add(ComrelPackage.Literals.MULTI_FILTER_UNIT__INPUT_PORT);
+ childrenFeatures.add(ComrelPackage.Literals.MULTI_FILTER_UNIT__OUTPUT_PORT);
+ }
+ return childrenFeatures;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ protected EStructuralFeature getChildFeature(Object object, Object child) {
+ // Check the type of the specified child object and return the proper feature to use for
+ // adding (see {@link AddCommand}) it as a child.
+
+ return super.getChildFeature(object, child);
+ }
+
+ /**
+ * This returns MultiFilterUnit.gif.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public Object getImage(Object object) {
+ return overlayImage(object, getResourceLocator().getImage("full/obj16/MultiFilterUnit"));
+ }
+
+ /**
+ * This returns the label text for the adapted class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public String getText(Object object) {
+ String label = ((MultiFilterUnit)object).getName();
+ return label == null || label.length() == 0 ?
+ getString("_UI_MultiFilterUnit_type") :
+ getString("_UI_MultiFilterUnit_type") + " " + label;
+ }
+
+ /**
+ * This handles model notifications by calling {@link #updateChildren} to update any cached
+ * children and by creating a viewer notification, which it passes to {@link #fireNotifyChanged}.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public void notifyChanged(Notification notification) {
+ updateChildren(notification);
+
+ switch (notification.getFeatureID(MultiFilterUnit.class)) {
+ case ComrelPackage.MULTI_FILTER_UNIT__TYPE:
+ fireNotifyChanged(new ViewerNotification(notification, notification.getNotifier(), false, true));
+ return;
+ case ComrelPackage.MULTI_FILTER_UNIT__INPUT_PORT:
+ case ComrelPackage.MULTI_FILTER_UNIT__OUTPUT_PORT:
+ fireNotifyChanged(new ViewerNotification(notification, notification.getNotifier(), true, false));
+ return;
+ }
+ super.notifyChanged(notification);
+ }
+
+ /**
+ * This adds {@link org.eclipse.emf.edit.command.CommandParameter}s describing the children
+ * that can be created under this object.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ protected void collectNewChildDescriptors(Collection<Object> newChildDescriptors, Object object) {
+ super.collectNewChildDescriptors(newChildDescriptors, object);
+
+ newChildDescriptors.add
+ (createChildParameter
+ (ComrelPackage.Literals.MULTI_FILTER_UNIT__INPUT_PORT,
+ ComrelFactory.eINSTANCE.createMultiInputPort()));
+
+ newChildDescriptors.add
+ (createChildParameter
+ (ComrelPackage.Literals.MULTI_FILTER_UNIT__OUTPUT_PORT,
+ ComrelFactory.eINSTANCE.createMultiOutputPort()));
+ }
+
+}
diff --git a/org.eclipse.emf.refactor.comrel.edit/src/comrel/provider/MultiInputPortItemProvider.java b/org.eclipse.emf.refactor.comrel.edit/src/comrel/provider/MultiInputPortItemProvider.java
new file mode 100644
index 0000000..182a702
--- /dev/null
+++ b/org.eclipse.emf.refactor.comrel.edit/src/comrel/provider/MultiInputPortItemProvider.java
@@ -0,0 +1,114 @@
+/**
+ * <copyright>
+ * </copyright>
+ *
+ * $Id$
+ */
+package comrel.provider;
+
+
+import comrel.MultiInputPort;
+
+import java.util.Collection;
+import java.util.List;
+
+import org.eclipse.emf.common.notify.AdapterFactory;
+import org.eclipse.emf.common.notify.Notification;
+
+import org.eclipse.emf.edit.provider.IEditingDomainItemProvider;
+import org.eclipse.emf.edit.provider.IItemLabelProvider;
+import org.eclipse.emf.edit.provider.IItemPropertyDescriptor;
+import org.eclipse.emf.edit.provider.IItemPropertySource;
+import org.eclipse.emf.edit.provider.IStructuredItemContentProvider;
+import org.eclipse.emf.edit.provider.ITreeItemContentProvider;
+
+/**
+ * This is the item provider adapter for a {@link comrel.MultiInputPort} object.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+public class MultiInputPortItemProvider
+ extends MultiPortItemProvider
+ implements
+ IEditingDomainItemProvider,
+ IStructuredItemContentProvider,
+ ITreeItemContentProvider,
+ IItemLabelProvider,
+ IItemPropertySource {
+ /**
+ * This constructs an instance from a factory and a notifier.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public MultiInputPortItemProvider(AdapterFactory adapterFactory) {
+ super(adapterFactory);
+ }
+
+ /**
+ * This returns the property descriptors for the adapted class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public List<IItemPropertyDescriptor> getPropertyDescriptors(Object object) {
+ if (itemPropertyDescriptors == null) {
+ super.getPropertyDescriptors(object);
+
+ }
+ return itemPropertyDescriptors;
+ }
+
+ /**
+ * This returns MultiInputPort.gif.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public Object getImage(Object object) {
+ return overlayImage(object, getResourceLocator().getImage("full/obj16/MultiInputPort"));
+ }
+
+ /**
+ * This returns the label text for the adapted class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public String getText(Object object) {
+ String label = ((MultiInputPort)object).getName();
+ return label == null || label.length() == 0 ?
+ getString("_UI_MultiInputPort_type") :
+ getString("_UI_MultiInputPort_type") + " " + label;
+ }
+
+ /**
+ * This handles model notifications by calling {@link #updateChildren} to update any cached
+ * children and by creating a viewer notification, which it passes to {@link #fireNotifyChanged}.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public void notifyChanged(Notification notification) {
+ updateChildren(notification);
+ super.notifyChanged(notification);
+ }
+
+ /**
+ * This adds {@link org.eclipse.emf.edit.command.CommandParameter}s describing the children
+ * that can be created under this object.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ protected void collectNewChildDescriptors(Collection<Object> newChildDescriptors, Object object) {
+ super.collectNewChildDescriptors(newChildDescriptors, object);
+ }
+
+}
diff --git a/org.eclipse.emf.refactor.comrel.edit/src/comrel/provider/MultiOutputPortItemProvider.java b/org.eclipse.emf.refactor.comrel.edit/src/comrel/provider/MultiOutputPortItemProvider.java
new file mode 100644
index 0000000..37b9b2a
--- /dev/null
+++ b/org.eclipse.emf.refactor.comrel.edit/src/comrel/provider/MultiOutputPortItemProvider.java
@@ -0,0 +1,114 @@
+/**
+ * <copyright>
+ * </copyright>
+ *
+ * $Id$
+ */
+package comrel.provider;
+
+
+import comrel.MultiOutputPort;
+
+import java.util.Collection;
+import java.util.List;
+
+import org.eclipse.emf.common.notify.AdapterFactory;
+import org.eclipse.emf.common.notify.Notification;
+
+import org.eclipse.emf.edit.provider.IEditingDomainItemProvider;
+import org.eclipse.emf.edit.provider.IItemLabelProvider;
+import org.eclipse.emf.edit.provider.IItemPropertyDescriptor;
+import org.eclipse.emf.edit.provider.IItemPropertySource;
+import org.eclipse.emf.edit.provider.IStructuredItemContentProvider;
+import org.eclipse.emf.edit.provider.ITreeItemContentProvider;
+
+/**
+ * This is the item provider adapter for a {@link comrel.MultiOutputPort} object.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+public class MultiOutputPortItemProvider
+ extends MultiPortItemProvider
+ implements
+ IEditingDomainItemProvider,
+ IStructuredItemContentProvider,
+ ITreeItemContentProvider,
+ IItemLabelProvider,
+ IItemPropertySource {
+ /**
+ * This constructs an instance from a factory and a notifier.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public MultiOutputPortItemProvider(AdapterFactory adapterFactory) {
+ super(adapterFactory);
+ }
+
+ /**
+ * This returns the property descriptors for the adapted class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public List<IItemPropertyDescriptor> getPropertyDescriptors(Object object) {
+ if (itemPropertyDescriptors == null) {
+ super.getPropertyDescriptors(object);
+
+ }
+ return itemPropertyDescriptors;
+ }
+
+ /**
+ * This returns MultiOutputPort.gif.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public Object getImage(Object object) {
+ return overlayImage(object, getResourceLocator().getImage("full/obj16/MultiOutputPort"));
+ }
+
+ /**
+ * This returns the label text for the adapted class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public String getText(Object object) {
+ String label = ((MultiOutputPort)object).getName();
+ return label == null || label.length() == 0 ?
+ getString("_UI_MultiOutputPort_type") :
+ getString("_UI_MultiOutputPort_type") + " " + label;
+ }
+
+ /**
+ * This handles model notifications by calling {@link #updateChildren} to update any cached
+ * children and by creating a viewer notification, which it passes to {@link #fireNotifyChanged}.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public void notifyChanged(Notification notification) {
+ updateChildren(notification);
+ super.notifyChanged(notification);
+ }
+
+ /**
+ * This adds {@link org.eclipse.emf.edit.command.CommandParameter}s describing the children
+ * that can be created under this object.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ protected void collectNewChildDescriptors(Collection<Object> newChildDescriptors, Object object) {
+ super.collectNewChildDescriptors(newChildDescriptors, object);
+ }
+
+}
diff --git a/org.eclipse.emf.refactor.comrel.edit/src/comrel/provider/MultiPortItemProvider.java b/org.eclipse.emf.refactor.comrel.edit/src/comrel/provider/MultiPortItemProvider.java
new file mode 100644
index 0000000..bda0198
--- /dev/null
+++ b/org.eclipse.emf.refactor.comrel.edit/src/comrel/provider/MultiPortItemProvider.java
@@ -0,0 +1,136 @@
+/**
+ * <copyright>
+ * </copyright>
+ *
+ * $Id$
+ */
+package comrel.provider;
+
+
+import comrel.ComrelPackage;
+import comrel.MultiPort;
+
+import java.util.Collection;
+import java.util.List;
+
+import org.eclipse.emf.common.notify.AdapterFactory;
+import org.eclipse.emf.common.notify.Notification;
+
+import org.eclipse.emf.edit.provider.ComposeableAdapterFactory;
+import org.eclipse.emf.edit.provider.IEditingDomainItemProvider;
+import org.eclipse.emf.edit.provider.IItemLabelProvider;
+import org.eclipse.emf.edit.provider.IItemPropertyDescriptor;
+import org.eclipse.emf.edit.provider.IItemPropertySource;
+import org.eclipse.emf.edit.provider.IStructuredItemContentProvider;
+import org.eclipse.emf.edit.provider.ITreeItemContentProvider;
+import org.eclipse.emf.edit.provider.ItemPropertyDescriptor;
+import org.eclipse.emf.edit.provider.ViewerNotification;
+
+/**
+ * This is the item provider adapter for a {@link comrel.MultiPort} object.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+public class MultiPortItemProvider
+ extends PortItemProvider
+ implements
+ IEditingDomainItemProvider,
+ IStructuredItemContentProvider,
+ ITreeItemContentProvider,
+ IItemLabelProvider,
+ IItemPropertySource {
+ /**
+ * This constructs an instance from a factory and a notifier.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public MultiPortItemProvider(AdapterFactory adapterFactory) {
+ super(adapterFactory);
+ }
+
+ /**
+ * This returns the property descriptors for the adapted class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public List<IItemPropertyDescriptor> getPropertyDescriptors(Object object) {
+ if (itemPropertyDescriptors == null) {
+ super.getPropertyDescriptors(object);
+
+ addValuePropertyDescriptor(object);
+ }
+ return itemPropertyDescriptors;
+ }
+
+ /**
+ * This adds a property descriptor for the Value feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected void addValuePropertyDescriptor(Object object) {
+ itemPropertyDescriptors.add
+ (createItemPropertyDescriptor
+ (((ComposeableAdapterFactory)adapterFactory).getRootAdapterFactory(),
+ getResourceLocator(),
+ getString("_UI_MultiPort_value_feature"),
+ getString("_UI_PropertyDescriptor_description", "_UI_MultiPort_value_feature", "_UI_MultiPort_type"),
+ ComrelPackage.Literals.MULTI_PORT__VALUE,
+ true,
+ false,
+ false,
+ ItemPropertyDescriptor.GENERIC_VALUE_IMAGE,
+ null,
+ null));
+ }
+
+ /**
+ * This returns the label text for the adapted class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public String getText(Object object) {
+ String label = ((MultiPort)object).getName();
+ return label == null || label.length() == 0 ?
+ getString("_UI_MultiPort_type") :
+ getString("_UI_MultiPort_type") + " " + label;
+ }
+
+ /**
+ * This handles model notifications by calling {@link #updateChildren} to update any cached
+ * children and by creating a viewer notification, which it passes to {@link #fireNotifyChanged}.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public void notifyChanged(Notification notification) {
+ updateChildren(notification);
+
+ switch (notification.getFeatureID(MultiPort.class)) {
+ case ComrelPackage.MULTI_PORT__VALUE:
+ fireNotifyChanged(new ViewerNotification(notification, notification.getNotifier(), false, true));
+ return;
+ }
+ super.notifyChanged(notification);
+ }
+
+ /**
+ * This adds {@link org.eclipse.emf.edit.command.CommandParameter}s describing the children
+ * that can be created under this object.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ protected void collectNewChildDescriptors(Collection<Object> newChildDescriptors, Object object) {
+ super.collectNewChildDescriptors(newChildDescriptors, object);
+ }
+
+}
diff --git a/org.eclipse.emf.refactor.comrel.edit/src/comrel/provider/MultiPortMappingItemProvider.java b/org.eclipse.emf.refactor.comrel.edit/src/comrel/provider/MultiPortMappingItemProvider.java
new file mode 100644
index 0000000..81ee071
--- /dev/null
+++ b/org.eclipse.emf.refactor.comrel.edit/src/comrel/provider/MultiPortMappingItemProvider.java
@@ -0,0 +1,158 @@
+/**
+ * <copyright>
+ * </copyright>
+ *
+ * $Id$
+ */
+package comrel.provider;
+
+
+import comrel.ComrelPackage;
+
+import java.util.Collection;
+import java.util.List;
+
+import org.eclipse.emf.common.notify.AdapterFactory;
+import org.eclipse.emf.common.notify.Notification;
+
+import org.eclipse.emf.edit.provider.ComposeableAdapterFactory;
+import org.eclipse.emf.edit.provider.IEditingDomainItemProvider;
+import org.eclipse.emf.edit.provider.IItemLabelProvider;
+import org.eclipse.emf.edit.provider.IItemPropertyDescriptor;
+import org.eclipse.emf.edit.provider.IItemPropertySource;
+import org.eclipse.emf.edit.provider.IStructuredItemContentProvider;
+import org.eclipse.emf.edit.provider.ITreeItemContentProvider;
+
+/**
+ * This is the item provider adapter for a {@link comrel.MultiPortMapping} object.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+public class MultiPortMappingItemProvider
+ extends PortMappingItemProvider
+ implements
+ IEditingDomainItemProvider,
+ IStructuredItemContentProvider,
+ ITreeItemContentProvider,
+ IItemLabelProvider,
+ IItemPropertySource {
+ /**
+ * This constructs an instance from a factory and a notifier.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public MultiPortMappingItemProvider(AdapterFactory adapterFactory) {
+ super(adapterFactory);
+ }
+
+ /**
+ * This returns the property descriptors for the adapted class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public List<IItemPropertyDescriptor> getPropertyDescriptors(Object object) {
+ if (itemPropertyDescriptors == null) {
+ super.getPropertyDescriptors(object);
+
+ addSourcePropertyDescriptor(object);
+ addTargetPropertyDescriptor(object);
+ }
+ return itemPropertyDescriptors;
+ }
+
+ /**
+ * This adds a property descriptor for the Source feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected void addSourcePropertyDescriptor(Object object) {
+ itemPropertyDescriptors.add
+ (createItemPropertyDescriptor
+ (((ComposeableAdapterFactory)adapterFactory).getRootAdapterFactory(),
+ getResourceLocator(),
+ getString("_UI_MultiPortMapping_source_feature"),
+ getString("_UI_PropertyDescriptor_description", "_UI_MultiPortMapping_source_feature", "_UI_MultiPortMapping_type"),
+ ComrelPackage.Literals.MULTI_PORT_MAPPING__SOURCE,
+ true,
+ false,
+ true,
+ null,
+ null,
+ null));
+ }
+
+ /**
+ * This adds a property descriptor for the Target feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected void addTargetPropertyDescriptor(Object object) {
+ itemPropertyDescriptors.add
+ (createItemPropertyDescriptor
+ (((ComposeableAdapterFactory)adapterFactory).getRootAdapterFactory(),
+ getResourceLocator(),
+ getString("_UI_MultiPortMapping_target_feature"),
+ getString("_UI_PropertyDescriptor_description", "_UI_MultiPortMapping_target_feature", "_UI_MultiPortMapping_type"),
+ ComrelPackage.Literals.MULTI_PORT_MAPPING__TARGET,
+ true,
+ false,
+ true,
+ null,
+ null,
+ null));
+ }
+
+ /**
+ * This returns MultiPortMapping.gif.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public Object getImage(Object object) {
+ return overlayImage(object, getResourceLocator().getImage("full/obj16/MultiPortMapping"));
+ }
+
+ /**
+ * This returns the label text for the adapted class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public String getText(Object object) {
+ return getString("_UI_MultiPortMapping_type");
+ }
+
+ /**
+ * This handles model notifications by calling {@link #updateChildren} to update any cached
+ * children and by creating a viewer notification, which it passes to {@link #fireNotifyChanged}.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public void notifyChanged(Notification notification) {
+ updateChildren(notification);
+ super.notifyChanged(notification);
+ }
+
+ /**
+ * This adds {@link org.eclipse.emf.edit.command.CommandParameter}s describing the children
+ * that can be created under this object.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ protected void collectNewChildDescriptors(Collection<Object> newChildDescriptors, Object object) {
+ super.collectNewChildDescriptors(newChildDescriptors, object);
+ }
+
+}
diff --git a/org.eclipse.emf.refactor.comrel.edit/src/comrel/provider/MultiSinglePortMappingItemProvider.java b/org.eclipse.emf.refactor.comrel.edit/src/comrel/provider/MultiSinglePortMappingItemProvider.java
new file mode 100644
index 0000000..6753f07
--- /dev/null
+++ b/org.eclipse.emf.refactor.comrel.edit/src/comrel/provider/MultiSinglePortMappingItemProvider.java
@@ -0,0 +1,158 @@
+/**
+ * <copyright>
+ * </copyright>
+ *
+ * $Id$
+ */
+package comrel.provider;
+
+
+import comrel.ComrelPackage;
+
+import java.util.Collection;
+import java.util.List;
+
+import org.eclipse.emf.common.notify.AdapterFactory;
+import org.eclipse.emf.common.notify.Notification;
+
+import org.eclipse.emf.edit.provider.ComposeableAdapterFactory;
+import org.eclipse.emf.edit.provider.IEditingDomainItemProvider;
+import org.eclipse.emf.edit.provider.IItemLabelProvider;
+import org.eclipse.emf.edit.provider.IItemPropertyDescriptor;
+import org.eclipse.emf.edit.provider.IItemPropertySource;
+import org.eclipse.emf.edit.provider.IStructuredItemContentProvider;
+import org.eclipse.emf.edit.provider.ITreeItemContentProvider;
+
+/**
+ * This is the item provider adapter for a {@link comrel.MultiSinglePortMapping} object.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+public class MultiSinglePortMappingItemProvider
+ extends PortMappingItemProvider
+ implements
+ IEditingDomainItemProvider,
+ IStructuredItemContentProvider,
+ ITreeItemContentProvider,
+ IItemLabelProvider,
+ IItemPropertySource {
+ /**
+ * This constructs an instance from a factory and a notifier.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public MultiSinglePortMappingItemProvider(AdapterFactory adapterFactory) {
+ super(adapterFactory);
+ }
+
+ /**
+ * This returns the property descriptors for the adapted class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public List<IItemPropertyDescriptor> getPropertyDescriptors(Object object) {
+ if (itemPropertyDescriptors == null) {
+ super.getPropertyDescriptors(object);
+
+ addSourcePropertyDescriptor(object);
+ addTargetPropertyDescriptor(object);
+ }
+ return itemPropertyDescriptors;
+ }
+
+ /**
+ * This adds a property descriptor for the Source feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected void addSourcePropertyDescriptor(Object object) {
+ itemPropertyDescriptors.add
+ (createItemPropertyDescriptor
+ (((ComposeableAdapterFactory)adapterFactory).getRootAdapterFactory(),
+ getResourceLocator(),
+ getString("_UI_MultiSinglePortMapping_source_feature"),
+ getString("_UI_PropertyDescriptor_description", "_UI_MultiSinglePortMapping_source_feature", "_UI_MultiSinglePortMapping_type"),
+ ComrelPackage.Literals.MULTI_SINGLE_PORT_MAPPING__SOURCE,
+ true,
+ false,
+ true,
+ null,
+ null,
+ null));
+ }
+
+ /**
+ * This adds a property descriptor for the Target feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected void addTargetPropertyDescriptor(Object object) {
+ itemPropertyDescriptors.add
+ (createItemPropertyDescriptor
+ (((ComposeableAdapterFactory)adapterFactory).getRootAdapterFactory(),
+ getResourceLocator(),
+ getString("_UI_MultiSinglePortMapping_target_feature"),
+ getString("_UI_PropertyDescriptor_description", "_UI_MultiSinglePortMapping_target_feature", "_UI_MultiSinglePortMapping_type"),
+ ComrelPackage.Literals.MULTI_SINGLE_PORT_MAPPING__TARGET,
+ true,
+ false,
+ true,
+ null,
+ null,
+ null));
+ }
+
+ /**
+ * This returns MultiSinglePortMapping.gif.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public Object getImage(Object object) {
+ return overlayImage(object, getResourceLocator().getImage("full/obj16/MultiSinglePortMapping"));
+ }
+
+ /**
+ * This returns the label text for the adapted class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public String getText(Object object) {
+ return getString("_UI_MultiSinglePortMapping_type");
+ }
+
+ /**
+ * This handles model notifications by calling {@link #updateChildren} to update any cached
+ * children and by creating a viewer notification, which it passes to {@link #fireNotifyChanged}.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public void notifyChanged(Notification notification) {
+ updateChildren(notification);
+ super.notifyChanged(notification);
+ }
+
+ /**
+ * This adds {@link org.eclipse.emf.edit.command.CommandParameter}s describing the children
+ * that can be created under this object.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ protected void collectNewChildDescriptors(Collection<Object> newChildDescriptors, Object object) {
+ super.collectNewChildDescriptors(newChildDescriptors, object);
+ }
+
+}
diff --git a/org.eclipse.emf.refactor.comrel.edit/src/comrel/provider/OutputPortItemProvider.java b/org.eclipse.emf.refactor.comrel.edit/src/comrel/provider/OutputPortItemProvider.java
new file mode 100644
index 0000000..b44cce9
--- /dev/null
+++ b/org.eclipse.emf.refactor.comrel.edit/src/comrel/provider/OutputPortItemProvider.java
@@ -0,0 +1,103 @@
+/**
+ * <copyright>
+ * </copyright>
+ *
+ * $Id$
+ */
+package comrel.provider;
+
+
+import comrel.OutputPort;
+
+import java.util.Collection;
+import java.util.List;
+
+import org.eclipse.emf.common.notify.AdapterFactory;
+import org.eclipse.emf.common.notify.Notification;
+
+import org.eclipse.emf.edit.provider.IEditingDomainItemProvider;
+import org.eclipse.emf.edit.provider.IItemLabelProvider;
+import org.eclipse.emf.edit.provider.IItemPropertyDescriptor;
+import org.eclipse.emf.edit.provider.IItemPropertySource;
+import org.eclipse.emf.edit.provider.IStructuredItemContentProvider;
+import org.eclipse.emf.edit.provider.ITreeItemContentProvider;
+
+/**
+ * This is the item provider adapter for a {@link comrel.OutputPort} object.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+public class OutputPortItemProvider
+ extends PortItemProvider
+ implements
+ IEditingDomainItemProvider,
+ IStructuredItemContentProvider,
+ ITreeItemContentProvider,
+ IItemLabelProvider,
+ IItemPropertySource {
+ /**
+ * This constructs an instance from a factory and a notifier.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public OutputPortItemProvider(AdapterFactory adapterFactory) {
+ super(adapterFactory);
+ }
+
+ /**
+ * This returns the property descriptors for the adapted class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public List<IItemPropertyDescriptor> getPropertyDescriptors(Object object) {
+ if (itemPropertyDescriptors == null) {
+ super.getPropertyDescriptors(object);
+
+ }
+ return itemPropertyDescriptors;
+ }
+
+ /**
+ * This returns the label text for the adapted class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public String getText(Object object) {
+ String label = ((OutputPort)object).getName();
+ return label == null || label.length() == 0 ?
+ getString("_UI_OutputPort_type") :
+ getString("_UI_OutputPort_type") + " " + label;
+ }
+
+ /**
+ * This handles model notifications by calling {@link #updateChildren} to update any cached
+ * children and by creating a viewer notification, which it passes to {@link #fireNotifyChanged}.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public void notifyChanged(Notification notification) {
+ updateChildren(notification);
+ super.notifyChanged(notification);
+ }
+
+ /**
+ * This adds {@link org.eclipse.emf.edit.command.CommandParameter}s describing the children
+ * that can be created under this object.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ protected void collectNewChildDescriptors(Collection<Object> newChildDescriptors, Object object) {
+ super.collectNewChildDescriptors(newChildDescriptors, object);
+ }
+
+}
diff --git a/org.eclipse.emf.refactor.comrel.edit/src/comrel/provider/ParallelQueuedUnitItemProvider.java b/org.eclipse.emf.refactor.comrel.edit/src/comrel/provider/ParallelQueuedUnitItemProvider.java
new file mode 100644
index 0000000..eb08eee
--- /dev/null
+++ b/org.eclipse.emf.refactor.comrel.edit/src/comrel/provider/ParallelQueuedUnitItemProvider.java
@@ -0,0 +1,273 @@
+/**
+ * <copyright>
+ * </copyright>
+ *
+ * $Id$
+ */
+package comrel.provider;
+
+
+import comrel.ComrelFactory;
+import comrel.ComrelPackage;
+import comrel.ParallelQueuedUnit;
+
+import java.util.Collection;
+import java.util.List;
+
+import org.eclipse.emf.common.notify.AdapterFactory;
+import org.eclipse.emf.common.notify.Notification;
+
+import org.eclipse.emf.ecore.EStructuralFeature;
+
+import org.eclipse.emf.edit.provider.ComposeableAdapterFactory;
+import org.eclipse.emf.edit.provider.IEditingDomainItemProvider;
+import org.eclipse.emf.edit.provider.IItemLabelProvider;
+import org.eclipse.emf.edit.provider.IItemPropertyDescriptor;
+import org.eclipse.emf.edit.provider.IItemPropertySource;
+import org.eclipse.emf.edit.provider.IStructuredItemContentProvider;
+import org.eclipse.emf.edit.provider.ITreeItemContentProvider;
+import org.eclipse.emf.edit.provider.ItemPropertyDescriptor;
+import org.eclipse.emf.edit.provider.ViewerNotification;
+
+/**
+ * This is the item provider adapter for a {@link comrel.ParallelQueuedUnit} object.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+public class ParallelQueuedUnitItemProvider
+ extends TwicedQueuedUnitItemProvider
+ implements
+ IEditingDomainItemProvider,
+ IStructuredItemContentProvider,
+ ITreeItemContentProvider,
+ IItemLabelProvider,
+ IItemPropertySource {
+ /**
+ * This constructs an instance from a factory and a notifier.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public ParallelQueuedUnitItemProvider(AdapterFactory adapterFactory) {
+ super(adapterFactory);
+ }
+
+ /**
+ * This returns the property descriptors for the adapted class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public List<IItemPropertyDescriptor> getPropertyDescriptors(Object object) {
+ if (itemPropertyDescriptors == null) {
+ super.getPropertyDescriptors(object);
+
+ addTypePropertyDescriptor(object);
+ addLblStrictPropertyDescriptor(object);
+ }
+ return itemPropertyDescriptors;
+ }
+
+ /**
+ * This adds a property descriptor for the Type feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected void addTypePropertyDescriptor(Object object) {
+ itemPropertyDescriptors.add
+ (createItemPropertyDescriptor
+ (((ComposeableAdapterFactory)adapterFactory).getRootAdapterFactory(),
+ getResourceLocator(),
+ getString("_UI_ParallelQueuedUnit_type_feature"),
+ getString("_UI_PropertyDescriptor_description", "_UI_ParallelQueuedUnit_type_feature", "_UI_ParallelQueuedUnit_type"),
+ ComrelPackage.Literals.PARALLEL_QUEUED_UNIT__TYPE,
+ false,
+ false,
+ false,
+ ItemPropertyDescriptor.GENERIC_VALUE_IMAGE,
+ null,
+ null));
+ }
+
+ /**
+ * This adds a property descriptor for the Lbl Strict feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected void addLblStrictPropertyDescriptor(Object object) {
+ itemPropertyDescriptors.add
+ (createItemPropertyDescriptor
+ (((ComposeableAdapterFactory)adapterFactory).getRootAdapterFactory(),
+ getResourceLocator(),
+ getString("_UI_ParallelQueuedUnit_lblStrict_feature"),
+ getString("_UI_PropertyDescriptor_description", "_UI_ParallelQueuedUnit_lblStrict_feature", "_UI_ParallelQueuedUnit_type"),
+ ComrelPackage.Literals.PARALLEL_QUEUED_UNIT__LBL_STRICT,
+ true,
+ false,
+ false,
+ ItemPropertyDescriptor.GENERIC_VALUE_IMAGE,
+ null,
+ null));
+ }
+
+ /**
+ * This specifies how to implement {@link #getChildren} and is used to deduce an appropriate feature for an
+ * {@link org.eclipse.emf.edit.command.AddCommand}, {@link org.eclipse.emf.edit.command.RemoveCommand} or
+ * {@link org.eclipse.emf.edit.command.MoveCommand} in {@link #createCommand}.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public Collection<? extends EStructuralFeature> getChildrenFeatures(Object object) {
+ if (childrenFeatures == null) {
+ super.getChildrenFeatures(object);
+ childrenFeatures.add(ComrelPackage.Literals.PARALLEL_QUEUED_UNIT__HELPER_UNITS);
+ childrenFeatures.add(ComrelPackage.Literals.PARALLEL_QUEUED_UNIT__REFACTORING_UNITS);
+ childrenFeatures.add(ComrelPackage.Literals.PARALLEL_QUEUED_UNIT__SINGLE_INPUT_PORTS);
+ childrenFeatures.add(ComrelPackage.Literals.PARALLEL_QUEUED_UNIT__MULTI_INPUT_PORTS);
+ }
+ return childrenFeatures;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ protected EStructuralFeature getChildFeature(Object object, Object child) {
+ // Check the type of the specified child object and return the proper feature to use for
+ // adding (see {@link AddCommand}) it as a child.
+
+ return super.getChildFeature(object, child);
+ }
+
+ /**
+ * This returns ParallelQueuedUnit.gif.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public Object getImage(Object object) {
+ return overlayImage(object, getResourceLocator().getImage("full/obj16/ParallelQueuedUnit"));
+ }
+
+ /**
+ * This returns the label text for the adapted class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public String getText(Object object) {
+ String label = ((ParallelQueuedUnit)object).getName();
+ return label == null || label.length() == 0 ?
+ getString("_UI_ParallelQueuedUnit_type") :
+ getString("_UI_ParallelQueuedUnit_type") + " " + label;
+ }
+
+ /**
+ * This handles model notifications by calling {@link #updateChildren} to update any cached
+ * children and by creating a viewer notification, which it passes to {@link #fireNotifyChanged}.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public void notifyChanged(Notification notification) {
+ updateChildren(notification);
+
+ switch (notification.getFeatureID(ParallelQueuedUnit.class)) {
+ case ComrelPackage.PARALLEL_QUEUED_UNIT__TYPE:
+ case ComrelPackage.PARALLEL_QUEUED_UNIT__LBL_STRICT:
+ fireNotifyChanged(new ViewerNotification(notification, notification.getNotifier(), false, true));
+ return;
+ case ComrelPackage.PARALLEL_QUEUED_UNIT__HELPER_UNITS:
+ case ComrelPackage.PARALLEL_QUEUED_UNIT__REFACTORING_UNITS:
+ case ComrelPackage.PARALLEL_QUEUED_UNIT__SINGLE_INPUT_PORTS:
+ case ComrelPackage.PARALLEL_QUEUED_UNIT__MULTI_INPUT_PORTS:
+ fireNotifyChanged(new ViewerNotification(notification, notification.getNotifier(), true, false));
+ return;
+ }
+ super.notifyChanged(notification);
+ }
+
+ /**
+ * This adds {@link org.eclipse.emf.edit.command.CommandParameter}s describing the children
+ * that can be created under this object.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ protected void collectNewChildDescriptors(Collection<Object> newChildDescriptors, Object object) {
+ super.collectNewChildDescriptors(newChildDescriptors, object);
+
+ newChildDescriptors.add
+ (createChildParameter
+ (ComrelPackage.Literals.PARALLEL_QUEUED_UNIT__HELPER_UNITS,
+ ComrelFactory.eINSTANCE.createSingleFeatureUnit()));
+
+ newChildDescriptors.add
+ (createChildParameter
+ (ComrelPackage.Literals.PARALLEL_QUEUED_UNIT__HELPER_UNITS,
+ ComrelFactory.eINSTANCE.createMultiFeatureUnit()));
+
+ newChildDescriptors.add
+ (createChildParameter
+ (ComrelPackage.Literals.PARALLEL_QUEUED_UNIT__HELPER_UNITS,
+ ComrelFactory.eINSTANCE.createSingleFilterUnit()));
+
+ newChildDescriptors.add
+ (createChildParameter
+ (ComrelPackage.Literals.PARALLEL_QUEUED_UNIT__HELPER_UNITS,
+ ComrelFactory.eINSTANCE.createMultiFilterUnit()));
+
+ newChildDescriptors.add
+ (createChildParameter
+ (ComrelPackage.Literals.PARALLEL_QUEUED_UNIT__REFACTORING_UNITS,
+ ComrelFactory.eINSTANCE.createAtomicUnit()));
+
+ newChildDescriptors.add
+ (createChildParameter
+ (ComrelPackage.Literals.PARALLEL_QUEUED_UNIT__REFACTORING_UNITS,
+ ComrelFactory.eINSTANCE.createSequentialUnit()));
+
+ newChildDescriptors.add
+ (createChildParameter
+ (ComrelPackage.Literals.PARALLEL_QUEUED_UNIT__REFACTORING_UNITS,
+ ComrelFactory.eINSTANCE.createConditionalUnit()));
+
+ newChildDescriptors.add
+ (createChildParameter
+ (ComrelPackage.Literals.PARALLEL_QUEUED_UNIT__REFACTORING_UNITS,
+ ComrelFactory.eINSTANCE.createSingleQueuedUnit()));
+
+ newChildDescriptors.add
+ (createChildParameter
+ (ComrelPackage.Literals.PARALLEL_QUEUED_UNIT__REFACTORING_UNITS,
+ ComrelFactory.eINSTANCE.createCartesianQueuedUnit()));
+
+ newChildDescriptors.add
+ (createChildParameter
+ (ComrelPackage.Literals.PARALLEL_QUEUED_UNIT__REFACTORING_UNITS,
+ ComrelFactory.eINSTANCE.createParallelQueuedUnit()));
+
+ newChildDescriptors.add
+ (createChildParameter
+ (ComrelPackage.Literals.PARALLEL_QUEUED_UNIT__SINGLE_INPUT_PORTS,
+ ComrelFactory.eINSTANCE.createSingleInputPort()));
+
+ newChildDescriptors.add
+ (createChildParameter
+ (ComrelPackage.Literals.PARALLEL_QUEUED_UNIT__MULTI_INPUT_PORTS,
+ ComrelFactory.eINSTANCE.createMultiInputPort()));
+ }
+
+}
diff --git a/org.eclipse.emf.refactor.comrel.edit/src/comrel/provider/PortItemProvider.java b/org.eclipse.emf.refactor.comrel.edit/src/comrel/provider/PortItemProvider.java
new file mode 100644
index 0000000..6ca9d08
--- /dev/null
+++ b/org.eclipse.emf.refactor.comrel.edit/src/comrel/provider/PortItemProvider.java
@@ -0,0 +1,198 @@
+/**
+ * <copyright>
+ * </copyright>
+ *
+ * $Id$
+ */
+package comrel.provider;
+
+
+import comrel.ComrelPackage;
+import comrel.Port;
+
+import java.util.Collection;
+import java.util.List;
+
+import org.eclipse.emf.common.notify.AdapterFactory;
+import org.eclipse.emf.common.notify.Notification;
+
+import org.eclipse.emf.common.util.ResourceLocator;
+
+import org.eclipse.emf.edit.provider.ComposeableAdapterFactory;
+import org.eclipse.emf.edit.provider.IEditingDomainItemProvider;
+import org.eclipse.emf.edit.provider.IItemLabelProvider;
+import org.eclipse.emf.edit.provider.IItemPropertyDescriptor;
+import org.eclipse.emf.edit.provider.IItemPropertySource;
+import org.eclipse.emf.edit.provider.IStructuredItemContentProvider;
+import org.eclipse.emf.edit.provider.ITreeItemContentProvider;
+import org.eclipse.emf.edit.provider.ItemPropertyDescriptor;
+import org.eclipse.emf.edit.provider.ItemProviderAdapter;
+import org.eclipse.emf.edit.provider.ViewerNotification;
+
+/**
+ * This is the item provider adapter for a {@link comrel.Port} object.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+public class PortItemProvider
+ extends ItemProviderAdapter
+ implements
+ IEditingDomainItemProvider,
+ IStructuredItemContentProvider,
+ ITreeItemContentProvider,
+ IItemLabelProvider,
+ IItemPropertySource {
+ /**
+ * This constructs an instance from a factory and a notifier.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public PortItemProvider(AdapterFactory adapterFactory) {
+ super(adapterFactory);
+ }
+
+ /**
+ * This returns the property descriptors for the adapted class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public List<IItemPropertyDescriptor> getPropertyDescriptors(Object object) {
+ if (itemPropertyDescriptors == null) {
+ super.getPropertyDescriptors(object);
+
+ addNamePropertyDescriptor(object);
+ addDescriptionPropertyDescriptor(object);
+ addTypePropertyDescriptor(object);
+ }
+ return itemPropertyDescriptors;
+ }
+
+ /**
+ * This adds a property descriptor for the Name feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected void addNamePropertyDescriptor(Object object) {
+ itemPropertyDescriptors.add
+ (createItemPropertyDescriptor
+ (((ComposeableAdapterFactory)adapterFactory).getRootAdapterFactory(),
+ getResourceLocator(),
+ getString("_UI_NamedElement_name_feature"),
+ getString("_UI_PropertyDescriptor_description", "_UI_NamedElement_name_feature", "_UI_NamedElement_type"),
+ ComrelPackage.Literals.NAMED_ELEMENT__NAME,
+ true,
+ false,
+ false,
+ ItemPropertyDescriptor.GENERIC_VALUE_IMAGE,
+ null,
+ null));
+ }
+
+ /**
+ * This adds a property descriptor for the Description feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected void addDescriptionPropertyDescriptor(Object object) {
+ itemPropertyDescriptors.add
+ (createItemPropertyDescriptor
+ (((ComposeableAdapterFactory)adapterFactory).getRootAdapterFactory(),
+ getResourceLocator(),
+ getString("_UI_DescribedElement_description_feature"),
+ getString("_UI_PropertyDescriptor_description", "_UI_DescribedElement_description_feature", "_UI_DescribedElement_type"),
+ ComrelPackage.Literals.DESCRIBED_ELEMENT__DESCRIPTION,
+ true,
+ false,
+ false,
+ ItemPropertyDescriptor.GENERIC_VALUE_IMAGE,
+ null,
+ null));
+ }
+
+ /**
+ * This adds a property descriptor for the Type feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected void addTypePropertyDescriptor(Object object) {
+ itemPropertyDescriptors.add
+ (createItemPropertyDescriptor
+ (((ComposeableAdapterFactory)adapterFactory).getRootAdapterFactory(),
+ getResourceLocator(),
+ getString("_UI_Port_type_feature"),
+ getString("_UI_PropertyDescriptor_description", "_UI_Port_type_feature", "_UI_Port_type"),
+ ComrelPackage.Literals.PORT__TYPE,
+ true,
+ false,
+ false,
+ ItemPropertyDescriptor.GENERIC_VALUE_IMAGE,
+ null,
+ null));
+ }
+
+ /**
+ * This returns the label text for the adapted class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public String getText(Object object) {
+ String label = ((Port)object).getName();
+ return label == null || label.length() == 0 ?
+ getString("_UI_Port_type") :
+ getString("_UI_Port_type") + " " + label;
+ }
+
+ /**
+ * This handles model notifications by calling {@link #updateChildren} to update any cached
+ * children and by creating a viewer notification, which it passes to {@link #fireNotifyChanged}.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public void notifyChanged(Notification notification) {
+ updateChildren(notification);
+
+ switch (notification.getFeatureID(Port.class)) {
+ case ComrelPackage.PORT__NAME:
+ case ComrelPackage.PORT__DESCRIPTION:
+ case ComrelPackage.PORT__TYPE:
+ fireNotifyChanged(new ViewerNotification(notification, notification.getNotifier(), false, true));
+ return;
+ }
+ super.notifyChanged(notification);
+ }
+
+ /**
+ * This adds {@link org.eclipse.emf.edit.command.CommandParameter}s describing the children
+ * that can be created under this object.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ protected void collectNewChildDescriptors(Collection<Object> newChildDescriptors, Object object) {
+ super.collectNewChildDescriptors(newChildDescriptors, object);
+ }
+
+ /**
+ * Return the resource locator for this item provider's resources.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public ResourceLocator getResourceLocator() {
+ return ComrelEditPlugin.INSTANCE;
+ }
+
+}
diff --git a/org.eclipse.emf.refactor.comrel.edit/src/comrel/provider/PortMappingItemProvider.java b/org.eclipse.emf.refactor.comrel.edit/src/comrel/provider/PortMappingItemProvider.java
new file mode 100644
index 0000000..eac92ed
--- /dev/null
+++ b/org.eclipse.emf.refactor.comrel.edit/src/comrel/provider/PortMappingItemProvider.java
@@ -0,0 +1,112 @@
+/**
+ * <copyright>
+ * </copyright>
+ *
+ * $Id$
+ */
+package comrel.provider;
+
+
+import java.util.Collection;
+import java.util.List;
+
+import org.eclipse.emf.common.notify.AdapterFactory;
+import org.eclipse.emf.common.notify.Notification;
+
+import org.eclipse.emf.common.util.ResourceLocator;
+
+import org.eclipse.emf.edit.provider.IEditingDomainItemProvider;
+import org.eclipse.emf.edit.provider.IItemLabelProvider;
+import org.eclipse.emf.edit.provider.IItemPropertyDescriptor;
+import org.eclipse.emf.edit.provider.IItemPropertySource;
+import org.eclipse.emf.edit.provider.IStructuredItemContentProvider;
+import org.eclipse.emf.edit.provider.ITreeItemContentProvider;
+import org.eclipse.emf.edit.provider.ItemProviderAdapter;
+
+/**
+ * This is the item provider adapter for a {@link comrel.PortMapping} object.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+public class PortMappingItemProvider
+ extends ItemProviderAdapter
+ implements
+ IEditingDomainItemProvider,
+ IStructuredItemContentProvider,
+ ITreeItemContentProvider,
+ IItemLabelProvider,
+ IItemPropertySource {
+ /**
+ * This constructs an instance from a factory and a notifier.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public PortMappingItemProvider(AdapterFactory adapterFactory) {
+ super(adapterFactory);
+ }
+
+ /**
+ * This returns the property descriptors for the adapted class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public List<IItemPropertyDescriptor> getPropertyDescriptors(Object object) {
+ if (itemPropertyDescriptors == null) {
+ super.getPropertyDescriptors(object);
+
+ }
+ return itemPropertyDescriptors;
+ }
+
+ /**
+ * This returns the label text for the adapted class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public String getText(Object object) {
+ return getString("_UI_PortMapping_type");
+ }
+
+ /**
+ * This handles model notifications by calling {@link #updateChildren} to update any cached
+ * children and by creating a viewer notification, which it passes to {@link #fireNotifyChanged}.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public void notifyChanged(Notification notification) {
+ updateChildren(notification);
+ super.notifyChanged(notification);
+ }
+
+ /**
+ * This adds {@link org.eclipse.emf.edit.command.CommandParameter}s describing the children
+ * that can be created under this object.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ protected void collectNewChildDescriptors(Collection<Object> newChildDescriptors, Object object) {
+ super.collectNewChildDescriptors(newChildDescriptors, object);
+ }
+
+ /**
+ * Return the resource locator for this item provider's resources.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public ResourceLocator getResourceLocator() {
+ return ComrelEditPlugin.INSTANCE;
+ }
+
+}
diff --git a/org.eclipse.emf.refactor.comrel.edit/src/comrel/provider/QueuedUnitItemProvider.java b/org.eclipse.emf.refactor.comrel.edit/src/comrel/provider/QueuedUnitItemProvider.java
new file mode 100644
index 0000000..fb9d1c5
--- /dev/null
+++ b/org.eclipse.emf.refactor.comrel.edit/src/comrel/provider/QueuedUnitItemProvider.java
@@ -0,0 +1,136 @@
+/**
+ * <copyright>
+ * </copyright>
+ *
+ * $Id$
+ */
+package comrel.provider;
+
+
+import comrel.ComrelPackage;
+import comrel.QueuedUnit;
+
+import java.util.Collection;
+import java.util.List;
+
+import org.eclipse.emf.common.notify.AdapterFactory;
+import org.eclipse.emf.common.notify.Notification;
+
+import org.eclipse.emf.edit.provider.ComposeableAdapterFactory;
+import org.eclipse.emf.edit.provider.IEditingDomainItemProvider;
+import org.eclipse.emf.edit.provider.IItemLabelProvider;
+import org.eclipse.emf.edit.provider.IItemPropertyDescriptor;
+import org.eclipse.emf.edit.provider.IItemPropertySource;
+import org.eclipse.emf.edit.provider.IStructuredItemContentProvider;
+import org.eclipse.emf.edit.provider.ITreeItemContentProvider;
+import org.eclipse.emf.edit.provider.ItemPropertyDescriptor;
+import org.eclipse.emf.edit.provider.ViewerNotification;
+
+/**
+ * This is the item provider adapter for a {@link comrel.QueuedUnit} object.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+public class QueuedUnitItemProvider
+ extends CompositeUnitItemProvider
+ implements
+ IEditingDomainItemProvider,
+ IStructuredItemContentProvider,
+ ITreeItemContentProvider,
+ IItemLabelProvider,
+ IItemPropertySource {
+ /**
+ * This constructs an instance from a factory and a notifier.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public QueuedUnitItemProvider(AdapterFactory adapterFactory) {
+ super(adapterFactory);
+ }
+
+ /**
+ * This returns the property descriptors for the adapted class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public List<IItemPropertyDescriptor> getPropertyDescriptors(Object object) {
+ if (itemPropertyDescriptors == null) {
+ super.getPropertyDescriptors(object);
+
+ addStrictPropertyDescriptor(object);
+ }
+ return itemPropertyDescriptors;
+ }
+
+ /**
+ * This adds a property descriptor for the Strict feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected void addStrictPropertyDescriptor(Object object) {
+ itemPropertyDescriptors.add
+ (createItemPropertyDescriptor
+ (((ComposeableAdapterFactory)adapterFactory).getRootAdapterFactory(),
+ getResourceLocator(),
+ getString("_UI_QueuedUnit_strict_feature"),
+ getString("_UI_PropertyDescriptor_description", "_UI_QueuedUnit_strict_feature", "_UI_QueuedUnit_type"),
+ ComrelPackage.Literals.QUEUED_UNIT__STRICT,
+ true,
+ false,
+ false,
+ ItemPropertyDescriptor.BOOLEAN_VALUE_IMAGE,
+ null,
+ null));
+ }
+
+ /**
+ * This returns the label text for the adapted class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public String getText(Object object) {
+ String label = ((QueuedUnit)object).getName();
+ return label == null || label.length() == 0 ?
+ getString("_UI_QueuedUnit_type") :
+ getString("_UI_QueuedUnit_type") + " " + label;
+ }
+
+ /**
+ * This handles model notifications by calling {@link #updateChildren} to update any cached
+ * children and by creating a viewer notification, which it passes to {@link #fireNotifyChanged}.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public void notifyChanged(Notification notification) {
+ updateChildren(notification);
+
+ switch (notification.getFeatureID(QueuedUnit.class)) {
+ case ComrelPackage.QUEUED_UNIT__STRICT:
+ fireNotifyChanged(new ViewerNotification(notification, notification.getNotifier(), false, true));
+ return;
+ }
+ super.notifyChanged(notification);
+ }
+
+ /**
+ * This adds {@link org.eclipse.emf.edit.command.CommandParameter}s describing the children
+ * that can be created under this object.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ protected void collectNewChildDescriptors(Collection<Object> newChildDescriptors, Object object) {
+ super.collectNewChildDescriptors(newChildDescriptors, object);
+ }
+
+}
diff --git a/org.eclipse.emf.refactor.comrel.edit/src/comrel/provider/RefactoringUnitItemProvider.java b/org.eclipse.emf.refactor.comrel.edit/src/comrel/provider/RefactoringUnitItemProvider.java
new file mode 100644
index 0000000..64d929b
--- /dev/null
+++ b/org.eclipse.emf.refactor.comrel.edit/src/comrel/provider/RefactoringUnitItemProvider.java
@@ -0,0 +1,174 @@
+/**
+ * <copyright>
+ * </copyright>
+ *
+ * $Id$
+ */
+package comrel.provider;
+
+
+import comrel.ComrelPackage;
+import comrel.RefactoringUnit;
+
+import java.util.Collection;
+import java.util.List;
+
+import org.eclipse.emf.common.notify.AdapterFactory;
+import org.eclipse.emf.common.notify.Notification;
+
+import org.eclipse.emf.common.util.ResourceLocator;
+
+import org.eclipse.emf.edit.provider.ComposeableAdapterFactory;
+import org.eclipse.emf.edit.provider.IEditingDomainItemProvider;
+import org.eclipse.emf.edit.provider.IItemLabelProvider;
+import org.eclipse.emf.edit.provider.IItemPropertyDescriptor;
+import org.eclipse.emf.edit.provider.IItemPropertySource;
+import org.eclipse.emf.edit.provider.IStructuredItemContentProvider;
+import org.eclipse.emf.edit.provider.ITreeItemContentProvider;
+import org.eclipse.emf.edit.provider.ItemPropertyDescriptor;
+import org.eclipse.emf.edit.provider.ItemProviderAdapter;
+import org.eclipse.emf.edit.provider.ViewerNotification;
+
+/**
+ * This is the item provider adapter for a {@link comrel.RefactoringUnit} object.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+public class RefactoringUnitItemProvider
+ extends ItemProviderAdapter
+ implements
+ IEditingDomainItemProvider,
+ IStructuredItemContentProvider,
+ ITreeItemContentProvider,
+ IItemLabelProvider,
+ IItemPropertySource {
+ /**
+ * This constructs an instance from a factory and a notifier.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public RefactoringUnitItemProvider(AdapterFactory adapterFactory) {
+ super(adapterFactory);
+ }
+
+ /**
+ * This returns the property descriptors for the adapted class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public List<IItemPropertyDescriptor> getPropertyDescriptors(Object object) {
+ if (itemPropertyDescriptors == null) {
+ super.getPropertyDescriptors(object);
+
+ addNamePropertyDescriptor(object);
+ addSeqExecutionOrderPropertyDescriptor(object);
+ }
+ return itemPropertyDescriptors;
+ }
+
+ /**
+ * This adds a property descriptor for the Name feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected void addNamePropertyDescriptor(Object object) {
+ itemPropertyDescriptors.add
+ (createItemPropertyDescriptor
+ (((ComposeableAdapterFactory)adapterFactory).getRootAdapterFactory(),
+ getResourceLocator(),
+ getString("_UI_NamedElement_name_feature"),
+ getString("_UI_PropertyDescriptor_description", "_UI_NamedElement_name_feature", "_UI_NamedElement_type"),
+ ComrelPackage.Literals.NAMED_ELEMENT__NAME,
+ true,
+ false,
+ false,
+ ItemPropertyDescriptor.GENERIC_VALUE_IMAGE,
+ null,
+ null));
+ }
+
+ /**
+ * This adds a property descriptor for the Seq Execution Order feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected void addSeqExecutionOrderPropertyDescriptor(Object object) {
+ itemPropertyDescriptors.add
+ (createItemPropertyDescriptor
+ (((ComposeableAdapterFactory)adapterFactory).getRootAdapterFactory(),
+ getResourceLocator(),
+ getString("_UI_RefactoringUnit_seqExecutionOrder_feature"),
+ getString("_UI_PropertyDescriptor_description", "_UI_RefactoringUnit_seqExecutionOrder_feature", "_UI_RefactoringUnit_type"),
+ ComrelPackage.Literals.REFACTORING_UNIT__SEQ_EXECUTION_ORDER,
+ true,
+ false,
+ false,
+ ItemPropertyDescriptor.INTEGRAL_VALUE_IMAGE,
+ null,
+ null));
+ }
+
+ /**
+ * This returns the label text for the adapted class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public String getText(Object object) {
+ String label = ((RefactoringUnit)object).getName();
+ return label == null || label.length() == 0 ?
+ getString("_UI_RefactoringUnit_type") :
+ getString("_UI_RefactoringUnit_type") + " " + label;
+ }
+
+ /**
+ * This handles model notifications by calling {@link #updateChildren} to update any cached
+ * children and by creating a viewer notification, which it passes to {@link #fireNotifyChanged}.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public void notifyChanged(Notification notification) {
+ updateChildren(notification);
+
+ switch (notification.getFeatureID(RefactoringUnit.class)) {
+ case ComrelPackage.REFACTORING_UNIT__NAME:
+ case ComrelPackage.REFACTORING_UNIT__SEQ_EXECUTION_ORDER:
+ fireNotifyChanged(new ViewerNotification(notification, notification.getNotifier(), false, true));
+ return;
+ }
+ super.notifyChanged(notification);
+ }
+
+ /**
+ * This adds {@link org.eclipse.emf.edit.command.CommandParameter}s describing the children
+ * that can be created under this object.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ protected void collectNewChildDescriptors(Collection<Object> newChildDescriptors, Object object) {
+ super.collectNewChildDescriptors(newChildDescriptors, object);
+ }
+
+ /**
+ * Return the resource locator for this item provider's resources.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public ResourceLocator getResourceLocator() {
+ return ComrelEditPlugin.INSTANCE;
+ }
+
+}
diff --git a/org.eclipse.emf.refactor.comrel.edit/src/comrel/provider/SequentialUnitItemProvider.java b/org.eclipse.emf.refactor.comrel.edit/src/comrel/provider/SequentialUnitItemProvider.java
new file mode 100644
index 0000000..eb805da
--- /dev/null
+++ b/org.eclipse.emf.refactor.comrel.edit/src/comrel/provider/SequentialUnitItemProvider.java
@@ -0,0 +1,295 @@
+/**
+ * <copyright>
+ * </copyright>
+ *
+ * $Id$
+ */
+package comrel.provider;
+
+
+import comrel.ComrelFactory;
+import comrel.ComrelPackage;
+import comrel.SequentialUnit;
+
+import java.util.Collection;
+import java.util.List;
+
+import org.eclipse.emf.common.notify.AdapterFactory;
+import org.eclipse.emf.common.notify.Notification;
+
+import org.eclipse.emf.ecore.EStructuralFeature;
+
+import org.eclipse.emf.edit.provider.ComposeableAdapterFactory;
+import org.eclipse.emf.edit.provider.IEditingDomainItemProvider;
+import org.eclipse.emf.edit.provider.IItemLabelProvider;
+import org.eclipse.emf.edit.provider.IItemPropertyDescriptor;
+import org.eclipse.emf.edit.provider.IItemPropertySource;
+import org.eclipse.emf.edit.provider.IStructuredItemContentProvider;
+import org.eclipse.emf.edit.provider.ITreeItemContentProvider;
+import org.eclipse.emf.edit.provider.ItemPropertyDescriptor;
+import org.eclipse.emf.edit.provider.ViewerNotification;
+
+/**
+ * This is the item provider adapter for a {@link comrel.SequentialUnit} object.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+public class SequentialUnitItemProvider
+ extends CompositeUnitItemProvider
+ implements
+ IEditingDomainItemProvider,
+ IStructuredItemContentProvider,
+ ITreeItemContentProvider,
+ IItemLabelProvider,
+ IItemPropertySource {
+ /**
+ * This constructs an instance from a factory and a notifier.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public SequentialUnitItemProvider(AdapterFactory adapterFactory) {
+ super(adapterFactory);
+ }
+
+ /**
+ * This returns the property descriptors for the adapted class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public List<IItemPropertyDescriptor> getPropertyDescriptors(Object object) {
+ if (itemPropertyDescriptors == null) {
+ super.getPropertyDescriptors(object);
+
+ addStrictPropertyDescriptor(object);
+ addTypePropertyDescriptor(object);
+ addLblStrictPropertyDescriptor(object);
+ }
+ return itemPropertyDescriptors;
+ }
+
+ /**
+ * This adds a property descriptor for the Strict feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected void addStrictPropertyDescriptor(Object object) {
+ itemPropertyDescriptors.add
+ (createItemPropertyDescriptor
+ (((ComposeableAdapterFactory)adapterFactory).getRootAdapterFactory(),
+ getResourceLocator(),
+ getString("_UI_SequentialUnit_strict_feature"),
+ getString("_UI_PropertyDescriptor_description", "_UI_SequentialUnit_strict_feature", "_UI_SequentialUnit_type"),
+ ComrelPackage.Literals.SEQUENTIAL_UNIT__STRICT,
+ true,
+ false,
+ false,
+ ItemPropertyDescriptor.BOOLEAN_VALUE_IMAGE,
+ null,
+ null));
+ }
+
+ /**
+ * This adds a property descriptor for the Type feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected void addTypePropertyDescriptor(Object object) {
+ itemPropertyDescriptors.add
+ (createItemPropertyDescriptor
+ (((ComposeableAdapterFactory)adapterFactory).getRootAdapterFactory(),
+ getResourceLocator(),
+ getString("_UI_SequentialUnit_type_feature"),
+ getString("_UI_PropertyDescriptor_description", "_UI_SequentialUnit_type_feature", "_UI_SequentialUnit_type"),
+ ComrelPackage.Literals.SEQUENTIAL_UNIT__TYPE,
+ false,
+ false,
+ false,
+ ItemPropertyDescriptor.GENERIC_VALUE_IMAGE,
+ null,
+ null));
+ }
+
+ /**
+ * This adds a property descriptor for the Lbl Strict feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected void addLblStrictPropertyDescriptor(Object object) {
+ itemPropertyDescriptors.add
+ (createItemPropertyDescriptor
+ (((ComposeableAdapterFactory)adapterFactory).getRootAdapterFactory(),
+ getResourceLocator(),
+ getString("_UI_SequentialUnit_lblStrict_feature"),
+ getString("_UI_PropertyDescriptor_description", "_UI_SequentialUnit_lblStrict_feature", "_UI_SequentialUnit_type"),
+ ComrelPackage.Literals.SEQUENTIAL_UNIT__LBL_STRICT,
+ true,
+ false,
+ false,
+ ItemPropertyDescriptor.GENERIC_VALUE_IMAGE,
+ null,
+ null));
+ }
+
+ /**
+ * This specifies how to implement {@link #getChildren} and is used to deduce an appropriate feature for an
+ * {@link org.eclipse.emf.edit.command.AddCommand}, {@link org.eclipse.emf.edit.command.RemoveCommand} or
+ * {@link org.eclipse.emf.edit.command.MoveCommand} in {@link #createCommand}.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public Collection<? extends EStructuralFeature> getChildrenFeatures(Object object) {
+ if (childrenFeatures == null) {
+ super.getChildrenFeatures(object);
+ childrenFeatures.add(ComrelPackage.Literals.SEQUENTIAL_UNIT__HELPER_UNITS);
+ childrenFeatures.add(ComrelPackage.Literals.SEQUENTIAL_UNIT__REFACTORING_UNITS);
+ childrenFeatures.add(ComrelPackage.Literals.SEQUENTIAL_UNIT__INPUT_PORTS);
+ }
+ return childrenFeatures;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ protected EStructuralFeature getChildFeature(Object object, Object child) {
+ // Check the type of the specified child object and return the proper feature to use for
+ // adding (see {@link AddCommand}) it as a child.
+
+ return super.getChildFeature(object, child);
+ }
+
+ /**
+ * This returns SequentialUnit.gif.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public Object getImage(Object object) {
+ return overlayImage(object, getResourceLocator().getImage("full/obj16/SequentialUnit"));
+ }
+
+ /**
+ * This returns the label text for the adapted class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public String getText(Object object) {
+ String label = ((SequentialUnit)object).getName();
+ return label == null || label.length() == 0 ?
+ getString("_UI_SequentialUnit_type") :
+ getString("_UI_SequentialUnit_type") + " " + label;
+ }
+
+ /**
+ * This handles model notifications by calling {@link #updateChildren} to update any cached
+ * children and by creating a viewer notification, which it passes to {@link #fireNotifyChanged}.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public void notifyChanged(Notification notification) {
+ updateChildren(notification);
+
+ switch (notification.getFeatureID(SequentialUnit.class)) {
+ case ComrelPackage.SEQUENTIAL_UNIT__STRICT:
+ case ComrelPackage.SEQUENTIAL_UNIT__TYPE:
+ case ComrelPackage.SEQUENTIAL_UNIT__LBL_STRICT:
+ fireNotifyChanged(new ViewerNotification(notification, notification.getNotifier(), false, true));
+ return;
+ case ComrelPackage.SEQUENTIAL_UNIT__HELPER_UNITS:
+ case ComrelPackage.SEQUENTIAL_UNIT__REFACTORING_UNITS:
+ case ComrelPackage.SEQUENTIAL_UNIT__INPUT_PORTS:
+ fireNotifyChanged(new ViewerNotification(notification, notification.getNotifier(), true, false));
+ return;
+ }
+ super.notifyChanged(notification);
+ }
+
+ /**
+ * This adds {@link org.eclipse.emf.edit.command.CommandParameter}s describing the children
+ * that can be created under this object.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ protected void collectNewChildDescriptors(Collection<Object> newChildDescriptors, Object object) {
+ super.collectNewChildDescriptors(newChildDescriptors, object);
+
+ newChildDescriptors.add
+ (createChildParameter
+ (ComrelPackage.Literals.SEQUENTIAL_UNIT__HELPER_UNITS,
+ ComrelFactory.eINSTANCE.createSingleFeatureUnit()));
+
+ newChildDescriptors.add
+ (createChildParameter
+ (ComrelPackage.Literals.SEQUENTIAL_UNIT__HELPER_UNITS,
+ ComrelFactory.eINSTANCE.createMultiFeatureUnit()));
+
+ newChildDescriptors.add
+ (createChildParameter
+ (ComrelPackage.Literals.SEQUENTIAL_UNIT__HELPER_UNITS,
+ ComrelFactory.eINSTANCE.createSingleFilterUnit()));
+
+ newChildDescriptors.add
+ (createChildParameter
+ (ComrelPackage.Literals.SEQUENTIAL_UNIT__HELPER_UNITS,
+ ComrelFactory.eINSTANCE.createMultiFilterUnit()));
+
+ newChildDescriptors.add
+ (createChildParameter
+ (ComrelPackage.Literals.SEQUENTIAL_UNIT__REFACTORING_UNITS,
+ ComrelFactory.eINSTANCE.createAtomicUnit()));
+
+ newChildDescriptors.add
+ (createChildParameter
+ (ComrelPackage.Literals.SEQUENTIAL_UNIT__REFACTORING_UNITS,
+ ComrelFactory.eINSTANCE.createSequentialUnit()));
+
+ newChildDescriptors.add
+ (createChildParameter
+ (ComrelPackage.Literals.SEQUENTIAL_UNIT__REFACTORING_UNITS,
+ ComrelFactory.eINSTANCE.createConditionalUnit()));
+
+ newChildDescriptors.add
+ (createChildParameter
+ (ComrelPackage.Literals.SEQUENTIAL_UNIT__REFACTORING_UNITS,
+ ComrelFactory.eINSTANCE.createSingleQueuedUnit()));
+
+ newChildDescriptors.add
+ (createChildParameter
+ (ComrelPackage.Literals.SEQUENTIAL_UNIT__REFACTORING_UNITS,
+ ComrelFactory.eINSTANCE.createCartesianQueuedUnit()));
+
+ newChildDescriptors.add
+ (createChildParameter
+ (ComrelPackage.Literals.SEQUENTIAL_UNIT__REFACTORING_UNITS,
+ ComrelFactory.eINSTANCE.createParallelQueuedUnit()));
+
+ newChildDescriptors.add
+ (createChildParameter
+ (ComrelPackage.Literals.SEQUENTIAL_UNIT__INPUT_PORTS,
+ ComrelFactory.eINSTANCE.createSingleInputPort()));
+
+ newChildDescriptors.add
+ (createChildParameter
+ (ComrelPackage.Literals.SEQUENTIAL_UNIT__INPUT_PORTS,
+ ComrelFactory.eINSTANCE.createMultiInputPort()));
+ }
+
+}
diff --git a/org.eclipse.emf.refactor.comrel.edit/src/comrel/provider/SingleFeatureHelperItemProvider.java b/org.eclipse.emf.refactor.comrel.edit/src/comrel/provider/SingleFeatureHelperItemProvider.java
new file mode 100644
index 0000000..9f76477
--- /dev/null
+++ b/org.eclipse.emf.refactor.comrel.edit/src/comrel/provider/SingleFeatureHelperItemProvider.java
@@ -0,0 +1,160 @@
+/**
+ * <copyright>
+ * </copyright>
+ *
+ * $Id$
+ */
+package comrel.provider;
+
+
+import comrel.ComrelFactory;
+import comrel.ComrelPackage;
+import comrel.SingleFeatureHelper;
+
+import java.util.Collection;
+import java.util.List;
+
+import org.eclipse.emf.common.notify.AdapterFactory;
+import org.eclipse.emf.common.notify.Notification;
+
+import org.eclipse.emf.ecore.EStructuralFeature;
+
+import org.eclipse.emf.edit.provider.IEditingDomainItemProvider;
+import org.eclipse.emf.edit.provider.IItemLabelProvider;
+import org.eclipse.emf.edit.provider.IItemPropertyDescriptor;
+import org.eclipse.emf.edit.provider.IItemPropertySource;
+import org.eclipse.emf.edit.provider.IStructuredItemContentProvider;
+import org.eclipse.emf.edit.provider.ITreeItemContentProvider;
+import org.eclipse.emf.edit.provider.ViewerNotification;
+
+/**
+ * This is the item provider adapter for a {@link comrel.SingleFeatureHelper} object.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+public class SingleFeatureHelperItemProvider
+ extends FeatureHelperItemProvider
+ implements
+ IEditingDomainItemProvider,
+ IStructuredItemContentProvider,
+ ITreeItemContentProvider,
+ IItemLabelProvider,
+ IItemPropertySource {
+ /**
+ * This constructs an instance from a factory and a notifier.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public SingleFeatureHelperItemProvider(AdapterFactory adapterFactory) {
+ super(adapterFactory);
+ }
+
+ /**
+ * This returns the property descriptors for the adapted class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public List<IItemPropertyDescriptor> getPropertyDescriptors(Object object) {
+ if (itemPropertyDescriptors == null) {
+ super.getPropertyDescriptors(object);
+
+ }
+ return itemPropertyDescriptors;
+ }
+
+ /**
+ * This specifies how to implement {@link #getChildren} and is used to deduce an appropriate feature for an
+ * {@link org.eclipse.emf.edit.command.AddCommand}, {@link org.eclipse.emf.edit.command.RemoveCommand} or
+ * {@link org.eclipse.emf.edit.command.MoveCommand} in {@link #createCommand}.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public Collection<? extends EStructuralFeature> getChildrenFeatures(Object object) {
+ if (childrenFeatures == null) {
+ super.getChildrenFeatures(object);
+ childrenFeatures.add(ComrelPackage.Literals.SINGLE_FEATURE_HELPER__OUTPUT_PORT);
+ }
+ return childrenFeatures;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ protected EStructuralFeature getChildFeature(Object object, Object child) {
+ // Check the type of the specified child object and return the proper feature to use for
+ // adding (see {@link AddCommand}) it as a child.
+
+ return super.getChildFeature(object, child);
+ }
+
+ /**
+ * This returns SingleFeatureHelper.gif.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public Object getImage(Object object) {
+ return overlayImage(object, getResourceLocator().getImage("full/obj16/SingleFeatureHelper"));
+ }
+
+ /**
+ * This returns the label text for the adapted class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public String getText(Object object) {
+ String label = ((SingleFeatureHelper)object).getName();
+ return label == null || label.length() == 0 ?
+ getString("_UI_SingleFeatureHelper_type") :
+ getString("_UI_SingleFeatureHelper_type") + " " + label;
+ }
+
+ /**
+ * This handles model notifications by calling {@link #updateChildren} to update any cached
+ * children and by creating a viewer notification, which it passes to {@link #fireNotifyChanged}.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public void notifyChanged(Notification notification) {
+ updateChildren(notification);
+
+ switch (notification.getFeatureID(SingleFeatureHelper.class)) {
+ case ComrelPackage.SINGLE_FEATURE_HELPER__OUTPUT_PORT:
+ fireNotifyChanged(new ViewerNotification(notification, notification.getNotifier(), true, false));
+ return;
+ }
+ super.notifyChanged(notification);
+ }
+
+ /**
+ * This adds {@link org.eclipse.emf.edit.command.CommandParameter}s describing the children
+ * that can be created under this object.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ protected void collectNewChildDescriptors(Collection<Object> newChildDescriptors, Object object) {
+ super.collectNewChildDescriptors(newChildDescriptors, object);
+
+ newChildDescriptors.add
+ (createChildParameter
+ (ComrelPackage.Literals.SINGLE_FEATURE_HELPER__OUTPUT_PORT,
+ ComrelFactory.eINSTANCE.createSingleOutputPort()));
+ }
+
+}
diff --git a/org.eclipse.emf.refactor.comrel.edit/src/comrel/provider/SingleFeatureUnitItemProvider.java b/org.eclipse.emf.refactor.comrel.edit/src/comrel/provider/SingleFeatureUnitItemProvider.java
new file mode 100644
index 0000000..01fd17c
--- /dev/null
+++ b/org.eclipse.emf.refactor.comrel.edit/src/comrel/provider/SingleFeatureUnitItemProvider.java
@@ -0,0 +1,225 @@
+/**
+ * <copyright>
+ * </copyright>
+ *
+ * $Id$
+ */
+package comrel.provider;
+
+
+import comrel.ComrelFactory;
+import comrel.ComrelPackage;
+import comrel.SingleFeatureUnit;
+
+import java.util.Collection;
+import java.util.List;
+
+import org.eclipse.emf.common.notify.AdapterFactory;
+import org.eclipse.emf.common.notify.Notification;
+
+import org.eclipse.emf.ecore.EStructuralFeature;
+
+import org.eclipse.emf.edit.provider.ComposeableAdapterFactory;
+import org.eclipse.emf.edit.provider.IEditingDomainItemProvider;
+import org.eclipse.emf.edit.provider.IItemLabelProvider;
+import org.eclipse.emf.edit.provider.IItemPropertyDescriptor;
+import org.eclipse.emf.edit.provider.IItemPropertySource;
+import org.eclipse.emf.edit.provider.IStructuredItemContentProvider;
+import org.eclipse.emf.edit.provider.ITreeItemContentProvider;
+import org.eclipse.emf.edit.provider.ItemPropertyDescriptor;
+import org.eclipse.emf.edit.provider.ViewerNotification;
+
+/**
+ * This is the item provider adapter for a {@link comrel.SingleFeatureUnit} object.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+public class SingleFeatureUnitItemProvider
+ extends FeatureUnitItemProvider
+ implements
+ IEditingDomainItemProvider,
+ IStructuredItemContentProvider,
+ ITreeItemContentProvider,
+ IItemLabelProvider,
+ IItemPropertySource {
+ /**
+ * This constructs an instance from a factory and a notifier.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public SingleFeatureUnitItemProvider(AdapterFactory adapterFactory) {
+ super(adapterFactory);
+ }
+
+ /**
+ * This returns the property descriptors for the adapted class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public List<IItemPropertyDescriptor> getPropertyDescriptors(Object object) {
+ if (itemPropertyDescriptors == null) {
+ super.getPropertyDescriptors(object);
+
+ addSingleFeatureHelperPropertyDescriptor(object);
+ addTypePropertyDescriptor(object);
+ }
+ return itemPropertyDescriptors;
+ }
+
+ /**
+ * This adds a property descriptor for the Single Feature Helper feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected void addSingleFeatureHelperPropertyDescriptor(Object object) {
+ itemPropertyDescriptors.add
+ (createItemPropertyDescriptor
+ (((ComposeableAdapterFactory)adapterFactory).getRootAdapterFactory(),
+ getResourceLocator(),
+ getString("_UI_SingleFeatureUnit_singleFeatureHelper_feature"),
+ getString("_UI_PropertyDescriptor_description", "_UI_SingleFeatureUnit_singleFeatureHelper_feature", "_UI_SingleFeatureUnit_type"),
+ ComrelPackage.Literals.SINGLE_FEATURE_UNIT__SINGLE_FEATURE_HELPER,
+ true,
+ false,
+ true,
+ null,
+ null,
+ null));
+ }
+
+ /**
+ * This adds a property descriptor for the Type feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected void addTypePropertyDescriptor(Object object) {
+ itemPropertyDescriptors.add
+ (createItemPropertyDescriptor
+ (((ComposeableAdapterFactory)adapterFactory).getRootAdapterFactory(),
+ getResourceLocator(),
+ getString("_UI_SingleFeatureUnit_type_feature"),
+ getString("_UI_PropertyDescriptor_description", "_UI_SingleFeatureUnit_type_feature", "_UI_SingleFeatureUnit_type"),
+ ComrelPackage.Literals.SINGLE_FEATURE_UNIT__TYPE,
+ false,
+ false,
+ false,
+ ItemPropertyDescriptor.GENERIC_VALUE_IMAGE,
+ null,
+ null));
+ }
+
+ /**
+ * This specifies how to implement {@link #getChildren} and is used to deduce an appropriate feature for an
+ * {@link org.eclipse.emf.edit.command.AddCommand}, {@link org.eclipse.emf.edit.command.RemoveCommand} or
+ * {@link org.eclipse.emf.edit.command.MoveCommand} in {@link #createCommand}.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public Collection<? extends EStructuralFeature> getChildrenFeatures(Object object) {
+ if (childrenFeatures == null) {
+ super.getChildrenFeatures(object);
+ childrenFeatures.add(ComrelPackage.Literals.SINGLE_FEATURE_UNIT__INPUT_PORT);
+ childrenFeatures.add(ComrelPackage.Literals.SINGLE_FEATURE_UNIT__SECONDARY_INPUT_PORTS);
+ childrenFeatures.add(ComrelPackage.Literals.SINGLE_FEATURE_UNIT__OUTPUT_PORT);
+ }
+ return childrenFeatures;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ protected EStructuralFeature getChildFeature(Object object, Object child) {
+ // Check the type of the specified child object and return the proper feature to use for
+ // adding (see {@link AddCommand}) it as a child.
+
+ return super.getChildFeature(object, child);
+ }
+
+ /**
+ * This returns SingleFeatureUnit.gif.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public Object getImage(Object object) {
+ return overlayImage(object, getResourceLocator().getImage("full/obj16/SingleFeatureUnit"));
+ }
+
+ /**
+ * This returns the label text for the adapted class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public String getText(Object object) {
+ String label = ((SingleFeatureUnit)object).getName();
+ return label == null || label.length() == 0 ?
+ getString("_UI_SingleFeatureUnit_type") :
+ getString("_UI_SingleFeatureUnit_type") + " " + label;
+ }
+
+ /**
+ * This handles model notifications by calling {@link #updateChildren} to update any cached
+ * children and by creating a viewer notification, which it passes to {@link #fireNotifyChanged}.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public void notifyChanged(Notification notification) {
+ updateChildren(notification);
+
+ switch (notification.getFeatureID(SingleFeatureUnit.class)) {
+ case ComrelPackage.SINGLE_FEATURE_UNIT__TYPE:
+ fireNotifyChanged(new ViewerNotification(notification, notification.getNotifier(), false, true));
+ return;
+ case ComrelPackage.SINGLE_FEATURE_UNIT__INPUT_PORT:
+ case ComrelPackage.SINGLE_FEATURE_UNIT__SECONDARY_INPUT_PORTS:
+ case ComrelPackage.SINGLE_FEATURE_UNIT__OUTPUT_PORT:
+ fireNotifyChanged(new ViewerNotification(notification, notification.getNotifier(), true, false));
+ return;
+ }
+ super.notifyChanged(notification);
+ }
+
+ /**
+ * This adds {@link org.eclipse.emf.edit.command.CommandParameter}s describing the children
+ * that can be created under this object.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ protected void collectNewChildDescriptors(Collection<Object> newChildDescriptors, Object object) {
+ super.collectNewChildDescriptors(newChildDescriptors, object);
+
+ newChildDescriptors.add
+ (createChildParameter
+ (ComrelPackage.Literals.SINGLE_FEATURE_UNIT__INPUT_PORT,
+ ComrelFactory.eINSTANCE.createSingleInputPort()));
+
+ newChildDescriptors.add
+ (createChildParameter
+ (ComrelPackage.Literals.SINGLE_FEATURE_UNIT__SECONDARY_INPUT_PORTS,
+ ComrelFactory.eINSTANCE.createMultiInputPort()));
+
+ newChildDescriptors.add
+ (createChildParameter
+ (ComrelPackage.Literals.SINGLE_FEATURE_UNIT__OUTPUT_PORT,
+ ComrelFactory.eINSTANCE.createSingleOutputPort()));
+ }
+
+}
diff --git a/org.eclipse.emf.refactor.comrel.edit/src/comrel/provider/SingleFilterHelperItemProvider.java b/org.eclipse.emf.refactor.comrel.edit/src/comrel/provider/SingleFilterHelperItemProvider.java
new file mode 100644
index 0000000..99d3808
--- /dev/null
+++ b/org.eclipse.emf.refactor.comrel.edit/src/comrel/provider/SingleFilterHelperItemProvider.java
@@ -0,0 +1,160 @@
+/**
+ * <copyright>
+ * </copyright>
+ *
+ * $Id$
+ */
+package comrel.provider;
+
+
+import comrel.ComrelFactory;
+import comrel.ComrelPackage;
+import comrel.SingleFilterHelper;
+
+import java.util.Collection;
+import java.util.List;
+
+import org.eclipse.emf.common.notify.AdapterFactory;
+import org.eclipse.emf.common.notify.Notification;
+
+import org.eclipse.emf.ecore.EStructuralFeature;
+
+import org.eclipse.emf.edit.provider.IEditingDomainItemProvider;
+import org.eclipse.emf.edit.provider.IItemLabelProvider;
+import org.eclipse.emf.edit.provider.IItemPropertyDescriptor;
+import org.eclipse.emf.edit.provider.IItemPropertySource;
+import org.eclipse.emf.edit.provider.IStructuredItemContentProvider;
+import org.eclipse.emf.edit.provider.ITreeItemContentProvider;
+import org.eclipse.emf.edit.provider.ViewerNotification;
+
+/**
+ * This is the item provider adapter for a {@link comrel.SingleFilterHelper} object.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+public class SingleFilterHelperItemProvider
+ extends FilterHelperItemProvider
+ implements
+ IEditingDomainItemProvider,
+ IStructuredItemContentProvider,
+ ITreeItemContentProvider,
+ IItemLabelProvider,
+ IItemPropertySource {
+ /**
+ * This constructs an instance from a factory and a notifier.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public SingleFilterHelperItemProvider(AdapterFactory adapterFactory) {
+ super(adapterFactory);
+ }
+
+ /**
+ * This returns the property descriptors for the adapted class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public List<IItemPropertyDescriptor> getPropertyDescriptors(Object object) {
+ if (itemPropertyDescriptors == null) {
+ super.getPropertyDescriptors(object);
+
+ }
+ return itemPropertyDescriptors;
+ }
+
+ /**
+ * This specifies how to implement {@link #getChildren} and is used to deduce an appropriate feature for an
+ * {@link org.eclipse.emf.edit.command.AddCommand}, {@link org.eclipse.emf.edit.command.RemoveCommand} or
+ * {@link org.eclipse.emf.edit.command.MoveCommand} in {@link #createCommand}.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public Collection<? extends EStructuralFeature> getChildrenFeatures(Object object) {
+ if (childrenFeatures == null) {
+ super.getChildrenFeatures(object);
+ childrenFeatures.add(ComrelPackage.Literals.SINGLE_FILTER_HELPER__OUTPUT_PORT);
+ }
+ return childrenFeatures;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ protected EStructuralFeature getChildFeature(Object object, Object child) {
+ // Check the type of the specified child object and return the proper feature to use for
+ // adding (see {@link AddCommand}) it as a child.
+
+ return super.getChildFeature(object, child);
+ }
+
+ /**
+ * This returns SingleFilterHelper.gif.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public Object getImage(Object object) {
+ return overlayImage(object, getResourceLocator().getImage("full/obj16/SingleFilterHelper"));
+ }
+
+ /**
+ * This returns the label text for the adapted class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public String getText(Object object) {
+ String label = ((SingleFilterHelper)object).getName();
+ return label == null || label.length() == 0 ?
+ getString("_UI_SingleFilterHelper_type") :
+ getString("_UI_SingleFilterHelper_type") + " " + label;
+ }
+
+ /**
+ * This handles model notifications by calling {@link #updateChildren} to update any cached
+ * children and by creating a viewer notification, which it passes to {@link #fireNotifyChanged}.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public void notifyChanged(Notification notification) {
+ updateChildren(notification);
+
+ switch (notification.getFeatureID(SingleFilterHelper.class)) {
+ case ComrelPackage.SINGLE_FILTER_HELPER__OUTPUT_PORT:
+ fireNotifyChanged(new ViewerNotification(notification, notification.getNotifier(), true, false));
+ return;
+ }
+ super.notifyChanged(notification);
+ }
+
+ /**
+ * This adds {@link org.eclipse.emf.edit.command.CommandParameter}s describing the children
+ * that can be created under this object.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ protected void collectNewChildDescriptors(Collection<Object> newChildDescriptors, Object object) {
+ super.collectNewChildDescriptors(newChildDescriptors, object);
+
+ newChildDescriptors.add
+ (createChildParameter
+ (ComrelPackage.Literals.SINGLE_FILTER_HELPER__OUTPUT_PORT,
+ ComrelFactory.eINSTANCE.createSingleOutputPort()));
+ }
+
+}
diff --git a/org.eclipse.emf.refactor.comrel.edit/src/comrel/provider/SingleFilterUnitItemProvider.java b/org.eclipse.emf.refactor.comrel.edit/src/comrel/provider/SingleFilterUnitItemProvider.java
new file mode 100644
index 0000000..220d083
--- /dev/null
+++ b/org.eclipse.emf.refactor.comrel.edit/src/comrel/provider/SingleFilterUnitItemProvider.java
@@ -0,0 +1,218 @@
+/**
+ * <copyright>
+ * </copyright>
+ *
+ * $Id$
+ */
+package comrel.provider;
+
+
+import comrel.ComrelFactory;
+import comrel.ComrelPackage;
+import comrel.SingleFilterUnit;
+
+import java.util.Collection;
+import java.util.List;
+
+import org.eclipse.emf.common.notify.AdapterFactory;
+import org.eclipse.emf.common.notify.Notification;
+
+import org.eclipse.emf.ecore.EStructuralFeature;
+
+import org.eclipse.emf.edit.provider.ComposeableAdapterFactory;
+import org.eclipse.emf.edit.provider.IEditingDomainItemProvider;
+import org.eclipse.emf.edit.provider.IItemLabelProvider;
+import org.eclipse.emf.edit.provider.IItemPropertyDescriptor;
+import org.eclipse.emf.edit.provider.IItemPropertySource;
+import org.eclipse.emf.edit.provider.IStructuredItemContentProvider;
+import org.eclipse.emf.edit.provider.ITreeItemContentProvider;
+import org.eclipse.emf.edit.provider.ItemPropertyDescriptor;
+import org.eclipse.emf.edit.provider.ViewerNotification;
+
+/**
+ * This is the item provider adapter for a {@link comrel.SingleFilterUnit} object.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+public class SingleFilterUnitItemProvider
+ extends FilterUnitItemProvider
+ implements
+ IEditingDomainItemProvider,
+ IStructuredItemContentProvider,
+ ITreeItemContentProvider,
+ IItemLabelProvider,
+ IItemPropertySource {
+ /**
+ * This constructs an instance from a factory and a notifier.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public SingleFilterUnitItemProvider(AdapterFactory adapterFactory) {
+ super(adapterFactory);
+ }
+
+ /**
+ * This returns the property descriptors for the adapted class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public List<IItemPropertyDescriptor> getPropertyDescriptors(Object object) {
+ if (itemPropertyDescriptors == null) {
+ super.getPropertyDescriptors(object);
+
+ addSingleFilterHelperPropertyDescriptor(object);
+ addTypePropertyDescriptor(object);
+ }
+ return itemPropertyDescriptors;
+ }
+
+ /**
+ * This adds a property descriptor for the Single Filter Helper feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected void addSingleFilterHelperPropertyDescriptor(Object object) {
+ itemPropertyDescriptors.add
+ (createItemPropertyDescriptor
+ (((ComposeableAdapterFactory)adapterFactory).getRootAdapterFactory(),
+ getResourceLocator(),
+ getString("_UI_SingleFilterUnit_singleFilterHelper_feature"),
+ getString("_UI_PropertyDescriptor_description", "_UI_SingleFilterUnit_singleFilterHelper_feature", "_UI_SingleFilterUnit_type"),
+ ComrelPackage.Literals.SINGLE_FILTER_UNIT__SINGLE_FILTER_HELPER,
+ true,
+ false,
+ true,
+ null,
+ null,
+ null));
+ }
+
+ /**
+ * This adds a property descriptor for the Type feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected void addTypePropertyDescriptor(Object object) {
+ itemPropertyDescriptors.add
+ (createItemPropertyDescriptor
+ (((ComposeableAdapterFactory)adapterFactory).getRootAdapterFactory(),
+ getResourceLocator(),
+ getString("_UI_SingleFilterUnit_type_feature"),
+ getString("_UI_PropertyDescriptor_description", "_UI_SingleFilterUnit_type_feature", "_UI_SingleFilterUnit_type"),
+ ComrelPackage.Literals.SINGLE_FILTER_UNIT__TYPE,
+ false,
+ false,
+ false,
+ ItemPropertyDescriptor.GENERIC_VALUE_IMAGE,
+ null,
+ null));
+ }
+
+ /**
+ * This specifies how to implement {@link #getChildren} and is used to deduce an appropriate feature for an
+ * {@link org.eclipse.emf.edit.command.AddCommand}, {@link org.eclipse.emf.edit.command.RemoveCommand} or
+ * {@link org.eclipse.emf.edit.command.MoveCommand} in {@link #createCommand}.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public Collection<? extends EStructuralFeature> getChildrenFeatures(Object object) {
+ if (childrenFeatures == null) {
+ super.getChildrenFeatures(object);
+ childrenFeatures.add(ComrelPackage.Literals.SINGLE_FILTER_UNIT__INPUT_PORT);
+ childrenFeatures.add(ComrelPackage.Literals.SINGLE_FILTER_UNIT__OUTPUT_PORT);
+ }
+ return childrenFeatures;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ protected EStructuralFeature getChildFeature(Object object, Object child) {
+ // Check the type of the specified child object and return the proper feature to use for
+ // adding (see {@link AddCommand}) it as a child.
+
+ return super.getChildFeature(object, child);
+ }
+
+ /**
+ * This returns SingleFilterUnit.gif.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public Object getImage(Object object) {
+ return overlayImage(object, getResourceLocator().getImage("full/obj16/SingleFilterUnit"));
+ }
+
+ /**
+ * This returns the label text for the adapted class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public String getText(Object object) {
+ String label = ((SingleFilterUnit)object).getName();
+ return label == null || label.length() == 0 ?
+ getString("_UI_SingleFilterUnit_type") :
+ getString("_UI_SingleFilterUnit_type") + " " + label;
+ }
+
+ /**
+ * This handles model notifications by calling {@link #updateChildren} to update any cached
+ * children and by creating a viewer notification, which it passes to {@link #fireNotifyChanged}.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public void notifyChanged(Notification notification) {
+ updateChildren(notification);
+
+ switch (notification.getFeatureID(SingleFilterUnit.class)) {
+ case ComrelPackage.SINGLE_FILTER_UNIT__TYPE:
+ fireNotifyChanged(new ViewerNotification(notification, notification.getNotifier(), false, true));
+ return;
+ case ComrelPackage.SINGLE_FILTER_UNIT__INPUT_PORT:
+ case ComrelPackage.SINGLE_FILTER_UNIT__OUTPUT_PORT:
+ fireNotifyChanged(new ViewerNotification(notification, notification.getNotifier(), true, false));
+ return;
+ }
+ super.notifyChanged(notification);
+ }
+
+ /**
+ * This adds {@link org.eclipse.emf.edit.command.CommandParameter}s describing the children
+ * that can be created under this object.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ protected void collectNewChildDescriptors(Collection<Object> newChildDescriptors, Object object) {
+ super.collectNewChildDescriptors(newChildDescriptors, object);
+
+ newChildDescriptors.add
+ (createChildParameter
+ (ComrelPackage.Literals.SINGLE_FILTER_UNIT__INPUT_PORT,
+ ComrelFactory.eINSTANCE.createMultiInputPort()));
+
+ newChildDescriptors.add
+ (createChildParameter
+ (ComrelPackage.Literals.SINGLE_FILTER_UNIT__OUTPUT_PORT,
+ ComrelFactory.eINSTANCE.createSingleOutputPort()));
+ }
+
+}
diff --git a/org.eclipse.emf.refactor.comrel.edit/src/comrel/provider/SingleInputPortItemProvider.java b/org.eclipse.emf.refactor.comrel.edit/src/comrel/provider/SingleInputPortItemProvider.java
new file mode 100644
index 0000000..7ef06b4
--- /dev/null
+++ b/org.eclipse.emf.refactor.comrel.edit/src/comrel/provider/SingleInputPortItemProvider.java
@@ -0,0 +1,114 @@
+/**
+ * <copyright>
+ * </copyright>
+ *
+ * $Id$
+ */
+package comrel.provider;
+
+
+import comrel.SingleInputPort;
+
+import java.util.Collection;
+import java.util.List;
+
+import org.eclipse.emf.common.notify.AdapterFactory;
+import org.eclipse.emf.common.notify.Notification;
+
+import org.eclipse.emf.edit.provider.IEditingDomainItemProvider;
+import org.eclipse.emf.edit.provider.IItemLabelProvider;
+import org.eclipse.emf.edit.provider.IItemPropertyDescriptor;
+import org.eclipse.emf.edit.provider.IItemPropertySource;
+import org.eclipse.emf.edit.provider.IStructuredItemContentProvider;
+import org.eclipse.emf.edit.provider.ITreeItemContentProvider;
+
+/**
+ * This is the item provider adapter for a {@link comrel.SingleInputPort} object.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+public class SingleInputPortItemProvider
+ extends SinglePortItemProvider
+ implements
+ IEditingDomainItemProvider,
+ IStructuredItemContentProvider,
+ ITreeItemContentProvider,
+ IItemLabelProvider,
+ IItemPropertySource {
+ /**
+ * This constructs an instance from a factory and a notifier.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public SingleInputPortItemProvider(AdapterFactory adapterFactory) {
+ super(adapterFactory);
+ }
+
+ /**
+ * This returns the property descriptors for the adapted class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public List<IItemPropertyDescriptor> getPropertyDescriptors(Object object) {
+ if (itemPropertyDescriptors == null) {
+ super.getPropertyDescriptors(object);
+
+ }
+ return itemPropertyDescriptors;
+ }
+
+ /**
+ * This returns SingleInputPort.gif.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public Object getImage(Object object) {
+ return overlayImage(object, getResourceLocator().getImage("full/obj16/SingleInputPort"));
+ }
+
+ /**
+ * This returns the label text for the adapted class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public String getText(Object object) {
+ String label = ((SingleInputPort)object).getName();
+ return label == null || label.length() == 0 ?
+ getString("_UI_SingleInputPort_type") :
+ getString("_UI_SingleInputPort_type") + " " + label;
+ }
+
+ /**
+ * This handles model notifications by calling {@link #updateChildren} to update any cached
+ * children and by creating a viewer notification, which it passes to {@link #fireNotifyChanged}.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public void notifyChanged(Notification notification) {
+ updateChildren(notification);
+ super.notifyChanged(notification);
+ }
+
+ /**
+ * This adds {@link org.eclipse.emf.edit.command.CommandParameter}s describing the children
+ * that can be created under this object.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ protected void collectNewChildDescriptors(Collection<Object> newChildDescriptors, Object object) {
+ super.collectNewChildDescriptors(newChildDescriptors, object);
+ }
+
+}
diff --git a/org.eclipse.emf.refactor.comrel.edit/src/comrel/provider/SingleOutputPortItemProvider.java b/org.eclipse.emf.refactor.comrel.edit/src/comrel/provider/SingleOutputPortItemProvider.java
new file mode 100644
index 0000000..c33803b
--- /dev/null
+++ b/org.eclipse.emf.refactor.comrel.edit/src/comrel/provider/SingleOutputPortItemProvider.java
@@ -0,0 +1,114 @@
+/**
+ * <copyright>
+ * </copyright>
+ *
+ * $Id$
+ */
+package comrel.provider;
+
+
+import comrel.SingleOutputPort;
+
+import java.util.Collection;
+import java.util.List;
+
+import org.eclipse.emf.common.notify.AdapterFactory;
+import org.eclipse.emf.common.notify.Notification;
+
+import org.eclipse.emf.edit.provider.IEditingDomainItemProvider;
+import org.eclipse.emf.edit.provider.IItemLabelProvider;
+import org.eclipse.emf.edit.provider.IItemPropertyDescriptor;
+import org.eclipse.emf.edit.provider.IItemPropertySource;
+import org.eclipse.emf.edit.provider.IStructuredItemContentProvider;
+import org.eclipse.emf.edit.provider.ITreeItemContentProvider;
+
+/**
+ * This is the item provider adapter for a {@link comrel.SingleOutputPort} object.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+public class SingleOutputPortItemProvider
+ extends SinglePortItemProvider
+ implements
+ IEditingDomainItemProvider,
+ IStructuredItemContentProvider,
+ ITreeItemContentProvider,
+ IItemLabelProvider,
+ IItemPropertySource {
+ /**
+ * This constructs an instance from a factory and a notifier.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public SingleOutputPortItemProvider(AdapterFactory adapterFactory) {
+ super(adapterFactory);
+ }
+
+ /**
+ * This returns the property descriptors for the adapted class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public List<IItemPropertyDescriptor> getPropertyDescriptors(Object object) {
+ if (itemPropertyDescriptors == null) {
+ super.getPropertyDescriptors(object);
+
+ }
+ return itemPropertyDescriptors;
+ }
+
+ /**
+ * This returns SingleOutputPort.gif.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public Object getImage(Object object) {
+ return overlayImage(object, getResourceLocator().getImage("full/obj16/SingleOutputPort"));
+ }
+
+ /**
+ * This returns the label text for the adapted class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public String getText(Object object) {
+ String label = ((SingleOutputPort)object).getName();
+ return label == null || label.length() == 0 ?
+ getString("_UI_SingleOutputPort_type") :
+ getString("_UI_SingleOutputPort_type") + " " + label;
+ }
+
+ /**
+ * This handles model notifications by calling {@link #updateChildren} to update any cached
+ * children and by creating a viewer notification, which it passes to {@link #fireNotifyChanged}.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public void notifyChanged(Notification notification) {
+ updateChildren(notification);
+ super.notifyChanged(notification);
+ }
+
+ /**
+ * This adds {@link org.eclipse.emf.edit.command.CommandParameter}s describing the children
+ * that can be created under this object.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ protected void collectNewChildDescriptors(Collection<Object> newChildDescriptors, Object object) {
+ super.collectNewChildDescriptors(newChildDescriptors, object);
+ }
+
+}
diff --git a/org.eclipse.emf.refactor.comrel.edit/src/comrel/provider/SinglePortItemProvider.java b/org.eclipse.emf.refactor.comrel.edit/src/comrel/provider/SinglePortItemProvider.java
new file mode 100644
index 0000000..4ae3182
--- /dev/null
+++ b/org.eclipse.emf.refactor.comrel.edit/src/comrel/provider/SinglePortItemProvider.java
@@ -0,0 +1,136 @@
+/**
+ * <copyright>
+ * </copyright>
+ *
+ * $Id$
+ */
+package comrel.provider;
+
+
+import comrel.ComrelPackage;
+import comrel.SinglePort;
+
+import java.util.Collection;
+import java.util.List;
+
+import org.eclipse.emf.common.notify.AdapterFactory;
+import org.eclipse.emf.common.notify.Notification;
+
+import org.eclipse.emf.edit.provider.ComposeableAdapterFactory;
+import org.eclipse.emf.edit.provider.IEditingDomainItemProvider;
+import org.eclipse.emf.edit.provider.IItemLabelProvider;
+import org.eclipse.emf.edit.provider.IItemPropertyDescriptor;
+import org.eclipse.emf.edit.provider.IItemPropertySource;
+import org.eclipse.emf.edit.provider.IStructuredItemContentProvider;
+import org.eclipse.emf.edit.provider.ITreeItemContentProvider;
+import org.eclipse.emf.edit.provider.ItemPropertyDescriptor;
+import org.eclipse.emf.edit.provider.ViewerNotification;
+
+/**
+ * This is the item provider adapter for a {@link comrel.SinglePort} object.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+public class SinglePortItemProvider
+ extends PortItemProvider
+ implements
+ IEditingDomainItemProvider,
+ IStructuredItemContentProvider,
+ ITreeItemContentProvider,
+ IItemLabelProvider,
+ IItemPropertySource {
+ /**
+ * This constructs an instance from a factory and a notifier.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public SinglePortItemProvider(AdapterFactory adapterFactory) {
+ super(adapterFactory);
+ }
+
+ /**
+ * This returns the property descriptors for the adapted class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public List<IItemPropertyDescriptor> getPropertyDescriptors(Object object) {
+ if (itemPropertyDescriptors == null) {
+ super.getPropertyDescriptors(object);
+
+ addValuePropertyDescriptor(object);
+ }
+ return itemPropertyDescriptors;
+ }
+
+ /**
+ * This adds a property descriptor for the Value feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected void addValuePropertyDescriptor(Object object) {
+ itemPropertyDescriptors.add
+ (createItemPropertyDescriptor
+ (((ComposeableAdapterFactory)adapterFactory).getRootAdapterFactory(),
+ getResourceLocator(),
+ getString("_UI_SinglePort_value_feature"),
+ getString("_UI_PropertyDescriptor_description", "_UI_SinglePort_value_feature", "_UI_SinglePort_type"),
+ ComrelPackage.Literals.SINGLE_PORT__VALUE,
+ true,
+ false,
+ false,
+ ItemPropertyDescriptor.GENERIC_VALUE_IMAGE,
+ null,
+ null));
+ }
+
+ /**
+ * This returns the label text for the adapted class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public String getText(Object object) {
+ String label = ((SinglePort)object).getName();
+ return label == null || label.length() == 0 ?
+ getString("_UI_SinglePort_type") :
+ getString("_UI_SinglePort_type") + " " + label;
+ }
+
+ /**
+ * This handles model notifications by calling {@link #updateChildren} to update any cached
+ * children and by creating a viewer notification, which it passes to {@link #fireNotifyChanged}.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public void notifyChanged(Notification notification) {
+ updateChildren(notification);
+
+ switch (notification.getFeatureID(SinglePort.class)) {
+ case ComrelPackage.SINGLE_PORT__VALUE:
+ fireNotifyChanged(new ViewerNotification(notification, notification.getNotifier(), false, true));
+ return;
+ }
+ super.notifyChanged(notification);
+ }
+
+ /**
+ * This adds {@link org.eclipse.emf.edit.command.CommandParameter}s describing the children
+ * that can be created under this object.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ protected void collectNewChildDescriptors(Collection<Object> newChildDescriptors, Object object) {
+ super.collectNewChildDescriptors(newChildDescriptors, object);
+ }
+
+}
diff --git a/org.eclipse.emf.refactor.comrel.edit/src/comrel/provider/SinglePortMappingItemProvider.java b/org.eclipse.emf.refactor.comrel.edit/src/comrel/provider/SinglePortMappingItemProvider.java
new file mode 100644
index 0000000..58a7136
--- /dev/null
+++ b/org.eclipse.emf.refactor.comrel.edit/src/comrel/provider/SinglePortMappingItemProvider.java
@@ -0,0 +1,158 @@
+/**
+ * <copyright>
+ * </copyright>
+ *
+ * $Id$
+ */
+package comrel.provider;
+
+
+import comrel.ComrelPackage;
+
+import java.util.Collection;
+import java.util.List;
+
+import org.eclipse.emf.common.notify.AdapterFactory;
+import org.eclipse.emf.common.notify.Notification;
+
+import org.eclipse.emf.edit.provider.ComposeableAdapterFactory;
+import org.eclipse.emf.edit.provider.IEditingDomainItemProvider;
+import org.eclipse.emf.edit.provider.IItemLabelProvider;
+import org.eclipse.emf.edit.provider.IItemPropertyDescriptor;
+import org.eclipse.emf.edit.provider.IItemPropertySource;
+import org.eclipse.emf.edit.provider.IStructuredItemContentProvider;
+import org.eclipse.emf.edit.provider.ITreeItemContentProvider;
+
+/**
+ * This is the item provider adapter for a {@link comrel.SinglePortMapping} object.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+public class SinglePortMappingItemProvider
+ extends PortMappingItemProvider
+ implements
+ IEditingDomainItemProvider,
+ IStructuredItemContentProvider,
+ ITreeItemContentProvider,
+ IItemLabelProvider,
+ IItemPropertySource {
+ /**
+ * This constructs an instance from a factory and a notifier.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public SinglePortMappingItemProvider(AdapterFactory adapterFactory) {
+ super(adapterFactory);
+ }
+
+ /**
+ * This returns the property descriptors for the adapted class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public List<IItemPropertyDescriptor> getPropertyDescriptors(Object object) {
+ if (itemPropertyDescriptors == null) {
+ super.getPropertyDescriptors(object);
+
+ addSourcePropertyDescriptor(object);
+ addTargetPropertyDescriptor(object);
+ }
+ return itemPropertyDescriptors;
+ }
+
+ /**
+ * This adds a property descriptor for the Source feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected void addSourcePropertyDescriptor(Object object) {
+ itemPropertyDescriptors.add
+ (createItemPropertyDescriptor
+ (((ComposeableAdapterFactory)adapterFactory).getRootAdapterFactory(),
+ getResourceLocator(),
+ getString("_UI_SinglePortMapping_source_feature"),
+ getString("_UI_PropertyDescriptor_description", "_UI_SinglePortMapping_source_feature", "_UI_SinglePortMapping_type"),
+ ComrelPackage.Literals.SINGLE_PORT_MAPPING__SOURCE,
+ true,
+ false,
+ true,
+ null,
+ null,
+ null));
+ }
+
+ /**
+ * This adds a property descriptor for the Target feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected void addTargetPropertyDescriptor(Object object) {
+ itemPropertyDescriptors.add
+ (createItemPropertyDescriptor
+ (((ComposeableAdapterFactory)adapterFactory).getRootAdapterFactory(),
+ getResourceLocator(),
+ getString("_UI_SinglePortMapping_target_feature"),
+ getString("_UI_PropertyDescriptor_description", "_UI_SinglePortMapping_target_feature", "_UI_SinglePortMapping_type"),
+ ComrelPackage.Literals.SINGLE_PORT_MAPPING__TARGET,
+ true,
+ false,
+ true,
+ null,
+ null,
+ null));
+ }
+
+ /**
+ * This returns SinglePortMapping.gif.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public Object getImage(Object object) {
+ return overlayImage(object, getResourceLocator().getImage("full/obj16/SinglePortMapping"));
+ }
+
+ /**
+ * This returns the label text for the adapted class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public String getText(Object object) {
+ return getString("_UI_SinglePortMapping_type");
+ }
+
+ /**
+ * This handles model notifications by calling {@link #updateChildren} to update any cached
+ * children and by creating a viewer notification, which it passes to {@link #fireNotifyChanged}.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public void notifyChanged(Notification notification) {
+ updateChildren(notification);
+ super.notifyChanged(notification);
+ }
+
+ /**
+ * This adds {@link org.eclipse.emf.edit.command.CommandParameter}s describing the children
+ * that can be created under this object.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ protected void collectNewChildDescriptors(Collection<Object> newChildDescriptors, Object object) {
+ super.collectNewChildDescriptors(newChildDescriptors, object);
+ }
+
+}
diff --git a/org.eclipse.emf.refactor.comrel.edit/src/comrel/provider/SingleQueuedUnitItemProvider.java b/org.eclipse.emf.refactor.comrel.edit/src/comrel/provider/SingleQueuedUnitItemProvider.java
new file mode 100644
index 0000000..beae9d7
--- /dev/null
+++ b/org.eclipse.emf.refactor.comrel.edit/src/comrel/provider/SingleQueuedUnitItemProvider.java
@@ -0,0 +1,273 @@
+/**
+ * <copyright>
+ * </copyright>
+ *
+ * $Id$
+ */
+package comrel.provider;
+
+
+import comrel.ComrelFactory;
+import comrel.ComrelPackage;
+import comrel.SingleQueuedUnit;
+
+import java.util.Collection;
+import java.util.List;
+
+import org.eclipse.emf.common.notify.AdapterFactory;
+import org.eclipse.emf.common.notify.Notification;
+
+import org.eclipse.emf.ecore.EStructuralFeature;
+
+import org.eclipse.emf.edit.provider.ComposeableAdapterFactory;
+import org.eclipse.emf.edit.provider.IEditingDomainItemProvider;
+import org.eclipse.emf.edit.provider.IItemLabelProvider;
+import org.eclipse.emf.edit.provider.IItemPropertyDescriptor;
+import org.eclipse.emf.edit.provider.IItemPropertySource;
+import org.eclipse.emf.edit.provider.IStructuredItemContentProvider;
+import org.eclipse.emf.edit.provider.ITreeItemContentProvider;
+import org.eclipse.emf.edit.provider.ItemPropertyDescriptor;
+import org.eclipse.emf.edit.provider.ViewerNotification;
+
+/**
+ * This is the item provider adapter for a {@link comrel.SingleQueuedUnit} object.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+public class SingleQueuedUnitItemProvider
+ extends QueuedUnitItemProvider
+ implements
+ IEditingDomainItemProvider,
+ IStructuredItemContentProvider,
+ ITreeItemContentProvider,
+ IItemLabelProvider,
+ IItemPropertySource {
+ /**
+ * This constructs an instance from a factory and a notifier.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public SingleQueuedUnitItemProvider(AdapterFactory adapterFactory) {
+ super(adapterFactory);
+ }
+
+ /**
+ * This returns the property descriptors for the adapted class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public List<IItemPropertyDescriptor> getPropertyDescriptors(Object object) {
+ if (itemPropertyDescriptors == null) {
+ super.getPropertyDescriptors(object);
+
+ addTypePropertyDescriptor(object);
+ addLblStrictPropertyDescriptor(object);
+ }
+ return itemPropertyDescriptors;
+ }
+
+ /**
+ * This adds a property descriptor for the Type feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected void addTypePropertyDescriptor(Object object) {
+ itemPropertyDescriptors.add
+ (createItemPropertyDescriptor
+ (((ComposeableAdapterFactory)adapterFactory).getRootAdapterFactory(),
+ getResourceLocator(),
+ getString("_UI_SingleQueuedUnit_type_feature"),
+ getString("_UI_PropertyDescriptor_description", "_UI_SingleQueuedUnit_type_feature", "_UI_SingleQueuedUnit_type"),
+ ComrelPackage.Literals.SINGLE_QUEUED_UNIT__TYPE,
+ false,
+ false,
+ false,
+ ItemPropertyDescriptor.GENERIC_VALUE_IMAGE,
+ null,
+ null));
+ }
+
+ /**
+ * This adds a property descriptor for the Lbl Strict feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected void addLblStrictPropertyDescriptor(Object object) {
+ itemPropertyDescriptors.add
+ (createItemPropertyDescriptor
+ (((ComposeableAdapterFactory)adapterFactory).getRootAdapterFactory(),
+ getResourceLocator(),
+ getString("_UI_SingleQueuedUnit_lblStrict_feature"),
+ getString("_UI_PropertyDescriptor_description", "_UI_SingleQueuedUnit_lblStrict_feature", "_UI_SingleQueuedUnit_type"),
+ ComrelPackage.Literals.SINGLE_QUEUED_UNIT__LBL_STRICT,
+ true,
+ false,
+ false,
+ ItemPropertyDescriptor.GENERIC_VALUE_IMAGE,
+ null,
+ null));
+ }
+
+ /**
+ * This specifies how to implement {@link #getChildren} and is used to deduce an appropriate feature for an
+ * {@link org.eclipse.emf.edit.command.AddCommand}, {@link org.eclipse.emf.edit.command.RemoveCommand} or
+ * {@link org.eclipse.emf.edit.command.MoveCommand} in {@link #createCommand}.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public Collection<? extends EStructuralFeature> getChildrenFeatures(Object object) {
+ if (childrenFeatures == null) {
+ super.getChildrenFeatures(object);
+ childrenFeatures.add(ComrelPackage.Literals.SINGLE_QUEUED_UNIT__HELPER_UNITS);
+ childrenFeatures.add(ComrelPackage.Literals.SINGLE_QUEUED_UNIT__REFACTORING_UNIT);
+ childrenFeatures.add(ComrelPackage.Literals.SINGLE_QUEUED_UNIT__SINGLE_INPUT_PORTS);
+ childrenFeatures.add(ComrelPackage.Literals.SINGLE_QUEUED_UNIT__MULTI_INPUT_PORT);
+ }
+ return childrenFeatures;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ protected EStructuralFeature getChildFeature(Object object, Object child) {
+ // Check the type of the specified child object and return the proper feature to use for
+ // adding (see {@link AddCommand}) it as a child.
+
+ return super.getChildFeature(object, child);
+ }
+
+ /**
+ * This returns SingleQueuedUnit.gif.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public Object getImage(Object object) {
+ return overlayImage(object, getResourceLocator().getImage("full/obj16/SingleQueuedUnit"));
+ }
+
+ /**
+ * This returns the label text for the adapted class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public String getText(Object object) {
+ String label = ((SingleQueuedUnit)object).getName();
+ return label == null || label.length() == 0 ?
+ getString("_UI_SingleQueuedUnit_type") :
+ getString("_UI_SingleQueuedUnit_type") + " " + label;
+ }
+
+ /**
+ * This handles model notifications by calling {@link #updateChildren} to update any cached
+ * children and by creating a viewer notification, which it passes to {@link #fireNotifyChanged}.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public void notifyChanged(Notification notification) {
+ updateChildren(notification);
+
+ switch (notification.getFeatureID(SingleQueuedUnit.class)) {
+ case ComrelPackage.SINGLE_QUEUED_UNIT__TYPE:
+ case ComrelPackage.SINGLE_QUEUED_UNIT__LBL_STRICT:
+ fireNotifyChanged(new ViewerNotification(notification, notification.getNotifier(), false, true));
+ return;
+ case ComrelPackage.SINGLE_QUEUED_UNIT__HELPER_UNITS:
+ case ComrelPackage.SINGLE_QUEUED_UNIT__REFACTORING_UNIT:
+ case ComrelPackage.SINGLE_QUEUED_UNIT__SINGLE_INPUT_PORTS:
+ case ComrelPackage.SINGLE_QUEUED_UNIT__MULTI_INPUT_PORT:
+ fireNotifyChanged(new ViewerNotification(notification, notification.getNotifier(), true, false));
+ return;
+ }
+ super.notifyChanged(notification);
+ }
+
+ /**
+ * This adds {@link org.eclipse.emf.edit.command.CommandParameter}s describing the children
+ * that can be created under this object.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ protected void collectNewChildDescriptors(Collection<Object> newChildDescriptors, Object object) {
+ super.collectNewChildDescriptors(newChildDescriptors, object);
+
+ newChildDescriptors.add
+ (createChildParameter
+ (ComrelPackage.Literals.SINGLE_QUEUED_UNIT__HELPER_UNITS,
+ ComrelFactory.eINSTANCE.createSingleFeatureUnit()));
+
+ newChildDescriptors.add
+ (createChildParameter
+ (ComrelPackage.Literals.SINGLE_QUEUED_UNIT__HELPER_UNITS,
+ ComrelFactory.eINSTANCE.createMultiFeatureUnit()));
+
+ newChildDescriptors.add
+ (createChildParameter
+ (ComrelPackage.Literals.SINGLE_QUEUED_UNIT__HELPER_UNITS,
+ ComrelFactory.eINSTANCE.createSingleFilterUnit()));
+
+ newChildDescriptors.add
+ (createChildParameter
+ (ComrelPackage.Literals.SINGLE_QUEUED_UNIT__HELPER_UNITS,
+ ComrelFactory.eINSTANCE.createMultiFilterUnit()));
+
+ newChildDescriptors.add
+ (createChildParameter
+ (ComrelPackage.Literals.SINGLE_QUEUED_UNIT__REFACTORING_UNIT,
+ ComrelFactory.eINSTANCE.createAtomicUnit()));
+
+ newChildDescriptors.add
+ (createChildParameter
+ (ComrelPackage.Literals.SINGLE_QUEUED_UNIT__REFACTORING_UNIT,
+ ComrelFactory.eINSTANCE.createSequentialUnit()));
+
+ newChildDescriptors.add
+ (createChildParameter
+ (ComrelPackage.Literals.SINGLE_QUEUED_UNIT__REFACTORING_UNIT,
+ ComrelFactory.eINSTANCE.createConditionalUnit()));
+
+ newChildDescriptors.add
+ (createChildParameter
+ (ComrelPackage.Literals.SINGLE_QUEUED_UNIT__REFACTORING_UNIT,
+ ComrelFactory.eINSTANCE.createSingleQueuedUnit()));
+
+ newChildDescriptors.add
+ (createChildParameter
+ (ComrelPackage.Literals.SINGLE_QUEUED_UNIT__REFACTORING_UNIT,
+ ComrelFactory.eINSTANCE.createCartesianQueuedUnit()));
+
+ newChildDescriptors.add
+ (createChildParameter
+ (ComrelPackage.Literals.SINGLE_QUEUED_UNIT__REFACTORING_UNIT,
+ ComrelFactory.eINSTANCE.createParallelQueuedUnit()));
+
+ newChildDescriptors.add
+ (createChildParameter
+ (ComrelPackage.Literals.SINGLE_QUEUED_UNIT__SINGLE_INPUT_PORTS,
+ ComrelFactory.eINSTANCE.createSingleInputPort()));
+
+ newChildDescriptors.add
+ (createChildParameter
+ (ComrelPackage.Literals.SINGLE_QUEUED_UNIT__MULTI_INPUT_PORT,
+ ComrelFactory.eINSTANCE.createMultiInputPort()));
+ }
+
+}
diff --git a/org.eclipse.emf.refactor.comrel.edit/src/comrel/provider/TwicedQueuedUnitItemProvider.java b/org.eclipse.emf.refactor.comrel.edit/src/comrel/provider/TwicedQueuedUnitItemProvider.java
new file mode 100644
index 0000000..2b7c84e
--- /dev/null
+++ b/org.eclipse.emf.refactor.comrel.edit/src/comrel/provider/TwicedQueuedUnitItemProvider.java
@@ -0,0 +1,103 @@
+/**
+ * <copyright>
+ * </copyright>
+ *
+ * $Id$
+ */
+package comrel.provider;
+
+
+import comrel.TwicedQueuedUnit;
+
+import java.util.Collection;
+import java.util.List;
+
+import org.eclipse.emf.common.notify.AdapterFactory;
+import org.eclipse.emf.common.notify.Notification;
+
+import org.eclipse.emf.edit.provider.IEditingDomainItemProvider;
+import org.eclipse.emf.edit.provider.IItemLabelProvider;
+import org.eclipse.emf.edit.provider.IItemPropertyDescriptor;
+import org.eclipse.emf.edit.provider.IItemPropertySource;
+import org.eclipse.emf.edit.provider.IStructuredItemContentProvider;
+import org.eclipse.emf.edit.provider.ITreeItemContentProvider;
+
+/**
+ * This is the item provider adapter for a {@link comrel.TwicedQueuedUnit} object.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+public class TwicedQueuedUnitItemProvider
+ extends QueuedUnitItemProvider
+ implements
+ IEditingDomainItemProvider,
+ IStructuredItemContentProvider,
+ ITreeItemContentProvider,
+ IItemLabelProvider,
+ IItemPropertySource {
+ /**
+ * This constructs an instance from a factory and a notifier.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public TwicedQueuedUnitItemProvider(AdapterFactory adapterFactory) {
+ super(adapterFactory);
+ }
+
+ /**
+ * This returns the property descriptors for the adapted class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public List<IItemPropertyDescriptor> getPropertyDescriptors(Object object) {
+ if (itemPropertyDescriptors == null) {
+ super.getPropertyDescriptors(object);
+
+ }
+ return itemPropertyDescriptors;
+ }
+
+ /**
+ * This returns the label text for the adapted class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public String getText(Object object) {
+ String label = ((TwicedQueuedUnit)object).getName();
+ return label == null || label.length() == 0 ?
+ getString("_UI_TwicedQueuedUnit_type") :
+ getString("_UI_TwicedQueuedUnit_type") + " " + label;
+ }
+
+ /**
+ * This handles model notifications by calling {@link #updateChildren} to update any cached
+ * children and by creating a viewer notification, which it passes to {@link #fireNotifyChanged}.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public void notifyChanged(Notification notification) {
+ updateChildren(notification);
+ super.notifyChanged(notification);
+ }
+
+ /**
+ * This adds {@link org.eclipse.emf.edit.command.CommandParameter}s describing the children
+ * that can be created under this object.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ protected void collectNewChildDescriptors(Collection<Object> newChildDescriptors, Object object) {
+ super.collectNewChildDescriptors(newChildDescriptors, object);
+ }
+
+}
diff --git a/org.eclipse.emf.refactor.comrel.editor/.classpath b/org.eclipse.emf.refactor.comrel.editor/.classpath
new file mode 100644
index 0000000..ed2bc12
--- /dev/null
+++ b/org.eclipse.emf.refactor.comrel.editor/.classpath
@@ -0,0 +1,7 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<classpath>
+ <classpathentry kind="src" path="src"/>
+ <classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER/org.eclipse.jdt.internal.debug.ui.launcher.StandardVMType/JavaSE-1.6"/>
+ <classpathentry kind="con" path="org.eclipse.pde.core.requiredPlugins"/>
+ <classpathentry kind="output" path="bin"/>
+</classpath>
diff --git a/org.eclipse.emf.refactor.comrel.editor/.project b/org.eclipse.emf.refactor.comrel.editor/.project
new file mode 100644
index 0000000..1f77808
--- /dev/null
+++ b/org.eclipse.emf.refactor.comrel.editor/.project
@@ -0,0 +1,28 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<projectDescription>
+ <name>org.eclipse.emf.refactor.comrel.editor</name>
+ <comment></comment>
+ <projects>
+ </projects>
+ <buildSpec>
+ <buildCommand>
+ <name>org.eclipse.jdt.core.javabuilder</name>
+ <arguments>
+ </arguments>
+ </buildCommand>
+ <buildCommand>
+ <name>org.eclipse.pde.ManifestBuilder</name>
+ <arguments>
+ </arguments>
+ </buildCommand>
+ <buildCommand>
+ <name>org.eclipse.pde.SchemaBuilder</name>
+ <arguments>
+ </arguments>
+ </buildCommand>
+ </buildSpec>
+ <natures>
+ <nature>org.eclipse.jdt.core.javanature</nature>
+ <nature>org.eclipse.pde.PluginNature</nature>
+ </natures>
+</projectDescription>
diff --git a/org.eclipse.emf.refactor.comrel.editor/META-INF/MANIFEST.MF b/org.eclipse.emf.refactor.comrel.editor/META-INF/MANIFEST.MF
new file mode 100644
index 0000000..935fc51
--- /dev/null
+++ b/org.eclipse.emf.refactor.comrel.editor/META-INF/MANIFEST.MF
@@ -0,0 +1,17 @@
+Manifest-Version: 1.0
+Bundle-ManifestVersion: 2
+Bundle-Name: CoMReL Editor
+Bundle-SymbolicName: org.eclipse.emf.refactor.comrel.editor;singleton:=true
+Bundle-Version: 0.9.0
+Bundle-ClassPath: .
+Bundle-Activator: comrel.presentation.ComrelEditorPlugin$Implementation
+Bundle-Localization: plugin
+Bundle-RequiredExecutionEnvironment: JavaSE-1.6
+Export-Package: comrel.presentation
+Require-Bundle: org.eclipse.core.runtime,
+ org.eclipse.core.resources;visibility:=reexport,
+ org.eclipse.emf.refactor.comrel.edit;visibility:=reexport,
+ org.eclipse.emf.ecore.xmi;visibility:=reexport,
+ org.eclipse.emf.edit.ui;visibility:=reexport,
+ org.eclipse.ui.ide;visibility:=reexport
+Bundle-ActivationPolicy: lazy
diff --git a/org.eclipse.emf.refactor.comrel.editor/bin/.gitignore b/org.eclipse.emf.refactor.comrel.editor/bin/.gitignore
new file mode 100644
index 0000000..508dbce
--- /dev/null
+++ b/org.eclipse.emf.refactor.comrel.editor/bin/.gitignore
@@ -0,0 +1 @@
+/comrel
diff --git a/org.eclipse.emf.refactor.comrel.editor/build.properties b/org.eclipse.emf.refactor.comrel.editor/build.properties
new file mode 100644
index 0000000..5dd2083
--- /dev/null
+++ b/org.eclipse.emf.refactor.comrel.editor/build.properties
@@ -0,0 +1,16 @@
+
+# <copyright>
+# </copyright>
+#
+# $Id$
+
+bin.includes = .,\
+ icons/,\
+ META-INF/,\
+ plugin.xml,\
+ plugin.properties,\
+ src/,\
+ bin/
+jars.compile.order = .
+source.. = src/
+output.. = bin/
diff --git a/org.eclipse.emf.refactor.comrel.editor/icons/full/obj16/ComrelModelFile.gif b/org.eclipse.emf.refactor.comrel.editor/icons/full/obj16/ComrelModelFile.gif
new file mode 100644
index 0000000..5d3db6b
--- /dev/null
+++ b/org.eclipse.emf.refactor.comrel.editor/icons/full/obj16/ComrelModelFile.gif
Binary files differ
diff --git a/org.eclipse.emf.refactor.comrel.editor/icons/full/wizban/NewComrel.gif b/org.eclipse.emf.refactor.comrel.editor/icons/full/wizban/NewComrel.gif
new file mode 100644
index 0000000..54a4d3b
--- /dev/null
+++ b/org.eclipse.emf.refactor.comrel.editor/icons/full/wizban/NewComrel.gif
Binary files differ
diff --git a/org.eclipse.emf.refactor.comrel.editor/plugin.properties b/org.eclipse.emf.refactor.comrel.editor/plugin.properties
new file mode 100644
index 0000000..2aa1642
--- /dev/null
+++ b/org.eclipse.emf.refactor.comrel.editor/plugin.properties
@@ -0,0 +1,57 @@
+
+# <copyright>
+# </copyright>
+#
+# $Id$
+
+pluginName = Comrel Editor
+providerName = www.example.org
+
+_UI_ComrelEditor_menu = &Comrel Editor
+
+_UI_CreateChild_menu_item = &New Child
+_UI_CreateSibling_menu_item = N&ew Sibling
+
+_UI_ShowPropertiesView_menu_item = Show &Properties View
+_UI_RefreshViewer_menu_item = &Refresh
+
+_UI_SelectionPage_label = Selection
+_UI_ParentPage_label = Parent
+_UI_ListPage_label = List
+_UI_TreePage_label = Tree
+_UI_TablePage_label = Table
+_UI_TreeWithColumnsPage_label = Tree with Columns
+_UI_ObjectColumn_label = Object
+_UI_SelfColumn_label = Self
+
+_UI_NoObjectSelected = Selected Nothing
+_UI_SingleObjectSelected = Selected Object: {0}
+_UI_MultiObjectSelected = Selected {0} Objects
+
+_UI_OpenEditorError_label = Open Editor
+
+_UI_Wizard_category = Example EMF Model Creation Wizards
+
+_UI_CreateModelError_message = Problems encountered in file "{0}"
+
+_UI_ComrelModelWizard_label = Comrel Model
+_UI_ComrelModelWizard_description = Create a new Comrel model
+
+_UI_ComrelEditor_label = Comrel Model Editor
+
+_UI_ComrelEditorFilenameDefaultBase = My
+_UI_ComrelEditorFilenameExtensions = comrel
+
+_UI_Wizard_label = New
+
+_WARN_FilenameExtension = The file name must end in ''.{0}''
+_WARN_FilenameExtensions = The file name must have one of the following extensions: {0}
+
+_UI_ModelObject = &Model Object
+_UI_XMLEncoding = &XML Encoding
+_UI_XMLEncodingChoices = UTF-8 ASCII UTF-16 UTF-16BE UTF-16LE ISO-8859-1
+_UI_Wizard_initial_object_description = Select a model object to create
+
+_UI_FileConflict_label = File Conflict
+_WARN_FileConflict = There are unsaved changes that conflict with changes made outside the editor. Do you wish to discard this editor's changes?
+
diff --git a/org.eclipse.emf.refactor.comrel.editor/plugin.xml b/org.eclipse.emf.refactor.comrel.editor/plugin.xml
new file mode 100644
index 0000000..e9aa509
--- /dev/null
+++ b/org.eclipse.emf.refactor.comrel.editor/plugin.xml
@@ -0,0 +1,39 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<?eclipse version="3.0"?>
+
+<!--
+ <copyright>
+ </copyright>
+
+ $Id$
+-->
+
+<plugin>
+
+ <extension point="org.eclipse.ui.newWizards">
+ <category
+ id="org.eclipse.emf.ecore.Wizard.category.ID"
+ name="%_UI_Wizard_category"/>
+ <wizard
+ id="comrel.presentation.ComrelModelWizardID"
+ name="CoMReL model"
+ class="comrel.presentation.ComrelModelWizard"
+ category="comrel.generator.category"
+ icon="icons/full/obj16/ComrelModelFile.gif">
+ <description>%_UI_ComrelModelWizard_description</description>
+ <selection class="org.eclipse.core.resources.IResource"/>
+ </wizard>
+ </extension>
+
+ <extension point="org.eclipse.ui.editors">
+ <editor
+ id="comrel.presentation.ComrelEditorID"
+ name="%_UI_ComrelEditor_label"
+ icon="icons/full/obj16/ComrelModelFile.gif"
+ extensions="comrel"
+ class="comrel.presentation.ComrelEditor"
+ contributorClass="comrel.presentation.ComrelActionBarContributor">
+ </editor>
+ </extension>
+
+</plugin>
diff --git a/org.eclipse.emf.refactor.comrel.editor/src/comrel/presentation/ComrelActionBarContributor.java b/org.eclipse.emf.refactor.comrel.editor/src/comrel/presentation/ComrelActionBarContributor.java
new file mode 100644
index 0000000..a34cf0c
--- /dev/null
+++ b/org.eclipse.emf.refactor.comrel.editor/src/comrel/presentation/ComrelActionBarContributor.java
@@ -0,0 +1,427 @@
+/**
+ * <copyright>
+ * </copyright>
+ *
+ * $Id$
+ */
+package comrel.presentation;
+
+import java.util.ArrayList;
+import java.util.Collection;
+
+import org.eclipse.emf.common.ui.viewer.IViewerProvider;
+
+import org.eclipse.emf.edit.domain.EditingDomain;
+import org.eclipse.emf.edit.domain.IEditingDomainProvider;
+
+import org.eclipse.emf.edit.ui.action.ControlAction;
+import org.eclipse.emf.edit.ui.action.CreateChildAction;
+import org.eclipse.emf.edit.ui.action.CreateSiblingAction;
+import org.eclipse.emf.edit.ui.action.EditingDomainActionBarContributor;
+import org.eclipse.emf.edit.ui.action.LoadResourceAction;
+import org.eclipse.emf.edit.ui.action.ValidateAction;
+
+import org.eclipse.jface.action.Action;
+import org.eclipse.jface.action.ActionContributionItem;
+import org.eclipse.jface.action.IAction;
+import org.eclipse.jface.action.IContributionItem;
+import org.eclipse.jface.action.IContributionManager;
+import org.eclipse.jface.action.IMenuListener;
+import org.eclipse.jface.action.IMenuManager;
+import org.eclipse.jface.action.IToolBarManager;
+import org.eclipse.jface.action.MenuManager;
+import org.eclipse.jface.action.Separator;
+import org.eclipse.jface.action.SubContributionItem;
+
+import org.eclipse.jface.viewers.ISelection;
+import org.eclipse.jface.viewers.ISelectionChangedListener;
+import org.eclipse.jface.viewers.ISelectionProvider;
+import org.eclipse.jface.viewers.IStructuredSelection;
+import org.eclipse.jface.viewers.SelectionChangedEvent;
+import org.eclipse.jface.viewers.Viewer;
+
+import org.eclipse.ui.IEditorPart;
+import org.eclipse.ui.PartInitException;
+
+/**
+ * This is the action bar contributor for the Comrel model editor.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+public class ComrelActionBarContributor
+ extends EditingDomainActionBarContributor
+ implements ISelectionChangedListener {
+ /**
+ * This keeps track of the active editor.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected IEditorPart activeEditorPart;
+
+ /**
+ * This keeps track of the current selection provider.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected ISelectionProvider selectionProvider;
+
+ /**
+ * This action opens the Properties view.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected IAction showPropertiesViewAction =
+ new Action(ComrelEditorPlugin.INSTANCE.getString("_UI_ShowPropertiesView_menu_item")) {
+ @Override
+ public void run() {
+ try {
+ getPage().showView("org.eclipse.ui.views.PropertySheet");
+ }
+ catch (PartInitException exception) {
+ ComrelEditorPlugin.INSTANCE.log(exception);
+ }
+ }
+ };
+
+ /**
+ * This action refreshes the viewer of the current editor if the editor
+ * implements {@link org.eclipse.emf.common.ui.viewer.IViewerProvider}.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected IAction refreshViewerAction =
+ new Action(ComrelEditorPlugin.INSTANCE.getString("_UI_RefreshViewer_menu_item")) {
+ @Override
+ public boolean isEnabled() {
+ return activeEditorPart instanceof IViewerProvider;
+ }
+
+ @Override
+ public void run() {
+ if (activeEditorPart instanceof IViewerProvider) {
+ Viewer viewer = ((IViewerProvider)activeEditorPart).getViewer();
+ if (viewer != null) {
+ viewer.refresh();
+ }
+ }
+ }
+ };
+
+ /**
+ * This will contain one {@link org.eclipse.emf.edit.ui.action.CreateChildAction} corresponding to each descriptor
+ * generated for the current selection by the item provider.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected Collection<IAction> createChildActions;
+
+ /**
+ * This is the menu manager into which menu contribution items should be added for CreateChild actions.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected IMenuManager createChildMenuManager;
+
+ /**
+ * This will contain one {@link org.eclipse.emf.edit.ui.action.CreateSiblingAction} corresponding to each descriptor
+ * generated for the current selection by the item provider.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected Collection<IAction> createSiblingActions;
+
+ /**
+ * This is the menu manager into which menu contribution items should be added for CreateSibling actions.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected IMenuManager createSiblingMenuManager;
+
+ /**
+ * This creates an instance of the contributor.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public ComrelActionBarContributor() {
+ super(ADDITIONS_LAST_STYLE);
+ loadResourceAction = new LoadResourceAction();
+ validateAction = new ValidateAction();
+ controlAction = new ControlAction();
+ }
+
+ /**
+ * This adds Separators for editor additions to the tool bar.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public void contributeToToolBar(IToolBarManager toolBarManager) {
+ toolBarManager.add(new Separator("comrel-settings"));
+ toolBarManager.add(new Separator("comrel-additions"));
+ }
+
+ /**
+ * This adds to the menu bar a menu and some separators for editor additions,
+ * as well as the sub-menus for object creation items.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public void contributeToMenu(IMenuManager menuManager) {
+ super.contributeToMenu(menuManager);
+
+ IMenuManager submenuManager = new MenuManager(ComrelEditorPlugin.INSTANCE.getString("_UI_ComrelEditor_menu"), "comrelMenuID");
+ menuManager.insertAfter("additions", submenuManager);
+ submenuManager.add(new Separator("settings"));
+ submenuManager.add(new Separator("actions"));
+ submenuManager.add(new Separator("additions"));
+ submenuManager.add(new Separator("additions-end"));
+
+ // Prepare for CreateChild item addition or removal.
+ //
+ createChildMenuManager = new MenuManager(ComrelEditorPlugin.INSTANCE.getString("_UI_CreateChild_menu_item"));
+ submenuManager.insertBefore("additions", createChildMenuManager);
+
+ // Prepare for CreateSibling item addition or removal.
+ //
+ createSiblingMenuManager = new MenuManager(ComrelEditorPlugin.INSTANCE.getString("_UI_CreateSibling_menu_item"));
+ submenuManager.insertBefore("additions", createSiblingMenuManager);
+
+ // Force an update because Eclipse hides empty menus now.
+ //
+ submenuManager.addMenuListener
+ (new IMenuListener() {
+ public void menuAboutToShow(IMenuManager menuManager) {
+ menuManager.updateAll(true);
+ }
+ });
+
+ addGlobalActions(submenuManager);
+ }
+
+ /**
+ * When the active editor changes, this remembers the change and registers with it as a selection provider.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public void setActiveEditor(IEditorPart part) {
+ super.setActiveEditor(part);
+ activeEditorPart = part;
+
+ // Switch to the new selection provider.
+ //
+ if (selectionProvider != null) {
+ selectionProvider.removeSelectionChangedListener(this);
+ }
+ if (part == null) {
+ selectionProvider = null;
+ }
+ else {
+ selectionProvider = part.getSite().getSelectionProvider();
+ selectionProvider.addSelectionChangedListener(this);
+
+ // Fake a selection changed event to update the menus.
+ //
+ if (selectionProvider.getSelection() != null) {
+ selectionChanged(new SelectionChangedEvent(selectionProvider, selectionProvider.getSelection()));
+ }
+ }
+ }
+
+ /**
+ * This implements {@link org.eclipse.jface.viewers.ISelectionChangedListener},
+ * handling {@link org.eclipse.jface.viewers.SelectionChangedEvent}s by querying for the children and siblings
+ * that can be added to the selected object and updating the menus accordingly.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public void selectionChanged(SelectionChangedEvent event) {
+ // Remove any menu items for old selection.
+ //
+ if (createChildMenuManager != null) {
+ depopulateManager(createChildMenuManager, createChildActions);
+ }
+ if (createSiblingMenuManager != null) {
+ depopulateManager(createSiblingMenuManager, createSiblingActions);
+ }
+
+ // Query the new selection for appropriate new child/sibling descriptors
+ //
+ Collection<?> newChildDescriptors = null;
+ Collection<?> newSiblingDescriptors = null;
+
+ ISelection selection = event.getSelection();
+ if (selection instanceof IStructuredSelection && ((IStructuredSelection)selection).size() == 1) {
+ Object object = ((IStructuredSelection)selection).getFirstElement();
+
+ EditingDomain domain = ((IEditingDomainProvider)activeEditorPart).getEditingDomain();
+
+ newChildDescriptors = domain.getNewChildDescriptors(object, null);
+ newSiblingDescriptors = domain.getNewChildDescriptors(null, object);
+ }
+
+ // Generate actions for selection; populate and redraw the menus.
+ //
+ createChildActions = generateCreateChildActions(newChildDescriptors, selection);
+ createSiblingActions = generateCreateSiblingActions(newSiblingDescriptors, selection);
+
+ if (createChildMenuManager != null) {
+ populateManager(createChildMenuManager, createChildActions, null);
+ createChildMenuManager.update(true);
+ }
+ if (createSiblingMenuManager != null) {
+ populateManager(createSiblingMenuManager, createSiblingActions, null);
+ createSiblingMenuManager.update(true);
+ }
+ }
+
+ /**
+ * This generates a {@link org.eclipse.emf.edit.ui.action.CreateChildAction} for each object in <code>descriptors</code>,
+ * and returns the collection of these actions.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected Collection<IAction> generateCreateChildActions(Collection<?> descriptors, ISelection selection) {
+ Collection<IAction> actions = new ArrayList<IAction>();
+ if (descriptors != null) {
+ for (Object descriptor : descriptors) {
+ actions.add(new CreateChildAction(activeEditorPart, selection, descriptor));
+ }
+ }
+ return actions;
+ }
+
+ /**
+ * This generates a {@link org.eclipse.emf.edit.ui.action.CreateSiblingAction} for each object in <code>descriptors</code>,
+ * and returns the collection of these actions.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected Collection<IAction> generateCreateSiblingActions(Collection<?> descriptors, ISelection selection) {
+ Collection<IAction> actions = new ArrayList<IAction>();
+ if (descriptors != null) {
+ for (Object descriptor : descriptors) {
+ actions.add(new CreateSiblingAction(activeEditorPart, selection, descriptor));
+ }
+ }
+ return actions;
+ }
+
+ /**
+ * This populates the specified <code>manager</code> with {@link org.eclipse.jface.action.ActionContributionItem}s
+ * based on the {@link org.eclipse.jface.action.IAction}s contained in the <code>actions</code> collection,
+ * by inserting them before the specified contribution item <code>contributionID</code>.
+ * If <code>contributionID</code> is <code>null</code>, they are simply added.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected void populateManager(IContributionManager manager, Collection<? extends IAction> actions, String contributionID) {
+ if (actions != null) {
+ for (IAction action : actions) {
+ if (contributionID != null) {
+ manager.insertBefore(contributionID, action);
+ }
+ else {
+ manager.add(action);
+ }
+ }
+ }
+ }
+
+ /**
+ * This removes from the specified <code>manager</code> all {@link org.eclipse.jface.action.ActionContributionItem}s
+ * based on the {@link org.eclipse.jface.action.IAction}s contained in the <code>actions</code> collection.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected void depopulateManager(IContributionManager manager, Collection<? extends IAction> actions) {
+ if (actions != null) {
+ IContributionItem[] items = manager.getItems();
+ for (int i = 0; i < items.length; i++) {
+ // Look into SubContributionItems
+ //
+ IContributionItem contributionItem = items[i];
+ while (contributionItem instanceof SubContributionItem) {
+ contributionItem = ((SubContributionItem)contributionItem).getInnerItem();
+ }
+
+ // Delete the ActionContributionItems with matching action.
+ //
+ if (contributionItem instanceof ActionContributionItem) {
+ IAction action = ((ActionContributionItem)contributionItem).getAction();
+ if (actions.contains(action)) {
+ manager.remove(contributionItem);
+ }
+ }
+ }
+ }
+ }
+
+ /**
+ * This populates the pop-up menu before it appears.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public void menuAboutToShow(IMenuManager menuManager) {
+ super.menuAboutToShow(menuManager);
+ MenuManager submenuManager = null;
+
+ submenuManager = new MenuManager(ComrelEditorPlugin.INSTANCE.getString("_UI_CreateChild_menu_item"));
+ populateManager(submenuManager, createChildActions, null);
+ menuManager.insertBefore("edit", submenuManager);
+
+ submenuManager = new MenuManager(ComrelEditorPlugin.INSTANCE.getString("_UI_CreateSibling_menu_item"));
+ populateManager(submenuManager, createSiblingActions, null);
+ menuManager.insertBefore("edit", submenuManager);
+ }
+
+ /**
+ * This inserts global actions before the "additions-end" separator.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ protected void addGlobalActions(IMenuManager menuManager) {
+ menuManager.insertAfter("additions-end", new Separator("ui-actions"));
+ menuManager.insertAfter("ui-actions", showPropertiesViewAction);
+
+ refreshViewerAction.setEnabled(refreshViewerAction.isEnabled());
+ menuManager.insertAfter("ui-actions", refreshViewerAction);
+
+ super.addGlobalActions(menuManager);
+ }
+
+ /**
+ * This ensures that a delete action will clean up all references to deleted objects.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ protected boolean removeAllReferencesOnDelete() {
+ return true;
+ }
+
+}
\ No newline at end of file
diff --git a/org.eclipse.emf.refactor.comrel.editor/src/comrel/presentation/ComrelEditor.java b/org.eclipse.emf.refactor.comrel.editor/src/comrel/presentation/ComrelEditor.java
new file mode 100644
index 0000000..57725e8
--- /dev/null
+++ b/org.eclipse.emf.refactor.comrel.editor/src/comrel/presentation/ComrelEditor.java
@@ -0,0 +1,1816 @@
+/**
+ * <copyright>
+ * </copyright>
+ *
+ * $Id$
+ */
+package comrel.presentation;
+
+
+import java.io.IOException;
+import java.io.InputStream;
+
+import java.util.ArrayList;
+import java.util.Collection;
+import java.util.Collections;
+import java.util.EventObject;
+import java.util.HashMap;
+import java.util.Iterator;
+import java.util.LinkedHashMap;
+import java.util.List;
+import java.util.Map;
+
+import org.eclipse.core.resources.IFile;
+import org.eclipse.core.resources.IMarker;
+import org.eclipse.core.resources.IResource;
+import org.eclipse.core.resources.IResourceChangeEvent;
+import org.eclipse.core.resources.IResourceChangeListener;
+import org.eclipse.core.resources.IResourceDelta;
+import org.eclipse.core.resources.IResourceDeltaVisitor;
+import org.eclipse.core.resources.ResourcesPlugin;
+
+import org.eclipse.core.runtime.CoreException;
+import org.eclipse.core.runtime.IPath;
+import org.eclipse.core.runtime.IProgressMonitor;
+import org.eclipse.core.runtime.NullProgressMonitor;
+
+import org.eclipse.jface.action.IMenuListener;
+import org.eclipse.jface.action.IMenuManager;
+import org.eclipse.jface.action.IStatusLineManager;
+import org.eclipse.jface.action.IToolBarManager;
+import org.eclipse.jface.action.MenuManager;
+import org.eclipse.jface.action.Separator;
+
+import org.eclipse.jface.dialogs.MessageDialog;
+import org.eclipse.jface.dialogs.ProgressMonitorDialog;
+
+import org.eclipse.jface.viewers.ColumnWeightData;
+import org.eclipse.jface.viewers.ISelection;
+import org.eclipse.jface.viewers.ISelectionChangedListener;
+import org.eclipse.jface.viewers.ISelectionProvider;
+import org.eclipse.jface.viewers.IStructuredSelection;
+import org.eclipse.jface.viewers.ListViewer;
+import org.eclipse.jface.viewers.SelectionChangedEvent;
+import org.eclipse.jface.viewers.StructuredSelection;
+import org.eclipse.jface.viewers.StructuredViewer;
+import org.eclipse.jface.viewers.TableLayout;
+import org.eclipse.jface.viewers.TableViewer;
+import org.eclipse.jface.viewers.TreeViewer;
+import org.eclipse.jface.viewers.Viewer;
+
+import org.eclipse.swt.SWT;
+
+import org.eclipse.swt.custom.CTabFolder;
+
+import org.eclipse.swt.dnd.DND;
+import org.eclipse.swt.dnd.Transfer;
+
+import org.eclipse.swt.events.ControlAdapter;
+import org.eclipse.swt.events.ControlEvent;
+
+import org.eclipse.swt.graphics.Point;
+
+import org.eclipse.swt.layout.FillLayout;
+
+import org.eclipse.swt.widgets.Composite;
+import org.eclipse.swt.widgets.Menu;
+import org.eclipse.swt.widgets.Table;
+import org.eclipse.swt.widgets.TableColumn;
+import org.eclipse.swt.widgets.Tree;
+import org.eclipse.swt.widgets.TreeColumn;
+
+import org.eclipse.ui.IActionBars;
+import org.eclipse.ui.IEditorInput;
+import org.eclipse.ui.IEditorPart;
+import org.eclipse.ui.IEditorSite;
+import org.eclipse.ui.IPartListener;
+import org.eclipse.ui.IWorkbenchPart;
+import org.eclipse.ui.PartInitException;
+
+import org.eclipse.ui.dialogs.SaveAsDialog;
+
+import org.eclipse.ui.ide.IGotoMarker;
+
+import org.eclipse.ui.part.FileEditorInput;
+import org.eclipse.ui.part.MultiPageEditorPart;
+
+import org.eclipse.ui.views.contentoutline.ContentOutline;
+import org.eclipse.ui.views.contentoutline.ContentOutlinePage;
+import org.eclipse.ui.views.contentoutline.IContentOutlinePage;
+
+import org.eclipse.ui.views.properties.IPropertySheetPage;
+import org.eclipse.ui.views.properties.PropertySheet;
+import org.eclipse.ui.views.properties.PropertySheetPage;
+
+import org.eclipse.emf.common.command.BasicCommandStack;
+import org.eclipse.emf.common.command.Command;
+import org.eclipse.emf.common.command.CommandStack;
+import org.eclipse.emf.common.command.CommandStackListener;
+
+import org.eclipse.emf.common.notify.AdapterFactory;
+import org.eclipse.emf.common.notify.Notification;
+
+import org.eclipse.emf.common.ui.MarkerHelper;
+import org.eclipse.emf.common.ui.ViewerPane;
+
+import org.eclipse.emf.common.ui.editor.ProblemEditorPart;
+
+import org.eclipse.emf.common.ui.viewer.IViewerProvider;
+
+import org.eclipse.emf.common.util.BasicDiagnostic;
+import org.eclipse.emf.common.util.Diagnostic;
+import org.eclipse.emf.common.util.URI;
+
+import org.eclipse.emf.ecore.EObject;
+import org.eclipse.emf.ecore.EValidator;
+
+import org.eclipse.emf.ecore.resource.Resource;
+import org.eclipse.emf.ecore.resource.ResourceSet;
+
+import org.eclipse.emf.ecore.util.EContentAdapter;
+import org.eclipse.emf.ecore.util.EcoreUtil;
+
+import org.eclipse.emf.edit.domain.AdapterFactoryEditingDomain;
+import org.eclipse.emf.edit.domain.EditingDomain;
+import org.eclipse.emf.edit.domain.IEditingDomainProvider;
+
+import org.eclipse.emf.edit.provider.AdapterFactoryItemDelegator;
+import org.eclipse.emf.edit.provider.ComposedAdapterFactory;
+import org.eclipse.emf.edit.provider.ReflectiveItemProviderAdapterFactory;
+
+import org.eclipse.emf.edit.provider.resource.ResourceItemProviderAdapterFactory;
+
+import org.eclipse.emf.edit.ui.action.EditingDomainActionBarContributor;
+
+import org.eclipse.emf.edit.ui.celleditor.AdapterFactoryTreeEditor;
+
+import org.eclipse.emf.edit.ui.dnd.EditingDomainViewerDropAdapter;
+import org.eclipse.emf.edit.ui.dnd.LocalTransfer;
+import org.eclipse.emf.edit.ui.dnd.ViewerDragAdapter;
+
+import org.eclipse.emf.edit.ui.provider.AdapterFactoryContentProvider;
+import org.eclipse.emf.edit.ui.provider.AdapterFactoryLabelProvider;
+import org.eclipse.emf.edit.ui.provider.UnwrappingSelectionProvider;
+
+import org.eclipse.emf.edit.ui.util.EditUIMarkerHelper;
+import org.eclipse.emf.edit.ui.util.EditUIUtil;
+
+import org.eclipse.emf.edit.ui.view.ExtendedPropertySheetPage;
+
+import comrel.provider.ComrelItemProviderAdapterFactory;
+
+import org.eclipse.ui.actions.WorkspaceModifyOperation;
+
+
+/**
+ * This is an example of a Comrel model editor.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+public class ComrelEditor
+ extends MultiPageEditorPart
+ implements IEditingDomainProvider, ISelectionProvider, IMenuListener, IViewerProvider, IGotoMarker {
+ /**
+ * This keeps track of the editing domain that is used to track all changes to the model.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected AdapterFactoryEditingDomain editingDomain;
+
+ /**
+ * This is the one adapter factory used for providing views of the model.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected ComposedAdapterFactory adapterFactory;
+
+ /**
+ * This is the content outline page.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected IContentOutlinePage contentOutlinePage;
+
+ /**
+ * This is a kludge...
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected IStatusLineManager contentOutlineStatusLineManager;
+
+ /**
+ * This is the content outline page's viewer.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected TreeViewer contentOutlineViewer;
+
+ /**
+ * This is the property sheet page.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected PropertySheetPage propertySheetPage;
+
+ /**
+ * This is the viewer that shadows the selection in the content outline.
+ * The parent relation must be correctly defined for this to work.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected TreeViewer selectionViewer;
+
+ /**
+ * This inverts the roll of parent and child in the content provider and show parents as a tree.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected TreeViewer parentViewer;
+
+ /**
+ * This shows how a tree view works.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected TreeViewer treeViewer;
+
+ /**
+ * This shows how a list view works.
+ * A list viewer doesn't support icons.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected ListViewer listViewer;
+
+ /**
+ * This shows how a table view works.
+ * A table can be used as a list with icons.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected TableViewer tableViewer;
+
+ /**
+ * This shows how a tree view with columns works.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected TreeViewer treeViewerWithColumns;
+
+ /**
+ * This keeps track of the active viewer pane, in the book.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected ViewerPane currentViewerPane;
+
+ /**
+ * This keeps track of the active content viewer, which may be either one of the viewers in the pages or the content outline viewer.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected Viewer currentViewer;
+
+ /**
+ * This listens to which ever viewer is active.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected ISelectionChangedListener selectionChangedListener;
+
+ /**
+ * This keeps track of all the {@link org.eclipse.jface.viewers.ISelectionChangedListener}s that are listening to this editor.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected Collection<ISelectionChangedListener> selectionChangedListeners = new ArrayList<ISelectionChangedListener>();
+
+ /**
+ * This keeps track of the selection of the editor as a whole.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected ISelection editorSelection = StructuredSelection.EMPTY;
+
+ /**
+ * The MarkerHelper is responsible for creating workspace resource markers presented
+ * in Eclipse's Problems View.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected MarkerHelper markerHelper = new EditUIMarkerHelper();
+
+ /**
+ * This listens for when the outline becomes active
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected IPartListener partListener =
+ new IPartListener() {
+ public void partActivated(IWorkbenchPart p) {
+ if (p instanceof ContentOutline) {
+ if (((ContentOutline)p).getCurrentPage() == contentOutlinePage) {
+ getActionBarContributor().setActiveEditor(ComrelEditor.this);
+
+ setCurrentViewer(contentOutlineViewer);
+ }
+ }
+ else if (p instanceof PropertySheet) {
+ if (((PropertySheet)p).getCurrentPage() == propertySheetPage) {
+ getActionBarContributor().setActiveEditor(ComrelEditor.this);
+ handleActivate();
+ }
+ }
+ else if (p == ComrelEditor.this) {
+ handleActivate();
+ }
+ }
+ public void partBroughtToTop(IWorkbenchPart p) {
+ // Ignore.
+ }
+ public void partClosed(IWorkbenchPart p) {
+ // Ignore.
+ }
+ public void partDeactivated(IWorkbenchPart p) {
+ // Ignore.
+ }
+ public void partOpened(IWorkbenchPart p) {
+ // Ignore.
+ }
+ };
+
+ /**
+ * Resources that have been removed since last activation.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected Collection<Resource> removedResources = new ArrayList<Resource>();
+
+ /**
+ * Resources that have been changed since last activation.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected Collection<Resource> changedResources = new ArrayList<Resource>();
+
+ /**
+ * Resources that have been saved.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected Collection<Resource> savedResources = new ArrayList<Resource>();
+
+ /**
+ * Map to store the diagnostic associated with a resource.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected Map<Resource, Diagnostic> resourceToDiagnosticMap = new LinkedHashMap<Resource, Diagnostic>();
+
+ /**
+ * Controls whether the problem indication should be updated.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected boolean updateProblemIndication = true;
+
+ /**
+ * Adapter used to update the problem indication when resources are demanded loaded.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected EContentAdapter problemIndicationAdapter =
+ new EContentAdapter() {
+ @Override
+ public void notifyChanged(Notification notification) {
+ if (notification.getNotifier() instanceof Resource) {
+ switch (notification.getFeatureID(Resource.class)) {
+ case Resource.RESOURCE__IS_LOADED:
+ case Resource.RESOURCE__ERRORS:
+ case Resource.RESOURCE__WARNINGS: {
+ Resource resource = (Resource)notification.getNotifier();
+ Diagnostic diagnostic = analyzeResourceProblems(resource, null);
+ if (diagnostic.getSeverity() != Diagnostic.OK) {
+ resourceToDiagnosticMap.put(resource, diagnostic);
+ }
+ else {
+ resourceToDiagnosticMap.remove(resource);
+ }
+
+ if (updateProblemIndication) {
+ getSite().getShell().getDisplay().asyncExec
+ (new Runnable() {
+ public void run() {
+ updateProblemIndication();
+ }
+ });
+ }
+ break;
+ }
+ }
+ }
+ else {
+ super.notifyChanged(notification);
+ }
+ }
+
+ @Override
+ protected void setTarget(Resource target) {
+ basicSetTarget(target);
+ }
+
+ @Override
+ protected void unsetTarget(Resource target) {
+ basicUnsetTarget(target);
+ }
+ };
+
+ /**
+ * This listens for workspace changes.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected IResourceChangeListener resourceChangeListener =
+ new IResourceChangeListener() {
+ public void resourceChanged(IResourceChangeEvent event) {
+ IResourceDelta delta = event.getDelta();
+ try {
+ class ResourceDeltaVisitor implements IResourceDeltaVisitor {
+ protected ResourceSet resourceSet = editingDomain.getResourceSet();
+ protected Collection<Resource> changedResources = new ArrayList<Resource>();
+ protected Collection<Resource> removedResources = new ArrayList<Resource>();
+
+ public boolean visit(IResourceDelta delta) {
+ if (delta.getResource().getType() == IResource.FILE) {
+ if (delta.getKind() == IResourceDelta.REMOVED ||
+ delta.getKind() == IResourceDelta.CHANGED && delta.getFlags() != IResourceDelta.MARKERS) {
+ Resource resource = resourceSet.getResource(URI.createPlatformResourceURI(delta.getFullPath().toString(), true), false);
+ if (resource != null) {
+ if (delta.getKind() == IResourceDelta.REMOVED) {
+ removedResources.add(resource);
+ }
+ else if (!savedResources.remove(resource)) {
+ changedResources.add(resource);
+ }
+ }
+ }
+ }
+
+ return true;
+ }
+
+ public Collection<Resource> getChangedResources() {
+ return changedResources;
+ }
+
+ public Collection<Resource> getRemovedResources() {
+ return removedResources;
+ }
+ }
+
+ final ResourceDeltaVisitor visitor = new ResourceDeltaVisitor();
+ delta.accept(visitor);
+
+ if (!visitor.getRemovedResources().isEmpty()) {
+ getSite().getShell().getDisplay().asyncExec
+ (new Runnable() {
+ public void run() {
+ removedResources.addAll(visitor.getRemovedResources());
+ if (!isDirty()) {
+ getSite().getPage().closeEditor(ComrelEditor.this, false);
+ }
+ }
+ });
+ }
+
+ if (!visitor.getChangedResources().isEmpty()) {
+ getSite().getShell().getDisplay().asyncExec
+ (new Runnable() {
+ public void run() {
+ changedResources.addAll(visitor.getChangedResources());
+ if (getSite().getPage().getActiveEditor() == ComrelEditor.this) {
+ handleActivate();
+ }
+ }
+ });
+ }
+ }
+ catch (CoreException exception) {
+ ComrelEditorPlugin.INSTANCE.log(exception);
+ }
+ }
+ };
+
+ /**
+ * Handles activation of the editor or it's associated views.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected void handleActivate() {
+ // Recompute the read only state.
+ //
+ if (editingDomain.getResourceToReadOnlyMap() != null) {
+ editingDomain.getResourceToReadOnlyMap().clear();
+
+ // Refresh any actions that may become enabled or disabled.
+ //
+ setSelection(getSelection());
+ }
+
+ if (!removedResources.isEmpty()) {
+ if (handleDirtyConflict()) {
+ getSite().getPage().closeEditor(ComrelEditor.this, false);
+ }
+ else {
+ removedResources.clear();
+ changedResources.clear();
+ savedResources.clear();
+ }
+ }
+ else if (!changedResources.isEmpty()) {
+ changedResources.removeAll(savedResources);
+ handleChangedResources();
+ changedResources.clear();
+ savedResources.clear();
+ }
+ }
+
+ /**
+ * Handles what to do with changed resources on activation.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected void handleChangedResources() {
+ if (!changedResources.isEmpty() && (!isDirty() || handleDirtyConflict())) {
+ if (isDirty()) {
+ changedResources.addAll(editingDomain.getResourceSet().getResources());
+ }
+ editingDomain.getCommandStack().flush();
+
+ updateProblemIndication = false;
+ for (Resource resource : changedResources) {
+ if (resource.isLoaded()) {
+ resource.unload();
+ try {
+ resource.load(Collections.EMPTY_MAP);
+ }
+ catch (IOException exception) {
+ if (!resourceToDiagnosticMap.containsKey(resource)) {
+ resourceToDiagnosticMap.put(resource, analyzeResourceProblems(resource, exception));
+ }
+ }
+ }
+ }
+
+ if (AdapterFactoryEditingDomain.isStale(editorSelection)) {
+ setSelection(StructuredSelection.EMPTY);
+ }
+
+ updateProblemIndication = true;
+ updateProblemIndication();
+ }
+ }
+
+ /**
+ * Updates the problems indication with the information described in the specified diagnostic.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected void updateProblemIndication() {
+ if (updateProblemIndication) {
+ BasicDiagnostic diagnostic =
+ new BasicDiagnostic
+ (Diagnostic.OK,
+ "comrel.editor",
+ 0,
+ null,
+ new Object [] { editingDomain.getResourceSet() });
+ for (Diagnostic childDiagnostic : resourceToDiagnosticMap.values()) {
+ if (childDiagnostic.getSeverity() != Diagnostic.OK) {
+ diagnostic.add(childDiagnostic);
+ }
+ }
+
+ int lastEditorPage = getPageCount() - 1;
+ if (lastEditorPage >= 0 && getEditor(lastEditorPage) instanceof ProblemEditorPart) {
+ ((ProblemEditorPart)getEditor(lastEditorPage)).setDiagnostic(diagnostic);
+ if (diagnostic.getSeverity() != Diagnostic.OK) {
+ setActivePage(lastEditorPage);
+ }
+ }
+ else if (diagnostic.getSeverity() != Diagnostic.OK) {
+ ProblemEditorPart problemEditorPart = new ProblemEditorPart();
+ problemEditorPart.setDiagnostic(diagnostic);
+ problemEditorPart.setMarkerHelper(markerHelper);
+ try {
+ addPage(++lastEditorPage, problemEditorPart, getEditorInput());
+ setPageText(lastEditorPage, problemEditorPart.getPartName());
+ setActivePage(lastEditorPage);
+ showTabs();
+ }
+ catch (PartInitException exception) {
+ ComrelEditorPlugin.INSTANCE.log(exception);
+ }
+ }
+
+ if (markerHelper.hasMarkers(editingDomain.getResourceSet())) {
+ markerHelper.deleteMarkers(editingDomain.getResourceSet());
+ if (diagnostic.getSeverity() != Diagnostic.OK) {
+ try {
+ markerHelper.createMarkers(diagnostic);
+ }
+ catch (CoreException exception) {
+ ComrelEditorPlugin.INSTANCE.log(exception);
+ }
+ }
+ }
+ }
+ }
+
+ /**
+ * Shows a dialog that asks if conflicting changes should be discarded.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected boolean handleDirtyConflict() {
+ return
+ MessageDialog.openQuestion
+ (getSite().getShell(),
+ getString("_UI_FileConflict_label"),
+ getString("_WARN_FileConflict"));
+ }
+
+ /**
+ * This creates a model editor.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public ComrelEditor() {
+ super();
+ initializeEditingDomain();
+ }
+
+ /**
+ * This sets up the editing domain for the model editor.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected void initializeEditingDomain() {
+ // Create an adapter factory that yields item providers.
+ //
+ adapterFactory = new ComposedAdapterFactory(ComposedAdapterFactory.Descriptor.Registry.INSTANCE);
+
+ adapterFactory.addAdapterFactory(new ResourceItemProviderAdapterFactory());
+ adapterFactory.addAdapterFactory(new ComrelItemProviderAdapterFactory());
+ adapterFactory.addAdapterFactory(new ReflectiveItemProviderAdapterFactory());
+
+ // Create the command stack that will notify this editor as commands are executed.
+ //
+ BasicCommandStack commandStack = new BasicCommandStack();
+
+ // Add a listener to set the most recent command's affected objects to be the selection of the viewer with focus.
+ //
+ commandStack.addCommandStackListener
+ (new CommandStackListener() {
+ public void commandStackChanged(final EventObject event) {
+ getContainer().getDisplay().asyncExec
+ (new Runnable() {
+ public void run() {
+ firePropertyChange(IEditorPart.PROP_DIRTY);
+
+ // Try to select the affected objects.
+ //
+ Command mostRecentCommand = ((CommandStack)event.getSource()).getMostRecentCommand();
+ if (mostRecentCommand != null) {
+ setSelectionToViewer(mostRecentCommand.getAffectedObjects());
+ }
+ if (propertySheetPage != null && !propertySheetPage.getControl().isDisposed()) {
+ propertySheetPage.refresh();
+ }
+ }
+ });
+ }
+ });
+
+ // Create the editing domain with a special command stack.
+ //
+ editingDomain = new AdapterFactoryEditingDomain(adapterFactory, commandStack, new HashMap<Resource, Boolean>());
+ }
+
+ /**
+ * This is here for the listener to be able to call it.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ protected void firePropertyChange(int action) {
+ super.firePropertyChange(action);
+ }
+
+ /**
+ * This sets the selection into whichever viewer is active.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public void setSelectionToViewer(Collection<?> collection) {
+ final Collection<?> theSelection = collection;
+ // Make sure it's okay.
+ //
+ if (theSelection != null && !theSelection.isEmpty()) {
+ Runnable runnable =
+ new Runnable() {
+ public void run() {
+ // Try to select the items in the current content viewer of the editor.
+ //
+ if (currentViewer != null) {
+ currentViewer.setSelection(new StructuredSelection(theSelection.toArray()), true);
+ }
+ }
+ };
+ getSite().getShell().getDisplay().asyncExec(runnable);
+ }
+ }
+
+ /**
+ * This returns the editing domain as required by the {@link IEditingDomainProvider} interface.
+ * This is important for implementing the static methods of {@link AdapterFactoryEditingDomain}
+ * and for supporting {@link org.eclipse.emf.edit.ui.action.CommandAction}.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EditingDomain getEditingDomain() {
+ return editingDomain;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public class ReverseAdapterFactoryContentProvider extends AdapterFactoryContentProvider {
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public ReverseAdapterFactoryContentProvider(AdapterFactory adapterFactory) {
+ super(adapterFactory);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public Object [] getElements(Object object) {
+ Object parent = super.getParent(object);
+ return (parent == null ? Collections.EMPTY_SET : Collections.singleton(parent)).toArray();
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public Object [] getChildren(Object object) {
+ Object parent = super.getParent(object);
+ return (parent == null ? Collections.EMPTY_SET : Collections.singleton(parent)).toArray();
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public boolean hasChildren(Object object) {
+ Object parent = super.getParent(object);
+ return parent != null;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public Object getParent(Object object) {
+ return null;
+ }
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public void setCurrentViewerPane(ViewerPane viewerPane) {
+ if (currentViewerPane != viewerPane) {
+ if (currentViewerPane != null) {
+ currentViewerPane.showFocus(false);
+ }
+ currentViewerPane = viewerPane;
+ }
+ setCurrentViewer(currentViewerPane.getViewer());
+ }
+
+ /**
+ * This makes sure that one content viewer, either for the current page or the outline view, if it has focus,
+ * is the current one.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public void setCurrentViewer(Viewer viewer) {
+ // If it is changing...
+ //
+ if (currentViewer != viewer) {
+ if (selectionChangedListener == null) {
+ // Create the listener on demand.
+ //
+ selectionChangedListener =
+ new ISelectionChangedListener() {
+ // This just notifies those things that are affected by the section.
+ //
+ public void selectionChanged(SelectionChangedEvent selectionChangedEvent) {
+ setSelection(selectionChangedEvent.getSelection());
+ }
+ };
+ }
+
+ // Stop listening to the old one.
+ //
+ if (currentViewer != null) {
+ currentViewer.removeSelectionChangedListener(selectionChangedListener);
+ }
+
+ // Start listening to the new one.
+ //
+ if (viewer != null) {
+ viewer.addSelectionChangedListener(selectionChangedListener);
+ }
+
+ // Remember it.
+ //
+ currentViewer = viewer;
+
+ // Set the editors selection based on the current viewer's selection.
+ //
+ setSelection(currentViewer == null ? StructuredSelection.EMPTY : currentViewer.getSelection());
+ }
+ }
+
+ /**
+ * This returns the viewer as required by the {@link IViewerProvider} interface.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public Viewer getViewer() {
+ return currentViewer;
+ }
+
+ /**
+ * This creates a context menu for the viewer and adds a listener as well registering the menu for extension.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected void createContextMenuFor(StructuredViewer viewer) {
+ MenuManager contextMenu = new MenuManager("#PopUp");
+ contextMenu.add(new Separator("additions"));
+ contextMenu.setRemoveAllWhenShown(true);
+ contextMenu.addMenuListener(this);
+ Menu menu= contextMenu.createContextMenu(viewer.getControl());
+ viewer.getControl().setMenu(menu);
+ getSite().registerContextMenu(contextMenu, new UnwrappingSelectionProvider(viewer));
+
+ int dndOperations = DND.DROP_COPY | DND.DROP_MOVE | DND.DROP_LINK;
+ Transfer[] transfers = new Transfer[] { LocalTransfer.getInstance() };
+ viewer.addDragSupport(dndOperations, transfers, new ViewerDragAdapter(viewer));
+ viewer.addDropSupport(dndOperations, transfers, new EditingDomainViewerDropAdapter(editingDomain, viewer));
+ }
+
+ /**
+ * This is the method called to load a resource into the editing domain's resource set based on the editor's input.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public void createModel() {
+ URI resourceURI = EditUIUtil.getURI(getEditorInput());
+ Exception exception = null;
+ Resource resource = null;
+ try {
+ // Load the resource through the editing domain.
+ //
+ resource = editingDomain.getResourceSet().getResource(resourceURI, true);
+ }
+ catch (Exception e) {
+ exception = e;
+ resource = editingDomain.getResourceSet().getResource(resourceURI, false);
+ }
+
+ Diagnostic diagnostic = analyzeResourceProblems(resource, exception);
+ if (diagnostic.getSeverity() != Diagnostic.OK) {
+ resourceToDiagnosticMap.put(resource, analyzeResourceProblems(resource, exception));
+ }
+ editingDomain.getResourceSet().eAdapters().add(problemIndicationAdapter);
+ }
+
+ /**
+ * Returns a diagnostic describing the errors and warnings listed in the resource
+ * and the specified exception (if any).
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public Diagnostic analyzeResourceProblems(Resource resource, Exception exception) {
+ if (!resource.getErrors().isEmpty() || !resource.getWarnings().isEmpty()) {
+ BasicDiagnostic basicDiagnostic =
+ new BasicDiagnostic
+ (Diagnostic.ERROR,
+ "comrel.editor",
+ 0,
+ getString("_UI_CreateModelError_message", resource.getURI()),
+ new Object [] { exception == null ? (Object)resource : exception });
+ basicDiagnostic.merge(EcoreUtil.computeDiagnostic(resource, true));
+ return basicDiagnostic;
+ }
+ else if (exception != null) {
+ return
+ new BasicDiagnostic
+ (Diagnostic.ERROR,
+ "comrel.editor",
+ 0,
+ getString("_UI_CreateModelError_message", resource.getURI()),
+ new Object[] { exception });
+ }
+ else {
+ return Diagnostic.OK_INSTANCE;
+ }
+ }
+
+ /**
+ * This is the method used by the framework to install your own controls.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public void createPages() {
+ // Creates the model from the editor input
+ //
+ createModel();
+
+ // Only creates the other pages if there is something that can be edited
+ //
+ if (!getEditingDomain().getResourceSet().getResources().isEmpty()) {
+ // Create a page for the selection tree view.
+ //
+ {
+ ViewerPane viewerPane =
+ new ViewerPane(getSite().getPage(), ComrelEditor.this) {
+ @Override
+ public Viewer createViewer(Composite composite) {
+ Tree tree = new Tree(composite, SWT.MULTI);
+ TreeViewer newTreeViewer = new TreeViewer(tree);
+ return newTreeViewer;
+ }
+ @Override
+ public void requestActivation() {
+ super.requestActivation();
+ setCurrentViewerPane(this);
+ }
+ };
+ viewerPane.createControl(getContainer());
+
+ selectionViewer = (TreeViewer)viewerPane.getViewer();
+ selectionViewer.setContentProvider(new AdapterFactoryContentProvider(adapterFactory));
+
+ selectionViewer.setLabelProvider(new AdapterFactoryLabelProvider(adapterFactory));
+ selectionViewer.setInput(editingDomain.getResourceSet());
+ selectionViewer.setSelection(new StructuredSelection(editingDomain.getResourceSet().getResources().get(0)), true);
+ viewerPane.setTitle(editingDomain.getResourceSet());
+
+ new AdapterFactoryTreeEditor(selectionViewer.getTree(), adapterFactory);
+
+ createContextMenuFor(selectionViewer);
+ int pageIndex = addPage(viewerPane.getControl());
+ setPageText(pageIndex, getString("_UI_SelectionPage_label"));
+ }
+
+ // Create a page for the parent tree view.
+ //
+ {
+ ViewerPane viewerPane =
+ new ViewerPane(getSite().getPage(), ComrelEditor.this) {
+ @Override
+ public Viewer createViewer(Composite composite) {
+ Tree tree = new Tree(composite, SWT.MULTI);
+ TreeViewer newTreeViewer = new TreeViewer(tree);
+ return newTreeViewer;
+ }
+ @Override
+ public void requestActivation() {
+ super.requestActivation();
+ setCurrentViewerPane(this);
+ }
+ };
+ viewerPane.createControl(getContainer());
+
+ parentViewer = (TreeViewer)viewerPane.getViewer();
+ parentViewer.setAutoExpandLevel(30);
+ parentViewer.setContentProvider(new ReverseAdapterFactoryContentProvider(adapterFactory));
+ parentViewer.setLabelProvider(new AdapterFactoryLabelProvider(adapterFactory));
+
+ createContextMenuFor(parentViewer);
+ int pageIndex = addPage(viewerPane.getControl());
+ setPageText(pageIndex, getString("_UI_ParentPage_label"));
+ }
+
+ // This is the page for the list viewer
+ //
+ {
+ ViewerPane viewerPane =
+ new ViewerPane(getSite().getPage(), ComrelEditor.this) {
+ @Override
+ public Viewer createViewer(Composite composite) {
+ return new ListViewer(composite);
+ }
+ @Override
+ public void requestActivation() {
+ super.requestActivation();
+ setCurrentViewerPane(this);
+ }
+ };
+ viewerPane.createControl(getContainer());
+ listViewer = (ListViewer)viewerPane.getViewer();
+ listViewer.setContentProvider(new AdapterFactoryContentProvider(adapterFactory));
+ listViewer.setLabelProvider(new AdapterFactoryLabelProvider(adapterFactory));
+
+ createContextMenuFor(listViewer);
+ int pageIndex = addPage(viewerPane.getControl());
+ setPageText(pageIndex, getString("_UI_ListPage_label"));
+ }
+
+ // This is the page for the tree viewer
+ //
+ {
+ ViewerPane viewerPane =
+ new ViewerPane(getSite().getPage(), ComrelEditor.this) {
+ @Override
+ public Viewer createViewer(Composite composite) {
+ return new TreeViewer(composite);
+ }
+ @Override
+ public void requestActivation() {
+ super.requestActivation();
+ setCurrentViewerPane(this);
+ }
+ };
+ viewerPane.createControl(getContainer());
+ treeViewer = (TreeViewer)viewerPane.getViewer();
+ treeViewer.setContentProvider(new AdapterFactoryContentProvider(adapterFactory));
+ treeViewer.setLabelProvider(new AdapterFactoryLabelProvider(adapterFactory));
+
+ new AdapterFactoryTreeEditor(treeViewer.getTree(), adapterFactory);
+
+ createContextMenuFor(treeViewer);
+ int pageIndex = addPage(viewerPane.getControl());
+ setPageText(pageIndex, getString("_UI_TreePage_label"));
+ }
+
+ // This is the page for the table viewer.
+ //
+ {
+ ViewerPane viewerPane =
+ new ViewerPane(getSite().getPage(), ComrelEditor.this) {
+ @Override
+ public Viewer createViewer(Composite composite) {
+ return new TableViewer(composite);
+ }
+ @Override
+ public void requestActivation() {
+ super.requestActivation();
+ setCurrentViewerPane(this);
+ }
+ };
+ viewerPane.createControl(getContainer());
+ tableViewer = (TableViewer)viewerPane.getViewer();
+
+ Table table = tableViewer.getTable();
+ TableLayout layout = new TableLayout();
+ table.setLayout(layout);
+ table.setHeaderVisible(true);
+ table.setLinesVisible(true);
+
+ TableColumn objectColumn = new TableColumn(table, SWT.NONE);
+ layout.addColumnData(new ColumnWeightData(3, 100, true));
+ objectColumn.setText(getString("_UI_ObjectColumn_label"));
+ objectColumn.setResizable(true);
+
+ TableColumn selfColumn = new TableColumn(table, SWT.NONE);
+ layout.addColumnData(new ColumnWeightData(2, 100, true));
+ selfColumn.setText(getString("_UI_SelfColumn_label"));
+ selfColumn.setResizable(true);
+
+ tableViewer.setColumnProperties(new String [] {"a", "b"});
+ tableViewer.setContentProvider(new AdapterFactoryContentProvider(adapterFactory));
+ tableViewer.setLabelProvider(new AdapterFactoryLabelProvider(adapterFactory));
+
+ createContextMenuFor(tableViewer);
+ int pageIndex = addPage(viewerPane.getControl());
+ setPageText(pageIndex, getString("_UI_TablePage_label"));
+ }
+
+ // This is the page for the table tree viewer.
+ //
+ {
+ ViewerPane viewerPane =
+ new ViewerPane(getSite().getPage(), ComrelEditor.this) {
+ @Override
+ public Viewer createViewer(Composite composite) {
+ return new TreeViewer(composite);
+ }
+ @Override
+ public void requestActivation() {
+ super.requestActivation();
+ setCurrentViewerPane(this);
+ }
+ };
+ viewerPane.createControl(getContainer());
+
+ treeViewerWithColumns = (TreeViewer)viewerPane.getViewer();
+
+ Tree tree = treeViewerWithColumns.getTree();
+ tree.setLayoutData(new FillLayout());
+ tree.setHeaderVisible(true);
+ tree.setLinesVisible(true);
+
+ TreeColumn objectColumn = new TreeColumn(tree, SWT.NONE);
+ objectColumn.setText(getString("_UI_ObjectColumn_label"));
+ objectColumn.setResizable(true);
+ objectColumn.setWidth(250);
+
+ TreeColumn selfColumn = new TreeColumn(tree, SWT.NONE);
+ selfColumn.setText(getString("_UI_SelfColumn_label"));
+ selfColumn.setResizable(true);
+ selfColumn.setWidth(200);
+
+ treeViewerWithColumns.setColumnProperties(new String [] {"a", "b"});
+ treeViewerWithColumns.setContentProvider(new AdapterFactoryContentProvider(adapterFactory));
+ treeViewerWithColumns.setLabelProvider(new AdapterFactoryLabelProvider(adapterFactory));
+
+ createContextMenuFor(treeViewerWithColumns);
+ int pageIndex = addPage(viewerPane.getControl());
+ setPageText(pageIndex, getString("_UI_TreeWithColumnsPage_label"));
+ }
+
+ getSite().getShell().getDisplay().asyncExec
+ (new Runnable() {
+ public void run() {
+ setActivePage(0);
+ }
+ });
+ }
+
+ // Ensures that this editor will only display the page's tab
+ // area if there are more than one page
+ //
+ getContainer().addControlListener
+ (new ControlAdapter() {
+ boolean guard = false;
+ @Override
+ public void controlResized(ControlEvent event) {
+ if (!guard) {
+ guard = true;
+ hideTabs();
+ guard = false;
+ }
+ }
+ });
+
+ getSite().getShell().getDisplay().asyncExec
+ (new Runnable() {
+ public void run() {
+ updateProblemIndication();
+ }
+ });
+ }
+
+ /**
+ * If there is just one page in the multi-page editor part,
+ * this hides the single tab at the bottom.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected void hideTabs() {
+ if (getPageCount() <= 1) {
+ setPageText(0, "");
+ if (getContainer() instanceof CTabFolder) {
+ ((CTabFolder)getContainer()).setTabHeight(1);
+ Point point = getContainer().getSize();
+ getContainer().setSize(point.x, point.y + 6);
+ }
+ }
+ }
+
+ /**
+ * If there is more than one page in the multi-page editor part,
+ * this shows the tabs at the bottom.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected void showTabs() {
+ if (getPageCount() > 1) {
+ setPageText(0, getString("_UI_SelectionPage_label"));
+ if (getContainer() instanceof CTabFolder) {
+ ((CTabFolder)getContainer()).setTabHeight(SWT.DEFAULT);
+ Point point = getContainer().getSize();
+ getContainer().setSize(point.x, point.y - 6);
+ }
+ }
+ }
+
+ /**
+ * This is used to track the active viewer.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ protected void pageChange(int pageIndex) {
+ super.pageChange(pageIndex);
+
+ if (contentOutlinePage != null) {
+ handleContentOutlineSelection(contentOutlinePage.getSelection());
+ }
+ }
+
+ /**
+ * This is how the framework determines which interfaces we implement.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @SuppressWarnings("rawtypes")
+ @Override
+ public Object getAdapter(Class key) {
+ if (key.equals(IContentOutlinePage.class)) {
+ return showOutlineView() ? getContentOutlinePage() : null;
+ }
+ else if (key.equals(IPropertySheetPage.class)) {
+ return getPropertySheetPage();
+ }
+ else if (key.equals(IGotoMarker.class)) {
+ return this;
+ }
+ else {
+ return super.getAdapter(key);
+ }
+ }
+
+ /**
+ * This accesses a cached version of the content outliner.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public IContentOutlinePage getContentOutlinePage() {
+ if (contentOutlinePage == null) {
+ // The content outline is just a tree.
+ //
+ class MyContentOutlinePage extends ContentOutlinePage {
+ @Override
+ public void createControl(Composite parent) {
+ super.createControl(parent);
+ contentOutlineViewer = getTreeViewer();
+ contentOutlineViewer.addSelectionChangedListener(this);
+
+ // Set up the tree viewer.
+ //
+ contentOutlineViewer.setContentProvider(new AdapterFactoryContentProvider(adapterFactory));
+ contentOutlineViewer.setLabelProvider(new AdapterFactoryLabelProvider(adapterFactory));
+ contentOutlineViewer.setInput(editingDomain.getResourceSet());
+
+ // Make sure our popups work.
+ //
+ createContextMenuFor(contentOutlineViewer);
+
+ if (!editingDomain.getResourceSet().getResources().isEmpty()) {
+ // Select the root object in the view.
+ //
+ contentOutlineViewer.setSelection(new StructuredSelection(editingDomain.getResourceSet().getResources().get(0)), true);
+ }
+ }
+
+ @Override
+ public void makeContributions(IMenuManager menuManager, IToolBarManager toolBarManager, IStatusLineManager statusLineManager) {
+ super.makeContributions(menuManager, toolBarManager, statusLineManager);
+ contentOutlineStatusLineManager = statusLineManager;
+ }
+
+ @Override
+ public void setActionBars(IActionBars actionBars) {
+ super.setActionBars(actionBars);
+ getActionBarContributor().shareGlobalActions(this, actionBars);
+ }
+ }
+
+ contentOutlinePage = new MyContentOutlinePage();
+
+ // Listen to selection so that we can handle it is a special way.
+ //
+ contentOutlinePage.addSelectionChangedListener
+ (new ISelectionChangedListener() {
+ // This ensures that we handle selections correctly.
+ //
+ public void selectionChanged(SelectionChangedEvent event) {
+ handleContentOutlineSelection(event.getSelection());
+ }
+ });
+ }
+
+ return contentOutlinePage;
+ }
+
+ /**
+ * This accesses a cached version of the property sheet.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public IPropertySheetPage getPropertySheetPage() {
+ if (propertySheetPage == null) {
+ propertySheetPage =
+ new ExtendedPropertySheetPage(editingDomain) {
+ @Override
+ public void setSelectionToViewer(List<?> selection) {
+ ComrelEditor.this.setSelectionToViewer(selection);
+ ComrelEditor.this.setFocus();
+ }
+
+ @Override
+ public void setActionBars(IActionBars actionBars) {
+ super.setActionBars(actionBars);
+ getActionBarContributor().shareGlobalActions(this, actionBars);
+ }
+ };
+ propertySheetPage.setPropertySourceProvider(new AdapterFactoryContentProvider(adapterFactory));
+ }
+
+ return propertySheetPage;
+ }
+
+ /**
+ * This deals with how we want selection in the outliner to affect the other views.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public void handleContentOutlineSelection(ISelection selection) {
+ if (currentViewerPane != null && !selection.isEmpty() && selection instanceof IStructuredSelection) {
+ Iterator<?> selectedElements = ((IStructuredSelection)selection).iterator();
+ if (selectedElements.hasNext()) {
+ // Get the first selected element.
+ //
+ Object selectedElement = selectedElements.next();
+
+ // If it's the selection viewer, then we want it to select the same selection as this selection.
+ //
+ if (currentViewerPane.getViewer() == selectionViewer) {
+ ArrayList<Object> selectionList = new ArrayList<Object>();
+ selectionList.add(selectedElement);
+ while (selectedElements.hasNext()) {
+ selectionList.add(selectedElements.next());
+ }
+
+ // Set the selection to the widget.
+ //
+ selectionViewer.setSelection(new StructuredSelection(selectionList));
+ }
+ else {
+ // Set the input to the widget.
+ //
+ if (currentViewerPane.getViewer().getInput() != selectedElement) {
+ currentViewerPane.getViewer().setInput(selectedElement);
+ currentViewerPane.setTitle(selectedElement);
+ }
+ }
+ }
+ }
+ }
+
+ /**
+ * This is for implementing {@link IEditorPart} and simply tests the command stack.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public boolean isDirty() {
+ return ((BasicCommandStack)editingDomain.getCommandStack()).isSaveNeeded();
+ }
+
+ /**
+ * This is for implementing {@link IEditorPart} and simply saves the model file.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public void doSave(IProgressMonitor progressMonitor) {
+ // Save only resources that have actually changed.
+ //
+ final Map<Object, Object> saveOptions = new HashMap<Object, Object>();
+ saveOptions.put(Resource.OPTION_SAVE_ONLY_IF_CHANGED, Resource.OPTION_SAVE_ONLY_IF_CHANGED_MEMORY_BUFFER);
+
+ // Do the work within an operation because this is a long running activity that modifies the workbench.
+ //
+ WorkspaceModifyOperation operation =
+ new WorkspaceModifyOperation() {
+ // This is the method that gets invoked when the operation runs.
+ //
+ @Override
+ public void execute(IProgressMonitor monitor) {
+ // Save the resources to the file system.
+ //
+ boolean first = true;
+ for (Resource resource : editingDomain.getResourceSet().getResources()) {
+ if ((first || !resource.getContents().isEmpty() || isPersisted(resource)) && !editingDomain.isReadOnly(resource)) {
+ try {
+ long timeStamp = resource.getTimeStamp();
+ resource.save(saveOptions);
+ if (resource.getTimeStamp() != timeStamp) {
+ savedResources.add(resource);
+ }
+ }
+ catch (Exception exception) {
+ resourceToDiagnosticMap.put(resource, analyzeResourceProblems(resource, exception));
+ }
+ first = false;
+ }
+ }
+ }
+ };
+
+ updateProblemIndication = false;
+ try {
+ // This runs the options, and shows progress.
+ //
+ new ProgressMonitorDialog(getSite().getShell()).run(true, false, operation);
+
+ // Refresh the necessary state.
+ //
+ ((BasicCommandStack)editingDomain.getCommandStack()).saveIsDone();
+ firePropertyChange(IEditorPart.PROP_DIRTY);
+ }
+ catch (Exception exception) {
+ // Something went wrong that shouldn't.
+ //
+ ComrelEditorPlugin.INSTANCE.log(exception);
+ }
+ updateProblemIndication = true;
+ updateProblemIndication();
+ }
+
+ /**
+ * This returns whether something has been persisted to the URI of the specified resource.
+ * The implementation uses the URI converter from the editor's resource set to try to open an input stream.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected boolean isPersisted(Resource resource) {
+ boolean result = false;
+ try {
+ InputStream stream = editingDomain.getResourceSet().getURIConverter().createInputStream(resource.getURI());
+ if (stream != null) {
+ result = true;
+ stream.close();
+ }
+ }
+ catch (IOException e) {
+ // Ignore
+ }
+ return result;
+ }
+
+ /**
+ * This always returns true because it is not currently supported.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public boolean isSaveAsAllowed() {
+ return true;
+ }
+
+ /**
+ * This also changes the editor's input.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public void doSaveAs() {
+ SaveAsDialog saveAsDialog = new SaveAsDialog(getSite().getShell());
+ saveAsDialog.open();
+ IPath path = saveAsDialog.getResult();
+ if (path != null) {
+ IFile file = ResourcesPlugin.getWorkspace().getRoot().getFile(path);
+ if (file != null) {
+ doSaveAs(URI.createPlatformResourceURI(file.getFullPath().toString(), true), new FileEditorInput(file));
+ }
+ }
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected void doSaveAs(URI uri, IEditorInput editorInput) {
+ (editingDomain.getResourceSet().getResources().get(0)).setURI(uri);
+ setInputWithNotify(editorInput);
+ setPartName(editorInput.getName());
+ IProgressMonitor progressMonitor =
+ getActionBars().getStatusLineManager() != null ?
+ getActionBars().getStatusLineManager().getProgressMonitor() :
+ new NullProgressMonitor();
+ doSave(progressMonitor);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public void gotoMarker(IMarker marker) {
+ try {
+ if (marker.getType().equals(EValidator.MARKER)) {
+ String uriAttribute = marker.getAttribute(EValidator.URI_ATTRIBUTE, null);
+ if (uriAttribute != null) {
+ URI uri = URI.createURI(uriAttribute);
+ EObject eObject = editingDomain.getResourceSet().getEObject(uri, true);
+ if (eObject != null) {
+ setSelectionToViewer(Collections.singleton(editingDomain.getWrapper(eObject)));
+ }
+ }
+ }
+ }
+ catch (CoreException exception) {
+ ComrelEditorPlugin.INSTANCE.log(exception);
+ }
+ }
+
+ /**
+ * This is called during startup.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public void init(IEditorSite site, IEditorInput editorInput) {
+ setSite(site);
+ setInputWithNotify(editorInput);
+ setPartName(editorInput.getName());
+ site.setSelectionProvider(this);
+ site.getPage().addPartListener(partListener);
+ ResourcesPlugin.getWorkspace().addResourceChangeListener(resourceChangeListener, IResourceChangeEvent.POST_CHANGE);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public void setFocus() {
+ if (currentViewerPane != null) {
+ currentViewerPane.setFocus();
+ }
+ else {
+ getControl(getActivePage()).setFocus();
+ }
+ }
+
+ /**
+ * This implements {@link org.eclipse.jface.viewers.ISelectionProvider}.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public void addSelectionChangedListener(ISelectionChangedListener listener) {
+ selectionChangedListeners.add(listener);
+ }
+
+ /**
+ * This implements {@link org.eclipse.jface.viewers.ISelectionProvider}.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public void removeSelectionChangedListener(ISelectionChangedListener listener) {
+ selectionChangedListeners.remove(listener);
+ }
+
+ /**
+ * This implements {@link org.eclipse.jface.viewers.ISelectionProvider} to return this editor's overall selection.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public ISelection getSelection() {
+ return editorSelection;
+ }
+
+ /**
+ * This implements {@link org.eclipse.jface.viewers.ISelectionProvider} to set this editor's overall selection.
+ * Calling this result will notify the listeners.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public void setSelection(ISelection selection) {
+ editorSelection = selection;
+
+ for (ISelectionChangedListener listener : selectionChangedListeners) {
+ listener.selectionChanged(new SelectionChangedEvent(this, selection));
+ }
+ setStatusLineManager(selection);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public void setStatusLineManager(ISelection selection) {
+ IStatusLineManager statusLineManager = currentViewer != null && currentViewer == contentOutlineViewer ?
+ contentOutlineStatusLineManager : getActionBars().getStatusLineManager();
+
+ if (statusLineManager != null) {
+ if (selection instanceof IStructuredSelection) {
+ Collection<?> collection = ((IStructuredSelection)selection).toList();
+ switch (collection.size()) {
+ case 0: {
+ statusLineManager.setMessage(getString("_UI_NoObjectSelected"));
+ break;
+ }
+ case 1: {
+ String text = new AdapterFactoryItemDelegator(adapterFactory).getText(collection.iterator().next());
+ statusLineManager.setMessage(getString("_UI_SingleObjectSelected", text));
+ break;
+ }
+ default: {
+ statusLineManager.setMessage(getString("_UI_MultiObjectSelected", Integer.toString(collection.size())));
+ break;
+ }
+ }
+ }
+ else {
+ statusLineManager.setMessage("");
+ }
+ }
+ }
+
+ /**
+ * This looks up a string in the plugin's plugin.properties file.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ private static String getString(String key) {
+ return ComrelEditorPlugin.INSTANCE.getString(key);
+ }
+
+ /**
+ * This looks up a string in plugin.properties, making a substitution.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ private static String getString(String key, Object s1) {
+ return ComrelEditorPlugin.INSTANCE.getString(key, new Object [] { s1 });
+ }
+
+ /**
+ * This implements {@link org.eclipse.jface.action.IMenuListener} to help fill the context menus with contributions from the Edit menu.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public void menuAboutToShow(IMenuManager menuManager) {
+ ((IMenuListener)getEditorSite().getActionBarContributor()).menuAboutToShow(menuManager);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EditingDomainActionBarContributor getActionBarContributor() {
+ return (EditingDomainActionBarContributor)getEditorSite().getActionBarContributor();
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public IActionBars getActionBars() {
+ return getActionBarContributor().getActionBars();
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public AdapterFactory getAdapterFactory() {
+ return adapterFactory;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public void dispose() {
+ updateProblemIndication = false;
+
+ ResourcesPlugin.getWorkspace().removeResourceChangeListener(resourceChangeListener);
+
+ getSite().getPage().removePartListener(partListener);
+
+ adapterFactory.dispose();
+
+ if (getActionBarContributor().getActiveEditor() == this) {
+ getActionBarContributor().setActiveEditor(null);
+ }
+
+ if (propertySheetPage != null) {
+ propertySheetPage.dispose();
+ }
+
+ if (contentOutlinePage != null) {
+ contentOutlinePage.dispose();
+ }
+
+ super.dispose();
+ }
+
+ /**
+ * Returns whether the outline view should be presented to the user.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected boolean showOutlineView() {
+ return true;
+ }
+}
diff --git a/org.eclipse.emf.refactor.comrel.editor/src/comrel/presentation/ComrelEditorPlugin.java b/org.eclipse.emf.refactor.comrel.editor/src/comrel/presentation/ComrelEditorPlugin.java
new file mode 100644
index 0000000..730ccb4
--- /dev/null
+++ b/org.eclipse.emf.refactor.comrel.editor/src/comrel/presentation/ComrelEditorPlugin.java
@@ -0,0 +1,95 @@
+/**
+ * <copyright>
+ * </copyright>
+ *
+ * $Id$
+ */
+package comrel.presentation;
+
+import org.eclipse.emf.common.EMFPlugin;
+
+import org.eclipse.emf.common.ui.EclipseUIPlugin;
+
+import org.eclipse.emf.common.util.ResourceLocator;
+
+/**
+ * This is the central singleton for the Comrel editor plugin.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+public final class ComrelEditorPlugin extends EMFPlugin {
+ /**
+ * Keep track of the singleton.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public static final ComrelEditorPlugin INSTANCE = new ComrelEditorPlugin();
+
+ /**
+ * Keep track of the singleton.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ private static Implementation plugin;
+
+ /**
+ * Create the instance.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public ComrelEditorPlugin() {
+ super
+ (new ResourceLocator [] {
+ });
+ }
+
+ /**
+ * Returns the singleton instance of the Eclipse plugin.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the singleton instance.
+ * @generated
+ */
+ @Override
+ public ResourceLocator getPluginResourceLocator() {
+ return plugin;
+ }
+
+ /**
+ * Returns the singleton instance of the Eclipse plugin.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the singleton instance.
+ * @generated
+ */
+ public static Implementation getPlugin() {
+ return plugin;
+ }
+
+ /**
+ * The actual implementation of the Eclipse <b>Plugin</b>.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public static class Implementation extends EclipseUIPlugin {
+ /**
+ * Creates an instance.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public Implementation() {
+ super();
+
+ // Remember the static instance.
+ //
+ plugin = this;
+ }
+ }
+
+}
diff --git a/org.eclipse.emf.refactor.comrel.editor/src/comrel/presentation/ComrelModelWizard.java b/org.eclipse.emf.refactor.comrel.editor/src/comrel/presentation/ComrelModelWizard.java
new file mode 100644
index 0000000..3de4790
--- /dev/null
+++ b/org.eclipse.emf.refactor.comrel.editor/src/comrel/presentation/ComrelModelWizard.java
@@ -0,0 +1,632 @@
+/**
+ * <copyright>
+ * </copyright>
+ *
+ * $Id$
+ */
+package comrel.presentation;
+
+
+import java.util.ArrayList;
+import java.util.Arrays;
+import java.util.Collection;
+import java.util.Collections;
+import java.util.HashMap;
+import java.util.List;
+import java.util.Map;
+import java.util.MissingResourceException;
+import java.util.StringTokenizer;
+
+import org.eclipse.emf.common.CommonPlugin;
+
+import org.eclipse.emf.common.util.URI;
+
+import org.eclipse.emf.ecore.EClass;
+import org.eclipse.emf.ecore.EClassifier;
+
+import org.eclipse.emf.ecore.resource.Resource;
+import org.eclipse.emf.ecore.resource.ResourceSet;
+
+import org.eclipse.emf.ecore.resource.impl.ResourceSetImpl;
+
+import org.eclipse.emf.ecore.EObject;
+
+import org.eclipse.emf.ecore.xmi.XMLResource;
+
+import org.eclipse.emf.edit.ui.provider.ExtendedImageRegistry;
+
+import org.eclipse.core.resources.IContainer;
+import org.eclipse.core.resources.IFile;
+import org.eclipse.core.resources.IFolder;
+import org.eclipse.core.resources.IProject;
+import org.eclipse.core.resources.IResource;
+import org.eclipse.core.resources.ResourcesPlugin;
+
+import org.eclipse.core.runtime.IProgressMonitor;
+
+import org.eclipse.jface.dialogs.MessageDialog;
+
+import org.eclipse.jface.viewers.IStructuredSelection;
+
+import org.eclipse.jface.wizard.Wizard;
+import org.eclipse.jface.wizard.WizardPage;
+
+import org.eclipse.swt.SWT;
+
+import org.eclipse.swt.events.ModifyListener;
+import org.eclipse.swt.events.ModifyEvent;
+
+import org.eclipse.swt.layout.GridData;
+import org.eclipse.swt.layout.GridLayout;
+
+import org.eclipse.swt.widgets.Combo;
+import org.eclipse.swt.widgets.Composite;
+import org.eclipse.swt.widgets.Label;
+
+import org.eclipse.ui.INewWizard;
+import org.eclipse.ui.IWorkbench;
+
+import org.eclipse.ui.actions.WorkspaceModifyOperation;
+
+import org.eclipse.ui.dialogs.WizardNewFileCreationPage;
+
+import org.eclipse.ui.part.FileEditorInput;
+import org.eclipse.ui.part.ISetSelectionTarget;
+
+import comrel.ComrelFactory;
+import comrel.ComrelPackage;
+import comrel.provider.ComrelEditPlugin;
+
+
+import org.eclipse.core.runtime.Path;
+
+import org.eclipse.jface.viewers.ISelection;
+import org.eclipse.jface.viewers.StructuredSelection;
+
+import org.eclipse.ui.IWorkbenchPage;
+import org.eclipse.ui.IWorkbenchPart;
+import org.eclipse.ui.IWorkbenchWindow;
+import org.eclipse.ui.PartInitException;
+
+
+/**
+ * This is a simple wizard for creating a new model file.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+public class ComrelModelWizard extends Wizard implements INewWizard {
+ /**
+ * The supported extensions for created files.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public static final List<String> FILE_EXTENSIONS =
+ Collections.unmodifiableList(Arrays.asList(ComrelEditorPlugin.INSTANCE.getString("_UI_ComrelEditorFilenameExtensions").split("\\s*,\\s*")));
+
+ /**
+ * A formatted list of supported file extensions, suitable for display.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public static final String FORMATTED_FILE_EXTENSIONS =
+ ComrelEditorPlugin.INSTANCE.getString("_UI_ComrelEditorFilenameExtensions").replaceAll("\\s*,\\s*", ", ");
+
+ /**
+ * This caches an instance of the model package.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected ComrelPackage comrelPackage = ComrelPackage.eINSTANCE;
+
+ /**
+ * This caches an instance of the model factory.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected ComrelFactory comrelFactory = comrelPackage.getComrelFactory();
+
+ /**
+ * This is the file creation page.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected ComrelModelWizardNewFileCreationPage newFileCreationPage;
+
+ /**
+ * This is the initial object creation page.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected ComrelModelWizardInitialObjectCreationPage initialObjectCreationPage;
+
+ /**
+ * Remember the selection during initialization for populating the default container.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected IStructuredSelection selection;
+
+ /**
+ * Remember the workbench during initialization.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected IWorkbench workbench;
+
+ /**
+ * Caches the names of the types that can be created as the root object.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected List<String> initialObjectNames;
+
+ /**
+ * This just records the information.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public void init(IWorkbench workbench, IStructuredSelection selection) {
+ this.workbench = workbench;
+ this.selection = selection;
+ setWindowTitle(ComrelEditorPlugin.INSTANCE.getString("_UI_Wizard_label"));
+ setDefaultPageImageDescriptor(ExtendedImageRegistry.INSTANCE.getImageDescriptor(ComrelEditorPlugin.INSTANCE.getImage("full/wizban/NewComrel")));
+ }
+
+ /**
+ * Returns the names of the types that can be created as the root object.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected Collection<String> getInitialObjectNames() {
+ if (initialObjectNames == null) {
+ initialObjectNames = new ArrayList<String>();
+ for (EClassifier eClassifier : comrelPackage.getEClassifiers()) {
+ if (eClassifier instanceof EClass) {
+ EClass eClass = (EClass)eClassifier;
+ if (!eClass.isAbstract()) {
+ initialObjectNames.add(eClass.getName());
+ }
+ }
+ }
+ Collections.sort(initialObjectNames, CommonPlugin.INSTANCE.getComparator());
+ }
+ return initialObjectNames;
+ }
+
+ /**
+ * Create a new model.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected EObject createInitialModel() {
+ EClass eClass = (EClass)comrelPackage.getEClassifier(initialObjectCreationPage.getInitialObjectName());
+ EObject rootObject = comrelFactory.create(eClass);
+ return rootObject;
+ }
+
+ /**
+ * Do the work after everything is specified.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public boolean performFinish() {
+ try {
+ // Remember the file.
+ //
+ final IFile modelFile = getModelFile();
+
+ // Do the work within an operation.
+ //
+ WorkspaceModifyOperation operation =
+ new WorkspaceModifyOperation() {
+ @Override
+ protected void execute(IProgressMonitor progressMonitor) {
+ try {
+ // Create a resource set
+ //
+ ResourceSet resourceSet = new ResourceSetImpl();
+
+ // Get the URI of the model file.
+ //
+ URI fileURI = URI.createPlatformResourceURI(modelFile.getFullPath().toString(), true);
+
+ // Create a resource for this file.
+ //
+ Resource resource = resourceSet.createResource(fileURI);
+
+ // Add the initial model object to the contents.
+ //
+ EObject rootObject = createInitialModel();
+ if (rootObject != null) {
+ resource.getContents().add(rootObject);
+ }
+
+ // Save the contents of the resource to the file system.
+ //
+ Map<Object, Object> options = new HashMap<Object, Object>();
+ options.put(XMLResource.OPTION_ENCODING, initialObjectCreationPage.getEncoding());
+ resource.save(options);
+ }
+ catch (Exception exception) {
+ ComrelEditorPlugin.INSTANCE.log(exception);
+ }
+ finally {
+ progressMonitor.done();
+ }
+ }
+ };
+
+ getContainer().run(false, false, operation);
+
+ // Select the new file resource in the current view.
+ //
+ IWorkbenchWindow workbenchWindow = workbench.getActiveWorkbenchWindow();
+ IWorkbenchPage page = workbenchWindow.getActivePage();
+ final IWorkbenchPart activePart = page.getActivePart();
+ if (activePart instanceof ISetSelectionTarget) {
+ final ISelection targetSelection = new StructuredSelection(modelFile);
+ getShell().getDisplay().asyncExec
+ (new Runnable() {
+ public void run() {
+ ((ISetSelectionTarget)activePart).selectReveal(targetSelection);
+ }
+ });
+ }
+
+ // Open an editor on the new file.
+ //
+ try {
+ page.openEditor
+ (new FileEditorInput(modelFile),
+ workbench.getEditorRegistry().getDefaultEditor(modelFile.getFullPath().toString()).getId());
+ }
+ catch (PartInitException exception) {
+ MessageDialog.openError(workbenchWindow.getShell(), ComrelEditorPlugin.INSTANCE.getString("_UI_OpenEditorError_label"), exception.getMessage());
+ return false;
+ }
+
+ return true;
+ }
+ catch (Exception exception) {
+ ComrelEditorPlugin.INSTANCE.log(exception);
+ return false;
+ }
+ }
+
+ /**
+ * This is the one page of the wizard.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public class ComrelModelWizardNewFileCreationPage extends WizardNewFileCreationPage {
+ /**
+ * Pass in the selection.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public ComrelModelWizardNewFileCreationPage(String pageId, IStructuredSelection selection) {
+ super(pageId, selection);
+ }
+
+ /**
+ * The framework calls this to see if the file is correct.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ protected boolean validatePage() {
+ if (super.validatePage()) {
+ String extension = new Path(getFileName()).getFileExtension();
+ if (extension == null || !FILE_EXTENSIONS.contains(extension)) {
+ String key = FILE_EXTENSIONS.size() > 1 ? "_WARN_FilenameExtensions" : "_WARN_FilenameExtension";
+ setErrorMessage(ComrelEditorPlugin.INSTANCE.getString(key, new Object [] { FORMATTED_FILE_EXTENSIONS }));
+ return false;
+ }
+ return true;
+ }
+ return false;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public IFile getModelFile() {
+ return ResourcesPlugin.getWorkspace().getRoot().getFile(getContainerFullPath().append(getFileName()));
+ }
+ }
+
+ /**
+ * This is the page where the type of object to create is selected.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public class ComrelModelWizardInitialObjectCreationPage extends WizardPage {
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected Combo initialObjectField;
+
+ /**
+ * @generated
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ */
+ protected List<String> encodings;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected Combo encodingField;
+
+ /**
+ * Pass in the selection.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public ComrelModelWizardInitialObjectCreationPage(String pageId) {
+ super(pageId);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public void createControl(Composite parent) {
+ Composite composite = new Composite(parent, SWT.NONE);
+ {
+ GridLayout layout = new GridLayout();
+ layout.numColumns = 1;
+ layout.verticalSpacing = 12;
+ composite.setLayout(layout);
+
+ GridData data = new GridData();
+ data.verticalAlignment = GridData.FILL;
+ data.grabExcessVerticalSpace = true;
+ data.horizontalAlignment = GridData.FILL;
+ composite.setLayoutData(data);
+ }
+
+ Label containerLabel = new Label(composite, SWT.LEFT);
+ {
+ containerLabel.setText(ComrelEditorPlugin.INSTANCE.getString("_UI_ModelObject"));
+
+ GridData data = new GridData();
+ data.horizontalAlignment = GridData.FILL;
+ containerLabel.setLayoutData(data);
+ }
+
+ initialObjectField = new Combo(composite, SWT.BORDER);
+ {
+ GridData data = new GridData();
+ data.horizontalAlignment = GridData.FILL;
+ data.grabExcessHorizontalSpace = true;
+ initialObjectField.setLayoutData(data);
+ }
+
+ for (String objectName : getInitialObjectNames()) {
+ initialObjectField.add(getLabel(objectName));
+ }
+
+ if (initialObjectField.getItemCount() == 1) {
+ initialObjectField.select(0);
+ }
+ initialObjectField.addModifyListener(validator);
+
+ Label encodingLabel = new Label(composite, SWT.LEFT);
+ {
+ encodingLabel.setText(ComrelEditorPlugin.INSTANCE.getString("_UI_XMLEncoding"));
+
+ GridData data = new GridData();
+ data.horizontalAlignment = GridData.FILL;
+ encodingLabel.setLayoutData(data);
+ }
+ encodingField = new Combo(composite, SWT.BORDER);
+ {
+ GridData data = new GridData();
+ data.horizontalAlignment = GridData.FILL;
+ data.grabExcessHorizontalSpace = true;
+ encodingField.setLayoutData(data);
+ }
+
+ for (String encoding : getEncodings()) {
+ encodingField.add(encoding);
+ }
+
+ encodingField.select(0);
+ encodingField.addModifyListener(validator);
+
+ setPageComplete(validatePage());
+ setControl(composite);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected ModifyListener validator =
+ new ModifyListener() {
+ public void modifyText(ModifyEvent e) {
+ setPageComplete(validatePage());
+ }
+ };
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected boolean validatePage() {
+ return getInitialObjectName() != null && getEncodings().contains(encodingField.getText());
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public void setVisible(boolean visible) {
+ super.setVisible(visible);
+ if (visible) {
+ if (initialObjectField.getItemCount() == 1) {
+ initialObjectField.clearSelection();
+ encodingField.setFocus();
+ }
+ else {
+ encodingField.clearSelection();
+ initialObjectField.setFocus();
+ }
+ }
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public String getInitialObjectName() {
+ String label = initialObjectField.getText();
+
+ for (String name : getInitialObjectNames()) {
+ if (getLabel(name).equals(label)) {
+ return name;
+ }
+ }
+ return null;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public String getEncoding() {
+ return encodingField.getText();
+ }
+
+ /**
+ * Returns the label for the specified type name.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected String getLabel(String typeName) {
+ try {
+ return ComrelEditPlugin.INSTANCE.getString("_UI_" + typeName + "_type");
+ }
+ catch(MissingResourceException mre) {
+ ComrelEditorPlugin.INSTANCE.log(mre);
+ }
+ return typeName;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected Collection<String> getEncodings() {
+ if (encodings == null) {
+ encodings = new ArrayList<String>();
+ for (StringTokenizer stringTokenizer = new StringTokenizer(ComrelEditorPlugin.INSTANCE.getString("_UI_XMLEncodingChoices")); stringTokenizer.hasMoreTokens(); ) {
+ encodings.add(stringTokenizer.nextToken());
+ }
+ }
+ return encodings;
+ }
+ }
+
+ /**
+ * The framework calls this to create the contents of the wizard.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public void addPages() {
+ // Create a page, set the title, and the initial model file name.
+ //
+ newFileCreationPage = new ComrelModelWizardNewFileCreationPage("Whatever", selection);
+ newFileCreationPage.setTitle(ComrelEditorPlugin.INSTANCE.getString("_UI_ComrelModelWizard_label"));
+ newFileCreationPage.setDescription(ComrelEditorPlugin.INSTANCE.getString("_UI_ComrelModelWizard_description"));
+ newFileCreationPage.setFileName(ComrelEditorPlugin.INSTANCE.getString("_UI_ComrelEditorFilenameDefaultBase") + "." + FILE_EXTENSIONS.get(0));
+ addPage(newFileCreationPage);
+
+ // Try and get the resource selection to determine a current directory for the file dialog.
+ //
+ if (selection != null && !selection.isEmpty()) {
+ // Get the resource...
+ //
+ Object selectedElement = selection.iterator().next();
+ if (selectedElement instanceof IResource) {
+ // Get the resource parent, if its a file.
+ //
+ IResource selectedResource = (IResource)selectedElement;
+ if (selectedResource.getType() == IResource.FILE) {
+ selectedResource = selectedResource.getParent();
+ }
+
+ // This gives us a directory...
+ //
+ if (selectedResource instanceof IFolder || selectedResource instanceof IProject) {
+ // Set this for the container.
+ //
+ newFileCreationPage.setContainerFullPath(selectedResource.getFullPath());
+
+ // Make up a unique new name here.
+ //
+ String defaultModelBaseFilename = ComrelEditorPlugin.INSTANCE.getString("_UI_ComrelEditorFilenameDefaultBase");
+ String defaultModelFilenameExtension = FILE_EXTENSIONS.get(0);
+ String modelFilename = defaultModelBaseFilename + "." + defaultModelFilenameExtension;
+ for (int i = 1; ((IContainer)selectedResource).findMember(modelFilename) != null; ++i) {
+ modelFilename = defaultModelBaseFilename + i + "." + defaultModelFilenameExtension;
+ }
+ newFileCreationPage.setFileName(modelFilename);
+ }
+ }
+ }
+ initialObjectCreationPage = new ComrelModelWizardInitialObjectCreationPage("Whatever2");
+ initialObjectCreationPage.setTitle(ComrelEditorPlugin.INSTANCE.getString("_UI_ComrelModelWizard_label"));
+ initialObjectCreationPage.setDescription(ComrelEditorPlugin.INSTANCE.getString("_UI_Wizard_initial_object_description"));
+ addPage(initialObjectCreationPage);
+ }
+
+ /**
+ * Get the file from the page.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public IFile getModelFile() {
+ return newFileCreationPage.getModelFile();
+ }
+
+}
diff --git a/org.eclipse.emf.refactor.comrel.generator/.classpath b/org.eclipse.emf.refactor.comrel.generator/.classpath
new file mode 100644
index 0000000..8a8f166
--- /dev/null
+++ b/org.eclipse.emf.refactor.comrel.generator/.classpath
@@ -0,0 +1,7 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<classpath>
+ <classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER/org.eclipse.jdt.internal.debug.ui.launcher.StandardVMType/JavaSE-1.6"/>
+ <classpathentry kind="con" path="org.eclipse.pde.core.requiredPlugins"/>
+ <classpathentry kind="src" path="src"/>
+ <classpathentry kind="output" path="bin"/>
+</classpath>
diff --git a/org.eclipse.emf.refactor.comrel.generator/.project b/org.eclipse.emf.refactor.comrel.generator/.project
new file mode 100644
index 0000000..51a7c70
--- /dev/null
+++ b/org.eclipse.emf.refactor.comrel.generator/.project
@@ -0,0 +1,28 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<projectDescription>
+ <name>org.eclipse.emf.refactor.comrel.generator</name>
+ <comment></comment>
+ <projects>
+ </projects>
+ <buildSpec>
+ <buildCommand>
+ <name>org.eclipse.jdt.core.javabuilder</name>
+ <arguments>
+ </arguments>
+ </buildCommand>
+ <buildCommand>
+ <name>org.eclipse.pde.ManifestBuilder</name>
+ <arguments>
+ </arguments>
+ </buildCommand>
+ <buildCommand>
+ <name>org.eclipse.pde.SchemaBuilder</name>
+ <arguments>
+ </arguments>
+ </buildCommand>
+ </buildSpec>
+ <natures>
+ <nature>org.eclipse.pde.PluginNature</nature>
+ <nature>org.eclipse.jdt.core.javanature</nature>
+ </natures>
+</projectDescription>
diff --git a/org.eclipse.emf.refactor.comrel.generator/.settings/org.eclipse.jdt.core.prefs b/org.eclipse.emf.refactor.comrel.generator/.settings/org.eclipse.jdt.core.prefs
new file mode 100644
index 0000000..dbb5e03
--- /dev/null
+++ b/org.eclipse.emf.refactor.comrel.generator/.settings/org.eclipse.jdt.core.prefs
@@ -0,0 +1,8 @@
+#Wed Sep 21 11:18:12 CEST 2011
+eclipse.preferences.version=1
+org.eclipse.jdt.core.compiler.codegen.inlineJsrBytecode=enabled
+org.eclipse.jdt.core.compiler.codegen.targetPlatform=1.6
+org.eclipse.jdt.core.compiler.compliance=1.6
+org.eclipse.jdt.core.compiler.problem.assertIdentifier=error
+org.eclipse.jdt.core.compiler.problem.enumIdentifier=error
+org.eclipse.jdt.core.compiler.source=1.6
diff --git a/org.eclipse.emf.refactor.comrel.generator/META-INF/MANIFEST.MF b/org.eclipse.emf.refactor.comrel.generator/META-INF/MANIFEST.MF
new file mode 100644
index 0000000..35456cc
--- /dev/null
+++ b/org.eclipse.emf.refactor.comrel.generator/META-INF/MANIFEST.MF
@@ -0,0 +1,16 @@
+Manifest-Version: 1.0
+Bundle-ManifestVersion: 2
+Bundle-Name: CoMReL Generator
+Bundle-SymbolicName: org.eclipse.emf.refactor.comrel.generator;singleton:=true
+Bundle-Version: 0.9.0
+Bundle-Activator: comrel.generator.Activator
+Require-Bundle: org.eclipse.ui,
+ org.eclipse.core.runtime,
+ org.eclipse.core.resources;bundle-version="3.6.0",
+ org.eclipse.emf.ecore;bundle-version="2.6.1",
+ org.eclipse.emf.codegen;bundle-version="2.6.0",
+ org.eclipse.jdt.core;bundle-version="3.6.1",
+ org.eclipse.emf.refactor.comrel;bundle-version="0.8.0"
+Bundle-ActivationPolicy: lazy
+Bundle-RequiredExecutionEnvironment: JavaSE-1.6
+Import-Package: org.eclipse.ui.actions
diff --git a/org.eclipse.emf.refactor.comrel.generator/bin/.gitignore b/org.eclipse.emf.refactor.comrel.generator/bin/.gitignore
new file mode 100644
index 0000000..508dbce
--- /dev/null
+++ b/org.eclipse.emf.refactor.comrel.generator/bin/.gitignore
@@ -0,0 +1 @@
+/comrel
diff --git a/org.eclipse.emf.refactor.comrel.generator/build.properties b/org.eclipse.emf.refactor.comrel.generator/build.properties
new file mode 100644
index 0000000..34ed36b
--- /dev/null
+++ b/org.eclipse.emf.refactor.comrel.generator/build.properties
@@ -0,0 +1,9 @@
+source.. = src/
+output.. = bin/
+bin.includes = META-INF/,\
+ .,\
+ plugin.xml,\
+ icons/,\
+ src/,\
+ templates/,\
+ bin/
diff --git a/org.eclipse.emf.refactor.comrel.generator/icons/multifeature.jpg b/org.eclipse.emf.refactor.comrel.generator/icons/multifeature.jpg
new file mode 100644
index 0000000..0bb6e8f
--- /dev/null
+++ b/org.eclipse.emf.refactor.comrel.generator/icons/multifeature.jpg
Binary files differ
diff --git a/org.eclipse.emf.refactor.comrel.generator/icons/multifilter.jpg b/org.eclipse.emf.refactor.comrel.generator/icons/multifilter.jpg
new file mode 100644
index 0000000..e2d11d1
--- /dev/null
+++ b/org.eclipse.emf.refactor.comrel.generator/icons/multifilter.jpg
Binary files differ
diff --git a/org.eclipse.emf.refactor.comrel.generator/icons/refactoring.jpg b/org.eclipse.emf.refactor.comrel.generator/icons/refactoring.jpg
new file mode 100644
index 0000000..1f277ee
--- /dev/null
+++ b/org.eclipse.emf.refactor.comrel.generator/icons/refactoring.jpg
Binary files differ
diff --git a/org.eclipse.emf.refactor.comrel.generator/icons/singlefeature.gif b/org.eclipse.emf.refactor.comrel.generator/icons/singlefeature.gif
new file mode 100644
index 0000000..81294ad
--- /dev/null
+++ b/org.eclipse.emf.refactor.comrel.generator/icons/singlefeature.gif
Binary files differ
diff --git a/org.eclipse.emf.refactor.comrel.generator/icons/singlefilter.png b/org.eclipse.emf.refactor.comrel.generator/icons/singlefilter.png
new file mode 100644
index 0000000..a6fc3ad
--- /dev/null
+++ b/org.eclipse.emf.refactor.comrel.generator/icons/singlefilter.png
Binary files differ
diff --git a/org.eclipse.emf.refactor.comrel.generator/plugin.xml b/org.eclipse.emf.refactor.comrel.generator/plugin.xml
new file mode 100644
index 0000000..8af7dd0
--- /dev/null
+++ b/org.eclipse.emf.refactor.comrel.generator/plugin.xml
@@ -0,0 +1,48 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<?eclipse version="3.4"?>
+<plugin>
+ <extension
+ point="org.eclipse.ui.newWizards">
+ <category
+ id="comrel.generator.category"
+ name="CoMReL"
+ parentCategory="org.eclipse.emf.refactor.newwizards.category">
+ </category>
+ <wizard
+ category="org.eclipse.emf.refactor.newwizards.category/comrel.generator.category"
+ class="comrel.generator.helper.wizards.SingleFilterWizard"
+ icon="icons/singlefilter.png"
+ id="comrel.generator.wizard.singlefilter"
+ name="Single Filter">
+ </wizard>
+ <wizard
+ category="org.eclipse.emf.refactor.newwizards.category/comrel.generator.category"
+ class="comrel.generator.helper.wizards.MultiFilterWizard"
+ icon="icons/multifilter.jpg"
+ id="comrel.generator.wizard.multifilter"
+ name="Multi Filter">
+ </wizard>
+ <wizard
+ category="org.eclipse.emf.refactor.newwizards.category/comrel.generator.category"
+ class="comrel.generator.helper.wizards.SingleFeatureWizard"
+ icon="icons/singlefeature.gif"
+ id="comrel.generator.wizard.singlefeature"
+ name="Single Feature">
+ </wizard>
+ <wizard
+ category="org.eclipse.emf.refactor.newwizards.category/comrel.generator.category"
+ class="comrel.generator.helper.wizards.MultiFeatureWizard"
+ icon="icons/multifeature.jpg"
+ id="comrel.generator.wizard.multifeature"
+ name="Multi Feature">
+ </wizard>
+ <wizard
+ category="org.eclipse.emf.refactor.newwizards.category/comrel.generator.category"
+ class="comrel.generator.refactoring.wizards.RefactoringWizard"
+ icon="icons/refactoring.jpg"
+ id="comrel.generator.wizard.refactoring"
+ name="Refactoring (specified in CoMReL)">
+ </wizard>
+ </extension>
+
+</plugin>
diff --git a/org.eclipse.emf.refactor.comrel.generator/src/comrel/generator/Activator.java b/org.eclipse.emf.refactor.comrel.generator/src/comrel/generator/Activator.java
new file mode 100644
index 0000000..d68e9d9
--- /dev/null
+++ b/org.eclipse.emf.refactor.comrel.generator/src/comrel/generator/Activator.java
@@ -0,0 +1,50 @@
+package comrel.generator;
+
+import org.eclipse.ui.plugin.AbstractUIPlugin;
+import org.osgi.framework.BundleContext;
+
+/**
+ * The activator class controls the plug-in life cycle
+ */
+public class Activator extends AbstractUIPlugin {
+
+ // The plug-in ID
+ public static final String PLUGIN_ID = "org.eclipse.emf.refactor.comrel.generator"; //$NON-NLS-1$
+
+ // The shared instance
+ private static Activator plugin;
+
+ /**
+ * The constructor
+ */
+ public Activator() {
+ }
+
+ /*
+ * (non-Javadoc)
+ * @see org.eclipse.ui.plugin.AbstractUIPlugin#start(org.osgi.framework.BundleContext)
+ */
+ public void start(BundleContext context) throws Exception {
+ super.start(context);
+ plugin = this;
+ }
+
+ /*
+ * (non-Javadoc)
+ * @see org.eclipse.ui.plugin.AbstractUIPlugin#stop(org.osgi.framework.BundleContext)
+ */
+ public void stop(BundleContext context) throws Exception {
+ plugin = null;
+ super.stop(context);
+ }
+
+ /**
+ * Returns the shared instance
+ *
+ * @return the shared instance
+ */
+ public static Activator getDefault() {
+ return plugin;
+ }
+
+}
diff --git a/org.eclipse.emf.refactor.comrel.generator/src/comrel/generator/helper/ExtensionPoint.java b/org.eclipse.emf.refactor.comrel.generator/src/comrel/generator/helper/ExtensionPoint.java
new file mode 100644
index 0000000..9ff7993
--- /dev/null
+++ b/org.eclipse.emf.refactor.comrel.generator/src/comrel/generator/helper/ExtensionPoint.java
@@ -0,0 +1,21 @@
+package comrel.generator.helper;
+
+public class ExtensionPoint {
+
+ public static final String EXTENSION_POINT_TAG = "extension";
+ public static final String NAME = "name";
+ public static final String ID = "id";
+ public static final String NAMESPACEURI = "namespaceUri";
+ public static final String DESCRIPTION = "description";
+ public static final String CLASS = "class";
+
+// public static final String EXTENSION_POINT_MULTIFEATURE = "org.eclipse.emf.refactor.multifeature";
+// public final static String MULTIFEATURE = "multifeature";
+// public static final String EXTENSION_POINT_SINGLEFEATURE = "org.eclipse.emf.refactor.singlefeature";
+// public final static String SINGLEFEATURE = "singlefeature";
+// public static final String EXTENSION_POINT_MULTIFILTER = "org.eclipse.emf.refactor.multifilter";
+// public final static String MULTIFILTER = "multifilter";
+// public static final String EXTENSION_POINT_SINGLEFILTER = "org.eclipse.emf.refactor.singlefilter";
+// public final static String SINGLEFILTER = "singlefilter";
+
+}
diff --git a/org.eclipse.emf.refactor.comrel.generator/src/comrel/generator/helper/HelperGenerator.java b/org.eclipse.emf.refactor.comrel.generator/src/comrel/generator/helper/HelperGenerator.java
new file mode 100644
index 0000000..1b79811
--- /dev/null
+++ b/org.eclipse.emf.refactor.comrel.generator/src/comrel/generator/helper/HelperGenerator.java
@@ -0,0 +1,210 @@
+package comrel.generator.helper;
+
+import java.io.ByteArrayInputStream;
+import java.io.FileInputStream;
+import java.io.FileOutputStream;
+import java.io.IOException;
+import java.io.InputStream;
+import java.net.MalformedURLException;
+import java.util.ArrayList;
+import java.util.List;
+import java.util.jar.Attributes;
+import java.util.jar.Manifest;
+
+import org.eclipse.core.resources.IContainer;
+import org.eclipse.core.resources.IFile;
+import org.eclipse.core.resources.IProject;
+import org.eclipse.core.resources.IResource;
+import org.eclipse.core.resources.IWorkspaceRoot;
+import org.eclipse.core.resources.ResourcesPlugin;
+import org.eclipse.core.runtime.CoreException;
+import org.eclipse.core.runtime.FileLocator;
+import org.eclipse.core.runtime.IPath;
+import org.eclipse.core.runtime.IProgressMonitor;
+import org.eclipse.core.runtime.Path;
+import org.eclipse.core.runtime.Platform;
+import org.eclipse.core.runtime.SubProgressMonitor;
+import org.eclipse.emf.codegen.jet.JETEmitter;
+import org.eclipse.emf.codegen.jet.JETException;
+import org.eclipse.emf.codegen.util.CodeGenUtil;
+import org.eclipse.jdt.core.IClasspathEntry;
+import org.eclipse.jdt.core.JavaCore;
+import org.osgi.framework.Bundle;
+
+import comrel.generator.Activator;
+
+public class HelperGenerator {
+
+ private final String JETEMITTERS = ".JETEmitters";
+ private final String JAVA = ".java";
+ private final String JAVAJET = ".javajet";
+ private final String COMRELMODEL = "comrel";
+ private final String REQUIREBUNDLE = "Require-Bundle";
+ private final String BUNDLESYMBOLICNAME = "Bundle-SymbolicName";
+ private final String BUNDLEVERSION = "Bundle-Version";
+ private final String SINGLETONTRUE = "singleton:=true";
+ private final String TEMPLATES = "templates";
+ private final String PLUGINSPATH = Platform.getInstallLocation().getURL().getPath() + "plugins/";
+
+ private HelperInfo helperInfo;
+ private String templateDirectory;
+ private JETEmitter jetEmitter;
+ private List<IClasspathEntry> classpathEntries;
+
+
+ public HelperGenerator(HelperInfo helperInfo) {
+ this.helperInfo = helperInfo;
+ this.templateDirectory = this.setTemplateDirectory();
+ this.classpathEntries = new ArrayList<IClasspathEntry>();
+ this.setClassPathEntries();
+ }
+
+ private void setClassPathEntries() {
+ Bundle bundle = Platform.getBundle(Activator.PLUGIN_ID);
+ String version = (String) bundle.getHeaders().get(BUNDLEVERSION);
+ classpathEntries.add(JavaCore.newLibraryEntry(new Path(PLUGINSPATH
+ + Activator.PLUGIN_ID + "_" + version + ".jar"), null, null));
+ }
+
+ private String setTemplateDirectory() {
+ String td = "";
+ final Bundle bundle = Platform.getBundle(Activator.PLUGIN_ID);
+ try {
+ td = FileLocator.toFileURL(bundle.getEntry(TEMPLATES)).getFile();
+ } catch (final IOException e) {
+ e.printStackTrace();
+ }
+ return td;
+ }
+
+ public void run(IProgressMonitor monitor, String helperType, String helperExtensionPoint) {
+ deleteJetEmittersProject(monitor);
+ updatePluginXml(helperType, helperExtensionPoint);
+ updateDependencies();
+ setSingletonDirective();
+ generateJavaCode(monitor, helperType);
+ refreshProject(monitor);
+ }
+
+ private void generateJavaCode(IProgressMonitor monitor, String helperType) {
+ String generatedCode = "";
+ try {
+ generatedCode = this.generateCode(monitor, helperType);
+ this.save(monitor, generatedCode, helperInfo.getClassName());
+ } catch (JETException e) {
+ e.printStackTrace();
+ } catch (CoreException e) {
+ e.printStackTrace();
+ }
+ }
+
+ private IContainer findOrCreatePackage(IProgressMonitor progressMonitor) throws CoreException {
+ IPath outputPath = new Path(this.helperInfo.getProjectName() + "/src/" + this.helperInfo.getPackageName().replace('.', '/'));
+ System.out.println("outputpath: " + outputPath.toString());
+ IProgressMonitor subMonitor = new SubProgressMonitor(progressMonitor, 1);
+ IPath localLocation = null;
+ IContainer container = CodeGenUtil.EclipseUtil.findOrCreateContainer(outputPath, true, localLocation, subMonitor);
+ return container;
+ }
+
+ private void save(IProgressMonitor monitor, String content, String fileName) throws CoreException, JETException {
+ IContainer container = findOrCreatePackage(monitor);
+ if (container == null) {
+ throw new JETException
+ ("Cound not find or create container for package "
+ + this.helperInfo.getPackageName() + " in "
+ + this.helperInfo.getProjectName());
+ }
+ IFile file = container.getFile(new Path(fileName + JAVA));
+ InputStream inputStream = new ByteArrayInputStream(content.getBytes());
+ if (!file.exists()) {
+ file.create(inputStream, false, monitor);
+ } else {
+ container.refreshLocal(1, monitor);
+ file.setContents(inputStream, true, false, monitor);
+ }
+ }
+
+ private String generateCode(IProgressMonitor monitor, String template) {
+ String templatePath = this.templateDirectory + template + JAVAJET;
+ ClassLoader classLoader = getClass().getClassLoader();
+ this.jetEmitter = new JETEmitter(templatePath, classLoader);
+ this.jetEmitter.getClasspathEntries().addAll(classpathEntries);
+ String result = "";
+ IProgressMonitor sub = new SubProgressMonitor(monitor, 1);
+ try {
+ result = jetEmitter.generate(sub, new Object[] { this.helperInfo });
+ } catch (JETException e) {
+ e.printStackTrace();
+ }
+ return result;
+ }
+
+ private void updatePluginXml(String helperType, String helperExtensionPoint) {
+ XMLPluginFile.createHelperEntry(helperInfo, helperType, helperExtensionPoint);
+ }
+
+ private void setSingletonDirective() {
+ IProject project = ResourcesPlugin.getWorkspace().getRoot().getProject(this.helperInfo.getProjectName());
+ try {
+ String fileName = project.getLocation().append("/META-INF/MANIFEST.MF").toOSString();
+ FileInputStream is = new FileInputStream(fileName);
+ Manifest mf = new Manifest(is);
+ Attributes att = mf.getMainAttributes();
+ String value = att.getValue(BUNDLESYMBOLICNAME);
+ if (! value.contains(SINGLETONTRUE))
+ value = value + ";" + SINGLETONTRUE;
+ att.putValue(BUNDLESYMBOLICNAME, value);
+ FileOutputStream out = new FileOutputStream(fileName);
+ mf.write(out);
+ } catch (MalformedURLException e) {
+ e.printStackTrace();
+ } catch (IOException e) {
+ e.printStackTrace();
+ }
+ }
+
+ private void refreshProject(IProgressMonitor monitor) {
+ IProject project = ResourcesPlugin.getWorkspace().getRoot().getProject(this.helperInfo.getProjectName());
+ try {
+ project.refreshLocal(IResource.DEPTH_INFINITE, monitor);
+ } catch (CoreException e) {
+ e.printStackTrace();
+ }
+ }
+
+ private void updateDependencies() {
+ IProject project = ResourcesPlugin.getWorkspace().getRoot().getProject(this.helperInfo.getProjectName());
+ try {
+ String fileName = project.getLocation().append("/META-INF/MANIFEST.MF").toOSString();
+ FileInputStream is = new FileInputStream(fileName);
+ Manifest mf = new Manifest(is);
+ Attributes att = mf.getMainAttributes();
+ String value = att.getValue(REQUIREBUNDLE);
+ if (! value.contains(COMRELMODEL))
+ value = value + "," + COMRELMODEL;
+ if (! value.contains(this.helperInfo.getJarFile()))
+ value = value + "," + this.helperInfo.getJarFile();
+ att.putValue(REQUIREBUNDLE, value);
+ FileOutputStream out = new FileOutputStream(fileName);
+ mf.write(out);
+ } catch (MalformedURLException e) {
+ e.printStackTrace();
+ } catch (IOException e) {
+ e.printStackTrace();
+ }
+ }
+
+ private void deleteJetEmittersProject(IProgressMonitor monitor) {
+ try {
+ IWorkspaceRoot root = ResourcesPlugin.getWorkspace().getRoot();
+ IResource r = root.findMember(JETEMITTERS);
+ if (r != null){
+ r.delete(false, monitor);
+ }
+ }
+ catch (CoreException e) { }
+ catch (Exception e) { }
+ }
+
+}
diff --git a/org.eclipse.emf.refactor.comrel.generator/src/comrel/generator/helper/HelperInfo.java b/org.eclipse.emf.refactor.comrel.generator/src/comrel/generator/helper/HelperInfo.java
new file mode 100644
index 0000000..25873a6
--- /dev/null
+++ b/org.eclipse.emf.refactor.comrel.generator/src/comrel/generator/helper/HelperInfo.java
@@ -0,0 +1,117 @@
+package comrel.generator.helper;
+
+public class HelperInfo {
+
+ private String name;
+ private String description;
+ private String id;
+ private String namespaceUri;
+ private String className;
+ private String packageName = "comrel.helper";
+ private String jarFile;
+ private String inputType;
+ private String outputType;
+ private String projectName;
+
+ public HelperInfo(
+ String name,
+ String description,
+ String id,
+ String namespaceUri,
+ String className,
+ String jarFile,
+ String inputType,
+ String outputType,
+ String projectName) {
+ super();
+ this.name = name;
+ this.description = description;
+ this.id = id;
+ this.namespaceUri = namespaceUri;
+ this.className = className;
+ this.jarFile = jarFile;
+ this.inputType = inputType;
+ this.outputType = outputType;
+ this.projectName = projectName;
+ }
+
+ public String getName() {
+ return name;
+ }
+
+ public String getDescription() {
+ return description;
+ }
+
+ public String getId() {
+ return id;
+ }
+
+ public String getNamespaceUri() {
+ return namespaceUri;
+ }
+
+ public String getClassName() {
+ return className;
+ }
+
+ public String getPackageName() {
+ return packageName;
+ }
+
+ public String getQualifiedClassName() {
+ return (packageName + "." + className);
+ }
+
+ public String getJarFile() {
+ return jarFile;
+ }
+
+ public String getInputType() {
+ return inputType;
+ }
+
+ public String getInputTypeVariable() {
+ int pos = inputType.lastIndexOf(".");
+ String cl = inputType.substring(pos+1);
+ String ret = cl.substring(0,1).toLowerCase();
+ if (cl.length() > 1) {
+ String rest = cl.substring(1);
+ ret = ret + rest;
+ }
+ ret = ret + "_";
+ return ret;
+ }
+
+ public String getOutputType() {
+ return outputType;
+ }
+
+ public String getOutputTypeVariable() {
+ int pos = outputType.lastIndexOf(".");
+ String cl = outputType.substring(pos+1);
+ String ret = cl.substring(0,1).toLowerCase();
+ if (cl.length() > 1) {
+ String rest = cl.substring(1);
+ ret = ret + rest;
+ }
+ ret = ret + "_";
+ return ret;
+ }
+
+ public String getProjectName() {
+ return projectName;
+ }
+
+ @Override
+ public String toString() {
+ return "HelperInfo [\n name=" + name + ", \n description=" + description
+ + ", \n id=" + id + ", \n namespaceUri=" + namespaceUri
+ + ", \n className=" + className + ", \n packageName=" + packageName
+ + ", \n jarFile=" + jarFile + ", \n inputType=" + inputType
+ + ", \n outputType=" + outputType + ", \n projectName=" + projectName
+ + ", \n qualifiedClassName=" + getQualifiedClassName() + "]";
+ }
+
+
+}
diff --git a/org.eclipse.emf.refactor.comrel.generator/src/comrel/generator/helper/XMLFile.java b/org.eclipse.emf.refactor.comrel.generator/src/comrel/generator/helper/XMLFile.java
new file mode 100644
index 0000000..a6f590e
--- /dev/null
+++ b/org.eclipse.emf.refactor.comrel.generator/src/comrel/generator/helper/XMLFile.java
@@ -0,0 +1,34 @@
+package comrel.generator.helper;
+
+import javax.xml.parsers.DocumentBuilder;
+import javax.xml.parsers.DocumentBuilderFactory;
+import javax.xml.parsers.ParserConfigurationException;
+import javax.xml.transform.OutputKeys;
+import javax.xml.transform.Transformer;
+import javax.xml.transform.TransformerConfigurationException;
+import javax.xml.transform.TransformerFactory;
+
+public class XMLFile {
+
+ protected static Transformer createTransformer(){
+ final TransformerFactory transformerFactory = TransformerFactory.newInstance();
+ try {
+ Transformer transformer = transformerFactory.newTransformer();
+ transformer.setOutputProperty(OutputKeys.INDENT,"yes");
+ return transformer;
+ } catch (final TransformerConfigurationException e) {
+ e.printStackTrace();
+ return null;
+ }
+ }
+
+ protected static DocumentBuilder createDocumentBuilder() {
+ try {
+ return DocumentBuilderFactory.newInstance().newDocumentBuilder();
+ } catch (final ParserConfigurationException e) {
+ e.printStackTrace();
+ return null;
+ }
+ }
+
+}
diff --git a/org.eclipse.emf.refactor.comrel.generator/src/comrel/generator/helper/XMLPluginFile.java b/org.eclipse.emf.refactor.comrel.generator/src/comrel/generator/helper/XMLPluginFile.java
new file mode 100644
index 0000000..086ea4b
--- /dev/null
+++ b/org.eclipse.emf.refactor.comrel.generator/src/comrel/generator/helper/XMLPluginFile.java
@@ -0,0 +1,91 @@
+package comrel.generator.helper;
+import java.io.File;
+import java.io.IOException;
+
+import javax.xml.parsers.DocumentBuilder;
+import javax.xml.transform.Transformer;
+import javax.xml.transform.TransformerException;
+import javax.xml.transform.dom.DOMSource;
+import javax.xml.transform.stream.StreamResult;
+
+import org.eclipse.core.resources.IProject;
+import org.eclipse.core.resources.ResourcesPlugin;
+import org.w3c.dom.Document;
+import org.w3c.dom.Element;
+import org.w3c.dom.Node;
+import org.xml.sax.SAXException;
+
+
+public class XMLPluginFile extends XMLFile {
+
+ public static final String PLUGIN_FILE = "/plugin.xml";
+ public static final String PLUGIN_TAG = "plugin";
+ public static final String EXTENSION_TAG = "extension";
+ public static final String POINT_ATTR_TAG = "point";
+
+ public static void createHelperEntry(HelperInfo helperInfo, String helperType, String helperExtensionPoint) {
+ final DocumentBuilder builder = createDocumentBuilder();
+ IProject project = ResourcesPlugin.getWorkspace().getRoot().getProject(helperInfo.getProjectName());
+ final String path = project.getLocation().toString() + PLUGIN_FILE;
+ Document doc = null;
+ final File file = new File(path);
+ if (!file.exists())
+ createPluginXml(helperInfo.getProjectName());
+ if (builder != null) {
+ Element root;
+ try {
+ doc = builder.parse(path);
+ } catch (final SAXException e) {
+ e.printStackTrace();
+ } catch (final IOException e) {
+ e.printStackTrace();
+ }
+ if (doc != null) {
+ root = doc.getDocumentElement();
+ Element ep = doc.createElement(EXTENSION_TAG);
+ ep.setAttribute(POINT_ATTR_TAG, helperExtensionPoint);
+ Node newEntry = createElement(helperInfo, doc, helperType);
+ ep.appendChild(newEntry);
+ root.appendChild(ep);
+ }
+ }
+ final Transformer transformer = createTransformer();
+ final DOMSource source = new DOMSource(doc);
+ final StreamResult result = new StreamResult(path);
+ try {
+ transformer.transform(source, result);
+ } catch (final TransformerException e) {
+ e.printStackTrace();
+ }
+ }
+
+ public static void createPluginXml(String projectName) {
+ final DocumentBuilder builder = createDocumentBuilder();
+ if (null != builder){
+ final Document doc = builder.newDocument();
+ final Element root = doc.createElement(PLUGIN_TAG);
+ doc.appendChild(root);
+ final Transformer transformer = createTransformer();
+ final DOMSource source = new DOMSource(doc);
+ IProject project = ResourcesPlugin.getWorkspace().getRoot().getProject(projectName);
+ java.net.URI uri = project.getLocationURI();
+ StreamResult result = new StreamResult(uri + PLUGIN_FILE);
+ try {
+ transformer.transform(source, result);
+ } catch (final TransformerException e) {
+ e.printStackTrace();
+ }
+ }
+ }
+
+ private static Element createElement(HelperInfo helperInfo, Document doc, String helperType) {
+ final Element multifeature = doc.createElement(helperType);
+ multifeature.setAttribute(ExtensionPoint.NAME, helperInfo.getName());
+ multifeature.setAttribute(ExtensionPoint.ID, helperInfo.getId());
+ multifeature.setAttribute(ExtensionPoint.DESCRIPTION, helperInfo.getDescription());
+ multifeature.setAttribute(ExtensionPoint.NAMESPACEURI, helperInfo.getNamespaceUri());
+ multifeature.setAttribute(ExtensionPoint.CLASS, helperInfo.getQualifiedClassName());
+ return multifeature;
+ }
+
+}
diff --git a/org.eclipse.emf.refactor.comrel.generator/src/comrel/generator/helper/wizards/BasicsWizardPage.java b/org.eclipse.emf.refactor.comrel.generator/src/comrel/generator/helper/wizards/BasicsWizardPage.java
new file mode 100644
index 0000000..516311c
--- /dev/null
+++ b/org.eclipse.emf.refactor.comrel.generator/src/comrel/generator/helper/wizards/BasicsWizardPage.java
@@ -0,0 +1,100 @@
+package comrel.generator.helper.wizards;
+
+import org.eclipse.jface.wizard.WizardPage;
+import org.eclipse.swt.SWT;
+import org.eclipse.swt.layout.GridData;
+import org.eclipse.swt.layout.GridLayout;
+import org.eclipse.swt.widgets.Composite;
+import org.eclipse.swt.widgets.Event;
+import org.eclipse.swt.widgets.Label;
+import org.eclipse.swt.widgets.Listener;
+import org.eclipse.swt.widgets.Text;
+
+public class BasicsWizardPage extends WizardPage implements Listener {
+ private Text txtName;
+ private Text txtDescription;
+ private String helperName = "";
+ private String helperDescription = "";
+
+ /**
+ * Create the wizard.
+ */
+ public BasicsWizardPage() {
+ super("HelperBasicsWizardPage");
+ setTitle("Basic Helper data");
+ setDescription("Please insert name and description of the new refactoring helper.");
+ }
+
+ /**
+ * Create contents of the wizard.
+ * @param parent
+ */
+ public void createControl(Composite parent) {
+ Composite container = new Composite(parent, SWT.NULL);
+
+ setControl(container);
+ container.setLayout(new GridLayout(1, false));
+
+ Label lblPleaseInsertA = new Label(container, SWT.NONE);
+ lblPleaseInsertA.setText("Name of the Helper* (must start with an upper case letter):");
+
+ txtName = new Text(container, SWT.BORDER);
+ GridData gd_txtName = new GridData(SWT.LEFT, SWT.CENTER, false, false, 1, 1);
+ gd_txtName.widthHint = 600;
+ txtName.setLayoutData(gd_txtName);
+ txtName.addListener(SWT.Modify, this);
+ txtName.setFocus();
+
+ Label lblNewLabel = new Label(container, SWT.NONE);
+ lblNewLabel.setText("Description of its intended purpose:");
+
+ txtDescription = new Text(container, SWT.BORDER | SWT.V_SCROLL);
+ GridData gd_txtDescription = new GridData(SWT.LEFT, SWT.CENTER, false, false, 1, 1);
+ gd_txtDescription.heightHint = 195;
+ gd_txtDescription.widthHint = 600;
+ txtDescription.setLayoutData(gd_txtDescription);
+ txtDescription.addListener(SWT.Modify, this);
+
+ this.setPageComplete(false);
+ }
+
+ @Override
+ public void handleEvent(Event event) {
+ if (event.widget == txtName) {
+ helperName = txtName.getText();
+ updatePageComplete();
+ }
+ if (event.widget == txtDescription) {
+ helperDescription = txtDescription.getText();
+ }
+ }
+
+ private void updatePageComplete() {
+ if (helperName.isEmpty()) {
+ this.setMessage("The name of the helper is not specified.", ERROR);
+ this.setPageComplete(false);
+ } else {
+ char c = helperName.charAt(0);
+ if (Character.isLetter(c) && Character.isUpperCase(c)) {
+ this.setMessage("Please insert name and description of the new refactoring helper.");
+ this.setPageComplete(true);
+ } else {
+ this.setMessage("The name of the helper must begin with an upper case letter.", ERROR);
+ this.setPageComplete(false);
+ }
+ }
+ }
+
+ public String getHelperName() {
+ return helperName;
+ }
+
+ public String getClassName() {
+ return helperName.replaceAll(" ", "");
+ }
+
+ public String getHelperDescription() {
+ return helperDescription;
+ }
+
+}
diff --git a/org.eclipse.emf.refactor.comrel.generator/src/comrel/generator/helper/wizards/EclipseWizardPage.java b/org.eclipse.emf.refactor.comrel.generator/src/comrel/generator/helper/wizards/EclipseWizardPage.java
new file mode 100644
index 0000000..654cadb
--- /dev/null
+++ b/org.eclipse.emf.refactor.comrel.generator/src/comrel/generator/helper/wizards/EclipseWizardPage.java
@@ -0,0 +1,157 @@
+package comrel.generator.helper.wizards;
+
+import java.util.LinkedList;
+
+import org.eclipse.core.resources.IProject;
+import org.eclipse.core.resources.IProjectNature;
+import org.eclipse.core.resources.ResourcesPlugin;
+import org.eclipse.core.runtime.CoreException;
+import org.eclipse.jface.wizard.WizardPage;
+import org.eclipse.swt.SWT;
+import org.eclipse.swt.layout.GridData;
+import org.eclipse.swt.layout.GridLayout;
+import org.eclipse.swt.widgets.Combo;
+import org.eclipse.swt.widgets.Composite;
+import org.eclipse.swt.widgets.Event;
+import org.eclipse.swt.widgets.Label;
+import org.eclipse.swt.widgets.Listener;
+import org.eclipse.swt.widgets.Text;
+
+public class EclipseWizardPage extends WizardPage implements Listener {
+
+ private Text txtId;
+ private Combo comboProject;
+
+ private LinkedList<IProject> projects;
+ private final String PLUGINNATURE = "org.eclipse.pde.PluginNature";
+ private String[] projectNames;
+
+ private String id = "";
+ private IProject project;
+
+ /**
+ * Create the wizard.
+ */
+ public EclipseWizardPage() {
+ super("EclipseWizardPage");
+ setTitle("Eclipse Specifics");
+ setDescription("Please insert a unique id and select a plug-in project.");
+ initProjects();
+ }
+
+ /**
+ * Create contents of the wizard.
+ * @param parent
+ */
+ public void createControl(Composite parent) {
+ Composite container = new Composite(parent, SWT.NULL);
+
+ setControl(container);
+ container.setLayout(new GridLayout(2, false));
+
+ Label lblUniqueHelperId = new Label(container, SWT.NONE);
+ lblUniqueHelperId.setLayoutData(new GridData(SWT.RIGHT, SWT.CENTER, false, false, 1, 1));
+ lblUniqueHelperId.setText("Unique helper id:");
+
+ txtId = new Text(container, SWT.BORDER);
+ txtId.setLayoutData(new GridData(SWT.FILL, SWT.CENTER, true, false, 1, 1));
+ txtId.setFocus();
+ txtId.addListener(SWT.Modify, this);
+
+ Label lblEclipsePluginProject = new Label(container, SWT.NONE);
+ lblEclipsePluginProject.setLayoutData(new GridData(SWT.RIGHT, SWT.CENTER, false, false, 1, 1));
+ lblEclipsePluginProject.setText("Eclipse plug-in project:");
+
+ comboProject = new Combo(container, SWT.NONE);
+ comboProject.setLayoutData(new GridData(SWT.FILL, SWT.CENTER, true, false, 1, 1));
+ comboProject.addListener(SWT.Modify, this);
+
+ setProjectCombo();
+
+ this.setPageComplete(false);
+ }
+
+ private void setProjectCombo() {
+ projectNames = new String[projects.size()];
+ for (int i = 0; i < projectNames.length; i++) {
+ projectNames[i] = projects.get(i).getName();
+ }
+ comboProject.setItems(projectNames);
+ }
+
+ private void initProjects() {
+ this.projects = new LinkedList<IProject>();
+ IProject[] allProjects = ResourcesPlugin.getWorkspace().getRoot().getProjects();
+ for (IProject project : allProjects) {
+ if (project.isOpen()) {
+ IProjectNature nature = null;
+ try {
+ nature = project.getNature(PLUGINNATURE);
+ } catch (CoreException e) {
+ e.printStackTrace();
+ }
+ if (null != nature)
+ this.projects.add(project);
+ }
+ }
+ }
+
+ @Override
+ public void handleEvent(Event event) {
+ if (event.widget == txtId) {
+ id = txtId.getText();
+ }
+ if (event.widget == comboProject) {
+ setProject(comboProject.getSelectionIndex());
+ }
+ updatePageComplete();
+ }
+
+ private void setProject(int index) {
+ if (index == -1) {
+ project = null;
+ } else {
+ project = projects.get(index);
+ }
+ }
+
+ public void updatePageComplete() {
+ if (id.isEmpty()) {
+ this.setMessage("The id of the helper is not specified.", ERROR);
+ this.setPageComplete(false);
+ } else {
+ char firstChar = id.charAt(0);
+ char lastChar = id.charAt(id.length() - 1);
+ if ((firstChar == '.') || (lastChar == '.')) {
+ this.setMessage("The helper id must not start or end with a dot ('.')", ERROR);
+ this.setPageComplete(false);
+ } else {
+ for (int i = 0; i < id.length(); i++) {
+ char c = id.charAt(i);
+ if (Character.isLetter(c) || (c == '.')) {
+ if (project == null) {
+ this.setMessage("Please select a plug-in project.", ERROR);
+ this.setPageComplete(false);
+ } else {
+ this.setMessage("Please insert a unique id and select a plug-in project.");
+ this.setPageComplete(true);
+ }
+ } else {
+ this.setMessage("The helper id must consist of characters and/or dots ('.')", ERROR);
+ this.setPageComplete(false);
+ break;
+ }
+ }
+ }
+ }
+ }
+
+ public String getId() {
+ return id;
+ }
+
+ public String getProjectName() {
+ return project.getName();
+ }
+
+}
diff --git a/org.eclipse.emf.refactor.comrel.generator/src/comrel/generator/helper/wizards/MetaModelWizardPage.java b/org.eclipse.emf.refactor.comrel.generator/src/comrel/generator/helper/wizards/MetaModelWizardPage.java
new file mode 100644
index 0000000..80a071d
--- /dev/null
+++ b/org.eclipse.emf.refactor.comrel.generator/src/comrel/generator/helper/wizards/MetaModelWizardPage.java
@@ -0,0 +1,250 @@
+package comrel.generator.helper.wizards;
+
+import java.util.Arrays;
+
+import org.eclipse.emf.common.util.BasicEList;
+import org.eclipse.emf.common.util.EList;
+import org.eclipse.emf.common.util.TreeIterator;
+import org.eclipse.emf.ecore.EClass;
+import org.eclipse.emf.ecore.EObject;
+import org.eclipse.emf.ecore.EPackage;
+import org.eclipse.jface.wizard.WizardPage;
+import org.eclipse.swt.SWT;
+import org.eclipse.swt.layout.GridData;
+import org.eclipse.swt.layout.GridLayout;
+import org.eclipse.swt.widgets.Combo;
+import org.eclipse.swt.widgets.Composite;
+import org.eclipse.swt.widgets.Event;
+import org.eclipse.swt.widgets.Label;
+import org.eclipse.swt.widgets.Listener;
+import org.eclipse.emf.ecore.plugin.RegistryReader;
+
+public class MetaModelWizardPage extends WizardPage implements Listener {
+
+ private Combo comboMM, comboInput, comboOutput;
+
+ private String[] metaModels;
+ private EPackage metaModel;
+ private String[] modelElementNames;
+ private EClass inputPortType;
+ private Object outputPortType;
+
+ private boolean isFilter;
+
+ /**
+ * Create the wizard.
+ */
+ public MetaModelWizardPage(boolean isFilter) {
+ super("HelperMetaModelWizardPage");
+ setTitle("Meta model Data");
+ setDescription("Please select a meta model and corresponding port type(s).");
+ this.isFilter = isFilter;
+ initMetaModels();
+ }
+
+ private void setComboMM() {
+ comboMM.setItems(metaModels);
+ }
+
+ private void initMetaModels() {
+ metaModels = EPackage.Registry.INSTANCE.keySet().toArray(new String[EPackage.Registry.INSTANCE.size()]);
+ Arrays.sort(metaModels);
+ }
+
+ /**
+ * Create contents of the wizard.
+ * @param parent
+ */
+ public void createControl(Composite parent) {
+ Composite container = new Composite(parent, SWT.NULL);
+
+ setControl(container);
+ container.setLayout(new GridLayout(1, false));
+
+ Composite composite = new Composite(container, SWT.NONE);
+ composite.setLayout(new GridLayout(2, false));
+
+ Label lblMetaModelThe = new Label(composite, SWT.NONE);
+ GridData gd_lblMetaModelThe = new GridData(SWT.RIGHT, SWT.CENTER, false, false, 1, 1);
+ gd_lblMetaModelThe.widthHint = 270;
+ lblMetaModelThe.setLayoutData(gd_lblMetaModelThe);
+ lblMetaModelThe.setText("Meta model the Helper conforms to:");
+
+ comboMM = new Combo(composite, SWT.NONE);
+ GridData gd_comboMM = new GridData(SWT.FILL, SWT.CENTER, true, false, 1, 1);
+ gd_comboMM.widthHint = 330;
+ comboMM.setLayoutData(gd_comboMM);
+
+ Composite composite_1 = new Composite(container, SWT.NONE);
+ composite_1.setLayout(new GridLayout(2, false));
+
+ Label lblMetaModelType = new Label(composite_1, SWT.NONE);
+ GridData gd_lblMetaModelType = new GridData(SWT.RIGHT, SWT.CENTER, false, false, 1, 1);
+ gd_lblMetaModelType.widthHint = 270;
+ lblMetaModelType.setLayoutData(gd_lblMetaModelType);
+ lblMetaModelType.setText("Meta model type of the input port:");
+
+ comboInput = new Combo(composite_1, SWT.NONE);
+ comboInput.setEnabled(false);
+ GridData gd_comboInput = new GridData(SWT.FILL, SWT.CENTER, true, false, 1, 1);
+ gd_comboInput.widthHint = 330;
+ comboInput.setLayoutData(gd_comboInput);
+
+ Composite composite_2 = new Composite(container, SWT.NONE);
+ composite_2.setLayout(new GridLayout(2, false));
+
+ Label lblMetaModelType_1 = new Label(composite_2, SWT.NONE);
+ GridData gd_lblMetaModelType_1 = new GridData(SWT.RIGHT, SWT.CENTER, false, false, 1, 1);
+ gd_lblMetaModelType_1.widthHint = 270;
+ lblMetaModelType_1.setLayoutData(gd_lblMetaModelType_1);
+ lblMetaModelType_1.setText("Meta model type of the output port:");
+
+ comboOutput = new Combo(composite_2, SWT.NONE);
+ comboOutput.setEnabled(false);
+ GridData gd_comboOutput = new GridData(SWT.FILL, SWT.CENTER, true, false, 1, 1);
+ gd_comboOutput.widthHint = 330;
+ comboOutput.setLayoutData(gd_comboOutput);
+
+ setComboMM();
+ comboMM.setFocus();
+ comboMM.addListener(SWT.Modify, this);
+ comboInput.addListener(SWT.Modify, this);
+ comboOutput.addListener(SWT.Modify, this);
+
+ this.setPageComplete(false);
+ }
+
+ @Override
+ public void handleEvent(Event event) {
+ if (event.widget == comboMM) {
+ setElementCombos(comboMM.getSelectionIndex());
+ }
+ if (event.widget == comboInput) {
+ setInputPortType(comboInput.getSelectionIndex());
+ if (isFilter) {
+ if (comboInput.getSelectionIndex() == -1) {
+ comboOutput.deselectAll();
+ } else {
+ comboOutput.select(comboInput.getSelectionIndex());
+ }
+ outputPortType = inputPortType;
+ }
+ }
+ if (event.widget == comboOutput) {
+ setOutputPortType(comboOutput.getSelectionIndex());
+ }
+ updatePageComplete();
+ }
+
+ private void setOutputPortType(int index) {
+ if (index == -1) {
+ outputPortType = null;
+ } else {
+ String elementName = comboOutput.getItem(index);
+ if (elementName.equals("String")) {
+ outputPortType = elementName;
+ } else {
+ outputPortType = getEClassFromName(elementName);
+ }
+ }
+ }
+
+ private void setInputPortType(int index) {
+ if (index == -1) {
+ inputPortType = null;
+ } else {
+ String elementName = comboInput.getItem(index);
+ inputPortType = getEClassFromName(elementName);
+ }
+ }
+
+ private EClass getEClassFromName(String elementName) {
+ TreeIterator<EObject> iter = metaModel.eAllContents();
+ while (iter.hasNext()) {
+ EObject eObject = iter.next();
+ if (eObject instanceof EClass) {
+ if (((EClass) eObject).getName().equals(elementName)) {
+ return ((EClass) eObject);
+ }
+ }
+ }
+ return null;
+ }
+
+ private void setElementCombos(int index) {
+ if (index == -1) {
+ comboInput.removeAll();
+ comboOutput.removeAll();
+ comboInput.setEnabled(false);
+ comboOutput.setEnabled(false);
+ } else {
+ String mm = comboMM.getItem(index);
+ // new
+ Object value = EPackage.Registry.INSTANCE.get(mm);
+ System.out.println(value);
+ metaModel = (EPackage) value;
+ setModelElementNames();
+ comboInput.setItems(modelElementNames);
+ comboInput.setEnabled(true);
+ comboOutput.setItems(modelElementNames);
+ comboOutput.add("String");
+ comboOutput.setEnabled(! isFilter);
+ }
+ }
+
+ private void setModelElementNames() {
+ EList<EClass> eClasses = new BasicEList<EClass>();
+ TreeIterator<EObject> iter = metaModel.eAllContents();
+ while (iter.hasNext()) {
+ EObject eObject = iter.next();
+ if (eObject instanceof EClass) {
+ eClasses.add((EClass) eObject);
+ }
+ }
+ modelElementNames = new String[eClasses.size()];
+ for (int i = 0; i < modelElementNames.length; i++) {
+ modelElementNames[i] = eClasses.get(i).getName();
+ }
+ Arrays.sort(modelElementNames);
+ }
+
+ public void updatePageComplete() {
+ if (comboMM.getSelectionIndex() == -1) {
+ this.setMessage("The meta model is not specified.", ERROR);
+ this.setPageComplete(false);
+ return;
+ }
+ if (comboInput.isEnabled() && (comboInput.getSelectionIndex() == -1)) {
+ this.setMessage("The type of the input port is not specified.", ERROR);
+ this.setPageComplete(false);
+ return;
+ }
+ if (comboOutput.isEnabled() && (comboOutput.getSelectionIndex() == -1)) {
+ this.setMessage("The type of the output port is not specified.", ERROR);
+ this.setPageComplete(false);
+ return;
+ }
+ this.setMessage("Please select a meta model and corresponding port type(s).");
+ this.setPageComplete(true);
+ }
+
+ public String getNamespaceUri() {
+ return metaModel.getNsURI();
+ }
+
+ public String getInputTypeName() {
+ return inputPortType.getInstanceClassName();
+ }
+
+ public String getOutputTypeName() {
+ if (outputPortType.equals("String")) {
+ return "String";
+ } else {
+ return ((EClass) outputPortType).getInstanceClassName();
+ }
+ }
+
+ public String getJarFileName() {
+ return inputPortType.getInstanceClass().getPackage().getName();
+ }
+}
diff --git a/org.eclipse.emf.refactor.comrel.generator/src/comrel/generator/helper/wizards/MultiFeatureWizard.java b/org.eclipse.emf.refactor.comrel.generator/src/comrel/generator/helper/wizards/MultiFeatureWizard.java
new file mode 100644
index 0000000..3897e45
--- /dev/null
+++ b/org.eclipse.emf.refactor.comrel.generator/src/comrel/generator/helper/wizards/MultiFeatureWizard.java
@@ -0,0 +1,92 @@
+package comrel.generator.helper.wizards;
+
+import java.lang.reflect.InvocationTargetException;
+
+import org.eclipse.core.runtime.IProgressMonitor;
+import org.eclipse.jface.viewers.IStructuredSelection;
+import org.eclipse.jface.wizard.Wizard;
+import org.eclipse.ui.INewWizard;
+import org.eclipse.ui.IWorkbench;
+import org.eclipse.ui.actions.WorkspaceModifyOperation;
+
+import comrel.generator.helper.HelperGenerator;
+import comrel.generator.helper.HelperInfo;
+import comrel.util.ExtensionPointInfo;
+
+public class MultiFeatureWizard extends Wizard implements INewWizard {
+
+private final String WINDOWTITLE = "New Multi Feature";
+
+ private BasicsWizardPage basicsWizardPage;
+ private MetaModelWizardPage metaModelWizardPage;
+ private EclipseWizardPage eclipseWizardPage;
+
+ public MultiFeatureWizard() { }
+
+ public void addPages() {
+ setWindowTitle(WINDOWTITLE);
+ basicsWizardPage = new BasicsWizardPage();
+ addPage(basicsWizardPage);
+ metaModelWizardPage = new MetaModelWizardPage(false);
+ addPage(metaModelWizardPage);
+ eclipseWizardPage = new EclipseWizardPage();
+ addPage(eclipseWizardPage);
+ }
+
+ @Override
+ public boolean canFinish() {
+ return (basicsWizardPage.isPageComplete()
+ && metaModelWizardPage.isPageComplete()
+ && eclipseWizardPage.isPageComplete());
+ }
+
+ @Override
+ public void init(IWorkbench workbench, IStructuredSelection selection) { }
+
+ @Override
+ public boolean performFinish() {
+ WorkspaceModifyOperation op = new WorkspaceModifyOperation() {
+ @Override
+ public void execute(IProgressMonitor monitor)
+ throws InvocationTargetException {
+ try {
+ createHelper(monitor);
+ } catch (Exception e){
+ e.printStackTrace();
+ } finally {
+ monitor.done();
+ }
+ }
+ };
+ try {
+ getContainer().run(false, false, op);
+ } catch (InvocationTargetException e) {
+ e.printStackTrace();
+ } catch (InterruptedException e) {
+ e.printStackTrace();
+ }
+ return true;
+ }
+
+ protected void createHelper(IProgressMonitor monitor) {
+ HelperInfo helperInfo = createHelperInfo();
+ System.out.println(helperInfo.toString());
+ HelperGenerator generator = new HelperGenerator(helperInfo);
+ generator.run(monitor, ExtensionPointInfo.MULTIFEATURE, ExtensionPointInfo.MULTIFEATURE_EXTENSION_POINT);
+ }
+
+ private HelperInfo createHelperInfo() {
+ String name = basicsWizardPage.getHelperName();
+ String description = basicsWizardPage.getHelperDescription();
+ String id = eclipseWizardPage.getId();
+ String namespaceUri = metaModelWizardPage.getNamespaceUri();
+ String className = basicsWizardPage.getClassName();
+ String jarFile = metaModelWizardPage.getJarFileName();
+ String inputType = metaModelWizardPage.getInputTypeName();
+ String outputType = metaModelWizardPage.getOutputTypeName();
+ String projectName = eclipseWizardPage.getProjectName();
+ return new HelperInfo(name, description, id, namespaceUri, className,
+ jarFile, inputType, outputType, projectName);
+ }
+
+}
diff --git a/org.eclipse.emf.refactor.comrel.generator/src/comrel/generator/helper/wizards/MultiFilterWizard.java b/org.eclipse.emf.refactor.comrel.generator/src/comrel/generator/helper/wizards/MultiFilterWizard.java
new file mode 100644
index 0000000..307c2fb
--- /dev/null
+++ b/org.eclipse.emf.refactor.comrel.generator/src/comrel/generator/helper/wizards/MultiFilterWizard.java
@@ -0,0 +1,93 @@
+package comrel.generator.helper.wizards;
+
+import java.lang.reflect.InvocationTargetException;
+
+import org.eclipse.core.runtime.IProgressMonitor;
+import org.eclipse.jface.viewers.IStructuredSelection;
+import org.eclipse.jface.wizard.Wizard;
+import org.eclipse.ui.INewWizard;
+import org.eclipse.ui.IWorkbench;
+import org.eclipse.ui.actions.WorkspaceModifyOperation;
+
+import comrel.generator.helper.HelperGenerator;
+import comrel.generator.helper.HelperInfo;
+import comrel.util.ExtensionPointInfo;
+
+public class MultiFilterWizard extends Wizard implements INewWizard {
+
+private final String WINDOWTITLE = "New Multi Filter";
+
+ private BasicsWizardPage basicsWizardPage;
+ private MetaModelWizardPage metaModelWizardPage;
+ private EclipseWizardPage eclipseWizardPage;
+
+
+ public MultiFilterWizard() { }
+
+ public void addPages() {
+ setWindowTitle(WINDOWTITLE);
+ basicsWizardPage = new BasicsWizardPage();
+ addPage(basicsWizardPage);
+ metaModelWizardPage = new MetaModelWizardPage(true);
+ addPage(metaModelWizardPage);
+ eclipseWizardPage = new EclipseWizardPage();
+ addPage(eclipseWizardPage);
+ }
+
+ @Override
+ public boolean canFinish() {
+ return (basicsWizardPage.isPageComplete()
+ && metaModelWizardPage.isPageComplete()
+ && eclipseWizardPage.isPageComplete());
+ }
+
+ @Override
+ public void init(IWorkbench workbench, IStructuredSelection selection) { }
+
+ @Override
+ public boolean performFinish() {
+ WorkspaceModifyOperation op = new WorkspaceModifyOperation() {
+ @Override
+ public void execute(IProgressMonitor monitor)
+ throws InvocationTargetException {
+ try {
+ createHelper(monitor);
+ } catch (Exception e){
+ e.printStackTrace();
+ } finally {
+ monitor.done();
+ }
+ }
+ };
+ try {
+ getContainer().run(false, false, op);
+ } catch (InvocationTargetException e) {
+ e.printStackTrace();
+ } catch (InterruptedException e) {
+ e.printStackTrace();
+ }
+ return true;
+ }
+
+ protected void createHelper(IProgressMonitor monitor) {
+ HelperInfo helperInfo = createHelperInfo();
+ System.out.println(helperInfo.toString());
+ HelperGenerator generator = new HelperGenerator(helperInfo);
+ generator.run(monitor, ExtensionPointInfo.MULTIFILTER, ExtensionPointInfo.MULTIFILTER_EXTENSION_POINT);
+ }
+
+ private HelperInfo createHelperInfo() {
+ String name = basicsWizardPage.getHelperName();
+ String description = basicsWizardPage.getHelperDescription();
+ String id = eclipseWizardPage.getId();
+ String namespaceUri = metaModelWizardPage.getNamespaceUri();
+ String className = basicsWizardPage.getClassName();
+ String jarFile = metaModelWizardPage.getJarFileName();
+ String inputType = metaModelWizardPage.getInputTypeName();
+ String outputType = metaModelWizardPage.getOutputTypeName();
+ String projectName = eclipseWizardPage.getProjectName();
+ return new HelperInfo(name, description, id, namespaceUri, className,
+ jarFile, inputType, outputType, projectName);
+ }
+
+}
diff --git a/org.eclipse.emf.refactor.comrel.generator/src/comrel/generator/helper/wizards/SingleFeatureWizard.java b/org.eclipse.emf.refactor.comrel.generator/src/comrel/generator/helper/wizards/SingleFeatureWizard.java
new file mode 100644
index 0000000..a96702b
--- /dev/null
+++ b/org.eclipse.emf.refactor.comrel.generator/src/comrel/generator/helper/wizards/SingleFeatureWizard.java
@@ -0,0 +1,93 @@
+package comrel.generator.helper.wizards;
+
+import java.lang.reflect.InvocationTargetException;
+
+import org.eclipse.core.runtime.IProgressMonitor;
+import org.eclipse.jface.viewers.IStructuredSelection;
+import org.eclipse.jface.wizard.Wizard;
+import org.eclipse.ui.INewWizard;
+import org.eclipse.ui.IWorkbench;
+import org.eclipse.ui.actions.WorkspaceModifyOperation;
+
+import comrel.generator.helper.HelperGenerator;
+import comrel.generator.helper.HelperInfo;
+import comrel.util.ExtensionPointInfo;
+
+public class SingleFeatureWizard extends Wizard implements INewWizard {
+
+private final String WINDOWTITLE = "New Single Feature";
+
+ private BasicsWizardPage basicsWizardPage;
+ private MetaModelWizardPage metaModelWizardPage;
+ private EclipseWizardPage eclipseWizardPage;
+
+ public SingleFeatureWizard() { }
+
+ public void addPages() {
+ setWindowTitle(WINDOWTITLE);
+ basicsWizardPage = new BasicsWizardPage();
+ addPage(basicsWizardPage);
+ metaModelWizardPage = new MetaModelWizardPage(false);
+ addPage(metaModelWizardPage);
+ eclipseWizardPage = new EclipseWizardPage();
+ addPage(eclipseWizardPage);
+ }
+
+ @Override
+ public boolean canFinish() {
+ return (basicsWizardPage.isPageComplete()
+ && metaModelWizardPage.isPageComplete()
+ && eclipseWizardPage.isPageComplete());
+ }
+
+ @Override
+ public boolean performFinish() {
+ WorkspaceModifyOperation op = new WorkspaceModifyOperation() {
+ @Override
+ public void execute(IProgressMonitor monitor)
+ throws InvocationTargetException {
+ try {
+ createHelper(monitor);
+ } catch (Exception e){
+ e.printStackTrace();
+ } finally {
+ monitor.done();
+ }
+ }
+ };
+ try {
+ getContainer().run(false, false, op);
+ } catch (InvocationTargetException e) {
+ e.printStackTrace();
+ } catch (InterruptedException e) {
+ e.printStackTrace();
+ }
+ return true;
+ }
+
+ protected void createHelper(IProgressMonitor monitor) {
+ HelperInfo helperInfo = createHelperInfo();
+ System.out.println(helperInfo.toString());
+ HelperGenerator generator = new HelperGenerator(helperInfo);
+ generator.run(monitor, ExtensionPointInfo.SINGLEFEATURE, ExtensionPointInfo.SINGLEFEATURE_EXTENSION_POINT);
+ }
+
+ private HelperInfo createHelperInfo() {
+ String name = basicsWizardPage.getHelperName();
+ String description = basicsWizardPage.getHelperDescription();
+ String id = eclipseWizardPage.getId();
+ String namespaceUri = metaModelWizardPage.getNamespaceUri();
+ String className = basicsWizardPage.getClassName();
+ String jarFile = metaModelWizardPage.getJarFileName();
+ String inputType = metaModelWizardPage.getInputTypeName();
+ String outputType = metaModelWizardPage.getOutputTypeName();
+ String projectName = eclipseWizardPage.getProjectName();
+ return new HelperInfo(name, description, id, namespaceUri, className,
+ jarFile, inputType, outputType, projectName);
+ }
+
+
+ @Override
+ public void init(IWorkbench workbench, IStructuredSelection selection) { }
+
+}
diff --git a/org.eclipse.emf.refactor.comrel.generator/src/comrel/generator/helper/wizards/SingleFilterWizard.java b/org.eclipse.emf.refactor.comrel.generator/src/comrel/generator/helper/wizards/SingleFilterWizard.java
new file mode 100644
index 0000000..784f4a7
--- /dev/null
+++ b/org.eclipse.emf.refactor.comrel.generator/src/comrel/generator/helper/wizards/SingleFilterWizard.java
@@ -0,0 +1,92 @@
+package comrel.generator.helper.wizards;
+
+import java.lang.reflect.InvocationTargetException;
+
+import org.eclipse.core.runtime.IProgressMonitor;
+import org.eclipse.jface.viewers.IStructuredSelection;
+import org.eclipse.jface.wizard.Wizard;
+import org.eclipse.ui.INewWizard;
+import org.eclipse.ui.IWorkbench;
+import org.eclipse.ui.actions.WorkspaceModifyOperation;
+
+import comrel.generator.helper.HelperGenerator;
+import comrel.generator.helper.HelperInfo;
+import comrel.util.ExtensionPointInfo;
+
+public class SingleFilterWizard extends Wizard implements INewWizard {
+
+private final String WINDOWTITLE = "New Single Filter";
+
+ private BasicsWizardPage basicsWizardPage;
+ private MetaModelWizardPage metaModelWizardPage;
+ private EclipseWizardPage eclipseWizardPage;
+
+ public SingleFilterWizard() { }
+
+ public void addPages() {
+ setWindowTitle(WINDOWTITLE);
+ basicsWizardPage = new BasicsWizardPage();
+ addPage(basicsWizardPage);
+ metaModelWizardPage = new MetaModelWizardPage(true);
+ addPage(metaModelWizardPage);
+ eclipseWizardPage = new EclipseWizardPage();
+ addPage(eclipseWizardPage);
+ }
+
+ @Override
+ public boolean canFinish() {
+ return (basicsWizardPage.isPageComplete()
+ && metaModelWizardPage.isPageComplete()
+ && eclipseWizardPage.isPageComplete());
+ }
+
+ @Override
+ public void init(IWorkbench workbench, IStructuredSelection selection) { }
+
+ @Override
+ public boolean performFinish() {
+ WorkspaceModifyOperation op = new WorkspaceModifyOperation() {
+ @Override
+ public void execute(IProgressMonitor monitor)
+ throws InvocationTargetException {
+ try {
+ createHelper(monitor);
+ } catch (Exception e){
+ e.printStackTrace();
+ } finally {
+ monitor.done();
+ }
+ }
+ };
+ try {
+ getContainer().run(false, false, op);
+ } catch (InvocationTargetException e) {
+ e.printStackTrace();
+ } catch (InterruptedException e) {
+ e.printStackTrace();
+ }
+ return true;
+ }
+
+ protected void createHelper(IProgressMonitor monitor) {
+ HelperInfo helperInfo = createHelperInfo();
+ System.out.println(helperInfo.toString());
+ HelperGenerator generator = new HelperGenerator(helperInfo);
+ generator.run(monitor, ExtensionPointInfo.SINGLEFILTER, ExtensionPointInfo.SINGLEFILTER_EXTENSION_POINT);
+ }
+
+ private HelperInfo createHelperInfo() {
+ String name = basicsWizardPage.getHelperName();
+ String description = basicsWizardPage.getHelperDescription();
+ String id = eclipseWizardPage.getId();
+ String namespaceUri = metaModelWizardPage.getNamespaceUri();
+ String className = basicsWizardPage.getClassName();
+ String jarFile = metaModelWizardPage.getJarFileName();
+ String inputType = metaModelWizardPage.getInputTypeName();
+ String outputType = metaModelWizardPage.getOutputTypeName();
+ String projectName = eclipseWizardPage.getProjectName();
+ return new HelperInfo(name, description, id, namespaceUri, className,
+ jarFile, inputType, outputType, projectName);
+ }
+
+}
diff --git a/org.eclipse.emf.refactor.comrel.generator/src/comrel/generator/refactoring/wizards/RefactoringWizard.java b/org.eclipse.emf.refactor.comrel.generator/src/comrel/generator/refactoring/wizards/RefactoringWizard.java
new file mode 100644
index 0000000..55db048
--- /dev/null
+++ b/org.eclipse.emf.refactor.comrel.generator/src/comrel/generator/refactoring/wizards/RefactoringWizard.java
@@ -0,0 +1,26 @@
+package comrel.generator.refactoring.wizards;
+
+import org.eclipse.jface.viewers.IStructuredSelection;
+import org.eclipse.jface.wizard.Wizard;
+import org.eclipse.ui.INewWizard;
+import org.eclipse.ui.IWorkbench;
+
+public class RefactoringWizard extends Wizard implements INewWizard {
+
+ public RefactoringWizard() {
+ // TODO Auto-generated constructor stub
+ }
+
+ @Override
+ public void init(IWorkbench workbench, IStructuredSelection selection) {
+ // TODO Auto-generated method stub
+
+ }
+
+ @Override
+ public boolean performFinish() {
+ // TODO Auto-generated method stub
+ return false;
+ }
+
+}
diff --git a/org.eclipse.emf.refactor.comrel.generator/src/comrel/generator/refactoring/wizards/RefactoringWizardPage.java b/org.eclipse.emf.refactor.comrel.generator/src/comrel/generator/refactoring/wizards/RefactoringWizardPage.java
new file mode 100644
index 0000000..9bdb9ea
--- /dev/null
+++ b/org.eclipse.emf.refactor.comrel.generator/src/comrel/generator/refactoring/wizards/RefactoringWizardPage.java
@@ -0,0 +1,55 @@
+package comrel.generator.refactoring.wizards;
+
+import org.eclipse.jface.wizard.WizardPage;
+import org.eclipse.swt.SWT;
+import org.eclipse.swt.widgets.Composite;
+import org.eclipse.swt.layout.GridLayout;
+import org.eclipse.swt.widgets.Label;
+import org.eclipse.swt.widgets.Combo;
+import org.eclipse.swt.layout.GridData;
+import org.eclipse.swt.widgets.Button;
+
+public class RefactoringWizardPage extends WizardPage {
+
+ /**
+ * Create the wizard.
+ */
+ public RefactoringWizardPage() {
+ super("wizardPage");
+ setTitle("Wizard Page title");
+ setDescription("Wizard Page description");
+ }
+
+ /**
+ * Create contents of the wizard.
+ * @param parent
+ */
+ public void createControl(Composite parent) {
+ Composite container = new Composite(parent, SWT.NULL);
+
+ setControl(container);
+ container.setLayout(new GridLayout(3, false));
+
+ Label lblEclipsePluginProject = new Label(container, SWT.NONE);
+ lblEclipsePluginProject.setLayoutData(new GridData(SWT.RIGHT, SWT.CENTER, false, false, 1, 1));
+ lblEclipsePluginProject.setText("Eclipse plug-in project:");
+
+ Combo comboProject = new Combo(container, SWT.NONE);
+ comboProject.setLayoutData(new GridData(SWT.FILL, SWT.CENTER, true, false, 1, 1));
+
+ Label lblNewLabel = new Label(container, SWT.NONE);
+
+ Label lblComrelModelFile = new Label(container, SWT.NONE);
+ lblComrelModelFile.setLayoutData(new GridData(SWT.RIGHT, SWT.CENTER, false, false, 1, 1));
+ lblComrelModelFile.setText("CoMReL model file:");
+
+ Combo comboFile = new Combo(container, SWT.NONE);
+ comboFile.setEnabled(false);
+ comboFile.setLayoutData(new GridData(SWT.FILL, SWT.CENTER, true, false, 1, 1));
+
+ Button btnImport = new Button(container, SWT.NONE);
+ btnImport.setEnabled(false);
+ btnImport.setText("import");
+ }
+
+}
diff --git a/org.eclipse.emf.refactor.comrel.generator/templates/multifeature.javajet b/org.eclipse.emf.refactor.comrel.generator/templates/multifeature.javajet
new file mode 100644
index 0000000..1df6abc
--- /dev/null
+++ b/org.eclipse.emf.refactor.comrel.generator/templates/multifeature.javajet
@@ -0,0 +1,88 @@
+<%@ jet package="comrel.helper" class="MultiFeature"
+imports="comrel.generator.helper.*"%>
+<%HelperInfo helperInfo = (HelperInfo) argument; %>
+/**
+ * <copyright>
+ * </copyright>
+ */
+package <%=helperInfo.getPackageName()%>;
+
+import org.eclipse.emf.common.util.BasicEList;
+import org.eclipse.emf.common.util.EList;
+
+import comrel.extensions.IMultiFeatureHelper;
+import comrel.ComrelFactory;
+import comrel.SingleInputPort;
+import comrel.MultiOutputPort;
+
+/**
+ * Helper class for synchronizing ports in
+ * composite model refactorings specified in CoMReL.
+ * @generated
+ */
+public class <%=helperInfo.getClassName()%> implements IMultiFeatureHelper {
+
+ final ComrelFactory factory = ComrelFactory.eINSTANCE;
+ private SingleInputPort <%=helperInfo.getInputTypeVariable()%>;
+ private MultiOutputPort <%=helperInfo.getOutputTypeVariable() + "s"%>;
+
+ /**
+ * Default constructor.
+ * @generated
+ */
+ public <%=helperInfo.getClassName()%>() {
+ initInputPort();
+ initOutputPort();
+ }
+
+ /**
+ * Method for setting the input port.
+ * @generated
+ */
+ private void initInputPort() {
+ <%=helperInfo.getInputTypeVariable()%> = factory.createSingleInputPort();
+ <%=helperInfo.getInputTypeVariable()%>.setName("<%=helperInfo.getInputTypeVariable()%>");
+ <%=helperInfo.getInputTypeVariable()%>.setType(<%=helperInfo.getInputType()%>.class);
+ }
+
+ /**
+ * Method for setting the output port.
+ * @generated
+ */
+ private void initOutputPort(){
+ <%=helperInfo.getOutputTypeVariable() + "s"%> = factory.createMultiOutputPort();
+ <%=helperInfo.getOutputTypeVariable() + "s"%>.setName("<%=helperInfo.getOutputTypeVariable() + "s"%>");
+ <%=helperInfo.getOutputTypeVariable() + "s"%>.setType(<%=helperInfo.getOutputType()%>.class);
+ }
+
+ /**
+ * @generated
+ */
+ @Override
+ public SingleInputPort getInputPort() {
+ return <%=helperInfo.getInputTypeVariable()%>;
+ }
+
+ /**
+ * @generated
+ */
+ @Override
+ public MultiOutputPort getOutputPort() {
+ return <%=helperInfo.getOutputTypeVariable() + "s"%>;
+ }
+
+ /**
+ * @generated
+ */
+ @Override
+ public void run() {
+ <%=helperInfo.getInputType()%> in = (<%=helperInfo.getInputType()%>) <%=helperInfo.getInputTypeVariable()%>.getValue();
+ EList<<%=helperInfo.getOutputType()%>> out = new BasicEList<<%=helperInfo.getOutputType()%>>();
+
+ // TODO implement logic (fill 'out')
+
+ <%=helperInfo.getOutputTypeVariable() + "s"%>.getValue().addAll(out);
+ }
+
+}
+
\ No newline at end of file
diff --git a/org.eclipse.emf.refactor.comrel.generator/templates/multifilter.javajet b/org.eclipse.emf.refactor.comrel.generator/templates/multifilter.javajet
new file mode 100644
index 0000000..6b73e71
--- /dev/null
+++ b/org.eclipse.emf.refactor.comrel.generator/templates/multifilter.javajet
@@ -0,0 +1,101 @@
+<%@ jet package="comrel.helper" class="MultiFilter"
+imports="comrel.generator.helper.*"%>
+<%HelperInfo helperInfo = (HelperInfo) argument; %>
+/**
+ * <copyright>
+ * </copyright>
+ */
+package <%=helperInfo.getPackageName()%>;
+
+import org.eclipse.emf.common.util.BasicEList;
+import org.eclipse.emf.common.util.EList;
+
+import comrel.extensions.IMultiFilterHelper;
+import comrel.MultiInputPort;
+import comrel.MultiOutputPort;
+import comrel.ComrelFactory;
+
+/**
+ * Helper class for synchronizing ports in
+ * composite model refactorings specified in CoMReL.
+ * @generated
+ */
+public class <%=helperInfo.getClassName()%> implements IMultiFilterHelper {
+
+ final ComrelFactory factory = ComrelFactory.eINSTANCE;
+ private MultiInputPort <%=helperInfo.getInputTypeVariable() + "in"%>;
+ private MultiOutputPort <%=helperInfo.getOutputTypeVariable() + "out"%>;
+
+ /**
+ * Default constructor.
+ * @generated
+ */
+ public <%=helperInfo.getClassName()%>() {
+ initInputPort();
+ initOutputPort();
+ }
+
+ /**
+ * Method for setting the input port.
+ * @generated
+ */
+ private void initInputPort() {
+ <%=helperInfo.getInputTypeVariable() + "in"%> = factory.createMultiInputPort();
+ <%=helperInfo.getInputTypeVariable() + "in"%>.setName("<%=helperInfo.getInputTypeVariable() + "in"%>");
+ <%=helperInfo.getInputTypeVariable() + "in"%>.setType(<%=helperInfo.getInputType()%>.class);
+ }
+
+ /**
+ * Method for setting the output port.
+ * @generated
+ */
+ private void initOutputPort(){
+ <%=helperInfo.getOutputTypeVariable() + "out"%> = factory.createMultiOutputPort();
+ <%=helperInfo.getOutputTypeVariable() + "out"%>.setName("<%=helperInfo.getOutputTypeVariable() + "out"%>");
+ <%=helperInfo.getOutputTypeVariable() + "out"%>.setType(<%=helperInfo.getOutputType()%>.class);
+ }
+
+ /**
+ * @generated
+ */
+ @Override
+ public MultiInputPort getInputPort() {
+ return <%=helperInfo.getInputTypeVariable() + "in"%>;
+ }
+
+ /**
+ * @generated
+ */
+ @Override
+ public MultiOutputPort getOutputPort() {
+ return <%=helperInfo.getOutputTypeVariable() + "out"%>;
+ }
+
+ /**
+ * @generated
+ */
+ @Override
+ public void run() {
+ EList<<%=helperInfo.getInputType()%>> in = setInput();
+ EList<<%=helperInfo.getOutputType()%>> out = new BasicEList<<%=helperInfo.getOutputType()%>>();
+
+ // TODO implement logic (fill 'out')
+
+ <%=helperInfo.getOutputTypeVariable() + "out"%>.getValue().addAll(out);
+ }
+
+ /**
+ * Helper method for extracting input to Java objects.
+ * @generated
+ */
+ private EList<<%=helperInfo.getInputType()%>> setInput() {
+ EList<Object> origin = <%=helperInfo.getInputTypeVariable() + "in"%>.getValue();
+ EList<<%=helperInfo.getInputType()%>> in = new BasicEList<<%=helperInfo.getInputType()%>>();
+ for (Object o : origin) {
+ in.add((<%=helperInfo.getInputType()%>) o);
+ }
+ return in;
+ }
+
+}
+
\ No newline at end of file
diff --git a/org.eclipse.emf.refactor.comrel.generator/templates/singlefeature.javajet b/org.eclipse.emf.refactor.comrel.generator/templates/singlefeature.javajet
new file mode 100644
index 0000000..e266d78
--- /dev/null
+++ b/org.eclipse.emf.refactor.comrel.generator/templates/singlefeature.javajet
@@ -0,0 +1,85 @@
+<%@ jet package="comrel.helper" class="SingleFeature"
+imports="comrel.generator.helper.*"%>
+<%HelperInfo helperInfo = (HelperInfo) argument; %>
+/**
+ * <copyright>
+ * </copyright>
+ */
+package <%=helperInfo.getPackageName()%>;
+
+import comrel.extensions.ISingleFeatureHelper;
+import comrel.ComrelFactory;
+import comrel.SingleInputPort;
+import comrel.SingleOutputPort;
+
+/**
+ * Helper class for synchronizing ports in
+ * composite model refactorings specified in CoMReL.
+ * @generated
+ */
+public class <%=helperInfo.getClassName()%> implements ISingleFeatureHelper {
+
+ final ComrelFactory factory = ComrelFactory.eINSTANCE;
+ private SingleInputPort <%=helperInfo.getInputTypeVariable() + "in"%>;
+ private SingleOutputPort <%=helperInfo.getOutputTypeVariable() + "out"%>;
+
+ /**
+ * Default constructor.
+ * @generated
+ */
+ public <%=helperInfo.getClassName()%>() {
+ initInputPort();
+ initOutputPort();
+ }
+
+ /**
+ * Method for setting the input port.
+ * @generated
+ */
+ private void initInputPort() {
+ <%=helperInfo.getInputTypeVariable() + "in"%> = factory.createSingleInputPort();
+ <%=helperInfo.getInputTypeVariable() + "in"%>.setName("<%=helperInfo.getInputTypeVariable() + "in"%>");
+ <%=helperInfo.getInputTypeVariable() + "in"%>.setType(<%=helperInfo.getInputType()%>.class);
+ }
+
+ /**
+ * Method for setting the output port.
+ * @generated
+ */
+ private void initOutputPort(){
+ <%=helperInfo.getOutputTypeVariable() + "out"%> = factory.createSingleOutputPort();
+ <%=helperInfo.getOutputTypeVariable() + "out"%>.setName("<%=helperInfo.getOutputTypeVariable() + "out"%>");
+ <%=helperInfo.getOutputTypeVariable() + "out"%>.setType(<%=helperInfo.getOutputType()%>.class);
+ }
+
+ /**
+ * @generated
+ */
+ @Override
+ public SingleInputPort getInputPort() {
+ return <%=helperInfo.getInputTypeVariable() + "in"%>;
+ }
+
+ /**
+ * @generated
+ */
+ @Override
+ public SingleOutputPort getOutputPort() {
+ return <%=helperInfo.getOutputTypeVariable() + "out"%>;
+ }
+
+ /**
+ * @generated
+ */
+ @Override
+ public void run() {
+ <%=helperInfo.getInputType()%> in = (<%=helperInfo.getInputType()%>) <%=helperInfo.getInputTypeVariable() + "in"%>.getValue();
+ <%=helperInfo.getOutputType()%> out = null;
+
+ // TODO implement logic (replace 'null')
+
+ <%=helperInfo.getOutputTypeVariable() + "out"%>.setValue(out);
+ }
+
+}
+
\ No newline at end of file
diff --git a/org.eclipse.emf.refactor.comrel.generator/templates/singlefilter.javajet b/org.eclipse.emf.refactor.comrel.generator/templates/singlefilter.javajet
new file mode 100644
index 0000000..2eeabf5
--- /dev/null
+++ b/org.eclipse.emf.refactor.comrel.generator/templates/singlefilter.javajet
@@ -0,0 +1,101 @@
+<%@ jet package="comrel.helper" class="SingleFilter"
+imports="comrel.generator.helper.*"%>
+<%HelperInfo helperInfo = (HelperInfo) argument; %>
+/**
+ * <copyright>
+ * </copyright>
+ */
+package <%=helperInfo.getPackageName()%>;
+
+import org.eclipse.emf.common.util.BasicEList;
+import org.eclipse.emf.common.util.EList;
+
+import comrel.extensions.ISingleFilterHelper;
+import comrel.MultiInputPort;
+import comrel.ComrelFactory;
+import comrel.SingleOutputPort;
+
+/**
+ * Helper class for synchronizing ports in
+ * composite model refactorings specified in CoMReL.
+ * @generated
+ */
+public class <%=helperInfo.getClassName()%> implements ISingleFilterHelper {
+
+ final ComrelFactory factory = ComrelFactory.eINSTANCE;
+ private MultiInputPort <%=helperInfo.getInputTypeVariable() + "s"%>;
+ private SingleOutputPort <%=helperInfo.getOutputTypeVariable()%>;
+
+ /**
+ * Default constructor.
+ * @generated
+ */
+ public <%=helperInfo.getClassName()%>() {
+ initInputPort();
+ initOutputPort();
+ }
+
+ /**
+ * Method for setting the input port.
+ * @generated
+ */
+ private void initInputPort() {
+ <%=helperInfo.getInputTypeVariable() + "s"%> = factory.createMultiInputPort();
+ <%=helperInfo.getInputTypeVariable() + "s"%>.setName("<%=helperInfo.getInputTypeVariable() + "s"%>");
+ <%=helperInfo.getInputTypeVariable() + "s"%>.setType(<%=helperInfo.getInputType()%>.class);
+ }
+
+ /**
+ * Method for setting the output port.
+ * @generated
+ */
+ private void initOutputPort(){
+ <%=helperInfo.getOutputTypeVariable()%> = factory.createSingleOutputPort();
+ <%=helperInfo.getOutputTypeVariable()%>.setName("<%=helperInfo.getOutputTypeVariable()%>");
+ <%=helperInfo.getOutputTypeVariable()%>.setType(<%=helperInfo.getOutputType()%>.class);
+ }
+
+ /**
+ * @generated
+ */
+ @Override
+ public MultiInputPort getInputPort() {
+ return <%=helperInfo.getInputTypeVariable() + "s"%>;
+ }
+
+ /**
+ * @generated
+ */
+ @Override
+ public SingleOutputPort getOutputPort() {
+ return <%=helperInfo.getOutputTypeVariable()%>;
+ }
+
+ /**
+ * @generated
+ */
+ @Override
+ public void run() {
+ EList<<%=helperInfo.getInputType()%>> in = setInput();
+ <%=helperInfo.getOutputType()%> out = null;
+
+ // TODO implement logic (replace 'null')
+
+ <%=helperInfo.getOutputTypeVariable()%>.setValue(out);
+ }
+
+ /**
+ * Helper method for extracting input to Java objects.
+ * @generated
+ */
+ private EList<<%=helperInfo.getInputType()%>> setInput() {
+ EList<Object> origin = <%=helperInfo.getInputTypeVariable() + "s"%>.getValue();
+ EList<<%=helperInfo.getInputType()%>> in = new BasicEList<<%=helperInfo.getInputType()%>>();
+ for (Object o : origin) {
+ in.add((<%=helperInfo.getInputType()%>) o);
+ }
+ return in;
+ }
+
+}
+
\ No newline at end of file
diff --git a/org.eclipse.emf.refactor.comrel.interpreter/.classpath b/org.eclipse.emf.refactor.comrel.interpreter/.classpath
new file mode 100644
index 0000000..8a8f166
--- /dev/null
+++ b/org.eclipse.emf.refactor.comrel.interpreter/.classpath
@@ -0,0 +1,7 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<classpath>
+ <classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER/org.eclipse.jdt.internal.debug.ui.launcher.StandardVMType/JavaSE-1.6"/>
+ <classpathentry kind="con" path="org.eclipse.pde.core.requiredPlugins"/>
+ <classpathentry kind="src" path="src"/>
+ <classpathentry kind="output" path="bin"/>
+</classpath>
diff --git a/org.eclipse.emf.refactor.comrel.interpreter/.project b/org.eclipse.emf.refactor.comrel.interpreter/.project
new file mode 100644
index 0000000..4539e24
--- /dev/null
+++ b/org.eclipse.emf.refactor.comrel.interpreter/.project
@@ -0,0 +1,28 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<projectDescription>
+ <name>org.eclipse.emf.refactor.comrel.interpreter</name>
+ <comment></comment>
+ <projects>
+ </projects>
+ <buildSpec>
+ <buildCommand>
+ <name>org.eclipse.jdt.core.javabuilder</name>
+ <arguments>
+ </arguments>
+ </buildCommand>
+ <buildCommand>
+ <name>org.eclipse.pde.ManifestBuilder</name>
+ <arguments>
+ </arguments>
+ </buildCommand>
+ <buildCommand>
+ <name>org.eclipse.pde.SchemaBuilder</name>
+ <arguments>
+ </arguments>
+ </buildCommand>
+ </buildSpec>
+ <natures>
+ <nature>org.eclipse.pde.PluginNature</nature>
+ <nature>org.eclipse.jdt.core.javanature</nature>
+ </natures>
+</projectDescription>
diff --git a/org.eclipse.emf.refactor.comrel.interpreter/.settings/org.eclipse.jdt.core.prefs b/org.eclipse.emf.refactor.comrel.interpreter/.settings/org.eclipse.jdt.core.prefs
new file mode 100644
index 0000000..4cc5168
--- /dev/null
+++ b/org.eclipse.emf.refactor.comrel.interpreter/.settings/org.eclipse.jdt.core.prefs
@@ -0,0 +1,8 @@
+#Wed Sep 21 12:22:23 CEST 2011
+eclipse.preferences.version=1
+org.eclipse.jdt.core.compiler.codegen.inlineJsrBytecode=enabled
+org.eclipse.jdt.core.compiler.codegen.targetPlatform=1.6
+org.eclipse.jdt.core.compiler.compliance=1.6
+org.eclipse.jdt.core.compiler.problem.assertIdentifier=error
+org.eclipse.jdt.core.compiler.problem.enumIdentifier=error
+org.eclipse.jdt.core.compiler.source=1.6
diff --git a/org.eclipse.emf.refactor.comrel.interpreter/META-INF/MANIFEST.MF b/org.eclipse.emf.refactor.comrel.interpreter/META-INF/MANIFEST.MF
new file mode 100644
index 0000000..05e49ba
--- /dev/null
+++ b/org.eclipse.emf.refactor.comrel.interpreter/META-INF/MANIFEST.MF
@@ -0,0 +1,21 @@
+Manifest-Version: 1.0
+Bundle-ManifestVersion: 2
+Bundle-Name: CoMReL Interpreter
+Bundle-SymbolicName: org.eclipse.emf.refactor.comrel.interpreter;singleton:=true
+Bundle-Version: 0.9.0
+Bundle-Activator: comrel.interpreter.Activator
+Require-Bundle: org.eclipse.ui,
+ org.eclipse.core.runtime,
+ org.eclipse.emf.ecore;bundle-version="2.6.1",
+ org.eclipse.ltk.core.refactoring;bundle-version="3.5.100",
+ org.eclipse.core.resources;bundle-version="3.6.0",
+ org.eclipse.emf.refactor.comrel;bundle-version="0.8.0",
+ org.eclipse.uml2.uml;bundle-version="3.1.1",
+ org.eclipse.emf.refactor.refactoring;bundle-version="0.7.0",
+ org.eclipse.emf.refactor.refactoring.runtime;bundle-version="0.7.0"
+Bundle-ActivationPolicy: lazy
+Bundle-RequiredExecutionEnvironment: JavaSE-1.6
+Import-Package: org.eclipse.emf.ecore.change,
+ org.eclipse.emf.ecore.change.util,
+ org.eclipse.emf.ecore.xmi.impl
+Export-Package: comrel.interpreter
diff --git a/org.eclipse.emf.refactor.comrel.interpreter/bin/.gitignore b/org.eclipse.emf.refactor.comrel.interpreter/bin/.gitignore
new file mode 100644
index 0000000..508dbce
--- /dev/null
+++ b/org.eclipse.emf.refactor.comrel.interpreter/bin/.gitignore
@@ -0,0 +1 @@
+/comrel
diff --git a/org.eclipse.emf.refactor.comrel.interpreter/build.properties b/org.eclipse.emf.refactor.comrel.interpreter/build.properties
new file mode 100644
index 0000000..9a45d01
--- /dev/null
+++ b/org.eclipse.emf.refactor.comrel.interpreter/build.properties
@@ -0,0 +1,7 @@
+source.. = src/
+output.. = bin/
+bin.includes = META-INF/,\
+ .,\
+ src/,\
+ bin/,\
+ models/
diff --git a/org.eclipse.emf.refactor.comrel.interpreter/models/My.uml b/org.eclipse.emf.refactor.comrel.interpreter/models/My.uml
new file mode 100644
index 0000000..93d53b1
--- /dev/null
+++ b/org.eclipse.emf.refactor.comrel.interpreter/models/My.uml
@@ -0,0 +1,9 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<uml:Model xmi:version="2.1" xmlns:xmi="http://schema.omg.org/spec/XMI/2.1" xmlns:uml="http://www.eclipse.org/uml2/3.0.0/UML" xmi:id="_6k19IONfEeCEPcyQkl_0QQ" name="testmodel">
+ <packagedElement xmi:type="uml:Package" xmi:id="_-g_poONfEeCEPcyQkl_0QQ" name="mypackage">
+ <packagedElement xmi:type="uml:Class" xmi:id="_BHkqUONgEeCEPcyQkl_0QQ" name="MyClass">
+ <ownedAttribute xmi:id="_DXISIONgEeCEPcyQkl_0QQ" name="myattribute"/>
+ <ownedOperation xmi:id="_guOeQON8EeCEPcyQkl_0QQ" name="op"/>
+ </packagedElement>
+ </packagedElement>
+</uml:Model>
diff --git a/org.eclipse.emf.refactor.comrel.interpreter/models/extractsuperclass.comrel b/org.eclipse.emf.refactor.comrel.interpreter/models/extractsuperclass.comrel
new file mode 100644
index 0000000..b2b2744
--- /dev/null
+++ b/org.eclipse.emf.refactor.comrel.interpreter/models/extractsuperclass.comrel
@@ -0,0 +1,82 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<comrel:CompositeRefactoring xmi:version="2.0" xmlns:xmi="http://www.omg.org/XMI" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:comrel="http://comrel/0.1" name="ExtractSuperclass" refId="comrel.extractsuperclass" label="ExtractSuperclass" namespaceUri="http://www.eclipse.org/uml2/3.0.0/UML">
+ <mainRefactoringUnit xsi:type="comrel:SequentialUnit" name="ExtractSuperclass">
+ <helperUnits xsi:type="comrel:SingleFilterUnit" name="GetFirstClass" helperUnitId="comrel.getfirstclass" namespaceUri="http://www.eclipse.org/uml2/3.0.0/UML" singleFilterHelper="//@helper.0">
+ <inputPort name="classes" type="org.eclipse.uml2.uml.Class"/>
+ <outputPort name="umlclass" type="org.eclipse.uml2.uml.Class"/>
+ </helperUnits>
+ <helperUnits xsi:type="comrel:MultiFeatureUnit" name="GetOwnedAttributes" helperUnitId="comrel.getownedattributes" namespaceUri="http://www.eclipse.org/uml2/3.0.0/UML" multiFeatureHelper="//@helper.1">
+ <inputPort name="umlclass" type="org.eclipse.uml2.uml.Class"/>
+ <outputPort name="attributes" type="org.eclipse.uml2.uml.Property"/>
+ </helperUnits>
+ <helperUnits xsi:type="comrel:MultiFeatureUnit" name="GetOwnedOperations" helperUnitId="comrel.getownedoperations" namespaceUri="http://www.eclipse.org/uml2/3.0.0/UML" multiFeatureHelper="//@helper.2">
+ <inputPort name="umlclass" type="org.eclipse.uml2.uml.Class"/>
+ <outputPort name="operations" type="org.eclipse.uml2.uml.Operation"/>
+ </helperUnits>
+ <refactoringUnits xsi:type="comrel:SingleQueuedUnit" name="CreateSuperclass" seqExecutionOrder="1">
+ <refactoringUnit xsi:type="comrel:AtomicUnit" name="CreateSuperclass" unitId="comrel.createsuperclass" label="CreateSuperclass" namespaceUri="http://www.eclipse.org/uml2/3.0.0/UML" modelRefactoring="//@modelRefactorings.0">
+ <inputPorts name="classname" description="" type="java.lang.String"/>
+ <inputPorts name="selectedEObject" description="" type="org.eclipse.uml2.uml.Class"/>
+ </refactoringUnit>
+ <singleInputPorts name="classname" type="java.lang.String"/>
+ <multiInputPort name="classes" type="org.eclipse.uml2.uml.Class"/>
+ </refactoringUnits>
+ <refactoringUnits xsi:type="comrel:SingleQueuedUnit" name="PullUpAttributes" seqExecutionOrder="2" strict="false" lblStrict="non strict">
+ <refactoringUnit xsi:type="comrel:AtomicUnit" name="PullUpAttribute" unitId="comrel.pullupattribute" label="PullUpAttribute" namespaceUri="http://www.eclipse.org/uml2/3.0.0/UML" modelRefactoring="//@modelRefactorings.1">
+ <inputPorts name="classname" description="" type="java.lang.String"/>
+ <inputPorts name="selectedEObject" description="" type="org.eclipse.uml2.uml.Property"/>
+ </refactoringUnit>
+ <singleInputPorts name="classname" type="java.lang.String"/>
+ <multiInputPort name="attributes" type="org.eclipse.uml2.uml.Property"/>
+ </refactoringUnits>
+ <refactoringUnits xsi:type="comrel:SingleQueuedUnit" name="PullUpOperations" seqExecutionOrder="3" strict="false" lblStrict="non strict">
+ <refactoringUnit xsi:type="comrel:AtomicUnit" name="PullUpOperation" unitId="comrel.pullupoperation" label="PullUpOperation" namespaceUri="http://www.eclipse.org/uml2/3.0.0/UML" modelRefactoring="//@modelRefactorings.2">
+ <inputPorts name="classname" description="" type="java.lang.String"/>
+ <inputPorts name="selectedEObject" description="" type="org.eclipse.uml2.uml.Operation"/>
+ </refactoringUnit>
+ <singleInputPorts name="classname" type="java.lang.String"/>
+ <multiInputPort name="operations" type="org.eclipse.uml2.uml.Operation"/>
+ </refactoringUnits>
+ <inputPorts xsi:type="comrel:MultiInputPort" name="classes" type="org.eclipse.uml2.uml.Class"/>
+ <inputPorts xsi:type="comrel:SingleInputPort" name="superclassname" type="java.lang.String"/>
+ </mainRefactoringUnit>
+ <portMappings xsi:type="comrel:MultiSinglePortMapping" source="//@mainRefactoringUnit/@refactoringUnits.0/@multiInputPort" target="//@mainRefactoringUnit/@refactoringUnits.0/@refactoringUnit/@inputPorts.1"/>
+ <portMappings xsi:type="comrel:SinglePortMapping" source="//@mainRefactoringUnit/@refactoringUnits.0/@singleInputPorts.0" target="//@mainRefactoringUnit/@refactoringUnits.0/@refactoringUnit/@inputPorts.0"/>
+ <portMappings xsi:type="comrel:MultiSinglePortMapping" source="//@mainRefactoringUnit/@refactoringUnits.1/@multiInputPort" target="//@mainRefactoringUnit/@refactoringUnits.1/@refactoringUnit/@inputPorts.1"/>
+ <portMappings xsi:type="comrel:SinglePortMapping" source="//@mainRefactoringUnit/@refactoringUnits.1/@singleInputPorts.0" target="//@mainRefactoringUnit/@refactoringUnits.1/@refactoringUnit/@inputPorts.0"/>
+ <portMappings xsi:type="comrel:MultiSinglePortMapping" source="//@mainRefactoringUnit/@refactoringUnits.2/@multiInputPort" target="//@mainRefactoringUnit/@refactoringUnits.2/@refactoringUnit/@inputPorts.1"/>
+ <portMappings xsi:type="comrel:SinglePortMapping" source="//@mainRefactoringUnit/@refactoringUnits.2/@singleInputPorts.0" target="//@mainRefactoringUnit/@refactoringUnits.2/@refactoringUnit/@inputPorts.0"/>
+ <portMappings xsi:type="comrel:MultiPortMapping" source="//@mainRefactoringUnit/@inputPorts.0" target="//@mainRefactoringUnit/@refactoringUnits.0/@multiInputPort"/>
+ <portMappings xsi:type="comrel:MultiPortMapping" source="//@mainRefactoringUnit/@inputPorts.0" target="//@mainRefactoringUnit/@helperUnits.0/@inputPort"/>
+ <portMappings xsi:type="comrel:SinglePortMapping" source="//@mainRefactoringUnit/@inputPorts.1" target="//@mainRefactoringUnit/@refactoringUnits.1/@singleInputPorts.0"/>
+ <portMappings xsi:type="comrel:SinglePortMapping" source="//@mainRefactoringUnit/@inputPorts.1" target="//@mainRefactoringUnit/@refactoringUnits.0/@singleInputPorts.0"/>
+ <portMappings xsi:type="comrel:SinglePortMapping" source="//@mainRefactoringUnit/@inputPorts.1" target="//@mainRefactoringUnit/@refactoringUnits.2/@singleInputPorts.0"/>
+ <portMappings xsi:type="comrel:SinglePortMapping" source="//@mainRefactoringUnit/@helperUnits.0/@outputPort" target="//@mainRefactoringUnit/@helperUnits.1/@inputPort"/>
+ <portMappings xsi:type="comrel:SinglePortMapping" source="//@mainRefactoringUnit/@helperUnits.0/@outputPort" target="//@mainRefactoringUnit/@helperUnits.2/@inputPort"/>
+ <portMappings xsi:type="comrel:MultiPortMapping" source="//@mainRefactoringUnit/@helperUnits.1/@outputPort" target="//@mainRefactoringUnit/@refactoringUnits.1/@multiInputPort"/>
+ <portMappings xsi:type="comrel:MultiPortMapping" source="//@mainRefactoringUnit/@helperUnits.2/@outputPort" target="//@mainRefactoringUnit/@refactoringUnits.2/@multiInputPort"/>
+ <modelRefactorings name="CreateSuperclass" refId="comrel.createsuperclass" label="CreateSuperclass" namespaceUri="http://www.eclipse.org/uml2/3.0.0/UML">
+ <inputPorts name="classname" description="" type="java.lang.String"/>
+ <inputPorts name="selectedEObject" description="" type="org.eclipse.uml2.uml.Class"/>
+ </modelRefactorings>
+ <modelRefactorings name="PullUpAttribute" refId="comrel.pullupattribute" label="PullUpAttribute" namespaceUri="http://www.eclipse.org/uml2/3.0.0/UML">
+ <inputPorts name="classname" description="" type="java.lang.String"/>
+ <inputPorts name="selectedEObject" description="" type="org.eclipse.uml2.uml.Property"/>
+ </modelRefactorings>
+ <modelRefactorings name="PullUpOperation" refId="comrel.pullupoperation" label="PullUpOperation" namespaceUri="http://www.eclipse.org/uml2/3.0.0/UML">
+ <inputPorts name="classname" description="" type="java.lang.String"/>
+ <inputPorts name="selectedEObject" description="" type="org.eclipse.uml2.uml.Operation"/>
+ </modelRefactorings>
+ <helper xsi:type="comrel:SingleFilterHelper" name="GetFirstClass" helperId="comrel.getfirstclass" namespaceUri="http://www.eclipse.org/uml2/3.0.0/UML">
+ <inputPort name="classes" type="org.eclipse.uml2.uml.Class"/>
+ <outputPort name="umlclass" type="org.eclipse.uml2.uml.Class"/>
+ </helper>
+ <helper xsi:type="comrel:MultiFeatureHelper" name="GetOwnedAttributes" helperId="comrel.getownedattributes" namespaceUri="http://www.eclipse.org/uml2/3.0.0/UML">
+ <inputPort name="umlclass" type="org.eclipse.uml2.uml.Class"/>
+ <outputPort name="attributes" type="org.eclipse.uml2.uml.Property"/>
+ </helper>
+ <helper xsi:type="comrel:MultiFeatureHelper" name="GetOwnedOperations" helperId="comrel.getownedoperations" namespaceUri="http://www.eclipse.org/uml2/3.0.0/UML">
+ <inputPort name="umlclass" type="org.eclipse.uml2.uml.Class"/>
+ <outputPort name="operations" type="org.eclipse.uml2.uml.Operation"/>
+ </helper>
+</comrel:CompositeRefactoring>
diff --git a/org.eclipse.emf.refactor.comrel.interpreter/src/comrel/interpreter/Activator.java b/org.eclipse.emf.refactor.comrel.interpreter/src/comrel/interpreter/Activator.java
new file mode 100644
index 0000000..07ac7f3
--- /dev/null
+++ b/org.eclipse.emf.refactor.comrel.interpreter/src/comrel/interpreter/Activator.java
@@ -0,0 +1,50 @@
+package comrel.interpreter;
+
+import org.eclipse.ui.plugin.AbstractUIPlugin;
+import org.osgi.framework.BundleContext;
+
+/**
+ * The activator class controls the plug-in life cycle
+ */
+public class Activator extends AbstractUIPlugin {
+
+ // The plug-in ID
+ public static final String PLUGIN_ID = "org.eclipse.emf.refactor.comrel.interpreter"; //$NON-NLS-1$
+
+ // The shared instance
+ private static Activator plugin;
+
+ /**
+ * The constructor
+ */
+ public Activator() {
+ }
+
+ /*
+ * (non-Javadoc)
+ * @see org.eclipse.ui.plugin.AbstractUIPlugin#start(org.osgi.framework.BundleContext)
+ */
+ public void start(BundleContext context) throws Exception {
+ super.start(context);
+ plugin = this;
+ }
+
+ /*
+ * (non-Javadoc)
+ * @see org.eclipse.ui.plugin.AbstractUIPlugin#stop(org.osgi.framework.BundleContext)
+ */
+ public void stop(BundleContext context) throws Exception {
+ plugin = null;
+ super.stop(context);
+ }
+
+ /**
+ * Returns the shared instance
+ *
+ * @return the shared instance
+ */
+ public static Activator getDefault() {
+ return plugin;
+ }
+
+}
diff --git a/org.eclipse.emf.refactor.comrel.interpreter/src/comrel/interpreter/ComrelInterpreter.java b/org.eclipse.emf.refactor.comrel.interpreter/src/comrel/interpreter/ComrelInterpreter.java
new file mode 100644
index 0000000..c021ffb
--- /dev/null
+++ b/org.eclipse.emf.refactor.comrel.interpreter/src/comrel/interpreter/ComrelInterpreter.java
@@ -0,0 +1,683 @@
+package comrel.interpreter;
+
+import java.io.File;
+import java.io.IOException;
+import java.util.ArrayList;
+import java.util.Collections;
+import java.util.HashSet;
+import java.util.LinkedList;
+import java.util.List;
+import java.util.Set;
+
+import org.eclipse.core.runtime.CoreException;
+import org.eclipse.core.runtime.IConfigurationElement;
+import org.eclipse.core.runtime.NullProgressMonitor;
+import org.eclipse.core.runtime.OperationCanceledException;
+import org.eclipse.core.runtime.Platform;
+import org.eclipse.emf.common.util.EList;
+import org.eclipse.emf.common.util.URI;
+import org.eclipse.emf.ecore.EObject;
+import org.eclipse.emf.ecore.EPackage;
+import org.eclipse.emf.ecore.change.ChangeDescription;
+import org.eclipse.emf.ecore.change.util.ChangeRecorder;
+import org.eclipse.emf.ecore.resource.Resource;
+import org.eclipse.emf.ecore.resource.ResourceSet;
+import org.eclipse.emf.ecore.resource.impl.ResourceSetImpl;
+import org.eclipse.emf.ecore.util.EcoreUtil;
+import org.eclipse.emf.ecore.xmi.impl.XMIResourceFactoryImpl;
+import org.eclipse.emf.refactor.refactoring.core.Refactoring;
+import org.eclipse.emf.refactor.refactoring.managers.RefactoringManager;
+import org.eclipse.emf.refactor.refactoring.runtime.ltk.LtkEmfRefactoringProcessorAdapter;
+
+import comrel.AtomicUnit;
+import comrel.CompositeRefactoring;
+import comrel.ComrelPackage;
+import comrel.Helper;
+import comrel.HelperUnit;
+import comrel.InputPort;
+import comrel.MultiFeatureHelper;
+import comrel.MultiFeatureUnit;
+import comrel.MultiFilterHelper;
+import comrel.MultiFilterUnit;
+import comrel.MultiInputPort;
+import comrel.MultiPort;
+import comrel.MultiPortMapping;
+import comrel.Port;
+import comrel.PortMapping;
+import comrel.RefactoringUnit;
+import comrel.SequentialUnit;
+import comrel.SingleFeatureHelper;
+import comrel.SingleFeatureUnit;
+import comrel.SingleFilterHelper;
+import comrel.SingleFilterUnit;
+import comrel.SingleInputPort;
+import comrel.SinglePort;
+import comrel.SinglePortMapping;
+import comrel.SingleQueuedUnit;
+import comrel.extensions.IMultiFeatureHelper;
+import comrel.extensions.IMultiFilterHelper;
+import comrel.extensions.ISingleFeatureHelper;
+import comrel.extensions.ISingleFilterHelper;
+import comrel.util.ExtensionPointInfo;
+import comrel.util.RegistryUtil;
+
+public class ComrelInterpreter {
+
+ private LinkedList<Refactoring> emfRefactorings = new LinkedList<Refactoring>();
+ private Set<Helper> helper = new HashSet<Helper>();
+ private CompositeRefactoring compositeRefactoring;
+ private RefactoringUnit mainRefactoringUnit;
+ private EObject rootObject;
+ private boolean checkPreconditions = true;
+
+ public ComrelInterpreter(EObject eObject) {
+ this.rootObject = EcoreUtil.getRootContainer(eObject);
+ registerComrel();
+ setEmfRefactorings();
+ setHelper();
+ }
+
+ public RefactoringUnit getRootRefactoringUnit() {
+ return mainRefactoringUnit;
+ }
+
+ public void loadComrelModel(String fileName) throws IOException {
+ URI uri = URI.createFileURI(new File(fileName).getAbsolutePath());
+ ResourceSet resourceSet = new ResourceSetImpl();
+ Resource resource = resourceSet.createResource(uri);
+ resource.load(Collections.EMPTY_MAP);
+ compositeRefactoring = (CompositeRefactoring) resource.getContents().get(0);
+ mainRefactoringUnit = compositeRefactoring.getMainRefactoringUnit();
+ if ((compositeRefactoring.getCustomInitialCondition() == null
+ || compositeRefactoring.getCustomInitialCondition().isEmpty())
+ && (compositeRefactoring.getCustomFinalCondition() == null
+ || compositeRefactoring.getCustomFinalCondition().isEmpty())) {
+ // There are no precondition checks for the composite refactoring:
+ // set 'checkPreconditions' to true to check peconditions inside!
+ checkPreconditions = true;
+ } else {
+ checkPreconditions = false;
+ }
+ }
+
+ public void execute() {
+ executeRefactoringUnit(this.mainRefactoringUnit);
+ }
+
+ // needed
+ private void registerComrel() {
+ EPackage.Registry.INSTANCE
+ .put(ComrelPackage.eNS_URI, ComrelPackage.eINSTANCE);
+ Resource.Factory.Registry.INSTANCE.getExtensionToFactoryMap()
+ .put("comrel", new XMIResourceFactoryImpl());
+ }
+
+ // needed
+ private void setEmfRefactorings() {
+ this.emfRefactorings = RefactoringManager.getAllRefactorings();
+ }
+
+ // needed
+ private void setHelper() {
+ helper.addAll(RegistryUtil.loadMultiFeatureHelper());
+ helper.addAll(RegistryUtil.loadMultiFilterHelper());
+ helper.addAll(RegistryUtil.loadSingleFeatureHelper());
+ helper.addAll(RegistryUtil.loadSingleFilterHelper());
+ }
+
+ // needed
+ private boolean executeRefactoringUnit(RefactoringUnit refactoringUnit) {
+ boolean success = false;
+ if (refactoringUnit instanceof AtomicUnit) {
+ success = executeAtomicUnit((AtomicUnit) refactoringUnit);
+ }
+ if (refactoringUnit instanceof SingleQueuedUnit) {
+ success = executeSingleQueuedUnit((SingleQueuedUnit)refactoringUnit);
+ }
+ if (refactoringUnit instanceof SequentialUnit) {
+ success = executeSequentialUnit((SequentialUnit) refactoringUnit);
+ }
+ return success;
+ }
+
+ private boolean executeAtomicUnit(AtomicUnit atomicUnit) {
+ boolean success = false;
+// System.out.println("---------------------------");
+// System.out.println("Start execution of AtomicUnit");
+// System.out.println("1 - Load corresponding EmfRefactoring");
+ Refactoring atomicRefactoring = getEmfRefactoringFromAtomicUnit(atomicUnit);
+ if (atomicRefactoring == null) {
+ System.out.println("Throw new EmfRefactoringNotFoundException()");
+ } else {
+// System.out.println("EmfRefactoring: " + atomicRefactoring.getName());
+ }
+// System.out.println("2 - Pass port values to EmfRefactoring");
+ passPortValues(atomicUnit, atomicRefactoring);
+// System.out.println("3 - Check initial and final conditions");
+// System.out.println("Controller null?: "
+// + (atomicRefactoring.getController() == null));
+// System.out.println("Processor null?: "
+// + (atomicRefactoring.getController().getLtkRefactoringProcessor() == null));
+// System.out.println("SetSelection to initialize Processor");
+ // new
+ List<EObject> selection = new ArrayList<EObject>();
+ if (atomicRefactoring
+ .getController()
+ .getDataManagementObject()
+ .getInPortByName("selectedEObject").getValue()
+ instanceof EObject) {
+ selection.add((EObject) atomicRefactoring
+ .getController()
+ .getDataManagementObject()
+ .getInPortByName("selectedEObject")
+ .getValue());
+ }
+ if (atomicRefactoring
+ .getController()
+ .getDataManagementObject()
+ .getInPortByName("selectedEObject").getValue()
+ instanceof IEObjectGetter) {
+ selection.add(((IEObjectGetter) atomicRefactoring
+ .getController()
+ .getDataManagementObject()
+ .getInPortByName("selectedEObject")
+ .getValue()).getEObject());
+ }
+ // end new
+ atomicRefactoring.getController().setSelection(selection);
+// System.out.println("Processor null?: "
+// + (atomicRefactoring.getController().getLtkRefactoringProcessor() == null));
+ LtkEmfRefactoringProcessorAdapter refactoringProcessor =
+ (LtkEmfRefactoringProcessorAdapter)
+ atomicRefactoring.getController().getLtkRefactoringProcessor();
+// System.out.println("RefactoringProcessor: " + refactoringProcessor.toString());
+ // NEW: check preconditions if specified by flag
+ if (checkPreconditions) {
+ if (! refactoringProcessor.checkConditions()) {
+// System.out.println("AtomicUnit was NOT executed successfully!");
+ return success;
+ }
+ }
+ // either: no precondition check
+ // or: successful precondition check
+ // -> execute refactoring!
+ try {
+ refactoringProcessor.createChange
+ (new NullProgressMonitor()).perform(new NullProgressMonitor());
+ } catch (OperationCanceledException e) {
+// System.out.println("AtomicUnit was NOT executed successfully!");
+ e.printStackTrace();
+ } catch (CoreException e) {
+// System.out.println("AtomicUnit was NOT executed successfully!");
+ e.printStackTrace();
+ }
+// System.out.println("AtomicUnit was executed successfully!");
+ success = true;
+// System.out.println("End execution of AtomicUnit");
+// System.out.println("---------------------------");
+ return success;
+ }
+
+ private boolean executeSequentialUnit(SequentialUnit sequentialUnit) {
+ boolean success = true;
+// System.out.println("---------------------------");
+// System.out.println("Start execution of SequentialUnit");
+// System.out.println("---------------------------");
+// System.out.println("1 - Set entire port values");
+// System.out.println("1 a - Do port mapping of each main input port");
+ for (InputPort ip : sequentialUnit.getInputPorts()) {
+// System.out.println("1 a i - Get port mapping from input port");
+ List<PortMapping> pms = getPortMappingsFromSourcePort(sequentialUnit, ip);
+ for (PortMapping pm : pms) {
+// System.out.println(" - PortMapping (source): " + pm.getSource());
+// System.out.println(" - PortMapping (target): " + pm.getTarget());
+// System.out.println("1 a ii - do port mapping");
+ doPortMapping(pm);
+// System.out.println(" - PortMapping (source): " + pm.getSource());
+// System.out.println(" - PortMapping (target): " + pm.getTarget());
+ }
+ }
+// System.out.println("1 b - Execute each helper");
+ int numberOfHelpers = sequentialUnit.getHelperUnits().size();
+ boolean allHelpersExecuted = false;
+ while(!allHelpersExecuted) {
+ int numberOfExecutedHelpers = 0;
+ for (HelperUnit hu : sequentialUnit.getHelperUnits()) {
+// System.out.println("1 b i - Execute helper with set input port");
+ boolean helperInputPortsSet = checkPortValuesSetInHelperUnit(hu);
+// System.out.println(" - helperInputPortsSet: " + helperInputPortsSet);
+ if (helperInputPortsSet) {
+ executeHelperUnit(hu);
+// System.out.println("1 b iii - Do mappings from helper output ports");
+// System.out.println(" - Get port mapping from output port");
+ List<PortMapping> pms = getPortMappingsFromSourcePort(sequentialUnit, hu.getOutputPort());
+ for (PortMapping pm : pms) {
+// System.out.println(" - PortMapping (source): " + pm.getSource());
+// System.out.println(" - PortMapping (target): " + pm.getTarget());
+// System.out.println(" - do PortMapping");
+ doPortMapping(pm);
+// System.out.println(" - PortMapping (source): " + pm.getSource());
+// System.out.println(" - PortMapping (target): " + pm.getTarget());
+
+ }
+ numberOfExecutedHelpers++;
+ }
+ }
+ allHelpersExecuted = (numberOfExecutedHelpers == numberOfHelpers);
+ }
+// System.out.println("2 - Init variables");
+// System.out.println("2 a - Set flag with respect to a strict execution");
+ final boolean strict = sequentialUnit.isStrict();
+// System.out.println(" Execution is strict: " + strict);
+// System.out.println("2 b - Set max number of child units");
+ int max = sequentialUnit.getRefactoringUnits().size();
+// System.out.println(" Max number of child units: " + max);
+// System.out.println("3 - Execute child units");
+ // prepare rollback
+ ChangeRecorder changeRecorder = new ChangeRecorder(rootObject);
+ for (int i = 1; i <= max; i++) {
+// System.out.println(" -> Execution no: " + i);
+ RefactoringUnit ru = getRefactoringUnitByIndex(sequentialUnit, i);
+// System.out.println(" - Execute child unit: " + ru);
+ Boolean childSuccess = executeRefactoringUnit(ru);
+// System.out.println(" - Result execution: " + childSuccess);
+ if (strict && ! childSuccess) {
+ // rollback
+ ChangeDescription changeDescription = changeRecorder.endRecording();
+ changeDescription.apply();
+ // end rollback
+ success = false;
+ break;
+ }
+ }
+ if (success) {
+// System.out.println("SequentialUnit was executed successfully!");
+ } else {
+// System.out.println("SequentialUnit was NOT executed successfully!");
+ }
+// System.out.println("---------------------------");
+// System.out.println("End execution of SequentialUnit");
+// System.out.println("---------------------------");
+ return success;
+ }
+
+ private boolean executeSingleQueuedUnit(SingleQueuedUnit singleQueuedUnit) {
+ boolean success = true;
+// System.out.println("---------------------------");
+// System.out.println("Start execution of SingleQueudUnit");
+// System.out.println("1 - Set flag with respect to a strict execution");
+ final boolean strict = singleQueuedUnit.isStrict();
+// System.out.println("Execution is strict: " + strict);
+// System.out.println("2 - Set max number of child unit executions");
+ int max = singleQueuedUnit.getMultiInputPort().getValue().size();
+// System.out.println("Max number of child unit executions: " + max);
+ // prepare rollback
+ ChangeRecorder changeRecorder = new ChangeRecorder(rootObject);
+ for (int i = 0; i < max; i++) {
+// System.out.println("--- Execution no: " + i);
+// System.out.println("3 (a) - Pass port values to child unit");
+// System.out.println("- Get MultiInputPort from parent unit");
+ MultiInputPort mip = singleQueuedUnit.getMultiInputPort();
+// System.out.println("- MultiInputPort (Name/Type): " + mip.getName() + "; " + mip.getType());
+// System.out.println("- Get corresponding PortMapping");
+ PortMapping pm = getPortMappingFromSourcePort(singleQueuedUnit, mip);
+// System.out.println("- PortMapping (source): " + pm.getSource());
+// System.out.println("- PortMapping (target): " + pm.getTarget());
+// System.out.println("- Pass value " + i + " from MultiInputPort to SingleInputPort");
+ if (mip.getValue().get(i) == null) {
+// System.out.println("-> null value on port position " + i + ": continue");
+ continue;
+ }
+ if ((((EObject)mip.getValue().get(i)).eResource() == null)
+ || (((EObject)mip.getValue().get(i)).eResource().getResourceSet() == null)){
+// System.out.println("-> null ressource/ressourceset on port position " + i + ": continue");
+ continue;
+ }
+ passValueFromMultiInputPortToSingleInputPort(pm, i);
+// System.out.println("- Get all InputPorts from childUnit");
+ EList<InputPort> inputPorts =
+ singleQueuedUnit.getRefactoringUnit().getAllInputPorts();
+// System.out.println("- Total Number of InputPorts of childUnit: " + inputPorts.size());
+// System.out.println("- Pass value to secondary input ports");
+ for (InputPort ip : inputPorts) {
+ if (((SingleInputPort)ip).getValue() == null) {
+// System.out.println("- Get corresponding PortMapping");
+ PortMapping pmTemp = getPortMappingFromTargetPort(singleQueuedUnit, ip);
+// System.out.println("- PortMapping (source): " + pmTemp.getSource());
+// System.out.println("- PortMapping (target): " + pmTemp.getTarget());
+ doPortMapping(pmTemp);
+ }
+ }
+// System.out.println("-- Types and Values of all input ports of child unit:");
+// for (InputPort ip : singleQueuedUnit.getRefactoringUnit().getAllInputPorts()) {
+// System.out.print("-- " + ip.getName() + " / ");
+// if (ip instanceof SingleInputPort) {
+// System.out.println(((SingleInputPort)ip).getValue());
+// } else {
+// System.out.println(((MultiInputPort)ip).getValue());
+// }
+// }
+// System.out.println("---> CALL: Execute Child Unit");
+ Boolean childSuccess = executeRefactoringUnit(singleQueuedUnit.getRefactoringUnit());
+ if (strict && ! childSuccess) {
+ // rollback
+ ChangeDescription changeDescription = changeRecorder.endRecording();
+ changeDescription.apply();
+ // end rollback
+ success = false;
+ break;
+ }
+ }
+// if (success) {
+// System.out.println("SingleQueudUnit was executed successfully!");
+// } else {
+// System.out.println("SingleQueudUnit was NOT executed successfully!");
+// }
+// System.out.println("---------------------------");
+// System.out.println("End execution of SingleQueudUnit");
+// System.out.println("---------------------------");
+ return success;
+ }
+
+ // needed
+ private void doPortMapping(PortMapping pm) {
+ if (pm instanceof SinglePortMapping) {
+ SinglePort source = ((SinglePortMapping) pm).getSource();
+ SinglePort target = ((SinglePortMapping) pm).getTarget();
+ target.setValue(source.getValue());
+ }
+ if (pm instanceof MultiPortMapping) {
+ MultiPort mip = ((MultiPortMapping) pm).getSource();
+ MultiPort sip = ((MultiPortMapping) pm).getTarget();
+ sip.getValue().clear();
+ sip.getValue().addAll(mip.getValue());
+ }
+ }
+
+ // needed
+ private void runHelper(HelperUnit hu, Helper h) {
+ if (h instanceof SingleFilterHelper) {
+ ISingleFilterHelper isfih = getISingleFilterHelperFromSingleFilterHelper((SingleFilterHelper) h);
+ if (isfih != null) {
+// System.out.println(" - output value before: " + isfih.getOutputPort().getValue());
+ isfih.getInputPort().getValue().addAll(((SingleFilterUnit)hu).getInputPort().getValue());
+ // TODO pass secondary port values -> change Interface ISingleFilterHelper...
+ isfih.run();
+// System.out.println(" - output value after: " + isfih.getOutputPort().getValue());
+// System.out.println(" - set output value to helper unit");
+ ((SingleFilterUnit)hu).getOutputPort().setValue(isfih.getOutputPort().getValue());
+ }
+ }
+ if (h instanceof MultiFeatureHelper) {
+ IMultiFeatureHelper imfeh = getIMultiFeatureHelperFromMultiFeatureHelper((MultiFeatureHelper) h);
+ if (imfeh != null) {
+// System.out.println(" - output value before: " + imfeh.getOutputPort().getValue());
+ imfeh.getInputPort().setValue(((MultiFeatureUnit)hu).getInputPort().getValue());
+ imfeh.run();
+// System.out.println(" - output value after: " + imfeh.getOutputPort().getValue());
+// System.out.println(" - set output value to helper unit");
+ ((MultiFeatureUnit)hu).getOutputPort().getValue().addAll(imfeh.getOutputPort().getValue());
+ }
+ }
+ if (h instanceof SingleFeatureHelper) {
+ ISingleFeatureHelper isfeh = getISingleFeatureHelperFromSingleFeatureHelper((SingleFeatureHelper) h);
+ if (isfeh != null) {
+// System.out.println(" - output value before: " + isfeh.getOutputPort().getValue());
+ isfeh.getInputPort().setValue(((SingleFeatureUnit)hu).getInputPort().getValue());
+ isfeh.run();
+// System.out.println(" - output value after: " + isfeh.getOutputPort().getValue());
+// System.out.println(" - set output value to helper unit");
+ ((SingleFeatureUnit)hu).getOutputPort().setValue(isfeh.getOutputPort().getValue());
+ }
+ }
+ if (h instanceof MultiFilterHelper) {
+ IMultiFilterHelper imfih = getIMultiFilterHelperFromMultiFilterHelper((MultiFilterHelper) h);
+ if (imfih != null) {
+// System.out.println(" - output value before: " + imfih.getOutputPort().getValue());
+ imfih.getInputPort().getValue().addAll(((MultiFilterUnit)hu).getInputPort().getValue());
+ // TODO pass secondary port values -> change Interface IMultiFilterHelper...
+ imfih.run();
+// System.out.println(" - output value after: " + imfih.getOutputPort().getValue());
+// System.out.println(" - set output value to helper unit");
+ ((MultiFilterUnit)hu).getOutputPort().getValue().addAll(imfih.getOutputPort().getValue());
+ }
+ }
+ }
+
+ private IMultiFilterHelper getIMultiFilterHelperFromMultiFilterHelper(
+ MultiFilterHelper h) {
+// System.out.println("1 b ii - Load Interface IMultiFilterHelper");
+ IConfigurationElement[] iMultiFilterHelpers = Platform.getExtensionRegistry()
+ .getConfigurationElementsFor(ExtensionPointInfo.MULTIFILTER_EXTENSION_POINT);
+// System.out.println(" - Number of multifilters: " + iMultiFilterHelpers.length);
+ IMultiFilterHelper imfih = null;
+ for (IConfigurationElement ice : iMultiFilterHelpers) {
+ try {
+ String helperId = h.getHelperId();
+ String id = ice.getAttribute("id");
+// System.out.println(" - id of helper: " + helperId);
+// System.out.println(" - id of interface: " + id);
+ if (helperId.equals(id)) {
+ imfih = (IMultiFilterHelper) ice.createExecutableExtension("class");
+ break;
+ }
+ } catch (CoreException e) {
+ e.printStackTrace();
+ }
+ }
+// System.out.println(" - class of multifilter: " + imfih.getClass().getName());
+ return imfih;
+ }
+
+ // needed
+ private ISingleFeatureHelper getISingleFeatureHelperFromSingleFeatureHelper(
+ SingleFeatureHelper h) {
+// System.out.println("1 b ii - Load Interface ISingleFeatureHelper");
+ IConfigurationElement[] iSingleFeatureHelpers = Platform.getExtensionRegistry()
+ .getConfigurationElementsFor(ExtensionPointInfo.SINGLEFEATURE_EXTENSION_POINT);
+// System.out.println(" - Number of singlefeatures: " + iSingleFeatureHelpers.length);
+ ISingleFeatureHelper isfeh = null;
+ for (IConfigurationElement ice : iSingleFeatureHelpers) {
+ try {
+ String helperId = h.getHelperId();
+ String id = ice.getAttribute("id");
+// System.out.println(" - id of helper: " + helperId);
+// System.out.println(" - id of interface: " + id);
+ if (helperId.equals(id)) {
+ isfeh = (ISingleFeatureHelper) ice.createExecutableExtension("class");
+ break;
+ }
+ } catch (CoreException e) {
+ e.printStackTrace();
+ }
+ }
+// System.out.println(" - class of singlefeature: " + isfeh.getClass().getName());
+ return isfeh;
+ }
+
+ // needed
+ private PortMapping getPortMappingFromSourcePort(RefactoringUnit refactoringUnit, Port port) {
+ EList<PortMapping> portMappings = compositeRefactoring.getPortMappings();
+ for (PortMapping pm : portMappings) {
+ if (pm.getSource() == port){
+ return pm;
+ }
+ }
+ return null;
+ }
+
+ // needed
+ private PortMapping getPortMappingFromTargetPort(RefactoringUnit refactoringUnit, InputPort port) {
+ EList<PortMapping> portMappings = compositeRefactoring.getPortMappings();
+ for (PortMapping pm : portMappings) {
+ if (pm.getTarget() == port){
+ return pm;
+ }
+ }
+ return null;
+ }
+
+ // needed
+ private void passValueFromMultiInputPortToSingleInputPort(PortMapping pm, int i) {
+ MultiInputPort mip = (MultiInputPort) pm.getSource();
+ SingleInputPort sip = (SingleInputPort) pm.getTarget();
+ sip.setValue(mip.getValue().get(i));
+ }
+
+ // needed
+ @SuppressWarnings("unchecked")
+ private void passPortValues(AtomicUnit atomicUnit,
+ Refactoring atomicRefactoring) {
+ for (SingleInputPort sip : atomicUnit.getInputPorts()) {
+ String portName = sip.getName();
+ atomicRefactoring
+ .getController().getDataManagementObject()
+ .getInPortByName(portName).setValue(sip.getValue());
+ }
+ }
+
+ // needed
+ private Refactoring getEmfRefactoringFromAtomicUnit(AtomicUnit atomicUnit) {
+ for (Refactoring emfRef : emfRefactorings) {
+ if (emfRef.getId().equals(atomicUnit.getModelRefactoring().getRefId())){
+ return emfRef;
+ }
+ }
+ return null;
+ }
+
+ // needed
+ private RefactoringUnit getRefactoringUnitByIndex(
+ SequentialUnit sequentialUnit, int i) {
+ for (RefactoringUnit ru : sequentialUnit.getRefactoringUnits()) {
+ if (ru.getSeqExecutionOrder() == i) {
+ return ru;
+ }
+ }
+ return null;
+ }
+
+ // needed
+ private List<PortMapping> getPortMappingsFromSourcePort(RefactoringUnit refactoringUnit, Port port) {
+ List<PortMapping> pms = new ArrayList<PortMapping>();
+ EList<PortMapping> portMappings = compositeRefactoring.getPortMappings();
+ for (PortMapping pm : portMappings) {
+ if (pm.getSource() == port){
+ pms.add(pm);
+ }
+ }
+ return pms;
+ }
+
+ // needed
+ private void executeHelperUnit(HelperUnit hu) {
+// System.out.println(" - execute Helper: " + hu.getHelperUnitId());
+// System.out.println(" - Load corresponding Helper");
+ Helper h = getHelperFromHelperUnit(hu);
+// if (h == null) {
+// System.out.println("Throw new HelperNotFoundException()");
+// } else {
+// System.out.println(" - Helper: " + h.getName());
+// }
+// System.out.println(" - Run Helper");
+ runHelper(hu, h);
+ }
+
+ // needed
+ private IMultiFeatureHelper getIMultiFeatureHelperFromMultiFeatureHelper(
+ MultiFeatureHelper h) {
+// System.out.println("1 b ii - Load Interface IMultiFeatureHelper");
+ IConfigurationElement[] iMultiFeatureHelpers = Platform.getExtensionRegistry()
+ .getConfigurationElementsFor(ExtensionPointInfo.MULTIFEATURE_EXTENSION_POINT);
+// System.out.println(" - Number of multifeatures: " + iMultiFeatureHelpers.length);
+ IMultiFeatureHelper imfeh = null;
+ for (IConfigurationElement ice : iMultiFeatureHelpers) {
+ try {
+ String helperId = h.getHelperId();
+ String id = ice.getAttribute("id");
+// System.out.println(" - id of helper: " + helperId);
+// System.out.println(" - id of interface: " + id);
+ if (helperId.equals(id)) {
+ imfeh = (IMultiFeatureHelper) ice.createExecutableExtension("class");
+ break;
+ }
+ } catch (CoreException e) {
+ e.printStackTrace();
+ }
+ }
+// System.out.println(" - class of multifeature: " + imfeh.getClass().getName());
+ return imfeh;
+ }
+
+ // needed
+ private ISingleFilterHelper getISingleFilterHelperFromSingleFilterHelper(
+ SingleFilterHelper h) {
+// System.out.println("1 b ii - Load Interface ISingleFilterHelper");
+ IConfigurationElement[] iSingleFilterHelpers = Platform.getExtensionRegistry()
+ .getConfigurationElementsFor(ExtensionPointInfo.SINGLEFILTER_EXTENSION_POINT);
+// System.out.println(" - Number of singlefilters: " + iSingleFilterHelpers.length);
+ ISingleFilterHelper isfh = null;
+ for (IConfigurationElement ice : iSingleFilterHelpers) {
+ try {
+ String helperId = h.getHelperId();
+ String id = ice.getAttribute("id");
+// System.out.println(" - id of helper: " + helperId);
+// System.out.println(" - id of interface: " + id);
+ if (helperId.equals(id)) {
+ isfh = (ISingleFilterHelper) ice.createExecutableExtension("class");
+ break;
+ }
+ } catch (CoreException e) {
+ e.printStackTrace();
+ }
+ }
+// System.out.println(" - class of singlefilter: " + isfh.getClass().getName());
+ return isfh;
+ }
+
+ // needed
+ private Helper getHelperFromHelperUnit(HelperUnit hu) {
+ for (Helper h : this.helper) {
+ if (h.getHelperId().equals(hu.getHelperUnitId())){
+ return h;
+ }
+ }
+ return null;
+ }
+
+ // needed
+ private boolean checkPortValuesSetInHelperUnit(HelperUnit hu) {
+ if (hu instanceof SingleFilterUnit) {
+ if (((SingleFilterUnit) hu).getInputPort().getValue() == null) {
+ return false;
+ }
+ }
+ if (hu instanceof MultiFilterUnit) {
+ if (((MultiFilterUnit) hu).getInputPort().getValue() == null) {
+ return false;
+ }
+ }
+ if (hu instanceof SingleFeatureUnit) {
+ if (((SingleFeatureUnit) hu).getInputPort().getValue() == null) {
+ return false;
+ }
+ for (MultiInputPort mip : ((SingleFeatureUnit) hu).getSecondaryInputPorts()) {
+ if (mip.getValue() == null) {
+ return false;
+ }
+ }
+ }
+ if (hu instanceof MultiFeatureUnit) {
+ if (((MultiFeatureUnit) hu).getInputPort().getValue() == null) {
+ return false;
+ }
+ for (MultiInputPort mip : ((MultiFeatureUnit) hu).getSecondaryInputPorts()) {
+ if (mip.getValue() == null) {
+ return false;
+ }
+ }
+ }
+ return true;
+ }
+
+}
diff --git a/org.eclipse.emf.refactor.comrel.interpreter/src/comrel/interpreter/ComrelInterpreterPrinter.java b/org.eclipse.emf.refactor.comrel.interpreter/src/comrel/interpreter/ComrelInterpreterPrinter.java
new file mode 100644
index 0000000..73b31b8
--- /dev/null
+++ b/org.eclipse.emf.refactor.comrel.interpreter/src/comrel/interpreter/ComrelInterpreterPrinter.java
@@ -0,0 +1,63 @@
+package comrel.interpreter;
+
+public class ComrelInterpreterPrinter {
+
+ ComrelInterpreter comrelInterpreter;
+
+ public ComrelInterpreterPrinter(ComrelInterpreter comrelInterpreter) {
+ this.comrelInterpreter = comrelInterpreter;
+ }
+
+ public void printRefactorings() {
+ System.out.println("---------------------------------------");
+ System.out.println("------- Registered Refactorings -------");
+ System.out.println("---------------------------------------");
+// for (EmfRefactoring ref : comrelInterpreter.emfRefactorings) {
+// System.out.println(ref.getId());
+// }
+ System.out.println("---------------------------------------");
+ }
+
+ public void printHelper() {
+ System.out.println("---------------------------------------");
+ System.out.println("--------- Registered Helper -----------");
+ System.out.println("---------------------------------------");
+// for (Helper hel : comrelInterpreter.helper) {
+// System.out.println(hel.getName());
+// }
+ System.out.println("---------------------------------------");
+ }
+
+ public void printRootObject() {
+ System.out.println("---------------------------------------");
+ System.out.println("--------- Root Model Object -----------");
+ System.out.println("---------------------------------------");
+// System.out.println(comrelInterpreter.rootObject.toString());
+ System.out.println("---------------------------------------");
+ }
+
+ public void printCheckPreconditions() {
+ System.out.println("---------------------------------------");
+ System.out.println("--------- Flag Preconditions Check ----");
+ System.out.println("---------------------------------------");
+// System.out.println(comrelInterpreter.checkPreconditions);
+ System.out.println("---------------------------------------");
+ }
+
+ public void printCompositeRefactoring() {
+ System.out.println("---------------------------------------");
+ System.out.println("--------- Composite Refactoring -------");
+ System.out.println("---------------------------------------");
+// System.out.println(comrelInterpreter.compositeRefactoring);
+ System.out.println("---------------------------------------");
+ }
+
+ public void printMainRefactoringUnit() {
+ System.out.println("---------------------------------------");
+ System.out.println("---------- Main Refactoring Unit ------");
+ System.out.println("---------------------------------------");
+// System.out.println(comrelInterpreter.mainRefactoringUnit);
+ System.out.println("---------------------------------------");
+ }
+
+}
diff --git a/org.eclipse.emf.refactor.comrel.interpreter/src/comrel/interpreter/ComrelInterpreterTester.java b/org.eclipse.emf.refactor.comrel.interpreter/src/comrel/interpreter/ComrelInterpreterTester.java
new file mode 100644
index 0000000..0303beb
--- /dev/null
+++ b/org.eclipse.emf.refactor.comrel.interpreter/src/comrel/interpreter/ComrelInterpreterTester.java
@@ -0,0 +1,54 @@
+package comrel.interpreter;
+
+import java.io.File;
+import java.io.IOException;
+import java.util.Collections;
+import java.util.Map;
+
+import org.eclipse.emf.common.util.URI;
+import org.eclipse.emf.ecore.resource.Resource;
+import org.eclipse.emf.ecore.resource.ResourceSet;
+import org.eclipse.emf.ecore.resource.impl.ResourceSetImpl;
+import org.eclipse.emf.ecore.xmi.impl.XMIResourceFactoryImpl;
+import org.eclipse.uml2.uml.Model;
+import org.eclipse.uml2.uml.UMLPackage;
+
+public abstract class ComrelInterpreterTester {
+
+ public static void testInterpreterInit() {
+ Model umlModel;
+ umlModel = loadUmlModel("D:/Uni/Eclipse/scm/ws/comrel.interpreter/models/My.uml");
+ ComrelInterpreter comrelInterpreter = new ComrelInterpreter(umlModel);
+ ComrelInterpreterPrinter printer = new ComrelInterpreterPrinter(comrelInterpreter);
+ printer.printRootObject();
+ printer.printRefactorings();
+ printer.printHelper();
+ try {
+ comrelInterpreter.loadComrelModel("D:/Uni/Eclipse/scm/ws/comrel.interpreter/models/extractsuperclass.comrel");
+ } catch (IOException e) {
+ e.printStackTrace();
+ }
+ printer.printCompositeRefactoring();
+ printer.printMainRefactoringUnit();
+ printer.printCheckPreconditions();
+ }
+
+ private static Model loadUmlModel(String fileName) {
+ UMLPackage.eINSTANCE.eClass();
+ Resource.Factory.Registry reg = Resource.Factory.Registry.INSTANCE;
+ Map<String, Object> m = reg.getExtensionToFactoryMap();
+ m.put("uml", new XMIResourceFactoryImpl());
+ URI uri = URI.createFileURI(new File(fileName).getAbsolutePath());
+ ResourceSet resourceSet = new ResourceSetImpl();
+ Resource resource = resourceSet.createResource(uri);
+ try {
+ resource.load(Collections.EMPTY_MAP);
+ } catch (IOException e) {
+ e.printStackTrace();
+ }
+ Model model = (Model) resource.getContents().get(0);
+ System.out.println("Model: " + model.toString());
+ return model;
+ }
+
+}
diff --git a/org.eclipse.emf.refactor.comrel.interpreter/src/comrel/interpreter/IEObjectGetter.java b/org.eclipse.emf.refactor.comrel.interpreter/src/comrel/interpreter/IEObjectGetter.java
new file mode 100644
index 0000000..37f9537
--- /dev/null
+++ b/org.eclipse.emf.refactor.comrel.interpreter/src/comrel/interpreter/IEObjectGetter.java
@@ -0,0 +1,9 @@
+package comrel.interpreter;
+
+import org.eclipse.emf.ecore.EObject;
+
+public interface IEObjectGetter {
+
+ public EObject getEObject();
+
+}
diff --git a/org.eclipse.emf.refactor.comrel/.classpath b/org.eclipse.emf.refactor.comrel/.classpath
new file mode 100644
index 0000000..ed2bc12
--- /dev/null
+++ b/org.eclipse.emf.refactor.comrel/.classpath
@@ -0,0 +1,7 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<classpath>
+ <classpathentry kind="src" path="src"/>
+ <classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER/org.eclipse.jdt.internal.debug.ui.launcher.StandardVMType/JavaSE-1.6"/>
+ <classpathentry kind="con" path="org.eclipse.pde.core.requiredPlugins"/>
+ <classpathentry kind="output" path="bin"/>
+</classpath>
diff --git a/org.eclipse.emf.refactor.comrel/.project b/org.eclipse.emf.refactor.comrel/.project
new file mode 100644
index 0000000..3e7e78f
--- /dev/null
+++ b/org.eclipse.emf.refactor.comrel/.project
@@ -0,0 +1,28 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<projectDescription>
+ <name>org.eclipse.emf.refactor.comrel</name>
+ <comment></comment>
+ <projects>
+ </projects>
+ <buildSpec>
+ <buildCommand>
+ <name>org.eclipse.jdt.core.javabuilder</name>
+ <arguments>
+ </arguments>
+ </buildCommand>
+ <buildCommand>
+ <name>org.eclipse.pde.ManifestBuilder</name>
+ <arguments>
+ </arguments>
+ </buildCommand>
+ <buildCommand>
+ <name>org.eclipse.pde.SchemaBuilder</name>
+ <arguments>
+ </arguments>
+ </buildCommand>
+ </buildSpec>
+ <natures>
+ <nature>org.eclipse.jdt.core.javanature</nature>
+ <nature>org.eclipse.pde.PluginNature</nature>
+ </natures>
+</projectDescription>
diff --git a/org.eclipse.emf.refactor.comrel/.settings/comrel.gmfgen.prefs b/org.eclipse.emf.refactor.comrel/.settings/comrel.gmfgen.prefs
new file mode 100644
index 0000000..72bc584
--- /dev/null
+++ b/org.eclipse.emf.refactor.comrel/.settings/comrel.gmfgen.prefs
@@ -0,0 +1,7 @@
+#Fri Sep 16 17:43:18 CEST 2011
+eclipse.preferences.version=1
+generate_rcp=false
+ignore_gmfgen_validation=false
+ignore_mapmodel_validation=false
+use_map_mode=true
+use_runtime_figures=true
diff --git a/org.eclipse.emf.refactor.comrel/.settings/org.eclipse.gmf.bridge.ui.dashboard.prefs b/org.eclipse.emf.refactor.comrel/.settings/org.eclipse.gmf.bridge.ui.dashboard.prefs
new file mode 100644
index 0000000..4fc4a01
--- /dev/null
+++ b/org.eclipse.emf.refactor.comrel/.settings/org.eclipse.gmf.bridge.ui.dashboard.prefs
@@ -0,0 +1,4 @@
+#Fri Sep 16 17:41:50 CEST 2011
+eclipse.preferences.version=1
+gmf_dashboard/domainGenerationModel=platform\:/resource/comrel/model/comrel.genmodel
+gmf_dashboard/domainModel=platform\:/resource/comrel/model/comrel.ecore
diff --git a/org.eclipse.emf.refactor.comrel/META-INF/MANIFEST.MF b/org.eclipse.emf.refactor.comrel/META-INF/MANIFEST.MF
new file mode 100644
index 0000000..770d986
--- /dev/null
+++ b/org.eclipse.emf.refactor.comrel/META-INF/MANIFEST.MF
@@ -0,0 +1,20 @@
+Manifest-Version: 1.0
+Bundle-ManifestVersion: 2
+Bundle-Name: CoMReL
+Bundle-SymbolicName: org.eclipse.emf.refactor.comrel;singleton:=true
+Bundle-Version: 0.9.0
+Bundle-ClassPath: .
+Bundle-Localization: plugin
+Bundle-RequiredExecutionEnvironment: JavaSE-1.6
+Export-Package: comrel,
+ comrel.extensions,
+ comrel.figures,
+ comrel.impl,
+ comrel.util
+Require-Bundle: org.eclipse.core.runtime,
+ org.eclipse.emf.ecore;visibility:=reexport,
+ org.eclipse.gmf.runtime.draw2d.ui;bundle-version="1.4.1",
+ org.eclipse.draw2d;bundle-version="3.6.2",
+ org.eclipse.ltk.core.refactoring;bundle-version="3.5.100",
+ org.eclipse.emf.refactor.refactoring;bundle-version="0.7.0"
+Bundle-ActivationPolicy: lazy
diff --git a/org.eclipse.emf.refactor.comrel/bin/.gitignore b/org.eclipse.emf.refactor.comrel/bin/.gitignore
new file mode 100644
index 0000000..508dbce
--- /dev/null
+++ b/org.eclipse.emf.refactor.comrel/bin/.gitignore
@@ -0,0 +1 @@
+/comrel
diff --git a/org.eclipse.emf.refactor.comrel/build.properties b/org.eclipse.emf.refactor.comrel/build.properties
new file mode 100644
index 0000000..575799b
--- /dev/null
+++ b/org.eclipse.emf.refactor.comrel/build.properties
@@ -0,0 +1,17 @@
+
+# <copyright>
+# </copyright>
+#
+# $Id$
+
+bin.includes = .,\
+ model/,\
+ META-INF/,\
+ plugin.xml,\
+ plugin.properties,\
+ schema/,\
+ src/,\
+ bin/
+jars.compile.order = .
+source.. = src/
+output.. = bin/
diff --git a/org.eclipse.emf.refactor.comrel/model/ECore2GMF.eol b/org.eclipse.emf.refactor.comrel/model/ECore2GMF.eol
new file mode 100644
index 0000000..a2709d1
--- /dev/null
+++ b/org.eclipse.emf.refactor.comrel/model/ECore2GMF.eol
@@ -0,0 +1,91 @@
+
+-- nennt die default-Gruppe in 'Units' um
+var toolGroupUnit = GmfTool!ToolGroup.all.selectOne(r|r.title = 'Objects');
+toolGroupUnit.title='Composite Units';
+
+-- erstellt die Tool-Group Connectoren
+-- var toolGroupConnectoren = new GmfTool!ToolGroup;
+-- toolGroupConnectoren.title = 'Connectoren';
+-- toolGroupConnectoren.collapsible = true;
+
+-- erstellt die Tool-Group AtomicUnits
+var toolGroupAtomicUnits = new GmfTool!ToolGroup;
+toolGroupAtomicUnits.title = 'Atomic Units';
+toolGroupAtomicUnits.collapsible = true;
+
+-- erstellt die Tool-Group FilterUnits
+var toolGroupFilter = new GmfTool!ToolGroup;
+toolGroupFilter.title = 'Filter Units';
+toolGroupFilter.collapsible = true;
+
+-- erstellt die Tool-Group SingleFeatureUnits
+var toolGroupFeature = new GmfTool!ToolGroup;
+toolGroupFeature.title = 'Feature Units';
+toolGroupFeature.collapsible = true;
+
+-- sucht aus allen Tools die Connectoren raus und fügt sie der Connectoren-Tool_group hinzu
+var atomics = toolGroupUnit.getTools().select(t | t.title.endsWith('AtomicUnit'));
+toolGroupAtomicUnits.tools.addAll(atomics);
+
+-- sucht aus allen Tools die Features raus und fügt sie der SingleFeature-Tool_group hinzu
+var feature = toolGroupUnit.getTools().select(t | t.title.endsWith('FeatureUnit'));
+toolGroupFeature.tools.addAll(feature);
+
+-- sucht aus allen Tools die Filter raus und fügt sie der Filter-Tool_group hinzu
+var filter = toolGroupUnit.getTools().select(t | t.title.endsWith('FilterUnit'));
+toolGroupFilter.tools.addAll(filter);
+
+
+-- erstellt die Tool-Group Ports
+var toolGroupPort= new GmfTool!ToolGroup;
+toolGroupPort.title='Ports';
+toolGroupPort.collapsible = true;
+
+-- sucht aus allen Tools die Ports raus und fügt sie der Ports-Tool-Group hinzu
+
+-- var portsWeg = toolGroupUnit.getTools().select(t | t.title.endsWith('OutputPort'));
+-- delete portsWeg;
+var ports = toolGroupUnit.getTools().select(t | t.title.endsWith('Port'));
+toolGroupPort.tools.addAll(ports);
+
+-- Sucht die Palette und fügt die Ports- & Connectoren-Tool-Group hinzu
+var palette = GmfTool!Palette.all.selectOne(r | r.title = 'comrelPalette');
+palette.tools.add(toolGroupAtomicUnits);
+palette.tools.add(toolGroupFilter);
+palette.tools.add(toolGroupFeature);
+palette.tools.add(toolGroupPort);
+
+-- Sucht die Mappings-Toolgroup, entfernt sie und fügt sie wieder hinzu (damit sie am Ende steht)
+var toolGroupMapping = GmfTool!ToolGroup.all.selectOne(r|r.title = 'Connections');
+toolGroupMapping.title = 'Mappings';
+palette.tools.remove(toolGroupMapping);
+palette.tools.add(toolGroupMapping);
+
+-- LinkConstraints für das SInglePortMapping-Mapping
+var singlePortMappingConstraint = new GmfMap!LinkConstraints;
+var singleSourceConstraint = new GmfMap!Constraint;
+singleSourceConstraint.body = 'self<>oppositeEnd';
+singlePortMappingConstraint.setSourceEnd(singleSourceConstraint);
+
+var singlePortMappingTool = toolGroupMapping.tools.selectOne(m | m.title='SinglePortMapping');
+
+var singlePortMappingMapping = GmfMap!LinkMapping.all.selectOne(m | m.tool = singlePortMappingTool);
+singlePortMappingMapping.setCreationConstraints(singlePortMappingConstraint);
+
+-- LinkConstraints für das MultiPortMapping-Mapping
+var multiPortMappingConstraint = new GmfMap!LinkConstraints;
+var multiSourceConstraint = new GmfMap!Constraint;
+multiSourceConstraint.body = 'self<>oppositeEnd';
+multiPortMappingConstraint.setSourceEnd(multiSourceConstraint);
+var multiPortMappingTool = toolGroupMapping.tools.selectOne(m | m.title='MultiPortMapping');
+var multiPortMappingMapping = GmfMap!LinkMapping.all.selectOne(m | m.tool = multiPortMappingTool);
+multiPortMappingMapping.setCreationConstraints(multiPortMappingConstraint);
+
+-- LinkConstraints für das multiSinglePortMapping-Mapping
+var multiSinglePortMappingConstraint = new GmfMap!LinkConstraints;
+var multiSingleSourceConstraint = new GmfMap!Constraint;
+multiSingleSourceConstraint.body = 'self<>oppositeEnd';
+multiSinglePortMappingConstraint.setSourceEnd(multiSingleSourceConstraint);
+var multiSinglePortMappingTool = toolGroupMapping.tools.selectOne(m | m.title='MultiSinglePortMapping');
+var multiSinglePortMappingMapping = GmfMap!LinkMapping.all.selectOne(m | m.tool = multiSinglePortMappingTool);
+multiSinglePortMappingMapping.setCreationConstraints(multiSinglePortMappingConstraint);
\ No newline at end of file
diff --git a/org.eclipse.emf.refactor.comrel/model/comrel.ecore b/org.eclipse.emf.refactor.comrel/model/comrel.ecore
new file mode 100644
index 0000000..5845a41
--- /dev/null
+++ b/org.eclipse.emf.refactor.comrel/model/comrel.ecore
@@ -0,0 +1,528 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<ecore:EPackage xmi:version="2.0"
+ xmlns:xmi="http://www.omg.org/XMI" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+ xmlns:ecore="http://www.eclipse.org/emf/2002/Ecore" name="comrel"
+ nsURI="http://comrel/0.1" nsPrefix="comrel">
+ <eAnnotations source="gmf">
+ <details key="foo" value="bar"/>
+ </eAnnotations>
+ <eClassifiers xsi:type="ecore:EClass" name="CompositeRefactoring" eSuperTypes="#//ModelRefactoring">
+ <eAnnotations source="gmf.diagram">
+ <details key="foo" value="bar"/>
+ <details key="onefile" value="false"/>
+ </eAnnotations>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="mainRefactoringUnit" lowerBound="1"
+ eType="#//RefactoringUnit" containment="true"/>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="portMappings" upperBound="-1"
+ eType="#//PortMapping" containment="true"/>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="modelRefactorings" upperBound="-1"
+ eType="#//ModelRefactoring" containment="true"/>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="helper" upperBound="-1"
+ eType="#//Helper" containment="true"/>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="mappingVisualization" lowerBound="1"
+ eType="#//MappingVisualization" defaultValueLiteral="0"/>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="customInitialCondition"
+ eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="customFinalCondition" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+ </eClassifiers>
+ <eClassifiers xsi:type="ecore:EClass" name="NamedElement" abstract="true" interface="true">
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="name" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+ </eClassifiers>
+ <eClassifiers xsi:type="ecore:EClass" name="DescribedElement" abstract="true" interface="true">
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="description" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+ </eClassifiers>
+ <eClassifiers xsi:type="ecore:EClass" name="RefactoringUnit" abstract="true" eSuperTypes="#//NamedElement">
+ <eOperations name="getAllInputPorts" upperBound="-1" eType="#//InputPort"/>
+ <eOperations name="setSeqExecutionOrder">
+ <eParameters name="seqExecutionOrder" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EInt"/>
+ <eParameters name="superCall" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean"/>
+ </eOperations>
+ <eOperations name="setName">
+ <eParameters name="newName" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+ <eParameters name="updateContainer" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean"/>
+ </eOperations>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="seqExecutionOrder" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EInt"/>
+ </eClassifiers>
+ <eClassifiers xsi:type="ecore:EClass" name="ModelRefactoring" eSuperTypes="#//NamedElement #//DescribedElement">
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="refId" lowerBound="1" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="label" lowerBound="1" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="namespaceUri" lowerBound="1"
+ eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="inputPorts" upperBound="-1"
+ eType="#//SingleInputPort" containment="true"/>
+ </eClassifiers>
+ <eClassifiers xsi:type="ecore:EClass" name="AtomicUnit" eSuperTypes="#//RefactoringUnit">
+ <eAnnotations source="gmf.node">
+ <details key="foo" value="bar"/>
+ <details key="label.icon" value="false"/>
+ <details key="label" value="label,type"/>
+ <details key="label.pattern" value="{0}:{1}"/>
+ </eAnnotations>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="inputPorts" lowerBound="1"
+ upperBound="-1" eType="#//SingleInputPort" containment="true">
+ <eAnnotations source="gmf.affixed">
+ <details key="foo" value="bar"/>
+ </eAnnotations>
+ </eStructuralFeatures>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="unitId" lowerBound="1"
+ eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="label" lowerBound="1" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="namespaceUri" lowerBound="1"
+ eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="type" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"
+ changeable="false" defaultValueLiteral="Atomic Unit"/>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="modelRefactoring" lowerBound="1"
+ eType="#//ModelRefactoring"/>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="checkInitialConditionFlag"
+ eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean" defaultValueLiteral="false"/>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="checkFinalConditionFlag"
+ eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean" defaultValueLiteral="false"/>
+ </eClassifiers>
+ <eClassifiers xsi:type="ecore:EClass" name="CompositeUnit" abstract="true" eSuperTypes="#//RefactoringUnit"/>
+ <eClassifiers xsi:type="ecore:EClass" name="SequentialUnit" eSuperTypes="#//CompositeUnit">
+ <eAnnotations source="gmf.node">
+ <details key="foo" value="bar"/>
+ <details key="label.icon" value="false"/>
+ <details key="label" value="name,type,lblStrict"/>
+ <details key="label.pattern" value="{0}:{1} -{2}-"/>
+ </eAnnotations>
+ <eOperations name="updateSeqExecutionOrder"/>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="helperUnits" upperBound="-1"
+ eType="#//HelperUnit" containment="true">
+ <eAnnotations source="gmf.compartment">
+ <details key="foo" value="bar"/>
+ </eAnnotations>
+ </eStructuralFeatures>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="refactoringUnits" lowerBound="1"
+ upperBound="-1" eType="#//RefactoringUnit" containment="true">
+ <eAnnotations source="gmf.compartment">
+ <details key="foo" value="bar"/>
+ </eAnnotations>
+ </eStructuralFeatures>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="inputPorts" lowerBound="1"
+ upperBound="-1" eType="#//InputPort" containment="true">
+ <eAnnotations source="gmf.affixed">
+ <details key="foo" value="bar"/>
+ </eAnnotations>
+ </eStructuralFeatures>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="strict" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean"
+ defaultValueLiteral="true"/>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="type" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"
+ changeable="false" defaultValueLiteral="Sequential Unit"/>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="lblStrict" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"
+ defaultValueLiteral="strict"/>
+ </eClassifiers>
+ <eClassifiers xsi:type="ecore:EClass" name="ConditionCheck" eSuperTypes="#//NamedElement #//DescribedElement">
+ <eAnnotations source="gmf.node">
+ <details key="foo" value="bar"/>
+ <details key="label.icon" value="false"/>
+ <details key="label" value="name,type,spec"/>
+ <details key="label.pattern" value="{0}:{1} -{2}-"/>
+ </eAnnotations>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="type" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"
+ changeable="false" defaultValueLiteral="Condition Check"/>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="spec" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+ </eClassifiers>
+ <eClassifiers xsi:type="ecore:EClass" name="ConditionalUnit" eSuperTypes="#//CompositeUnit">
+ <eAnnotations source="gmf.node">
+ <details key="foo" value="bar"/>
+ <details key="label.icon" value="false"/>
+ <details key="label" value="name,type"/>
+ <details key="label.pattern" value="{0}:{1}"/>
+ </eAnnotations>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="if" lowerBound="1" eType="#//ConditionCheck"
+ containment="true">
+ <eAnnotations source="gmf.compartment">
+ <details key="foo" value="bar"/>
+ </eAnnotations>
+ </eStructuralFeatures>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="helperUnits" upperBound="-1"
+ eType="#//HelperUnit" containment="true">
+ <eAnnotations source="gmf.compartment">
+ <details key="foo" value="bar"/>
+ </eAnnotations>
+ </eStructuralFeatures>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="then" lowerBound="1" eType="#//RefactoringUnit"
+ containment="true">
+ <eAnnotations source="gmf.compartment">
+ <details key="foo" value="bar"/>
+ </eAnnotations>
+ </eStructuralFeatures>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="else" eType="#//RefactoringUnit"
+ containment="true">
+ <eAnnotations source="gmf.compartment">
+ <details key="foo" value="bar"/>
+ </eAnnotations>
+ </eStructuralFeatures>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="inputPorts" lowerBound="1"
+ upperBound="-1" eType="#//InputPort" containment="true">
+ <eAnnotations source="gmf.affixed">
+ <details key="foo" value="bar"/>
+ </eAnnotations>
+ </eStructuralFeatures>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="type" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"
+ changeable="false" defaultValueLiteral="Conditional Unit"/>
+ </eClassifiers>
+ <eClassifiers xsi:type="ecore:EClass" name="QueuedUnit" abstract="true" eSuperTypes="#//CompositeUnit">
+ <eOperations name="init"/>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="strict" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean"
+ defaultValueLiteral="true"/>
+ </eClassifiers>
+ <eClassifiers xsi:type="ecore:EClass" name="SingleQueuedUnit" eSuperTypes="#//QueuedUnit">
+ <eAnnotations source="gmf.node">
+ <details key="foo" value="bar"/>
+ <details key="label.icon" value="false"/>
+ <details key="label" value="name,type,lblStrict"/>
+ <details key="label.pattern" value="{0}:{1} -{2}-"/>
+ </eAnnotations>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="helperUnits" upperBound="-1"
+ eType="#//HelperUnit" containment="true">
+ <eAnnotations source="gmf.compartment">
+ <details key="foo" value="bar"/>
+ </eAnnotations>
+ </eStructuralFeatures>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="refactoringUnit" lowerBound="1"
+ eType="#//RefactoringUnit" containment="true">
+ <eAnnotations source="gmf.compartment">
+ <details key="foo" value="bar"/>
+ </eAnnotations>
+ </eStructuralFeatures>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="singleInputPorts" upperBound="-1"
+ eType="#//SingleInputPort" containment="true">
+ <eAnnotations source="gmf.affixed">
+ <details key="foo" value="bar"/>
+ </eAnnotations>
+ </eStructuralFeatures>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="multiInputPort" lowerBound="1"
+ eType="#//MultiInputPort" containment="true">
+ <eAnnotations source="gmf.affixed">
+ <details key="foo" value="bar"/>
+ </eAnnotations>
+ </eStructuralFeatures>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="type" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"
+ changeable="false" defaultValueLiteral="Single Queued Unit"/>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="lblStrict" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"
+ defaultValueLiteral="strict"/>
+ </eClassifiers>
+ <eClassifiers xsi:type="ecore:EClass" name="TwicedQueuedUnit" abstract="true" eSuperTypes="#//QueuedUnit"/>
+ <eClassifiers xsi:type="ecore:EClass" name="CartesianQueuedUnit" eSuperTypes="#//TwicedQueuedUnit">
+ <eAnnotations source="gmf.node">
+ <details key="foo" value="bar"/>
+ <details key="label.icon" value="false"/>
+ <details key="label" value="name,type,lblStrict"/>
+ <details key="label.pattern" value="{0}:{1} -{2}-"/>
+ </eAnnotations>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="helperUnits" upperBound="-1"
+ eType="#//HelperUnit" containment="true">
+ <eAnnotations source="gmf.compartment">
+ <details key="foo" value="bar"/>
+ </eAnnotations>
+ </eStructuralFeatures>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="refactoringUnit" lowerBound="1"
+ eType="#//RefactoringUnit" containment="true">
+ <eAnnotations source="gmf.compartment">
+ <details key="foo" value="bar"/>
+ </eAnnotations>
+ </eStructuralFeatures>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="singleInputPorts" upperBound="-1"
+ eType="#//SingleInputPort" containment="true">
+ <eAnnotations source="gmf.affixed">
+ <details key="foo" value="bar"/>
+ </eAnnotations>
+ </eStructuralFeatures>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="multiInputPorts" lowerBound="2"
+ upperBound="2" eType="#//MultiInputPort" containment="true">
+ <eAnnotations source="gmf.affixed">
+ <details key="foo" value="bar"/>
+ </eAnnotations>
+ </eStructuralFeatures>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="type" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"
+ changeable="false" defaultValueLiteral="Cartesian Queued Unit"/>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="lblStrict" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"
+ defaultValueLiteral="strict"/>
+ </eClassifiers>
+ <eClassifiers xsi:type="ecore:EClass" name="ParallelQueuedUnit" eSuperTypes="#//TwicedQueuedUnit">
+ <eAnnotations source="gmf.node">
+ <details key="foo" value="bar"/>
+ <details key="label.icon" value="false"/>
+ <details key="label" value="name,type,lblStrict"/>
+ <details key="label.pattern" value="{0}:{1} -{2}-"/>
+ </eAnnotations>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="helperUnits" upperBound="-1"
+ eType="#//HelperUnit" containment="true">
+ <eAnnotations source="gmf.compartment">
+ <details key="foo" value="bar"/>
+ </eAnnotations>
+ </eStructuralFeatures>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="refactoringUnits" lowerBound="1"
+ eType="#//RefactoringUnit" containment="true">
+ <eAnnotations source="gmf.compartment">
+ <details key="foo" value="bar"/>
+ </eAnnotations>
+ </eStructuralFeatures>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="singleInputPorts" upperBound="-1"
+ eType="#//SingleInputPort" containment="true">
+ <eAnnotations source="gmf.affixed">
+ <details key="foo" value="bar"/>
+ </eAnnotations>
+ </eStructuralFeatures>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="multiInputPorts" lowerBound="2"
+ upperBound="2" eType="#//MultiInputPort" containment="true">
+ <eAnnotations source="gmf.affixed">
+ <details key="foo" value="bar"/>
+ </eAnnotations>
+ </eStructuralFeatures>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="type" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"
+ changeable="false" defaultValueLiteral="Parallel Queued Unit"/>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="lblStrict" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"
+ defaultValueLiteral="strict"/>
+ </eClassifiers>
+ <eClassifiers xsi:type="ecore:EClass" name="HelperUnit" abstract="true" eSuperTypes="#//NamedElement #//DescribedElement">
+ <eOperations name="getInputPort" lowerBound="1" eType="#//InputPort"/>
+ <eOperations name="getOutputPort" lowerBound="1" eType="#//OutputPort"/>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="helperUnitId" lowerBound="1"
+ eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="namespaceUri" lowerBound="1"
+ eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+ </eClassifiers>
+ <eClassifiers xsi:type="ecore:EClass" name="FeatureUnit" abstract="true" eSuperTypes="#//HelperUnit"/>
+ <eClassifiers xsi:type="ecore:EClass" name="SingleFeatureUnit" eSuperTypes="#//FeatureUnit">
+ <eAnnotations source="gmf.node">
+ <details key="foo" value="bar"/>
+ <details key="label.icon" value="false"/>
+ <details key="label" value="name,type"/>
+ <details key="label.pattern" value="{0}:{1}"/>
+ </eAnnotations>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="inputPort" lowerBound="1"
+ eType="#//SingleInputPort" containment="true">
+ <eAnnotations source="gmf.affixed">
+ <details key="foo" value="bar"/>
+ </eAnnotations>
+ </eStructuralFeatures>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="secondaryInputPorts" upperBound="-1"
+ eType="#//MultiInputPort" containment="true">
+ <eAnnotations source="gmf.affixed">
+ <details key="foo" value="bar"/>
+ </eAnnotations>
+ </eStructuralFeatures>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="outputPort" lowerBound="1"
+ eType="#//SingleOutputPort" containment="true">
+ <eAnnotations source="gmf.affixed">
+ <details key="foo" value="bar"/>
+ </eAnnotations>
+ </eStructuralFeatures>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="singleFeatureHelper" lowerBound="1"
+ eType="#//SingleFeatureHelper"/>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="type" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"
+ changeable="false" defaultValueLiteral="Single Feature Unit"/>
+ </eClassifiers>
+ <eClassifiers xsi:type="ecore:EClass" name="MultiFeatureUnit" eSuperTypes="#//FeatureUnit">
+ <eAnnotations source="gmf.node">
+ <details key="foo" value="bar"/>
+ <details key="label.icon" value="false"/>
+ <details key="label" value="name,type"/>
+ <details key="label.pattern" value="{0}:{1}"/>
+ </eAnnotations>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="inputPort" lowerBound="1"
+ eType="#//SingleInputPort" containment="true">
+ <eAnnotations source="gmf.affixed">
+ <details key="foo" value="bar"/>
+ </eAnnotations>
+ </eStructuralFeatures>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="secondaryInputPorts" upperBound="-1"
+ eType="#//MultiInputPort" containment="true">
+ <eAnnotations source="gmf.affixed">
+ <details key="foo" value="bar"/>
+ </eAnnotations>
+ </eStructuralFeatures>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="outputPort" lowerBound="1"
+ eType="#//MultiOutputPort" containment="true">
+ <eAnnotations source="gmf.affixed">
+ <details key="foo" value="bar"/>
+ </eAnnotations>
+ </eStructuralFeatures>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="multiFeatureHelper" lowerBound="1"
+ eType="#//MultiFeatureHelper"/>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="type" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"
+ changeable="false" defaultValueLiteral="Multi Feature Unit"/>
+ </eClassifiers>
+ <eClassifiers xsi:type="ecore:EClass" name="FilterUnit" abstract="true" eSuperTypes="#//HelperUnit"/>
+ <eClassifiers xsi:type="ecore:EClass" name="SingleFilterUnit" eSuperTypes="#//FilterUnit">
+ <eAnnotations source="gmf.node">
+ <details key="foo" value="bar"/>
+ <details key="label.icon" value="false"/>
+ <details key="label" value="name,type"/>
+ <details key="label.pattern" value="{0}:{1}"/>
+ </eAnnotations>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="inputPort" lowerBound="1"
+ eType="#//MultiInputPort" containment="true">
+ <eAnnotations source="gmf.affixed">
+ <details key="foo" value="bar"/>
+ </eAnnotations>
+ </eStructuralFeatures>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="outputPort" lowerBound="1"
+ eType="#//SingleOutputPort" containment="true">
+ <eAnnotations source="gmf.affixed">
+ <details key="foo" value="bar"/>
+ </eAnnotations>
+ </eStructuralFeatures>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="singleFilterHelper" lowerBound="1"
+ eType="#//SingleFilterHelper"/>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="type" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"
+ changeable="false" defaultValueLiteral="Single Filter Unit"/>
+ </eClassifiers>
+ <eClassifiers xsi:type="ecore:EClass" name="MultiFilterUnit" eSuperTypes="#//FilterUnit">
+ <eAnnotations source="gmf.node">
+ <details key="foo" value="bar"/>
+ <details key="label.icon" value="false"/>
+ <details key="label" value="name,type"/>
+ <details key="label.pattern" value="{0}:{1}"/>
+ </eAnnotations>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="inputPort" lowerBound="1"
+ eType="#//MultiInputPort" containment="true">
+ <eAnnotations source="gmf.affixed">
+ <details key="foo" value="bar"/>
+ </eAnnotations>
+ </eStructuralFeatures>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="outputPort" lowerBound="1"
+ eType="#//MultiOutputPort" containment="true">
+ <eAnnotations source="gmf.affixed">
+ <details key="foo" value="bar"/>
+ </eAnnotations>
+ </eStructuralFeatures>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="multiFilterHelper" lowerBound="1"
+ eType="#//MultiFilterHelper"/>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="type" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"
+ changeable="false" defaultValueLiteral="Multi Filter Unit"/>
+ </eClassifiers>
+ <eClassifiers xsi:type="ecore:EClass" name="Helper" abstract="true" eSuperTypes="#//NamedElement #//DescribedElement">
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="helperId" lowerBound="1"
+ eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="namespaceUri" lowerBound="1"
+ eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+ </eClassifiers>
+ <eClassifiers xsi:type="ecore:EClass" name="FeatureHelper" abstract="true" eSuperTypes="#//Helper">
+ <eStructuralFeatures xsi:type="ecore:EReference" name="inputPort" lowerBound="1"
+ eType="#//SingleInputPort" containment="true"/>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="secondaryInputPorts" upperBound="-1"
+ eType="#//MultiInputPort" containment="true"/>
+ </eClassifiers>
+ <eClassifiers xsi:type="ecore:EClass" name="SingleFeatureHelper" eSuperTypes="#//FeatureHelper">
+ <eStructuralFeatures xsi:type="ecore:EReference" name="outputPort" lowerBound="1"
+ eType="#//SingleOutputPort" containment="true"/>
+ </eClassifiers>
+ <eClassifiers xsi:type="ecore:EClass" name="MultiFeatureHelper" eSuperTypes="#//FeatureHelper">
+ <eStructuralFeatures xsi:type="ecore:EReference" name="outputPort" lowerBound="1"
+ eType="#//MultiOutputPort" containment="true"/>
+ </eClassifiers>
+ <eClassifiers xsi:type="ecore:EClass" name="FilterHelper" abstract="true" eSuperTypes="#//Helper">
+ <eStructuralFeatures xsi:type="ecore:EReference" name="inputPort" lowerBound="1"
+ eType="#//MultiInputPort" containment="true"/>
+ </eClassifiers>
+ <eClassifiers xsi:type="ecore:EClass" name="SingleFilterHelper" eSuperTypes="#//FilterHelper">
+ <eStructuralFeatures xsi:type="ecore:EReference" name="outputPort" lowerBound="1"
+ eType="#//SingleOutputPort" containment="true"/>
+ </eClassifiers>
+ <eClassifiers xsi:type="ecore:EClass" name="MultiFilterHelper" eSuperTypes="#//FilterHelper">
+ <eStructuralFeatures xsi:type="ecore:EReference" name="outputPort" lowerBound="1"
+ eType="#//MultiOutputPort" containment="true"/>
+ </eClassifiers>
+ <eClassifiers xsi:type="ecore:EClass" name="Port" abstract="true" eSuperTypes="#//NamedElement #//DescribedElement">
+ <eAnnotations source="gmf.node">
+ <details key="foo" value="bar"/>
+ <details key="label" value="name,type"/>
+ <details key="label.icon" value="false"/>
+ <details key="label.placement" value="external"/>
+ <details key="label.pattern" value="{0}:{1}"/>
+ </eAnnotations>
+ <eOperations name="setType">
+ <eParameters name="newType" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EJavaClass"/>
+ <eParameters name="initiator" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean"/>
+ </eOperations>
+ <eOperations name="updatePortName">
+ <eParameters name="singularPortName" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+ </eOperations>
+ <eOperations name="getSingularPortName" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="type" lowerBound="1" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EJavaClass"/>
+ </eClassifiers>
+ <eClassifiers xsi:type="ecore:EClass" name="SinglePort" abstract="true" eSuperTypes="#//Port">
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="value" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EJavaObject"/>
+ </eClassifiers>
+ <eClassifiers xsi:type="ecore:EClass" name="MultiPort" abstract="true" eSuperTypes="#//Port">
+ <eAnnotations source="gmf.node">
+ <details key="border.color" value="255,0,0"/>
+ <details key="border.width" value="10"/>
+ </eAnnotations>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="value" upperBound="-1"
+ eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EJavaObject"/>
+ </eClassifiers>
+ <eClassifiers xsi:type="ecore:EClass" name="InputPort" abstract="true" eSuperTypes="#//Port">
+ <eAnnotations source="gmf.node">
+ <details key="figure" value="rectangle"/>
+ <details key="size" value="20,20"/>
+ </eAnnotations>
+ <eOperations name="isMappingTarget" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBooleanObject"/>
+ <eOperations name="isRootPort" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBooleanObject"/>
+ </eClassifiers>
+ <eClassifiers xsi:type="ecore:EClass" name="OutputPort" abstract="true" eSuperTypes="#//Port">
+ <eAnnotations source="gmf.node">
+ <details key="figure" value="ellipse"/>
+ <details key="size" value="20,20"/>
+ </eAnnotations>
+ </eClassifiers>
+ <eClassifiers xsi:type="ecore:EClass" name="SingleInputPort" eSuperTypes="#//SinglePort #//InputPort"/>
+ <eClassifiers xsi:type="ecore:EClass" name="MultiInputPort" eSuperTypes="#//MultiPort #//InputPort"/>
+ <eClassifiers xsi:type="ecore:EClass" name="SingleOutputPort" eSuperTypes="#//SinglePort #//OutputPort"/>
+ <eClassifiers xsi:type="ecore:EClass" name="MultiOutputPort" eSuperTypes="#//MultiPort #//OutputPort"/>
+ <eClassifiers xsi:type="ecore:EClass" name="PortMapping" abstract="true">
+ <eOperations name="getSource" eType="#//Port"/>
+ <eOperations name="getTarget" eType="#//InputPort"/>
+ <eOperations name="updatePortTypesAndNames">
+ <eParameters name="type" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EJavaClass"/>
+ <eParameters name="singularPortName" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+ </eOperations>
+ <eOperations name="updateMappingNumber"/>
+ <eOperations name="updateVisualization"/>
+ </eClassifiers>
+ <eClassifiers xsi:type="ecore:EClass" name="SinglePortMapping" eSuperTypes="#//PortMapping">
+ <eAnnotations source="gmf.link">
+ <details key="source" value="source"/>
+ <details key="target" value="target"/>
+ <details key="style" value="dot"/>
+ <details key="width" value="2"/>
+ <details key="target.decoration" value="arrow"/>
+ </eAnnotations>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="source" eType="#//SinglePort"/>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="target" eType="#//SingleInputPort"/>
+ </eClassifiers>
+ <eClassifiers xsi:type="ecore:EClass" name="MultiPortMapping" eSuperTypes="#//PortMapping">
+ <eAnnotations source="gmf.link">
+ <details key="source" value="source"/>
+ <details key="target" value="target"/>
+ <details key="style" value="dot"/>
+ <details key="width" value="2"/>
+ <details key="target.decoration" value="arrow"/>
+ </eAnnotations>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="source" eType="#//MultiPort"/>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="target" eType="#//MultiInputPort"/>
+ </eClassifiers>
+ <eClassifiers xsi:type="ecore:EClass" name="MultiSinglePortMapping" eSuperTypes="#//PortMapping">
+ <eAnnotations source="gmf.link">
+ <details key="source" value="source"/>
+ <details key="target" value="target"/>
+ <details key="style" value="dot"/>
+ <details key="width" value="2"/>
+ <details key="target.decoration" value="arrow"/>
+ <details key="tool.small.bundle" value="name"/>
+ </eAnnotations>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="source" eType="#//MultiPort"/>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="target" eType="#//SingleInputPort"/>
+ </eClassifiers>
+ <eClassifiers xsi:type="ecore:EEnum" name="MappingVisualization">
+ <eLiterals name="arrows"/>
+ <eLiterals name="coloredPorts" value="1"/>
+ <eLiterals name="indices" value="2"/>
+ <eLiterals name="arrowsAndColoredPorts" value="3"/>
+ <eLiterals name="arrowsAndIndices" value="4"/>
+ </eClassifiers>
+</ecore:EPackage>
diff --git a/org.eclipse.emf.refactor.comrel/model/comrel.emf b/org.eclipse.emf.refactor.comrel/model/comrel.emf
new file mode 100644
index 0000000..3a5c54a
--- /dev/null
+++ b/org.eclipse.emf.refactor.comrel/model/comrel.emf
@@ -0,0 +1,300 @@
+@namespace(uri="http://comrel/0.1", prefix="comrel")
+@gmf(foo="bar")
+package comrel;
+
+@gmf.diagram(foo="bar", onefile="false")
+class CompositeRefactoring extends ModelRefactoring{
+ val RefactoringUnit[1] mainRefactoringUnit;
+ val PortMapping[*] portMappings;
+ val ModelRefactoring[*] modelRefactorings;
+ val Helper[*] helper;
+ attr MappingVisualization[1] mappingVisualization = 0;
+ attr String customInitialCondition;
+ attr String customFinalCondition;
+}
+
+abstract interface NamedElement {
+ attr String name;
+}
+
+abstract interface DescribedElement {
+ attr String description;
+}
+
+abstract class RefactoringUnit extends NamedElement {
+ op InputPort[*] getAllInputPorts();
+ attr int seqExecutionOrder;
+ op void setSeqExecutionOrder(int seqExecutionOrder, boolean superCall);
+ op void setName(String newName, boolean updateContainer);
+}
+
+class ModelRefactoring extends NamedElement, DescribedElement{
+ attr String[1] refId;
+ attr String[1] label;
+ attr String[1] namespaceUri;
+ val SingleInputPort[*] inputPorts;
+}
+
+@gmf.node(foo="bar",label.icon="false",label="label,type",label.pattern="{0}:{1}")
+class AtomicUnit extends RefactoringUnit {
+ @gmf.affixed(foo="bar")
+ val SingleInputPort[+] inputPorts;
+ attr String[1] unitId;
+ attr String[1] label;
+ attr String[1] namespaceUri;
+ readonly attr String type = "Atomic Unit";
+ ref ModelRefactoring[1] modelRefactoring;
+ attr boolean checkInitialConditionFlag = false;
+ attr boolean checkFinalConditionFlag = false;
+}
+
+abstract class CompositeUnit extends RefactoringUnit {
+}
+
+@gmf.node(foo="bar",label.icon="false",label="name,type,lblStrict",label.pattern="{0}:{1} -{2}-")
+class SequentialUnit extends CompositeUnit {
+ @gmf.compartment(foo="bar")
+ val HelperUnit[*] helperUnits;
+ @gmf.compartment(foo="bar")
+ val RefactoringUnit[+] refactoringUnits;
+ @gmf.affixed(foo="bar")
+ val InputPort[+] inputPorts;
+ attr boolean strict = true;
+ readonly attr String type = "Sequential Unit";
+ attr String lblStrict = "strict";
+ op void updateSeqExecutionOrder();
+}
+
+@gmf.node(foo="bar",label.icon="false",label="name,type,spec",label.pattern="{0}:{1} -{2}-")
+class ConditionCheck extends NamedElement, DescribedElement {
+ readonly attr String type = "Condition Check";
+ attr String spec;
+}
+
+@gmf.node(foo="bar",label.icon="false",label="name,type",label.pattern="{0}:{1}")
+class ConditionalUnit extends CompositeUnit {
+ @gmf.compartment(foo="bar")
+ val ConditionCheck[1] if;
+ @gmf.compartment(foo="bar")
+ val HelperUnit[*] helperUnits;
+ @gmf.compartment(foo="bar")
+ val RefactoringUnit[1] then;
+ @gmf.compartment(foo="bar")
+ val RefactoringUnit else;
+ @gmf.affixed(foo="bar")
+ val InputPort[+] inputPorts;
+ readonly attr String type = "Conditional Unit";
+}
+
+abstract class QueuedUnit extends CompositeUnit {
+ op void init();
+ attr boolean strict = true;
+}
+
+@gmf.node(foo="bar",label.icon="false",label="name,type,lblStrict",label.pattern="{0}:{1} -{2}-")
+class SingleQueuedUnit extends QueuedUnit {
+ @gmf.compartment(foo="bar")
+ val HelperUnit[*] helperUnits;
+ @gmf.compartment(foo="bar")
+ val RefactoringUnit[1] refactoringUnit;
+ @gmf.affixed(foo="bar")
+ val SingleInputPort[*] singleInputPorts;
+ @gmf.affixed(foo="bar")
+ val MultiInputPort[1] multiInputPort;
+ readonly attr String type = "Single Queued Unit";
+ attr String lblStrict = "strict";
+}
+
+abstract class TwicedQueuedUnit extends QueuedUnit {
+}
+
+@gmf.node(foo="bar",label.icon="false",label="name,type,lblStrict",label.pattern="{0}:{1} -{2}-")
+class CartesianQueuedUnit extends TwicedQueuedUnit {
+ @gmf.compartment(foo="bar")
+ val HelperUnit[*] helperUnits;
+ @gmf.compartment(foo="bar")
+ val RefactoringUnit[1] refactoringUnit;
+ @gmf.affixed(foo="bar")
+ val SingleInputPort[*] singleInputPorts;
+ @gmf.affixed(foo="bar")
+ unique val MultiInputPort[2] multiInputPorts;
+ readonly attr String type = "Cartesian Queued Unit";
+ attr String lblStrict = "strict";
+}
+
+@gmf.node(foo="bar",label.icon="false",label="name,type,lblStrict",label.pattern="{0}:{1} -{2}-")
+class ParallelQueuedUnit extends TwicedQueuedUnit {
+ @gmf.compartment(foo="bar")
+ val HelperUnit[*] helperUnits;
+ @gmf.compartment(foo="bar")
+ val RefactoringUnit[1] refactoringUnits;
+ @gmf.affixed(foo="bar")
+ val SingleInputPort[*] singleInputPorts;
+ @gmf.affixed(foo="bar")
+ unique val MultiInputPort[2] multiInputPorts;
+ readonly attr String type = "Parallel Queued Unit";
+ attr String lblStrict = "strict";
+}
+
+abstract class HelperUnit extends NamedElement, DescribedElement {
+ attr String[1] helperUnitId;
+ attr String[1] namespaceUri;
+ op InputPort[1] getInputPort();
+ op OutputPort[1] getOutputPort();
+}
+
+abstract class FeatureUnit extends HelperUnit {
+}
+
+@gmf.node(foo="bar",label.icon="false",label="name,type",label.pattern="{0}:{1}")
+class SingleFeatureUnit extends FeatureUnit {
+ @gmf.affixed(foo="bar")
+ val SingleInputPort[1] inputPort;
+ @gmf.affixed(foo="bar")
+ val MultiInputPort[*] secondaryInputPorts;
+ @gmf.affixed(foo="bar")
+ val SingleOutputPort[1] outputPort;
+ ref SingleFeatureHelper[1] singleFeatureHelper;
+ readonly attr String type = "Single Feature Unit";
+}
+
+@gmf.node(foo="bar",label.icon="false",label="name,type",label.pattern="{0}:{1}")
+class MultiFeatureUnit extends FeatureUnit {
+ @gmf.affixed(foo="bar")
+ val SingleInputPort[1] inputPort;
+ @gmf.affixed(foo="bar")
+ val MultiInputPort[*] secondaryInputPorts;
+ @gmf.affixed(foo="bar")
+ val MultiOutputPort[1] outputPort;
+ ref MultiFeatureHelper[1] multiFeatureHelper;
+ readonly attr String type = "Multi Feature Unit";
+}
+
+abstract class FilterUnit extends HelperUnit {
+}
+
+@gmf.node(foo="bar",label.icon="false",label="name,type",label.pattern="{0}:{1}")
+class SingleFilterUnit extends FilterUnit{
+ @gmf.affixed(foo="bar")
+ val MultiInputPort[1] inputPort;
+ @gmf.affixed(foo="bar")
+ val SingleOutputPort[1] outputPort;
+ ref SingleFilterHelper[1] singleFilterHelper;
+ readonly attr String type = "Single Filter Unit";
+}
+
+@gmf.node(foo="bar",label.icon="false",label="name,type",label.pattern="{0}:{1}")
+class MultiFilterUnit extends FilterUnit{
+ @gmf.affixed(foo="bar")
+ val MultiInputPort[1] inputPort;
+ @gmf.affixed(foo="bar")
+ val MultiOutputPort[1] outputPort;
+ ref MultiFilterHelper[1] multiFilterHelper;
+ readonly attr String type = "Multi Filter Unit";
+}
+
+abstract class Helper extends NamedElement, DescribedElement{
+ attr String[1] helperId;
+ attr String[1] namespaceUri;
+}
+
+abstract class FeatureHelper extends Helper{
+ val SingleInputPort[1] inputPort;
+ val MultiInputPort[*] secondaryInputPorts;
+}
+
+class SingleFeatureHelper extends FeatureHelper{
+ val SingleOutputPort[1] outputPort;
+}
+
+class MultiFeatureHelper extends FeatureHelper{
+ val MultiOutputPort[1] outputPort;
+}
+
+abstract class FilterHelper extends Helper{
+ val MultiInputPort[1] inputPort;
+
+}
+
+class SingleFilterHelper extends FilterHelper{
+ val SingleOutputPort[1] outputPort;
+}
+
+class MultiFilterHelper extends FilterHelper{
+ val MultiOutputPort[1] outputPort;
+}
+
+@gmf.node(foo="bar",label="name,type",label.icon="false",label.placement="external",label.pattern="{0}:{1}")
+abstract class Port extends NamedElement, DescribedElement {
+ attr Class[1] type;
+ op void setType(Class newType, boolean initiator);
+ op void updatePortName(String singularPortName);
+ op String getSingularPortName();
+}
+
+
+abstract class SinglePort extends Port{
+ attr Object value;
+}
+
+@gmf.node(border.color="255,0,0",border.width="10")
+abstract class MultiPort extends Port{
+ attr Object[*] value;
+}
+
+@gmf.node(figure="rectangle", size="20,20")
+abstract class InputPort extends Port{
+ op Boolean isMappingTarget();
+ op Boolean isRootPort();
+}
+
+@gmf.node(figure="ellipse",size="20,20")
+abstract class OutputPort extends Port{
+}
+
+class SingleInputPort extends SinglePort, InputPort{
+}
+
+class MultiInputPort extends MultiPort, InputPort{
+}
+
+class SingleOutputPort extends SinglePort, OutputPort{
+}
+
+class MultiOutputPort extends MultiPort, OutputPort{
+}
+
+abstract class PortMapping {
+ op Port getSource();
+ op InputPort getTarget();
+ op void updatePortTypesAndNames(Class type, String singularPortName);
+ op void updateMappingNumber();
+ op void updateVisualization();
+}
+
+@gmf.link(source="source", target="target", style="dot", width="2",target.decoration="arrow")
+class SinglePortMapping extends PortMapping {
+ ref SinglePort source;
+ ref SingleInputPort target;
+}
+
+@gmf.link(source="source", target="target", style="dot", width="2", target.decoration="arrow")
+class MultiPortMapping extends PortMapping {
+ ref MultiPort source;
+ ref MultiInputPort target;
+
+}
+
+@gmf.link(source="source", target="target", style="dot", width="2",target.decoration="arrow",tool.small.bundle="name")
+class MultiSinglePortMapping extends PortMapping {
+ ref MultiPort source;
+ ref SingleInputPort target;
+}
+
+enum MappingVisualization {
+ arrows = 0;
+ coloredPorts = 1;
+ indices = 2;
+ arrowsAndColoredPorts = 3;
+ arrowsAndIndices = 4;
+}
\ No newline at end of file
diff --git a/org.eclipse.emf.refactor.comrel/model/comrel.genmodel b/org.eclipse.emf.refactor.comrel/model/comrel.genmodel
new file mode 100644
index 0000000..06e2d43
--- /dev/null
+++ b/org.eclipse.emf.refactor.comrel/model/comrel.genmodel
@@ -0,0 +1,216 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<genmodel:GenModel xmi:version="2.0"
+ xmlns:xmi="http://www.omg.org/XMI" xmlns:ecore="http://www.eclipse.org/emf/2002/Ecore"
+ xmlns:genmodel="http://www.eclipse.org/emf/2002/GenModel" modelDirectory="/comrel/src"
+ modelPluginID="comrel" modelName="Comrel" importerID="org.eclipse.emf.importer.ecore"
+ complianceLevel="6.0" copyrightFields="false">
+ <foreignModel>comrel.ecore</foreignModel>
+ <genPackages prefix="Comrel" disposableProviderFactory="true" ecorePackage="comrel.ecore#/">
+ <genEnums typeSafeEnumCompatible="false" ecoreEnum="comrel.ecore#//MappingVisualization">
+ <genEnumLiterals ecoreEnumLiteral="comrel.ecore#//MappingVisualization/arrows"/>
+ <genEnumLiterals ecoreEnumLiteral="comrel.ecore#//MappingVisualization/coloredPorts"/>
+ <genEnumLiterals ecoreEnumLiteral="comrel.ecore#//MappingVisualization/indices"/>
+ <genEnumLiterals ecoreEnumLiteral="comrel.ecore#//MappingVisualization/arrowsAndColoredPorts"/>
+ <genEnumLiterals ecoreEnumLiteral="comrel.ecore#//MappingVisualization/arrowsAndIndices"/>
+ </genEnums>
+ <genClasses ecoreClass="comrel.ecore#//CompositeRefactoring">
+ <genFeatures property="None" children="true" createChild="true" ecoreFeature="ecore:EReference comrel.ecore#//CompositeRefactoring/mainRefactoringUnit"/>
+ <genFeatures property="None" children="true" createChild="true" ecoreFeature="ecore:EReference comrel.ecore#//CompositeRefactoring/portMappings"/>
+ <genFeatures property="None" children="true" createChild="true" ecoreFeature="ecore:EReference comrel.ecore#//CompositeRefactoring/modelRefactorings"/>
+ <genFeatures property="None" children="true" createChild="true" ecoreFeature="ecore:EReference comrel.ecore#//CompositeRefactoring/helper"/>
+ <genFeatures createChild="false" ecoreFeature="ecore:EAttribute comrel.ecore#//CompositeRefactoring/mappingVisualization"/>
+ <genFeatures createChild="false" ecoreFeature="ecore:EAttribute comrel.ecore#//CompositeRefactoring/customInitialCondition"/>
+ <genFeatures createChild="false" ecoreFeature="ecore:EAttribute comrel.ecore#//CompositeRefactoring/customFinalCondition"/>
+ </genClasses>
+ <genClasses image="false" ecoreClass="comrel.ecore#//NamedElement">
+ <genFeatures createChild="false" ecoreFeature="ecore:EAttribute comrel.ecore#//NamedElement/name"/>
+ </genClasses>
+ <genClasses image="false" ecoreClass="comrel.ecore#//DescribedElement">
+ <genFeatures createChild="false" ecoreFeature="ecore:EAttribute comrel.ecore#//DescribedElement/description"/>
+ </genClasses>
+ <genClasses image="false" ecoreClass="comrel.ecore#//RefactoringUnit">
+ <genFeatures createChild="false" ecoreFeature="ecore:EAttribute comrel.ecore#//RefactoringUnit/seqExecutionOrder"/>
+ <genOperations ecoreOperation="comrel.ecore#//RefactoringUnit/getAllInputPorts"/>
+ <genOperations ecoreOperation="comrel.ecore#//RefactoringUnit/setSeqExecutionOrder">
+ <genParameters ecoreParameter="comrel.ecore#//RefactoringUnit/setSeqExecutionOrder/seqExecutionOrder"/>
+ <genParameters ecoreParameter="comrel.ecore#//RefactoringUnit/setSeqExecutionOrder/superCall"/>
+ </genOperations>
+ <genOperations ecoreOperation="comrel.ecore#//RefactoringUnit/setName">
+ <genParameters ecoreParameter="comrel.ecore#//RefactoringUnit/setName/newName"/>
+ <genParameters ecoreParameter="comrel.ecore#//RefactoringUnit/setName/updateContainer"/>
+ </genOperations>
+ </genClasses>
+ <genClasses ecoreClass="comrel.ecore#//ModelRefactoring">
+ <genFeatures createChild="false" ecoreFeature="ecore:EAttribute comrel.ecore#//ModelRefactoring/refId"/>
+ <genFeatures createChild="false" ecoreFeature="ecore:EAttribute comrel.ecore#//ModelRefactoring/label"/>
+ <genFeatures createChild="false" ecoreFeature="ecore:EAttribute comrel.ecore#//ModelRefactoring/namespaceUri"/>
+ <genFeatures property="None" children="true" createChild="true" ecoreFeature="ecore:EReference comrel.ecore#//ModelRefactoring/inputPorts"/>
+ </genClasses>
+ <genClasses ecoreClass="comrel.ecore#//AtomicUnit">
+ <genFeatures property="None" children="true" createChild="true" ecoreFeature="ecore:EReference comrel.ecore#//AtomicUnit/inputPorts"/>
+ <genFeatures createChild="false" ecoreFeature="ecore:EAttribute comrel.ecore#//AtomicUnit/unitId"/>
+ <genFeatures createChild="false" ecoreFeature="ecore:EAttribute comrel.ecore#//AtomicUnit/label"/>
+ <genFeatures createChild="false" ecoreFeature="ecore:EAttribute comrel.ecore#//AtomicUnit/namespaceUri"/>
+ <genFeatures property="Readonly" createChild="false" ecoreFeature="ecore:EAttribute comrel.ecore#//AtomicUnit/type"/>
+ <genFeatures notify="false" createChild="false" propertySortChoices="true" ecoreFeature="ecore:EReference comrel.ecore#//AtomicUnit/modelRefactoring"/>
+ <genFeatures createChild="false" ecoreFeature="ecore:EAttribute comrel.ecore#//AtomicUnit/checkInitialConditionFlag"/>
+ <genFeatures createChild="false" ecoreFeature="ecore:EAttribute comrel.ecore#//AtomicUnit/checkFinalConditionFlag"/>
+ </genClasses>
+ <genClasses image="false" ecoreClass="comrel.ecore#//CompositeUnit"/>
+ <genClasses ecoreClass="comrel.ecore#//SequentialUnit">
+ <genFeatures property="None" children="true" createChild="true" ecoreFeature="ecore:EReference comrel.ecore#//SequentialUnit/helperUnits"/>
+ <genFeatures property="None" children="true" createChild="true" ecoreFeature="ecore:EReference comrel.ecore#//SequentialUnit/refactoringUnits"/>
+ <genFeatures property="None" children="true" createChild="true" ecoreFeature="ecore:EReference comrel.ecore#//SequentialUnit/inputPorts"/>
+ <genFeatures createChild="false" ecoreFeature="ecore:EAttribute comrel.ecore#//SequentialUnit/strict"/>
+ <genFeatures property="Readonly" createChild="false" ecoreFeature="ecore:EAttribute comrel.ecore#//SequentialUnit/type"/>
+ <genFeatures createChild="false" ecoreFeature="ecore:EAttribute comrel.ecore#//SequentialUnit/lblStrict"/>
+ <genOperations ecoreOperation="comrel.ecore#//SequentialUnit/updateSeqExecutionOrder"/>
+ </genClasses>
+ <genClasses ecoreClass="comrel.ecore#//ConditionCheck">
+ <genFeatures property="Readonly" createChild="false" ecoreFeature="ecore:EAttribute comrel.ecore#//ConditionCheck/type"/>
+ <genFeatures createChild="false" ecoreFeature="ecore:EAttribute comrel.ecore#//ConditionCheck/spec"/>
+ </genClasses>
+ <genClasses ecoreClass="comrel.ecore#//ConditionalUnit">
+ <genFeatures property="None" children="true" createChild="true" ecoreFeature="ecore:EReference comrel.ecore#//ConditionalUnit/if"/>
+ <genFeatures property="None" children="true" createChild="true" ecoreFeature="ecore:EReference comrel.ecore#//ConditionalUnit/helperUnits"/>
+ <genFeatures property="None" children="true" createChild="true" ecoreFeature="ecore:EReference comrel.ecore#//ConditionalUnit/then"/>
+ <genFeatures property="None" children="true" createChild="true" ecoreFeature="ecore:EReference comrel.ecore#//ConditionalUnit/else"/>
+ <genFeatures property="None" children="true" createChild="true" ecoreFeature="ecore:EReference comrel.ecore#//ConditionalUnit/inputPorts"/>
+ <genFeatures property="Readonly" createChild="false" ecoreFeature="ecore:EAttribute comrel.ecore#//ConditionalUnit/type"/>
+ </genClasses>
+ <genClasses image="false" ecoreClass="comrel.ecore#//QueuedUnit">
+ <genFeatures createChild="false" ecoreFeature="ecore:EAttribute comrel.ecore#//QueuedUnit/strict"/>
+ <genOperations ecoreOperation="comrel.ecore#//QueuedUnit/init"/>
+ </genClasses>
+ <genClasses ecoreClass="comrel.ecore#//SingleQueuedUnit">
+ <genFeatures property="None" children="true" createChild="true" ecoreFeature="ecore:EReference comrel.ecore#//SingleQueuedUnit/helperUnits"/>
+ <genFeatures property="None" children="true" createChild="true" ecoreFeature="ecore:EReference comrel.ecore#//SingleQueuedUnit/refactoringUnit"/>
+ <genFeatures property="None" children="true" createChild="true" ecoreFeature="ecore:EReference comrel.ecore#//SingleQueuedUnit/singleInputPorts"/>
+ <genFeatures property="None" children="true" createChild="true" ecoreFeature="ecore:EReference comrel.ecore#//SingleQueuedUnit/multiInputPort"/>
+ <genFeatures property="Readonly" createChild="false" ecoreFeature="ecore:EAttribute comrel.ecore#//SingleQueuedUnit/type"/>
+ <genFeatures createChild="false" ecoreFeature="ecore:EAttribute comrel.ecore#//SingleQueuedUnit/lblStrict"/>
+ </genClasses>
+ <genClasses image="false" ecoreClass="comrel.ecore#//TwicedQueuedUnit"/>
+ <genClasses ecoreClass="comrel.ecore#//CartesianQueuedUnit">
+ <genFeatures property="None" children="true" createChild="true" ecoreFeature="ecore:EReference comrel.ecore#//CartesianQueuedUnit/helperUnits"/>
+ <genFeatures property="None" children="true" createChild="true" ecoreFeature="ecore:EReference comrel.ecore#//CartesianQueuedUnit/refactoringUnit"/>
+ <genFeatures property="None" children="true" createChild="true" ecoreFeature="ecore:EReference comrel.ecore#//CartesianQueuedUnit/singleInputPorts"/>
+ <genFeatures property="None" children="true" createChild="true" ecoreFeature="ecore:EReference comrel.ecore#//CartesianQueuedUnit/multiInputPorts"/>
+ <genFeatures property="Readonly" createChild="false" ecoreFeature="ecore:EAttribute comrel.ecore#//CartesianQueuedUnit/type"/>
+ <genFeatures createChild="false" ecoreFeature="ecore:EAttribute comrel.ecore#//CartesianQueuedUnit/lblStrict"/>
+ </genClasses>
+ <genClasses ecoreClass="comrel.ecore#//ParallelQueuedUnit">
+ <genFeatures property="None" children="true" createChild="true" ecoreFeature="ecore:EReference comrel.ecore#//ParallelQueuedUnit/helperUnits"/>
+ <genFeatures property="None" children="true" createChild="true" ecoreFeature="ecore:EReference comrel.ecore#//ParallelQueuedUnit/refactoringUnits"/>
+ <genFeatures property="None" children="true" createChild="true" ecoreFeature="ecore:EReference comrel.ecore#//ParallelQueuedUnit/singleInputPorts"/>
+ <genFeatures property="None" children="true" createChild="true" ecoreFeature="ecore:EReference comrel.ecore#//ParallelQueuedUnit/multiInputPorts"/>
+ <genFeatures property="Readonly" createChild="false" ecoreFeature="ecore:EAttribute comrel.ecore#//ParallelQueuedUnit/type"/>
+ <genFeatures createChild="false" ecoreFeature="ecore:EAttribute comrel.ecore#//ParallelQueuedUnit/lblStrict"/>
+ </genClasses>
+ <genClasses image="false" ecoreClass="comrel.ecore#//HelperUnit">
+ <genFeatures createChild="false" ecoreFeature="ecore:EAttribute comrel.ecore#//HelperUnit/helperUnitId"/>
+ <genFeatures createChild="false" ecoreFeature="ecore:EAttribute comrel.ecore#//HelperUnit/namespaceUri"/>
+ <genOperations ecoreOperation="comrel.ecore#//HelperUnit/getInputPort"/>
+ <genOperations ecoreOperation="comrel.ecore#//HelperUnit/getOutputPort"/>
+ </genClasses>
+ <genClasses image="false" ecoreClass="comrel.ecore#//FeatureUnit"/>
+ <genClasses ecoreClass="comrel.ecore#//SingleFeatureUnit">
+ <genFeatures property="None" children="true" createChild="true" ecoreFeature="ecore:EReference comrel.ecore#//SingleFeatureUnit/inputPort"/>
+ <genFeatures property="None" children="true" createChild="true" ecoreFeature="ecore:EReference comrel.ecore#//SingleFeatureUnit/secondaryInputPorts"/>
+ <genFeatures property="None" children="true" createChild="true" ecoreFeature="ecore:EReference comrel.ecore#//SingleFeatureUnit/outputPort"/>
+ <genFeatures notify="false" createChild="false" propertySortChoices="true" ecoreFeature="ecore:EReference comrel.ecore#//SingleFeatureUnit/singleFeatureHelper"/>
+ <genFeatures property="Readonly" createChild="false" ecoreFeature="ecore:EAttribute comrel.ecore#//SingleFeatureUnit/type"/>
+ </genClasses>
+ <genClasses ecoreClass="comrel.ecore#//MultiFeatureUnit">
+ <genFeatures property="None" children="true" createChild="true" ecoreFeature="ecore:EReference comrel.ecore#//MultiFeatureUnit/inputPort"/>
+ <genFeatures property="None" children="true" createChild="true" ecoreFeature="ecore:EReference comrel.ecore#//MultiFeatureUnit/secondaryInputPorts"/>
+ <genFeatures property="None" children="true" createChild="true" ecoreFeature="ecore:EReference comrel.ecore#//MultiFeatureUnit/outputPort"/>
+ <genFeatures notify="false" createChild="false" propertySortChoices="true" ecoreFeature="ecore:EReference comrel.ecore#//MultiFeatureUnit/multiFeatureHelper"/>
+ <genFeatures property="Readonly" createChild="false" ecoreFeature="ecore:EAttribute comrel.ecore#//MultiFeatureUnit/type"/>
+ </genClasses>
+ <genClasses image="false" ecoreClass="comrel.ecore#//FilterUnit"/>
+ <genClasses ecoreClass="comrel.ecore#//SingleFilterUnit">
+ <genFeatures property="None" children="true" createChild="true" ecoreFeature="ecore:EReference comrel.ecore#//SingleFilterUnit/inputPort"/>
+ <genFeatures property="None" children="true" createChild="true" ecoreFeature="ecore:EReference comrel.ecore#//SingleFilterUnit/outputPort"/>
+ <genFeatures notify="false" createChild="false" propertySortChoices="true" ecoreFeature="ecore:EReference comrel.ecore#//SingleFilterUnit/singleFilterHelper"/>
+ <genFeatures property="Readonly" createChild="false" ecoreFeature="ecore:EAttribute comrel.ecore#//SingleFilterUnit/type"/>
+ </genClasses>
+ <genClasses ecoreClass="comrel.ecore#//MultiFilterUnit">
+ <genFeatures property="None" children="true" createChild="true" ecoreFeature="ecore:EReference comrel.ecore#//MultiFilterUnit/inputPort"/>
+ <genFeatures property="None" children="true" createChild="true" ecoreFeature="ecore:EReference comrel.ecore#//MultiFilterUnit/outputPort"/>
+ <genFeatures notify="false" createChild="false" propertySortChoices="true" ecoreFeature="ecore:EReference comrel.ecore#//MultiFilterUnit/multiFilterHelper"/>
+ <genFeatures property="Readonly" createChild="false" ecoreFeature="ecore:EAttribute comrel.ecore#//MultiFilterUnit/type"/>
+ </genClasses>
+ <genClasses image="false" ecoreClass="comrel.ecore#//Helper">
+ <genFeatures createChild="false" ecoreFeature="ecore:EAttribute comrel.ecore#//Helper/helperId"/>
+ <genFeatures createChild="false" ecoreFeature="ecore:EAttribute comrel.ecore#//Helper/namespaceUri"/>
+ </genClasses>
+ <genClasses image="false" ecoreClass="comrel.ecore#//FeatureHelper">
+ <genFeatures property="None" children="true" createChild="true" ecoreFeature="ecore:EReference comrel.ecore#//FeatureHelper/inputPort"/>
+ <genFeatures property="None" children="true" createChild="true" ecoreFeature="ecore:EReference comrel.ecore#//FeatureHelper/secondaryInputPorts"/>
+ </genClasses>
+ <genClasses ecoreClass="comrel.ecore#//SingleFeatureHelper">
+ <genFeatures property="None" children="true" createChild="true" ecoreFeature="ecore:EReference comrel.ecore#//SingleFeatureHelper/outputPort"/>
+ </genClasses>
+ <genClasses ecoreClass="comrel.ecore#//MultiFeatureHelper">
+ <genFeatures property="None" children="true" createChild="true" ecoreFeature="ecore:EReference comrel.ecore#//MultiFeatureHelper/outputPort"/>
+ </genClasses>
+ <genClasses image="false" ecoreClass="comrel.ecore#//FilterHelper">
+ <genFeatures property="None" children="true" createChild="true" ecoreFeature="ecore:EReference comrel.ecore#//FilterHelper/inputPort"/>
+ </genClasses>
+ <genClasses ecoreClass="comrel.ecore#//SingleFilterHelper">
+ <genFeatures property="None" children="true" createChild="true" ecoreFeature="ecore:EReference comrel.ecore#//SingleFilterHelper/outputPort"/>
+ </genClasses>
+ <genClasses ecoreClass="comrel.ecore#//MultiFilterHelper">
+ <genFeatures property="None" children="true" createChild="true" ecoreFeature="ecore:EReference comrel.ecore#//MultiFilterHelper/outputPort"/>
+ </genClasses>
+ <genClasses image="false" ecoreClass="comrel.ecore#//Port">
+ <genFeatures createChild="false" ecoreFeature="ecore:EAttribute comrel.ecore#//Port/type"/>
+ <genOperations ecoreOperation="comrel.ecore#//Port/setType">
+ <genParameters ecoreParameter="comrel.ecore#//Port/setType/newType"/>
+ <genParameters ecoreParameter="comrel.ecore#//Port/setType/initiator"/>
+ </genOperations>
+ <genOperations ecoreOperation="comrel.ecore#//Port/updatePortName">
+ <genParameters ecoreParameter="comrel.ecore#//Port/updatePortName/singularPortName"/>
+ </genOperations>
+ <genOperations ecoreOperation="comrel.ecore#//Port/getSingularPortName"/>
+ </genClasses>
+ <genClasses image="false" ecoreClass="comrel.ecore#//SinglePort">
+ <genFeatures createChild="false" ecoreFeature="ecore:EAttribute comrel.ecore#//SinglePort/value"/>
+ </genClasses>
+ <genClasses image="false" ecoreClass="comrel.ecore#//MultiPort">
+ <genFeatures createChild="false" ecoreFeature="ecore:EAttribute comrel.ecore#//MultiPort/value"/>
+ </genClasses>
+ <genClasses image="false" ecoreClass="comrel.ecore#//InputPort">
+ <genOperations ecoreOperation="comrel.ecore#//InputPort/isMappingTarget"/>
+ <genOperations ecoreOperation="comrel.ecore#//InputPort/isRootPort"/>
+ </genClasses>
+ <genClasses image="false" ecoreClass="comrel.ecore#//OutputPort"/>
+ <genClasses ecoreClass="comrel.ecore#//SingleInputPort"/>
+ <genClasses ecoreClass="comrel.ecore#//MultiInputPort"/>
+ <genClasses ecoreClass="comrel.ecore#//SingleOutputPort"/>
+ <genClasses ecoreClass="comrel.ecore#//MultiOutputPort"/>
+ <genClasses image="false" ecoreClass="comrel.ecore#//PortMapping">
+ <genOperations ecoreOperation="comrel.ecore#//PortMapping/getSource"/>
+ <genOperations ecoreOperation="comrel.ecore#//PortMapping/getTarget"/>
+ <genOperations ecoreOperation="comrel.ecore#//PortMapping/updatePortTypesAndNames">
+ <genParameters ecoreParameter="comrel.ecore#//PortMapping/updatePortTypesAndNames/type"/>
+ <genParameters ecoreParameter="comrel.ecore#//PortMapping/updatePortTypesAndNames/singularPortName"/>
+ </genOperations>
+ <genOperations ecoreOperation="comrel.ecore#//PortMapping/updateMappingNumber"/>
+ <genOperations ecoreOperation="comrel.ecore#//PortMapping/updateVisualization"/>
+ </genClasses>
+ <genClasses ecoreClass="comrel.ecore#//SinglePortMapping">
+ <genFeatures notify="false" createChild="false" propertySortChoices="true" ecoreFeature="ecore:EReference comrel.ecore#//SinglePortMapping/source"/>
+ <genFeatures notify="false" createChild="false" propertySortChoices="true" ecoreFeature="ecore:EReference comrel.ecore#//SinglePortMapping/target"/>
+ </genClasses>
+ <genClasses ecoreClass="comrel.ecore#//MultiPortMapping">
+ <genFeatures notify="false" createChild="false" propertySortChoices="true" ecoreFeature="ecore:EReference comrel.ecore#//MultiPortMapping/source"/>
+ <genFeatures notify="false" createChild="false" propertySortChoices="true" ecoreFeature="ecore:EReference comrel.ecore#//MultiPortMapping/target"/>
+ </genClasses>
+ <genClasses ecoreClass="comrel.ecore#//MultiSinglePortMapping">
+ <genFeatures notify="false" createChild="false" propertySortChoices="true" ecoreFeature="ecore:EReference comrel.ecore#//MultiSinglePortMapping/source"/>
+ <genFeatures notify="false" createChild="false" propertySortChoices="true" ecoreFeature="ecore:EReference comrel.ecore#//MultiSinglePortMapping/target"/>
+ </genClasses>
+ </genPackages>
+</genmodel:GenModel>
diff --git a/org.eclipse.emf.refactor.comrel/model/comrel.gmfgen b/org.eclipse.emf.refactor.comrel/model/comrel.gmfgen
new file mode 100644
index 0000000..fb41165
--- /dev/null
+++ b/org.eclipse.emf.refactor.comrel/model/comrel.gmfgen
@@ -0,0 +1,8823 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<gmfgen:GenEditorGenerator xmi:version="2.0"
+ xmlns:xmi="http://www.omg.org/XMI"
+ xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+ xmlns:gmfgen="http://www.eclipse.org/gmf/2009/GenModel" copyrightText="">
+ <diagram
+ visualID="1000"
+ editPartClassName="CompositeRefactoringEditPart"
+ itemSemanticEditPolicyClassName="CompositeRefactoringItemSemanticEditPolicy"
+ canonicalEditPolicyClassName="CompositeRefactoringCanonicalEditPolicy"
+ iconProviderPriority="Low"
+ validationProviderPriority="Low"
+ validationEnabled="true"
+ validationDecorators="true"
+ liveValidationUIFeedback="true">
+ <diagramRunTimeClass
+ href="../../../plugin/org.eclipse.gmf.runtime.notation/model/notation.genmodel#//notation/Diagram"/>
+ <elementType
+ xsi:type="gmfgen:MetamodelType"
+ editHelperClassName="CompositeRefactoringEditHelper"/>
+ <viewmap
+ xsi:type="gmfgen:FigureViewmap"
+ figureQualifiedClassName="org.eclipse.draw2d.FreeformLayer"/>
+ <containsShortcutsTo>comrel</containsShortcutsTo>
+ <shortcutsProvidedFor>comrel</shortcutsProvidedFor>
+ <domainDiagramElement
+ href="comrel.genmodel#//comrel/CompositeRefactoring"/>
+ <childNodes
+ xsi:type="gmfgen:GenChildSideAffixedNode"
+ visualID="3001"
+ editPartClassName="SingleInputPort2EditPart"
+ itemSemanticEditPolicyClassName="SingleInputPort2ItemSemanticEditPolicy"
+ notationViewFactoryClassName="SingleInputPortViewFactory"
+ canonicalEditPolicyClassName="SingleInputPort2CanonicalEditPolicy"
+ graphicalNodeEditPolicyClassName="SingleInputPort2GraphicalNodeEditPolicy"
+ createCommandClassName="SingleInputPort2CreateCommand"
+ containers="//@diagram/@topLevelNodes.1 //@diagram/@childNodes.2 //@diagram/@childNodes.6 //@diagram/@childNodes.24 //@diagram/@childNodes.28 //@diagram/@childNodes.32 //@diagram/@childNodes.46">
+ <diagramRunTimeClass
+ href="../../../plugin/org.eclipse.gmf.runtime.notation/model/notation.genmodel#//notation/Node"/>
+ <elementType
+ xsi:type="gmfgen:SpecializationType"
+ metamodelType="//@diagram/@topLevelNodes.0/@elementType"/>
+ <viewmap
+ xsi:type="gmfgen:InnerClassViewmap"
+ className="SingleInputPortFigure"
+ classBody="
/**
 * @generated
 */
public class SingleInputPortFigure extends org.eclipse.draw2d.RectangleFigure {




	/**
	 * @generated
	 */
	public SingleInputPortFigure() {
				this.setPreferredSize(new org.eclipse.draw2d.geometry.Dimension(getMapMode().DPtoLP(20)
, getMapMode().DPtoLP(20)
));
this.setBorder(new org.eclipse.draw2d.MarginBorder(getMapMode().DPtoLP(5)
, getMapMode().DPtoLP(5)
, getMapMode().DPtoLP(5)
, getMapMode().DPtoLP(5)
));
	}





}

">
+ <attributes
+ xsi:type="gmfgen:DefaultSizeAttributes"
+ width="20"
+ height="20"/>
+ </viewmap>
+ <modelFacet>
+ <metaClass
+ href="comrel.genmodel#//comrel/SingleInputPort"/>
+ <containmentMetaFeature
+ href="comrel.genmodel#//comrel/CartesianQueuedUnit/singleInputPorts"/>
+ <childMetaFeature
+ href="comrel.genmodel#//comrel/CartesianQueuedUnit/singleInputPorts"/>
+ </modelFacet>
+ <labels
+ xsi:type="gmfgen:GenExternalNodeLabel"
+ visualID="5002"
+ editPartClassName="SingleInputPortNameType2EditPart"
+ itemSemanticEditPolicyClassName="SingleInputPortNameType2ItemSemanticEditPolicy"
+ notationViewFactoryClassName="SingleInputPortNameTypeViewFactory">
+ <diagramRunTimeClass
+ href="../../../plugin/org.eclipse.gmf.runtime.notation/model/notation.genmodel#//notation/Node"/>
+ <viewmap
+ xsi:type="gmfgen:InnerClassViewmap"
+ className="SingleInputPortLabelFigure"
+ classBody="
/**
 * @generated
 */
public class SingleInputPortLabelFigure extends org.eclipse.gmf.runtime.draw2d.ui.figures.WrappingLabel {




	/**
	 * @generated
	 */
	public SingleInputPortLabelFigure() {
				this.setText("SingleInputPort");
	}





}

"/>
+ <modelFacet
+ xsi:type="gmfgen:FeatureLabelModelFacet"
+ parser="//@labelParsers/@implementations.0"
+ viewPattern="{0}:{1}"
+ editorPattern="{0}:{1}"
+ editPattern="{0}:{1}">
+ <metaFeatures
+ href="comrel.genmodel#//comrel/NamedElement/name"/>
+ <metaFeatures
+ href="comrel.genmodel#//comrel/Port/type"/>
+ </modelFacet>
+ </labels>
+ </childNodes>
+ <childNodes
+ xsi:type="gmfgen:GenChildSideAffixedNode"
+ visualID="3002"
+ editPartClassName="MultiInputPortEditPart"
+ itemSemanticEditPolicyClassName="MultiInputPortItemSemanticEditPolicy"
+ notationViewFactoryClassName="MultiInputPortViewFactory"
+ canonicalEditPolicyClassName="MultiInputPortCanonicalEditPolicy"
+ graphicalNodeEditPolicyClassName="MultiInputPortGraphicalNodeEditPolicy"
+ createCommandClassName="MultiInputPortCreateCommand"
+ containers="//@diagram/@topLevelNodes.1 //@diagram/@childNodes.2 //@diagram/@childNodes.6 //@diagram/@childNodes.24 //@diagram/@childNodes.28 //@diagram/@childNodes.32 //@diagram/@childNodes.46">
+ <diagramRunTimeClass
+ href="../../../plugin/org.eclipse.gmf.runtime.notation/model/notation.genmodel#//notation/Node"/>
+ <elementType
+ xsi:type="gmfgen:MetamodelType"
+ editHelperClassName="MultiInputPortEditHelper"/>
+ <viewmap
+ xsi:type="gmfgen:InnerClassViewmap"
+ className="MultiInputPortFigure"
+ classBody="
/**
 * @generated
 */
public class MultiInputPortFigure extends org.eclipse.draw2d.RectangleFigure {




	/**
	 * @generated
	 */
	public MultiInputPortFigure() {
				this.setLineWidth(10);
	this.setForegroundColor(THIS_FORE
);
this.setPreferredSize(new org.eclipse.draw2d.geometry.Dimension(getMapMode().DPtoLP(20)
, getMapMode().DPtoLP(20)
));
this.setBorder(new org.eclipse.draw2d.MarginBorder(getMapMode().DPtoLP(5)
, getMapMode().DPtoLP(5)
, getMapMode().DPtoLP(5)
, getMapMode().DPtoLP(5)
));
	}





}

/**
 * @generated
 */
static final org.eclipse.swt.graphics.Color THIS_FORE = new org.eclipse.swt.graphics.Color(null, 255, 0, 0);

">
+ <attributes
+ xsi:type="gmfgen:StyleAttributes"
+ fixedForeground="true"/>
+ <attributes
+ xsi:type="gmfgen:DefaultSizeAttributes"
+ width="20"
+ height="20"/>
+ </viewmap>
+ <modelFacet>
+ <metaClass
+ href="comrel.genmodel#//comrel/MultiInputPort"/>
+ <containmentMetaFeature
+ href="comrel.genmodel#//comrel/CartesianQueuedUnit/multiInputPorts"/>
+ <childMetaFeature
+ href="comrel.genmodel#//comrel/CartesianQueuedUnit/multiInputPorts"/>
+ </modelFacet>
+ <labels
+ xsi:type="gmfgen:GenExternalNodeLabel"
+ visualID="5003"
+ editPartClassName="MultiInputPortNameTypeEditPart"
+ itemSemanticEditPolicyClassName="MultiInputPortNameTypeItemSemanticEditPolicy"
+ notationViewFactoryClassName="MultiInputPortNameTypeViewFactory">
+ <diagramRunTimeClass
+ href="../../../plugin/org.eclipse.gmf.runtime.notation/model/notation.genmodel#//notation/Node"/>
+ <viewmap
+ xsi:type="gmfgen:InnerClassViewmap"
+ className="MultiInputPortLabelFigure"
+ classBody="
/**
 * @generated
 */
public class MultiInputPortLabelFigure extends org.eclipse.gmf.runtime.draw2d.ui.figures.WrappingLabel {




	/**
	 * @generated
	 */
	public MultiInputPortLabelFigure() {
				this.setText("MultiInputPort");
	}





}

"/>
+ <modelFacet
+ xsi:type="gmfgen:FeatureLabelModelFacet"
+ parser="//@labelParsers/@implementations.0"
+ viewPattern="{0}:{1}"
+ editorPattern="{0}:{1}"
+ editPattern="{0}:{1}">
+ <metaFeatures
+ href="comrel.genmodel#//comrel/NamedElement/name"/>
+ <metaFeatures
+ href="comrel.genmodel#//comrel/Port/type"/>
+ </modelFacet>
+ </labels>
+ </childNodes>
+ <childNodes
+ visualID="3003"
+ editPartClassName="CartesianQueuedUnit2EditPart"
+ itemSemanticEditPolicyClassName="CartesianQueuedUnit2ItemSemanticEditPolicy"
+ notationViewFactoryClassName="CartesianQueuedUnitViewFactory"
+ canonicalEditPolicyClassName="CartesianQueuedUnit2CanonicalEditPolicy"
+ childNodes="//@diagram/@childNodes.0 //@diagram/@childNodes.1"
+ compartments="//@diagram/@compartments.2 //@diagram/@compartments.3"
+ graphicalNodeEditPolicyClassName="CartesianQueuedUnit2GraphicalNodeEditPolicy"
+ createCommandClassName="CartesianQueuedUnit2CreateCommand"
+ containers="//@diagram/@compartments.3 //@diagram/@compartments.7 //@diagram/@compartments.11 //@diagram/@compartments.15 //@diagram/@compartments.21 //@diagram/@compartments.39 //@diagram/@compartments.1">
+ <diagramRunTimeClass
+ href="../../../plugin/org.eclipse.gmf.runtime.notation/model/notation.genmodel#//notation/Node"/>
+ <elementType
+ xsi:type="gmfgen:SpecializationType"
+ metamodelType="//@diagram/@topLevelNodes.1/@elementType"/>
+ <viewmap
+ xsi:type="gmfgen:InnerClassViewmap"
+ className="CartesianQueuedUnitFigure"
+ classBody="
/**
 * @generated
 */
public class CartesianQueuedUnitFigure extends org.eclipse.draw2d.RoundedRectangle {


	/**
	 * @generated
	 */
	private org.eclipse.gmf.runtime.draw2d.ui.figures.WrappingLabel fFigureCartesianQueuedUnitLabelFigure; 
	/**
	 * @generated
	 */
	private org.eclipse.draw2d.RectangleFigure fCartesianQueuedUnitHelperUnitsCompartmentFigure; 
	/**
	 * @generated
	 */
	private org.eclipse.draw2d.RectangleFigure fCartesianQueuedUnitRefactoringUnitCompartmentFigure; 


	/**
	 * @generated
	 */
	public CartesianQueuedUnitFigure() {
				this.setCornerDimensions(new org.eclipse.draw2d.geometry.Dimension(getMapMode().DPtoLP(8)
, getMapMode().DPtoLP(8)
));
this.setBorder(new org.eclipse.draw2d.MarginBorder(getMapMode().DPtoLP(5)
, getMapMode().DPtoLP(5)
, getMapMode().DPtoLP(5)
, getMapMode().DPtoLP(5)
));
		createContents();
	}
	/**
	 * @generated
	 */
	private void createContents(){


fFigureCartesianQueuedUnitLabelFigure = new org.eclipse.gmf.runtime.draw2d.ui.figures.WrappingLabel();
fFigureCartesianQueuedUnitLabelFigure.setText("CartesianQueuedUnit");
fFigureCartesianQueuedUnitLabelFigure.setMaximumSize(new org.eclipse.draw2d.geometry.Dimension(getMapMode().DPtoLP(10000)
, getMapMode().DPtoLP(50)
));

this.add(fFigureCartesianQueuedUnitLabelFigure);



fCartesianQueuedUnitHelperUnitsCompartmentFigure = new org.eclipse.draw2d.RectangleFigure();
fCartesianQueuedUnitHelperUnitsCompartmentFigure.setOutline(false);

this.add(fCartesianQueuedUnitHelperUnitsCompartmentFigure);



fCartesianQueuedUnitRefactoringUnitCompartmentFigure = new org.eclipse.draw2d.RectangleFigure();
fCartesianQueuedUnitRefactoringUnitCompartmentFigure.setOutline(false);

this.add(fCartesianQueuedUnitRefactoringUnitCompartmentFigure);


	}





	/**
	 * @generated
	 */
	public org.eclipse.gmf.runtime.draw2d.ui.figures.WrappingLabel getFigureCartesianQueuedUnitLabelFigure() {
		return fFigureCartesianQueuedUnitLabelFigure;
	}
	/**
	 * @generated
	 */
	public org.eclipse.draw2d.RectangleFigure getCartesianQueuedUnitHelperUnitsCompartmentFigure() {
		return fCartesianQueuedUnitHelperUnitsCompartmentFigure;
	}
	/**
	 * @generated
	 */
	public org.eclipse.draw2d.RectangleFigure getCartesianQueuedUnitRefactoringUnitCompartmentFigure() {
		return fCartesianQueuedUnitRefactoringUnitCompartmentFigure;
	}


}

"/>
+ <behaviour
+ xsi:type="gmfgen:OpenDiagramBehaviour"/>
+ <modelFacet>
+ <metaClass
+ href="comrel.genmodel#//comrel/CartesianQueuedUnit"/>
+ <containmentMetaFeature
+ href="comrel.genmodel#//comrel/CartesianQueuedUnit/refactoringUnit"/>
+ <childMetaFeature
+ href="comrel.genmodel#//comrel/CartesianQueuedUnit/refactoringUnit"/>
+ </modelFacet>
+ <labels
+ visualID="5079"
+ editPartClassName="CartesianQueuedUnitNameTypeLblStrict2EditPart"
+ itemSemanticEditPolicyClassName="CartesianQueuedUnitNameTypeLblStrict2ItemSemanticEditPolicy"
+ notationViewFactoryClassName="CartesianQueuedUnitNameTypeLblStrictViewFactory">
+ <diagramRunTimeClass
+ href="../../../plugin/org.eclipse.gmf.runtime.notation/model/notation.genmodel#//notation/Node"/>
+ <viewmap
+ xsi:type="gmfgen:ParentAssignedViewmap"
+ getterName="getFigureCartesianQueuedUnitLabelFigure"
+ figureQualifiedClassName="org.eclipse.gmf.runtime.draw2d.ui.figures.WrappingLabel"/>
+ <modelFacet
+ xsi:type="gmfgen:FeatureLabelModelFacet"
+ parser="//@labelParsers/@implementations.0"
+ viewPattern="{0}:{1} -{2}-"
+ editorPattern="{0}:{1} -{2}-"
+ editPattern="{0}:{1} -{2}-">
+ <metaFeatures
+ href="comrel.genmodel#//comrel/NamedElement/name"/>
+ <metaFeatures
+ href="comrel.genmodel#//comrel/CartesianQueuedUnit/type"/>
+ <metaFeatures
+ href="comrel.genmodel#//comrel/CartesianQueuedUnit/lblStrict"/>
+ </modelFacet>
+ </labels>
+ </childNodes>
+ <childNodes
+ visualID="3004"
+ editPartClassName="ParallelQueuedUnit2EditPart"
+ itemSemanticEditPolicyClassName="ParallelQueuedUnit2ItemSemanticEditPolicy"
+ notationViewFactoryClassName="ParallelQueuedUnitViewFactory"
+ canonicalEditPolicyClassName="ParallelQueuedUnit2CanonicalEditPolicy"
+ childNodes="//@diagram/@childNodes.4 //@diagram/@childNodes.5"
+ compartments="//@diagram/@compartments.4 //@diagram/@compartments.5"
+ graphicalNodeEditPolicyClassName="ParallelQueuedUnit2GraphicalNodeEditPolicy"
+ createCommandClassName="ParallelQueuedUnit2CreateCommand"
+ containers="//@diagram/@compartments.7 //@diagram/@compartments.11 //@diagram/@compartments.15 //@diagram/@compartments.21 //@diagram/@compartments.39 //@diagram/@compartments.3 //@diagram/@compartments.1">
+ <diagramRunTimeClass
+ href="../../../plugin/org.eclipse.gmf.runtime.notation/model/notation.genmodel#//notation/Node"/>
+ <elementType
+ xsi:type="gmfgen:MetamodelType"
+ editHelperClassName="ParallelQueuedUnitEditHelper"/>
+ <viewmap
+ xsi:type="gmfgen:InnerClassViewmap"
+ className="ParallelQueuedUnitFigure"
+ classBody="
/**
 * @generated
 */
public class ParallelQueuedUnitFigure extends org.eclipse.draw2d.RoundedRectangle {


	/**
	 * @generated
	 */
	private org.eclipse.gmf.runtime.draw2d.ui.figures.WrappingLabel fFigureParallelQueuedUnitLabelFigure; 
	/**
	 * @generated
	 */
	private org.eclipse.draw2d.RectangleFigure fParallelQueuedUnitHelperUnitsCompartmentFigure; 
	/**
	 * @generated
	 */
	private org.eclipse.draw2d.RectangleFigure fParallelQueuedUnitRefactoringUnitsCompartmentFigure; 


	/**
	 * @generated
	 */
	public ParallelQueuedUnitFigure() {
				this.setCornerDimensions(new org.eclipse.draw2d.geometry.Dimension(getMapMode().DPtoLP(8)
, getMapMode().DPtoLP(8)
));
this.setBorder(new org.eclipse.draw2d.MarginBorder(getMapMode().DPtoLP(5)
, getMapMode().DPtoLP(5)
, getMapMode().DPtoLP(5)
, getMapMode().DPtoLP(5)
));
		createContents();
	}
	/**
	 * @generated
	 */
	private void createContents(){


fFigureParallelQueuedUnitLabelFigure = new org.eclipse.gmf.runtime.draw2d.ui.figures.WrappingLabel();
fFigureParallelQueuedUnitLabelFigure.setText("ParallelQueuedUnit");
fFigureParallelQueuedUnitLabelFigure.setMaximumSize(new org.eclipse.draw2d.geometry.Dimension(getMapMode().DPtoLP(10000)
, getMapMode().DPtoLP(50)
));

this.add(fFigureParallelQueuedUnitLabelFigure);



fParallelQueuedUnitHelperUnitsCompartmentFigure = new org.eclipse.draw2d.RectangleFigure();
fParallelQueuedUnitHelperUnitsCompartmentFigure.setOutline(false);

this.add(fParallelQueuedUnitHelperUnitsCompartmentFigure);



fParallelQueuedUnitRefactoringUnitsCompartmentFigure = new org.eclipse.draw2d.RectangleFigure();
fParallelQueuedUnitRefactoringUnitsCompartmentFigure.setOutline(false);

this.add(fParallelQueuedUnitRefactoringUnitsCompartmentFigure);


	}





	/**
	 * @generated
	 */
	public org.eclipse.gmf.runtime.draw2d.ui.figures.WrappingLabel getFigureParallelQueuedUnitLabelFigure() {
		return fFigureParallelQueuedUnitLabelFigure;
	}
	/**
	 * @generated
	 */
	public org.eclipse.draw2d.RectangleFigure getParallelQueuedUnitHelperUnitsCompartmentFigure() {
		return fParallelQueuedUnitHelperUnitsCompartmentFigure;
	}
	/**
	 * @generated
	 */
	public org.eclipse.draw2d.RectangleFigure getParallelQueuedUnitRefactoringUnitsCompartmentFigure() {
		return fParallelQueuedUnitRefactoringUnitsCompartmentFigure;
	}


}

"/>
+ <behaviour
+ xsi:type="gmfgen:OpenDiagramBehaviour"/>
+ <modelFacet>
+ <metaClass
+ href="comrel.genmodel#//comrel/ParallelQueuedUnit"/>
+ <containmentMetaFeature
+ href="comrel.genmodel#//comrel/CartesianQueuedUnit/refactoringUnit"/>
+ <childMetaFeature
+ href="comrel.genmodel#//comrel/CartesianQueuedUnit/refactoringUnit"/>
+ </modelFacet>
+ <labels
+ visualID="5078"
+ editPartClassName="ParallelQueuedUnitNameTypeLblStrict2EditPart"
+ itemSemanticEditPolicyClassName="ParallelQueuedUnitNameTypeLblStrict2ItemSemanticEditPolicy"
+ notationViewFactoryClassName="ParallelQueuedUnitNameTypeLblStrictViewFactory">
+ <diagramRunTimeClass
+ href="../../../plugin/org.eclipse.gmf.runtime.notation/model/notation.genmodel#//notation/Node"/>
+ <viewmap
+ xsi:type="gmfgen:ParentAssignedViewmap"
+ getterName="getFigureParallelQueuedUnitLabelFigure"
+ figureQualifiedClassName="org.eclipse.gmf.runtime.draw2d.ui.figures.WrappingLabel"/>
+ <modelFacet
+ xsi:type="gmfgen:FeatureLabelModelFacet"
+ parser="//@labelParsers/@implementations.0"
+ viewPattern="{0}:{1} -{2}-"
+ editorPattern="{0}:{1} -{2}-"
+ editPattern="{0}:{1} -{2}-">
+ <metaFeatures
+ href="comrel.genmodel#//comrel/NamedElement/name"/>
+ <metaFeatures
+ href="comrel.genmodel#//comrel/ParallelQueuedUnit/type"/>
+ <metaFeatures
+ href="comrel.genmodel#//comrel/ParallelQueuedUnit/lblStrict"/>
+ </modelFacet>
+ </labels>
+ </childNodes>
+ <childNodes
+ xsi:type="gmfgen:GenChildSideAffixedNode"
+ visualID="3005"
+ editPartClassName="SingleInputPort3EditPart"
+ itemSemanticEditPolicyClassName="SingleInputPort3ItemSemanticEditPolicy"
+ notationViewFactoryClassName="SingleInputPortViewFactory"
+ canonicalEditPolicyClassName="SingleInputPort3CanonicalEditPolicy"
+ graphicalNodeEditPolicyClassName="SingleInputPort3GraphicalNodeEditPolicy"
+ createCommandClassName="SingleInputPort3CreateCommand"
+ containers="//@diagram/@childNodes.3 //@diagram/@childNodes.35 //@diagram/@childNodes.36 //@diagram/@childNodes.42 //@diagram/@childNodes.44 //@diagram/@childNodes.47 //@diagram/@topLevelNodes.2">
+ <diagramRunTimeClass
+ href="../../../plugin/org.eclipse.gmf.runtime.notation/model/notation.genmodel#//notation/Node"/>
+ <elementType
+ xsi:type="gmfgen:SpecializationType"
+ metamodelType="//@diagram/@topLevelNodes.0/@elementType"/>
+ <viewmap
+ xsi:type="gmfgen:InnerClassViewmap"
+ className="SingleInputPortFigure"
+ classBody="
/**
 * @generated
 */
public class SingleInputPortFigure extends org.eclipse.draw2d.RectangleFigure {




	/**
	 * @generated
	 */
	public SingleInputPortFigure() {
				this.setPreferredSize(new org.eclipse.draw2d.geometry.Dimension(getMapMode().DPtoLP(20)
, getMapMode().DPtoLP(20)
));
this.setBorder(new org.eclipse.draw2d.MarginBorder(getMapMode().DPtoLP(5)
, getMapMode().DPtoLP(5)
, getMapMode().DPtoLP(5)
, getMapMode().DPtoLP(5)
));
	}





}

">
+ <attributes
+ xsi:type="gmfgen:DefaultSizeAttributes"
+ width="20"
+ height="20"/>
+ </viewmap>
+ <modelFacet>
+ <metaClass
+ href="comrel.genmodel#//comrel/SingleInputPort"/>
+ <containmentMetaFeature
+ href="comrel.genmodel#//comrel/ParallelQueuedUnit/singleInputPorts"/>
+ <childMetaFeature
+ href="comrel.genmodel#//comrel/ParallelQueuedUnit/singleInputPorts"/>
+ </modelFacet>
+ <labels
+ xsi:type="gmfgen:GenExternalNodeLabel"
+ visualID="5004"
+ editPartClassName="SingleInputPortNameType3EditPart"
+ itemSemanticEditPolicyClassName="SingleInputPortNameType3ItemSemanticEditPolicy"
+ notationViewFactoryClassName="SingleInputPortNameTypeViewFactory">
+ <diagramRunTimeClass
+ href="../../../plugin/org.eclipse.gmf.runtime.notation/model/notation.genmodel#//notation/Node"/>
+ <viewmap
+ xsi:type="gmfgen:InnerClassViewmap"
+ className="SingleInputPortLabelFigure"
+ classBody="
/**
 * @generated
 */
public class SingleInputPortLabelFigure extends org.eclipse.gmf.runtime.draw2d.ui.figures.WrappingLabel {




	/**
	 * @generated
	 */
	public SingleInputPortLabelFigure() {
				this.setText("SingleInputPort");
	}





}

"/>
+ <modelFacet
+ xsi:type="gmfgen:FeatureLabelModelFacet"
+ parser="//@labelParsers/@implementations.0"
+ viewPattern="{0}:{1}"
+ editorPattern="{0}:{1}"
+ editPattern="{0}:{1}">
+ <metaFeatures
+ href="comrel.genmodel#//comrel/NamedElement/name"/>
+ <metaFeatures
+ href="comrel.genmodel#//comrel/Port/type"/>
+ </modelFacet>
+ </labels>
+ </childNodes>
+ <childNodes
+ xsi:type="gmfgen:GenChildSideAffixedNode"
+ visualID="3006"
+ editPartClassName="MultiInputPort2EditPart"
+ itemSemanticEditPolicyClassName="MultiInputPort2ItemSemanticEditPolicy"
+ notationViewFactoryClassName="MultiInputPortViewFactory"
+ canonicalEditPolicyClassName="MultiInputPort2CanonicalEditPolicy"
+ graphicalNodeEditPolicyClassName="MultiInputPort2GraphicalNodeEditPolicy"
+ createCommandClassName="MultiInputPort2CreateCommand"
+ containers="//@diagram/@childNodes.3 //@diagram/@childNodes.35 //@diagram/@childNodes.36 //@diagram/@childNodes.42 //@diagram/@childNodes.44 //@diagram/@childNodes.47 //@diagram/@topLevelNodes.2">
+ <diagramRunTimeClass
+ href="../../../plugin/org.eclipse.gmf.runtime.notation/model/notation.genmodel#//notation/Node"/>
+ <elementType
+ xsi:type="gmfgen:SpecializationType"
+ metamodelType="//@diagram/@childNodes.1/@elementType"/>
+ <viewmap
+ xsi:type="gmfgen:InnerClassViewmap"
+ className="MultiInputPortFigure"
+ classBody="
/**
 * @generated
 */
public class MultiInputPortFigure extends org.eclipse.draw2d.RectangleFigure {




	/**
	 * @generated
	 */
	public MultiInputPortFigure() {
				this.setLineWidth(10);
	this.setForegroundColor(THIS_FORE
);
this.setPreferredSize(new org.eclipse.draw2d.geometry.Dimension(getMapMode().DPtoLP(20)
, getMapMode().DPtoLP(20)
));
this.setBorder(new org.eclipse.draw2d.MarginBorder(getMapMode().DPtoLP(5)
, getMapMode().DPtoLP(5)
, getMapMode().DPtoLP(5)
, getMapMode().DPtoLP(5)
));
	}





}

/**
 * @generated
 */
static final org.eclipse.swt.graphics.Color THIS_FORE = new org.eclipse.swt.graphics.Color(null, 255, 0, 0);

">
+ <attributes
+ xsi:type="gmfgen:StyleAttributes"
+ fixedForeground="true"/>
+ <attributes
+ xsi:type="gmfgen:DefaultSizeAttributes"
+ width="20"
+ height="20"/>
+ </viewmap>
+ <modelFacet>
+ <metaClass
+ href="comrel.genmodel#//comrel/MultiInputPort"/>
+ <containmentMetaFeature
+ href="comrel.genmodel#//comrel/ParallelQueuedUnit/multiInputPorts"/>
+ <childMetaFeature
+ href="comrel.genmodel#//comrel/ParallelQueuedUnit/multiInputPorts"/>
+ </modelFacet>
+ <labels
+ xsi:type="gmfgen:GenExternalNodeLabel"
+ visualID="5005"
+ editPartClassName="MultiInputPortNameType2EditPart"
+ itemSemanticEditPolicyClassName="MultiInputPortNameType2ItemSemanticEditPolicy"
+ notationViewFactoryClassName="MultiInputPortNameTypeViewFactory">
+ <diagramRunTimeClass
+ href="../../../plugin/org.eclipse.gmf.runtime.notation/model/notation.genmodel#//notation/Node"/>
+ <viewmap
+ xsi:type="gmfgen:InnerClassViewmap"
+ className="MultiInputPortLabelFigure"
+ classBody="
/**
 * @generated
 */
public class MultiInputPortLabelFigure extends org.eclipse.gmf.runtime.draw2d.ui.figures.WrappingLabel {




	/**
	 * @generated
	 */
	public MultiInputPortLabelFigure() {
				this.setText("MultiInputPort");
	}





}

"/>
+ <modelFacet
+ xsi:type="gmfgen:FeatureLabelModelFacet"
+ parser="//@labelParsers/@implementations.0"
+ viewPattern="{0}:{1}"
+ editorPattern="{0}:{1}"
+ editPattern="{0}:{1}">
+ <metaFeatures
+ href="comrel.genmodel#//comrel/NamedElement/name"/>
+ <metaFeatures
+ href="comrel.genmodel#//comrel/Port/type"/>
+ </modelFacet>
+ </labels>
+ </childNodes>
+ <childNodes
+ visualID="3007"
+ editPartClassName="CartesianQueuedUnit3EditPart"
+ itemSemanticEditPolicyClassName="CartesianQueuedUnit3ItemSemanticEditPolicy"
+ notationViewFactoryClassName="CartesianQueuedUnitViewFactory"
+ canonicalEditPolicyClassName="CartesianQueuedUnit3CanonicalEditPolicy"
+ childNodes="//@diagram/@childNodes.0 //@diagram/@childNodes.1"
+ compartments="//@diagram/@compartments.6 //@diagram/@compartments.7"
+ graphicalNodeEditPolicyClassName="CartesianQueuedUnit3GraphicalNodeEditPolicy"
+ createCommandClassName="CartesianQueuedUnit3CreateCommand"
+ containers="//@diagram/@compartments.23 //@diagram/@compartments.25 //@diagram/@compartments.29 //@diagram/@compartments.33 //@diagram/@compartments.41 //@diagram/@compartments.5 //@diagram/@compartments.75">
+ <diagramRunTimeClass
+ href="../../../plugin/org.eclipse.gmf.runtime.notation/model/notation.genmodel#//notation/Node"/>
+ <elementType
+ xsi:type="gmfgen:SpecializationType"
+ metamodelType="//@diagram/@topLevelNodes.1/@elementType"/>
+ <viewmap
+ xsi:type="gmfgen:InnerClassViewmap"
+ className="CartesianQueuedUnitFigure"
+ classBody="
/**
 * @generated
 */
public class CartesianQueuedUnitFigure extends org.eclipse.draw2d.RoundedRectangle {


	/**
	 * @generated
	 */
	private org.eclipse.gmf.runtime.draw2d.ui.figures.WrappingLabel fFigureCartesianQueuedUnitLabelFigure; 
	/**
	 * @generated
	 */
	private org.eclipse.draw2d.RectangleFigure fCartesianQueuedUnitHelperUnitsCompartmentFigure; 
	/**
	 * @generated
	 */
	private org.eclipse.draw2d.RectangleFigure fCartesianQueuedUnitRefactoringUnitCompartmentFigure; 


	/**
	 * @generated
	 */
	public CartesianQueuedUnitFigure() {
				this.setCornerDimensions(new org.eclipse.draw2d.geometry.Dimension(getMapMode().DPtoLP(8)
, getMapMode().DPtoLP(8)
));
this.setBorder(new org.eclipse.draw2d.MarginBorder(getMapMode().DPtoLP(5)
, getMapMode().DPtoLP(5)
, getMapMode().DPtoLP(5)
, getMapMode().DPtoLP(5)
));
		createContents();
	}
	/**
	 * @generated
	 */
	private void createContents(){


fFigureCartesianQueuedUnitLabelFigure = new org.eclipse.gmf.runtime.draw2d.ui.figures.WrappingLabel();
fFigureCartesianQueuedUnitLabelFigure.setText("CartesianQueuedUnit");
fFigureCartesianQueuedUnitLabelFigure.setMaximumSize(new org.eclipse.draw2d.geometry.Dimension(getMapMode().DPtoLP(10000)
, getMapMode().DPtoLP(50)
));

this.add(fFigureCartesianQueuedUnitLabelFigure);



fCartesianQueuedUnitHelperUnitsCompartmentFigure = new org.eclipse.draw2d.RectangleFigure();
fCartesianQueuedUnitHelperUnitsCompartmentFigure.setOutline(false);

this.add(fCartesianQueuedUnitHelperUnitsCompartmentFigure);



fCartesianQueuedUnitRefactoringUnitCompartmentFigure = new org.eclipse.draw2d.RectangleFigure();
fCartesianQueuedUnitRefactoringUnitCompartmentFigure.setOutline(false);

this.add(fCartesianQueuedUnitRefactoringUnitCompartmentFigure);


	}





	/**
	 * @generated
	 */
	public org.eclipse.gmf.runtime.draw2d.ui.figures.WrappingLabel getFigureCartesianQueuedUnitLabelFigure() {
		return fFigureCartesianQueuedUnitLabelFigure;
	}
	/**
	 * @generated
	 */
	public org.eclipse.draw2d.RectangleFigure getCartesianQueuedUnitHelperUnitsCompartmentFigure() {
		return fCartesianQueuedUnitHelperUnitsCompartmentFigure;
	}
	/**
	 * @generated
	 */
	public org.eclipse.draw2d.RectangleFigure getCartesianQueuedUnitRefactoringUnitCompartmentFigure() {
		return fCartesianQueuedUnitRefactoringUnitCompartmentFigure;
	}


}

"/>
+ <behaviour
+ xsi:type="gmfgen:OpenDiagramBehaviour"/>
+ <modelFacet>
+ <metaClass
+ href="comrel.genmodel#//comrel/CartesianQueuedUnit"/>
+ <containmentMetaFeature
+ href="comrel.genmodel#//comrel/ParallelQueuedUnit/refactoringUnits"/>
+ <childMetaFeature
+ href="comrel.genmodel#//comrel/ParallelQueuedUnit/refactoringUnits"/>
+ </modelFacet>
+ <labels
+ visualID="5077"
+ editPartClassName="CartesianQueuedUnitNameTypeLblStrict3EditPart"
+ itemSemanticEditPolicyClassName="CartesianQueuedUnitNameTypeLblStrict3ItemSemanticEditPolicy"
+ notationViewFactoryClassName="CartesianQueuedUnitNameTypeLblStrictViewFactory">
+ <diagramRunTimeClass
+ href="../../../plugin/org.eclipse.gmf.runtime.notation/model/notation.genmodel#//notation/Node"/>
+ <viewmap
+ xsi:type="gmfgen:ParentAssignedViewmap"
+ getterName="getFigureCartesianQueuedUnitLabelFigure"
+ figureQualifiedClassName="org.eclipse.gmf.runtime.draw2d.ui.figures.WrappingLabel"/>
+ <modelFacet
+ xsi:type="gmfgen:FeatureLabelModelFacet"
+ parser="//@labelParsers/@implementations.0"
+ viewPattern="{0}:{1} -{2}-"
+ editorPattern="{0}:{1} -{2}-"
+ editPattern="{0}:{1} -{2}-">
+ <metaFeatures
+ href="comrel.genmodel#//comrel/NamedElement/name"/>
+ <metaFeatures
+ href="comrel.genmodel#//comrel/CartesianQueuedUnit/type"/>
+ <metaFeatures
+ href="comrel.genmodel#//comrel/CartesianQueuedUnit/lblStrict"/>
+ </modelFacet>
+ </labels>
+ </childNodes>
+ <childNodes
+ visualID="3008"
+ editPartClassName="SingleFeatureUnitEditPart"
+ itemSemanticEditPolicyClassName="SingleFeatureUnitItemSemanticEditPolicy"
+ notationViewFactoryClassName="SingleFeatureUnitViewFactory"
+ canonicalEditPolicyClassName="SingleFeatureUnitCanonicalEditPolicy"
+ childNodes="//@diagram/@childNodes.8 //@diagram/@childNodes.9 //@diagram/@childNodes.10"
+ graphicalNodeEditPolicyClassName="SingleFeatureUnitGraphicalNodeEditPolicy"
+ createCommandClassName="SingleFeatureUnitCreateCommand"
+ containers="//@diagram/@compartments.6 //@diagram/@compartments.10 //@diagram/@compartments.14 //@diagram/@compartments.20 //@diagram/@compartments.38 //@diagram/@compartments.2 //@diagram/@compartments.0">
+ <diagramRunTimeClass
+ href="../../../plugin/org.eclipse.gmf.runtime.notation/model/notation.genmodel#//notation/Node"/>
+ <elementType
+ xsi:type="gmfgen:MetamodelType"
+ editHelperClassName="SingleFeatureUnitEditHelper"/>
+ <viewmap
+ xsi:type="gmfgen:InnerClassViewmap"
+ className="SingleFeatureUnitFigure"
+ classBody="
/**
 * @generated
 */
public class SingleFeatureUnitFigure extends org.eclipse.draw2d.RoundedRectangle {


	/**
	 * @generated
	 */
	private org.eclipse.gmf.runtime.draw2d.ui.figures.WrappingLabel fFigureSingleFeatureUnitLabelFigure; 


	/**
	 * @generated
	 */
	public SingleFeatureUnitFigure() {
				this.setCornerDimensions(new org.eclipse.draw2d.geometry.Dimension(getMapMode().DPtoLP(8)
, getMapMode().DPtoLP(8)
));
this.setBorder(new org.eclipse.draw2d.MarginBorder(getMapMode().DPtoLP(5)
, getMapMode().DPtoLP(5)
, getMapMode().DPtoLP(5)
, getMapMode().DPtoLP(5)
));
		createContents();
	}
	/**
	 * @generated
	 */
	private void createContents(){


fFigureSingleFeatureUnitLabelFigure = new org.eclipse.gmf.runtime.draw2d.ui.figures.WrappingLabel();
fFigureSingleFeatureUnitLabelFigure.setText("SingleFeatureUnit");

this.add(fFigureSingleFeatureUnitLabelFigure);


	}





	/**
	 * @generated
	 */
	public org.eclipse.gmf.runtime.draw2d.ui.figures.WrappingLabel getFigureSingleFeatureUnitLabelFigure() {
		return fFigureSingleFeatureUnitLabelFigure;
	}


}

"/>
+ <modelFacet>
+ <metaClass
+ href="comrel.genmodel#//comrel/SingleFeatureUnit"/>
+ <containmentMetaFeature
+ href="comrel.genmodel#//comrel/CartesianQueuedUnit/helperUnits"/>
+ <childMetaFeature
+ href="comrel.genmodel#//comrel/CartesianQueuedUnit/helperUnits"/>
+ </modelFacet>
+ <labels
+ visualID="5009"
+ editPartClassName="SingleFeatureUnitNameTypeEditPart"
+ itemSemanticEditPolicyClassName="SingleFeatureUnitNameTypeItemSemanticEditPolicy"
+ notationViewFactoryClassName="SingleFeatureUnitNameTypeViewFactory">
+ <diagramRunTimeClass
+ href="../../../plugin/org.eclipse.gmf.runtime.notation/model/notation.genmodel#//notation/Node"/>
+ <viewmap
+ xsi:type="gmfgen:ParentAssignedViewmap"
+ getterName="getFigureSingleFeatureUnitLabelFigure"
+ figureQualifiedClassName="org.eclipse.gmf.runtime.draw2d.ui.figures.WrappingLabel"/>
+ <modelFacet
+ xsi:type="gmfgen:FeatureLabelModelFacet"
+ parser="//@labelParsers/@implementations.0"
+ viewPattern="{0}:{1}"
+ editorPattern="{0}:{1}"
+ editPattern="{0}:{1}">
+ <metaFeatures
+ href="comrel.genmodel#//comrel/NamedElement/name"/>
+ <metaFeatures
+ href="comrel.genmodel#//comrel/SingleFeatureUnit/type"/>
+ </modelFacet>
+ </labels>
+ </childNodes>
+ <childNodes
+ xsi:type="gmfgen:GenChildSideAffixedNode"
+ visualID="3009"
+ editPartClassName="SingleInputPort4EditPart"
+ itemSemanticEditPolicyClassName="SingleInputPort4ItemSemanticEditPolicy"
+ notationViewFactoryClassName="SingleInputPortViewFactory"
+ canonicalEditPolicyClassName="SingleInputPort4CanonicalEditPolicy"
+ graphicalNodeEditPolicyClassName="SingleInputPort4GraphicalNodeEditPolicy"
+ createCommandClassName="SingleInputPort4CreateCommand"
+ containers="//@diagram/@childNodes.7 //@diagram/@childNodes.37 //@diagram/@childNodes.49 //@diagram/@childNodes.54 //@diagram/@childNodes.60">
+ <diagramRunTimeClass
+ href="../../../plugin/org.eclipse.gmf.runtime.notation/model/notation.genmodel#//notation/Node"/>
+ <elementType
+ xsi:type="gmfgen:SpecializationType"
+ metamodelType="//@diagram/@topLevelNodes.0/@elementType"/>
+ <viewmap
+ xsi:type="gmfgen:InnerClassViewmap"
+ className="SingleInputPortFigure"
+ classBody="
/**
 * @generated
 */
public class SingleInputPortFigure extends org.eclipse.draw2d.RectangleFigure {




	/**
	 * @generated
	 */
	public SingleInputPortFigure() {
				this.setPreferredSize(new org.eclipse.draw2d.geometry.Dimension(getMapMode().DPtoLP(20)
, getMapMode().DPtoLP(20)
));
this.setBorder(new org.eclipse.draw2d.MarginBorder(getMapMode().DPtoLP(5)
, getMapMode().DPtoLP(5)
, getMapMode().DPtoLP(5)
, getMapMode().DPtoLP(5)
));
	}





}

">
+ <attributes
+ xsi:type="gmfgen:DefaultSizeAttributes"
+ width="20"
+ height="20"/>
+ </viewmap>
+ <modelFacet>
+ <metaClass
+ href="comrel.genmodel#//comrel/SingleInputPort"/>
+ <containmentMetaFeature
+ href="comrel.genmodel#//comrel/SingleFeatureUnit/inputPort"/>
+ <childMetaFeature
+ href="comrel.genmodel#//comrel/SingleFeatureUnit/inputPort"/>
+ </modelFacet>
+ <labels
+ xsi:type="gmfgen:GenExternalNodeLabel"
+ visualID="5006"
+ editPartClassName="SingleInputPortNameType4EditPart"
+ itemSemanticEditPolicyClassName="SingleInputPortNameType4ItemSemanticEditPolicy"
+ notationViewFactoryClassName="SingleInputPortNameTypeViewFactory">
+ <diagramRunTimeClass
+ href="../../../plugin/org.eclipse.gmf.runtime.notation/model/notation.genmodel#//notation/Node"/>
+ <viewmap
+ xsi:type="gmfgen:InnerClassViewmap"
+ className="SingleInputPortLabelFigure"
+ classBody="
/**
 * @generated
 */
public class SingleInputPortLabelFigure extends org.eclipse.gmf.runtime.draw2d.ui.figures.WrappingLabel {




	/**
	 * @generated
	 */
	public SingleInputPortLabelFigure() {
				this.setText("SingleInputPort");
	}





}

"/>
+ <modelFacet
+ xsi:type="gmfgen:FeatureLabelModelFacet"
+ parser="//@labelParsers/@implementations.0"
+ viewPattern="{0}:{1}"
+ editorPattern="{0}:{1}"
+ editPattern="{0}:{1}">
+ <metaFeatures
+ href="comrel.genmodel#//comrel/NamedElement/name"/>
+ <metaFeatures
+ href="comrel.genmodel#//comrel/Port/type"/>
+ </modelFacet>
+ </labels>
+ </childNodes>
+ <childNodes
+ xsi:type="gmfgen:GenChildSideAffixedNode"
+ visualID="3010"
+ editPartClassName="MultiInputPort3EditPart"
+ itemSemanticEditPolicyClassName="MultiInputPort3ItemSemanticEditPolicy"
+ notationViewFactoryClassName="MultiInputPortViewFactory"
+ canonicalEditPolicyClassName="MultiInputPort3CanonicalEditPolicy"
+ graphicalNodeEditPolicyClassName="MultiInputPort3GraphicalNodeEditPolicy"
+ createCommandClassName="MultiInputPort3CreateCommand"
+ containers="//@diagram/@childNodes.7 //@diagram/@childNodes.37 //@diagram/@childNodes.49 //@diagram/@childNodes.54 //@diagram/@childNodes.60">
+ <diagramRunTimeClass
+ href="../../../plugin/org.eclipse.gmf.runtime.notation/model/notation.genmodel#//notation/Node"/>
+ <elementType
+ xsi:type="gmfgen:SpecializationType"
+ metamodelType="//@diagram/@childNodes.1/@elementType"/>
+ <viewmap
+ xsi:type="gmfgen:InnerClassViewmap"
+ className="MultiInputPortFigure"
+ classBody="
/**
 * @generated
 */
public class MultiInputPortFigure extends org.eclipse.draw2d.RectangleFigure {




	/**
	 * @generated
	 */
	public MultiInputPortFigure() {
				this.setLineWidth(10);
	this.setForegroundColor(THIS_FORE
);
this.setPreferredSize(new org.eclipse.draw2d.geometry.Dimension(getMapMode().DPtoLP(20)
, getMapMode().DPtoLP(20)
));
this.setBorder(new org.eclipse.draw2d.MarginBorder(getMapMode().DPtoLP(5)
, getMapMode().DPtoLP(5)
, getMapMode().DPtoLP(5)
, getMapMode().DPtoLP(5)
));
	}





}

/**
 * @generated
 */
static final org.eclipse.swt.graphics.Color THIS_FORE = new org.eclipse.swt.graphics.Color(null, 255, 0, 0);

">
+ <attributes
+ xsi:type="gmfgen:StyleAttributes"
+ fixedForeground="true"/>
+ <attributes
+ xsi:type="gmfgen:DefaultSizeAttributes"
+ width="20"
+ height="20"/>
+ </viewmap>
+ <modelFacet>
+ <metaClass
+ href="comrel.genmodel#//comrel/MultiInputPort"/>
+ <containmentMetaFeature
+ href="comrel.genmodel#//comrel/SingleFeatureUnit/secondaryInputPorts"/>
+ <childMetaFeature
+ href="comrel.genmodel#//comrel/SingleFeatureUnit/secondaryInputPorts"/>
+ </modelFacet>
+ <labels
+ xsi:type="gmfgen:GenExternalNodeLabel"
+ visualID="5007"
+ editPartClassName="MultiInputPortNameType3EditPart"
+ itemSemanticEditPolicyClassName="MultiInputPortNameType3ItemSemanticEditPolicy"
+ notationViewFactoryClassName="MultiInputPortNameTypeViewFactory">
+ <diagramRunTimeClass
+ href="../../../plugin/org.eclipse.gmf.runtime.notation/model/notation.genmodel#//notation/Node"/>
+ <viewmap
+ xsi:type="gmfgen:InnerClassViewmap"
+ className="MultiInputPortLabelFigure"
+ classBody="
/**
 * @generated
 */
public class MultiInputPortLabelFigure extends org.eclipse.gmf.runtime.draw2d.ui.figures.WrappingLabel {




	/**
	 * @generated
	 */
	public MultiInputPortLabelFigure() {
				this.setText("MultiInputPort");
	}





}

"/>
+ <modelFacet
+ xsi:type="gmfgen:FeatureLabelModelFacet"
+ parser="//@labelParsers/@implementations.0"
+ viewPattern="{0}:{1}"
+ editorPattern="{0}:{1}"
+ editPattern="{0}:{1}">
+ <metaFeatures
+ href="comrel.genmodel#//comrel/NamedElement/name"/>
+ <metaFeatures
+ href="comrel.genmodel#//comrel/Port/type"/>
+ </modelFacet>
+ </labels>
+ </childNodes>
+ <childNodes
+ xsi:type="gmfgen:GenChildSideAffixedNode"
+ visualID="3011"
+ editPartClassName="SingleOutputPortEditPart"
+ itemSemanticEditPolicyClassName="SingleOutputPortItemSemanticEditPolicy"
+ notationViewFactoryClassName="SingleOutputPortViewFactory"
+ canonicalEditPolicyClassName="SingleOutputPortCanonicalEditPolicy"
+ graphicalNodeEditPolicyClassName="SingleOutputPortGraphicalNodeEditPolicy"
+ createCommandClassName="SingleOutputPortCreateCommand"
+ containers="//@diagram/@childNodes.7 //@diagram/@childNodes.37 //@diagram/@childNodes.49 //@diagram/@childNodes.54 //@diagram/@childNodes.60">
+ <diagramRunTimeClass
+ href="../../../plugin/org.eclipse.gmf.runtime.notation/model/notation.genmodel#//notation/Node"/>
+ <elementType
+ xsi:type="gmfgen:MetamodelType"
+ editHelperClassName="SingleOutputPortEditHelper"/>
+ <viewmap
+ xsi:type="gmfgen:InnerClassViewmap"
+ className="SingleOutputPortFigure"
+ classBody="
/**
 * @generated
 */
public class SingleOutputPortFigure extends org.eclipse.draw2d.Ellipse {




	/**
	 * @generated
	 */
	public SingleOutputPortFigure() {
				this.setPreferredSize(new org.eclipse.draw2d.geometry.Dimension(getMapMode().DPtoLP(20)
, getMapMode().DPtoLP(20)
));
this.setBorder(new org.eclipse.draw2d.MarginBorder(getMapMode().DPtoLP(5)
, getMapMode().DPtoLP(5)
, getMapMode().DPtoLP(5)
, getMapMode().DPtoLP(5)
));
	}





}

">
+ <attributes
+ xsi:type="gmfgen:DefaultSizeAttributes"
+ width="20"
+ height="20"/>
+ </viewmap>
+ <modelFacet>
+ <metaClass
+ href="comrel.genmodel#//comrel/SingleOutputPort"/>
+ <containmentMetaFeature
+ href="comrel.genmodel#//comrel/SingleFeatureUnit/outputPort"/>
+ <childMetaFeature
+ href="comrel.genmodel#//comrel/SingleFeatureUnit/outputPort"/>
+ </modelFacet>
+ <labels
+ xsi:type="gmfgen:GenExternalNodeLabel"
+ visualID="5008"
+ editPartClassName="SingleOutputPortNameTypeEditPart"
+ itemSemanticEditPolicyClassName="SingleOutputPortNameTypeItemSemanticEditPolicy"
+ notationViewFactoryClassName="SingleOutputPortNameTypeViewFactory">
+ <diagramRunTimeClass
+ href="../../../plugin/org.eclipse.gmf.runtime.notation/model/notation.genmodel#//notation/Node"/>
+ <viewmap
+ xsi:type="gmfgen:InnerClassViewmap"
+ className="SingleOutputPortLabelFigure"
+ classBody="
/**
 * @generated
 */
public class SingleOutputPortLabelFigure extends org.eclipse.gmf.runtime.draw2d.ui.figures.WrappingLabel {




	/**
	 * @generated
	 */
	public SingleOutputPortLabelFigure() {
				this.setText("SingleOutputPort");
	}





}

"/>
+ <modelFacet
+ xsi:type="gmfgen:FeatureLabelModelFacet"
+ parser="//@labelParsers/@implementations.0"
+ viewPattern="{0}:{1}"
+ editorPattern="{0}:{1}"
+ editPattern="{0}:{1}">
+ <metaFeatures
+ href="comrel.genmodel#//comrel/NamedElement/name"/>
+ <metaFeatures
+ href="comrel.genmodel#//comrel/Port/type"/>
+ </modelFacet>
+ </labels>
+ </childNodes>
+ <childNodes
+ visualID="3012"
+ editPartClassName="MultiFeatureUnitEditPart"
+ itemSemanticEditPolicyClassName="MultiFeatureUnitItemSemanticEditPolicy"
+ notationViewFactoryClassName="MultiFeatureUnitViewFactory"
+ canonicalEditPolicyClassName="MultiFeatureUnitCanonicalEditPolicy"
+ childNodes="//@diagram/@childNodes.12 //@diagram/@childNodes.13 //@diagram/@childNodes.14"
+ graphicalNodeEditPolicyClassName="MultiFeatureUnitGraphicalNodeEditPolicy"
+ createCommandClassName="MultiFeatureUnitCreateCommand"
+ containers="//@diagram/@compartments.6 //@diagram/@compartments.10 //@diagram/@compartments.14 //@diagram/@compartments.20 //@diagram/@compartments.38 //@diagram/@compartments.2 //@diagram/@compartments.0">
+ <diagramRunTimeClass
+ href="../../../plugin/org.eclipse.gmf.runtime.notation/model/notation.genmodel#//notation/Node"/>
+ <elementType
+ xsi:type="gmfgen:MetamodelType"
+ editHelperClassName="MultiFeatureUnitEditHelper"/>
+ <viewmap
+ xsi:type="gmfgen:InnerClassViewmap"
+ className="MultiFeatureUnitFigure"
+ classBody="
/**
 * @generated
 */
public class MultiFeatureUnitFigure extends org.eclipse.draw2d.RoundedRectangle {


	/**
	 * @generated
	 */
	private org.eclipse.gmf.runtime.draw2d.ui.figures.WrappingLabel fFigureMultiFeatureUnitLabelFigure; 


	/**
	 * @generated
	 */
	public MultiFeatureUnitFigure() {
				this.setCornerDimensions(new org.eclipse.draw2d.geometry.Dimension(getMapMode().DPtoLP(8)
, getMapMode().DPtoLP(8)
));
this.setBorder(new org.eclipse.draw2d.MarginBorder(getMapMode().DPtoLP(5)
, getMapMode().DPtoLP(5)
, getMapMode().DPtoLP(5)
, getMapMode().DPtoLP(5)
));
		createContents();
	}
	/**
	 * @generated
	 */
	private void createContents(){


fFigureMultiFeatureUnitLabelFigure = new org.eclipse.gmf.runtime.draw2d.ui.figures.WrappingLabel();
fFigureMultiFeatureUnitLabelFigure.setText("MultiFeatureUnit");

this.add(fFigureMultiFeatureUnitLabelFigure);


	}





	/**
	 * @generated
	 */
	public org.eclipse.gmf.runtime.draw2d.ui.figures.WrappingLabel getFigureMultiFeatureUnitLabelFigure() {
		return fFigureMultiFeatureUnitLabelFigure;
	}


}

"/>
+ <modelFacet>
+ <metaClass
+ href="comrel.genmodel#//comrel/MultiFeatureUnit"/>
+ <containmentMetaFeature
+ href="comrel.genmodel#//comrel/CartesianQueuedUnit/helperUnits"/>
+ <childMetaFeature
+ href="comrel.genmodel#//comrel/CartesianQueuedUnit/helperUnits"/>
+ </modelFacet>
+ <labels
+ visualID="5013"
+ editPartClassName="MultiFeatureUnitNameTypeEditPart"
+ itemSemanticEditPolicyClassName="MultiFeatureUnitNameTypeItemSemanticEditPolicy"
+ notationViewFactoryClassName="MultiFeatureUnitNameTypeViewFactory">
+ <diagramRunTimeClass
+ href="../../../plugin/org.eclipse.gmf.runtime.notation/model/notation.genmodel#//notation/Node"/>
+ <viewmap
+ xsi:type="gmfgen:ParentAssignedViewmap"
+ getterName="getFigureMultiFeatureUnitLabelFigure"
+ figureQualifiedClassName="org.eclipse.gmf.runtime.draw2d.ui.figures.WrappingLabel"/>
+ <modelFacet
+ xsi:type="gmfgen:FeatureLabelModelFacet"
+ parser="//@labelParsers/@implementations.0"
+ viewPattern="{0}:{1}"
+ editorPattern="{0}:{1}"
+ editPattern="{0}:{1}">
+ <metaFeatures
+ href="comrel.genmodel#//comrel/NamedElement/name"/>
+ <metaFeatures
+ href="comrel.genmodel#//comrel/MultiFeatureUnit/type"/>
+ </modelFacet>
+ </labels>
+ </childNodes>
+ <childNodes
+ xsi:type="gmfgen:GenChildSideAffixedNode"
+ visualID="3013"
+ editPartClassName="SingleInputPort5EditPart"
+ itemSemanticEditPolicyClassName="SingleInputPort5ItemSemanticEditPolicy"
+ notationViewFactoryClassName="SingleInputPortViewFactory"
+ canonicalEditPolicyClassName="SingleInputPort5CanonicalEditPolicy"
+ graphicalNodeEditPolicyClassName="SingleInputPort5GraphicalNodeEditPolicy"
+ createCommandClassName="SingleInputPort5CreateCommand"
+ containers="//@diagram/@childNodes.11 //@diagram/@childNodes.38 //@diagram/@childNodes.50 //@diagram/@childNodes.55 //@diagram/@childNodes.61">
+ <diagramRunTimeClass
+ href="../../../plugin/org.eclipse.gmf.runtime.notation/model/notation.genmodel#//notation/Node"/>
+ <elementType
+ xsi:type="gmfgen:SpecializationType"
+ metamodelType="//@diagram/@topLevelNodes.0/@elementType"/>
+ <viewmap
+ xsi:type="gmfgen:InnerClassViewmap"
+ className="SingleInputPortFigure"
+ classBody="
/**
 * @generated
 */
public class SingleInputPortFigure extends org.eclipse.draw2d.RectangleFigure {




	/**
	 * @generated
	 */
	public SingleInputPortFigure() {
				this.setPreferredSize(new org.eclipse.draw2d.geometry.Dimension(getMapMode().DPtoLP(20)
, getMapMode().DPtoLP(20)
));
this.setBorder(new org.eclipse.draw2d.MarginBorder(getMapMode().DPtoLP(5)
, getMapMode().DPtoLP(5)
, getMapMode().DPtoLP(5)
, getMapMode().DPtoLP(5)
));
	}





}

">
+ <attributes
+ xsi:type="gmfgen:DefaultSizeAttributes"
+ width="20"
+ height="20"/>
+ </viewmap>
+ <modelFacet>
+ <metaClass
+ href="comrel.genmodel#//comrel/SingleInputPort"/>
+ <containmentMetaFeature
+ href="comrel.genmodel#//comrel/MultiFeatureUnit/inputPort"/>
+ <childMetaFeature
+ href="comrel.genmodel#//comrel/MultiFeatureUnit/inputPort"/>
+ </modelFacet>
+ <labels
+ xsi:type="gmfgen:GenExternalNodeLabel"
+ visualID="5010"
+ editPartClassName="SingleInputPortNameType5EditPart"
+ itemSemanticEditPolicyClassName="SingleInputPortNameType5ItemSemanticEditPolicy"
+ notationViewFactoryClassName="SingleInputPortNameTypeViewFactory">
+ <diagramRunTimeClass
+ href="../../../plugin/org.eclipse.gmf.runtime.notation/model/notation.genmodel#//notation/Node"/>
+ <viewmap
+ xsi:type="gmfgen:InnerClassViewmap"
+ className="SingleInputPortLabelFigure"
+ classBody="
/**
 * @generated
 */
public class SingleInputPortLabelFigure extends org.eclipse.gmf.runtime.draw2d.ui.figures.WrappingLabel {




	/**
	 * @generated
	 */
	public SingleInputPortLabelFigure() {
				this.setText("SingleInputPort");
	}





}

"/>
+ <modelFacet
+ xsi:type="gmfgen:FeatureLabelModelFacet"
+ parser="//@labelParsers/@implementations.0"
+ viewPattern="{0}:{1}"
+ editorPattern="{0}:{1}"
+ editPattern="{0}:{1}">
+ <metaFeatures
+ href="comrel.genmodel#//comrel/NamedElement/name"/>
+ <metaFeatures
+ href="comrel.genmodel#//comrel/Port/type"/>
+ </modelFacet>
+ </labels>
+ </childNodes>
+ <childNodes
+ xsi:type="gmfgen:GenChildSideAffixedNode"
+ visualID="3014"
+ editPartClassName="MultiInputPort4EditPart"
+ itemSemanticEditPolicyClassName="MultiInputPort4ItemSemanticEditPolicy"
+ notationViewFactoryClassName="MultiInputPortViewFactory"
+ canonicalEditPolicyClassName="MultiInputPort4CanonicalEditPolicy"
+ graphicalNodeEditPolicyClassName="MultiInputPort4GraphicalNodeEditPolicy"
+ createCommandClassName="MultiInputPort4CreateCommand"
+ containers="//@diagram/@childNodes.11 //@diagram/@childNodes.38 //@diagram/@childNodes.50 //@diagram/@childNodes.55 //@diagram/@childNodes.61">
+ <diagramRunTimeClass
+ href="../../../plugin/org.eclipse.gmf.runtime.notation/model/notation.genmodel#//notation/Node"/>
+ <elementType
+ xsi:type="gmfgen:SpecializationType"
+ metamodelType="//@diagram/@childNodes.1/@elementType"/>
+ <viewmap
+ xsi:type="gmfgen:InnerClassViewmap"
+ className="MultiInputPortFigure"
+ classBody="
/**
 * @generated
 */
public class MultiInputPortFigure extends org.eclipse.draw2d.RectangleFigure {




	/**
	 * @generated
	 */
	public MultiInputPortFigure() {
				this.setLineWidth(10);
	this.setForegroundColor(THIS_FORE
);
this.setPreferredSize(new org.eclipse.draw2d.geometry.Dimension(getMapMode().DPtoLP(20)
, getMapMode().DPtoLP(20)
));
this.setBorder(new org.eclipse.draw2d.MarginBorder(getMapMode().DPtoLP(5)
, getMapMode().DPtoLP(5)
, getMapMode().DPtoLP(5)
, getMapMode().DPtoLP(5)
));
	}





}

/**
 * @generated
 */
static final org.eclipse.swt.graphics.Color THIS_FORE = new org.eclipse.swt.graphics.Color(null, 255, 0, 0);

">
+ <attributes
+ xsi:type="gmfgen:StyleAttributes"
+ fixedForeground="true"/>
+ <attributes
+ xsi:type="gmfgen:DefaultSizeAttributes"
+ width="20"
+ height="20"/>
+ </viewmap>
+ <modelFacet>
+ <metaClass
+ href="comrel.genmodel#//comrel/MultiInputPort"/>
+ <containmentMetaFeature
+ href="comrel.genmodel#//comrel/MultiFeatureUnit/secondaryInputPorts"/>
+ <childMetaFeature
+ href="comrel.genmodel#//comrel/MultiFeatureUnit/secondaryInputPorts"/>
+ </modelFacet>
+ <labels
+ xsi:type="gmfgen:GenExternalNodeLabel"
+ visualID="5011"
+ editPartClassName="MultiInputPortNameType4EditPart"
+ itemSemanticEditPolicyClassName="MultiInputPortNameType4ItemSemanticEditPolicy"
+ notationViewFactoryClassName="MultiInputPortNameTypeViewFactory">
+ <diagramRunTimeClass
+ href="../../../plugin/org.eclipse.gmf.runtime.notation/model/notation.genmodel#//notation/Node"/>
+ <viewmap
+ xsi:type="gmfgen:InnerClassViewmap"
+ className="MultiInputPortLabelFigure"
+ classBody="
/**
 * @generated
 */
public class MultiInputPortLabelFigure extends org.eclipse.gmf.runtime.draw2d.ui.figures.WrappingLabel {




	/**
	 * @generated
	 */
	public MultiInputPortLabelFigure() {
				this.setText("MultiInputPort");
	}





}

"/>
+ <modelFacet
+ xsi:type="gmfgen:FeatureLabelModelFacet"
+ parser="//@labelParsers/@implementations.0"
+ viewPattern="{0}:{1}"
+ editorPattern="{0}:{1}"
+ editPattern="{0}:{1}">
+ <metaFeatures
+ href="comrel.genmodel#//comrel/NamedElement/name"/>
+ <metaFeatures
+ href="comrel.genmodel#//comrel/Port/type"/>
+ </modelFacet>
+ </labels>
+ </childNodes>
+ <childNodes
+ xsi:type="gmfgen:GenChildSideAffixedNode"
+ visualID="3015"
+ editPartClassName="MultiOutputPortEditPart"
+ itemSemanticEditPolicyClassName="MultiOutputPortItemSemanticEditPolicy"
+ notationViewFactoryClassName="MultiOutputPortViewFactory"
+ canonicalEditPolicyClassName="MultiOutputPortCanonicalEditPolicy"
+ graphicalNodeEditPolicyClassName="MultiOutputPortGraphicalNodeEditPolicy"
+ createCommandClassName="MultiOutputPortCreateCommand"
+ containers="//@diagram/@childNodes.11 //@diagram/@childNodes.38 //@diagram/@childNodes.50 //@diagram/@childNodes.55 //@diagram/@childNodes.61">
+ <diagramRunTimeClass
+ href="../../../plugin/org.eclipse.gmf.runtime.notation/model/notation.genmodel#//notation/Node"/>
+ <elementType
+ xsi:type="gmfgen:MetamodelType"
+ editHelperClassName="MultiOutputPortEditHelper"/>
+ <viewmap
+ xsi:type="gmfgen:InnerClassViewmap"
+ className="MultiOutputPortFigure"
+ classBody="
/**
 * @generated
 */
public class MultiOutputPortFigure extends org.eclipse.draw2d.Ellipse {




	/**
	 * @generated
	 */
	public MultiOutputPortFigure() {
				this.setLineWidth(10);
	this.setForegroundColor(THIS_FORE
);
this.setPreferredSize(new org.eclipse.draw2d.geometry.Dimension(getMapMode().DPtoLP(20)
, getMapMode().DPtoLP(20)
));
this.setBorder(new org.eclipse.draw2d.MarginBorder(getMapMode().DPtoLP(5)
, getMapMode().DPtoLP(5)
, getMapMode().DPtoLP(5)
, getMapMode().DPtoLP(5)
));
	}





}

/**
 * @generated
 */
static final org.eclipse.swt.graphics.Color THIS_FORE = new org.eclipse.swt.graphics.Color(null, 255, 0, 0);

">
+ <attributes
+ xsi:type="gmfgen:StyleAttributes"
+ fixedForeground="true"/>
+ <attributes
+ xsi:type="gmfgen:DefaultSizeAttributes"
+ width="20"
+ height="20"/>
+ </viewmap>
+ <modelFacet>
+ <metaClass
+ href="comrel.genmodel#//comrel/MultiOutputPort"/>
+ <containmentMetaFeature
+ href="comrel.genmodel#//comrel/MultiFeatureUnit/outputPort"/>
+ <childMetaFeature
+ href="comrel.genmodel#//comrel/MultiFeatureUnit/outputPort"/>
+ </modelFacet>
+ <labels
+ xsi:type="gmfgen:GenExternalNodeLabel"
+ visualID="5012"
+ editPartClassName="MultiOutputPortNameTypeEditPart"
+ itemSemanticEditPolicyClassName="MultiOutputPortNameTypeItemSemanticEditPolicy"
+ notationViewFactoryClassName="MultiOutputPortNameTypeViewFactory">
+ <diagramRunTimeClass
+ href="../../../plugin/org.eclipse.gmf.runtime.notation/model/notation.genmodel#//notation/Node"/>
+ <viewmap
+ xsi:type="gmfgen:InnerClassViewmap"
+ className="MultiOutputPortLabelFigure"
+ classBody="
/**
 * @generated
 */
public class MultiOutputPortLabelFigure extends org.eclipse.gmf.runtime.draw2d.ui.figures.WrappingLabel {




	/**
	 * @generated
	 */
	public MultiOutputPortLabelFigure() {
				this.setText("MultiOutputPort");
	}





}

"/>
+ <modelFacet
+ xsi:type="gmfgen:FeatureLabelModelFacet"
+ parser="//@labelParsers/@implementations.0"
+ viewPattern="{0}:{1}"
+ editorPattern="{0}:{1}"
+ editPattern="{0}:{1}">
+ <metaFeatures
+ href="comrel.genmodel#//comrel/NamedElement/name"/>
+ <metaFeatures
+ href="comrel.genmodel#//comrel/Port/type"/>
+ </modelFacet>
+ </labels>
+ </childNodes>
+ <childNodes
+ visualID="3016"
+ editPartClassName="SingleFilterUnitEditPart"
+ itemSemanticEditPolicyClassName="SingleFilterUnitItemSemanticEditPolicy"
+ notationViewFactoryClassName="SingleFilterUnitViewFactory"
+ canonicalEditPolicyClassName="SingleFilterUnitCanonicalEditPolicy"
+ childNodes="//@diagram/@childNodes.16 //@diagram/@childNodes.17"
+ graphicalNodeEditPolicyClassName="SingleFilterUnitGraphicalNodeEditPolicy"
+ createCommandClassName="SingleFilterUnitCreateCommand"
+ containers="//@diagram/@compartments.6 //@diagram/@compartments.10 //@diagram/@compartments.14 //@diagram/@compartments.20 //@diagram/@compartments.38 //@diagram/@compartments.2 //@diagram/@compartments.0">
+ <diagramRunTimeClass
+ href="../../../plugin/org.eclipse.gmf.runtime.notation/model/notation.genmodel#//notation/Node"/>
+ <elementType
+ xsi:type="gmfgen:MetamodelType"
+ editHelperClassName="SingleFilterUnitEditHelper"/>
+ <viewmap
+ xsi:type="gmfgen:InnerClassViewmap"
+ className="SingleFilterUnitFigure"
+ classBody="
/**
 * @generated
 */
public class SingleFilterUnitFigure extends org.eclipse.draw2d.RoundedRectangle {


	/**
	 * @generated
	 */
	private org.eclipse.gmf.runtime.draw2d.ui.figures.WrappingLabel fFigureSingleFilterUnitLabelFigure; 


	/**
	 * @generated
	 */
	public SingleFilterUnitFigure() {
				this.setCornerDimensions(new org.eclipse.draw2d.geometry.Dimension(getMapMode().DPtoLP(8)
, getMapMode().DPtoLP(8)
));
this.setBorder(new org.eclipse.draw2d.MarginBorder(getMapMode().DPtoLP(5)
, getMapMode().DPtoLP(5)
, getMapMode().DPtoLP(5)
, getMapMode().DPtoLP(5)
));
		createContents();
	}
	/**
	 * @generated
	 */
	private void createContents(){


fFigureSingleFilterUnitLabelFigure = new org.eclipse.gmf.runtime.draw2d.ui.figures.WrappingLabel();
fFigureSingleFilterUnitLabelFigure.setText("SingleFilterUnit");

this.add(fFigureSingleFilterUnitLabelFigure);


	}





	/**
	 * @generated
	 */
	public org.eclipse.gmf.runtime.draw2d.ui.figures.WrappingLabel getFigureSingleFilterUnitLabelFigure() {
		return fFigureSingleFilterUnitLabelFigure;
	}


}

"/>
+ <modelFacet>
+ <metaClass
+ href="comrel.genmodel#//comrel/SingleFilterUnit"/>
+ <containmentMetaFeature
+ href="comrel.genmodel#//comrel/CartesianQueuedUnit/helperUnits"/>
+ <childMetaFeature
+ href="comrel.genmodel#//comrel/CartesianQueuedUnit/helperUnits"/>
+ </modelFacet>
+ <labels
+ visualID="5016"
+ editPartClassName="SingleFilterUnitNameTypeEditPart"
+ itemSemanticEditPolicyClassName="SingleFilterUnitNameTypeItemSemanticEditPolicy"
+ notationViewFactoryClassName="SingleFilterUnitNameTypeViewFactory">
+ <diagramRunTimeClass
+ href="../../../plugin/org.eclipse.gmf.runtime.notation/model/notation.genmodel#//notation/Node"/>
+ <viewmap
+ xsi:type="gmfgen:ParentAssignedViewmap"
+ getterName="getFigureSingleFilterUnitLabelFigure"
+ figureQualifiedClassName="org.eclipse.gmf.runtime.draw2d.ui.figures.WrappingLabel"/>
+ <modelFacet
+ xsi:type="gmfgen:FeatureLabelModelFacet"
+ parser="//@labelParsers/@implementations.0"
+ viewPattern="{0}:{1}"
+ editorPattern="{0}:{1}"
+ editPattern="{0}:{1}">
+ <metaFeatures
+ href="comrel.genmodel#//comrel/NamedElement/name"/>
+ <metaFeatures
+ href="comrel.genmodel#//comrel/SingleFilterUnit/type"/>
+ </modelFacet>
+ </labels>
+ </childNodes>
+ <childNodes
+ xsi:type="gmfgen:GenChildSideAffixedNode"
+ visualID="3017"
+ editPartClassName="MultiInputPort5EditPart"
+ itemSemanticEditPolicyClassName="MultiInputPort5ItemSemanticEditPolicy"
+ notationViewFactoryClassName="MultiInputPortViewFactory"
+ canonicalEditPolicyClassName="MultiInputPort5CanonicalEditPolicy"
+ graphicalNodeEditPolicyClassName="MultiInputPort5GraphicalNodeEditPolicy"
+ createCommandClassName="MultiInputPort5CreateCommand"
+ containers="//@diagram/@childNodes.15 //@diagram/@childNodes.39 //@diagram/@childNodes.51 //@diagram/@childNodes.56 //@diagram/@childNodes.62">
+ <diagramRunTimeClass
+ href="../../../plugin/org.eclipse.gmf.runtime.notation/model/notation.genmodel#//notation/Node"/>
+ <elementType
+ xsi:type="gmfgen:SpecializationType"
+ metamodelType="//@diagram/@childNodes.1/@elementType"/>
+ <viewmap
+ xsi:type="gmfgen:InnerClassViewmap"
+ className="MultiInputPortFigure"
+ classBody="
/**
 * @generated
 */
public class MultiInputPortFigure extends org.eclipse.draw2d.RectangleFigure {




	/**
	 * @generated
	 */
	public MultiInputPortFigure() {
				this.setLineWidth(10);
	this.setForegroundColor(THIS_FORE
);
this.setPreferredSize(new org.eclipse.draw2d.geometry.Dimension(getMapMode().DPtoLP(20)
, getMapMode().DPtoLP(20)
));
this.setBorder(new org.eclipse.draw2d.MarginBorder(getMapMode().DPtoLP(5)
, getMapMode().DPtoLP(5)
, getMapMode().DPtoLP(5)
, getMapMode().DPtoLP(5)
));
	}





}

/**
 * @generated
 */
static final org.eclipse.swt.graphics.Color THIS_FORE = new org.eclipse.swt.graphics.Color(null, 255, 0, 0);

">
+ <attributes
+ xsi:type="gmfgen:StyleAttributes"
+ fixedForeground="true"/>
+ <attributes
+ xsi:type="gmfgen:DefaultSizeAttributes"
+ width="20"
+ height="20"/>
+ </viewmap>
+ <modelFacet>
+ <metaClass
+ href="comrel.genmodel#//comrel/MultiInputPort"/>
+ <containmentMetaFeature
+ href="comrel.genmodel#//comrel/SingleFilterUnit/inputPort"/>
+ <childMetaFeature
+ href="comrel.genmodel#//comrel/SingleFilterUnit/inputPort"/>
+ </modelFacet>
+ <labels
+ xsi:type="gmfgen:GenExternalNodeLabel"
+ visualID="5014"
+ editPartClassName="MultiInputPortNameType5EditPart"
+ itemSemanticEditPolicyClassName="MultiInputPortNameType5ItemSemanticEditPolicy"
+ notationViewFactoryClassName="MultiInputPortNameTypeViewFactory">
+ <diagramRunTimeClass
+ href="../../../plugin/org.eclipse.gmf.runtime.notation/model/notation.genmodel#//notation/Node"/>
+ <viewmap
+ xsi:type="gmfgen:InnerClassViewmap"
+ className="MultiInputPortLabelFigure"
+ classBody="
/**
 * @generated
 */
public class MultiInputPortLabelFigure extends org.eclipse.gmf.runtime.draw2d.ui.figures.WrappingLabel {




	/**
	 * @generated
	 */
	public MultiInputPortLabelFigure() {
				this.setText("MultiInputPort");
	}





}

"/>
+ <modelFacet
+ xsi:type="gmfgen:FeatureLabelModelFacet"
+ parser="//@labelParsers/@implementations.0"
+ viewPattern="{0}:{1}"
+ editorPattern="{0}:{1}"
+ editPattern="{0}:{1}">
+ <metaFeatures
+ href="comrel.genmodel#//comrel/NamedElement/name"/>
+ <metaFeatures
+ href="comrel.genmodel#//comrel/Port/type"/>
+ </modelFacet>
+ </labels>
+ </childNodes>
+ <childNodes
+ xsi:type="gmfgen:GenChildSideAffixedNode"
+ visualID="3018"
+ editPartClassName="SingleOutputPort2EditPart"
+ itemSemanticEditPolicyClassName="SingleOutputPort2ItemSemanticEditPolicy"
+ notationViewFactoryClassName="SingleOutputPortViewFactory"
+ canonicalEditPolicyClassName="SingleOutputPort2CanonicalEditPolicy"
+ graphicalNodeEditPolicyClassName="SingleOutputPort2GraphicalNodeEditPolicy"
+ createCommandClassName="SingleOutputPort2CreateCommand"
+ containers="//@diagram/@childNodes.15 //@diagram/@childNodes.39 //@diagram/@childNodes.51 //@diagram/@childNodes.56 //@diagram/@childNodes.62">
+ <diagramRunTimeClass
+ href="../../../plugin/org.eclipse.gmf.runtime.notation/model/notation.genmodel#//notation/Node"/>
+ <elementType
+ xsi:type="gmfgen:SpecializationType"
+ metamodelType="//@diagram/@childNodes.10/@elementType"/>
+ <viewmap
+ xsi:type="gmfgen:InnerClassViewmap"
+ className="SingleOutputPortFigure"
+ classBody="
/**
 * @generated
 */
public class SingleOutputPortFigure extends org.eclipse.draw2d.Ellipse {




	/**
	 * @generated
	 */
	public SingleOutputPortFigure() {
				this.setPreferredSize(new org.eclipse.draw2d.geometry.Dimension(getMapMode().DPtoLP(20)
, getMapMode().DPtoLP(20)
));
this.setBorder(new org.eclipse.draw2d.MarginBorder(getMapMode().DPtoLP(5)
, getMapMode().DPtoLP(5)
, getMapMode().DPtoLP(5)
, getMapMode().DPtoLP(5)
));
	}





}

">
+ <attributes
+ xsi:type="gmfgen:DefaultSizeAttributes"
+ width="20"
+ height="20"/>
+ </viewmap>
+ <modelFacet>
+ <metaClass
+ href="comrel.genmodel#//comrel/SingleOutputPort"/>
+ <containmentMetaFeature
+ href="comrel.genmodel#//comrel/SingleFilterUnit/outputPort"/>
+ <childMetaFeature
+ href="comrel.genmodel#//comrel/SingleFilterUnit/outputPort"/>
+ </modelFacet>
+ <labels
+ xsi:type="gmfgen:GenExternalNodeLabel"
+ visualID="5015"
+ editPartClassName="SingleOutputPortNameType2EditPart"
+ itemSemanticEditPolicyClassName="SingleOutputPortNameType2ItemSemanticEditPolicy"
+ notationViewFactoryClassName="SingleOutputPortNameTypeViewFactory">
+ <diagramRunTimeClass
+ href="../../../plugin/org.eclipse.gmf.runtime.notation/model/notation.genmodel#//notation/Node"/>
+ <viewmap
+ xsi:type="gmfgen:InnerClassViewmap"
+ className="SingleOutputPortLabelFigure"
+ classBody="
/**
 * @generated
 */
public class SingleOutputPortLabelFigure extends org.eclipse.gmf.runtime.draw2d.ui.figures.WrappingLabel {




	/**
	 * @generated
	 */
	public SingleOutputPortLabelFigure() {
				this.setText("SingleOutputPort");
	}





}

"/>
+ <modelFacet
+ xsi:type="gmfgen:FeatureLabelModelFacet"
+ parser="//@labelParsers/@implementations.0"
+ viewPattern="{0}:{1}"
+ editorPattern="{0}:{1}"
+ editPattern="{0}:{1}">
+ <metaFeatures
+ href="comrel.genmodel#//comrel/NamedElement/name"/>
+ <metaFeatures
+ href="comrel.genmodel#//comrel/Port/type"/>
+ </modelFacet>
+ </labels>
+ </childNodes>
+ <childNodes
+ visualID="3019"
+ editPartClassName="MultiFilterUnitEditPart"
+ itemSemanticEditPolicyClassName="MultiFilterUnitItemSemanticEditPolicy"
+ notationViewFactoryClassName="MultiFilterUnitViewFactory"
+ canonicalEditPolicyClassName="MultiFilterUnitCanonicalEditPolicy"
+ childNodes="//@diagram/@childNodes.19 //@diagram/@childNodes.20"
+ graphicalNodeEditPolicyClassName="MultiFilterUnitGraphicalNodeEditPolicy"
+ createCommandClassName="MultiFilterUnitCreateCommand"
+ containers="//@diagram/@compartments.6 //@diagram/@compartments.10 //@diagram/@compartments.14 //@diagram/@compartments.20 //@diagram/@compartments.38 //@diagram/@compartments.2 //@diagram/@compartments.0">
+ <diagramRunTimeClass
+ href="../../../plugin/org.eclipse.gmf.runtime.notation/model/notation.genmodel#//notation/Node"/>
+ <elementType
+ xsi:type="gmfgen:MetamodelType"
+ editHelperClassName="MultiFilterUnitEditHelper"/>
+ <viewmap
+ xsi:type="gmfgen:InnerClassViewmap"
+ className="MultiFilterUnitFigure"
+ classBody="
/**
 * @generated
 */
public class MultiFilterUnitFigure extends org.eclipse.draw2d.RoundedRectangle {


	/**
	 * @generated
	 */
	private org.eclipse.gmf.runtime.draw2d.ui.figures.WrappingLabel fFigureMultiFilterUnitLabelFigure; 


	/**
	 * @generated
	 */
	public MultiFilterUnitFigure() {
				this.setCornerDimensions(new org.eclipse.draw2d.geometry.Dimension(getMapMode().DPtoLP(8)
, getMapMode().DPtoLP(8)
));
this.setBorder(new org.eclipse.draw2d.MarginBorder(getMapMode().DPtoLP(5)
, getMapMode().DPtoLP(5)
, getMapMode().DPtoLP(5)
, getMapMode().DPtoLP(5)
));
		createContents();
	}
	/**
	 * @generated
	 */
	private void createContents(){


fFigureMultiFilterUnitLabelFigure = new org.eclipse.gmf.runtime.draw2d.ui.figures.WrappingLabel();
fFigureMultiFilterUnitLabelFigure.setText("MultiFilterUnit");

this.add(fFigureMultiFilterUnitLabelFigure);


	}





	/**
	 * @generated
	 */
	public org.eclipse.gmf.runtime.draw2d.ui.figures.WrappingLabel getFigureMultiFilterUnitLabelFigure() {
		return fFigureMultiFilterUnitLabelFigure;
	}


}

"/>
+ <modelFacet>
+ <metaClass
+ href="comrel.genmodel#//comrel/MultiFilterUnit"/>
+ <containmentMetaFeature
+ href="comrel.genmodel#//comrel/CartesianQueuedUnit/helperUnits"/>
+ <childMetaFeature
+ href="comrel.genmodel#//comrel/CartesianQueuedUnit/helperUnits"/>
+ </modelFacet>
+ <labels
+ visualID="5019"
+ editPartClassName="MultiFilterUnitNameTypeEditPart"
+ itemSemanticEditPolicyClassName="MultiFilterUnitNameTypeItemSemanticEditPolicy"
+ notationViewFactoryClassName="MultiFilterUnitNameTypeViewFactory">
+ <diagramRunTimeClass
+ href="../../../plugin/org.eclipse.gmf.runtime.notation/model/notation.genmodel#//notation/Node"/>
+ <viewmap
+ xsi:type="gmfgen:ParentAssignedViewmap"
+ getterName="getFigureMultiFilterUnitLabelFigure"
+ figureQualifiedClassName="org.eclipse.gmf.runtime.draw2d.ui.figures.WrappingLabel"/>
+ <modelFacet
+ xsi:type="gmfgen:FeatureLabelModelFacet"
+ parser="//@labelParsers/@implementations.0"
+ viewPattern="{0}:{1}"
+ editorPattern="{0}:{1}"
+ editPattern="{0}:{1}">
+ <metaFeatures
+ href="comrel.genmodel#//comrel/NamedElement/name"/>
+ <metaFeatures
+ href="comrel.genmodel#//comrel/MultiFilterUnit/type"/>
+ </modelFacet>
+ </labels>
+ </childNodes>
+ <childNodes
+ xsi:type="gmfgen:GenChildSideAffixedNode"
+ visualID="3020"
+ editPartClassName="MultiInputPort6EditPart"
+ itemSemanticEditPolicyClassName="MultiInputPort6ItemSemanticEditPolicy"
+ notationViewFactoryClassName="MultiInputPortViewFactory"
+ canonicalEditPolicyClassName="MultiInputPort6CanonicalEditPolicy"
+ graphicalNodeEditPolicyClassName="MultiInputPort6GraphicalNodeEditPolicy"
+ createCommandClassName="MultiInputPort6CreateCommand"
+ containers="//@diagram/@childNodes.18 //@diagram/@childNodes.40 //@diagram/@childNodes.52 //@diagram/@childNodes.57 //@diagram/@childNodes.63">
+ <diagramRunTimeClass
+ href="../../../plugin/org.eclipse.gmf.runtime.notation/model/notation.genmodel#//notation/Node"/>
+ <elementType
+ xsi:type="gmfgen:SpecializationType"
+ metamodelType="//@diagram/@childNodes.1/@elementType"/>
+ <viewmap
+ xsi:type="gmfgen:InnerClassViewmap"
+ className="MultiInputPortFigure"
+ classBody="
/**
 * @generated
 */
public class MultiInputPortFigure extends org.eclipse.draw2d.RectangleFigure {




	/**
	 * @generated
	 */
	public MultiInputPortFigure() {
				this.setLineWidth(10);
	this.setForegroundColor(THIS_FORE
);
this.setPreferredSize(new org.eclipse.draw2d.geometry.Dimension(getMapMode().DPtoLP(20)
, getMapMode().DPtoLP(20)
));
this.setBorder(new org.eclipse.draw2d.MarginBorder(getMapMode().DPtoLP(5)
, getMapMode().DPtoLP(5)
, getMapMode().DPtoLP(5)
, getMapMode().DPtoLP(5)
));
	}





}

/**
 * @generated
 */
static final org.eclipse.swt.graphics.Color THIS_FORE = new org.eclipse.swt.graphics.Color(null, 255, 0, 0);

">
+ <attributes
+ xsi:type="gmfgen:StyleAttributes"
+ fixedForeground="true"/>
+ <attributes
+ xsi:type="gmfgen:DefaultSizeAttributes"
+ width="20"
+ height="20"/>
+ </viewmap>
+ <modelFacet>
+ <metaClass
+ href="comrel.genmodel#//comrel/MultiInputPort"/>
+ <containmentMetaFeature
+ href="comrel.genmodel#//comrel/MultiFilterUnit/inputPort"/>
+ <childMetaFeature
+ href="comrel.genmodel#//comrel/MultiFilterUnit/inputPort"/>
+ </modelFacet>
+ <labels
+ xsi:type="gmfgen:GenExternalNodeLabel"
+ visualID="5017"
+ editPartClassName="MultiInputPortNameType6EditPart"
+ itemSemanticEditPolicyClassName="MultiInputPortNameType6ItemSemanticEditPolicy"
+ notationViewFactoryClassName="MultiInputPortNameTypeViewFactory">
+ <diagramRunTimeClass
+ href="../../../plugin/org.eclipse.gmf.runtime.notation/model/notation.genmodel#//notation/Node"/>
+ <viewmap
+ xsi:type="gmfgen:InnerClassViewmap"
+ className="MultiInputPortLabelFigure"
+ classBody="
/**
 * @generated
 */
public class MultiInputPortLabelFigure extends org.eclipse.gmf.runtime.draw2d.ui.figures.WrappingLabel {




	/**
	 * @generated
	 */
	public MultiInputPortLabelFigure() {
				this.setText("MultiInputPort");
	}





}

"/>
+ <modelFacet
+ xsi:type="gmfgen:FeatureLabelModelFacet"
+ parser="//@labelParsers/@implementations.0"
+ viewPattern="{0}:{1}"
+ editorPattern="{0}:{1}"
+ editPattern="{0}:{1}">
+ <metaFeatures
+ href="comrel.genmodel#//comrel/NamedElement/name"/>
+ <metaFeatures
+ href="comrel.genmodel#//comrel/Port/type"/>
+ </modelFacet>
+ </labels>
+ </childNodes>
+ <childNodes
+ xsi:type="gmfgen:GenChildSideAffixedNode"
+ visualID="3021"
+ editPartClassName="MultiOutputPort2EditPart"
+ itemSemanticEditPolicyClassName="MultiOutputPort2ItemSemanticEditPolicy"
+ notationViewFactoryClassName="MultiOutputPortViewFactory"
+ canonicalEditPolicyClassName="MultiOutputPort2CanonicalEditPolicy"
+ graphicalNodeEditPolicyClassName="MultiOutputPort2GraphicalNodeEditPolicy"
+ createCommandClassName="MultiOutputPort2CreateCommand"
+ containers="//@diagram/@childNodes.18 //@diagram/@childNodes.40 //@diagram/@childNodes.52 //@diagram/@childNodes.57 //@diagram/@childNodes.63">
+ <diagramRunTimeClass
+ href="../../../plugin/org.eclipse.gmf.runtime.notation/model/notation.genmodel#//notation/Node"/>
+ <elementType
+ xsi:type="gmfgen:SpecializationType"
+ metamodelType="//@diagram/@childNodes.14/@elementType"/>
+ <viewmap
+ xsi:type="gmfgen:InnerClassViewmap"
+ className="MultiOutputPortFigure"
+ classBody="
/**
 * @generated
 */
public class MultiOutputPortFigure extends org.eclipse.draw2d.Ellipse {




	/**
	 * @generated
	 */
	public MultiOutputPortFigure() {
				this.setLineWidth(10);
	this.setForegroundColor(THIS_FORE
);
this.setPreferredSize(new org.eclipse.draw2d.geometry.Dimension(getMapMode().DPtoLP(20)
, getMapMode().DPtoLP(20)
));
this.setBorder(new org.eclipse.draw2d.MarginBorder(getMapMode().DPtoLP(5)
, getMapMode().DPtoLP(5)
, getMapMode().DPtoLP(5)
, getMapMode().DPtoLP(5)
));
	}





}

/**
 * @generated
 */
static final org.eclipse.swt.graphics.Color THIS_FORE = new org.eclipse.swt.graphics.Color(null, 255, 0, 0);

">
+ <attributes
+ xsi:type="gmfgen:StyleAttributes"
+ fixedForeground="true"/>
+ <attributes
+ xsi:type="gmfgen:DefaultSizeAttributes"
+ width="20"
+ height="20"/>
+ </viewmap>
+ <modelFacet>
+ <metaClass
+ href="comrel.genmodel#//comrel/MultiOutputPort"/>
+ <containmentMetaFeature
+ href="comrel.genmodel#//comrel/MultiFilterUnit/outputPort"/>
+ <childMetaFeature
+ href="comrel.genmodel#//comrel/MultiFilterUnit/outputPort"/>
+ </modelFacet>
+ <labels
+ xsi:type="gmfgen:GenExternalNodeLabel"
+ visualID="5018"
+ editPartClassName="MultiOutputPortNameType2EditPart"
+ itemSemanticEditPolicyClassName="MultiOutputPortNameType2ItemSemanticEditPolicy"
+ notationViewFactoryClassName="MultiOutputPortNameTypeViewFactory">
+ <diagramRunTimeClass
+ href="../../../plugin/org.eclipse.gmf.runtime.notation/model/notation.genmodel#//notation/Node"/>
+ <viewmap
+ xsi:type="gmfgen:InnerClassViewmap"
+ className="MultiOutputPortLabelFigure"
+ classBody="
/**
 * @generated
 */
public class MultiOutputPortLabelFigure extends org.eclipse.gmf.runtime.draw2d.ui.figures.WrappingLabel {




	/**
	 * @generated
	 */
	public MultiOutputPortLabelFigure() {
				this.setText("MultiOutputPort");
	}





}

"/>
+ <modelFacet
+ xsi:type="gmfgen:FeatureLabelModelFacet"
+ parser="//@labelParsers/@implementations.0"
+ viewPattern="{0}:{1}"
+ editorPattern="{0}:{1}"
+ editPattern="{0}:{1}">
+ <metaFeatures
+ href="comrel.genmodel#//comrel/NamedElement/name"/>
+ <metaFeatures
+ href="comrel.genmodel#//comrel/Port/type"/>
+ </modelFacet>
+ </labels>
+ </childNodes>
+ <childNodes
+ visualID="3022"
+ editPartClassName="SingleQueuedUnit2EditPart"
+ itemSemanticEditPolicyClassName="SingleQueuedUnit2ItemSemanticEditPolicy"
+ notationViewFactoryClassName="SingleQueuedUnitViewFactory"
+ canonicalEditPolicyClassName="SingleQueuedUnit2CanonicalEditPolicy"
+ childNodes="//@diagram/@childNodes.22 //@diagram/@childNodes.23"
+ compartments="//@diagram/@compartments.8 //@diagram/@compartments.9"
+ graphicalNodeEditPolicyClassName="SingleQueuedUnit2GraphicalNodeEditPolicy"
+ createCommandClassName="SingleQueuedUnit2CreateCommand"
+ containers="//@diagram/@compartments.11 //@diagram/@compartments.15 //@diagram/@compartments.21 //@diagram/@compartments.39 //@diagram/@compartments.7 //@diagram/@compartments.3 //@diagram/@compartments.1">
+ <diagramRunTimeClass
+ href="../../../plugin/org.eclipse.gmf.runtime.notation/model/notation.genmodel#//notation/Node"/>
+ <elementType
+ xsi:type="gmfgen:MetamodelType"
+ editHelperClassName="SingleQueuedUnitEditHelper"/>
+ <viewmap
+ xsi:type="gmfgen:InnerClassViewmap"
+ className="SingleQueuedUnitFigure"
+ classBody="
/**
 * @generated
 */
public class SingleQueuedUnitFigure extends org.eclipse.draw2d.RoundedRectangle {


	/**
	 * @generated
	 */
	private org.eclipse.gmf.runtime.draw2d.ui.figures.WrappingLabel fFigureSingleQueuedUnitLabelFigure; 
	/**
	 * @generated
	 */
	private org.eclipse.draw2d.RectangleFigure fSingleQueuedUnitHelperUnitsCompartmentFigure; 
	/**
	 * @generated
	 */
	private org.eclipse.draw2d.RectangleFigure fSingleQueuedUnitRefactoringUnitCompartmentFigure; 


	/**
	 * @generated
	 */
	public SingleQueuedUnitFigure() {
				this.setCornerDimensions(new org.eclipse.draw2d.geometry.Dimension(getMapMode().DPtoLP(8)
, getMapMode().DPtoLP(8)
));
this.setBorder(new org.eclipse.draw2d.MarginBorder(getMapMode().DPtoLP(5)
, getMapMode().DPtoLP(5)
, getMapMode().DPtoLP(5)
, getMapMode().DPtoLP(5)
));
		createContents();
	}
	/**
	 * @generated
	 */
	private void createContents(){


fFigureSingleQueuedUnitLabelFigure = new org.eclipse.gmf.runtime.draw2d.ui.figures.WrappingLabel();
fFigureSingleQueuedUnitLabelFigure.setText("SingleQueuedUnit");
fFigureSingleQueuedUnitLabelFigure.setMaximumSize(new org.eclipse.draw2d.geometry.Dimension(getMapMode().DPtoLP(10000)
, getMapMode().DPtoLP(50)
));

this.add(fFigureSingleQueuedUnitLabelFigure);



fSingleQueuedUnitHelperUnitsCompartmentFigure = new org.eclipse.draw2d.RectangleFigure();
fSingleQueuedUnitHelperUnitsCompartmentFigure.setOutline(false);

this.add(fSingleQueuedUnitHelperUnitsCompartmentFigure);



fSingleQueuedUnitRefactoringUnitCompartmentFigure = new org.eclipse.draw2d.RectangleFigure();
fSingleQueuedUnitRefactoringUnitCompartmentFigure.setOutline(false);

this.add(fSingleQueuedUnitRefactoringUnitCompartmentFigure);


	}





	/**
	 * @generated
	 */
	public org.eclipse.gmf.runtime.draw2d.ui.figures.WrappingLabel getFigureSingleQueuedUnitLabelFigure() {
		return fFigureSingleQueuedUnitLabelFigure;
	}
	/**
	 * @generated
	 */
	public org.eclipse.draw2d.RectangleFigure getSingleQueuedUnitHelperUnitsCompartmentFigure() {
		return fSingleQueuedUnitHelperUnitsCompartmentFigure;
	}
	/**
	 * @generated
	 */
	public org.eclipse.draw2d.RectangleFigure getSingleQueuedUnitRefactoringUnitCompartmentFigure() {
		return fSingleQueuedUnitRefactoringUnitCompartmentFigure;
	}


}

"/>
+ <behaviour
+ xsi:type="gmfgen:OpenDiagramBehaviour"/>
+ <modelFacet>
+ <metaClass
+ href="comrel.genmodel#//comrel/SingleQueuedUnit"/>
+ <containmentMetaFeature
+ href="comrel.genmodel#//comrel/CartesianQueuedUnit/refactoringUnit"/>
+ <childMetaFeature
+ href="comrel.genmodel#//comrel/CartesianQueuedUnit/refactoringUnit"/>
+ </modelFacet>
+ <labels
+ visualID="5076"
+ editPartClassName="SingleQueuedUnitNameTypeLblStrict2EditPart"
+ itemSemanticEditPolicyClassName="SingleQueuedUnitNameTypeLblStrict2ItemSemanticEditPolicy"
+ notationViewFactoryClassName="SingleQueuedUnitNameTypeLblStrictViewFactory">
+ <diagramRunTimeClass
+ href="../../../plugin/org.eclipse.gmf.runtime.notation/model/notation.genmodel#//notation/Node"/>
+ <viewmap
+ xsi:type="gmfgen:ParentAssignedViewmap"
+ getterName="getFigureSingleQueuedUnitLabelFigure"
+ figureQualifiedClassName="org.eclipse.gmf.runtime.draw2d.ui.figures.WrappingLabel"/>
+ <modelFacet
+ xsi:type="gmfgen:FeatureLabelModelFacet"
+ parser="//@labelParsers/@implementations.0"
+ viewPattern="{0}:{1} -{2}-"
+ editorPattern="{0}:{1} -{2}-"
+ editPattern="{0}:{1} -{2}-">
+ <metaFeatures
+ href="comrel.genmodel#//comrel/NamedElement/name"/>
+ <metaFeatures
+ href="comrel.genmodel#//comrel/SingleQueuedUnit/type"/>
+ <metaFeatures
+ href="comrel.genmodel#//comrel/SingleQueuedUnit/lblStrict"/>
+ </modelFacet>
+ </labels>
+ </childNodes>
+ <childNodes
+ xsi:type="gmfgen:GenChildSideAffixedNode"
+ visualID="3023"
+ editPartClassName="SingleInputPort6EditPart"
+ itemSemanticEditPolicyClassName="SingleInputPort6ItemSemanticEditPolicy"
+ notationViewFactoryClassName="SingleInputPortViewFactory"
+ canonicalEditPolicyClassName="SingleInputPort6CanonicalEditPolicy"
+ graphicalNodeEditPolicyClassName="SingleInputPort6GraphicalNodeEditPolicy"
+ createCommandClassName="SingleInputPort6CreateCommand"
+ containers="//@diagram/@childNodes.21 //@diagram/@childNodes.41 //@diagram/@childNodes.53 //@diagram/@childNodes.58 //@diagram/@childNodes.64 //@diagram/@childNodes.66 //@diagram/@topLevelNodes.3">
+ <diagramRunTimeClass
+ href="../../../plugin/org.eclipse.gmf.runtime.notation/model/notation.genmodel#//notation/Node"/>
+ <elementType
+ xsi:type="gmfgen:SpecializationType"
+ metamodelType="//@diagram/@topLevelNodes.0/@elementType"/>
+ <viewmap
+ xsi:type="gmfgen:InnerClassViewmap"
+ className="SingleInputPortFigure"
+ classBody="
/**
 * @generated
 */
public class SingleInputPortFigure extends org.eclipse.draw2d.RectangleFigure {




	/**
	 * @generated
	 */
	public SingleInputPortFigure() {
				this.setPreferredSize(new org.eclipse.draw2d.geometry.Dimension(getMapMode().DPtoLP(20)
, getMapMode().DPtoLP(20)
));
this.setBorder(new org.eclipse.draw2d.MarginBorder(getMapMode().DPtoLP(5)
, getMapMode().DPtoLP(5)
, getMapMode().DPtoLP(5)
, getMapMode().DPtoLP(5)
));
	}





}

">
+ <attributes
+ xsi:type="gmfgen:DefaultSizeAttributes"
+ width="20"
+ height="20"/>
+ </viewmap>
+ <modelFacet>
+ <metaClass
+ href="comrel.genmodel#//comrel/SingleInputPort"/>
+ <containmentMetaFeature
+ href="comrel.genmodel#//comrel/SingleQueuedUnit/singleInputPorts"/>
+ <childMetaFeature
+ href="comrel.genmodel#//comrel/SingleQueuedUnit/singleInputPorts"/>
+ </modelFacet>
+ <labels
+ xsi:type="gmfgen:GenExternalNodeLabel"
+ visualID="5020"
+ editPartClassName="SingleInputPortNameType6EditPart"
+ itemSemanticEditPolicyClassName="SingleInputPortNameType6ItemSemanticEditPolicy"
+ notationViewFactoryClassName="SingleInputPortNameTypeViewFactory">
+ <diagramRunTimeClass
+ href="../../../plugin/org.eclipse.gmf.runtime.notation/model/notation.genmodel#//notation/Node"/>
+ <viewmap
+ xsi:type="gmfgen:InnerClassViewmap"
+ className="SingleInputPortLabelFigure"
+ classBody="
/**
 * @generated
 */
public class SingleInputPortLabelFigure extends org.eclipse.gmf.runtime.draw2d.ui.figures.WrappingLabel {




	/**
	 * @generated
	 */
	public SingleInputPortLabelFigure() {
				this.setText("SingleInputPort");
	}





}

"/>
+ <modelFacet
+ xsi:type="gmfgen:FeatureLabelModelFacet"
+ parser="//@labelParsers/@implementations.0"
+ viewPattern="{0}:{1}"
+ editorPattern="{0}:{1}"
+ editPattern="{0}:{1}">
+ <metaFeatures
+ href="comrel.genmodel#//comrel/NamedElement/name"/>
+ <metaFeatures
+ href="comrel.genmodel#//comrel/Port/type"/>
+ </modelFacet>
+ </labels>
+ </childNodes>
+ <childNodes
+ xsi:type="gmfgen:GenChildSideAffixedNode"
+ visualID="3024"
+ editPartClassName="MultiInputPort7EditPart"
+ itemSemanticEditPolicyClassName="MultiInputPort7ItemSemanticEditPolicy"
+ notationViewFactoryClassName="MultiInputPortViewFactory"
+ canonicalEditPolicyClassName="MultiInputPort7CanonicalEditPolicy"
+ graphicalNodeEditPolicyClassName="MultiInputPort7GraphicalNodeEditPolicy"
+ createCommandClassName="MultiInputPort7CreateCommand"
+ containers="//@diagram/@childNodes.21 //@diagram/@childNodes.41 //@diagram/@childNodes.53 //@diagram/@childNodes.58 //@diagram/@childNodes.64 //@diagram/@childNodes.66 //@diagram/@topLevelNodes.3">
+ <diagramRunTimeClass
+ href="../../../plugin/org.eclipse.gmf.runtime.notation/model/notation.genmodel#//notation/Node"/>
+ <elementType
+ xsi:type="gmfgen:SpecializationType"
+ metamodelType="//@diagram/@childNodes.1/@elementType"/>
+ <viewmap
+ xsi:type="gmfgen:InnerClassViewmap"
+ className="MultiInputPortFigure"
+ classBody="
/**
 * @generated
 */
public class MultiInputPortFigure extends org.eclipse.draw2d.RectangleFigure {




	/**
	 * @generated
	 */
	public MultiInputPortFigure() {
				this.setLineWidth(10);
	this.setForegroundColor(THIS_FORE
);
this.setPreferredSize(new org.eclipse.draw2d.geometry.Dimension(getMapMode().DPtoLP(20)
, getMapMode().DPtoLP(20)
));
this.setBorder(new org.eclipse.draw2d.MarginBorder(getMapMode().DPtoLP(5)
, getMapMode().DPtoLP(5)
, getMapMode().DPtoLP(5)
, getMapMode().DPtoLP(5)
));
	}





}

/**
 * @generated
 */
static final org.eclipse.swt.graphics.Color THIS_FORE = new org.eclipse.swt.graphics.Color(null, 255, 0, 0);

">
+ <attributes
+ xsi:type="gmfgen:StyleAttributes"
+ fixedForeground="true"/>
+ <attributes
+ xsi:type="gmfgen:DefaultSizeAttributes"
+ width="20"
+ height="20"/>
+ </viewmap>
+ <modelFacet>
+ <metaClass
+ href="comrel.genmodel#//comrel/MultiInputPort"/>
+ <containmentMetaFeature
+ href="comrel.genmodel#//comrel/SingleQueuedUnit/multiInputPort"/>
+ <childMetaFeature
+ href="comrel.genmodel#//comrel/SingleQueuedUnit/multiInputPort"/>
+ </modelFacet>
+ <labels
+ xsi:type="gmfgen:GenExternalNodeLabel"
+ visualID="5021"
+ editPartClassName="MultiInputPortNameType7EditPart"
+ itemSemanticEditPolicyClassName="MultiInputPortNameType7ItemSemanticEditPolicy"
+ notationViewFactoryClassName="MultiInputPortNameTypeViewFactory">
+ <diagramRunTimeClass
+ href="../../../plugin/org.eclipse.gmf.runtime.notation/model/notation.genmodel#//notation/Node"/>
+ <viewmap
+ xsi:type="gmfgen:InnerClassViewmap"
+ className="MultiInputPortLabelFigure"
+ classBody="
/**
 * @generated
 */
public class MultiInputPortLabelFigure extends org.eclipse.gmf.runtime.draw2d.ui.figures.WrappingLabel {




	/**
	 * @generated
	 */
	public MultiInputPortLabelFigure() {
				this.setText("MultiInputPort");
	}





}

"/>
+ <modelFacet
+ xsi:type="gmfgen:FeatureLabelModelFacet"
+ parser="//@labelParsers/@implementations.0"
+ viewPattern="{0}:{1}"
+ editorPattern="{0}:{1}"
+ editPattern="{0}:{1}">
+ <metaFeatures
+ href="comrel.genmodel#//comrel/NamedElement/name"/>
+ <metaFeatures
+ href="comrel.genmodel#//comrel/Port/type"/>
+ </modelFacet>
+ </labels>
+ </childNodes>
+ <childNodes
+ visualID="3025"
+ editPartClassName="CartesianQueuedUnit4EditPart"
+ itemSemanticEditPolicyClassName="CartesianQueuedUnit4ItemSemanticEditPolicy"
+ notationViewFactoryClassName="CartesianQueuedUnitViewFactory"
+ canonicalEditPolicyClassName="CartesianQueuedUnit4CanonicalEditPolicy"
+ childNodes="//@diagram/@childNodes.0 //@diagram/@childNodes.1"
+ compartments="//@diagram/@compartments.10 //@diagram/@compartments.11"
+ graphicalNodeEditPolicyClassName="CartesianQueuedUnit4GraphicalNodeEditPolicy"
+ createCommandClassName="CartesianQueuedUnit4CreateCommand"
+ containers="//@diagram/@compartments.27 //@diagram/@compartments.43 //@diagram/@compartments.45 //@diagram/@compartments.49 //@diagram/@compartments.55 //@diagram/@compartments.9 //@diagram/@compartments.77">
+ <diagramRunTimeClass
+ href="../../../plugin/org.eclipse.gmf.runtime.notation/model/notation.genmodel#//notation/Node"/>
+ <elementType
+ xsi:type="gmfgen:SpecializationType"
+ metamodelType="//@diagram/@topLevelNodes.1/@elementType"/>
+ <viewmap
+ xsi:type="gmfgen:InnerClassViewmap"
+ className="CartesianQueuedUnitFigure"
+ classBody="
/**
 * @generated
 */
public class CartesianQueuedUnitFigure extends org.eclipse.draw2d.RoundedRectangle {


	/**
	 * @generated
	 */
	private org.eclipse.gmf.runtime.draw2d.ui.figures.WrappingLabel fFigureCartesianQueuedUnitLabelFigure; 
	/**
	 * @generated
	 */
	private org.eclipse.draw2d.RectangleFigure fCartesianQueuedUnitHelperUnitsCompartmentFigure; 
	/**
	 * @generated
	 */
	private org.eclipse.draw2d.RectangleFigure fCartesianQueuedUnitRefactoringUnitCompartmentFigure; 


	/**
	 * @generated
	 */
	public CartesianQueuedUnitFigure() {
				this.setCornerDimensions(new org.eclipse.draw2d.geometry.Dimension(getMapMode().DPtoLP(8)
, getMapMode().DPtoLP(8)
));
this.setBorder(new org.eclipse.draw2d.MarginBorder(getMapMode().DPtoLP(5)
, getMapMode().DPtoLP(5)
, getMapMode().DPtoLP(5)
, getMapMode().DPtoLP(5)
));
		createContents();
	}
	/**
	 * @generated
	 */
	private void createContents(){


fFigureCartesianQueuedUnitLabelFigure = new org.eclipse.gmf.runtime.draw2d.ui.figures.WrappingLabel();
fFigureCartesianQueuedUnitLabelFigure.setText("CartesianQueuedUnit");
fFigureCartesianQueuedUnitLabelFigure.setMaximumSize(new org.eclipse.draw2d.geometry.Dimension(getMapMode().DPtoLP(10000)
, getMapMode().DPtoLP(50)
));

this.add(fFigureCartesianQueuedUnitLabelFigure);



fCartesianQueuedUnitHelperUnitsCompartmentFigure = new org.eclipse.draw2d.RectangleFigure();
fCartesianQueuedUnitHelperUnitsCompartmentFigure.setOutline(false);

this.add(fCartesianQueuedUnitHelperUnitsCompartmentFigure);



fCartesianQueuedUnitRefactoringUnitCompartmentFigure = new org.eclipse.draw2d.RectangleFigure();
fCartesianQueuedUnitRefactoringUnitCompartmentFigure.setOutline(false);

this.add(fCartesianQueuedUnitRefactoringUnitCompartmentFigure);


	}





	/**
	 * @generated
	 */
	public org.eclipse.gmf.runtime.draw2d.ui.figures.WrappingLabel getFigureCartesianQueuedUnitLabelFigure() {
		return fFigureCartesianQueuedUnitLabelFigure;
	}
	/**
	 * @generated
	 */
	public org.eclipse.draw2d.RectangleFigure getCartesianQueuedUnitHelperUnitsCompartmentFigure() {
		return fCartesianQueuedUnitHelperUnitsCompartmentFigure;
	}
	/**
	 * @generated
	 */
	public org.eclipse.draw2d.RectangleFigure getCartesianQueuedUnitRefactoringUnitCompartmentFigure() {
		return fCartesianQueuedUnitRefactoringUnitCompartmentFigure;
	}


}

"/>
+ <behaviour
+ xsi:type="gmfgen:OpenDiagramBehaviour"/>
+ <modelFacet>
+ <metaClass
+ href="comrel.genmodel#//comrel/CartesianQueuedUnit"/>
+ <containmentMetaFeature
+ href="comrel.genmodel#//comrel/SingleQueuedUnit/refactoringUnit"/>
+ <childMetaFeature
+ href="comrel.genmodel#//comrel/SingleQueuedUnit/refactoringUnit"/>
+ </modelFacet>
+ <labels
+ visualID="5075"
+ editPartClassName="CartesianQueuedUnitNameTypeLblStrict4EditPart"
+ itemSemanticEditPolicyClassName="CartesianQueuedUnitNameTypeLblStrict4ItemSemanticEditPolicy"
+ notationViewFactoryClassName="CartesianQueuedUnitNameTypeLblStrictViewFactory">
+ <diagramRunTimeClass
+ href="../../../plugin/org.eclipse.gmf.runtime.notation/model/notation.genmodel#//notation/Node"/>
+ <viewmap
+ xsi:type="gmfgen:ParentAssignedViewmap"
+ getterName="getFigureCartesianQueuedUnitLabelFigure"
+ figureQualifiedClassName="org.eclipse.gmf.runtime.draw2d.ui.figures.WrappingLabel"/>
+ <modelFacet
+ xsi:type="gmfgen:FeatureLabelModelFacet"
+ parser="//@labelParsers/@implementations.0"
+ viewPattern="{0}:{1} -{2}-"
+ editorPattern="{0}:{1} -{2}-"
+ editPattern="{0}:{1} -{2}-">
+ <metaFeatures
+ href="comrel.genmodel#//comrel/NamedElement/name"/>
+ <metaFeatures
+ href="comrel.genmodel#//comrel/CartesianQueuedUnit/type"/>
+ <metaFeatures
+ href="comrel.genmodel#//comrel/CartesianQueuedUnit/lblStrict"/>
+ </modelFacet>
+ </labels>
+ </childNodes>
+ <childNodes
+ visualID="3026"
+ editPartClassName="SequentialUnit2EditPart"
+ itemSemanticEditPolicyClassName="SequentialUnit2ItemSemanticEditPolicy"
+ notationViewFactoryClassName="SequentialUnitViewFactory"
+ canonicalEditPolicyClassName="SequentialUnit2CanonicalEditPolicy"
+ childNodes="//@diagram/@childNodes.26 //@diagram/@childNodes.27"
+ compartments="//@diagram/@compartments.12 //@diagram/@compartments.13"
+ graphicalNodeEditPolicyClassName="SequentialUnit2GraphicalNodeEditPolicy"
+ createCommandClassName="SequentialUnit2CreateCommand"
+ containers="//@diagram/@compartments.15 //@diagram/@compartments.21 //@diagram/@compartments.39 //@diagram/@compartments.11 //@diagram/@compartments.7 //@diagram/@compartments.3 //@diagram/@compartments.1">
+ <diagramRunTimeClass
+ href="../../../plugin/org.eclipse.gmf.runtime.notation/model/notation.genmodel#//notation/Node"/>
+ <elementType
+ xsi:type="gmfgen:MetamodelType"
+ editHelperClassName="SequentialUnitEditHelper"/>
+ <viewmap
+ xsi:type="gmfgen:InnerClassViewmap"
+ className="SequentialUnitFigure"
+ classBody="
/**
 * @generated
 */
public class SequentialUnitFigure extends org.eclipse.draw2d.RoundedRectangle {


	/**
	 * @generated
	 */
	private org.eclipse.gmf.runtime.draw2d.ui.figures.WrappingLabel fFigureSequentialUnitLabelFigure; 
	/**
	 * @generated
	 */
	private org.eclipse.draw2d.RectangleFigure fSequentialUnitHelperUnitsCompartmentFigure; 
	/**
	 * @generated
	 */
	private org.eclipse.draw2d.RectangleFigure fSequentialUnitRefactoringUnitsCompartmentFigure; 


	/**
	 * @generated
	 */
	public SequentialUnitFigure() {
				this.setCornerDimensions(new org.eclipse.draw2d.geometry.Dimension(getMapMode().DPtoLP(8)
, getMapMode().DPtoLP(8)
));
this.setBorder(new org.eclipse.draw2d.MarginBorder(getMapMode().DPtoLP(5)
, getMapMode().DPtoLP(5)
, getMapMode().DPtoLP(5)
, getMapMode().DPtoLP(5)
));
		createContents();
	}
	/**
	 * @generated
	 */
	private void createContents(){


fFigureSequentialUnitLabelFigure = new org.eclipse.gmf.runtime.draw2d.ui.figures.WrappingLabel();
fFigureSequentialUnitLabelFigure.setText("SequentialUnit");
fFigureSequentialUnitLabelFigure.setMaximumSize(new org.eclipse.draw2d.geometry.Dimension(getMapMode().DPtoLP(10000)
, getMapMode().DPtoLP(50)
));

this.add(fFigureSequentialUnitLabelFigure);



fSequentialUnitHelperUnitsCompartmentFigure = new org.eclipse.draw2d.RectangleFigure();
fSequentialUnitHelperUnitsCompartmentFigure.setOutline(false);

this.add(fSequentialUnitHelperUnitsCompartmentFigure);



fSequentialUnitRefactoringUnitsCompartmentFigure = new org.eclipse.draw2d.RectangleFigure();
fSequentialUnitRefactoringUnitsCompartmentFigure.setOutline(false);

this.add(fSequentialUnitRefactoringUnitsCompartmentFigure);


	}





	/**
	 * @generated
	 */
	public org.eclipse.gmf.runtime.draw2d.ui.figures.WrappingLabel getFigureSequentialUnitLabelFigure() {
		return fFigureSequentialUnitLabelFigure;
	}
	/**
	 * @generated
	 */
	public org.eclipse.draw2d.RectangleFigure getSequentialUnitHelperUnitsCompartmentFigure() {
		return fSequentialUnitHelperUnitsCompartmentFigure;
	}
	/**
	 * @generated
	 */
	public org.eclipse.draw2d.RectangleFigure getSequentialUnitRefactoringUnitsCompartmentFigure() {
		return fSequentialUnitRefactoringUnitsCompartmentFigure;
	}


}

"/>
+ <behaviour
+ xsi:type="gmfgen:OpenDiagramBehaviour"/>
+ <modelFacet>
+ <metaClass
+ href="comrel.genmodel#//comrel/SequentialUnit"/>
+ <containmentMetaFeature
+ href="comrel.genmodel#//comrel/CartesianQueuedUnit/refactoringUnit"/>
+ <childMetaFeature
+ href="comrel.genmodel#//comrel/CartesianQueuedUnit/refactoringUnit"/>
+ </modelFacet>
+ <labels
+ visualID="5074"
+ editPartClassName="SequentialUnitNameTypeLblStrict2EditPart"
+ itemSemanticEditPolicyClassName="SequentialUnitNameTypeLblStrict2ItemSemanticEditPolicy"
+ notationViewFactoryClassName="SequentialUnitNameTypeLblStrictViewFactory">
+ <diagramRunTimeClass
+ href="../../../plugin/org.eclipse.gmf.runtime.notation/model/notation.genmodel#//notation/Node"/>
+ <viewmap
+ xsi:type="gmfgen:ParentAssignedViewmap"
+ getterName="getFigureSequentialUnitLabelFigure"
+ figureQualifiedClassName="org.eclipse.gmf.runtime.draw2d.ui.figures.WrappingLabel"/>
+ <modelFacet
+ xsi:type="gmfgen:FeatureLabelModelFacet"
+ parser="//@labelParsers/@implementations.0"
+ viewPattern="{0}:{1} -{2}-"
+ editorPattern="{0}:{1} -{2}-"
+ editPattern="{0}:{1} -{2}-">
+ <metaFeatures
+ href="comrel.genmodel#//comrel/NamedElement/name"/>
+ <metaFeatures
+ href="comrel.genmodel#//comrel/SequentialUnit/type"/>
+ <metaFeatures
+ href="comrel.genmodel#//comrel/SequentialUnit/lblStrict"/>
+ </modelFacet>
+ </labels>
+ </childNodes>
+ <childNodes
+ xsi:type="gmfgen:GenChildSideAffixedNode"
+ visualID="3027"
+ editPartClassName="SingleInputPort7EditPart"
+ itemSemanticEditPolicyClassName="SingleInputPort7ItemSemanticEditPolicy"
+ notationViewFactoryClassName="SingleInputPortViewFactory"
+ canonicalEditPolicyClassName="SingleInputPort7CanonicalEditPolicy"
+ graphicalNodeEditPolicyClassName="SingleInputPort7GraphicalNodeEditPolicy"
+ createCommandClassName="SingleInputPort7CreateCommand"
+ containers="//@diagram/@childNodes.25 //@diagram/@childNodes.43 //@diagram/@childNodes.59 //@diagram/@childNodes.68 //@diagram/@childNodes.69 //@diagram/@childNodes.72 //@diagram/@topLevelNodes.4">
+ <diagramRunTimeClass
+ href="../../../plugin/org.eclipse.gmf.runtime.notation/model/notation.genmodel#//notation/Node"/>
+ <elementType
+ xsi:type="gmfgen:SpecializationType"
+ metamodelType="//@diagram/@topLevelNodes.0/@elementType"/>
+ <viewmap
+ xsi:type="gmfgen:InnerClassViewmap"
+ className="SingleInputPortFigure"
+ classBody="
/**
 * @generated
 */
public class SingleInputPortFigure extends org.eclipse.draw2d.RectangleFigure {




	/**
	 * @generated
	 */
	public SingleInputPortFigure() {
				this.setPreferredSize(new org.eclipse.draw2d.geometry.Dimension(getMapMode().DPtoLP(20)
, getMapMode().DPtoLP(20)
));
this.setBorder(new org.eclipse.draw2d.MarginBorder(getMapMode().DPtoLP(5)
, getMapMode().DPtoLP(5)
, getMapMode().DPtoLP(5)
, getMapMode().DPtoLP(5)
));
	}





}

">
+ <attributes
+ xsi:type="gmfgen:DefaultSizeAttributes"
+ width="20"
+ height="20"/>
+ </viewmap>
+ <modelFacet>
+ <metaClass
+ href="comrel.genmodel#//comrel/SingleInputPort"/>
+ <containmentMetaFeature
+ href="comrel.genmodel#//comrel/SequentialUnit/inputPorts"/>
+ <childMetaFeature
+ href="comrel.genmodel#//comrel/SequentialUnit/inputPorts"/>
+ </modelFacet>
+ <labels
+ xsi:type="gmfgen:GenExternalNodeLabel"
+ visualID="5022"
+ editPartClassName="SingleInputPortNameType7EditPart"
+ itemSemanticEditPolicyClassName="SingleInputPortNameType7ItemSemanticEditPolicy"
+ notationViewFactoryClassName="SingleInputPortNameTypeViewFactory">
+ <diagramRunTimeClass
+ href="../../../plugin/org.eclipse.gmf.runtime.notation/model/notation.genmodel#//notation/Node"/>
+ <viewmap
+ xsi:type="gmfgen:InnerClassViewmap"
+ className="SingleInputPortLabelFigure"
+ classBody="
/**
 * @generated
 */
public class SingleInputPortLabelFigure extends org.eclipse.gmf.runtime.draw2d.ui.figures.WrappingLabel {




	/**
	 * @generated
	 */
	public SingleInputPortLabelFigure() {
				this.setText("SingleInputPort");
	}





}

"/>
+ <modelFacet
+ xsi:type="gmfgen:FeatureLabelModelFacet"
+ parser="//@labelParsers/@implementations.0"
+ viewPattern="{0}:{1}"
+ editorPattern="{0}:{1}"
+ editPattern="{0}:{1}">
+ <metaFeatures
+ href="comrel.genmodel#//comrel/NamedElement/name"/>
+ <metaFeatures
+ href="comrel.genmodel#//comrel/Port/type"/>
+ </modelFacet>
+ </labels>
+ </childNodes>
+ <childNodes
+ xsi:type="gmfgen:GenChildSideAffixedNode"
+ visualID="3028"
+ editPartClassName="MultiInputPort8EditPart"
+ itemSemanticEditPolicyClassName="MultiInputPort8ItemSemanticEditPolicy"
+ notationViewFactoryClassName="MultiInputPortViewFactory"
+ canonicalEditPolicyClassName="MultiInputPort8CanonicalEditPolicy"
+ graphicalNodeEditPolicyClassName="MultiInputPort8GraphicalNodeEditPolicy"
+ createCommandClassName="MultiInputPort8CreateCommand"
+ containers="//@diagram/@childNodes.25 //@diagram/@childNodes.43 //@diagram/@childNodes.59 //@diagram/@childNodes.68 //@diagram/@childNodes.69 //@diagram/@childNodes.72 //@diagram/@topLevelNodes.4">
+ <diagramRunTimeClass
+ href="../../../plugin/org.eclipse.gmf.runtime.notation/model/notation.genmodel#//notation/Node"/>
+ <elementType
+ xsi:type="gmfgen:SpecializationType"
+ metamodelType="//@diagram/@childNodes.1/@elementType"/>
+ <viewmap
+ xsi:type="gmfgen:InnerClassViewmap"
+ className="MultiInputPortFigure"
+ classBody="
/**
 * @generated
 */
public class MultiInputPortFigure extends org.eclipse.draw2d.RectangleFigure {




	/**
	 * @generated
	 */
	public MultiInputPortFigure() {
				this.setLineWidth(10);
	this.setForegroundColor(THIS_FORE
);
this.setPreferredSize(new org.eclipse.draw2d.geometry.Dimension(getMapMode().DPtoLP(20)
, getMapMode().DPtoLP(20)
));
this.setBorder(new org.eclipse.draw2d.MarginBorder(getMapMode().DPtoLP(5)
, getMapMode().DPtoLP(5)
, getMapMode().DPtoLP(5)
, getMapMode().DPtoLP(5)
));
	}





}

/**
 * @generated
 */
static final org.eclipse.swt.graphics.Color THIS_FORE = new org.eclipse.swt.graphics.Color(null, 255, 0, 0);

">
+ <attributes
+ xsi:type="gmfgen:StyleAttributes"
+ fixedForeground="true"/>
+ <attributes
+ xsi:type="gmfgen:DefaultSizeAttributes"
+ width="20"
+ height="20"/>
+ </viewmap>
+ <modelFacet>
+ <metaClass
+ href="comrel.genmodel#//comrel/MultiInputPort"/>
+ <containmentMetaFeature
+ href="comrel.genmodel#//comrel/SequentialUnit/inputPorts"/>
+ <childMetaFeature
+ href="comrel.genmodel#//comrel/SequentialUnit/inputPorts"/>
+ </modelFacet>
+ <labels
+ xsi:type="gmfgen:GenExternalNodeLabel"
+ visualID="5023"
+ editPartClassName="MultiInputPortNameType8EditPart"
+ itemSemanticEditPolicyClassName="MultiInputPortNameType8ItemSemanticEditPolicy"
+ notationViewFactoryClassName="MultiInputPortNameTypeViewFactory">
+ <diagramRunTimeClass
+ href="../../../plugin/org.eclipse.gmf.runtime.notation/model/notation.genmodel#//notation/Node"/>
+ <viewmap
+ xsi:type="gmfgen:InnerClassViewmap"
+ className="MultiInputPortLabelFigure"
+ classBody="
/**
 * @generated
 */
public class MultiInputPortLabelFigure extends org.eclipse.gmf.runtime.draw2d.ui.figures.WrappingLabel {




	/**
	 * @generated
	 */
	public MultiInputPortLabelFigure() {
				this.setText("MultiInputPort");
	}





}

"/>
+ <modelFacet
+ xsi:type="gmfgen:FeatureLabelModelFacet"
+ parser="//@labelParsers/@implementations.0"
+ viewPattern="{0}:{1}"
+ editorPattern="{0}:{1}"
+ editPattern="{0}:{1}">
+ <metaFeatures
+ href="comrel.genmodel#//comrel/NamedElement/name"/>
+ <metaFeatures
+ href="comrel.genmodel#//comrel/Port/type"/>
+ </modelFacet>
+ </labels>
+ </childNodes>
+ <childNodes
+ visualID="3029"
+ editPartClassName="CartesianQueuedUnit5EditPart"
+ itemSemanticEditPolicyClassName="CartesianQueuedUnit5ItemSemanticEditPolicy"
+ notationViewFactoryClassName="CartesianQueuedUnitViewFactory"
+ canonicalEditPolicyClassName="CartesianQueuedUnit5CanonicalEditPolicy"
+ childNodes="//@diagram/@childNodes.0 //@diagram/@childNodes.1"
+ compartments="//@diagram/@compartments.14 //@diagram/@compartments.15"
+ graphicalNodeEditPolicyClassName="CartesianQueuedUnit5GraphicalNodeEditPolicy"
+ createCommandClassName="CartesianQueuedUnit5CreateCommand"
+ containers="//@diagram/@compartments.31 //@diagram/@compartments.47 //@diagram/@compartments.57 //@diagram/@compartments.59 //@diagram/@compartments.69 //@diagram/@compartments.13 //@diagram/@compartments.79">
+ <diagramRunTimeClass
+ href="../../../plugin/org.eclipse.gmf.runtime.notation/model/notation.genmodel#//notation/Node"/>
+ <elementType
+ xsi:type="gmfgen:SpecializationType"
+ metamodelType="//@diagram/@topLevelNodes.1/@elementType"/>
+ <viewmap
+ xsi:type="gmfgen:InnerClassViewmap"
+ className="CartesianQueuedUnitFigure"
+ classBody="
/**
 * @generated
 */
public class CartesianQueuedUnitFigure extends org.eclipse.draw2d.RoundedRectangle {


	/**
	 * @generated
	 */
	private org.eclipse.gmf.runtime.draw2d.ui.figures.WrappingLabel fFigureCartesianQueuedUnitLabelFigure; 
	/**
	 * @generated
	 */
	private org.eclipse.draw2d.RectangleFigure fCartesianQueuedUnitHelperUnitsCompartmentFigure; 
	/**
	 * @generated
	 */
	private org.eclipse.draw2d.RectangleFigure fCartesianQueuedUnitRefactoringUnitCompartmentFigure; 


	/**
	 * @generated
	 */
	public CartesianQueuedUnitFigure() {
				this.setCornerDimensions(new org.eclipse.draw2d.geometry.Dimension(getMapMode().DPtoLP(8)
, getMapMode().DPtoLP(8)
));
this.setBorder(new org.eclipse.draw2d.MarginBorder(getMapMode().DPtoLP(5)
, getMapMode().DPtoLP(5)
, getMapMode().DPtoLP(5)
, getMapMode().DPtoLP(5)
));
		createContents();
	}
	/**
	 * @generated
	 */
	private void createContents(){


fFigureCartesianQueuedUnitLabelFigure = new org.eclipse.gmf.runtime.draw2d.ui.figures.WrappingLabel();
fFigureCartesianQueuedUnitLabelFigure.setText("CartesianQueuedUnit");
fFigureCartesianQueuedUnitLabelFigure.setMaximumSize(new org.eclipse.draw2d.geometry.Dimension(getMapMode().DPtoLP(10000)
, getMapMode().DPtoLP(50)
));

this.add(fFigureCartesianQueuedUnitLabelFigure);



fCartesianQueuedUnitHelperUnitsCompartmentFigure = new org.eclipse.draw2d.RectangleFigure();
fCartesianQueuedUnitHelperUnitsCompartmentFigure.setOutline(false);

this.add(fCartesianQueuedUnitHelperUnitsCompartmentFigure);



fCartesianQueuedUnitRefactoringUnitCompartmentFigure = new org.eclipse.draw2d.RectangleFigure();
fCartesianQueuedUnitRefactoringUnitCompartmentFigure.setOutline(false);

this.add(fCartesianQueuedUnitRefactoringUnitCompartmentFigure);


	}





	/**
	 * @generated
	 */
	public org.eclipse.gmf.runtime.draw2d.ui.figures.WrappingLabel getFigureCartesianQueuedUnitLabelFigure() {
		return fFigureCartesianQueuedUnitLabelFigure;
	}
	/**
	 * @generated
	 */
	public org.eclipse.draw2d.RectangleFigure getCartesianQueuedUnitHelperUnitsCompartmentFigure() {
		return fCartesianQueuedUnitHelperUnitsCompartmentFigure;
	}
	/**
	 * @generated
	 */
	public org.eclipse.draw2d.RectangleFigure getCartesianQueuedUnitRefactoringUnitCompartmentFigure() {
		return fCartesianQueuedUnitRefactoringUnitCompartmentFigure;
	}


}

"/>
+ <behaviour
+ xsi:type="gmfgen:OpenDiagramBehaviour"/>
+ <modelFacet>
+ <metaClass
+ href="comrel.genmodel#//comrel/CartesianQueuedUnit"/>
+ <containmentMetaFeature
+ href="comrel.genmodel#//comrel/SequentialUnit/refactoringUnits"/>
+ <childMetaFeature
+ href="comrel.genmodel#//comrel/SequentialUnit/refactoringUnits"/>
+ </modelFacet>
+ <labels
+ visualID="5073"
+ editPartClassName="CartesianQueuedUnitNameTypeLblStrict5EditPart"
+ itemSemanticEditPolicyClassName="CartesianQueuedUnitNameTypeLblStrict5ItemSemanticEditPolicy"
+ notationViewFactoryClassName="CartesianQueuedUnitNameTypeLblStrictViewFactory">
+ <diagramRunTimeClass
+ href="../../../plugin/org.eclipse.gmf.runtime.notation/model/notation.genmodel#//notation/Node"/>
+ <viewmap
+ xsi:type="gmfgen:ParentAssignedViewmap"
+ getterName="getFigureCartesianQueuedUnitLabelFigure"
+ figureQualifiedClassName="org.eclipse.gmf.runtime.draw2d.ui.figures.WrappingLabel"/>
+ <modelFacet
+ xsi:type="gmfgen:FeatureLabelModelFacet"
+ parser="//@labelParsers/@implementations.0"
+ viewPattern="{0}:{1} -{2}-"
+ editorPattern="{0}:{1} -{2}-"
+ editPattern="{0}:{1} -{2}-">
+ <metaFeatures
+ href="comrel.genmodel#//comrel/NamedElement/name"/>
+ <metaFeatures
+ href="comrel.genmodel#//comrel/CartesianQueuedUnit/type"/>
+ <metaFeatures
+ href="comrel.genmodel#//comrel/CartesianQueuedUnit/lblStrict"/>
+ </modelFacet>
+ </labels>
+ </childNodes>
+ <childNodes
+ visualID="3030"
+ editPartClassName="ConditionalUnit2EditPart"
+ itemSemanticEditPolicyClassName="ConditionalUnit2ItemSemanticEditPolicy"
+ notationViewFactoryClassName="ConditionalUnitViewFactory"
+ canonicalEditPolicyClassName="ConditionalUnit2CanonicalEditPolicy"
+ childNodes="//@diagram/@childNodes.30 //@diagram/@childNodes.31"
+ compartments="//@diagram/@compartments.16 //@diagram/@compartments.17 //@diagram/@compartments.18 //@diagram/@compartments.19"
+ graphicalNodeEditPolicyClassName="ConditionalUnit2GraphicalNodeEditPolicy"
+ createCommandClassName="ConditionalUnit2CreateCommand"
+ containers="//@diagram/@compartments.21 //@diagram/@compartments.39 //@diagram/@compartments.15 //@diagram/@compartments.11 //@diagram/@compartments.7 //@diagram/@compartments.3 //@diagram/@compartments.1">
+ <diagramRunTimeClass
+ href="../../../plugin/org.eclipse.gmf.runtime.notation/model/notation.genmodel#//notation/Node"/>
+ <elementType
+ xsi:type="gmfgen:MetamodelType"
+ editHelperClassName="ConditionalUnitEditHelper"/>
+ <viewmap
+ xsi:type="gmfgen:InnerClassViewmap"
+ className="ConditionalUnitFigure"
+ classBody="
/**
 * @generated
 */
public class ConditionalUnitFigure extends org.eclipse.draw2d.RoundedRectangle {


	/**
	 * @generated
	 */
	private org.eclipse.gmf.runtime.draw2d.ui.figures.WrappingLabel fFigureConditionalUnitLabelFigure; 
	/**
	 * @generated
	 */
	private org.eclipse.draw2d.RectangleFigure fConditionalUnitIfCompartmentFigure; 
	/**
	 * @generated
	 */
	private org.eclipse.draw2d.RectangleFigure fConditionalUnitHelperUnitsCompartmentFigure; 
	/**
	 * @generated
	 */
	private org.eclipse.draw2d.RectangleFigure fConditionalUnitThenCompartmentFigure; 
	/**
	 * @generated
	 */
	private org.eclipse.draw2d.RectangleFigure fConditionalUnitElseCompartmentFigure; 


	/**
	 * @generated
	 */
	public ConditionalUnitFigure() {
				this.setCornerDimensions(new org.eclipse.draw2d.geometry.Dimension(getMapMode().DPtoLP(8)
, getMapMode().DPtoLP(8)
));
this.setBorder(new org.eclipse.draw2d.MarginBorder(getMapMode().DPtoLP(5)
, getMapMode().DPtoLP(5)
, getMapMode().DPtoLP(5)
, getMapMode().DPtoLP(5)
));
		createContents();
	}
	/**
	 * @generated
	 */
	private void createContents(){


fFigureConditionalUnitLabelFigure = new org.eclipse.gmf.runtime.draw2d.ui.figures.WrappingLabel();
fFigureConditionalUnitLabelFigure.setText("ConditionalUnit");
fFigureConditionalUnitLabelFigure.setMaximumSize(new org.eclipse.draw2d.geometry.Dimension(getMapMode().DPtoLP(10000)
, getMapMode().DPtoLP(50)
));

this.add(fFigureConditionalUnitLabelFigure);



fConditionalUnitIfCompartmentFigure = new org.eclipse.draw2d.RectangleFigure();
fConditionalUnitIfCompartmentFigure.setOutline(false);

this.add(fConditionalUnitIfCompartmentFigure);



fConditionalUnitHelperUnitsCompartmentFigure = new org.eclipse.draw2d.RectangleFigure();
fConditionalUnitHelperUnitsCompartmentFigure.setOutline(false);

this.add(fConditionalUnitHelperUnitsCompartmentFigure);



fConditionalUnitThenCompartmentFigure = new org.eclipse.draw2d.RectangleFigure();
fConditionalUnitThenCompartmentFigure.setOutline(false);

this.add(fConditionalUnitThenCompartmentFigure);



fConditionalUnitElseCompartmentFigure = new org.eclipse.draw2d.RectangleFigure();
fConditionalUnitElseCompartmentFigure.setOutline(false);

this.add(fConditionalUnitElseCompartmentFigure);


	}





	/**
	 * @generated
	 */
	public org.eclipse.gmf.runtime.draw2d.ui.figures.WrappingLabel getFigureConditionalUnitLabelFigure() {
		return fFigureConditionalUnitLabelFigure;
	}
	/**
	 * @generated
	 */
	public org.eclipse.draw2d.RectangleFigure getConditionalUnitIfCompartmentFigure() {
		return fConditionalUnitIfCompartmentFigure;
	}
	/**
	 * @generated
	 */
	public org.eclipse.draw2d.RectangleFigure getConditionalUnitHelperUnitsCompartmentFigure() {
		return fConditionalUnitHelperUnitsCompartmentFigure;
	}
	/**
	 * @generated
	 */
	public org.eclipse.draw2d.RectangleFigure getConditionalUnitThenCompartmentFigure() {
		return fConditionalUnitThenCompartmentFigure;
	}
	/**
	 * @generated
	 */
	public org.eclipse.draw2d.RectangleFigure getConditionalUnitElseCompartmentFigure() {
		return fConditionalUnitElseCompartmentFigure;
	}


}

"/>
+ <behaviour
+ xsi:type="gmfgen:OpenDiagramBehaviour"/>
+ <modelFacet>
+ <metaClass
+ href="comrel.genmodel#//comrel/ConditionalUnit"/>
+ <containmentMetaFeature
+ href="comrel.genmodel#//comrel/CartesianQueuedUnit/refactoringUnit"/>
+ <childMetaFeature
+ href="comrel.genmodel#//comrel/CartesianQueuedUnit/refactoringUnit"/>
+ </modelFacet>
+ <labels
+ visualID="5072"
+ editPartClassName="ConditionalUnitNameType2EditPart"
+ itemSemanticEditPolicyClassName="ConditionalUnitNameType2ItemSemanticEditPolicy"
+ notationViewFactoryClassName="ConditionalUnitNameTypeViewFactory">
+ <diagramRunTimeClass
+ href="../../../plugin/org.eclipse.gmf.runtime.notation/model/notation.genmodel#//notation/Node"/>
+ <viewmap
+ xsi:type="gmfgen:ParentAssignedViewmap"
+ getterName="getFigureConditionalUnitLabelFigure"
+ figureQualifiedClassName="org.eclipse.gmf.runtime.draw2d.ui.figures.WrappingLabel"/>
+ <modelFacet
+ xsi:type="gmfgen:FeatureLabelModelFacet"
+ parser="//@labelParsers/@implementations.0"
+ viewPattern="{0}:{1}"
+ editorPattern="{0}:{1}"
+ editPattern="{0}:{1}">
+ <metaFeatures
+ href="comrel.genmodel#//comrel/NamedElement/name"/>
+ <metaFeatures
+ href="comrel.genmodel#//comrel/ConditionalUnit/type"/>
+ </modelFacet>
+ </labels>
+ </childNodes>
+ <childNodes
+ xsi:type="gmfgen:GenChildSideAffixedNode"
+ visualID="3031"
+ editPartClassName="SingleInputPort8EditPart"
+ itemSemanticEditPolicyClassName="SingleInputPort8ItemSemanticEditPolicy"
+ notationViewFactoryClassName="SingleInputPortViewFactory"
+ canonicalEditPolicyClassName="SingleInputPort8CanonicalEditPolicy"
+ graphicalNodeEditPolicyClassName="SingleInputPort8GraphicalNodeEditPolicy"
+ createCommandClassName="SingleInputPort8CreateCommand"
+ containers="//@diagram/@childNodes.29 //@diagram/@childNodes.45 //@diagram/@childNodes.65 //@diagram/@childNodes.70 //@diagram/@childNodes.71 //@diagram/@childNodes.74 //@diagram/@topLevelNodes.5">
+ <diagramRunTimeClass
+ href="../../../plugin/org.eclipse.gmf.runtime.notation/model/notation.genmodel#//notation/Node"/>
+ <elementType
+ xsi:type="gmfgen:SpecializationType"
+ metamodelType="//@diagram/@topLevelNodes.0/@elementType"/>
+ <viewmap
+ xsi:type="gmfgen:InnerClassViewmap"
+ className="SingleInputPortFigure"
+ classBody="
/**
 * @generated
 */
public class SingleInputPortFigure extends org.eclipse.draw2d.RectangleFigure {




	/**
	 * @generated
	 */
	public SingleInputPortFigure() {
				this.setPreferredSize(new org.eclipse.draw2d.geometry.Dimension(getMapMode().DPtoLP(20)
, getMapMode().DPtoLP(20)
));
this.setBorder(new org.eclipse.draw2d.MarginBorder(getMapMode().DPtoLP(5)
, getMapMode().DPtoLP(5)
, getMapMode().DPtoLP(5)
, getMapMode().DPtoLP(5)
));
	}





}

">
+ <attributes
+ xsi:type="gmfgen:DefaultSizeAttributes"
+ width="20"
+ height="20"/>
+ </viewmap>
+ <modelFacet>
+ <metaClass
+ href="comrel.genmodel#//comrel/SingleInputPort"/>
+ <containmentMetaFeature
+ href="comrel.genmodel#//comrel/ConditionalUnit/inputPorts"/>
+ <childMetaFeature
+ href="comrel.genmodel#//comrel/ConditionalUnit/inputPorts"/>
+ </modelFacet>
+ <labels
+ xsi:type="gmfgen:GenExternalNodeLabel"
+ visualID="5024"
+ editPartClassName="SingleInputPortNameType8EditPart"
+ itemSemanticEditPolicyClassName="SingleInputPortNameType8ItemSemanticEditPolicy"
+ notationViewFactoryClassName="SingleInputPortNameTypeViewFactory">
+ <diagramRunTimeClass
+ href="../../../plugin/org.eclipse.gmf.runtime.notation/model/notation.genmodel#//notation/Node"/>
+ <viewmap
+ xsi:type="gmfgen:InnerClassViewmap"
+ className="SingleInputPortLabelFigure"
+ classBody="
/**
 * @generated
 */
public class SingleInputPortLabelFigure extends org.eclipse.gmf.runtime.draw2d.ui.figures.WrappingLabel {




	/**
	 * @generated
	 */
	public SingleInputPortLabelFigure() {
				this.setText("SingleInputPort");
	}





}

"/>
+ <modelFacet
+ xsi:type="gmfgen:FeatureLabelModelFacet"
+ parser="//@labelParsers/@implementations.0"
+ viewPattern="{0}:{1}"
+ editorPattern="{0}:{1}"
+ editPattern="{0}:{1}">
+ <metaFeatures
+ href="comrel.genmodel#//comrel/NamedElement/name"/>
+ <metaFeatures
+ href="comrel.genmodel#//comrel/Port/type"/>
+ </modelFacet>
+ </labels>
+ </childNodes>
+ <childNodes
+ xsi:type="gmfgen:GenChildSideAffixedNode"
+ visualID="3032"
+ editPartClassName="MultiInputPort9EditPart"
+ itemSemanticEditPolicyClassName="MultiInputPort9ItemSemanticEditPolicy"
+ notationViewFactoryClassName="MultiInputPortViewFactory"
+ canonicalEditPolicyClassName="MultiInputPort9CanonicalEditPolicy"
+ graphicalNodeEditPolicyClassName="MultiInputPort9GraphicalNodeEditPolicy"
+ createCommandClassName="MultiInputPort9CreateCommand"
+ containers="//@diagram/@childNodes.29 //@diagram/@childNodes.45 //@diagram/@childNodes.65 //@diagram/@childNodes.70 //@diagram/@childNodes.71 //@diagram/@childNodes.74 //@diagram/@topLevelNodes.5">
+ <diagramRunTimeClass
+ href="../../../plugin/org.eclipse.gmf.runtime.notation/model/notation.genmodel#//notation/Node"/>
+ <elementType
+ xsi:type="gmfgen:SpecializationType"
+ metamodelType="//@diagram/@childNodes.1/@elementType"/>
+ <viewmap
+ xsi:type="gmfgen:InnerClassViewmap"
+ className="MultiInputPortFigure"
+ classBody="
/**
 * @generated
 */
public class MultiInputPortFigure extends org.eclipse.draw2d.RectangleFigure {




	/**
	 * @generated
	 */
	public MultiInputPortFigure() {
				this.setLineWidth(10);
	this.setForegroundColor(THIS_FORE
);
this.setPreferredSize(new org.eclipse.draw2d.geometry.Dimension(getMapMode().DPtoLP(20)
, getMapMode().DPtoLP(20)
));
this.setBorder(new org.eclipse.draw2d.MarginBorder(getMapMode().DPtoLP(5)
, getMapMode().DPtoLP(5)
, getMapMode().DPtoLP(5)
, getMapMode().DPtoLP(5)
));
	}





}

/**
 * @generated
 */
static final org.eclipse.swt.graphics.Color THIS_FORE = new org.eclipse.swt.graphics.Color(null, 255, 0, 0);

">
+ <attributes
+ xsi:type="gmfgen:StyleAttributes"
+ fixedForeground="true"/>
+ <attributes
+ xsi:type="gmfgen:DefaultSizeAttributes"
+ width="20"
+ height="20"/>
+ </viewmap>
+ <modelFacet>
+ <metaClass
+ href="comrel.genmodel#//comrel/MultiInputPort"/>
+ <containmentMetaFeature
+ href="comrel.genmodel#//comrel/ConditionalUnit/inputPorts"/>
+ <childMetaFeature
+ href="comrel.genmodel#//comrel/ConditionalUnit/inputPorts"/>
+ </modelFacet>
+ <labels
+ xsi:type="gmfgen:GenExternalNodeLabel"
+ visualID="5025"
+ editPartClassName="MultiInputPortNameType9EditPart"
+ itemSemanticEditPolicyClassName="MultiInputPortNameType9ItemSemanticEditPolicy"
+ notationViewFactoryClassName="MultiInputPortNameTypeViewFactory">
+ <diagramRunTimeClass
+ href="../../../plugin/org.eclipse.gmf.runtime.notation/model/notation.genmodel#//notation/Node"/>
+ <viewmap
+ xsi:type="gmfgen:InnerClassViewmap"
+ className="MultiInputPortLabelFigure"
+ classBody="
/**
 * @generated
 */
public class MultiInputPortLabelFigure extends org.eclipse.gmf.runtime.draw2d.ui.figures.WrappingLabel {




	/**
	 * @generated
	 */
	public MultiInputPortLabelFigure() {
				this.setText("MultiInputPort");
	}





}

"/>
+ <modelFacet
+ xsi:type="gmfgen:FeatureLabelModelFacet"
+ parser="//@labelParsers/@implementations.0"
+ viewPattern="{0}:{1}"
+ editorPattern="{0}:{1}"
+ editPattern="{0}:{1}">
+ <metaFeatures
+ href="comrel.genmodel#//comrel/NamedElement/name"/>
+ <metaFeatures
+ href="comrel.genmodel#//comrel/Port/type"/>
+ </modelFacet>
+ </labels>
+ </childNodes>
+ <childNodes
+ visualID="3033"
+ editPartClassName="CartesianQueuedUnit6EditPart"
+ itemSemanticEditPolicyClassName="CartesianQueuedUnit6ItemSemanticEditPolicy"
+ notationViewFactoryClassName="CartesianQueuedUnitViewFactory"
+ canonicalEditPolicyClassName="CartesianQueuedUnit6CanonicalEditPolicy"
+ childNodes="//@diagram/@childNodes.0 //@diagram/@childNodes.1"
+ compartments="//@diagram/@compartments.20 //@diagram/@compartments.21"
+ graphicalNodeEditPolicyClassName="CartesianQueuedUnit6GraphicalNodeEditPolicy"
+ createCommandClassName="CartesianQueuedUnit6CreateCommand"
+ containers="//@diagram/@compartments.18 //@diagram/@compartments.36 //@diagram/@compartments.52 //@diagram/@compartments.62 //@diagram/@compartments.66 //@diagram/@compartments.72 //@diagram/@compartments.82">
+ <diagramRunTimeClass
+ href="../../../plugin/org.eclipse.gmf.runtime.notation/model/notation.genmodel#//notation/Node"/>
+ <elementType
+ xsi:type="gmfgen:SpecializationType"
+ metamodelType="//@diagram/@topLevelNodes.1/@elementType"/>
+ <viewmap
+ xsi:type="gmfgen:InnerClassViewmap"
+ className="CartesianQueuedUnitFigure"
+ classBody="
/**
 * @generated
 */
public class CartesianQueuedUnitFigure extends org.eclipse.draw2d.RoundedRectangle {


	/**
	 * @generated
	 */
	private org.eclipse.gmf.runtime.draw2d.ui.figures.WrappingLabel fFigureCartesianQueuedUnitLabelFigure; 
	/**
	 * @generated
	 */
	private org.eclipse.draw2d.RectangleFigure fCartesianQueuedUnitHelperUnitsCompartmentFigure; 
	/**
	 * @generated
	 */
	private org.eclipse.draw2d.RectangleFigure fCartesianQueuedUnitRefactoringUnitCompartmentFigure; 


	/**
	 * @generated
	 */
	public CartesianQueuedUnitFigure() {
				this.setCornerDimensions(new org.eclipse.draw2d.geometry.Dimension(getMapMode().DPtoLP(8)
, getMapMode().DPtoLP(8)
));
this.setBorder(new org.eclipse.draw2d.MarginBorder(getMapMode().DPtoLP(5)
, getMapMode().DPtoLP(5)
, getMapMode().DPtoLP(5)
, getMapMode().DPtoLP(5)
));
		createContents();
	}
	/**
	 * @generated
	 */
	private void createContents(){


fFigureCartesianQueuedUnitLabelFigure = new org.eclipse.gmf.runtime.draw2d.ui.figures.WrappingLabel();
fFigureCartesianQueuedUnitLabelFigure.setText("CartesianQueuedUnit");
fFigureCartesianQueuedUnitLabelFigure.setMaximumSize(new org.eclipse.draw2d.geometry.Dimension(getMapMode().DPtoLP(10000)
, getMapMode().DPtoLP(50)
));

this.add(fFigureCartesianQueuedUnitLabelFigure);



fCartesianQueuedUnitHelperUnitsCompartmentFigure = new org.eclipse.draw2d.RectangleFigure();
fCartesianQueuedUnitHelperUnitsCompartmentFigure.setOutline(false);

this.add(fCartesianQueuedUnitHelperUnitsCompartmentFigure);



fCartesianQueuedUnitRefactoringUnitCompartmentFigure = new org.eclipse.draw2d.RectangleFigure();
fCartesianQueuedUnitRefactoringUnitCompartmentFigure.setOutline(false);

this.add(fCartesianQueuedUnitRefactoringUnitCompartmentFigure);


	}





	/**
	 * @generated
	 */
	public org.eclipse.gmf.runtime.draw2d.ui.figures.WrappingLabel getFigureCartesianQueuedUnitLabelFigure() {
		return fFigureCartesianQueuedUnitLabelFigure;
	}
	/**
	 * @generated
	 */
	public org.eclipse.draw2d.RectangleFigure getCartesianQueuedUnitHelperUnitsCompartmentFigure() {
		return fCartesianQueuedUnitHelperUnitsCompartmentFigure;
	}
	/**
	 * @generated
	 */
	public org.eclipse.draw2d.RectangleFigure getCartesianQueuedUnitRefactoringUnitCompartmentFigure() {
		return fCartesianQueuedUnitRefactoringUnitCompartmentFigure;
	}


}

"/>
+ <behaviour
+ xsi:type="gmfgen:OpenDiagramBehaviour"/>
+ <modelFacet>
+ <metaClass
+ href="comrel.genmodel#//comrel/CartesianQueuedUnit"/>
+ <containmentMetaFeature
+ href="comrel.genmodel#//comrel/ConditionalUnit/then"/>
+ <childMetaFeature
+ href="comrel.genmodel#//comrel/ConditionalUnit/then"/>
+ </modelFacet>
+ <labels
+ visualID="5028"
+ editPartClassName="CartesianQueuedUnitNameTypeLblStrict6EditPart"
+ itemSemanticEditPolicyClassName="CartesianQueuedUnitNameTypeLblStrict6ItemSemanticEditPolicy"
+ notationViewFactoryClassName="CartesianQueuedUnitNameTypeLblStrictViewFactory">
+ <diagramRunTimeClass
+ href="../../../plugin/org.eclipse.gmf.runtime.notation/model/notation.genmodel#//notation/Node"/>
+ <viewmap
+ xsi:type="gmfgen:ParentAssignedViewmap"
+ getterName="getFigureCartesianQueuedUnitLabelFigure"
+ figureQualifiedClassName="org.eclipse.gmf.runtime.draw2d.ui.figures.WrappingLabel"/>
+ <modelFacet
+ xsi:type="gmfgen:FeatureLabelModelFacet"
+ parser="//@labelParsers/@implementations.0"
+ viewPattern="{0}:{1} -{2}-"
+ editorPattern="{0}:{1} -{2}-"
+ editPattern="{0}:{1} -{2}-">
+ <metaFeatures
+ href="comrel.genmodel#//comrel/NamedElement/name"/>
+ <metaFeatures
+ href="comrel.genmodel#//comrel/CartesianQueuedUnit/type"/>
+ <metaFeatures
+ href="comrel.genmodel#//comrel/CartesianQueuedUnit/lblStrict"/>
+ </modelFacet>
+ </labels>
+ </childNodes>
+ <childNodes
+ visualID="3034"
+ editPartClassName="AtomicUnit2EditPart"
+ itemSemanticEditPolicyClassName="AtomicUnit2ItemSemanticEditPolicy"
+ notationViewFactoryClassName="AtomicUnitViewFactory"
+ canonicalEditPolicyClassName="AtomicUnit2CanonicalEditPolicy"
+ childNodes="//@diagram/@childNodes.34"
+ graphicalNodeEditPolicyClassName="AtomicUnit2GraphicalNodeEditPolicy"
+ createCommandClassName="AtomicUnit2CreateCommand"
+ containers="//@diagram/@compartments.21 //@diagram/@compartments.39 //@diagram/@compartments.15 //@diagram/@compartments.11 //@diagram/@compartments.7 //@diagram/@compartments.3 //@diagram/@compartments.1">
+ <diagramRunTimeClass
+ href="../../../plugin/org.eclipse.gmf.runtime.notation/model/notation.genmodel#//notation/Node"/>
+ <elementType
+ xsi:type="gmfgen:MetamodelType"
+ editHelperClassName="AtomicUnitEditHelper"/>
+ <viewmap
+ xsi:type="gmfgen:InnerClassViewmap"
+ className="AtomicUnitFigure"
+ classBody="
/**
 * @generated
 */
public class AtomicUnitFigure extends org.eclipse.draw2d.RoundedRectangle {


	/**
	 * @generated
	 */
	private org.eclipse.gmf.runtime.draw2d.ui.figures.WrappingLabel fFigureAtomicUnitLabelFigure; 


	/**
	 * @generated
	 */
	public AtomicUnitFigure() {
				this.setCornerDimensions(new org.eclipse.draw2d.geometry.Dimension(getMapMode().DPtoLP(8)
, getMapMode().DPtoLP(8)
));
this.setBorder(new org.eclipse.draw2d.MarginBorder(getMapMode().DPtoLP(5)
, getMapMode().DPtoLP(5)
, getMapMode().DPtoLP(5)
, getMapMode().DPtoLP(5)
));
		createContents();
	}
	/**
	 * @generated
	 */
	private void createContents(){


fFigureAtomicUnitLabelFigure = new org.eclipse.gmf.runtime.draw2d.ui.figures.WrappingLabel();
fFigureAtomicUnitLabelFigure.setText("AtomicUnit");

this.add(fFigureAtomicUnitLabelFigure);


	}





	/**
	 * @generated
	 */
	public org.eclipse.gmf.runtime.draw2d.ui.figures.WrappingLabel getFigureAtomicUnitLabelFigure() {
		return fFigureAtomicUnitLabelFigure;
	}


}

"/>
+ <modelFacet>
+ <metaClass
+ href="comrel.genmodel#//comrel/AtomicUnit"/>
+ <containmentMetaFeature
+ href="comrel.genmodel#//comrel/CartesianQueuedUnit/refactoringUnit"/>
+ <childMetaFeature
+ href="comrel.genmodel#//comrel/CartesianQueuedUnit/refactoringUnit"/>
+ </modelFacet>
+ <labels
+ visualID="5027"
+ editPartClassName="AtomicUnitLabelType2EditPart"
+ itemSemanticEditPolicyClassName="AtomicUnitLabelType2ItemSemanticEditPolicy"
+ notationViewFactoryClassName="AtomicUnitLabelTypeViewFactory">
+ <diagramRunTimeClass
+ href="../../../plugin/org.eclipse.gmf.runtime.notation/model/notation.genmodel#//notation/Node"/>
+ <viewmap
+ xsi:type="gmfgen:ParentAssignedViewmap"
+ getterName="getFigureAtomicUnitLabelFigure"
+ figureQualifiedClassName="org.eclipse.gmf.runtime.draw2d.ui.figures.WrappingLabel"/>
+ <modelFacet
+ xsi:type="gmfgen:FeatureLabelModelFacet"
+ parser="//@labelParsers/@implementations.0"
+ viewPattern="{0}:{1}"
+ editorPattern="{0}:{1}"
+ editPattern="{0}:{1}">
+ <metaFeatures
+ href="comrel.genmodel#//comrel/AtomicUnit/label"/>
+ <metaFeatures
+ href="comrel.genmodel#//comrel/AtomicUnit/type"/>
+ </modelFacet>
+ </labels>
+ </childNodes>
+ <childNodes
+ xsi:type="gmfgen:GenChildSideAffixedNode"
+ visualID="3035"
+ editPartClassName="SingleInputPort9EditPart"
+ itemSemanticEditPolicyClassName="SingleInputPort9ItemSemanticEditPolicy"
+ notationViewFactoryClassName="SingleInputPortViewFactory"
+ canonicalEditPolicyClassName="SingleInputPort9CanonicalEditPolicy"
+ graphicalNodeEditPolicyClassName="SingleInputPort9GraphicalNodeEditPolicy"
+ createCommandClassName="SingleInputPort9CreateCommand"
+ containers="//@diagram/@childNodes.33 //@diagram/@childNodes.48 //@diagram/@childNodes.67 //@diagram/@childNodes.73 //@diagram/@childNodes.76 //@diagram/@childNodes.77 //@diagram/@topLevelNodes.6">
+ <diagramRunTimeClass
+ href="../../../plugin/org.eclipse.gmf.runtime.notation/model/notation.genmodel#//notation/Node"/>
+ <elementType
+ xsi:type="gmfgen:SpecializationType"
+ metamodelType="//@diagram/@topLevelNodes.0/@elementType"/>
+ <viewmap
+ xsi:type="gmfgen:InnerClassViewmap"
+ className="SingleInputPortFigure"
+ classBody="
/**
 * @generated
 */
public class SingleInputPortFigure extends org.eclipse.draw2d.RectangleFigure {




	/**
	 * @generated
	 */
	public SingleInputPortFigure() {
				this.setPreferredSize(new org.eclipse.draw2d.geometry.Dimension(getMapMode().DPtoLP(20)
, getMapMode().DPtoLP(20)
));
this.setBorder(new org.eclipse.draw2d.MarginBorder(getMapMode().DPtoLP(5)
, getMapMode().DPtoLP(5)
, getMapMode().DPtoLP(5)
, getMapMode().DPtoLP(5)
));
	}





}

">
+ <attributes
+ xsi:type="gmfgen:DefaultSizeAttributes"
+ width="20"
+ height="20"/>
+ </viewmap>
+ <modelFacet>
+ <metaClass
+ href="comrel.genmodel#//comrel/SingleInputPort"/>
+ <containmentMetaFeature
+ href="comrel.genmodel#//comrel/AtomicUnit/inputPorts"/>
+ <childMetaFeature
+ href="comrel.genmodel#//comrel/AtomicUnit/inputPorts"/>
+ </modelFacet>
+ <labels
+ xsi:type="gmfgen:GenExternalNodeLabel"
+ visualID="5026"
+ editPartClassName="SingleInputPortNameType9EditPart"
+ itemSemanticEditPolicyClassName="SingleInputPortNameType9ItemSemanticEditPolicy"
+ notationViewFactoryClassName="SingleInputPortNameTypeViewFactory">
+ <diagramRunTimeClass
+ href="../../../plugin/org.eclipse.gmf.runtime.notation/model/notation.genmodel#//notation/Node"/>
+ <viewmap
+ xsi:type="gmfgen:InnerClassViewmap"
+ className="SingleInputPortLabelFigure"
+ classBody="
/**
 * @generated
 */
public class SingleInputPortLabelFigure extends org.eclipse.gmf.runtime.draw2d.ui.figures.WrappingLabel {




	/**
	 * @generated
	 */
	public SingleInputPortLabelFigure() {
				this.setText("SingleInputPort");
	}





}

"/>
+ <modelFacet
+ xsi:type="gmfgen:FeatureLabelModelFacet"
+ parser="//@labelParsers/@implementations.0"
+ viewPattern="{0}:{1}"
+ editorPattern="{0}:{1}"
+ editPattern="{0}:{1}">
+ <metaFeatures
+ href="comrel.genmodel#//comrel/NamedElement/name"/>
+ <metaFeatures
+ href="comrel.genmodel#//comrel/Port/type"/>
+ </modelFacet>
+ </labels>
+ </childNodes>
+ <childNodes
+ visualID="3036"
+ editPartClassName="ParallelQueuedUnit3EditPart"
+ itemSemanticEditPolicyClassName="ParallelQueuedUnit3ItemSemanticEditPolicy"
+ notationViewFactoryClassName="ParallelQueuedUnitViewFactory"
+ canonicalEditPolicyClassName="ParallelQueuedUnit3CanonicalEditPolicy"
+ childNodes="//@diagram/@childNodes.4 //@diagram/@childNodes.5"
+ compartments="//@diagram/@compartments.22 //@diagram/@compartments.23"
+ graphicalNodeEditPolicyClassName="ParallelQueuedUnit3GraphicalNodeEditPolicy"
+ createCommandClassName="ParallelQueuedUnit3CreateCommand"
+ containers="//@diagram/@compartments.36 //@diagram/@compartments.52 //@diagram/@compartments.62 //@diagram/@compartments.66 //@diagram/@compartments.72 //@diagram/@compartments.18 //@diagram/@compartments.82">
+ <diagramRunTimeClass
+ href="../../../plugin/org.eclipse.gmf.runtime.notation/model/notation.genmodel#//notation/Node"/>
+ <elementType
+ xsi:type="gmfgen:SpecializationType"
+ metamodelType="//@diagram/@childNodes.3/@elementType"/>
+ <viewmap
+ xsi:type="gmfgen:InnerClassViewmap"
+ className="ParallelQueuedUnitFigure"
+ classBody="
/**
 * @generated
 */
public class ParallelQueuedUnitFigure extends org.eclipse.draw2d.RoundedRectangle {


	/**
	 * @generated
	 */
	private org.eclipse.gmf.runtime.draw2d.ui.figures.WrappingLabel fFigureParallelQueuedUnitLabelFigure; 
	/**
	 * @generated
	 */
	private org.eclipse.draw2d.RectangleFigure fParallelQueuedUnitHelperUnitsCompartmentFigure; 
	/**
	 * @generated
	 */
	private org.eclipse.draw2d.RectangleFigure fParallelQueuedUnitRefactoringUnitsCompartmentFigure; 


	/**
	 * @generated
	 */
	public ParallelQueuedUnitFigure() {
				this.setCornerDimensions(new org.eclipse.draw2d.geometry.Dimension(getMapMode().DPtoLP(8)
, getMapMode().DPtoLP(8)
));
this.setBorder(new org.eclipse.draw2d.MarginBorder(getMapMode().DPtoLP(5)
, getMapMode().DPtoLP(5)
, getMapMode().DPtoLP(5)
, getMapMode().DPtoLP(5)
));
		createContents();
	}
	/**
	 * @generated
	 */
	private void createContents(){


fFigureParallelQueuedUnitLabelFigure = new org.eclipse.gmf.runtime.draw2d.ui.figures.WrappingLabel();
fFigureParallelQueuedUnitLabelFigure.setText("ParallelQueuedUnit");
fFigureParallelQueuedUnitLabelFigure.setMaximumSize(new org.eclipse.draw2d.geometry.Dimension(getMapMode().DPtoLP(10000)
, getMapMode().DPtoLP(50)
));

this.add(fFigureParallelQueuedUnitLabelFigure);



fParallelQueuedUnitHelperUnitsCompartmentFigure = new org.eclipse.draw2d.RectangleFigure();
fParallelQueuedUnitHelperUnitsCompartmentFigure.setOutline(false);

this.add(fParallelQueuedUnitHelperUnitsCompartmentFigure);



fParallelQueuedUnitRefactoringUnitsCompartmentFigure = new org.eclipse.draw2d.RectangleFigure();
fParallelQueuedUnitRefactoringUnitsCompartmentFigure.setOutline(false);

this.add(fParallelQueuedUnitRefactoringUnitsCompartmentFigure);


	}





	/**
	 * @generated
	 */
	public org.eclipse.gmf.runtime.draw2d.ui.figures.WrappingLabel getFigureParallelQueuedUnitLabelFigure() {
		return fFigureParallelQueuedUnitLabelFigure;
	}
	/**
	 * @generated
	 */
	public org.eclipse.draw2d.RectangleFigure getParallelQueuedUnitHelperUnitsCompartmentFigure() {
		return fParallelQueuedUnitHelperUnitsCompartmentFigure;
	}
	/**
	 * @generated
	 */
	public org.eclipse.draw2d.RectangleFigure getParallelQueuedUnitRefactoringUnitsCompartmentFigure() {
		return fParallelQueuedUnitRefactoringUnitsCompartmentFigure;
	}


}

"/>
+ <behaviour
+ xsi:type="gmfgen:OpenDiagramBehaviour"/>
+ <modelFacet>
+ <metaClass
+ href="comrel.genmodel#//comrel/ParallelQueuedUnit"/>
+ <containmentMetaFeature
+ href="comrel.genmodel#//comrel/ConditionalUnit/then"/>
+ <childMetaFeature
+ href="comrel.genmodel#//comrel/ConditionalUnit/then"/>
+ </modelFacet>
+ <labels
+ visualID="5071"
+ editPartClassName="ParallelQueuedUnitNameTypeLblStrict3EditPart"
+ itemSemanticEditPolicyClassName="ParallelQueuedUnitNameTypeLblStrict3ItemSemanticEditPolicy"
+ notationViewFactoryClassName="ParallelQueuedUnitNameTypeLblStrictViewFactory">
+ <diagramRunTimeClass
+ href="../../../plugin/org.eclipse.gmf.runtime.notation/model/notation.genmodel#//notation/Node"/>
+ <viewmap
+ xsi:type="gmfgen:ParentAssignedViewmap"
+ getterName="getFigureParallelQueuedUnitLabelFigure"
+ figureQualifiedClassName="org.eclipse.gmf.runtime.draw2d.ui.figures.WrappingLabel"/>
+ <modelFacet
+ xsi:type="gmfgen:FeatureLabelModelFacet"
+ parser="//@labelParsers/@implementations.0"
+ viewPattern="{0}:{1} -{2}-"
+ editorPattern="{0}:{1} -{2}-"
+ editPattern="{0}:{1} -{2}-">
+ <metaFeatures
+ href="comrel.genmodel#//comrel/NamedElement/name"/>
+ <metaFeatures
+ href="comrel.genmodel#//comrel/ParallelQueuedUnit/type"/>
+ <metaFeatures
+ href="comrel.genmodel#//comrel/ParallelQueuedUnit/lblStrict"/>
+ </modelFacet>
+ </labels>
+ </childNodes>
+ <childNodes
+ visualID="3037"
+ editPartClassName="ParallelQueuedUnit4EditPart"
+ itemSemanticEditPolicyClassName="ParallelQueuedUnit4ItemSemanticEditPolicy"
+ notationViewFactoryClassName="ParallelQueuedUnitViewFactory"
+ canonicalEditPolicyClassName="ParallelQueuedUnit4CanonicalEditPolicy"
+ childNodes="//@diagram/@childNodes.4 //@diagram/@childNodes.5"
+ compartments="//@diagram/@compartments.24 //@diagram/@compartments.25"
+ graphicalNodeEditPolicyClassName="ParallelQueuedUnit4GraphicalNodeEditPolicy"
+ createCommandClassName="ParallelQueuedUnit4CreateCommand"
+ containers="//@diagram/@compartments.25 //@diagram/@compartments.29 //@diagram/@compartments.33 //@diagram/@compartments.41 //@diagram/@compartments.23 //@diagram/@compartments.5 //@diagram/@compartments.75">
+ <diagramRunTimeClass
+ href="../../../plugin/org.eclipse.gmf.runtime.notation/model/notation.genmodel#//notation/Node"/>
+ <elementType
+ xsi:type="gmfgen:SpecializationType"
+ metamodelType="//@diagram/@childNodes.3/@elementType"/>
+ <viewmap
+ xsi:type="gmfgen:InnerClassViewmap"
+ className="ParallelQueuedUnitFigure"
+ classBody="
/**
 * @generated
 */
public class ParallelQueuedUnitFigure extends org.eclipse.draw2d.RoundedRectangle {


	/**
	 * @generated
	 */
	private org.eclipse.gmf.runtime.draw2d.ui.figures.WrappingLabel fFigureParallelQueuedUnitLabelFigure; 
	/**
	 * @generated
	 */
	private org.eclipse.draw2d.RectangleFigure fParallelQueuedUnitHelperUnitsCompartmentFigure; 
	/**
	 * @generated
	 */
	private org.eclipse.draw2d.RectangleFigure fParallelQueuedUnitRefactoringUnitsCompartmentFigure; 


	/**
	 * @generated
	 */
	public ParallelQueuedUnitFigure() {
				this.setCornerDimensions(new org.eclipse.draw2d.geometry.Dimension(getMapMode().DPtoLP(8)
, getMapMode().DPtoLP(8)
));
this.setBorder(new org.eclipse.draw2d.MarginBorder(getMapMode().DPtoLP(5)
, getMapMode().DPtoLP(5)
, getMapMode().DPtoLP(5)
, getMapMode().DPtoLP(5)
));
		createContents();
	}
	/**
	 * @generated
	 */
	private void createContents(){


fFigureParallelQueuedUnitLabelFigure = new org.eclipse.gmf.runtime.draw2d.ui.figures.WrappingLabel();
fFigureParallelQueuedUnitLabelFigure.setText("ParallelQueuedUnit");
fFigureParallelQueuedUnitLabelFigure.setMaximumSize(new org.eclipse.draw2d.geometry.Dimension(getMapMode().DPtoLP(10000)
, getMapMode().DPtoLP(50)
));

this.add(fFigureParallelQueuedUnitLabelFigure);



fParallelQueuedUnitHelperUnitsCompartmentFigure = new org.eclipse.draw2d.RectangleFigure();
fParallelQueuedUnitHelperUnitsCompartmentFigure.setOutline(false);

this.add(fParallelQueuedUnitHelperUnitsCompartmentFigure);



fParallelQueuedUnitRefactoringUnitsCompartmentFigure = new org.eclipse.draw2d.RectangleFigure();
fParallelQueuedUnitRefactoringUnitsCompartmentFigure.setOutline(false);

this.add(fParallelQueuedUnitRefactoringUnitsCompartmentFigure);


	}





	/**
	 * @generated
	 */
	public org.eclipse.gmf.runtime.draw2d.ui.figures.WrappingLabel getFigureParallelQueuedUnitLabelFigure() {
		return fFigureParallelQueuedUnitLabelFigure;
	}
	/**
	 * @generated
	 */
	public org.eclipse.draw2d.RectangleFigure getParallelQueuedUnitHelperUnitsCompartmentFigure() {
		return fParallelQueuedUnitHelperUnitsCompartmentFigure;
	}
	/**
	 * @generated
	 */
	public org.eclipse.draw2d.RectangleFigure getParallelQueuedUnitRefactoringUnitsCompartmentFigure() {
		return fParallelQueuedUnitRefactoringUnitsCompartmentFigure;
	}


}

"/>
+ <behaviour
+ xsi:type="gmfgen:OpenDiagramBehaviour"/>
+ <modelFacet>
+ <metaClass
+ href="comrel.genmodel#//comrel/ParallelQueuedUnit"/>
+ <containmentMetaFeature
+ href="comrel.genmodel#//comrel/ParallelQueuedUnit/refactoringUnits"/>
+ <childMetaFeature
+ href="comrel.genmodel#//comrel/ParallelQueuedUnit/refactoringUnits"/>
+ </modelFacet>
+ <labels
+ visualID="5070"
+ editPartClassName="ParallelQueuedUnitNameTypeLblStrict4EditPart"
+ itemSemanticEditPolicyClassName="ParallelQueuedUnitNameTypeLblStrict4ItemSemanticEditPolicy"
+ notationViewFactoryClassName="ParallelQueuedUnitNameTypeLblStrictViewFactory">
+ <diagramRunTimeClass
+ href="../../../plugin/org.eclipse.gmf.runtime.notation/model/notation.genmodel#//notation/Node"/>
+ <viewmap
+ xsi:type="gmfgen:ParentAssignedViewmap"
+ getterName="getFigureParallelQueuedUnitLabelFigure"
+ figureQualifiedClassName="org.eclipse.gmf.runtime.draw2d.ui.figures.WrappingLabel"/>
+ <modelFacet
+ xsi:type="gmfgen:FeatureLabelModelFacet"
+ parser="//@labelParsers/@implementations.0"
+ viewPattern="{0}:{1} -{2}-"
+ editorPattern="{0}:{1} -{2}-"
+ editPattern="{0}:{1} -{2}-">
+ <metaFeatures
+ href="comrel.genmodel#//comrel/NamedElement/name"/>
+ <metaFeatures
+ href="comrel.genmodel#//comrel/ParallelQueuedUnit/type"/>
+ <metaFeatures
+ href="comrel.genmodel#//comrel/ParallelQueuedUnit/lblStrict"/>
+ </modelFacet>
+ </labels>
+ </childNodes>
+ <childNodes
+ visualID="3038"
+ editPartClassName="SingleFeatureUnit2EditPart"
+ itemSemanticEditPolicyClassName="SingleFeatureUnit2ItemSemanticEditPolicy"
+ notationViewFactoryClassName="SingleFeatureUnitViewFactory"
+ canonicalEditPolicyClassName="SingleFeatureUnit2CanonicalEditPolicy"
+ childNodes="//@diagram/@childNodes.8 //@diagram/@childNodes.9 //@diagram/@childNodes.10"
+ graphicalNodeEditPolicyClassName="SingleFeatureUnit2GraphicalNodeEditPolicy"
+ createCommandClassName="SingleFeatureUnit2CreateCommand"
+ containers="//@diagram/@compartments.24 //@diagram/@compartments.28 //@diagram/@compartments.32 //@diagram/@compartments.40 //@diagram/@compartments.22 //@diagram/@compartments.4 //@diagram/@compartments.74">
+ <diagramRunTimeClass
+ href="../../../plugin/org.eclipse.gmf.runtime.notation/model/notation.genmodel#//notation/Node"/>
+ <elementType
+ xsi:type="gmfgen:SpecializationType"
+ metamodelType="//@diagram/@childNodes.7/@elementType"/>
+ <viewmap
+ xsi:type="gmfgen:InnerClassViewmap"
+ className="SingleFeatureUnitFigure"
+ classBody="
/**
 * @generated
 */
public class SingleFeatureUnitFigure extends org.eclipse.draw2d.RoundedRectangle {


	/**
	 * @generated
	 */
	private org.eclipse.gmf.runtime.draw2d.ui.figures.WrappingLabel fFigureSingleFeatureUnitLabelFigure; 


	/**
	 * @generated
	 */
	public SingleFeatureUnitFigure() {
				this.setCornerDimensions(new org.eclipse.draw2d.geometry.Dimension(getMapMode().DPtoLP(8)
, getMapMode().DPtoLP(8)
));
this.setBorder(new org.eclipse.draw2d.MarginBorder(getMapMode().DPtoLP(5)
, getMapMode().DPtoLP(5)
, getMapMode().DPtoLP(5)
, getMapMode().DPtoLP(5)
));
		createContents();
	}
	/**
	 * @generated
	 */
	private void createContents(){


fFigureSingleFeatureUnitLabelFigure = new org.eclipse.gmf.runtime.draw2d.ui.figures.WrappingLabel();
fFigureSingleFeatureUnitLabelFigure.setText("SingleFeatureUnit");

this.add(fFigureSingleFeatureUnitLabelFigure);


	}





	/**
	 * @generated
	 */
	public org.eclipse.gmf.runtime.draw2d.ui.figures.WrappingLabel getFigureSingleFeatureUnitLabelFigure() {
		return fFigureSingleFeatureUnitLabelFigure;
	}


}

"/>
+ <modelFacet>
+ <metaClass
+ href="comrel.genmodel#//comrel/SingleFeatureUnit"/>
+ <containmentMetaFeature
+ href="comrel.genmodel#//comrel/ParallelQueuedUnit/helperUnits"/>
+ <childMetaFeature
+ href="comrel.genmodel#//comrel/ParallelQueuedUnit/helperUnits"/>
+ </modelFacet>
+ <labels
+ visualID="5029"
+ editPartClassName="SingleFeatureUnitNameType2EditPart"
+ itemSemanticEditPolicyClassName="SingleFeatureUnitNameType2ItemSemanticEditPolicy"
+ notationViewFactoryClassName="SingleFeatureUnitNameTypeViewFactory">
+ <diagramRunTimeClass
+ href="../../../plugin/org.eclipse.gmf.runtime.notation/model/notation.genmodel#//notation/Node"/>
+ <viewmap
+ xsi:type="gmfgen:ParentAssignedViewmap"
+ getterName="getFigureSingleFeatureUnitLabelFigure"
+ figureQualifiedClassName="org.eclipse.gmf.runtime.draw2d.ui.figures.WrappingLabel"/>
+ <modelFacet
+ xsi:type="gmfgen:FeatureLabelModelFacet"
+ parser="//@labelParsers/@implementations.0"
+ viewPattern="{0}:{1}"
+ editorPattern="{0}:{1}"
+ editPattern="{0}:{1}">
+ <metaFeatures
+ href="comrel.genmodel#//comrel/NamedElement/name"/>
+ <metaFeatures
+ href="comrel.genmodel#//comrel/SingleFeatureUnit/type"/>
+ </modelFacet>
+ </labels>
+ </childNodes>
+ <childNodes
+ visualID="3039"
+ editPartClassName="MultiFeatureUnit2EditPart"
+ itemSemanticEditPolicyClassName="MultiFeatureUnit2ItemSemanticEditPolicy"
+ notationViewFactoryClassName="MultiFeatureUnitViewFactory"
+ canonicalEditPolicyClassName="MultiFeatureUnit2CanonicalEditPolicy"
+ childNodes="//@diagram/@childNodes.12 //@diagram/@childNodes.13 //@diagram/@childNodes.14"
+ graphicalNodeEditPolicyClassName="MultiFeatureUnit2GraphicalNodeEditPolicy"
+ createCommandClassName="MultiFeatureUnit2CreateCommand"
+ containers="//@diagram/@compartments.24 //@diagram/@compartments.28 //@diagram/@compartments.32 //@diagram/@compartments.40 //@diagram/@compartments.22 //@diagram/@compartments.4 //@diagram/@compartments.74">
+ <diagramRunTimeClass
+ href="../../../plugin/org.eclipse.gmf.runtime.notation/model/notation.genmodel#//notation/Node"/>
+ <elementType
+ xsi:type="gmfgen:SpecializationType"
+ metamodelType="//@diagram/@childNodes.11/@elementType"/>
+ <viewmap
+ xsi:type="gmfgen:InnerClassViewmap"
+ className="MultiFeatureUnitFigure"
+ classBody="
/**
 * @generated
 */
public class MultiFeatureUnitFigure extends org.eclipse.draw2d.RoundedRectangle {


	/**
	 * @generated
	 */
	private org.eclipse.gmf.runtime.draw2d.ui.figures.WrappingLabel fFigureMultiFeatureUnitLabelFigure; 


	/**
	 * @generated
	 */
	public MultiFeatureUnitFigure() {
				this.setCornerDimensions(new org.eclipse.draw2d.geometry.Dimension(getMapMode().DPtoLP(8)
, getMapMode().DPtoLP(8)
));
this.setBorder(new org.eclipse.draw2d.MarginBorder(getMapMode().DPtoLP(5)
, getMapMode().DPtoLP(5)
, getMapMode().DPtoLP(5)
, getMapMode().DPtoLP(5)
));
		createContents();
	}
	/**
	 * @generated
	 */
	private void createContents(){


fFigureMultiFeatureUnitLabelFigure = new org.eclipse.gmf.runtime.draw2d.ui.figures.WrappingLabel();
fFigureMultiFeatureUnitLabelFigure.setText("MultiFeatureUnit");

this.add(fFigureMultiFeatureUnitLabelFigure);


	}





	/**
	 * @generated
	 */
	public org.eclipse.gmf.runtime.draw2d.ui.figures.WrappingLabel getFigureMultiFeatureUnitLabelFigure() {
		return fFigureMultiFeatureUnitLabelFigure;
	}


}

"/>
+ <modelFacet>
+ <metaClass
+ href="comrel.genmodel#//comrel/MultiFeatureUnit"/>
+ <containmentMetaFeature
+ href="comrel.genmodel#//comrel/ParallelQueuedUnit/helperUnits"/>
+ <childMetaFeature
+ href="comrel.genmodel#//comrel/ParallelQueuedUnit/helperUnits"/>
+ </modelFacet>
+ <labels
+ visualID="5030"
+ editPartClassName="MultiFeatureUnitNameType2EditPart"
+ itemSemanticEditPolicyClassName="MultiFeatureUnitNameType2ItemSemanticEditPolicy"
+ notationViewFactoryClassName="MultiFeatureUnitNameTypeViewFactory">
+ <diagramRunTimeClass
+ href="../../../plugin/org.eclipse.gmf.runtime.notation/model/notation.genmodel#//notation/Node"/>
+ <viewmap
+ xsi:type="gmfgen:ParentAssignedViewmap"
+ getterName="getFigureMultiFeatureUnitLabelFigure"
+ figureQualifiedClassName="org.eclipse.gmf.runtime.draw2d.ui.figures.WrappingLabel"/>
+ <modelFacet
+ xsi:type="gmfgen:FeatureLabelModelFacet"
+ parser="//@labelParsers/@implementations.0"
+ viewPattern="{0}:{1}"
+ editorPattern="{0}:{1}"
+ editPattern="{0}:{1}">
+ <metaFeatures
+ href="comrel.genmodel#//comrel/NamedElement/name"/>
+ <metaFeatures
+ href="comrel.genmodel#//comrel/MultiFeatureUnit/type"/>
+ </modelFacet>
+ </labels>
+ </childNodes>
+ <childNodes
+ visualID="3040"
+ editPartClassName="SingleFilterUnit2EditPart"
+ itemSemanticEditPolicyClassName="SingleFilterUnit2ItemSemanticEditPolicy"
+ notationViewFactoryClassName="SingleFilterUnitViewFactory"
+ canonicalEditPolicyClassName="SingleFilterUnit2CanonicalEditPolicy"
+ childNodes="//@diagram/@childNodes.16 //@diagram/@childNodes.17"
+ graphicalNodeEditPolicyClassName="SingleFilterUnit2GraphicalNodeEditPolicy"
+ createCommandClassName="SingleFilterUnit2CreateCommand"
+ containers="//@diagram/@compartments.24 //@diagram/@compartments.28 //@diagram/@compartments.32 //@diagram/@compartments.40 //@diagram/@compartments.22 //@diagram/@compartments.4 //@diagram/@compartments.74">
+ <diagramRunTimeClass
+ href="../../../plugin/org.eclipse.gmf.runtime.notation/model/notation.genmodel#//notation/Node"/>
+ <elementType
+ xsi:type="gmfgen:SpecializationType"
+ metamodelType="//@diagram/@childNodes.15/@elementType"/>
+ <viewmap
+ xsi:type="gmfgen:InnerClassViewmap"
+ className="SingleFilterUnitFigure"
+ classBody="
/**
 * @generated
 */
public class SingleFilterUnitFigure extends org.eclipse.draw2d.RoundedRectangle {


	/**
	 * @generated
	 */
	private org.eclipse.gmf.runtime.draw2d.ui.figures.WrappingLabel fFigureSingleFilterUnitLabelFigure; 


	/**
	 * @generated
	 */
	public SingleFilterUnitFigure() {
				this.setCornerDimensions(new org.eclipse.draw2d.geometry.Dimension(getMapMode().DPtoLP(8)
, getMapMode().DPtoLP(8)
));
this.setBorder(new org.eclipse.draw2d.MarginBorder(getMapMode().DPtoLP(5)
, getMapMode().DPtoLP(5)
, getMapMode().DPtoLP(5)
, getMapMode().DPtoLP(5)
));
		createContents();
	}
	/**
	 * @generated
	 */
	private void createContents(){


fFigureSingleFilterUnitLabelFigure = new org.eclipse.gmf.runtime.draw2d.ui.figures.WrappingLabel();
fFigureSingleFilterUnitLabelFigure.setText("SingleFilterUnit");

this.add(fFigureSingleFilterUnitLabelFigure);


	}





	/**
	 * @generated
	 */
	public org.eclipse.gmf.runtime.draw2d.ui.figures.WrappingLabel getFigureSingleFilterUnitLabelFigure() {
		return fFigureSingleFilterUnitLabelFigure;
	}


}

"/>
+ <modelFacet>
+ <metaClass
+ href="comrel.genmodel#//comrel/SingleFilterUnit"/>
+ <containmentMetaFeature
+ href="comrel.genmodel#//comrel/ParallelQueuedUnit/helperUnits"/>
+ <childMetaFeature
+ href="comrel.genmodel#//comrel/ParallelQueuedUnit/helperUnits"/>
+ </modelFacet>
+ <labels
+ visualID="5031"
+ editPartClassName="SingleFilterUnitNameType2EditPart"
+ itemSemanticEditPolicyClassName="SingleFilterUnitNameType2ItemSemanticEditPolicy"
+ notationViewFactoryClassName="SingleFilterUnitNameTypeViewFactory">
+ <diagramRunTimeClass
+ href="../../../plugin/org.eclipse.gmf.runtime.notation/model/notation.genmodel#//notation/Node"/>
+ <viewmap
+ xsi:type="gmfgen:ParentAssignedViewmap"
+ getterName="getFigureSingleFilterUnitLabelFigure"
+ figureQualifiedClassName="org.eclipse.gmf.runtime.draw2d.ui.figures.WrappingLabel"/>
+ <modelFacet
+ xsi:type="gmfgen:FeatureLabelModelFacet"
+ parser="//@labelParsers/@implementations.0"
+ viewPattern="{0}:{1}"
+ editorPattern="{0}:{1}"
+ editPattern="{0}:{1}">
+ <metaFeatures
+ href="comrel.genmodel#//comrel/NamedElement/name"/>
+ <metaFeatures
+ href="comrel.genmodel#//comrel/SingleFilterUnit/type"/>
+ </modelFacet>
+ </labels>
+ </childNodes>
+ <childNodes
+ visualID="3041"
+ editPartClassName="MultiFilterUnit2EditPart"
+ itemSemanticEditPolicyClassName="MultiFilterUnit2ItemSemanticEditPolicy"
+ notationViewFactoryClassName="MultiFilterUnitViewFactory"
+ canonicalEditPolicyClassName="MultiFilterUnit2CanonicalEditPolicy"
+ childNodes="//@diagram/@childNodes.19 //@diagram/@childNodes.20"
+ graphicalNodeEditPolicyClassName="MultiFilterUnit2GraphicalNodeEditPolicy"
+ createCommandClassName="MultiFilterUnit2CreateCommand"
+ containers="//@diagram/@compartments.24 //@diagram/@compartments.28 //@diagram/@compartments.32 //@diagram/@compartments.40 //@diagram/@compartments.22 //@diagram/@compartments.4 //@diagram/@compartments.74">
+ <diagramRunTimeClass
+ href="../../../plugin/org.eclipse.gmf.runtime.notation/model/notation.genmodel#//notation/Node"/>
+ <elementType
+ xsi:type="gmfgen:SpecializationType"
+ metamodelType="//@diagram/@childNodes.18/@elementType"/>
+ <viewmap
+ xsi:type="gmfgen:InnerClassViewmap"
+ className="MultiFilterUnitFigure"
+ classBody="
/**
 * @generated
 */
public class MultiFilterUnitFigure extends org.eclipse.draw2d.RoundedRectangle {


	/**
	 * @generated
	 */
	private org.eclipse.gmf.runtime.draw2d.ui.figures.WrappingLabel fFigureMultiFilterUnitLabelFigure; 


	/**
	 * @generated
	 */
	public MultiFilterUnitFigure() {
				this.setCornerDimensions(new org.eclipse.draw2d.geometry.Dimension(getMapMode().DPtoLP(8)
, getMapMode().DPtoLP(8)
));
this.setBorder(new org.eclipse.draw2d.MarginBorder(getMapMode().DPtoLP(5)
, getMapMode().DPtoLP(5)
, getMapMode().DPtoLP(5)
, getMapMode().DPtoLP(5)
));
		createContents();
	}
	/**
	 * @generated
	 */
	private void createContents(){


fFigureMultiFilterUnitLabelFigure = new org.eclipse.gmf.runtime.draw2d.ui.figures.WrappingLabel();
fFigureMultiFilterUnitLabelFigure.setText("MultiFilterUnit");

this.add(fFigureMultiFilterUnitLabelFigure);


	}





	/**
	 * @generated
	 */
	public org.eclipse.gmf.runtime.draw2d.ui.figures.WrappingLabel getFigureMultiFilterUnitLabelFigure() {
		return fFigureMultiFilterUnitLabelFigure;
	}


}

"/>
+ <modelFacet>
+ <metaClass
+ href="comrel.genmodel#//comrel/MultiFilterUnit"/>
+ <containmentMetaFeature
+ href="comrel.genmodel#//comrel/ParallelQueuedUnit/helperUnits"/>
+ <childMetaFeature
+ href="comrel.genmodel#//comrel/ParallelQueuedUnit/helperUnits"/>
+ </modelFacet>
+ <labels
+ visualID="5032"
+ editPartClassName="MultiFilterUnitNameType2EditPart"
+ itemSemanticEditPolicyClassName="MultiFilterUnitNameType2ItemSemanticEditPolicy"
+ notationViewFactoryClassName="MultiFilterUnitNameTypeViewFactory">
+ <diagramRunTimeClass
+ href="../../../plugin/org.eclipse.gmf.runtime.notation/model/notation.genmodel#//notation/Node"/>
+ <viewmap
+ xsi:type="gmfgen:ParentAssignedViewmap"
+ getterName="getFigureMultiFilterUnitLabelFigure"
+ figureQualifiedClassName="org.eclipse.gmf.runtime.draw2d.ui.figures.WrappingLabel"/>
+ <modelFacet
+ xsi:type="gmfgen:FeatureLabelModelFacet"
+ parser="//@labelParsers/@implementations.0"
+ viewPattern="{0}:{1}"
+ editorPattern="{0}:{1}"
+ editPattern="{0}:{1}">
+ <metaFeatures
+ href="comrel.genmodel#//comrel/NamedElement/name"/>
+ <metaFeatures
+ href="comrel.genmodel#//comrel/MultiFilterUnit/type"/>
+ </modelFacet>
+ </labels>
+ </childNodes>
+ <childNodes
+ visualID="3042"
+ editPartClassName="SingleQueuedUnit3EditPart"
+ itemSemanticEditPolicyClassName="SingleQueuedUnit3ItemSemanticEditPolicy"
+ notationViewFactoryClassName="SingleQueuedUnitViewFactory"
+ canonicalEditPolicyClassName="SingleQueuedUnit3CanonicalEditPolicy"
+ childNodes="//@diagram/@childNodes.22 //@diagram/@childNodes.23"
+ compartments="//@diagram/@compartments.26 //@diagram/@compartments.27"
+ graphicalNodeEditPolicyClassName="SingleQueuedUnit3GraphicalNodeEditPolicy"
+ createCommandClassName="SingleQueuedUnit3CreateCommand"
+ containers="//@diagram/@compartments.29 //@diagram/@compartments.33 //@diagram/@compartments.41 //@diagram/@compartments.25 //@diagram/@compartments.23 //@diagram/@compartments.5 //@diagram/@compartments.75">
+ <diagramRunTimeClass
+ href="../../../plugin/org.eclipse.gmf.runtime.notation/model/notation.genmodel#//notation/Node"/>
+ <elementType
+ xsi:type="gmfgen:SpecializationType"
+ metamodelType="//@diagram/@childNodes.21/@elementType"/>
+ <viewmap
+ xsi:type="gmfgen:InnerClassViewmap"
+ className="SingleQueuedUnitFigure"
+ classBody="
/**
 * @generated
 */
public class SingleQueuedUnitFigure extends org.eclipse.draw2d.RoundedRectangle {


	/**
	 * @generated
	 */
	private org.eclipse.gmf.runtime.draw2d.ui.figures.WrappingLabel fFigureSingleQueuedUnitLabelFigure; 
	/**
	 * @generated
	 */
	private org.eclipse.draw2d.RectangleFigure fSingleQueuedUnitHelperUnitsCompartmentFigure; 
	/**
	 * @generated
	 */
	private org.eclipse.draw2d.RectangleFigure fSingleQueuedUnitRefactoringUnitCompartmentFigure; 


	/**
	 * @generated
	 */
	public SingleQueuedUnitFigure() {
				this.setCornerDimensions(new org.eclipse.draw2d.geometry.Dimension(getMapMode().DPtoLP(8)
, getMapMode().DPtoLP(8)
));
this.setBorder(new org.eclipse.draw2d.MarginBorder(getMapMode().DPtoLP(5)
, getMapMode().DPtoLP(5)
, getMapMode().DPtoLP(5)
, getMapMode().DPtoLP(5)
));
		createContents();
	}
	/**
	 * @generated
	 */
	private void createContents(){


fFigureSingleQueuedUnitLabelFigure = new org.eclipse.gmf.runtime.draw2d.ui.figures.WrappingLabel();
fFigureSingleQueuedUnitLabelFigure.setText("SingleQueuedUnit");
fFigureSingleQueuedUnitLabelFigure.setMaximumSize(new org.eclipse.draw2d.geometry.Dimension(getMapMode().DPtoLP(10000)
, getMapMode().DPtoLP(50)
));

this.add(fFigureSingleQueuedUnitLabelFigure);



fSingleQueuedUnitHelperUnitsCompartmentFigure = new org.eclipse.draw2d.RectangleFigure();
fSingleQueuedUnitHelperUnitsCompartmentFigure.setOutline(false);

this.add(fSingleQueuedUnitHelperUnitsCompartmentFigure);



fSingleQueuedUnitRefactoringUnitCompartmentFigure = new org.eclipse.draw2d.RectangleFigure();
fSingleQueuedUnitRefactoringUnitCompartmentFigure.setOutline(false);

this.add(fSingleQueuedUnitRefactoringUnitCompartmentFigure);


	}





	/**
	 * @generated
	 */
	public org.eclipse.gmf.runtime.draw2d.ui.figures.WrappingLabel getFigureSingleQueuedUnitLabelFigure() {
		return fFigureSingleQueuedUnitLabelFigure;
	}
	/**
	 * @generated
	 */
	public org.eclipse.draw2d.RectangleFigure getSingleQueuedUnitHelperUnitsCompartmentFigure() {
		return fSingleQueuedUnitHelperUnitsCompartmentFigure;
	}
	/**
	 * @generated
	 */
	public org.eclipse.draw2d.RectangleFigure getSingleQueuedUnitRefactoringUnitCompartmentFigure() {
		return fSingleQueuedUnitRefactoringUnitCompartmentFigure;
	}


}

"/>
+ <behaviour
+ xsi:type="gmfgen:OpenDiagramBehaviour"/>
+ <modelFacet>
+ <metaClass
+ href="comrel.genmodel#//comrel/SingleQueuedUnit"/>
+ <containmentMetaFeature
+ href="comrel.genmodel#//comrel/ParallelQueuedUnit/refactoringUnits"/>
+ <childMetaFeature
+ href="comrel.genmodel#//comrel/ParallelQueuedUnit/refactoringUnits"/>
+ </modelFacet>
+ <labels
+ visualID="5069"
+ editPartClassName="SingleQueuedUnitNameTypeLblStrict3EditPart"
+ itemSemanticEditPolicyClassName="SingleQueuedUnitNameTypeLblStrict3ItemSemanticEditPolicy"
+ notationViewFactoryClassName="SingleQueuedUnitNameTypeLblStrictViewFactory">
+ <diagramRunTimeClass
+ href="../../../plugin/org.eclipse.gmf.runtime.notation/model/notation.genmodel#//notation/Node"/>
+ <viewmap
+ xsi:type="gmfgen:ParentAssignedViewmap"
+ getterName="getFigureSingleQueuedUnitLabelFigure"
+ figureQualifiedClassName="org.eclipse.gmf.runtime.draw2d.ui.figures.WrappingLabel"/>
+ <modelFacet
+ xsi:type="gmfgen:FeatureLabelModelFacet"
+ parser="//@labelParsers/@implementations.0"
+ viewPattern="{0}:{1} -{2}-"
+ editorPattern="{0}:{1} -{2}-"
+ editPattern="{0}:{1} -{2}-">
+ <metaFeatures
+ href="comrel.genmodel#//comrel/NamedElement/name"/>
+ <metaFeatures
+ href="comrel.genmodel#//comrel/SingleQueuedUnit/type"/>
+ <metaFeatures
+ href="comrel.genmodel#//comrel/SingleQueuedUnit/lblStrict"/>
+ </modelFacet>
+ </labels>
+ </childNodes>
+ <childNodes
+ visualID="3043"
+ editPartClassName="ParallelQueuedUnit5EditPart"
+ itemSemanticEditPolicyClassName="ParallelQueuedUnit5ItemSemanticEditPolicy"
+ notationViewFactoryClassName="ParallelQueuedUnitViewFactory"
+ canonicalEditPolicyClassName="ParallelQueuedUnit5CanonicalEditPolicy"
+ childNodes="//@diagram/@childNodes.4 //@diagram/@childNodes.5"
+ compartments="//@diagram/@compartments.28 //@diagram/@compartments.29"
+ graphicalNodeEditPolicyClassName="ParallelQueuedUnit5GraphicalNodeEditPolicy"
+ createCommandClassName="ParallelQueuedUnit5CreateCommand"
+ containers="//@diagram/@compartments.43 //@diagram/@compartments.45 //@diagram/@compartments.49 //@diagram/@compartments.55 //@diagram/@compartments.27 //@diagram/@compartments.9 //@diagram/@compartments.77">
+ <diagramRunTimeClass
+ href="../../../plugin/org.eclipse.gmf.runtime.notation/model/notation.genmodel#//notation/Node"/>
+ <elementType
+ xsi:type="gmfgen:SpecializationType"
+ metamodelType="//@diagram/@childNodes.3/@elementType"/>
+ <viewmap
+ xsi:type="gmfgen:InnerClassViewmap"
+ className="ParallelQueuedUnitFigure"
+ classBody="
/**
 * @generated
 */
public class ParallelQueuedUnitFigure extends org.eclipse.draw2d.RoundedRectangle {


	/**
	 * @generated
	 */
	private org.eclipse.gmf.runtime.draw2d.ui.figures.WrappingLabel fFigureParallelQueuedUnitLabelFigure; 
	/**
	 * @generated
	 */
	private org.eclipse.draw2d.RectangleFigure fParallelQueuedUnitHelperUnitsCompartmentFigure; 
	/**
	 * @generated
	 */
	private org.eclipse.draw2d.RectangleFigure fParallelQueuedUnitRefactoringUnitsCompartmentFigure; 


	/**
	 * @generated
	 */
	public ParallelQueuedUnitFigure() {
				this.setCornerDimensions(new org.eclipse.draw2d.geometry.Dimension(getMapMode().DPtoLP(8)
, getMapMode().DPtoLP(8)
));
this.setBorder(new org.eclipse.draw2d.MarginBorder(getMapMode().DPtoLP(5)
, getMapMode().DPtoLP(5)
, getMapMode().DPtoLP(5)
, getMapMode().DPtoLP(5)
));
		createContents();
	}
	/**
	 * @generated
	 */
	private void createContents(){


fFigureParallelQueuedUnitLabelFigure = new org.eclipse.gmf.runtime.draw2d.ui.figures.WrappingLabel();
fFigureParallelQueuedUnitLabelFigure.setText("ParallelQueuedUnit");
fFigureParallelQueuedUnitLabelFigure.setMaximumSize(new org.eclipse.draw2d.geometry.Dimension(getMapMode().DPtoLP(10000)
, getMapMode().DPtoLP(50)
));

this.add(fFigureParallelQueuedUnitLabelFigure);



fParallelQueuedUnitHelperUnitsCompartmentFigure = new org.eclipse.draw2d.RectangleFigure();
fParallelQueuedUnitHelperUnitsCompartmentFigure.setOutline(false);

this.add(fParallelQueuedUnitHelperUnitsCompartmentFigure);



fParallelQueuedUnitRefactoringUnitsCompartmentFigure = new org.eclipse.draw2d.RectangleFigure();
fParallelQueuedUnitRefactoringUnitsCompartmentFigure.setOutline(false);

this.add(fParallelQueuedUnitRefactoringUnitsCompartmentFigure);


	}





	/**
	 * @generated
	 */
	public org.eclipse.gmf.runtime.draw2d.ui.figures.WrappingLabel getFigureParallelQueuedUnitLabelFigure() {
		return fFigureParallelQueuedUnitLabelFigure;
	}
	/**
	 * @generated
	 */
	public org.eclipse.draw2d.RectangleFigure getParallelQueuedUnitHelperUnitsCompartmentFigure() {
		return fParallelQueuedUnitHelperUnitsCompartmentFigure;
	}
	/**
	 * @generated
	 */
	public org.eclipse.draw2d.RectangleFigure getParallelQueuedUnitRefactoringUnitsCompartmentFigure() {
		return fParallelQueuedUnitRefactoringUnitsCompartmentFigure;
	}


}

"/>
+ <behaviour
+ xsi:type="gmfgen:OpenDiagramBehaviour"/>
+ <modelFacet>
+ <metaClass
+ href="comrel.genmodel#//comrel/ParallelQueuedUnit"/>
+ <containmentMetaFeature
+ href="comrel.genmodel#//comrel/SingleQueuedUnit/refactoringUnit"/>
+ <childMetaFeature
+ href="comrel.genmodel#//comrel/SingleQueuedUnit/refactoringUnit"/>
+ </modelFacet>
+ <labels
+ visualID="5068"
+ editPartClassName="ParallelQueuedUnitNameTypeLblStrict5EditPart"
+ itemSemanticEditPolicyClassName="ParallelQueuedUnitNameTypeLblStrict5ItemSemanticEditPolicy"
+ notationViewFactoryClassName="ParallelQueuedUnitNameTypeLblStrictViewFactory">
+ <diagramRunTimeClass
+ href="../../../plugin/org.eclipse.gmf.runtime.notation/model/notation.genmodel#//notation/Node"/>
+ <viewmap
+ xsi:type="gmfgen:ParentAssignedViewmap"
+ getterName="getFigureParallelQueuedUnitLabelFigure"
+ figureQualifiedClassName="org.eclipse.gmf.runtime.draw2d.ui.figures.WrappingLabel"/>
+ <modelFacet
+ xsi:type="gmfgen:FeatureLabelModelFacet"
+ parser="//@labelParsers/@implementations.0"
+ viewPattern="{0}:{1} -{2}-"
+ editorPattern="{0}:{1} -{2}-"
+ editPattern="{0}:{1} -{2}-">
+ <metaFeatures
+ href="comrel.genmodel#//comrel/NamedElement/name"/>
+ <metaFeatures
+ href="comrel.genmodel#//comrel/ParallelQueuedUnit/type"/>
+ <metaFeatures
+ href="comrel.genmodel#//comrel/ParallelQueuedUnit/lblStrict"/>
+ </modelFacet>
+ </labels>
+ </childNodes>
+ <childNodes
+ visualID="3044"
+ editPartClassName="SequentialUnit3EditPart"
+ itemSemanticEditPolicyClassName="SequentialUnit3ItemSemanticEditPolicy"
+ notationViewFactoryClassName="SequentialUnitViewFactory"
+ canonicalEditPolicyClassName="SequentialUnit3CanonicalEditPolicy"
+ childNodes="//@diagram/@childNodes.26 //@diagram/@childNodes.27"
+ compartments="//@diagram/@compartments.30 //@diagram/@compartments.31"
+ graphicalNodeEditPolicyClassName="SequentialUnit3GraphicalNodeEditPolicy"
+ createCommandClassName="SequentialUnit3CreateCommand"
+ containers="//@diagram/@compartments.33 //@diagram/@compartments.41 //@diagram/@compartments.29 //@diagram/@compartments.25 //@diagram/@compartments.23 //@diagram/@compartments.5 //@diagram/@compartments.75">
+ <diagramRunTimeClass
+ href="../../../plugin/org.eclipse.gmf.runtime.notation/model/notation.genmodel#//notation/Node"/>
+ <elementType
+ xsi:type="gmfgen:SpecializationType"
+ metamodelType="//@diagram/@childNodes.25/@elementType"/>
+ <viewmap
+ xsi:type="gmfgen:InnerClassViewmap"
+ className="SequentialUnitFigure"
+ classBody="
/**
 * @generated
 */
public class SequentialUnitFigure extends org.eclipse.draw2d.RoundedRectangle {


	/**
	 * @generated
	 */
	private org.eclipse.gmf.runtime.draw2d.ui.figures.WrappingLabel fFigureSequentialUnitLabelFigure; 
	/**
	 * @generated
	 */
	private org.eclipse.draw2d.RectangleFigure fSequentialUnitHelperUnitsCompartmentFigure; 
	/**
	 * @generated
	 */
	private org.eclipse.draw2d.RectangleFigure fSequentialUnitRefactoringUnitsCompartmentFigure; 


	/**
	 * @generated
	 */
	public SequentialUnitFigure() {
				this.setCornerDimensions(new org.eclipse.draw2d.geometry.Dimension(getMapMode().DPtoLP(8)
, getMapMode().DPtoLP(8)
));
this.setBorder(new org.eclipse.draw2d.MarginBorder(getMapMode().DPtoLP(5)
, getMapMode().DPtoLP(5)
, getMapMode().DPtoLP(5)
, getMapMode().DPtoLP(5)
));
		createContents();
	}
	/**
	 * @generated
	 */
	private void createContents(){


fFigureSequentialUnitLabelFigure = new org.eclipse.gmf.runtime.draw2d.ui.figures.WrappingLabel();
fFigureSequentialUnitLabelFigure.setText("SequentialUnit");
fFigureSequentialUnitLabelFigure.setMaximumSize(new org.eclipse.draw2d.geometry.Dimension(getMapMode().DPtoLP(10000)
, getMapMode().DPtoLP(50)
));

this.add(fFigureSequentialUnitLabelFigure);



fSequentialUnitHelperUnitsCompartmentFigure = new org.eclipse.draw2d.RectangleFigure();
fSequentialUnitHelperUnitsCompartmentFigure.setOutline(false);

this.add(fSequentialUnitHelperUnitsCompartmentFigure);



fSequentialUnitRefactoringUnitsCompartmentFigure = new org.eclipse.draw2d.RectangleFigure();
fSequentialUnitRefactoringUnitsCompartmentFigure.setOutline(false);

this.add(fSequentialUnitRefactoringUnitsCompartmentFigure);


	}





	/**
	 * @generated
	 */
	public org.eclipse.gmf.runtime.draw2d.ui.figures.WrappingLabel getFigureSequentialUnitLabelFigure() {
		return fFigureSequentialUnitLabelFigure;
	}
	/**
	 * @generated
	 */
	public org.eclipse.draw2d.RectangleFigure getSequentialUnitHelperUnitsCompartmentFigure() {
		return fSequentialUnitHelperUnitsCompartmentFigure;
	}
	/**
	 * @generated
	 */
	public org.eclipse.draw2d.RectangleFigure getSequentialUnitRefactoringUnitsCompartmentFigure() {
		return fSequentialUnitRefactoringUnitsCompartmentFigure;
	}


}

"/>
+ <behaviour
+ xsi:type="gmfgen:OpenDiagramBehaviour"/>
+ <modelFacet>
+ <metaClass
+ href="comrel.genmodel#//comrel/SequentialUnit"/>
+ <containmentMetaFeature
+ href="comrel.genmodel#//comrel/ParallelQueuedUnit/refactoringUnits"/>
+ <childMetaFeature
+ href="comrel.genmodel#//comrel/ParallelQueuedUnit/refactoringUnits"/>
+ </modelFacet>
+ <labels
+ visualID="5067"
+ editPartClassName="SequentialUnitNameTypeLblStrict3EditPart"
+ itemSemanticEditPolicyClassName="SequentialUnitNameTypeLblStrict3ItemSemanticEditPolicy"
+ notationViewFactoryClassName="SequentialUnitNameTypeLblStrictViewFactory">
+ <diagramRunTimeClass
+ href="../../../plugin/org.eclipse.gmf.runtime.notation/model/notation.genmodel#//notation/Node"/>
+ <viewmap
+ xsi:type="gmfgen:ParentAssignedViewmap"
+ getterName="getFigureSequentialUnitLabelFigure"
+ figureQualifiedClassName="org.eclipse.gmf.runtime.draw2d.ui.figures.WrappingLabel"/>
+ <modelFacet
+ xsi:type="gmfgen:FeatureLabelModelFacet"
+ parser="//@labelParsers/@implementations.0"
+ viewPattern="{0}:{1} -{2}-"
+ editorPattern="{0}:{1} -{2}-"
+ editPattern="{0}:{1} -{2}-">
+ <metaFeatures
+ href="comrel.genmodel#//comrel/NamedElement/name"/>
+ <metaFeatures
+ href="comrel.genmodel#//comrel/SequentialUnit/type"/>
+ <metaFeatures
+ href="comrel.genmodel#//comrel/SequentialUnit/lblStrict"/>
+ </modelFacet>
+ </labels>
+ </childNodes>
+ <childNodes
+ visualID="3045"
+ editPartClassName="ParallelQueuedUnit6EditPart"
+ itemSemanticEditPolicyClassName="ParallelQueuedUnit6ItemSemanticEditPolicy"
+ notationViewFactoryClassName="ParallelQueuedUnitViewFactory"
+ canonicalEditPolicyClassName="ParallelQueuedUnit6CanonicalEditPolicy"
+ childNodes="//@diagram/@childNodes.4 //@diagram/@childNodes.5"
+ compartments="//@diagram/@compartments.32 //@diagram/@compartments.33"
+ graphicalNodeEditPolicyClassName="ParallelQueuedUnit6GraphicalNodeEditPolicy"
+ createCommandClassName="ParallelQueuedUnit6CreateCommand"
+ containers="//@diagram/@compartments.47 //@diagram/@compartments.57 //@diagram/@compartments.59 //@diagram/@compartments.69 //@diagram/@compartments.31 //@diagram/@compartments.13 //@diagram/@compartments.79">
+ <diagramRunTimeClass
+ href="../../../plugin/org.eclipse.gmf.runtime.notation/model/notation.genmodel#//notation/Node"/>
+ <elementType
+ xsi:type="gmfgen:SpecializationType"
+ metamodelType="//@diagram/@childNodes.3/@elementType"/>
+ <viewmap
+ xsi:type="gmfgen:InnerClassViewmap"
+ className="ParallelQueuedUnitFigure"
+ classBody="
/**
 * @generated
 */
public class ParallelQueuedUnitFigure extends org.eclipse.draw2d.RoundedRectangle {


	/**
	 * @generated
	 */
	private org.eclipse.gmf.runtime.draw2d.ui.figures.WrappingLabel fFigureParallelQueuedUnitLabelFigure; 
	/**
	 * @generated
	 */
	private org.eclipse.draw2d.RectangleFigure fParallelQueuedUnitHelperUnitsCompartmentFigure; 
	/**
	 * @generated
	 */
	private org.eclipse.draw2d.RectangleFigure fParallelQueuedUnitRefactoringUnitsCompartmentFigure; 


	/**
	 * @generated
	 */
	public ParallelQueuedUnitFigure() {
				this.setCornerDimensions(new org.eclipse.draw2d.geometry.Dimension(getMapMode().DPtoLP(8)
, getMapMode().DPtoLP(8)
));
this.setBorder(new org.eclipse.draw2d.MarginBorder(getMapMode().DPtoLP(5)
, getMapMode().DPtoLP(5)
, getMapMode().DPtoLP(5)
, getMapMode().DPtoLP(5)
));
		createContents();
	}
	/**
	 * @generated
	 */
	private void createContents(){


fFigureParallelQueuedUnitLabelFigure = new org.eclipse.gmf.runtime.draw2d.ui.figures.WrappingLabel();
fFigureParallelQueuedUnitLabelFigure.setText("ParallelQueuedUnit");
fFigureParallelQueuedUnitLabelFigure.setMaximumSize(new org.eclipse.draw2d.geometry.Dimension(getMapMode().DPtoLP(10000)
, getMapMode().DPtoLP(50)
));

this.add(fFigureParallelQueuedUnitLabelFigure);



fParallelQueuedUnitHelperUnitsCompartmentFigure = new org.eclipse.draw2d.RectangleFigure();
fParallelQueuedUnitHelperUnitsCompartmentFigure.setOutline(false);

this.add(fParallelQueuedUnitHelperUnitsCompartmentFigure);



fParallelQueuedUnitRefactoringUnitsCompartmentFigure = new org.eclipse.draw2d.RectangleFigure();
fParallelQueuedUnitRefactoringUnitsCompartmentFigure.setOutline(false);

this.add(fParallelQueuedUnitRefactoringUnitsCompartmentFigure);


	}





	/**
	 * @generated
	 */
	public org.eclipse.gmf.runtime.draw2d.ui.figures.WrappingLabel getFigureParallelQueuedUnitLabelFigure() {
		return fFigureParallelQueuedUnitLabelFigure;
	}
	/**
	 * @generated
	 */
	public org.eclipse.draw2d.RectangleFigure getParallelQueuedUnitHelperUnitsCompartmentFigure() {
		return fParallelQueuedUnitHelperUnitsCompartmentFigure;
	}
	/**
	 * @generated
	 */
	public org.eclipse.draw2d.RectangleFigure getParallelQueuedUnitRefactoringUnitsCompartmentFigure() {
		return fParallelQueuedUnitRefactoringUnitsCompartmentFigure;
	}


}

"/>
+ <behaviour
+ xsi:type="gmfgen:OpenDiagramBehaviour"/>
+ <modelFacet>
+ <metaClass
+ href="comrel.genmodel#//comrel/ParallelQueuedUnit"/>
+ <containmentMetaFeature
+ href="comrel.genmodel#//comrel/SequentialUnit/refactoringUnits"/>
+ <childMetaFeature
+ href="comrel.genmodel#//comrel/SequentialUnit/refactoringUnits"/>
+ </modelFacet>
+ <labels
+ visualID="5066"
+ editPartClassName="ParallelQueuedUnitNameTypeLblStrict6EditPart"
+ itemSemanticEditPolicyClassName="ParallelQueuedUnitNameTypeLblStrict6ItemSemanticEditPolicy"
+ notationViewFactoryClassName="ParallelQueuedUnitNameTypeLblStrictViewFactory">
+ <diagramRunTimeClass
+ href="../../../plugin/org.eclipse.gmf.runtime.notation/model/notation.genmodel#//notation/Node"/>
+ <viewmap
+ xsi:type="gmfgen:ParentAssignedViewmap"
+ getterName="getFigureParallelQueuedUnitLabelFigure"
+ figureQualifiedClassName="org.eclipse.gmf.runtime.draw2d.ui.figures.WrappingLabel"/>
+ <modelFacet
+ xsi:type="gmfgen:FeatureLabelModelFacet"
+ parser="//@labelParsers/@implementations.0"
+ viewPattern="{0}:{1} -{2}-"
+ editorPattern="{0}:{1} -{2}-"
+ editPattern="{0}:{1} -{2}-">
+ <metaFeatures
+ href="comrel.genmodel#//comrel/NamedElement/name"/>
+ <metaFeatures
+ href="comrel.genmodel#//comrel/ParallelQueuedUnit/type"/>
+ <metaFeatures
+ href="comrel.genmodel#//comrel/ParallelQueuedUnit/lblStrict"/>
+ </modelFacet>
+ </labels>
+ </childNodes>
+ <childNodes
+ visualID="3046"
+ editPartClassName="ConditionalUnit3EditPart"
+ itemSemanticEditPolicyClassName="ConditionalUnit3ItemSemanticEditPolicy"
+ notationViewFactoryClassName="ConditionalUnitViewFactory"
+ canonicalEditPolicyClassName="ConditionalUnit3CanonicalEditPolicy"
+ childNodes="//@diagram/@childNodes.30 //@diagram/@childNodes.31"
+ compartments="//@diagram/@compartments.34 //@diagram/@compartments.35 //@diagram/@compartments.36 //@diagram/@compartments.37"
+ graphicalNodeEditPolicyClassName="ConditionalUnit3GraphicalNodeEditPolicy"
+ createCommandClassName="ConditionalUnit3CreateCommand"
+ containers="//@diagram/@compartments.41 //@diagram/@compartments.33 //@diagram/@compartments.29 //@diagram/@compartments.25 //@diagram/@compartments.23 //@diagram/@compartments.5 //@diagram/@compartments.75">
+ <diagramRunTimeClass
+ href="../../../plugin/org.eclipse.gmf.runtime.notation/model/notation.genmodel#//notation/Node"/>
+ <elementType
+ xsi:type="gmfgen:SpecializationType"
+ metamodelType="//@diagram/@childNodes.29/@elementType"/>
+ <viewmap
+ xsi:type="gmfgen:InnerClassViewmap"
+ className="ConditionalUnitFigure"
+ classBody="
/**
 * @generated
 */
public class ConditionalUnitFigure extends org.eclipse.draw2d.RoundedRectangle {


	/**
	 * @generated
	 */
	private org.eclipse.gmf.runtime.draw2d.ui.figures.WrappingLabel fFigureConditionalUnitLabelFigure; 
	/**
	 * @generated
	 */
	private org.eclipse.draw2d.RectangleFigure fConditionalUnitIfCompartmentFigure; 
	/**
	 * @generated
	 */
	private org.eclipse.draw2d.RectangleFigure fConditionalUnitHelperUnitsCompartmentFigure; 
	/**
	 * @generated
	 */
	private org.eclipse.draw2d.RectangleFigure fConditionalUnitThenCompartmentFigure; 
	/**
	 * @generated
	 */
	private org.eclipse.draw2d.RectangleFigure fConditionalUnitElseCompartmentFigure; 


	/**
	 * @generated
	 */
	public ConditionalUnitFigure() {
				this.setCornerDimensions(new org.eclipse.draw2d.geometry.Dimension(getMapMode().DPtoLP(8)
, getMapMode().DPtoLP(8)
));
this.setBorder(new org.eclipse.draw2d.MarginBorder(getMapMode().DPtoLP(5)
, getMapMode().DPtoLP(5)
, getMapMode().DPtoLP(5)
, getMapMode().DPtoLP(5)
));
		createContents();
	}
	/**
	 * @generated
	 */
	private void createContents(){


fFigureConditionalUnitLabelFigure = new org.eclipse.gmf.runtime.draw2d.ui.figures.WrappingLabel();
fFigureConditionalUnitLabelFigure.setText("ConditionalUnit");
fFigureConditionalUnitLabelFigure.setMaximumSize(new org.eclipse.draw2d.geometry.Dimension(getMapMode().DPtoLP(10000)
, getMapMode().DPtoLP(50)
));

this.add(fFigureConditionalUnitLabelFigure);



fConditionalUnitIfCompartmentFigure = new org.eclipse.draw2d.RectangleFigure();
fConditionalUnitIfCompartmentFigure.setOutline(false);

this.add(fConditionalUnitIfCompartmentFigure);



fConditionalUnitHelperUnitsCompartmentFigure = new org.eclipse.draw2d.RectangleFigure();
fConditionalUnitHelperUnitsCompartmentFigure.setOutline(false);

this.add(fConditionalUnitHelperUnitsCompartmentFigure);



fConditionalUnitThenCompartmentFigure = new org.eclipse.draw2d.RectangleFigure();
fConditionalUnitThenCompartmentFigure.setOutline(false);

this.add(fConditionalUnitThenCompartmentFigure);



fConditionalUnitElseCompartmentFigure = new org.eclipse.draw2d.RectangleFigure();
fConditionalUnitElseCompartmentFigure.setOutline(false);

this.add(fConditionalUnitElseCompartmentFigure);


	}





	/**
	 * @generated
	 */
	public org.eclipse.gmf.runtime.draw2d.ui.figures.WrappingLabel getFigureConditionalUnitLabelFigure() {
		return fFigureConditionalUnitLabelFigure;
	}
	/**
	 * @generated
	 */
	public org.eclipse.draw2d.RectangleFigure getConditionalUnitIfCompartmentFigure() {
		return fConditionalUnitIfCompartmentFigure;
	}
	/**
	 * @generated
	 */
	public org.eclipse.draw2d.RectangleFigure getConditionalUnitHelperUnitsCompartmentFigure() {
		return fConditionalUnitHelperUnitsCompartmentFigure;
	}
	/**
	 * @generated
	 */
	public org.eclipse.draw2d.RectangleFigure getConditionalUnitThenCompartmentFigure() {
		return fConditionalUnitThenCompartmentFigure;
	}
	/**
	 * @generated
	 */
	public org.eclipse.draw2d.RectangleFigure getConditionalUnitElseCompartmentFigure() {
		return fConditionalUnitElseCompartmentFigure;
	}


}

"/>
+ <behaviour
+ xsi:type="gmfgen:OpenDiagramBehaviour"/>
+ <modelFacet>
+ <metaClass
+ href="comrel.genmodel#//comrel/ConditionalUnit"/>
+ <containmentMetaFeature
+ href="comrel.genmodel#//comrel/ParallelQueuedUnit/refactoringUnits"/>
+ <childMetaFeature
+ href="comrel.genmodel#//comrel/ParallelQueuedUnit/refactoringUnits"/>
+ </modelFacet>
+ <labels
+ visualID="5065"
+ editPartClassName="ConditionalUnitNameType3EditPart"
+ itemSemanticEditPolicyClassName="ConditionalUnitNameType3ItemSemanticEditPolicy"
+ notationViewFactoryClassName="ConditionalUnitNameTypeViewFactory">
+ <diagramRunTimeClass
+ href="../../../plugin/org.eclipse.gmf.runtime.notation/model/notation.genmodel#//notation/Node"/>
+ <viewmap
+ xsi:type="gmfgen:ParentAssignedViewmap"
+ getterName="getFigureConditionalUnitLabelFigure"
+ figureQualifiedClassName="org.eclipse.gmf.runtime.draw2d.ui.figures.WrappingLabel"/>
+ <modelFacet
+ xsi:type="gmfgen:FeatureLabelModelFacet"
+ parser="//@labelParsers/@implementations.0"
+ viewPattern="{0}:{1}"
+ editorPattern="{0}:{1}"
+ editPattern="{0}:{1}">
+ <metaFeatures
+ href="comrel.genmodel#//comrel/NamedElement/name"/>
+ <metaFeatures
+ href="comrel.genmodel#//comrel/ConditionalUnit/type"/>
+ </modelFacet>
+ </labels>
+ </childNodes>
+ <childNodes
+ visualID="3047"
+ editPartClassName="CartesianQueuedUnit7EditPart"
+ itemSemanticEditPolicyClassName="CartesianQueuedUnit7ItemSemanticEditPolicy"
+ notationViewFactoryClassName="CartesianQueuedUnitViewFactory"
+ canonicalEditPolicyClassName="CartesianQueuedUnit7CanonicalEditPolicy"
+ childNodes="//@diagram/@childNodes.0 //@diagram/@childNodes.1"
+ compartments="//@diagram/@compartments.38 //@diagram/@compartments.39"
+ graphicalNodeEditPolicyClassName="CartesianQueuedUnit7GraphicalNodeEditPolicy"
+ createCommandClassName="CartesianQueuedUnit7CreateCommand"
+ containers="//@diagram/@compartments.37 //@diagram/@compartments.53 //@diagram/@compartments.63 //@diagram/@compartments.67 //@diagram/@compartments.73 //@diagram/@compartments.19 //@diagram/@compartments.83">
+ <diagramRunTimeClass
+ href="../../../plugin/org.eclipse.gmf.runtime.notation/model/notation.genmodel#//notation/Node"/>
+ <elementType
+ xsi:type="gmfgen:SpecializationType"
+ metamodelType="//@diagram/@topLevelNodes.1/@elementType"/>
+ <viewmap
+ xsi:type="gmfgen:InnerClassViewmap"
+ className="CartesianQueuedUnitFigure"
+ classBody="
/**
 * @generated
 */
public class CartesianQueuedUnitFigure extends org.eclipse.draw2d.RoundedRectangle {


	/**
	 * @generated
	 */
	private org.eclipse.gmf.runtime.draw2d.ui.figures.WrappingLabel fFigureCartesianQueuedUnitLabelFigure; 
	/**
	 * @generated
	 */
	private org.eclipse.draw2d.RectangleFigure fCartesianQueuedUnitHelperUnitsCompartmentFigure; 
	/**
	 * @generated
	 */
	private org.eclipse.draw2d.RectangleFigure fCartesianQueuedUnitRefactoringUnitCompartmentFigure; 


	/**
	 * @generated
	 */
	public CartesianQueuedUnitFigure() {
				this.setCornerDimensions(new org.eclipse.draw2d.geometry.Dimension(getMapMode().DPtoLP(8)
, getMapMode().DPtoLP(8)
));
this.setBorder(new org.eclipse.draw2d.MarginBorder(getMapMode().DPtoLP(5)
, getMapMode().DPtoLP(5)
, getMapMode().DPtoLP(5)
, getMapMode().DPtoLP(5)
));
		createContents();
	}
	/**
	 * @generated
	 */
	private void createContents(){


fFigureCartesianQueuedUnitLabelFigure = new org.eclipse.gmf.runtime.draw2d.ui.figures.WrappingLabel();
fFigureCartesianQueuedUnitLabelFigure.setText("CartesianQueuedUnit");
fFigureCartesianQueuedUnitLabelFigure.setMaximumSize(new org.eclipse.draw2d.geometry.Dimension(getMapMode().DPtoLP(10000)
, getMapMode().DPtoLP(50)
));

this.add(fFigureCartesianQueuedUnitLabelFigure);



fCartesianQueuedUnitHelperUnitsCompartmentFigure = new org.eclipse.draw2d.RectangleFigure();
fCartesianQueuedUnitHelperUnitsCompartmentFigure.setOutline(false);

this.add(fCartesianQueuedUnitHelperUnitsCompartmentFigure);



fCartesianQueuedUnitRefactoringUnitCompartmentFigure = new org.eclipse.draw2d.RectangleFigure();
fCartesianQueuedUnitRefactoringUnitCompartmentFigure.setOutline(false);

this.add(fCartesianQueuedUnitRefactoringUnitCompartmentFigure);


	}





	/**
	 * @generated
	 */
	public org.eclipse.gmf.runtime.draw2d.ui.figures.WrappingLabel getFigureCartesianQueuedUnitLabelFigure() {
		return fFigureCartesianQueuedUnitLabelFigure;
	}
	/**
	 * @generated
	 */
	public org.eclipse.draw2d.RectangleFigure getCartesianQueuedUnitHelperUnitsCompartmentFigure() {
		return fCartesianQueuedUnitHelperUnitsCompartmentFigure;
	}
	/**
	 * @generated
	 */
	public org.eclipse.draw2d.RectangleFigure getCartesianQueuedUnitRefactoringUnitCompartmentFigure() {
		return fCartesianQueuedUnitRefactoringUnitCompartmentFigure;
	}


}

"/>
+ <behaviour
+ xsi:type="gmfgen:OpenDiagramBehaviour"/>
+ <modelFacet>
+ <metaClass
+ href="comrel.genmodel#//comrel/CartesianQueuedUnit"/>
+ <containmentMetaFeature
+ href="comrel.genmodel#//comrel/ConditionalUnit/else"/>
+ <childMetaFeature
+ href="comrel.genmodel#//comrel/ConditionalUnit/else"/>
+ </modelFacet>
+ <labels
+ visualID="5033"
+ editPartClassName="CartesianQueuedUnitNameTypeLblStrict7EditPart"
+ itemSemanticEditPolicyClassName="CartesianQueuedUnitNameTypeLblStrict7ItemSemanticEditPolicy"
+ notationViewFactoryClassName="CartesianQueuedUnitNameTypeLblStrictViewFactory">
+ <diagramRunTimeClass
+ href="../../../plugin/org.eclipse.gmf.runtime.notation/model/notation.genmodel#//notation/Node"/>
+ <viewmap
+ xsi:type="gmfgen:ParentAssignedViewmap"
+ getterName="getFigureCartesianQueuedUnitLabelFigure"
+ figureQualifiedClassName="org.eclipse.gmf.runtime.draw2d.ui.figures.WrappingLabel"/>
+ <modelFacet
+ xsi:type="gmfgen:FeatureLabelModelFacet"
+ parser="//@labelParsers/@implementations.0"
+ viewPattern="{0}:{1} -{2}-"
+ editorPattern="{0}:{1} -{2}-"
+ editPattern="{0}:{1} -{2}-">
+ <metaFeatures
+ href="comrel.genmodel#//comrel/NamedElement/name"/>
+ <metaFeatures
+ href="comrel.genmodel#//comrel/CartesianQueuedUnit/type"/>
+ <metaFeatures
+ href="comrel.genmodel#//comrel/CartesianQueuedUnit/lblStrict"/>
+ </modelFacet>
+ </labels>
+ </childNodes>
+ <childNodes
+ visualID="3048"
+ editPartClassName="ParallelQueuedUnit7EditPart"
+ itemSemanticEditPolicyClassName="ParallelQueuedUnit7ItemSemanticEditPolicy"
+ notationViewFactoryClassName="ParallelQueuedUnitViewFactory"
+ canonicalEditPolicyClassName="ParallelQueuedUnit7CanonicalEditPolicy"
+ childNodes="//@diagram/@childNodes.4 //@diagram/@childNodes.5"
+ compartments="//@diagram/@compartments.40 //@diagram/@compartments.41"
+ graphicalNodeEditPolicyClassName="ParallelQueuedUnit7GraphicalNodeEditPolicy"
+ createCommandClassName="ParallelQueuedUnit7CreateCommand"
+ containers="//@diagram/@compartments.37 //@diagram/@compartments.53 //@diagram/@compartments.63 //@diagram/@compartments.67 //@diagram/@compartments.73 //@diagram/@compartments.19 //@diagram/@compartments.83">
+ <diagramRunTimeClass
+ href="../../../plugin/org.eclipse.gmf.runtime.notation/model/notation.genmodel#//notation/Node"/>
+ <elementType
+ xsi:type="gmfgen:SpecializationType"
+ metamodelType="//@diagram/@childNodes.3/@elementType"/>
+ <viewmap
+ xsi:type="gmfgen:InnerClassViewmap"
+ className="ParallelQueuedUnitFigure"
+ classBody="
/**
 * @generated
 */
public class ParallelQueuedUnitFigure extends org.eclipse.draw2d.RoundedRectangle {


	/**
	 * @generated
	 */
	private org.eclipse.gmf.runtime.draw2d.ui.figures.WrappingLabel fFigureParallelQueuedUnitLabelFigure; 
	/**
	 * @generated
	 */
	private org.eclipse.draw2d.RectangleFigure fParallelQueuedUnitHelperUnitsCompartmentFigure; 
	/**
	 * @generated
	 */
	private org.eclipse.draw2d.RectangleFigure fParallelQueuedUnitRefactoringUnitsCompartmentFigure; 


	/**
	 * @generated
	 */
	public ParallelQueuedUnitFigure() {
				this.setCornerDimensions(new org.eclipse.draw2d.geometry.Dimension(getMapMode().DPtoLP(8)
, getMapMode().DPtoLP(8)
));
this.setBorder(new org.eclipse.draw2d.MarginBorder(getMapMode().DPtoLP(5)
, getMapMode().DPtoLP(5)
, getMapMode().DPtoLP(5)
, getMapMode().DPtoLP(5)
));
		createContents();
	}
	/**
	 * @generated
	 */
	private void createContents(){


fFigureParallelQueuedUnitLabelFigure = new org.eclipse.gmf.runtime.draw2d.ui.figures.WrappingLabel();
fFigureParallelQueuedUnitLabelFigure.setText("ParallelQueuedUnit");
fFigureParallelQueuedUnitLabelFigure.setMaximumSize(new org.eclipse.draw2d.geometry.Dimension(getMapMode().DPtoLP(10000)
, getMapMode().DPtoLP(50)
));

this.add(fFigureParallelQueuedUnitLabelFigure);



fParallelQueuedUnitHelperUnitsCompartmentFigure = new org.eclipse.draw2d.RectangleFigure();
fParallelQueuedUnitHelperUnitsCompartmentFigure.setOutline(false);

this.add(fParallelQueuedUnitHelperUnitsCompartmentFigure);



fParallelQueuedUnitRefactoringUnitsCompartmentFigure = new org.eclipse.draw2d.RectangleFigure();
fParallelQueuedUnitRefactoringUnitsCompartmentFigure.setOutline(false);

this.add(fParallelQueuedUnitRefactoringUnitsCompartmentFigure);


	}





	/**
	 * @generated
	 */
	public org.eclipse.gmf.runtime.draw2d.ui.figures.WrappingLabel getFigureParallelQueuedUnitLabelFigure() {
		return fFigureParallelQueuedUnitLabelFigure;
	}
	/**
	 * @generated
	 */
	public org.eclipse.draw2d.RectangleFigure getParallelQueuedUnitHelperUnitsCompartmentFigure() {
		return fParallelQueuedUnitHelperUnitsCompartmentFigure;
	}
	/**
	 * @generated
	 */
	public org.eclipse.draw2d.RectangleFigure getParallelQueuedUnitRefactoringUnitsCompartmentFigure() {
		return fParallelQueuedUnitRefactoringUnitsCompartmentFigure;
	}


}

"/>
+ <behaviour
+ xsi:type="gmfgen:OpenDiagramBehaviour"/>
+ <modelFacet>
+ <metaClass
+ href="comrel.genmodel#//comrel/ParallelQueuedUnit"/>
+ <containmentMetaFeature
+ href="comrel.genmodel#//comrel/ConditionalUnit/else"/>
+ <childMetaFeature
+ href="comrel.genmodel#//comrel/ConditionalUnit/else"/>
+ </modelFacet>
+ <labels
+ visualID="5035"
+ editPartClassName="ParallelQueuedUnitNameTypeLblStrict7EditPart"
+ itemSemanticEditPolicyClassName="ParallelQueuedUnitNameTypeLblStrict7ItemSemanticEditPolicy"
+ notationViewFactoryClassName="ParallelQueuedUnitNameTypeLblStrictViewFactory">
+ <diagramRunTimeClass
+ href="../../../plugin/org.eclipse.gmf.runtime.notation/model/notation.genmodel#//notation/Node"/>
+ <viewmap
+ xsi:type="gmfgen:ParentAssignedViewmap"
+ getterName="getFigureParallelQueuedUnitLabelFigure"
+ figureQualifiedClassName="org.eclipse.gmf.runtime.draw2d.ui.figures.WrappingLabel"/>
+ <modelFacet
+ xsi:type="gmfgen:FeatureLabelModelFacet"
+ parser="//@labelParsers/@implementations.0"
+ viewPattern="{0}:{1} -{2}-"
+ editorPattern="{0}:{1} -{2}-"
+ editPattern="{0}:{1} -{2}-">
+ <metaFeatures
+ href="comrel.genmodel#//comrel/NamedElement/name"/>
+ <metaFeatures
+ href="comrel.genmodel#//comrel/ParallelQueuedUnit/type"/>
+ <metaFeatures
+ href="comrel.genmodel#//comrel/ParallelQueuedUnit/lblStrict"/>
+ </modelFacet>
+ </labels>
+ </childNodes>
+ <childNodes
+ visualID="3049"
+ editPartClassName="AtomicUnit3EditPart"
+ itemSemanticEditPolicyClassName="AtomicUnit3ItemSemanticEditPolicy"
+ notationViewFactoryClassName="AtomicUnitViewFactory"
+ canonicalEditPolicyClassName="AtomicUnit3CanonicalEditPolicy"
+ childNodes="//@diagram/@childNodes.34"
+ graphicalNodeEditPolicyClassName="AtomicUnit3GraphicalNodeEditPolicy"
+ createCommandClassName="AtomicUnit3CreateCommand"
+ containers="//@diagram/@compartments.41 //@diagram/@compartments.33 //@diagram/@compartments.29 //@diagram/@compartments.25 //@diagram/@compartments.23 //@diagram/@compartments.5 //@diagram/@compartments.75">
+ <diagramRunTimeClass
+ href="../../../plugin/org.eclipse.gmf.runtime.notation/model/notation.genmodel#//notation/Node"/>
+ <elementType
+ xsi:type="gmfgen:SpecializationType"
+ metamodelType="//@diagram/@childNodes.33/@elementType"/>
+ <viewmap
+ xsi:type="gmfgen:InnerClassViewmap"
+ className="AtomicUnitFigure"
+ classBody="
/**
 * @generated
 */
public class AtomicUnitFigure extends org.eclipse.draw2d.RoundedRectangle {


	/**
	 * @generated
	 */
	private org.eclipse.gmf.runtime.draw2d.ui.figures.WrappingLabel fFigureAtomicUnitLabelFigure; 


	/**
	 * @generated
	 */
	public AtomicUnitFigure() {
				this.setCornerDimensions(new org.eclipse.draw2d.geometry.Dimension(getMapMode().DPtoLP(8)
, getMapMode().DPtoLP(8)
));
this.setBorder(new org.eclipse.draw2d.MarginBorder(getMapMode().DPtoLP(5)
, getMapMode().DPtoLP(5)
, getMapMode().DPtoLP(5)
, getMapMode().DPtoLP(5)
));
		createContents();
	}
	/**
	 * @generated
	 */
	private void createContents(){


fFigureAtomicUnitLabelFigure = new org.eclipse.gmf.runtime.draw2d.ui.figures.WrappingLabel();
fFigureAtomicUnitLabelFigure.setText("AtomicUnit");

this.add(fFigureAtomicUnitLabelFigure);


	}





	/**
	 * @generated
	 */
	public org.eclipse.gmf.runtime.draw2d.ui.figures.WrappingLabel getFigureAtomicUnitLabelFigure() {
		return fFigureAtomicUnitLabelFigure;
	}


}

"/>
+ <modelFacet>
+ <metaClass
+ href="comrel.genmodel#//comrel/AtomicUnit"/>
+ <containmentMetaFeature
+ href="comrel.genmodel#//comrel/ParallelQueuedUnit/refactoringUnits"/>
+ <childMetaFeature
+ href="comrel.genmodel#//comrel/ParallelQueuedUnit/refactoringUnits"/>
+ </modelFacet>
+ <labels
+ visualID="5034"
+ editPartClassName="AtomicUnitLabelType3EditPart"
+ itemSemanticEditPolicyClassName="AtomicUnitLabelType3ItemSemanticEditPolicy"
+ notationViewFactoryClassName="AtomicUnitLabelTypeViewFactory">
+ <diagramRunTimeClass
+ href="../../../plugin/org.eclipse.gmf.runtime.notation/model/notation.genmodel#//notation/Node"/>
+ <viewmap
+ xsi:type="gmfgen:ParentAssignedViewmap"
+ getterName="getFigureAtomicUnitLabelFigure"
+ figureQualifiedClassName="org.eclipse.gmf.runtime.draw2d.ui.figures.WrappingLabel"/>
+ <modelFacet
+ xsi:type="gmfgen:FeatureLabelModelFacet"
+ parser="//@labelParsers/@implementations.0"
+ viewPattern="{0}:{1}"
+ editorPattern="{0}:{1}"
+ editPattern="{0}:{1}">
+ <metaFeatures
+ href="comrel.genmodel#//comrel/AtomicUnit/label"/>
+ <metaFeatures
+ href="comrel.genmodel#//comrel/AtomicUnit/type"/>
+ </modelFacet>
+ </labels>
+ </childNodes>
+ <childNodes
+ visualID="3050"
+ editPartClassName="SingleFeatureUnit3EditPart"
+ itemSemanticEditPolicyClassName="SingleFeatureUnit3ItemSemanticEditPolicy"
+ notationViewFactoryClassName="SingleFeatureUnitViewFactory"
+ canonicalEditPolicyClassName="SingleFeatureUnit3CanonicalEditPolicy"
+ childNodes="//@diagram/@childNodes.8 //@diagram/@childNodes.9 //@diagram/@childNodes.10"
+ graphicalNodeEditPolicyClassName="SingleFeatureUnit3GraphicalNodeEditPolicy"
+ createCommandClassName="SingleFeatureUnit3CreateCommand"
+ containers="//@diagram/@compartments.35 //@diagram/@compartments.51 //@diagram/@compartments.61 //@diagram/@compartments.65 //@diagram/@compartments.71 //@diagram/@compartments.17 //@diagram/@compartments.81">
+ <diagramRunTimeClass
+ href="../../../plugin/org.eclipse.gmf.runtime.notation/model/notation.genmodel#//notation/Node"/>
+ <elementType
+ xsi:type="gmfgen:SpecializationType"
+ metamodelType="//@diagram/@childNodes.7/@elementType"/>
+ <viewmap
+ xsi:type="gmfgen:InnerClassViewmap"
+ className="SingleFeatureUnitFigure"
+ classBody="
/**
 * @generated
 */
public class SingleFeatureUnitFigure extends org.eclipse.draw2d.RoundedRectangle {


	/**
	 * @generated
	 */
	private org.eclipse.gmf.runtime.draw2d.ui.figures.WrappingLabel fFigureSingleFeatureUnitLabelFigure; 


	/**
	 * @generated
	 */
	public SingleFeatureUnitFigure() {
				this.setCornerDimensions(new org.eclipse.draw2d.geometry.Dimension(getMapMode().DPtoLP(8)
, getMapMode().DPtoLP(8)
));
this.setBorder(new org.eclipse.draw2d.MarginBorder(getMapMode().DPtoLP(5)
, getMapMode().DPtoLP(5)
, getMapMode().DPtoLP(5)
, getMapMode().DPtoLP(5)
));
		createContents();
	}
	/**
	 * @generated
	 */
	private void createContents(){


fFigureSingleFeatureUnitLabelFigure = new org.eclipse.gmf.runtime.draw2d.ui.figures.WrappingLabel();
fFigureSingleFeatureUnitLabelFigure.setText("SingleFeatureUnit");

this.add(fFigureSingleFeatureUnitLabelFigure);


	}





	/**
	 * @generated
	 */
	public org.eclipse.gmf.runtime.draw2d.ui.figures.WrappingLabel getFigureSingleFeatureUnitLabelFigure() {
		return fFigureSingleFeatureUnitLabelFigure;
	}


}

"/>
+ <modelFacet>
+ <metaClass
+ href="comrel.genmodel#//comrel/SingleFeatureUnit"/>
+ <containmentMetaFeature
+ href="comrel.genmodel#//comrel/ConditionalUnit/helperUnits"/>
+ <childMetaFeature
+ href="comrel.genmodel#//comrel/ConditionalUnit/helperUnits"/>
+ </modelFacet>
+ <labels
+ visualID="5036"
+ editPartClassName="SingleFeatureUnitNameType3EditPart"
+ itemSemanticEditPolicyClassName="SingleFeatureUnitNameType3ItemSemanticEditPolicy"
+ notationViewFactoryClassName="SingleFeatureUnitNameTypeViewFactory">
+ <diagramRunTimeClass
+ href="../../../plugin/org.eclipse.gmf.runtime.notation/model/notation.genmodel#//notation/Node"/>
+ <viewmap
+ xsi:type="gmfgen:ParentAssignedViewmap"
+ getterName="getFigureSingleFeatureUnitLabelFigure"
+ figureQualifiedClassName="org.eclipse.gmf.runtime.draw2d.ui.figures.WrappingLabel"/>
+ <modelFacet
+ xsi:type="gmfgen:FeatureLabelModelFacet"
+ parser="//@labelParsers/@implementations.0"
+ viewPattern="{0}:{1}"
+ editorPattern="{0}:{1}"
+ editPattern="{0}:{1}">
+ <metaFeatures
+ href="comrel.genmodel#//comrel/NamedElement/name"/>
+ <metaFeatures
+ href="comrel.genmodel#//comrel/SingleFeatureUnit/type"/>
+ </modelFacet>
+ </labels>
+ </childNodes>
+ <childNodes
+ visualID="3051"
+ editPartClassName="MultiFeatureUnit3EditPart"
+ itemSemanticEditPolicyClassName="MultiFeatureUnit3ItemSemanticEditPolicy"
+ notationViewFactoryClassName="MultiFeatureUnitViewFactory"
+ canonicalEditPolicyClassName="MultiFeatureUnit3CanonicalEditPolicy"
+ childNodes="//@diagram/@childNodes.12 //@diagram/@childNodes.13 //@diagram/@childNodes.14"
+ graphicalNodeEditPolicyClassName="MultiFeatureUnit3GraphicalNodeEditPolicy"
+ createCommandClassName="MultiFeatureUnit3CreateCommand"
+ containers="//@diagram/@compartments.35 //@diagram/@compartments.51 //@diagram/@compartments.61 //@diagram/@compartments.65 //@diagram/@compartments.71 //@diagram/@compartments.17 //@diagram/@compartments.81">
+ <diagramRunTimeClass
+ href="../../../plugin/org.eclipse.gmf.runtime.notation/model/notation.genmodel#//notation/Node"/>
+ <elementType
+ xsi:type="gmfgen:SpecializationType"
+ metamodelType="//@diagram/@childNodes.11/@elementType"/>
+ <viewmap
+ xsi:type="gmfgen:InnerClassViewmap"
+ className="MultiFeatureUnitFigure"
+ classBody="
/**
 * @generated
 */
public class MultiFeatureUnitFigure extends org.eclipse.draw2d.RoundedRectangle {


	/**
	 * @generated
	 */
	private org.eclipse.gmf.runtime.draw2d.ui.figures.WrappingLabel fFigureMultiFeatureUnitLabelFigure; 


	/**
	 * @generated
	 */
	public MultiFeatureUnitFigure() {
				this.setCornerDimensions(new org.eclipse.draw2d.geometry.Dimension(getMapMode().DPtoLP(8)
, getMapMode().DPtoLP(8)
));
this.setBorder(new org.eclipse.draw2d.MarginBorder(getMapMode().DPtoLP(5)
, getMapMode().DPtoLP(5)
, getMapMode().DPtoLP(5)
, getMapMode().DPtoLP(5)
));
		createContents();
	}
	/**
	 * @generated
	 */
	private void createContents(){


fFigureMultiFeatureUnitLabelFigure = new org.eclipse.gmf.runtime.draw2d.ui.figures.WrappingLabel();
fFigureMultiFeatureUnitLabelFigure.setText("MultiFeatureUnit");

this.add(fFigureMultiFeatureUnitLabelFigure);


	}





	/**
	 * @generated
	 */
	public org.eclipse.gmf.runtime.draw2d.ui.figures.WrappingLabel getFigureMultiFeatureUnitLabelFigure() {
		return fFigureMultiFeatureUnitLabelFigure;
	}


}

"/>
+ <modelFacet>
+ <metaClass
+ href="comrel.genmodel#//comrel/MultiFeatureUnit"/>
+ <containmentMetaFeature
+ href="comrel.genmodel#//comrel/ConditionalUnit/helperUnits"/>
+ <childMetaFeature
+ href="comrel.genmodel#//comrel/ConditionalUnit/helperUnits"/>
+ </modelFacet>
+ <labels
+ visualID="5037"
+ editPartClassName="MultiFeatureUnitNameType3EditPart"
+ itemSemanticEditPolicyClassName="MultiFeatureUnitNameType3ItemSemanticEditPolicy"
+ notationViewFactoryClassName="MultiFeatureUnitNameTypeViewFactory">
+ <diagramRunTimeClass
+ href="../../../plugin/org.eclipse.gmf.runtime.notation/model/notation.genmodel#//notation/Node"/>
+ <viewmap
+ xsi:type="gmfgen:ParentAssignedViewmap"
+ getterName="getFigureMultiFeatureUnitLabelFigure"
+ figureQualifiedClassName="org.eclipse.gmf.runtime.draw2d.ui.figures.WrappingLabel"/>
+ <modelFacet
+ xsi:type="gmfgen:FeatureLabelModelFacet"
+ parser="//@labelParsers/@implementations.0"
+ viewPattern="{0}:{1}"
+ editorPattern="{0}:{1}"
+ editPattern="{0}:{1}">
+ <metaFeatures
+ href="comrel.genmodel#//comrel/NamedElement/name"/>
+ <metaFeatures
+ href="comrel.genmodel#//comrel/MultiFeatureUnit/type"/>
+ </modelFacet>
+ </labels>
+ </childNodes>
+ <childNodes
+ visualID="3052"
+ editPartClassName="SingleFilterUnit3EditPart"
+ itemSemanticEditPolicyClassName="SingleFilterUnit3ItemSemanticEditPolicy"
+ notationViewFactoryClassName="SingleFilterUnitViewFactory"
+ canonicalEditPolicyClassName="SingleFilterUnit3CanonicalEditPolicy"
+ childNodes="//@diagram/@childNodes.16 //@diagram/@childNodes.17"
+ graphicalNodeEditPolicyClassName="SingleFilterUnit3GraphicalNodeEditPolicy"
+ createCommandClassName="SingleFilterUnit3CreateCommand"
+ containers="//@diagram/@compartments.35 //@diagram/@compartments.51 //@diagram/@compartments.61 //@diagram/@compartments.65 //@diagram/@compartments.71 //@diagram/@compartments.17 //@diagram/@compartments.81">
+ <diagramRunTimeClass
+ href="../../../plugin/org.eclipse.gmf.runtime.notation/model/notation.genmodel#//notation/Node"/>
+ <elementType
+ xsi:type="gmfgen:SpecializationType"
+ metamodelType="//@diagram/@childNodes.15/@elementType"/>
+ <viewmap
+ xsi:type="gmfgen:InnerClassViewmap"
+ className="SingleFilterUnitFigure"
+ classBody="
/**
 * @generated
 */
public class SingleFilterUnitFigure extends org.eclipse.draw2d.RoundedRectangle {


	/**
	 * @generated
	 */
	private org.eclipse.gmf.runtime.draw2d.ui.figures.WrappingLabel fFigureSingleFilterUnitLabelFigure; 


	/**
	 * @generated
	 */
	public SingleFilterUnitFigure() {
				this.setCornerDimensions(new org.eclipse.draw2d.geometry.Dimension(getMapMode().DPtoLP(8)
, getMapMode().DPtoLP(8)
));
this.setBorder(new org.eclipse.draw2d.MarginBorder(getMapMode().DPtoLP(5)
, getMapMode().DPtoLP(5)
, getMapMode().DPtoLP(5)
, getMapMode().DPtoLP(5)
));
		createContents();
	}
	/**
	 * @generated
	 */
	private void createContents(){


fFigureSingleFilterUnitLabelFigure = new org.eclipse.gmf.runtime.draw2d.ui.figures.WrappingLabel();
fFigureSingleFilterUnitLabelFigure.setText("SingleFilterUnit");

this.add(fFigureSingleFilterUnitLabelFigure);


	}





	/**
	 * @generated
	 */
	public org.eclipse.gmf.runtime.draw2d.ui.figures.WrappingLabel getFigureSingleFilterUnitLabelFigure() {
		return fFigureSingleFilterUnitLabelFigure;
	}


}

"/>
+ <modelFacet>
+ <metaClass
+ href="comrel.genmodel#//comrel/SingleFilterUnit"/>
+ <containmentMetaFeature
+ href="comrel.genmodel#//comrel/ConditionalUnit/helperUnits"/>
+ <childMetaFeature
+ href="comrel.genmodel#//comrel/ConditionalUnit/helperUnits"/>
+ </modelFacet>
+ <labels
+ visualID="5038"
+ editPartClassName="SingleFilterUnitNameType3EditPart"
+ itemSemanticEditPolicyClassName="SingleFilterUnitNameType3ItemSemanticEditPolicy"
+ notationViewFactoryClassName="SingleFilterUnitNameTypeViewFactory">
+ <diagramRunTimeClass
+ href="../../../plugin/org.eclipse.gmf.runtime.notation/model/notation.genmodel#//notation/Node"/>
+ <viewmap
+ xsi:type="gmfgen:ParentAssignedViewmap"
+ getterName="getFigureSingleFilterUnitLabelFigure"
+ figureQualifiedClassName="org.eclipse.gmf.runtime.draw2d.ui.figures.WrappingLabel"/>
+ <modelFacet
+ xsi:type="gmfgen:FeatureLabelModelFacet"
+ parser="//@labelParsers/@implementations.0"
+ viewPattern="{0}:{1}"
+ editorPattern="{0}:{1}"
+ editPattern="{0}:{1}">
+ <metaFeatures
+ href="comrel.genmodel#//comrel/NamedElement/name"/>
+ <metaFeatures
+ href="comrel.genmodel#//comrel/SingleFilterUnit/type"/>
+ </modelFacet>
+ </labels>
+ </childNodes>
+ <childNodes
+ visualID="3053"
+ editPartClassName="MultiFilterUnit3EditPart"
+ itemSemanticEditPolicyClassName="MultiFilterUnit3ItemSemanticEditPolicy"
+ notationViewFactoryClassName="MultiFilterUnitViewFactory"
+ canonicalEditPolicyClassName="MultiFilterUnit3CanonicalEditPolicy"
+ childNodes="//@diagram/@childNodes.19 //@diagram/@childNodes.20"
+ graphicalNodeEditPolicyClassName="MultiFilterUnit3GraphicalNodeEditPolicy"
+ createCommandClassName="MultiFilterUnit3CreateCommand"
+ containers="//@diagram/@compartments.35 //@diagram/@compartments.51 //@diagram/@compartments.61 //@diagram/@compartments.65 //@diagram/@compartments.71 //@diagram/@compartments.17 //@diagram/@compartments.81">
+ <diagramRunTimeClass
+ href="../../../plugin/org.eclipse.gmf.runtime.notation/model/notation.genmodel#//notation/Node"/>
+ <elementType
+ xsi:type="gmfgen:SpecializationType"
+ metamodelType="//@diagram/@childNodes.18/@elementType"/>
+ <viewmap
+ xsi:type="gmfgen:InnerClassViewmap"
+ className="MultiFilterUnitFigure"
+ classBody="
/**
 * @generated
 */
public class MultiFilterUnitFigure extends org.eclipse.draw2d.RoundedRectangle {


	/**
	 * @generated
	 */
	private org.eclipse.gmf.runtime.draw2d.ui.figures.WrappingLabel fFigureMultiFilterUnitLabelFigure; 


	/**
	 * @generated
	 */
	public MultiFilterUnitFigure() {
				this.setCornerDimensions(new org.eclipse.draw2d.geometry.Dimension(getMapMode().DPtoLP(8)
, getMapMode().DPtoLP(8)
));
this.setBorder(new org.eclipse.draw2d.MarginBorder(getMapMode().DPtoLP(5)
, getMapMode().DPtoLP(5)
, getMapMode().DPtoLP(5)
, getMapMode().DPtoLP(5)
));
		createContents();
	}
	/**
	 * @generated
	 */
	private void createContents(){


fFigureMultiFilterUnitLabelFigure = new org.eclipse.gmf.runtime.draw2d.ui.figures.WrappingLabel();
fFigureMultiFilterUnitLabelFigure.setText("MultiFilterUnit");

this.add(fFigureMultiFilterUnitLabelFigure);


	}





	/**
	 * @generated
	 */
	public org.eclipse.gmf.runtime.draw2d.ui.figures.WrappingLabel getFigureMultiFilterUnitLabelFigure() {
		return fFigureMultiFilterUnitLabelFigure;
	}


}

"/>
+ <modelFacet>
+ <metaClass
+ href="comrel.genmodel#//comrel/MultiFilterUnit"/>
+ <containmentMetaFeature
+ href="comrel.genmodel#//comrel/ConditionalUnit/helperUnits"/>
+ <childMetaFeature
+ href="comrel.genmodel#//comrel/ConditionalUnit/helperUnits"/>
+ </modelFacet>
+ <labels
+ visualID="5039"
+ editPartClassName="MultiFilterUnitNameType3EditPart"
+ itemSemanticEditPolicyClassName="MultiFilterUnitNameType3ItemSemanticEditPolicy"
+ notationViewFactoryClassName="MultiFilterUnitNameTypeViewFactory">
+ <diagramRunTimeClass
+ href="../../../plugin/org.eclipse.gmf.runtime.notation/model/notation.genmodel#//notation/Node"/>
+ <viewmap
+ xsi:type="gmfgen:ParentAssignedViewmap"
+ getterName="getFigureMultiFilterUnitLabelFigure"
+ figureQualifiedClassName="org.eclipse.gmf.runtime.draw2d.ui.figures.WrappingLabel"/>
+ <modelFacet
+ xsi:type="gmfgen:FeatureLabelModelFacet"
+ parser="//@labelParsers/@implementations.0"
+ viewPattern="{0}:{1}"
+ editorPattern="{0}:{1}"
+ editPattern="{0}:{1}">
+ <metaFeatures
+ href="comrel.genmodel#//comrel/NamedElement/name"/>
+ <metaFeatures
+ href="comrel.genmodel#//comrel/MultiFilterUnit/type"/>
+ </modelFacet>
+ </labels>
+ </childNodes>
+ <childNodes
+ visualID="3054"
+ editPartClassName="SingleQueuedUnit4EditPart"
+ itemSemanticEditPolicyClassName="SingleQueuedUnit4ItemSemanticEditPolicy"
+ notationViewFactoryClassName="SingleQueuedUnitViewFactory"
+ canonicalEditPolicyClassName="SingleQueuedUnit4CanonicalEditPolicy"
+ childNodes="//@diagram/@childNodes.22 //@diagram/@childNodes.23"
+ compartments="//@diagram/@compartments.42 //@diagram/@compartments.43"
+ graphicalNodeEditPolicyClassName="SingleQueuedUnit4GraphicalNodeEditPolicy"
+ createCommandClassName="SingleQueuedUnit4CreateCommand"
+ containers="//@diagram/@compartments.52 //@diagram/@compartments.62 //@diagram/@compartments.66 //@diagram/@compartments.72 //@diagram/@compartments.36 //@diagram/@compartments.18 //@diagram/@compartments.82">
+ <diagramRunTimeClass
+ href="../../../plugin/org.eclipse.gmf.runtime.notation/model/notation.genmodel#//notation/Node"/>
+ <elementType
+ xsi:type="gmfgen:SpecializationType"
+ metamodelType="//@diagram/@childNodes.21/@elementType"/>
+ <viewmap
+ xsi:type="gmfgen:InnerClassViewmap"
+ className="SingleQueuedUnitFigure"
+ classBody="
/**
 * @generated
 */
public class SingleQueuedUnitFigure extends org.eclipse.draw2d.RoundedRectangle {


	/**
	 * @generated
	 */
	private org.eclipse.gmf.runtime.draw2d.ui.figures.WrappingLabel fFigureSingleQueuedUnitLabelFigure; 
	/**
	 * @generated
	 */
	private org.eclipse.draw2d.RectangleFigure fSingleQueuedUnitHelperUnitsCompartmentFigure; 
	/**
	 * @generated
	 */
	private org.eclipse.draw2d.RectangleFigure fSingleQueuedUnitRefactoringUnitCompartmentFigure; 


	/**
	 * @generated
	 */
	public SingleQueuedUnitFigure() {
				this.setCornerDimensions(new org.eclipse.draw2d.geometry.Dimension(getMapMode().DPtoLP(8)
, getMapMode().DPtoLP(8)
));
this.setBorder(new org.eclipse.draw2d.MarginBorder(getMapMode().DPtoLP(5)
, getMapMode().DPtoLP(5)
, getMapMode().DPtoLP(5)
, getMapMode().DPtoLP(5)
));
		createContents();
	}
	/**
	 * @generated
	 */
	private void createContents(){


fFigureSingleQueuedUnitLabelFigure = new org.eclipse.gmf.runtime.draw2d.ui.figures.WrappingLabel();
fFigureSingleQueuedUnitLabelFigure.setText("SingleQueuedUnit");
fFigureSingleQueuedUnitLabelFigure.setMaximumSize(new org.eclipse.draw2d.geometry.Dimension(getMapMode().DPtoLP(10000)
, getMapMode().DPtoLP(50)
));

this.add(fFigureSingleQueuedUnitLabelFigure);



fSingleQueuedUnitHelperUnitsCompartmentFigure = new org.eclipse.draw2d.RectangleFigure();
fSingleQueuedUnitHelperUnitsCompartmentFigure.setOutline(false);

this.add(fSingleQueuedUnitHelperUnitsCompartmentFigure);



fSingleQueuedUnitRefactoringUnitCompartmentFigure = new org.eclipse.draw2d.RectangleFigure();
fSingleQueuedUnitRefactoringUnitCompartmentFigure.setOutline(false);

this.add(fSingleQueuedUnitRefactoringUnitCompartmentFigure);


	}





	/**
	 * @generated
	 */
	public org.eclipse.gmf.runtime.draw2d.ui.figures.WrappingLabel getFigureSingleQueuedUnitLabelFigure() {
		return fFigureSingleQueuedUnitLabelFigure;
	}
	/**
	 * @generated
	 */
	public org.eclipse.draw2d.RectangleFigure getSingleQueuedUnitHelperUnitsCompartmentFigure() {
		return fSingleQueuedUnitHelperUnitsCompartmentFigure;
	}
	/**
	 * @generated
	 */
	public org.eclipse.draw2d.RectangleFigure getSingleQueuedUnitRefactoringUnitCompartmentFigure() {
		return fSingleQueuedUnitRefactoringUnitCompartmentFigure;
	}


}

"/>
+ <behaviour
+ xsi:type="gmfgen:OpenDiagramBehaviour"/>
+ <modelFacet>
+ <metaClass
+ href="comrel.genmodel#//comrel/SingleQueuedUnit"/>
+ <containmentMetaFeature
+ href="comrel.genmodel#//comrel/ConditionalUnit/then"/>
+ <childMetaFeature
+ href="comrel.genmodel#//comrel/ConditionalUnit/then"/>
+ </modelFacet>
+ <labels
+ visualID="5064"
+ editPartClassName="SingleQueuedUnitNameTypeLblStrict4EditPart"
+ itemSemanticEditPolicyClassName="SingleQueuedUnitNameTypeLblStrict4ItemSemanticEditPolicy"
+ notationViewFactoryClassName="SingleQueuedUnitNameTypeLblStrictViewFactory">
+ <diagramRunTimeClass
+ href="../../../plugin/org.eclipse.gmf.runtime.notation/model/notation.genmodel#//notation/Node"/>
+ <viewmap
+ xsi:type="gmfgen:ParentAssignedViewmap"
+ getterName="getFigureSingleQueuedUnitLabelFigure"
+ figureQualifiedClassName="org.eclipse.gmf.runtime.draw2d.ui.figures.WrappingLabel"/>
+ <modelFacet
+ xsi:type="gmfgen:FeatureLabelModelFacet"
+ parser="//@labelParsers/@implementations.0"
+ viewPattern="{0}:{1} -{2}-"
+ editorPattern="{0}:{1} -{2}-"
+ editPattern="{0}:{1} -{2}-">
+ <metaFeatures
+ href="comrel.genmodel#//comrel/NamedElement/name"/>
+ <metaFeatures
+ href="comrel.genmodel#//comrel/SingleQueuedUnit/type"/>
+ <metaFeatures
+ href="comrel.genmodel#//comrel/SingleQueuedUnit/lblStrict"/>
+ </modelFacet>
+ </labels>
+ </childNodes>
+ <childNodes
+ visualID="3055"
+ editPartClassName="SingleFeatureUnit4EditPart"
+ itemSemanticEditPolicyClassName="SingleFeatureUnit4ItemSemanticEditPolicy"
+ notationViewFactoryClassName="SingleFeatureUnitViewFactory"
+ canonicalEditPolicyClassName="SingleFeatureUnit4CanonicalEditPolicy"
+ childNodes="//@diagram/@childNodes.8 //@diagram/@childNodes.9 //@diagram/@childNodes.10"
+ graphicalNodeEditPolicyClassName="SingleFeatureUnit4GraphicalNodeEditPolicy"
+ createCommandClassName="SingleFeatureUnit4CreateCommand"
+ containers="//@diagram/@compartments.42 //@diagram/@compartments.44 //@diagram/@compartments.48 //@diagram/@compartments.54 //@diagram/@compartments.26 //@diagram/@compartments.8 //@diagram/@compartments.76">
+ <diagramRunTimeClass
+ href="../../../plugin/org.eclipse.gmf.runtime.notation/model/notation.genmodel#//notation/Node"/>
+ <elementType
+ xsi:type="gmfgen:SpecializationType"
+ metamodelType="//@diagram/@childNodes.7/@elementType"/>
+ <viewmap
+ xsi:type="gmfgen:InnerClassViewmap"
+ className="SingleFeatureUnitFigure"
+ classBody="
/**
 * @generated
 */
public class SingleFeatureUnitFigure extends org.eclipse.draw2d.RoundedRectangle {


	/**
	 * @generated
	 */
	private org.eclipse.gmf.runtime.draw2d.ui.figures.WrappingLabel fFigureSingleFeatureUnitLabelFigure; 


	/**
	 * @generated
	 */
	public SingleFeatureUnitFigure() {
				this.setCornerDimensions(new org.eclipse.draw2d.geometry.Dimension(getMapMode().DPtoLP(8)
, getMapMode().DPtoLP(8)
));
this.setBorder(new org.eclipse.draw2d.MarginBorder(getMapMode().DPtoLP(5)
, getMapMode().DPtoLP(5)
, getMapMode().DPtoLP(5)
, getMapMode().DPtoLP(5)
));
		createContents();
	}
	/**
	 * @generated
	 */
	private void createContents(){


fFigureSingleFeatureUnitLabelFigure = new org.eclipse.gmf.runtime.draw2d.ui.figures.WrappingLabel();
fFigureSingleFeatureUnitLabelFigure.setText("SingleFeatureUnit");

this.add(fFigureSingleFeatureUnitLabelFigure);


	}





	/**
	 * @generated
	 */
	public org.eclipse.gmf.runtime.draw2d.ui.figures.WrappingLabel getFigureSingleFeatureUnitLabelFigure() {
		return fFigureSingleFeatureUnitLabelFigure;
	}


}

"/>
+ <modelFacet>
+ <metaClass
+ href="comrel.genmodel#//comrel/SingleFeatureUnit"/>
+ <containmentMetaFeature
+ href="comrel.genmodel#//comrel/SingleQueuedUnit/helperUnits"/>
+ <childMetaFeature
+ href="comrel.genmodel#//comrel/SingleQueuedUnit/helperUnits"/>
+ </modelFacet>
+ <labels
+ visualID="5040"
+ editPartClassName="SingleFeatureUnitNameType4EditPart"
+ itemSemanticEditPolicyClassName="SingleFeatureUnitNameType4ItemSemanticEditPolicy"
+ notationViewFactoryClassName="SingleFeatureUnitNameTypeViewFactory">
+ <diagramRunTimeClass
+ href="../../../plugin/org.eclipse.gmf.runtime.notation/model/notation.genmodel#//notation/Node"/>
+ <viewmap
+ xsi:type="gmfgen:ParentAssignedViewmap"
+ getterName="getFigureSingleFeatureUnitLabelFigure"
+ figureQualifiedClassName="org.eclipse.gmf.runtime.draw2d.ui.figures.WrappingLabel"/>
+ <modelFacet
+ xsi:type="gmfgen:FeatureLabelModelFacet"
+ parser="//@labelParsers/@implementations.0"
+ viewPattern="{0}:{1}"
+ editorPattern="{0}:{1}"
+ editPattern="{0}:{1}">
+ <metaFeatures
+ href="comrel.genmodel#//comrel/NamedElement/name"/>
+ <metaFeatures
+ href="comrel.genmodel#//comrel/SingleFeatureUnit/type"/>
+ </modelFacet>
+ </labels>
+ </childNodes>
+ <childNodes
+ visualID="3056"
+ editPartClassName="MultiFeatureUnit4EditPart"
+ itemSemanticEditPolicyClassName="MultiFeatureUnit4ItemSemanticEditPolicy"
+ notationViewFactoryClassName="MultiFeatureUnitViewFactory"
+ canonicalEditPolicyClassName="MultiFeatureUnit4CanonicalEditPolicy"
+ childNodes="//@diagram/@childNodes.12 //@diagram/@childNodes.13 //@diagram/@childNodes.14"
+ graphicalNodeEditPolicyClassName="MultiFeatureUnit4GraphicalNodeEditPolicy"
+ createCommandClassName="MultiFeatureUnit4CreateCommand"
+ containers="//@diagram/@compartments.42 //@diagram/@compartments.44 //@diagram/@compartments.48 //@diagram/@compartments.54 //@diagram/@compartments.26 //@diagram/@compartments.8 //@diagram/@compartments.76">
+ <diagramRunTimeClass
+ href="../../../plugin/org.eclipse.gmf.runtime.notation/model/notation.genmodel#//notation/Node"/>
+ <elementType
+ xsi:type="gmfgen:SpecializationType"
+ metamodelType="//@diagram/@childNodes.11/@elementType"/>
+ <viewmap
+ xsi:type="gmfgen:InnerClassViewmap"
+ className="MultiFeatureUnitFigure"
+ classBody="
/**
 * @generated
 */
public class MultiFeatureUnitFigure extends org.eclipse.draw2d.RoundedRectangle {


	/**
	 * @generated
	 */
	private org.eclipse.gmf.runtime.draw2d.ui.figures.WrappingLabel fFigureMultiFeatureUnitLabelFigure; 


	/**
	 * @generated
	 */
	public MultiFeatureUnitFigure() {
				this.setCornerDimensions(new org.eclipse.draw2d.geometry.Dimension(getMapMode().DPtoLP(8)
, getMapMode().DPtoLP(8)
));
this.setBorder(new org.eclipse.draw2d.MarginBorder(getMapMode().DPtoLP(5)
, getMapMode().DPtoLP(5)
, getMapMode().DPtoLP(5)
, getMapMode().DPtoLP(5)
));
		createContents();
	}
	/**
	 * @generated
	 */
	private void createContents(){


fFigureMultiFeatureUnitLabelFigure = new org.eclipse.gmf.runtime.draw2d.ui.figures.WrappingLabel();
fFigureMultiFeatureUnitLabelFigure.setText("MultiFeatureUnit");

this.add(fFigureMultiFeatureUnitLabelFigure);


	}





	/**
	 * @generated
	 */
	public org.eclipse.gmf.runtime.draw2d.ui.figures.WrappingLabel getFigureMultiFeatureUnitLabelFigure() {
		return fFigureMultiFeatureUnitLabelFigure;
	}


}

"/>
+ <modelFacet>
+ <metaClass
+ href="comrel.genmodel#//comrel/MultiFeatureUnit"/>
+ <containmentMetaFeature
+ href="comrel.genmodel#//comrel/SingleQueuedUnit/helperUnits"/>
+ <childMetaFeature
+ href="comrel.genmodel#//comrel/SingleQueuedUnit/helperUnits"/>
+ </modelFacet>
+ <labels
+ visualID="5041"
+ editPartClassName="MultiFeatureUnitNameType4EditPart"
+ itemSemanticEditPolicyClassName="MultiFeatureUnitNameType4ItemSemanticEditPolicy"
+ notationViewFactoryClassName="MultiFeatureUnitNameTypeViewFactory">
+ <diagramRunTimeClass
+ href="../../../plugin/org.eclipse.gmf.runtime.notation/model/notation.genmodel#//notation/Node"/>
+ <viewmap
+ xsi:type="gmfgen:ParentAssignedViewmap"
+ getterName="getFigureMultiFeatureUnitLabelFigure"
+ figureQualifiedClassName="org.eclipse.gmf.runtime.draw2d.ui.figures.WrappingLabel"/>
+ <modelFacet
+ xsi:type="gmfgen:FeatureLabelModelFacet"
+ parser="//@labelParsers/@implementations.0"
+ viewPattern="{0}:{1}"
+ editorPattern="{0}:{1}"
+ editPattern="{0}:{1}">
+ <metaFeatures
+ href="comrel.genmodel#//comrel/NamedElement/name"/>
+ <metaFeatures
+ href="comrel.genmodel#//comrel/MultiFeatureUnit/type"/>
+ </modelFacet>
+ </labels>
+ </childNodes>
+ <childNodes
+ visualID="3057"
+ editPartClassName="SingleFilterUnit4EditPart"
+ itemSemanticEditPolicyClassName="SingleFilterUnit4ItemSemanticEditPolicy"
+ notationViewFactoryClassName="SingleFilterUnitViewFactory"
+ canonicalEditPolicyClassName="SingleFilterUnit4CanonicalEditPolicy"
+ childNodes="//@diagram/@childNodes.16 //@diagram/@childNodes.17"
+ graphicalNodeEditPolicyClassName="SingleFilterUnit4GraphicalNodeEditPolicy"
+ createCommandClassName="SingleFilterUnit4CreateCommand"
+ containers="//@diagram/@compartments.42 //@diagram/@compartments.44 //@diagram/@compartments.48 //@diagram/@compartments.54 //@diagram/@compartments.26 //@diagram/@compartments.8 //@diagram/@compartments.76">
+ <diagramRunTimeClass
+ href="../../../plugin/org.eclipse.gmf.runtime.notation/model/notation.genmodel#//notation/Node"/>
+ <elementType
+ xsi:type="gmfgen:SpecializationType"
+ metamodelType="//@diagram/@childNodes.15/@elementType"/>
+ <viewmap
+ xsi:type="gmfgen:InnerClassViewmap"
+ className="SingleFilterUnitFigure"
+ classBody="
/**
 * @generated
 */
public class SingleFilterUnitFigure extends org.eclipse.draw2d.RoundedRectangle {


	/**
	 * @generated
	 */
	private org.eclipse.gmf.runtime.draw2d.ui.figures.WrappingLabel fFigureSingleFilterUnitLabelFigure; 


	/**
	 * @generated
	 */
	public SingleFilterUnitFigure() {
				this.setCornerDimensions(new org.eclipse.draw2d.geometry.Dimension(getMapMode().DPtoLP(8)
, getMapMode().DPtoLP(8)
));
this.setBorder(new org.eclipse.draw2d.MarginBorder(getMapMode().DPtoLP(5)
, getMapMode().DPtoLP(5)
, getMapMode().DPtoLP(5)
, getMapMode().DPtoLP(5)
));
		createContents();
	}
	/**
	 * @generated
	 */
	private void createContents(){


fFigureSingleFilterUnitLabelFigure = new org.eclipse.gmf.runtime.draw2d.ui.figures.WrappingLabel();
fFigureSingleFilterUnitLabelFigure.setText("SingleFilterUnit");

this.add(fFigureSingleFilterUnitLabelFigure);


	}





	/**
	 * @generated
	 */
	public org.eclipse.gmf.runtime.draw2d.ui.figures.WrappingLabel getFigureSingleFilterUnitLabelFigure() {
		return fFigureSingleFilterUnitLabelFigure;
	}


}

"/>
+ <modelFacet>
+ <metaClass
+ href="comrel.genmodel#//comrel/SingleFilterUnit"/>
+ <containmentMetaFeature
+ href="comrel.genmodel#//comrel/SingleQueuedUnit/helperUnits"/>
+ <childMetaFeature
+ href="comrel.genmodel#//comrel/SingleQueuedUnit/helperUnits"/>
+ </modelFacet>
+ <labels
+ visualID="5042"
+ editPartClassName="SingleFilterUnitNameType4EditPart"
+ itemSemanticEditPolicyClassName="SingleFilterUnitNameType4ItemSemanticEditPolicy"
+ notationViewFactoryClassName="SingleFilterUnitNameTypeViewFactory">
+ <diagramRunTimeClass
+ href="../../../plugin/org.eclipse.gmf.runtime.notation/model/notation.genmodel#//notation/Node"/>
+ <viewmap
+ xsi:type="gmfgen:ParentAssignedViewmap"
+ getterName="getFigureSingleFilterUnitLabelFigure"
+ figureQualifiedClassName="org.eclipse.gmf.runtime.draw2d.ui.figures.WrappingLabel"/>
+ <modelFacet
+ xsi:type="gmfgen:FeatureLabelModelFacet"
+ parser="//@labelParsers/@implementations.0"
+ viewPattern="{0}:{1}"
+ editorPattern="{0}:{1}"
+ editPattern="{0}:{1}">
+ <metaFeatures
+ href="comrel.genmodel#//comrel/NamedElement/name"/>
+ <metaFeatures
+ href="comrel.genmodel#//comrel/SingleFilterUnit/type"/>
+ </modelFacet>
+ </labels>
+ </childNodes>
+ <childNodes
+ visualID="3058"
+ editPartClassName="MultiFilterUnit4EditPart"
+ itemSemanticEditPolicyClassName="MultiFilterUnit4ItemSemanticEditPolicy"
+ notationViewFactoryClassName="MultiFilterUnitViewFactory"
+ canonicalEditPolicyClassName="MultiFilterUnit4CanonicalEditPolicy"
+ childNodes="//@diagram/@childNodes.19 //@diagram/@childNodes.20"
+ graphicalNodeEditPolicyClassName="MultiFilterUnit4GraphicalNodeEditPolicy"
+ createCommandClassName="MultiFilterUnit4CreateCommand"
+ containers="//@diagram/@compartments.42 //@diagram/@compartments.44 //@diagram/@compartments.48 //@diagram/@compartments.54 //@diagram/@compartments.26 //@diagram/@compartments.8 //@diagram/@compartments.76">
+ <diagramRunTimeClass
+ href="../../../plugin/org.eclipse.gmf.runtime.notation/model/notation.genmodel#//notation/Node"/>
+ <elementType
+ xsi:type="gmfgen:SpecializationType"
+ metamodelType="//@diagram/@childNodes.18/@elementType"/>
+ <viewmap
+ xsi:type="gmfgen:InnerClassViewmap"
+ className="MultiFilterUnitFigure"
+ classBody="
/**
 * @generated
 */
public class MultiFilterUnitFigure extends org.eclipse.draw2d.RoundedRectangle {


	/**
	 * @generated
	 */
	private org.eclipse.gmf.runtime.draw2d.ui.figures.WrappingLabel fFigureMultiFilterUnitLabelFigure; 


	/**
	 * @generated
	 */
	public MultiFilterUnitFigure() {
				this.setCornerDimensions(new org.eclipse.draw2d.geometry.Dimension(getMapMode().DPtoLP(8)
, getMapMode().DPtoLP(8)
));
this.setBorder(new org.eclipse.draw2d.MarginBorder(getMapMode().DPtoLP(5)
, getMapMode().DPtoLP(5)
, getMapMode().DPtoLP(5)
, getMapMode().DPtoLP(5)
));
		createContents();
	}
	/**
	 * @generated
	 */
	private void createContents(){


fFigureMultiFilterUnitLabelFigure = new org.eclipse.gmf.runtime.draw2d.ui.figures.WrappingLabel();
fFigureMultiFilterUnitLabelFigure.setText("MultiFilterUnit");

this.add(fFigureMultiFilterUnitLabelFigure);


	}





	/**
	 * @generated
	 */
	public org.eclipse.gmf.runtime.draw2d.ui.figures.WrappingLabel getFigureMultiFilterUnitLabelFigure() {
		return fFigureMultiFilterUnitLabelFigure;
	}


}

"/>
+ <modelFacet>
+ <metaClass
+ href="comrel.genmodel#//comrel/MultiFilterUnit"/>
+ <containmentMetaFeature
+ href="comrel.genmodel#//comrel/SingleQueuedUnit/helperUnits"/>
+ <childMetaFeature
+ href="comrel.genmodel#//comrel/SingleQueuedUnit/helperUnits"/>
+ </modelFacet>
+ <labels
+ visualID="5043"
+ editPartClassName="MultiFilterUnitNameType4EditPart"
+ itemSemanticEditPolicyClassName="MultiFilterUnitNameType4ItemSemanticEditPolicy"
+ notationViewFactoryClassName="MultiFilterUnitNameTypeViewFactory">
+ <diagramRunTimeClass
+ href="../../../plugin/org.eclipse.gmf.runtime.notation/model/notation.genmodel#//notation/Node"/>
+ <viewmap
+ xsi:type="gmfgen:ParentAssignedViewmap"
+ getterName="getFigureMultiFilterUnitLabelFigure"
+ figureQualifiedClassName="org.eclipse.gmf.runtime.draw2d.ui.figures.WrappingLabel"/>
+ <modelFacet
+ xsi:type="gmfgen:FeatureLabelModelFacet"
+ parser="//@labelParsers/@implementations.0"
+ viewPattern="{0}:{1}"
+ editorPattern="{0}:{1}"
+ editPattern="{0}:{1}">
+ <metaFeatures
+ href="comrel.genmodel#//comrel/NamedElement/name"/>
+ <metaFeatures
+ href="comrel.genmodel#//comrel/MultiFilterUnit/type"/>
+ </modelFacet>
+ </labels>
+ </childNodes>
+ <childNodes
+ visualID="3059"
+ editPartClassName="SingleQueuedUnit5EditPart"
+ itemSemanticEditPolicyClassName="SingleQueuedUnit5ItemSemanticEditPolicy"
+ notationViewFactoryClassName="SingleQueuedUnitViewFactory"
+ canonicalEditPolicyClassName="SingleQueuedUnit5CanonicalEditPolicy"
+ childNodes="//@diagram/@childNodes.22 //@diagram/@childNodes.23"
+ compartments="//@diagram/@compartments.44 //@diagram/@compartments.45"
+ graphicalNodeEditPolicyClassName="SingleQueuedUnit5GraphicalNodeEditPolicy"
+ createCommandClassName="SingleQueuedUnit5CreateCommand"
+ containers="//@diagram/@compartments.45 //@diagram/@compartments.49 //@diagram/@compartments.55 //@diagram/@compartments.43 //@diagram/@compartments.27 //@diagram/@compartments.9 //@diagram/@compartments.77">
+ <diagramRunTimeClass
+ href="../../../plugin/org.eclipse.gmf.runtime.notation/model/notation.genmodel#//notation/Node"/>
+ <elementType
+ xsi:type="gmfgen:SpecializationType"
+ metamodelType="//@diagram/@childNodes.21/@elementType"/>
+ <viewmap
+ xsi:type="gmfgen:InnerClassViewmap"
+ className="SingleQueuedUnitFigure"
+ classBody="
/**
 * @generated
 */
public class SingleQueuedUnitFigure extends org.eclipse.draw2d.RoundedRectangle {


	/**
	 * @generated
	 */
	private org.eclipse.gmf.runtime.draw2d.ui.figures.WrappingLabel fFigureSingleQueuedUnitLabelFigure; 
	/**
	 * @generated
	 */
	private org.eclipse.draw2d.RectangleFigure fSingleQueuedUnitHelperUnitsCompartmentFigure; 
	/**
	 * @generated
	 */
	private org.eclipse.draw2d.RectangleFigure fSingleQueuedUnitRefactoringUnitCompartmentFigure; 


	/**
	 * @generated
	 */
	public SingleQueuedUnitFigure() {
				this.setCornerDimensions(new org.eclipse.draw2d.geometry.Dimension(getMapMode().DPtoLP(8)
, getMapMode().DPtoLP(8)
));
this.setBorder(new org.eclipse.draw2d.MarginBorder(getMapMode().DPtoLP(5)
, getMapMode().DPtoLP(5)
, getMapMode().DPtoLP(5)
, getMapMode().DPtoLP(5)
));
		createContents();
	}
	/**
	 * @generated
	 */
	private void createContents(){


fFigureSingleQueuedUnitLabelFigure = new org.eclipse.gmf.runtime.draw2d.ui.figures.WrappingLabel();
fFigureSingleQueuedUnitLabelFigure.setText("SingleQueuedUnit");
fFigureSingleQueuedUnitLabelFigure.setMaximumSize(new org.eclipse.draw2d.geometry.Dimension(getMapMode().DPtoLP(10000)
, getMapMode().DPtoLP(50)
));

this.add(fFigureSingleQueuedUnitLabelFigure);



fSingleQueuedUnitHelperUnitsCompartmentFigure = new org.eclipse.draw2d.RectangleFigure();
fSingleQueuedUnitHelperUnitsCompartmentFigure.setOutline(false);

this.add(fSingleQueuedUnitHelperUnitsCompartmentFigure);



fSingleQueuedUnitRefactoringUnitCompartmentFigure = new org.eclipse.draw2d.RectangleFigure();
fSingleQueuedUnitRefactoringUnitCompartmentFigure.setOutline(false);

this.add(fSingleQueuedUnitRefactoringUnitCompartmentFigure);


	}





	/**
	 * @generated
	 */
	public org.eclipse.gmf.runtime.draw2d.ui.figures.WrappingLabel getFigureSingleQueuedUnitLabelFigure() {
		return fFigureSingleQueuedUnitLabelFigure;
	}
	/**
	 * @generated
	 */
	public org.eclipse.draw2d.RectangleFigure getSingleQueuedUnitHelperUnitsCompartmentFigure() {
		return fSingleQueuedUnitHelperUnitsCompartmentFigure;
	}
	/**
	 * @generated
	 */
	public org.eclipse.draw2d.RectangleFigure getSingleQueuedUnitRefactoringUnitCompartmentFigure() {
		return fSingleQueuedUnitRefactoringUnitCompartmentFigure;
	}


}

"/>
+ <behaviour
+ xsi:type="gmfgen:OpenDiagramBehaviour"/>
+ <modelFacet>
+ <metaClass
+ href="comrel.genmodel#//comrel/SingleQueuedUnit"/>
+ <containmentMetaFeature
+ href="comrel.genmodel#//comrel/SingleQueuedUnit/refactoringUnit"/>
+ <childMetaFeature
+ href="comrel.genmodel#//comrel/SingleQueuedUnit/refactoringUnit"/>
+ </modelFacet>
+ <labels
+ visualID="5063"
+ editPartClassName="SingleQueuedUnitNameTypeLblStrict5EditPart"
+ itemSemanticEditPolicyClassName="SingleQueuedUnitNameTypeLblStrict5ItemSemanticEditPolicy"
+ notationViewFactoryClassName="SingleQueuedUnitNameTypeLblStrictViewFactory">
+ <diagramRunTimeClass
+ href="../../../plugin/org.eclipse.gmf.runtime.notation/model/notation.genmodel#//notation/Node"/>
+ <viewmap
+ xsi:type="gmfgen:ParentAssignedViewmap"
+ getterName="getFigureSingleQueuedUnitLabelFigure"
+ figureQualifiedClassName="org.eclipse.gmf.runtime.draw2d.ui.figures.WrappingLabel"/>
+ <modelFacet
+ xsi:type="gmfgen:FeatureLabelModelFacet"
+ parser="//@labelParsers/@implementations.0"
+ viewPattern="{0}:{1} -{2}-"
+ editorPattern="{0}:{1} -{2}-"
+ editPattern="{0}:{1} -{2}-">
+ <metaFeatures
+ href="comrel.genmodel#//comrel/NamedElement/name"/>
+ <metaFeatures
+ href="comrel.genmodel#//comrel/SingleQueuedUnit/type"/>
+ <metaFeatures
+ href="comrel.genmodel#//comrel/SingleQueuedUnit/lblStrict"/>
+ </modelFacet>
+ </labels>
+ </childNodes>
+ <childNodes
+ visualID="3060"
+ editPartClassName="SequentialUnit4EditPart"
+ itemSemanticEditPolicyClassName="SequentialUnit4ItemSemanticEditPolicy"
+ notationViewFactoryClassName="SequentialUnitViewFactory"
+ canonicalEditPolicyClassName="SequentialUnit4CanonicalEditPolicy"
+ childNodes="//@diagram/@childNodes.26 //@diagram/@childNodes.27"
+ compartments="//@diagram/@compartments.46 //@diagram/@compartments.47"
+ graphicalNodeEditPolicyClassName="SequentialUnit4GraphicalNodeEditPolicy"
+ createCommandClassName="SequentialUnit4CreateCommand"
+ containers="//@diagram/@compartments.49 //@diagram/@compartments.55 //@diagram/@compartments.45 //@diagram/@compartments.43 //@diagram/@compartments.27 //@diagram/@compartments.9 //@diagram/@compartments.77">
+ <diagramRunTimeClass
+ href="../../../plugin/org.eclipse.gmf.runtime.notation/model/notation.genmodel#//notation/Node"/>
+ <elementType
+ xsi:type="gmfgen:SpecializationType"
+ metamodelType="//@diagram/@childNodes.25/@elementType"/>
+ <viewmap
+ xsi:type="gmfgen:InnerClassViewmap"
+ className="SequentialUnitFigure"
+ classBody="
/**
 * @generated
 */
public class SequentialUnitFigure extends org.eclipse.draw2d.RoundedRectangle {


	/**
	 * @generated
	 */
	private org.eclipse.gmf.runtime.draw2d.ui.figures.WrappingLabel fFigureSequentialUnitLabelFigure; 
	/**
	 * @generated
	 */
	private org.eclipse.draw2d.RectangleFigure fSequentialUnitHelperUnitsCompartmentFigure; 
	/**
	 * @generated
	 */
	private org.eclipse.draw2d.RectangleFigure fSequentialUnitRefactoringUnitsCompartmentFigure; 


	/**
	 * @generated
	 */
	public SequentialUnitFigure() {
				this.setCornerDimensions(new org.eclipse.draw2d.geometry.Dimension(getMapMode().DPtoLP(8)
, getMapMode().DPtoLP(8)
));
this.setBorder(new org.eclipse.draw2d.MarginBorder(getMapMode().DPtoLP(5)
, getMapMode().DPtoLP(5)
, getMapMode().DPtoLP(5)
, getMapMode().DPtoLP(5)
));
		createContents();
	}
	/**
	 * @generated
	 */
	private void createContents(){


fFigureSequentialUnitLabelFigure = new org.eclipse.gmf.runtime.draw2d.ui.figures.WrappingLabel();
fFigureSequentialUnitLabelFigure.setText("SequentialUnit");
fFigureSequentialUnitLabelFigure.setMaximumSize(new org.eclipse.draw2d.geometry.Dimension(getMapMode().DPtoLP(10000)
, getMapMode().DPtoLP(50)
));

this.add(fFigureSequentialUnitLabelFigure);



fSequentialUnitHelperUnitsCompartmentFigure = new org.eclipse.draw2d.RectangleFigure();
fSequentialUnitHelperUnitsCompartmentFigure.setOutline(false);

this.add(fSequentialUnitHelperUnitsCompartmentFigure);



fSequentialUnitRefactoringUnitsCompartmentFigure = new org.eclipse.draw2d.RectangleFigure();
fSequentialUnitRefactoringUnitsCompartmentFigure.setOutline(false);

this.add(fSequentialUnitRefactoringUnitsCompartmentFigure);


	}





	/**
	 * @generated
	 */
	public org.eclipse.gmf.runtime.draw2d.ui.figures.WrappingLabel getFigureSequentialUnitLabelFigure() {
		return fFigureSequentialUnitLabelFigure;
	}
	/**
	 * @generated
	 */
	public org.eclipse.draw2d.RectangleFigure getSequentialUnitHelperUnitsCompartmentFigure() {
		return fSequentialUnitHelperUnitsCompartmentFigure;
	}
	/**
	 * @generated
	 */
	public org.eclipse.draw2d.RectangleFigure getSequentialUnitRefactoringUnitsCompartmentFigure() {
		return fSequentialUnitRefactoringUnitsCompartmentFigure;
	}


}

"/>
+ <behaviour
+ xsi:type="gmfgen:OpenDiagramBehaviour"/>
+ <modelFacet>
+ <metaClass
+ href="comrel.genmodel#//comrel/SequentialUnit"/>
+ <containmentMetaFeature
+ href="comrel.genmodel#//comrel/SingleQueuedUnit/refactoringUnit"/>
+ <childMetaFeature
+ href="comrel.genmodel#//comrel/SingleQueuedUnit/refactoringUnit"/>
+ </modelFacet>
+ <labels
+ visualID="5062"
+ editPartClassName="SequentialUnitNameTypeLblStrict4EditPart"
+ itemSemanticEditPolicyClassName="SequentialUnitNameTypeLblStrict4ItemSemanticEditPolicy"
+ notationViewFactoryClassName="SequentialUnitNameTypeLblStrictViewFactory">
+ <diagramRunTimeClass
+ href="../../../plugin/org.eclipse.gmf.runtime.notation/model/notation.genmodel#//notation/Node"/>
+ <viewmap
+ xsi:type="gmfgen:ParentAssignedViewmap"
+ getterName="getFigureSequentialUnitLabelFigure"
+ figureQualifiedClassName="org.eclipse.gmf.runtime.draw2d.ui.figures.WrappingLabel"/>
+ <modelFacet
+ xsi:type="gmfgen:FeatureLabelModelFacet"
+ parser="//@labelParsers/@implementations.0"
+ viewPattern="{0}:{1} -{2}-"
+ editorPattern="{0}:{1} -{2}-"
+ editPattern="{0}:{1} -{2}-">
+ <metaFeatures
+ href="comrel.genmodel#//comrel/NamedElement/name"/>
+ <metaFeatures
+ href="comrel.genmodel#//comrel/SequentialUnit/type"/>
+ <metaFeatures
+ href="comrel.genmodel#//comrel/SequentialUnit/lblStrict"/>
+ </modelFacet>
+ </labels>
+ </childNodes>
+ <childNodes
+ visualID="3061"
+ editPartClassName="SingleFeatureUnit5EditPart"
+ itemSemanticEditPolicyClassName="SingleFeatureUnit5ItemSemanticEditPolicy"
+ notationViewFactoryClassName="SingleFeatureUnitViewFactory"
+ canonicalEditPolicyClassName="SingleFeatureUnit5CanonicalEditPolicy"
+ childNodes="//@diagram/@childNodes.8 //@diagram/@childNodes.9 //@diagram/@childNodes.10"
+ graphicalNodeEditPolicyClassName="SingleFeatureUnit5GraphicalNodeEditPolicy"
+ createCommandClassName="SingleFeatureUnit5CreateCommand"
+ containers="//@diagram/@compartments.46 //@diagram/@compartments.56 //@diagram/@compartments.58 //@diagram/@compartments.68 //@diagram/@compartments.30 //@diagram/@compartments.12 //@diagram/@compartments.78">
+ <diagramRunTimeClass
+ href="../../../plugin/org.eclipse.gmf.runtime.notation/model/notation.genmodel#//notation/Node"/>
+ <elementType
+ xsi:type="gmfgen:SpecializationType"
+ metamodelType="//@diagram/@childNodes.7/@elementType"/>
+ <viewmap
+ xsi:type="gmfgen:InnerClassViewmap"
+ className="SingleFeatureUnitFigure"
+ classBody="
/**
 * @generated
 */
public class SingleFeatureUnitFigure extends org.eclipse.draw2d.RoundedRectangle {


	/**
	 * @generated
	 */
	private org.eclipse.gmf.runtime.draw2d.ui.figures.WrappingLabel fFigureSingleFeatureUnitLabelFigure; 


	/**
	 * @generated
	 */
	public SingleFeatureUnitFigure() {
				this.setCornerDimensions(new org.eclipse.draw2d.geometry.Dimension(getMapMode().DPtoLP(8)
, getMapMode().DPtoLP(8)
));
this.setBorder(new org.eclipse.draw2d.MarginBorder(getMapMode().DPtoLP(5)
, getMapMode().DPtoLP(5)
, getMapMode().DPtoLP(5)
, getMapMode().DPtoLP(5)
));
		createContents();
	}
	/**
	 * @generated
	 */
	private void createContents(){


fFigureSingleFeatureUnitLabelFigure = new org.eclipse.gmf.runtime.draw2d.ui.figures.WrappingLabel();
fFigureSingleFeatureUnitLabelFigure.setText("SingleFeatureUnit");

this.add(fFigureSingleFeatureUnitLabelFigure);


	}





	/**
	 * @generated
	 */
	public org.eclipse.gmf.runtime.draw2d.ui.figures.WrappingLabel getFigureSingleFeatureUnitLabelFigure() {
		return fFigureSingleFeatureUnitLabelFigure;
	}


}

"/>
+ <modelFacet>
+ <metaClass
+ href="comrel.genmodel#//comrel/SingleFeatureUnit"/>
+ <containmentMetaFeature
+ href="comrel.genmodel#//comrel/SequentialUnit/helperUnits"/>
+ <childMetaFeature
+ href="comrel.genmodel#//comrel/SequentialUnit/helperUnits"/>
+ </modelFacet>
+ <labels
+ visualID="5044"
+ editPartClassName="SingleFeatureUnitNameType5EditPart"
+ itemSemanticEditPolicyClassName="SingleFeatureUnitNameType5ItemSemanticEditPolicy"
+ notationViewFactoryClassName="SingleFeatureUnitNameTypeViewFactory">
+ <diagramRunTimeClass
+ href="../../../plugin/org.eclipse.gmf.runtime.notation/model/notation.genmodel#//notation/Node"/>
+ <viewmap
+ xsi:type="gmfgen:ParentAssignedViewmap"
+ getterName="getFigureSingleFeatureUnitLabelFigure"
+ figureQualifiedClassName="org.eclipse.gmf.runtime.draw2d.ui.figures.WrappingLabel"/>
+ <modelFacet
+ xsi:type="gmfgen:FeatureLabelModelFacet"
+ parser="//@labelParsers/@implementations.0"
+ viewPattern="{0}:{1}"
+ editorPattern="{0}:{1}"
+ editPattern="{0}:{1}">
+ <metaFeatures
+ href="comrel.genmodel#//comrel/NamedElement/name"/>
+ <metaFeatures
+ href="comrel.genmodel#//comrel/SingleFeatureUnit/type"/>
+ </modelFacet>
+ </labels>
+ </childNodes>
+ <childNodes
+ visualID="3062"
+ editPartClassName="MultiFeatureUnit5EditPart"
+ itemSemanticEditPolicyClassName="MultiFeatureUnit5ItemSemanticEditPolicy"
+ notationViewFactoryClassName="MultiFeatureUnitViewFactory"
+ canonicalEditPolicyClassName="MultiFeatureUnit5CanonicalEditPolicy"
+ childNodes="//@diagram/@childNodes.12 //@diagram/@childNodes.13 //@diagram/@childNodes.14"
+ graphicalNodeEditPolicyClassName="MultiFeatureUnit5GraphicalNodeEditPolicy"
+ createCommandClassName="MultiFeatureUnit5CreateCommand"
+ containers="//@diagram/@compartments.46 //@diagram/@compartments.56 //@diagram/@compartments.58 //@diagram/@compartments.68 //@diagram/@compartments.30 //@diagram/@compartments.12 //@diagram/@compartments.78">
+ <diagramRunTimeClass
+ href="../../../plugin/org.eclipse.gmf.runtime.notation/model/notation.genmodel#//notation/Node"/>
+ <elementType
+ xsi:type="gmfgen:SpecializationType"
+ metamodelType="//@diagram/@childNodes.11/@elementType"/>
+ <viewmap
+ xsi:type="gmfgen:InnerClassViewmap"
+ className="MultiFeatureUnitFigure"
+ classBody="
/**
 * @generated
 */
public class MultiFeatureUnitFigure extends org.eclipse.draw2d.RoundedRectangle {


	/**
	 * @generated
	 */
	private org.eclipse.gmf.runtime.draw2d.ui.figures.WrappingLabel fFigureMultiFeatureUnitLabelFigure; 


	/**
	 * @generated
	 */
	public MultiFeatureUnitFigure() {
				this.setCornerDimensions(new org.eclipse.draw2d.geometry.Dimension(getMapMode().DPtoLP(8)
, getMapMode().DPtoLP(8)
));
this.setBorder(new org.eclipse.draw2d.MarginBorder(getMapMode().DPtoLP(5)
, getMapMode().DPtoLP(5)
, getMapMode().DPtoLP(5)
, getMapMode().DPtoLP(5)
));
		createContents();
	}
	/**
	 * @generated
	 */
	private void createContents(){


fFigureMultiFeatureUnitLabelFigure = new org.eclipse.gmf.runtime.draw2d.ui.figures.WrappingLabel();
fFigureMultiFeatureUnitLabelFigure.setText("MultiFeatureUnit");

this.add(fFigureMultiFeatureUnitLabelFigure);


	}





	/**
	 * @generated
	 */
	public org.eclipse.gmf.runtime.draw2d.ui.figures.WrappingLabel getFigureMultiFeatureUnitLabelFigure() {
		return fFigureMultiFeatureUnitLabelFigure;
	}


}

"/>
+ <modelFacet>
+ <metaClass
+ href="comrel.genmodel#//comrel/MultiFeatureUnit"/>
+ <containmentMetaFeature
+ href="comrel.genmodel#//comrel/SequentialUnit/helperUnits"/>
+ <childMetaFeature
+ href="comrel.genmodel#//comrel/SequentialUnit/helperUnits"/>
+ </modelFacet>
+ <labels
+ visualID="5045"
+ editPartClassName="MultiFeatureUnitNameType5EditPart"
+ itemSemanticEditPolicyClassName="MultiFeatureUnitNameType5ItemSemanticEditPolicy"
+ notationViewFactoryClassName="MultiFeatureUnitNameTypeViewFactory">
+ <diagramRunTimeClass
+ href="../../../plugin/org.eclipse.gmf.runtime.notation/model/notation.genmodel#//notation/Node"/>
+ <viewmap
+ xsi:type="gmfgen:ParentAssignedViewmap"
+ getterName="getFigureMultiFeatureUnitLabelFigure"
+ figureQualifiedClassName="org.eclipse.gmf.runtime.draw2d.ui.figures.WrappingLabel"/>
+ <modelFacet
+ xsi:type="gmfgen:FeatureLabelModelFacet"
+ parser="//@labelParsers/@implementations.0"
+ viewPattern="{0}:{1}"
+ editorPattern="{0}:{1}"
+ editPattern="{0}:{1}">
+ <metaFeatures
+ href="comrel.genmodel#//comrel/NamedElement/name"/>
+ <metaFeatures
+ href="comrel.genmodel#//comrel/MultiFeatureUnit/type"/>
+ </modelFacet>
+ </labels>
+ </childNodes>
+ <childNodes
+ visualID="3063"
+ editPartClassName="SingleFilterUnit5EditPart"
+ itemSemanticEditPolicyClassName="SingleFilterUnit5ItemSemanticEditPolicy"
+ notationViewFactoryClassName="SingleFilterUnitViewFactory"
+ canonicalEditPolicyClassName="SingleFilterUnit5CanonicalEditPolicy"
+ childNodes="//@diagram/@childNodes.16 //@diagram/@childNodes.17"
+ graphicalNodeEditPolicyClassName="SingleFilterUnit5GraphicalNodeEditPolicy"
+ createCommandClassName="SingleFilterUnit5CreateCommand"
+ containers="//@diagram/@compartments.46 //@diagram/@compartments.56 //@diagram/@compartments.58 //@diagram/@compartments.68 //@diagram/@compartments.30 //@diagram/@compartments.12 //@diagram/@compartments.78">
+ <diagramRunTimeClass
+ href="../../../plugin/org.eclipse.gmf.runtime.notation/model/notation.genmodel#//notation/Node"/>
+ <elementType
+ xsi:type="gmfgen:SpecializationType"
+ metamodelType="//@diagram/@childNodes.15/@elementType"/>
+ <viewmap
+ xsi:type="gmfgen:InnerClassViewmap"
+ className="SingleFilterUnitFigure"
+ classBody="
/**
 * @generated
 */
public class SingleFilterUnitFigure extends org.eclipse.draw2d.RoundedRectangle {


	/**
	 * @generated
	 */
	private org.eclipse.gmf.runtime.draw2d.ui.figures.WrappingLabel fFigureSingleFilterUnitLabelFigure; 


	/**
	 * @generated
	 */
	public SingleFilterUnitFigure() {
				this.setCornerDimensions(new org.eclipse.draw2d.geometry.Dimension(getMapMode().DPtoLP(8)
, getMapMode().DPtoLP(8)
));
this.setBorder(new org.eclipse.draw2d.MarginBorder(getMapMode().DPtoLP(5)
, getMapMode().DPtoLP(5)
, getMapMode().DPtoLP(5)
, getMapMode().DPtoLP(5)
));
		createContents();
	}
	/**
	 * @generated
	 */
	private void createContents(){


fFigureSingleFilterUnitLabelFigure = new org.eclipse.gmf.runtime.draw2d.ui.figures.WrappingLabel();
fFigureSingleFilterUnitLabelFigure.setText("SingleFilterUnit");

this.add(fFigureSingleFilterUnitLabelFigure);


	}





	/**
	 * @generated
	 */
	public org.eclipse.gmf.runtime.draw2d.ui.figures.WrappingLabel getFigureSingleFilterUnitLabelFigure() {
		return fFigureSingleFilterUnitLabelFigure;
	}


}

"/>
+ <modelFacet>
+ <metaClass
+ href="comrel.genmodel#//comrel/SingleFilterUnit"/>
+ <containmentMetaFeature
+ href="comrel.genmodel#//comrel/SequentialUnit/helperUnits"/>
+ <childMetaFeature
+ href="comrel.genmodel#//comrel/SequentialUnit/helperUnits"/>
+ </modelFacet>
+ <labels
+ visualID="5046"
+ editPartClassName="SingleFilterUnitNameType5EditPart"
+ itemSemanticEditPolicyClassName="SingleFilterUnitNameType5ItemSemanticEditPolicy"
+ notationViewFactoryClassName="SingleFilterUnitNameTypeViewFactory">
+ <diagramRunTimeClass
+ href="../../../plugin/org.eclipse.gmf.runtime.notation/model/notation.genmodel#//notation/Node"/>
+ <viewmap
+ xsi:type="gmfgen:ParentAssignedViewmap"
+ getterName="getFigureSingleFilterUnitLabelFigure"
+ figureQualifiedClassName="org.eclipse.gmf.runtime.draw2d.ui.figures.WrappingLabel"/>
+ <modelFacet
+ xsi:type="gmfgen:FeatureLabelModelFacet"
+ parser="//@labelParsers/@implementations.0"
+ viewPattern="{0}:{1}"
+ editorPattern="{0}:{1}"
+ editPattern="{0}:{1}">
+ <metaFeatures
+ href="comrel.genmodel#//comrel/NamedElement/name"/>
+ <metaFeatures
+ href="comrel.genmodel#//comrel/SingleFilterUnit/type"/>
+ </modelFacet>
+ </labels>
+ </childNodes>
+ <childNodes
+ visualID="3064"
+ editPartClassName="MultiFilterUnit5EditPart"
+ itemSemanticEditPolicyClassName="MultiFilterUnit5ItemSemanticEditPolicy"
+ notationViewFactoryClassName="MultiFilterUnitViewFactory"
+ canonicalEditPolicyClassName="MultiFilterUnit5CanonicalEditPolicy"
+ childNodes="//@diagram/@childNodes.19 //@diagram/@childNodes.20"
+ graphicalNodeEditPolicyClassName="MultiFilterUnit5GraphicalNodeEditPolicy"
+ createCommandClassName="MultiFilterUnit5CreateCommand"
+ containers="//@diagram/@compartments.46 //@diagram/@compartments.56 //@diagram/@compartments.58 //@diagram/@compartments.68 //@diagram/@compartments.30 //@diagram/@compartments.12 //@diagram/@compartments.78">
+ <diagramRunTimeClass
+ href="../../../plugin/org.eclipse.gmf.runtime.notation/model/notation.genmodel#//notation/Node"/>
+ <elementType
+ xsi:type="gmfgen:SpecializationType"
+ metamodelType="//@diagram/@childNodes.18/@elementType"/>
+ <viewmap
+ xsi:type="gmfgen:InnerClassViewmap"
+ className="MultiFilterUnitFigure"
+ classBody="
/**
 * @generated
 */
public class MultiFilterUnitFigure extends org.eclipse.draw2d.RoundedRectangle {


	/**
	 * @generated
	 */
	private org.eclipse.gmf.runtime.draw2d.ui.figures.WrappingLabel fFigureMultiFilterUnitLabelFigure; 


	/**
	 * @generated
	 */
	public MultiFilterUnitFigure() {
				this.setCornerDimensions(new org.eclipse.draw2d.geometry.Dimension(getMapMode().DPtoLP(8)
, getMapMode().DPtoLP(8)
));
this.setBorder(new org.eclipse.draw2d.MarginBorder(getMapMode().DPtoLP(5)
, getMapMode().DPtoLP(5)
, getMapMode().DPtoLP(5)
, getMapMode().DPtoLP(5)
));
		createContents();
	}
	/**
	 * @generated
	 */
	private void createContents(){


fFigureMultiFilterUnitLabelFigure = new org.eclipse.gmf.runtime.draw2d.ui.figures.WrappingLabel();
fFigureMultiFilterUnitLabelFigure.setText("MultiFilterUnit");

this.add(fFigureMultiFilterUnitLabelFigure);


	}





	/**
	 * @generated
	 */
	public org.eclipse.gmf.runtime.draw2d.ui.figures.WrappingLabel getFigureMultiFilterUnitLabelFigure() {
		return fFigureMultiFilterUnitLabelFigure;
	}


}

"/>
+ <modelFacet>
+ <metaClass
+ href="comrel.genmodel#//comrel/MultiFilterUnit"/>
+ <containmentMetaFeature
+ href="comrel.genmodel#//comrel/SequentialUnit/helperUnits"/>
+ <childMetaFeature
+ href="comrel.genmodel#//comrel/SequentialUnit/helperUnits"/>
+ </modelFacet>
+ <labels
+ visualID="5047"
+ editPartClassName="MultiFilterUnitNameType5EditPart"
+ itemSemanticEditPolicyClassName="MultiFilterUnitNameType5ItemSemanticEditPolicy"
+ notationViewFactoryClassName="MultiFilterUnitNameTypeViewFactory">
+ <diagramRunTimeClass
+ href="../../../plugin/org.eclipse.gmf.runtime.notation/model/notation.genmodel#//notation/Node"/>
+ <viewmap
+ xsi:type="gmfgen:ParentAssignedViewmap"
+ getterName="getFigureMultiFilterUnitLabelFigure"
+ figureQualifiedClassName="org.eclipse.gmf.runtime.draw2d.ui.figures.WrappingLabel"/>
+ <modelFacet
+ xsi:type="gmfgen:FeatureLabelModelFacet"
+ parser="//@labelParsers/@implementations.0"
+ viewPattern="{0}:{1}"
+ editorPattern="{0}:{1}"
+ editPattern="{0}:{1}">
+ <metaFeatures
+ href="comrel.genmodel#//comrel/NamedElement/name"/>
+ <metaFeatures
+ href="comrel.genmodel#//comrel/MultiFilterUnit/type"/>
+ </modelFacet>
+ </labels>
+ </childNodes>
+ <childNodes
+ visualID="3065"
+ editPartClassName="SingleQueuedUnit6EditPart"
+ itemSemanticEditPolicyClassName="SingleQueuedUnit6ItemSemanticEditPolicy"
+ notationViewFactoryClassName="SingleQueuedUnitViewFactory"
+ canonicalEditPolicyClassName="SingleQueuedUnit6CanonicalEditPolicy"
+ childNodes="//@diagram/@childNodes.22 //@diagram/@childNodes.23"
+ compartments="//@diagram/@compartments.48 //@diagram/@compartments.49"
+ graphicalNodeEditPolicyClassName="SingleQueuedUnit6GraphicalNodeEditPolicy"
+ createCommandClassName="SingleQueuedUnit6CreateCommand"
+ containers="//@diagram/@compartments.57 //@diagram/@compartments.59 //@diagram/@compartments.69 //@diagram/@compartments.47 //@diagram/@compartments.31 //@diagram/@compartments.13 //@diagram/@compartments.79">
+ <diagramRunTimeClass
+ href="../../../plugin/org.eclipse.gmf.runtime.notation/model/notation.genmodel#//notation/Node"/>
+ <elementType
+ xsi:type="gmfgen:SpecializationType"
+ metamodelType="//@diagram/@childNodes.21/@elementType"/>
+ <viewmap
+ xsi:type="gmfgen:InnerClassViewmap"
+ className="SingleQueuedUnitFigure"
+ classBody="
/**
 * @generated
 */
public class SingleQueuedUnitFigure extends org.eclipse.draw2d.RoundedRectangle {


	/**
	 * @generated
	 */
	private org.eclipse.gmf.runtime.draw2d.ui.figures.WrappingLabel fFigureSingleQueuedUnitLabelFigure; 
	/**
	 * @generated
	 */
	private org.eclipse.draw2d.RectangleFigure fSingleQueuedUnitHelperUnitsCompartmentFigure; 
	/**
	 * @generated
	 */
	private org.eclipse.draw2d.RectangleFigure fSingleQueuedUnitRefactoringUnitCompartmentFigure; 


	/**
	 * @generated
	 */
	public SingleQueuedUnitFigure() {
				this.setCornerDimensions(new org.eclipse.draw2d.geometry.Dimension(getMapMode().DPtoLP(8)
, getMapMode().DPtoLP(8)
));
this.setBorder(new org.eclipse.draw2d.MarginBorder(getMapMode().DPtoLP(5)
, getMapMode().DPtoLP(5)
, getMapMode().DPtoLP(5)
, getMapMode().DPtoLP(5)
));
		createContents();
	}
	/**
	 * @generated
	 */
	private void createContents(){


fFigureSingleQueuedUnitLabelFigure = new org.eclipse.gmf.runtime.draw2d.ui.figures.WrappingLabel();
fFigureSingleQueuedUnitLabelFigure.setText("SingleQueuedUnit");
fFigureSingleQueuedUnitLabelFigure.setMaximumSize(new org.eclipse.draw2d.geometry.Dimension(getMapMode().DPtoLP(10000)
, getMapMode().DPtoLP(50)
));

this.add(fFigureSingleQueuedUnitLabelFigure);



fSingleQueuedUnitHelperUnitsCompartmentFigure = new org.eclipse.draw2d.RectangleFigure();
fSingleQueuedUnitHelperUnitsCompartmentFigure.setOutline(false);

this.add(fSingleQueuedUnitHelperUnitsCompartmentFigure);



fSingleQueuedUnitRefactoringUnitCompartmentFigure = new org.eclipse.draw2d.RectangleFigure();
fSingleQueuedUnitRefactoringUnitCompartmentFigure.setOutline(false);

this.add(fSingleQueuedUnitRefactoringUnitCompartmentFigure);


	}





	/**
	 * @generated
	 */
	public org.eclipse.gmf.runtime.draw2d.ui.figures.WrappingLabel getFigureSingleQueuedUnitLabelFigure() {
		return fFigureSingleQueuedUnitLabelFigure;
	}
	/**
	 * @generated
	 */
	public org.eclipse.draw2d.RectangleFigure getSingleQueuedUnitHelperUnitsCompartmentFigure() {
		return fSingleQueuedUnitHelperUnitsCompartmentFigure;
	}
	/**
	 * @generated
	 */
	public org.eclipse.draw2d.RectangleFigure getSingleQueuedUnitRefactoringUnitCompartmentFigure() {
		return fSingleQueuedUnitRefactoringUnitCompartmentFigure;
	}


}

"/>
+ <behaviour
+ xsi:type="gmfgen:OpenDiagramBehaviour"/>
+ <modelFacet>
+ <metaClass
+ href="comrel.genmodel#//comrel/SingleQueuedUnit"/>
+ <containmentMetaFeature
+ href="comrel.genmodel#//comrel/SequentialUnit/refactoringUnits"/>
+ <childMetaFeature
+ href="comrel.genmodel#//comrel/SequentialUnit/refactoringUnits"/>
+ </modelFacet>
+ <labels
+ visualID="5061"
+ editPartClassName="SingleQueuedUnitNameTypeLblStrict6EditPart"
+ itemSemanticEditPolicyClassName="SingleQueuedUnitNameTypeLblStrict6ItemSemanticEditPolicy"
+ notationViewFactoryClassName="SingleQueuedUnitNameTypeLblStrictViewFactory">
+ <diagramRunTimeClass
+ href="../../../plugin/org.eclipse.gmf.runtime.notation/model/notation.genmodel#//notation/Node"/>
+ <viewmap
+ xsi:type="gmfgen:ParentAssignedViewmap"
+ getterName="getFigureSingleQueuedUnitLabelFigure"
+ figureQualifiedClassName="org.eclipse.gmf.runtime.draw2d.ui.figures.WrappingLabel"/>
+ <modelFacet
+ xsi:type="gmfgen:FeatureLabelModelFacet"
+ parser="//@labelParsers/@implementations.0"
+ viewPattern="{0}:{1} -{2}-"
+ editorPattern="{0}:{1} -{2}-"
+ editPattern="{0}:{1} -{2}-">
+ <metaFeatures
+ href="comrel.genmodel#//comrel/NamedElement/name"/>
+ <metaFeatures
+ href="comrel.genmodel#//comrel/SingleQueuedUnit/type"/>
+ <metaFeatures
+ href="comrel.genmodel#//comrel/SingleQueuedUnit/lblStrict"/>
+ </modelFacet>
+ </labels>
+ </childNodes>
+ <childNodes
+ visualID="3066"
+ editPartClassName="ConditionalUnit4EditPart"
+ itemSemanticEditPolicyClassName="ConditionalUnit4ItemSemanticEditPolicy"
+ notationViewFactoryClassName="ConditionalUnitViewFactory"
+ canonicalEditPolicyClassName="ConditionalUnit4CanonicalEditPolicy"
+ childNodes="//@diagram/@childNodes.30 //@diagram/@childNodes.31"
+ compartments="//@diagram/@compartments.50 //@diagram/@compartments.51 //@diagram/@compartments.52 //@diagram/@compartments.53"
+ graphicalNodeEditPolicyClassName="ConditionalUnit4GraphicalNodeEditPolicy"
+ createCommandClassName="ConditionalUnit4CreateCommand"
+ containers="//@diagram/@compartments.55 //@diagram/@compartments.49 //@diagram/@compartments.45 //@diagram/@compartments.43 //@diagram/@compartments.27 //@diagram/@compartments.9 //@diagram/@compartments.77">
+ <diagramRunTimeClass
+ href="../../../plugin/org.eclipse.gmf.runtime.notation/model/notation.genmodel#//notation/Node"/>
+ <elementType
+ xsi:type="gmfgen:SpecializationType"
+ metamodelType="//@diagram/@childNodes.29/@elementType"/>
+ <viewmap
+ xsi:type="gmfgen:InnerClassViewmap"
+ className="ConditionalUnitFigure"
+ classBody="
/**
 * @generated
 */
public class ConditionalUnitFigure extends org.eclipse.draw2d.RoundedRectangle {


	/**
	 * @generated
	 */
	private org.eclipse.gmf.runtime.draw2d.ui.figures.WrappingLabel fFigureConditionalUnitLabelFigure; 
	/**
	 * @generated
	 */
	private org.eclipse.draw2d.RectangleFigure fConditionalUnitIfCompartmentFigure; 
	/**
	 * @generated
	 */
	private org.eclipse.draw2d.RectangleFigure fConditionalUnitHelperUnitsCompartmentFigure; 
	/**
	 * @generated
	 */
	private org.eclipse.draw2d.RectangleFigure fConditionalUnitThenCompartmentFigure; 
	/**
	 * @generated
	 */
	private org.eclipse.draw2d.RectangleFigure fConditionalUnitElseCompartmentFigure; 


	/**
	 * @generated
	 */
	public ConditionalUnitFigure() {
				this.setCornerDimensions(new org.eclipse.draw2d.geometry.Dimension(getMapMode().DPtoLP(8)
, getMapMode().DPtoLP(8)
));
this.setBorder(new org.eclipse.draw2d.MarginBorder(getMapMode().DPtoLP(5)
, getMapMode().DPtoLP(5)
, getMapMode().DPtoLP(5)
, getMapMode().DPtoLP(5)
));
		createContents();
	}
	/**
	 * @generated
	 */
	private void createContents(){


fFigureConditionalUnitLabelFigure = new org.eclipse.gmf.runtime.draw2d.ui.figures.WrappingLabel();
fFigureConditionalUnitLabelFigure.setText("ConditionalUnit");
fFigureConditionalUnitLabelFigure.setMaximumSize(new org.eclipse.draw2d.geometry.Dimension(getMapMode().DPtoLP(10000)
, getMapMode().DPtoLP(50)
));

this.add(fFigureConditionalUnitLabelFigure);



fConditionalUnitIfCompartmentFigure = new org.eclipse.draw2d.RectangleFigure();
fConditionalUnitIfCompartmentFigure.setOutline(false);

this.add(fConditionalUnitIfCompartmentFigure);



fConditionalUnitHelperUnitsCompartmentFigure = new org.eclipse.draw2d.RectangleFigure();
fConditionalUnitHelperUnitsCompartmentFigure.setOutline(false);

this.add(fConditionalUnitHelperUnitsCompartmentFigure);



fConditionalUnitThenCompartmentFigure = new org.eclipse.draw2d.RectangleFigure();
fConditionalUnitThenCompartmentFigure.setOutline(false);

this.add(fConditionalUnitThenCompartmentFigure);



fConditionalUnitElseCompartmentFigure = new org.eclipse.draw2d.RectangleFigure();
fConditionalUnitElseCompartmentFigure.setOutline(false);

this.add(fConditionalUnitElseCompartmentFigure);


	}





	/**
	 * @generated
	 */
	public org.eclipse.gmf.runtime.draw2d.ui.figures.WrappingLabel getFigureConditionalUnitLabelFigure() {
		return fFigureConditionalUnitLabelFigure;
	}
	/**
	 * @generated
	 */
	public org.eclipse.draw2d.RectangleFigure getConditionalUnitIfCompartmentFigure() {
		return fConditionalUnitIfCompartmentFigure;
	}
	/**
	 * @generated
	 */
	public org.eclipse.draw2d.RectangleFigure getConditionalUnitHelperUnitsCompartmentFigure() {
		return fConditionalUnitHelperUnitsCompartmentFigure;
	}
	/**
	 * @generated
	 */
	public org.eclipse.draw2d.RectangleFigure getConditionalUnitThenCompartmentFigure() {
		return fConditionalUnitThenCompartmentFigure;
	}
	/**
	 * @generated
	 */
	public org.eclipse.draw2d.RectangleFigure getConditionalUnitElseCompartmentFigure() {
		return fConditionalUnitElseCompartmentFigure;
	}


}

"/>
+ <behaviour
+ xsi:type="gmfgen:OpenDiagramBehaviour"/>
+ <modelFacet>
+ <metaClass
+ href="comrel.genmodel#//comrel/ConditionalUnit"/>
+ <containmentMetaFeature
+ href="comrel.genmodel#//comrel/SingleQueuedUnit/refactoringUnit"/>
+ <childMetaFeature
+ href="comrel.genmodel#//comrel/SingleQueuedUnit/refactoringUnit"/>
+ </modelFacet>
+ <labels
+ visualID="5060"
+ editPartClassName="ConditionalUnitNameType4EditPart"
+ itemSemanticEditPolicyClassName="ConditionalUnitNameType4ItemSemanticEditPolicy"
+ notationViewFactoryClassName="ConditionalUnitNameTypeViewFactory">
+ <diagramRunTimeClass
+ href="../../../plugin/org.eclipse.gmf.runtime.notation/model/notation.genmodel#//notation/Node"/>
+ <viewmap
+ xsi:type="gmfgen:ParentAssignedViewmap"
+ getterName="getFigureConditionalUnitLabelFigure"
+ figureQualifiedClassName="org.eclipse.gmf.runtime.draw2d.ui.figures.WrappingLabel"/>
+ <modelFacet
+ xsi:type="gmfgen:FeatureLabelModelFacet"
+ parser="//@labelParsers/@implementations.0"
+ viewPattern="{0}:{1}"
+ editorPattern="{0}:{1}"
+ editPattern="{0}:{1}">
+ <metaFeatures
+ href="comrel.genmodel#//comrel/NamedElement/name"/>
+ <metaFeatures
+ href="comrel.genmodel#//comrel/ConditionalUnit/type"/>
+ </modelFacet>
+ </labels>
+ </childNodes>
+ <childNodes
+ visualID="3067"
+ editPartClassName="SingleQueuedUnit7EditPart"
+ itemSemanticEditPolicyClassName="SingleQueuedUnit7ItemSemanticEditPolicy"
+ notationViewFactoryClassName="SingleQueuedUnitViewFactory"
+ canonicalEditPolicyClassName="SingleQueuedUnit7CanonicalEditPolicy"
+ childNodes="//@diagram/@childNodes.22 //@diagram/@childNodes.23"
+ compartments="//@diagram/@compartments.54 //@diagram/@compartments.55"
+ graphicalNodeEditPolicyClassName="SingleQueuedUnit7GraphicalNodeEditPolicy"
+ createCommandClassName="SingleQueuedUnit7CreateCommand"
+ containers="//@diagram/@compartments.53 //@diagram/@compartments.63 //@diagram/@compartments.67 //@diagram/@compartments.73 //@diagram/@compartments.37 //@diagram/@compartments.19 //@diagram/@compartments.83">
+ <diagramRunTimeClass
+ href="../../../plugin/org.eclipse.gmf.runtime.notation/model/notation.genmodel#//notation/Node"/>
+ <elementType
+ xsi:type="gmfgen:SpecializationType"
+ metamodelType="//@diagram/@childNodes.21/@elementType"/>
+ <viewmap
+ xsi:type="gmfgen:InnerClassViewmap"
+ className="SingleQueuedUnitFigure"
+ classBody="
/**
 * @generated
 */
public class SingleQueuedUnitFigure extends org.eclipse.draw2d.RoundedRectangle {


	/**
	 * @generated
	 */
	private org.eclipse.gmf.runtime.draw2d.ui.figures.WrappingLabel fFigureSingleQueuedUnitLabelFigure; 
	/**
	 * @generated
	 */
	private org.eclipse.draw2d.RectangleFigure fSingleQueuedUnitHelperUnitsCompartmentFigure; 
	/**
	 * @generated
	 */
	private org.eclipse.draw2d.RectangleFigure fSingleQueuedUnitRefactoringUnitCompartmentFigure; 


	/**
	 * @generated
	 */
	public SingleQueuedUnitFigure() {
				this.setCornerDimensions(new org.eclipse.draw2d.geometry.Dimension(getMapMode().DPtoLP(8)
, getMapMode().DPtoLP(8)
));
this.setBorder(new org.eclipse.draw2d.MarginBorder(getMapMode().DPtoLP(5)
, getMapMode().DPtoLP(5)
, getMapMode().DPtoLP(5)
, getMapMode().DPtoLP(5)
));
		createContents();
	}
	/**
	 * @generated
	 */
	private void createContents(){


fFigureSingleQueuedUnitLabelFigure = new org.eclipse.gmf.runtime.draw2d.ui.figures.WrappingLabel();
fFigureSingleQueuedUnitLabelFigure.setText("SingleQueuedUnit");
fFigureSingleQueuedUnitLabelFigure.setMaximumSize(new org.eclipse.draw2d.geometry.Dimension(getMapMode().DPtoLP(10000)
, getMapMode().DPtoLP(50)
));

this.add(fFigureSingleQueuedUnitLabelFigure);



fSingleQueuedUnitHelperUnitsCompartmentFigure = new org.eclipse.draw2d.RectangleFigure();
fSingleQueuedUnitHelperUnitsCompartmentFigure.setOutline(false);

this.add(fSingleQueuedUnitHelperUnitsCompartmentFigure);



fSingleQueuedUnitRefactoringUnitCompartmentFigure = new org.eclipse.draw2d.RectangleFigure();
fSingleQueuedUnitRefactoringUnitCompartmentFigure.setOutline(false);

this.add(fSingleQueuedUnitRefactoringUnitCompartmentFigure);


	}





	/**
	 * @generated
	 */
	public org.eclipse.gmf.runtime.draw2d.ui.figures.WrappingLabel getFigureSingleQueuedUnitLabelFigure() {
		return fFigureSingleQueuedUnitLabelFigure;
	}
	/**
	 * @generated
	 */
	public org.eclipse.draw2d.RectangleFigure getSingleQueuedUnitHelperUnitsCompartmentFigure() {
		return fSingleQueuedUnitHelperUnitsCompartmentFigure;
	}
	/**
	 * @generated
	 */
	public org.eclipse.draw2d.RectangleFigure getSingleQueuedUnitRefactoringUnitCompartmentFigure() {
		return fSingleQueuedUnitRefactoringUnitCompartmentFigure;
	}


}

"/>
+ <behaviour
+ xsi:type="gmfgen:OpenDiagramBehaviour"/>
+ <modelFacet>
+ <metaClass
+ href="comrel.genmodel#//comrel/SingleQueuedUnit"/>
+ <containmentMetaFeature
+ href="comrel.genmodel#//comrel/ConditionalUnit/else"/>
+ <childMetaFeature
+ href="comrel.genmodel#//comrel/ConditionalUnit/else"/>
+ </modelFacet>
+ <labels
+ visualID="5049"
+ editPartClassName="SingleQueuedUnitNameTypeLblStrict7EditPart"
+ itemSemanticEditPolicyClassName="SingleQueuedUnitNameTypeLblStrict7ItemSemanticEditPolicy"
+ notationViewFactoryClassName="SingleQueuedUnitNameTypeLblStrictViewFactory">
+ <diagramRunTimeClass
+ href="../../../plugin/org.eclipse.gmf.runtime.notation/model/notation.genmodel#//notation/Node"/>
+ <viewmap
+ xsi:type="gmfgen:ParentAssignedViewmap"
+ getterName="getFigureSingleQueuedUnitLabelFigure"
+ figureQualifiedClassName="org.eclipse.gmf.runtime.draw2d.ui.figures.WrappingLabel"/>
+ <modelFacet
+ xsi:type="gmfgen:FeatureLabelModelFacet"
+ parser="//@labelParsers/@implementations.0"
+ viewPattern="{0}:{1} -{2}-"
+ editorPattern="{0}:{1} -{2}-"
+ editPattern="{0}:{1} -{2}-">
+ <metaFeatures
+ href="comrel.genmodel#//comrel/NamedElement/name"/>
+ <metaFeatures
+ href="comrel.genmodel#//comrel/SingleQueuedUnit/type"/>
+ <metaFeatures
+ href="comrel.genmodel#//comrel/SingleQueuedUnit/lblStrict"/>
+ </modelFacet>
+ </labels>
+ </childNodes>
+ <childNodes
+ visualID="3068"
+ editPartClassName="AtomicUnit4EditPart"
+ itemSemanticEditPolicyClassName="AtomicUnit4ItemSemanticEditPolicy"
+ notationViewFactoryClassName="AtomicUnitViewFactory"
+ canonicalEditPolicyClassName="AtomicUnit4CanonicalEditPolicy"
+ childNodes="//@diagram/@childNodes.34"
+ graphicalNodeEditPolicyClassName="AtomicUnit4GraphicalNodeEditPolicy"
+ createCommandClassName="AtomicUnit4CreateCommand"
+ containers="//@diagram/@compartments.55 //@diagram/@compartments.49 //@diagram/@compartments.45 //@diagram/@compartments.43 //@diagram/@compartments.27 //@diagram/@compartments.9 //@diagram/@compartments.77">
+ <diagramRunTimeClass
+ href="../../../plugin/org.eclipse.gmf.runtime.notation/model/notation.genmodel#//notation/Node"/>
+ <elementType
+ xsi:type="gmfgen:SpecializationType"
+ metamodelType="//@diagram/@childNodes.33/@elementType"/>
+ <viewmap
+ xsi:type="gmfgen:InnerClassViewmap"
+ className="AtomicUnitFigure"
+ classBody="
/**
 * @generated
 */
public class AtomicUnitFigure extends org.eclipse.draw2d.RoundedRectangle {


	/**
	 * @generated
	 */
	private org.eclipse.gmf.runtime.draw2d.ui.figures.WrappingLabel fFigureAtomicUnitLabelFigure; 


	/**
	 * @generated
	 */
	public AtomicUnitFigure() {
				this.setCornerDimensions(new org.eclipse.draw2d.geometry.Dimension(getMapMode().DPtoLP(8)
, getMapMode().DPtoLP(8)
));
this.setBorder(new org.eclipse.draw2d.MarginBorder(getMapMode().DPtoLP(5)
, getMapMode().DPtoLP(5)
, getMapMode().DPtoLP(5)
, getMapMode().DPtoLP(5)
));
		createContents();
	}
	/**
	 * @generated
	 */
	private void createContents(){


fFigureAtomicUnitLabelFigure = new org.eclipse.gmf.runtime.draw2d.ui.figures.WrappingLabel();
fFigureAtomicUnitLabelFigure.setText("AtomicUnit");

this.add(fFigureAtomicUnitLabelFigure);


	}





	/**
	 * @generated
	 */
	public org.eclipse.gmf.runtime.draw2d.ui.figures.WrappingLabel getFigureAtomicUnitLabelFigure() {
		return fFigureAtomicUnitLabelFigure;
	}


}

"/>
+ <modelFacet>
+ <metaClass
+ href="comrel.genmodel#//comrel/AtomicUnit"/>
+ <containmentMetaFeature
+ href="comrel.genmodel#//comrel/SingleQueuedUnit/refactoringUnit"/>
+ <childMetaFeature
+ href="comrel.genmodel#//comrel/SingleQueuedUnit/refactoringUnit"/>
+ </modelFacet>
+ <labels
+ visualID="5048"
+ editPartClassName="AtomicUnitLabelType4EditPart"
+ itemSemanticEditPolicyClassName="AtomicUnitLabelType4ItemSemanticEditPolicy"
+ notationViewFactoryClassName="AtomicUnitLabelTypeViewFactory">
+ <diagramRunTimeClass
+ href="../../../plugin/org.eclipse.gmf.runtime.notation/model/notation.genmodel#//notation/Node"/>
+ <viewmap
+ xsi:type="gmfgen:ParentAssignedViewmap"
+ getterName="getFigureAtomicUnitLabelFigure"
+ figureQualifiedClassName="org.eclipse.gmf.runtime.draw2d.ui.figures.WrappingLabel"/>
+ <modelFacet
+ xsi:type="gmfgen:FeatureLabelModelFacet"
+ parser="//@labelParsers/@implementations.0"
+ viewPattern="{0}:{1}"
+ editorPattern="{0}:{1}"
+ editPattern="{0}:{1}">
+ <metaFeatures
+ href="comrel.genmodel#//comrel/AtomicUnit/label"/>
+ <metaFeatures
+ href="comrel.genmodel#//comrel/AtomicUnit/type"/>
+ </modelFacet>
+ </labels>
+ </childNodes>
+ <childNodes
+ visualID="3069"
+ editPartClassName="SequentialUnit5EditPart"
+ itemSemanticEditPolicyClassName="SequentialUnit5ItemSemanticEditPolicy"
+ notationViewFactoryClassName="SequentialUnitViewFactory"
+ canonicalEditPolicyClassName="SequentialUnit5CanonicalEditPolicy"
+ childNodes="//@diagram/@childNodes.26 //@diagram/@childNodes.27"
+ compartments="//@diagram/@compartments.56 //@diagram/@compartments.57"
+ graphicalNodeEditPolicyClassName="SequentialUnit5GraphicalNodeEditPolicy"
+ createCommandClassName="SequentialUnit5CreateCommand"
+ containers="//@diagram/@compartments.62 //@diagram/@compartments.66 //@diagram/@compartments.72 //@diagram/@compartments.52 //@diagram/@compartments.36 //@diagram/@compartments.18 //@diagram/@compartments.82">
+ <diagramRunTimeClass
+ href="../../../plugin/org.eclipse.gmf.runtime.notation/model/notation.genmodel#//notation/Node"/>
+ <elementType
+ xsi:type="gmfgen:SpecializationType"
+ metamodelType="//@diagram/@childNodes.25/@elementType"/>
+ <viewmap
+ xsi:type="gmfgen:InnerClassViewmap"
+ className="SequentialUnitFigure"
+ classBody="
/**
 * @generated
 */
public class SequentialUnitFigure extends org.eclipse.draw2d.RoundedRectangle {


	/**
	 * @generated
	 */
	private org.eclipse.gmf.runtime.draw2d.ui.figures.WrappingLabel fFigureSequentialUnitLabelFigure; 
	/**
	 * @generated
	 */
	private org.eclipse.draw2d.RectangleFigure fSequentialUnitHelperUnitsCompartmentFigure; 
	/**
	 * @generated
	 */
	private org.eclipse.draw2d.RectangleFigure fSequentialUnitRefactoringUnitsCompartmentFigure; 


	/**
	 * @generated
	 */
	public SequentialUnitFigure() {
				this.setCornerDimensions(new org.eclipse.draw2d.geometry.Dimension(getMapMode().DPtoLP(8)
, getMapMode().DPtoLP(8)
));
this.setBorder(new org.eclipse.draw2d.MarginBorder(getMapMode().DPtoLP(5)
, getMapMode().DPtoLP(5)
, getMapMode().DPtoLP(5)
, getMapMode().DPtoLP(5)
));
		createContents();
	}
	/**
	 * @generated
	 */
	private void createContents(){


fFigureSequentialUnitLabelFigure = new org.eclipse.gmf.runtime.draw2d.ui.figures.WrappingLabel();
fFigureSequentialUnitLabelFigure.setText("SequentialUnit");
fFigureSequentialUnitLabelFigure.setMaximumSize(new org.eclipse.draw2d.geometry.Dimension(getMapMode().DPtoLP(10000)
, getMapMode().DPtoLP(50)
));

this.add(fFigureSequentialUnitLabelFigure);



fSequentialUnitHelperUnitsCompartmentFigure = new org.eclipse.draw2d.RectangleFigure();
fSequentialUnitHelperUnitsCompartmentFigure.setOutline(false);

this.add(fSequentialUnitHelperUnitsCompartmentFigure);



fSequentialUnitRefactoringUnitsCompartmentFigure = new org.eclipse.draw2d.RectangleFigure();
fSequentialUnitRefactoringUnitsCompartmentFigure.setOutline(false);

this.add(fSequentialUnitRefactoringUnitsCompartmentFigure);


	}





	/**
	 * @generated
	 */
	public org.eclipse.gmf.runtime.draw2d.ui.figures.WrappingLabel getFigureSequentialUnitLabelFigure() {
		return fFigureSequentialUnitLabelFigure;
	}
	/**
	 * @generated
	 */
	public org.eclipse.draw2d.RectangleFigure getSequentialUnitHelperUnitsCompartmentFigure() {
		return fSequentialUnitHelperUnitsCompartmentFigure;
	}
	/**
	 * @generated
	 */
	public org.eclipse.draw2d.RectangleFigure getSequentialUnitRefactoringUnitsCompartmentFigure() {
		return fSequentialUnitRefactoringUnitsCompartmentFigure;
	}


}

"/>
+ <behaviour
+ xsi:type="gmfgen:OpenDiagramBehaviour"/>
+ <modelFacet>
+ <metaClass
+ href="comrel.genmodel#//comrel/SequentialUnit"/>
+ <containmentMetaFeature
+ href="comrel.genmodel#//comrel/ConditionalUnit/then"/>
+ <childMetaFeature
+ href="comrel.genmodel#//comrel/ConditionalUnit/then"/>
+ </modelFacet>
+ <labels
+ visualID="5059"
+ editPartClassName="SequentialUnitNameTypeLblStrict5EditPart"
+ itemSemanticEditPolicyClassName="SequentialUnitNameTypeLblStrict5ItemSemanticEditPolicy"
+ notationViewFactoryClassName="SequentialUnitNameTypeLblStrictViewFactory">
+ <diagramRunTimeClass
+ href="../../../plugin/org.eclipse.gmf.runtime.notation/model/notation.genmodel#//notation/Node"/>
+ <viewmap
+ xsi:type="gmfgen:ParentAssignedViewmap"
+ getterName="getFigureSequentialUnitLabelFigure"
+ figureQualifiedClassName="org.eclipse.gmf.runtime.draw2d.ui.figures.WrappingLabel"/>
+ <modelFacet
+ xsi:type="gmfgen:FeatureLabelModelFacet"
+ parser="//@labelParsers/@implementations.0"
+ viewPattern="{0}:{1} -{2}-"
+ editorPattern="{0}:{1} -{2}-"
+ editPattern="{0}:{1} -{2}-">
+ <metaFeatures
+ href="comrel.genmodel#//comrel/NamedElement/name"/>
+ <metaFeatures
+ href="comrel.genmodel#//comrel/SequentialUnit/type"/>
+ <metaFeatures
+ href="comrel.genmodel#//comrel/SequentialUnit/lblStrict"/>
+ </modelFacet>
+ </labels>
+ </childNodes>
+ <childNodes
+ visualID="3070"
+ editPartClassName="SequentialUnit6EditPart"
+ itemSemanticEditPolicyClassName="SequentialUnit6ItemSemanticEditPolicy"
+ notationViewFactoryClassName="SequentialUnitViewFactory"
+ canonicalEditPolicyClassName="SequentialUnit6CanonicalEditPolicy"
+ childNodes="//@diagram/@childNodes.26 //@diagram/@childNodes.27"
+ compartments="//@diagram/@compartments.58 //@diagram/@compartments.59"
+ graphicalNodeEditPolicyClassName="SequentialUnit6GraphicalNodeEditPolicy"
+ createCommandClassName="SequentialUnit6CreateCommand"
+ containers="//@diagram/@compartments.59 //@diagram/@compartments.69 //@diagram/@compartments.57 //@diagram/@compartments.47 //@diagram/@compartments.31 //@diagram/@compartments.13 //@diagram/@compartments.79">
+ <diagramRunTimeClass
+ href="../../../plugin/org.eclipse.gmf.runtime.notation/model/notation.genmodel#//notation/Node"/>
+ <elementType
+ xsi:type="gmfgen:SpecializationType"
+ metamodelType="//@diagram/@childNodes.25/@elementType"/>
+ <viewmap
+ xsi:type="gmfgen:InnerClassViewmap"
+ className="SequentialUnitFigure"
+ classBody="
/**
 * @generated
 */
public class SequentialUnitFigure extends org.eclipse.draw2d.RoundedRectangle {


	/**
	 * @generated
	 */
	private org.eclipse.gmf.runtime.draw2d.ui.figures.WrappingLabel fFigureSequentialUnitLabelFigure; 
	/**
	 * @generated
	 */
	private org.eclipse.draw2d.RectangleFigure fSequentialUnitHelperUnitsCompartmentFigure; 
	/**
	 * @generated
	 */
	private org.eclipse.draw2d.RectangleFigure fSequentialUnitRefactoringUnitsCompartmentFigure; 


	/**
	 * @generated
	 */
	public SequentialUnitFigure() {
				this.setCornerDimensions(new org.eclipse.draw2d.geometry.Dimension(getMapMode().DPtoLP(8)
, getMapMode().DPtoLP(8)
));
this.setBorder(new org.eclipse.draw2d.MarginBorder(getMapMode().DPtoLP(5)
, getMapMode().DPtoLP(5)
, getMapMode().DPtoLP(5)
, getMapMode().DPtoLP(5)
));
		createContents();
	}
	/**
	 * @generated
	 */
	private void createContents(){


fFigureSequentialUnitLabelFigure = new org.eclipse.gmf.runtime.draw2d.ui.figures.WrappingLabel();
fFigureSequentialUnitLabelFigure.setText("SequentialUnit");
fFigureSequentialUnitLabelFigure.setMaximumSize(new org.eclipse.draw2d.geometry.Dimension(getMapMode().DPtoLP(10000)
, getMapMode().DPtoLP(50)
));

this.add(fFigureSequentialUnitLabelFigure);



fSequentialUnitHelperUnitsCompartmentFigure = new org.eclipse.draw2d.RectangleFigure();
fSequentialUnitHelperUnitsCompartmentFigure.setOutline(false);

this.add(fSequentialUnitHelperUnitsCompartmentFigure);



fSequentialUnitRefactoringUnitsCompartmentFigure = new org.eclipse.draw2d.RectangleFigure();
fSequentialUnitRefactoringUnitsCompartmentFigure.setOutline(false);

this.add(fSequentialUnitRefactoringUnitsCompartmentFigure);


	}





	/**
	 * @generated
	 */
	public org.eclipse.gmf.runtime.draw2d.ui.figures.WrappingLabel getFigureSequentialUnitLabelFigure() {
		return fFigureSequentialUnitLabelFigure;
	}
	/**
	 * @generated
	 */
	public org.eclipse.draw2d.RectangleFigure getSequentialUnitHelperUnitsCompartmentFigure() {
		return fSequentialUnitHelperUnitsCompartmentFigure;
	}
	/**
	 * @generated
	 */
	public org.eclipse.draw2d.RectangleFigure getSequentialUnitRefactoringUnitsCompartmentFigure() {
		return fSequentialUnitRefactoringUnitsCompartmentFigure;
	}


}

"/>
+ <behaviour
+ xsi:type="gmfgen:OpenDiagramBehaviour"/>
+ <modelFacet>
+ <metaClass
+ href="comrel.genmodel#//comrel/SequentialUnit"/>
+ <containmentMetaFeature
+ href="comrel.genmodel#//comrel/SequentialUnit/refactoringUnits"/>
+ <childMetaFeature
+ href="comrel.genmodel#//comrel/SequentialUnit/refactoringUnits"/>
+ </modelFacet>
+ <labels
+ visualID="5058"
+ editPartClassName="SequentialUnitNameTypeLblStrict6EditPart"
+ itemSemanticEditPolicyClassName="SequentialUnitNameTypeLblStrict6ItemSemanticEditPolicy"
+ notationViewFactoryClassName="SequentialUnitNameTypeLblStrictViewFactory">
+ <diagramRunTimeClass
+ href="../../../plugin/org.eclipse.gmf.runtime.notation/model/notation.genmodel#//notation/Node"/>
+ <viewmap
+ xsi:type="gmfgen:ParentAssignedViewmap"
+ getterName="getFigureSequentialUnitLabelFigure"
+ figureQualifiedClassName="org.eclipse.gmf.runtime.draw2d.ui.figures.WrappingLabel"/>
+ <modelFacet
+ xsi:type="gmfgen:FeatureLabelModelFacet"
+ parser="//@labelParsers/@implementations.0"
+ viewPattern="{0}:{1} -{2}-"
+ editorPattern="{0}:{1} -{2}-"
+ editPattern="{0}:{1} -{2}-">
+ <metaFeatures
+ href="comrel.genmodel#//comrel/NamedElement/name"/>
+ <metaFeatures
+ href="comrel.genmodel#//comrel/SequentialUnit/type"/>
+ <metaFeatures
+ href="comrel.genmodel#//comrel/SequentialUnit/lblStrict"/>
+ </modelFacet>
+ </labels>
+ </childNodes>
+ <childNodes
+ visualID="3071"
+ editPartClassName="ConditionalUnit5EditPart"
+ itemSemanticEditPolicyClassName="ConditionalUnit5ItemSemanticEditPolicy"
+ notationViewFactoryClassName="ConditionalUnitViewFactory"
+ canonicalEditPolicyClassName="ConditionalUnit5CanonicalEditPolicy"
+ childNodes="//@diagram/@childNodes.30 //@diagram/@childNodes.31"
+ compartments="//@diagram/@compartments.60 //@diagram/@compartments.61 //@diagram/@compartments.62 //@diagram/@compartments.63"
+ graphicalNodeEditPolicyClassName="ConditionalUnit5GraphicalNodeEditPolicy"
+ createCommandClassName="ConditionalUnit5CreateCommand"
+ containers="//@diagram/@compartments.69 //@diagram/@compartments.59 //@diagram/@compartments.57 //@diagram/@compartments.47 //@diagram/@compartments.31 //@diagram/@compartments.13 //@diagram/@compartments.79">
+ <diagramRunTimeClass
+ href="../../../plugin/org.eclipse.gmf.runtime.notation/model/notation.genmodel#//notation/Node"/>
+ <elementType
+ xsi:type="gmfgen:SpecializationType"
+ metamodelType="//@diagram/@childNodes.29/@elementType"/>
+ <viewmap
+ xsi:type="gmfgen:InnerClassViewmap"
+ className="ConditionalUnitFigure"
+ classBody="
/**
 * @generated
 */
public class ConditionalUnitFigure extends org.eclipse.draw2d.RoundedRectangle {


	/**
	 * @generated
	 */
	private org.eclipse.gmf.runtime.draw2d.ui.figures.WrappingLabel fFigureConditionalUnitLabelFigure; 
	/**
	 * @generated
	 */
	private org.eclipse.draw2d.RectangleFigure fConditionalUnitIfCompartmentFigure; 
	/**
	 * @generated
	 */
	private org.eclipse.draw2d.RectangleFigure fConditionalUnitHelperUnitsCompartmentFigure; 
	/**
	 * @generated
	 */
	private org.eclipse.draw2d.RectangleFigure fConditionalUnitThenCompartmentFigure; 
	/**
	 * @generated
	 */
	private org.eclipse.draw2d.RectangleFigure fConditionalUnitElseCompartmentFigure; 


	/**
	 * @generated
	 */
	public ConditionalUnitFigure() {
				this.setCornerDimensions(new org.eclipse.draw2d.geometry.Dimension(getMapMode().DPtoLP(8)
, getMapMode().DPtoLP(8)
));
this.setBorder(new org.eclipse.draw2d.MarginBorder(getMapMode().DPtoLP(5)
, getMapMode().DPtoLP(5)
, getMapMode().DPtoLP(5)
, getMapMode().DPtoLP(5)
));
		createContents();
	}
	/**
	 * @generated
	 */
	private void createContents(){


fFigureConditionalUnitLabelFigure = new org.eclipse.gmf.runtime.draw2d.ui.figures.WrappingLabel();
fFigureConditionalUnitLabelFigure.setText("ConditionalUnit");
fFigureConditionalUnitLabelFigure.setMaximumSize(new org.eclipse.draw2d.geometry.Dimension(getMapMode().DPtoLP(10000)
, getMapMode().DPtoLP(50)
));

this.add(fFigureConditionalUnitLabelFigure);



fConditionalUnitIfCompartmentFigure = new org.eclipse.draw2d.RectangleFigure();
fConditionalUnitIfCompartmentFigure.setOutline(false);

this.add(fConditionalUnitIfCompartmentFigure);



fConditionalUnitHelperUnitsCompartmentFigure = new org.eclipse.draw2d.RectangleFigure();
fConditionalUnitHelperUnitsCompartmentFigure.setOutline(false);

this.add(fConditionalUnitHelperUnitsCompartmentFigure);



fConditionalUnitThenCompartmentFigure = new org.eclipse.draw2d.RectangleFigure();
fConditionalUnitThenCompartmentFigure.setOutline(false);

this.add(fConditionalUnitThenCompartmentFigure);



fConditionalUnitElseCompartmentFigure = new org.eclipse.draw2d.RectangleFigure();
fConditionalUnitElseCompartmentFigure.setOutline(false);

this.add(fConditionalUnitElseCompartmentFigure);


	}





	/**
	 * @generated
	 */
	public org.eclipse.gmf.runtime.draw2d.ui.figures.WrappingLabel getFigureConditionalUnitLabelFigure() {
		return fFigureConditionalUnitLabelFigure;
	}
	/**
	 * @generated
	 */
	public org.eclipse.draw2d.RectangleFigure getConditionalUnitIfCompartmentFigure() {
		return fConditionalUnitIfCompartmentFigure;
	}
	/**
	 * @generated
	 */
	public org.eclipse.draw2d.RectangleFigure getConditionalUnitHelperUnitsCompartmentFigure() {
		return fConditionalUnitHelperUnitsCompartmentFigure;
	}
	/**
	 * @generated
	 */
	public org.eclipse.draw2d.RectangleFigure getConditionalUnitThenCompartmentFigure() {
		return fConditionalUnitThenCompartmentFigure;
	}
	/**
	 * @generated
	 */
	public org.eclipse.draw2d.RectangleFigure getConditionalUnitElseCompartmentFigure() {
		return fConditionalUnitElseCompartmentFigure;
	}


}

"/>
+ <behaviour
+ xsi:type="gmfgen:OpenDiagramBehaviour"/>
+ <modelFacet>
+ <metaClass
+ href="comrel.genmodel#//comrel/ConditionalUnit"/>
+ <containmentMetaFeature
+ href="comrel.genmodel#//comrel/SequentialUnit/refactoringUnits"/>
+ <childMetaFeature
+ href="comrel.genmodel#//comrel/SequentialUnit/refactoringUnits"/>
+ </modelFacet>
+ <labels
+ visualID="5057"
+ editPartClassName="ConditionalUnitNameType5EditPart"
+ itemSemanticEditPolicyClassName="ConditionalUnitNameType5ItemSemanticEditPolicy"
+ notationViewFactoryClassName="ConditionalUnitNameTypeViewFactory">
+ <diagramRunTimeClass
+ href="../../../plugin/org.eclipse.gmf.runtime.notation/model/notation.genmodel#//notation/Node"/>
+ <viewmap
+ xsi:type="gmfgen:ParentAssignedViewmap"
+ getterName="getFigureConditionalUnitLabelFigure"
+ figureQualifiedClassName="org.eclipse.gmf.runtime.draw2d.ui.figures.WrappingLabel"/>
+ <modelFacet
+ xsi:type="gmfgen:FeatureLabelModelFacet"
+ parser="//@labelParsers/@implementations.0"
+ viewPattern="{0}:{1}"
+ editorPattern="{0}:{1}"
+ editPattern="{0}:{1}">
+ <metaFeatures
+ href="comrel.genmodel#//comrel/NamedElement/name"/>
+ <metaFeatures
+ href="comrel.genmodel#//comrel/ConditionalUnit/type"/>
+ </modelFacet>
+ </labels>
+ </childNodes>
+ <childNodes
+ visualID="3072"
+ editPartClassName="ConditionalUnit6EditPart"
+ itemSemanticEditPolicyClassName="ConditionalUnit6ItemSemanticEditPolicy"
+ notationViewFactoryClassName="ConditionalUnitViewFactory"
+ canonicalEditPolicyClassName="ConditionalUnit6CanonicalEditPolicy"
+ childNodes="//@diagram/@childNodes.30 //@diagram/@childNodes.31"
+ compartments="//@diagram/@compartments.64 //@diagram/@compartments.65 //@diagram/@compartments.66 //@diagram/@compartments.67"
+ graphicalNodeEditPolicyClassName="ConditionalUnit6GraphicalNodeEditPolicy"
+ createCommandClassName="ConditionalUnit6CreateCommand"
+ containers="//@diagram/@compartments.66 //@diagram/@compartments.72 //@diagram/@compartments.62 //@diagram/@compartments.52 //@diagram/@compartments.36 //@diagram/@compartments.18 //@diagram/@compartments.82">
+ <diagramRunTimeClass
+ href="../../../plugin/org.eclipse.gmf.runtime.notation/model/notation.genmodel#//notation/Node"/>
+ <elementType
+ xsi:type="gmfgen:SpecializationType"
+ metamodelType="//@diagram/@childNodes.29/@elementType"/>
+ <viewmap
+ xsi:type="gmfgen:InnerClassViewmap"
+ className="ConditionalUnitFigure"
+ classBody="
/**
 * @generated
 */
public class ConditionalUnitFigure extends org.eclipse.draw2d.RoundedRectangle {


	/**
	 * @generated
	 */
	private org.eclipse.gmf.runtime.draw2d.ui.figures.WrappingLabel fFigureConditionalUnitLabelFigure; 
	/**
	 * @generated
	 */
	private org.eclipse.draw2d.RectangleFigure fConditionalUnitIfCompartmentFigure; 
	/**
	 * @generated
	 */
	private org.eclipse.draw2d.RectangleFigure fConditionalUnitHelperUnitsCompartmentFigure; 
	/**
	 * @generated
	 */
	private org.eclipse.draw2d.RectangleFigure fConditionalUnitThenCompartmentFigure; 
	/**
	 * @generated
	 */
	private org.eclipse.draw2d.RectangleFigure fConditionalUnitElseCompartmentFigure; 


	/**
	 * @generated
	 */
	public ConditionalUnitFigure() {
				this.setCornerDimensions(new org.eclipse.draw2d.geometry.Dimension(getMapMode().DPtoLP(8)
, getMapMode().DPtoLP(8)
));
this.setBorder(new org.eclipse.draw2d.MarginBorder(getMapMode().DPtoLP(5)
, getMapMode().DPtoLP(5)
, getMapMode().DPtoLP(5)
, getMapMode().DPtoLP(5)
));
		createContents();
	}
	/**
	 * @generated
	 */
	private void createContents(){


fFigureConditionalUnitLabelFigure = new org.eclipse.gmf.runtime.draw2d.ui.figures.WrappingLabel();
fFigureConditionalUnitLabelFigure.setText("ConditionalUnit");
fFigureConditionalUnitLabelFigure.setMaximumSize(new org.eclipse.draw2d.geometry.Dimension(getMapMode().DPtoLP(10000)
, getMapMode().DPtoLP(50)
));

this.add(fFigureConditionalUnitLabelFigure);



fConditionalUnitIfCompartmentFigure = new org.eclipse.draw2d.RectangleFigure();
fConditionalUnitIfCompartmentFigure.setOutline(false);

this.add(fConditionalUnitIfCompartmentFigure);



fConditionalUnitHelperUnitsCompartmentFigure = new org.eclipse.draw2d.RectangleFigure();
fConditionalUnitHelperUnitsCompartmentFigure.setOutline(false);

this.add(fConditionalUnitHelperUnitsCompartmentFigure);



fConditionalUnitThenCompartmentFigure = new org.eclipse.draw2d.RectangleFigure();
fConditionalUnitThenCompartmentFigure.setOutline(false);

this.add(fConditionalUnitThenCompartmentFigure);



fConditionalUnitElseCompartmentFigure = new org.eclipse.draw2d.RectangleFigure();
fConditionalUnitElseCompartmentFigure.setOutline(false);

this.add(fConditionalUnitElseCompartmentFigure);


	}





	/**
	 * @generated
	 */
	public org.eclipse.gmf.runtime.draw2d.ui.figures.WrappingLabel getFigureConditionalUnitLabelFigure() {
		return fFigureConditionalUnitLabelFigure;
	}
	/**
	 * @generated
	 */
	public org.eclipse.draw2d.RectangleFigure getConditionalUnitIfCompartmentFigure() {
		return fConditionalUnitIfCompartmentFigure;
	}
	/**
	 * @generated
	 */
	public org.eclipse.draw2d.RectangleFigure getConditionalUnitHelperUnitsCompartmentFigure() {
		return fConditionalUnitHelperUnitsCompartmentFigure;
	}
	/**
	 * @generated
	 */
	public org.eclipse.draw2d.RectangleFigure getConditionalUnitThenCompartmentFigure() {
		return fConditionalUnitThenCompartmentFigure;
	}
	/**
	 * @generated
	 */
	public org.eclipse.draw2d.RectangleFigure getConditionalUnitElseCompartmentFigure() {
		return fConditionalUnitElseCompartmentFigure;
	}


}

"/>
+ <behaviour
+ xsi:type="gmfgen:OpenDiagramBehaviour"/>
+ <modelFacet>
+ <metaClass
+ href="comrel.genmodel#//comrel/ConditionalUnit"/>
+ <containmentMetaFeature
+ href="comrel.genmodel#//comrel/ConditionalUnit/then"/>
+ <childMetaFeature
+ href="comrel.genmodel#//comrel/ConditionalUnit/then"/>
+ </modelFacet>
+ <labels
+ visualID="5056"
+ editPartClassName="ConditionalUnitNameType6EditPart"
+ itemSemanticEditPolicyClassName="ConditionalUnitNameType6ItemSemanticEditPolicy"
+ notationViewFactoryClassName="ConditionalUnitNameTypeViewFactory">
+ <diagramRunTimeClass
+ href="../../../plugin/org.eclipse.gmf.runtime.notation/model/notation.genmodel#//notation/Node"/>
+ <viewmap
+ xsi:type="gmfgen:ParentAssignedViewmap"
+ getterName="getFigureConditionalUnitLabelFigure"
+ figureQualifiedClassName="org.eclipse.gmf.runtime.draw2d.ui.figures.WrappingLabel"/>
+ <modelFacet
+ xsi:type="gmfgen:FeatureLabelModelFacet"
+ parser="//@labelParsers/@implementations.0"
+ viewPattern="{0}:{1}"
+ editorPattern="{0}:{1}"
+ editPattern="{0}:{1}">
+ <metaFeatures
+ href="comrel.genmodel#//comrel/NamedElement/name"/>
+ <metaFeatures
+ href="comrel.genmodel#//comrel/ConditionalUnit/type"/>
+ </modelFacet>
+ </labels>
+ </childNodes>
+ <childNodes
+ visualID="3073"
+ editPartClassName="SequentialUnit7EditPart"
+ itemSemanticEditPolicyClassName="SequentialUnit7ItemSemanticEditPolicy"
+ notationViewFactoryClassName="SequentialUnitViewFactory"
+ canonicalEditPolicyClassName="SequentialUnit7CanonicalEditPolicy"
+ childNodes="//@diagram/@childNodes.26 //@diagram/@childNodes.27"
+ compartments="//@diagram/@compartments.68 //@diagram/@compartments.69"
+ graphicalNodeEditPolicyClassName="SequentialUnit7GraphicalNodeEditPolicy"
+ createCommandClassName="SequentialUnit7CreateCommand"
+ containers="//@diagram/@compartments.67 //@diagram/@compartments.73 //@diagram/@compartments.63 //@diagram/@compartments.53 //@diagram/@compartments.37 //@diagram/@compartments.19 //@diagram/@compartments.83">
+ <diagramRunTimeClass
+ href="../../../plugin/org.eclipse.gmf.runtime.notation/model/notation.genmodel#//notation/Node"/>
+ <elementType
+ xsi:type="gmfgen:SpecializationType"
+ metamodelType="//@diagram/@childNodes.25/@elementType"/>
+ <viewmap
+ xsi:type="gmfgen:InnerClassViewmap"
+ className="SequentialUnitFigure"
+ classBody="
/**
 * @generated
 */
public class SequentialUnitFigure extends org.eclipse.draw2d.RoundedRectangle {


	/**
	 * @generated
	 */
	private org.eclipse.gmf.runtime.draw2d.ui.figures.WrappingLabel fFigureSequentialUnitLabelFigure; 
	/**
	 * @generated
	 */
	private org.eclipse.draw2d.RectangleFigure fSequentialUnitHelperUnitsCompartmentFigure; 
	/**
	 * @generated
	 */
	private org.eclipse.draw2d.RectangleFigure fSequentialUnitRefactoringUnitsCompartmentFigure; 


	/**
	 * @generated
	 */
	public SequentialUnitFigure() {
				this.setCornerDimensions(new org.eclipse.draw2d.geometry.Dimension(getMapMode().DPtoLP(8)
, getMapMode().DPtoLP(8)
));
this.setBorder(new org.eclipse.draw2d.MarginBorder(getMapMode().DPtoLP(5)
, getMapMode().DPtoLP(5)
, getMapMode().DPtoLP(5)
, getMapMode().DPtoLP(5)
));
		createContents();
	}
	/**
	 * @generated
	 */
	private void createContents(){


fFigureSequentialUnitLabelFigure = new org.eclipse.gmf.runtime.draw2d.ui.figures.WrappingLabel();
fFigureSequentialUnitLabelFigure.setText("SequentialUnit");
fFigureSequentialUnitLabelFigure.setMaximumSize(new org.eclipse.draw2d.geometry.Dimension(getMapMode().DPtoLP(10000)
, getMapMode().DPtoLP(50)
));

this.add(fFigureSequentialUnitLabelFigure);



fSequentialUnitHelperUnitsCompartmentFigure = new org.eclipse.draw2d.RectangleFigure();
fSequentialUnitHelperUnitsCompartmentFigure.setOutline(false);

this.add(fSequentialUnitHelperUnitsCompartmentFigure);



fSequentialUnitRefactoringUnitsCompartmentFigure = new org.eclipse.draw2d.RectangleFigure();
fSequentialUnitRefactoringUnitsCompartmentFigure.setOutline(false);

this.add(fSequentialUnitRefactoringUnitsCompartmentFigure);


	}





	/**
	 * @generated
	 */
	public org.eclipse.gmf.runtime.draw2d.ui.figures.WrappingLabel getFigureSequentialUnitLabelFigure() {
		return fFigureSequentialUnitLabelFigure;
	}
	/**
	 * @generated
	 */
	public org.eclipse.draw2d.RectangleFigure getSequentialUnitHelperUnitsCompartmentFigure() {
		return fSequentialUnitHelperUnitsCompartmentFigure;
	}
	/**
	 * @generated
	 */
	public org.eclipse.draw2d.RectangleFigure getSequentialUnitRefactoringUnitsCompartmentFigure() {
		return fSequentialUnitRefactoringUnitsCompartmentFigure;
	}


}

"/>
+ <behaviour
+ xsi:type="gmfgen:OpenDiagramBehaviour"/>
+ <modelFacet>
+ <metaClass
+ href="comrel.genmodel#//comrel/SequentialUnit"/>
+ <containmentMetaFeature
+ href="comrel.genmodel#//comrel/ConditionalUnit/else"/>
+ <childMetaFeature
+ href="comrel.genmodel#//comrel/ConditionalUnit/else"/>
+ </modelFacet>
+ <labels
+ visualID="5051"
+ editPartClassName="SequentialUnitNameTypeLblStrict7EditPart"
+ itemSemanticEditPolicyClassName="SequentialUnitNameTypeLblStrict7ItemSemanticEditPolicy"
+ notationViewFactoryClassName="SequentialUnitNameTypeLblStrictViewFactory">
+ <diagramRunTimeClass
+ href="../../../plugin/org.eclipse.gmf.runtime.notation/model/notation.genmodel#//notation/Node"/>
+ <viewmap
+ xsi:type="gmfgen:ParentAssignedViewmap"
+ getterName="getFigureSequentialUnitLabelFigure"
+ figureQualifiedClassName="org.eclipse.gmf.runtime.draw2d.ui.figures.WrappingLabel"/>
+ <modelFacet
+ xsi:type="gmfgen:FeatureLabelModelFacet"
+ parser="//@labelParsers/@implementations.0"
+ viewPattern="{0}:{1} -{2}-"
+ editorPattern="{0}:{1} -{2}-"
+ editPattern="{0}:{1} -{2}-">
+ <metaFeatures
+ href="comrel.genmodel#//comrel/NamedElement/name"/>
+ <metaFeatures
+ href="comrel.genmodel#//comrel/SequentialUnit/type"/>
+ <metaFeatures
+ href="comrel.genmodel#//comrel/SequentialUnit/lblStrict"/>
+ </modelFacet>
+ </labels>
+ </childNodes>
+ <childNodes
+ visualID="3074"
+ editPartClassName="AtomicUnit5EditPart"
+ itemSemanticEditPolicyClassName="AtomicUnit5ItemSemanticEditPolicy"
+ notationViewFactoryClassName="AtomicUnitViewFactory"
+ canonicalEditPolicyClassName="AtomicUnit5CanonicalEditPolicy"
+ childNodes="//@diagram/@childNodes.34"
+ graphicalNodeEditPolicyClassName="AtomicUnit5GraphicalNodeEditPolicy"
+ createCommandClassName="AtomicUnit5CreateCommand"
+ containers="//@diagram/@compartments.69 //@diagram/@compartments.59 //@diagram/@compartments.57 //@diagram/@compartments.47 //@diagram/@compartments.31 //@diagram/@compartments.13 //@diagram/@compartments.79">
+ <diagramRunTimeClass
+ href="../../../plugin/org.eclipse.gmf.runtime.notation/model/notation.genmodel#//notation/Node"/>
+ <elementType
+ xsi:type="gmfgen:SpecializationType"
+ metamodelType="//@diagram/@childNodes.33/@elementType"/>
+ <viewmap
+ xsi:type="gmfgen:InnerClassViewmap"
+ className="AtomicUnitFigure"
+ classBody="
/**
 * @generated
 */
public class AtomicUnitFigure extends org.eclipse.draw2d.RoundedRectangle {


	/**
	 * @generated
	 */
	private org.eclipse.gmf.runtime.draw2d.ui.figures.WrappingLabel fFigureAtomicUnitLabelFigure; 


	/**
	 * @generated
	 */
	public AtomicUnitFigure() {
				this.setCornerDimensions(new org.eclipse.draw2d.geometry.Dimension(getMapMode().DPtoLP(8)
, getMapMode().DPtoLP(8)
));
this.setBorder(new org.eclipse.draw2d.MarginBorder(getMapMode().DPtoLP(5)
, getMapMode().DPtoLP(5)
, getMapMode().DPtoLP(5)
, getMapMode().DPtoLP(5)
));
		createContents();
	}
	/**
	 * @generated
	 */
	private void createContents(){


fFigureAtomicUnitLabelFigure = new org.eclipse.gmf.runtime.draw2d.ui.figures.WrappingLabel();
fFigureAtomicUnitLabelFigure.setText("AtomicUnit");

this.add(fFigureAtomicUnitLabelFigure);


	}





	/**
	 * @generated
	 */
	public org.eclipse.gmf.runtime.draw2d.ui.figures.WrappingLabel getFigureAtomicUnitLabelFigure() {
		return fFigureAtomicUnitLabelFigure;
	}


}

"/>
+ <modelFacet>
+ <metaClass
+ href="comrel.genmodel#//comrel/AtomicUnit"/>
+ <containmentMetaFeature
+ href="comrel.genmodel#//comrel/SequentialUnit/refactoringUnits"/>
+ <childMetaFeature
+ href="comrel.genmodel#//comrel/SequentialUnit/refactoringUnits"/>
+ </modelFacet>
+ <labels
+ visualID="5050"
+ editPartClassName="AtomicUnitLabelType5EditPart"
+ itemSemanticEditPolicyClassName="AtomicUnitLabelType5ItemSemanticEditPolicy"
+ notationViewFactoryClassName="AtomicUnitLabelTypeViewFactory">
+ <diagramRunTimeClass
+ href="../../../plugin/org.eclipse.gmf.runtime.notation/model/notation.genmodel#//notation/Node"/>
+ <viewmap
+ xsi:type="gmfgen:ParentAssignedViewmap"
+ getterName="getFigureAtomicUnitLabelFigure"
+ figureQualifiedClassName="org.eclipse.gmf.runtime.draw2d.ui.figures.WrappingLabel"/>
+ <modelFacet
+ xsi:type="gmfgen:FeatureLabelModelFacet"
+ parser="//@labelParsers/@implementations.0"
+ viewPattern="{0}:{1}"
+ editorPattern="{0}:{1}"
+ editPattern="{0}:{1}">
+ <metaFeatures
+ href="comrel.genmodel#//comrel/AtomicUnit/label"/>
+ <metaFeatures
+ href="comrel.genmodel#//comrel/AtomicUnit/type"/>
+ </modelFacet>
+ </labels>
+ </childNodes>
+ <childNodes
+ visualID="3075"
+ editPartClassName="ConditionalUnit7EditPart"
+ itemSemanticEditPolicyClassName="ConditionalUnit7ItemSemanticEditPolicy"
+ notationViewFactoryClassName="ConditionalUnitViewFactory"
+ canonicalEditPolicyClassName="ConditionalUnit7CanonicalEditPolicy"
+ childNodes="//@diagram/@childNodes.30 //@diagram/@childNodes.31"
+ compartments="//@diagram/@compartments.70 //@diagram/@compartments.71 //@diagram/@compartments.72 //@diagram/@compartments.73"
+ graphicalNodeEditPolicyClassName="ConditionalUnit7GraphicalNodeEditPolicy"
+ createCommandClassName="ConditionalUnit7CreateCommand"
+ containers="//@diagram/@compartments.73 //@diagram/@compartments.67 //@diagram/@compartments.63 //@diagram/@compartments.53 //@diagram/@compartments.37 //@diagram/@compartments.19 //@diagram/@compartments.83">
+ <diagramRunTimeClass
+ href="../../../plugin/org.eclipse.gmf.runtime.notation/model/notation.genmodel#//notation/Node"/>
+ <elementType
+ xsi:type="gmfgen:SpecializationType"
+ metamodelType="//@diagram/@childNodes.29/@elementType"/>
+ <viewmap
+ xsi:type="gmfgen:InnerClassViewmap"
+ className="ConditionalUnitFigure"
+ classBody="
/**
 * @generated
 */
public class ConditionalUnitFigure extends org.eclipse.draw2d.RoundedRectangle {


	/**
	 * @generated
	 */
	private org.eclipse.gmf.runtime.draw2d.ui.figures.WrappingLabel fFigureConditionalUnitLabelFigure; 
	/**
	 * @generated
	 */
	private org.eclipse.draw2d.RectangleFigure fConditionalUnitIfCompartmentFigure; 
	/**
	 * @generated
	 */
	private org.eclipse.draw2d.RectangleFigure fConditionalUnitHelperUnitsCompartmentFigure; 
	/**
	 * @generated
	 */
	private org.eclipse.draw2d.RectangleFigure fConditionalUnitThenCompartmentFigure; 
	/**
	 * @generated
	 */
	private org.eclipse.draw2d.RectangleFigure fConditionalUnitElseCompartmentFigure; 


	/**
	 * @generated
	 */
	public ConditionalUnitFigure() {
				this.setCornerDimensions(new org.eclipse.draw2d.geometry.Dimension(getMapMode().DPtoLP(8)
, getMapMode().DPtoLP(8)
));
this.setBorder(new org.eclipse.draw2d.MarginBorder(getMapMode().DPtoLP(5)
, getMapMode().DPtoLP(5)
, getMapMode().DPtoLP(5)
, getMapMode().DPtoLP(5)
));
		createContents();
	}
	/**
	 * @generated
	 */
	private void createContents(){


fFigureConditionalUnitLabelFigure = new org.eclipse.gmf.runtime.draw2d.ui.figures.WrappingLabel();
fFigureConditionalUnitLabelFigure.setText("ConditionalUnit");
fFigureConditionalUnitLabelFigure.setMaximumSize(new org.eclipse.draw2d.geometry.Dimension(getMapMode().DPtoLP(10000)
, getMapMode().DPtoLP(50)
));

this.add(fFigureConditionalUnitLabelFigure);



fConditionalUnitIfCompartmentFigure = new org.eclipse.draw2d.RectangleFigure();
fConditionalUnitIfCompartmentFigure.setOutline(false);

this.add(fConditionalUnitIfCompartmentFigure);



fConditionalUnitHelperUnitsCompartmentFigure = new org.eclipse.draw2d.RectangleFigure();
fConditionalUnitHelperUnitsCompartmentFigure.setOutline(false);

this.add(fConditionalUnitHelperUnitsCompartmentFigure);



fConditionalUnitThenCompartmentFigure = new org.eclipse.draw2d.RectangleFigure();
fConditionalUnitThenCompartmentFigure.setOutline(false);

this.add(fConditionalUnitThenCompartmentFigure);



fConditionalUnitElseCompartmentFigure = new org.eclipse.draw2d.RectangleFigure();
fConditionalUnitElseCompartmentFigure.setOutline(false);

this.add(fConditionalUnitElseCompartmentFigure);


	}





	/**
	 * @generated
	 */
	public org.eclipse.gmf.runtime.draw2d.ui.figures.WrappingLabel getFigureConditionalUnitLabelFigure() {
		return fFigureConditionalUnitLabelFigure;
	}
	/**
	 * @generated
	 */
	public org.eclipse.draw2d.RectangleFigure getConditionalUnitIfCompartmentFigure() {
		return fConditionalUnitIfCompartmentFigure;
	}
	/**
	 * @generated
	 */
	public org.eclipse.draw2d.RectangleFigure getConditionalUnitHelperUnitsCompartmentFigure() {
		return fConditionalUnitHelperUnitsCompartmentFigure;
	}
	/**
	 * @generated
	 */
	public org.eclipse.draw2d.RectangleFigure getConditionalUnitThenCompartmentFigure() {
		return fConditionalUnitThenCompartmentFigure;
	}
	/**
	 * @generated
	 */
	public org.eclipse.draw2d.RectangleFigure getConditionalUnitElseCompartmentFigure() {
		return fConditionalUnitElseCompartmentFigure;
	}


}

"/>
+ <behaviour
+ xsi:type="gmfgen:OpenDiagramBehaviour"/>
+ <modelFacet>
+ <metaClass
+ href="comrel.genmodel#//comrel/ConditionalUnit"/>
+ <containmentMetaFeature
+ href="comrel.genmodel#//comrel/ConditionalUnit/else"/>
+ <childMetaFeature
+ href="comrel.genmodel#//comrel/ConditionalUnit/else"/>
+ </modelFacet>
+ <labels
+ visualID="5055"
+ editPartClassName="ConditionalUnitNameType7EditPart"
+ itemSemanticEditPolicyClassName="ConditionalUnitNameType7ItemSemanticEditPolicy"
+ notationViewFactoryClassName="ConditionalUnitNameTypeViewFactory">
+ <diagramRunTimeClass
+ href="../../../plugin/org.eclipse.gmf.runtime.notation/model/notation.genmodel#//notation/Node"/>
+ <viewmap
+ xsi:type="gmfgen:ParentAssignedViewmap"
+ getterName="getFigureConditionalUnitLabelFigure"
+ figureQualifiedClassName="org.eclipse.gmf.runtime.draw2d.ui.figures.WrappingLabel"/>
+ <modelFacet
+ xsi:type="gmfgen:FeatureLabelModelFacet"
+ parser="//@labelParsers/@implementations.0"
+ viewPattern="{0}:{1}"
+ editorPattern="{0}:{1}"
+ editPattern="{0}:{1}">
+ <metaFeatures
+ href="comrel.genmodel#//comrel/NamedElement/name"/>
+ <metaFeatures
+ href="comrel.genmodel#//comrel/ConditionalUnit/type"/>
+ </modelFacet>
+ </labels>
+ </childNodes>
+ <childNodes
+ visualID="3076"
+ editPartClassName="ConditionCheckEditPart"
+ itemSemanticEditPolicyClassName="ConditionCheckItemSemanticEditPolicy"
+ notationViewFactoryClassName="ConditionCheckViewFactory"
+ canonicalEditPolicyClassName="ConditionCheckCanonicalEditPolicy"
+ graphicalNodeEditPolicyClassName="ConditionCheckGraphicalNodeEditPolicy"
+ createCommandClassName="ConditionCheckCreateCommand"
+ containers="//@diagram/@compartments.70 //@diagram/@compartments.64 //@diagram/@compartments.60 //@diagram/@compartments.50 //@diagram/@compartments.34 //@diagram/@compartments.16 //@diagram/@compartments.80">
+ <diagramRunTimeClass
+ href="../../../plugin/org.eclipse.gmf.runtime.notation/model/notation.genmodel#//notation/Node"/>
+ <elementType
+ xsi:type="gmfgen:MetamodelType"
+ editHelperClassName="ConditionCheckEditHelper"/>
+ <viewmap
+ xsi:type="gmfgen:InnerClassViewmap"
+ className="ConditionCheckFigure"
+ classBody="
/**
 * @generated
 */
public class ConditionCheckFigure extends org.eclipse.draw2d.RoundedRectangle {


	/**
	 * @generated
	 */
	private org.eclipse.gmf.runtime.draw2d.ui.figures.WrappingLabel fFigureConditionCheckLabelFigure; 


	/**
	 * @generated
	 */
	public ConditionCheckFigure() {
				this.setCornerDimensions(new org.eclipse.draw2d.geometry.Dimension(getMapMode().DPtoLP(8)
, getMapMode().DPtoLP(8)
));
this.setBorder(new org.eclipse.draw2d.MarginBorder(getMapMode().DPtoLP(5)
, getMapMode().DPtoLP(5)
, getMapMode().DPtoLP(5)
, getMapMode().DPtoLP(5)
));
		createContents();
	}
	/**
	 * @generated
	 */
	private void createContents(){


fFigureConditionCheckLabelFigure = new org.eclipse.gmf.runtime.draw2d.ui.figures.WrappingLabel();
fFigureConditionCheckLabelFigure.setText("ConditionCheck");

this.add(fFigureConditionCheckLabelFigure);


	}





	/**
	 * @generated
	 */
	public org.eclipse.gmf.runtime.draw2d.ui.figures.WrappingLabel getFigureConditionCheckLabelFigure() {
		return fFigureConditionCheckLabelFigure;
	}


}

"/>
+ <modelFacet>
+ <metaClass
+ href="comrel.genmodel#//comrel/ConditionCheck"/>
+ <containmentMetaFeature
+ href="comrel.genmodel#//comrel/ConditionalUnit/if"/>
+ <childMetaFeature
+ href="comrel.genmodel#//comrel/ConditionalUnit/if"/>
+ </modelFacet>
+ <labels
+ visualID="5052"
+ editPartClassName="ConditionCheckNameTypeSpecEditPart"
+ itemSemanticEditPolicyClassName="ConditionCheckNameTypeSpecItemSemanticEditPolicy"
+ notationViewFactoryClassName="ConditionCheckNameTypeSpecViewFactory">
+ <diagramRunTimeClass
+ href="../../../plugin/org.eclipse.gmf.runtime.notation/model/notation.genmodel#//notation/Node"/>
+ <viewmap
+ xsi:type="gmfgen:ParentAssignedViewmap"
+ getterName="getFigureConditionCheckLabelFigure"
+ figureQualifiedClassName="org.eclipse.gmf.runtime.draw2d.ui.figures.WrappingLabel"/>
+ <modelFacet
+ xsi:type="gmfgen:FeatureLabelModelFacet"
+ parser="//@labelParsers/@implementations.0"
+ viewPattern="{0}:{1} -{2}-"
+ editorPattern="{0}:{1} -{2}-"
+ editPattern="{0}:{1} -{2}-">
+ <metaFeatures
+ href="comrel.genmodel#//comrel/NamedElement/name"/>
+ <metaFeatures
+ href="comrel.genmodel#//comrel/ConditionCheck/type"/>
+ <metaFeatures
+ href="comrel.genmodel#//comrel/ConditionCheck/spec"/>
+ </modelFacet>
+ </labels>
+ </childNodes>
+ <childNodes
+ visualID="3077"
+ editPartClassName="AtomicUnit6EditPart"
+ itemSemanticEditPolicyClassName="AtomicUnit6ItemSemanticEditPolicy"
+ notationViewFactoryClassName="AtomicUnitViewFactory"
+ canonicalEditPolicyClassName="AtomicUnit6CanonicalEditPolicy"
+ childNodes="//@diagram/@childNodes.34"
+ graphicalNodeEditPolicyClassName="AtomicUnit6GraphicalNodeEditPolicy"
+ createCommandClassName="AtomicUnit6CreateCommand"
+ containers="//@diagram/@compartments.72 //@diagram/@compartments.66 //@diagram/@compartments.62 //@diagram/@compartments.52 //@diagram/@compartments.36 //@diagram/@compartments.18 //@diagram/@compartments.82">
+ <diagramRunTimeClass
+ href="../../../plugin/org.eclipse.gmf.runtime.notation/model/notation.genmodel#//notation/Node"/>
+ <elementType
+ xsi:type="gmfgen:SpecializationType"
+ metamodelType="//@diagram/@childNodes.33/@elementType"/>
+ <viewmap
+ xsi:type="gmfgen:InnerClassViewmap"
+ className="AtomicUnitFigure"
+ classBody="
/**
 * @generated
 */
public class AtomicUnitFigure extends org.eclipse.draw2d.RoundedRectangle {


	/**
	 * @generated
	 */
	private org.eclipse.gmf.runtime.draw2d.ui.figures.WrappingLabel fFigureAtomicUnitLabelFigure; 


	/**
	 * @generated
	 */
	public AtomicUnitFigure() {
				this.setCornerDimensions(new org.eclipse.draw2d.geometry.Dimension(getMapMode().DPtoLP(8)
, getMapMode().DPtoLP(8)
));
this.setBorder(new org.eclipse.draw2d.MarginBorder(getMapMode().DPtoLP(5)
, getMapMode().DPtoLP(5)
, getMapMode().DPtoLP(5)
, getMapMode().DPtoLP(5)
));
		createContents();
	}
	/**
	 * @generated
	 */
	private void createContents(){


fFigureAtomicUnitLabelFigure = new org.eclipse.gmf.runtime.draw2d.ui.figures.WrappingLabel();
fFigureAtomicUnitLabelFigure.setText("AtomicUnit");

this.add(fFigureAtomicUnitLabelFigure);


	}





	/**
	 * @generated
	 */
	public org.eclipse.gmf.runtime.draw2d.ui.figures.WrappingLabel getFigureAtomicUnitLabelFigure() {
		return fFigureAtomicUnitLabelFigure;
	}


}

"/>
+ <modelFacet>
+ <metaClass
+ href="comrel.genmodel#//comrel/AtomicUnit"/>
+ <containmentMetaFeature
+ href="comrel.genmodel#//comrel/ConditionalUnit/then"/>
+ <childMetaFeature
+ href="comrel.genmodel#//comrel/ConditionalUnit/then"/>
+ </modelFacet>
+ <labels
+ visualID="5053"
+ editPartClassName="AtomicUnitLabelType6EditPart"
+ itemSemanticEditPolicyClassName="AtomicUnitLabelType6ItemSemanticEditPolicy"
+ notationViewFactoryClassName="AtomicUnitLabelTypeViewFactory">
+ <diagramRunTimeClass
+ href="../../../plugin/org.eclipse.gmf.runtime.notation/model/notation.genmodel#//notation/Node"/>
+ <viewmap
+ xsi:type="gmfgen:ParentAssignedViewmap"
+ getterName="getFigureAtomicUnitLabelFigure"
+ figureQualifiedClassName="org.eclipse.gmf.runtime.draw2d.ui.figures.WrappingLabel"/>
+ <modelFacet
+ xsi:type="gmfgen:FeatureLabelModelFacet"
+ parser="//@labelParsers/@implementations.0"
+ viewPattern="{0}:{1}"
+ editorPattern="{0}:{1}"
+ editPattern="{0}:{1}">
+ <metaFeatures
+ href="comrel.genmodel#//comrel/AtomicUnit/label"/>
+ <metaFeatures
+ href="comrel.genmodel#//comrel/AtomicUnit/type"/>
+ </modelFacet>
+ </labels>
+ </childNodes>
+ <childNodes
+ visualID="3078"
+ editPartClassName="AtomicUnit7EditPart"
+ itemSemanticEditPolicyClassName="AtomicUnit7ItemSemanticEditPolicy"
+ notationViewFactoryClassName="AtomicUnitViewFactory"
+ canonicalEditPolicyClassName="AtomicUnit7CanonicalEditPolicy"
+ childNodes="//@diagram/@childNodes.34"
+ graphicalNodeEditPolicyClassName="AtomicUnit7GraphicalNodeEditPolicy"
+ createCommandClassName="AtomicUnit7CreateCommand"
+ containers="//@diagram/@compartments.73 //@diagram/@compartments.67 //@diagram/@compartments.63 //@diagram/@compartments.53 //@diagram/@compartments.37 //@diagram/@compartments.19 //@diagram/@compartments.83">
+ <diagramRunTimeClass
+ href="../../../plugin/org.eclipse.gmf.runtime.notation/model/notation.genmodel#//notation/Node"/>
+ <elementType
+ xsi:type="gmfgen:SpecializationType"
+ metamodelType="//@diagram/@childNodes.33/@elementType"/>
+ <viewmap
+ xsi:type="gmfgen:InnerClassViewmap"
+ className="AtomicUnitFigure"
+ classBody="
/**
 * @generated
 */
public class AtomicUnitFigure extends org.eclipse.draw2d.RoundedRectangle {


	/**
	 * @generated
	 */
	private org.eclipse.gmf.runtime.draw2d.ui.figures.WrappingLabel fFigureAtomicUnitLabelFigure; 


	/**
	 * @generated
	 */
	public AtomicUnitFigure() {
				this.setCornerDimensions(new org.eclipse.draw2d.geometry.Dimension(getMapMode().DPtoLP(8)
, getMapMode().DPtoLP(8)
));
this.setBorder(new org.eclipse.draw2d.MarginBorder(getMapMode().DPtoLP(5)
, getMapMode().DPtoLP(5)
, getMapMode().DPtoLP(5)
, getMapMode().DPtoLP(5)
));
		createContents();
	}
	/**
	 * @generated
	 */
	private void createContents(){


fFigureAtomicUnitLabelFigure = new org.eclipse.gmf.runtime.draw2d.ui.figures.WrappingLabel();
fFigureAtomicUnitLabelFigure.setText("AtomicUnit");

this.add(fFigureAtomicUnitLabelFigure);


	}





	/**
	 * @generated
	 */
	public org.eclipse.gmf.runtime.draw2d.ui.figures.WrappingLabel getFigureAtomicUnitLabelFigure() {
		return fFigureAtomicUnitLabelFigure;
	}


}

"/>
+ <modelFacet>
+ <metaClass
+ href="comrel.genmodel#//comrel/AtomicUnit"/>
+ <containmentMetaFeature
+ href="comrel.genmodel#//comrel/ConditionalUnit/else"/>
+ <childMetaFeature
+ href="comrel.genmodel#//comrel/ConditionalUnit/else"/>
+ </modelFacet>
+ <labels
+ visualID="5054"
+ editPartClassName="AtomicUnitLabelType7EditPart"
+ itemSemanticEditPolicyClassName="AtomicUnitLabelType7ItemSemanticEditPolicy"
+ notationViewFactoryClassName="AtomicUnitLabelTypeViewFactory">
+ <diagramRunTimeClass
+ href="../../../plugin/org.eclipse.gmf.runtime.notation/model/notation.genmodel#//notation/Node"/>
+ <viewmap
+ xsi:type="gmfgen:ParentAssignedViewmap"
+ getterName="getFigureAtomicUnitLabelFigure"
+ figureQualifiedClassName="org.eclipse.gmf.runtime.draw2d.ui.figures.WrappingLabel"/>
+ <modelFacet
+ xsi:type="gmfgen:FeatureLabelModelFacet"
+ parser="//@labelParsers/@implementations.0"
+ viewPattern="{0}:{1}"
+ editorPattern="{0}:{1}"
+ editPattern="{0}:{1}">
+ <metaFeatures
+ href="comrel.genmodel#//comrel/AtomicUnit/label"/>
+ <metaFeatures
+ href="comrel.genmodel#//comrel/AtomicUnit/type"/>
+ </modelFacet>
+ </labels>
+ </childNodes>
+ <topLevelNodes
+ visualID="2001"
+ editPartClassName="SingleInputPortEditPart"
+ itemSemanticEditPolicyClassName="SingleInputPortItemSemanticEditPolicy"
+ notationViewFactoryClassName="SingleInputPortViewFactory"
+ canonicalEditPolicyClassName="SingleInputPortCanonicalEditPolicy"
+ graphicalNodeEditPolicyClassName="SingleInputPortGraphicalNodeEditPolicy"
+ createCommandClassName="SingleInputPortCreateCommand">
+ <diagramRunTimeClass
+ href="../../../plugin/org.eclipse.gmf.runtime.notation/model/notation.genmodel#//notation/Node"/>
+ <elementType
+ xsi:type="gmfgen:MetamodelType"
+ editHelperClassName="SingleInputPortEditHelper"/>
+ <viewmap
+ xsi:type="gmfgen:InnerClassViewmap"
+ className="SingleInputPortFigure"
+ classBody="
/**
 * @generated
 */
public class SingleInputPortFigure extends org.eclipse.draw2d.RectangleFigure {




	/**
	 * @generated
	 */
	public SingleInputPortFigure() {
				this.setPreferredSize(new org.eclipse.draw2d.geometry.Dimension(getMapMode().DPtoLP(20)
, getMapMode().DPtoLP(20)
));
this.setBorder(new org.eclipse.draw2d.MarginBorder(getMapMode().DPtoLP(5)
, getMapMode().DPtoLP(5)
, getMapMode().DPtoLP(5)
, getMapMode().DPtoLP(5)
));
	}





}

">
+ <attributes
+ xsi:type="gmfgen:DefaultSizeAttributes"
+ width="20"
+ height="20"/>
+ </viewmap>
+ <modelFacet>
+ <metaClass
+ href="comrel.genmodel#//comrel/SingleInputPort"/>
+ <containmentMetaFeature
+ href="comrel.genmodel#//comrel/ModelRefactoring/inputPorts"/>
+ <childMetaFeature
+ href="comrel.genmodel#//comrel/ModelRefactoring/inputPorts"/>
+ </modelFacet>
+ <labels
+ xsi:type="gmfgen:GenExternalNodeLabel"
+ visualID="5001"
+ editPartClassName="SingleInputPortNameTypeEditPart"
+ itemSemanticEditPolicyClassName="SingleInputPortNameTypeItemSemanticEditPolicy"
+ notationViewFactoryClassName="SingleInputPortNameTypeViewFactory">
+ <diagramRunTimeClass
+ href="../../../plugin/org.eclipse.gmf.runtime.notation/model/notation.genmodel#//notation/Node"/>
+ <viewmap
+ xsi:type="gmfgen:InnerClassViewmap"
+ className="SingleInputPortLabelFigure"
+ classBody="
/**
 * @generated
 */
public class SingleInputPortLabelFigure extends org.eclipse.gmf.runtime.draw2d.ui.figures.WrappingLabel {




	/**
	 * @generated
	 */
	public SingleInputPortLabelFigure() {
				this.setText("SingleInputPort");
	}





}

"/>
+ <modelFacet
+ xsi:type="gmfgen:FeatureLabelModelFacet"
+ parser="//@labelParsers/@implementations.0"
+ viewPattern="{0}:{1}"
+ editorPattern="{0}:{1}"
+ editPattern="{0}:{1}">
+ <metaFeatures
+ href="comrel.genmodel#//comrel/NamedElement/name"/>
+ <metaFeatures
+ href="comrel.genmodel#//comrel/Port/type"/>
+ </modelFacet>
+ </labels>
+ </topLevelNodes>
+ <topLevelNodes
+ visualID="2002"
+ editPartClassName="CartesianQueuedUnitEditPart"
+ itemSemanticEditPolicyClassName="CartesianQueuedUnitItemSemanticEditPolicy"
+ notationViewFactoryClassName="CartesianQueuedUnitViewFactory"
+ canonicalEditPolicyClassName="CartesianQueuedUnitCanonicalEditPolicy"
+ childNodes="//@diagram/@childNodes.0 //@diagram/@childNodes.1"
+ compartments="//@diagram/@compartments.0 //@diagram/@compartments.1"
+ graphicalNodeEditPolicyClassName="CartesianQueuedUnitGraphicalNodeEditPolicy"
+ createCommandClassName="CartesianQueuedUnitCreateCommand">
+ <diagramRunTimeClass
+ href="../../../plugin/org.eclipse.gmf.runtime.notation/model/notation.genmodel#//notation/Node"/>
+ <elementType
+ xsi:type="gmfgen:MetamodelType"
+ editHelperClassName="CartesianQueuedUnitEditHelper"/>
+ <viewmap
+ xsi:type="gmfgen:InnerClassViewmap"
+ className="CartesianQueuedUnitFigure"
+ classBody="
/**
 * @generated
 */
public class CartesianQueuedUnitFigure extends org.eclipse.draw2d.RoundedRectangle {


	/**
	 * @generated
	 */
	private org.eclipse.gmf.runtime.draw2d.ui.figures.WrappingLabel fFigureCartesianQueuedUnitLabelFigure; 
	/**
	 * @generated
	 */
	private org.eclipse.draw2d.RectangleFigure fCartesianQueuedUnitHelperUnitsCompartmentFigure; 
	/**
	 * @generated
	 */
	private org.eclipse.draw2d.RectangleFigure fCartesianQueuedUnitRefactoringUnitCompartmentFigure; 


	/**
	 * @generated
	 */
	public CartesianQueuedUnitFigure() {
				this.setCornerDimensions(new org.eclipse.draw2d.geometry.Dimension(getMapMode().DPtoLP(8)
, getMapMode().DPtoLP(8)
));
this.setBorder(new org.eclipse.draw2d.MarginBorder(getMapMode().DPtoLP(5)
, getMapMode().DPtoLP(5)
, getMapMode().DPtoLP(5)
, getMapMode().DPtoLP(5)
));
		createContents();
	}
	/**
	 * @generated
	 */
	private void createContents(){


fFigureCartesianQueuedUnitLabelFigure = new org.eclipse.gmf.runtime.draw2d.ui.figures.WrappingLabel();
fFigureCartesianQueuedUnitLabelFigure.setText("CartesianQueuedUnit");
fFigureCartesianQueuedUnitLabelFigure.setMaximumSize(new org.eclipse.draw2d.geometry.Dimension(getMapMode().DPtoLP(10000)
, getMapMode().DPtoLP(50)
));

this.add(fFigureCartesianQueuedUnitLabelFigure);



fCartesianQueuedUnitHelperUnitsCompartmentFigure = new org.eclipse.draw2d.RectangleFigure();
fCartesianQueuedUnitHelperUnitsCompartmentFigure.setOutline(false);

this.add(fCartesianQueuedUnitHelperUnitsCompartmentFigure);



fCartesianQueuedUnitRefactoringUnitCompartmentFigure = new org.eclipse.draw2d.RectangleFigure();
fCartesianQueuedUnitRefactoringUnitCompartmentFigure.setOutline(false);

this.add(fCartesianQueuedUnitRefactoringUnitCompartmentFigure);


	}





	/**
	 * @generated
	 */
	public org.eclipse.gmf.runtime.draw2d.ui.figures.WrappingLabel getFigureCartesianQueuedUnitLabelFigure() {
		return fFigureCartesianQueuedUnitLabelFigure;
	}
	/**
	 * @generated
	 */
	public org.eclipse.draw2d.RectangleFigure getCartesianQueuedUnitHelperUnitsCompartmentFigure() {
		return fCartesianQueuedUnitHelperUnitsCompartmentFigure;
	}
	/**
	 * @generated
	 */
	public org.eclipse.draw2d.RectangleFigure getCartesianQueuedUnitRefactoringUnitCompartmentFigure() {
		return fCartesianQueuedUnitRefactoringUnitCompartmentFigure;
	}


}

"/>
+ <behaviour
+ xsi:type="gmfgen:OpenDiagramBehaviour"/>
+ <modelFacet>
+ <metaClass
+ href="comrel.genmodel#//comrel/CartesianQueuedUnit"/>
+ <containmentMetaFeature
+ href="comrel.genmodel#//comrel/CompositeRefactoring/mainRefactoringUnit"/>
+ <childMetaFeature
+ href="comrel.genmodel#//comrel/CompositeRefactoring/mainRefactoringUnit"/>
+ </modelFacet>
+ <labels
+ visualID="5080"
+ editPartClassName="CartesianQueuedUnitNameTypeLblStrictEditPart"
+ itemSemanticEditPolicyClassName="CartesianQueuedUnitNameTypeLblStrictItemSemanticEditPolicy"
+ notationViewFactoryClassName="CartesianQueuedUnitNameTypeLblStrictViewFactory">
+ <diagramRunTimeClass
+ href="../../../plugin/org.eclipse.gmf.runtime.notation/model/notation.genmodel#//notation/Node"/>
+ <viewmap
+ xsi:type="gmfgen:ParentAssignedViewmap"
+ getterName="getFigureCartesianQueuedUnitLabelFigure"
+ figureQualifiedClassName="org.eclipse.gmf.runtime.draw2d.ui.figures.WrappingLabel"/>
+ <modelFacet
+ xsi:type="gmfgen:FeatureLabelModelFacet"
+ parser="//@labelParsers/@implementations.0"
+ viewPattern="{0}:{1} -{2}-"
+ editorPattern="{0}:{1} -{2}-"
+ editPattern="{0}:{1} -{2}-">
+ <metaFeatures
+ href="comrel.genmodel#//comrel/NamedElement/name"/>
+ <metaFeatures
+ href="comrel.genmodel#//comrel/CartesianQueuedUnit/type"/>
+ <metaFeatures
+ href="comrel.genmodel#//comrel/CartesianQueuedUnit/lblStrict"/>
+ </modelFacet>
+ </labels>
+ </topLevelNodes>
+ <topLevelNodes
+ visualID="2003"
+ editPartClassName="ParallelQueuedUnitEditPart"
+ itemSemanticEditPolicyClassName="ParallelQueuedUnitItemSemanticEditPolicy"
+ notationViewFactoryClassName="ParallelQueuedUnitViewFactory"
+ canonicalEditPolicyClassName="ParallelQueuedUnitCanonicalEditPolicy"
+ childNodes="//@diagram/@childNodes.4 //@diagram/@childNodes.5"
+ compartments="//@diagram/@compartments.74 //@diagram/@compartments.75"
+ graphicalNodeEditPolicyClassName="ParallelQueuedUnitGraphicalNodeEditPolicy"
+ createCommandClassName="ParallelQueuedUnitCreateCommand">
+ <diagramRunTimeClass
+ href="../../../plugin/org.eclipse.gmf.runtime.notation/model/notation.genmodel#//notation/Node"/>
+ <elementType
+ xsi:type="gmfgen:SpecializationType"
+ metamodelType="//@diagram/@childNodes.3/@elementType"/>
+ <viewmap
+ xsi:type="gmfgen:InnerClassViewmap"
+ className="ParallelQueuedUnitFigure"
+ classBody="
/**
 * @generated
 */
public class ParallelQueuedUnitFigure extends org.eclipse.draw2d.RoundedRectangle {


	/**
	 * @generated
	 */
	private org.eclipse.gmf.runtime.draw2d.ui.figures.WrappingLabel fFigureParallelQueuedUnitLabelFigure; 
	/**
	 * @generated
	 */
	private org.eclipse.draw2d.RectangleFigure fParallelQueuedUnitHelperUnitsCompartmentFigure; 
	/**
	 * @generated
	 */
	private org.eclipse.draw2d.RectangleFigure fParallelQueuedUnitRefactoringUnitsCompartmentFigure; 


	/**
	 * @generated
	 */
	public ParallelQueuedUnitFigure() {
				this.setCornerDimensions(new org.eclipse.draw2d.geometry.Dimension(getMapMode().DPtoLP(8)
, getMapMode().DPtoLP(8)
));
this.setBorder(new org.eclipse.draw2d.MarginBorder(getMapMode().DPtoLP(5)
, getMapMode().DPtoLP(5)
, getMapMode().DPtoLP(5)
, getMapMode().DPtoLP(5)
));
		createContents();
	}
	/**
	 * @generated
	 */
	private void createContents(){


fFigureParallelQueuedUnitLabelFigure = new org.eclipse.gmf.runtime.draw2d.ui.figures.WrappingLabel();
fFigureParallelQueuedUnitLabelFigure.setText("ParallelQueuedUnit");
fFigureParallelQueuedUnitLabelFigure.setMaximumSize(new org.eclipse.draw2d.geometry.Dimension(getMapMode().DPtoLP(10000)
, getMapMode().DPtoLP(50)
));

this.add(fFigureParallelQueuedUnitLabelFigure);



fParallelQueuedUnitHelperUnitsCompartmentFigure = new org.eclipse.draw2d.RectangleFigure();
fParallelQueuedUnitHelperUnitsCompartmentFigure.setOutline(false);

this.add(fParallelQueuedUnitHelperUnitsCompartmentFigure);



fParallelQueuedUnitRefactoringUnitsCompartmentFigure = new org.eclipse.draw2d.RectangleFigure();
fParallelQueuedUnitRefactoringUnitsCompartmentFigure.setOutline(false);

this.add(fParallelQueuedUnitRefactoringUnitsCompartmentFigure);


	}





	/**
	 * @generated
	 */
	public org.eclipse.gmf.runtime.draw2d.ui.figures.WrappingLabel getFigureParallelQueuedUnitLabelFigure() {
		return fFigureParallelQueuedUnitLabelFigure;
	}
	/**
	 * @generated
	 */
	public org.eclipse.draw2d.RectangleFigure getParallelQueuedUnitHelperUnitsCompartmentFigure() {
		return fParallelQueuedUnitHelperUnitsCompartmentFigure;
	}
	/**
	 * @generated
	 */
	public org.eclipse.draw2d.RectangleFigure getParallelQueuedUnitRefactoringUnitsCompartmentFigure() {
		return fParallelQueuedUnitRefactoringUnitsCompartmentFigure;
	}


}

"/>
+ <behaviour
+ xsi:type="gmfgen:OpenDiagramBehaviour"/>
+ <modelFacet>
+ <metaClass
+ href="comrel.genmodel#//comrel/ParallelQueuedUnit"/>
+ <containmentMetaFeature
+ href="comrel.genmodel#//comrel/CompositeRefactoring/mainRefactoringUnit"/>
+ <childMetaFeature
+ href="comrel.genmodel#//comrel/CompositeRefactoring/mainRefactoringUnit"/>
+ </modelFacet>
+ <labels
+ visualID="5081"
+ editPartClassName="ParallelQueuedUnitNameTypeLblStrictEditPart"
+ itemSemanticEditPolicyClassName="ParallelQueuedUnitNameTypeLblStrictItemSemanticEditPolicy"
+ notationViewFactoryClassName="ParallelQueuedUnitNameTypeLblStrictViewFactory">
+ <diagramRunTimeClass
+ href="../../../plugin/org.eclipse.gmf.runtime.notation/model/notation.genmodel#//notation/Node"/>
+ <viewmap
+ xsi:type="gmfgen:ParentAssignedViewmap"
+ getterName="getFigureParallelQueuedUnitLabelFigure"
+ figureQualifiedClassName="org.eclipse.gmf.runtime.draw2d.ui.figures.WrappingLabel"/>
+ <modelFacet
+ xsi:type="gmfgen:FeatureLabelModelFacet"
+ parser="//@labelParsers/@implementations.0"
+ viewPattern="{0}:{1} -{2}-"
+ editorPattern="{0}:{1} -{2}-"
+ editPattern="{0}:{1} -{2}-">
+ <metaFeatures
+ href="comrel.genmodel#//comrel/NamedElement/name"/>
+ <metaFeatures
+ href="comrel.genmodel#//comrel/ParallelQueuedUnit/type"/>
+ <metaFeatures
+ href="comrel.genmodel#//comrel/ParallelQueuedUnit/lblStrict"/>
+ </modelFacet>
+ </labels>
+ </topLevelNodes>
+ <topLevelNodes
+ visualID="2004"
+ editPartClassName="SingleQueuedUnitEditPart"
+ itemSemanticEditPolicyClassName="SingleQueuedUnitItemSemanticEditPolicy"
+ notationViewFactoryClassName="SingleQueuedUnitViewFactory"
+ canonicalEditPolicyClassName="SingleQueuedUnitCanonicalEditPolicy"
+ childNodes="//@diagram/@childNodes.22 //@diagram/@childNodes.23"
+ compartments="//@diagram/@compartments.76 //@diagram/@compartments.77"
+ graphicalNodeEditPolicyClassName="SingleQueuedUnitGraphicalNodeEditPolicy"
+ createCommandClassName="SingleQueuedUnitCreateCommand">
+ <diagramRunTimeClass
+ href="../../../plugin/org.eclipse.gmf.runtime.notation/model/notation.genmodel#//notation/Node"/>
+ <elementType
+ xsi:type="gmfgen:SpecializationType"
+ metamodelType="//@diagram/@childNodes.21/@elementType"/>
+ <viewmap
+ xsi:type="gmfgen:InnerClassViewmap"
+ className="SingleQueuedUnitFigure"
+ classBody="
/**
 * @generated
 */
public class SingleQueuedUnitFigure extends org.eclipse.draw2d.RoundedRectangle {


	/**
	 * @generated
	 */
	private org.eclipse.gmf.runtime.draw2d.ui.figures.WrappingLabel fFigureSingleQueuedUnitLabelFigure; 
	/**
	 * @generated
	 */
	private org.eclipse.draw2d.RectangleFigure fSingleQueuedUnitHelperUnitsCompartmentFigure; 
	/**
	 * @generated
	 */
	private org.eclipse.draw2d.RectangleFigure fSingleQueuedUnitRefactoringUnitCompartmentFigure; 


	/**
	 * @generated
	 */
	public SingleQueuedUnitFigure() {
				this.setCornerDimensions(new org.eclipse.draw2d.geometry.Dimension(getMapMode().DPtoLP(8)
, getMapMode().DPtoLP(8)
));
this.setBorder(new org.eclipse.draw2d.MarginBorder(getMapMode().DPtoLP(5)
, getMapMode().DPtoLP(5)
, getMapMode().DPtoLP(5)
, getMapMode().DPtoLP(5)
));
		createContents();
	}
	/**
	 * @generated
	 */
	private void createContents(){


fFigureSingleQueuedUnitLabelFigure = new org.eclipse.gmf.runtime.draw2d.ui.figures.WrappingLabel();
fFigureSingleQueuedUnitLabelFigure.setText("SingleQueuedUnit");
fFigureSingleQueuedUnitLabelFigure.setMaximumSize(new org.eclipse.draw2d.geometry.Dimension(getMapMode().DPtoLP(10000)
, getMapMode().DPtoLP(50)
));

this.add(fFigureSingleQueuedUnitLabelFigure);



fSingleQueuedUnitHelperUnitsCompartmentFigure = new org.eclipse.draw2d.RectangleFigure();
fSingleQueuedUnitHelperUnitsCompartmentFigure.setOutline(false);

this.add(fSingleQueuedUnitHelperUnitsCompartmentFigure);



fSingleQueuedUnitRefactoringUnitCompartmentFigure = new org.eclipse.draw2d.RectangleFigure();
fSingleQueuedUnitRefactoringUnitCompartmentFigure.setOutline(false);

this.add(fSingleQueuedUnitRefactoringUnitCompartmentFigure);


	}





	/**
	 * @generated
	 */
	public org.eclipse.gmf.runtime.draw2d.ui.figures.WrappingLabel getFigureSingleQueuedUnitLabelFigure() {
		return fFigureSingleQueuedUnitLabelFigure;
	}
	/**
	 * @generated
	 */
	public org.eclipse.draw2d.RectangleFigure getSingleQueuedUnitHelperUnitsCompartmentFigure() {
		return fSingleQueuedUnitHelperUnitsCompartmentFigure;
	}
	/**
	 * @generated
	 */
	public org.eclipse.draw2d.RectangleFigure getSingleQueuedUnitRefactoringUnitCompartmentFigure() {
		return fSingleQueuedUnitRefactoringUnitCompartmentFigure;
	}


}

"/>
+ <behaviour
+ xsi:type="gmfgen:OpenDiagramBehaviour"/>
+ <modelFacet>
+ <metaClass
+ href="comrel.genmodel#//comrel/SingleQueuedUnit"/>
+ <containmentMetaFeature
+ href="comrel.genmodel#//comrel/CompositeRefactoring/mainRefactoringUnit"/>
+ <childMetaFeature
+ href="comrel.genmodel#//comrel/CompositeRefactoring/mainRefactoringUnit"/>
+ </modelFacet>
+ <labels
+ visualID="5082"
+ editPartClassName="SingleQueuedUnitNameTypeLblStrictEditPart"
+ itemSemanticEditPolicyClassName="SingleQueuedUnitNameTypeLblStrictItemSemanticEditPolicy"
+ notationViewFactoryClassName="SingleQueuedUnitNameTypeLblStrictViewFactory">
+ <diagramRunTimeClass
+ href="../../../plugin/org.eclipse.gmf.runtime.notation/model/notation.genmodel#//notation/Node"/>
+ <viewmap
+ xsi:type="gmfgen:ParentAssignedViewmap"
+ getterName="getFigureSingleQueuedUnitLabelFigure"
+ figureQualifiedClassName="org.eclipse.gmf.runtime.draw2d.ui.figures.WrappingLabel"/>
+ <modelFacet
+ xsi:type="gmfgen:FeatureLabelModelFacet"
+ parser="//@labelParsers/@implementations.0"
+ viewPattern="{0}:{1} -{2}-"
+ editorPattern="{0}:{1} -{2}-"
+ editPattern="{0}:{1} -{2}-">
+ <metaFeatures
+ href="comrel.genmodel#//comrel/NamedElement/name"/>
+ <metaFeatures
+ href="comrel.genmodel#//comrel/SingleQueuedUnit/type"/>
+ <metaFeatures
+ href="comrel.genmodel#//comrel/SingleQueuedUnit/lblStrict"/>
+ </modelFacet>
+ </labels>
+ </topLevelNodes>
+ <topLevelNodes
+ visualID="2005"
+ editPartClassName="SequentialUnitEditPart"
+ itemSemanticEditPolicyClassName="SequentialUnitItemSemanticEditPolicy"
+ notationViewFactoryClassName="SequentialUnitViewFactory"
+ canonicalEditPolicyClassName="SequentialUnitCanonicalEditPolicy"
+ childNodes="//@diagram/@childNodes.26 //@diagram/@childNodes.27"
+ compartments="//@diagram/@compartments.78 //@diagram/@compartments.79"
+ graphicalNodeEditPolicyClassName="SequentialUnitGraphicalNodeEditPolicy"
+ createCommandClassName="SequentialUnitCreateCommand">
+ <diagramRunTimeClass
+ href="../../../plugin/org.eclipse.gmf.runtime.notation/model/notation.genmodel#//notation/Node"/>
+ <elementType
+ xsi:type="gmfgen:SpecializationType"
+ metamodelType="//@diagram/@childNodes.25/@elementType"/>
+ <viewmap
+ xsi:type="gmfgen:InnerClassViewmap"
+ className="SequentialUnitFigure"
+ classBody="
/**
 * @generated
 */
public class SequentialUnitFigure extends org.eclipse.draw2d.RoundedRectangle {


	/**
	 * @generated
	 */
	private org.eclipse.gmf.runtime.draw2d.ui.figures.WrappingLabel fFigureSequentialUnitLabelFigure; 
	/**
	 * @generated
	 */
	private org.eclipse.draw2d.RectangleFigure fSequentialUnitHelperUnitsCompartmentFigure; 
	/**
	 * @generated
	 */
	private org.eclipse.draw2d.RectangleFigure fSequentialUnitRefactoringUnitsCompartmentFigure; 


	/**
	 * @generated
	 */
	public SequentialUnitFigure() {
				this.setCornerDimensions(new org.eclipse.draw2d.geometry.Dimension(getMapMode().DPtoLP(8)
, getMapMode().DPtoLP(8)
));
this.setBorder(new org.eclipse.draw2d.MarginBorder(getMapMode().DPtoLP(5)
, getMapMode().DPtoLP(5)
, getMapMode().DPtoLP(5)
, getMapMode().DPtoLP(5)
));
		createContents();
	}
	/**
	 * @generated
	 */
	private void createContents(){


fFigureSequentialUnitLabelFigure = new org.eclipse.gmf.runtime.draw2d.ui.figures.WrappingLabel();
fFigureSequentialUnitLabelFigure.setText("SequentialUnit");
fFigureSequentialUnitLabelFigure.setMaximumSize(new org.eclipse.draw2d.geometry.Dimension(getMapMode().DPtoLP(10000)
, getMapMode().DPtoLP(50)
));

this.add(fFigureSequentialUnitLabelFigure);



fSequentialUnitHelperUnitsCompartmentFigure = new org.eclipse.draw2d.RectangleFigure();
fSequentialUnitHelperUnitsCompartmentFigure.setOutline(false);

this.add(fSequentialUnitHelperUnitsCompartmentFigure);



fSequentialUnitRefactoringUnitsCompartmentFigure = new org.eclipse.draw2d.RectangleFigure();
fSequentialUnitRefactoringUnitsCompartmentFigure.setOutline(false);

this.add(fSequentialUnitRefactoringUnitsCompartmentFigure);


	}





	/**
	 * @generated
	 */
	public org.eclipse.gmf.runtime.draw2d.ui.figures.WrappingLabel getFigureSequentialUnitLabelFigure() {
		return fFigureSequentialUnitLabelFigure;
	}
	/**
	 * @generated
	 */
	public org.eclipse.draw2d.RectangleFigure getSequentialUnitHelperUnitsCompartmentFigure() {
		return fSequentialUnitHelperUnitsCompartmentFigure;
	}
	/**
	 * @generated
	 */
	public org.eclipse.draw2d.RectangleFigure getSequentialUnitRefactoringUnitsCompartmentFigure() {
		return fSequentialUnitRefactoringUnitsCompartmentFigure;
	}


}

"/>
+ <behaviour
+ xsi:type="gmfgen:OpenDiagramBehaviour"/>
+ <modelFacet>
+ <metaClass
+ href="comrel.genmodel#//comrel/SequentialUnit"/>
+ <containmentMetaFeature
+ href="comrel.genmodel#//comrel/CompositeRefactoring/mainRefactoringUnit"/>
+ <childMetaFeature
+ href="comrel.genmodel#//comrel/CompositeRefactoring/mainRefactoringUnit"/>
+ </modelFacet>
+ <labels
+ visualID="5083"
+ editPartClassName="SequentialUnitNameTypeLblStrictEditPart"
+ itemSemanticEditPolicyClassName="SequentialUnitNameTypeLblStrictItemSemanticEditPolicy"
+ notationViewFactoryClassName="SequentialUnitNameTypeLblStrictViewFactory">
+ <diagramRunTimeClass
+ href="../../../plugin/org.eclipse.gmf.runtime.notation/model/notation.genmodel#//notation/Node"/>
+ <viewmap
+ xsi:type="gmfgen:ParentAssignedViewmap"
+ getterName="getFigureSequentialUnitLabelFigure"
+ figureQualifiedClassName="org.eclipse.gmf.runtime.draw2d.ui.figures.WrappingLabel"/>
+ <modelFacet
+ xsi:type="gmfgen:FeatureLabelModelFacet"
+ parser="//@labelParsers/@implementations.0"
+ viewPattern="{0}:{1} -{2}-"
+ editorPattern="{0}:{1} -{2}-"
+ editPattern="{0}:{1} -{2}-">
+ <metaFeatures
+ href="comrel.genmodel#//comrel/NamedElement/name"/>
+ <metaFeatures
+ href="comrel.genmodel#//comrel/SequentialUnit/type"/>
+ <metaFeatures
+ href="comrel.genmodel#//comrel/SequentialUnit/lblStrict"/>
+ </modelFacet>
+ </labels>
+ </topLevelNodes>
+ <topLevelNodes
+ visualID="2006"
+ editPartClassName="ConditionalUnitEditPart"
+ itemSemanticEditPolicyClassName="ConditionalUnitItemSemanticEditPolicy"
+ notationViewFactoryClassName="ConditionalUnitViewFactory"
+ canonicalEditPolicyClassName="ConditionalUnitCanonicalEditPolicy"
+ childNodes="//@diagram/@childNodes.30 //@diagram/@childNodes.31"
+ compartments="//@diagram/@compartments.80 //@diagram/@compartments.81 //@diagram/@compartments.82 //@diagram/@compartments.83"
+ graphicalNodeEditPolicyClassName="ConditionalUnitGraphicalNodeEditPolicy"
+ createCommandClassName="ConditionalUnitCreateCommand">
+ <diagramRunTimeClass
+ href="../../../plugin/org.eclipse.gmf.runtime.notation/model/notation.genmodel#//notation/Node"/>
+ <elementType
+ xsi:type="gmfgen:SpecializationType"
+ metamodelType="//@diagram/@childNodes.29/@elementType"/>
+ <viewmap
+ xsi:type="gmfgen:InnerClassViewmap"
+ className="ConditionalUnitFigure"
+ classBody="
/**
 * @generated
 */
public class ConditionalUnitFigure extends org.eclipse.draw2d.RoundedRectangle {


	/**
	 * @generated
	 */
	private org.eclipse.gmf.runtime.draw2d.ui.figures.WrappingLabel fFigureConditionalUnitLabelFigure; 
	/**
	 * @generated
	 */
	private org.eclipse.draw2d.RectangleFigure fConditionalUnitIfCompartmentFigure; 
	/**
	 * @generated
	 */
	private org.eclipse.draw2d.RectangleFigure fConditionalUnitHelperUnitsCompartmentFigure; 
	/**
	 * @generated
	 */
	private org.eclipse.draw2d.RectangleFigure fConditionalUnitThenCompartmentFigure; 
	/**
	 * @generated
	 */
	private org.eclipse.draw2d.RectangleFigure fConditionalUnitElseCompartmentFigure; 


	/**
	 * @generated
	 */
	public ConditionalUnitFigure() {
				this.setCornerDimensions(new org.eclipse.draw2d.geometry.Dimension(getMapMode().DPtoLP(8)
, getMapMode().DPtoLP(8)
));
this.setBorder(new org.eclipse.draw2d.MarginBorder(getMapMode().DPtoLP(5)
, getMapMode().DPtoLP(5)
, getMapMode().DPtoLP(5)
, getMapMode().DPtoLP(5)
));
		createContents();
	}
	/**
	 * @generated
	 */
	private void createContents(){


fFigureConditionalUnitLabelFigure = new org.eclipse.gmf.runtime.draw2d.ui.figures.WrappingLabel();
fFigureConditionalUnitLabelFigure.setText("ConditionalUnit");
fFigureConditionalUnitLabelFigure.setMaximumSize(new org.eclipse.draw2d.geometry.Dimension(getMapMode().DPtoLP(10000)
, getMapMode().DPtoLP(50)
));

this.add(fFigureConditionalUnitLabelFigure);



fConditionalUnitIfCompartmentFigure = new org.eclipse.draw2d.RectangleFigure();
fConditionalUnitIfCompartmentFigure.setOutline(false);

this.add(fConditionalUnitIfCompartmentFigure);



fConditionalUnitHelperUnitsCompartmentFigure = new org.eclipse.draw2d.RectangleFigure();
fConditionalUnitHelperUnitsCompartmentFigure.setOutline(false);

this.add(fConditionalUnitHelperUnitsCompartmentFigure);



fConditionalUnitThenCompartmentFigure = new org.eclipse.draw2d.RectangleFigure();
fConditionalUnitThenCompartmentFigure.setOutline(false);

this.add(fConditionalUnitThenCompartmentFigure);



fConditionalUnitElseCompartmentFigure = new org.eclipse.draw2d.RectangleFigure();
fConditionalUnitElseCompartmentFigure.setOutline(false);

this.add(fConditionalUnitElseCompartmentFigure);


	}





	/**
	 * @generated
	 */
	public org.eclipse.gmf.runtime.draw2d.ui.figures.WrappingLabel getFigureConditionalUnitLabelFigure() {
		return fFigureConditionalUnitLabelFigure;
	}
	/**
	 * @generated
	 */
	public org.eclipse.draw2d.RectangleFigure getConditionalUnitIfCompartmentFigure() {
		return fConditionalUnitIfCompartmentFigure;
	}
	/**
	 * @generated
	 */
	public org.eclipse.draw2d.RectangleFigure getConditionalUnitHelperUnitsCompartmentFigure() {
		return fConditionalUnitHelperUnitsCompartmentFigure;
	}
	/**
	 * @generated
	 */
	public org.eclipse.draw2d.RectangleFigure getConditionalUnitThenCompartmentFigure() {
		return fConditionalUnitThenCompartmentFigure;
	}
	/**
	 * @generated
	 */
	public org.eclipse.draw2d.RectangleFigure getConditionalUnitElseCompartmentFigure() {
		return fConditionalUnitElseCompartmentFigure;
	}


}

"/>
+ <behaviour
+ xsi:type="gmfgen:OpenDiagramBehaviour"/>
+ <modelFacet>
+ <metaClass
+ href="comrel.genmodel#//comrel/ConditionalUnit"/>
+ <containmentMetaFeature
+ href="comrel.genmodel#//comrel/CompositeRefactoring/mainRefactoringUnit"/>
+ <childMetaFeature
+ href="comrel.genmodel#//comrel/CompositeRefactoring/mainRefactoringUnit"/>
+ </modelFacet>
+ <labels
+ visualID="5084"
+ editPartClassName="ConditionalUnitNameTypeEditPart"
+ itemSemanticEditPolicyClassName="ConditionalUnitNameTypeItemSemanticEditPolicy"
+ notationViewFactoryClassName="ConditionalUnitNameTypeViewFactory">
+ <diagramRunTimeClass
+ href="../../../plugin/org.eclipse.gmf.runtime.notation/model/notation.genmodel#//notation/Node"/>
+ <viewmap
+ xsi:type="gmfgen:ParentAssignedViewmap"
+ getterName="getFigureConditionalUnitLabelFigure"
+ figureQualifiedClassName="org.eclipse.gmf.runtime.draw2d.ui.figures.WrappingLabel"/>
+ <modelFacet
+ xsi:type="gmfgen:FeatureLabelModelFacet"
+ parser="//@labelParsers/@implementations.0"
+ viewPattern="{0}:{1}"
+ editorPattern="{0}:{1}"
+ editPattern="{0}:{1}">
+ <metaFeatures
+ href="comrel.genmodel#//comrel/NamedElement/name"/>
+ <metaFeatures
+ href="comrel.genmodel#//comrel/ConditionalUnit/type"/>
+ </modelFacet>
+ </labels>
+ </topLevelNodes>
+ <topLevelNodes
+ visualID="2007"
+ editPartClassName="AtomicUnitEditPart"
+ itemSemanticEditPolicyClassName="AtomicUnitItemSemanticEditPolicy"
+ notationViewFactoryClassName="AtomicUnitViewFactory"
+ canonicalEditPolicyClassName="AtomicUnitCanonicalEditPolicy"
+ childNodes="//@diagram/@childNodes.34"
+ graphicalNodeEditPolicyClassName="AtomicUnitGraphicalNodeEditPolicy"
+ createCommandClassName="AtomicUnitCreateCommand">
+ <diagramRunTimeClass
+ href="../../../plugin/org.eclipse.gmf.runtime.notation/model/notation.genmodel#//notation/Node"/>
+ <elementType
+ xsi:type="gmfgen:SpecializationType"
+ metamodelType="//@diagram/@childNodes.33/@elementType"/>
+ <viewmap
+ xsi:type="gmfgen:InnerClassViewmap"
+ className="AtomicUnitFigure"
+ classBody="
/**
 * @generated
 */
public class AtomicUnitFigure extends org.eclipse.draw2d.RoundedRectangle {


	/**
	 * @generated
	 */
	private org.eclipse.gmf.runtime.draw2d.ui.figures.WrappingLabel fFigureAtomicUnitLabelFigure; 


	/**
	 * @generated
	 */
	public AtomicUnitFigure() {
				this.setCornerDimensions(new org.eclipse.draw2d.geometry.Dimension(getMapMode().DPtoLP(8)
, getMapMode().DPtoLP(8)
));
this.setBorder(new org.eclipse.draw2d.MarginBorder(getMapMode().DPtoLP(5)
, getMapMode().DPtoLP(5)
, getMapMode().DPtoLP(5)
, getMapMode().DPtoLP(5)
));
		createContents();
	}
	/**
	 * @generated
	 */
	private void createContents(){


fFigureAtomicUnitLabelFigure = new org.eclipse.gmf.runtime.draw2d.ui.figures.WrappingLabel();
fFigureAtomicUnitLabelFigure.setText("AtomicUnit");

this.add(fFigureAtomicUnitLabelFigure);


	}





	/**
	 * @generated
	 */
	public org.eclipse.gmf.runtime.draw2d.ui.figures.WrappingLabel getFigureAtomicUnitLabelFigure() {
		return fFigureAtomicUnitLabelFigure;
	}


}

"/>
+ <modelFacet>
+ <metaClass
+ href="comrel.genmodel#//comrel/AtomicUnit"/>
+ <containmentMetaFeature
+ href="comrel.genmodel#//comrel/CompositeRefactoring/mainRefactoringUnit"/>
+ <childMetaFeature
+ href="comrel.genmodel#//comrel/CompositeRefactoring/mainRefactoringUnit"/>
+ </modelFacet>
+ <labels
+ visualID="5085"
+ editPartClassName="AtomicUnitLabelTypeEditPart"
+ itemSemanticEditPolicyClassName="AtomicUnitLabelTypeItemSemanticEditPolicy"
+ notationViewFactoryClassName="AtomicUnitLabelTypeViewFactory">
+ <diagramRunTimeClass
+ href="../../../plugin/org.eclipse.gmf.runtime.notation/model/notation.genmodel#//notation/Node"/>
+ <viewmap
+ xsi:type="gmfgen:ParentAssignedViewmap"
+ getterName="getFigureAtomicUnitLabelFigure"
+ figureQualifiedClassName="org.eclipse.gmf.runtime.draw2d.ui.figures.WrappingLabel"/>
+ <modelFacet
+ xsi:type="gmfgen:FeatureLabelModelFacet"
+ parser="//@labelParsers/@implementations.0"
+ viewPattern="{0}:{1}"
+ editorPattern="{0}:{1}"
+ editPattern="{0}:{1}">
+ <metaFeatures
+ href="comrel.genmodel#//comrel/AtomicUnit/label"/>
+ <metaFeatures
+ href="comrel.genmodel#//comrel/AtomicUnit/type"/>
+ </modelFacet>
+ </labels>
+ </topLevelNodes>
+ <links
+ visualID="4001"
+ editPartClassName="SinglePortMappingEditPart"
+ itemSemanticEditPolicyClassName="SinglePortMappingItemSemanticEditPolicy"
+ notationViewFactoryClassName="SinglePortMappingViewFactory"
+ createCommandClassName="SinglePortMappingCreateCommand"
+ reorientCommandClassName="SinglePortMappingReorientCommand">
+ <diagramRunTimeClass
+ href="../../../plugin/org.eclipse.gmf.runtime.notation/model/notation.genmodel#//notation/Edge"/>
+ <elementType
+ xsi:type="gmfgen:MetamodelType"
+ editHelperClassName="SinglePortMappingEditHelper"/>
+ <viewmap
+ xsi:type="gmfgen:InnerClassViewmap"
+ className="SinglePortMappingFigure"
+ classBody="
/**
 * @generated
 */
public class SinglePortMappingFigure extends org.eclipse.gmf.runtime.draw2d.ui.figures.PolylineConnectionEx {




	/**
	 * @generated
	 */
	public SinglePortMappingFigure() {
		this.setLineWidth(2);
this.setLineStyle(org.eclipse.draw2d.Graphics.LINE_DOT);

		setTargetDecoration(createTargetDecoration());
	}

	/**
	 * @generated
	 */
	private org.eclipse.draw2d.RotatableDecoration createTargetDecoration() {
		org.eclipse.draw2d.PolylineDecoration df = new org.eclipse.draw2d.PolylineDecoration();
		return df;
	}




}

"/>
+ <modelFacet
+ xsi:type="gmfgen:TypeLinkModelFacet">
+ <metaClass
+ href="comrel.genmodel#//comrel/SinglePortMapping"/>
+ <containmentMetaFeature
+ href="comrel.genmodel#//comrel/CompositeRefactoring/portMappings"/>
+ <childMetaFeature
+ href="comrel.genmodel#//comrel/CompositeRefactoring/portMappings"/>
+ <sourceMetaFeature
+ href="comrel.genmodel#//comrel/SinglePortMapping/source"/>
+ <targetMetaFeature
+ href="comrel.genmodel#//comrel/SinglePortMapping/target"/>
+ </modelFacet>
+ <creationConstraints
+ sourceEnd="//@expressionProviders/@providers.0/@expressions.0"/>
+ </links>
+ <links
+ visualID="4002"
+ editPartClassName="MultiPortMappingEditPart"
+ itemSemanticEditPolicyClassName="MultiPortMappingItemSemanticEditPolicy"
+ notationViewFactoryClassName="MultiPortMappingViewFactory"
+ createCommandClassName="MultiPortMappingCreateCommand"
+ reorientCommandClassName="MultiPortMappingReorientCommand">
+ <diagramRunTimeClass
+ href="../../../plugin/org.eclipse.gmf.runtime.notation/model/notation.genmodel#//notation/Edge"/>
+ <elementType
+ xsi:type="gmfgen:MetamodelType"
+ editHelperClassName="MultiPortMappingEditHelper"/>
+ <viewmap
+ xsi:type="gmfgen:InnerClassViewmap"
+ className="MultiPortMappingFigure"
+ classBody="
/**
 * @generated
 */
public class MultiPortMappingFigure extends org.eclipse.gmf.runtime.draw2d.ui.figures.PolylineConnectionEx {




	/**
	 * @generated
	 */
	public MultiPortMappingFigure() {
		this.setLineWidth(2);
this.setLineStyle(org.eclipse.draw2d.Graphics.LINE_DOT);

		setTargetDecoration(createTargetDecoration());
	}

	/**
	 * @generated
	 */
	private org.eclipse.draw2d.RotatableDecoration createTargetDecoration() {
		org.eclipse.draw2d.PolylineDecoration df = new org.eclipse.draw2d.PolylineDecoration();
		return df;
	}




}

"/>
+ <modelFacet
+ xsi:type="gmfgen:TypeLinkModelFacet">
+ <metaClass
+ href="comrel.genmodel#//comrel/MultiPortMapping"/>
+ <containmentMetaFeature
+ href="comrel.genmodel#//comrel/CompositeRefactoring/portMappings"/>
+ <childMetaFeature
+ href="comrel.genmodel#//comrel/CompositeRefactoring/portMappings"/>
+ <sourceMetaFeature
+ href="comrel.genmodel#//comrel/MultiPortMapping/source"/>
+ <targetMetaFeature
+ href="comrel.genmodel#//comrel/MultiPortMapping/target"/>
+ </modelFacet>
+ <creationConstraints
+ sourceEnd="//@expressionProviders/@providers.0/@expressions.1"/>
+ </links>
+ <links
+ visualID="4003"
+ editPartClassName="MultiSinglePortMappingEditPart"
+ itemSemanticEditPolicyClassName="MultiSinglePortMappingItemSemanticEditPolicy"
+ notationViewFactoryClassName="MultiSinglePortMappingViewFactory"
+ createCommandClassName="MultiSinglePortMappingCreateCommand"
+ reorientCommandClassName="MultiSinglePortMappingReorientCommand">
+ <diagramRunTimeClass
+ href="../../../plugin/org.eclipse.gmf.runtime.notation/model/notation.genmodel#//notation/Edge"/>
+ <elementType
+ xsi:type="gmfgen:MetamodelType"
+ editHelperClassName="MultiSinglePortMappingEditHelper"/>
+ <viewmap
+ xsi:type="gmfgen:InnerClassViewmap"
+ className="MultiSinglePortMappingFigure"
+ classBody="
/**
 * @generated
 */
public class MultiSinglePortMappingFigure extends org.eclipse.gmf.runtime.draw2d.ui.figures.PolylineConnectionEx {




	/**
	 * @generated
	 */
	public MultiSinglePortMappingFigure() {
		this.setLineWidth(2);
this.setLineStyle(org.eclipse.draw2d.Graphics.LINE_DOT);

		setTargetDecoration(createTargetDecoration());
	}

	/**
	 * @generated
	 */
	private org.eclipse.draw2d.RotatableDecoration createTargetDecoration() {
		org.eclipse.draw2d.PolylineDecoration df = new org.eclipse.draw2d.PolylineDecoration();
		return df;
	}




}

"/>
+ <modelFacet
+ xsi:type="gmfgen:TypeLinkModelFacet">
+ <metaClass
+ href="comrel.genmodel#//comrel/MultiSinglePortMapping"/>
+ <containmentMetaFeature
+ href="comrel.genmodel#//comrel/CompositeRefactoring/portMappings"/>
+ <childMetaFeature
+ href="comrel.genmodel#//comrel/CompositeRefactoring/portMappings"/>
+ <sourceMetaFeature
+ href="comrel.genmodel#//comrel/MultiSinglePortMapping/source"/>
+ <targetMetaFeature
+ href="comrel.genmodel#//comrel/MultiSinglePortMapping/target"/>
+ </modelFacet>
+ <creationConstraints
+ sourceEnd="//@expressionProviders/@providers.0/@expressions.2"/>
+ </links>
+ <compartments
+ visualID="7001"
+ editPartClassName="CartesianQueuedUnitCartesianQueuedUnitHelperUnitsCompartmentEditPart"
+ itemSemanticEditPolicyClassName="CartesianQueuedUnitCartesianQueuedUnitHelperUnitsCompartmentItemSemanticEditPolicy"
+ notationViewFactoryClassName="CartesianQueuedUnitCartesianQueuedUnitHelperUnitsCompartmentViewFactory"
+ canonicalEditPolicyClassName="CartesianQueuedUnitCartesianQueuedUnitHelperUnitsCompartmentCanonicalEditPolicy"
+ childNodes="//@diagram/@childNodes.7 //@diagram/@childNodes.11 //@diagram/@childNodes.15 //@diagram/@childNodes.18"
+ title="CartesianQueuedUnitHelperUnitsCompartment"
+ needsTitle="false"
+ node="//@diagram/@topLevelNodes.1"
+ listLayout="false">
+ <diagramRunTimeClass
+ href="../../../plugin/org.eclipse.gmf.runtime.notation/model/notation.genmodel#//notation/Node"/>
+ <viewmap
+ xsi:type="gmfgen:ParentAssignedViewmap"
+ getterName="getCartesianQueuedUnitHelperUnitsCompartmentFigure"
+ figureQualifiedClassName="org.eclipse.draw2d.RectangleFigure"/>
+ </compartments>
+ <compartments
+ visualID="7002"
+ editPartClassName="CartesianQueuedUnitCartesianQueuedUnitRefactoringUnitCompartmentEditPart"
+ itemSemanticEditPolicyClassName="CartesianQueuedUnitCartesianQueuedUnitRefactoringUnitCompartmentItemSemanticEditPolicy"
+ notationViewFactoryClassName="CartesianQueuedUnitCartesianQueuedUnitRefactoringUnitCompartmentViewFactory"
+ canonicalEditPolicyClassName="CartesianQueuedUnitCartesianQueuedUnitRefactoringUnitCompartmentCanonicalEditPolicy"
+ childNodes="//@diagram/@childNodes.2 //@diagram/@childNodes.3 //@diagram/@childNodes.21 //@diagram/@childNodes.25 //@diagram/@childNodes.29 //@diagram/@childNodes.33"
+ title="CartesianQueuedUnitRefactoringUnitCompartment"
+ needsTitle="false"
+ node="//@diagram/@topLevelNodes.1"
+ listLayout="false">
+ <diagramRunTimeClass
+ href="../../../plugin/org.eclipse.gmf.runtime.notation/model/notation.genmodel#//notation/Node"/>
+ <viewmap
+ xsi:type="gmfgen:ParentAssignedViewmap"
+ getterName="getCartesianQueuedUnitRefactoringUnitCompartmentFigure"
+ figureQualifiedClassName="org.eclipse.draw2d.RectangleFigure"/>
+ </compartments>
+ <compartments
+ visualID="7003"
+ editPartClassName="CartesianQueuedUnitCartesianQueuedUnitHelperUnitsCompartment2EditPart"
+ itemSemanticEditPolicyClassName="CartesianQueuedUnitCartesianQueuedUnitHelperUnitsCompartment2ItemSemanticEditPolicy"
+ notationViewFactoryClassName="CartesianQueuedUnitCartesianQueuedUnitHelperUnitsCompartmentViewFactory"
+ canonicalEditPolicyClassName="CartesianQueuedUnitCartesianQueuedUnitHelperUnitsCompartment2CanonicalEditPolicy"
+ childNodes="//@diagram/@childNodes.7 //@diagram/@childNodes.11 //@diagram/@childNodes.15 //@diagram/@childNodes.18"
+ title="CartesianQueuedUnitHelperUnitsCompartment"
+ needsTitle="false"
+ node="//@diagram/@childNodes.2"
+ listLayout="false">
+ <diagramRunTimeClass
+ href="../../../plugin/org.eclipse.gmf.runtime.notation/model/notation.genmodel#//notation/Node"/>
+ <viewmap
+ xsi:type="gmfgen:ParentAssignedViewmap"
+ getterName="getCartesianQueuedUnitHelperUnitsCompartmentFigure"
+ figureQualifiedClassName="org.eclipse.draw2d.RectangleFigure"/>
+ </compartments>
+ <compartments
+ visualID="7004"
+ editPartClassName="CartesianQueuedUnitCartesianQueuedUnitRefactoringUnitCompartment2EditPart"
+ itemSemanticEditPolicyClassName="CartesianQueuedUnitCartesianQueuedUnitRefactoringUnitCompartment2ItemSemanticEditPolicy"
+ notationViewFactoryClassName="CartesianQueuedUnitCartesianQueuedUnitRefactoringUnitCompartmentViewFactory"
+ canonicalEditPolicyClassName="CartesianQueuedUnitCartesianQueuedUnitRefactoringUnitCompartment2CanonicalEditPolicy"
+ childNodes="//@diagram/@childNodes.2 //@diagram/@childNodes.3 //@diagram/@childNodes.21 //@diagram/@childNodes.25 //@diagram/@childNodes.29 //@diagram/@childNodes.33"
+ title="CartesianQueuedUnitRefactoringUnitCompartment"
+ needsTitle="false"
+ node="//@diagram/@childNodes.2"
+ listLayout="false">
+ <diagramRunTimeClass
+ href="../../../plugin/org.eclipse.gmf.runtime.notation/model/notation.genmodel#//notation/Node"/>
+ <viewmap
+ xsi:type="gmfgen:ParentAssignedViewmap"
+ getterName="getCartesianQueuedUnitRefactoringUnitCompartmentFigure"
+ figureQualifiedClassName="org.eclipse.draw2d.RectangleFigure"/>
+ </compartments>
+ <compartments
+ visualID="7005"
+ editPartClassName="ParallelQueuedUnitParallelQueuedUnitHelperUnitsCompartmentEditPart"
+ itemSemanticEditPolicyClassName="ParallelQueuedUnitParallelQueuedUnitHelperUnitsCompartmentItemSemanticEditPolicy"
+ notationViewFactoryClassName="ParallelQueuedUnitParallelQueuedUnitHelperUnitsCompartmentViewFactory"
+ canonicalEditPolicyClassName="ParallelQueuedUnitParallelQueuedUnitHelperUnitsCompartmentCanonicalEditPolicy"
+ childNodes="//@diagram/@childNodes.37 //@diagram/@childNodes.38 //@diagram/@childNodes.39 //@diagram/@childNodes.40"
+ title="ParallelQueuedUnitHelperUnitsCompartment"
+ needsTitle="false"
+ node="//@diagram/@childNodes.3"
+ listLayout="false">
+ <diagramRunTimeClass
+ href="../../../plugin/org.eclipse.gmf.runtime.notation/model/notation.genmodel#//notation/Node"/>
+ <viewmap
+ xsi:type="gmfgen:ParentAssignedViewmap"
+ getterName="getParallelQueuedUnitHelperUnitsCompartmentFigure"
+ figureQualifiedClassName="org.eclipse.draw2d.RectangleFigure"/>
+ </compartments>
+ <compartments
+ visualID="7006"
+ editPartClassName="ParallelQueuedUnitParallelQueuedUnitRefactoringUnitsCompartmentEditPart"
+ itemSemanticEditPolicyClassName="ParallelQueuedUnitParallelQueuedUnitRefactoringUnitsCompartmentItemSemanticEditPolicy"
+ notationViewFactoryClassName="ParallelQueuedUnitParallelQueuedUnitRefactoringUnitsCompartmentViewFactory"
+ canonicalEditPolicyClassName="ParallelQueuedUnitParallelQueuedUnitRefactoringUnitsCompartmentCanonicalEditPolicy"
+ childNodes="//@diagram/@childNodes.6 //@diagram/@childNodes.36 //@diagram/@childNodes.41 //@diagram/@childNodes.43 //@diagram/@childNodes.45 //@diagram/@childNodes.48"
+ title="ParallelQueuedUnitRefactoringUnitsCompartment"
+ needsTitle="false"
+ node="//@diagram/@childNodes.3"
+ listLayout="false">
+ <diagramRunTimeClass
+ href="../../../plugin/org.eclipse.gmf.runtime.notation/model/notation.genmodel#//notation/Node"/>
+ <viewmap
+ xsi:type="gmfgen:ParentAssignedViewmap"
+ getterName="getParallelQueuedUnitRefactoringUnitsCompartmentFigure"
+ figureQualifiedClassName="org.eclipse.draw2d.RectangleFigure"/>
+ </compartments>
+ <compartments
+ visualID="7007"
+ editPartClassName="CartesianQueuedUnitCartesianQueuedUnitHelperUnitsCompartment3EditPart"
+ itemSemanticEditPolicyClassName="CartesianQueuedUnitCartesianQueuedUnitHelperUnitsCompartment3ItemSemanticEditPolicy"
+ notationViewFactoryClassName="CartesianQueuedUnitCartesianQueuedUnitHelperUnitsCompartmentViewFactory"
+ canonicalEditPolicyClassName="CartesianQueuedUnitCartesianQueuedUnitHelperUnitsCompartment3CanonicalEditPolicy"
+ childNodes="//@diagram/@childNodes.7 //@diagram/@childNodes.11 //@diagram/@childNodes.15 //@diagram/@childNodes.18"
+ title="CartesianQueuedUnitHelperUnitsCompartment"
+ needsTitle="false"
+ node="//@diagram/@childNodes.6"
+ listLayout="false">
+ <diagramRunTimeClass
+ href="../../../plugin/org.eclipse.gmf.runtime.notation/model/notation.genmodel#//notation/Node"/>
+ <viewmap
+ xsi:type="gmfgen:ParentAssignedViewmap"
+ getterName="getCartesianQueuedUnitHelperUnitsCompartmentFigure"
+ figureQualifiedClassName="org.eclipse.draw2d.RectangleFigure"/>
+ </compartments>
+ <compartments
+ visualID="7008"
+ editPartClassName="CartesianQueuedUnitCartesianQueuedUnitRefactoringUnitCompartment3EditPart"
+ itemSemanticEditPolicyClassName="CartesianQueuedUnitCartesianQueuedUnitRefactoringUnitCompartment3ItemSemanticEditPolicy"
+ notationViewFactoryClassName="CartesianQueuedUnitCartesianQueuedUnitRefactoringUnitCompartmentViewFactory"
+ canonicalEditPolicyClassName="CartesianQueuedUnitCartesianQueuedUnitRefactoringUnitCompartment3CanonicalEditPolicy"
+ childNodes="//@diagram/@childNodes.2 //@diagram/@childNodes.3 //@diagram/@childNodes.21 //@diagram/@childNodes.25 //@diagram/@childNodes.29 //@diagram/@childNodes.33"
+ title="CartesianQueuedUnitRefactoringUnitCompartment"
+ needsTitle="false"
+ node="//@diagram/@childNodes.6"
+ listLayout="false">
+ <diagramRunTimeClass
+ href="../../../plugin/org.eclipse.gmf.runtime.notation/model/notation.genmodel#//notation/Node"/>
+ <viewmap
+ xsi:type="gmfgen:ParentAssignedViewmap"
+ getterName="getCartesianQueuedUnitRefactoringUnitCompartmentFigure"
+ figureQualifiedClassName="org.eclipse.draw2d.RectangleFigure"/>
+ </compartments>
+ <compartments
+ visualID="7009"
+ editPartClassName="SingleQueuedUnitSingleQueuedUnitHelperUnitsCompartmentEditPart"
+ itemSemanticEditPolicyClassName="SingleQueuedUnitSingleQueuedUnitHelperUnitsCompartmentItemSemanticEditPolicy"
+ notationViewFactoryClassName="SingleQueuedUnitSingleQueuedUnitHelperUnitsCompartmentViewFactory"
+ canonicalEditPolicyClassName="SingleQueuedUnitSingleQueuedUnitHelperUnitsCompartmentCanonicalEditPolicy"
+ childNodes="//@diagram/@childNodes.54 //@diagram/@childNodes.55 //@diagram/@childNodes.56 //@diagram/@childNodes.57"
+ title="SingleQueuedUnitHelperUnitsCompartment"
+ needsTitle="false"
+ node="//@diagram/@childNodes.21"
+ listLayout="false">
+ <diagramRunTimeClass
+ href="../../../plugin/org.eclipse.gmf.runtime.notation/model/notation.genmodel#//notation/Node"/>
+ <viewmap
+ xsi:type="gmfgen:ParentAssignedViewmap"
+ getterName="getSingleQueuedUnitHelperUnitsCompartmentFigure"
+ figureQualifiedClassName="org.eclipse.draw2d.RectangleFigure"/>
+ </compartments>
+ <compartments
+ visualID="7010"
+ editPartClassName="SingleQueuedUnitSingleQueuedUnitRefactoringUnitCompartmentEditPart"
+ itemSemanticEditPolicyClassName="SingleQueuedUnitSingleQueuedUnitRefactoringUnitCompartmentItemSemanticEditPolicy"
+ notationViewFactoryClassName="SingleQueuedUnitSingleQueuedUnitRefactoringUnitCompartmentViewFactory"
+ canonicalEditPolicyClassName="SingleQueuedUnitSingleQueuedUnitRefactoringUnitCompartmentCanonicalEditPolicy"
+ childNodes="//@diagram/@childNodes.24 //@diagram/@childNodes.42 //@diagram/@childNodes.58 //@diagram/@childNodes.59 //@diagram/@childNodes.65 //@diagram/@childNodes.67"
+ title="SingleQueuedUnitRefactoringUnitCompartment"
+ needsTitle="false"
+ node="//@diagram/@childNodes.21"
+ listLayout="false">
+ <diagramRunTimeClass
+ href="../../../plugin/org.eclipse.gmf.runtime.notation/model/notation.genmodel#//notation/Node"/>
+ <viewmap
+ xsi:type="gmfgen:ParentAssignedViewmap"
+ getterName="getSingleQueuedUnitRefactoringUnitCompartmentFigure"
+ figureQualifiedClassName="org.eclipse.draw2d.RectangleFigure"/>
+ </compartments>
+ <compartments
+ visualID="7011"
+ editPartClassName="CartesianQueuedUnitCartesianQueuedUnitHelperUnitsCompartment4EditPart"
+ itemSemanticEditPolicyClassName="CartesianQueuedUnitCartesianQueuedUnitHelperUnitsCompartment4ItemSemanticEditPolicy"
+ notationViewFactoryClassName="CartesianQueuedUnitCartesianQueuedUnitHelperUnitsCompartmentViewFactory"
+ canonicalEditPolicyClassName="CartesianQueuedUnitCartesianQueuedUnitHelperUnitsCompartment4CanonicalEditPolicy"
+ childNodes="//@diagram/@childNodes.7 //@diagram/@childNodes.11 //@diagram/@childNodes.15 //@diagram/@childNodes.18"
+ title="CartesianQueuedUnitHelperUnitsCompartment"
+ needsTitle="false"
+ node="//@diagram/@childNodes.24"
+ listLayout="false">
+ <diagramRunTimeClass
+ href="../../../plugin/org.eclipse.gmf.runtime.notation/model/notation.genmodel#//notation/Node"/>
+ <viewmap
+ xsi:type="gmfgen:ParentAssignedViewmap"
+ getterName="getCartesianQueuedUnitHelperUnitsCompartmentFigure"
+ figureQualifiedClassName="org.eclipse.draw2d.RectangleFigure"/>
+ </compartments>
+ <compartments
+ visualID="7012"
+ editPartClassName="CartesianQueuedUnitCartesianQueuedUnitRefactoringUnitCompartment4EditPart"
+ itemSemanticEditPolicyClassName="CartesianQueuedUnitCartesianQueuedUnitRefactoringUnitCompartment4ItemSemanticEditPolicy"
+ notationViewFactoryClassName="CartesianQueuedUnitCartesianQueuedUnitRefactoringUnitCompartmentViewFactory"
+ canonicalEditPolicyClassName="CartesianQueuedUnitCartesianQueuedUnitRefactoringUnitCompartment4CanonicalEditPolicy"
+ childNodes="//@diagram/@childNodes.2 //@diagram/@childNodes.3 //@diagram/@childNodes.21 //@diagram/@childNodes.25 //@diagram/@childNodes.29 //@diagram/@childNodes.33"
+ title="CartesianQueuedUnitRefactoringUnitCompartment"
+ needsTitle="false"
+ node="//@diagram/@childNodes.24"
+ listLayout="false">
+ <diagramRunTimeClass
+ href="../../../plugin/org.eclipse.gmf.runtime.notation/model/notation.genmodel#//notation/Node"/>
+ <viewmap
+ xsi:type="gmfgen:ParentAssignedViewmap"
+ getterName="getCartesianQueuedUnitRefactoringUnitCompartmentFigure"
+ figureQualifiedClassName="org.eclipse.draw2d.RectangleFigure"/>
+ </compartments>
+ <compartments
+ visualID="7013"
+ editPartClassName="SequentialUnitSequentialUnitHelperUnitsCompartmentEditPart"
+ itemSemanticEditPolicyClassName="SequentialUnitSequentialUnitHelperUnitsCompartmentItemSemanticEditPolicy"
+ notationViewFactoryClassName="SequentialUnitSequentialUnitHelperUnitsCompartmentViewFactory"
+ canonicalEditPolicyClassName="SequentialUnitSequentialUnitHelperUnitsCompartmentCanonicalEditPolicy"
+ childNodes="//@diagram/@childNodes.60 //@diagram/@childNodes.61 //@diagram/@childNodes.62 //@diagram/@childNodes.63"
+ title="SequentialUnitHelperUnitsCompartment"
+ needsTitle="false"
+ node="//@diagram/@childNodes.25"
+ listLayout="false">
+ <diagramRunTimeClass
+ href="../../../plugin/org.eclipse.gmf.runtime.notation/model/notation.genmodel#//notation/Node"/>
+ <viewmap
+ xsi:type="gmfgen:ParentAssignedViewmap"
+ getterName="getSequentialUnitHelperUnitsCompartmentFigure"
+ figureQualifiedClassName="org.eclipse.draw2d.RectangleFigure"/>
+ </compartments>
+ <compartments
+ visualID="7014"
+ editPartClassName="SequentialUnitSequentialUnitRefactoringUnitsCompartmentEditPart"
+ itemSemanticEditPolicyClassName="SequentialUnitSequentialUnitRefactoringUnitsCompartmentItemSemanticEditPolicy"
+ notationViewFactoryClassName="SequentialUnitSequentialUnitRefactoringUnitsCompartmentViewFactory"
+ canonicalEditPolicyClassName="SequentialUnitSequentialUnitRefactoringUnitsCompartmentCanonicalEditPolicy"
+ childNodes="//@diagram/@childNodes.28 //@diagram/@childNodes.44 //@diagram/@childNodes.64 //@diagram/@childNodes.69 //@diagram/@childNodes.70 //@diagram/@childNodes.73"
+ title="SequentialUnitRefactoringUnitsCompartment"
+ needsTitle="false"
+ node="//@diagram/@childNodes.25"
+ listLayout="false">
+ <diagramRunTimeClass
+ href="../../../plugin/org.eclipse.gmf.runtime.notation/model/notation.genmodel#//notation/Node"/>
+ <viewmap
+ xsi:type="gmfgen:ParentAssignedViewmap"
+ getterName="getSequentialUnitRefactoringUnitsCompartmentFigure"
+ figureQualifiedClassName="org.eclipse.draw2d.RectangleFigure"/>
+ </compartments>
+ <compartments
+ visualID="7015"
+ editPartClassName="CartesianQueuedUnitCartesianQueuedUnitHelperUnitsCompartment5EditPart"
+ itemSemanticEditPolicyClassName="CartesianQueuedUnitCartesianQueuedUnitHelperUnitsCompartment5ItemSemanticEditPolicy"
+ notationViewFactoryClassName="CartesianQueuedUnitCartesianQueuedUnitHelperUnitsCompartmentViewFactory"
+ canonicalEditPolicyClassName="CartesianQueuedUnitCartesianQueuedUnitHelperUnitsCompartment5CanonicalEditPolicy"
+ childNodes="//@diagram/@childNodes.7 //@diagram/@childNodes.11 //@diagram/@childNodes.15 //@diagram/@childNodes.18"
+ title="CartesianQueuedUnitHelperUnitsCompartment"
+ needsTitle="false"
+ node="//@diagram/@childNodes.28"
+ listLayout="false">
+ <diagramRunTimeClass
+ href="../../../plugin/org.eclipse.gmf.runtime.notation/model/notation.genmodel#//notation/Node"/>
+ <viewmap
+ xsi:type="gmfgen:ParentAssignedViewmap"
+ getterName="getCartesianQueuedUnitHelperUnitsCompartmentFigure"
+ figureQualifiedClassName="org.eclipse.draw2d.RectangleFigure"/>
+ </compartments>
+ <compartments
+ visualID="7016"
+ editPartClassName="CartesianQueuedUnitCartesianQueuedUnitRefactoringUnitCompartment5EditPart"
+ itemSemanticEditPolicyClassName="CartesianQueuedUnitCartesianQueuedUnitRefactoringUnitCompartment5ItemSemanticEditPolicy"
+ notationViewFactoryClassName="CartesianQueuedUnitCartesianQueuedUnitRefactoringUnitCompartmentViewFactory"
+ canonicalEditPolicyClassName="CartesianQueuedUnitCartesianQueuedUnitRefactoringUnitCompartment5CanonicalEditPolicy"
+ childNodes="//@diagram/@childNodes.2 //@diagram/@childNodes.3 //@diagram/@childNodes.21 //@diagram/@childNodes.25 //@diagram/@childNodes.29 //@diagram/@childNodes.33"
+ title="CartesianQueuedUnitRefactoringUnitCompartment"
+ needsTitle="false"
+ node="//@diagram/@childNodes.28"
+ listLayout="false">
+ <diagramRunTimeClass
+ href="../../../plugin/org.eclipse.gmf.runtime.notation/model/notation.genmodel#//notation/Node"/>
+ <viewmap
+ xsi:type="gmfgen:ParentAssignedViewmap"
+ getterName="getCartesianQueuedUnitRefactoringUnitCompartmentFigure"
+ figureQualifiedClassName="org.eclipse.draw2d.RectangleFigure"/>
+ </compartments>
+ <compartments
+ visualID="7017"
+ editPartClassName="ConditionalUnitConditionalUnitIfCompartmentEditPart"
+ itemSemanticEditPolicyClassName="ConditionalUnitConditionalUnitIfCompartmentItemSemanticEditPolicy"
+ notationViewFactoryClassName="ConditionalUnitConditionalUnitIfCompartmentViewFactory"
+ canonicalEditPolicyClassName="ConditionalUnitConditionalUnitIfCompartmentCanonicalEditPolicy"
+ childNodes="//@diagram/@childNodes.75"
+ title="ConditionalUnitIfCompartment"
+ needsTitle="false"
+ node="//@diagram/@childNodes.29"
+ listLayout="false">
+ <diagramRunTimeClass
+ href="../../../plugin/org.eclipse.gmf.runtime.notation/model/notation.genmodel#//notation/Node"/>
+ <viewmap
+ xsi:type="gmfgen:ParentAssignedViewmap"
+ getterName="getConditionalUnitIfCompartmentFigure"
+ figureQualifiedClassName="org.eclipse.draw2d.RectangleFigure"/>
+ </compartments>
+ <compartments
+ visualID="7018"
+ editPartClassName="ConditionalUnitConditionalUnitHelperUnitsCompartmentEditPart"
+ itemSemanticEditPolicyClassName="ConditionalUnitConditionalUnitHelperUnitsCompartmentItemSemanticEditPolicy"
+ notationViewFactoryClassName="ConditionalUnitConditionalUnitHelperUnitsCompartmentViewFactory"
+ canonicalEditPolicyClassName="ConditionalUnitConditionalUnitHelperUnitsCompartmentCanonicalEditPolicy"
+ childNodes="//@diagram/@childNodes.49 //@diagram/@childNodes.50 //@diagram/@childNodes.51 //@diagram/@childNodes.52"
+ title="ConditionalUnitHelperUnitsCompartment"
+ needsTitle="false"
+ node="//@diagram/@childNodes.29"
+ listLayout="false">
+ <diagramRunTimeClass
+ href="../../../plugin/org.eclipse.gmf.runtime.notation/model/notation.genmodel#//notation/Node"/>
+ <viewmap
+ xsi:type="gmfgen:ParentAssignedViewmap"
+ getterName="getConditionalUnitHelperUnitsCompartmentFigure"
+ figureQualifiedClassName="org.eclipse.draw2d.RectangleFigure"/>
+ </compartments>
+ <compartments
+ visualID="7019"
+ editPartClassName="ConditionalUnitConditionalUnitThenCompartmentEditPart"
+ itemSemanticEditPolicyClassName="ConditionalUnitConditionalUnitThenCompartmentItemSemanticEditPolicy"
+ notationViewFactoryClassName="ConditionalUnitConditionalUnitThenCompartmentViewFactory"
+ canonicalEditPolicyClassName="ConditionalUnitConditionalUnitThenCompartmentCanonicalEditPolicy"
+ childNodes="//@diagram/@childNodes.32 //@diagram/@childNodes.35 //@diagram/@childNodes.53 //@diagram/@childNodes.68 //@diagram/@childNodes.71 //@diagram/@childNodes.76"
+ title="ConditionalUnitThenCompartment"
+ needsTitle="false"
+ node="//@diagram/@childNodes.29"
+ listLayout="false">
+ <diagramRunTimeClass
+ href="../../../plugin/org.eclipse.gmf.runtime.notation/model/notation.genmodel#//notation/Node"/>
+ <viewmap
+ xsi:type="gmfgen:ParentAssignedViewmap"
+ getterName="getConditionalUnitThenCompartmentFigure"
+ figureQualifiedClassName="org.eclipse.draw2d.RectangleFigure"/>
+ </compartments>
+ <compartments
+ visualID="7020"
+ editPartClassName="ConditionalUnitConditionalUnitElseCompartmentEditPart"
+ itemSemanticEditPolicyClassName="ConditionalUnitConditionalUnitElseCompartmentItemSemanticEditPolicy"
+ notationViewFactoryClassName="ConditionalUnitConditionalUnitElseCompartmentViewFactory"
+ canonicalEditPolicyClassName="ConditionalUnitConditionalUnitElseCompartmentCanonicalEditPolicy"
+ childNodes="//@diagram/@childNodes.46 //@diagram/@childNodes.47 //@diagram/@childNodes.66 //@diagram/@childNodes.72 //@diagram/@childNodes.74 //@diagram/@childNodes.77"
+ title="ConditionalUnitElseCompartment"
+ needsTitle="false"
+ node="//@diagram/@childNodes.29"
+ listLayout="false">
+ <diagramRunTimeClass
+ href="../../../plugin/org.eclipse.gmf.runtime.notation/model/notation.genmodel#//notation/Node"/>
+ <viewmap
+ xsi:type="gmfgen:ParentAssignedViewmap"
+ getterName="getConditionalUnitElseCompartmentFigure"
+ figureQualifiedClassName="org.eclipse.draw2d.RectangleFigure"/>
+ </compartments>
+ <compartments
+ visualID="7021"
+ editPartClassName="CartesianQueuedUnitCartesianQueuedUnitHelperUnitsCompartment6EditPart"
+ itemSemanticEditPolicyClassName="CartesianQueuedUnitCartesianQueuedUnitHelperUnitsCompartment6ItemSemanticEditPolicy"
+ notationViewFactoryClassName="CartesianQueuedUnitCartesianQueuedUnitHelperUnitsCompartmentViewFactory"
+ canonicalEditPolicyClassName="CartesianQueuedUnitCartesianQueuedUnitHelperUnitsCompartment6CanonicalEditPolicy"
+ childNodes="//@diagram/@childNodes.7 //@diagram/@childNodes.11 //@diagram/@childNodes.15 //@diagram/@childNodes.18"
+ title="CartesianQueuedUnitHelperUnitsCompartment"
+ needsTitle="false"
+ node="//@diagram/@childNodes.32"
+ listLayout="false">
+ <diagramRunTimeClass
+ href="../../../plugin/org.eclipse.gmf.runtime.notation/model/notation.genmodel#//notation/Node"/>
+ <viewmap
+ xsi:type="gmfgen:ParentAssignedViewmap"
+ getterName="getCartesianQueuedUnitHelperUnitsCompartmentFigure"
+ figureQualifiedClassName="org.eclipse.draw2d.RectangleFigure"/>
+ </compartments>
+ <compartments
+ visualID="7022"
+ editPartClassName="CartesianQueuedUnitCartesianQueuedUnitRefactoringUnitCompartment6EditPart"
+ itemSemanticEditPolicyClassName="CartesianQueuedUnitCartesianQueuedUnitRefactoringUnitCompartment6ItemSemanticEditPolicy"
+ notationViewFactoryClassName="CartesianQueuedUnitCartesianQueuedUnitRefactoringUnitCompartmentViewFactory"
+ canonicalEditPolicyClassName="CartesianQueuedUnitCartesianQueuedUnitRefactoringUnitCompartment6CanonicalEditPolicy"
+ childNodes="//@diagram/@childNodes.2 //@diagram/@childNodes.3 //@diagram/@childNodes.21 //@diagram/@childNodes.25 //@diagram/@childNodes.29 //@diagram/@childNodes.33"
+ title="CartesianQueuedUnitRefactoringUnitCompartment"
+ needsTitle="false"
+ node="//@diagram/@childNodes.32"
+ listLayout="false">
+ <diagramRunTimeClass
+ href="../../../plugin/org.eclipse.gmf.runtime.notation/model/notation.genmodel#//notation/Node"/>
+ <viewmap
+ xsi:type="gmfgen:ParentAssignedViewmap"
+ getterName="getCartesianQueuedUnitRefactoringUnitCompartmentFigure"
+ figureQualifiedClassName="org.eclipse.draw2d.RectangleFigure"/>
+ </compartments>
+ <compartments
+ visualID="7023"
+ editPartClassName="ParallelQueuedUnitParallelQueuedUnitHelperUnitsCompartment2EditPart"
+ itemSemanticEditPolicyClassName="ParallelQueuedUnitParallelQueuedUnitHelperUnitsCompartment2ItemSemanticEditPolicy"
+ notationViewFactoryClassName="ParallelQueuedUnitParallelQueuedUnitHelperUnitsCompartmentViewFactory"
+ canonicalEditPolicyClassName="ParallelQueuedUnitParallelQueuedUnitHelperUnitsCompartment2CanonicalEditPolicy"
+ childNodes="//@diagram/@childNodes.37 //@diagram/@childNodes.38 //@diagram/@childNodes.39 //@diagram/@childNodes.40"
+ title="ParallelQueuedUnitHelperUnitsCompartment"
+ needsTitle="false"
+ node="//@diagram/@childNodes.35"
+ listLayout="false">
+ <diagramRunTimeClass
+ href="../../../plugin/org.eclipse.gmf.runtime.notation/model/notation.genmodel#//notation/Node"/>
+ <viewmap
+ xsi:type="gmfgen:ParentAssignedViewmap"
+ getterName="getParallelQueuedUnitHelperUnitsCompartmentFigure"
+ figureQualifiedClassName="org.eclipse.draw2d.RectangleFigure"/>
+ </compartments>
+ <compartments
+ visualID="7024"
+ editPartClassName="ParallelQueuedUnitParallelQueuedUnitRefactoringUnitsCompartment2EditPart"
+ itemSemanticEditPolicyClassName="ParallelQueuedUnitParallelQueuedUnitRefactoringUnitsCompartment2ItemSemanticEditPolicy"
+ notationViewFactoryClassName="ParallelQueuedUnitParallelQueuedUnitRefactoringUnitsCompartmentViewFactory"
+ canonicalEditPolicyClassName="ParallelQueuedUnitParallelQueuedUnitRefactoringUnitsCompartment2CanonicalEditPolicy"
+ childNodes="//@diagram/@childNodes.6 //@diagram/@childNodes.36 //@diagram/@childNodes.41 //@diagram/@childNodes.43 //@diagram/@childNodes.45 //@diagram/@childNodes.48"
+ title="ParallelQueuedUnitRefactoringUnitsCompartment"
+ needsTitle="false"
+ node="//@diagram/@childNodes.35"
+ listLayout="false">
+ <diagramRunTimeClass
+ href="../../../plugin/org.eclipse.gmf.runtime.notation/model/notation.genmodel#//notation/Node"/>
+ <viewmap
+ xsi:type="gmfgen:ParentAssignedViewmap"
+ getterName="getParallelQueuedUnitRefactoringUnitsCompartmentFigure"
+ figureQualifiedClassName="org.eclipse.draw2d.RectangleFigure"/>
+ </compartments>
+ <compartments
+ visualID="7025"
+ editPartClassName="ParallelQueuedUnitParallelQueuedUnitHelperUnitsCompartment3EditPart"
+ itemSemanticEditPolicyClassName="ParallelQueuedUnitParallelQueuedUnitHelperUnitsCompartment3ItemSemanticEditPolicy"
+ notationViewFactoryClassName="ParallelQueuedUnitParallelQueuedUnitHelperUnitsCompartmentViewFactory"
+ canonicalEditPolicyClassName="ParallelQueuedUnitParallelQueuedUnitHelperUnitsCompartment3CanonicalEditPolicy"
+ childNodes="//@diagram/@childNodes.37 //@diagram/@childNodes.38 //@diagram/@childNodes.39 //@diagram/@childNodes.40"
+ title="ParallelQueuedUnitHelperUnitsCompartment"
+ needsTitle="false"
+ node="//@diagram/@childNodes.36"
+ listLayout="false">
+ <diagramRunTimeClass
+ href="../../../plugin/org.eclipse.gmf.runtime.notation/model/notation.genmodel#//notation/Node"/>
+ <viewmap
+ xsi:type="gmfgen:ParentAssignedViewmap"
+ getterName="getParallelQueuedUnitHelperUnitsCompartmentFigure"
+ figureQualifiedClassName="org.eclipse.draw2d.RectangleFigure"/>
+ </compartments>
+ <compartments
+ visualID="7026"
+ editPartClassName="ParallelQueuedUnitParallelQueuedUnitRefactoringUnitsCompartment3EditPart"
+ itemSemanticEditPolicyClassName="ParallelQueuedUnitParallelQueuedUnitRefactoringUnitsCompartment3ItemSemanticEditPolicy"
+ notationViewFactoryClassName="ParallelQueuedUnitParallelQueuedUnitRefactoringUnitsCompartmentViewFactory"
+ canonicalEditPolicyClassName="ParallelQueuedUnitParallelQueuedUnitRefactoringUnitsCompartment3CanonicalEditPolicy"
+ childNodes="//@diagram/@childNodes.6 //@diagram/@childNodes.36 //@diagram/@childNodes.41 //@diagram/@childNodes.43 //@diagram/@childNodes.45 //@diagram/@childNodes.48"
+ title="ParallelQueuedUnitRefactoringUnitsCompartment"
+ needsTitle="false"
+ node="//@diagram/@childNodes.36"
+ listLayout="false">
+ <diagramRunTimeClass
+ href="../../../plugin/org.eclipse.gmf.runtime.notation/model/notation.genmodel#//notation/Node"/>
+ <viewmap
+ xsi:type="gmfgen:ParentAssignedViewmap"
+ getterName="getParallelQueuedUnitRefactoringUnitsCompartmentFigure"
+ figureQualifiedClassName="org.eclipse.draw2d.RectangleFigure"/>
+ </compartments>
+ <compartments
+ visualID="7027"
+ editPartClassName="SingleQueuedUnitSingleQueuedUnitHelperUnitsCompartment2EditPart"
+ itemSemanticEditPolicyClassName="SingleQueuedUnitSingleQueuedUnitHelperUnitsCompartment2ItemSemanticEditPolicy"
+ notationViewFactoryClassName="SingleQueuedUnitSingleQueuedUnitHelperUnitsCompartmentViewFactory"
+ canonicalEditPolicyClassName="SingleQueuedUnitSingleQueuedUnitHelperUnitsCompartment2CanonicalEditPolicy"
+ childNodes="//@diagram/@childNodes.54 //@diagram/@childNodes.55 //@diagram/@childNodes.56 //@diagram/@childNodes.57"
+ title="SingleQueuedUnitHelperUnitsCompartment"
+ needsTitle="false"
+ node="//@diagram/@childNodes.41"
+ listLayout="false">
+ <diagramRunTimeClass
+ href="../../../plugin/org.eclipse.gmf.runtime.notation/model/notation.genmodel#//notation/Node"/>
+ <viewmap
+ xsi:type="gmfgen:ParentAssignedViewmap"
+ getterName="getSingleQueuedUnitHelperUnitsCompartmentFigure"
+ figureQualifiedClassName="org.eclipse.draw2d.RectangleFigure"/>
+ </compartments>
+ <compartments
+ visualID="7028"
+ editPartClassName="SingleQueuedUnitSingleQueuedUnitRefactoringUnitCompartment2EditPart"
+ itemSemanticEditPolicyClassName="SingleQueuedUnitSingleQueuedUnitRefactoringUnitCompartment2ItemSemanticEditPolicy"
+ notationViewFactoryClassName="SingleQueuedUnitSingleQueuedUnitRefactoringUnitCompartmentViewFactory"
+ canonicalEditPolicyClassName="SingleQueuedUnitSingleQueuedUnitRefactoringUnitCompartment2CanonicalEditPolicy"
+ childNodes="//@diagram/@childNodes.24 //@diagram/@childNodes.42 //@diagram/@childNodes.58 //@diagram/@childNodes.59 //@diagram/@childNodes.65 //@diagram/@childNodes.67"
+ title="SingleQueuedUnitRefactoringUnitCompartment"
+ needsTitle="false"
+ node="//@diagram/@childNodes.41"
+ listLayout="false">
+ <diagramRunTimeClass
+ href="../../../plugin/org.eclipse.gmf.runtime.notation/model/notation.genmodel#//notation/Node"/>
+ <viewmap
+ xsi:type="gmfgen:ParentAssignedViewmap"
+ getterName="getSingleQueuedUnitRefactoringUnitCompartmentFigure"
+ figureQualifiedClassName="org.eclipse.draw2d.RectangleFigure"/>
+ </compartments>
+ <compartments
+ visualID="7029"
+ editPartClassName="ParallelQueuedUnitParallelQueuedUnitHelperUnitsCompartment4EditPart"
+ itemSemanticEditPolicyClassName="ParallelQueuedUnitParallelQueuedUnitHelperUnitsCompartment4ItemSemanticEditPolicy"
+ notationViewFactoryClassName="ParallelQueuedUnitParallelQueuedUnitHelperUnitsCompartmentViewFactory"
+ canonicalEditPolicyClassName="ParallelQueuedUnitParallelQueuedUnitHelperUnitsCompartment4CanonicalEditPolicy"
+ childNodes="//@diagram/@childNodes.37 //@diagram/@childNodes.38 //@diagram/@childNodes.39 //@diagram/@childNodes.40"
+ title="ParallelQueuedUnitHelperUnitsCompartment"
+ needsTitle="false"
+ node="//@diagram/@childNodes.42"
+ listLayout="false">
+ <diagramRunTimeClass
+ href="../../../plugin/org.eclipse.gmf.runtime.notation/model/notation.genmodel#//notation/Node"/>
+ <viewmap
+ xsi:type="gmfgen:ParentAssignedViewmap"
+ getterName="getParallelQueuedUnitHelperUnitsCompartmentFigure"
+ figureQualifiedClassName="org.eclipse.draw2d.RectangleFigure"/>
+ </compartments>
+ <compartments
+ visualID="7030"
+ editPartClassName="ParallelQueuedUnitParallelQueuedUnitRefactoringUnitsCompartment4EditPart"
+ itemSemanticEditPolicyClassName="ParallelQueuedUnitParallelQueuedUnitRefactoringUnitsCompartment4ItemSemanticEditPolicy"
+ notationViewFactoryClassName="ParallelQueuedUnitParallelQueuedUnitRefactoringUnitsCompartmentViewFactory"
+ canonicalEditPolicyClassName="ParallelQueuedUnitParallelQueuedUnitRefactoringUnitsCompartment4CanonicalEditPolicy"
+ childNodes="//@diagram/@childNodes.6 //@diagram/@childNodes.36 //@diagram/@childNodes.41 //@diagram/@childNodes.43 //@diagram/@childNodes.45 //@diagram/@childNodes.48"
+ title="ParallelQueuedUnitRefactoringUnitsCompartment"
+ needsTitle="false"
+ node="//@diagram/@childNodes.42"
+ listLayout="false">
+ <diagramRunTimeClass
+ href="../../../plugin/org.eclipse.gmf.runtime.notation/model/notation.genmodel#//notation/Node"/>
+ <viewmap
+ xsi:type="gmfgen:ParentAssignedViewmap"
+ getterName="getParallelQueuedUnitRefactoringUnitsCompartmentFigure"
+ figureQualifiedClassName="org.eclipse.draw2d.RectangleFigure"/>
+ </compartments>
+ <compartments
+ visualID="7031"
+ editPartClassName="SequentialUnitSequentialUnitHelperUnitsCompartment2EditPart"
+ itemSemanticEditPolicyClassName="SequentialUnitSequentialUnitHelperUnitsCompartment2ItemSemanticEditPolicy"
+ notationViewFactoryClassName="SequentialUnitSequentialUnitHelperUnitsCompartmentViewFactory"
+ canonicalEditPolicyClassName="SequentialUnitSequentialUnitHelperUnitsCompartment2CanonicalEditPolicy"
+ childNodes="//@diagram/@childNodes.60 //@diagram/@childNodes.61 //@diagram/@childNodes.62 //@diagram/@childNodes.63"
+ title="SequentialUnitHelperUnitsCompartment"
+ needsTitle="false"
+ node="//@diagram/@childNodes.43"
+ listLayout="false">
+ <diagramRunTimeClass
+ href="../../../plugin/org.eclipse.gmf.runtime.notation/model/notation.genmodel#//notation/Node"/>
+ <viewmap
+ xsi:type="gmfgen:ParentAssignedViewmap"
+ getterName="getSequentialUnitHelperUnitsCompartmentFigure"
+ figureQualifiedClassName="org.eclipse.draw2d.RectangleFigure"/>
+ </compartments>
+ <compartments
+ visualID="7032"
+ editPartClassName="SequentialUnitSequentialUnitRefactoringUnitsCompartment2EditPart"
+ itemSemanticEditPolicyClassName="SequentialUnitSequentialUnitRefactoringUnitsCompartment2ItemSemanticEditPolicy"
+ notationViewFactoryClassName="SequentialUnitSequentialUnitRefactoringUnitsCompartmentViewFactory"
+ canonicalEditPolicyClassName="SequentialUnitSequentialUnitRefactoringUnitsCompartment2CanonicalEditPolicy"
+ childNodes="//@diagram/@childNodes.28 //@diagram/@childNodes.44 //@diagram/@childNodes.64 //@diagram/@childNodes.69 //@diagram/@childNodes.70 //@diagram/@childNodes.73"
+ title="SequentialUnitRefactoringUnitsCompartment"
+ needsTitle="false"
+ node="//@diagram/@childNodes.43"
+ listLayout="false">
+ <diagramRunTimeClass
+ href="../../../plugin/org.eclipse.gmf.runtime.notation/model/notation.genmodel#//notation/Node"/>
+ <viewmap
+ xsi:type="gmfgen:ParentAssignedViewmap"
+ getterName="getSequentialUnitRefactoringUnitsCompartmentFigure"
+ figureQualifiedClassName="org.eclipse.draw2d.RectangleFigure"/>
+ </compartments>
+ <compartments
+ visualID="7033"
+ editPartClassName="ParallelQueuedUnitParallelQueuedUnitHelperUnitsCompartment5EditPart"
+ itemSemanticEditPolicyClassName="ParallelQueuedUnitParallelQueuedUnitHelperUnitsCompartment5ItemSemanticEditPolicy"
+ notationViewFactoryClassName="ParallelQueuedUnitParallelQueuedUnitHelperUnitsCompartmentViewFactory"
+ canonicalEditPolicyClassName="ParallelQueuedUnitParallelQueuedUnitHelperUnitsCompartment5CanonicalEditPolicy"
+ childNodes="//@diagram/@childNodes.37 //@diagram/@childNodes.38 //@diagram/@childNodes.39 //@diagram/@childNodes.40"
+ title="ParallelQueuedUnitHelperUnitsCompartment"
+ needsTitle="false"
+ node="//@diagram/@childNodes.44"
+ listLayout="false">
+ <diagramRunTimeClass
+ href="../../../plugin/org.eclipse.gmf.runtime.notation/model/notation.genmodel#//notation/Node"/>
+ <viewmap
+ xsi:type="gmfgen:ParentAssignedViewmap"
+ getterName="getParallelQueuedUnitHelperUnitsCompartmentFigure"
+ figureQualifiedClassName="org.eclipse.draw2d.RectangleFigure"/>
+ </compartments>
+ <compartments
+ visualID="7034"
+ editPartClassName="ParallelQueuedUnitParallelQueuedUnitRefactoringUnitsCompartment5EditPart"
+ itemSemanticEditPolicyClassName="ParallelQueuedUnitParallelQueuedUnitRefactoringUnitsCompartment5ItemSemanticEditPolicy"
+ notationViewFactoryClassName="ParallelQueuedUnitParallelQueuedUnitRefactoringUnitsCompartmentViewFactory"
+ canonicalEditPolicyClassName="ParallelQueuedUnitParallelQueuedUnitRefactoringUnitsCompartment5CanonicalEditPolicy"
+ childNodes="//@diagram/@childNodes.6 //@diagram/@childNodes.36 //@diagram/@childNodes.41 //@diagram/@childNodes.43 //@diagram/@childNodes.45 //@diagram/@childNodes.48"
+ title="ParallelQueuedUnitRefactoringUnitsCompartment"
+ needsTitle="false"
+ node="//@diagram/@childNodes.44"
+ listLayout="false">
+ <diagramRunTimeClass
+ href="../../../plugin/org.eclipse.gmf.runtime.notation/model/notation.genmodel#//notation/Node"/>
+ <viewmap
+ xsi:type="gmfgen:ParentAssignedViewmap"
+ getterName="getParallelQueuedUnitRefactoringUnitsCompartmentFigure"
+ figureQualifiedClassName="org.eclipse.draw2d.RectangleFigure"/>
+ </compartments>
+ <compartments
+ visualID="7035"
+ editPartClassName="ConditionalUnitConditionalUnitIfCompartment2EditPart"
+ itemSemanticEditPolicyClassName="ConditionalUnitConditionalUnitIfCompartment2ItemSemanticEditPolicy"
+ notationViewFactoryClassName="ConditionalUnitConditionalUnitIfCompartmentViewFactory"
+ canonicalEditPolicyClassName="ConditionalUnitConditionalUnitIfCompartment2CanonicalEditPolicy"
+ childNodes="//@diagram/@childNodes.75"
+ title="ConditionalUnitIfCompartment"
+ needsTitle="false"
+ node="//@diagram/@childNodes.45"
+ listLayout="false">
+ <diagramRunTimeClass
+ href="../../../plugin/org.eclipse.gmf.runtime.notation/model/notation.genmodel#//notation/Node"/>
+ <viewmap
+ xsi:type="gmfgen:ParentAssignedViewmap"
+ getterName="getConditionalUnitIfCompartmentFigure"
+ figureQualifiedClassName="org.eclipse.draw2d.RectangleFigure"/>
+ </compartments>
+ <compartments
+ visualID="7036"
+ editPartClassName="ConditionalUnitConditionalUnitHelperUnitsCompartment2EditPart"
+ itemSemanticEditPolicyClassName="ConditionalUnitConditionalUnitHelperUnitsCompartment2ItemSemanticEditPolicy"
+ notationViewFactoryClassName="ConditionalUnitConditionalUnitHelperUnitsCompartmentViewFactory"
+ canonicalEditPolicyClassName="ConditionalUnitConditionalUnitHelperUnitsCompartment2CanonicalEditPolicy"
+ childNodes="//@diagram/@childNodes.49 //@diagram/@childNodes.50 //@diagram/@childNodes.51 //@diagram/@childNodes.52"
+ title="ConditionalUnitHelperUnitsCompartment"
+ needsTitle="false"
+ node="//@diagram/@childNodes.45"
+ listLayout="false">
+ <diagramRunTimeClass
+ href="../../../plugin/org.eclipse.gmf.runtime.notation/model/notation.genmodel#//notation/Node"/>
+ <viewmap
+ xsi:type="gmfgen:ParentAssignedViewmap"
+ getterName="getConditionalUnitHelperUnitsCompartmentFigure"
+ figureQualifiedClassName="org.eclipse.draw2d.RectangleFigure"/>
+ </compartments>
+ <compartments
+ visualID="7037"
+ editPartClassName="ConditionalUnitConditionalUnitThenCompartment2EditPart"
+ itemSemanticEditPolicyClassName="ConditionalUnitConditionalUnitThenCompartment2ItemSemanticEditPolicy"
+ notationViewFactoryClassName="ConditionalUnitConditionalUnitThenCompartmentViewFactory"
+ canonicalEditPolicyClassName="ConditionalUnitConditionalUnitThenCompartment2CanonicalEditPolicy"
+ childNodes="//@diagram/@childNodes.32 //@diagram/@childNodes.35 //@diagram/@childNodes.53 //@diagram/@childNodes.68 //@diagram/@childNodes.71 //@diagram/@childNodes.76"
+ title="ConditionalUnitThenCompartment"
+ needsTitle="false"
+ node="//@diagram/@childNodes.45"
+ listLayout="false">
+ <diagramRunTimeClass
+ href="../../../plugin/org.eclipse.gmf.runtime.notation/model/notation.genmodel#//notation/Node"/>
+ <viewmap
+ xsi:type="gmfgen:ParentAssignedViewmap"
+ getterName="getConditionalUnitThenCompartmentFigure"
+ figureQualifiedClassName="org.eclipse.draw2d.RectangleFigure"/>
+ </compartments>
+ <compartments
+ visualID="7038"
+ editPartClassName="ConditionalUnitConditionalUnitElseCompartment2EditPart"
+ itemSemanticEditPolicyClassName="ConditionalUnitConditionalUnitElseCompartment2ItemSemanticEditPolicy"
+ notationViewFactoryClassName="ConditionalUnitConditionalUnitElseCompartmentViewFactory"
+ canonicalEditPolicyClassName="ConditionalUnitConditionalUnitElseCompartment2CanonicalEditPolicy"
+ childNodes="//@diagram/@childNodes.46 //@diagram/@childNodes.47 //@diagram/@childNodes.66 //@diagram/@childNodes.72 //@diagram/@childNodes.74 //@diagram/@childNodes.77"
+ title="ConditionalUnitElseCompartment"
+ needsTitle="false"
+ node="//@diagram/@childNodes.45"
+ listLayout="false">
+ <diagramRunTimeClass
+ href="../../../plugin/org.eclipse.gmf.runtime.notation/model/notation.genmodel#//notation/Node"/>
+ <viewmap
+ xsi:type="gmfgen:ParentAssignedViewmap"
+ getterName="getConditionalUnitElseCompartmentFigure"
+ figureQualifiedClassName="org.eclipse.draw2d.RectangleFigure"/>
+ </compartments>
+ <compartments
+ visualID="7039"
+ editPartClassName="CartesianQueuedUnitCartesianQueuedUnitHelperUnitsCompartment7EditPart"
+ itemSemanticEditPolicyClassName="CartesianQueuedUnitCartesianQueuedUnitHelperUnitsCompartment7ItemSemanticEditPolicy"
+ notationViewFactoryClassName="CartesianQueuedUnitCartesianQueuedUnitHelperUnitsCompartmentViewFactory"
+ canonicalEditPolicyClassName="CartesianQueuedUnitCartesianQueuedUnitHelperUnitsCompartment7CanonicalEditPolicy"
+ childNodes="//@diagram/@childNodes.7 //@diagram/@childNodes.11 //@diagram/@childNodes.15 //@diagram/@childNodes.18"
+ title="CartesianQueuedUnitHelperUnitsCompartment"
+ needsTitle="false"
+ node="//@diagram/@childNodes.46"
+ listLayout="false">
+ <diagramRunTimeClass
+ href="../../../plugin/org.eclipse.gmf.runtime.notation/model/notation.genmodel#//notation/Node"/>
+ <viewmap
+ xsi:type="gmfgen:ParentAssignedViewmap"
+ getterName="getCartesianQueuedUnitHelperUnitsCompartmentFigure"
+ figureQualifiedClassName="org.eclipse.draw2d.RectangleFigure"/>
+ </compartments>
+ <compartments
+ visualID="7040"
+ editPartClassName="CartesianQueuedUnitCartesianQueuedUnitRefactoringUnitCompartment7EditPart"
+ itemSemanticEditPolicyClassName="CartesianQueuedUnitCartesianQueuedUnitRefactoringUnitCompartment7ItemSemanticEditPolicy"
+ notationViewFactoryClassName="CartesianQueuedUnitCartesianQueuedUnitRefactoringUnitCompartmentViewFactory"
+ canonicalEditPolicyClassName="CartesianQueuedUnitCartesianQueuedUnitRefactoringUnitCompartment7CanonicalEditPolicy"
+ childNodes="//@diagram/@childNodes.2 //@diagram/@childNodes.3 //@diagram/@childNodes.21 //@diagram/@childNodes.25 //@diagram/@childNodes.29 //@diagram/@childNodes.33"
+ title="CartesianQueuedUnitRefactoringUnitCompartment"
+ needsTitle="false"
+ node="//@diagram/@childNodes.46"
+ listLayout="false">
+ <diagramRunTimeClass
+ href="../../../plugin/org.eclipse.gmf.runtime.notation/model/notation.genmodel#//notation/Node"/>
+ <viewmap
+ xsi:type="gmfgen:ParentAssignedViewmap"
+ getterName="getCartesianQueuedUnitRefactoringUnitCompartmentFigure"
+ figureQualifiedClassName="org.eclipse.draw2d.RectangleFigure"/>
+ </compartments>
+ <compartments
+ visualID="7041"
+ editPartClassName="ParallelQueuedUnitParallelQueuedUnitHelperUnitsCompartment6EditPart"
+ itemSemanticEditPolicyClassName="ParallelQueuedUnitParallelQueuedUnitHelperUnitsCompartment6ItemSemanticEditPolicy"
+ notationViewFactoryClassName="ParallelQueuedUnitParallelQueuedUnitHelperUnitsCompartmentViewFactory"
+ canonicalEditPolicyClassName="ParallelQueuedUnitParallelQueuedUnitHelperUnitsCompartment6CanonicalEditPolicy"
+ childNodes="//@diagram/@childNodes.37 //@diagram/@childNodes.38 //@diagram/@childNodes.39 //@diagram/@childNodes.40"
+ title="ParallelQueuedUnitHelperUnitsCompartment"
+ needsTitle="false"
+ node="//@diagram/@childNodes.47"
+ listLayout="false">
+ <diagramRunTimeClass
+ href="../../../plugin/org.eclipse.gmf.runtime.notation/model/notation.genmodel#//notation/Node"/>
+ <viewmap
+ xsi:type="gmfgen:ParentAssignedViewmap"
+ getterName="getParallelQueuedUnitHelperUnitsCompartmentFigure"
+ figureQualifiedClassName="org.eclipse.draw2d.RectangleFigure"/>
+ </compartments>
+ <compartments
+ visualID="7042"
+ editPartClassName="ParallelQueuedUnitParallelQueuedUnitRefactoringUnitsCompartment6EditPart"
+ itemSemanticEditPolicyClassName="ParallelQueuedUnitParallelQueuedUnitRefactoringUnitsCompartment6ItemSemanticEditPolicy"
+ notationViewFactoryClassName="ParallelQueuedUnitParallelQueuedUnitRefactoringUnitsCompartmentViewFactory"
+ canonicalEditPolicyClassName="ParallelQueuedUnitParallelQueuedUnitRefactoringUnitsCompartment6CanonicalEditPolicy"
+ childNodes="//@diagram/@childNodes.6 //@diagram/@childNodes.36 //@diagram/@childNodes.41 //@diagram/@childNodes.43 //@diagram/@childNodes.45 //@diagram/@childNodes.48"
+ title="ParallelQueuedUnitRefactoringUnitsCompartment"
+ needsTitle="false"
+ node="//@diagram/@childNodes.47"
+ listLayout="false">
+ <diagramRunTimeClass
+ href="../../../plugin/org.eclipse.gmf.runtime.notation/model/notation.genmodel#//notation/Node"/>
+ <viewmap
+ xsi:type="gmfgen:ParentAssignedViewmap"
+ getterName="getParallelQueuedUnitRefactoringUnitsCompartmentFigure"
+ figureQualifiedClassName="org.eclipse.draw2d.RectangleFigure"/>
+ </compartments>
+ <compartments
+ visualID="7043"
+ editPartClassName="SingleQueuedUnitSingleQueuedUnitHelperUnitsCompartment3EditPart"
+ itemSemanticEditPolicyClassName="SingleQueuedUnitSingleQueuedUnitHelperUnitsCompartment3ItemSemanticEditPolicy"
+ notationViewFactoryClassName="SingleQueuedUnitSingleQueuedUnitHelperUnitsCompartmentViewFactory"
+ canonicalEditPolicyClassName="SingleQueuedUnitSingleQueuedUnitHelperUnitsCompartment3CanonicalEditPolicy"
+ childNodes="//@diagram/@childNodes.54 //@diagram/@childNodes.55 //@diagram/@childNodes.56 //@diagram/@childNodes.57"
+ title="SingleQueuedUnitHelperUnitsCompartment"
+ needsTitle="false"
+ node="//@diagram/@childNodes.53"
+ listLayout="false">
+ <diagramRunTimeClass
+ href="../../../plugin/org.eclipse.gmf.runtime.notation/model/notation.genmodel#//notation/Node"/>
+ <viewmap
+ xsi:type="gmfgen:ParentAssignedViewmap"
+ getterName="getSingleQueuedUnitHelperUnitsCompartmentFigure"
+ figureQualifiedClassName="org.eclipse.draw2d.RectangleFigure"/>
+ </compartments>
+ <compartments
+ visualID="7044"
+ editPartClassName="SingleQueuedUnitSingleQueuedUnitRefactoringUnitCompartment3EditPart"
+ itemSemanticEditPolicyClassName="SingleQueuedUnitSingleQueuedUnitRefactoringUnitCompartment3ItemSemanticEditPolicy"
+ notationViewFactoryClassName="SingleQueuedUnitSingleQueuedUnitRefactoringUnitCompartmentViewFactory"
+ canonicalEditPolicyClassName="SingleQueuedUnitSingleQueuedUnitRefactoringUnitCompartment3CanonicalEditPolicy"
+ childNodes="//@diagram/@childNodes.24 //@diagram/@childNodes.42 //@diagram/@childNodes.58 //@diagram/@childNodes.59 //@diagram/@childNodes.65 //@diagram/@childNodes.67"
+ title="SingleQueuedUnitRefactoringUnitCompartment"
+ needsTitle="false"
+ node="//@diagram/@childNodes.53"
+ listLayout="false">
+ <diagramRunTimeClass
+ href="../../../plugin/org.eclipse.gmf.runtime.notation/model/notation.genmodel#//notation/Node"/>
+ <viewmap
+ xsi:type="gmfgen:ParentAssignedViewmap"
+ getterName="getSingleQueuedUnitRefactoringUnitCompartmentFigure"
+ figureQualifiedClassName="org.eclipse.draw2d.RectangleFigure"/>
+ </compartments>
+ <compartments
+ visualID="7045"
+ editPartClassName="SingleQueuedUnitSingleQueuedUnitHelperUnitsCompartment4EditPart"
+ itemSemanticEditPolicyClassName="SingleQueuedUnitSingleQueuedUnitHelperUnitsCompartment4ItemSemanticEditPolicy"
+ notationViewFactoryClassName="SingleQueuedUnitSingleQueuedUnitHelperUnitsCompartmentViewFactory"
+ canonicalEditPolicyClassName="SingleQueuedUnitSingleQueuedUnitHelperUnitsCompartment4CanonicalEditPolicy"
+ childNodes="//@diagram/@childNodes.54 //@diagram/@childNodes.55 //@diagram/@childNodes.56 //@diagram/@childNodes.57"
+ title="SingleQueuedUnitHelperUnitsCompartment"
+ needsTitle="false"
+ node="//@diagram/@childNodes.58"
+ listLayout="false">
+ <diagramRunTimeClass
+ href="../../../plugin/org.eclipse.gmf.runtime.notation/model/notation.genmodel#//notation/Node"/>
+ <viewmap
+ xsi:type="gmfgen:ParentAssignedViewmap"
+ getterName="getSingleQueuedUnitHelperUnitsCompartmentFigure"
+ figureQualifiedClassName="org.eclipse.draw2d.RectangleFigure"/>
+ </compartments>
+ <compartments
+ visualID="7046"
+ editPartClassName="SingleQueuedUnitSingleQueuedUnitRefactoringUnitCompartment4EditPart"
+ itemSemanticEditPolicyClassName="SingleQueuedUnitSingleQueuedUnitRefactoringUnitCompartment4ItemSemanticEditPolicy"
+ notationViewFactoryClassName="SingleQueuedUnitSingleQueuedUnitRefactoringUnitCompartmentViewFactory"
+ canonicalEditPolicyClassName="SingleQueuedUnitSingleQueuedUnitRefactoringUnitCompartment4CanonicalEditPolicy"
+ childNodes="//@diagram/@childNodes.24 //@diagram/@childNodes.42 //@diagram/@childNodes.58 //@diagram/@childNodes.59 //@diagram/@childNodes.65 //@diagram/@childNodes.67"
+ title="SingleQueuedUnitRefactoringUnitCompartment"
+ needsTitle="false"
+ node="//@diagram/@childNodes.58"
+ listLayout="false">
+ <diagramRunTimeClass
+ href="../../../plugin/org.eclipse.gmf.runtime.notation/model/notation.genmodel#//notation/Node"/>
+ <viewmap
+ xsi:type="gmfgen:ParentAssignedViewmap"
+ getterName="getSingleQueuedUnitRefactoringUnitCompartmentFigure"
+ figureQualifiedClassName="org.eclipse.draw2d.RectangleFigure"/>
+ </compartments>
+ <compartments
+ visualID="7047"
+ editPartClassName="SequentialUnitSequentialUnitHelperUnitsCompartment3EditPart"
+ itemSemanticEditPolicyClassName="SequentialUnitSequentialUnitHelperUnitsCompartment3ItemSemanticEditPolicy"
+ notationViewFactoryClassName="SequentialUnitSequentialUnitHelperUnitsCompartmentViewFactory"
+ canonicalEditPolicyClassName="SequentialUnitSequentialUnitHelperUnitsCompartment3CanonicalEditPolicy"
+ childNodes="//@diagram/@childNodes.60 //@diagram/@childNodes.61 //@diagram/@childNodes.62 //@diagram/@childNodes.63"
+ title="SequentialUnitHelperUnitsCompartment"
+ needsTitle="false"
+ node="//@diagram/@childNodes.59"
+ listLayout="false">
+ <diagramRunTimeClass
+ href="../../../plugin/org.eclipse.gmf.runtime.notation/model/notation.genmodel#//notation/Node"/>
+ <viewmap
+ xsi:type="gmfgen:ParentAssignedViewmap"
+ getterName="getSequentialUnitHelperUnitsCompartmentFigure"
+ figureQualifiedClassName="org.eclipse.draw2d.RectangleFigure"/>
+ </compartments>
+ <compartments
+ visualID="7048"
+ editPartClassName="SequentialUnitSequentialUnitRefactoringUnitsCompartment3EditPart"
+ itemSemanticEditPolicyClassName="SequentialUnitSequentialUnitRefactoringUnitsCompartment3ItemSemanticEditPolicy"
+ notationViewFactoryClassName="SequentialUnitSequentialUnitRefactoringUnitsCompartmentViewFactory"
+ canonicalEditPolicyClassName="SequentialUnitSequentialUnitRefactoringUnitsCompartment3CanonicalEditPolicy"
+ childNodes="//@diagram/@childNodes.28 //@diagram/@childNodes.44 //@diagram/@childNodes.64 //@diagram/@childNodes.69 //@diagram/@childNodes.70 //@diagram/@childNodes.73"
+ title="SequentialUnitRefactoringUnitsCompartment"
+ needsTitle="false"
+ node="//@diagram/@childNodes.59"
+ listLayout="false">
+ <diagramRunTimeClass
+ href="../../../plugin/org.eclipse.gmf.runtime.notation/model/notation.genmodel#//notation/Node"/>
+ <viewmap
+ xsi:type="gmfgen:ParentAssignedViewmap"
+ getterName="getSequentialUnitRefactoringUnitsCompartmentFigure"
+ figureQualifiedClassName="org.eclipse.draw2d.RectangleFigure"/>
+ </compartments>
+ <compartments
+ visualID="7049"
+ editPartClassName="SingleQueuedUnitSingleQueuedUnitHelperUnitsCompartment5EditPart"
+ itemSemanticEditPolicyClassName="SingleQueuedUnitSingleQueuedUnitHelperUnitsCompartment5ItemSemanticEditPolicy"
+ notationViewFactoryClassName="SingleQueuedUnitSingleQueuedUnitHelperUnitsCompartmentViewFactory"
+ canonicalEditPolicyClassName="SingleQueuedUnitSingleQueuedUnitHelperUnitsCompartment5CanonicalEditPolicy"
+ childNodes="//@diagram/@childNodes.54 //@diagram/@childNodes.55 //@diagram/@childNodes.56 //@diagram/@childNodes.57"
+ title="SingleQueuedUnitHelperUnitsCompartment"
+ needsTitle="false"
+ node="//@diagram/@childNodes.64"
+ listLayout="false">
+ <diagramRunTimeClass
+ href="../../../plugin/org.eclipse.gmf.runtime.notation/model/notation.genmodel#//notation/Node"/>
+ <viewmap
+ xsi:type="gmfgen:ParentAssignedViewmap"
+ getterName="getSingleQueuedUnitHelperUnitsCompartmentFigure"
+ figureQualifiedClassName="org.eclipse.draw2d.RectangleFigure"/>
+ </compartments>
+ <compartments
+ visualID="7050"
+ editPartClassName="SingleQueuedUnitSingleQueuedUnitRefactoringUnitCompartment5EditPart"
+ itemSemanticEditPolicyClassName="SingleQueuedUnitSingleQueuedUnitRefactoringUnitCompartment5ItemSemanticEditPolicy"
+ notationViewFactoryClassName="SingleQueuedUnitSingleQueuedUnitRefactoringUnitCompartmentViewFactory"
+ canonicalEditPolicyClassName="SingleQueuedUnitSingleQueuedUnitRefactoringUnitCompartment5CanonicalEditPolicy"
+ childNodes="//@diagram/@childNodes.24 //@diagram/@childNodes.42 //@diagram/@childNodes.58 //@diagram/@childNodes.59 //@diagram/@childNodes.65 //@diagram/@childNodes.67"
+ title="SingleQueuedUnitRefactoringUnitCompartment"
+ needsTitle="false"
+ node="//@diagram/@childNodes.64"
+ listLayout="false">
+ <diagramRunTimeClass
+ href="../../../plugin/org.eclipse.gmf.runtime.notation/model/notation.genmodel#//notation/Node"/>
+ <viewmap
+ xsi:type="gmfgen:ParentAssignedViewmap"
+ getterName="getSingleQueuedUnitRefactoringUnitCompartmentFigure"
+ figureQualifiedClassName="org.eclipse.draw2d.RectangleFigure"/>
+ </compartments>
+ <compartments
+ visualID="7051"
+ editPartClassName="ConditionalUnitConditionalUnitIfCompartment3EditPart"
+ itemSemanticEditPolicyClassName="ConditionalUnitConditionalUnitIfCompartment3ItemSemanticEditPolicy"
+ notationViewFactoryClassName="ConditionalUnitConditionalUnitIfCompartmentViewFactory"
+ canonicalEditPolicyClassName="ConditionalUnitConditionalUnitIfCompartment3CanonicalEditPolicy"
+ childNodes="//@diagram/@childNodes.75"
+ title="ConditionalUnitIfCompartment"
+ needsTitle="false"
+ node="//@diagram/@childNodes.65"
+ listLayout="false">
+ <diagramRunTimeClass
+ href="../../../plugin/org.eclipse.gmf.runtime.notation/model/notation.genmodel#//notation/Node"/>
+ <viewmap
+ xsi:type="gmfgen:ParentAssignedViewmap"
+ getterName="getConditionalUnitIfCompartmentFigure"
+ figureQualifiedClassName="org.eclipse.draw2d.RectangleFigure"/>
+ </compartments>
+ <compartments
+ visualID="7052"
+ editPartClassName="ConditionalUnitConditionalUnitHelperUnitsCompartment3EditPart"
+ itemSemanticEditPolicyClassName="ConditionalUnitConditionalUnitHelperUnitsCompartment3ItemSemanticEditPolicy"
+ notationViewFactoryClassName="ConditionalUnitConditionalUnitHelperUnitsCompartmentViewFactory"
+ canonicalEditPolicyClassName="ConditionalUnitConditionalUnitHelperUnitsCompartment3CanonicalEditPolicy"
+ childNodes="//@diagram/@childNodes.49 //@diagram/@childNodes.50 //@diagram/@childNodes.51 //@diagram/@childNodes.52"
+ title="ConditionalUnitHelperUnitsCompartment"
+ needsTitle="false"
+ node="//@diagram/@childNodes.65"
+ listLayout="false">
+ <diagramRunTimeClass
+ href="../../../plugin/org.eclipse.gmf.runtime.notation/model/notation.genmodel#//notation/Node"/>
+ <viewmap
+ xsi:type="gmfgen:ParentAssignedViewmap"
+ getterName="getConditionalUnitHelperUnitsCompartmentFigure"
+ figureQualifiedClassName="org.eclipse.draw2d.RectangleFigure"/>
+ </compartments>
+ <compartments
+ visualID="7053"
+ editPartClassName="ConditionalUnitConditionalUnitThenCompartment3EditPart"
+ itemSemanticEditPolicyClassName="ConditionalUnitConditionalUnitThenCompartment3ItemSemanticEditPolicy"
+ notationViewFactoryClassName="ConditionalUnitConditionalUnitThenCompartmentViewFactory"
+ canonicalEditPolicyClassName="ConditionalUnitConditionalUnitThenCompartment3CanonicalEditPolicy"
+ childNodes="//@diagram/@childNodes.32 //@diagram/@childNodes.35 //@diagram/@childNodes.53 //@diagram/@childNodes.68 //@diagram/@childNodes.71 //@diagram/@childNodes.76"
+ title="ConditionalUnitThenCompartment"
+ needsTitle="false"
+ node="//@diagram/@childNodes.65"
+ listLayout="false">
+ <diagramRunTimeClass
+ href="../../../plugin/org.eclipse.gmf.runtime.notation/model/notation.genmodel#//notation/Node"/>
+ <viewmap
+ xsi:type="gmfgen:ParentAssignedViewmap"
+ getterName="getConditionalUnitThenCompartmentFigure"
+ figureQualifiedClassName="org.eclipse.draw2d.RectangleFigure"/>
+ </compartments>
+ <compartments
+ visualID="7054"
+ editPartClassName="ConditionalUnitConditionalUnitElseCompartment3EditPart"
+ itemSemanticEditPolicyClassName="ConditionalUnitConditionalUnitElseCompartment3ItemSemanticEditPolicy"
+ notationViewFactoryClassName="ConditionalUnitConditionalUnitElseCompartmentViewFactory"
+ canonicalEditPolicyClassName="ConditionalUnitConditionalUnitElseCompartment3CanonicalEditPolicy"
+ childNodes="//@diagram/@childNodes.46 //@diagram/@childNodes.47 //@diagram/@childNodes.66 //@diagram/@childNodes.72 //@diagram/@childNodes.74 //@diagram/@childNodes.77"
+ title="ConditionalUnitElseCompartment"
+ needsTitle="false"
+ node="//@diagram/@childNodes.65"
+ listLayout="false">
+ <diagramRunTimeClass
+ href="../../../plugin/org.eclipse.gmf.runtime.notation/model/notation.genmodel#//notation/Node"/>
+ <viewmap
+ xsi:type="gmfgen:ParentAssignedViewmap"
+ getterName="getConditionalUnitElseCompartmentFigure"
+ figureQualifiedClassName="org.eclipse.draw2d.RectangleFigure"/>
+ </compartments>
+ <compartments
+ visualID="7055"
+ editPartClassName="SingleQueuedUnitSingleQueuedUnitHelperUnitsCompartment6EditPart"
+ itemSemanticEditPolicyClassName="SingleQueuedUnitSingleQueuedUnitHelperUnitsCompartment6ItemSemanticEditPolicy"
+ notationViewFactoryClassName="SingleQueuedUnitSingleQueuedUnitHelperUnitsCompartmentViewFactory"
+ canonicalEditPolicyClassName="SingleQueuedUnitSingleQueuedUnitHelperUnitsCompartment6CanonicalEditPolicy"
+ childNodes="//@diagram/@childNodes.54 //@diagram/@childNodes.55 //@diagram/@childNodes.56 //@diagram/@childNodes.57"
+ title="SingleQueuedUnitHelperUnitsCompartment"
+ needsTitle="false"
+ node="//@diagram/@childNodes.66"
+ listLayout="false">
+ <diagramRunTimeClass
+ href="../../../plugin/org.eclipse.gmf.runtime.notation/model/notation.genmodel#//notation/Node"/>
+ <viewmap
+ xsi:type="gmfgen:ParentAssignedViewmap"
+ getterName="getSingleQueuedUnitHelperUnitsCompartmentFigure"
+ figureQualifiedClassName="org.eclipse.draw2d.RectangleFigure"/>
+ </compartments>
+ <compartments
+ visualID="7056"
+ editPartClassName="SingleQueuedUnitSingleQueuedUnitRefactoringUnitCompartment6EditPart"
+ itemSemanticEditPolicyClassName="SingleQueuedUnitSingleQueuedUnitRefactoringUnitCompartment6ItemSemanticEditPolicy"
+ notationViewFactoryClassName="SingleQueuedUnitSingleQueuedUnitRefactoringUnitCompartmentViewFactory"
+ canonicalEditPolicyClassName="SingleQueuedUnitSingleQueuedUnitRefactoringUnitCompartment6CanonicalEditPolicy"
+ childNodes="//@diagram/@childNodes.24 //@diagram/@childNodes.42 //@diagram/@childNodes.58 //@diagram/@childNodes.59 //@diagram/@childNodes.65 //@diagram/@childNodes.67"
+ title="SingleQueuedUnitRefactoringUnitCompartment"
+ needsTitle="false"
+ node="//@diagram/@childNodes.66"
+ listLayout="false">
+ <diagramRunTimeClass
+ href="../../../plugin/org.eclipse.gmf.runtime.notation/model/notation.genmodel#//notation/Node"/>
+ <viewmap
+ xsi:type="gmfgen:ParentAssignedViewmap"
+ getterName="getSingleQueuedUnitRefactoringUnitCompartmentFigure"
+ figureQualifiedClassName="org.eclipse.draw2d.RectangleFigure"/>
+ </compartments>
+ <compartments
+ visualID="7057"
+ editPartClassName="SequentialUnitSequentialUnitHelperUnitsCompartment4EditPart"
+ itemSemanticEditPolicyClassName="SequentialUnitSequentialUnitHelperUnitsCompartment4ItemSemanticEditPolicy"
+ notationViewFactoryClassName="SequentialUnitSequentialUnitHelperUnitsCompartmentViewFactory"
+ canonicalEditPolicyClassName="SequentialUnitSequentialUnitHelperUnitsCompartment4CanonicalEditPolicy"
+ childNodes="//@diagram/@childNodes.60 //@diagram/@childNodes.61 //@diagram/@childNodes.62 //@diagram/@childNodes.63"
+ title="SequentialUnitHelperUnitsCompartment"
+ needsTitle="false"
+ node="//@diagram/@childNodes.68"
+ listLayout="false">
+ <diagramRunTimeClass
+ href="../../../plugin/org.eclipse.gmf.runtime.notation/model/notation.genmodel#//notation/Node"/>
+ <viewmap
+ xsi:type="gmfgen:ParentAssignedViewmap"
+ getterName="getSequentialUnitHelperUnitsCompartmentFigure"
+ figureQualifiedClassName="org.eclipse.draw2d.RectangleFigure"/>
+ </compartments>
+ <compartments
+ visualID="7058"
+ editPartClassName="SequentialUnitSequentialUnitRefactoringUnitsCompartment4EditPart"
+ itemSemanticEditPolicyClassName="SequentialUnitSequentialUnitRefactoringUnitsCompartment4ItemSemanticEditPolicy"
+ notationViewFactoryClassName="SequentialUnitSequentialUnitRefactoringUnitsCompartmentViewFactory"
+ canonicalEditPolicyClassName="SequentialUnitSequentialUnitRefactoringUnitsCompartment4CanonicalEditPolicy"
+ childNodes="//@diagram/@childNodes.28 //@diagram/@childNodes.44 //@diagram/@childNodes.64 //@diagram/@childNodes.69 //@diagram/@childNodes.70 //@diagram/@childNodes.73"
+ title="SequentialUnitRefactoringUnitsCompartment"
+ needsTitle="false"
+ node="//@diagram/@childNodes.68"
+ listLayout="false">
+ <diagramRunTimeClass
+ href="../../../plugin/org.eclipse.gmf.runtime.notation/model/notation.genmodel#//notation/Node"/>
+ <viewmap
+ xsi:type="gmfgen:ParentAssignedViewmap"
+ getterName="getSequentialUnitRefactoringUnitsCompartmentFigure"
+ figureQualifiedClassName="org.eclipse.draw2d.RectangleFigure"/>
+ </compartments>
+ <compartments
+ visualID="7059"
+ editPartClassName="SequentialUnitSequentialUnitHelperUnitsCompartment5EditPart"
+ itemSemanticEditPolicyClassName="SequentialUnitSequentialUnitHelperUnitsCompartment5ItemSemanticEditPolicy"
+ notationViewFactoryClassName="SequentialUnitSequentialUnitHelperUnitsCompartmentViewFactory"
+ canonicalEditPolicyClassName="SequentialUnitSequentialUnitHelperUnitsCompartment5CanonicalEditPolicy"
+ childNodes="//@diagram/@childNodes.60 //@diagram/@childNodes.61 //@diagram/@childNodes.62 //@diagram/@childNodes.63"
+ title="SequentialUnitHelperUnitsCompartment"
+ needsTitle="false"
+ node="//@diagram/@childNodes.69"
+ listLayout="false">
+ <diagramRunTimeClass
+ href="../../../plugin/org.eclipse.gmf.runtime.notation/model/notation.genmodel#//notation/Node"/>
+ <viewmap
+ xsi:type="gmfgen:ParentAssignedViewmap"
+ getterName="getSequentialUnitHelperUnitsCompartmentFigure"
+ figureQualifiedClassName="org.eclipse.draw2d.RectangleFigure"/>
+ </compartments>
+ <compartments
+ visualID="7060"
+ editPartClassName="SequentialUnitSequentialUnitRefactoringUnitsCompartment5EditPart"
+ itemSemanticEditPolicyClassName="SequentialUnitSequentialUnitRefactoringUnitsCompartment5ItemSemanticEditPolicy"
+ notationViewFactoryClassName="SequentialUnitSequentialUnitRefactoringUnitsCompartmentViewFactory"
+ canonicalEditPolicyClassName="SequentialUnitSequentialUnitRefactoringUnitsCompartment5CanonicalEditPolicy"
+ childNodes="//@diagram/@childNodes.28 //@diagram/@childNodes.44 //@diagram/@childNodes.64 //@diagram/@childNodes.69 //@diagram/@childNodes.70 //@diagram/@childNodes.73"
+ title="SequentialUnitRefactoringUnitsCompartment"
+ needsTitle="false"
+ node="//@diagram/@childNodes.69"
+ listLayout="false">
+ <diagramRunTimeClass
+ href="../../../plugin/org.eclipse.gmf.runtime.notation/model/notation.genmodel#//notation/Node"/>
+ <viewmap
+ xsi:type="gmfgen:ParentAssignedViewmap"
+ getterName="getSequentialUnitRefactoringUnitsCompartmentFigure"
+ figureQualifiedClassName="org.eclipse.draw2d.RectangleFigure"/>
+ </compartments>
+ <compartments
+ visualID="7061"
+ editPartClassName="ConditionalUnitConditionalUnitIfCompartment4EditPart"
+ itemSemanticEditPolicyClassName="ConditionalUnitConditionalUnitIfCompartment4ItemSemanticEditPolicy"
+ notationViewFactoryClassName="ConditionalUnitConditionalUnitIfCompartmentViewFactory"
+ canonicalEditPolicyClassName="ConditionalUnitConditionalUnitIfCompartment4CanonicalEditPolicy"
+ childNodes="//@diagram/@childNodes.75"
+ title="ConditionalUnitIfCompartment"
+ needsTitle="false"
+ node="//@diagram/@childNodes.70"
+ listLayout="false">
+ <diagramRunTimeClass
+ href="../../../plugin/org.eclipse.gmf.runtime.notation/model/notation.genmodel#//notation/Node"/>
+ <viewmap
+ xsi:type="gmfgen:ParentAssignedViewmap"
+ getterName="getConditionalUnitIfCompartmentFigure"
+ figureQualifiedClassName="org.eclipse.draw2d.RectangleFigure"/>
+ </compartments>
+ <compartments
+ visualID="7062"
+ editPartClassName="ConditionalUnitConditionalUnitHelperUnitsCompartment4EditPart"
+ itemSemanticEditPolicyClassName="ConditionalUnitConditionalUnitHelperUnitsCompartment4ItemSemanticEditPolicy"
+ notationViewFactoryClassName="ConditionalUnitConditionalUnitHelperUnitsCompartmentViewFactory"
+ canonicalEditPolicyClassName="ConditionalUnitConditionalUnitHelperUnitsCompartment4CanonicalEditPolicy"
+ childNodes="//@diagram/@childNodes.49 //@diagram/@childNodes.50 //@diagram/@childNodes.51 //@diagram/@childNodes.52"
+ title="ConditionalUnitHelperUnitsCompartment"
+ needsTitle="false"
+ node="//@diagram/@childNodes.70"
+ listLayout="false">
+ <diagramRunTimeClass
+ href="../../../plugin/org.eclipse.gmf.runtime.notation/model/notation.genmodel#//notation/Node"/>
+ <viewmap
+ xsi:type="gmfgen:ParentAssignedViewmap"
+ getterName="getConditionalUnitHelperUnitsCompartmentFigure"
+ figureQualifiedClassName="org.eclipse.draw2d.RectangleFigure"/>
+ </compartments>
+ <compartments
+ visualID="7063"
+ editPartClassName="ConditionalUnitConditionalUnitThenCompartment4EditPart"
+ itemSemanticEditPolicyClassName="ConditionalUnitConditionalUnitThenCompartment4ItemSemanticEditPolicy"
+ notationViewFactoryClassName="ConditionalUnitConditionalUnitThenCompartmentViewFactory"
+ canonicalEditPolicyClassName="ConditionalUnitConditionalUnitThenCompartment4CanonicalEditPolicy"
+ childNodes="//@diagram/@childNodes.32 //@diagram/@childNodes.35 //@diagram/@childNodes.53 //@diagram/@childNodes.68 //@diagram/@childNodes.71 //@diagram/@childNodes.76"
+ title="ConditionalUnitThenCompartment"
+ needsTitle="false"
+ node="//@diagram/@childNodes.70"
+ listLayout="false">
+ <diagramRunTimeClass
+ href="../../../plugin/org.eclipse.gmf.runtime.notation/model/notation.genmodel#//notation/Node"/>
+ <viewmap
+ xsi:type="gmfgen:ParentAssignedViewmap"
+ getterName="getConditionalUnitThenCompartmentFigure"
+ figureQualifiedClassName="org.eclipse.draw2d.RectangleFigure"/>
+ </compartments>
+ <compartments
+ visualID="7064"
+ editPartClassName="ConditionalUnitConditionalUnitElseCompartment4EditPart"
+ itemSemanticEditPolicyClassName="ConditionalUnitConditionalUnitElseCompartment4ItemSemanticEditPolicy"
+ notationViewFactoryClassName="ConditionalUnitConditionalUnitElseCompartmentViewFactory"
+ canonicalEditPolicyClassName="ConditionalUnitConditionalUnitElseCompartment4CanonicalEditPolicy"
+ childNodes="//@diagram/@childNodes.46 //@diagram/@childNodes.47 //@diagram/@childNodes.66 //@diagram/@childNodes.72 //@diagram/@childNodes.74 //@diagram/@childNodes.77"
+ title="ConditionalUnitElseCompartment"
+ needsTitle="false"
+ node="//@diagram/@childNodes.70"
+ listLayout="false">
+ <diagramRunTimeClass
+ href="../../../plugin/org.eclipse.gmf.runtime.notation/model/notation.genmodel#//notation/Node"/>
+ <viewmap
+ xsi:type="gmfgen:ParentAssignedViewmap"
+ getterName="getConditionalUnitElseCompartmentFigure"
+ figureQualifiedClassName="org.eclipse.draw2d.RectangleFigure"/>
+ </compartments>
+ <compartments
+ visualID="7065"
+ editPartClassName="ConditionalUnitConditionalUnitIfCompartment5EditPart"
+ itemSemanticEditPolicyClassName="ConditionalUnitConditionalUnitIfCompartment5ItemSemanticEditPolicy"
+ notationViewFactoryClassName="ConditionalUnitConditionalUnitIfCompartmentViewFactory"
+ canonicalEditPolicyClassName="ConditionalUnitConditionalUnitIfCompartment5CanonicalEditPolicy"
+ childNodes="//@diagram/@childNodes.75"
+ title="ConditionalUnitIfCompartment"
+ needsTitle="false"
+ node="//@diagram/@childNodes.71"
+ listLayout="false">
+ <diagramRunTimeClass
+ href="../../../plugin/org.eclipse.gmf.runtime.notation/model/notation.genmodel#//notation/Node"/>
+ <viewmap
+ xsi:type="gmfgen:ParentAssignedViewmap"
+ getterName="getConditionalUnitIfCompartmentFigure"
+ figureQualifiedClassName="org.eclipse.draw2d.RectangleFigure"/>
+ </compartments>
+ <compartments
+ visualID="7066"
+ editPartClassName="ConditionalUnitConditionalUnitHelperUnitsCompartment5EditPart"
+ itemSemanticEditPolicyClassName="ConditionalUnitConditionalUnitHelperUnitsCompartment5ItemSemanticEditPolicy"
+ notationViewFactoryClassName="ConditionalUnitConditionalUnitHelperUnitsCompartmentViewFactory"
+ canonicalEditPolicyClassName="ConditionalUnitConditionalUnitHelperUnitsCompartment5CanonicalEditPolicy"
+ childNodes="//@diagram/@childNodes.49 //@diagram/@childNodes.50 //@diagram/@childNodes.51 //@diagram/@childNodes.52"
+ title="ConditionalUnitHelperUnitsCompartment"
+ needsTitle="false"
+ node="//@diagram/@childNodes.71"
+ listLayout="false">
+ <diagramRunTimeClass
+ href="../../../plugin/org.eclipse.gmf.runtime.notation/model/notation.genmodel#//notation/Node"/>
+ <viewmap
+ xsi:type="gmfgen:ParentAssignedViewmap"
+ getterName="getConditionalUnitHelperUnitsCompartmentFigure"
+ figureQualifiedClassName="org.eclipse.draw2d.RectangleFigure"/>
+ </compartments>
+ <compartments
+ visualID="7067"
+ editPartClassName="ConditionalUnitConditionalUnitThenCompartment5EditPart"
+ itemSemanticEditPolicyClassName="ConditionalUnitConditionalUnitThenCompartment5ItemSemanticEditPolicy"
+ notationViewFactoryClassName="ConditionalUnitConditionalUnitThenCompartmentViewFactory"
+ canonicalEditPolicyClassName="ConditionalUnitConditionalUnitThenCompartment5CanonicalEditPolicy"
+ childNodes="//@diagram/@childNodes.32 //@diagram/@childNodes.35 //@diagram/@childNodes.53 //@diagram/@childNodes.68 //@diagram/@childNodes.71 //@diagram/@childNodes.76"
+ title="ConditionalUnitThenCompartment"
+ needsTitle="false"
+ node="//@diagram/@childNodes.71"
+ listLayout="false">
+ <diagramRunTimeClass
+ href="../../../plugin/org.eclipse.gmf.runtime.notation/model/notation.genmodel#//notation/Node"/>
+ <viewmap
+ xsi:type="gmfgen:ParentAssignedViewmap"
+ getterName="getConditionalUnitThenCompartmentFigure"
+ figureQualifiedClassName="org.eclipse.draw2d.RectangleFigure"/>
+ </compartments>
+ <compartments
+ visualID="7068"
+ editPartClassName="ConditionalUnitConditionalUnitElseCompartment5EditPart"
+ itemSemanticEditPolicyClassName="ConditionalUnitConditionalUnitElseCompartment5ItemSemanticEditPolicy"
+ notationViewFactoryClassName="ConditionalUnitConditionalUnitElseCompartmentViewFactory"
+ canonicalEditPolicyClassName="ConditionalUnitConditionalUnitElseCompartment5CanonicalEditPolicy"
+ childNodes="//@diagram/@childNodes.46 //@diagram/@childNodes.47 //@diagram/@childNodes.66 //@diagram/@childNodes.72 //@diagram/@childNodes.74 //@diagram/@childNodes.77"
+ title="ConditionalUnitElseCompartment"
+ needsTitle="false"
+ node="//@diagram/@childNodes.71"
+ listLayout="false">
+ <diagramRunTimeClass
+ href="../../../plugin/org.eclipse.gmf.runtime.notation/model/notation.genmodel#//notation/Node"/>
+ <viewmap
+ xsi:type="gmfgen:ParentAssignedViewmap"
+ getterName="getConditionalUnitElseCompartmentFigure"
+ figureQualifiedClassName="org.eclipse.draw2d.RectangleFigure"/>
+ </compartments>
+ <compartments
+ visualID="7069"
+ editPartClassName="SequentialUnitSequentialUnitHelperUnitsCompartment6EditPart"
+ itemSemanticEditPolicyClassName="SequentialUnitSequentialUnitHelperUnitsCompartment6ItemSemanticEditPolicy"
+ notationViewFactoryClassName="SequentialUnitSequentialUnitHelperUnitsCompartmentViewFactory"
+ canonicalEditPolicyClassName="SequentialUnitSequentialUnitHelperUnitsCompartment6CanonicalEditPolicy"
+ childNodes="//@diagram/@childNodes.60 //@diagram/@childNodes.61 //@diagram/@childNodes.62 //@diagram/@childNodes.63"
+ title="SequentialUnitHelperUnitsCompartment"
+ needsTitle="false"
+ node="//@diagram/@childNodes.72"
+ listLayout="false">
+ <diagramRunTimeClass
+ href="../../../plugin/org.eclipse.gmf.runtime.notation/model/notation.genmodel#//notation/Node"/>
+ <viewmap
+ xsi:type="gmfgen:ParentAssignedViewmap"
+ getterName="getSequentialUnitHelperUnitsCompartmentFigure"
+ figureQualifiedClassName="org.eclipse.draw2d.RectangleFigure"/>
+ </compartments>
+ <compartments
+ visualID="7070"
+ editPartClassName="SequentialUnitSequentialUnitRefactoringUnitsCompartment6EditPart"
+ itemSemanticEditPolicyClassName="SequentialUnitSequentialUnitRefactoringUnitsCompartment6ItemSemanticEditPolicy"
+ notationViewFactoryClassName="SequentialUnitSequentialUnitRefactoringUnitsCompartmentViewFactory"
+ canonicalEditPolicyClassName="SequentialUnitSequentialUnitRefactoringUnitsCompartment6CanonicalEditPolicy"
+ childNodes="//@diagram/@childNodes.28 //@diagram/@childNodes.44 //@diagram/@childNodes.64 //@diagram/@childNodes.69 //@diagram/@childNodes.70 //@diagram/@childNodes.73"
+ title="SequentialUnitRefactoringUnitsCompartment"
+ needsTitle="false"
+ node="//@diagram/@childNodes.72"
+ listLayout="false">
+ <diagramRunTimeClass
+ href="../../../plugin/org.eclipse.gmf.runtime.notation/model/notation.genmodel#//notation/Node"/>
+ <viewmap
+ xsi:type="gmfgen:ParentAssignedViewmap"
+ getterName="getSequentialUnitRefactoringUnitsCompartmentFigure"
+ figureQualifiedClassName="org.eclipse.draw2d.RectangleFigure"/>
+ </compartments>
+ <compartments
+ visualID="7071"
+ editPartClassName="ConditionalUnitConditionalUnitIfCompartment6EditPart"
+ itemSemanticEditPolicyClassName="ConditionalUnitConditionalUnitIfCompartment6ItemSemanticEditPolicy"
+ notationViewFactoryClassName="ConditionalUnitConditionalUnitIfCompartmentViewFactory"
+ canonicalEditPolicyClassName="ConditionalUnitConditionalUnitIfCompartment6CanonicalEditPolicy"
+ childNodes="//@diagram/@childNodes.75"
+ title="ConditionalUnitIfCompartment"
+ needsTitle="false"
+ node="//@diagram/@childNodes.74"
+ listLayout="false">
+ <diagramRunTimeClass
+ href="../../../plugin/org.eclipse.gmf.runtime.notation/model/notation.genmodel#//notation/Node"/>
+ <viewmap
+ xsi:type="gmfgen:ParentAssignedViewmap"
+ getterName="getConditionalUnitIfCompartmentFigure"
+ figureQualifiedClassName="org.eclipse.draw2d.RectangleFigure"/>
+ </compartments>
+ <compartments
+ visualID="7072"
+ editPartClassName="ConditionalUnitConditionalUnitHelperUnitsCompartment6EditPart"
+ itemSemanticEditPolicyClassName="ConditionalUnitConditionalUnitHelperUnitsCompartment6ItemSemanticEditPolicy"
+ notationViewFactoryClassName="ConditionalUnitConditionalUnitHelperUnitsCompartmentViewFactory"
+ canonicalEditPolicyClassName="ConditionalUnitConditionalUnitHelperUnitsCompartment6CanonicalEditPolicy"
+ childNodes="//@diagram/@childNodes.49 //@diagram/@childNodes.50 //@diagram/@childNodes.51 //@diagram/@childNodes.52"
+ title="ConditionalUnitHelperUnitsCompartment"
+ needsTitle="false"
+ node="//@diagram/@childNodes.74"
+ listLayout="false">
+ <diagramRunTimeClass
+ href="../../../plugin/org.eclipse.gmf.runtime.notation/model/notation.genmodel#//notation/Node"/>
+ <viewmap
+ xsi:type="gmfgen:ParentAssignedViewmap"
+ getterName="getConditionalUnitHelperUnitsCompartmentFigure"
+ figureQualifiedClassName="org.eclipse.draw2d.RectangleFigure"/>
+ </compartments>
+ <compartments
+ visualID="7073"
+ editPartClassName="ConditionalUnitConditionalUnitThenCompartment6EditPart"
+ itemSemanticEditPolicyClassName="ConditionalUnitConditionalUnitThenCompartment6ItemSemanticEditPolicy"
+ notationViewFactoryClassName="ConditionalUnitConditionalUnitThenCompartmentViewFactory"
+ canonicalEditPolicyClassName="ConditionalUnitConditionalUnitThenCompartment6CanonicalEditPolicy"
+ childNodes="//@diagram/@childNodes.32 //@diagram/@childNodes.35 //@diagram/@childNodes.53 //@diagram/@childNodes.68 //@diagram/@childNodes.71 //@diagram/@childNodes.76"
+ title="ConditionalUnitThenCompartment"
+ needsTitle="false"
+ node="//@diagram/@childNodes.74"
+ listLayout="false">
+ <diagramRunTimeClass
+ href="../../../plugin/org.eclipse.gmf.runtime.notation/model/notation.genmodel#//notation/Node"/>
+ <viewmap
+ xsi:type="gmfgen:ParentAssignedViewmap"
+ getterName="getConditionalUnitThenCompartmentFigure"
+ figureQualifiedClassName="org.eclipse.draw2d.RectangleFigure"/>
+ </compartments>
+ <compartments
+ visualID="7074"
+ editPartClassName="ConditionalUnitConditionalUnitElseCompartment6EditPart"
+ itemSemanticEditPolicyClassName="ConditionalUnitConditionalUnitElseCompartment6ItemSemanticEditPolicy"
+ notationViewFactoryClassName="ConditionalUnitConditionalUnitElseCompartmentViewFactory"
+ canonicalEditPolicyClassName="ConditionalUnitConditionalUnitElseCompartment6CanonicalEditPolicy"
+ childNodes="//@diagram/@childNodes.46 //@diagram/@childNodes.47 //@diagram/@childNodes.66 //@diagram/@childNodes.72 //@diagram/@childNodes.74 //@diagram/@childNodes.77"
+ title="ConditionalUnitElseCompartment"
+ needsTitle="false"
+ node="//@diagram/@childNodes.74"
+ listLayout="false">
+ <diagramRunTimeClass
+ href="../../../plugin/org.eclipse.gmf.runtime.notation/model/notation.genmodel#//notation/Node"/>
+ <viewmap
+ xsi:type="gmfgen:ParentAssignedViewmap"
+ getterName="getConditionalUnitElseCompartmentFigure"
+ figureQualifiedClassName="org.eclipse.draw2d.RectangleFigure"/>
+ </compartments>
+ <compartments
+ visualID="7075"
+ editPartClassName="ParallelQueuedUnitParallelQueuedUnitHelperUnitsCompartment7EditPart"
+ itemSemanticEditPolicyClassName="ParallelQueuedUnitParallelQueuedUnitHelperUnitsCompartment7ItemSemanticEditPolicy"
+ notationViewFactoryClassName="ParallelQueuedUnitParallelQueuedUnitHelperUnitsCompartmentViewFactory"
+ canonicalEditPolicyClassName="ParallelQueuedUnitParallelQueuedUnitHelperUnitsCompartment7CanonicalEditPolicy"
+ childNodes="//@diagram/@childNodes.37 //@diagram/@childNodes.38 //@diagram/@childNodes.39 //@diagram/@childNodes.40"
+ title="ParallelQueuedUnitHelperUnitsCompartment"
+ needsTitle="false"
+ node="//@diagram/@topLevelNodes.2"
+ listLayout="false">
+ <diagramRunTimeClass
+ href="../../../plugin/org.eclipse.gmf.runtime.notation/model/notation.genmodel#//notation/Node"/>
+ <viewmap
+ xsi:type="gmfgen:ParentAssignedViewmap"
+ getterName="getParallelQueuedUnitHelperUnitsCompartmentFigure"
+ figureQualifiedClassName="org.eclipse.draw2d.RectangleFigure"/>
+ </compartments>
+ <compartments
+ visualID="7076"
+ editPartClassName="ParallelQueuedUnitParallelQueuedUnitRefactoringUnitsCompartment7EditPart"
+ itemSemanticEditPolicyClassName="ParallelQueuedUnitParallelQueuedUnitRefactoringUnitsCompartment7ItemSemanticEditPolicy"
+ notationViewFactoryClassName="ParallelQueuedUnitParallelQueuedUnitRefactoringUnitsCompartmentViewFactory"
+ canonicalEditPolicyClassName="ParallelQueuedUnitParallelQueuedUnitRefactoringUnitsCompartment7CanonicalEditPolicy"
+ childNodes="//@diagram/@childNodes.6 //@diagram/@childNodes.36 //@diagram/@childNodes.41 //@diagram/@childNodes.43 //@diagram/@childNodes.45 //@diagram/@childNodes.48"
+ title="ParallelQueuedUnitRefactoringUnitsCompartment"
+ needsTitle="false"
+ node="//@diagram/@topLevelNodes.2"
+ listLayout="false">
+ <diagramRunTimeClass
+ href="../../../plugin/org.eclipse.gmf.runtime.notation/model/notation.genmodel#//notation/Node"/>
+ <viewmap
+ xsi:type="gmfgen:ParentAssignedViewmap"
+ getterName="getParallelQueuedUnitRefactoringUnitsCompartmentFigure"
+ figureQualifiedClassName="org.eclipse.draw2d.RectangleFigure"/>
+ </compartments>
+ <compartments
+ visualID="7077"
+ editPartClassName="SingleQueuedUnitSingleQueuedUnitHelperUnitsCompartment7EditPart"
+ itemSemanticEditPolicyClassName="SingleQueuedUnitSingleQueuedUnitHelperUnitsCompartment7ItemSemanticEditPolicy"
+ notationViewFactoryClassName="SingleQueuedUnitSingleQueuedUnitHelperUnitsCompartmentViewFactory"
+ canonicalEditPolicyClassName="SingleQueuedUnitSingleQueuedUnitHelperUnitsCompartment7CanonicalEditPolicy"
+ childNodes="//@diagram/@childNodes.54 //@diagram/@childNodes.55 //@diagram/@childNodes.56 //@diagram/@childNodes.57"
+ title="SingleQueuedUnitHelperUnitsCompartment"
+ needsTitle="false"
+ node="//@diagram/@topLevelNodes.3"
+ listLayout="false">
+ <diagramRunTimeClass
+ href="../../../plugin/org.eclipse.gmf.runtime.notation/model/notation.genmodel#//notation/Node"/>
+ <viewmap
+ xsi:type="gmfgen:ParentAssignedViewmap"
+ getterName="getSingleQueuedUnitHelperUnitsCompartmentFigure"
+ figureQualifiedClassName="org.eclipse.draw2d.RectangleFigure"/>
+ </compartments>
+ <compartments
+ visualID="7078"
+ editPartClassName="SingleQueuedUnitSingleQueuedUnitRefactoringUnitCompartment7EditPart"
+ itemSemanticEditPolicyClassName="SingleQueuedUnitSingleQueuedUnitRefactoringUnitCompartment7ItemSemanticEditPolicy"
+ notationViewFactoryClassName="SingleQueuedUnitSingleQueuedUnitRefactoringUnitCompartmentViewFactory"
+ canonicalEditPolicyClassName="SingleQueuedUnitSingleQueuedUnitRefactoringUnitCompartment7CanonicalEditPolicy"
+ childNodes="//@diagram/@childNodes.24 //@diagram/@childNodes.42 //@diagram/@childNodes.58 //@diagram/@childNodes.59 //@diagram/@childNodes.65 //@diagram/@childNodes.67"
+ title="SingleQueuedUnitRefactoringUnitCompartment"
+ needsTitle="false"
+ node="//@diagram/@topLevelNodes.3"
+ listLayout="false">
+ <diagramRunTimeClass
+ href="../../../plugin/org.eclipse.gmf.runtime.notation/model/notation.genmodel#//notation/Node"/>
+ <viewmap
+ xsi:type="gmfgen:ParentAssignedViewmap"
+ getterName="getSingleQueuedUnitRefactoringUnitCompartmentFigure"
+ figureQualifiedClassName="org.eclipse.draw2d.RectangleFigure"/>
+ </compartments>
+ <compartments
+ visualID="7079"
+ editPartClassName="SequentialUnitSequentialUnitHelperUnitsCompartment7EditPart"
+ itemSemanticEditPolicyClassName="SequentialUnitSequentialUnitHelperUnitsCompartment7ItemSemanticEditPolicy"
+ notationViewFactoryClassName="SequentialUnitSequentialUnitHelperUnitsCompartmentViewFactory"
+ canonicalEditPolicyClassName="SequentialUnitSequentialUnitHelperUnitsCompartment7CanonicalEditPolicy"
+ childNodes="//@diagram/@childNodes.60 //@diagram/@childNodes.61 //@diagram/@childNodes.62 //@diagram/@childNodes.63"
+ title="SequentialUnitHelperUnitsCompartment"
+ needsTitle="false"
+ node="//@diagram/@topLevelNodes.4"
+ listLayout="false">
+ <diagramRunTimeClass
+ href="../../../plugin/org.eclipse.gmf.runtime.notation/model/notation.genmodel#//notation/Node"/>
+ <viewmap
+ xsi:type="gmfgen:ParentAssignedViewmap"
+ getterName="getSequentialUnitHelperUnitsCompartmentFigure"
+ figureQualifiedClassName="org.eclipse.draw2d.RectangleFigure"/>
+ </compartments>
+ <compartments
+ visualID="7080"
+ editPartClassName="SequentialUnitSequentialUnitRefactoringUnitsCompartment7EditPart"
+ itemSemanticEditPolicyClassName="SequentialUnitSequentialUnitRefactoringUnitsCompartment7ItemSemanticEditPolicy"
+ notationViewFactoryClassName="SequentialUnitSequentialUnitRefactoringUnitsCompartmentViewFactory"
+ canonicalEditPolicyClassName="SequentialUnitSequentialUnitRefactoringUnitsCompartment7CanonicalEditPolicy"
+ childNodes="//@diagram/@childNodes.28 //@diagram/@childNodes.44 //@diagram/@childNodes.64 //@diagram/@childNodes.69 //@diagram/@childNodes.70 //@diagram/@childNodes.73"
+ title="SequentialUnitRefactoringUnitsCompartment"
+ needsTitle="false"
+ node="//@diagram/@topLevelNodes.4"
+ listLayout="false">
+ <diagramRunTimeClass
+ href="../../../plugin/org.eclipse.gmf.runtime.notation/model/notation.genmodel#//notation/Node"/>
+ <viewmap
+ xsi:type="gmfgen:ParentAssignedViewmap"
+ getterName="getSequentialUnitRefactoringUnitsCompartmentFigure"
+ figureQualifiedClassName="org.eclipse.draw2d.RectangleFigure"/>
+ </compartments>
+ <compartments
+ visualID="7081"
+ editPartClassName="ConditionalUnitConditionalUnitIfCompartment7EditPart"
+ itemSemanticEditPolicyClassName="ConditionalUnitConditionalUnitIfCompartment7ItemSemanticEditPolicy"
+ notationViewFactoryClassName="ConditionalUnitConditionalUnitIfCompartmentViewFactory"
+ canonicalEditPolicyClassName="ConditionalUnitConditionalUnitIfCompartment7CanonicalEditPolicy"
+ childNodes="//@diagram/@childNodes.75"
+ title="ConditionalUnitIfCompartment"
+ needsTitle="false"
+ node="//@diagram/@topLevelNodes.5"
+ listLayout="false">
+ <diagramRunTimeClass
+ href="../../../plugin/org.eclipse.gmf.runtime.notation/model/notation.genmodel#//notation/Node"/>
+ <viewmap
+ xsi:type="gmfgen:ParentAssignedViewmap"
+ getterName="getConditionalUnitIfCompartmentFigure"
+ figureQualifiedClassName="org.eclipse.draw2d.RectangleFigure"/>
+ </compartments>
+ <compartments
+ visualID="7082"
+ editPartClassName="ConditionalUnitConditionalUnitHelperUnitsCompartment7EditPart"
+ itemSemanticEditPolicyClassName="ConditionalUnitConditionalUnitHelperUnitsCompartment7ItemSemanticEditPolicy"
+ notationViewFactoryClassName="ConditionalUnitConditionalUnitHelperUnitsCompartmentViewFactory"
+ canonicalEditPolicyClassName="ConditionalUnitConditionalUnitHelperUnitsCompartment7CanonicalEditPolicy"
+ childNodes="//@diagram/@childNodes.49 //@diagram/@childNodes.50 //@diagram/@childNodes.51 //@diagram/@childNodes.52"
+ title="ConditionalUnitHelperUnitsCompartment"
+ needsTitle="false"
+ node="//@diagram/@topLevelNodes.5"
+ listLayout="false">
+ <diagramRunTimeClass
+ href="../../../plugin/org.eclipse.gmf.runtime.notation/model/notation.genmodel#//notation/Node"/>
+ <viewmap
+ xsi:type="gmfgen:ParentAssignedViewmap"
+ getterName="getConditionalUnitHelperUnitsCompartmentFigure"
+ figureQualifiedClassName="org.eclipse.draw2d.RectangleFigure"/>
+ </compartments>
+ <compartments
+ visualID="7083"
+ editPartClassName="ConditionalUnitConditionalUnitThenCompartment7EditPart"
+ itemSemanticEditPolicyClassName="ConditionalUnitConditionalUnitThenCompartment7ItemSemanticEditPolicy"
+ notationViewFactoryClassName="ConditionalUnitConditionalUnitThenCompartmentViewFactory"
+ canonicalEditPolicyClassName="ConditionalUnitConditionalUnitThenCompartment7CanonicalEditPolicy"
+ childNodes="//@diagram/@childNodes.32 //@diagram/@childNodes.35 //@diagram/@childNodes.53 //@diagram/@childNodes.68 //@diagram/@childNodes.71 //@diagram/@childNodes.76"
+ title="ConditionalUnitThenCompartment"
+ needsTitle="false"
+ node="//@diagram/@topLevelNodes.5"
+ listLayout="false">
+ <diagramRunTimeClass
+ href="../../../plugin/org.eclipse.gmf.runtime.notation/model/notation.genmodel#//notation/Node"/>
+ <viewmap
+ xsi:type="gmfgen:ParentAssignedViewmap"
+ getterName="getConditionalUnitThenCompartmentFigure"
+ figureQualifiedClassName="org.eclipse.draw2d.RectangleFigure"/>
+ </compartments>
+ <compartments
+ visualID="7084"
+ editPartClassName="ConditionalUnitConditionalUnitElseCompartment7EditPart"
+ itemSemanticEditPolicyClassName="ConditionalUnitConditionalUnitElseCompartment7ItemSemanticEditPolicy"
+ notationViewFactoryClassName="ConditionalUnitConditionalUnitElseCompartmentViewFactory"
+ canonicalEditPolicyClassName="ConditionalUnitConditionalUnitElseCompartment7CanonicalEditPolicy"
+ childNodes="//@diagram/@childNodes.46 //@diagram/@childNodes.47 //@diagram/@childNodes.66 //@diagram/@childNodes.72 //@diagram/@childNodes.74 //@diagram/@childNodes.77"
+ title="ConditionalUnitElseCompartment"
+ needsTitle="false"
+ node="//@diagram/@topLevelNodes.5"
+ listLayout="false">
+ <diagramRunTimeClass
+ href="../../../plugin/org.eclipse.gmf.runtime.notation/model/notation.genmodel#//notation/Node"/>
+ <viewmap
+ xsi:type="gmfgen:ParentAssignedViewmap"
+ getterName="getConditionalUnitElseCompartmentFigure"
+ figureQualifiedClassName="org.eclipse.draw2d.RectangleFigure"/>
+ </compartments>
+ <palette>
+ <groups
+ title="Composite Units"
+ collapse="true">
+ <entries
+ xsi:type="gmfgen:ToolEntry"
+ title="CartesianQueuedUnit"
+ description="Create new CartesianQueuedUnit"
+ genNodes="//@diagram/@topLevelNodes.1 //@diagram/@childNodes.2 //@diagram/@childNodes.6 //@diagram/@childNodes.24 //@diagram/@childNodes.28 //@diagram/@childNodes.32 //@diagram/@childNodes.46"/>
+ <entries
+ xsi:type="gmfgen:ToolEntry"
+ title="ConditionCheck"
+ description="Create new ConditionCheck"
+ genNodes="//@diagram/@childNodes.75"/>
+ <entries
+ xsi:type="gmfgen:ToolEntry"
+ title="ConditionalUnit"
+ description="Create new ConditionalUnit"
+ genNodes="//@diagram/@childNodes.29 //@diagram/@childNodes.45 //@diagram/@childNodes.65 //@diagram/@childNodes.70 //@diagram/@childNodes.71 //@diagram/@childNodes.74 //@diagram/@topLevelNodes.5"/>
+ <entries
+ xsi:type="gmfgen:ToolEntry"
+ title="ParallelQueuedUnit"
+ description="Create new ParallelQueuedUnit"
+ genNodes="//@diagram/@childNodes.3 //@diagram/@childNodes.35 //@diagram/@childNodes.36 //@diagram/@childNodes.42 //@diagram/@childNodes.44 //@diagram/@childNodes.47 //@diagram/@topLevelNodes.2"/>
+ <entries
+ xsi:type="gmfgen:ToolEntry"
+ title="SequentialUnit"
+ description="Create new SequentialUnit"
+ genNodes="//@diagram/@childNodes.25 //@diagram/@childNodes.43 //@diagram/@childNodes.59 //@diagram/@childNodes.68 //@diagram/@childNodes.69 //@diagram/@childNodes.72 //@diagram/@topLevelNodes.4"/>
+ <entries
+ xsi:type="gmfgen:ToolEntry"
+ title="SingleQueuedUnit"
+ description="Create new SingleQueuedUnit"
+ genNodes="//@diagram/@childNodes.21 //@diagram/@childNodes.41 //@diagram/@childNodes.53 //@diagram/@childNodes.58 //@diagram/@childNodes.64 //@diagram/@childNodes.66 //@diagram/@topLevelNodes.3"/>
+ </groups>
+ <groups
+ title="Atomic Units"
+ collapse="true">
+ <entries
+ xsi:type="gmfgen:ToolEntry"
+ title="AtomicUnit"
+ description="Create new AtomicUnit"
+ genNodes="//@diagram/@childNodes.33 //@diagram/@childNodes.48 //@diagram/@childNodes.67 //@diagram/@childNodes.73 //@diagram/@childNodes.76 //@diagram/@childNodes.77 //@diagram/@topLevelNodes.6"/>
+ </groups>
+ <groups
+ title="Filter Units"
+ collapse="true">
+ <entries
+ xsi:type="gmfgen:ToolEntry"
+ title="MultiFilterUnit"
+ description="Create new MultiFilterUnit"
+ genNodes="//@diagram/@childNodes.18 //@diagram/@childNodes.40 //@diagram/@childNodes.52 //@diagram/@childNodes.57 //@diagram/@childNodes.63"/>
+ <entries
+ xsi:type="gmfgen:ToolEntry"
+ title="SingleFilterUnit"
+ description="Create new SingleFilterUnit"
+ genNodes="//@diagram/@childNodes.15 //@diagram/@childNodes.39 //@diagram/@childNodes.51 //@diagram/@childNodes.56 //@diagram/@childNodes.62"/>
+ </groups>
+ <groups
+ title="Feature Units"
+ collapse="true">
+ <entries
+ xsi:type="gmfgen:ToolEntry"
+ title="MultiFeatureUnit"
+ description="Create new MultiFeatureUnit"
+ genNodes="//@diagram/@childNodes.11 //@diagram/@childNodes.38 //@diagram/@childNodes.50 //@diagram/@childNodes.55 //@diagram/@childNodes.61"/>
+ <entries
+ xsi:type="gmfgen:ToolEntry"
+ title="SingleFeatureUnit"
+ description="Create new SingleFeatureUnit"
+ genNodes="//@diagram/@childNodes.7 //@diagram/@childNodes.37 //@diagram/@childNodes.49 //@diagram/@childNodes.54 //@diagram/@childNodes.60"/>
+ </groups>
+ <groups
+ title="Ports"
+ collapse="true">
+ <entries
+ xsi:type="gmfgen:ToolEntry"
+ title="MultiInputPort"
+ description="Create new MultiInputPort"
+ genNodes="//@diagram/@childNodes.1 //@diagram/@childNodes.5 //@diagram/@childNodes.9 //@diagram/@childNodes.13 //@diagram/@childNodes.16 //@diagram/@childNodes.19 //@diagram/@childNodes.23 //@diagram/@childNodes.27 //@diagram/@childNodes.31"/>
+ <entries
+ xsi:type="gmfgen:ToolEntry"
+ title="MultiOutputPort"
+ description="Create new MultiOutputPort"
+ genNodes="//@diagram/@childNodes.14 //@diagram/@childNodes.20"/>
+ <entries
+ xsi:type="gmfgen:ToolEntry"
+ title="SingleInputPort"
+ description="Create new SingleInputPort"
+ genNodes="//@diagram/@topLevelNodes.0 //@diagram/@childNodes.0 //@diagram/@childNodes.4 //@diagram/@childNodes.8 //@diagram/@childNodes.12 //@diagram/@childNodes.22 //@diagram/@childNodes.26 //@diagram/@childNodes.30 //@diagram/@childNodes.34"/>
+ <entries
+ xsi:type="gmfgen:ToolEntry"
+ title="SingleOutputPort"
+ description="Create new SingleOutputPort"
+ genNodes="//@diagram/@childNodes.10 //@diagram/@childNodes.17"/>
+ </groups>
+ <groups
+ title="Mappings"
+ collapse="true">
+ <entries
+ xsi:type="gmfgen:ToolEntry"
+ title="MultiPortMapping"
+ description="Create new MultiPortMapping"
+ genLinks="//@diagram/@links.1"/>
+ <entries
+ xsi:type="gmfgen:ToolEntry"
+ title="MultiSinglePortMapping"
+ description="Create new MultiSinglePortMapping"
+ genLinks="//@diagram/@links.2"/>
+ <entries
+ xsi:type="gmfgen:ToolEntry"
+ title="SinglePortMapping"
+ description="Create new SinglePortMapping"
+ genLinks="//@diagram/@links.0"/>
+ </groups>
+ </palette>
+ <preferencePages
+ xsi:type="gmfgen:GenStandardPreferencePage"
+ iD="comrel.diagram.general"
+ name="Comrel Diagram">
+ <children
+ xsi:type="gmfgen:GenStandardPreferencePage"
+ iD="comrel.diagram.appearance"
+ name="Appearance"
+ kind="Appearance"/>
+ <children
+ xsi:type="gmfgen:GenStandardPreferencePage"
+ iD="comrel.diagram.connections"
+ name="Connections"
+ kind="Connections"/>
+ <children
+ xsi:type="gmfgen:GenStandardPreferencePage"
+ iD="comrel.diagram.printing"
+ name="Printing"
+ kind="Printing"/>
+ <children
+ xsi:type="gmfgen:GenStandardPreferencePage"
+ iD="comrel.diagram.rulersAndGrid"
+ name="Rulers And Grid"
+ kind="RulersAndGrid"/>
+ </preferencePages>
+ </diagram>
+ <plugin
+ printingEnabled="true">
+ <requiredPlugins>org.eclipse.draw2d</requiredPlugins>
+ <requiredPlugins>org.eclipse.gmf.runtime.draw2d.ui</requiredPlugins>
+ </plugin>
+ <editor/>
+ <navigator>
+ <childReferences
+ child="//@diagram"/>
+ <childReferences
+ parent="//@diagram"
+ child="//@diagram/@topLevelNodes.0"/>
+ <childReferences
+ parent="//@diagram/@topLevelNodes.1"
+ child="//@diagram/@childNodes.0"/>
+ <childReferences
+ parent="//@diagram/@topLevelNodes.1"
+ child="//@diagram/@childNodes.1"/>
+ <childReferences
+ parent="//@diagram/@childNodes.2"
+ child="//@diagram/@childNodes.0"/>
+ <childReferences
+ parent="//@diagram/@childNodes.2"
+ child="//@diagram/@childNodes.1"/>
+ <childReferences
+ parent="//@diagram/@childNodes.2"
+ child="//@diagram/@childNodes.2"/>
+ <childReferences
+ parent="//@diagram/@childNodes.3"
+ child="//@diagram/@childNodes.4"/>
+ <childReferences
+ parent="//@diagram/@childNodes.3"
+ child="//@diagram/@childNodes.5"/>
+ <childReferences
+ parent="//@diagram/@childNodes.6"
+ child="//@diagram/@childNodes.0"/>
+ <childReferences
+ parent="//@diagram/@childNodes.6"
+ child="//@diagram/@childNodes.1"/>
+ <childReferences
+ parent="//@diagram/@childNodes.6"
+ child="//@diagram/@childNodes.2"/>
+ <childReferences
+ parent="//@diagram/@childNodes.6"
+ child="//@diagram/@childNodes.3"/>
+ <childReferences
+ parent="//@diagram/@childNodes.7"
+ child="//@diagram/@childNodes.8"/>
+ <childReferences
+ parent="//@diagram/@childNodes.7"
+ child="//@diagram/@childNodes.9"/>
+ <childReferences
+ parent="//@diagram/@childNodes.7"
+ child="//@diagram/@childNodes.10"/>
+ <childReferences
+ parent="//@diagram/@childNodes.6"
+ child="//@diagram/@childNodes.7"/>
+ <childReferences
+ parent="//@diagram/@childNodes.11"
+ child="//@diagram/@childNodes.12"/>
+ <childReferences
+ parent="//@diagram/@childNodes.11"
+ child="//@diagram/@childNodes.13"/>
+ <childReferences
+ parent="//@diagram/@childNodes.11"
+ child="//@diagram/@childNodes.14"/>
+ <childReferences
+ parent="//@diagram/@childNodes.6"
+ child="//@diagram/@childNodes.11"/>
+ <childReferences
+ parent="//@diagram/@childNodes.15"
+ child="//@diagram/@childNodes.16"/>
+ <childReferences
+ parent="//@diagram/@childNodes.15"
+ child="//@diagram/@childNodes.17"/>
+ <childReferences
+ parent="//@diagram/@childNodes.6"
+ child="//@diagram/@childNodes.15"/>
+ <childReferences
+ parent="//@diagram/@childNodes.18"
+ child="//@diagram/@childNodes.19"/>
+ <childReferences
+ parent="//@diagram/@childNodes.18"
+ child="//@diagram/@childNodes.20"/>
+ <childReferences
+ parent="//@diagram/@childNodes.6"
+ child="//@diagram/@childNodes.18"/>
+ <childReferences
+ parent="//@diagram/@childNodes.21"
+ child="//@diagram/@childNodes.22"/>
+ <childReferences
+ parent="//@diagram/@childNodes.21"
+ child="//@diagram/@childNodes.23"/>
+ <childReferences
+ parent="//@diagram/@childNodes.24"
+ child="//@diagram/@childNodes.0"/>
+ <childReferences
+ parent="//@diagram/@childNodes.24"
+ child="//@diagram/@childNodes.1"/>
+ <childReferences
+ parent="//@diagram/@childNodes.24"
+ child="//@diagram/@childNodes.2"/>
+ <childReferences
+ parent="//@diagram/@childNodes.24"
+ child="//@diagram/@childNodes.3"/>
+ <childReferences
+ parent="//@diagram/@childNodes.24"
+ child="//@diagram/@childNodes.7"/>
+ <childReferences
+ parent="//@diagram/@childNodes.24"
+ child="//@diagram/@childNodes.11"/>
+ <childReferences
+ parent="//@diagram/@childNodes.24"
+ child="//@diagram/@childNodes.15"/>
+ <childReferences
+ parent="//@diagram/@childNodes.24"
+ child="//@diagram/@childNodes.18"/>
+ <childReferences
+ parent="//@diagram/@childNodes.24"
+ child="//@diagram/@childNodes.21"/>
+ <childReferences
+ parent="//@diagram/@childNodes.25"
+ child="//@diagram/@childNodes.26"/>
+ <childReferences
+ parent="//@diagram/@childNodes.25"
+ child="//@diagram/@childNodes.27"/>
+ <childReferences
+ parent="//@diagram/@childNodes.28"
+ child="//@diagram/@childNodes.0"/>
+ <childReferences
+ parent="//@diagram/@childNodes.28"
+ child="//@diagram/@childNodes.1"/>
+ <childReferences
+ parent="//@diagram/@childNodes.28"
+ child="//@diagram/@childNodes.2"/>
+ <childReferences
+ parent="//@diagram/@childNodes.28"
+ child="//@diagram/@childNodes.3"/>
+ <childReferences
+ parent="//@diagram/@childNodes.28"
+ child="//@diagram/@childNodes.7"/>
+ <childReferences
+ parent="//@diagram/@childNodes.28"
+ child="//@diagram/@childNodes.11"/>
+ <childReferences
+ parent="//@diagram/@childNodes.28"
+ child="//@diagram/@childNodes.15"/>
+ <childReferences
+ parent="//@diagram/@childNodes.28"
+ child="//@diagram/@childNodes.18"/>
+ <childReferences
+ parent="//@diagram/@childNodes.28"
+ child="//@diagram/@childNodes.21"/>
+ <childReferences
+ parent="//@diagram/@childNodes.28"
+ child="//@diagram/@childNodes.25"/>
+ <childReferences
+ parent="//@diagram/@childNodes.29"
+ child="//@diagram/@childNodes.30"/>
+ <childReferences
+ parent="//@diagram/@childNodes.29"
+ child="//@diagram/@childNodes.31"/>
+ <childReferences
+ parent="//@diagram/@childNodes.32"
+ child="//@diagram/@childNodes.0"/>
+ <childReferences
+ parent="//@diagram/@childNodes.32"
+ child="//@diagram/@childNodes.1"/>
+ <childReferences
+ parent="//@diagram/@childNodes.32"
+ child="//@diagram/@childNodes.2"/>
+ <childReferences
+ parent="//@diagram/@childNodes.32"
+ child="//@diagram/@childNodes.3"/>
+ <childReferences
+ parent="//@diagram/@childNodes.32"
+ child="//@diagram/@childNodes.7"/>
+ <childReferences
+ parent="//@diagram/@childNodes.32"
+ child="//@diagram/@childNodes.11"/>
+ <childReferences
+ parent="//@diagram/@childNodes.32"
+ child="//@diagram/@childNodes.15"/>
+ <childReferences
+ parent="//@diagram/@childNodes.32"
+ child="//@diagram/@childNodes.18"/>
+ <childReferences
+ parent="//@diagram/@childNodes.32"
+ child="//@diagram/@childNodes.21"/>
+ <childReferences
+ parent="//@diagram/@childNodes.32"
+ child="//@diagram/@childNodes.25"/>
+ <childReferences
+ parent="//@diagram/@childNodes.32"
+ child="//@diagram/@childNodes.29"/>
+ <childReferences
+ parent="//@diagram/@childNodes.33"
+ child="//@diagram/@childNodes.34"/>
+ <childReferences
+ parent="//@diagram/@childNodes.32"
+ child="//@diagram/@childNodes.33"/>
+ <childReferences
+ parent="//@diagram/@childNodes.29"
+ child="//@diagram/@childNodes.32"/>
+ <childReferences
+ parent="//@diagram/@childNodes.35"
+ child="//@diagram/@childNodes.4"/>
+ <childReferences
+ parent="//@diagram/@childNodes.35"
+ child="//@diagram/@childNodes.5"/>
+ <childReferences
+ parent="//@diagram/@childNodes.35"
+ child="//@diagram/@childNodes.6"/>
+ <childReferences
+ parent="//@diagram/@childNodes.36"
+ child="//@diagram/@childNodes.4"/>
+ <childReferences
+ parent="//@diagram/@childNodes.36"
+ child="//@diagram/@childNodes.5"/>
+ <childReferences
+ parent="//@diagram/@childNodes.36"
+ child="//@diagram/@childNodes.6"/>
+ <childReferences
+ parent="//@diagram/@childNodes.36"
+ child="//@diagram/@childNodes.36"/>
+ <childReferences
+ parent="//@diagram/@childNodes.37"
+ child="//@diagram/@childNodes.8"/>
+ <childReferences
+ parent="//@diagram/@childNodes.37"
+ child="//@diagram/@childNodes.9"/>
+ <childReferences
+ parent="//@diagram/@childNodes.37"
+ child="//@diagram/@childNodes.10"/>
+ <childReferences
+ parent="//@diagram/@childNodes.36"
+ child="//@diagram/@childNodes.37"/>
+ <childReferences
+ parent="//@diagram/@childNodes.38"
+ child="//@diagram/@childNodes.12"/>
+ <childReferences
+ parent="//@diagram/@childNodes.38"
+ child="//@diagram/@childNodes.13"/>
+ <childReferences
+ parent="//@diagram/@childNodes.38"
+ child="//@diagram/@childNodes.14"/>
+ <childReferences
+ parent="//@diagram/@childNodes.36"
+ child="//@diagram/@childNodes.38"/>
+ <childReferences
+ parent="//@diagram/@childNodes.39"
+ child="//@diagram/@childNodes.16"/>
+ <childReferences
+ parent="//@diagram/@childNodes.39"
+ child="//@diagram/@childNodes.17"/>
+ <childReferences
+ parent="//@diagram/@childNodes.36"
+ child="//@diagram/@childNodes.39"/>
+ <childReferences
+ parent="//@diagram/@childNodes.40"
+ child="//@diagram/@childNodes.19"/>
+ <childReferences
+ parent="//@diagram/@childNodes.40"
+ child="//@diagram/@childNodes.20"/>
+ <childReferences
+ parent="//@diagram/@childNodes.36"
+ child="//@diagram/@childNodes.40"/>
+ <childReferences
+ parent="//@diagram/@childNodes.41"
+ child="//@diagram/@childNodes.22"/>
+ <childReferences
+ parent="//@diagram/@childNodes.41"
+ child="//@diagram/@childNodes.23"/>
+ <childReferences
+ parent="//@diagram/@childNodes.41"
+ child="//@diagram/@childNodes.24"/>
+ <childReferences
+ parent="//@diagram/@childNodes.42"
+ child="//@diagram/@childNodes.4"/>
+ <childReferences
+ parent="//@diagram/@childNodes.42"
+ child="//@diagram/@childNodes.5"/>
+ <childReferences
+ parent="//@diagram/@childNodes.42"
+ child="//@diagram/@childNodes.6"/>
+ <childReferences
+ parent="//@diagram/@childNodes.42"
+ child="//@diagram/@childNodes.36"/>
+ <childReferences
+ parent="//@diagram/@childNodes.42"
+ child="//@diagram/@childNodes.37"/>
+ <childReferences
+ parent="//@diagram/@childNodes.42"
+ child="//@diagram/@childNodes.38"/>
+ <childReferences
+ parent="//@diagram/@childNodes.42"
+ child="//@diagram/@childNodes.39"/>
+ <childReferences
+ parent="//@diagram/@childNodes.42"
+ child="//@diagram/@childNodes.40"/>
+ <childReferences
+ parent="//@diagram/@childNodes.42"
+ child="//@diagram/@childNodes.41"/>
+ <childReferences
+ parent="//@diagram/@childNodes.43"
+ child="//@diagram/@childNodes.26"/>
+ <childReferences
+ parent="//@diagram/@childNodes.43"
+ child="//@diagram/@childNodes.27"/>
+ <childReferences
+ parent="//@diagram/@childNodes.43"
+ child="//@diagram/@childNodes.28"/>
+ <childReferences
+ parent="//@diagram/@childNodes.44"
+ child="//@diagram/@childNodes.4"/>
+ <childReferences
+ parent="//@diagram/@childNodes.44"
+ child="//@diagram/@childNodes.5"/>
+ <childReferences
+ parent="//@diagram/@childNodes.44"
+ child="//@diagram/@childNodes.6"/>
+ <childReferences
+ parent="//@diagram/@childNodes.44"
+ child="//@diagram/@childNodes.36"/>
+ <childReferences
+ parent="//@diagram/@childNodes.44"
+ child="//@diagram/@childNodes.37"/>
+ <childReferences
+ parent="//@diagram/@childNodes.44"
+ child="//@diagram/@childNodes.38"/>
+ <childReferences
+ parent="//@diagram/@childNodes.44"
+ child="//@diagram/@childNodes.39"/>
+ <childReferences
+ parent="//@diagram/@childNodes.44"
+ child="//@diagram/@childNodes.40"/>
+ <childReferences
+ parent="//@diagram/@childNodes.44"
+ child="//@diagram/@childNodes.41"/>
+ <childReferences
+ parent="//@diagram/@childNodes.44"
+ child="//@diagram/@childNodes.43"/>
+ <childReferences
+ parent="//@diagram/@childNodes.45"
+ child="//@diagram/@childNodes.30"/>
+ <childReferences
+ parent="//@diagram/@childNodes.45"
+ child="//@diagram/@childNodes.31"/>
+ <childReferences
+ parent="//@diagram/@childNodes.45"
+ child="//@diagram/@childNodes.32"/>
+ <childReferences
+ parent="//@diagram/@childNodes.45"
+ child="//@diagram/@childNodes.35"/>
+ <childReferences
+ parent="//@diagram/@childNodes.46"
+ child="//@diagram/@childNodes.0"/>
+ <childReferences
+ parent="//@diagram/@childNodes.46"
+ child="//@diagram/@childNodes.1"/>
+ <childReferences
+ parent="//@diagram/@childNodes.46"
+ child="//@diagram/@childNodes.2"/>
+ <childReferences
+ parent="//@diagram/@childNodes.46"
+ child="//@diagram/@childNodes.3"/>
+ <childReferences
+ parent="//@diagram/@childNodes.46"
+ child="//@diagram/@childNodes.7"/>
+ <childReferences
+ parent="//@diagram/@childNodes.46"
+ child="//@diagram/@childNodes.11"/>
+ <childReferences
+ parent="//@diagram/@childNodes.46"
+ child="//@diagram/@childNodes.15"/>
+ <childReferences
+ parent="//@diagram/@childNodes.46"
+ child="//@diagram/@childNodes.18"/>
+ <childReferences
+ parent="//@diagram/@childNodes.46"
+ child="//@diagram/@childNodes.21"/>
+ <childReferences
+ parent="//@diagram/@childNodes.46"
+ child="//@diagram/@childNodes.25"/>
+ <childReferences
+ parent="//@diagram/@childNodes.46"
+ child="//@diagram/@childNodes.29"/>
+ <childReferences
+ parent="//@diagram/@childNodes.46"
+ child="//@diagram/@childNodes.33"/>
+ <childReferences
+ parent="//@diagram/@childNodes.45"
+ child="//@diagram/@childNodes.46"/>
+ <childReferences
+ parent="//@diagram/@childNodes.47"
+ child="//@diagram/@childNodes.4"/>
+ <childReferences
+ parent="//@diagram/@childNodes.47"
+ child="//@diagram/@childNodes.5"/>
+ <childReferences
+ parent="//@diagram/@childNodes.47"
+ child="//@diagram/@childNodes.6"/>
+ <childReferences
+ parent="//@diagram/@childNodes.47"
+ child="//@diagram/@childNodes.36"/>
+ <childReferences
+ parent="//@diagram/@childNodes.47"
+ child="//@diagram/@childNodes.37"/>
+ <childReferences
+ parent="//@diagram/@childNodes.47"
+ child="//@diagram/@childNodes.38"/>
+ <childReferences
+ parent="//@diagram/@childNodes.47"
+ child="//@diagram/@childNodes.39"/>
+ <childReferences
+ parent="//@diagram/@childNodes.47"
+ child="//@diagram/@childNodes.40"/>
+ <childReferences
+ parent="//@diagram/@childNodes.47"
+ child="//@diagram/@childNodes.41"/>
+ <childReferences
+ parent="//@diagram/@childNodes.47"
+ child="//@diagram/@childNodes.43"/>
+ <childReferences
+ parent="//@diagram/@childNodes.47"
+ child="//@diagram/@childNodes.45"/>
+ <childReferences
+ parent="//@diagram/@childNodes.48"
+ child="//@diagram/@childNodes.34"/>
+ <childReferences
+ parent="//@diagram/@childNodes.47"
+ child="//@diagram/@childNodes.48"/>
+ <childReferences
+ parent="//@diagram/@childNodes.45"
+ child="//@diagram/@childNodes.47"/>
+ <childReferences
+ parent="//@diagram/@childNodes.49"
+ child="//@diagram/@childNodes.8"/>
+ <childReferences
+ parent="//@diagram/@childNodes.49"
+ child="//@diagram/@childNodes.9"/>
+ <childReferences
+ parent="//@diagram/@childNodes.49"
+ child="//@diagram/@childNodes.10"/>
+ <childReferences
+ parent="//@diagram/@childNodes.45"
+ child="//@diagram/@childNodes.49"/>
+ <childReferences
+ parent="//@diagram/@childNodes.50"
+ child="//@diagram/@childNodes.12"/>
+ <childReferences
+ parent="//@diagram/@childNodes.50"
+ child="//@diagram/@childNodes.13"/>
+ <childReferences
+ parent="//@diagram/@childNodes.50"
+ child="//@diagram/@childNodes.14"/>
+ <childReferences
+ parent="//@diagram/@childNodes.45"
+ child="//@diagram/@childNodes.50"/>
+ <childReferences
+ parent="//@diagram/@childNodes.51"
+ child="//@diagram/@childNodes.16"/>
+ <childReferences
+ parent="//@diagram/@childNodes.51"
+ child="//@diagram/@childNodes.17"/>
+ <childReferences
+ parent="//@diagram/@childNodes.45"
+ child="//@diagram/@childNodes.51"/>
+ <childReferences
+ parent="//@diagram/@childNodes.52"
+ child="//@diagram/@childNodes.19"/>
+ <childReferences
+ parent="//@diagram/@childNodes.52"
+ child="//@diagram/@childNodes.20"/>
+ <childReferences
+ parent="//@diagram/@childNodes.45"
+ child="//@diagram/@childNodes.52"/>
+ <childReferences
+ parent="//@diagram/@childNodes.53"
+ child="//@diagram/@childNodes.22"/>
+ <childReferences
+ parent="//@diagram/@childNodes.53"
+ child="//@diagram/@childNodes.23"/>
+ <childReferences
+ parent="//@diagram/@childNodes.53"
+ child="//@diagram/@childNodes.24"/>
+ <childReferences
+ parent="//@diagram/@childNodes.53"
+ child="//@diagram/@childNodes.42"/>
+ <childReferences
+ parent="//@diagram/@childNodes.54"
+ child="//@diagram/@childNodes.8"/>
+ <childReferences
+ parent="//@diagram/@childNodes.54"
+ child="//@diagram/@childNodes.9"/>
+ <childReferences
+ parent="//@diagram/@childNodes.54"
+ child="//@diagram/@childNodes.10"/>
+ <childReferences
+ parent="//@diagram/@childNodes.53"
+ child="//@diagram/@childNodes.54"/>
+ <childReferences
+ parent="//@diagram/@childNodes.55"
+ child="//@diagram/@childNodes.12"/>
+ <childReferences
+ parent="//@diagram/@childNodes.55"
+ child="//@diagram/@childNodes.13"/>
+ <childReferences
+ parent="//@diagram/@childNodes.55"
+ child="//@diagram/@childNodes.14"/>
+ <childReferences
+ parent="//@diagram/@childNodes.53"
+ child="//@diagram/@childNodes.55"/>
+ <childReferences
+ parent="//@diagram/@childNodes.56"
+ child="//@diagram/@childNodes.16"/>
+ <childReferences
+ parent="//@diagram/@childNodes.56"
+ child="//@diagram/@childNodes.17"/>
+ <childReferences
+ parent="//@diagram/@childNodes.53"
+ child="//@diagram/@childNodes.56"/>
+ <childReferences
+ parent="//@diagram/@childNodes.57"
+ child="//@diagram/@childNodes.19"/>
+ <childReferences
+ parent="//@diagram/@childNodes.57"
+ child="//@diagram/@childNodes.20"/>
+ <childReferences
+ parent="//@diagram/@childNodes.53"
+ child="//@diagram/@childNodes.57"/>
+ <childReferences
+ parent="//@diagram/@childNodes.58"
+ child="//@diagram/@childNodes.22"/>
+ <childReferences
+ parent="//@diagram/@childNodes.58"
+ child="//@diagram/@childNodes.23"/>
+ <childReferences
+ parent="//@diagram/@childNodes.58"
+ child="//@diagram/@childNodes.24"/>
+ <childReferences
+ parent="//@diagram/@childNodes.58"
+ child="//@diagram/@childNodes.42"/>
+ <childReferences
+ parent="//@diagram/@childNodes.58"
+ child="//@diagram/@childNodes.54"/>
+ <childReferences
+ parent="//@diagram/@childNodes.58"
+ child="//@diagram/@childNodes.55"/>
+ <childReferences
+ parent="//@diagram/@childNodes.58"
+ child="//@diagram/@childNodes.56"/>
+ <childReferences
+ parent="//@diagram/@childNodes.58"
+ child="//@diagram/@childNodes.57"/>
+ <childReferences
+ parent="//@diagram/@childNodes.58"
+ child="//@diagram/@childNodes.58"/>
+ <childReferences
+ parent="//@diagram/@childNodes.59"
+ child="//@diagram/@childNodes.26"/>
+ <childReferences
+ parent="//@diagram/@childNodes.59"
+ child="//@diagram/@childNodes.27"/>
+ <childReferences
+ parent="//@diagram/@childNodes.59"
+ child="//@diagram/@childNodes.28"/>
+ <childReferences
+ parent="//@diagram/@childNodes.59"
+ child="//@diagram/@childNodes.44"/>
+ <childReferences
+ parent="//@diagram/@childNodes.60"
+ child="//@diagram/@childNodes.8"/>
+ <childReferences
+ parent="//@diagram/@childNodes.60"
+ child="//@diagram/@childNodes.9"/>
+ <childReferences
+ parent="//@diagram/@childNodes.60"
+ child="//@diagram/@childNodes.10"/>
+ <childReferences
+ parent="//@diagram/@childNodes.59"
+ child="//@diagram/@childNodes.60"/>
+ <childReferences
+ parent="//@diagram/@childNodes.61"
+ child="//@diagram/@childNodes.12"/>
+ <childReferences
+ parent="//@diagram/@childNodes.61"
+ child="//@diagram/@childNodes.13"/>
+ <childReferences
+ parent="//@diagram/@childNodes.61"
+ child="//@diagram/@childNodes.14"/>
+ <childReferences
+ parent="//@diagram/@childNodes.59"
+ child="//@diagram/@childNodes.61"/>
+ <childReferences
+ parent="//@diagram/@childNodes.62"
+ child="//@diagram/@childNodes.16"/>
+ <childReferences
+ parent="//@diagram/@childNodes.62"
+ child="//@diagram/@childNodes.17"/>
+ <childReferences
+ parent="//@diagram/@childNodes.59"
+ child="//@diagram/@childNodes.62"/>
+ <childReferences
+ parent="//@diagram/@childNodes.63"
+ child="//@diagram/@childNodes.19"/>
+ <childReferences
+ parent="//@diagram/@childNodes.63"
+ child="//@diagram/@childNodes.20"/>
+ <childReferences
+ parent="//@diagram/@childNodes.59"
+ child="//@diagram/@childNodes.63"/>
+ <childReferences
+ parent="//@diagram/@childNodes.64"
+ child="//@diagram/@childNodes.22"/>
+ <childReferences
+ parent="//@diagram/@childNodes.64"
+ child="//@diagram/@childNodes.23"/>
+ <childReferences
+ parent="//@diagram/@childNodes.64"
+ child="//@diagram/@childNodes.24"/>
+ <childReferences
+ parent="//@diagram/@childNodes.64"
+ child="//@diagram/@childNodes.42"/>
+ <childReferences
+ parent="//@diagram/@childNodes.64"
+ child="//@diagram/@childNodes.54"/>
+ <childReferences
+ parent="//@diagram/@childNodes.64"
+ child="//@diagram/@childNodes.55"/>
+ <childReferences
+ parent="//@diagram/@childNodes.64"
+ child="//@diagram/@childNodes.56"/>
+ <childReferences
+ parent="//@diagram/@childNodes.64"
+ child="//@diagram/@childNodes.57"/>
+ <childReferences
+ parent="//@diagram/@childNodes.64"
+ child="//@diagram/@childNodes.58"/>
+ <childReferences
+ parent="//@diagram/@childNodes.64"
+ child="//@diagram/@childNodes.59"/>
+ <childReferences
+ parent="//@diagram/@childNodes.65"
+ child="//@diagram/@childNodes.30"/>
+ <childReferences
+ parent="//@diagram/@childNodes.65"
+ child="//@diagram/@childNodes.31"/>
+ <childReferences
+ parent="//@diagram/@childNodes.65"
+ child="//@diagram/@childNodes.32"/>
+ <childReferences
+ parent="//@diagram/@childNodes.65"
+ child="//@diagram/@childNodes.35"/>
+ <childReferences
+ parent="//@diagram/@childNodes.65"
+ child="//@diagram/@childNodes.46"/>
+ <childReferences
+ parent="//@diagram/@childNodes.65"
+ child="//@diagram/@childNodes.47"/>
+ <childReferences
+ parent="//@diagram/@childNodes.65"
+ child="//@diagram/@childNodes.49"/>
+ <childReferences
+ parent="//@diagram/@childNodes.65"
+ child="//@diagram/@childNodes.50"/>
+ <childReferences
+ parent="//@diagram/@childNodes.65"
+ child="//@diagram/@childNodes.51"/>
+ <childReferences
+ parent="//@diagram/@childNodes.65"
+ child="//@diagram/@childNodes.52"/>
+ <childReferences
+ parent="//@diagram/@childNodes.65"
+ child="//@diagram/@childNodes.53"/>
+ <childReferences
+ parent="//@diagram/@childNodes.66"
+ child="//@diagram/@childNodes.22"/>
+ <childReferences
+ parent="//@diagram/@childNodes.66"
+ child="//@diagram/@childNodes.23"/>
+ <childReferences
+ parent="//@diagram/@childNodes.66"
+ child="//@diagram/@childNodes.24"/>
+ <childReferences
+ parent="//@diagram/@childNodes.66"
+ child="//@diagram/@childNodes.42"/>
+ <childReferences
+ parent="//@diagram/@childNodes.66"
+ child="//@diagram/@childNodes.54"/>
+ <childReferences
+ parent="//@diagram/@childNodes.66"
+ child="//@diagram/@childNodes.55"/>
+ <childReferences
+ parent="//@diagram/@childNodes.66"
+ child="//@diagram/@childNodes.56"/>
+ <childReferences
+ parent="//@diagram/@childNodes.66"
+ child="//@diagram/@childNodes.57"/>
+ <childReferences
+ parent="//@diagram/@childNodes.66"
+ child="//@diagram/@childNodes.58"/>
+ <childReferences
+ parent="//@diagram/@childNodes.66"
+ child="//@diagram/@childNodes.59"/>
+ <childReferences
+ parent="//@diagram/@childNodes.66"
+ child="//@diagram/@childNodes.65"/>
+ <childReferences
+ parent="//@diagram/@childNodes.67"
+ child="//@diagram/@childNodes.34"/>
+ <childReferences
+ parent="//@diagram/@childNodes.66"
+ child="//@diagram/@childNodes.67"/>
+ <childReferences
+ parent="//@diagram/@childNodes.65"
+ child="//@diagram/@childNodes.66"/>
+ <childReferences
+ parent="//@diagram/@childNodes.68"
+ child="//@diagram/@childNodes.26"/>
+ <childReferences
+ parent="//@diagram/@childNodes.68"
+ child="//@diagram/@childNodes.27"/>
+ <childReferences
+ parent="//@diagram/@childNodes.68"
+ child="//@diagram/@childNodes.28"/>
+ <childReferences
+ parent="//@diagram/@childNodes.68"
+ child="//@diagram/@childNodes.44"/>
+ <childReferences
+ parent="//@diagram/@childNodes.68"
+ child="//@diagram/@childNodes.60"/>
+ <childReferences
+ parent="//@diagram/@childNodes.68"
+ child="//@diagram/@childNodes.61"/>
+ <childReferences
+ parent="//@diagram/@childNodes.68"
+ child="//@diagram/@childNodes.62"/>
+ <childReferences
+ parent="//@diagram/@childNodes.68"
+ child="//@diagram/@childNodes.63"/>
+ <childReferences
+ parent="//@diagram/@childNodes.68"
+ child="//@diagram/@childNodes.64"/>
+ <childReferences
+ parent="//@diagram/@childNodes.69"
+ child="//@diagram/@childNodes.26"/>
+ <childReferences
+ parent="//@diagram/@childNodes.69"
+ child="//@diagram/@childNodes.27"/>
+ <childReferences
+ parent="//@diagram/@childNodes.69"
+ child="//@diagram/@childNodes.28"/>
+ <childReferences
+ parent="//@diagram/@childNodes.69"
+ child="//@diagram/@childNodes.44"/>
+ <childReferences
+ parent="//@diagram/@childNodes.69"
+ child="//@diagram/@childNodes.60"/>
+ <childReferences
+ parent="//@diagram/@childNodes.69"
+ child="//@diagram/@childNodes.61"/>
+ <childReferences
+ parent="//@diagram/@childNodes.69"
+ child="//@diagram/@childNodes.62"/>
+ <childReferences
+ parent="//@diagram/@childNodes.69"
+ child="//@diagram/@childNodes.63"/>
+ <childReferences
+ parent="//@diagram/@childNodes.69"
+ child="//@diagram/@childNodes.64"/>
+ <childReferences
+ parent="//@diagram/@childNodes.69"
+ child="//@diagram/@childNodes.69"/>
+ <childReferences
+ parent="//@diagram/@childNodes.70"
+ child="//@diagram/@childNodes.30"/>
+ <childReferences
+ parent="//@diagram/@childNodes.70"
+ child="//@diagram/@childNodes.31"/>
+ <childReferences
+ parent="//@diagram/@childNodes.70"
+ child="//@diagram/@childNodes.32"/>
+ <childReferences
+ parent="//@diagram/@childNodes.70"
+ child="//@diagram/@childNodes.35"/>
+ <childReferences
+ parent="//@diagram/@childNodes.70"
+ child="//@diagram/@childNodes.46"/>
+ <childReferences
+ parent="//@diagram/@childNodes.70"
+ child="//@diagram/@childNodes.47"/>
+ <childReferences
+ parent="//@diagram/@childNodes.70"
+ child="//@diagram/@childNodes.49"/>
+ <childReferences
+ parent="//@diagram/@childNodes.70"
+ child="//@diagram/@childNodes.50"/>
+ <childReferences
+ parent="//@diagram/@childNodes.70"
+ child="//@diagram/@childNodes.51"/>
+ <childReferences
+ parent="//@diagram/@childNodes.70"
+ child="//@diagram/@childNodes.52"/>
+ <childReferences
+ parent="//@diagram/@childNodes.70"
+ child="//@diagram/@childNodes.53"/>
+ <childReferences
+ parent="//@diagram/@childNodes.70"
+ child="//@diagram/@childNodes.66"/>
+ <childReferences
+ parent="//@diagram/@childNodes.70"
+ child="//@diagram/@childNodes.68"/>
+ <childReferences
+ parent="//@diagram/@childNodes.71"
+ child="//@diagram/@childNodes.30"/>
+ <childReferences
+ parent="//@diagram/@childNodes.71"
+ child="//@diagram/@childNodes.31"/>
+ <childReferences
+ parent="//@diagram/@childNodes.71"
+ child="//@diagram/@childNodes.32"/>
+ <childReferences
+ parent="//@diagram/@childNodes.71"
+ child="//@diagram/@childNodes.35"/>
+ <childReferences
+ parent="//@diagram/@childNodes.71"
+ child="//@diagram/@childNodes.46"/>
+ <childReferences
+ parent="//@diagram/@childNodes.71"
+ child="//@diagram/@childNodes.47"/>
+ <childReferences
+ parent="//@diagram/@childNodes.71"
+ child="//@diagram/@childNodes.49"/>
+ <childReferences
+ parent="//@diagram/@childNodes.71"
+ child="//@diagram/@childNodes.50"/>
+ <childReferences
+ parent="//@diagram/@childNodes.71"
+ child="//@diagram/@childNodes.51"/>
+ <childReferences
+ parent="//@diagram/@childNodes.71"
+ child="//@diagram/@childNodes.52"/>
+ <childReferences
+ parent="//@diagram/@childNodes.71"
+ child="//@diagram/@childNodes.53"/>
+ <childReferences
+ parent="//@diagram/@childNodes.71"
+ child="//@diagram/@childNodes.66"/>
+ <childReferences
+ parent="//@diagram/@childNodes.71"
+ child="//@diagram/@childNodes.68"/>
+ <childReferences
+ parent="//@diagram/@childNodes.71"
+ child="//@diagram/@childNodes.71"/>
+ <childReferences
+ parent="//@diagram/@childNodes.72"
+ child="//@diagram/@childNodes.26"/>
+ <childReferences
+ parent="//@diagram/@childNodes.72"
+ child="//@diagram/@childNodes.27"/>
+ <childReferences
+ parent="//@diagram/@childNodes.72"
+ child="//@diagram/@childNodes.28"/>
+ <childReferences
+ parent="//@diagram/@childNodes.72"
+ child="//@diagram/@childNodes.44"/>
+ <childReferences
+ parent="//@diagram/@childNodes.72"
+ child="//@diagram/@childNodes.60"/>
+ <childReferences
+ parent="//@diagram/@childNodes.72"
+ child="//@diagram/@childNodes.61"/>
+ <childReferences
+ parent="//@diagram/@childNodes.72"
+ child="//@diagram/@childNodes.62"/>
+ <childReferences
+ parent="//@diagram/@childNodes.72"
+ child="//@diagram/@childNodes.63"/>
+ <childReferences
+ parent="//@diagram/@childNodes.72"
+ child="//@diagram/@childNodes.64"/>
+ <childReferences
+ parent="//@diagram/@childNodes.72"
+ child="//@diagram/@childNodes.69"/>
+ <childReferences
+ parent="//@diagram/@childNodes.72"
+ child="//@diagram/@childNodes.70"/>
+ <childReferences
+ parent="//@diagram/@childNodes.73"
+ child="//@diagram/@childNodes.34"/>
+ <childReferences
+ parent="//@diagram/@childNodes.72"
+ child="//@diagram/@childNodes.73"/>
+ <childReferences
+ parent="//@diagram/@childNodes.71"
+ child="//@diagram/@childNodes.72"/>
+ <childReferences
+ parent="//@diagram/@childNodes.74"
+ child="//@diagram/@childNodes.30"/>
+ <childReferences
+ parent="//@diagram/@childNodes.74"
+ child="//@diagram/@childNodes.31"/>
+ <childReferences
+ parent="//@diagram/@childNodes.74"
+ child="//@diagram/@childNodes.32"/>
+ <childReferences
+ parent="//@diagram/@childNodes.74"
+ child="//@diagram/@childNodes.35"/>
+ <childReferences
+ parent="//@diagram/@childNodes.74"
+ child="//@diagram/@childNodes.46"/>
+ <childReferences
+ parent="//@diagram/@childNodes.74"
+ child="//@diagram/@childNodes.47"/>
+ <childReferences
+ parent="//@diagram/@childNodes.74"
+ child="//@diagram/@childNodes.49"/>
+ <childReferences
+ parent="//@diagram/@childNodes.74"
+ child="//@diagram/@childNodes.50"/>
+ <childReferences
+ parent="//@diagram/@childNodes.74"
+ child="//@diagram/@childNodes.51"/>
+ <childReferences
+ parent="//@diagram/@childNodes.74"
+ child="//@diagram/@childNodes.52"/>
+ <childReferences
+ parent="//@diagram/@childNodes.74"
+ child="//@diagram/@childNodes.53"/>
+ <childReferences
+ parent="//@diagram/@childNodes.74"
+ child="//@diagram/@childNodes.66"/>
+ <childReferences
+ parent="//@diagram/@childNodes.74"
+ child="//@diagram/@childNodes.68"/>
+ <childReferences
+ parent="//@diagram/@childNodes.74"
+ child="//@diagram/@childNodes.71"/>
+ <childReferences
+ parent="//@diagram/@childNodes.74"
+ child="//@diagram/@childNodes.72"/>
+ <childReferences
+ parent="//@diagram/@childNodes.74"
+ child="//@diagram/@childNodes.74"/>
+ <childReferences
+ parent="//@diagram/@childNodes.74"
+ child="//@diagram/@childNodes.75"/>
+ <childReferences
+ parent="//@diagram/@childNodes.76"
+ child="//@diagram/@childNodes.34"/>
+ <childReferences
+ parent="//@diagram/@childNodes.74"
+ child="//@diagram/@childNodes.76"/>
+ <childReferences
+ parent="//@diagram/@childNodes.77"
+ child="//@diagram/@childNodes.34"/>
+ <childReferences
+ parent="//@diagram/@childNodes.74"
+ child="//@diagram/@childNodes.77"/>
+ <childReferences
+ parent="//@diagram/@childNodes.71"
+ child="//@diagram/@childNodes.74"/>
+ <childReferences
+ parent="//@diagram/@childNodes.71"
+ child="//@diagram/@childNodes.75"/>
+ <childReferences
+ parent="//@diagram/@childNodes.71"
+ child="//@diagram/@childNodes.76"/>
+ <childReferences
+ parent="//@diagram/@childNodes.71"
+ child="//@diagram/@childNodes.77"/>
+ <childReferences
+ parent="//@diagram/@childNodes.70"
+ child="//@diagram/@childNodes.71"/>
+ <childReferences
+ parent="//@diagram/@childNodes.70"
+ child="//@diagram/@childNodes.72"/>
+ <childReferences
+ parent="//@diagram/@childNodes.70"
+ child="//@diagram/@childNodes.74"/>
+ <childReferences
+ parent="//@diagram/@childNodes.70"
+ child="//@diagram/@childNodes.75"/>
+ <childReferences
+ parent="//@diagram/@childNodes.70"
+ child="//@diagram/@childNodes.76"/>
+ <childReferences
+ parent="//@diagram/@childNodes.70"
+ child="//@diagram/@childNodes.77"/>
+ <childReferences
+ parent="//@diagram/@childNodes.69"
+ child="//@diagram/@childNodes.70"/>
+ <childReferences
+ parent="//@diagram/@childNodes.69"
+ child="//@diagram/@childNodes.73"/>
+ <childReferences
+ parent="//@diagram/@childNodes.68"
+ child="//@diagram/@childNodes.69"/>
+ <childReferences
+ parent="//@diagram/@childNodes.68"
+ child="//@diagram/@childNodes.70"/>
+ <childReferences
+ parent="//@diagram/@childNodes.68"
+ child="//@diagram/@childNodes.73"/>
+ <childReferences
+ parent="//@diagram/@childNodes.65"
+ child="//@diagram/@childNodes.68"/>
+ <childReferences
+ parent="//@diagram/@childNodes.65"
+ child="//@diagram/@childNodes.71"/>
+ <childReferences
+ parent="//@diagram/@childNodes.65"
+ child="//@diagram/@childNodes.72"/>
+ <childReferences
+ parent="//@diagram/@childNodes.65"
+ child="//@diagram/@childNodes.74"/>
+ <childReferences
+ parent="//@diagram/@childNodes.65"
+ child="//@diagram/@childNodes.75"/>
+ <childReferences
+ parent="//@diagram/@childNodes.65"
+ child="//@diagram/@childNodes.76"/>
+ <childReferences
+ parent="//@diagram/@childNodes.65"
+ child="//@diagram/@childNodes.77"/>
+ <childReferences
+ parent="//@diagram/@childNodes.64"
+ child="//@diagram/@childNodes.65"/>
+ <childReferences
+ parent="//@diagram/@childNodes.64"
+ child="//@diagram/@childNodes.67"/>
+ <childReferences
+ parent="//@diagram/@childNodes.59"
+ child="//@diagram/@childNodes.64"/>
+ <childReferences
+ parent="//@diagram/@childNodes.59"
+ child="//@diagram/@childNodes.69"/>
+ <childReferences
+ parent="//@diagram/@childNodes.59"
+ child="//@diagram/@childNodes.70"/>
+ <childReferences
+ parent="//@diagram/@childNodes.59"
+ child="//@diagram/@childNodes.73"/>
+ <childReferences
+ parent="//@diagram/@childNodes.58"
+ child="//@diagram/@childNodes.59"/>
+ <childReferences
+ parent="//@diagram/@childNodes.58"
+ child="//@diagram/@childNodes.65"/>
+ <childReferences
+ parent="//@diagram/@childNodes.58"
+ child="//@diagram/@childNodes.67"/>
+ <childReferences
+ parent="//@diagram/@childNodes.53"
+ child="//@diagram/@childNodes.58"/>
+ <childReferences
+ parent="//@diagram/@childNodes.53"
+ child="//@diagram/@childNodes.59"/>
+ <childReferences
+ parent="//@diagram/@childNodes.53"
+ child="//@diagram/@childNodes.65"/>
+ <childReferences
+ parent="//@diagram/@childNodes.53"
+ child="//@diagram/@childNodes.67"/>
+ <childReferences
+ parent="//@diagram/@childNodes.45"
+ child="//@diagram/@childNodes.53"/>
+ <childReferences
+ parent="//@diagram/@childNodes.45"
+ child="//@diagram/@childNodes.66"/>
+ <childReferences
+ parent="//@diagram/@childNodes.45"
+ child="//@diagram/@childNodes.68"/>
+ <childReferences
+ parent="//@diagram/@childNodes.45"
+ child="//@diagram/@childNodes.71"/>
+ <childReferences
+ parent="//@diagram/@childNodes.45"
+ child="//@diagram/@childNodes.72"/>
+ <childReferences
+ parent="//@diagram/@childNodes.45"
+ child="//@diagram/@childNodes.74"/>
+ <childReferences
+ parent="//@diagram/@childNodes.45"
+ child="//@diagram/@childNodes.75"/>
+ <childReferences
+ parent="//@diagram/@childNodes.45"
+ child="//@diagram/@childNodes.76"/>
+ <childReferences
+ parent="//@diagram/@childNodes.45"
+ child="//@diagram/@childNodes.77"/>
+ <childReferences
+ parent="//@diagram/@childNodes.44"
+ child="//@diagram/@childNodes.45"/>
+ <childReferences
+ parent="//@diagram/@childNodes.44"
+ child="//@diagram/@childNodes.48"/>
+ <childReferences
+ parent="//@diagram/@childNodes.43"
+ child="//@diagram/@childNodes.44"/>
+ <childReferences
+ parent="//@diagram/@childNodes.43"
+ child="//@diagram/@childNodes.60"/>
+ <childReferences
+ parent="//@diagram/@childNodes.43"
+ child="//@diagram/@childNodes.61"/>
+ <childReferences
+ parent="//@diagram/@childNodes.43"
+ child="//@diagram/@childNodes.62"/>
+ <childReferences
+ parent="//@diagram/@childNodes.43"
+ child="//@diagram/@childNodes.63"/>
+ <childReferences
+ parent="//@diagram/@childNodes.43"
+ child="//@diagram/@childNodes.64"/>
+ <childReferences
+ parent="//@diagram/@childNodes.43"
+ child="//@diagram/@childNodes.69"/>
+ <childReferences
+ parent="//@diagram/@childNodes.43"
+ child="//@diagram/@childNodes.70"/>
+ <childReferences
+ parent="//@diagram/@childNodes.43"
+ child="//@diagram/@childNodes.73"/>
+ <childReferences
+ parent="//@diagram/@childNodes.42"
+ child="//@diagram/@childNodes.43"/>
+ <childReferences
+ parent="//@diagram/@childNodes.42"
+ child="//@diagram/@childNodes.45"/>
+ <childReferences
+ parent="//@diagram/@childNodes.42"
+ child="//@diagram/@childNodes.48"/>
+ <childReferences
+ parent="//@diagram/@childNodes.41"
+ child="//@diagram/@childNodes.42"/>
+ <childReferences
+ parent="//@diagram/@childNodes.41"
+ child="//@diagram/@childNodes.54"/>
+ <childReferences
+ parent="//@diagram/@childNodes.41"
+ child="//@diagram/@childNodes.55"/>
+ <childReferences
+ parent="//@diagram/@childNodes.41"
+ child="//@diagram/@childNodes.56"/>
+ <childReferences
+ parent="//@diagram/@childNodes.41"
+ child="//@diagram/@childNodes.57"/>
+ <childReferences
+ parent="//@diagram/@childNodes.41"
+ child="//@diagram/@childNodes.58"/>
+ <childReferences
+ parent="//@diagram/@childNodes.41"
+ child="//@diagram/@childNodes.59"/>
+ <childReferences
+ parent="//@diagram/@childNodes.41"
+ child="//@diagram/@childNodes.65"/>
+ <childReferences
+ parent="//@diagram/@childNodes.41"
+ child="//@diagram/@childNodes.67"/>
+ <childReferences
+ parent="//@diagram/@childNodes.36"
+ child="//@diagram/@childNodes.41"/>
+ <childReferences
+ parent="//@diagram/@childNodes.36"
+ child="//@diagram/@childNodes.43"/>
+ <childReferences
+ parent="//@diagram/@childNodes.36"
+ child="//@diagram/@childNodes.45"/>
+ <childReferences
+ parent="//@diagram/@childNodes.36"
+ child="//@diagram/@childNodes.48"/>
+ <childReferences
+ parent="//@diagram/@childNodes.35"
+ child="//@diagram/@childNodes.36"/>
+ <childReferences
+ parent="//@diagram/@childNodes.35"
+ child="//@diagram/@childNodes.37"/>
+ <childReferences
+ parent="//@diagram/@childNodes.35"
+ child="//@diagram/@childNodes.38"/>
+ <childReferences
+ parent="//@diagram/@childNodes.35"
+ child="//@diagram/@childNodes.39"/>
+ <childReferences
+ parent="//@diagram/@childNodes.35"
+ child="//@diagram/@childNodes.40"/>
+ <childReferences
+ parent="//@diagram/@childNodes.35"
+ child="//@diagram/@childNodes.41"/>
+ <childReferences
+ parent="//@diagram/@childNodes.35"
+ child="//@diagram/@childNodes.43"/>
+ <childReferences
+ parent="//@diagram/@childNodes.35"
+ child="//@diagram/@childNodes.45"/>
+ <childReferences
+ parent="//@diagram/@childNodes.35"
+ child="//@diagram/@childNodes.48"/>
+ <childReferences
+ parent="//@diagram/@childNodes.29"
+ child="//@diagram/@childNodes.35"/>
+ <childReferences
+ parent="//@diagram/@childNodes.29"
+ child="//@diagram/@childNodes.46"/>
+ <childReferences
+ parent="//@diagram/@childNodes.29"
+ child="//@diagram/@childNodes.47"/>
+ <childReferences
+ parent="//@diagram/@childNodes.29"
+ child="//@diagram/@childNodes.49"/>
+ <childReferences
+ parent="//@diagram/@childNodes.29"
+ child="//@diagram/@childNodes.50"/>
+ <childReferences
+ parent="//@diagram/@childNodes.29"
+ child="//@diagram/@childNodes.51"/>
+ <childReferences
+ parent="//@diagram/@childNodes.29"
+ child="//@diagram/@childNodes.52"/>
+ <childReferences
+ parent="//@diagram/@childNodes.29"
+ child="//@diagram/@childNodes.53"/>
+ <childReferences
+ parent="//@diagram/@childNodes.29"
+ child="//@diagram/@childNodes.66"/>
+ <childReferences
+ parent="//@diagram/@childNodes.29"
+ child="//@diagram/@childNodes.68"/>
+ <childReferences
+ parent="//@diagram/@childNodes.29"
+ child="//@diagram/@childNodes.71"/>
+ <childReferences
+ parent="//@diagram/@childNodes.29"
+ child="//@diagram/@childNodes.72"/>
+ <childReferences
+ parent="//@diagram/@childNodes.29"
+ child="//@diagram/@childNodes.74"/>
+ <childReferences
+ parent="//@diagram/@childNodes.29"
+ child="//@diagram/@childNodes.75"/>
+ <childReferences
+ parent="//@diagram/@childNodes.29"
+ child="//@diagram/@childNodes.76"/>
+ <childReferences
+ parent="//@diagram/@childNodes.29"
+ child="//@diagram/@childNodes.77"/>
+ <childReferences
+ parent="//@diagram/@childNodes.28"
+ child="//@diagram/@childNodes.29"/>
+ <childReferences
+ parent="//@diagram/@childNodes.28"
+ child="//@diagram/@childNodes.33"/>
+ <childReferences
+ parent="//@diagram/@childNodes.25"
+ child="//@diagram/@childNodes.28"/>
+ <childReferences
+ parent="//@diagram/@childNodes.25"
+ child="//@diagram/@childNodes.44"/>
+ <childReferences
+ parent="//@diagram/@childNodes.25"
+ child="//@diagram/@childNodes.60"/>
+ <childReferences
+ parent="//@diagram/@childNodes.25"
+ child="//@diagram/@childNodes.61"/>
+ <childReferences
+ parent="//@diagram/@childNodes.25"
+ child="//@diagram/@childNodes.62"/>
+ <childReferences
+ parent="//@diagram/@childNodes.25"
+ child="//@diagram/@childNodes.63"/>
+ <childReferences
+ parent="//@diagram/@childNodes.25"
+ child="//@diagram/@childNodes.64"/>
+ <childReferences
+ parent="//@diagram/@childNodes.25"
+ child="//@diagram/@childNodes.69"/>
+ <childReferences
+ parent="//@diagram/@childNodes.25"
+ child="//@diagram/@childNodes.70"/>
+ <childReferences
+ parent="//@diagram/@childNodes.25"
+ child="//@diagram/@childNodes.73"/>
+ <childReferences
+ parent="//@diagram/@childNodes.24"
+ child="//@diagram/@childNodes.25"/>
+ <childReferences
+ parent="//@diagram/@childNodes.24"
+ child="//@diagram/@childNodes.29"/>
+ <childReferences
+ parent="//@diagram/@childNodes.24"
+ child="//@diagram/@childNodes.33"/>
+ <childReferences
+ parent="//@diagram/@childNodes.21"
+ child="//@diagram/@childNodes.24"/>
+ <childReferences
+ parent="//@diagram/@childNodes.21"
+ child="//@diagram/@childNodes.42"/>
+ <childReferences
+ parent="//@diagram/@childNodes.21"
+ child="//@diagram/@childNodes.54"/>
+ <childReferences
+ parent="//@diagram/@childNodes.21"
+ child="//@diagram/@childNodes.55"/>
+ <childReferences
+ parent="//@diagram/@childNodes.21"
+ child="//@diagram/@childNodes.56"/>
+ <childReferences
+ parent="//@diagram/@childNodes.21"
+ child="//@diagram/@childNodes.57"/>
+ <childReferences
+ parent="//@diagram/@childNodes.21"
+ child="//@diagram/@childNodes.58"/>
+ <childReferences
+ parent="//@diagram/@childNodes.21"
+ child="//@diagram/@childNodes.59"/>
+ <childReferences
+ parent="//@diagram/@childNodes.21"
+ child="//@diagram/@childNodes.65"/>
+ <childReferences
+ parent="//@diagram/@childNodes.21"
+ child="//@diagram/@childNodes.67"/>
+ <childReferences
+ parent="//@diagram/@childNodes.6"
+ child="//@diagram/@childNodes.21"/>
+ <childReferences
+ parent="//@diagram/@childNodes.6"
+ child="//@diagram/@childNodes.25"/>
+ <childReferences
+ parent="//@diagram/@childNodes.6"
+ child="//@diagram/@childNodes.29"/>
+ <childReferences
+ parent="//@diagram/@childNodes.6"
+ child="//@diagram/@childNodes.33"/>
+ <childReferences
+ parent="//@diagram/@childNodes.3"
+ child="//@diagram/@childNodes.6"/>
+ <childReferences
+ parent="//@diagram/@childNodes.3"
+ child="//@diagram/@childNodes.36"/>
+ <childReferences
+ parent="//@diagram/@childNodes.3"
+ child="//@diagram/@childNodes.37"/>
+ <childReferences
+ parent="//@diagram/@childNodes.3"
+ child="//@diagram/@childNodes.38"/>
+ <childReferences
+ parent="//@diagram/@childNodes.3"
+ child="//@diagram/@childNodes.39"/>
+ <childReferences
+ parent="//@diagram/@childNodes.3"
+ child="//@diagram/@childNodes.40"/>
+ <childReferences
+ parent="//@diagram/@childNodes.3"
+ child="//@diagram/@childNodes.41"/>
+ <childReferences
+ parent="//@diagram/@childNodes.3"
+ child="//@diagram/@childNodes.43"/>
+ <childReferences
+ parent="//@diagram/@childNodes.3"
+ child="//@diagram/@childNodes.45"/>
+ <childReferences
+ parent="//@diagram/@childNodes.3"
+ child="//@diagram/@childNodes.48"/>
+ <childReferences
+ parent="//@diagram/@childNodes.2"
+ child="//@diagram/@childNodes.3"/>
+ <childReferences
+ parent="//@diagram/@childNodes.2"
+ child="//@diagram/@childNodes.7"/>
+ <childReferences
+ parent="//@diagram/@childNodes.2"
+ child="//@diagram/@childNodes.11"/>
+ <childReferences
+ parent="//@diagram/@childNodes.2"
+ child="//@diagram/@childNodes.15"/>
+ <childReferences
+ parent="//@diagram/@childNodes.2"
+ child="//@diagram/@childNodes.18"/>
+ <childReferences
+ parent="//@diagram/@childNodes.2"
+ child="//@diagram/@childNodes.21"/>
+ <childReferences
+ parent="//@diagram/@childNodes.2"
+ child="//@diagram/@childNodes.25"/>
+ <childReferences
+ parent="//@diagram/@childNodes.2"
+ child="//@diagram/@childNodes.29"/>
+ <childReferences
+ parent="//@diagram/@childNodes.2"
+ child="//@diagram/@childNodes.33"/>
+ <childReferences
+ parent="//@diagram/@topLevelNodes.1"
+ child="//@diagram/@childNodes.2"/>
+ <childReferences
+ parent="//@diagram/@topLevelNodes.1"
+ child="//@diagram/@childNodes.3"/>
+ <childReferences
+ parent="//@diagram/@topLevelNodes.1"
+ child="//@diagram/@childNodes.7"/>
+ <childReferences
+ parent="//@diagram/@topLevelNodes.1"
+ child="//@diagram/@childNodes.11"/>
+ <childReferences
+ parent="//@diagram/@topLevelNodes.1"
+ child="//@diagram/@childNodes.15"/>
+ <childReferences
+ parent="//@diagram/@topLevelNodes.1"
+ child="//@diagram/@childNodes.18"/>
+ <childReferences
+ parent="//@diagram/@topLevelNodes.1"
+ child="//@diagram/@childNodes.21"/>
+ <childReferences
+ parent="//@diagram/@topLevelNodes.1"
+ child="//@diagram/@childNodes.25"/>
+ <childReferences
+ parent="//@diagram/@topLevelNodes.1"
+ child="//@diagram/@childNodes.29"/>
+ <childReferences
+ parent="//@diagram/@topLevelNodes.1"
+ child="//@diagram/@childNodes.33"/>
+ <childReferences
+ parent="//@diagram"
+ child="//@diagram/@topLevelNodes.1"/>
+ <childReferences
+ parent="//@diagram/@topLevelNodes.2"
+ child="//@diagram/@childNodes.4"/>
+ <childReferences
+ parent="//@diagram/@topLevelNodes.2"
+ child="//@diagram/@childNodes.5"/>
+ <childReferences
+ parent="//@diagram/@topLevelNodes.2"
+ child="//@diagram/@childNodes.6"/>
+ <childReferences
+ parent="//@diagram/@topLevelNodes.2"
+ child="//@diagram/@childNodes.36"/>
+ <childReferences
+ parent="//@diagram/@topLevelNodes.2"
+ child="//@diagram/@childNodes.37"/>
+ <childReferences
+ parent="//@diagram/@topLevelNodes.2"
+ child="//@diagram/@childNodes.38"/>
+ <childReferences
+ parent="//@diagram/@topLevelNodes.2"
+ child="//@diagram/@childNodes.39"/>
+ <childReferences
+ parent="//@diagram/@topLevelNodes.2"
+ child="//@diagram/@childNodes.40"/>
+ <childReferences
+ parent="//@diagram/@topLevelNodes.2"
+ child="//@diagram/@childNodes.41"/>
+ <childReferences
+ parent="//@diagram/@topLevelNodes.2"
+ child="//@diagram/@childNodes.43"/>
+ <childReferences
+ parent="//@diagram/@topLevelNodes.2"
+ child="//@diagram/@childNodes.45"/>
+ <childReferences
+ parent="//@diagram/@topLevelNodes.2"
+ child="//@diagram/@childNodes.48"/>
+ <childReferences
+ parent="//@diagram"
+ child="//@diagram/@topLevelNodes.2"/>
+ <childReferences
+ parent="//@diagram/@topLevelNodes.3"
+ child="//@diagram/@childNodes.22"/>
+ <childReferences
+ parent="//@diagram/@topLevelNodes.3"
+ child="//@diagram/@childNodes.23"/>
+ <childReferences
+ parent="//@diagram/@topLevelNodes.3"
+ child="//@diagram/@childNodes.24"/>
+ <childReferences
+ parent="//@diagram/@topLevelNodes.3"
+ child="//@diagram/@childNodes.42"/>
+ <childReferences
+ parent="//@diagram/@topLevelNodes.3"
+ child="//@diagram/@childNodes.54"/>
+ <childReferences
+ parent="//@diagram/@topLevelNodes.3"
+ child="//@diagram/@childNodes.55"/>
+ <childReferences
+ parent="//@diagram/@topLevelNodes.3"
+ child="//@diagram/@childNodes.56"/>
+ <childReferences
+ parent="//@diagram/@topLevelNodes.3"
+ child="//@diagram/@childNodes.57"/>
+ <childReferences
+ parent="//@diagram/@topLevelNodes.3"
+ child="//@diagram/@childNodes.58"/>
+ <childReferences
+ parent="//@diagram/@topLevelNodes.3"
+ child="//@diagram/@childNodes.59"/>
+ <childReferences
+ parent="//@diagram/@topLevelNodes.3"
+ child="//@diagram/@childNodes.65"/>
+ <childReferences
+ parent="//@diagram/@topLevelNodes.3"
+ child="//@diagram/@childNodes.67"/>
+ <childReferences
+ parent="//@diagram"
+ child="//@diagram/@topLevelNodes.3"/>
+ <childReferences
+ parent="//@diagram/@topLevelNodes.4"
+ child="//@diagram/@childNodes.26"/>
+ <childReferences
+ parent="//@diagram/@topLevelNodes.4"
+ child="//@diagram/@childNodes.27"/>
+ <childReferences
+ parent="//@diagram/@topLevelNodes.4"
+ child="//@diagram/@childNodes.28"/>
+ <childReferences
+ parent="//@diagram/@topLevelNodes.4"
+ child="//@diagram/@childNodes.44"/>
+ <childReferences
+ parent="//@diagram/@topLevelNodes.4"
+ child="//@diagram/@childNodes.60"/>
+ <childReferences
+ parent="//@diagram/@topLevelNodes.4"
+ child="//@diagram/@childNodes.61"/>
+ <childReferences
+ parent="//@diagram/@topLevelNodes.4"
+ child="//@diagram/@childNodes.62"/>
+ <childReferences
+ parent="//@diagram/@topLevelNodes.4"
+ child="//@diagram/@childNodes.63"/>
+ <childReferences
+ parent="//@diagram/@topLevelNodes.4"
+ child="//@diagram/@childNodes.64"/>
+ <childReferences
+ parent="//@diagram/@topLevelNodes.4"
+ child="//@diagram/@childNodes.69"/>
+ <childReferences
+ parent="//@diagram/@topLevelNodes.4"
+ child="//@diagram/@childNodes.70"/>
+ <childReferences
+ parent="//@diagram/@topLevelNodes.4"
+ child="//@diagram/@childNodes.73"/>
+ <childReferences
+ parent="//@diagram"
+ child="//@diagram/@topLevelNodes.4"/>
+ <childReferences
+ parent="//@diagram/@topLevelNodes.5"
+ child="//@diagram/@childNodes.30"/>
+ <childReferences
+ parent="//@diagram/@topLevelNodes.5"
+ child="//@diagram/@childNodes.31"/>
+ <childReferences
+ parent="//@diagram/@topLevelNodes.5"
+ child="//@diagram/@childNodes.32"/>
+ <childReferences
+ parent="//@diagram/@topLevelNodes.5"
+ child="//@diagram/@childNodes.35"/>
+ <childReferences
+ parent="//@diagram/@topLevelNodes.5"
+ child="//@diagram/@childNodes.46"/>
+ <childReferences
+ parent="//@diagram/@topLevelNodes.5"
+ child="//@diagram/@childNodes.47"/>
+ <childReferences
+ parent="//@diagram/@topLevelNodes.5"
+ child="//@diagram/@childNodes.49"/>
+ <childReferences
+ parent="//@diagram/@topLevelNodes.5"
+ child="//@diagram/@childNodes.50"/>
+ <childReferences
+ parent="//@diagram/@topLevelNodes.5"
+ child="//@diagram/@childNodes.51"/>
+ <childReferences
+ parent="//@diagram/@topLevelNodes.5"
+ child="//@diagram/@childNodes.52"/>
+ <childReferences
+ parent="//@diagram/@topLevelNodes.5"
+ child="//@diagram/@childNodes.53"/>
+ <childReferences
+ parent="//@diagram/@topLevelNodes.5"
+ child="//@diagram/@childNodes.66"/>
+ <childReferences
+ parent="//@diagram/@topLevelNodes.5"
+ child="//@diagram/@childNodes.68"/>
+ <childReferences
+ parent="//@diagram/@topLevelNodes.5"
+ child="//@diagram/@childNodes.71"/>
+ <childReferences
+ parent="//@diagram/@topLevelNodes.5"
+ child="//@diagram/@childNodes.72"/>
+ <childReferences
+ parent="//@diagram/@topLevelNodes.5"
+ child="//@diagram/@childNodes.74"/>
+ <childReferences
+ parent="//@diagram/@topLevelNodes.5"
+ child="//@diagram/@childNodes.75"/>
+ <childReferences
+ parent="//@diagram/@topLevelNodes.5"
+ child="//@diagram/@childNodes.76"/>
+ <childReferences
+ parent="//@diagram/@topLevelNodes.5"
+ child="//@diagram/@childNodes.77"/>
+ <childReferences
+ parent="//@diagram"
+ child="//@diagram/@topLevelNodes.5"/>
+ <childReferences
+ parent="//@diagram/@topLevelNodes.6"
+ child="//@diagram/@childNodes.34"/>
+ <childReferences
+ parent="//@diagram"
+ child="//@diagram/@topLevelNodes.6"/>
+ <childReferences
+ parent="//@diagram"
+ child="//@diagram/@links.0"
+ groupName="links"
+ groupIcon="icons/linksNavigatorGroup.gif"/>
+ <childReferences
+ parent="//@diagram/@links.0"
+ child="//@diagram/@topLevelNodes.0"
+ referenceType="out_target"
+ groupName="target"
+ groupIcon="icons/linkTargetNavigatorGroup.gif"/>
+ <childReferences
+ parent="//@diagram/@topLevelNodes.0"
+ child="//@diagram/@links.0"
+ referenceType="in_source"
+ groupName="incoming links"
+ groupIcon="icons/incomingLinksNavigatorGroup.gif"/>
+ <childReferences
+ parent="//@diagram/@links.0"
+ child="//@diagram/@childNodes.0"
+ referenceType="out_target"
+ groupName="target"
+ groupIcon="icons/linkTargetNavigatorGroup.gif"/>
+ <childReferences
+ parent="//@diagram/@childNodes.0"
+ child="//@diagram/@links.0"
+ referenceType="in_source"
+ groupName="incoming links"
+ groupIcon="icons/incomingLinksNavigatorGroup.gif"/>
+ <childReferences
+ parent="//@diagram/@links.0"
+ child="//@diagram/@childNodes.4"
+ referenceType="out_target"
+ groupName="target"
+ groupIcon="icons/linkTargetNavigatorGroup.gif"/>
+ <childReferences
+ parent="//@diagram/@childNodes.4"
+ child="//@diagram/@links.0"
+ referenceType="in_source"
+ groupName="incoming links"
+ groupIcon="icons/incomingLinksNavigatorGroup.gif"/>
+ <childReferences
+ parent="//@diagram/@links.0"
+ child="//@diagram/@childNodes.8"
+ referenceType="out_target"
+ groupName="target"
+ groupIcon="icons/linkTargetNavigatorGroup.gif"/>
+ <childReferences
+ parent="//@diagram/@childNodes.8"
+ child="//@diagram/@links.0"
+ referenceType="in_source"
+ groupName="incoming links"
+ groupIcon="icons/incomingLinksNavigatorGroup.gif"/>
+ <childReferences
+ parent="//@diagram/@links.0"
+ child="//@diagram/@childNodes.12"
+ referenceType="out_target"
+ groupName="target"
+ groupIcon="icons/linkTargetNavigatorGroup.gif"/>
+ <childReferences
+ parent="//@diagram/@childNodes.12"
+ child="//@diagram/@links.0"
+ referenceType="in_source"
+ groupName="incoming links"
+ groupIcon="icons/incomingLinksNavigatorGroup.gif"/>
+ <childReferences
+ parent="//@diagram/@links.0"
+ child="//@diagram/@childNodes.22"
+ referenceType="out_target"
+ groupName="target"
+ groupIcon="icons/linkTargetNavigatorGroup.gif"/>
+ <childReferences
+ parent="//@diagram/@childNodes.22"
+ child="//@diagram/@links.0"
+ referenceType="in_source"
+ groupName="incoming links"
+ groupIcon="icons/incomingLinksNavigatorGroup.gif"/>
+ <childReferences
+ parent="//@diagram/@links.0"
+ child="//@diagram/@childNodes.26"
+ referenceType="out_target"
+ groupName="target"
+ groupIcon="icons/linkTargetNavigatorGroup.gif"/>
+ <childReferences
+ parent="//@diagram/@childNodes.26"
+ child="//@diagram/@links.0"
+ referenceType="in_source"
+ groupName="incoming links"
+ groupIcon="icons/incomingLinksNavigatorGroup.gif"/>
+ <childReferences
+ parent="//@diagram/@links.0"
+ child="//@diagram/@childNodes.30"
+ referenceType="out_target"
+ groupName="target"
+ groupIcon="icons/linkTargetNavigatorGroup.gif"/>
+ <childReferences
+ parent="//@diagram/@childNodes.30"
+ child="//@diagram/@links.0"
+ referenceType="in_source"
+ groupName="incoming links"
+ groupIcon="icons/incomingLinksNavigatorGroup.gif"/>
+ <childReferences
+ parent="//@diagram/@links.0"
+ child="//@diagram/@childNodes.34"
+ referenceType="out_target"
+ groupName="target"
+ groupIcon="icons/linkTargetNavigatorGroup.gif"/>
+ <childReferences
+ parent="//@diagram/@childNodes.34"
+ child="//@diagram/@links.0"
+ referenceType="in_source"
+ groupName="incoming links"
+ groupIcon="icons/incomingLinksNavigatorGroup.gif"/>
+ <childReferences
+ parent="//@diagram/@links.0"
+ child="//@diagram/@topLevelNodes.0"
+ referenceType="in_source"
+ groupName="source"
+ groupIcon="icons/linkSourceNavigatorGroup.gif"/>
+ <childReferences
+ parent="//@diagram/@topLevelNodes.0"
+ child="//@diagram/@links.0"
+ referenceType="out_target"
+ groupName="outgoing links"
+ groupIcon="icons/outgoingLinksNavigatorGroup.gif"/>
+ <childReferences
+ parent="//@diagram/@links.0"
+ child="//@diagram/@childNodes.0"
+ referenceType="in_source"
+ groupName="source"
+ groupIcon="icons/linkSourceNavigatorGroup.gif"/>
+ <childReferences
+ parent="//@diagram/@childNodes.0"
+ child="//@diagram/@links.0"
+ referenceType="out_target"
+ groupName="outgoing links"
+ groupIcon="icons/outgoingLinksNavigatorGroup.gif"/>
+ <childReferences
+ parent="//@diagram/@links.0"
+ child="//@diagram/@childNodes.4"
+ referenceType="in_source"
+ groupName="source"
+ groupIcon="icons/linkSourceNavigatorGroup.gif"/>
+ <childReferences
+ parent="//@diagram/@childNodes.4"
+ child="//@diagram/@links.0"
+ referenceType="out_target"
+ groupName="outgoing links"
+ groupIcon="icons/outgoingLinksNavigatorGroup.gif"/>
+ <childReferences
+ parent="//@diagram/@links.0"
+ child="//@diagram/@childNodes.8"
+ referenceType="in_source"
+ groupName="source"
+ groupIcon="icons/linkSourceNavigatorGroup.gif"/>
+ <childReferences
+ parent="//@diagram/@childNodes.8"
+ child="//@diagram/@links.0"
+ referenceType="out_target"
+ groupName="outgoing links"
+ groupIcon="icons/outgoingLinksNavigatorGroup.gif"/>
+ <childReferences
+ parent="//@diagram/@links.0"
+ child="//@diagram/@childNodes.10"
+ referenceType="in_source"
+ groupName="source"
+ groupIcon="icons/linkSourceNavigatorGroup.gif"/>
+ <childReferences
+ parent="//@diagram/@childNodes.10"
+ child="//@diagram/@links.0"
+ referenceType="out_target"
+ groupName="outgoing links"
+ groupIcon="icons/outgoingLinksNavigatorGroup.gif"/>
+ <childReferences
+ parent="//@diagram/@links.0"
+ child="//@diagram/@childNodes.12"
+ referenceType="in_source"
+ groupName="source"
+ groupIcon="icons/linkSourceNavigatorGroup.gif"/>
+ <childReferences
+ parent="//@diagram/@childNodes.12"
+ child="//@diagram/@links.0"
+ referenceType="out_target"
+ groupName="outgoing links"
+ groupIcon="icons/outgoingLinksNavigatorGroup.gif"/>
+ <childReferences
+ parent="//@diagram/@links.0"
+ child="//@diagram/@childNodes.17"
+ referenceType="in_source"
+ groupName="source"
+ groupIcon="icons/linkSourceNavigatorGroup.gif"/>
+ <childReferences
+ parent="//@diagram/@childNodes.17"
+ child="//@diagram/@links.0"
+ referenceType="out_target"
+ groupName="outgoing links"
+ groupIcon="icons/outgoingLinksNavigatorGroup.gif"/>
+ <childReferences
+ parent="//@diagram/@links.0"
+ child="//@diagram/@childNodes.22"
+ referenceType="in_source"
+ groupName="source"
+ groupIcon="icons/linkSourceNavigatorGroup.gif"/>
+ <childReferences
+ parent="//@diagram/@childNodes.22"
+ child="//@diagram/@links.0"
+ referenceType="out_target"
+ groupName="outgoing links"
+ groupIcon="icons/outgoingLinksNavigatorGroup.gif"/>
+ <childReferences
+ parent="//@diagram/@links.0"
+ child="//@diagram/@childNodes.26"
+ referenceType="in_source"
+ groupName="source"
+ groupIcon="icons/linkSourceNavigatorGroup.gif"/>
+ <childReferences
+ parent="//@diagram/@childNodes.26"
+ child="//@diagram/@links.0"
+ referenceType="out_target"
+ groupName="outgoing links"
+ groupIcon="icons/outgoingLinksNavigatorGroup.gif"/>
+ <childReferences
+ parent="//@diagram/@links.0"
+ child="//@diagram/@childNodes.30"
+ referenceType="in_source"
+ groupName="source"
+ groupIcon="icons/linkSourceNavigatorGroup.gif"/>
+ <childReferences
+ parent="//@diagram/@childNodes.30"
+ child="//@diagram/@links.0"
+ referenceType="out_target"
+ groupName="outgoing links"
+ groupIcon="icons/outgoingLinksNavigatorGroup.gif"/>
+ <childReferences
+ parent="//@diagram/@links.0"
+ child="//@diagram/@childNodes.34"
+ referenceType="in_source"
+ groupName="source"
+ groupIcon="icons/linkSourceNavigatorGroup.gif"/>
+ <childReferences
+ parent="//@diagram/@childNodes.34"
+ child="//@diagram/@links.0"
+ referenceType="out_target"
+ groupName="outgoing links"
+ groupIcon="icons/outgoingLinksNavigatorGroup.gif"/>
+ <childReferences
+ parent="//@diagram"
+ child="//@diagram/@links.1"
+ groupName="links"
+ groupIcon="icons/linksNavigatorGroup.gif"/>
+ <childReferences
+ parent="//@diagram/@links.1"
+ child="//@diagram/@childNodes.1"
+ referenceType="out_target"
+ groupName="target"
+ groupIcon="icons/linkTargetNavigatorGroup.gif"/>
+ <childReferences
+ parent="//@diagram/@childNodes.1"
+ child="//@diagram/@links.1"
+ referenceType="in_source"
+ groupName="incoming links"
+ groupIcon="icons/incomingLinksNavigatorGroup.gif"/>
+ <childReferences
+ parent="//@diagram/@links.1"
+ child="//@diagram/@childNodes.5"
+ referenceType="out_target"
+ groupName="target"
+ groupIcon="icons/linkTargetNavigatorGroup.gif"/>
+ <childReferences
+ parent="//@diagram/@childNodes.5"
+ child="//@diagram/@links.1"
+ referenceType="in_source"
+ groupName="incoming links"
+ groupIcon="icons/incomingLinksNavigatorGroup.gif"/>
+ <childReferences
+ parent="//@diagram/@links.1"
+ child="//@diagram/@childNodes.9"
+ referenceType="out_target"
+ groupName="target"
+ groupIcon="icons/linkTargetNavigatorGroup.gif"/>
+ <childReferences
+ parent="//@diagram/@childNodes.9"
+ child="//@diagram/@links.1"
+ referenceType="in_source"
+ groupName="incoming links"
+ groupIcon="icons/incomingLinksNavigatorGroup.gif"/>
+ <childReferences
+ parent="//@diagram/@links.1"
+ child="//@diagram/@childNodes.13"
+ referenceType="out_target"
+ groupName="target"
+ groupIcon="icons/linkTargetNavigatorGroup.gif"/>
+ <childReferences
+ parent="//@diagram/@childNodes.13"
+ child="//@diagram/@links.1"
+ referenceType="in_source"
+ groupName="incoming links"
+ groupIcon="icons/incomingLinksNavigatorGroup.gif"/>
+ <childReferences
+ parent="//@diagram/@links.1"
+ child="//@diagram/@childNodes.16"
+ referenceType="out_target"
+ groupName="target"
+ groupIcon="icons/linkTargetNavigatorGroup.gif"/>
+ <childReferences
+ parent="//@diagram/@childNodes.16"
+ child="//@diagram/@links.1"
+ referenceType="in_source"
+ groupName="incoming links"
+ groupIcon="icons/incomingLinksNavigatorGroup.gif"/>
+ <childReferences
+ parent="//@diagram/@links.1"
+ child="//@diagram/@childNodes.19"
+ referenceType="out_target"
+ groupName="target"
+ groupIcon="icons/linkTargetNavigatorGroup.gif"/>
+ <childReferences
+ parent="//@diagram/@childNodes.19"
+ child="//@diagram/@links.1"
+ referenceType="in_source"
+ groupName="incoming links"
+ groupIcon="icons/incomingLinksNavigatorGroup.gif"/>
+ <childReferences
+ parent="//@diagram/@links.1"
+ child="//@diagram/@childNodes.23"
+ referenceType="out_target"
+ groupName="target"
+ groupIcon="icons/linkTargetNavigatorGroup.gif"/>
+ <childReferences
+ parent="//@diagram/@childNodes.23"
+ child="//@diagram/@links.1"
+ referenceType="in_source"
+ groupName="incoming links"
+ groupIcon="icons/incomingLinksNavigatorGroup.gif"/>
+ <childReferences
+ parent="//@diagram/@links.1"
+ child="//@diagram/@childNodes.27"
+ referenceType="out_target"
+ groupName="target"
+ groupIcon="icons/linkTargetNavigatorGroup.gif"/>
+ <childReferences
+ parent="//@diagram/@childNodes.27"
+ child="//@diagram/@links.1"
+ referenceType="in_source"
+ groupName="incoming links"
+ groupIcon="icons/incomingLinksNavigatorGroup.gif"/>
+ <childReferences
+ parent="//@diagram/@links.1"
+ child="//@diagram/@childNodes.31"
+ referenceType="out_target"
+ groupName="target"
+ groupIcon="icons/linkTargetNavigatorGroup.gif"/>
+ <childReferences
+ parent="//@diagram/@childNodes.31"
+ child="//@diagram/@links.1"
+ referenceType="in_source"
+ groupName="incoming links"
+ groupIcon="icons/incomingLinksNavigatorGroup.gif"/>
+ <childReferences
+ parent="//@diagram/@links.1"
+ child="//@diagram/@childNodes.1"
+ referenceType="in_source"
+ groupName="source"
+ groupIcon="icons/linkSourceNavigatorGroup.gif"/>
+ <childReferences
+ parent="//@diagram/@childNodes.1"
+ child="//@diagram/@links.1"
+ referenceType="out_target"
+ groupName="outgoing links"
+ groupIcon="icons/outgoingLinksNavigatorGroup.gif"/>
+ <childReferences
+ parent="//@diagram/@links.1"
+ child="//@diagram/@childNodes.5"
+ referenceType="in_source"
+ groupName="source"
+ groupIcon="icons/linkSourceNavigatorGroup.gif"/>
+ <childReferences
+ parent="//@diagram/@childNodes.5"
+ child="//@diagram/@links.1"
+ referenceType="out_target"
+ groupName="outgoing links"
+ groupIcon="icons/outgoingLinksNavigatorGroup.gif"/>
+ <childReferences
+ parent="//@diagram/@links.1"
+ child="//@diagram/@childNodes.9"
+ referenceType="in_source"
+ groupName="source"
+ groupIcon="icons/linkSourceNavigatorGroup.gif"/>
+ <childReferences
+ parent="//@diagram/@childNodes.9"
+ child="//@diagram/@links.1"
+ referenceType="out_target"
+ groupName="outgoing links"
+ groupIcon="icons/outgoingLinksNavigatorGroup.gif"/>
+ <childReferences
+ parent="//@diagram/@links.1"
+ child="//@diagram/@childNodes.13"
+ referenceType="in_source"
+ groupName="source"
+ groupIcon="icons/linkSourceNavigatorGroup.gif"/>
+ <childReferences
+ parent="//@diagram/@childNodes.13"
+ child="//@diagram/@links.1"
+ referenceType="out_target"
+ groupName="outgoing links"
+ groupIcon="icons/outgoingLinksNavigatorGroup.gif"/>
+ <childReferences
+ parent="//@diagram/@links.1"
+ child="//@diagram/@childNodes.14"
+ referenceType="in_source"
+ groupName="source"
+ groupIcon="icons/linkSourceNavigatorGroup.gif"/>
+ <childReferences
+ parent="//@diagram/@childNodes.14"
+ child="//@diagram/@links.1"
+ referenceType="out_target"
+ groupName="outgoing links"
+ groupIcon="icons/outgoingLinksNavigatorGroup.gif"/>
+ <childReferences
+ parent="//@diagram/@links.1"
+ child="//@diagram/@childNodes.16"
+ referenceType="in_source"
+ groupName="source"
+ groupIcon="icons/linkSourceNavigatorGroup.gif"/>
+ <childReferences
+ parent="//@diagram/@childNodes.16"
+ child="//@diagram/@links.1"
+ referenceType="out_target"
+ groupName="outgoing links"
+ groupIcon="icons/outgoingLinksNavigatorGroup.gif"/>
+ <childReferences
+ parent="//@diagram/@links.1"
+ child="//@diagram/@childNodes.19"
+ referenceType="in_source"
+ groupName="source"
+ groupIcon="icons/linkSourceNavigatorGroup.gif"/>
+ <childReferences
+ parent="//@diagram/@childNodes.19"
+ child="//@diagram/@links.1"
+ referenceType="out_target"
+ groupName="outgoing links"
+ groupIcon="icons/outgoingLinksNavigatorGroup.gif"/>
+ <childReferences
+ parent="//@diagram/@links.1"
+ child="//@diagram/@childNodes.20"
+ referenceType="in_source"
+ groupName="source"
+ groupIcon="icons/linkSourceNavigatorGroup.gif"/>
+ <childReferences
+ parent="//@diagram/@childNodes.20"
+ child="//@diagram/@links.1"
+ referenceType="out_target"
+ groupName="outgoing links"
+ groupIcon="icons/outgoingLinksNavigatorGroup.gif"/>
+ <childReferences
+ parent="//@diagram/@links.1"
+ child="//@diagram/@childNodes.23"
+ referenceType="in_source"
+ groupName="source"
+ groupIcon="icons/linkSourceNavigatorGroup.gif"/>
+ <childReferences
+ parent="//@diagram/@childNodes.23"
+ child="//@diagram/@links.1"
+ referenceType="out_target"
+ groupName="outgoing links"
+ groupIcon="icons/outgoingLinksNavigatorGroup.gif"/>
+ <childReferences
+ parent="//@diagram/@links.1"
+ child="//@diagram/@childNodes.27"
+ referenceType="in_source"
+ groupName="source"
+ groupIcon="icons/linkSourceNavigatorGroup.gif"/>
+ <childReferences
+ parent="//@diagram/@childNodes.27"
+ child="//@diagram/@links.1"
+ referenceType="out_target"
+ groupName="outgoing links"
+ groupIcon="icons/outgoingLinksNavigatorGroup.gif"/>
+ <childReferences
+ parent="//@diagram/@links.1"
+ child="//@diagram/@childNodes.31"
+ referenceType="in_source"
+ groupName="source"
+ groupIcon="icons/linkSourceNavigatorGroup.gif"/>
+ <childReferences
+ parent="//@diagram/@childNodes.31"
+ child="//@diagram/@links.1"
+ referenceType="out_target"
+ groupName="outgoing links"
+ groupIcon="icons/outgoingLinksNavigatorGroup.gif"/>
+ <childReferences
+ parent="//@diagram"
+ child="//@diagram/@links.2"
+ groupName="links"
+ groupIcon="icons/linksNavigatorGroup.gif"/>
+ <childReferences
+ parent="//@diagram/@links.2"
+ child="//@diagram/@topLevelNodes.0"
+ referenceType="out_target"
+ groupName="target"
+ groupIcon="icons/linkTargetNavigatorGroup.gif"/>
+ <childReferences
+ parent="//@diagram/@topLevelNodes.0"
+ child="//@diagram/@links.2"
+ referenceType="in_source"
+ groupName="incoming links"
+ groupIcon="icons/incomingLinksNavigatorGroup.gif"/>
+ <childReferences
+ parent="//@diagram/@links.2"
+ child="//@diagram/@childNodes.0"
+ referenceType="out_target"
+ groupName="target"
+ groupIcon="icons/linkTargetNavigatorGroup.gif"/>
+ <childReferences
+ parent="//@diagram/@childNodes.0"
+ child="//@diagram/@links.2"
+ referenceType="in_source"
+ groupName="incoming links"
+ groupIcon="icons/incomingLinksNavigatorGroup.gif"/>
+ <childReferences
+ parent="//@diagram/@links.2"
+ child="//@diagram/@childNodes.4"
+ referenceType="out_target"
+ groupName="target"
+ groupIcon="icons/linkTargetNavigatorGroup.gif"/>
+ <childReferences
+ parent="//@diagram/@childNodes.4"
+ child="//@diagram/@links.2"
+ referenceType="in_source"
+ groupName="incoming links"
+ groupIcon="icons/incomingLinksNavigatorGroup.gif"/>
+ <childReferences
+ parent="//@diagram/@links.2"
+ child="//@diagram/@childNodes.8"
+ referenceType="out_target"
+ groupName="target"
+ groupIcon="icons/linkTargetNavigatorGroup.gif"/>
+ <childReferences
+ parent="//@diagram/@childNodes.8"
+ child="//@diagram/@links.2"
+ referenceType="in_source"
+ groupName="incoming links"
+ groupIcon="icons/incomingLinksNavigatorGroup.gif"/>
+ <childReferences
+ parent="//@diagram/@links.2"
+ child="//@diagram/@childNodes.12"
+ referenceType="out_target"
+ groupName="target"
+ groupIcon="icons/linkTargetNavigatorGroup.gif"/>
+ <childReferences
+ parent="//@diagram/@childNodes.12"
+ child="//@diagram/@links.2"
+ referenceType="in_source"
+ groupName="incoming links"
+ groupIcon="icons/incomingLinksNavigatorGroup.gif"/>
+ <childReferences
+ parent="//@diagram/@links.2"
+ child="//@diagram/@childNodes.22"
+ referenceType="out_target"
+ groupName="target"
+ groupIcon="icons/linkTargetNavigatorGroup.gif"/>
+ <childReferences
+ parent="//@diagram/@childNodes.22"
+ child="//@diagram/@links.2"
+ referenceType="in_source"
+ groupName="incoming links"
+ groupIcon="icons/incomingLinksNavigatorGroup.gif"/>
+ <childReferences
+ parent="//@diagram/@links.2"
+ child="//@diagram/@childNodes.26"
+ referenceType="out_target"
+ groupName="target"
+ groupIcon="icons/linkTargetNavigatorGroup.gif"/>
+ <childReferences
+ parent="//@diagram/@childNodes.26"
+ child="//@diagram/@links.2"
+ referenceType="in_source"
+ groupName="incoming links"
+ groupIcon="icons/incomingLinksNavigatorGroup.gif"/>
+ <childReferences
+ parent="//@diagram/@links.2"
+ child="//@diagram/@childNodes.30"
+ referenceType="out_target"
+ groupName="target"
+ groupIcon="icons/linkTargetNavigatorGroup.gif"/>
+ <childReferences
+ parent="//@diagram/@childNodes.30"
+ child="//@diagram/@links.2"
+ referenceType="in_source"
+ groupName="incoming links"
+ groupIcon="icons/incomingLinksNavigatorGroup.gif"/>
+ <childReferences
+ parent="//@diagram/@links.2"
+ child="//@diagram/@childNodes.34"
+ referenceType="out_target"
+ groupName="target"
+ groupIcon="icons/linkTargetNavigatorGroup.gif"/>
+ <childReferences
+ parent="//@diagram/@childNodes.34"
+ child="//@diagram/@links.2"
+ referenceType="in_source"
+ groupName="incoming links"
+ groupIcon="icons/incomingLinksNavigatorGroup.gif"/>
+ <childReferences
+ parent="//@diagram/@links.2"
+ child="//@diagram/@childNodes.1"
+ referenceType="in_source"
+ groupName="source"
+ groupIcon="icons/linkSourceNavigatorGroup.gif"/>
+ <childReferences
+ parent="//@diagram/@childNodes.1"
+ child="//@diagram/@links.2"
+ referenceType="out_target"
+ groupName="outgoing links"
+ groupIcon="icons/outgoingLinksNavigatorGroup.gif"/>
+ <childReferences
+ parent="//@diagram/@links.2"
+ child="//@diagram/@childNodes.5"
+ referenceType="in_source"
+ groupName="source"
+ groupIcon="icons/linkSourceNavigatorGroup.gif"/>
+ <childReferences
+ parent="//@diagram/@childNodes.5"
+ child="//@diagram/@links.2"
+ referenceType="out_target"
+ groupName="outgoing links"
+ groupIcon="icons/outgoingLinksNavigatorGroup.gif"/>
+ <childReferences
+ parent="//@diagram/@links.2"
+ child="//@diagram/@childNodes.9"
+ referenceType="in_source"
+ groupName="source"
+ groupIcon="icons/linkSourceNavigatorGroup.gif"/>
+ <childReferences
+ parent="//@diagram/@childNodes.9"
+ child="//@diagram/@links.2"
+ referenceType="out_target"
+ groupName="outgoing links"
+ groupIcon="icons/outgoingLinksNavigatorGroup.gif"/>
+ <childReferences
+ parent="//@diagram/@links.2"
+ child="//@diagram/@childNodes.13"
+ referenceType="in_source"
+ groupName="source"
+ groupIcon="icons/linkSourceNavigatorGroup.gif"/>
+ <childReferences
+ parent="//@diagram/@childNodes.13"
+ child="//@diagram/@links.2"
+ referenceType="out_target"
+ groupName="outgoing links"
+ groupIcon="icons/outgoingLinksNavigatorGroup.gif"/>
+ <childReferences
+ parent="//@diagram/@links.2"
+ child="//@diagram/@childNodes.14"
+ referenceType="in_source"
+ groupName="source"
+ groupIcon="icons/linkSourceNavigatorGroup.gif"/>
+ <childReferences
+ parent="//@diagram/@childNodes.14"
+ child="//@diagram/@links.2"
+ referenceType="out_target"
+ groupName="outgoing links"
+ groupIcon="icons/outgoingLinksNavigatorGroup.gif"/>
+ <childReferences
+ parent="//@diagram/@links.2"
+ child="//@diagram/@childNodes.16"
+ referenceType="in_source"
+ groupName="source"
+ groupIcon="icons/linkSourceNavigatorGroup.gif"/>
+ <childReferences
+ parent="//@diagram/@childNodes.16"
+ child="//@diagram/@links.2"
+ referenceType="out_target"
+ groupName="outgoing links"
+ groupIcon="icons/outgoingLinksNavigatorGroup.gif"/>
+ <childReferences
+ parent="//@diagram/@links.2"
+ child="//@diagram/@childNodes.19"
+ referenceType="in_source"
+ groupName="source"
+ groupIcon="icons/linkSourceNavigatorGroup.gif"/>
+ <childReferences
+ parent="//@diagram/@childNodes.19"
+ child="//@diagram/@links.2"
+ referenceType="out_target"
+ groupName="outgoing links"
+ groupIcon="icons/outgoingLinksNavigatorGroup.gif"/>
+ <childReferences
+ parent="//@diagram/@links.2"
+ child="//@diagram/@childNodes.20"
+ referenceType="in_source"
+ groupName="source"
+ groupIcon="icons/linkSourceNavigatorGroup.gif"/>
+ <childReferences
+ parent="//@diagram/@childNodes.20"
+ child="//@diagram/@links.2"
+ referenceType="out_target"
+ groupName="outgoing links"
+ groupIcon="icons/outgoingLinksNavigatorGroup.gif"/>
+ <childReferences
+ parent="//@diagram/@links.2"
+ child="//@diagram/@childNodes.23"
+ referenceType="in_source"
+ groupName="source"
+ groupIcon="icons/linkSourceNavigatorGroup.gif"/>
+ <childReferences
+ parent="//@diagram/@childNodes.23"
+ child="//@diagram/@links.2"
+ referenceType="out_target"
+ groupName="outgoing links"
+ groupIcon="icons/outgoingLinksNavigatorGroup.gif"/>
+ <childReferences
+ parent="//@diagram/@links.2"
+ child="//@diagram/@childNodes.27"
+ referenceType="in_source"
+ groupName="source"
+ groupIcon="icons/linkSourceNavigatorGroup.gif"/>
+ <childReferences
+ parent="//@diagram/@childNodes.27"
+ child="//@diagram/@links.2"
+ referenceType="out_target"
+ groupName="outgoing links"
+ groupIcon="icons/outgoingLinksNavigatorGroup.gif"/>
+ <childReferences
+ parent="//@diagram/@links.2"
+ child="//@diagram/@childNodes.31"
+ referenceType="in_source"
+ groupName="source"
+ groupIcon="icons/linkSourceNavigatorGroup.gif"/>
+ <childReferences
+ parent="//@diagram/@childNodes.31"
+ child="//@diagram/@links.2"
+ referenceType="out_target"
+ groupName="outgoing links"
+ groupIcon="icons/outgoingLinksNavigatorGroup.gif"/>
+ </navigator>
+ <diagramUpdater/>
+ <propertySheet>
+ <tabs
+ xsi:type="gmfgen:GenStandardPropertyTab"
+ iD="appearance"/>
+ <tabs
+ xsi:type="gmfgen:GenStandardPropertyTab"
+ iD="diagram"/>
+ <tabs
+ xsi:type="gmfgen:GenCustomPropertyTab"
+ iD="domain"
+ label="Core">
+ <filter
+ xsi:type="gmfgen:TypeTabFilter">
+ <types>org.eclipse.gmf.runtime.notation.View</types>
+ <types>org.eclipse.gef.EditPart</types>
+ <generatedTypes>abstractNavigatorItem</generatedTypes>
+ </filter>
+ </tabs>
+ </propertySheet>
+ <domainGenModel
+ href="comrel.genmodel#/"/>
+ <expressionProviders>
+ <providers
+ xsi:type="gmfgen:GenExpressionInterpreter">
+ <expressions
+ xsi:type="gmfgen:GenConstraint"
+ body="self<>oppositeEnd"/>
+ <expressions
+ xsi:type="gmfgen:GenConstraint"
+ body="self<>oppositeEnd"/>
+ <expressions
+ xsi:type="gmfgen:GenConstraint"
+ body="self<>oppositeEnd"/>
+ </providers>
+ </expressionProviders>
+ <labelParsers
+ extensibleViaService="true">
+ <implementations
+ xsi:type="gmfgen:PredefinedParser"
+ uses="//@diagram/@topLevelNodes.0/@labels.0/@modelFacet //@diagram/@childNodes.0/@labels.0/@modelFacet //@diagram/@childNodes.1/@labels.0/@modelFacet //@diagram/@childNodes.4/@labels.0/@modelFacet //@diagram/@childNodes.5/@labels.0/@modelFacet //@diagram/@childNodes.8/@labels.0/@modelFacet //@diagram/@childNodes.9/@labels.0/@modelFacet //@diagram/@childNodes.10/@labels.0/@modelFacet //@diagram/@childNodes.7/@labels.0/@modelFacet //@diagram/@childNodes.12/@labels.0/@modelFacet //@diagram/@childNodes.13/@labels.0/@modelFacet //@diagram/@childNodes.14/@labels.0/@modelFacet //@diagram/@childNodes.11/@labels.0/@modelFacet //@diagram/@childNodes.16/@labels.0/@modelFacet //@diagram/@childNodes.17/@labels.0/@modelFacet //@diagram/@childNodes.15/@labels.0/@modelFacet //@diagram/@childNodes.19/@labels.0/@modelFacet //@diagram/@childNodes.20/@labels.0/@modelFacet //@diagram/@childNodes.18/@labels.0/@modelFacet //@diagram/@childNodes.22/@labels.0/@modelFacet //@diagram/@childNodes.23/@labels.0/@modelFacet //@diagram/@childNodes.26/@labels.0/@modelFacet //@diagram/@childNodes.27/@labels.0/@modelFacet //@diagram/@childNodes.30/@labels.0/@modelFacet //@diagram/@childNodes.31/@labels.0/@modelFacet //@diagram/@childNodes.34/@labels.0/@modelFacet //@diagram/@childNodes.33/@labels.0/@modelFacet //@diagram/@childNodes.32/@labels.0/@modelFacet //@diagram/@childNodes.37/@labels.0/@modelFacet //@diagram/@childNodes.38/@labels.0/@modelFacet //@diagram/@childNodes.39/@labels.0/@modelFacet //@diagram/@childNodes.40/@labels.0/@modelFacet //@diagram/@childNodes.46/@labels.0/@modelFacet //@diagram/@childNodes.48/@labels.0/@modelFacet //@diagram/@childNodes.47/@labels.0/@modelFacet //@diagram/@childNodes.49/@labels.0/@modelFacet //@diagram/@childNodes.50/@labels.0/@modelFacet //@diagram/@childNodes.51/@labels.0/@modelFacet //@diagram/@childNodes.52/@labels.0/@modelFacet //@diagram/@childNodes.54/@labels.0/@modelFacet //@diagram/@childNodes.55/@labels.0/@modelFacet //@diagram/@childNodes.56/@labels.0/@modelFacet //@diagram/@childNodes.57/@labels.0/@modelFacet //@diagram/@childNodes.60/@labels.0/@modelFacet //@diagram/@childNodes.61/@labels.0/@modelFacet //@diagram/@childNodes.62/@labels.0/@modelFacet //@diagram/@childNodes.63/@labels.0/@modelFacet //@diagram/@childNodes.67/@labels.0/@modelFacet //@diagram/@childNodes.66/@labels.0/@modelFacet //@diagram/@childNodes.73/@labels.0/@modelFacet //@diagram/@childNodes.72/@labels.0/@modelFacet //@diagram/@childNodes.75/@labels.0/@modelFacet //@diagram/@childNodes.76/@labels.0/@modelFacet //@diagram/@childNodes.77/@labels.0/@modelFacet //@diagram/@childNodes.74/@labels.0/@modelFacet //@diagram/@childNodes.71/@labels.0/@modelFacet //@diagram/@childNodes.70/@labels.0/@modelFacet //@diagram/@childNodes.69/@labels.0/@modelFacet //@diagram/@childNodes.68/@labels.0/@modelFacet //@diagram/@childNodes.65/@labels.0/@modelFacet //@diagram/@childNodes.64/@labels.0/@modelFacet //@diagram/@childNodes.59/@labels.0/@modelFacet //@diagram/@childNodes.58/@labels.0/@modelFacet //@diagram/@childNodes.53/@labels.0/@modelFacet //@diagram/@childNodes.45/@labels.0/@modelFacet //@diagram/@childNodes.44/@labels.0/@modelFacet //@diagram/@childNodes.43/@labels.0/@modelFacet //@diagram/@childNodes.42/@labels.0/@modelFacet //@diagram/@childNodes.41/@labels.0/@modelFacet //@diagram/@childNodes.36/@labels.0/@modelFacet //@diagram/@childNodes.35/@labels.0/@modelFacet //@diagram/@childNodes.29/@labels.0/@modelFacet //@diagram/@childNodes.28/@labels.0/@modelFacet //@diagram/@childNodes.25/@labels.0/@modelFacet //@diagram/@childNodes.24/@labels.0/@modelFacet //@diagram/@childNodes.21/@labels.0/@modelFacet //@diagram/@childNodes.6/@labels.0/@modelFacet //@diagram/@childNodes.3/@labels.0/@modelFacet //@diagram/@childNodes.2/@labels.0/@modelFacet //@diagram/@topLevelNodes.1/@labels.0/@modelFacet //@diagram/@topLevelNodes.2/@labels.0/@modelFacet //@diagram/@topLevelNodes.3/@labels.0/@modelFacet //@diagram/@topLevelNodes.4/@labels.0/@modelFacet //@diagram/@topLevelNodes.5/@labels.0/@modelFacet //@diagram/@topLevelNodes.6/@labels.0/@modelFacet"/>
+ </labelParsers>
+ <contextMenus
+ context="//@diagram">
+ <items
+ xsi:type="gmfgen:LoadResourceAction"/>
+ </contextMenus>
+</gmfgen:GenEditorGenerator>
diff --git a/org.eclipse.emf.refactor.comrel/model/comrel.gmfgraph b/org.eclipse.emf.refactor.comrel/model/comrel.gmfgraph
new file mode 100644
index 0000000..16db4f0
--- /dev/null
+++ b/org.eclipse.emf.refactor.comrel/model/comrel.gmfgraph
@@ -0,0 +1,716 @@
+<?xml version="1.0" encoding="ASCII"?>
+<gmfgraph:Canvas xmi:version="2.0"
+ xmlns:xmi="http://www.omg.org/XMI"
+ xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+ xmlns:gmfgraph="http://www.eclipse.org/gmf/2006/GraphicalDefinition" name="comrel">
+ <figures
+ name="Default">
+ <figures
+ xsi:type="gmfgraph:PolylineDecoration"
+ name="SinglePortMappingFigureTargetDecoration"/>
+ <figures
+ xsi:type="gmfgraph:PolylineDecoration"
+ name="MultiPortMappingFigureTargetDecoration"/>
+ <figures
+ xsi:type="gmfgraph:PolylineDecoration"
+ name="MultiSinglePortMappingFigureTargetDecoration"/>
+ <descriptors
+ name="AtomicUnitFigure">
+ <actualFigure
+ xsi:type="gmfgraph:RoundedRectangle"
+ name="AtomicUnitFigure">
+ <border
+ xsi:type="gmfgraph:MarginBorder">
+ <insets
+ top="5"
+ left="5"
+ bottom="5"
+ right="5"/>
+ </border>
+ <children
+ xsi:type="gmfgraph:Label"
+ name="AtomicUnitLabelFigure"
+ text="AtomicUnit"/>
+ </actualFigure>
+ <accessors
+ accessor="getFigureAtomicUnitLabelFigure"
+ figure="//@figures.0/@descriptors.0/@actualFigure/@children.0"/>
+ </descriptors>
+ <descriptors
+ name="SequentialUnitFigure">
+ <actualFigure
+ xsi:type="gmfgraph:RoundedRectangle"
+ name="SequentialUnitFigure">
+ <border
+ xsi:type="gmfgraph:MarginBorder">
+ <insets
+ top="5"
+ left="5"
+ bottom="5"
+ right="5"/>
+ </border>
+ <children
+ xsi:type="gmfgraph:Label"
+ name="SequentialUnitLabelFigure"
+ text="SequentialUnit">
+ <maximumSize
+ dx="10000"
+ dy="50"/>
+ </children>
+ <children
+ xsi:type="gmfgraph:Rectangle"
+ name="SequentialUnitHelperUnitsCompartmentFigure"
+ outline="false"/>
+ <children
+ xsi:type="gmfgraph:Rectangle"
+ name="SequentialUnitRefactoringUnitsCompartmentFigure"
+ outline="false"/>
+ </actualFigure>
+ <accessors
+ accessor="getFigureSequentialUnitLabelFigure"
+ figure="//@figures.0/@descriptors.1/@actualFigure/@children.0"/>
+ <accessors
+ accessor="getSequentialUnitHelperUnitsCompartmentFigure"
+ figure="//@figures.0/@descriptors.1/@actualFigure/@children.1"/>
+ <accessors
+ accessor="getSequentialUnitRefactoringUnitsCompartmentFigure"
+ figure="//@figures.0/@descriptors.1/@actualFigure/@children.2"/>
+ </descriptors>
+ <descriptors
+ name="ConditionCheckFigure">
+ <actualFigure
+ xsi:type="gmfgraph:RoundedRectangle"
+ name="ConditionCheckFigure">
+ <border
+ xsi:type="gmfgraph:MarginBorder">
+ <insets
+ top="5"
+ left="5"
+ bottom="5"
+ right="5"/>
+ </border>
+ <children
+ xsi:type="gmfgraph:Label"
+ name="ConditionCheckLabelFigure"
+ text="ConditionCheck"/>
+ </actualFigure>
+ <accessors
+ accessor="getFigureConditionCheckLabelFigure"
+ figure="//@figures.0/@descriptors.2/@actualFigure/@children.0"/>
+ </descriptors>
+ <descriptors
+ name="ConditionalUnitFigure">
+ <actualFigure
+ xsi:type="gmfgraph:RoundedRectangle"
+ name="ConditionalUnitFigure">
+ <border
+ xsi:type="gmfgraph:MarginBorder">
+ <insets
+ top="5"
+ left="5"
+ bottom="5"
+ right="5"/>
+ </border>
+ <children
+ xsi:type="gmfgraph:Label"
+ name="ConditionalUnitLabelFigure"
+ text="ConditionalUnit">
+ <maximumSize
+ dx="10000"
+ dy="50"/>
+ </children>
+ <children
+ xsi:type="gmfgraph:Rectangle"
+ name="ConditionalUnitIfCompartmentFigure"
+ outline="false"/>
+ <children
+ xsi:type="gmfgraph:Rectangle"
+ name="ConditionalUnitHelperUnitsCompartmentFigure"
+ outline="false"/>
+ <children
+ xsi:type="gmfgraph:Rectangle"
+ name="ConditionalUnitThenCompartmentFigure"
+ outline="false"/>
+ <children
+ xsi:type="gmfgraph:Rectangle"
+ name="ConditionalUnitElseCompartmentFigure"
+ outline="false"/>
+ </actualFigure>
+ <accessors
+ accessor="getFigureConditionalUnitLabelFigure"
+ figure="//@figures.0/@descriptors.3/@actualFigure/@children.0"/>
+ <accessors
+ accessor="getConditionalUnitIfCompartmentFigure"
+ figure="//@figures.0/@descriptors.3/@actualFigure/@children.1"/>
+ <accessors
+ accessor="getConditionalUnitHelperUnitsCompartmentFigure"
+ figure="//@figures.0/@descriptors.3/@actualFigure/@children.2"/>
+ <accessors
+ accessor="getConditionalUnitThenCompartmentFigure"
+ figure="//@figures.0/@descriptors.3/@actualFigure/@children.3"/>
+ <accessors
+ accessor="getConditionalUnitElseCompartmentFigure"
+ figure="//@figures.0/@descriptors.3/@actualFigure/@children.4"/>
+ </descriptors>
+ <descriptors
+ name="SingleQueuedUnitFigure">
+ <actualFigure
+ xsi:type="gmfgraph:RoundedRectangle"
+ name="SingleQueuedUnitFigure">
+ <border
+ xsi:type="gmfgraph:MarginBorder">
+ <insets
+ top="5"
+ left="5"
+ bottom="5"
+ right="5"/>
+ </border>
+ <children
+ xsi:type="gmfgraph:Label"
+ name="SingleQueuedUnitLabelFigure"
+ text="SingleQueuedUnit">
+ <maximumSize
+ dx="10000"
+ dy="50"/>
+ </children>
+ <children
+ xsi:type="gmfgraph:Rectangle"
+ name="SingleQueuedUnitHelperUnitsCompartmentFigure"
+ outline="false"/>
+ <children
+ xsi:type="gmfgraph:Rectangle"
+ name="SingleQueuedUnitRefactoringUnitCompartmentFigure"
+ outline="false"/>
+ </actualFigure>
+ <accessors
+ accessor="getFigureSingleQueuedUnitLabelFigure"
+ figure="//@figures.0/@descriptors.4/@actualFigure/@children.0"/>
+ <accessors
+ accessor="getSingleQueuedUnitHelperUnitsCompartmentFigure"
+ figure="//@figures.0/@descriptors.4/@actualFigure/@children.1"/>
+ <accessors
+ accessor="getSingleQueuedUnitRefactoringUnitCompartmentFigure"
+ figure="//@figures.0/@descriptors.4/@actualFigure/@children.2"/>
+ </descriptors>
+ <descriptors
+ name="CartesianQueuedUnitFigure">
+ <actualFigure
+ xsi:type="gmfgraph:RoundedRectangle"
+ name="CartesianQueuedUnitFigure">
+ <border
+ xsi:type="gmfgraph:MarginBorder">
+ <insets
+ top="5"
+ left="5"
+ bottom="5"
+ right="5"/>
+ </border>
+ <children
+ xsi:type="gmfgraph:Label"
+ name="CartesianQueuedUnitLabelFigure"
+ text="CartesianQueuedUnit">
+ <maximumSize
+ dx="10000"
+ dy="50"/>
+ </children>
+ <children
+ xsi:type="gmfgraph:Rectangle"
+ name="CartesianQueuedUnitHelperUnitsCompartmentFigure"
+ outline="false"/>
+ <children
+ xsi:type="gmfgraph:Rectangle"
+ name="CartesianQueuedUnitRefactoringUnitCompartmentFigure"
+ outline="false"/>
+ </actualFigure>
+ <accessors
+ accessor="getFigureCartesianQueuedUnitLabelFigure"
+ figure="//@figures.0/@descriptors.5/@actualFigure/@children.0"/>
+ <accessors
+ accessor="getCartesianQueuedUnitHelperUnitsCompartmentFigure"
+ figure="//@figures.0/@descriptors.5/@actualFigure/@children.1"/>
+ <accessors
+ accessor="getCartesianQueuedUnitRefactoringUnitCompartmentFigure"
+ figure="//@figures.0/@descriptors.5/@actualFigure/@children.2"/>
+ </descriptors>
+ <descriptors
+ name="ParallelQueuedUnitFigure">
+ <actualFigure
+ xsi:type="gmfgraph:RoundedRectangle"
+ name="ParallelQueuedUnitFigure">
+ <border
+ xsi:type="gmfgraph:MarginBorder">
+ <insets
+ top="5"
+ left="5"
+ bottom="5"
+ right="5"/>
+ </border>
+ <children
+ xsi:type="gmfgraph:Label"
+ name="ParallelQueuedUnitLabelFigure"
+ text="ParallelQueuedUnit">
+ <maximumSize
+ dx="10000"
+ dy="50"/>
+ </children>
+ <children
+ xsi:type="gmfgraph:Rectangle"
+ name="ParallelQueuedUnitHelperUnitsCompartmentFigure"
+ outline="false"/>
+ <children
+ xsi:type="gmfgraph:Rectangle"
+ name="ParallelQueuedUnitRefactoringUnitsCompartmentFigure"
+ outline="false"/>
+ </actualFigure>
+ <accessors
+ accessor="getFigureParallelQueuedUnitLabelFigure"
+ figure="//@figures.0/@descriptors.6/@actualFigure/@children.0"/>
+ <accessors
+ accessor="getParallelQueuedUnitHelperUnitsCompartmentFigure"
+ figure="//@figures.0/@descriptors.6/@actualFigure/@children.1"/>
+ <accessors
+ accessor="getParallelQueuedUnitRefactoringUnitsCompartmentFigure"
+ figure="//@figures.0/@descriptors.6/@actualFigure/@children.2"/>
+ </descriptors>
+ <descriptors
+ name="SingleFeatureUnitFigure">
+ <actualFigure
+ xsi:type="gmfgraph:RoundedRectangle"
+ name="SingleFeatureUnitFigure">
+ <border
+ xsi:type="gmfgraph:MarginBorder">
+ <insets
+ top="5"
+ left="5"
+ bottom="5"
+ right="5"/>
+ </border>
+ <children
+ xsi:type="gmfgraph:Label"
+ name="SingleFeatureUnitLabelFigure"
+ text="SingleFeatureUnit"/>
+ </actualFigure>
+ <accessors
+ accessor="getFigureSingleFeatureUnitLabelFigure"
+ figure="//@figures.0/@descriptors.7/@actualFigure/@children.0"/>
+ </descriptors>
+ <descriptors
+ name="MultiFeatureUnitFigure">
+ <actualFigure
+ xsi:type="gmfgraph:RoundedRectangle"
+ name="MultiFeatureUnitFigure">
+ <border
+ xsi:type="gmfgraph:MarginBorder">
+ <insets
+ top="5"
+ left="5"
+ bottom="5"
+ right="5"/>
+ </border>
+ <children
+ xsi:type="gmfgraph:Label"
+ name="MultiFeatureUnitLabelFigure"
+ text="MultiFeatureUnit"/>
+ </actualFigure>
+ <accessors
+ accessor="getFigureMultiFeatureUnitLabelFigure"
+ figure="//@figures.0/@descriptors.8/@actualFigure/@children.0"/>
+ </descriptors>
+ <descriptors
+ name="SingleFilterUnitFigure">
+ <actualFigure
+ xsi:type="gmfgraph:RoundedRectangle"
+ name="SingleFilterUnitFigure">
+ <border
+ xsi:type="gmfgraph:MarginBorder">
+ <insets
+ top="5"
+ left="5"
+ bottom="5"
+ right="5"/>
+ </border>
+ <children
+ xsi:type="gmfgraph:Label"
+ name="SingleFilterUnitLabelFigure"
+ text="SingleFilterUnit"/>
+ </actualFigure>
+ <accessors
+ accessor="getFigureSingleFilterUnitLabelFigure"
+ figure="//@figures.0/@descriptors.9/@actualFigure/@children.0"/>
+ </descriptors>
+ <descriptors
+ name="MultiFilterUnitFigure">
+ <actualFigure
+ xsi:type="gmfgraph:RoundedRectangle"
+ name="MultiFilterUnitFigure">
+ <border
+ xsi:type="gmfgraph:MarginBorder">
+ <insets
+ top="5"
+ left="5"
+ bottom="5"
+ right="5"/>
+ </border>
+ <children
+ xsi:type="gmfgraph:Label"
+ name="MultiFilterUnitLabelFigure"
+ text="MultiFilterUnit"/>
+ </actualFigure>
+ <accessors
+ accessor="getFigureMultiFilterUnitLabelFigure"
+ figure="//@figures.0/@descriptors.10/@actualFigure/@children.0"/>
+ </descriptors>
+ <descriptors
+ name="SingleInputPortFigure">
+ <actualFigure
+ xsi:type="gmfgraph:Rectangle"
+ name="SingleInputPortFigure">
+ <preferredSize
+ dx="20"
+ dy="20"/>
+ <border
+ xsi:type="gmfgraph:MarginBorder">
+ <insets
+ top="5"
+ left="5"
+ bottom="5"
+ right="5"/>
+ </border>
+ </actualFigure>
+ </descriptors>
+ <descriptors
+ name="SingleInputPortLabelFigure">
+ <actualFigure
+ xsi:type="gmfgraph:Label"
+ name="SingleInputPortLabelFigure"
+ text="SingleInputPort"/>
+ </descriptors>
+ <descriptors
+ name="MultiInputPortFigure">
+ <actualFigure
+ xsi:type="gmfgraph:Rectangle"
+ name="MultiInputPortFigure"
+ lineWidth="10">
+ <foregroundColor
+ xsi:type="gmfgraph:RGBColor"
+ red="255"/>
+ <preferredSize
+ dx="20"
+ dy="20"/>
+ <border
+ xsi:type="gmfgraph:MarginBorder">
+ <insets
+ top="5"
+ left="5"
+ bottom="5"
+ right="5"/>
+ </border>
+ </actualFigure>
+ </descriptors>
+ <descriptors
+ name="MultiInputPortLabelFigure">
+ <actualFigure
+ xsi:type="gmfgraph:Label"
+ name="MultiInputPortLabelFigure"
+ text="MultiInputPort"/>
+ </descriptors>
+ <descriptors
+ name="SingleOutputPortFigure">
+ <actualFigure
+ xsi:type="gmfgraph:Ellipse"
+ name="SingleOutputPortFigure">
+ <preferredSize
+ dx="20"
+ dy="20"/>
+ <border
+ xsi:type="gmfgraph:MarginBorder">
+ <insets
+ top="5"
+ left="5"
+ bottom="5"
+ right="5"/>
+ </border>
+ </actualFigure>
+ </descriptors>
+ <descriptors
+ name="SingleOutputPortLabelFigure">
+ <actualFigure
+ xsi:type="gmfgraph:Label"
+ name="SingleOutputPortLabelFigure"
+ text="SingleOutputPort"/>
+ </descriptors>
+ <descriptors
+ name="MultiOutputPortFigure">
+ <actualFigure
+ xsi:type="gmfgraph:Ellipse"
+ name="MultiOutputPortFigure"
+ lineWidth="10">
+ <foregroundColor
+ xsi:type="gmfgraph:RGBColor"
+ red="255"/>
+ <preferredSize
+ dx="20"
+ dy="20"/>
+ <border
+ xsi:type="gmfgraph:MarginBorder">
+ <insets
+ top="5"
+ left="5"
+ bottom="5"
+ right="5"/>
+ </border>
+ </actualFigure>
+ </descriptors>
+ <descriptors
+ name="MultiOutputPortLabelFigure">
+ <actualFigure
+ xsi:type="gmfgraph:Label"
+ name="MultiOutputPortLabelFigure"
+ text="MultiOutputPort"/>
+ </descriptors>
+ <descriptors
+ name="SinglePortMappingFigure">
+ <actualFigure
+ xsi:type="gmfgraph:PolylineConnection"
+ name="SinglePortMappingFigure"
+ lineWidth="2"
+ lineKind="LINE_DOT"
+ targetDecoration="//@figures.0/@figures.0"/>
+ </descriptors>
+ <descriptors
+ name="MultiPortMappingFigure">
+ <actualFigure
+ xsi:type="gmfgraph:PolylineConnection"
+ name="MultiPortMappingFigure"
+ lineWidth="2"
+ lineKind="LINE_DOT"
+ targetDecoration="//@figures.0/@figures.1"/>
+ </descriptors>
+ <descriptors
+ name="MultiSinglePortMappingFigure">
+ <actualFigure
+ xsi:type="gmfgraph:PolylineConnection"
+ name="MultiSinglePortMappingFigure"
+ lineWidth="2"
+ lineKind="LINE_DOT"
+ targetDecoration="//@figures.0/@figures.2"/>
+ </descriptors>
+ </figures>
+ <nodes
+ name="AtomicUnit"
+ figure="AtomicUnitFigure"/>
+ <nodes
+ name="SequentialUnit"
+ figure="SequentialUnitFigure"/>
+ <nodes
+ name="ConditionCheck"
+ figure="ConditionCheckFigure"/>
+ <nodes
+ name="ConditionalUnit"
+ figure="ConditionalUnitFigure"/>
+ <nodes
+ name="SingleQueuedUnit"
+ figure="SingleQueuedUnitFigure"/>
+ <nodes
+ name="CartesianQueuedUnit"
+ figure="CartesianQueuedUnitFigure"/>
+ <nodes
+ name="ParallelQueuedUnit"
+ figure="ParallelQueuedUnitFigure"/>
+ <nodes
+ name="SingleFeatureUnit"
+ figure="SingleFeatureUnitFigure"/>
+ <nodes
+ name="MultiFeatureUnit"
+ figure="MultiFeatureUnitFigure"/>
+ <nodes
+ name="SingleFilterUnit"
+ figure="SingleFilterUnitFigure"/>
+ <nodes
+ name="MultiFilterUnit"
+ figure="MultiFilterUnitFigure"/>
+ <nodes
+ name="SingleInputPort"
+ figure="SingleInputPortFigure"
+ affixedParentSide="NSEW">
+ <facets
+ xsi:type="gmfgraph:DefaultSizeFacet">
+ <defaultSize
+ dx="20"
+ dy="20"/>
+ </facets>
+ </nodes>
+ <nodes
+ name="MultiInputPort"
+ figure="MultiInputPortFigure"
+ affixedParentSide="NSEW">
+ <facets
+ xsi:type="gmfgraph:DefaultSizeFacet">
+ <defaultSize
+ dx="20"
+ dy="20"/>
+ </facets>
+ </nodes>
+ <nodes
+ name="SingleOutputPort"
+ figure="SingleOutputPortFigure"
+ affixedParentSide="NSEW">
+ <facets
+ xsi:type="gmfgraph:DefaultSizeFacet">
+ <defaultSize
+ dx="20"
+ dy="20"/>
+ </facets>
+ </nodes>
+ <nodes
+ name="MultiOutputPort"
+ figure="MultiOutputPortFigure"
+ affixedParentSide="NSEW">
+ <facets
+ xsi:type="gmfgraph:DefaultSizeFacet">
+ <defaultSize
+ dx="20"
+ dy="20"/>
+ </facets>
+ </nodes>
+ <connections
+ name="SinglePortMapping"
+ figure="SinglePortMappingFigure"/>
+ <connections
+ name="MultiPortMapping"
+ figure="MultiPortMappingFigure"/>
+ <connections
+ name="MultiSinglePortMapping"
+ figure="MultiSinglePortMappingFigure"/>
+ <compartments
+ name="SequentialUnitHelperUnitsCompartment"
+ figure="SequentialUnitFigure"
+ collapsible="true"
+ accessor="//@figures.0/@descriptors.1/@accessors.1"/>
+ <compartments
+ name="SequentialUnitRefactoringUnitsCompartment"
+ figure="SequentialUnitFigure"
+ collapsible="true"
+ accessor="//@figures.0/@descriptors.1/@accessors.2"/>
+ <compartments
+ name="ConditionalUnitIfCompartment"
+ figure="ConditionalUnitFigure"
+ collapsible="true"
+ accessor="//@figures.0/@descriptors.3/@accessors.1"/>
+ <compartments
+ name="ConditionalUnitHelperUnitsCompartment"
+ figure="ConditionalUnitFigure"
+ collapsible="true"
+ accessor="//@figures.0/@descriptors.3/@accessors.2"/>
+ <compartments
+ name="ConditionalUnitThenCompartment"
+ figure="ConditionalUnitFigure"
+ collapsible="true"
+ accessor="//@figures.0/@descriptors.3/@accessors.3"/>
+ <compartments
+ name="ConditionalUnitElseCompartment"
+ figure="ConditionalUnitFigure"
+ collapsible="true"
+ accessor="//@figures.0/@descriptors.3/@accessors.4"/>
+ <compartments
+ name="SingleQueuedUnitHelperUnitsCompartment"
+ figure="SingleQueuedUnitFigure"
+ collapsible="true"
+ accessor="//@figures.0/@descriptors.4/@accessors.1"/>
+ <compartments
+ name="SingleQueuedUnitRefactoringUnitCompartment"
+ figure="SingleQueuedUnitFigure"
+ collapsible="true"
+ accessor="//@figures.0/@descriptors.4/@accessors.2"/>
+ <compartments
+ name="CartesianQueuedUnitHelperUnitsCompartment"
+ figure="CartesianQueuedUnitFigure"
+ collapsible="true"
+ accessor="//@figures.0/@descriptors.5/@accessors.1"/>
+ <compartments
+ name="CartesianQueuedUnitRefactoringUnitCompartment"
+ figure="CartesianQueuedUnitFigure"
+ collapsible="true"
+ accessor="//@figures.0/@descriptors.5/@accessors.2"/>
+ <compartments
+ name="ParallelQueuedUnitHelperUnitsCompartment"
+ figure="ParallelQueuedUnitFigure"
+ collapsible="true"
+ accessor="//@figures.0/@descriptors.6/@accessors.1"/>
+ <compartments
+ name="ParallelQueuedUnitRefactoringUnitsCompartment"
+ figure="ParallelQueuedUnitFigure"
+ collapsible="true"
+ accessor="//@figures.0/@descriptors.6/@accessors.2"/>
+ <labels
+ name="AtomicUnitLabel"
+ figure="AtomicUnitFigure"
+ elementIcon="false"
+ accessor="//@figures.0/@descriptors.0/@accessors.0"/>
+ <labels
+ name="SequentialUnitLabel"
+ figure="SequentialUnitFigure"
+ elementIcon="false"
+ accessor="//@figures.0/@descriptors.1/@accessors.0"/>
+ <labels
+ name="ConditionCheckLabel"
+ figure="ConditionCheckFigure"
+ elementIcon="false"
+ accessor="//@figures.0/@descriptors.2/@accessors.0"/>
+ <labels
+ name="ConditionalUnitLabel"
+ figure="ConditionalUnitFigure"
+ elementIcon="false"
+ accessor="//@figures.0/@descriptors.3/@accessors.0"/>
+ <labels
+ name="SingleQueuedUnitLabel"
+ figure="SingleQueuedUnitFigure"
+ elementIcon="false"
+ accessor="//@figures.0/@descriptors.4/@accessors.0"/>
+ <labels
+ name="CartesianQueuedUnitLabel"
+ figure="CartesianQueuedUnitFigure"
+ elementIcon="false"
+ accessor="//@figures.0/@descriptors.5/@accessors.0"/>
+ <labels
+ name="ParallelQueuedUnitLabel"
+ figure="ParallelQueuedUnitFigure"
+ elementIcon="false"
+ accessor="//@figures.0/@descriptors.6/@accessors.0"/>
+ <labels
+ name="SingleFeatureUnitLabel"
+ figure="SingleFeatureUnitFigure"
+ elementIcon="false"
+ accessor="//@figures.0/@descriptors.7/@accessors.0"/>
+ <labels
+ name="MultiFeatureUnitLabel"
+ figure="MultiFeatureUnitFigure"
+ elementIcon="false"
+ accessor="//@figures.0/@descriptors.8/@accessors.0"/>
+ <labels
+ name="SingleFilterUnitLabel"
+ figure="SingleFilterUnitFigure"
+ elementIcon="false"
+ accessor="//@figures.0/@descriptors.9/@accessors.0"/>
+ <labels
+ name="MultiFilterUnitLabel"
+ figure="MultiFilterUnitFigure"
+ elementIcon="false"
+ accessor="//@figures.0/@descriptors.10/@accessors.0"/>
+ <labels
+ name="SingleInputPortLabel"
+ figure="SingleInputPortLabelFigure"
+ elementIcon="false"/>
+ <labels
+ name="MultiInputPortLabel"
+ figure="MultiInputPortLabelFigure"
+ elementIcon="false"/>
+ <labels
+ name="SingleOutputPortLabel"
+ figure="SingleOutputPortLabelFigure"
+ elementIcon="false"/>
+ <labels
+ name="MultiOutputPortLabel"
+ figure="MultiOutputPortLabelFigure"
+ elementIcon="false"/>
+</gmfgraph:Canvas>
diff --git a/org.eclipse.emf.refactor.comrel/model/comrel.gmfmap b/org.eclipse.emf.refactor.comrel/model/comrel.gmfmap
new file mode 100644
index 0000000..7c8d718
--- /dev/null
+++ b/org.eclipse.emf.refactor.comrel/model/comrel.gmfmap
@@ -0,0 +1,938 @@
+<?xml version="1.0" encoding="ASCII"?>
+<gmfmap:Mapping xmi:version="2.0"
+ xmlns:xmi="http://www.omg.org/XMI"
+ xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+ xmlns:ecore="http://www.eclipse.org/emf/2002/Ecore"
+ xmlns:gmfmap="http://www.eclipse.org/gmf/2008/mappings"
+ xmlns:gmftool="http://www.eclipse.org/gmf/2005/ToolDefinition">
+ <nodes>
+ <containmentFeature
+ href="comrel.ecore#//ModelRefactoring/inputPorts"/>
+ <ownedChild>
+ <domainMetaElement
+ href="comrel.ecore#//SingleInputPort"/>
+ <labelMappings
+ xsi:type="gmfmap:FeatureLabelMapping"
+ viewPattern="{0}:{1}"
+ editorPattern="{0}:{1}"
+ editPattern="{0}:{1}">
+ <diagramLabel
+ href="comrel.gmfgraph#SingleInputPortLabel"/>
+ <features
+ href="comrel.ecore#//NamedElement/name"/>
+ <features
+ href="comrel.ecore#//Port/type"/>
+ </labelMappings>
+ <tool
+ xsi:type="gmftool:CreationTool"
+ href="comrel.gmftool#//@palette/@tools.4/@tools.2"/>
+ <diagramNode
+ href="comrel.gmfgraph#SingleInputPort"/>
+ </ownedChild>
+ </nodes>
+ <nodes>
+ <containmentFeature
+ href="comrel.ecore#//CompositeRefactoring/mainRefactoringUnit"/>
+ <ownedChild
+ relatedDiagrams="//@diagram">
+ <domainMetaElement
+ href="comrel.ecore#//CartesianQueuedUnit"/>
+ <labelMappings
+ xsi:type="gmfmap:FeatureLabelMapping"
+ viewPattern="{0}:{1} -{2}-"
+ editorPattern="{0}:{1} -{2}-"
+ editPattern="{0}:{1} -{2}-">
+ <diagramLabel
+ href="comrel.gmfgraph#CartesianQueuedUnitLabel"/>
+ <features
+ href="comrel.ecore#//NamedElement/name"/>
+ <features
+ href="comrel.ecore#//CartesianQueuedUnit/type"/>
+ <features
+ href="comrel.ecore#//CartesianQueuedUnit/lblStrict"/>
+ </labelMappings>
+ <tool
+ xsi:type="gmftool:CreationTool"
+ href="comrel.gmftool#//@palette/@tools.0/@tools.0"/>
+ <diagramNode
+ href="comrel.gmfgraph#CartesianQueuedUnit"/>
+ <children
+ referencedChild="//@nodes.0/@ownedChild">
+ <containmentFeature
+ href="comrel.ecore#//CartesianQueuedUnit/singleInputPorts"/>
+ </children>
+ <children
+ referencedChild="//@nodes.4/@ownedChild/@children.1/@ownedChild">
+ <containmentFeature
+ href="comrel.ecore#//CartesianQueuedUnit/multiInputPorts"/>
+ </children>
+ <children
+ compartment="//@nodes.1/@ownedChild/@compartments.1"
+ referencedChild="//@nodes.1/@ownedChild">
+ <containmentFeature
+ href="comrel.ecore#//CartesianQueuedUnit/refactoringUnit"/>
+ </children>
+ <children
+ compartment="//@nodes.1/@ownedChild/@compartments.1"
+ referencedChild="//@nodes.2/@ownedChild">
+ <containmentFeature
+ href="comrel.ecore#//CartesianQueuedUnit/refactoringUnit"/>
+ </children>
+ <children
+ compartment="//@nodes.1/@ownedChild/@compartments.0"
+ referencedChild="//@nodes.4/@ownedChild/@children.4/@ownedChild">
+ <containmentFeature
+ href="comrel.ecore#//CartesianQueuedUnit/helperUnits"/>
+ </children>
+ <children
+ compartment="//@nodes.1/@ownedChild/@compartments.0"
+ referencedChild="//@nodes.4/@ownedChild/@children.5/@ownedChild">
+ <containmentFeature
+ href="comrel.ecore#//CartesianQueuedUnit/helperUnits"/>
+ </children>
+ <children
+ compartment="//@nodes.1/@ownedChild/@compartments.0"
+ referencedChild="//@nodes.4/@ownedChild/@children.6/@ownedChild">
+ <containmentFeature
+ href="comrel.ecore#//CartesianQueuedUnit/helperUnits"/>
+ </children>
+ <children
+ compartment="//@nodes.1/@ownedChild/@compartments.0"
+ referencedChild="//@nodes.4/@ownedChild/@children.7/@ownedChild">
+ <containmentFeature
+ href="comrel.ecore#//CartesianQueuedUnit/helperUnits"/>
+ </children>
+ <children
+ compartment="//@nodes.1/@ownedChild/@compartments.1"
+ referencedChild="//@nodes.3/@ownedChild">
+ <containmentFeature
+ href="comrel.ecore#//CartesianQueuedUnit/refactoringUnit"/>
+ </children>
+ <children
+ compartment="//@nodes.1/@ownedChild/@compartments.1"
+ referencedChild="//@nodes.4/@ownedChild">
+ <containmentFeature
+ href="comrel.ecore#//CartesianQueuedUnit/refactoringUnit"/>
+ </children>
+ <children
+ compartment="//@nodes.1/@ownedChild/@compartments.1"
+ referencedChild="//@nodes.5/@ownedChild">
+ <containmentFeature
+ href="comrel.ecore#//CartesianQueuedUnit/refactoringUnit"/>
+ </children>
+ <children
+ compartment="//@nodes.1/@ownedChild/@compartments.1"
+ referencedChild="//@nodes.6/@ownedChild">
+ <containmentFeature
+ href="comrel.ecore#//CartesianQueuedUnit/refactoringUnit"/>
+ </children>
+ <compartments
+ children="//@nodes.1/@ownedChild/@children.4 //@nodes.1/@ownedChild/@children.5 //@nodes.1/@ownedChild/@children.6 //@nodes.1/@ownedChild/@children.7">
+ <compartment
+ href="comrel.gmfgraph#CartesianQueuedUnitHelperUnitsCompartment"/>
+ </compartments>
+ <compartments
+ children="//@nodes.1/@ownedChild/@children.2 //@nodes.1/@ownedChild/@children.3 //@nodes.1/@ownedChild/@children.8 //@nodes.1/@ownedChild/@children.9 //@nodes.1/@ownedChild/@children.10 //@nodes.1/@ownedChild/@children.11">
+ <compartment
+ href="comrel.gmfgraph#CartesianQueuedUnitRefactoringUnitCompartment"/>
+ </compartments>
+ </ownedChild>
+ </nodes>
+ <nodes>
+ <containmentFeature
+ href="comrel.ecore#//CompositeRefactoring/mainRefactoringUnit"/>
+ <ownedChild
+ relatedDiagrams="//@diagram">
+ <domainMetaElement
+ href="comrel.ecore#//ParallelQueuedUnit"/>
+ <labelMappings
+ xsi:type="gmfmap:FeatureLabelMapping"
+ viewPattern="{0}:{1} -{2}-"
+ editorPattern="{0}:{1} -{2}-"
+ editPattern="{0}:{1} -{2}-">
+ <diagramLabel
+ href="comrel.gmfgraph#ParallelQueuedUnitLabel"/>
+ <features
+ href="comrel.ecore#//NamedElement/name"/>
+ <features
+ href="comrel.ecore#//ParallelQueuedUnit/type"/>
+ <features
+ href="comrel.ecore#//ParallelQueuedUnit/lblStrict"/>
+ </labelMappings>
+ <tool
+ xsi:type="gmftool:CreationTool"
+ href="comrel.gmftool#//@palette/@tools.0/@tools.3"/>
+ <diagramNode
+ href="comrel.gmfgraph#ParallelQueuedUnit"/>
+ <children
+ referencedChild="//@nodes.0/@ownedChild">
+ <containmentFeature
+ href="comrel.ecore#//ParallelQueuedUnit/singleInputPorts"/>
+ </children>
+ <children
+ referencedChild="//@nodes.4/@ownedChild/@children.1/@ownedChild">
+ <containmentFeature
+ href="comrel.ecore#//ParallelQueuedUnit/multiInputPorts"/>
+ </children>
+ <children
+ compartment="//@nodes.2/@ownedChild/@compartments.1"
+ referencedChild="//@nodes.1/@ownedChild">
+ <containmentFeature
+ href="comrel.ecore#//ParallelQueuedUnit/refactoringUnits"/>
+ </children>
+ <children
+ compartment="//@nodes.2/@ownedChild/@compartments.1"
+ referencedChild="//@nodes.2/@ownedChild">
+ <containmentFeature
+ href="comrel.ecore#//ParallelQueuedUnit/refactoringUnits"/>
+ </children>
+ <children
+ compartment="//@nodes.2/@ownedChild/@compartments.0"
+ referencedChild="//@nodes.4/@ownedChild/@children.4/@ownedChild">
+ <containmentFeature
+ href="comrel.ecore#//ParallelQueuedUnit/helperUnits"/>
+ </children>
+ <children
+ compartment="//@nodes.2/@ownedChild/@compartments.0"
+ referencedChild="//@nodes.4/@ownedChild/@children.5/@ownedChild">
+ <containmentFeature
+ href="comrel.ecore#//ParallelQueuedUnit/helperUnits"/>
+ </children>
+ <children
+ compartment="//@nodes.2/@ownedChild/@compartments.0"
+ referencedChild="//@nodes.4/@ownedChild/@children.6/@ownedChild">
+ <containmentFeature
+ href="comrel.ecore#//ParallelQueuedUnit/helperUnits"/>
+ </children>
+ <children
+ compartment="//@nodes.2/@ownedChild/@compartments.0"
+ referencedChild="//@nodes.4/@ownedChild/@children.7/@ownedChild">
+ <containmentFeature
+ href="comrel.ecore#//ParallelQueuedUnit/helperUnits"/>
+ </children>
+ <children
+ compartment="//@nodes.2/@ownedChild/@compartments.1"
+ referencedChild="//@nodes.3/@ownedChild">
+ <containmentFeature
+ href="comrel.ecore#//ParallelQueuedUnit/refactoringUnits"/>
+ </children>
+ <children
+ compartment="//@nodes.2/@ownedChild/@compartments.1"
+ referencedChild="//@nodes.4/@ownedChild">
+ <containmentFeature
+ href="comrel.ecore#//ParallelQueuedUnit/refactoringUnits"/>
+ </children>
+ <children
+ compartment="//@nodes.2/@ownedChild/@compartments.1"
+ referencedChild="//@nodes.5/@ownedChild">
+ <containmentFeature
+ href="comrel.ecore#//ParallelQueuedUnit/refactoringUnits"/>
+ </children>
+ <children
+ compartment="//@nodes.2/@ownedChild/@compartments.1"
+ referencedChild="//@nodes.6/@ownedChild">
+ <containmentFeature
+ href="comrel.ecore#//ParallelQueuedUnit/refactoringUnits"/>
+ </children>
+ <compartments
+ children="//@nodes.2/@ownedChild/@children.4 //@nodes.2/@ownedChild/@children.5 //@nodes.2/@ownedChild/@children.6 //@nodes.2/@ownedChild/@children.7">
+ <compartment
+ href="comrel.gmfgraph#ParallelQueuedUnitHelperUnitsCompartment"/>
+ </compartments>
+ <compartments
+ children="//@nodes.2/@ownedChild/@children.2 //@nodes.2/@ownedChild/@children.3 //@nodes.2/@ownedChild/@children.8 //@nodes.2/@ownedChild/@children.9 //@nodes.2/@ownedChild/@children.10 //@nodes.2/@ownedChild/@children.11">
+ <compartment
+ href="comrel.gmfgraph#ParallelQueuedUnitRefactoringUnitsCompartment"/>
+ </compartments>
+ </ownedChild>
+ </nodes>
+ <nodes>
+ <containmentFeature
+ href="comrel.ecore#//CompositeRefactoring/mainRefactoringUnit"/>
+ <ownedChild
+ relatedDiagrams="//@diagram">
+ <domainMetaElement
+ href="comrel.ecore#//SingleQueuedUnit"/>
+ <labelMappings
+ xsi:type="gmfmap:FeatureLabelMapping"
+ viewPattern="{0}:{1} -{2}-"
+ editorPattern="{0}:{1} -{2}-"
+ editPattern="{0}:{1} -{2}-">
+ <diagramLabel
+ href="comrel.gmfgraph#SingleQueuedUnitLabel"/>
+ <features
+ href="comrel.ecore#//NamedElement/name"/>
+ <features
+ href="comrel.ecore#//SingleQueuedUnit/type"/>
+ <features
+ href="comrel.ecore#//SingleQueuedUnit/lblStrict"/>
+ </labelMappings>
+ <tool
+ xsi:type="gmftool:CreationTool"
+ href="comrel.gmftool#//@palette/@tools.0/@tools.5"/>
+ <diagramNode
+ href="comrel.gmfgraph#SingleQueuedUnit"/>
+ <children
+ referencedChild="//@nodes.0/@ownedChild">
+ <containmentFeature
+ href="comrel.ecore#//SingleQueuedUnit/singleInputPorts"/>
+ </children>
+ <children
+ referencedChild="//@nodes.4/@ownedChild/@children.1/@ownedChild">
+ <containmentFeature
+ href="comrel.ecore#//SingleQueuedUnit/multiInputPort"/>
+ </children>
+ <children
+ compartment="//@nodes.3/@ownedChild/@compartments.1"
+ referencedChild="//@nodes.1/@ownedChild">
+ <containmentFeature
+ href="comrel.ecore#//SingleQueuedUnit/refactoringUnit"/>
+ </children>
+ <children
+ compartment="//@nodes.3/@ownedChild/@compartments.1"
+ referencedChild="//@nodes.2/@ownedChild">
+ <containmentFeature
+ href="comrel.ecore#//SingleQueuedUnit/refactoringUnit"/>
+ </children>
+ <children
+ compartment="//@nodes.3/@ownedChild/@compartments.0"
+ referencedChild="//@nodes.4/@ownedChild/@children.4/@ownedChild">
+ <containmentFeature
+ href="comrel.ecore#//SingleQueuedUnit/helperUnits"/>
+ </children>
+ <children
+ compartment="//@nodes.3/@ownedChild/@compartments.0"
+ referencedChild="//@nodes.4/@ownedChild/@children.5/@ownedChild">
+ <containmentFeature
+ href="comrel.ecore#//SingleQueuedUnit/helperUnits"/>
+ </children>
+ <children
+ compartment="//@nodes.3/@ownedChild/@compartments.0"
+ referencedChild="//@nodes.4/@ownedChild/@children.6/@ownedChild">
+ <containmentFeature
+ href="comrel.ecore#//SingleQueuedUnit/helperUnits"/>
+ </children>
+ <children
+ compartment="//@nodes.3/@ownedChild/@compartments.0"
+ referencedChild="//@nodes.4/@ownedChild/@children.7/@ownedChild">
+ <containmentFeature
+ href="comrel.ecore#//SingleQueuedUnit/helperUnits"/>
+ </children>
+ <children
+ compartment="//@nodes.3/@ownedChild/@compartments.1"
+ referencedChild="//@nodes.3/@ownedChild">
+ <containmentFeature
+ href="comrel.ecore#//SingleQueuedUnit/refactoringUnit"/>
+ </children>
+ <children
+ compartment="//@nodes.3/@ownedChild/@compartments.1"
+ referencedChild="//@nodes.4/@ownedChild">
+ <containmentFeature
+ href="comrel.ecore#//SingleQueuedUnit/refactoringUnit"/>
+ </children>
+ <children
+ compartment="//@nodes.3/@ownedChild/@compartments.1"
+ referencedChild="//@nodes.5/@ownedChild">
+ <containmentFeature
+ href="comrel.ecore#//SingleQueuedUnit/refactoringUnit"/>
+ </children>
+ <children
+ compartment="//@nodes.3/@ownedChild/@compartments.1"
+ referencedChild="//@nodes.6/@ownedChild">
+ <containmentFeature
+ href="comrel.ecore#//SingleQueuedUnit/refactoringUnit"/>
+ </children>
+ <compartments
+ children="//@nodes.3/@ownedChild/@children.4 //@nodes.3/@ownedChild/@children.5 //@nodes.3/@ownedChild/@children.6 //@nodes.3/@ownedChild/@children.7">
+ <compartment
+ href="comrel.gmfgraph#SingleQueuedUnitHelperUnitsCompartment"/>
+ </compartments>
+ <compartments
+ children="//@nodes.3/@ownedChild/@children.2 //@nodes.3/@ownedChild/@children.3 //@nodes.3/@ownedChild/@children.8 //@nodes.3/@ownedChild/@children.9 //@nodes.3/@ownedChild/@children.10 //@nodes.3/@ownedChild/@children.11">
+ <compartment
+ href="comrel.gmfgraph#SingleQueuedUnitRefactoringUnitCompartment"/>
+ </compartments>
+ </ownedChild>
+ </nodes>
+ <nodes>
+ <containmentFeature
+ href="comrel.ecore#//CompositeRefactoring/mainRefactoringUnit"/>
+ <ownedChild
+ relatedDiagrams="//@diagram">
+ <domainMetaElement
+ href="comrel.ecore#//SequentialUnit"/>
+ <labelMappings
+ xsi:type="gmfmap:FeatureLabelMapping"
+ viewPattern="{0}:{1} -{2}-"
+ editorPattern="{0}:{1} -{2}-"
+ editPattern="{0}:{1} -{2}-">
+ <diagramLabel
+ href="comrel.gmfgraph#SequentialUnitLabel"/>
+ <features
+ href="comrel.ecore#//NamedElement/name"/>
+ <features
+ href="comrel.ecore#//SequentialUnit/type"/>
+ <features
+ href="comrel.ecore#//SequentialUnit/lblStrict"/>
+ </labelMappings>
+ <tool
+ xsi:type="gmftool:CreationTool"
+ href="comrel.gmftool#//@palette/@tools.0/@tools.4"/>
+ <diagramNode
+ href="comrel.gmfgraph#SequentialUnit"/>
+ <children
+ referencedChild="//@nodes.0/@ownedChild">
+ <containmentFeature
+ href="comrel.ecore#//SequentialUnit/inputPorts"/>
+ </children>
+ <children>
+ <containmentFeature
+ href="comrel.ecore#//SequentialUnit/inputPorts"/>
+ <ownedChild>
+ <domainMetaElement
+ href="comrel.ecore#//MultiInputPort"/>
+ <labelMappings
+ xsi:type="gmfmap:FeatureLabelMapping"
+ viewPattern="{0}:{1}"
+ editorPattern="{0}:{1}"
+ editPattern="{0}:{1}">
+ <diagramLabel
+ href="comrel.gmfgraph#MultiInputPortLabel"/>
+ <features
+ href="comrel.ecore#//NamedElement/name"/>
+ <features
+ href="comrel.ecore#//Port/type"/>
+ </labelMappings>
+ <tool
+ xsi:type="gmftool:CreationTool"
+ href="comrel.gmftool#//@palette/@tools.4/@tools.0"/>
+ <diagramNode
+ href="comrel.gmfgraph#MultiInputPort"/>
+ </ownedChild>
+ </children>
+ <children
+ compartment="//@nodes.4/@ownedChild/@compartments.1"
+ referencedChild="//@nodes.1/@ownedChild">
+ <containmentFeature
+ href="comrel.ecore#//SequentialUnit/refactoringUnits"/>
+ </children>
+ <children
+ compartment="//@nodes.4/@ownedChild/@compartments.1"
+ referencedChild="//@nodes.2/@ownedChild">
+ <containmentFeature
+ href="comrel.ecore#//SequentialUnit/refactoringUnits"/>
+ </children>
+ <children
+ compartment="//@nodes.4/@ownedChild/@compartments.0">
+ <containmentFeature
+ href="comrel.ecore#//SequentialUnit/helperUnits"/>
+ <ownedChild>
+ <domainMetaElement
+ href="comrel.ecore#//SingleFeatureUnit"/>
+ <labelMappings
+ xsi:type="gmfmap:FeatureLabelMapping"
+ viewPattern="{0}:{1}"
+ editorPattern="{0}:{1}"
+ editPattern="{0}:{1}">
+ <diagramLabel
+ href="comrel.gmfgraph#SingleFeatureUnitLabel"/>
+ <features
+ href="comrel.ecore#//NamedElement/name"/>
+ <features
+ href="comrel.ecore#//SingleFeatureUnit/type"/>
+ </labelMappings>
+ <tool
+ xsi:type="gmftool:CreationTool"
+ href="comrel.gmftool#//@palette/@tools.3/@tools.1"/>
+ <diagramNode
+ href="comrel.gmfgraph#SingleFeatureUnit"/>
+ <children
+ referencedChild="//@nodes.0/@ownedChild">
+ <containmentFeature
+ href="comrel.ecore#//SingleFeatureUnit/inputPort"/>
+ </children>
+ <children
+ referencedChild="//@nodes.4/@ownedChild/@children.1/@ownedChild">
+ <containmentFeature
+ href="comrel.ecore#//SingleFeatureUnit/secondaryInputPorts"/>
+ </children>
+ <children>
+ <containmentFeature
+ href="comrel.ecore#//SingleFeatureUnit/outputPort"/>
+ <ownedChild>
+ <domainMetaElement
+ href="comrel.ecore#//SingleOutputPort"/>
+ <labelMappings
+ xsi:type="gmfmap:FeatureLabelMapping"
+ viewPattern="{0}:{1}"
+ editorPattern="{0}:{1}"
+ editPattern="{0}:{1}">
+ <diagramLabel
+ href="comrel.gmfgraph#SingleOutputPortLabel"/>
+ <features
+ href="comrel.ecore#//NamedElement/name"/>
+ <features
+ href="comrel.ecore#//Port/type"/>
+ </labelMappings>
+ <tool
+ xsi:type="gmftool:CreationTool"
+ href="comrel.gmftool#//@palette/@tools.4/@tools.3"/>
+ <diagramNode
+ href="comrel.gmfgraph#SingleOutputPort"/>
+ </ownedChild>
+ </children>
+ </ownedChild>
+ </children>
+ <children
+ compartment="//@nodes.4/@ownedChild/@compartments.0">
+ <containmentFeature
+ href="comrel.ecore#//SequentialUnit/helperUnits"/>
+ <ownedChild>
+ <domainMetaElement
+ href="comrel.ecore#//MultiFeatureUnit"/>
+ <labelMappings
+ xsi:type="gmfmap:FeatureLabelMapping"
+ viewPattern="{0}:{1}"
+ editorPattern="{0}:{1}"
+ editPattern="{0}:{1}">
+ <diagramLabel
+ href="comrel.gmfgraph#MultiFeatureUnitLabel"/>
+ <features
+ href="comrel.ecore#//NamedElement/name"/>
+ <features
+ href="comrel.ecore#//MultiFeatureUnit/type"/>
+ </labelMappings>
+ <tool
+ xsi:type="gmftool:CreationTool"
+ href="comrel.gmftool#//@palette/@tools.3/@tools.0"/>
+ <diagramNode
+ href="comrel.gmfgraph#MultiFeatureUnit"/>
+ <children
+ referencedChild="//@nodes.0/@ownedChild">
+ <containmentFeature
+ href="comrel.ecore#//MultiFeatureUnit/inputPort"/>
+ </children>
+ <children
+ referencedChild="//@nodes.4/@ownedChild/@children.1/@ownedChild">
+ <containmentFeature
+ href="comrel.ecore#//MultiFeatureUnit/secondaryInputPorts"/>
+ </children>
+ <children>
+ <containmentFeature
+ href="comrel.ecore#//MultiFeatureUnit/outputPort"/>
+ <ownedChild>
+ <domainMetaElement
+ href="comrel.ecore#//MultiOutputPort"/>
+ <labelMappings
+ xsi:type="gmfmap:FeatureLabelMapping"
+ viewPattern="{0}:{1}"
+ editorPattern="{0}:{1}"
+ editPattern="{0}:{1}">
+ <diagramLabel
+ href="comrel.gmfgraph#MultiOutputPortLabel"/>
+ <features
+ href="comrel.ecore#//NamedElement/name"/>
+ <features
+ href="comrel.ecore#//Port/type"/>
+ </labelMappings>
+ <tool
+ xsi:type="gmftool:CreationTool"
+ href="comrel.gmftool#//@palette/@tools.4/@tools.1"/>
+ <diagramNode
+ href="comrel.gmfgraph#MultiOutputPort"/>
+ </ownedChild>
+ </children>
+ </ownedChild>
+ </children>
+ <children
+ compartment="//@nodes.4/@ownedChild/@compartments.0">
+ <containmentFeature
+ href="comrel.ecore#//SequentialUnit/helperUnits"/>
+ <ownedChild>
+ <domainMetaElement
+ href="comrel.ecore#//SingleFilterUnit"/>
+ <labelMappings
+ xsi:type="gmfmap:FeatureLabelMapping"
+ viewPattern="{0}:{1}"
+ editorPattern="{0}:{1}"
+ editPattern="{0}:{1}">
+ <diagramLabel
+ href="comrel.gmfgraph#SingleFilterUnitLabel"/>
+ <features
+ href="comrel.ecore#//NamedElement/name"/>
+ <features
+ href="comrel.ecore#//SingleFilterUnit/type"/>
+ </labelMappings>
+ <tool
+ xsi:type="gmftool:CreationTool"
+ href="comrel.gmftool#//@palette/@tools.2/@tools.1"/>
+ <diagramNode
+ href="comrel.gmfgraph#SingleFilterUnit"/>
+ <children
+ referencedChild="//@nodes.4/@ownedChild/@children.1/@ownedChild">
+ <containmentFeature
+ href="comrel.ecore#//SingleFilterUnit/inputPort"/>
+ </children>
+ <children
+ referencedChild="//@nodes.4/@ownedChild/@children.4/@ownedChild/@children.2/@ownedChild">
+ <containmentFeature
+ href="comrel.ecore#//SingleFilterUnit/outputPort"/>
+ </children>
+ </ownedChild>
+ </children>
+ <children
+ compartment="//@nodes.4/@ownedChild/@compartments.0">
+ <containmentFeature
+ href="comrel.ecore#//SequentialUnit/helperUnits"/>
+ <ownedChild>
+ <domainMetaElement
+ href="comrel.ecore#//MultiFilterUnit"/>
+ <labelMappings
+ xsi:type="gmfmap:FeatureLabelMapping"
+ viewPattern="{0}:{1}"
+ editorPattern="{0}:{1}"
+ editPattern="{0}:{1}">
+ <diagramLabel
+ href="comrel.gmfgraph#MultiFilterUnitLabel"/>
+ <features
+ href="comrel.ecore#//NamedElement/name"/>
+ <features
+ href="comrel.ecore#//MultiFilterUnit/type"/>
+ </labelMappings>
+ <tool
+ xsi:type="gmftool:CreationTool"
+ href="comrel.gmftool#//@palette/@tools.2/@tools.0"/>
+ <diagramNode
+ href="comrel.gmfgraph#MultiFilterUnit"/>
+ <children
+ referencedChild="//@nodes.4/@ownedChild/@children.1/@ownedChild">
+ <containmentFeature
+ href="comrel.ecore#//MultiFilterUnit/inputPort"/>
+ </children>
+ <children
+ referencedChild="//@nodes.4/@ownedChild/@children.5/@ownedChild/@children.2/@ownedChild">
+ <containmentFeature
+ href="comrel.ecore#//MultiFilterUnit/outputPort"/>
+ </children>
+ </ownedChild>
+ </children>
+ <children
+ compartment="//@nodes.4/@ownedChild/@compartments.1"
+ referencedChild="//@nodes.3/@ownedChild">
+ <containmentFeature
+ href="comrel.ecore#//SequentialUnit/refactoringUnits"/>
+ </children>
+ <children
+ compartment="//@nodes.4/@ownedChild/@compartments.1"
+ referencedChild="//@nodes.4/@ownedChild">
+ <containmentFeature
+ href="comrel.ecore#//SequentialUnit/refactoringUnits"/>
+ </children>
+ <children
+ compartment="//@nodes.4/@ownedChild/@compartments.1"
+ referencedChild="//@nodes.5/@ownedChild">
+ <containmentFeature
+ href="comrel.ecore#//SequentialUnit/refactoringUnits"/>
+ </children>
+ <children
+ compartment="//@nodes.4/@ownedChild/@compartments.1"
+ referencedChild="//@nodes.6/@ownedChild">
+ <containmentFeature
+ href="comrel.ecore#//SequentialUnit/refactoringUnits"/>
+ </children>
+ <compartments
+ children="//@nodes.4/@ownedChild/@children.4 //@nodes.4/@ownedChild/@children.5 //@nodes.4/@ownedChild/@children.6 //@nodes.4/@ownedChild/@children.7">
+ <compartment
+ href="comrel.gmfgraph#SequentialUnitHelperUnitsCompartment"/>
+ </compartments>
+ <compartments
+ children="//@nodes.4/@ownedChild/@children.2 //@nodes.4/@ownedChild/@children.3 //@nodes.4/@ownedChild/@children.8 //@nodes.4/@ownedChild/@children.9 //@nodes.4/@ownedChild/@children.10 //@nodes.4/@ownedChild/@children.11">
+ <compartment
+ href="comrel.gmfgraph#SequentialUnitRefactoringUnitsCompartment"/>
+ </compartments>
+ </ownedChild>
+ </nodes>
+ <nodes>
+ <containmentFeature
+ href="comrel.ecore#//CompositeRefactoring/mainRefactoringUnit"/>
+ <ownedChild
+ relatedDiagrams="//@diagram">
+ <domainMetaElement
+ href="comrel.ecore#//ConditionalUnit"/>
+ <labelMappings
+ xsi:type="gmfmap:FeatureLabelMapping"
+ viewPattern="{0}:{1}"
+ editorPattern="{0}:{1}"
+ editPattern="{0}:{1}">
+ <diagramLabel
+ href="comrel.gmfgraph#ConditionalUnitLabel"/>
+ <features
+ href="comrel.ecore#//NamedElement/name"/>
+ <features
+ href="comrel.ecore#//ConditionalUnit/type"/>
+ </labelMappings>
+ <tool
+ xsi:type="gmftool:CreationTool"
+ href="comrel.gmftool#//@palette/@tools.0/@tools.2"/>
+ <diagramNode
+ href="comrel.gmfgraph#ConditionalUnit"/>
+ <children
+ referencedChild="//@nodes.0/@ownedChild">
+ <containmentFeature
+ href="comrel.ecore#//ConditionalUnit/inputPorts"/>
+ </children>
+ <children
+ referencedChild="//@nodes.4/@ownedChild/@children.1/@ownedChild">
+ <containmentFeature
+ href="comrel.ecore#//ConditionalUnit/inputPorts"/>
+ </children>
+ <children
+ compartment="//@nodes.5/@ownedChild/@compartments.2"
+ referencedChild="//@nodes.1/@ownedChild">
+ <containmentFeature
+ href="comrel.ecore#//ConditionalUnit/then"/>
+ </children>
+ <children
+ compartment="//@nodes.5/@ownedChild/@compartments.2"
+ referencedChild="//@nodes.2/@ownedChild">
+ <containmentFeature
+ href="comrel.ecore#//ConditionalUnit/then"/>
+ </children>
+ <children
+ compartment="//@nodes.5/@ownedChild/@compartments.3"
+ referencedChild="//@nodes.1/@ownedChild">
+ <containmentFeature
+ href="comrel.ecore#//ConditionalUnit/else"/>
+ </children>
+ <children
+ compartment="//@nodes.5/@ownedChild/@compartments.3"
+ referencedChild="//@nodes.2/@ownedChild">
+ <containmentFeature
+ href="comrel.ecore#//ConditionalUnit/else"/>
+ </children>
+ <children
+ compartment="//@nodes.5/@ownedChild/@compartments.1"
+ referencedChild="//@nodes.4/@ownedChild/@children.4/@ownedChild">
+ <containmentFeature
+ href="comrel.ecore#//ConditionalUnit/helperUnits"/>
+ </children>
+ <children
+ compartment="//@nodes.5/@ownedChild/@compartments.1"
+ referencedChild="//@nodes.4/@ownedChild/@children.5/@ownedChild">
+ <containmentFeature
+ href="comrel.ecore#//ConditionalUnit/helperUnits"/>
+ </children>
+ <children
+ compartment="//@nodes.5/@ownedChild/@compartments.1"
+ referencedChild="//@nodes.4/@ownedChild/@children.6/@ownedChild">
+ <containmentFeature
+ href="comrel.ecore#//ConditionalUnit/helperUnits"/>
+ </children>
+ <children
+ compartment="//@nodes.5/@ownedChild/@compartments.1"
+ referencedChild="//@nodes.4/@ownedChild/@children.7/@ownedChild">
+ <containmentFeature
+ href="comrel.ecore#//ConditionalUnit/helperUnits"/>
+ </children>
+ <children
+ compartment="//@nodes.5/@ownedChild/@compartments.2"
+ referencedChild="//@nodes.3/@ownedChild">
+ <containmentFeature
+ href="comrel.ecore#//ConditionalUnit/then"/>
+ </children>
+ <children
+ compartment="//@nodes.5/@ownedChild/@compartments.3"
+ referencedChild="//@nodes.3/@ownedChild">
+ <containmentFeature
+ href="comrel.ecore#//ConditionalUnit/else"/>
+ </children>
+ <children
+ compartment="//@nodes.5/@ownedChild/@compartments.2"
+ referencedChild="//@nodes.4/@ownedChild">
+ <containmentFeature
+ href="comrel.ecore#//ConditionalUnit/then"/>
+ </children>
+ <children
+ compartment="//@nodes.5/@ownedChild/@compartments.2"
+ referencedChild="//@nodes.5/@ownedChild">
+ <containmentFeature
+ href="comrel.ecore#//ConditionalUnit/then"/>
+ </children>
+ <children
+ compartment="//@nodes.5/@ownedChild/@compartments.3"
+ referencedChild="//@nodes.4/@ownedChild">
+ <containmentFeature
+ href="comrel.ecore#//ConditionalUnit/else"/>
+ </children>
+ <children
+ compartment="//@nodes.5/@ownedChild/@compartments.3"
+ referencedChild="//@nodes.5/@ownedChild">
+ <containmentFeature
+ href="comrel.ecore#//ConditionalUnit/else"/>
+ </children>
+ <children
+ compartment="//@nodes.5/@ownedChild/@compartments.0">
+ <containmentFeature
+ href="comrel.ecore#//ConditionalUnit/if"/>
+ <ownedChild>
+ <domainMetaElement
+ href="comrel.ecore#//ConditionCheck"/>
+ <labelMappings
+ xsi:type="gmfmap:FeatureLabelMapping"
+ viewPattern="{0}:{1} -{2}-"
+ editorPattern="{0}:{1} -{2}-"
+ editPattern="{0}:{1} -{2}-">
+ <diagramLabel
+ href="comrel.gmfgraph#ConditionCheckLabel"/>
+ <features
+ href="comrel.ecore#//NamedElement/name"/>
+ <features
+ href="comrel.ecore#//ConditionCheck/type"/>
+ <features
+ href="comrel.ecore#//ConditionCheck/spec"/>
+ </labelMappings>
+ <tool
+ xsi:type="gmftool:CreationTool"
+ href="comrel.gmftool#//@palette/@tools.0/@tools.1"/>
+ <diagramNode
+ href="comrel.gmfgraph#ConditionCheck"/>
+ </ownedChild>
+ </children>
+ <children
+ compartment="//@nodes.5/@ownedChild/@compartments.2"
+ referencedChild="//@nodes.6/@ownedChild">
+ <containmentFeature
+ href="comrel.ecore#//ConditionalUnit/then"/>
+ </children>
+ <children
+ compartment="//@nodes.5/@ownedChild/@compartments.3"
+ referencedChild="//@nodes.6/@ownedChild">
+ <containmentFeature
+ href="comrel.ecore#//ConditionalUnit/else"/>
+ </children>
+ <compartments
+ children="//@nodes.5/@ownedChild/@children.16">
+ <compartment
+ href="comrel.gmfgraph#ConditionalUnitIfCompartment"/>
+ </compartments>
+ <compartments
+ children="//@nodes.5/@ownedChild/@children.6 //@nodes.5/@ownedChild/@children.7 //@nodes.5/@ownedChild/@children.8 //@nodes.5/@ownedChild/@children.9">
+ <compartment
+ href="comrel.gmfgraph#ConditionalUnitHelperUnitsCompartment"/>
+ </compartments>
+ <compartments
+ children="//@nodes.5/@ownedChild/@children.2 //@nodes.5/@ownedChild/@children.3 //@nodes.5/@ownedChild/@children.10 //@nodes.5/@ownedChild/@children.12 //@nodes.5/@ownedChild/@children.13 //@nodes.5/@ownedChild/@children.17">
+ <compartment
+ href="comrel.gmfgraph#ConditionalUnitThenCompartment"/>
+ </compartments>
+ <compartments
+ children="//@nodes.5/@ownedChild/@children.4 //@nodes.5/@ownedChild/@children.5 //@nodes.5/@ownedChild/@children.11 //@nodes.5/@ownedChild/@children.14 //@nodes.5/@ownedChild/@children.15 //@nodes.5/@ownedChild/@children.18">
+ <compartment
+ href="comrel.gmfgraph#ConditionalUnitElseCompartment"/>
+ </compartments>
+ </ownedChild>
+ </nodes>
+ <nodes>
+ <containmentFeature
+ href="comrel.ecore#//CompositeRefactoring/mainRefactoringUnit"/>
+ <ownedChild>
+ <domainMetaElement
+ href="comrel.ecore#//AtomicUnit"/>
+ <labelMappings
+ xsi:type="gmfmap:FeatureLabelMapping"
+ viewPattern="{0}:{1}"
+ editorPattern="{0}:{1}"
+ editPattern="{0}:{1}">
+ <diagramLabel
+ href="comrel.gmfgraph#AtomicUnitLabel"/>
+ <features
+ href="comrel.ecore#//AtomicUnit/label"/>
+ <features
+ href="comrel.ecore#//AtomicUnit/type"/>
+ </labelMappings>
+ <tool
+ xsi:type="gmftool:CreationTool"
+ href="comrel.gmftool#//@palette/@tools.1/@tools.0"/>
+ <diagramNode
+ href="comrel.gmfgraph#AtomicUnit"/>
+ <children
+ referencedChild="//@nodes.0/@ownedChild">
+ <containmentFeature
+ href="comrel.ecore#//AtomicUnit/inputPorts"/>
+ </children>
+ </ownedChild>
+ </nodes>
+ <links>
+ <domainMetaElement
+ href="comrel.ecore#//SinglePortMapping"/>
+ <containmentFeature
+ href="comrel.ecore#//CompositeRefactoring/portMappings"/>
+ <tool
+ xsi:type="gmftool:CreationTool"
+ href="comrel.gmftool#//@palette/@tools.5/@tools.2"/>
+ <diagramLink
+ href="comrel.gmfgraph#SinglePortMapping"/>
+ <sourceMetaFeature
+ xsi:type="ecore:EReference"
+ href="comrel.ecore#//SinglePortMapping/source"/>
+ <linkMetaFeature
+ xsi:type="ecore:EReference"
+ href="comrel.ecore#//SinglePortMapping/target"/>
+ <creationConstraints>
+ <sourceEnd
+ body="self<>oppositeEnd"/>
+ </creationConstraints>
+ </links>
+ <links>
+ <domainMetaElement
+ href="comrel.ecore#//MultiPortMapping"/>
+ <containmentFeature
+ href="comrel.ecore#//CompositeRefactoring/portMappings"/>
+ <tool
+ xsi:type="gmftool:CreationTool"
+ href="comrel.gmftool#//@palette/@tools.5/@tools.0"/>
+ <diagramLink
+ href="comrel.gmfgraph#MultiPortMapping"/>
+ <sourceMetaFeature
+ xsi:type="ecore:EReference"
+ href="comrel.ecore#//MultiPortMapping/source"/>
+ <linkMetaFeature
+ xsi:type="ecore:EReference"
+ href="comrel.ecore#//MultiPortMapping/target"/>
+ <creationConstraints>
+ <sourceEnd
+ body="self<>oppositeEnd"/>
+ </creationConstraints>
+ </links>
+ <links>
+ <domainMetaElement
+ href="comrel.ecore#//MultiSinglePortMapping"/>
+ <containmentFeature
+ href="comrel.ecore#//CompositeRefactoring/portMappings"/>
+ <tool
+ xsi:type="gmftool:CreationTool"
+ href="comrel.gmftool#//@palette/@tools.5/@tools.1"/>
+ <diagramLink
+ href="comrel.gmfgraph#MultiSinglePortMapping"/>
+ <sourceMetaFeature
+ xsi:type="ecore:EReference"
+ href="comrel.ecore#//MultiSinglePortMapping/source"/>
+ <linkMetaFeature
+ xsi:type="ecore:EReference"
+ href="comrel.ecore#//MultiSinglePortMapping/target"/>
+ <creationConstraints>
+ <sourceEnd
+ body="self<>oppositeEnd"/>
+ </creationConstraints>
+ </links>
+ <diagram>
+ <diagramCanvas
+ href="comrel.gmfgraph#comrel"/>
+ <domainModel
+ href="comrel.ecore#/"/>
+ <domainMetaElement
+ href="comrel.ecore#//CompositeRefactoring"/>
+ <palette
+ href="comrel.gmftool#//@palette"/>
+ </diagram>
+</gmfmap:Mapping>
diff --git a/org.eclipse.emf.refactor.comrel/model/comrel.gmftool b/org.eclipse.emf.refactor.comrel/model/comrel.gmftool
new file mode 100644
index 0000000..210e275
--- /dev/null
+++ b/org.eclipse.emf.refactor.comrel/model/comrel.gmftool
@@ -0,0 +1,201 @@
+<?xml version="1.0" encoding="ASCII"?>
+<gmftool:ToolRegistry xmi:version="2.0"
+ xmlns:xmi="http://www.omg.org/XMI"
+ xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+ xmlns:gmftool="http://www.eclipse.org/gmf/2005/ToolDefinition">
+ <palette
+ title="comrelPalette">
+ <tools
+ xsi:type="gmftool:ToolGroup"
+ title="Composite Units"
+ collapsible="true">
+ <tools
+ xsi:type="gmftool:CreationTool"
+ title="CartesianQueuedUnit"
+ description="Create new CartesianQueuedUnit">
+ <smallIcon
+ xsi:type="gmftool:DefaultImage"/>
+ <largeIcon
+ xsi:type="gmftool:DefaultImage"/>
+ </tools>
+ <tools
+ xsi:type="gmftool:CreationTool"
+ title="ConditionCheck"
+ description="Create new ConditionCheck">
+ <smallIcon
+ xsi:type="gmftool:DefaultImage"/>
+ <largeIcon
+ xsi:type="gmftool:DefaultImage"/>
+ </tools>
+ <tools
+ xsi:type="gmftool:CreationTool"
+ title="ConditionalUnit"
+ description="Create new ConditionalUnit">
+ <smallIcon
+ xsi:type="gmftool:DefaultImage"/>
+ <largeIcon
+ xsi:type="gmftool:DefaultImage"/>
+ </tools>
+ <tools
+ xsi:type="gmftool:CreationTool"
+ title="ParallelQueuedUnit"
+ description="Create new ParallelQueuedUnit">
+ <smallIcon
+ xsi:type="gmftool:DefaultImage"/>
+ <largeIcon
+ xsi:type="gmftool:DefaultImage"/>
+ </tools>
+ <tools
+ xsi:type="gmftool:CreationTool"
+ title="SequentialUnit"
+ description="Create new SequentialUnit">
+ <smallIcon
+ xsi:type="gmftool:DefaultImage"/>
+ <largeIcon
+ xsi:type="gmftool:DefaultImage"/>
+ </tools>
+ <tools
+ xsi:type="gmftool:CreationTool"
+ title="SingleQueuedUnit"
+ description="Create new SingleQueuedUnit">
+ <smallIcon
+ xsi:type="gmftool:DefaultImage"/>
+ <largeIcon
+ xsi:type="gmftool:DefaultImage"/>
+ </tools>
+ </tools>
+ <tools
+ xsi:type="gmftool:ToolGroup"
+ title="Atomic Units"
+ collapsible="true">
+ <tools
+ xsi:type="gmftool:CreationTool"
+ title="AtomicUnit"
+ description="Create new AtomicUnit">
+ <smallIcon
+ xsi:type="gmftool:DefaultImage"/>
+ <largeIcon
+ xsi:type="gmftool:DefaultImage"/>
+ </tools>
+ </tools>
+ <tools
+ xsi:type="gmftool:ToolGroup"
+ title="Filter Units"
+ collapsible="true">
+ <tools
+ xsi:type="gmftool:CreationTool"
+ title="MultiFilterUnit"
+ description="Create new MultiFilterUnit">
+ <smallIcon
+ xsi:type="gmftool:DefaultImage"/>
+ <largeIcon
+ xsi:type="gmftool:DefaultImage"/>
+ </tools>
+ <tools
+ xsi:type="gmftool:CreationTool"
+ title="SingleFilterUnit"
+ description="Create new SingleFilterUnit">
+ <smallIcon
+ xsi:type="gmftool:DefaultImage"/>
+ <largeIcon
+ xsi:type="gmftool:DefaultImage"/>
+ </tools>
+ </tools>
+ <tools
+ xsi:type="gmftool:ToolGroup"
+ title="Feature Units"
+ collapsible="true">
+ <tools
+ xsi:type="gmftool:CreationTool"
+ title="MultiFeatureUnit"
+ description="Create new MultiFeatureUnit">
+ <smallIcon
+ xsi:type="gmftool:DefaultImage"/>
+ <largeIcon
+ xsi:type="gmftool:DefaultImage"/>
+ </tools>
+ <tools
+ xsi:type="gmftool:CreationTool"
+ title="SingleFeatureUnit"
+ description="Create new SingleFeatureUnit">
+ <smallIcon
+ xsi:type="gmftool:DefaultImage"/>
+ <largeIcon
+ xsi:type="gmftool:DefaultImage"/>
+ </tools>
+ </tools>
+ <tools
+ xsi:type="gmftool:ToolGroup"
+ title="Ports"
+ collapsible="true">
+ <tools
+ xsi:type="gmftool:CreationTool"
+ title="MultiInputPort"
+ description="Create new MultiInputPort">
+ <smallIcon
+ xsi:type="gmftool:DefaultImage"/>
+ <largeIcon
+ xsi:type="gmftool:DefaultImage"/>
+ </tools>
+ <tools
+ xsi:type="gmftool:CreationTool"
+ title="MultiOutputPort"
+ description="Create new MultiOutputPort">
+ <smallIcon
+ xsi:type="gmftool:DefaultImage"/>
+ <largeIcon
+ xsi:type="gmftool:DefaultImage"/>
+ </tools>
+ <tools
+ xsi:type="gmftool:CreationTool"
+ title="SingleInputPort"
+ description="Create new SingleInputPort">
+ <smallIcon
+ xsi:type="gmftool:DefaultImage"/>
+ <largeIcon
+ xsi:type="gmftool:DefaultImage"/>
+ </tools>
+ <tools
+ xsi:type="gmftool:CreationTool"
+ title="SingleOutputPort"
+ description="Create new SingleOutputPort">
+ <smallIcon
+ xsi:type="gmftool:DefaultImage"/>
+ <largeIcon
+ xsi:type="gmftool:DefaultImage"/>
+ </tools>
+ </tools>
+ <tools
+ xsi:type="gmftool:ToolGroup"
+ title="Mappings"
+ collapsible="true">
+ <tools
+ xsi:type="gmftool:CreationTool"
+ title="MultiPortMapping"
+ description="Create new MultiPortMapping">
+ <smallIcon
+ xsi:type="gmftool:DefaultImage"/>
+ <largeIcon
+ xsi:type="gmftool:DefaultImage"/>
+ </tools>
+ <tools
+ xsi:type="gmftool:CreationTool"
+ title="MultiSinglePortMapping"
+ description="Create new MultiSinglePortMapping">
+ <smallIcon
+ xsi:type="gmftool:DefaultImage"/>
+ <largeIcon
+ xsi:type="gmftool:DefaultImage"/>
+ </tools>
+ <tools
+ xsi:type="gmftool:CreationTool"
+ title="SinglePortMapping"
+ description="Create new SinglePortMapping">
+ <smallIcon
+ xsi:type="gmftool:DefaultImage"/>
+ <largeIcon
+ xsi:type="gmftool:DefaultImage"/>
+ </tools>
+ </tools>
+ </palette>
+</gmftool:ToolRegistry>
diff --git a/org.eclipse.emf.refactor.comrel/model/comrel.trace b/org.eclipse.emf.refactor.comrel/model/comrel.trace
new file mode 100644
index 0000000..638fbd4
--- /dev/null
+++ b/org.eclipse.emf.refactor.comrel/model/comrel.trace
@@ -0,0 +1,861 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<trace:TraceModel xmi:version="2.0"
+ xmlns:xmi="http://www.omg.org/XMI"
+ xmlns:trace="http://www.eclipse.org/gmf/2006/Trace">
+ <nodeTraces
+ visualID="2001"
+ queryText="(let _eClass_:ecore::EClass = modelFacet.metaClass.ecoreClass in _eClass_.ePackage.nsURI = 'http://comrel/0.1' and _eClass_.name = 'SingleInputPort') and (let _containmentMF_:ecore::EStructuralFeature = modelFacet.containmentMetaFeature.ecoreFeature in (let _eClass_:ecore::EClass = _containmentMF_.eContainingClass in _eClass_.ePackage.nsURI = 'http://comrel/0.1' and _eClass_.name = 'ModelRefactoring') and _containmentMF_.name = 'inputPorts')">
+ <nodeLabelTraces
+ visualID="5001"
+ queryText="true"/>
+ </nodeTraces>
+ <nodeTraces
+ visualID="2002"
+ queryText="(let _eClass_:ecore::EClass = modelFacet.metaClass.ecoreClass in _eClass_.ePackage.nsURI = 'http://comrel/0.1' and _eClass_.name = 'CartesianQueuedUnit') and (let _containmentMF_:ecore::EStructuralFeature = modelFacet.containmentMetaFeature.ecoreFeature in (let _eClass_:ecore::EClass = _containmentMF_.eContainingClass in _eClass_.ePackage.nsURI = 'http://comrel/0.1' and _eClass_.name = 'CompositeRefactoring') and _containmentMF_.name = 'mainRefactoringUnit')">
+ <nodeLabelTraces
+ visualID="5080"
+ queryText="true"/>
+ <compartmentTraces
+ visualID="7001"
+ queryText="true"/>
+ <compartmentTraces
+ visualID="7002"
+ queryText="true"/>
+ </nodeTraces>
+ <nodeTraces
+ visualID="2003"
+ queryText="(let _eClass_:ecore::EClass = modelFacet.metaClass.ecoreClass in _eClass_.ePackage.nsURI = 'http://comrel/0.1' and _eClass_.name = 'ParallelQueuedUnit') and (let _containmentMF_:ecore::EStructuralFeature = modelFacet.containmentMetaFeature.ecoreFeature in (let _eClass_:ecore::EClass = _containmentMF_.eContainingClass in _eClass_.ePackage.nsURI = 'http://comrel/0.1' and _eClass_.name = 'CompositeRefactoring') and _containmentMF_.name = 'mainRefactoringUnit')">
+ <nodeLabelTraces
+ visualID="5081"
+ queryText="true"/>
+ <compartmentTraces
+ visualID="7075"
+ queryText="true"/>
+ <compartmentTraces
+ visualID="7076"
+ queryText="true"/>
+ </nodeTraces>
+ <nodeTraces
+ visualID="2004"
+ queryText="(let _eClass_:ecore::EClass = modelFacet.metaClass.ecoreClass in _eClass_.ePackage.nsURI = 'http://comrel/0.1' and _eClass_.name = 'SingleQueuedUnit') and (let _containmentMF_:ecore::EStructuralFeature = modelFacet.containmentMetaFeature.ecoreFeature in (let _eClass_:ecore::EClass = _containmentMF_.eContainingClass in _eClass_.ePackage.nsURI = 'http://comrel/0.1' and _eClass_.name = 'CompositeRefactoring') and _containmentMF_.name = 'mainRefactoringUnit')">
+ <nodeLabelTraces
+ visualID="5082"
+ queryText="true"/>
+ <compartmentTraces
+ visualID="7077"
+ queryText="true"/>
+ <compartmentTraces
+ visualID="7078"
+ queryText="true"/>
+ </nodeTraces>
+ <nodeTraces
+ visualID="2005"
+ queryText="(let _eClass_:ecore::EClass = modelFacet.metaClass.ecoreClass in _eClass_.ePackage.nsURI = 'http://comrel/0.1' and _eClass_.name = 'SequentialUnit') and (let _containmentMF_:ecore::EStructuralFeature = modelFacet.containmentMetaFeature.ecoreFeature in (let _eClass_:ecore::EClass = _containmentMF_.eContainingClass in _eClass_.ePackage.nsURI = 'http://comrel/0.1' and _eClass_.name = 'CompositeRefactoring') and _containmentMF_.name = 'mainRefactoringUnit')">
+ <nodeLabelTraces
+ visualID="5083"
+ queryText="true"/>
+ <compartmentTraces
+ visualID="7079"
+ queryText="true"/>
+ <compartmentTraces
+ visualID="7080"
+ queryText="true"/>
+ </nodeTraces>
+ <nodeTraces
+ visualID="2006"
+ queryText="(let _eClass_:ecore::EClass = modelFacet.metaClass.ecoreClass in _eClass_.ePackage.nsURI = 'http://comrel/0.1' and _eClass_.name = 'ConditionalUnit') and (let _containmentMF_:ecore::EStructuralFeature = modelFacet.containmentMetaFeature.ecoreFeature in (let _eClass_:ecore::EClass = _containmentMF_.eContainingClass in _eClass_.ePackage.nsURI = 'http://comrel/0.1' and _eClass_.name = 'CompositeRefactoring') and _containmentMF_.name = 'mainRefactoringUnit')">
+ <nodeLabelTraces
+ visualID="5084"
+ queryText="true"/>
+ <compartmentTraces
+ visualID="7081"
+ queryText="true"/>
+ <compartmentTraces
+ visualID="7082"
+ queryText="true"/>
+ <compartmentTraces
+ visualID="7083"
+ queryText="true"/>
+ <compartmentTraces
+ visualID="7084"
+ queryText="true"/>
+ </nodeTraces>
+ <nodeTraces
+ visualID="2007"
+ queryText="(let _eClass_:ecore::EClass = modelFacet.metaClass.ecoreClass in _eClass_.ePackage.nsURI = 'http://comrel/0.1' and _eClass_.name = 'AtomicUnit') and (let _containmentMF_:ecore::EStructuralFeature = modelFacet.containmentMetaFeature.ecoreFeature in (let _eClass_:ecore::EClass = _containmentMF_.eContainingClass in _eClass_.ePackage.nsURI = 'http://comrel/0.1' and _eClass_.name = 'CompositeRefactoring') and _containmentMF_.name = 'mainRefactoringUnit')">
+ <nodeLabelTraces
+ visualID="5085"
+ queryText="true"/>
+ </nodeTraces>
+ <childNodeTraces
+ visualID="3001"
+ queryText="(let _eClass_:ecore::EClass = modelFacet.metaClass.ecoreClass in _eClass_.ePackage.nsURI = 'http://comrel/0.1' and _eClass_.name = 'SingleInputPort') and (let _containmentMF_:ecore::EStructuralFeature = modelFacet.containmentMetaFeature.ecoreFeature in (let _eClass_:ecore::EClass = _containmentMF_.eContainingClass in _eClass_.ePackage.nsURI = 'http://comrel/0.1' and _eClass_.name = 'CartesianQueuedUnit') and _containmentMF_.name = 'singleInputPorts')">
+ <nodeLabelTraces
+ visualID="5002"
+ queryText="true"/>
+ </childNodeTraces>
+ <childNodeTraces
+ visualID="3002"
+ queryText="(let _eClass_:ecore::EClass = modelFacet.metaClass.ecoreClass in _eClass_.ePackage.nsURI = 'http://comrel/0.1' and _eClass_.name = 'MultiInputPort') and (let _containmentMF_:ecore::EStructuralFeature = modelFacet.containmentMetaFeature.ecoreFeature in (let _eClass_:ecore::EClass = _containmentMF_.eContainingClass in _eClass_.ePackage.nsURI = 'http://comrel/0.1' and _eClass_.name = 'CartesianQueuedUnit') and _containmentMF_.name = 'multiInputPorts')">
+ <nodeLabelTraces
+ visualID="5003"
+ queryText="true"/>
+ </childNodeTraces>
+ <childNodeTraces
+ visualID="3003"
+ queryText="(let _eClass_:ecore::EClass = modelFacet.metaClass.ecoreClass in _eClass_.ePackage.nsURI = 'http://comrel/0.1' and _eClass_.name = 'CartesianQueuedUnit') and (let _containmentMF_:ecore::EStructuralFeature = modelFacet.containmentMetaFeature.ecoreFeature in (let _eClass_:ecore::EClass = _containmentMF_.eContainingClass in _eClass_.ePackage.nsURI = 'http://comrel/0.1' and _eClass_.name = 'CartesianQueuedUnit') and _containmentMF_.name = 'refactoringUnit')">
+ <nodeLabelTraces
+ visualID="5079"
+ queryText="true"/>
+ <compartmentTraces
+ visualID="7003"
+ queryText="true"/>
+ <compartmentTraces
+ visualID="7004"
+ queryText="true"/>
+ </childNodeTraces>
+ <childNodeTraces
+ visualID="3004"
+ queryText="(let _eClass_:ecore::EClass = modelFacet.metaClass.ecoreClass in _eClass_.ePackage.nsURI = 'http://comrel/0.1' and _eClass_.name = 'ParallelQueuedUnit') and (let _containmentMF_:ecore::EStructuralFeature = modelFacet.containmentMetaFeature.ecoreFeature in (let _eClass_:ecore::EClass = _containmentMF_.eContainingClass in _eClass_.ePackage.nsURI = 'http://comrel/0.1' and _eClass_.name = 'CartesianQueuedUnit') and _containmentMF_.name = 'refactoringUnit')">
+ <nodeLabelTraces
+ visualID="5078"
+ queryText="true"/>
+ <compartmentTraces
+ visualID="7005"
+ queryText="true"/>
+ <compartmentTraces
+ visualID="7006"
+ queryText="true"/>
+ </childNodeTraces>
+ <childNodeTraces
+ visualID="3005"
+ queryText="(let _eClass_:ecore::EClass = modelFacet.metaClass.ecoreClass in _eClass_.ePackage.nsURI = 'http://comrel/0.1' and _eClass_.name = 'SingleInputPort') and (let _containmentMF_:ecore::EStructuralFeature = modelFacet.containmentMetaFeature.ecoreFeature in (let _eClass_:ecore::EClass = _containmentMF_.eContainingClass in _eClass_.ePackage.nsURI = 'http://comrel/0.1' and _eClass_.name = 'ParallelQueuedUnit') and _containmentMF_.name = 'singleInputPorts')">
+ <nodeLabelTraces
+ visualID="5004"
+ queryText="true"/>
+ </childNodeTraces>
+ <childNodeTraces
+ visualID="3006"
+ queryText="(let _eClass_:ecore::EClass = modelFacet.metaClass.ecoreClass in _eClass_.ePackage.nsURI = 'http://comrel/0.1' and _eClass_.name = 'MultiInputPort') and (let _containmentMF_:ecore::EStructuralFeature = modelFacet.containmentMetaFeature.ecoreFeature in (let _eClass_:ecore::EClass = _containmentMF_.eContainingClass in _eClass_.ePackage.nsURI = 'http://comrel/0.1' and _eClass_.name = 'ParallelQueuedUnit') and _containmentMF_.name = 'multiInputPorts')">
+ <nodeLabelTraces
+ visualID="5005"
+ queryText="true"/>
+ </childNodeTraces>
+ <childNodeTraces
+ visualID="3007"
+ queryText="(let _eClass_:ecore::EClass = modelFacet.metaClass.ecoreClass in _eClass_.ePackage.nsURI = 'http://comrel/0.1' and _eClass_.name = 'CartesianQueuedUnit') and (let _containmentMF_:ecore::EStructuralFeature = modelFacet.containmentMetaFeature.ecoreFeature in (let _eClass_:ecore::EClass = _containmentMF_.eContainingClass in _eClass_.ePackage.nsURI = 'http://comrel/0.1' and _eClass_.name = 'ParallelQueuedUnit') and _containmentMF_.name = 'refactoringUnits')">
+ <nodeLabelTraces
+ visualID="5077"
+ queryText="true"/>
+ <compartmentTraces
+ visualID="7007"
+ queryText="true"/>
+ <compartmentTraces
+ visualID="7008"
+ queryText="true"/>
+ </childNodeTraces>
+ <childNodeTraces
+ visualID="3008"
+ queryText="(let _eClass_:ecore::EClass = modelFacet.metaClass.ecoreClass in _eClass_.ePackage.nsURI = 'http://comrel/0.1' and _eClass_.name = 'SingleFeatureUnit') and (let _containmentMF_:ecore::EStructuralFeature = modelFacet.containmentMetaFeature.ecoreFeature in (let _eClass_:ecore::EClass = _containmentMF_.eContainingClass in _eClass_.ePackage.nsURI = 'http://comrel/0.1' and _eClass_.name = 'CartesianQueuedUnit') and _containmentMF_.name = 'helperUnits')">
+ <nodeLabelTraces
+ visualID="5009"
+ queryText="true"/>
+ </childNodeTraces>
+ <childNodeTraces
+ visualID="3009"
+ queryText="(let _eClass_:ecore::EClass = modelFacet.metaClass.ecoreClass in _eClass_.ePackage.nsURI = 'http://comrel/0.1' and _eClass_.name = 'SingleInputPort') and (let _containmentMF_:ecore::EStructuralFeature = modelFacet.containmentMetaFeature.ecoreFeature in (let _eClass_:ecore::EClass = _containmentMF_.eContainingClass in _eClass_.ePackage.nsURI = 'http://comrel/0.1' and _eClass_.name = 'SingleFeatureUnit') and _containmentMF_.name = 'inputPort')">
+ <nodeLabelTraces
+ visualID="5006"
+ queryText="true"/>
+ </childNodeTraces>
+ <childNodeTraces
+ visualID="3010"
+ queryText="(let _eClass_:ecore::EClass = modelFacet.metaClass.ecoreClass in _eClass_.ePackage.nsURI = 'http://comrel/0.1' and _eClass_.name = 'MultiInputPort') and (let _containmentMF_:ecore::EStructuralFeature = modelFacet.containmentMetaFeature.ecoreFeature in (let _eClass_:ecore::EClass = _containmentMF_.eContainingClass in _eClass_.ePackage.nsURI = 'http://comrel/0.1' and _eClass_.name = 'SingleFeatureUnit') and _containmentMF_.name = 'secondaryInputPorts')">
+ <nodeLabelTraces
+ visualID="5007"
+ queryText="true"/>
+ </childNodeTraces>
+ <childNodeTraces
+ visualID="3011"
+ queryText="(let _eClass_:ecore::EClass = modelFacet.metaClass.ecoreClass in _eClass_.ePackage.nsURI = 'http://comrel/0.1' and _eClass_.name = 'SingleOutputPort') and (let _containmentMF_:ecore::EStructuralFeature = modelFacet.containmentMetaFeature.ecoreFeature in (let _eClass_:ecore::EClass = _containmentMF_.eContainingClass in _eClass_.ePackage.nsURI = 'http://comrel/0.1' and _eClass_.name = 'SingleFeatureUnit') and _containmentMF_.name = 'outputPort')">
+ <nodeLabelTraces
+ visualID="5008"
+ queryText="true"/>
+ </childNodeTraces>
+ <childNodeTraces
+ visualID="3012"
+ queryText="(let _eClass_:ecore::EClass = modelFacet.metaClass.ecoreClass in _eClass_.ePackage.nsURI = 'http://comrel/0.1' and _eClass_.name = 'MultiFeatureUnit') and (let _containmentMF_:ecore::EStructuralFeature = modelFacet.containmentMetaFeature.ecoreFeature in (let _eClass_:ecore::EClass = _containmentMF_.eContainingClass in _eClass_.ePackage.nsURI = 'http://comrel/0.1' and _eClass_.name = 'CartesianQueuedUnit') and _containmentMF_.name = 'helperUnits')">
+ <nodeLabelTraces
+ visualID="5013"
+ queryText="true"/>
+ </childNodeTraces>
+ <childNodeTraces
+ visualID="3013"
+ queryText="(let _eClass_:ecore::EClass = modelFacet.metaClass.ecoreClass in _eClass_.ePackage.nsURI = 'http://comrel/0.1' and _eClass_.name = 'SingleInputPort') and (let _containmentMF_:ecore::EStructuralFeature = modelFacet.containmentMetaFeature.ecoreFeature in (let _eClass_:ecore::EClass = _containmentMF_.eContainingClass in _eClass_.ePackage.nsURI = 'http://comrel/0.1' and _eClass_.name = 'MultiFeatureUnit') and _containmentMF_.name = 'inputPort')">
+ <nodeLabelTraces
+ visualID="5010"
+ queryText="true"/>
+ </childNodeTraces>
+ <childNodeTraces
+ visualID="3014"
+ queryText="(let _eClass_:ecore::EClass = modelFacet.metaClass.ecoreClass in _eClass_.ePackage.nsURI = 'http://comrel/0.1' and _eClass_.name = 'MultiInputPort') and (let _containmentMF_:ecore::EStructuralFeature = modelFacet.containmentMetaFeature.ecoreFeature in (let _eClass_:ecore::EClass = _containmentMF_.eContainingClass in _eClass_.ePackage.nsURI = 'http://comrel/0.1' and _eClass_.name = 'MultiFeatureUnit') and _containmentMF_.name = 'secondaryInputPorts')">
+ <nodeLabelTraces
+ visualID="5011"
+ queryText="true"/>
+ </childNodeTraces>
+ <childNodeTraces
+ visualID="3015"
+ queryText="(let _eClass_:ecore::EClass = modelFacet.metaClass.ecoreClass in _eClass_.ePackage.nsURI = 'http://comrel/0.1' and _eClass_.name = 'MultiOutputPort') and (let _containmentMF_:ecore::EStructuralFeature = modelFacet.containmentMetaFeature.ecoreFeature in (let _eClass_:ecore::EClass = _containmentMF_.eContainingClass in _eClass_.ePackage.nsURI = 'http://comrel/0.1' and _eClass_.name = 'MultiFeatureUnit') and _containmentMF_.name = 'outputPort')">
+ <nodeLabelTraces
+ visualID="5012"
+ queryText="true"/>
+ </childNodeTraces>
+ <childNodeTraces
+ visualID="3016"
+ queryText="(let _eClass_:ecore::EClass = modelFacet.metaClass.ecoreClass in _eClass_.ePackage.nsURI = 'http://comrel/0.1' and _eClass_.name = 'SingleFilterUnit') and (let _containmentMF_:ecore::EStructuralFeature = modelFacet.containmentMetaFeature.ecoreFeature in (let _eClass_:ecore::EClass = _containmentMF_.eContainingClass in _eClass_.ePackage.nsURI = 'http://comrel/0.1' and _eClass_.name = 'CartesianQueuedUnit') and _containmentMF_.name = 'helperUnits')">
+ <nodeLabelTraces
+ visualID="5016"
+ queryText="true"/>
+ </childNodeTraces>
+ <childNodeTraces
+ visualID="3017"
+ queryText="(let _eClass_:ecore::EClass = modelFacet.metaClass.ecoreClass in _eClass_.ePackage.nsURI = 'http://comrel/0.1' and _eClass_.name = 'MultiInputPort') and (let _containmentMF_:ecore::EStructuralFeature = modelFacet.containmentMetaFeature.ecoreFeature in (let _eClass_:ecore::EClass = _containmentMF_.eContainingClass in _eClass_.ePackage.nsURI = 'http://comrel/0.1' and _eClass_.name = 'SingleFilterUnit') and _containmentMF_.name = 'inputPort')">
+ <nodeLabelTraces
+ visualID="5014"
+ queryText="true"/>
+ </childNodeTraces>
+ <childNodeTraces
+ visualID="3018"
+ queryText="(let _eClass_:ecore::EClass = modelFacet.metaClass.ecoreClass in _eClass_.ePackage.nsURI = 'http://comrel/0.1' and _eClass_.name = 'SingleOutputPort') and (let _containmentMF_:ecore::EStructuralFeature = modelFacet.containmentMetaFeature.ecoreFeature in (let _eClass_:ecore::EClass = _containmentMF_.eContainingClass in _eClass_.ePackage.nsURI = 'http://comrel/0.1' and _eClass_.name = 'SingleFilterUnit') and _containmentMF_.name = 'outputPort')">
+ <nodeLabelTraces
+ visualID="5015"
+ queryText="true"/>
+ </childNodeTraces>
+ <childNodeTraces
+ visualID="3019"
+ queryText="(let _eClass_:ecore::EClass = modelFacet.metaClass.ecoreClass in _eClass_.ePackage.nsURI = 'http://comrel/0.1' and _eClass_.name = 'MultiFilterUnit') and (let _containmentMF_:ecore::EStructuralFeature = modelFacet.containmentMetaFeature.ecoreFeature in (let _eClass_:ecore::EClass = _containmentMF_.eContainingClass in _eClass_.ePackage.nsURI = 'http://comrel/0.1' and _eClass_.name = 'CartesianQueuedUnit') and _containmentMF_.name = 'helperUnits')">
+ <nodeLabelTraces
+ visualID="5019"
+ queryText="true"/>
+ </childNodeTraces>
+ <childNodeTraces
+ visualID="3020"
+ queryText="(let _eClass_:ecore::EClass = modelFacet.metaClass.ecoreClass in _eClass_.ePackage.nsURI = 'http://comrel/0.1' and _eClass_.name = 'MultiInputPort') and (let _containmentMF_:ecore::EStructuralFeature = modelFacet.containmentMetaFeature.ecoreFeature in (let _eClass_:ecore::EClass = _containmentMF_.eContainingClass in _eClass_.ePackage.nsURI = 'http://comrel/0.1' and _eClass_.name = 'MultiFilterUnit') and _containmentMF_.name = 'inputPort')">
+ <nodeLabelTraces
+ visualID="5017"
+ queryText="true"/>
+ </childNodeTraces>
+ <childNodeTraces
+ visualID="3021"
+ queryText="(let _eClass_:ecore::EClass = modelFacet.metaClass.ecoreClass in _eClass_.ePackage.nsURI = 'http://comrel/0.1' and _eClass_.name = 'MultiOutputPort') and (let _containmentMF_:ecore::EStructuralFeature = modelFacet.containmentMetaFeature.ecoreFeature in (let _eClass_:ecore::EClass = _containmentMF_.eContainingClass in _eClass_.ePackage.nsURI = 'http://comrel/0.1' and _eClass_.name = 'MultiFilterUnit') and _containmentMF_.name = 'outputPort')">
+ <nodeLabelTraces
+ visualID="5018"
+ queryText="true"/>
+ </childNodeTraces>
+ <childNodeTraces
+ visualID="3022"
+ queryText="(let _eClass_:ecore::EClass = modelFacet.metaClass.ecoreClass in _eClass_.ePackage.nsURI = 'http://comrel/0.1' and _eClass_.name = 'SingleQueuedUnit') and (let _containmentMF_:ecore::EStructuralFeature = modelFacet.containmentMetaFeature.ecoreFeature in (let _eClass_:ecore::EClass = _containmentMF_.eContainingClass in _eClass_.ePackage.nsURI = 'http://comrel/0.1' and _eClass_.name = 'CartesianQueuedUnit') and _containmentMF_.name = 'refactoringUnit')">
+ <nodeLabelTraces
+ visualID="5076"
+ queryText="true"/>
+ <compartmentTraces
+ visualID="7009"
+ queryText="true"/>
+ <compartmentTraces
+ visualID="7010"
+ queryText="true"/>
+ </childNodeTraces>
+ <childNodeTraces
+ visualID="3023"
+ queryText="(let _eClass_:ecore::EClass = modelFacet.metaClass.ecoreClass in _eClass_.ePackage.nsURI = 'http://comrel/0.1' and _eClass_.name = 'SingleInputPort') and (let _containmentMF_:ecore::EStructuralFeature = modelFacet.containmentMetaFeature.ecoreFeature in (let _eClass_:ecore::EClass = _containmentMF_.eContainingClass in _eClass_.ePackage.nsURI = 'http://comrel/0.1' and _eClass_.name = 'SingleQueuedUnit') and _containmentMF_.name = 'singleInputPorts')">
+ <nodeLabelTraces
+ visualID="5020"
+ queryText="true"/>
+ </childNodeTraces>
+ <childNodeTraces
+ visualID="3024"
+ queryText="(let _eClass_:ecore::EClass = modelFacet.metaClass.ecoreClass in _eClass_.ePackage.nsURI = 'http://comrel/0.1' and _eClass_.name = 'MultiInputPort') and (let _containmentMF_:ecore::EStructuralFeature = modelFacet.containmentMetaFeature.ecoreFeature in (let _eClass_:ecore::EClass = _containmentMF_.eContainingClass in _eClass_.ePackage.nsURI = 'http://comrel/0.1' and _eClass_.name = 'SingleQueuedUnit') and _containmentMF_.name = 'multiInputPort')">
+ <nodeLabelTraces
+ visualID="5021"
+ queryText="true"/>
+ </childNodeTraces>
+ <childNodeTraces
+ visualID="3025"
+ queryText="(let _eClass_:ecore::EClass = modelFacet.metaClass.ecoreClass in _eClass_.ePackage.nsURI = 'http://comrel/0.1' and _eClass_.name = 'CartesianQueuedUnit') and (let _containmentMF_:ecore::EStructuralFeature = modelFacet.containmentMetaFeature.ecoreFeature in (let _eClass_:ecore::EClass = _containmentMF_.eContainingClass in _eClass_.ePackage.nsURI = 'http://comrel/0.1' and _eClass_.name = 'SingleQueuedUnit') and _containmentMF_.name = 'refactoringUnit')">
+ <nodeLabelTraces
+ visualID="5075"
+ queryText="true"/>
+ <compartmentTraces
+ visualID="7011"
+ queryText="true"/>
+ <compartmentTraces
+ visualID="7012"
+ queryText="true"/>
+ </childNodeTraces>
+ <childNodeTraces
+ visualID="3026"
+ queryText="(let _eClass_:ecore::EClass = modelFacet.metaClass.ecoreClass in _eClass_.ePackage.nsURI = 'http://comrel/0.1' and _eClass_.name = 'SequentialUnit') and (let _containmentMF_:ecore::EStructuralFeature = modelFacet.containmentMetaFeature.ecoreFeature in (let _eClass_:ecore::EClass = _containmentMF_.eContainingClass in _eClass_.ePackage.nsURI = 'http://comrel/0.1' and _eClass_.name = 'CartesianQueuedUnit') and _containmentMF_.name = 'refactoringUnit')">
+ <nodeLabelTraces
+ visualID="5074"
+ queryText="true"/>
+ <compartmentTraces
+ visualID="7013"
+ queryText="true"/>
+ <compartmentTraces
+ visualID="7014"
+ queryText="true"/>
+ </childNodeTraces>
+ <childNodeTraces
+ visualID="3027"
+ queryText="(let _eClass_:ecore::EClass = modelFacet.metaClass.ecoreClass in _eClass_.ePackage.nsURI = 'http://comrel/0.1' and _eClass_.name = 'SingleInputPort') and (let _containmentMF_:ecore::EStructuralFeature = modelFacet.containmentMetaFeature.ecoreFeature in (let _eClass_:ecore::EClass = _containmentMF_.eContainingClass in _eClass_.ePackage.nsURI = 'http://comrel/0.1' and _eClass_.name = 'SequentialUnit') and _containmentMF_.name = 'inputPorts')">
+ <nodeLabelTraces
+ visualID="5022"
+ queryText="true"/>
+ </childNodeTraces>
+ <childNodeTraces
+ visualID="3028"
+ queryText="(let _eClass_:ecore::EClass = modelFacet.metaClass.ecoreClass in _eClass_.ePackage.nsURI = 'http://comrel/0.1' and _eClass_.name = 'MultiInputPort') and (let _containmentMF_:ecore::EStructuralFeature = modelFacet.containmentMetaFeature.ecoreFeature in (let _eClass_:ecore::EClass = _containmentMF_.eContainingClass in _eClass_.ePackage.nsURI = 'http://comrel/0.1' and _eClass_.name = 'SequentialUnit') and _containmentMF_.name = 'inputPorts')">
+ <nodeLabelTraces
+ visualID="5023"
+ queryText="true"/>
+ </childNodeTraces>
+ <childNodeTraces
+ visualID="3029"
+ queryText="(let _eClass_:ecore::EClass = modelFacet.metaClass.ecoreClass in _eClass_.ePackage.nsURI = 'http://comrel/0.1' and _eClass_.name = 'CartesianQueuedUnit') and (let _containmentMF_:ecore::EStructuralFeature = modelFacet.containmentMetaFeature.ecoreFeature in (let _eClass_:ecore::EClass = _containmentMF_.eContainingClass in _eClass_.ePackage.nsURI = 'http://comrel/0.1' and _eClass_.name = 'SequentialUnit') and _containmentMF_.name = 'refactoringUnits')">
+ <nodeLabelTraces
+ visualID="5073"
+ queryText="true"/>
+ <compartmentTraces
+ visualID="7015"
+ queryText="true"/>
+ <compartmentTraces
+ visualID="7016"
+ queryText="true"/>
+ </childNodeTraces>
+ <childNodeTraces
+ visualID="3030"
+ queryText="(let _eClass_:ecore::EClass = modelFacet.metaClass.ecoreClass in _eClass_.ePackage.nsURI = 'http://comrel/0.1' and _eClass_.name = 'ConditionalUnit') and (let _containmentMF_:ecore::EStructuralFeature = modelFacet.containmentMetaFeature.ecoreFeature in (let _eClass_:ecore::EClass = _containmentMF_.eContainingClass in _eClass_.ePackage.nsURI = 'http://comrel/0.1' and _eClass_.name = 'CartesianQueuedUnit') and _containmentMF_.name = 'refactoringUnit')">
+ <nodeLabelTraces
+ visualID="5072"
+ queryText="true"/>
+ <compartmentTraces
+ visualID="7017"
+ queryText="true"/>
+ <compartmentTraces
+ visualID="7018"
+ queryText="true"/>
+ <compartmentTraces
+ visualID="7019"
+ queryText="true"/>
+ <compartmentTraces
+ visualID="7020"
+ queryText="true"/>
+ </childNodeTraces>
+ <childNodeTraces
+ visualID="3031"
+ queryText="(let _eClass_:ecore::EClass = modelFacet.metaClass.ecoreClass in _eClass_.ePackage.nsURI = 'http://comrel/0.1' and _eClass_.name = 'SingleInputPort') and (let _containmentMF_:ecore::EStructuralFeature = modelFacet.containmentMetaFeature.ecoreFeature in (let _eClass_:ecore::EClass = _containmentMF_.eContainingClass in _eClass_.ePackage.nsURI = 'http://comrel/0.1' and _eClass_.name = 'ConditionalUnit') and _containmentMF_.name = 'inputPorts')">
+ <nodeLabelTraces
+ visualID="5024"
+ queryText="true"/>
+ </childNodeTraces>
+ <childNodeTraces
+ visualID="3032"
+ queryText="(let _eClass_:ecore::EClass = modelFacet.metaClass.ecoreClass in _eClass_.ePackage.nsURI = 'http://comrel/0.1' and _eClass_.name = 'MultiInputPort') and (let _containmentMF_:ecore::EStructuralFeature = modelFacet.containmentMetaFeature.ecoreFeature in (let _eClass_:ecore::EClass = _containmentMF_.eContainingClass in _eClass_.ePackage.nsURI = 'http://comrel/0.1' and _eClass_.name = 'ConditionalUnit') and _containmentMF_.name = 'inputPorts')">
+ <nodeLabelTraces
+ visualID="5025"
+ queryText="true"/>
+ </childNodeTraces>
+ <childNodeTraces
+ visualID="3033"
+ queryText="(let _eClass_:ecore::EClass = modelFacet.metaClass.ecoreClass in _eClass_.ePackage.nsURI = 'http://comrel/0.1' and _eClass_.name = 'CartesianQueuedUnit') and (let _containmentMF_:ecore::EStructuralFeature = modelFacet.containmentMetaFeature.ecoreFeature in (let _eClass_:ecore::EClass = _containmentMF_.eContainingClass in _eClass_.ePackage.nsURI = 'http://comrel/0.1' and _eClass_.name = 'ConditionalUnit') and _containmentMF_.name = 'then')">
+ <nodeLabelTraces
+ visualID="5028"
+ queryText="true"/>
+ <compartmentTraces
+ visualID="7021"
+ queryText="true"/>
+ <compartmentTraces
+ visualID="7022"
+ queryText="true"/>
+ </childNodeTraces>
+ <childNodeTraces
+ visualID="3034"
+ queryText="(let _eClass_:ecore::EClass = modelFacet.metaClass.ecoreClass in _eClass_.ePackage.nsURI = 'http://comrel/0.1' and _eClass_.name = 'AtomicUnit') and (let _containmentMF_:ecore::EStructuralFeature = modelFacet.containmentMetaFeature.ecoreFeature in (let _eClass_:ecore::EClass = _containmentMF_.eContainingClass in _eClass_.ePackage.nsURI = 'http://comrel/0.1' and _eClass_.name = 'CartesianQueuedUnit') and _containmentMF_.name = 'refactoringUnit')">
+ <nodeLabelTraces
+ visualID="5027"
+ queryText="true"/>
+ </childNodeTraces>
+ <childNodeTraces
+ visualID="3035"
+ queryText="(let _eClass_:ecore::EClass = modelFacet.metaClass.ecoreClass in _eClass_.ePackage.nsURI = 'http://comrel/0.1' and _eClass_.name = 'SingleInputPort') and (let _containmentMF_:ecore::EStructuralFeature = modelFacet.containmentMetaFeature.ecoreFeature in (let _eClass_:ecore::EClass = _containmentMF_.eContainingClass in _eClass_.ePackage.nsURI = 'http://comrel/0.1' and _eClass_.name = 'AtomicUnit') and _containmentMF_.name = 'inputPorts')">
+ <nodeLabelTraces
+ visualID="5026"
+ queryText="true"/>
+ </childNodeTraces>
+ <childNodeTraces
+ visualID="3036"
+ queryText="(let _eClass_:ecore::EClass = modelFacet.metaClass.ecoreClass in _eClass_.ePackage.nsURI = 'http://comrel/0.1' and _eClass_.name = 'ParallelQueuedUnit') and (let _containmentMF_:ecore::EStructuralFeature = modelFacet.containmentMetaFeature.ecoreFeature in (let _eClass_:ecore::EClass = _containmentMF_.eContainingClass in _eClass_.ePackage.nsURI = 'http://comrel/0.1' and _eClass_.name = 'ConditionalUnit') and _containmentMF_.name = 'then')">
+ <nodeLabelTraces
+ visualID="5071"
+ queryText="true"/>
+ <compartmentTraces
+ visualID="7023"
+ queryText="true"/>
+ <compartmentTraces
+ visualID="7024"
+ queryText="true"/>
+ </childNodeTraces>
+ <childNodeTraces
+ visualID="3037"
+ queryText="(let _eClass_:ecore::EClass = modelFacet.metaClass.ecoreClass in _eClass_.ePackage.nsURI = 'http://comrel/0.1' and _eClass_.name = 'ParallelQueuedUnit') and (let _containmentMF_:ecore::EStructuralFeature = modelFacet.containmentMetaFeature.ecoreFeature in (let _eClass_:ecore::EClass = _containmentMF_.eContainingClass in _eClass_.ePackage.nsURI = 'http://comrel/0.1' and _eClass_.name = 'ParallelQueuedUnit') and _containmentMF_.name = 'refactoringUnits')">
+ <nodeLabelTraces
+ visualID="5070"
+ queryText="true"/>
+ <compartmentTraces
+ visualID="7025"
+ queryText="true"/>
+ <compartmentTraces
+ visualID="7026"
+ queryText="true"/>
+ </childNodeTraces>
+ <childNodeTraces
+ visualID="3038"
+ queryText="(let _eClass_:ecore::EClass = modelFacet.metaClass.ecoreClass in _eClass_.ePackage.nsURI = 'http://comrel/0.1' and _eClass_.name = 'SingleFeatureUnit') and (let _containmentMF_:ecore::EStructuralFeature = modelFacet.containmentMetaFeature.ecoreFeature in (let _eClass_:ecore::EClass = _containmentMF_.eContainingClass in _eClass_.ePackage.nsURI = 'http://comrel/0.1' and _eClass_.name = 'ParallelQueuedUnit') and _containmentMF_.name = 'helperUnits')">
+ <nodeLabelTraces
+ visualID="5029"
+ queryText="true"/>
+ </childNodeTraces>
+ <childNodeTraces
+ visualID="3039"
+ queryText="(let _eClass_:ecore::EClass = modelFacet.metaClass.ecoreClass in _eClass_.ePackage.nsURI = 'http://comrel/0.1' and _eClass_.name = 'MultiFeatureUnit') and (let _containmentMF_:ecore::EStructuralFeature = modelFacet.containmentMetaFeature.ecoreFeature in (let _eClass_:ecore::EClass = _containmentMF_.eContainingClass in _eClass_.ePackage.nsURI = 'http://comrel/0.1' and _eClass_.name = 'ParallelQueuedUnit') and _containmentMF_.name = 'helperUnits')">
+ <nodeLabelTraces
+ visualID="5030"
+ queryText="true"/>
+ </childNodeTraces>
+ <childNodeTraces
+ visualID="3040"
+ queryText="(let _eClass_:ecore::EClass = modelFacet.metaClass.ecoreClass in _eClass_.ePackage.nsURI = 'http://comrel/0.1' and _eClass_.name = 'SingleFilterUnit') and (let _containmentMF_:ecore::EStructuralFeature = modelFacet.containmentMetaFeature.ecoreFeature in (let _eClass_:ecore::EClass = _containmentMF_.eContainingClass in _eClass_.ePackage.nsURI = 'http://comrel/0.1' and _eClass_.name = 'ParallelQueuedUnit') and _containmentMF_.name = 'helperUnits')">
+ <nodeLabelTraces
+ visualID="5031"
+ queryText="true"/>
+ </childNodeTraces>
+ <childNodeTraces
+ visualID="3041"
+ queryText="(let _eClass_:ecore::EClass = modelFacet.metaClass.ecoreClass in _eClass_.ePackage.nsURI = 'http://comrel/0.1' and _eClass_.name = 'MultiFilterUnit') and (let _containmentMF_:ecore::EStructuralFeature = modelFacet.containmentMetaFeature.ecoreFeature in (let _eClass_:ecore::EClass = _containmentMF_.eContainingClass in _eClass_.ePackage.nsURI = 'http://comrel/0.1' and _eClass_.name = 'ParallelQueuedUnit') and _containmentMF_.name = 'helperUnits')">
+ <nodeLabelTraces
+ visualID="5032"
+ queryText="true"/>
+ </childNodeTraces>
+ <childNodeTraces
+ visualID="3042"
+ queryText="(let _eClass_:ecore::EClass = modelFacet.metaClass.ecoreClass in _eClass_.ePackage.nsURI = 'http://comrel/0.1' and _eClass_.name = 'SingleQueuedUnit') and (let _containmentMF_:ecore::EStructuralFeature = modelFacet.containmentMetaFeature.ecoreFeature in (let _eClass_:ecore::EClass = _containmentMF_.eContainingClass in _eClass_.ePackage.nsURI = 'http://comrel/0.1' and _eClass_.name = 'ParallelQueuedUnit') and _containmentMF_.name = 'refactoringUnits')">
+ <nodeLabelTraces
+ visualID="5069"
+ queryText="true"/>
+ <compartmentTraces
+ visualID="7027"
+ queryText="true"/>
+ <compartmentTraces
+ visualID="7028"
+ queryText="true"/>
+ </childNodeTraces>
+ <childNodeTraces
+ visualID="3043"
+ queryText="(let _eClass_:ecore::EClass = modelFacet.metaClass.ecoreClass in _eClass_.ePackage.nsURI = 'http://comrel/0.1' and _eClass_.name = 'ParallelQueuedUnit') and (let _containmentMF_:ecore::EStructuralFeature = modelFacet.containmentMetaFeature.ecoreFeature in (let _eClass_:ecore::EClass = _containmentMF_.eContainingClass in _eClass_.ePackage.nsURI = 'http://comrel/0.1' and _eClass_.name = 'SingleQueuedUnit') and _containmentMF_.name = 'refactoringUnit')">
+ <nodeLabelTraces
+ visualID="5068"
+ queryText="true"/>
+ <compartmentTraces
+ visualID="7029"
+ queryText="true"/>
+ <compartmentTraces
+ visualID="7030"
+ queryText="true"/>
+ </childNodeTraces>
+ <childNodeTraces
+ visualID="3044"
+ queryText="(let _eClass_:ecore::EClass = modelFacet.metaClass.ecoreClass in _eClass_.ePackage.nsURI = 'http://comrel/0.1' and _eClass_.name = 'SequentialUnit') and (let _containmentMF_:ecore::EStructuralFeature = modelFacet.containmentMetaFeature.ecoreFeature in (let _eClass_:ecore::EClass = _containmentMF_.eContainingClass in _eClass_.ePackage.nsURI = 'http://comrel/0.1' and _eClass_.name = 'ParallelQueuedUnit') and _containmentMF_.name = 'refactoringUnits')">
+ <nodeLabelTraces
+ visualID="5067"
+ queryText="true"/>
+ <compartmentTraces
+ visualID="7031"
+ queryText="true"/>
+ <compartmentTraces
+ visualID="7032"
+ queryText="true"/>
+ </childNodeTraces>
+ <childNodeTraces
+ visualID="3045"
+ queryText="(let _eClass_:ecore::EClass = modelFacet.metaClass.ecoreClass in _eClass_.ePackage.nsURI = 'http://comrel/0.1' and _eClass_.name = 'ParallelQueuedUnit') and (let _containmentMF_:ecore::EStructuralFeature = modelFacet.containmentMetaFeature.ecoreFeature in (let _eClass_:ecore::EClass = _containmentMF_.eContainingClass in _eClass_.ePackage.nsURI = 'http://comrel/0.1' and _eClass_.name = 'SequentialUnit') and _containmentMF_.name = 'refactoringUnits')">
+ <nodeLabelTraces
+ visualID="5066"
+ queryText="true"/>
+ <compartmentTraces
+ visualID="7033"
+ queryText="true"/>
+ <compartmentTraces
+ visualID="7034"
+ queryText="true"/>
+ </childNodeTraces>
+ <childNodeTraces
+ visualID="3046"
+ queryText="(let _eClass_:ecore::EClass = modelFacet.metaClass.ecoreClass in _eClass_.ePackage.nsURI = 'http://comrel/0.1' and _eClass_.name = 'ConditionalUnit') and (let _containmentMF_:ecore::EStructuralFeature = modelFacet.containmentMetaFeature.ecoreFeature in (let _eClass_:ecore::EClass = _containmentMF_.eContainingClass in _eClass_.ePackage.nsURI = 'http://comrel/0.1' and _eClass_.name = 'ParallelQueuedUnit') and _containmentMF_.name = 'refactoringUnits')">
+ <nodeLabelTraces
+ visualID="5065"
+ queryText="true"/>
+ <compartmentTraces
+ visualID="7035"
+ queryText="true"/>
+ <compartmentTraces
+ visualID="7036"
+ queryText="true"/>
+ <compartmentTraces
+ visualID="7037"
+ queryText="true"/>
+ <compartmentTraces
+ visualID="7038"
+ queryText="true"/>
+ </childNodeTraces>
+ <childNodeTraces
+ visualID="3047"
+ queryText="(let _eClass_:ecore::EClass = modelFacet.metaClass.ecoreClass in _eClass_.ePackage.nsURI = 'http://comrel/0.1' and _eClass_.name = 'CartesianQueuedUnit') and (let _containmentMF_:ecore::EStructuralFeature = modelFacet.containmentMetaFeature.ecoreFeature in (let _eClass_:ecore::EClass = _containmentMF_.eContainingClass in _eClass_.ePackage.nsURI = 'http://comrel/0.1' and _eClass_.name = 'ConditionalUnit') and _containmentMF_.name = 'else')">
+ <nodeLabelTraces
+ visualID="5033"
+ queryText="true"/>
+ <compartmentTraces
+ visualID="7039"
+ queryText="true"/>
+ <compartmentTraces
+ visualID="7040"
+ queryText="true"/>
+ </childNodeTraces>
+ <childNodeTraces
+ visualID="3048"
+ queryText="(let _eClass_:ecore::EClass = modelFacet.metaClass.ecoreClass in _eClass_.ePackage.nsURI = 'http://comrel/0.1' and _eClass_.name = 'ParallelQueuedUnit') and (let _containmentMF_:ecore::EStructuralFeature = modelFacet.containmentMetaFeature.ecoreFeature in (let _eClass_:ecore::EClass = _containmentMF_.eContainingClass in _eClass_.ePackage.nsURI = 'http://comrel/0.1' and _eClass_.name = 'ConditionalUnit') and _containmentMF_.name = 'else')">
+ <nodeLabelTraces
+ visualID="5035"
+ queryText="true"/>
+ <compartmentTraces
+ visualID="7041"
+ queryText="true"/>
+ <compartmentTraces
+ visualID="7042"
+ queryText="true"/>
+ </childNodeTraces>
+ <childNodeTraces
+ visualID="3049"
+ queryText="(let _eClass_:ecore::EClass = modelFacet.metaClass.ecoreClass in _eClass_.ePackage.nsURI = 'http://comrel/0.1' and _eClass_.name = 'AtomicUnit') and (let _containmentMF_:ecore::EStructuralFeature = modelFacet.containmentMetaFeature.ecoreFeature in (let _eClass_:ecore::EClass = _containmentMF_.eContainingClass in _eClass_.ePackage.nsURI = 'http://comrel/0.1' and _eClass_.name = 'ParallelQueuedUnit') and _containmentMF_.name = 'refactoringUnits')">
+ <nodeLabelTraces
+ visualID="5034"
+ queryText="true"/>
+ </childNodeTraces>
+ <childNodeTraces
+ visualID="3050"
+ queryText="(let _eClass_:ecore::EClass = modelFacet.metaClass.ecoreClass in _eClass_.ePackage.nsURI = 'http://comrel/0.1' and _eClass_.name = 'SingleFeatureUnit') and (let _containmentMF_:ecore::EStructuralFeature = modelFacet.containmentMetaFeature.ecoreFeature in (let _eClass_:ecore::EClass = _containmentMF_.eContainingClass in _eClass_.ePackage.nsURI = 'http://comrel/0.1' and _eClass_.name = 'ConditionalUnit') and _containmentMF_.name = 'helperUnits')">
+ <nodeLabelTraces
+ visualID="5036"
+ queryText="true"/>
+ </childNodeTraces>
+ <childNodeTraces
+ visualID="3051"
+ queryText="(let _eClass_:ecore::EClass = modelFacet.metaClass.ecoreClass in _eClass_.ePackage.nsURI = 'http://comrel/0.1' and _eClass_.name = 'MultiFeatureUnit') and (let _containmentMF_:ecore::EStructuralFeature = modelFacet.containmentMetaFeature.ecoreFeature in (let _eClass_:ecore::EClass = _containmentMF_.eContainingClass in _eClass_.ePackage.nsURI = 'http://comrel/0.1' and _eClass_.name = 'ConditionalUnit') and _containmentMF_.name = 'helperUnits')">
+ <nodeLabelTraces
+ visualID="5037"
+ queryText="true"/>
+ </childNodeTraces>
+ <childNodeTraces
+ visualID="3052"
+ queryText="(let _eClass_:ecore::EClass = modelFacet.metaClass.ecoreClass in _eClass_.ePackage.nsURI = 'http://comrel/0.1' and _eClass_.name = 'SingleFilterUnit') and (let _containmentMF_:ecore::EStructuralFeature = modelFacet.containmentMetaFeature.ecoreFeature in (let _eClass_:ecore::EClass = _containmentMF_.eContainingClass in _eClass_.ePackage.nsURI = 'http://comrel/0.1' and _eClass_.name = 'ConditionalUnit') and _containmentMF_.name = 'helperUnits')">
+ <nodeLabelTraces
+ visualID="5038"
+ queryText="true"/>
+ </childNodeTraces>
+ <childNodeTraces
+ visualID="3053"
+ queryText="(let _eClass_:ecore::EClass = modelFacet.metaClass.ecoreClass in _eClass_.ePackage.nsURI = 'http://comrel/0.1' and _eClass_.name = 'MultiFilterUnit') and (let _containmentMF_:ecore::EStructuralFeature = modelFacet.containmentMetaFeature.ecoreFeature in (let _eClass_:ecore::EClass = _containmentMF_.eContainingClass in _eClass_.ePackage.nsURI = 'http://comrel/0.1' and _eClass_.name = 'ConditionalUnit') and _containmentMF_.name = 'helperUnits')">
+ <nodeLabelTraces
+ visualID="5039"
+ queryText="true"/>
+ </childNodeTraces>
+ <childNodeTraces
+ visualID="3054"
+ queryText="(let _eClass_:ecore::EClass = modelFacet.metaClass.ecoreClass in _eClass_.ePackage.nsURI = 'http://comrel/0.1' and _eClass_.name = 'SingleQueuedUnit') and (let _containmentMF_:ecore::EStructuralFeature = modelFacet.containmentMetaFeature.ecoreFeature in (let _eClass_:ecore::EClass = _containmentMF_.eContainingClass in _eClass_.ePackage.nsURI = 'http://comrel/0.1' and _eClass_.name = 'ConditionalUnit') and _containmentMF_.name = 'then')">
+ <nodeLabelTraces
+ visualID="5064"
+ queryText="true"/>
+ <compartmentTraces
+ visualID="7043"
+ queryText="true"/>
+ <compartmentTraces
+ visualID="7044"
+ queryText="true"/>
+ </childNodeTraces>
+ <childNodeTraces
+ visualID="3055"
+ queryText="(let _eClass_:ecore::EClass = modelFacet.metaClass.ecoreClass in _eClass_.ePackage.nsURI = 'http://comrel/0.1' and _eClass_.name = 'SingleFeatureUnit') and (let _containmentMF_:ecore::EStructuralFeature = modelFacet.containmentMetaFeature.ecoreFeature in (let _eClass_:ecore::EClass = _containmentMF_.eContainingClass in _eClass_.ePackage.nsURI = 'http://comrel/0.1' and _eClass_.name = 'SingleQueuedUnit') and _containmentMF_.name = 'helperUnits')">
+ <nodeLabelTraces
+ visualID="5040"
+ queryText="true"/>
+ </childNodeTraces>
+ <childNodeTraces
+ visualID="3056"
+ queryText="(let _eClass_:ecore::EClass = modelFacet.metaClass.ecoreClass in _eClass_.ePackage.nsURI = 'http://comrel/0.1' and _eClass_.name = 'MultiFeatureUnit') and (let _containmentMF_:ecore::EStructuralFeature = modelFacet.containmentMetaFeature.ecoreFeature in (let _eClass_:ecore::EClass = _containmentMF_.eContainingClass in _eClass_.ePackage.nsURI = 'http://comrel/0.1' and _eClass_.name = 'SingleQueuedUnit') and _containmentMF_.name = 'helperUnits')">
+ <nodeLabelTraces
+ visualID="5041"
+ queryText="true"/>
+ </childNodeTraces>
+ <childNodeTraces
+ visualID="3057"
+ queryText="(let _eClass_:ecore::EClass = modelFacet.metaClass.ecoreClass in _eClass_.ePackage.nsURI = 'http://comrel/0.1' and _eClass_.name = 'SingleFilterUnit') and (let _containmentMF_:ecore::EStructuralFeature = modelFacet.containmentMetaFeature.ecoreFeature in (let _eClass_:ecore::EClass = _containmentMF_.eContainingClass in _eClass_.ePackage.nsURI = 'http://comrel/0.1' and _eClass_.name = 'SingleQueuedUnit') and _containmentMF_.name = 'helperUnits')">
+ <nodeLabelTraces
+ visualID="5042"
+ queryText="true"/>
+ </childNodeTraces>
+ <childNodeTraces
+ visualID="3058"
+ queryText="(let _eClass_:ecore::EClass = modelFacet.metaClass.ecoreClass in _eClass_.ePackage.nsURI = 'http://comrel/0.1' and _eClass_.name = 'MultiFilterUnit') and (let _containmentMF_:ecore::EStructuralFeature = modelFacet.containmentMetaFeature.ecoreFeature in (let _eClass_:ecore::EClass = _containmentMF_.eContainingClass in _eClass_.ePackage.nsURI = 'http://comrel/0.1' and _eClass_.name = 'SingleQueuedUnit') and _containmentMF_.name = 'helperUnits')">
+ <nodeLabelTraces
+ visualID="5043"
+ queryText="true"/>
+ </childNodeTraces>
+ <childNodeTraces
+ visualID="3059"
+ queryText="(let _eClass_:ecore::EClass = modelFacet.metaClass.ecoreClass in _eClass_.ePackage.nsURI = 'http://comrel/0.1' and _eClass_.name = 'SingleQueuedUnit') and (let _containmentMF_:ecore::EStructuralFeature = modelFacet.containmentMetaFeature.ecoreFeature in (let _eClass_:ecore::EClass = _containmentMF_.eContainingClass in _eClass_.ePackage.nsURI = 'http://comrel/0.1' and _eClass_.name = 'SingleQueuedUnit') and _containmentMF_.name = 'refactoringUnit')">
+ <nodeLabelTraces
+ visualID="5063"
+ queryText="true"/>
+ <compartmentTraces
+ visualID="7045"
+ queryText="true"/>
+ <compartmentTraces
+ visualID="7046"
+ queryText="true"/>
+ </childNodeTraces>
+ <childNodeTraces
+ visualID="3060"
+ queryText="(let _eClass_:ecore::EClass = modelFacet.metaClass.ecoreClass in _eClass_.ePackage.nsURI = 'http://comrel/0.1' and _eClass_.name = 'SequentialUnit') and (let _containmentMF_:ecore::EStructuralFeature = modelFacet.containmentMetaFeature.ecoreFeature in (let _eClass_:ecore::EClass = _containmentMF_.eContainingClass in _eClass_.ePackage.nsURI = 'http://comrel/0.1' and _eClass_.name = 'SingleQueuedUnit') and _containmentMF_.name = 'refactoringUnit')">
+ <nodeLabelTraces
+ visualID="5062"
+ queryText="true"/>
+ <compartmentTraces
+ visualID="7047"
+ queryText="true"/>
+ <compartmentTraces
+ visualID="7048"
+ queryText="true"/>
+ </childNodeTraces>
+ <childNodeTraces
+ visualID="3061"
+ queryText="(let _eClass_:ecore::EClass = modelFacet.metaClass.ecoreClass in _eClass_.ePackage.nsURI = 'http://comrel/0.1' and _eClass_.name = 'SingleFeatureUnit') and (let _containmentMF_:ecore::EStructuralFeature = modelFacet.containmentMetaFeature.ecoreFeature in (let _eClass_:ecore::EClass = _containmentMF_.eContainingClass in _eClass_.ePackage.nsURI = 'http://comrel/0.1' and _eClass_.name = 'SequentialUnit') and _containmentMF_.name = 'helperUnits')">
+ <nodeLabelTraces
+ visualID="5044"
+ queryText="true"/>
+ </childNodeTraces>
+ <childNodeTraces
+ visualID="3062"
+ queryText="(let _eClass_:ecore::EClass = modelFacet.metaClass.ecoreClass in _eClass_.ePackage.nsURI = 'http://comrel/0.1' and _eClass_.name = 'MultiFeatureUnit') and (let _containmentMF_:ecore::EStructuralFeature = modelFacet.containmentMetaFeature.ecoreFeature in (let _eClass_:ecore::EClass = _containmentMF_.eContainingClass in _eClass_.ePackage.nsURI = 'http://comrel/0.1' and _eClass_.name = 'SequentialUnit') and _containmentMF_.name = 'helperUnits')">
+ <nodeLabelTraces
+ visualID="5045"
+ queryText="true"/>
+ </childNodeTraces>
+ <childNodeTraces
+ visualID="3063"
+ queryText="(let _eClass_:ecore::EClass = modelFacet.metaClass.ecoreClass in _eClass_.ePackage.nsURI = 'http://comrel/0.1' and _eClass_.name = 'SingleFilterUnit') and (let _containmentMF_:ecore::EStructuralFeature = modelFacet.containmentMetaFeature.ecoreFeature in (let _eClass_:ecore::EClass = _containmentMF_.eContainingClass in _eClass_.ePackage.nsURI = 'http://comrel/0.1' and _eClass_.name = 'SequentialUnit') and _containmentMF_.name = 'helperUnits')">
+ <nodeLabelTraces
+ visualID="5046"
+ queryText="true"/>
+ </childNodeTraces>
+ <childNodeTraces
+ visualID="3064"
+ queryText="(let _eClass_:ecore::EClass = modelFacet.metaClass.ecoreClass in _eClass_.ePackage.nsURI = 'http://comrel/0.1' and _eClass_.name = 'MultiFilterUnit') and (let _containmentMF_:ecore::EStructuralFeature = modelFacet.containmentMetaFeature.ecoreFeature in (let _eClass_:ecore::EClass = _containmentMF_.eContainingClass in _eClass_.ePackage.nsURI = 'http://comrel/0.1' and _eClass_.name = 'SequentialUnit') and _containmentMF_.name = 'helperUnits')">
+ <nodeLabelTraces
+ visualID="5047"
+ queryText="true"/>
+ </childNodeTraces>
+ <childNodeTraces
+ visualID="3065"
+ queryText="(let _eClass_:ecore::EClass = modelFacet.metaClass.ecoreClass in _eClass_.ePackage.nsURI = 'http://comrel/0.1' and _eClass_.name = 'SingleQueuedUnit') and (let _containmentMF_:ecore::EStructuralFeature = modelFacet.containmentMetaFeature.ecoreFeature in (let _eClass_:ecore::EClass = _containmentMF_.eContainingClass in _eClass_.ePackage.nsURI = 'http://comrel/0.1' and _eClass_.name = 'SequentialUnit') and _containmentMF_.name = 'refactoringUnits')">
+ <nodeLabelTraces
+ visualID="5061"
+ queryText="true"/>
+ <compartmentTraces
+ visualID="7049"
+ queryText="true"/>
+ <compartmentTraces
+ visualID="7050"
+ queryText="true"/>
+ </childNodeTraces>
+ <childNodeTraces
+ visualID="3066"
+ queryText="(let _eClass_:ecore::EClass = modelFacet.metaClass.ecoreClass in _eClass_.ePackage.nsURI = 'http://comrel/0.1' and _eClass_.name = 'ConditionalUnit') and (let _containmentMF_:ecore::EStructuralFeature = modelFacet.containmentMetaFeature.ecoreFeature in (let _eClass_:ecore::EClass = _containmentMF_.eContainingClass in _eClass_.ePackage.nsURI = 'http://comrel/0.1' and _eClass_.name = 'SingleQueuedUnit') and _containmentMF_.name = 'refactoringUnit')">
+ <nodeLabelTraces
+ visualID="5060"
+ queryText="true"/>
+ <compartmentTraces
+ visualID="7051"
+ queryText="true"/>
+ <compartmentTraces
+ visualID="7052"
+ queryText="true"/>
+ <compartmentTraces
+ visualID="7053"
+ queryText="true"/>
+ <compartmentTraces
+ visualID="7054"
+ queryText="true"/>
+ </childNodeTraces>
+ <childNodeTraces
+ visualID="3067"
+ queryText="(let _eClass_:ecore::EClass = modelFacet.metaClass.ecoreClass in _eClass_.ePackage.nsURI = 'http://comrel/0.1' and _eClass_.name = 'SingleQueuedUnit') and (let _containmentMF_:ecore::EStructuralFeature = modelFacet.containmentMetaFeature.ecoreFeature in (let _eClass_:ecore::EClass = _containmentMF_.eContainingClass in _eClass_.ePackage.nsURI = 'http://comrel/0.1' and _eClass_.name = 'ConditionalUnit') and _containmentMF_.name = 'else')">
+ <nodeLabelTraces
+ visualID="5049"
+ queryText="true"/>
+ <compartmentTraces
+ visualID="7055"
+ queryText="true"/>
+ <compartmentTraces
+ visualID="7056"
+ queryText="true"/>
+ </childNodeTraces>
+ <childNodeTraces
+ visualID="3068"
+ queryText="(let _eClass_:ecore::EClass = modelFacet.metaClass.ecoreClass in _eClass_.ePackage.nsURI = 'http://comrel/0.1' and _eClass_.name = 'AtomicUnit') and (let _containmentMF_:ecore::EStructuralFeature = modelFacet.containmentMetaFeature.ecoreFeature in (let _eClass_:ecore::EClass = _containmentMF_.eContainingClass in _eClass_.ePackage.nsURI = 'http://comrel/0.1' and _eClass_.name = 'SingleQueuedUnit') and _containmentMF_.name = 'refactoringUnit')">
+ <nodeLabelTraces
+ visualID="5048"
+ queryText="true"/>
+ </childNodeTraces>
+ <childNodeTraces
+ visualID="3069"
+ queryText="(let _eClass_:ecore::EClass = modelFacet.metaClass.ecoreClass in _eClass_.ePackage.nsURI = 'http://comrel/0.1' and _eClass_.name = 'SequentialUnit') and (let _containmentMF_:ecore::EStructuralFeature = modelFacet.containmentMetaFeature.ecoreFeature in (let _eClass_:ecore::EClass = _containmentMF_.eContainingClass in _eClass_.ePackage.nsURI = 'http://comrel/0.1' and _eClass_.name = 'ConditionalUnit') and _containmentMF_.name = 'then')">
+ <nodeLabelTraces
+ visualID="5059"
+ queryText="true"/>
+ <compartmentTraces
+ visualID="7057"
+ queryText="true"/>
+ <compartmentTraces
+ visualID="7058"
+ queryText="true"/>
+ </childNodeTraces>
+ <childNodeTraces
+ visualID="3070"
+ queryText="(let _eClass_:ecore::EClass = modelFacet.metaClass.ecoreClass in _eClass_.ePackage.nsURI = 'http://comrel/0.1' and _eClass_.name = 'SequentialUnit') and (let _containmentMF_:ecore::EStructuralFeature = modelFacet.containmentMetaFeature.ecoreFeature in (let _eClass_:ecore::EClass = _containmentMF_.eContainingClass in _eClass_.ePackage.nsURI = 'http://comrel/0.1' and _eClass_.name = 'SequentialUnit') and _containmentMF_.name = 'refactoringUnits')">
+ <nodeLabelTraces
+ visualID="5058"
+ queryText="true"/>
+ <compartmentTraces
+ visualID="7059"
+ queryText="true"/>
+ <compartmentTraces
+ visualID="7060"
+ queryText="true"/>
+ </childNodeTraces>
+ <childNodeTraces
+ visualID="3071"
+ queryText="(let _eClass_:ecore::EClass = modelFacet.metaClass.ecoreClass in _eClass_.ePackage.nsURI = 'http://comrel/0.1' and _eClass_.name = 'ConditionalUnit') and (let _containmentMF_:ecore::EStructuralFeature = modelFacet.containmentMetaFeature.ecoreFeature in (let _eClass_:ecore::EClass = _containmentMF_.eContainingClass in _eClass_.ePackage.nsURI = 'http://comrel/0.1' and _eClass_.name = 'SequentialUnit') and _containmentMF_.name = 'refactoringUnits')">
+ <nodeLabelTraces
+ visualID="5057"
+ queryText="true"/>
+ <compartmentTraces
+ visualID="7061"
+ queryText="true"/>
+ <compartmentTraces
+ visualID="7062"
+ queryText="true"/>
+ <compartmentTraces
+ visualID="7063"
+ queryText="true"/>
+ <compartmentTraces
+ visualID="7064"
+ queryText="true"/>
+ </childNodeTraces>
+ <childNodeTraces
+ visualID="3072"
+ queryText="(let _eClass_:ecore::EClass = modelFacet.metaClass.ecoreClass in _eClass_.ePackage.nsURI = 'http://comrel/0.1' and _eClass_.name = 'ConditionalUnit') and (let _containmentMF_:ecore::EStructuralFeature = modelFacet.containmentMetaFeature.ecoreFeature in (let _eClass_:ecore::EClass = _containmentMF_.eContainingClass in _eClass_.ePackage.nsURI = 'http://comrel/0.1' and _eClass_.name = 'ConditionalUnit') and _containmentMF_.name = 'then')">
+ <nodeLabelTraces
+ visualID="5056"
+ queryText="true"/>
+ <compartmentTraces
+ visualID="7065"
+ queryText="true"/>
+ <compartmentTraces
+ visualID="7066"
+ queryText="true"/>
+ <compartmentTraces
+ visualID="7067"
+ queryText="true"/>
+ <compartmentTraces
+ visualID="7068"
+ queryText="true"/>
+ </childNodeTraces>
+ <childNodeTraces
+ visualID="3073"
+ queryText="(let _eClass_:ecore::EClass = modelFacet.metaClass.ecoreClass in _eClass_.ePackage.nsURI = 'http://comrel/0.1' and _eClass_.name = 'SequentialUnit') and (let _containmentMF_:ecore::EStructuralFeature = modelFacet.containmentMetaFeature.ecoreFeature in (let _eClass_:ecore::EClass = _containmentMF_.eContainingClass in _eClass_.ePackage.nsURI = 'http://comrel/0.1' and _eClass_.name = 'ConditionalUnit') and _containmentMF_.name = 'else')">
+ <nodeLabelTraces
+ visualID="5051"
+ queryText="true"/>
+ <compartmentTraces
+ visualID="7069"
+ queryText="true"/>
+ <compartmentTraces
+ visualID="7070"
+ queryText="true"/>
+ </childNodeTraces>
+ <childNodeTraces
+ visualID="3074"
+ queryText="(let _eClass_:ecore::EClass = modelFacet.metaClass.ecoreClass in _eClass_.ePackage.nsURI = 'http://comrel/0.1' and _eClass_.name = 'AtomicUnit') and (let _containmentMF_:ecore::EStructuralFeature = modelFacet.containmentMetaFeature.ecoreFeature in (let _eClass_:ecore::EClass = _containmentMF_.eContainingClass in _eClass_.ePackage.nsURI = 'http://comrel/0.1' and _eClass_.name = 'SequentialUnit') and _containmentMF_.name = 'refactoringUnits')">
+ <nodeLabelTraces
+ visualID="5050"
+ queryText="true"/>
+ </childNodeTraces>
+ <childNodeTraces
+ visualID="3075"
+ queryText="(let _eClass_:ecore::EClass = modelFacet.metaClass.ecoreClass in _eClass_.ePackage.nsURI = 'http://comrel/0.1' and _eClass_.name = 'ConditionalUnit') and (let _containmentMF_:ecore::EStructuralFeature = modelFacet.containmentMetaFeature.ecoreFeature in (let _eClass_:ecore::EClass = _containmentMF_.eContainingClass in _eClass_.ePackage.nsURI = 'http://comrel/0.1' and _eClass_.name = 'ConditionalUnit') and _containmentMF_.name = 'else')">
+ <nodeLabelTraces
+ visualID="5055"
+ queryText="true"/>
+ <compartmentTraces
+ visualID="7071"
+ queryText="true"/>
+ <compartmentTraces
+ visualID="7072"
+ queryText="true"/>
+ <compartmentTraces
+ visualID="7073"
+ queryText="true"/>
+ <compartmentTraces
+ visualID="7074"
+ queryText="true"/>
+ </childNodeTraces>
+ <childNodeTraces
+ visualID="3076"
+ queryText="(let _eClass_:ecore::EClass = modelFacet.metaClass.ecoreClass in _eClass_.ePackage.nsURI = 'http://comrel/0.1' and _eClass_.name = 'ConditionCheck') and (let _containmentMF_:ecore::EStructuralFeature = modelFacet.containmentMetaFeature.ecoreFeature in (let _eClass_:ecore::EClass = _containmentMF_.eContainingClass in _eClass_.ePackage.nsURI = 'http://comrel/0.1' and _eClass_.name = 'ConditionalUnit') and _containmentMF_.name = 'if')">
+ <nodeLabelTraces
+ visualID="5052"
+ queryText="true"/>
+ </childNodeTraces>
+ <childNodeTraces
+ visualID="3077"
+ queryText="(let _eClass_:ecore::EClass = modelFacet.metaClass.ecoreClass in _eClass_.ePackage.nsURI = 'http://comrel/0.1' and _eClass_.name = 'AtomicUnit') and (let _containmentMF_:ecore::EStructuralFeature = modelFacet.containmentMetaFeature.ecoreFeature in (let _eClass_:ecore::EClass = _containmentMF_.eContainingClass in _eClass_.ePackage.nsURI = 'http://comrel/0.1' and _eClass_.name = 'ConditionalUnit') and _containmentMF_.name = 'then')">
+ <nodeLabelTraces
+ visualID="5053"
+ queryText="true"/>
+ </childNodeTraces>
+ <childNodeTraces
+ visualID="3078"
+ queryText="(let _eClass_:ecore::EClass = modelFacet.metaClass.ecoreClass in _eClass_.ePackage.nsURI = 'http://comrel/0.1' and _eClass_.name = 'AtomicUnit') and (let _containmentMF_:ecore::EStructuralFeature = modelFacet.containmentMetaFeature.ecoreFeature in (let _eClass_:ecore::EClass = _containmentMF_.eContainingClass in _eClass_.ePackage.nsURI = 'http://comrel/0.1' and _eClass_.name = 'ConditionalUnit') and _containmentMF_.name = 'else')">
+ <nodeLabelTraces
+ visualID="5054"
+ queryText="true"/>
+ </childNodeTraces>
+ <linkTraces
+ visualID="4001"
+ queryText="modelFacet.oclIsKindOf(gmfgen::TypeLinkModelFacet) and (let _eClass_:ecore::EClass = modelFacet.oclAsType(gmfgen::TypeLinkModelFacet).metaClass.ecoreClass in _eClass_.ePackage.nsURI = 'http://comrel/0.1' and _eClass_.name = 'SinglePortMapping')"/>
+ <linkTraces
+ visualID="4002"
+ queryText="modelFacet.oclIsKindOf(gmfgen::TypeLinkModelFacet) and (let _eClass_:ecore::EClass = modelFacet.oclAsType(gmfgen::TypeLinkModelFacet).metaClass.ecoreClass in _eClass_.ePackage.nsURI = 'http://comrel/0.1' and _eClass_.name = 'MultiPortMapping')"/>
+ <linkTraces
+ visualID="4003"
+ queryText="modelFacet.oclIsKindOf(gmfgen::TypeLinkModelFacet) and (let _eClass_:ecore::EClass = modelFacet.oclAsType(gmfgen::TypeLinkModelFacet).metaClass.ecoreClass in _eClass_.ePackage.nsURI = 'http://comrel/0.1' and _eClass_.name = 'MultiSinglePortMapping')"/>
+</trace:TraceModel>
diff --git a/org.eclipse.emf.refactor.comrel/plugin.properties b/org.eclipse.emf.refactor.comrel/plugin.properties
new file mode 100644
index 0000000..be7ec60
--- /dev/null
+++ b/org.eclipse.emf.refactor.comrel/plugin.properties
@@ -0,0 +1,8 @@
+
+# <copyright>
+# </copyright>
+#
+# $Id$
+
+pluginName = Comrel Model
+providerName = www.example.org
diff --git a/org.eclipse.emf.refactor.comrel/plugin.xml b/org.eclipse.emf.refactor.comrel/plugin.xml
new file mode 100644
index 0000000..fb0a6f4
--- /dev/null
+++ b/org.eclipse.emf.refactor.comrel/plugin.xml
@@ -0,0 +1,25 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<?eclipse version="3.0"?>
+
+<!--
+ <copyright>
+ </copyright>
+
+ $Id$
+-->
+
+<plugin>
+ <extension-point id="singlefilter" name="singlefilter" schema="schema/singlefilter.exsd"/>
+ <extension-point id="multifilter" name="multifilter" schema="schema/multifilter.exsd"/>
+ <extension-point id="singlefeature" name="singlefeature" schema="schema/singlefeature.exsd"/>
+ <extension-point id="multifeature" name="multifeature" schema="schema/multifeature.exsd"/>
+
+
+ <extension point="org.eclipse.emf.ecore.generated_package">
+ <package
+ uri="http://comrel/0.1"
+ class="comrel.ComrelPackage"
+ genModel="model/comrel.genmodel"/>
+ </extension>
+
+</plugin>
diff --git a/org.eclipse.emf.refactor.comrel/schema/multifeature.exsd b/org.eclipse.emf.refactor.comrel/schema/multifeature.exsd
new file mode 100644
index 0000000..9331bdf
--- /dev/null
+++ b/org.eclipse.emf.refactor.comrel/schema/multifeature.exsd
@@ -0,0 +1,130 @@
+<?xml version='1.0' encoding='UTF-8'?>
+<!-- Schema file written by PDE -->
+<schema targetNamespace="comrel" xmlns="http://www.w3.org/2001/XMLSchema">
+<annotation>
+ <appInfo>
+ <meta.schema plugin="comrel" id="multifeature" name="multifeature"/>
+ </appInfo>
+ <documentation>
+ [Enter description of this extension point.]
+ </documentation>
+ </annotation>
+
+ <element name="extension">
+ <annotation>
+ <appInfo>
+ <meta.element />
+ </appInfo>
+ </annotation>
+ <complexType>
+ <sequence minOccurs="1" maxOccurs="unbounded">
+ <element ref="multifeature"/>
+ </sequence>
+ <attribute name="point" type="string" use="required">
+ <annotation>
+ <documentation>
+
+ </documentation>
+ </annotation>
+ </attribute>
+ <attribute name="id" type="string">
+ <annotation>
+ <documentation>
+
+ </documentation>
+ </annotation>
+ </attribute>
+ <attribute name="name" type="string">
+ <annotation>
+ <documentation>
+
+ </documentation>
+ <appInfo>
+ <meta.attribute translatable="true"/>
+ </appInfo>
+ </annotation>
+ </attribute>
+ </complexType>
+ </element>
+
+ <element name="multifeature">
+ <complexType>
+ <attribute name="name" type="string" use="required">
+ <annotation>
+ <documentation>
+
+ </documentation>
+ </annotation>
+ </attribute>
+ <attribute name="id" type="string" use="required">
+ <annotation>
+ <documentation>
+
+ </documentation>
+ </annotation>
+ </attribute>
+ <attribute name="namespaceUri" type="string" use="required">
+ <annotation>
+ <documentation>
+
+ </documentation>
+ </annotation>
+ </attribute>
+ <attribute name="description" type="string">
+ <annotation>
+ <documentation>
+
+ </documentation>
+ </annotation>
+ </attribute>
+ <attribute name="class" type="string" use="required">
+ <annotation>
+ <documentation>
+
+ </documentation>
+ <appInfo>
+ <meta.attribute kind="java" basedOn=":comrel.extensions.IMultiFeatureHelper"/>
+ </appInfo>
+ </annotation>
+ </attribute>
+ </complexType>
+ </element>
+
+ <annotation>
+ <appInfo>
+ <meta.section type="since"/>
+ </appInfo>
+ <documentation>
+ [Enter the first release in which this extension point appears.]
+ </documentation>
+ </annotation>
+
+ <annotation>
+ <appInfo>
+ <meta.section type="examples"/>
+ </appInfo>
+ <documentation>
+ [Enter extension point usage example here.]
+ </documentation>
+ </annotation>
+
+ <annotation>
+ <appInfo>
+ <meta.section type="apiinfo"/>
+ </appInfo>
+ <documentation>
+ [Enter API information here.]
+ </documentation>
+ </annotation>
+
+ <annotation>
+ <appInfo>
+ <meta.section type="implementation"/>
+ </appInfo>
+ <documentation>
+ [Enter information about supplied implementation of this extension point.]
+ </documentation>
+ </annotation>
+
+
+</schema>
diff --git a/org.eclipse.emf.refactor.comrel/schema/multifilter.exsd b/org.eclipse.emf.refactor.comrel/schema/multifilter.exsd
new file mode 100644
index 0000000..f815787
--- /dev/null
+++ b/org.eclipse.emf.refactor.comrel/schema/multifilter.exsd
@@ -0,0 +1,130 @@
+<?xml version='1.0' encoding='UTF-8'?>
+<!-- Schema file written by PDE -->
+<schema targetNamespace="comrel" xmlns="http://www.w3.org/2001/XMLSchema">
+<annotation>
+ <appInfo>
+ <meta.schema plugin="comrel" id="multifilter" name="multifilter"/>
+ </appInfo>
+ <documentation>
+ [Enter description of this extension point.]
+ </documentation>
+ </annotation>
+
+ <element name="extension">
+ <annotation>
+ <appInfo>
+ <meta.element />
+ </appInfo>
+ </annotation>
+ <complexType>
+ <sequence minOccurs="1" maxOccurs="unbounded">
+ <element ref="multifilter"/>
+ </sequence>
+ <attribute name="point" type="string" use="required">
+ <annotation>
+ <documentation>
+
+ </documentation>
+ </annotation>
+ </attribute>
+ <attribute name="id" type="string">
+ <annotation>
+ <documentation>
+
+ </documentation>
+ </annotation>
+ </attribute>
+ <attribute name="name" type="string">
+ <annotation>
+ <documentation>
+
+ </documentation>
+ <appInfo>
+ <meta.attribute translatable="true"/>
+ </appInfo>
+ </annotation>
+ </attribute>
+ </complexType>
+ </element>
+
+ <element name="multifilter">
+ <complexType>
+ <attribute name="name" type="string" use="required">
+ <annotation>
+ <documentation>
+
+ </documentation>
+ </annotation>
+ </attribute>
+ <attribute name="id" type="string" use="required">
+ <annotation>
+ <documentation>
+
+ </documentation>
+ </annotation>
+ </attribute>
+ <attribute name="namespaceUri" type="string" use="required">
+ <annotation>
+ <documentation>
+
+ </documentation>
+ </annotation>
+ </attribute>
+ <attribute name="description" type="string">
+ <annotation>
+ <documentation>
+
+ </documentation>
+ </annotation>
+ </attribute>
+ <attribute name="class" type="string" use="required">
+ <annotation>
+ <documentation>
+
+ </documentation>
+ <appInfo>
+ <meta.attribute kind="java" basedOn=":comrel.extensions.IMultiFilterHelper"/>
+ </appInfo>
+ </annotation>
+ </attribute>
+ </complexType>
+ </element>
+
+ <annotation>
+ <appInfo>
+ <meta.section type="since"/>
+ </appInfo>
+ <documentation>
+ [Enter the first release in which this extension point appears.]
+ </documentation>
+ </annotation>
+
+ <annotation>
+ <appInfo>
+ <meta.section type="examples"/>
+ </appInfo>
+ <documentation>
+ [Enter extension point usage example here.]
+ </documentation>
+ </annotation>
+
+ <annotation>
+ <appInfo>
+ <meta.section type="apiinfo"/>
+ </appInfo>
+ <documentation>
+ [Enter API information here.]
+ </documentation>
+ </annotation>
+
+ <annotation>
+ <appInfo>
+ <meta.section type="implementation"/>
+ </appInfo>
+ <documentation>
+ [Enter information about supplied implementation of this extension point.]
+ </documentation>
+ </annotation>
+
+
+</schema>
diff --git a/org.eclipse.emf.refactor.comrel/schema/singlefeature.exsd b/org.eclipse.emf.refactor.comrel/schema/singlefeature.exsd
new file mode 100644
index 0000000..b290dbb
--- /dev/null
+++ b/org.eclipse.emf.refactor.comrel/schema/singlefeature.exsd
@@ -0,0 +1,130 @@
+<?xml version='1.0' encoding='UTF-8'?>
+<!-- Schema file written by PDE -->
+<schema targetNamespace="comrel" xmlns="http://www.w3.org/2001/XMLSchema">
+<annotation>
+ <appInfo>
+ <meta.schema plugin="comrel" id="singlefeature" name="singlefeature"/>
+ </appInfo>
+ <documentation>
+ [Enter description of this extension point.]
+ </documentation>
+ </annotation>
+
+ <element name="extension">
+ <annotation>
+ <appInfo>
+ <meta.element />
+ </appInfo>
+ </annotation>
+ <complexType>
+ <sequence minOccurs="1" maxOccurs="unbounded">
+ <element ref="singlefeature"/>
+ </sequence>
+ <attribute name="point" type="string" use="required">
+ <annotation>
+ <documentation>
+
+ </documentation>
+ </annotation>
+ </attribute>
+ <attribute name="id" type="string">
+ <annotation>
+ <documentation>
+
+ </documentation>
+ </annotation>
+ </attribute>
+ <attribute name="name" type="string">
+ <annotation>
+ <documentation>
+
+ </documentation>
+ <appInfo>
+ <meta.attribute translatable="true"/>
+ </appInfo>
+ </annotation>
+ </attribute>
+ </complexType>
+ </element>
+
+ <element name="singlefeature">
+ <complexType>
+ <attribute name="name" type="string" use="required">
+ <annotation>
+ <documentation>
+
+ </documentation>
+ </annotation>
+ </attribute>
+ <attribute name="id" type="string" use="required">
+ <annotation>
+ <documentation>
+
+ </documentation>
+ </annotation>
+ </attribute>
+ <attribute name="namespaceUri" type="string" use="required">
+ <annotation>
+ <documentation>
+
+ </documentation>
+ </annotation>
+ </attribute>
+ <attribute name="description" type="string">
+ <annotation>
+ <documentation>
+
+ </documentation>
+ </annotation>
+ </attribute>
+ <attribute name="class" type="string" use="required">
+ <annotation>
+ <documentation>
+
+ </documentation>
+ <appInfo>
+ <meta.attribute kind="java" basedOn=":comrel.extensions.ISingleFeatureHelper"/>
+ </appInfo>
+ </annotation>
+ </attribute>
+ </complexType>
+ </element>
+
+ <annotation>
+ <appInfo>
+ <meta.section type="since"/>
+ </appInfo>
+ <documentation>
+ [Enter the first release in which this extension point appears.]
+ </documentation>
+ </annotation>
+
+ <annotation>
+ <appInfo>
+ <meta.section type="examples"/>
+ </appInfo>
+ <documentation>
+ [Enter extension point usage example here.]
+ </documentation>
+ </annotation>
+
+ <annotation>
+ <appInfo>
+ <meta.section type="apiinfo"/>
+ </appInfo>
+ <documentation>
+ [Enter API information here.]
+ </documentation>
+ </annotation>
+
+ <annotation>
+ <appInfo>
+ <meta.section type="implementation"/>
+ </appInfo>
+ <documentation>
+ [Enter information about supplied implementation of this extension point.]
+ </documentation>
+ </annotation>
+
+
+</schema>
diff --git a/org.eclipse.emf.refactor.comrel/schema/singlefilter.exsd b/org.eclipse.emf.refactor.comrel/schema/singlefilter.exsd
new file mode 100644
index 0000000..9f02e8c
--- /dev/null
+++ b/org.eclipse.emf.refactor.comrel/schema/singlefilter.exsd
@@ -0,0 +1,130 @@
+<?xml version='1.0' encoding='UTF-8'?>
+<!-- Schema file written by PDE -->
+<schema targetNamespace="comrel" xmlns="http://www.w3.org/2001/XMLSchema">
+<annotation>
+ <appInfo>
+ <meta.schema plugin="comrel" id="singlefilter" name="singlefilter"/>
+ </appInfo>
+ <documentation>
+ [Enter description of this extension point.]
+ </documentation>
+ </annotation>
+
+ <element name="extension">
+ <annotation>
+ <appInfo>
+ <meta.element />
+ </appInfo>
+ </annotation>
+ <complexType>
+ <sequence minOccurs="1" maxOccurs="unbounded">
+ <element ref="singlefilter"/>
+ </sequence>
+ <attribute name="point" type="string" use="required">
+ <annotation>
+ <documentation>
+
+ </documentation>
+ </annotation>
+ </attribute>
+ <attribute name="id" type="string">
+ <annotation>
+ <documentation>
+
+ </documentation>
+ </annotation>
+ </attribute>
+ <attribute name="name" type="string">
+ <annotation>
+ <documentation>
+
+ </documentation>
+ <appInfo>
+ <meta.attribute translatable="true"/>
+ </appInfo>
+ </annotation>
+ </attribute>
+ </complexType>
+ </element>
+
+ <element name="singlefilter">
+ <complexType>
+ <attribute name="name" type="string" use="required">
+ <annotation>
+ <documentation>
+
+ </documentation>
+ </annotation>
+ </attribute>
+ <attribute name="id" type="string" use="required">
+ <annotation>
+ <documentation>
+
+ </documentation>
+ </annotation>
+ </attribute>
+ <attribute name="namespaceUri" type="string" use="required">
+ <annotation>
+ <documentation>
+
+ </documentation>
+ </annotation>
+ </attribute>
+ <attribute name="description" type="string">
+ <annotation>
+ <documentation>
+
+ </documentation>
+ </annotation>
+ </attribute>
+ <attribute name="class" type="string" use="required">
+ <annotation>
+ <documentation>
+
+ </documentation>
+ <appInfo>
+ <meta.attribute kind="java" basedOn=":comrel.extensions.ISingleFilterHelper"/>
+ </appInfo>
+ </annotation>
+ </attribute>
+ </complexType>
+ </element>
+
+ <annotation>
+ <appInfo>
+ <meta.section type="since"/>
+ </appInfo>
+ <documentation>
+ [Enter the first release in which this extension point appears.]
+ </documentation>
+ </annotation>
+
+ <annotation>
+ <appInfo>
+ <meta.section type="examples"/>
+ </appInfo>
+ <documentation>
+ [Enter extension point usage example here.]
+ </documentation>
+ </annotation>
+
+ <annotation>
+ <appInfo>
+ <meta.section type="apiinfo"/>
+ </appInfo>
+ <documentation>
+ [Enter API information here.]
+ </documentation>
+ </annotation>
+
+ <annotation>
+ <appInfo>
+ <meta.section type="implementation"/>
+ </appInfo>
+ <documentation>
+ [Enter information about supplied implementation of this extension point.]
+ </documentation>
+ </annotation>
+
+
+</schema>
diff --git a/org.eclipse.emf.refactor.comrel/src/comrel/AtomicUnit.java b/org.eclipse.emf.refactor.comrel/src/comrel/AtomicUnit.java
new file mode 100644
index 0000000..208755c
--- /dev/null
+++ b/org.eclipse.emf.refactor.comrel/src/comrel/AtomicUnit.java
@@ -0,0 +1,226 @@
+/**
+ * <copyright>
+ * </copyright>
+ *
+ * $Id$
+ */
+package comrel;
+
+import org.eclipse.emf.common.util.EList;
+
+/**
+ * <!-- begin-user-doc -->
+ * A representation of the model object '<em><b>Atomic Unit</b></em>'.
+ * <!-- end-user-doc -->
+ *
+ * <p>
+ * The following features are supported:
+ * <ul>
+ * <li>{@link comrel.AtomicUnit#getInputPorts <em>Input Ports</em>}</li>
+ * <li>{@link comrel.AtomicUnit#getUnitId <em>Unit Id</em>}</li>
+ * <li>{@link comrel.AtomicUnit#getLabel <em>Label</em>}</li>
+ * <li>{@link comrel.AtomicUnit#getNamespaceUri <em>Namespace Uri</em>}</li>
+ * <li>{@link comrel.AtomicUnit#getType <em>Type</em>}</li>
+ * <li>{@link comrel.AtomicUnit#getModelRefactoring <em>Model Refactoring</em>}</li>
+ * <li>{@link comrel.AtomicUnit#isCheckInitialConditionFlag <em>Check Initial Condition Flag</em>}</li>
+ * <li>{@link comrel.AtomicUnit#isCheckFinalConditionFlag <em>Check Final Condition Flag</em>}</li>
+ * </ul>
+ * </p>
+ *
+ * @see comrel.ComrelPackage#getAtomicUnit()
+ * @model annotation="gmf.node foo='bar' label.icon='false' label='label,type' label.pattern='{0}:{1}'"
+ * @generated
+ */
+public interface AtomicUnit extends RefactoringUnit {
+ /**
+ * Returns the value of the '<em><b>Input Ports</b></em>' containment reference list.
+ * The list contents are of type {@link comrel.SingleInputPort}.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of the '<em>Input Ports</em>' containment reference list isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @return the value of the '<em>Input Ports</em>' containment reference list.
+ * @see comrel.ComrelPackage#getAtomicUnit_InputPorts()
+ * @model containment="true" required="true"
+ * annotation="gmf.affixed foo='bar'"
+ * @generated
+ */
+ EList<SingleInputPort> getInputPorts();
+
+ /**
+ * Returns the value of the '<em><b>Unit Id</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of the '<em>Unit Id</em>' attribute isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @return the value of the '<em>Unit Id</em>' attribute.
+ * @see #setUnitId(String)
+ * @see comrel.ComrelPackage#getAtomicUnit_UnitId()
+ * @model required="true"
+ * @generated
+ */
+ String getUnitId();
+
+ /**
+ * Sets the value of the '{@link comrel.AtomicUnit#getUnitId <em>Unit Id</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @param value the new value of the '<em>Unit Id</em>' attribute.
+ * @see #getUnitId()
+ * @generated
+ */
+ void setUnitId(String value);
+
+ /**
+ * Returns the value of the '<em><b>Label</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of the '<em>Label</em>' attribute isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @return the value of the '<em>Label</em>' attribute.
+ * @see #setLabel(String)
+ * @see comrel.ComrelPackage#getAtomicUnit_Label()
+ * @model required="true"
+ * @generated
+ */
+ String getLabel();
+
+ /**
+ * Sets the value of the '{@link comrel.AtomicUnit#getLabel <em>Label</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @param value the new value of the '<em>Label</em>' attribute.
+ * @see #getLabel()
+ * @generated
+ */
+ void setLabel(String value);
+
+ /**
+ * Returns the value of the '<em><b>Namespace Uri</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of the '<em>Namespace Uri</em>' attribute isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @return the value of the '<em>Namespace Uri</em>' attribute.
+ * @see #setNamespaceUri(String)
+ * @see comrel.ComrelPackage#getAtomicUnit_NamespaceUri()
+ * @model required="true"
+ * @generated
+ */
+ String getNamespaceUri();
+
+ /**
+ * Sets the value of the '{@link comrel.AtomicUnit#getNamespaceUri <em>Namespace Uri</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @param value the new value of the '<em>Namespace Uri</em>' attribute.
+ * @see #getNamespaceUri()
+ * @generated
+ */
+ void setNamespaceUri(String value);
+
+ /**
+ * Returns the value of the '<em><b>Type</b></em>' attribute.
+ * The default value is <code>"Atomic Unit"</code>.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of the '<em>Type</em>' attribute isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @return the value of the '<em>Type</em>' attribute.
+ * @see comrel.ComrelPackage#getAtomicUnit_Type()
+ * @model default="Atomic Unit" changeable="false"
+ * @generated
+ */
+ String getType();
+
+ /**
+ * Returns the value of the '<em><b>Model Refactoring</b></em>' reference.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of the '<em>Model Refactoring</em>' reference isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @return the value of the '<em>Model Refactoring</em>' reference.
+ * @see #setModelRefactoring(ModelRefactoring)
+ * @see comrel.ComrelPackage#getAtomicUnit_ModelRefactoring()
+ * @model required="true"
+ * @generated
+ */
+ ModelRefactoring getModelRefactoring();
+
+ /**
+ * Sets the value of the '{@link comrel.AtomicUnit#getModelRefactoring <em>Model Refactoring</em>}' reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @param value the new value of the '<em>Model Refactoring</em>' reference.
+ * @see #getModelRefactoring()
+ * @generated
+ */
+ void setModelRefactoring(ModelRefactoring value);
+
+ /**
+ * Returns the value of the '<em><b>Check Initial Condition Flag</b></em>' attribute.
+ * The default value is <code>"false"</code>.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of the '<em>Check Initial Condition Flag</em>' attribute isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @return the value of the '<em>Check Initial Condition Flag</em>' attribute.
+ * @see #setCheckInitialConditionFlag(boolean)
+ * @see comrel.ComrelPackage#getAtomicUnit_CheckInitialConditionFlag()
+ * @model default="false"
+ * @generated
+ */
+ boolean isCheckInitialConditionFlag();
+
+ /**
+ * Sets the value of the '{@link comrel.AtomicUnit#isCheckInitialConditionFlag <em>Check Initial Condition Flag</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @param value the new value of the '<em>Check Initial Condition Flag</em>' attribute.
+ * @see #isCheckInitialConditionFlag()
+ * @generated
+ */
+ void setCheckInitialConditionFlag(boolean value);
+
+ /**
+ * Returns the value of the '<em><b>Check Final Condition Flag</b></em>' attribute.
+ * The default value is <code>"false"</code>.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of the '<em>Check Final Condition Flag</em>' attribute isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @return the value of the '<em>Check Final Condition Flag</em>' attribute.
+ * @see #setCheckFinalConditionFlag(boolean)
+ * @see comrel.ComrelPackage#getAtomicUnit_CheckFinalConditionFlag()
+ * @model default="false"
+ * @generated
+ */
+ boolean isCheckFinalConditionFlag();
+
+ /**
+ * Sets the value of the '{@link comrel.AtomicUnit#isCheckFinalConditionFlag <em>Check Final Condition Flag</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @param value the new value of the '<em>Check Final Condition Flag</em>' attribute.
+ * @see #isCheckFinalConditionFlag()
+ * @generated
+ */
+ void setCheckFinalConditionFlag(boolean value);
+
+} // AtomicUnit
diff --git a/org.eclipse.emf.refactor.comrel/src/comrel/CartesianQueuedUnit.java b/org.eclipse.emf.refactor.comrel/src/comrel/CartesianQueuedUnit.java
new file mode 100644
index 0000000..87fe9ef
--- /dev/null
+++ b/org.eclipse.emf.refactor.comrel/src/comrel/CartesianQueuedUnit.java
@@ -0,0 +1,154 @@
+/**
+ * <copyright>
+ * </copyright>
+ *
+ * $Id$
+ */
+package comrel;
+
+import org.eclipse.emf.common.util.EList;
+
+/**
+ * <!-- begin-user-doc -->
+ * A representation of the model object '<em><b>Cartesian Queued Unit</b></em>'.
+ * <!-- end-user-doc -->
+ *
+ * <p>
+ * The following features are supported:
+ * <ul>
+ * <li>{@link comrel.CartesianQueuedUnit#getHelperUnits <em>Helper Units</em>}</li>
+ * <li>{@link comrel.CartesianQueuedUnit#getRefactoringUnit <em>Refactoring Unit</em>}</li>
+ * <li>{@link comrel.CartesianQueuedUnit#getSingleInputPorts <em>Single Input Ports</em>}</li>
+ * <li>{@link comrel.CartesianQueuedUnit#getMultiInputPorts <em>Multi Input Ports</em>}</li>
+ * <li>{@link comrel.CartesianQueuedUnit#getType <em>Type</em>}</li>
+ * <li>{@link comrel.CartesianQueuedUnit#getLblStrict <em>Lbl Strict</em>}</li>
+ * </ul>
+ * </p>
+ *
+ * @see comrel.ComrelPackage#getCartesianQueuedUnit()
+ * @model annotation="gmf.node foo='bar' label.icon='false' label='name,type,lblStrict' label.pattern='{0}:{1} -{2}-'"
+ * @generated
+ */
+public interface CartesianQueuedUnit extends TwicedQueuedUnit {
+ /**
+ * Returns the value of the '<em><b>Helper Units</b></em>' containment reference list.
+ * The list contents are of type {@link comrel.HelperUnit}.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of the '<em>Helper Units</em>' containment reference list isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @return the value of the '<em>Helper Units</em>' containment reference list.
+ * @see comrel.ComrelPackage#getCartesianQueuedUnit_HelperUnits()
+ * @model containment="true"
+ * annotation="gmf.compartment foo='bar'"
+ * @generated
+ */
+ EList<HelperUnit> getHelperUnits();
+
+ /**
+ * Returns the value of the '<em><b>Refactoring Unit</b></em>' containment reference.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of the '<em>Refactoring Unit</em>' containment reference isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @return the value of the '<em>Refactoring Unit</em>' containment reference.
+ * @see #setRefactoringUnit(RefactoringUnit)
+ * @see comrel.ComrelPackage#getCartesianQueuedUnit_RefactoringUnit()
+ * @model containment="true" required="true"
+ * annotation="gmf.compartment foo='bar'"
+ * @generated
+ */
+ RefactoringUnit getRefactoringUnit();
+
+ /**
+ * Sets the value of the '{@link comrel.CartesianQueuedUnit#getRefactoringUnit <em>Refactoring Unit</em>}' containment reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @param value the new value of the '<em>Refactoring Unit</em>' containment reference.
+ * @see #getRefactoringUnit()
+ * @generated
+ */
+ void setRefactoringUnit(RefactoringUnit value);
+
+ /**
+ * Returns the value of the '<em><b>Single Input Ports</b></em>' containment reference list.
+ * The list contents are of type {@link comrel.SingleInputPort}.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of the '<em>Single Input Ports</em>' containment reference list isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @return the value of the '<em>Single Input Ports</em>' containment reference list.
+ * @see comrel.ComrelPackage#getCartesianQueuedUnit_SingleInputPorts()
+ * @model containment="true"
+ * annotation="gmf.affixed foo='bar'"
+ * @generated
+ */
+ EList<SingleInputPort> getSingleInputPorts();
+
+ /**
+ * Returns the value of the '<em><b>Multi Input Ports</b></em>' containment reference list.
+ * The list contents are of type {@link comrel.MultiInputPort}.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of the '<em>Multi Input Ports</em>' containment reference list isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @return the value of the '<em>Multi Input Ports</em>' containment reference list.
+ * @see comrel.ComrelPackage#getCartesianQueuedUnit_MultiInputPorts()
+ * @model containment="true" lower="2" upper="2"
+ * annotation="gmf.affixed foo='bar'"
+ * @generated
+ */
+ EList<MultiInputPort> getMultiInputPorts();
+
+ /**
+ * Returns the value of the '<em><b>Type</b></em>' attribute.
+ * The default value is <code>"Cartesian Queued Unit"</code>.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of the '<em>Type</em>' attribute isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @return the value of the '<em>Type</em>' attribute.
+ * @see comrel.ComrelPackage#getCartesianQueuedUnit_Type()
+ * @model default="Cartesian Queued Unit" changeable="false"
+ * @generated
+ */
+ String getType();
+
+ /**
+ * Returns the value of the '<em><b>Lbl Strict</b></em>' attribute.
+ * The default value is <code>"strict"</code>.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of the '<em>Lbl Strict</em>' attribute isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @return the value of the '<em>Lbl Strict</em>' attribute.
+ * @see #setLblStrict(String)
+ * @see comrel.ComrelPackage#getCartesianQueuedUnit_LblStrict()
+ * @model default="strict"
+ * @generated
+ */
+ String getLblStrict();
+
+ /**
+ * Sets the value of the '{@link comrel.CartesianQueuedUnit#getLblStrict <em>Lbl Strict</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @param value the new value of the '<em>Lbl Strict</em>' attribute.
+ * @see #getLblStrict()
+ * @generated
+ */
+ void setLblStrict(String value);
+
+} // CartesianQueuedUnit
diff --git a/org.eclipse.emf.refactor.comrel/src/comrel/CompositeRefactoring.java b/org.eclipse.emf.refactor.comrel/src/comrel/CompositeRefactoring.java
new file mode 100644
index 0000000..30a49fa
--- /dev/null
+++ b/org.eclipse.emf.refactor.comrel/src/comrel/CompositeRefactoring.java
@@ -0,0 +1,227 @@
+/**
+ * <copyright>
+ * </copyright>
+ *
+ * $Id$
+ */
+package comrel;
+
+import java.util.Collection;
+import java.util.Set;
+
+import org.eclipse.emf.common.util.EList;
+
+/**
+ * <!-- begin-user-doc -->
+ * A representation of the model object '<em><b>Composite Refactoring</b></em>'.
+ * <!-- end-user-doc -->
+ *
+ * <p>
+ * The following features are supported:
+ * <ul>
+ * <li>{@link comrel.CompositeRefactoring#getMainRefactoringUnit <em>Main Refactoring Unit</em>}</li>
+ * <li>{@link comrel.CompositeRefactoring#getPortMappings <em>Port Mappings</em>}</li>
+ * <li>{@link comrel.CompositeRefactoring#getModelRefactorings <em>Model Refactorings</em>}</li>
+ * <li>{@link comrel.CompositeRefactoring#getHelper <em>Helper</em>}</li>
+ * <li>{@link comrel.CompositeRefactoring#getMappingVisualization <em>Mapping Visualization</em>}</li>
+ * <li>{@link comrel.CompositeRefactoring#getCustomInitialCondition <em>Custom Initial Condition</em>}</li>
+ * <li>{@link comrel.CompositeRefactoring#getCustomFinalCondition <em>Custom Final Condition</em>}</li>
+ * </ul>
+ * </p>
+ *
+ * @see comrel.ComrelPackage#getCompositeRefactoring()
+ * @model annotation="gmf.diagram foo='bar' onefile='false'"
+ * @generated
+ */
+public interface CompositeRefactoring extends ModelRefactoring {
+ /**
+ * Returns the value of the '<em><b>Main Refactoring Unit</b></em>' containment reference.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of the '<em>Main Refactoring Unit</em>' containment reference isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @return the value of the '<em>Main Refactoring Unit</em>' containment reference.
+ * @see #setMainRefactoringUnit(RefactoringUnit)
+ * @see comrel.ComrelPackage#getCompositeRefactoring_MainRefactoringUnit()
+ * @model containment="true" required="true"
+ * @generated
+ */
+ RefactoringUnit getMainRefactoringUnit();
+
+ /**
+ * Sets the value of the '{@link comrel.CompositeRefactoring#getMainRefactoringUnit <em>Main Refactoring Unit</em>}' containment reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @param value the new value of the '<em>Main Refactoring Unit</em>' containment reference.
+ * @see #getMainRefactoringUnit()
+ * @generated
+ */
+ void setMainRefactoringUnit(RefactoringUnit value);
+
+ /**
+ * Returns the value of the '<em><b>Port Mappings</b></em>' containment reference list.
+ * The list contents are of type {@link comrel.PortMapping}.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of the '<em>Port Mappings</em>' containment reference list isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @return the value of the '<em>Port Mappings</em>' containment reference list.
+ * @see comrel.ComrelPackage#getCompositeRefactoring_PortMappings()
+ * @model containment="true"
+ * @generated
+ */
+ EList<PortMapping> getPortMappings();
+
+ /**
+ * Returns the value of the '<em><b>Model Refactorings</b></em>' containment reference list.
+ * The list contents are of type {@link comrel.ModelRefactoring}.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of the '<em>Model Refactorings</em>' containment reference list isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @return the value of the '<em>Model Refactorings</em>' containment reference list.
+ * @see comrel.ComrelPackage#getCompositeRefactoring_ModelRefactorings()
+ * @model containment="true"
+ * @generated
+ */
+ EList<ModelRefactoring> getModelRefactorings();
+
+ /**
+ * Returns the value of the '<em><b>Helper</b></em>' containment reference list.
+ * The list contents are of type {@link comrel.Helper}.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of the '<em>Helper</em>' containment reference list isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @return the value of the '<em>Helper</em>' containment reference list.
+ * @see comrel.ComrelPackage#getCompositeRefactoring_Helper()
+ * @model containment="true"
+ * @generated
+ */
+ EList<Helper> getHelper();
+
+ /**
+ * Returns the value of the '<em><b>Mapping Visualization</b></em>' attribute.
+ * The default value is <code>"0"</code>.
+ * The literals are from the enumeration {@link comrel.MappingVisualization}.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of the '<em>Mapping Visualization</em>' attribute isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @return the value of the '<em>Mapping Visualization</em>' attribute.
+ * @see comrel.MappingVisualization
+ * @see #setMappingVisualization(MappingVisualization)
+ * @see comrel.ComrelPackage#getCompositeRefactoring_MappingVisualization()
+ * @model default="0" required="true"
+ * @generated
+ */
+ MappingVisualization getMappingVisualization();
+
+ /**
+ * Sets the value of the '{@link comrel.CompositeRefactoring#getMappingVisualization <em>Mapping Visualization</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @param value the new value of the '<em>Mapping Visualization</em>' attribute.
+ * @see comrel.MappingVisualization
+ * @see #getMappingVisualization()
+ * @generated
+ */
+ void setMappingVisualization(MappingVisualization value);
+
+ /**
+ * Returns the value of the '<em><b>Custom Initial Condition</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of the '<em>Custom Initial Condition</em>' attribute isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @return the value of the '<em>Custom Initial Condition</em>' attribute.
+ * @see #setCustomInitialCondition(String)
+ * @see comrel.ComrelPackage#getCompositeRefactoring_CustomInitialCondition()
+ * @model
+ * @generated
+ */
+ String getCustomInitialCondition();
+
+ /**
+ * Sets the value of the '{@link comrel.CompositeRefactoring#getCustomInitialCondition <em>Custom Initial Condition</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @param value the new value of the '<em>Custom Initial Condition</em>' attribute.
+ * @see #getCustomInitialCondition()
+ * @generated
+ */
+ void setCustomInitialCondition(String value);
+
+ /**
+ * Returns the value of the '<em><b>Custom Final Condition</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of the '<em>Custom Final Condition</em>' attribute isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @return the value of the '<em>Custom Final Condition</em>' attribute.
+ * @see #setCustomFinalCondition(String)
+ * @see comrel.ComrelPackage#getCompositeRefactoring_CustomFinalCondition()
+ * @model
+ * @generated
+ */
+ String getCustomFinalCondition();
+
+ /**
+ * Sets the value of the '{@link comrel.CompositeRefactoring#getCustomFinalCondition <em>Custom Final Condition</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @param value the new value of the '<em>Custom Final Condition</em>' attribute.
+ * @see #getCustomFinalCondition()
+ * @generated
+ */
+ void setCustomFinalCondition(String value);
+
+ public ModelRefactoring getModelRefactoring(String id);
+
+ public Helper getHelper(String id);
+
+ public SingleFeatureHelper getSingleFeatureHelper(String id);
+
+ public MultiFeatureHelper getMultiFeatureHelper(String id);
+
+ public Collection<ModelRefactoring> getEmfRefactoringsAsModelRefactorings();
+
+ public ModelRefactoring getEmfRefactoringAsModelRefactoring(String id);
+
+ public MultiFilterHelper getMultiFilterHelper(String id);
+
+ public SingleFilterHelper getSingleFilterHelper(String id);
+
+ public boolean modelRefactoringInUse(ModelRefactoring ref, AtomicUnit context);
+
+ public boolean helperInUse(Helper helper, HelperUnit context);
+
+ public void removeUnusedModelRefactorings();
+
+ public void removeUnusedHelper();
+
+ public void setName(String newName, boolean updateRootUnit);
+
+ public void setMappingNumbers(Set<Integer> mappingNumbers);
+
+ public Set<Integer> getMappingNumbers();
+
+ public void cleanUpMappingNumbers();
+
+ public void updateVisualization();
+
+} // CompositeRefactoring
diff --git a/org.eclipse.emf.refactor.comrel/src/comrel/CompositeUnit.java b/org.eclipse.emf.refactor.comrel/src/comrel/CompositeUnit.java
new file mode 100644
index 0000000..18444b6
--- /dev/null
+++ b/org.eclipse.emf.refactor.comrel/src/comrel/CompositeUnit.java
@@ -0,0 +1,26 @@
+/**
+ * <copyright>
+ * </copyright>
+ *
+ * $Id$
+ */
+package comrel;
+
+import org.eclipse.emf.common.util.EList;
+
+
+/**
+ * <!-- begin-user-doc -->
+ * A representation of the model object '<em><b>Composite Unit</b></em>'.
+ * <!-- end-user-doc -->
+ *
+ *
+ * @see comrel.ComrelPackage#getCompositeUnit()
+ * @model abstract="true"
+ * @generated
+ */
+public interface CompositeUnit extends RefactoringUnit {
+
+ EList<HelperUnit> getHelperUnits();
+
+} // CompositeUnit
diff --git a/org.eclipse.emf.refactor.comrel/src/comrel/ComrelFactory.java b/org.eclipse.emf.refactor.comrel/src/comrel/ComrelFactory.java
new file mode 100644
index 0000000..ca3e523
--- /dev/null
+++ b/org.eclipse.emf.refactor.comrel/src/comrel/ComrelFactory.java
@@ -0,0 +1,303 @@
+/**
+ * <copyright>
+ * </copyright>
+ *
+ * $Id$
+ */
+package comrel;
+
+import org.eclipse.emf.ecore.EFactory;
+
+/**
+ * <!-- begin-user-doc -->
+ * The <b>Factory</b> for the model.
+ * It provides a create method for each non-abstract class of the model.
+ * <!-- end-user-doc -->
+ * @see comrel.ComrelPackage
+ * @generated
+ */
+public interface ComrelFactory extends EFactory {
+ /**
+ * The singleton instance of the factory.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ ComrelFactory eINSTANCE = comrel.impl.ComrelFactoryImpl.init();
+
+ /**
+ * Returns a new object of class '<em>Composite Refactoring</em>'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return a new object of class '<em>Composite Refactoring</em>'.
+ * @generated
+ */
+ CompositeRefactoring createCompositeRefactoring();
+
+ /**
+ * Returns a new object of class '<em>Model Refactoring</em>'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return a new object of class '<em>Model Refactoring</em>'.
+ * @generated
+ */
+ ModelRefactoring createModelRefactoring();
+
+ /**
+ * Returns a new object of class '<em>Model Refactoring</em>'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return a new object of class '<em>Model Refactoring</em>'.
+ */
+ ModelRefactoring createModelRefactoring(String id);
+
+ /**
+ * Returns a new object of class '<em>Atomic Unit</em>'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return a new object of class '<em>Atomic Unit</em>'.
+ * @generated
+ */
+ AtomicUnit createAtomicUnit();
+
+ /**
+ * Returns a new object of class '<em>Atomic Unit</em>'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return a new object of class '<em>Atomic Unit</em>'.
+ */
+ AtomicUnit createAtomicUnit(ModelRefactoring refactoring);
+
+ /**
+ * Returns a new object of class '<em>Sequential Unit</em>'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return a new object of class '<em>Sequential Unit</em>'.
+ * @generated
+ */
+ SequentialUnit createSequentialUnit();
+
+ /**
+ * Returns a new object of class '<em>Condition Check</em>'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return a new object of class '<em>Condition Check</em>'.
+ * @generated
+ */
+ ConditionCheck createConditionCheck();
+
+ /**
+ * Returns a new object of class '<em>Conditional Unit</em>'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return a new object of class '<em>Conditional Unit</em>'.
+ * @generated
+ */
+ ConditionalUnit createConditionalUnit();
+
+ /**
+ * Returns a new object of class '<em>Single Queued Unit</em>'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return a new object of class '<em>Single Queued Unit</em>'.
+ * @generated
+ */
+ SingleQueuedUnit createSingleQueuedUnit();
+
+ /**
+ * Returns a new object of class '<em>Cartesian Queued Unit</em>'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return a new object of class '<em>Cartesian Queued Unit</em>'.
+ * @generated
+ */
+ CartesianQueuedUnit createCartesianQueuedUnit();
+
+ /**
+ * Returns a new object of class '<em>Parallel Queued Unit</em>'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return a new object of class '<em>Parallel Queued Unit</em>'.
+ * @generated
+ */
+ ParallelQueuedUnit createParallelQueuedUnit();
+
+ /**
+ * Returns a new object of class '<em>Single Feature Unit</em>'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return a new object of class '<em>Single Feature Unit</em>'.
+ * @generated
+ */
+ SingleFeatureUnit createSingleFeatureUnit();
+
+ /**
+ * Returns a new object of class '<em>Single Feature Unit</em>'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return a new object of class '<em>Single Feature Unit</em>'.
+ */
+ SingleFeatureUnit createSingleFeatureUnit(SingleFeatureHelper helper);
+
+ /**
+ * Returns a new object of class '<em>Multi Feature Unit</em>'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return a new object of class '<em>Multi Feature Unit</em>'.
+ * @generated
+ */
+ MultiFeatureUnit createMultiFeatureUnit();
+
+ /**
+ * Returns a new object of class '<em>Multi Feature Unit</em>'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return a new object of class '<em>Multi Feature Unit</em>'.
+ */
+ MultiFeatureUnit createMultiFeatureUnit(MultiFeatureHelper helper);
+
+ /**
+ * Returns a new object of class '<em>Single Filter Unit</em>'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return a new object of class '<em>Single Filter Unit</em>'.
+ * @generated
+ */
+ SingleFilterUnit createSingleFilterUnit();
+
+ /**
+ * Returns a new object of class '<em>Single Filter Unit</em>'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return a new object of class '<em>Single Filter Unit</em>'.
+ * @generated
+ */
+ SingleFilterUnit createSingleFilterUnit(SingleFilterHelper helper);
+
+ /**
+ * Returns a new object of class '<em>Multi Filter Unit</em>'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return a new object of class '<em>Multi Filter Unit</em>'.
+ * @generated
+ */
+ MultiFilterUnit createMultiFilterUnit();
+
+ /**
+ * Returns a new object of class '<em>Multi Filter Unit</em>'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return a new object of class '<em>Multi Filter Unit</em>'.
+ * @generated
+ */
+ MultiFilterUnit createMultiFilterUnit(MultiFilterHelper helper);
+
+ /**
+ * Returns a new object of class '<em>Single Feature Helper</em>'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return a new object of class '<em>Single Feature Helper</em>'.
+ * @generated
+ */
+ SingleFeatureHelper createSingleFeatureHelper();
+
+ /**
+ * Returns a new object of class '<em>Multi Feature Helper</em>'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return a new object of class '<em>Multi Feature Helper</em>'.
+ * @generated
+ */
+ MultiFeatureHelper createMultiFeatureHelper();
+
+ /**
+ * Returns a new object of class '<em>Single Filter Helper</em>'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return a new object of class '<em>Single Filter Helper</em>'.
+ * @generated
+ */
+ SingleFilterHelper createSingleFilterHelper();
+
+ /**
+ * Returns a new object of class '<em>Multi Filter Helper</em>'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return a new object of class '<em>Multi Filter Helper</em>'.
+ * @generated
+ */
+ MultiFilterHelper createMultiFilterHelper();
+
+ /**
+ * Returns a new object of class '<em>Single Input Port</em>'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return a new object of class '<em>Single Input Port</em>'.
+ * @generated
+ */
+ SingleInputPort createSingleInputPort();
+
+ /**
+ * Returns a new object of class '<em>Multi Input Port</em>'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return a new object of class '<em>Multi Input Port</em>'.
+ * @generated
+ */
+ MultiInputPort createMultiInputPort();
+
+ /**
+ * Returns a new object of class '<em>Single Output Port</em>'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return a new object of class '<em>Single Output Port</em>'.
+ * @generated
+ */
+ SingleOutputPort createSingleOutputPort();
+
+ /**
+ * Returns a new object of class '<em>Multi Output Port</em>'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return a new object of class '<em>Multi Output Port</em>'.
+ * @generated
+ */
+ MultiOutputPort createMultiOutputPort();
+
+ /**
+ * Returns a new object of class '<em>Single Port Mapping</em>'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return a new object of class '<em>Single Port Mapping</em>'.
+ * @generated
+ */
+ SinglePortMapping createSinglePortMapping();
+
+ /**
+ * Returns a new object of class '<em>Multi Port Mapping</em>'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return a new object of class '<em>Multi Port Mapping</em>'.
+ * @generated
+ */
+ MultiPortMapping createMultiPortMapping();
+
+ /**
+ * Returns a new object of class '<em>Multi Single Port Mapping</em>'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return a new object of class '<em>Multi Single Port Mapping</em>'.
+ * @generated
+ */
+ MultiSinglePortMapping createMultiSinglePortMapping();
+
+ /**
+ * Returns the package supported by this factory.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the package supported by this factory.
+ * @generated
+ */
+ ComrelPackage getComrelPackage();
+
+} //ComrelFactory
diff --git a/org.eclipse.emf.refactor.comrel/src/comrel/ComrelPackage.java b/org.eclipse.emf.refactor.comrel/src/comrel/ComrelPackage.java
new file mode 100644
index 0000000..8078c21
--- /dev/null
+++ b/org.eclipse.emf.refactor.comrel/src/comrel/ComrelPackage.java
@@ -0,0 +1,5450 @@
+/**
+ * <copyright>
+ * </copyright>
+ *
+ * $Id$
+ */
+package comrel;
+
+import org.eclipse.emf.ecore.EAttribute;
+import org.eclipse.emf.ecore.EClass;
+import org.eclipse.emf.ecore.EEnum;
+import org.eclipse.emf.ecore.EPackage;
+import org.eclipse.emf.ecore.EReference;
+
+/**
+ * <!-- begin-user-doc -->
+ * The <b>Package</b> for the model.
+ * It contains accessors for the meta objects to represent
+ * <ul>
+ * <li>each class,</li>
+ * <li>each feature of each class,</li>
+ * <li>each enum,</li>
+ * <li>and each data type</li>
+ * </ul>
+ * <!-- end-user-doc -->
+ * @see comrel.ComrelFactory
+ * @model kind="package"
+ * annotation="gmf foo='bar'"
+ * @generated
+ */
+public interface ComrelPackage extends EPackage {
+ /**
+ * The package name.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ String eNAME = "comrel";
+
+ /**
+ * The package namespace URI.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ String eNS_URI = "http://comrel/0.1";
+
+ /**
+ * The package namespace name.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ String eNS_PREFIX = "comrel";
+
+ /**
+ * The singleton instance of the package.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ ComrelPackage eINSTANCE = comrel.impl.ComrelPackageImpl.init();
+
+ /**
+ * The meta object id for the '{@link comrel.NamedElement <em>Named Element</em>}' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see comrel.NamedElement
+ * @see comrel.impl.ComrelPackageImpl#getNamedElement()
+ * @generated
+ */
+ int NAMED_ELEMENT = 1;
+
+ /**
+ * The feature id for the '<em><b>Name</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int NAMED_ELEMENT__NAME = 0;
+
+ /**
+ * The number of structural features of the '<em>Named Element</em>' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int NAMED_ELEMENT_FEATURE_COUNT = 1;
+
+ /**
+ * The meta object id for the '{@link comrel.impl.ModelRefactoringImpl <em>Model Refactoring</em>}' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see comrel.impl.ModelRefactoringImpl
+ * @see comrel.impl.ComrelPackageImpl#getModelRefactoring()
+ * @generated
+ */
+ int MODEL_REFACTORING = 4;
+
+ /**
+ * The feature id for the '<em><b>Name</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int MODEL_REFACTORING__NAME = NAMED_ELEMENT__NAME;
+
+ /**
+ * The feature id for the '<em><b>Description</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int MODEL_REFACTORING__DESCRIPTION = NAMED_ELEMENT_FEATURE_COUNT + 0;
+
+ /**
+ * The feature id for the '<em><b>Ref Id</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int MODEL_REFACTORING__REF_ID = NAMED_ELEMENT_FEATURE_COUNT + 1;
+
+ /**
+ * The feature id for the '<em><b>Label</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int MODEL_REFACTORING__LABEL = NAMED_ELEMENT_FEATURE_COUNT + 2;
+
+ /**
+ * The feature id for the '<em><b>Namespace Uri</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int MODEL_REFACTORING__NAMESPACE_URI = NAMED_ELEMENT_FEATURE_COUNT + 3;
+
+ /**
+ * The feature id for the '<em><b>Input Ports</b></em>' containment reference list.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int MODEL_REFACTORING__INPUT_PORTS = NAMED_ELEMENT_FEATURE_COUNT + 4;
+
+ /**
+ * The number of structural features of the '<em>Model Refactoring</em>' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int MODEL_REFACTORING_FEATURE_COUNT = NAMED_ELEMENT_FEATURE_COUNT + 5;
+
+ /**
+ * The meta object id for the '{@link comrel.impl.CompositeRefactoringImpl <em>Composite Refactoring</em>}' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see comrel.impl.CompositeRefactoringImpl
+ * @see comrel.impl.ComrelPackageImpl#getCompositeRefactoring()
+ * @generated
+ */
+ int COMPOSITE_REFACTORING = 0;
+
+ /**
+ * The feature id for the '<em><b>Name</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int COMPOSITE_REFACTORING__NAME = MODEL_REFACTORING__NAME;
+
+ /**
+ * The feature id for the '<em><b>Description</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int COMPOSITE_REFACTORING__DESCRIPTION = MODEL_REFACTORING__DESCRIPTION;
+
+ /**
+ * The feature id for the '<em><b>Ref Id</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int COMPOSITE_REFACTORING__REF_ID = MODEL_REFACTORING__REF_ID;
+
+ /**
+ * The feature id for the '<em><b>Label</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int COMPOSITE_REFACTORING__LABEL = MODEL_REFACTORING__LABEL;
+
+ /**
+ * The feature id for the '<em><b>Namespace Uri</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int COMPOSITE_REFACTORING__NAMESPACE_URI = MODEL_REFACTORING__NAMESPACE_URI;
+
+ /**
+ * The feature id for the '<em><b>Input Ports</b></em>' containment reference list.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int COMPOSITE_REFACTORING__INPUT_PORTS = MODEL_REFACTORING__INPUT_PORTS;
+
+ /**
+ * The feature id for the '<em><b>Main Refactoring Unit</b></em>' containment reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int COMPOSITE_REFACTORING__MAIN_REFACTORING_UNIT = MODEL_REFACTORING_FEATURE_COUNT + 0;
+
+ /**
+ * The feature id for the '<em><b>Port Mappings</b></em>' containment reference list.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int COMPOSITE_REFACTORING__PORT_MAPPINGS = MODEL_REFACTORING_FEATURE_COUNT + 1;
+
+ /**
+ * The feature id for the '<em><b>Model Refactorings</b></em>' containment reference list.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int COMPOSITE_REFACTORING__MODEL_REFACTORINGS = MODEL_REFACTORING_FEATURE_COUNT + 2;
+
+ /**
+ * The feature id for the '<em><b>Helper</b></em>' containment reference list.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int COMPOSITE_REFACTORING__HELPER = MODEL_REFACTORING_FEATURE_COUNT + 3;
+
+ /**
+ * The feature id for the '<em><b>Mapping Visualization</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int COMPOSITE_REFACTORING__MAPPING_VISUALIZATION = MODEL_REFACTORING_FEATURE_COUNT + 4;
+
+ /**
+ * The feature id for the '<em><b>Custom Initial Condition</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int COMPOSITE_REFACTORING__CUSTOM_INITIAL_CONDITION = MODEL_REFACTORING_FEATURE_COUNT + 5;
+
+ /**
+ * The feature id for the '<em><b>Custom Final Condition</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int COMPOSITE_REFACTORING__CUSTOM_FINAL_CONDITION = MODEL_REFACTORING_FEATURE_COUNT + 6;
+
+ /**
+ * The number of structural features of the '<em>Composite Refactoring</em>' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int COMPOSITE_REFACTORING_FEATURE_COUNT = MODEL_REFACTORING_FEATURE_COUNT + 7;
+
+ /**
+ * The meta object id for the '{@link comrel.DescribedElement <em>Described Element</em>}' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see comrel.DescribedElement
+ * @see comrel.impl.ComrelPackageImpl#getDescribedElement()
+ * @generated
+ */
+ int DESCRIBED_ELEMENT = 2;
+
+ /**
+ * The feature id for the '<em><b>Description</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int DESCRIBED_ELEMENT__DESCRIPTION = 0;
+
+ /**
+ * The number of structural features of the '<em>Described Element</em>' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int DESCRIBED_ELEMENT_FEATURE_COUNT = 1;
+
+ /**
+ * The meta object id for the '{@link comrel.impl.RefactoringUnitImpl <em>Refactoring Unit</em>}' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see comrel.impl.RefactoringUnitImpl
+ * @see comrel.impl.ComrelPackageImpl#getRefactoringUnit()
+ * @generated
+ */
+ int REFACTORING_UNIT = 3;
+
+ /**
+ * The feature id for the '<em><b>Name</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int REFACTORING_UNIT__NAME = NAMED_ELEMENT__NAME;
+
+ /**
+ * The feature id for the '<em><b>Seq Execution Order</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int REFACTORING_UNIT__SEQ_EXECUTION_ORDER = NAMED_ELEMENT_FEATURE_COUNT + 0;
+
+ /**
+ * The number of structural features of the '<em>Refactoring Unit</em>' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int REFACTORING_UNIT_FEATURE_COUNT = NAMED_ELEMENT_FEATURE_COUNT + 1;
+
+ /**
+ * The meta object id for the '{@link comrel.impl.AtomicUnitImpl <em>Atomic Unit</em>}' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see comrel.impl.AtomicUnitImpl
+ * @see comrel.impl.ComrelPackageImpl#getAtomicUnit()
+ * @generated
+ */
+ int ATOMIC_UNIT = 5;
+
+ /**
+ * The feature id for the '<em><b>Name</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int ATOMIC_UNIT__NAME = REFACTORING_UNIT__NAME;
+
+ /**
+ * The feature id for the '<em><b>Seq Execution Order</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int ATOMIC_UNIT__SEQ_EXECUTION_ORDER = REFACTORING_UNIT__SEQ_EXECUTION_ORDER;
+
+ /**
+ * The feature id for the '<em><b>Input Ports</b></em>' containment reference list.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int ATOMIC_UNIT__INPUT_PORTS = REFACTORING_UNIT_FEATURE_COUNT + 0;
+
+ /**
+ * The feature id for the '<em><b>Unit Id</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int ATOMIC_UNIT__UNIT_ID = REFACTORING_UNIT_FEATURE_COUNT + 1;
+
+ /**
+ * The feature id for the '<em><b>Label</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int ATOMIC_UNIT__LABEL = REFACTORING_UNIT_FEATURE_COUNT + 2;
+
+ /**
+ * The feature id for the '<em><b>Namespace Uri</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int ATOMIC_UNIT__NAMESPACE_URI = REFACTORING_UNIT_FEATURE_COUNT + 3;
+
+ /**
+ * The feature id for the '<em><b>Type</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int ATOMIC_UNIT__TYPE = REFACTORING_UNIT_FEATURE_COUNT + 4;
+
+ /**
+ * The feature id for the '<em><b>Model Refactoring</b></em>' reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int ATOMIC_UNIT__MODEL_REFACTORING = REFACTORING_UNIT_FEATURE_COUNT + 5;
+
+ /**
+ * The feature id for the '<em><b>Check Initial Condition Flag</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int ATOMIC_UNIT__CHECK_INITIAL_CONDITION_FLAG = REFACTORING_UNIT_FEATURE_COUNT + 6;
+
+ /**
+ * The feature id for the '<em><b>Check Final Condition Flag</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int ATOMIC_UNIT__CHECK_FINAL_CONDITION_FLAG = REFACTORING_UNIT_FEATURE_COUNT + 7;
+
+ /**
+ * The number of structural features of the '<em>Atomic Unit</em>' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int ATOMIC_UNIT_FEATURE_COUNT = REFACTORING_UNIT_FEATURE_COUNT + 8;
+
+ /**
+ * The meta object id for the '{@link comrel.impl.CompositeUnitImpl <em>Composite Unit</em>}' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see comrel.impl.CompositeUnitImpl
+ * @see comrel.impl.ComrelPackageImpl#getCompositeUnit()
+ * @generated
+ */
+ int COMPOSITE_UNIT = 6;
+
+ /**
+ * The feature id for the '<em><b>Name</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int COMPOSITE_UNIT__NAME = REFACTORING_UNIT__NAME;
+
+ /**
+ * The feature id for the '<em><b>Seq Execution Order</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int COMPOSITE_UNIT__SEQ_EXECUTION_ORDER = REFACTORING_UNIT__SEQ_EXECUTION_ORDER;
+
+ /**
+ * The number of structural features of the '<em>Composite Unit</em>' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int COMPOSITE_UNIT_FEATURE_COUNT = REFACTORING_UNIT_FEATURE_COUNT + 0;
+
+ /**
+ * The meta object id for the '{@link comrel.impl.SequentialUnitImpl <em>Sequential Unit</em>}' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see comrel.impl.SequentialUnitImpl
+ * @see comrel.impl.ComrelPackageImpl#getSequentialUnit()
+ * @generated
+ */
+ int SEQUENTIAL_UNIT = 7;
+
+ /**
+ * The feature id for the '<em><b>Name</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int SEQUENTIAL_UNIT__NAME = COMPOSITE_UNIT__NAME;
+
+ /**
+ * The feature id for the '<em><b>Seq Execution Order</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int SEQUENTIAL_UNIT__SEQ_EXECUTION_ORDER = COMPOSITE_UNIT__SEQ_EXECUTION_ORDER;
+
+ /**
+ * The feature id for the '<em><b>Helper Units</b></em>' containment reference list.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int SEQUENTIAL_UNIT__HELPER_UNITS = COMPOSITE_UNIT_FEATURE_COUNT + 0;
+
+ /**
+ * The feature id for the '<em><b>Refactoring Units</b></em>' containment reference list.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int SEQUENTIAL_UNIT__REFACTORING_UNITS = COMPOSITE_UNIT_FEATURE_COUNT + 1;
+
+ /**
+ * The feature id for the '<em><b>Input Ports</b></em>' containment reference list.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int SEQUENTIAL_UNIT__INPUT_PORTS = COMPOSITE_UNIT_FEATURE_COUNT + 2;
+
+ /**
+ * The feature id for the '<em><b>Strict</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int SEQUENTIAL_UNIT__STRICT = COMPOSITE_UNIT_FEATURE_COUNT + 3;
+
+ /**
+ * The feature id for the '<em><b>Type</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int SEQUENTIAL_UNIT__TYPE = COMPOSITE_UNIT_FEATURE_COUNT + 4;
+
+ /**
+ * The feature id for the '<em><b>Lbl Strict</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int SEQUENTIAL_UNIT__LBL_STRICT = COMPOSITE_UNIT_FEATURE_COUNT + 5;
+
+ /**
+ * The number of structural features of the '<em>Sequential Unit</em>' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int SEQUENTIAL_UNIT_FEATURE_COUNT = COMPOSITE_UNIT_FEATURE_COUNT + 6;
+
+ /**
+ * The meta object id for the '{@link comrel.impl.ConditionCheckImpl <em>Condition Check</em>}' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see comrel.impl.ConditionCheckImpl
+ * @see comrel.impl.ComrelPackageImpl#getConditionCheck()
+ * @generated
+ */
+ int CONDITION_CHECK = 8;
+
+ /**
+ * The feature id for the '<em><b>Name</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int CONDITION_CHECK__NAME = NAMED_ELEMENT__NAME;
+
+ /**
+ * The feature id for the '<em><b>Description</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int CONDITION_CHECK__DESCRIPTION = NAMED_ELEMENT_FEATURE_COUNT + 0;
+
+ /**
+ * The feature id for the '<em><b>Type</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int CONDITION_CHECK__TYPE = NAMED_ELEMENT_FEATURE_COUNT + 1;
+
+ /**
+ * The feature id for the '<em><b>Spec</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int CONDITION_CHECK__SPEC = NAMED_ELEMENT_FEATURE_COUNT + 2;
+
+ /**
+ * The number of structural features of the '<em>Condition Check</em>' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int CONDITION_CHECK_FEATURE_COUNT = NAMED_ELEMENT_FEATURE_COUNT + 3;
+
+ /**
+ * The meta object id for the '{@link comrel.impl.ConditionalUnitImpl <em>Conditional Unit</em>}' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see comrel.impl.ConditionalUnitImpl
+ * @see comrel.impl.ComrelPackageImpl#getConditionalUnit()
+ * @generated
+ */
+ int CONDITIONAL_UNIT = 9;
+
+ /**
+ * The feature id for the '<em><b>Name</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int CONDITIONAL_UNIT__NAME = COMPOSITE_UNIT__NAME;
+
+ /**
+ * The feature id for the '<em><b>Seq Execution Order</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int CONDITIONAL_UNIT__SEQ_EXECUTION_ORDER = COMPOSITE_UNIT__SEQ_EXECUTION_ORDER;
+
+ /**
+ * The feature id for the '<em><b>If</b></em>' containment reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int CONDITIONAL_UNIT__IF = COMPOSITE_UNIT_FEATURE_COUNT + 0;
+
+ /**
+ * The feature id for the '<em><b>Helper Units</b></em>' containment reference list.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int CONDITIONAL_UNIT__HELPER_UNITS = COMPOSITE_UNIT_FEATURE_COUNT + 1;
+
+ /**
+ * The feature id for the '<em><b>Then</b></em>' containment reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int CONDITIONAL_UNIT__THEN = COMPOSITE_UNIT_FEATURE_COUNT + 2;
+
+ /**
+ * The feature id for the '<em><b>Else</b></em>' containment reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int CONDITIONAL_UNIT__ELSE = COMPOSITE_UNIT_FEATURE_COUNT + 3;
+
+ /**
+ * The feature id for the '<em><b>Input Ports</b></em>' containment reference list.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int CONDITIONAL_UNIT__INPUT_PORTS = COMPOSITE_UNIT_FEATURE_COUNT + 4;
+
+ /**
+ * The feature id for the '<em><b>Type</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int CONDITIONAL_UNIT__TYPE = COMPOSITE_UNIT_FEATURE_COUNT + 5;
+
+ /**
+ * The number of structural features of the '<em>Conditional Unit</em>' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int CONDITIONAL_UNIT_FEATURE_COUNT = COMPOSITE_UNIT_FEATURE_COUNT + 6;
+
+ /**
+ * The meta object id for the '{@link comrel.impl.QueuedUnitImpl <em>Queued Unit</em>}' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see comrel.impl.QueuedUnitImpl
+ * @see comrel.impl.ComrelPackageImpl#getQueuedUnit()
+ * @generated
+ */
+ int QUEUED_UNIT = 10;
+
+ /**
+ * The feature id for the '<em><b>Name</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int QUEUED_UNIT__NAME = COMPOSITE_UNIT__NAME;
+
+ /**
+ * The feature id for the '<em><b>Seq Execution Order</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int QUEUED_UNIT__SEQ_EXECUTION_ORDER = COMPOSITE_UNIT__SEQ_EXECUTION_ORDER;
+
+ /**
+ * The feature id for the '<em><b>Strict</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int QUEUED_UNIT__STRICT = COMPOSITE_UNIT_FEATURE_COUNT + 0;
+
+ /**
+ * The number of structural features of the '<em>Queued Unit</em>' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int QUEUED_UNIT_FEATURE_COUNT = COMPOSITE_UNIT_FEATURE_COUNT + 1;
+
+ /**
+ * The meta object id for the '{@link comrel.impl.SingleQueuedUnitImpl <em>Single Queued Unit</em>}' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see comrel.impl.SingleQueuedUnitImpl
+ * @see comrel.impl.ComrelPackageImpl#getSingleQueuedUnit()
+ * @generated
+ */
+ int SINGLE_QUEUED_UNIT = 11;
+
+ /**
+ * The feature id for the '<em><b>Name</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int SINGLE_QUEUED_UNIT__NAME = QUEUED_UNIT__NAME;
+
+ /**
+ * The feature id for the '<em><b>Seq Execution Order</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int SINGLE_QUEUED_UNIT__SEQ_EXECUTION_ORDER = QUEUED_UNIT__SEQ_EXECUTION_ORDER;
+
+ /**
+ * The feature id for the '<em><b>Strict</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int SINGLE_QUEUED_UNIT__STRICT = QUEUED_UNIT__STRICT;
+
+ /**
+ * The feature id for the '<em><b>Helper Units</b></em>' containment reference list.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int SINGLE_QUEUED_UNIT__HELPER_UNITS = QUEUED_UNIT_FEATURE_COUNT + 0;
+
+ /**
+ * The feature id for the '<em><b>Refactoring Unit</b></em>' containment reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int SINGLE_QUEUED_UNIT__REFACTORING_UNIT = QUEUED_UNIT_FEATURE_COUNT + 1;
+
+ /**
+ * The feature id for the '<em><b>Single Input Ports</b></em>' containment reference list.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int SINGLE_QUEUED_UNIT__SINGLE_INPUT_PORTS = QUEUED_UNIT_FEATURE_COUNT + 2;
+
+ /**
+ * The feature id for the '<em><b>Multi Input Port</b></em>' containment reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int SINGLE_QUEUED_UNIT__MULTI_INPUT_PORT = QUEUED_UNIT_FEATURE_COUNT + 3;
+
+ /**
+ * The feature id for the '<em><b>Type</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int SINGLE_QUEUED_UNIT__TYPE = QUEUED_UNIT_FEATURE_COUNT + 4;
+
+ /**
+ * The feature id for the '<em><b>Lbl Strict</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int SINGLE_QUEUED_UNIT__LBL_STRICT = QUEUED_UNIT_FEATURE_COUNT + 5;
+
+ /**
+ * The number of structural features of the '<em>Single Queued Unit</em>' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int SINGLE_QUEUED_UNIT_FEATURE_COUNT = QUEUED_UNIT_FEATURE_COUNT + 6;
+
+ /**
+ * The meta object id for the '{@link comrel.impl.TwicedQueuedUnitImpl <em>Twiced Queued Unit</em>}' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see comrel.impl.TwicedQueuedUnitImpl
+ * @see comrel.impl.ComrelPackageImpl#getTwicedQueuedUnit()
+ * @generated
+ */
+ int TWICED_QUEUED_UNIT = 12;
+
+ /**
+ * The feature id for the '<em><b>Name</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int TWICED_QUEUED_UNIT__NAME = QUEUED_UNIT__NAME;
+
+ /**
+ * The feature id for the '<em><b>Seq Execution Order</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int TWICED_QUEUED_UNIT__SEQ_EXECUTION_ORDER = QUEUED_UNIT__SEQ_EXECUTION_ORDER;
+
+ /**
+ * The feature id for the '<em><b>Strict</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int TWICED_QUEUED_UNIT__STRICT = QUEUED_UNIT__STRICT;
+
+ /**
+ * The number of structural features of the '<em>Twiced Queued Unit</em>' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int TWICED_QUEUED_UNIT_FEATURE_COUNT = QUEUED_UNIT_FEATURE_COUNT + 0;
+
+ /**
+ * The meta object id for the '{@link comrel.impl.CartesianQueuedUnitImpl <em>Cartesian Queued Unit</em>}' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see comrel.impl.CartesianQueuedUnitImpl
+ * @see comrel.impl.ComrelPackageImpl#getCartesianQueuedUnit()
+ * @generated
+ */
+ int CARTESIAN_QUEUED_UNIT = 13;
+
+ /**
+ * The feature id for the '<em><b>Name</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int CARTESIAN_QUEUED_UNIT__NAME = TWICED_QUEUED_UNIT__NAME;
+
+ /**
+ * The feature id for the '<em><b>Seq Execution Order</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int CARTESIAN_QUEUED_UNIT__SEQ_EXECUTION_ORDER = TWICED_QUEUED_UNIT__SEQ_EXECUTION_ORDER;
+
+ /**
+ * The feature id for the '<em><b>Strict</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int CARTESIAN_QUEUED_UNIT__STRICT = TWICED_QUEUED_UNIT__STRICT;
+
+ /**
+ * The feature id for the '<em><b>Helper Units</b></em>' containment reference list.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int CARTESIAN_QUEUED_UNIT__HELPER_UNITS = TWICED_QUEUED_UNIT_FEATURE_COUNT + 0;
+
+ /**
+ * The feature id for the '<em><b>Refactoring Unit</b></em>' containment reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int CARTESIAN_QUEUED_UNIT__REFACTORING_UNIT = TWICED_QUEUED_UNIT_FEATURE_COUNT + 1;
+
+ /**
+ * The feature id for the '<em><b>Single Input Ports</b></em>' containment reference list.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int CARTESIAN_QUEUED_UNIT__SINGLE_INPUT_PORTS = TWICED_QUEUED_UNIT_FEATURE_COUNT + 2;
+
+ /**
+ * The feature id for the '<em><b>Multi Input Ports</b></em>' containment reference list.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int CARTESIAN_QUEUED_UNIT__MULTI_INPUT_PORTS = TWICED_QUEUED_UNIT_FEATURE_COUNT + 3;
+
+ /**
+ * The feature id for the '<em><b>Type</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int CARTESIAN_QUEUED_UNIT__TYPE = TWICED_QUEUED_UNIT_FEATURE_COUNT + 4;
+
+ /**
+ * The feature id for the '<em><b>Lbl Strict</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int CARTESIAN_QUEUED_UNIT__LBL_STRICT = TWICED_QUEUED_UNIT_FEATURE_COUNT + 5;
+
+ /**
+ * The number of structural features of the '<em>Cartesian Queued Unit</em>' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int CARTESIAN_QUEUED_UNIT_FEATURE_COUNT = TWICED_QUEUED_UNIT_FEATURE_COUNT + 6;
+
+ /**
+ * The meta object id for the '{@link comrel.impl.ParallelQueuedUnitImpl <em>Parallel Queued Unit</em>}' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see comrel.impl.ParallelQueuedUnitImpl
+ * @see comrel.impl.ComrelPackageImpl#getParallelQueuedUnit()
+ * @generated
+ */
+ int PARALLEL_QUEUED_UNIT = 14;
+
+ /**
+ * The feature id for the '<em><b>Name</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int PARALLEL_QUEUED_UNIT__NAME = TWICED_QUEUED_UNIT__NAME;
+
+ /**
+ * The feature id for the '<em><b>Seq Execution Order</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int PARALLEL_QUEUED_UNIT__SEQ_EXECUTION_ORDER = TWICED_QUEUED_UNIT__SEQ_EXECUTION_ORDER;
+
+ /**
+ * The feature id for the '<em><b>Strict</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int PARALLEL_QUEUED_UNIT__STRICT = TWICED_QUEUED_UNIT__STRICT;
+
+ /**
+ * The feature id for the '<em><b>Helper Units</b></em>' containment reference list.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int PARALLEL_QUEUED_UNIT__HELPER_UNITS = TWICED_QUEUED_UNIT_FEATURE_COUNT + 0;
+
+ /**
+ * The feature id for the '<em><b>Refactoring Units</b></em>' containment reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int PARALLEL_QUEUED_UNIT__REFACTORING_UNITS = TWICED_QUEUED_UNIT_FEATURE_COUNT + 1;
+
+ /**
+ * The feature id for the '<em><b>Single Input Ports</b></em>' containment reference list.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int PARALLEL_QUEUED_UNIT__SINGLE_INPUT_PORTS = TWICED_QUEUED_UNIT_FEATURE_COUNT + 2;
+
+ /**
+ * The feature id for the '<em><b>Multi Input Ports</b></em>' containment reference list.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int PARALLEL_QUEUED_UNIT__MULTI_INPUT_PORTS = TWICED_QUEUED_UNIT_FEATURE_COUNT + 3;
+
+ /**
+ * The feature id for the '<em><b>Type</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int PARALLEL_QUEUED_UNIT__TYPE = TWICED_QUEUED_UNIT_FEATURE_COUNT + 4;
+
+ /**
+ * The feature id for the '<em><b>Lbl Strict</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int PARALLEL_QUEUED_UNIT__LBL_STRICT = TWICED_QUEUED_UNIT_FEATURE_COUNT + 5;
+
+ /**
+ * The number of structural features of the '<em>Parallel Queued Unit</em>' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int PARALLEL_QUEUED_UNIT_FEATURE_COUNT = TWICED_QUEUED_UNIT_FEATURE_COUNT + 6;
+
+ /**
+ * The meta object id for the '{@link comrel.impl.HelperUnitImpl <em>Helper Unit</em>}' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see comrel.impl.HelperUnitImpl
+ * @see comrel.impl.ComrelPackageImpl#getHelperUnit()
+ * @generated
+ */
+ int HELPER_UNIT = 15;
+
+ /**
+ * The feature id for the '<em><b>Name</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int HELPER_UNIT__NAME = NAMED_ELEMENT__NAME;
+
+ /**
+ * The feature id for the '<em><b>Description</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int HELPER_UNIT__DESCRIPTION = NAMED_ELEMENT_FEATURE_COUNT + 0;
+
+ /**
+ * The feature id for the '<em><b>Helper Unit Id</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int HELPER_UNIT__HELPER_UNIT_ID = NAMED_ELEMENT_FEATURE_COUNT + 1;
+
+ /**
+ * The feature id for the '<em><b>Namespace Uri</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int HELPER_UNIT__NAMESPACE_URI = NAMED_ELEMENT_FEATURE_COUNT + 2;
+
+ /**
+ * The number of structural features of the '<em>Helper Unit</em>' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int HELPER_UNIT_FEATURE_COUNT = NAMED_ELEMENT_FEATURE_COUNT + 3;
+
+ /**
+ * The meta object id for the '{@link comrel.impl.FeatureUnitImpl <em>Feature Unit</em>}' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see comrel.impl.FeatureUnitImpl
+ * @see comrel.impl.ComrelPackageImpl#getFeatureUnit()
+ * @generated
+ */
+ int FEATURE_UNIT = 16;
+
+ /**
+ * The feature id for the '<em><b>Name</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int FEATURE_UNIT__NAME = HELPER_UNIT__NAME;
+
+ /**
+ * The feature id for the '<em><b>Description</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int FEATURE_UNIT__DESCRIPTION = HELPER_UNIT__DESCRIPTION;
+
+ /**
+ * The feature id for the '<em><b>Helper Unit Id</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int FEATURE_UNIT__HELPER_UNIT_ID = HELPER_UNIT__HELPER_UNIT_ID;
+
+ /**
+ * The feature id for the '<em><b>Namespace Uri</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int FEATURE_UNIT__NAMESPACE_URI = HELPER_UNIT__NAMESPACE_URI;
+
+ /**
+ * The number of structural features of the '<em>Feature Unit</em>' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int FEATURE_UNIT_FEATURE_COUNT = HELPER_UNIT_FEATURE_COUNT + 0;
+
+ /**
+ * The meta object id for the '{@link comrel.impl.SingleFeatureUnitImpl <em>Single Feature Unit</em>}' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see comrel.impl.SingleFeatureUnitImpl
+ * @see comrel.impl.ComrelPackageImpl#getSingleFeatureUnit()
+ * @generated
+ */
+ int SINGLE_FEATURE_UNIT = 17;
+
+ /**
+ * The feature id for the '<em><b>Name</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int SINGLE_FEATURE_UNIT__NAME = FEATURE_UNIT__NAME;
+
+ /**
+ * The feature id for the '<em><b>Description</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int SINGLE_FEATURE_UNIT__DESCRIPTION = FEATURE_UNIT__DESCRIPTION;
+
+ /**
+ * The feature id for the '<em><b>Helper Unit Id</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int SINGLE_FEATURE_UNIT__HELPER_UNIT_ID = FEATURE_UNIT__HELPER_UNIT_ID;
+
+ /**
+ * The feature id for the '<em><b>Namespace Uri</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int SINGLE_FEATURE_UNIT__NAMESPACE_URI = FEATURE_UNIT__NAMESPACE_URI;
+
+ /**
+ * The feature id for the '<em><b>Input Port</b></em>' containment reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int SINGLE_FEATURE_UNIT__INPUT_PORT = FEATURE_UNIT_FEATURE_COUNT + 0;
+
+ /**
+ * The feature id for the '<em><b>Secondary Input Ports</b></em>' containment reference list.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int SINGLE_FEATURE_UNIT__SECONDARY_INPUT_PORTS = FEATURE_UNIT_FEATURE_COUNT + 1;
+
+ /**
+ * The feature id for the '<em><b>Output Port</b></em>' containment reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int SINGLE_FEATURE_UNIT__OUTPUT_PORT = FEATURE_UNIT_FEATURE_COUNT + 2;
+
+ /**
+ * The feature id for the '<em><b>Single Feature Helper</b></em>' reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int SINGLE_FEATURE_UNIT__SINGLE_FEATURE_HELPER = FEATURE_UNIT_FEATURE_COUNT + 3;
+
+ /**
+ * The feature id for the '<em><b>Type</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int SINGLE_FEATURE_UNIT__TYPE = FEATURE_UNIT_FEATURE_COUNT + 4;
+
+ /**
+ * The number of structural features of the '<em>Single Feature Unit</em>' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int SINGLE_FEATURE_UNIT_FEATURE_COUNT = FEATURE_UNIT_FEATURE_COUNT + 5;
+
+ /**
+ * The meta object id for the '{@link comrel.impl.MultiFeatureUnitImpl <em>Multi Feature Unit</em>}' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see comrel.impl.MultiFeatureUnitImpl
+ * @see comrel.impl.ComrelPackageImpl#getMultiFeatureUnit()
+ * @generated
+ */
+ int MULTI_FEATURE_UNIT = 18;
+
+ /**
+ * The feature id for the '<em><b>Name</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int MULTI_FEATURE_UNIT__NAME = FEATURE_UNIT__NAME;
+
+ /**
+ * The feature id for the '<em><b>Description</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int MULTI_FEATURE_UNIT__DESCRIPTION = FEATURE_UNIT__DESCRIPTION;
+
+ /**
+ * The feature id for the '<em><b>Helper Unit Id</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int MULTI_FEATURE_UNIT__HELPER_UNIT_ID = FEATURE_UNIT__HELPER_UNIT_ID;
+
+ /**
+ * The feature id for the '<em><b>Namespace Uri</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int MULTI_FEATURE_UNIT__NAMESPACE_URI = FEATURE_UNIT__NAMESPACE_URI;
+
+ /**
+ * The feature id for the '<em><b>Input Port</b></em>' containment reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int MULTI_FEATURE_UNIT__INPUT_PORT = FEATURE_UNIT_FEATURE_COUNT + 0;
+
+ /**
+ * The feature id for the '<em><b>Secondary Input Ports</b></em>' containment reference list.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int MULTI_FEATURE_UNIT__SECONDARY_INPUT_PORTS = FEATURE_UNIT_FEATURE_COUNT + 1;
+
+ /**
+ * The feature id for the '<em><b>Output Port</b></em>' containment reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int MULTI_FEATURE_UNIT__OUTPUT_PORT = FEATURE_UNIT_FEATURE_COUNT + 2;
+
+ /**
+ * The feature id for the '<em><b>Multi Feature Helper</b></em>' reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int MULTI_FEATURE_UNIT__MULTI_FEATURE_HELPER = FEATURE_UNIT_FEATURE_COUNT + 3;
+
+ /**
+ * The feature id for the '<em><b>Type</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int MULTI_FEATURE_UNIT__TYPE = FEATURE_UNIT_FEATURE_COUNT + 4;
+
+ /**
+ * The number of structural features of the '<em>Multi Feature Unit</em>' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int MULTI_FEATURE_UNIT_FEATURE_COUNT = FEATURE_UNIT_FEATURE_COUNT + 5;
+
+ /**
+ * The meta object id for the '{@link comrel.impl.FilterUnitImpl <em>Filter Unit</em>}' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see comrel.impl.FilterUnitImpl
+ * @see comrel.impl.ComrelPackageImpl#getFilterUnit()
+ * @generated
+ */
+ int FILTER_UNIT = 19;
+
+ /**
+ * The feature id for the '<em><b>Name</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int FILTER_UNIT__NAME = HELPER_UNIT__NAME;
+
+ /**
+ * The feature id for the '<em><b>Description</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int FILTER_UNIT__DESCRIPTION = HELPER_UNIT__DESCRIPTION;
+
+ /**
+ * The feature id for the '<em><b>Helper Unit Id</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int FILTER_UNIT__HELPER_UNIT_ID = HELPER_UNIT__HELPER_UNIT_ID;
+
+ /**
+ * The feature id for the '<em><b>Namespace Uri</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int FILTER_UNIT__NAMESPACE_URI = HELPER_UNIT__NAMESPACE_URI;
+
+ /**
+ * The number of structural features of the '<em>Filter Unit</em>' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int FILTER_UNIT_FEATURE_COUNT = HELPER_UNIT_FEATURE_COUNT + 0;
+
+ /**
+ * The meta object id for the '{@link comrel.impl.SingleFilterUnitImpl <em>Single Filter Unit</em>}' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see comrel.impl.SingleFilterUnitImpl
+ * @see comrel.impl.ComrelPackageImpl#getSingleFilterUnit()
+ * @generated
+ */
+ int SINGLE_FILTER_UNIT = 20;
+
+ /**
+ * The feature id for the '<em><b>Name</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int SINGLE_FILTER_UNIT__NAME = FILTER_UNIT__NAME;
+
+ /**
+ * The feature id for the '<em><b>Description</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int SINGLE_FILTER_UNIT__DESCRIPTION = FILTER_UNIT__DESCRIPTION;
+
+ /**
+ * The feature id for the '<em><b>Helper Unit Id</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int SINGLE_FILTER_UNIT__HELPER_UNIT_ID = FILTER_UNIT__HELPER_UNIT_ID;
+
+ /**
+ * The feature id for the '<em><b>Namespace Uri</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int SINGLE_FILTER_UNIT__NAMESPACE_URI = FILTER_UNIT__NAMESPACE_URI;
+
+ /**
+ * The feature id for the '<em><b>Input Port</b></em>' containment reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int SINGLE_FILTER_UNIT__INPUT_PORT = FILTER_UNIT_FEATURE_COUNT + 0;
+
+ /**
+ * The feature id for the '<em><b>Output Port</b></em>' containment reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int SINGLE_FILTER_UNIT__OUTPUT_PORT = FILTER_UNIT_FEATURE_COUNT + 1;
+
+ /**
+ * The feature id for the '<em><b>Single Filter Helper</b></em>' reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int SINGLE_FILTER_UNIT__SINGLE_FILTER_HELPER = FILTER_UNIT_FEATURE_COUNT + 2;
+
+ /**
+ * The feature id for the '<em><b>Type</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int SINGLE_FILTER_UNIT__TYPE = FILTER_UNIT_FEATURE_COUNT + 3;
+
+ /**
+ * The number of structural features of the '<em>Single Filter Unit</em>' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int SINGLE_FILTER_UNIT_FEATURE_COUNT = FILTER_UNIT_FEATURE_COUNT + 4;
+
+ /**
+ * The meta object id for the '{@link comrel.impl.MultiFilterUnitImpl <em>Multi Filter Unit</em>}' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see comrel.impl.MultiFilterUnitImpl
+ * @see comrel.impl.ComrelPackageImpl#getMultiFilterUnit()
+ * @generated
+ */
+ int MULTI_FILTER_UNIT = 21;
+
+ /**
+ * The feature id for the '<em><b>Name</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int MULTI_FILTER_UNIT__NAME = FILTER_UNIT__NAME;
+
+ /**
+ * The feature id for the '<em><b>Description</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int MULTI_FILTER_UNIT__DESCRIPTION = FILTER_UNIT__DESCRIPTION;
+
+ /**
+ * The feature id for the '<em><b>Helper Unit Id</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int MULTI_FILTER_UNIT__HELPER_UNIT_ID = FILTER_UNIT__HELPER_UNIT_ID;
+
+ /**
+ * The feature id for the '<em><b>Namespace Uri</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int MULTI_FILTER_UNIT__NAMESPACE_URI = FILTER_UNIT__NAMESPACE_URI;
+
+ /**
+ * The feature id for the '<em><b>Input Port</b></em>' containment reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int MULTI_FILTER_UNIT__INPUT_PORT = FILTER_UNIT_FEATURE_COUNT + 0;
+
+ /**
+ * The feature id for the '<em><b>Output Port</b></em>' containment reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int MULTI_FILTER_UNIT__OUTPUT_PORT = FILTER_UNIT_FEATURE_COUNT + 1;
+
+ /**
+ * The feature id for the '<em><b>Multi Filter Helper</b></em>' reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int MULTI_FILTER_UNIT__MULTI_FILTER_HELPER = FILTER_UNIT_FEATURE_COUNT + 2;
+
+ /**
+ * The feature id for the '<em><b>Type</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int MULTI_FILTER_UNIT__TYPE = FILTER_UNIT_FEATURE_COUNT + 3;
+
+ /**
+ * The number of structural features of the '<em>Multi Filter Unit</em>' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int MULTI_FILTER_UNIT_FEATURE_COUNT = FILTER_UNIT_FEATURE_COUNT + 4;
+
+ /**
+ * The meta object id for the '{@link comrel.impl.HelperImpl <em>Helper</em>}' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see comrel.impl.HelperImpl
+ * @see comrel.impl.ComrelPackageImpl#getHelper()
+ * @generated
+ */
+ int HELPER = 22;
+
+ /**
+ * The feature id for the '<em><b>Name</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int HELPER__NAME = NAMED_ELEMENT__NAME;
+
+ /**
+ * The feature id for the '<em><b>Description</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int HELPER__DESCRIPTION = NAMED_ELEMENT_FEATURE_COUNT + 0;
+
+ /**
+ * The feature id for the '<em><b>Helper Id</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int HELPER__HELPER_ID = NAMED_ELEMENT_FEATURE_COUNT + 1;
+
+ /**
+ * The feature id for the '<em><b>Namespace Uri</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int HELPER__NAMESPACE_URI = NAMED_ELEMENT_FEATURE_COUNT + 2;
+
+ /**
+ * The number of structural features of the '<em>Helper</em>' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int HELPER_FEATURE_COUNT = NAMED_ELEMENT_FEATURE_COUNT + 3;
+
+ /**
+ * The meta object id for the '{@link comrel.impl.FeatureHelperImpl <em>Feature Helper</em>}' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see comrel.impl.FeatureHelperImpl
+ * @see comrel.impl.ComrelPackageImpl#getFeatureHelper()
+ * @generated
+ */
+ int FEATURE_HELPER = 23;
+
+ /**
+ * The feature id for the '<em><b>Name</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int FEATURE_HELPER__NAME = HELPER__NAME;
+
+ /**
+ * The feature id for the '<em><b>Description</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int FEATURE_HELPER__DESCRIPTION = HELPER__DESCRIPTION;
+
+ /**
+ * The feature id for the '<em><b>Helper Id</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int FEATURE_HELPER__HELPER_ID = HELPER__HELPER_ID;
+
+ /**
+ * The feature id for the '<em><b>Namespace Uri</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int FEATURE_HELPER__NAMESPACE_URI = HELPER__NAMESPACE_URI;
+
+ /**
+ * The feature id for the '<em><b>Input Port</b></em>' containment reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int FEATURE_HELPER__INPUT_PORT = HELPER_FEATURE_COUNT + 0;
+
+ /**
+ * The feature id for the '<em><b>Secondary Input Ports</b></em>' containment reference list.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int FEATURE_HELPER__SECONDARY_INPUT_PORTS = HELPER_FEATURE_COUNT + 1;
+
+ /**
+ * The number of structural features of the '<em>Feature Helper</em>' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int FEATURE_HELPER_FEATURE_COUNT = HELPER_FEATURE_COUNT + 2;
+
+ /**
+ * The meta object id for the '{@link comrel.impl.SingleFeatureHelperImpl <em>Single Feature Helper</em>}' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see comrel.impl.SingleFeatureHelperImpl
+ * @see comrel.impl.ComrelPackageImpl#getSingleFeatureHelper()
+ * @generated
+ */
+ int SINGLE_FEATURE_HELPER = 24;
+
+ /**
+ * The feature id for the '<em><b>Name</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int SINGLE_FEATURE_HELPER__NAME = FEATURE_HELPER__NAME;
+
+ /**
+ * The feature id for the '<em><b>Description</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int SINGLE_FEATURE_HELPER__DESCRIPTION = FEATURE_HELPER__DESCRIPTION;
+
+ /**
+ * The feature id for the '<em><b>Helper Id</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int SINGLE_FEATURE_HELPER__HELPER_ID = FEATURE_HELPER__HELPER_ID;
+
+ /**
+ * The feature id for the '<em><b>Namespace Uri</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int SINGLE_FEATURE_HELPER__NAMESPACE_URI = FEATURE_HELPER__NAMESPACE_URI;
+
+ /**
+ * The feature id for the '<em><b>Input Port</b></em>' containment reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int SINGLE_FEATURE_HELPER__INPUT_PORT = FEATURE_HELPER__INPUT_PORT;
+
+ /**
+ * The feature id for the '<em><b>Secondary Input Ports</b></em>' containment reference list.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int SINGLE_FEATURE_HELPER__SECONDARY_INPUT_PORTS = FEATURE_HELPER__SECONDARY_INPUT_PORTS;
+
+ /**
+ * The feature id for the '<em><b>Output Port</b></em>' containment reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int SINGLE_FEATURE_HELPER__OUTPUT_PORT = FEATURE_HELPER_FEATURE_COUNT + 0;
+
+ /**
+ * The number of structural features of the '<em>Single Feature Helper</em>' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int SINGLE_FEATURE_HELPER_FEATURE_COUNT = FEATURE_HELPER_FEATURE_COUNT + 1;
+
+ /**
+ * The meta object id for the '{@link comrel.impl.MultiFeatureHelperImpl <em>Multi Feature Helper</em>}' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see comrel.impl.MultiFeatureHelperImpl
+ * @see comrel.impl.ComrelPackageImpl#getMultiFeatureHelper()
+ * @generated
+ */
+ int MULTI_FEATURE_HELPER = 25;
+
+ /**
+ * The feature id for the '<em><b>Name</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int MULTI_FEATURE_HELPER__NAME = FEATURE_HELPER__NAME;
+
+ /**
+ * The feature id for the '<em><b>Description</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int MULTI_FEATURE_HELPER__DESCRIPTION = FEATURE_HELPER__DESCRIPTION;
+
+ /**
+ * The feature id for the '<em><b>Helper Id</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int MULTI_FEATURE_HELPER__HELPER_ID = FEATURE_HELPER__HELPER_ID;
+
+ /**
+ * The feature id for the '<em><b>Namespace Uri</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int MULTI_FEATURE_HELPER__NAMESPACE_URI = FEATURE_HELPER__NAMESPACE_URI;
+
+ /**
+ * The feature id for the '<em><b>Input Port</b></em>' containment reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int MULTI_FEATURE_HELPER__INPUT_PORT = FEATURE_HELPER__INPUT_PORT;
+
+ /**
+ * The feature id for the '<em><b>Secondary Input Ports</b></em>' containment reference list.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int MULTI_FEATURE_HELPER__SECONDARY_INPUT_PORTS = FEATURE_HELPER__SECONDARY_INPUT_PORTS;
+
+ /**
+ * The feature id for the '<em><b>Output Port</b></em>' containment reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int MULTI_FEATURE_HELPER__OUTPUT_PORT = FEATURE_HELPER_FEATURE_COUNT + 0;
+
+ /**
+ * The number of structural features of the '<em>Multi Feature Helper</em>' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int MULTI_FEATURE_HELPER_FEATURE_COUNT = FEATURE_HELPER_FEATURE_COUNT + 1;
+
+ /**
+ * The meta object id for the '{@link comrel.impl.FilterHelperImpl <em>Filter Helper</em>}' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see comrel.impl.FilterHelperImpl
+ * @see comrel.impl.ComrelPackageImpl#getFilterHelper()
+ * @generated
+ */
+ int FILTER_HELPER = 26;
+
+ /**
+ * The feature id for the '<em><b>Name</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int FILTER_HELPER__NAME = HELPER__NAME;
+
+ /**
+ * The feature id for the '<em><b>Description</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int FILTER_HELPER__DESCRIPTION = HELPER__DESCRIPTION;
+
+ /**
+ * The feature id for the '<em><b>Helper Id</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int FILTER_HELPER__HELPER_ID = HELPER__HELPER_ID;
+
+ /**
+ * The feature id for the '<em><b>Namespace Uri</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int FILTER_HELPER__NAMESPACE_URI = HELPER__NAMESPACE_URI;
+
+ /**
+ * The feature id for the '<em><b>Input Port</b></em>' containment reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int FILTER_HELPER__INPUT_PORT = HELPER_FEATURE_COUNT + 0;
+
+ /**
+ * The number of structural features of the '<em>Filter Helper</em>' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int FILTER_HELPER_FEATURE_COUNT = HELPER_FEATURE_COUNT + 1;
+
+ /**
+ * The meta object id for the '{@link comrel.impl.SingleFilterHelperImpl <em>Single Filter Helper</em>}' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see comrel.impl.SingleFilterHelperImpl
+ * @see comrel.impl.ComrelPackageImpl#getSingleFilterHelper()
+ * @generated
+ */
+ int SINGLE_FILTER_HELPER = 27;
+
+ /**
+ * The feature id for the '<em><b>Name</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int SINGLE_FILTER_HELPER__NAME = FILTER_HELPER__NAME;
+
+ /**
+ * The feature id for the '<em><b>Description</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int SINGLE_FILTER_HELPER__DESCRIPTION = FILTER_HELPER__DESCRIPTION;
+
+ /**
+ * The feature id for the '<em><b>Helper Id</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int SINGLE_FILTER_HELPER__HELPER_ID = FILTER_HELPER__HELPER_ID;
+
+ /**
+ * The feature id for the '<em><b>Namespace Uri</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int SINGLE_FILTER_HELPER__NAMESPACE_URI = FILTER_HELPER__NAMESPACE_URI;
+
+ /**
+ * The feature id for the '<em><b>Input Port</b></em>' containment reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int SINGLE_FILTER_HELPER__INPUT_PORT = FILTER_HELPER__INPUT_PORT;
+
+ /**
+ * The feature id for the '<em><b>Output Port</b></em>' containment reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int SINGLE_FILTER_HELPER__OUTPUT_PORT = FILTER_HELPER_FEATURE_COUNT + 0;
+
+ /**
+ * The number of structural features of the '<em>Single Filter Helper</em>' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int SINGLE_FILTER_HELPER_FEATURE_COUNT = FILTER_HELPER_FEATURE_COUNT + 1;
+
+ /**
+ * The meta object id for the '{@link comrel.impl.MultiFilterHelperImpl <em>Multi Filter Helper</em>}' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see comrel.impl.MultiFilterHelperImpl
+ * @see comrel.impl.ComrelPackageImpl#getMultiFilterHelper()
+ * @generated
+ */
+ int MULTI_FILTER_HELPER = 28;
+
+ /**
+ * The feature id for the '<em><b>Name</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int MULTI_FILTER_HELPER__NAME = FILTER_HELPER__NAME;
+
+ /**
+ * The feature id for the '<em><b>Description</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int MULTI_FILTER_HELPER__DESCRIPTION = FILTER_HELPER__DESCRIPTION;
+
+ /**
+ * The feature id for the '<em><b>Helper Id</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int MULTI_FILTER_HELPER__HELPER_ID = FILTER_HELPER__HELPER_ID;
+
+ /**
+ * The feature id for the '<em><b>Namespace Uri</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int MULTI_FILTER_HELPER__NAMESPACE_URI = FILTER_HELPER__NAMESPACE_URI;
+
+ /**
+ * The feature id for the '<em><b>Input Port</b></em>' containment reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int MULTI_FILTER_HELPER__INPUT_PORT = FILTER_HELPER__INPUT_PORT;
+
+ /**
+ * The feature id for the '<em><b>Output Port</b></em>' containment reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int MULTI_FILTER_HELPER__OUTPUT_PORT = FILTER_HELPER_FEATURE_COUNT + 0;
+
+ /**
+ * The number of structural features of the '<em>Multi Filter Helper</em>' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int MULTI_FILTER_HELPER_FEATURE_COUNT = FILTER_HELPER_FEATURE_COUNT + 1;
+
+ /**
+ * The meta object id for the '{@link comrel.impl.PortImpl <em>Port</em>}' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see comrel.impl.PortImpl
+ * @see comrel.impl.ComrelPackageImpl#getPort()
+ * @generated
+ */
+ int PORT = 29;
+
+ /**
+ * The feature id for the '<em><b>Name</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int PORT__NAME = NAMED_ELEMENT__NAME;
+
+ /**
+ * The feature id for the '<em><b>Description</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int PORT__DESCRIPTION = NAMED_ELEMENT_FEATURE_COUNT + 0;
+
+ /**
+ * The feature id for the '<em><b>Type</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int PORT__TYPE = NAMED_ELEMENT_FEATURE_COUNT + 1;
+
+ /**
+ * The number of structural features of the '<em>Port</em>' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int PORT_FEATURE_COUNT = NAMED_ELEMENT_FEATURE_COUNT + 2;
+
+ /**
+ * The meta object id for the '{@link comrel.impl.SinglePortImpl <em>Single Port</em>}' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see comrel.impl.SinglePortImpl
+ * @see comrel.impl.ComrelPackageImpl#getSinglePort()
+ * @generated
+ */
+ int SINGLE_PORT = 30;
+
+ /**
+ * The feature id for the '<em><b>Name</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int SINGLE_PORT__NAME = PORT__NAME;
+
+ /**
+ * The feature id for the '<em><b>Description</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int SINGLE_PORT__DESCRIPTION = PORT__DESCRIPTION;
+
+ /**
+ * The feature id for the '<em><b>Type</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int SINGLE_PORT__TYPE = PORT__TYPE;
+
+ /**
+ * The feature id for the '<em><b>Value</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int SINGLE_PORT__VALUE = PORT_FEATURE_COUNT + 0;
+
+ /**
+ * The number of structural features of the '<em>Single Port</em>' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int SINGLE_PORT_FEATURE_COUNT = PORT_FEATURE_COUNT + 1;
+
+ /**
+ * The meta object id for the '{@link comrel.impl.MultiPortImpl <em>Multi Port</em>}' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see comrel.impl.MultiPortImpl
+ * @see comrel.impl.ComrelPackageImpl#getMultiPort()
+ * @generated
+ */
+ int MULTI_PORT = 31;
+
+ /**
+ * The feature id for the '<em><b>Name</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int MULTI_PORT__NAME = PORT__NAME;
+
+ /**
+ * The feature id for the '<em><b>Description</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int MULTI_PORT__DESCRIPTION = PORT__DESCRIPTION;
+
+ /**
+ * The feature id for the '<em><b>Type</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int MULTI_PORT__TYPE = PORT__TYPE;
+
+ /**
+ * The feature id for the '<em><b>Value</b></em>' attribute list.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int MULTI_PORT__VALUE = PORT_FEATURE_COUNT + 0;
+
+ /**
+ * The number of structural features of the '<em>Multi Port</em>' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int MULTI_PORT_FEATURE_COUNT = PORT_FEATURE_COUNT + 1;
+
+ /**
+ * The meta object id for the '{@link comrel.impl.InputPortImpl <em>Input Port</em>}' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see comrel.impl.InputPortImpl
+ * @see comrel.impl.ComrelPackageImpl#getInputPort()
+ * @generated
+ */
+ int INPUT_PORT = 32;
+
+ /**
+ * The feature id for the '<em><b>Name</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int INPUT_PORT__NAME = PORT__NAME;
+
+ /**
+ * The feature id for the '<em><b>Description</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int INPUT_PORT__DESCRIPTION = PORT__DESCRIPTION;
+
+ /**
+ * The feature id for the '<em><b>Type</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int INPUT_PORT__TYPE = PORT__TYPE;
+
+ /**
+ * The number of structural features of the '<em>Input Port</em>' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int INPUT_PORT_FEATURE_COUNT = PORT_FEATURE_COUNT + 0;
+
+ /**
+ * The meta object id for the '{@link comrel.impl.OutputPortImpl <em>Output Port</em>}' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see comrel.impl.OutputPortImpl
+ * @see comrel.impl.ComrelPackageImpl#getOutputPort()
+ * @generated
+ */
+ int OUTPUT_PORT = 33;
+
+ /**
+ * The feature id for the '<em><b>Name</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int OUTPUT_PORT__NAME = PORT__NAME;
+
+ /**
+ * The feature id for the '<em><b>Description</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int OUTPUT_PORT__DESCRIPTION = PORT__DESCRIPTION;
+
+ /**
+ * The feature id for the '<em><b>Type</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int OUTPUT_PORT__TYPE = PORT__TYPE;
+
+ /**
+ * The number of structural features of the '<em>Output Port</em>' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int OUTPUT_PORT_FEATURE_COUNT = PORT_FEATURE_COUNT + 0;
+
+ /**
+ * The meta object id for the '{@link comrel.impl.SingleInputPortImpl <em>Single Input Port</em>}' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see comrel.impl.SingleInputPortImpl
+ * @see comrel.impl.ComrelPackageImpl#getSingleInputPort()
+ * @generated
+ */
+ int SINGLE_INPUT_PORT = 34;
+
+ /**
+ * The feature id for the '<em><b>Name</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int SINGLE_INPUT_PORT__NAME = SINGLE_PORT__NAME;
+
+ /**
+ * The feature id for the '<em><b>Description</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int SINGLE_INPUT_PORT__DESCRIPTION = SINGLE_PORT__DESCRIPTION;
+
+ /**
+ * The feature id for the '<em><b>Type</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int SINGLE_INPUT_PORT__TYPE = SINGLE_PORT__TYPE;
+
+ /**
+ * The feature id for the '<em><b>Value</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int SINGLE_INPUT_PORT__VALUE = SINGLE_PORT__VALUE;
+
+ /**
+ * The number of structural features of the '<em>Single Input Port</em>' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int SINGLE_INPUT_PORT_FEATURE_COUNT = SINGLE_PORT_FEATURE_COUNT + 0;
+
+ /**
+ * The meta object id for the '{@link comrel.impl.MultiInputPortImpl <em>Multi Input Port</em>}' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see comrel.impl.MultiInputPortImpl
+ * @see comrel.impl.ComrelPackageImpl#getMultiInputPort()
+ * @generated
+ */
+ int MULTI_INPUT_PORT = 35;
+
+ /**
+ * The feature id for the '<em><b>Name</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int MULTI_INPUT_PORT__NAME = MULTI_PORT__NAME;
+
+ /**
+ * The feature id for the '<em><b>Description</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int MULTI_INPUT_PORT__DESCRIPTION = MULTI_PORT__DESCRIPTION;
+
+ /**
+ * The feature id for the '<em><b>Type</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int MULTI_INPUT_PORT__TYPE = MULTI_PORT__TYPE;
+
+ /**
+ * The feature id for the '<em><b>Value</b></em>' attribute list.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int MULTI_INPUT_PORT__VALUE = MULTI_PORT__VALUE;
+
+ /**
+ * The number of structural features of the '<em>Multi Input Port</em>' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int MULTI_INPUT_PORT_FEATURE_COUNT = MULTI_PORT_FEATURE_COUNT + 0;
+
+ /**
+ * The meta object id for the '{@link comrel.impl.SingleOutputPortImpl <em>Single Output Port</em>}' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see comrel.impl.SingleOutputPortImpl
+ * @see comrel.impl.ComrelPackageImpl#getSingleOutputPort()
+ * @generated
+ */
+ int SINGLE_OUTPUT_PORT = 36;
+
+ /**
+ * The feature id for the '<em><b>Name</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int SINGLE_OUTPUT_PORT__NAME = SINGLE_PORT__NAME;
+
+ /**
+ * The feature id for the '<em><b>Description</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int SINGLE_OUTPUT_PORT__DESCRIPTION = SINGLE_PORT__DESCRIPTION;
+
+ /**
+ * The feature id for the '<em><b>Type</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int SINGLE_OUTPUT_PORT__TYPE = SINGLE_PORT__TYPE;
+
+ /**
+ * The feature id for the '<em><b>Value</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int SINGLE_OUTPUT_PORT__VALUE = SINGLE_PORT__VALUE;
+
+ /**
+ * The number of structural features of the '<em>Single Output Port</em>' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int SINGLE_OUTPUT_PORT_FEATURE_COUNT = SINGLE_PORT_FEATURE_COUNT + 0;
+
+ /**
+ * The meta object id for the '{@link comrel.impl.MultiOutputPortImpl <em>Multi Output Port</em>}' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see comrel.impl.MultiOutputPortImpl
+ * @see comrel.impl.ComrelPackageImpl#getMultiOutputPort()
+ * @generated
+ */
+ int MULTI_OUTPUT_PORT = 37;
+
+ /**
+ * The feature id for the '<em><b>Name</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int MULTI_OUTPUT_PORT__NAME = MULTI_PORT__NAME;
+
+ /**
+ * The feature id for the '<em><b>Description</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int MULTI_OUTPUT_PORT__DESCRIPTION = MULTI_PORT__DESCRIPTION;
+
+ /**
+ * The feature id for the '<em><b>Type</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int MULTI_OUTPUT_PORT__TYPE = MULTI_PORT__TYPE;
+
+ /**
+ * The feature id for the '<em><b>Value</b></em>' attribute list.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int MULTI_OUTPUT_PORT__VALUE = MULTI_PORT__VALUE;
+
+ /**
+ * The number of structural features of the '<em>Multi Output Port</em>' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int MULTI_OUTPUT_PORT_FEATURE_COUNT = MULTI_PORT_FEATURE_COUNT + 0;
+
+ /**
+ * The meta object id for the '{@link comrel.impl.PortMappingImpl <em>Port Mapping</em>}' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see comrel.impl.PortMappingImpl
+ * @see comrel.impl.ComrelPackageImpl#getPortMapping()
+ * @generated
+ */
+ int PORT_MAPPING = 38;
+
+ /**
+ * The number of structural features of the '<em>Port Mapping</em>' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int PORT_MAPPING_FEATURE_COUNT = 0;
+
+ /**
+ * The meta object id for the '{@link comrel.impl.SinglePortMappingImpl <em>Single Port Mapping</em>}' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see comrel.impl.SinglePortMappingImpl
+ * @see comrel.impl.ComrelPackageImpl#getSinglePortMapping()
+ * @generated
+ */
+ int SINGLE_PORT_MAPPING = 39;
+
+ /**
+ * The feature id for the '<em><b>Source</b></em>' reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int SINGLE_PORT_MAPPING__SOURCE = PORT_MAPPING_FEATURE_COUNT + 0;
+
+ /**
+ * The feature id for the '<em><b>Target</b></em>' reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int SINGLE_PORT_MAPPING__TARGET = PORT_MAPPING_FEATURE_COUNT + 1;
+
+ /**
+ * The number of structural features of the '<em>Single Port Mapping</em>' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int SINGLE_PORT_MAPPING_FEATURE_COUNT = PORT_MAPPING_FEATURE_COUNT + 2;
+
+ /**
+ * The meta object id for the '{@link comrel.impl.MultiPortMappingImpl <em>Multi Port Mapping</em>}' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see comrel.impl.MultiPortMappingImpl
+ * @see comrel.impl.ComrelPackageImpl#getMultiPortMapping()
+ * @generated
+ */
+ int MULTI_PORT_MAPPING = 40;
+
+ /**
+ * The feature id for the '<em><b>Source</b></em>' reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int MULTI_PORT_MAPPING__SOURCE = PORT_MAPPING_FEATURE_COUNT + 0;
+
+ /**
+ * The feature id for the '<em><b>Target</b></em>' reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int MULTI_PORT_MAPPING__TARGET = PORT_MAPPING_FEATURE_COUNT + 1;
+
+ /**
+ * The number of structural features of the '<em>Multi Port Mapping</em>' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int MULTI_PORT_MAPPING_FEATURE_COUNT = PORT_MAPPING_FEATURE_COUNT + 2;
+
+ /**
+ * The meta object id for the '{@link comrel.impl.MultiSinglePortMappingImpl <em>Multi Single Port Mapping</em>}' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see comrel.impl.MultiSinglePortMappingImpl
+ * @see comrel.impl.ComrelPackageImpl#getMultiSinglePortMapping()
+ * @generated
+ */
+ int MULTI_SINGLE_PORT_MAPPING = 41;
+
+ /**
+ * The feature id for the '<em><b>Source</b></em>' reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int MULTI_SINGLE_PORT_MAPPING__SOURCE = PORT_MAPPING_FEATURE_COUNT + 0;
+
+ /**
+ * The feature id for the '<em><b>Target</b></em>' reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int MULTI_SINGLE_PORT_MAPPING__TARGET = PORT_MAPPING_FEATURE_COUNT + 1;
+
+ /**
+ * The number of structural features of the '<em>Multi Single Port Mapping</em>' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int MULTI_SINGLE_PORT_MAPPING_FEATURE_COUNT = PORT_MAPPING_FEATURE_COUNT + 2;
+
+ /**
+ * The meta object id for the '{@link comrel.MappingVisualization <em>Mapping Visualization</em>}' enum.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see comrel.MappingVisualization
+ * @see comrel.impl.ComrelPackageImpl#getMappingVisualization()
+ * @generated
+ */
+ int MAPPING_VISUALIZATION = 42;
+
+
+ /**
+ * Returns the meta object for class '{@link comrel.CompositeRefactoring <em>Composite Refactoring</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for class '<em>Composite Refactoring</em>'.
+ * @see comrel.CompositeRefactoring
+ * @generated
+ */
+ EClass getCompositeRefactoring();
+
+ /**
+ * Returns the meta object for the containment reference '{@link comrel.CompositeRefactoring#getMainRefactoringUnit <em>Main Refactoring Unit</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for the containment reference '<em>Main Refactoring Unit</em>'.
+ * @see comrel.CompositeRefactoring#getMainRefactoringUnit()
+ * @see #getCompositeRefactoring()
+ * @generated
+ */
+ EReference getCompositeRefactoring_MainRefactoringUnit();
+
+ /**
+ * Returns the meta object for the containment reference list '{@link comrel.CompositeRefactoring#getPortMappings <em>Port Mappings</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for the containment reference list '<em>Port Mappings</em>'.
+ * @see comrel.CompositeRefactoring#getPortMappings()
+ * @see #getCompositeRefactoring()
+ * @generated
+ */
+ EReference getCompositeRefactoring_PortMappings();
+
+ /**
+ * Returns the meta object for the containment reference list '{@link comrel.CompositeRefactoring#getModelRefactorings <em>Model Refactorings</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for the containment reference list '<em>Model Refactorings</em>'.
+ * @see comrel.CompositeRefactoring#getModelRefactorings()
+ * @see #getCompositeRefactoring()
+ * @generated
+ */
+ EReference getCompositeRefactoring_ModelRefactorings();
+
+ /**
+ * Returns the meta object for the containment reference list '{@link comrel.CompositeRefactoring#getHelper <em>Helper</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for the containment reference list '<em>Helper</em>'.
+ * @see comrel.CompositeRefactoring#getHelper()
+ * @see #getCompositeRefactoring()
+ * @generated
+ */
+ EReference getCompositeRefactoring_Helper();
+
+ /**
+ * Returns the meta object for the attribute '{@link comrel.CompositeRefactoring#getMappingVisualization <em>Mapping Visualization</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for the attribute '<em>Mapping Visualization</em>'.
+ * @see comrel.CompositeRefactoring#getMappingVisualization()
+ * @see #getCompositeRefactoring()
+ * @generated
+ */
+ EAttribute getCompositeRefactoring_MappingVisualization();
+
+ /**
+ * Returns the meta object for the attribute '{@link comrel.CompositeRefactoring#getCustomInitialCondition <em>Custom Initial Condition</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for the attribute '<em>Custom Initial Condition</em>'.
+ * @see comrel.CompositeRefactoring#getCustomInitialCondition()
+ * @see #getCompositeRefactoring()
+ * @generated
+ */
+ EAttribute getCompositeRefactoring_CustomInitialCondition();
+
+ /**
+ * Returns the meta object for the attribute '{@link comrel.CompositeRefactoring#getCustomFinalCondition <em>Custom Final Condition</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for the attribute '<em>Custom Final Condition</em>'.
+ * @see comrel.CompositeRefactoring#getCustomFinalCondition()
+ * @see #getCompositeRefactoring()
+ * @generated
+ */
+ EAttribute getCompositeRefactoring_CustomFinalCondition();
+
+ /**
+ * Returns the meta object for class '{@link comrel.NamedElement <em>Named Element</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for class '<em>Named Element</em>'.
+ * @see comrel.NamedElement
+ * @generated
+ */
+ EClass getNamedElement();
+
+ /**
+ * Returns the meta object for the attribute '{@link comrel.NamedElement#getName <em>Name</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for the attribute '<em>Name</em>'.
+ * @see comrel.NamedElement#getName()
+ * @see #getNamedElement()
+ * @generated
+ */
+ EAttribute getNamedElement_Name();
+
+ /**
+ * Returns the meta object for class '{@link comrel.DescribedElement <em>Described Element</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for class '<em>Described Element</em>'.
+ * @see comrel.DescribedElement
+ * @generated
+ */
+ EClass getDescribedElement();
+
+ /**
+ * Returns the meta object for the attribute '{@link comrel.DescribedElement#getDescription <em>Description</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for the attribute '<em>Description</em>'.
+ * @see comrel.DescribedElement#getDescription()
+ * @see #getDescribedElement()
+ * @generated
+ */
+ EAttribute getDescribedElement_Description();
+
+ /**
+ * Returns the meta object for class '{@link comrel.RefactoringUnit <em>Refactoring Unit</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for class '<em>Refactoring Unit</em>'.
+ * @see comrel.RefactoringUnit
+ * @generated
+ */
+ EClass getRefactoringUnit();
+
+ /**
+ * Returns the meta object for the attribute '{@link comrel.RefactoringUnit#getSeqExecutionOrder <em>Seq Execution Order</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for the attribute '<em>Seq Execution Order</em>'.
+ * @see comrel.RefactoringUnit#getSeqExecutionOrder()
+ * @see #getRefactoringUnit()
+ * @generated
+ */
+ EAttribute getRefactoringUnit_SeqExecutionOrder();
+
+ /**
+ * Returns the meta object for class '{@link comrel.ModelRefactoring <em>Model Refactoring</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for class '<em>Model Refactoring</em>'.
+ * @see comrel.ModelRefactoring
+ * @generated
+ */
+ EClass getModelRefactoring();
+
+ /**
+ * Returns the meta object for the attribute '{@link comrel.ModelRefactoring#getRefId <em>Ref Id</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for the attribute '<em>Ref Id</em>'.
+ * @see comrel.ModelRefactoring#getRefId()
+ * @see #getModelRefactoring()
+ * @generated
+ */
+ EAttribute getModelRefactoring_RefId();
+
+ /**
+ * Returns the meta object for the attribute '{@link comrel.ModelRefactoring#getLabel <em>Label</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for the attribute '<em>Label</em>'.
+ * @see comrel.ModelRefactoring#getLabel()
+ * @see #getModelRefactoring()
+ * @generated
+ */
+ EAttribute getModelRefactoring_Label();
+
+ /**
+ * Returns the meta object for the attribute '{@link comrel.ModelRefactoring#getNamespaceUri <em>Namespace Uri</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for the attribute '<em>Namespace Uri</em>'.
+ * @see comrel.ModelRefactoring#getNamespaceUri()
+ * @see #getModelRefactoring()
+ * @generated
+ */
+ EAttribute getModelRefactoring_NamespaceUri();
+
+ /**
+ * Returns the meta object for the containment reference list '{@link comrel.ModelRefactoring#getInputPorts <em>Input Ports</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for the containment reference list '<em>Input Ports</em>'.
+ * @see comrel.ModelRefactoring#getInputPorts()
+ * @see #getModelRefactoring()
+ * @generated
+ */
+ EReference getModelRefactoring_InputPorts();
+
+ /**
+ * Returns the meta object for class '{@link comrel.AtomicUnit <em>Atomic Unit</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for class '<em>Atomic Unit</em>'.
+ * @see comrel.AtomicUnit
+ * @generated
+ */
+ EClass getAtomicUnit();
+
+ /**
+ * Returns the meta object for the containment reference list '{@link comrel.AtomicUnit#getInputPorts <em>Input Ports</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for the containment reference list '<em>Input Ports</em>'.
+ * @see comrel.AtomicUnit#getInputPorts()
+ * @see #getAtomicUnit()
+ * @generated
+ */
+ EReference getAtomicUnit_InputPorts();
+
+ /**
+ * Returns the meta object for the attribute '{@link comrel.AtomicUnit#getUnitId <em>Unit Id</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for the attribute '<em>Unit Id</em>'.
+ * @see comrel.AtomicUnit#getUnitId()
+ * @see #getAtomicUnit()
+ * @generated
+ */
+ EAttribute getAtomicUnit_UnitId();
+
+ /**
+ * Returns the meta object for the attribute '{@link comrel.AtomicUnit#getLabel <em>Label</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for the attribute '<em>Label</em>'.
+ * @see comrel.AtomicUnit#getLabel()
+ * @see #getAtomicUnit()
+ * @generated
+ */
+ EAttribute getAtomicUnit_Label();
+
+ /**
+ * Returns the meta object for the attribute '{@link comrel.AtomicUnit#getNamespaceUri <em>Namespace Uri</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for the attribute '<em>Namespace Uri</em>'.
+ * @see comrel.AtomicUnit#getNamespaceUri()
+ * @see #getAtomicUnit()
+ * @generated
+ */
+ EAttribute getAtomicUnit_NamespaceUri();
+
+ /**
+ * Returns the meta object for the attribute '{@link comrel.AtomicUnit#getType <em>Type</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for the attribute '<em>Type</em>'.
+ * @see comrel.AtomicUnit#getType()
+ * @see #getAtomicUnit()
+ * @generated
+ */
+ EAttribute getAtomicUnit_Type();
+
+ /**
+ * Returns the meta object for the reference '{@link comrel.AtomicUnit#getModelRefactoring <em>Model Refactoring</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for the reference '<em>Model Refactoring</em>'.
+ * @see comrel.AtomicUnit#getModelRefactoring()
+ * @see #getAtomicUnit()
+ * @generated
+ */
+ EReference getAtomicUnit_ModelRefactoring();
+
+ /**
+ * Returns the meta object for the attribute '{@link comrel.AtomicUnit#isCheckInitialConditionFlag <em>Check Initial Condition Flag</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for the attribute '<em>Check Initial Condition Flag</em>'.
+ * @see comrel.AtomicUnit#isCheckInitialConditionFlag()
+ * @see #getAtomicUnit()
+ * @generated
+ */
+ EAttribute getAtomicUnit_CheckInitialConditionFlag();
+
+ /**
+ * Returns the meta object for the attribute '{@link comrel.AtomicUnit#isCheckFinalConditionFlag <em>Check Final Condition Flag</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for the attribute '<em>Check Final Condition Flag</em>'.
+ * @see comrel.AtomicUnit#isCheckFinalConditionFlag()
+ * @see #getAtomicUnit()
+ * @generated
+ */
+ EAttribute getAtomicUnit_CheckFinalConditionFlag();
+
+ /**
+ * Returns the meta object for class '{@link comrel.CompositeUnit <em>Composite Unit</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for class '<em>Composite Unit</em>'.
+ * @see comrel.CompositeUnit
+ * @generated
+ */
+ EClass getCompositeUnit();
+
+ /**
+ * Returns the meta object for class '{@link comrel.SequentialUnit <em>Sequential Unit</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for class '<em>Sequential Unit</em>'.
+ * @see comrel.SequentialUnit
+ * @generated
+ */
+ EClass getSequentialUnit();
+
+ /**
+ * Returns the meta object for the containment reference list '{@link comrel.SequentialUnit#getHelperUnits <em>Helper Units</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for the containment reference list '<em>Helper Units</em>'.
+ * @see comrel.SequentialUnit#getHelperUnits()
+ * @see #getSequentialUnit()
+ * @generated
+ */
+ EReference getSequentialUnit_HelperUnits();
+
+ /**
+ * Returns the meta object for the containment reference list '{@link comrel.SequentialUnit#getRefactoringUnits <em>Refactoring Units</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for the containment reference list '<em>Refactoring Units</em>'.
+ * @see comrel.SequentialUnit#getRefactoringUnits()
+ * @see #getSequentialUnit()
+ * @generated
+ */
+ EReference getSequentialUnit_RefactoringUnits();
+
+ /**
+ * Returns the meta object for the containment reference list '{@link comrel.SequentialUnit#getInputPorts <em>Input Ports</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for the containment reference list '<em>Input Ports</em>'.
+ * @see comrel.SequentialUnit#getInputPorts()
+ * @see #getSequentialUnit()
+ * @generated
+ */
+ EReference getSequentialUnit_InputPorts();
+
+ /**
+ * Returns the meta object for the attribute '{@link comrel.SequentialUnit#isStrict <em>Strict</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for the attribute '<em>Strict</em>'.
+ * @see comrel.SequentialUnit#isStrict()
+ * @see #getSequentialUnit()
+ * @generated
+ */
+ EAttribute getSequentialUnit_Strict();
+
+ /**
+ * Returns the meta object for the attribute '{@link comrel.SequentialUnit#getType <em>Type</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for the attribute '<em>Type</em>'.
+ * @see comrel.SequentialUnit#getType()
+ * @see #getSequentialUnit()
+ * @generated
+ */
+ EAttribute getSequentialUnit_Type();
+
+ /**
+ * Returns the meta object for the attribute '{@link comrel.SequentialUnit#getLblStrict <em>Lbl Strict</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for the attribute '<em>Lbl Strict</em>'.
+ * @see comrel.SequentialUnit#getLblStrict()
+ * @see #getSequentialUnit()
+ * @generated
+ */
+ EAttribute getSequentialUnit_LblStrict();
+
+ /**
+ * Returns the meta object for class '{@link comrel.ConditionCheck <em>Condition Check</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for class '<em>Condition Check</em>'.
+ * @see comrel.ConditionCheck
+ * @generated
+ */
+ EClass getConditionCheck();
+
+ /**
+ * Returns the meta object for the attribute '{@link comrel.ConditionCheck#getType <em>Type</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for the attribute '<em>Type</em>'.
+ * @see comrel.ConditionCheck#getType()
+ * @see #getConditionCheck()
+ * @generated
+ */
+ EAttribute getConditionCheck_Type();
+
+ /**
+ * Returns the meta object for the attribute '{@link comrel.ConditionCheck#getSpec <em>Spec</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for the attribute '<em>Spec</em>'.
+ * @see comrel.ConditionCheck#getSpec()
+ * @see #getConditionCheck()
+ * @generated
+ */
+ EAttribute getConditionCheck_Spec();
+
+ /**
+ * Returns the meta object for class '{@link comrel.ConditionalUnit <em>Conditional Unit</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for class '<em>Conditional Unit</em>'.
+ * @see comrel.ConditionalUnit
+ * @generated
+ */
+ EClass getConditionalUnit();
+
+ /**
+ * Returns the meta object for the containment reference '{@link comrel.ConditionalUnit#getIf <em>If</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for the containment reference '<em>If</em>'.
+ * @see comrel.ConditionalUnit#getIf()
+ * @see #getConditionalUnit()
+ * @generated
+ */
+ EReference getConditionalUnit_If();
+
+ /**
+ * Returns the meta object for the containment reference list '{@link comrel.ConditionalUnit#getHelperUnits <em>Helper Units</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for the containment reference list '<em>Helper Units</em>'.
+ * @see comrel.ConditionalUnit#getHelperUnits()
+ * @see #getConditionalUnit()
+ * @generated
+ */
+ EReference getConditionalUnit_HelperUnits();
+
+ /**
+ * Returns the meta object for the containment reference '{@link comrel.ConditionalUnit#getThen <em>Then</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for the containment reference '<em>Then</em>'.
+ * @see comrel.ConditionalUnit#getThen()
+ * @see #getConditionalUnit()
+ * @generated
+ */
+ EReference getConditionalUnit_Then();
+
+ /**
+ * Returns the meta object for the containment reference '{@link comrel.ConditionalUnit#getElse <em>Else</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for the containment reference '<em>Else</em>'.
+ * @see comrel.ConditionalUnit#getElse()
+ * @see #getConditionalUnit()
+ * @generated
+ */
+ EReference getConditionalUnit_Else();
+
+ /**
+ * Returns the meta object for the containment reference list '{@link comrel.ConditionalUnit#getInputPorts <em>Input Ports</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for the containment reference list '<em>Input Ports</em>'.
+ * @see comrel.ConditionalUnit#getInputPorts()
+ * @see #getConditionalUnit()
+ * @generated
+ */
+ EReference getConditionalUnit_InputPorts();
+
+ /**
+ * Returns the meta object for the attribute '{@link comrel.ConditionalUnit#getType <em>Type</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for the attribute '<em>Type</em>'.
+ * @see comrel.ConditionalUnit#getType()
+ * @see #getConditionalUnit()
+ * @generated
+ */
+ EAttribute getConditionalUnit_Type();
+
+ /**
+ * Returns the meta object for class '{@link comrel.QueuedUnit <em>Queued Unit</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for class '<em>Queued Unit</em>'.
+ * @see comrel.QueuedUnit
+ * @generated
+ */
+ EClass getQueuedUnit();
+
+ /**
+ * Returns the meta object for the attribute '{@link comrel.QueuedUnit#isStrict <em>Strict</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for the attribute '<em>Strict</em>'.
+ * @see comrel.QueuedUnit#isStrict()
+ * @see #getQueuedUnit()
+ * @generated
+ */
+ EAttribute getQueuedUnit_Strict();
+
+ /**
+ * Returns the meta object for class '{@link comrel.SingleQueuedUnit <em>Single Queued Unit</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for class '<em>Single Queued Unit</em>'.
+ * @see comrel.SingleQueuedUnit
+ * @generated
+ */
+ EClass getSingleQueuedUnit();
+
+ /**
+ * Returns the meta object for the containment reference list '{@link comrel.SingleQueuedUnit#getHelperUnits <em>Helper Units</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for the containment reference list '<em>Helper Units</em>'.
+ * @see comrel.SingleQueuedUnit#getHelperUnits()
+ * @see #getSingleQueuedUnit()
+ * @generated
+ */
+ EReference getSingleQueuedUnit_HelperUnits();
+
+ /**
+ * Returns the meta object for the containment reference '{@link comrel.SingleQueuedUnit#getRefactoringUnit <em>Refactoring Unit</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for the containment reference '<em>Refactoring Unit</em>'.
+ * @see comrel.SingleQueuedUnit#getRefactoringUnit()
+ * @see #getSingleQueuedUnit()
+ * @generated
+ */
+ EReference getSingleQueuedUnit_RefactoringUnit();
+
+ /**
+ * Returns the meta object for the containment reference list '{@link comrel.SingleQueuedUnit#getSingleInputPorts <em>Single Input Ports</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for the containment reference list '<em>Single Input Ports</em>'.
+ * @see comrel.SingleQueuedUnit#getSingleInputPorts()
+ * @see #getSingleQueuedUnit()
+ * @generated
+ */
+ EReference getSingleQueuedUnit_SingleInputPorts();
+
+ /**
+ * Returns the meta object for the containment reference '{@link comrel.SingleQueuedUnit#getMultiInputPort <em>Multi Input Port</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for the containment reference '<em>Multi Input Port</em>'.
+ * @see comrel.SingleQueuedUnit#getMultiInputPort()
+ * @see #getSingleQueuedUnit()
+ * @generated
+ */
+ EReference getSingleQueuedUnit_MultiInputPort();
+
+ /**
+ * Returns the meta object for the attribute '{@link comrel.SingleQueuedUnit#getType <em>Type</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for the attribute '<em>Type</em>'.
+ * @see comrel.SingleQueuedUnit#getType()
+ * @see #getSingleQueuedUnit()
+ * @generated
+ */
+ EAttribute getSingleQueuedUnit_Type();
+
+ /**
+ * Returns the meta object for the attribute '{@link comrel.SingleQueuedUnit#getLblStrict <em>Lbl Strict</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for the attribute '<em>Lbl Strict</em>'.
+ * @see comrel.SingleQueuedUnit#getLblStrict()
+ * @see #getSingleQueuedUnit()
+ * @generated
+ */
+ EAttribute getSingleQueuedUnit_LblStrict();
+
+ /**
+ * Returns the meta object for class '{@link comrel.TwicedQueuedUnit <em>Twiced Queued Unit</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for class '<em>Twiced Queued Unit</em>'.
+ * @see comrel.TwicedQueuedUnit
+ * @generated
+ */
+ EClass getTwicedQueuedUnit();
+
+ /**
+ * Returns the meta object for class '{@link comrel.CartesianQueuedUnit <em>Cartesian Queued Unit</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for class '<em>Cartesian Queued Unit</em>'.
+ * @see comrel.CartesianQueuedUnit
+ * @generated
+ */
+ EClass getCartesianQueuedUnit();
+
+ /**
+ * Returns the meta object for the containment reference list '{@link comrel.CartesianQueuedUnit#getHelperUnits <em>Helper Units</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for the containment reference list '<em>Helper Units</em>'.
+ * @see comrel.CartesianQueuedUnit#getHelperUnits()
+ * @see #getCartesianQueuedUnit()
+ * @generated
+ */
+ EReference getCartesianQueuedUnit_HelperUnits();
+
+ /**
+ * Returns the meta object for the containment reference '{@link comrel.CartesianQueuedUnit#getRefactoringUnit <em>Refactoring Unit</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for the containment reference '<em>Refactoring Unit</em>'.
+ * @see comrel.CartesianQueuedUnit#getRefactoringUnit()
+ * @see #getCartesianQueuedUnit()
+ * @generated
+ */
+ EReference getCartesianQueuedUnit_RefactoringUnit();
+
+ /**
+ * Returns the meta object for the containment reference list '{@link comrel.CartesianQueuedUnit#getSingleInputPorts <em>Single Input Ports</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for the containment reference list '<em>Single Input Ports</em>'.
+ * @see comrel.CartesianQueuedUnit#getSingleInputPorts()
+ * @see #getCartesianQueuedUnit()
+ * @generated
+ */
+ EReference getCartesianQueuedUnit_SingleInputPorts();
+
+ /**
+ * Returns the meta object for the containment reference list '{@link comrel.CartesianQueuedUnit#getMultiInputPorts <em>Multi Input Ports</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for the containment reference list '<em>Multi Input Ports</em>'.
+ * @see comrel.CartesianQueuedUnit#getMultiInputPorts()
+ * @see #getCartesianQueuedUnit()
+ * @generated
+ */
+ EReference getCartesianQueuedUnit_MultiInputPorts();
+
+ /**
+ * Returns the meta object for the attribute '{@link comrel.CartesianQueuedUnit#getType <em>Type</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for the attribute '<em>Type</em>'.
+ * @see comrel.CartesianQueuedUnit#getType()
+ * @see #getCartesianQueuedUnit()
+ * @generated
+ */
+ EAttribute getCartesianQueuedUnit_Type();
+
+ /**
+ * Returns the meta object for the attribute '{@link comrel.CartesianQueuedUnit#getLblStrict <em>Lbl Strict</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for the attribute '<em>Lbl Strict</em>'.
+ * @see comrel.CartesianQueuedUnit#getLblStrict()
+ * @see #getCartesianQueuedUnit()
+ * @generated
+ */
+ EAttribute getCartesianQueuedUnit_LblStrict();
+
+ /**
+ * Returns the meta object for class '{@link comrel.ParallelQueuedUnit <em>Parallel Queued Unit</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for class '<em>Parallel Queued Unit</em>'.
+ * @see comrel.ParallelQueuedUnit
+ * @generated
+ */
+ EClass getParallelQueuedUnit();
+
+ /**
+ * Returns the meta object for the containment reference list '{@link comrel.ParallelQueuedUnit#getHelperUnits <em>Helper Units</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for the containment reference list '<em>Helper Units</em>'.
+ * @see comrel.ParallelQueuedUnit#getHelperUnits()
+ * @see #getParallelQueuedUnit()
+ * @generated
+ */
+ EReference getParallelQueuedUnit_HelperUnits();
+
+ /**
+ * Returns the meta object for the containment reference '{@link comrel.ParallelQueuedUnit#getRefactoringUnits <em>Refactoring Units</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for the containment reference '<em>Refactoring Units</em>'.
+ * @see comrel.ParallelQueuedUnit#getRefactoringUnits()
+ * @see #getParallelQueuedUnit()
+ * @generated
+ */
+ EReference getParallelQueuedUnit_RefactoringUnits();
+
+ /**
+ * Returns the meta object for the containment reference list '{@link comrel.ParallelQueuedUnit#getSingleInputPorts <em>Single Input Ports</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for the containment reference list '<em>Single Input Ports</em>'.
+ * @see comrel.ParallelQueuedUnit#getSingleInputPorts()
+ * @see #getParallelQueuedUnit()
+ * @generated
+ */
+ EReference getParallelQueuedUnit_SingleInputPorts();
+
+ /**
+ * Returns the meta object for the containment reference list '{@link comrel.ParallelQueuedUnit#getMultiInputPorts <em>Multi Input Ports</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for the containment reference list '<em>Multi Input Ports</em>'.
+ * @see comrel.ParallelQueuedUnit#getMultiInputPorts()
+ * @see #getParallelQueuedUnit()
+ * @generated
+ */
+ EReference getParallelQueuedUnit_MultiInputPorts();
+
+ /**
+ * Returns the meta object for the attribute '{@link comrel.ParallelQueuedUnit#getType <em>Type</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for the attribute '<em>Type</em>'.
+ * @see comrel.ParallelQueuedUnit#getType()
+ * @see #getParallelQueuedUnit()
+ * @generated
+ */
+ EAttribute getParallelQueuedUnit_Type();
+
+ /**
+ * Returns the meta object for the attribute '{@link comrel.ParallelQueuedUnit#getLblStrict <em>Lbl Strict</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for the attribute '<em>Lbl Strict</em>'.
+ * @see comrel.ParallelQueuedUnit#getLblStrict()
+ * @see #getParallelQueuedUnit()
+ * @generated
+ */
+ EAttribute getParallelQueuedUnit_LblStrict();
+
+ /**
+ * Returns the meta object for class '{@link comrel.HelperUnit <em>Helper Unit</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for class '<em>Helper Unit</em>'.
+ * @see comrel.HelperUnit
+ * @generated
+ */
+ EClass getHelperUnit();
+
+ /**
+ * Returns the meta object for the attribute '{@link comrel.HelperUnit#getHelperUnitId <em>Helper Unit Id</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for the attribute '<em>Helper Unit Id</em>'.
+ * @see comrel.HelperUnit#getHelperUnitId()
+ * @see #getHelperUnit()
+ * @generated
+ */
+ EAttribute getHelperUnit_HelperUnitId();
+
+ /**
+ * Returns the meta object for the attribute '{@link comrel.HelperUnit#getNamespaceUri <em>Namespace Uri</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for the attribute '<em>Namespace Uri</em>'.
+ * @see comrel.HelperUnit#getNamespaceUri()
+ * @see #getHelperUnit()
+ * @generated
+ */
+ EAttribute getHelperUnit_NamespaceUri();
+
+ /**
+ * Returns the meta object for class '{@link comrel.FeatureUnit <em>Feature Unit</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for class '<em>Feature Unit</em>'.
+ * @see comrel.FeatureUnit
+ * @generated
+ */
+ EClass getFeatureUnit();
+
+ /**
+ * Returns the meta object for class '{@link comrel.SingleFeatureUnit <em>Single Feature Unit</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for class '<em>Single Feature Unit</em>'.
+ * @see comrel.SingleFeatureUnit
+ * @generated
+ */
+ EClass getSingleFeatureUnit();
+
+ /**
+ * Returns the meta object for the containment reference '{@link comrel.SingleFeatureUnit#getInputPort <em>Input Port</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for the containment reference '<em>Input Port</em>'.
+ * @see comrel.SingleFeatureUnit#getInputPort()
+ * @see #getSingleFeatureUnit()
+ * @generated
+ */
+ EReference getSingleFeatureUnit_InputPort();
+
+ /**
+ * Returns the meta object for the containment reference list '{@link comrel.SingleFeatureUnit#getSecondaryInputPorts <em>Secondary Input Ports</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for the containment reference list '<em>Secondary Input Ports</em>'.
+ * @see comrel.SingleFeatureUnit#getSecondaryInputPorts()
+ * @see #getSingleFeatureUnit()
+ * @generated
+ */
+ EReference getSingleFeatureUnit_SecondaryInputPorts();
+
+ /**
+ * Returns the meta object for the containment reference '{@link comrel.SingleFeatureUnit#getOutputPort <em>Output Port</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for the containment reference '<em>Output Port</em>'.
+ * @see comrel.SingleFeatureUnit#getOutputPort()
+ * @see #getSingleFeatureUnit()
+ * @generated
+ */
+ EReference getSingleFeatureUnit_OutputPort();
+
+ /**
+ * Returns the meta object for the reference '{@link comrel.SingleFeatureUnit#getSingleFeatureHelper <em>Single Feature Helper</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for the reference '<em>Single Feature Helper</em>'.
+ * @see comrel.SingleFeatureUnit#getSingleFeatureHelper()
+ * @see #getSingleFeatureUnit()
+ * @generated
+ */
+ EReference getSingleFeatureUnit_SingleFeatureHelper();
+
+ /**
+ * Returns the meta object for the attribute '{@link comrel.SingleFeatureUnit#getType <em>Type</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for the attribute '<em>Type</em>'.
+ * @see comrel.SingleFeatureUnit#getType()
+ * @see #getSingleFeatureUnit()
+ * @generated
+ */
+ EAttribute getSingleFeatureUnit_Type();
+
+ /**
+ * Returns the meta object for class '{@link comrel.MultiFeatureUnit <em>Multi Feature Unit</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for class '<em>Multi Feature Unit</em>'.
+ * @see comrel.MultiFeatureUnit
+ * @generated
+ */
+ EClass getMultiFeatureUnit();
+
+ /**
+ * Returns the meta object for the containment reference '{@link comrel.MultiFeatureUnit#getInputPort <em>Input Port</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for the containment reference '<em>Input Port</em>'.
+ * @see comrel.MultiFeatureUnit#getInputPort()
+ * @see #getMultiFeatureUnit()
+ * @generated
+ */
+ EReference getMultiFeatureUnit_InputPort();
+
+ /**
+ * Returns the meta object for the containment reference list '{@link comrel.MultiFeatureUnit#getSecondaryInputPorts <em>Secondary Input Ports</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for the containment reference list '<em>Secondary Input Ports</em>'.
+ * @see comrel.MultiFeatureUnit#getSecondaryInputPorts()
+ * @see #getMultiFeatureUnit()
+ * @generated
+ */
+ EReference getMultiFeatureUnit_SecondaryInputPorts();
+
+ /**
+ * Returns the meta object for the containment reference '{@link comrel.MultiFeatureUnit#getOutputPort <em>Output Port</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for the containment reference '<em>Output Port</em>'.
+ * @see comrel.MultiFeatureUnit#getOutputPort()
+ * @see #getMultiFeatureUnit()
+ * @generated
+ */
+ EReference getMultiFeatureUnit_OutputPort();
+
+ /**
+ * Returns the meta object for the reference '{@link comrel.MultiFeatureUnit#getMultiFeatureHelper <em>Multi Feature Helper</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for the reference '<em>Multi Feature Helper</em>'.
+ * @see comrel.MultiFeatureUnit#getMultiFeatureHelper()
+ * @see #getMultiFeatureUnit()
+ * @generated
+ */
+ EReference getMultiFeatureUnit_MultiFeatureHelper();
+
+ /**
+ * Returns the meta object for the attribute '{@link comrel.MultiFeatureUnit#getType <em>Type</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for the attribute '<em>Type</em>'.
+ * @see comrel.MultiFeatureUnit#getType()
+ * @see #getMultiFeatureUnit()
+ * @generated
+ */
+ EAttribute getMultiFeatureUnit_Type();
+
+ /**
+ * Returns the meta object for class '{@link comrel.FilterUnit <em>Filter Unit</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for class '<em>Filter Unit</em>'.
+ * @see comrel.FilterUnit
+ * @generated
+ */
+ EClass getFilterUnit();
+
+ /**
+ * Returns the meta object for class '{@link comrel.SingleFilterUnit <em>Single Filter Unit</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for class '<em>Single Filter Unit</em>'.
+ * @see comrel.SingleFilterUnit
+ * @generated
+ */
+ EClass getSingleFilterUnit();
+
+ /**
+ * Returns the meta object for the containment reference '{@link comrel.SingleFilterUnit#getInputPort <em>Input Port</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for the containment reference '<em>Input Port</em>'.
+ * @see comrel.SingleFilterUnit#getInputPort()
+ * @see #getSingleFilterUnit()
+ * @generated
+ */
+ EReference getSingleFilterUnit_InputPort();
+
+ /**
+ * Returns the meta object for the containment reference '{@link comrel.SingleFilterUnit#getOutputPort <em>Output Port</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for the containment reference '<em>Output Port</em>'.
+ * @see comrel.SingleFilterUnit#getOutputPort()
+ * @see #getSingleFilterUnit()
+ * @generated
+ */
+ EReference getSingleFilterUnit_OutputPort();
+
+ /**
+ * Returns the meta object for the reference '{@link comrel.SingleFilterUnit#getSingleFilterHelper <em>Single Filter Helper</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for the reference '<em>Single Filter Helper</em>'.
+ * @see comrel.SingleFilterUnit#getSingleFilterHelper()
+ * @see #getSingleFilterUnit()
+ * @generated
+ */
+ EReference getSingleFilterUnit_SingleFilterHelper();
+
+ /**
+ * Returns the meta object for the attribute '{@link comrel.SingleFilterUnit#getType <em>Type</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for the attribute '<em>Type</em>'.
+ * @see comrel.SingleFilterUnit#getType()
+ * @see #getSingleFilterUnit()
+ * @generated
+ */
+ EAttribute getSingleFilterUnit_Type();
+
+ /**
+ * Returns the meta object for class '{@link comrel.MultiFilterUnit <em>Multi Filter Unit</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for class '<em>Multi Filter Unit</em>'.
+ * @see comrel.MultiFilterUnit
+ * @generated
+ */
+ EClass getMultiFilterUnit();
+
+ /**
+ * Returns the meta object for the containment reference '{@link comrel.MultiFilterUnit#getInputPort <em>Input Port</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for the containment reference '<em>Input Port</em>'.
+ * @see comrel.MultiFilterUnit#getInputPort()
+ * @see #getMultiFilterUnit()
+ * @generated
+ */
+ EReference getMultiFilterUnit_InputPort();
+
+ /**
+ * Returns the meta object for the containment reference '{@link comrel.MultiFilterUnit#getOutputPort <em>Output Port</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for the containment reference '<em>Output Port</em>'.
+ * @see comrel.MultiFilterUnit#getOutputPort()
+ * @see #getMultiFilterUnit()
+ * @generated
+ */
+ EReference getMultiFilterUnit_OutputPort();
+
+ /**
+ * Returns the meta object for the reference '{@link comrel.MultiFilterUnit#getMultiFilterHelper <em>Multi Filter Helper</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for the reference '<em>Multi Filter Helper</em>'.
+ * @see comrel.MultiFilterUnit#getMultiFilterHelper()
+ * @see #getMultiFilterUnit()
+ * @generated
+ */
+ EReference getMultiFilterUnit_MultiFilterHelper();
+
+ /**
+ * Returns the meta object for the attribute '{@link comrel.MultiFilterUnit#getType <em>Type</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for the attribute '<em>Type</em>'.
+ * @see comrel.MultiFilterUnit#getType()
+ * @see #getMultiFilterUnit()
+ * @generated
+ */
+ EAttribute getMultiFilterUnit_Type();
+
+ /**
+ * Returns the meta object for class '{@link comrel.Helper <em>Helper</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for class '<em>Helper</em>'.
+ * @see comrel.Helper
+ * @generated
+ */
+ EClass getHelper();
+
+ /**
+ * Returns the meta object for the attribute '{@link comrel.Helper#getHelperId <em>Helper Id</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for the attribute '<em>Helper Id</em>'.
+ * @see comrel.Helper#getHelperId()
+ * @see #getHelper()
+ * @generated
+ */
+ EAttribute getHelper_HelperId();
+
+ /**
+ * Returns the meta object for the attribute '{@link comrel.Helper#getNamespaceUri <em>Namespace Uri</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for the attribute '<em>Namespace Uri</em>'.
+ * @see comrel.Helper#getNamespaceUri()
+ * @see #getHelper()
+ * @generated
+ */
+ EAttribute getHelper_NamespaceUri();
+
+ /**
+ * Returns the meta object for class '{@link comrel.FeatureHelper <em>Feature Helper</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for class '<em>Feature Helper</em>'.
+ * @see comrel.FeatureHelper
+ * @generated
+ */
+ EClass getFeatureHelper();
+
+ /**
+ * Returns the meta object for the containment reference '{@link comrel.FeatureHelper#getInputPort <em>Input Port</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for the containment reference '<em>Input Port</em>'.
+ * @see comrel.FeatureHelper#getInputPort()
+ * @see #getFeatureHelper()
+ * @generated
+ */
+ EReference getFeatureHelper_InputPort();
+
+ /**
+ * Returns the meta object for the containment reference list '{@link comrel.FeatureHelper#getSecondaryInputPorts <em>Secondary Input Ports</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for the containment reference list '<em>Secondary Input Ports</em>'.
+ * @see comrel.FeatureHelper#getSecondaryInputPorts()
+ * @see #getFeatureHelper()
+ * @generated
+ */
+ EReference getFeatureHelper_SecondaryInputPorts();
+
+ /**
+ * Returns the meta object for class '{@link comrel.SingleFeatureHelper <em>Single Feature Helper</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for class '<em>Single Feature Helper</em>'.
+ * @see comrel.SingleFeatureHelper
+ * @generated
+ */
+ EClass getSingleFeatureHelper();
+
+ /**
+ * Returns the meta object for the containment reference '{@link comrel.SingleFeatureHelper#getOutputPort <em>Output Port</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for the containment reference '<em>Output Port</em>'.
+ * @see comrel.SingleFeatureHelper#getOutputPort()
+ * @see #getSingleFeatureHelper()
+ * @generated
+ */
+ EReference getSingleFeatureHelper_OutputPort();
+
+ /**
+ * Returns the meta object for class '{@link comrel.MultiFeatureHelper <em>Multi Feature Helper</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for class '<em>Multi Feature Helper</em>'.
+ * @see comrel.MultiFeatureHelper
+ * @generated
+ */
+ EClass getMultiFeatureHelper();
+
+ /**
+ * Returns the meta object for the containment reference '{@link comrel.MultiFeatureHelper#getOutputPort <em>Output Port</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for the containment reference '<em>Output Port</em>'.
+ * @see comrel.MultiFeatureHelper#getOutputPort()
+ * @see #getMultiFeatureHelper()
+ * @generated
+ */
+ EReference getMultiFeatureHelper_OutputPort();
+
+ /**
+ * Returns the meta object for class '{@link comrel.FilterHelper <em>Filter Helper</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for class '<em>Filter Helper</em>'.
+ * @see comrel.FilterHelper
+ * @generated
+ */
+ EClass getFilterHelper();
+
+ /**
+ * Returns the meta object for the containment reference '{@link comrel.FilterHelper#getInputPort <em>Input Port</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for the containment reference '<em>Input Port</em>'.
+ * @see comrel.FilterHelper#getInputPort()
+ * @see #getFilterHelper()
+ * @generated
+ */
+ EReference getFilterHelper_InputPort();
+
+ /**
+ * Returns the meta object for class '{@link comrel.SingleFilterHelper <em>Single Filter Helper</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for class '<em>Single Filter Helper</em>'.
+ * @see comrel.SingleFilterHelper
+ * @generated
+ */
+ EClass getSingleFilterHelper();
+
+ /**
+ * Returns the meta object for the containment reference '{@link comrel.SingleFilterHelper#getOutputPort <em>Output Port</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for the containment reference '<em>Output Port</em>'.
+ * @see comrel.SingleFilterHelper#getOutputPort()
+ * @see #getSingleFilterHelper()
+ * @generated
+ */
+ EReference getSingleFilterHelper_OutputPort();
+
+ /**
+ * Returns the meta object for class '{@link comrel.MultiFilterHelper <em>Multi Filter Helper</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for class '<em>Multi Filter Helper</em>'.
+ * @see comrel.MultiFilterHelper
+ * @generated
+ */
+ EClass getMultiFilterHelper();
+
+ /**
+ * Returns the meta object for the containment reference '{@link comrel.MultiFilterHelper#getOutputPort <em>Output Port</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for the containment reference '<em>Output Port</em>'.
+ * @see comrel.MultiFilterHelper#getOutputPort()
+ * @see #getMultiFilterHelper()
+ * @generated
+ */
+ EReference getMultiFilterHelper_OutputPort();
+
+ /**
+ * Returns the meta object for class '{@link comrel.Port <em>Port</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for class '<em>Port</em>'.
+ * @see comrel.Port
+ * @generated
+ */
+ EClass getPort();
+
+ /**
+ * Returns the meta object for the attribute '{@link comrel.Port#getType <em>Type</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for the attribute '<em>Type</em>'.
+ * @see comrel.Port#getType()
+ * @see #getPort()
+ * @generated
+ */
+ EAttribute getPort_Type();
+
+ /**
+ * Returns the meta object for class '{@link comrel.SinglePort <em>Single Port</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for class '<em>Single Port</em>'.
+ * @see comrel.SinglePort
+ * @generated
+ */
+ EClass getSinglePort();
+
+ /**
+ * Returns the meta object for the attribute '{@link comrel.SinglePort#getValue <em>Value</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for the attribute '<em>Value</em>'.
+ * @see comrel.SinglePort#getValue()
+ * @see #getSinglePort()
+ * @generated
+ */
+ EAttribute getSinglePort_Value();
+
+ /**
+ * Returns the meta object for class '{@link comrel.MultiPort <em>Multi Port</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for class '<em>Multi Port</em>'.
+ * @see comrel.MultiPort
+ * @generated
+ */
+ EClass getMultiPort();
+
+ /**
+ * Returns the meta object for the attribute list '{@link comrel.MultiPort#getValue <em>Value</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for the attribute list '<em>Value</em>'.
+ * @see comrel.MultiPort#getValue()
+ * @see #getMultiPort()
+ * @generated
+ */
+ EAttribute getMultiPort_Value();
+
+ /**
+ * Returns the meta object for class '{@link comrel.InputPort <em>Input Port</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for class '<em>Input Port</em>'.
+ * @see comrel.InputPort
+ * @generated
+ */
+ EClass getInputPort();
+
+ /**
+ * Returns the meta object for class '{@link comrel.OutputPort <em>Output Port</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for class '<em>Output Port</em>'.
+ * @see comrel.OutputPort
+ * @generated
+ */
+ EClass getOutputPort();
+
+ /**
+ * Returns the meta object for class '{@link comrel.SingleInputPort <em>Single Input Port</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for class '<em>Single Input Port</em>'.
+ * @see comrel.SingleInputPort
+ * @generated
+ */
+ EClass getSingleInputPort();
+
+ /**
+ * Returns the meta object for class '{@link comrel.MultiInputPort <em>Multi Input Port</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for class '<em>Multi Input Port</em>'.
+ * @see comrel.MultiInputPort
+ * @generated
+ */
+ EClass getMultiInputPort();
+
+ /**
+ * Returns the meta object for class '{@link comrel.SingleOutputPort <em>Single Output Port</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for class '<em>Single Output Port</em>'.
+ * @see comrel.SingleOutputPort
+ * @generated
+ */
+ EClass getSingleOutputPort();
+
+ /**
+ * Returns the meta object for class '{@link comrel.MultiOutputPort <em>Multi Output Port</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for class '<em>Multi Output Port</em>'.
+ * @see comrel.MultiOutputPort
+ * @generated
+ */
+ EClass getMultiOutputPort();
+
+ /**
+ * Returns the meta object for class '{@link comrel.PortMapping <em>Port Mapping</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for class '<em>Port Mapping</em>'.
+ * @see comrel.PortMapping
+ * @generated
+ */
+ EClass getPortMapping();
+
+ /**
+ * Returns the meta object for class '{@link comrel.SinglePortMapping <em>Single Port Mapping</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for class '<em>Single Port Mapping</em>'.
+ * @see comrel.SinglePortMapping
+ * @generated
+ */
+ EClass getSinglePortMapping();
+
+ /**
+ * Returns the meta object for the reference '{@link comrel.SinglePortMapping#getSource <em>Source</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for the reference '<em>Source</em>'.
+ * @see comrel.SinglePortMapping#getSource()
+ * @see #getSinglePortMapping()
+ * @generated
+ */
+ EReference getSinglePortMapping_Source();
+
+ /**
+ * Returns the meta object for the reference '{@link comrel.SinglePortMapping#getTarget <em>Target</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for the reference '<em>Target</em>'.
+ * @see comrel.SinglePortMapping#getTarget()
+ * @see #getSinglePortMapping()
+ * @generated
+ */
+ EReference getSinglePortMapping_Target();
+
+ /**
+ * Returns the meta object for class '{@link comrel.MultiPortMapping <em>Multi Port Mapping</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for class '<em>Multi Port Mapping</em>'.
+ * @see comrel.MultiPortMapping
+ * @generated
+ */
+ EClass getMultiPortMapping();
+
+ /**
+ * Returns the meta object for the reference '{@link comrel.MultiPortMapping#getSource <em>Source</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for the reference '<em>Source</em>'.
+ * @see comrel.MultiPortMapping#getSource()
+ * @see #getMultiPortMapping()
+ * @generated
+ */
+ EReference getMultiPortMapping_Source();
+
+ /**
+ * Returns the meta object for the reference '{@link comrel.MultiPortMapping#getTarget <em>Target</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for the reference '<em>Target</em>'.
+ * @see comrel.MultiPortMapping#getTarget()
+ * @see #getMultiPortMapping()
+ * @generated
+ */
+ EReference getMultiPortMapping_Target();
+
+ /**
+ * Returns the meta object for class '{@link comrel.MultiSinglePortMapping <em>Multi Single Port Mapping</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for class '<em>Multi Single Port Mapping</em>'.
+ * @see comrel.MultiSinglePortMapping
+ * @generated
+ */
+ EClass getMultiSinglePortMapping();
+
+ /**
+ * Returns the meta object for the reference '{@link comrel.MultiSinglePortMapping#getSource <em>Source</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for the reference '<em>Source</em>'.
+ * @see comrel.MultiSinglePortMapping#getSource()
+ * @see #getMultiSinglePortMapping()
+ * @generated
+ */
+ EReference getMultiSinglePortMapping_Source();
+
+ /**
+ * Returns the meta object for the reference '{@link comrel.MultiSinglePortMapping#getTarget <em>Target</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for the reference '<em>Target</em>'.
+ * @see comrel.MultiSinglePortMapping#getTarget()
+ * @see #getMultiSinglePortMapping()
+ * @generated
+ */
+ EReference getMultiSinglePortMapping_Target();
+
+ /**
+ * Returns the meta object for enum '{@link comrel.MappingVisualization <em>Mapping Visualization</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for enum '<em>Mapping Visualization</em>'.
+ * @see comrel.MappingVisualization
+ * @generated
+ */
+ EEnum getMappingVisualization();
+
+ /**
+ * Returns the factory that creates the instances of the model.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the factory that creates the instances of the model.
+ * @generated
+ */
+ ComrelFactory getComrelFactory();
+
+ /**
+ * <!-- begin-user-doc -->
+ * Defines literals for the meta objects that represent
+ * <ul>
+ * <li>each class,</li>
+ * <li>each feature of each class,</li>
+ * <li>each enum,</li>
+ * <li>and each data type</li>
+ * </ul>
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ interface Literals {
+ /**
+ * The meta object literal for the '{@link comrel.impl.CompositeRefactoringImpl <em>Composite Refactoring</em>}' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see comrel.impl.CompositeRefactoringImpl
+ * @see comrel.impl.ComrelPackageImpl#getCompositeRefactoring()
+ * @generated
+ */
+ EClass COMPOSITE_REFACTORING = eINSTANCE.getCompositeRefactoring();
+
+ /**
+ * The meta object literal for the '<em><b>Main Refactoring Unit</b></em>' containment reference feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ EReference COMPOSITE_REFACTORING__MAIN_REFACTORING_UNIT = eINSTANCE.getCompositeRefactoring_MainRefactoringUnit();
+
+ /**
+ * The meta object literal for the '<em><b>Port Mappings</b></em>' containment reference list feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ EReference COMPOSITE_REFACTORING__PORT_MAPPINGS = eINSTANCE.getCompositeRefactoring_PortMappings();
+
+ /**
+ * The meta object literal for the '<em><b>Model Refactorings</b></em>' containment reference list feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ EReference COMPOSITE_REFACTORING__MODEL_REFACTORINGS = eINSTANCE.getCompositeRefactoring_ModelRefactorings();
+
+ /**
+ * The meta object literal for the '<em><b>Helper</b></em>' containment reference list feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ EReference COMPOSITE_REFACTORING__HELPER = eINSTANCE.getCompositeRefactoring_Helper();
+
+ /**
+ * The meta object literal for the '<em><b>Mapping Visualization</b></em>' attribute feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ EAttribute COMPOSITE_REFACTORING__MAPPING_VISUALIZATION = eINSTANCE.getCompositeRefactoring_MappingVisualization();
+
+ /**
+ * The meta object literal for the '<em><b>Custom Initial Condition</b></em>' attribute feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ EAttribute COMPOSITE_REFACTORING__CUSTOM_INITIAL_CONDITION = eINSTANCE.getCompositeRefactoring_CustomInitialCondition();
+
+ /**
+ * The meta object literal for the '<em><b>Custom Final Condition</b></em>' attribute feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ EAttribute COMPOSITE_REFACTORING__CUSTOM_FINAL_CONDITION = eINSTANCE.getCompositeRefactoring_CustomFinalCondition();
+
+ /**
+ * The meta object literal for the '{@link comrel.NamedElement <em>Named Element</em>}' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see comrel.NamedElement
+ * @see comrel.impl.ComrelPackageImpl#getNamedElement()
+ * @generated
+ */
+ EClass NAMED_ELEMENT = eINSTANCE.getNamedElement();
+
+ /**
+ * The meta object literal for the '<em><b>Name</b></em>' attribute feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ EAttribute NAMED_ELEMENT__NAME = eINSTANCE.getNamedElement_Name();
+
+ /**
+ * The meta object literal for the '{@link comrel.DescribedElement <em>Described Element</em>}' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see comrel.DescribedElement
+ * @see comrel.impl.ComrelPackageImpl#getDescribedElement()
+ * @generated
+ */
+ EClass DESCRIBED_ELEMENT = eINSTANCE.getDescribedElement();
+
+ /**
+ * The meta object literal for the '<em><b>Description</b></em>' attribute feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ EAttribute DESCRIBED_ELEMENT__DESCRIPTION = eINSTANCE.getDescribedElement_Description();
+
+ /**
+ * The meta object literal for the '{@link comrel.impl.RefactoringUnitImpl <em>Refactoring Unit</em>}' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see comrel.impl.RefactoringUnitImpl
+ * @see comrel.impl.ComrelPackageImpl#getRefactoringUnit()
+ * @generated
+ */
+ EClass REFACTORING_UNIT = eINSTANCE.getRefactoringUnit();
+
+ /**
+ * The meta object literal for the '<em><b>Seq Execution Order</b></em>' attribute feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ EAttribute REFACTORING_UNIT__SEQ_EXECUTION_ORDER = eINSTANCE.getRefactoringUnit_SeqExecutionOrder();
+
+ /**
+ * The meta object literal for the '{@link comrel.impl.ModelRefactoringImpl <em>Model Refactoring</em>}' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see comrel.impl.ModelRefactoringImpl
+ * @see comrel.impl.ComrelPackageImpl#getModelRefactoring()
+ * @generated
+ */
+ EClass MODEL_REFACTORING = eINSTANCE.getModelRefactoring();
+
+ /**
+ * The meta object literal for the '<em><b>Ref Id</b></em>' attribute feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ EAttribute MODEL_REFACTORING__REF_ID = eINSTANCE.getModelRefactoring_RefId();
+
+ /**
+ * The meta object literal for the '<em><b>Label</b></em>' attribute feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ EAttribute MODEL_REFACTORING__LABEL = eINSTANCE.getModelRefactoring_Label();
+
+ /**
+ * The meta object literal for the '<em><b>Namespace Uri</b></em>' attribute feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ EAttribute MODEL_REFACTORING__NAMESPACE_URI = eINSTANCE.getModelRefactoring_NamespaceUri();
+
+ /**
+ * The meta object literal for the '<em><b>Input Ports</b></em>' containment reference list feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ EReference MODEL_REFACTORING__INPUT_PORTS = eINSTANCE.getModelRefactoring_InputPorts();
+
+ /**
+ * The meta object literal for the '{@link comrel.impl.AtomicUnitImpl <em>Atomic Unit</em>}' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see comrel.impl.AtomicUnitImpl
+ * @see comrel.impl.ComrelPackageImpl#getAtomicUnit()
+ * @generated
+ */
+ EClass ATOMIC_UNIT = eINSTANCE.getAtomicUnit();
+
+ /**
+ * The meta object literal for the '<em><b>Input Ports</b></em>' containment reference list feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ EReference ATOMIC_UNIT__INPUT_PORTS = eINSTANCE.getAtomicUnit_InputPorts();
+
+ /**
+ * The meta object literal for the '<em><b>Unit Id</b></em>' attribute feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ EAttribute ATOMIC_UNIT__UNIT_ID = eINSTANCE.getAtomicUnit_UnitId();
+
+ /**
+ * The meta object literal for the '<em><b>Label</b></em>' attribute feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ EAttribute ATOMIC_UNIT__LABEL = eINSTANCE.getAtomicUnit_Label();
+
+ /**
+ * The meta object literal for the '<em><b>Namespace Uri</b></em>' attribute feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ EAttribute ATOMIC_UNIT__NAMESPACE_URI = eINSTANCE.getAtomicUnit_NamespaceUri();
+
+ /**
+ * The meta object literal for the '<em><b>Type</b></em>' attribute feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ EAttribute ATOMIC_UNIT__TYPE = eINSTANCE.getAtomicUnit_Type();
+
+ /**
+ * The meta object literal for the '<em><b>Model Refactoring</b></em>' reference feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ EReference ATOMIC_UNIT__MODEL_REFACTORING = eINSTANCE.getAtomicUnit_ModelRefactoring();
+
+ /**
+ * The meta object literal for the '<em><b>Check Initial Condition Flag</b></em>' attribute feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ EAttribute ATOMIC_UNIT__CHECK_INITIAL_CONDITION_FLAG = eINSTANCE.getAtomicUnit_CheckInitialConditionFlag();
+
+ /**
+ * The meta object literal for the '<em><b>Check Final Condition Flag</b></em>' attribute feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ EAttribute ATOMIC_UNIT__CHECK_FINAL_CONDITION_FLAG = eINSTANCE.getAtomicUnit_CheckFinalConditionFlag();
+
+ /**
+ * The meta object literal for the '{@link comrel.impl.CompositeUnitImpl <em>Composite Unit</em>}' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see comrel.impl.CompositeUnitImpl
+ * @see comrel.impl.ComrelPackageImpl#getCompositeUnit()
+ * @generated
+ */
+ EClass COMPOSITE_UNIT = eINSTANCE.getCompositeUnit();
+
+ /**
+ * The meta object literal for the '{@link comrel.impl.SequentialUnitImpl <em>Sequential Unit</em>}' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see comrel.impl.SequentialUnitImpl
+ * @see comrel.impl.ComrelPackageImpl#getSequentialUnit()
+ * @generated
+ */
+ EClass SEQUENTIAL_UNIT = eINSTANCE.getSequentialUnit();
+
+ /**
+ * The meta object literal for the '<em><b>Helper Units</b></em>' containment reference list feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ EReference SEQUENTIAL_UNIT__HELPER_UNITS = eINSTANCE.getSequentialUnit_HelperUnits();
+
+ /**
+ * The meta object literal for the '<em><b>Refactoring Units</b></em>' containment reference list feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ EReference SEQUENTIAL_UNIT__REFACTORING_UNITS = eINSTANCE.getSequentialUnit_RefactoringUnits();
+
+ /**
+ * The meta object literal for the '<em><b>Input Ports</b></em>' containment reference list feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ EReference SEQUENTIAL_UNIT__INPUT_PORTS = eINSTANCE.getSequentialUnit_InputPorts();
+
+ /**
+ * The meta object literal for the '<em><b>Strict</b></em>' attribute feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ EAttribute SEQUENTIAL_UNIT__STRICT = eINSTANCE.getSequentialUnit_Strict();
+
+ /**
+ * The meta object literal for the '<em><b>Type</b></em>' attribute feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ EAttribute SEQUENTIAL_UNIT__TYPE = eINSTANCE.getSequentialUnit_Type();
+
+ /**
+ * The meta object literal for the '<em><b>Lbl Strict</b></em>' attribute feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ EAttribute SEQUENTIAL_UNIT__LBL_STRICT = eINSTANCE.getSequentialUnit_LblStrict();
+
+ /**
+ * The meta object literal for the '{@link comrel.impl.ConditionCheckImpl <em>Condition Check</em>}' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see comrel.impl.ConditionCheckImpl
+ * @see comrel.impl.ComrelPackageImpl#getConditionCheck()
+ * @generated
+ */
+ EClass CONDITION_CHECK = eINSTANCE.getConditionCheck();
+
+ /**
+ * The meta object literal for the '<em><b>Type</b></em>' attribute feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ EAttribute CONDITION_CHECK__TYPE = eINSTANCE.getConditionCheck_Type();
+
+ /**
+ * The meta object literal for the '<em><b>Spec</b></em>' attribute feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ EAttribute CONDITION_CHECK__SPEC = eINSTANCE.getConditionCheck_Spec();
+
+ /**
+ * The meta object literal for the '{@link comrel.impl.ConditionalUnitImpl <em>Conditional Unit</em>}' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see comrel.impl.ConditionalUnitImpl
+ * @see comrel.impl.ComrelPackageImpl#getConditionalUnit()
+ * @generated
+ */
+ EClass CONDITIONAL_UNIT = eINSTANCE.getConditionalUnit();
+
+ /**
+ * The meta object literal for the '<em><b>If</b></em>' containment reference feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ EReference CONDITIONAL_UNIT__IF = eINSTANCE.getConditionalUnit_If();
+
+ /**
+ * The meta object literal for the '<em><b>Helper Units</b></em>' containment reference list feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ EReference CONDITIONAL_UNIT__HELPER_UNITS = eINSTANCE.getConditionalUnit_HelperUnits();
+
+ /**
+ * The meta object literal for the '<em><b>Then</b></em>' containment reference feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ EReference CONDITIONAL_UNIT__THEN = eINSTANCE.getConditionalUnit_Then();
+
+ /**
+ * The meta object literal for the '<em><b>Else</b></em>' containment reference feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ EReference CONDITIONAL_UNIT__ELSE = eINSTANCE.getConditionalUnit_Else();
+
+ /**
+ * The meta object literal for the '<em><b>Input Ports</b></em>' containment reference list feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ EReference CONDITIONAL_UNIT__INPUT_PORTS = eINSTANCE.getConditionalUnit_InputPorts();
+
+ /**
+ * The meta object literal for the '<em><b>Type</b></em>' attribute feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ EAttribute CONDITIONAL_UNIT__TYPE = eINSTANCE.getConditionalUnit_Type();
+
+ /**
+ * The meta object literal for the '{@link comrel.impl.QueuedUnitImpl <em>Queued Unit</em>}' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see comrel.impl.QueuedUnitImpl
+ * @see comrel.impl.ComrelPackageImpl#getQueuedUnit()
+ * @generated
+ */
+ EClass QUEUED_UNIT = eINSTANCE.getQueuedUnit();
+
+ /**
+ * The meta object literal for the '<em><b>Strict</b></em>' attribute feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ EAttribute QUEUED_UNIT__STRICT = eINSTANCE.getQueuedUnit_Strict();
+
+ /**
+ * The meta object literal for the '{@link comrel.impl.SingleQueuedUnitImpl <em>Single Queued Unit</em>}' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see comrel.impl.SingleQueuedUnitImpl
+ * @see comrel.impl.ComrelPackageImpl#getSingleQueuedUnit()
+ * @generated
+ */
+ EClass SINGLE_QUEUED_UNIT = eINSTANCE.getSingleQueuedUnit();
+
+ /**
+ * The meta object literal for the '<em><b>Helper Units</b></em>' containment reference list feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ EReference SINGLE_QUEUED_UNIT__HELPER_UNITS = eINSTANCE.getSingleQueuedUnit_HelperUnits();
+
+ /**
+ * The meta object literal for the '<em><b>Refactoring Unit</b></em>' containment reference feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ EReference SINGLE_QUEUED_UNIT__REFACTORING_UNIT = eINSTANCE.getSingleQueuedUnit_RefactoringUnit();
+
+ /**
+ * The meta object literal for the '<em><b>Single Input Ports</b></em>' containment reference list feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ EReference SINGLE_QUEUED_UNIT__SINGLE_INPUT_PORTS = eINSTANCE.getSingleQueuedUnit_SingleInputPorts();
+
+ /**
+ * The meta object literal for the '<em><b>Multi Input Port</b></em>' containment reference feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ EReference SINGLE_QUEUED_UNIT__MULTI_INPUT_PORT = eINSTANCE.getSingleQueuedUnit_MultiInputPort();
+
+ /**
+ * The meta object literal for the '<em><b>Type</b></em>' attribute feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ EAttribute SINGLE_QUEUED_UNIT__TYPE = eINSTANCE.getSingleQueuedUnit_Type();
+
+ /**
+ * The meta object literal for the '<em><b>Lbl Strict</b></em>' attribute feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ EAttribute SINGLE_QUEUED_UNIT__LBL_STRICT = eINSTANCE.getSingleQueuedUnit_LblStrict();
+
+ /**
+ * The meta object literal for the '{@link comrel.impl.TwicedQueuedUnitImpl <em>Twiced Queued Unit</em>}' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see comrel.impl.TwicedQueuedUnitImpl
+ * @see comrel.impl.ComrelPackageImpl#getTwicedQueuedUnit()
+ * @generated
+ */
+ EClass TWICED_QUEUED_UNIT = eINSTANCE.getTwicedQueuedUnit();
+
+ /**
+ * The meta object literal for the '{@link comrel.impl.CartesianQueuedUnitImpl <em>Cartesian Queued Unit</em>}' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see comrel.impl.CartesianQueuedUnitImpl
+ * @see comrel.impl.ComrelPackageImpl#getCartesianQueuedUnit()
+ * @generated
+ */
+ EClass CARTESIAN_QUEUED_UNIT = eINSTANCE.getCartesianQueuedUnit();
+
+ /**
+ * The meta object literal for the '<em><b>Helper Units</b></em>' containment reference list feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ EReference CARTESIAN_QUEUED_UNIT__HELPER_UNITS = eINSTANCE.getCartesianQueuedUnit_HelperUnits();
+
+ /**
+ * The meta object literal for the '<em><b>Refactoring Unit</b></em>' containment reference feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ EReference CARTESIAN_QUEUED_UNIT__REFACTORING_UNIT = eINSTANCE.getCartesianQueuedUnit_RefactoringUnit();
+
+ /**
+ * The meta object literal for the '<em><b>Single Input Ports</b></em>' containment reference list feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ EReference CARTESIAN_QUEUED_UNIT__SINGLE_INPUT_PORTS = eINSTANCE.getCartesianQueuedUnit_SingleInputPorts();
+
+ /**
+ * The meta object literal for the '<em><b>Multi Input Ports</b></em>' containment reference list feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ EReference CARTESIAN_QUEUED_UNIT__MULTI_INPUT_PORTS = eINSTANCE.getCartesianQueuedUnit_MultiInputPorts();
+
+ /**
+ * The meta object literal for the '<em><b>Type</b></em>' attribute feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ EAttribute CARTESIAN_QUEUED_UNIT__TYPE = eINSTANCE.getCartesianQueuedUnit_Type();
+
+ /**
+ * The meta object literal for the '<em><b>Lbl Strict</b></em>' attribute feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ EAttribute CARTESIAN_QUEUED_UNIT__LBL_STRICT = eINSTANCE.getCartesianQueuedUnit_LblStrict();
+
+ /**
+ * The meta object literal for the '{@link comrel.impl.ParallelQueuedUnitImpl <em>Parallel Queued Unit</em>}' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see comrel.impl.ParallelQueuedUnitImpl
+ * @see comrel.impl.ComrelPackageImpl#getParallelQueuedUnit()
+ * @generated
+ */
+ EClass PARALLEL_QUEUED_UNIT = eINSTANCE.getParallelQueuedUnit();
+
+ /**
+ * The meta object literal for the '<em><b>Helper Units</b></em>' containment reference list feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ EReference PARALLEL_QUEUED_UNIT__HELPER_UNITS = eINSTANCE.getParallelQueuedUnit_HelperUnits();
+
+ /**
+ * The meta object literal for the '<em><b>Refactoring Units</b></em>' containment reference feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ EReference PARALLEL_QUEUED_UNIT__REFACTORING_UNITS = eINSTANCE.getParallelQueuedUnit_RefactoringUnits();
+
+ /**
+ * The meta object literal for the '<em><b>Single Input Ports</b></em>' containment reference list feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ EReference PARALLEL_QUEUED_UNIT__SINGLE_INPUT_PORTS = eINSTANCE.getParallelQueuedUnit_SingleInputPorts();
+
+ /**
+ * The meta object literal for the '<em><b>Multi Input Ports</b></em>' containment reference list feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ EReference PARALLEL_QUEUED_UNIT__MULTI_INPUT_PORTS = eINSTANCE.getParallelQueuedUnit_MultiInputPorts();
+
+ /**
+ * The meta object literal for the '<em><b>Type</b></em>' attribute feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ EAttribute PARALLEL_QUEUED_UNIT__TYPE = eINSTANCE.getParallelQueuedUnit_Type();
+
+ /**
+ * The meta object literal for the '<em><b>Lbl Strict</b></em>' attribute feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ EAttribute PARALLEL_QUEUED_UNIT__LBL_STRICT = eINSTANCE.getParallelQueuedUnit_LblStrict();
+
+ /**
+ * The meta object literal for the '{@link comrel.impl.HelperUnitImpl <em>Helper Unit</em>}' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see comrel.impl.HelperUnitImpl
+ * @see comrel.impl.ComrelPackageImpl#getHelperUnit()
+ * @generated
+ */
+ EClass HELPER_UNIT = eINSTANCE.getHelperUnit();
+
+ /**
+ * The meta object literal for the '<em><b>Helper Unit Id</b></em>' attribute feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ EAttribute HELPER_UNIT__HELPER_UNIT_ID = eINSTANCE.getHelperUnit_HelperUnitId();
+
+ /**
+ * The meta object literal for the '<em><b>Namespace Uri</b></em>' attribute feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ EAttribute HELPER_UNIT__NAMESPACE_URI = eINSTANCE.getHelperUnit_NamespaceUri();
+
+ /**
+ * The meta object literal for the '{@link comrel.impl.FeatureUnitImpl <em>Feature Unit</em>}' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see comrel.impl.FeatureUnitImpl
+ * @see comrel.impl.ComrelPackageImpl#getFeatureUnit()
+ * @generated
+ */
+ EClass FEATURE_UNIT = eINSTANCE.getFeatureUnit();
+
+ /**
+ * The meta object literal for the '{@link comrel.impl.SingleFeatureUnitImpl <em>Single Feature Unit</em>}' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see comrel.impl.SingleFeatureUnitImpl
+ * @see comrel.impl.ComrelPackageImpl#getSingleFeatureUnit()
+ * @generated
+ */
+ EClass SINGLE_FEATURE_UNIT = eINSTANCE.getSingleFeatureUnit();
+
+ /**
+ * The meta object literal for the '<em><b>Input Port</b></em>' containment reference feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ EReference SINGLE_FEATURE_UNIT__INPUT_PORT = eINSTANCE.getSingleFeatureUnit_InputPort();
+
+ /**
+ * The meta object literal for the '<em><b>Secondary Input Ports</b></em>' containment reference list feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ EReference SINGLE_FEATURE_UNIT__SECONDARY_INPUT_PORTS = eINSTANCE.getSingleFeatureUnit_SecondaryInputPorts();
+
+ /**
+ * The meta object literal for the '<em><b>Output Port</b></em>' containment reference feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ EReference SINGLE_FEATURE_UNIT__OUTPUT_PORT = eINSTANCE.getSingleFeatureUnit_OutputPort();
+
+ /**
+ * The meta object literal for the '<em><b>Single Feature Helper</b></em>' reference feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ EReference SINGLE_FEATURE_UNIT__SINGLE_FEATURE_HELPER = eINSTANCE.getSingleFeatureUnit_SingleFeatureHelper();
+
+ /**
+ * The meta object literal for the '<em><b>Type</b></em>' attribute feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ EAttribute SINGLE_FEATURE_UNIT__TYPE = eINSTANCE.getSingleFeatureUnit_Type();
+
+ /**
+ * The meta object literal for the '{@link comrel.impl.MultiFeatureUnitImpl <em>Multi Feature Unit</em>}' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see comrel.impl.MultiFeatureUnitImpl
+ * @see comrel.impl.ComrelPackageImpl#getMultiFeatureUnit()
+ * @generated
+ */
+ EClass MULTI_FEATURE_UNIT = eINSTANCE.getMultiFeatureUnit();
+
+ /**
+ * The meta object literal for the '<em><b>Input Port</b></em>' containment reference feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ EReference MULTI_FEATURE_UNIT__INPUT_PORT = eINSTANCE.getMultiFeatureUnit_InputPort();
+
+ /**
+ * The meta object literal for the '<em><b>Secondary Input Ports</b></em>' containment reference list feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ EReference MULTI_FEATURE_UNIT__SECONDARY_INPUT_PORTS = eINSTANCE.getMultiFeatureUnit_SecondaryInputPorts();
+
+ /**
+ * The meta object literal for the '<em><b>Output Port</b></em>' containment reference feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ EReference MULTI_FEATURE_UNIT__OUTPUT_PORT = eINSTANCE.getMultiFeatureUnit_OutputPort();
+
+ /**
+ * The meta object literal for the '<em><b>Multi Feature Helper</b></em>' reference feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ EReference MULTI_FEATURE_UNIT__MULTI_FEATURE_HELPER = eINSTANCE.getMultiFeatureUnit_MultiFeatureHelper();
+
+ /**
+ * The meta object literal for the '<em><b>Type</b></em>' attribute feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ EAttribute MULTI_FEATURE_UNIT__TYPE = eINSTANCE.getMultiFeatureUnit_Type();
+
+ /**
+ * The meta object literal for the '{@link comrel.impl.FilterUnitImpl <em>Filter Unit</em>}' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see comrel.impl.FilterUnitImpl
+ * @see comrel.impl.ComrelPackageImpl#getFilterUnit()
+ * @generated
+ */
+ EClass FILTER_UNIT = eINSTANCE.getFilterUnit();
+
+ /**
+ * The meta object literal for the '{@link comrel.impl.SingleFilterUnitImpl <em>Single Filter Unit</em>}' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see comrel.impl.SingleFilterUnitImpl
+ * @see comrel.impl.ComrelPackageImpl#getSingleFilterUnit()
+ * @generated
+ */
+ EClass SINGLE_FILTER_UNIT = eINSTANCE.getSingleFilterUnit();
+
+ /**
+ * The meta object literal for the '<em><b>Input Port</b></em>' containment reference feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ EReference SINGLE_FILTER_UNIT__INPUT_PORT = eINSTANCE.getSingleFilterUnit_InputPort();
+
+ /**
+ * The meta object literal for the '<em><b>Output Port</b></em>' containment reference feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ EReference SINGLE_FILTER_UNIT__OUTPUT_PORT = eINSTANCE.getSingleFilterUnit_OutputPort();
+
+ /**
+ * The meta object literal for the '<em><b>Single Filter Helper</b></em>' reference feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ EReference SINGLE_FILTER_UNIT__SINGLE_FILTER_HELPER = eINSTANCE.getSingleFilterUnit_SingleFilterHelper();
+
+ /**
+ * The meta object literal for the '<em><b>Type</b></em>' attribute feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ EAttribute SINGLE_FILTER_UNIT__TYPE = eINSTANCE.getSingleFilterUnit_Type();
+
+ /**
+ * The meta object literal for the '{@link comrel.impl.MultiFilterUnitImpl <em>Multi Filter Unit</em>}' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see comrel.impl.MultiFilterUnitImpl
+ * @see comrel.impl.ComrelPackageImpl#getMultiFilterUnit()
+ * @generated
+ */
+ EClass MULTI_FILTER_UNIT = eINSTANCE.getMultiFilterUnit();
+
+ /**
+ * The meta object literal for the '<em><b>Input Port</b></em>' containment reference feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ EReference MULTI_FILTER_UNIT__INPUT_PORT = eINSTANCE.getMultiFilterUnit_InputPort();
+
+ /**
+ * The meta object literal for the '<em><b>Output Port</b></em>' containment reference feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ EReference MULTI_FILTER_UNIT__OUTPUT_PORT = eINSTANCE.getMultiFilterUnit_OutputPort();
+
+ /**
+ * The meta object literal for the '<em><b>Multi Filter Helper</b></em>' reference feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ EReference MULTI_FILTER_UNIT__MULTI_FILTER_HELPER = eINSTANCE.getMultiFilterUnit_MultiFilterHelper();
+
+ /**
+ * The meta object literal for the '<em><b>Type</b></em>' attribute feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ EAttribute MULTI_FILTER_UNIT__TYPE = eINSTANCE.getMultiFilterUnit_Type();
+
+ /**
+ * The meta object literal for the '{@link comrel.impl.HelperImpl <em>Helper</em>}' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see comrel.impl.HelperImpl
+ * @see comrel.impl.ComrelPackageImpl#getHelper()
+ * @generated
+ */
+ EClass HELPER = eINSTANCE.getHelper();
+
+ /**
+ * The meta object literal for the '<em><b>Helper Id</b></em>' attribute feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ EAttribute HELPER__HELPER_ID = eINSTANCE.getHelper_HelperId();
+
+ /**
+ * The meta object literal for the '<em><b>Namespace Uri</b></em>' attribute feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ EAttribute HELPER__NAMESPACE_URI = eINSTANCE.getHelper_NamespaceUri();
+
+ /**
+ * The meta object literal for the '{@link comrel.impl.FeatureHelperImpl <em>Feature Helper</em>}' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see comrel.impl.FeatureHelperImpl
+ * @see comrel.impl.ComrelPackageImpl#getFeatureHelper()
+ * @generated
+ */
+ EClass FEATURE_HELPER = eINSTANCE.getFeatureHelper();
+
+ /**
+ * The meta object literal for the '<em><b>Input Port</b></em>' containment reference feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ EReference FEATURE_HELPER__INPUT_PORT = eINSTANCE.getFeatureHelper_InputPort();
+
+ /**
+ * The meta object literal for the '<em><b>Secondary Input Ports</b></em>' containment reference list feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ EReference FEATURE_HELPER__SECONDARY_INPUT_PORTS = eINSTANCE.getFeatureHelper_SecondaryInputPorts();
+
+ /**
+ * The meta object literal for the '{@link comrel.impl.SingleFeatureHelperImpl <em>Single Feature Helper</em>}' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see comrel.impl.SingleFeatureHelperImpl
+ * @see comrel.impl.ComrelPackageImpl#getSingleFeatureHelper()
+ * @generated
+ */
+ EClass SINGLE_FEATURE_HELPER = eINSTANCE.getSingleFeatureHelper();
+
+ /**
+ * The meta object literal for the '<em><b>Output Port</b></em>' containment reference feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ EReference SINGLE_FEATURE_HELPER__OUTPUT_PORT = eINSTANCE.getSingleFeatureHelper_OutputPort();
+
+ /**
+ * The meta object literal for the '{@link comrel.impl.MultiFeatureHelperImpl <em>Multi Feature Helper</em>}' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see comrel.impl.MultiFeatureHelperImpl
+ * @see comrel.impl.ComrelPackageImpl#getMultiFeatureHelper()
+ * @generated
+ */
+ EClass MULTI_FEATURE_HELPER = eINSTANCE.getMultiFeatureHelper();
+
+ /**
+ * The meta object literal for the '<em><b>Output Port</b></em>' containment reference feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ EReference MULTI_FEATURE_HELPER__OUTPUT_PORT = eINSTANCE.getMultiFeatureHelper_OutputPort();
+
+ /**
+ * The meta object literal for the '{@link comrel.impl.FilterHelperImpl <em>Filter Helper</em>}' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see comrel.impl.FilterHelperImpl
+ * @see comrel.impl.ComrelPackageImpl#getFilterHelper()
+ * @generated
+ */
+ EClass FILTER_HELPER = eINSTANCE.getFilterHelper();
+
+ /**
+ * The meta object literal for the '<em><b>Input Port</b></em>' containment reference feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ EReference FILTER_HELPER__INPUT_PORT = eINSTANCE.getFilterHelper_InputPort();
+
+ /**
+ * The meta object literal for the '{@link comrel.impl.SingleFilterHelperImpl <em>Single Filter Helper</em>}' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see comrel.impl.SingleFilterHelperImpl
+ * @see comrel.impl.ComrelPackageImpl#getSingleFilterHelper()
+ * @generated
+ */
+ EClass SINGLE_FILTER_HELPER = eINSTANCE.getSingleFilterHelper();
+
+ /**
+ * The meta object literal for the '<em><b>Output Port</b></em>' containment reference feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ EReference SINGLE_FILTER_HELPER__OUTPUT_PORT = eINSTANCE.getSingleFilterHelper_OutputPort();
+
+ /**
+ * The meta object literal for the '{@link comrel.impl.MultiFilterHelperImpl <em>Multi Filter Helper</em>}' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see comrel.impl.MultiFilterHelperImpl
+ * @see comrel.impl.ComrelPackageImpl#getMultiFilterHelper()
+ * @generated
+ */
+ EClass MULTI_FILTER_HELPER = eINSTANCE.getMultiFilterHelper();
+
+ /**
+ * The meta object literal for the '<em><b>Output Port</b></em>' containment reference feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ EReference MULTI_FILTER_HELPER__OUTPUT_PORT = eINSTANCE.getMultiFilterHelper_OutputPort();
+
+ /**
+ * The meta object literal for the '{@link comrel.impl.PortImpl <em>Port</em>}' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see comrel.impl.PortImpl
+ * @see comrel.impl.ComrelPackageImpl#getPort()
+ * @generated
+ */
+ EClass PORT = eINSTANCE.getPort();
+
+ /**
+ * The meta object literal for the '<em><b>Type</b></em>' attribute feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ EAttribute PORT__TYPE = eINSTANCE.getPort_Type();
+
+ /**
+ * The meta object literal for the '{@link comrel.impl.SinglePortImpl <em>Single Port</em>}' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see comrel.impl.SinglePortImpl
+ * @see comrel.impl.ComrelPackageImpl#getSinglePort()
+ * @generated
+ */
+ EClass SINGLE_PORT = eINSTANCE.getSinglePort();
+
+ /**
+ * The meta object literal for the '<em><b>Value</b></em>' attribute feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ EAttribute SINGLE_PORT__VALUE = eINSTANCE.getSinglePort_Value();
+
+ /**
+ * The meta object literal for the '{@link comrel.impl.MultiPortImpl <em>Multi Port</em>}' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see comrel.impl.MultiPortImpl
+ * @see comrel.impl.ComrelPackageImpl#getMultiPort()
+ * @generated
+ */
+ EClass MULTI_PORT = eINSTANCE.getMultiPort();
+
+ /**
+ * The meta object literal for the '<em><b>Value</b></em>' attribute list feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ EAttribute MULTI_PORT__VALUE = eINSTANCE.getMultiPort_Value();
+
+ /**
+ * The meta object literal for the '{@link comrel.impl.InputPortImpl <em>Input Port</em>}' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see comrel.impl.InputPortImpl
+ * @see comrel.impl.ComrelPackageImpl#getInputPort()
+ * @generated
+ */
+ EClass INPUT_PORT = eINSTANCE.getInputPort();
+
+ /**
+ * The meta object literal for the '{@link comrel.impl.OutputPortImpl <em>Output Port</em>}' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see comrel.impl.OutputPortImpl
+ * @see comrel.impl.ComrelPackageImpl#getOutputPort()
+ * @generated
+ */
+ EClass OUTPUT_PORT = eINSTANCE.getOutputPort();
+
+ /**
+ * The meta object literal for the '{@link comrel.impl.SingleInputPortImpl <em>Single Input Port</em>}' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see comrel.impl.SingleInputPortImpl
+ * @see comrel.impl.ComrelPackageImpl#getSingleInputPort()
+ * @generated
+ */
+ EClass SINGLE_INPUT_PORT = eINSTANCE.getSingleInputPort();
+
+ /**
+ * The meta object literal for the '{@link comrel.impl.MultiInputPortImpl <em>Multi Input Port</em>}' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see comrel.impl.MultiInputPortImpl
+ * @see comrel.impl.ComrelPackageImpl#getMultiInputPort()
+ * @generated
+ */
+ EClass MULTI_INPUT_PORT = eINSTANCE.getMultiInputPort();
+
+ /**
+ * The meta object literal for the '{@link comrel.impl.SingleOutputPortImpl <em>Single Output Port</em>}' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see comrel.impl.SingleOutputPortImpl
+ * @see comrel.impl.ComrelPackageImpl#getSingleOutputPort()
+ * @generated
+ */
+ EClass SINGLE_OUTPUT_PORT = eINSTANCE.getSingleOutputPort();
+
+ /**
+ * The meta object literal for the '{@link comrel.impl.MultiOutputPortImpl <em>Multi Output Port</em>}' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see comrel.impl.MultiOutputPortImpl
+ * @see comrel.impl.ComrelPackageImpl#getMultiOutputPort()
+ * @generated
+ */
+ EClass MULTI_OUTPUT_PORT = eINSTANCE.getMultiOutputPort();
+
+ /**
+ * The meta object literal for the '{@link comrel.impl.PortMappingImpl <em>Port Mapping</em>}' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see comrel.impl.PortMappingImpl
+ * @see comrel.impl.ComrelPackageImpl#getPortMapping()
+ * @generated
+ */
+ EClass PORT_MAPPING = eINSTANCE.getPortMapping();
+
+ /**
+ * The meta object literal for the '{@link comrel.impl.SinglePortMappingImpl <em>Single Port Mapping</em>}' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see comrel.impl.SinglePortMappingImpl
+ * @see comrel.impl.ComrelPackageImpl#getSinglePortMapping()
+ * @generated
+ */
+ EClass SINGLE_PORT_MAPPING = eINSTANCE.getSinglePortMapping();
+
+ /**
+ * The meta object literal for the '<em><b>Source</b></em>' reference feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ EReference SINGLE_PORT_MAPPING__SOURCE = eINSTANCE.getSinglePortMapping_Source();
+
+ /**
+ * The meta object literal for the '<em><b>Target</b></em>' reference feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ EReference SINGLE_PORT_MAPPING__TARGET = eINSTANCE.getSinglePortMapping_Target();
+
+ /**
+ * The meta object literal for the '{@link comrel.impl.MultiPortMappingImpl <em>Multi Port Mapping</em>}' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see comrel.impl.MultiPortMappingImpl
+ * @see comrel.impl.ComrelPackageImpl#getMultiPortMapping()
+ * @generated
+ */
+ EClass MULTI_PORT_MAPPING = eINSTANCE.getMultiPortMapping();
+
+ /**
+ * The meta object literal for the '<em><b>Source</b></em>' reference feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ EReference MULTI_PORT_MAPPING__SOURCE = eINSTANCE.getMultiPortMapping_Source();
+
+ /**
+ * The meta object literal for the '<em><b>Target</b></em>' reference feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ EReference MULTI_PORT_MAPPING__TARGET = eINSTANCE.getMultiPortMapping_Target();
+
+ /**
+ * The meta object literal for the '{@link comrel.impl.MultiSinglePortMappingImpl <em>Multi Single Port Mapping</em>}' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see comrel.impl.MultiSinglePortMappingImpl
+ * @see comrel.impl.ComrelPackageImpl#getMultiSinglePortMapping()
+ * @generated
+ */
+ EClass MULTI_SINGLE_PORT_MAPPING = eINSTANCE.getMultiSinglePortMapping();
+
+ /**
+ * The meta object literal for the '<em><b>Source</b></em>' reference feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ EReference MULTI_SINGLE_PORT_MAPPING__SOURCE = eINSTANCE.getMultiSinglePortMapping_Source();
+
+ /**
+ * The meta object literal for the '<em><b>Target</b></em>' reference feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ EReference MULTI_SINGLE_PORT_MAPPING__TARGET = eINSTANCE.getMultiSinglePortMapping_Target();
+
+ /**
+ * The meta object literal for the '{@link comrel.MappingVisualization <em>Mapping Visualization</em>}' enum.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see comrel.MappingVisualization
+ * @see comrel.impl.ComrelPackageImpl#getMappingVisualization()
+ * @generated
+ */
+ EEnum MAPPING_VISUALIZATION = eINSTANCE.getMappingVisualization();
+
+ }
+
+} //ComrelPackage
diff --git a/org.eclipse.emf.refactor.comrel/src/comrel/ConditionCheck.java b/org.eclipse.emf.refactor.comrel/src/comrel/ConditionCheck.java
new file mode 100644
index 0000000..684d02d
--- /dev/null
+++ b/org.eclipse.emf.refactor.comrel/src/comrel/ConditionCheck.java
@@ -0,0 +1,70 @@
+/**
+ * <copyright>
+ * </copyright>
+ *
+ * $Id$
+ */
+package comrel;
+
+
+/**
+ * <!-- begin-user-doc -->
+ * A representation of the model object '<em><b>Condition Check</b></em>'.
+ * <!-- end-user-doc -->
+ *
+ * <p>
+ * The following features are supported:
+ * <ul>
+ * <li>{@link comrel.ConditionCheck#getType <em>Type</em>}</li>
+ * <li>{@link comrel.ConditionCheck#getSpec <em>Spec</em>}</li>
+ * </ul>
+ * </p>
+ *
+ * @see comrel.ComrelPackage#getConditionCheck()
+ * @model annotation="gmf.node foo='bar' label.icon='false' label='name,type,spec' label.pattern='{0}:{1} -{2}-'"
+ * @generated
+ */
+public interface ConditionCheck extends NamedElement, DescribedElement {
+ /**
+ * Returns the value of the '<em><b>Type</b></em>' attribute.
+ * The default value is <code>"Condition Check"</code>.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of the '<em>Type</em>' attribute isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @return the value of the '<em>Type</em>' attribute.
+ * @see comrel.ComrelPackage#getConditionCheck_Type()
+ * @model default="Condition Check" changeable="false"
+ * @generated
+ */
+ String getType();
+
+ /**
+ * Returns the value of the '<em><b>Spec</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of the '<em>Spec</em>' attribute isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @return the value of the '<em>Spec</em>' attribute.
+ * @see #setSpec(String)
+ * @see comrel.ComrelPackage#getConditionCheck_Spec()
+ * @model
+ * @generated
+ */
+ String getSpec();
+
+ /**
+ * Sets the value of the '{@link comrel.ConditionCheck#getSpec <em>Spec</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @param value the new value of the '<em>Spec</em>' attribute.
+ * @see #getSpec()
+ * @generated
+ */
+ void setSpec(String value);
+
+} // ConditionCheck
diff --git a/org.eclipse.emf.refactor.comrel/src/comrel/ConditionalUnit.java b/org.eclipse.emf.refactor.comrel/src/comrel/ConditionalUnit.java
new file mode 100644
index 0000000..c636a13
--- /dev/null
+++ b/org.eclipse.emf.refactor.comrel/src/comrel/ConditionalUnit.java
@@ -0,0 +1,164 @@
+/**
+ * <copyright>
+ * </copyright>
+ *
+ * $Id$
+ */
+package comrel;
+
+import org.eclipse.emf.common.util.EList;
+
+/**
+ * <!-- begin-user-doc -->
+ * A representation of the model object '<em><b>Conditional Unit</b></em>'.
+ * <!-- end-user-doc -->
+ *
+ * <p>
+ * The following features are supported:
+ * <ul>
+ * <li>{@link comrel.ConditionalUnit#getIf <em>If</em>}</li>
+ * <li>{@link comrel.ConditionalUnit#getHelperUnits <em>Helper Units</em>}</li>
+ * <li>{@link comrel.ConditionalUnit#getThen <em>Then</em>}</li>
+ * <li>{@link comrel.ConditionalUnit#getElse <em>Else</em>}</li>
+ * <li>{@link comrel.ConditionalUnit#getInputPorts <em>Input Ports</em>}</li>
+ * <li>{@link comrel.ConditionalUnit#getType <em>Type</em>}</li>
+ * </ul>
+ * </p>
+ *
+ * @see comrel.ComrelPackage#getConditionalUnit()
+ * @model annotation="gmf.node foo='bar' label.icon='false' label='name,type' label.pattern='{0}:{1}'"
+ * @generated
+ */
+public interface ConditionalUnit extends CompositeUnit {
+ /**
+ * Returns the value of the '<em><b>If</b></em>' containment reference.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of the '<em>If</em>' containment reference isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @return the value of the '<em>If</em>' containment reference.
+ * @see #setIf(ConditionCheck)
+ * @see comrel.ComrelPackage#getConditionalUnit_If()
+ * @model containment="true" required="true"
+ * annotation="gmf.compartment foo='bar'"
+ * @generated
+ */
+ ConditionCheck getIf();
+
+ /**
+ * Sets the value of the '{@link comrel.ConditionalUnit#getIf <em>If</em>}' containment reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @param value the new value of the '<em>If</em>' containment reference.
+ * @see #getIf()
+ * @generated
+ */
+ void setIf(ConditionCheck value);
+
+ /**
+ * Returns the value of the '<em><b>Helper Units</b></em>' containment reference list.
+ * The list contents are of type {@link comrel.HelperUnit}.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of the '<em>Helper Units</em>' containment reference list isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @return the value of the '<em>Helper Units</em>' containment reference list.
+ * @see comrel.ComrelPackage#getConditionalUnit_HelperUnits()
+ * @model containment="true"
+ * annotation="gmf.compartment foo='bar'"
+ * @generated
+ */
+ EList<HelperUnit> getHelperUnits();
+
+ /**
+ * Returns the value of the '<em><b>Then</b></em>' containment reference.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of the '<em>Then</em>' containment reference isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @return the value of the '<em>Then</em>' containment reference.
+ * @see #setThen(RefactoringUnit)
+ * @see comrel.ComrelPackage#getConditionalUnit_Then()
+ * @model containment="true" required="true"
+ * annotation="gmf.compartment foo='bar'"
+ * @generated
+ */
+ RefactoringUnit getThen();
+
+ /**
+ * Sets the value of the '{@link comrel.ConditionalUnit#getThen <em>Then</em>}' containment reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @param value the new value of the '<em>Then</em>' containment reference.
+ * @see #getThen()
+ * @generated
+ */
+ void setThen(RefactoringUnit value);
+
+ /**
+ * Returns the value of the '<em><b>Else</b></em>' containment reference.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of the '<em>Else</em>' containment reference isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @return the value of the '<em>Else</em>' containment reference.
+ * @see #setElse(RefactoringUnit)
+ * @see comrel.ComrelPackage#getConditionalUnit_Else()
+ * @model containment="true"
+ * annotation="gmf.compartment foo='bar'"
+ * @generated
+ */
+ RefactoringUnit getElse();
+
+ /**
+ * Sets the value of the '{@link comrel.ConditionalUnit#getElse <em>Else</em>}' containment reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @param value the new value of the '<em>Else</em>' containment reference.
+ * @see #getElse()
+ * @generated
+ */
+ void setElse(RefactoringUnit value);
+
+ /**
+ * Returns the value of the '<em><b>Input Ports</b></em>' containment reference list.
+ * The list contents are of type {@link comrel.InputPort}.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of the '<em>Input Ports</em>' containment reference list isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @return the value of the '<em>Input Ports</em>' containment reference list.
+ * @see comrel.ComrelPackage#getConditionalUnit_InputPorts()
+ * @model containment="true" required="true"
+ * annotation="gmf.affixed foo='bar'"
+ * @generated
+ */
+ EList<InputPort> getInputPorts();
+
+ /**
+ * Returns the value of the '<em><b>Type</b></em>' attribute.
+ * The default value is <code>"Conditional Unit"</code>.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of the '<em>Type</em>' attribute isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @return the value of the '<em>Type</em>' attribute.
+ * @see comrel.ComrelPackage#getConditionalUnit_Type()
+ * @model default="Conditional Unit" changeable="false"
+ * @generated
+ */
+ String getType();
+
+} // ConditionalUnit
diff --git a/org.eclipse.emf.refactor.comrel/src/comrel/DescribedElement.java b/org.eclipse.emf.refactor.comrel/src/comrel/DescribedElement.java
new file mode 100644
index 0000000..06fa7de
--- /dev/null
+++ b/org.eclipse.emf.refactor.comrel/src/comrel/DescribedElement.java
@@ -0,0 +1,54 @@
+/**
+ * <copyright>
+ * </copyright>
+ *
+ * $Id$
+ */
+package comrel;
+
+import org.eclipse.emf.ecore.EObject;
+
+/**
+ * <!-- begin-user-doc -->
+ * A representation of the model object '<em><b>Described Element</b></em>'.
+ * <!-- end-user-doc -->
+ *
+ * <p>
+ * The following features are supported:
+ * <ul>
+ * <li>{@link comrel.DescribedElement#getDescription <em>Description</em>}</li>
+ * </ul>
+ * </p>
+ *
+ * @see comrel.ComrelPackage#getDescribedElement()
+ * @model interface="true" abstract="true"
+ * @generated
+ */
+public interface DescribedElement extends EObject {
+ /**
+ * Returns the value of the '<em><b>Description</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of the '<em>Description</em>' attribute isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @return the value of the '<em>Description</em>' attribute.
+ * @see #setDescription(String)
+ * @see comrel.ComrelPackage#getDescribedElement_Description()
+ * @model
+ * @generated
+ */
+ String getDescription();
+
+ /**
+ * Sets the value of the '{@link comrel.DescribedElement#getDescription <em>Description</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @param value the new value of the '<em>Description</em>' attribute.
+ * @see #getDescription()
+ * @generated
+ */
+ void setDescription(String value);
+
+} // DescribedElement
diff --git a/org.eclipse.emf.refactor.comrel/src/comrel/FeatureHelper.java b/org.eclipse.emf.refactor.comrel/src/comrel/FeatureHelper.java
new file mode 100644
index 0000000..a84c31b
--- /dev/null
+++ b/org.eclipse.emf.refactor.comrel/src/comrel/FeatureHelper.java
@@ -0,0 +1,71 @@
+/**
+ * <copyright>
+ * </copyright>
+ *
+ * $Id$
+ */
+package comrel;
+
+import org.eclipse.emf.common.util.EList;
+
+/**
+ * <!-- begin-user-doc -->
+ * A representation of the model object '<em><b>Feature Helper</b></em>'.
+ * <!-- end-user-doc -->
+ *
+ * <p>
+ * The following features are supported:
+ * <ul>
+ * <li>{@link comrel.FeatureHelper#getInputPort <em>Input Port</em>}</li>
+ * <li>{@link comrel.FeatureHelper#getSecondaryInputPorts <em>Secondary Input Ports</em>}</li>
+ * </ul>
+ * </p>
+ *
+ * @see comrel.ComrelPackage#getFeatureHelper()
+ * @model abstract="true"
+ * @generated
+ */
+public interface FeatureHelper extends Helper {
+ /**
+ * Returns the value of the '<em><b>Input Port</b></em>' containment reference.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of the '<em>Input Port</em>' containment reference isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @return the value of the '<em>Input Port</em>' containment reference.
+ * @see #setInputPort(SingleInputPort)
+ * @see comrel.ComrelPackage#getFeatureHelper_InputPort()
+ * @model containment="true" required="true"
+ * @generated
+ */
+ SingleInputPort getInputPort();
+
+ /**
+ * Sets the value of the '{@link comrel.FeatureHelper#getInputPort <em>Input Port</em>}' containment reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @param value the new value of the '<em>Input Port</em>' containment reference.
+ * @see #getInputPort()
+ * @generated
+ */
+ void setInputPort(SingleInputPort value);
+
+ /**
+ * Returns the value of the '<em><b>Secondary Input Ports</b></em>' containment reference list.
+ * The list contents are of type {@link comrel.MultiInputPort}.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of the '<em>Secondary Input Ports</em>' containment reference list isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @return the value of the '<em>Secondary Input Ports</em>' containment reference list.
+ * @see comrel.ComrelPackage#getFeatureHelper_SecondaryInputPorts()
+ * @model containment="true"
+ * @generated
+ */
+ EList<MultiInputPort> getSecondaryInputPorts();
+
+} // FeatureHelper
diff --git a/org.eclipse.emf.refactor.comrel/src/comrel/FeatureUnit.java b/org.eclipse.emf.refactor.comrel/src/comrel/FeatureUnit.java
new file mode 100644
index 0000000..75b62b6
--- /dev/null
+++ b/org.eclipse.emf.refactor.comrel/src/comrel/FeatureUnit.java
@@ -0,0 +1,21 @@
+/**
+ * <copyright>
+ * </copyright>
+ *
+ * $Id$
+ */
+package comrel;
+
+
+/**
+ * <!-- begin-user-doc -->
+ * A representation of the model object '<em><b>Feature Unit</b></em>'.
+ * <!-- end-user-doc -->
+ *
+ *
+ * @see comrel.ComrelPackage#getFeatureUnit()
+ * @model abstract="true"
+ * @generated
+ */
+public interface FeatureUnit extends HelperUnit {
+} // FeatureUnit
diff --git a/org.eclipse.emf.refactor.comrel/src/comrel/FilterHelper.java b/org.eclipse.emf.refactor.comrel/src/comrel/FilterHelper.java
new file mode 100644
index 0000000..b2fced0
--- /dev/null
+++ b/org.eclipse.emf.refactor.comrel/src/comrel/FilterHelper.java
@@ -0,0 +1,53 @@
+/**
+ * <copyright>
+ * </copyright>
+ *
+ * $Id$
+ */
+package comrel;
+
+
+/**
+ * <!-- begin-user-doc -->
+ * A representation of the model object '<em><b>Filter Helper</b></em>'.
+ * <!-- end-user-doc -->
+ *
+ * <p>
+ * The following features are supported:
+ * <ul>
+ * <li>{@link comrel.FilterHelper#getInputPort <em>Input Port</em>}</li>
+ * </ul>
+ * </p>
+ *
+ * @see comrel.ComrelPackage#getFilterHelper()
+ * @model abstract="true"
+ * @generated
+ */
+public interface FilterHelper extends Helper {
+ /**
+ * Returns the value of the '<em><b>Input Port</b></em>' containment reference.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of the '<em>Input Port</em>' containment reference isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @return the value of the '<em>Input Port</em>' containment reference.
+ * @see #setInputPort(MultiInputPort)
+ * @see comrel.ComrelPackage#getFilterHelper_InputPort()
+ * @model containment="true" required="true"
+ * @generated
+ */
+ MultiInputPort getInputPort();
+
+ /**
+ * Sets the value of the '{@link comrel.FilterHelper#getInputPort <em>Input Port</em>}' containment reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @param value the new value of the '<em>Input Port</em>' containment reference.
+ * @see #getInputPort()
+ * @generated
+ */
+ void setInputPort(MultiInputPort value);
+
+} // FilterHelper
diff --git a/org.eclipse.emf.refactor.comrel/src/comrel/FilterUnit.java b/org.eclipse.emf.refactor.comrel/src/comrel/FilterUnit.java
new file mode 100644
index 0000000..6668cfd
--- /dev/null
+++ b/org.eclipse.emf.refactor.comrel/src/comrel/FilterUnit.java
@@ -0,0 +1,21 @@
+/**
+ * <copyright>
+ * </copyright>
+ *
+ * $Id$
+ */
+package comrel;
+
+
+/**
+ * <!-- begin-user-doc -->
+ * A representation of the model object '<em><b>Filter Unit</b></em>'.
+ * <!-- end-user-doc -->
+ *
+ *
+ * @see comrel.ComrelPackage#getFilterUnit()
+ * @model abstract="true"
+ * @generated
+ */
+public interface FilterUnit extends HelperUnit {
+} // FilterUnit
diff --git a/org.eclipse.emf.refactor.comrel/src/comrel/Helper.java b/org.eclipse.emf.refactor.comrel/src/comrel/Helper.java
new file mode 100644
index 0000000..a6aad82
--- /dev/null
+++ b/org.eclipse.emf.refactor.comrel/src/comrel/Helper.java
@@ -0,0 +1,80 @@
+/**
+ * <copyright>
+ * </copyright>
+ *
+ * $Id$
+ */
+package comrel;
+
+
+/**
+ * <!-- begin-user-doc -->
+ * A representation of the model object '<em><b>Helper</b></em>'.
+ * <!-- end-user-doc -->
+ *
+ * <p>
+ * The following features are supported:
+ * <ul>
+ * <li>{@link comrel.Helper#getHelperId <em>Helper Id</em>}</li>
+ * <li>{@link comrel.Helper#getNamespaceUri <em>Namespace Uri</em>}</li>
+ * </ul>
+ * </p>
+ *
+ * @see comrel.ComrelPackage#getHelper()
+ * @model abstract="true"
+ * @generated
+ */
+public interface Helper extends NamedElement, DescribedElement {
+ /**
+ * Returns the value of the '<em><b>Helper Id</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of the '<em>Helper Id</em>' attribute isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @return the value of the '<em>Helper Id</em>' attribute.
+ * @see #setHelperId(String)
+ * @see comrel.ComrelPackage#getHelper_HelperId()
+ * @model required="true"
+ * @generated
+ */
+ String getHelperId();
+
+ /**
+ * Sets the value of the '{@link comrel.Helper#getHelperId <em>Helper Id</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @param value the new value of the '<em>Helper Id</em>' attribute.
+ * @see #getHelperId()
+ * @generated
+ */
+ void setHelperId(String value);
+
+ /**
+ * Returns the value of the '<em><b>Namespace Uri</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of the '<em>Namespace Uri</em>' attribute isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @return the value of the '<em>Namespace Uri</em>' attribute.
+ * @see #setNamespaceUri(String)
+ * @see comrel.ComrelPackage#getHelper_NamespaceUri()
+ * @model required="true"
+ * @generated
+ */
+ String getNamespaceUri();
+
+ /**
+ * Sets the value of the '{@link comrel.Helper#getNamespaceUri <em>Namespace Uri</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @param value the new value of the '<em>Namespace Uri</em>' attribute.
+ * @see #getNamespaceUri()
+ * @generated
+ */
+ void setNamespaceUri(String value);
+
+} // Helper
diff --git a/org.eclipse.emf.refactor.comrel/src/comrel/HelperUnit.java b/org.eclipse.emf.refactor.comrel/src/comrel/HelperUnit.java
new file mode 100644
index 0000000..28b6e0c
--- /dev/null
+++ b/org.eclipse.emf.refactor.comrel/src/comrel/HelperUnit.java
@@ -0,0 +1,96 @@
+/**
+ * <copyright>
+ * </copyright>
+ *
+ * $Id$
+ */
+package comrel;
+
+
+/**
+ * <!-- begin-user-doc -->
+ * A representation of the model object '<em><b>Helper Unit</b></em>'.
+ * <!-- end-user-doc -->
+ *
+ * <p>
+ * The following features are supported:
+ * <ul>
+ * <li>{@link comrel.HelperUnit#getHelperUnitId <em>Helper Unit Id</em>}</li>
+ * <li>{@link comrel.HelperUnit#getNamespaceUri <em>Namespace Uri</em>}</li>
+ * </ul>
+ * </p>
+ *
+ * @see comrel.ComrelPackage#getHelperUnit()
+ * @model abstract="true"
+ * @generated
+ */
+public interface HelperUnit extends NamedElement, DescribedElement {
+ /**
+ * Returns the value of the '<em><b>Helper Unit Id</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of the '<em>Helper Unit Id</em>' attribute isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @return the value of the '<em>Helper Unit Id</em>' attribute.
+ * @see #setHelperUnitId(String)
+ * @see comrel.ComrelPackage#getHelperUnit_HelperUnitId()
+ * @model required="true"
+ * @generated
+ */
+ String getHelperUnitId();
+
+ /**
+ * Sets the value of the '{@link comrel.HelperUnit#getHelperUnitId <em>Helper Unit Id</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @param value the new value of the '<em>Helper Unit Id</em>' attribute.
+ * @see #getHelperUnitId()
+ * @generated
+ */
+ void setHelperUnitId(String value);
+
+ /**
+ * Returns the value of the '<em><b>Namespace Uri</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of the '<em>Namespace Uri</em>' attribute isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @return the value of the '<em>Namespace Uri</em>' attribute.
+ * @see #setNamespaceUri(String)
+ * @see comrel.ComrelPackage#getHelperUnit_NamespaceUri()
+ * @model required="true"
+ * @generated
+ */
+ String getNamespaceUri();
+
+ /**
+ * Sets the value of the '{@link comrel.HelperUnit#getNamespaceUri <em>Namespace Uri</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @param value the new value of the '<em>Namespace Uri</em>' attribute.
+ * @see #getNamespaceUri()
+ * @generated
+ */
+ void setNamespaceUri(String value);
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @model kind="operation" required="true"
+ * @generated
+ */
+ InputPort getInputPort();
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @model kind="operation" required="true"
+ * @generated
+ */
+ OutputPort getOutputPort();
+
+} // HelperUnit
diff --git a/org.eclipse.emf.refactor.comrel/src/comrel/InputPort.java b/org.eclipse.emf.refactor.comrel/src/comrel/InputPort.java
new file mode 100644
index 0000000..e0eccc6
--- /dev/null
+++ b/org.eclipse.emf.refactor.comrel/src/comrel/InputPort.java
@@ -0,0 +1,38 @@
+/**
+ * <copyright>
+ * </copyright>
+ *
+ * $Id$
+ */
+package comrel;
+
+
+/**
+ * <!-- begin-user-doc -->
+ * A representation of the model object '<em><b>Input Port</b></em>'.
+ * <!-- end-user-doc -->
+ *
+ *
+ * @see comrel.ComrelPackage#getInputPort()
+ * @model abstract="true"
+ * annotation="gmf.node figure='rectangle' size='20,20'"
+ * @generated
+ */
+public interface InputPort extends Port {
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @model kind="operation"
+ * @generated
+ */
+ Boolean isMappingTarget();
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @model kind="operation"
+ * @generated
+ */
+ Boolean isRootPort();
+
+} // InputPort
diff --git a/org.eclipse.emf.refactor.comrel/src/comrel/MappingVisualization.java b/org.eclipse.emf.refactor.comrel/src/comrel/MappingVisualization.java
new file mode 100644
index 0000000..310beb0
--- /dev/null
+++ b/org.eclipse.emf.refactor.comrel/src/comrel/MappingVisualization.java
@@ -0,0 +1,293 @@
+/**
+ * <copyright>
+ * </copyright>
+ *
+ * $Id$
+ */
+package comrel;
+
+import java.util.Arrays;
+import java.util.Collections;
+import java.util.List;
+
+import org.eclipse.emf.common.util.Enumerator;
+
+/**
+ * <!-- begin-user-doc -->
+ * A representation of the literals of the enumeration '<em><b>Mapping Visualization</b></em>',
+ * and utility methods for working with them.
+ * <!-- end-user-doc -->
+ * @see comrel.ComrelPackage#getMappingVisualization()
+ * @model
+ * @generated
+ */
+public enum MappingVisualization implements Enumerator {
+ /**
+ * The '<em><b>Arrows</b></em>' literal object.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #ARROWS_VALUE
+ * @generated
+ * @ordered
+ */
+ ARROWS(0, "arrows", "arrows"),
+
+ /**
+ * The '<em><b>Colored Ports</b></em>' literal object.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #COLORED_PORTS_VALUE
+ * @generated
+ * @ordered
+ */
+ COLORED_PORTS(1, "coloredPorts", "coloredPorts"),
+
+ /**
+ * The '<em><b>Indices</b></em>' literal object.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #INDICES_VALUE
+ * @generated
+ * @ordered
+ */
+ INDICES(2, "indices", "indices"),
+
+ /**
+ * The '<em><b>Arrows And Colored Ports</b></em>' literal object.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #ARROWS_AND_COLORED_PORTS_VALUE
+ * @generated
+ * @ordered
+ */
+ ARROWS_AND_COLORED_PORTS(3, "arrowsAndColoredPorts", "arrowsAndColoredPorts"),
+
+ /**
+ * The '<em><b>Arrows And Indices</b></em>' literal object.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #ARROWS_AND_INDICES_VALUE
+ * @generated
+ * @ordered
+ */
+ ARROWS_AND_INDICES(4, "arrowsAndIndices", "arrowsAndIndices");
+
+ /**
+ * The '<em><b>Arrows</b></em>' literal value.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of '<em><b>Arrows</b></em>' literal object isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @see #ARROWS
+ * @model name="arrows"
+ * @generated
+ * @ordered
+ */
+ public static final int ARROWS_VALUE = 0;
+
+ /**
+ * The '<em><b>Colored Ports</b></em>' literal value.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of '<em><b>Colored Ports</b></em>' literal object isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @see #COLORED_PORTS
+ * @model name="coloredPorts"
+ * @generated
+ * @ordered
+ */
+ public static final int COLORED_PORTS_VALUE = 1;
+
+ /**
+ * The '<em><b>Indices</b></em>' literal value.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of '<em><b>Indices</b></em>' literal object isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @see #INDICES
+ * @model name="indices"
+ * @generated
+ * @ordered
+ */
+ public static final int INDICES_VALUE = 2;
+
+ /**
+ * The '<em><b>Arrows And Colored Ports</b></em>' literal value.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of '<em><b>Arrows And Colored Ports</b></em>' literal object isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @see #ARROWS_AND_COLORED_PORTS
+ * @model name="arrowsAndColoredPorts"
+ * @generated
+ * @ordered
+ */
+ public static final int ARROWS_AND_COLORED_PORTS_VALUE = 3;
+
+ /**
+ * The '<em><b>Arrows And Indices</b></em>' literal value.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of '<em><b>Arrows And Indices</b></em>' literal object isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @see #ARROWS_AND_INDICES
+ * @model name="arrowsAndIndices"
+ * @generated
+ * @ordered
+ */
+ public static final int ARROWS_AND_INDICES_VALUE = 4;
+
+ /**
+ * An array of all the '<em><b>Mapping Visualization</b></em>' enumerators.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ private static final MappingVisualization[] VALUES_ARRAY =
+ new MappingVisualization[] {
+ ARROWS,
+ COLORED_PORTS,
+ INDICES,
+ ARROWS_AND_COLORED_PORTS,
+ ARROWS_AND_INDICES,
+ };
+
+ /**
+ * A public read-only list of all the '<em><b>Mapping Visualization</b></em>' enumerators.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public static final List<MappingVisualization> VALUES = Collections.unmodifiableList(Arrays.asList(VALUES_ARRAY));
+
+ /**
+ * Returns the '<em><b>Mapping Visualization</b></em>' literal with the specified literal value.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public static MappingVisualization get(String literal) {
+ for (int i = 0; i < VALUES_ARRAY.length; ++i) {
+ MappingVisualization result = VALUES_ARRAY[i];
+ if (result.toString().equals(literal)) {
+ return result;
+ }
+ }
+ return null;
+ }
+
+ /**
+ * Returns the '<em><b>Mapping Visualization</b></em>' literal with the specified name.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public static MappingVisualization getByName(String name) {
+ for (int i = 0; i < VALUES_ARRAY.length; ++i) {
+ MappingVisualization result = VALUES_ARRAY[i];
+ if (result.getName().equals(name)) {
+ return result;
+ }
+ }
+ return null;
+ }
+
+ /**
+ * Returns the '<em><b>Mapping Visualization</b></em>' literal with the specified integer value.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public static MappingVisualization get(int value) {
+ switch (value) {
+ case ARROWS_VALUE: return ARROWS;
+ case COLORED_PORTS_VALUE: return COLORED_PORTS;
+ case INDICES_VALUE: return INDICES;
+ case ARROWS_AND_COLORED_PORTS_VALUE: return ARROWS_AND_COLORED_PORTS;
+ case ARROWS_AND_INDICES_VALUE: return ARROWS_AND_INDICES;
+ }
+ return null;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ private final int value;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ private final String name;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ private final String literal;
+
+ /**
+ * Only this class can construct instances.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ private MappingVisualization(int value, String name, String literal) {
+ this.value = value;
+ this.name = name;
+ this.literal = literal;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public int getValue() {
+ return value;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public String getName() {
+ return name;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public String getLiteral() {
+ return literal;
+ }
+
+ /**
+ * Returns the literal value of the enumerator, which is its string representation.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public String toString() {
+ return literal;
+ }
+
+} //MappingVisualization
diff --git a/org.eclipse.emf.refactor.comrel/src/comrel/ModelRefactoring.java b/org.eclipse.emf.refactor.comrel/src/comrel/ModelRefactoring.java
new file mode 100644
index 0000000..8492806
--- /dev/null
+++ b/org.eclipse.emf.refactor.comrel/src/comrel/ModelRefactoring.java
@@ -0,0 +1,125 @@
+/**
+ * <copyright>
+ * </copyright>
+ *
+ * $Id$
+ */
+package comrel;
+
+import org.eclipse.emf.common.util.EList;
+
+/**
+ * <!-- begin-user-doc -->
+ * A representation of the model object '<em><b>Model Refactoring</b></em>'.
+ * <!-- end-user-doc -->
+ *
+ * <p>
+ * The following features are supported:
+ * <ul>
+ * <li>{@link comrel.ModelRefactoring#getRefId <em>Ref Id</em>}</li>
+ * <li>{@link comrel.ModelRefactoring#getLabel <em>Label</em>}</li>
+ * <li>{@link comrel.ModelRefactoring#getNamespaceUri <em>Namespace Uri</em>}</li>
+ * <li>{@link comrel.ModelRefactoring#getInputPorts <em>Input Ports</em>}</li>
+ * </ul>
+ * </p>
+ *
+ * @see comrel.ComrelPackage#getModelRefactoring()
+ * @model
+ * @generated
+ */
+public interface ModelRefactoring extends NamedElement, DescribedElement {
+ /**
+ * Returns the value of the '<em><b>Ref Id</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of the '<em>Ref Id</em>' attribute isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @return the value of the '<em>Ref Id</em>' attribute.
+ * @see #setRefId(String)
+ * @see comrel.ComrelPackage#getModelRefactoring_RefId()
+ * @model required="true"
+ * @generated
+ */
+ String getRefId();
+
+ /**
+ * Sets the value of the '{@link comrel.ModelRefactoring#getRefId <em>Ref Id</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @param value the new value of the '<em>Ref Id</em>' attribute.
+ * @see #getRefId()
+ * @generated
+ */
+ void setRefId(String value);
+
+ /**
+ * Returns the value of the '<em><b>Label</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of the '<em>Label</em>' attribute isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @return the value of the '<em>Label</em>' attribute.
+ * @see #setLabel(String)
+ * @see comrel.ComrelPackage#getModelRefactoring_Label()
+ * @model required="true"
+ * @generated
+ */
+ String getLabel();
+
+ /**
+ * Sets the value of the '{@link comrel.ModelRefactoring#getLabel <em>Label</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @param value the new value of the '<em>Label</em>' attribute.
+ * @see #getLabel()
+ * @generated
+ */
+ void setLabel(String value);
+
+ /**
+ * Returns the value of the '<em><b>Namespace Uri</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of the '<em>Namespace Uri</em>' attribute isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @return the value of the '<em>Namespace Uri</em>' attribute.
+ * @see #setNamespaceUri(String)
+ * @see comrel.ComrelPackage#getModelRefactoring_NamespaceUri()
+ * @model required="true"
+ * @generated
+ */
+ String getNamespaceUri();
+
+ /**
+ * Sets the value of the '{@link comrel.ModelRefactoring#getNamespaceUri <em>Namespace Uri</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @param value the new value of the '<em>Namespace Uri</em>' attribute.
+ * @see #getNamespaceUri()
+ * @generated
+ */
+ void setNamespaceUri(String value);
+
+ /**
+ * Returns the value of the '<em><b>Input Ports</b></em>' containment reference list.
+ * The list contents are of type {@link comrel.SingleInputPort}.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of the '<em>Input Ports</em>' containment reference list isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @return the value of the '<em>Input Ports</em>' containment reference list.
+ * @see comrel.ComrelPackage#getModelRefactoring_InputPorts()
+ * @model containment="true"
+ * @generated
+ */
+ EList<SingleInputPort> getInputPorts();
+
+} // ModelRefactoring
diff --git a/org.eclipse.emf.refactor.comrel/src/comrel/MultiFeatureHelper.java b/org.eclipse.emf.refactor.comrel/src/comrel/MultiFeatureHelper.java
new file mode 100644
index 0000000..2529700
--- /dev/null
+++ b/org.eclipse.emf.refactor.comrel/src/comrel/MultiFeatureHelper.java
@@ -0,0 +1,53 @@
+/**
+ * <copyright>
+ * </copyright>
+ *
+ * $Id$
+ */
+package comrel;
+
+
+/**
+ * <!-- begin-user-doc -->
+ * A representation of the model object '<em><b>Multi Feature Helper</b></em>'.
+ * <!-- end-user-doc -->
+ *
+ * <p>
+ * The following features are supported:
+ * <ul>
+ * <li>{@link comrel.MultiFeatureHelper#getOutputPort <em>Output Port</em>}</li>
+ * </ul>
+ * </p>
+ *
+ * @see comrel.ComrelPackage#getMultiFeatureHelper()
+ * @model
+ * @generated
+ */
+public interface MultiFeatureHelper extends FeatureHelper {
+ /**
+ * Returns the value of the '<em><b>Output Port</b></em>' containment reference.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of the '<em>Output Port</em>' containment reference isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @return the value of the '<em>Output Port</em>' containment reference.
+ * @see #setOutputPort(MultiOutputPort)
+ * @see comrel.ComrelPackage#getMultiFeatureHelper_OutputPort()
+ * @model containment="true" required="true"
+ * @generated
+ */
+ MultiOutputPort getOutputPort();
+
+ /**
+ * Sets the value of the '{@link comrel.MultiFeatureHelper#getOutputPort <em>Output Port</em>}' containment reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @param value the new value of the '<em>Output Port</em>' containment reference.
+ * @see #getOutputPort()
+ * @generated
+ */
+ void setOutputPort(MultiOutputPort value);
+
+} // MultiFeatureHelper
diff --git a/org.eclipse.emf.refactor.comrel/src/comrel/MultiFeatureUnit.java b/org.eclipse.emf.refactor.comrel/src/comrel/MultiFeatureUnit.java
new file mode 100644
index 0000000..e2cbc04
--- /dev/null
+++ b/org.eclipse.emf.refactor.comrel/src/comrel/MultiFeatureUnit.java
@@ -0,0 +1,145 @@
+/**
+ * <copyright>
+ * </copyright>
+ *
+ * $Id$
+ */
+package comrel;
+
+import org.eclipse.emf.common.util.EList;
+
+/**
+ * <!-- begin-user-doc -->
+ * A representation of the model object '<em><b>Multi Feature Unit</b></em>'.
+ * <!-- end-user-doc -->
+ *
+ * <p>
+ * The following features are supported:
+ * <ul>
+ * <li>{@link comrel.MultiFeatureUnit#getInputPort <em>Input Port</em>}</li>
+ * <li>{@link comrel.MultiFeatureUnit#getSecondaryInputPorts <em>Secondary Input Ports</em>}</li>
+ * <li>{@link comrel.MultiFeatureUnit#getOutputPort <em>Output Port</em>}</li>
+ * <li>{@link comrel.MultiFeatureUnit#getMultiFeatureHelper <em>Multi Feature Helper</em>}</li>
+ * <li>{@link comrel.MultiFeatureUnit#getType <em>Type</em>}</li>
+ * </ul>
+ * </p>
+ *
+ * @see comrel.ComrelPackage#getMultiFeatureUnit()
+ * @model annotation="gmf.node foo='bar' label.icon='false' label='name,type' label.pattern='{0}:{1}'"
+ * @generated
+ */
+public interface MultiFeatureUnit extends FeatureUnit {
+ /**
+ * Returns the value of the '<em><b>Input Port</b></em>' containment reference.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of the '<em>Input Port</em>' containment reference isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @return the value of the '<em>Input Port</em>' containment reference.
+ * @see #setInputPort(SingleInputPort)
+ * @see comrel.ComrelPackage#getMultiFeatureUnit_InputPort()
+ * @model containment="true" required="true"
+ * annotation="gmf.affixed foo='bar'"
+ * @generated
+ */
+ SingleInputPort getInputPort();
+
+ /**
+ * Sets the value of the '{@link comrel.MultiFeatureUnit#getInputPort <em>Input Port</em>}' containment reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @param value the new value of the '<em>Input Port</em>' containment reference.
+ * @see #getInputPort()
+ * @generated
+ */
+ void setInputPort(SingleInputPort value);
+
+ /**
+ * Returns the value of the '<em><b>Secondary Input Ports</b></em>' containment reference list.
+ * The list contents are of type {@link comrel.MultiInputPort}.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of the '<em>Secondary Input Ports</em>' containment reference list isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @return the value of the '<em>Secondary Input Ports</em>' containment reference list.
+ * @see comrel.ComrelPackage#getMultiFeatureUnit_SecondaryInputPorts()
+ * @model containment="true"
+ * annotation="gmf.affixed foo='bar'"
+ * @generated
+ */
+ EList<MultiInputPort> getSecondaryInputPorts();
+
+ /**
+ * Returns the value of the '<em><b>Output Port</b></em>' containment reference.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of the '<em>Output Port</em>' containment reference isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @return the value of the '<em>Output Port</em>' containment reference.
+ * @see #setOutputPort(MultiOutputPort)
+ * @see comrel.ComrelPackage#getMultiFeatureUnit_OutputPort()
+ * @model containment="true" required="true"
+ * annotation="gmf.affixed foo='bar'"
+ * @generated
+ */
+ MultiOutputPort getOutputPort();
+
+ /**
+ * Sets the value of the '{@link comrel.MultiFeatureUnit#getOutputPort <em>Output Port</em>}' containment reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @param value the new value of the '<em>Output Port</em>' containment reference.
+ * @see #getOutputPort()
+ * @generated
+ */
+ void setOutputPort(MultiOutputPort value);
+
+ /**
+ * Returns the value of the '<em><b>Multi Feature Helper</b></em>' reference.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of the '<em>Multi Feature Helper</em>' reference isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @return the value of the '<em>Multi Feature Helper</em>' reference.
+ * @see #setMultiFeatureHelper(MultiFeatureHelper)
+ * @see comrel.ComrelPackage#getMultiFeatureUnit_MultiFeatureHelper()
+ * @model required="true"
+ * @generated
+ */
+ MultiFeatureHelper getMultiFeatureHelper();
+
+ /**
+ * Sets the value of the '{@link comrel.MultiFeatureUnit#getMultiFeatureHelper <em>Multi Feature Helper</em>}' reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @param value the new value of the '<em>Multi Feature Helper</em>' reference.
+ * @see #getMultiFeatureHelper()
+ * @generated
+ */
+ void setMultiFeatureHelper(MultiFeatureHelper value);
+
+ /**
+ * Returns the value of the '<em><b>Type</b></em>' attribute.
+ * The default value is <code>"Multi Feature Unit"</code>.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of the '<em>Type</em>' attribute isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @return the value of the '<em>Type</em>' attribute.
+ * @see comrel.ComrelPackage#getMultiFeatureUnit_Type()
+ * @model default="Multi Feature Unit" changeable="false"
+ * @generated
+ */
+ String getType();
+
+} // MultiFeatureUnit
diff --git a/org.eclipse.emf.refactor.comrel/src/comrel/MultiFilterHelper.java b/org.eclipse.emf.refactor.comrel/src/comrel/MultiFilterHelper.java
new file mode 100644
index 0000000..529c413
--- /dev/null
+++ b/org.eclipse.emf.refactor.comrel/src/comrel/MultiFilterHelper.java
@@ -0,0 +1,53 @@
+/**
+ * <copyright>
+ * </copyright>
+ *
+ * $Id$
+ */
+package comrel;
+
+
+/**
+ * <!-- begin-user-doc -->
+ * A representation of the model object '<em><b>Multi Filter Helper</b></em>'.
+ * <!-- end-user-doc -->
+ *
+ * <p>
+ * The following features are supported:
+ * <ul>
+ * <li>{@link comrel.MultiFilterHelper#getOutputPort <em>Output Port</em>}</li>
+ * </ul>
+ * </p>
+ *
+ * @see comrel.ComrelPackage#getMultiFilterHelper()
+ * @model
+ * @generated
+ */
+public interface MultiFilterHelper extends FilterHelper {
+ /**
+ * Returns the value of the '<em><b>Output Port</b></em>' containment reference.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of the '<em>Output Port</em>' containment reference isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @return the value of the '<em>Output Port</em>' containment reference.
+ * @see #setOutputPort(MultiOutputPort)
+ * @see comrel.ComrelPackage#getMultiFilterHelper_OutputPort()
+ * @model containment="true" required="true"
+ * @generated
+ */
+ MultiOutputPort getOutputPort();
+
+ /**
+ * Sets the value of the '{@link comrel.MultiFilterHelper#getOutputPort <em>Output Port</em>}' containment reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @param value the new value of the '<em>Output Port</em>' containment reference.
+ * @see #getOutputPort()
+ * @generated
+ */
+ void setOutputPort(MultiOutputPort value);
+
+} // MultiFilterHelper
diff --git a/org.eclipse.emf.refactor.comrel/src/comrel/MultiFilterUnit.java b/org.eclipse.emf.refactor.comrel/src/comrel/MultiFilterUnit.java
new file mode 100644
index 0000000..fa05693
--- /dev/null
+++ b/org.eclipse.emf.refactor.comrel/src/comrel/MultiFilterUnit.java
@@ -0,0 +1,126 @@
+/**
+ * <copyright>
+ * </copyright>
+ *
+ * $Id$
+ */
+package comrel;
+
+
+/**
+ * <!-- begin-user-doc -->
+ * A representation of the model object '<em><b>Multi Filter Unit</b></em>'.
+ * <!-- end-user-doc -->
+ *
+ * <p>
+ * The following features are supported:
+ * <ul>
+ * <li>{@link comrel.MultiFilterUnit#getInputPort <em>Input Port</em>}</li>
+ * <li>{@link comrel.MultiFilterUnit#getOutputPort <em>Output Port</em>}</li>
+ * <li>{@link comrel.MultiFilterUnit#getMultiFilterHelper <em>Multi Filter Helper</em>}</li>
+ * <li>{@link comrel.MultiFilterUnit#getType <em>Type</em>}</li>
+ * </ul>
+ * </p>
+ *
+ * @see comrel.ComrelPackage#getMultiFilterUnit()
+ * @model annotation="gmf.node foo='bar' label.icon='false' label='name,type' label.pattern='{0}:{1}'"
+ * @generated
+ */
+public interface MultiFilterUnit extends FilterUnit {
+ /**
+ * Returns the value of the '<em><b>Input Port</b></em>' containment reference.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of the '<em>Input Port</em>' containment reference isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @return the value of the '<em>Input Port</em>' containment reference.
+ * @see #setInputPort(MultiInputPort)
+ * @see comrel.ComrelPackage#getMultiFilterUnit_InputPort()
+ * @model containment="true" required="true"
+ * annotation="gmf.affixed foo='bar'"
+ * @generated
+ */
+ MultiInputPort getInputPort();
+
+ /**
+ * Sets the value of the '{@link comrel.MultiFilterUnit#getInputPort <em>Input Port</em>}' containment reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @param value the new value of the '<em>Input Port</em>' containment reference.
+ * @see #getInputPort()
+ * @generated
+ */
+ void setInputPort(MultiInputPort value);
+
+ /**
+ * Returns the value of the '<em><b>Output Port</b></em>' containment reference.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of the '<em>Output Port</em>' containment reference isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @return the value of the '<em>Output Port</em>' containment reference.
+ * @see #setOutputPort(MultiOutputPort)
+ * @see comrel.ComrelPackage#getMultiFilterUnit_OutputPort()
+ * @model containment="true" required="true"
+ * annotation="gmf.affixed foo='bar'"
+ * @generated
+ */
+ MultiOutputPort getOutputPort();
+
+ /**
+ * Sets the value of the '{@link comrel.MultiFilterUnit#getOutputPort <em>Output Port</em>}' containment reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @param value the new value of the '<em>Output Port</em>' containment reference.
+ * @see #getOutputPort()
+ * @generated
+ */
+ void setOutputPort(MultiOutputPort value);
+
+ /**
+ * Returns the value of the '<em><b>Multi Filter Helper</b></em>' reference.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of the '<em>Multi Filter Helper</em>' reference isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @return the value of the '<em>Multi Filter Helper</em>' reference.
+ * @see #setMultiFilterHelper(MultiFilterHelper)
+ * @see comrel.ComrelPackage#getMultiFilterUnit_MultiFilterHelper()
+ * @model required="true"
+ * @generated
+ */
+ MultiFilterHelper getMultiFilterHelper();
+
+ /**
+ * Sets the value of the '{@link comrel.MultiFilterUnit#getMultiFilterHelper <em>Multi Filter Helper</em>}' reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @param value the new value of the '<em>Multi Filter Helper</em>' reference.
+ * @see #getMultiFilterHelper()
+ * @generated
+ */
+ void setMultiFilterHelper(MultiFilterHelper value);
+
+ /**
+ * Returns the value of the '<em><b>Type</b></em>' attribute.
+ * The default value is <code>"Multi Filter Unit"</code>.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of the '<em>Type</em>' attribute isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @return the value of the '<em>Type</em>' attribute.
+ * @see comrel.ComrelPackage#getMultiFilterUnit_Type()
+ * @model default="Multi Filter Unit" changeable="false"
+ * @generated
+ */
+ String getType();
+
+} // MultiFilterUnit
diff --git a/org.eclipse.emf.refactor.comrel/src/comrel/MultiInputPort.java b/org.eclipse.emf.refactor.comrel/src/comrel/MultiInputPort.java
new file mode 100644
index 0000000..2571752
--- /dev/null
+++ b/org.eclipse.emf.refactor.comrel/src/comrel/MultiInputPort.java
@@ -0,0 +1,21 @@
+/**
+ * <copyright>
+ * </copyright>
+ *
+ * $Id$
+ */
+package comrel;
+
+
+/**
+ * <!-- begin-user-doc -->
+ * A representation of the model object '<em><b>Multi Input Port</b></em>'.
+ * <!-- end-user-doc -->
+ *
+ *
+ * @see comrel.ComrelPackage#getMultiInputPort()
+ * @model
+ * @generated
+ */
+public interface MultiInputPort extends MultiPort, InputPort {
+} // MultiInputPort
diff --git a/org.eclipse.emf.refactor.comrel/src/comrel/MultiOutputPort.java b/org.eclipse.emf.refactor.comrel/src/comrel/MultiOutputPort.java
new file mode 100644
index 0000000..8418eae
--- /dev/null
+++ b/org.eclipse.emf.refactor.comrel/src/comrel/MultiOutputPort.java
@@ -0,0 +1,21 @@
+/**
+ * <copyright>
+ * </copyright>
+ *
+ * $Id$
+ */
+package comrel;
+
+
+/**
+ * <!-- begin-user-doc -->
+ * A representation of the model object '<em><b>Multi Output Port</b></em>'.
+ * <!-- end-user-doc -->
+ *
+ *
+ * @see comrel.ComrelPackage#getMultiOutputPort()
+ * @model
+ * @generated
+ */
+public interface MultiOutputPort extends MultiPort, OutputPort {
+} // MultiOutputPort
diff --git a/org.eclipse.emf.refactor.comrel/src/comrel/MultiPort.java b/org.eclipse.emf.refactor.comrel/src/comrel/MultiPort.java
new file mode 100644
index 0000000..7974762
--- /dev/null
+++ b/org.eclipse.emf.refactor.comrel/src/comrel/MultiPort.java
@@ -0,0 +1,45 @@
+/**
+ * <copyright>
+ * </copyright>
+ *
+ * $Id$
+ */
+package comrel;
+
+import org.eclipse.emf.common.util.EList;
+
+/**
+ * <!-- begin-user-doc -->
+ * A representation of the model object '<em><b>Multi Port</b></em>'.
+ * <!-- end-user-doc -->
+ *
+ * <p>
+ * The following features are supported:
+ * <ul>
+ * <li>{@link comrel.MultiPort#getValue <em>Value</em>}</li>
+ * </ul>
+ * </p>
+ *
+ * @see comrel.ComrelPackage#getMultiPort()
+ * @model abstract="true"
+ * annotation="gmf.node border.color='255,0,0' border.width='10'"
+ * @generated
+ */
+public interface MultiPort extends Port {
+ /**
+ * Returns the value of the '<em><b>Value</b></em>' attribute list.
+ * The list contents are of type {@link java.lang.Object}.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of the '<em>Value</em>' attribute list isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @return the value of the '<em>Value</em>' attribute list.
+ * @see comrel.ComrelPackage#getMultiPort_Value()
+ * @model
+ * @generated
+ */
+ EList<Object> getValue();
+
+} // MultiPort
diff --git a/org.eclipse.emf.refactor.comrel/src/comrel/MultiPortMapping.java b/org.eclipse.emf.refactor.comrel/src/comrel/MultiPortMapping.java
new file mode 100644
index 0000000..787c6bc
--- /dev/null
+++ b/org.eclipse.emf.refactor.comrel/src/comrel/MultiPortMapping.java
@@ -0,0 +1,80 @@
+/**
+ * <copyright>
+ * </copyright>
+ *
+ * $Id$
+ */
+package comrel;
+
+
+/**
+ * <!-- begin-user-doc -->
+ * A representation of the model object '<em><b>Multi Port Mapping</b></em>'.
+ * <!-- end-user-doc -->
+ *
+ * <p>
+ * The following features are supported:
+ * <ul>
+ * <li>{@link comrel.MultiPortMapping#getSource <em>Source</em>}</li>
+ * <li>{@link comrel.MultiPortMapping#getTarget <em>Target</em>}</li>
+ * </ul>
+ * </p>
+ *
+ * @see comrel.ComrelPackage#getMultiPortMapping()
+ * @model annotation="gmf.link source='source' target='target' style='dot' width='2' target.decoration='arrow'"
+ * @generated
+ */
+public interface MultiPortMapping extends PortMapping {
+ /**
+ * Returns the value of the '<em><b>Source</b></em>' reference.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of the '<em>Source</em>' reference isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @return the value of the '<em>Source</em>' reference.
+ * @see #setSource(MultiPort)
+ * @see comrel.ComrelPackage#getMultiPortMapping_Source()
+ * @model
+ * @generated
+ */
+ MultiPort getSource();
+
+ /**
+ * Sets the value of the '{@link comrel.MultiPortMapping#getSource <em>Source</em>}' reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @param value the new value of the '<em>Source</em>' reference.
+ * @see #getSource()
+ * @generated
+ */
+ void setSource(MultiPort value);
+
+ /**
+ * Returns the value of the '<em><b>Target</b></em>' reference.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of the '<em>Target</em>' reference isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @return the value of the '<em>Target</em>' reference.
+ * @see #setTarget(MultiInputPort)
+ * @see comrel.ComrelPackage#getMultiPortMapping_Target()
+ * @model
+ * @generated
+ */
+ MultiInputPort getTarget();
+
+ /**
+ * Sets the value of the '{@link comrel.MultiPortMapping#getTarget <em>Target</em>}' reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @param value the new value of the '<em>Target</em>' reference.
+ * @see #getTarget()
+ * @generated
+ */
+ void setTarget(MultiInputPort value);
+
+} // MultiPortMapping
diff --git a/org.eclipse.emf.refactor.comrel/src/comrel/MultiSinglePortMapping.java b/org.eclipse.emf.refactor.comrel/src/comrel/MultiSinglePortMapping.java
new file mode 100644
index 0000000..bd5e947
--- /dev/null
+++ b/org.eclipse.emf.refactor.comrel/src/comrel/MultiSinglePortMapping.java
@@ -0,0 +1,80 @@
+/**
+ * <copyright>
+ * </copyright>
+ *
+ * $Id$
+ */
+package comrel;
+
+
+/**
+ * <!-- begin-user-doc -->
+ * A representation of the model object '<em><b>Multi Single Port Mapping</b></em>'.
+ * <!-- end-user-doc -->
+ *
+ * <p>
+ * The following features are supported:
+ * <ul>
+ * <li>{@link comrel.MultiSinglePortMapping#getSource <em>Source</em>}</li>
+ * <li>{@link comrel.MultiSinglePortMapping#getTarget <em>Target</em>}</li>
+ * </ul>
+ * </p>
+ *
+ * @see comrel.ComrelPackage#getMultiSinglePortMapping()
+ * @model annotation="gmf.link source='source' target='target' style='dot' width='2' target.decoration='arrow' tool.small.bundle='name'"
+ * @generated
+ */
+public interface MultiSinglePortMapping extends PortMapping {
+ /**
+ * Returns the value of the '<em><b>Source</b></em>' reference.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of the '<em>Source</em>' reference isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @return the value of the '<em>Source</em>' reference.
+ * @see #setSource(MultiPort)
+ * @see comrel.ComrelPackage#getMultiSinglePortMapping_Source()
+ * @model
+ * @generated
+ */
+ MultiPort getSource();
+
+ /**
+ * Sets the value of the '{@link comrel.MultiSinglePortMapping#getSource <em>Source</em>}' reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @param value the new value of the '<em>Source</em>' reference.
+ * @see #getSource()
+ * @generated
+ */
+ void setSource(MultiPort value);
+
+ /**
+ * Returns the value of the '<em><b>Target</b></em>' reference.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of the '<em>Target</em>' reference isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @return the value of the '<em>Target</em>' reference.
+ * @see #setTarget(SingleInputPort)
+ * @see comrel.ComrelPackage#getMultiSinglePortMapping_Target()
+ * @model
+ * @generated
+ */
+ SingleInputPort getTarget();
+
+ /**
+ * Sets the value of the '{@link comrel.MultiSinglePortMapping#getTarget <em>Target</em>}' reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @param value the new value of the '<em>Target</em>' reference.
+ * @see #getTarget()
+ * @generated
+ */
+ void setTarget(SingleInputPort value);
+
+} // MultiSinglePortMapping
diff --git a/org.eclipse.emf.refactor.comrel/src/comrel/NamedElement.java b/org.eclipse.emf.refactor.comrel/src/comrel/NamedElement.java
new file mode 100644
index 0000000..3cc2930
--- /dev/null
+++ b/org.eclipse.emf.refactor.comrel/src/comrel/NamedElement.java
@@ -0,0 +1,54 @@
+/**
+ * <copyright>
+ * </copyright>
+ *
+ * $Id$
+ */
+package comrel;
+
+import org.eclipse.emf.ecore.EObject;
+
+/**
+ * <!-- begin-user-doc -->
+ * A representation of the model object '<em><b>Named Element</b></em>'.
+ * <!-- end-user-doc -->
+ *
+ * <p>
+ * The following features are supported:
+ * <ul>
+ * <li>{@link comrel.NamedElement#getName <em>Name</em>}</li>
+ * </ul>
+ * </p>
+ *
+ * @see comrel.ComrelPackage#getNamedElement()
+ * @model interface="true" abstract="true"
+ * @generated
+ */
+public interface NamedElement extends EObject {
+ /**
+ * Returns the value of the '<em><b>Name</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of the '<em>Name</em>' attribute isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @return the value of the '<em>Name</em>' attribute.
+ * @see #setName(String)
+ * @see comrel.ComrelPackage#getNamedElement_Name()
+ * @model
+ * @generated
+ */
+ String getName();
+
+ /**
+ * Sets the value of the '{@link comrel.NamedElement#getName <em>Name</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @param value the new value of the '<em>Name</em>' attribute.
+ * @see #getName()
+ * @generated
+ */
+ void setName(String value);
+
+} // NamedElement
diff --git a/org.eclipse.emf.refactor.comrel/src/comrel/OutputPort.java b/org.eclipse.emf.refactor.comrel/src/comrel/OutputPort.java
new file mode 100644
index 0000000..75f3963
--- /dev/null
+++ b/org.eclipse.emf.refactor.comrel/src/comrel/OutputPort.java
@@ -0,0 +1,22 @@
+/**
+ * <copyright>
+ * </copyright>
+ *
+ * $Id$
+ */
+package comrel;
+
+
+/**
+ * <!-- begin-user-doc -->
+ * A representation of the model object '<em><b>Output Port</b></em>'.
+ * <!-- end-user-doc -->
+ *
+ *
+ * @see comrel.ComrelPackage#getOutputPort()
+ * @model abstract="true"
+ * annotation="gmf.node figure='ellipse' size='20,20'"
+ * @generated
+ */
+public interface OutputPort extends Port {
+} // OutputPort
diff --git a/org.eclipse.emf.refactor.comrel/src/comrel/ParallelQueuedUnit.java b/org.eclipse.emf.refactor.comrel/src/comrel/ParallelQueuedUnit.java
new file mode 100644
index 0000000..d0dd202
--- /dev/null
+++ b/org.eclipse.emf.refactor.comrel/src/comrel/ParallelQueuedUnit.java
@@ -0,0 +1,154 @@
+/**
+ * <copyright>
+ * </copyright>
+ *
+ * $Id$
+ */
+package comrel;
+
+import org.eclipse.emf.common.util.EList;
+
+/**
+ * <!-- begin-user-doc -->
+ * A representation of the model object '<em><b>Parallel Queued Unit</b></em>'.
+ * <!-- end-user-doc -->
+ *
+ * <p>
+ * The following features are supported:
+ * <ul>
+ * <li>{@link comrel.ParallelQueuedUnit#getHelperUnits <em>Helper Units</em>}</li>
+ * <li>{@link comrel.ParallelQueuedUnit#getRefactoringUnits <em>Refactoring Units</em>}</li>
+ * <li>{@link comrel.ParallelQueuedUnit#getSingleInputPorts <em>Single Input Ports</em>}</li>
+ * <li>{@link comrel.ParallelQueuedUnit#getMultiInputPorts <em>Multi Input Ports</em>}</li>
+ * <li>{@link comrel.ParallelQueuedUnit#getType <em>Type</em>}</li>
+ * <li>{@link comrel.ParallelQueuedUnit#getLblStrict <em>Lbl Strict</em>}</li>
+ * </ul>
+ * </p>
+ *
+ * @see comrel.ComrelPackage#getParallelQueuedUnit()
+ * @model annotation="gmf.node foo='bar' label.icon='false' label='name,type,lblStrict' label.pattern='{0}:{1} -{2}-'"
+ * @generated
+ */
+public interface ParallelQueuedUnit extends TwicedQueuedUnit {
+ /**
+ * Returns the value of the '<em><b>Helper Units</b></em>' containment reference list.
+ * The list contents are of type {@link comrel.HelperUnit}.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of the '<em>Helper Units</em>' containment reference list isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @return the value of the '<em>Helper Units</em>' containment reference list.
+ * @see comrel.ComrelPackage#getParallelQueuedUnit_HelperUnits()
+ * @model containment="true"
+ * annotation="gmf.compartment foo='bar'"
+ * @generated
+ */
+ EList<HelperUnit> getHelperUnits();
+
+ /**
+ * Returns the value of the '<em><b>Refactoring Units</b></em>' containment reference.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of the '<em>Refactoring Units</em>' containment reference isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @return the value of the '<em>Refactoring Units</em>' containment reference.
+ * @see #setRefactoringUnits(RefactoringUnit)
+ * @see comrel.ComrelPackage#getParallelQueuedUnit_RefactoringUnits()
+ * @model containment="true" required="true"
+ * annotation="gmf.compartment foo='bar'"
+ * @generated
+ */
+ RefactoringUnit getRefactoringUnits();
+
+ /**
+ * Sets the value of the '{@link comrel.ParallelQueuedUnit#getRefactoringUnits <em>Refactoring Units</em>}' containment reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @param value the new value of the '<em>Refactoring Units</em>' containment reference.
+ * @see #getRefactoringUnits()
+ * @generated
+ */
+ void setRefactoringUnits(RefactoringUnit value);
+
+ /**
+ * Returns the value of the '<em><b>Single Input Ports</b></em>' containment reference list.
+ * The list contents are of type {@link comrel.SingleInputPort}.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of the '<em>Single Input Ports</em>' containment reference list isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @return the value of the '<em>Single Input Ports</em>' containment reference list.
+ * @see comrel.ComrelPackage#getParallelQueuedUnit_SingleInputPorts()
+ * @model containment="true"
+ * annotation="gmf.affixed foo='bar'"
+ * @generated
+ */
+ EList<SingleInputPort> getSingleInputPorts();
+
+ /**
+ * Returns the value of the '<em><b>Multi Input Ports</b></em>' containment reference list.
+ * The list contents are of type {@link comrel.MultiInputPort}.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of the '<em>Multi Input Ports</em>' containment reference list isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @return the value of the '<em>Multi Input Ports</em>' containment reference list.
+ * @see comrel.ComrelPackage#getParallelQueuedUnit_MultiInputPorts()
+ * @model containment="true" lower="2" upper="2"
+ * annotation="gmf.affixed foo='bar'"
+ * @generated
+ */
+ EList<MultiInputPort> getMultiInputPorts();
+
+ /**
+ * Returns the value of the '<em><b>Type</b></em>' attribute.
+ * The default value is <code>"Parallel Queued Unit"</code>.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of the '<em>Type</em>' attribute isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @return the value of the '<em>Type</em>' attribute.
+ * @see comrel.ComrelPackage#getParallelQueuedUnit_Type()
+ * @model default="Parallel Queued Unit" changeable="false"
+ * @generated
+ */
+ String getType();
+
+ /**
+ * Returns the value of the '<em><b>Lbl Strict</b></em>' attribute.
+ * The default value is <code>"strict"</code>.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of the '<em>Lbl Strict</em>' attribute isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @return the value of the '<em>Lbl Strict</em>' attribute.
+ * @see #setLblStrict(String)
+ * @see comrel.ComrelPackage#getParallelQueuedUnit_LblStrict()
+ * @model default="strict"
+ * @generated
+ */
+ String getLblStrict();
+
+ /**
+ * Sets the value of the '{@link comrel.ParallelQueuedUnit#getLblStrict <em>Lbl Strict</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @param value the new value of the '<em>Lbl Strict</em>' attribute.
+ * @see #getLblStrict()
+ * @generated
+ */
+ void setLblStrict(String value);
+
+} // ParallelQueuedUnit
diff --git a/org.eclipse.emf.refactor.comrel/src/comrel/Port.java b/org.eclipse.emf.refactor.comrel/src/comrel/Port.java
new file mode 100644
index 0000000..c7074cc
--- /dev/null
+++ b/org.eclipse.emf.refactor.comrel/src/comrel/Port.java
@@ -0,0 +1,84 @@
+/**
+ * <copyright>
+ * </copyright>
+ *
+ * $Id$
+ */
+package comrel;
+
+import org.eclipse.draw2d.Shape;
+
+
+/**
+ * <!-- begin-user-doc -->
+ * A representation of the model object '<em><b>Port</b></em>'.
+ * <!-- end-user-doc -->
+ *
+ * <p>
+ * The following features are supported:
+ * <ul>
+ * <li>{@link comrel.Port#getType <em>Type</em>}</li>
+ * </ul>
+ * </p>
+ *
+ * @see comrel.ComrelPackage#getPort()
+ * @model abstract="true"
+ * annotation="gmf.node foo='bar' label='name,type' label.icon='false' label.placement='external' label.pattern='{0}:{1}'"
+ * @generated
+ */
+public interface Port extends NamedElement, DescribedElement {
+ /**
+ * Returns the value of the '<em><b>Type</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of the '<em>Type</em>' attribute isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @return the value of the '<em>Type</em>' attribute.
+ * @see #setType(Class)
+ * @see comrel.ComrelPackage#getPort_Type()
+ * @model required="true"
+ * @generated
+ */
+ Class getType();
+
+ /**
+ * Sets the value of the '{@link comrel.Port#getType <em>Type</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @param value the new value of the '<em>Type</em>' attribute.
+ * @see #getType()
+ * @generated
+ */
+ void setType(Class value);
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @model
+ * @generated
+ */
+ void setType(Class newType, boolean initiator);
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @model
+ * @generated
+ */
+ void updatePortName(String singularPortName);
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @model kind="operation"
+ * @generated
+ */
+ String getSingularPortName();
+
+ public Shape getFigure();
+
+ public void setFigure(Shape figure);
+
+} // Port
diff --git a/org.eclipse.emf.refactor.comrel/src/comrel/PortMapping.java b/org.eclipse.emf.refactor.comrel/src/comrel/PortMapping.java
new file mode 100644
index 0000000..fab80d9
--- /dev/null
+++ b/org.eclipse.emf.refactor.comrel/src/comrel/PortMapping.java
@@ -0,0 +1,76 @@
+/**
+ * <copyright>
+ * </copyright>
+ *
+ * $Id$
+ */
+package comrel;
+
+import org.eclipse.emf.ecore.EObject;
+
+import comrel.figures.PortMappingFigure;
+
+/**
+ * <!-- begin-user-doc -->
+ * A representation of the model object '<em><b>Port Mapping</b></em>'.
+ * <!-- end-user-doc -->
+ *
+ *
+ * @see comrel.ComrelPackage#getPortMapping()
+ * @model abstract="true"
+ * @generated
+ */
+public interface PortMapping extends EObject {
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @model kind="operation"
+ * @generated
+ */
+ Port getSource();
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @model kind="operation"
+ * @generated
+ */
+ InputPort getTarget();
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @model
+ * @generated
+ */
+ void updatePortTypesAndNames(Class type, String singularPortName);
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @model
+ * @generated
+ */
+ void updateMappingNumber();
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @model
+ * @generated
+ */
+ void updateVisualization();
+
+ public void setMappingNumber(int mappingNumber);
+
+ public int getMappingNumber();
+
+ public void setFigure(PortMappingFigure figure);
+
+ public PortMappingFigure getFigure();
+
+ public boolean isVisible();
+
+ public void setVisible(boolean visible);
+
+} // PortMapping
diff --git a/org.eclipse.emf.refactor.comrel/src/comrel/QueuedUnit.java b/org.eclipse.emf.refactor.comrel/src/comrel/QueuedUnit.java
new file mode 100644
index 0000000..25d3713
--- /dev/null
+++ b/org.eclipse.emf.refactor.comrel/src/comrel/QueuedUnit.java
@@ -0,0 +1,62 @@
+/**
+ * <copyright>
+ * </copyright>
+ *
+ * $Id$
+ */
+package comrel;
+
+
+/**
+ * <!-- begin-user-doc -->
+ * A representation of the model object '<em><b>Queued Unit</b></em>'.
+ * <!-- end-user-doc -->
+ *
+ * <p>
+ * The following features are supported:
+ * <ul>
+ * <li>{@link comrel.QueuedUnit#isStrict <em>Strict</em>}</li>
+ * </ul>
+ * </p>
+ *
+ * @see comrel.ComrelPackage#getQueuedUnit()
+ * @model abstract="true"
+ * @generated
+ */
+public interface QueuedUnit extends CompositeUnit {
+ /**
+ * Returns the value of the '<em><b>Strict</b></em>' attribute.
+ * The default value is <code>"true"</code>.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of the '<em>Strict</em>' attribute isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @return the value of the '<em>Strict</em>' attribute.
+ * @see #setStrict(boolean)
+ * @see comrel.ComrelPackage#getQueuedUnit_Strict()
+ * @model default="true"
+ * @generated
+ */
+ boolean isStrict();
+
+ /**
+ * Sets the value of the '{@link comrel.QueuedUnit#isStrict <em>Strict</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @param value the new value of the '<em>Strict</em>' attribute.
+ * @see #isStrict()
+ * @generated
+ */
+ void setStrict(boolean value);
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @model
+ * @generated
+ */
+ void init();
+
+} // QueuedUnit
diff --git a/org.eclipse.emf.refactor.comrel/src/comrel/RefactoringUnit.java b/org.eclipse.emf.refactor.comrel/src/comrel/RefactoringUnit.java
new file mode 100644
index 0000000..d6ebd24
--- /dev/null
+++ b/org.eclipse.emf.refactor.comrel/src/comrel/RefactoringUnit.java
@@ -0,0 +1,83 @@
+/**
+ * <copyright>
+ * </copyright>
+ *
+ * $Id$
+ */
+package comrel;
+
+import org.eclipse.draw2d.RoundedRectangle;
+import org.eclipse.emf.common.util.EList;
+
+/**
+ * <!-- begin-user-doc -->
+ * A representation of the model object '<em><b>Refactoring Unit</b></em>'.
+ * <!-- end-user-doc -->
+ *
+ * <p>
+ * The following features are supported:
+ * <ul>
+ * <li>{@link comrel.RefactoringUnit#getSeqExecutionOrder <em>Seq Execution Order</em>}</li>
+ * </ul>
+ * </p>
+ *
+ * @see comrel.ComrelPackage#getRefactoringUnit()
+ * @model abstract="true"
+ * @generated
+ */
+public interface RefactoringUnit extends NamedElement {
+ /**
+ * Returns the value of the '<em><b>Seq Execution Order</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of the '<em>Seq Execution Order</em>' attribute isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @return the value of the '<em>Seq Execution Order</em>' attribute.
+ * @see #setSeqExecutionOrder(int)
+ * @see comrel.ComrelPackage#getRefactoringUnit_SeqExecutionOrder()
+ * @model
+ * @generated
+ */
+ int getSeqExecutionOrder();
+
+ /**
+ * Sets the value of the '{@link comrel.RefactoringUnit#getSeqExecutionOrder <em>Seq Execution Order</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @param value the new value of the '<em>Seq Execution Order</em>' attribute.
+ * @see #getSeqExecutionOrder()
+ * @generated
+ */
+ void setSeqExecutionOrder(int value);
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @model kind="operation"
+ * @generated
+ */
+ EList<InputPort> getAllInputPorts();
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @model
+ * @generated
+ */
+ void setSeqExecutionOrder(int seqExecutionOrder, boolean superCall);
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @model
+ * @generated
+ */
+ void setName(String newName, boolean updateContainer);
+
+ public RoundedRectangle getFigure();
+
+ public void setFigure(RoundedRectangle figure);
+
+} // RefactoringUnit
diff --git a/org.eclipse.emf.refactor.comrel/src/comrel/SequentialUnit.java b/org.eclipse.emf.refactor.comrel/src/comrel/SequentialUnit.java
new file mode 100644
index 0000000..5045daa
--- /dev/null
+++ b/org.eclipse.emf.refactor.comrel/src/comrel/SequentialUnit.java
@@ -0,0 +1,162 @@
+/**
+ * <copyright>
+ * </copyright>
+ *
+ * $Id$
+ */
+package comrel;
+
+import org.eclipse.emf.common.util.EList;
+
+/**
+ * <!-- begin-user-doc -->
+ * A representation of the model object '<em><b>Sequential Unit</b></em>'.
+ * <!-- end-user-doc -->
+ *
+ * <p>
+ * The following features are supported:
+ * <ul>
+ * <li>{@link comrel.SequentialUnit#getHelperUnits <em>Helper Units</em>}</li>
+ * <li>{@link comrel.SequentialUnit#getRefactoringUnits <em>Refactoring Units</em>}</li>
+ * <li>{@link comrel.SequentialUnit#getInputPorts <em>Input Ports</em>}</li>
+ * <li>{@link comrel.SequentialUnit#isStrict <em>Strict</em>}</li>
+ * <li>{@link comrel.SequentialUnit#getType <em>Type</em>}</li>
+ * <li>{@link comrel.SequentialUnit#getLblStrict <em>Lbl Strict</em>}</li>
+ * </ul>
+ * </p>
+ *
+ * @see comrel.ComrelPackage#getSequentialUnit()
+ * @model annotation="gmf.node foo='bar' label.icon='false' label='name,type,lblStrict' label.pattern='{0}:{1} -{2}-'"
+ * @generated
+ */
+public interface SequentialUnit extends CompositeUnit {
+ /**
+ * Returns the value of the '<em><b>Helper Units</b></em>' containment reference list.
+ * The list contents are of type {@link comrel.HelperUnit}.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of the '<em>Helper Units</em>' containment reference list isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @return the value of the '<em>Helper Units</em>' containment reference list.
+ * @see comrel.ComrelPackage#getSequentialUnit_HelperUnits()
+ * @model containment="true"
+ * annotation="gmf.compartment foo='bar'"
+ * @generated
+ */
+ EList<HelperUnit> getHelperUnits();
+
+ /**
+ * Returns the value of the '<em><b>Refactoring Units</b></em>' containment reference list.
+ * The list contents are of type {@link comrel.RefactoringUnit}.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of the '<em>Refactoring Units</em>' containment reference list isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @return the value of the '<em>Refactoring Units</em>' containment reference list.
+ * @see comrel.ComrelPackage#getSequentialUnit_RefactoringUnits()
+ * @model containment="true" required="true"
+ * annotation="gmf.compartment foo='bar'"
+ * @generated
+ */
+ EList<RefactoringUnit> getRefactoringUnits();
+
+ /**
+ * Returns the value of the '<em><b>Input Ports</b></em>' containment reference list.
+ * The list contents are of type {@link comrel.InputPort}.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of the '<em>Input Ports</em>' containment reference list isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @return the value of the '<em>Input Ports</em>' containment reference list.
+ * @see comrel.ComrelPackage#getSequentialUnit_InputPorts()
+ * @model containment="true" required="true"
+ * annotation="gmf.affixed foo='bar'"
+ * @generated
+ */
+ EList<InputPort> getInputPorts();
+
+ /**
+ * Returns the value of the '<em><b>Strict</b></em>' attribute.
+ * The default value is <code>"true"</code>.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of the '<em>Strict</em>' attribute isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @return the value of the '<em>Strict</em>' attribute.
+ * @see #setStrict(boolean)
+ * @see comrel.ComrelPackage#getSequentialUnit_Strict()
+ * @model default="true"
+ * @generated
+ */
+ boolean isStrict();
+
+ /**
+ * Sets the value of the '{@link comrel.SequentialUnit#isStrict <em>Strict</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @param value the new value of the '<em>Strict</em>' attribute.
+ * @see #isStrict()
+ * @generated
+ */
+ void setStrict(boolean value);
+
+ /**
+ * Returns the value of the '<em><b>Type</b></em>' attribute.
+ * The default value is <code>"Sequential Unit"</code>.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of the '<em>Type</em>' attribute isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @return the value of the '<em>Type</em>' attribute.
+ * @see comrel.ComrelPackage#getSequentialUnit_Type()
+ * @model default="Sequential Unit" changeable="false"
+ * @generated
+ */
+ String getType();
+
+ /**
+ * Returns the value of the '<em><b>Lbl Strict</b></em>' attribute.
+ * The default value is <code>"strict"</code>.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of the '<em>Lbl Strict</em>' attribute isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @return the value of the '<em>Lbl Strict</em>' attribute.
+ * @see #setLblStrict(String)
+ * @see comrel.ComrelPackage#getSequentialUnit_LblStrict()
+ * @model default="strict"
+ * @generated
+ */
+ String getLblStrict();
+
+ /**
+ * Sets the value of the '{@link comrel.SequentialUnit#getLblStrict <em>Lbl Strict</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @param value the new value of the '<em>Lbl Strict</em>' attribute.
+ * @see #getLblStrict()
+ * @generated
+ */
+ void setLblStrict(String value);
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @model
+ * @generated
+ */
+ void updateSeqExecutionOrder();
+
+} // SequentialUnit
diff --git a/org.eclipse.emf.refactor.comrel/src/comrel/SingleFeatureHelper.java b/org.eclipse.emf.refactor.comrel/src/comrel/SingleFeatureHelper.java
new file mode 100644
index 0000000..50dc0ba
--- /dev/null
+++ b/org.eclipse.emf.refactor.comrel/src/comrel/SingleFeatureHelper.java
@@ -0,0 +1,53 @@
+/**
+ * <copyright>
+ * </copyright>
+ *
+ * $Id$
+ */
+package comrel;
+
+
+/**
+ * <!-- begin-user-doc -->
+ * A representation of the model object '<em><b>Single Feature Helper</b></em>'.
+ * <!-- end-user-doc -->
+ *
+ * <p>
+ * The following features are supported:
+ * <ul>
+ * <li>{@link comrel.SingleFeatureHelper#getOutputPort <em>Output Port</em>}</li>
+ * </ul>
+ * </p>
+ *
+ * @see comrel.ComrelPackage#getSingleFeatureHelper()
+ * @model
+ * @generated
+ */
+public interface SingleFeatureHelper extends FeatureHelper {
+ /**
+ * Returns the value of the '<em><b>Output Port</b></em>' containment reference.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of the '<em>Output Port</em>' containment reference isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @return the value of the '<em>Output Port</em>' containment reference.
+ * @see #setOutputPort(SingleOutputPort)
+ * @see comrel.ComrelPackage#getSingleFeatureHelper_OutputPort()
+ * @model containment="true" required="true"
+ * @generated
+ */
+ SingleOutputPort getOutputPort();
+
+ /**
+ * Sets the value of the '{@link comrel.SingleFeatureHelper#getOutputPort <em>Output Port</em>}' containment reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @param value the new value of the '<em>Output Port</em>' containment reference.
+ * @see #getOutputPort()
+ * @generated
+ */
+ void setOutputPort(SingleOutputPort value);
+
+} // SingleFeatureHelper
diff --git a/org.eclipse.emf.refactor.comrel/src/comrel/SingleFeatureUnit.java b/org.eclipse.emf.refactor.comrel/src/comrel/SingleFeatureUnit.java
new file mode 100644
index 0000000..2120e32
--- /dev/null
+++ b/org.eclipse.emf.refactor.comrel/src/comrel/SingleFeatureUnit.java
@@ -0,0 +1,145 @@
+/**
+ * <copyright>
+ * </copyright>
+ *
+ * $Id$
+ */
+package comrel;
+
+import org.eclipse.emf.common.util.EList;
+
+/**
+ * <!-- begin-user-doc -->
+ * A representation of the model object '<em><b>Single Feature Unit</b></em>'.
+ * <!-- end-user-doc -->
+ *
+ * <p>
+ * The following features are supported:
+ * <ul>
+ * <li>{@link comrel.SingleFeatureUnit#getInputPort <em>Input Port</em>}</li>
+ * <li>{@link comrel.SingleFeatureUnit#getSecondaryInputPorts <em>Secondary Input Ports</em>}</li>
+ * <li>{@link comrel.SingleFeatureUnit#getOutputPort <em>Output Port</em>}</li>
+ * <li>{@link comrel.SingleFeatureUnit#getSingleFeatureHelper <em>Single Feature Helper</em>}</li>
+ * <li>{@link comrel.SingleFeatureUnit#getType <em>Type</em>}</li>
+ * </ul>
+ * </p>
+ *
+ * @see comrel.ComrelPackage#getSingleFeatureUnit()
+ * @model annotation="gmf.node foo='bar' label.icon='false' label='name,type' label.pattern='{0}:{1}'"
+ * @generated
+ */
+public interface SingleFeatureUnit extends FeatureUnit {
+ /**
+ * Returns the value of the '<em><b>Input Port</b></em>' containment reference.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of the '<em>Input Port</em>' containment reference isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @return the value of the '<em>Input Port</em>' containment reference.
+ * @see #setInputPort(SingleInputPort)
+ * @see comrel.ComrelPackage#getSingleFeatureUnit_InputPort()
+ * @model containment="true" required="true"
+ * annotation="gmf.affixed foo='bar'"
+ * @generated
+ */
+ SingleInputPort getInputPort();
+
+ /**
+ * Sets the value of the '{@link comrel.SingleFeatureUnit#getInputPort <em>Input Port</em>}' containment reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @param value the new value of the '<em>Input Port</em>' containment reference.
+ * @see #getInputPort()
+ * @generated
+ */
+ void setInputPort(SingleInputPort value);
+
+ /**
+ * Returns the value of the '<em><b>Secondary Input Ports</b></em>' containment reference list.
+ * The list contents are of type {@link comrel.MultiInputPort}.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of the '<em>Secondary Input Ports</em>' containment reference list isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @return the value of the '<em>Secondary Input Ports</em>' containment reference list.
+ * @see comrel.ComrelPackage#getSingleFeatureUnit_SecondaryInputPorts()
+ * @model containment="true"
+ * annotation="gmf.affixed foo='bar'"
+ * @generated
+ */
+ EList<MultiInputPort> getSecondaryInputPorts();
+
+ /**
+ * Returns the value of the '<em><b>Output Port</b></em>' containment reference.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of the '<em>Output Port</em>' containment reference isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @return the value of the '<em>Output Port</em>' containment reference.
+ * @see #setOutputPort(SingleOutputPort)
+ * @see comrel.ComrelPackage#getSingleFeatureUnit_OutputPort()
+ * @model containment="true" required="true"
+ * annotation="gmf.affixed foo='bar'"
+ * @generated
+ */
+ SingleOutputPort getOutputPort();
+
+ /**
+ * Sets the value of the '{@link comrel.SingleFeatureUnit#getOutputPort <em>Output Port</em>}' containment reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @param value the new value of the '<em>Output Port</em>' containment reference.
+ * @see #getOutputPort()
+ * @generated
+ */
+ void setOutputPort(SingleOutputPort value);
+
+ /**
+ * Returns the value of the '<em><b>Single Feature Helper</b></em>' reference.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of the '<em>Single Feature Helper</em>' reference isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @return the value of the '<em>Single Feature Helper</em>' reference.
+ * @see #setSingleFeatureHelper(SingleFeatureHelper)
+ * @see comrel.ComrelPackage#getSingleFeatureUnit_SingleFeatureHelper()
+ * @model required="true"
+ * @generated
+ */
+ SingleFeatureHelper getSingleFeatureHelper();
+
+ /**
+ * Sets the value of the '{@link comrel.SingleFeatureUnit#getSingleFeatureHelper <em>Single Feature Helper</em>}' reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @param value the new value of the '<em>Single Feature Helper</em>' reference.
+ * @see #getSingleFeatureHelper()
+ * @generated
+ */
+ void setSingleFeatureHelper(SingleFeatureHelper value);
+
+ /**
+ * Returns the value of the '<em><b>Type</b></em>' attribute.
+ * The default value is <code>"Single Feature Unit"</code>.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of the '<em>Type</em>' attribute isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @return the value of the '<em>Type</em>' attribute.
+ * @see comrel.ComrelPackage#getSingleFeatureUnit_Type()
+ * @model default="Single Feature Unit" changeable="false"
+ * @generated
+ */
+ String getType();
+
+} // SingleFeatureUnit
diff --git a/org.eclipse.emf.refactor.comrel/src/comrel/SingleFilterHelper.java b/org.eclipse.emf.refactor.comrel/src/comrel/SingleFilterHelper.java
new file mode 100644
index 0000000..4d00901
--- /dev/null
+++ b/org.eclipse.emf.refactor.comrel/src/comrel/SingleFilterHelper.java
@@ -0,0 +1,53 @@
+/**
+ * <copyright>
+ * </copyright>
+ *
+ * $Id$
+ */
+package comrel;
+
+
+/**
+ * <!-- begin-user-doc -->
+ * A representation of the model object '<em><b>Single Filter Helper</b></em>'.
+ * <!-- end-user-doc -->
+ *
+ * <p>
+ * The following features are supported:
+ * <ul>
+ * <li>{@link comrel.SingleFilterHelper#getOutputPort <em>Output Port</em>}</li>
+ * </ul>
+ * </p>
+ *
+ * @see comrel.ComrelPackage#getSingleFilterHelper()
+ * @model
+ * @generated
+ */
+public interface SingleFilterHelper extends FilterHelper {
+ /**
+ * Returns the value of the '<em><b>Output Port</b></em>' containment reference.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of the '<em>Output Port</em>' containment reference isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @return the value of the '<em>Output Port</em>' containment reference.
+ * @see #setOutputPort(SingleOutputPort)
+ * @see comrel.ComrelPackage#getSingleFilterHelper_OutputPort()
+ * @model containment="true" required="true"
+ * @generated
+ */
+ SingleOutputPort getOutputPort();
+
+ /**
+ * Sets the value of the '{@link comrel.SingleFilterHelper#getOutputPort <em>Output Port</em>}' containment reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @param value the new value of the '<em>Output Port</em>' containment reference.
+ * @see #getOutputPort()
+ * @generated
+ */
+ void setOutputPort(SingleOutputPort value);
+
+} // SingleFilterHelper
diff --git a/org.eclipse.emf.refactor.comrel/src/comrel/SingleFilterUnit.java b/org.eclipse.emf.refactor.comrel/src/comrel/SingleFilterUnit.java
new file mode 100644
index 0000000..d5ed827
--- /dev/null
+++ b/org.eclipse.emf.refactor.comrel/src/comrel/SingleFilterUnit.java
@@ -0,0 +1,126 @@
+/**
+ * <copyright>
+ * </copyright>
+ *
+ * $Id$
+ */
+package comrel;
+
+
+/**
+ * <!-- begin-user-doc -->
+ * A representation of the model object '<em><b>Single Filter Unit</b></em>'.
+ * <!-- end-user-doc -->
+ *
+ * <p>
+ * The following features are supported:
+ * <ul>
+ * <li>{@link comrel.SingleFilterUnit#getInputPort <em>Input Port</em>}</li>
+ * <li>{@link comrel.SingleFilterUnit#getOutputPort <em>Output Port</em>}</li>
+ * <li>{@link comrel.SingleFilterUnit#getSingleFilterHelper <em>Single Filter Helper</em>}</li>
+ * <li>{@link comrel.SingleFilterUnit#getType <em>Type</em>}</li>
+ * </ul>
+ * </p>
+ *
+ * @see comrel.ComrelPackage#getSingleFilterUnit()
+ * @model annotation="gmf.node foo='bar' label.icon='false' label='name,type' label.pattern='{0}:{1}'"
+ * @generated
+ */
+public interface SingleFilterUnit extends FilterUnit {
+ /**
+ * Returns the value of the '<em><b>Input Port</b></em>' containment reference.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of the '<em>Input Port</em>' containment reference isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @return the value of the '<em>Input Port</em>' containment reference.
+ * @see #setInputPort(MultiInputPort)
+ * @see comrel.ComrelPackage#getSingleFilterUnit_InputPort()
+ * @model containment="true" required="true"
+ * annotation="gmf.affixed foo='bar'"
+ * @generated
+ */
+ MultiInputPort getInputPort();
+
+ /**
+ * Sets the value of the '{@link comrel.SingleFilterUnit#getInputPort <em>Input Port</em>}' containment reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @param value the new value of the '<em>Input Port</em>' containment reference.
+ * @see #getInputPort()
+ * @generated
+ */
+ void setInputPort(MultiInputPort value);
+
+ /**
+ * Returns the value of the '<em><b>Output Port</b></em>' containment reference.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of the '<em>Output Port</em>' containment reference isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @return the value of the '<em>Output Port</em>' containment reference.
+ * @see #setOutputPort(SingleOutputPort)
+ * @see comrel.ComrelPackage#getSingleFilterUnit_OutputPort()
+ * @model containment="true" required="true"
+ * annotation="gmf.affixed foo='bar'"
+ * @generated
+ */
+ SingleOutputPort getOutputPort();
+
+ /**
+ * Sets the value of the '{@link comrel.SingleFilterUnit#getOutputPort <em>Output Port</em>}' containment reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @param value the new value of the '<em>Output Port</em>' containment reference.
+ * @see #getOutputPort()
+ * @generated
+ */
+ void setOutputPort(SingleOutputPort value);
+
+ /**
+ * Returns the value of the '<em><b>Single Filter Helper</b></em>' reference.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of the '<em>Single Filter Helper</em>' reference isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @return the value of the '<em>Single Filter Helper</em>' reference.
+ * @see #setSingleFilterHelper(SingleFilterHelper)
+ * @see comrel.ComrelPackage#getSingleFilterUnit_SingleFilterHelper()
+ * @model required="true"
+ * @generated
+ */
+ SingleFilterHelper getSingleFilterHelper();
+
+ /**
+ * Sets the value of the '{@link comrel.SingleFilterUnit#getSingleFilterHelper <em>Single Filter Helper</em>}' reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @param value the new value of the '<em>Single Filter Helper</em>' reference.
+ * @see #getSingleFilterHelper()
+ * @generated
+ */
+ void setSingleFilterHelper(SingleFilterHelper value);
+
+ /**
+ * Returns the value of the '<em><b>Type</b></em>' attribute.
+ * The default value is <code>"Single Filter Unit"</code>.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of the '<em>Type</em>' attribute isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @return the value of the '<em>Type</em>' attribute.
+ * @see comrel.ComrelPackage#getSingleFilterUnit_Type()
+ * @model default="Single Filter Unit" changeable="false"
+ * @generated
+ */
+ String getType();
+
+} // SingleFilterUnit
diff --git a/org.eclipse.emf.refactor.comrel/src/comrel/SingleInputPort.java b/org.eclipse.emf.refactor.comrel/src/comrel/SingleInputPort.java
new file mode 100644
index 0000000..f508f57
--- /dev/null
+++ b/org.eclipse.emf.refactor.comrel/src/comrel/SingleInputPort.java
@@ -0,0 +1,21 @@
+/**
+ * <copyright>
+ * </copyright>
+ *
+ * $Id$
+ */
+package comrel;
+
+
+/**
+ * <!-- begin-user-doc -->
+ * A representation of the model object '<em><b>Single Input Port</b></em>'.
+ * <!-- end-user-doc -->
+ *
+ *
+ * @see comrel.ComrelPackage#getSingleInputPort()
+ * @model
+ * @generated
+ */
+public interface SingleInputPort extends SinglePort, InputPort {
+} // SingleInputPort
diff --git a/org.eclipse.emf.refactor.comrel/src/comrel/SingleOutputPort.java b/org.eclipse.emf.refactor.comrel/src/comrel/SingleOutputPort.java
new file mode 100644
index 0000000..accf552
--- /dev/null
+++ b/org.eclipse.emf.refactor.comrel/src/comrel/SingleOutputPort.java
@@ -0,0 +1,21 @@
+/**
+ * <copyright>
+ * </copyright>
+ *
+ * $Id$
+ */
+package comrel;
+
+
+/**
+ * <!-- begin-user-doc -->
+ * A representation of the model object '<em><b>Single Output Port</b></em>'.
+ * <!-- end-user-doc -->
+ *
+ *
+ * @see comrel.ComrelPackage#getSingleOutputPort()
+ * @model
+ * @generated
+ */
+public interface SingleOutputPort extends SinglePort, OutputPort {
+} // SingleOutputPort
diff --git a/org.eclipse.emf.refactor.comrel/src/comrel/SinglePort.java b/org.eclipse.emf.refactor.comrel/src/comrel/SinglePort.java
new file mode 100644
index 0000000..e3ccbd3
--- /dev/null
+++ b/org.eclipse.emf.refactor.comrel/src/comrel/SinglePort.java
@@ -0,0 +1,53 @@
+/**
+ * <copyright>
+ * </copyright>
+ *
+ * $Id$
+ */
+package comrel;
+
+
+/**
+ * <!-- begin-user-doc -->
+ * A representation of the model object '<em><b>Single Port</b></em>'.
+ * <!-- end-user-doc -->
+ *
+ * <p>
+ * The following features are supported:
+ * <ul>
+ * <li>{@link comrel.SinglePort#getValue <em>Value</em>}</li>
+ * </ul>
+ * </p>
+ *
+ * @see comrel.ComrelPackage#getSinglePort()
+ * @model abstract="true"
+ * @generated
+ */
+public interface SinglePort extends Port {
+ /**
+ * Returns the value of the '<em><b>Value</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of the '<em>Value</em>' attribute isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @return the value of the '<em>Value</em>' attribute.
+ * @see #setValue(Object)
+ * @see comrel.ComrelPackage#getSinglePort_Value()
+ * @model
+ * @generated
+ */
+ Object getValue();
+
+ /**
+ * Sets the value of the '{@link comrel.SinglePort#getValue <em>Value</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @param value the new value of the '<em>Value</em>' attribute.
+ * @see #getValue()
+ * @generated
+ */
+ void setValue(Object value);
+
+} // SinglePort
diff --git a/org.eclipse.emf.refactor.comrel/src/comrel/SinglePortMapping.java b/org.eclipse.emf.refactor.comrel/src/comrel/SinglePortMapping.java
new file mode 100644
index 0000000..46490ce
--- /dev/null
+++ b/org.eclipse.emf.refactor.comrel/src/comrel/SinglePortMapping.java
@@ -0,0 +1,80 @@
+/**
+ * <copyright>
+ * </copyright>
+ *
+ * $Id$
+ */
+package comrel;
+
+
+/**
+ * <!-- begin-user-doc -->
+ * A representation of the model object '<em><b>Single Port Mapping</b></em>'.
+ * <!-- end-user-doc -->
+ *
+ * <p>
+ * The following features are supported:
+ * <ul>
+ * <li>{@link comrel.SinglePortMapping#getSource <em>Source</em>}</li>
+ * <li>{@link comrel.SinglePortMapping#getTarget <em>Target</em>}</li>
+ * </ul>
+ * </p>
+ *
+ * @see comrel.ComrelPackage#getSinglePortMapping()
+ * @model annotation="gmf.link source='source' target='target' style='dot' width='2' target.decoration='arrow'"
+ * @generated
+ */
+public interface SinglePortMapping extends PortMapping {
+ /**
+ * Returns the value of the '<em><b>Source</b></em>' reference.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of the '<em>Source</em>' reference isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @return the value of the '<em>Source</em>' reference.
+ * @see #setSource(SinglePort)
+ * @see comrel.ComrelPackage#getSinglePortMapping_Source()
+ * @model
+ * @generated
+ */
+ SinglePort getSource();
+
+ /**
+ * Sets the value of the '{@link comrel.SinglePortMapping#getSource <em>Source</em>}' reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @param value the new value of the '<em>Source</em>' reference.
+ * @see #getSource()
+ * @generated
+ */
+ void setSource(SinglePort value);
+
+ /**
+ * Returns the value of the '<em><b>Target</b></em>' reference.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of the '<em>Target</em>' reference isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @return the value of the '<em>Target</em>' reference.
+ * @see #setTarget(SingleInputPort)
+ * @see comrel.ComrelPackage#getSinglePortMapping_Target()
+ * @model
+ * @generated
+ */
+ SingleInputPort getTarget();
+
+ /**
+ * Sets the value of the '{@link comrel.SinglePortMapping#getTarget <em>Target</em>}' reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @param value the new value of the '<em>Target</em>' reference.
+ * @see #getTarget()
+ * @generated
+ */
+ void setTarget(SingleInputPort value);
+
+} // SinglePortMapping
diff --git a/org.eclipse.emf.refactor.comrel/src/comrel/SingleQueuedUnit.java b/org.eclipse.emf.refactor.comrel/src/comrel/SingleQueuedUnit.java
new file mode 100644
index 0000000..7b1428d
--- /dev/null
+++ b/org.eclipse.emf.refactor.comrel/src/comrel/SingleQueuedUnit.java
@@ -0,0 +1,164 @@
+/**
+ * <copyright>
+ * </copyright>
+ *
+ * $Id$
+ */
+package comrel;
+
+import org.eclipse.emf.common.util.EList;
+
+/**
+ * <!-- begin-user-doc -->
+ * A representation of the model object '<em><b>Single Queued Unit</b></em>'.
+ * <!-- end-user-doc -->
+ *
+ * <p>
+ * The following features are supported:
+ * <ul>
+ * <li>{@link comrel.SingleQueuedUnit#getHelperUnits <em>Helper Units</em>}</li>
+ * <li>{@link comrel.SingleQueuedUnit#getRefactoringUnit <em>Refactoring Unit</em>}</li>
+ * <li>{@link comrel.SingleQueuedUnit#getSingleInputPorts <em>Single Input Ports</em>}</li>
+ * <li>{@link comrel.SingleQueuedUnit#getMultiInputPort <em>Multi Input Port</em>}</li>
+ * <li>{@link comrel.SingleQueuedUnit#getType <em>Type</em>}</li>
+ * <li>{@link comrel.SingleQueuedUnit#getLblStrict <em>Lbl Strict</em>}</li>
+ * </ul>
+ * </p>
+ *
+ * @see comrel.ComrelPackage#getSingleQueuedUnit()
+ * @model annotation="gmf.node foo='bar' label.icon='false' label='name,type,lblStrict' label.pattern='{0}:{1} -{2}-'"
+ * @generated
+ */
+public interface SingleQueuedUnit extends QueuedUnit {
+ /**
+ * Returns the value of the '<em><b>Helper Units</b></em>' containment reference list.
+ * The list contents are of type {@link comrel.HelperUnit}.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of the '<em>Helper Units</em>' containment reference list isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @return the value of the '<em>Helper Units</em>' containment reference list.
+ * @see comrel.ComrelPackage#getSingleQueuedUnit_HelperUnits()
+ * @model containment="true"
+ * annotation="gmf.compartment foo='bar'"
+ * @generated
+ */
+ EList<HelperUnit> getHelperUnits();
+
+ /**
+ * Returns the value of the '<em><b>Refactoring Unit</b></em>' containment reference.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of the '<em>Refactoring Unit</em>' containment reference isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @return the value of the '<em>Refactoring Unit</em>' containment reference.
+ * @see #setRefactoringUnit(RefactoringUnit)
+ * @see comrel.ComrelPackage#getSingleQueuedUnit_RefactoringUnit()
+ * @model containment="true" required="true"
+ * annotation="gmf.compartment foo='bar'"
+ * @generated
+ */
+ RefactoringUnit getRefactoringUnit();
+
+ /**
+ * Sets the value of the '{@link comrel.SingleQueuedUnit#getRefactoringUnit <em>Refactoring Unit</em>}' containment reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @param value the new value of the '<em>Refactoring Unit</em>' containment reference.
+ * @see #getRefactoringUnit()
+ * @generated
+ */
+ void setRefactoringUnit(RefactoringUnit value);
+
+ /**
+ * Returns the value of the '<em><b>Single Input Ports</b></em>' containment reference list.
+ * The list contents are of type {@link comrel.SingleInputPort}.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of the '<em>Single Input Ports</em>' containment reference list isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @return the value of the '<em>Single Input Ports</em>' containment reference list.
+ * @see comrel.ComrelPackage#getSingleQueuedUnit_SingleInputPorts()
+ * @model containment="true"
+ * annotation="gmf.affixed foo='bar'"
+ * @generated
+ */
+ EList<SingleInputPort> getSingleInputPorts();
+
+ /**
+ * Returns the value of the '<em><b>Multi Input Port</b></em>' containment reference.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of the '<em>Multi Input Port</em>' containment reference isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @return the value of the '<em>Multi Input Port</em>' containment reference.
+ * @see #setMultiInputPort(MultiInputPort)
+ * @see comrel.ComrelPackage#getSingleQueuedUnit_MultiInputPort()
+ * @model containment="true" required="true"
+ * annotation="gmf.affixed foo='bar'"
+ * @generated
+ */
+ MultiInputPort getMultiInputPort();
+
+ /**
+ * Sets the value of the '{@link comrel.SingleQueuedUnit#getMultiInputPort <em>Multi Input Port</em>}' containment reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @param value the new value of the '<em>Multi Input Port</em>' containment reference.
+ * @see #getMultiInputPort()
+ * @generated
+ */
+ void setMultiInputPort(MultiInputPort value);
+
+ /**
+ * Returns the value of the '<em><b>Type</b></em>' attribute.
+ * The default value is <code>"Single Queued Unit"</code>.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of the '<em>Type</em>' attribute isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @return the value of the '<em>Type</em>' attribute.
+ * @see comrel.ComrelPackage#getSingleQueuedUnit_Type()
+ * @model default="Single Queued Unit" changeable="false"
+ * @generated
+ */
+ String getType();
+
+ /**
+ * Returns the value of the '<em><b>Lbl Strict</b></em>' attribute.
+ * The default value is <code>"strict"</code>.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of the '<em>Lbl Strict</em>' attribute isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @return the value of the '<em>Lbl Strict</em>' attribute.
+ * @see #setLblStrict(String)
+ * @see comrel.ComrelPackage#getSingleQueuedUnit_LblStrict()
+ * @model default="strict"
+ * @generated
+ */
+ String getLblStrict();
+
+ /**
+ * Sets the value of the '{@link comrel.SingleQueuedUnit#getLblStrict <em>Lbl Strict</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @param value the new value of the '<em>Lbl Strict</em>' attribute.
+ * @see #getLblStrict()
+ * @generated
+ */
+ void setLblStrict(String value);
+
+} // SingleQueuedUnit
diff --git a/org.eclipse.emf.refactor.comrel/src/comrel/TwicedQueuedUnit.java b/org.eclipse.emf.refactor.comrel/src/comrel/TwicedQueuedUnit.java
new file mode 100644
index 0000000..856f948
--- /dev/null
+++ b/org.eclipse.emf.refactor.comrel/src/comrel/TwicedQueuedUnit.java
@@ -0,0 +1,21 @@
+/**
+ * <copyright>
+ * </copyright>
+ *
+ * $Id$
+ */
+package comrel;
+
+
+/**
+ * <!-- begin-user-doc -->
+ * A representation of the model object '<em><b>Twiced Queued Unit</b></em>'.
+ * <!-- end-user-doc -->
+ *
+ *
+ * @see comrel.ComrelPackage#getTwicedQueuedUnit()
+ * @model abstract="true"
+ * @generated
+ */
+public interface TwicedQueuedUnit extends QueuedUnit {
+} // TwicedQueuedUnit
diff --git a/org.eclipse.emf.refactor.comrel/src/comrel/extensions/IMultiFeatureHelper.java b/org.eclipse.emf.refactor.comrel/src/comrel/extensions/IMultiFeatureHelper.java
new file mode 100644
index 0000000..c2ebe7e
--- /dev/null
+++ b/org.eclipse.emf.refactor.comrel/src/comrel/extensions/IMultiFeatureHelper.java
@@ -0,0 +1,23 @@
+/**
+ *
+ */
+package comrel.extensions;
+
+import comrel.MultiOutputPort;
+import comrel.SingleInputPort;
+
+/**
+ * @author arendt
+ *
+ */
+public interface IMultiFeatureHelper {
+
+
+
+ public SingleInputPort getInputPort();
+
+ public MultiOutputPort getOutputPort();
+
+ public void run();
+
+}
diff --git a/org.eclipse.emf.refactor.comrel/src/comrel/extensions/IMultiFilterHelper.java b/org.eclipse.emf.refactor.comrel/src/comrel/extensions/IMultiFilterHelper.java
new file mode 100644
index 0000000..693027c
--- /dev/null
+++ b/org.eclipse.emf.refactor.comrel/src/comrel/extensions/IMultiFilterHelper.java
@@ -0,0 +1,21 @@
+/**
+ *
+ */
+package comrel.extensions;
+
+import comrel.MultiInputPort;
+import comrel.MultiOutputPort;
+
+/**
+ * @author arendt
+ *
+ */
+public interface IMultiFilterHelper {
+
+ public MultiInputPort getInputPort();
+
+ public MultiOutputPort getOutputPort();
+
+ public void run();
+
+}
diff --git a/org.eclipse.emf.refactor.comrel/src/comrel/extensions/ISingleFeatureHelper.java b/org.eclipse.emf.refactor.comrel/src/comrel/extensions/ISingleFeatureHelper.java
new file mode 100644
index 0000000..341412f
--- /dev/null
+++ b/org.eclipse.emf.refactor.comrel/src/comrel/extensions/ISingleFeatureHelper.java
@@ -0,0 +1,21 @@
+/**
+ *
+ */
+package comrel.extensions;
+
+import comrel.SingleInputPort;
+import comrel.SingleOutputPort;
+
+/**
+ * @author arendt
+ *
+ */
+public interface ISingleFeatureHelper {
+
+ public SingleInputPort getInputPort();
+
+ public SingleOutputPort getOutputPort();
+
+ public void run();
+
+}
diff --git a/org.eclipse.emf.refactor.comrel/src/comrel/extensions/ISingleFilterHelper.java b/org.eclipse.emf.refactor.comrel/src/comrel/extensions/ISingleFilterHelper.java
new file mode 100644
index 0000000..87c30db
--- /dev/null
+++ b/org.eclipse.emf.refactor.comrel/src/comrel/extensions/ISingleFilterHelper.java
@@ -0,0 +1,21 @@
+/**
+ *
+ */
+package comrel.extensions;
+
+import comrel.MultiInputPort;
+import comrel.SingleOutputPort;
+
+/**
+ * @author arendt
+ *
+ */
+public interface ISingleFilterHelper {
+
+ public MultiInputPort getInputPort();
+
+ public SingleOutputPort getOutputPort();
+
+ public void run();
+
+}
diff --git a/org.eclipse.emf.refactor.comrel/src/comrel/figures/InputPortFigure.java b/org.eclipse.emf.refactor.comrel/src/comrel/figures/InputPortFigure.java
new file mode 100644
index 0000000..3a7e84a
--- /dev/null
+++ b/org.eclipse.emf.refactor.comrel/src/comrel/figures/InputPortFigure.java
@@ -0,0 +1,63 @@
+package comrel.figures;
+
+
+
+import org.eclipse.draw2d.Label;
+import org.eclipse.draw2d.RectangleFigure;
+import org.eclipse.swt.SWT;
+import org.eclipse.swt.graphics.Font;
+import org.eclipse.swt.graphics.FontData;
+
+import comrel.InputPort;
+
+public abstract class InputPortFigure extends RectangleFigure {
+
+ private InputPort port;
+ private Label portLabel=null;
+
+ public InputPort getPort() {
+ return port;
+ }
+
+ public void setPort(InputPort port) {
+ this.port = port;
+ this.port.setFigure(this);
+// updateFigure();
+ }
+
+ public void setLabel(String text){
+ if(portLabel == null) {
+ portLabel = new Label();
+ portLabel.setSize(this.getMinimumSize());
+ this.removeAll();
+ FontData fd = new FontData();
+ fd.setHeight(5);
+ fd.setStyle(SWT.NORMAL);
+ Font f = new Font(null, fd);
+ portLabel.setFont(f);
+ this.add(portLabel);
+ }
+ portLabel.setVisible(true);
+ portLabel.setEnabled(true);
+ portLabel.setText(text);
+ }
+
+ public Label getLabel() {
+ return portLabel;
+ }
+
+ public void updateFigure() {
+ if (port != null) {
+ String name = port.getName();
+ Class type = port.getType();
+ String typeName = "";
+ if(name == null) {
+ name = "";
+ }
+ if (type != null) {
+ typeName = type.getSimpleName();
+ }
+ setLabel(name + ":" + typeName);
+ }
+ }
+}
diff --git a/org.eclipse.emf.refactor.comrel/src/comrel/figures/OutputPortFigure.java b/org.eclipse.emf.refactor.comrel/src/comrel/figures/OutputPortFigure.java
new file mode 100644
index 0000000..c8e4a49
--- /dev/null
+++ b/org.eclipse.emf.refactor.comrel/src/comrel/figures/OutputPortFigure.java
@@ -0,0 +1,63 @@
+package comrel.figures;
+
+import org.eclipse.draw2d.Ellipse;
+import org.eclipse.draw2d.Label;
+import org.eclipse.swt.SWT;
+import org.eclipse.swt.graphics.Font;
+import org.eclipse.swt.graphics.FontData;
+
+import comrel.OutputPort;
+
+public abstract class OutputPortFigure extends Ellipse{
+ private OutputPort port;
+ private Label portLabel;
+
+ public OutputPort getPort() {
+ return port;
+ }
+
+
+ public void setPort(OutputPort port) {
+ this.port = port;
+ this.port.setFigure(this);
+ updateFigure();
+ }
+
+ public void setLabel(String text){
+ if(portLabel == null) {
+ portLabel = new Label();
+ portLabel.setSize(this.getMinimumSize());
+ this.removeAll();
+ FontData fd = new FontData();
+ fd.setHeight(5);
+ fd.setStyle(SWT.NORMAL);
+ Font f = new Font(null, fd);
+
+ portLabel.setFont(f);
+ this.add(portLabel);
+ }
+ portLabel.setVisible(true);
+ portLabel.setEnabled(true);
+ portLabel.setText(text);
+ }
+
+ public Label getLabel() {
+ return portLabel;
+ }
+
+
+ public void updateFigure() {
+ if (port != null) {
+ String name = port.getName();
+ Class type = port.getType();
+ String typeName = "";
+ if(name == null) {
+ name = "";
+ }
+ if (type != null) {
+ typeName = type.getSimpleName();
+ }
+ setLabel(name + ":" + typeName);
+ }
+ }
+}
diff --git a/org.eclipse.emf.refactor.comrel/src/comrel/figures/PortMappingFigure.java b/org.eclipse.emf.refactor.comrel/src/comrel/figures/PortMappingFigure.java
new file mode 100644
index 0000000..6ff2daf
--- /dev/null
+++ b/org.eclipse.emf.refactor.comrel/src/comrel/figures/PortMappingFigure.java
@@ -0,0 +1,21 @@
+package comrel.figures;
+
+
+import org.eclipse.gmf.runtime.draw2d.ui.figures.PolylineConnectionEx;
+
+import comrel.PortMapping;
+
+public class PortMappingFigure extends PolylineConnectionEx {
+
+ PortMapping mapping;
+
+ public PortMapping getMapping() {
+ return mapping;
+ }
+
+ public void setMapping(PortMapping mapping) {
+ this.mapping = mapping;
+ mapping.setFigure(this);
+ }
+
+}
\ No newline at end of file
diff --git a/org.eclipse.emf.refactor.comrel/src/comrel/impl/AtomicUnitImpl.java b/org.eclipse.emf.refactor.comrel/src/comrel/impl/AtomicUnitImpl.java
new file mode 100644
index 0000000..626f68c
--- /dev/null
+++ b/org.eclipse.emf.refactor.comrel/src/comrel/impl/AtomicUnitImpl.java
@@ -0,0 +1,580 @@
+/**
+ * <copyright>
+ * </copyright>
+ *
+ * $Id$
+ */
+package comrel.impl;
+
+import java.util.Collection;
+
+import org.eclipse.emf.common.notify.Notification;
+import org.eclipse.emf.common.notify.NotificationChain;
+import org.eclipse.emf.common.util.BasicEList;
+import org.eclipse.emf.common.util.EList;
+import org.eclipse.emf.ecore.EClass;
+import org.eclipse.emf.ecore.InternalEObject;
+import org.eclipse.emf.ecore.impl.ENotificationImpl;
+import org.eclipse.emf.ecore.util.EObjectContainmentEList;
+import org.eclipse.emf.ecore.util.InternalEList;
+
+import comrel.AtomicUnit;
+import comrel.ComrelFactory;
+import comrel.ComrelPackage;
+import comrel.InputPort;
+import comrel.ModelRefactoring;
+import comrel.SingleInputPort;
+import comrel.util.ComrelUtil;
+
+/**
+ * <!-- begin-user-doc -->
+ * An implementation of the model object '<em><b>Atomic Unit</b></em>'.
+ * <!-- end-user-doc -->
+ * <p>
+ * The following features are implemented:
+ * <ul>
+ * <li>{@link comrel.impl.AtomicUnitImpl#getInputPorts <em>Input Ports</em>}</li>
+ * <li>{@link comrel.impl.AtomicUnitImpl#getUnitId <em>Unit Id</em>}</li>
+ * <li>{@link comrel.impl.AtomicUnitImpl#getLabel <em>Label</em>}</li>
+ * <li>{@link comrel.impl.AtomicUnitImpl#getNamespaceUri <em>Namespace Uri</em>}</li>
+ * <li>{@link comrel.impl.AtomicUnitImpl#getType <em>Type</em>}</li>
+ * <li>{@link comrel.impl.AtomicUnitImpl#getModelRefactoring <em>Model Refactoring</em>}</li>
+ * <li>{@link comrel.impl.AtomicUnitImpl#isCheckInitialConditionFlag <em>Check Initial Condition Flag</em>}</li>
+ * <li>{@link comrel.impl.AtomicUnitImpl#isCheckFinalConditionFlag <em>Check Final Condition Flag</em>}</li>
+ * </ul>
+ * </p>
+ *
+ * @generated
+ */
+public class AtomicUnitImpl extends RefactoringUnitImpl implements AtomicUnit {
+ /**
+ * The cached value of the '{@link #getInputPorts() <em>Input Ports</em>}' containment reference list.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getInputPorts()
+ * @generated
+ * @ordered
+ */
+ protected EList<SingleInputPort> inputPorts;
+
+ /**
+ * The default value of the '{@link #getUnitId() <em>Unit Id</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getUnitId()
+ * @generated
+ * @ordered
+ */
+ protected static final String UNIT_ID_EDEFAULT = null;
+
+ /**
+ * The cached value of the '{@link #getUnitId() <em>Unit Id</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getUnitId()
+ * @generated
+ * @ordered
+ */
+ protected String unitId = UNIT_ID_EDEFAULT;
+
+ /**
+ * The default value of the '{@link #getLabel() <em>Label</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getLabel()
+ * @generated
+ * @ordered
+ */
+ protected static final String LABEL_EDEFAULT = null;
+
+ /**
+ * The cached value of the '{@link #getLabel() <em>Label</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getLabel()
+ * @generated
+ * @ordered
+ */
+ protected String label = LABEL_EDEFAULT;
+
+ /**
+ * The default value of the '{@link #getNamespaceUri() <em>Namespace Uri</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getNamespaceUri()
+ * @generated
+ * @ordered
+ */
+ protected static final String NAMESPACE_URI_EDEFAULT = null;
+
+ /**
+ * The cached value of the '{@link #getNamespaceUri() <em>Namespace Uri</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getNamespaceUri()
+ * @generated
+ * @ordered
+ */
+ protected String namespaceUri = NAMESPACE_URI_EDEFAULT;
+
+ /**
+ * The default value of the '{@link #getType() <em>Type</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getType()
+ * @generated
+ * @ordered
+ */
+ protected static final String TYPE_EDEFAULT = "Atomic Unit";
+
+ /**
+ * The cached value of the '{@link #getType() <em>Type</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getType()
+ * @generated
+ * @ordered
+ */
+ protected String type = TYPE_EDEFAULT;
+
+ /**
+ * The cached value of the '{@link #getModelRefactoring() <em>Model Refactoring</em>}' reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getModelRefactoring()
+ * @generated
+ * @ordered
+ */
+ protected ModelRefactoring modelRefactoring;
+
+ /**
+ * The default value of the '{@link #isCheckInitialConditionFlag() <em>Check Initial Condition Flag</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #isCheckInitialConditionFlag()
+ * @generated
+ * @ordered
+ */
+ protected static final boolean CHECK_INITIAL_CONDITION_FLAG_EDEFAULT = false;
+
+ /**
+ * The cached value of the '{@link #isCheckInitialConditionFlag() <em>Check Initial Condition Flag</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #isCheckInitialConditionFlag()
+ * @generated
+ * @ordered
+ */
+ protected boolean checkInitialConditionFlag = CHECK_INITIAL_CONDITION_FLAG_EDEFAULT;
+
+ /**
+ * The default value of the '{@link #isCheckFinalConditionFlag() <em>Check Final Condition Flag</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #isCheckFinalConditionFlag()
+ * @generated
+ * @ordered
+ */
+ protected static final boolean CHECK_FINAL_CONDITION_FLAG_EDEFAULT = false;
+
+ /**
+ * The cached value of the '{@link #isCheckFinalConditionFlag() <em>Check Final Condition Flag</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #isCheckFinalConditionFlag()
+ * @generated
+ * @ordered
+ */
+ protected boolean checkFinalConditionFlag = CHECK_FINAL_CONDITION_FLAG_EDEFAULT;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected AtomicUnitImpl() {
+ super();
+ }
+
+ public AtomicUnitImpl(ModelRefactoring refactoring) {
+ super();
+ System.out.println("Konstruktor: AtomicUnitImpl(ModelRefactoring refactoring)");
+ ComrelFactory factory = ComrelFactory.eINSTANCE;
+
+ this.modelRefactoring = refactoring;
+ System.out.println("modelRefactoring: " + modelRefactoring);
+ this.unitId = new String(refactoring.getRefId());
+ this.name = new String(refactoring.getName());
+ this.label = new String(refactoring.getName());
+ this.namespaceUri = refactoring.getNamespaceUri();
+ SingleInputPort tempPort;
+
+ for(SingleInputPort inPort : refactoring.getInputPorts()){
+ tempPort = factory.createSingleInputPort();
+ tempPort.setDescription(inPort.getDescription());
+ tempPort.setName(inPort.getName());
+ tempPort.setType(inPort.getType());
+
+ this.getInputPorts().add(tempPort);
+ }
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ protected EClass eStaticClass() {
+ return ComrelPackage.Literals.ATOMIC_UNIT;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EList<SingleInputPort> getInputPorts() {
+ if (inputPorts == null) {
+ inputPorts = new EObjectContainmentEList<SingleInputPort>(SingleInputPort.class, this, ComrelPackage.ATOMIC_UNIT__INPUT_PORTS);
+ }
+ return inputPorts;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public String getUnitId() {
+ return unitId;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public void setUnitId(String newUnitId) {
+ if (ComrelUtil.objectIsSettable(this)) {
+ String oldUnitId = unitId;
+ unitId = newUnitId;
+ if (eNotificationRequired())
+ eNotify(new ENotificationImpl(this, Notification.SET, ComrelPackage.ATOMIC_UNIT__UNIT_ID, oldUnitId, unitId));
+ }
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public String getLabel() {
+ return label;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public void setLabel(String newLabel) {
+ if (ComrelUtil.objectIsSettable(this)) {
+ String oldLabel = label;
+ label = newLabel;
+ if (eNotificationRequired())
+ eNotify(new ENotificationImpl(this, Notification.SET, ComrelPackage.ATOMIC_UNIT__LABEL, oldLabel, label));
+ }
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public String getNamespaceUri() {
+ return namespaceUri;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public void setNamespaceUri(String newNamespaceUri) {
+ if (ComrelUtil.objectIsSettable(this)) {
+ String oldNamespaceUri = namespaceUri;
+ namespaceUri = newNamespaceUri;
+ if (eNotificationRequired())
+ eNotify(new ENotificationImpl(this, Notification.SET, ComrelPackage.ATOMIC_UNIT__NAMESPACE_URI, oldNamespaceUri, namespaceUri));
+ }
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public String getType() {
+ return type;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public ModelRefactoring getModelRefactoring() {
+ if (modelRefactoring != null && modelRefactoring.eIsProxy()) {
+ InternalEObject oldModelRefactoring = (InternalEObject)modelRefactoring;
+ modelRefactoring = (ModelRefactoring)eResolveProxy(oldModelRefactoring);
+ if (modelRefactoring != oldModelRefactoring) {
+ if (eNotificationRequired())
+ eNotify(new ENotificationImpl(this, Notification.RESOLVE, ComrelPackage.ATOMIC_UNIT__MODEL_REFACTORING, oldModelRefactoring, modelRefactoring));
+ }
+ }
+ return modelRefactoring;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public ModelRefactoring basicGetModelRefactoring() {
+ return modelRefactoring;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public void setModelRefactoring(ModelRefactoring newModelRefactoring) {
+// System.out.println("begin AtomicUnit::setModelRefactoring(ModelRefactoring newModelRefactoring)");
+// System.out.println("vorher: " + this.getModelRefactoring());
+// System.out.println("zu setzen: " + newModelRefactoring);
+ if (ComrelUtil.objectIsSettable(this) || modelRefactoring == null){
+ ModelRefactoring oldModelRefactoring = modelRefactoring;
+ modelRefactoring = newModelRefactoring;
+ if (eNotificationRequired())
+ eNotify(new ENotificationImpl(this, Notification.SET, ComrelPackage.ATOMIC_UNIT__MODEL_REFACTORING, oldModelRefactoring, modelRefactoring));
+ }
+// System.out.println("nachher: " + this.getModelRefactoring());
+// System.out.println("ende AtomicUnit::setModelRefactoring(ModelRefactoring newModelRefactoring)");
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public boolean isCheckInitialConditionFlag() {
+ return checkInitialConditionFlag;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public void setCheckInitialConditionFlag(boolean newCheckInitialConditionFlag) {
+ boolean oldCheckInitialConditionFlag = checkInitialConditionFlag;
+ checkInitialConditionFlag = newCheckInitialConditionFlag;
+ if (eNotificationRequired())
+ eNotify(new ENotificationImpl(this, Notification.SET, ComrelPackage.ATOMIC_UNIT__CHECK_INITIAL_CONDITION_FLAG, oldCheckInitialConditionFlag, checkInitialConditionFlag));
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public boolean isCheckFinalConditionFlag() {
+ return checkFinalConditionFlag;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public void setCheckFinalConditionFlag(boolean newCheckFinalConditionFlag) {
+ boolean oldCheckFinalConditionFlag = checkFinalConditionFlag;
+ checkFinalConditionFlag = newCheckFinalConditionFlag;
+ if (eNotificationRequired())
+ eNotify(new ENotificationImpl(this, Notification.SET, ComrelPackage.ATOMIC_UNIT__CHECK_FINAL_CONDITION_FLAG, oldCheckFinalConditionFlag, checkFinalConditionFlag));
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public NotificationChain eInverseRemove(InternalEObject otherEnd, int featureID, NotificationChain msgs) {
+ switch (featureID) {
+ case ComrelPackage.ATOMIC_UNIT__INPUT_PORTS:
+ return ((InternalEList<?>)getInputPorts()).basicRemove(otherEnd, msgs);
+ }
+ return super.eInverseRemove(otherEnd, featureID, msgs);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public Object eGet(int featureID, boolean resolve, boolean coreType) {
+ switch (featureID) {
+ case ComrelPackage.ATOMIC_UNIT__INPUT_PORTS:
+ return getInputPorts();
+ case ComrelPackage.ATOMIC_UNIT__UNIT_ID:
+ return getUnitId();
+ case ComrelPackage.ATOMIC_UNIT__LABEL:
+ return getLabel();
+ case ComrelPackage.ATOMIC_UNIT__NAMESPACE_URI:
+ return getNamespaceUri();
+ case ComrelPackage.ATOMIC_UNIT__TYPE:
+ return getType();
+ case ComrelPackage.ATOMIC_UNIT__MODEL_REFACTORING:
+ if (resolve) return getModelRefactoring();
+ return basicGetModelRefactoring();
+ case ComrelPackage.ATOMIC_UNIT__CHECK_INITIAL_CONDITION_FLAG:
+ return isCheckInitialConditionFlag();
+ case ComrelPackage.ATOMIC_UNIT__CHECK_FINAL_CONDITION_FLAG:
+ return isCheckFinalConditionFlag();
+ }
+ return super.eGet(featureID, resolve, coreType);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @SuppressWarnings("unchecked")
+ @Override
+ public void eSet(int featureID, Object newValue) {
+ switch (featureID) {
+ case ComrelPackage.ATOMIC_UNIT__INPUT_PORTS:
+ getInputPorts().clear();
+ getInputPorts().addAll((Collection<? extends SingleInputPort>)newValue);
+ return;
+ case ComrelPackage.ATOMIC_UNIT__UNIT_ID:
+ setUnitId((String)newValue);
+ return;
+ case ComrelPackage.ATOMIC_UNIT__LABEL:
+ setLabel((String)newValue);
+ return;
+ case ComrelPackage.ATOMIC_UNIT__NAMESPACE_URI:
+ setNamespaceUri((String)newValue);
+ return;
+ case ComrelPackage.ATOMIC_UNIT__MODEL_REFACTORING:
+ setModelRefactoring((ModelRefactoring)newValue);
+ return;
+ case ComrelPackage.ATOMIC_UNIT__CHECK_INITIAL_CONDITION_FLAG:
+ setCheckInitialConditionFlag((Boolean)newValue);
+ return;
+ case ComrelPackage.ATOMIC_UNIT__CHECK_FINAL_CONDITION_FLAG:
+ setCheckFinalConditionFlag((Boolean)newValue);
+ return;
+ }
+ super.eSet(featureID, newValue);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public void eUnset(int featureID) {
+ switch (featureID) {
+ case ComrelPackage.ATOMIC_UNIT__INPUT_PORTS:
+ getInputPorts().clear();
+ return;
+ case ComrelPackage.ATOMIC_UNIT__UNIT_ID:
+ setUnitId(UNIT_ID_EDEFAULT);
+ return;
+ case ComrelPackage.ATOMIC_UNIT__LABEL:
+ setLabel(LABEL_EDEFAULT);
+ return;
+ case ComrelPackage.ATOMIC_UNIT__NAMESPACE_URI:
+ setNamespaceUri(NAMESPACE_URI_EDEFAULT);
+ return;
+ case ComrelPackage.ATOMIC_UNIT__MODEL_REFACTORING:
+ setModelRefactoring((ModelRefactoring)null);
+ return;
+ case ComrelPackage.ATOMIC_UNIT__CHECK_INITIAL_CONDITION_FLAG:
+ setCheckInitialConditionFlag(CHECK_INITIAL_CONDITION_FLAG_EDEFAULT);
+ return;
+ case ComrelPackage.ATOMIC_UNIT__CHECK_FINAL_CONDITION_FLAG:
+ setCheckFinalConditionFlag(CHECK_FINAL_CONDITION_FLAG_EDEFAULT);
+ return;
+ }
+ super.eUnset(featureID);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public boolean eIsSet(int featureID) {
+ switch (featureID) {
+ case ComrelPackage.ATOMIC_UNIT__INPUT_PORTS:
+ return inputPorts != null && !inputPorts.isEmpty();
+ case ComrelPackage.ATOMIC_UNIT__UNIT_ID:
+ return UNIT_ID_EDEFAULT == null ? unitId != null : !UNIT_ID_EDEFAULT.equals(unitId);
+ case ComrelPackage.ATOMIC_UNIT__LABEL:
+ return LABEL_EDEFAULT == null ? label != null : !LABEL_EDEFAULT.equals(label);
+ case ComrelPackage.ATOMIC_UNIT__NAMESPACE_URI:
+ return NAMESPACE_URI_EDEFAULT == null ? namespaceUri != null : !NAMESPACE_URI_EDEFAULT.equals(namespaceUri);
+ case ComrelPackage.ATOMIC_UNIT__TYPE:
+ return TYPE_EDEFAULT == null ? type != null : !TYPE_EDEFAULT.equals(type);
+ case ComrelPackage.ATOMIC_UNIT__MODEL_REFACTORING:
+ return modelRefactoring != null;
+ case ComrelPackage.ATOMIC_UNIT__CHECK_INITIAL_CONDITION_FLAG:
+ return checkInitialConditionFlag != CHECK_INITIAL_CONDITION_FLAG_EDEFAULT;
+ case ComrelPackage.ATOMIC_UNIT__CHECK_FINAL_CONDITION_FLAG:
+ return checkFinalConditionFlag != CHECK_FINAL_CONDITION_FLAG_EDEFAULT;
+ }
+ return super.eIsSet(featureID);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public String toString() {
+ if (eIsProxy()) return super.toString();
+
+ StringBuffer result = new StringBuffer(super.toString());
+ result.append(" (unitId: ");
+ result.append(unitId);
+ result.append(", label: ");
+ result.append(label);
+ result.append(", namespaceUri: ");
+ result.append(namespaceUri);
+ result.append(", type: ");
+ result.append(type);
+ result.append(", checkInitialConditionFlag: ");
+ result.append(checkInitialConditionFlag);
+ result.append(", checkFinalConditionFlag: ");
+ result.append(checkFinalConditionFlag);
+ result.append(')');
+ return result.toString();
+ }
+
+ public EList<InputPort> getAllInputPorts() {
+ EList<InputPort> result = new BasicEList<InputPort>();
+ result.addAll(this.getInputPorts());
+ return result;
+ }
+
+} //AtomicUnitImpl
diff --git a/org.eclipse.emf.refactor.comrel/src/comrel/impl/CartesianQueuedUnitImpl.java b/org.eclipse.emf.refactor.comrel/src/comrel/impl/CartesianQueuedUnitImpl.java
new file mode 100644
index 0000000..2785562
--- /dev/null
+++ b/org.eclipse.emf.refactor.comrel/src/comrel/impl/CartesianQueuedUnitImpl.java
@@ -0,0 +1,423 @@
+/**
+ * <copyright>
+ * </copyright>
+ *
+ * $Id$
+ */
+package comrel.impl;
+
+import java.util.Collection;
+
+import org.eclipse.emf.common.notify.Notification;
+import org.eclipse.emf.common.notify.NotificationChain;
+import org.eclipse.emf.common.util.BasicEList;
+import org.eclipse.emf.common.util.EList;
+import org.eclipse.emf.ecore.EClass;
+import org.eclipse.emf.ecore.InternalEObject;
+import org.eclipse.emf.ecore.impl.ENotificationImpl;
+import org.eclipse.emf.ecore.util.EObjectContainmentEList;
+import org.eclipse.emf.ecore.util.InternalEList;
+
+import comrel.CartesianQueuedUnit;
+import comrel.ComrelFactory;
+import comrel.ComrelPackage;
+import comrel.HelperUnit;
+import comrel.InputPort;
+import comrel.MultiInputPort;
+import comrel.RefactoringUnit;
+import comrel.SingleInputPort;
+
+/**
+ * <!-- begin-user-doc -->
+ * An implementation of the model object '<em><b>Cartesian Queued Unit</b></em>'.
+ * <!-- end-user-doc -->
+ * <p>
+ * The following features are implemented:
+ * <ul>
+ * <li>{@link comrel.impl.CartesianQueuedUnitImpl#getHelperUnits <em>Helper Units</em>}</li>
+ * <li>{@link comrel.impl.CartesianQueuedUnitImpl#getRefactoringUnit <em>Refactoring Unit</em>}</li>
+ * <li>{@link comrel.impl.CartesianQueuedUnitImpl#getSingleInputPorts <em>Single Input Ports</em>}</li>
+ * <li>{@link comrel.impl.CartesianQueuedUnitImpl#getMultiInputPorts <em>Multi Input Ports</em>}</li>
+ * <li>{@link comrel.impl.CartesianQueuedUnitImpl#getType <em>Type</em>}</li>
+ * <li>{@link comrel.impl.CartesianQueuedUnitImpl#getLblStrict <em>Lbl Strict</em>}</li>
+ * </ul>
+ * </p>
+ *
+ * @generated
+ */
+public class CartesianQueuedUnitImpl extends TwicedQueuedUnitImpl implements CartesianQueuedUnit {
+ /**
+ * The cached value of the '{@link #getHelperUnits() <em>Helper Units</em>}' containment reference list.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getHelperUnits()
+ * @generated
+ * @ordered
+ */
+ protected EList<HelperUnit> helperUnits;
+
+ /**
+ * The cached value of the '{@link #getRefactoringUnit() <em>Refactoring Unit</em>}' containment reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getRefactoringUnit()
+ * @generated
+ * @ordered
+ */
+ protected RefactoringUnit refactoringUnit;
+
+ /**
+ * The cached value of the '{@link #getSingleInputPorts() <em>Single Input Ports</em>}' containment reference list.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getSingleInputPorts()
+ * @generated
+ * @ordered
+ */
+ protected EList<SingleInputPort> singleInputPorts;
+
+ /**
+ * The cached value of the '{@link #getMultiInputPorts() <em>Multi Input Ports</em>}' containment reference list.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getMultiInputPorts()
+ * @generated
+ * @ordered
+ */
+ protected EList<MultiInputPort> multiInputPorts;
+
+ /**
+ * The default value of the '{@link #getType() <em>Type</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getType()
+ * @generated
+ * @ordered
+ */
+ protected static final String TYPE_EDEFAULT = "Cartesian Queued Unit";
+
+ /**
+ * The cached value of the '{@link #getType() <em>Type</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getType()
+ * @generated
+ * @ordered
+ */
+ protected String type = TYPE_EDEFAULT;
+
+ /**
+ * The default value of the '{@link #getLblStrict() <em>Lbl Strict</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getLblStrict()
+ * @generated
+ * @ordered
+ */
+ protected static final String LBL_STRICT_EDEFAULT = "strict";
+
+ /**
+ * The cached value of the '{@link #getLblStrict() <em>Lbl Strict</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getLblStrict()
+ * @generated
+ * @ordered
+ */
+ protected String lblStrict = LBL_STRICT_EDEFAULT;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected CartesianQueuedUnitImpl() {
+ super();
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ protected EClass eStaticClass() {
+ return ComrelPackage.Literals.CARTESIAN_QUEUED_UNIT;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EList<HelperUnit> getHelperUnits() {
+ if (helperUnits == null) {
+ helperUnits = new EObjectContainmentEList<HelperUnit>(HelperUnit.class, this, ComrelPackage.CARTESIAN_QUEUED_UNIT__HELPER_UNITS);
+ }
+ return helperUnits;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public RefactoringUnit getRefactoringUnit() {
+ return refactoringUnit;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public NotificationChain basicSetRefactoringUnit(RefactoringUnit newRefactoringUnit, NotificationChain msgs) {
+ RefactoringUnit oldRefactoringUnit = refactoringUnit;
+ refactoringUnit = newRefactoringUnit;
+ if (eNotificationRequired()) {
+ ENotificationImpl notification = new ENotificationImpl(this, Notification.SET, ComrelPackage.CARTESIAN_QUEUED_UNIT__REFACTORING_UNIT, oldRefactoringUnit, newRefactoringUnit);
+ if (msgs == null) msgs = notification; else msgs.add(notification);
+ }
+ return msgs;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public void setRefactoringUnit(RefactoringUnit newRefactoringUnit) {
+ if (newRefactoringUnit != refactoringUnit) {
+ NotificationChain msgs = null;
+ if (refactoringUnit != null)
+ msgs = ((InternalEObject)refactoringUnit).eInverseRemove(this, EOPPOSITE_FEATURE_BASE - ComrelPackage.CARTESIAN_QUEUED_UNIT__REFACTORING_UNIT, null, msgs);
+ if (newRefactoringUnit != null)
+ msgs = ((InternalEObject)newRefactoringUnit).eInverseAdd(this, EOPPOSITE_FEATURE_BASE - ComrelPackage.CARTESIAN_QUEUED_UNIT__REFACTORING_UNIT, null, msgs);
+ msgs = basicSetRefactoringUnit(newRefactoringUnit, msgs);
+ if (msgs != null) msgs.dispatch();
+ }
+ else if (eNotificationRequired())
+ eNotify(new ENotificationImpl(this, Notification.SET, ComrelPackage.CARTESIAN_QUEUED_UNIT__REFACTORING_UNIT, newRefactoringUnit, newRefactoringUnit));
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EList<SingleInputPort> getSingleInputPorts() {
+ if (singleInputPorts == null) {
+ singleInputPorts = new EObjectContainmentEList<SingleInputPort>(SingleInputPort.class, this, ComrelPackage.CARTESIAN_QUEUED_UNIT__SINGLE_INPUT_PORTS);
+ }
+ return singleInputPorts;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EList<MultiInputPort> getMultiInputPorts() {
+ if (multiInputPorts == null) {
+ multiInputPorts = new EObjectContainmentEList<MultiInputPort>(MultiInputPort.class, this, ComrelPackage.CARTESIAN_QUEUED_UNIT__MULTI_INPUT_PORTS);
+ }
+ return multiInputPorts;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public String getType() {
+ return type;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public String getLblStrict() {
+ return lblStrict;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public void setLblStrict(String newLblStrict) {
+ String oldLblStrict = lblStrict;
+ lblStrict = newLblStrict;
+ if (eNotificationRequired())
+ eNotify(new ENotificationImpl(this, Notification.SET, ComrelPackage.CARTESIAN_QUEUED_UNIT__LBL_STRICT, oldLblStrict, lblStrict));
+ }
+
+ @Override
+ public void setStrict(boolean newStrict) {
+ super.setStrict(newStrict);
+ if (newStrict) setLblStrict("strict");
+ else setLblStrict("non strict");
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public NotificationChain eInverseRemove(InternalEObject otherEnd, int featureID, NotificationChain msgs) {
+ switch (featureID) {
+ case ComrelPackage.CARTESIAN_QUEUED_UNIT__HELPER_UNITS:
+ return ((InternalEList<?>)getHelperUnits()).basicRemove(otherEnd, msgs);
+ case ComrelPackage.CARTESIAN_QUEUED_UNIT__REFACTORING_UNIT:
+ return basicSetRefactoringUnit(null, msgs);
+ case ComrelPackage.CARTESIAN_QUEUED_UNIT__SINGLE_INPUT_PORTS:
+ return ((InternalEList<?>)getSingleInputPorts()).basicRemove(otherEnd, msgs);
+ case ComrelPackage.CARTESIAN_QUEUED_UNIT__MULTI_INPUT_PORTS:
+ return ((InternalEList<?>)getMultiInputPorts()).basicRemove(otherEnd, msgs);
+ }
+ return super.eInverseRemove(otherEnd, featureID, msgs);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public Object eGet(int featureID, boolean resolve, boolean coreType) {
+ switch (featureID) {
+ case ComrelPackage.CARTESIAN_QUEUED_UNIT__HELPER_UNITS:
+ return getHelperUnits();
+ case ComrelPackage.CARTESIAN_QUEUED_UNIT__REFACTORING_UNIT:
+ return getRefactoringUnit();
+ case ComrelPackage.CARTESIAN_QUEUED_UNIT__SINGLE_INPUT_PORTS:
+ return getSingleInputPorts();
+ case ComrelPackage.CARTESIAN_QUEUED_UNIT__MULTI_INPUT_PORTS:
+ return getMultiInputPorts();
+ case ComrelPackage.CARTESIAN_QUEUED_UNIT__TYPE:
+ return getType();
+ case ComrelPackage.CARTESIAN_QUEUED_UNIT__LBL_STRICT:
+ return getLblStrict();
+ }
+ return super.eGet(featureID, resolve, coreType);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @SuppressWarnings("unchecked")
+ @Override
+ public void eSet(int featureID, Object newValue) {
+ switch (featureID) {
+ case ComrelPackage.CARTESIAN_QUEUED_UNIT__HELPER_UNITS:
+ getHelperUnits().clear();
+ getHelperUnits().addAll((Collection<? extends HelperUnit>)newValue);
+ return;
+ case ComrelPackage.CARTESIAN_QUEUED_UNIT__REFACTORING_UNIT:
+ setRefactoringUnit((RefactoringUnit)newValue);
+ return;
+ case ComrelPackage.CARTESIAN_QUEUED_UNIT__SINGLE_INPUT_PORTS:
+ getSingleInputPorts().clear();
+ getSingleInputPorts().addAll((Collection<? extends SingleInputPort>)newValue);
+ return;
+ case ComrelPackage.CARTESIAN_QUEUED_UNIT__MULTI_INPUT_PORTS:
+ getMultiInputPorts().clear();
+ getMultiInputPorts().addAll((Collection<? extends MultiInputPort>)newValue);
+ return;
+ case ComrelPackage.CARTESIAN_QUEUED_UNIT__LBL_STRICT:
+ setLblStrict((String)newValue);
+ return;
+ }
+ super.eSet(featureID, newValue);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public void eUnset(int featureID) {
+ switch (featureID) {
+ case ComrelPackage.CARTESIAN_QUEUED_UNIT__HELPER_UNITS:
+ getHelperUnits().clear();
+ return;
+ case ComrelPackage.CARTESIAN_QUEUED_UNIT__REFACTORING_UNIT:
+ setRefactoringUnit((RefactoringUnit)null);
+ return;
+ case ComrelPackage.CARTESIAN_QUEUED_UNIT__SINGLE_INPUT_PORTS:
+ getSingleInputPorts().clear();
+ return;
+ case ComrelPackage.CARTESIAN_QUEUED_UNIT__MULTI_INPUT_PORTS:
+ getMultiInputPorts().clear();
+ return;
+ case ComrelPackage.CARTESIAN_QUEUED_UNIT__LBL_STRICT:
+ setLblStrict(LBL_STRICT_EDEFAULT);
+ return;
+ }
+ super.eUnset(featureID);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public boolean eIsSet(int featureID) {
+ switch (featureID) {
+ case ComrelPackage.CARTESIAN_QUEUED_UNIT__HELPER_UNITS:
+ return helperUnits != null && !helperUnits.isEmpty();
+ case ComrelPackage.CARTESIAN_QUEUED_UNIT__REFACTORING_UNIT:
+ return refactoringUnit != null;
+ case ComrelPackage.CARTESIAN_QUEUED_UNIT__SINGLE_INPUT_PORTS:
+ return singleInputPorts != null && !singleInputPorts.isEmpty();
+ case ComrelPackage.CARTESIAN_QUEUED_UNIT__MULTI_INPUT_PORTS:
+ return multiInputPorts != null && !multiInputPorts.isEmpty();
+ case ComrelPackage.CARTESIAN_QUEUED_UNIT__TYPE:
+ return TYPE_EDEFAULT == null ? type != null : !TYPE_EDEFAULT.equals(type);
+ case ComrelPackage.CARTESIAN_QUEUED_UNIT__LBL_STRICT:
+ return LBL_STRICT_EDEFAULT == null ? lblStrict != null : !LBL_STRICT_EDEFAULT.equals(lblStrict);
+ }
+ return super.eIsSet(featureID);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public String toString() {
+ if (eIsProxy()) return super.toString();
+
+ StringBuffer result = new StringBuffer(super.toString());
+ result.append(" (type: ");
+ result.append(type);
+ result.append(", lblStrict: ");
+ result.append(lblStrict);
+ result.append(')');
+ return result.toString();
+ }
+
+ public void init(){
+ ComrelFactory factory = ComrelFactory.eINSTANCE;
+ MultiInputPort one = factory.createMultiInputPort();
+ MultiInputPort two = factory.createMultiInputPort();
+ this.getMultiInputPorts().add(one);
+ this.getMultiInputPorts().add(two);
+ }
+
+ public EList<InputPort> getAllInputPorts() {
+ EList<InputPort> inputPorts = new BasicEList<InputPort>();
+ inputPorts.addAll(this.getSingleInputPorts());
+ inputPorts.addAll(this.getMultiInputPorts());
+ return inputPorts;
+ }
+
+} //CartesianQueuedUnitImpl
diff --git a/org.eclipse.emf.refactor.comrel/src/comrel/impl/CompositeRefactoringImpl.java b/org.eclipse.emf.refactor.comrel/src/comrel/impl/CompositeRefactoringImpl.java
new file mode 100644
index 0000000..13178c4
--- /dev/null
+++ b/org.eclipse.emf.refactor.comrel/src/comrel/impl/CompositeRefactoringImpl.java
@@ -0,0 +1,829 @@
+/**
+ * <copyright>
+ * </copyright>
+ *
+ * $Id$
+ */
+package comrel.impl;
+
+import java.util.ArrayList;
+import java.util.Collection;
+import java.util.HashSet;
+import java.util.List;
+import java.util.Set;
+import java.util.Stack;
+
+import org.eclipse.emf.common.notify.Notification;
+import org.eclipse.emf.common.notify.NotificationChain;
+import org.eclipse.emf.common.util.EList;
+import org.eclipse.emf.ecore.EClass;
+import org.eclipse.emf.ecore.InternalEObject;
+import org.eclipse.emf.ecore.impl.ENotificationImpl;
+import org.eclipse.emf.ecore.util.EObjectContainmentEList;
+import org.eclipse.emf.ecore.util.InternalEList;
+
+import comrel.AtomicUnit;
+import comrel.CartesianQueuedUnit;
+import comrel.CompositeRefactoring;
+import comrel.CompositeUnit;
+import comrel.ComrelPackage;
+import comrel.Helper;
+import comrel.HelperUnit;
+import comrel.MappingVisualization;
+import comrel.ModelRefactoring;
+import comrel.MultiFeatureHelper;
+import comrel.MultiFilterHelper;
+import comrel.ParallelQueuedUnit;
+import comrel.PortMapping;
+import comrel.RefactoringUnit;
+import comrel.SequentialUnit;
+import comrel.SingleFeatureHelper;
+import comrel.SingleFilterHelper;
+import comrel.SingleQueuedUnit;
+import comrel.util.RegistryUtil;
+
+/**
+ * <!-- begin-user-doc -->
+ * An implementation of the model object '<em><b>Composite Refactoring</b></em>'.
+ * <!-- end-user-doc -->
+ * <p>
+ * The following features are implemented:
+ * <ul>
+ * <li>{@link comrel.impl.CompositeRefactoringImpl#getMainRefactoringUnit <em>Main Refactoring Unit</em>}</li>
+ * <li>{@link comrel.impl.CompositeRefactoringImpl#getPortMappings <em>Port Mappings</em>}</li>
+ * <li>{@link comrel.impl.CompositeRefactoringImpl#getModelRefactorings <em>Model Refactorings</em>}</li>
+ * <li>{@link comrel.impl.CompositeRefactoringImpl#getHelper <em>Helper</em>}</li>
+ * <li>{@link comrel.impl.CompositeRefactoringImpl#getMappingVisualization <em>Mapping Visualization</em>}</li>
+ * <li>{@link comrel.impl.CompositeRefactoringImpl#getCustomInitialCondition <em>Custom Initial Condition</em>}</li>
+ * <li>{@link comrel.impl.CompositeRefactoringImpl#getCustomFinalCondition <em>Custom Final Condition</em>}</li>
+ * </ul>
+ * </p>
+ *
+ * @generated
+ */
+public class CompositeRefactoringImpl extends ModelRefactoringImpl implements CompositeRefactoring {
+
+ public Set<Integer> mappingNumbers = new HashSet<Integer>();
+
+ public static String nsUri = "";
+
+ /**
+ * The cached value of the '{@link #getMainRefactoringUnit() <em>Main Refactoring Unit</em>}' containment reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getMainRefactoringUnit()
+ * @generated
+ * @ordered
+ */
+ protected RefactoringUnit mainRefactoringUnit;
+
+ /**
+ * The cached value of the '{@link #getPortMappings() <em>Port Mappings</em>}' containment reference list.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getPortMappings()
+ * @generated
+ * @ordered
+ */
+ protected EList<PortMapping> portMappings;
+
+ /**
+ * The cached value of the '{@link #getModelRefactorings() <em>Model Refactorings</em>}' containment reference list.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getModelRefactorings()
+ * @generated
+ * @ordered
+ */
+ protected EList<ModelRefactoring> modelRefactorings;
+
+ /**
+ * The cached value of the '{@link #getHelper() <em>Helper</em>}' containment reference list.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getHelper()
+ * @generated
+ * @ordered
+ */
+ protected EList<Helper> helper;
+
+ /**
+ * The default value of the '{@link #getMappingVisualization() <em>Mapping Visualization</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getMappingVisualization()
+ * @generated
+ * @ordered
+ */
+ protected static final MappingVisualization MAPPING_VISUALIZATION_EDEFAULT = MappingVisualization.ARROWS;
+
+ /**
+ * The cached value of the '{@link #getMappingVisualization() <em>Mapping Visualization</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getMappingVisualization()
+ * @generated
+ * @ordered
+ */
+ protected MappingVisualization mappingVisualization = MAPPING_VISUALIZATION_EDEFAULT;
+
+ /**
+ * The default value of the '{@link #getCustomInitialCondition() <em>Custom Initial Condition</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getCustomInitialCondition()
+ * @generated
+ * @ordered
+ */
+ protected static final String CUSTOM_INITIAL_CONDITION_EDEFAULT = null;
+
+ /**
+ * The cached value of the '{@link #getCustomInitialCondition() <em>Custom Initial Condition</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getCustomInitialCondition()
+ * @generated
+ * @ordered
+ */
+ protected String customInitialCondition = CUSTOM_INITIAL_CONDITION_EDEFAULT;
+
+ /**
+ * The default value of the '{@link #getCustomFinalCondition() <em>Custom Final Condition</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getCustomFinalCondition()
+ * @generated
+ * @ordered
+ */
+ protected static final String CUSTOM_FINAL_CONDITION_EDEFAULT = null;
+
+ /**
+ * The cached value of the '{@link #getCustomFinalCondition() <em>Custom Final Condition</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getCustomFinalCondition()
+ * @generated
+ * @ordered
+ */
+ protected String customFinalCondition = CUSTOM_FINAL_CONDITION_EDEFAULT;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected CompositeRefactoringImpl() {
+ super();
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ protected EClass eStaticClass() {
+ return ComrelPackage.Literals.COMPOSITE_REFACTORING;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public RefactoringUnit getMainRefactoringUnit() {
+ return mainRefactoringUnit;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public NotificationChain basicSetMainRefactoringUnit(RefactoringUnit newMainRefactoringUnit, NotificationChain msgs) {
+ RefactoringUnit oldMainRefactoringUnit = mainRefactoringUnit;
+ mainRefactoringUnit = newMainRefactoringUnit;
+ if (eNotificationRequired()) {
+ ENotificationImpl notification = new ENotificationImpl(this, Notification.SET, ComrelPackage.COMPOSITE_REFACTORING__MAIN_REFACTORING_UNIT, oldMainRefactoringUnit, newMainRefactoringUnit);
+ if (msgs == null) msgs = notification; else msgs.add(notification);
+ }
+ if (this.getMainRefactoringUnit() != null) {
+ this.getMainRefactoringUnit().setName(this.getName(), false);
+ }
+ return msgs;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public void setMainRefactoringUnit(RefactoringUnit newMainRefactoringUnit) {
+ if (newMainRefactoringUnit != mainRefactoringUnit) {
+ NotificationChain msgs = null;
+ if (mainRefactoringUnit != null)
+ msgs = ((InternalEObject)mainRefactoringUnit).eInverseRemove(this, EOPPOSITE_FEATURE_BASE - ComrelPackage.COMPOSITE_REFACTORING__MAIN_REFACTORING_UNIT, null, msgs);
+ if (newMainRefactoringUnit != null)
+ msgs = ((InternalEObject)newMainRefactoringUnit).eInverseAdd(this, EOPPOSITE_FEATURE_BASE - ComrelPackage.COMPOSITE_REFACTORING__MAIN_REFACTORING_UNIT, null, msgs);
+ msgs = basicSetMainRefactoringUnit(newMainRefactoringUnit, msgs);
+ if (msgs != null) msgs.dispatch();
+ }
+ else if (eNotificationRequired())
+ eNotify(new ENotificationImpl(this, Notification.SET, ComrelPackage.COMPOSITE_REFACTORING__MAIN_REFACTORING_UNIT, newMainRefactoringUnit, newMainRefactoringUnit));
+ if (this.getMainRefactoringUnit() != null) {
+ this.getMainRefactoringUnit().setName(this.getName(), false);
+ }
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EList<PortMapping> getPortMappings() {
+ if (portMappings == null) {
+ portMappings = new EObjectContainmentEList<PortMapping>(PortMapping.class, this, ComrelPackage.COMPOSITE_REFACTORING__PORT_MAPPINGS);
+ }
+ return portMappings;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EList<ModelRefactoring> getModelRefactorings() {
+ if (modelRefactorings == null) {
+ modelRefactorings = new EObjectContainmentEList<ModelRefactoring>(ModelRefactoring.class, this, ComrelPackage.COMPOSITE_REFACTORING__MODEL_REFACTORINGS);
+ }
+ return modelRefactorings;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EList<Helper> getHelper() {
+ if (helper == null) {
+ helper = new EObjectContainmentEList<Helper>(Helper.class, this, ComrelPackage.COMPOSITE_REFACTORING__HELPER);
+ }
+ return helper;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public MappingVisualization getMappingVisualization() {
+ return mappingVisualization;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public void setMappingVisualization(MappingVisualization newMappingVisualization) {
+ MappingVisualization oldMappingVisualization = mappingVisualization;
+ mappingVisualization = newMappingVisualization == null ? MAPPING_VISUALIZATION_EDEFAULT : newMappingVisualization;
+ if (eNotificationRequired())
+ eNotify(new ENotificationImpl(this, Notification.SET, ComrelPackage.COMPOSITE_REFACTORING__MAPPING_VISUALIZATION, oldMappingVisualization, mappingVisualization));
+ for (PortMapping mapping : this.getPortMappings()) {
+ mapping.updateVisualization();
+ }
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public String getCustomInitialCondition() {
+ return customInitialCondition;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public void setCustomInitialCondition(String newCustomInitialCondition) {
+ String oldCustomInitialCondition = customInitialCondition;
+ customInitialCondition = newCustomInitialCondition;
+ if (eNotificationRequired())
+ eNotify(new ENotificationImpl(this, Notification.SET, ComrelPackage.COMPOSITE_REFACTORING__CUSTOM_INITIAL_CONDITION, oldCustomInitialCondition, customInitialCondition));
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public String getCustomFinalCondition() {
+ return customFinalCondition;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public void setCustomFinalCondition(String newCustomFinalCondition) {
+ String oldCustomFinalCondition = customFinalCondition;
+ customFinalCondition = newCustomFinalCondition;
+ if (eNotificationRequired())
+ eNotify(new ENotificationImpl(this, Notification.SET, ComrelPackage.COMPOSITE_REFACTORING__CUSTOM_FINAL_CONDITION, oldCustomFinalCondition, customFinalCondition));
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public NotificationChain eInverseRemove(InternalEObject otherEnd, int featureID, NotificationChain msgs) {
+ switch (featureID) {
+ case ComrelPackage.COMPOSITE_REFACTORING__MAIN_REFACTORING_UNIT:
+ return basicSetMainRefactoringUnit(null, msgs);
+ case ComrelPackage.COMPOSITE_REFACTORING__PORT_MAPPINGS:
+ return ((InternalEList<?>)getPortMappings()).basicRemove(otherEnd, msgs);
+ case ComrelPackage.COMPOSITE_REFACTORING__MODEL_REFACTORINGS:
+ return ((InternalEList<?>)getModelRefactorings()).basicRemove(otherEnd, msgs);
+ case ComrelPackage.COMPOSITE_REFACTORING__HELPER:
+ return ((InternalEList<?>)getHelper()).basicRemove(otherEnd, msgs);
+ }
+ return super.eInverseRemove(otherEnd, featureID, msgs);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public Object eGet(int featureID, boolean resolve, boolean coreType) {
+ switch (featureID) {
+ case ComrelPackage.COMPOSITE_REFACTORING__MAIN_REFACTORING_UNIT:
+ return getMainRefactoringUnit();
+ case ComrelPackage.COMPOSITE_REFACTORING__PORT_MAPPINGS:
+ return getPortMappings();
+ case ComrelPackage.COMPOSITE_REFACTORING__MODEL_REFACTORINGS:
+ return getModelRefactorings();
+ case ComrelPackage.COMPOSITE_REFACTORING__HELPER:
+ return getHelper();
+ case ComrelPackage.COMPOSITE_REFACTORING__MAPPING_VISUALIZATION:
+ return getMappingVisualization();
+ case ComrelPackage.COMPOSITE_REFACTORING__CUSTOM_INITIAL_CONDITION:
+ return getCustomInitialCondition();
+ case ComrelPackage.COMPOSITE_REFACTORING__CUSTOM_FINAL_CONDITION:
+ return getCustomFinalCondition();
+ }
+ return super.eGet(featureID, resolve, coreType);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @SuppressWarnings("unchecked")
+ @Override
+ public void eSet(int featureID, Object newValue) {
+ switch (featureID) {
+ case ComrelPackage.COMPOSITE_REFACTORING__MAIN_REFACTORING_UNIT:
+ setMainRefactoringUnit((RefactoringUnit)newValue);
+ return;
+ case ComrelPackage.COMPOSITE_REFACTORING__PORT_MAPPINGS:
+ getPortMappings().clear();
+ getPortMappings().addAll((Collection<? extends PortMapping>)newValue);
+ return;
+ case ComrelPackage.COMPOSITE_REFACTORING__MODEL_REFACTORINGS:
+ getModelRefactorings().clear();
+ getModelRefactorings().addAll((Collection<? extends ModelRefactoring>)newValue);
+ return;
+ case ComrelPackage.COMPOSITE_REFACTORING__HELPER:
+ getHelper().clear();
+ getHelper().addAll((Collection<? extends Helper>)newValue);
+ return;
+ case ComrelPackage.COMPOSITE_REFACTORING__MAPPING_VISUALIZATION:
+ setMappingVisualization((MappingVisualization)newValue);
+ return;
+ case ComrelPackage.COMPOSITE_REFACTORING__CUSTOM_INITIAL_CONDITION:
+ setCustomInitialCondition((String)newValue);
+ return;
+ case ComrelPackage.COMPOSITE_REFACTORING__CUSTOM_FINAL_CONDITION:
+ setCustomFinalCondition((String)newValue);
+ return;
+ }
+ super.eSet(featureID, newValue);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public void eUnset(int featureID) {
+ switch (featureID) {
+ case ComrelPackage.COMPOSITE_REFACTORING__MAIN_REFACTORING_UNIT:
+ setMainRefactoringUnit((RefactoringUnit)null);
+ return;
+ case ComrelPackage.COMPOSITE_REFACTORING__PORT_MAPPINGS:
+ getPortMappings().clear();
+ return;
+ case ComrelPackage.COMPOSITE_REFACTORING__MODEL_REFACTORINGS:
+ getModelRefactorings().clear();
+ return;
+ case ComrelPackage.COMPOSITE_REFACTORING__HELPER:
+ getHelper().clear();
+ return;
+ case ComrelPackage.COMPOSITE_REFACTORING__MAPPING_VISUALIZATION:
+ setMappingVisualization(MAPPING_VISUALIZATION_EDEFAULT);
+ return;
+ case ComrelPackage.COMPOSITE_REFACTORING__CUSTOM_INITIAL_CONDITION:
+ setCustomInitialCondition(CUSTOM_INITIAL_CONDITION_EDEFAULT);
+ return;
+ case ComrelPackage.COMPOSITE_REFACTORING__CUSTOM_FINAL_CONDITION:
+ setCustomFinalCondition(CUSTOM_FINAL_CONDITION_EDEFAULT);
+ return;
+ }
+ super.eUnset(featureID);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public boolean eIsSet(int featureID) {
+ switch (featureID) {
+ case ComrelPackage.COMPOSITE_REFACTORING__MAIN_REFACTORING_UNIT:
+ return mainRefactoringUnit != null;
+ case ComrelPackage.COMPOSITE_REFACTORING__PORT_MAPPINGS:
+ return portMappings != null && !portMappings.isEmpty();
+ case ComrelPackage.COMPOSITE_REFACTORING__MODEL_REFACTORINGS:
+ return modelRefactorings != null && !modelRefactorings.isEmpty();
+ case ComrelPackage.COMPOSITE_REFACTORING__HELPER:
+ return helper != null && !helper.isEmpty();
+ case ComrelPackage.COMPOSITE_REFACTORING__MAPPING_VISUALIZATION:
+ return mappingVisualization != MAPPING_VISUALIZATION_EDEFAULT;
+ case ComrelPackage.COMPOSITE_REFACTORING__CUSTOM_INITIAL_CONDITION:
+ return CUSTOM_INITIAL_CONDITION_EDEFAULT == null ? customInitialCondition != null : !CUSTOM_INITIAL_CONDITION_EDEFAULT.equals(customInitialCondition);
+ case ComrelPackage.COMPOSITE_REFACTORING__CUSTOM_FINAL_CONDITION:
+ return CUSTOM_FINAL_CONDITION_EDEFAULT == null ? customFinalCondition != null : !CUSTOM_FINAL_CONDITION_EDEFAULT.equals(customFinalCondition);
+ }
+ return super.eIsSet(featureID);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public String toString() {
+ if (eIsProxy()) return super.toString();
+
+ StringBuffer result = new StringBuffer(super.toString());
+ result.append(" (mappingVisualization: ");
+ result.append(mappingVisualization);
+ result.append(", customInitialCondition: ");
+ result.append(customInitialCondition);
+ result.append(", customFinalCondition: ");
+ result.append(customFinalCondition);
+ result.append(')');
+ return result.toString();
+ }
+
+ public void setName(String newName) {
+ this.setName(newName, true);
+ }
+
+ public void setName(String newName, boolean updateRootUnit) {
+ String oldName = name;
+ name = newName;
+ if (updateRootUnit) {
+ if (this.getMainRefactoringUnit() != null) {
+ this.getMainRefactoringUnit().setName(newName, false);
+ }
+ }
+ if (eNotificationRequired())
+ eNotify(new ENotificationImpl(this, Notification.SET,
+ ComrelPackage.COMPOSITE_REFACTORING__NAME, oldName,
+ name));
+
+ }
+
+ public void setNamespaceUri(String newNamespaceUri) {
+ if (namespaceUri == null) {
+ String oldNamespaceUri = namespaceUri;
+ namespaceUri = newNamespaceUri;
+ nsUri = namespaceUri;
+ if (eNotificationRequired())
+ eNotify(new ENotificationImpl(
+ this,
+ Notification.SET,
+ ComrelPackage.COMPOSITE_REFACTORING__NAMESPACE_URI,
+ oldNamespaceUri, namespaceUri));
+ }
+ }
+
+ /**
+ * @param id
+ * @return ModelRefactoring oder null, falls nicht existent
+ */
+ public ModelRefactoring getModelRefactoring(String id) {
+ for (ModelRefactoring ref : this.getModelRefactorings()) {
+ if (ref.getRefId().equals(id)) {
+ return ref;
+ }
+ }
+ return null;
+ }
+
+ /**
+ * @param id
+ * des Helpers
+ * @return Helper oder null, falls nicht existent
+ */
+ public Helper getHelper(String id) {
+ for (Helper h : this.getHelper()) {
+ if (h.getHelperId().equals(id)) {
+ return h;
+ }
+ }
+ return null;
+ }
+
+ /**
+ * @param id
+ * @return Helper oder null, falls nicht existent
+ */
+ public SingleFeatureHelper getSingleFeatureHelper(String id) {
+ Helper h = this.getHelper(id);
+ if (h != null && h instanceof SingleFeatureHelper) {
+ return (SingleFeatureHelper) h;
+ } else {
+ for (SingleFeatureHelper helper : RegistryUtil
+ .loadSingleFeatureHelper()) {
+ if (helper.getHelperId().equals(id))
+ return helper;
+ }
+ }
+ return null;
+ }
+
+ /**
+ * @param id
+ * @return Helper oder null, falls nicht existent
+ */
+ public MultiFeatureHelper getMultiFeatureHelper(String id) {
+ Helper h = this.getHelper(id);
+ if (h != null && h instanceof MultiFeatureHelper) {
+ return (MultiFeatureHelper) h;
+ } else {
+ for (MultiFeatureHelper helper : RegistryUtil
+ .loadMultiFeatureHelper()) {
+ if (helper.getHelperId().equals(id))
+ return helper;
+ }
+ }
+ return null;
+ }
+
+ /**
+ * @param id
+ * @return Helper oder null, falls nicht existent
+ */
+ public SingleFilterHelper getSingleFilterHelper(String id) {
+ Helper h = this.getHelper(id);
+ if (h != null && h instanceof SingleFilterHelper) {
+ return (SingleFilterHelper) h;
+ } else {
+ for (SingleFilterHelper helper : RegistryUtil
+ .loadSingleFilterHelper()) {
+ if (helper.getHelperId().equals(id))
+ return helper;
+ }
+ }
+ return null;
+ }
+
+ /**
+ * @param id
+ * @return Helper oder null, falls nicht existent
+ */
+ public MultiFilterHelper getMultiFilterHelper(String id) {
+ Helper h = this.getHelper(id);
+ if (h != null && h instanceof MultiFilterHelper) {
+ return (MultiFilterHelper) h;
+ } else {
+ for (MultiFilterHelper helper : RegistryUtil
+ .loadMultiFilterHelper()) {
+ if (helper.getHelperId().equals(id))
+ return helper;
+ }
+ }
+ return null;
+ }
+
+ /**
+ * Liefert alle ModelRefactorings useses EmfRefactor-ExtensionPoint
+ */
+ public Collection<ModelRefactoring> getEmfRefactoringsAsModelRefactorings() {
+ return RegistryUtil.getEmfRefactoringsAsModelRefactorings();
+ }
+
+ /**
+ * Liefert das ModelRefactoring zur gegebener ID
+ */
+ public ModelRefactoring getEmfRefactoringAsModelRefactoring(String id) {
+ for (ModelRefactoring ref : this.getModelRefactorings()) {
+ if (ref.getRefId().equals(id)) {
+ return ref;
+ }
+ }
+ for (ModelRefactoring ref : this.getEmfRefactoringsAsModelRefactorings()) {
+ if (ref.getRefId().equals(id)) {
+ return ref;
+ }
+ }
+ return null;
+ }
+
+ /**
+ * Look up, if the ModelRefactoring in use
+ */
+ public boolean modelRefactoringInUse(ModelRefactoring ref,
+ AtomicUnit context) {
+ AtomicUnit atomicUnit;
+ for (RefactoringUnit refUnit : this.getAllRefactoringUnits()) {
+ if (refUnit instanceof AtomicUnit) {
+ atomicUnit = (AtomicUnit) refUnit;
+ if (atomicUnit.getModelRefactoring() == ref
+ && !(context == atomicUnit)) {
+ return true;
+ }
+ }
+
+ }
+ return false;
+ }
+
+ /**
+ * Look up, if the helper in use
+ */
+ public boolean helperInUse(Helper helper, HelperUnit context) {
+ for (HelperUnit helperUnit : this.getAllHelperUnits()) {
+ if (this.getHelper(helperUnit.getHelperUnitId()) == helper
+ && helperUnit != context) {
+ return true;
+ }
+ }
+ return false;
+ }
+
+ /**
+ * Liefert alle direkten und indirekten RefactoringUnits
+ *
+ * @return RefactoringUnits
+ */
+ private List<RefactoringUnit> getAllRefactoringUnits() {
+ ArrayList<RefactoringUnit> result = new ArrayList<RefactoringUnit>();
+ Stack<RefactoringUnit> stack = new Stack<RefactoringUnit>();
+ RefactoringUnit refUnit;
+ refUnit = this.getMainRefactoringUnit();
+
+ SequentialUnit seqUnit;
+ if (refUnit != null) {
+ stack.push(refUnit);
+ }
+ while (!stack.isEmpty()) {
+ refUnit = stack.pop();
+ result.add(refUnit);
+ if (refUnit instanceof SequentialUnit) {
+ seqUnit = (SequentialUnit) refUnit;
+ for (RefactoringUnit rU : seqUnit.getRefactoringUnits()) {
+ stack.push(rU);
+ }
+ }
+ if (refUnit instanceof SingleQueuedUnit) {
+ SingleQueuedUnit queuedUnit = (SingleQueuedUnit) refUnit;
+ stack.push(queuedUnit.getRefactoringUnit());
+ }
+ if (refUnit instanceof ParallelQueuedUnit) {
+ ParallelQueuedUnit queuedUnit = (ParallelQueuedUnit) refUnit;
+ stack.push(queuedUnit.getRefactoringUnits());
+ }
+ if (refUnit instanceof CartesianQueuedUnit) {
+ CartesianQueuedUnit queuedUnit = (CartesianQueuedUnit) refUnit;
+ stack.push(queuedUnit.getRefactoringUnit());
+ }
+ }
+ return result;
+ }
+
+ /**
+ * Liefert alle direkten und indirekten HelperUnits
+ *
+ * @return HelperUnits
+ */
+ private List<HelperUnit> getAllHelperUnits() {
+ ArrayList<HelperUnit> result = new ArrayList<HelperUnit>();
+ CompositeUnit compositeUnit;
+ for (RefactoringUnit unit : this.getAllRefactoringUnits()) {
+ if (unit instanceof CompositeUnit) {
+ compositeUnit = (CompositeUnit) unit;
+ result.addAll(compositeUnit.getHelperUnits());
+ }
+ }
+ return result;
+ }
+
+ /**
+ * Liefert alle unbenutzten ModelRefactorings
+ *
+ * @return
+ */
+ public List<ModelRefactoring> getUnusedModelRefactorings() {
+ ArrayList<ModelRefactoring> result = new ArrayList<ModelRefactoring>();
+ for (ModelRefactoring mr : this.getModelRefactorings()) {
+ if (!(modelRefactoringInUse(mr, null))) {
+ result.add(mr);
+ }
+ }
+ return result;
+ }
+
+ /**
+ * Liefert alle unbenutzten Helper
+ *
+ * @return
+ */
+ public List<Helper> getUnusedHelper() {
+ ArrayList<Helper> result = new ArrayList<Helper>();
+ for (Helper helper : this.getHelper()) {
+ if (!helperInUse(helper, null)) {
+ result.add(helper);
+ }
+ }
+ return result;
+ }
+
+ /**
+ * Entfernt alle unbenutzten ModelRefactorings
+ */
+ public void removeUnusedModelRefactorings() {
+ this.getModelRefactorings().removeAll(
+ this.getUnusedModelRefactorings());
+ }
+
+ /**
+ * Entfernt alle unbentzten Helper
+ */
+ public void removeUnusedHelper() {
+ this.getHelper().removeAll(this.getUnusedHelper());
+ }
+
+ public void setMappingNumbers(Set<Integer> mappingNumbers) {
+ this.mappingNumbers = mappingNumbers;
+ }
+
+ public Set<Integer> getMappingNumbers() {
+ return mappingNumbers;
+ }
+
+ public void cleanUpMappingNumbers() {
+ Set<Integer> set = new HashSet<Integer>();
+ for (PortMapping mapping : this.getPortMappings()) {
+ set.add(mapping.getMappingNumber());
+ }
+ this.setMappingNumbers(set);
+ }
+
+ public void updateVisualization() {
+ this.cleanUpMappingNumbers();
+ for (PortMapping mapping : this.getPortMappings()) {
+ if(mapping.getMappingNumber() == Integer.MAX_VALUE) {
+ mapping.updateMappingNumber();
+ }
+ mapping.updateVisualization();
+ }
+ updateSequentialOrderVisualization();
+ }
+
+ private void updateSequentialOrderVisualization(){
+ SequentialUnit seq;
+ for(RefactoringUnit unit : this.getAllRefactoringUnits()) {
+ if(unit instanceof SequentialUnit) {
+ seq = (SequentialUnit) unit;
+ seq.updateSeqExecutionOrder();
+ }
+ }
+ }
+
+} //CompositeRefactoringImpl
diff --git a/org.eclipse.emf.refactor.comrel/src/comrel/impl/CompositeUnitImpl.java b/org.eclipse.emf.refactor.comrel/src/comrel/impl/CompositeUnitImpl.java
new file mode 100644
index 0000000..27a858a
--- /dev/null
+++ b/org.eclipse.emf.refactor.comrel/src/comrel/impl/CompositeUnitImpl.java
@@ -0,0 +1,43 @@
+/**
+ * <copyright>
+ * </copyright>
+ *
+ * $Id$
+ */
+package comrel.impl;
+
+import comrel.CompositeUnit;
+import comrel.ComrelPackage;
+
+import org.eclipse.emf.ecore.EClass;
+
+/**
+ * <!-- begin-user-doc -->
+ * An implementation of the model object '<em><b>Composite Unit</b></em>'.
+ * <!-- end-user-doc -->
+ * <p>
+ * </p>
+ *
+ * @generated
+ */
+public abstract class CompositeUnitImpl extends RefactoringUnitImpl implements CompositeUnit {
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected CompositeUnitImpl() {
+ super();
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ protected EClass eStaticClass() {
+ return ComrelPackage.Literals.COMPOSITE_UNIT;
+ }
+
+} //CompositeUnitImpl
diff --git a/org.eclipse.emf.refactor.comrel/src/comrel/impl/ComrelFactoryImpl.java b/org.eclipse.emf.refactor.comrel/src/comrel/impl/ComrelFactoryImpl.java
new file mode 100644
index 0000000..b37af8a
--- /dev/null
+++ b/org.eclipse.emf.refactor.comrel/src/comrel/impl/ComrelFactoryImpl.java
@@ -0,0 +1,549 @@
+/**
+ * <copyright>
+ * </copyright>
+ *
+ * $Id$
+ */
+package comrel.impl;
+
+import comrel.*;
+
+import org.eclipse.emf.ecore.EClass;
+import org.eclipse.emf.ecore.EDataType;
+import org.eclipse.emf.ecore.EObject;
+import org.eclipse.emf.ecore.EPackage;
+
+import org.eclipse.emf.ecore.impl.EFactoryImpl;
+
+import org.eclipse.emf.ecore.plugin.EcorePlugin;
+
+/**
+ * <!-- begin-user-doc -->
+ * An implementation of the model <b>Factory</b>.
+ * <!-- end-user-doc -->
+ * @generated
+ */
+public class ComrelFactoryImpl extends EFactoryImpl implements ComrelFactory {
+ /**
+ * Creates the default factory implementation.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public static ComrelFactory init() {
+ try {
+ ComrelFactory theComrelFactory = (ComrelFactory)EPackage.Registry.INSTANCE.getEFactory("http://comrel/0.1");
+ if (theComrelFactory != null) {
+ return theComrelFactory;
+ }
+ }
+ catch (Exception exception) {
+ EcorePlugin.INSTANCE.log(exception);
+ }
+ return new ComrelFactoryImpl();
+ }
+
+ /**
+ * Creates an instance of the factory.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public ComrelFactoryImpl() {
+ super();
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public EObject create(EClass eClass) {
+ switch (eClass.getClassifierID()) {
+ case ComrelPackage.COMPOSITE_REFACTORING: return createCompositeRefactoring();
+ case ComrelPackage.MODEL_REFACTORING: return createModelRefactoring();
+ case ComrelPackage.ATOMIC_UNIT: return createAtomicUnit();
+ case ComrelPackage.SEQUENTIAL_UNIT: return createSequentialUnit();
+ case ComrelPackage.CONDITION_CHECK: return createConditionCheck();
+ case ComrelPackage.CONDITIONAL_UNIT: return createConditionalUnit();
+ case ComrelPackage.SINGLE_QUEUED_UNIT: return createSingleQueuedUnit();
+ case ComrelPackage.CARTESIAN_QUEUED_UNIT: return createCartesianQueuedUnit();
+ case ComrelPackage.PARALLEL_QUEUED_UNIT: return createParallelQueuedUnit();
+ case ComrelPackage.SINGLE_FEATURE_UNIT: return createSingleFeatureUnit();
+ case ComrelPackage.MULTI_FEATURE_UNIT: return createMultiFeatureUnit();
+ case ComrelPackage.SINGLE_FILTER_UNIT: return createSingleFilterUnit();
+ case ComrelPackage.MULTI_FILTER_UNIT: return createMultiFilterUnit();
+ case ComrelPackage.SINGLE_FEATURE_HELPER: return createSingleFeatureHelper();
+ case ComrelPackage.MULTI_FEATURE_HELPER: return createMultiFeatureHelper();
+ case ComrelPackage.SINGLE_FILTER_HELPER: return createSingleFilterHelper();
+ case ComrelPackage.MULTI_FILTER_HELPER: return createMultiFilterHelper();
+ case ComrelPackage.SINGLE_INPUT_PORT: return createSingleInputPort();
+ case ComrelPackage.MULTI_INPUT_PORT: return createMultiInputPort();
+ case ComrelPackage.SINGLE_OUTPUT_PORT: return createSingleOutputPort();
+ case ComrelPackage.MULTI_OUTPUT_PORT: return createMultiOutputPort();
+ case ComrelPackage.SINGLE_PORT_MAPPING: return createSinglePortMapping();
+ case ComrelPackage.MULTI_PORT_MAPPING: return createMultiPortMapping();
+ case ComrelPackage.MULTI_SINGLE_PORT_MAPPING: return createMultiSinglePortMapping();
+ default:
+ throw new IllegalArgumentException("The class '" + eClass.getName() + "' is not a valid classifier");
+ }
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public Object createFromString(EDataType eDataType, String initialValue) {
+ switch (eDataType.getClassifierID()) {
+ case ComrelPackage.MAPPING_VISUALIZATION:
+ return createMappingVisualizationFromString(eDataType, initialValue);
+ default:
+ throw new IllegalArgumentException("The datatype '" + eDataType.getName() + "' is not a valid classifier");
+ }
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public String convertToString(EDataType eDataType, Object instanceValue) {
+ switch (eDataType.getClassifierID()) {
+ case ComrelPackage.MAPPING_VISUALIZATION:
+ return convertMappingVisualizationToString(eDataType, instanceValue);
+ default:
+ throw new IllegalArgumentException("The datatype '" + eDataType.getName() + "' is not a valid classifier");
+ }
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public CompositeRefactoring createCompositeRefactoring() {
+ CompositeRefactoringImpl compositeRefactoring = new CompositeRefactoringImpl();
+ return compositeRefactoring;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public ModelRefactoring createModelRefactoring() {
+ ModelRefactoringImpl modelRefactoring = new ModelRefactoringImpl();
+ return modelRefactoring;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public AtomicUnit createAtomicUnit() {
+ AtomicUnitImpl atomicUnit = new AtomicUnitImpl();
+ return atomicUnit;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public SequentialUnit createSequentialUnit() {
+ SequentialUnitImpl sequentialUnit = new SequentialUnitImpl();
+ return sequentialUnit;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public ConditionCheck createConditionCheck() {
+ ConditionCheckImpl conditionCheck = new ConditionCheckImpl();
+ return conditionCheck;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public ConditionalUnit createConditionalUnit() {
+ ConditionalUnitImpl conditionalUnit = new ConditionalUnitImpl();
+ return conditionalUnit;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public SingleQueuedUnit createSingleQueuedUnit() {
+ SingleQueuedUnitImpl singleQueuedUnit = new SingleQueuedUnitImpl();
+ singleQueuedUnit.setMultiInputPort(new MultiInputPortImpl());
+ return singleQueuedUnit;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public CartesianQueuedUnit createCartesianQueuedUnit() {
+ CartesianQueuedUnitImpl cartesianQueuedUnit = new CartesianQueuedUnitImpl();
+ // TODO
+ return cartesianQueuedUnit;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public ParallelQueuedUnit createParallelQueuedUnit() {
+ ParallelQueuedUnitImpl parallelQueuedUnit = new ParallelQueuedUnitImpl();
+ // TODO
+ return parallelQueuedUnit;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public SingleFeatureUnit createSingleFeatureUnit() {
+ SingleFeatureUnitImpl singleFeatureUnit = new SingleFeatureUnitImpl();
+
+ SingleInputPort inPort = this.createSingleInputPort();
+ inPort.setName("Dummy");
+ inPort.setDescription("Dummy");
+ inPort.setType(String.class);
+ inPort.setValue(new String("Dummy"));
+ singleFeatureUnit.setInputPort(inPort);
+
+ SingleOutputPort outPort = this.createSingleOutputPort();
+ outPort.setName("Dummy");
+ outPort.setDescription("Dummy");
+ outPort.setType(String.class);
+ outPort.setValue(new String("Dummy"));
+ singleFeatureUnit.setOutputPort(outPort);
+
+ return singleFeatureUnit;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public MultiFeatureUnit createMultiFeatureUnit() {
+ MultiFeatureUnitImpl multiFeatureUnit = new MultiFeatureUnitImpl();
+
+ SingleInputPort inPort = this.createSingleInputPort();
+ inPort.setName("Dummy");
+ inPort.setDescription("Dummy");
+ inPort.setType(String.class);
+ inPort.setValue(new String("Dummy"));
+ multiFeatureUnit.setInputPort(inPort);
+
+ MultiOutputPort outPort = this.createMultiOutputPort();
+ outPort.setName("Dummy");
+ outPort.setDescription("Dummy");
+ outPort.setType(String.class);
+ outPort.getValue().add("Dummy");
+ multiFeatureUnit.setOutputPort(outPort);
+
+ return multiFeatureUnit;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public SingleFilterUnit createSingleFilterUnit() {
+ SingleFilterUnitImpl singleFilterUnit = new SingleFilterUnitImpl();
+ return singleFilterUnit;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public MultiFilterUnit createMultiFilterUnit() {
+ MultiFilterUnitImpl multiFilterUnit = new MultiFilterUnitImpl();
+ return multiFilterUnit;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public SingleFeatureHelper createSingleFeatureHelper() {
+ SingleFeatureHelperImpl singleFeatureHelper = new SingleFeatureHelperImpl();
+ return singleFeatureHelper;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public MultiFeatureHelper createMultiFeatureHelper() {
+ MultiFeatureHelperImpl multiFeatureHelper = new MultiFeatureHelperImpl();
+ return multiFeatureHelper;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public SingleFilterHelper createSingleFilterHelper() {
+ SingleFilterHelperImpl singleFilterHelper = new SingleFilterHelperImpl();
+ return singleFilterHelper;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public MultiFilterHelper createMultiFilterHelper() {
+ MultiFilterHelperImpl multiFilterHelper = new MultiFilterHelperImpl();
+ return multiFilterHelper;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public SingleInputPort createSingleInputPort() {
+ SingleInputPortImpl singleInputPort = new SingleInputPortImpl();
+ return singleInputPort;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public MultiInputPort createMultiInputPort() {
+ MultiInputPortImpl multiInputPort = new MultiInputPortImpl();
+ return multiInputPort;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public SingleOutputPort createSingleOutputPort() {
+ SingleOutputPortImpl singleOutputPort = new SingleOutputPortImpl();
+ return singleOutputPort;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public MultiOutputPort createMultiOutputPort() {
+ MultiOutputPortImpl multiOutputPort = new MultiOutputPortImpl();
+ return multiOutputPort;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public SinglePortMapping createSinglePortMapping() {
+ SinglePortMappingImpl singlePortMapping = new SinglePortMappingImpl();
+ return singlePortMapping;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public MultiPortMapping createMultiPortMapping() {
+ MultiPortMappingImpl multiPortMapping = new MultiPortMappingImpl();
+ return multiPortMapping;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public MultiSinglePortMapping createMultiSinglePortMapping() {
+ MultiSinglePortMappingImpl multiSinglePortMapping = new MultiSinglePortMappingImpl();
+ return multiSinglePortMapping;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public MappingVisualization createMappingVisualizationFromString(EDataType eDataType, String initialValue) {
+ MappingVisualization result = MappingVisualization.get(initialValue);
+ if (result == null) throw new IllegalArgumentException("The value '" + initialValue + "' is not a valid enumerator of '" + eDataType.getName() + "'");
+ return result;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public String convertMappingVisualizationToString(EDataType eDataType, Object instanceValue) {
+ return instanceValue == null ? null : instanceValue.toString();
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public ComrelPackage getComrelPackage() {
+ return (ComrelPackage)getEPackage();
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @deprecated
+ * @generated
+ */
+ @Deprecated
+ public static ComrelPackage getPackage() {
+ return ComrelPackage.eINSTANCE;
+ }
+
+ @Override
+ public ModelRefactoring createModelRefactoring(String id) {
+ ModelRefactoring modelRefactoring = new ModelRefactoringImpl(id);
+ if(modelRefactoring.getInputPorts().size()==0) {
+ SingleInputPort port = new SingleInputPortImpl();
+ port.setName("Dummy");
+ port.setDescription("Dummy");
+ port.setType(String.class);
+ port.setValue("Dummy");
+ }
+ return modelRefactoring;
+ }
+
+ @Override
+ public AtomicUnit createAtomicUnit(ModelRefactoring refactoring) {
+ AtomicUnit atomicUnit = new AtomicUnitImpl(refactoring);
+ return atomicUnit;
+ }
+
+ @Override
+ public SingleFeatureUnit createSingleFeatureUnit(SingleFeatureHelper helper) {
+ SingleFeatureUnitImpl singleFeatureUnit = new SingleFeatureUnitImpl(helper);
+ if(singleFeatureUnit.getInputPort() == null) {
+ SingleInputPort inPort = this.createSingleInputPort();
+ inPort.setName("Dummy");
+ inPort.setDescription("Dummy");
+ inPort.setType(String.class);
+ inPort.setValue(new String("Dummy"));
+ singleFeatureUnit.setInputPort(inPort);
+ }
+ if(singleFeatureUnit.getOutputPort() == null) {
+ SingleOutputPort outPort = this.createSingleOutputPort();
+ outPort.setName("Dummy");
+ outPort.setDescription("Dummy");
+ outPort.setType(String.class);
+ outPort.setValue(new String("Dummy"));
+ singleFeatureUnit.setOutputPort(outPort);
+ }
+
+ return singleFeatureUnit;
+ }
+
+ @Override
+ public MultiFeatureUnit createMultiFeatureUnit(MultiFeatureHelper helper) {
+ MultiFeatureUnitImpl multiFeatureUnit = new MultiFeatureUnitImpl(helper);
+
+ if(multiFeatureUnit.getInputPort() == null) {
+ SingleInputPort inPort = this.createSingleInputPort();
+ inPort.setName("Dummy");
+ inPort.setDescription("Dummy");
+ inPort.setType(String.class);
+ inPort.setValue(new String("Dummy"));
+ multiFeatureUnit.setInputPort(inPort);
+ }
+ if(multiFeatureUnit.getOutputPort() == null) {
+ MultiOutputPort outPort = this.createMultiOutputPort();
+ outPort.setName("Dummy");
+ outPort.setDescription("Dummy");
+ outPort.setType(String.class);
+ outPort.getValue().add(new String("Dummy"));
+ multiFeatureUnit.setOutputPort(outPort);
+ }
+
+ return multiFeatureUnit;
+ }
+
+ @Override
+ public SingleFilterUnit createSingleFilterUnit(SingleFilterHelper helper) {
+ SingleFilterUnitImpl filterUnit = new SingleFilterUnitImpl(helper);
+
+ if(filterUnit.getInputPort() == null) {
+ MultiInputPort inPort = this.createMultiInputPort();
+ inPort.setName("Dummy");
+ inPort.setDescription("Dummy");
+ inPort.setType(String.class);
+ inPort.getValue().add(new String("Dummy"));
+ filterUnit.setInputPort(inPort);
+ }
+ if(filterUnit.getOutputPort() == null) {
+ SingleOutputPort outPort = this.createSingleOutputPort();
+ outPort.setName("Dummy");
+ outPort.setDescription("Dummy");
+ outPort.setType(String.class);
+ outPort.setValue(new String("Dummy"));
+ filterUnit.setOutputPort(outPort);
+ }
+ return filterUnit;
+ }
+
+ @Override
+ public MultiFilterUnit createMultiFilterUnit(MultiFilterHelper helper) {
+ MultiFilterUnitImpl filterUnit = new MultiFilterUnitImpl(helper);
+
+ if(filterUnit.getInputPort() == null) {
+ MultiInputPort inPort = this.createMultiInputPort();
+ inPort.setName("Dummy");
+ inPort.setDescription("Dummy");
+ inPort.setType(String.class);
+ inPort.getValue().add(new String("Dummy"));
+ filterUnit.setInputPort(inPort);
+ }
+ if(filterUnit.getOutputPort() == null) {
+ MultiOutputPort outPort = this.createMultiOutputPort();
+ outPort.setName("Dummy");
+ outPort.setDescription("Dummy");
+ outPort.setType(String.class);
+ outPort.getValue().add(new String("Dummy"));
+ filterUnit.setOutputPort(outPort);
+ }
+
+ return filterUnit;
+ }
+
+} //ComrelFactoryImpl
diff --git a/org.eclipse.emf.refactor.comrel/src/comrel/impl/ComrelPackageImpl.java b/org.eclipse.emf.refactor.comrel/src/comrel/impl/ComrelPackageImpl.java
new file mode 100644
index 0000000..6d5e299
--- /dev/null
+++ b/org.eclipse.emf.refactor.comrel/src/comrel/impl/ComrelPackageImpl.java
@@ -0,0 +1,2610 @@
+/**
+ * <copyright>
+ * </copyright>
+ *
+ * $Id$
+ */
+package comrel.impl;
+
+import comrel.AtomicUnit;
+import comrel.CartesianQueuedUnit;
+import comrel.CompositeRefactoring;
+import comrel.CompositeUnit;
+import comrel.ComrelFactory;
+import comrel.ComrelPackage;
+import comrel.ConditionCheck;
+import comrel.ConditionalUnit;
+import comrel.DescribedElement;
+import comrel.FeatureHelper;
+import comrel.FeatureUnit;
+import comrel.FilterHelper;
+import comrel.FilterUnit;
+import comrel.Helper;
+import comrel.HelperUnit;
+import comrel.InputPort;
+import comrel.MappingVisualization;
+import comrel.ModelRefactoring;
+import comrel.MultiFeatureHelper;
+import comrel.MultiFeatureUnit;
+import comrel.MultiFilterHelper;
+import comrel.MultiFilterUnit;
+import comrel.MultiInputPort;
+import comrel.MultiOutputPort;
+import comrel.MultiPort;
+import comrel.MultiPortMapping;
+import comrel.MultiSinglePortMapping;
+import comrel.NamedElement;
+import comrel.OutputPort;
+import comrel.ParallelQueuedUnit;
+import comrel.Port;
+import comrel.PortMapping;
+import comrel.QueuedUnit;
+import comrel.RefactoringUnit;
+import comrel.SequentialUnit;
+import comrel.SingleFeatureHelper;
+import comrel.SingleFeatureUnit;
+import comrel.SingleFilterHelper;
+import comrel.SingleFilterUnit;
+import comrel.SingleInputPort;
+import comrel.SingleOutputPort;
+import comrel.SinglePort;
+import comrel.SinglePortMapping;
+import comrel.SingleQueuedUnit;
+import comrel.TwicedQueuedUnit;
+
+import org.eclipse.emf.ecore.EAttribute;
+import org.eclipse.emf.ecore.EClass;
+import org.eclipse.emf.ecore.EEnum;
+import org.eclipse.emf.ecore.EOperation;
+import org.eclipse.emf.ecore.EPackage;
+import org.eclipse.emf.ecore.EReference;
+
+import org.eclipse.emf.ecore.impl.EPackageImpl;
+
+/**
+ * <!-- begin-user-doc -->
+ * An implementation of the model <b>Package</b>.
+ * <!-- end-user-doc -->
+ * @generated
+ */
+public class ComrelPackageImpl extends EPackageImpl implements ComrelPackage {
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ private EClass compositeRefactoringEClass = null;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ private EClass namedElementEClass = null;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ private EClass describedElementEClass = null;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ private EClass refactoringUnitEClass = null;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ private EClass modelRefactoringEClass = null;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ private EClass atomicUnitEClass = null;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ private EClass compositeUnitEClass = null;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ private EClass sequentialUnitEClass = null;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ private EClass conditionCheckEClass = null;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ private EClass conditionalUnitEClass = null;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ private EClass queuedUnitEClass = null;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ private EClass singleQueuedUnitEClass = null;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ private EClass twicedQueuedUnitEClass = null;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ private EClass cartesianQueuedUnitEClass = null;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ private EClass parallelQueuedUnitEClass = null;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ private EClass helperUnitEClass = null;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ private EClass featureUnitEClass = null;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ private EClass singleFeatureUnitEClass = null;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ private EClass multiFeatureUnitEClass = null;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ private EClass filterUnitEClass = null;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ private EClass singleFilterUnitEClass = null;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ private EClass multiFilterUnitEClass = null;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ private EClass helperEClass = null;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ private EClass featureHelperEClass = null;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ private EClass singleFeatureHelperEClass = null;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ private EClass multiFeatureHelperEClass = null;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ private EClass filterHelperEClass = null;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ private EClass singleFilterHelperEClass = null;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ private EClass multiFilterHelperEClass = null;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ private EClass portEClass = null;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ private EClass singlePortEClass = null;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ private EClass multiPortEClass = null;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ private EClass inputPortEClass = null;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ private EClass outputPortEClass = null;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ private EClass singleInputPortEClass = null;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ private EClass multiInputPortEClass = null;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ private EClass singleOutputPortEClass = null;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ private EClass multiOutputPortEClass = null;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ private EClass portMappingEClass = null;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ private EClass singlePortMappingEClass = null;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ private EClass multiPortMappingEClass = null;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ private EClass multiSinglePortMappingEClass = null;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ private EEnum mappingVisualizationEEnum = null;
+
+ /**
+ * Creates an instance of the model <b>Package</b>, registered with
+ * {@link org.eclipse.emf.ecore.EPackage.Registry EPackage.Registry} by the package
+ * package URI value.
+ * <p>Note: the correct way to create the package is via the static
+ * factory method {@link #init init()}, which also performs
+ * initialization of the package, or returns the registered package,
+ * if one already exists.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see org.eclipse.emf.ecore.EPackage.Registry
+ * @see comrel.ComrelPackage#eNS_URI
+ * @see #init()
+ * @generated
+ */
+ private ComrelPackageImpl() {
+ super(eNS_URI, ComrelFactory.eINSTANCE);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ private static boolean isInited = false;
+
+ /**
+ * Creates, registers, and initializes the <b>Package</b> for this model, and for any others upon which it depends.
+ *
+ * <p>This method is used to initialize {@link ComrelPackage#eINSTANCE} when that field is accessed.
+ * Clients should not invoke it directly. Instead, they should simply access that field to obtain the package.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #eNS_URI
+ * @see #createPackageContents()
+ * @see #initializePackageContents()
+ * @generated
+ */
+ public static ComrelPackage init() {
+ if (isInited) return (ComrelPackage)EPackage.Registry.INSTANCE.getEPackage(ComrelPackage.eNS_URI);
+
+ // Obtain or create and register package
+ ComrelPackageImpl theComrelPackage = (ComrelPackageImpl)(EPackage.Registry.INSTANCE.get(eNS_URI) instanceof ComrelPackageImpl ? EPackage.Registry.INSTANCE.get(eNS_URI) : new ComrelPackageImpl());
+
+ isInited = true;
+
+ // Create package meta-data objects
+ theComrelPackage.createPackageContents();
+
+ // Initialize created meta-data
+ theComrelPackage.initializePackageContents();
+
+ // Mark meta-data to indicate it can't be changed
+ theComrelPackage.freeze();
+
+
+ // Update the registry and return the package
+ EPackage.Registry.INSTANCE.put(ComrelPackage.eNS_URI, theComrelPackage);
+ return theComrelPackage;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EClass getCompositeRefactoring() {
+ return compositeRefactoringEClass;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EReference getCompositeRefactoring_MainRefactoringUnit() {
+ return (EReference)compositeRefactoringEClass.getEStructuralFeatures().get(0);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EReference getCompositeRefactoring_PortMappings() {
+ return (EReference)compositeRefactoringEClass.getEStructuralFeatures().get(1);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EReference getCompositeRefactoring_ModelRefactorings() {
+ return (EReference)compositeRefactoringEClass.getEStructuralFeatures().get(2);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EReference getCompositeRefactoring_Helper() {
+ return (EReference)compositeRefactoringEClass.getEStructuralFeatures().get(3);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EAttribute getCompositeRefactoring_MappingVisualization() {
+ return (EAttribute)compositeRefactoringEClass.getEStructuralFeatures().get(4);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EAttribute getCompositeRefactoring_CustomInitialCondition() {
+ return (EAttribute)compositeRefactoringEClass.getEStructuralFeatures().get(5);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EAttribute getCompositeRefactoring_CustomFinalCondition() {
+ return (EAttribute)compositeRefactoringEClass.getEStructuralFeatures().get(6);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EClass getNamedElement() {
+ return namedElementEClass;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EAttribute getNamedElement_Name() {
+ return (EAttribute)namedElementEClass.getEStructuralFeatures().get(0);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EClass getDescribedElement() {
+ return describedElementEClass;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EAttribute getDescribedElement_Description() {
+ return (EAttribute)describedElementEClass.getEStructuralFeatures().get(0);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EClass getRefactoringUnit() {
+ return refactoringUnitEClass;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EAttribute getRefactoringUnit_SeqExecutionOrder() {
+ return (EAttribute)refactoringUnitEClass.getEStructuralFeatures().get(0);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EClass getModelRefactoring() {
+ return modelRefactoringEClass;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EAttribute getModelRefactoring_RefId() {
+ return (EAttribute)modelRefactoringEClass.getEStructuralFeatures().get(0);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EAttribute getModelRefactoring_Label() {
+ return (EAttribute)modelRefactoringEClass.getEStructuralFeatures().get(1);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EAttribute getModelRefactoring_NamespaceUri() {
+ return (EAttribute)modelRefactoringEClass.getEStructuralFeatures().get(2);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EReference getModelRefactoring_InputPorts() {
+ return (EReference)modelRefactoringEClass.getEStructuralFeatures().get(3);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EClass getAtomicUnit() {
+ return atomicUnitEClass;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EReference getAtomicUnit_InputPorts() {
+ return (EReference)atomicUnitEClass.getEStructuralFeatures().get(0);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EAttribute getAtomicUnit_UnitId() {
+ return (EAttribute)atomicUnitEClass.getEStructuralFeatures().get(1);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EAttribute getAtomicUnit_Label() {
+ return (EAttribute)atomicUnitEClass.getEStructuralFeatures().get(2);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EAttribute getAtomicUnit_NamespaceUri() {
+ return (EAttribute)atomicUnitEClass.getEStructuralFeatures().get(3);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EAttribute getAtomicUnit_Type() {
+ return (EAttribute)atomicUnitEClass.getEStructuralFeatures().get(4);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EReference getAtomicUnit_ModelRefactoring() {
+ return (EReference)atomicUnitEClass.getEStructuralFeatures().get(5);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EAttribute getAtomicUnit_CheckInitialConditionFlag() {
+ return (EAttribute)atomicUnitEClass.getEStructuralFeatures().get(6);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EAttribute getAtomicUnit_CheckFinalConditionFlag() {
+ return (EAttribute)atomicUnitEClass.getEStructuralFeatures().get(7);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EClass getCompositeUnit() {
+ return compositeUnitEClass;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EClass getSequentialUnit() {
+ return sequentialUnitEClass;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EReference getSequentialUnit_HelperUnits() {
+ return (EReference)sequentialUnitEClass.getEStructuralFeatures().get(0);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EReference getSequentialUnit_RefactoringUnits() {
+ return (EReference)sequentialUnitEClass.getEStructuralFeatures().get(1);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EReference getSequentialUnit_InputPorts() {
+ return (EReference)sequentialUnitEClass.getEStructuralFeatures().get(2);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EAttribute getSequentialUnit_Strict() {
+ return (EAttribute)sequentialUnitEClass.getEStructuralFeatures().get(3);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EAttribute getSequentialUnit_Type() {
+ return (EAttribute)sequentialUnitEClass.getEStructuralFeatures().get(4);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EAttribute getSequentialUnit_LblStrict() {
+ return (EAttribute)sequentialUnitEClass.getEStructuralFeatures().get(5);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EClass getConditionCheck() {
+ return conditionCheckEClass;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EAttribute getConditionCheck_Type() {
+ return (EAttribute)conditionCheckEClass.getEStructuralFeatures().get(0);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EAttribute getConditionCheck_Spec() {
+ return (EAttribute)conditionCheckEClass.getEStructuralFeatures().get(1);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EClass getConditionalUnit() {
+ return conditionalUnitEClass;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EReference getConditionalUnit_If() {
+ return (EReference)conditionalUnitEClass.getEStructuralFeatures().get(0);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EReference getConditionalUnit_HelperUnits() {
+ return (EReference)conditionalUnitEClass.getEStructuralFeatures().get(1);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EReference getConditionalUnit_Then() {
+ return (EReference)conditionalUnitEClass.getEStructuralFeatures().get(2);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EReference getConditionalUnit_Else() {
+ return (EReference)conditionalUnitEClass.getEStructuralFeatures().get(3);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EReference getConditionalUnit_InputPorts() {
+ return (EReference)conditionalUnitEClass.getEStructuralFeatures().get(4);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EAttribute getConditionalUnit_Type() {
+ return (EAttribute)conditionalUnitEClass.getEStructuralFeatures().get(5);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EClass getQueuedUnit() {
+ return queuedUnitEClass;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EAttribute getQueuedUnit_Strict() {
+ return (EAttribute)queuedUnitEClass.getEStructuralFeatures().get(0);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EClass getSingleQueuedUnit() {
+ return singleQueuedUnitEClass;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EReference getSingleQueuedUnit_HelperUnits() {
+ return (EReference)singleQueuedUnitEClass.getEStructuralFeatures().get(0);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EReference getSingleQueuedUnit_RefactoringUnit() {
+ return (EReference)singleQueuedUnitEClass.getEStructuralFeatures().get(1);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EReference getSingleQueuedUnit_SingleInputPorts() {
+ return (EReference)singleQueuedUnitEClass.getEStructuralFeatures().get(2);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EReference getSingleQueuedUnit_MultiInputPort() {
+ return (EReference)singleQueuedUnitEClass.getEStructuralFeatures().get(3);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EAttribute getSingleQueuedUnit_Type() {
+ return (EAttribute)singleQueuedUnitEClass.getEStructuralFeatures().get(4);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EAttribute getSingleQueuedUnit_LblStrict() {
+ return (EAttribute)singleQueuedUnitEClass.getEStructuralFeatures().get(5);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EClass getTwicedQueuedUnit() {
+ return twicedQueuedUnitEClass;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EClass getCartesianQueuedUnit() {
+ return cartesianQueuedUnitEClass;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EReference getCartesianQueuedUnit_HelperUnits() {
+ return (EReference)cartesianQueuedUnitEClass.getEStructuralFeatures().get(0);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EReference getCartesianQueuedUnit_RefactoringUnit() {
+ return (EReference)cartesianQueuedUnitEClass.getEStructuralFeatures().get(1);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EReference getCartesianQueuedUnit_SingleInputPorts() {
+ return (EReference)cartesianQueuedUnitEClass.getEStructuralFeatures().get(2);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EReference getCartesianQueuedUnit_MultiInputPorts() {
+ return (EReference)cartesianQueuedUnitEClass.getEStructuralFeatures().get(3);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EAttribute getCartesianQueuedUnit_Type() {
+ return (EAttribute)cartesianQueuedUnitEClass.getEStructuralFeatures().get(4);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EAttribute getCartesianQueuedUnit_LblStrict() {
+ return (EAttribute)cartesianQueuedUnitEClass.getEStructuralFeatures().get(5);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EClass getParallelQueuedUnit() {
+ return parallelQueuedUnitEClass;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EReference getParallelQueuedUnit_HelperUnits() {
+ return (EReference)parallelQueuedUnitEClass.getEStructuralFeatures().get(0);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EReference getParallelQueuedUnit_RefactoringUnits() {
+ return (EReference)parallelQueuedUnitEClass.getEStructuralFeatures().get(1);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EReference getParallelQueuedUnit_SingleInputPorts() {
+ return (EReference)parallelQueuedUnitEClass.getEStructuralFeatures().get(2);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EReference getParallelQueuedUnit_MultiInputPorts() {
+ return (EReference)parallelQueuedUnitEClass.getEStructuralFeatures().get(3);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EAttribute getParallelQueuedUnit_Type() {
+ return (EAttribute)parallelQueuedUnitEClass.getEStructuralFeatures().get(4);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EAttribute getParallelQueuedUnit_LblStrict() {
+ return (EAttribute)parallelQueuedUnitEClass.getEStructuralFeatures().get(5);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EClass getHelperUnit() {
+ return helperUnitEClass;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EAttribute getHelperUnit_HelperUnitId() {
+ return (EAttribute)helperUnitEClass.getEStructuralFeatures().get(0);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EAttribute getHelperUnit_NamespaceUri() {
+ return (EAttribute)helperUnitEClass.getEStructuralFeatures().get(1);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EClass getFeatureUnit() {
+ return featureUnitEClass;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EClass getSingleFeatureUnit() {
+ return singleFeatureUnitEClass;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EReference getSingleFeatureUnit_InputPort() {
+ return (EReference)singleFeatureUnitEClass.getEStructuralFeatures().get(0);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EReference getSingleFeatureUnit_SecondaryInputPorts() {
+ return (EReference)singleFeatureUnitEClass.getEStructuralFeatures().get(1);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EReference getSingleFeatureUnit_OutputPort() {
+ return (EReference)singleFeatureUnitEClass.getEStructuralFeatures().get(2);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EReference getSingleFeatureUnit_SingleFeatureHelper() {
+ return (EReference)singleFeatureUnitEClass.getEStructuralFeatures().get(3);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EAttribute getSingleFeatureUnit_Type() {
+ return (EAttribute)singleFeatureUnitEClass.getEStructuralFeatures().get(4);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EClass getMultiFeatureUnit() {
+ return multiFeatureUnitEClass;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EReference getMultiFeatureUnit_InputPort() {
+ return (EReference)multiFeatureUnitEClass.getEStructuralFeatures().get(0);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EReference getMultiFeatureUnit_SecondaryInputPorts() {
+ return (EReference)multiFeatureUnitEClass.getEStructuralFeatures().get(1);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EReference getMultiFeatureUnit_OutputPort() {
+ return (EReference)multiFeatureUnitEClass.getEStructuralFeatures().get(2);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EReference getMultiFeatureUnit_MultiFeatureHelper() {
+ return (EReference)multiFeatureUnitEClass.getEStructuralFeatures().get(3);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EAttribute getMultiFeatureUnit_Type() {
+ return (EAttribute)multiFeatureUnitEClass.getEStructuralFeatures().get(4);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EClass getFilterUnit() {
+ return filterUnitEClass;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EClass getSingleFilterUnit() {
+ return singleFilterUnitEClass;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EReference getSingleFilterUnit_InputPort() {
+ return (EReference)singleFilterUnitEClass.getEStructuralFeatures().get(0);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EReference getSingleFilterUnit_OutputPort() {
+ return (EReference)singleFilterUnitEClass.getEStructuralFeatures().get(1);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EReference getSingleFilterUnit_SingleFilterHelper() {
+ return (EReference)singleFilterUnitEClass.getEStructuralFeatures().get(2);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EAttribute getSingleFilterUnit_Type() {
+ return (EAttribute)singleFilterUnitEClass.getEStructuralFeatures().get(3);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EClass getMultiFilterUnit() {
+ return multiFilterUnitEClass;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EReference getMultiFilterUnit_InputPort() {
+ return (EReference)multiFilterUnitEClass.getEStructuralFeatures().get(0);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EReference getMultiFilterUnit_OutputPort() {
+ return (EReference)multiFilterUnitEClass.getEStructuralFeatures().get(1);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EReference getMultiFilterUnit_MultiFilterHelper() {
+ return (EReference)multiFilterUnitEClass.getEStructuralFeatures().get(2);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EAttribute getMultiFilterUnit_Type() {
+ return (EAttribute)multiFilterUnitEClass.getEStructuralFeatures().get(3);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EClass getHelper() {
+ return helperEClass;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EAttribute getHelper_HelperId() {
+ return (EAttribute)helperEClass.getEStructuralFeatures().get(0);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EAttribute getHelper_NamespaceUri() {
+ return (EAttribute)helperEClass.getEStructuralFeatures().get(1);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EClass getFeatureHelper() {
+ return featureHelperEClass;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EReference getFeatureHelper_InputPort() {
+ return (EReference)featureHelperEClass.getEStructuralFeatures().get(0);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EReference getFeatureHelper_SecondaryInputPorts() {
+ return (EReference)featureHelperEClass.getEStructuralFeatures().get(1);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EClass getSingleFeatureHelper() {
+ return singleFeatureHelperEClass;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EReference getSingleFeatureHelper_OutputPort() {
+ return (EReference)singleFeatureHelperEClass.getEStructuralFeatures().get(0);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EClass getMultiFeatureHelper() {
+ return multiFeatureHelperEClass;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EReference getMultiFeatureHelper_OutputPort() {
+ return (EReference)multiFeatureHelperEClass.getEStructuralFeatures().get(0);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EClass getFilterHelper() {
+ return filterHelperEClass;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EReference getFilterHelper_InputPort() {
+ return (EReference)filterHelperEClass.getEStructuralFeatures().get(0);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EClass getSingleFilterHelper() {
+ return singleFilterHelperEClass;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EReference getSingleFilterHelper_OutputPort() {
+ return (EReference)singleFilterHelperEClass.getEStructuralFeatures().get(0);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EClass getMultiFilterHelper() {
+ return multiFilterHelperEClass;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EReference getMultiFilterHelper_OutputPort() {
+ return (EReference)multiFilterHelperEClass.getEStructuralFeatures().get(0);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EClass getPort() {
+ return portEClass;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EAttribute getPort_Type() {
+ return (EAttribute)portEClass.getEStructuralFeatures().get(0);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EClass getSinglePort() {
+ return singlePortEClass;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EAttribute getSinglePort_Value() {
+ return (EAttribute)singlePortEClass.getEStructuralFeatures().get(0);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EClass getMultiPort() {
+ return multiPortEClass;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EAttribute getMultiPort_Value() {
+ return (EAttribute)multiPortEClass.getEStructuralFeatures().get(0);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EClass getInputPort() {
+ return inputPortEClass;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EClass getOutputPort() {
+ return outputPortEClass;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EClass getSingleInputPort() {
+ return singleInputPortEClass;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EClass getMultiInputPort() {
+ return multiInputPortEClass;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EClass getSingleOutputPort() {
+ return singleOutputPortEClass;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EClass getMultiOutputPort() {
+ return multiOutputPortEClass;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EClass getPortMapping() {
+ return portMappingEClass;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EClass getSinglePortMapping() {
+ return singlePortMappingEClass;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EReference getSinglePortMapping_Source() {
+ return (EReference)singlePortMappingEClass.getEStructuralFeatures().get(0);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EReference getSinglePortMapping_Target() {
+ return (EReference)singlePortMappingEClass.getEStructuralFeatures().get(1);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EClass getMultiPortMapping() {
+ return multiPortMappingEClass;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EReference getMultiPortMapping_Source() {
+ return (EReference)multiPortMappingEClass.getEStructuralFeatures().get(0);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EReference getMultiPortMapping_Target() {
+ return (EReference)multiPortMappingEClass.getEStructuralFeatures().get(1);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EClass getMultiSinglePortMapping() {
+ return multiSinglePortMappingEClass;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EReference getMultiSinglePortMapping_Source() {
+ return (EReference)multiSinglePortMappingEClass.getEStructuralFeatures().get(0);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EReference getMultiSinglePortMapping_Target() {
+ return (EReference)multiSinglePortMappingEClass.getEStructuralFeatures().get(1);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EEnum getMappingVisualization() {
+ return mappingVisualizationEEnum;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public ComrelFactory getComrelFactory() {
+ return (ComrelFactory)getEFactoryInstance();
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ private boolean isCreated = false;
+
+ /**
+ * Creates the meta-model objects for the package. This method is
+ * guarded to have no affect on any invocation but its first.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public void createPackageContents() {
+ if (isCreated) return;
+ isCreated = true;
+
+ // Create classes and their features
+ compositeRefactoringEClass = createEClass(COMPOSITE_REFACTORING);
+ createEReference(compositeRefactoringEClass, COMPOSITE_REFACTORING__MAIN_REFACTORING_UNIT);
+ createEReference(compositeRefactoringEClass, COMPOSITE_REFACTORING__PORT_MAPPINGS);
+ createEReference(compositeRefactoringEClass, COMPOSITE_REFACTORING__MODEL_REFACTORINGS);
+ createEReference(compositeRefactoringEClass, COMPOSITE_REFACTORING__HELPER);
+ createEAttribute(compositeRefactoringEClass, COMPOSITE_REFACTORING__MAPPING_VISUALIZATION);
+ createEAttribute(compositeRefactoringEClass, COMPOSITE_REFACTORING__CUSTOM_INITIAL_CONDITION);
+ createEAttribute(compositeRefactoringEClass, COMPOSITE_REFACTORING__CUSTOM_FINAL_CONDITION);
+
+ namedElementEClass = createEClass(NAMED_ELEMENT);
+ createEAttribute(namedElementEClass, NAMED_ELEMENT__NAME);
+
+ describedElementEClass = createEClass(DESCRIBED_ELEMENT);
+ createEAttribute(describedElementEClass, DESCRIBED_ELEMENT__DESCRIPTION);
+
+ refactoringUnitEClass = createEClass(REFACTORING_UNIT);
+ createEAttribute(refactoringUnitEClass, REFACTORING_UNIT__SEQ_EXECUTION_ORDER);
+
+ modelRefactoringEClass = createEClass(MODEL_REFACTORING);
+ createEAttribute(modelRefactoringEClass, MODEL_REFACTORING__REF_ID);
+ createEAttribute(modelRefactoringEClass, MODEL_REFACTORING__LABEL);
+ createEAttribute(modelRefactoringEClass, MODEL_REFACTORING__NAMESPACE_URI);
+ createEReference(modelRefactoringEClass, MODEL_REFACTORING__INPUT_PORTS);
+
+ atomicUnitEClass = createEClass(ATOMIC_UNIT);
+ createEReference(atomicUnitEClass, ATOMIC_UNIT__INPUT_PORTS);
+ createEAttribute(atomicUnitEClass, ATOMIC_UNIT__UNIT_ID);
+ createEAttribute(atomicUnitEClass, ATOMIC_UNIT__LABEL);
+ createEAttribute(atomicUnitEClass, ATOMIC_UNIT__NAMESPACE_URI);
+ createEAttribute(atomicUnitEClass, ATOMIC_UNIT__TYPE);
+ createEReference(atomicUnitEClass, ATOMIC_UNIT__MODEL_REFACTORING);
+ createEAttribute(atomicUnitEClass, ATOMIC_UNIT__CHECK_INITIAL_CONDITION_FLAG);
+ createEAttribute(atomicUnitEClass, ATOMIC_UNIT__CHECK_FINAL_CONDITION_FLAG);
+
+ compositeUnitEClass = createEClass(COMPOSITE_UNIT);
+
+ sequentialUnitEClass = createEClass(SEQUENTIAL_UNIT);
+ createEReference(sequentialUnitEClass, SEQUENTIAL_UNIT__HELPER_UNITS);
+ createEReference(sequentialUnitEClass, SEQUENTIAL_UNIT__REFACTORING_UNITS);
+ createEReference(sequentialUnitEClass, SEQUENTIAL_UNIT__INPUT_PORTS);
+ createEAttribute(sequentialUnitEClass, SEQUENTIAL_UNIT__STRICT);
+ createEAttribute(sequentialUnitEClass, SEQUENTIAL_UNIT__TYPE);
+ createEAttribute(sequentialUnitEClass, SEQUENTIAL_UNIT__LBL_STRICT);
+
+ conditionCheckEClass = createEClass(CONDITION_CHECK);
+ createEAttribute(conditionCheckEClass, CONDITION_CHECK__TYPE);
+ createEAttribute(conditionCheckEClass, CONDITION_CHECK__SPEC);
+
+ conditionalUnitEClass = createEClass(CONDITIONAL_UNIT);
+ createEReference(conditionalUnitEClass, CONDITIONAL_UNIT__IF);
+ createEReference(conditionalUnitEClass, CONDITIONAL_UNIT__HELPER_UNITS);
+ createEReference(conditionalUnitEClass, CONDITIONAL_UNIT__THEN);
+ createEReference(conditionalUnitEClass, CONDITIONAL_UNIT__ELSE);
+ createEReference(conditionalUnitEClass, CONDITIONAL_UNIT__INPUT_PORTS);
+ createEAttribute(conditionalUnitEClass, CONDITIONAL_UNIT__TYPE);
+
+ queuedUnitEClass = createEClass(QUEUED_UNIT);
+ createEAttribute(queuedUnitEClass, QUEUED_UNIT__STRICT);
+
+ singleQueuedUnitEClass = createEClass(SINGLE_QUEUED_UNIT);
+ createEReference(singleQueuedUnitEClass, SINGLE_QUEUED_UNIT__HELPER_UNITS);
+ createEReference(singleQueuedUnitEClass, SINGLE_QUEUED_UNIT__REFACTORING_UNIT);
+ createEReference(singleQueuedUnitEClass, SINGLE_QUEUED_UNIT__SINGLE_INPUT_PORTS);
+ createEReference(singleQueuedUnitEClass, SINGLE_QUEUED_UNIT__MULTI_INPUT_PORT);
+ createEAttribute(singleQueuedUnitEClass, SINGLE_QUEUED_UNIT__TYPE);
+ createEAttribute(singleQueuedUnitEClass, SINGLE_QUEUED_UNIT__LBL_STRICT);
+
+ twicedQueuedUnitEClass = createEClass(TWICED_QUEUED_UNIT);
+
+ cartesianQueuedUnitEClass = createEClass(CARTESIAN_QUEUED_UNIT);
+ createEReference(cartesianQueuedUnitEClass, CARTESIAN_QUEUED_UNIT__HELPER_UNITS);
+ createEReference(cartesianQueuedUnitEClass, CARTESIAN_QUEUED_UNIT__REFACTORING_UNIT);
+ createEReference(cartesianQueuedUnitEClass, CARTESIAN_QUEUED_UNIT__SINGLE_INPUT_PORTS);
+ createEReference(cartesianQueuedUnitEClass, CARTESIAN_QUEUED_UNIT__MULTI_INPUT_PORTS);
+ createEAttribute(cartesianQueuedUnitEClass, CARTESIAN_QUEUED_UNIT__TYPE);
+ createEAttribute(cartesianQueuedUnitEClass, CARTESIAN_QUEUED_UNIT__LBL_STRICT);
+
+ parallelQueuedUnitEClass = createEClass(PARALLEL_QUEUED_UNIT);
+ createEReference(parallelQueuedUnitEClass, PARALLEL_QUEUED_UNIT__HELPER_UNITS);
+ createEReference(parallelQueuedUnitEClass, PARALLEL_QUEUED_UNIT__REFACTORING_UNITS);
+ createEReference(parallelQueuedUnitEClass, PARALLEL_QUEUED_UNIT__SINGLE_INPUT_PORTS);
+ createEReference(parallelQueuedUnitEClass, PARALLEL_QUEUED_UNIT__MULTI_INPUT_PORTS);
+ createEAttribute(parallelQueuedUnitEClass, PARALLEL_QUEUED_UNIT__TYPE);
+ createEAttribute(parallelQueuedUnitEClass, PARALLEL_QUEUED_UNIT__LBL_STRICT);
+
+ helperUnitEClass = createEClass(HELPER_UNIT);
+ createEAttribute(helperUnitEClass, HELPER_UNIT__HELPER_UNIT_ID);
+ createEAttribute(helperUnitEClass, HELPER_UNIT__NAMESPACE_URI);
+
+ featureUnitEClass = createEClass(FEATURE_UNIT);
+
+ singleFeatureUnitEClass = createEClass(SINGLE_FEATURE_UNIT);
+ createEReference(singleFeatureUnitEClass, SINGLE_FEATURE_UNIT__INPUT_PORT);
+ createEReference(singleFeatureUnitEClass, SINGLE_FEATURE_UNIT__SECONDARY_INPUT_PORTS);
+ createEReference(singleFeatureUnitEClass, SINGLE_FEATURE_UNIT__OUTPUT_PORT);
+ createEReference(singleFeatureUnitEClass, SINGLE_FEATURE_UNIT__SINGLE_FEATURE_HELPER);
+ createEAttribute(singleFeatureUnitEClass, SINGLE_FEATURE_UNIT__TYPE);
+
+ multiFeatureUnitEClass = createEClass(MULTI_FEATURE_UNIT);
+ createEReference(multiFeatureUnitEClass, MULTI_FEATURE_UNIT__INPUT_PORT);
+ createEReference(multiFeatureUnitEClass, MULTI_FEATURE_UNIT__SECONDARY_INPUT_PORTS);
+ createEReference(multiFeatureUnitEClass, MULTI_FEATURE_UNIT__OUTPUT_PORT);
+ createEReference(multiFeatureUnitEClass, MULTI_FEATURE_UNIT__MULTI_FEATURE_HELPER);
+ createEAttribute(multiFeatureUnitEClass, MULTI_FEATURE_UNIT__TYPE);
+
+ filterUnitEClass = createEClass(FILTER_UNIT);
+
+ singleFilterUnitEClass = createEClass(SINGLE_FILTER_UNIT);
+ createEReference(singleFilterUnitEClass, SINGLE_FILTER_UNIT__INPUT_PORT);
+ createEReference(singleFilterUnitEClass, SINGLE_FILTER_UNIT__OUTPUT_PORT);
+ createEReference(singleFilterUnitEClass, SINGLE_FILTER_UNIT__SINGLE_FILTER_HELPER);
+ createEAttribute(singleFilterUnitEClass, SINGLE_FILTER_UNIT__TYPE);
+
+ multiFilterUnitEClass = createEClass(MULTI_FILTER_UNIT);
+ createEReference(multiFilterUnitEClass, MULTI_FILTER_UNIT__INPUT_PORT);
+ createEReference(multiFilterUnitEClass, MULTI_FILTER_UNIT__OUTPUT_PORT);
+ createEReference(multiFilterUnitEClass, MULTI_FILTER_UNIT__MULTI_FILTER_HELPER);
+ createEAttribute(multiFilterUnitEClass, MULTI_FILTER_UNIT__TYPE);
+
+ helperEClass = createEClass(HELPER);
+ createEAttribute(helperEClass, HELPER__HELPER_ID);
+ createEAttribute(helperEClass, HELPER__NAMESPACE_URI);
+
+ featureHelperEClass = createEClass(FEATURE_HELPER);
+ createEReference(featureHelperEClass, FEATURE_HELPER__INPUT_PORT);
+ createEReference(featureHelperEClass, FEATURE_HELPER__SECONDARY_INPUT_PORTS);
+
+ singleFeatureHelperEClass = createEClass(SINGLE_FEATURE_HELPER);
+ createEReference(singleFeatureHelperEClass, SINGLE_FEATURE_HELPER__OUTPUT_PORT);
+
+ multiFeatureHelperEClass = createEClass(MULTI_FEATURE_HELPER);
+ createEReference(multiFeatureHelperEClass, MULTI_FEATURE_HELPER__OUTPUT_PORT);
+
+ filterHelperEClass = createEClass(FILTER_HELPER);
+ createEReference(filterHelperEClass, FILTER_HELPER__INPUT_PORT);
+
+ singleFilterHelperEClass = createEClass(SINGLE_FILTER_HELPER);
+ createEReference(singleFilterHelperEClass, SINGLE_FILTER_HELPER__OUTPUT_PORT);
+
+ multiFilterHelperEClass = createEClass(MULTI_FILTER_HELPER);
+ createEReference(multiFilterHelperEClass, MULTI_FILTER_HELPER__OUTPUT_PORT);
+
+ portEClass = createEClass(PORT);
+ createEAttribute(portEClass, PORT__TYPE);
+
+ singlePortEClass = createEClass(SINGLE_PORT);
+ createEAttribute(singlePortEClass, SINGLE_PORT__VALUE);
+
+ multiPortEClass = createEClass(MULTI_PORT);
+ createEAttribute(multiPortEClass, MULTI_PORT__VALUE);
+
+ inputPortEClass = createEClass(INPUT_PORT);
+
+ outputPortEClass = createEClass(OUTPUT_PORT);
+
+ singleInputPortEClass = createEClass(SINGLE_INPUT_PORT);
+
+ multiInputPortEClass = createEClass(MULTI_INPUT_PORT);
+
+ singleOutputPortEClass = createEClass(SINGLE_OUTPUT_PORT);
+
+ multiOutputPortEClass = createEClass(MULTI_OUTPUT_PORT);
+
+ portMappingEClass = createEClass(PORT_MAPPING);
+
+ singlePortMappingEClass = createEClass(SINGLE_PORT_MAPPING);
+ createEReference(singlePortMappingEClass, SINGLE_PORT_MAPPING__SOURCE);
+ createEReference(singlePortMappingEClass, SINGLE_PORT_MAPPING__TARGET);
+
+ multiPortMappingEClass = createEClass(MULTI_PORT_MAPPING);
+ createEReference(multiPortMappingEClass, MULTI_PORT_MAPPING__SOURCE);
+ createEReference(multiPortMappingEClass, MULTI_PORT_MAPPING__TARGET);
+
+ multiSinglePortMappingEClass = createEClass(MULTI_SINGLE_PORT_MAPPING);
+ createEReference(multiSinglePortMappingEClass, MULTI_SINGLE_PORT_MAPPING__SOURCE);
+ createEReference(multiSinglePortMappingEClass, MULTI_SINGLE_PORT_MAPPING__TARGET);
+
+ // Create enums
+ mappingVisualizationEEnum = createEEnum(MAPPING_VISUALIZATION);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ private boolean isInitialized = false;
+
+ /**
+ * Complete the initialization of the package and its meta-model. This
+ * method is guarded to have no affect on any invocation but its first.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public void initializePackageContents() {
+ if (isInitialized) return;
+ isInitialized = true;
+
+ // Initialize package
+ setName(eNAME);
+ setNsPrefix(eNS_PREFIX);
+ setNsURI(eNS_URI);
+
+ // Create type parameters
+
+ // Set bounds for type parameters
+
+ // Add supertypes to classes
+ compositeRefactoringEClass.getESuperTypes().add(this.getModelRefactoring());
+ refactoringUnitEClass.getESuperTypes().add(this.getNamedElement());
+ modelRefactoringEClass.getESuperTypes().add(this.getNamedElement());
+ modelRefactoringEClass.getESuperTypes().add(this.getDescribedElement());
+ atomicUnitEClass.getESuperTypes().add(this.getRefactoringUnit());
+ compositeUnitEClass.getESuperTypes().add(this.getRefactoringUnit());
+ sequentialUnitEClass.getESuperTypes().add(this.getCompositeUnit());
+ conditionCheckEClass.getESuperTypes().add(this.getNamedElement());
+ conditionCheckEClass.getESuperTypes().add(this.getDescribedElement());
+ conditionalUnitEClass.getESuperTypes().add(this.getCompositeUnit());
+ queuedUnitEClass.getESuperTypes().add(this.getCompositeUnit());
+ singleQueuedUnitEClass.getESuperTypes().add(this.getQueuedUnit());
+ twicedQueuedUnitEClass.getESuperTypes().add(this.getQueuedUnit());
+ cartesianQueuedUnitEClass.getESuperTypes().add(this.getTwicedQueuedUnit());
+ parallelQueuedUnitEClass.getESuperTypes().add(this.getTwicedQueuedUnit());
+ helperUnitEClass.getESuperTypes().add(this.getNamedElement());
+ helperUnitEClass.getESuperTypes().add(this.getDescribedElement());
+ featureUnitEClass.getESuperTypes().add(this.getHelperUnit());
+ singleFeatureUnitEClass.getESuperTypes().add(this.getFeatureUnit());
+ multiFeatureUnitEClass.getESuperTypes().add(this.getFeatureUnit());
+ filterUnitEClass.getESuperTypes().add(this.getHelperUnit());
+ singleFilterUnitEClass.getESuperTypes().add(this.getFilterUnit());
+ multiFilterUnitEClass.getESuperTypes().add(this.getFilterUnit());
+ helperEClass.getESuperTypes().add(this.getNamedElement());
+ helperEClass.getESuperTypes().add(this.getDescribedElement());
+ featureHelperEClass.getESuperTypes().add(this.getHelper());
+ singleFeatureHelperEClass.getESuperTypes().add(this.getFeatureHelper());
+ multiFeatureHelperEClass.getESuperTypes().add(this.getFeatureHelper());
+ filterHelperEClass.getESuperTypes().add(this.getHelper());
+ singleFilterHelperEClass.getESuperTypes().add(this.getFilterHelper());
+ multiFilterHelperEClass.getESuperTypes().add(this.getFilterHelper());
+ portEClass.getESuperTypes().add(this.getNamedElement());
+ portEClass.getESuperTypes().add(this.getDescribedElement());
+ singlePortEClass.getESuperTypes().add(this.getPort());
+ multiPortEClass.getESuperTypes().add(this.getPort());
+ inputPortEClass.getESuperTypes().add(this.getPort());
+ outputPortEClass.getESuperTypes().add(this.getPort());
+ singleInputPortEClass.getESuperTypes().add(this.getSinglePort());
+ singleInputPortEClass.getESuperTypes().add(this.getInputPort());
+ multiInputPortEClass.getESuperTypes().add(this.getMultiPort());
+ multiInputPortEClass.getESuperTypes().add(this.getInputPort());
+ singleOutputPortEClass.getESuperTypes().add(this.getSinglePort());
+ singleOutputPortEClass.getESuperTypes().add(this.getOutputPort());
+ multiOutputPortEClass.getESuperTypes().add(this.getMultiPort());
+ multiOutputPortEClass.getESuperTypes().add(this.getOutputPort());
+ singlePortMappingEClass.getESuperTypes().add(this.getPortMapping());
+ multiPortMappingEClass.getESuperTypes().add(this.getPortMapping());
+ multiSinglePortMappingEClass.getESuperTypes().add(this.getPortMapping());
+
+ // Initialize classes and features; add operations and parameters
+ initEClass(compositeRefactoringEClass, CompositeRefactoring.class, "CompositeRefactoring", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
+ initEReference(getCompositeRefactoring_MainRefactoringUnit(), this.getRefactoringUnit(), null, "mainRefactoringUnit", null, 1, 1, CompositeRefactoring.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+ initEReference(getCompositeRefactoring_PortMappings(), this.getPortMapping(), null, "portMappings", null, 0, -1, CompositeRefactoring.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+ initEReference(getCompositeRefactoring_ModelRefactorings(), this.getModelRefactoring(), null, "modelRefactorings", null, 0, -1, CompositeRefactoring.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+ initEReference(getCompositeRefactoring_Helper(), this.getHelper(), null, "helper", null, 0, -1, CompositeRefactoring.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+ initEAttribute(getCompositeRefactoring_MappingVisualization(), this.getMappingVisualization(), "mappingVisualization", "0", 1, 1, CompositeRefactoring.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+ initEAttribute(getCompositeRefactoring_CustomInitialCondition(), ecorePackage.getEString(), "customInitialCondition", null, 0, 1, CompositeRefactoring.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+ initEAttribute(getCompositeRefactoring_CustomFinalCondition(), ecorePackage.getEString(), "customFinalCondition", null, 0, 1, CompositeRefactoring.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+
+ initEClass(namedElementEClass, NamedElement.class, "NamedElement", IS_ABSTRACT, IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
+ initEAttribute(getNamedElement_Name(), ecorePackage.getEString(), "name", null, 0, 1, NamedElement.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+
+ initEClass(describedElementEClass, DescribedElement.class, "DescribedElement", IS_ABSTRACT, IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
+ initEAttribute(getDescribedElement_Description(), ecorePackage.getEString(), "description", null, 0, 1, DescribedElement.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+
+ initEClass(refactoringUnitEClass, RefactoringUnit.class, "RefactoringUnit", IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
+ initEAttribute(getRefactoringUnit_SeqExecutionOrder(), ecorePackage.getEInt(), "seqExecutionOrder", null, 0, 1, RefactoringUnit.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+
+ addEOperation(refactoringUnitEClass, this.getInputPort(), "getAllInputPorts", 0, -1, IS_UNIQUE, IS_ORDERED);
+
+ EOperation op = addEOperation(refactoringUnitEClass, null, "setSeqExecutionOrder", 0, 1, IS_UNIQUE, IS_ORDERED);
+ addEParameter(op, ecorePackage.getEInt(), "seqExecutionOrder", 0, 1, IS_UNIQUE, IS_ORDERED);
+ addEParameter(op, ecorePackage.getEBoolean(), "superCall", 0, 1, IS_UNIQUE, IS_ORDERED);
+
+ op = addEOperation(refactoringUnitEClass, null, "setName", 0, 1, IS_UNIQUE, IS_ORDERED);
+ addEParameter(op, ecorePackage.getEString(), "newName", 0, 1, IS_UNIQUE, IS_ORDERED);
+ addEParameter(op, ecorePackage.getEBoolean(), "updateContainer", 0, 1, IS_UNIQUE, IS_ORDERED);
+
+ initEClass(modelRefactoringEClass, ModelRefactoring.class, "ModelRefactoring", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
+ initEAttribute(getModelRefactoring_RefId(), ecorePackage.getEString(), "refId", null, 1, 1, ModelRefactoring.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+ initEAttribute(getModelRefactoring_Label(), ecorePackage.getEString(), "label", null, 1, 1, ModelRefactoring.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+ initEAttribute(getModelRefactoring_NamespaceUri(), ecorePackage.getEString(), "namespaceUri", null, 1, 1, ModelRefactoring.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+ initEReference(getModelRefactoring_InputPorts(), this.getSingleInputPort(), null, "inputPorts", null, 0, -1, ModelRefactoring.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+
+ initEClass(atomicUnitEClass, AtomicUnit.class, "AtomicUnit", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
+ initEReference(getAtomicUnit_InputPorts(), this.getSingleInputPort(), null, "inputPorts", null, 1, -1, AtomicUnit.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+ initEAttribute(getAtomicUnit_UnitId(), ecorePackage.getEString(), "unitId", null, 1, 1, AtomicUnit.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+ initEAttribute(getAtomicUnit_Label(), ecorePackage.getEString(), "label", null, 1, 1, AtomicUnit.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+ initEAttribute(getAtomicUnit_NamespaceUri(), ecorePackage.getEString(), "namespaceUri", null, 1, 1, AtomicUnit.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+ initEAttribute(getAtomicUnit_Type(), ecorePackage.getEString(), "type", "Atomic Unit", 0, 1, AtomicUnit.class, !IS_TRANSIENT, !IS_VOLATILE, !IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+ initEReference(getAtomicUnit_ModelRefactoring(), this.getModelRefactoring(), null, "modelRefactoring", null, 1, 1, AtomicUnit.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+ initEAttribute(getAtomicUnit_CheckInitialConditionFlag(), ecorePackage.getEBoolean(), "checkInitialConditionFlag", "false", 0, 1, AtomicUnit.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+ initEAttribute(getAtomicUnit_CheckFinalConditionFlag(), ecorePackage.getEBoolean(), "checkFinalConditionFlag", "false", 0, 1, AtomicUnit.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+
+ initEClass(compositeUnitEClass, CompositeUnit.class, "CompositeUnit", IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
+
+ initEClass(sequentialUnitEClass, SequentialUnit.class, "SequentialUnit", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
+ initEReference(getSequentialUnit_HelperUnits(), this.getHelperUnit(), null, "helperUnits", null, 0, -1, SequentialUnit.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+ initEReference(getSequentialUnit_RefactoringUnits(), this.getRefactoringUnit(), null, "refactoringUnits", null, 1, -1, SequentialUnit.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+ initEReference(getSequentialUnit_InputPorts(), this.getInputPort(), null, "inputPorts", null, 1, -1, SequentialUnit.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+ initEAttribute(getSequentialUnit_Strict(), ecorePackage.getEBoolean(), "strict", "true", 0, 1, SequentialUnit.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+ initEAttribute(getSequentialUnit_Type(), ecorePackage.getEString(), "type", "Sequential Unit", 0, 1, SequentialUnit.class, !IS_TRANSIENT, !IS_VOLATILE, !IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+ initEAttribute(getSequentialUnit_LblStrict(), ecorePackage.getEString(), "lblStrict", "strict", 0, 1, SequentialUnit.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+
+ addEOperation(sequentialUnitEClass, null, "updateSeqExecutionOrder", 0, 1, IS_UNIQUE, IS_ORDERED);
+
+ initEClass(conditionCheckEClass, ConditionCheck.class, "ConditionCheck", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
+ initEAttribute(getConditionCheck_Type(), ecorePackage.getEString(), "type", "Condition Check", 0, 1, ConditionCheck.class, !IS_TRANSIENT, !IS_VOLATILE, !IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+ initEAttribute(getConditionCheck_Spec(), ecorePackage.getEString(), "spec", null, 0, 1, ConditionCheck.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+
+ initEClass(conditionalUnitEClass, ConditionalUnit.class, "ConditionalUnit", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
+ initEReference(getConditionalUnit_If(), this.getConditionCheck(), null, "if", null, 1, 1, ConditionalUnit.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+ initEReference(getConditionalUnit_HelperUnits(), this.getHelperUnit(), null, "helperUnits", null, 0, -1, ConditionalUnit.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+ initEReference(getConditionalUnit_Then(), this.getRefactoringUnit(), null, "then", null, 1, 1, ConditionalUnit.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+ initEReference(getConditionalUnit_Else(), this.getRefactoringUnit(), null, "else", null, 0, 1, ConditionalUnit.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+ initEReference(getConditionalUnit_InputPorts(), this.getInputPort(), null, "inputPorts", null, 1, -1, ConditionalUnit.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+ initEAttribute(getConditionalUnit_Type(), ecorePackage.getEString(), "type", "Conditional Unit", 0, 1, ConditionalUnit.class, !IS_TRANSIENT, !IS_VOLATILE, !IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+
+ initEClass(queuedUnitEClass, QueuedUnit.class, "QueuedUnit", IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
+ initEAttribute(getQueuedUnit_Strict(), ecorePackage.getEBoolean(), "strict", "true", 0, 1, QueuedUnit.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+
+ addEOperation(queuedUnitEClass, null, "init", 0, 1, IS_UNIQUE, IS_ORDERED);
+
+ initEClass(singleQueuedUnitEClass, SingleQueuedUnit.class, "SingleQueuedUnit", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
+ initEReference(getSingleQueuedUnit_HelperUnits(), this.getHelperUnit(), null, "helperUnits", null, 0, -1, SingleQueuedUnit.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+ initEReference(getSingleQueuedUnit_RefactoringUnit(), this.getRefactoringUnit(), null, "refactoringUnit", null, 1, 1, SingleQueuedUnit.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+ initEReference(getSingleQueuedUnit_SingleInputPorts(), this.getSingleInputPort(), null, "singleInputPorts", null, 0, -1, SingleQueuedUnit.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+ initEReference(getSingleQueuedUnit_MultiInputPort(), this.getMultiInputPort(), null, "multiInputPort", null, 1, 1, SingleQueuedUnit.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+ initEAttribute(getSingleQueuedUnit_Type(), ecorePackage.getEString(), "type", "Single Queued Unit", 0, 1, SingleQueuedUnit.class, !IS_TRANSIENT, !IS_VOLATILE, !IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+ initEAttribute(getSingleQueuedUnit_LblStrict(), ecorePackage.getEString(), "lblStrict", "strict", 0, 1, SingleQueuedUnit.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+
+ initEClass(twicedQueuedUnitEClass, TwicedQueuedUnit.class, "TwicedQueuedUnit", IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
+
+ initEClass(cartesianQueuedUnitEClass, CartesianQueuedUnit.class, "CartesianQueuedUnit", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
+ initEReference(getCartesianQueuedUnit_HelperUnits(), this.getHelperUnit(), null, "helperUnits", null, 0, -1, CartesianQueuedUnit.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+ initEReference(getCartesianQueuedUnit_RefactoringUnit(), this.getRefactoringUnit(), null, "refactoringUnit", null, 1, 1, CartesianQueuedUnit.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+ initEReference(getCartesianQueuedUnit_SingleInputPorts(), this.getSingleInputPort(), null, "singleInputPorts", null, 0, -1, CartesianQueuedUnit.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+ initEReference(getCartesianQueuedUnit_MultiInputPorts(), this.getMultiInputPort(), null, "multiInputPorts", null, 2, 2, CartesianQueuedUnit.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+ initEAttribute(getCartesianQueuedUnit_Type(), ecorePackage.getEString(), "type", "Cartesian Queued Unit", 0, 1, CartesianQueuedUnit.class, !IS_TRANSIENT, !IS_VOLATILE, !IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+ initEAttribute(getCartesianQueuedUnit_LblStrict(), ecorePackage.getEString(), "lblStrict", "strict", 0, 1, CartesianQueuedUnit.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+
+ initEClass(parallelQueuedUnitEClass, ParallelQueuedUnit.class, "ParallelQueuedUnit", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
+ initEReference(getParallelQueuedUnit_HelperUnits(), this.getHelperUnit(), null, "helperUnits", null, 0, -1, ParallelQueuedUnit.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+ initEReference(getParallelQueuedUnit_RefactoringUnits(), this.getRefactoringUnit(), null, "refactoringUnits", null, 1, 1, ParallelQueuedUnit.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+ initEReference(getParallelQueuedUnit_SingleInputPorts(), this.getSingleInputPort(), null, "singleInputPorts", null, 0, -1, ParallelQueuedUnit.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+ initEReference(getParallelQueuedUnit_MultiInputPorts(), this.getMultiInputPort(), null, "multiInputPorts", null, 2, 2, ParallelQueuedUnit.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+ initEAttribute(getParallelQueuedUnit_Type(), ecorePackage.getEString(), "type", "Parallel Queued Unit", 0, 1, ParallelQueuedUnit.class, !IS_TRANSIENT, !IS_VOLATILE, !IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+ initEAttribute(getParallelQueuedUnit_LblStrict(), ecorePackage.getEString(), "lblStrict", "strict", 0, 1, ParallelQueuedUnit.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+
+ initEClass(helperUnitEClass, HelperUnit.class, "HelperUnit", IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
+ initEAttribute(getHelperUnit_HelperUnitId(), ecorePackage.getEString(), "helperUnitId", null, 1, 1, HelperUnit.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+ initEAttribute(getHelperUnit_NamespaceUri(), ecorePackage.getEString(), "namespaceUri", null, 1, 1, HelperUnit.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+
+ addEOperation(helperUnitEClass, this.getInputPort(), "getInputPort", 1, 1, IS_UNIQUE, IS_ORDERED);
+
+ addEOperation(helperUnitEClass, this.getOutputPort(), "getOutputPort", 1, 1, IS_UNIQUE, IS_ORDERED);
+
+ initEClass(featureUnitEClass, FeatureUnit.class, "FeatureUnit", IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
+
+ initEClass(singleFeatureUnitEClass, SingleFeatureUnit.class, "SingleFeatureUnit", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
+ initEReference(getSingleFeatureUnit_InputPort(), this.getSingleInputPort(), null, "inputPort", null, 1, 1, SingleFeatureUnit.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+ initEReference(getSingleFeatureUnit_SecondaryInputPorts(), this.getMultiInputPort(), null, "secondaryInputPorts", null, 0, -1, SingleFeatureUnit.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+ initEReference(getSingleFeatureUnit_OutputPort(), this.getSingleOutputPort(), null, "outputPort", null, 1, 1, SingleFeatureUnit.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+ initEReference(getSingleFeatureUnit_SingleFeatureHelper(), this.getSingleFeatureHelper(), null, "singleFeatureHelper", null, 1, 1, SingleFeatureUnit.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+ initEAttribute(getSingleFeatureUnit_Type(), ecorePackage.getEString(), "type", "Single Feature Unit", 0, 1, SingleFeatureUnit.class, !IS_TRANSIENT, !IS_VOLATILE, !IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+
+ initEClass(multiFeatureUnitEClass, MultiFeatureUnit.class, "MultiFeatureUnit", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
+ initEReference(getMultiFeatureUnit_InputPort(), this.getSingleInputPort(), null, "inputPort", null, 1, 1, MultiFeatureUnit.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+ initEReference(getMultiFeatureUnit_SecondaryInputPorts(), this.getMultiInputPort(), null, "secondaryInputPorts", null, 0, -1, MultiFeatureUnit.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+ initEReference(getMultiFeatureUnit_OutputPort(), this.getMultiOutputPort(), null, "outputPort", null, 1, 1, MultiFeatureUnit.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+ initEReference(getMultiFeatureUnit_MultiFeatureHelper(), this.getMultiFeatureHelper(), null, "multiFeatureHelper", null, 1, 1, MultiFeatureUnit.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+ initEAttribute(getMultiFeatureUnit_Type(), ecorePackage.getEString(), "type", "Multi Feature Unit", 0, 1, MultiFeatureUnit.class, !IS_TRANSIENT, !IS_VOLATILE, !IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+
+ initEClass(filterUnitEClass, FilterUnit.class, "FilterUnit", IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
+
+ initEClass(singleFilterUnitEClass, SingleFilterUnit.class, "SingleFilterUnit", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
+ initEReference(getSingleFilterUnit_InputPort(), this.getMultiInputPort(), null, "inputPort", null, 1, 1, SingleFilterUnit.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+ initEReference(getSingleFilterUnit_OutputPort(), this.getSingleOutputPort(), null, "outputPort", null, 1, 1, SingleFilterUnit.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+ initEReference(getSingleFilterUnit_SingleFilterHelper(), this.getSingleFilterHelper(), null, "singleFilterHelper", null, 1, 1, SingleFilterUnit.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+ initEAttribute(getSingleFilterUnit_Type(), ecorePackage.getEString(), "type", "Single Filter Unit", 0, 1, SingleFilterUnit.class, !IS_TRANSIENT, !IS_VOLATILE, !IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+
+ initEClass(multiFilterUnitEClass, MultiFilterUnit.class, "MultiFilterUnit", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
+ initEReference(getMultiFilterUnit_InputPort(), this.getMultiInputPort(), null, "inputPort", null, 1, 1, MultiFilterUnit.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+ initEReference(getMultiFilterUnit_OutputPort(), this.getMultiOutputPort(), null, "outputPort", null, 1, 1, MultiFilterUnit.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+ initEReference(getMultiFilterUnit_MultiFilterHelper(), this.getMultiFilterHelper(), null, "multiFilterHelper", null, 1, 1, MultiFilterUnit.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+ initEAttribute(getMultiFilterUnit_Type(), ecorePackage.getEString(), "type", "Multi Filter Unit", 0, 1, MultiFilterUnit.class, !IS_TRANSIENT, !IS_VOLATILE, !IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+
+ initEClass(helperEClass, Helper.class, "Helper", IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
+ initEAttribute(getHelper_HelperId(), ecorePackage.getEString(), "helperId", null, 1, 1, Helper.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+ initEAttribute(getHelper_NamespaceUri(), ecorePackage.getEString(), "namespaceUri", null, 1, 1, Helper.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+
+ initEClass(featureHelperEClass, FeatureHelper.class, "FeatureHelper", IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
+ initEReference(getFeatureHelper_InputPort(), this.getSingleInputPort(), null, "inputPort", null, 1, 1, FeatureHelper.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+ initEReference(getFeatureHelper_SecondaryInputPorts(), this.getMultiInputPort(), null, "secondaryInputPorts", null, 0, -1, FeatureHelper.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+
+ initEClass(singleFeatureHelperEClass, SingleFeatureHelper.class, "SingleFeatureHelper", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
+ initEReference(getSingleFeatureHelper_OutputPort(), this.getSingleOutputPort(), null, "outputPort", null, 1, 1, SingleFeatureHelper.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+
+ initEClass(multiFeatureHelperEClass, MultiFeatureHelper.class, "MultiFeatureHelper", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
+ initEReference(getMultiFeatureHelper_OutputPort(), this.getMultiOutputPort(), null, "outputPort", null, 1, 1, MultiFeatureHelper.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+
+ initEClass(filterHelperEClass, FilterHelper.class, "FilterHelper", IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
+ initEReference(getFilterHelper_InputPort(), this.getMultiInputPort(), null, "inputPort", null, 1, 1, FilterHelper.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+
+ initEClass(singleFilterHelperEClass, SingleFilterHelper.class, "SingleFilterHelper", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
+ initEReference(getSingleFilterHelper_OutputPort(), this.getSingleOutputPort(), null, "outputPort", null, 1, 1, SingleFilterHelper.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+
+ initEClass(multiFilterHelperEClass, MultiFilterHelper.class, "MultiFilterHelper", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
+ initEReference(getMultiFilterHelper_OutputPort(), this.getMultiOutputPort(), null, "outputPort", null, 1, 1, MultiFilterHelper.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+
+ initEClass(portEClass, Port.class, "Port", IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
+ initEAttribute(getPort_Type(), ecorePackage.getEJavaClass(), "type", null, 1, 1, Port.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+
+ op = addEOperation(portEClass, null, "setType", 0, 1, IS_UNIQUE, IS_ORDERED);
+ addEParameter(op, ecorePackage.getEJavaClass(), "newType", 0, 1, IS_UNIQUE, IS_ORDERED);
+ addEParameter(op, ecorePackage.getEBoolean(), "initiator", 0, 1, IS_UNIQUE, IS_ORDERED);
+
+ op = addEOperation(portEClass, null, "updatePortName", 0, 1, IS_UNIQUE, IS_ORDERED);
+ addEParameter(op, ecorePackage.getEString(), "singularPortName", 0, 1, IS_UNIQUE, IS_ORDERED);
+
+ addEOperation(portEClass, ecorePackage.getEString(), "getSingularPortName", 0, 1, IS_UNIQUE, IS_ORDERED);
+
+ initEClass(singlePortEClass, SinglePort.class, "SinglePort", IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
+ initEAttribute(getSinglePort_Value(), ecorePackage.getEJavaObject(), "value", null, 0, 1, SinglePort.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+
+ initEClass(multiPortEClass, MultiPort.class, "MultiPort", IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
+ initEAttribute(getMultiPort_Value(), ecorePackage.getEJavaObject(), "value", null, 0, -1, MultiPort.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+
+ initEClass(inputPortEClass, InputPort.class, "InputPort", IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
+
+ addEOperation(inputPortEClass, ecorePackage.getEBooleanObject(), "isMappingTarget", 0, 1, IS_UNIQUE, IS_ORDERED);
+
+ addEOperation(inputPortEClass, ecorePackage.getEBooleanObject(), "isRootPort", 0, 1, IS_UNIQUE, IS_ORDERED);
+
+ initEClass(outputPortEClass, OutputPort.class, "OutputPort", IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
+
+ initEClass(singleInputPortEClass, SingleInputPort.class, "SingleInputPort", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
+
+ initEClass(multiInputPortEClass, MultiInputPort.class, "MultiInputPort", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
+
+ initEClass(singleOutputPortEClass, SingleOutputPort.class, "SingleOutputPort", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
+
+ initEClass(multiOutputPortEClass, MultiOutputPort.class, "MultiOutputPort", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
+
+ initEClass(portMappingEClass, PortMapping.class, "PortMapping", IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
+
+ addEOperation(portMappingEClass, this.getPort(), "getSource", 0, 1, IS_UNIQUE, IS_ORDERED);
+
+ addEOperation(portMappingEClass, this.getInputPort(), "getTarget", 0, 1, IS_UNIQUE, IS_ORDERED);
+
+ op = addEOperation(portMappingEClass, null, "updatePortTypesAndNames", 0, 1, IS_UNIQUE, IS_ORDERED);
+ addEParameter(op, ecorePackage.getEJavaClass(), "type", 0, 1, IS_UNIQUE, IS_ORDERED);
+ addEParameter(op, ecorePackage.getEString(), "singularPortName", 0, 1, IS_UNIQUE, IS_ORDERED);
+
+ addEOperation(portMappingEClass, null, "updateMappingNumber", 0, 1, IS_UNIQUE, IS_ORDERED);
+
+ addEOperation(portMappingEClass, null, "updateVisualization", 0, 1, IS_UNIQUE, IS_ORDERED);
+
+ initEClass(singlePortMappingEClass, SinglePortMapping.class, "SinglePortMapping", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
+ initEReference(getSinglePortMapping_Source(), this.getSinglePort(), null, "source", null, 0, 1, SinglePortMapping.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+ initEReference(getSinglePortMapping_Target(), this.getSingleInputPort(), null, "target", null, 0, 1, SinglePortMapping.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+
+ initEClass(multiPortMappingEClass, MultiPortMapping.class, "MultiPortMapping", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
+ initEReference(getMultiPortMapping_Source(), this.getMultiPort(), null, "source", null, 0, 1, MultiPortMapping.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+ initEReference(getMultiPortMapping_Target(), this.getMultiInputPort(), null, "target", null, 0, 1, MultiPortMapping.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+
+ initEClass(multiSinglePortMappingEClass, MultiSinglePortMapping.class, "MultiSinglePortMapping", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
+ initEReference(getMultiSinglePortMapping_Source(), this.getMultiPort(), null, "source", null, 0, 1, MultiSinglePortMapping.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+ initEReference(getMultiSinglePortMapping_Target(), this.getSingleInputPort(), null, "target", null, 0, 1, MultiSinglePortMapping.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+
+ // Initialize enums and add enum literals
+ initEEnum(mappingVisualizationEEnum, MappingVisualization.class, "MappingVisualization");
+ addEEnumLiteral(mappingVisualizationEEnum, MappingVisualization.ARROWS);
+ addEEnumLiteral(mappingVisualizationEEnum, MappingVisualization.COLORED_PORTS);
+ addEEnumLiteral(mappingVisualizationEEnum, MappingVisualization.INDICES);
+ addEEnumLiteral(mappingVisualizationEEnum, MappingVisualization.ARROWS_AND_COLORED_PORTS);
+ addEEnumLiteral(mappingVisualizationEEnum, MappingVisualization.ARROWS_AND_INDICES);
+
+ // Create resource
+ createResource(eNS_URI);
+
+ // Create annotations
+ // gmf
+ createGmfAnnotations();
+ // gmf.diagram
+ createGmf_1Annotations();
+ // gmf.node
+ createGmf_2Annotations();
+ // gmf.affixed
+ createGmf_3Annotations();
+ // gmf.compartment
+ createGmf_4Annotations();
+ // gmf.link
+ createGmf_5Annotations();
+ }
+
+ /**
+ * Initializes the annotations for <b>gmf</b>.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected void createGmfAnnotations() {
+ String source = "gmf";
+ addAnnotation
+ (this,
+ source,
+ new String[] {
+ "foo", "bar"
+ });
+ }
+
+ /**
+ * Initializes the annotations for <b>gmf.diagram</b>.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected void createGmf_1Annotations() {
+ String source = "gmf.diagram";
+ addAnnotation
+ (compositeRefactoringEClass,
+ source,
+ new String[] {
+ "foo", "bar",
+ "onefile", "false"
+ });
+ }
+
+ /**
+ * Initializes the annotations for <b>gmf.node</b>.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected void createGmf_2Annotations() {
+ String source = "gmf.node";
+ addAnnotation
+ (atomicUnitEClass,
+ source,
+ new String[] {
+ "foo", "bar",
+ "label.icon", "false",
+ "label", "label,type",
+ "label.pattern", "{0}:{1}"
+ });
+ addAnnotation
+ (sequentialUnitEClass,
+ source,
+ new String[] {
+ "foo", "bar",
+ "label.icon", "false",
+ "label", "name,type,lblStrict",
+ "label.pattern", "{0}:{1} -{2}-"
+ });
+ addAnnotation
+ (conditionCheckEClass,
+ source,
+ new String[] {
+ "foo", "bar",
+ "label.icon", "false",
+ "label", "name,type,spec",
+ "label.pattern", "{0}:{1} -{2}-"
+ });
+ addAnnotation
+ (conditionalUnitEClass,
+ source,
+ new String[] {
+ "foo", "bar",
+ "label.icon", "false",
+ "label", "name,type",
+ "label.pattern", "{0}:{1}"
+ });
+ addAnnotation
+ (singleQueuedUnitEClass,
+ source,
+ new String[] {
+ "foo", "bar",
+ "label.icon", "false",
+ "label", "name,type,lblStrict",
+ "label.pattern", "{0}:{1} -{2}-"
+ });
+ addAnnotation
+ (cartesianQueuedUnitEClass,
+ source,
+ new String[] {
+ "foo", "bar",
+ "label.icon", "false",
+ "label", "name,type,lblStrict",
+ "label.pattern", "{0}:{1} -{2}-"
+ });
+ addAnnotation
+ (parallelQueuedUnitEClass,
+ source,
+ new String[] {
+ "foo", "bar",
+ "label.icon", "false",
+ "label", "name,type,lblStrict",
+ "label.pattern", "{0}:{1} -{2}-"
+ });
+ addAnnotation
+ (singleFeatureUnitEClass,
+ source,
+ new String[] {
+ "foo", "bar",
+ "label.icon", "false",
+ "label", "name,type",
+ "label.pattern", "{0}:{1}"
+ });
+ addAnnotation
+ (multiFeatureUnitEClass,
+ source,
+ new String[] {
+ "foo", "bar",
+ "label.icon", "false",
+ "label", "name,type",
+ "label.pattern", "{0}:{1}"
+ });
+ addAnnotation
+ (singleFilterUnitEClass,
+ source,
+ new String[] {
+ "foo", "bar",
+ "label.icon", "false",
+ "label", "name,type",
+ "label.pattern", "{0}:{1}"
+ });
+ addAnnotation
+ (multiFilterUnitEClass,
+ source,
+ new String[] {
+ "foo", "bar",
+ "label.icon", "false",
+ "label", "name,type",
+ "label.pattern", "{0}:{1}"
+ });
+ addAnnotation
+ (portEClass,
+ source,
+ new String[] {
+ "foo", "bar",
+ "label", "name,type",
+ "label.icon", "false",
+ "label.placement", "external",
+ "label.pattern", "{0}:{1}"
+ });
+ addAnnotation
+ (multiPortEClass,
+ source,
+ new String[] {
+ "border.color", "255,0,0",
+ "border.width", "10"
+ });
+ addAnnotation
+ (inputPortEClass,
+ source,
+ new String[] {
+ "figure", "rectangle",
+ "size", "20,20"
+ });
+ addAnnotation
+ (outputPortEClass,
+ source,
+ new String[] {
+ "figure", "ellipse",
+ "size", "20,20"
+ });
+ }
+
+ /**
+ * Initializes the annotations for <b>gmf.affixed</b>.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected void createGmf_3Annotations() {
+ String source = "gmf.affixed";
+ addAnnotation
+ (getAtomicUnit_InputPorts(),
+ source,
+ new String[] {
+ "foo", "bar"
+ });
+ addAnnotation
+ (getSequentialUnit_InputPorts(),
+ source,
+ new String[] {
+ "foo", "bar"
+ });
+ addAnnotation
+ (getConditionalUnit_InputPorts(),
+ source,
+ new String[] {
+ "foo", "bar"
+ });
+ addAnnotation
+ (getSingleQueuedUnit_SingleInputPorts(),
+ source,
+ new String[] {
+ "foo", "bar"
+ });
+ addAnnotation
+ (getSingleQueuedUnit_MultiInputPort(),
+ source,
+ new String[] {
+ "foo", "bar"
+ });
+ addAnnotation
+ (getCartesianQueuedUnit_SingleInputPorts(),
+ source,
+ new String[] {
+ "foo", "bar"
+ });
+ addAnnotation
+ (getCartesianQueuedUnit_MultiInputPorts(),
+ source,
+ new String[] {
+ "foo", "bar"
+ });
+ addAnnotation
+ (getParallelQueuedUnit_SingleInputPorts(),
+ source,
+ new String[] {
+ "foo", "bar"
+ });
+ addAnnotation
+ (getParallelQueuedUnit_MultiInputPorts(),
+ source,
+ new String[] {
+ "foo", "bar"
+ });
+ addAnnotation
+ (getSingleFeatureUnit_InputPort(),
+ source,
+ new String[] {
+ "foo", "bar"
+ });
+ addAnnotation
+ (getSingleFeatureUnit_SecondaryInputPorts(),
+ source,
+ new String[] {
+ "foo", "bar"
+ });
+ addAnnotation
+ (getSingleFeatureUnit_OutputPort(),
+ source,
+ new String[] {
+ "foo", "bar"
+ });
+ addAnnotation
+ (getMultiFeatureUnit_InputPort(),
+ source,
+ new String[] {
+ "foo", "bar"
+ });
+ addAnnotation
+ (getMultiFeatureUnit_SecondaryInputPorts(),
+ source,
+ new String[] {
+ "foo", "bar"
+ });
+ addAnnotation
+ (getMultiFeatureUnit_OutputPort(),
+ source,
+ new String[] {
+ "foo", "bar"
+ });
+ addAnnotation
+ (getSingleFilterUnit_InputPort(),
+ source,
+ new String[] {
+ "foo", "bar"
+ });
+ addAnnotation
+ (getSingleFilterUnit_OutputPort(),
+ source,
+ new String[] {
+ "foo", "bar"
+ });
+ addAnnotation
+ (getMultiFilterUnit_InputPort(),
+ source,
+ new String[] {
+ "foo", "bar"
+ });
+ addAnnotation
+ (getMultiFilterUnit_OutputPort(),
+ source,
+ new String[] {
+ "foo", "bar"
+ });
+ }
+
+ /**
+ * Initializes the annotations for <b>gmf.compartment</b>.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected void createGmf_4Annotations() {
+ String source = "gmf.compartment";
+ addAnnotation
+ (getSequentialUnit_HelperUnits(),
+ source,
+ new String[] {
+ "foo", "bar"
+ });
+ addAnnotation
+ (getSequentialUnit_RefactoringUnits(),
+ source,
+ new String[] {
+ "foo", "bar"
+ });
+ addAnnotation
+ (getConditionalUnit_If(),
+ source,
+ new String[] {
+ "foo", "bar"
+ });
+ addAnnotation
+ (getConditionalUnit_HelperUnits(),
+ source,
+ new String[] {
+ "foo", "bar"
+ });
+ addAnnotation
+ (getConditionalUnit_Then(),
+ source,
+ new String[] {
+ "foo", "bar"
+ });
+ addAnnotation
+ (getConditionalUnit_Else(),
+ source,
+ new String[] {
+ "foo", "bar"
+ });
+ addAnnotation
+ (getSingleQueuedUnit_HelperUnits(),
+ source,
+ new String[] {
+ "foo", "bar"
+ });
+ addAnnotation
+ (getSingleQueuedUnit_RefactoringUnit(),
+ source,
+ new String[] {
+ "foo", "bar"
+ });
+ addAnnotation
+ (getCartesianQueuedUnit_HelperUnits(),
+ source,
+ new String[] {
+ "foo", "bar"
+ });
+ addAnnotation
+ (getCartesianQueuedUnit_RefactoringUnit(),
+ source,
+ new String[] {
+ "foo", "bar"
+ });
+ addAnnotation
+ (getParallelQueuedUnit_HelperUnits(),
+ source,
+ new String[] {
+ "foo", "bar"
+ });
+ addAnnotation
+ (getParallelQueuedUnit_RefactoringUnits(),
+ source,
+ new String[] {
+ "foo", "bar"
+ });
+ }
+
+ /**
+ * Initializes the annotations for <b>gmf.link</b>.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected void createGmf_5Annotations() {
+ String source = "gmf.link";
+ addAnnotation
+ (singlePortMappingEClass,
+ source,
+ new String[] {
+ "source", "source",
+ "target", "target",
+ "style", "dot",
+ "width", "2",
+ "target.decoration", "arrow"
+ });
+ addAnnotation
+ (multiPortMappingEClass,
+ source,
+ new String[] {
+ "source", "source",
+ "target", "target",
+ "style", "dot",
+ "width", "2",
+ "target.decoration", "arrow"
+ });
+ addAnnotation
+ (multiSinglePortMappingEClass,
+ source,
+ new String[] {
+ "source", "source",
+ "target", "target",
+ "style", "dot",
+ "width", "2",
+ "target.decoration", "arrow",
+ "tool.small.bundle", "name"
+ });
+ }
+
+} //ComrelPackageImpl
diff --git a/org.eclipse.emf.refactor.comrel/src/comrel/impl/ConditionCheckImpl.java b/org.eclipse.emf.refactor.comrel/src/comrel/impl/ConditionCheckImpl.java
new file mode 100644
index 0000000..0895a90
--- /dev/null
+++ b/org.eclipse.emf.refactor.comrel/src/comrel/impl/ConditionCheckImpl.java
@@ -0,0 +1,344 @@
+/**
+ * <copyright>
+ * </copyright>
+ *
+ * $Id$
+ */
+package comrel.impl;
+
+import comrel.ComrelPackage;
+import comrel.ConditionCheck;
+import comrel.DescribedElement;
+
+import org.eclipse.emf.common.notify.Notification;
+
+import org.eclipse.emf.ecore.EClass;
+
+import org.eclipse.emf.ecore.impl.ENotificationImpl;
+import org.eclipse.emf.ecore.impl.EObjectImpl;
+
+/**
+ * <!-- begin-user-doc -->
+ * An implementation of the model object '<em><b>Condition Check</b></em>'.
+ * <!-- end-user-doc -->
+ * <p>
+ * The following features are implemented:
+ * <ul>
+ * <li>{@link comrel.impl.ConditionCheckImpl#getName <em>Name</em>}</li>
+ * <li>{@link comrel.impl.ConditionCheckImpl#getDescription <em>Description</em>}</li>
+ * <li>{@link comrel.impl.ConditionCheckImpl#getType <em>Type</em>}</li>
+ * <li>{@link comrel.impl.ConditionCheckImpl#getSpec <em>Spec</em>}</li>
+ * </ul>
+ * </p>
+ *
+ * @generated
+ */
+public class ConditionCheckImpl extends EObjectImpl implements ConditionCheck {
+ /**
+ * The default value of the '{@link #getName() <em>Name</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getName()
+ * @generated
+ * @ordered
+ */
+ protected static final String NAME_EDEFAULT = null;
+
+ /**
+ * The cached value of the '{@link #getName() <em>Name</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getName()
+ * @generated
+ * @ordered
+ */
+ protected String name = NAME_EDEFAULT;
+
+ /**
+ * The default value of the '{@link #getDescription() <em>Description</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getDescription()
+ * @generated
+ * @ordered
+ */
+ protected static final String DESCRIPTION_EDEFAULT = null;
+
+ /**
+ * The cached value of the '{@link #getDescription() <em>Description</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getDescription()
+ * @generated
+ * @ordered
+ */
+ protected String description = DESCRIPTION_EDEFAULT;
+
+ /**
+ * The default value of the '{@link #getType() <em>Type</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getType()
+ * @generated
+ * @ordered
+ */
+ protected static final String TYPE_EDEFAULT = "Condition Check";
+
+ /**
+ * The cached value of the '{@link #getType() <em>Type</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getType()
+ * @generated
+ * @ordered
+ */
+ protected String type = TYPE_EDEFAULT;
+
+ /**
+ * The default value of the '{@link #getSpec() <em>Spec</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getSpec()
+ * @generated
+ * @ordered
+ */
+ protected static final String SPEC_EDEFAULT = null;
+
+ /**
+ * The cached value of the '{@link #getSpec() <em>Spec</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getSpec()
+ * @generated
+ * @ordered
+ */
+ protected String spec = SPEC_EDEFAULT;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected ConditionCheckImpl() {
+ super();
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ protected EClass eStaticClass() {
+ return ComrelPackage.Literals.CONDITION_CHECK;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public String getName() {
+ return name;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public void setName(String newName) {
+ String oldName = name;
+ name = newName;
+ if (eNotificationRequired())
+ eNotify(new ENotificationImpl(this, Notification.SET, ComrelPackage.CONDITION_CHECK__NAME, oldName, name));
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public String getDescription() {
+ return description;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public void setDescription(String newDescription) {
+ String oldDescription = description;
+ description = newDescription;
+ if (eNotificationRequired())
+ eNotify(new ENotificationImpl(this, Notification.SET, ComrelPackage.CONDITION_CHECK__DESCRIPTION, oldDescription, description));
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public String getType() {
+ return type;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public String getSpec() {
+ return spec;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public void setSpec(String newSpec) {
+ String oldSpec = spec;
+ spec = newSpec;
+ if (eNotificationRequired())
+ eNotify(new ENotificationImpl(this, Notification.SET, ComrelPackage.CONDITION_CHECK__SPEC, oldSpec, spec));
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public Object eGet(int featureID, boolean resolve, boolean coreType) {
+ switch (featureID) {
+ case ComrelPackage.CONDITION_CHECK__NAME:
+ return getName();
+ case ComrelPackage.CONDITION_CHECK__DESCRIPTION:
+ return getDescription();
+ case ComrelPackage.CONDITION_CHECK__TYPE:
+ return getType();
+ case ComrelPackage.CONDITION_CHECK__SPEC:
+ return getSpec();
+ }
+ return super.eGet(featureID, resolve, coreType);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public void eSet(int featureID, Object newValue) {
+ switch (featureID) {
+ case ComrelPackage.CONDITION_CHECK__NAME:
+ setName((String)newValue);
+ return;
+ case ComrelPackage.CONDITION_CHECK__DESCRIPTION:
+ setDescription((String)newValue);
+ return;
+ case ComrelPackage.CONDITION_CHECK__SPEC:
+ setSpec((String)newValue);
+ return;
+ }
+ super.eSet(featureID, newValue);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public void eUnset(int featureID) {
+ switch (featureID) {
+ case ComrelPackage.CONDITION_CHECK__NAME:
+ setName(NAME_EDEFAULT);
+ return;
+ case ComrelPackage.CONDITION_CHECK__DESCRIPTION:
+ setDescription(DESCRIPTION_EDEFAULT);
+ return;
+ case ComrelPackage.CONDITION_CHECK__SPEC:
+ setSpec(SPEC_EDEFAULT);
+ return;
+ }
+ super.eUnset(featureID);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public boolean eIsSet(int featureID) {
+ switch (featureID) {
+ case ComrelPackage.CONDITION_CHECK__NAME:
+ return NAME_EDEFAULT == null ? name != null : !NAME_EDEFAULT.equals(name);
+ case ComrelPackage.CONDITION_CHECK__DESCRIPTION:
+ return DESCRIPTION_EDEFAULT == null ? description != null : !DESCRIPTION_EDEFAULT.equals(description);
+ case ComrelPackage.CONDITION_CHECK__TYPE:
+ return TYPE_EDEFAULT == null ? type != null : !TYPE_EDEFAULT.equals(type);
+ case ComrelPackage.CONDITION_CHECK__SPEC:
+ return SPEC_EDEFAULT == null ? spec != null : !SPEC_EDEFAULT.equals(spec);
+ }
+ return super.eIsSet(featureID);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public int eBaseStructuralFeatureID(int derivedFeatureID, Class<?> baseClass) {
+ if (baseClass == DescribedElement.class) {
+ switch (derivedFeatureID) {
+ case ComrelPackage.CONDITION_CHECK__DESCRIPTION: return ComrelPackage.DESCRIBED_ELEMENT__DESCRIPTION;
+ default: return -1;
+ }
+ }
+ return super.eBaseStructuralFeatureID(derivedFeatureID, baseClass);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public int eDerivedStructuralFeatureID(int baseFeatureID, Class<?> baseClass) {
+ if (baseClass == DescribedElement.class) {
+ switch (baseFeatureID) {
+ case ComrelPackage.DESCRIBED_ELEMENT__DESCRIPTION: return ComrelPackage.CONDITION_CHECK__DESCRIPTION;
+ default: return -1;
+ }
+ }
+ return super.eDerivedStructuralFeatureID(baseFeatureID, baseClass);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public String toString() {
+ if (eIsProxy()) return super.toString();
+
+ StringBuffer result = new StringBuffer(super.toString());
+ result.append(" (name: ");
+ result.append(name);
+ result.append(", description: ");
+ result.append(description);
+ result.append(", type: ");
+ result.append(type);
+ result.append(", spec: ");
+ result.append(spec);
+ result.append(')');
+ return result.toString();
+ }
+
+} //ConditionCheckImpl
diff --git a/org.eclipse.emf.refactor.comrel/src/comrel/impl/ConditionalUnitImpl.java b/org.eclipse.emf.refactor.comrel/src/comrel/impl/ConditionalUnitImpl.java
new file mode 100644
index 0000000..ffd3caa
--- /dev/null
+++ b/org.eclipse.emf.refactor.comrel/src/comrel/impl/ConditionalUnitImpl.java
@@ -0,0 +1,444 @@
+/**
+ * <copyright>
+ * </copyright>
+ *
+ * $Id$
+ */
+package comrel.impl;
+
+import comrel.ComrelPackage;
+import comrel.ConditionCheck;
+import comrel.ConditionalUnit;
+import comrel.HelperUnit;
+import comrel.InputPort;
+import comrel.RefactoringUnit;
+
+import java.util.Collection;
+
+import org.eclipse.emf.common.notify.Notification;
+import org.eclipse.emf.common.notify.NotificationChain;
+
+import org.eclipse.emf.common.util.EList;
+
+import org.eclipse.emf.ecore.EClass;
+import org.eclipse.emf.ecore.InternalEObject;
+
+import org.eclipse.emf.ecore.impl.ENotificationImpl;
+
+import org.eclipse.emf.ecore.util.EObjectContainmentEList;
+import org.eclipse.emf.ecore.util.InternalEList;
+
+/**
+ * <!-- begin-user-doc -->
+ * An implementation of the model object '<em><b>Conditional Unit</b></em>'.
+ * <!-- end-user-doc -->
+ * <p>
+ * The following features are implemented:
+ * <ul>
+ * <li>{@link comrel.impl.ConditionalUnitImpl#getIf <em>If</em>}</li>
+ * <li>{@link comrel.impl.ConditionalUnitImpl#getHelperUnits <em>Helper Units</em>}</li>
+ * <li>{@link comrel.impl.ConditionalUnitImpl#getThen <em>Then</em>}</li>
+ * <li>{@link comrel.impl.ConditionalUnitImpl#getElse <em>Else</em>}</li>
+ * <li>{@link comrel.impl.ConditionalUnitImpl#getInputPorts <em>Input Ports</em>}</li>
+ * <li>{@link comrel.impl.ConditionalUnitImpl#getType <em>Type</em>}</li>
+ * </ul>
+ * </p>
+ *
+ * @generated
+ */
+public class ConditionalUnitImpl extends CompositeUnitImpl implements ConditionalUnit {
+ /**
+ * The cached value of the '{@link #getIf() <em>If</em>}' containment reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getIf()
+ * @generated
+ * @ordered
+ */
+ protected ConditionCheck if_;
+
+ /**
+ * The cached value of the '{@link #getHelperUnits() <em>Helper Units</em>}' containment reference list.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getHelperUnits()
+ * @generated
+ * @ordered
+ */
+ protected EList<HelperUnit> helperUnits;
+
+ /**
+ * The cached value of the '{@link #getThen() <em>Then</em>}' containment reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getThen()
+ * @generated
+ * @ordered
+ */
+ protected RefactoringUnit then;
+
+ /**
+ * The cached value of the '{@link #getElse() <em>Else</em>}' containment reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getElse()
+ * @generated
+ * @ordered
+ */
+ protected RefactoringUnit else_;
+
+ /**
+ * The cached value of the '{@link #getInputPorts() <em>Input Ports</em>}' containment reference list.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getInputPorts()
+ * @generated
+ * @ordered
+ */
+ protected EList<InputPort> inputPorts;
+
+ /**
+ * The default value of the '{@link #getType() <em>Type</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getType()
+ * @generated
+ * @ordered
+ */
+ protected static final String TYPE_EDEFAULT = "Conditional Unit";
+
+ /**
+ * The cached value of the '{@link #getType() <em>Type</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getType()
+ * @generated
+ * @ordered
+ */
+ protected String type = TYPE_EDEFAULT;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected ConditionalUnitImpl() {
+ super();
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ protected EClass eStaticClass() {
+ return ComrelPackage.Literals.CONDITIONAL_UNIT;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public ConditionCheck getIf() {
+ return if_;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public NotificationChain basicSetIf(ConditionCheck newIf, NotificationChain msgs) {
+ ConditionCheck oldIf = if_;
+ if_ = newIf;
+ if (eNotificationRequired()) {
+ ENotificationImpl notification = new ENotificationImpl(this, Notification.SET, ComrelPackage.CONDITIONAL_UNIT__IF, oldIf, newIf);
+ if (msgs == null) msgs = notification; else msgs.add(notification);
+ }
+ return msgs;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public void setIf(ConditionCheck newIf) {
+ if (newIf != if_) {
+ NotificationChain msgs = null;
+ if (if_ != null)
+ msgs = ((InternalEObject)if_).eInverseRemove(this, EOPPOSITE_FEATURE_BASE - ComrelPackage.CONDITIONAL_UNIT__IF, null, msgs);
+ if (newIf != null)
+ msgs = ((InternalEObject)newIf).eInverseAdd(this, EOPPOSITE_FEATURE_BASE - ComrelPackage.CONDITIONAL_UNIT__IF, null, msgs);
+ msgs = basicSetIf(newIf, msgs);
+ if (msgs != null) msgs.dispatch();
+ }
+ else if (eNotificationRequired())
+ eNotify(new ENotificationImpl(this, Notification.SET, ComrelPackage.CONDITIONAL_UNIT__IF, newIf, newIf));
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EList<HelperUnit> getHelperUnits() {
+ if (helperUnits == null) {
+ helperUnits = new EObjectContainmentEList<HelperUnit>(HelperUnit.class, this, ComrelPackage.CONDITIONAL_UNIT__HELPER_UNITS);
+ }
+ return helperUnits;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public RefactoringUnit getThen() {
+ return then;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public NotificationChain basicSetThen(RefactoringUnit newThen, NotificationChain msgs) {
+ RefactoringUnit oldThen = then;
+ then = newThen;
+ if (eNotificationRequired()) {
+ ENotificationImpl notification = new ENotificationImpl(this, Notification.SET, ComrelPackage.CONDITIONAL_UNIT__THEN, oldThen, newThen);
+ if (msgs == null) msgs = notification; else msgs.add(notification);
+ }
+ return msgs;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public void setThen(RefactoringUnit newThen) {
+ if (newThen != then) {
+ NotificationChain msgs = null;
+ if (then != null)
+ msgs = ((InternalEObject)then).eInverseRemove(this, EOPPOSITE_FEATURE_BASE - ComrelPackage.CONDITIONAL_UNIT__THEN, null, msgs);
+ if (newThen != null)
+ msgs = ((InternalEObject)newThen).eInverseAdd(this, EOPPOSITE_FEATURE_BASE - ComrelPackage.CONDITIONAL_UNIT__THEN, null, msgs);
+ msgs = basicSetThen(newThen, msgs);
+ if (msgs != null) msgs.dispatch();
+ }
+ else if (eNotificationRequired())
+ eNotify(new ENotificationImpl(this, Notification.SET, ComrelPackage.CONDITIONAL_UNIT__THEN, newThen, newThen));
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public RefactoringUnit getElse() {
+ return else_;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public NotificationChain basicSetElse(RefactoringUnit newElse, NotificationChain msgs) {
+ RefactoringUnit oldElse = else_;
+ else_ = newElse;
+ if (eNotificationRequired()) {
+ ENotificationImpl notification = new ENotificationImpl(this, Notification.SET, ComrelPackage.CONDITIONAL_UNIT__ELSE, oldElse, newElse);
+ if (msgs == null) msgs = notification; else msgs.add(notification);
+ }
+ return msgs;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public void setElse(RefactoringUnit newElse) {
+ if (newElse != else_) {
+ NotificationChain msgs = null;
+ if (else_ != null)
+ msgs = ((InternalEObject)else_).eInverseRemove(this, EOPPOSITE_FEATURE_BASE - ComrelPackage.CONDITIONAL_UNIT__ELSE, null, msgs);
+ if (newElse != null)
+ msgs = ((InternalEObject)newElse).eInverseAdd(this, EOPPOSITE_FEATURE_BASE - ComrelPackage.CONDITIONAL_UNIT__ELSE, null, msgs);
+ msgs = basicSetElse(newElse, msgs);
+ if (msgs != null) msgs.dispatch();
+ }
+ else if (eNotificationRequired())
+ eNotify(new ENotificationImpl(this, Notification.SET, ComrelPackage.CONDITIONAL_UNIT__ELSE, newElse, newElse));
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EList<InputPort> getInputPorts() {
+ if (inputPorts == null) {
+ inputPorts = new EObjectContainmentEList<InputPort>(InputPort.class, this, ComrelPackage.CONDITIONAL_UNIT__INPUT_PORTS);
+ }
+ return inputPorts;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public String getType() {
+ return type;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public NotificationChain eInverseRemove(InternalEObject otherEnd, int featureID, NotificationChain msgs) {
+ switch (featureID) {
+ case ComrelPackage.CONDITIONAL_UNIT__IF:
+ return basicSetIf(null, msgs);
+ case ComrelPackage.CONDITIONAL_UNIT__HELPER_UNITS:
+ return ((InternalEList<?>)getHelperUnits()).basicRemove(otherEnd, msgs);
+ case ComrelPackage.CONDITIONAL_UNIT__THEN:
+ return basicSetThen(null, msgs);
+ case ComrelPackage.CONDITIONAL_UNIT__ELSE:
+ return basicSetElse(null, msgs);
+ case ComrelPackage.CONDITIONAL_UNIT__INPUT_PORTS:
+ return ((InternalEList<?>)getInputPorts()).basicRemove(otherEnd, msgs);
+ }
+ return super.eInverseRemove(otherEnd, featureID, msgs);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public Object eGet(int featureID, boolean resolve, boolean coreType) {
+ switch (featureID) {
+ case ComrelPackage.CONDITIONAL_UNIT__IF:
+ return getIf();
+ case ComrelPackage.CONDITIONAL_UNIT__HELPER_UNITS:
+ return getHelperUnits();
+ case ComrelPackage.CONDITIONAL_UNIT__THEN:
+ return getThen();
+ case ComrelPackage.CONDITIONAL_UNIT__ELSE:
+ return getElse();
+ case ComrelPackage.CONDITIONAL_UNIT__INPUT_PORTS:
+ return getInputPorts();
+ case ComrelPackage.CONDITIONAL_UNIT__TYPE:
+ return getType();
+ }
+ return super.eGet(featureID, resolve, coreType);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @SuppressWarnings("unchecked")
+ @Override
+ public void eSet(int featureID, Object newValue) {
+ switch (featureID) {
+ case ComrelPackage.CONDITIONAL_UNIT__IF:
+ setIf((ConditionCheck)newValue);
+ return;
+ case ComrelPackage.CONDITIONAL_UNIT__HELPER_UNITS:
+ getHelperUnits().clear();
+ getHelperUnits().addAll((Collection<? extends HelperUnit>)newValue);
+ return;
+ case ComrelPackage.CONDITIONAL_UNIT__THEN:
+ setThen((RefactoringUnit)newValue);
+ return;
+ case ComrelPackage.CONDITIONAL_UNIT__ELSE:
+ setElse((RefactoringUnit)newValue);
+ return;
+ case ComrelPackage.CONDITIONAL_UNIT__INPUT_PORTS:
+ getInputPorts().clear();
+ getInputPorts().addAll((Collection<? extends InputPort>)newValue);
+ return;
+ }
+ super.eSet(featureID, newValue);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public void eUnset(int featureID) {
+ switch (featureID) {
+ case ComrelPackage.CONDITIONAL_UNIT__IF:
+ setIf((ConditionCheck)null);
+ return;
+ case ComrelPackage.CONDITIONAL_UNIT__HELPER_UNITS:
+ getHelperUnits().clear();
+ return;
+ case ComrelPackage.CONDITIONAL_UNIT__THEN:
+ setThen((RefactoringUnit)null);
+ return;
+ case ComrelPackage.CONDITIONAL_UNIT__ELSE:
+ setElse((RefactoringUnit)null);
+ return;
+ case ComrelPackage.CONDITIONAL_UNIT__INPUT_PORTS:
+ getInputPorts().clear();
+ return;
+ }
+ super.eUnset(featureID);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public boolean eIsSet(int featureID) {
+ switch (featureID) {
+ case ComrelPackage.CONDITIONAL_UNIT__IF:
+ return if_ != null;
+ case ComrelPackage.CONDITIONAL_UNIT__HELPER_UNITS:
+ return helperUnits != null && !helperUnits.isEmpty();
+ case ComrelPackage.CONDITIONAL_UNIT__THEN:
+ return then != null;
+ case ComrelPackage.CONDITIONAL_UNIT__ELSE:
+ return else_ != null;
+ case ComrelPackage.CONDITIONAL_UNIT__INPUT_PORTS:
+ return inputPorts != null && !inputPorts.isEmpty();
+ case ComrelPackage.CONDITIONAL_UNIT__TYPE:
+ return TYPE_EDEFAULT == null ? type != null : !TYPE_EDEFAULT.equals(type);
+ }
+ return super.eIsSet(featureID);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public String toString() {
+ if (eIsProxy()) return super.toString();
+
+ StringBuffer result = new StringBuffer(super.toString());
+ result.append(" (type: ");
+ result.append(type);
+ result.append(')');
+ return result.toString();
+ }
+
+} //ConditionalUnitImpl
diff --git a/org.eclipse.emf.refactor.comrel/src/comrel/impl/FeatureHelperImpl.java b/org.eclipse.emf.refactor.comrel/src/comrel/impl/FeatureHelperImpl.java
new file mode 100644
index 0000000..a7ea61f
--- /dev/null
+++ b/org.eclipse.emf.refactor.comrel/src/comrel/impl/FeatureHelperImpl.java
@@ -0,0 +1,224 @@
+/**
+ * <copyright>
+ * </copyright>
+ *
+ * $Id$
+ */
+package comrel.impl;
+
+import comrel.ComrelPackage;
+import comrel.FeatureHelper;
+import comrel.MultiInputPort;
+import comrel.SingleInputPort;
+
+import java.util.Collection;
+
+import org.eclipse.emf.common.notify.Notification;
+import org.eclipse.emf.common.notify.NotificationChain;
+
+import org.eclipse.emf.common.util.EList;
+
+import org.eclipse.emf.ecore.EClass;
+import org.eclipse.emf.ecore.InternalEObject;
+
+import org.eclipse.emf.ecore.impl.ENotificationImpl;
+
+import org.eclipse.emf.ecore.util.EObjectContainmentEList;
+import org.eclipse.emf.ecore.util.InternalEList;
+
+/**
+ * <!-- begin-user-doc -->
+ * An implementation of the model object '<em><b>Feature Helper</b></em>'.
+ * <!-- end-user-doc -->
+ * <p>
+ * The following features are implemented:
+ * <ul>
+ * <li>{@link comrel.impl.FeatureHelperImpl#getInputPort <em>Input Port</em>}</li>
+ * <li>{@link comrel.impl.FeatureHelperImpl#getSecondaryInputPorts <em>Secondary Input Ports</em>}</li>
+ * </ul>
+ * </p>
+ *
+ * @generated
+ */
+public abstract class FeatureHelperImpl extends HelperImpl implements FeatureHelper {
+ /**
+ * The cached value of the '{@link #getInputPort() <em>Input Port</em>}' containment reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getInputPort()
+ * @generated
+ * @ordered
+ */
+ protected SingleInputPort inputPort;
+
+ /**
+ * The cached value of the '{@link #getSecondaryInputPorts() <em>Secondary Input Ports</em>}' containment reference list.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getSecondaryInputPorts()
+ * @generated
+ * @ordered
+ */
+ protected EList<MultiInputPort> secondaryInputPorts;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected FeatureHelperImpl() {
+ super();
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ protected EClass eStaticClass() {
+ return ComrelPackage.Literals.FEATURE_HELPER;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public SingleInputPort getInputPort() {
+ return inputPort;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public NotificationChain basicSetInputPort(SingleInputPort newInputPort, NotificationChain msgs) {
+ SingleInputPort oldInputPort = inputPort;
+ inputPort = newInputPort;
+ if (eNotificationRequired()) {
+ ENotificationImpl notification = new ENotificationImpl(this, Notification.SET, ComrelPackage.FEATURE_HELPER__INPUT_PORT, oldInputPort, newInputPort);
+ if (msgs == null) msgs = notification; else msgs.add(notification);
+ }
+ return msgs;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public void setInputPort(SingleInputPort newInputPort) {
+ if (newInputPort != inputPort) {
+ NotificationChain msgs = null;
+ if (inputPort != null)
+ msgs = ((InternalEObject)inputPort).eInverseRemove(this, EOPPOSITE_FEATURE_BASE - ComrelPackage.FEATURE_HELPER__INPUT_PORT, null, msgs);
+ if (newInputPort != null)
+ msgs = ((InternalEObject)newInputPort).eInverseAdd(this, EOPPOSITE_FEATURE_BASE - ComrelPackage.FEATURE_HELPER__INPUT_PORT, null, msgs);
+ msgs = basicSetInputPort(newInputPort, msgs);
+ if (msgs != null) msgs.dispatch();
+ }
+ else if (eNotificationRequired())
+ eNotify(new ENotificationImpl(this, Notification.SET, ComrelPackage.FEATURE_HELPER__INPUT_PORT, newInputPort, newInputPort));
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EList<MultiInputPort> getSecondaryInputPorts() {
+ if (secondaryInputPorts == null) {
+ secondaryInputPorts = new EObjectContainmentEList<MultiInputPort>(MultiInputPort.class, this, ComrelPackage.FEATURE_HELPER__SECONDARY_INPUT_PORTS);
+ }
+ return secondaryInputPorts;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public NotificationChain eInverseRemove(InternalEObject otherEnd, int featureID, NotificationChain msgs) {
+ switch (featureID) {
+ case ComrelPackage.FEATURE_HELPER__INPUT_PORT:
+ return basicSetInputPort(null, msgs);
+ case ComrelPackage.FEATURE_HELPER__SECONDARY_INPUT_PORTS:
+ return ((InternalEList<?>)getSecondaryInputPorts()).basicRemove(otherEnd, msgs);
+ }
+ return super.eInverseRemove(otherEnd, featureID, msgs);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public Object eGet(int featureID, boolean resolve, boolean coreType) {
+ switch (featureID) {
+ case ComrelPackage.FEATURE_HELPER__INPUT_PORT:
+ return getInputPort();
+ case ComrelPackage.FEATURE_HELPER__SECONDARY_INPUT_PORTS:
+ return getSecondaryInputPorts();
+ }
+ return super.eGet(featureID, resolve, coreType);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @SuppressWarnings("unchecked")
+ @Override
+ public void eSet(int featureID, Object newValue) {
+ switch (featureID) {
+ case ComrelPackage.FEATURE_HELPER__INPUT_PORT:
+ setInputPort((SingleInputPort)newValue);
+ return;
+ case ComrelPackage.FEATURE_HELPER__SECONDARY_INPUT_PORTS:
+ getSecondaryInputPorts().clear();
+ getSecondaryInputPorts().addAll((Collection<? extends MultiInputPort>)newValue);
+ return;
+ }
+ super.eSet(featureID, newValue);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public void eUnset(int featureID) {
+ switch (featureID) {
+ case ComrelPackage.FEATURE_HELPER__INPUT_PORT:
+ setInputPort((SingleInputPort)null);
+ return;
+ case ComrelPackage.FEATURE_HELPER__SECONDARY_INPUT_PORTS:
+ getSecondaryInputPorts().clear();
+ return;
+ }
+ super.eUnset(featureID);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public boolean eIsSet(int featureID) {
+ switch (featureID) {
+ case ComrelPackage.FEATURE_HELPER__INPUT_PORT:
+ return inputPort != null;
+ case ComrelPackage.FEATURE_HELPER__SECONDARY_INPUT_PORTS:
+ return secondaryInputPorts != null && !secondaryInputPorts.isEmpty();
+ }
+ return super.eIsSet(featureID);
+ }
+
+} //FeatureHelperImpl
diff --git a/org.eclipse.emf.refactor.comrel/src/comrel/impl/FeatureUnitImpl.java b/org.eclipse.emf.refactor.comrel/src/comrel/impl/FeatureUnitImpl.java
new file mode 100644
index 0000000..e60e9b3
--- /dev/null
+++ b/org.eclipse.emf.refactor.comrel/src/comrel/impl/FeatureUnitImpl.java
@@ -0,0 +1,43 @@
+/**
+ * <copyright>
+ * </copyright>
+ *
+ * $Id$
+ */
+package comrel.impl;
+
+import comrel.ComrelPackage;
+import comrel.FeatureUnit;
+
+import org.eclipse.emf.ecore.EClass;
+
+/**
+ * <!-- begin-user-doc -->
+ * An implementation of the model object '<em><b>Feature Unit</b></em>'.
+ * <!-- end-user-doc -->
+ * <p>
+ * </p>
+ *
+ * @generated
+ */
+public abstract class FeatureUnitImpl extends HelperUnitImpl implements FeatureUnit {
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected FeatureUnitImpl() {
+ super();
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ protected EClass eStaticClass() {
+ return ComrelPackage.Literals.FEATURE_UNIT;
+ }
+
+} //FeatureUnitImpl
diff --git a/org.eclipse.emf.refactor.comrel/src/comrel/impl/FilterHelperImpl.java b/org.eclipse.emf.refactor.comrel/src/comrel/impl/FilterHelperImpl.java
new file mode 100644
index 0000000..46e3bc6
--- /dev/null
+++ b/org.eclipse.emf.refactor.comrel/src/comrel/impl/FilterHelperImpl.java
@@ -0,0 +1,179 @@
+/**
+ * <copyright>
+ * </copyright>
+ *
+ * $Id$
+ */
+package comrel.impl;
+
+import comrel.ComrelPackage;
+import comrel.FilterHelper;
+import comrel.MultiInputPort;
+
+import org.eclipse.emf.common.notify.Notification;
+import org.eclipse.emf.common.notify.NotificationChain;
+
+import org.eclipse.emf.ecore.EClass;
+import org.eclipse.emf.ecore.InternalEObject;
+
+import org.eclipse.emf.ecore.impl.ENotificationImpl;
+
+/**
+ * <!-- begin-user-doc -->
+ * An implementation of the model object '<em><b>Filter Helper</b></em>'.
+ * <!-- end-user-doc -->
+ * <p>
+ * The following features are implemented:
+ * <ul>
+ * <li>{@link comrel.impl.FilterHelperImpl#getInputPort <em>Input Port</em>}</li>
+ * </ul>
+ * </p>
+ *
+ * @generated
+ */
+public abstract class FilterHelperImpl extends HelperImpl implements FilterHelper {
+ /**
+ * The cached value of the '{@link #getInputPort() <em>Input Port</em>}' containment reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getInputPort()
+ * @generated
+ * @ordered
+ */
+ protected MultiInputPort inputPort;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected FilterHelperImpl() {
+ super();
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ protected EClass eStaticClass() {
+ return ComrelPackage.Literals.FILTER_HELPER;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public MultiInputPort getInputPort() {
+ return inputPort;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public NotificationChain basicSetInputPort(MultiInputPort newInputPort, NotificationChain msgs) {
+ MultiInputPort oldInputPort = inputPort;
+ inputPort = newInputPort;
+ if (eNotificationRequired()) {
+ ENotificationImpl notification = new ENotificationImpl(this, Notification.SET, ComrelPackage.FILTER_HELPER__INPUT_PORT, oldInputPort, newInputPort);
+ if (msgs == null) msgs = notification; else msgs.add(notification);
+ }
+ return msgs;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public void setInputPort(MultiInputPort newInputPort) {
+ if (newInputPort != inputPort) {
+ NotificationChain msgs = null;
+ if (inputPort != null)
+ msgs = ((InternalEObject)inputPort).eInverseRemove(this, EOPPOSITE_FEATURE_BASE - ComrelPackage.FILTER_HELPER__INPUT_PORT, null, msgs);
+ if (newInputPort != null)
+ msgs = ((InternalEObject)newInputPort).eInverseAdd(this, EOPPOSITE_FEATURE_BASE - ComrelPackage.FILTER_HELPER__INPUT_PORT, null, msgs);
+ msgs = basicSetInputPort(newInputPort, msgs);
+ if (msgs != null) msgs.dispatch();
+ }
+ else if (eNotificationRequired())
+ eNotify(new ENotificationImpl(this, Notification.SET, ComrelPackage.FILTER_HELPER__INPUT_PORT, newInputPort, newInputPort));
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public NotificationChain eInverseRemove(InternalEObject otherEnd, int featureID, NotificationChain msgs) {
+ switch (featureID) {
+ case ComrelPackage.FILTER_HELPER__INPUT_PORT:
+ return basicSetInputPort(null, msgs);
+ }
+ return super.eInverseRemove(otherEnd, featureID, msgs);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public Object eGet(int featureID, boolean resolve, boolean coreType) {
+ switch (featureID) {
+ case ComrelPackage.FILTER_HELPER__INPUT_PORT:
+ return getInputPort();
+ }
+ return super.eGet(featureID, resolve, coreType);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public void eSet(int featureID, Object newValue) {
+ switch (featureID) {
+ case ComrelPackage.FILTER_HELPER__INPUT_PORT:
+ setInputPort((MultiInputPort)newValue);
+ return;
+ }
+ super.eSet(featureID, newValue);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public void eUnset(int featureID) {
+ switch (featureID) {
+ case ComrelPackage.FILTER_HELPER__INPUT_PORT:
+ setInputPort((MultiInputPort)null);
+ return;
+ }
+ super.eUnset(featureID);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public boolean eIsSet(int featureID) {
+ switch (featureID) {
+ case ComrelPackage.FILTER_HELPER__INPUT_PORT:
+ return inputPort != null;
+ }
+ return super.eIsSet(featureID);
+ }
+
+} //FilterHelperImpl
diff --git a/org.eclipse.emf.refactor.comrel/src/comrel/impl/FilterUnitImpl.java b/org.eclipse.emf.refactor.comrel/src/comrel/impl/FilterUnitImpl.java
new file mode 100644
index 0000000..90ea4fd
--- /dev/null
+++ b/org.eclipse.emf.refactor.comrel/src/comrel/impl/FilterUnitImpl.java
@@ -0,0 +1,43 @@
+/**
+ * <copyright>
+ * </copyright>
+ *
+ * $Id$
+ */
+package comrel.impl;
+
+import comrel.ComrelPackage;
+import comrel.FilterUnit;
+
+import org.eclipse.emf.ecore.EClass;
+
+/**
+ * <!-- begin-user-doc -->
+ * An implementation of the model object '<em><b>Filter Unit</b></em>'.
+ * <!-- end-user-doc -->
+ * <p>
+ * </p>
+ *
+ * @generated
+ */
+public abstract class FilterUnitImpl extends HelperUnitImpl implements FilterUnit {
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected FilterUnitImpl() {
+ super();
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ protected EClass eStaticClass() {
+ return ComrelPackage.Literals.FILTER_UNIT;
+ }
+
+} //FilterUnitImpl
diff --git a/org.eclipse.emf.refactor.comrel/src/comrel/impl/HelperImpl.java b/org.eclipse.emf.refactor.comrel/src/comrel/impl/HelperImpl.java
new file mode 100644
index 0000000..63753e7
--- /dev/null
+++ b/org.eclipse.emf.refactor.comrel/src/comrel/impl/HelperImpl.java
@@ -0,0 +1,367 @@
+/**
+ * <copyright>
+ * </copyright>
+ *
+ * $Id$
+ */
+package comrel.impl;
+
+import comrel.ComrelPackage;
+import comrel.DescribedElement;
+import comrel.Helper;
+import comrel.util.ComrelUtil;
+
+import org.eclipse.emf.common.notify.Notification;
+
+import org.eclipse.emf.ecore.EClass;
+
+import org.eclipse.emf.ecore.impl.ENotificationImpl;
+import org.eclipse.emf.ecore.impl.EObjectImpl;
+
+/**
+ * <!-- begin-user-doc -->
+ * An implementation of the model object '<em><b>Helper</b></em>'.
+ * <!-- end-user-doc -->
+ * <p>
+ * The following features are implemented:
+ * <ul>
+ * <li>{@link comrel.impl.HelperImpl#getName <em>Name</em>}</li>
+ * <li>{@link comrel.impl.HelperImpl#getDescription <em>Description</em>}</li>
+ * <li>{@link comrel.impl.HelperImpl#getHelperId <em>Helper Id</em>}</li>
+ * <li>{@link comrel.impl.HelperImpl#getNamespaceUri <em>Namespace Uri</em>}</li>
+ * </ul>
+ * </p>
+ *
+ * @generated
+ */
+public abstract class HelperImpl extends EObjectImpl implements Helper {
+ /**
+ * The default value of the '{@link #getName() <em>Name</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getName()
+ * @generated
+ * @ordered
+ */
+ protected static final String NAME_EDEFAULT = null;
+
+ /**
+ * The cached value of the '{@link #getName() <em>Name</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getName()
+ * @generated
+ * @ordered
+ */
+ protected String name = NAME_EDEFAULT;
+
+ /**
+ * The default value of the '{@link #getDescription() <em>Description</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getDescription()
+ * @generated
+ * @ordered
+ */
+ protected static final String DESCRIPTION_EDEFAULT = null;
+
+ /**
+ * The cached value of the '{@link #getDescription() <em>Description</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getDescription()
+ * @generated
+ * @ordered
+ */
+ protected String description = DESCRIPTION_EDEFAULT;
+
+ /**
+ * The default value of the '{@link #getHelperId() <em>Helper Id</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getHelperId()
+ * @generated
+ * @ordered
+ */
+ protected static final String HELPER_ID_EDEFAULT = null;
+
+ /**
+ * The cached value of the '{@link #getHelperId() <em>Helper Id</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getHelperId()
+ * @generated
+ * @ordered
+ */
+ protected String helperId = HELPER_ID_EDEFAULT;
+
+ /**
+ * The default value of the '{@link #getNamespaceUri() <em>Namespace Uri</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getNamespaceUri()
+ * @generated
+ * @ordered
+ */
+ protected static final String NAMESPACE_URI_EDEFAULT = null;
+
+ /**
+ * The cached value of the '{@link #getNamespaceUri() <em>Namespace Uri</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getNamespaceUri()
+ * @generated
+ * @ordered
+ */
+ protected String namespaceUri = NAMESPACE_URI_EDEFAULT;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected HelperImpl() {
+ super();
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ protected EClass eStaticClass() {
+ return ComrelPackage.Literals.HELPER;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public String getName() {
+ return name;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public void setName(String newName) {
+ if (ComrelUtil.objectIsSettable(this)) {
+ String oldName = name;
+ name = newName;
+ if (eNotificationRequired())
+ eNotify(new ENotificationImpl(this, Notification.SET, ComrelPackage.HELPER__NAME, oldName, name));
+ }
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public String getDescription() {
+ return description;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public void setDescription(String newDescription) {
+ String oldDescription = description;
+ description = newDescription;
+ if (eNotificationRequired())
+ eNotify(new ENotificationImpl(this, Notification.SET, ComrelPackage.HELPER__DESCRIPTION, oldDescription, description));
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public String getHelperId() {
+ return helperId;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public void setHelperId(String newHelperId) {
+ if (ComrelUtil.objectIsSettable(this)) {
+ String oldHelperId = helperId;
+ helperId = newHelperId;
+ if (eNotificationRequired())
+ eNotify(new ENotificationImpl(this, Notification.SET, ComrelPackage.HELPER__HELPER_ID, oldHelperId, helperId));
+ }
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public String getNamespaceUri() {
+ return namespaceUri;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public void setNamespaceUri(String newNamespaceUri) {
+ String oldNamespaceUri = namespaceUri;
+ namespaceUri = newNamespaceUri;
+ if (eNotificationRequired())
+ eNotify(new ENotificationImpl(this, Notification.SET, ComrelPackage.HELPER__NAMESPACE_URI, oldNamespaceUri, namespaceUri));
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public Object eGet(int featureID, boolean resolve, boolean coreType) {
+ switch (featureID) {
+ case ComrelPackage.HELPER__NAME:
+ return getName();
+ case ComrelPackage.HELPER__DESCRIPTION:
+ return getDescription();
+ case ComrelPackage.HELPER__HELPER_ID:
+ return getHelperId();
+ case ComrelPackage.HELPER__NAMESPACE_URI:
+ return getNamespaceUri();
+ }
+ return super.eGet(featureID, resolve, coreType);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public void eSet(int featureID, Object newValue) {
+ switch (featureID) {
+ case ComrelPackage.HELPER__NAME:
+ setName((String)newValue);
+ return;
+ case ComrelPackage.HELPER__DESCRIPTION:
+ setDescription((String)newValue);
+ return;
+ case ComrelPackage.HELPER__HELPER_ID:
+ setHelperId((String)newValue);
+ return;
+ case ComrelPackage.HELPER__NAMESPACE_URI:
+ setNamespaceUri((String)newValue);
+ return;
+ }
+ super.eSet(featureID, newValue);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public void eUnset(int featureID) {
+ switch (featureID) {
+ case ComrelPackage.HELPER__NAME:
+ setName(NAME_EDEFAULT);
+ return;
+ case ComrelPackage.HELPER__DESCRIPTION:
+ setDescription(DESCRIPTION_EDEFAULT);
+ return;
+ case ComrelPackage.HELPER__HELPER_ID:
+ setHelperId(HELPER_ID_EDEFAULT);
+ return;
+ case ComrelPackage.HELPER__NAMESPACE_URI:
+ setNamespaceUri(NAMESPACE_URI_EDEFAULT);
+ return;
+ }
+ super.eUnset(featureID);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public boolean eIsSet(int featureID) {
+ switch (featureID) {
+ case ComrelPackage.HELPER__NAME:
+ return NAME_EDEFAULT == null ? name != null : !NAME_EDEFAULT.equals(name);
+ case ComrelPackage.HELPER__DESCRIPTION:
+ return DESCRIPTION_EDEFAULT == null ? description != null : !DESCRIPTION_EDEFAULT.equals(description);
+ case ComrelPackage.HELPER__HELPER_ID:
+ return HELPER_ID_EDEFAULT == null ? helperId != null : !HELPER_ID_EDEFAULT.equals(helperId);
+ case ComrelPackage.HELPER__NAMESPACE_URI:
+ return NAMESPACE_URI_EDEFAULT == null ? namespaceUri != null : !NAMESPACE_URI_EDEFAULT.equals(namespaceUri);
+ }
+ return super.eIsSet(featureID);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public int eBaseStructuralFeatureID(int derivedFeatureID, Class<?> baseClass) {
+ if (baseClass == DescribedElement.class) {
+ switch (derivedFeatureID) {
+ case ComrelPackage.HELPER__DESCRIPTION: return ComrelPackage.DESCRIBED_ELEMENT__DESCRIPTION;
+ default: return -1;
+ }
+ }
+ return super.eBaseStructuralFeatureID(derivedFeatureID, baseClass);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public int eDerivedStructuralFeatureID(int baseFeatureID, Class<?> baseClass) {
+ if (baseClass == DescribedElement.class) {
+ switch (baseFeatureID) {
+ case ComrelPackage.DESCRIBED_ELEMENT__DESCRIPTION: return ComrelPackage.HELPER__DESCRIPTION;
+ default: return -1;
+ }
+ }
+ return super.eDerivedStructuralFeatureID(baseFeatureID, baseClass);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public String toString() {
+ if (eIsProxy()) return super.toString();
+
+ StringBuffer result = new StringBuffer(super.toString());
+ result.append(" (name: ");
+ result.append(name);
+ result.append(", description: ");
+ result.append(description);
+ result.append(", helperId: ");
+ result.append(helperId);
+ result.append(", namespaceUri: ");
+ result.append(namespaceUri);
+ result.append(')');
+ return result.toString();
+ }
+
+} //HelperImpl
diff --git a/org.eclipse.emf.refactor.comrel/src/comrel/impl/HelperUnitImpl.java b/org.eclipse.emf.refactor.comrel/src/comrel/impl/HelperUnitImpl.java
new file mode 100644
index 0000000..03aaf37
--- /dev/null
+++ b/org.eclipse.emf.refactor.comrel/src/comrel/impl/HelperUnitImpl.java
@@ -0,0 +1,393 @@
+/**
+ * <copyright>
+ * </copyright>
+ *
+ * $Id$
+ */
+package comrel.impl;
+
+import comrel.ComrelPackage;
+import comrel.DescribedElement;
+import comrel.HelperUnit;
+import comrel.InputPort;
+import comrel.OutputPort;
+import comrel.util.ComrelUtil;
+
+import org.eclipse.emf.common.notify.Notification;
+
+import org.eclipse.emf.ecore.EClass;
+
+import org.eclipse.emf.ecore.impl.ENotificationImpl;
+import org.eclipse.emf.ecore.impl.EObjectImpl;
+
+/**
+ * <!-- begin-user-doc -->
+ * An implementation of the model object '<em><b>Helper Unit</b></em>'.
+ * <!-- end-user-doc -->
+ * <p>
+ * The following features are implemented:
+ * <ul>
+ * <li>{@link comrel.impl.HelperUnitImpl#getName <em>Name</em>}</li>
+ * <li>{@link comrel.impl.HelperUnitImpl#getDescription <em>Description</em>}</li>
+ * <li>{@link comrel.impl.HelperUnitImpl#getHelperUnitId <em>Helper Unit Id</em>}</li>
+ * <li>{@link comrel.impl.HelperUnitImpl#getNamespaceUri <em>Namespace Uri</em>}</li>
+ * </ul>
+ * </p>
+ *
+ * @generated
+ */
+public abstract class HelperUnitImpl extends EObjectImpl implements HelperUnit {
+ /**
+ * The default value of the '{@link #getName() <em>Name</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getName()
+ * @generated
+ * @ordered
+ */
+ protected static final String NAME_EDEFAULT = null;
+
+ /**
+ * The cached value of the '{@link #getName() <em>Name</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getName()
+ * @generated
+ * @ordered
+ */
+ protected String name = NAME_EDEFAULT;
+
+ /**
+ * The default value of the '{@link #getDescription() <em>Description</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getDescription()
+ * @generated
+ * @ordered
+ */
+ protected static final String DESCRIPTION_EDEFAULT = null;
+
+ /**
+ * The cached value of the '{@link #getDescription() <em>Description</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getDescription()
+ * @generated
+ * @ordered
+ */
+ protected String description = DESCRIPTION_EDEFAULT;
+
+ /**
+ * The default value of the '{@link #getHelperUnitId() <em>Helper Unit Id</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getHelperUnitId()
+ * @generated
+ * @ordered
+ */
+ protected static final String HELPER_UNIT_ID_EDEFAULT = null;
+
+ /**
+ * The cached value of the '{@link #getHelperUnitId() <em>Helper Unit Id</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getHelperUnitId()
+ * @generated
+ * @ordered
+ */
+ protected String helperUnitId = HELPER_UNIT_ID_EDEFAULT;
+
+ /**
+ * The default value of the '{@link #getNamespaceUri() <em>Namespace Uri</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getNamespaceUri()
+ * @generated
+ * @ordered
+ */
+ protected static final String NAMESPACE_URI_EDEFAULT = null;
+
+ /**
+ * The cached value of the '{@link #getNamespaceUri() <em>Namespace Uri</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getNamespaceUri()
+ * @generated
+ * @ordered
+ */
+ protected String namespaceUri = NAMESPACE_URI_EDEFAULT;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected HelperUnitImpl() {
+ super();
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ protected EClass eStaticClass() {
+ return ComrelPackage.Literals.HELPER_UNIT;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public String getName() {
+ return name;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public void setName(String newName) {
+ if (ComrelUtil.objectIsSettable(this)) {
+ String oldName = name;
+ name = newName;
+ if (eNotificationRequired())
+ eNotify(new ENotificationImpl(this, Notification.SET, ComrelPackage.HELPER_UNIT__NAME, oldName, name));
+ }
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public String getDescription() {
+ return description;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public void setDescription(String newDescription) {
+ if (ComrelUtil.objectIsSettable(this)) {
+ String oldDescription = description;
+ description = newDescription;
+ if (eNotificationRequired())
+ eNotify(new ENotificationImpl(this, Notification.SET, ComrelPackage.HELPER_UNIT__DESCRIPTION, oldDescription, description));
+ }
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public String getHelperUnitId() {
+ return helperUnitId;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public void setHelperUnitId(String newHelperUnitId) {
+ if (ComrelUtil.objectIsSettable(this)) {
+ String oldHelperUnitId = helperUnitId;
+ helperUnitId = newHelperUnitId;
+ if (eNotificationRequired())
+ eNotify(new ENotificationImpl(this, Notification.SET, ComrelPackage.HELPER_UNIT__HELPER_UNIT_ID, oldHelperUnitId, helperUnitId));
+ }
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public String getNamespaceUri() {
+ return namespaceUri;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public void setNamespaceUri(String newNamespaceUri) {
+ String oldNamespaceUri = namespaceUri;
+ namespaceUri = newNamespaceUri;
+ if (eNotificationRequired())
+ eNotify(new ENotificationImpl(this, Notification.SET, ComrelPackage.HELPER_UNIT__NAMESPACE_URI, oldNamespaceUri, namespaceUri));
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public InputPort getInputPort() {
+ // TODO: implement this method
+ // Ensure that you remove @generated or mark it @generated NOT
+ throw new UnsupportedOperationException();
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public OutputPort getOutputPort() {
+ // TODO: implement this method
+ // Ensure that you remove @generated or mark it @generated NOT
+ throw new UnsupportedOperationException();
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public Object eGet(int featureID, boolean resolve, boolean coreType) {
+ switch (featureID) {
+ case ComrelPackage.HELPER_UNIT__NAME:
+ return getName();
+ case ComrelPackage.HELPER_UNIT__DESCRIPTION:
+ return getDescription();
+ case ComrelPackage.HELPER_UNIT__HELPER_UNIT_ID:
+ return getHelperUnitId();
+ case ComrelPackage.HELPER_UNIT__NAMESPACE_URI:
+ return getNamespaceUri();
+ }
+ return super.eGet(featureID, resolve, coreType);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public void eSet(int featureID, Object newValue) {
+ switch (featureID) {
+ case ComrelPackage.HELPER_UNIT__NAME:
+ setName((String)newValue);
+ return;
+ case ComrelPackage.HELPER_UNIT__DESCRIPTION:
+ setDescription((String)newValue);
+ return;
+ case ComrelPackage.HELPER_UNIT__HELPER_UNIT_ID:
+ setHelperUnitId((String)newValue);
+ return;
+ case ComrelPackage.HELPER_UNIT__NAMESPACE_URI:
+ setNamespaceUri((String)newValue);
+ return;
+ }
+ super.eSet(featureID, newValue);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public void eUnset(int featureID) {
+ switch (featureID) {
+ case ComrelPackage.HELPER_UNIT__NAME:
+ setName(NAME_EDEFAULT);
+ return;
+ case ComrelPackage.HELPER_UNIT__DESCRIPTION:
+ setDescription(DESCRIPTION_EDEFAULT);
+ return;
+ case ComrelPackage.HELPER_UNIT__HELPER_UNIT_ID:
+ setHelperUnitId(HELPER_UNIT_ID_EDEFAULT);
+ return;
+ case ComrelPackage.HELPER_UNIT__NAMESPACE_URI:
+ setNamespaceUri(NAMESPACE_URI_EDEFAULT);
+ return;
+ }
+ super.eUnset(featureID);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public boolean eIsSet(int featureID) {
+ switch (featureID) {
+ case ComrelPackage.HELPER_UNIT__NAME:
+ return NAME_EDEFAULT == null ? name != null : !NAME_EDEFAULT.equals(name);
+ case ComrelPackage.HELPER_UNIT__DESCRIPTION:
+ return DESCRIPTION_EDEFAULT == null ? description != null : !DESCRIPTION_EDEFAULT.equals(description);
+ case ComrelPackage.HELPER_UNIT__HELPER_UNIT_ID:
+ return HELPER_UNIT_ID_EDEFAULT == null ? helperUnitId != null : !HELPER_UNIT_ID_EDEFAULT.equals(helperUnitId);
+ case ComrelPackage.HELPER_UNIT__NAMESPACE_URI:
+ return NAMESPACE_URI_EDEFAULT == null ? namespaceUri != null : !NAMESPACE_URI_EDEFAULT.equals(namespaceUri);
+ }
+ return super.eIsSet(featureID);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public int eBaseStructuralFeatureID(int derivedFeatureID, Class<?> baseClass) {
+ if (baseClass == DescribedElement.class) {
+ switch (derivedFeatureID) {
+ case ComrelPackage.HELPER_UNIT__DESCRIPTION: return ComrelPackage.DESCRIBED_ELEMENT__DESCRIPTION;
+ default: return -1;
+ }
+ }
+ return super.eBaseStructuralFeatureID(derivedFeatureID, baseClass);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public int eDerivedStructuralFeatureID(int baseFeatureID, Class<?> baseClass) {
+ if (baseClass == DescribedElement.class) {
+ switch (baseFeatureID) {
+ case ComrelPackage.DESCRIBED_ELEMENT__DESCRIPTION: return ComrelPackage.HELPER_UNIT__DESCRIPTION;
+ default: return -1;
+ }
+ }
+ return super.eDerivedStructuralFeatureID(baseFeatureID, baseClass);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public String toString() {
+ if (eIsProxy()) return super.toString();
+
+ StringBuffer result = new StringBuffer(super.toString());
+ result.append(" (name: ");
+ result.append(name);
+ result.append(", description: ");
+ result.append(description);
+ result.append(", helperUnitId: ");
+ result.append(helperUnitId);
+ result.append(", namespaceUri: ");
+ result.append(namespaceUri);
+ result.append(')');
+ return result.toString();
+ }
+
+} //HelperUnitImpl
diff --git a/org.eclipse.emf.refactor.comrel/src/comrel/impl/InputPortImpl.java b/org.eclipse.emf.refactor.comrel/src/comrel/impl/InputPortImpl.java
new file mode 100644
index 0000000..9312a2d
--- /dev/null
+++ b/org.eclipse.emf.refactor.comrel/src/comrel/impl/InputPortImpl.java
@@ -0,0 +1,65 @@
+/**
+ * <copyright>
+ * </copyright>
+ *
+ * $Id$
+ */
+package comrel.impl;
+
+import comrel.ComrelPackage;
+import comrel.InputPort;
+
+import org.eclipse.emf.ecore.EClass;
+
+/**
+ * <!-- begin-user-doc -->
+ * An implementation of the model object '<em><b>Input Port</b></em>'.
+ * <!-- end-user-doc -->
+ * <p>
+ * </p>
+ *
+ * @generated
+ */
+public abstract class InputPortImpl extends PortImpl implements InputPort {
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected InputPortImpl() {
+ super();
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ protected EClass eStaticClass() {
+ return ComrelPackage.Literals.INPUT_PORT;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public Boolean isMappingTarget() {
+ // TODO: implement this method
+ // Ensure that you remove @generated or mark it @generated NOT
+ throw new UnsupportedOperationException();
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public Boolean isRootPort() {
+ // TODO: implement this method
+ // Ensure that you remove @generated or mark it @generated NOT
+ throw new UnsupportedOperationException();
+ }
+
+} //InputPortImpl
diff --git a/org.eclipse.emf.refactor.comrel/src/comrel/impl/ModelRefactoringImpl.java b/org.eclipse.emf.refactor.comrel/src/comrel/impl/ModelRefactoringImpl.java
new file mode 100644
index 0000000..73ef092
--- /dev/null
+++ b/org.eclipse.emf.refactor.comrel/src/comrel/impl/ModelRefactoringImpl.java
@@ -0,0 +1,485 @@
+/**
+ * <copyright>
+ * </copyright>
+ *
+ * $Id$
+ */
+package comrel.impl;
+
+import java.util.Collection;
+
+import org.eclipse.emf.common.notify.Notification;
+import org.eclipse.emf.common.notify.NotificationChain;
+import org.eclipse.emf.common.util.EList;
+import org.eclipse.emf.ecore.EClass;
+import org.eclipse.emf.ecore.InternalEObject;
+import org.eclipse.emf.ecore.impl.ENotificationImpl;
+import org.eclipse.emf.ecore.impl.EObjectImpl;
+import org.eclipse.emf.ecore.util.EObjectContainmentEList;
+import org.eclipse.emf.ecore.util.InternalEList;
+
+import comrel.ComrelPackage;
+import comrel.DescribedElement;
+import comrel.ModelRefactoring;
+import comrel.SingleInputPort;
+import comrel.util.ComrelUtil;
+
+/**
+ * <!-- begin-user-doc -->
+ * An implementation of the model object '<em><b>Model Refactoring</b></em>'.
+ * <!-- end-user-doc -->
+ * <p>
+ * The following features are implemented:
+ * <ul>
+ * <li>{@link comrel.impl.ModelRefactoringImpl#getName <em>Name</em>}</li>
+ * <li>{@link comrel.impl.ModelRefactoringImpl#getDescription <em>Description</em>}</li>
+ * <li>{@link comrel.impl.ModelRefactoringImpl#getRefId <em>Ref Id</em>}</li>
+ * <li>{@link comrel.impl.ModelRefactoringImpl#getLabel <em>Label</em>}</li>
+ * <li>{@link comrel.impl.ModelRefactoringImpl#getNamespaceUri <em>Namespace Uri</em>}</li>
+ * <li>{@link comrel.impl.ModelRefactoringImpl#getInputPorts <em>Input Ports</em>}</li>
+ * </ul>
+ * </p>
+ *
+ * @generated
+ */
+public class ModelRefactoringImpl extends EObjectImpl implements ModelRefactoring {
+ /**
+ * The default value of the '{@link #getName() <em>Name</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getName()
+ * @generated
+ * @ordered
+ */
+ protected static final String NAME_EDEFAULT = null;
+
+ /**
+ * The cached value of the '{@link #getName() <em>Name</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getName()
+ * @generated
+ * @ordered
+ */
+ protected String name = NAME_EDEFAULT;
+
+ /**
+ * The default value of the '{@link #getDescription() <em>Description</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getDescription()
+ * @generated
+ * @ordered
+ */
+ protected static final String DESCRIPTION_EDEFAULT = null;
+
+ /**
+ * The cached value of the '{@link #getDescription() <em>Description</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getDescription()
+ * @generated
+ * @ordered
+ */
+ protected String description = DESCRIPTION_EDEFAULT;
+
+ /**
+ * The default value of the '{@link #getRefId() <em>Ref Id</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getRefId()
+ * @generated
+ * @ordered
+ */
+ protected static final String REF_ID_EDEFAULT = null;
+
+ /**
+ * The cached value of the '{@link #getRefId() <em>Ref Id</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getRefId()
+ * @generated
+ * @ordered
+ */
+ protected String refId = REF_ID_EDEFAULT;
+
+ /**
+ * The default value of the '{@link #getLabel() <em>Label</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getLabel()
+ * @generated
+ * @ordered
+ */
+ protected static final String LABEL_EDEFAULT = null;
+
+ /**
+ * The cached value of the '{@link #getLabel() <em>Label</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getLabel()
+ * @generated
+ * @ordered
+ */
+ protected String label = LABEL_EDEFAULT;
+
+ /**
+ * The default value of the '{@link #getNamespaceUri() <em>Namespace Uri</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getNamespaceUri()
+ * @generated
+ * @ordered
+ */
+ protected static final String NAMESPACE_URI_EDEFAULT = null;
+
+ /**
+ * The cached value of the '{@link #getNamespaceUri() <em>Namespace Uri</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getNamespaceUri()
+ * @generated
+ * @ordered
+ */
+ protected String namespaceUri = NAMESPACE_URI_EDEFAULT;
+
+ /**
+ * The cached value of the '{@link #getInputPorts() <em>Input Ports</em>}' containment reference list.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getInputPorts()
+ * @generated
+ * @ordered
+ */
+ protected EList<SingleInputPort> inputPorts;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected ModelRefactoringImpl() {
+ super();
+ }
+
+ public ModelRefactoringImpl(String id) {
+ super();
+ this.refId = id;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ protected EClass eStaticClass() {
+ return ComrelPackage.Literals.MODEL_REFACTORING;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public String getName() {
+ return name;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public void setName(String newName) {
+ if (ComrelUtil.objectIsSettable(this)) {
+ String oldName = name;
+ name = newName;
+ if (eNotificationRequired())
+ eNotify(new ENotificationImpl(this, Notification.SET, ComrelPackage.MODEL_REFACTORING__NAME, oldName, name));
+ }
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public String getDescription() {
+ return description;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public void setDescription(String newDescription) {
+ String oldDescription = description;
+ description = newDescription;
+ if (eNotificationRequired())
+ eNotify(new ENotificationImpl(this, Notification.SET, ComrelPackage.MODEL_REFACTORING__DESCRIPTION, oldDescription, description));
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public String getRefId() {
+ return refId;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public void setRefId(String newRefId) {
+ if (ComrelUtil.objectIsSettable(this)) {
+ String oldRefId = refId;
+ refId = newRefId;
+ if (eNotificationRequired())
+ eNotify(new ENotificationImpl(this, Notification.SET, ComrelPackage.MODEL_REFACTORING__REF_ID, oldRefId, refId));
+ }
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public String getLabel() {
+ return label;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public void setLabel(String newLabel) {
+ if (ComrelUtil.objectIsSettable(this)) {
+ String oldLabel = label;
+ label = newLabel;
+ if (eNotificationRequired())
+ eNotify(new ENotificationImpl(this, Notification.SET, ComrelPackage.MODEL_REFACTORING__LABEL, oldLabel, label));
+ }
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public String getNamespaceUri() {
+ return namespaceUri;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public void setNamespaceUri(String newNamespaceUri) {
+ if (ComrelUtil.objectIsSettable(this)) {
+ String oldNamespaceUri = namespaceUri;
+ namespaceUri = newNamespaceUri;
+ if (eNotificationRequired())
+ eNotify(new ENotificationImpl(this, Notification.SET, ComrelPackage.MODEL_REFACTORING__NAMESPACE_URI, oldNamespaceUri, namespaceUri));
+ }
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EList<SingleInputPort> getInputPorts() {
+ if (inputPorts == null) {
+ inputPorts = new EObjectContainmentEList<SingleInputPort>(SingleInputPort.class, this, ComrelPackage.MODEL_REFACTORING__INPUT_PORTS);
+ }
+ return inputPorts;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public NotificationChain eInverseRemove(InternalEObject otherEnd, int featureID, NotificationChain msgs) {
+ switch (featureID) {
+ case ComrelPackage.MODEL_REFACTORING__INPUT_PORTS:
+ return ((InternalEList<?>)getInputPorts()).basicRemove(otherEnd, msgs);
+ }
+ return super.eInverseRemove(otherEnd, featureID, msgs);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public Object eGet(int featureID, boolean resolve, boolean coreType) {
+ switch (featureID) {
+ case ComrelPackage.MODEL_REFACTORING__NAME:
+ return getName();
+ case ComrelPackage.MODEL_REFACTORING__DESCRIPTION:
+ return getDescription();
+ case ComrelPackage.MODEL_REFACTORING__REF_ID:
+ return getRefId();
+ case ComrelPackage.MODEL_REFACTORING__LABEL:
+ return getLabel();
+ case ComrelPackage.MODEL_REFACTORING__NAMESPACE_URI:
+ return getNamespaceUri();
+ case ComrelPackage.MODEL_REFACTORING__INPUT_PORTS:
+ return getInputPorts();
+ }
+ return super.eGet(featureID, resolve, coreType);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @SuppressWarnings("unchecked")
+ @Override
+ public void eSet(int featureID, Object newValue) {
+ switch (featureID) {
+ case ComrelPackage.MODEL_REFACTORING__NAME:
+ setName((String)newValue);
+ return;
+ case ComrelPackage.MODEL_REFACTORING__DESCRIPTION:
+ setDescription((String)newValue);
+ return;
+ case ComrelPackage.MODEL_REFACTORING__REF_ID:
+ setRefId((String)newValue);
+ return;
+ case ComrelPackage.MODEL_REFACTORING__LABEL:
+ setLabel((String)newValue);
+ return;
+ case ComrelPackage.MODEL_REFACTORING__NAMESPACE_URI:
+ setNamespaceUri((String)newValue);
+ return;
+ case ComrelPackage.MODEL_REFACTORING__INPUT_PORTS:
+ getInputPorts().clear();
+ getInputPorts().addAll((Collection<? extends SingleInputPort>)newValue);
+ return;
+ }
+ super.eSet(featureID, newValue);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public void eUnset(int featureID) {
+ switch (featureID) {
+ case ComrelPackage.MODEL_REFACTORING__NAME:
+ setName(NAME_EDEFAULT);
+ return;
+ case ComrelPackage.MODEL_REFACTORING__DESCRIPTION:
+ setDescription(DESCRIPTION_EDEFAULT);
+ return;
+ case ComrelPackage.MODEL_REFACTORING__REF_ID:
+ setRefId(REF_ID_EDEFAULT);
+ return;
+ case ComrelPackage.MODEL_REFACTORING__LABEL:
+ setLabel(LABEL_EDEFAULT);
+ return;
+ case ComrelPackage.MODEL_REFACTORING__NAMESPACE_URI:
+ setNamespaceUri(NAMESPACE_URI_EDEFAULT);
+ return;
+ case ComrelPackage.MODEL_REFACTORING__INPUT_PORTS:
+ getInputPorts().clear();
+ return;
+ }
+ super.eUnset(featureID);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public boolean eIsSet(int featureID) {
+ switch (featureID) {
+ case ComrelPackage.MODEL_REFACTORING__NAME:
+ return NAME_EDEFAULT == null ? name != null : !NAME_EDEFAULT.equals(name);
+ case ComrelPackage.MODEL_REFACTORING__DESCRIPTION:
+ return DESCRIPTION_EDEFAULT == null ? description != null : !DESCRIPTION_EDEFAULT.equals(description);
+ case ComrelPackage.MODEL_REFACTORING__REF_ID:
+ return REF_ID_EDEFAULT == null ? refId != null : !REF_ID_EDEFAULT.equals(refId);
+ case ComrelPackage.MODEL_REFACTORING__LABEL:
+ return LABEL_EDEFAULT == null ? label != null : !LABEL_EDEFAULT.equals(label);
+ case ComrelPackage.MODEL_REFACTORING__NAMESPACE_URI:
+ return NAMESPACE_URI_EDEFAULT == null ? namespaceUri != null : !NAMESPACE_URI_EDEFAULT.equals(namespaceUri);
+ case ComrelPackage.MODEL_REFACTORING__INPUT_PORTS:
+ return inputPorts != null && !inputPorts.isEmpty();
+ }
+ return super.eIsSet(featureID);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public int eBaseStructuralFeatureID(int derivedFeatureID, Class<?> baseClass) {
+ if (baseClass == DescribedElement.class) {
+ switch (derivedFeatureID) {
+ case ComrelPackage.MODEL_REFACTORING__DESCRIPTION: return ComrelPackage.DESCRIBED_ELEMENT__DESCRIPTION;
+ default: return -1;
+ }
+ }
+ return super.eBaseStructuralFeatureID(derivedFeatureID, baseClass);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public int eDerivedStructuralFeatureID(int baseFeatureID, Class<?> baseClass) {
+ if (baseClass == DescribedElement.class) {
+ switch (baseFeatureID) {
+ case ComrelPackage.DESCRIBED_ELEMENT__DESCRIPTION: return ComrelPackage.MODEL_REFACTORING__DESCRIPTION;
+ default: return -1;
+ }
+ }
+ return super.eDerivedStructuralFeatureID(baseFeatureID, baseClass);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public String toString() {
+ if (eIsProxy()) return super.toString();
+
+ StringBuffer result = new StringBuffer(super.toString());
+ result.append(" (name: ");
+ result.append(name);
+ result.append(", description: ");
+ result.append(description);
+ result.append(", refId: ");
+ result.append(refId);
+ result.append(", label: ");
+ result.append(label);
+ result.append(", namespaceUri: ");
+ result.append(namespaceUri);
+ result.append(')');
+ return result.toString();
+ }
+
+} //ModelRefactoringImpl
diff --git a/org.eclipse.emf.refactor.comrel/src/comrel/impl/MultiFeatureHelperImpl.java b/org.eclipse.emf.refactor.comrel/src/comrel/impl/MultiFeatureHelperImpl.java
new file mode 100644
index 0000000..71daf7c
--- /dev/null
+++ b/org.eclipse.emf.refactor.comrel/src/comrel/impl/MultiFeatureHelperImpl.java
@@ -0,0 +1,179 @@
+/**
+ * <copyright>
+ * </copyright>
+ *
+ * $Id$
+ */
+package comrel.impl;
+
+import comrel.ComrelPackage;
+import comrel.MultiFeatureHelper;
+import comrel.MultiOutputPort;
+
+import org.eclipse.emf.common.notify.Notification;
+import org.eclipse.emf.common.notify.NotificationChain;
+
+import org.eclipse.emf.ecore.EClass;
+import org.eclipse.emf.ecore.InternalEObject;
+
+import org.eclipse.emf.ecore.impl.ENotificationImpl;
+
+/**
+ * <!-- begin-user-doc -->
+ * An implementation of the model object '<em><b>Multi Feature Helper</b></em>'.
+ * <!-- end-user-doc -->
+ * <p>
+ * The following features are implemented:
+ * <ul>
+ * <li>{@link comrel.impl.MultiFeatureHelperImpl#getOutputPort <em>Output Port</em>}</li>
+ * </ul>
+ * </p>
+ *
+ * @generated
+ */
+public class MultiFeatureHelperImpl extends FeatureHelperImpl implements MultiFeatureHelper {
+ /**
+ * The cached value of the '{@link #getOutputPort() <em>Output Port</em>}' containment reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getOutputPort()
+ * @generated
+ * @ordered
+ */
+ protected MultiOutputPort outputPort;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected MultiFeatureHelperImpl() {
+ super();
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ protected EClass eStaticClass() {
+ return ComrelPackage.Literals.MULTI_FEATURE_HELPER;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public MultiOutputPort getOutputPort() {
+ return outputPort;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public NotificationChain basicSetOutputPort(MultiOutputPort newOutputPort, NotificationChain msgs) {
+ MultiOutputPort oldOutputPort = outputPort;
+ outputPort = newOutputPort;
+ if (eNotificationRequired()) {
+ ENotificationImpl notification = new ENotificationImpl(this, Notification.SET, ComrelPackage.MULTI_FEATURE_HELPER__OUTPUT_PORT, oldOutputPort, newOutputPort);
+ if (msgs == null) msgs = notification; else msgs.add(notification);
+ }
+ return msgs;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public void setOutputPort(MultiOutputPort newOutputPort) {
+ if (newOutputPort != outputPort) {
+ NotificationChain msgs = null;
+ if (outputPort != null)
+ msgs = ((InternalEObject)outputPort).eInverseRemove(this, EOPPOSITE_FEATURE_BASE - ComrelPackage.MULTI_FEATURE_HELPER__OUTPUT_PORT, null, msgs);
+ if (newOutputPort != null)
+ msgs = ((InternalEObject)newOutputPort).eInverseAdd(this, EOPPOSITE_FEATURE_BASE - ComrelPackage.MULTI_FEATURE_HELPER__OUTPUT_PORT, null, msgs);
+ msgs = basicSetOutputPort(newOutputPort, msgs);
+ if (msgs != null) msgs.dispatch();
+ }
+ else if (eNotificationRequired())
+ eNotify(new ENotificationImpl(this, Notification.SET, ComrelPackage.MULTI_FEATURE_HELPER__OUTPUT_PORT, newOutputPort, newOutputPort));
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public NotificationChain eInverseRemove(InternalEObject otherEnd, int featureID, NotificationChain msgs) {
+ switch (featureID) {
+ case ComrelPackage.MULTI_FEATURE_HELPER__OUTPUT_PORT:
+ return basicSetOutputPort(null, msgs);
+ }
+ return super.eInverseRemove(otherEnd, featureID, msgs);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public Object eGet(int featureID, boolean resolve, boolean coreType) {
+ switch (featureID) {
+ case ComrelPackage.MULTI_FEATURE_HELPER__OUTPUT_PORT:
+ return getOutputPort();
+ }
+ return super.eGet(featureID, resolve, coreType);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public void eSet(int featureID, Object newValue) {
+ switch (featureID) {
+ case ComrelPackage.MULTI_FEATURE_HELPER__OUTPUT_PORT:
+ setOutputPort((MultiOutputPort)newValue);
+ return;
+ }
+ super.eSet(featureID, newValue);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public void eUnset(int featureID) {
+ switch (featureID) {
+ case ComrelPackage.MULTI_FEATURE_HELPER__OUTPUT_PORT:
+ setOutputPort((MultiOutputPort)null);
+ return;
+ }
+ super.eUnset(featureID);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public boolean eIsSet(int featureID) {
+ switch (featureID) {
+ case ComrelPackage.MULTI_FEATURE_HELPER__OUTPUT_PORT:
+ return outputPort != null;
+ }
+ return super.eIsSet(featureID);
+ }
+
+} //MultiFeatureHelperImpl
diff --git a/org.eclipse.emf.refactor.comrel/src/comrel/impl/MultiFeatureUnitImpl.java b/org.eclipse.emf.refactor.comrel/src/comrel/impl/MultiFeatureUnitImpl.java
new file mode 100644
index 0000000..b6eea76
--- /dev/null
+++ b/org.eclipse.emf.refactor.comrel/src/comrel/impl/MultiFeatureUnitImpl.java
@@ -0,0 +1,422 @@
+/**
+ * <copyright>
+ * </copyright>
+ *
+ * $Id$
+ */
+package comrel.impl;
+
+import java.util.Collection;
+
+import org.eclipse.emf.common.notify.Notification;
+import org.eclipse.emf.common.notify.NotificationChain;
+import org.eclipse.emf.common.util.EList;
+import org.eclipse.emf.ecore.EClass;
+import org.eclipse.emf.ecore.InternalEObject;
+import org.eclipse.emf.ecore.impl.ENotificationImpl;
+import org.eclipse.emf.ecore.util.EObjectContainmentEList;
+import org.eclipse.emf.ecore.util.InternalEList;
+
+import comrel.ComrelFactory;
+import comrel.ComrelPackage;
+import comrel.MultiFeatureHelper;
+import comrel.MultiFeatureUnit;
+import comrel.MultiInputPort;
+import comrel.MultiOutputPort;
+import comrel.SingleInputPort;
+import comrel.util.ComrelUtil;
+
+/**
+ * <!-- begin-user-doc -->
+ * An implementation of the model object '<em><b>Multi Feature Unit</b></em>'.
+ * <!-- end-user-doc -->
+ * <p>
+ * The following features are implemented:
+ * <ul>
+ * <li>{@link comrel.impl.MultiFeatureUnitImpl#getInputPort <em>Input Port</em>}</li>
+ * <li>{@link comrel.impl.MultiFeatureUnitImpl#getSecondaryInputPorts <em>Secondary Input Ports</em>}</li>
+ * <li>{@link comrel.impl.MultiFeatureUnitImpl#getOutputPort <em>Output Port</em>}</li>
+ * <li>{@link comrel.impl.MultiFeatureUnitImpl#getMultiFeatureHelper <em>Multi Feature Helper</em>}</li>
+ * <li>{@link comrel.impl.MultiFeatureUnitImpl#getType <em>Type</em>}</li>
+ * </ul>
+ * </p>
+ *
+ * @generated
+ */
+public class MultiFeatureUnitImpl extends FeatureUnitImpl implements MultiFeatureUnit {
+ /**
+ * The cached value of the '{@link #getInputPort() <em>Input Port</em>}' containment reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getInputPort()
+ * @generated
+ * @ordered
+ */
+ protected SingleInputPort inputPort;
+
+ /**
+ * The cached value of the '{@link #getSecondaryInputPorts() <em>Secondary Input Ports</em>}' containment reference list.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getSecondaryInputPorts()
+ * @generated
+ * @ordered
+ */
+ protected EList<MultiInputPort> secondaryInputPorts;
+
+ /**
+ * The cached value of the '{@link #getOutputPort() <em>Output Port</em>}' containment reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getOutputPort()
+ * @generated
+ * @ordered
+ */
+ protected MultiOutputPort outputPort;
+
+ /**
+ * The cached value of the '{@link #getMultiFeatureHelper() <em>Multi Feature Helper</em>}' reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getMultiFeatureHelper()
+ * @generated
+ * @ordered
+ */
+ protected MultiFeatureHelper multiFeatureHelper;
+
+ /**
+ * The default value of the '{@link #getType() <em>Type</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getType()
+ * @generated
+ * @ordered
+ */
+ protected static final String TYPE_EDEFAULT = "Multi Feature Unit";
+
+ /**
+ * The cached value of the '{@link #getType() <em>Type</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getType()
+ * @generated
+ * @ordered
+ */
+ protected String type = TYPE_EDEFAULT;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected MultiFeatureUnitImpl() {
+ super();
+ }
+
+ public MultiFeatureUnitImpl(MultiFeatureHelper helper) {
+ this.multiFeatureHelper = helper;
+ this.name = helper.getName();
+ this.helperUnitId = helper.getHelperId();
+ this.description = helper.getDescription();
+ this.namespaceUri = helper.getNamespaceUri();
+ SingleInputPort inputPort = ComrelFactory.eINSTANCE.createSingleInputPort();
+ MultiOutputPort outputPort = ComrelFactory.eINSTANCE.createMultiOutputPort();
+ inputPort.setDescription(helper.getInputPort().getDescription());
+ inputPort.setName(helper.getInputPort().getName());
+ inputPort.setType(helper.getInputPort().getType());
+
+ this.setInputPort(inputPort);
+ outputPort.setDescription(helper.getOutputPort().getDescription());
+ outputPort.setName(helper.getOutputPort().getName());
+ outputPort.setType(helper.getOutputPort().getType());
+
+ this.setOutputPort(outputPort);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ protected EClass eStaticClass() {
+ return ComrelPackage.Literals.MULTI_FEATURE_UNIT;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public SingleInputPort getInputPort() {
+ return inputPort;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public NotificationChain basicSetInputPort(SingleInputPort newInputPort, NotificationChain msgs) {
+ SingleInputPort oldInputPort = inputPort;
+ inputPort = newInputPort;
+ if (eNotificationRequired()) {
+ ENotificationImpl notification = new ENotificationImpl(this, Notification.SET, ComrelPackage.MULTI_FEATURE_UNIT__INPUT_PORT, oldInputPort, newInputPort);
+ if (msgs == null) msgs = notification; else msgs.add(notification);
+ }
+ return msgs;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public void setInputPort(SingleInputPort newInputPort) {
+ if (newInputPort != inputPort) {
+ NotificationChain msgs = null;
+ if (inputPort != null)
+ msgs = ((InternalEObject)inputPort).eInverseRemove(this, EOPPOSITE_FEATURE_BASE - ComrelPackage.MULTI_FEATURE_UNIT__INPUT_PORT, null, msgs);
+ if (newInputPort != null)
+ msgs = ((InternalEObject)newInputPort).eInverseAdd(this, EOPPOSITE_FEATURE_BASE - ComrelPackage.MULTI_FEATURE_UNIT__INPUT_PORT, null, msgs);
+ msgs = basicSetInputPort(newInputPort, msgs);
+ if (msgs != null) msgs.dispatch();
+ }
+ else if (eNotificationRequired())
+ eNotify(new ENotificationImpl(this, Notification.SET, ComrelPackage.MULTI_FEATURE_UNIT__INPUT_PORT, newInputPort, newInputPort));
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EList<MultiInputPort> getSecondaryInputPorts() {
+ if (secondaryInputPorts == null) {
+ secondaryInputPorts = new EObjectContainmentEList<MultiInputPort>(MultiInputPort.class, this, ComrelPackage.MULTI_FEATURE_UNIT__SECONDARY_INPUT_PORTS);
+ }
+ return secondaryInputPorts;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public MultiOutputPort getOutputPort() {
+ return outputPort;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public NotificationChain basicSetOutputPort(MultiOutputPort newOutputPort, NotificationChain msgs) {
+ MultiOutputPort oldOutputPort = outputPort;
+ outputPort = newOutputPort;
+ if (eNotificationRequired()) {
+ ENotificationImpl notification = new ENotificationImpl(this, Notification.SET, ComrelPackage.MULTI_FEATURE_UNIT__OUTPUT_PORT, oldOutputPort, newOutputPort);
+ if (msgs == null) msgs = notification; else msgs.add(notification);
+ }
+ return msgs;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public void setOutputPort(MultiOutputPort newOutputPort) {
+ if (newOutputPort != outputPort) {
+ NotificationChain msgs = null;
+ if (outputPort != null)
+ msgs = ((InternalEObject)outputPort).eInverseRemove(this, EOPPOSITE_FEATURE_BASE - ComrelPackage.MULTI_FEATURE_UNIT__OUTPUT_PORT, null, msgs);
+ if (newOutputPort != null)
+ msgs = ((InternalEObject)newOutputPort).eInverseAdd(this, EOPPOSITE_FEATURE_BASE - ComrelPackage.MULTI_FEATURE_UNIT__OUTPUT_PORT, null, msgs);
+ msgs = basicSetOutputPort(newOutputPort, msgs);
+ if (msgs != null) msgs.dispatch();
+ }
+ else if (eNotificationRequired())
+ eNotify(new ENotificationImpl(this, Notification.SET, ComrelPackage.MULTI_FEATURE_UNIT__OUTPUT_PORT, newOutputPort, newOutputPort));
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public MultiFeatureHelper getMultiFeatureHelper() {
+ if (multiFeatureHelper != null && multiFeatureHelper.eIsProxy()) {
+ InternalEObject oldMultiFeatureHelper = (InternalEObject)multiFeatureHelper;
+ multiFeatureHelper = (MultiFeatureHelper)eResolveProxy(oldMultiFeatureHelper);
+ if (multiFeatureHelper != oldMultiFeatureHelper) {
+ if (eNotificationRequired())
+ eNotify(new ENotificationImpl(this, Notification.RESOLVE, ComrelPackage.MULTI_FEATURE_UNIT__MULTI_FEATURE_HELPER, oldMultiFeatureHelper, multiFeatureHelper));
+ }
+ }
+ return multiFeatureHelper;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public MultiFeatureHelper basicGetMultiFeatureHelper() {
+ return multiFeatureHelper;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public void setMultiFeatureHelper(MultiFeatureHelper newMultiFeatureHelper) {
+ if(ComrelUtil.objectIsSettable(this) || multiFeatureHelper == null){
+ MultiFeatureHelper oldMultiFeatureHelper = multiFeatureHelper;
+ multiFeatureHelper = newMultiFeatureHelper;
+ if (eNotificationRequired())
+ eNotify(new ENotificationImpl(this, Notification.SET, ComrelPackage.MULTI_FEATURE_UNIT__MULTI_FEATURE_HELPER, oldMultiFeatureHelper, multiFeatureHelper));
+ }
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public String getType() {
+ return type;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public NotificationChain eInverseRemove(InternalEObject otherEnd, int featureID, NotificationChain msgs) {
+ switch (featureID) {
+ case ComrelPackage.MULTI_FEATURE_UNIT__INPUT_PORT:
+ return basicSetInputPort(null, msgs);
+ case ComrelPackage.MULTI_FEATURE_UNIT__SECONDARY_INPUT_PORTS:
+ return ((InternalEList<?>)getSecondaryInputPorts()).basicRemove(otherEnd, msgs);
+ case ComrelPackage.MULTI_FEATURE_UNIT__OUTPUT_PORT:
+ return basicSetOutputPort(null, msgs);
+ }
+ return super.eInverseRemove(otherEnd, featureID, msgs);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public Object eGet(int featureID, boolean resolve, boolean coreType) {
+ switch (featureID) {
+ case ComrelPackage.MULTI_FEATURE_UNIT__INPUT_PORT:
+ return getInputPort();
+ case ComrelPackage.MULTI_FEATURE_UNIT__SECONDARY_INPUT_PORTS:
+ return getSecondaryInputPorts();
+ case ComrelPackage.MULTI_FEATURE_UNIT__OUTPUT_PORT:
+ return getOutputPort();
+ case ComrelPackage.MULTI_FEATURE_UNIT__MULTI_FEATURE_HELPER:
+ if (resolve) return getMultiFeatureHelper();
+ return basicGetMultiFeatureHelper();
+ case ComrelPackage.MULTI_FEATURE_UNIT__TYPE:
+ return getType();
+ }
+ return super.eGet(featureID, resolve, coreType);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @SuppressWarnings("unchecked")
+ @Override
+ public void eSet(int featureID, Object newValue) {
+ switch (featureID) {
+ case ComrelPackage.MULTI_FEATURE_UNIT__INPUT_PORT:
+ setInputPort((SingleInputPort)newValue);
+ return;
+ case ComrelPackage.MULTI_FEATURE_UNIT__SECONDARY_INPUT_PORTS:
+ getSecondaryInputPorts().clear();
+ getSecondaryInputPorts().addAll((Collection<? extends MultiInputPort>)newValue);
+ return;
+ case ComrelPackage.MULTI_FEATURE_UNIT__OUTPUT_PORT:
+ setOutputPort((MultiOutputPort)newValue);
+ return;
+ case ComrelPackage.MULTI_FEATURE_UNIT__MULTI_FEATURE_HELPER:
+ setMultiFeatureHelper((MultiFeatureHelper)newValue);
+ return;
+ }
+ super.eSet(featureID, newValue);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public void eUnset(int featureID) {
+ switch (featureID) {
+ case ComrelPackage.MULTI_FEATURE_UNIT__INPUT_PORT:
+ setInputPort((SingleInputPort)null);
+ return;
+ case ComrelPackage.MULTI_FEATURE_UNIT__SECONDARY_INPUT_PORTS:
+ getSecondaryInputPorts().clear();
+ return;
+ case ComrelPackage.MULTI_FEATURE_UNIT__OUTPUT_PORT:
+ setOutputPort((MultiOutputPort)null);
+ return;
+ case ComrelPackage.MULTI_FEATURE_UNIT__MULTI_FEATURE_HELPER:
+ setMultiFeatureHelper((MultiFeatureHelper)null);
+ return;
+ }
+ super.eUnset(featureID);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public boolean eIsSet(int featureID) {
+ switch (featureID) {
+ case ComrelPackage.MULTI_FEATURE_UNIT__INPUT_PORT:
+ return inputPort != null;
+ case ComrelPackage.MULTI_FEATURE_UNIT__SECONDARY_INPUT_PORTS:
+ return secondaryInputPorts != null && !secondaryInputPorts.isEmpty();
+ case ComrelPackage.MULTI_FEATURE_UNIT__OUTPUT_PORT:
+ return outputPort != null;
+ case ComrelPackage.MULTI_FEATURE_UNIT__MULTI_FEATURE_HELPER:
+ return multiFeatureHelper != null;
+ case ComrelPackage.MULTI_FEATURE_UNIT__TYPE:
+ return TYPE_EDEFAULT == null ? type != null : !TYPE_EDEFAULT.equals(type);
+ }
+ return super.eIsSet(featureID);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public String toString() {
+ if (eIsProxy()) return super.toString();
+
+ StringBuffer result = new StringBuffer(super.toString());
+ result.append(" (type: ");
+ result.append(type);
+ result.append(')');
+ return result.toString();
+ }
+
+} //MultiFeatureUnitImpl
diff --git a/org.eclipse.emf.refactor.comrel/src/comrel/impl/MultiFilterHelperImpl.java b/org.eclipse.emf.refactor.comrel/src/comrel/impl/MultiFilterHelperImpl.java
new file mode 100644
index 0000000..ad6482c
--- /dev/null
+++ b/org.eclipse.emf.refactor.comrel/src/comrel/impl/MultiFilterHelperImpl.java
@@ -0,0 +1,179 @@
+/**
+ * <copyright>
+ * </copyright>
+ *
+ * $Id$
+ */
+package comrel.impl;
+
+import comrel.ComrelPackage;
+import comrel.MultiFilterHelper;
+import comrel.MultiOutputPort;
+
+import org.eclipse.emf.common.notify.Notification;
+import org.eclipse.emf.common.notify.NotificationChain;
+
+import org.eclipse.emf.ecore.EClass;
+import org.eclipse.emf.ecore.InternalEObject;
+
+import org.eclipse.emf.ecore.impl.ENotificationImpl;
+
+/**
+ * <!-- begin-user-doc -->
+ * An implementation of the model object '<em><b>Multi Filter Helper</b></em>'.
+ * <!-- end-user-doc -->
+ * <p>
+ * The following features are implemented:
+ * <ul>
+ * <li>{@link comrel.impl.MultiFilterHelperImpl#getOutputPort <em>Output Port</em>}</li>
+ * </ul>
+ * </p>
+ *
+ * @generated
+ */
+public class MultiFilterHelperImpl extends FilterHelperImpl implements MultiFilterHelper {
+ /**
+ * The cached value of the '{@link #getOutputPort() <em>Output Port</em>}' containment reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getOutputPort()
+ * @generated
+ * @ordered
+ */
+ protected MultiOutputPort outputPort;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected MultiFilterHelperImpl() {
+ super();
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ protected EClass eStaticClass() {
+ return ComrelPackage.Literals.MULTI_FILTER_HELPER;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public MultiOutputPort getOutputPort() {
+ return outputPort;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public NotificationChain basicSetOutputPort(MultiOutputPort newOutputPort, NotificationChain msgs) {
+ MultiOutputPort oldOutputPort = outputPort;
+ outputPort = newOutputPort;
+ if (eNotificationRequired()) {
+ ENotificationImpl notification = new ENotificationImpl(this, Notification.SET, ComrelPackage.MULTI_FILTER_HELPER__OUTPUT_PORT, oldOutputPort, newOutputPort);
+ if (msgs == null) msgs = notification; else msgs.add(notification);
+ }
+ return msgs;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public void setOutputPort(MultiOutputPort newOutputPort) {
+ if (newOutputPort != outputPort) {
+ NotificationChain msgs = null;
+ if (outputPort != null)
+ msgs = ((InternalEObject)outputPort).eInverseRemove(this, EOPPOSITE_FEATURE_BASE - ComrelPackage.MULTI_FILTER_HELPER__OUTPUT_PORT, null, msgs);
+ if (newOutputPort != null)
+ msgs = ((InternalEObject)newOutputPort).eInverseAdd(this, EOPPOSITE_FEATURE_BASE - ComrelPackage.MULTI_FILTER_HELPER__OUTPUT_PORT, null, msgs);
+ msgs = basicSetOutputPort(newOutputPort, msgs);
+ if (msgs != null) msgs.dispatch();
+ }
+ else if (eNotificationRequired())
+ eNotify(new ENotificationImpl(this, Notification.SET, ComrelPackage.MULTI_FILTER_HELPER__OUTPUT_PORT, newOutputPort, newOutputPort));
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public NotificationChain eInverseRemove(InternalEObject otherEnd, int featureID, NotificationChain msgs) {
+ switch (featureID) {
+ case ComrelPackage.MULTI_FILTER_HELPER__OUTPUT_PORT:
+ return basicSetOutputPort(null, msgs);
+ }
+ return super.eInverseRemove(otherEnd, featureID, msgs);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public Object eGet(int featureID, boolean resolve, boolean coreType) {
+ switch (featureID) {
+ case ComrelPackage.MULTI_FILTER_HELPER__OUTPUT_PORT:
+ return getOutputPort();
+ }
+ return super.eGet(featureID, resolve, coreType);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public void eSet(int featureID, Object newValue) {
+ switch (featureID) {
+ case ComrelPackage.MULTI_FILTER_HELPER__OUTPUT_PORT:
+ setOutputPort((MultiOutputPort)newValue);
+ return;
+ }
+ super.eSet(featureID, newValue);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public void eUnset(int featureID) {
+ switch (featureID) {
+ case ComrelPackage.MULTI_FILTER_HELPER__OUTPUT_PORT:
+ setOutputPort((MultiOutputPort)null);
+ return;
+ }
+ super.eUnset(featureID);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public boolean eIsSet(int featureID) {
+ switch (featureID) {
+ case ComrelPackage.MULTI_FILTER_HELPER__OUTPUT_PORT:
+ return outputPort != null;
+ }
+ return super.eIsSet(featureID);
+ }
+
+} //MultiFilterHelperImpl
diff --git a/org.eclipse.emf.refactor.comrel/src/comrel/impl/MultiFilterUnitImpl.java b/org.eclipse.emf.refactor.comrel/src/comrel/impl/MultiFilterUnitImpl.java
new file mode 100644
index 0000000..5c56470
--- /dev/null
+++ b/org.eclipse.emf.refactor.comrel/src/comrel/impl/MultiFilterUnitImpl.java
@@ -0,0 +1,379 @@
+/**
+ * <copyright>
+ * </copyright>
+ *
+ * $Id$
+ */
+package comrel.impl;
+
+import org.eclipse.emf.common.notify.Notification;
+import org.eclipse.emf.common.notify.NotificationChain;
+import org.eclipse.emf.ecore.EClass;
+import org.eclipse.emf.ecore.InternalEObject;
+import org.eclipse.emf.ecore.impl.ENotificationImpl;
+
+import comrel.ComrelFactory;
+import comrel.ComrelPackage;
+import comrel.MultiFilterHelper;
+import comrel.MultiFilterUnit;
+import comrel.MultiInputPort;
+import comrel.MultiOutputPort;
+import comrel.util.ComrelUtil;
+
+/**
+ * <!-- begin-user-doc -->
+ * An implementation of the model object '<em><b>Multi Filter Unit</b></em>'.
+ * <!-- end-user-doc -->
+ * <p>
+ * The following features are implemented:
+ * <ul>
+ * <li>{@link comrel.impl.MultiFilterUnitImpl#getInputPort <em>Input Port</em>}</li>
+ * <li>{@link comrel.impl.MultiFilterUnitImpl#getOutputPort <em>Output Port</em>}</li>
+ * <li>{@link comrel.impl.MultiFilterUnitImpl#getMultiFilterHelper <em>Multi Filter Helper</em>}</li>
+ * <li>{@link comrel.impl.MultiFilterUnitImpl#getType <em>Type</em>}</li>
+ * </ul>
+ * </p>
+ *
+ * @generated
+ */
+public class MultiFilterUnitImpl extends FilterUnitImpl implements MultiFilterUnit {
+ /**
+ * The cached value of the '{@link #getInputPort() <em>Input Port</em>}' containment reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getInputPort()
+ * @generated
+ * @ordered
+ */
+ protected MultiInputPort inputPort;
+
+ /**
+ * The cached value of the '{@link #getOutputPort() <em>Output Port</em>}' containment reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getOutputPort()
+ * @generated
+ * @ordered
+ */
+ protected MultiOutputPort outputPort;
+
+ /**
+ * The cached value of the '{@link #getMultiFilterHelper() <em>Multi Filter Helper</em>}' reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getMultiFilterHelper()
+ * @generated
+ * @ordered
+ */
+ protected MultiFilterHelper multiFilterHelper;
+
+ /**
+ * The default value of the '{@link #getType() <em>Type</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getType()
+ * @generated
+ * @ordered
+ */
+ protected static final String TYPE_EDEFAULT = "Multi Filter Unit";
+
+ /**
+ * The cached value of the '{@link #getType() <em>Type</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getType()
+ * @generated
+ * @ordered
+ */
+ protected String type = TYPE_EDEFAULT;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected MultiFilterUnitImpl() {
+ super();
+ }
+
+ public MultiFilterUnitImpl(MultiFilterHelper helper) {
+ this.multiFilterHelper = helper;
+ this.helperUnitId = helper.getHelperId();
+ this.name = helper.getName();
+ this.description = helper.getDescription();
+ this.namespaceUri = helper.getNamespaceUri();
+ MultiInputPort inputPort = ComrelFactory.eINSTANCE.createMultiInputPort();
+ MultiOutputPort outputPort = ComrelFactory.eINSTANCE.createMultiOutputPort();
+ inputPort.setDescription(helper.getInputPort().getDescription());
+ inputPort.setName(helper.getInputPort().getName());
+ inputPort.setType(helper.getInputPort().getType());
+
+ this.setInputPort(inputPort);
+ outputPort.setDescription(helper.getOutputPort().getDescription());
+ outputPort.setName(helper.getOutputPort().getName());
+ outputPort.setType(helper.getOutputPort().getType());
+
+ this.setOutputPort(outputPort);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ protected EClass eStaticClass() {
+ return ComrelPackage.Literals.MULTI_FILTER_UNIT;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public MultiInputPort getInputPort() {
+ return inputPort;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public NotificationChain basicSetInputPort(MultiInputPort newInputPort, NotificationChain msgs) {
+ MultiInputPort oldInputPort = inputPort;
+ inputPort = newInputPort;
+ if (eNotificationRequired()) {
+ ENotificationImpl notification = new ENotificationImpl(this, Notification.SET, ComrelPackage.MULTI_FILTER_UNIT__INPUT_PORT, oldInputPort, newInputPort);
+ if (msgs == null) msgs = notification; else msgs.add(notification);
+ }
+ return msgs;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public void setInputPort(MultiInputPort newInputPort) {
+ if (newInputPort != inputPort) {
+ NotificationChain msgs = null;
+ if (inputPort != null)
+ msgs = ((InternalEObject)inputPort).eInverseRemove(this, EOPPOSITE_FEATURE_BASE - ComrelPackage.MULTI_FILTER_UNIT__INPUT_PORT, null, msgs);
+ if (newInputPort != null)
+ msgs = ((InternalEObject)newInputPort).eInverseAdd(this, EOPPOSITE_FEATURE_BASE - ComrelPackage.MULTI_FILTER_UNIT__INPUT_PORT, null, msgs);
+ msgs = basicSetInputPort(newInputPort, msgs);
+ if (msgs != null) msgs.dispatch();
+ }
+ else if (eNotificationRequired())
+ eNotify(new ENotificationImpl(this, Notification.SET, ComrelPackage.MULTI_FILTER_UNIT__INPUT_PORT, newInputPort, newInputPort));
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public MultiOutputPort getOutputPort() {
+ return outputPort;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public NotificationChain basicSetOutputPort(MultiOutputPort newOutputPort, NotificationChain msgs) {
+ MultiOutputPort oldOutputPort = outputPort;
+ outputPort = newOutputPort;
+ if (eNotificationRequired()) {
+ ENotificationImpl notification = new ENotificationImpl(this, Notification.SET, ComrelPackage.MULTI_FILTER_UNIT__OUTPUT_PORT, oldOutputPort, newOutputPort);
+ if (msgs == null) msgs = notification; else msgs.add(notification);
+ }
+ return msgs;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public void setOutputPort(MultiOutputPort newOutputPort) {
+ if (newOutputPort != outputPort) {
+ NotificationChain msgs = null;
+ if (outputPort != null)
+ msgs = ((InternalEObject)outputPort).eInverseRemove(this, EOPPOSITE_FEATURE_BASE - ComrelPackage.MULTI_FILTER_UNIT__OUTPUT_PORT, null, msgs);
+ if (newOutputPort != null)
+ msgs = ((InternalEObject)newOutputPort).eInverseAdd(this, EOPPOSITE_FEATURE_BASE - ComrelPackage.MULTI_FILTER_UNIT__OUTPUT_PORT, null, msgs);
+ msgs = basicSetOutputPort(newOutputPort, msgs);
+ if (msgs != null) msgs.dispatch();
+ }
+ else if (eNotificationRequired())
+ eNotify(new ENotificationImpl(this, Notification.SET, ComrelPackage.MULTI_FILTER_UNIT__OUTPUT_PORT, newOutputPort, newOutputPort));
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public MultiFilterHelper getMultiFilterHelper() {
+ if (multiFilterHelper != null && multiFilterHelper.eIsProxy()) {
+ InternalEObject oldMultiFilterHelper = (InternalEObject)multiFilterHelper;
+ multiFilterHelper = (MultiFilterHelper)eResolveProxy(oldMultiFilterHelper);
+ if (multiFilterHelper != oldMultiFilterHelper) {
+ if (eNotificationRequired())
+ eNotify(new ENotificationImpl(this, Notification.RESOLVE, ComrelPackage.MULTI_FILTER_UNIT__MULTI_FILTER_HELPER, oldMultiFilterHelper, multiFilterHelper));
+ }
+ }
+ return multiFilterHelper;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public MultiFilterHelper basicGetMultiFilterHelper() {
+ return multiFilterHelper;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public void setMultiFilterHelper(MultiFilterHelper newMultiFilterHelper) {
+ if(ComrelUtil.objectIsSettable(this) || multiFilterHelper == null){
+ MultiFilterHelper oldMultiFilterHelper = multiFilterHelper;
+ multiFilterHelper = newMultiFilterHelper;
+ if (eNotificationRequired())
+ eNotify(new ENotificationImpl(this, Notification.SET, ComrelPackage.MULTI_FILTER_UNIT__MULTI_FILTER_HELPER, oldMultiFilterHelper, multiFilterHelper));
+ }
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public String getType() {
+ return type;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public NotificationChain eInverseRemove(InternalEObject otherEnd, int featureID, NotificationChain msgs) {
+ switch (featureID) {
+ case ComrelPackage.MULTI_FILTER_UNIT__INPUT_PORT:
+ return basicSetInputPort(null, msgs);
+ case ComrelPackage.MULTI_FILTER_UNIT__OUTPUT_PORT:
+ return basicSetOutputPort(null, msgs);
+ }
+ return super.eInverseRemove(otherEnd, featureID, msgs);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public Object eGet(int featureID, boolean resolve, boolean coreType) {
+ switch (featureID) {
+ case ComrelPackage.MULTI_FILTER_UNIT__INPUT_PORT:
+ return getInputPort();
+ case ComrelPackage.MULTI_FILTER_UNIT__OUTPUT_PORT:
+ return getOutputPort();
+ case ComrelPackage.MULTI_FILTER_UNIT__MULTI_FILTER_HELPER:
+ if (resolve) return getMultiFilterHelper();
+ return basicGetMultiFilterHelper();
+ case ComrelPackage.MULTI_FILTER_UNIT__TYPE:
+ return getType();
+ }
+ return super.eGet(featureID, resolve, coreType);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public void eSet(int featureID, Object newValue) {
+ switch (featureID) {
+ case ComrelPackage.MULTI_FILTER_UNIT__INPUT_PORT:
+ setInputPort((MultiInputPort)newValue);
+ return;
+ case ComrelPackage.MULTI_FILTER_UNIT__OUTPUT_PORT:
+ setOutputPort((MultiOutputPort)newValue);
+ return;
+ case ComrelPackage.MULTI_FILTER_UNIT__MULTI_FILTER_HELPER:
+ setMultiFilterHelper((MultiFilterHelper)newValue);
+ return;
+ }
+ super.eSet(featureID, newValue);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public void eUnset(int featureID) {
+ switch (featureID) {
+ case ComrelPackage.MULTI_FILTER_UNIT__INPUT_PORT:
+ setInputPort((MultiInputPort)null);
+ return;
+ case ComrelPackage.MULTI_FILTER_UNIT__OUTPUT_PORT:
+ setOutputPort((MultiOutputPort)null);
+ return;
+ case ComrelPackage.MULTI_FILTER_UNIT__MULTI_FILTER_HELPER:
+ setMultiFilterHelper((MultiFilterHelper)null);
+ return;
+ }
+ super.eUnset(featureID);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public boolean eIsSet(int featureID) {
+ switch (featureID) {
+ case ComrelPackage.MULTI_FILTER_UNIT__INPUT_PORT:
+ return inputPort != null;
+ case ComrelPackage.MULTI_FILTER_UNIT__OUTPUT_PORT:
+ return outputPort != null;
+ case ComrelPackage.MULTI_FILTER_UNIT__MULTI_FILTER_HELPER:
+ return multiFilterHelper != null;
+ case ComrelPackage.MULTI_FILTER_UNIT__TYPE:
+ return TYPE_EDEFAULT == null ? type != null : !TYPE_EDEFAULT.equals(type);
+ }
+ return super.eIsSet(featureID);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public String toString() {
+ if (eIsProxy()) return super.toString();
+
+ StringBuffer result = new StringBuffer(super.toString());
+ result.append(" (type: ");
+ result.append(type);
+ result.append(')');
+ return result.toString();
+ }
+
+} //MultiFilterUnitImpl
diff --git a/org.eclipse.emf.refactor.comrel/src/comrel/impl/MultiInputPortImpl.java b/org.eclipse.emf.refactor.comrel/src/comrel/impl/MultiInputPortImpl.java
new file mode 100644
index 0000000..4f2e7d8
--- /dev/null
+++ b/org.eclipse.emf.refactor.comrel/src/comrel/impl/MultiInputPortImpl.java
@@ -0,0 +1,90 @@
+/**
+ * <copyright>
+ * </copyright>
+ *
+ * $Id$
+ */
+package comrel.impl;
+
+import org.eclipse.emf.common.util.EList;
+import org.eclipse.emf.ecore.EClass;
+import org.eclipse.emf.ecore.EObject;
+
+import comrel.CompositeRefactoring;
+import comrel.ComrelPackage;
+import comrel.MultiInputPort;
+import comrel.PortMapping;
+
+/**
+ * <!-- begin-user-doc -->
+ * An implementation of the model object '<em><b>Multi Input Port</b></em>'.
+ * <!-- end-user-doc -->
+ * <p>
+ * </p>
+ *
+ * @generated
+ */
+public class MultiInputPortImpl extends MultiPortImpl implements MultiInputPort {
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected MultiInputPortImpl() {
+ super();
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ protected EClass eStaticClass() {
+ return ComrelPackage.Literals.MULTI_INPUT_PORT;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public Boolean isMappingTarget() {
+ EObject container = this.eContainer();
+ if (container == null) return true;
+ while(container.eContainer() != null) {
+ container = container.eContainer();
+ }
+ CompositeRefactoring refSys;
+ if(container instanceof CompositeRefactoring) {
+ refSys = (CompositeRefactoring) container;
+ }
+ else {
+ throw new UnsupportedOperationException("Container 'RefactoringSystem' doesn't exists");
+ }
+ EList<PortMapping> mappings = refSys.getPortMappings();
+ for(PortMapping m : mappings) {
+ if(m.getTarget() == this) {
+ return true;
+ }
+ }
+ return false;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public Boolean isRootPort() {
+ EObject container = this.eContainer();
+ if (container == null) throw new UnsupportedOperationException("Container doesn't exists");
+ if(container.eContainer() instanceof CompositeRefactoring) {
+ return true;
+ }
+ else {
+ return false;
+ }
+ }
+
+} //MultiInputPortImpl
diff --git a/org.eclipse.emf.refactor.comrel/src/comrel/impl/MultiOutputPortImpl.java b/org.eclipse.emf.refactor.comrel/src/comrel/impl/MultiOutputPortImpl.java
new file mode 100644
index 0000000..f08ec9b
--- /dev/null
+++ b/org.eclipse.emf.refactor.comrel/src/comrel/impl/MultiOutputPortImpl.java
@@ -0,0 +1,43 @@
+/**
+ * <copyright>
+ * </copyright>
+ *
+ * $Id$
+ */
+package comrel.impl;
+
+import comrel.ComrelPackage;
+import comrel.MultiOutputPort;
+
+import org.eclipse.emf.ecore.EClass;
+
+/**
+ * <!-- begin-user-doc -->
+ * An implementation of the model object '<em><b>Multi Output Port</b></em>'.
+ * <!-- end-user-doc -->
+ * <p>
+ * </p>
+ *
+ * @generated
+ */
+public class MultiOutputPortImpl extends MultiPortImpl implements MultiOutputPort {
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected MultiOutputPortImpl() {
+ super();
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ protected EClass eStaticClass() {
+ return ComrelPackage.Literals.MULTI_OUTPUT_PORT;
+ }
+
+} //MultiOutputPortImpl
diff --git a/org.eclipse.emf.refactor.comrel/src/comrel/impl/MultiPortImpl.java b/org.eclipse.emf.refactor.comrel/src/comrel/impl/MultiPortImpl.java
new file mode 100644
index 0000000..461ceaa
--- /dev/null
+++ b/org.eclipse.emf.refactor.comrel/src/comrel/impl/MultiPortImpl.java
@@ -0,0 +1,151 @@
+/**
+ * <copyright>
+ * </copyright>
+ *
+ * $Id$
+ */
+package comrel.impl;
+
+import comrel.ComrelPackage;
+import comrel.MultiPort;
+
+import java.util.Collection;
+
+import org.eclipse.emf.common.util.EList;
+
+import org.eclipse.emf.ecore.EClass;
+
+import org.eclipse.emf.ecore.util.EDataTypeUniqueEList;
+
+/**
+ * <!-- begin-user-doc -->
+ * An implementation of the model object '<em><b>Multi Port</b></em>'.
+ * <!-- end-user-doc -->
+ * <p>
+ * The following features are implemented:
+ * <ul>
+ * <li>{@link comrel.impl.MultiPortImpl#getValue <em>Value</em>}</li>
+ * </ul>
+ * </p>
+ *
+ * @generated
+ */
+public abstract class MultiPortImpl extends PortImpl implements MultiPort {
+ /**
+ * The cached value of the '{@link #getValue() <em>Value</em>}' attribute list.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getValue()
+ * @generated
+ * @ordered
+ */
+ protected EList<Object> value;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected MultiPortImpl() {
+ super();
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ protected EClass eStaticClass() {
+ return ComrelPackage.Literals.MULTI_PORT;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EList<Object> getValue() {
+ if (value == null) {
+ value = new EDataTypeUniqueEList<Object>(Object.class, this, ComrelPackage.MULTI_PORT__VALUE);
+ }
+ return value;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public Object eGet(int featureID, boolean resolve, boolean coreType) {
+ switch (featureID) {
+ case ComrelPackage.MULTI_PORT__VALUE:
+ return getValue();
+ }
+ return super.eGet(featureID, resolve, coreType);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @SuppressWarnings("unchecked")
+ @Override
+ public void eSet(int featureID, Object newValue) {
+ switch (featureID) {
+ case ComrelPackage.MULTI_PORT__VALUE:
+ getValue().clear();
+ getValue().addAll((Collection<? extends Object>)newValue);
+ return;
+ }
+ super.eSet(featureID, newValue);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public void eUnset(int featureID) {
+ switch (featureID) {
+ case ComrelPackage.MULTI_PORT__VALUE:
+ getValue().clear();
+ return;
+ }
+ super.eUnset(featureID);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public boolean eIsSet(int featureID) {
+ switch (featureID) {
+ case ComrelPackage.MULTI_PORT__VALUE:
+ return value != null && !value.isEmpty();
+ }
+ return super.eIsSet(featureID);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public String toString() {
+ if (eIsProxy()) return super.toString();
+
+ StringBuffer result = new StringBuffer(super.toString());
+ result.append(" (value: ");
+ result.append(value);
+ result.append(')');
+ return result.toString();
+ }
+
+} //MultiPortImpl
diff --git a/org.eclipse.emf.refactor.comrel/src/comrel/impl/MultiPortMappingImpl.java b/org.eclipse.emf.refactor.comrel/src/comrel/impl/MultiPortMappingImpl.java
new file mode 100644
index 0000000..952a868
--- /dev/null
+++ b/org.eclipse.emf.refactor.comrel/src/comrel/impl/MultiPortMappingImpl.java
@@ -0,0 +1,245 @@
+/**
+ * <copyright>
+ * </copyright>
+ *
+ * $Id$
+ */
+package comrel.impl;
+
+import comrel.ComrelPackage;
+import comrel.MultiInputPort;
+import comrel.MultiPort;
+import comrel.MultiPortMapping;
+
+import org.eclipse.emf.common.notify.Notification;
+
+import org.eclipse.emf.ecore.EClass;
+import org.eclipse.emf.ecore.InternalEObject;
+
+import org.eclipse.emf.ecore.impl.ENotificationImpl;
+
+/**
+ * <!-- begin-user-doc -->
+ * An implementation of the model object '<em><b>Multi Port Mapping</b></em>'.
+ * <!-- end-user-doc -->
+ * <p>
+ * The following features are implemented:
+ * <ul>
+ * <li>{@link comrel.impl.MultiPortMappingImpl#getSource <em>Source</em>}</li>
+ * <li>{@link comrel.impl.MultiPortMappingImpl#getTarget <em>Target</em>}</li>
+ * </ul>
+ * </p>
+ *
+ * @generated
+ */
+public class MultiPortMappingImpl extends PortMappingImpl implements MultiPortMapping {
+ /**
+ * The cached value of the '{@link #getSource() <em>Source</em>}' reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getSource()
+ * @generated
+ * @ordered
+ */
+ protected MultiPort source;
+
+ /**
+ * The cached value of the '{@link #getTarget() <em>Target</em>}' reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getTarget()
+ * @generated
+ * @ordered
+ */
+ protected MultiInputPort target;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected MultiPortMappingImpl() {
+ super();
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ protected EClass eStaticClass() {
+ return ComrelPackage.Literals.MULTI_PORT_MAPPING;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public MultiPort getSource() {
+ if (source != null && source.eIsProxy()) {
+ InternalEObject oldSource = (InternalEObject)source;
+ source = (MultiPort)eResolveProxy(oldSource);
+ if (source != oldSource) {
+ if (eNotificationRequired())
+ eNotify(new ENotificationImpl(this, Notification.RESOLVE, ComrelPackage.MULTI_PORT_MAPPING__SOURCE, oldSource, source));
+ }
+ }
+ return source;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public MultiPort basicGetSource() {
+ return source;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public void setSource(MultiPort newSource) {
+ this.resetVisualization();
+ MultiPort oldSource = source;
+ source = newSource;
+ if (eNotificationRequired())
+ eNotify(new ENotificationImpl(this, Notification.SET, ComrelPackage.MULTI_PORT_MAPPING__SOURCE, oldSource, source));
+ if(source != null && target != null){
+ if (source.getType() != null) {
+ updatePortTypesAndNames(source.getType(),source.getSingularPortName());
+ } else {
+ updatePortTypesAndNames(target.getType(),target.getSingularPortName());
+ }
+ updateMappingNumber();
+ }
+ else {
+ this.updateCRVisualization();
+ }
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public MultiInputPort getTarget() {
+ if (target != null && target.eIsProxy()) {
+ InternalEObject oldTarget = (InternalEObject)target;
+ target = (MultiInputPort)eResolveProxy(oldTarget);
+ if (target != oldTarget) {
+ if (eNotificationRequired())
+ eNotify(new ENotificationImpl(this, Notification.RESOLVE, ComrelPackage.MULTI_PORT_MAPPING__TARGET, oldTarget, target));
+ }
+ }
+ return target;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public MultiInputPort basicGetTarget() {
+ return target;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public void setTarget(MultiInputPort newTarget) {
+ this.resetVisualization();
+ MultiInputPort oldTarget = target;
+ target = newTarget;
+ if (eNotificationRequired())
+ eNotify(new ENotificationImpl(this, Notification.SET, ComrelPackage.MULTI_PORT_MAPPING__TARGET, oldTarget, target));
+ if(source != null && target != null){
+ if (target.getType() != null) {
+ updatePortTypesAndNames(target.getType(),target.getSingularPortName());
+ } else {
+ updatePortTypesAndNames(source.getType(),source.getSingularPortName());
+ }
+ updateMappingNumber();
+ }
+ else {
+ this.updateCRVisualization();
+ }
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public Object eGet(int featureID, boolean resolve, boolean coreType) {
+ switch (featureID) {
+ case ComrelPackage.MULTI_PORT_MAPPING__SOURCE:
+ if (resolve) return getSource();
+ return basicGetSource();
+ case ComrelPackage.MULTI_PORT_MAPPING__TARGET:
+ if (resolve) return getTarget();
+ return basicGetTarget();
+ }
+ return super.eGet(featureID, resolve, coreType);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public void eSet(int featureID, Object newValue) {
+ switch (featureID) {
+ case ComrelPackage.MULTI_PORT_MAPPING__SOURCE:
+ setSource((MultiPort)newValue);
+ return;
+ case ComrelPackage.MULTI_PORT_MAPPING__TARGET:
+ setTarget((MultiInputPort)newValue);
+ return;
+ }
+ super.eSet(featureID, newValue);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public void eUnset(int featureID) {
+ switch (featureID) {
+ case ComrelPackage.MULTI_PORT_MAPPING__SOURCE:
+ setSource((MultiPort)null);
+ return;
+ case ComrelPackage.MULTI_PORT_MAPPING__TARGET:
+ setTarget((MultiInputPort)null);
+ return;
+ }
+ super.eUnset(featureID);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public boolean eIsSet(int featureID) {
+ switch (featureID) {
+ case ComrelPackage.MULTI_PORT_MAPPING__SOURCE:
+ return source != null;
+ case ComrelPackage.MULTI_PORT_MAPPING__TARGET:
+ return target != null;
+ }
+ return super.eIsSet(featureID);
+ }
+
+} //MultiPortMappingImpl
diff --git a/org.eclipse.emf.refactor.comrel/src/comrel/impl/MultiSinglePortMappingImpl.java b/org.eclipse.emf.refactor.comrel/src/comrel/impl/MultiSinglePortMappingImpl.java
new file mode 100644
index 0000000..d004c15
--- /dev/null
+++ b/org.eclipse.emf.refactor.comrel/src/comrel/impl/MultiSinglePortMappingImpl.java
@@ -0,0 +1,245 @@
+/**
+ * <copyright>
+ * </copyright>
+ *
+ * $Id$
+ */
+package comrel.impl;
+
+import comrel.ComrelPackage;
+import comrel.MultiPort;
+import comrel.MultiSinglePortMapping;
+import comrel.SingleInputPort;
+
+import org.eclipse.emf.common.notify.Notification;
+
+import org.eclipse.emf.ecore.EClass;
+import org.eclipse.emf.ecore.InternalEObject;
+
+import org.eclipse.emf.ecore.impl.ENotificationImpl;
+
+/**
+ * <!-- begin-user-doc -->
+ * An implementation of the model object '<em><b>Multi Single Port Mapping</b></em>'.
+ * <!-- end-user-doc -->
+ * <p>
+ * The following features are implemented:
+ * <ul>
+ * <li>{@link comrel.impl.MultiSinglePortMappingImpl#getSource <em>Source</em>}</li>
+ * <li>{@link comrel.impl.MultiSinglePortMappingImpl#getTarget <em>Target</em>}</li>
+ * </ul>
+ * </p>
+ *
+ * @generated
+ */
+public class MultiSinglePortMappingImpl extends PortMappingImpl implements MultiSinglePortMapping {
+ /**
+ * The cached value of the '{@link #getSource() <em>Source</em>}' reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getSource()
+ * @generated
+ * @ordered
+ */
+ protected MultiPort source;
+
+ /**
+ * The cached value of the '{@link #getTarget() <em>Target</em>}' reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getTarget()
+ * @generated
+ * @ordered
+ */
+ protected SingleInputPort target;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected MultiSinglePortMappingImpl() {
+ super();
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ protected EClass eStaticClass() {
+ return ComrelPackage.Literals.MULTI_SINGLE_PORT_MAPPING;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public MultiPort getSource() {
+ if (source != null && source.eIsProxy()) {
+ InternalEObject oldSource = (InternalEObject)source;
+ source = (MultiPort)eResolveProxy(oldSource);
+ if (source != oldSource) {
+ if (eNotificationRequired())
+ eNotify(new ENotificationImpl(this, Notification.RESOLVE, ComrelPackage.MULTI_SINGLE_PORT_MAPPING__SOURCE, oldSource, source));
+ }
+ }
+ return source;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public MultiPort basicGetSource() {
+ return source;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public void setSource(MultiPort newSource) {
+ this.resetVisualization();
+ MultiPort oldSource = source;
+ source = newSource;
+ if (eNotificationRequired())
+ eNotify(new ENotificationImpl(this, Notification.SET, ComrelPackage.MULTI_SINGLE_PORT_MAPPING__SOURCE, oldSource, source));
+ if(source != null && target != null){
+ if (source.getType() != null) {
+ updatePortTypesAndNames(source.getType(),source.getSingularPortName());
+ } else {
+ updatePortTypesAndNames(target.getType(),target.getSingularPortName());
+ }
+ updateMappingNumber();
+ }
+ else {
+ this.updateCRVisualization();
+ }
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public SingleInputPort getTarget() {
+ if (target != null && target.eIsProxy()) {
+ InternalEObject oldTarget = (InternalEObject)target;
+ target = (SingleInputPort)eResolveProxy(oldTarget);
+ if (target != oldTarget) {
+ if (eNotificationRequired())
+ eNotify(new ENotificationImpl(this, Notification.RESOLVE, ComrelPackage.MULTI_SINGLE_PORT_MAPPING__TARGET, oldTarget, target));
+ }
+ }
+ return target;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public SingleInputPort basicGetTarget() {
+ return target;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public void setTarget(SingleInputPort newTarget) {
+ this.resetVisualization();
+ SingleInputPort oldTarget = target;
+ target = newTarget;
+ if (eNotificationRequired())
+ eNotify(new ENotificationImpl(this, Notification.SET, ComrelPackage.MULTI_SINGLE_PORT_MAPPING__TARGET, oldTarget, target));
+ if(source != null && target != null){
+ if (target.getType() != null) {
+ updatePortTypesAndNames(target.getType(),target.getSingularPortName());
+ } else {
+ updatePortTypesAndNames(source.getType(),source.getSingularPortName());
+ }
+ updateMappingNumber();
+ }
+ else {
+ this.updateCRVisualization();
+ }
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public Object eGet(int featureID, boolean resolve, boolean coreType) {
+ switch (featureID) {
+ case ComrelPackage.MULTI_SINGLE_PORT_MAPPING__SOURCE:
+ if (resolve) return getSource();
+ return basicGetSource();
+ case ComrelPackage.MULTI_SINGLE_PORT_MAPPING__TARGET:
+ if (resolve) return getTarget();
+ return basicGetTarget();
+ }
+ return super.eGet(featureID, resolve, coreType);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public void eSet(int featureID, Object newValue) {
+ switch (featureID) {
+ case ComrelPackage.MULTI_SINGLE_PORT_MAPPING__SOURCE:
+ setSource((MultiPort)newValue);
+ return;
+ case ComrelPackage.MULTI_SINGLE_PORT_MAPPING__TARGET:
+ setTarget((SingleInputPort)newValue);
+ return;
+ }
+ super.eSet(featureID, newValue);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public void eUnset(int featureID) {
+ switch (featureID) {
+ case ComrelPackage.MULTI_SINGLE_PORT_MAPPING__SOURCE:
+ setSource((MultiPort)null);
+ return;
+ case ComrelPackage.MULTI_SINGLE_PORT_MAPPING__TARGET:
+ setTarget((SingleInputPort)null);
+ return;
+ }
+ super.eUnset(featureID);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public boolean eIsSet(int featureID) {
+ switch (featureID) {
+ case ComrelPackage.MULTI_SINGLE_PORT_MAPPING__SOURCE:
+ return source != null;
+ case ComrelPackage.MULTI_SINGLE_PORT_MAPPING__TARGET:
+ return target != null;
+ }
+ return super.eIsSet(featureID);
+ }
+
+} //MultiSinglePortMappingImpl
diff --git a/org.eclipse.emf.refactor.comrel/src/comrel/impl/OutputPortImpl.java b/org.eclipse.emf.refactor.comrel/src/comrel/impl/OutputPortImpl.java
new file mode 100644
index 0000000..8c40366
--- /dev/null
+++ b/org.eclipse.emf.refactor.comrel/src/comrel/impl/OutputPortImpl.java
@@ -0,0 +1,43 @@
+/**
+ * <copyright>
+ * </copyright>
+ *
+ * $Id$
+ */
+package comrel.impl;
+
+import comrel.ComrelPackage;
+import comrel.OutputPort;
+
+import org.eclipse.emf.ecore.EClass;
+
+/**
+ * <!-- begin-user-doc -->
+ * An implementation of the model object '<em><b>Output Port</b></em>'.
+ * <!-- end-user-doc -->
+ * <p>
+ * </p>
+ *
+ * @generated
+ */
+public abstract class OutputPortImpl extends PortImpl implements OutputPort {
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected OutputPortImpl() {
+ super();
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ protected EClass eStaticClass() {
+ return ComrelPackage.Literals.OUTPUT_PORT;
+ }
+
+} //OutputPortImpl
diff --git a/org.eclipse.emf.refactor.comrel/src/comrel/impl/ParallelQueuedUnitImpl.java b/org.eclipse.emf.refactor.comrel/src/comrel/impl/ParallelQueuedUnitImpl.java
new file mode 100644
index 0000000..1f8318e
--- /dev/null
+++ b/org.eclipse.emf.refactor.comrel/src/comrel/impl/ParallelQueuedUnitImpl.java
@@ -0,0 +1,425 @@
+/**
+ * <copyright>
+ * </copyright>
+ *
+ * $Id$
+ */
+package comrel.impl;
+
+import java.util.Collection;
+
+import org.eclipse.emf.common.notify.Notification;
+import org.eclipse.emf.common.notify.NotificationChain;
+import org.eclipse.emf.common.util.BasicEList;
+import org.eclipse.emf.common.util.EList;
+import org.eclipse.emf.ecore.EClass;
+import org.eclipse.emf.ecore.InternalEObject;
+import org.eclipse.emf.ecore.impl.ENotificationImpl;
+import org.eclipse.emf.ecore.util.EObjectContainmentEList;
+import org.eclipse.emf.ecore.util.InternalEList;
+
+import comrel.ComrelFactory;
+import comrel.ComrelPackage;
+import comrel.HelperUnit;
+import comrel.InputPort;
+import comrel.MultiInputPort;
+import comrel.ParallelQueuedUnit;
+import comrel.RefactoringUnit;
+import comrel.SingleInputPort;
+
+/**
+ * <!-- begin-user-doc -->
+ * An implementation of the model object '<em><b>Parallel Queued Unit</b></em>'.
+ * <!-- end-user-doc -->
+ * <p>
+ * The following features are implemented:
+ * <ul>
+ * <li>{@link comrel.impl.ParallelQueuedUnitImpl#getHelperUnits <em>Helper Units</em>}</li>
+ * <li>{@link comrel.impl.ParallelQueuedUnitImpl#getRefactoringUnits <em>Refactoring Units</em>}</li>
+ * <li>{@link comrel.impl.ParallelQueuedUnitImpl#getSingleInputPorts <em>Single Input Ports</em>}</li>
+ * <li>{@link comrel.impl.ParallelQueuedUnitImpl#getMultiInputPorts <em>Multi Input Ports</em>}</li>
+ * <li>{@link comrel.impl.ParallelQueuedUnitImpl#getType <em>Type</em>}</li>
+ * <li>{@link comrel.impl.ParallelQueuedUnitImpl#getLblStrict <em>Lbl Strict</em>}</li>
+ * </ul>
+ * </p>
+ *
+ * @generated
+ */
+public class ParallelQueuedUnitImpl extends TwicedQueuedUnitImpl implements ParallelQueuedUnit {
+ /**
+ * The cached value of the '{@link #getHelperUnits() <em>Helper Units</em>}' containment reference list.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getHelperUnits()
+ * @generated
+ * @ordered
+ */
+ protected EList<HelperUnit> helperUnits;
+
+ /**
+ * The cached value of the '{@link #getRefactoringUnits() <em>Refactoring Units</em>}' containment reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getRefactoringUnits()
+ * @generated
+ * @ordered
+ */
+ protected RefactoringUnit refactoringUnits;
+
+ /**
+ * The cached value of the '{@link #getSingleInputPorts() <em>Single Input Ports</em>}' containment reference list.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getSingleInputPorts()
+ * @generated
+ * @ordered
+ */
+ protected EList<SingleInputPort> singleInputPorts;
+
+ /**
+ * The cached value of the '{@link #getMultiInputPorts() <em>Multi Input Ports</em>}' containment reference list.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getMultiInputPorts()
+ * @generated
+ * @ordered
+ */
+ protected EList<MultiInputPort> multiInputPorts;
+
+ /**
+ * The default value of the '{@link #getType() <em>Type</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getType()
+ * @generated
+ * @ordered
+ */
+ protected static final String TYPE_EDEFAULT = "Parallel Queued Unit";
+
+ /**
+ * The cached value of the '{@link #getType() <em>Type</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getType()
+ * @generated
+ * @ordered
+ */
+ protected String type = TYPE_EDEFAULT;
+
+ /**
+ * The default value of the '{@link #getLblStrict() <em>Lbl Strict</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getLblStrict()
+ * @generated
+ * @ordered
+ */
+ protected static final String LBL_STRICT_EDEFAULT = "strict";
+
+ /**
+ * The cached value of the '{@link #getLblStrict() <em>Lbl Strict</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getLblStrict()
+ * @generated
+ * @ordered
+ */
+ protected String lblStrict = LBL_STRICT_EDEFAULT;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected ParallelQueuedUnitImpl() {
+ super();
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ protected EClass eStaticClass() {
+ return ComrelPackage.Literals.PARALLEL_QUEUED_UNIT;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EList<HelperUnit> getHelperUnits() {
+ if (helperUnits == null) {
+ helperUnits = new EObjectContainmentEList<HelperUnit>(HelperUnit.class, this, ComrelPackage.PARALLEL_QUEUED_UNIT__HELPER_UNITS);
+ }
+ return helperUnits;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public RefactoringUnit getRefactoringUnits() {
+ return refactoringUnits;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public NotificationChain basicSetRefactoringUnits(RefactoringUnit newRefactoringUnits, NotificationChain msgs) {
+ RefactoringUnit oldRefactoringUnits = refactoringUnits;
+ refactoringUnits = newRefactoringUnits;
+ if (eNotificationRequired()) {
+ ENotificationImpl notification = new ENotificationImpl(this, Notification.SET, ComrelPackage.PARALLEL_QUEUED_UNIT__REFACTORING_UNITS, oldRefactoringUnits, newRefactoringUnits);
+ if (msgs == null) msgs = notification; else msgs.add(notification);
+ }
+ return msgs;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public void setRefactoringUnits(RefactoringUnit newRefactoringUnits) {
+ if (newRefactoringUnits != refactoringUnits) {
+ NotificationChain msgs = null;
+ if (refactoringUnits != null)
+ msgs = ((InternalEObject)refactoringUnits).eInverseRemove(this, EOPPOSITE_FEATURE_BASE - ComrelPackage.PARALLEL_QUEUED_UNIT__REFACTORING_UNITS, null, msgs);
+ if (newRefactoringUnits != null)
+ msgs = ((InternalEObject)newRefactoringUnits).eInverseAdd(this, EOPPOSITE_FEATURE_BASE - ComrelPackage.PARALLEL_QUEUED_UNIT__REFACTORING_UNITS, null, msgs);
+ msgs = basicSetRefactoringUnits(newRefactoringUnits, msgs);
+ if (msgs != null) msgs.dispatch();
+ }
+ else if (eNotificationRequired())
+ eNotify(new ENotificationImpl(this, Notification.SET, ComrelPackage.PARALLEL_QUEUED_UNIT__REFACTORING_UNITS, newRefactoringUnits, newRefactoringUnits));
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EList<SingleInputPort> getSingleInputPorts() {
+ if (singleInputPorts == null) {
+ singleInputPorts = new EObjectContainmentEList<SingleInputPort>(SingleInputPort.class, this, ComrelPackage.PARALLEL_QUEUED_UNIT__SINGLE_INPUT_PORTS);
+ }
+ return singleInputPorts;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EList<MultiInputPort> getMultiInputPorts() {
+ if (multiInputPorts == null) {
+ multiInputPorts = new EObjectContainmentEList<MultiInputPort>(MultiInputPort.class, this, ComrelPackage.PARALLEL_QUEUED_UNIT__MULTI_INPUT_PORTS);
+ }
+ return multiInputPorts;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public String getType() {
+ return type;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public String getLblStrict() {
+ return lblStrict;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public void setLblStrict(String newLblStrict) {
+ String oldLblStrict = lblStrict;
+ lblStrict = newLblStrict;
+ if (eNotificationRequired())
+ eNotify(new ENotificationImpl(this, Notification.SET, ComrelPackage.PARALLEL_QUEUED_UNIT__LBL_STRICT, oldLblStrict, lblStrict));
+ }
+
+ @Override
+ public void setStrict(boolean newStrict) {
+ super.setStrict(newStrict);
+ if (newStrict) setLblStrict("strict");
+ else setLblStrict("non strict");
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public NotificationChain eInverseRemove(InternalEObject otherEnd, int featureID, NotificationChain msgs) {
+ switch (featureID) {
+ case ComrelPackage.PARALLEL_QUEUED_UNIT__HELPER_UNITS:
+ return ((InternalEList<?>)getHelperUnits()).basicRemove(otherEnd, msgs);
+ case ComrelPackage.PARALLEL_QUEUED_UNIT__REFACTORING_UNITS:
+ return basicSetRefactoringUnits(null, msgs);
+ case ComrelPackage.PARALLEL_QUEUED_UNIT__SINGLE_INPUT_PORTS:
+ return ((InternalEList<?>)getSingleInputPorts()).basicRemove(otherEnd, msgs);
+ case ComrelPackage.PARALLEL_QUEUED_UNIT__MULTI_INPUT_PORTS:
+ return ((InternalEList<?>)getMultiInputPorts()).basicRemove(otherEnd, msgs);
+ }
+ return super.eInverseRemove(otherEnd, featureID, msgs);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public Object eGet(int featureID, boolean resolve, boolean coreType) {
+ switch (featureID) {
+ case ComrelPackage.PARALLEL_QUEUED_UNIT__HELPER_UNITS:
+ return getHelperUnits();
+ case ComrelPackage.PARALLEL_QUEUED_UNIT__REFACTORING_UNITS:
+ return getRefactoringUnits();
+ case ComrelPackage.PARALLEL_QUEUED_UNIT__SINGLE_INPUT_PORTS:
+ return getSingleInputPorts();
+ case ComrelPackage.PARALLEL_QUEUED_UNIT__MULTI_INPUT_PORTS:
+ return getMultiInputPorts();
+ case ComrelPackage.PARALLEL_QUEUED_UNIT__TYPE:
+ return getType();
+ case ComrelPackage.PARALLEL_QUEUED_UNIT__LBL_STRICT:
+ return getLblStrict();
+ }
+ return super.eGet(featureID, resolve, coreType);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @SuppressWarnings("unchecked")
+ @Override
+ public void eSet(int featureID, Object newValue) {
+ switch (featureID) {
+ case ComrelPackage.PARALLEL_QUEUED_UNIT__HELPER_UNITS:
+ getHelperUnits().clear();
+ getHelperUnits().addAll((Collection<? extends HelperUnit>)newValue);
+ return;
+ case ComrelPackage.PARALLEL_QUEUED_UNIT__REFACTORING_UNITS:
+ setRefactoringUnits((RefactoringUnit)newValue);
+ return;
+ case ComrelPackage.PARALLEL_QUEUED_UNIT__SINGLE_INPUT_PORTS:
+ getSingleInputPorts().clear();
+ getSingleInputPorts().addAll((Collection<? extends SingleInputPort>)newValue);
+ return;
+ case ComrelPackage.PARALLEL_QUEUED_UNIT__MULTI_INPUT_PORTS:
+ getMultiInputPorts().clear();
+ getMultiInputPorts().addAll((Collection<? extends MultiInputPort>)newValue);
+ return;
+ case ComrelPackage.PARALLEL_QUEUED_UNIT__LBL_STRICT:
+ setLblStrict((String)newValue);
+ return;
+ }
+ super.eSet(featureID, newValue);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public void eUnset(int featureID) {
+ switch (featureID) {
+ case ComrelPackage.PARALLEL_QUEUED_UNIT__HELPER_UNITS:
+ getHelperUnits().clear();
+ return;
+ case ComrelPackage.PARALLEL_QUEUED_UNIT__REFACTORING_UNITS:
+ setRefactoringUnits((RefactoringUnit)null);
+ return;
+ case ComrelPackage.PARALLEL_QUEUED_UNIT__SINGLE_INPUT_PORTS:
+ getSingleInputPorts().clear();
+ return;
+ case ComrelPackage.PARALLEL_QUEUED_UNIT__MULTI_INPUT_PORTS:
+ getMultiInputPorts().clear();
+ return;
+ case ComrelPackage.PARALLEL_QUEUED_UNIT__LBL_STRICT:
+ setLblStrict(LBL_STRICT_EDEFAULT);
+ return;
+ }
+ super.eUnset(featureID);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public boolean eIsSet(int featureID) {
+ switch (featureID) {
+ case ComrelPackage.PARALLEL_QUEUED_UNIT__HELPER_UNITS:
+ return helperUnits != null && !helperUnits.isEmpty();
+ case ComrelPackage.PARALLEL_QUEUED_UNIT__REFACTORING_UNITS:
+ return refactoringUnits != null;
+ case ComrelPackage.PARALLEL_QUEUED_UNIT__SINGLE_INPUT_PORTS:
+ return singleInputPorts != null && !singleInputPorts.isEmpty();
+ case ComrelPackage.PARALLEL_QUEUED_UNIT__MULTI_INPUT_PORTS:
+ return multiInputPorts != null && !multiInputPorts.isEmpty();
+ case ComrelPackage.PARALLEL_QUEUED_UNIT__TYPE:
+ return TYPE_EDEFAULT == null ? type != null : !TYPE_EDEFAULT.equals(type);
+ case ComrelPackage.PARALLEL_QUEUED_UNIT__LBL_STRICT:
+ return LBL_STRICT_EDEFAULT == null ? lblStrict != null : !LBL_STRICT_EDEFAULT.equals(lblStrict);
+ }
+ return super.eIsSet(featureID);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public String toString() {
+ if (eIsProxy()) return super.toString();
+
+ StringBuffer result = new StringBuffer(super.toString());
+ result.append(" (type: ");
+ result.append(type);
+ result.append(", lblStrict: ");
+ result.append(lblStrict);
+ result.append(')');
+ return result.toString();
+ }
+
+ public void init(){
+ ComrelFactory factory = ComrelFactory.eINSTANCE;
+ MultiInputPort one = factory.createMultiInputPort();
+ MultiInputPort two = factory.createMultiInputPort();
+ this.getMultiInputPorts().add(one);
+ this.getMultiInputPorts().add(two);
+ }
+
+ public EList<InputPort> getAllInputPorts() {
+ EList<InputPort> inputPorts = new BasicEList<InputPort>();
+ inputPorts.addAll(this.getSingleInputPorts());
+ inputPorts.addAll(this.getMultiInputPorts());
+ return inputPorts;
+ }
+
+
+
+} //ParallelQueuedUnitImpl
diff --git a/org.eclipse.emf.refactor.comrel/src/comrel/impl/PortImpl.java b/org.eclipse.emf.refactor.comrel/src/comrel/impl/PortImpl.java
new file mode 100644
index 0000000..adb009c
--- /dev/null
+++ b/org.eclipse.emf.refactor.comrel/src/comrel/impl/PortImpl.java
@@ -0,0 +1,389 @@
+/**
+ * <copyright>
+ * </copyright>
+ *
+ * $Id$
+ */
+package comrel.impl;
+
+import org.eclipse.draw2d.Shape;
+import org.eclipse.emf.common.notify.Notification;
+import org.eclipse.emf.ecore.EClass;
+import org.eclipse.emf.ecore.impl.ENotificationImpl;
+import org.eclipse.emf.ecore.impl.EObjectImpl;
+
+import comrel.CompositeRefactoring;
+import comrel.ComrelPackage;
+import comrel.DescribedElement;
+import comrel.InputPort;
+import comrel.OutputPort;
+import comrel.Port;
+import comrel.PortMapping;
+import comrel.SinglePort;
+import comrel.figures.InputPortFigure;
+import comrel.figures.OutputPortFigure;
+import comrel.util.ComrelUtil;
+
+/**
+ * <!-- begin-user-doc -->
+ * An implementation of the model object '<em><b>Port</b></em>'.
+ * <!-- end-user-doc -->
+ * <p>
+ * The following features are implemented:
+ * <ul>
+ * <li>{@link comrel.impl.PortImpl#getName <em>Name</em>}</li>
+ * <li>{@link comrel.impl.PortImpl#getDescription <em>Description</em>}</li>
+ * <li>{@link comrel.impl.PortImpl#getType <em>Type</em>}</li>
+ * </ul>
+ * </p>
+ *
+ * @generated
+ */
+public abstract class PortImpl extends EObjectImpl implements Port {
+
+ public Shape figure;
+
+ public Shape getFigure() {
+ return figure;
+ }
+
+ public void setFigure(Shape figure) {
+ this.figure = figure;
+ }
+
+ /**
+ * The default value of the '{@link #getName() <em>Name</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getName()
+ * @generated
+ * @ordered
+ */
+ protected static final String NAME_EDEFAULT = null;
+
+ /**
+ * The cached value of the '{@link #getName() <em>Name</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getName()
+ * @generated
+ * @ordered
+ */
+ protected String name = NAME_EDEFAULT;
+
+ /**
+ * The default value of the '{@link #getDescription() <em>Description</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getDescription()
+ * @generated
+ * @ordered
+ */
+ protected static final String DESCRIPTION_EDEFAULT = null;
+
+ /**
+ * The cached value of the '{@link #getDescription() <em>Description</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getDescription()
+ * @generated
+ * @ordered
+ */
+ protected String description = DESCRIPTION_EDEFAULT;
+
+ /**
+ * The cached value of the '{@link #getType() <em>Type</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getType()
+ * @generated
+ * @ordered
+ */
+ protected Class type;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected PortImpl() {
+ super();
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ protected EClass eStaticClass() {
+ return ComrelPackage.Literals.PORT;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public String getName() {
+ return name;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public void setName(String newName) {
+ if (ComrelUtil.portIsSettable(this)) {
+ String oldName = name;
+ name = newName;
+ if (eNotificationRequired())
+ eNotify(new ENotificationImpl(this, Notification.SET, ComrelPackage.PORT__NAME, oldName, name));
+ }
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public String getDescription() {
+ return description;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public void setDescription(String newDescription) {
+ String oldDescription = description;
+ description = newDescription;
+ if (eNotificationRequired())
+ eNotify(new ENotificationImpl(this, Notification.SET, ComrelPackage.PORT__DESCRIPTION, oldDescription, description));
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public Class getType() {
+ return type;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public void setType(Class newType) {
+ this.setType(newType, true);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public void setType(Class newType, boolean initiator) {
+ if (ComrelUtil.portIsSettable(this)) {
+ Class oldType = type;
+ type = newType;
+ if (eNotificationRequired())
+ eNotify(new ENotificationImpl(this, Notification.SET,
+ ComrelPackage.PORT__TYPE, oldType, type));
+ if (initiator && this.eContainer() != null) {
+ CompositeRefactoring cr = ComrelUtil.getContainedCompositeRefactoring(this);
+ for (PortMapping pm : cr.getPortMappings()) {
+ if (pm.getSource() == this || pm.getTarget() == this) {
+ pm.updatePortTypesAndNames(newType, this
+ .getSingularPortName());
+ return;
+ }
+ }
+ }
+ }
+// updateFigure();
+ }
+
+ private void updateFigure() {
+ if (this.getFigure() != null) {
+ if (this instanceof InputPort) {
+ InputPortFigure f = (InputPortFigure) this.getFigure();
+ f.updateFigure();
+ } else if (this instanceof OutputPort) {
+ OutputPortFigure f = (OutputPortFigure) this.getFigure();
+ f.updateFigure();
+ }
+ }
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public void updatePortName(String singularPortName) {
+ // new
+ if (this.name != null && ! this.name.isEmpty()) return;
+ // end new
+ if (this instanceof SinglePort) {
+ this.setName(singularPortName);
+ } else {
+ String pluralPortName = ComrelUtil
+ .convertSingularToPluralPortName(singularPortName);
+ this.setName(pluralPortName);
+ }
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public String getSingularPortName() {
+ if (getName() == null) {
+ return "";
+ }
+ if (this instanceof SinglePort) {
+ return this.getName();
+ } else {
+ String singularPortName = ComrelUtil.convertPluralToSingularPortName(this
+ .getName());
+ return singularPortName;
+ }
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public Object eGet(int featureID, boolean resolve, boolean coreType) {
+ switch (featureID) {
+ case ComrelPackage.PORT__NAME:
+ return getName();
+ case ComrelPackage.PORT__DESCRIPTION:
+ return getDescription();
+ case ComrelPackage.PORT__TYPE:
+ return getType();
+ }
+ return super.eGet(featureID, resolve, coreType);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public void eSet(int featureID, Object newValue) {
+ switch (featureID) {
+ case ComrelPackage.PORT__NAME:
+ setName((String)newValue);
+ return;
+ case ComrelPackage.PORT__DESCRIPTION:
+ setDescription((String)newValue);
+ return;
+ case ComrelPackage.PORT__TYPE:
+ setType((Class)newValue);
+ return;
+ }
+ super.eSet(featureID, newValue);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public void eUnset(int featureID) {
+ switch (featureID) {
+ case ComrelPackage.PORT__NAME:
+ setName(NAME_EDEFAULT);
+ return;
+ case ComrelPackage.PORT__DESCRIPTION:
+ setDescription(DESCRIPTION_EDEFAULT);
+ return;
+ case ComrelPackage.PORT__TYPE:
+ setType((Class)null);
+ return;
+ }
+ super.eUnset(featureID);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public boolean eIsSet(int featureID) {
+ switch (featureID) {
+ case ComrelPackage.PORT__NAME:
+ return NAME_EDEFAULT == null ? name != null : !NAME_EDEFAULT.equals(name);
+ case ComrelPackage.PORT__DESCRIPTION:
+ return DESCRIPTION_EDEFAULT == null ? description != null : !DESCRIPTION_EDEFAULT.equals(description);
+ case ComrelPackage.PORT__TYPE:
+ return type != null;
+ }
+ return super.eIsSet(featureID);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public int eBaseStructuralFeatureID(int derivedFeatureID, Class<?> baseClass) {
+ if (baseClass == DescribedElement.class) {
+ switch (derivedFeatureID) {
+ case ComrelPackage.PORT__DESCRIPTION: return ComrelPackage.DESCRIBED_ELEMENT__DESCRIPTION;
+ default: return -1;
+ }
+ }
+ return super.eBaseStructuralFeatureID(derivedFeatureID, baseClass);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public int eDerivedStructuralFeatureID(int baseFeatureID, Class<?> baseClass) {
+ if (baseClass == DescribedElement.class) {
+ switch (baseFeatureID) {
+ case ComrelPackage.DESCRIBED_ELEMENT__DESCRIPTION: return ComrelPackage.PORT__DESCRIPTION;
+ default: return -1;
+ }
+ }
+ return super.eDerivedStructuralFeatureID(baseFeatureID, baseClass);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public String toString() {
+ if (eIsProxy()) return super.toString();
+
+ StringBuffer result = new StringBuffer(super.toString());
+ result.append(" (name: ");
+ result.append(name);
+ result.append(", description: ");
+ result.append(description);
+ result.append(", type: ");
+ result.append(type);
+ result.append(')');
+ return result.toString();
+ }
+
+} //PortImpl
diff --git a/org.eclipse.emf.refactor.comrel/src/comrel/impl/PortMappingImpl.java b/org.eclipse.emf.refactor.comrel/src/comrel/impl/PortMappingImpl.java
new file mode 100644
index 0000000..67b29bc
--- /dev/null
+++ b/org.eclipse.emf.refactor.comrel/src/comrel/impl/PortMappingImpl.java
@@ -0,0 +1,333 @@
+/**
+ * <copyright>
+ * </copyright>
+ *
+ * $Id$
+ */
+package comrel.impl;
+
+import java.util.ArrayList;
+
+import org.eclipse.draw2d.Shape;
+import org.eclipse.emf.ecore.EClass;
+import org.eclipse.emf.ecore.impl.EObjectImpl;
+import org.eclipse.swt.graphics.Color;
+
+import comrel.CompositeRefactoring;
+import comrel.ComrelPackage;
+import comrel.InputPort;
+import comrel.MappingVisualization;
+import comrel.Port;
+import comrel.PortMapping;
+import comrel.figures.InputPortFigure;
+import comrel.figures.OutputPortFigure;
+import comrel.figures.PortMappingFigure;
+import comrel.util.ComrelUtil;
+
+/**
+ * <!-- begin-user-doc -->
+ * An implementation of the model object '<em><b>Port Mapping</b></em>'.
+ * <!-- end-user-doc -->
+ * <p>
+ * </p>
+ *
+ * @generated
+ */
+public abstract class PortMappingImpl extends EObjectImpl implements PortMapping {
+
+ public boolean visible = true;
+
+ public PortMappingFigure figure;
+
+ public int mappingNumber = Integer.MAX_VALUE;
+
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected PortMappingImpl() {
+ super();
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ protected EClass eStaticClass() {
+ return ComrelPackage.Literals.PORT_MAPPING;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public Port getSource() {
+ // TODO: implement this method
+ // Ensure that you remove @generated or mark it @generated NOT
+ throw new UnsupportedOperationException();
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public InputPort getTarget() {
+ // TODO: implement this method
+ // Ensure that you remove @generated or mark it @generated NOT
+ throw new UnsupportedOperationException();
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public void updatePortTypesAndNames(Class type, String singularPortName) {
+ if (type != null) {
+ if (getSource() != null && getTarget() != null) {
+ getSource().updatePortName(singularPortName);
+ getTarget().updatePortName(singularPortName);
+ if (getSource().getType() == null
+ && getTarget().getType() == null) {
+ return;
+ }
+ boolean flag = false;
+ if (!ComrelUtil.portIsSettable(getSource())) {
+ if (getSource().getType() == null
+ || !getSource().getType().equals(type)) {
+ updatePortTypesAndNames(getSource().getType(),
+ getSource().getSingularPortName());
+ return;
+ }
+ }
+ if (!ComrelUtil.portIsSettable(getTarget())) {
+ if (getTarget().getType() == null
+ || !getTarget().getType().equals(type)) {
+ updatePortTypesAndNames(getTarget().getType(),
+ getTarget().getSingularPortName());
+ return;
+ }
+ }
+ getSource().updatePortName(singularPortName);
+ getTarget().updatePortName(singularPortName);
+ if (getSource().getType() == null
+ || !getSource().getType().equals(type)) {
+ getSource().setType(type, false);
+ flag = true;
+ }
+ if (getTarget().getType() == null
+ || !getTarget().getType().equals(type)) {
+ getTarget().setType(type, false);
+ flag = true;
+ }
+ if (flag) {
+ CompositeRefactoring refSys = ComrelUtil
+ .getContainedCompositeRefactoring(getSource());
+
+ boolean con;
+ for (PortMapping map : refSys.getPortMappings()) {
+ if (map != this) {
+ con = map.getSource() == this.getSource();
+ con |= map.getSource() == this.getTarget();
+ con |= map.getTarget() == this.getSource();
+ con |= map.getTarget() == this.getTarget();
+ if (con) {
+ map.updatePortTypesAndNames(type,
+ singularPortName);
+ }
+ }
+ }
+ }
+ }
+ }
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public void updateMappingNumber() {
+ int mNumber = Integer.MAX_VALUE;
+
+ CompositeRefactoring cr = this.getCompositeRefactoring();
+ if (cr == null) {
+ this.setMappingNumber(Integer.MAX_VALUE);
+ return;
+ }
+ boolean con;
+ ArrayList<PortMapping> tMappings = new ArrayList<PortMapping>();
+ if (cr.getPortMappings() != null) {
+
+ for (PortMapping map : cr.getPortMappings()) {
+ if (map != this) {
+ con = map.getSource() == this.getSource();
+ con |= map.getSource() == this.getTarget();
+ con |= map.getTarget() == this.getSource();
+ con |= map.getTarget() == this.getTarget();
+ if (con) {
+ mNumber = Math.min(mNumber, map.getMappingNumber());
+ tMappings.add(map);
+ }
+ }
+ }
+ }
+ if (mNumber == Integer.MAX_VALUE) {
+ mNumber = 1;
+
+ while (cr.getMappingNumbers().contains(mNumber)) {
+ mNumber++;
+ }
+ }
+ cr.getMappingNumbers().add(mNumber);
+ this.setMappingNumber(mNumber);
+
+ for (PortMapping m : tMappings) {
+ if (m.getMappingNumber() != mNumber) {
+ m.updateMappingNumber();
+ }
+ }
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public void updateVisualization() {
+ if (mappingNumber == Integer.MAX_VALUE)
+ updateMappingNumber();
+ if (figure == null) {
+ return;
+ }
+ CompositeRefactoring refSys = this.getCompositeRefactoring();
+ if (refSys == null) {
+ return;
+ }
+ this.resetVisualization();
+ MappingVisualization visualization = refSys.getMappingVisualization();
+ Color bg;
+ switch (visualization.getValue()) {
+ case MappingVisualization.ARROWS_VALUE:
+ this.figure.setVisible(true);
+ this.setVisible(false);
+ break;
+ case MappingVisualization.COLORED_PORTS_VALUE:
+ bg = ComrelUtil.getColor(this.getMappingNumber());
+ this.figure.setVisible(false);
+ this.setColoredPorts(bg);
+ break;
+ case MappingVisualization.INDICES_VALUE:
+ this.figure.setVisible(false);
+ this.setPortIndexVisualization(true);
+ break;
+ case MappingVisualization.ARROWS_AND_COLORED_PORTS_VALUE:
+ bg = ComrelUtil.getColor(this.getMappingNumber());
+ this.figure.setVisible(true);
+ this.setColoredPorts(bg);
+ break;
+ case MappingVisualization.ARROWS_AND_INDICES_VALUE:
+ this.figure.setVisible(true);
+ this.setPortIndexVisualization(true);
+ break;
+ }
+ }
+
+ private CompositeRefactoring getCompositeRefactoring() {
+ CompositeRefactoring cr = ComrelUtil.getContainedCompositeRefactoring(this);
+ return cr;
+ }
+
+ public void setMappingNumber(int mappingNumber) {
+ CompositeRefactoring cr = this.getCompositeRefactoring();
+ this.mappingNumber = mappingNumber;
+ if (cr != null) {
+ cr.getMappingNumbers().add(mappingNumber);
+ }
+ }
+
+ public int getMappingNumber() {
+ return mappingNumber;
+ }
+
+ public void setFigure(PortMappingFigure figure) {
+ this.figure = figure;
+ this.updateVisualization();
+ }
+
+ public PortMappingFigure getFigure() {
+ return figure;
+ }
+
+ private void setColoredPorts(Color bg) {
+ if (this.getSource() != null) {
+ if (this.getSource().getFigure() != null) {
+ this.getSource().getFigure().setBackgroundColor(bg);
+ }
+ }
+ if (this.getTarget() != null) {
+ if (this.getTarget().getFigure() != null) {
+ this.getTarget().getFigure().setBackgroundColor(bg);
+ }
+ }
+ }
+
+ protected void resetVisualization() {
+ if (this.figure != null) {
+ this.figure.setVisible(true);
+ this.setVisible(true);
+ }
+ Color bg = new Color(null, 255, 255, 255);
+ this.setColoredPorts(bg);
+ setPortIndexVisualization(false);
+ }
+
+ private void setPortIndexVisualization(boolean visualization) {
+ if (this.getSource() != null) {
+ setPortIndexVisualization(this.getSource(), visualization);
+ }
+ if (this.getTarget() != null) {
+ setPortIndexVisualization(this.getTarget(), visualization);
+ }
+ }
+
+ private void setPortIndexVisualization(Port p, boolean visible) {
+ Shape f = null;
+ if (p.getFigure() != null) {
+ f = p.getFigure();
+ if (f instanceof InputPortFigure) {
+ InputPortFigure i = ((InputPortFigure) f);
+ i.setLabel("" + this.getMappingNumber());
+ i.getLabel().setVisible(visible);
+ }
+ if (f instanceof OutputPortFigure) {
+ OutputPortFigure o = ((OutputPortFigure) f);
+ o.setLabel("" + this.getMappingNumber());
+ o.getLabel().setVisible(visible);
+ }
+ }
+ }
+
+ public boolean isVisible() {
+ return visible;
+ }
+
+ public void setVisible(boolean visible) {
+ this.visible = visible;
+
+ }
+
+ protected void updateCRVisualization() {
+ CompositeRefactoring cr = ComrelUtil.getContainedCompositeRefactoring(this);
+ if (cr != null) {
+ cr.updateVisualization();
+ }
+ }
+
+} //PortMappingImpl
diff --git a/org.eclipse.emf.refactor.comrel/src/comrel/impl/QueuedUnitImpl.java b/org.eclipse.emf.refactor.comrel/src/comrel/impl/QueuedUnitImpl.java
new file mode 100644
index 0000000..62ab63f
--- /dev/null
+++ b/org.eclipse.emf.refactor.comrel/src/comrel/impl/QueuedUnitImpl.java
@@ -0,0 +1,177 @@
+/**
+ * <copyright>
+ * </copyright>
+ *
+ * $Id$
+ */
+package comrel.impl;
+
+import comrel.ComrelPackage;
+import comrel.QueuedUnit;
+
+import org.eclipse.emf.common.notify.Notification;
+
+import org.eclipse.emf.ecore.EClass;
+
+import org.eclipse.emf.ecore.impl.ENotificationImpl;
+
+/**
+ * <!-- begin-user-doc -->
+ * An implementation of the model object '<em><b>Queued Unit</b></em>'.
+ * <!-- end-user-doc -->
+ * <p>
+ * The following features are implemented:
+ * <ul>
+ * <li>{@link comrel.impl.QueuedUnitImpl#isStrict <em>Strict</em>}</li>
+ * </ul>
+ * </p>
+ *
+ * @generated
+ */
+public abstract class QueuedUnitImpl extends CompositeUnitImpl implements QueuedUnit {
+ /**
+ * The default value of the '{@link #isStrict() <em>Strict</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #isStrict()
+ * @generated
+ * @ordered
+ */
+ protected static final boolean STRICT_EDEFAULT = true;
+
+ /**
+ * The cached value of the '{@link #isStrict() <em>Strict</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #isStrict()
+ * @generated
+ * @ordered
+ */
+ protected boolean strict = STRICT_EDEFAULT;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected QueuedUnitImpl() {
+ super();
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ protected EClass eStaticClass() {
+ return ComrelPackage.Literals.QUEUED_UNIT;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public boolean isStrict() {
+ return strict;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public void setStrict(boolean newStrict) {
+ boolean oldStrict = strict;
+ strict = newStrict;
+ if (eNotificationRequired())
+ eNotify(new ENotificationImpl(this, Notification.SET, ComrelPackage.QUEUED_UNIT__STRICT, oldStrict, strict));
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public void init() {
+ // TODO: implement this method
+ // Ensure that you remove @generated or mark it @generated NOT
+ throw new UnsupportedOperationException();
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public Object eGet(int featureID, boolean resolve, boolean coreType) {
+ switch (featureID) {
+ case ComrelPackage.QUEUED_UNIT__STRICT:
+ return isStrict();
+ }
+ return super.eGet(featureID, resolve, coreType);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public void eSet(int featureID, Object newValue) {
+ switch (featureID) {
+ case ComrelPackage.QUEUED_UNIT__STRICT:
+ setStrict((Boolean)newValue);
+ return;
+ }
+ super.eSet(featureID, newValue);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public void eUnset(int featureID) {
+ switch (featureID) {
+ case ComrelPackage.QUEUED_UNIT__STRICT:
+ setStrict(STRICT_EDEFAULT);
+ return;
+ }
+ super.eUnset(featureID);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public boolean eIsSet(int featureID) {
+ switch (featureID) {
+ case ComrelPackage.QUEUED_UNIT__STRICT:
+ return strict != STRICT_EDEFAULT;
+ }
+ return super.eIsSet(featureID);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public String toString() {
+ if (eIsProxy()) return super.toString();
+
+ StringBuffer result = new StringBuffer(super.toString());
+ result.append(" (strict: ");
+ result.append(strict);
+ result.append(')');
+ return result.toString();
+ }
+
+} //QueuedUnitImpl
diff --git a/org.eclipse.emf.refactor.comrel/src/comrel/impl/RefactoringUnitImpl.java b/org.eclipse.emf.refactor.comrel/src/comrel/impl/RefactoringUnitImpl.java
new file mode 100644
index 0000000..fc266ab
--- /dev/null
+++ b/org.eclipse.emf.refactor.comrel/src/comrel/impl/RefactoringUnitImpl.java
@@ -0,0 +1,326 @@
+/**
+ * <copyright>
+ * </copyright>
+ *
+ * $Id$
+ */
+package comrel.impl;
+
+import org.eclipse.draw2d.RoundedRectangle;
+import org.eclipse.emf.common.notify.Notification;
+import org.eclipse.emf.common.util.EList;
+import org.eclipse.emf.ecore.EClass;
+import org.eclipse.emf.ecore.impl.ENotificationImpl;
+import org.eclipse.emf.ecore.impl.EObjectImpl;
+import org.eclipse.gmf.runtime.draw2d.ui.figures.WrappingLabel;
+
+import comrel.CompositeRefactoring;
+import comrel.ComrelPackage;
+import comrel.InputPort;
+import comrel.RefactoringUnit;
+import comrel.SequentialUnit;
+
+/**
+ * <!-- begin-user-doc -->
+ * An implementation of the model object '<em><b>Refactoring Unit</b></em>'.
+ * <!-- end-user-doc -->
+ * <p>
+ * The following features are implemented:
+ * <ul>
+ * <li>{@link comrel.impl.RefactoringUnitImpl#getName <em>Name</em>}</li>
+ * <li>{@link comrel.impl.RefactoringUnitImpl#getSeqExecutionOrder <em>Seq Execution Order</em>}</li>
+ * </ul>
+ * </p>
+ *
+ * @generated
+ */
+public abstract class RefactoringUnitImpl extends EObjectImpl implements RefactoringUnit {
+
+ public RoundedRectangle figure;
+
+ /**
+ * The default value of the '{@link #getName() <em>Name</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getName()
+ * @generated
+ * @ordered
+ */
+ protected static final String NAME_EDEFAULT = null;
+
+ /**
+ * The cached value of the '{@link #getName() <em>Name</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getName()
+ * @generated
+ * @ordered
+ */
+ protected String name = NAME_EDEFAULT;
+
+ /**
+ * The default value of the '{@link #getSeqExecutionOrder() <em>Seq Execution Order</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getSeqExecutionOrder()
+ * @generated
+ * @ordered
+ */
+ protected static final int SEQ_EXECUTION_ORDER_EDEFAULT = 0;
+
+ /**
+ * The cached value of the '{@link #getSeqExecutionOrder() <em>Seq Execution Order</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getSeqExecutionOrder()
+ * @generated
+ * @ordered
+ */
+ protected int seqExecutionOrder = SEQ_EXECUTION_ORDER_EDEFAULT;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected RefactoringUnitImpl() {
+ super();
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ protected EClass eStaticClass() {
+ return ComrelPackage.Literals.REFACTORING_UNIT;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public String getName() {
+ return name;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public void setName(String newName) {
+ this.setName(newName, true);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public int getSeqExecutionOrder() {
+ return seqExecutionOrder;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public void setSeqExecutionOrder(int newSeqExecutionOrder) {
+ int oldSeqExecutionOrder = seqExecutionOrder;
+ this.setSeqExecutionOrder(newSeqExecutionOrder,
+ this.eContainer() instanceof SequentialUnit);
+
+
+ // seqExecutionOrder = newSeqExecutionOrder;
+ if (eNotificationRequired())
+ eNotify(new ENotificationImpl(
+ this,
+ Notification.SET,
+ ComrelPackage.REFACTORING_UNIT__SEQ_EXECUTION_ORDER,
+ oldSeqExecutionOrder, seqExecutionOrder));
+ if(figure != null) {
+ setFigureLabel(":"+this.getName() + " - #" + this.getSeqExecutionOrder());
+ }
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EList<InputPort> getAllInputPorts() {
+ // TODO: implement this method
+ // Ensure that you remove @generated or mark it @generated NOT
+ throw new UnsupportedOperationException();
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public void setSeqExecutionOrder(int seqExecutionOrder, boolean superCall) {
+ if (superCall) {
+ SequentialUnit seqUnit = null;
+ if (this.eContainer() instanceof SequentialUnit) {
+ seqUnit = (SequentialUnit) this.eContainer();
+ }
+
+ if (seqUnit != null) {
+ int lastIndex = seqUnit.getRefactoringUnits().size();
+ boolean condition = seqExecutionOrder > 0;
+
+ condition &= lastIndex >= seqExecutionOrder;
+ if (condition) {
+ seqUnit.getRefactoringUnits().move(seqExecutionOrder - 1,
+ this);
+ } else {
+ if (seqExecutionOrder <= 0) {
+ seqUnit.getRefactoringUnits().move(0, this);
+ } else {
+ seqUnit.getRefactoringUnits().move(lastIndex - 1, this);
+ }
+ }
+ seqUnit.updateSeqExecutionOrder();
+ }
+ } else {
+ this.seqExecutionOrder = seqExecutionOrder;
+ }
+ if(figure != null) {
+ setFigureLabel(":"+this.getName() + " - #" + this.getSeqExecutionOrder());
+ }
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public void setName(String newName, boolean updateContainer) {
+ String oldName = name;
+ name = newName;
+ if (updateContainer) {
+ if (this.eContainer() != null) {
+ if (this.eContainer() instanceof CompositeRefactoring) {
+ ((CompositeRefactoring) this.eContainer()).setName(newName,
+ false);
+ }
+ }
+ }
+ if (eNotificationRequired())
+ eNotify(new ENotificationImpl(this, Notification.SET,
+ ComrelPackage.REFACTORING_UNIT__NAME, oldName,
+ name));
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public Object eGet(int featureID, boolean resolve, boolean coreType) {
+ switch (featureID) {
+ case ComrelPackage.REFACTORING_UNIT__NAME:
+ return getName();
+ case ComrelPackage.REFACTORING_UNIT__SEQ_EXECUTION_ORDER:
+ return getSeqExecutionOrder();
+ }
+ return super.eGet(featureID, resolve, coreType);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public void eSet(int featureID, Object newValue) {
+ switch (featureID) {
+ case ComrelPackage.REFACTORING_UNIT__NAME:
+ setName((String)newValue);
+ return;
+ case ComrelPackage.REFACTORING_UNIT__SEQ_EXECUTION_ORDER:
+ setSeqExecutionOrder((Integer)newValue);
+ return;
+ }
+ super.eSet(featureID, newValue);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public void eUnset(int featureID) {
+ switch (featureID) {
+ case ComrelPackage.REFACTORING_UNIT__NAME:
+ setName(NAME_EDEFAULT);
+ return;
+ case ComrelPackage.REFACTORING_UNIT__SEQ_EXECUTION_ORDER:
+ setSeqExecutionOrder(SEQ_EXECUTION_ORDER_EDEFAULT);
+ return;
+ }
+ super.eUnset(featureID);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public boolean eIsSet(int featureID) {
+ switch (featureID) {
+ case ComrelPackage.REFACTORING_UNIT__NAME:
+ return NAME_EDEFAULT == null ? name != null : !NAME_EDEFAULT.equals(name);
+ case ComrelPackage.REFACTORING_UNIT__SEQ_EXECUTION_ORDER:
+ return seqExecutionOrder != SEQ_EXECUTION_ORDER_EDEFAULT;
+ }
+ return super.eIsSet(featureID);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public String toString() {
+ if (eIsProxy()) return super.toString();
+
+ StringBuffer result = new StringBuffer(super.toString());
+ result.append(" (name: ");
+ result.append(name);
+ result.append(", seqExecutionOrder: ");
+ result.append(seqExecutionOrder);
+ result.append(')');
+ return result.toString();
+ }
+
+ public RoundedRectangle getFigure() {
+ return figure;
+ }
+
+ public void setFigure(RoundedRectangle figure) {
+ this.figure = figure;
+ setFigureLabel(":"+this.getDesc() + " - #" + this.getSeqExecutionOrder());
+ }
+
+ public String getDesc(){
+ return "";
+ }
+
+ public void setFigureLabel(String text) {
+ if(figure!=null){
+ WrappingLabel label = (WrappingLabel) figure.getChildren().get(0);
+ label.setText(text);
+ }
+ }
+
+} //RefactoringUnitImpl
diff --git a/org.eclipse.emf.refactor.comrel/src/comrel/impl/SequentialUnitImpl.java b/org.eclipse.emf.refactor.comrel/src/comrel/impl/SequentialUnitImpl.java
new file mode 100644
index 0000000..05afe69
--- /dev/null
+++ b/org.eclipse.emf.refactor.comrel/src/comrel/impl/SequentialUnitImpl.java
@@ -0,0 +1,404 @@
+/**
+ * <copyright>
+ * </copyright>
+ *
+ * $Id$
+ */
+package comrel.impl;
+
+import java.util.Collection;
+
+import org.eclipse.emf.common.notify.Notification;
+import org.eclipse.emf.common.notify.NotificationChain;
+import org.eclipse.emf.common.util.EList;
+import org.eclipse.emf.ecore.EClass;
+import org.eclipse.emf.ecore.InternalEObject;
+import org.eclipse.emf.ecore.impl.ENotificationImpl;
+import org.eclipse.emf.ecore.util.EObjectContainmentEList;
+import org.eclipse.emf.ecore.util.InternalEList;
+
+import comrel.ComrelPackage;
+import comrel.HelperUnit;
+import comrel.InputPort;
+import comrel.RefactoringUnit;
+import comrel.SequentialUnit;
+
+/**
+ * <!-- begin-user-doc -->
+ * An implementation of the model object '<em><b>Sequential Unit</b></em>'.
+ * <!-- end-user-doc -->
+ * <p>
+ * The following features are implemented:
+ * <ul>
+ * <li>{@link comrel.impl.SequentialUnitImpl#getHelperUnits <em>Helper Units</em>}</li>
+ * <li>{@link comrel.impl.SequentialUnitImpl#getRefactoringUnits <em>Refactoring Units</em>}</li>
+ * <li>{@link comrel.impl.SequentialUnitImpl#getInputPorts <em>Input Ports</em>}</li>
+ * <li>{@link comrel.impl.SequentialUnitImpl#isStrict <em>Strict</em>}</li>
+ * <li>{@link comrel.impl.SequentialUnitImpl#getType <em>Type</em>}</li>
+ * <li>{@link comrel.impl.SequentialUnitImpl#getLblStrict <em>Lbl Strict</em>}</li>
+ * </ul>
+ * </p>
+ *
+ * @generated
+ */
+public class SequentialUnitImpl extends CompositeUnitImpl implements SequentialUnit {
+ /**
+ * The cached value of the '{@link #getHelperUnits() <em>Helper Units</em>}' containment reference list.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getHelperUnits()
+ * @generated
+ * @ordered
+ */
+ protected EList<HelperUnit> helperUnits;
+
+ /**
+ * The cached value of the '{@link #getRefactoringUnits() <em>Refactoring Units</em>}' containment reference list.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getRefactoringUnits()
+ * @generated
+ * @ordered
+ */
+ protected EList<RefactoringUnit> refactoringUnits;
+
+ /**
+ * The cached value of the '{@link #getInputPorts() <em>Input Ports</em>}' containment reference list.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getInputPorts()
+ * @generated
+ * @ordered
+ */
+ protected EList<InputPort> inputPorts;
+
+ /**
+ * The default value of the '{@link #isStrict() <em>Strict</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #isStrict()
+ * @generated
+ * @ordered
+ */
+ protected static final boolean STRICT_EDEFAULT = true;
+
+ /**
+ * The cached value of the '{@link #isStrict() <em>Strict</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #isStrict()
+ * @generated
+ * @ordered
+ */
+ protected boolean strict = STRICT_EDEFAULT;
+
+ /**
+ * The default value of the '{@link #getType() <em>Type</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getType()
+ * @generated
+ * @ordered
+ */
+ protected static final String TYPE_EDEFAULT = "Sequential Unit";
+
+ /**
+ * The cached value of the '{@link #getType() <em>Type</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getType()
+ * @generated
+ * @ordered
+ */
+ protected String type = TYPE_EDEFAULT;
+
+ /**
+ * The default value of the '{@link #getLblStrict() <em>Lbl Strict</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getLblStrict()
+ * @generated
+ * @ordered
+ */
+ protected static final String LBL_STRICT_EDEFAULT = "strict";
+
+ /**
+ * The cached value of the '{@link #getLblStrict() <em>Lbl Strict</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getLblStrict()
+ * @generated
+ * @ordered
+ */
+ protected String lblStrict = LBL_STRICT_EDEFAULT;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected SequentialUnitImpl() {
+ super();
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ protected EClass eStaticClass() {
+ return ComrelPackage.Literals.SEQUENTIAL_UNIT;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EList<HelperUnit> getHelperUnits() {
+ if (helperUnits == null) {
+ helperUnits = new EObjectContainmentEList<HelperUnit>(HelperUnit.class, this, ComrelPackage.SEQUENTIAL_UNIT__HELPER_UNITS);
+ }
+ return helperUnits;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EList<RefactoringUnit> getRefactoringUnits() {
+ if (refactoringUnits == null) {
+ refactoringUnits = new EObjectContainmentEList<RefactoringUnit>(RefactoringUnit.class, this, ComrelPackage.SEQUENTIAL_UNIT__REFACTORING_UNITS);
+ }
+ return refactoringUnits;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EList<InputPort> getInputPorts() {
+ if (inputPorts == null) {
+ inputPorts = new EObjectContainmentEList<InputPort>(InputPort.class, this, ComrelPackage.SEQUENTIAL_UNIT__INPUT_PORTS);
+ }
+ return inputPorts;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public boolean isStrict() {
+ return strict;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated NOT
+ */
+ public void setStrict(boolean newStrict) {
+ boolean oldStrict = strict;
+ strict = newStrict;
+ if (eNotificationRequired())
+ eNotify(new ENotificationImpl(this, Notification.SET, ComrelPackage.SEQUENTIAL_UNIT__STRICT, oldStrict, strict));
+ if (newStrict) setLblStrict("strict");
+ else setLblStrict("non strict");
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public String getType() {
+ return type;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public String getLblStrict() {
+ return lblStrict;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public void setLblStrict(String newLblStrict) {
+ String oldLblStrict = lblStrict;
+ lblStrict = newLblStrict;
+ if (eNotificationRequired())
+ eNotify(new ENotificationImpl(this, Notification.SET, ComrelPackage.SEQUENTIAL_UNIT__LBL_STRICT, oldLblStrict, lblStrict));
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public void updateSeqExecutionOrder() {
+ int index;
+ for(RefactoringUnit unit : this.getRefactoringUnits()) {
+ index = this.getRefactoringUnits().indexOf(unit)+1;
+ unit.setSeqExecutionOrder(index,false);
+ }
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public NotificationChain eInverseRemove(InternalEObject otherEnd, int featureID, NotificationChain msgs) {
+ switch (featureID) {
+ case ComrelPackage.SEQUENTIAL_UNIT__HELPER_UNITS:
+ return ((InternalEList<?>)getHelperUnits()).basicRemove(otherEnd, msgs);
+ case ComrelPackage.SEQUENTIAL_UNIT__REFACTORING_UNITS:
+ return ((InternalEList<?>)getRefactoringUnits()).basicRemove(otherEnd, msgs);
+ case ComrelPackage.SEQUENTIAL_UNIT__INPUT_PORTS:
+ return ((InternalEList<?>)getInputPorts()).basicRemove(otherEnd, msgs);
+ }
+ return super.eInverseRemove(otherEnd, featureID, msgs);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public Object eGet(int featureID, boolean resolve, boolean coreType) {
+ switch (featureID) {
+ case ComrelPackage.SEQUENTIAL_UNIT__HELPER_UNITS:
+ return getHelperUnits();
+ case ComrelPackage.SEQUENTIAL_UNIT__REFACTORING_UNITS:
+ return getRefactoringUnits();
+ case ComrelPackage.SEQUENTIAL_UNIT__INPUT_PORTS:
+ return getInputPorts();
+ case ComrelPackage.SEQUENTIAL_UNIT__STRICT:
+ return isStrict();
+ case ComrelPackage.SEQUENTIAL_UNIT__TYPE:
+ return getType();
+ case ComrelPackage.SEQUENTIAL_UNIT__LBL_STRICT:
+ return getLblStrict();
+ }
+ return super.eGet(featureID, resolve, coreType);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @SuppressWarnings("unchecked")
+ @Override
+ public void eSet(int featureID, Object newValue) {
+ switch (featureID) {
+ case ComrelPackage.SEQUENTIAL_UNIT__HELPER_UNITS:
+ getHelperUnits().clear();
+ getHelperUnits().addAll((Collection<? extends HelperUnit>)newValue);
+ return;
+ case ComrelPackage.SEQUENTIAL_UNIT__REFACTORING_UNITS:
+ getRefactoringUnits().clear();
+ getRefactoringUnits().addAll((Collection<? extends RefactoringUnit>)newValue);
+ return;
+ case ComrelPackage.SEQUENTIAL_UNIT__INPUT_PORTS:
+ getInputPorts().clear();
+ getInputPorts().addAll((Collection<? extends InputPort>)newValue);
+ return;
+ case ComrelPackage.SEQUENTIAL_UNIT__STRICT:
+ setStrict((Boolean)newValue);
+ return;
+ case ComrelPackage.SEQUENTIAL_UNIT__LBL_STRICT:
+ setLblStrict((String)newValue);
+ return;
+ }
+ super.eSet(featureID, newValue);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public void eUnset(int featureID) {
+ switch (featureID) {
+ case ComrelPackage.SEQUENTIAL_UNIT__HELPER_UNITS:
+ getHelperUnits().clear();
+ return;
+ case ComrelPackage.SEQUENTIAL_UNIT__REFACTORING_UNITS:
+ getRefactoringUnits().clear();
+ return;
+ case ComrelPackage.SEQUENTIAL_UNIT__INPUT_PORTS:
+ getInputPorts().clear();
+ return;
+ case ComrelPackage.SEQUENTIAL_UNIT__STRICT:
+ setStrict(STRICT_EDEFAULT);
+ return;
+ case ComrelPackage.SEQUENTIAL_UNIT__LBL_STRICT:
+ setLblStrict(LBL_STRICT_EDEFAULT);
+ return;
+ }
+ super.eUnset(featureID);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public boolean eIsSet(int featureID) {
+ switch (featureID) {
+ case ComrelPackage.SEQUENTIAL_UNIT__HELPER_UNITS:
+ return helperUnits != null && !helperUnits.isEmpty();
+ case ComrelPackage.SEQUENTIAL_UNIT__REFACTORING_UNITS:
+ return refactoringUnits != null && !refactoringUnits.isEmpty();
+ case ComrelPackage.SEQUENTIAL_UNIT__INPUT_PORTS:
+ return inputPorts != null && !inputPorts.isEmpty();
+ case ComrelPackage.SEQUENTIAL_UNIT__STRICT:
+ return strict != STRICT_EDEFAULT;
+ case ComrelPackage.SEQUENTIAL_UNIT__TYPE:
+ return TYPE_EDEFAULT == null ? type != null : !TYPE_EDEFAULT.equals(type);
+ case ComrelPackage.SEQUENTIAL_UNIT__LBL_STRICT:
+ return LBL_STRICT_EDEFAULT == null ? lblStrict != null : !LBL_STRICT_EDEFAULT.equals(lblStrict);
+ }
+ return super.eIsSet(featureID);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public String toString() {
+ if (eIsProxy()) return super.toString();
+
+ StringBuffer result = new StringBuffer(super.toString());
+ result.append(" (strict: ");
+ result.append(strict);
+ result.append(", type: ");
+ result.append(type);
+ result.append(", lblStrict: ");
+ result.append(lblStrict);
+ result.append(')');
+ return result.toString();
+ }
+
+ public EList<InputPort> getAllInputPorts() {
+ return this.getInputPorts();
+ }
+
+} //SequentialUnitImpl
diff --git a/org.eclipse.emf.refactor.comrel/src/comrel/impl/SingleFeatureHelperImpl.java b/org.eclipse.emf.refactor.comrel/src/comrel/impl/SingleFeatureHelperImpl.java
new file mode 100644
index 0000000..25bcb39
--- /dev/null
+++ b/org.eclipse.emf.refactor.comrel/src/comrel/impl/SingleFeatureHelperImpl.java
@@ -0,0 +1,179 @@
+/**
+ * <copyright>
+ * </copyright>
+ *
+ * $Id$
+ */
+package comrel.impl;
+
+import comrel.ComrelPackage;
+import comrel.SingleFeatureHelper;
+import comrel.SingleOutputPort;
+
+import org.eclipse.emf.common.notify.Notification;
+import org.eclipse.emf.common.notify.NotificationChain;
+
+import org.eclipse.emf.ecore.EClass;
+import org.eclipse.emf.ecore.InternalEObject;
+
+import org.eclipse.emf.ecore.impl.ENotificationImpl;
+
+/**
+ * <!-- begin-user-doc -->
+ * An implementation of the model object '<em><b>Single Feature Helper</b></em>'.
+ * <!-- end-user-doc -->
+ * <p>
+ * The following features are implemented:
+ * <ul>
+ * <li>{@link comrel.impl.SingleFeatureHelperImpl#getOutputPort <em>Output Port</em>}</li>
+ * </ul>
+ * </p>
+ *
+ * @generated
+ */
+public class SingleFeatureHelperImpl extends FeatureHelperImpl implements SingleFeatureHelper {
+ /**
+ * The cached value of the '{@link #getOutputPort() <em>Output Port</em>}' containment reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getOutputPort()
+ * @generated
+ * @ordered
+ */
+ protected SingleOutputPort outputPort;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected SingleFeatureHelperImpl() {
+ super();
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ protected EClass eStaticClass() {
+ return ComrelPackage.Literals.SINGLE_FEATURE_HELPER;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public SingleOutputPort getOutputPort() {
+ return outputPort;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public NotificationChain basicSetOutputPort(SingleOutputPort newOutputPort, NotificationChain msgs) {
+ SingleOutputPort oldOutputPort = outputPort;
+ outputPort = newOutputPort;
+ if (eNotificationRequired()) {
+ ENotificationImpl notification = new ENotificationImpl(this, Notification.SET, ComrelPackage.SINGLE_FEATURE_HELPER__OUTPUT_PORT, oldOutputPort, newOutputPort);
+ if (msgs == null) msgs = notification; else msgs.add(notification);
+ }
+ return msgs;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public void setOutputPort(SingleOutputPort newOutputPort) {
+ if (newOutputPort != outputPort) {
+ NotificationChain msgs = null;
+ if (outputPort != null)
+ msgs = ((InternalEObject)outputPort).eInverseRemove(this, EOPPOSITE_FEATURE_BASE - ComrelPackage.SINGLE_FEATURE_HELPER__OUTPUT_PORT, null, msgs);
+ if (newOutputPort != null)
+ msgs = ((InternalEObject)newOutputPort).eInverseAdd(this, EOPPOSITE_FEATURE_BASE - ComrelPackage.SINGLE_FEATURE_HELPER__OUTPUT_PORT, null, msgs);
+ msgs = basicSetOutputPort(newOutputPort, msgs);
+ if (msgs != null) msgs.dispatch();
+ }
+ else if (eNotificationRequired())
+ eNotify(new ENotificationImpl(this, Notification.SET, ComrelPackage.SINGLE_FEATURE_HELPER__OUTPUT_PORT, newOutputPort, newOutputPort));
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public NotificationChain eInverseRemove(InternalEObject otherEnd, int featureID, NotificationChain msgs) {
+ switch (featureID) {
+ case ComrelPackage.SINGLE_FEATURE_HELPER__OUTPUT_PORT:
+ return basicSetOutputPort(null, msgs);
+ }
+ return super.eInverseRemove(otherEnd, featureID, msgs);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public Object eGet(int featureID, boolean resolve, boolean coreType) {
+ switch (featureID) {
+ case ComrelPackage.SINGLE_FEATURE_HELPER__OUTPUT_PORT:
+ return getOutputPort();
+ }
+ return super.eGet(featureID, resolve, coreType);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public void eSet(int featureID, Object newValue) {
+ switch (featureID) {
+ case ComrelPackage.SINGLE_FEATURE_HELPER__OUTPUT_PORT:
+ setOutputPort((SingleOutputPort)newValue);
+ return;
+ }
+ super.eSet(featureID, newValue);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public void eUnset(int featureID) {
+ switch (featureID) {
+ case ComrelPackage.SINGLE_FEATURE_HELPER__OUTPUT_PORT:
+ setOutputPort((SingleOutputPort)null);
+ return;
+ }
+ super.eUnset(featureID);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public boolean eIsSet(int featureID) {
+ switch (featureID) {
+ case ComrelPackage.SINGLE_FEATURE_HELPER__OUTPUT_PORT:
+ return outputPort != null;
+ }
+ return super.eIsSet(featureID);
+ }
+
+} //SingleFeatureHelperImpl
diff --git a/org.eclipse.emf.refactor.comrel/src/comrel/impl/SingleFeatureUnitImpl.java b/org.eclipse.emf.refactor.comrel/src/comrel/impl/SingleFeatureUnitImpl.java
new file mode 100644
index 0000000..d7766d6
--- /dev/null
+++ b/org.eclipse.emf.refactor.comrel/src/comrel/impl/SingleFeatureUnitImpl.java
@@ -0,0 +1,422 @@
+/**
+ * <copyright>
+ * </copyright>
+ *
+ * $Id$
+ */
+package comrel.impl;
+
+import java.util.Collection;
+
+import org.eclipse.emf.common.notify.Notification;
+import org.eclipse.emf.common.notify.NotificationChain;
+import org.eclipse.emf.common.util.EList;
+import org.eclipse.emf.ecore.EClass;
+import org.eclipse.emf.ecore.InternalEObject;
+import org.eclipse.emf.ecore.impl.ENotificationImpl;
+import org.eclipse.emf.ecore.util.EObjectContainmentEList;
+import org.eclipse.emf.ecore.util.InternalEList;
+
+import comrel.ComrelFactory;
+import comrel.ComrelPackage;
+import comrel.MultiInputPort;
+import comrel.SingleFeatureHelper;
+import comrel.SingleFeatureUnit;
+import comrel.SingleInputPort;
+import comrel.SingleOutputPort;
+import comrel.util.ComrelUtil;
+
+/**
+ * <!-- begin-user-doc -->
+ * An implementation of the model object '<em><b>Single Feature Unit</b></em>'.
+ * <!-- end-user-doc -->
+ * <p>
+ * The following features are implemented:
+ * <ul>
+ * <li>{@link comrel.impl.SingleFeatureUnitImpl#getInputPort <em>Input Port</em>}</li>
+ * <li>{@link comrel.impl.SingleFeatureUnitImpl#getSecondaryInputPorts <em>Secondary Input Ports</em>}</li>
+ * <li>{@link comrel.impl.SingleFeatureUnitImpl#getOutputPort <em>Output Port</em>}</li>
+ * <li>{@link comrel.impl.SingleFeatureUnitImpl#getSingleFeatureHelper <em>Single Feature Helper</em>}</li>
+ * <li>{@link comrel.impl.SingleFeatureUnitImpl#getType <em>Type</em>}</li>
+ * </ul>
+ * </p>
+ *
+ * @generated
+ */
+public class SingleFeatureUnitImpl extends FeatureUnitImpl implements SingleFeatureUnit {
+ /**
+ * The cached value of the '{@link #getInputPort() <em>Input Port</em>}' containment reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getInputPort()
+ * @generated
+ * @ordered
+ */
+ protected SingleInputPort inputPort;
+
+ /**
+ * The cached value of the '{@link #getSecondaryInputPorts() <em>Secondary Input Ports</em>}' containment reference list.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getSecondaryInputPorts()
+ * @generated
+ * @ordered
+ */
+ protected EList<MultiInputPort> secondaryInputPorts;
+
+ /**
+ * The cached value of the '{@link #getOutputPort() <em>Output Port</em>}' containment reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getOutputPort()
+ * @generated
+ * @ordered
+ */
+ protected SingleOutputPort outputPort;
+
+ /**
+ * The cached value of the '{@link #getSingleFeatureHelper() <em>Single Feature Helper</em>}' reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getSingleFeatureHelper()
+ * @generated
+ * @ordered
+ */
+ protected SingleFeatureHelper singleFeatureHelper;
+
+ /**
+ * The default value of the '{@link #getType() <em>Type</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getType()
+ * @generated
+ * @ordered
+ */
+ protected static final String TYPE_EDEFAULT = "Single Feature Unit";
+
+ /**
+ * The cached value of the '{@link #getType() <em>Type</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getType()
+ * @generated
+ * @ordered
+ */
+ protected String type = TYPE_EDEFAULT;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected SingleFeatureUnitImpl() {
+ super();
+ }
+
+ public SingleFeatureUnitImpl(SingleFeatureHelper helper) {
+ this.singleFeatureHelper = helper;
+ this.name = helper.getName();
+ this.helperUnitId = helper.getHelperId();
+ this.description = helper.getDescription();
+ this.namespaceUri = helper.getNamespaceUri();
+ SingleInputPort inputPort = ComrelFactory.eINSTANCE.createSingleInputPort();
+ SingleOutputPort outputPort = ComrelFactory.eINSTANCE.createSingleOutputPort();
+ inputPort.setDescription(helper.getInputPort().getDescription());
+ inputPort.setName(helper.getInputPort().getName());
+ inputPort.setType(helper.getInputPort().getType());
+
+ this.setInputPort(inputPort);
+ outputPort.setDescription(helper.getOutputPort().getDescription());
+ outputPort.setName(helper.getOutputPort().getName());
+ outputPort.setType(helper.getOutputPort().getType());
+
+ this.setOutputPort(outputPort);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ protected EClass eStaticClass() {
+ return ComrelPackage.Literals.SINGLE_FEATURE_UNIT;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public SingleInputPort getInputPort() {
+ return inputPort;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public NotificationChain basicSetInputPort(SingleInputPort newInputPort, NotificationChain msgs) {
+ SingleInputPort oldInputPort = inputPort;
+ inputPort = newInputPort;
+ if (eNotificationRequired()) {
+ ENotificationImpl notification = new ENotificationImpl(this, Notification.SET, ComrelPackage.SINGLE_FEATURE_UNIT__INPUT_PORT, oldInputPort, newInputPort);
+ if (msgs == null) msgs = notification; else msgs.add(notification);
+ }
+ return msgs;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public void setInputPort(SingleInputPort newInputPort) {
+ if (newInputPort != inputPort) {
+ NotificationChain msgs = null;
+ if (inputPort != null)
+ msgs = ((InternalEObject)inputPort).eInverseRemove(this, EOPPOSITE_FEATURE_BASE - ComrelPackage.SINGLE_FEATURE_UNIT__INPUT_PORT, null, msgs);
+ if (newInputPort != null)
+ msgs = ((InternalEObject)newInputPort).eInverseAdd(this, EOPPOSITE_FEATURE_BASE - ComrelPackage.SINGLE_FEATURE_UNIT__INPUT_PORT, null, msgs);
+ msgs = basicSetInputPort(newInputPort, msgs);
+ if (msgs != null) msgs.dispatch();
+ }
+ else if (eNotificationRequired())
+ eNotify(new ENotificationImpl(this, Notification.SET, ComrelPackage.SINGLE_FEATURE_UNIT__INPUT_PORT, newInputPort, newInputPort));
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EList<MultiInputPort> getSecondaryInputPorts() {
+ if (secondaryInputPorts == null) {
+ secondaryInputPorts = new EObjectContainmentEList<MultiInputPort>(MultiInputPort.class, this, ComrelPackage.SINGLE_FEATURE_UNIT__SECONDARY_INPUT_PORTS);
+ }
+ return secondaryInputPorts;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public SingleOutputPort getOutputPort() {
+ return outputPort;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public NotificationChain basicSetOutputPort(SingleOutputPort newOutputPort, NotificationChain msgs) {
+ SingleOutputPort oldOutputPort = outputPort;
+ outputPort = newOutputPort;
+ if (eNotificationRequired()) {
+ ENotificationImpl notification = new ENotificationImpl(this, Notification.SET, ComrelPackage.SINGLE_FEATURE_UNIT__OUTPUT_PORT, oldOutputPort, newOutputPort);
+ if (msgs == null) msgs = notification; else msgs.add(notification);
+ }
+ return msgs;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public void setOutputPort(SingleOutputPort newOutputPort) {
+ if (newOutputPort != outputPort) {
+ NotificationChain msgs = null;
+ if (outputPort != null)
+ msgs = ((InternalEObject)outputPort).eInverseRemove(this, EOPPOSITE_FEATURE_BASE - ComrelPackage.SINGLE_FEATURE_UNIT__OUTPUT_PORT, null, msgs);
+ if (newOutputPort != null)
+ msgs = ((InternalEObject)newOutputPort).eInverseAdd(this, EOPPOSITE_FEATURE_BASE - ComrelPackage.SINGLE_FEATURE_UNIT__OUTPUT_PORT, null, msgs);
+ msgs = basicSetOutputPort(newOutputPort, msgs);
+ if (msgs != null) msgs.dispatch();
+ }
+ else if (eNotificationRequired())
+ eNotify(new ENotificationImpl(this, Notification.SET, ComrelPackage.SINGLE_FEATURE_UNIT__OUTPUT_PORT, newOutputPort, newOutputPort));
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public SingleFeatureHelper getSingleFeatureHelper() {
+ if (singleFeatureHelper != null && singleFeatureHelper.eIsProxy()) {
+ InternalEObject oldSingleFeatureHelper = (InternalEObject)singleFeatureHelper;
+ singleFeatureHelper = (SingleFeatureHelper)eResolveProxy(oldSingleFeatureHelper);
+ if (singleFeatureHelper != oldSingleFeatureHelper) {
+ if (eNotificationRequired())
+ eNotify(new ENotificationImpl(this, Notification.RESOLVE, ComrelPackage.SINGLE_FEATURE_UNIT__SINGLE_FEATURE_HELPER, oldSingleFeatureHelper, singleFeatureHelper));
+ }
+ }
+ return singleFeatureHelper;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public SingleFeatureHelper basicGetSingleFeatureHelper() {
+ return singleFeatureHelper;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public void setSingleFeatureHelper(SingleFeatureHelper newSingleFeatureHelper) {
+ if(ComrelUtil.objectIsSettable(this) || this.singleFeatureHelper==null){
+ SingleFeatureHelper oldSingleFeatureHelper = singleFeatureHelper;
+ singleFeatureHelper = newSingleFeatureHelper;
+ if (eNotificationRequired())
+ eNotify(new ENotificationImpl(this, Notification.SET, ComrelPackage.SINGLE_FEATURE_UNIT__SINGLE_FEATURE_HELPER, oldSingleFeatureHelper, singleFeatureHelper));
+ }
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public String getType() {
+ return type;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public NotificationChain eInverseRemove(InternalEObject otherEnd, int featureID, NotificationChain msgs) {
+ switch (featureID) {
+ case ComrelPackage.SINGLE_FEATURE_UNIT__INPUT_PORT:
+ return basicSetInputPort(null, msgs);
+ case ComrelPackage.SINGLE_FEATURE_UNIT__SECONDARY_INPUT_PORTS:
+ return ((InternalEList<?>)getSecondaryInputPorts()).basicRemove(otherEnd, msgs);
+ case ComrelPackage.SINGLE_FEATURE_UNIT__OUTPUT_PORT:
+ return basicSetOutputPort(null, msgs);
+ }
+ return super.eInverseRemove(otherEnd, featureID, msgs);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public Object eGet(int featureID, boolean resolve, boolean coreType) {
+ switch (featureID) {
+ case ComrelPackage.SINGLE_FEATURE_UNIT__INPUT_PORT:
+ return getInputPort();
+ case ComrelPackage.SINGLE_FEATURE_UNIT__SECONDARY_INPUT_PORTS:
+ return getSecondaryInputPorts();
+ case ComrelPackage.SINGLE_FEATURE_UNIT__OUTPUT_PORT:
+ return getOutputPort();
+ case ComrelPackage.SINGLE_FEATURE_UNIT__SINGLE_FEATURE_HELPER:
+ if (resolve) return getSingleFeatureHelper();
+ return basicGetSingleFeatureHelper();
+ case ComrelPackage.SINGLE_FEATURE_UNIT__TYPE:
+ return getType();
+ }
+ return super.eGet(featureID, resolve, coreType);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @SuppressWarnings("unchecked")
+ @Override
+ public void eSet(int featureID, Object newValue) {
+ switch (featureID) {
+ case ComrelPackage.SINGLE_FEATURE_UNIT__INPUT_PORT:
+ setInputPort((SingleInputPort)newValue);
+ return;
+ case ComrelPackage.SINGLE_FEATURE_UNIT__SECONDARY_INPUT_PORTS:
+ getSecondaryInputPorts().clear();
+ getSecondaryInputPorts().addAll((Collection<? extends MultiInputPort>)newValue);
+ return;
+ case ComrelPackage.SINGLE_FEATURE_UNIT__OUTPUT_PORT:
+ setOutputPort((SingleOutputPort)newValue);
+ return;
+ case ComrelPackage.SINGLE_FEATURE_UNIT__SINGLE_FEATURE_HELPER:
+ setSingleFeatureHelper((SingleFeatureHelper)newValue);
+ return;
+ }
+ super.eSet(featureID, newValue);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public void eUnset(int featureID) {
+ switch (featureID) {
+ case ComrelPackage.SINGLE_FEATURE_UNIT__INPUT_PORT:
+ setInputPort((SingleInputPort)null);
+ return;
+ case ComrelPackage.SINGLE_FEATURE_UNIT__SECONDARY_INPUT_PORTS:
+ getSecondaryInputPorts().clear();
+ return;
+ case ComrelPackage.SINGLE_FEATURE_UNIT__OUTPUT_PORT:
+ setOutputPort((SingleOutputPort)null);
+ return;
+ case ComrelPackage.SINGLE_FEATURE_UNIT__SINGLE_FEATURE_HELPER:
+ setSingleFeatureHelper((SingleFeatureHelper)null);
+ return;
+ }
+ super.eUnset(featureID);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public boolean eIsSet(int featureID) {
+ switch (featureID) {
+ case ComrelPackage.SINGLE_FEATURE_UNIT__INPUT_PORT:
+ return inputPort != null;
+ case ComrelPackage.SINGLE_FEATURE_UNIT__SECONDARY_INPUT_PORTS:
+ return secondaryInputPorts != null && !secondaryInputPorts.isEmpty();
+ case ComrelPackage.SINGLE_FEATURE_UNIT__OUTPUT_PORT:
+ return outputPort != null;
+ case ComrelPackage.SINGLE_FEATURE_UNIT__SINGLE_FEATURE_HELPER:
+ return singleFeatureHelper != null;
+ case ComrelPackage.SINGLE_FEATURE_UNIT__TYPE:
+ return TYPE_EDEFAULT == null ? type != null : !TYPE_EDEFAULT.equals(type);
+ }
+ return super.eIsSet(featureID);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public String toString() {
+ if (eIsProxy()) return super.toString();
+
+ StringBuffer result = new StringBuffer(super.toString());
+ result.append(" (type: ");
+ result.append(type);
+ result.append(')');
+ return result.toString();
+ }
+
+} //SingleFeatureUnitImpl
diff --git a/org.eclipse.emf.refactor.comrel/src/comrel/impl/SingleFilterHelperImpl.java b/org.eclipse.emf.refactor.comrel/src/comrel/impl/SingleFilterHelperImpl.java
new file mode 100644
index 0000000..8481390
--- /dev/null
+++ b/org.eclipse.emf.refactor.comrel/src/comrel/impl/SingleFilterHelperImpl.java
@@ -0,0 +1,179 @@
+/**
+ * <copyright>
+ * </copyright>
+ *
+ * $Id$
+ */
+package comrel.impl;
+
+import comrel.ComrelPackage;
+import comrel.SingleFilterHelper;
+import comrel.SingleOutputPort;
+
+import org.eclipse.emf.common.notify.Notification;
+import org.eclipse.emf.common.notify.NotificationChain;
+
+import org.eclipse.emf.ecore.EClass;
+import org.eclipse.emf.ecore.InternalEObject;
+
+import org.eclipse.emf.ecore.impl.ENotificationImpl;
+
+/**
+ * <!-- begin-user-doc -->
+ * An implementation of the model object '<em><b>Single Filter Helper</b></em>'.
+ * <!-- end-user-doc -->
+ * <p>
+ * The following features are implemented:
+ * <ul>
+ * <li>{@link comrel.impl.SingleFilterHelperImpl#getOutputPort <em>Output Port</em>}</li>
+ * </ul>
+ * </p>
+ *
+ * @generated
+ */
+public class SingleFilterHelperImpl extends FilterHelperImpl implements SingleFilterHelper {
+ /**
+ * The cached value of the '{@link #getOutputPort() <em>Output Port</em>}' containment reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getOutputPort()
+ * @generated
+ * @ordered
+ */
+ protected SingleOutputPort outputPort;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected SingleFilterHelperImpl() {
+ super();
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ protected EClass eStaticClass() {
+ return ComrelPackage.Literals.SINGLE_FILTER_HELPER;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public SingleOutputPort getOutputPort() {
+ return outputPort;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public NotificationChain basicSetOutputPort(SingleOutputPort newOutputPort, NotificationChain msgs) {
+ SingleOutputPort oldOutputPort = outputPort;
+ outputPort = newOutputPort;
+ if (eNotificationRequired()) {
+ ENotificationImpl notification = new ENotificationImpl(this, Notification.SET, ComrelPackage.SINGLE_FILTER_HELPER__OUTPUT_PORT, oldOutputPort, newOutputPort);
+ if (msgs == null) msgs = notification; else msgs.add(notification);
+ }
+ return msgs;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public void setOutputPort(SingleOutputPort newOutputPort) {
+ if (newOutputPort != outputPort) {
+ NotificationChain msgs = null;
+ if (outputPort != null)
+ msgs = ((InternalEObject)outputPort).eInverseRemove(this, EOPPOSITE_FEATURE_BASE - ComrelPackage.SINGLE_FILTER_HELPER__OUTPUT_PORT, null, msgs);
+ if (newOutputPort != null)
+ msgs = ((InternalEObject)newOutputPort).eInverseAdd(this, EOPPOSITE_FEATURE_BASE - ComrelPackage.SINGLE_FILTER_HELPER__OUTPUT_PORT, null, msgs);
+ msgs = basicSetOutputPort(newOutputPort, msgs);
+ if (msgs != null) msgs.dispatch();
+ }
+ else if (eNotificationRequired())
+ eNotify(new ENotificationImpl(this, Notification.SET, ComrelPackage.SINGLE_FILTER_HELPER__OUTPUT_PORT, newOutputPort, newOutputPort));
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public NotificationChain eInverseRemove(InternalEObject otherEnd, int featureID, NotificationChain msgs) {
+ switch (featureID) {
+ case ComrelPackage.SINGLE_FILTER_HELPER__OUTPUT_PORT:
+ return basicSetOutputPort(null, msgs);
+ }
+ return super.eInverseRemove(otherEnd, featureID, msgs);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public Object eGet(int featureID, boolean resolve, boolean coreType) {
+ switch (featureID) {
+ case ComrelPackage.SINGLE_FILTER_HELPER__OUTPUT_PORT:
+ return getOutputPort();
+ }
+ return super.eGet(featureID, resolve, coreType);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public void eSet(int featureID, Object newValue) {
+ switch (featureID) {
+ case ComrelPackage.SINGLE_FILTER_HELPER__OUTPUT_PORT:
+ setOutputPort((SingleOutputPort)newValue);
+ return;
+ }
+ super.eSet(featureID, newValue);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public void eUnset(int featureID) {
+ switch (featureID) {
+ case ComrelPackage.SINGLE_FILTER_HELPER__OUTPUT_PORT:
+ setOutputPort((SingleOutputPort)null);
+ return;
+ }
+ super.eUnset(featureID);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public boolean eIsSet(int featureID) {
+ switch (featureID) {
+ case ComrelPackage.SINGLE_FILTER_HELPER__OUTPUT_PORT:
+ return outputPort != null;
+ }
+ return super.eIsSet(featureID);
+ }
+
+} //SingleFilterHelperImpl
diff --git a/org.eclipse.emf.refactor.comrel/src/comrel/impl/SingleFilterUnitImpl.java b/org.eclipse.emf.refactor.comrel/src/comrel/impl/SingleFilterUnitImpl.java
new file mode 100644
index 0000000..07634d4
--- /dev/null
+++ b/org.eclipse.emf.refactor.comrel/src/comrel/impl/SingleFilterUnitImpl.java
@@ -0,0 +1,379 @@
+/**
+ * <copyright>
+ * </copyright>
+ *
+ * $Id$
+ */
+package comrel.impl;
+
+import org.eclipse.emf.common.notify.Notification;
+import org.eclipse.emf.common.notify.NotificationChain;
+import org.eclipse.emf.ecore.EClass;
+import org.eclipse.emf.ecore.InternalEObject;
+import org.eclipse.emf.ecore.impl.ENotificationImpl;
+
+import comrel.ComrelFactory;
+import comrel.ComrelPackage;
+import comrel.MultiInputPort;
+import comrel.SingleFilterHelper;
+import comrel.SingleFilterUnit;
+import comrel.SingleOutputPort;
+import comrel.util.ComrelUtil;
+
+/**
+ * <!-- begin-user-doc -->
+ * An implementation of the model object '<em><b>Single Filter Unit</b></em>'.
+ * <!-- end-user-doc -->
+ * <p>
+ * The following features are implemented:
+ * <ul>
+ * <li>{@link comrel.impl.SingleFilterUnitImpl#getInputPort <em>Input Port</em>}</li>
+ * <li>{@link comrel.impl.SingleFilterUnitImpl#getOutputPort <em>Output Port</em>}</li>
+ * <li>{@link comrel.impl.SingleFilterUnitImpl#getSingleFilterHelper <em>Single Filter Helper</em>}</li>
+ * <li>{@link comrel.impl.SingleFilterUnitImpl#getType <em>Type</em>}</li>
+ * </ul>
+ * </p>
+ *
+ * @generated
+ */
+public class SingleFilterUnitImpl extends FilterUnitImpl implements SingleFilterUnit {
+ /**
+ * The cached value of the '{@link #getInputPort() <em>Input Port</em>}' containment reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getInputPort()
+ * @generated
+ * @ordered
+ */
+ protected MultiInputPort inputPort;
+
+ /**
+ * The cached value of the '{@link #getOutputPort() <em>Output Port</em>}' containment reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getOutputPort()
+ * @generated
+ * @ordered
+ */
+ protected SingleOutputPort outputPort;
+
+ /**
+ * The cached value of the '{@link #getSingleFilterHelper() <em>Single Filter Helper</em>}' reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getSingleFilterHelper()
+ * @generated
+ * @ordered
+ */
+ protected SingleFilterHelper singleFilterHelper;
+
+ /**
+ * The default value of the '{@link #getType() <em>Type</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getType()
+ * @generated
+ * @ordered
+ */
+ protected static final String TYPE_EDEFAULT = "Single Filter Unit";
+
+ /**
+ * The cached value of the '{@link #getType() <em>Type</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getType()
+ * @generated
+ * @ordered
+ */
+ protected String type = TYPE_EDEFAULT;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected SingleFilterUnitImpl() {
+ super();
+ }
+
+ public SingleFilterUnitImpl(SingleFilterHelper helper) {
+ this.singleFilterHelper = helper;
+ this.helperUnitId = helper.getHelperId();
+ this.name = helper.getName();
+ this.description = helper.getDescription();
+ this.namespaceUri = helper.getNamespaceUri();
+ SingleOutputPort outPort = ComrelFactory.eINSTANCE.createSingleOutputPort();
+ MultiInputPort inPort = ComrelFactory.eINSTANCE.createMultiInputPort();
+ inPort.setDescription(helper.getInputPort().getDescription());
+ inPort.setName(helper.getInputPort().getName());
+ inPort.setType(helper.getInputPort().getType());
+
+ this.setInputPort(inPort);
+ outPort.setDescription(helper.getOutputPort().getDescription());
+ outPort.setName(helper.getOutputPort().getName());
+ outPort.setType(helper.getOutputPort().getType());
+
+ this.setOutputPort(outPort);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ protected EClass eStaticClass() {
+ return ComrelPackage.Literals.SINGLE_FILTER_UNIT;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public MultiInputPort getInputPort() {
+ return inputPort;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public NotificationChain basicSetInputPort(MultiInputPort newInputPort, NotificationChain msgs) {
+ MultiInputPort oldInputPort = inputPort;
+ inputPort = newInputPort;
+ if (eNotificationRequired()) {
+ ENotificationImpl notification = new ENotificationImpl(this, Notification.SET, ComrelPackage.SINGLE_FILTER_UNIT__INPUT_PORT, oldInputPort, newInputPort);
+ if (msgs == null) msgs = notification; else msgs.add(notification);
+ }
+ return msgs;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public void setInputPort(MultiInputPort newInputPort) {
+ if (newInputPort != inputPort) {
+ NotificationChain msgs = null;
+ if (inputPort != null)
+ msgs = ((InternalEObject)inputPort).eInverseRemove(this, EOPPOSITE_FEATURE_BASE - ComrelPackage.SINGLE_FILTER_UNIT__INPUT_PORT, null, msgs);
+ if (newInputPort != null)
+ msgs = ((InternalEObject)newInputPort).eInverseAdd(this, EOPPOSITE_FEATURE_BASE - ComrelPackage.SINGLE_FILTER_UNIT__INPUT_PORT, null, msgs);
+ msgs = basicSetInputPort(newInputPort, msgs);
+ if (msgs != null) msgs.dispatch();
+ }
+ else if (eNotificationRequired())
+ eNotify(new ENotificationImpl(this, Notification.SET, ComrelPackage.SINGLE_FILTER_UNIT__INPUT_PORT, newInputPort, newInputPort));
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public SingleOutputPort getOutputPort() {
+ return outputPort;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public NotificationChain basicSetOutputPort(SingleOutputPort newOutputPort, NotificationChain msgs) {
+ SingleOutputPort oldOutputPort = outputPort;
+ outputPort = newOutputPort;
+ if (eNotificationRequired()) {
+ ENotificationImpl notification = new ENotificationImpl(this, Notification.SET, ComrelPackage.SINGLE_FILTER_UNIT__OUTPUT_PORT, oldOutputPort, newOutputPort);
+ if (msgs == null) msgs = notification; else msgs.add(notification);
+ }
+ return msgs;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public void setOutputPort(SingleOutputPort newOutputPort) {
+ if (newOutputPort != outputPort) {
+ NotificationChain msgs = null;
+ if (outputPort != null)
+ msgs = ((InternalEObject)outputPort).eInverseRemove(this, EOPPOSITE_FEATURE_BASE - ComrelPackage.SINGLE_FILTER_UNIT__OUTPUT_PORT, null, msgs);
+ if (newOutputPort != null)
+ msgs = ((InternalEObject)newOutputPort).eInverseAdd(this, EOPPOSITE_FEATURE_BASE - ComrelPackage.SINGLE_FILTER_UNIT__OUTPUT_PORT, null, msgs);
+ msgs = basicSetOutputPort(newOutputPort, msgs);
+ if (msgs != null) msgs.dispatch();
+ }
+ else if (eNotificationRequired())
+ eNotify(new ENotificationImpl(this, Notification.SET, ComrelPackage.SINGLE_FILTER_UNIT__OUTPUT_PORT, newOutputPort, newOutputPort));
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public SingleFilterHelper getSingleFilterHelper() {
+ if (singleFilterHelper != null && singleFilterHelper.eIsProxy()) {
+ InternalEObject oldSingleFilterHelper = (InternalEObject)singleFilterHelper;
+ singleFilterHelper = (SingleFilterHelper)eResolveProxy(oldSingleFilterHelper);
+ if (singleFilterHelper != oldSingleFilterHelper) {
+ if (eNotificationRequired())
+ eNotify(new ENotificationImpl(this, Notification.RESOLVE, ComrelPackage.SINGLE_FILTER_UNIT__SINGLE_FILTER_HELPER, oldSingleFilterHelper, singleFilterHelper));
+ }
+ }
+ return singleFilterHelper;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public SingleFilterHelper basicGetSingleFilterHelper() {
+ return singleFilterHelper;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public void setSingleFilterHelper(SingleFilterHelper newSingleFilterHelper) {
+ if(ComrelUtil.objectIsSettable(this) || singleFilterHelper == null){
+ SingleFilterHelper oldSingleFilterHelper = singleFilterHelper;
+ singleFilterHelper = newSingleFilterHelper;
+ if (eNotificationRequired())
+ eNotify(new ENotificationImpl(this, Notification.SET, ComrelPackage.SINGLE_FILTER_UNIT__SINGLE_FILTER_HELPER, oldSingleFilterHelper, singleFilterHelper));
+ }
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public String getType() {
+ return type;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public NotificationChain eInverseRemove(InternalEObject otherEnd, int featureID, NotificationChain msgs) {
+ switch (featureID) {
+ case ComrelPackage.SINGLE_FILTER_UNIT__INPUT_PORT:
+ return basicSetInputPort(null, msgs);
+ case ComrelPackage.SINGLE_FILTER_UNIT__OUTPUT_PORT:
+ return basicSetOutputPort(null, msgs);
+ }
+ return super.eInverseRemove(otherEnd, featureID, msgs);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public Object eGet(int featureID, boolean resolve, boolean coreType) {
+ switch (featureID) {
+ case ComrelPackage.SINGLE_FILTER_UNIT__INPUT_PORT:
+ return getInputPort();
+ case ComrelPackage.SINGLE_FILTER_UNIT__OUTPUT_PORT:
+ return getOutputPort();
+ case ComrelPackage.SINGLE_FILTER_UNIT__SINGLE_FILTER_HELPER:
+ if (resolve) return getSingleFilterHelper();
+ return basicGetSingleFilterHelper();
+ case ComrelPackage.SINGLE_FILTER_UNIT__TYPE:
+ return getType();
+ }
+ return super.eGet(featureID, resolve, coreType);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public void eSet(int featureID, Object newValue) {
+ switch (featureID) {
+ case ComrelPackage.SINGLE_FILTER_UNIT__INPUT_PORT:
+ setInputPort((MultiInputPort)newValue);
+ return;
+ case ComrelPackage.SINGLE_FILTER_UNIT__OUTPUT_PORT:
+ setOutputPort((SingleOutputPort)newValue);
+ return;
+ case ComrelPackage.SINGLE_FILTER_UNIT__SINGLE_FILTER_HELPER:
+ setSingleFilterHelper((SingleFilterHelper)newValue);
+ return;
+ }
+ super.eSet(featureID, newValue);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public void eUnset(int featureID) {
+ switch (featureID) {
+ case ComrelPackage.SINGLE_FILTER_UNIT__INPUT_PORT:
+ setInputPort((MultiInputPort)null);
+ return;
+ case ComrelPackage.SINGLE_FILTER_UNIT__OUTPUT_PORT:
+ setOutputPort((SingleOutputPort)null);
+ return;
+ case ComrelPackage.SINGLE_FILTER_UNIT__SINGLE_FILTER_HELPER:
+ setSingleFilterHelper((SingleFilterHelper)null);
+ return;
+ }
+ super.eUnset(featureID);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public boolean eIsSet(int featureID) {
+ switch (featureID) {
+ case ComrelPackage.SINGLE_FILTER_UNIT__INPUT_PORT:
+ return inputPort != null;
+ case ComrelPackage.SINGLE_FILTER_UNIT__OUTPUT_PORT:
+ return outputPort != null;
+ case ComrelPackage.SINGLE_FILTER_UNIT__SINGLE_FILTER_HELPER:
+ return singleFilterHelper != null;
+ case ComrelPackage.SINGLE_FILTER_UNIT__TYPE:
+ return TYPE_EDEFAULT == null ? type != null : !TYPE_EDEFAULT.equals(type);
+ }
+ return super.eIsSet(featureID);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public String toString() {
+ if (eIsProxy()) return super.toString();
+
+ StringBuffer result = new StringBuffer(super.toString());
+ result.append(" (type: ");
+ result.append(type);
+ result.append(')');
+ return result.toString();
+ }
+
+} //SingleFilterUnitImpl
diff --git a/org.eclipse.emf.refactor.comrel/src/comrel/impl/SingleInputPortImpl.java b/org.eclipse.emf.refactor.comrel/src/comrel/impl/SingleInputPortImpl.java
new file mode 100644
index 0000000..61b12eb
--- /dev/null
+++ b/org.eclipse.emf.refactor.comrel/src/comrel/impl/SingleInputPortImpl.java
@@ -0,0 +1,90 @@
+/**
+ * <copyright>
+ * </copyright>
+ *
+ * $Id$
+ */
+package comrel.impl;
+
+import org.eclipse.emf.common.util.EList;
+import org.eclipse.emf.ecore.EClass;
+import org.eclipse.emf.ecore.EObject;
+
+import comrel.CompositeRefactoring;
+import comrel.ComrelPackage;
+import comrel.PortMapping;
+import comrel.SingleInputPort;
+
+/**
+ * <!-- begin-user-doc -->
+ * An implementation of the model object '<em><b>Single Input Port</b></em>'.
+ * <!-- end-user-doc -->
+ * <p>
+ * </p>
+ *
+ * @generated
+ */
+public class SingleInputPortImpl extends SinglePortImpl implements SingleInputPort {
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected SingleInputPortImpl() {
+ super();
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ protected EClass eStaticClass() {
+ return ComrelPackage.Literals.SINGLE_INPUT_PORT;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public Boolean isMappingTarget() {
+ EObject container = this.eContainer();
+ if (container == null) return true;
+ while(container.eContainer() != null) {
+ container = container.eContainer();
+ }
+ CompositeRefactoring refSys;
+ if(container instanceof CompositeRefactoring) {
+ refSys = (CompositeRefactoring) container;
+ }
+ else {
+ throw new UnsupportedOperationException("Container 'RefactoringSystem' doesn't exists");
+ }
+ EList<PortMapping> mappings = refSys.getPortMappings();
+ for(PortMapping m : mappings) {
+ if(m.getTarget() == this) {
+ return true;
+ }
+ }
+ return false;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public Boolean isRootPort() {
+ EObject container = this.eContainer();
+ if (container == null) throw new UnsupportedOperationException("Container doesn't exists");
+ if(container.eContainer() instanceof CompositeRefactoring) {
+ return true;
+ }
+ else {
+ return false;
+ }
+ }
+
+} //SingleInputPortImpl
diff --git a/org.eclipse.emf.refactor.comrel/src/comrel/impl/SingleOutputPortImpl.java b/org.eclipse.emf.refactor.comrel/src/comrel/impl/SingleOutputPortImpl.java
new file mode 100644
index 0000000..26dd68c
--- /dev/null
+++ b/org.eclipse.emf.refactor.comrel/src/comrel/impl/SingleOutputPortImpl.java
@@ -0,0 +1,43 @@
+/**
+ * <copyright>
+ * </copyright>
+ *
+ * $Id$
+ */
+package comrel.impl;
+
+import comrel.ComrelPackage;
+import comrel.SingleOutputPort;
+
+import org.eclipse.emf.ecore.EClass;
+
+/**
+ * <!-- begin-user-doc -->
+ * An implementation of the model object '<em><b>Single Output Port</b></em>'.
+ * <!-- end-user-doc -->
+ * <p>
+ * </p>
+ *
+ * @generated
+ */
+public class SingleOutputPortImpl extends SinglePortImpl implements SingleOutputPort {
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected SingleOutputPortImpl() {
+ super();
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ protected EClass eStaticClass() {
+ return ComrelPackage.Literals.SINGLE_OUTPUT_PORT;
+ }
+
+} //SingleOutputPortImpl
diff --git a/org.eclipse.emf.refactor.comrel/src/comrel/impl/SinglePortImpl.java b/org.eclipse.emf.refactor.comrel/src/comrel/impl/SinglePortImpl.java
new file mode 100644
index 0000000..f2b089b
--- /dev/null
+++ b/org.eclipse.emf.refactor.comrel/src/comrel/impl/SinglePortImpl.java
@@ -0,0 +1,166 @@
+/**
+ * <copyright>
+ * </copyright>
+ *
+ * $Id$
+ */
+package comrel.impl;
+
+import comrel.ComrelPackage;
+import comrel.SinglePort;
+
+import org.eclipse.emf.common.notify.Notification;
+
+import org.eclipse.emf.ecore.EClass;
+
+import org.eclipse.emf.ecore.impl.ENotificationImpl;
+
+/**
+ * <!-- begin-user-doc -->
+ * An implementation of the model object '<em><b>Single Port</b></em>'.
+ * <!-- end-user-doc -->
+ * <p>
+ * The following features are implemented:
+ * <ul>
+ * <li>{@link comrel.impl.SinglePortImpl#getValue <em>Value</em>}</li>
+ * </ul>
+ * </p>
+ *
+ * @generated
+ */
+public abstract class SinglePortImpl extends PortImpl implements SinglePort {
+ /**
+ * The default value of the '{@link #getValue() <em>Value</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getValue()
+ * @generated
+ * @ordered
+ */
+ protected static final Object VALUE_EDEFAULT = null;
+
+ /**
+ * The cached value of the '{@link #getValue() <em>Value</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getValue()
+ * @generated
+ * @ordered
+ */
+ protected Object value = VALUE_EDEFAULT;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected SinglePortImpl() {
+ super();
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ protected EClass eStaticClass() {
+ return ComrelPackage.Literals.SINGLE_PORT;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public Object getValue() {
+ return value;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public void setValue(Object newValue) {
+ Object oldValue = value;
+ value = newValue;
+ if (eNotificationRequired())
+ eNotify(new ENotificationImpl(this, Notification.SET, ComrelPackage.SINGLE_PORT__VALUE, oldValue, value));
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public Object eGet(int featureID, boolean resolve, boolean coreType) {
+ switch (featureID) {
+ case ComrelPackage.SINGLE_PORT__VALUE:
+ return getValue();
+ }
+ return super.eGet(featureID, resolve, coreType);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public void eSet(int featureID, Object newValue) {
+ switch (featureID) {
+ case ComrelPackage.SINGLE_PORT__VALUE:
+ setValue(newValue);
+ return;
+ }
+ super.eSet(featureID, newValue);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public void eUnset(int featureID) {
+ switch (featureID) {
+ case ComrelPackage.SINGLE_PORT__VALUE:
+ setValue(VALUE_EDEFAULT);
+ return;
+ }
+ super.eUnset(featureID);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public boolean eIsSet(int featureID) {
+ switch (featureID) {
+ case ComrelPackage.SINGLE_PORT__VALUE:
+ return VALUE_EDEFAULT == null ? value != null : !VALUE_EDEFAULT.equals(value);
+ }
+ return super.eIsSet(featureID);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public String toString() {
+ if (eIsProxy()) return super.toString();
+
+ StringBuffer result = new StringBuffer(super.toString());
+ result.append(" (value: ");
+ result.append(value);
+ result.append(')');
+ return result.toString();
+ }
+
+} //SinglePortImpl
diff --git a/org.eclipse.emf.refactor.comrel/src/comrel/impl/SinglePortMappingImpl.java b/org.eclipse.emf.refactor.comrel/src/comrel/impl/SinglePortMappingImpl.java
new file mode 100644
index 0000000..933bb4f
--- /dev/null
+++ b/org.eclipse.emf.refactor.comrel/src/comrel/impl/SinglePortMappingImpl.java
@@ -0,0 +1,245 @@
+/**
+ * <copyright>
+ * </copyright>
+ *
+ * $Id$
+ */
+package comrel.impl;
+
+import comrel.ComrelPackage;
+import comrel.SingleInputPort;
+import comrel.SinglePort;
+import comrel.SinglePortMapping;
+
+import org.eclipse.emf.common.notify.Notification;
+
+import org.eclipse.emf.ecore.EClass;
+import org.eclipse.emf.ecore.InternalEObject;
+
+import org.eclipse.emf.ecore.impl.ENotificationImpl;
+
+/**
+ * <!-- begin-user-doc -->
+ * An implementation of the model object '<em><b>Single Port Mapping</b></em>'.
+ * <!-- end-user-doc -->
+ * <p>
+ * The following features are implemented:
+ * <ul>
+ * <li>{@link comrel.impl.SinglePortMappingImpl#getSource <em>Source</em>}</li>
+ * <li>{@link comrel.impl.SinglePortMappingImpl#getTarget <em>Target</em>}</li>
+ * </ul>
+ * </p>
+ *
+ * @generated
+ */
+public class SinglePortMappingImpl extends PortMappingImpl implements SinglePortMapping {
+ /**
+ * The cached value of the '{@link #getSource() <em>Source</em>}' reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getSource()
+ * @generated
+ * @ordered
+ */
+ protected SinglePort source;
+
+ /**
+ * The cached value of the '{@link #getTarget() <em>Target</em>}' reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getTarget()
+ * @generated
+ * @ordered
+ */
+ protected SingleInputPort target;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected SinglePortMappingImpl() {
+ super();
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ protected EClass eStaticClass() {
+ return ComrelPackage.Literals.SINGLE_PORT_MAPPING;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public SinglePort getSource() {
+ if (source != null && source.eIsProxy()) {
+ InternalEObject oldSource = (InternalEObject)source;
+ source = (SinglePort)eResolveProxy(oldSource);
+ if (source != oldSource) {
+ if (eNotificationRequired())
+ eNotify(new ENotificationImpl(this, Notification.RESOLVE, ComrelPackage.SINGLE_PORT_MAPPING__SOURCE, oldSource, source));
+ }
+ }
+ return source;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public SinglePort basicGetSource() {
+ return source;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public void setSource(SinglePort newSource) {
+ this.resetVisualization();
+ SinglePort oldSource = source;
+ source = newSource;
+ if (eNotificationRequired())
+ eNotify(new ENotificationImpl(this, Notification.SET, ComrelPackage.SINGLE_PORT_MAPPING__SOURCE, oldSource, source));
+ if(source != null && target != null){
+ if (source.getType() != null) {
+ updatePortTypesAndNames(source.getType(),source.getSingularPortName());
+ } else {
+ updatePortTypesAndNames(target.getType(),target.getSingularPortName());
+ }
+ updateMappingNumber();
+ }
+ else {
+ this.updateCRVisualization();
+ }
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public SingleInputPort getTarget() {
+ if (target != null && target.eIsProxy()) {
+ InternalEObject oldTarget = (InternalEObject)target;
+ target = (SingleInputPort)eResolveProxy(oldTarget);
+ if (target != oldTarget) {
+ if (eNotificationRequired())
+ eNotify(new ENotificationImpl(this, Notification.RESOLVE, ComrelPackage.SINGLE_PORT_MAPPING__TARGET, oldTarget, target));
+ }
+ }
+ return target;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public SingleInputPort basicGetTarget() {
+ return target;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public void setTarget(SingleInputPort newTarget) {
+ this.resetVisualization();
+ SingleInputPort oldTarget = target;
+ target = newTarget;
+ if (eNotificationRequired())
+ eNotify(new ENotificationImpl(this, Notification.SET, ComrelPackage.SINGLE_PORT_MAPPING__TARGET, oldTarget, target));
+ if(source != null && target != null){
+ if (target.getType() != null) {
+ updatePortTypesAndNames(target.getType(),target.getSingularPortName());
+ } else {
+ updatePortTypesAndNames(source.getType(),source.getSingularPortName());
+ }
+ updateMappingNumber();
+ }
+ else {
+ this.updateCRVisualization();
+ }
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public Object eGet(int featureID, boolean resolve, boolean coreType) {
+ switch (featureID) {
+ case ComrelPackage.SINGLE_PORT_MAPPING__SOURCE:
+ if (resolve) return getSource();
+ return basicGetSource();
+ case ComrelPackage.SINGLE_PORT_MAPPING__TARGET:
+ if (resolve) return getTarget();
+ return basicGetTarget();
+ }
+ return super.eGet(featureID, resolve, coreType);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public void eSet(int featureID, Object newValue) {
+ switch (featureID) {
+ case ComrelPackage.SINGLE_PORT_MAPPING__SOURCE:
+ setSource((SinglePort)newValue);
+ return;
+ case ComrelPackage.SINGLE_PORT_MAPPING__TARGET:
+ setTarget((SingleInputPort)newValue);
+ return;
+ }
+ super.eSet(featureID, newValue);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public void eUnset(int featureID) {
+ switch (featureID) {
+ case ComrelPackage.SINGLE_PORT_MAPPING__SOURCE:
+ setSource((SinglePort)null);
+ return;
+ case ComrelPackage.SINGLE_PORT_MAPPING__TARGET:
+ setTarget((SingleInputPort)null);
+ return;
+ }
+ super.eUnset(featureID);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public boolean eIsSet(int featureID) {
+ switch (featureID) {
+ case ComrelPackage.SINGLE_PORT_MAPPING__SOURCE:
+ return source != null;
+ case ComrelPackage.SINGLE_PORT_MAPPING__TARGET:
+ return target != null;
+ }
+ return super.eIsSet(featureID);
+ }
+
+} //SinglePortMappingImpl
diff --git a/org.eclipse.emf.refactor.comrel/src/comrel/impl/SingleQueuedUnitImpl.java b/org.eclipse.emf.refactor.comrel/src/comrel/impl/SingleQueuedUnitImpl.java
new file mode 100644
index 0000000..b4868a1
--- /dev/null
+++ b/org.eclipse.emf.refactor.comrel/src/comrel/impl/SingleQueuedUnitImpl.java
@@ -0,0 +1,450 @@
+/**
+ * <copyright>
+ * </copyright>
+ *
+ * $Id$
+ */
+package comrel.impl;
+
+import java.util.Collection;
+
+import org.eclipse.emf.common.notify.Notification;
+import org.eclipse.emf.common.notify.NotificationChain;
+import org.eclipse.emf.common.util.BasicEList;
+import org.eclipse.emf.common.util.EList;
+import org.eclipse.emf.ecore.EClass;
+import org.eclipse.emf.ecore.InternalEObject;
+import org.eclipse.emf.ecore.impl.ENotificationImpl;
+import org.eclipse.emf.ecore.util.EObjectContainmentEList;
+import org.eclipse.emf.ecore.util.InternalEList;
+
+import comrel.ComrelFactory;
+import comrel.ComrelPackage;
+import comrel.HelperUnit;
+import comrel.InputPort;
+import comrel.MultiInputPort;
+import comrel.RefactoringUnit;
+import comrel.SingleInputPort;
+import comrel.SingleQueuedUnit;
+
+/**
+ * <!-- begin-user-doc -->
+ * An implementation of the model object '<em><b>Single Queued Unit</b></em>'.
+ * <!-- end-user-doc -->
+ * <p>
+ * The following features are implemented:
+ * <ul>
+ * <li>{@link comrel.impl.SingleQueuedUnitImpl#getHelperUnits <em>Helper Units</em>}</li>
+ * <li>{@link comrel.impl.SingleQueuedUnitImpl#getRefactoringUnit <em>Refactoring Unit</em>}</li>
+ * <li>{@link comrel.impl.SingleQueuedUnitImpl#getSingleInputPorts <em>Single Input Ports</em>}</li>
+ * <li>{@link comrel.impl.SingleQueuedUnitImpl#getMultiInputPort <em>Multi Input Port</em>}</li>
+ * <li>{@link comrel.impl.SingleQueuedUnitImpl#getType <em>Type</em>}</li>
+ * <li>{@link comrel.impl.SingleQueuedUnitImpl#getLblStrict <em>Lbl Strict</em>}</li>
+ * </ul>
+ * </p>
+ *
+ * @generated
+ */
+public class SingleQueuedUnitImpl extends QueuedUnitImpl implements SingleQueuedUnit {
+ /**
+ * The cached value of the '{@link #getHelperUnits() <em>Helper Units</em>}' containment reference list.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getHelperUnits()
+ * @generated
+ * @ordered
+ */
+ protected EList<HelperUnit> helperUnits;
+
+ /**
+ * The cached value of the '{@link #getRefactoringUnit() <em>Refactoring Unit</em>}' containment reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getRefactoringUnit()
+ * @generated
+ * @ordered
+ */
+ protected RefactoringUnit refactoringUnit;
+
+ /**
+ * The cached value of the '{@link #getSingleInputPorts() <em>Single Input Ports</em>}' containment reference list.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getSingleInputPorts()
+ * @generated
+ * @ordered
+ */
+ protected EList<SingleInputPort> singleInputPorts;
+
+ /**
+ * The cached value of the '{@link #getMultiInputPort() <em>Multi Input Port</em>}' containment reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getMultiInputPort()
+ * @generated
+ * @ordered
+ */
+ protected MultiInputPort multiInputPort;
+
+ /**
+ * The default value of the '{@link #getType() <em>Type</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getType()
+ * @generated
+ * @ordered
+ */
+ protected static final String TYPE_EDEFAULT = "Single Queued Unit";
+
+ /**
+ * The cached value of the '{@link #getType() <em>Type</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getType()
+ * @generated
+ * @ordered
+ */
+ protected String type = TYPE_EDEFAULT;
+
+ /**
+ * The default value of the '{@link #getLblStrict() <em>Lbl Strict</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getLblStrict()
+ * @generated
+ * @ordered
+ */
+ protected static final String LBL_STRICT_EDEFAULT = "strict";
+
+ /**
+ * The cached value of the '{@link #getLblStrict() <em>Lbl Strict</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getLblStrict()
+ * @generated
+ * @ordered
+ */
+ protected String lblStrict = LBL_STRICT_EDEFAULT;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected SingleQueuedUnitImpl() {
+ super();
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ protected EClass eStaticClass() {
+ return ComrelPackage.Literals.SINGLE_QUEUED_UNIT;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EList<HelperUnit> getHelperUnits() {
+ if (helperUnits == null) {
+ helperUnits = new EObjectContainmentEList<HelperUnit>(HelperUnit.class, this, ComrelPackage.SINGLE_QUEUED_UNIT__HELPER_UNITS);
+ }
+ return helperUnits;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public RefactoringUnit getRefactoringUnit() {
+ return refactoringUnit;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public NotificationChain basicSetRefactoringUnit(RefactoringUnit newRefactoringUnit, NotificationChain msgs) {
+ RefactoringUnit oldRefactoringUnit = refactoringUnit;
+ refactoringUnit = newRefactoringUnit;
+ if (eNotificationRequired()) {
+ ENotificationImpl notification = new ENotificationImpl(this, Notification.SET, ComrelPackage.SINGLE_QUEUED_UNIT__REFACTORING_UNIT, oldRefactoringUnit, newRefactoringUnit);
+ if (msgs == null) msgs = notification; else msgs.add(notification);
+ }
+ return msgs;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public void setRefactoringUnit(RefactoringUnit newRefactoringUnit) {
+ if (newRefactoringUnit != refactoringUnit) {
+ NotificationChain msgs = null;
+ if (refactoringUnit != null)
+ msgs = ((InternalEObject)refactoringUnit).eInverseRemove(this, EOPPOSITE_FEATURE_BASE - ComrelPackage.SINGLE_QUEUED_UNIT__REFACTORING_UNIT, null, msgs);
+ if (newRefactoringUnit != null)
+ msgs = ((InternalEObject)newRefactoringUnit).eInverseAdd(this, EOPPOSITE_FEATURE_BASE - ComrelPackage.SINGLE_QUEUED_UNIT__REFACTORING_UNIT, null, msgs);
+ msgs = basicSetRefactoringUnit(newRefactoringUnit, msgs);
+ if (msgs != null) msgs.dispatch();
+ }
+ else if (eNotificationRequired())
+ eNotify(new ENotificationImpl(this, Notification.SET, ComrelPackage.SINGLE_QUEUED_UNIT__REFACTORING_UNIT, newRefactoringUnit, newRefactoringUnit));
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EList<SingleInputPort> getSingleInputPorts() {
+ if (singleInputPorts == null) {
+ singleInputPorts = new EObjectContainmentEList<SingleInputPort>(SingleInputPort.class, this, ComrelPackage.SINGLE_QUEUED_UNIT__SINGLE_INPUT_PORTS);
+ }
+ return singleInputPorts;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public MultiInputPort getMultiInputPort() {
+ return multiInputPort;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public NotificationChain basicSetMultiInputPort(MultiInputPort newMultiInputPort, NotificationChain msgs) {
+ MultiInputPort oldMultiInputPort = multiInputPort;
+ multiInputPort = newMultiInputPort;
+ if (eNotificationRequired()) {
+ ENotificationImpl notification = new ENotificationImpl(this, Notification.SET, ComrelPackage.SINGLE_QUEUED_UNIT__MULTI_INPUT_PORT, oldMultiInputPort, newMultiInputPort);
+ if (msgs == null) msgs = notification; else msgs.add(notification);
+ }
+ return msgs;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public void setMultiInputPort(MultiInputPort newMultiInputPort) {
+ if (newMultiInputPort != multiInputPort) {
+ NotificationChain msgs = null;
+ if (multiInputPort != null)
+ msgs = ((InternalEObject)multiInputPort).eInverseRemove(this, EOPPOSITE_FEATURE_BASE - ComrelPackage.SINGLE_QUEUED_UNIT__MULTI_INPUT_PORT, null, msgs);
+ if (newMultiInputPort != null)
+ msgs = ((InternalEObject)newMultiInputPort).eInverseAdd(this, EOPPOSITE_FEATURE_BASE - ComrelPackage.SINGLE_QUEUED_UNIT__MULTI_INPUT_PORT, null, msgs);
+ msgs = basicSetMultiInputPort(newMultiInputPort, msgs);
+ if (msgs != null) msgs.dispatch();
+ }
+ else if (eNotificationRequired())
+ eNotify(new ENotificationImpl(this, Notification.SET, ComrelPackage.SINGLE_QUEUED_UNIT__MULTI_INPUT_PORT, newMultiInputPort, newMultiInputPort));
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public String getType() {
+ return type;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public String getLblStrict() {
+ return lblStrict;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public void setLblStrict(String newLblStrict) {
+ String oldLblStrict = lblStrict;
+ lblStrict = newLblStrict;
+ if (eNotificationRequired())
+ eNotify(new ENotificationImpl(this, Notification.SET, ComrelPackage.SINGLE_QUEUED_UNIT__LBL_STRICT, oldLblStrict, lblStrict));
+ }
+
+ @Override
+ public void setStrict(boolean newStrict) {
+ super.setStrict(newStrict);
+ if (newStrict) setLblStrict("strict");
+ else setLblStrict("non strict");
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public NotificationChain eInverseRemove(InternalEObject otherEnd, int featureID, NotificationChain msgs) {
+ switch (featureID) {
+ case ComrelPackage.SINGLE_QUEUED_UNIT__HELPER_UNITS:
+ return ((InternalEList<?>)getHelperUnits()).basicRemove(otherEnd, msgs);
+ case ComrelPackage.SINGLE_QUEUED_UNIT__REFACTORING_UNIT:
+ return basicSetRefactoringUnit(null, msgs);
+ case ComrelPackage.SINGLE_QUEUED_UNIT__SINGLE_INPUT_PORTS:
+ return ((InternalEList<?>)getSingleInputPorts()).basicRemove(otherEnd, msgs);
+ case ComrelPackage.SINGLE_QUEUED_UNIT__MULTI_INPUT_PORT:
+ return basicSetMultiInputPort(null, msgs);
+ }
+ return super.eInverseRemove(otherEnd, featureID, msgs);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public Object eGet(int featureID, boolean resolve, boolean coreType) {
+ switch (featureID) {
+ case ComrelPackage.SINGLE_QUEUED_UNIT__HELPER_UNITS:
+ return getHelperUnits();
+ case ComrelPackage.SINGLE_QUEUED_UNIT__REFACTORING_UNIT:
+ return getRefactoringUnit();
+ case ComrelPackage.SINGLE_QUEUED_UNIT__SINGLE_INPUT_PORTS:
+ return getSingleInputPorts();
+ case ComrelPackage.SINGLE_QUEUED_UNIT__MULTI_INPUT_PORT:
+ return getMultiInputPort();
+ case ComrelPackage.SINGLE_QUEUED_UNIT__TYPE:
+ return getType();
+ case ComrelPackage.SINGLE_QUEUED_UNIT__LBL_STRICT:
+ return getLblStrict();
+ }
+ return super.eGet(featureID, resolve, coreType);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @SuppressWarnings("unchecked")
+ @Override
+ public void eSet(int featureID, Object newValue) {
+ switch (featureID) {
+ case ComrelPackage.SINGLE_QUEUED_UNIT__HELPER_UNITS:
+ getHelperUnits().clear();
+ getHelperUnits().addAll((Collection<? extends HelperUnit>)newValue);
+ return;
+ case ComrelPackage.SINGLE_QUEUED_UNIT__REFACTORING_UNIT:
+ setRefactoringUnit((RefactoringUnit)newValue);
+ return;
+ case ComrelPackage.SINGLE_QUEUED_UNIT__SINGLE_INPUT_PORTS:
+ getSingleInputPorts().clear();
+ getSingleInputPorts().addAll((Collection<? extends SingleInputPort>)newValue);
+ return;
+ case ComrelPackage.SINGLE_QUEUED_UNIT__MULTI_INPUT_PORT:
+ setMultiInputPort((MultiInputPort)newValue);
+ return;
+ case ComrelPackage.SINGLE_QUEUED_UNIT__LBL_STRICT:
+ setLblStrict((String)newValue);
+ return;
+ }
+ super.eSet(featureID, newValue);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public void eUnset(int featureID) {
+ switch (featureID) {
+ case ComrelPackage.SINGLE_QUEUED_UNIT__HELPER_UNITS:
+ getHelperUnits().clear();
+ return;
+ case ComrelPackage.SINGLE_QUEUED_UNIT__REFACTORING_UNIT:
+ setRefactoringUnit((RefactoringUnit)null);
+ return;
+ case ComrelPackage.SINGLE_QUEUED_UNIT__SINGLE_INPUT_PORTS:
+ getSingleInputPorts().clear();
+ return;
+ case ComrelPackage.SINGLE_QUEUED_UNIT__MULTI_INPUT_PORT:
+ setMultiInputPort((MultiInputPort)null);
+ return;
+ case ComrelPackage.SINGLE_QUEUED_UNIT__LBL_STRICT:
+ setLblStrict(LBL_STRICT_EDEFAULT);
+ return;
+ }
+ super.eUnset(featureID);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public boolean eIsSet(int featureID) {
+ switch (featureID) {
+ case ComrelPackage.SINGLE_QUEUED_UNIT__HELPER_UNITS:
+ return helperUnits != null && !helperUnits.isEmpty();
+ case ComrelPackage.SINGLE_QUEUED_UNIT__REFACTORING_UNIT:
+ return refactoringUnit != null;
+ case ComrelPackage.SINGLE_QUEUED_UNIT__SINGLE_INPUT_PORTS:
+ return singleInputPorts != null && !singleInputPorts.isEmpty();
+ case ComrelPackage.SINGLE_QUEUED_UNIT__MULTI_INPUT_PORT:
+ return multiInputPort != null;
+ case ComrelPackage.SINGLE_QUEUED_UNIT__TYPE:
+ return TYPE_EDEFAULT == null ? type != null : !TYPE_EDEFAULT.equals(type);
+ case ComrelPackage.SINGLE_QUEUED_UNIT__LBL_STRICT:
+ return LBL_STRICT_EDEFAULT == null ? lblStrict != null : !LBL_STRICT_EDEFAULT.equals(lblStrict);
+ }
+ return super.eIsSet(featureID);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public String toString() {
+ if (eIsProxy()) return super.toString();
+
+ StringBuffer result = new StringBuffer(super.toString());
+ result.append(" (type: ");
+ result.append(type);
+ result.append(", lblStrict: ");
+ result.append(lblStrict);
+ result.append(')');
+ return result.toString();
+ }
+
+ public EList<InputPort> getAllInputPorts() {
+ EList<InputPort> inputPorts = new BasicEList<InputPort>();
+ inputPorts.addAll(this.getSingleInputPorts());
+ inputPorts.add(this.getMultiInputPort());
+ return inputPorts;
+ }
+
+ public void init() {
+ MultiInputPort port = ComrelFactory.eINSTANCE.createMultiInputPort();
+ this.multiInputPort = port;
+ }
+
+} //SingleQueuedUnitImpl
diff --git a/org.eclipse.emf.refactor.comrel/src/comrel/impl/TwicedQueuedUnitImpl.java b/org.eclipse.emf.refactor.comrel/src/comrel/impl/TwicedQueuedUnitImpl.java
new file mode 100644
index 0000000..0ce8370
--- /dev/null
+++ b/org.eclipse.emf.refactor.comrel/src/comrel/impl/TwicedQueuedUnitImpl.java
@@ -0,0 +1,43 @@
+/**
+ * <copyright>
+ * </copyright>
+ *
+ * $Id$
+ */
+package comrel.impl;
+
+import org.eclipse.emf.ecore.EClass;
+
+import comrel.ComrelPackage;
+import comrel.TwicedQueuedUnit;
+
+/**
+ * <!-- begin-user-doc -->
+ * An implementation of the model object '<em><b>Twiced Queued Unit</b></em>'.
+ * <!-- end-user-doc -->
+ * <p>
+ * </p>
+ *
+ * @generated
+ */
+public abstract class TwicedQueuedUnitImpl extends QueuedUnitImpl implements TwicedQueuedUnit {
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected TwicedQueuedUnitImpl() {
+ super();
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ protected EClass eStaticClass() {
+ return ComrelPackage.Literals.TWICED_QUEUED_UNIT;
+ }
+
+} //TwicedQueuedUnitImpl
diff --git a/org.eclipse.emf.refactor.comrel/src/comrel/util/Colors.java b/org.eclipse.emf.refactor.comrel/src/comrel/util/Colors.java
new file mode 100644
index 0000000..d9d2402
--- /dev/null
+++ b/org.eclipse.emf.refactor.comrel/src/comrel/util/Colors.java
@@ -0,0 +1,176 @@
+package comrel.util;
+
+import java.util.ArrayList;
+
+import javax.swing.JFrame;
+import javax.swing.JTextPane;
+import javax.swing.text.DefaultStyledDocument;
+import javax.swing.text.SimpleAttributeSet;
+import javax.swing.text.StyleConstants;
+
+import org.eclipse.swt.graphics.Color;
+
+public class Colors {
+
+ /**
+ * Liefert der drei Grundfarben "Red", "Green" und "Blue"
+ *
+ * @return Liste der Grundfarben
+ */
+ public static ArrayList<Color> groundColors() {
+ ArrayList<Color> result = new ArrayList<Color>();
+ result.add(new Color(null, 255, 0, 0));
+ result.add(new Color(null, 0, 255, 0));
+ result.add(new Color(null, 0, 0, 255));
+ return result;
+ }
+
+ /**
+ * Liefert die Mischfarben der drei Grundfarben "Magenta", "Yellow" und
+ * "Cyen"
+ *
+ * @return Liste aller Mischfarben aus den drei Grundfarben
+ */
+ public static ArrayList<Color> groundColors2() {
+ ArrayList<Color> result = new ArrayList<Color>();
+ result.add(new Color(null, 255, 255, 0));
+ result.add(new Color(null, 0, 255, 255));
+ result.add(new Color(null, 255, 0, 255));
+ return result;
+ }
+
+ /**
+ * Liefert zu einem Index eine hier berechnete Farbe Als Grundlage wird der
+ * Farbkreis genommen, indem die Farben zwischen den Farben aus den
+ * einzelnen Mischungen erstellt werden. Jedoch liefert die Methode alle
+ * Farben als Liste, angefangen mit den drei Grundfarben, gefolgt von den
+ * drei Mischfarben, gefolgt von den Mischfarben dieser Farben etc.
+ *
+ * @param i Index
+ * @return Farbkreis als selbstdefinierte Liste
+ */
+ public static ArrayList<Color> getColors(int i) {
+ ArrayList<Color> result = new ArrayList<Color>();
+ /** mergeList entspricht dem Farbkreis*/
+ ArrayList<Color> mergeList = mergeLists(groundColors(), groundColors2());
+ result.addAll(groundColors());
+ result.addAll(groundColors2());
+ int k = 2;
+ ArrayList<Color> newColors;
+ Color newColor;
+ int r;
+ int g;
+ int b;
+ Color one;
+ Color two;
+
+ /** In der folgenden Schleife werden die Farben des Farbkreises gemischt */
+ while (k < i) { // Schleife endet, wenn genug Farben gemisch worden sind
+ newColors = new ArrayList<Color>();
+ for (int j = 0; j < mergeList.size(); j++) {
+ one = mergeList.get(j);
+ if (j + 1 < mergeList.size()) {
+ two = mergeList.get((j + 1));
+ } else {
+ two = mergeList.get(0);
+ }
+ r = (one.getRed() + two.getRed()) / 2;
+ b = (one.getBlue() + two.getBlue()) / 2;
+ g = (one.getGreen() + two.getGreen()) / 2;
+ newColor = new Color(null, r, g, b);
+ newColors.add(newColor);
+ k++;
+ if (k >= i) {
+ break;
+ }
+
+ }
+ mergeList = mergeLists(mergeList, newColors);
+ result.addAll(newColors);
+ }
+ return result;
+ }
+
+ /**
+ * Merged zwei Listen gleicher Länge
+ * @param old
+ * @param newColors
+ * @return
+ */
+ private static ArrayList<Color> mergeLists(ArrayList<Color> old,
+ ArrayList<Color> newColors) {
+ ArrayList<Color> result = new ArrayList<Color>();
+ result.addAll(old);
+ int i = 1;
+ for (Color color : newColors) {
+ if (i < result.size()) {
+ result.add(i, color);
+ i += 2;
+ } else {
+ result.add(color);
+ }
+ }
+ return result;
+
+ }
+
+
+ /**
+ * Mainmethode zum Testen
+ * @param args
+ */
+ public static void main(String... args) {
+
+ JFrame frame = new JFrame();
+
+ AttributedTextPane pane = new AttributedTextPane();
+
+ frame.add(pane);
+ frame.setBounds(100, 100, 600, 400);
+ frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
+ frame.setVisible(true);
+ int i = 1;
+ for (Color color : getColors(200)) {
+ String s = " ";
+ if (i++ % 10 == 0) {
+ s += "\n";
+ }
+ pane.append(s, color);
+ }
+
+ }
+
+ /** subclass of JTextPane allowing color attributes */
+ static class AttributedTextPane extends JTextPane {
+ /**
+ *
+ */
+ private static final long serialVersionUID = 1725425425133024244L;
+ private DefaultStyledDocument m_defaultStyledDocument = new DefaultStyledDocument();
+
+ /** constructor */
+ public AttributedTextPane() {
+ this.setDocument(m_defaultStyledDocument);
+ }
+
+ /** append text */
+ public void append(String string, Color color) {
+ try {
+ SimpleAttributeSet attr = new SimpleAttributeSet();
+ StyleConstants.setBackground(attr,
+ new java.awt.Color(color.getRed(), color.getGreen(),
+ color.getBlue()));
+ StyleConstants.setFontSize(attr, 20);
+ m_defaultStyledDocument.insertString(
+ m_defaultStyledDocument.getLength(), string, attr);
+ } catch (Exception e) {
+ e.printStackTrace();
+ }
+ }
+
+ /** append text in default color */
+ public void append(String string) {
+ append(string, new Color(null, 255, 255, 255));
+ }
+ }
+}
diff --git a/org.eclipse.emf.refactor.comrel/src/comrel/util/ComrelAdapterFactory.java b/org.eclipse.emf.refactor.comrel/src/comrel/util/ComrelAdapterFactory.java
new file mode 100644
index 0000000..f5c9933
--- /dev/null
+++ b/org.eclipse.emf.refactor.comrel/src/comrel/util/ComrelAdapterFactory.java
@@ -0,0 +1,862 @@
+/**
+ * <copyright>
+ * </copyright>
+ *
+ * $Id$
+ */
+package comrel.util;
+
+import comrel.*;
+
+import org.eclipse.emf.common.notify.Adapter;
+import org.eclipse.emf.common.notify.Notifier;
+
+import org.eclipse.emf.common.notify.impl.AdapterFactoryImpl;
+
+import org.eclipse.emf.ecore.EObject;
+
+/**
+ * <!-- begin-user-doc -->
+ * The <b>Adapter Factory</b> for the model.
+ * It provides an adapter <code>createXXX</code> method for each class of the model.
+ * <!-- end-user-doc -->
+ * @see comrel.ComrelPackage
+ * @generated
+ */
+public class ComrelAdapterFactory extends AdapterFactoryImpl {
+ /**
+ * The cached model package.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected static ComrelPackage modelPackage;
+
+ /**
+ * Creates an instance of the adapter factory.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public ComrelAdapterFactory() {
+ if (modelPackage == null) {
+ modelPackage = ComrelPackage.eINSTANCE;
+ }
+ }
+
+ /**
+ * Returns whether this factory is applicable for the type of the object.
+ * <!-- begin-user-doc -->
+ * This implementation returns <code>true</code> if the object is either the model's package or is an instance object of the model.
+ * <!-- end-user-doc -->
+ * @return whether this factory is applicable for the type of the object.
+ * @generated
+ */
+ @Override
+ public boolean isFactoryForType(Object object) {
+ if (object == modelPackage) {
+ return true;
+ }
+ if (object instanceof EObject) {
+ return ((EObject)object).eClass().getEPackage() == modelPackage;
+ }
+ return false;
+ }
+
+ /**
+ * The switch that delegates to the <code>createXXX</code> methods.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected ComrelSwitch<Adapter> modelSwitch =
+ new ComrelSwitch<Adapter>() {
+ @Override
+ public Adapter caseCompositeRefactoring(CompositeRefactoring object) {
+ return createCompositeRefactoringAdapter();
+ }
+ @Override
+ public Adapter caseNamedElement(NamedElement object) {
+ return createNamedElementAdapter();
+ }
+ @Override
+ public Adapter caseDescribedElement(DescribedElement object) {
+ return createDescribedElementAdapter();
+ }
+ @Override
+ public Adapter caseRefactoringUnit(RefactoringUnit object) {
+ return createRefactoringUnitAdapter();
+ }
+ @Override
+ public Adapter caseModelRefactoring(ModelRefactoring object) {
+ return createModelRefactoringAdapter();
+ }
+ @Override
+ public Adapter caseAtomicUnit(AtomicUnit object) {
+ return createAtomicUnitAdapter();
+ }
+ @Override
+ public Adapter caseCompositeUnit(CompositeUnit object) {
+ return createCompositeUnitAdapter();
+ }
+ @Override
+ public Adapter caseSequentialUnit(SequentialUnit object) {
+ return createSequentialUnitAdapter();
+ }
+ @Override
+ public Adapter caseConditionCheck(ConditionCheck object) {
+ return createConditionCheckAdapter();
+ }
+ @Override
+ public Adapter caseConditionalUnit(ConditionalUnit object) {
+ return createConditionalUnitAdapter();
+ }
+ @Override
+ public Adapter caseQueuedUnit(QueuedUnit object) {
+ return createQueuedUnitAdapter();
+ }
+ @Override
+ public Adapter caseSingleQueuedUnit(SingleQueuedUnit object) {
+ return createSingleQueuedUnitAdapter();
+ }
+ @Override
+ public Adapter caseTwicedQueuedUnit(TwicedQueuedUnit object) {
+ return createTwicedQueuedUnitAdapter();
+ }
+ @Override
+ public Adapter caseCartesianQueuedUnit(CartesianQueuedUnit object) {
+ return createCartesianQueuedUnitAdapter();
+ }
+ @Override
+ public Adapter caseParallelQueuedUnit(ParallelQueuedUnit object) {
+ return createParallelQueuedUnitAdapter();
+ }
+ @Override
+ public Adapter caseHelperUnit(HelperUnit object) {
+ return createHelperUnitAdapter();
+ }
+ @Override
+ public Adapter caseFeatureUnit(FeatureUnit object) {
+ return createFeatureUnitAdapter();
+ }
+ @Override
+ public Adapter caseSingleFeatureUnit(SingleFeatureUnit object) {
+ return createSingleFeatureUnitAdapter();
+ }
+ @Override
+ public Adapter caseMultiFeatureUnit(MultiFeatureUnit object) {
+ return createMultiFeatureUnitAdapter();
+ }
+ @Override
+ public Adapter caseFilterUnit(FilterUnit object) {
+ return createFilterUnitAdapter();
+ }
+ @Override
+ public Adapter caseSingleFilterUnit(SingleFilterUnit object) {
+ return createSingleFilterUnitAdapter();
+ }
+ @Override
+ public Adapter caseMultiFilterUnit(MultiFilterUnit object) {
+ return createMultiFilterUnitAdapter();
+ }
+ @Override
+ public Adapter caseHelper(Helper object) {
+ return createHelperAdapter();
+ }
+ @Override
+ public Adapter caseFeatureHelper(FeatureHelper object) {
+ return createFeatureHelperAdapter();
+ }
+ @Override
+ public Adapter caseSingleFeatureHelper(SingleFeatureHelper object) {
+ return createSingleFeatureHelperAdapter();
+ }
+ @Override
+ public Adapter caseMultiFeatureHelper(MultiFeatureHelper object) {
+ return createMultiFeatureHelperAdapter();
+ }
+ @Override
+ public Adapter caseFilterHelper(FilterHelper object) {
+ return createFilterHelperAdapter();
+ }
+ @Override
+ public Adapter caseSingleFilterHelper(SingleFilterHelper object) {
+ return createSingleFilterHelperAdapter();
+ }
+ @Override
+ public Adapter caseMultiFilterHelper(MultiFilterHelper object) {
+ return createMultiFilterHelperAdapter();
+ }
+ @Override
+ public Adapter casePort(Port object) {
+ return createPortAdapter();
+ }
+ @Override
+ public Adapter caseSinglePort(SinglePort object) {
+ return createSinglePortAdapter();
+ }
+ @Override
+ public Adapter caseMultiPort(MultiPort object) {
+ return createMultiPortAdapter();
+ }
+ @Override
+ public Adapter caseInputPort(InputPort object) {
+ return createInputPortAdapter();
+ }
+ @Override
+ public Adapter caseOutputPort(OutputPort object) {
+ return createOutputPortAdapter();
+ }
+ @Override
+ public Adapter caseSingleInputPort(SingleInputPort object) {
+ return createSingleInputPortAdapter();
+ }
+ @Override
+ public Adapter caseMultiInputPort(MultiInputPort object) {
+ return createMultiInputPortAdapter();
+ }
+ @Override
+ public Adapter caseSingleOutputPort(SingleOutputPort object) {
+ return createSingleOutputPortAdapter();
+ }
+ @Override
+ public Adapter caseMultiOutputPort(MultiOutputPort object) {
+ return createMultiOutputPortAdapter();
+ }
+ @Override
+ public Adapter casePortMapping(PortMapping object) {
+ return createPortMappingAdapter();
+ }
+ @Override
+ public Adapter caseSinglePortMapping(SinglePortMapping object) {
+ return createSinglePortMappingAdapter();
+ }
+ @Override
+ public Adapter caseMultiPortMapping(MultiPortMapping object) {
+ return createMultiPortMappingAdapter();
+ }
+ @Override
+ public Adapter caseMultiSinglePortMapping(MultiSinglePortMapping object) {
+ return createMultiSinglePortMappingAdapter();
+ }
+ @Override
+ public Adapter defaultCase(EObject object) {
+ return createEObjectAdapter();
+ }
+ };
+
+ /**
+ * Creates an adapter for the <code>target</code>.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @param target the object to adapt.
+ * @return the adapter for the <code>target</code>.
+ * @generated
+ */
+ @Override
+ public Adapter createAdapter(Notifier target) {
+ return modelSwitch.doSwitch((EObject)target);
+ }
+
+
+ /**
+ * Creates a new adapter for an object of class '{@link comrel.CompositeRefactoring <em>Composite Refactoring</em>}'.
+ * <!-- begin-user-doc -->
+ * This default implementation returns null so that we can easily ignore cases;
+ * it's useful to ignore a case when inheritance will catch all the cases anyway.
+ * <!-- end-user-doc -->
+ * @return the new adapter.
+ * @see comrel.CompositeRefactoring
+ * @generated
+ */
+ public Adapter createCompositeRefactoringAdapter() {
+ return null;
+ }
+
+ /**
+ * Creates a new adapter for an object of class '{@link comrel.NamedElement <em>Named Element</em>}'.
+ * <!-- begin-user-doc -->
+ * This default implementation returns null so that we can easily ignore cases;
+ * it's useful to ignore a case when inheritance will catch all the cases anyway.
+ * <!-- end-user-doc -->
+ * @return the new adapter.
+ * @see comrel.NamedElement
+ * @generated
+ */
+ public Adapter createNamedElementAdapter() {
+ return null;
+ }
+
+ /**
+ * Creates a new adapter for an object of class '{@link comrel.DescribedElement <em>Described Element</em>}'.
+ * <!-- begin-user-doc -->
+ * This default implementation returns null so that we can easily ignore cases;
+ * it's useful to ignore a case when inheritance will catch all the cases anyway.
+ * <!-- end-user-doc -->
+ * @return the new adapter.
+ * @see comrel.DescribedElement
+ * @generated
+ */
+ public Adapter createDescribedElementAdapter() {
+ return null;
+ }
+
+ /**
+ * Creates a new adapter for an object of class '{@link comrel.RefactoringUnit <em>Refactoring Unit</em>}'.
+ * <!-- begin-user-doc -->
+ * This default implementation returns null so that we can easily ignore cases;
+ * it's useful to ignore a case when inheritance will catch all the cases anyway.
+ * <!-- end-user-doc -->
+ * @return the new adapter.
+ * @see comrel.RefactoringUnit
+ * @generated
+ */
+ public Adapter createRefactoringUnitAdapter() {
+ return null;
+ }
+
+ /**
+ * Creates a new adapter for an object of class '{@link comrel.ModelRefactoring <em>Model Refactoring</em>}'.
+ * <!-- begin-user-doc -->
+ * This default implementation returns null so that we can easily ignore cases;
+ * it's useful to ignore a case when inheritance will catch all the cases anyway.
+ * <!-- end-user-doc -->
+ * @return the new adapter.
+ * @see comrel.ModelRefactoring
+ * @generated
+ */
+ public Adapter createModelRefactoringAdapter() {
+ return null;
+ }
+
+ /**
+ * Creates a new adapter for an object of class '{@link comrel.AtomicUnit <em>Atomic Unit</em>}'.
+ * <!-- begin-user-doc -->
+ * This default implementation returns null so that we can easily ignore cases;
+ * it's useful to ignore a case when inheritance will catch all the cases anyway.
+ * <!-- end-user-doc -->
+ * @return the new adapter.
+ * @see comrel.AtomicUnit
+ * @generated
+ */
+ public Adapter createAtomicUnitAdapter() {
+ return null;
+ }
+
+ /**
+ * Creates a new adapter for an object of class '{@link comrel.CompositeUnit <em>Composite Unit</em>}'.
+ * <!-- begin-user-doc -->
+ * This default implementation returns null so that we can easily ignore cases;
+ * it's useful to ignore a case when inheritance will catch all the cases anyway.
+ * <!-- end-user-doc -->
+ * @return the new adapter.
+ * @see comrel.CompositeUnit
+ * @generated
+ */
+ public Adapter createCompositeUnitAdapter() {
+ return null;
+ }
+
+ /**
+ * Creates a new adapter for an object of class '{@link comrel.SequentialUnit <em>Sequential Unit</em>}'.
+ * <!-- begin-user-doc -->
+ * This default implementation returns null so that we can easily ignore cases;
+ * it's useful to ignore a case when inheritance will catch all the cases anyway.
+ * <!-- end-user-doc -->
+ * @return the new adapter.
+ * @see comrel.SequentialUnit
+ * @generated
+ */
+ public Adapter createSequentialUnitAdapter() {
+ return null;
+ }
+
+ /**
+ * Creates a new adapter for an object of class '{@link comrel.ConditionCheck <em>Condition Check</em>}'.
+ * <!-- begin-user-doc -->
+ * This default implementation returns null so that we can easily ignore cases;
+ * it's useful to ignore a case when inheritance will catch all the cases anyway.
+ * <!-- end-user-doc -->
+ * @return the new adapter.
+ * @see comrel.ConditionCheck
+ * @generated
+ */
+ public Adapter createConditionCheckAdapter() {
+ return null;
+ }
+
+ /**
+ * Creates a new adapter for an object of class '{@link comrel.ConditionalUnit <em>Conditional Unit</em>}'.
+ * <!-- begin-user-doc -->
+ * This default implementation returns null so that we can easily ignore cases;
+ * it's useful to ignore a case when inheritance will catch all the cases anyway.
+ * <!-- end-user-doc -->
+ * @return the new adapter.
+ * @see comrel.ConditionalUnit
+ * @generated
+ */
+ public Adapter createConditionalUnitAdapter() {
+ return null;
+ }
+
+ /**
+ * Creates a new adapter for an object of class '{@link comrel.QueuedUnit <em>Queued Unit</em>}'.
+ * <!-- begin-user-doc -->
+ * This default implementation returns null so that we can easily ignore cases;
+ * it's useful to ignore a case when inheritance will catch all the cases anyway.
+ * <!-- end-user-doc -->
+ * @return the new adapter.
+ * @see comrel.QueuedUnit
+ * @generated
+ */
+ public Adapter createQueuedUnitAdapter() {
+ return null;
+ }
+
+ /**
+ * Creates a new adapter for an object of class '{@link comrel.SingleQueuedUnit <em>Single Queued Unit</em>}'.
+ * <!-- begin-user-doc -->
+ * This default implementation returns null so that we can easily ignore cases;
+ * it's useful to ignore a case when inheritance will catch all the cases anyway.
+ * <!-- end-user-doc -->
+ * @return the new adapter.
+ * @see comrel.SingleQueuedUnit
+ * @generated
+ */
+ public Adapter createSingleQueuedUnitAdapter() {
+ return null;
+ }
+
+ /**
+ * Creates a new adapter for an object of class '{@link comrel.TwicedQueuedUnit <em>Twiced Queued Unit</em>}'.
+ * <!-- begin-user-doc -->
+ * This default implementation returns null so that we can easily ignore cases;
+ * it's useful to ignore a case when inheritance will catch all the cases anyway.
+ * <!-- end-user-doc -->
+ * @return the new adapter.
+ * @see comrel.TwicedQueuedUnit
+ * @generated
+ */
+ public Adapter createTwicedQueuedUnitAdapter() {
+ return null;
+ }
+
+ /**
+ * Creates a new adapter for an object of class '{@link comrel.CartesianQueuedUnit <em>Cartesian Queued Unit</em>}'.
+ * <!-- begin-user-doc -->
+ * This default implementation returns null so that we can easily ignore cases;
+ * it's useful to ignore a case when inheritance will catch all the cases anyway.
+ * <!-- end-user-doc -->
+ * @return the new adapter.
+ * @see comrel.CartesianQueuedUnit
+ * @generated
+ */
+ public Adapter createCartesianQueuedUnitAdapter() {
+ return null;
+ }
+
+ /**
+ * Creates a new adapter for an object of class '{@link comrel.ParallelQueuedUnit <em>Parallel Queued Unit</em>}'.
+ * <!-- begin-user-doc -->
+ * This default implementation returns null so that we can easily ignore cases;
+ * it's useful to ignore a case when inheritance will catch all the cases anyway.
+ * <!-- end-user-doc -->
+ * @return the new adapter.
+ * @see comrel.ParallelQueuedUnit
+ * @generated
+ */
+ public Adapter createParallelQueuedUnitAdapter() {
+ return null;
+ }
+
+ /**
+ * Creates a new adapter for an object of class '{@link comrel.HelperUnit <em>Helper Unit</em>}'.
+ * <!-- begin-user-doc -->
+ * This default implementation returns null so that we can easily ignore cases;
+ * it's useful to ignore a case when inheritance will catch all the cases anyway.
+ * <!-- end-user-doc -->
+ * @return the new adapter.
+ * @see comrel.HelperUnit
+ * @generated
+ */
+ public Adapter createHelperUnitAdapter() {
+ return null;
+ }
+
+ /**
+ * Creates a new adapter for an object of class '{@link comrel.FeatureUnit <em>Feature Unit</em>}'.
+ * <!-- begin-user-doc -->
+ * This default implementation returns null so that we can easily ignore cases;
+ * it's useful to ignore a case when inheritance will catch all the cases anyway.
+ * <!-- end-user-doc -->
+ * @return the new adapter.
+ * @see comrel.FeatureUnit
+ * @generated
+ */
+ public Adapter createFeatureUnitAdapter() {
+ return null;
+ }
+
+ /**
+ * Creates a new adapter for an object of class '{@link comrel.SingleFeatureUnit <em>Single Feature Unit</em>}'.
+ * <!-- begin-user-doc -->
+ * This default implementation returns null so that we can easily ignore cases;
+ * it's useful to ignore a case when inheritance will catch all the cases anyway.
+ * <!-- end-user-doc -->
+ * @return the new adapter.
+ * @see comrel.SingleFeatureUnit
+ * @generated
+ */
+ public Adapter createSingleFeatureUnitAdapter() {
+ return null;
+ }
+
+ /**
+ * Creates a new adapter for an object of class '{@link comrel.MultiFeatureUnit <em>Multi Feature Unit</em>}'.
+ * <!-- begin-user-doc -->
+ * This default implementation returns null so that we can easily ignore cases;
+ * it's useful to ignore a case when inheritance will catch all the cases anyway.
+ * <!-- end-user-doc -->
+ * @return the new adapter.
+ * @see comrel.MultiFeatureUnit
+ * @generated
+ */
+ public Adapter createMultiFeatureUnitAdapter() {
+ return null;
+ }
+
+ /**
+ * Creates a new adapter for an object of class '{@link comrel.FilterUnit <em>Filter Unit</em>}'.
+ * <!-- begin-user-doc -->
+ * This default implementation returns null so that we can easily ignore cases;
+ * it's useful to ignore a case when inheritance will catch all the cases anyway.
+ * <!-- end-user-doc -->
+ * @return the new adapter.
+ * @see comrel.FilterUnit
+ * @generated
+ */
+ public Adapter createFilterUnitAdapter() {
+ return null;
+ }
+
+ /**
+ * Creates a new adapter for an object of class '{@link comrel.SingleFilterUnit <em>Single Filter Unit</em>}'.
+ * <!-- begin-user-doc -->
+ * This default implementation returns null so that we can easily ignore cases;
+ * it's useful to ignore a case when inheritance will catch all the cases anyway.
+ * <!-- end-user-doc -->
+ * @return the new adapter.
+ * @see comrel.SingleFilterUnit
+ * @generated
+ */
+ public Adapter createSingleFilterUnitAdapter() {
+ return null;
+ }
+
+ /**
+ * Creates a new adapter for an object of class '{@link comrel.MultiFilterUnit <em>Multi Filter Unit</em>}'.
+ * <!-- begin-user-doc -->
+ * This default implementation returns null so that we can easily ignore cases;
+ * it's useful to ignore a case when inheritance will catch all the cases anyway.
+ * <!-- end-user-doc -->
+ * @return the new adapter.
+ * @see comrel.MultiFilterUnit
+ * @generated
+ */
+ public Adapter createMultiFilterUnitAdapter() {
+ return null;
+ }
+
+ /**
+ * Creates a new adapter for an object of class '{@link comrel.Helper <em>Helper</em>}'.
+ * <!-- begin-user-doc -->
+ * This default implementation returns null so that we can easily ignore cases;
+ * it's useful to ignore a case when inheritance will catch all the cases anyway.
+ * <!-- end-user-doc -->
+ * @return the new adapter.
+ * @see comrel.Helper
+ * @generated
+ */
+ public Adapter createHelperAdapter() {
+ return null;
+ }
+
+ /**
+ * Creates a new adapter for an object of class '{@link comrel.FeatureHelper <em>Feature Helper</em>}'.
+ * <!-- begin-user-doc -->
+ * This default implementation returns null so that we can easily ignore cases;
+ * it's useful to ignore a case when inheritance will catch all the cases anyway.
+ * <!-- end-user-doc -->
+ * @return the new adapter.
+ * @see comrel.FeatureHelper
+ * @generated
+ */
+ public Adapter createFeatureHelperAdapter() {
+ return null;
+ }
+
+ /**
+ * Creates a new adapter for an object of class '{@link comrel.SingleFeatureHelper <em>Single Feature Helper</em>}'.
+ * <!-- begin-user-doc -->
+ * This default implementation returns null so that we can easily ignore cases;
+ * it's useful to ignore a case when inheritance will catch all the cases anyway.
+ * <!-- end-user-doc -->
+ * @return the new adapter.
+ * @see comrel.SingleFeatureHelper
+ * @generated
+ */
+ public Adapter createSingleFeatureHelperAdapter() {
+ return null;
+ }
+
+ /**
+ * Creates a new adapter for an object of class '{@link comrel.MultiFeatureHelper <em>Multi Feature Helper</em>}'.
+ * <!-- begin-user-doc -->
+ * This default implementation returns null so that we can easily ignore cases;
+ * it's useful to ignore a case when inheritance will catch all the cases anyway.
+ * <!-- end-user-doc -->
+ * @return the new adapter.
+ * @see comrel.MultiFeatureHelper
+ * @generated
+ */
+ public Adapter createMultiFeatureHelperAdapter() {
+ return null;
+ }
+
+ /**
+ * Creates a new adapter for an object of class '{@link comrel.FilterHelper <em>Filter Helper</em>}'.
+ * <!-- begin-user-doc -->
+ * This default implementation returns null so that we can easily ignore cases;
+ * it's useful to ignore a case when inheritance will catch all the cases anyway.
+ * <!-- end-user-doc -->
+ * @return the new adapter.
+ * @see comrel.FilterHelper
+ * @generated
+ */
+ public Adapter createFilterHelperAdapter() {
+ return null;
+ }
+
+ /**
+ * Creates a new adapter for an object of class '{@link comrel.SingleFilterHelper <em>Single Filter Helper</em>}'.
+ * <!-- begin-user-doc -->
+ * This default implementation returns null so that we can easily ignore cases;
+ * it's useful to ignore a case when inheritance will catch all the cases anyway.
+ * <!-- end-user-doc -->
+ * @return the new adapter.
+ * @see comrel.SingleFilterHelper
+ * @generated
+ */
+ public Adapter createSingleFilterHelperAdapter() {
+ return null;
+ }
+
+ /**
+ * Creates a new adapter for an object of class '{@link comrel.MultiFilterHelper <em>Multi Filter Helper</em>}'.
+ * <!-- begin-user-doc -->
+ * This default implementation returns null so that we can easily ignore cases;
+ * it's useful to ignore a case when inheritance will catch all the cases anyway.
+ * <!-- end-user-doc -->
+ * @return the new adapter.
+ * @see comrel.MultiFilterHelper
+ * @generated
+ */
+ public Adapter createMultiFilterHelperAdapter() {
+ return null;
+ }
+
+ /**
+ * Creates a new adapter for an object of class '{@link comrel.Port <em>Port</em>}'.
+ * <!-- begin-user-doc -->
+ * This default implementation returns null so that we can easily ignore cases;
+ * it's useful to ignore a case when inheritance will catch all the cases anyway.
+ * <!-- end-user-doc -->
+ * @return the new adapter.
+ * @see comrel.Port
+ * @generated
+ */
+ public Adapter createPortAdapter() {
+ return null;
+ }
+
+ /**
+ * Creates a new adapter for an object of class '{@link comrel.SinglePort <em>Single Port</em>}'.
+ * <!-- begin-user-doc -->
+ * This default implementation returns null so that we can easily ignore cases;
+ * it's useful to ignore a case when inheritance will catch all the cases anyway.
+ * <!-- end-user-doc -->
+ * @return the new adapter.
+ * @see comrel.SinglePort
+ * @generated
+ */
+ public Adapter createSinglePortAdapter() {
+ return null;
+ }
+
+ /**
+ * Creates a new adapter for an object of class '{@link comrel.MultiPort <em>Multi Port</em>}'.
+ * <!-- begin-user-doc -->
+ * This default implementation returns null so that we can easily ignore cases;
+ * it's useful to ignore a case when inheritance will catch all the cases anyway.
+ * <!-- end-user-doc -->
+ * @return the new adapter.
+ * @see comrel.MultiPort
+ * @generated
+ */
+ public Adapter createMultiPortAdapter() {
+ return null;
+ }
+
+ /**
+ * Creates a new adapter for an object of class '{@link comrel.InputPort <em>Input Port</em>}'.
+ * <!-- begin-user-doc -->
+ * This default implementation returns null so that we can easily ignore cases;
+ * it's useful to ignore a case when inheritance will catch all the cases anyway.
+ * <!-- end-user-doc -->
+ * @return the new adapter.
+ * @see comrel.InputPort
+ * @generated
+ */
+ public Adapter createInputPortAdapter() {
+ return null;
+ }
+
+ /**
+ * Creates a new adapter for an object of class '{@link comrel.OutputPort <em>Output Port</em>}'.
+ * <!-- begin-user-doc -->
+ * This default implementation returns null so that we can easily ignore cases;
+ * it's useful to ignore a case when inheritance will catch all the cases anyway.
+ * <!-- end-user-doc -->
+ * @return the new adapter.
+ * @see comrel.OutputPort
+ * @generated
+ */
+ public Adapter createOutputPortAdapter() {
+ return null;
+ }
+
+ /**
+ * Creates a new adapter for an object of class '{@link comrel.SingleInputPort <em>Single Input Port</em>}'.
+ * <!-- begin-user-doc -->
+ * This default implementation returns null so that we can easily ignore cases;
+ * it's useful to ignore a case when inheritance will catch all the cases anyway.
+ * <!-- end-user-doc -->
+ * @return the new adapter.
+ * @see comrel.SingleInputPort
+ * @generated
+ */
+ public Adapter createSingleInputPortAdapter() {
+ return null;
+ }
+
+ /**
+ * Creates a new adapter for an object of class '{@link comrel.MultiInputPort <em>Multi Input Port</em>}'.
+ * <!-- begin-user-doc -->
+ * This default implementation returns null so that we can easily ignore cases;
+ * it's useful to ignore a case when inheritance will catch all the cases anyway.
+ * <!-- end-user-doc -->
+ * @return the new adapter.
+ * @see comrel.MultiInputPort
+ * @generated
+ */
+ public Adapter createMultiInputPortAdapter() {
+ return null;
+ }
+
+ /**
+ * Creates a new adapter for an object of class '{@link comrel.SingleOutputPort <em>Single Output Port</em>}'.
+ * <!-- begin-user-doc -->
+ * This default implementation returns null so that we can easily ignore cases;
+ * it's useful to ignore a case when inheritance will catch all the cases anyway.
+ * <!-- end-user-doc -->
+ * @return the new adapter.
+ * @see comrel.SingleOutputPort
+ * @generated
+ */
+ public Adapter createSingleOutputPortAdapter() {
+ return null;
+ }
+
+ /**
+ * Creates a new adapter for an object of class '{@link comrel.MultiOutputPort <em>Multi Output Port</em>}'.
+ * <!-- begin-user-doc -->
+ * This default implementation returns null so that we can easily ignore cases;
+ * it's useful to ignore a case when inheritance will catch all the cases anyway.
+ * <!-- end-user-doc -->
+ * @return the new adapter.
+ * @see comrel.MultiOutputPort
+ * @generated
+ */
+ public Adapter createMultiOutputPortAdapter() {
+ return null;
+ }
+
+ /**
+ * Creates a new adapter for an object of class '{@link comrel.PortMapping <em>Port Mapping</em>}'.
+ * <!-- begin-user-doc -->
+ * This default implementation returns null so that we can easily ignore cases;
+ * it's useful to ignore a case when inheritance will catch all the cases anyway.
+ * <!-- end-user-doc -->
+ * @return the new adapter.
+ * @see comrel.PortMapping
+ * @generated
+ */
+ public Adapter createPortMappingAdapter() {
+ return null;
+ }
+
+ /**
+ * Creates a new adapter for an object of class '{@link comrel.SinglePortMapping <em>Single Port Mapping</em>}'.
+ * <!-- begin-user-doc -->
+ * This default implementation returns null so that we can easily ignore cases;
+ * it's useful to ignore a case when inheritance will catch all the cases anyway.
+ * <!-- end-user-doc -->
+ * @return the new adapter.
+ * @see comrel.SinglePortMapping
+ * @generated
+ */
+ public Adapter createSinglePortMappingAdapter() {
+ return null;
+ }
+
+ /**
+ * Creates a new adapter for an object of class '{@link comrel.MultiPortMapping <em>Multi Port Mapping</em>}'.
+ * <!-- begin-user-doc -->
+ * This default implementation returns null so that we can easily ignore cases;
+ * it's useful to ignore a case when inheritance will catch all the cases anyway.
+ * <!-- end-user-doc -->
+ * @return the new adapter.
+ * @see comrel.MultiPortMapping
+ * @generated
+ */
+ public Adapter createMultiPortMappingAdapter() {
+ return null;
+ }
+
+ /**
+ * Creates a new adapter for an object of class '{@link comrel.MultiSinglePortMapping <em>Multi Single Port Mapping</em>}'.
+ * <!-- begin-user-doc -->
+ * This default implementation returns null so that we can easily ignore cases;
+ * it's useful to ignore a case when inheritance will catch all the cases anyway.
+ * <!-- end-user-doc -->
+ * @return the new adapter.
+ * @see comrel.MultiSinglePortMapping
+ * @generated
+ */
+ public Adapter createMultiSinglePortMappingAdapter() {
+ return null;
+ }
+
+ /**
+ * Creates a new adapter for the default case.
+ * <!-- begin-user-doc -->
+ * This default implementation returns null.
+ * <!-- end-user-doc -->
+ * @return the new adapter.
+ * @generated
+ */
+ public Adapter createEObjectAdapter() {
+ return null;
+ }
+
+} //ComrelAdapterFactory
diff --git a/org.eclipse.emf.refactor.comrel/src/comrel/util/ComrelSwitch.java b/org.eclipse.emf.refactor.comrel/src/comrel/util/ComrelSwitch.java
new file mode 100644
index 0000000..1cad47c
--- /dev/null
+++ b/org.eclipse.emf.refactor.comrel/src/comrel/util/ComrelSwitch.java
@@ -0,0 +1,1115 @@
+/**
+ * <copyright>
+ * </copyright>
+ *
+ * $Id$
+ */
+package comrel.util;
+
+import comrel.*;
+
+import java.util.List;
+
+import org.eclipse.emf.ecore.EClass;
+import org.eclipse.emf.ecore.EObject;
+
+/**
+ * <!-- begin-user-doc -->
+ * The <b>Switch</b> for the model's inheritance hierarchy.
+ * It supports the call {@link #doSwitch(EObject) doSwitch(object)}
+ * to invoke the <code>caseXXX</code> method for each class of the model,
+ * starting with the actual class of the object
+ * and proceeding up the inheritance hierarchy
+ * until a non-null result is returned,
+ * which is the result of the switch.
+ * <!-- end-user-doc -->
+ * @see comrel.ComrelPackage
+ * @generated
+ */
+public class ComrelSwitch<T> {
+ /**
+ * The cached model package
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected static ComrelPackage modelPackage;
+
+ /**
+ * Creates an instance of the switch.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public ComrelSwitch() {
+ if (modelPackage == null) {
+ modelPackage = ComrelPackage.eINSTANCE;
+ }
+ }
+
+ /**
+ * Calls <code>caseXXX</code> for each class of the model until one returns a non null result; it yields that result.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the first non-null result returned by a <code>caseXXX</code> call.
+ * @generated
+ */
+ public T doSwitch(EObject theEObject) {
+ return doSwitch(theEObject.eClass(), theEObject);
+ }
+
+ /**
+ * Calls <code>caseXXX</code> for each class of the model until one returns a non null result; it yields that result.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the first non-null result returned by a <code>caseXXX</code> call.
+ * @generated
+ */
+ protected T doSwitch(EClass theEClass, EObject theEObject) {
+ if (theEClass.eContainer() == modelPackage) {
+ return doSwitch(theEClass.getClassifierID(), theEObject);
+ }
+ else {
+ List<EClass> eSuperTypes = theEClass.getESuperTypes();
+ return
+ eSuperTypes.isEmpty() ?
+ defaultCase(theEObject) :
+ doSwitch(eSuperTypes.get(0), theEObject);
+ }
+ }
+
+ /**
+ * Calls <code>caseXXX</code> for each class of the model until one returns a non null result; it yields that result.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the first non-null result returned by a <code>caseXXX</code> call.
+ * @generated
+ */
+ protected T doSwitch(int classifierID, EObject theEObject) {
+ switch (classifierID) {
+ case ComrelPackage.COMPOSITE_REFACTORING: {
+ CompositeRefactoring compositeRefactoring = (CompositeRefactoring)theEObject;
+ T result = caseCompositeRefactoring(compositeRefactoring);
+ if (result == null) result = caseModelRefactoring(compositeRefactoring);
+ if (result == null) result = caseNamedElement(compositeRefactoring);
+ if (result == null) result = caseDescribedElement(compositeRefactoring);
+ if (result == null) result = defaultCase(theEObject);
+ return result;
+ }
+ case ComrelPackage.NAMED_ELEMENT: {
+ NamedElement namedElement = (NamedElement)theEObject;
+ T result = caseNamedElement(namedElement);
+ if (result == null) result = defaultCase(theEObject);
+ return result;
+ }
+ case ComrelPackage.DESCRIBED_ELEMENT: {
+ DescribedElement describedElement = (DescribedElement)theEObject;
+ T result = caseDescribedElement(describedElement);
+ if (result == null) result = defaultCase(theEObject);
+ return result;
+ }
+ case ComrelPackage.REFACTORING_UNIT: {
+ RefactoringUnit refactoringUnit = (RefactoringUnit)theEObject;
+ T result = caseRefactoringUnit(refactoringUnit);
+ if (result == null) result = caseNamedElement(refactoringUnit);
+ if (result == null) result = defaultCase(theEObject);
+ return result;
+ }
+ case ComrelPackage.MODEL_REFACTORING: {
+ ModelRefactoring modelRefactoring = (ModelRefactoring)theEObject;
+ T result = caseModelRefactoring(modelRefactoring);
+ if (result == null) result = caseNamedElement(modelRefactoring);
+ if (result == null) result = caseDescribedElement(modelRefactoring);
+ if (result == null) result = defaultCase(theEObject);
+ return result;
+ }
+ case ComrelPackage.ATOMIC_UNIT: {
+ AtomicUnit atomicUnit = (AtomicUnit)theEObject;
+ T result = caseAtomicUnit(atomicUnit);
+ if (result == null) result = caseRefactoringUnit(atomicUnit);
+ if (result == null) result = caseNamedElement(atomicUnit);
+ if (result == null) result = defaultCase(theEObject);
+ return result;
+ }
+ case ComrelPackage.COMPOSITE_UNIT: {
+ CompositeUnit compositeUnit = (CompositeUnit)theEObject;
+ T result = caseCompositeUnit(compositeUnit);
+ if (result == null) result = caseRefactoringUnit(compositeUnit);
+ if (result == null) result = caseNamedElement(compositeUnit);
+ if (result == null) result = defaultCase(theEObject);
+ return result;
+ }
+ case ComrelPackage.SEQUENTIAL_UNIT: {
+ SequentialUnit sequentialUnit = (SequentialUnit)theEObject;
+ T result = caseSequentialUnit(sequentialUnit);
+ if (result == null) result = caseCompositeUnit(sequentialUnit);
+ if (result == null) result = caseRefactoringUnit(sequentialUnit);
+ if (result == null) result = caseNamedElement(sequentialUnit);
+ if (result == null) result = defaultCase(theEObject);
+ return result;
+ }
+ case ComrelPackage.CONDITION_CHECK: {
+ ConditionCheck conditionCheck = (ConditionCheck)theEObject;
+ T result = caseConditionCheck(conditionCheck);
+ if (result == null) result = caseNamedElement(conditionCheck);
+ if (result == null) result = caseDescribedElement(conditionCheck);
+ if (result == null) result = defaultCase(theEObject);
+ return result;
+ }
+ case ComrelPackage.CONDITIONAL_UNIT: {
+ ConditionalUnit conditionalUnit = (ConditionalUnit)theEObject;
+ T result = caseConditionalUnit(conditionalUnit);
+ if (result == null) result = caseCompositeUnit(conditionalUnit);
+ if (result == null) result = caseRefactoringUnit(conditionalUnit);
+ if (result == null) result = caseNamedElement(conditionalUnit);
+ if (result == null) result = defaultCase(theEObject);
+ return result;
+ }
+ case ComrelPackage.QUEUED_UNIT: {
+ QueuedUnit queuedUnit = (QueuedUnit)theEObject;
+ T result = caseQueuedUnit(queuedUnit);
+ if (result == null) result = caseCompositeUnit(queuedUnit);
+ if (result == null) result = caseRefactoringUnit(queuedUnit);
+ if (result == null) result = caseNamedElement(queuedUnit);
+ if (result == null) result = defaultCase(theEObject);
+ return result;
+ }
+ case ComrelPackage.SINGLE_QUEUED_UNIT: {
+ SingleQueuedUnit singleQueuedUnit = (SingleQueuedUnit)theEObject;
+ T result = caseSingleQueuedUnit(singleQueuedUnit);
+ if (result == null) result = caseQueuedUnit(singleQueuedUnit);
+ if (result == null) result = caseCompositeUnit(singleQueuedUnit);
+ if (result == null) result = caseRefactoringUnit(singleQueuedUnit);
+ if (result == null) result = caseNamedElement(singleQueuedUnit);
+ if (result == null) result = defaultCase(theEObject);
+ return result;
+ }
+ case ComrelPackage.TWICED_QUEUED_UNIT: {
+ TwicedQueuedUnit twicedQueuedUnit = (TwicedQueuedUnit)theEObject;
+ T result = caseTwicedQueuedUnit(twicedQueuedUnit);
+ if (result == null) result = caseQueuedUnit(twicedQueuedUnit);
+ if (result == null) result = caseCompositeUnit(twicedQueuedUnit);
+ if (result == null) result = caseRefactoringUnit(twicedQueuedUnit);
+ if (result == null) result = caseNamedElement(twicedQueuedUnit);
+ if (result == null) result = defaultCase(theEObject);
+ return result;
+ }
+ case ComrelPackage.CARTESIAN_QUEUED_UNIT: {
+ CartesianQueuedUnit cartesianQueuedUnit = (CartesianQueuedUnit)theEObject;
+ T result = caseCartesianQueuedUnit(cartesianQueuedUnit);
+ if (result == null) result = caseTwicedQueuedUnit(cartesianQueuedUnit);
+ if (result == null) result = caseQueuedUnit(cartesianQueuedUnit);
+ if (result == null) result = caseCompositeUnit(cartesianQueuedUnit);
+ if (result == null) result = caseRefactoringUnit(cartesianQueuedUnit);
+ if (result == null) result = caseNamedElement(cartesianQueuedUnit);
+ if (result == null) result = defaultCase(theEObject);
+ return result;
+ }
+ case ComrelPackage.PARALLEL_QUEUED_UNIT: {
+ ParallelQueuedUnit parallelQueuedUnit = (ParallelQueuedUnit)theEObject;
+ T result = caseParallelQueuedUnit(parallelQueuedUnit);
+ if (result == null) result = caseTwicedQueuedUnit(parallelQueuedUnit);
+ if (result == null) result = caseQueuedUnit(parallelQueuedUnit);
+ if (result == null) result = caseCompositeUnit(parallelQueuedUnit);
+ if (result == null) result = caseRefactoringUnit(parallelQueuedUnit);
+ if (result == null) result = caseNamedElement(parallelQueuedUnit);
+ if (result == null) result = defaultCase(theEObject);
+ return result;
+ }
+ case ComrelPackage.HELPER_UNIT: {
+ HelperUnit helperUnit = (HelperUnit)theEObject;
+ T result = caseHelperUnit(helperUnit);
+ if (result == null) result = caseNamedElement(helperUnit);
+ if (result == null) result = caseDescribedElement(helperUnit);
+ if (result == null) result = defaultCase(theEObject);
+ return result;
+ }
+ case ComrelPackage.FEATURE_UNIT: {
+ FeatureUnit featureUnit = (FeatureUnit)theEObject;
+ T result = caseFeatureUnit(featureUnit);
+ if (result == null) result = caseHelperUnit(featureUnit);
+ if (result == null) result = caseNamedElement(featureUnit);
+ if (result == null) result = caseDescribedElement(featureUnit);
+ if (result == null) result = defaultCase(theEObject);
+ return result;
+ }
+ case ComrelPackage.SINGLE_FEATURE_UNIT: {
+ SingleFeatureUnit singleFeatureUnit = (SingleFeatureUnit)theEObject;
+ T result = caseSingleFeatureUnit(singleFeatureUnit);
+ if (result == null) result = caseFeatureUnit(singleFeatureUnit);
+ if (result == null) result = caseHelperUnit(singleFeatureUnit);
+ if (result == null) result = caseNamedElement(singleFeatureUnit);
+ if (result == null) result = caseDescribedElement(singleFeatureUnit);
+ if (result == null) result = defaultCase(theEObject);
+ return result;
+ }
+ case ComrelPackage.MULTI_FEATURE_UNIT: {
+ MultiFeatureUnit multiFeatureUnit = (MultiFeatureUnit)theEObject;
+ T result = caseMultiFeatureUnit(multiFeatureUnit);
+ if (result == null) result = caseFeatureUnit(multiFeatureUnit);
+ if (result == null) result = caseHelperUnit(multiFeatureUnit);
+ if (result == null) result = caseNamedElement(multiFeatureUnit);
+ if (result == null) result = caseDescribedElement(multiFeatureUnit);
+ if (result == null) result = defaultCase(theEObject);
+ return result;
+ }
+ case ComrelPackage.FILTER_UNIT: {
+ FilterUnit filterUnit = (FilterUnit)theEObject;
+ T result = caseFilterUnit(filterUnit);
+ if (result == null) result = caseHelperUnit(filterUnit);
+ if (result == null) result = caseNamedElement(filterUnit);
+ if (result == null) result = caseDescribedElement(filterUnit);
+ if (result == null) result = defaultCase(theEObject);
+ return result;
+ }
+ case ComrelPackage.SINGLE_FILTER_UNIT: {
+ SingleFilterUnit singleFilterUnit = (SingleFilterUnit)theEObject;
+ T result = caseSingleFilterUnit(singleFilterUnit);
+ if (result == null) result = caseFilterUnit(singleFilterUnit);
+ if (result == null) result = caseHelperUnit(singleFilterUnit);
+ if (result == null) result = caseNamedElement(singleFilterUnit);
+ if (result == null) result = caseDescribedElement(singleFilterUnit);
+ if (result == null) result = defaultCase(theEObject);
+ return result;
+ }
+ case ComrelPackage.MULTI_FILTER_UNIT: {
+ MultiFilterUnit multiFilterUnit = (MultiFilterUnit)theEObject;
+ T result = caseMultiFilterUnit(multiFilterUnit);
+ if (result == null) result = caseFilterUnit(multiFilterUnit);
+ if (result == null) result = caseHelperUnit(multiFilterUnit);
+ if (result == null) result = caseNamedElement(multiFilterUnit);
+ if (result == null) result = caseDescribedElement(multiFilterUnit);
+ if (result == null) result = defaultCase(theEObject);
+ return result;
+ }
+ case ComrelPackage.HELPER: {
+ Helper helper = (Helper)theEObject;
+ T result = caseHelper(helper);
+ if (result == null) result = caseNamedElement(helper);
+ if (result == null) result = caseDescribedElement(helper);
+ if (result == null) result = defaultCase(theEObject);
+ return result;
+ }
+ case ComrelPackage.FEATURE_HELPER: {
+ FeatureHelper featureHelper = (FeatureHelper)theEObject;
+ T result = caseFeatureHelper(featureHelper);
+ if (result == null) result = caseHelper(featureHelper);
+ if (result == null) result = caseNamedElement(featureHelper);
+ if (result == null) result = caseDescribedElement(featureHelper);
+ if (result == null) result = defaultCase(theEObject);
+ return result;
+ }
+ case ComrelPackage.SINGLE_FEATURE_HELPER: {
+ SingleFeatureHelper singleFeatureHelper = (SingleFeatureHelper)theEObject;
+ T result = caseSingleFeatureHelper(singleFeatureHelper);
+ if (result == null) result = caseFeatureHelper(singleFeatureHelper);
+ if (result == null) result = caseHelper(singleFeatureHelper);
+ if (result == null) result = caseNamedElement(singleFeatureHelper);
+ if (result == null) result = caseDescribedElement(singleFeatureHelper);
+ if (result == null) result = defaultCase(theEObject);
+ return result;
+ }
+ case ComrelPackage.MULTI_FEATURE_HELPER: {
+ MultiFeatureHelper multiFeatureHelper = (MultiFeatureHelper)theEObject;
+ T result = caseMultiFeatureHelper(multiFeatureHelper);
+ if (result == null) result = caseFeatureHelper(multiFeatureHelper);
+ if (result == null) result = caseHelper(multiFeatureHelper);
+ if (result == null) result = caseNamedElement(multiFeatureHelper);
+ if (result == null) result = caseDescribedElement(multiFeatureHelper);
+ if (result == null) result = defaultCase(theEObject);
+ return result;
+ }
+ case ComrelPackage.FILTER_HELPER: {
+ FilterHelper filterHelper = (FilterHelper)theEObject;
+ T result = caseFilterHelper(filterHelper);
+ if (result == null) result = caseHelper(filterHelper);
+ if (result == null) result = caseNamedElement(filterHelper);
+ if (result == null) result = caseDescribedElement(filterHelper);
+ if (result == null) result = defaultCase(theEObject);
+ return result;
+ }
+ case ComrelPackage.SINGLE_FILTER_HELPER: {
+ SingleFilterHelper singleFilterHelper = (SingleFilterHelper)theEObject;
+ T result = caseSingleFilterHelper(singleFilterHelper);
+ if (result == null) result = caseFilterHelper(singleFilterHelper);
+ if (result == null) result = caseHelper(singleFilterHelper);
+ if (result == null) result = caseNamedElement(singleFilterHelper);
+ if (result == null) result = caseDescribedElement(singleFilterHelper);
+ if (result == null) result = defaultCase(theEObject);
+ return result;
+ }
+ case ComrelPackage.MULTI_FILTER_HELPER: {
+ MultiFilterHelper multiFilterHelper = (MultiFilterHelper)theEObject;
+ T result = caseMultiFilterHelper(multiFilterHelper);
+ if (result == null) result = caseFilterHelper(multiFilterHelper);
+ if (result == null) result = caseHelper(multiFilterHelper);
+ if (result == null) result = caseNamedElement(multiFilterHelper);
+ if (result == null) result = caseDescribedElement(multiFilterHelper);
+ if (result == null) result = defaultCase(theEObject);
+ return result;
+ }
+ case ComrelPackage.PORT: {
+ Port port = (Port)theEObject;
+ T result = casePort(port);
+ if (result == null) result = caseNamedElement(port);
+ if (result == null) result = caseDescribedElement(port);
+ if (result == null) result = defaultCase(theEObject);
+ return result;
+ }
+ case ComrelPackage.SINGLE_PORT: {
+ SinglePort singlePort = (SinglePort)theEObject;
+ T result = caseSinglePort(singlePort);
+ if (result == null) result = casePort(singlePort);
+ if (result == null) result = caseNamedElement(singlePort);
+ if (result == null) result = caseDescribedElement(singlePort);
+ if (result == null) result = defaultCase(theEObject);
+ return result;
+ }
+ case ComrelPackage.MULTI_PORT: {
+ MultiPort multiPort = (MultiPort)theEObject;
+ T result = caseMultiPort(multiPort);
+ if (result == null) result = casePort(multiPort);
+ if (result == null) result = caseNamedElement(multiPort);
+ if (result == null) result = caseDescribedElement(multiPort);
+ if (result == null) result = defaultCase(theEObject);
+ return result;
+ }
+ case ComrelPackage.INPUT_PORT: {
+ InputPort inputPort = (InputPort)theEObject;
+ T result = caseInputPort(inputPort);
+ if (result == null) result = casePort(inputPort);
+ if (result == null) result = caseNamedElement(inputPort);
+ if (result == null) result = caseDescribedElement(inputPort);
+ if (result == null) result = defaultCase(theEObject);
+ return result;
+ }
+ case ComrelPackage.OUTPUT_PORT: {
+ OutputPort outputPort = (OutputPort)theEObject;
+ T result = caseOutputPort(outputPort);
+ if (result == null) result = casePort(outputPort);
+ if (result == null) result = caseNamedElement(outputPort);
+ if (result == null) result = caseDescribedElement(outputPort);
+ if (result == null) result = defaultCase(theEObject);
+ return result;
+ }
+ case ComrelPackage.SINGLE_INPUT_PORT: {
+ SingleInputPort singleInputPort = (SingleInputPort)theEObject;
+ T result = caseSingleInputPort(singleInputPort);
+ if (result == null) result = caseSinglePort(singleInputPort);
+ if (result == null) result = caseInputPort(singleInputPort);
+ if (result == null) result = casePort(singleInputPort);
+ if (result == null) result = caseNamedElement(singleInputPort);
+ if (result == null) result = caseDescribedElement(singleInputPort);
+ if (result == null) result = defaultCase(theEObject);
+ return result;
+ }
+ case ComrelPackage.MULTI_INPUT_PORT: {
+ MultiInputPort multiInputPort = (MultiInputPort)theEObject;
+ T result = caseMultiInputPort(multiInputPort);
+ if (result == null) result = caseMultiPort(multiInputPort);
+ if (result == null) result = caseInputPort(multiInputPort);
+ if (result == null) result = casePort(multiInputPort);
+ if (result == null) result = caseNamedElement(multiInputPort);
+ if (result == null) result = caseDescribedElement(multiInputPort);
+ if (result == null) result = defaultCase(theEObject);
+ return result;
+ }
+ case ComrelPackage.SINGLE_OUTPUT_PORT: {
+ SingleOutputPort singleOutputPort = (SingleOutputPort)theEObject;
+ T result = caseSingleOutputPort(singleOutputPort);
+ if (result == null) result = caseSinglePort(singleOutputPort);
+ if (result == null) result = caseOutputPort(singleOutputPort);
+ if (result == null) result = casePort(singleOutputPort);
+ if (result == null) result = caseNamedElement(singleOutputPort);
+ if (result == null) result = caseDescribedElement(singleOutputPort);
+ if (result == null) result = defaultCase(theEObject);
+ return result;
+ }
+ case ComrelPackage.MULTI_OUTPUT_PORT: {
+ MultiOutputPort multiOutputPort = (MultiOutputPort)theEObject;
+ T result = caseMultiOutputPort(multiOutputPort);
+ if (result == null) result = caseMultiPort(multiOutputPort);
+ if (result == null) result = caseOutputPort(multiOutputPort);
+ if (result == null) result = casePort(multiOutputPort);
+ if (result == null) result = caseNamedElement(multiOutputPort);
+ if (result == null) result = caseDescribedElement(multiOutputPort);
+ if (result == null) result = defaultCase(theEObject);
+ return result;
+ }
+ case ComrelPackage.PORT_MAPPING: {
+ PortMapping portMapping = (PortMapping)theEObject;
+ T result = casePortMapping(portMapping);
+ if (result == null) result = defaultCase(theEObject);
+ return result;
+ }
+ case ComrelPackage.SINGLE_PORT_MAPPING: {
+ SinglePortMapping singlePortMapping = (SinglePortMapping)theEObject;
+ T result = caseSinglePortMapping(singlePortMapping);
+ if (result == null) result = casePortMapping(singlePortMapping);
+ if (result == null) result = defaultCase(theEObject);
+ return result;
+ }
+ case ComrelPackage.MULTI_PORT_MAPPING: {
+ MultiPortMapping multiPortMapping = (MultiPortMapping)theEObject;
+ T result = caseMultiPortMapping(multiPortMapping);
+ if (result == null) result = casePortMapping(multiPortMapping);
+ if (result == null) result = defaultCase(theEObject);
+ return result;
+ }
+ case ComrelPackage.MULTI_SINGLE_PORT_MAPPING: {
+ MultiSinglePortMapping multiSinglePortMapping = (MultiSinglePortMapping)theEObject;
+ T result = caseMultiSinglePortMapping(multiSinglePortMapping);
+ if (result == null) result = casePortMapping(multiSinglePortMapping);
+ if (result == null) result = defaultCase(theEObject);
+ return result;
+ }
+ default: return defaultCase(theEObject);
+ }
+ }
+
+ /**
+ * Returns the result of interpreting the object as an instance of '<em>Composite Refactoring</em>'.
+ * <!-- begin-user-doc -->
+ * This implementation returns null;
+ * returning a non-null result will terminate the switch.
+ * <!-- end-user-doc -->
+ * @param object the target of the switch.
+ * @return the result of interpreting the object as an instance of '<em>Composite Refactoring</em>'.
+ * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
+ * @generated
+ */
+ public T caseCompositeRefactoring(CompositeRefactoring object) {
+ return null;
+ }
+
+ /**
+ * Returns the result of interpreting the object as an instance of '<em>Named Element</em>'.
+ * <!-- begin-user-doc -->
+ * This implementation returns null;
+ * returning a non-null result will terminate the switch.
+ * <!-- end-user-doc -->
+ * @param object the target of the switch.
+ * @return the result of interpreting the object as an instance of '<em>Named Element</em>'.
+ * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
+ * @generated
+ */
+ public T caseNamedElement(NamedElement object) {
+ return null;
+ }
+
+ /**
+ * Returns the result of interpreting the object as an instance of '<em>Described Element</em>'.
+ * <!-- begin-user-doc -->
+ * This implementation returns null;
+ * returning a non-null result will terminate the switch.
+ * <!-- end-user-doc -->
+ * @param object the target of the switch.
+ * @return the result of interpreting the object as an instance of '<em>Described Element</em>'.
+ * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
+ * @generated
+ */
+ public T caseDescribedElement(DescribedElement object) {
+ return null;
+ }
+
+ /**
+ * Returns the result of interpreting the object as an instance of '<em>Refactoring Unit</em>'.
+ * <!-- begin-user-doc -->
+ * This implementation returns null;
+ * returning a non-null result will terminate the switch.
+ * <!-- end-user-doc -->
+ * @param object the target of the switch.
+ * @return the result of interpreting the object as an instance of '<em>Refactoring Unit</em>'.
+ * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
+ * @generated
+ */
+ public T caseRefactoringUnit(RefactoringUnit object) {
+ return null;
+ }
+
+ /**
+ * Returns the result of interpreting the object as an instance of '<em>Model Refactoring</em>'.
+ * <!-- begin-user-doc -->
+ * This implementation returns null;
+ * returning a non-null result will terminate the switch.
+ * <!-- end-user-doc -->
+ * @param object the target of the switch.
+ * @return the result of interpreting the object as an instance of '<em>Model Refactoring</em>'.
+ * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
+ * @generated
+ */
+ public T caseModelRefactoring(ModelRefactoring object) {
+ return null;
+ }
+
+ /**
+ * Returns the result of interpreting the object as an instance of '<em>Atomic Unit</em>'.
+ * <!-- begin-user-doc -->
+ * This implementation returns null;
+ * returning a non-null result will terminate the switch.
+ * <!-- end-user-doc -->
+ * @param object the target of the switch.
+ * @return the result of interpreting the object as an instance of '<em>Atomic Unit</em>'.
+ * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
+ * @generated
+ */
+ public T caseAtomicUnit(AtomicUnit object) {
+ return null;
+ }
+
+ /**
+ * Returns the result of interpreting the object as an instance of '<em>Composite Unit</em>'.
+ * <!-- begin-user-doc -->
+ * This implementation returns null;
+ * returning a non-null result will terminate the switch.
+ * <!-- end-user-doc -->
+ * @param object the target of the switch.
+ * @return the result of interpreting the object as an instance of '<em>Composite Unit</em>'.
+ * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
+ * @generated
+ */
+ public T caseCompositeUnit(CompositeUnit object) {
+ return null;
+ }
+
+ /**
+ * Returns the result of interpreting the object as an instance of '<em>Sequential Unit</em>'.
+ * <!-- begin-user-doc -->
+ * This implementation returns null;
+ * returning a non-null result will terminate the switch.
+ * <!-- end-user-doc -->
+ * @param object the target of the switch.
+ * @return the result of interpreting the object as an instance of '<em>Sequential Unit</em>'.
+ * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
+ * @generated
+ */
+ public T caseSequentialUnit(SequentialUnit object) {
+ return null;
+ }
+
+ /**
+ * Returns the result of interpreting the object as an instance of '<em>Condition Check</em>'.
+ * <!-- begin-user-doc -->
+ * This implementation returns null;
+ * returning a non-null result will terminate the switch.
+ * <!-- end-user-doc -->
+ * @param object the target of the switch.
+ * @return the result of interpreting the object as an instance of '<em>Condition Check</em>'.
+ * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
+ * @generated
+ */
+ public T caseConditionCheck(ConditionCheck object) {
+ return null;
+ }
+
+ /**
+ * Returns the result of interpreting the object as an instance of '<em>Conditional Unit</em>'.
+ * <!-- begin-user-doc -->
+ * This implementation returns null;
+ * returning a non-null result will terminate the switch.
+ * <!-- end-user-doc -->
+ * @param object the target of the switch.
+ * @return the result of interpreting the object as an instance of '<em>Conditional Unit</em>'.
+ * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
+ * @generated
+ */
+ public T caseConditionalUnit(ConditionalUnit object) {
+ return null;
+ }
+
+ /**
+ * Returns the result of interpreting the object as an instance of '<em>Queued Unit</em>'.
+ * <!-- begin-user-doc -->
+ * This implementation returns null;
+ * returning a non-null result will terminate the switch.
+ * <!-- end-user-doc -->
+ * @param object the target of the switch.
+ * @return the result of interpreting the object as an instance of '<em>Queued Unit</em>'.
+ * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
+ * @generated
+ */
+ public T caseQueuedUnit(QueuedUnit object) {
+ return null;
+ }
+
+ /**
+ * Returns the result of interpreting the object as an instance of '<em>Single Queued Unit</em>'.
+ * <!-- begin-user-doc -->
+ * This implementation returns null;
+ * returning a non-null result will terminate the switch.
+ * <!-- end-user-doc -->
+ * @param object the target of the switch.
+ * @return the result of interpreting the object as an instance of '<em>Single Queued Unit</em>'.
+ * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
+ * @generated
+ */
+ public T caseSingleQueuedUnit(SingleQueuedUnit object) {
+ return null;
+ }
+
+ /**
+ * Returns the result of interpreting the object as an instance of '<em>Twiced Queued Unit</em>'.
+ * <!-- begin-user-doc -->
+ * This implementation returns null;
+ * returning a non-null result will terminate the switch.
+ * <!-- end-user-doc -->
+ * @param object the target of the switch.
+ * @return the result of interpreting the object as an instance of '<em>Twiced Queued Unit</em>'.
+ * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
+ * @generated
+ */
+ public T caseTwicedQueuedUnit(TwicedQueuedUnit object) {
+ return null;
+ }
+
+ /**
+ * Returns the result of interpreting the object as an instance of '<em>Cartesian Queued Unit</em>'.
+ * <!-- begin-user-doc -->
+ * This implementation returns null;
+ * returning a non-null result will terminate the switch.
+ * <!-- end-user-doc -->
+ * @param object the target of the switch.
+ * @return the result of interpreting the object as an instance of '<em>Cartesian Queued Unit</em>'.
+ * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
+ * @generated
+ */
+ public T caseCartesianQueuedUnit(CartesianQueuedUnit object) {
+ return null;
+ }
+
+ /**
+ * Returns the result of interpreting the object as an instance of '<em>Parallel Queued Unit</em>'.
+ * <!-- begin-user-doc -->
+ * This implementation returns null;
+ * returning a non-null result will terminate the switch.
+ * <!-- end-user-doc -->
+ * @param object the target of the switch.
+ * @return the result of interpreting the object as an instance of '<em>Parallel Queued Unit</em>'.
+ * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
+ * @generated
+ */
+ public T caseParallelQueuedUnit(ParallelQueuedUnit object) {
+ return null;
+ }
+
+ /**
+ * Returns the result of interpreting the object as an instance of '<em>Helper Unit</em>'.
+ * <!-- begin-user-doc -->
+ * This implementation returns null;
+ * returning a non-null result will terminate the switch.
+ * <!-- end-user-doc -->
+ * @param object the target of the switch.
+ * @return the result of interpreting the object as an instance of '<em>Helper Unit</em>'.
+ * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
+ * @generated
+ */
+ public T caseHelperUnit(HelperUnit object) {
+ return null;
+ }
+
+ /**
+ * Returns the result of interpreting the object as an instance of '<em>Feature Unit</em>'.
+ * <!-- begin-user-doc -->
+ * This implementation returns null;
+ * returning a non-null result will terminate the switch.
+ * <!-- end-user-doc -->
+ * @param object the target of the switch.
+ * @return the result of interpreting the object as an instance of '<em>Feature Unit</em>'.
+ * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
+ * @generated
+ */
+ public T caseFeatureUnit(FeatureUnit object) {
+ return null;
+ }
+
+ /**
+ * Returns the result of interpreting the object as an instance of '<em>Single Feature Unit</em>'.
+ * <!-- begin-user-doc -->
+ * This implementation returns null;
+ * returning a non-null result will terminate the switch.
+ * <!-- end-user-doc -->
+ * @param object the target of the switch.
+ * @return the result of interpreting the object as an instance of '<em>Single Feature Unit</em>'.
+ * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
+ * @generated
+ */
+ public T caseSingleFeatureUnit(SingleFeatureUnit object) {
+ return null;
+ }
+
+ /**
+ * Returns the result of interpreting the object as an instance of '<em>Multi Feature Unit</em>'.
+ * <!-- begin-user-doc -->
+ * This implementation returns null;
+ * returning a non-null result will terminate the switch.
+ * <!-- end-user-doc -->
+ * @param object the target of the switch.
+ * @return the result of interpreting the object as an instance of '<em>Multi Feature Unit</em>'.
+ * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
+ * @generated
+ */
+ public T caseMultiFeatureUnit(MultiFeatureUnit object) {
+ return null;
+ }
+
+ /**
+ * Returns the result of interpreting the object as an instance of '<em>Filter Unit</em>'.
+ * <!-- begin-user-doc -->
+ * This implementation returns null;
+ * returning a non-null result will terminate the switch.
+ * <!-- end-user-doc -->
+ * @param object the target of the switch.
+ * @return the result of interpreting the object as an instance of '<em>Filter Unit</em>'.
+ * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
+ * @generated
+ */
+ public T caseFilterUnit(FilterUnit object) {
+ return null;
+ }
+
+ /**
+ * Returns the result of interpreting the object as an instance of '<em>Single Filter Unit</em>'.
+ * <!-- begin-user-doc -->
+ * This implementation returns null;
+ * returning a non-null result will terminate the switch.
+ * <!-- end-user-doc -->
+ * @param object the target of the switch.
+ * @return the result of interpreting the object as an instance of '<em>Single Filter Unit</em>'.
+ * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
+ * @generated
+ */
+ public T caseSingleFilterUnit(SingleFilterUnit object) {
+ return null;
+ }
+
+ /**
+ * Returns the result of interpreting the object as an instance of '<em>Multi Filter Unit</em>'.
+ * <!-- begin-user-doc -->
+ * This implementation returns null;
+ * returning a non-null result will terminate the switch.
+ * <!-- end-user-doc -->
+ * @param object the target of the switch.
+ * @return the result of interpreting the object as an instance of '<em>Multi Filter Unit</em>'.
+ * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
+ * @generated
+ */
+ public T caseMultiFilterUnit(MultiFilterUnit object) {
+ return null;
+ }
+
+ /**
+ * Returns the result of interpreting the object as an instance of '<em>Helper</em>'.
+ * <!-- begin-user-doc -->
+ * This implementation returns null;
+ * returning a non-null result will terminate the switch.
+ * <!-- end-user-doc -->
+ * @param object the target of the switch.
+ * @return the result of interpreting the object as an instance of '<em>Helper</em>'.
+ * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
+ * @generated
+ */
+ public T caseHelper(Helper object) {
+ return null;
+ }
+
+ /**
+ * Returns the result of interpreting the object as an instance of '<em>Feature Helper</em>'.
+ * <!-- begin-user-doc -->
+ * This implementation returns null;
+ * returning a non-null result will terminate the switch.
+ * <!-- end-user-doc -->
+ * @param object the target of the switch.
+ * @return the result of interpreting the object as an instance of '<em>Feature Helper</em>'.
+ * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
+ * @generated
+ */
+ public T caseFeatureHelper(FeatureHelper object) {
+ return null;
+ }
+
+ /**
+ * Returns the result of interpreting the object as an instance of '<em>Single Feature Helper</em>'.
+ * <!-- begin-user-doc -->
+ * This implementation returns null;
+ * returning a non-null result will terminate the switch.
+ * <!-- end-user-doc -->
+ * @param object the target of the switch.
+ * @return the result of interpreting the object as an instance of '<em>Single Feature Helper</em>'.
+ * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
+ * @generated
+ */
+ public T caseSingleFeatureHelper(SingleFeatureHelper object) {
+ return null;
+ }
+
+ /**
+ * Returns the result of interpreting the object as an instance of '<em>Multi Feature Helper</em>'.
+ * <!-- begin-user-doc -->
+ * This implementation returns null;
+ * returning a non-null result will terminate the switch.
+ * <!-- end-user-doc -->
+ * @param object the target of the switch.
+ * @return the result of interpreting the object as an instance of '<em>Multi Feature Helper</em>'.
+ * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
+ * @generated
+ */
+ public T caseMultiFeatureHelper(MultiFeatureHelper object) {
+ return null;
+ }
+
+ /**
+ * Returns the result of interpreting the object as an instance of '<em>Filter Helper</em>'.
+ * <!-- begin-user-doc -->
+ * This implementation returns null;
+ * returning a non-null result will terminate the switch.
+ * <!-- end-user-doc -->
+ * @param object the target of the switch.
+ * @return the result of interpreting the object as an instance of '<em>Filter Helper</em>'.
+ * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
+ * @generated
+ */
+ public T caseFilterHelper(FilterHelper object) {
+ return null;
+ }
+
+ /**
+ * Returns the result of interpreting the object as an instance of '<em>Single Filter Helper</em>'.
+ * <!-- begin-user-doc -->
+ * This implementation returns null;
+ * returning a non-null result will terminate the switch.
+ * <!-- end-user-doc -->
+ * @param object the target of the switch.
+ * @return the result of interpreting the object as an instance of '<em>Single Filter Helper</em>'.
+ * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
+ * @generated
+ */
+ public T caseSingleFilterHelper(SingleFilterHelper object) {
+ return null;
+ }
+
+ /**
+ * Returns the result of interpreting the object as an instance of '<em>Multi Filter Helper</em>'.
+ * <!-- begin-user-doc -->
+ * This implementation returns null;
+ * returning a non-null result will terminate the switch.
+ * <!-- end-user-doc -->
+ * @param object the target of the switch.
+ * @return the result of interpreting the object as an instance of '<em>Multi Filter Helper</em>'.
+ * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
+ * @generated
+ */
+ public T caseMultiFilterHelper(MultiFilterHelper object) {
+ return null;
+ }
+
+ /**
+ * Returns the result of interpreting the object as an instance of '<em>Port</em>'.
+ * <!-- begin-user-doc -->
+ * This implementation returns null;
+ * returning a non-null result will terminate the switch.
+ * <!-- end-user-doc -->
+ * @param object the target of the switch.
+ * @return the result of interpreting the object as an instance of '<em>Port</em>'.
+ * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
+ * @generated
+ */
+ public T casePort(Port object) {
+ return null;
+ }
+
+ /**
+ * Returns the result of interpreting the object as an instance of '<em>Single Port</em>'.
+ * <!-- begin-user-doc -->
+ * This implementation returns null;
+ * returning a non-null result will terminate the switch.
+ * <!-- end-user-doc -->
+ * @param object the target of the switch.
+ * @return the result of interpreting the object as an instance of '<em>Single Port</em>'.
+ * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
+ * @generated
+ */
+ public T caseSinglePort(SinglePort object) {
+ return null;
+ }
+
+ /**
+ * Returns the result of interpreting the object as an instance of '<em>Multi Port</em>'.
+ * <!-- begin-user-doc -->
+ * This implementation returns null;
+ * returning a non-null result will terminate the switch.
+ * <!-- end-user-doc -->
+ * @param object the target of the switch.
+ * @return the result of interpreting the object as an instance of '<em>Multi Port</em>'.
+ * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
+ * @generated
+ */
+ public T caseMultiPort(MultiPort object) {
+ return null;
+ }
+
+ /**
+ * Returns the result of interpreting the object as an instance of '<em>Input Port</em>'.
+ * <!-- begin-user-doc -->
+ * This implementation returns null;
+ * returning a non-null result will terminate the switch.
+ * <!-- end-user-doc -->
+ * @param object the target of the switch.
+ * @return the result of interpreting the object as an instance of '<em>Input Port</em>'.
+ * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
+ * @generated
+ */
+ public T caseInputPort(InputPort object) {
+ return null;
+ }
+
+ /**
+ * Returns the result of interpreting the object as an instance of '<em>Output Port</em>'.
+ * <!-- begin-user-doc -->
+ * This implementation returns null;
+ * returning a non-null result will terminate the switch.
+ * <!-- end-user-doc -->
+ * @param object the target of the switch.
+ * @return the result of interpreting the object as an instance of '<em>Output Port</em>'.
+ * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
+ * @generated
+ */
+ public T caseOutputPort(OutputPort object) {
+ return null;
+ }
+
+ /**
+ * Returns the result of interpreting the object as an instance of '<em>Single Input Port</em>'.
+ * <!-- begin-user-doc -->
+ * This implementation returns null;
+ * returning a non-null result will terminate the switch.
+ * <!-- end-user-doc -->
+ * @param object the target of the switch.
+ * @return the result of interpreting the object as an instance of '<em>Single Input Port</em>'.
+ * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
+ * @generated
+ */
+ public T caseSingleInputPort(SingleInputPort object) {
+ return null;
+ }
+
+ /**
+ * Returns the result of interpreting the object as an instance of '<em>Multi Input Port</em>'.
+ * <!-- begin-user-doc -->
+ * This implementation returns null;
+ * returning a non-null result will terminate the switch.
+ * <!-- end-user-doc -->
+ * @param object the target of the switch.
+ * @return the result of interpreting the object as an instance of '<em>Multi Input Port</em>'.
+ * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
+ * @generated
+ */
+ public T caseMultiInputPort(MultiInputPort object) {
+ return null;
+ }
+
+ /**
+ * Returns the result of interpreting the object as an instance of '<em>Single Output Port</em>'.
+ * <!-- begin-user-doc -->
+ * This implementation returns null;
+ * returning a non-null result will terminate the switch.
+ * <!-- end-user-doc -->
+ * @param object the target of the switch.
+ * @return the result of interpreting the object as an instance of '<em>Single Output Port</em>'.
+ * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
+ * @generated
+ */
+ public T caseSingleOutputPort(SingleOutputPort object) {
+ return null;
+ }
+
+ /**
+ * Returns the result of interpreting the object as an instance of '<em>Multi Output Port</em>'.
+ * <!-- begin-user-doc -->
+ * This implementation returns null;
+ * returning a non-null result will terminate the switch.
+ * <!-- end-user-doc -->
+ * @param object the target of the switch.
+ * @return the result of interpreting the object as an instance of '<em>Multi Output Port</em>'.
+ * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
+ * @generated
+ */
+ public T caseMultiOutputPort(MultiOutputPort object) {
+ return null;
+ }
+
+ /**
+ * Returns the result of interpreting the object as an instance of '<em>Port Mapping</em>'.
+ * <!-- begin-user-doc -->
+ * This implementation returns null;
+ * returning a non-null result will terminate the switch.
+ * <!-- end-user-doc -->
+ * @param object the target of the switch.
+ * @return the result of interpreting the object as an instance of '<em>Port Mapping</em>'.
+ * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
+ * @generated
+ */
+ public T casePortMapping(PortMapping object) {
+ return null;
+ }
+
+ /**
+ * Returns the result of interpreting the object as an instance of '<em>Single Port Mapping</em>'.
+ * <!-- begin-user-doc -->
+ * This implementation returns null;
+ * returning a non-null result will terminate the switch.
+ * <!-- end-user-doc -->
+ * @param object the target of the switch.
+ * @return the result of interpreting the object as an instance of '<em>Single Port Mapping</em>'.
+ * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
+ * @generated
+ */
+ public T caseSinglePortMapping(SinglePortMapping object) {
+ return null;
+ }
+
+ /**
+ * Returns the result of interpreting the object as an instance of '<em>Multi Port Mapping</em>'.
+ * <!-- begin-user-doc -->
+ * This implementation returns null;
+ * returning a non-null result will terminate the switch.
+ * <!-- end-user-doc -->
+ * @param object the target of the switch.
+ * @return the result of interpreting the object as an instance of '<em>Multi Port Mapping</em>'.
+ * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
+ * @generated
+ */
+ public T caseMultiPortMapping(MultiPortMapping object) {
+ return null;
+ }
+
+ /**
+ * Returns the result of interpreting the object as an instance of '<em>Multi Single Port Mapping</em>'.
+ * <!-- begin-user-doc -->
+ * This implementation returns null;
+ * returning a non-null result will terminate the switch.
+ * <!-- end-user-doc -->
+ * @param object the target of the switch.
+ * @return the result of interpreting the object as an instance of '<em>Multi Single Port Mapping</em>'.
+ * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
+ * @generated
+ */
+ public T caseMultiSinglePortMapping(MultiSinglePortMapping object) {
+ return null;
+ }
+
+ /**
+ * Returns the result of interpreting the object as an instance of '<em>EObject</em>'.
+ * <!-- begin-user-doc -->
+ * This implementation returns null;
+ * returning a non-null result will terminate the switch, but this is the last case anyway.
+ * <!-- end-user-doc -->
+ * @param object the target of the switch.
+ * @return the result of interpreting the object as an instance of '<em>EObject</em>'.
+ * @see #doSwitch(org.eclipse.emf.ecore.EObject)
+ * @generated
+ */
+ public T defaultCase(EObject object) {
+ return null;
+ }
+
+} //ComrelSwitch
diff --git a/org.eclipse.emf.refactor.comrel/src/comrel/util/ComrelUtil.java b/org.eclipse.emf.refactor.comrel/src/comrel/util/ComrelUtil.java
new file mode 100644
index 0000000..d44af94
--- /dev/null
+++ b/org.eclipse.emf.refactor.comrel/src/comrel/util/ComrelUtil.java
@@ -0,0 +1,208 @@
+package comrel.util;
+
+import java.util.ArrayList;
+import java.util.Collection;
+import java.util.Collections;
+import java.util.Comparator;
+import java.util.List;
+
+import org.eclipse.emf.ecore.EObject;
+import org.eclipse.swt.graphics.Color;
+
+import comrel.AtomicUnit;
+import comrel.CompositeRefactoring;
+import comrel.FeatureHelper;
+import comrel.FeatureUnit;
+import comrel.FilterHelper;
+import comrel.FilterUnit;
+import comrel.Helper;
+import comrel.HelperUnit;
+import comrel.ModelRefactoring;
+import comrel.OutputPort;
+import comrel.Port;
+import comrel.SingleInputPort;
+
+public class ComrelUtil {
+
+
+ /**
+ * Überprüft, ob ein Port änderbar ist oder nicht
+ * @param p Port, der überprüft werden soll
+ * @return
+ */
+ public static boolean portIsSettable(Port p) {
+ EObject container = p.eContainer();
+ if (container != null) {
+ if (container instanceof AtomicUnit) {
+ return false;
+ }
+ if (container instanceof ModelRefactoring) {
+ return false;
+ }
+ if (container instanceof FilterHelper) {
+ return false;
+ }
+ if (container instanceof FilterUnit) {
+ return false;
+ }
+ if (container instanceof FeatureHelper && (p instanceof SingleInputPort || p instanceof OutputPort)) {
+ return false;
+ }
+ if (container instanceof FeatureUnit && (p instanceof SingleInputPort || p instanceof OutputPort)) {
+ return false;
+ }
+ }
+ return true;
+ }
+
+ /**
+ * Überprüft, ob ein Object änderbar ist oder nicht
+ * @param p Object, das überprüft werden soll
+ * @return
+ */
+ public static boolean objectIsSettable(EObject e) {
+ if (e.eContainer() != null) {
+ if (e instanceof AtomicUnit) {
+ return false;
+ }
+ if (e instanceof ModelRefactoring) {
+ return false;
+ }
+ if (e instanceof HelperUnit) {
+ return false;
+ }
+ if (e instanceof Helper) {
+ return false;
+ }
+ if (e instanceof Port) {
+ return portIsSettable((Port) e);
+ }
+ }
+ return true;
+ }
+
+
+ /**
+ * Konvertiert einen String in den Plural (BETA)
+ * @param singlePortName
+ * @return
+ */
+ public static String convertSingularToPluralPortName(String singlePortName) {
+ String result = "";
+ char[] cases = singlePortName.toCharArray();
+ if(cases.length==0) {
+ return "";
+ }
+ for (int i = 0; i < cases.length - 1; i++) {
+ result += cases[i];
+ }
+ if (singlePortName.endsWith("y")) {
+ result += "ie";
+ } else {
+ if (singlePortName.endsWith("s")) {
+ result += "se";
+ } else {
+ result += cases[cases.length - 1];
+ }
+ }
+ result += "s";
+ return result;
+ }
+
+ /**
+ * Convertiert einen String in den Singular (BETA)
+ * @param multiPortName
+ * @return
+ */
+ public static String convertPluralToSingularPortName(String multiPortName) {
+ String result = "";
+ char[] cases = multiPortName.toCharArray();
+ if (multiPortName.endsWith("ies")) {
+ for (int i = 0; i < cases.length - 3; i++) {
+ result += cases[i];
+ }
+ result += "y";
+ }
+ if (multiPortName.endsWith("ses")) {
+ for (int i = 0; i < cases.length - 2; i++) {
+ result += cases[i];
+ }
+ }
+ if (result.length() == 0) {
+ for (int i = 0; i < cases.length - 1; i++) {
+ result += cases[i];
+ }
+ }
+ return result;
+ }
+
+ /**
+ * Liefert die Farbe zum entsprechenden Index
+ * @param i
+ * @return
+ */
+ public static Color getColor(int i) {
+ int number = Math.abs(i) % 50;
+
+ return Colors.getColors(50).get(number);
+ }
+
+
+ /**
+ * Liefert zu einem EObject das contained CompositeRefactoring
+ * @param eobject das Object
+ * @return das CompositeRefactoring
+ */
+ public static CompositeRefactoring getContainedCompositeRefactoring(EObject eobject) {
+ if(eobject == null) {
+ return null;
+ }
+ EObject container = eobject;
+ while (container.eContainer() != null) {
+ container = container.eContainer();
+ }
+ if (container instanceof CompositeRefactoring) {
+ return (CompositeRefactoring) container;
+ }
+ return null;
+ }
+
+
+ /**
+ * Sortiert alle ModelRefactorings nach Name
+ * @param atomics
+ * @return
+ */
+ public static Collection<ModelRefactoring> sortAtomicRefactorings(Collection<ModelRefactoring> atomics){
+ Comparator<ModelRefactoring> comp = new ModelRefactoringComparator();
+ List<ModelRefactoring> result = new ArrayList<ModelRefactoring>();
+ result.addAll(atomics);
+ Collections.sort(result, comp);
+ return result;
+ }
+
+ /**
+ * Der Comparator zum sortieren der ModelRefactorings
+ * @author Gerrit
+ *
+ */
+ public static class ModelRefactoringComparator implements Comparator<ModelRefactoring>{
+ @Override
+ public int compare(ModelRefactoring arg0, ModelRefactoring arg1) {
+ int result = 0;
+ result = arg0.getName().compareTo(arg1.getName());
+ if(result == 0) {
+ result = arg0.getRefId().compareTo(arg1.getRefId());
+ }
+ if(result == 0) {
+ result = arg0.getLabel().compareTo(arg1.getLabel());
+ }
+ if(result == 0) {
+ result = arg0.getNamespaceUri().compareTo(arg1.getNamespaceUri());
+ }
+ return result;
+ }
+
+ }
+
+}
diff --git a/org.eclipse.emf.refactor.comrel/src/comrel/util/ExtensionPointInfo.java b/org.eclipse.emf.refactor.comrel/src/comrel/util/ExtensionPointInfo.java
new file mode 100644
index 0000000..4a8f297
--- /dev/null
+++ b/org.eclipse.emf.refactor.comrel/src/comrel/util/ExtensionPointInfo.java
@@ -0,0 +1,20 @@
+package comrel.util;
+
+public class ExtensionPointInfo {
+
+// public static final String SINGLEFILTER_EXTENSION_POINT = "org.eclipse.emf.refactor.singlefilter";
+// public static final String MULTIFILTER_EXTENSION_POINT = "org.eclipse.emf.refactor.multifilter";
+// public static final String SINGLEFEATURE_EXTENSION_POINT = "org.eclipse.emf.refactor.singlefeature";
+// public static final String MULTIFEATURE_EXTENSION_POINT = "org.eclipse.emf.refactor.multifeature";
+
+ public static final String SINGLEFILTER_EXTENSION_POINT = "comrel.singlefilter";
+ public static final String MULTIFILTER_EXTENSION_POINT = "comrel.multifilter";
+ public static final String SINGLEFEATURE_EXTENSION_POINT = "comrel.singlefeature";
+ public static final String MULTIFEATURE_EXTENSION_POINT = "comrel.multifeature";
+
+ public static final String SINGLEFEATURE = "singlefeature";
+ public static final String MULTIFEATURE = "multifeature";
+ public static final String SINGLEFILTER = "singlefilter";
+ public static final String MULTIFILTER = "multifilter";
+
+}
diff --git a/org.eclipse.emf.refactor.comrel/src/comrel/util/RegistryUtil.java b/org.eclipse.emf.refactor.comrel/src/comrel/util/RegistryUtil.java
new file mode 100644
index 0000000..33f1960
--- /dev/null
+++ b/org.eclipse.emf.refactor.comrel/src/comrel/util/RegistryUtil.java
@@ -0,0 +1,463 @@
+package comrel.util;
+
+import java.util.Collection;
+import java.util.HashMap;
+import java.util.HashSet;
+import java.util.List;
+import java.util.Map;
+import java.util.Set;
+import java.util.TreeSet;
+
+import org.eclipse.core.runtime.IConfigurationElement;
+import org.eclipse.core.runtime.Platform;
+import org.eclipse.emf.refactor.refactoring.core.Refactoring;
+import org.eclipse.emf.refactor.refactoring.managers.RefactoringManager;
+
+import comrel.ComrelFactory;
+import comrel.Helper;
+import comrel.ModelRefactoring;
+import comrel.MultiFeatureHelper;
+import comrel.MultiFilterHelper;
+import comrel.MultiInputPort;
+import comrel.MultiOutputPort;
+import comrel.Port;
+import comrel.SingleFeatureHelper;
+import comrel.SingleFilterHelper;
+import comrel.SingleInputPort;
+import comrel.SingleOutputPort;
+import comrel.extensions.IMultiFeatureHelper;
+import comrel.extensions.IMultiFilterHelper;
+import comrel.extensions.ISingleFeatureHelper;
+import comrel.extensions.ISingleFilterHelper;
+
+public class RegistryUtil {
+// private static final String SINGLEFILTER_EXTENSION_POINT = "org.eclipse.emf.refactor.singlefilter";
+// private static final String MULTIFILTER_EXTENSION_POINT = "org.eclipse.emf.refactor.multifilter";
+// private static final String SINGLEFEATURE_EXTENSION_POINT = "org.eclipse.emf.refactor.singlefeature";
+// private static final String MULTIFEATURE_EXTENSION_POINT = "org.eclipse.emf.refactor.multifeature";
+//
+// private static final String SINGLEFEATURE_SEARCH_STRING = "singlefeature";
+// private static final String MULTIFEATURE_SEARCH_STRING = "multifeature";
+// private static final String SINGLEFILTER_SEARCH_STRING = "singlefilter";
+// private static final String MULTIFILTER_SEARCH_STRING = "multifilter";
+
+ /**
+ * lädt die Helper, gefiltert nach der namespaceUri
+ *
+ * @param namespaceURI
+ * nach der gefiltert werden soll
+ * @return Set der gefilterten Helper
+ */
+ public static Set<SingleFilterHelper> loadSingleFilterHelper(
+ String namespaceURI) {
+ Set<SingleFilterHelper> result = new HashSet<SingleFilterHelper>();
+ for (SingleFilterHelper h : loadSingleFilterHelper()) {
+ if (h.getNamespaceUri().equals(namespaceURI)) {
+ result.add(h);
+ }
+ }
+ return result;
+ }
+
+ /**
+ * lädt die Helper
+ *
+ * @return Set der Helper
+ */
+ public static Set<SingleFilterHelper> loadSingleFilterHelper() {
+ return castSet(loadHelper(ExtensionPointInfo.SINGLEFILTER_EXTENSION_POINT));
+ }
+
+ /**
+ * lädt die Helper, gefiltert nach der namespaceUri
+ *
+ * @param namespaceURI
+ * nach der gefiltert werden soll
+ * @return Set der gefilterten Helper
+ */
+ public static Set<MultiFilterHelper> loadMultiFilterHelper(
+ String namespaceURI) {
+ Set<MultiFilterHelper> result = new HashSet<MultiFilterHelper>();
+ for (MultiFilterHelper h : loadMultiFilterHelper()) {
+ if (h.getNamespaceUri().equals(namespaceURI)) {
+ result.add(h);
+ }
+ }
+ return result;
+ }
+
+ /**
+ * lädt die Helper
+ *
+ * @return Set der Helper
+ */
+ public static Set<MultiFilterHelper> loadMultiFilterHelper() {
+ return castSet(loadHelper(ExtensionPointInfo.MULTIFILTER_EXTENSION_POINT));
+ }
+
+ /**
+ * lädt die Helper, gefiltert nach der namespaceUri
+ *
+ * @param namespaceURI
+ * nach der gefiltert werden soll
+ * @return Set der gefilterten Helper
+ */
+ public static Set<SingleFeatureHelper> loadSingleFeatureHelper(
+ String namespaceURI) {
+ Set<SingleFeatureHelper> result = new HashSet<SingleFeatureHelper>();
+ for (SingleFeatureHelper h : loadSingleFeatureHelper()) {
+ if (h.getNamespaceUri().equals(namespaceURI)) {
+ result.add(h);
+ }
+ }
+ return result;
+ }
+
+ /**
+ * lädt die Helper
+ *
+ * @return Set der Helper
+ */
+ public static Set<SingleFeatureHelper> loadSingleFeatureHelper() {
+ return castSet(loadHelper(ExtensionPointInfo.SINGLEFEATURE_EXTENSION_POINT));
+ }
+
+ /**
+ * lädt die Helper, gefiltert nach der namespaceUri
+ *
+ * @param namespaceURI
+ * nach der gefiltert werden soll
+ * @return Set der gefilterten Helper
+ */
+ public static Set<MultiFeatureHelper> loadMultiFeatureHelper(
+ String namespaceURI) {
+ Set<MultiFeatureHelper> result = new HashSet<MultiFeatureHelper>();
+ for (MultiFeatureHelper h : loadMultiFeatureHelper()) {
+ if (h.getNamespaceUri().equals(namespaceURI)) {
+ result.add(h);
+ }
+ }
+ return result;
+ }
+
+ /**
+ * lädt die Helper
+ *
+ * @return Set der Helper
+ */
+ public static Set<MultiFeatureHelper> loadMultiFeatureHelper() {
+ return castSet(loadHelper(ExtensionPointInfo.MULTIFEATURE_EXTENSION_POINT));
+ }
+
+ /**
+ * Lädt anhand des Extension Points die entsprechenden Helper
+ *
+ * @param extensionPoint
+ * zu durchszuchender Extension Point
+ * @return Helper
+ */
+ private static Set<Helper> loadHelper(String extensionPoint) {
+ Set<Helper> result = new HashSet<Helper>();
+ IConfigurationElement[] helper = Platform.getExtensionRegistry()
+ .getConfigurationElementsFor(extensionPoint);
+ for (IConfigurationElement e : helper) {
+ try {
+
+ Helper h = createHelper(e);
+ if (null != h)
+ result.add(h);
+
+ } catch (Exception e2) {
+ e2.printStackTrace();
+ }
+ }
+ return result;
+ }
+
+ /**
+ * Erstellt anhand des e-Elementes den entsprechenden Helper
+ *
+ * @param e
+ * IConfigurableElement
+ * @return Helper
+ */
+ private static Helper createHelper(IConfigurationElement e) {
+ if (e.getName().equals(ExtensionPointInfo.SINGLEFEATURE)) {
+ return createSingleFeatureHelper(e);
+ }
+ if (e.getName().equals(ExtensionPointInfo.MULTIFEATURE)) {
+ return createMultiFeatureHelper(e);
+ }
+ if (e.getName().equals(ExtensionPointInfo.SINGLEFILTER)) {
+ return createSingleFilterHelper(e);
+ }
+ if (e.getName().equals(ExtensionPointInfo.MULTIFILTER)) {
+ return createMultiFilterHelper(e);
+ }
+ return null;
+ }
+
+ /**
+ * Casted ein Set
+ *
+ * @param <E>
+ * @param set
+ * @return
+ */
+ @SuppressWarnings({ "unchecked", "rawtypes" })
+ private static <E> Set<E> castSet(Set set) {
+ Set<E> result = new HashSet<E>();
+ for (Object o : set) {
+ try {
+ result.add((E) o);
+ } catch (Exception e) {
+ }
+ }
+ return result;
+ }
+
+ /**
+ * Erstellt einen Helper
+ *
+ * @param e
+ * IConfigurableElement
+ * @return Helper
+ */
+ private static SingleFilterHelper createSingleFilterHelper(
+ IConfigurationElement e) {
+ SingleFilterHelper helper = null;
+ try {
+ ComrelFactory factory = ComrelFactory.eINSTANCE;
+ ISingleFilterHelper i = (ISingleFilterHelper) e
+ .createExecutableExtension("class");
+
+ // Helper und Port erstellen
+ MultiInputPort inPort = factory.createMultiInputPort();
+ SingleOutputPort outPort = factory.createSingleOutputPort();
+ helper = factory.createSingleFilterHelper();
+
+ // Helper und Ports configurieren
+ helper = configureHelperUnit(helper, e);
+ inPort = configurePort(inPort, i.getInputPort());
+ outPort = configurePort(outPort, i.getOutputPort());
+ helper.setInputPort(inPort);
+ helper.setOutputPort(outPort);
+
+ return helper;
+ } catch (Exception ex) {
+ ex.printStackTrace();
+
+ }
+ return null;
+ }
+
+ /**
+ * Erstellt einen Helper
+ *
+ * @param e
+ * IConfigurableElement
+ * @return Helper
+ */
+ private static MultiFilterHelper createMultiFilterHelper(
+ IConfigurationElement e) {
+ MultiFilterHelper helper = null;
+ try {
+ ComrelFactory factory = ComrelFactory.eINSTANCE;
+ IMultiFilterHelper i = (IMultiFilterHelper) e
+ .createExecutableExtension("class");
+
+ // Helper und Port erstellen
+ MultiInputPort inPort = factory.createMultiInputPort();
+ MultiOutputPort outPort = factory.createMultiOutputPort();
+ helper = factory.createMultiFilterHelper();
+
+ // Helper und Ports configurieren
+ helper = configureHelperUnit(helper, e);
+ inPort = configurePort(inPort, i.getInputPort());
+ outPort = configurePort(outPort, i.getOutputPort());
+ helper.setInputPort(inPort);
+ helper.setOutputPort(outPort);
+
+ return helper;
+ } catch (Exception ex) {
+ ex.printStackTrace();
+
+ }
+ return null;
+ }
+
+ /**
+ * Erstellt einen Helper
+ *
+ * @param e
+ * IConfigurableElement
+ * @return Helper
+ */
+ private static SingleFeatureHelper createSingleFeatureHelper(
+ IConfigurationElement e) {
+ SingleFeatureHelper helper = null;
+ try {
+ ComrelFactory factory = ComrelFactory.eINSTANCE;
+ ISingleFeatureHelper i = (ISingleFeatureHelper) e
+ .createExecutableExtension("class");
+
+ // Helper und Port erstellen
+ SingleInputPort inPort = factory.createSingleInputPort();
+ SingleOutputPort outPort = factory.createSingleOutputPort();
+ helper = factory.createSingleFeatureHelper();
+
+ // Helper und Ports configurieren
+ helper = configureHelperUnit(helper, e);
+ inPort = configurePort(inPort, i.getInputPort());
+ outPort = configurePort(outPort, i.getOutputPort());
+ helper.setInputPort(inPort);
+ helper.setOutputPort(outPort);
+
+ return helper;
+ } catch (Exception ex) {
+ ex.printStackTrace();
+
+ }
+ return null;
+ }
+
+ /**
+ * Erstellt einen Helper
+ *
+ * @param e
+ * IConfigurableElement
+ * @return Helper
+ */
+ private static MultiFeatureHelper createMultiFeatureHelper(
+ IConfigurationElement e) {
+ MultiFeatureHelper helper = null;
+ try {
+ ComrelFactory factory = ComrelFactory.eINSTANCE;
+ IMultiFeatureHelper i = (IMultiFeatureHelper) e
+ .createExecutableExtension("class");
+
+ // Helper und Port erstellen
+ SingleInputPort inPort = factory.createSingleInputPort();
+ MultiOutputPort outPort = factory.createMultiOutputPort();
+ helper = factory.createMultiFeatureHelper();
+
+ // Helper und Ports configurieren
+ helper = configureHelperUnit(helper, e);
+ inPort = configurePort(inPort, i.getInputPort());
+ outPort = configurePort(outPort, i.getOutputPort());
+ helper.setInputPort(inPort);
+ helper.setOutputPort(outPort);
+
+ return helper;
+ } catch (Exception ex) {
+ ex.printStackTrace();
+
+ }
+ return null;
+ }
+
+ /**
+ * Konfiguriert einen Helper
+ *
+ * @param <H>
+ * @param helper
+ * @param e
+ * @return
+ */
+ private static <H extends Helper> H configureHelperUnit(H helper,
+ IConfigurationElement e) {
+ String id = e.getAttribute("id");
+ String name = e.getAttribute("name");
+ String namespaceUri = e.getAttribute("namespaceUri");
+ helper.setHelperId(id);
+ helper.setName(name);
+ helper.setNamespaceUri(namespaceUri);
+ return helper;
+ }
+
+ /**
+ * Konfiguriert einen Port
+ *
+ * @param <P>
+ * @param configurablePort
+ * der zu konfigurierende Port
+ * @param originalPort
+ * der originalPort
+ * @return configurierter Port
+ */
+ @SuppressWarnings("rawtypes")
+ private static <P extends Port> P configurePort(P configurablePort,
+ Port originalPort) {
+ String name = originalPort.getName();
+ Class type = originalPort.getType();
+ String description = originalPort.getDescription();
+ configurablePort.setName(name);
+ configurablePort.setType(type);
+ configurablePort.setDescription(description);
+ return configurablePort;
+ }
+
+ /**
+ * Liefert alle EmfRefactorings
+ * @return
+ */
+ public static Collection<ModelRefactoring> getEmfRefactoringsAsModelRefactorings() {
+ return getEmfRefactoringsAsModelRefactorings("");
+ }
+
+ /**
+ * Liefert alle ModelRefactorings useses EmfRefactor-ExtensionPoint
+ */
+ @SuppressWarnings("rawtypes")
+ public static Collection<ModelRefactoring> getEmfRefactoringsAsModelRefactorings(
+ String namespaceURI) {
+ ComrelFactory comrelFactory = ComrelFactory.eINSTANCE;
+// (ComrelFactory) EPackage.Registry.INSTANCE
+// .getEFactory("comrel");
+ List<Refactoring> refactorings = RefactoringManager.getAllRefactorings();
+ Map<String, ModelRefactoring> atomics = new HashMap<String, ModelRefactoring>();
+ ModelRefactoring atomic;
+ Set<org.eclipse.emf.refactor.refactoring.core.Port> ports;
+ SingleInputPort inputPort;
+ if (namespaceURI == null) {
+ namespaceURI = "";
+ }
+ for (Refactoring ref : refactorings) {
+ // getInitialConditions(ref);
+ if (namespaceURI.equals("")
+ || namespaceURI.equals(ref.getNamespaceUri())) {
+ atomic = comrelFactory.createModelRefactoring(ref.getId());
+ atomic.setName(ref.getName());
+ atomic.setLabel(ref.getName());
+ atomic.setNamespaceUri(ref.getNamespaceUri());
+ ports = ref.getController().getDataManagementObject()
+ .getInPorts();
+ for (org.eclipse.emf.refactor.refactoring.core.Port p : ports) {
+ inputPort = comrelFactory.createSingleInputPort();
+ inputPort.setName(p.getName());
+ inputPort.setType(p.getType());
+ inputPort.setDescription(p.getDescription());
+
+ atomic.getInputPorts().add(inputPort);
+ }
+
+ atomics.put(ref.getId(), atomic);
+ }
+ }
+ return atomics.values();
+ }
+
+ /**
+ * Liefert alle NamespaceUris, gesammelt aus den emfRefactorings
+ *
+ * @return namspaceUris
+ */
+ public static Set<String> getNamepsaceURIS() {
+ TreeSet<String> result = new TreeSet<String>();
+ for (ModelRefactoring ref : RegistryUtil.getEmfRefactoringsAsModelRefactorings()) {
+ result.add(ref.getNamespaceUri());
+ }
+ return result;
+ }
+
+}